aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--README4
-rw-r--r--README.md7
-rwxr-xr-xcontrib/oe-stylize.py133
-rwxr-xr-xcontrib/pw-am.sh2
-rw-r--r--meta-filesystems/README105
-rw-r--r--meta-filesystems/README.md101
-rw-r--r--meta-filesystems/conf/layer.conf4
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libburn_1.5.6.bb13
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libisoburn_1.5.4.bb27
-rw-r--r--meta-filesystems/recipes-filesystems/burnia/libisofs_1.5.4.bb15
-rw-r--r--meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb21
-rw-r--r--meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb22
-rw-r--r--meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb22
-rw-r--r--meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb15
-rw-r--r--meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.4.bb13
-rw-r--r--meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb7
-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/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch24
-rw-r--r--meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb5
-rw-r--r--meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb44
-rw-r--r--meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2022.10.3.bb53
-rw-r--r--meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch27
-rw-r--r--meta-filesystems/recipes-filesystems/owfs/owfs/0001-Fix-compilation-with-GCC10.patch44
-rw-r--r--meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb68
-rw-r--r--meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb81
-rw-r--r--meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb55
-rw-r--r--meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_0.4.0.bb14
-rw-r--r--meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb13
-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.patch10
-rw-r--r--meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb15
-rw-r--r--meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch32
-rw-r--r--meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/run-ptest3
-rw-r--r--meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb16
-rw-r--r--meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb27
-rw-r--r--meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch62
-rw-r--r--meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb19
-rw-r--r--meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb18
-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_git.bb16
-rw-r--r--meta-filesystems/recipes-filesystems/zfs/zfs/0001-Define-strndupa-if-it-does-not-exist.patch34
-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.2.0.bb77
-rw-r--r--meta-filesystems/recipes-support/fuse/files/fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch53
-rw-r--r--meta-filesystems/recipes-support/fuse/fuse3/run-ptest3
-rw-r--r--meta-filesystems/recipes-support/fuse/fuse3_3.14.1.bb80
-rw-r--r--meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb71
-rw-r--r--meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb81
-rw-r--r--meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb13
-rw-r--r--meta-filesystems/recipes-support/physfs/physfs_3.0.2.bb15
-rw-r--r--meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch37
-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.bb30
-rw-r--r--meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb62
-rw-r--r--meta-filesystems/recipes-utils/btrfsmaintenance/files/0001-change-sysconfig-path-to-etc-default.patch47
-rw-r--r--meta-filesystems/recipes-utils/btrfsmaintenance/files/0002-add-WantedBy-directive-to-btrfsmaintenance-refresh.s.patch33
-rw-r--r--meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb22
-rw-r--r--meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.1.bb24
-rw-r--r--meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch32
-rw-r--r--meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch37
-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.16.0.bb20
-rw-r--r--meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb18
-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.patch37
-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.bb20
-rw-r--r--meta-filesystems/recipes-utils/fatresize/fatresize/0001-build-Do-not-build-.sgml-file.patch27
-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.bb16
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch32
-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.patch43
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch33
-rw-r--r--meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb34
-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/udevil/udevil_0.4.4.bb8
-rw-r--r--meta-filesystems/recipes-utils/ufs-utils/ufs-utils_3.12.3.bb31
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch28
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch28
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-support-usrmerge.patch52
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch122
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch40
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch29
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch27
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.12.bb39
-rw-r--r--meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb46
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch82
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/0001-support-usrmerge.patch40
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch33
-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_4.14.0.bb63
-rw-r--r--meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.1.1.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-m4-Check-for-FTW_ACTIONRETVAL-along-with-nftw.patch34
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch47
-rw-r--r--meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb65
-rw-r--r--meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb29
-rw-r--r--meta-gnome/README38
-rw-r--r--meta-gnome/README.md16
-rw-r--r--meta-gnome/classes/clutter.bbclass18
-rw-r--r--meta-gnome/classes/gnome-help.bbclass67
-rw-r--r--meta-gnome/classes/sanity-meta-gnome.bbclass10
-rw-r--r--meta-gnome/conf/layer.conf17
-rw-r--r--meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb24
-rw-r--r--meta-gnome/recipes-connectivity/folks/folks_0.15.6.bb29
-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_44.0.bb61
-rw-r--r--meta-gnome/recipes-connectivity/gtk-vnc/gtk-vnc_1.3.1.bb26
-rw-r--r--meta-gnome/recipes-connectivity/libnma/libnma_1.10.6.bb29
-rw-r--r--meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.32.0.bb29
-rw-r--r--meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.10.bb50
-rw-r--r--meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch40
-rw-r--r--meta-gnome/recipes-connectivity/obex/obexd_0.48.bb23
-rw-r--r--meta-gnome/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch62
-rw-r--r--meta-gnome/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch51
-rw-r--r--meta-gnome/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch39
-rw-r--r--meta-gnome/recipes-devtools/glade/glade3_3.8.5.bb23
-rw-r--r--meta-gnome/recipes-extended/gparted/files/0001-Install-polkit-action-unconditionally-executable-pke.patch47
-rw-r--r--meta-gnome/recipes-extended/gparted/files/gparted_polkit10
-rw-r--r--meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy20
-rw-r--r--meta-gnome/recipes-extended/gparted/gparted_0.31.0.bb40
-rw-r--r--meta-gnome/recipes-extended/gparted/gparted_1.5.0.bb44
-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.106.bb18
-rw-r--r--meta-gnome/recipes-gimp/gegl/gegl_0.4.46.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.34.bb71
-rw-r--r--meta-gnome/recipes-gimp/mypaint/libmypaint/0001-make-build-compatible-w.-autoconf-2.7.patch32
-rw-r--r--meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb26
-rw-r--r--meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb12
-rw-r--r--meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch180
-rw-r--r--meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch39
-rw-r--r--meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb142
-rw-r--r--meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb22
-rw-r--r--meta-gnome/recipes-gnome/dconf/dconf-editor_43.0.bb21
-rw-r--r--meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb36
-rw-r--r--meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb25
-rw-r--r--meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb18
-rw-r--r--meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb32
-rw-r--r--meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb35
-rw-r--r--meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch39
-rw-r--r--meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch46
-rw-r--r--meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb131
-rw-r--r--meta-gnome/recipes-gnome/eog/eog_44.3.bb31
-rw-r--r--meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch27
-rw-r--r--meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch24
-rw-r--r--meta-gnome/recipes-gnome/evince/evince_3.28.2.bb64
-rw-r--r--meta-gnome/recipes-gnome/evince/evince_44.2.bb59
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb23
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb67
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc13
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch43
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch25
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch (renamed from meta-gnome/recipes-gnome/eds/evolution-data-server/0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch)11
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch (renamed from meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch)10
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch45
-rw-r--r--meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h (renamed from meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h)0
-rw-r--r--meta-gnome/recipes-gnome/faenza-icon-theme/faenza-icon-theme_1.3.bb7
-rw-r--r--meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb44
-rw-r--r--meta-gnome/recipes-gnome/gdm/gdm_44.1.bb67
-rw-r--r--meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch29
-rw-r--r--meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch31
-rw-r--r--meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch31
-rw-r--r--meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch57
-rw-r--r--meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch38
-rw-r--r--meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb31
-rw-r--r--meta-gnome/recipes-gnome/gedit/gedit_44.2.bb46
-rw-r--r--meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb19
-rw-r--r--meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb28
-rw-r--r--meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb26
-rw-r--r--meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb17
-rw-r--r--meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch47
-rw-r--r--meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch31
-rw-r--r--meta-gnome/recipes-gnome/gjs/gjs_1.76.1.bb40
-rw-r--r--meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.4.bb21
-rw-r--r--meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_44.0.bb16
-rw-r--r--meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3/0001-build-Fix-build-for-newer-versions-of-meson.patch25
-rw-r--r--meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3_3.34.5.bb40
-rw-r--r--meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb19
-rw-r--r--meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.5.bb44
-rw-r--r--meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb33
-rw-r--r--meta-gnome/recipes-gnome/gnome-chess/gnome-chess_43.2.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_1.16.1.bb31
-rw-r--r--meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch57
-rw-r--r--meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb69
-rw-r--r--meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch45
-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-desktop3_3.28.1.bb28
-rw-r--r--meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb49
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-gnome-disk-utility-remove-libcanberra-dependency.patch135
-rw-r--r--meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_44.0.bb40
-rw-r--r--meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.46.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_44.0.bb25
-rw-r--r--meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch42
-rw-r--r--meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.20.0.bb42
-rw-r--r--meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_42.1.bb50
-rw-r--r--meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb17
-rw-r--r--meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb21
-rw-r--r--meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb14
-rw-r--r--meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts/0001-Replace-filename-with-basename.patch104
-rw-r--r--meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb31
-rw-r--r--meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.47.1.bb24
-rw-r--r--meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb60
-rw-r--r--meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot/0001-meson-remove-extraneous-positional-argument.patch36
-rw-r--r--meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb23
-rw-r--r--meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb38
-rw-r--r--meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb46
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_44.1.bb25
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch115
-rw-r--r--meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb87
-rw-r--r--meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb44
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-help-remove-YELP-macro.patch28
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.26.0.bb34
-rw-r--r--meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_44.0.bb36
-rw-r--r--meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch34
-rw-r--r--meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.48.1.bb39
-rw-r--r--meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb27
-rw-r--r--meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch41
-rw-r--r--meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch33
-rw-r--r--meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb34
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch32
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb24
-rw-r--r--meta-gnome/recipes-gnome/grilo/grilo_0.3.16.bb31
-rw-r--r--meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb14
-rw-r--r--meta-gnome/recipes-gnome/gspell/gspell_1.12.1.bb10
-rw-r--r--meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb31
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb10
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/0001-test-widget.c-fix-non-literal-format-string-issues.patch31
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m490
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m453
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make173
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/suppress-string-format-literal-warning.patch33
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb32
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb21
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.6.bb21
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb37
-rw-r--r--meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.7.1.bb38
-rw-r--r--meta-gnome/recipes-gnome/gvfs/gvfs_1.36.0.bb68
-rw-r--r--meta-gnome/recipes-gnome/gvfs/gvfs_1.51.1.bb97
-rw-r--r--meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb14
-rw-r--r--meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb33
-rw-r--r--meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb32
-rw-r--r--meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb19
-rw-r--r--meta-gnome/recipes-gnome/libgsf/libgsf/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch (renamed from meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch)0
-rw-r--r--meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb29
-rw-r--r--meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb22
-rw-r--r--meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh5
-rw-r--r--meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb29
-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.38.0.bb13
-rw-r--r--meta-gnome/recipes-gnome/libgtop/libgtop_2.41.1.bb11
-rw-r--r--meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch26
-rw-r--r--meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb30
-rw-r--r--meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.5.bb24
-rw-r--r--meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb20
-rw-r--r--meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb19
-rw-r--r--meta-gnome/recipes-gnome/libwnck/libwnck3_43.0.bb27
-rw-r--r--meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb7
-rw-r--r--meta-gnome/recipes-gnome/libxklavier/libxklavier/0001-xklavier_config_xkb.c-Fix-keyboard-layout-settings-f.patch39
-rw-r--r--meta-gnome/recipes-gnome/libxklavier/libxklavier/fix-do_installe-failure.patch (renamed from meta-gnome/recipes-gnome/libxklavier/files/fix-do_installe-failure.patch)2
-rw-r--r--meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb13
-rw-r--r--meta-gnome/recipes-gnome/metacity/metacity/0001-drop-zenity-detection.patch14
-rw-r--r--meta-gnome/recipes-gnome/metacity/metacity_3.28.0.bb36
-rw-r--r--meta-gnome/recipes-gnome/metacity/metacity_3.46.1.bb39
-rw-r--r--meta-gnome/recipes-gnome/mutter/mutter_44.3.bb105
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch46
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch40
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb33
-rw-r--r--meta-gnome/recipes-gnome/nautilus/nautilus_44.2.1.bb51
-rw-r--r--meta-gnome/recipes-gnome/rest/librest_0.8.1.bb35
-rw-r--r--meta-gnome/recipes-gnome/rest/rest_0.9.0.bb25
-rw-r--r--meta-gnome/recipes-gnome/sysprof/sysprof/0001-meson-Check-for-libunwind-instead-of-libunwind-gener.patch30
-rw-r--r--meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb44
-rw-r--r--meta-gnome/recipes-gnome/tepl/tepl_6.4.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.patch27
-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.5.0.bb81
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker/0001-meson-Do-not-define-TOP_SRCDIR.patch24
-rw-r--r--meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb55
-rw-r--r--meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch29
-rw-r--r--meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch26
-rw-r--r--meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch13
-rw-r--r--meta-gnome/recipes-gnome/wv/wv_1.2.4.bb21
-rw-r--r--meta-gnome/recipes-gnome/yelp/yelp-tools_42.1.bb23
-rw-r--r--meta-gnome/recipes-gnome/yelp/yelp-xsl_42.1.bb20
-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.44.0.bb28
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0.inc49
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch143
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch19
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch30
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest3
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb10
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc23
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch33
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb7
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc23
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch37
-rw-r--r--meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb7
-rw-r--r--meta-gnome/recipes-graphics/cogl/cogl-1.0.inc84
-rw-r--r--meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch92
-rw-r--r--meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb6
-rw-r--r--meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb26
-rw-r--r--meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch36
-rw-r--r--meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch44
-rw-r--r--meta-gnome/recipes-support/accountsservice/accountsservice_22.08.8.bb32
-rw-r--r--meta-gnome/recipes-support/appstream-glib/appstream-glib_0.8.2.bb39
-rw-r--r--meta-gnome/recipes-support/colord-gtk/colord-gtk_0.3.0.bb25
-rw-r--r--meta-gnome/recipes-support/ibus/ibus-native.bb34
-rw-r--r--meta-gnome/recipes-support/ibus/ibus.bb41
-rw-r--r--meta-gnome/recipes-support/ibus/ibus.inc41
-rw-r--r--meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch34
-rw-r--r--meta-gnome/recipes-support/keybinder/keybinder_3.0.bb8
-rw-r--r--meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.1.bb11
-rw-r--r--meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch62
-rw-r--r--meta-gnome/recipes-support/libuser/libuser/0001-docs-Disable-building.patch29
-rw-r--r--meta-gnome/recipes-support/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch34
-rw-r--r--meta-gnome/recipes-support/libuser/libuser_0.62.bb35
-rw-r--r--meta-gnome/recipes-support/libuser/libuser_0.64.bb45
-rw-r--r--meta-gnome/recipes-support/libwacom/libwacom_2.6.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/packagegroups/packagegroup-gnome-apps.bb28
-rw-r--r--meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb30
-rw-r--r--meta-gnome/recipes-support/usermode/usermode/0001-Makefile.am-Link-with-libm-for-powl-API.patch11
-rw-r--r--meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch34
-rw-r--r--meta-gnome/recipes-support/usermode/usermode_1.111.bb30
-rw-r--r--meta-gnome/recipes-support/usermode/usermode_1.114.bb30
-rw-r--r--meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.4.bb23
-rw-r--r--meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.1.bb35
-rw-r--r--meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gtk_1.14.1.bb42
-rw-r--r--meta-gnome/site/arm-6413
-rw-r--r--meta-gnome/site/riscv64-linux16
-rw-r--r--meta-gnome/site/x86_64-linux17
-rw-r--r--meta-initramfs/README36
-rw-r--r--meta-initramfs/README.md35
-rw-r--r--meta-initramfs/classes/klibc.bbclass12
-rw-r--r--meta-initramfs/conf/layer.conf4
-rw-r--r--meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb22
-rw-r--r--meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb28
-rw-r--r--meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-Use-new-reboot-API-with-klibc.patch42
-rw-r--r--meta-initramfs/recipes-bsp/kexecboot/files/0001-make-Add-compiler-includes-in-cflags.patch33
-rw-r--r--meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb10
-rw-r--r--meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb54
-rw-r--r--meta-initramfs/recipes-core/images/initramfs-debug-image.bb25
-rw-r--r--meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb30
-rw-r--r--meta-initramfs/recipes-core/images/initramfs-kexecboot-klibc-image.bb (renamed from meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb)0
-rw-r--r--meta-initramfs/recipes-core/images/meta-initramfs-image.bb6
-rw-r--r--meta-initramfs/recipes-core/initrdscripts/files/init-debug.sh (renamed from meta-initramfs/recipes-bsp/initrdscripts/files/init-debug.sh)0
-rw-r--r--meta-initramfs/recipes-core/initrdscripts/initramfs-debug_1.0.bb (renamed from meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb)2
-rw-r--r--meta-initramfs/recipes-core/packagegroups/packagegroup-meta-initramfs.bb18
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch35
-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.patch16
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut_056.bb71
-rw-r--r--meta-initramfs/recipes-devtools/dracut/dracut_git.bb69
-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.bb40
-rw-r--r--meta-initramfs/recipes-devtools/grubby/grubby_git.bb30
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-Define-in_-structs-for-non-glibc-system-libs.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Define-in_-structs-for-non-glibc-system-libs.patch)8
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-always-use-bfd-linker.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-always-use-bfd-linker.patch)2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-arm-Do-not-set-a-fallback-march-and-mtune.patch)4
-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.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-include-linux-sysinfo.h-directly.patch)8
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch26
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-klibc-add-getrandom-syscall.patch24
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch24
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-mkfifo-Implement-mkfifo.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-mkfifo-Implement-mkfifo.patch)2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/0001-workaround-for-overlapping-sections-in-binary.patch47
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/armv4-fix-v4bx.patch)8
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/cross-clang.patch26
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/klcc-consider-sysroot.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klcc-consider-sysroot.patch)2
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/klcc-cross-accept-clang-options.patch38
-rw-r--r--meta-initramfs/recipes-devtools/klibc/files/use-env-for-perl.patch (renamed from meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/use-env-for-perl.patch)4
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.10.bb32
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb34
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch28
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch28
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-dash-Specify-format-string-in-fmtstr.patch29
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch24
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch29
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch151
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.10.bb12
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb12
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-utils.inc18
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.10.bb14
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb14
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc.inc54
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc_2.0.10.bb26
-rw-r--r--meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb24
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-make-Add-compiler-includes-in-cflags.patch32
-rw-r--r--meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb36
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch4
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch6
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch4
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch55
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch8
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch6
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch4
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch29
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch5
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch5
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0014-add-if_nameindex-from-musl.patch16
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0015-vmcore-dmesg-fix-warning.patch12
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch158
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64-crashdump-arm64.c-fix-warning.patch10
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch58
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch7
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_purgatory-Makefile-remove-unknown-flags.patch51
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch44
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch4
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/include_next.patch24
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch94
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch23
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch9
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch36
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86-64-purgatory-Makefile-remove-unknown-flags.patch33
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch4
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch16
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch2
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch4
-rw-r--r--meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb62
-rw-r--r--meta-multimedia/README19
-rw-r--r--meta-multimedia/README.md17
-rw-r--r--meta-multimedia/classes/juce.bbclass4
-rw-r--r--meta-multimedia/conf/layer.conf8
-rw-r--r--meta-multimedia/licenses/AOM-Patent-License-1.0108
-rw-r--r--meta-multimedia/licenses/BellBird25
-rw-r--r--meta-multimedia/licenses/CMU-Tex20
-rw-r--r--meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android92
-rw-r--r--meta-multimedia/licenses/Sun23
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch102
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gssdp.inc20
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb9
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb31
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc13
-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.12.10.bb7
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.bb14
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb19
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.12.0.bb16
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb14
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb13
-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.8.13.bb13
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp.inc25
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-all-Drop-xmlRecoverMemory.patch107
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb8
-rw-r--r--meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb24
-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.6.bb24
-rw-r--r--meta-multimedia/recipes-connectivity/libupnp/libupnp_git.bb20
-rw-r--r--meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb68
-rw-r--r--meta-multimedia/recipes-connectivity/rygel/rygel_0.40.4.bb93
-rw-r--r--meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch38
-rw-r--r--meta-multimedia/recipes-dvb/oscam/oscam_svn.bb10
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch176
-rw-r--r--meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb36
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/jsonschemabuilder-native.bb24
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-Fix-file_Emu-on-musl.patch496
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch32
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch46
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch25
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch163
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch26
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch35
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch30
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch43
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch180
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch40
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch54
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch87
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch96
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service14
-rw-r--r--meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb216
-rw-r--r--meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb6
-rw-r--r--meta-multimedia/recipes-mkv/libmatroska/libmatroska/0001-Makefile-Use-LINKFLAGS-during-link-step.patch1
-rw-r--r--meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch109
-rw-r--r--meta-multimedia/recipes-multimedia/aom/aom_3.6.1.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb66
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch50
-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/Avoid-ambiguity-in-div-invocation.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch3
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb31
-rw-r--r--meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb2
-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.2.0.bb17
-rw-r--r--meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch31
-rw-r--r--meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb10
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb10
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb10
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch123
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb13
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb102
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch31
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch28
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch45
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch28
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch18
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/ca-AB-Calgary48
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ATSC-center-frequencies-8VSB410
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CA-SF-Bay-Area81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CO-Denver116
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-HRC-center-frequencies-QAM256767
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-IRC-center_frequencies-QAM256767
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-HRC-center-frequencies-QAM256767
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-IRC-center-frequencies-QAM256767
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-Standard-center-frequencies-QAM256961
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ID-Boise38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MA-Boston68
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MI-Lansing32
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-NTSC-center-frequencies-8VSB410
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-PA-Philadelphia56
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/activy.rcmm53
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/galaxis.rcmm50
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge.rc524
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge2.rc540
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge_grey.rc539
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/mbo_81095-code_562.rc539
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_088.rc536
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_155.rc535
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips.rc532
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips1358.rc537
-rw-r--r--meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/technotrend.rc541
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Innsbruck50
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabel-Braunau194
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabelsignal290
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-KarrerNet187
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Liwest227
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-SalzburgAG50
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Vienna10
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/be-IN.DI-Integan114
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/br-Net-Digital13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Bern-upc-cablecom11
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-GGA-Pratteln287
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Rega-Sense209
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Video200012
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Zuerich-upc-cablecom11
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-interGGA223
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-quickline-ewaarberg8
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-Moravianet108
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-UPC227
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Berlin26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Brandenburg-Havel226
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Hessen-Unitymedia343
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_BW23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_Deutschland-Hannover219
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Muenchen174
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-NetAachen292
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Primacom251
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Unitymedia260
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-iesy146
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-komro-Rosenheim226
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-neftv237
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Aarhus-Antenneforening9
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Copenhagen-AFDK67
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Odense66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-YouSee223
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/es-Euskaltel117
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-HTV234
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Joensuu-Tikka90
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Kaisa226
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-TTV18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Turku170
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-dna237
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-jkl66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-sonera196
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-vaasa-oncable90
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fr-noos-numericable314
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hr-B.net250
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hu-Digikabel144
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/lu-Ettelbruck-ACE132
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Delta15
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-REKAM-CAIW_Gouda18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Ziggo17
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-CanalDigital97
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-Get169
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ro-DigiTV201
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-Gothnet121
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-comhem248
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ABS1-75.0E66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC1-103w19
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC10_C-135W21
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC11_C-131W30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC16-85.0W27
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC18_C-105W20
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC4-101w59
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC5-79w19
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC6-72w331
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC8_C-139W57
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9-83.0W123
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9_C-83.0W49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Agila2_C-146.0E186
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amazonas-61.0W411
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amos-4w370
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1-107.3W35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1R_C-107.3W93
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F2_C-111.1W12
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F3-119W560
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Apstar6_C-134.0E36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat2_C-100.5E156
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat3S_C-105.5E326
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Asiasat4_C-122.2E76
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-19.2E10
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-23.5E450
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-28.2E863
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-1-12.5W270
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-3-5.0W364
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B1-75.0W67
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B2-65.0W251
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B4-70.0W291
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilsatB4-84.0W659
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ChinaSat5A-87.5E36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Echostar-10+11-110W281
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Estrela-do-Sul-63.0W195
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Eutelsat9-9.0E114
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/EutelsatW2-16E451
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Express-3A-11.0W11
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM1-40.0E26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM2-80.0E168
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM22-53.0E51
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy10R-123w59
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy13_C-127W39
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy14_C-125W30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy15_C-133W22
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy16_C-99.0W137
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17-91.0W370
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17_C-91.0W48
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19-97.0W130
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19_C-97.0W138
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy23_C-121W111
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy25-93.0W474
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy27-129w11
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28-89.0W315
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28_C-89.0W30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C-95.0W10
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C_C-95.0W29
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hispasat-30.0W297
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hotbird-13.0E778
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/IA7-129w11
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat2E_C-83.0E296
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat3A_C-93.5E206
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4A_C-83.0E296
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4B_C-93.5E156
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel4-72.0E34
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel904-60.0E90
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1002-1.0W146
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-11-43.0W11
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-12-45.0E106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1R-45.0W331
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-3R-43.0W259
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-6B-43.0W115
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-705-50.0W35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-707-53.0W19
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-903-34.5W35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-905-24.5W51
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-907-27.5W51
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat21_C-58.0W273
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat34_C-55.5W371
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat8_C-166.0E116
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/JCSat3A_C-128.0E46
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Measat3_C-91.5E166
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-10-37.5W75
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-7-22.0W179
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-806-40.5W843
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nahuel-1-71.8W67
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nilesat101+102-7.0W314
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusC1-156E146
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusD1-160.0E18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PAS-43.0W34
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PalapaC2_C-113.0E116
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SBS6-74w11
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES1_C-101W75
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2-87.0W59
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2_C-87.0W66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES3_C-103W111
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ST1_C-80.0E76
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-5-116.8W555
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-6-113.0W131
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Sirius-5.0E519
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telecom2-8.0W122
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telkom1_C-108.0E146
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar10_C-76.5E196
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar12-15.0W194
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar18_C-138.0E46
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom1A_C-120.0E66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom2_C-78.5E96
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom5_C-78.5E216
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thor-1.0W506
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Turksat-42.0E818
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Vinasat1_C-132.0E26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Yamal201-90.0E209
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ad-Andorra49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/at-All591
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Adelaide79
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-AdelaideFoothills66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Ballarat66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Bendigo326
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Brisbane79
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Cairns66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Canberra-Black-Mt66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Coonabarabran57
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Darwin65
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Devonport95
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-FraserCoast-Bundaberg66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-GoldCoast108
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Goulburn-Rocky_Hill664
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hervey_Bay-Ghost_Hill81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hobart66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Mackay68
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne88
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Selby66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Upwey66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-MidNorthCoast131
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Newcastle66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth_Roleystone66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SpencerGulf40
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SunshineCoast66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sutherland63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney82
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney_Kings_Cross68
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Tamworth200
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Townsville66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-WaggaWagga66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Wollongong149
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-canberra66
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-unknown13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Australia1209
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Default691
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Taiwan160
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-With167kHzOffsets1869
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ax-Smedsbole34
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/be-All62
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/bg-Sofia58
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-All339
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Citycable325
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Geneva147
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/co-All34
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/cz-All483
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Baden-Wuerttemberg194
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bayern237
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Berlin110
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Brandenburg50
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bremen74
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Dusseldorf144
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hamburg98
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hessen194
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Mecklenburg-Vorpommern110
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Niedersachsen270
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Nordrhein-Westfalen231
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Rheinland-Pfalz98
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Saarland50
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen134
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen-Anhalt122
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Schleswig-Holstein182
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Thueringen86
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/dk-All231
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ee-All393
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Albacete145
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alfabia145
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alicante85
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Almeria108
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alpicat73
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Asturias194
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-BaixoMinho81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Bilbao72
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Cadiz294
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Carceres108
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Collserola121
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Donostia122
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Granada73
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Huesca124
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Las_Palmas149
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Lugo74
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Madrid142
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Malaga73
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Muros-Noia85
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Mussara73
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Pamplona85
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-SC_Tenerife149
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santander50
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santiago_de_Compostela85
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Sevilla231
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Tenerife145
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valencia97
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valladolid61
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vilamarxant25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vitoria-Gasteiz74
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Zaragoza62
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski_Konginkangas23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ahtari13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Alajarvi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Anjalankoski_Ruotila28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Espoo38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Eurajoki38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hameenlinna38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hamina38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hausjarvi38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Helsinki38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jokioinen38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jyvaskyla38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kaarina38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kajaani38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kangasala38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Karkkila38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kiiminki38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kokkola38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kontiolahti38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kouvola38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kuopio38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lahti38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lappeenranta38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lohja38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Loviisa38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Mikkeli38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nousiainen38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nurmijarvi38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Porvoo38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Salo38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Savonlinna38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Seinajoki38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Tyrnava38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ulvila38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vaasa38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Valkeakoski38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vesilahti38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ylivieska38
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Ahovaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Hetta13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Kuttanen13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Espoo33
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Eurajoki28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Fiskars23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Haapavesi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenkyro_Kyroskoski23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenlinna_Painokangas18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hanko23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hartola18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinavesi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinola23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Kyparavaara18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Paljakka18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyvinkaa23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ii_Raiskio13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Iisalmi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen_Riitiala23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Janispaa13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Naatamo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ivalo_Saarineitamovaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jalasjarvi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Halli23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Kaipola23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Matkosvuori23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Ouninpohja18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsankoski23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joensuu_Vestinkallio18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joroinen_Puukkola18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutsa_Lankia23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutseno28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juupajoki_Kopsamo18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juva23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla33
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla_Vaajakoski18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaavi_Sivakkavaara18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kajaani_Pollyvaara18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kalajoki18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangaslampi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangasniemi_Turkinmaki23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kankaanpaa23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karigasniemi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karkkila23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karstula18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karvia18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaunispaa13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kemijarvi_Suomutunturi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kerimaki23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu_Haapamaki23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kihnio23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kiihtelysvaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kilpisjarvi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kittila_Levitunturi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kolari_Vuolittaja13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Koli23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korpilahti_Vaarunvuori23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korppoo23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kruunupyy28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Haukela18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Lentiira18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Niva18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Harjunsalmi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Puukkoinen18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuopio28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kurikka_Kesti23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kustavi_Viherlahti23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuusamo_Hamppulampi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kyyjarvi_Noposenaho18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lahti33
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lapua28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa_Vihtavuori23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lavia18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lohja23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Loimaa23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luhanka23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luopioinen23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantta23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantyharju18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mikkeli23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Muonio_Olostunturi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Keski-Siikajarvi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Pisa18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia_Siuro23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nummi-Pusula_Hyonola23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_Njallavaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_raja13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Konnanvaara23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Kortevaara18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Orivesi_Talviainen18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Oulu33
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki_Arrakoski23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Paltamo_Kivesvaara18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parainen_Houtskari23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parikkala23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parkano_Sopukallio23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello_Ratasvaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Perho23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pernaja18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pieksamaki_Halkokumpu18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pihtipudas18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Porvoo_Suomenkyla23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Posio13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Iso-Syote18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Kangasvaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Puolanka23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhatunturi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhavuori18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pylkonmaki_Karankajarvi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Mestauskallio23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Piehinki18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Haasionmaa13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Leppiaho13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautavaara_Angervikko23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautjarvi_Simpele18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ristijarvi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Kaihuanvaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Karhuvaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Marasenkallio13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Rantalaki13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sonka13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sorviselka13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruka18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruovesi_Storminiemi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Kalmari18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Mahlu18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Hirvasvaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Ihistysjanka13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Naruska13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sallatunturi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sarivaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salo_Isokyla23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Martti13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Tanhua13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Siilinjarvi23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Simo_Viantie18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sipoo_Norrkulla23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Pittiovaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Vuotso13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sulkava_Vaatalanmaki18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ala-Vuokki13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ammansaari13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Juntusranta13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Myllylahti13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sysma_Liikola23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski_Taivalvaara13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammela28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammisaari23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere33
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere_Pyynikki28
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tervola18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Turku33
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Nuvvus13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Outakoski13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Polvarniemi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Rovisuvanto13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Tenola13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Uusikaupunki_Orivo23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaala18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaasa18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Valtimo18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Jyranvuori23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Roismala18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Savi18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vantaa_Hakunila23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Varpaisjarvi_Honkamaki23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Virrat_Lappavuori23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vuokatti23
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Ainiovaara18
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Raanujarvi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllas13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllasjarvi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fr-All481
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/gr-Athens95
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hk-HongKong94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hr-All315
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Bekescsaba53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Budapest53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Csavoly-Kiskoros42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Debrecen-Komadi53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Fehergyarmat42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gerecse-Dorog-Tatabanya53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gyor53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kabhegy-Kaposvar-Tamasi42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karancs-Nagy-Hideg-hegy-Balassagyarmat-Godollo-Salgotarjan-Vac53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karcag53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kecskemet53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kekes-Cegled-Eger-Miskolctapolca-Ozd53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Miskolc-Aggtelek-Fony53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Mor-Siofok-Veszprem-Zirc53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nagykanizsa-Barcs-Keszthely53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nyiregyhaza-Tokaj-Kazincbarcika-Saly-Satoraljaujhely53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Pecs-Siklos42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Sopron-Koszeg53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szeged53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szekesfehervar53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szentes-Battonya42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szolnok53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szombathely-Vasvar-Lenti-Zalaegerszeg53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Uzd-Bonyhad-Dunaujvaros-Szekszard-Szigetvar53
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-CairnHill26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ClermontCarn26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Dungarvan26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-HolywellHill26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Kippure26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Maghera26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-MountLeinster26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Mullaghanish26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-SpurHill26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ThreeRock26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Truskmore26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-WoodcockHill26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/il-All26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ir-Tehran25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/is-Reykjavik226
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/it-All761
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lt-All302
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lu-All49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lv-Riga92
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nl-All483
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/no-Trondelag_Stjordal39
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandInfill42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandWaiatarua42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Christchurch42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Dunedin42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Hamilton42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayMtErin42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayNapier42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Manawatu42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Tauranga42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Waikato42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonInfill42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonKaukau42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonNgarara42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Czestochowa46
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Gdansk25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krakow82
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krosno_Sucha_Gora35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Rzeszow13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Szczecin46
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Warszawa64
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Wroclaw13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pt-All85
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ro-Bucharest37
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Krasnodar26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Novosibirsk26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Volgodonsk26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aareavaara5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Adolfstrom5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Agnas5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Akersjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alafors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Albacken5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Algsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alingsas_Mariedal35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvangen35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalen_Brunnsberg13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalsasen13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbacka5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbyn70
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Ribovardo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Tjultrask5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amot13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amotfors_Kroppstad5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-An5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Andersvattnet_Ersmyrberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ange_Snoberg63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angebo6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angelholm_Vegeholm35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angersjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Are35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjang35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjeplog_Galtispouda35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arosjokk5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvidsjaur_Jultrask35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvika_Orshultaberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-As5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asele_Aslia5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asmon_Sormoflo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aspeboda13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Atvidaberg35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Avesta_Krylbo35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backe5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backefors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bankeryd35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bengtsfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Berghamn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergshamra_Vaxtuna35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergsjo_Balleberget13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergvik13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Billsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bispfors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkliden_Tornehamn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorksele5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkvattnet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorna5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurberget_Hemtjarn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurtrask5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boberg5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boda_Fagerum35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boden_Skogsa5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bograngen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollebygd36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollnas63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bonhamn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Dalsjofors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Sjobo35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgafjall5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgholm_Ramsattra31
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgsjobyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borkan5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Idkerberget63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Nygardarna49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bortansbyn_Bortan5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bosebyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Botsmark5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bottnaryd_Ryd13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredaker5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Kubbe5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Vasterfannbyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredsjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bromsebro35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bruzaholm13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bydalen_Hovdehogen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdetrask5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdsiljum5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Byxelkrok25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dadran5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dal5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalfors13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dals_Langed5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalstuga13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degeberga5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degerfors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary_Kolaboda5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Djura13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dorotea5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Drevdagen13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duved5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas_Basna13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edane5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsbyn13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsele5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsleskog_Hogheden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Eksharad_Ekesberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ellos5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Emmaboda_Balshult36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enafors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enviken36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Erikslund_Bergasen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta_Jattasen35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falerum_Centrum13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falkenberg_Ringsegard5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faltrask5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falun_Lovberget36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farila13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farjestaden_Algutsrum35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkerstrask25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkestrask30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farosund_Bunge31
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fengersfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Filipstad_Klockarhojden36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Finnveden36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjal5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjallsta5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flarke5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Floda5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flurkmark5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyggsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Folsbyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsed5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo_Yttersel5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsnaset5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Frankrikegarden_Frankrike5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fransta5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredrika5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredriksberg13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredros5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fritsla13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fullsjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Funasdalsberge35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Telestation5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Furudal13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gaddede5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallivare36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallsatter5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gardikfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gargnas5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Garpenberg_Kuppgarden13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gavle_Skogmur36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gillhov5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Glimakra5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnarp13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnesta25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnosjo_Marieholm13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gordalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Brudaremossen36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Slattadamm31
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Graninge5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmark5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmyr5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grebbestad35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grevie5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grovelsjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grums5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg_Rodvattnet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gullbrandstorp13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gumhojden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarn_Sorsjoliden35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarskog5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gusum13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hadanberg5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hagfors_Varmullsasen36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hakafot5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halaforsen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Haljeboda5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallan5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallaryd13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallastrom5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallbo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halle5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halleviksstrand5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Hamnen31
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Oskarstrom36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hamburgsund5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harads5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harnosand_Harnon36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harrsjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hassela13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Havdhem61
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hede35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedemora6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedenaset5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helgum5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helsingborg_Olympia36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemavan35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemson5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Henan5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hennan13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hestra_Aspas13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hjo_Grevback13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hofors36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogfors13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoglunda5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogsby_Virstad36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogvalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holjes5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hollviken_Stora_Hammar30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holsbybrunn_Holsbyholm13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horby_Sallerup36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horken13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hornon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hotagen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoting5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hovfjallet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Forsa36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Galgberget36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hummelholm5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hunnebostrand5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Huskvarna13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Husum5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idivuoma5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idre36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingatorp13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingvallsbenning6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik_319530
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ivarsbyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jakkvik_Frakenmyren5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jamjo25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarkvissle5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarnforsen13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarpen_Mellangardsberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvso13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvtrask5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Joestrom5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Nyborg35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Tjalmejaure36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jonkoping_Bondberget36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jormvattnet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jude5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Hamptjarnsberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Vallen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kagerod_Mollarp5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalarne5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalix36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallered5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallinge_Kalleberga35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallror5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kampersvik_Ekeberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karbole13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karesuando5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlanda5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlsborg_Vaberget13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlshamn36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Jamjo35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Vamo36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlstad_Sormon36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kasta_Ringkallen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxas5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxholmen_Vistakulle13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kinnastrom13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kiruna_Kirunavaara63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kisa70
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klingsta5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klovsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knared13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knavland5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopmanholmen63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopparberg35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Koppom35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Korstrask5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kottsjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kovland5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Lugnvik36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Ostby5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krangede5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristineberg5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristinehamn_Utsiktsberget36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krokstrand5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kultsjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungalv35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsater13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsbacka_Ojersbo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_GI13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_Gl5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungshamn35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kurravaara5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvarnsvedjan5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Arrevare5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Tavvevare5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kyrkesund5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lagfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laggarberg5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laisvall5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langa5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langsele5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan_Engelsfors6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxviken5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Asledsberget35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Karingberget13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lekvattnet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lerdala13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lesjofors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden_Osterstrom5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilla_Edet35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillogda5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillpite_Bastaberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilltjara_Digerberget13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Limedsforsen13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lindshammar_Ramkvilla13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linkoping_Vattentornet36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linsell5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lit5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn_319330
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungaverk5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungdalen35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljustorp5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljusvattnet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loderups_Strandbad5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loffstrand36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lofsdalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Logdealv5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lonneberga35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lorstrand13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lovanger5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ludvika_Bjorkasen36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lumsheden_Trekanten13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lycksele_Knaften36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mahult13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mala5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malmo_Jagersro36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malung36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Manserud5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mardsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mariannelund6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Markaryd_Hualtet49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matfors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matsdal5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Medstugan5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mittadalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjallom35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjosjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moliden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molnbo_Tallstugan35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molndal_Vasterberget30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mora_Eldris63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Morkret5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moskosel5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Motala_Ervasteby70
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mullsjo_Torestorp35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkedal35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkfors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Muodoslompolo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nalden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasaker5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasanget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nassjo63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasteln5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Navekvarn6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Naverede_Oberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Niemisel5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordanede5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordmaling5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norra_Rorum5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrahammar13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norraker5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrhassel5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrkoping_Krokek36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra_Bergen61
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norsjovallen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyhem5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nykoping13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyliden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nynashamn_Vattentornet35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Odsmal5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olden_Telestation5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olkamangi5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olofstrom5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orebro_Lockhyttan70
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orkelljunga35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ornskoldsvik_As70
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oskarshamn35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osmo_Bjorsta10
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osterforse5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostergraninge5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostersund_Brattasen36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osthammar_Valo36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostmark5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overammer5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overhogdal5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overkalix36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overklinten5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overrissjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overtornea_Sarkivaara35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overturingen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oxberg13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pajala35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistom13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistrom5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pilgrimstad5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Porjus35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Puoltsa5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ragunda35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsele_Skavasen35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramundberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randijaure5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ransater5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rattvik6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rengsjo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Renstrom5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Resele5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Risback5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rissna5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ritsem5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Robertsfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rojdafors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ronnang5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rorbacksnas13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rosson5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rusksele5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sadvaluspen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sagmyra13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saivomuotka5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salen13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salfjallet13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sarna_Mickeltemplet13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Satila13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savar_Sorbyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savast5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saxdalen13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seitevaare5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Selanger5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seltjarn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sidensjo_Aberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Siljansnas_Uvberget13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Simrishamn_Fabriksgatan35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalan5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalmsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarstad13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarvangen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skattungbyn13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skaulo_Pyhakielinen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skelleftea36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skene_Nycklarberget13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skillingsfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skorped5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skottsund5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skovde70
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skroven5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skymnas5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Slussfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Smedjebacken_Uvberget36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderhamn36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderkoping36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sodertalje_Ragnhildsborg36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Hallsta63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Multra63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soraker5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorbygden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorflarke5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Nalovardo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Vattentornet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsjon13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soukolojarvi5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stalon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stigsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Marieberg36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Nacka71
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Hullsjon5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Intaget35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stomne_Skasas5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stora_Skedvi13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stordalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storfjaten13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storlien5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storuman36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromstad36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromsund_Grelsgard35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stugun5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Styrsjobo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suddesjaur5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suijavaara5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sulvik5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundborn13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsbruk36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsvall_S_Stadsberget36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_As5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_Blabarskullen36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunnemo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svaneholm5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svanstein5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svardsosund_Svardso5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svartnas13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Brickan36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Ransjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svenstavik5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svinesund5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Syssleback35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Taberg13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tandadalen6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tannas_Vastra5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tanndalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnaby_Ryfjallet35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnamo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tasjo36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tavelsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tocksfors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tollsjo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tormestorp5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tornetrask5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torpshammar35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torsby_Bada36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranas_Bredkarr35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranemo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Transtrand_Bolheden36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Traryd_Betas36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trehorningsjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trelleborg_Gylle35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trollhattan36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trosa25
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tullinge_Hamra35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tyringe5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tystberga6
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Herrestad36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Kapelle5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uggleheden5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullanger_Skidsta5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullared13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulricehamn36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvohamn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvshyttan_Porjus13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umea_Mariehem5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umfors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umgransele_Granselelund5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Undersaker5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Rickomberga13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Vedyxa36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utansjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utanskog5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaddo_Elmsta36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valadalen5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valanger5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valdemarsvik36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valsjobyn5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vannas_Granlundsberget36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vansbro_Hummelberget13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varberg_Grimeton63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varmvattnet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varnamo_Alandsryd5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassbotten5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassijaure5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastansjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vasteras_Lillharad82
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastervik_Farhult36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vato5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaxbo13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vemdalsskalet5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vessigebro13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vetlanda_Nye13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vidsel5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vietas5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vikmanshyttan13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Viksjo5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vilhelmina35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Villands_Vanga5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindelgransele5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindeln_Renfors35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Virserum63
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Follingbo36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Hamnen65
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Havdhem35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visingso13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vislanda_Nydala36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitberget5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand_Vagsjofors5
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Voxna13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vuollerim35
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ystad_Metallgatan36
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Yttermalung13
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/si-Ljubljana27
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaBystrica30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaStiavnica30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bardejov30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bratislava48
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Cadca30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Detva30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Hnusta30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Kosice30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-KralovskyChlmec30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Krompachy30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Lucenec30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Medzev30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Namestovo30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Nitra30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Poprad42
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-PovazskaBystrica30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Presov30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Prievidza30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Revuca30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Roznava30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Ruzomberok30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Snina30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-StaraLubovna30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Sturovo30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Trencin30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Zilina30
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/tw-All132
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kharkov49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kiev49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Lozovaya49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Odessa49
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ug-All45
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Aberdare81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Angus94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BeaconHill94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Belmont94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bilsdale94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BlackHill106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Blaenplwyf81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BluebellHill94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bressay81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrierleyHill93
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolIlchesterCrescent93
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolKingsWeston93
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bromsgrove81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrougherMountain94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Caldbeck94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CaradonHill94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Carmel81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chatton81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chesterfield81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Craigkelly106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CrystalPalace94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Darvel94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Divis94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Dover81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Durris94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Eitshal81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-EmleyMoor106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenham94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenton94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Ferryside57
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Guildford81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hannington94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hastings81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Heathfield81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HemelHempstead81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HuntshawCross81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Idle81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KeelylangHill81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Keighley81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KilveyHill81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KnockMore81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Lancaster81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-LarkStoke81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Limavady81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Llanddona81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Malvern81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Mendip94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Midhurst81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-MoelyParc94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Nottingham93
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-OliversMount81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Oxford106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PendleForest81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Plympton81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PontopPike106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Pontypool81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Preseli81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Redruth81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Reigate81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RidgeHill94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosemarkie81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosneath81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rowridge106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RumsterForest81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Saddleworth81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Salisbury81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SandyHeath94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Selkirk81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sheffield106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-StocklandHill81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Storeton93
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sudbury81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SuttonColdfield106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Tacolneston94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TheWrekin81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Torosay81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TunbridgeWells81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Waltham106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Wenvoe106
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WhitehawkHill81
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WinterHill94
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Hanoi26
-rwxr-xr-xmeta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Thaibinh26
-rw-r--r--meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/faac/faac_1.29.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch28
-rw-r--r--meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb22
-rw-r--r--meta-multimedia/recipes-multimedia/flite/flite_2.2.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch76
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch178
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch304
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb24
-rw-r--r--meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb40
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service13
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-against-fmt-10.patch168
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera_1.11.0.bb32
-rw-r--r--meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc14
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb73
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch18
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch46
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb35
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch36
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb61
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch20
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb43
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch35
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch22
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb29
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch33
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch45
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch47
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb47
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch193
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch58
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb35
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc29
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch38
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb18
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch35
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch19
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch16
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c487
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h194
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb53
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch33
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb38
-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.inc25
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch55
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb35
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb7
-rw-r--r--meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb19
-rw-r--r--meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb3
-rw-r--r--meta-multimedia/recipes-multimedia/juce/projucer.inc33
-rw-r--r--meta-multimedia/recipes-multimedia/juce/projucer_git.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb13
-rw-r--r--meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/libavif/libavif_0.11.1.bb16
-rw-r--r--meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch43
-rw-r--r--meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb16
-rw-r--r--meta-multimedia/recipes-multimedia/libcamera/libcamera_0.1.0.bb72
-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_git.bb25
-rw-r--r--meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb20
-rw-r--r--meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb19
-rw-r--r--meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa/libdvbcsa.pc10
-rw-r--r--meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb19
-rw-r--r--meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb2
-rw-r--r--meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest9
-rw-r--r--meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb81
-rw-r--r--meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch70
-rw-r--r--meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb7
-rw-r--r--meta-multimedia/recipes-multimedia/libuvc/libuvc.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/mimic/mimic/0001-Fix-musl-compatibility.patch30
-rw-r--r--meta-multimedia/recipes-multimedia/mimic/mimic/0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb32
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna.inc43
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch31
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d (renamed from meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d)0
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service (renamed from meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service)0
-rw-r--r--meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch21
-rw-r--r--meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch50
-rw-r--r--meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb39
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch10
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb7
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb22
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb13
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd/0001-SndfileDecoderPlugin-Fix-type-mismatch-for-std-span.patch28
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd/fix-build-error-when-fmt-updated.patch71
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd/minor-fixup-for-libfmt10.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.18.bb100
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.12.bb104
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/ncmpc/0001-SearchPage-use-regular-integer-to-fix-Wenum-constexp.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.47.bb40
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch194
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch48
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch31
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch103
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch121
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch30
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json1
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service12
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service14
-rw-r--r--meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb95
-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.0.16.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.15.1.bb20
-rw-r--r--meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb24
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264/0001-Makefile-Use-cp-options-to-preserve-file-mode.patch32
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb42
-rw-r--r--meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb51
-rw-r--r--meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb15
-rw-r--r--meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/opusfile/opusfile_0.12.bb14
-rw-r--r--meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb80
-rw-r--r--meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb65
-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.75.bb388
-rw-r--r--meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch10
-rw-r--r--meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb10
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb6
-rw-r--r--meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb4
-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.bb7
-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.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb4
-rw-r--r--meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb13
-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/tremor/tremor_20150107.bb27
-rw-r--r--meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb21
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb12
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb13
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc.inc113
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch13
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch17
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch17
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch233
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch46
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch57
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch19
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch47
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch17
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch31
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch19
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch279
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch293
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch45
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb19
-rw-r--r--meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb134
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch49
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch27
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch26
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch37
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb25
-rw-r--r--meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb26
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch29
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch30
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch96
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/riscv_support.patch33
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb23
-rw-r--r--meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb28
-rw-r--r--meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua5
-rw-r--r--meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.14.bb146
-rw-r--r--meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb29
-rw-r--r--meta-multimedia/recipes-support/crossguid/crossguid.bb25
-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.bb17
-rw-r--r--meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb19
-rw-r--r--meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb7
-rw-r--r--meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb23
-rw-r--r--meta-multimedia/recipes-support/libmediaart/libmediaart.inc14
-rw-r--r--meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb6
-rw-r--r--meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch41
-rw-r--r--meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch19
-rw-r--r--meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch222
-rw-r--r--meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch24
-rw-r--r--meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb27
-rw-r--r--meta-multimedia/recipes-support/libsrtp/libsrtp/0001-Rename-conflicting-variable-mips.patch73
-rw-r--r--meta-multimedia/recipes-support/libsrtp/libsrtp_1.6.0.bb16
-rw-r--r--meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb20
-rw-r--r--meta-multimedia/recipes-support/srt/srt/0001-don-t-install-srt-ffplay.patch28
-rw-r--r--meta-multimedia/recipes-support/srt/srt_1.4.4.bb27
-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/MAINTAINERS12
-rw-r--r--meta-networking/README40
-rw-r--r--meta-networking/README.md40
-rw-r--r--meta-networking/classes/kernel_wireless_regdb.bbclass20
-rw-r--r--meta-networking/classes/waf-samba.bbclass7
-rw-r--r--meta-networking/conf/layer.conf6
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/firewalld.init48
-rw-r--r--meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/run-ptest21
-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.bb45
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-aarch64_be.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-arm.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-armeb.txt48
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-i586.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-i686.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mips.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mips64.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt47
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt48
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt48
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt8
-rw-r--r--meta-networking/files/waf-cross-answers/cross-answers-x86_64.txt8
-rw-r--r--meta-networking/licenses/netperf43
-rw-r--r--meta-networking/recipes-connectivity/adcli/adcli_0.9.2.bb25
-rw-r--r--meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb31
-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.patch43
-rw-r--r--meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb47
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch24
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch50
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch72
-rw-r--r--meta-networking/recipes-connectivity/blueman/blueman_2.3.5.bb88
-rw-r--r--meta-networking/recipes-connectivity/bluepy/bluepy/0001-bluepy-Fix-username-issue-with-tarballs.patch32
-rw-r--r--meta-networking/recipes-connectivity/bluepy/bluepy_git.bb20
-rw-r--r--meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb15
-rw-r--r--meta-networking/recipes-connectivity/civetweb/civetweb/0001-Test-Fix-missing-librt-and-libm-during-native-compil.patch42
-rw-r--r--meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch40
-rw-r--r--meta-networking/recipes-connectivity/civetweb/civetweb_git.bb23
-rw-r--r--meta-networking/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch29
-rw-r--r--meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch21
-rw-r--r--meta-networking/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch11
-rw-r--r--meta-networking/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch58
-rw-r--r--meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch57
-rw-r--r--meta-networking/recipes-connectivity/crda/crda/make.patch25
-rw-r--r--meta-networking/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch34
-rw-r--r--meta-networking/recipes-connectivity/crda/crda_3.18.bb36
-rw-r--r--meta-networking/recipes-connectivity/daq/daq_2.0.6.bb35
-rw-r--r--meta-networking/recipes-connectivity/daq/daq_2.0.7.bb32
-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/dhcp/dhcp-relay_4.4.3p1.bb72
-rw-r--r--meta-networking/recipes-connectivity/dhcp/files/0001-Makefile.am-only-build-dhcrelay.patch30
-rw-r--r--meta-networking/recipes-connectivity/dhcp/files/0002-bind-Makefile.in-disable-backtrace.patch31
-rw-r--r--meta-networking/recipes-connectivity/dhcp/files/0003-bind-Makefile.in-regenerate-configure.patch30
-rw-r--r--meta-networking/recipes-connectivity/dhcp/files/default-relay12
-rw-r--r--meta-networking/recipes-connectivity/dhcp/files/dhcrelay.service10
-rw-r--r--meta-networking/recipes-connectivity/dhcp/files/init-relay44
-rw-r--r--meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb24
-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.patch33
-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.bb22
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb13
-rw-r--r--meta-networking/recipes-connectivity/ez-ipupdate/files/0001-ez-ipupdate-Include-time.h-for-time-API-prototype.patch44
-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-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch28
-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.patch37
-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.patch198
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch33
-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-.patch31
-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-python.m4-for-detecting-python-3.10.patch427
-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.patch31
-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-issues-related-to-m4-include-path.patch236
-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.patch89
-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-volatiles.conf2
-rw-r--r--meta-networking/recipes-connectivity/freeradius/files/radiusd.service8
-rw-r--r--meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb222
-rw-r--r--meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb290
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch31
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch83
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch29
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch14
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch26
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch40
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils20
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils23
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils21
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils13
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils19
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils/version.patch17
-rw-r--r--meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb206
-rw-r--r--meta-networking/recipes-connectivity/kea/files/0001-Added-option-to-provide-kea-msg-compiler.patch235
-rw-r--r--meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-fix-compile-error-about-kea-msg-compiler.patch72
-rw-r--r--meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-update-hooksdir-for-lease_cmds.patch30
-rw-r--r--meta-networking/recipes-connectivity/kea/files/0001-asiolink-fix-build-with-boost-1.66.patch103
-rw-r--r--meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service13
-rw-r--r--meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service13
-rw-r--r--meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service13
-rw-r--r--meta-networking/recipes-connectivity/kea/kea_1.3.0.bb52
-rw-r--r--meta-networking/recipes-connectivity/lftp/files/fix-gcc-6-conflicts-signbit.patch44
-rw-r--r--meta-networking/recipes-connectivity/lftp/lftp_4.8.3.bb33
-rw-r--r--meta-networking/recipes-connectivity/lftp/lftp_4.9.2.bb31
-rw-r--r--meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Replace-use-of-AC_EGREP_CPP.patch39
-rw-r--r--meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Use-pkg-config-variable-to-find-check-incl.patch27
-rw-r--r--meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb18
-rw-r--r--meta-networking/recipes-connectivity/libdnet/libdnet_1.16.3.bb23
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallD.patch29
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch39
-rw-r--r--meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb38
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls/0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch33
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls/0002-aesce-use-correct-target-attribute-when-building-wit.patch34
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls/run-ptest17
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb80
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_2.9.0.bb42
-rw-r--r--meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb78
-rw-r--r--meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch38
-rw-r--r--meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb43
-rw-r--r--meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20191006.bb50
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch35
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch975
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/1571.patch22
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init6
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/files/mosquitto.service15
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/mosquitto_1.4.15.bb93
-rw-r--r--meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb90
-rw-r--r--meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.bb28
-rw-r--r--meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb22
-rw-r--r--meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb14
-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.bb70
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-openconnect_1.2.8.bb46
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.2.bb52
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb39
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch40
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch25
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch77
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-dhcpcd.conf2
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-iwd.conf3
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch53
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch35
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch72
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch62
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch77
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch47
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager/networkmanager.initd110
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb143
-rw-r--r--meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.8.bb309
-rw-r--r--meta-networking/recipes-connectivity/openconnect/openconnect_9.01.bb32
-rw-r--r--meta-networking/recipes-connectivity/openconnect/openconnect_git.bb27
-rw-r--r--meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.5.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.patch40
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch35
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch34
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix/unused_var.patch12
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb65
-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.patch34
-rw-r--r--meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb29
-rw-r--r--meta-networking/recipes-connectivity/openthread/wpantund_git.bb29
-rw-r--r--meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb13
-rw-r--r--meta-networking/recipes-connectivity/python-networkmanager/python3-networkmanager_2.2.bb13
-rw-r--r--meta-networking/recipes-connectivity/rdate/rdate/0001-rdate-define-logwtmp-on-libc-glibc.patch2
-rw-r--r--meta-networking/recipes-connectivity/rdate/rdate_1.5.bb2
-rw-r--r--meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-parallel-build.patch31
-rw-r--r--meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb4
-rw-r--r--meta-networking/recipes-connectivity/relayd/relayd_git.bb8
-rw-r--r--meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb31
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch59
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch32
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0002-do-not-import-target-module-while-cross-compile.patch69
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch50
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch96
-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/0006-avoid-using-colon-in-the-checking-msg.patch32
-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.patch123
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch57
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch58
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch64
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/cmocka-uintptr_t.patch51
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/dnsserver-4.7.0.patch19
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/glibc_only.patch15
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/iconv-4.7.0.patch25
-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.patch40
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/samba-pam.patch25
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/smb.conf240
-rw-r--r--meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch19
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.18.5.bb356
-rw-r--r--meta-networking/recipes-connectivity/samba/samba_4.7.6.bb314
-rw-r--r--meta-networking/recipes-connectivity/sethdlc/sethdlc.bb33
-rw-r--r--meta-networking/recipes-connectivity/sethdlc/sethdlc_1.18.bb31
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch33
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/configure.in-disable-tirpc-checking-for-fedora.patch60
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch62
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch60
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch60
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch85
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch254
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/snort.default1
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/snort.init53
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/snort.service12
-rw-r--r--meta-networking/recipes-connectivity/snort/snort/volatiles.99_snort2
-rw-r--r--meta-networking/recipes-connectivity/snort/snort_2.9.20.bb127
-rw-r--r--meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb107
-rw-r--r--meta-networking/recipes-connectivity/sshpass/sshpass_1.10.bb11
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch37
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/0002-add-an-option-to-specify-iptables-location.patch112
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch118
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch20
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/0003-only-make-one-reference-to-env.patch73
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch40
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch32
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch107
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch77
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw/setuptools.patch20
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw_0.33.bb56
-rw-r--r--meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb74
-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.bb10
-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.bb16
-rw-r--r--meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb20
-rw-r--r--meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch27
-rw-r--r--meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb24
-rw-r--r--meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.4.bb22
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image-base.bb7
-rw-r--r--meta-networking/recipes-core/images/meta-networking-image.bb3
-rw-r--r--meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb269
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp/0001-argz.h-fix-musl-compile-add-missing-defines.patch45
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp/0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch43
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp/atftpd.init (renamed from meta-networking/recipes-daemons/atftp/files/atftpd.init)0
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp_0.8.0.bb56
-rw-r--r--meta-networking/recipes-daemons/atftp/atftp_git.bb64
-rw-r--r--meta-networking/recipes-daemons/atftp/files/atftp-0.7-sorcerers_apprentice.patch94
-rw-r--r--meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch163
-rw-r--r--meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch152
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch30
-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-Define-__SWORD_TYPE-if-undefined.patch115
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch31
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch56
-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.patch41
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/0002-autofs-5.1.8-handle-innetgr-not-present-in-musl.patch106
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/add-the-needed-stdarg.h.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch89
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch30
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch39
-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.patch45
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/force-STRIP-to-emtpy.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch35
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/mount_conflict.patch30
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/no-bash.patch2
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch35
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch40
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb79
-rw-r--r--meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb100
-rw-r--r--meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch25
-rw-r--r--meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch46
-rw-r--r--meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff14
-rw-r--r--meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff27
-rw-r--r--meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch31
-rw-r--r--meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb98
-rw-r--r--meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample21
-rw-r--r--meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init94
-rw-r--r--meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service12
-rw-r--r--meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch25
-rw-r--r--meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb16
-rw-r--r--meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.3.bb13
-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-pppd-ippool.c-Fix-type-casting-issues-between-in_add.patch72
-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-ippool_rpc_server.c-Add-missing-prototype-for-ippool.patch22
-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.service5
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool/strncpy-truncation.patch39
-rw-r--r--meta-networking/recipes-daemons/ippool/ippool_1.3.bb25
-rw-r--r--meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Makefile-Do-not-set-Werror.patch31
-rw-r--r--meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb113
-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.patch60
-rw-r--r--meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb48
-rw-r--r--meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb46
-rwxr-xr-xmeta-networking/recipes-daemons/lldpd/files/run-ptest16
-rw-r--r--meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch32
-rw-r--r--meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb65
-rw-r--r--meta-networking/recipes-daemons/lldpd/lldpd_1.0.17.bb81
-rw-r--r--meta-networking/recipes-daemons/ncftp/ncftp/0001-Forward-port-defining-PREFIX_BINDIR-to-use-new-autoc.patch25
-rw-r--r--meta-networking/recipes-daemons/ncftp/ncftp/ncftp-3.2.5-gcc10.patch83
-rw-r--r--meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch10
-rw-r--r--meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb13
-rw-r--r--meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb32
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch27
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch49
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch41
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch31
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch47
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch37
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/c++11.patch24
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch17
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/cross_899198.patch98
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/fix-narrowing-warning.patch2
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/no-md2.patch37
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch20
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-fix-function-saHpiSensorThresholds.patch35
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch33
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch29
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch23
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch25
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch19
-rw-r--r--meta-networking/recipes-daemons/openhpi/files/openhpid.service2
-rw-r--r--meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb115
-rw-r--r--meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb138
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch69
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-build-with-fno-common.patch311
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch75
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-Use-correct-printf-format-for-__fsblkcnt_t.patch31
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Disable-format-overflow-if-supported-by-gc.patch36
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-configure-Pass-linker-specific-options-with-Wl.patch12
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-create_empty_library-Use-CC-variable-intead-of-hardc.patch23
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-immom_python-convert-to-python3.patch50
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch14
-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-include-missing-array-header.patch32
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch22
-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/0002-Fix-format-truncation-errors.patch102
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf/0002-configure-Disable-selected-warnings.patch28
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb71
-rw-r--r--meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb99
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch26
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch117
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch64
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch107
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch66
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch34
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch58
-rw-r--r--meta-networking/recipes-daemons/postfix/files/0006-makedefs-Account-for-linux-6.x-version.patch35
-rw-r--r--[-rwxr-xr-x]meta-networking/recipes-daemons/postfix/files/aliasesdb0
-rw-r--r--[-rwxr-xr-x]meta-networking/recipes-daemons/postfix/files/check_hostname.sh0
-rw-r--r--meta-networking/recipes-daemons/postfix/files/icu-config.patch21
-rw-r--r--meta-networking/recipes-daemons/postfix/files/install.patch93
-rw-r--r--meta-networking/recipes-daemons/postfix/files/main.cf2
-rw-r--r--meta-networking/recipes-daemons/postfix/files/makedefs.patch116
-rw-r--r--[-rwxr-xr-x]meta-networking/recipes-daemons/postfix/files/postfix0
-rw-r--r--meta-networking/recipes-daemons/postfix/files/postfix-install.patch26
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix.inc111
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb9
-rw-r--r--meta-networking/recipes-daemons/postfix/postfix_3.7.3.bb18
-rw-r--r--meta-networking/recipes-daemons/proftpd/files/build_fixup.patch71
-rw-r--r--meta-networking/recipes-daemons/proftpd/files/contrib.patch29
-rw-r--r--meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb138
-rw-r--r--meta-networking/recipes-daemons/proftpd/proftpd_1.3.7c.bb146
-rw-r--r--meta-networking/recipes-daemons/ptpd/ptpd/0001-ptpd-Solve-memory-leak-for-function-NTPDCrequest.patch40
-rw-r--r--meta-networking/recipes-daemons/ptpd/ptpd/Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch67
-rw-r--r--meta-networking/recipes-daemons/ptpd/ptpd/ptpd-use-pkgconfig.patch2
-rw-r--r--meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb8
-rw-r--r--meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch46
-rw-r--r--meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch13
-rw-r--r--meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb22
-rw-r--r--meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.51.bb19
-rw-r--r--meta-networking/recipes-daemons/radvd/files/0001-Reverts-the-include.h-change-in-46883f8a1a02fe42040d.patch32
-rw-r--r--meta-networking/recipes-daemons/radvd/files/radvd.conf18
-rw-r--r--meta-networking/recipes-daemons/radvd/radvd.inc67
-rw-r--r--meta-networking/recipes-daemons/radvd/radvd_2.17.bb5
-rw-r--r--meta-networking/recipes-daemons/radvd/radvd_2.19.bb70
-rw-r--r--meta-networking/recipes-daemons/squid/files/0001-configure-Check-for-Wno-error-format-truncation-comp.patch2
-rw-r--r--meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch32
-rw-r--r--meta-networking/recipes-daemons/squid/files/Fix-flawed-dynamic-ldb-link-test-in-configure.patch24
-rw-r--r--meta-networking/recipes-daemons/squid/files/Set-up-for-cross-compilation.patch2
-rw-r--r--meta-networking/recipes-daemons/squid/files/Skip-AC_RUN_IFELSE-tests.patch21
-rw-r--r--meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch40
-rw-r--r--meta-networking/recipes-daemons/squid/files/squid-don-t-do-squid-conf-tests-at-build-time.patch8
-rw-r--r--meta-networking/recipes-daemons/squid/files/squid-use-serial-tests-config-needed-by-ptest.patch8
-rw-r--r--meta-networking/recipes-daemons/squid/squid_3.5.27.bb112
-rw-r--r--meta-networking/recipes-daemons/squid/squid_5.7.bb128
-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/0001-tftp-Mark-toplevel-definition-as-external.patch30
-rw-r--r--meta-networking/recipes-daemons/tftp-hpa/files/0001-tftp-Remove-double-inclusion-of-signal.h.patch39
-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/tftp-hpa/tftp-hpa_5.2.bb23
-rw-r--r--meta-networking/recipes-daemons/vblade/files/cross.patch4
-rw-r--r--meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch2
-rw-r--r--meta-networking/recipes-daemons/vblade/vblade_22.bb53
-rw-r--r--meta-networking/recipes-daemons/vblade/vblade_25.bb55
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch43
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch)2
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-destdir.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch)0
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-libs.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch)0
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-strip.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch)0
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/nopam-with-tcp_wrappers.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch)0
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/nopam.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch)0
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/vsftpd-2.1.0-filter.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch)0
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/vsftpd-tcp_wrappers-support.patch (renamed from meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch)0
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb115
-rw-r--r--meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb113
-rw-r--r--meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch68
-rw-r--r--meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch166
-rw-r--r--meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch42
-rw-r--r--meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb33
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap/run-ptest7
-rw-r--r--meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb62
-rw-r--r--meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb39
-rw-r--r--meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb29
-rw-r--r--meta-networking/recipes-devtools/python/python3-scapy/run-ptest4
-rw-r--r--meta-networking/recipes-devtools/python/python3-scapy_2.5.0.bb41
-rw-r--r--meta-networking/recipes-extended/corosync/corosync/corosync.conf61
-rw-r--r--meta-networking/recipes-extended/corosync/corosync_2.4.3.bb81
-rw-r--r--meta-networking/recipes-extended/corosync/corosync_3.1.6.bb63
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0001-Disable-annobin-plugin.patch31
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch41
-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_controld-remove-unnecessary-header-include.patch35
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/0001-make-Replace-cp-a-with-mode-preserving-options.patch51
-rw-r--r--meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch36
-rw-r--r--meta-networking/recipes-extended/dlm/dlm_4.0.2.bb54
-rw-r--r--meta-networking/recipes-extended/dlm/dlm_4.2.0.bb65
-rw-r--r--meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch40
-rw-r--r--meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch28
-rw-r--r--meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch108
-rw-r--r--meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch475
-rw-r--r--meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch85
-rw-r--r--meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch327
-rw-r--r--meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch67
-rw-r--r--meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb64
-rw-r--r--meta-networking/recipes-extended/kronosnet/kronosnet/0001-links.c-Fix-build-with-gcc-12.patch40
-rw-r--r--meta-networking/recipes-extended/kronosnet/kronosnet_1.24.bb32
-rw-r--r--meta-networking/recipes-extended/tgt/files/0001-Correct-the-path-of-header-files-check-in-Yocto-buil.patch47
-rw-r--r--meta-networking/recipes-extended/tgt/files/0001-usr-Makefile-WARNING-fix.patch29
-rw-r--r--meta-networking/recipes-extended/tgt/files/tgtd5
-rw-r--r--meta-networking/recipes-extended/tgt/files/tgtd.init116
-rwxr-xr-xmeta-networking/recipes-extended/tgt/files/tgtd.service33
-rw-r--r--meta-networking/recipes-extended/tgt/files/usr-Makefile-apply-LDFLAGS-to-all-executables.patch37
-rw-r--r--meta-networking/recipes-extended/tgt/tgt_git.bb94
-rw-r--r--meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb35
-rw-r--r--meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb33
-rw-r--r--meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb34
-rw-r--r--meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.bb60
-rw-r--r--meta-networking/recipes-filter/conntrack-tools/files/conntrackd.service11
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch45
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch25
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch25
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch28
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch75
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch69
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch67
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch48
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch48
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch216
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch50
-rwxr-xr-xmeta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save43
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common163
-rwxr-xr-xmeta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init26
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch43
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch25
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch34
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch86
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables-legacy-save43
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.common163
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.service (renamed from meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service)0
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb112
-rw-r--r--meta-networking/recipes-filter/ebtables/ebtables_2.0.11.bb53
-rw-r--r--meta-networking/recipes-filter/ipset/ipset_7.15.bb21
-rw-r--r--meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch26
-rw-r--r--meta-networking/recipes-filter/libnetfilter/files/0001-conntrack-fix-build-with-kernel-5.15-and-musl.patch61
-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/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch1229
-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-acct_1.0.3.bb2
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb16
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.9.bb18
-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-log_1.0.1.bb15
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.2.bb14
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb19
-rw-r--r--meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb18
-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-Declare-the-define-visivility-attribute-together.patch2949
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch514
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch33
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl/run-ptest2
-rw-r--r--meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb17
-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/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch323
-rw-r--r--meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch147
-rw-r--r--meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch62
-rw-r--r--meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch65
-rw-r--r--meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch98
-rw-r--r--meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch84
-rw-r--r--meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch86
-rw-r--r--meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch26
-rw-r--r--meta-networking/recipes-filter/nftables/nftables/run-ptest17
-rw-r--r--meta-networking/recipes-filter/nftables/nftables_0.7.bb27
-rw-r--r--meta-networking/recipes-filter/nftables/nftables_1.0.7.bb80
-rw-r--r--meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.init180
-rw-r--r--meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.service11
-rw-r--r--meta-networking/recipes-filter/ulogd2/ulogd2_2.0.8.bb80
-rw-r--r--meta-networking/recipes-irc/weechat/weechat/0001-use-pkg-config-for-gcrypt-instead.patch37
-rw-r--r--meta-networking/recipes-irc/weechat/weechat_4.0.2.bb36
-rw-r--r--meta-networking/recipes-irc/znc/znc_1.8.2.bb32
-rw-r--r--meta-networking/recipes-irc/znc/znc_git.bb34
-rw-r--r--meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20171221.bb31
-rw-r--r--meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20220627.bb30
-rw-r--r--meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20171221.bb27
-rw-r--r--meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb34
-rw-r--r--meta-networking/recipes-kernel/wireguard/wireguard.inc8
-rw-r--r--meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/0001-ftp-include-sys-types.h-for-u_long.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-ftp/netkit-ftp/Add_ARG_MAX_define.patch3
-rw-r--r--meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb25
-rw-r--r--meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/0001-rpcgen-Fix-printf-formats.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch4
-rw-r--r--meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb7
-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/fixup_wait3_api_change.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/netkit-rsh-0.17-rexec-ipv6.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/rsh-redone_link_order_file.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb29
-rw-r--r--meta-networking/recipes-netkit/netkit-rusers/netkit-rusers/0001-Link-with-libtirpc.patch71
-rw-r--r--meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb31
-rw-r--r--meta-networking/recipes-netkit/netkit-rwho/netkit-rwho/0002-Fix-build-issues-found-with-musl.patch21
-rw-r--r--meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb55
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/0001-Drop-using-register-keyword.patch457
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-deadlock-on-cleanup.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/0001-telnet-telnetd-Fix-print-format-strings.patch2
-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.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/files/Warning-fix-in-the-step-of-install.patch2
-rw-r--r--meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb20
-rw-r--r--meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb16
-rw-r--r--meta-networking/recipes-protocols/babeld/babeld_1.12.2.bb31
-rw-r--r--meta-networking/recipes-protocols/dante/dante_1.4.1.bb49
-rw-r--r--meta-networking/recipes-protocols/dante/dante_1.4.3.bb50
-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/0001-tests-use-EXTENSIONS_DIR.patch92
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/freediameter.service2
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch72
-rw-r--r--meta-networking/recipes-protocols/freediameter/files/run-ptest1
-rw-r--r--meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb138
-rw-r--r--meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb141
-rw-r--r--meta-networking/recipes-protocols/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch33
-rw-r--r--meta-networking/recipes-protocols/frr/frr/frr.pam14
-rw-r--r--meta-networking/recipes-protocols/frr/frr_8.4.4.bb125
-rw-r--r--meta-networking/recipes-protocols/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch42
-rw-r--r--meta-networking/recipes-protocols/mdns/files/build.patch167
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0001-Create-subroutine-for-cleaning-recent-interfaces.patch61
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0001-dns-sd-Include-missing-headers.patch30
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0002-Create-subroutine-for-tearing-down-an-interface.patch59
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0002-make-Set-libdns_sd.so-soname-correctly.patch27
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0003-Track-interface-socket-family.patch51
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch30
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0004-Indicate-loopback-interface-to-mDNS-core.patch58
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0004-make-Separate-TLS-targets-from-libraries.patch64
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0005-Use-list-for-changed-interfaces.patch169
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch28
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0006-Handle-noisy-netlink-sockets.patch252
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0006-make-Add-top-level-Makefile.patch25
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0007-Mark-deleted-interfaces-as-being-changed.patch40
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0008-Handle-errors-from-socket-calls.patch63
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns/0009-remove-unneeded-headers.patch33
-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_1790.80.10.bb133
-rw-r--r--meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb90
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-noreturn-attribute-to-netsnmp_pci_error.patch32
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch45
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch2524
-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.patch15
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch31
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch31
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-get_pid_from_inode-Include-limit.h.patch16
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch26
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch29
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch30
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch186
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/0004-configure-fix-incorrect-variable.patch12
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/CVE-2022-44792-CVE-2022-44793.patch121
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch131
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/fix-libtool-finish.patch21
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/fix-openssl-build-errors.patch171
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-5.7.2-fix-engineBoots-value-on-SIGHUP.patch42
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-add-knob-whether-nlist.h-are-checked.patch23
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch75
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-fix-for-disable-des.patch10
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-testing-add-the-output-format-for-ptest.patch17
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch32
-rwxr-xr-xmeta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest3
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch1652
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb248
-rw-r--r--meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb294
-rw-r--r--meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb23
-rw-r--r--meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb23
-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.6.bb53
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow.inc33
-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-generate-not-static-get_dh-functions.patch33
-rw-r--r--meta-networking/recipes-protocols/openflow/openflow/0001-socket-util-Include-sys-stat.h-for-fchmod.patch23
-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_git.bb5
-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-l2tp_rpc_server.c-Add-missing-prototype-for-l2tp_api.patch28
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp/0001-lex-yacc-Add-missing-function-prototypes.patch45
-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.patch9
-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/openl2tp/openl2tp/openl2tpd.service2
-rw-r--r--meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb16
-rw-r--r--meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch28
-rw-r--r--meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch31
-rw-r--r--meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch59
-rw-r--r--meta-networking/recipes-protocols/openlldp/files/0004-clif-Include-string.h-for-mem-function-prototypes.patch23
-rw-r--r--meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.bb32
-rw-r--r--meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch28
-rw-r--r--meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb32
-rw-r--r--meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb31
-rw-r--r--meta-networking/recipes-protocols/quagga/files/bgpd.service16
-rw-r--r--meta-networking/recipes-protocols/quagga/files/isisd.service14
-rw-r--r--meta-networking/recipes-protocols/quagga/files/ospf6d.service16
-rw-r--r--meta-networking/recipes-protocols/quagga/files/ospfd.service16
-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.service16
-rw-r--r--meta-networking/recipes-protocols/quagga/files/ripngd.service16
-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.service17
-rw-r--r--meta-networking/recipes-protocols/quagga/quagga.inc232
-rw-r--r--meta-networking/recipes-protocols/quagga/quagga_1.2.4.bb4
-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.bb11
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch57
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch19
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch26
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch31
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0001-ppoe-Dont-include-linux-if_ether.h.patch (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0001-ppoe-Dont-include-linux-if_ether.h.patch)2
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/0002-Enable-support-for-the-kernel-module.patch (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/0002-Enable-support-for-the-kernel-module.patch)2
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch21
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure_in_cross.patch (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure_in_cross.patch)48
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/discard-use-of-dnl-in-Makefile.am.patch (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/discard-use-of-dnl-in-Makefile.am.patch)2
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.default (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default)0
-rwxr-xr-xmeta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.init (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init)0
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.service (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service)0
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/top-autoconf.patch (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch)0
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/update-config.patch (renamed from meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch)0
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb77
-rw-r--r--meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.15.bb78
-rw-r--r--meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb13
-rw-r--r--meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch28
-rw-r--r--meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb7
-rw-r--r--meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc41
-rw-r--r--meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.16.bb42
-rw-r--r--meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb7
-rw-r--r--meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb8
-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.patch14
-rw-r--r--meta-networking/recipes-support/aoetools/aoetools_36.bb5
-rw-r--r--meta-networking/recipes-support/arptables/arptables/0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch44
-rw-r--r--meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch77
-rw-r--r--meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch37
-rw-r--r--meta-networking/recipes-support/arptables/arptables_git.bb16
-rw-r--r--meta-networking/recipes-support/bmon/bmon_4.0.bb12
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils/0001-include-missing-kernel-header.patch33
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils/0002-build-don-t-ignore-CFLAGS-from-environment.patch40
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils/0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch51
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils/0004-cleanup-includes.patch149
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch40
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils/0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch51
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch33
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils_1.6.bb35
-rw-r--r--meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.1.bb36
-rw-r--r--meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch105
-rw-r--r--meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb26
-rw-r--r--meta-networking/recipes-support/celt051/celt051_git.bb6
-rw-r--r--meta-networking/recipes-support/chrony/chrony/0001-Fix-compilation-with-musl.patch31
-rw-r--r--meta-networking/recipes-support/chrony/chrony/arm_eabi.patch104
-rw-r--r--meta-networking/recipes-support/chrony/chrony/chrony.conf7
-rw-r--r--meta-networking/recipes-support/chrony/chrony/chronyd2
-rw-r--r--meta-networking/recipes-support/chrony/chrony_3.3.bb134
-rw-r--r--meta-networking/recipes-support/chrony/chrony_4.3.bb140
-rw-r--r--meta-networking/recipes-support/cifs/cifs-utils_7.0.bb44
-rw-r--r--meta-networking/recipes-support/cifs/cifs-utils_git.bb37
-rw-r--r--meta-networking/recipes-support/cifs/files/0001-mount.cifs-Remove-data_blob.h-include.patch32
-rw-r--r--meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb11
-rw-r--r--meta-networking/recipes-support/cim-schema/cim-schema-exper_2.50.0.bb6
-rw-r--r--meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb13
-rw-r--r--meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE34
-rw-r--r--meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch24
-rw-r--r--meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch17
-rw-r--r--meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch25
-rw-r--r--meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb57
-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.bb29
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq.inc83
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch13
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb8
-rw-r--r--meta-networking/recipes-support/dnsmasq/dnsmasq_2.89.bb131
-rw-r--r--meta-networking/recipes-support/dnsmasq/files/CVE-2023-28450.patch48
-rw-r--r--meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service2
-rw-r--r--meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolved.conf3
-rwxr-xr-xmeta-networking/recipes-support/dnsmasq/files/dnsmasq.conf2
-rw-r--r--meta-networking/recipes-support/dnsmasq/files/init2
-rw-r--r--meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb35
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot/0001-configure.ac-convert-AC_TRY_RUN-to-AC_TRY_LINK-state.patch101
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch38
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot/0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch30
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot/0001-not-check-pandoc.patch28
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb69
-rw-r--r--meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb74
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch25
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch204
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch31
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0001-replace-off64_t-with-off_t.patch48
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils/0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch96
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb48
-rw-r--r--meta-networking/recipes-support/drbd/drbd-utils_9.22.0.bb74
-rw-r--r--meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb24
-rw-r--r--meta-networking/recipes-support/drbd/drbd_9.2.1.bb24
-rw-r--r--meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch46
-rw-r--r--meta-networking/recipes-support/esmtp/esmtp_1.2.bb29
-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.bb47
-rw-r--r--meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb19
-rw-r--r--meta-networking/recipes-support/fetchmail/fetchmail_6.4.37.bb26
-rw-r--r--meta-networking/recipes-support/fping/fping/0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch42
-rw-r--r--meta-networking/recipes-support/fping/fping_3.5.bb25
-rw-r--r--meta-networking/recipes-support/fping/fping_5.1.bb29
-rw-r--r--meta-networking/recipes-support/fwknop/fwknop/0001-Fix-compilation-with-GCC-s-fno-common-flag-fixes-305.patch27
-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.bb30
-rw-r--r--meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb37
-rw-r--r--meta-networking/recipes-support/geoip/geoip-perl_1.51.bb6
-rw-r--r--meta-networking/recipes-support/geoip/geoip_1.6.11.bb90
-rw-r--r--meta-networking/recipes-support/geoip/geoip_1.6.12.bb92
-rw-r--r--meta-networking/recipes-support/geoip/geoipupdate_2.5.0.bb6
-rw-r--r--meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch31
-rw-r--r--meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch40
-rw-r--r--meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb39
-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.bb32
-rw-r--r--meta-networking/recipes-support/ifenslave/ifenslave_2.13.bb22
-rw-r--r--meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb27
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch17
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_netlink-invalid-arg.patch18
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch26
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric/nlrequest.c_packet-too-small_fix.patch18
-rw-r--r--meta-networking/recipes-support/ifmetric/ifmetric_0.3.bb17
-rw-r--r--meta-networking/recipes-support/iftop/iftop/iftop-1.0-gcc10.patch68
-rw-r--r--meta-networking/recipes-support/iftop/iftop_1.0pre4.bb6
-rw-r--r--meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch31
-rw-r--r--meta-networking/recipes-support/ipcalc/ipcalc_0.2.2.bb21
-rw-r--r--meta-networking/recipes-support/ipcalc/ipcalc_1.0.3.bb14
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch86
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch115
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch249
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch33
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch87
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch30
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch13
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch36
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch207
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch23
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch220
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch26
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch61
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf8
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample40
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service11
-rw-r--r--meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb97
-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-Modify-the-Makefile-for-cross-compile.patch58
-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/0002-Replace-nl_handle-to-nl_sock.patch63
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch20
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb39
-rw-r--r--meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb45
-rw-r--r--meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb14
-rw-r--r--meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch85
-rw-r--r--meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch48
-rw-r--r--meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch19
-rw-r--r--meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb38
-rw-r--r--meta-networking/recipes-support/libesmtp/libesmtp_1.1.0.bb40
-rw-r--r--meta-networking/recipes-support/libldb/libldb/0001-do-not-import-target-module-while-cross-compile.patch71
-rw-r--r--meta-networking/recipes-support/libldb/libldb/0002-ldb-Add-configure-options-for-packages.patch173
-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/avoid-openldap-unless-wanted.patch24
-rw-r--r--meta-networking/recipes-support/libldb/libldb/cmocka-fix-musl-libc-conflicting-types-error.patch45
-rwxr-xr-xmeta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch58
-rw-r--r--meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch193
-rw-r--r--meta-networking/recipes-support/libldb/libldb_1.3.1.bb63
-rw-r--r--meta-networking/recipes-support/libldb/libldb_2.7.2.bb83
-rw-r--r--meta-networking/recipes-support/libmaxminddb/libmaxminddb_1.4.3.bb18
-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/libmemcached/libmemcached.inc4
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/0001-talloc-Add-configure-options-for-packages.patch172
-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.patch38
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch184
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb49
-rw-r--r--meta-networking/recipes-support/libtalloc/libtalloc_2.4.0.bb55
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb/0001-tdb-Add-configure-options-for-packages.patch171
-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/do-not-check-xsltproc-manpages.patch15
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch184
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb44
-rw-r--r--meta-networking/recipes-support/libtdb/libtdb_1.4.8.bb53
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/0001-Add-configure-options-for-packages.patch172
-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.patch28
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/cmocka-fix-musl-libc-conflicting-types-error.patch45
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent/options-0.9.36.patch176
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent_0.14.1.bb68
-rw-r--r--meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb44
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/0001-IFNAMSIZ-is-defined-in-net-if.h.patch48
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/0001-configure-Check-for-symbol-from-libresolv-instead-of.patch28
-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/0001-include-string-h-from-memcpy-and-strcpy-function-pro.patch87
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/0001-make-Add-PREFIX-knob.patch31
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/0001-saaldump-atmdump-Include-linux-sockios.h-for-SIOCGST.patch59
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch30
-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/linux-atm/linux-atm/musl-no-on_exit.patch37
-rw-r--r--meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb22
-rw-r--r--meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb62
-rw-r--r--meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb63
-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.bb14
-rw-r--r--meta-networking/recipes-support/macchanger/macchanger/0001-Fix-musl-build.patch33
-rw-r--r--meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb24
-rw-r--r--meta-networking/recipes-support/macchanger/macchanger_1.7.0.bb25
-rw-r--r--meta-networking/recipes-support/mctp/mctp_1.1.bb42
-rw-r--r--meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb13
-rw-r--r--meta-networking/recipes-support/mdio-tools/mdio-tools.inc8
-rw-r--r--meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb9
-rw-r--r--meta-networking/recipes-support/memcached/memcached/0001-Fix-function-protypes.patch110
-rw-r--r--meta-networking/recipes-support/memcached/memcached/memcached-add-hugetlbfs-check.patch15
-rw-r--r--meta-networking/recipes-support/memcached/memcached_1.5.7.bb52
-rw-r--r--meta-networking/recipes-support/memcached/memcached_1.6.17.bb55
-rw-r--r--meta-networking/recipes-support/mtr/mtr_0.87.bb27
-rw-r--r--meta-networking/recipes-support/mtr/mtr_0.95.bb25
-rw-r--r--meta-networking/recipes-support/nbd/nbd_3.11.bb19
-rw-r--r--meta-networking/recipes-support/nbd/nbd_3.24.bb20
-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_1.33.11.bb33
-rw-r--r--meta-networking/recipes-support/ncp/libowfat/0001-Depend-on-haveuint128.h-for-umult64.c.patch44
-rw-r--r--meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch562
-rw-r--r--meta-networking/recipes-support/ncp/libowfat_0.31.bb27
-rw-r--r--meta-networking/recipes-support/ncp/libowfat_0.32.bb32
-rw-r--r--meta-networking/recipes-support/ncp/ncp_1.2.4.bb4
-rw-r--r--meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch124
-rw-r--r--meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch30
-rw-r--r--meta-networking/recipes-support/ndisc6/ndisc6_1.0.7.bb72
-rw-r--r--meta-networking/recipes-support/ndisc6/ndisc6_git.bb76
-rw-r--r--meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch70
-rw-r--r--meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb56
-rw-r--r--meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb56
-rw-r--r--meta-networking/recipes-support/netcat/netcat.inc2
-rw-r--r--meta-networking/recipes-support/netcat/netcat/gettext.patch16
-rw-r--r--meta-networking/recipes-support/netcat/netcat_0.7.1.bb7
-rw-r--r--meta-networking/recipes-support/netcf/netcf_0.2.8.bb20
-rw-r--r--meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch50
-rw-r--r--meta-networking/recipes-support/netperf/files/0001-nettest_omni-Remove-duplicate-variable-definitions.patch37
-rw-r--r--meta-networking/recipes-support/netperf/files/netserver.service9
-rw-r--r--meta-networking/recipes-support/netperf/files/netserver_permissions.patch29
-rw-r--r--meta-networking/recipes-support/netperf/netperf_git.bb40
-rw-r--r--meta-networking/recipes-support/netsniff-ng/files/0001-Cmds-automatically-create-folder.patch28
-rw-r--r--meta-networking/recipes-support/netsniff-ng/netsniff-ng_0.6.8.bb36
-rw-r--r--meta-networking/recipes-support/nghttp2/nghttp2_1.26.0.bb13
-rw-r--r--meta-networking/recipes-support/nis/nis.inc11
-rw-r--r--meta-networking/recipes-support/nis/yp-tools_2.14.bb10
-rw-r--r--meta-networking/recipes-support/nis/yp-tools_4.2.3.bb24
-rw-r--r--meta-networking/recipes-support/nis/ypbind-mt_2.4.bb62
-rw-r--r--meta-networking/recipes-support/nis/ypbind-mt_2.7.2.bb63
-rw-r--r--meta-networking/recipes-support/ntimed/ntimed_git.bb10
-rw-r--r--meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch26
-rw-r--r--meta-networking/recipes-support/ntop/ntop/ntop.service15
-rw-r--r--meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch164
-rw-r--r--meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch21
-rw-r--r--meta-networking/recipes-support/ntop/ntop/ntop_init.patch228
-rw-r--r--meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch19
-rw-r--r--meta-networking/recipes-support/ntop/ntop/use-static-inline.patch32
-rw-r--r--meta-networking/recipes-support/ntop/ntop_5.0.1.bb139
-rw-r--r--meta-networking/recipes-support/ntopng/files/0001-Makefile.in-don-t-use-the-internal-lua.patch39
-rw-r--r--meta-networking/recipes-support/ntopng/files/0001-autogen.sh-generate-configure.ac-only.patch36
-rw-r--r--meta-networking/recipes-support/ntopng/files/0001-autogen.sh-not-generate-configure.patch35
-rw-r--r--meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-Allow-dynamic-linking-against-ndpi-3.patch39
-rw-r--r--meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-configure-error.patch42
-rw-r--r--meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-host-contamination.patch82
-rw-r--r--meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-not-check-clang-on-host.patch44
-rw-r--r--meta-networking/recipes-support/ntopng/files/ntopng.service13
-rw-r--r--meta-networking/recipes-support/ntopng/ndpi_4.2.bb28
-rw-r--r--meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb50
-rw-r--r--meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch33
-rw-r--r--meta-networking/recipes-support/ntp/ntp/0001-sntp-Fix-types-in-check-for-pthread_detach.patch33
-rw-r--r--meta-networking/recipes-support/ntp/ntp/0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch56
-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/ntp.conf6
-rw-r--r--meta-networking/recipes-support/ntp/ntp/ntpd.service5
-rwxr-xr-xmeta-networking/recipes-support/ntp/ntp/ntpdate54
-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.patch28
-rw-r--r--meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb172
-rw-r--r--meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb177
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/0001-wscript-Add-BISONFLAGS-support.patch31
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec/volatiles.ntpsec3
-rw-r--r--meta-networking/recipes-support/ntpsec/ntpsec_1.2.2.bb129
-rw-r--r--meta-networking/recipes-support/nuttcp/nuttcp/nuttcp.socket9
-rw-r--r--meta-networking/recipes-support/nuttcp/nuttcp/nuttcp@.service8
-rw-r--r--meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb29
-rw-r--r--meta-networking/recipes-support/nuttcp/nuttcp_8.2.2.bb38
-rw-r--r--meta-networking/recipes-support/open-isns/files/0001-isnsd.socket-use-run-instead-of-var-run.patch26
-rw-r--r--meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch38
-rw-r--r--meta-networking/recipes-support/open-isns/open-isns_0.102.bb40
-rw-r--r--meta-networking/recipes-support/open-isns/open-isns_0.97.bb40
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch72
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch41
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-timeSync-Portable-way-to-print-64bit-time_t.patch54
-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/0003-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch63
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/0004-Use-configure-to-test-for-feature-instead-of-platfor.patch143
-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/0006-Fix-subdir-objects-configure-error.patch38
-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/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/0011-Use-off64_t-instead-of-__off64_t.patch34
-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-open-vm-tools-Correct-include-path-for-poll.h.patch36
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/CVE-2023-20867.patch163
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/tools.conf (renamed from meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf)0
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init (renamed from meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init)0
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service (renamed from meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service)0
-rw-r--r--meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb121
-rw-r--r--meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch618
-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/do-not-install-pyc-and-pyo.patch25
-rw-r--r--meta-networking/recipes-support/openipmi/files/fix-symlink-install-error-in-cmdlang.patch31
-rw-r--r--meta-networking/recipes-support/openipmi/files/include_sys_types.patch21
-rw-r--r--meta-networking/recipes-support/openipmi/files/ipmi-init-fix-the-arguments.patch7
-rw-r--r--[-rwxr-xr-x]meta-networking/recipes-support/openipmi/files/openipmi-helper0
-rw-r--r--meta-networking/recipes-support/openipmi/files/openipmi-no-openipmigui-man.patch27
-rw-r--r--meta-networking/recipes-support/openipmi/files/openipmi-remove-host-path-from-la_LDFLAGS.patch53
-rw-r--r--meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb110
-rw-r--r--meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb119
-rw-r--r--meta-networking/recipes-support/openvpn/openvpn/0001-configure.ac-eliminate-build-path-from-openvpn-versi.patch48
-rw-r--r--[-rwxr-xr-x]meta-networking/recipes-support/openvpn/openvpn/openvpn12
-rw-r--r--meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf1
-rw-r--r--meta-networking/recipes-support/openvpn/openvpn/openvpn@.service12
-rw-r--r--meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb67
-rw-r--r--meta-networking/recipes-support/openvpn/openvpn_2.6.3.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/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch33
-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.4.1.bb53
-rw-r--r--meta-networking/recipes-support/phytool/phytool.bb8
-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.bb8
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch103
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch29
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0001-cmake-Allow-SYSTEMCTL_BIN-to-be-overridden-from-envi.patch33
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch25
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch27
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch26
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb30
-rw-r--r--meta-networking/recipes-support/rdma-core/rdma-core_46.0.bb44
-rw-r--r--meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch29
-rw-r--r--meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch95
-rw-r--r--meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch35
-rw-r--r--meta-networking/recipes-support/ruli/files/Makefile.patch122
-rw-r--r--meta-networking/recipes-support/ruli/files/float-conversion.patch19
-rw-r--r--meta-networking/recipes-support/ruli/ruli_0.36.bb25
-rw-r--r--meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb13
-rw-r--r--meta-networking/recipes-support/smcroute/smcroute_2.5.6.bb13
-rw-r--r--meta-networking/recipes-support/spice/spice-gtk_0.42.bb60
-rw-r--r--meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb19
-rw-r--r--meta-networking/recipes-support/spice/spice-protocol_git.bb28
-rw-r--r--meta-networking/recipes-support/spice/spice/0001-Convert-pthread_t-to-be-numeric.patch25
-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-build-allow-separated-src-and-build-dirs.patch33
-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.bb38
-rw-r--r--meta-networking/recipes-support/spice/usbredir_0.9.0.bb20
-rw-r--r--meta-networking/recipes-support/spice/usbredir_git.bb21
-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-ssmtp-Correct-the-null-pointer-assignment-to-char-po.patch51
-rw-r--r--meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb16
-rw-r--r--meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch24
-rw-r--r--meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch99
-rw-r--r--meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb134
-rw-r--r--meta-networking/recipes-support/strongswan/strongswan_5.9.11.bb194
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch26
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel_5.35.bb26
-rw-r--r--meta-networking/recipes-support/stunnel/stunnel_5.69.bb33
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch29
-rwxr-xr-xmeta-networking/recipes-support/tcpdump/tcpdump/run-ptest4
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch34
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb51
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpdump_4.99.4.bb52
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch75
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch15
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb36
-rw-r--r--meta-networking/recipes-support/tcpdump/tcpslice_1.6.bb24
-rw-r--r--meta-networking/recipes-support/tcpreplay/tcpreplay/0001-libopts.m4-set-POSIX_SHELL-to-bin-sh.patch45
-rw-r--r--meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb19
-rw-r--r--meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb26
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/CVE-2022-40468.patch33
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch66
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.conf330
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service8
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb42
-rw-r--r--meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb38
-rw-r--r--meta-networking/recipes-support/tnftp/tnftp/0001-libedit-Include-missing-header-stdc-predef.h.patch31
-rw-r--r--meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch42
-rw-r--r--meta-networking/recipes-support/tnftp/tnftp_20151004.bb39
-rw-r--r--meta-networking/recipes-support/tnftp/tnftp_20210827.bb39
-rw-r--r--meta-networking/recipes-support/traceroute/traceroute/filter-out-the-patches-from-subdirs.patch47
-rw-r--r--meta-networking/recipes-support/traceroute/traceroute_2.1.0.bb45
-rw-r--r--meta-networking/recipes-support/traceroute/traceroute_2.1.2.bb44
-rw-r--r--meta-networking/recipes-support/tunctl/tunctl.inc2
-rw-r--r--meta-networking/recipes-support/uftp/uftp_4.9.3.bb16
-rw-r--r--meta-networking/recipes-support/uftp/uftp_5.0.1.bb16
-rw-r--r--meta-networking/recipes-support/unbound/unbound/0001-contrib-add-yocto-compatible-init-script.patch80
-rw-r--r--meta-networking/recipes-support/unbound/unbound_1.17.1.bb48
-rw-r--r--meta-networking/recipes-support/vnstat/vnstat_2.6.bb22
-rw-r--r--meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch31
-rw-r--r--meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch155
-rw-r--r--meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch600
-rw-r--r--meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch51
-rw-r--r--meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb21
-rw-r--r--meta-networking/recipes-support/wireshark/README4
-rw-r--r--meta-networking/recipes-support/wireshark/files/0001-CMake-Fix-a-try_run-test-when-cross-compiling.patch66
-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.patch46
-rw-r--r--meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch74
-rw-r--r--meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch29
-rw-r--r--meta-networking/recipes-support/wireshark/wireshark_2.6.1.bb80
-rw-r--r--meta-networking/recipes-support/wireshark/wireshark_4.0.7.bb99
-rw-r--r--meta-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb16
-rw-r--r--meta-networking/recipes-support/wpan-tools/wpan-tools_git.bb18
-rw-r--r--meta-networking/site/endian-big2
-rw-r--r--meta-networking/site/endian-little2
-rw-r--r--meta-oe/README22
-rw-r--r--meta-oe/README.md31
-rw-r--r--meta-oe/classes/breakpad.bbclass5
-rw-r--r--meta-oe/classes/dos2unix.bbclass14
-rw-r--r--meta-oe/classes/gitpkgv.bbclass31
-rw-r--r--meta-oe/classes/gitver.bbclass2
-rw-r--r--meta-oe/classes/gpe.bbclass4
-rw-r--r--meta-oe/classes/image_types_sparse.bbclass16
-rw-r--r--meta-oe/classes/itstool.bbclass5
-rw-r--r--meta-oe/classes/scancode.bbclass10
-rw-r--r--meta-oe/classes/signing.bbclass316
-rw-r--r--meta-oe/classes/socorro-syms.bbclass2
-rw-r--r--meta-oe/conf/include/ptest-packagelists-meta-oe.inc66
-rw-r--r--meta-oe/conf/layer.conf45
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend3
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff13
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch27
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch184
-rw-r--r--meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb36
-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.bb35
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch40
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Makefile.am-do-not-clobber-PYTHONPATH-from-build-env.patch55
-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/0001-mplay-Fix-build-with-musl.patch44
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch30
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc.tmpfiles (renamed from meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles)0
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc_options.conf (renamed from meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf)0
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.conf (renamed from meta-oe/recipes-connectivity/lirc/lirc/lircd.conf)0
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.init (renamed from meta-oe/recipes-connectivity/lirc/lirc/lircd.init)0
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service (renamed from meta-oe/recipes-connectivity/lirc/lirc/lircd.service)0
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircexec.init (renamed from meta-oe/recipes-connectivity/lirc/lirc/lircexec.init)0
-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-don-t-fail-if-GLOB_BRACE-is-not-defined.patch30
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.106.bb67
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/bacnet.json58
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/ble.json53
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/can.json89
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/custom_serial.json33
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/logs.conf77
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus.json169
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus_serial.json29
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/mqtt.json132
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/odbc.json54
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/opcua.json49
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/request.json146
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/rest.json152
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/snmp.json138
-rwxr-xr-xmeta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/tb_gateway.yaml66
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/thingsboard-gateway.service13
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.3.bb67
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend24
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch448
-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.patch35
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch31
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch33
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch55
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-The-std-lib-unary-binary_function-base-classes-are-d.patch40
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch41
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch67
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-add-explict-static_cast-size_t-to-maxMemoryUsageByte.patch38
-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.patch29
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch26
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-include-needed-c-header.patch29
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-server-Adjust-the-cache-alignment-assumptions.patch37
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch29
-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.patch36
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch39
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch19
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch (renamed from meta-oe/recipes-dbs/mongodb/mongodb/0004-wiredtiger-Disable-strtouq-on-musl.patch)10
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch56
-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.patch54
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/disable_runtime_check.patch17
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/ppc64_ARCH_BITS.patch18
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb144
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb/0001-CMakeLists.txt-allow-to-set-PYTHON_INSTDIR-from-outs.patch67
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.7.bb33
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb101
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-support/nvmetcli/nvmetcli_0.7.bb39
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch53
-rw-r--r--meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb43
-rw-r--r--meta-oe/dynamic-layers/networking-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend2
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend1
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb (renamed from meta-oe/recipes-support/debsums/debsums_2.2.2.bb)12
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/init43
-rw-r--r--meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/rasdaemon.service12
-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.patch162
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0002-android-tools-modifications-to-make-it-build-in-yoct.patch366
-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.patch126
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0004-adb-Fix-build-on-big-endian-systems.patch48
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0005-adb-Allow-adbd-to-be-run-as-root.patch23
-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.patch651
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch44
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch20
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch14
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch41
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/20150704-CVE-2015-3239_dwarf_i.h.patch13
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/legacy_built-in_sync_functions.patch26
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch17
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch22
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch44
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch16
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/move-log-file-to-proper-dir.patch18
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch62
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch64
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch93
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch651
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch44
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch20
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch14
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch41
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-attribute-issue-with-gcc.patch17
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-build-on-non-x86.patch24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-gettid-exception-declaration.patch24
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/fix-standard-namespace-errors.patch22
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/hard-code-build-number.patch44
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch16
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/move-log-file-to-proper-dir.patch18
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch62
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch64
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch93
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/throw-exception-on-unknown-os.patch16
-rw-r--r--meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch16
-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/lib/oeqa/selftest/cases/meta_oe_sources.py31
-rw-r--r--meta-oe/lib/oeqa/selftest/cases/syzkaller.py124
-rw-r--r--meta-oe/licenses/ACE-TAO-CIAO111
-rw-r--r--meta-oe/licenses/Arphic-Public-License58
-rw-r--r--meta-oe/licenses/Bellcore13
-rw-r--r--meta-oe/licenses/HDF592
-rw-r--r--meta-oe/licenses/Khronos35
-rw-r--r--meta-oe/licenses/MINPACK51
-rw-r--r--meta-oe/licenses/OFL-1.099
-rw-r--r--meta-oe/licenses/SSPL-1557
-rw-r--r--meta-oe/licenses/rateconv27
-rw-r--r--meta-oe/licenses/read-edid17
-rw-r--r--meta-oe/licenses/safec26
-rw-r--r--meta-oe/licenses/ttf-mplus16
-rw-r--r--meta-oe/licenses/vim81
-rw-r--r--meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb29
-rw-r--r--meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb32
-rw-r--r--meta-oe/recipes-benchmark/bonnie/bonnie++_1.04.bb31
-rw-r--r--meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch19
-rw-r--r--meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0001-cpuburn-a8.S-Remove-.func-.endfunc.patch69
-rw-r--r--meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0002-burn.S-Add.patch47
-rw-r--r--meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0003-burn.S-Remove-.func-.endfunc.patch31
-rw-r--r--meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb52
-rw-r--r--meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb30
-rw-r--r--meta-oe/recipes-benchmark/dbench/dbench_4.0.bb13
-rw-r--r--meta-oe/recipes-benchmark/dhrystone/dhrystone-2.1/dhrystone.patch2
-rw-r--r--meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb1
-rw-r--r--meta-oe/recipes-benchmark/fio/fio_2.9.bb41
-rw-r--r--meta-oe/recipes-benchmark/fio/fio_3.32.bb44
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch31
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch125
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch32
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch21
-rw-r--r--meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch43
-rw-r--r--meta-oe/recipes-benchmark/glmark2/glmark2_git.bb47
-rw-r--r--meta-oe/recipes-benchmark/iozone3/iozone3/0001-let-system-headers-provide-pread64.patch34
-rw-r--r--meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch35
-rw-r--r--meta-oe/recipes-benchmark/iozone3/iozone3_465.bb119
-rw-r--r--meta-oe/recipes-benchmark/iozone3/iozone3_506.bb120
-rw-r--r--meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch60
-rw-r--r--meta-oe/recipes-benchmark/iperf2/iperf2_2.0.10.bb19
-rw-r--r--meta-oe/recipes-benchmark/iperf2/iperf2_2.0.13.bb23
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch29
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3/0002-Remove-pg-from-profile_CFLAGS.patch19
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch17
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb34
-rw-r--r--meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb33
-rw-r--r--meta-oe/recipes-benchmark/libc-bench/libc-bench/0001-build-Do-not-override-ldflags-from-environment.patch30
-rw-r--r--meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb17
-rw-r--r--meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb22
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch210
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch29
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch25
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch24
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-makefile-Append-CPPFLAGS-rather-then-override.patch31
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch39
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch48
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch30
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch33
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch42
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch92
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch20
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch13
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch11
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch17
-rw-r--r--meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb53
-rw-r--r--meta-oe/recipes-benchmark/linpack/linpack/0001-linpack-Define-DP-only-when-SP-is-not-defined.patch32
-rw-r--r--meta-oe/recipes-benchmark/linpack/linpack_1.0.bb10
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch27
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch30
-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-bench.h-Fix-typo-in-specifying-string.h.patch27
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch32
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-manual-pages.patch102
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_fifo-Fix-cleanup-sequence.patch44
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_http.c-Add-printf-format.patch (renamed from meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-lat_http.c-Add-printf-format.patch)2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-lmbench-Point-webpage-lm-to-target-directory.patch79
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-scripts-build-Fix-the-tests-to-build-with-clang15.patch239
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch34
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch (renamed from meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch)4
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/fix-lmbench-memory-check-failure.patch (renamed from meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/fix-lmbench-memory-check-failure.patch)2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run1
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/lmbench_result_html_report.patch (renamed from meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/lmbench_result_html_report.patch)2
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/obey-ranlib.patch (renamed from meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch)0
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/update-config-script.patch (renamed from meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch)0
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench/update-results-script.patch (renamed from meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch)0
-rw-r--r--meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb37
-rw-r--r--meta-oe/recipes-benchmark/mbw/mbw_2.0.bb16
-rw-r--r--meta-oe/recipes-benchmark/memtester/files/Makefile.patch2
-rw-r--r--meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb25
-rw-r--r--meta-oe/recipes-benchmark/memtester/memtester_4.6.0.bb24
-rw-r--r--meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb2
-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.bb43
-rw-r--r--meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb41
-rw-r--r--meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb19
-rw-r--r--meta-oe/recipes-benchmark/s-suite/s-suite_git.bb33
-rw-r--r--meta-oe/recipes-benchmark/stressapptest/stressapptest/0001-configure-Add-with-cpu.patch37
-rw-r--r--meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch103
-rw-r--r--meta-oe/recipes-benchmark/stressapptest/stressapptest/0003-configure-Check-for-pthread_rwlockattr_setkind_np-be.patch43
-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.9.bb31
-rw-r--r--meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb26
-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.patch446
-rw-r--r--meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb8
-rw-r--r--meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb4
-rw-r--r--meta-oe/recipes-bsp/acpitool/acpitool_0.5.1.bb2
-rw-r--r--meta-oe/recipes-bsp/con2fbmap/con2fbmap/0001-con2fbmap-Add-missing-include-on-string.h.patch28
-rw-r--r--meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb19
-rw-r--r--meta-oe/recipes-bsp/cpufrequtils/cpufrequtils/0001-dont-unset-cflags.patch2
-rw-r--r--meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb8
-rw-r--r--meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb41
-rw-r--r--meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb27
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch33
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch32
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch35
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch42
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch35
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch32
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch43
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch25
-rw-r--r--meta-oe/recipes-bsp/efivar/efivar_0.31.bb50
-rw-r--r--meta-oe/recipes-bsp/firmwared/firmwared/firmwared.service9
-rw-r--r--meta-oe/recipes-bsp/firmwared/firmwared_git.bb34
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch39
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom/0001-flashrom-Mark-RISCV-as-non-memory-mapped-I-O-archite.patch44
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom/0001-hwaccess-use-__asm__-as-is-done-elsewhere.patch52
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch37
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom/meson-fixes.patch68
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch198
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb20
-rw-r--r--meta-oe/recipes-bsp/flashrom/flashrom_1.2.1.bb20
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch53
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd-efi_1.3.bb33
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd/0001-meson-Avoid-absolute-buildtime-paths-in-generated-he.patch41
-rwxr-xr-xmeta-oe/recipes-bsp/fwupd/fwupd/run-ptest6
-rw-r--r--meta-oe/recipes-bsp/fwupd/fwupd_1.8.9.bb142
-rwxr-xr-xmeta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/init78
-rw-r--r--meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/ldflags.patch87
-rw-r--r--meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/musl.patch29
-rw-r--r--meta-oe/recipes-bsp/irda-utils/irda-utils_0.9.18.bb64
-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/0002-include-sys-select.h-and-sys-types.h.patch43
-rw-r--r--meta-oe/recipes-bsp/ledmon/ledmon_git.bb41
-rw-r--r--meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb39
-rw-r--r--meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-Change-PIDFile-path-from-var-run-to-run.patch44
-rw-r--r--meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch40
-rw-r--r--meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch88
-rw-r--r--meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb148
-rw-r--r--meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb169
-rw-r--r--meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb12
-rw-r--r--meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.bb13
-rw-r--r--meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.5.bb31
-rw-r--r--meta-oe/recipes-bsp/pcmciautils/pcmciautils/lex_sys_types.patch21
-rw-r--r--meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_fix.patch101
-rw-r--r--meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_race.patch29
-rw-r--r--meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb41
-rw-r--r--meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb4
-rw-r--r--meta-oe/recipes-connectivity/ace/ace_6.5.19.bb41
-rw-r--r--meta-oe/recipes-connectivity/ace/files/ace_config.patch13
-rw-r--r--meta-oe/recipes-connectivity/ace/files/no_sysctl.patch22
-rw-r--r--meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb68
-rw-r--r--meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb68
-rw-r--r--meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch49
-rw-r--r--meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb21
-rw-r--r--meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch72
-rw-r--r--meta-oe/recipes-connectivity/gattlib/gattlib_git.bb39
-rw-r--r--meta-oe/recipes-connectivity/gensio/gensio_2.6.7.bb26
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch177
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch253
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch187
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/0004-Prevent-installation-of-an-all-zero-TK.patch82
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch67
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/0006-TDLS-Reject-TPK-TK-reconfiguration.patch135
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch85
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd/defconfig3
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb51
-rw-r--r--meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb58
-rw-r--r--meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch31
-rw-r--r--meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch31
-rw-r--r--meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb27
-rw-r--r--meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb18
-rw-r--r--meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb21
-rw-r--r--meta-oe/recipes-connectivity/iwd/iwd/0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch37
-rw-r--r--meta-oe/recipes-connectivity/iwd/iwd_2.7.bb55
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5/0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch40
-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_1.16.bb188
-rw-r--r--meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb202
-rw-r--r--meta-oe/recipes-connectivity/libev/libev_4.24.bb20
-rw-r--r--meta-oe/recipes-connectivity/libev/libev_4.33.bb21
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb17
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch38
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch31
-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.1.4.bb23
-rw-r--r--meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb22
-rw-r--r--meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb17
-rw-r--r--meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch73
-rw-r--r--meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb18
-rw-r--r--meta-oe/recipes-connectivity/libmbim/libmbim_1.28.4.bb22
-rw-r--r--meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules999
-rw-r--r--meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch36
-rw-r--r--meta-oe/recipes-connectivity/libmtp/libmtp/0001-Use-native-mtp-hotplug.patch43
-rw-r--r--meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb47
-rw-r--r--meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb58
-rw-r--r--meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch25
-rw-r--r--meta-oe/recipes-connectivity/libndp/libndp_1.6.bb13
-rw-r--r--meta-oe/recipes-connectivity/libndp/libndp_1.8.bb12
-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/0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-.patch33
-rw-r--r--meta-oe/recipes-connectivity/libnet/libnet_1.2-rc3.bb24
-rw-r--r--meta-oe/recipes-connectivity/libnet/libnet_1.2.bb21
-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_5.0.2.bb12
-rw-r--r--meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch85
-rw-r--r--meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb18
-rw-r--r--meta-oe/recipes-connectivity/libqmi/libqmi_1.32.4.bb28
-rw-r--r--meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb21
-rw-r--r--meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch30
-rw-r--r--meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch263
-rw-r--r--meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch94
-rw-r--r--meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb28
-rw-r--r--meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb19
-rw-r--r--meta-oe/recipes-connectivity/libwebsockets/libwebsockets/0001-Fix-Werror-enum-int-mismatch-in-lws_tls_server_abort.patch32
-rw-r--r--meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb26
-rw-r--r--meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb63
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch27
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-makefile-use-conditional-assignment-for-KBUILD_OUTPU.patch42
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch26
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch36
-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.patch4
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch29
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb24
-rw-r--r--meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb33
-rw-r--r--meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch101
-rw-r--r--meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb87
-rw-r--r--meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/04-use-pkg-config-for-gnutls.patch2
-rw-r--r--meta-oe/recipes-connectivity/loudmouth/loudmouth-1.4.3/glib-2.32.patch2
-rw-r--r--meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb2
-rw-r--r--meta-oe/recipes-connectivity/modemmanager/modemmanager/0001-Add-configure-check-for-canonicalize_file_name-befor.patch66
-rw-r--r--meta-oe/recipes-connectivity/modemmanager/modemmanager_1.20.6.bb56
-rw-r--r--meta-oe/recipes-connectivity/modemmanager/modemmanager_1.7.991.bb52
-rw-r--r--meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb46
-rw-r--r--meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb45
-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.bb12
-rw-r--r--meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb14
-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/obexftp/obexftp_0.24.2.bb8
-rw-r--r--meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb17
-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.2.0.bb35
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.bb33
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch51
-rw-r--r--meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.bb24
-rw-r--r--meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch25
-rw-r--r--meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb15
-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.13.0.bb21
-rw-r--r--meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb18
-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/rfkill/rfkill_0.5.bb27
-rw-r--r--meta-oe/recipes-connectivity/rfkill/rfkill_1.0.bb25
-rw-r--r--meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch94
-rw-r--r--meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb18
-rw-r--r--meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb15
-rw-r--r--meta-oe/recipes-connectivity/ser2net/ser2net_4.3.13.bb18
-rw-r--r--meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch606
-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/smstools3/smstools3_3.1.21.bb6
-rw-r--r--meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb16
-rw-r--r--meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb20
-rw-r--r--meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb11
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch27
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch110
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch40
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch28
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch26
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch45
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch42
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift_0.18.1.bb65
-rw-r--r--meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb67
-rw-r--r--meta-oe/recipes-connectivity/transmission/files/transmission-daemon163
-rw-r--r--meta-oe/recipes-connectivity/transmission/transmission_git.bb76
-rw-r--r--meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch26
-rw-r--r--meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch49
-rw-r--r--meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch143
-rw-r--r--meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch23
-rwxr-xr-xmeta-oe/recipes-connectivity/umip/files/mip6d112
-rw-r--r--meta-oe/recipes-connectivity/umip/files/mip6d.service10
-rw-r--r--meta-oe/recipes-connectivity/umip/umip_1.0.bb42
-rw-r--r--meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb23
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch92
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/files/0001-wfa_cmdproc-Store-return-value-into-location.patch32
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch45
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch60
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch38
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch29
-rw-r--r--meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb40
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvdial/musl-support.patch25
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvdial/typo_pon.wvdial.1.patch2
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb11
-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-Fix-narrowing-conversion-error.patch29
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch557
-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/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch135
-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.diff15
-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.patch18
-rw-r--r--meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb46
-rw-r--r--meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch2
-rw-r--r--meta-oe/recipes-connectivity/zabbix/zabbix/0001-initialize-msghdr-portably.patch52
-rw-r--r--meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service5
-rw-r--r--meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb75
-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.bb38
-rw-r--r--meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch46
-rw-r--r--meta-oe/recipes-connectivity/zeromq/files/0001-src-secure_allocator.hpp-define-missing-rebind-type.patch64
-rw-r--r--meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb32
-rw-r--r--meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb30
-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.4.0.bb25
-rw-r--r--meta-oe/recipes-core/dbus/dbus-broker/0001-Comment-rst2man-related-stuff.patch34
-rw-r--r--meta-oe/recipes-core/dbus/dbus-broker/0002-Correct-including-directory-for-conf.patch25
-rw-r--r--meta-oe/recipes-core/dbus/dbus-broker_32.bb32
-rw-r--r--meta-oe/recipes-core/dbus/dbus-broker_git.bb32
-rw-r--r--meta-oe/recipes-core/dbus/dbus-daemon-proxy/0001-dbus-daemon-proxy-Return-DBUS_HANDLER_RESULT_NOT_YET.patch4
-rw-r--r--meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb4
-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/dbus/libdbus-c++_0.9.0.bb4
-rw-r--r--meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch34
-rw-r--r--meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch28
-rw-r--r--meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb33
-rw-r--r--meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch39
-rw-r--r--meta-oe/recipes-core/ell/ell_0.4.bb19
-rw-r--r--meta-oe/recipes-core/emlog/emlog.inc13
-rw-r--r--meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch33
-rw-r--r--meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch115
-rw-r--r--meta-oe/recipes-core/emlog/emlog/emlog.initd25
-rw-r--r--meta-oe/recipes-core/emlog/emlog_git.bb35
-rw-r--r--meta-oe/recipes-core/emlog/kernel-module-emlog_git.bb10
-rw-r--r--meta-oe/recipes-core/glfw/glfw_3.3.8.bb36
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.74.0.bb33
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch40
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch39
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb37
-rw-r--r--meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb31
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image-base.bb7
-rw-r--r--meta-oe/recipes-core/images/meta-oe-image.bb5
-rw-r--r--meta-oe/recipes-core/images/meta-oe-ptest-all-image.bb25
-rw-r--r--meta-oe/recipes-core/images/meta-oe-ptest-fast-image.bb6
-rw-r--r--meta-oe/recipes-core/images/meta-oe-ptest-image.bb41
-rw-r--r--meta-oe/recipes-core/libnfc/libnfc_git.bb17
-rw-r--r--meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb22
-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++-3_3.2.0.bb19
-rw-r--r--meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb20
-rw-r--r--meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch28
-rw-r--r--meta-oe/recipes-core/libxml/libxml++_2.40.1.bb28
-rw-r--r--meta-oe/recipes-core/libxml/libxml++_2.42.1.bb35
-rw-r--r--meta-oe/recipes-core/mdbus2/mdbus2/0001-Fix-arguments-in-GLib.DBusSignalCallback-for-Vala-0..patch27
-rw-r--r--meta-oe/recipes-core/mdbus2/mdbus2_git.bb18
-rw-r--r--meta-oe/recipes-core/meta/distro-feed-configs.bb4
-rw-r--r--meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch45
-rw-r--r--meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb9
-rw-r--r--meta-oe/recipes-core/mm-common/mm-common_1.0.4.bb28
-rw-r--r--meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb12
-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-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/opencl/ocl-icd_2.3.1.bb20
-rw-r--r--meta-oe/recipes-core/opencl/opencl-clhpp_git.bb23
-rw-r--r--meta-oe/recipes-core/opencl/opencl-headers_04.17.bb19
-rw-r--r--meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb54
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-basic.bb9
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-boot.bb6
-rw-r--r--meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb1009
-rw-r--r--meta-oe/recipes-core/pim435/pim435_git.bb22
-rw-r--r--meta-oe/recipes-core/plymouth/files/0001-Fix-daemon-install-ignoring-configured-runstatedir.patch30
-rw-r--r--meta-oe/recipes-core/plymouth/files/0001-Use-standard-runstatedir-vs-custom-flag.patch50
-rw-r--r--meta-oe/recipes-core/plymouth/files/0001-plymouth-Add-the-retain-splash-option.patch35
-rw-r--r--meta-oe/recipes-core/plymouth/files/0001-plymouth-start-service-in-add-related-kernel-paramet.patch31
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb66
-rw-r--r--meta-oe/recipes-core/plymouth/plymouth_22.02.122.bb73
-rw-r--r--meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb12
-rw-r--r--meta-oe/recipes-core/safec/safec/0001-strpbrk_s-Remove-unused-variable-len.patch42
-rw-r--r--meta-oe/recipes-core/safec/safec_3.7.1.bb21
-rwxr-xr-xmeta-oe/recipes-core/sdbus-c++/sdbus-c++-1.2.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-dirent-util-Remove-asserts-on-dirent64-dirent.patch38
-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-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/0004-add-fallback-parse_printf_format-implementation.patch419
-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/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/0008-add-missing-FTW_-macros-for-musl.patch64
-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/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch37
-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/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch37
-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/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch33
-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/0019-Handle-missing-LOCK_EX.patch24
-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/0021-test-json.c-define-M_PIl.patch29
-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.patch11
-rw-r--r--meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.9.bb79
-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++_1.2.0.bb47
-rw-r--r--meta-oe/recipes-core/toybox/toybox-inittab/inittab26
-rw-r--r--meta-oe/recipes-core/toybox/toybox-inittab/rcK26
-rw-r--r--meta-oe/recipes-core/toybox/toybox-inittab/rcS27
-rw-r--r--meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb64
-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.7.5.bb71
-rw-r--r--meta-oe/recipes-core/toybox/toybox_0.8.8.bb115
-rw-r--r--meta-oe/recipes-core/usleep/usleep_1.0.bb11
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc556
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc56
-rw-r--r--meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb19
-rw-r--r--meta-oe/recipes-crypto/botan/botan_2.19.3.bb52
-rw-r--r--meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb36
-rw-r--r--meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.6.1.bb117
-rw-r--r--meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.5.bb31
-rw-r--r--meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb32
-rw-r--r--meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb17
-rw-r--r--meta-oe/recipes-crypto/libsodium/libsodium_1.0.16.bb13
-rw-r--r--meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb13
-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.bb41
-rw-r--r--meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb29
-rw-r--r--meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.29.0.bb31
-rw-r--r--meta-oe/recipes-dbs/influxdb/influxdb/0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch39
-rw-r--r--meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch31
-rwxr-xr-xmeta-oe/recipes-dbs/influxdb/influxdb/influxdb235
-rw-r--r--meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf586
-rw-r--r--meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb70
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch34
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch37
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch43
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb/run-ptest10
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb33
-rw-r--r--meta-oe/recipes-dbs/leveldb/leveldb_git.bb37
-rw-r--r--meta-oe/recipes-dbs/libdbi/libdbi.inc2
-rw-r--r--meta-oe/recipes-dbs/lmdb/files/0001-Makefile-use-libprefix-instead-of-libdir.patch35
-rw-r--r--meta-oe/recipes-dbs/lmdb/files/0001-make-set-soname-on-liblmdb.patch24
-rw-r--r--meta-oe/recipes-dbs/lmdb/files/run-ptest25
-rw-r--r--meta-oe/recipes-dbs/lmdb/lmdb_0.9.31.bb39
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch36
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch64
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch50
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch64
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch26
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch35
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch25
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch39
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch43
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch50
-rw-r--r--meta-oe/recipes-dbs/mongodb/mongodb_git.bb76
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb-native_10.11.4.bb23
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb-native_5.5.60.bb19
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb.inc255
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch70
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch33
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch45
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch28
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch37
-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/change-cc-to-cc-version.patch26
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch27
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/cross-compiling.patch34
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch31
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch34
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch29
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch160
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/lfs64.patch21
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch13
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/my.cnf2
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch43
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch18
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/ssize_t.patch15
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch34
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch23
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb_10.11.4.bb26
-rw-r--r--meta-oe/recipes-dbs/mysql/mariadb_5.5.60.bb27
-rw-r--r--meta-oe/recipes-dbs/mysql/mysql-python/0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch34
-rw-r--r--meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb15
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch44
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch41
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch40
-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/0001-postgresql-fix-ptest-failure-of-sysviews.patch42
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch27
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/postgresql-profile (renamed from meta-oe/recipes-dbs/postgresql/files/postgresql-bashprofile)0
-rw-r--r--meta-oe/recipes-dbs/postgresql/files/postgresql.init4
-rw-r--r--meta-oe/recipes-dbs/postgresql/postgresql.inc247
-rw-r--r--meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb16
-rw-r--r--meta-oe/recipes-dbs/postgresql/postgresql_9.4.17.bb9
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-donot-use-the-hardcode-libdir.patch19
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-fix-for-ptest-support.patch51
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch42
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/psqlodbc.inc50
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/psqlodbc_09.05.0300.bb14
-rw-r--r--meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb62
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch70
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch114
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch33
-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.patch61
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/arm.patch28
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/mips.patch20
-rw-r--r--meta-oe/recipes-dbs/rocksdb/files/ppc64.patch30
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch194
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb57
-rw-r--r--meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb32
-rw-r--r--meta-oe/recipes-dbs/soci/soci/0001-Do-not-use-std-shuffle-with-clang-15.patch32
-rw-r--r--meta-oe/recipes-dbs/soci/soci/soci_libdir.patch28
-rw-r--r--meta-oe/recipes-dbs/soci/soci_3.2.3.bb49
-rw-r--r--meta-oe/recipes-dbs/soci/soci_4.0.3.bb45
-rw-r--r--meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch32
-rw-r--r--meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch32
-rw-r--r--meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch20
-rw-r--r--meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/sqlite.pc12
-rw-r--r--meta-oe/recipes-dbs/sqlite/sqlite_2.8.17.bb61
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch39
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-direct_mmap-Use-off_t-on-linux.patch42
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch39
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch49
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/abseil-ppc-fixes.patch81
-rw-r--r--meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb36
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf4
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-cleanup24
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-setup35
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-start9
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs_1.0.bb35
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup14
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb7
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch351
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch134
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service5
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch361
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch44
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0001-memory.h-Always-define-strlcpy-for-glibc-based-syste.patch35
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch70
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch29
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch47
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch350
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch130
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch26
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch23
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch110
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch23
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch64
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch50
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch191
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0014-add-u3-ss-descriptor-support-for-adb.patch344
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch60
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0016-libsparse-Add-hole-mode-to-sparse_file_read.patch188
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/0017-img2simg-Add-support-for-converting-holes-to-don-t-c.patch114
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff43
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/core/b64_pton_function_decl.patch14
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch23
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch39
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch78
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch39
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/gitignore (renamed from meta-oe/recipes-devtools/android-tools/android-tools/.gitignore)0
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch42
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-Remove-bionic-specific-calls.patch25
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch51
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch108
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch81
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/remove-bionic-android.patch67
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/remove-selinux-android.patch56
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/use-capability.patch19
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools/use-local-socket.patch62
-rw-r--r--meta-oe/recipes-devtools/android-tools/android-tools_5.1.1.r37.bb115
-rw-r--r--meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb34
-rw-r--r--meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb67
-rw-r--r--meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch67
-rw-r--r--meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch49
-rw-r--r--meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch39
-rw-r--r--meta-oe/recipes-devtools/bootchart/bootchart_git.bb21
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch49
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch242
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-Turn-off-sign-compare-for-musl-libc.patch11
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch52
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-include-sys-reg.h-to-get-__WORDSIZE-on-musl-libc.patch14
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0001-lss-Match-syscalls-to-match-musl.patch35
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch29
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch60
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch26
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0003-Dont-include-stab.h.patch46
-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.patch46
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch38
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch75
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad/mips_asm_sgidefs.patch20
-rw-r--r--meta-oe/recipes-devtools/breakpad/breakpad_git.bb53
-rw-r--r--meta-oe/recipes-devtools/capnproto/capnproto_0.10.4.bb28
-rw-r--r--meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb24
-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/remove-help2man.patch47
-rw-r--r--meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb21
-rw-r--r--meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb20
-rw-r--r--meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb21
-rw-r--r--meta-oe/recipes-devtools/cloc/cloc_1.94.bb20
-rw-r--r--meta-oe/recipes-devtools/cloud9/cloud9/cloud9-avahi.service10
-rw-r--r--meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service11
-rw-r--r--meta-oe/recipes-devtools/cloud9/cloud9/index.js2
-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.bb19
-rw-r--r--meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb22
-rw-r--r--meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb23
-rw-r--r--meta-oe/recipes-devtools/cscope/cscope_15.8b.bb24
-rw-r--r--meta-oe/recipes-devtools/cscope/cscope_15.9.bb24
-rw-r--r--meta-oe/recipes-devtools/ctags/ctags_5.8.bb25
-rw-r--r--meta-oe/recipes-devtools/ctags/ctags_6.0.20230716.0.bb36
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap/0001-do-not-hardcode-the-full-path-of-dpkg.patch33
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap/0001-support-to-override-usr-sbin-and-usr-share.patch41
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap/0002-support-to-override-usr-bin-arch-test.patch47
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gzbin767 -> 0 bytes
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.128.bb27
-rw-r--r--meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb35
-rw-r--r--meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch45
-rw-r--r--meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb14
-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_git.bb47
-rw-r--r--meta-oe/recipes-devtools/dnf-plugin-tui/files/oe-remote.repo.sample5
-rw-r--r--meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch37
-rw-r--r--meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch232
-rw-r--r--meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb21
-rw-r--r--meta-oe/recipes-devtools/editorconfig/editorconfig-core-c_0.12.6.bb15
-rw-r--r--meta-oe/recipes-devtools/exprtk/exprtk_git.bb22
-rw-r--r--meta-oe/recipes-devtools/extract-cert/extract-cert_0.3.bb14
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch26
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch113
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch30
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb28
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc3
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb37
-rw-r--r--meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb15
-rw-r--r--meta-oe/recipes-devtools/geany/geany-plugins/0001-Use-pkg-config-to-find-gpgme.patch31
-rw-r--r--meta-oe/recipes-devtools/geany/geany-plugins/0001-geany.m4-Do-not-tinker-with-pkg-config-paths.patch32
-rw-r--r--meta-oe/recipes-devtools/geany/geany-plugins/0001-git-changebar-Adjust-structs-for-libgit2-1.4.x.patch36
-rw-r--r--meta-oe/recipes-devtools/geany/geany-plugins/0001-scope-Use-0-instead-of-NULL-for-gboolean.patch34
-rw-r--r--meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb271
-rw-r--r--meta-oe/recipes-devtools/geany/geany-plugins_1.38.bb248
-rw-r--r--meta-oe/recipes-devtools/geany/geany/0001-configure-Upgrade-to-a-modern-Gettext.patch22
-rw-r--r--meta-oe/recipes-devtools/geany/geany_1.31.bb18
-rw-r--r--meta-oe/recipes-devtools/geany/geany_1.38.bb21
-rw-r--r--meta-oe/recipes-devtools/giflib/giflib_5.1.4.bb19
-rw-r--r--meta-oe/recipes-devtools/giflib/giflib_5.2.1.bb24
-rw-r--r--meta-oe/recipes-devtools/glade/glade_3.20.2.bb27
-rw-r--r--meta-oe/recipes-devtools/glade/glade_3.22.2.bb29
-rw-r--r--meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch62
-rw-r--r--meta-oe/recipes-devtools/grpc/grpc/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch32
-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.50.1.bb69
-rw-r--r--meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.20.5.bb26
-rw-r--r--meta-oe/recipes-devtools/guider/guider_3.9.8.bb19
-rw-r--r--meta-oe/recipes-devtools/heaptrack/heaptrack/0001-libheaptrack-Replace-__pid_t-with-pid_t.patch26
-rw-r--r--meta-oe/recipes-devtools/heaptrack/heaptrack/0001-track-Check-for-unw_set_caching_policy-before-using.patch41
-rw-r--r--meta-oe/recipes-devtools/heaptrack/heaptrack/0002-heaptrack_inject-Include-dlfcn.h-for-dlopen-dlclose.patch38
-rw-r--r--meta-oe/recipes-devtools/heaptrack/heaptrack/0003-heaptrack_preload-Make-noexcept-attribute-conditiona.patch118
-rw-r--r--meta-oe/recipes-devtools/heaptrack/heaptrack/0004-backtrace-Always-include-stdint.h.patch42
-rw-r--r--meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb32
-rw-r--r--meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb2
-rw-r--r--meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch54
-rw-r--r--meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-make-Make-CC-weak-assignment.patch44
-rw-r--r--meta-oe/recipes-devtools/iptraf/iptraf-ng/iptraf-ng-tmpfiles.conf3
-rw-r--r--meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch55
-rw-r--r--meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb42
-rw-r--r--meta-oe/recipes-devtools/iptraf/iptraf-ng_1.2.1.bb53
-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-ptest48
-rw-r--r--meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb54
-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.patch32
-rw-r--r--meta-oe/recipes-devtools/jq/jq/Support-without-oniguruma.patch68
-rwxr-xr-xmeta-oe/recipes-devtools/jq/jq/run-ptest37
-rw-r--r--meta-oe/recipes-devtools/jq/jq_1.5.bb30
-rw-r--r--meta-oe/recipes-devtools/jq/jq_git.bb43
-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_2.1.0.bb16
-rw-r--r--meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb21
-rw-r--r--meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.5.bb25
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch77
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorclient-Typecast-min-arguments-correctl.patch33
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorserver-Include-sys-select.h-before-oth.patch34
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-memset-and-family-needs-to-include-string.h.patch26
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc/0002-Fix-build-problem-on-Mac.patch27
-rw-r--r--meta-oe/recipes-devtools/jsonrpc/jsonrpc_0.7.0.bb32
-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.6.0.bb20
-rw-r--r--meta-oe/recipes-devtools/kconfig-frontends/kconfig-frontends_4.11.0.1.bb14
-rw-r--r--meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb27
-rw-r--r--meta-oe/recipes-devtools/ldns/ldns_1.8.3.bb23
-rw-r--r--meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch17
-rw-r--r--meta-oe/recipes-devtools/libedit/libedit_20170329-3.1.bb21
-rw-r--r--meta-oe/recipes-devtools/libfribidi/fribidi_0.19.7.bb20
-rw-r--r--meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb24
-rw-r--r--meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb21
-rw-r--r--meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch302
-rw-r--r--meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch28
-rw-r--r--meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch35
-rw-r--r--meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch13
-rw-r--r--meta-oe/recipes-devtools/librcf/librcf/mips-support.patch19
-rw-r--r--meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb53
-rw-r--r--meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb4
-rw-r--r--meta-oe/recipes-devtools/libubox/libubox/0001-blobmsg-fix-array-out-of-bounds-GCC-10-warning.patch42
-rw-r--r--meta-oe/recipes-devtools/libubox/libubox/0001-version-libraries.patch2
-rw-r--r--meta-oe/recipes-devtools/libubox/libubox_git.bb9
-rw-r--r--meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb18
-rw-r--r--meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch57
-rw-r--r--meta-oe/recipes-devtools/lshw/files/0001-disable-docbook2man.patch30
-rw-r--r--meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch34
-rw-r--r--meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch92
-rw-r--r--meta-oe/recipes-devtools/lshw/lshw_02.18.bb32
-rw-r--r--meta-oe/recipes-devtools/lshw/lshw_02.19.2.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-Bug-fix-for-data-type-length-judgment.patch42
-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-ensure-the-struct-pointers-are-null-initilized.patch46
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-hook-Do-not-append-int-to-std-string.patch33
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch50
-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-move-fprintf-into-same-block-where-modname-and-symna.patch37
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-Remove-unused-host_powerpc64-function.patch39
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-plt-do-not-free-symbol-libsym.patch29
-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.patch41
-rw-r--r--meta-oe/recipes-devtools/ltrace/ltrace_git.bb20
-rw-r--r--meta-oe/recipes-devtools/lua/lua/lua.pc.in10
-rw-r--r--meta-oe/recipes-devtools/lua/lua/run-ptest19
-rw-r--r--meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch13
-rw-r--r--meta-oe/recipes-devtools/lua/lua_5.3.4.bb59
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch3
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit/0001-Use-builtin-for-clear_cache.patch29
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit/clang.patch4
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb94
-rw-r--r--meta-oe/recipes-devtools/luajit/luajit_git.bb103
-rw-r--r--meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb27
-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/0001-configure-Fix-checks-for-system-headers.patch44
-rw-r--r--meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch36
-rw-r--r--meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch33
-rw-r--r--meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb6
-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/memstat/memstat_1.0.bb4
-rw-r--r--meta-oe/recipes-devtools/mercurial/mercurial_4.6.1.bb31
-rw-r--r--meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb37
-rw-r--r--meta-oe/recipes-devtools/mpich/mpich_3.2.bb47
-rw-r--r--meta-oe/recipes-devtools/mpich/mpich_4.1.2.bb67
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch35
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb19
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-c_4.0.0.bb20
-rw-r--r--meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.1.1.bb21
-rw-r--r--meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb2
-rw-r--r--meta-oe/recipes-devtools/musl/musl-nscd/0001-nsswitch.y-Replace-empty-bison-extension.patch50
-rw-r--r--meta-oe/recipes-devtools/musl/musl-nscd_git.bb39
-rw-r--r--meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb29
-rw-r--r--meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb30
-rwxr-xr-xmeta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.16/oe-npm-cache77
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.16.bb21
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-Disable-running-gyp-files-for-bundled-deps.patch57
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch77
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch85
-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.patch25
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch102
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch18
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/libatomic.patch21
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch37
-rwxr-xr-xmeta-oe/recipes-devtools/nodejs/nodejs/run-ptest3
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs/system-c-ares.patch24
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb185
-rw-r--r--meta-oe/recipes-devtools/nodejs/nodejs_8.11.2.bb90
-rw-r--r--meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch18
-rw-r--r--meta-oe/recipes-devtools/octave/octave_7.2.0.bb56
-rw-r--r--meta-oe/recipes-devtools/openocd/openocd/0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch39
-rw-r--r--meta-oe/recipes-devtools/openocd/openocd_git.bb44
-rw-r--r--meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb12
-rw-r--r--meta-oe/recipes-devtools/pahole/files/0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch35
-rw-r--r--meta-oe/recipes-devtools/pahole/pahole_1.24.bb33
-rw-r--r--meta-oe/recipes-devtools/pax-utils/pax-utils_1.3.3.bb35
-rw-r--r--meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb17
-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.bb153
-rw-r--r--meta-oe/recipes-devtools/perfetto/perfetto.inc9
-rw-r--r--meta-oe/recipes-devtools/perl/ipc-run_0.96.bb24
-rw-r--r--meta-oe/recipes-devtools/perl/ipc-run_20220807.0.bb24
-rw-r--r--meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb24
-rw-r--r--meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb25
-rw-r--r--meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb22
-rw-r--r--meta-oe/recipes-devtools/perl/libdbi-perl/CVE-2014-10402.patch56
-rw-r--r--meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb36
-rw-r--r--meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb69
-rw-r--r--meta-oe/recipes-devtools/perl/libdev-checklib-perl/0001-CheckLib.pm-don-t-execute-the-binary.patch46
-rw-r--r--meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.16.bb28
-rw-r--r--meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch54
-rw-r--r--meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb16
-rw-r--r--meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb27
-rw-r--r--meta-oe/recipes-devtools/perl/libjson-perl_4.03000.bb22
-rw-r--r--meta-oe/recipes-devtools/perl/libparse-yapp-perl_1.21.bb25
-rw-r--r--meta-oe/recipes-devtools/perl/libpcsc-perl_1.4.14.bb22
-rw-r--r--meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb30
-rw-r--r--meta-oe/recipes-devtools/php/php.inc263
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch38
-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/0001-acinclude-use-pkgconfig-for-libxml2-config.patch90
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch39
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch56
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-ext-opcache-config.m4-enable-opcache.patch251
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch45
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch63
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch385
-rw-r--r--meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch26
-rw-r--r--meta-oe/recipes-devtools/php/php/0002-build-php.m4-don-t-unset-cache-variables.patch45
-rw-r--r--meta-oe/recipes-devtools/php/php/0003-php-remove-host-specific-info-from-header-file.patch36
-rw-r--r--meta-oe/recipes-devtools/php/php/0004-configure.ac-don-t-include-build-libtool.m4.patch33
-rw-r--r--meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch31
-rw-r--r--meta-oe/recipes-devtools/php/php/0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch46
-rw-r--r--meta-oe/recipes-devtools/php/php/0007-sapi-cli-config.m4-fix-build-directory.patch32
-rw-r--r--meta-oe/recipes-devtools/php/php/0008-ext-imap-config.m4-fix-include-paths.patch45
-rw-r--r--meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch31
-rw-r--r--meta-oe/recipes-devtools/php/php/0010-iconv-fix-detection.patch35
-rw-r--r--meta-oe/recipes-devtools/php/php/70_mod_php5.conf12
-rw-r--r--meta-oe/recipes-devtools/php/php/70_mod_php7.conf9
-rw-r--r--meta-oe/recipes-devtools/php/php/70_mod_php8.conf9
-rw-r--r--meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch25
-rw-r--r--meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch61
-rw-r--r--meta-oe/recipes-devtools/php/php/iconv.patch37
-rw-r--r--meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch51
-rw-r--r--meta-oe/recipes-devtools/php/php/pear-makefile.patch22
-rw-r--r--meta-oe/recipes-devtools/php/php/phar-makefile.patch42
-rw-r--r--meta-oe/recipes-devtools/php/php/php-fpm-apache.conf4
-rw-r--r--meta-oe/recipes-devtools/php/php/php-fpm.service2
-rw-r--r--meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch387
-rw-r--r--meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch63
-rw-r--r--meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch26
-rw-r--r--meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch46
-rw-r--r--meta-oe/recipes-devtools/php/php/php_exec_native.patch22
-rw-r--r--meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch30
-rw-r--r--meta-oe/recipes-devtools/php/php_5.6.35.bb23
-rw-r--r--meta-oe/recipes-devtools/php/php_7.2.4.bb24
-rw-r--r--meta-oe/recipes-devtools/php/php_8.2.8.bb296
-rw-r--r--meta-oe/recipes-devtools/ply/ply_git.bb19
-rw-r--r--meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch38
-rw-r--r--meta-oe/recipes-devtools/pmtools/pmtools_git.bb6
-rw-r--r--meta-oe/recipes-devtools/poke/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch45
-rw-r--r--meta-oe/recipes-devtools/poke/poke/0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch47
-rw-r--r--meta-oe/recipes-devtools/poke/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch36
-rw-r--r--meta-oe/recipes-devtools/poke/poke_1.2.bb32
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb31
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb36
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-build-on-mips-clang.patch26
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch69
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch58
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf/run-ptest2
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf_3.21.12.bb108
-rw-r--r--meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb84
-rw-r--r--meta-oe/recipes-devtools/pugixml/pugixml_1.13.bb24
-rw-r--r--meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb18
-rw-r--r--meta-oe/recipes-devtools/python/python-distutils-extra.bb9
-rw-r--r--meta-oe/recipes-devtools/python/python-distutils-extra.inc13
-rw-r--r--meta-oe/recipes-devtools/python/python-futures_3.2.0.bb13
-rw-r--r--meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch28
-rw-r--r--meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb35
-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.bb11
-rw-r--r--meta-oe/recipes-devtools/python/python3-distutils-extra_2.39.bb17
-rw-r--r--meta-oe/recipes-devtools/python/python3-pycups_2.0.1.bb19
-rw-r--r--meta-oe/recipes-devtools/rapidjson/rapidjson/remove-march-native-from-CMAKE_CXX_FLAGS.patch40
-rw-r--r--meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb11
-rw-r--r--meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch81
-rw-r--r--meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch34
-rw-r--r--meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch49
-rw-r--r--meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb31
-rw-r--r--meta-oe/recipes-devtools/sip/sip_4.19.8.bb42
-rw-r--r--meta-oe/recipes-devtools/sip/sip_6.7.9.bb16
-rw-r--r--meta-oe/recipes-devtools/smemstat/smemstat_0.02.12.bb22
-rw-r--r--meta-oe/recipes-devtools/sqlite-orm/sqlite-orm_1.5.bb24
-rw-r--r--meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.1.4.bb33
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse/0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch45
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse/0002-Preserve-links-when-installing-libmetis.patch24
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse/0003-Add-version-information-to-libmetis.patch51
-rw-r--r--meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb75
-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/tclap/files/0001-tclap-add-pkg-config-file.patch50
-rw-r--r--meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch31
-rw-r--r--meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb16
-rw-r--r--meta-oe/recipes-devtools/tclap/tclap_1.4.0.bb23
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch13
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/confsearch.diff51
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff6
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/non-linux.diff27
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff22
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk/tkprivate.diff2
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk_8.6.10.bb95
-rw-r--r--meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb79
-rw-r--r--meta-oe/recipes-devtools/uftrace/uftrace_0.13.1.bb43
-rw-r--r--meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb31
-rw-r--r--meta-oe/recipes-devtools/unattended-upgrades/files/0001-setup.py-Disable-autodection-of-modules.patch28
-rw-r--r--meta-oe/recipes-devtools/unattended-upgrades/files/0001-unattended-upgrade-Remove-distro_info-usage-to-check.patch78
-rw-r--r--meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.9.1.bb32
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Define-prototype-for-safe_flock.patch105
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Do-not-build-mtest.patch38
-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.patch71
-rw-r--r--meta-oe/recipes-devtools/uw-imap/uw-imap/0002-tmail-Include-ctype.h-for-isdigit.patch26
-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.bb21
-rw-r--r--meta-oe/recipes-devtools/valijson/valijson_1.0.1.bb22
-rw-r--r--meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb47
-rw-r--r--meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.4.bb43
-rw-r--r--meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch52
-rw-r--r--meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch27
-rw-r--r--meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb24
-rw-r--r--meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.59.01.bb49
-rw-r--r--meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb4
-rw-r--r--meta-oe/recipes-devtools/yajl/yajl_2.1.0.bb2
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm/0001-Do-not-use-AC_HEADER_STDC.patch39
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm/CVE-2023-31975.patch29
-rw-r--r--meta-oe/recipes-devtools/yasm/yasm_git.bb31
-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/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-.patch31
-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/0001-scripts-Do-not-check-for-files-on-build-host.patch52
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch30
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch98
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch29
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch19
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client_7.20.5.bb82
-rw-r--r--meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb79
-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/byacc/byacc.inc4
-rw-r--r--meta-oe/recipes-extended/byacc/byacc/0001-byacc-do-not-reorder-CC-and-CFLAGS.patch181
-rw-r--r--meta-oe/recipes-extended/byacc/byacc_20180510.bb12
-rw-r--r--meta-oe/recipes-extended/byacc/byacc_20230219.bb10
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb36
-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/change-hard-coded-lib-path.patch28
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch23
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb73
-rw-r--r--meta-oe/recipes-extended/cfengine/cfengine_3.21.0.bb76
-rw-r--r--meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb15
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Add-PYTHON_ABI-suffix-to-the-python-library-name.patch9
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-Fix-error.patch2
-rw-r--r--meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings/0001-fix-the-build-error-when-python-3.0.patch2
-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_git.bb40
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch53
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch39
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0001-configure-Check-for-Wno-error-format-truncation-comp.patch8
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch4
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0005-Disable-new-gcc8-warnings.patch20
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/0006-libcollectdclient-Fix-string-overflow-errors.patch31
-rw-r--r--meta-oe/recipes-extended/collectd/collectd/collectd.init8
-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.bb91
-rw-r--r--meta-oe/recipes-extended/collectd/collectd_5.8.0.bb87
-rw-r--r--meta-oe/recipes-extended/ddrescue/ddrescue_1.22.bb45
-rw-r--r--meta-oe/recipes-extended/ddrescue/ddrescue_1.27.bb44
-rw-r--r--meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb29
-rw-r--r--meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb31
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch94
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch24
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch49
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch40
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon/504.patch34
-rw-r--r--meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb71
-rw-r--r--meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb26
-rw-r--r--meta-oe/recipes-extended/duktape/duktape_2.7.0.bb40
-rw-r--r--meta-oe/recipes-extended/duktape/files/run-ptest32
-rw-r--r--meta-oe/recipes-extended/dumb-init/dumb-init_1.2.0.bb15
-rw-r--r--meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb15
-rw-r--r--meta-oe/recipes-extended/enscript/enscript/0001-Fix-builds-with-recent-gettext.patch24
-rw-r--r--meta-oe/recipes-extended/enscript/enscript/0001-getopt-Include-string.h-for-strcmp-stcncmp-functions.patch27
-rw-r--r--meta-oe/recipes-extended/enscript/enscript_1.6.6.bb8
-rw-r--r--meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.3.bb20
-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/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch252
-rw-r--r--meta-oe/recipes-extended/figlet/figlet_git.bb15
-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_1.15.4.bb70
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch70
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0001-Use-posix-strerror_r-with-musl.patch34
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0001-fluent-bit-shared-Link-with-lpthread.patch35
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch28
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0002-chunkio-Link-with-fts-library-with-musl.patch30
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch28
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch40
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch32
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch34
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch45
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0004-build-Make-systemd-init-systemd-detection-contingent.patch63
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch33
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch36
-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/jemalloc.patch18
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb30
-rw-r--r--meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb92
-rw-r--r--meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch9
-rw-r--r--meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch12
-rw-r--r--meta-oe/recipes-extended/gnuplot/gnuplot/0003-Use-native-tools-to-build-docs.patch30
-rw-r--r--meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb69
-rw-r--r--meta-oe/recipes-extended/gnuplot/gnuplot_5.4.3.bb71
-rw-r--r--meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch32
-rw-r--r--meta-oe/recipes-extended/haveged/haveged_1.9.18.bb26
-rw-r--r--meta-oe/recipes-extended/haveged/haveged_1.9.2.bb42
-rw-r--r--meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb16
-rw-r--r--meta-oe/recipes-extended/hexedit/hexedit_1.6.bb20
-rw-r--r--meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch32
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis/run-ptest3
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb22
-rw-r--r--meta-oe/recipes-extended/hiredis/hiredis_1.2.0.bb39
-rw-r--r--meta-oe/recipes-extended/hplip/hplip-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch42
-rw-r--r--meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch14
-rw-r--r--meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch395
-rw-r--r--meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch35
-rw-r--r--meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch12
-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/0001-common-utils-Include-string.h-for-strcasestr.patch44
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch48
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0003-pserror.c-Define-column-to-be-int-explcitly.patch23
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0004-Define-missing-prototype-for-functions.patch55
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch64
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/0006-Workaround-patch-for-missing-Python3-transition-of-t.patch132
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch17
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch19
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/600-fix.patch12
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/configure.patch13
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch69
-rw-r--r--meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch22
-rw-r--r--meta-oe/recipes-extended/hplip/hplip_3.12.6.bb74
-rw-r--r--meta-oe/recipes-extended/hplip/hplip_3.22.10.bb89
-rw-r--r--meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb31
-rw-r--r--meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb28
-rw-r--r--meta-oe/recipes-extended/icewm/icewm/0001-configure.ac-skip-running-test-program-when-cross-co.patch54
-rw-r--r--meta-oe/recipes-extended/icewm/icewm_2.9.9.bb46
-rw-r--r--meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch32
-rw-r--r--meta-oe/recipes-extended/indent/indent/0001-Makefile.am-remove-regression-dir.patch67
-rw-r--r--meta-oe/recipes-extended/indent/indent/0001-Remove-dead-paren_level-code.patch79
-rw-r--r--meta-oe/recipes-extended/indent/indent/0001-src-indent.c-correct-the-check-for-locale.h.patch40
-rw-r--r--meta-oe/recipes-extended/indent/indent_2.2.10.bb22
-rw-r--r--meta-oe/recipes-extended/indent/indent_2.2.12.bb28
-rw-r--r--meta-oe/recipes-extended/inputattach-config/inputattach-config.bb12
-rw-r--r--meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf8
-rw-r--r--meta-oe/recipes-extended/iotop/iotop_0.6.bb27
-rw-r--r--meta-oe/recipes-extended/iotop/iotop_1.21.bb24
-rw-r--r--meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch14
-rw-r--r--meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb35
-rw-r--r--meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.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.11.bb12
-rw-r--r--meta-oe/recipes-extended/jansson/jansson_2.14.bb20
-rw-r--r--meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb19
-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.bb17
-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.1.0.bb36
-rw-r--r--meta-oe/recipes-extended/lcdproc/lcdproc/0001-include-asm-ioctl.h-explicitly.patch43
-rw-r--r--meta-oe/recipes-extended/lcdproc/lcdproc_git.bb99
-rw-r--r--meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb30
-rw-r--r--meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch79
-rw-r--r--meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch30
-rw-r--r--meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch492
-rw-r--r--meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch50
-rw-r--r--meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch111
-rw-r--r--meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb51
-rw-r--r--meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb43
-rwxr-xr-xmeta-oe/recipes-extended/libcbor/libcbor_0.10.2.bb14
-rw-r--r--meta-oe/recipes-extended/libcec/files/python-install-location.patch28
-rw-r--r--meta-oe/recipes-extended/libcec/libcec/0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch42
-rw-r--r--meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch33
-rw-r--r--meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch33
-rw-r--r--meta-oe/recipes-extended/libcec/libcec/0001-cecloader-Match-return-type-of-function-LibCecBootlo.patch41
-rw-r--r--meta-oe/recipes-extended/libcec/libcec_6.0.2.bb47
-rw-r--r--meta-oe/recipes-extended/libcec/libcec_git.bb31
-rw-r--r--meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb19
-rw-r--r--meta-oe/recipes-extended/libconfig/libconfig_1.7.3.bb21
-rw-r--r--meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb15
-rw-r--r--meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch16
-rw-r--r--meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb9
-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.bb8
-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.patch23
-rw-r--r--meta-oe/recipes-extended/libidn/libidn_1.41.bb43
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/files/0001-Fix-warnings-found-with-clang.patch51
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch21
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb31
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb38
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libplist_git.bb39
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb16
-rw-r--r--meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb17
-rw-r--r--meta-oe/recipes-extended/libleak/libleak/0001-respect-environment-variables.patch26
-rw-r--r--meta-oe/recipes-extended/libleak/libleak_0.3.6.bb37
-rw-r--r--meta-oe/recipes-extended/liblightmodbus/liblightmodbus/0001-cmake-Use-GNUInstallDirs-instead-of-hardcoding-lib-p.patch37
-rw-r--r--meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb15
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch25
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch48
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch21
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch20
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch54
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch54
-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.patch31
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch51
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch37
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch33
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb35
-rw-r--r--meta-oe/recipes-extended/liblockfile/liblockfile_1.17.bb36
-rw-r--r--meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb23
-rw-r--r--meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb23
-rw-r--r--meta-oe/recipes-extended/liblognorm/liblognorm.inc2
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus.inc5
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch316
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb7
-rw-r--r--meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb9
-rw-r--r--meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch72
-rw-r--r--meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch29
-rw-r--r--meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb47
-rw-r--r--meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb43
-rw-r--r--meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch56
-rw-r--r--meta-oe/recipes-extended/libqb/libqb_1.0.3.bb33
-rw-r--r--meta-oe/recipes-extended/libqb/libqb_2.0.7.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.patch24
-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.patch27
-rw-r--r--meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch142
-rw-r--r--meta-oe/recipes-extended/libreport/libreport_2.17.8.bb51
-rw-r--r--meta-oe/recipes-extended/libreport/libreport_2.9.2.bb48
-rw-r--r--meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb12
-rw-r--r--meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb33
-rw-r--r--meta-oe/recipes-extended/libuio/libuio/0001-include-fcntl.h-for-O_RDWR-define.patch38
-rw-r--r--meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch121
-rw-r--r--meta-oe/recipes-extended/libuio/libuio_0.2.1.bb17
-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.bb14
-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/0001-Fix-type-of-the-void-pointer-assignment.patch33
-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.bb6
-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/run-ptest18
-rw-r--r--meta-oe/recipes-extended/libyang/libyang_2.1.55.bb45
-rw-r--r--meta-oe/recipes-extended/libzip/libzip_1.10.0.bb26
-rw-r--r--meta-oe/recipes-extended/linuxconsole/linuxconsole/0001-utils-Use-name-of-the-first-prerequisite-in-rule.patch37
-rw-r--r--meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules83
-rw-r--r--meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules7
-rw-r--r--meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service11
-rw-r--r--meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl16
-rw-r--r--meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.1.bb97
-rw-r--r--meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb24
-rw-r--r--meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb23
-rw-r--r--meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb58
-rw-r--r--meta-oe/recipes-extended/logwatch/logwatch_7.8.bb57
-rw-r--r--meta-oe/recipes-extended/lprng/lprng/0001-checkpc-Do-not-define-Mail_fd-multiple-times.patch34
-rw-r--r--meta-oe/recipes-extended/lprng/lprng_3.8.C.bb10
-rw-r--r--meta-oe/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch59
-rw-r--r--meta-oe/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch41
-rw-r--r--meta-oe/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch25
-rw-r--r--meta-oe/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch71
-rw-r--r--meta-oe/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch79
-rw-r--r--meta-oe/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch113
-rw-r--r--meta-oe/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch31
-rw-r--r--meta-oe/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch38
-rw-r--r--meta-oe/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch46
-rw-r--r--meta-oe/recipes-extended/mailx/mailx_12.5-5.bb53
-rw-r--r--meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch32
-rw-r--r--meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch128
-rw-r--r--meta-oe/recipes-extended/md5deep/files/wrong-variable-expansion.patch28
-rw-r--r--meta-oe/recipes-extended/md5deep/md5deep_4.4.bb17
-rw-r--r--meta-oe/recipes-extended/md5deep/md5deep_git.bb19
-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-Add-missing-includes-cstdint-and-cstdio.patch70
-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-LFS64-functions-on-linux-musl.patch35
-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-Fix-the-constness-issues-around-autovector-iterator_.patch63
-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-build-with-clang-17.patch37
-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-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch34
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch36
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch45
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch62
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch38
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch39
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch27
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch14
-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.patch40
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/systemd-volatile.conf1
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf1
-rw-r--r--meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb163
-rw-r--r--meta-oe/recipes-extended/minio/minio/modules.txt208
-rw-r--r--meta-oe/recipes-extended/minio/minio_git.bb164
-rw-r--r--meta-oe/recipes-extended/minio/src_uri.inc509
-rw-r--r--meta-oe/recipes-extended/mml-widget/gtkmathview/0001-Fix-formatting-for-modern-c-11-compilers.patch31
-rw-r--r--meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch28
-rw-r--r--meta-oe/recipes-extended/mml-widget/gtkmathview/0002-configure.ac-header-detection-of-hash_map-is-broken-.patch63
-rw-r--r--meta-oe/recipes-extended/mml-widget/gtkmathview/0003-gcc-6.0-build-fixes.patch93
-rw-r--r--meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch18
-rw-r--r--meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb28
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0001-Cargo.toml-do-not-abort-on-panic.patch32
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0001-add-arm-to-list-of-mozinline.patch25
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch29
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0001-rewrite-cargo-host-linker-in-python3.patch54
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0001-util.configure-fix-one-occasionally-reproduced-confi.patch48
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0002-moz.configure-do-not-look-for-llvm-objdump.patch44
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch66
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/0004-use-asm-sgidefs.h.patch38
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/fix-musl-build.patch29
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/musl-disable-stackwalk.patch18
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102/riscv32.patch60
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb79
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0001-compare-the-first-character-of-string-to-be-null-or-.patch32
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch35
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch36
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch3238
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch75
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch103
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch44
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch46
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch112
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/Update-Double-Conversion.patch1732
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/Update-the-double-conversion-update-script.patch175
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch18
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch20
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb83
-rw-r--r--meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch37
-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_git.bb38
-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/change-mandir-to-DESTDIR.patch2
-rw-r--r--meta-oe/recipes-extended/nana/nana/modify-acinclude.m4-and-configure.in.patch2
-rw-r--r--meta-oe/recipes-extended/nana/nana_2.5.bb9
-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.bb32
-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/openlmi/openlmi-tools_0.10.5.bb24
-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.6.4.bb70
-rw-r--r--meta-oe/recipes-extended/openwsman/openwsman_2.7.2.bb73
-rw-r--r--meta-oe/recipes-extended/ostree/ostree/run-ptest3
-rw-r--r--meta-oe/recipes-extended/ostree/ostree_2023.5.bb220
-rw-r--r--meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch3
-rw-r--r--meta-oe/recipes-extended/p7zip/files/CVE-2016-9296.patch27
-rw-r--r--meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch13
-rw-r--r--meta-oe/recipes-extended/p7zip/files/CVE-2018-5996.patch227
-rw-r--r--meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch34
-rw-r--r--meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch16
-rw-r--r--meta-oe/recipes-extended/p7zip/p7zip_16.02.bb44
-rw-r--r--meta-oe/recipes-extended/p8platform/p8platform_git.bb12
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-configure-Check-for-function-from-libdb-during-confi.patch34
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch29
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch97
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-for-all-linux-targets.patch40
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb17
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.1.bb22
-rw-r--r--meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb23
-rw-r--r--meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-Adapt-to-OpenSSL-1.1.1.patch879
-rw-r--r--meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-configure-Include-stdio.h-for-printf.patch37
-rw-r--r--meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch365
-rw-r--r--meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb18
-rw-r--r--meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb13
-rw-r--r--meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb2
-rw-r--r--meta-oe/recipes-extended/plocate/plocate.inc9
-rw-r--r--meta-oe/recipes-extended/plocate/plocate_1.1.17.bb9
-rw-r--r--meta-oe/recipes-extended/pmdk/pmdk/0001-pmempool-Match-function-prototypes-of-enum_to_str_fn.patch43
-rw-r--r--meta-oe/recipes-extended/pmdk/pmdk_1.12.1.bb49
-rw-r--r--meta-oe/recipes-extended/polkit/files/50-org.freedesktop.udiskie.rules24
-rw-r--r--meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb2
-rw-r--r--meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb2
-rw-r--r--meta-oe/recipes-extended/polkit/polkit-group-rule-udisks2.bb17
-rw-r--r--meta-oe/recipes-extended/polkit/polkit-group-rule.inc9
-rw-r--r--meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch107
-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.patch18
-rw-r--r--meta-oe/recipes-extended/polkit/polkit_0.113.bb51
-rw-r--r--meta-oe/recipes-extended/polkit/polkit_0.119.bb79
-rw-r--r--meta-oe/recipes-extended/polkit/polkit_122.bb49
-rw-r--r--meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb22
-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/rarpd/rarpd_ss981107.bb6
-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.10.bb26
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/0001-src-Do-not-reset-FINAL_LIBS.patch30
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/0006-Define-correct-gregs-for-RISCV32.patch62
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/GNU_SOURCE-7.patch29
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/hiredis-use-default-CC-if-it-is-set.patch38
-rwxr-xr-xmeta-oe/recipes-extended/redis/redis-7.0.12/init-redis-server71
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/lua-update-Makefile-to-use-environment-build-setting.patch78
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/oe-use-libc-malloc.patch36
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/redis.conf1314
-rw-r--r--meta-oe/recipes-extended/redis/redis-7.0.12/redis.service16
-rw-r--r--meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch30
-rw-r--r--meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch62
-rw-r--r--meta-oe/recipes-extended/redis/redis/GNU_SOURCE.patch31
-rw-r--r--meta-oe/recipes-extended/redis/redis/hiredis-use-default-CC-if-it-is-set.patch23
-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.patch68
-rw-r--r--meta-oe/recipes-extended/redis/redis/oe-use-libc-malloc.patch14
-rw-r--r--meta-oe/recipes-extended/redis/redis/remove-atomics.patch72
-rw-r--r--meta-oe/recipes-extended/redis/redis_4.0.8.bb56
-rw-r--r--meta-oe/recipes-extended/redis/redis_6.2.13.bb66
-rw-r--r--meta-oe/recipes-extended/redis/redis_7.0.12.bb70
-rw-r--r--meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb128
-rw-r--r--meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb131
-rw-r--r--meta-oe/recipes-extended/rsyslog/libfastjson_0.99.4.bb15
-rw-r--r--meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb15
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb20
-rw-r--r--meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb15
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch15
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/0001-tests-disable-the-check-for-inotify.patch46
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch118
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf5
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate4
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.service21
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest11
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch2
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb206
-rw-r--r--meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb153
-rw-r--r--meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch48
-rw-r--r--meta-oe/recipes-extended/s-nail/files/0001-mk-make-config.sh-not-reveal-the-build-env.patch43
-rw-r--r--meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-eh-no-give-up-share-detection.patch68
-rw-r--r--meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch45
-rw-r--r--meta-oe/recipes-extended/s-nail/files/make-errors.patch45
-rw-r--r--meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb49
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock/0001-add-missing-system-header-string.h.patch41
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch51
-rw-r--r--meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb48
-rw-r--r--meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Avoid-variable-definition-in-header-files.patch100
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Replace-need-for-error.h-when-it-does-not-exist.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/0001-Replace-need-for-error.h-when-it-does-not-exist.patch)27
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-configure-Check-for-function-from-respective-library.patch72
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-missing-system-headers.patch151
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-stdint.h-system-header-for-UINT16_MAX.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/0001-include-stdint.h-system-header-for-UINT16_MAX.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.15-fix-provider-debugging.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.15-fix-provider-debugging.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-maxMsgLen.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-maxMsgLen.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.16-multilib-man-cfg.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.16-multilib-man-cfg.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.3.9-sfcbrepos-schema-location.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.5-service.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.5-service.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.8-default-ecdh-curve-name.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-ftbfs.patch (renamed from meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/sblim-sfcb-1.4.9-fix-ftbfs.patch)2
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch31
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sfcb.service (renamed from meta-oe/recipes-extended/sblim-sfcb/files/sfcb.service)0
-rw-r--r--meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb_1.4.9.bb35
-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.bb1
-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/scsirastools/scsirastools_1.6.6.bb33
-rw-r--r--meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch43
-rw-r--r--meta-oe/recipes-extended/sedutil/files/0001-include-missing-cstdint.patch32
-rw-r--r--meta-oe/recipes-extended/sedutil/sedutil_git.bb19
-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.bb5
-rw-r--r--meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb25
-rw-r--r--meta-oe/recipes-extended/sigrok/libsigrokdecode/0001-configure.ac-add-py-3.10-support.patch24
-rw-r--r--meta-oe/recipes-extended/sigrok/libsigrokdecode/python39.patch27
-rw-r--r--meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.3.bb17
-rw-r--r--meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.2.bb19
-rw-r--r--meta-oe/recipes-extended/smartmontools/files/0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch34
-rw-r--r--meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch28
-rw-r--r--meta-oe/recipes-extended/smartmontools/files/smartd.service1
-rw-r--r--meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb53
-rw-r--r--meta-oe/recipes-extended/smartmontools/smartmontools_7.3.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_1.1.9.bb26
-rw-r--r--meta-oe/recipes-extended/socketcan/can-isotp_git.bb13
-rw-r--r--meta-oe/recipes-extended/socketcan/can-utils_2023.03.bb50
-rw-r--r--meta-oe/recipes-extended/socketcan/can-utils_git.bb16
-rw-r--r--meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb14
-rw-r--r--meta-oe/recipes-extended/socketcan/libsocketcan_0.0.10.bb14
-rw-r--r--meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb18
-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/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch50
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig/0001-cmake-Pass-PROBE_NAME-via-CFLAGS.patch29
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch108
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb62
-rw-r--r--meta-oe/recipes-extended/sysdig/sysdig_git.bb41
-rw-r--r--meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch141
-rw-r--r--meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch58
-rw-r--r--meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch144
-rw-r--r--meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb29
-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/0001-test-ptts-Set-recv-buffer-size-too-max-to-receive-as.patch66
-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.bb19
-rw-r--r--meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch31
-rw-r--r--meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-build-when-S-B.patch28
-rw-r--r--meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch28
-rw-r--r--meta-oe/recipes-extended/tiptop/tiptop/0002-fix-reproducibility-of-build-process.patch32
-rw-r--r--meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb19
-rw-r--r--meta-oe/recipes-extended/tmate/tmate_2.4.0.bb17
-rw-r--r--meta-oe/recipes-extended/tmux/tmux_2.6.bb23
-rw-r--r--meta-oe/recipes-extended/tmux/tmux_3.3a.bb25
-rw-r--r--meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb47
-rw-r--r--meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-Add-missing-standard-headers-for-str-and-exit-APIs.patch64
-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.bb17
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch40
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-Replace-strncpy-with-memcpy.patch49
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-Use-stdint-types.patch139
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-Wno-misleading-indentation-with-clang-.patch33
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch37
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-include-missing-cstdint.patch43
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-initialize-local-variables-before-use.patch57
-rw-r--r--meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch27
-rw-r--r--meta-oe/recipes-extended/upm/upm_git.bb41
-rw-r--r--meta-oe/recipes-extended/vlock/vlock_2.2.3.bb6
-rw-r--r--meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch56
-rw-r--r--meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb38
-rw-r--r--meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb34
-rw-r--r--meta-oe/recipes-extended/wipe/wipe_0.24.bb26
-rw-r--r--meta-oe/recipes-extended/wipe/wipe_git.bb27
-rw-r--r--meta-oe/recipes-extended/wtmpdb/files/0001-remove-lto-to-fix-link-error-of-clang.patch31
-rw-r--r--meta-oe/recipes-extended/wtmpdb/wtmpdb_0.7.1.bb36
-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/0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch35
-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.patch107
-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.patch32
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch60
-rw-r--r--meta-oe/recipes-extended/wxwidgets/wxwidgets_3.2.1.bb123
-rw-r--r--meta-oe/recipes-extended/zlog/zlog/0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch32
-rw-r--r--meta-oe/recipes-extended/zlog/zlog_1.2.16.bb17
-rw-r--r--meta-oe/recipes-extended/zlog/zlog_git.bb21
-rw-r--r--meta-oe/recipes-extended/zram/zram/dev-zram0.swap10
-rwxr-xr-xmeta-oe/recipes-extended/zram/zram/zram-swap-deinit19
-rwxr-xr-xmeta-oe/recipes-extended/zram/zram/zram-swap-init31
-rw-r--r--meta-oe/recipes-extended/zram/zram/zram-swap.service10
-rw-r--r--meta-oe/recipes-extended/zram/zram/zram.service12
-rw-r--r--meta-oe/recipes-extended/zram/zram/zramstop5
-rw-r--r--meta-oe/recipes-extended/zram/zram_0.1.bb33
-rw-r--r--meta-oe/recipes-extended/zram/zram_0.2.bb50
-rw-r--r--meta-oe/recipes-extended/zsync/zsync-curl/fixes.patch115
-rw-r--r--meta-oe/recipes-extended/zsync/zsync-curl/make.patch50
-rw-r--r--meta-oe/recipes-extended/zsync/zsync-curl_git.bb20
-rw-r--r--meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb23
-rw-r--r--meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb19
-rw-r--r--meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb20
-rw-r--r--meta-oe/recipes-gnome/gcab/gcab/run-ptest3
-rw-r--r--meta-oe/recipes-gnome/gcab/gcab_1.4.bb24
-rw-r--r--meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch36
-rw-r--r--meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb59
-rw-r--r--meta-oe/recipes-gnome/gmime/gmime/iconv-detect.h6
-rw-r--r--meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb22
-rw-r--r--meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb8
-rw-r--r--meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb10
-rw-r--r--meta-oe/recipes-gnome/gnome-themes/adw-gtk3_4.8.bb16
-rw-r--r--meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb44
-rw-r--r--meta-oe/recipes-gnome/gtk+/files/0001-do-not-build-demos.patch51
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+.inc107
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch29
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+/0001-Fix-signature-of-create_menu-function.patch50
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+/doc-fixes.patch22
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+/strict-prototypes.patch24
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+/toggle-font.diff102
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+/xsettings.patch20
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb34
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb23
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.7.bb23
-rw-r--r--meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb6
-rw-r--r--meta-oe/recipes-gnome/libjcat/libjcat/run-ptest3
-rw-r--r--meta-oe/recipes-gnome/libjcat/libjcat_0.1.14.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.36.0.bb29
-rw-r--r--meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest3
-rw-r--r--meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb24
-rw-r--r--meta-oe/recipes-gnome/pyxdg/pyxdg_0.28.bb12
-rw-r--r--meta-oe/recipes-gnome/vte9/vte9.inc12
-rw-r--r--meta-oe/recipes-graphics/babl/babl_0.1.28.bb13
-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.12.0.bb15
-rw-r--r--meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb16
-rw-r--r--meta-oe/recipes-graphics/cglm/cglm_0.8.9.bb25
-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-examples/0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch39
-rw-r--r--meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb1
-rw-r--r--meta-oe/recipes-graphics/directfb/directfb.inc21
-rw-r--r--meta-oe/recipes-graphics/directfb/directfb/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch139
-rw-r--r--meta-oe/recipes-graphics/directfb/directfb/0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch54
-rw-r--r--meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch38
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Do-not-set-PYTHON_INSTALL_DIR-by-running-python.patch12
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch25
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-To-fix-error-when-do_package.patch15
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-disable-build-manpages.patch12
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.4.bb31
-rw-r--r--meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb30
-rw-r--r--meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb16
-rw-r--r--meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb16
-rw-r--r--meta-oe/recipes-graphics/fbida/fbida_2.10.bb73
-rw-r--r--meta-oe/recipes-graphics/fbida/fbida_git.bb42
-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/fbida-gcc10.patch61
-rw-r--r--meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch22
-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.bb31
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch77
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge/0001-fontforgeexe-Use-env-to-find-fontforge.patch29
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge/0001-include-sys-select-on-non-glibc-platforms.patch24
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb60
-rw-r--r--meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb49
-rw-r--r--meta-oe/recipes-graphics/fontforge/libspiro_20200505.bb14
-rw-r--r--meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb17
-rw-r--r--meta-oe/recipes-graphics/freeglut/freeglut_3.4.0.bb30
-rw-r--r--meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch38
-rw-r--r--meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch38
-rw-r--r--meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch38
-rw-r--r--meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb27
-rw-r--r--meta-oe/recipes-graphics/fvwm/fvwm/0001-Fix-compilation-for-disabled-gnome.patch36
-rw-r--r--meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch27
-rw-r--r--meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb114
-rw-r--r--meta-oe/recipes-graphics/fvwm/fvwm_2.7.0.bb123
-rw-r--r--meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch21
-rw-r--r--meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb34
-rw-r--r--meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch38
-rw-r--r--meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch34
-rw-r--r--meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch53
-rw-r--r--meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb51
-rw-r--r--meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch860
-rw-r--r--meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch46
-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.patch145
-rw-r--r--meta-oe/recipes-graphics/glm/glm/glm.pc.in7
-rw-r--r--meta-oe/recipes-graphics/glm/glm/glmConfig.cmake.in20
-rw-r--r--meta-oe/recipes-graphics/glm/glm/glmConfigVersion.cmake.in31
-rw-r--r--meta-oe/recipes-graphics/glm/glm/glmTargets.cmake107
-rw-r--r--meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb26
-rw-r--r--meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb41
-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.patch15
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch39
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch32
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb22
-rw-r--r--meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb21
-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.patch33
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi9533
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi19018
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb54
-rw-r--r--meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.bb53
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch33
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz/graphviz-setup.sh6
-rw-r--r--meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb120
-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/0001-main.c-Define-prototype-for-setup_appdata.patch27
-rw-r--r--meta-oe/recipes-graphics/gtkperf/gtkperf/0002-timing.c-Fix-format-security-errors.patch2
-rw-r--r--meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch36
-rw-r--r--meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb12
-rw-r--r--meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb44
-rw-r--r--meta-oe/recipes-graphics/imlib2/imlib2_git.bb42
-rw-r--r--meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb18
-rw-r--r--meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb26
-rw-r--r--meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb18
-rw-r--r--meta-oe/recipes-graphics/leptonica/leptonica_1.82.0.bb19
-rw-r--r--meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch33
-rw-r--r--meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb32
-rw-r--r--meta-oe/recipes-graphics/libforms/files/0001-Make-extern-declarations-in-header-file.patch31
-rw-r--r--meta-oe/recipes-graphics/libforms/files/0001-Modify-include-dir.patch33
-rw-r--r--meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch14
-rw-r--r--meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch14
-rw-r--r--meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch14
-rw-r--r--meta-oe/recipes-graphics/libforms/libforms_1.2.5pre1.bb26
-rw-r--r--meta-oe/recipes-graphics/libglvnd/libglvnd_1.6.0.bb30
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch73
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch29
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch114
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch68
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch81
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch80
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch118
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch64
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch63
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch192
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch38
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch19
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch187
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb19
-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.patch45
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb (renamed from meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb)6
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch23
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb (renamed from meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb)2
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch13
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch23
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb20
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch64
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb (renamed from meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb)4
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.5.bb31
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-mixer/0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch34
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb27
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb27
-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.patch23
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb33
-rw-r--r--meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb84
-rw-r--r--meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb25
-rw-r--r--meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb52
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch22
-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/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch40
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui-ncurses_4.2.3.bb50
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb49
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch48
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch106
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch130
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui_4.2.3.bb36
-rw-r--r--meta-oe/recipes-graphics/libyui/libyui_git.bb41
-rw-r--r--meta-oe/recipes-graphics/lvgl/dialog-lvgl/0001-wayland-Switch-to-custom-timer-tick.patch72
-rw-r--r--meta-oe/recipes-graphics/lvgl/dialog-lvgl/0002-wayland-Fix-callback-data-type.patch30
-rw-r--r--meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb32
-rw-r--r--meta-oe/recipes-graphics/lvgl/lv-drivers.inc46
-rw-r--r--meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb28
-rw-r--r--meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb31
-rw-r--r--meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb46
-rw-r--r--meta-oe/recipes-graphics/lvgl/lvgl_8.3.8.bb42
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0001-Initialize-msghdr-struct-in-a-portable-way.patch40
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch36
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0001-greeter-set-visible-when-switch-to-input-user.patch33
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch38
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0002-greeter-gdk.c-fix-typo.patch28
-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.patch38
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0003-check-whether-password-expired-with-pam.patch46
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch25
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0004-lxdm.c-add-function-to-change-password-with-pam.patch124
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0005-ui.c-handle-password-expire-and-update-new-password.patch53
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0006-themes-Industrial-add-info-label-in-ui.patch124
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0007-greeter.c-support-to-update-expired-password.patch180
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0008-greeter.c-show-information-on-gtk-label-info.patch99
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm/0009-greeter.c-disallow-empty-new-password.patch53
-rw-r--r--meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb46
-rw-r--r--meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb6
-rw-r--r--meta-oe/recipes-graphics/nyancat/nyancat_1.5.2.bb17
-rw-r--r--meta-oe/recipes-graphics/openbox/files/0001-Fix-function-protype-visibility.patch94
-rw-r--r--meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch138
-rw-r--r--meta-oe/recipes-graphics/openbox/obconf_git.bb34
-rw-r--r--meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb20
-rw-r--r--meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch31
-rw-r--r--meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch31
-rw-r--r--meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb18
-rw-r--r--meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb21
-rw-r--r--meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb8
-rw-r--r--meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb20
-rw-r--r--meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb23
-rw-r--r--meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb19
-rw-r--r--meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch45
-rw-r--r--meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch44
-rw-r--r--meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb15
-rw-r--r--meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb20
-rw-r--r--meta-oe/recipes-graphics/qrencode/qrencode_git.bb16
-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.27.bb38
-rw-r--r--meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb14
-rw-r--r--meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb16
-rw-r--r--meta-oe/recipes-graphics/suckless/st_0.9.bb35
-rw-r--r--meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch30
-rw-r--r--meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch42
-rw-r--r--meta-oe/recipes-graphics/surf/surf_2.1.bb31
-rw-r--r--meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb19
-rw-r--r--meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb45
-rw-r--r--meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb45
-rw-r--r--meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb26
-rw-r--r--meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb26
-rw-r--r--meta-oe/recipes-graphics/tesseract/tesseract_5.3.2.bb21
-rw-r--r--meta-oe/recipes-graphics/tesseract/tesseract_git.bb21
-rw-r--r--meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch50
-rw-r--r--meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch21
-rw-r--r--meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch36
-rw-r--r--meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch27
-rw-r--r--meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb133
-rw-r--r--meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb132
-rw-r--r--meta-oe/recipes-graphics/tslib/tslib_1.15.bb82
-rw-r--r--meta-oe/recipes-graphics/tslib/tslib_1.22.bb85
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf17
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb29
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb34
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_1.500.bb17
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_2.100.bb15
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-arphic-uming_20080216.bb13
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-dejavu_2.37.bb38
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb20
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-gentium_1.02.bb10
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb20
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb20
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb6
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-ipa_003.03.01.bb21
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb8
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-liberation_0.2.bb8
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-lklug_0.6-14.20090803cvs.fc24.bb9
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb23
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb23
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb9
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20200916.bb19
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb4
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb14
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb12
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-takao_003.03.01.bb25
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-tlwg_0.6.1.bb6
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb20
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb23
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20141206.bb28
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb27
-rw-r--r--meta-oe/recipes-graphics/ttf-fonts/ttf-wqy-zenhei_0.9.45.bb6
-rw-r--r--meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch238
-rw-r--r--meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb23
-rw-r--r--meta-oe/recipes-graphics/vdpau/libvdpau_1.5.bb25
-rw-r--r--meta-oe/recipes-graphics/vdpau/libvdpau_git.bb25
-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.patch37
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-include-missing-cstdint.patch61
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/0001-use-library-sonames-for-linking.patch114
-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/fix-clang-private-operator.patch15
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch22
-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.inc84
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb36
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.3.1.bb34
-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.bb40
-rw-r--r--meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch24
-rw-r--r--meta-oe/recipes-graphics/x11vnc/files/remove-redundant-RPATH.patch86
-rw-r--r--meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch6
-rw-r--r--meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb34
-rw-r--r--meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb40
-rw-r--r--meta-oe/recipes-graphics/xbindkeys/xbindkeys_1.8.7.bb18
-rw-r--r--meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb14
-rw-r--r--meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb14
-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.7.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.patch4
-rw-r--r--meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.4.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-app/twm_1.0.12.bb15
-rw-r--r--meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb15
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xclock_1.1.1.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xfontsel_1.1.0.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb2
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.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.4.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.5.bb19
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.3.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.7.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xmag_1.0.7.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xmessage_1.0.6.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb9
-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.5.bb13
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.7.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.1.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.2.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.4.bb16
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch75
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xterm_330.bb34
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xterm_384.bb50
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xwd_1.0.9.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xwud_1.0.5.bb12
-rw-r--r--meta-oe/recipes-graphics/xorg-app/xwud_1.0.6.bb12
-rw-r--r--meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.2.bb11
-rw-r--r--meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc4
-rw-r--r--meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc2
-rw-r--r--meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb10
-rw-r--r--meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb12
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi11
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch20
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch31
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch196
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch34
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb35
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb20
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-input-void_1.4.1.bb2
-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-armsoc_1.4.1.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb23
-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_1.6.5.bb21
-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-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch66
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb20
-rw-r--r--meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb21
-rw-r--r--meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb8
-rw-r--r--meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb8
-rw-r--r--meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb8
-rw-r--r--meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb8
-rw-r--r--meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb8
-rw-r--r--meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb4
-rw-r--r--meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb4
-rw-r--r--meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb6
-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.bb14
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb28
-rw-r--r--meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.14.bb28
-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.1.bb12
-rw-r--r--meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch304
-rw-r--r--meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch47
-rw-r--r--meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch53
-rwxr-xr-xmeta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service14
-rw-r--r--meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb60
-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.bb14
-rw-r--r--meta-oe/recipes-graphics/yad/yad_6.0.bb19
-rw-r--r--meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb24
-rw-r--r--meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb25
-rw-r--r--meta-oe/recipes-kernel/bpftool/bpftool.bb44
-rw-r--r--meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p3.bb76
-rw-r--r--meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_git.bb76
-rw-r--r--meta-oe/recipes-kernel/cpupower/cpupower.bb11
-rw-r--r--meta-oe/recipes-kernel/crash/crash/0001-cross_add_configure_option.patch21
-rw-r--r--meta-oe/recipes-kernel/crash/crash/0001-make-src-string-const-in-strlcpy.patch69
-rw-r--r--meta-oe/recipes-kernel/crash/crash/0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch36
-rw-r--r--meta-oe/recipes-kernel/crash/crash/0003-crash-detect-the-sysroot-s-glibc-header-file.patch33
-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/donnot-extract-gdb-during-do-compile.patch29
-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/remove-unrecognized-gcc-option-m32-for-mips.patch33
-rw-r--r--meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch79
-rw-r--r--meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch37
-rw-r--r--meta-oe/recipes-kernel/crash/crash_7.2.0.bb117
-rw-r--r--meta-oe/recipes-kernel/crash/crash_8.0.2.bb114
-rw-r--r--meta-oe/recipes-kernel/intel-speed-select/intel-speed-select.bb33
-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_1.8.18.bb36
-rw-r--r--meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb54
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-ihpm-Include-stdlib.h-for-malloc-free-atoi-functions.patch26
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil/fix_systemd_path.patch29
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb46
-rw-r--r--meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.1.9.bb47
-rw-r--r--meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb145
-rw-r--r--meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/COPYING18
-rwxr-xr-xmeta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest11
-rw-r--r--meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch324
-rw-r--r--meta-oe/recipes-kernel/kpatch/kpatch.inc18
-rw-r--r--meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch52
-rw-r--r--meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch26
-rw-r--r--meta-oe/recipes-kernel/kpatch/kpatch_git.bb4
-rw-r--r--meta-oe/recipes-kernel/libbpf/libbpf_1.2.0.bb36
-rw-r--r--meta-oe/recipes-kernel/libpfm/libpfm4/0001-Include-poll.h-instead-of-sys-poll.h.patch86
-rw-r--r--meta-oe/recipes-kernel/libpfm/libpfm4/0002-perf_examples-Remove-unused-sum-variable.patch44
-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/linux/linux.inc10
-rw-r--r--meta-oe/recipes-kernel/makedumpfile/makedumpfile/0001-makedumpfile-replace-hardcode-CFLAGS.patch101
-rw-r--r--meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch73
-rw-r--r--meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb57
-rw-r--r--meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.3.bb61
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch29
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/files/run-ptest12
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb44
-rw-r--r--meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.6.bb48
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile.inc65
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0001-Add-rmb-definition-for-NIOS2-architecture.patch30
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch51
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-build-with-musl.patch55
-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/0001-configure-Include-unistd.h-for-getpid-API.patch28
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0002-Fix-configure-when-bin-sh-is-not-bash.patch40
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0003-Define-the-C-preprocessor-variable-to-improve-reprod.patch30
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0004-Use-BUILD_DATE-to-improve-reproducibility.patch63
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0005-Add-rmb-definition-for-NIOS2-architecture.patch31
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0006-replace-sym_iterator-0-with-sym_iterator.patch131
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0007-oprofile-doesn-t-want-GNU-levels-of-automake-strictn.patch23
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0008-include-linux-limits.h-for-MAX_INPUT.patch30
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0009-Prevent-running-check-tests-on-host-if-cross-compili.patch113
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/0010-oprofile-Determine-the-root-home-directory-dynamical.patch46
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/automake-foreign.patch12
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/musl.patch46
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/oprofile-cross-compile-tests.patch98
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile/root-home-dir.patch44
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb10
-rw-r--r--meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb77
-rw-r--r--meta-oe/recipes-kernel/pm-graph/pm-graph/0001-Makefile-fix-multilib-build-failure.patch89
-rw-r--r--meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph-add-support-for-RT-kernel-ftrace-flags.patch42
-rw-r--r--meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch51
-rw-r--r--meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-use-python3.patch39
-rw-r--r--meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb35
-rw-r--r--meta-oe/recipes-kernel/spidev-test/spidev-test.bb29
-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/0002-Drop-using-_LARGEFILE64_SOURCE.patch145
-rw-r--r--meta-oe/recipes-kernel/trace-cmd/trace-cmd_3.1.5.bb32
-rw-r--r--meta-oe/recipes-kernel/turbostat/turbostat/COPYING18
-rw-r--r--meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb41
-rw-r--r--meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb69
-rw-r--r--meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch43
-rw-r--r--meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb20
-rw-r--r--meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb4
-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/cdrkit_1.1.11.bb48
-rw-r--r--meta-oe/recipes-multimedia/cdrkit/files/0001-add-new-option-eltorito-platform.patch335
-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-Add-checksum.h-and-md5.h-for-function-pr.patch44
-rw-r--r--meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Add-missing-extern-definition.patch29
-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/0001-install-netscsid-to-bin-for-nativesdk.patch28
-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/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch24
-rw-r--r--meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch33
-rw-r--r--meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch36
-rw-r--r--meta-oe/recipes-multimedia/esound/esound/no-docs.patch19
-rw-r--r--meta-oe/recipes-multimedia/esound/esound_0.2.41.bb37
-rw-r--r--meta-oe/recipes-multimedia/faad2/faad2_2.10.0.bb17
-rw-r--r--meta-oe/recipes-multimedia/faad2/faad2_2.7.bb28
-rw-r--r--meta-oe/recipes-multimedia/id3lib/id3lib/acdefine.patch2
-rw-r--r--meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb43
-rw-r--r--meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch43
-rw-r--r--meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch31
-rw-r--r--meta-oe/recipes-multimedia/jack/a2jmidid/ppc_musl_ucontext.patch19
-rw-r--r--meta-oe/recipes-multimedia/jack/a2jmidid/riscv_ucontext.patch24
-rw-r--r--meta-oe/recipes-multimedia/jack/a2jmidid_8.bb26
-rw-r--r--meta-oe/recipes-multimedia/jack/a2jmidid_9.bb29
-rw-r--r--meta-oe/recipes-multimedia/jack/jack_1.19.22.bb53
-rw-r--r--meta-oe/recipes-multimedia/jack/jack_git.bb38
-rw-r--r--meta-oe/recipes-multimedia/libass/libass_0.14.0.bb30
-rw-r--r--meta-oe/recipes-multimedia/libass/libass_0.17.1.bb27
-rw-r--r--meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb11
-rw-r--r--meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb24
-rw-r--r--meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+2.0.1.bb24
-rw-r--r--meta-oe/recipes-multimedia/libcdio/libcdio/0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch40
-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.0.0.bb29
-rw-r--r--meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb35
-rw-r--r--meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb13
-rw-r--r--meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb11
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch40
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch34
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch43
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch19
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch15
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch39
-rw-r--r--meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb28
-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.patch94
-rw-r--r--meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch8
-rw-r--r--meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb9
-rw-r--r--meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb10
-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.8.5.bb21
-rw-r--r--meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb21
-rw-r--r--meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb54
-rw-r--r--meta-oe/recipes-multimedia/libopus/libopus_1.4.bb54
-rw-r--r--meta-oe/recipes-multimedia/libopusenc/libopusenc_0.2.1.bb19
-rw-r--r--meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch43
-rw-r--r--meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb31
-rw-r--r--meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch21
-rw-r--r--meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb27
-rw-r--r--meta-oe/recipes-multimedia/live555/live555.inc56
-rw-r--r--meta-oe/recipes-multimedia/live555/live555/config.linux-cross (renamed from meta-oe/recipes-multimedia/live555/files/config.linux-cross)2
-rw-r--r--meta-oe/recipes-multimedia/live555/live555_20170410.bb9
-rw-r--r--meta-oe/recipes-multimedia/live555/live555_20210824.bb63
-rw-r--r--meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.11.1.bb28
-rw-r--r--meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb28
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mplayer-common.bb23
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf15
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb73
-rw-r--r--meta-oe/recipes-multimedia/mplayer/mpv_0.35.1.bb116
-rw-r--r--meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb15
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/paprefs_1.2.bb19
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch27
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch112
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch624
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb20
-rw-r--r--meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb27
-rw-r--r--meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb4
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch9
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch108
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch53
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch26
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch23
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-original-patch-export-mediactl-headers.patch26
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch47
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch60
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch23
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch20
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb55
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.24.1.bb87
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch961
-rw-r--r--meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb8
-rw-r--r--meta-oe/recipes-multimedia/wavpack/wavpack_4.60.1.bb10
-rw-r--r--meta-oe/recipes-multimedia/wavpack/wavpack_5.1.0.bb9
-rw-r--r--meta-oe/recipes-multimedia/webm/libvpx/libvpx-configure-support-blank-prefix.patch2
-rw-r--r--meta-oe/recipes-multimedia/webm/libvpx_1.13.0.bb53
-rw-r--r--meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb49
-rw-r--r--meta-oe/recipes-multimedia/xpext/xpext/auxdir.patch2
-rw-r--r--meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb4
-rw-r--r--meta-oe/recipes-multimedia/xsp/xsp/xsp-fix-pc.patch2
-rw-r--r--meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb2
-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.4.4.bb53
-rw-r--r--meta-oe/recipes-navigation/geoclue/geoclue_2.7.0.bb61
-rw-r--r--meta-oe/recipes-navigation/geos/files/fix-gcc6-isnan.patch22
-rw-r--r--meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch39
-rw-r--r--meta-oe/recipes-navigation/geos/geos.inc21
-rw-r--r--meta-oe/recipes-navigation/geos/geos_3.12.0.bb22
-rw-r--r--meta-oe/recipes-navigation/geos/geos_3.4.2.bb7
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch81
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch35
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch51
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb5
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd/gpsd.init158
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb137
-rw-r--r--meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb158
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch17
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch45
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch14
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch13
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb23
-rw-r--r--meta-oe/recipes-navigation/libspatialite/libspatialite_5.0.1.bb24
-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.bb14
-rw-r--r--meta-oe/recipes-navigation/proj/proj_4.9.3.bb14
-rw-r--r--meta-oe/recipes-navigation/proj/proj_9.1.1.bb25
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch54
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-sample-Rename-dprintf-to-cyrus_dprintf.patch91
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch37
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2022-24407.patch27
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch39
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff30
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/saslauthd.conf (renamed from meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf)0
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/saslauthd.service (renamed from meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service)2
-rw-r--r--meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb97
-rw-r--r--meta-oe/recipes-printing/cups/cups-filters/0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch36
-rw-r--r--meta-oe/recipes-printing/cups/cups-filters_1.28.17.bb84
-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/python3-pycups.bb11
-rw-r--r--meta-oe/recipes-printing/gutenprint/gutenprint_git.bb74
-rw-r--r--meta-oe/recipes-printing/qpdf/qpdf_10.6.3.bb33
-rw-r--r--meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch36
-rw-r--r--meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch50
-rw-r--r--meta-oe/recipes-security/audit/audit/audit-volatile.conf1
-rw-r--r--meta-oe/recipes-security/audit/audit/auditd153
-rw-r--r--meta-oe/recipes-security/audit/audit/auditd.service28
-rw-r--r--meta-oe/recipes-security/audit/audit_3.1.1.bb116
-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/files/fix_library_install_path.patch28
-rw-r--r--meta-oe/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch42
-rw-r--r--meta-oe/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch41
-rwxr-xr-xmeta-oe/recipes-security/keyutils/files/run-ptest3
-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.patch75
-rw-r--r--meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch1720
-rw-r--r--meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch48
-rw-r--r--meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch76
-rw-r--r--meta-oe/recipes-security/nmap/nmap_7.60.bb46
-rw-r--r--meta-oe/recipes-security/nmap/nmap_7.80.bb66
-rw-r--r--meta-oe/recipes-security/passwdqc/passwdqc/makefile-add-ldflags.patch25
-rw-r--r--meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb66
-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.bb33
-rw-r--r--meta-oe/recipes-security/tomoyo-tools/tomoyo-tools_2.5.0.bb9
-rw-r--r--meta-oe/recipes-security/usbguard/usbguard/0001-Add-and-use-pkgconfig-instead-of-libgcrypt-config.patch106
-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.2.bb69
-rw-r--r--meta-oe/recipes-shells/dash/dash/0001-Fix-printf-format-errors-with-clang.patch28
-rw-r--r--meta-oe/recipes-shells/dash/dash_0.5.12.bb26
-rw-r--r--meta-oe/recipes-shells/dash/dash_0.5.9.1.bb29
-rw-r--r--meta-oe/recipes-shells/mksh/mksh_59.bb36
-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.20.00.bb44
-rw-r--r--meta-oe/recipes-shells/tcsh/tcsh_6.24.10.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.4.2.bb64
-rw-r--r--meta-oe/recipes-shells/zsh/zsh_5.8.bb62
-rw-r--r--meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb22
-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.bb24
-rw-r--r--meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch43
-rw-r--r--meta-oe/recipes-support/appstream/appstream_0.16.2.bb48
-rw-r--r--meta-oe/recipes-support/asio/asio.inc15
-rw-r--r--meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch46
-rw-r--r--meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch64
-rw-r--r--meta-oe/recipes-support/asio/asio_1.10.6.bb11
-rw-r--r--meta-oe/recipes-support/asio/asio_1.28.0.bb29
-rw-r--r--meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch30
-rw-r--r--meta-oe/recipes-support/atop/atop/0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch67
-rw-r--r--meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch97
-rw-r--r--meta-oe/recipes-support/atop/atop/fix-permissions.patch29
-rw-r--r--meta-oe/recipes-support/atop/atop/remove-bashisms.patch33
-rw-r--r--meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch11
-rw-r--r--meta-oe/recipes-support/atop/atop_2.2.3.bb63
-rw-r--r--meta-oe/recipes-support/atop/atop_2.4.0.bb62
-rw-r--r--meta-oe/recipes-support/augeas/augeas.inc33
-rw-r--r--meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch31
-rw-r--r--meta-oe/recipes-support/augeas/augeas/0001-src-internal-Use-__GLIBC__-to-check-for-GNU-extentio.patch34
-rw-r--r--meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch27
-rw-r--r--meta-oe/recipes-support/augeas/augeas_1.12.0.bb36
-rw-r--r--meta-oe/recipes-support/augeas/augeas_1.5.0.bb4
-rw-r--r--meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch37
-rw-r--r--meta-oe/recipes-support/avro/avro-c_1.11.2.bb17
-rw-r--r--meta-oe/recipes-support/avro/avro-c_1.8.1.bb20
-rw-r--r--meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch29
-rw-r--r--meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch27
-rw-r--r--meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb42
-rw-r--r--meta-oe/recipes-support/bdwgc/bdwgc_8.2.4.bb37
-rw-r--r--meta-oe/recipes-support/boost-sml/boost-sml_git.bb28
-rw-r--r--meta-oe/recipes-support/c-ares/c-ares_1.19.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.bb11
-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/0001-provide-function-declaration-with-prototypes.patch690
-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.bb22
-rw-r--r--meta-oe/recipes-support/canonical-multitouch/grail_3.1.1.bb13
-rw-r--r--meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch24
-rw-r--r--meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch18
-rw-r--r--meta-oe/recipes-support/ccid/ccid_1.4.24.bb19
-rw-r--r--meta-oe/recipes-support/ccid/ccid_1.5.2.bb18
-rw-r--r--meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb17
-rw-r--r--meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb42
-rw-r--r--meta-oe/recipes-support/ckermit/ckermit/0001-Fix-function-prototype-errors.patch106
-rw-r--r--meta-oe/recipes-support/ckermit/ckermit_302.bb12
-rw-r--r--meta-oe/recipes-support/cli11/cli11/0001-Do-not-download-the-catch-framework-during-configure.patch41
-rw-r--r--meta-oe/recipes-support/cli11/cli11_2.3.2.bb26
-rw-r--r--meta-oe/recipes-support/cmark/cmark_0.30.3.bb15
-rw-r--r--meta-oe/recipes-support/colord/colord-native.bb64
-rw-r--r--meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch166
-rw-r--r--meta-oe/recipes-support/colord/colord-native/Makefile48
-rw-r--r--meta-oe/recipes-support/colord/colord.bb45
-rw-r--r--meta-oe/recipes-support/colord/colord.inc12
-rw-r--r--meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch59
-rw-r--r--meta-oe/recipes-support/consolation/consolation_0.0.9.bb29
-rw-r--r--meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb26
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch28
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch48
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch28
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch17
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch27
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch129
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb19
-rw-r--r--meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb20
-rw-r--r--meta-oe/recipes-support/cpulimit/cpulimit/0001-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch41
-rw-r--r--meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb22
-rw-r--r--meta-oe/recipes-support/crucible/crucible_2023.04.12.bb19
-rw-r--r--meta-oe/recipes-support/ctapi-common/ctapi-common_1.1-14.bb7
-rw-r--r--meta-oe/recipes-support/daemonize/daemonize_git.bb10
-rw-r--r--meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch23
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/0001-Fix-signature-of-main-function.patch209
-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-daemontools-native-Fix-a-warning.patch26
-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.patch6
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools/warnings.patch76
-rw-r--r--meta-oe/recipes-support/daemontools/daemontools_0.76.bb33
-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/devmem2/devmem2.bb28
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch70
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch91
-rw-r--r--meta-oe/recipes-support/devmem2/devmem2_2.0.bb19
-rw-r--r--meta-oe/recipes-support/dfu-util/dfu-util-native_0.11.bb24
-rw-r--r--meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb15
-rw-r--r--meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch68
-rw-r--r--meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb12
-rw-r--r--meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb15
-rw-r--r--meta-oe/recipes-support/dhex/dhex_0.69.bb25
-rw-r--r--meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb23
-rw-r--r--meta-oe/recipes-support/digitemp/digitemp_git.bb25
-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/0001-Fix-rename-in-docs.patch261
-rw-r--r--meta-oe/recipes-support/dool/dool_1.1.0.bb25
-rw-r--r--meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb34
-rw-r--r--meta-oe/recipes-support/driverctl/driverctl_0.111.bb28
-rw-r--r--meta-oe/recipes-support/dstat/dstat_0.7.3.bb22
-rw-r--r--meta-oe/recipes-support/edid-decode/edid-decode_git.bb17
-rw-r--r--meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch27
-rw-r--r--meta-oe/recipes-support/eject/eject/eject-timeout.patch2
-rw-r--r--meta-oe/recipes-support/eject/eject_2.1.5.bb11
-rw-r--r--meta-oe/recipes-support/emacs/emacs_28.2.bb276
-rw-r--r--meta-oe/recipes-support/emacs/files/0001-largefile.m4-Update-from-latest-gnulib.patch390
-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/configure-hack.patch12
-rw-r--r--meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch26
-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.patch8
-rw-r--r--meta-oe/recipes-support/enca/enca/makefile-remove-tools.patch9
-rw-r--r--meta-oe/recipes-support/enca/enca_1.19.bb34
-rw-r--r--meta-oe/recipes-support/enca/enca_1.9.bb37
-rw-r--r--meta-oe/recipes-support/epeg/epeg/0001-configure-Fix-checks-for-libjpeg-and-libexif.patch32
-rw-r--r--meta-oe/recipes-support/epeg/epeg_git.bb6
-rw-r--r--meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb24
-rw-r--r--meta-oe/recipes-support/espeak/espeak.inc14
-rw-r--r--meta-oe/recipes-support/espeak/espeak_1.48.04.bb53
-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.patch33
-rw-r--r--meta-oe/recipes-support/espeak/files/0002-tr_languages-cast-string_ordinal-init-values.patch34
-rw-r--r--meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch56
-rw-r--r--meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb21
-rw-r--r--meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb21
-rw-r--r--meta-oe/recipes-support/exiv2/exiv2_0.27.6.bb19
-rw-r--r--meta-oe/recipes-support/farsight/libnice/0001-agent-meson-Replace-filename-with-basename.patch40
-rw-r--r--meta-oe/recipes-support/farsight/libnice_0.1.13.bb36
-rw-r--r--meta-oe/recipes-support/farsight/libnice_0.1.21.bb44
-rw-r--r--meta-oe/recipes-support/fbset/fbset-2.1/makefile.patch2
-rw-r--r--meta-oe/recipes-support/fbset/fbset-modes.bb4
-rw-r--r--meta-oe/recipes-support/fbset/fbset_2.1.bb8
-rw-r--r--meta-oe/recipes-support/fftw/fftw/install-bench.patch43
-rw-r--r--meta-oe/recipes-support/fftw/fftw/run-ptest30
-rw-r--r--meta-oe/recipes-support/fftw/fftw_3.3.10.bb103
-rw-r--r--meta-oe/recipes-support/fftw/fftw_3.3.7.bb80
-rw-r--r--meta-oe/recipes-support/fltk/fltk-native.bb6
-rw-r--r--meta-oe/recipes-support/fltk/fltk.bb20
-rw-r--r--meta-oe/recipes-support/fltk/fltk.inc10
-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/0002-always-build-fluid-and-export-pointers.patch24
-rw-r--r--meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch41
-rw-r--r--meta-oe/recipes-support/fltk/fltk/0003-fluid-CMakeLists.txt-Do-not-export-fluid-target.patch42
-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/fltk/fltk/fltk-no-freetype-config.patch40
-rw-r--r--meta-oe/recipes-support/fmt/fmt_10.0.0.bb17
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch27
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp/winpr-makecert-Build-with-install-RPATH.patch15
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb91
-rw-r--r--meta-oe/recipes-support/freerdp/freerdp_git.bb86
-rw-r--r--meta-oe/recipes-support/function2/function2_4.2.3.bb21
-rw-r--r--meta-oe/recipes-support/gd/gd/0001-Fix-deprecared-function-prototypes.patch115
-rw-r--r--meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch46
-rw-r--r--meta-oe/recipes-support/gd/gd_2.2.5.bb49
-rw-r--r--meta-oe/recipes-support/gd/gd_2.3.3.bb55
-rw-r--r--meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb18
-rw-r--r--meta-oe/recipes-support/gflags/gflags_2.2.0.bb20
-rw-r--r--meta-oe/recipes-support/gflags/gflags_2.2.2.bb20
-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/0001-configure.ac-Allow-user-to-disable-gflags.patch35
-rw-r--r--meta-oe/recipes-support/glog/glog/libexecinfo.patch40
-rw-r--r--meta-oe/recipes-support/glog/glog_0.3.4.bb23
-rw-r--r--meta-oe/recipes-support/glog/glog_0.6.0.bb41
-rw-r--r--meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb36
-rw-r--r--meta-oe/recipes-support/gnulib/gnulib_2018-12-18.bb37
-rw-r--r--meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.0.bb20
-rw-r--r--meta-oe/recipes-support/gosu/gosu_1.16.bb23
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-Define-off64_t-as-off_t-on-musl.patch33
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch34
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch6
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch59
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch26
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch4
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch83
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools/sgidef.patch2
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools_2.10.bb67
-rw-r--r--meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb27
-rw-r--r--meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch34
-rw-r--r--meta-oe/recipes-support/gpm/gpm/gpm.service.in1
-rw-r--r--meta-oe/recipes-support/gpm/gpm/no-docs.patch18
-rw-r--r--meta-oe/recipes-support/gpm/gpm/processcreds.patch12
-rw-r--r--meta-oe/recipes-support/gpm/gpm_git.bb34
-rw-r--r--meta-oe/recipes-support/gradm/gradm/0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch2
-rw-r--r--meta-oe/recipes-support/gradm/gradm/0001-make-Define-SBINDIR-flag.patch69
-rw-r--r--meta-oe/recipes-support/gradm/gradm_3.1-202111052217.bb51
-rw-r--r--meta-oe/recipes-support/gradm/gradm_3.1.bb52
-rw-r--r--meta-oe/recipes-support/gsl/gsl.inc5
-rw-r--r--meta-oe/recipes-support/gsl/gsl_1.15.bb7
-rw-r--r--meta-oe/recipes-support/gsl/gsl_2.7.1.bb4
-rw-r--r--meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch178
-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/0001-stdgsoap2-Fix-build-with-musl.patch63
-rw-r--r--meta-oe/recipes-support/gsoap/gsoap_2.8.126.bb42
-rw-r--r--meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb44
-rw-r--r--meta-oe/recipes-support/hddtemp/hddtemp/0001-configure.ac-Rename-to-configure.ac-and-use-external.patch703
-rw-r--r--meta-oe/recipes-support/hddtemp/hddtemp/0001-sata.c-Declare-ata_get_powermode-prototype.patch33
-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.bb8
-rw-r--r--meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch58
-rw-r--r--meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch47
-rw-r--r--meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb55
-rw-r--r--meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb16
-rw-r--r--meta-oe/recipes-support/hidapi/hidapi_git.bb15
-rw-r--r--meta-oe/recipes-support/hstr/files/0001-Use-OE-specific-checks-for-ncurses.patch42
-rw-r--r--meta-oe/recipes-support/hstr/files/0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch33
-rw-r--r--meta-oe/recipes-support/hstr/hstr_2.5.0.bb17
-rw-r--r--meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch56
-rw-r--r--meta-oe/recipes-support/htop/htop_2.2.0.bb35
-rw-r--r--meta-oe/recipes-support/htop/htop_3.2.2.bb36
-rw-r--r--meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb151
-rw-r--r--meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb17
-rw-r--r--meta-oe/recipes-support/hunspell/hunspell_1.7.2.bb21
-rw-r--r--meta-oe/recipes-support/hwdata/hwdata_0.370.bb26
-rw-r--r--meta-oe/recipes-support/hwdata/hwdata_git.bb23
-rw-r--r--meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb17
-rw-r--r--meta-oe/recipes-support/iksemel/iksemel_1.5.bb6
-rw-r--r--meta-oe/recipes-support/imagemagick/imagemagick/0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch42
-rw-r--r--meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb82
-rw-r--r--meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb102
-rw-r--r--meta-oe/recipes-support/imapfilter/imapfilter/ldflags.patch16
-rw-r--r--meta-oe/recipes-support/imapfilter/imapfilter_2.8.1.bb23
-rw-r--r--meta-oe/recipes-support/inih/libinih_57.bb14
-rw-r--r--meta-oe/recipes-support/inih/libinih_git.bb19
-rw-r--r--meta-oe/recipes-support/iniparser/iniparser/0001-iniparser.pc-Make-libpath-a-variable.patch23
-rw-r--r--meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch65
-rw-r--r--meta-oe/recipes-support/iniparser/iniparser_4.1.bb26
-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/0002-libinotifytools-Bridge-differences-between-musl-glib.patch40
-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/inotify-nosys-fix-system-call-number.patch31
-rw-r--r--meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch45
-rw-r--r--meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb28
-rw-r--r--meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb24
-rw-r--r--meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch30
-rw-r--r--meta-oe/recipes-support/joe/joe_3.1.bb17
-rw-r--r--meta-oe/recipes-support/joe/joe_4.6.bb15
-rw-r--r--meta-oe/recipes-support/lcms/lcms_2.15.bb15
-rw-r--r--meta-oe/recipes-support/lcms/lcms_2.7.bb15
-rw-r--r--meta-oe/recipes-support/lcov/lcov_1.11.bb27
-rwxr-xr-xmeta-oe/recipes-support/lcov/lcov_1.16.bb57
-rw-r--r--meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb8
-rw-r--r--meta-oe/recipes-support/libb64/libb64/0001-Makefile-fix-parallel-build-of-examples.patch46
-rw-r--r--meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch27
-rw-r--r--meta-oe/recipes-support/libb64/libb64/0001-examples-Use-proper-function-prototype-for-main.patch27
-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.bb38
-rw-r--r--meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch30
-rw-r--r--meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb34
-rw-r--r--meta-oe/recipes-support/libbytesize/libbytesize_2.9.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-.patch65
-rw-r--r--meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb25
-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/files/0001-sandbox-Do-not-use-int8_t-in-std-uniform_int_distrib.patch54
-rwxr-xr-xmeta-oe/recipes-support/libcereal/files/run-ptest12
-rw-r--r--meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb54
-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.bb25
-rw-r--r--meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb6
-rw-r--r--meta-oe/recipes-support/libee/libee.inc2
-rw-r--r--meta-oe/recipes-support/libee/libee/libee-parallel-make.patch2
-rw-r--r--meta-oe/recipes-support/libeigen/libeigen/0001-Default-eigen_packet_wrapper-constructor.patch72
-rw-r--r--meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb20
-rw-r--r--meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb28
-rw-r--r--meta-oe/recipes-support/libestr/libestr_0.1.10.bb13
-rw-r--r--meta-oe/recipes-support/libestr/libestr_0.1.11.bb13
-rw-r--r--meta-oe/recipes-support/libfann/libfann_git.bb19
-rw-r--r--meta-oe/recipes-support/libftdi/libftdi_1.4.bb27
-rw-r--r--meta-oe/recipes-support/libftdi/libftdi_1.5.bb40
-rw-r--r--meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb23
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest19
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod-2.x/gpio-tools-test-bats-modify.patch67
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod-2.x/run-ptest24
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod.inc67
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb4
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_1.1.bb16
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb39
-rw-r--r--meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb29
-rw-r--r--meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb18
-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/libiio/libiio_git.bb69
-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.5.bb27
-rw-r--r--meta-oe/recipes-support/libjs/libjs-jquery-globalize_1.7.0.bb23
-rw-r--r--meta-oe/recipes-support/libjs/libjs-jquery-icheck_1.0.3.bb42
-rw-r--r--meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb25
-rw-r--r--meta-oe/recipes-support/libjs/libjs-jquery_3.3.1.bb27
-rw-r--r--meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb4
-rw-r--r--meta-oe/recipes-support/libmanette/libmanette_0.2.6.bb16
-rw-r--r--meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb27
-rw-r--r--meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch69
-rw-r--r--meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch49
-rw-r--r--meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb24
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml/0001-remove-rpath-from-configure.in-and-configure.patch55
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml/0002-link-libmxml-with-pthread.patch27
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml/0003-add-missing-LDFLAGS-to-Makefile.patch27
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml/0004-mxml-string-compile-headers.patch28
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml/0005-several-autoheader-define-fixes.patch54
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml/0006-several-compile-fixes.patch49
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml/0007-Makefile-require-libmxml.a-for-its-installation.patch26
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml_2.11.bb29
-rw-r--r--meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb33
-rw-r--r--meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch28
-rw-r--r--meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch3593
-rw-r--r--meta-oe/recipes-support/libnih/libnih_1.0.3.bb38
-rw-r--r--meta-oe/recipes-support/libnvme/libnvme_1.5.bb22
-rw-r--r--meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch151
-rw-r--r--meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb6
-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/explicit_linking.patch20
-rw-r--r--meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch11
-rw-r--r--meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch40
-rw-r--r--meta-oe/recipes-support/liboop/liboop/tcl_dev.patch13
-rw-r--r--meta-oe/recipes-support/liboop/liboop_1.0.1.bb20
-rw-r--r--meta-oe/recipes-support/liboop/liboop_1.0.bb23
-rw-r--r--meta-oe/recipes-support/libp11/libp11_0.4.12.bb30
-rw-r--r--meta-oe/recipes-support/libp11/libp11_0.4.7.bb26
-rw-r--r--meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb9
-rw-r--r--meta-oe/recipes-support/libraw/libraw_0.20.2.bb11
-rw-r--r--meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb2
-rw-r--r--meta-oe/recipes-support/librdkafka/librdkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch30
-rw-r--r--meta-oe/recipes-support/librdkafka/librdkafka_1.8.2.bb23
-rw-r--r--meta-oe/recipes-support/librsync/librsync_2.3.4.bb18
-rw-r--r--meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch62
-rw-r--r--meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch21
-rw-r--r--meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch62
-rw-r--r--meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb30
-rw-r--r--meta-oe/recipes-support/libsmi/libsmi/0001-Define-createIdentifierRef-prototype-in-yang-complex.patch53
-rw-r--r--meta-oe/recipes-support/libsmi/libsmi/0001-parser-yang-Define-_DEFAULT_SOURCE.patch28
-rw-r--r--meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb22
-rw-r--r--meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb14
-rw-r--r--meta-oe/recipes-support/libssh/libssh/0001-libgcrypt.c-Fix-prototype-of-des3_encrypt-des3_decry.patch46
-rw-r--r--meta-oe/recipes-support/libssh/libssh/0001-tests-CMakeLists.txt-do-not-search-ssh-sshd-commands.patch38
-rw-r--r--meta-oe/recipes-support/libssh/libssh/run-ptest53
-rw-r--r--meta-oe/recipes-support/libssh/libssh_0.10.4.bb45
-rw-r--r--meta-oe/recipes-support/libssh/libssh_0.7.3.bb33
-rw-r--r--meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb26
-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/libtar/libtar_1.2.20.bb2
-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/0001-team_basic_test.py-check-the-return-value.patch34
-rw-r--r--meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-switch-to-python3.patch101
-rw-r--r--meta-oe/recipes-support/libteam/libteam/0001-teamd-Include-missing-headers-for-strrchr-and-memcmp.patch46
-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/run-ptest7
-rw-r--r--meta-oe/recipes-support/libteam/libteam_1.27.bb42
-rw-r--r--meta-oe/recipes-support/libteam/libteam_1.31.bb42
-rw-r--r--meta-oe/recipes-support/libtinyxml2/files/run-ptest10
-rw-r--r--meta-oe/recipes-support/libtinyxml2/libtinyxml2_6.2.0.bb15
-rw-r--r--meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb25
-rw-r--r--meta-oe/recipes-support/libtommath/libtommath_1.2.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/0001-examples-test-Remove-unused-linux-errqueue.h.patch47
-rw-r--r--meta-oe/recipes-support/liburing/liburing_2.3.bb33
-rw-r--r--meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch30
-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.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/libusbg/libusbg_git.bb9
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx-config.bb12
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default2
-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-start20
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd143
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service11
-rw-r--r--meta-oe/recipes-support/libusbgx/libusbgx_git.bb58
-rw-r--r--meta-oe/recipes-support/libutempter/libutempter.bb41
-rw-r--r--meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch7
-rw-r--r--meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch36
-rw-r--r--meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch81
-rw-r--r--meta-oe/recipes-support/libutempter/libutempter_1.2.2-alt1.bb40
-rw-r--r--meta-oe/recipes-support/links/files/ac-prog-cxx.patch26
-rw-r--r--meta-oe/recipes-support/links/links-x11_2.26.bb29
-rw-r--r--meta-oe/recipes-support/links/links-x11_2.7.bb31
-rw-r--r--meta-oe/recipes-support/links/links.inc4
-rw-r--r--meta-oe/recipes-support/links/links_2.29.bb11
-rw-r--r--meta-oe/recipes-support/links/links_2.7.bb13
-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.bb25
-rw-r--r--meta-oe/recipes-support/lockdev/lockdev/0001-lockdev-Define-MAJOR-MINOR-for-non-glibc-case.patch28
-rw-r--r--meta-oe/recipes-support/lockdev/lockdev/build.patch30
-rw-r--r--meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch29
-rw-r--r--meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb27
-rw-r--r--meta-oe/recipes-support/lockdev/lockdev_git.bb22
-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/log4c/log4c_1.2.4.bb2
-rw-r--r--meta-oe/recipes-support/log4cpp/files/fix-pc.patch2
-rw-r--r--meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb22
-rw-r--r--meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb22
-rw-r--r--meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb8
-rw-r--r--meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch136
-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/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch2
-rw-r--r--meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch30
-rw-r--r--meta-oe/recipes-support/lvm2/files/0004-tweak-MODPROBE_CMD-for-cross-compile.patch29
-rw-r--r--meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch68
-rw-r--r--meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch20
-rw-r--r--meta-oe/recipes-support/lvm2/files/reproducible-build.patch28
-rw-r--r--meta-oe/recipes-support/lvm2/libdevmapper_2.02.177.bb16
-rw-r--r--meta-oe/recipes-support/lvm2/libdevmapper_2.03.16.bb17
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2.inc29
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch36
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch73
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2_2.02.177.bb54
-rw-r--r--meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb95
-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.48.bb26
-rw-r--r--meta-oe/recipes-support/mailcap/mailcap_2.1.54.bb30
-rw-r--r--meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb2
-rw-r--r--meta-oe/recipes-support/mcelog/mce-inject_git.bb8
-rw-r--r--meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch110
-rw-r--r--meta-oe/recipes-support/mcelog/mce-test/makefile-remove-ldflags.patch23
-rw-r--r--meta-oe/recipes-support/mcelog/mce-test_git.bb33
-rw-r--r--meta-oe/recipes-support/mcelog/mcelog/0001-client-Include-string.h-form-mem-function-prototypes.patch26
-rw-r--r--meta-oe/recipes-support/mcelog/mcelog/run-ptest8
-rw-r--r--meta-oe/recipes-support/mcelog/mcelog_1.49.bb35
-rw-r--r--meta-oe/recipes-support/mcelog/mcelog_194.bb44
-rw-r--r--meta-oe/recipes-support/md4c/md4c_0.4.8.bb17
-rw-r--r--meta-oe/recipes-support/mg/mg/0001-Undefine-REGEX-for-musl-based-systems.patch21
-rw-r--r--meta-oe/recipes-support/mg/mg/0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch7
-rw-r--r--meta-oe/recipes-support/mg/mg/0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch13
-rw-r--r--meta-oe/recipes-support/mg/mg_20170401.bb37
-rw-r--r--meta-oe/recipes-support/mg/mg_20230501.bb38
-rw-r--r--meta-oe/recipes-support/mime-support/mime-support_3.48.bb58
-rw-r--r--meta-oe/recipes-support/mime-support/mime-support_3.62.bb65
-rw-r--r--meta-oe/recipes-support/mini-iconv/mini-iconv.bb20
-rw-r--r--meta-oe/recipes-support/monit/monit/monit42
-rw-r--r--meta-oe/recipes-support/monit/monit/monitrc50
-rw-r--r--meta-oe/recipes-support/monit/monit_5.33.0.bb56
-rw-r--r--meta-oe/recipes-support/mscgen/mscgen_0.20.bb20
-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-add-explicit-dependency-on-libraries.patch40
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch43
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch29
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch107
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch110
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch70
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch108
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch648
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch166
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch138
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch56
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch40
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch37
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch38
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch58
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch53
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch37
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch76
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch58
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch119
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch74
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch655
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch102
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch107
-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.patch59
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch77
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch45
-rw-r--r--meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch44
-rw-r--r--meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb113
-rw-r--r--meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.3.bb125
-rw-r--r--meta-oe/recipes-support/nano/nano.inc17
-rw-r--r--meta-oe/recipes-support/nano/nano_2.9.8.bb4
-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.bb27
-rw-r--r--meta-oe/recipes-support/neon/neon/0001-Disable-installing-documentation.patch30
-rw-r--r--meta-oe/recipes-support/neon/neon/run-ptest25
-rw-r--r--meta-oe/recipes-support/neon/neon_0.30.2.bb38
-rw-r--r--meta-oe/recipes-support/neon/neon_0.32.5.bb63
-rw-r--r--meta-oe/recipes-support/nmon/nmon/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch175
-rw-r--r--meta-oe/recipes-support/nmon/nmon/0001-lmon16g.c-Adjust-system-headers.patch10
-rw-r--r--meta-oe/recipes-support/nmon/nmon_16g.bb31
-rw-r--r--meta-oe/recipes-support/nmon/nmon_16m.bb30
-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-config-nspr-config.in-don-t-pass-LDFLAGS.patch30
-rw-r--r--meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch28
-rw-r--r--meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch89
-rw-r--r--meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch103
-rw-r--r--meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch52
-rw-r--r--meta-oe/recipes-support/nspr/nspr/nspr.pc.in11
-rw-r--r--meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch26
-rw-r--r--meta-oe/recipes-support/nspr/nspr_4.35.bb199
-rw-r--r--meta-oe/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch64
-rw-r--r--meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch57
-rw-r--r--meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch51
-rw-r--r--meta-oe/recipes-support/nss/nss/blank-cert9.dbbin0 -> 28672 bytes
-rw-r--r--meta-oe/recipes-support/nss/nss/blank-key4.dbbin0 -> 36864 bytes
-rw-r--r--meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch42
-rw-r--r--meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch91
-rw-r--r--meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch44
-rw-r--r--meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch28
-rw-r--r--meta-oe/recipes-support/nss/nss/nss.pc.in11
-rw-r--r--meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch32
-rw-r--r--meta-oe/recipes-support/nss/nss/system-pkcs11.txt5
-rw-r--r--meta-oe/recipes-support/nss/nss_3.74.bb290
-rw-r--r--meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch32
-rw-r--r--meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch64
-rw-r--r--meta-oe/recipes-support/numactl/numactl/Makefile7
-rw-r--r--meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch28
-rwxr-xr-xmeta-oe/recipes-support/numactl/numactl/run-ptest9
-rw-r--r--meta-oe/recipes-support/numactl/numactl_git.bb61
-rw-r--r--meta-oe/recipes-support/ode/ode/install.patch23
-rw-r--r--meta-oe/recipes-support/onig/files/configure.patch13
-rw-r--r--meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch44
-rw-r--r--meta-oe/recipes-support/onig/onig/0001-build-don-t-link-against-host-system-libraries.patch42
-rw-r--r--meta-oe/recipes-support/onig/onig/0002-build-enable-serial-tests-automake-option-for-ptest.patch38
-rwxr-xr-xmeta-oe/recipes-support/onig/onig/run-ptest47
-rw-r--r--meta-oe/recipes-support/onig/onig_5.9.6.bb19
-rw-r--r--meta-oe/recipes-support/onig/onig_6.9.8.bb34
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch45
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch38
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch26
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch115
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch33
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch39
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch31
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch29
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch45
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch58
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch135
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch25
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch12
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools/use-tirpc.patch481
-rw-r--r--meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.2.5.bb112
-rw-r--r--meta-oe/recipes-support/opencl/clinfo_3.0.21.02.21.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.bb48
-rw-r--r--meta-oe/recipes-support/opencv/ade_0.1.2.bb20
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch38
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch28
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-Make-ts-module-external.patch42
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch12
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-Use-Os-to-compile-tinyxml2.cpp.patch31
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch127
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch1250
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch993
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch26
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch656
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0003-To-fix-errors-as-following.patch42
-rw-r--r--meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch186
-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/CVE-2017-14136.patch288
-rw-r--r--meta-oe/recipes-support/opencv/opencv/already-exists.patch394
-rw-r--r--meta-oe/recipes-support/opencv/opencv/download.patch41
-rw-r--r--meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch29
-rw-r--r--meta-oe/recipes-support/opencv/opencv/javagen.patch16
-rw-r--r--meta-oe/recipes-support/opencv/opencv/protobuf.patch57
-rw-r--r--meta-oe/recipes-support/opencv/opencv/tinydnn.patch34
-rw-r--r--meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch20
-rw-r--r--meta-oe/recipes-support/opencv/opencv_3.3.bb204
-rw-r--r--meta-oe/recipes-support/opencv/opencv_4.8.0.bb220
-rw-r--r--meta-oe/recipes-support/openldap/openldap/0001-build-top.mk-unset-STRIP_OPTS.patch38
-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/install-strip.patch14
-rw-r--r--meta-oe/recipes-support/openldap/openldap/kill-icu.patch30
-rw-r--r--meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch17
-rw-r--r--meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch59
-rw-r--r--meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch20
-rw-r--r--meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch39
-rw-r--r--meta-oe/recipes-support/openldap/openldap/thread_stub.patch20
-rw-r--r--meta-oe/recipes-support/openldap/openldap/use-urandom.patch38
-rw-r--r--meta-oe/recipes-support/openldap/openldap_2.4.45.bb256
-rw-r--r--meta-oe/recipes-support/openldap/openldap_2.5.13.bb235
-rw-r--r--meta-oe/recipes-support/opensc/files/0001-pkcs11-tool-Fix-private-key-import.patch33
-rw-r--r--meta-oe/recipes-support/opensc/files/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch54
-rw-r--r--meta-oe/recipes-support/opensc/opensc_0.16.0.bb44
-rw-r--r--meta-oe/recipes-support/opensc/opensc_0.23.0.bb51
-rw-r--r--meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb6
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/checkserverkey20
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/loadmof.sh118
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof21
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem7
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init131
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc2
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/owcimomd.service12
-rw-r--r--meta-oe/recipes-support/openwbem/openwbem/rmmof.sh53
-rw-r--r--meta-oe/recipes-support/p910nd/p910nd_0.95.bb22
-rw-r--r--meta-oe/recipes-support/p910nd/p910nd_0.97.bb29
-rw-r--r--meta-oe/recipes-support/pcp/pcp-native_6.0.5.bb48
-rw-r--r--meta-oe/recipes-support/pcp/pcp.inc40
-rw-r--r--meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch39
-rw-r--r--meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch45
-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/config.linux13
-rw-r--r--meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch13
-rw-r--r--meta-oe/recipes-support/pcp/pcp/pass-options-to-AR.patch29
-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.8.22.bb49
-rw-r--r--meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.0.bb56
-rw-r--r--meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.2.bb24
-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.bb14
-rw-r--r--meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb25
-rw-r--r--meta-oe/recipes-support/pidgin/icyque_git.bb27
-rw-r--r--meta-oe/recipes-support/pidgin/libgnt/0001-meson-import-changes-from-3.0.-version.patch215
-rw-r--r--meta-oe/recipes-support/pidgin/libgnt_2.14.1.bb20
-rw-r--r--meta-oe/recipes-support/pidgin/libotr/0001-tests-Include-missing-sys-socket.h-header.patch31
-rw-r--r--meta-oe/recipes-support/pidgin/libotr_4.1.1.bb3
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb6
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch50
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Migrate-to-use-g_memdup2.patch192
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin-sipe/0001-configure-Do-not-add-native-paths-to-pkgconfig-searc.patch36
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch31
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb39
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch42
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin/purple-OE-branding-25.patch8
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin/sanitize-configure.ac.patch2
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb120
-rw-r--r--meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb113
-rw-r--r--meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb26
-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/pngcheck/pngcheck_2.3.0.bb2
-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/run-ptest5
-rw-r--r--meta-oe/recipes-support/poco/poco_1.12.4.bb108
-rw-r--r--meta-oe/recipes-support/poco/poco_1.9.0.bb98
-rw-r--r--meta-oe/recipes-support/poppler/poppler-data_0.4.12.bb36
-rw-r--r--meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb36
-rw-r--r--meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch47
-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/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch29
-rw-r--r--meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch100
-rw-r--r--meta-oe/recipes-support/poppler/poppler/basename-include.patch34
-rw-r--r--meta-oe/recipes-support/poppler/poppler/jpeg-stdio.patch41
-rw-r--r--meta-oe/recipes-support/poppler/poppler_0.64.0.bb59
-rw-r--r--meta-oe/recipes-support/poppler/poppler_23.04.0.bb57
-rw-r--r--meta-oe/recipes-support/portaudio/files/ldflags.patch51
-rw-r--r--meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb29
-rw-r--r--meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb32
-rw-r--r--meta-oe/recipes-support/pps-tools/pps-tools_1.0.3.bb18
-rw-r--r--meta-oe/recipes-support/pps-tools/pps-tools_git.bb17
-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/procmail/procmail_3.22.bb2
-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.patch38
-rw-r--r--meta-oe/recipes-support/pv/pv/run-ptest7
-rw-r--r--meta-oe/recipes-support/pv/pv_1.5.3.bb11
-rw-r--r--meta-oe/recipes-support/pv/pv_1.6.20.bb28
-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.bb2
-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.bb25
-rw-r--r--meta-oe/recipes-support/raptor2/raptor2_2.0.16.bb24
-rw-r--r--meta-oe/recipes-support/rdfind/files/reproducible_build.patch46
-rw-r--r--meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb17
-rw-r--r--meta-oe/recipes-support/rdfind/rdfind_1.6.0.bb13
-rw-r--r--meta-oe/recipes-support/re2/re2_2023.03.01.bb27
-rw-r--r--meta-oe/recipes-support/read-edid/read-edid/0001-Do-not-install-license-file.patch17
-rw-r--r--meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch28
-rw-r--r--meta-oe/recipes-support/read-edid/read-edid/0001-get-edid-define-quiet-once.patch44
-rw-r--r--meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb23
-rw-r--r--meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb21
-rw-r--r--meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb18
-rw-r--r--meta-oe/recipes-support/remmina/remmina_1.4.31.bb50
-rw-r--r--meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb16
-rw-r--r--meta-oe/recipes-support/rtc-tools/rtc-tools_2022.02.bb14
-rw-r--r--meta-oe/recipes-support/rtkit/rtkit_0.13.bb23
-rw-r--r--meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb22
-rw-r--r--meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb21
-rw-r--r--meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb32
-rw-r--r--meta-oe/recipes-support/sass/libsass_git.bb14
-rw-r--r--meta-oe/recipes-support/sass/sassc_git.bb14
-rw-r--r--meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch84
-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.23.bb33
-rw-r--r--meta-oe/recipes-support/satyr/satyr_0.42.bb35
-rw-r--r--meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch4
-rw-r--r--meta-oe/recipes-support/sdparm/sdparm_1.10.bb26
-rw-r--r--meta-oe/recipes-support/sdparm/sdparm_1.12.bb26
-rw-r--r--meta-oe/recipes-support/serial-utils/pty-forward-native.bb4
-rw-r--r--meta-oe/recipes-support/serial-utils/serial-forward/0001-correct-the-typo-in-include-file-name-string.h.patch27
-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.bb5
-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/0001-sg_dd.c-Use-off_t-instead-of-uint.patch36
-rw-r--r--meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb23
-rw-r--r--meta-oe/recipes-support/sg3-utils/sg3-utils_1.47.bb23
-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-build-with-recent-gettext.patch22
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch100
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/0002-Do-not-include-lib-md5.c-into-src-shar.c.patch42
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch61
-rw-r--r--meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb20
-rw-r--r--meta-oe/recipes-support/smarty/smarty_4.3.0.bb26
-rw-r--r--meta-oe/recipes-support/smem/smem_1.4.bb27
-rw-r--r--meta-oe/recipes-support/span-lite/span-lite_0.10.3.bb11
-rw-r--r--meta-oe/recipes-support/spdlog/spdlog_1.12.0.bb17
-rw-r--r--meta-oe/recipes-support/spitools/spitools_git.bb12
-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/add-option-to-remove-docs.patch57
-rw-r--r--meta-oe/recipes-support/srecord/srecord_1.64.bb23
-rw-r--r--meta-oe/recipes-support/srecord/srecord_1.65.0.bb19
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch118
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch34
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch872
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch59
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch39
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch123
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch56
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch1411
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch33
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch49
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch45
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch35
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch54
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch27
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch230
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch40
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch40
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch21
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb35
-rw-r--r--meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb41
-rw-r--r--meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch39
-rw-r--r--meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb38
-rw-r--r--meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb16
-rw-r--r--meta-oe/recipes-support/stm32flash/stm32flash_0.7.bb13
-rw-r--r--meta-oe/recipes-support/switchtec-user/switchtec-user/0001-cli-Fix-format-security-warning.patch27
-rw-r--r--meta-oe/recipes-support/switchtec-user/switchtec-user_4.1.bb24
-rw-r--r--meta-oe/recipes-support/synergy/synergy_git.bb31
-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-plugin.c-workaround-powerpc64le-segfaults-error.patch46
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch47
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch63
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch25
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/rename-PAGESIZE-variables-to-pagesize.patch72
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf1
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd9
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit9
-rw-r--r--meta-oe/recipes-support/syslog-ng/files/syslog-ng.service-the-syslog-ng-service.patch28
-rw-r--r--meta-oe/recipes-support/syslog-ng/syslog-ng.inc137
-rw-r--r--meta-oe/recipes-support/syslog-ng/syslog-ng_3.15.1.bb11
-rw-r--r--meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb146
-rw-r--r--meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb8
-rw-r--r--meta-oe/recipes-support/tbb/tbb.bb44
-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-mallinfo-is-glibc-specific-API-mark-it-so.patch37
-rw-r--r--meta-oe/recipes-support/tbb/tbb/cross-compile.patch39
-rw-r--r--meta-oe/recipes-support/tbb/tbb/tbb.pc11
-rw-r--r--meta-oe/recipes-support/tbb/tbb_2021.9.0.bb53
-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/thin-provisioning-tools-crates.inc306
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc10
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch91
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb20
-rw-r--r--meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.4.bb47
-rw-r--r--meta-oe/recipes-support/tio/tio_2.6.bb19
-rw-r--r--meta-oe/recipes-support/tokyocabinet/tokyocabinet/0001-configure-Fix-check-functions-for-AC_CHECK_LIB-test.patch58
-rw-r--r--meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb3
-rw-r--r--meta-oe/recipes-support/toscoterm/toscoterm_git.bb8
-rw-r--r--meta-oe/recipes-support/tree/tree_1.7.0.bb21
-rw-r--r--meta-oe/recipes-support/tree/tree_2.1.1.bb20
-rw-r--r--meta-oe/recipes-support/uchardet/uchardet_0.0.8.bb8
-rw-r--r--meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch89
-rw-r--r--meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch27
-rw-r--r--meta-oe/recipes-support/udisks/udisks/optional-depends.patch498
-rw-r--r--meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch32
-rw-r--r--meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch35
-rw-r--r--meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch26
-rw-r--r--meta-oe/recipes-support/udisks/udisks2_2.7.6.bb49
-rw-r--r--meta-oe/recipes-support/udisks/udisks2_2.9.4.bb59
-rw-r--r--meta-oe/recipes-support/udisks/udisks_1.0.5.bb46
-rw-r--r--meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb21
-rw-r--r--meta-oe/recipes-support/uhubctl/uhubctl_2.5.0.bb21
-rw-r--r--meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch80
-rw-r--r--meta-oe/recipes-support/uim/uim/0001-Fix-to-set-libedit-path-from-configure-option-proper.patch29
-rw-r--r--meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch26
-rw-r--r--meta-oe/recipes-support/uim/uim/JMP_BUF_GC_jmp_buf.patch15
-rw-r--r--meta-oe/recipes-support/uim/uim/uim-module-manager.patch6
-rw-r--r--meta-oe/recipes-support/uim/uim_1.8.6.bb144
-rw-r--r--meta-oe/recipes-support/uim/uim_1.8.8.bb157
-rw-r--r--meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb22
-rw-r--r--meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb32
-rw-r--r--meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb29
-rw-r--r--meta-oe/recipes-support/upower/upower_0.99.17.bb44
-rw-r--r--meta-oe/recipes-support/upower/upower_0.99.7.bb34
-rw-r--r--meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb14
-rw-r--r--meta-oe/recipes-support/uriparser/uriparser_0.9.7.bb16
-rw-r--r--meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb19
-rw-r--r--meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb19
-rw-r--r--meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb27
-rw-r--r--meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.6.1.bb31
-rw-r--r--meta-oe/recipes-support/usbpath/usbpath/configure.patch11
-rw-r--r--meta-oe/recipes-support/usbpath/usbpath_svn.bb21
-rw-r--r--meta-oe/recipes-support/uthash/uthash_2.0.2.bb46
-rw-r--r--meta-oe/recipes-support/uthash/uthash_2.3.0.bb46
-rw-r--r--meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch79
-rw-r--r--meta-oe/recipes-support/utouch/utouch-evemu_git.bb10
-rw-r--r--meta-oe/recipes-support/utouch/utouch-frame/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch41
-rw-r--r--meta-oe/recipes-support/utouch/utouch-frame/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch (renamed from meta-oe/recipes-support/utouch/files/0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch)2
-rw-r--r--meta-oe/recipes-support/utouch/utouch-frame/remove-man-page-creation.patch (renamed from meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch)0
-rw-r--r--meta-oe/recipes-support/utouch/utouch-frame_git.bb7
-rw-r--r--meta-oe/recipes-support/utouch/utouch-mtview_git.bb8
-rw-r--r--meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils2
-rw-r--r--meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb78
-rw-r--r--meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb91
-rw-r--r--meta-oe/recipes-support/vim/files/CVE-2017-17087.patch70
-rw-r--r--meta-oe/recipes-support/vim/files/disable_acl_header_check.patch27
-rw-r--r--meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch38
-rw-r--r--meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb13
-rw-r--r--meta-oe/recipes-support/vim/vim_8.0.0983.bb114
-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-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch28
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch310
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch41
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch33
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch22
-rw-r--r--meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb169
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch31
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch155
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch600
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch51
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch32
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch35
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/1024.patch508
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch25
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch134
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb21
-rw-r--r--meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb39
-rw-r--r--meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch26
-rw-r--r--meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch656
-rw-r--r--meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb25
-rw-r--r--meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb18
-rw-r--r--meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb20
-rw-r--r--meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.4.bb19
-rw-r--r--meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch27
-rw-r--r--meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.16.0.bb47
-rw-r--r--meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb16
-rw-r--r--meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.18.bb15
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch52
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/0001-xmldsigverify-Include-xmlsec-parser.h.patch43
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch27
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/ensure-search-path-non-host.patch22
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch26
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch42
-rwxr-xr-xmeta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest85
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch32
-rw-r--r--meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.37.bb68
-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/configure.ac.patch2
-rw-r--r--meta-oe/recipes-support/xmlstarlet/xmlstarlet_1.6.1.bb9
-rw-r--r--meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb23
-rw-r--r--meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.9.19.bb23
-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-of-CVE-2017-16927.patch148
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch75
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp/0001-Fix-the-compile-error.patch2
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp/0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch27
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp/0001-mark-count-with-unused-attribute.patch31
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp_0.9.19.bb91
-rw-r--r--meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb99
-rw-r--r--meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.10.bb41
-rw-r--r--meta-oe/recipes-support/yaml-cpp/yaml-cpp/0001-Fix-CMake-export-files-1077.patch117
-rw-r--r--meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb18
-rw-r--r--meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch32
-rw-r--r--meta-oe/recipes-support/zbar/zbar/0001-qt-Create-subdir-in-Makefile.patch37
-rw-r--r--meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch51
-rw-r--r--meta-oe/recipes-support/zbar/zbar/0002-zbarcam-Create-subdir-in-Makefile.patch42
-rw-r--r--meta-oe/recipes-support/zbar/zbar_0.10.bb28
-rw-r--r--meta-oe/recipes-support/zbar/zbar_git.bb58
-rw-r--r--meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb24
-rw-r--r--meta-oe/recipes-support/zile/zile_2.4.14.bb25
-rw-r--r--meta-oe/recipes-support/zile/zile_2.4.15.bb25
-rw-r--r--meta-oe/recipes-test/bats/bats_1.10.0.bb35
-rw-r--r--meta-oe/recipes-test/catch2/catch2_2.13.7.bb22
-rw-r--r--meta-oe/recipes-test/cmocka/cmocka_1.1.7.bb44
-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/cmocka/files/run-ptest10
-rw-r--r--meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb14
-rw-r--r--meta-oe/recipes-test/cppunit/cppunit_1.15.1.bb16
-rw-r--r--meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch9
-rw-r--r--meta-oe/recipes-test/cpputest/cpputest_4.0.bb25
-rw-r--r--meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb23
-rw-r--r--meta-oe/recipes-test/cunit/cunit_2.1-3.bb28
-rw-r--r--meta-oe/recipes-test/cunit/files/run-ptest19
-rw-r--r--meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb21
-rw-r--r--meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb25
-rw-r--r--meta-oe/recipes-test/evtest/evtest/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch33
-rw-r--r--meta-oe/recipes-test/evtest/evtest_1.35.bb17
-rw-r--r--meta-oe/recipes-test/evtest/evtest_git.bb17
-rw-r--r--meta-oe/recipes-test/fbtest/fb-test_1.1.0.bb18
-rw-r--r--meta-oe/recipes-test/fbtest/fb-test_git.bb20
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0001-Add-correct-printf-qualifier-for-off_t.patch22
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch46
-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-Remove-Werror-from-build.patch52
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch84
-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/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch31
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0003-Remove-Werror-from-build.patch45
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch28
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch74
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch28
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0005-Undefine-PAGE_SIZE.patch25
-rw-r--r--meta-oe/recipes-test/fwts/fwts/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch60
-rw-r--r--meta-oe/recipes-test/fwts/fwts_22.11.00.bb36
-rw-r--r--meta-oe/recipes-test/fwts/fwts_git.bb39
-rw-r--r--meta-oe/recipes-test/googletest/googletest_1.13.0.bb28
-rw-r--r--meta-oe/recipes-test/gtest/gtest/Add-pkg-config-support.patch106
-rw-r--r--meta-oe/recipes-test/gtest/gtest_1.8.0.bb24
-rw-r--r--meta-oe/recipes-test/linux-serial-test/linux-serial-test_git.bb13
-rw-r--r--meta-oe/recipes-test/pm-qa/pm-qa_git.bb10
-rw-r--r--meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch141
-rw-r--r--meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch25
-rw-r--r--meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb25
-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.bb74
-rw-r--r--meta-oe/recipes-test/testfloat/files/0001-Makefile-for-cross-compile-SoftFloat.patch137
-rw-r--r--meta-oe/recipes-test/testfloat/files/0002-Makefile-for-cross-compile-TestFloat.patch119
-rw-r--r--meta-oe/recipes-test/testfloat/testfloat_3a.bb35
-rw-r--r--meta-oe/recipes-test/testfloat/testfloat_3e.bb36
-rw-r--r--meta-perl/README93
-rw-r--r--meta-perl/README.md90
-rw-r--r--meta-perl/conf/include/ptest-packagelists-meta-perl.inc50
-rw-r--r--meta-perl/conf/layer.conf4
-rw-r--r--meta-perl/recipes-core/images/meta-perl-base.bb7
-rw-r--r--meta-perl/recipes-core/images/meta-perl-image.bb5
-rw-r--r--meta-perl/recipes-core/images/meta-perl-ptest-all-image.bb25
-rw-r--r--meta-perl/recipes-core/images/meta-perl-ptest-fast-image.bb6
-rw-r--r--meta-perl/recipes-core/images/meta-perl-ptest-image.bb41
-rw-r--r--meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb106
-rw-r--r--meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb79
-rw-r--r--meta-perl/recipes-extended/logcheck/logcheck_1.4.2.bb77
-rw-r--r--meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb6
-rw-r--r--meta-perl/recipes-perl/adduser/adduser_3.116.bb54
-rw-r--r--meta-perl/recipes-perl/adduser/adduser_3.118.bb55
-rw-r--r--meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch34
-rw-r--r--meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb2
-rw-r--r--meta-perl/recipes-perl/libauthen/libauthen-radius-perl/run-ptest (renamed from meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest)0
-rw-r--r--meta-perl/recipes-perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch (renamed from meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch)0
-rw-r--r--meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb47
-rw-r--r--meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb6
-rw-r--r--meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb37
-rw-r--r--meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.48.bb45
-rw-r--r--meta-perl/recipes-perl/libcgi/libcgi-perl_4.38.bb25
-rw-r--r--meta-perl/recipes-perl/libcgi/libcgi-perl_4.57.bb50
-rw-r--r--meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.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.204.bb28
-rw-r--r--meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.204.bb32
-rw-r--r--meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.204.bb28
-rw-r--r--meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.29.bb20
-rw-r--r--meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb41
-rw-r--r--meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.15.bb36
-rw-r--r--meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb15
-rw-r--r--meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.15.bb34
-rw-r--r--meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb24
-rw-r--r--meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.33.bb38
-rw-r--r--meta-perl/recipes-perl/libcurses/libcurses-perl/0001-testtyp.c-Use-proper-prototype-for-main-function.patch40
-rw-r--r--meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb26
-rw-r--r--meta-perl/recipes-perl/libcurses/libcurses-perl_1.41.bb31
-rw-r--r--meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb7
-rw-r--r--meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb41
-rw-r--r--meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.72.bb55
-rw-r--r--meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb4
-rw-r--r--meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb4
-rw-r--r--meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb4
-rw-r--r--meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb4
-rw-r--r--meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb68
-rw-r--r--meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb109
-rw-r--r--meta-perl/recipes-perl/libenv/libenv-perl_1.04.bb21
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb7
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb37
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.26.bb36
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb4
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb25
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.012.bb34
-rw-r--r--meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb6
-rw-r--r--meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb2
-rw-r--r--meta-perl/recipes-perl/libfile/libfile-slurper-perl_0.014.bb35
-rw-r--r--meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb24
-rw-r--r--meta-perl/recipes-perl/libhtml/libhtml-tagset-perl_3.20.bb29
-rw-r--r--meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb8
-rw-r--r--meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb4
-rw-r--r--meta-perl/recipes-perl/libio/files/run-ptest16
-rw-r--r--meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.204.bb24
-rw-r--r--meta-perl/recipes-perl/libio/libio-compress-perl_2.204.bb41
-rw-r--r--meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.054.bb47
-rw-r--r--meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.078.bb56
-rw-r--r--meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb4
-rw-r--r--meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb2
-rw-r--r--meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb2
-rw-r--r--meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb19
-rw-r--r--meta-perl/recipes-perl/libmime/libmime-charset-perl_1.013.1.bb18
-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.24.bb46
-rw-r--r--meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb34
-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.045.bb53
-rw-r--r--meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb4
-rw-r--r--meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb4
-rw-r--r--meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb44
-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.14.bb27
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-dns-perl_1.39.bb65
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb31
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb29
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.68.bb45
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb8
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch37
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.84.bb47
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb48
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb25
-rw-r--r--meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.05.bb25
-rw-r--r--meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb4
-rw-r--r--meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb29
-rw-r--r--meta-perl/recipes-perl/librole/librole-tiny-perl_2.002004.bb29
-rw-r--r--meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb40
-rw-r--r--meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb45
-rw-r--r--meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000006.bb48
-rw-r--r--meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb6
-rw-r--r--meta-perl/recipes-perl/libsub/libsub-uplevel-perl_0.2800.bb43
-rw-r--r--meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb36
-rw-r--r--meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.38.bb43
-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.42.bb120
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-harness-perl_3.44.bb119
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-nowarnings-perl_1.04.bb37
-rw-r--r--meta-perl/recipes-perl/libtest/libtest-warn-perl_0.37.bb45
-rw-r--r--meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb2
-rw-r--r--meta-perl/recipes-perl/libtext/libtext-diff-perl_1.41.bb4
-rw-r--r--meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb6
-rw-r--r--meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb4
-rw-r--r--meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb26
-rw-r--r--meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2019.001.bb55
-rw-r--r--meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb4
-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.0132.bb47
-rw-r--r--meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0134.bb72
-rw-r--r--meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb4
-rw-r--r--meta-perl/recipes-perl/po4a/po4a_0.49.bb6
-rw-r--r--meta-python/README49
-rw-r--r--meta-python/README.md41
-rw-r--r--meta-python/classes/bandit.bbclass63
-rw-r--r--meta-python/classes/distutils-common-base.bbclass28
-rw-r--r--meta-python/classes/distutils3-base.bbclass9
-rw-r--r--meta-python/classes/distutils3.bbclass71
-rw-r--r--meta-python/classes/python_mesonpy.bbclass52
-rw-r--r--meta-python/conf/include/ptest-packagelists-meta-python.inc86
-rw-r--r--meta-python/conf/layer.conf6
-rw-r--r--meta-python/licenses/CRC32C-ADLER15
-rw-r--r--meta-python/licenses/WTFPL14
-rw-r--r--meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in24
-rw-r--r--meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service10
-rw-r--r--meta-python/recipes-connectivity/gateone/gateone/gateone-init.in47
-rw-r--r--meta-python/recipes-connectivity/gateone/gateone/gateone.service.in10
-rw-r--r--meta-python/recipes-connectivity/gateone/gateone_git.bb87
-rw-r--r--meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc12
-rw-r--r--meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool_0.1.6.bb2
-rw-r--r--meta-python/recipes-connectivity/python-gsocketpool/python3-gsocketpool_0.1.6.bb17
-rw-r--r--meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb11
-rw-r--r--meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb12
-rw-r--r--meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_6.0.1.bb9
-rw-r--r--meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc13
-rw-r--r--meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb2
-rw-r--r--meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb2
-rw-r--r--meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb9
-rw-r--r--meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb12
-rw-r--r--meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.2.0.bb12
-rw-r--r--meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.63.bb18
-rw-r--r--meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb15
-rw-r--r--meta-python/recipes-connectivity/python-pytun/python-pytun.inc10
-rw-r--r--meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb2
-rw-r--r--meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb2
-rw-r--r--meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb15
-rw-r--r--meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.0.bb20
-rw-r--r--meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb15
-rw-r--r--meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb21
-rw-r--r--meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.4.1.bb9
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch26
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/parallel_make.patch (renamed from meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch)0
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/remove_duplicate_install.patch26
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/telepathy-python_fix_for_automake_1.12.patch (renamed from meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/telepathy-python_fix_for_automake_1.12.patch)2
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb34
-rw-r--r--meta-python/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb32
-rw-r--r--meta-python/recipes-core/images/meta-python-image-base.bb7
-rw-r--r--meta-python/recipes-core/images/meta-python-image.bb5
-rw-r--r--meta-python/recipes-core/images/meta-python-ptest-all-image.bb25
-rw-r--r--meta-python/recipes-core/images/meta-python-ptest-fast-image.bb6
-rw-r--r--meta-python/recipes-core/images/meta-python-ptest-image.bb41
-rw-r--r--meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb546
-rw-r--r--meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch36
-rw-r--r--meta-python/recipes-devtools/gyp/gyp_git.bb17
-rw-r--r--meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.0.1.bb16
-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.bb12
-rw-r--r--meta-python/recipes-devtools/python/python-alembic.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-alembic_0.9.8.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-anyjson.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-anyjson_0.3.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-appdirs.inc8
-rw-r--r--meta-python/recipes-devtools/python/python-appdirs_1.4.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-asn1crypto.inc23
-rw-r--r--meta-python/recipes-devtools/python/python-asn1crypto_0.24.0.bb7
-rw-r--r--meta-python/recipes-devtools/python/python-astroid.inc31
-rw-r--r--meta-python/recipes-devtools/python/python-astroid_1.6.3.bb10
-rw-r--r--meta-python/recipes-devtools/python/python-attr.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-attr_0.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-attrs.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-attrs_17.4.0.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-automat.inc24
-rw-r--r--meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch49
-rw-r--r--meta-python/recipes-devtools/python/python-automat_0.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc41
-rw-r--r--meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.3.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-babel.inc25
-rw-r--r--meta-python/recipes-devtools/python/python-babel_2.5.3.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-backports-abc_0.4.bb18
-rw-r--r--meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python-bcrypt.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-beautifulsoup4.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-beautifulsoup4_4.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-behave_1.2.6.bb10
-rw-r--r--meta-python/recipes-devtools/python/python-bitarray.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-blinker.inc7
-rw-r--r--meta-python/recipes-devtools/python/python-blinker_1.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-can.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-can_2.1.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python-cassandra-driver.inc33
-rw-r--r--meta-python/recipes-devtools/python/python-certifi.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-certifi_2018.1.18.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-cffi.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-cffi_1.11.5.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-chardet.inc23
-rw-r--r--meta-python/recipes-devtools/python/python-chardet_3.0.4.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb16
-rw-r--r--meta-python/recipes-devtools/python/python-click.inc23
-rw-r--r--meta-python/recipes-devtools/python/python-click_6.7.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-cmd2_0.8.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python-configparser.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-configparser_3.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-constantly.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-constantly_15.1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-cryptography-vectors.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-cryptography.inc58
-rw-r--r--meta-python/recipes-devtools/python/python-cryptography/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python-cryptography_2.1.4.bb22
-rw-r--r--meta-python/recipes-devtools/python/python-cython.inc40
-rw-r--r--meta-python/recipes-devtools/python/python-cython_0.28.2.bb10
-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-daemon_2.1.2.bb27
-rw-r--r--meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb16
-rw-r--r--meta-python/recipes-devtools/python/python-dateutil.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-dateutil_2.7.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-dbus_1.2.6.bb32
-rw-r--r--meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch52
-rw-r--r--meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch27
-rw-r--r--meta-python/recipes-devtools/python/python-dbusmock_0.16.7.bb25
-rw-r--r--meta-python/recipes-devtools/python/python-decorator.inc19
-rw-r--r--meta-python/recipes-devtools/python/python-decorator_4.3.0.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-django-south.inc2
-rw-r--r--meta-python/recipes-devtools/python/python-django-south_1.0.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-django.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-django_1.11.10.bb8
-rw-r--r--meta-python/recipes-devtools/python/python-dnspython.inc20
-rw-r--r--meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python-dominate.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-dominate_2.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-editor.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-editor_1.0.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-enum34_1.1.6.bb11
-rw-r--r--meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python-evdev.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-evdev_0.7.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-feedformatter.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-feedformatter_0.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python-flask-babel.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python-flask-bootstrap.inc4
-rw-r--r--meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.7.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-login.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-flask-login_0.4.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-mail.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-flask-mail_0.9.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-migrate.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-flask-migrate_2.1.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-nav.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-flask-nav_0.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python-flask-pymongo.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-restful.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-script.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-flask-script_2.0.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-sijax.inc6
-rw-r--r--meta-python/recipes-devtools/python/python-flask-sijax_0.4.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc10
-rw-r--r--meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-uploads.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-flask-uploads_0.2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-user.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-flask-user_0.6.19.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-wtf.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-flask-wtf_0.14.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-xstatic.inc6
-rw-r--r--meta-python/recipes-devtools/python/python-flask-xstatic/remove-pip-requires.patch2
-rw-r--r--meta-python/recipes-devtools/python/python-flask-xstatic_0.0.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-flask.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-flask_0.12.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-funcsigs_1.0.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python-functools32_3.2.3-2.bb10
-rw-r--r--meta-python/recipes-devtools/python/python-future_0.16.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python-gdata_2.0.18.bb21
-rw-r--r--meta-python/recipes-devtools/python/python-gevent.inc33
-rw-r--r--meta-python/recipes-devtools/python/python-gevent/libev-conf.patch26
-rw-r--r--meta-python/recipes-devtools/python/python-gevent_1.2.2.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-greenlet.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-greenlet_0.4.13.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb17
-rw-r--r--meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch33
-rw-r--r--meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb25
-rw-r--r--meta-python/recipes-devtools/python/python-html5lib.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-html5lib_1.0.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-humanize.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-humanize_0.5.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-hyperlink.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-idna-ssl.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-idna.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-idna_2.6.bb2
-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-imaging_1.1.7.bb48
-rw-r--r--meta-python/recipes-devtools/python/python-incremental.inc20
-rw-r--r--meta-python/recipes-devtools/python/python-incremental_17.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-ipaddress_1.0.19.bb13
-rw-r--r--meta-python/recipes-devtools/python/python-iso8601.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-iso8601_0.1.12.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-isort.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-isort_4.3.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-itsdangerous.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-javaobj-py3.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-jinja2.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-jinja2_2.10.bb8
-rw-r--r--meta-python/recipes-devtools/python/python-jsonpatch.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-jsonpatch_1.23.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-jsonpointer.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-jsonpointer_2.0.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-jsonschema.inc24
-rw-r--r--meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python-lazy-object-proxy.inc10
-rw-r--r--meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb19
-rw-r--r--meta-python/recipes-devtools/python/python-lxml.inc43
-rw-r--r--meta-python/recipes-devtools/python/python-lxml_4.2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch39
-rw-r--r--meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch30
-rw-r--r--meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch24
-rw-r--r--meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb50
-rw-r--r--meta-python/recipes-devtools/python/python-mako.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-mako_1.0.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-markupsafe.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-markupsafe_1.0.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch110
-rw-r--r--meta-python/recipes-devtools/python/python-matplotlib_2.0.2.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-mccabe_0.4.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python-mock_2.0.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python-monotonic_1.4.bb10
-rw-r--r--meta-python/recipes-devtools/python/python-msgpack.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-msgpack_0.5.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-ndg-httpsclient.inc25
-rw-r--r--meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-netaddr.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-netaddr_0.7.19.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-networkx_2.1.bb12
-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-numeric_24.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python-oauthlib.inc25
-rw-r--r--meta-python/recipes-devtools/python/python-oauthlib_2.0.6.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-paho-mqtt.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-pam_1.8.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python-pandas.inc23
-rw-r--r--meta-python/recipes-devtools/python/python-pandas_0.22.0.bb7
-rw-r--r--meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb11
-rw-r--r--meta-python/recipes-devtools/python/python-parse_1.8.2.bb13
-rw-r--r--meta-python/recipes-devtools/python/python-passlib.inc19
-rw-r--r--meta-python/recipes-devtools/python/python-passlib_1.7.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-paste_2.0.3.bb14
-rw-r--r--meta-python/recipes-devtools/python/python-pbr_3.1.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python-pep8_1.7.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python-periphery.inc7
-rw-r--r--meta-python/recipes-devtools/python/python-periphery_1.1.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-pexpect.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-pexpect_4.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pip_9.0.3.bb14
-rw-r--r--meta-python/recipes-devtools/python/python-pluggy.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-pluggy_0.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-ply.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-ply_3.11.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pretend.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-pretend_1.0.9.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb25
-rw-r--r--meta-python/recipes-devtools/python/python-progress.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-progress_1.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-prompt-toolkit.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-protobuf.inc27
-rw-r--r--meta-python/recipes-devtools/python/python-protobuf_3.5.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-psutil.inc20
-rw-r--r--meta-python/recipes-devtools/python/python-psutil_5.4.3.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-ptyprocess.inc20
-rw-r--r--meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-py.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-py_1.5.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyalsaaudio.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-pyalsaaudio_0.8.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyasn1-modules.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyasn1.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-pyasn1_0.4.2.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-pybind11.inc7
-rw-r--r--meta-python/recipes-devtools/python/python-pybind11_2.2.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pybluez.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-pybluez_0.22.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pycparser.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-pycparser_2.18.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-pycrypto.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-pycrypto/CVE-2013-7459.patch98
-rw-r--r--meta-python/recipes-devtools/python/python-pycrypto/cross-compiling.patch23
-rw-r--r--meta-python/recipes-devtools/python/python-pycrypto_2.6.1.bb9
-rw-r--r--meta-python/recipes-devtools/python/python-pycryptodome.inc29
-rw-r--r--meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pydbus.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-pydbus_0.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyexpect.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyfirmata.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb3
-rw-r--r--meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb14
-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-pygpgme_0.3.bb26
-rw-r--r--meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python-pyiface.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-pyiface_0.0.5.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyinotify.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-pyjks.inc22
-rw-r--r--meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyjwt.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-pyjwt_1.6.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pylint.inc38
-rw-r--r--meta-python/recipes-devtools/python/python-pylint_1.8.3.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-pymisp.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-pymisp_2.4.89.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pymongo.inc29
-rw-r--r--meta-python/recipes-devtools/python/python-pymongo_3.6.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pynetlinux.inc11
-rw-r--r--meta-python/recipes-devtools/python/python-pynetlinux_1.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyopenssl.inc23
-rw-r--r--meta-python/recipes-devtools/python/python-pyopenssl_17.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyparsing.inc21
-rw-r--r--meta-python/recipes-devtools/python/python-pyparsing_2.2.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyperclip.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-pyperclip_1.6.0.bb7
-rw-r--r--meta-python/recipes-devtools/python/python-pyrex-native_0.9.9.bb5
-rw-r--r--meta-python/recipes-devtools/python/python-pyrex/pyrex-fix-optimized-mode.patch15
-rw-r--r--meta-python/recipes-devtools/python/python-pyrex_0.9.9.bb22
-rw-r--r--meta-python/recipes-devtools/python/python-pyroute2.inc25
-rw-r--r--meta-python/recipes-devtools/python/python-pyroute2_0.4.21.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-pyserial.inc42
-rw-r--r--meta-python/recipes-devtools/python/python-pyserial_3.4.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python-pysnmp_4.3.5.bb25
-rw-r--r--meta-python/recipes-devtools/python/python-pysocks.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-pysocks_1.6.8.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pysqlite.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-pysqlite_2.8.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pystache.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-pystache_0.5.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pytest-runner.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-pytest-runner_3.0.bb5
-rw-r--r--meta-python/recipes-devtools/python/python-pytest.inc35
-rw-r--r--meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch32
-rw-r--r--meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch51
-rw-r--r--meta-python/recipes-devtools/python/python-pytest_3.4.2.bb9
-rw-r--r--meta-python/recipes-devtools/python/python-pytz.inc20
-rwxr-xr-xmeta-python/recipes-devtools/python/python-pytz_2018.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyudev.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-pyudev_0.21.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python-pyusb.inc10
-rw-r--r--meta-python/recipes-devtools/python/python-pyusb_1.0.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyyaml.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-pyyaml_3.12.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch26
-rw-r--r--meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb24
-rw-r--r--meta-python/recipes-devtools/python/python-redis.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-redis_2.10.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-requests.inc24
-rw-r--r--meta-python/recipes-devtools/python/python-requests_2.18.4.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-rfc3987.inc8
-rw-r--r--meta-python/recipes-devtools/python/python-rfc3987_1.3.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-robotframework-seriallibrary_0.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-robotframework.inc26
-rw-r--r--meta-python/recipes-devtools/python/python-robotframework_3.0.2.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-scrypt.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-scrypt_0.8.6.bb3
-rw-r--r--meta-python/recipes-devtools/python/python-sdnotify.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-sdnotify_0.3.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-selectors34_1.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python-serpent.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-serpent_1.24.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-setuptools-scm.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-setuptools-scm_1.15.7.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-sijax.inc8
-rw-r--r--meta-python/recipes-devtools/python/python-sijax_0.3.2.bb11
-rw-r--r--meta-python/recipes-devtools/python/python-simplejson.inc23
-rw-r--r--meta-python/recipes-devtools/python/python-simplejson_3.13.2.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-singledispatch_3.4.0.3.bb12
-rw-r--r--meta-python/recipes-devtools/python/python-six.inc19
-rw-r--r--meta-python/recipes-devtools/python/python-six_1.11.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python-smbus.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-smbus_4.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-snakefood_1.4.bb51
-rw-r--r--meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb20
-rw-r--r--meta-python/recipes-devtools/python/python-sparts_0.7.3.bb22
-rw-r--r--meta-python/recipes-devtools/python/python-speaklater.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-speaklater_1.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-spidev.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-sqlalchemy.inc20
-rw-r--r--meta-python/recipes-devtools/python/python-sqlalchemy_1.1.17.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-strict-rfc3339.inc8
-rw-r--r--meta-python/recipes-devtools/python/python-strict-rfc3339_0.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-subprocess32_3.2.7.bb15
-rw-r--r--meta-python/recipes-devtools/python/python-systemd.inc18
-rw-r--r--meta-python/recipes-devtools/python/python-systemd_234.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb18
-rw-r--r--meta-python/recipes-devtools/python/python-tornado.inc25
-rw-r--r--meta-python/recipes-devtools/python/python-tornado_4.5.3.bb8
-rw-r--r--meta-python/recipes-devtools/python/python-twisted.inc247
-rw-r--r--meta-python/recipes-devtools/python/python-twisted_17.9.0.bb4
-rw-r--r--meta-python/recipes-devtools/python/python-twofish.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-twofish_0.3.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-typing.inc9
-rw-r--r--meta-python/recipes-devtools/python/python-typing_3.6.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-ujson.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-ujson_1.35.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-unidiff.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-unidiff_0.5.5.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-urllib3.inc19
-rw-r--r--meta-python/recipes-devtools/python/python-urllib3_1.22.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python-visitor.inc6
-rw-r--r--meta-python/recipes-devtools/python/python-visitor_0.1.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-vobject_0.9.5.bb15
-rw-r--r--meta-python/recipes-devtools/python/python-wcwidth.inc8
-rw-r--r--meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-webcolors.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-webcolors_1.8.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-webdav_0.1.2.bb19
-rw-r--r--meta-python/recipes-devtools/python/python-webencodings.inc13
-rw-r--r--meta-python/recipes-devtools/python/python-webencodings_0.5.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-werkzeug.inc47
-rw-r--r--meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb7
-rw-r--r--meta-python/recipes-devtools/python/python-whoosh.inc24
-rw-r--r--meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb6
-rw-r--r--meta-python/recipes-devtools/python/python-wrapt.inc15
-rw-r--r--meta-python/recipes-devtools/python/python-wrapt_1.10.11.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-wtforms.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-wtforms_2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-xlrd.inc12
-rw-r--r--meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-xstatic-font-awesome.inc17
-rw-r--r--meta-python/recipes-devtools/python/python-xstatic-font-awesome_4.7.0.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-xstatic.inc14
-rw-r--r--meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-yappi.inc16
-rw-r--r--meta-python/recipes-devtools/python/python-yappi_0.98.bb2
-rw-r--r--meta-python/recipes-devtools/python/python-zopeinterface.inc22
-rw-r--r--meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-absl_1.4.0.bb13
-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-aiofiles_23.1.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohttp_3.8.4.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-aiohue_4.6.2.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.3.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-alembic_0.9.8.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-alembic_1.11.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-ansicolors/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-ansicolors_1.1.8.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-appdirs/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-apply-defaults_0.1.6.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-argexec_1.0.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-argh_0.28.1.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-asciitree_0.3.3.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-asgiref/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-asn1crypto_0.24.0.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-aspectlib/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-aspectlib_2.0.0.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-astor/0001-rtrip.py-convert-to-python3.patch36
-rw-r--r--meta-python/recipes-devtools/python/python3-astor_0.8.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-astroid_1.6.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-asttokens_2.2.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-asyncinotify_4.0.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-attr_0.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-attr_0.3.2.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-attrs_17.4.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-automat_0.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-automat_22.10.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-awesomeversion_23.5.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python/0001-setup.py-Use-setuptools-instead-of-distutils.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.2.bb44
-rw-r--r--meta-python/recipes-devtools/python/python3-babel_2.5.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb12
-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.5.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-beautifulsoup4_4.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-behave_1.2.6.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch333
-rw-r--r--meta-python/recipes-devtools/python/python3-betamax/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-bidict_0.22.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-bitstring_4.0.2.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-bitstruct_8.17.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch23
-rw-r--r--meta-python/recipes-devtools/python/python3-bleak_0.20.2.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-blinker/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-blinker_1.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-blinker_1.6.2.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-brotli_1.0.9.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-cachecontrol_0.13.0.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-cached-property_1.5.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-cachetools/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-cachetools_5.3.1.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-can_2.1.0.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-can_4.2.2.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-cassandra-driver_3.13.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-cassandra-driver_3.28.0.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-cbor2/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-cbor2_5.4.6.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-certifi_2018.1.18.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-cffi_1.11.5.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-charset-normalizer_3.2.0.bb15
-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.3.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-click/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-click_6.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-click_8.1.5.bb39
-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.26.4.bb37
-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.6.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-colorlog_6.7.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-colorzero_2.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-configobj_5.0.8.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-configparser_3.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb11
-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.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-coverage_4.4.2.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-coverage_7.2.7.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-cppy/0001-Fix-build-error-as-following.patch28
-rw-r--r--meta-python/recipes-devtools/python/python3-cppy_1.2.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-crc32c_2.3.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch22
-rw-r--r--meta-python/recipes-devtools/python/python3-crcmod_1.7.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-croniter_1.4.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-cryptography/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-cryptography_2.1.4.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-cython_0.28.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-cytoolz_0.12.1.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.8.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-dateutil_2.7.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-dbus-fast_1.85.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-dbus-next_0.2.3.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-dbussy/setuptools.patch56
-rw-r--r--meta-python/recipes-devtools/python/python3-dbussy_1.3.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-decorator_4.3.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb18
-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.bb14
-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.6.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-diskcache_5.6.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-distro_1.8.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-django_1.11.10.bb2
-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.2.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-dnspython/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-dnspython_2.4.0.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-docopt_0.6.2.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-dominate/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-dominate_2.8.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-editor_1.0.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-editor_1.0.4.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-email-validator_1.3.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-engineio_4.5.1.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-et-xmlfile_1.1.0.bb23
-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-account_0.9.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-hash_0.5.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.1.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-rlp_0.3.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-typing_3.4.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch39
-rw-r--r--meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb2
-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.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-execnet/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-executing_1.2.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch28
-rw-r--r--meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-fasteners_0.18.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-fastnumbers_5.0.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-fields_5.0.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb2
-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-jsonpify_1.5.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-jwt_0.3.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-login_0.4.1.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-mail_0.9.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-migrate_2.1.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-migrate_4.0.4.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb17
-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.6.bb2
-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.4.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb2
-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-uploads_0.2.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-user_0.6.19.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-versioned_0.9.4-20101221.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-wtf_0.14.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask-wtf_1.1.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-flask_0.12.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-flask_2.3.2.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-frozenlist_1.4.0.bb11
-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.4.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-gcovr_6.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-geojson/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-geojson_3.0.1.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-geomet_1.0.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-gevent/0001-_setuputils.py-Do-not-add-sys_inc_dir.patch40
-rw-r--r--meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-gmqtt_0.6.12.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-gnupg_0.5.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-google-api-python-client_2.93.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-gpiod/run-ptest15
-rw-r--r--meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb38
-rw-r--r--meta-python/recipes-devtools/python/python3-gpsd-py3_0.3.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-graphviz_0.20.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-greenlet/0001-cleanup-Drop-using-register-storage-class-keyword-ev.patch247
-rw-r--r--meta-python/recipes-devtools/python/python3-greenlet_0.4.13.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-greenlet_2.0.2.bb10
-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-direct_mmap-Use-off_t-on-linux.patch37
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch24
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch58
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio-tools_1.56.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/0001-Include-missing-cstdint-header.patch32
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/0001-direct_mmap-Use-off_t-on-linux.patch42
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch73
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch27
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch88
-rw-r--r--meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch17
-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.56.0.bb52
-rw-r--r--meta-python/recipes-devtools/python/python3-gunicorn/run-ptest7
-rw-r--r--meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-h11_0.14.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-h5py/0001-setup_build.py-avoid-absolute-path.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-h5py_3.9.0.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-haversine_2.8.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-hexbytes_0.3.1.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-html2text/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-html5lib_1.0.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-html5lib_1.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-httplib2_0.22.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-huey_2.4.5.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-humanize_0.5.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-humanize_4.7.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch41
-rw-r--r--meta-python/recipes-devtools/python/python3-icu_2.11.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-idna_2.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-ifaddr_0.2.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-imageio_2.31.1.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-imgtool_1.10.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-incremental_22.10.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-inflection/run-ptest4
-rw-r--r--meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-inotify/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-inotify_git.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-intelhex_2.3.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-intervals/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-ipy/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-ipy_1.01.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-ipython_8.14.0.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-iso3166/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-isort_4.3.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-isort_5.12.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-itsdangerous_2.1.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.3.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-jdcal/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-jedi_0.18.2.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-jinja2_2.10.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-jmespath_1.0.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-joblib_1.3.1.bb16
-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.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonpatch_1.23.bb2
-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.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonpointer_2.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-jstyleson/LICENSE8
-rw-r--r--meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-kconfiglib_14.1.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-keras-preprocessing_1.1.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-kivy/0001-add-support-for-glesv2.patch40
-rw-r--r--meta-python/recipes-devtools/python/python3-kivy_2.1.0..bb74
-rw-r--r--meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-langtable_0.0.62.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.9.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-lazy_1.5.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-libconf_2.0.1.bb13
-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.1.1.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-linux-procfs_0.7.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-lockfile_0.12.2.bb20
-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.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-lrparsing/0001-setup.py-use-setuptools-instead-of-distutils.patch27
-rw-r--r--meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-lru-dict_1.2.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-luma-core_2.4.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-luma-oled_3.12.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-lxml_4.2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-lz4/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-address-openssl-3.x-build-issue.patch28
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch33
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch23
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch33
-rw-r--r--meta-python/recipes-devtools/python/python3-m2crypto_0.39.0.bb47
-rw-r--r--meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-marshmallow_3.19.0.bb28
-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.patch75
-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.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-meld3_2.0.1.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-meson-python_0.13.1.bb23
-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.bb15
-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-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-msgpack_0.5.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-msgpack_1.0.5.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-msk_0.4.0.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-msm_0.8.8.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-multidict/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb24
-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_0.971.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-natsort_8.4.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-netaddr_0.7.19.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-netifaces/0001-netifaces-initialize-msghdr-in-a-portable-way.patch49
-rw-r--r--meta-python/recipes-devtools/python/python3-netifaces_0.11.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-networkx_3.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb10
-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.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-nmap_1.6.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-nocasedict_2.0.1.bb12
-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.3.3.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-oauthlib_2.0.6.bb2
-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.2.bb9
-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-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-padatious_0.4.8.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb33
-rw-r--r--meta-python/recipes-devtools/python/python3-pako_0.3.1.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-pandas_0.22.0.bb2
-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.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-paramiko_3.2.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-parse-type/run-ptest3
-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/run-ptest2
-rw-r--r--meta-python/recipes-devtools/python/python3-parse_1.19.1.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-parsimonious_0.10.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-parso_0.8.3.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-passlib_1.7.4.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pastedeploy_3.0.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-path/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-path_16.7.1.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-pathtools3_0.2.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pep8_1.7.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb4
-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.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pexpect/0001-FSM.py-change-shebang-from-python-to-python3.patch25
-rw-r--r--meta-python/recipes-devtools/python/python3-pexpect_4.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-pid_2.2.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-pid_3.0.4.bb12
-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/0001-support-cross-compiling.patch44
-rw-r--r--meta-python/recipes-devtools/python/python3-pillow/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb65
-rw-r--r--meta-python/recipes-devtools/python/python3-pint/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pint_0.22.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-pkcs11_0.7.0.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-platformdirs/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-platformdirs_3.9.1.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-pluggy_0.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-ply_3.11.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.15.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-polyline/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-polyline_1.4.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-portion_2.4.0.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-prctl/0001-support-cross-complication.patch11
-rw-r--r--meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-precise-runner/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pretend_1.0.9.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-prettytable/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-prettytable_3.6.0.bb46
-rw-r--r--meta-python/recipes-devtools/python/python3-process-tests_2.1.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-progress_1.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-progress_1.6.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.36.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-protobuf_3.5.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-protobuf_4.23.4.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-psutil_5.4.3.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb43
-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/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-py-cpuinfo_9.0.0.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-py_1.5.2.bb2
-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.8.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.1.bb2
-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_0.4.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyatspi_2.46.0.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.13.bb17
-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_2.11.1.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-pybind11_2.2.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch153
-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.22.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pybluez_0.23.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-pycares_4.3.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-pychromecast_13.0.7.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pycocotools_2.0.6.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pycodestyle_2.10.0.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-pycparser_2.18.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-pycrypto_2.6.1.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pycurl_7.45.2.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb2
-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.17.bb2
-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.patch31
-rw-r--r--meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-pyflakes_3.0.1.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pyiface_0.0.5.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyiface_git.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyjks_20.0.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pyjwt_1.6.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyjwt_2.7.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pykwalify_1.8.0.bb20
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint/0001-pylint-remove-plugin-pickle-test.patch53
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint/0001-pyproject.toml-Remove-hard-coded-dependencies.patch26
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint_1.8.3.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pylint_2.17.4.bb51
-rw-r--r--meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pymetno_0.10.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pymisp_2.4.173.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-pymisp_2.4.89.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-pymongo_3.6.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pymongo_4.4.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-pynacl_1.5.0.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch32
-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.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pyopenssl_17.5.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyparsing_2.2.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyperclip_1.6.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyperclip_1.8.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-pyperf_2.6.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pypng_0.20220715.0.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-pyproj_3.6.0.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-pyrad/use-poetry-core.patch26
-rw-r--r--meta-python/recipes-devtools/python/python3-pyrad_2.4.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-pyroute2/run-ptest4
-rw-r--r--meta-python/recipes-devtools/python/python3-pyroute2_0.4.21.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyroute2_0.7.9.bb38
-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.patch47
-rw-r--r--meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch26
-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.2.1.bb49
-rw-r--r--meta-python/recipes-devtools/python/python3-pyscaffold_4.5.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-pyserial-asyncio_0.6.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-pyserial/run-ptest4
-rw-r--r--meta-python/recipes-devtools/python/python3-pyserial_3.4.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-pyserial_3.5.bb63
-rw-r--r--meta-python/recipes-devtools/python/python3-pysocks_1.6.8.bb6
-rw-r--r--meta-python/recipes-devtools/python/python3-pysonos_0.0.54.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-asyncio_0.21.1.bb16
-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-cache_1.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb14
-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.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-html_3.2.0.bb19
-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-metadata_2.0.2.bb17
-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.11.1.bb32
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-runner_3.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb14
-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-xdist_3.3.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-pytest_3.4.2.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-python-vlc_3.0.18122.bb13
-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-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pytoml_0.1.21.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb15
-rwxr-xr-xmeta-python/recipes-devtools/python/python3-pytz_2018.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyudev_0.21.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyudev_0.24.1.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzmq/club-rpath-out.patch29
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzmq/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzmq_25.0.0.bb55
-rw-r--r--meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-qface_2.0.8.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-qrcode_7.4.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-rapidjson_1.10.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-raven_6.10.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-rdflib_6.3.2.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-redis_2.10.6.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-redis_4.6.0.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-regex_2023.6.3.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-file/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-file_1.5.1.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb2
-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-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-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-toolbelt_1.0.0.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-requests-unixsocket_0.3.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-requests_2.18.4.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-rfc3987_1.3.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch37
-rw-r--r--meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.3.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.4.3.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-robotframework_3.0.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-robotframework_6.1.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-rsa_4.9.bb40
-rw-r--r--meta-python/recipes-devtools/python/python3-scapy_0.23.bb13
-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.16.7.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch (renamed from meta-python/recipes-devtools/python/python-scrypt/0001-py-scrypt-remove-the-hard-coded-include-paths.patch)0
-rw-r--r--meta-python/recipes-devtools/python/python3-scrypt/run-ptest3
-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.6.bb3
-rw-r--r--meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch31
-rw-r--r--meta-python/recipes-devtools/python/python3-sdnotify_0.3.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-semver/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-semver_3.0.1.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-sentry-sdk_1.26.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-serpent/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-serpent_1.24.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-serpent_1.41.bb26
-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.bb31
-rw-r--r--meta-python/recipes-devtools/python/python3-setuptools-declarative-requirements_1.3.0.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-setuptools-scm-git-archive_1.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-sh_2.0.4.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-sijax_0.3.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-simpleeval/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-simpleeval_0.9.13.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-simplejson_3.13.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-simplejson_3.19.1.bb24
-rw-r--r--meta-python/recipes-devtools/python/python3-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch38
-rw-r--r--meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch78
-rw-r--r--meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb37
-rw-r--r--meta-python/recipes-devtools/python/python3-smbus/0001-Use-setuptools-as-distutils-is-deprecated.patch25
-rw-r--r--meta-python/recipes-devtools/python/python3-smbus2_0.4.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-smbus_4.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-smbus_4.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-smpplib/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-smpplib_2.2.3.bb30
-rw-r--r--meta-python/recipes-devtools/python/python3-snagboot_1.1.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-socketio_5.8.0.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-soupsieve/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-soupsieve_2.4.1.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-speaklater_1.3.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-speedtest-cli_2.1.3.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-spidev_3.2.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-spidev_3.6.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.17.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.19.bb25
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch41
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlparse/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb28
-rw-r--r--meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-stack-data_0.6.2.bb19
-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-strict-rfc3339_0.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-supervisor/supervisor.service15
-rw-r--r--meta-python/recipes-devtools/python/python3-supervisor/supervisord.conf31
-rw-r--r--meta-python/recipes-devtools/python/python3-supervisor_4.2.5.bb34
-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.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-systemd_235.bb12
-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-termcolor_2.3.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb13
-rw-r--r--meta-python/recipes-devtools/python/python3-texttable_1.6.7.bb10
-rw-r--r--meta-python/recipes-devtools/python/python3-tinyrecord_0.2.0.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-tomlkit/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-tomlkit_0.11.8.bb29
-rw-r--r--meta-python/recipes-devtools/python/python3-toolz_0.12.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-tornado_4.5.3.bb7
-rw-r--r--meta-python/recipes-devtools/python/python3-tornado_6.3.bb39
-rw-r--r--meta-python/recipes-devtools/python/python3-tox_4.6.4.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-tqdm_4.65.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-trafaret_2.1.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-transitions_0.9.0.bb9
-rw-r--r--meta-python/recipes-devtools/python/python3-trustme/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-twine_4.0.2.bb18
-rw-r--r--meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb67
-rw-r--r--meta-python/recipes-devtools/python/python3-twisted_22.10.0.bb312
-rw-r--r--meta-python/recipes-devtools/python/python3-twitter_4.14.0.bb19
-rw-r--r--meta-python/recipes-devtools/python/python3-twofish/0001-Fix-missing-return-statements-in-module-stubs.patch38
-rw-r--r--meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch26
-rw-r--r--meta-python/recipes-devtools/python/python3-twofish_0.3.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-txaio_23.1.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb13
-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-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-typeguard_4.0.0.bb35
-rw-r--r--meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-u-msgpack-python/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-u-msgpack-python_2.8.0.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-uefi-firmware_1.10.bb22
-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.patch30
-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.patch37
-rw-r--r--meta-python/recipes-devtools/python/python3-ujson/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-ujson_1.35.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-ujson_5.8.0.bb34
-rw-r--r--meta-python/recipes-devtools/python/python3-unidiff/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-unidiff_0.5.5.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-unidiff_0.7.5.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-uritemplate/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb26
-rw-r--r--meta-python/recipes-devtools/python/python3-urllib3_1.22.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-uswid_git.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb20
-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.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-virtualenv_20.24.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-visitor_0.1.3.bb8
-rw-r--r--meta-python/recipes-devtools/python/python3-waitress_2.1.2.bb15
-rw-r--r--meta-python/recipes-devtools/python/python3-watchdog_3.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-wcwidth_0.1.7.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-web3_6.3.0.bb22
-rw-r--r--meta-python/recipes-devtools/python/python3-webcolors_1.8.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-webencodings_0.5.1.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-websocket-client_1.5.3.bb17
-rw-r--r--meta-python/recipes-devtools/python/python3-websockets_11.0.3.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-websockets_4.0.1.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-werkzeug_2.3.6.bb40
-rw-r--r--meta-python/recipes-devtools/python/python3-whoosh/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-whoosh_2.7.4.bb42
-rw-r--r--meta-python/recipes-devtools/python/python3-wpa-supplicant/0001-cli-drop-the-second-argument-from-click.argument-dec.patch127
-rw-r--r--meta-python/recipes-devtools/python/python3-wpa-supplicant_0.2.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-wrapt_1.10.11.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-wrapt_1.15.0.bb16
-rw-r--r--meta-python/recipes-devtools/python/python3-wtforms_2.1.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb23
-rw-r--r--meta-python/recipes-devtools/python/python3-xlrd/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb40
-rw-r--r--meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.2.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb11
-rw-r--r--meta-python/recipes-devtools/python/python3-xmlschema_2.3.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.13.0.bb30
-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_1.0.1.bb2
-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-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-xxhash_3.2.0.bb21
-rw-r--r--meta-python/recipes-devtools/python/python3-yamlloader_1.2.2.bb12
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch3895
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/0002-add-3.11-to-the-setup.patch26
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi_0.98.bb2
-rw-r--r--meta-python/recipes-devtools/python/python3-yappi_1.4.0.bb36
-rw-r--r--meta-python/recipes-devtools/python/python3-yarl/run-ptest3
-rw-r--r--meta-python/recipes-devtools/python/python3-yarl_1.9.2.bb27
-rw-r--r--meta-python/recipes-devtools/python/python3-zeroconf_0.71.0.bb14
-rw-r--r--meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb4
-rw-r--r--meta-python/recipes-devtools/python/python3-zopeinterface_6.0.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-reedsolo/python3-reedsolo_1.7.0.bb10
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-pypubsub-Replace-deprecated-inspect.getargspec.patch65
-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/add-back-option-build-base.patch22
-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/wxgtk-fixup-build-scripts.patch53
-rw-r--r--meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.0.bb39
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch70
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0002-run_program-support-timeout.patch21
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0003-support-infinit-timeout.patch6
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch59
-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.patch48
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch32
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch28
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch45
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch48
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch45
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch38
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch35
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch34
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch30
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet/0014-invoking-dd-with-infinite-timeout.patch31
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb49
-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-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.1.5.bb27
-rw-r--r--meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb31
-rw-r--r--meta-python/recipes-extended/python-cson/python-cson_git.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.bb28
-rw-r--r--meta-python/recipes-extended/python-meh/python3-meh_0.46.bb17
-rw-r--r--meta-python/recipes-extended/python-meh/python3-meh_0.51.bb16
-rw-r--r--meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb17
-rw-r--r--meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.4.bb16
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0001-support-authentication-for-kickstart.patch69
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0002-pykickstart-parser.py-add-lock-for-readKickstart-and.patch41
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0003-comment-out-sections-shutdown-and-environment-in-gen.patch16
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0004-load.py-retry-to-invoke-request-with-timeout.patch34
-rw-r--r--meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch25
-rw-r--r--meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb26
-rw-r--r--meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb27
-rw-r--r--meta-python/recipes-extended/python-pyparted/python-pyparted.inc22
-rw-r--r--meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.1.bb10
-rw-r--r--meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.1.bb10
-rw-r--r--meta-python/recipes-extended/python-pyparted/python3-pyparted_3.12.0.bb27
-rw-r--r--meta-python/recipes-extended/python-rich/python3-rich_13.4.2.bb15
-rw-r--r--meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.7.0.bb16
-rw-r--r--meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.bb11
-rw-r--r--meta-python/recipes-extended/pywbem/python3-pywbem_1.6.1.bb53
-rw-r--r--meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb36
-rw-r--r--meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb32
-rw-r--r--meta-python/recipes-extended/send2trash/python3-send2trash_1.8.2.bb14
-rw-r--r--meta-python/recipes-extended/tuna/tuna_git.bb24
-rw-r--r--meta-python/recipes-networking/python/python3-ldap_3.4.3.bb30
-rw-r--r--meta-webserver/README68
-rw-r--r--meta-webserver/README.md66
-rw-r--r--meta-webserver/conf/layer.conf5
-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-core/packagesgroups/packagegroup-meta-webserver.bb49
-rw-r--r--meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb21
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb45
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch52
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0001-make_exports.awk-not-expose-the-path.patch32
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch50
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch33
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0004-apache2-log-the-SELinux-context-at-startup.patch76
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0005-replace-lynx-to-curl-in-apachectl-script.patch52
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0006-apache2-fix-the-race-issue-of-parallel-installation.patch35
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0007-apache2-allow-to-disable-selinux-support.patch40
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0008-Fix-perl-install-directory-to-usr-bin.patch36
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0009-support-apxs.in-force-destdir-to-be-empty-string.patch49
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0010-apache2-do-not-use-relative-path-for-gen_test_char.patch26
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch31
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch22
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch81
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch37
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch63
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch22
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch49
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch11
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb197
-rw-r--r--meta-webserver/recipes-httpd/apache2/apache2_2.4.57.bb238
-rw-r--r--meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch52
-rw-r--r--meta-webserver/recipes-httpd/apache2/files/apache2-volatile.conf2
-rw-r--r--meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch40
-rw-r--r--meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch21
-rw-r--r--[-rwxr-xr-x]meta-webserver/recipes-httpd/apache2/files/init0
-rw-r--r--meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch47
-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.bb40
-rw-r--r--meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb81
-rw-r--r--meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb64
-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/files/0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch30
-rw-r--r--meta-webserver/recipes-httpd/monkey/files/monkey.init2
-rw-r--r--meta-webserver/recipes-httpd/monkey/files/monkey.service2
-rw-r--r--meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb77
-rw-r--r--meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb92
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/default_server.site14
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch99
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/nginx.conf139
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/nginx.service10
-rw-r--r--meta-webserver/recipes-httpd/nginx/files/proxy_params4
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx.inc57
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.13.12.bb10
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.14.0.bb6
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb10
-rw-r--r--meta-webserver/recipes-httpd/nginx/nginx_1.25.1.bb6
-rw-r--r--meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch145
-rw-r--r--meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf55
-rw-r--r--meta-webserver/recipes-httpd/nostromo/files/nostromo34
-rw-r--r--meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf1
-rw-r--r--meta-webserver/recipes-httpd/nostromo/files/volatiles2
-rw-r--r--meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb64
-rw-r--r--meta-webserver/recipes-httpd/sthttpd/sthttpd/0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch51
-rw-r--r--meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb23
-rw-r--r--meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb41
-rw-r--r--meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.2.1.bb40
-rw-r--r--meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb35
-rw-r--r--meta-webserver/recipes-php/xdebug/xdebug_3.2.0.bb34
-rw-r--r--meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch18
-rw-r--r--meta-webserver/recipes-support/fcgi/fcgi_git.bb9
-rw-r--r--meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch313
-rw-r--r--meta-webserver/recipes-support/fcgiwrap/fcgiwrap_git.bb24
-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_289.bb197
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch25
-rw-r--r--meta-webserver/recipes-webadmin/cockpit/files/cockpit.pam8
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch21
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch27
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata/netdata.service12
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb82
-rw-r--r--meta-webserver/recipes-webadmin/netdata/netdata_git.bb59
-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-webserver/recipes-webadmin/webmin/webmin_1.850.bb32
-rw-r--r--meta-xfce/README22
-rw-r--r--meta-xfce/README.md22
-rw-r--r--meta-xfce/classes/thunar-plugin.bbclass10
-rw-r--r--meta-xfce/classes/xfce-app.bbclass2
-rw-r--r--meta-xfce/classes/xfce-git.bbclass2
-rw-r--r--meta-xfce/classes/xfce-panel-plugin.bbclass14
-rw-r--r--meta-xfce/classes/xfce.bbclass6
-rw-r--r--meta-xfce/conf/layer.conf12
-rw-r--r--meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb25
-rw-r--r--meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb11
-rw-r--r--meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.bb10
-rw-r--r--meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb41
-rw-r--r--meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb39
-rw-r--r--meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb19
-rw-r--r--meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.bb19
-rw-r--r--meta-xfce/recipes-apps/orage/orage_4.12.1.bb18
-rw-r--r--meta-xfce/recipes-apps/orage/orage_4.16.0.bb20
-rw-r--r--meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch40
-rw-r--r--meta-xfce/recipes-apps/ristretto/ristretto_0.13.1.bb15
-rw-r--r--meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb16
-rw-r--r--meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb27
-rw-r--r--meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch34
-rw-r--r--meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb14
-rw-r--r--meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb14
-rw-r--r--meta-xfce/recipes-apps/xfce4-datetime-setter/files/0001-Fix-build-with-meson-0.61.patch26
-rw-r--r--meta-xfce/recipes-apps/xfce4-datetime-setter/files/fix-inner-dependency.patch28
-rw-r--r--meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb23
-rw-r--r--meta-xfce/recipes-apps/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch61
-rw-r--r--meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb17
-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.4.2.bb35
-rw-r--r--meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb35
-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-screensaver/xfce4-screensaver/fix-cross-compile.patch64
-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.3.bb21
-rw-r--r--meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.2.bb22
-rw-r--r--meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.1.bb10
-rw-r--r--meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.5.bb9
-rw-r--r--meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb12
-rw-r--r--meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_1.0.4.bb15
-rw-r--r--meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb6
-rw-r--r--meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb10
-rw-r--r--meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb6
-rw-r--r--meta-xfce/recipes-art/xfwm4-themes/xfwm4-themes_4.10.0.bb4
-rw-r--r--meta-xfce/recipes-bindings/vala/xfce4-vala/0001-configure.ac-Detect-vapidir-if-not-set-explicitly.patch31
-rw-r--r--meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb15
-rw-r--r--meta-xfce/recipes-core/images/core-image-minimal-xfce.bb4
-rw-r--r--meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch19
-rw-r--r--meta-xfce/recipes-extended/imsettings/imsettings_1.7.3.bb31
-rw-r--r--meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb34
-rw-r--r--meta-xfce/recipes-extended/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch27
-rw-r--r--meta-xfce/recipes-extended/libunique/libunique/0001-test-unique-Add-format-qualifier-s-for-string.patch32
-rw-r--r--meta-xfce/recipes-extended/libunique/libunique/build.patch421
-rw-r--r--meta-xfce/recipes-extended/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch36
-rw-r--r--meta-xfce/recipes-extended/libunique/libunique/noconst.patch130
-rw-r--r--meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb30
-rw-r--r--meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb9
-rw-r--r--meta-xfce/recipes-multimedia/parole/parole_1.0.1.bb38
-rw-r--r--meta-xfce/recipes-multimedia/parole/parole_4.16.0.bb32
-rw-r--r--meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.0.bb18
-rw-r--r--meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb18
-rw-r--r--meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb16
-rw-r--r--meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb16
-rw-r--r--meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.4.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.6.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb17
-rw-r--r--meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.6.2.bb16
-rw-r--r--meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.0.bb9
-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.0.5.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.7.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.7.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.1.bb14
-rw-r--r--meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb11
-rw-r--r--meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.6.0.bb10
-rw-r--r--meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.2.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.1.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb11
-rw-r--r--meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb15
-rw-r--r--meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb14
-rw-r--r--meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.0.bb13
-rw-r--r--meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin/0001-check-for-fstab.h-during-configure.patch31
-rw-r--r--meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb11
-rw-r--r--meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.5.bb11
-rw-r--r--meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch25
-rw-r--r--meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/notes/files/0001-main-status-icon.c-remove-deprecated-g_type_init.patch32
-rw-r--r--meta-xfce/recipes-panel-plugins/notes/files/01_fix_format-string.patch53
-rw-r--r--meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb20
-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.7.0.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb13
-rw-r--r--meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb17
-rw-r--r--meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.3.bb17
-rw-r--r--meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch44
-rw-r--r--meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb27
-rw-r--r--meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.4.4.bb28
-rw-r--r--meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.2.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.1.bb11
-rw-r--r--meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.1.bb12
-rw-r--r--meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb10
-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/timer/xfce4-timer-plugin_1.7.0.bb10
-rw-r--r--meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.1.bb10
-rw-r--r--meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb11
-rw-r--r--meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.1.bb9
-rw-r--r--meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb9
-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.8.10.bb13
-rw-r--r--meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.2.0.bb11
-rw-r--r--meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb8
-rw-r--r--meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.1.bb16
-rw-r--r--meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.2.bb15
-rw-r--r--meta-xfce/recipes-support/vim/vim_%.bbappend1
-rw-r--r--meta-xfce/recipes-support/vim/vim_xfce.inc6
-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.1.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/files/0001-build-Bump-GLib-minimum-required-to-2.26.patch34
-rw-r--r--meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.1.bb13
-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.patch85
-rw-r--r--meta-xfce/recipes-xfce/exo/exo_0.12.0.bb36
-rw-r--r--meta-xfce/recipes-xfce/exo/exo_4.18.0.bb25
-rw-r--r--meta-xfce/recipes-xfce/garcon/garcon_0.6.1.bb17
-rw-r--r--meta-xfce/recipes-xfce/garcon/garcon_4.18.1.bb22
-rw-r--r--meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine/glib-2.54-ftbfs.patch23
-rw-r--r--meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb30
-rw-r--r--meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch (renamed from meta-xfce/recipes-xfce/libxfce4ui/files/0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch)10
-rw-r--r--meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.4.bb32
-rw-r--r--meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.3.bb31
-rw-r--r--meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.1.bb10
-rw-r--r--meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.1.bb9
-rw-r--r--meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb10
-rw-r--r--meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb19
-rw-r--r--meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.0.bb17
-rw-r--r--meta-xfce/recipes-xfce/thunar-volman/thunar-volman_4.18.0.bb16
-rw-r--r--meta-xfce/recipes-xfce/thunar/thunar_1.8.0.bb32
-rw-r--r--meta-xfce/recipes-xfce/thunar/thunar_4.18.4.bb35
-rw-r--r--meta-xfce/recipes-xfce/tumbler/tumbler/0001-configure-use-pkg-config-for-freetype2.patch45
-rw-r--r--meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb32
-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.13.0.bb14
-rw-r--r--meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.18.0.bb13
-rw-r--r--meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-Run-native-xdt-csource-on-tests.patch33
-rw-r--r--meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-m4macros-Check-for-a-function-provided-by-libX11-in-.patch35
-rw-r--r--meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb23
-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.patch53
-rw-r--r--meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.3.bb40
-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_1.6.1.bb44
-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/machine-host.bb17
-rw-r--r--meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb34
-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.patch18
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch41
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_4.18.2.bb31
-rw-r--r--meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb41
-rw-r--r--meta-xfce/recipes-xfce/xfconf/xfconf_4.13.4.bb15
-rw-r--r--meta-xfce/recipes-xfce/xfconf/xfconf_4.18.0.bb19
-rw-r--r--meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb17
-rw-r--r--meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.18.1.bb28
-rw-r--r--meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb28
-rw-r--r--meta-xfce/recipes-xfce/xfwm4/xfwm4_4.18.0.bb37
8188 files changed, 267187 insertions, 153467 deletions
diff --git a/.gitignore b/.gitignore
index b093583d79..c01df45ecc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,5 @@
+*.pyc
+*.pyo
/*.patch
*.swp
*.orig
diff --git a/README b/README
deleted file mode 100644
index 204966ac8d..0000000000
--- a/README
+++ /dev/null
@@ -1,4 +0,0 @@
-Collection of layers for the OE-core universe
-
-Please see the respective READMEs in the layer subdirectories
-
diff --git a/README.md b/README.md
new file mode 100644
index 0000000000..7318f09cdb
--- /dev/null
+++ b/README.md
@@ -0,0 +1,7 @@
+Collection of layers for the OE-core universe
+
+Main layer maintainer: Khem Raj <raj.khem@gmail.com>
+
+This repository is a collection of layers to suppliment OE-Core
+with additional packages, Each layer have designated maintainer
+Please see the respective READMEs in the layer subdirectories
diff --git a/contrib/oe-stylize.py b/contrib/oe-stylize.py
index ba4b87a74c..1fb0a5bcc0 100755
--- a/contrib/oe-stylize.py
+++ b/contrib/oe-stylize.py
@@ -1,13 +1,13 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
"""\
Sanitize a bitbake file following the OpenEmbedded style guidelines,
-see http://openembedded.org/wiki/StyleGuide
+see http://openembedded.org/wiki/StyleGuide
(C) 2006 Cyril Romain <cyril.romain@gmail.com>
MIT license
-TODO:
+TODO:
- add the others OpenEmbedded variables commonly used:
- parse command arguments and print usage on misuse
. prevent giving more than one .bb file in arguments
@@ -19,7 +19,7 @@ TODO:
- count rule breaks and displays them in the order frequence
"""
-from __future__ import print_function
+from __future__ import print_function
import fileinput
import string
import re
@@ -65,7 +65,7 @@ OE_vars = [
'RSUGGESTS',
'RPROVIDES',
'RCONFLICTS',
- 'FILES',
+ 'FILES',
'do_package',
'do_stage',
'addhandler',
@@ -210,86 +210,119 @@ OE_vars = [
'others'
]
-varRegexp = r'^([a-zA-Z_0-9${}-]*)([ \t]*)([+.:]?=[+.]?)([ \t]*)([^\t]+)'
-routineRegexp = r'^([a-zA-Z0-9_ ${}-]+?)\('
+varRegexp = r'^([a-zA-Z_0-9${}:-]*)([ \t]*)([+.:]?=[+.]?)([ \t]*)([^\t]+)'
+routineRegexp = r'^([a-zA-Z0-9_ ${}:-]+?)\('
# Variables seen in the processed .bb
seen_vars = {}
-for v in OE_vars:
+for v in OE_vars:
seen_vars[v] = []
-# _Format guideline #0_:
-# No spaces are allowed at the beginning of lines that define a variable or
+# _Format guideline #0_:
+# No spaces are allowed at the beginning of lines that define a variable or
# a do_ routine
-def respect_rule0(line):
- return line.lstrip()==line
-def conformTo_rule0(line):
+
+
+def respect_rule0(line):
+ return line.lstrip() == line
+
+
+def conformTo_rule0(line):
return line.lstrip()
-# _Format guideline #1_:
+# _Format guideline #1_:
# No spaces are allowed behind the line continuation symbol '\'
+
+
def respect_rule1(line):
if line.rstrip().endswith('\\'):
return line.endswith('\\')
- else:
+ else:
return True
+
+
def conformTo_rule1(line):
return line.rstrip()
-# _Format guideline #2_:
+# _Format guideline #2_:
# Tabs should not be used (use spaces instead).
+
+
def respect_rule2(line):
- return line.count('\t')==0
+ return line.count('\t') == 0
+
+
def conformTo_rule2(line):
return line.expandtabs()
# _Format guideline #3_:
-# Comments inside bb files are allowed using the '#' character at the
+# Comments inside bb files are allowed using the '#' character at the
# beginning of a line.
+
+
def respect_rule3(line):
if line.lstrip().startswith('#'):
return line.startswith('#')
- else:
+ else:
return True
+
+
def conformTo_rule3(line):
return line.lstrip()
# _Format guideline #4_:
# Use quotes on the right hand side of assignments FOO = "BAR"
+
+
def respect_rule4(line):
r = re.search(varRegexp, line)
if r is not None:
r2 = re.search(r'("?)([^"\\]*)(["\\]?)', r.group(5))
# do not test for None it because always match
- return r2.group(1)=='"' and r2.group(3)!=''
+ return r2.group(1) == '"' and r2.group(3) != ''
return False
+
+
def conformTo_rule4(line):
r = re.search(varRegexp, line)
return ''.join([r.group(1), ' ', r.group(3), ' "', r.group(5), r.group(5).endswith('"') and '' or '"'])
# _Format guideline #5_:
# The correct spacing for a variable is FOO = "BAR".
+
+
def respect_rule5(line):
r = re.search(varRegexp, line)
- return r is not None and r.group(2)==" " and r.group(4)==" "
+ return r is not None and r.group(2) == " " and r.group(4) == " "
+
+
def conformTo_rule5(line):
r = re.search(varRegexp, line)
return ''.join([r.group(1), ' ', r.group(3), ' ', r.group(5)])
# _Format guideline #6_:
# Don't use spaces or tabs on empty lines
+
+
def respect_rule6(line):
- return not line.isspace() or line=="\n"
+ return not line.isspace() or line == "\n"
+
+
def conformTo_rule6(line):
return ""
# _Format guideline #7_:
# Indentation of multiline variables such as SRC_URI is desireable.
+
+
def respect_rule7(line):
return True
+
+
def conformTo_rule7(line):
return line
+
rules = (
(respect_rule0, conformTo_rule0, "No spaces are allowed at the beginning of lines that define a variable or a do_ routine"),
(respect_rule1, conformTo_rule1, "No spaces are allowed behind the line continuation symbol '\\'"),
@@ -303,6 +336,8 @@ rules = (
# Function to check that a line respects a rule. If not, it tries to conform
# the line to the rule. Reminder or Disgression message are dump accordingly.
+
+
def follow_rule(i, line):
oldline = line
# if the line does not respect the rule
@@ -312,10 +347,10 @@ def follow_rule(i, line):
# if the line still does not respect the rule
if not rules[i][0](line):
# this is a rule disgression
- print ("## Disgression: ", rules[i][2], " in: '", oldline, "'")
+ print("## Disgression: ", rules[i][2], " in: '", oldline, "'")
else:
# just remind user about his/her errors
- print ("## Reminder: ", rules[i][2], " in : '", oldline, "'")
+ print("## Reminder: ", rules[i][2], " in : '", oldline, "'")
return line
@@ -329,12 +364,12 @@ if __name__ == "__main__":
if True:
lines.append(line)
else:
- # expandtabs on each line so that rule2 is always respected
- # rstrip each line so that rule1 is always respected
+ # expandtabs on each line so that rule2 is always respected
+ # rstrip each line so that rule1 is always respected
line = line.expandtabs().rstrip()
# ignore empty lines (or line filled with spaces or tabs only)
# so that rule6 is always respected
- if line is not '':
+ if line != '':
lines.append(line)
# -- parse the file --
@@ -342,7 +377,7 @@ if __name__ == "__main__":
in_routine = False
commentBloc = []
olines = []
- for line in lines:
+ for line in lines:
originalLine = line
# rstrip line to remove line breaks characters
line = line.rstrip()
@@ -351,14 +386,15 @@ if __name__ == "__main__":
line = follow_rule(6, line)
# ignore empty lines
- if line.isspace() or line is '':
+ if line.isspace() or line == '':
# flush comments into the olines
- for c in commentBloc: olines.append(c)
+ for c in commentBloc:
+ olines.append(c)
commentBloc = []
continue
- if line.startswith('}'):
- in_routine=False
+ if line.startswith('}'):
+ in_routine = False
keep = line.endswith('\\') or in_routine
# handles commented lines
@@ -370,7 +406,8 @@ if __name__ == "__main__":
continue
if var in seen_vars:
- for c in commentBloc: seen_vars[var].append(c)
+ for c in commentBloc:
+ seen_vars[var].append(c)
commentBloc = []
seen_vars[var].append(line)
else:
@@ -378,8 +415,8 @@ if __name__ == "__main__":
if line.startswith(k):
var = k
break
- if re.match(routineRegexp, line) is not None:
- in_routine=True
+ if re.match(routineRegexp, line) is not None:
+ in_routine = True
line = follow_rule(0, line)
elif re.match(varRegexp, line) is not None:
line = follow_rule(0, line)
@@ -387,26 +424,30 @@ if __name__ == "__main__":
line = follow_rule(5, line)
if var == "":
if not in_routine:
- print ("## Warning: unknown variable/routine \"%s\"" % originalLine.rstrip('\n'))
+ print("## Warning: unknown variable/routine \"%s\"" % originalLine.rstrip('\n'))
var = 'others'
- for c in commentBloc: seen_vars[var].append(c)
+ for c in commentBloc:
+ seen_vars[var].append(c)
commentBloc = []
seen_vars[var].append(line)
- if not keep and not in_routine: var = ""
+ if not keep and not in_routine:
+ var = ""
# -- 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:
- if k=='SRC_URI': addEmptyLine = True
- if seen_vars[k] != []:
+ if k == 'SRC_URI':
+ addEmptyLine = True
+ if seen_vars[k] != []:
if addEmptyLine and not k.startswith(previourVarPrefix):
olines.append("")
- for l in seen_vars[k]:
- olines.append(l)
- previourVarPrefix = k.split('_')[0]=='' and "unknown" or k.split('_')[0]
- for line in olines: print(line)
-
+ 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/contrib/pw-am.sh b/contrib/pw-am.sh
index 8987eee8eb..d9d1187b0b 100755
--- a/contrib/pw-am.sh
+++ b/contrib/pw-am.sh
@@ -9,7 +9,7 @@
for patchnumber in $@;
do
- wget -nv http://patches.openembedded.org/patch/$patchnumber/mbox/ -O pw-am-$patchnumber.patch
+ wget -nv http://patchwork.yoctoproject.org/patch/$patchnumber/mbox/ -O pw-am-$patchnumber.patch
git am -s pw-am-$patchnumber.patch
rm pw-am-$patchnumber.patch
done
diff --git a/meta-filesystems/README b/meta-filesystems/README
deleted file mode 100644
index 97d0e94bfe..0000000000
--- a/meta-filesystems/README
+++ /dev/null
@@ -1,105 +0,0 @@
-This README file contains information on the contents of the
-filesystems layer.
-
-Please see the corresponding sections below for details.
-
-
-Dependencies
-============
-
-This layer depends on:
-
- URI: git://git.openembedded.org/bitbake
- branch: master
-
- URI: git://git.openembedded.org/openembedded-core
- layers: meta
- branch: master
-
- URI: git://git.openembedded.org/meta-openembedded
- layers: meta-oe
- branch: master
-
-Patches
-=======
-
-Please submit any patches against the filesystems layer to the
-OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org)
-with '[meta-filesystems]' in the subject.
-
-Layer maintainer: Armin Kuster <akuster808@gmail.com>
-
-When sending single patches, please use something like:
-
- git send-email -1 -M \
- --to openembedded-devel@lists.openembedded.org \
- --subject-prefix=meta-filesystems][PATCH
-
-
-Table of Contents
-=================
-
- I. Adding the filesystems layer to your build
- II. Misc
-
-
-I. Adding the filesystems layer to your build
-=================================================
-
-In order to use this layer, you need to make the build system aware of
-it.
-
-Assuming the filesystems layer exists at the top-level of your
-yocto build tree, you can add it to the build system by adding the
-location of the filesystems layer to bblayers.conf, along with any
-other layers needed. e.g.:
-
- BBLAYERS ?= " \
- /path/to/yocto/meta \
- /path/to/yocto/meta-oe \
- /path/to/yocto/meta-filesystems \
- "
-
-
-II. Misc
-========
-
- --- physfs ---
- A library to provide abstract access to various archives
-
- --- fuse ---
- Filesystem in Userspace (FUSE) is a simple interface for userspace programs
- to export a virtual filesystem to the Linux kernel.
-
- --- ifuse ---
- A fuse filesystem to access the contents of an iPhone or iPod Touch
-
- --- sshfs-fuse ---
- A filesystem client based on the SSH File Transfer Protocol
-
- --- owfs ---
- An easy way to use the 1-Wire file system
-
- --- ntfs-3g-ntfsprogs ---
- The ntfs-3g is a freely available read/write NTFS driver for Linux and
- ntfsprogs includes utilities for doing all required tasks to NTFS partitions.
-
- --- cramfs ---
- Builds cramfs filesystems for embedded systems
-
- --- smbnetfs ---
- SMBNetFS is a Linux/FreeBSD filesystem that allow you to use samba/microsoft
- network in the same manner as the network neighborhood in Microsoft Windows.
-
- --- fuse-exfat ---
- A read and write exFAT driver for FUSE
-
- --- exfat-utils ---
- Utilities to create, check, label and dump exFAT filesystem
-
- --- f2fs-tools ---
- Tools needed for creating and managing f2fs partitions
-
- --- xfsprogs ---
- It provides XFS filesystem utilities.
-
diff --git a/meta-filesystems/README.md b/meta-filesystems/README.md
new file mode 100644
index 0000000000..78a4429ce2
--- /dev/null
+++ b/meta-filesystems/README.md
@@ -0,0 +1,101 @@
+This README file contains information on the contents of the
+filesystems layer.
+
+Please see the corresponding sections below for details.
+
+
+Dependencies
+============
+
+This layer depends on:
+
+ URI: git://git.openembedded.org/openembedded-core
+ layers: meta
+ branch: master
+
+ URI: git://git.openembedded.org/meta-openembedded
+ layers: meta-oe
+ branch: master
+
+Patches
+=======
+
+Please submit any patches against the filesystems layer to the
+OpenEmbedded development mailing list (openembedded-devel@lists.openembedded.org)
+with '[meta-filesystems]' in the subject.
+
+Layer maintainer: Khem Raj <raj.khem@gmail.com>
+
+When sending single patches, please use something like:
+
+ git send-email -1 -M \
+ --to openembedded-devel@lists.openembedded.org \
+ --subject-prefix='meta-filesystems][PATCH'
+
+
+Table of Contents
+=================
+
+ I. Adding the filesystems layer to your build
+ II. Misc
+
+
+I. Adding the filesystems layer to your build
+=================================================
+
+In order to use this layer, you need to make the build system aware of
+it.
+
+Assuming the filesystems layer exists at the top-level of your
+yocto build tree, you can add it to the build system by adding the
+location of the filesystems layer to bblayers.conf, along with any
+other layers needed. e.g.:
+
+ BBLAYERS ?= " \
+ /path/to/yocto/meta \
+ /path/to/yocto/meta-oe \
+ /path/to/yocto/meta-filesystems \
+ "
+
+
+II. Misc
+========
+
+ --- physfs ---
+ A library to provide abstract access to various archives
+
+ --- fuse ---
+ Filesystem in Userspace (FUSE) is a simple interface for userspace programs
+ to export a virtual filesystem to the Linux kernel.
+
+ --- ifuse ---
+ A fuse filesystem to access the contents of an iPhone or iPod Touch
+
+ --- sshfs-fuse ---
+ A filesystem client based on the SSH File Transfer Protocol
+
+ --- owfs ---
+ An easy way to use the 1-Wire file system
+
+ --- ntfs-3g-ntfsprogs ---
+ The ntfs-3g is a freely available read/write NTFS driver for Linux and
+ ntfsprogs includes utilities for doing all required tasks to NTFS partitions.
+
+ --- cramfs ---
+ Builds cramfs filesystems for embedded systems
+
+ --- smbnetfs ---
+ SMBNetFS is a Linux/FreeBSD filesystem that allow you to use samba/microsoft
+ network in the same manner as the network neighborhood in Microsoft Windows.
+
+ --- fuse-exfat ---
+ A read and write exFAT driver for FUSE
+
+ --- exfat-utils ---
+ Utilities to create, check, label and dump exFAT filesystem
+
+ --- f2fs-tools ---
+ Tools needed for creating and managing f2fs partitions
+
+ --- xfsprogs ---
+ It provides XFS filesystem utilities.
diff --git a/meta-filesystems/conf/layer.conf b/meta-filesystems/conf/layer.conf
index dbcff42d44..9602aa9e1a 100644
--- a/meta-filesystems/conf/layer.conf
+++ b/meta-filesystems/conf/layer.conf
@@ -7,7 +7,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
BBFILE_COLLECTIONS += "filesystems-layer"
BBFILE_PATTERN_filesystems-layer = "^${LAYERDIR}/"
-BBFILE_PRIORITY_filesystems-layer = "6"
+BBFILE_PRIORITY_filesystems-layer = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
@@ -15,4 +15,4 @@ LAYERVERSION_filesystems-layer = "1"
LAYERDEPENDS_filesystems-layer = "core openembedded-layer"
-LAYERSERIES_COMPAT_filesystems-layer = "sumo"
+LAYERSERIES_COMPAT_filesystems-layer = "mickledore"
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.4.bb b/meta-filesystems/recipes-filesystems/burnia/libisoburn_1.5.4.bb
new file mode 100644
index 0000000000..f263b51350
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/burnia/libisoburn_1.5.4.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] = "2d89846d43880f17fa591c53b3bea42ffb803628e4e630c680fc2c9184f79132"
+
+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.4.bb b/meta-filesystems/recipes-filesystems/burnia/libisofs_1.5.4.bb
new file mode 100644
index 0000000000..1754db7f70
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/burnia/libisofs_1.5.4.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] = "aaa0ed80a7501979316f505b0b017f29cba0ea5463b751143bad2c360215a88e"
+
+DEPENDS = "acl zlib"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb
deleted file mode 100644
index 99bf2bed41..0000000000
--- a/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.2.3.bb
+++ /dev/null
@@ -1,21 +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 = "http://code.google.com/p/exfat/"
-SECTION = "universe/otherosfs"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRC_URI = "${DEBIAN_MIRROR}/main/f/fuse-exfat/fuse-exfat_${PV}.orig.tar.gz \
-"
-DEPENDS = "fuse virtual/libc"
-RRECOMMENDS_${PN} = "util-linux-mount"
-
-inherit autotools pkgconfig
-
-SRC_URI[md5sum] = "fca71e6598f79d037a3c7c969cb5710c"
-SRC_URI[sha256sum] = "f2e06eba5a21c621aac1d6da21b12a5a324fdd1e20f9c8acd357dd463c2355d9"
-
-S = "${WORKDIR}/${PN}-${PV}"
-EXTRA_OECONF += "sbindir=${base_sbindir}"
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
new file mode 100644
index 0000000000..ac18fe90fe
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/fuse-exfat/fuse-exfat_1.3.0.bb
@@ -0,0 +1,22 @@
+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/httpfs2-fuse/httpfs2_0.1.5.bb b/meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb
new file mode 100644
index 0000000000..5dc3ea6632
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/httpfs2-fuse/httpfs2_0.1.5.bb
@@ -0,0 +1,22 @@
+SUMMARY = "This is a filesystem client based on the HTTP using FUSE"
+HOMEPAGE = "http://httpfs.sourceforge.net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=83f224c5182f148ec92e0b9f84b3c6c7"
+
+inherit pkgconfig
+
+DEPENDS += "fuse"
+RDEPENDS:${PN} += "fuse"
+
+SRC_URI += "${SOURCEFORGE_MIRROR}/project/httpfs/httpfs2/httpfs2-${PV}.tar.gz"
+SRC_URI[sha256sum] = "01cb4bb38deb344f540da6f1464dc7edbdeb51213ad810b8c9c282c1e17e0fc1"
+
+S = "${WORKDIR}/httpfs2-${PV}"
+
+do_compile() {
+ oe_runmake -C ${S} httpfs2
+}
+
+do_install() {
+ install -Dm 0755 ${S}/httpfs2 ${D}${bindir}/httpfs2
+}
diff --git a/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb b/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb
deleted file mode 100644
index f0b58b9673..0000000000
--- a/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A fuse filesystem to access the contents of an iPhone or iPod Touch"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
-HOMEPAGE ="http://www.libimobiledevice.org/"
-
-DEPENDS = "fuse libimobiledevice"
-
-SRC_URI = " \
- http://www.libimobiledevice.org/downloads/ifuse-${PV}.tar.bz2 \
-"
-
-SRC_URI[md5sum] = "4152526b2ac3c505cb41797d997be14d"
-SRC_URI[sha256sum] = "47835c8afb72588b3202fe0b206d7ea37a68663d9aa4eaf73f0a4bcb6215fc05"
-
-inherit autotools pkgconfig
diff --git a/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.4.bb b/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.4.bb
new file mode 100644
index 0000000000..c9702eb93e
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/ifuse/ifuse_1.1.4.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A fuse filesystem to access the contents of an iPhone or iPod Touch"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
+HOMEPAGE ="http://www.libimobiledevice.org/"
+
+DEPENDS = "fuse libimobiledevice"
+
+SRC_URI = "https://github.com/libimobiledevice/ifuse/releases/download/${PV}/ifuse-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "cd31fbd0ea945b2ff1e39eac8d198fdd"
+SRC_URI[sha256sum] = "3550702ef94b2f5f16c7db91c6b3282b2aed1340665834a03e47458e09d98d87"
+
+inherit autotools pkgconfig
diff --git a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb
new file mode 100644
index 0000000000..c89b1e1362
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-base.bb
@@ -0,0 +1,7 @@
+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.bb b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image.bb
new file mode 100644
index 0000000000..ca21d2a0ed
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image.bb
@@ -0,0 +1,3 @@
+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/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch
new file mode 100644
index 0000000000..86bb0b53af
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs/0001-include-sys-sysmacros.h-for-major-minor-definition.patch
@@ -0,0 +1,24 @@
+From 3b02acbb3d5bc93422a6821ce47568633ef4ae5e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 15:09:24 -0700
+Subject: [PATCH] include sys/sysmacros.h for major/minor definition
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mkfs.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/mkfs.c b/mkfs.c
+index e612cbd..b6aa63d 100644
+--- a/mkfs.c
++++ b/mkfs.c
+@@ -21,6 +21,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
++#include <sys/sysmacros.h>
+ #define __USE_UNIX98
+ #include <unistd.h>
+ #include <zlib.h>
diff --git a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
index 1b4d97d762..7d0a83609e 100644
--- a/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
+++ b/meta-filesystems/recipes-filesystems/logfsprogs/logfsprogs_git.bb
@@ -7,13 +7,14 @@ LogFS is included in the mainline Linux kernel and was introduced in \
version 2.6.34, released on May 16, 2010."
HOMEPAGE = "https://github.com/prasad-joshi/logfsprogs"
SECTION = "base"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://fsck.c;md5=3859dc73da97909ff1d0125e88a27e02"
DEPENDS = "zlib"
-SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git \
+SRC_URI = "git://github.com/prasad-joshi/logfsprogs.git;branch=master;protocol=https \
file://0001-Add-LDFLAGS-to-linker-cmdline.patch \
file://0001-btree-Avoid-conflicts-with-libc-namespace-about-setk.patch \
+ file://0001-include-sys-sysmacros.h-for-major-minor-definition.patch \
"
SRCREV = "45b72c81ce3c6fa17ca19bafc207ea93e76312f4"
diff --git a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb b/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb
deleted file mode 100644
index addb4d3512..0000000000
--- a/meta-filesystems/recipes-filesystems/ntfs-3g-ntfsprogs/ntfs-3g-ntfsprogs_2017.3.23.bb
+++ /dev/null
@@ -1,44 +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 = "GPLv2 & LGPLv2"
-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[md5sum] = "d97474ae1954f772c6d2fa386a6f462c"
-SRC_URI[sha256sum] = "3e5a021d7b761261836dcb305370af299793eedbded731df3d6943802e1262d5"
-
-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 the symbolic to let mount could find ntfs.
- ln -sf mount.ntfs-3g ${D}/${base_sbindir}/mount.ntfs
- rmdir ${D}${libdir}/ntfs-3g
-}
-
-# Satisfy the -dev runtime dependency
-ALLOW_EMPTY_${PN} = "1"
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/owfs/owfs/0001-Add-build-rule-for-README.patch b/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch
new file mode 100644
index 0000000000..870d0ef056
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Add-build-rule-for-README.patch
@@ -0,0 +1,27 @@
+From dfeadd4eb43e829aafb0d10f611fa22ae81bfca4 Mon Sep 17 00:00:00 2001
+From: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+Date: Sun, 20 Oct 2019 17:00:45 +0900
+Subject: [PATCH] Add build rule for README.
+
+fix do_configure error:
+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/Makefile.am b/Makefile.am
+index e0c4ad6..0449321 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -35,3 +35,4 @@ rpmcvs: preparerpm
+ @LN_S@ -f `pwd`/@PACKAGE@-@VERSION@.tar.gz ${RPMDIR}/SOURCES/@PACKAGE@-@VERSION@_cvs_`date +"%Y%m%d"`.tar.gz
+ cd ${RPMDIR}/SPECS && @RPMBUILD@ -ba @PACKAGE@.spec --define 'cvs 1'
+
++README: README.md
+--
+2.7.4
+
diff --git a/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Fix-compilation-with-GCC10.patch b/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Fix-compilation-with-GCC10.patch
new file mode 100644
index 0000000000..6426ecb247
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/owfs/owfs/0001-Fix-compilation-with-GCC10.patch
@@ -0,0 +1,44 @@
+From a812202d22a2861318b8e39f1cd74cd222f8e76f Mon Sep 17 00:00:00 2001
+From: "Azamat H. Hackimov" <azamat.hackimov@gmail.com>
+Date: Tue, 9 Jun 2020 11:30:38 +0300
+Subject: [PATCH] Fix compilation with GCC10
+
+Fixed compilation with -fno-common, which enabled in GCC 10 by default.
+See https://bugs.gentoo.org/707438.
+
+Upstream-Status: Backport [https://github.com/owfs/owfs/pull/62]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ module/owserver/src/c/owserver.c | 2 ++
+ module/owserver/src/include/owserver.h | 2 +-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/module/owserver/src/c/owserver.c b/module/owserver/src/c/owserver.c
+index db29988e..2ed29161 100644
+--- a/module/owserver/src/c/owserver.c
++++ b/module/owserver/src/c/owserver.c
+@@ -36,6 +36,8 @@
+
+ #include "owserver.h"
+
++pthread_mutex_t persistence_mutex ;
++
+ /* --- Prototypes ------------ */
+ static void SetupAntiloop(int argc, char **argv);
+
+diff --git a/module/owserver/src/include/owserver.h b/module/owserver/src/include/owserver.h
+index 8be582f0..a257ed02 100644
+--- a/module/owserver/src/include/owserver.h
++++ b/module/owserver/src/include/owserver.h
+@@ -18,7 +18,7 @@
+ #include "ow.h"
+ #include "ow_connection.h"
+
+-pthread_mutex_t persistence_mutex ;
++extern pthread_mutex_t persistence_mutex ;
+ #define PERSISTENCELOCK _MUTEX_LOCK( persistence_mutex ) ;
+ #define PERSISTENCEUNLOCK _MUTEX_UNLOCK( persistence_mutex ) ;
+
+--
+2.28.0
+
diff --git a/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb b/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb
deleted file mode 100644
index 21fd7e93e2..0000000000
--- a/meta-filesystems/recipes-filesystems/owfs/owfs_2.9p1.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-SUMMARY = "1-Wire file system"
-DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim"
-HOMEPAGE = "http://www.owfs.org/"
-SECTION = "console/network"
-
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a0bc427f423a41220ab79a0b392218bd \
- file://COPYING.LIB;md5=865c4bd642d9e04f43925ad7e929ae87"
-
-DEPENDS = "fuse virtual/libusb0"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/owfs/owfs-${PV}.tar.gz \
- file://owhttpd \
- file://owserver "
-SRC_URI[md5sum] = "56ba145be208002e58775a7203369851"
-SRC_URI[sha256sum] = "9d22dbff72d235476688c02669f7171b23e21dffadf40bbdd3b8263908218424"
-
-inherit autotools-brokensep update-rc.d
-
-EXTRA_OECONF = " \
- --with-fuseinclude=${STAGING_INCDIR} \
- --with-fuselib=${STAGING_LIBDIR} \
- --enable-owfs \
- --enable-owhttpd \
- --enable-w1 \
- --disable-swig \
- --disable-owtcl \
- --disable-owphp \
- --disable-owpython \
- --disable-owperl \
-"
-
-do_install_prepend() {
- install -d ${D}${sysconfdir}/default/
- install -d ${D}${sysconfdir}/init.d/
- install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd
- install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver
-}
-
-PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap"
-
-DESCRIPTION_owftpd = "Anoymous FTP server for 1-wire access"
-DESCRIPTION_owhttpd = "Tiny webserver for 1-wire control"
-DESCRIPTION_owserver = "Backend server (daemon) for 1-wire control"
-DESCRIPTION_owshell = "owdir owread owwrite owpresent owget - lightweight owserver access"
-DESCRIPTION_libowcapi = "easy C-language 1-wire interface "
-DESCRIPTION_libow = "easy C-language 1-wire interface to the owserver protocol"
-DESCRIPTION_libownet = "easy C-language 1-wire interface to the owserver protocol"
-DESCRIPTION_owmon = "Monitor for owserver settings and statistics"
-DESCRIPTION_owtap = "Packet sniffer for the owserver protocol"
-
-FILES_owftpd = "${bindir}/owftpd"
-FILES_owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd"
-FILES_owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver"
-FILES_owshell = "${bindir}/owread ${bindir}/owwrite \
- ${bindir}/owdir ${bindir}/owpresent \
- ${bindir}/owget ${bindir}/owside"
-FILES_owmon = "${bindir}/owmon"
-FILES_owtap = "${bindir}/owtap"
-FILES_libowcapi = "${libdir}/libowcapi-*"
-FILES_libow = "${libdir}/libow-*"
-FILES_libownet = "${libdir}/libownet-*"
-
-INITSCRIPT_PACKAGES = "owhttpd owserver"
-INITSCRIPT_NAME_owserver = "owserver"
-INITSCRIPT_NAME_owhttpd = "owhttpd"
-INITSCRIPT_PARAMS_owserver = "defaults 20"
-INITSCRIPT_PARAMS_owhttpd = "defaults 21"
diff --git a/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb b/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb
new file mode 100644
index 0000000000..b641e4c24e
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/owfs/owfs_3.2p3.bb
@@ -0,0 +1,81 @@
+SUMMARY = "1-Wire file system"
+DESCRIPTION = "OWFS is an easy way to use the powerful 1-wire system of Dallas/Maxim"
+HOMEPAGE = "http://www.owfs.org/"
+SECTION = "console/network"
+
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=628b867016631792781a8735a04760e5 \
+ file://COPYING.LIB;md5=9021b7435efdd9fb22beef8291134099"
+
+DEPENDS = "fuse virtual/libusb0"
+# v3.2p3
+SRCREV = "3744375dfaa350e31c9b360eb1e1a517bbeb5c47"
+SRC_URI = "git://github.com/owfs/owfs;branch=master;protocol=https \
+ file://0001-Add-build-rule-for-README.patch \
+ file://0001-Fix-compilation-with-GCC10.patch \
+ file://owhttpd \
+ file://owserver \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep update-rc.d pkgconfig systemd
+
+EXTRA_OECONF = " \
+ --with-fuseinclude=${STAGING_INCDIR} \
+ --with-fuselib=${STAGING_LIBDIR} \
+ --enable-owfs \
+ --enable-owhttpd \
+ --enable-w1 \
+ --disable-swig \
+ --disable-owtcl \
+ --disable-owphp \
+ --disable-owpython \
+ --disable-owperl \
+"
+
+do_install:prepend() {
+ install -d ${D}${sysconfdir}/default/
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${WORKDIR}/owhttpd ${D}${sysconfdir}/init.d/owhttpd
+ install -m 0755 ${WORKDIR}/owserver ${D}${sysconfdir}/init.d/owserver
+}
+
+PACKAGES =+ "owftpd owhttpd owserver owshell libowcapi libow libownet owmon owtap"
+
+DESCRIPTION:owftpd = "Anoymous FTP server for 1-wire access"
+DESCRIPTION:owhttpd = "Tiny webserver for 1-wire control"
+DESCRIPTION:owserver = "Backend server (daemon) for 1-wire control"
+DESCRIPTION:owshell = "owdir owread owwrite owpresent owget - lightweight owserver access"
+DESCRIPTION:libowcapi = "easy C-language 1-wire interface "
+DESCRIPTION:libow = "easy C-language 1-wire interface to the owserver protocol"
+DESCRIPTION:libownet = "easy C-language 1-wire interface to the owserver protocol"
+DESCRIPTION:owmon = "Monitor for owserver settings and statistics"
+DESCRIPTION:owtap = "Packet sniffer for the owserver protocol"
+
+FILES:owftpd = "${bindir}/owftpd ${systemd_system_unitdir}/owftpd.service"
+FILES:owhttpd = "${bindir}/owhttpd ${sysconfdir}/init.d/owhttpd \
+ ${systemd_system_unitdir}/owhttpd.service"
+FILES:owserver = "${bindir}/owserver ${sysconfdir}/init.d/owserver \
+ ${systemd_system_unitdir}/owserver.service \
+ ${systemd_system_unitdir}/owserver.socket"
+FILES:owshell = "${bindir}/owread ${bindir}/owwrite \
+ ${bindir}/owdir ${bindir}/owpresent \
+ ${bindir}/owget ${bindir}/owside"
+FILES:owmon = "${bindir}/owmon"
+FILES:owtap = "${bindir}/owtap"
+FILES:libowcapi = "${libdir}/libowcapi-*"
+FILES:libow = "${libdir}/libow-*"
+FILES:libownet = "${libdir}/libownet-*"
+FILES:${PN} += "${systemd_system_unitdir}/owfs.service"
+
+INITSCRIPT_PACKAGES = "owhttpd owserver"
+INITSCRIPT_NAME:owserver = "owserver"
+INITSCRIPT_NAME:owhttpd = "owhttpd"
+INITSCRIPT_PARAMS:owserver = "defaults 20"
+INITSCRIPT_PARAMS:owhttpd = "defaults 21"
+
+SYSTEMD_SERVICE:${PN} = "owfs.service"
+SYSTEMD_SERVICE:${PN}-owftpd = "owftpd.service"
+SYSTEMD_SERVICE:${PN}-owhttpd = "owhttpd.service"
+SYSTEMD_SERVICE:${PN}-owserver = "owserver.service owserver.socket"
diff --git a/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb b/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
new file mode 100644
index 0000000000..361972a45b
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/packageconfigs/packagegroup-meta-filesystems.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Meta-filesystem packagegroups"
+
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+ packagegroup-meta-filesystems \
+ packagegroup-meta-filesystems-support \
+ packagegroup-meta-filesystems-utls \
+'
+
+RDEPENDS:packagegroup-meta-filesystems = "\
+ packagegroup-meta-filesystems \
+ packagegroup-meta-filesystems-support \
+ packagegroup-meta-filesystems-utls \
+"
+
+RDEPENDS:packagegroup-meta-filesystems = "\
+ ifuse \
+ libisofs \
+ libburn \
+ libisoburn \
+ logfsprogs \
+ fuse-exfat \
+ owfs \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "smbnetfs", "", d)} \
+ simple-mtpfs \
+ yaffs2-utils \
+ ntfs-3g-ntfsprogs \
+ httpfs2 \
+ unionfs-fuse \
+ sshfs-fuse \
+"
+
+RDEPENDS:packagegroup-meta-filesystems-support = "\
+ fuse3 \
+ fuse \
+ physfs \
+"
+
+RDEPENDS:packagegroup-meta-filesystems-utils = "\
+ aufs-util \
+ exfat-utils \
+ fatcat \
+ xfsdump \
+ f2fs-tools \
+ fatresize \
+ udevil \
+ ufs-utils \
+ xfsprogs \
+ xorriso \
+"
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_0.4.0.bb b/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_0.4.0.bb
new file mode 100644
index 0000000000..b8399265cd
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_0.4.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB"
+HOMEPAGE = "https://github.com/phatina/simple-mtpfs"
+BUGTRACKER = "19e7bb9b608b0c0dce2ee6f56fac75901bc69529"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+DEPENDS = "fuse libmtp autoconf-archive"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master"
+SRCREV = "19e7bb9b608b0c0dce2ee6f56fac75901bc69529"
+
+S = "${WORKDIR}/git"
diff --git a/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb b/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
deleted file mode 100644
index f85977fd59..0000000000
--- a/meta-filesystems/recipes-filesystems/simple-mtpfs/simple-mtpfs_git.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "SIMPLE-MTPFS is a FUSE based filsystem for MTP devices connected via USB"
-HOMEPAGE = "https://github.com/phatina/simple-mtpfs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
-
-DEPENDS = "fuse libmtp"
-
-inherit autotools pkgconfig
-
-SRC_URI = "git://github.com/phatina/simple-mtpfs.git;protocol=https;branch=master"
-SRCREV = "a7ab64c7e4d7aca155cbc7ce9412aaf68ef6e404"
-
-S = "${WORKDIR}/git"
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 55275669b1..d5e9040b9a 100644
--- a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch
+++ b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs/configure.patch
@@ -1,9 +1,9 @@
-Index: git/configure.in
-===================================================================
---- git.orig/configure.ac 2014-06-18 16:06:16.040721349 +0000
-+++ git/configure.ac 2014-07-18 07:49:17.085552256 +0000
+Upstream-Status: Pending
+
+--- a/configure.ac
++++ b/configure.ac
@@ -1,5 +1,5 @@
- AC_INIT([SMBNetFS],[0.6.1])
+ AC_INIT([SMBNetFS],[0.6.3])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_HEADERS([src/config.h])
diff --git a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
index c72936c087..2d9eab1dd5 100644
--- a/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
+++ b/meta-filesystems/recipes-filesystems/smbnetfs/smbnetfs_git.bb
@@ -4,22 +4,21 @@ DESCRIPTION = "SMBNetFS is a Linux/FreeBSD filesystem that allow you to use \
neighborhood in Microsoft Windows. Please donate me to help \
in SMBNetFS development."
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
HOMEPAGE ="http://sourceforge.net/projects/smbnetfs"
DEPENDS = "fuse samba"
-DEPENDS_append_libc-musl = " libexecinfo"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+inherit autotools pkgconfig features_check
# samba depends on libpam
-inherit distro_features_check
REQUIRED_DISTRO_FEATURES = "pam"
-inherit autotools gitpkgv pkgconfig
-
-PKGV = "${GITPKGVTAG}"
+PV = "0.6.3"
-SRCREV = "bc6b94b015fdaf7c4dab56ccb996eecea8bc4373"
+SRCREV = "736d5e599df3bebce3450125118ac2e70358b0c9"
SRC_URI = "git://smbnetfs.git.sourceforge.net/gitroot/smbnetfs/smbnetfs;branch=master \
file://configure.patch \
@@ -30,4 +29,4 @@ PACKAGECONFIG[libsecret] = "--with-libsecret=yes,--with-libsecret=no,libsecret"
S = "${WORKDIR}/git"
-LDFLAGS_append_libc-musl = " -lexecinfo"
+LDFLAGS:append:libc-musl = " -lexecinfo"
diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch b/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch
deleted file mode 100644
index c434a03f0f..0000000000
--- a/meta-filesystems/recipes-filesystems/sshfs-fuse/files/0001-Makefile-fix-path-for-sshfs.1.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e3cd445a4ee44a16faa646d7b642d02eea62b1f8 Mon Sep 17 00:00:00 2001
-From: Zoltan Kuscsik <zoltan.kuscsik@linaro.org>
-Date: Fri, 1 Jul 2016 09:30:31 +0200
-Subject: [PATCH] Makefile: fix path for sshfs.1
-
-Fix source path when build directory differs
-from the source dir.
-
-Upstream-Status: Accepted
-
-https://github.com/libfuse/sshfs/pull/24
-
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index f003bae..3d8f9cb 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -24,7 +24,7 @@ sshfs.1: sshfs.1.in
- $(AM_V_GEN)sed \
- -e 's,__IDMAP_DEFAULT__,$(IDMAP_DEFAULT),g' \
- -e 's,__UNMOUNT_COMMAND__,$(UNMOUNT_COMMAND),g' \
-- <sshfs.1.in >sshfs.1.tmp || exit 1; \
-+ <$(srcdir)/sshfs.1.in >sshfs.1.tmp || exit 1; \
- mv sshfs.1.tmp sshfs.1
-
- if SSH_NODELAY_SO
---
-1.9.1
-
diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/run-ptest b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb
deleted file mode 100644
index 64ccdace18..0000000000
--- a/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_2.8.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "This is a filesystem client based on the SSH File Transfer Protocol using FUSE"
-AUTHOR = "Miklos Szeredi <miklos@szeredi.hu>"
-HOMEPAGE = "http://fuse.sourceforge.net/sshfs.html"
-SECTION = "console/network"
-LICENSE = "GPLv2"
-DEPENDS = "glib-2.0 fuse"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/libfuse/sshfs;tag=b2fa7593586b141298e6159f40f521d2b0f4f894 \
- file://0001-Makefile-fix-path-for-sshfs.1.patch"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-FILES_${PN} += "${libdir}/sshnodelay.so"
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
new file mode 100644
index 0000000000..f91e682d24
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/sshfs-fuse/sshfs-fuse_3.7.3.bb
@@ -0,0 +1,27 @@
+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"
+SRCREV = "c91eb9a9a992f1a36c49a8e6f1146e45b5e1c8e7"
+S = "${WORKDIR}/git"
+
+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
+ cp -rf ${S}/test/* ${D}${PTEST_PATH}/test/
+}
diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch b/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch
deleted file mode 100644
index 8f991cd3f7..0000000000
--- a/meta-filesystems/recipes-filesystems/unionfs-fuse/files/0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 10411fa8658621822ae394160daffaced4a4cd7f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:07:29 -0700
-Subject: [PATCH] unionfs: Define IOCPARM_LEN if undefined
-
-musl does not have sysctl.h which defines this
-for glibc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/unionfs.c | 8 --------
- src/unionfs.h | 15 +++++++++++++++
- 2 files changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/src/unionfs.c b/src/unionfs.c
-index a34d34e..51684a7 100644
---- a/src/unionfs.c
-+++ b/src/unionfs.c
-@@ -21,14 +21,6 @@
- #include "opts.h"
- #include "usyslog.h"
-
--#ifndef _IOC_SIZE
--#ifdef IOCPARM_LEN
--#define _IOC_SIZE(x) IOCPARM_LEN(x)
--#else
--#error "No mechanism for determining ioctl length found."
--#endif
--#endif
--
- static struct fuse_opt unionfs_opts[] = {
- FUSE_OPT_KEY("chroot=%s,", KEY_CHROOT),
- FUSE_OPT_KEY("cow", KEY_COW),
-diff --git a/src/unionfs.h b/src/unionfs.h
-index 8f5e0bf..b02de5a 100644
---- a/src/unionfs.h
-+++ b/src/unionfs.h
-@@ -17,6 +17,21 @@
- #define FUSE_META_FILE ".fuse_hidden"
- #define FUSE_META_LENGTH 12
-
-+#ifndef IOCPARM_MASK
-+#define IOCPARM_MASK 0x1FFF
-+#endif
-+#ifndef IOCPARM_LEN
-+#define IOCPARM_LEN(a) (((a) >> 16) & IOCPARM_MASK)
-+#endif
-+
-+#ifndef _IOC_SIZE
-+#ifdef IOCPARM_LEN
-+#define _IOC_SIZE(x) IOCPARM_LEN(x)
-+#else
-+#error "No mechanism for determining ioctl length found."
-+#endif
-+#endif
-+
- // file access protection mask
- #define S_PROT_MASK (S_ISUID| S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO)
-
---
-2.13.2
-
diff --git a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb
deleted file mode 100644
index 6bedf16b09..0000000000
--- a/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.0.bb
+++ /dev/null
@@ -1,19 +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 \
- file://0001-support-cross-compiling.patch \
- file://0001-unionfs-Define-IOCPARM_LEN-if-undefined.patch \
- "
-SRCREV = "c8d23a9a75f1a62988593671839e8a168a79f3e5"
-
-DEPENDS = "fuse"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
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
new file mode 100644
index 0000000000..03ae418a49
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
@@ -0,0 +1,18 @@
+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/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_git.bb b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
index 317965ede8..6bf321e237 100644
--- a/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
+++ b/meta-filesystems/recipes-filesystems/yaffs2/yaffs2-utils_git.bb
@@ -4,8 +4,10 @@ DESCRIPTION = "Tools for managing 'yaffs2' file systems."
SECTION = "base"
HOMEPAGE = "http://www.yaffs.net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=12;endline=14;md5=5f5464f9b3e981ca574e65b00e438561"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://utils/mkyaffs2image.c;beginline=11;endline=13;md5=5f5464f9b3e981ca574e65b00e438561 \
+ file://utils/mkyaffsimage.c;beginline=10;endline=12;md5=5f5464f9b3e981ca574e65b00e438561 \
+ "
PV = "0.0+git${SRCPV}"
@@ -17,13 +19,13 @@ SRC_URI = "git://www.aleph1.co.uk/yaffs2;protocol=git;branch=master \
file://0001-define-loff_t-if-not-already-defined.patch \
"
-SRCREV = "bc76682d93955cfb33051beb503ad9f8a5450578"
+SRCREV = "9a6f486e56f927eeb8dc7e4e0d84f6bb95eeaa0f"
UPSTREAM_CHECK_COMMITS = "1"
S = "${WORKDIR}/git"
-CFLAGS_append = " -I.. -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES"
+CFLAGS:append = " -I.. -DCONFIG_YAFFS_UTIL -DCONFIG_YAFFS_DEFINES_TYPES"
EXTRA_OEMAKE = "-e MAKEFLAGS="
do_compile() {
@@ -41,3 +43,9 @@ do_install() {
}
BBCLASSEXTEND = "native"
+
+# Fixed make clean error:
+#make -C /lib/modules/4.4.0-112-generic/build M=<snip>
+#make: *** /lib/modules/4.4.0-112-generic/build: No such file or directory. Stop.
+#make: *** [clean] Error 2
+CLEANBROKEN = "1"
diff --git a/meta-filesystems/recipes-filesystems/zfs/zfs/0001-Define-strndupa-if-it-does-not-exist.patch b/meta-filesystems/recipes-filesystems/zfs/zfs/0001-Define-strndupa-if-it-does-not-exist.patch
new file mode 100644
index 0000000000..80955b3ca0
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/zfs/zfs/0001-Define-strndupa-if-it-does-not-exist.patch
@@ -0,0 +1,34 @@
+From cc0cd6f71f6ef96fca2d7b730a3f0f6722fec696 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 7 May 2022 12:15:22 -0700
+Subject: [PATCH] Define strndupa if it does not exist
+
+musl e.g. does not supply strndupa, unlike glibc
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ etc/systemd/system-generators/zfs-mount-generator.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/etc/systemd/system-generators/zfs-mount-generator.c b/etc/systemd/system-generators/zfs-mount-generator.c
+index f4c6c26..255bee4 100644
+--- a/etc/systemd/system-generators/zfs-mount-generator.c
++++ b/etc/systemd/system-generators/zfs-mount-generator.c
+@@ -193,6 +193,15 @@ fopenat(int dirfd, const char *pathname, int flags,
+ return (fdopen(fd, stream_mode));
+ }
+
++#ifndef strndupa
++#define strndupa(s, n) \
++ (__extension__ ({const char *__in = (s); \
++ size_t __len = strnlen (__in, (n)) + 1; \
++ char *__out = (char *) alloca (__len); \
++ __out[__len-1] = '\0'; \
++ (char *) memcpy (__out, __in, __len-1);}))
++#endif
++
+ static int
+ line_worker(char *line, const char *cachefile)
+ {
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.2.0.bb b/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.bb
new file mode 100644
index 0000000000..a62a8a39b1
--- /dev/null
+++ b/meta-filesystems/recipes-filesystems/zfs/zfs_2.2.0.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 = "009d3288dea524c7ad373b04b65bee8bb6f0bfea"
+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
+
+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/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
new file mode 100644
index 0000000000..7b548b4cde
--- /dev/null
+++ b/meta-filesystems/recipes-support/fuse/files/fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch
@@ -0,0 +1,53 @@
+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
+ glibc-2.34+)
+
+closefrom(3) has joined us in glibc-land from *BSD and Solaris. Since
+it's available in glibc 2.34+, we want to detect it and only define our
+fallback if the libc doesn't provide it.
+
+Bug: https://bugs.gentoo.org/803923
+Signed-off-by: Sam James <sam@gentoo.org>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,6 +55,7 @@ fi
+
+ AC_CHECK_FUNCS([fork setxattr fdatasync splice vmsplice utimensat])
+ AC_CHECK_FUNCS([posix_fallocate])
++AC_CHECK_FUNCS([closefrom])
+ AC_CHECK_MEMBERS([struct stat.st_atim])
+ AC_CHECK_MEMBERS([struct stat.st_atimespec])
+
+--- a/util/ulockmgr_server.c
++++ b/util/ulockmgr_server.c
+@@ -22,6 +22,10 @@
+ #include <sys/socket.h>
+ #include <sys/wait.h>
+
++#ifdef HAVE_CONFIG_H
++ #include "config.h"
++#endif
++
+ struct message {
+ unsigned intr : 1;
+ unsigned nofd : 1;
+@@ -124,6 +128,7 @@ static int receive_message(int sock, voi
+ return res;
+ }
+
++#if !defined(HAVE_CLOSEFROM)
+ static int closefrom(int minfd)
+ {
+ DIR *dir = opendir("/proc/self/fd");
+@@ -141,6 +146,7 @@ static int closefrom(int minfd)
+ }
+ return 0;
+ }
++#endif
+
+ static void send_reply(int cfd, struct message *msg)
+ {
diff --git a/meta-filesystems/recipes-support/fuse/fuse3/run-ptest b/meta-filesystems/recipes-support/fuse/fuse3/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-filesystems/recipes-support/fuse/fuse3/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-filesystems/recipes-support/fuse/fuse3_3.14.1.bb b/meta-filesystems/recipes-support/fuse/fuse3_3.14.1.bb
new file mode 100644
index 0000000000..c8a820a09d
--- /dev/null
+++ b/meta-filesystems/recipes-support/fuse/fuse3_3.14.1.bb
@@ -0,0 +1,80 @@
+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] = "126919d72b46b3e0eb58a9c6933a2a50c36f2ea69f61fe9e78bdba9f463ffa20"
+
+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/fuse_2.9.7.bb b/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
deleted file mode 100644
index 2996319008..0000000000
--- a/meta-filesystems/recipes-support/fuse/fuse_2.9.7.bb
+++ /dev/null
@@ -1,71 +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 = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.gz \
- file://gold-unversioned-symbol.patch \
- file://aarch64.patch \
- file://0001-fuse-fix-the-return-value-of-help-option.patch \
- file://fuse.conf \
-"
-SRC_URI[md5sum] = "9bd4ce8184745fd3d000ca2692adacdb"
-SRC_URI[sha256sum] = "832432d1ad4f833c20e13b57cf40ce5277a9d33e483205fc63c78111b3358874"
-
-UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
-
-inherit autotools pkgconfig update-rc.d systemd
-
-INITSCRIPT_NAME = "fuse"
-INITSCRIPT_PARAMS = "start 3 S . stop 20 0 6 ."
-
-SYSTEMD_SERVICE_${PN} = ""
-
-DEPENDS = "gettext-native"
-
-PACKAGES =+ "fuse-utils-dbg fuse-utils libulockmgr libulockmgr-dev libulockmgr-dbg"
-
-RRECOMMENDS_${PN}_class-target = "kernel-module-fuse libulockmgr fuse-utils"
-
-FILES_${PN} += "${libdir}/libfuse.so.*"
-FILES_${PN}-dev += "${libdir}/libfuse*.la"
-
-FILES_libulockmgr = "${libdir}/libulockmgr.so.*"
-FILES_libulockmgr-dev += "${libdir}/libulock*.la"
-FILES_libulockmgr-dbg += "${libdir}/.debug/libulock*"
-
-# Forbid auto-renaming to libfuse-utils
-FILES_fuse-utils = "${bindir} ${base_sbindir}"
-FILES_fuse-utils-dbg = "${bindir}/.debug ${base_sbindir}/.debug"
-DEBIAN_NOAUTONAME_fuse-utils = "1"
-DEBIAN_NOAUTONAME_fuse-utils-dbg = "1"
-
-do_configure_prepend() {
- # Make this explicit so overriding base_sbindir propagates properly.
- export MOUNT_FUSE_PATH="${base_sbindir}"
-}
-
-do_install_append() {
- rm -rf ${D}${base_prefix}/dev
-
- # systemd class remove the sysv_initddir only if systemd_system_unitdir
- # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then
- rm -rf ${D}${sysconfdir}/init.d/
- fi
-
- # Install systemd related configuration file
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/modules-load.d
- install -m 0644 ${WORKDIR}/fuse.conf ${D}${sysconfdir}/modules-load.d
- fi
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb b/meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb
new file mode 100644
index 0000000000..cee4879eee
--- /dev/null
+++ b/meta-filesystems/recipes-support/fuse/fuse_2.9.9.bb
@@ -0,0 +1,81 @@
+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://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "https://github.com/libfuse/libfuse/releases/download/${BP}/${BP}.tar.gz \
+ file://gold-unversioned-symbol.patch \
+ file://aarch64.patch \
+ file://0001-fuse-fix-the-return-value-of-help-option.patch \
+ file://fuse2-0007-util-ulockmgr_server.c-conditionally-define-closefro.patch \
+ file://fuse.conf \
+"
+SRC_URI[md5sum] = "8000410aadc9231fd48495f7642f3312"
+SRC_URI[sha256sum] = "d0e69d5d608cc22ff4843791ad097f554dd32540ddc9bed7638cc6fea7c1b4b5"
+
+UPSTREAM_CHECK_URI = "https://github.com/libfuse/libfuse/releases"
+UPSTREAM_CHECK_REGEX = "fuse\-(?P<pver>2(\.\d+)+).tar.gz"
+
+CVE_PRODUCT = "fuse_project:fuse"
+
+inherit autotools pkgconfig update-rc.d systemd
+
+INITSCRIPT_NAME = "fuse"
+INITSCRIPT_PARAMS = "start 3 S . stop 20 0 6 ."
+
+SYSTEMD_SERVICE:${PN} = ""
+
+DEPENDS = "gettext-native"
+
+PACKAGES =+ "fuse-utils libulockmgr libulockmgr-dev"
+
+RPROVIDES:${PN}-dbg += "fuse-utils-dbg libulockmgr-dbg"
+
+RRECOMMENDS:${PN}:class-target = "kernel-module-fuse libulockmgr fuse-utils"
+
+FILES:${PN} += "${libdir}/libfuse.so.*"
+FILES:${PN}-dev += "${libdir}/libfuse*.la"
+
+FILES:libulockmgr = "${libdir}/libulockmgr.so.*"
+FILES:libulockmgr-dev += "${libdir}/libulock*.la"
+
+# Forbid auto-renaming to libfuse-utils
+FILES:fuse-utils = "${bindir} ${base_sbindir}"
+DEBIAN_NOAUTONAME:fuse-utils = "1"
+DEBIAN_NOAUTONAME:${PN}-dbg = "1"
+
+do_configure:prepend() {
+ # Make this explicit so overriding base_sbindir propagates properly.
+ export MOUNT_FUSE_PATH="${base_sbindir}"
+}
+
+do_install:append() {
+ rm -rf ${D}/dev
+
+ # systemd class remove the sysv_initddir only if systemd_system_unitdir
+ # contains anything, but it's not needed if sysvinit is not in DISTRO_FEATURES
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'false', 'true', d)}; then
+ rm -rf ${D}${sysconfdir}/init.d/
+ fi
+
+ # Install systemd related configuration file
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/modules-load.d
+ install -m 0644 ${WORKDIR}/fuse.conf ${D}${sysconfdir}/modules-load.d
+ fi
+}
+
+do_install:append:class-nativesdk() {
+ install -d ${D}${sysconfdir}
+ mv ${D}/etc/* ${D}${sysconfdir}/
+ rmdir ${D}/etc
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb b/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb
deleted file mode 100644
index cc97dead56..0000000000
--- a/meta-filesystems/recipes-support/physfs/physfs_3.0.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "PhysicsFS is a library to provide abstract access to various archives"
-HOMEAPAGE = "http://icculus.org/physfs"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2668e2fb051c3e564198e146a9a2d9f0"
-DEPENDS = "readline zlib"
-
-inherit cmake
-
-PE = "1"
-
-SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2"
-SRC_URI[md5sum] = "359f102bcbd62accf84ef32f4863255d"
-SRC_URI[sha256sum] = "b77b9f853168d9636a44f75fca372b363106f52d789d18a2f776397bf117f2f1"
diff --git a/meta-filesystems/recipes-support/physfs/physfs_3.0.2.bb b/meta-filesystems/recipes-support/physfs/physfs_3.0.2.bb
new file mode 100644
index 0000000000..57cfdcdf82
--- /dev/null
+++ b/meta-filesystems/recipes-support/physfs/physfs_3.0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "PhysicsFS is a library to provide abstract access to various archives"
+HOMEPAGE = "http://icculus.org/physfs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=96801882d1120239dcafbf888e821a6e"
+DEPENDS = "readline zlib"
+
+inherit cmake
+
+PE = "1"
+
+SRC_URI = "http://icculus.org/${BPN}/downloads/${BP}.tar.bz2"
+SRC_URI[md5sum] = "dc751294aaf59d1359bbe34e693d1d87"
+SRC_URI[sha256sum] = "304df76206d633df5360e738b138c94e82ccf086e50ba84f456d3f8432f9f863"
+
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
diff --git a/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch b/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch
deleted file mode 100644
index 6732dc42e3..0000000000
--- a/meta-filesystems/recipes-utils/aufs-util/aufs-util/0001-libau-Define-STRIP-weakly.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From daf04dc9ca1f2e4c65ec338ab439e0a792e1a8ac Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 5 Sep 2017 10:36:52 -0700
-Subject: [PATCH] libau: Define STRIP weakly
-
-STRIP can be set on environment to use cross version of strip utility
-hardcoding to strip is not working in cross environment
-
-Upstream-Status: Submitted
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- libau/Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libau/Makefile b/libau/Makefile
-index 81520ac..c25eef2 100644
---- a/libau/Makefile
-+++ b/libau/Makefile
-@@ -25,6 +25,7 @@ LibSoHdr = libau.h rdu.h
- LibSoExport = $(addsuffix .exp, $(basename ${LibSoObj}))
- LibSoExportErr = $(addsuffix .err, ${LibSoExport})
- LibSoVerScript = verscript
-+STRIP ?= strip
-
- all: ${LibSo}
-
-@@ -77,7 +78,7 @@ ${LibSo}.${LibSoMajor}.${LibSoMinor}: ${LibSoObj}
- ${CC} --shared -Wl,-soname,${LibSo}.${LibSoMajor} \
- -Wl,--version-script,${LibSoVerScript} \
- ${LDFLAGS} -o $@ $^ ${LDLIBS}
-- strip -R EXP $@
-+ ${STRIP} -R EXP $@
- # readelf --syms --use-dynamic libau.so
-
- install_ulib: File = ${LibSo}.${LibSoMajor}.${LibSoMinor}
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 64eb94064c..fbf7753b02 100644
--- a/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
+++ b/meta-filesystems/recipes-utils/aufs-util/aufs-util_git.bb
@@ -1,43 +1,43 @@
SUMMARY = "Tools for managing AUFS mounts"
SECTION = "base"
HOMEPAGE = "http://aufs.sourceforge.net/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
DEPENDS = "coreutils-native aufs-util-native"
-DEPENDS_class-native = ""
+DEPENDS:class-native = ""
-SRCREV = "89afb1806c3d2eed8db2666ae254b77518ae3ceb"
-SRC_URI = "git://git.code.sf.net/p/aufs/aufs-util;protocol=git;branch=aufs4.4 \
- https://raw.githubusercontent.com/sfjro/aufs4-linux/aufs4.4/include/uapi/linux/aufs_type.h;name=aufs_type \
+SRCREV = "8f35db59ef83078f87879ec2828e0bb45719e0ef"
+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-Define-STRIP-weakly.patch \
+ file://0001-libau-Do-not-build-LFS-version-of-readdir.patch \
"
-SRC_URI[aufs_type.md5sum] = "f7b4a255dcb55fe7b0967f5f59b44f19"
-SRC_URI[aufs_type.sha256sum] = "85bc8e4c1a94a7d526c382e4b047b4256cab8c4a65fc0396291707ad9a327a18"
+SRC_URI[aufs_type.md5sum] = "b37129ef0703de72a852db7e48bdedc6"
+SRC_URI[aufs_type.sha256sum] = "7ff6566adb9c7a3b6862cdc85a690ab546f1d0bc81ddd595fd663c0a69031683"
UPSTREAM_CHECK_COMMITS = "1"
-PV = "4.4+git${SRCPV}"
+PV = "4.9+git${SRCPV}"
S = "${WORKDIR}/git"
export HOSTCC = "${BUILD_CC}"
-do_configure_prepend() {
+do_configure:prepend() {
# Replace sbin,bin paths with bitbake environment
sed -i -e 's;install_sbin: Tgt = ${DESTDIR}/sbin;install_sbin: Tgt = ${DESTDIR}/${base_sbindir};' \
-e 's;install_ubin: Tgt = ${DESTDIR}/usr/sbin;install_sbin: Tgt = ${DESTDIR}/${bindir};' \
${S}/Makefile
}
-do_configure_append () {
+do_configure:append () {
install -d ${S}/include/linux/
cp ${WORKDIR}/aufs_type.h ${S}/include/linux/
sed -i -e 's;__user;;' ${S}/include/linux/aufs_type.h
}
-do_configure_append_class-target () {
+do_configure:append:class-target () {
for i in ver c2sh c2tmac; do
cp ${STAGING_BINDIR_NATIVE}/aufs-util-${PV}/$i ${B}
done
@@ -47,7 +47,7 @@ do_compile () {
oe_runmake CPPFLAGS="-I${S}/include -I${S}/libau"
}
-do_compile_class-native () {
+do_compile:class-native () {
oe_runmake tools CPPFLAGS="-I${S}/include -I${S}/libau" CC="${BUILD_CC}"
}
@@ -55,13 +55,13 @@ do_install () {
oe_runmake 'DESTDIR=${D}' install_sbin install_ubin install_etc
}
-do_install_class-native () {
+do_install:class-native () {
install -d ${D}${bindir}/aufs-util-${PV}
for i in ver c2sh c2tmac; do
install -m 755 $i ${D}${bindir}/aufs-util-${PV}/$i
done
}
-RRECOMMENDS_${PN} += "kernel-module-aufs"
+RRECOMMENDS:${PN}:class-target += "kernel-module-aufs"
BBCLASSEXTEND = "native"
diff --git a/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb b/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
new file mode 100644
index 0000000000..5761844f81
--- /dev/null
+++ b/meta-filesystems/recipes-utils/btrfsmaintenance/btrfsmaintenance_0.5.bb
@@ -0,0 +1,62 @@
+
+SUMMARY = "Services for periodic btrfs maintenance tasks"
+DESCRIPTION = "A set of scripts supplementing the btrfs filesystem and aims \
+ to automate a few maintenance tasks. This means the scrub, balance, trim \
+ or defragmentation."
+HOMEPAGE = "https://github.com/kdave/btrfsmaintenance"
+LICENSE = "GPL-2.0-only"
+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 \
+"
+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"
+
+inherit allarch
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -Dm0644 ${S}/btrfsmaintenance-refresh.path \
+ ${D}${systemd_system_unitdir}/btrfsmaintenance-refresh.path
+ install -Dm0644 ${S}/*.timer \
+ ${D}${systemd_system_unitdir}
+ install -Dm0644 ${S}/*.service \
+ ${D}${systemd_system_unitdir}
+
+ install -Dm0644 ${S}/btrfsmaintenance-functions \
+ ${D}${datadir}/${BPN}/btrfsmaintenance-functions
+ install -Dm0755 ${S}/*.sh \
+ ${D}${datadir}/${BPN}
+
+ install -Dm0644 ${S}/sysconfig.btrfsmaintenance \
+ ${D}${sysconfdir}/default/btrfsmaintenance
+}
+
+inherit systemd
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = " \
+ btrfs-scrub.timer \
+ btrfs-scrub.service \
+ btrfs-trim.timer \
+ btrfs-trim.service \
+ btrfs-balance.timer \
+ btrfs-balance.service \
+ btrfs-defrag.timer \
+ btrfs-defrag.service \
+ btrfsmaintenance-refresh.service \
+ btrfsmaintenance-refresh.path \
+"
diff --git a/meta-filesystems/recipes-utils/btrfsmaintenance/files/0001-change-sysconfig-path-to-etc-default.patch b/meta-filesystems/recipes-utils/btrfsmaintenance/files/0001-change-sysconfig-path-to-etc-default.patch
new file mode 100644
index 0000000000..d425206f0e
--- /dev/null
+++ b/meta-filesystems/recipes-utils/btrfsmaintenance/files/0001-change-sysconfig-path-to-etc-default.patch
@@ -0,0 +1,47 @@
+From b49dbe17e0d9ae463e5a34e6991aa2d3c70d2fb1 Mon Sep 17 00:00:00 2001
+From: Claudius Heine <ch@denx.de>
+Date: Wed, 11 May 2022 14:33:13 +0200
+Subject: [PATCH] change sysconfig path to /etc/default
+
+OE uses /etc/default for service configuration, not /etc/sysconfig which
+is used by SUSE and RedHat based distributions.
+
+Change the files accordingly
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Claudius Heine <ch@denx.de>
+---
+ btrfsmaintenance-refresh.path | 4 ++--
+ btrfsmaintenance-refresh.service | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/btrfsmaintenance-refresh.path b/btrfsmaintenance-refresh.path
+index d56ad11..f0b4132 100644
+--- a/btrfsmaintenance-refresh.path
++++ b/btrfsmaintenance-refresh.path
+@@ -1,8 +1,8 @@
+ [Unit]
+-Description=Watch /etc/sysconfig/btrfsmaintenance
++Description=Watch /etc/default/btrfsmaintenance
+
+ [Path]
+-PathChanged=/etc/sysconfig/btrfsmaintenance
++PathChanged=/etc/default/btrfsmaintenance
+
+ [Install]
+ WantedBy=multi-user.target
+diff --git a/btrfsmaintenance-refresh.service b/btrfsmaintenance-refresh.service
+index 4ed1eb4..d6225a6 100644
+--- a/btrfsmaintenance-refresh.service
++++ b/btrfsmaintenance-refresh.service
+@@ -1,5 +1,5 @@
+ [Unit]
+-Description=Update cron periods from /etc/sysconfig/btrfsmaintenance
++Description=Update cron periods from /etc/default/btrfsmaintenance
+
+ [Service]
+ ExecStart=/usr/share/btrfsmaintenance/btrfsmaintenance-refresh-cron.sh systemd-timer
+--
+2.33.3
+
diff --git a/meta-filesystems/recipes-utils/btrfsmaintenance/files/0002-add-WantedBy-directive-to-btrfsmaintenance-refresh.s.patch b/meta-filesystems/recipes-utils/btrfsmaintenance/files/0002-add-WantedBy-directive-to-btrfsmaintenance-refresh.s.patch
new file mode 100644
index 0000000000..0da7992a09
--- /dev/null
+++ b/meta-filesystems/recipes-utils/btrfsmaintenance/files/0002-add-WantedBy-directive-to-btrfsmaintenance-refresh.s.patch
@@ -0,0 +1,33 @@
+From 420ae0f395838b852ae8b8fe5528056c36dc0919 Mon Sep 17 00:00:00 2001
+From: Claudius Heine <ch@denx.de>
+Date: Wed, 11 May 2022 15:14:22 +0200
+Subject: [PATCH] add WantedBy directive to btrfsmaintenance-refresh.service
+
+Just trigger the service on the first boot, to configure services to the
+configuration file deployed in the package, afterwards disable the
+service, so that is only triggered when the configuration file has
+changed.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Claudius Heine <ch@denx.de>
+---
+ btrfsmaintenance-refresh.service | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/btrfsmaintenance-refresh.service b/btrfsmaintenance-refresh.service
+index d6225a6..58d0e09 100644
+--- a/btrfsmaintenance-refresh.service
++++ b/btrfsmaintenance-refresh.service
+@@ -3,4 +3,8 @@ Description=Update cron periods from /etc/default/btrfsmaintenance
+
+ [Service]
+ ExecStart=/usr/share/btrfsmaintenance/btrfsmaintenance-refresh-cron.sh systemd-timer
++ExecStart=systemctl disable btrfsmaintenance-refresh.service
+ Type=oneshot
++
++[Install]
++WantedBy=multi-user.target
+--
+2.33.3
+
diff --git a/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb b/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb
deleted file mode 100644
index 440f336184..0000000000
--- a/meta-filesystems/recipes-utils/exfat-utils/exfat-utils_1.2.3.bb
+++ /dev/null
@@ -1,22 +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 = "http://code.google.com/p/exfat/"
-SECTION = "universe/otherosfs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "https://github.com/relan/exfat/releases/download/v${PV}/${BP}.tar.gz"
-
-DEPENDS = "virtual/libc"
-
-inherit pkgconfig autotools
-
-SRC_URI[md5sum] = "f4e564450aa8159e26dde2869563d242"
-SRC_URI[sha256sum] = "80d3b3f21242d60d36a38a4ddb05cb7cc3a7d4eef5793e8314814937b938fcea"
diff --git a/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.1.bb b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.1.bb
new file mode 100644
index 0000000000..3767ec48f5
--- /dev/null
+++ b/meta-filesystems/recipes-utils/exfatprogs/exfatprogs_1.2.1.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] = "a6f3b1fb4bd37835c8f8cb421aac4eb75b880a51342b29850c4063973162227b"
+
+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/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch
deleted file mode 100644
index cf844bf878..0000000000
--- a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3b3c6e6376babcd9a0b0db312b0e1e3bb3ab833e Mon Sep 17 00:00:00 2001
-From: Sven Ebenfeld <sven.ebenfeld@vaillant.de>
-Date: Wed, 26 Nov 2014 10:36:44 +0100
-Subject: [PATCH] Remove AC_CHECK_FILE for cross compilation
-
----
- configure.ac | 7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0111e72..8c286d4 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -20,14 +20,9 @@ AC_DEFINE([F2FS_MINOR_VERSION], m4_bpatsubst(f2fs_tools_version,
- [\([0-9]*\).\([0-9]*\)\(\w\|\W\)*], [\2]),
- [Minor version for f2fs-tools])
-
--AC_CHECK_FILE(.git,
-- AC_DEFINE([F2FS_TOOLS_DATE],
-- "m4_bpatsubst(f2fs_tools_gitdate,
-- [\([0-9-]*\)\(\w\|\W\)*], [\1])",
-- [f2fs-tools date based on Git commits]),
- AC_DEFINE([F2FS_TOOLS_DATE],
- "f2fs_tools_date",
-- [f2fs-tools date based on Source releases]))
-+ [f2fs-tools date based on Source releases])
-
- AC_CONFIG_SRCDIR([config.h.in])
- AC_CONFIG_HEADER([config.h])
---
-1.8.1.rc3
-
diff --git a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch
deleted file mode 100644
index 9e561cb111..0000000000
--- a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools/0002-Fix-mkfs-out-of-tree-builds.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0731eefd389e01419f78a115e1363ed0c28cfd3a Mon Sep 17 00:00:00 2001
-From: "Yong, Jonathan" <jonathan.yong@intel.com>
-Date: Thu, 30 Mar 2017 08:03:37 +0000
-Subject: [PATCH] Fix mkfs out of tree builds
-
-Libraries are built in builddir, not srcdir, fix Makefile.am
-accordingly.
-
-Signed-off-by: Yong, Jonathan <jonathan.yong@intel.com>
-Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
-
-The patch was imported from the f2fs-tools repo
-(git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git)
-commit ID 0731eefd389e01419f78a115e1363ed0c28cfd3a.
-
-Upstream-Status: Accepted, expected to be included in 1.9.0.
-
-Signed-off-by: Yong, Jonathan <jonathan.yong@intel.com>
-
----
- mkfs/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mkfs/Makefile.am b/mkfs/Makefile.am
-index 162a0cf..0ea8b49 100644
---- a/mkfs/Makefile.am
-+++ b/mkfs/Makefile.am
-@@ -10,5 +10,5 @@ lib_LTLIBRARIES = libf2fs_format.la
- libf2fs_format_la_SOURCES = f2fs_format_main.c f2fs_format.c f2fs_format_utils.c
- libf2fs_format_la_CFLAGS = -DWITH_BLKDISCARD
- libf2fs_format_la_CPPFLAGS = -I$(top_srcdir)/include
--libf2fs_format_la_LDFLAGS = -luuid -L$(top_srcdir)/lib -lf2fs \
-+libf2fs_format_la_LDFLAGS = -luuid -L$(top_builddir)/lib -lf2fs \
- -version-info $(FMT_CURRENT):$(FMT_REVISION):$(FMT_AGE)
---
-2.10.2
-
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.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/f2fs-tools/f2fs-tools_1.8.0.bb b/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb
deleted file mode 100644
index 691cb6ea0e..0000000000
--- a/meta-filesystems/recipes-utils/f2fs-tools/f2fs-tools_1.8.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Tools for Flash-Friendly File System (F2FS)"
-HOMEPAGE = "http://sourceforge.net/projects/f2fs-tools/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=362b4b2594cd362b874a97718faa51d3"
-
-# to provide libuuid
-DEPENDS = "util-linux"
-
-SRCREV = "1e7aedf99b85d16f94d1d8ad2fcf846403bb2174"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git \
- file://0001-Remove-AC_CHECK_FILE-for-cross-compilation.patch \
- file://0002-Fix-mkfs-out-of-tree-builds.patch"
-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
new file mode 100644
index 0000000000..c612dd8d5d
--- /dev/null
+++ b/meta-filesystems/recipes-utils/fatcat/fatcat/0001-Use-unistd.h-not-argp.h-for-all-POSIX-systems.patch
@@ -0,0 +1,37 @@
+From 14ef83291096e019ebc48040cf63530a2574a26d Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Sun, 19 Jan 2020 16:03:21 +0000
+Subject: [PATCH] Use unistd.h not argp.h for all POSIX systems
+
+getopt(3) is found in unistd.h on all POSIX systems and we make no use
+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>
+---
+ src/fatcat.cpp | 8 ++------
+ 1 file changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/src/fatcat.cpp b/src/fatcat.cpp
+index ce23ca07bb99..b4427e465bde 100644
+--- a/src/fatcat.cpp
++++ b/src/fatcat.cpp
+@@ -1,14 +1,10 @@
+ #include <stdlib.h>
+-#include<string.h>
+-#ifdef __APPLE__
+-#include <unistd.h>
+-#else
++#include <string.h>
+ #ifdef __WIN__
+ #include <ctype.h>
+ #include "xgetopt/xgetopt.h"
+ #else
+-#include <argp.h>
+-#endif
++#include <unistd.h>
+ #endif
+
+ #include <stdio.h>
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
new file mode 100644
index 0000000000..214b3f914c
--- /dev/null
+++ b/meta-filesystems/recipes-utils/fatcat/fatcat_1.1.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "FAT filesystems explore, extract, repair, and forensic tool"
+DESCRIPTION = "This tool is designed to manipulate FAT filesystems, in order to \
+explore, extract, repair, recover and forensic them. It currently supports \
+FAT12, FAT16 and FAT32."
+HOMEPAGE = "https://github.com/Gregwar/fatcat"
+
+LICENSE = "MIT"
+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"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
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
new file mode 100644
index 0000000000..ac16766f6f
--- /dev/null
+++ b/meta-filesystems/recipes-utils/fatresize/fatresize/0001-build-Do-not-build-.sgml-file.patch
@@ -0,0 +1,27 @@
+From b16373da7e5a45cf92df83b39e2fdee939439c84 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jul 2021 08:55:42 -0700
+Subject: [PATCH] build: Do not build .sgml file
+
+It needs docbook-to-man tool which we do not have recipe for
+
+Upstream-Status: Inappropriate [needs native docbook-to-man tool]
+
+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 2becb84..858df00 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -14,4 +14,4 @@ SUFFIXES = .1
+ CLEANFILES = $(man_MANS)
+
+ .sgml.1:
+- docbook-to-man $< > $@
++ @echo "Needs docbook-to-man"
+--
+2.32.0
+
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
new file mode 100644
index 0000000000..cf7ac62be8
--- /dev/null
+++ b/meta-filesystems/recipes-utils/fatresize/fatresize_1.1.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Resize FAT partitions using libparted"
+SECTION = "console/tools"
+LICENSE = "GPL-2.0-only"
+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"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "parted"
+
+inherit autotools pkgconfig
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
new file mode 100644
index 0000000000..2c001834b6
--- /dev/null
+++ b/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs/0001-Makefile-proper-location-of-LDFLAGS.patch
@@ -0,0 +1,32 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..9d58b9a63f
--- /dev/null
+++ b/meta-filesystems/recipes-utils/overlayfs/overlayfs-progs_git.bb
@@ -0,0 +1,32 @@
+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
new file mode 100644
index 0000000000..ed84d92c7c
--- /dev/null
+++ b/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0001-Fixed-includes-so-that-it-compiles-on-Ubuntu-20.04.patch
@@ -0,0 +1,43 @@
+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
+
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..8fbb250f04
--- /dev/null
+++ b/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools/0002-makefile-fix-linking-flags.patch
@@ -0,0 +1,33 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..eb6e4963a5
--- /dev/null
+++ b/meta-filesystems/recipes-utils/overlayfs/overlayfs-tools_git.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "Maintenance tools for OverlayFS"
+HOMEPAGE = "https://github.com/kmxz/overlayfs-tools"
+LICENSE = "WTFPL"
+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"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+DEPENDS += "attr"
+# Required to have the fts.h header for musl
+DEPENDS:append:libc-musl = " fts"
+
+EXTRA_OEMAKE += "'CC=${CC} -O2'"
+# Fix the missing fts libs when using musl
+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}
+}
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/udevil/udevil_0.4.4.bb b/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
index 60f84f8f9c..20d6036686 100644
--- a/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
+++ b/meta-filesystems/recipes-utils/udevil/udevil_0.4.4.bb
@@ -6,12 +6,12 @@ DEPENDS = "glib-2.0 \
intltool-native \
udev \
"
-RDEPENDS_${PN} = "udev bash"
+RDEPENDS:${PN} = "udev bash"
-LICENSE = "GPL-3.0"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-inherit autotools systemd
+inherit autotools pkgconfig systemd
SRC_URI = "https://github.com/IgnorantGuru/udevil/raw/pkg/${PV}/udevil-${PV}.tar.xz \
file://0001-udevil-0.4.3-fix-compile-with-gcc6.patch \
@@ -24,5 +24,5 @@ SRC_URI[sha256sum] = "ce8c51fd4d589cda7be56e75b42188deeb258c66fc911a9b3a70a3945c
PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
-SYSTEMD_SERVICE_${PN} = "devmon@.service"
+SYSTEMD_SERVICE:${PN} = "devmon@.service"
SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_3.12.3.bb b/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_3.12.3.bb
new file mode 100644
index 0000000000..342661c9a5
--- /dev/null
+++ b/meta-filesystems/recipes-utils/ufs-utils/ufs-utils_3.12.3.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 = "40c0bdfa7f4e922a4bcdf431ef72b321648d2d9f"
+
+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-fcntl.h-for-O_EXCL.patch b/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch
deleted file mode 100644
index 660468d731..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/files/0001-Include-fcntl.h-for-O_EXCL.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 8cf48da5f645dd7bbb1ccbeab5bb0964f40f17f7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:18:47 -0700
-Subject: [PATCH 1/5] Include fcntl.h for O_EXCL
-
-Fix
-error: 'O_CREAT' undeclared (first use in this function)
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- invutil/invidx.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/invutil/invidx.c b/invutil/invidx.c
-index 67efdf7..325a9a1 100644
---- a/invutil/invidx.c
-+++ b/invutil/invidx.c
-@@ -27,6 +27,7 @@
- #include <sys/stat.h>
- #include <string.h>
- #include <uuid/uuid.h>
-+#include <fcntl.h>
-
- #include "types.h"
- #include "mlog.h"
---
-2.13.2
-
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch b/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch
deleted file mode 100644
index 1fe1bde8bd..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f1e822d546e08cc195eaeb38ca172bd0c3800aa9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 9 Sep 2017 07:48:48 -0700
-Subject: [PATCH] xfsdump: Use c99 defined int64_t instead of __int64_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- common/hsmapi.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/common/hsmapi.c b/common/hsmapi.c
-index 6054773..0709dbe 100644
---- a/common/hsmapi.c
-+++ b/common/hsmapi.c
-@@ -585,7 +585,7 @@ HsmModifyExtentMap(
- struct getbmapx *bmap)
- {
- dmf_f_ctxt_t *dmf_f_ctxtp = (dmf_f_ctxt_t *)contextp;
-- __int64_t length;
-+ int64_t length;
-
- if (bmap[0].bmv_entries <= 0) {
- return 1; /* caller must already be at EOF */
---
-2.14.1
-
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-support-usrmerge.patch b/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-support-usrmerge.patch
new file mode 100644
index 0000000000..bfb25e87f7
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsdump/files/0001-xfsdump-support-usrmerge.patch
@@ -0,0 +1,52 @@
+From fea8c4634469784c16211e2597411c18c72dfa4a Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 5 Mar 2020 14:36:14 +0800
+Subject: [PATCH] xfsdump: support usrmerge
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ dump/Makefile | 6 +-----
+ restore/Makefile | 6 +-----
+ 2 files changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/dump/Makefile b/dump/Makefile
+index 66f00d3..cc2d973 100644
+--- a/dump/Makefile
++++ b/dump/Makefile
+@@ -97,12 +97,8 @@ default: depend $(LTCOMMAND)
+ include $(BUILDRULES)
+
+ install: default
+- $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
+- $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR)
+ $(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
+- # skip symlink when /sbin is alread symlinked to /usr/sbin, like on Fedora
+- test $(PKG_ROOT_SBIN_DIR) -ef $(PKG_SBIN_DIR) || \
+- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND)
++ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR)
+ install-dev:
+
+ .dep: $(COMMINCL) $(COMMON) $(INVINCL) $(INVCOMMON)
+diff --git a/restore/Makefile b/restore/Makefile
+index ac3f8c8..3c46394 100644
+--- a/restore/Makefile
++++ b/restore/Makefile
+@@ -111,12 +111,8 @@ default: depend $(LTCOMMAND)
+ include $(BUILDRULES)
+
+ install: default
+- $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR)
+- $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR)
+ $(INSTALL) -m 755 -d $(PKG_SBIN_DIR)
+- # skip symlink when /sbin is alread symlinked to /usr/sbin, like on Fedora
+- test $(PKG_ROOT_SBIN_DIR) -ef $(PKG_SBIN_DIR) || \
+- $(INSTALL) -S $(PKG_ROOT_SBIN_DIR)/$(LTCOMMAND) $(PKG_SBIN_DIR)/$(LTCOMMAND)
++ $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR)
+ install-dev:
+
+ .dep: $(COMMINCL) $(COMMON) $(INVINCL) $(INVCOMMON)
+--
+2.7.4
+
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch b/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch
deleted file mode 100644
index ed3e0a9e98..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/files/0002-Replace-__uint32_t-with-uint32_t.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From f76d2142905f0e5bd830d5d576c235af1171c6ac Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:23:31 -0700
-Subject: [PATCH 2/5] Replace __uint32_t with uint32_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- common/content_inode.h | 4 ++--
- doc/xfsdump.html | 8 ++++----
- inventory/inv_oref.h | 2 +-
- inventory/inv_priv.h | 4 ++--
- inventory/inventory.h | 2 +-
- 5 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/common/content_inode.h b/common/content_inode.h
-index a69a9a0..6936e05 100644
---- a/common/content_inode.h
-+++ b/common/content_inode.h
-@@ -191,10 +191,10 @@ typedef struct bstat bstat_t;
- * and using two 16bit values to hold new 32bit projid was choosen
- * to retain compatibility with "old" filesystems).
- */
--static inline __uint32_t
-+static inline uint32_t
- bstat_projid(struct bstat *bs)
- {
-- return (__uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
-+ return (uint32_t)bs->bs_projid_hi << 16 | bs->bs_projid_lo;
- }
-
-
-diff --git a/doc/xfsdump.html b/doc/xfsdump.html
-index 9c6722e..f85128f 100644
---- a/doc/xfsdump.html
-+++ b/doc/xfsdump.html
-@@ -1935,7 +1935,7 @@ The files are constructed like so:
- <pre>
- typedef struct invt_counter {
- INVT_COUNTER_FIELDS
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- u_int ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- u_int ic_maxnum;/* maximum number of sessions/inv_indices \
-@@ -1975,7 +1975,7 @@ typedef struct invt_fstab {
- <pre>
- typedef struct invt_counter {
- INVT_COUNTER_FIELDS
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- u_int ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- u_int ic_maxnum;/* maximum number of sessions/inv_indices \
-@@ -2012,7 +2012,7 @@ typedef struct invt_entry {
- <pre>
- typedef struct invt_sescounter {
- INVT_COUNTER_FIELDS
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- u_int ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- u_int ic_maxnum;/* maximum number of sessions/inv_indices \
-@@ -2034,7 +2034,7 @@ typedef struct invt_seshdr {
- off64_t sh_streams_off; /* offset to start of the set of
- stream hdrs */
- time_t sh_time; /* time of the dump */
-- __uint32_t sh_flag; /* for misc flags */
-+ uint32_t sh_flag; /* for misc flags */
- u_char sh_level; /* dump level */
- u_char sh_pruned; /* pruned by invutil flag */
- char sh_padding[22];
-diff --git a/inventory/inv_oref.h b/inventory/inv_oref.h
-index e16684d..38303a4 100644
---- a/inventory/inv_oref.h
-+++ b/inventory/inv_oref.h
-@@ -46,7 +46,7 @@
-
-
-
--typedef __uint32_t invt_objtype_t;
-+typedef uint32_t invt_objtype_t;
-
- #define INVT_LOCKED 0x0001
-
-diff --git a/inventory/inv_priv.h b/inventory/inv_priv.h
-index 1690271..364ffbc 100644
---- a/inventory/inv_priv.h
-+++ b/inventory/inv_priv.h
-@@ -120,7 +120,7 @@ typedef struct invt_seshdr {
- off64_t sh_streams_off; /* offset to start of the set of
- stream hdrs */
- time32_t sh_time; /* time of the dump */
-- __uint32_t sh_flag; /* for misc flags */
-+ uint32_t sh_flag; /* for misc flags */
- u_char sh_level; /* dump level */
- u_char sh_pruned; /* pruned by invutil flag */
- char sh_padding[22];
-@@ -184,7 +184,7 @@ typedef struct invt_entry {
-
- /* Cheap Inheritance, and an attempt to avoid a nested type */
- #define INVT_COUNTER_FIELDS \
-- __uint32_t ic_vernum;/* on disk version number for posterity */\
-+ uint32_t ic_vernum;/* on disk version number for posterity */\
- uint ic_curnum;/* number of sessions/invindices recorded \
- so far */ \
- uint ic_maxnum;/* maximum number of sessions/inv_indices \
-diff --git a/inventory/inventory.h b/inventory/inventory.h
-index 134b9ba..c1d7403 100644
---- a/inventory/inventory.h
-+++ b/inventory/inventory.h
-@@ -43,7 +43,7 @@
- /* length of labels, mntpts, etc */
- #define INV_STRLEN GLOBAL_HDR_STRING_SZ
-
--typedef __uint32_t inv_version_t;
-+typedef uint32_t inv_version_t;
-
- /* This is the general inventory version.
- */
---
-2.13.2
-
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch b/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch
deleted file mode 100644
index 31303d8fa1..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/files/0003-replace-use-of-SIGCLD-with-SIGCHLD.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From fcc0cf15a309947103a0695b8a1f4865b820eb5c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:26:03 -0700
-Subject: [PATCH 3/5] replace use of SIGCLD with SIGCHLD
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- common/main.c | 2 +-
- doc/xfsdump.html | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/common/main.c b/common/main.c
-index 3848499..faa66ee 100644
---- a/common/main.c
-+++ b/common/main.c
-@@ -2225,7 +2225,7 @@ static sig_printmap_t sig_printmap[ ] = {
- {SIGTERM, "SIGTERM"},
- {SIGUSR1, "SIGUSR1"},
- {SIGUSR2, "SIGUSR2"},
-- {SIGCLD, "SIGCLD"},
-+ {SIGCHLD, "SIGCHLD"},
- {SIGPWR, "SIGPWR"},
- {SIGURG, "SIGURG"},
- {SIGPOLL, "SIGPOLL"},
-diff --git a/doc/xfsdump.html b/doc/xfsdump.html
-index f85128f..d96f037 100644
---- a/doc/xfsdump.html
-+++ b/doc/xfsdump.html
-@@ -334,7 +334,7 @@ the ring buffer. It ignores signals and does not terminate until it
- receives a RING_OP_DIE message. It then exits 0.
- <p>
- The main process sleeps waiting for any of its children to die
--(ie. waiting for a SIGCLD). All children that it cares about (stream
-+(ie. waiting for a SIGCHLD). All children that it cares about (stream
- managers and ring buffer slaves) are registered through the child
- manager abstraction. When a child dies wait status and other info is
- stored with its entry in the child manager. main() ignores the deaths
---
-2.13.2
-
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch b/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch
deleted file mode 100644
index 62ea15b862..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/files/0004-include-limit.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 98c7d96f0f2c6eddf60aa4a1a08d7d4467645930 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:28:10 -0700
-Subject: [PATCH 4/5] include limit.h for PATH_MAX
-
-fixed
-var.c:42:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'RAND_MAX'?
- char path[PATH_MAX];`
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- dump/var.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/dump/var.c b/dump/var.c
-index 645caab..8156d37 100644
---- a/dump/var.c
-+++ b/dump/var.c
-@@ -16,6 +16,7 @@
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-+#include <limits.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <sys/stat.h>
---
-2.13.2
-
diff --git a/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch b/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch
deleted file mode 100644
index fb6e467c93..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/files/0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From d95f494de1aa8123c74170ffebaed8ea89649da2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 23:33:44 -0700
-Subject: [PATCH 5/5] include sys/types.h for u_int32_t in attr/attributes.h
-
-error: unknown type name 'u_int32_t'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- restore/content.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/restore/content.c b/restore/content.c
-index 7c4a81f..1d5de1b 100644
---- a/restore/content.c
-+++ b/restore/content.c
-@@ -24,6 +24,7 @@
- #include <sys/param.h>
- #include <sys/stat.h>
- #include <sys/ioctl.h>
-+#include <sys/types.h>
- #include <attr/attributes.h>
- #include <xfs/handle.h>
- #include <time.h>
---
-2.13.2
-
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..9e595b9521
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.12.bb
@@ -0,0 +1,39 @@
+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] = "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/xfsdump/xfsdump_3.1.7.bb b/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb
deleted file mode 100644
index 39f11890e1..0000000000
--- a/meta-filesystems/recipes-utils/xfsdump/xfsdump_3.1.7.bb
+++ /dev/null
@@ -1,46 +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 = "GPLv2"
-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-fcntl.h-for-O_EXCL.patch \
- file://0002-Replace-__uint32_t-with-uint32_t.patch \
- file://0003-replace-use-of-SIGCLD-with-SIGCHLD.patch \
- file://0004-include-limit.h-for-PATH_MAX.patch \
- file://0005-include-sys-types.h-for-u_int32_t-in-attr-attributes.patch \
- file://0001-xfsdump-Use-c99-defined-int64_t-instead-of-__int64_t.patch \
- "
-SRC_URI[md5sum] = "c6e91f2ac8b76c796db2d236f5ca5947"
-SRC_URI[sha256sum] = "99e6d4df257ebc6d29ca9e970ca20672c2ea03481ad949bc68f98de3e4d56dce"
-
-inherit autotools-brokensep
-
-PARALLEL_MAKE = ""
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gettext] = "--enable-gettext=yes,--enable-gettext=no,gettext"
-
-CFLAGS += "-D_FILE_OFFSET_BITS=64"
-
-EXTRA_OEMAKE += "'LIBTOOL=${HOST_SYS}-libtool' V=1"
-
-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-build-Check-for-sync_file_range-libc-function.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch
deleted file mode 100644
index d8ff555319..0000000000
--- a/meta-filesystems/recipes-utils/xfsprogs/files/0001-build-Check-for-sync_file_range-libc-function.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From ae7172194d3fbb563ff8bbe7c02d34f1bd0e5ec9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 31 Jan 2018 21:28:53 -0800
-Subject: [PATCH] build: Check for sync_file_range libc function
-
-glibc 2.27 now has sync_file_range()
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- include/builddefs.in | 1 +
- io/Makefile | 5 ++++-
- io/io.h | 2 +-
- io/sync_file_range.c | 3 +++
- 4 files changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/include/builddefs.in b/include/builddefs.in
-index 92d5076..504225a 100644
---- a/include/builddefs.in
-+++ b/include/builddefs.in
-@@ -105,6 +105,7 @@ HAVE_FIEMAP = @have_fiemap@
- HAVE_PREADV = @have_preadv@
- HAVE_PWRITEV2 = @have_pwritev2@
- HAVE_COPY_FILE_RANGE = @have_copy_file_range@
-+HAVE_NR_COPY_FILE_RANGE = @have_nr_copy_file_range@
- HAVE_SYNC_FILE_RANGE = @have_sync_file_range@
- HAVE_SYNCFS = @have_syncfs@
- HAVE_READDIR = @have_readdir@
-diff --git a/io/Makefile b/io/Makefile
-index 6725936..1876e95 100644
---- a/io/Makefile
-+++ b/io/Makefile
-@@ -59,10 +59,13 @@ CFILES += inject.c resblks.c
- LCFLAGS += -DHAVE_INJECT -DHAVE_RESBLKS
- endif
-
--ifeq ($(HAVE_COPY_FILE_RANGE),yes)
-+ifeq ($(HAVE_NR_COPY_FILE_RANGE),yes)
- CFILES += copy_file_range.c
-+LCFLAGS += -DHAVE_NR_COPY_FILE_RANGE
-+ifeq ($(HAVE_COPY_FILE_RANGE),yes)
- LCFLAGS += -DHAVE_COPY_FILE_RANGE
- endif
-+endif
-
- ifeq ($(HAVE_SYNC_FILE_RANGE),yes)
- CFILES += sync_file_range.c
-diff --git a/io/io.h b/io/io.h
-index 3862985..79ddc7b 100644
---- a/io/io.h
-+++ b/io/io.h
-@@ -158,7 +158,7 @@ extern void fiemap_init(void);
- #define fiemap_init() do { } while (0)
- #endif
-
--#ifdef HAVE_COPY_FILE_RANGE
-+#if defined(HAVE_NR_COPY_FILE_RANGE) && !defined(HAVE_COPY_FILE_RANGE)
- extern void copy_range_init(void);
- #else
- #define copy_range_init() do { } while (0)
-diff --git a/io/sync_file_range.c b/io/sync_file_range.c
-index 7e4f3e6..aafea01 100644
---- a/io/sync_file_range.c
-+++ b/io/sync_file_range.c
-@@ -16,6 +16,7 @@
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-+#ifndef HAVE_COPY_FILE_RANGE
- #include "command.h"
- #include "input.h"
- #include "init.h"
-@@ -104,3 +105,5 @@ sync_range_init(void)
-
- add_command(&sync_range_cmd);
- }
-+
-+#endif
---
-2.16.1
-
diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0001-support-usrmerge.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0001-support-usrmerge.patch
new file mode 100644
index 0000000000..84f4f88e5f
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsprogs/files/0001-support-usrmerge.patch
@@ -0,0 +1,40 @@
+From e81633a276dd6a9f919e5e5c15481ac50a8e485d Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Fri, 30 Aug 2019 14:59:06 +0800
+Subject: [PATCH] support usrmerge
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4b7e4c8..f1afbd6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -110,8 +110,7 @@ AC_ARG_ENABLE(libicu,
+ # If the user specified a libdir ending in lib64 do not append another
+ # 64 to the library names.
+ #
+-base_libdir=`basename "$libdir"`
+-case $base_libdir in
++case `basename "$libdir"` in
+ lib64)
+ enable_lib64=no
+ esac
+@@ -125,8 +124,8 @@ esac
+ #
+ case $exec_prefix:$prefix in
+ NONE:NONE | NONE:/usr | /usr:*)
+- root_sbindir='/sbin'
+- root_libdir="/${base_libdir}"
++ root_sbindir="${base_sbindir}"
++ root_libdir="${base_libdir}"
+ ;;
+ *)
+ root_sbindir="${sbindir}"
+--
+2.7.4
+
diff --git a/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch b/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch
new file mode 100644
index 0000000000..f924cd1a16
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsprogs/files/0002-include-include-xfs-linux.h-after-sys-mman.h.patch
@@ -0,0 +1,33 @@
+From 11a42df394de3dc520e72a016296dcc6dea02a7a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 23 Aug 2018 05:33:57 +0000
+Subject: [PATCH] include include/xfs/linux.h after <sys/mman.h>
+
+This helps compiling with musl which goes ahead and undefines MAP_SYNC
+for mips and other architectures where its not wired in kernel
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ io/mmap.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/io/mmap.c b/io/mmap.c
+index dbfcca5..ca00df1 100644
+--- a/io/mmap.c
++++ b/io/mmap.c
+@@ -4,10 +4,11 @@
+ * All Rights Reserved.
+ */
+
+-#include "command.h"
+-#include "input.h"
+ #include <sys/mman.h>
+ #include <signal.h>
++
++#include "command.h"
++#include "input.h"
+ #include "init.h"
+ #include "io.h"
+
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..731c001e14
--- /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 79f6594..854fd7f 100644
+--- a/copy/xfs_copy.c
++++ b/copy/xfs_copy.c
+@@ -888,7 +888,7 @@ main(int argc, char **argv)
+ }
+ } else {
+ char *lb[XFS_MAX_SECTORSIZE] = { NULL };
+- off64_t off;
++ off_t off;
+
+ /* 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 27383ca..0b14bb7 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 64b7a66..5f42301 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 d5aad3e..0faa05b 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;
+
+@@ -639,7 +639,7 @@ libxfs_readbufr_map(struct xfs_buftarg *btp, struct xfs_buf *bp, int flags)
+ fd = libxfs_device_to_fd(btp->bt_bdev);
+ 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);
+@@ -798,7 +798,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;
+
+@@ -864,7 +864,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 7c1a66c..bb54e38 100644
+--- a/mdrestore/xfs_mdrestore.c
++++ b/mdrestore/xfs_mdrestore.c
+@@ -116,7 +116,7 @@ perform_restore(
+ /* ensure device is sufficiently large enough */
+
+ char *lb[XFS_MAX_SECTORSIZE] = { NULL };
+- off64_t off;
++ off_t off;
+
+ off = sb.sb_dblocks * sb.sb_blocksize - sizeof(lb);
+ if (pwrite(dst_fd, lb, sizeof(lb), off) < 0)
+diff --git a/repair/prefetch.c b/repair/prefetch.c
+index 017750e..35b5013 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 03440d3..00bee17 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 423568a..df878ce 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_4.14.0.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.14.0.bb
deleted file mode 100644
index 5d76afe000..0000000000
--- a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_4.14.0.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "XFS Filesystem Utilities"
-HOMEPAGE = "http://oss.sgi.com/projects/xfs"
-SECTION = "base"
-LICENSE = "GPLv2 & LGPLv2.1"
-LICENSE_libhandle = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=102f7fec3d53c7c8f0b7baf9bf9d76a8"
-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-build-Check-for-sync_file_range-libc-function.patch \
- "
-SRC_URI[md5sum] = "2d50e3751cc98e6c9364bc3d2297b9fd"
-SRC_URI[sha256sum] = "b1b710b268bc95d6f45eca06e1262c29eb38865a19cd4404e48ba446e043b7ec"
-
-inherit autotools-brokensep
-
-PACKAGES =+ "${PN}-fsck ${PN}-mkfs ${PN}-repair libhandle"
-
-DEPENDS += "util-linux"
-
-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 \
- INSTALL_USER=root \
- INSTALL_GROUP=root \
- ac_cv_header_aio_h=yes \
- ac_cv_lib_rt_lio_listio=yes \
-"
-
-DISABLE_STATIC = ""
-EXTRA_AUTORECONF += "-I ${S}/m4 --exclude=autoheader"
-
-PACKAGECONFIG ??= "readline blkid"
-
-PACKAGECONFIG[readline] = "--enable-readline=yes,--enable-readline=no,readline"
-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_prepend () {
- 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
-}
-
-do_install_append() {
- oe_runmake 'DESTDIR=${D}' install-dev
- rm ${D}${libdir}/*.la
- rmdir --ignore-fail-on-non-empty ${D}${libdir}
-}
diff --git a/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.1.1.bb b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.1.1.bb
new file mode 100644
index 0000000000..6267fd9a18
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfsprogs/xfsprogs_6.1.1.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] = "05e8a137870db1d6182df72dda98ab7a7100deb376947e854b9d59c914c2c7bb"
+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
new file mode 100644
index 0000000000..e0a04c9073
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-Add-a-return-type-to-aio_rw.patch
@@ -0,0 +1,28 @@
+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-m4-Check-for-FTW_ACTIONRETVAL-along-with-nftw.patch b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-m4-Check-for-FTW_ACTIONRETVAL-along-with-nftw.patch
new file mode 100644
index 0000000000..fd34989fdf
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0001-m4-Check-for-FTW_ACTIONRETVAL-along-with-nftw.patch
@@ -0,0 +1,34 @@
+From 2a4fed8331f996421e65db446559991a854e2ad3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 24 Mar 2023 18:23:01 -0700
+Subject: [PATCH] m4: Check for FTW_ACTIONRETVAL along with nftw
+
+FTW_ACTIONRETVAL is glibc specific extention which is used to implement
+xfsfind but it may not be available on other C library implementations on Linux
+e.g. musl. Therefore ensure that these defines are available before declaring
+nftw() to be usable
+
+Upstream-Status: Submitted [https://lore.kernel.org/fstests/20230325012858.587801-1-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Cc: Darrick J. Wong <djwong@kernel.org>
+Cc: Zorro Lang <zlang@redhat.com>
+---
+ m4/package_libcdev.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/package_libcdev.m4 b/m4/package_libcdev.m4
+index b41c087b..7f731044 100644
+--- a/m4/package_libcdev.m4
++++ b/m4/package_libcdev.m4
+@@ -132,7 +132,7 @@ AC_DEFUN([AC_HAVE_NFTW],
+ #include <stddef.h>
+ #include <ftw.h>
+ ]], [[
+- nftw("/", (int (*)(const char *, const struct stat *, int, struct FTW *))1, 0, 0);
++ nftw("/", (int (*)(const char *, const struct stat *, int, struct FTW *))1, 0, FTW_ACTIONRETVAL);
+ ]])],[have_nftw=yes
+ AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
+ AC_SUBST(have_nftw)
+--
+2.40.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
new file mode 100644
index 0000000000..a594b73a12
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests/0002-Drop-detached_mounts_propagation-and-remove-sys-moun.patch
@@ -0,0 +1,47 @@
+From dd43cbc7f50266cdc6210f2b920d7f648a83bdd6 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
+
+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
+for the mount() API prototype. Until thats resolved lets not build this
+testcase
+
+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(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 665edcf9..7debcbbd 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -31,7 +31,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
+
+ 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_2023.03.05.bb b/meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb
new file mode 100644
index 0000000000..fdfe045749
--- /dev/null
+++ b/meta-filesystems/recipes-utils/xfstests/xfstests_2023.03.05.bb
@@ -0,0 +1,65 @@
+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 \
+ file://0001-m4-Check-for-FTW_ACTIONRETVAL-along-with-nftw.patch \
+ "
+
+SRCREV_xfstests = "f7765774a1b5cb98c2f21a892e82b3421f40e791"
+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"
+
+TARGET_CC_ARCH:append:libc-musl = " -D_LARGEFILE64_SOURCE"
+# 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/xorriso/xorriso_1.4.0.bb b/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.bb
deleted file mode 100644
index b26709e97c..0000000000
--- a/meta-filesystems/recipes-utils/xorriso/xorriso_1.4.0.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 = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://www.gnu.org/software/${BPN}/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "ec79fd2736b8da76e7a870e27cadf6fa"
-SRC_URI[sha256sum] = "0bd1e085015b28c24f57697d6def2fe84517967dc417554c0c3ccf1685ed0e56"
-
-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 distro_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
deleted file mode 100644
index 2a682e72d3..0000000000
--- a/meta-gnome/README
+++ /dev/null
@@ -1,38 +0,0 @@
-meta-gnome
-===========
-
-The recipe in this layer needs to have 'x11' in DISTRO_FEATURES
-to have effect. To enable them, add in configuration file the following line.
-
- DISTRO_FEATURES_append = " x11"
-
-If meta-gnome is included, but x11 is not enabled as a
-distro feature a warning is printed at parse time:
-
- You have included the meta-gnome layer, but
- 'x11' has not been enabled in your DISTRO_FEATURES.
-
-If you know what you are doing, this warning can be disabled by setting the following
-variable in your configuration:
-
- SKIP_META_GNOME_SANITY_CHECK = 1
-
-
-Dependencies
-------------
-This layer depends on:
-
-URI: git://github.com/openembedded/oe-core.git
-branch: master
-revision: HEAD
-
-URI: git://github.com/openembedded/meta-oe.git
-branch: master
-revision: HEAD
-
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome]' in the subject'
-
-When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-gnome][PATCH'
-
-Layer maintainer: Andreas Müller <schnitzeltony@googlemail.com>
diff --git a/meta-gnome/README.md b/meta-gnome/README.md
new file mode 100644
index 0000000000..fbb0d72476
--- /dev/null
+++ b/meta-gnome/README.md
@@ -0,0 +1,16 @@
+Dependencies
+------------
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+branch: master
+
+URI: git://git.openembedded.org/meta-openembedded
+branch: master
+
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome]' in the subject'
+
+When sending single patches, please using something like:
+git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-gnome][PATCH'
+
+Layer maintainer: Andreas Müller <schnitzeltony@gmail.com>
diff --git a/meta-gnome/classes/clutter.bbclass b/meta-gnome/classes/clutter.bbclass
new file mode 100644
index 0000000000..24b53a13e4
--- /dev/null
+++ b/meta-gnome/classes/clutter.bbclass
@@ -0,0 +1,18 @@
+def get_minor_dir(v):
+ import re
+ m = re.match(r"^([0-9]+)\.([0-9]+)", v)
+ return "%s.%s" % (m.group(1), m.group(2))
+
+def get_real_name(n):
+ import re
+ m = re.match(r"^([a-z]+(-[a-z]+)?)(-[0-9]+\.[0-9]+)?", n)
+ return "%s" % (m.group(1))
+
+VERMINOR = "${@get_minor_dir("${PV}")}"
+REALNAME = "${@get_real_name("${BPN}")}"
+
+SRC_URI = "${GNOME_MIRROR}/${REALNAME}/${VERMINOR}/${REALNAME}-${PV}.tar.xz;name=archive"
+S = "${WORKDIR}/${REALNAME}-${PV}"
+
+CLUTTERBASEBUILDCLASS ??= "autotools"
+inherit ${CLUTTERBASEBUILDCLASS} pkgconfig gtk-doc gettext
diff --git a/meta-gnome/classes/gnome-help.bbclass b/meta-gnome/classes/gnome-help.bbclass
new file mode 100644
index 0000000000..750670ae24
--- /dev/null
+++ b/meta-gnome/classes/gnome-help.bbclass
@@ -0,0 +1,67 @@
+# Class to pack gnome help files or delete them during install
+# There are the following cases:
+#
+# if 'helpfiles' not in DISTRO_FEATURES
+# delete all help contants during install
+# else
+# if PACKAGE_NO_HELP_SPLIT == 1
+# pack all help files to ${PN}-help
+# else
+# pack all help files to ${PN}-help-<lingua>
+
+# Dummy to get yelp build & PACKAGE_NO_HELP_SPLIT set 1
+PACKAGES:append = " ${PN}-help"
+FILES:${PN}-help = "${datadir}/help"
+RRECOMMENDS:${PN}-help = "${@bb.utils.contains('DISTRO_FEATURES','helpfiles','yelp','',d)}"
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','false','true',d)}; then
+ rm -rf ${D}${datadir}/help/*
+ fi
+}
+
+python gnome_do_split_help() {
+ if bb.utils.contains('DISTRO_FEATURES', 'helpfiles', False, True, d):
+ return
+
+ if (d.getVar('PACKAGE_NO_HELP_SPLIT') == '1'):
+ # all help files go to ${
+ bb.debug(1, "package requested not splitting help-files")
+ return
+
+ packages = (d.getVar('PACKAGES') or "").split()
+ datadir = d.getVar('datadir')
+ dvar = d.getVar('PKGD')
+ pn = d.getVar('PN')
+
+ if pn + '-help' in packages:
+ packages.remove(pn + '-help')
+
+ helpdir = os.path.join(dvar + datadir, 'help')
+
+ if not cpath.isdir(helpdir):
+ bb.warn("No help files in this package - remove gnome-help from inherit?")
+ return
+
+ helps = os.listdir(helpdir)
+
+ summary = d.getVar('SUMMARY') or pn
+ description = d.getVar('DESCRIPTION') or ""
+ locale_section = d.getVar('LOCALE_SECTION')
+ mlprefix = d.getVar('MLPREFIX') or ""
+ for l in sorted(helps):
+ ln = legitimize_package_name(l)
+ pkg = pn + '-help-' + ln
+ packages.append(pkg)
+ d.setVar('FILES:' + pkg, os.path.join(datadir, 'help', l))
+ d.setVar('RRECOMMENDS:' + pkg, '%syelp' % mlprefix)
+ d.setVar('SUMMARY:' + pkg, '%s - %s help' % (summary, l))
+ d.setVar('DESCRIPTION:' + pkg, '%s This package contains language help files for the %s locale.' % (description, l))
+ if locale_section:
+ d.setVar('SECTION:' + pkg, locale_section)
+
+ d.setVar('PACKAGES', ' '.join(packages))
+}
+
+PACKAGESPLITFUNCS:prepend = "gnome_do_split_help "
+
diff --git a/meta-gnome/classes/sanity-meta-gnome.bbclass b/meta-gnome/classes/sanity-meta-gnome.bbclass
deleted file mode 100644
index 331ea193d9..0000000000
--- a/meta-gnome/classes/sanity-meta-gnome.bbclass
+++ /dev/null
@@ -1,10 +0,0 @@
-addhandler gnome_bbappend_distrocheck
-gnome_bbappend_distrocheck[eventmask] = "bb.event.SanityCheck"
-python gnome_bbappend_distrocheck() {
- skip_check = e.data.getVar('SKIP_META_GNOME_SANITY_CHECK') == "1"
- if 'x11' not in e.data.getVar('DISTRO_FEATURES').split() and not skip_check:
- bb.warn("You have included the meta-gnome layer, but \
-'x11' has not been enabled in your DISTRO_FEATURES. Some bbappend files \
-may not take effect. See the meta-gnome README for details on enabling \
-meta-gnome support.")
-}
diff --git a/meta-gnome/conf/layer.conf b/meta-gnome/conf/layer.conf
index e6e9532b41..d7286edab5 100644
--- a/meta-gnome/conf/layer.conf
+++ b/meta-gnome/conf/layer.conf
@@ -6,16 +6,21 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "gnome-layer"
BBFILE_PATTERN_gnome-layer := "^${LAYERDIR}/"
-BBFILE_PRIORITY_gnome-layer = "7"
+BBFILE_PRIORITY_gnome-layer = "5"
+
+# auto-pack gnome help files
+IMAGE_LINGUAS_COMPLEMENTARY:append = " ${@bb.utils.contains('DISTRO_FEATURES','helpfiles','*-help-%s','',d)}"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_gnome-layer = "1"
-LAYERDEPENDS_gnome-layer = "core openembedded-layer networking-layer"
+LAYERDEPENDS_gnome-layer = "core openembedded-layer networking-layer meta-python"
+
+LAYERSERIES_COMPAT_gnome-layer = "mickledore"
-LAYERSERIES_COMPAT_gnome-layer = "sumo"
+SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\
+ faenza-icon-theme->gdk-pixbuf \
+ faenza-icon-theme->gtk+3 \
+"
-# Sanity check for meta-gnome layer.
-# Setting SKIP_META_GNOME_SANITY_CHECK to "1" would skip the bbappend files check.
-INHERIT += "sanity-meta-gnome"
diff --git a/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb b/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb
deleted file mode 100644
index bf5178cf80..0000000000
--- a/meta-gnome/recipes-apps/pinpoint/pinpoint_git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "A simple presentation tool for hackers"
-DESCRIPTION = "Pinpoint is a simple presentation tool that hopes to avoid audience death \
- by bullet point and instead encourage presentations containing beautiful \
- images and small amounts of concise text in slides."
-SECTION = "x11/multimedia"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \
- file://pinpoint.c;beginline=6;endline=17;md5=201d438283607da393fae6aca085454c"
-
-DEPENDS = "glib-2.0 gdk-pixbuf cogl-1.0 clutter-1.0 clutter-gst-3.0 librsvg"
-
-inherit autotools gettext pkgconfig distro_features_check
-
-# cogl requires opengl
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-SRC_URI = "git://git.gnome.org/pinpoint"
-
-SRCREV = "80a056c57e819d0b75035424638813b0670830e1"
-PV = "0.1.4+gitr${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-RRECOMMENDS_${PN} = "gdk-pixbuf-loader-jpeg gdk-pixbuf-loader-png"
diff --git a/meta-gnome/recipes-connectivity/folks/folks_0.15.6.bb b/meta-gnome/recipes-connectivity/folks/folks_0.15.6.bb
new file mode 100644
index 0000000000..c94a9590fe
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/folks/folks_0.15.6.bb
@@ -0,0 +1,29 @@
+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] = "c866630c553f29ce9be1c7a60267cb4080a6bccf4b8d551dc4c7e6234d840248"
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_44.0.bb b/meta-gnome/recipes-connectivity/geary/geary_44.0.bb
new file mode 100644
index 0000000000..a585929092
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/geary/geary_44.0.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 = "b72db2a5e87f2269e6359af434a4fc02fca9e9df"
+
+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..36eb8ca199
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/gtk-vnc/gtk-vnc_1.3.1.bb
@@ -0,0 +1,26 @@
+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 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+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
+
+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..bff9a3360f
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/libnma/libnma_1.10.6.bb
@@ -0,0 +1,29 @@
+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)} 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"
diff --git a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.32.0.bb b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.32.0.bb
new file mode 100644
index 0000000000..cc37291c8a
--- /dev/null
+++ b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.32.0.bb
@@ -0,0 +1,29 @@
+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 opengl"
+
+SRC_URI[archive.sha256sum] = "a2b5affa1505ad43902959fdbe09e5bcec57b11ed333fa60458ffb9c62efba38"
+
+# 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.8.10.bb b/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.10.bb
deleted file mode 100644
index 91ae8b740b..0000000000
--- a/meta-gnome/recipes-connectivity/network-manager-applet/network-manager-applet_1.8.10.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "GTK+ applet for NetworkManager"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-DEPENDS = "gtk+3 libnotify libsecret networkmanager dbus-glib \
- gconf libgnome-keyring iso-codes nss \
- intltool-native \
-"
-
-inherit distro_features_check gnomebase gsettings gtk-icon-cache gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "eae3be75e77ff1a7ea3174be25e62d03"
-SRC_URI[archive.sha256sum] = "0adc4bfae8b49f7a1d929c22ef20933bd41fb4a8b458280f44c65f9e45b4c9c3"
-
-PACKAGECONFIG[modemmanager] = "--with-wwan,--without-wwan,modemmanager"
-PACKAGECONFIG ??= ""
-
-EXTRA_OECONF = " \
- --without-selinux \
-"
-
-do_configure_append() {
- # Sigh... --enable-compile-warnings=no doesn't actually turn off -Werror
- for i in $(find ${B} -name "Makefile") ; do
- sed -i -e s%-Werror[^[:space:]]*%%g $i
- done
-}
-
-# gobject-introspection related
-GI_DATA_ENABLED_libc-musl = "False"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/src/libnma/.libs:${B}/src/libnm-gtk/.libs"
-}
-
-RDEPENDS_${PN} =+ "networkmanager"
-
-FILES_${PN} += " \
- ${datadir}/appdata \
- ${datadir}/nm-applet/ \
- ${datadir}/libnm-gtk/wifi.ui \
- ${datadir}/libnma/wifi.ui \
-"
-
-# musl builds generate gir files which otherwise go un-packaged
-FILES_${PN}-dev += " \
- ${datadir}/gir-1.0 \
-"
diff --git a/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch b/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch
deleted file mode 100644
index 570cb9ef37..0000000000
--- a/meta-gnome/recipes-connectivity/obex/obexd/ssize_t_definition.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From fb5056fea9559b3ec3bb61967a112b6c793b700d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Jan 2013 21:33:34 -0800
-Subject: [PATCH] include unistd.h to get ssize_t definitions
-
-Fixes errors like
-
-| In file included from plugins/mas.c:36:0:
-| ./src/obex.h:39:1: error: unknown type name 'ssize_t'
-| ./src/obex.h:49:1: error: unknown type name 'ssize_t'
-| ./src/obex.h:50:1: error: unknown type name 'ssize_t'
-| In file included from plugins/mas.c:38:0:
-| ./src/mimetype.h:36:2: error: expected specifier-qualifier-list before 'ssize_t'
-| In file included from plugins/mas.c:39:0:
-| plugins/filesystem.h:24:1: error: unknown type name 'ssize_t'
-| plugins/mas.c:550:1: error: unknown type name 'ssize_t'
-| plugins/mas.c:557:1: error: unknown type name 'ssize_t'
-| plugins/mas.c: In function 'any_read':
-| plugins/mas.c:560:2: error: unknown type name 'ssize_t'
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- plugins/mas.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/plugins/mas.c b/plugins/mas.c
-index 1b18059..b519507 100644
---- a/plugins/mas.c
-+++ b/plugins/mas.c
-@@ -30,6 +30,7 @@
- #include <glib.h>
- #include <fcntl.h>
- #include <inttypes.h>
-+#include <unistd.h>
-
- #include <gobex/gobex.h>
- #include <gobex/gobex-apparam.h>
diff --git a/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb b/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb
deleted file mode 100644
index 6096bed735..0000000000
--- a/meta-gnome/recipes-connectivity/obex/obexd_0.48.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "OBEX Server and Client"
-# obexd was integrated into bluez5
-DEPENDS = "glib-2.0 dbus libical"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
-
-SRC_URI = "http://www.kernel.org/pub/linux/bluetooth/obexd-${PV}.tar.gz \
- file://ssize_t_definition.patch \
-"
-SRC_URI[md5sum] = "d03cf9bad2983243837f4f6d76ef14a6"
-SRC_URI[sha256sum] = "eaa9d8d9542700e6750918d72a3ce00f8cf3a2771d3e2516efd1be5a05f78582"
-
-inherit autotools-brokensep pkgconfig
-
-PACKAGES =+ "obex-client obex-plugins"
-
-FILES_${PN} += "${datadir}/dbus-1/services/${PN}.service"
-FILES_obex-client = "${libexecdir}/obex-client \
- ${datadir}/dbus-1/services/obex-client.service"
-# currently the plugins are empty
-FILES_obex-plugins = "${libdir}/obex/plugins"
diff --git a/meta-gnome/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch b/meta-gnome/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch
deleted file mode 100644
index 03cb762ce0..0000000000
--- a/meta-gnome/recipes-devtools/glade/glade3/0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From fcf29abe59607b5791f9de18ddb86b9ae3c9b7cc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 23:50:05 -0700
-Subject: [PATCH] Add G_GNUC_PRINTF on functions with format strings
-
-This allows compilation with clang without errors, even when
--Wformat-nonliteral is active (as long as there are no real cases of
-non literal formatting).
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gladeui/glade-command.c | 4 ++--
- gladeui/glade-utils.c | 4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gladeui/glade-command.c b/gladeui/glade-command.c
-index 9819766..4ac40ee 100644
---- a/gladeui/glade-command.c
-+++ b/gladeui/glade-command.c
-@@ -266,7 +266,7 @@ glade_command_collapse (GladeCommand *command,
- *
- * Marks the begining of a group.
- */
--void
-+G_GNUC_PRINTF(1, 2) void
- glade_command_push_group (const gchar *fmt, ...)
- {
- va_list args;
-@@ -655,7 +655,7 @@ glade_command_set_properties_list (GladeProject *project, GList *props)
-
- multiple = g_list_length (me->sdata) > 1;
- if (multiple)
-- glade_command_push_group (cmd->description);
-+ glade_command_push_group ("%s", cmd->description);
-
-
- glade_command_check_group (GLADE_COMMAND (me));
-diff --git a/gladeui/glade-utils.c b/gladeui/glade-utils.c
-index ae52501..c51ae59 100644
---- a/gladeui/glade-utils.c
-+++ b/gladeui/glade-utils.c
-@@ -197,7 +197,7 @@ glade_utils_get_pspec_from_funcname (const gchar *funcname)
- * selected "OK", True if the @type was GLADE_UI_YES_OR_NO and
- * the user selected "YES"; False otherwise.
- */
--gint
-+G_GNUC_PRINTF(4, 5) gint
- glade_util_ui_message (GtkWidget *parent,
- GladeUIMessageType type,
- GtkWidget *widget,
-@@ -320,7 +320,7 @@ remove_message_timeout (FlashInfo * fi)
- *
- * Flash a temporary message on the statusbar.
- */
--void
-+G_GNUC_PRINTF(3, 4) void
- glade_util_flash_message (GtkWidget *statusbar, guint context_id, gchar *format, ...)
- {
- va_list args;
---
-2.14.1
-
diff --git a/meta-gnome/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch b/meta-gnome/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
deleted file mode 100644
index 1b24c39ce8..0000000000
--- a/meta-gnome/recipes-devtools/glade/glade3/0001-gnome-doc-utils.make-sysrooted-pkg-config.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From aed002cd9ff9e8f972120fbac33b4a65aba952e1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 25 Sep 2012 10:28:33 +0200
-Subject: [PATCH] gnome-doc-utils.make: sysrooted pkg-config
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-same approach as used used in gnome-disk-utility:
-
-In cross environment we have to prepend the sysroot to the path found by
-pkgconfig since the path returned from pkgconfig does not have sysroot prefixed
-it ends up using the files from host system. Now usually people have gnome installed
-so the build succeeds but if you dont have gnome installed on build host then
-it wont find the files on host system and packages using gnome-doc-utils wont
-compile.
-
-This should work ok with non sysrooted builds too since in those cases PKG_CONFIG_SYSROOT_DIR
-will be empty
-
-Upstream-Status: pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- gnome-doc-utils.make | 10 +++++-----
- 1 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/gnome-doc-utils.make b/gnome-doc-utils.make
-index 42d9df3..f71bbfa 100644
---- a/gnome-doc-utils.make
-+++ b/gnome-doc-utils.make
-@@ -133,11 +133,11 @@ _DOC_ABS_SRCDIR = @abs_srcdir@
- _xml2po ?= `which xml2po`
- _xml2po_mode = $(if $(DOC_ID),mallard,docbook)
-
--_db2html ?= `$(PKG_CONFIG) --variable db2html gnome-doc-utils`
--_db2omf ?= `$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
--_chunks ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
--_credits ?= `$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
--_ids ?= $(shell $(PKG_CONFIG) --variable xmldir gnome-doc-utils)/gnome/xslt/docbook/utils/ids.xsl
-+_db2html ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2html gnome-doc-utils`
-+_db2omf ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable db2omf gnome-doc-utils`
-+_chunks ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/chunks.xsl
-+_credits ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/credits.xsl
-+_ids ?= ${PKG_CONFIG_SYSROOT_DIR}`$(PKG_CONFIG) --variable xmldir gnome-doc-utils`/gnome/xslt/docbook/utils/ids.xsl
-
- if ENABLE_SK
- _ENABLE_SK = true
---
-1.7.6.5
-
diff --git a/meta-gnome/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch b/meta-gnome/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
deleted file mode 100644
index f735ff8190..0000000000
--- a/meta-gnome/recipes-devtools/glade/glade3/0002-fix-gcc-6-build.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 5aa3d2abb905fa8594f6c6572a87809da54c9342 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Mon, 5 Sep 2016 11:25:27 +0200
-Subject: [PATCH] fix gcc-6 build
-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@googlemail.com>
----
- gladeui/glade-editor-property.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c
-index a0c1039..5e9ac38 100644
---- a/gladeui/glade-editor-property.c
-+++ b/gladeui/glade-editor-property.c
-@@ -2703,6 +2703,8 @@ glade_eprop_object_view (gboolean radio)
- }
-
-
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- static gchar *
- glade_eprop_object_dialog_title (GladeEditorProperty *eprop)
- {
-@@ -2731,6 +2733,7 @@ glade_eprop_object_dialog_title (GladeEditorProperty *eprop)
- return g_strdup_printf (format, g_type_name
- (eprop->klass->pspec->value_type));
- }
-+#pragma GCC diagnostic pop
-
-
- gboolean
---
-2.5.5
-
diff --git a/meta-gnome/recipes-devtools/glade/glade3_3.8.5.bb b/meta-gnome/recipes-devtools/glade/glade3_3.8.5.bb
deleted file mode 100644
index c3da3e9b90..0000000000
--- a/meta-gnome/recipes-devtools/glade/glade3_3.8.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Glade - A User Interface Designer"
-HOMEPAGE = "http://www.gnu.org/software/gnash"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
- file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
- file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "gtk+ gnome-doc-utils gnome-common libxml2 intltool-native"
-
-inherit distro_features_check autotools pkgconfig pythonnative gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade3/3.8/glade3-${PV}.tar.xz \
- file://0001-gnome-doc-utils.make-sysrooted-pkg-config.patch \
- file://0002-fix-gcc-6-build.patch \
- file://0001-Add-G_GNUC_PRINTF-on-functions-with-format-strings.patch \
- "
-SRC_URI[md5sum] = "4e4b4f5ee34a03e017e4cef97d796c1f"
-SRC_URI[sha256sum] = "58a5f6e4df4028230ddecc74c564808b7ec4471b1925058e29304f778b6b2735"
-
-EXTRA_OECONF += "--disable-scrollkeeper"
-
-FILES_${PN} += "${datadir}/icons"
diff --git a/meta-gnome/recipes-extended/gparted/files/0001-Install-polkit-action-unconditionally-executable-pke.patch b/meta-gnome/recipes-extended/gparted/files/0001-Install-polkit-action-unconditionally-executable-pke.patch
new file mode 100644
index 0000000000..a7fc4d5973
--- /dev/null
+++ b/meta-gnome/recipes-extended/gparted/files/0001-Install-polkit-action-unconditionally-executable-pke.patch
@@ -0,0 +1,47 @@
+From 79fd11f1d8e4827ae8aee03420a5c92038fe4ef5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 26 Feb 2020 20:25:06 +0100
+Subject: [PATCH] Install polkit action unconditionally - executable pkexec is
+ not in our sysroot
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ configure.ac | 17 +----------------
+ 1 file changed, 1 insertion(+), 16 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 43503ac..b339ee5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -24,22 +24,7 @@ dnl======================
+ dnl Find graphical privilege escalation program
+ dnl======================
+ dnl Check for pkexec >= 0.102 for it's ability to run X11 apps.
+-AM_CONDITIONAL([INSTALL_POLKIT_ACTIONS], false)
+-PKEXEC_REQUIRED_VERSION='0.102'
+-AC_MSG_CHECKING([for pkexec >= $PKEXEC_REQUIRED_VERSION])
+-PKEXEC_REQUIRED_INT=`echo "$PKEXEC_REQUIRED_VERSION" | $AWK -F. '{print $1 * 10000 + $2}'`
+-PKEXEC_VERSION_OUTPUT=`pkexec --version 2> /dev/null` ||
+- AC_MSG_RESULT([not found])
+-if test "x$PKEXEC_VERSION_OUTPUT" != 'x'; then
+- PKEXEC_FOUND_VERSION=`echo "$PKEXEC_VERSION_OUTPUT" | head -1 | cut -d' ' -f3`
+- PKEXEC_FOUND_INT=`echo "$PKEXEC_FOUND_VERSION" | $AWK -F. '{print $1 * 10000 + $2}'`
+- AC_MSG_RESULT([$PKEXEC_FOUND_VERSION found])
+- if test "$PKEXEC_FOUND_INT" -ge "$PKEXEC_REQUIRED_INT"; then
+- GKSUPROG='pkexec --disable-internal-agent'
+- AC_SUBST([GKSUPROG])
+- AM_CONDITIONAL([INSTALL_POLKIT_ACTIONS], true)
+- fi
+-fi
++AM_CONDITIONAL([INSTALL_POLKIT_ACTIONS], true)
+
+ dnl Check for alternative graphical privilege escalation programs.
+ if test "x$GKSUPROG" = 'x'; then
+--
+2.21.0
+
diff --git a/meta-gnome/recipes-extended/gparted/files/gparted_polkit b/meta-gnome/recipes-extended/gparted/files/gparted_polkit
deleted file mode 100644
index feabd0eebb..0000000000
--- a/meta-gnome/recipes-extended/gparted/files/gparted_polkit
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-# polkit installed?
-if [ $(which pkexec) ]; then
- pkexec --disable-internal-agent "%sbindir%/gparted" "$@"
-else
- %sbindir%/gparted "$@"
-fi
-
-
diff --git a/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy b/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy
deleted file mode 100644
index 77a91923eb..0000000000
--- a/meta-gnome/recipes-extended/gparted/files/org.yoctoproject.pkexec.run-gparted.policy
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE policyconfig PUBLIC
- "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
- "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
-<policyconfig>
-
- <action id="org.yoctoproject.pkexec.run-gparted">
- <description>Run the GParted program</description>
- <message>Authentication is required to run the GParted Partition Editor</message>
- <icon_name>gparted</icon_name>
- <defaults>
- <allow_any>auth_admin</allow_any>
- <allow_inactive>auth_admin</allow_inactive>
- <allow_active>auth_admin</allow_active>
- </defaults>
- <annotate key="org.freedesktop.policykit.exec.path">/usr/sbin/gparted</annotate>
- <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
- </action>
-
-</policyconfig>
diff --git a/meta-gnome/recipes-extended/gparted/gparted_0.31.0.bb b/meta-gnome/recipes-extended/gparted/gparted_0.31.0.bb
deleted file mode 100644
index 58beaf6c57..0000000000
--- a/meta-gnome/recipes-extended/gparted/gparted_0.31.0.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "A partition editor to graphically manage disk partitions "
-HOMEPAGE = "http://gparted.org/index.php"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit distro_features_check autotools pkgconfig gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = " \
- ${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
- file://org.yoctoproject.pkexec.run-gparted.policy \
- file://gparted_polkit \
-"
-SRC_URI[md5sum] = "c554cc5734c50459dd551bd3fa10710e"
-SRC_URI[sha256sum] = "3b7b49a434d9e4b397bc41a1f5acab8539b9ff402b472dfd83ad77b2decd07ba"
-
-DEPENDS = "glib-2.0 glib-2.0-native gtkmm parted gnome-doc-utils intltool-native"
-
-do_install_append() {
- # Add a script which checks if polkit is installed.
- # If yes: a policy is requested from polkit / otherwise start as usual
- install ${WORKDIR}/gparted_polkit ${D}${sbindir}
- sed -i 's:%sbindir%:${sbindir}:g' ${D}${sbindir}/gparted_polkit
- # relink menu entry to use our script
- sed -i 's:${sbindir}/gparted:${sbindir}/gparted_polkit:g' ${D}${datadir}/applications/gparted.desktop
-
- install -d ${D}${datadir}/polkit-1/actions
- install ${WORKDIR}/org.yoctoproject.pkexec.run-gparted.policy ${D}${datadir}/polkit-1/actions/org.yoctoproject.pkexec.run-gparted.policy
-}
-
-EXTRA_OECONF = "--disable-scrollkeeper --disable-doc"
-
-FILES_${PN} += " \
- ${datadir}/appdata \
- ${datadir}/icons \
- ${datadir}/polkit-1 \
-"
-
-RDEPENDS_${PN} = "dosfstools mtools e2fsprogs"
diff --git a/meta-gnome/recipes-extended/gparted/gparted_1.5.0.bb b/meta-gnome/recipes-extended/gparted/gparted_1.5.0.bb
new file mode 100644
index 0000000000..fdfb1ef47f
--- /dev/null
+++ b/meta-gnome/recipes-extended/gparted/gparted_1.5.0.bb
@@ -0,0 +1,44 @@
+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] = "3c95ea26a944083ff1d9b17639b1e2ad9758df225dc751ff407b2a6aa092a8de"
+
+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 \
+"
+
+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.106.bb b/meta-gnome/recipes-gimp/babl/babl_0.1.106.bb
new file mode 100644
index 0000000000..5a5f4f5e7c
--- /dev/null
+++ b/meta-gnome/recipes-gimp/babl/babl_0.1.106.bb
@@ -0,0 +1,18 @@
+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"
+
+SRC_URI = "https://download.gimp.org/pub/${BPN}/0.1/${BP}.tar.xz"
+SRC_URI[sha256sum] = "d325135d3304f088c134cc620013acf035de2e5d125a50a2d91054e7377c415f"
+
+FILES:${PN} += "${libdir}/${BPN}-${@gnome_verdir("${PV}")}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gimp/gegl/gegl_0.4.46.bb b/meta-gnome/recipes-gimp/gegl/gegl_0.4.46.bb
new file mode 100644
index 0000000000..3a9478785d
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gegl/gegl_0.4.46.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"
+
+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] = "d0b3b2481bc8774c5f3d0a487611910166d18eef823a859fb91e781ab7b1e892"
+
+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.34.bb b/meta-gnome/recipes-gimp/gimp/gimp_2.10.34.bb
new file mode 100644
index 0000000000..7343036807
--- /dev/null
+++ b/meta-gnome/recipes-gimp/gimp/gimp_2.10.34.bb
@@ -0,0 +1,71 @@
+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 \
+ 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] = "84004642d351b398a4293cd7fd3592044a944f05bb52850ee6068f247c657aa3"
+
+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/mypaint/libmypaint/0001-make-build-compatible-w.-autoconf-2.7.patch b/meta-gnome/recipes-gimp/mypaint/libmypaint/0001-make-build-compatible-w.-autoconf-2.7.patch
new file mode 100644
index 0000000000..28e279438a
--- /dev/null
+++ b/meta-gnome/recipes-gimp/mypaint/libmypaint/0001-make-build-compatible-w.-autoconf-2.7.patch
@@ -0,0 +1,32 @@
+From 712a101c9aa2eb8548e4d0100a4a2eaf76fad164 Mon Sep 17 00:00:00 2001
+From: Jesper Lloyd <jpl.lloyd@gmail.com>
+Date: Wed, 20 Jan 2021 20:21:53 +0100
+Subject: [PATCH] make build compatible w. autoconf 2.7
+
+Workaround for stricter behaviour (due to a bugfix) in 2.7,
+which makes a failing intltoolize macro check fail the build.
+
+Fix provided by hosiet.
+
+Upstream-Status: Backport [https://github.com/mypaint/libmypaint/commit/a6bac154db018e1f1cc4dbddc34f6c8422c891fb]
+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 416d9fe..48b9d02 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -248,7 +248,7 @@ if test "x$enable_i18n" != "xno"; then
+ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE",
+ [The prefix for our gettext translation domains.])
+ AC_SUBST(GETTEXT_PACKAGE)
+- IT_PROG_INTLTOOL
++IT_PROG_INTLTOOL
+ AM_GLIB_GNU_GETTEXT
+
+ dnl Debian: stdlib
+--
+2.30.0
+
diff --git a/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb b/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb
new file mode 100644
index 0000000000..d509aa3dd0
--- /dev/null
+++ b/meta-gnome/recipes-gimp/mypaint/libmypaint_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "libmypaint is a library for making brushstrokes"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d13203ab4013e5a14dd62105f75d58b"
+
+DEPENDS = " \
+ glib-2.0-native \
+ intltool-native \
+ glib-2.0 \
+ babl \
+ json-c \
+"
+
+inherit autotools gobject-introspection gettext pkgconfig python3native
+
+SRC_URI = "git://github.com/mypaint/libmypaint.git;protocol=https;branch=libmypaint-v1 \
+ file://0001-make-build-compatible-w.-autoconf-2.7.patch \
+ "
+SRCREV = "2768251dacce3939136c839aeca413f4aa4241d0"
+PV = "1.6.1"
+S = "${WORKDIR}/git"
+
+do_configure:append() {
+ # autogen uses python2 so generate headers ourselves
+ cd ${S}
+ python3 generate.py mypaint-brush-settings-gen.h brushsettings-gen.h
+}
diff --git a/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb
new file mode 100644
index 0000000000..ca3912da88
--- /dev/null
+++ b/meta-gnome/recipes-gimp/mypaint/mypaint-brushes-1.0_git.bb
@@ -0,0 +1,12 @@
+SUMMARY = "MyPaint brushes"
+LICENSE = "CC0-1.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=65d3616852dbf7b1a6d4b53b00626032"
+
+inherit autotools allarch
+
+SRC_URI = "git://github.com/mypaint/mypaint-brushes.git;protocol=https;branch=v1.3.x"
+SRCREV = "8a0124ac0675103eae8fa41fad533851768ae1ce"
+PV = "1.3.1"
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${datadir}/mypaint-data"
diff --git a/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch b/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch
deleted file mode 100644
index 3731a23f19..0000000000
--- a/meta-gnome/recipes-gnome/abiword/abiword/0001-Bug-13770-Require-C-11-from-now-on.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From f6d0dc338fe867c1b064682ae7f15bffe019b306 Mon Sep 17 00:00:00 2001
-From: Hubert Figuiere <hub@figuiere.net>
-Date: Tue, 12 Apr 2016 02:55:47 +0000
-Subject: [PATCH] Bug 13770 - Require C++11 from now on.
-
-git-svn-id: svn+ssh://svn.abisource.com/svnroot/abiword/trunk@35197 bcba8976-2d24-0410-9c9c-aab3bd5fdfd6
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- ax_cxx_compile_stdcxx_11.m4 | 133 +++++++++++++++++++++++++++++++++++
- configure.ac | 1 +
- src/wp/ap/gtk/ap_UnixApp.cpp | 2 +-
- 3 files changed, 135 insertions(+), 1 deletion(-)
- create mode 100644 ax_cxx_compile_stdcxx_11.m4
-
-diff --git a/ax_cxx_compile_stdcxx_11.m4 b/ax_cxx_compile_stdcxx_11.m4
-new file mode 100644
-index 0000000..af37acd
---- /dev/null
-+++ b/ax_cxx_compile_stdcxx_11.m4
-@@ -0,0 +1,133 @@
-+# ============================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
-+# ============================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional])
-+#
-+# DESCRIPTION
-+#
-+# Check for baseline language coverage in the compiler for the C++11
-+# standard; if necessary, add switches to CXXFLAGS to enable support.
-+#
-+# The first argument, if specified, indicates whether you insist on an
-+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
-+# -std=c++11). If neither is specified, you get whatever works, with
-+# preference for an extended mode.
-+#
-+# The second argument, if specified 'mandatory' or if left unspecified,
-+# indicates that baseline C++11 support is required and that the macro
-+# should error out if no mode with that support is found. If specified
-+# 'optional', then configuration proceeds regardless, after defining
-+# HAVE_CXX11 if and only if a supporting mode is found.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-+#
-+# Copying and distribution of this file, with or without modification, are
-+# permitted in any medium without royalty provided the copyright notice
-+# and this notice are preserved. This file is offered as-is, without any
-+# warranty.
-+
-+#serial 3
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [
-+ template <typename T>
-+ struct check
-+ {
-+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
-+ };
-+
-+ typedef check<check<bool>> right_angle_brackets;
-+
-+ int a;
-+ decltype(a) b;
-+
-+ typedef check<int> check_type;
-+ check_type c;
-+ check_type&& cr = static_cast<check_type&&>(c);
-+
-+ auto d = a;
-+])
-+
-+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl
-+ m4_if([$1], [], [],
-+ [$1], [ext], [],
-+ [$1], [noext], [],
-+ [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl
-+ m4_if([$2], [], [ax_cxx_compile_cxx11_required=true],
-+ [$2], [mandatory], [ax_cxx_compile_cxx11_required=true],
-+ [$2], [optional], [ax_cxx_compile_cxx11_required=false],
-+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])])dnl
-+ AC_LANG_PUSH([C++])dnl
-+ ac_success=no
-+ AC_CACHE_CHECK(whether $CXX supports C++11 features by default,
-+ ax_cv_cxx_compile_cxx11,
-+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
-+ [ax_cv_cxx_compile_cxx11=yes],
-+ [ax_cv_cxx_compile_cxx11=no])])
-+ if test x$ax_cv_cxx_compile_cxx11 = xyes; then
-+ ac_success=yes
-+ fi
-+
-+ m4_if([$1], [noext], [], [dnl
-+ if test x$ac_success = xno; then
-+ for switch in -std=gnu++11 -std=gnu++0x; do
-+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
-+ AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
-+ $cachevar,
-+ [ac_save_CXXFLAGS="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
-+ [eval $cachevar=yes],
-+ [eval $cachevar=no])
-+ CXXFLAGS="$ac_save_CXXFLAGS"])
-+ if eval test x\$$cachevar = xyes; then
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ ac_success=yes
-+ break
-+ fi
-+ done
-+ fi])
-+
-+ m4_if([$1], [ext], [], [dnl
-+ if test x$ac_success = xno; then
-+ for switch in -std=c++11 -std=c++0x; do
-+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch])
-+ AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch,
-+ $cachevar,
-+ [ac_save_CXXFLAGS="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])],
-+ [eval $cachevar=yes],
-+ [eval $cachevar=no])
-+ CXXFLAGS="$ac_save_CXXFLAGS"])
-+ if eval test x\$$cachevar = xyes; then
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ ac_success=yes
-+ break
-+ fi
-+ done
-+ fi])
-+ AC_LANG_POP([C++])
-+ if test x$ax_cxx_compile_cxx11_required = xtrue; then
-+ if test x$ac_success = xno; then
-+ AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.])
-+ fi
-+ else
-+ if test x$ac_success = xno; then
-+ HAVE_CXX11=0
-+ AC_MSG_NOTICE([No compiler with C++11 support was found])
-+ else
-+ HAVE_CXX11=1
-+ AC_DEFINE(HAVE_CXX11,1,
-+ [define if the compiler supports basic C++11 syntax])
-+ fi
-+
-+ AC_SUBST(HAVE_CXX11)
-+ fi
-+])
-diff --git a/configure.ac b/configure.ac
-index 48228be..f7be7de 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -131,6 +131,7 @@ win_pkgs="$enchant_req"
-
- AC_PROG_CC
- AC_PROG_CXX
-+AX_CXX_COMPILE_STDCXX_11(noext,mandatory)
- #AC_PROG_OBJC
- AC_PROG_INSTALL
- # For libtool 1.5.x compatability (AC_PROG_LIBTOOL is deprecated version of LT_INIT)
-diff --git a/src/wp/ap/gtk/ap_UnixApp.cpp b/src/wp/ap/gtk/ap_UnixApp.cpp
-index 061a304..260f8e5 100644
---- a/src/wp/ap/gtk/ap_UnixApp.cpp
-+++ b/src/wp/ap/gtk/ap_UnixApp.cpp
-@@ -863,7 +863,7 @@ static bool is_so (const char *file) {
- if (len < (strlen(G_MODULE_SUFFIX) + 2)) // this is ".so" and at least one char for the filename
- return false;
- const char *suffix = file+(len-3);
-- if(0 == strcmp (suffix, "."G_MODULE_SUFFIX))
-+ if(0 == strcmp (suffix, "." G_MODULE_SUFFIX))
- return true;
- return false;
- }
diff --git a/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch b/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch
deleted file mode 100644
index 0dff1411d4..0000000000
--- a/meta-gnome/recipes-gnome/abiword/abiword/0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From c646159ce817506131b58fdab1cdc1cd6364df7a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Sun, 7 Feb 2016 21:45:20 +0100
-Subject: [PATCH] plugins/aiksaurus/Makefile.am: remove uncomplete options
- WITH_BUILTIN_AIKSAURUS_GTK
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* with gtk2 we won't use it
-* it is missing in configure.ac causing
-
-| plugins/aiksaurus/Makefile.am:5: error: WITH_BUILTIN_AIKSAURUS_GTK does not appear in AM_CONDITIONAL
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- plugins/aiksaurus/Makefile.am | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/plugins/aiksaurus/Makefile.am b/plugins/aiksaurus/Makefile.am
-index d402c58..1034e2a 100644
---- a/plugins/aiksaurus/Makefile.am
-+++ b/plugins/aiksaurus/Makefile.am
-@@ -2,10 +2,6 @@ SUBDIRS =
-
- if TOOLKIT_GTK
-
--if WITH_BUILTIN_AIKSAURUS_GTK
--SUBDIRS += aiksaurusgtk3
--platform_lib = aiksaurusgtk3/libAiksaurusGtk3.la
--endif
-
- endif
-
---
-2.5.0
-
diff --git a/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb b/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb
deleted file mode 100644
index 0f3f507f3d..0000000000
--- a/meta-gnome/recipes-gnome/abiword/abiword_3.0.2.bb
+++ /dev/null
@@ -1,142 +0,0 @@
-SUMMARY = "AbiWord is free word processing program similar to Microsoft(r) Word"
-HOMEPAGE = "http://www.abiword.org"
-SECTION = "x11/office"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ecd3ac329fca77e2d0e412bec38e1c20"
-DEPENDS = " \
- perl-native \
- gtk+ \
- gtkmathview \
- wv \
- libfribidi \
- jpeg \
- libpng \
- librsvg \
- libwmf-native \
- asio \
- evolution-data-server \
- libxslt \
- ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'redland rasqal', '', d)} \
-"
-RDEPENDS_${PN}_append_libc-glibc = " \
- glibc-gconv-ibm850 glibc-gconv-cp1252 \
- glibc-gconv-iso8859-15 glibc-gconv-iso8859-1 \
-"
-RCONFLICTS_${PN} = "${PN}-embedded"
-
-SRC_URI = "http://www.abisource.com/downloads/${BPN}/${PV}/source/${BP}.tar.gz \
- file://0001-plugins-aiksaurus-Makefile.am-remove-uncomplete-opti.patch \
- file://0001-Bug-13770-Require-C-11-from-now-on.patch \
- "
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c5edcc3ccd864b19004d14e9c1c9a26a"
-
-SRC_URI[md5sum] = "cda6dd58c747c133b421cc7eb18f5796"
-SRC_URI[sha256sum] = "afbfd458fd02989d8b0c6362ba8a4c14686d89666f54cfdb5501bd2090cf3522"
-
-#want 3.x from 3.x.y for the installation directory
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-inherit distro_features_check autotools-brokensep pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGECONFIG ??= " \
- collab-backend-xmpp collab-backend-tcp \
- ${@bb.utils.contains('BBFILE_COLLECTIONS', 'office-layer', 'libical', '', d)} \
-"
-PACKAGECONFIG[libical] = "--with-libical,--without-libical,libical raptor2"
-PACKAGECONFIG[spell] = "--enable-spell,--disable-spell,enchant"
-PACKAGECONFIG[collab-backend-xmpp] = "--enable-collab-backend-xmpp,--disable-collab-backend-xmpp,libgsf libxml2 loudmouth"
-PACKAGECONFIG[collab-backend-tcp] = "--enable-collab-backend-tcp,--disable-collab-backend-tcp,libgsf libxml2"
-PACKAGECONFIG[collab-backend-service] = "--enable-collab-backend-service,--disable-collab-backend-service,libgsf libxml2 libsoup-2.4 gnutls"
-PACKAGECONFIG[collab-backend-telepathy] = "--enable-collab-backend-telepathy,--disable-collab-backend-telepathy,libgsf libxml2 telepathy-glib telepathy-mission-control"
-PACKAGECONFIG[collab-backend-sugar] = "--enable-collab-backend-sugar,--disable-collab-backend-sugar,libgsf libxml2 dbus-glib"
-
-EXTRA_OECONF = " --disable-static \
- --enable-plugins \
- --enable-clipart \
- --enable-templates \
- --without-gnomevfs \
- --with-gtk2 \
- --with-libwmf-config=${STAGING_DIR} \
-"
-
-LDFLAGS += "-lgmodule-2.0"
-
-do_compile() {
- cd goffice-bits2
- make goffice-paths.h
- make libgoffice.la
- cd ${B}
- oe_runmake
-}
-
-PACKAGES += " ${PN}-clipart ${PN}-strings ${PN}-systemprofiles ${PN}-templates "
-
-FILES_${PN} += " \
- ${libdir}/lib${PN}-*.so \
- ${datadir}/mime-info \
- ${datadir}/icons/* \
- ${datadir}/${PN}-${SHRT_VER}/glade \
- ${datadir}/${PN}-${SHRT_VER}/scripts \
- ${datadir}/${PN}-${SHRT_VER}/system.profile-en \
- ${datadir}/${PN}-${SHRT_VER}/system.profile-en_GB \
- ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt \
- ${datadir}/${PN}-${SHRT_VER}/templates/normal.awt-en_GB \
- ${datadir}/${PN}-${SHRT_VER}/templates/Employee-Directory.awt \
- ${datadir}/${PN}-${SHRT_VER}/templates/Business-Report.awt \
- ${datadir}/${PN}-${SHRT_VER}/templates/Fax-Coversheet.awt \
- ${datadir}/${PN}-${SHRT_VER}/templates/Resume.awt \
- ${datadir}/${PN}-${SHRT_VER}/templates/Two-Columns.awt \
- ${datadir}/${PN}-${SHRT_VER}/templates/Memo.awt \
- ${datadir}/${PN}-${SHRT_VER}/templates/Press-Release.awt \
- ${datadir}/${PN}-${SHRT_VER}/certs \
- ${datadir}/${PN}-${SHRT_VER}/ui \
- ${datadir}/${PN}-${SHRT_VER}/xsl* \
- ${datadir}/${PN}-${SHRT_VER}/mime-info \
- ${datadir}/${PN}-${SHRT_VER}/Pr*.xml \
-"
-
-# don't steal /usr/lib/libabiword-3.0.so from ${PN}
-# in this case it's needed in ${PN}
-FILES_${PN}-dev = " \
- ${includedir} \
- ${libdir}/pkgconfig \
- ${libdir}/${PN}*.la \
- ${libdir}/lib${PN}*.la \
- ${libdir}/${PN}-${SHRT_VER}/plugins/*.la \
-"
-FILES_${PN}-dbg += "${libdir}/${PN}-${SHRT_VER}/plugins/.debug"
-FILES_${PN}-doc += "${datadir}/${PN}-*/readme*"
-
-FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/strings"
-FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/system.profile*"
-FILES_${PN}-clipart += "${datadir}/${PN}-${SHRT_VER}/clipart"
-FILES_${PN}-strings += "${datadir}/${PN}-${SHRT_VER}/AbiWord/strings"
-FILES_${PN}-systemprofiles += "${datadir}/${PN}-${SHRT_VER}/AbiWord/system.profile*"
-FILES_${PN}-templates += "${datadir}/${PN}-${SHRT_VER}/templates"
-
-PACKAGES_DYNAMIC += "^${PN}-meta.* ^${PN}-plugin-.*"
-
-python populate_packages_prepend () {
- abiword_libdir = d.expand('${libdir}/${PN}-${SHRT_VER}/plugins')
- do_split_packages(d, abiword_libdir, '(.*)\.so$', 'abiword-plugin-%s', 'Abiword plugin for %s', extra_depends='')
-
- metapkg = "abiword-meta"
- d.setVar('ALLOW_EMPTY_' + metapkg, "1")
- d.setVar('FILES_' + metapkg, "")
- blacklist = [ 'abiword-plugins-dbg', 'abiword-plugins', 'abiword-plugins-doc', 'abiword-plugins-dev', 'abiword-plugins-locale' ]
- metapkg_rdepends = []
- packages = d.getVar('PACKAGES').split()
- for pkg in packages[1:]:
- if not pkg in blacklist 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") and not pkg.count("abiword-doc"):
- print("Modifying %s" % pkg)
- metapkg_rdepends.append(pkg)
- d.setVar('RDEPENDS_' + metapkg, ' '.join(metapkg_rdepends))
- d.setVar('DESCRIPTION_' + metapkg, 'abiword-plugin meta package')
- packages.append(metapkg)
- d.setVar('PACKAGES', ' '.join(packages))
-}
-
-FILES_${PN}-plugin-openxml += "${datadir}/${PN}-${SHRT_VER}/omml_xslt"
diff --git a/meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb b/meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb
new file mode 100644
index 0000000000..fbc8f38454
--- /dev/null
+++ b/meta-gnome/recipes-gnome/amtk/amtk_5.6.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Actions, Menus and Toolbars Kit"
+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 \
+ gtk-doc-native \
+ libxslt-native \
+ docbook-xsl-stylesheets-native \
+ python3-pygments-native \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+GIR_MESON_OPTION = ""
+
+inherit gnomebase gettext features_check gobject-introspection
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "d50115b85c872aac296934b5ee726a3fa156c6f5ad96d27e0edd0aa5ad173228"
diff --git a/meta-gnome/recipes-gnome/dconf/dconf-editor_43.0.bb b/meta-gnome/recipes-gnome/dconf/dconf-editor_43.0.bb
new file mode 100644
index 0000000000..5b37645604
--- /dev/null
+++ b/meta-gnome/recipes-gnome/dconf/dconf-editor_43.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Configuration editor for dconf"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = " \
+ dconf \
+ gtk+3 \
+ glib-2.0 \
+ libhandy\
+"
+
+inherit gnomebase vala gsettings bash-completion pkgconfig gtk-icon-cache
+
+SRC_URI[archive.sha256sum] = "935a3c2dd76cc2a93cd5aee9a54d3947fb111eb396f4b63dc5f0ba8f8d099136"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
diff --git a/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb b/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb
deleted file mode 100644
index e24bde4497..0000000000
--- a/meta-gnome/recipes-gnome/dconf/dconf_0.18.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "configuation database system"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-SECTION = "x11/gnome"
-
-inherit gnomebase gsettings
-SRC_URI[archive.md5sum] = "69a12ed68893f2e1e81ac4e531bc1515"
-SRC_URI[archive.sha256sum] = "109b1bc6078690af1ed88cb144ef5c5aee7304769d8bdc82ed48c3696f10c955"
-GNOME_COMPRESS_TYPE = "xz"
-
-DEPENDS = "dbus glib-2.0 libxml2 intltool-native"
-
-inherit vala gtk-doc distro_features_check
-
-PACKAGECONFIG ??= "${@bb.utils.contains("DISTRO_FEATURES", "x11", "editor", "", d)}"
-
-#note: editor will be removed in version 0.23.1
-PACKAGECONFIG[editor] = "--enable-editor,--disable-editor,gtk+3"
-
-REQUIRED_DISTRO_FEATURES = "${@bb.utils.contains("PACKAGECONFIG", "editor", "x11", "", d)}"
-
-EXTRA_OECONF += "--disable-man"
-
-PACKAGES =+ "${@bb.utils.contains("DISTRO_FEATURES", "x11", "dconf-editor", "", d)}"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1 \
- ${libdir}/gio/modules/*.so \
- ${datadir}/bash-completion \
-"
-FILES_dconf-editor = " \
- ${bindir}/dconf-editor \
- ${datadir}/icons \
-"
-FILES_${PN}-dbg += "${libdir}/gio/modules/.debug/libdconfsettings.so"
diff --git a/meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb b/meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb
new file mode 100644
index 0000000000..6641be86ee
--- /dev/null
+++ b/meta-gnome/recipes-gnome/dconf/dconf_0.40.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "configuation database system"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+SECTION = "x11/gnome"
+
+SRC_URI[archive.sha256sum] = "cf7f22a4c9200421d8d3325c5c1b8b93a36843650c9f95d6451e20f0bcb24533"
+
+DEPENDS = "dbus glib-2.0 intltool-native"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase bash-completion vala
+
+# I/O error : Attempt to load network entity http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl
+EXTRA_OEMESON = "-Dman=false"
+# no bash-completion for native
+EXTRA_OEMESON:append:class-native = " -Dbash_completion=false"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${systemd_user_unitdir} \
+ ${libdir}/gio/modules/*.so \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb b/meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb
deleted file mode 100644
index 57a8720f21..0000000000
--- a/meta-gnome/recipes-gnome/desktop-file-utils/desktop-file-utils_0.18.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/desktop-file-utils"
-DESCRIPTION = "desktop-file-utils contains a few command line utilities for working with desktop entries:"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "glib-2.0"
-
-PR = "r1"
-
-SRC_URI = "http://www.freedesktop.org/software/desktop-file-utils/releases/desktop-file-utils-${PV}.tar.bz2"
-SRC_URI[md5sum] = "d966b743eb394650f98d5dd56b9aece1"
-SRC_URI[sha256sum] = "d9449956c1c8caa75281a3322b2bb433db42610942f0ceeaa65ccd9636c04231"
-
-inherit autotools pkgconfig
-
-CACHED_CONFIGUREVARS += "ac_cv_prog_EMACS=no"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
deleted file mode 100644
index 6ef8e8a62e..0000000000
--- a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.43.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "Devilspie2 is a window matching utility, allowing the user to perform scripted actions on windows as they are created"
-HOMEPAGE = "http://www.gusnan.se/devilspie2"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=00aefaa50aad75c21367df66102d542c \
- file://GPL3.txt;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "gtk+ glib-2.0 libwnck lua virtual/libx11"
-
-SRC_URI = " \
- http://download.savannah.gnu.org/releases/${BPN}/${BPN}_${PV}-src.tar.gz \
- file://default.lua \
- file://devilspie2.desktop \
-"
-SRC_URI[md5sum] = "26eed0b5b4af5c7e13c551eceaeab832"
-SRC_URI[sha256sum] = "ecffc17c62b41e196b72340192a90c4223329df041f135e74c0990860595f828"
-
-inherit distro_features_check pkgconfig gettext
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_compile() {
- export GTK2=1
- oe_runmake CC="${CC}" CPPFLAGS="${CPPFLAGS}" LDFLAGS=" -ldl -lm ${LDFLAGS}"
-}
-
-do_install() {
- oe_runmake DESTDIR="${D}" PREFIX="${prefix}" install
- install -d ${D}/${sysconfdir}/devilspie2
- install -m 644 ${WORKDIR}/default.lua ${D}/${sysconfdir}/devilspie2
- install -d ${D}/${sysconfdir}/xdg/autostart
- install -m 644 ${WORKDIR}/devilspie2.desktop ${D}/${sysconfdir}/xdg/autostart
-}
diff --git a/meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb
new file mode 100644
index 0000000000..01900cce39
--- /dev/null
+++ b/meta-gnome/recipes-gnome/devilspie/devilspie2_0.44.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Devilspie2 is a window matching utility, allowing the user to perform scripted actions on windows as they are created"
+HOMEPAGE = "http://www.gusnan.se/devilspie2"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=00aefaa50aad75c21367df66102d542c \
+ file://GPL3.txt;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "gtk+ glib-2.0 libwnck libxinerama lua virtual/libx11"
+
+PV .= "+git${SRCPV}"
+
+SRCREV = "b9d7ad9c09a5fb17a1562ee1d892798c646e9ec9"
+
+SRC_URI = "git://github.com/dsalt/devilspie2;branch=master;protocol=https \
+ file://default.lua \
+ file://devilspie2.desktop \
+"
+
+S = "${WORKDIR}/git"
+
+inherit features_check pkgconfig gettext
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_compile() {
+ export GTK2=1
+ oe_runmake CC="${CC}" CPPFLAGS="${CPPFLAGS}" LDFLAGS=" -ldl -lm ${LDFLAGS}"
+}
+
+do_install() {
+ oe_runmake DESTDIR="${D}" PREFIX="${prefix}" install
+ install -d ${D}/${sysconfdir}/devilspie2
+ install -m 644 ${WORKDIR}/default.lua ${D}/${sysconfdir}/devilspie2
+ install -d ${D}/${sysconfdir}/xdg/autostart
+ install -m 644 ${WORKDIR}/devilspie2.desktop ${D}/${sysconfdir}/xdg/autostart
+}
diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch b/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch
deleted file mode 100644
index a821a14ab8..0000000000
--- a/meta-gnome/recipes-gnome/eds/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 131b88a81aba3d72d566bc8a9d968941a98e0007 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Tue, 19 Dec 2017 16:37:20 +0100
-Subject: [PATCH] CMakeLists.txt: Remove TRY_RUN for iconv
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-| CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
-| _correct_iconv_EXITCODE (advanced)
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- CMakeLists.txt | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 8d07772..a2396f2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -521,13 +521,8 @@ if(NOT HAVE_ICONV)
- endif(NOT HAVE_ICONV)
-
- set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBS})
--CHECK_C_SOURCE_RUNS("#include \"${CMAKE_SOURCE_DIR}/iconv-detect.c\"" _correct_iconv)
- unset(CMAKE_REQUIRED_LIBRARIES)
-
--if(NOT _correct_iconv)
-- message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv")
--endif(NOT _correct_iconv)
--
- # ******************************
- # Backtraces for debugging
- # ******************************
---
-2.14.3
-
diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch b/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch
deleted file mode 100644
index d3b0ac6735..0000000000
--- a/meta-gnome/recipes-gnome/eds/evolution-data-server/0004-Use-recommended-way-to-handle-the-icu-namespace.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 698a0e104dcbe4b630df848fd4af7c59f76cdc37 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 5 May 2018 17:46:52 -0700
-Subject: [PATCH] Use recommended way to handle the icu namespace
-
-Fixes build with icu >= 61
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libedataserver/e-alphabet-index-private.cpp | 2 ++
- src/libedataserver/e-transliterator-private.cpp | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/src/libedataserver/e-alphabet-index-private.cpp b/src/libedataserver/e-alphabet-index-private.cpp
-index d3e44f4..ddffd99 100644
---- a/src/libedataserver/e-alphabet-index-private.cpp
-+++ b/src/libedataserver/e-alphabet-index-private.cpp
-@@ -33,9 +33,11 @@
-
- /* ICU headers */
- #include <unicode/alphaindex.h>
-+#include <unicode/ustring.h>
-
- using icu::AlphabeticIndex;
- using icu::Locale;
-+using U_ICU_NAMESPACE::UnicodeString;
-
- struct _EAlphabetIndex {
- AlphabeticIndex *priv;
-diff --git a/src/libedataserver/e-transliterator-private.cpp b/src/libedataserver/e-transliterator-private.cpp
-index bb15593..573446f 100644
---- a/src/libedataserver/e-transliterator-private.cpp
-+++ b/src/libedataserver/e-transliterator-private.cpp
-@@ -33,8 +33,10 @@
-
- /* ICU headers */
- #include <unicode/translit.h>
-+#include <unicode/ustring.h>
-
- using icu::Transliterator;
-+using U_ICU_NAMESPACE::UnicodeString;
-
- struct _ETransliterator {
- Transliterator *priv;
diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb b/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb
deleted file mode 100644
index db5dca95b9..0000000000
--- a/meta-gnome/recipes-gnome/eds/evolution-data-server_3.26.6.bb
+++ /dev/null
@@ -1,131 +0,0 @@
-SUMMARY = "Evolution database backend server"
-HOMEPAGE = "http://www.gnome.org/projects/evolution/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2 & LGPLv2+"
-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 \
- file://src/calendar/libecal/e-cal.h;endline=24;md5=e699ec3866f73f129f7a4ffffdcfc196"
-
-DEPENDS = " \
- intltool-native gperf-native \
- glib-2.0 gtk+3 gconf libgnome-keyring libgdata \
- dbus db virtual/libiconv zlib libsoup-2.4 libical nss libsecret \
-"
-
-inherit distro_features_check gnomebase cmake gtk-doc gettext gobject-introspection perlnative pythonnative
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
- file://0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch \
- file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \
- file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \
- file://iconv-detect.h \
- file://0004-Use-recommended-way-to-handle-the-icu-namespace.patch \
- "
-SRC_URI[archive.md5sum] = "ae7bbf543b2c3ff79af27e0edea5d472"
-SRC_URI[archive.sha256sum] = "e43aa1847ddc02965f560261ef88d18fb8704eddaa55555bf96b884a33e510ec"
-
-LKSTRFTIME = "HAVE_LKSTRFTIME=ON"
-LKSTRFTIME_libc-musl = "HAVE_LKSTRFTIME=OFF"
-
-EXTRA_OECMAKE = " \
- -DWITH_KRB5=OFF \
- -DENABLE_GOA=OFF \
- -DENABLE_UOA=OFF \
- -DENABLE_GOOGLE_AUTH=OFF \
- -DENABLE_WEATHER=OFF \
- -D${LKSTRFTIME} \
-"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[openldap] = "-DWITH_OPENLDAP=ON,-DWITH_OPENLDAP=OFF,openldap"
-
-EXTRA_OECONF = "--with-libdb=${STAGING_DIR_HOST}${prefix} \
- --disable-nntp --disable-gtk-doc"
-
-# -ldb needs this on some platforms
-LDFLAGS += "-lpthread -lgmodule-2.0 -lgthread-2.0"
-
-do_configure_append () {
- cp ${WORKDIR}/iconv-detect.h ${S}/src
-
- # fix native perl shebang
- sed -i 's:${STAGING_BINDIR_NATIVE}/perl-native:${bindir}:' ${B}/src/tools/addressbook-export/csv2vcard
-}
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/camel/.libs:${B}/libedataserver/.libs"
-}
-
-
-PACKAGES =+ "libcamel libcamel-dev libebook libebook-dev libecal libecal-dev \
- libedata-book libedata-book-dev libedata-cal libedata-cal-dev \
- libedataserver libedataserver-dev \
- libedataserverui libedataserverui-dev"
-
-FILES_${PN} =+ "${systemd_user_unitdir} \
- ${datadir}/dbus-1 \
- ${datadir}/evolution-data-server-*/ui/"
-RDEPENDS_${PN} += "perl"
-
-FILES_${PN}-dev =+ "${libdir}/pkgconfig/evolution-data-server-*.pc"
-FILES_${PN}-dbg =+ "${libdir}/evolution-data-server*/camel-providers/.debug \
- ${libdir}/evolution-data-server*/calendar-backends/.debug \
- ${libdir}/evolution-data-server*/addressbook-backends/.debug \
- ${libdir}/evolution-data-server*/extensions/.debug/"
-
-RRECOMMENDS_${PN}-dev += "libecal-dev libebook-dev"
-
-FILES_libcamel = "${libdir}/libcamel-*.so.* \
- ${libdir}/libcamel-provider-*.so.* \
- ${libdir}/evolution-data-server*/camel-providers/*.so \
- ${libdir}/evolution-data-server*/camel-providers/*.urls"
-FILES_libcamel-dev = "${libdir}/libcamel-*.so ${libdir}/libcamel-provider-*.so \
- ${libdir}/pkgconfig/camel*pc \
- ${libdir}/evolution-data-server*/camel-providers/*.la \
- ${includedir}/evolution-data-server*/camel"
-
-FILES_libebook = "${libdir}/libebook-*.so.*"
-FILES_libebook-dev = "${libdir}/libebook-1.2.so \
- ${libdir}/pkgconfig/libebook-*.pc \
- ${includedir}/evolution-data-server*/libebook/*.h"
-RRECOMMENDS_libebook = "libedata-book"
-
-FILES_libecal = "${libdir}/libecal-*.so.* \
- ${datadir}/evolution-data-server-1.4/zoneinfo"
-FILES_libecal-dev = "${libdir}/libecal-*.so ${libdir}/pkgconfig/libecal-*.pc \
- ${includedir}/evolution-data-server*/libecal/*.h \
- ${includedir}/evolution-data-server*/libical/*.h"
-RRECOMMENDS_libecal = "libedata-cal tzdata"
-
-FILES_libedata-book = "${libexecdir}/e-addressbook-factory \
- ${datadir}/dbus-1/services/*.AddressBook.service \
- ${libdir}/libedata-book-*.so.* \
- ${libdir}/evolution-data-server-*/extensions/libebook*.so \
- ${datadir}/evolution-data-server-1.4/weather/Locations.xml"
-FILES_libedata-book-dev = "${libdir}/libedata-book-*.so \
- ${libdir}/pkgconfig/libedata-book-*.pc \
- ${libdir}/evolution-data-server-*/extensions/libebook*.la \
- ${includedir}/evolution-data-server-*/libedata-book"
-
-FILES_libedata-cal = "${libexecdir}/e-calendar-factory \
- ${datadir}/dbus-1/services/*.Calendar.service \
- ${libdir}/libedata-cal-*.so.* \
- ${libdir}/evolution-data-server-*/extensions/libecal*.so"
-FILES_libedata-cal-dev = "${libdir}/libedata-cal-*.so \
- ${libdir}/pkgconfig/libedata-cal-*.pc \
- ${includedir}/evolution-data-server-*/libedata-cal \
- ${libdir}/evolution-data-server-*/extensions/libecal*.la"
-
-FILES_libedataserver = "${libdir}/libedataserver-*.so.*"
-FILES_libedataserver-dev = "${libdir}/libedataserver-*.so \
- ${libdir}/pkgconfig/libedataserver-*.pc \
- ${includedir}/evolution-data-server-*/libedataserver/*.h"
-
-FILES_libedataserverui = "${libdir}/libedataserverui-*.so.* ${datadir}/evolution-data-server-1.4/glade/*.glade"
-FILES_libedataserverui-dev = "${libdir}/libedataserverui-*.so \
- ${libdir}/pkgconfig/libedataserverui-*.pc \
- ${includedir}/evolution-data-server-*/libedataserverui/*.h"
diff --git a/meta-gnome/recipes-gnome/eog/eog_44.3.bb b/meta-gnome/recipes-gnome/eog/eog_44.3.bb
new file mode 100644
index 0000000000..06203fbbe0
--- /dev/null
+++ b/meta-gnome/recipes-gnome/eog/eog_44.3.bb
@@ -0,0 +1,31 @@
+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 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+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] = "d6b2d70f4b432ff8cf494c8f9029b2621d08e7817938317d64063ae6c4da9d8c"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+EXTRA_OEMESON = "-Dxmp=false"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch b/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch
deleted file mode 100644
index de739c5b39..0000000000
--- a/meta-gnome/recipes-gnome/evince/evince/0001-Add-format-attribute-to-_synctex_malloc.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 3776fd0b42e473fe51d3678bf26cdaa37e1d8e0d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 8 Apr 2017 13:36:12 -0700
-Subject: [PATCH] Add format attribute to _synctex_malloc
-
-Helps in avoiding compile errors about formating with clang
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- cut-n-paste/synctex/synctex_parser_utils.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/cut-n-paste/synctex/synctex_parser_utils.c b/cut-n-paste/synctex/synctex_parser_utils.c
-index f8a9f6f..9459b2d 100644
---- a/cut-n-paste/synctex/synctex_parser_utils.c
-+++ b/cut-n-paste/synctex/synctex_parser_utils.c
-@@ -78,6 +78,7 @@ void *_synctex_malloc(size_t size) {
- return (void *)ptr;
- }
-
-+__attribute__((__format__ (__printf__, 1, 0)))
- int _synctex_error(const char * reason,...) {
- va_list arg;
- int result;
---
-2.12.2
-
diff --git a/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch b/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch
deleted file mode 100644
index 592f466066..0000000000
--- a/meta-gnome/recipes-gnome/evince/evince/0001-help-remove-YELP-macro.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 40921037d8e7205a3889d529fb4e06f79e1e88b0 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 19 Feb 2016 16:52:18 +0200
-Subject: [PATCH] help: remove YELP macro
-
-Upstream-Status: Inappropriate [embedded-specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- help/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/help/Makefile.am b/help/Makefile.am
-index 7835810..37c88ce 100644
---- a/help/Makefile.am
-+++ b/help/Makefile.am
-@@ -1,5 +1,3 @@
--@YELP_HELP_RULES@
--
- SUBDIRS = reference
-
- HELP_ID = evince
---
-2.7.0
-
diff --git a/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb b/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb
deleted file mode 100644
index c5b5484324..0000000000
--- a/meta-gnome/recipes-gnome/evince/evince_3.28.2.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-SUMMARY = "Evince is a document viewer for document formats like pdf, ps, djvu"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=96f2f8d5ee576a2163977938ea36fa7b"
-SECTION = "x11/office"
-DEPENDS = "gtk+3 libsecret ${@bb.utils.contains('DISTRO_FEATURES','x11','gnome-desktop3','',d)} poppler gstreamer1.0-plugins-base orc adwaita-icon-theme intltool-native gnome-common-native"
-
-inherit gnome pkgconfig gtk-icon-cache gsettings gobject-introspection distro_features_check systemd
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
- file://0001-help-remove-YELP-macro.patch \
- file://0001-Add-format-attribute-to-_synctex_malloc.patch \
- "
-SRC_URI[archive.md5sum] = "66aa1766eaaa37536e48def11a0e67a3"
-SRC_URI[archive.sha256sum] = "0955d22d85c9f6d322b6cbb464f1cc4c352db619017ec95dad4cc5c3440f73e1"
-
-EXTRA_OECONF = "--enable-thumbnailer"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/libdocument/.libs"
-}
-
-
-do_install_append() {
- install -d ${D}${datadir}/pixmaps
- install -m 0755 ${S}/data/icons/48x48/apps/evince.png ${D}${datadir}/pixmaps/
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}
- then
- install -d ${D}${systemd_unitdir}/system
- mv ${D}${systemd_user_unitdir}/evince.service ${D}${systemd_system_unitdir}/evince.service
- else
- rm -rf ${D}${libdir}/systemd/user/evince.service
- fi
- rmdir --ignore-fail-on-non-empty ${D}${systemd_user_unitdir}
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}/systemd
- rmdir --ignore-fail-on-non-empty ${D}${nonarch_libdir}
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nautilus] = "--enable-nautilus,--disable-nautilus,nautilus"
-PACKAGECONFIG[browser-plugin] = "--enable-browser-plugin,--disable-browser-plugin,"
-
-SYSTEMD_SERVICE_${PN} = "evince.service"
-
-RDEPENDS_${PN} += "glib-2.0-utils"
-RRECOMMMENDS_${PN} = "adwaita-icon-theme"
-
-PACKAGES =+ "${PN}-nautilus-extension"
-PACKAGES =+ "${PN}-browser-plugin"
-
-FILES_${PN} += "${datadir}/dbus-1 \
- ${datadir}/metainfo \
- ${datadir}/thumbnailers \
- ${systemd_unitdir}/systemd/user/evince.service \
- "
-FILES_${PN}-dbg += "${libdir}/*/*/.debug \
- ${libdir}/*/*/*/.debug"
-FILES_${PN}-dev += "${libdir}/nautilus/extensions-2.0/*.la \
- ${libdir}/evince/*/backends/*.la"
-FILES_${PN}-staticdev += "${libdir}/nautilus/extensions-2.0/*.a \
- ${libdir}/evince/*/backends/*.a"
-FILES_${PN}-nautilus-extension = "${libdir}/nautilus/*/*so"
-FILES_${PN}-browser-plugin = "${libdir}/mozilla/*/*so"
diff --git a/meta-gnome/recipes-gnome/evince/evince_44.2.bb b/meta-gnome/recipes-gnome/evince/evince_44.2.bb
new file mode 100644
index 0000000000..00d1079103
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evince/evince_44.2.bb
@@ -0,0 +1,59 @@
+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 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase itstool gnome-help pkgconfig gsettings gobject-introspection gettext mime-xdg gtk-doc 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] = "9a75c7ff8f599218d070e09fb4082cb26f9b86370a9bfae98e1aacb564d675dd"
+
+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}|/usr/src/debug/${PN}/${PV}-${PR}|g' ${B}/libview/ev-view-type-builtins.c
+ sed -i -e 's|${B}/../${PN}-${PV}|/usr/src/debug/${PN}/${PV}-${PR}|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
new file mode 100644
index 0000000000..681a61c33a
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server-native.bb
@@ -0,0 +1,23 @@
+require ${BPN}.inc
+
+inherit native
+
+DEPENDS = "glib-2.0-native"
+
+# build native helpers
+do_compile() {
+ cd ${S}/src/camel
+ sed -i 's:#include "evolution-data-server-config.h"::g' camel-gen-tables.c
+ ${CC} -o ${B}/camel-gen-tables camel-gen-tables.c ${CFLAGS} ${LDFLAGS}
+
+ LDFLAGS_glib=`pkg-config glib-2.0 --libs`
+ CFLAGS_glib=`pkg-config glib-2.0 --cflags`
+ cd ${S}/src/addressbook/libebook-contacts
+ sed -i 's:#include "evolution-data-server-config.h"::g' gen-western-table.c
+ ${CC} -o ${B}/gen-western-table gen-western-table.c ${CFLAGS} ${CFLAGS_glib} ${LDFLAGS} ${LDFLAGS_glib}
+}
+
+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
new file mode 100644
index 0000000000..edbe30ff87
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.bb
@@ -0,0 +1,67 @@
+require ${BPN}.inc
+
+DEPENDS = " \
+ ${BPN}-native intltool-native gperf-native \
+ glib-2.0 gtk+3 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
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI += " \
+ file://0001-cmake-Do-not-export-CC-into-gir-compiler.patch \
+ file://0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch \
+ file://0002-CMakeLists.txt-remove-CHECK_C_SOURCE_RUNS-check.patch \
+ file://0003-contact-Replace-the-Novell-sample-contact-with-somet.patch \
+ file://0004-call-native-helpers.patch \
+ file://iconv-detect.h \
+"
+
+LKSTRFTIME = "HAVE_LKSTRFTIME=ON"
+LKSTRFTIME:libc-musl = "HAVE_LKSTRFTIME=OFF"
+
+EXTRA_OECMAKE = " \
+ -DSYSCONF_INSTALL_DIR=${sysconfdir} \
+ -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', '')} \
+"
+
+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 ?= "oauth"
+
+PACKAGECONFIG[canberra] = "-DENABLE_CANBERRA=ON,-DENABLE_CANBERRA=OFF,libcanberra"
+PACKAGECONFIG[oauth] = "-DENABLE_OAUTH2_WEBKITGTK=ON -DENABLE_OAUTH2_WEBKITGTK4=OFF,-DENABLE_OAUTH2_WEBKITGTK4=OFF -DENABLE_OAUTH2_WEBKITGTK=OFF,webkitgtk3 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"
+
+# invokes libraries from build host
+GI_DATA_ENABLED:libc-musl="False"
+
+do_configure:append () {
+ cp ${WORKDIR}/iconv-detect.h ${S}/src
+ # avoid writing perl-native path into csv2vcard shebang
+ sed -i "s|@PERL@|${bindir}/perl|" ${S}/src/tools/addressbook-export/csv2vcard.in
+}
+
+FILES:${PN} =+ " \
+ ${datadir}/dbus-1 \
+ ${datadir}/evolution-data-server-*/ui/ \
+ ${systemd_user_unitdir} \
+"
+
+RDEPENDS:${PN} += "perl"
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
new file mode 100644
index 0000000000..5452a2e793
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server.inc
@@ -0,0 +1,13 @@
+SUMMARY = "Evolution database backend server"
+HOMEPAGE = "http://www.gnome.org/projects/evolution/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later"
+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"
+
+inherit gnomebase upstream-version-is-even
+
+SRC_URI[archive.sha256sum] = "b71e412e52f567c83394b5926df92b4f4f6d2cddebad384a517c720671fad996"
+PV = "3.48.3"
diff --git a/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch
new file mode 100644
index 0000000000..e8c6d6a763
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-CMakeLists.txt-Remove-TRY_RUN-for-iconv.patch
@@ -0,0 +1,43 @@
+From 131b88a81aba3d72d566bc8a9d968941a98e0007 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 31 Mar 2019 18:11:55 +0200
+Subject: [PATCH] CMakeLists.txt: Remove TRY_RUN for iconv
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+| CMake Error: TRY_RUN() invoked in cross-compiling mode, please set the following cache variables appropriately:
+| _correct_iconv_EXITCODE (advanced)
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ CMakeLists.txt | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 1672daf..0b3e4e0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -524,17 +524,6 @@ if(NOT HAVE_ICONV)
+ message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv")
+ endif(NOT HAVE_ICONV)
+
+-set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBS})
+-file(TO_NATIVE_PATH "${CMAKE_BINARY_DIR}/" _binary_dir_with_separator)
+-CHECK_C_SOURCE_RUNS("#define ICONV_DETECT_BUILD_DIR \"${_binary_dir_with_separator}\"
+- #include \"${CMAKE_SOURCE_DIR}/iconv-detect.c\"" _correct_iconv)
+-unset(_binary_dir_with_separator)
+-unset(CMAKE_REQUIRED_LIBRARIES)
+-
+-if(NOT _correct_iconv)
+- message(FATAL_ERROR "You need to install a working iconv implementation, such as ftp://ftp.gnu.org/pub/gnu/libiconv")
+-endif(NOT _correct_iconv)
+-
+ # ******************************
+ # Backtraces for debugging
+ # ******************************
+--
+2.20.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
new file mode 100644
index 0000000000..118d93a72a
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0001-cmake-Do-not-export-CC-into-gir-compiler.patch
@@ -0,0 +1,25 @@
+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)
+ file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${_gir_name}_files "${_gir_files}")
+
+ add_custom_command(
+- COMMAND ${CMAKE_COMMAND} -E env "CC='${CMAKE_C_COMPILER}'" LDFLAGS=
+- ${INTROSPECTION_SCANNER_ENV}
+- ${G_IR_SCANNER}
++ COMMAND ${G_IR_SCANNER}
+ ${INTROSPECTION_SCANNER_ARGS}
+ --namespace=${_gir_namespace}
+ --nsversion=${_gir_version}
+@@ -240,7 +238,6 @@ macro(gir_add_introspection_simple gir_l
+ ${_gir_identifies_prefixes}
+ ${_gir_deps}
+ --add-include-path=${SHARE_INSTALL_PREFIX}/gir-1.0
+- --library-path=${LIB_INSTALL_DIR}
+ ${_extra_library_path}
+ --pkg-export ${pkg_export_prefix}-${gir_library_version}
+ --c-include=${c_include}
diff --git a/meta-gnome/recipes-gnome/eds/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 c8dc7e12c6..51eaf7cfef 100644
--- a/meta-gnome/recipes-gnome/eds/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
@@ -1,7 +1,7 @@
-From 210b204d9edd71202454ff04013cc52b23c598e4 Mon Sep 17 00:00:00 2001
+From 20bd8946a5c73290d961df151e82033171639c0d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Tue, 19 Dec 2017 16:55:13 +0100
-Subject: [PATCH] CMakeLists.txt: remove CHECK_C_SOURCE_RUNS check
+Subject: [PATCH 2/7] CMakeLists.txt: remove CHECK_C_SOURCE_RUNS check
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -9,16 +9,17 @@ 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 -----------------------
1 file changed, 23 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index a2396f2..f3b271b 100644
+index ed99904..9a2e99f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -573,29 +573,6 @@ CHECK_C_SOURCE_COMPILES("#include <langinfo.h>
+@@ -579,29 +579,6 @@ CHECK_C_SOURCE_COMPILES("#include <langinfo.h>
CHECK_C_SOURCE_COMPILES("#include <langinfo.h>
int main(void) { char *detail = nl_langinfo (_NL_ADDRESS_COUNTRY_AB2); return 0; }" HAVE__NL_ADDRESS_COUNTRY_AB2)
@@ -49,5 +50,5 @@ index a2396f2..f3b271b 100644
# system mail stuff
# ******************************
--
-2.14.3
+2.21.0
diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch
index 3cdfa8b6ff..c9e6f96f5c 100644
--- a/meta-gnome/recipes-gnome/eds/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0003-contact-Replace-the-Novell-sample-contact-with-somet.patch
@@ -1,14 +1,14 @@
-From 4df8bd8ae4258289663b27af1207027c7ee06340 Mon Sep 17 00:00:00 2001
+From d616eddf3a214a49900344f4455155879d3b82db Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Sun, 4 Aug 2013 09:13:25 +0200
-Subject: [PATCH 1/5] contact: Replace the Novell sample contact with something
+Subject: [PATCH 3/7] contact: Replace the Novell sample contact with something
more appropriate
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
- src/addressbook/libedata-book/ximian-vcard.h | 179 ++++++++++++++++++-------------
- 2 files changed, 103 insertions(+), 77 deletions(-)
+ src/addressbook/libedata-book/ximian-vcard.h | 179 +++++++++++--------
+ 1 file changed, 102 insertions(+), 77 deletions(-)
diff --git a/src/addressbook/libedata-book/ximian-vcard.h b/src/addressbook/libedata-book/ximian-vcard.h
index 782d37b..5b0b250 100644
@@ -198,5 +198,5 @@ index 782d37b..5b0b250 100644
+" gQIUKE+H+C/wMGX8Ias1s6CQAAAABJRU5ErkJggg==\n" \
"END:VCARD"
--
-1.8.3.2
+2.21.0
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
new file mode 100644
index 0000000000..82f6972501
--- /dev/null
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/0004-call-native-helpers.patch
@@ -0,0 +1,45 @@
+From 9c375e3fcf8ff778a5010a07a7da4b6a58adec7c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 31 Mar 2019 19:11:31 +0200
+Subject: [PATCH] call native helpers
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/addressbook/libebook-contacts/CMakeLists.txt | 2 +-
+ src/camel/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/addressbook/libebook-contacts/CMakeLists.txt b/src/addressbook/libebook-contacts/CMakeLists.txt
+index e9e3259..e749d1b 100644
+--- a/src/addressbook/libebook-contacts/CMakeLists.txt
++++ b/src/addressbook/libebook-contacts/CMakeLists.txt
+@@ -25,7 +25,7 @@ target_link_libraries(gen-western-table
+
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h
+- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gen-western-table "${CMAKE_CURRENT_SOURCE_DIR}/e-name-western-tables.h.in" >${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h
++ COMMAND gen-western-table "${CMAKE_CURRENT_SOURCE_DIR}/e-name-western-tables.h.in" >${CMAKE_CURRENT_BINARY_DIR}/e-name-western-tables.h
+ DEPENDS gen-western-table e-name-western-tables.h.in
+ )
+
+diff --git a/src/camel/CMakeLists.txt b/src/camel/CMakeLists.txt
+index be626a8..14ac8b8 100644
+--- a/src/camel/CMakeLists.txt
++++ b/src/camel/CMakeLists.txt
+@@ -10,7 +10,7 @@ target_include_directories(camel-gen-tables PUBLIC
+
+ add_custom_command(
+ OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c
+- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/camel-gen-tables >${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c
++ COMMAND camel-gen-tables >${CMAKE_CURRENT_BINARY_DIR}/camel-mime-tables.c
+ DEPENDS camel-gen-tables
+ )
+
+--
+2.20.1
+
diff --git a/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h
index 46f476d5bc..46f476d5bc 100644
--- a/meta-gnome/recipes-gnome/eds/evolution-data-server/iconv-detect.h
+++ b/meta-gnome/recipes-gnome/evolution-data-server/evolution-data-server/iconv-detect.h
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 a39b1a0ca3..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
@@ -1,6 +1,6 @@
DESCRIPTION = "An icon theme for Gnome"
SECTION = "x11/wm"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
HOMEPAGE = "http://code.google.com/p/faenza-icon-theme/"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
@@ -8,8 +8,7 @@ inherit allarch gtk-icon-cache
S = "${WORKDIR}"
-SRC_URI = "http://faenza-icon-theme.googlecode.com/files/${PN}_${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() {
@@ -23,4 +22,4 @@ do_install() {
chown -R root:root ${D}${datadir}
}
-FILES_${PN} += "${datadir}/icons ${datadir}/themes"
+FILES:${PN} += "${datadir}/icons ${datadir}/themes"
diff --git a/meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb b/meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb
new file mode 100644
index 0000000000..f9b6841d6b
--- /dev/null
+++ b/meta-gnome/recipes-gnome/file-roller/file-roller_43.0.bb
@@ -0,0 +1,44 @@
+SUMMARY = "An archive manager utility for the GNOME Environment"
+LICENSE="GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ glib-2.0-native \
+ glib-2.0 \
+ json-glib \
+ gtk+3 \
+ 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[archive.sha256sum] = "298729fdbdb9da8132c0bbc60907517d65685b05618ae05167335e6484f573a1"
+
+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_44.1.bb b/meta-gnome/recipes-gnome/gdm/gdm_44.1.bb
new file mode 100644
index 0000000000..cd9013312d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gdm/gdm_44.1.bb
@@ -0,0 +1,67 @@
+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 = ""
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings pkgconfig gobject-introspection gettext systemd useradd itstool gnome-help features_check
+
+SRC_URI[archive.sha256sum] = "68266b3abe7d28fc469d0067aac9c5dabb0ca7952cc1f7c238a04951f3dc5b0d"
+
+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/files/0001-Remove-help-directory-from-build.patch b/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch
deleted file mode 100644
index 4ad57effe9..0000000000
--- a/meta-gnome/recipes-gnome/gedit/files/0001-Remove-help-directory-from-build.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1d2e6165e3154e27ecde329a40c05f0880afb9e0 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 17 May 2016 14:14:03 +0300
-Subject: [PATCH] Remove help directory from build
-
-It hardcodes the use of xml2po utility, which is provided by obsolete gnome-doc-utils
-
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- Makefile.am | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index e57b203..a88152d 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -3,9 +3,6 @@ ACLOCAL_AMFLAGS = -I m4
-
- SUBDIRS = gedit pixmaps po data plugin-loaders plugins docs tests win32 osx
-
--if !OS_OSX
--SUBDIRS += help
--endif
-
- distuninstallcheck_listfiles = find . -type f -print | grep -v scrollkeeper
-
---
-2.8.1
-
diff --git a/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch b/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch
deleted file mode 100644
index 4885c45113..0000000000
--- a/meta-gnome/recipes-gnome/gedit/files/0001-gedit-utils-qualify-handle_builder_error-with-format.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 623ffac1f6e7725041b386e0f2933fe36809b5a9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 09:04:30 -0700
-Subject: [PATCH] gedit-utils: qualify handle_builder_error() with format
- string parameters
-
-gedit-utils.c:1063:32: error: format string is not a string literal [-Werror,-Wformat-nonliteral]
- msg_plain = g_strdup_vprintf (message, args);
- ^~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gedit/gedit-utils.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gedit/gedit-utils.c b/gedit/gedit-utils.c
-index 41a5afd..c800828 100644
---- a/gedit/gedit-utils.c
-+++ b/gedit/gedit-utils.c
-@@ -1051,7 +1051,7 @@ gedit_utils_is_valid_uri (const gchar *uri)
- return TRUE;
- }
-
--static GtkWidget *
-+static G_GNUC_PRINTF(1, 2) GtkWidget *
- handle_builder_error (const gchar *message, ...)
- {
- GtkWidget *label;
---
-2.14.1
-
diff --git a/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch b/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch
deleted file mode 100644
index 11afe75ce1..0000000000
--- a/meta-gnome/recipes-gnome/gedit/files/0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ee43bcc3c8d69fe56a64c3487e2d3c780ea5d25e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 06:53:35 -0700
-Subject: [PATCH] tests/document-saver.c: Define ACCESSPERMS if not defined
- already
-
-Helps compile with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/document-saver.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/tests/document-saver.c b/tests/document-saver.c
-index 9f44d5a..811ade6 100644
---- a/tests/document-saver.c
-+++ b/tests/document-saver.c
-@@ -41,6 +41,10 @@
- #define UNOWNED_GROUP_LOCAL_URI "/tmp/gedit-document-saver-unowned-group.txt"
- #define UNOWNED_GROUP_REMOTE_URI "sftp://localhost/tmp/gedit-document-saver-unowned-group.txt"
-
-+#if !defined(ACCESSPERMS)
-+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO) /* 0777 */
-+#endif
-+
- static gboolean test_completed;
- static gboolean mount_completed;
- static gboolean mount_success;
---
-2.13.2
-
diff --git a/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch b/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch
deleted file mode 100644
index a28808b8d4..0000000000
--- a/meta-gnome/recipes-gnome/gedit/files/0001-workaround-void-pointer-arithmetic.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 8e0cbfac142d38320dd02416601e14c65585cd17 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Sat, 9 Mar 2013 12:47:06 +0100
-Subject: [PATCH] workaround void pointer arithmetic
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-fixes errors like:
-error: pointer of type 'void *' used in arithmetic [-Werror=pointer-arith]
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- gedit/gedit-document-input-stream.c | 4 ++--
- gedit/gedit-smart-charset-converter.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/gedit/gedit-document-input-stream.c b/gedit/gedit-document-input-stream.c
-index 5a1f961..38316e7 100644
---- a/gedit/gedit-document-input-stream.c
-+++ b/gedit/gedit-document-input-stream.c
-@@ -426,7 +426,7 @@ gedit_document_input_stream_read (GInputStream *stream,
-
- do
- {
-- n = read_line (dstream, buffer + read, space_left);
-+ n = read_line (dstream, ((char*)buffer) + read, space_left);
- read += n;
- space_left -= n;
- } while (space_left > 0 && n != 0 && dstream->priv->bytes_partial == 0);
-@@ -451,7 +451,7 @@ gedit_document_input_stream_read (GInputStream *stream,
-
- newline = get_new_line (dstream);
-
-- memcpy (buffer + read, newline, newline_size);
-+ memcpy (((char*)buffer) + read, newline, newline_size);
-
- read += newline_size;
- dstream->priv->newline_added = TRUE;
-diff --git a/gedit/gedit-smart-charset-converter.c b/gedit/gedit-smart-charset-converter.c
-index e32b0b1..6745ce3 100644
---- a/gedit/gedit-smart-charset-converter.c
-+++ b/gedit/gedit-smart-charset-converter.c
-@@ -153,7 +153,7 @@ try_convert (GCharsetConverter *converter,
- do
- {
- res = g_converter_convert (G_CONVERTER (converter),
-- inbuf + nread,
-+ ((const char*)inbuf) + nread,
- inbuf_size - nread,
- out + nwritten,
- out_size - nwritten,
---
-1.7.4.4
-
diff --git a/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch b/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch
deleted file mode 100644
index a5d2310123..0000000000
--- a/meta-gnome/recipes-gnome/gedit/files/0002-suppress-string-format-literal-warning-to-fix-build-.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4ebdf8023f763f75a7e1b548894de2e8b784f4a8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Fri, 29 Jul 2016 23:19:40 +0200
-Subject: [PATCH] suppress string format literal warning to fix build with gcc6
-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@googlemail.com>
----
- plugins/time/gedit-time-plugin.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/plugins/time/gedit-time-plugin.c b/plugins/time/gedit-time-plugin.c
-index d2ffdb9..441d9f9 100644
---- a/plugins/time/gedit-time-plugin.c
-+++ b/plugins/time/gedit-time-plugin.c
-@@ -473,12 +473,15 @@ get_time (const gchar* format)
- clock = time (NULL);
- now = localtime (&clock);
-
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- do
- {
- out_length += 255;
- out = g_realloc (out, out_length);
- }
- while (strftime (out, out_length, locale_format, now) == 0);
-+#pragma GCC diagnostic pop
-
- g_free (locale_format);
-
---
-2.5.5
-
diff --git a/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb b/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb
deleted file mode 100644
index ba425ad6b9..0000000000
--- a/meta-gnome/recipes-gnome/gedit/gedit_2.30.4.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "GNOME editor"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2+"
-PR = "r2"
-
-DEPENDS = "gvfs enchant gconf gnome-doc-utils glib-2.0 gtk+ gtksourceview2 iso-codes intltool-native gnome-common-native libice"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit distro_features_check gnome gettext pythonnative
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
- file://0001-workaround-void-pointer-arithmetic.patch \
- file://0001-Remove-help-directory-from-build.patch \
- file://0002-suppress-string-format-literal-warning-to-fix-build-.patch \
- file://0001-tests-document-saver.c-Define-ACCESSPERMS-if-not-def.patch \
- file://0001-gedit-utils-qualify-handle_builder_error-with-format.patch \
- "
-SRC_URI[archive.md5sum] = "e1eecb0a92a1a363b3d375ec5ac0fb3b"
-SRC_URI[archive.sha256sum] = "a561fe3dd1d199baede1bd07c4ee65f06fc7c494dd4d3327117f04149a608e3c"
-GNOME_COMPRESS_TYPE="bz2"
-
-EXTRA_OECONF = "--disable-scrollkeeper \
- --enable-gvfs-metadata"
-
-LDFLAGS += "-lgmodule-2.0 -lICE"
-
-FILES_${PN} += "${libdir}/gedit-2/plugin* ${datadir}/gedit-2"
-FILES_${PN}-dbg += "${libdir}/gedit-2/plugin-loaders/.debug ${libdir}/gedit-2/plugins/.debug"
diff --git a/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb b/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb
new file mode 100644
index 0000000000..34c782297c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gedit/gedit_44.2.bb
@@ -0,0 +1,46 @@
+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 \
+ 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] = "3bbb1b3775d4c277daf54aaab44b0eb83a4eb1f09f0391800041c9e56893ec11"
+
+# 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/geocode-glib/geocode-glib_3.26.4.bb b/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb
new file mode 100644
index 0000000000..42659d0f61
--- /dev/null
+++ b/meta-gnome/recipes-gnome/geocode-glib/geocode-glib_3.26.4.bb
@@ -0,0 +1,19 @@
+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"
+
+inherit gnomebase gobject-introspection gettext gtk-doc upstream-version-is-even
+
+DEPENDS = " \
+ json-glib \
+ libsoup-3.0 \
+"
+
+SRC_URI[archive.sha256sum] = "2d9a6826d158470449a173871221596da0f83ebdcff98b90c7049089056a37aa"
+
+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
new file mode 100644
index 0000000000..fed29da0fc
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gexiv2/gexiv2_0.14.0.bb
@@ -0,0 +1,28 @@
+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/gfbgraph/gfbgraph_0.2.5.bb b/meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb
new file mode 100644
index 0000000000..faeaa8ccb9
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gfbgraph/gfbgraph_0.2.5.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A GObject library for Facebook Graph API"
+SECTION = "x11/gnome"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5804fe91d3294da4ac47c02b454bbc8a"
+
+DEPENDS = " \
+ glib-2.0 \
+ json-glib \
+ librest \
+ libsoup-2.4 \
+ gnome-online-accounts \
+"
+
+inherit gnomebase gtk-doc gobject-introspection pkgconfig features_check
+
+# for gnome-online-accounts
+REQUIRED_DISTRO_FEATURES = "x11"
+
+#SRC_URI += " file://0001-Update-rest-requirement-to-rest-1.0.patch"
+SRC_URI[archive.sha256sum] = "9cb381b3f78ba1136df97af3f06e3b11dcc2ab339ac08f74eda0f8057d6603e3"
+
+do_install:append() {
+ # they install all the autotools files (NEWS AUTHORS..) to /usr/doc which
+ # is not a standard path exactly
+ rm -rf ${D}${prefix}/doc
+}
diff --git a/meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb b/meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb
new file mode 100644
index 0000000000..08e50409eb
--- /dev/null
+++ b/meta-gnome/recipes-gnome/ghex/ghex_3.18.4.bb
@@ -0,0 +1,17 @@
+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/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
new file mode 100644
index 0000000000..c46f85b7dc
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gjs/gjs/0001-Support-cross-builds-a-bit-better.patch
@@ -0,0 +1,47 @@
+From fa47185d9c8150a0dcb0ea12b92fcf139edbef35 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
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+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]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 136e812..f5b91e0 100644
+--- a/meson.build
++++ b/meson.build
+@@ -252,6 +252,7 @@ release builds of SpiderMonkey. Try configuring SpiderMonkey with
+ --disable-debug.''')
+ endif
+
++if not meson.is_cross_build()
+ # 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
+ failed to execute. Most likely you should build it with a different
+ configuration.''' + recommended_configuration)
+ endif
++endif # not meson.is_cross_build()
+
+ have_printf_alternative_int = cc.compiles('''
+ #include <stdio.h>
+@@ -682,7 +684,7 @@ subdir('installed-tests')
+
+ # Note: The test program in test/ needs to be ported
+ # to Windows before we can build it on Windows.
+-if host_machine.system() != 'windows'
++if host_machine.system() != 'windows' and not meson.is_cross_build()
+ subdir('test')
+ endif
+
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
new file mode 100644
index 0000000000..e281717ea1
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gjs/gjs/0002-meson.build-Do-not-add-dir-installed-tests-when-inst.patch
@@ -0,0 +1,31 @@
+From 2b8aa1ea4a4d1836164c934b1ab2556a32cb5af7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <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]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index f5b91e0..3110530 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
+
+-subdir('installed-tests')
++if get_option('installed_tests')
++ subdir('installed-tests')
++endif
+
+ # 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_1.76.1.bb b/meta-gnome/recipes-gnome/gjs/gjs_1.76.1.bb
new file mode 100644
index 0000000000..93711bc3bb
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gjs/gjs_1.76.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Javascript bindings for GNOME"
+LICENSE = "MIT & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8dcea832f6acf45d856abfeb2d51ec48"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = "mozjs-102 cairo"
+
+inherit gnomebase gsettings gobject-introspection vala gettext features_check upstream-version-is-even pkgconfig
+
+SRC_URI[archive.sha256sum] = "7b867c18a9b30333ebbcff9ad3f20299f0372ffad439d49b87d40a1d1798b78d"
+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.4.bb b/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.4.bb
new file mode 100644
index 0000000000..29aeef1ad9
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-autoar/gnome-autoar_0.4.4.bb
@@ -0,0 +1,21 @@
+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] = "c0afbe333bcf3cb1441a1f574cc8ec7b1b8197779145d4edeee2896fdacfc3c2"
+
+do_compile:prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/gnome-autoar/.libs"
+}
diff --git a/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_44.0.bb b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_44.0.bb
new file mode 100644
index 0000000000..2934b7398b
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-backgrounds/gnome-backgrounds_44.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"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext allarch
+
+SRC_URI[archive.sha256sum] = "4a8393b387135f2a6a424a1a0c3ac94e0742b62b8235a0923c929f51e04be04e"
+
+FILES:${PN} += " \
+ ${datadir}/backgrounds \
+ ${datadir}/gnome-background-properties \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3/0001-build-Fix-build-for-newer-versions-of-meson.patch b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3/0001-build-Fix-build-for-newer-versions-of-meson.patch
new file mode 100644
index 0000000000..16c87b6a63
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3/0001-build-Fix-build-for-newer-versions-of-meson.patch
@@ -0,0 +1,25 @@
+From 7355664f671bec7852e3c4523d75c27fc77a2eb2 Mon Sep 17 00:00:00 2001
+From: Bastien Nocera <hadess@hadess.net>
+Date: Fri, 7 Jan 2022 12:51:22 +0100
+Subject: [PATCH] build: Fix build for newer versions of meson
+
+sendto/meson.build:24:5: ERROR: Function does not take positional arguments.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ sendto/meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/sendto/meson.build b/sendto/meson.build
+index 24a4e39..3e233a0 100644
+--- a/sendto/meson.build
++++ b/sendto/meson.build
+@@ -22,7 +22,6 @@ desktop_in = configure_file(
+ )
+
+ i18n.merge_file (
+- desktop,
+ type: 'desktop',
+ input: desktop_in,
+ output: desktop,
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
new file mode 100644
index 0000000000..e2a885b1fb
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth3_3.34.5.bb
@@ -0,0 +1,40 @@
+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 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
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+# gtk-icon-cache bbclass will take care of this for us.
+EXTRA_OEMESON = "-Dicon_update=false"
+
+SRC_URI += " file://0001-build-Fix-build-for-newer-versions-of-meson.patch"
+SRC_URI[archive.md5sum] = "d83faa54abaf64bb40b5313bc233e74e"
+SRC_URI[archive.sha256sum] = "6c949e52c8becc2054daacd604901f66ce5cf709a5fa91c4bb7cacc939b53ea9"
+
+# avoid clashes with gnome-bluetooth
+do_install:append() {
+ # just bluetooth-sendto / bluetooth-sendto.desktop only
+ rm -rf ${D}${bindir}
+ rm -rf ${D}${datadir}/applications
+}
+
+FILES:${PN} += "${datadir}/gnome-bluetooth"
+
+# offer alternate bluetooth-sendto
+RRECOMMENS:${PN} += "gnome-bluetooth"
+
+RDEPENDS:${PN} += "bluez5"
diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb
deleted file mode 100644
index 8cfd65af3b..0000000000
--- a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_3.18.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "GNOME bluetooth manager"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
- file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
-"
-
-SECTION = "x11/gnome"
-
-DEPENDS = "udev gtk+3 libnotify libcanberra intltool-native gnome-common-native \
- ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)} \
-"
-
-inherit gnomebase gtk-icon-cache gobject-introspection distro_features_check
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "75d09c924468ec0c687f9ab3acf7f113"
-SRC_URI[archive.sha256sum] = "d8df073c331df0f97261869fb77ffcdbf4e3e4eaf460d3c3ed2b16e03d9c5398"
-
-FILES_${PN}-dbg += "${libdir}/gnome-bluetooth/plugins/.debug/"
diff --git a/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.5.bb b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.5.bb
new file mode 100644
index 0000000000..fa4f9cb78f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-bluetooth/gnome-bluetooth_42.5.bb
@@ -0,0 +1,44 @@
+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 opengl"
+
+SRC_URI[archive.sha256sum] = "a4f5f1ac2dbb7b7b92f7d6d2b42c030f62aed9b5426b9dc116946041f3cba8f7"
+
+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_44.0.bb b/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.0.bb
new file mode 100644
index 0000000000..53dafba184
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-calculator/gnome-calculator_44.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'
+
+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 opengl"
+
+SRC_URI[archive.sha256sum] = "14e763329f88309a7e152780d57361b543100e323906b34e0655fdc315b71043"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+ ${datadir}/gnome-shell \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb b/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb
new file mode 100644
index 0000000000..dcf5ba7d6d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-calendar/gnome-calendar_44.0.bb
@@ -0,0 +1,33 @@
+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 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gtk-icon-cache gettext features_check upstream-version-is-even mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+SRC_URI[archive.sha256sum] = "96acd74cbf45652934515cc3447a3b895e933f86324ca92436f67ddd63c3a802"
+
+FILES:${PN} += " \
+ ${datadir}/gnome-shell \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+"
+
diff --git a/meta-gnome/recipes-gnome/gnome-chess/gnome-chess_43.2.bb b/meta-gnome/recipes-gnome/gnome-chess/gnome-chess_43.2.bb
new file mode 100644
index 0000000000..343135bfa8
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-chess/gnome-chess_43.2.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;nobranch=1"
+
+inherit meson pkgconfig gobject-introspection gtk-icon-cache vala features_check mime-xdg gsettings
+
+GIR_MESON_OPTION = ""
+
+S = "${WORKDIR}/git"
+SRCREV = "de47d07ec6fc828b2668ca6ee59fe9bdfa9dc1d6"
+
+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_1.16.1.bb b/meta-gnome/recipes-gnome/gnome-commander/gnome-commander_1.16.1.bb
new file mode 100644
index 0000000000..6aa28fc00f
--- /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}"
+
+GNOMEBASEBUILDCLASS = "meson"
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+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-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
new file mode 100644
index 0000000000..5c0eee5764
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center/0001-Add-meson-option-to-pass-sysroot.patch
@@ -0,0 +1,57 @@
+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
+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.
+
+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(-)
+
+diff --git a/meson_options.txt b/meson_options.txt
+index dbca723..af0f871 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('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 69af0cfea..6edcaa5ff 100644
+--- a/panels/background/meson.build
++++ b/panels/background/meson.build
+@@ -19,7 +19,7 @@ common_sources = []
+
+ 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'
+ )
+
+diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build
+index 3b6f5e197..30b207882 100644
+--- a/panels/datetime/meson.build
++++ b/panels/datetime/meson.build
+@@ -45,7 +45,7 @@ sources = files(
+
+ 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-datetime-panel.h'
+ )
+
+--
+2.34.1
diff --git a/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb
new file mode 100644
index 0000000000..0066f5885f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-control-center/gnome-control-center_44.3.bb
@@ -0,0 +1,69 @@
+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"
+GTKIC_VERSION = "4"
+
+DEPENDS = " \
+ accountsservice \
+ colord-gtk \
+ gcr3 \
+ 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 \
+ 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 += "file://0001-Add-meson-option-to-pass-sysroot.patch"
+SRC_URI[archive.sha256sum] = "066a65052fc3ecfae860025e85f797e6ab2b87a58c4f8ab9c66ec20718a80c7a"
+
+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} \
+"
+
+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
+}
+
+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-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch
deleted file mode 100644
index aa11e8a62e..0000000000
--- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop/0001-Disable-libseccomp-sycall-filtering-mechanism.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 96753d85d8b53dd8f87b8f444892efffdbfab388 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 5 Oct 2017 14:54:17 +0300
-Subject: [PATCH] Disable libseccomp (sycall filtering mechanism)
-
-Upstream forgot to make it optional, and it is not currently used in Yocto
-
-Upstream-Status: Inappropriate [oe-core specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-
----
- configure.ac | 20 --------------------
- 1 file changed, 20 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 118d04f..47c8894 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -151,26 +151,6 @@ fi
-
- SECCOMP_PKG=""
- enable_seccomp="no"
--dnl Check for bubblewrap compatible platform
--case $host_os in
-- linux*)
-- case $host_cpu in
-- alpha|ia64|m68k|sh4|sparc64)
-- enable_seccomp="no (not available on this architecture)"
-- AC_MSG_WARN("seccomp not available on this architecture")
-- ;;
-- *)
-- PKG_CHECK_MODULES(LIBSECCOMP, [libseccomp])
-- SECCOMP_PKG="libseccomp"
-- AC_DEFINE([ENABLE_SECCOMP], [1], [Define if using seccomp])
-- enable_seccomp="yes"
-- ;;
-- esac
-- AC_DEFINE_UNQUOTED(_GNU_SOURCE, 1, [Define to include GNU extensions])
-- AC_DEFINE_UNQUOTED(HAVE_BWRAP, 1, [Define to 1 if Bubblewrap support is available])
-- AC_DEFINE_UNQUOTED(INSTALL_PREFIX, "$prefix", [Path to library install prefix])
-- ;;
--esac
-
- dnl pkg-config dependency checks
-
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-desktop3_3.28.1.bb b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.28.1.bb
deleted file mode 100644
index 39b3491fdb..0000000000
--- a/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop3_3.28.1.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "GNOME library for reading .desktop files"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-BPN = "gnome-desktop"
-
-inherit gnome pkgconfig upstream-version-is-even gobject-introspection
-SRC_URI[archive.md5sum] = "bcbf906d94eb08060c60a7364384d678"
-SRC_URI[archive.sha256sum] = "78a397a2be47586e6dc075d6a7fc5659aae3d10713d76994ce1b46086e7ecb9a"
-
-SRC_URI += " \
- file://gnome-desktop-thumbnail-don-t-assume-time_t-is-long.patch \
- file://0001-Disable-libseccomp-sycall-filtering-mechanism.patch \
- "
-
-DEPENDS += "intltool-native gsettings-desktop-schemas gconf virtual/libx11 gtk+3 glib-2.0 startup-notification xkeyboard-config iso-codes udev"
-
-inherit distro_features_check gtk-doc
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = "--disable-desktop-docs"
-
-PACKAGES =+ "libgnome-desktop3"
-FILES_libgnome-desktop3 = "${libdir}/lib*${SOLIBS} ${datadir}/libgnome-desktop*/pnp.ids ${datadir}/gnome/*xml"
-
-RRECOMMENDS_libgnome-desktop3 += "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..03411c88d9
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-desktop/gnome-desktop_44.0.bb
@@ -0,0 +1,49 @@
+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 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/0001-gnome-disk-utility-remove-libcanberra-dependency.patch b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-gnome-disk-utility-remove-libcanberra-dependency.patch
new file mode 100644
index 0000000000..675f4635ba
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility/0001-gnome-disk-utility-remove-libcanberra-dependency.patch
@@ -0,0 +1,135 @@
+From 36cbdd82f21e4ef37da9f05c1c5e770b6cd66df2 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Sun, 29 May 2022 06:35:26 +0200
+Subject: [PATCH] gnome-disk-utility: remove libcanberra dependency
+
+libcanberra-gtk3 module isn't buildable for wayland.
+Remove its dpendency.
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Upstream-Status: Inappropriate
+---
+ meson.build | 1 -
+ src/disks/gducreatediskimagedialog.c | 27 ++-------------------------
+ src/disks/gdurestorediskimagedialog.c | 20 +-------------------
+ src/disks/meson.build | 1 -
+ 4 files changed, 3 insertions(+), 46 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 0daf7f82..cba6c74b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -72,7 +72,6 @@ dvdread_dep = dependency('dvdread', version: '>= 4.2.0')
+ gio_unix_dep = dependency('gio-unix-2.0', version: '>= 2.31.0')
+ gmodule_dep = dependency('gmodule-2.0')
+ gtk_dep = dependency('gtk+-3.0', version: '>= 3.16.0')
+-libcanberra_dep = dependency('libcanberra-gtk3', version: '>= 0.1')
+ # Keep the version here synchronised with subprojects/libhandy.wrap
+ libhandy_dep = dependency('libhandy-1', version: '>= 1.5.0', fallback: ['libhandy', 'libhandy_dep'])
+ liblzma_dep = dependency('liblzma', version: '>= 5.0.5')
+diff --git a/src/disks/gducreatediskimagedialog.c b/src/disks/gducreatediskimagedialog.c
+index 181b2892..a22004cf 100644
+--- a/src/disks/gducreatediskimagedialog.c
++++ b/src/disks/gducreatediskimagedialog.c
+@@ -21,8 +21,6 @@
+ #include <sys/ioctl.h>
+ #include <linux/fs.h>
+
+-#include <canberra-gtk.h>
+-
+ #include "gduapplication.h"
+ #include "gduwindow.h"
+ #include "gducreatediskimagedialog.h"
+@@ -297,19 +295,7 @@ create_disk_image_populate (DialogData *data)
+
+ static void
+ play_read_error_sound (DialogData *data)
+-{
+- const gchar *sound_message;
+-
+- /* Translators: A descriptive string for the sound played when
+- * there's a read error that's being ignored, see
+- * CA_PROP_EVENT_DESCRIPTION
+- */
+- sound_message = _("Disk image read error");
+- ca_gtk_play_for_widget (GTK_WIDGET (data->window), 0,
+- CA_PROP_EVENT_ID, "dialog-warning",
+- CA_PROP_EVENT_DESCRIPTION, sound_message,
+- NULL);
+-}
++{}
+
+ /* ---------------------------------------------------------------------------------------------------- */
+
+@@ -403,16 +389,7 @@ update_job (DialogData *data,
+
+ static void
+ play_complete_sound (DialogData *data)
+-{
+- const gchar *sound_message;
+-
+- /* Translators: A descriptive string for the 'complete' sound, see CA_PROP_EVENT_DESCRIPTION */
+- sound_message = _("Disk image copying complete");
+- ca_gtk_play_for_widget (GTK_WIDGET (data->window), 0,
+- CA_PROP_EVENT_ID, "complete",
+- CA_PROP_EVENT_DESCRIPTION, sound_message,
+- NULL);
+-}
++{}
+
+ /* ---------------------------------------------------------------------------------------------------- */
+
+diff --git a/src/disks/gdurestorediskimagedialog.c b/src/disks/gdurestorediskimagedialog.c
+index bccf97e9..e7ec81cb 100644
+--- a/src/disks/gdurestorediskimagedialog.c
++++ b/src/disks/gdurestorediskimagedialog.c
+@@ -17,8 +17,6 @@
+ #include <sys/ioctl.h>
+ #include <linux/fs.h>
+
+-#include <canberra-gtk.h>
+-
+ #include "gduapplication.h"
+ #include "gduwindow.h"
+ #include "gdurestorediskimagedialog.h"
+@@ -606,23 +604,7 @@ update_job (DialogData *data,
+
+ static void
+ play_complete_sound (DialogData *data)
+-{
+- const gchar *sound_message;
+-
+- /* Translators: A descriptive string for the 'complete' sound, see CA_PROP_EVENT_DESCRIPTION */
+- sound_message = _("Disk image copying complete");
+- ca_gtk_play_for_widget (GTK_WIDGET (data->dialog), 0,
+- CA_PROP_EVENT_ID, "complete",
+- CA_PROP_EVENT_DESCRIPTION, sound_message,
+- NULL);
+-
+- if (data->inhibit_cookie > 0)
+- {
+- gtk_application_uninhibit (GTK_APPLICATION (gdu_window_get_application (data->window)),
+- data->inhibit_cookie);
+- data->inhibit_cookie = 0;
+- }
+-}
++{}
+
+ /* ---------------------------------------------------------------------------------------------------- */
+
+diff --git a/src/disks/meson.build b/src/disks/meson.build
+index 35b2f103..6fc367b4 100644
+--- a/src/disks/meson.build
++++ b/src/disks/meson.build
+@@ -85,7 +85,6 @@ deps = [
+ dvdread_dep,
+ gio_unix_dep,
+ gmodule_dep,
+- libcanberra_dep,
+ libgdu_dep,
+ libhandy_dep,
+ liblzma_dep,
+--
+2.25.1
+
diff --git a/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_44.0.bb b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_44.0.bb
new file mode 100644
index 0000000000..d8674fca24
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-disk-utility/gnome-disk-utility_44.0.bb
@@ -0,0 +1,40 @@
+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 \
+"
+
+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] = "02031097896cdb37d8717a5823f93e3723d4dfce7fdc4002c9dfcb16b7e7a3ef"
+
+EXTRA_OEMESON = "-Dman=false"
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+"
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..597cdbab95
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-flashback/gnome-flashback_3.46.0.bb
@@ -0,0 +1,38 @@
+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-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_44.0.bb b/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_44.0.bb
new file mode 100644
index 0000000000..ff5e1e2c8c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-font-viewer/gnome-font-viewer_44.0.bb
@@ -0,0 +1,25 @@
+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 opengl"
+
+SRC_URI[archive.sha256sum] = "a1511df30b228cc2ef1175dd9d2b93438ea912e25913404b263cf3d457bb9f97"
+
+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
new file mode 100644
index 0000000000..32eecf8fb7
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring/0001-Set-paths-to-ssh-agent-and-ssh-add-by-configure-opti.patch
@@ -0,0 +1,42 @@
+From e6464e01bc1cdf5496be2942d1bac41aa609f47e 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
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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
+--- a/configure.ac
++++ b/configure.ac
+@@ -351,8 +351,15 @@ if test "$enable_ssh_agent" = "no"; then
+ SSH_AGENT=false
+ SSH_ADD=false
+ else
+- AC_PATH_PROG([SSH_AGENT], [ssh-agent], [no])
+- AC_PATH_PROG([SSH_ADD], [ssh-add], [no])
++ AC_ARG_WITH([ssh-agent-path],
++ [AC_HELP_STRING([--with-ssh-agent-path=PATH],
++ [path to ssh-agent])],
++ [SSH_AGENT=$with_ssh_agent_path], [SSH_AGENT=no])
++ AC_ARG_WITH([ssh-add-path],
++ [AC_HELP_STRING([--with-ssh-add-path=PATH],
++ [path to ssh-add])],
++ [SSH_ADD=$with_ssh_add_path], [SSH_ADD=no])
++
+ 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_3.20.0.bb b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.20.0.bb
deleted file mode 100644
index 55640625d2..0000000000
--- a/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_3.20.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Password and keyring managing daemon"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-SECTION = "x11/gnome"
-
-LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-inherit distro_features_check gnomebase remove-libtool
-
-DEPENDS = " \
- intltool-native \
- glib-2.0-native \
- gtk+3 \
- gcr \
- libgcrypt \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
-"
-
-SRC_URI[archive.md5sum] = "e09efe8021944dae404736b5a2adb98e"
-SRC_URI[archive.sha256sum] = "bc17cecd748a0e46e302171d11c3ae3d76bba5258c441fabec3786f418e7ec99"
-SRC_URI += "file://musl.patch"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-RDEPENDS_${PN} = "libgnome-keyring glib-2.0-utils"
-
-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 \
- ${base_libdir}/security/*${SOLIBSDEV} \
- ${libdir}/pkcs11/gnome-keyring-pkcs11.so \
-"
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
new file mode 100644
index 0000000000..241a94cd70
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-keyring/gnome-keyring_42.1.bb
@@ -0,0 +1,50 @@
+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)} \
+"
+
+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/libgnome-keyring_3.12.0.bb b/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb
deleted file mode 100644
index 82abe33491..0000000000
--- a/meta-gnome/recipes-gnome/gnome-keyring/libgnome-keyring_3.12.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Compatibility library for accessing secrets"
-HOMEPAGE = "http://www.gnome.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=0914b9d3ebaba41ef2e3e0ae16f296cf \
- file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
-"
-SECTION = "x11/gnome/libs"
-
-inherit gnomebase gtk-doc gobject-introspection
-
-DEPENDS = "dbus libgcrypt glib-2.0 glib-2.0-native intltool-native"
-
-SRC_URI[archive.md5sum] = "6696e4f2e9aed4625cdc3af30bd8c238"
-SRC_URI[archive.sha256sum] = "c4c178fbb05f72acc484d22ddb0568f7532c409b0a13e06513ff54b91e947783"
diff --git a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb
deleted file mode 100644
index 647ae914ff..0000000000
--- a/meta-gnome/recipes-gnome/gnome-menus/gnome-menus3_3.10.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "GNOME menus"
-SECTION = "x11/gnome"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-DEPENDS = "python libxml2 gconf popt gtk+3 intltool-native gnome-common-native"
-
-inherit distro_features_check gnomebase pkgconfig python-dir pythonnative gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-BPN = "gnome-menus"
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-SRC_URI = "${GNOME_MIRROR}/${BPN}/${SHRT_VER}/${BPN}-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "6db025e79e2b69f39fc7aa0753f43081"
-SRC_URI[sha256sum] = "46950aba274c1ad58234374fa9b235258650737307f3bc396af48eb983668a71"
-
-FILES_${PN} += "${datadir}/desktop-directories/"
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
new file mode 100644
index 0000000000..fa162510cb
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-menus/gnome-menus_3.36.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "GNOME menus"
+SECTION = "x11/gnome"
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+DEPENDS = "glib-2.0"
+
+inherit gnomebase gettext pkgconfig gobject-introspection upstream-version-is-even
+
+SRC_URI[archive.md5sum] = "a8fd71fcf31a87fc799d80396a526829"
+SRC_URI[archive.sha256sum] = "d9348f38bde956fc32753b28c1cde19c175bfdbf1f4d5b06003b3aa09153bb1f"
+
+FILES:${PN} += "${datadir}/desktop-directories/"
diff --git a/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts/0001-Replace-filename-with-basename.patch b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts/0001-Replace-filename-with-basename.patch
new file mode 100644
index 0000000000..9bb1d6bb59
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts/0001-Replace-filename-with-basename.patch
@@ -0,0 +1,104 @@
+From c4a2951f8a75c4151f009e42b26639e4f456d5a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 27 May 2023 14:41:28 -0700
+Subject: [PATCH] Replace filename with basename
+
+This avoids emitting absolute paths into generated sourcecode, it
+improves reproducibility. See [1]
+
+[1] https://developer-old.gnome.org/gobject/stable/glib-mkenums.html
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gnome-online-accounts/-/merge_requests/125]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/goa/goaenumtypes.c.template | 2 +-
+ src/goa/goaenumtypes.h.template | 2 +-
+ src/goabackend/goabackendenumtypes.c.template | 2 +-
+ src/goabackend/goabackendenumtypes.h.template | 2 +-
+ src/goaidentity/goaidentityenumtypes.c.in | 4 ++--
+ src/goaidentity/goaidentityenumtypes.h.in | 2 +-
+ 6 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/src/goa/goaenumtypes.c.template b/src/goa/goaenumtypes.c.template
+index 3150fa71..c2bc4b0a 100644
+--- a/src/goa/goaenumtypes.c.template
++++ b/src/goa/goaenumtypes.c.template
+@@ -5,7 +5,7 @@
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN value-header ***/
+diff --git a/src/goa/goaenumtypes.h.template b/src/goa/goaenumtypes.h.template
+index 040428c3..14548cb4 100644
+--- a/src/goa/goaenumtypes.h.template
++++ b/src/goa/goaenumtypes.h.template
+@@ -9,7 +9,7 @@ G_BEGIN_DECLS
+
+ /*** BEGIN file-production ***/
+
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN value-header ***/
+diff --git a/src/goabackend/goabackendenumtypes.c.template b/src/goabackend/goabackendenumtypes.c.template
+index 6d2651da..05156bdd 100644
+--- a/src/goabackend/goabackendenumtypes.c.template
++++ b/src/goabackend/goabackendenumtypes.c.template
+@@ -5,7 +5,7 @@
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN value-header ***/
+diff --git a/src/goabackend/goabackendenumtypes.h.template b/src/goabackend/goabackendenumtypes.h.template
+index 7321076e..51ce84bd 100644
+--- a/src/goabackend/goabackendenumtypes.h.template
++++ b/src/goabackend/goabackendenumtypes.h.template
+@@ -9,7 +9,7 @@ G_BEGIN_DECLS
+
+ /*** BEGIN file-production ***/
+
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN value-header ***/
+diff --git a/src/goaidentity/goaidentityenumtypes.c.in b/src/goaidentity/goaidentityenumtypes.c.in
+index c0286907..8aad7ae4 100644
+--- a/src/goaidentity/goaidentityenumtypes.c.in
++++ b/src/goaidentity/goaidentityenumtypes.c.in
+@@ -5,8 +5,8 @@
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-#include "@filename@"
+-/* enumerations from "@filename@" */
++#include "@basename@"
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN value-header ***/
+diff --git a/src/goaidentity/goaidentityenumtypes.h.in b/src/goaidentity/goaidentityenumtypes.h.in
+index 35d4d5c5..8719282a 100644
+--- a/src/goaidentity/goaidentityenumtypes.h.in
++++ b/src/goaidentity/goaidentityenumtypes.h.in
+@@ -9,7 +9,7 @@ G_BEGIN_DECLS
+
+ /*** BEGIN file-production ***/
+
+-/* enumerations from "@filename@" */
++/* enumerations from "@basename@" */
+ /*** END file-production ***/
+
+ /*** BEGIN value-header ***/
+--
+2.40.1
+
diff --git a/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
new file mode 100644
index 0000000000..cd14b48508
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-online-accounts/gnome-online-accounts_3.48.0.bb
@@ -0,0 +1,31 @@
+SUMMARY = "GNOME Online Accounts - Single sign-on framework for GNOME"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=34c88b124db5fb2762c1676be7dadd36"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gtk-icon-cache vala features_check
+
+DEPENDS = "gdk-pixbuf dbus glib-2.0"
+
+SRC_URI += "file://0001-Replace-filename-with-basename.patch"
+SRC_URI[archive.sha256sum] = "418bb9fcffdbd72a98205ad365137617fc1e3551a54de74f6a98d45d266175bf"
+
+PACKAGECONFIG ?= "goabackend kerberos owncloud lastfm google windows_live"
+
+# goabackend requires webkitgtk to be built with gtk+3 and gcr3
+PACKAGECONFIG[goabackend] = "-Dgoabackend=true,-Dgoabackend=false,gtk+3 gtk+3-native json-glib libxml2 libsoup rest libsecret webkitgtk3"
+PACKAGECONFIG[kerberos] = "-Dkerberos=true, -Dkerberos=false,krb5 gcr3"
+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"
+PACKAGECONFIG[lastfm] = "-Dlastfm=true, -Dlastfm=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.47.1.bb b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.47.1.bb
new file mode 100644
index 0000000000..8380c51edf
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-panel/gnome-panel_3.47.1.bb
@@ -0,0 +1,24 @@
+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 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_44.0.bb b/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb
new file mode 100644
index 0000000000..066a50e525
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-photos/gnome-photos_44.0.bb
@@ -0,0 +1,60 @@
+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"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+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/0001-meson-remove-extraneous-positional-argument.patch b/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot/0001-meson-remove-extraneous-positional-argument.patch
new file mode 100644
index 0000000000..c80fda63a3
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot/0001-meson-remove-extraneous-positional-argument.patch
@@ -0,0 +1,36 @@
+From c38c604b06a63f690d67318d4ef97ac556264876 Mon Sep 17 00:00:00 2001
+From: Jack Hill <jackhill@jackhill.us>
+Date: Thu, 18 Nov 2021 00:46:58 -0500
+Subject: [PATCH] meson: remove extraneous positional argument
+
+* data/meson.build (desktop_file)
+ (metainfo_file): Remove extraneous positional argument.
+
+Closes #186
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ data/meson.build | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index fd570b3..4e2e2e8 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -1,7 +1,6 @@
+ gnome = import('gnome')
+
+ desktop_file = i18n.merge_file(
+- 'desktop',
+ type: 'desktop',
+ input: 'org.gnome.Screenshot.desktop.in',
+ output: 'org.gnome.Screenshot.desktop',
+@@ -23,7 +22,6 @@ if desktop_file_validate.found()
+ endif
+
+ metainfo_file = i18n.merge_file(
+- 'appdata',
+ input: 'org.gnome.Screenshot.metainfo.xml.in',
+ output: 'org.gnome.Screenshot.metainfo.xml',
+ po_dir: join_paths(meson.current_source_dir(), '../po'),
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
new file mode 100644
index 0000000000..fa7e161e9e
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-screenshot/gnome-screenshot_41.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "GNOME Screenshot"
+DESCRIPTION = "GNOME Screenshot is a small utility that takes a screenshot \
+of the whole desktop, the currently focused window, or an area of the screen."
+LICENSE = "GPL-2.0-only"
+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"
+SRC_URI[archive.sha256sum] = "4adb7dec926428f74263d5796673cf142e4720b6e768f5468a8d0933f98c9597"
+
+DEPENDS += "glib-2.0 glib-2.0-native gtk+3 libhandy xext"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/metainfo \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb b/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb
new file mode 100644
index 0000000000..3f642f401f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-session/gnome-session_44.0.bb
@@ -0,0 +1,38 @@
+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] = "ccf829a96526135e9e9f917526515d36a5092bdfa316f3737dd8c5a524dbf2c6"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', 'consolekit',d)}"
+
+PACKAGECONFIG[consolekit] = "-Dconsolekit=true, -Dconsolekit=false, dbus-glib"
+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-settings-daemon/gnome-settings-daemon_44.1.bb b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb
new file mode 100644
index 0000000000..104f4a6677
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-settings-daemon/gnome-settings-daemon_44.1.bb
@@ -0,0 +1,46 @@
+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] = "12653b72d81f151300a47d700ac9410ac1bcce38e83f1bdd19cded2932943989"
+
+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} \
+ /usr/lib/gnome-settings-daemon-44/libgsd.so \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_44.1.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_44.1.bb
new file mode 100644
index 0000000000..126e5ef3f7
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell-extensions_44.1.bb
@@ -0,0 +1,25 @@
+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] = "8c345e72f31a1e37f55063e0b15997301b01194ed698772fd87aeb50cbb101ab"
+
+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
new file mode 100644
index 0000000000..b583199e98
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell/0001-Introduce-options-gjs_path-to-optionally-set-path-to.patch
@@ -0,0 +1,115 @@
+From 9f11c9e53d91b23113202b40500540242bcabdb0 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
+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>
+
+---
+ js/dbusServices/meson.build | 2 +-
+ meson.build | 6 +++++-
+ meson_options.txt | 6 ++++++
+ subprojects/extensions-app/js/meson.build | 2 +-
+ subprojects/extensions-app/meson.build | 7 ++++++-
+ subprojects/extensions-app/meson_options.txt | 6 ++++++
+ 6 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/js/dbusServices/meson.build b/js/dbusServices/meson.build
+index 48b7f89..700b590 100644
+--- a/js/dbusServices/meson.build
++++ b/js/dbusServices/meson.build
+@@ -22,7 +22,7 @@ foreach service, dir : dbus_services
+
+ serviceconf = configuration_data()
+ serviceconf.set('service', service)
+- serviceconf.set('gjs', gjs.full_path())
++ serviceconf.set('gjs', gjs)
+ serviceconf.set('pkgdatadir', pkgdatadir)
+
+ configure_file(
+diff --git a/meson.build b/meson.build
+index 252fb1e..250f722 100644
+--- a/meson.build
++++ b/meson.build
+@@ -125,7 +125,11 @@ endif
+
+ mutter_typelibdir = mutter_dep.get_variable('typelibdir')
+ python = find_program('python3')
+-gjs = find_program('gjs')
++if get_option('gjs_path') == ''
++ gjs = find_program('gjs')
++else
++ gjs = get_option('gjs_path')
++endif
+
+ cc = meson.get_compiler('c')
+
+diff --git a/meson_options.txt b/meson_options.txt
+index 46ca8e7..3e9a31f 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -45,3 +45,9 @@ option('soup2',
+ value: false,
+ description: 'Use Soup 2.4 instead of Soup 3. Must be in sync with libgweather'
+ )
++
++option('gjs_path',
++ type: 'string',
++ value: '',
++ 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
+--- a/subprojects/extensions-app/js/meson.build
++++ b/subprojects/extensions-app/js/meson.build
+@@ -9,7 +9,7 @@ endif
+ launcherconf.set('prefix', prefix)
+ launcherconf.set('libdir', libdir)
+ launcherconf.set('pkgdatadir', pkgdatadir)
+-launcherconf.set('gjs', gjs.full_path())
++launcherconf.set('gjs', gjs)
+
+ configure_file(
+ input: prgname + '.in',
+diff --git a/subprojects/extensions-app/meson.build b/subprojects/extensions-app/meson.build
+index 66a39e9..331dc1d 100644
+--- a/subprojects/extensions-app/meson.build
++++ b/subprojects/extensions-app/meson.build
+@@ -46,7 +46,12 @@ localedir = join_paths(datadir, 'locale')
+ metainfodir = join_paths(datadir, 'metainfo')
+ servicedir = join_paths(datadir, 'dbus-1', 'services')
+
+-gjs = find_program('gjs')
++if get_option('gjs_path') == ''
++ gjs = find_program('gjs')
++else
++ gjs = get_option('gjs_path')
++endif
++
+ appstream_util = find_program('appstream-util', 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
++++ b/subprojects/extensions-app/meson_options.txt
+@@ -10,3 +10,9 @@ option('profile',
+ ],
+ value: 'default'
+ )
++
++option('gjs_path',
++ type: 'string',
++ value: '',
++ description: 'Instead of searching gjs executable, configure path'
++)
diff --git a/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb
new file mode 100644
index 0000000000..e1aa051ef4
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-shell/gnome-shell_44.3.bb
@@ -0,0 +1,87 @@
+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 \
+ gtk4 \
+ mutter \
+ evolution-data-server \
+ gcr \
+ geocode-glib \
+ gjs \
+ gnome-autoar \
+ polkit \
+ libcroco \
+ 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] = "55694b71c2ee4eaef60d93428003f2eaa4cf00186848f5e36b45cfe506fc31bf"
+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,networkmanager"
+PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
+
+EXTRA_OEMESON = " \
+ -Dgjs_path=${bindir}/gjs \
+ -Dextensions-app:gjs_path=${bindir}/gjs \
+ -Dtests=false \
+ -Dman=false \
+ -Dsoup2=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} += " \
+ 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_44.3.bb b/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb
new file mode 100644
index 0000000000..a7807c34b1
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-software/gnome-software_44.3.bb
@@ -0,0 +1,44 @@
+SUMMARY = "GNOME Software allows users to easily find, discover and install apps."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+GNOMEBASEBUILDCLASS = "meson"
+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] = "325abb722cab20b6aa67f158ea2ff2ea899830ca0a883e24594d9def85fd1622"
+
+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/files/0001-help-remove-YELP-macro.patch b/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-help-remove-YELP-macro.patch
deleted file mode 100644
index 57b60a0d56..0000000000
--- a/meta-gnome/recipes-gnome/gnome-system-monitor/files/0001-help-remove-YELP-macro.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 4a3ee8b46d25b3d310448bfa4446e15a686fc685 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 23 Mar 2018 13:50:18 +0100
-Subject: [PATCH] help: remove YELP macro
-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>
----
- help/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/help/Makefile.am b/help/Makefile.am
-index c5cd0d3..4b83adf 100644
---- a/help/Makefile.am
-+++ b/help/Makefile.am
-@@ -1,5 +1,3 @@
--@YELP_HELP_RULES@
--
- HELP_ID = gnome-system-monitor
-
- HELP_FILES = \
---
-2.14.3
-
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.26.0.bb b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.26.0.bb
deleted file mode 100644
index 9b6ce17cae..0000000000
--- a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_3.26.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Gnome system monitor"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = " \
- intltool-native \
- gnome-common-native \
- glib-2.0-native \
- gtkmm3 \
- libgtop \
- librsvg \
- libwnck3 \
-"
-
-inherit gnomebase distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "fcd59867c07f8c4853b1e28d60cbc037"
-SRC_URI[archive.sha256sum] = "f848a8c2ca5e164cf09d3a205dd49e4e4bf4b60d43b0969c10443eb519d0e6b3"
-SRC_URI += "file://0001-help-remove-YELP-macro.patch"
-
-RRECOMMENDS_${PN} = "adwaita-icon-theme"
-
-FILES_${PN} += " \
- ${datadir}/icons \
- ${datadir}/dbus-1 \
- ${datadir}/gnome/autostart \
-"
-
-FILES_${PN}-doc += " \
- ${datadir}/omf \
- ${datadir}/gnome/help \
-"
diff --git a/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_44.0.bb b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_44.0.bb
new file mode 100644
index 0000000000..dfbfd7882e
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-system-monitor/gnome-system-monitor_44.0.bb
@@ -0,0 +1,36 @@
+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] = "c2bab7eddba92827c4c8de44293e7e3c84c9e5076f31985887ff8969cec45e6e"
+
+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-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
new file mode 100644
index 0000000000..ef722a0e7d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
@@ -0,0 +1,34 @@
+From f231cecc151930fd5b6309da317a8c5bc6001f38 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 30 Oct 2021 15:10:28 +0200
+Subject: [PATCH] Add W_EXITCODE macro for non-glibc systems
+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/terminal.cc | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/terminal.cc b/src/terminal.cc
+index 27ee91e..5f4d880 100644
+--- a/src/terminal.cc
++++ b/src/terminal.cc
+@@ -47,6 +47,11 @@
+ GS_DEFINE_CLEANUP_FUNCTION0(TerminalOptions*, gs_local_options_free, terminal_options_free)
+ #define gs_free_options __attribute__ ((cleanup(gs_local_options_free)))
+
++/* fix for musl */
++#ifndef W_EXITCODE
++#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
++#endif
++
+ /* Wait-for-exit helper */
+
+ typedef struct {
+--
+2.31.1
+
diff --git a/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.48.1.bb b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.48.1.bb
new file mode 100644
index 0000000000..13b440dfec
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-terminal/gnome-terminal_3.48.1.bb
@@ -0,0 +1,39 @@
+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 pkgconfig meson 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 \
+ 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 \
+ "
+SRCREV = "1446ff0abc478bdd03c6665b718214d075729024"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[nautilus] = "-Dnautilus_extension=true,-Dnautilus_extension=false,nautilus,nautilus"
+PACKAGECONFIG[search_provider] = "-Dsearch_provider=true,-Dsearch_provider=false,,gnome-shell"
+
+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_44.0.bb b/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb
new file mode 100644
index 0000000000..40bcd27d2b
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-text-editor/gnome-text-editor_44.0.bb
@@ -0,0 +1,27 @@
+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 \
+ 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] = "f67bc3780734ffa815fcc4c5daa7b555d24e459f81ea2b548e6a85c1612a31ca"
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${datadir}/dbus-1 \
+"
diff --git a/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch
new file mode 100644
index 0000000000..733249c7e6
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0001-Make-python-path-configurable.patch
@@ -0,0 +1,41 @@
+From db94983c93f38bd8494b47d9fa1b3e5368dc9abe Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 11 Dec 2019 01:34:01 +0100
+Subject: [PATCH] Make python path configurable
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ meson.build | 2 +-
+ meson_options.txt | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+ create mode 100644 meson_options.txt
+
+diff --git a/meson.build b/meson.build
+index 5b824e9..a673d9c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -18,7 +18,7 @@ bindir = join_paths(prefix, get_option('bindir'))
+ datadir = join_paths(prefix, get_option('datadir'))
+ libexecdir = join_paths(prefix, get_option('libexecdir'))
+ localedir = join_paths(prefix, get_option('localedir'))
+-pythondir = join_paths(prefix, python3.get_path('purelib'))
++pythondir = get_option('python_site_dir')
+
+ pkgdatadir = join_paths(datadir, meson.project_name())
+
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..03455ca
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,2 @@
++option('python_site_dir', type: 'string', value: '')
++
+--
+2.21.0
+
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
new file mode 100644
index 0000000000..bd7e76f208
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks/0002-meson-fix-invalid-positional-argument.patch
@@ -0,0 +1,33 @@
+From dc9701e18775c01d0b69fabaa350147f70096da8 Mon Sep 17 00:00:00 2001
+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]
+---
+ data/meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index fd6d5da..74f7e82 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -1,5 +1,5 @@
+ appdata_file = 'org.gnome.tweaks.appdata.xml'
+-i18n.merge_file(appdata_file,
++i18n.merge_file(
+ input: appdata_file + '.in',
+ output: appdata_file,
+ po_dir: '../po',
+@@ -8,7 +8,7 @@ i18n.merge_file(appdata_file,
+ )
+
+ desktop_file = 'org.gnome.tweaks.desktop'
+-i18n.merge_file(desktop_file,
++i18n.merge_file(
+ input: desktop_file + '.in',
+ output: desktop_file,
+ po_dir: '../po',
+--
+GitLab
+
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
new file mode 100644
index 0000000000..ffdf2c9d38
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gnome-tweaks/gnome-tweaks_40.0.bb
@@ -0,0 +1,34 @@
+SUMMARY = "GNOME tweaks: Advanced options for GNOME 3 session"
+LICENSE = "GPL-3.0-only & CC0-1.0"
+LIC_FILES_CHKSUM = " \
+ file://LICENSES/CC0-1.0;md5=65d3616852dbf7b1a6d4b53b00626032 \
+ file://LICENSES/GPL-3.0;md5=9eef91148a9b14ec7f9df333daebc746 \
+"
+
+DEPENDS = "libhandy"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gtk-icon-cache gobject-introspection features_check
+
+# same as gnome-shell
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam"
+
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES += "gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+SRC_URI[archive.sha256sum] = "f95f3fe031b0b01c02f79a1659f889152d3772ae3e44df8403d1460ba5eec36a"
+SRC_URI += " \
+ file://0001-Make-python-path-configurable.patch \
+ file://0002-meson-fix-invalid-positional-argument.patch \
+"
+
+EXTRA_OEMESON = "-Dpython_site_dir=${PYTHON_SITEPACKAGES_DIR}"
+
+FILES:${PN} += " \
+ ${datadir}/metainfo \
+ ${PYTHON_SITEPACKAGES_DIR} \
+"
+
+RDEPENDS:${PN} += "gnome-shell python3-core python3-logging libhandy"
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
new file mode 100644
index 0000000000..6e565e60d5
--- /dev/null
+++ b/meta-gnome/recipes-gnome/grilo/grilo-plugins/0001-Avoid-running-trackertestutils.patch
@@ -0,0 +1,32 @@
+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
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It breaks configuration:
+| ../grilo-plugins-0.3.13/tests/tracker3/meson.build:5:0: ERROR: Program '/usr/lib/tracker-3.0/trackertestutils/tracker-sandbox' not found
+
+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 fca5f98..3c1aa06 100644
+--- a/meson.build
++++ b/meson.build
+@@ -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_pkg = [
+ 'lua',
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..91cbe82ea9
--- /dev/null
+++ b/meta-gnome/recipes-gnome/grilo/grilo-plugins_0.3.16.bb
@@ -0,0 +1,24 @@
+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 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+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.16.bb b/meta-gnome/recipes-gnome/grilo/grilo_0.3.16.bb
new file mode 100644
index 0000000000..e86f75f0c8
--- /dev/null
+++ b/meta-gnome/recipes-gnome/grilo/grilo_0.3.16.bb
@@ -0,0 +1,31 @@
+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] = "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
new file mode 100644
index 0000000000..bdef603f0d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gsound/gsound_1.0.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Small gobject library for playing system sounds"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=447b837ae57f08b7060593ac6256163f"
+
+DEPENDS = " \
+ glib-2.0 \
+ libcanberra \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gettext gobject-introspection vala
+
+SRC_URI[archive.sha256sum] = "ca2d039e1ebd148647017a7f548862350bc9af01986d39f10cfdc8e95f07881a"
diff --git a/meta-gnome/recipes-gnome/gspell/gspell_1.12.1.bb b/meta-gnome/recipes-gnome/gspell/gspell_1.12.1.bb
new file mode 100644
index 0000000000..6b65af3bb4
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gspell/gspell_1.12.1.bb
@@ -0,0 +1,10 @@
+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] = "8ec44f32052e896fcdd4926eb814a326e39a5047e251eec7b9056fbd9444b0f1"
diff --git a/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb b/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb
new file mode 100644
index 0000000000..92152aca69
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gthumb/gthumb_3.12.2.bb
@@ -0,0 +1,31 @@
+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 \
+ 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/gtksourceview/gtksourceview-classic-light_1.0.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb
index e7dc0f865c..4e1e434314 100644
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb
+++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview-classic-light_1.0.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "Gtksourceview Classic-Light theme"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://classic-light.xml;beginline=6;endline=23;md5=2b4f75364fad00a4d752214dcbd7d7c3"
inherit allarch
@@ -9,13 +9,13 @@ SRC_URI = "file://classic-light.xml"
S = "${WORKDIR}"
do_install() {
- install -d ${D}${datadir}/gtksourceview-2.0/styles
- install -m 0644 ${WORKDIR}/classic-light.xml ${D}${datadir}/gtksourceview-2.0/styles/
install -d ${D}${datadir}/gtksourceview-3.0/styles
install -m 0644 ${WORKDIR}/classic-light.xml ${D}${datadir}/gtksourceview-3.0/styles/
+ install -d ${D}${datadir}/gtksourceview-4/styles
+ install -m 0644 ${WORKDIR}/classic-light.xml ${D}${datadir}/gtksourceview-4/styles/
}
-FILES_${PN} = " \
- ${datadir}/gtksourceview-2.0/styles \
+FILES:${PN} = " \
${datadir}/gtksourceview-3.0/styles \
+ ${datadir}/gtksourceview-4/styles \
"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/0001-test-widget.c-fix-non-literal-format-string-issues.patch b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/0001-test-widget.c-fix-non-literal-format-string-issues.patch
deleted file mode 100644
index 6118b679a5..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/0001-test-widget.c-fix-non-literal-format-string-issues.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0781b218beb8ba160ea223ff3d74a4fa2abf86fa Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Apr 2017 16:21:14 -0700
-Subject: [PATCH] test-widget.c: fix non-literal format string issues
-
-clang errors out when using -Werror=format-nonliteral
-since the definition of g_strdup_vprintf() from glib-2.0
-is using va_list and clang seems to still warn where as
-gcc doesn't do that for va_list arguments
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/test-widget.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/test-widget.c b/tests/test-widget.c
-index 46f5f4e..3f2e60f 100644
---- a/tests/test-widget.c
-+++ b/tests/test-widget.c
-@@ -260,7 +260,7 @@ static const gchar *buffer_ui_description =
-
- /* File loading code ----------------------------------------------------------------- */
-
--static void
-+static void G_GNUC_PRINTF (2, 0)
- error_dialog (GtkWindow *parent, const gchar *msg, ...)
- {
- va_list ap;
---
-2.12.2
-
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m4 b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m4
deleted file mode 100644
index 53518fb2eb..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/acinclude.m4
+++ /dev/null
@@ -1,90 +0,0 @@
-## this one is commonly used with AM_PATH_PYTHONDIR ...
-dnl AM_CHECK_PYMOD(MODNAME [,SYMBOL [,ACTION-IF-FOUND [,ACTION-IF-NOT-FOUND]]])
-dnl Check if a module containing a given symbol is visible to python.
-AC_DEFUN(AM_CHECK_PYMOD,
-[AC_REQUIRE([AM_PATH_PYTHON])
-py_mod_var=`echo $1['_']$2 | sed 'y%./+-%__p_%'`
-AC_MSG_CHECKING(for ifelse([$2],[],,[$2 in ])python module $1)
-AC_CACHE_VAL(py_cv_mod_$py_mod_var, [
-ifelse([$2],[], [prog="
-import sys
-try:
- import $1
-except ImportError:
- sys.exit(1)
-except:
- sys.exit(0)
-sys.exit(0)"], [prog="
-import $1
-$1.$2"])
-if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC
- then
- eval "py_cv_mod_$py_mod_var=yes"
- else
- eval "py_cv_mod_$py_mod_var=no"
- fi
-])
-py_val=`eval "echo \`echo '$py_cv_mod_'$py_mod_var\`"`
-if test "x$py_val" != xno; then
- AC_MSG_RESULT(yes)
- ifelse([$3], [],, [$3
-])dnl
-else
- AC_MSG_RESULT(no)
- ifelse([$4], [],, [$4
-])dnl
-fi
-])
-
-dnl a macro to check for ability to create python extensions
-dnl AM_CHECK_PYTHON_HEADERS([ACTION-IF-POSSIBLE], [ACTION-IF-NOT-POSSIBLE])
-dnl function also defines PYTHON_INCLUDES
-AC_DEFUN([AM_CHECK_PYTHON_HEADERS],
-[AC_REQUIRE([AM_PATH_PYTHON])
-AC_MSG_CHECKING(for headers required to compile python extensions)
-dnl deduce PYTHON_INCLUDES
-AC_ARG_WITH(python-includes,
- [ --with-python-includes=DIR path to Python includes], py_exec_prefix=$withval)
-if test x$py_exec_prefix != x; then
-PYTHON_INCLUDES="-I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-else
-py_prefix=`$PYTHON -c "import sys; print sys.prefix"`
-py_exec_prefix=`$PYTHON -c "import sys; print sys.exec_prefix"`
-PYTHON_INCLUDES="-I${py_prefix}/include/python${PYTHON_VERSION}"
-if test "$py_prefix" != "$py_exec_prefix"; then
- PYTHON_INCLUDES="$PYTHON_INCLUDES -I${py_exec_prefix}/include/python${PYTHON_VERSION}"
-fi
-fi
-AC_SUBST(PYTHON_INCLUDES)
-dnl check if the headers exist:
-save_CPPFLAGS="$CPPFLAGS"
-CPPFLAGS="$CPPFLAGS $PYTHON_INCLUDES"
-AC_TRY_CPP([#include <Python.h>],dnl
-[AC_MSG_RESULT(found)
-$1],dnl
-[AC_MSG_RESULT(not found)
-$2])
-CPPFLAGS="$save_CPPFLAGS"
-])
-
-dnl
-dnl JH_ADD_CFLAG(FLAG)
-dnl checks whether the C compiler supports the given flag, and if so, adds
-dnl it to $CFLAGS. If the flag is already present in the list, then the
-dnl check is not performed.
-AC_DEFUN([JH_ADD_CFLAG],
-[
-case " $CFLAGS " in
-*@<:@\ \ @:>@$1@<:@\ \ @:>@*)
- ;;
-*)
- save_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS $1"
- AC_MSG_CHECKING([whether [$]CC understands $1])
- AC_TRY_COMPILE([], [], [jh_has_option=yes], [jh_has_option=no])
- AC_MSG_RESULT($jh_has_option)
- if test $jh_has_option = no; then
- CFLAGS="$save_CFLAGS"
- fi
- ;;
-esac])
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m4 b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m4
deleted file mode 100644
index 3ec41666b2..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.m4
+++ /dev/null
@@ -1,53 +0,0 @@
-dnl -*- mode: autoconf -*-
-
-# serial 1
-
-dnl Usage:
-dnl GTK_DOC_CHECK([minimum-gtk-doc-version])
-AC_DEFUN([GTK_DOC_CHECK],
-[
- AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
- AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
- dnl for overriding the documentation installation directory
- AC_ARG_WITH(html-dir,
- AC_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),,
- [with_html_dir='${datadir}/gtk-doc/html'])
- HTML_DIR="$with_html_dir"
- AC_SUBST(HTML_DIR)
-
- dnl enable/disable documentation building
- AC_ARG_ENABLE(gtk-doc,
- AC_HELP_STRING([--enable-gtk-doc],
- [use gtk-doc to build documentation [default=no]]),,
- enable_gtk_doc=no)
-
- have_gtk_doc=no
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
- fi
- if test "$PKG_CONFIG" != "no" && $PKG_CONFIG --exists gtk-doc; then
- have_gtk_doc=yes
- fi
-
- dnl do we want to do a version check?
-ifelse([$1],[],,
- [gtk_doc_min_version=$1
- if test "$have_gtk_doc" = yes; then
- AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version])
- if $PKG_CONFIG --atleast-version $gtk_doc_min_version gtk-doc; then
- AC_MSG_RESULT(yes)
- else
- AC_MSG_RESULT(no)
- have_gtk_doc=no
- fi
- fi
-])
- if test x$enable_gtk_doc = xyes; then
- if test "$have_gtk_doc" != yes; then
- enable_gtk_doc=no
- fi
- fi
-
- AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
- AM_CONDITIONAL(GTK_DOC_USE_LIBTOOL, test -n "$LIBTOOL")
-])
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make
deleted file mode 100644
index 354ffb7c66..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/gtk-doc.make
+++ /dev/null
@@ -1,173 +0,0 @@
-# -*- mode: makefile -*-
-
-####################################
-# Everything below here is generic #
-####################################
-
-if GTK_DOC_USE_LIBTOOL
-GTKDOC_CC = $(LIBTOOL) --mode=compile $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(LIBTOOL) --mode=link $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-else
-GTKDOC_CC = $(CC) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-GTKDOC_LD = $(CC) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS)
-endif
-
-# We set GPATH here; this gives us semantics for GNU make
-# which are more like other make's VPATH, when it comes to
-# whether a source that is a target of one rule is then
-# searched for in VPATH/GPATH.
-#
-GPATH = $(srcdir)
-
-TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)
-
-EXTRA_DIST = \
- $(content_files) \
- $(HTML_IMAGES) \
- $(DOC_MAIN_SGML_FILE) \
- $(DOC_MODULE)-sections.txt \
- $(DOC_MODULE)-overrides.txt
-
-DOC_STAMPS=scan-build.stamp tmpl-build.stamp sgml-build.stamp html-build.stamp \
- $(srcdir)/tmpl.stamp $(srcdir)/sgml.stamp $(srcdir)/html.stamp
-
-SCANOBJ_FILES = \
- $(DOC_MODULE).args \
- $(DOC_MODULE).hierarchy \
- $(DOC_MODULE).interfaces \
- $(DOC_MODULE).prerequisites \
- $(DOC_MODULE).signals
-
-REPORT_FILES = \
- $(DOC_MODULE)-undocumented.txt \
- $(DOC_MODULE)-undeclared.txt \
- $(DOC_MODULE)-unused.txt
-
-CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS)
-
-if ENABLE_GTK_DOC
-all-local: html-build.stamp
-else
-all-local:
-endif
-
-docs: html-build.stamp
-
-#### scan ####
-
-scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB)
- @echo 'gtk-doc: Scanning header files'
- @-chmod -R u+w $(srcdir)
- cd $(srcdir) && \
- gtkdoc-scan --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --ignore-headers="$(IGNORE_HFILES)" $(SCAN_OPTIONS) $(EXTRA_HFILES)
- if grep -l '^..*$$' $(srcdir)/$(DOC_MODULE).types > /dev/null 2>&1 ; then \
- CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" CFLAGS="$(GTKDOC_CFLAGS)" LDFLAGS="$(GTKDOC_LIBS)" gtkdoc-scangobj $(SCANGOBJ_OPTIONS) --module=$(DOC_MODULE) --output-dir=$(srcdir) ; \
- else \
- cd $(srcdir) ; \
- for i in $(SCANOBJ_FILES) ; do \
- test -f $$i || touch $$i ; \
- done \
- fi
- touch scan-build.stamp
-
-$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp
- @true
-
-#### templates ####
-
-tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt
- @echo 'gtk-doc: Rebuilding template files'
- @-chmod -R u+w $(srcdir)
- cd $(srcdir) && gtkdoc-mktmpl --module=$(DOC_MODULE) $(MKTMPL_OPTIONS)
- touch tmpl-build.stamp
-
-tmpl.stamp: tmpl-build.stamp
- @true
-
-tmpl/*.sgml:
- @true
-
-
-#### xml ####
-
-sgml-build.stamp: tmpl.stamp $(HFILE_GLOB) $(CFILE_GLOB) $(DOC_MODULE)-sections.txt $(srcdir)/tmpl/*.sgml $(expand_content_files)
- @echo 'gtk-doc: Building XML'
- @-chmod -R u+w $(srcdir)
- cd $(srcdir) && \
- gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --output-format=xml --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) $(MKDB_OPTIONS)
- touch sgml-build.stamp
-
-sgml.stamp: sgml-build.stamp
- @true
-
-#### html ####
-
-html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files)
- @echo 'gtk-doc: Building HTML'
- @-chmod -R u+w $(srcdir)
- rm -rf $(srcdir)/html
- mkdir $(srcdir)/html
- cd $(srcdir)/html && gtkdoc-mkhtml $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE)
- test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) html )
- @echo 'gtk-doc: Fixing cross-references'
- cd $(srcdir) && gtkdoc-fixxref --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS)
- touch html-build.stamp
-
-##############
-
-clean-local:
- rm -f *~ *.bak
- rm -rf .libs
-
-distclean-local:
- cd $(srcdir) && \
- rm -rf xml $(REPORT_FILES) \
- $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt
-
-maintainer-clean-local: clean
- cd $(srcdir) && rm -rf xml html
-
-install-data-local:
- -installfiles=`echo $(srcdir)/html/*`; \
- if test "$$installfiles" = '$(srcdir)/html/*'; \
- then echo '-- Nothing to install' ; \
- else \
- $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \
- for i in $$installfiles; do \
- echo '-- Installing '$$i ; \
- $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \
- done; \
- echo '-- Installing $(srcdir)/html/index.sgml' ; \
- $(INSTALL_DATA) $(srcdir)/html/index.sgml $(DESTDIR)$(TARGET_DIR) || :; \
- which gtkdoc-rebase >/dev/null && \
- gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR) ; \
- fi
-
-
-uninstall-local:
- rm -f $(DESTDIR)$(TARGET_DIR)/*
-
-#
-# Require gtk-doc when making dist
-#
-if ENABLE_GTK_DOC
-dist-check-gtkdoc:
-else
-dist-check-gtkdoc:
- @echo "*** gtk-doc must be installed and enabled in order to make dist"
- @false
-endif
-
-dist-hook: dist-check-gtkdoc dist-hook-local
- mkdir $(distdir)/tmpl
- mkdir $(distdir)/xml
- mkdir $(distdir)/html
- -cp $(srcdir)/tmpl/*.sgml $(distdir)/tmpl
- -cp $(srcdir)/xml/*.xml $(distdir)/xml
- cp $(srcdir)/html/* $(distdir)/html
- -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/
- -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/
- cd $(distdir) && rm -f $(DISTCLEANFILES)
- -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html
-
-.PHONY : dist-hook-local docs
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/suppress-string-format-literal-warning.patch b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/suppress-string-format-literal-warning.patch
deleted file mode 100644
index f9ae077631..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2/suppress-string-format-literal-warning.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Fix build error with gcc6:
-../../gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c: In function 'strdup_strftime':
-../../gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c:1951:3: error: format not a string literal, format string not checked [-Werror=format-nonliteral]
- tmplen = strftime (tmpbuf, tmpbufsize, locale_format, tm);
- ^~~~~~
-
-Patch Reference:
-https://git.gnome.org/browse/glib/commit/?id=0817af40e8c74c721c30f6ef482b1f53d12044c7
-https://git.gnome.org/browse/glib/commit/?id=8cdbc7fb2c8c876902e457abe46ee18a0b134486
-
-Upstream-Status: Pending
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
-
-diff -Nurp gtksourceview-2.10.5.orig/gtksourceview/gtksourceprintcompositor.c gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c
---- gtksourceview-2.10.5.orig/gtksourceview/gtksourceprintcompositor.c 2016-07-01 13:11:43.631173762 +0800
-+++ gtksourceview-2.10.5/gtksourceview/gtksourceprintcompositor.c 2016-07-04 13:54:18.223726343 +0800
-@@ -1913,6 +1913,8 @@ setup_pango_layouts (GtkSourcePrintCompo
- * GLIB - Library of useful routines for C programming
- * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald */
-
-+#pragma GCC diagnostic push
-+#pragma GCC diagnostic ignored "-Wformat-nonliteral"
- static gchar *
- strdup_strftime (const gchar *format, const struct tm *tm)
- {
-@@ -1982,6 +1984,7 @@ strdup_strftime (const gchar *format, co
-
- return convbuf;
- }
-+#pragma GCC diagnostic pop
-
- static gchar *
- evaluate_format_string (GtkSourcePrintCompositor *compositor,
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb
deleted file mode 100644
index 012f8e3bc0..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview2_2.10.5.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Portable C library for multiline text editing"
-HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "gtk+ libxml2 intltool-native gnome-common-native glib-2.0-native"
-
-PNAME = "gtksourceview"
-
-S = "${WORKDIR}/${PNAME}-${PV}"
-
-inherit gnomebase lib_package gettext distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# overrule SRC_URI from gnome.conf
-SRC_URI = "${GNOME_MIRROR}/${PNAME}/${@gnome_verdir("${PV}")}/${PNAME}-${PV}.tar.bz2;name=archive \
- file://gtk-doc.make \
- file://suppress-string-format-literal-warning.patch \
- file://0001-test-widget.c-fix-non-literal-format-string-issues.patch \
- "
-SRC_URI[archive.md5sum] = "1219ad1694df136f126507466aeb41aa"
-SRC_URI[archive.sha256sum] = "c585773743b1df8a04b1be7f7d90eecdf22681490d6810be54c81a7ae152191e"
-
-do_configure_prepend() {
- cp ${WORKDIR}/gtk-doc.make ${S}/
- sed -i -e s:docs::g ${S}/Makefile.am
- echo "EXTRA_DIST = version.xml" > gnome-doc-utils.make
-}
-
-FILES_${PN} += " ${datadir}/gtksourceview-2.0"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
new file mode 100644
index 0000000000..1e5652d3bd
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.11.bb
@@ -0,0 +1,21 @@
+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}"
+
+inherit gnomebase lib_package gettext features_check gtk-doc gobject-introspection upstream-version-is-even
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.24/${PNAME}-${PV}.tar.xz"
+SRC_URI[md5sum] = "b748da426a7d64e1304f0c532b0f2a67"
+SRC_URI[sha256sum] = "691b074a37b2a307f7f48edc5b8c7afa7301709be56378ccf9cc9735909077fd"
+
+FILES:${PN} += " ${datadir}/gtksourceview-3.0"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.6.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.6.bb
deleted file mode 100644
index 87e48ed3c3..0000000000
--- a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview3_3.24.6.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Portable C library for multiline text editing"
-HOMEPAGE = "http://projects.gnome.org/gtksourceview/"
-
-LICENSE = "LGPLv2.1"
-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}"
-
-inherit gnomebase lib_package gettext distro_features_check gtk-doc gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtksourceview/3.24/${PNAME}-${PV}.tar.xz"
-SRC_URI[md5sum] = "c09ccfc80f78083841f8fe266c1ac52a"
-SRC_URI[sha256sum] = "7aa6bdfebcdc73a763dddeaa42f190c40835e6f8495bb9eb8f78587e2577c188"
-
-FILES_${PN} += " ${datadir}/gtksourceview-3.0"
diff --git a/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb
new file mode 100644
index 0000000000..979da792f7
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview4_4.8.2.bb
@@ -0,0 +1,37 @@
+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/gtksourceview5_5.7.1.bb b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.7.1.bb
new file mode 100644
index 0000000000..99826c5944
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gtksourceview/gtksourceview5_5.7.1.bb
@@ -0,0 +1,38 @@
+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 \
+ gnome-common-native \
+ fontconfig \
+ gtk4 \
+ libxml2 \
+ libpcre2 \
+ pango \
+"
+
+PNAME = "gtksourceview"
+
+S = "${WORKDIR}/${PNAME}-${PV}"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase lib_package gettext features_check gtk-doc gtk-icon-cache gobject-introspection vala
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI = "https://download.gnome.org/sources/gtksourceview/5.7/${PNAME}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "3b42541964db9c2fa50a9658d4886bdf77d023fe4e96c5b17bce51c9f58c48e6"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+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/gvfs/gvfs_1.36.0.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.36.0.bb
deleted file mode 100644
index 5f7391285f..0000000000
--- a/meta-gnome/recipes-gnome/gvfs/gvfs_1.36.0.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-DESCRIPTION = "gvfs is a userspace virtual filesystem"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=05df38dd77c35ec8431f212410a3329e"
-
-inherit gnome bash-completion gettext
-
-DEPENDS += "libsecret glib-2.0 gconf intltool-native libgudev udisks2 polkit shadow-native"
-
-SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
-
-SRC_URI[archive.md5sum] = "216d461c5e96e2cea74253be407af6dc"
-SRC_URI[archive.sha256sum] = "9ec388afeb373a213f2cc489184f76a17ae273a000e8a4ec720c1995943256bb"
-
-do_configure_prepend() {
- # make automake happy..
- touch ${S}/ABOUT-NLS
-}
-
-EXTRA_OECONF = " \
- --disable-gdu \
- --enable-udisks2 \
- --disable-documentation \
-"
-
-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} \
-"
-RDEPENDS_${PN} = "udisks2"
-
-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)}"
-
-PACKAGECONFIG[afc] = "--enable-afc, --disable-afc, libimobiledevice libplist"
-PACKAGECONFIG[archive] = "--enable-archive, --disable-archive, libarchive"
-PACKAGECONFIG[avahi] = "--enable-avahi, --disable-avahi, avahi"
-PACKAGECONFIG[gcr] = "--enable-gcr, --disable-gcr, gcr"
-PACKAGECONFIG[http] = "--enable-http, --disable-http, libsoup-2.4"
-PACKAGECONFIG[libmtp] = "--enable-libmtp, --disable-libmtp, libmtp"
-PACKAGECONFIG[libgphoto2] = "--enable-gphoto2, --disable-gphoto2, libgphoto2"
-PACKAGECONFIG[samba] = "--enable-samba, --disable-samba, samba"
-PACKAGECONFIG[systemd] = "--with-systemduserunitdir=${systemd_user_unitdir},--without-systemduserunitdir,systemd"
-
-# needs meta-filesystems
-PACKAGECONFIG[fuse] = "--enable-fuse, --disable-fuse, fuse"
-
-# libcdio-paranoia recipe doesn't exist yet
-PACKAGECONFIG[cdda] = "--enable-cdda, --disable-cdda, libcdio-paranoia"
-
-# Fix up permissions on polkit rules.d to work with rpm4 constraints
-do_install_append() {
- chmod 700 ${D}/${datadir}/polkit-1/rules.d
- chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
-}
diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.1.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.1.bb
new file mode 100644
index 0000000000..32d47efd16
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gvfs/gvfs_1.51.1.bb
@@ -0,0 +1,97 @@
+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 += "\
+ 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] = "5baaf0cc81e2c690a726f7d5eb59eed48a33ea220fd5378df93c556173a3c143"
+
+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, gcr3, gnome-keyring"
+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[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/libchamplain/libchamplain_0.12.20.bb b/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.bb
new file mode 100644
index 0000000000..859eab9164
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libchamplain/libchamplain_0.12.20.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 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/libgdata/libgdata_0.16.1.bb b/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb
deleted file mode 100644
index 80cbae39f0..0000000000
--- a/meta-gnome/recipes-gnome/libgdata/libgdata_0.16.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "GLib-based library for accessing online service APIs using the GData protocol"
-HOMEPAGE = "http://live.gnome.org/libgdata"
-BUGTRACKER = "https://bugzilla.gnome.org/"
-
-LICENSE = "LGPLv2.1"
-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 = "gnome-common-native libxml2 glib-2.0 libsoup-2.4 intltool-native liboauth gcr json-glib"
-
-inherit distro_features_check gnomebase pkgconfig autotools-brokensep gettext gtk-doc vala gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_configure_prepend_class-target () {
- # introspection.m4 pre-packaged with upstream tarballs does not yet
- # have our fixes
- rm -f ${S}/introspection.m4
-
- # remove the pre-built gtk-doc files, as they're installed (or attempted to be installed)
- # even if gtk-doc is explicitly disabled
- rm -rf ${S}/docs/reference/html
-}
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/gdata/.libs"
-}
-
-EXTRA_OECONF += "--disable-goa --disable-tests --disable-gtk-doc"
-
-SRC_URI[archive.md5sum] = "eb552a8a8482e4231a3d1baf7262e64d"
-SRC_URI[archive.sha256sum] = "8740e071ecb2ae0d2a4b9f180d2ae5fdf9dc4c41e7ff9dc7e057f62442800827"
diff --git a/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb b/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
new file mode 100644
index 0000000000..126ef712d6
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgdata/libgdata_0.18.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "GLib-based library for accessing online service APIs using the GData protocol"
+HOMEPAGE = "http://live.gnome.org/libgdata"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+
+LICENSE = "LGPL-2.1-only"
+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 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}"
+
+do_compile:prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/gdata/.libs"
+}
+
+# goa is required for gnome-photos
+PACKAGECONFIG ??= "goa gtk vala"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false"
+PACKAGECONFIG[goa] = "-Dgoa=enabled,-Dgoa=disabled,gnome-online-accounts"
+PACKAGECONFIG[gtk] = "-Dgtk=enabled,-Dgtk=disabled,gtk+3"
+PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false"
+
+EXTRA_OEMESON = "-Dalways_build_tests=false"
+
+SRC_URI[archive.sha256sum] = "dd8592eeb6512ad0a8cf5c8be8c72e76f74bfe6b23e4dd93f0756ee0716804c7"
diff --git a/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb b/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb
deleted file mode 100644
index 40249fdfb9..0000000000
--- a/meta-gnome/recipes-gnome/libgnome/libgnomekbd_3.22.0.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "GNOME keyboard library"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812"
-
-SECTION = "x11/gnome/libs"
-
-DEPENDS = "gconf glib-2.0 libxklavier gtk+3 intltool-native"
-
-inherit distro_features_check gnome gobject-introspection gettext
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-GNOME_COMPRESS_TYPE = "xz"
-
-SRC_URI[archive.md5sum] = "7b1ebf99f4254c99922163c262c7ff04"
-SRC_URI[archive.sha256sum] = "340b30dabfebbd4e0e6c0fe34a378966dd5640b5d44595ab8a19b0be255d77df"
-
-EXTRA_OECONF_remove = "--disable-schemas-install"
-
diff --git a/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch b/meta-gnome/recipes-gnome/libgsf/libgsf/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch
index bc0090e17b..bc0090e17b 100644
--- a/meta-gnome/recipes-gnome/libgsf/files/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch
+++ b/meta-gnome/recipes-gnome/libgsf/libgsf/0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch
diff --git a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb
deleted file mode 100644
index f5e2f1dd73..0000000000
--- a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.29.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "GNOME Structured File Library"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dc7371b50816c96e145fa0f8ade8e24d \
- file://COPYING.LIB;md5=61464cfe342798eeced82efe9ae55f63"
-
-SECTION = "libs"
-
-DEPENDS= "libxml2 bzip2 glib-2.0 zlib intltool-native gnome-common-native"
-
-inherit autotools pkgconfig gnome gconf gobject-introspection
-
-SRC_URI += "file://0001-configure.ac-drop-a-copy-paste-of-introspection.m4-m.patch"
-
-SRC_URI[archive.md5sum] = "3056b94bb3281dbc8311371bfc23cf72"
-SRC_URI[archive.sha256sum] = "4d8bca33424eb711acdb6a060cb488b132063d699c4fa201db24c2c89c62529c"
-
-GNOME_COMPRESS_TYPE = "xz"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gdk-pixbuf] = "--with-gdk-pixbuf,--without-gdk-pixbuf,gdk-pixbuf"
-
-EXTRA_OECONF = "\
- --disable-gtk-doc \
- --with-bz2 \
-"
-
-RDEPENDS_${PN} = "gconf"
-
-FILES_${PN} += "${datadir}/thumbnailers"
diff --git a/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb
new file mode 100644
index 0000000000..d2486a0352
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgsf/libgsf_1.14.50.bb
@@ -0,0 +1,22 @@
+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/libgtkstylus/files/gtkstylus.sh b/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh
deleted file mode 100644
index b1302ede0e..0000000000
--- a/meta-gnome/recipes-gnome/libgtkstylus/files/gtkstylus.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-GTK_MODULES=libgtkstylus.so
-
-export GTK_MODULES
diff --git a/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb b/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
deleted file mode 100644
index a7c8a6fce1..0000000000
--- a/meta-gnome/recipes-gnome/libgtkstylus/libgtkstylus_0.5.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "GTK plugin for stylus based systems"
-SECTION = "libs"
-DEPENDS = "gtk+"
-LICENSE = "LGPL-2.0+"
-LIC_FILES_CHKSUM = "file://tap.c;beginline=1;endline=20;md5=71756eeb144e9eeb177c69aa672b1635"
-PR = "r4"
-
-inherit distro_features_check autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://burtonini.com/temp/${BP}.tar.gz \
- file://gtkstylus.sh"
-SRC_URI[md5sum] = "fa1c82cd9fd2fafd7ff10d78eb5781c5"
-SRC_URI[sha256sum] = "383e0a22a537f653b8d41688277560f95678a042967198085ec7caa1a5cc2f4c"
-
-do_install_append() {
- install -d ${D}/${sysconfdir}/X11/Xsession.d
- install -m 755 ${WORKDIR}/gtkstylus.sh ${D}/${sysconfdir}/X11/Xsession.d/45gtkstylus
-}
-
-# Horrible but rpm falls over if you use '*'
-GTKVER = "2.10.0"
-
-FILES_${PN} = "${sysconfdir} \
- ${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so.*"
-FILES_${PN}-dbg += "${libdir}/gtk-2.0/${GTKVER}/modules/.debug"
-FILES_${PN}-dev += "${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.so"
-FILES_${PN}-staticdev += "${libdir}/gtk-2.0/${GTKVER}/modules/libgtkstylus.*a"
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.38.0.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.38.0.bb
deleted file mode 100644
index 494934fe74..0000000000
--- a/meta-gnome/recipes-gnome/libgtop/libgtop_2.38.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "LibGTop2"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit gnomebase lib_package gtk-doc distro_features_check gobject-introspection gettext
-
-# depends on libxau
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "bb0ce7de6b28694b40405eedac8a31b5"
-SRC_URI[archive.sha256sum] = "4f6c0e62bb438abfd16b4559cd2eca0251de19e291c888cdc4dc88e5ffebb612"
-
-DEPENDS = "glib-2.0 libxau"
diff --git a/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.1.bb b/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.1.bb
new file mode 100644
index 0000000000..9a50b5e826
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgtop/libgtop_2.41.1.bb
@@ -0,0 +1,11 @@
+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[archive.sha256sum] = "43ea9ad13f7caf98303e64172b191be9b96bab340b019deeec72251ee140fe3b"
+
+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
new file mode 100644
index 0000000000..3a075de651
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgweather/libgweather4/0001-Allow-building-gir-in-cross-environments.patch
@@ -0,0 +1,26 @@
+From 179102310e9a3729fb5b00f2a7bf24b12f4a7a83 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 16 Apr 2022 20:04:14 +0200
+Subject: [PATCH] Allow building gir in cross environments
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For us this works perfectly fine
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+--- 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
+
+ schemas_srcdir = meson.project_source_root() / 'schemas'
diff --git a/meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.bb
new file mode 100644
index 0000000000..824269e68a
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libgweather/libgweather4_4.2.0.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"
+
+GNOMEBASEBUILDCLASS = "meson"
+GNOMEBN = "libgweather"
+S = "${WORKDIR}/${GNOMEBN}-${PV}"
+
+inherit gnomebase gsettings gobject-introspection gettext gtk-doc vala features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+SRC_URI += "file://0001-Allow-building-gir-in-cross-environments.patch"
+SRC_URI[archive.sha256sum] = "af8a812da0d8976a000e1d62572c256086a817323fbf35b066dbfdd8d2ca6203"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+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/libtimezonemap/libtimezonemap_0.4.5.bb b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.5.bb
deleted file mode 100644
index 957d7d0279..0000000000
--- a/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.5.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Time zone map widget for Gtk+"
-HOMEPAGE = "https://launchpad.net/timezonemap"
-SECTION = "devel/lib"
-LICENSE = "GPLv3"
-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] = "054306fa998fe580f17b68aa1e16551b"
-SRC_URI[sha256sum] = "327e64a17c676c1bcda3b6ba3394d3d01250e5ac9a49222b9ff5737d90b15383"
-
-
-DEPENDS = "gtk+3 gdk-pixbuf libsoup-2.4 json-glib gnome-common-native \
-"
-
-B = "${S}"
-
-inherit distro_features_check autotools pkgconfig gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_configure_prepend() {
- (cd ${S}; NOCONFIGURE="yes" . ${S}/autogen.sh)
-}
diff --git a/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
new file mode 100644
index 0000000000..bafe7af040
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libtimezonemap/libtimezonemap_0.4.6.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Time zone map widget for Gtk+"
+HOMEPAGE = "https://launchpad.net/timezonemap"
+SECTION = "devel/lib"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+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"
+
+B = "${S}"
+
+inherit features_check autotools pkgconfig gobject-introspection
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_configure:prepend() {
+ (cd ${S}; NOCONFIGURE="yes" . ${S}/autogen.sh)
+}
diff --git a/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb b/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb
deleted file mode 100644
index 02149fbec2..0000000000
--- a/meta-gnome/recipes-gnome/libwnck/libwnck3_3.20.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Window navigation construction toolkit"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-BPN = "libwnck"
-
-SECTION = "x11/libs"
-DEPENDS = "intltool-native gnome-common-native gtk+3 gdk-pixbuf-native libxres"
-
-PACKAGECONFIG ??= "startup-notification"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-
-inherit gnomebase gobject-introspection gtk-doc
-SRC_URI[archive.md5sum] = "487938d65d4bfae1f2501052b1bd7492"
-SRC_URI[archive.sha256sum] = "1cb03716bc477058dfdf3ebfa4f534de3b13b1aa067fcd064d0b7813291cba72"
-
-inherit distro_features_check
-# libxres means x11 only
-REQUIRED_DISTRO_FEATURES = "x11"
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..5b4de3290d
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libwnck/libwnck3_43.0.bb
@@ -0,0 +1,27 @@
+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"
+
+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] = "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 ea4c8df533..3abba94990 100644
--- a/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
+++ b/meta-gnome/recipes-gnome/libwnck/libwnck_2.31.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "Window navigation construction toolkit"
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
SECTION = "x11/libs"
@@ -8,14 +8,13 @@ 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 distro_features_check
+inherit gnomebase gobject-introspection features_check
REQUIRED_DISTRO_FEATURES = "x11"
-GNOME_COMPRESS_TYPE = "xz"
SRC_URI[archive.md5sum] = "f03e1139296e2a3a92e3b65a3080cd32"
SRC_URI[archive.sha256sum] = "83f732d20781fc88b22cdc6aaf2d4f388db6d3d4ff28d1a8fd45be9fb7743a9e"
-do_install_append() {
+do_install:append() {
# to avoid conflicts with libwnck3 remove cmdline tools
# if the tools are requrired add libwnck3 to your image
rm ${D}${bindir}/wnckprop
diff --git a/meta-gnome/recipes-gnome/libxklavier/libxklavier/0001-xklavier_config_xkb.c-Fix-keyboard-layout-settings-f.patch b/meta-gnome/recipes-gnome/libxklavier/libxklavier/0001-xklavier_config_xkb.c-Fix-keyboard-layout-settings-f.patch
new file mode 100644
index 0000000000..6c2d091123
--- /dev/null
+++ b/meta-gnome/recipes-gnome/libxklavier/libxklavier/0001-xklavier_config_xkb.c-Fix-keyboard-layout-settings-f.patch
@@ -0,0 +1,39 @@
+From 1a75ebdde705ab2a4f9459a60ab824d9f770bba4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 28 Nov 2018 18:03:31 +0100
+Subject: [PATCH] xklavier_config_xkb.c: Fix keyboard layout settings for xfce
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* Got helping hint at [1]
+* Patch stolen from [2]
+
+[1] https://bugzilla.xfce.org/show_bug.cgi?id=14185
+[2] https://launchpadlibrarian.net/399410035/revert-default-group-change.patch
+
+Upstream-Status: Pending
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ libxklavier/xklavier_config_xkb.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/libxklavier/xklavier_config_xkb.c b/libxklavier/xklavier_config_xkb.c
+index baec569..c823e5b 100644
+--- a/libxklavier/xklavier_config_xkb.c
++++ b/libxklavier/xklavier_config_xkb.c
+@@ -403,10 +403,6 @@ xkl_config_get_keyboard(XklEngine * engine,
+ /* Return to normal X error processing */
+ xkl_engine_priv(engine, critical_section) = FALSE;
+
+- if (activate)
+- xkl_config_set_group_by_description(engine,
+- preactivation_group_description);
+-
+ xkl_debug(160,
+ "Unlinking the temporary xkb file %s\n",
+ xkb_fn);
+--
+2.14.5
+
diff --git a/meta-gnome/recipes-gnome/libxklavier/files/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/files/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 2ef54f212f..7955663f26 100644
--- a/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
+++ b/meta-gnome/recipes-gnome/libxklavier/libxklavier_5.4.bb
@@ -1,32 +1,33 @@
SUMMARY = "Helper lib for keyboard management"
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=6e29c688d912da12b66b73e32b03d812"
DEPENDS = "xkbcomp gtk+ iso-codes libxi libxml2"
-inherit autotools pkgconfig gettext gobject-introspection distro_features_check
+inherit autotools pkgconfig gettext gobject-introspection features_check
REQUIRED_DISTRO_FEATURES = "x11"
-RDEPENDS_${PN} += "iso-codes xkbcomp"
+RDEPENDS:${PN} += "iso-codes xkbcomp"
SRC_URI = " \
http://pkgs.fedoraproject.org/repo/pkgs/${BPN}/${BPN}-${PV}.tar.bz2/13af74dcb6011ecedf1e3ed122bd31fa/${BPN}-${PV}.tar.bz2 \
file://fix-do_installe-failure.patch \
+ file://0001-xklavier_config_xkb.c-Fix-keyboard-layout-settings-f.patch \
"
SRC_URI[md5sum] = "13af74dcb6011ecedf1e3ed122bd31fa"
SRC_URI[sha256sum] = "17a34194df5cbcd3b7bfd0f561d95d1f723aa1c87fca56bc2c209514460a9320"
-FILES_${PN} += "${datadir}/*"
+FILES:${PN} += "${datadir}/*"
EXTRA_OECONF = "--with-xkb-bin-base=${bindir}"
-do_configure_append() {
+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_append() {
+do_compile:append() {
sed -i -e s:${STAGING_DIR_TARGET}::g \
-e s:/${TARGET_SYS}::g \
libxklavier.pc
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 3493e511be..6bebaaba8f 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
@@ -5,7 +5,7 @@ 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 5f9e7e9..80b32c7 100644
+index 528b7d2..8932ae6 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -359,11 +359,6 @@ fi
+@@ -337,11 +337,6 @@ fi
AM_CONDITIONAL(HAVE_SM, test "$found_sm" = "yes")
@@ -25,9 +25,9 @@ index 5f9e7e9..80b32c7 100644
- AC_MSG_ERROR([zenity not found in your path - needed for dialogs])
-fi
-
- dnl **************************************************************************
- dnl Check for Vulkan support
- dnl **************************************************************************
+ AC_SEARCH_LIBS([dlsym], [dl], [], [
+ AC_MSG_ERROR([unable to find the dlsym() function])
+ ])
--
-1.8.3.1
+2.31.1
diff --git a/meta-gnome/recipes-gnome/metacity/metacity_3.28.0.bb b/meta-gnome/recipes-gnome/metacity/metacity_3.28.0.bb
deleted file mode 100644
index ce97a803f1..0000000000
--- a/meta-gnome/recipes-gnome/metacity/metacity_3.28.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SECTION = "x11/wm"
-SUMMARY = "Metacity is the boring window manager for the adult in you"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b4cce53560b8e619ffa7c830fb8761aa \
- file://src/include/main.h;endline=24;md5=72148ede07a6dadd01de6a882d20a9ad"
-
-PE = "1"
-
-DEPENDS = "gsettings-desktop-schemas startup-notification \
- gnome-doc-utils gdk-pixbuf-native \
- gtk+3 glib-2.0 libcanberra libgtop intltool-native"
-
-inherit autotools gettext gnomebase distro_features_check
-# depends on startup-notification which depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "git://github.com/GNOME/metacity.git;branch=master \
- file://0001-drop-zenity-detection.patch \
-"
-
-S = "${WORKDIR}/git"
-SRCREV = "c0d4b2fc0fcd6f2d3c37da935923f9e9ed5eb99f"
-
-EXTRA_OECONF += "--disable-xinerama"
-
-do_configure_prepend() {
- cd ${S}
- aclocal --install || exit 1
- autoreconf --verbose --force --install -Wno-portability || exit 1
- cd -
-
-}
-
-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.46.1.bb b/meta-gnome/recipes-gnome/metacity/metacity_3.46.1.bb
new file mode 100644
index 0000000000..3ada6515f8
--- /dev/null
+++ b/meta-gnome/recipes-gnome/metacity/metacity_3.46.1.bb
@@ -0,0 +1,39 @@
+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] = "00ba49f7612088f2b3baeca79c45eb2a30423c2e4a7bea4015872beae25dd6c5"
+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/mutter/mutter_44.3.bb b/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb
new file mode 100644
index 0000000000..6bd8a7b08e
--- /dev/null
+++ b/meta-gnome/recipes-gnome/mutter/mutter_44.3.bb
@@ -0,0 +1,105 @@
+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 \
+ gtk4 \
+ gdk-pixbuf \
+ cairo \
+ pango \
+ gsettings-desktop-schemas \
+ json-glib \
+ gnome-desktop \
+ gnome-settings-daemon \
+ libxtst \
+ libxkbfile \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xinerama', '', d)} \
+ xwayland \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection gettext features_check
+
+SRC_URI[archive.sha256sum] = "185cbebf2150d3e450550e371bdb13a8b4db096978b14f99521e966eacc70551"
+
+# 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-12"
+
+do_install:prepend() {
+ 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} += "zenity ${PN}-gsettings"
+
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch b/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch
new file mode 100644
index 0000000000..dbf42a9ab9
--- /dev/null
+++ b/meta-gnome/recipes-gnome/nautilus/nautilus/0001-Replace-filename-with-basename.patch
@@ -0,0 +1,46 @@
+From 4ec1f99f170033138036d6547dce9b7dcf541338 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 May 2023 07:56:33 -0700
+Subject: [PATCH] Replace filename with basename
+
+This avoids emitting absolute paths into generated sourcecode, it
+improves reproducibility. See [1]
+
+[1] https://developer-old.gnome.org/gobject/stable/glib-mkenums.html
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/1211]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nautilus-enum-types.c.template | 2 +-
+ src/nautilus-enum-types.h.template | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/nautilus-enum-types.c.template b/src/nautilus-enum-types.c.template
+index 9d8ac83..a757949 100644
+--- a/src/nautilus-enum-types.c.template
++++ b/src/nautilus-enum-types.c.template
+@@ -4,7 +4,7 @@
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-/* Enumerations from "@filename@" */
++/* Enumerations from "@basename@" */
+ #include "@filename@"
+
+ /*** END file-production ***/
+diff --git a/src/nautilus-enum-types.h.template b/src/nautilus-enum-types.h.template
+index 399bbca..7eb6c54 100644
+--- a/src/nautilus-enum-types.h.template
++++ b/src/nautilus-enum-types.h.template
+@@ -8,7 +8,7 @@ G_BEGIN_DECLS
+ /*** END file-header ***/
+
+ /*** BEGIN file-production ***/
+-/* Enumerations from "@filename@" */
++/* Enumerations from "@basename@" */
+
+ /*** END file-production ***/
+
+--
+2.40.1
+
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch b/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch
deleted file mode 100644
index f19eb49798..0000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus/0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From a4ed38e95cbe07f02028249b8b315565a5ac1e43 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 5 May 2018 22:32:45 -0700
-Subject: [PATCH] nautilus: drop gnome-desktop thumbnail API with new
- gdk-pixbuf
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-If gdk-pixbuf >= 2.36.5 is available, its scaling API can do what we
-want, so we don’t need to use the deprecated gnome-desktop one.
-
-Also fixes compile errors seen on master
-nautilus-properties-window.c:5101: undefined reference to `gnome_desktop_thumbnail_scale_down_pixbuf'
-
-Upstream-Status: Backport
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/nautilus-properties-window.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/nautilus-properties-window.c b/src/nautilus-properties-window.c
-index dea8b0f..fad9bd1 100644
---- a/src/nautilus-properties-window.c
-+++ b/src/nautilus-properties-window.c
-@@ -5098,10 +5098,11 @@ update_preview_callback (GtkFileChooser *icon_chooser,
- scale = (double)gdk_pixbuf_get_height (pixbuf) /
- gdk_pixbuf_get_width (pixbuf);
-
-- scaled_pixbuf = gnome_desktop_thumbnail_scale_down_pixbuf
-+ scaled_pixbuf = gdk_pixbuf_scale_simple
- (pixbuf,
- PREVIEW_IMAGE_WIDTH,
-- scale * PREVIEW_IMAGE_WIDTH);
-+ scale * PREVIEW_IMAGE_WIDTH,
-+ GDK_INTERP_HYPER);
- g_object_unref (pixbuf);
- pixbuf = scaled_pixbuf;
- }
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb b/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb
deleted file mode 100644
index bdb2f3c884..0000000000
--- a/meta-gnome/recipes-gnome/nautilus/nautilus_3.18.5.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "File manager for GNOME"
-SECTION = "x11/gnome"
-
-LICENSE="GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=36cf660aea2b8beffba7945f44a7e748 \
- file://COPYING.EXTENSIONS;md5=7579d6678402a1868631bf82c93ff0d4 \
- file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a"
-
-inherit distro_features_check autotools pkgconfig gobject-introspection
-
-MAJ_VER = "${@oe.utils.trim_version("${PV}", 2)}"
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/nautilus/${MAJ_VER}/nautilus-${PV}.tar.xz \
- file://0001-nautilus-drop-gnome-desktop-thumbnail-API-with-new-g.patch \
- "
-
-SRC_URI[md5sum] = "0f578bda5655c0ce204befafca5803d7"
-SRC_URI[sha256sum] = "60a927c0522b4cced9d8f62baed2ee5e2fd4305be4523eb5bc44805971a6cc15"
-
-DEPENDS = "gtk+3 gnome-desktop3 gsettings-desktop-schemas glib-2.0-native intltool-native pango"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = " \
- --disable-gtk-doc \
- --disable-update-mimedb \
- --disable-nst-extension \
- --enable-tracker=no \
- --disable-schemas-compile \
- --enable-xmp=no \
- --enable-libexif=no \
-"
-
-FILES_${PN} += "${datadir}/*"
diff --git a/meta-gnome/recipes-gnome/nautilus/nautilus_44.2.1.bb b/meta-gnome/recipes-gnome/nautilus/nautilus_44.2.1.bb
new file mode 100644
index 0000000000..362629fce0
--- /dev/null
+++ b/meta-gnome/recipes-gnome/nautilus/nautilus_44.2.1.bb
@@ -0,0 +1,51 @@
+SUMMARY = "File manager for GNOME"
+SECTION = "x11/gnome"
+
+LICENSE="GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+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 gtk-doc gettext features_check mime-xdg gtk-icon-cache
+
+def gnome_verdir(v):
+ return oe.utils.trim_version(v, 1)
+
+SRC_URI += "file://0001-Replace-filename-with-basename.patch"
+SRC_URI[archive.sha256sum] = "d9c62f024727f7a76fc6a5da788a2b0247df01a71c2a601143c62aac0ff41e4c"
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl gobject-introspection-data"
+
+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"
+
+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/librest_0.8.1.bb b/meta-gnome/recipes-gnome/rest/librest_0.8.1.bb
new file mode 100644
index 0000000000..23849783cc
--- /dev/null
+++ b/meta-gnome/recipes-gnome/rest/librest_0.8.1.bb
@@ -0,0 +1,35 @@
+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 = " \
+ gi-docgen \
+ gi-docgen-native \
+ glib-2.0 \
+ glib-2.0-native \
+ json-glib \
+ libsoup-2.4 \
+ libxml2-native \
+"
+
+inherit gnomebase gobject-introspection vala pkgconfig
+
+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.9.0.bb b/meta-gnome/recipes-gnome/rest/rest_0.9.0.bb
new file mode 100644
index 0000000000..2256a1899e
--- /dev/null
+++ b/meta-gnome/recipes-gnome/rest/rest_0.9.0.bb
@@ -0,0 +1,25 @@
+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 = "meson"
+
+DEPENDS = " \
+ gi-docgen \
+ gi-docgen-native \
+ glib-2.0 \
+ glib-2.0-native \
+ json-glib \
+ libxml2-native \
+"
+
+inherit gnomebase gobject-introspection vala pkgconfig
+
+PACKAGECONFIG_SOUP ?= "soup3"
+PACKAGECONFIG ??= "${PACKAGECONFIG_SOUP}"
+
+PACKAGECONFIG[soup2] = "-Dsoup2=true,,libsoup-2.4"
+PACKAGECONFIG[soup3] = "-Dsoup2=false,,libsoup-3.0"
+
+SRC_URI[archive.sha256sum] = "85b2bc9341128139539b53ee53f0533310bc96392fd645863a040410b81ebe66"
diff --git a/meta-gnome/recipes-gnome/sysprof/sysprof/0001-meson-Check-for-libunwind-instead-of-libunwind-gener.patch b/meta-gnome/recipes-gnome/sysprof/sysprof/0001-meson-Check-for-libunwind-instead-of-libunwind-gener.patch
new file mode 100644
index 0000000000..dc702a0e37
--- /dev/null
+++ b/meta-gnome/recipes-gnome/sysprof/sysprof/0001-meson-Check-for-libunwind-instead-of-libunwind-gener.patch
@@ -0,0 +1,30 @@
+From 19188367bee87b0084ab34869455155da5cb1731 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Apr 2022 08:47:39 -0700
+Subject: [PATCH] meson: Check for libunwind instead of libunwind-generic
+
+This helps it to use llvm unwinder since libunwind-generic is specific
+to nongnu libunwind.
+
+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 2835782..0fdb39a 100644
+--- a/meson.build
++++ b/meson.build
+@@ -81,7 +81,7 @@ config_h.set10('HAVE_POLKIT_AGENT', polkit_agent_dep.found())
+ config_h.set10('HAVE_POLKIT', polkit_dep.found())
+
+ if get_option('libunwind')
+- libunwind_dep = dependency('libunwind-generic')
++ libunwind_dep = dependency('libunwind')
+ config_h.set('ENABLE_LIBUNWIND', libunwind_dep.found())
+ config_h.set('HAVE_UNW_SET_CACHE_SIZE', libunwind_dep.found() and cc.has_header_symbol('libunwind.h', 'unw_set_cache_size', dependencies: [libunwind_dep]))
+ endif
+--
+2.35.2
+
diff --git a/meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb b/meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb
new file mode 100644
index 0000000000..c9d32c3946
--- /dev/null
+++ b/meta-gnome/recipes-gnome/sysprof/sysprof_3.44.0.bb
@@ -0,0 +1,44 @@
+SUMMARY = "System-wide Performance Profiler for Linux"
+HOMEPAGE = "http://www.sysprof.com"
+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 += " \
+ glib-2.0-native \
+ yelp-tools-native \
+ libxml2-native \
+ glib-2.0 \
+ json-glib \
+"
+
+SRC_URI += "file://0001-meson-Check-for-libunwind-instead-of-libunwind-gener.patch"
+SRC_URI[archive.sha256sum] = "ab5d9f5b71973b3088d58a1bfdf1dc23c39a02f5fce4e5e9c73e034b178b005b"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'sysprofd libsysprof', '', d)} \
+ ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'gtk', '', d)} \
+ libunwind"
+# nongnu libunwind needs porting to RV32
+PACKAGECONFIG:remove:riscv32 = "libunwind"
+
+PACKAGECONFIG[gtk] = "-Denable_gtk=true,-Denable_gtk=false,gtk+3 libdazzle"
+PACKAGECONFIG[sysprofd] = "-Dwith_sysprofd=bundled,-Dwith_sysprofd=none,polkit"
+PACKAGECONFIG[libsysprof] = "-Dlibsysprof=true,-Dlibsysprof=false,polkit"
+PACKAGECONFIG[libunwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind"
+
+EXTRA_OEMESON += "-Dsystemdunitdir=${systemd_unitdir}/system"
+
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+
+SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'sysprofd', 'sysprof2.service sysprof3.service', '', d)}"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1/system-services \
+ ${datadir}/dbus-1/system.d \
+ ${datadir}/dbus-1/interfaces \
+ ${datadir}/metainfo \
+"
diff --git a/meta-gnome/recipes-gnome/tepl/tepl_6.4.0.bb b/meta-gnome/recipes-gnome/tepl/tepl_6.4.0.bb
new file mode 100644
index 0000000000..1eecfff4b0
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tepl/tepl_6.4.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 \
+ gtksourceview4 \
+ amtk \
+ 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 = "d1e9cc2e4a0738f68d9002f13724b7239f075844"
+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
new file mode 100644
index 0000000000..7a40ae338c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-Set-header-file-to-a-fixed-path-instead-of-a-host-pa.patch
@@ -0,0 +1,27 @@
+From 6f6d7e3995c370b8121206a7f9cc0d234553bbfe Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Thu, 15 Sep 2022 16:35:39 +0900
+Subject: [PATCH] Set header file to a fixed path instead of a host path.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ 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
+--- a/src/libtracker-miners-common/tracker-miners-enum-types.c.template
++++ b/src/libtracker-miners-common/tracker-miners-enum-types.c.template
+@@ -7,7 +7,7 @@
+
+ /*** BEGIN file-production ***/
+ /* enumerations from "@basename@" */
+-#include "@filename@"
++#include "tracker-enums.h"
+ /*** END file-production ***/
+
+
+--
+2.25.1
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
new file mode 100644
index 0000000000..53c5f2664e
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker-miners/0001-meson.build-Just-warn-if-we-build-without-libseccomp.patch
@@ -0,0 +1,37 @@
+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.5.0.bb b/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb
new file mode 100644
index 0000000000..d093697c13
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker-miners_3.5.0.bb
@@ -0,0 +1,81 @@
+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] = "17966603dc432a98526b490586a48acd7f9f59935f7895dfc51729a46a6901a3"
+
+# 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 \
+ raw \
+ xml \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'seccomp', d)} \
+ battery \
+ networkmanager \
+"
+
+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"
+
+# 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/0001-meson-Do-not-define-TOP_SRCDIR.patch b/meta-gnome/recipes-gnome/tracker/tracker/0001-meson-Do-not-define-TOP_SRCDIR.patch
new file mode 100644
index 0000000000..5c6ab71a9f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker/0001-meson-Do-not-define-TOP_SRCDIR.patch
@@ -0,0 +1,24 @@
+From 3e262192ffebf5d6fec92d5b7ba08348a94df1ae Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 25 May 2023 20:54:47 -0700
+Subject: [PATCH] meson: Do not define TOP_SRCDIR
+
+This is passed from build env
+
+Upstream-Status: Inappropriate [Cross compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/meson.build
++++ b/meson.build
+@@ -353,7 +353,7 @@ subdir('utils')
+
+ test_c_args = tracker_c_args + [
+ '-DTOP_BUILDDIR="@0@"'.format(build_root),
+- '-DTOP_SRCDIR="@0@"'.format(source_root),
++ '-DTOP_SRCDIR="@0@"'.format('/usr/src/debug/tracker'),
+ ]
+
+ tracker_uninstalled_cli_dir = join_paths(meson.current_build_dir(), 'src', 'tracker')
diff --git a/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb b/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb
new file mode 100644
index 0000000000..6dd8af2390
--- /dev/null
+++ b/meta-gnome/recipes-gnome/tracker/tracker_3.5.1.bb
@@ -0,0 +1,55 @@
+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 \
+"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase gsettings gobject-introspection vala gtk-doc manpages bash-completion features_check python3native
+
+SRC_URI += "file://0001-meson-Do-not-define-TOP_SRCDIR.patch"
+SRC_URI[archive.sha256sum] = "f972d50ac7bafdccf113b1eb99dcae35404685a99e55bfef16f3ac83b4de974d"
+
+# 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} \
+ -Dsoup=soup3 \
+"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/tracker3 \
+ ${libdir}/tracker-3.0 \
+ ${systemd_user_unitdir} \
+"
diff --git a/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch b/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch
deleted file mode 100644
index a8c5bc7968..0000000000
--- a/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From eebe1f27f4b27b05eb4b9b55f9df1124acf4d092 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Fri, 1 Aug 2014 12:25:24 +0200
-Subject: [PATCH] configure: use 'foreign' mode to avoid errors with missing
- NEWS/AUTHORS/etc
-
-Upstream-status: Pending
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 3d7eef6..1784bdd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -41,7 +41,7 @@ VERSION=$WV_VERSION
- PACKAGE=wv
-
- dnl Initialize automake stuff
--AM_INIT_AUTOMAKE($PACKAGE, $VERSION)
-+AM_INIT_AUTOMAKE([foreign])
-
- # Specify a configuration file
- AM_CONFIG_HEADER(config.h)
---
-1.9.0
-
diff --git a/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch b/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch
deleted file mode 100644
index 2fc3f367fa..0000000000
--- a/meta-gnome/recipes-gnome/wv/wv-1.2.4/0001-wvRTF.c-Specify-print-format-in-rtf_output.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 079529b8d5e339e2211fa2f8c15543a738a627bc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 14:50:51 -0700
-Subject: [PATCH] wvRTF.c: Specify print format in rtf_output()
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- wvRTF.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wvRTF.c b/wvRTF.c
-index 361d258..4f24b30 100644
---- a/wvRTF.c
-+++ b/wvRTF.c
-@@ -192,7 +192,7 @@ output_rtfUserData (rtfUserData * ud)
- rtf_output_char ('{');
-
- /* font color */
-- rtf_output (rtfColors[ud->cCol]);
-+ rtf_output ("%s", rtfColors[ud->cCol]);
-
- /* font face */
- rtf_output ("\\f%d", ud->cFont);
---
-2.13.2
-
diff --git a/meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch b/meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch
deleted file mode 100644
index 136d89341f..0000000000
--- a/meta-gnome/recipes-gnome/wv/wv-1.2.4/pkgconfig.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: wv-1.2.0/wv-1.0.pc.in
-===================================================================
---- wv-1.2.0.orig/wv-1.0.pc.in 2008-03-19 22:25:18.000000000 +0000
-+++ wv-1.2.0/wv-1.0.pc.in 2008-03-19 22:26:32.000000000 +0000
-@@ -6,5 +6,6 @@
- Name: wvWare
- Description: Word Document Filter library and utilities
- Version: @VERSION@
--Libs: -L${libdir} -lwv @WMF_LIBS@ @XML_LIBS@ @GLIB_LIBS@ @GSF_LIBS@ @PNG_LIBS@ @ZLIB_LIBS@ @LIBS@ -lm
--Cflags: -I${includedir}/wv @GSF_CFLAGS@
-+Requires: libgsf-1
-+Libs: -L${libdir} -lwv @WMF_LIBS@ @XML_LIBS@ @PNG_LIBS@ @ZLIB_LIBS@ @LIBS@ -lm
-+Cflags: -I${includedir}/wv
diff --git a/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb b/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb
deleted file mode 100644
index 8ed1fcd15c..0000000000
--- a/meta-gnome/recipes-gnome/wv/wv_1.2.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Programs for accessing Microsoft Word documents"
-HOMEPAGE = "http://wvware.sourceforge.net/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6cbca01f1c9178aca280e8ff64d85b2f"
-
-DEPENDS = "libgsf glib-2.0 libpng"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/wv-${PV}.tar.gz \
- file://pkgconfig.patch \
- file://0001-configure-use-foreign-mode-to-avoid-errors-with-miss.patch \
- file://0001-wvRTF.c-Specify-print-format-in-rtf_output.patch \
- "
-
-SRC_URI[md5sum] = "c1861c560491f121e12917fa76970ac5"
-SRC_URI[sha256sum] = "673109910e22d4cf94cc8be4dcb9a0c41b5fbdb1736d4b7bdc7778894d57c2d6"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/${PN}-${PV}"
-
-EXTRA_OECONF = ""
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..28ba392884
--- /dev/null
+++ b/meta-gnome/recipes-gnome/yelp/yelp-tools_42.1.bb
@@ -0,0 +1,23 @@
+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] = "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
new file mode 100644
index 0000000000..ba2536443f
--- /dev/null
+++ b/meta-gnome/recipes-gnome/yelp/yelp-xsl_42.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "XSL stylesheets for the yelp help browser"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only & BSD-3-Clause"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=8ca13a5a6972ac1620a1e42a3dacd774 \
+ file://COPYING.GPL;md5=eb723b61539feef013de476e68b5c50a \
+ file://COPYING.LGPL;md5=a6f89e2100d9b6cdffcea4f398e37343 \
+"
+
+inherit gnomebase gettext itstool
+
+DEPENDS += "libxml2"
+
+SRC_URI[archive.sha256sum] = "238be150b1653080ce139971330fd36d3a26595e0d6a040a2c030bf3d2005bcd"
+
+RDEPENDS:${PN}:append:class-target = " libxml2 itstool"
+
+# ensure our native consumers are forced to inherit itstool
+RDEPENDS:${PN}:append:class-native = " libxml2-native"
+
+BBCLASSEXTEND = "native"
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..51d51ee0ab
--- /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 \
+"
+
+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
new file mode 100644
index 0000000000..e054ff7448
--- /dev/null
+++ b/meta-gnome/recipes-gnome/zenity/zenity/0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch
@@ -0,0 +1,28 @@
+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.44.0.bb b/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
new file mode 100644
index 0000000000..3548cc5bbe
--- /dev/null
+++ b/meta-gnome/recipes-gnome/zenity/zenity_3.44.0.bb
@@ -0,0 +1,28 @@
+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 gtk-icon-cache features_check gettext
+
+DEPENDS = " \
+ desktop-file-utils-native \
+ hicolor-icon-theme \
+ gtk+3 \
+ gtk+3-native \
+"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "c15582301ed90b9d42ce521dbccf99a989f22f12041bdd5279c6636da99ebf65"
+SRC_URI += "file://0001-Harcode-shebang-to-avoid-pointing-to-build-system-s-.patch"
+
+PACKAGECONFIG ?= "webkitgtk"
+PACKAGECONFIG[webkitgtk] = "-Dwebkitgtk=true,-Dwebkitgtk=false,webkitgtk3"
+
+PACKAGES =+ "${PN}-gdialog"
+FILES:${PN}-gdialog = "${bindir}/gdialog"
+FILES:${PN}-doc = "${datadir}/man ${datadir}/help"
+RDEPENDS:${PN}-gdialog += "perl"
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0.inc b/meta-gnome/recipes-graphics/clutter/clutter-1.0.inc
new file mode 100644
index 0000000000..ce6b8a0f49
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0.inc
@@ -0,0 +1,49 @@
+SUMMARY = "Graphics library for creating hardware-accelerated user interfaces"
+DESCRIPTION = "Clutter is an Open GL based interactive canvas library, \
+designed for creating fast, mainly 2D single window applications such as media \
+box UIs, presentations, kiosk style applications and so on."
+HOMEPAGE = "http://www.clutter-project.org/"
+LICENSE = "LGPL-2.1-or-later"
+
+inherit clutter ptest-gnome features_check upstream-version-is-even gobject-introspection
+# depends on cogl-1.0 which needs opengl
+REQUIRED_DISTRO_FEATURES ?= "opengl"
+
+DEPENDS = "pango glib-2.0 json-glib atk udev cogl-1.0"
+PACKAGE_BEFORE_PN += "${PN}-examples"
+AUTOTOOLS_AUXDIR = "${S}/build-aux"
+
+EDEPENDS_X11 = "virtual/libx11 libxi libxfixes"
+EDEPENDS_GLX = "virtual/libgl"
+EDEPENDS_EGL = "virtual/egl"
+EDEPENDS_WAYLAND = "wayland libxkbcommon gdk-pixbuf"
+
+EDEPENDS_EVDEV = "libxkbcommon"
+ERDEPENDS_EVDEV = "xkeyboard-config"
+
+# Disable pretty much everything, override in platform specific set up
+EXTRA_OECONF += "--disable-quartz-backend \
+ --disable-win32-backend \
+ --disable-cex100-backend \
+ --disable-tslib-input \
+ "
+
+PACKAGECONFIG[gdk] = "--enable-gdk-backend,--disable-gdk-backend,gtk+3"
+PACKAGECONFIG[x11] = "--enable-x11-backend,--disable-x11-backend,${EDEPENDS_X11}"
+PACKAGECONFIG[glx] = ",,${EDEPENDS_X11} ${EDEPENDS_GLX}"
+PACKAGECONFIG[egl] = "--enable-egl-backend,--disable-egl-backend,${EDEPENDS_EGL}"
+PACKAGECONFIG[evdev] = "--enable-evdev-input,--disable-evdev-input,${EDEPENDS_EVDEV},${ERDEPENDS_EVDEV}"
+PACKAGECONFIG[wayland] = "--enable-wayland-backend,--disable-wayland-backend,${EDEPENDS_WAYLAND}"
+PACKAGECONFIG[wayland-compositor] = "--enable-wayland-compositor,--disable-wayland-compositor,wayland"
+
+# Default configuration, distros might want to override
+PACKAGECONFIG ??= "egl gdk \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx x11', '', d)}"
+
+FILES:${PN}-examples = "${libdir}/clutter/examples"
+
+do_configure:prepend() {
+ # see https://bugzilla.gnome.org/show_bug.cgi?id=661128 for this
+ touch -t 200001010000 ${S}/po/clutter-1.0.pot
+}
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch b/meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch
new file mode 100644
index 0000000000..7b3c1980b6
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch
@@ -0,0 +1,143 @@
+From 3a0404dfbc65c6a864e01d1200a48074e19d5def Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 2 Sep 2016 14:28:38 +0300
+Subject: [PATCH] Remove clutter.types as it is build configuration-specific.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ doc/reference/clutter.types | 122 --------------------------------------------
+ 1 file changed, 122 deletions(-)
+ delete mode 100644 doc/reference/clutter.types
+
+diff --git a/doc/reference/clutter.types b/doc/reference/clutter.types
+deleted file mode 100644
+index 0037acc..0000000
+--- a/doc/reference/clutter.types
++++ /dev/null
+@@ -1,122 +0,0 @@
+-cally_actor_get_type
+-cally_clone_get_type
+-cally_group_get_type
+-cally_rectangle_get_type
+-cally_root_get_type
+-cally_stage_get_type
+-cally_text_get_type
+-cally_texture_get_type
+-cally_util_get_type
+-clutter_action_get_type
+-clutter_actor_box_get_type
+-clutter_actor_get_type
+-clutter_actor_meta_get_type
+-clutter_align_constraint_get_type
+-clutter_alpha_get_type
+-clutter_animatable_get_type
+-clutter_animation_get_type
+-clutter_animator_get_type
+-clutter_animator_key_get_type
+-clutter_backend_get_type
+-clutter_behaviour_depth_get_type
+-clutter_behaviour_ellipse_get_type
+-clutter_behaviour_get_type
+-clutter_behaviour_opacity_get_type
+-clutter_behaviour_path_get_type
+-clutter_behaviour_rotate_get_type
+-clutter_behaviour_scale_get_type
+-clutter_bin_layout_get_type
+-clutter_bind_constraint_get_type
+-clutter_binding_pool_get_type
+-clutter_blur_effect_get_type
+-clutter_box_get_type
+-clutter_box_layout_get_type
+-clutter_brightness_contrast_effect_get_type
+-clutter_cairo_texture_get_type
+-clutter_canvas_get_type
+-clutter_child_meta_get_type
+-clutter_click_action_get_type
+-clutter_clip_node_get_type
+-clutter_clone_get_type
+-clutter_color_get_type
+-clutter_color_node_get_type
+-clutter_colorize_effect_get_type
+-clutter_constraint_get_type
+-clutter_container_get_type
+-clutter_content_get_type
+-clutter_deform_effect_get_type
+-clutter_desaturate_effect_get_type
+-clutter_device_manager_get_type
+-clutter_drag_action_get_type
+-clutter_drop_action_get_type
+-clutter_effect_get_type
+-clutter_event_get_type
+-clutter_event_sequence_get_type
+-clutter_fixed_layout_get_type
+-clutter_flow_layout_get_type
+-clutter_fog_get_type
+-clutter_geometry_get_type
+-clutter_gesture_action_get_type
+-clutter_glx_texture_pixmap_get_type
+-clutter_grid_layout_get_type
+-clutter_group_get_type
+-clutter_image_get_type
+-clutter_input_device_get_type
+-clutter_interval_get_type
+-clutter_keyframe_transition_get_type
+-clutter_knot_get_type
+-clutter_layout_manager_get_type
+-clutter_layout_meta_get_type
+-clutter_list_model_get_type
+-clutter_margin_get_type
+-clutter_media_get_type
+-clutter_model_get_type
+-clutter_model_iter_get_type
+-clutter_offscreen_effect_get_type
+-clutter_page_turn_effect_get_type
+-clutter_paint_node_get_type
+-clutter_paint_volume_get_type
+-clutter_pan_action_get_type
+-clutter_param_color_get_type
+-clutter_param_fixed_get_type
+-clutter_param_units_get_type
+-clutter_path_constraint_get_type
+-clutter_path_get_type
+-clutter_path_node_get_type
+-clutter_perspective_get_type
+-clutter_pipeline_node_get_type
+-clutter_point_get_type
+-clutter_property_transition_get_type
+-clutter_rect_get_type
+-clutter_rectangle_get_type
+-clutter_rotate_action_get_type
+-clutter_score_get_type
+-clutter_script_get_type
+-clutter_scriptable_get_type
+-clutter_scroll_actor_get_type
+-clutter_settings_get_type
+-clutter_shader_effect_get_type
+-clutter_shader_float_get_type
+-clutter_shader_get_type
+-clutter_shader_int_get_type
+-clutter_shader_matrix_get_type
+-clutter_size_get_type
+-clutter_snap_constraint_get_type
+-clutter_stage_get_type
+-clutter_stage_manager_get_type
+-clutter_state_get_type
+-clutter_state_key_get_type
+-clutter_swipe_action_get_type
+-clutter_table_layout_get_type
+-clutter_tap_action_get_type
+-clutter_text_buffer_get_type
+-clutter_text_get_type
+-clutter_text_node_get_type
+-clutter_texture_get_type
+-clutter_texture_node_get_type
+-clutter_timeline_get_type
+-clutter_transition_get_type
+-clutter_transition_group_get_type
+-clutter_units_get_type
+-clutter_vertex_get_type
+-clutter_zoom_action_get_type
+--
+2.9.3
+
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch b/meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch
new file mode 100644
index 0000000000..ce9ab3a248
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/install-examples.patch
@@ -0,0 +1,19 @@
+Install the examples to $libdir/clutter/.
+
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+Upstream-Status: Inappropriate
+
+Index: clutter-1.26.2/examples/Makefile.am
+===================================================================
+--- clutter-1.26.2.orig/examples/Makefile.am
++++ clutter-1.26.2/examples/Makefile.am
+@@ -33,7 +33,8 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/clutter \
+ -I$(top_builddir)/clutter
+
+-noinst_PROGRAMS = $(all_examples)
++exampledir = $(pkglibdir)/examples
++example_PROGRAMS = $(all_examples)
+
+ EXTRA_DIST = redhand.png
+
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch
new file mode 100644
index 0000000000..fef82eaf92
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-installed-tests-with-tap-output.patch
@@ -0,0 +1,30 @@
+From d6ceb5a44b28e0e50ede22b84984d8516897de4b Mon Sep 17 00:00:00 2001
+From: Jussi Kukkonen <jussi.kukkonen@intel.com>
+Date: Mon, 27 Apr 2015 20:12:33 +0300
+Subject: [PATCH] Run installed tests with tap output
+
+Configure output from installed-tests to be TAP compliant such that
+gnome-desktop-testing-runner properly interprets the results.
+
+Upstream-Status: Pending
+
+Signed-off-by: Tim Orling <TicoTimo@gmail.com>
+
+---
+ build-aux/autotools/glib-tap.mk | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/build-aux/autotools/glib-tap.mk b/build-aux/autotools/glib-tap.mk
+index a4f0dad..51cfa31 100644
+--- a/build-aux/autotools/glib-tap.mk
++++ b/build-aux/autotools/glib-tap.mk
+@@ -127,7 +127,8 @@ installed_test_meta_DATA = $(installed_testcases:=.test)
+ %.test: %$(EXEEXT) Makefile
+ $(AM_V_GEN) (echo '[Test]' > $@.tmp; \
+ echo 'Type=session' >> $@.tmp; \
+- echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$<' >> $@.tmp; \
++ echo 'Exec=env G_ENABLE_DIAGNOSTIC=0 CLUTTER_ENABLE_DIAGNOSTIC=0 $(installed_testdir)/$< --tap' >> $@.tmp; \
++ echo 'Output=TAP' >> $@.tmp; \
+ mv $@.tmp $@)
+
+ CLEANFILES += $(installed_test_meta_DATA)
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest
new file mode 100644
index 0000000000..98877e5226
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0/run-ptest
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+gnome-desktop-testing-runner clutter
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb b/meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb
new file mode 100644
index 0000000000..ee549fbdd5
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-1.0_1.26.4.bb
@@ -0,0 +1,10 @@
+require clutter-1.0.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI[archive.md5sum] = "624dd776a5159de0267587b1df6b97b2"
+SRC_URI[archive.sha256sum] = "8b48fac159843f556d0a6be3dbfc6b083fc6d9c58a20a49a6b4919ab4263c4e6"
+SRC_URI += "file://install-examples.patch \
+ file://run-installed-tests-with-tap-output.patch \
+ file://0001-Remove-clutter.types-as-it-is-build-configuration-sp.patch \
+ file://run-ptest"
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc
new file mode 100644
index 0000000000..7880021755
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0.inc
@@ -0,0 +1,23 @@
+SUMMARY = "GStreamer integration library for Clutter"
+DESCRIPTION = "Clutter-Gst is an integration library for using GStreamer with Clutter. \
+It provides a GStreamer sink to upload frames to GL and an actor that \
+implements the ClutterGstPlayer interface using playbin."
+HOMEPAGE = "http://www.clutter-project.org/"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter-gst/-/issues"
+LICENSE = "LGPL-2.0-or-later"
+
+inherit clutter features_check upstream-version-is-even gobject-introspection
+# depends on clutter-1.0 which depends on cogl-1.0
+REQUIRED_DISTRO_FEATURES ?= "opengl"
+
+export GST_PLUGIN_SCANNER_1_0="${S}/gst-plugin-scanner-dummy"
+
+SRC_URI += "file://0001-Install-example-binary-needed-for-core-image-clutter.patch"
+
+DEPENDS = "gstreamer1.0-plugins-base gstreamer1.0-plugins-bad clutter-1.0 libgudev"
+RDEPENDS:${PN} += "gstreamer1.0-meta-base"
+PACKAGES =+ "${PN}-examples"
+
+FILES:${PN} += "${libdir}/gstreamer-1.0/lib*.so"
+FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.la"
+FILES:${PN}-examples = "${bindir}/video-player ${bindir}/video-sink"
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch
new file mode 100644
index 0000000000..0b26b990d7
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0/0001-Install-example-binary-needed-for-core-image-clutter.patch
@@ -0,0 +1,33 @@
+From d77c711277bf075ce0545c19b322f040c49c778a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Thu, 30 Apr 2015 12:19:13 +0300
+Subject: [PATCH] Install example binary needed for core-image-clutter
+
+Signed-off-by: Zhai Edwin <edwin.zhai@intel.com>
+
+Upstream-Status: Inappropriate [configuration]
+
+Imported from clutter-gst-1.8 package, git://git.openembedded.org/openembedded,
+commit ae28ee3f7a060b9e0d13154a84f2444a98490b5b, updated for clutter-gst 3.0
+
+Signed-off-by: Tomas Frydrych <tomas@sleepfive.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ examples/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/examples/Makefile.am b/examples/Makefile.am
+index bfbc1b5..09655e3 100644
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -1,6 +1,6 @@
+ NULL = #
+
+-noinst_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content
++bin_PROGRAMS = camera-player video-player video-sink video-sink-navigation video-content
+
+ AM_CPPFLAGS = -I$(top_srcdir) \
+ $(MAINTAINER_CFLAGS) \
+--
+2.1.4
+
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb
new file mode 100644
index 0000000000..35382453c2
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gst-3.0_3.0.27.bb
@@ -0,0 +1,7 @@
+require clutter-gst-3.0.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://clutter-gst/clutter-gst.h;beginline=1;endline=24;md5=95baacba194e814c110ea3bdf25ddbf4"
+
+SRC_URI[archive.md5sum] = "2bf9d7ca146c9d71e86c45cd00e9a28e"
+SRC_URI[archive.sha256sum] = "fe69bd6c659d24ab30da3f091eb91cd1970026d431179b0724f13791e8ad9f9d"
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc
new file mode 100644
index 0000000000..025e95b5d4
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0.inc
@@ -0,0 +1,23 @@
+SUMMARY = "Library for embedding a Clutter canvas in a GTK+ application"
+DESCRIPTION = "Clutter-GTK is a library providing facilities to integrate Clutter into GTK+ \
+applications and vice versa. It provides a GTK+ widget, GtkClutterEmbed, for embedding the \
+a Clutter stage into any GtkContainer; and GtkClutterActor, a Clutter \
+actor for embedding any GtkWidget inside a Clutter stage."
+HOMEPAGE = "http://www.clutter-project.org/"
+BUGTRACKER = "https://gitlab.gnome.org/GNOME/clutter/-/issues"
+LICENSE = "LGPL-2.0-or-later"
+
+CLUTTERBASEBUILDCLASS = "meson"
+inherit clutter features_check upstream-version-is-even gobject-introspection gtk-doc
+
+# depends on clutter-1.0 which depends on cogl-1.0
+REQUIRED_DISTRO_FEATURES ?= "opengl"
+# depends on gtk+3
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+DEPENDS = "clutter-1.0 gtk+3"
+PACKAGES =+ "${PN}-examples"
+
+GTKDOC_MESON_OPTION = "enable_docs"
+
+GIR_MESON_OPTION = 'enable_gi'
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch
new file mode 100644
index 0000000000..e21c6fd903
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0/0001-Add-a-config-variable-for-enabling-disabling-introsp.patch
@@ -0,0 +1,37 @@
+From 7233883c6bd4e80c0e91b29b5c76fe798023e9fe Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Mon, 11 Feb 2019 16:41:13 +0100
+Subject: [PATCH] Add a config variable for enabling/disabling introspection
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ clutter-gtk/meson.build | 2 +-
+ meson_options.txt | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/clutter-gtk/meson.build b/clutter-gtk/meson.build
+index 5d6847d..5d934b6 100644
+--- a/clutter-gtk/meson.build
++++ b/clutter-gtk/meson.build
+@@ -49,7 +49,7 @@ clutter_gtk_dep = declare_dependency(link_with: clutter_gtk,
+ dependencies: [ mathlib_dep, clutter_dep, gtk_dep ],
+ include_directories: include_directories('.'))
+
+-if not meson.is_cross_build()
++if get_option('enable_gi')
+ gnome.generate_gir(clutter_gtk,
+ sources: clutter_gtk_headers + clutter_gtk_sources,
+ namespace: 'GtkClutter',
+diff --git a/meson_options.txt b/meson_options.txt
+index aaf59f1..b7e51c3 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -2,3 +2,7 @@ option('enable_docs',
+ type: 'boolean',
+ value: false,
+ description: 'Enable generating the API reference (depends on GTK-Doc)')
++option('enable_gi',
++ type: 'boolean',
++ value: false,
++ description: 'Enable gobject introspection')
diff --git a/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb
new file mode 100644
index 0000000000..53948c8944
--- /dev/null
+++ b/meta-gnome/recipes-graphics/clutter/clutter-gtk-1.0_1.8.4.bb
@@ -0,0 +1,7 @@
+require clutter-gtk-1.0.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
+
+SRC_URI += " file://0001-Add-a-config-variable-for-enabling-disabling-introsp.patch"
+SRC_URI[archive.md5sum] = "b363ac9878e2337be887b8ee9e1da00e"
+SRC_URI[archive.sha256sum] = "521493ec038973c77edcb8bc5eac23eed41645117894aaee7300b2487cb42b06"
diff --git a/meta-gnome/recipes-graphics/cogl/cogl-1.0.inc b/meta-gnome/recipes-graphics/cogl/cogl-1.0.inc
new file mode 100644
index 0000000000..3da361b3ff
--- /dev/null
+++ b/meta-gnome/recipes-graphics/cogl/cogl-1.0.inc
@@ -0,0 +1,84 @@
+SUMMARY = "Modern 3D graphics API with associated utility APIs"
+DESCRIPTION = "Cogl is a small open source library for using 3D graphics \
+hardware for rendering. The API departs from the flat state machine style of \
+OpenGL and is designed to make it easy to write orthogonal components that \
+can render without stepping on each others toes."
+HOMEPAGE = "https://gitlab.gnome.org/GNOME/cogl"
+LICENSE = "MIT"
+
+inherit clutter features_check upstream-version-is-even gobject-introspection
+# cogl-1.0 needs opengl to build
+REQUIRED_DISTRO_FEATURES ?= "opengl"
+
+DEPENDS = "glib-2.0 gdk-pixbuf"
+PACKAGES =+ "${PN}-examples \
+ libcogl libcogl-gles2 libcogl-pango libcogl-path \
+ "
+AUTOTOOLS_AUXDIR = "${S}/build"
+
+# Extra DEPENDS for PACKAGECONFIG
+EDEPENDS_GL = "virtual/libgl libdrm"
+EDEPENDS_GLES2 = "virtual/libgles2"
+EDEPENDS_KMS = "libdrm virtual/egl"
+EDEPENDS_EGL = "virtual/egl"
+EDEPENDS_X11 = "virtual/libx11 libxcomposite libxdamage libxfixes libxrandr"
+EDEPENDS_WAYLAND = "virtual/egl virtual/libgles2 wayland"
+
+# Extra RDEPENDS for PACKAGECONFIG
+# This has to be explictly listed, because cogl dlopens the backends
+ERDEPENDS_GL = "libgl"
+ERDEPENDS_GLES2 = "libgles2"
+
+# GLESv1 is rarely tested, so disable it
+EXTRA_OECONF += "--enable-examples-install \
+ --enable-debug \
+ --disable-gles1 \
+ --disable-cairo \
+ "
+DEBUG_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized"
+
+# OpenGL/GLX
+PACKAGECONFIG[glx] = "--enable-gl --enable-glx,--disable-gl --disable-glx,${EDEPENDS_GL} ${EDEPENDS_X11},${ERDEPENDS_GL}"
+
+# GLESv2
+PACKAGECONFIG[gles2] = "--enable-gles2,--disable-gles2,${EDEPENDS_GLES2}, ${ERDEPENDS_GLES2}"
+
+# EGL backends
+PACKAGECONFIG[egl-kms] = "--enable-kms-egl-platform,--disable-kms-egl-platform,${EDEPENDS_KMS}"
+PACKAGECONFIG[egl-null] = "--enable-null-egl-platform,--disable-null-egl-platform"
+PACKAGECONFIG[egl-x11] = "--enable-xlib-egl-platform,--disable-xlib-egl-platform,${EDEPENDS_X11} ${EDEPENDS_EGL}"
+PACKAGECONFIG[egl-wayland] = "--enable-wayland-egl-platform,--disable-wayland-egl-platform,${EDEPENDS_WAYLAND}"
+
+# Wayland (server-side)
+PACKAGECONFIG[wayland-server] = "--enable-wayland-egl-server,--disable-wayland-egl-server,${EDEPENDS_WAYLAND}"
+
+# Support rendering text directly with Pango
+PACKAGECONFIG[cogl-pango] = "--enable-cogl-pango,--disable-cogl-pango,pango"
+
+# Respect the DISTRO_FEATURES to pull in GLX or Wayland as appropriate by
+# default.
+PACKAGECONFIG ??= "cogl-pango gles2 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'egl-wayland', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'glx egl-x11', '', d)} \
+ "
+
+do_compile:prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/cogl/.libs"
+}
+
+FILES:${PN} = ""
+FILES:${PN}-examples = "${bindir}/* ${datadir}/cogl/examples-data/*"
+FILES:libcogl = "${libdir}/libcogl${SOLIBS} ${libdir}/girepository-1.0/Cogl-*.typelib"
+FILES:libcogl-gles2 = "${libdir}/libcogl-gles2${SOLIBS}"
+FILES:libcogl-pango = "${libdir}/libcogl-pango${SOLIBS} ${libdir}/girepository-1.0/CoglPango*.typelib"
+
+FILES:libcogl-path = "${libdir}/libcogl-path${SOLIBS}"
+
+# For backwards compatibility after Debian-renaming
+RPROVIDES:libcogl = "cogl-1.0"
+RCONFLICTS:libcogl = "cogl-1.0"
+RREPLACES:libcogl = "cogl-1.0"
+
+RDEPENDS:${PN}-dev = "libcogl"
+
+COMPATIBLE_HOST:armv4 = 'null'
diff --git a/meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch b/meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch
new file mode 100644
index 0000000000..328984a63f
--- /dev/null
+++ b/meta-gnome/recipes-graphics/cogl/cogl-1.0/0001-configure.ac-don-t-require-eglmesaext.h.patch
@@ -0,0 +1,92 @@
+From bb9765a926588ebfe1eb324fbbe8fc22d419eebe Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Thu, 25 Jun 2020 11:27:40 +0000
+Subject: [PATCH] configure.ac: don't require eglmesaext.h
+
+E.g. the Vivante EGL implementation does not provide eglmesaext.h.
+
+The commit moves the check for header file existence outside of the
+check for existence of a egl packageconfig and makes the existence
+of eglmesaext.h optional.
+
+fixes commit fb1acfec ("Fix building against libglvnd-provided EGL headers")
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/cogl/-/merge_requests/28]
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
+ configure.ac | 51 ++++++++++++++++++++++++++++++++-------------------
+ 1 file changed, 32 insertions(+), 19 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b7ba95d..0d1d8de 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1212,22 +1212,6 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
+ PKG_CHECK_EXISTS([egl],
+ [COGL_PKG_REQUIRES="$COGL_PKG_REQUIRES egl"],
+ [
+- AC_CHECK_HEADERS(
+- [EGL/egl.h],
+- [],
+- [AC_MSG_ERROR([Unable to locate required EGL headers])])
+- AC_CHECK_HEADERS(
+- [EGL/eglext.h],
+- [],
+- [AC_MSG_ERROR([Unable to locate required EGL headers])],
+- [#include <EGL/egl.h>])
+- AC_CHECK_HEADERS(
+- [EGL/eglmesaext.h],
+- [],
+- [AC_MSG_ERROR([Unable to locate required EGL headers])],
+- [#include <EGL/egl.h>
+-#include <EGL/eglext.h>])
+-
+ AC_CHECK_LIB(EGL, [eglInitialize],
+ [COGL_EXTRA_LDFLAGS="$COGL_EXTRA_LDFLAGS -lEGL"],
+ [AC_MSG_ERROR([Unable to locate required EGL library])])
+@@ -1236,9 +1220,38 @@ AS_IF([test "x$NEED_EGL" = "xyes" && test "x$EGL_CHECKED" != "xyes"],
+ ]
+ )
+
+- COGL_EGL_INCLUDES="#include <EGL/egl.h>
+-#include <EGL/eglext.h>
+-#include <EGL/eglmesaext.h>"
++dnl Test for the existence of egl headers.
++dnl egl*.h includes eglplatform.h which on __unix__ defaults to a X11 platform.
++dnl In that case AC_CHECK_HEADERS failes if X11 headers are not available.
++dnl Set the usual include guard define and, if the EGL implementation doesn't
++dnl use that guard fall back to USE_OZONE and EGL_NO_X11 platforms which don't
++dnl require additional headers.
++ AC_CHECK_HEADERS(
++ [EGL/egl.h],
++ [COGL_EGL_INCLUDES="#include <EGL/egl.h>"],
++ [AC_MSG_ERROR([Unable to locate required EGL headers])],
++ [#define __egl_h_
++ #define USE_OZONE
++ #define EGL_NO_X11])
++ AC_CHECK_HEADERS(
++ [EGL/eglext.h],
++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES
++#include <EGL/eglext.h>"],
++ [AC_MSG_ERROR([Unable to locate required EGL headers])],
++ [#define __eglext_h_
++ #define USE_OZONE
++ #define EGL_NO_X11
++$COGL_EGL_INCLUDES])
++ AC_CHECK_HEADERS(
++ [EGL/eglmesaext.h],
++ [COGL_EGL_INCLUDES="$COGL_EGL_INCLUDES
++#include <EGL/eglmesaext.h>"],
++ [],
++ [#define __eglmesaext_h_
++#define USE_OZONE
++#define EGL_NO_X11
++$COGL_EGL_INCLUDES])
++
+ AC_SUBST([COGL_EGL_INCLUDES])
+ ])
+
+--
+2.20.1
+
diff --git a/meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb b/meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb
new file mode 100644
index 0000000000..b9446fab38
--- /dev/null
+++ b/meta-gnome/recipes-graphics/cogl/cogl-1.0_1.22.8.bb
@@ -0,0 +1,6 @@
+require cogl-1.0.inc
+
+SRC_URI += "file://0001-configure.ac-don-t-require-eglmesaext.h.patch"
+SRC_URI[archive.sha256sum] = "a805b2b019184710ff53d0496f9f0ce6dcca420c141a0f4f6fcc02131581d759"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=1b1a508d91d25ca607c83f92f3e31c84"
diff --git a/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb b/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
new file mode 100644
index 0000000000..d4df611639
--- /dev/null
+++ b/meta-gnome/recipes-graphics/packagegroups/packagegroup-core-clutter.bb
@@ -0,0 +1,26 @@
+#
+# Copyright (C) 2007 OpenedHand Ltd.
+#
+
+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
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
+inherit packagegroup features_check
+# rdepends on clutter-*
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+PACKAGES = "\
+ ${PN}-core \
+ "
+
+SUMMARY:${PN}-core = "Clutter graphics library"
+RDEPENDS:${PN}-core = "\
+ clutter-1.0 \
+ clutter-gst-3.0 \
+ clutter-gtk-1.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
new file mode 100644
index 0000000000..944d2f9165
--- /dev/null
+++ b/meta-gnome/recipes-support/accountsservice/accountsservice/0001-musl-Hack-to-fix-build.patch
@@ -0,0 +1,36 @@
+From ff0718174faf1167fb4765ebe4bd280bbe8d2ac6 Mon Sep 17 00:00:00 2001
+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/meson.build b/meson.build
+index 075776f..dfd7421 100644
+--- a/meson.build
++++ b/meson.build
+@@ -101,9 +101,14 @@ elif cc.has_header_symbol('paths.h', '_PATH_WTMPX')
+
+ config_h.set('PATH_WTMP', '_PATH_WTMPX')
+ else
+- path_wtmp = '/var/log/utx.log'
+- assert(run_command('test', '-e', path_wtmp).returncode() == 0, 'Do not know which filename to watch for wtmp changes')
+- config_h.set_quoted('PATH_WTMP', path_wtmp)
++ # musl: This is just a build fix hack.
++ # As usual they know better, consider all other projects crap and offer zero
++ # alternatives: So wtmp is a dead stub only [1] (= /dev/null/wtmp - taken
++ # from musl sources).
++ # Maybe a hero comes along and adds utmps [2] to make accountsservice useful for musl
++ # [1] https://wiki.musl-libc.org/faq.html#Q:-Why-is-the-utmp/wtmp-functionality-only-implemented-as-stubs?
++ # [2] https://github.com/skarnet/utmps
++ config_h.set_quoted('PATH_WTMP', '/dev/null/wtmp')
+ endif
+
+ # compiler flags
+--
+2.34.1
+
diff --git a/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch b/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch
new file mode 100644
index 0000000000..2b0924b2e4
--- /dev/null
+++ b/meta-gnome/recipes-support/accountsservice/accountsservice/0002-musl-add-missing-fgetspent_r.patch
@@ -0,0 +1,44 @@
+From 7401e682400df87f3258f795bb1d143f64a35a9f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 9 Dec 2019 00:12:08 +0100
+Subject: [PATCH] musl: add missing fgetspent_r
+
+Stolen from void-linux
+
+Upstream-Status: Inappropriate [musl-specific]
+
+---
+ src/daemon.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/src/daemon.c b/src/daemon.c
+index c52bda3..a7676fe 100644
+--- a/src/daemon.c
++++ b/src/daemon.c
+@@ -164,6 +164,26 @@ remove_cache_files (const gchar *user_name)
+ g_remove (icon_filename);
+ }
+
++/* Musl libc does not support fgetspent_r(), write own
++ * wrapper
++ */
++static int fgetspent_r(FILE *fp, struct spwd *spbuf, char *buf, size_t buflen, struct spwd **spbufp) {
++ struct spwd *shadow_entry = fgetspent(fp);
++ if(!shadow_entry)
++ return -1;
++ size_t namplen = strlen(shadow_entry->sp_namp);
++ size_t pwdplen = strlen(shadow_entry->sp_pwdp);
++
++ if(namplen + pwdplen + 2 > buflen)
++ return -1;
++
++ *spbufp = memcpy(spbuf, shadow_entry, sizeof(struct spwd));
++ spbuf->sp_namp = strncpy(buf, shadow_entry->sp_namp, namplen + 1);
++ spbuf->sp_pwdp = strncpy(buf + namplen + 1, shadow_entry->sp_pwdp, pwdplen + 1);
++
++ return 0;
++}
++
+ static struct passwd *
+ entry_generator_fgetpwent (Daemon *daemon,
+ GHashTable *users,
diff --git a/meta-gnome/recipes-support/accountsservice/accountsservice_22.08.8.bb b/meta-gnome/recipes-support/accountsservice/accountsservice_22.08.8.bb
new file mode 100644
index 0000000000..439958c7d2
--- /dev/null
+++ b/meta-gnome/recipes-support/accountsservice/accountsservice_22.08.8.bb
@@ -0,0 +1,32 @@
+DESCRIPTION = "D-Bus interfaces for querying and manipulating user account information"
+HOMEPAGE = "https://www.freedesktop.org/wiki/Software/AccountsService/"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = " \
+ dbus \
+ polkit \
+"
+
+inherit meson gobject-introspection gtk-doc features_check systemd vala
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = "https://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI:append:libc-musl = " \
+ file://0001-musl-Hack-to-fix-build.patch \
+ file://0002-musl-add-missing-fgetspent_r.patch \
+"
+SRC_URI[sha256sum] = "909997a76919fe7dc138a9a01cea70bd622d5a932dbc9fb13010113023a7a391"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = ", -Dsystemdsystemunitdir='no', systemd"
+
+SYSTEMD_SERVICE:${PN} = "accounts-daemon.service"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/polkit-1 \
+"
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/colord-gtk/colord-gtk_0.3.0.bb b/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.3.0.bb
new file mode 100644
index 0000000000..0e86d781ce
--- /dev/null
+++ b/meta-gnome/recipes-support/colord-gtk/colord-gtk_0.3.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "GTK support library for colord"
+HOMEPAGE = "https://www.freedesktop.org/software/colord/"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+inherit meson gobject-introspection gettext gtk-doc features_check
+
+DEPENDS = " \
+ colord \
+"
+
+SRC_URI = "http://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "b9466656d66d9a6ffbc2dd04fa91c8f6af516bf9efaacb69744eec0f56f3c1d0"
+
+PACKAGECONFIG ??= "gtk3 gtk4"
+PACKAGECONFIG[gtk3] = "-Dgtk3=true, -Dgtk3=false, gtk+3"
+PACKAGECONFIG[gtk4] = "-Dgtk4=true, -Dgtk4=false, gtk4"
+
+EXTRA_OEMESON = "-Dman=false"
+GIR_MESON_OPTION = ""
+# gobject-introspection is mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+# colord
+REQUIRED_DISTRO_FEATURES += "polkit"
diff --git a/meta-gnome/recipes-support/ibus/ibus-native.bb b/meta-gnome/recipes-support/ibus/ibus-native.bb
new file mode 100644
index 0000000000..ca65114c4d
--- /dev/null
+++ b/meta-gnome/recipes-support/ibus/ibus-native.bb
@@ -0,0 +1,34 @@
+require ${BPN}.inc
+
+inherit native
+
+DEPENDS += " \
+ glib-2.0-native \
+ dbus-native \
+ iso-codes \
+"
+
+PACKAGECONFIG = ""
+
+# for allarch iso-codes
+EXTRA_NATIVE_PKGCONFIG_PATH = ":${RECIPE_SYSROOT}${datadir_native}/pkgconfig"
+# for allarch unicode-ucd - just to make configure happy
+EXTRA_OECONF += "--with-ucd-dir=${RECIPE_SYSROOT}${datadir_native}/unicode/ucd"
+
+do_compile() {
+ cd src
+ # seems by moving to src we break dependency tracking so build what's
+ # necessary step by step
+ oe_runmake ibusenumtypes.h
+ oe_runmake ibusmarshalers.h
+ oe_runmake ibusenumtypes.c
+ oe_runmake unicode-parser
+}
+
+do_install() {
+ install -d ${D}/${libdir}
+ install -m 755 ${S}/src/.libs/libibus-*.so* ${D}/${libdir}
+
+ install -d ${D}/${bindir}
+ install -m 755 ${S}/src/.libs/unicode-parser ${D}/${bindir}
+}
diff --git a/meta-gnome/recipes-support/ibus/ibus.bb b/meta-gnome/recipes-support/ibus/ibus.bb
new file mode 100644
index 0000000000..141341e341
--- /dev/null
+++ b/meta-gnome/recipes-support/ibus/ibus.bb
@@ -0,0 +1,41 @@
+require ${BPN}.inc
+
+DEPENDS += " \
+ ${BPN}-native \
+ glib-2.0-native \
+ glib-2.0 \
+ dbus \
+ iso-codes \
+"
+
+inherit gtk-icon-cache bash-completion features_check
+
+# for unicode-ucd
+EXTRA_OECONF += "--with-ucd-dir=${STAGING_DATADIR}/unicode/ucd"
+
+PACKAGECONFIG ??= " \
+ dconf vala \
+ ${@bb.utils.contains_any('DISTRO_FEATURES', [ 'wayland', 'x11' ], 'gtk3 gtk4', '', d)} \
+ ${@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
+}
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/GConf \
+ ${datadir}/glib-2.0 \
+ ${libdir}/gtk-3.0 \
+ ${libdir}/gtk-4.0 \
+ ${systemd_user_unitdir} \
+"
+
+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
new file mode 100644
index 0000000000..9579404b3e
--- /dev/null
+++ b/meta-gnome/recipes-support/ibus/ibus.inc
@@ -0,0 +1,41 @@
+SUMMARY = "Intelligent Input Bus for Linux/Unix"
+HOMEPAGE = "https://github.com/ibus/ibus/wiki"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+inherit autotools-brokensep pkgconfig gobject-introspection gettext gtk-doc vala
+
+PV = "1.5.26"
+
+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 \
+"
+SRCREV = "6a70ab0338206bd1c7d01a4e1874ea0ee5b3a9d3"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG[appindicator] = "--enable-appindicator,--disable-appindicator,qtbase"
+PACKAGECONFIG[dconf] = "--enable-dconf,--disable-dconf,dconf"
+PACKAGECONFIG[gtk2] = "--enable-gtk2,--disable-gtk2,gtk+"
+PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3,gtk+3"
+PACKAGECONFIG[gtk4] = "--enable-gtk4,--disable-gtk4,gtk4"
+PACKAGECONFIG[systemd] = "--enable-systemd-services,--disable-systemd-services,systemd"
+PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland"
+PACKAGECONFIG[vala] = "--enable-vala,--disable-vala"
+PACKAGECONFIG[x11] = "--enable-xim --enable-ui,--disable-xim --disable-ui,virtual/libx11"
+
+EXTRA_OECONF = " \
+ --disable-tests \
+ --disable-emoji-dict \
+ --disable-python2 \
+"
+EXTRA_OECONF:append:class-target = "\
+ --with-python=${bindir}/python3 \
+"
+
+do_configure:prepend() {
+ touch ${S}/ChangeLog
+ touch ${S}/ABOUT-NLS
+}
diff --git a/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch b/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch
new file mode 100644
index 0000000000..aec9e7abec
--- /dev/null
+++ b/meta-gnome/recipes-support/ibus/ibus/0001-Do-not-try-to-start-dbus-we-do-not-have-dbus-lauch.patch
@@ -0,0 +1,34 @@
+From f567bcbc2108d722faa90afeb03d3a3bcdf5f58b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 10 May 2019 14:30:08 +0200
+Subject: [PATCH] Do not try to start dbus - we do not have dbus-lauch
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ data/dconf/make-dconf-override-db.sh | 6 ------
+ 1 file changed, 6 deletions(-)
+
+--- a/data/dconf/make-dconf-override-db.sh
++++ b/data/dconf/make-dconf-override-db.sh
+@@ -12,10 +12,6 @@ export XDG_CACHE_HOME="$TMPDIR/cache"
+ export GSETTINGS_SCHEMA_DIR="$TMPDIR/schemas"
+ mkdir -p $XDG_CONFIG_HOME $XDG_CACHE_HOME $GSETTINGS_SCHEMA_DIR
+
+-eval `dbus-launch --sh-syntax`
+-
+-trap 'rm -rf $TMPDIR; kill $DBUS_SESSION_BUS_PID' ERR
+-
+ # in case that schema is not installed on the system
+ glib-compile-schemas --targetdir "$GSETTINGS_SCHEMA_DIR" "$PWD"
+
+@@ -52,5 +48,3 @@ if [ -d $TMPDIR/cache/gvfs ] ; then
+ umount $TMPDIR/cache/gvfs
+ fi
+ rm -rf $TMPDIR
+-
+-kill $DBUS_SESSION_BUS_PID
diff --git a/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb b/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
index 0a0a3e6b43..971ad90f9c 100644
--- a/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
+++ b/meta-gnome/recipes-support/keybinder/keybinder_3.0.bb
@@ -13,15 +13,15 @@ B = "${S}"
SRCREV = "736ccef40d39603b8111c8a3a0bca0319bbafdc0"
PV = "3.0+git${SRCPV}"
-SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0 \
+SRC_URI = "git://github.com/engla/keybinder.git;branch=keybinder-3.0;protocol=https \
"
-RDEPENDS_${PN} = "gtk+"
+RDEPENDS:${PN} = "gtk+"
-inherit distro_features_check autotools gtk-doc gobject-introspection
+inherit features_check autotools gtk-doc gobject-introspection
REQUIRED_DISTRO_FEATURES = "x11"
-do_configure_prepend() {
+do_configure:prepend() {
touch ${S}/ChangeLog
}
diff --git a/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.1.bb b/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.1.bb
new file mode 100644
index 0000000000..b6448b9398
--- /dev/null
+++ b/meta-gnome/recipes-support/libcloudproviders/libcloudproviders_0.3.1.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"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+DEPENDS = "glib-2.0"
+
+inherit gnomebase gobject-introspection vala
+
+SRC_URI[archive.sha256sum] = "4763213ca1e1fe30d422f5ae3b4f02a454f63414c1860ad142d6385f89d05929"
diff --git a/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch b/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch
deleted file mode 100644
index 79756b9a07..0000000000
--- a/meta-gnome/recipes-support/libuser/libuser/0001-Check-for-issetugid.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From d0537cb7f2dc5877700ad78dfd191515379d4edc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 7 Jan 2016 02:22:51 +0000
-Subject: [PATCH 1/2] Check for issetugid()
-
-If secure version of getenv is not there then we can use
-issetugid() as aid to call getenv()
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure.ac | 1 +
- lib/config.c | 12 +++++++++++-
- 2 files changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1ded1a2..ee19e1f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -125,6 +125,7 @@ AC_TYPE_OFF_T
- AC_TYPE_SIZE_T
-
- AC_CHECK_FUNCS([__secure_getenv secure_getenv])
-+AC_CHECK_FUNCS([issetugid])
-
- # Modify CFLAGS after all tests are run (some of them could fail because
- # of the -Werror).
-diff --git a/lib/config.c b/lib/config.c
-index 29e7120..30f9daf 100644
---- a/lib/config.c
-+++ b/lib/config.c
-@@ -44,8 +44,10 @@
- # define safe_getenv(string) secure_getenv(string)
- #elif defined(HAVE___SECURE_GETENV)
- # define safe_getenv(string) __secure_getenv(string)
-+#elif defined(HAVE_ISSETUGID)
-+# define safe_getenv(string) safe_getenv_issetugid(string)
- #else
--# error Neither secure_getenv not __secure_getenv are available
-+# error None of secure_getenv, __secure_getenv, or issetugid is available
- #endif
-
- struct config_config {
-@@ -59,6 +61,14 @@ struct config_key {
- GList *values;
- };
-
-+static const char*
-+safe_getenv_issetugid(const char* name)
-+{
-+ if (issetugid ())
-+ return 0;
-+ return getenv (name);
-+}
-+
- /* Compare two section names */
- static int
- compare_section_names(gconstpointer a, gconstpointer b)
---
-2.7.0
-
diff --git a/meta-gnome/recipes-support/libuser/libuser/0001-docs-Disable-building.patch b/meta-gnome/recipes-support/libuser/libuser/0001-docs-Disable-building.patch
new file mode 100644
index 0000000000..add2872cca
--- /dev/null
+++ b/meta-gnome/recipes-support/libuser/libuser/0001-docs-Disable-building.patch
@@ -0,0 +1,29 @@
+From e6bdf74a424652c4f9a38457c7fa93a2051157f5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Aug 2022 13:09:07 -0700
+Subject: [PATCH] docs: Disable building
+
+It needs linuxdoc-tools which we do not have in OE anymore
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ docs/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index daa2288..b355185 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -8,7 +8,7 @@ CLEANFILES = $(man_MANS) $(SGML_OUTPUTS)
+ EXTRA_DIST = attributes.txt libuser.conf.5.in rfc2307.txt sgml/libuser.sgml \
+ $(SGML_OUTPUTS)
+
+-all: sgml/libuser.txt sgml/libuser.html
++all:
+
+ libuser.conf.5: $(srcdir)/libuser.conf.5.in Makefile
+ sed 's,@sysconfdir\@,$(sysconfdir),g' \
+--
+2.37.2
+
diff --git a/meta-gnome/recipes-support/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch b/meta-gnome/recipes-support/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch
deleted file mode 100644
index 7c47df22e4..0000000000
--- a/meta-gnome/recipes-support/libuser/libuser/0001-modules-files.c-parse_field-fix-string-formating-in-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a4857911ece5ebfcdef42aee4c070eb216f39597 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
-Date: Fri, 13 May 2016 11:40:13 -0500
-Subject: [PATCH] modules/files.c: parse_field fix string formating in
- g_warnings
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[YOCTO #9547]
-
-Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
-
-Upstream-Status: Pending
----
- modules/files.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modules/files.c b/modules/files.c
-index 4ef0a57..35eafc9 100644
---- a/modules/files.c
-+++ b/modules/files.c
-@@ -534,7 +534,7 @@ parse_field(const struct format_specifier *format, GValue *value,
- string, &err);
- if (ret == FALSE) {
- g_assert(err != NULL);
-- g_warning(lu_strerror(err));
-+ g_warning(lu_strerror(err), NULL);
- lu_error_free(&err);
- }
- return ret;
---
-2.1.4
-
diff --git a/meta-gnome/recipes-support/libuser/libuser_0.62.bb b/meta-gnome/recipes-support/libuser/libuser_0.62.bb
deleted file mode 100644
index 7ec54eb16e..0000000000
--- a/meta-gnome/recipes-support/libuser/libuser_0.62.bb
+++ /dev/null
@@ -1,35 +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 = "LGPLv2"
-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-Check-for-issetugid.patch \
- file://0002-remove-unused-execinfo.h.patch \
- file://0001-modules-files.c-parse_field-fix-string-formating-in-.patch \
- "
-
-SRC_URI[md5sum] = "63e5e5c551e99dc5302b40b80bd6d4f2"
-SRC_URI[sha256sum] = "a58ff4fabb01a25043b142185a33eeea961109dd60d4b40b6a9df4fa3cace20b"
-
-DEPENDS = "popt libpam glib-2.0 python3"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-inherit autotools gettext python3native python3-dir pkgconfig gtk-doc
-
-EXTRA_OEMAKE = "PYTHON_CPPFLAGS=-I${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
-
-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..d86a577b10
--- /dev/null
+++ b/meta-gnome/recipes-support/libuser/libuser_0.64.bb
@@ -0,0 +1,45 @@
+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 \
+ "
+
+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}"
+
+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/libwacom/libwacom_2.6.0.bb b/meta-gnome/recipes-support/libwacom/libwacom_2.6.0.bb
new file mode 100644
index 0000000000..d960262416
--- /dev/null
+++ b/meta-gnome/recipes-support/libwacom/libwacom_2.6.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 = "cb36c462763a321454d5c08fe974a3d7dec4ed1a"
+
+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 4e49becc4f..0000000000
--- a/meta-gnome/recipes-support/onboard/onboard_1.4.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "An onscreen keyboard"
-LICENSE = "GPLv3"
-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 distro_features_check setuptools3 pkgconfig gtk-icon-cache gsettings
-
-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/packagegroups/packagegroup-gnome-apps.bb b/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-apps.bb
new file mode 100644
index 0000000000..7151f93267
--- /dev/null
+++ b/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-apps.bb
@@ -0,0 +1,28 @@
+SUMMARY = "GNOME applications"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+inherit packagegroup features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit gobject-introspection-data"
+
+RDEPENDS:${PN} = " \
+ evolution-data-server \
+ evince \
+ file-roller \
+ geary \
+ gedit \
+ ghex \
+ gnome-calculator \
+ gnome-calendar \
+ gnome-commander \
+ gnome-font-viewer \
+ gnome-photos \
+ gnome-screenshot \
+ gnome-terminal \
+ gnome-text-editor \
+ gthumb \
+ libwnck3 \
+ nautilus \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'polkit', 'gnome-system-monitor gnome-disk-utility', '', d)} \
+"
diff --git a/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb b/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb
new file mode 100644
index 0000000000..13394ca1db
--- /dev/null
+++ b/meta-gnome/recipes-support/packagegroups/packagegroup-gnome-desktop.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Basic GNOME desktop"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+# gnome-menus & gmime get debian renamed
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
+inherit packagegroup features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 polkit systemd pam gobject-introspection-data"
+
+RDEPENDS:${PN} = " \
+ adwaita-icon-theme \
+ adwaita-icon-theme-cursors \
+ evolution-data-server \
+ gnome-backgrounds \
+ gnome-bluetooth \
+ gnome-control-center \
+ gnome-desktop \
+ gnome-flashback \
+ gnome-keyring \
+ gnome-menus \
+ gnome-session \
+ gnome-settings-daemon \
+ gnome-shell \
+ gnome-shell-extensions \
+ gnome-tweaks \
+ gmime \
+ gvfs gvfsd-ftp gvfsd-sftp gvfsd-trash \
+"
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 76640b0a1e..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,24 +3,25 @@ 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 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index 4219f28..2a5ceac 100644
+index 779416a..67e2cc3 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -69,7 +69,7 @@ dist_pkgdata_DATA = usermode.ui
+@@ -82,7 +82,7 @@ endif
userhelper_SOURCES = userhelper.c userhelper.h shvar.c shvar.h
userhelper_CPPFLAGS = $(AM_CPPFLAGS) -DSYSCONFDIR='"$(sysconfdir)"'
- userhelper_LDADD = liblib.a $(LIBUSER_LIBS) $(GLIB_LIBS) $(PAM_LIBS) \
+ userhelper_LDADD = liblib.a $(LIBUSER_LIBS) $(GLIB_LIBS) $(PAM_LIBS) -lm \
- $(SELINUX_LIBS) $(EFENCE_LIBS)
+ $(SELINUX_LIBS) $(EFENCE_LIBS) -lm
+ if GTK
userinfo_SOURCES = userinfo.c
- userinfo_CPPFLAGS = $(AM_CPPFLAGS) $(PIXMAPDIR_CPPFLAGS) $(SBINDIR_CPPFLAGS) \
--
-2.13.3
+2.31.1
diff --git a/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch b/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch
deleted file mode 100644
index 9d512d4392..0000000000
--- a/meta-gnome/recipes-support/usermode/usermode/0001-formatting-issues.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 7a316dad0697af2ef4e8079a5af51565a8195aa6 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 24 Jul 2017 01:42:30 -0400
-Subject: [PATCH] userhelper.c: fix formatting issues
-
-Fixed when compile with "-Wformat -Wformat-security -Werror=format-security":
-|../usermode-1.111/userhelper.c:585:4: error: format not a string
-literal and no format arguments [-Werror=format-security]
-| text = g_strdup_printf(dgettext(data->domain, data->banner));
-| ^~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- userhelper.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/userhelper.c b/userhelper.c
-index 76ad492..ee0da49 100644
---- a/userhelper.c
-+++ b/userhelper.c
-@@ -582,7 +582,7 @@ converse_console(int num_msg, const struct pam_message **msg,
-
- if (banner == 0) {
- if ((data->banner != NULL) && (data->domain != NULL)) {
-- text = g_strdup_printf(dgettext(data->domain, data->banner));
-+ text = g_strdup_printf("%s", dgettext(data->domain, data->banner));
- } else {
- if ((service != NULL) && (strlen(service) > 0)) {
- if (data->fallback_allowed) {
---
-2.8.1
-
diff --git a/meta-gnome/recipes-support/usermode/usermode_1.111.bb b/meta-gnome/recipes-support/usermode/usermode_1.111.bb
deleted file mode 100644
index 3aea2e6bb4..0000000000
--- a/meta-gnome/recipes-support/usermode/usermode_1.111.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-DESCRIPTION = "The usermode contains the userhelper program, which can be used to allow configured \
-programs to be run with superuser privileges by ordinary users, and several \
-graphical tools for users: \
-* userinfo allows users to change their finger information. \
-* usermount lets users mount, unmount, and format filesystems. \
-* userpasswd allows users to change their passwords. \
-"
-HOMEPAGE = "https://pagure.io/usermode"
-LICENSE = "GPLv2+"
-DEPENDS = "libuser ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
- gtk+ desktop-file-utils-native \
- startup-notification intltool-native \
- util-linux \
-"
-
-SRC_URI = "https://releases.pagure.org/${BPN}/${BPN}-${PV}.tar.xz \
- file://0001-formatting-issues.patch \
- file://0001-fix-compile-failure-against-musl-C-library.patch \
- file://0001-Makefile.am-Link-with-libm-for-powl-API.patch \
- "
-SRC_URI[md5sum] = "28ba510fbd8da9f4e86e57d6c31cff29"
-SRC_URI[sha256sum] = "3dd0b9639b5bd396b7ea5fada6aaa694dbfdaa3ad06eb95a6eabcdfd02f875c6"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit distro_features_check autotools gettext pkgconfig
-
-EXTRA_OEMAKE += "INSTALL='install -p'"
-
-REQUIRED_DISTRO_FEATURES = "x11 pam"
diff --git a/meta-gnome/recipes-support/usermode/usermode_1.114.bb b/meta-gnome/recipes-support/usermode/usermode_1.114.bb
new file mode 100644
index 0000000000..1811b2d3c4
--- /dev/null
+++ b/meta-gnome/recipes-support/usermode/usermode_1.114.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Tools for certain user account management tasks"
+DESCRIPTION = "The usermode contains the userhelper program, which can be used to allow configured \
+programs to be run with superuser privileges by ordinary users, and several \
+graphical tools for users: \
+* userinfo allows users to change their finger information. \
+* usermount lets users mount, unmount, and format filesystems. \
+* userpasswd allows users to change their passwords. \
+"
+HOMEPAGE = "https://pagure.io/usermode"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "libuser ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)} \
+ gtk+ desktop-file-utils-native \
+ startup-notification intltool-native \
+ util-linux \
+"
+
+SRC_URI = "https://releases.pagure.org/${BPN}/${BPN}-${PV}.tar.xz \
+ file://0001-fix-compile-failure-against-musl-C-library.patch \
+ file://0001-Makefile.am-Link-with-libm-for-powl-API.patch \
+ "
+SRC_URI[sha256sum] = "e7f58712b12175965b3a21522052863a061f3f1a888df3ffbe713b434f80254f"
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+inherit features_check autotools gettext pkgconfig
+
+EXTRA_OEMAKE += "INSTALL='install -p'"
+
diff --git a/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.4.bb b/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.4.bb
new file mode 100644
index 0000000000..71c5244f16
--- /dev/null
+++ b/meta-gnome/recipes-support/webp-pixbuf-loader/webp-pixbuf-loader_0.2.4.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;nobranch=1"
+
+S = "${WORKDIR}/git"
+SRCREV = "a35014104a226265e44fe30fcdb4df9305af3466"
+
+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_44.1.bb b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.1.bb
new file mode 100644
index 0000000000..d6bc0e9c8b
--- /dev/null
+++ b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gnome_44.1.bb
@@ -0,0 +1,35 @@
+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 meson pkgconfig gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = "git://gitlab.gnome.org/GNOME/xdg-desktop-portal-gnome.git;protocol=https;nobranch=1"
+
+S = "${WORKDIR}/git"
+SRCREV = "89203bf3522556965fc225782d1a635afdac611e"
+
+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.14.1.bb b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gtk_1.14.1.bb
new file mode 100644
index 0000000000..1e0a906184
--- /dev/null
+++ b/meta-gnome/recipes-support/xdg-desktop-portal/xdg-desktop-portal-gtk_1.14.1.bb
@@ -0,0 +1,42 @@
+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 \
+ fontconfig \
+ gsettings-desktop-schemas \
+ gnome-desktop \
+ dconf \
+"
+
+inherit gettext autotools pkgconfig gsettings features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = "git://github.com/flatpak/xdg-desktop-portal-gtk.git;protocol=https;nobranch=1"
+
+S = "${WORKDIR}/git"
+SRCREV = "952005f6a7850a247d286f14838202f506b402b7"
+
+# gdbus-codegen wants to create files in ${B}/src and fails because of missing directory
+do_configure:append() {
+ mkdir -p ${B}/src
+}
+
+# Note: wlroots has its own implementation for screenshot and screencast, but
+# you may want to include the according PACKAGECONFIGS for gnome.
+PACKAGECONFIG ?= "wallpaper appchooser lockdown"
+
+PACKAGECONFIG[screenshot] = "--enable-screenshot,--disable-screenshot,gnome-shell"
+PACKAGECONFIG[screencast] = "--enable-screencast,--disable-screencast,mutter"
+PACKAGECONFIG[wallpaper] = "--enable-wallpaper,--disable-wallpaper,gnome-desktop"
+PACKAGECONFIG[background] = "--enable-background,--disable-background,gnome-shell"
+PACKAGECONFIG[appchooser] = "--enable-appchooser,--disable-appchooser"
+PACKAGECONFIG[lockdown] = "--enable-lockdown,--disable-lockdown"
+
+FILES:${PN} += "${systemd_user_unitdir} ${datadir}"
diff --git a/meta-gnome/site/arm-64 b/meta-gnome/site/arm-64
deleted file mode 100644
index f474d2cc40..0000000000
--- a/meta-gnome/site/arm-64
+++ /dev/null
@@ -1,13 +0,0 @@
-# ORBit2
-ac_cv_alignof_CORBA_boolean=1
-ac_cv_alignof_CORBA_char=1
-ac_cv_alignof_CORBA_double=8
-ac_cv_alignof_CORBA_float=4
-ac_cv_alignof_CORBA_long=4
-ac_cv_alignof_CORBA_long_double=8
-ac_cv_alignof_CORBA_long_long=8
-ac_cv_alignof_CORBA_octet=1
-ac_cv_alignof_CORBA_pointer=4
-ac_cv_alignof_CORBA_short=2
-ac_cv_alignof_CORBA_struct=1
-ac_cv_alignof_CORBA_wchar=2
diff --git a/meta-gnome/site/riscv64-linux b/meta-gnome/site/riscv64-linux
deleted file mode 100644
index e3a41ea0e1..0000000000
--- a/meta-gnome/site/riscv64-linux
+++ /dev/null
@@ -1,16 +0,0 @@
-# libidl
-libIDL_cv_long_long_format=${libIDL_cv_long_long_format=ll}
-
-# ORBit2
-ac_cv_alignof_CORBA_boolean=1
-ac_cv_alignof_CORBA_char=1
-ac_cv_alignof_CORBA_double=8
-ac_cv_alignof_CORBA_float=4
-ac_cv_alignof_CORBA_long=4
-ac_cv_alignof_CORBA_long_double=8
-ac_cv_alignof_CORBA_long_long=8
-ac_cv_alignof_CORBA_octet=1
-ac_cv_alignof_CORBA_pointer=4
-ac_cv_alignof_CORBA_short=2
-ac_cv_alignof_CORBA_struct=1
-ac_cv_alignof_CORBA_wchar=2
diff --git a/meta-gnome/site/x86_64-linux b/meta-gnome/site/x86_64-linux
deleted file mode 100644
index eba1fee2bb..0000000000
--- a/meta-gnome/site/x86_64-linux
+++ /dev/null
@@ -1,17 +0,0 @@
-# ORBit2
-ac_cv_alignof_CORBA_boolean=1
-ac_cv_alignof_CORBA_char=1
-ac_cv_alignof_CORBA_double=8
-ac_cv_alignof_CORBA_float=4
-ac_cv_alignof_CORBA_long=4
-ac_cv_alignof_CORBA_long_double=8
-ac_cv_alignof_CORBA_long_long=8
-ac_cv_alignof_CORBA_octet=1
-ac_cv_alignof_CORBA_pointer=8
-ac_cv_alignof_CORBA_short=2
-ac_cv_alignof_CORBA_struct=1
-ac_cv_alignof_CORBA_wchar=2
-
-lf_cv_sane_realloc=yes
-as_cv_unaligned_access=${as_cv_unaligned_access=yes}
-
diff --git a/meta-initramfs/README b/meta-initramfs/README
deleted file mode 100644
index 7185383123..0000000000
--- a/meta-initramfs/README
+++ /dev/null
@@ -1,36 +0,0 @@
-meta-initramfs
-==============
-
-This layer contains the metadata necessary to build the klibc library and
-utilities (shared and static) plus other tools useful for the creation of
-small-sized initramfs.
-
-
-Dependencies
-------------
-
-This layer depends on:
-
-URI: git://github.com/openembedded/oe-core.git
-branch: master
-revision: HEAD
-
-
-Maintenance
------------
-
-Send patches / pull requests to openembedded-devel@lists.openembedded.org
-with '[meta-initramfs]' in the subject.
-
-When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-initramfs][PATCH'
-
-Interm layer maintainer: Armin Kuster <akuster808@gmail.com>
-
-
-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.
diff --git a/meta-initramfs/README.md b/meta-initramfs/README.md
new file mode 100644
index 0000000000..119293a741
--- /dev/null
+++ b/meta-initramfs/README.md
@@ -0,0 +1,35 @@
+meta-initramfs
+==============
+
+This layer contains the metadata necessary to build the klibc library and
+utilities (shared and static) plus other tools useful for the creation of
+small-sized initramfs.
+
+
+Dependencies
+------------
+
+This layer depends on:
+
+URI: git://git.openembedded.org/meta-openembedded
+branch: master
+
+
+Maintenance
+-----------
+
+Send patches / pull requests to openembedded-devel@lists.openembedded.org
+with '[meta-initramfs]' in the subject.
+
+When sending single patches, please using something like:
+git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-initramfs][PATCH'
+
+Interm layer maintainer: Khem Raj <raj.khem@gmail.com>
+
+
+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.
diff --git a/meta-initramfs/classes/klibc.bbclass b/meta-initramfs/classes/klibc.bbclass
index b7b72b728b..202d132d94 100644
--- a/meta-initramfs/classes/klibc.bbclass
+++ b/meta-initramfs/classes/klibc.bbclass
@@ -3,14 +3,14 @@ DEPENDS =+ "klcc-cross"
# Default for klcc is to build static binaries.
# Set CC = "${TARGET_PREFIX}klcc -shared" to build the dynamic version.
-CC_forcevariable = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS}"
-CC_forcevariable_armv4_linux-gnueabi = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS} -march=armv4 -mthumb-interwork"
-CC_append_armv7ve = " ${@' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}"
-CC_append_armv7a = " ${@' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}"
-
-CPP_forcevariable = "${CC} -E"
+CC:forcevariable = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS}"
+CC:forcevariable:armv4:linux-gnueabi = "${TARGET_PREFIX}klcc ${TOOLCHAIN_OPTIONS} -march=armv4 -mthumb-interwork"
+CC:append:armv7ve = " ${@' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}"
+CC:append:armv7a = " ${@' -mfloat-abi=${TUNE_CCARGS_MFLOAT}' if (d.getVar('TUNE_CCARGS_MFLOAT') != '') else ''}"
# klcc uses own optimizations by default. See klcc(1) man file.
export CFLAGS="${TUNE_CCARGS}"
export CPPFLAGS="${TUNE_CCARGS}"
export LDFLAGS="${TUNE_CCARGS}"
+
+OVERRIDES =. "libc-klibc:"
diff --git a/meta-initramfs/conf/layer.conf b/meta-initramfs/conf/layer.conf
index 97afc9374e..b4cd74398d 100644
--- a/meta-initramfs/conf/layer.conf
+++ b/meta-initramfs/conf/layer.conf
@@ -13,10 +13,10 @@ BBFILE_PATTERN_meta-initramfs := "^${LAYERDIR}/"
# choosing carefully how this layer interacts with all of the
# other layers.
-BBFILE_PRIORITY_meta-initramfs = "8"
+BBFILE_PRIORITY_meta-initramfs = "5"
LAYERDEPENDS_meta-initramfs = "core"
-LAYERSERIES_COMPAT_meta-initramfs = "sumo"
+LAYERSERIES_COMPAT_meta-initramfs = "mickledore"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
dracut->virtual/kernel \
diff --git a/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb b/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb
deleted file mode 100644
index be7350ade2..0000000000
--- a/meta-initramfs/recipes-bsp/images/initramfs-debug-image.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-# Simple initramfs image. Mostly used for live images.
-DESCRIPTION = "Small image capable of booting a device. The kernel includes \
-the Minimal RAM-based Initial Root Filesystem (initramfs), which one can use \
-to check the hardware efficiently."
-
-PACKAGE_INSTALL = "initramfs-debug busybox base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
-
-# Do not pollute the initrd image with rootfs features
-IMAGE_FEATURES = ""
-
-export IMAGE_BASENAME = "initramfs-debug-image"
-IMAGE_LINGUAS = ""
-
-LICENSE = "MIT"
-
-IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
-inherit core-image
-
-IMAGE_ROOTFS_SIZE = "8192"
-IMAGE_ROOTFS_EXTRA_SPACE = "0"
-
-BAD_RECOMMENDATIONS += "busybox-syslog"
diff --git a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb b/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb
deleted file mode 100644
index 2573eb4818..0000000000
--- a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-image.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Initramfs image for kexecboot kernel"
-DESCRIPTION = "This image provides kexecboot (linux as bootloader) and helpers."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-inherit image
-
-IMAGE_FSTYPES = "${INITRAMFS_FSTYPES}"
-
-# avoid circular dependencies
-EXTRA_IMAGEDEPENDS = ""
-KERNELDEPMODDEPEND = ""
-
-# We really need just kexecboot, kexec and ubiattach
-IMAGE_INSTALL = "kexecboot kexec mtd-utils-ubifs"
-
-# Do not pollute the initrd image with rootfs features
-IMAGE_FEATURES = ""
-
-IMAGE_LINGUAS = ""
-
-FEED_DEPLOYDIR_BASE_URI = ""
-LDCONFIGDEPEND = ""
-IMAGE_ROOTFS_EXTRA_SPACE = "0"
-
-# disable runtime dependency on run-postinsts -> update-rc.d
-ROOTFS_BOOTSTRAP_INSTALL = ""
-
diff --git a/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-Use-new-reboot-API-with-klibc.patch b/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-Use-new-reboot-API-with-klibc.patch
new file mode 100644
index 0000000000..52d622a2f8
--- /dev/null
+++ b/meta-initramfs/recipes-bsp/kexecboot/files/0001-kexecboot-Use-new-reboot-API-with-klibc.patch
@@ -0,0 +1,42 @@
+From a6d1678379df6142a68cc9bb76dae540a31b8fdb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Mar 2019 23:47:50 -0700
+Subject: [PATCH] kexecboot: Use new reboot() API with klibc
+
+Klibc has changed this API in
+https://git.kernel.org/pub/scm/libs/klibc/klibc.git/commit/?id=6b621b8705ce5901dcf49607c8a3523c9e521901
+
+therefore adopt the code
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/kexecboot.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/kexecboot.c b/src/kexecboot.c
+index cf49b40..c785fce 100644
+--- a/src/kexecboot.c
++++ b/src/kexecboot.c
+@@ -857,7 +857,7 @@ int process_ctx_menu(struct params_t *params, int action) {
+ #else
+ sync();
+ /* if ( -1 == reboot(LINUX_REBOOT_CMD_RESTART) ) { */
+- if ( -1 == reboot(RB_AUTOBOOT) ) {
++ if ( -1 == reboot(RB_AUTOBOOT, NULL) ) {
+ log_msg(lg, "Can't initiate reboot: %s", ERRMSG);
+ }
+ #endif
+@@ -874,7 +874,7 @@ int process_ctx_menu(struct params_t *params, int action) {
+ #else
+ sync();
+ /* if ( -1 == reboot(LINUX_REBOOT_CMD_POWER_OFF) ) { */
+- if ( -1 == reboot(RB_POWER_OFF) ) {
++ if ( -1 == reboot(RB_POWER_OFF, NULL) ) {
+ log_msg(lg, "Can't initiate shutdown: %s", ERRMSG);
+ }
+ #endif
+--
+2.21.0
+
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
new file mode 100644
index 0000000000..abfd8b77ee
--- /dev/null
+++ b/meta-initramfs/recipes-bsp/kexecboot/files/0001-make-Add-compiler-includes-in-cflags.patch
@@ -0,0 +1,33 @@
+From 528a64d17488295299dad9fbfe3d7140bc1cfdfa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 6 Feb 2021 11:06:48 -0800
+Subject: [PATCH] make: Add compiler includes in cflags
+
+Fixes
+| In file included from /mnt/b/yoe/master/build/tmp/work/raspberrypi4_64-yoe-linux/kexecboot-klibc/0.6+gitAUTOINC+5a5e04be20-r0/recipe-sysroot/usr/lib/klibc/include/stdio.h:11:
+| /mnt/b/yoe/master/build/tmp/work/raspberrypi4_64-yoe-linux/kexecboot-klibc/0.6+gitAUTOINC+5a5e04be20-r0/recipe-sysroot/usr/lib/klibc/include/stdarg.h:9:15: fatal error: 'stdarg.h' file not found
+| #include_next <stdarg.h>
+| ^~~~~~~~~~
+
+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/src/Makefile.am b/src/Makefile.am
+index c75df23..d2adf38 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,6 +1,6 @@
+ bin_PROGRAMS=kexecboot
+
+-kexecboot_CFLAGS = -I$(top_srcdir) $(AM_CFLAGS)
++kexecboot_CFLAGS = -I$(top_srcdir) $(AM_CFLAGS) -I$(shell $(CC) -print-file-name=include)
+
+ kexecboot_SOURCES = \
+ util.c \
+--
+2.30.0
+
diff --git a/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb b/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb
index 804ec32350..2dce19c6be 100644
--- a/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb
+++ b/meta-initramfs/recipes-bsp/kexecboot/kexecboot-cfg_0.2.bb
@@ -8,7 +8,7 @@ SRC_URI = "file://icon.xpm"
S = "${WORKDIR}"
-do_install_prepend () {
+do_install:prepend () {
echo '# /boot/boot.cfg - KEXECBOOT configuration file.
#
# First kernel stanza.
@@ -19,9 +19,15 @@ LABEL=${KEXECBOOT_LABEL}
# Specify full kernel path on target.
KERNEL=/boot/${KERNEL_IMAGETYPE}
#
+# Specify which device tree blob to use
+# DTB=/boot/my-own-dtb
+#
# Append this tags to the kernel cmdline.
APPEND=${CMDLINE} ${CMDLINE_DEBUG}
#
+# Overwrite kernel command line instead of appending to it
+# CMDLINE=console=/dev/tty0 root=/dev/sdb1
+#
# Specify optional initrd/initramfs.
# INITRD=/boot/initramfs.cpio.gz
#
@@ -49,7 +55,7 @@ do_install () {
PACKAGE_ARCH = "${MACHINE_ARCH}"
-FILES_${PN} += "/boot/*"
+FILES:${PN} += "/boot/*"
CMDLINE ?= ""
CMDLINE_DEBUG ?= "quiet"
diff --git a/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb b/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
index 9f5dad7c64..62d1effccc 100644
--- a/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
+++ b/meta-initramfs/recipes-bsp/kexecboot/kexecboot_git.bb
@@ -1,52 +1,24 @@
-###########################
-# Configure options:
-#
-# --enable-static-linking compile kexecboot as static executable [default=no]
-# --enable-fbui support framebuffer menu [default=yes]
-# --enable-fbui-width limit FB UI width to specified value [default=no]
-# --enable-fbui-height limit FB UI height to specified value [default=no]
-# --enable-textui support console text user interface [default=no]
-# --enable-cfgfiles support config files [default=yes]
-# --enable-icons support custom icons (depends on fbui) [default=yes]
-# --enable-zaurus compile Sharp Zaurus specific code [default=no]
-# --enable-zimage compile with zImage support [default=yes]
-# --enable-uimage compile with uImage support [default=no]
-# --enable-machine-kernel look for machine-specific zImage kernel [default=no]
-# --enable-devices-recreating
-# enable devices re-creating [default=yes]
-# --enable-debug enable debug output [default=no]
-# --enable-host-debug allow for non-destructive executing of kexecboot on
-# host system [default=no]
-# --enable-numkeys enable menu item selection by keys [0-9] [default=yes]
-# --enable-bg-buffer enable buffer for pre-drawed FB GUI background
-#
-# --enable-timeout allow to boot 1st kernel after timeout in seconds
-# [default=no]
-# --enable-delay specify delay before device scanning, allowing
-# initialization of old CF/SD cards [default=1]
-# --enable-bpp enable support of specified bpp modes
-# (all,32,24,18,16,4,2,1) [default=all]
-# --enable-evdev-rate change evdev (keyboard/mouse) repeat rate
-# in milliseconds e.g. "1000,250" [default=no]
-# --with-kexec-binary look for kexec binary at path
-# [default="/usr/sbin/kexec"]
-##########################
SUMMARY = "kexecboot linux-as-bootloader"
DESCRIPTION = "kexecboot is a graphical linux-as-bootloader implementation based on kexec."
-HOMEPAGE = "http://kexecboot.org"
-LICENSE = "GPLv2"
+HOMEPAGE = "https://github.com/kexecboot/kexecboot/wiki"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
PV = "0.6+git${SRCPV}"
S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/kexecboot/kexecboot.git"
-SRCREV = "4c4f127e79ac5b8d6b6e2fbb938ccbf12b04c531"
+SRC_URI = "git://github.com/kexecboot/kexecboot.git;branch=master;protocol=https"
+SRC_URI:append:libc-klibc = "\
+ file://0001-kexecboot-Use-new-reboot-API-with-klibc.patch \
+ file://0001-make-Add-compiler-includes-in-cflags.patch \
+"
+SRCREV = "5a5e04be206140059f42ac786d424da1afaa04b6"
inherit autotools
EXTRA_OECONF = "--enable-textui --enable-delay=2 --enable-evdev-rate=1000,250"
+CFLAGS += "-fcommon"
+
do_install () {
- install -d ${D}${bindir}
- install -m 0755 kexecboot ${D}${bindir}
+ install -D -m 0755 ${B}/src/kexecboot ${D}${bindir}/kexecboot
install -d ${D}/proc
install -d ${D}/mnt
install -d ${D}/dev
@@ -55,9 +27,9 @@ do_install () {
PACKAGE_ARCH = "${MACHINE_ARCH}"
-FILES_${PN} += " ${bindir}/kexecboot /init /proc /mnt /dev /sys"
+FILES:${PN} += " ${bindir}/kexecboot /init /proc /mnt /dev /sys"
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
ln -sf ${bindir}/kexecboot $D/init
}
diff --git a/meta-initramfs/recipes-core/images/initramfs-debug-image.bb b/meta-initramfs/recipes-core/images/initramfs-debug-image.bb
new file mode 100644
index 0000000000..fc9e81e5de
--- /dev/null
+++ b/meta-initramfs/recipes-core/images/initramfs-debug-image.bb
@@ -0,0 +1,25 @@
+# Simple initramfs image. Mostly used for live images.
+DESCRIPTION = "Small image capable of booting a device. The kernel includes \
+the Minimal RAM-based Initial Root Filesystem (initramfs), which one can use \
+to check the hardware efficiently."
+
+PACKAGE_INSTALL = "initramfs-debug busybox base-passwd ${ROOTFS_BOOTSTRAP_INSTALL}"
+
+# Do not pollute the initrd image with rootfs features
+IMAGE_FEATURES = ""
+
+export IMAGE_BASENAME = "initramfs-debug-image"
+IMAGE_LINGUAS = ""
+
+# 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"))
+}
+
+inherit core-image
+
+IMAGE_ROOTFS_SIZE = "8192"
+IMAGE_ROOTFS_EXTRA_SPACE = "0"
+
+BAD_RECOMMENDATIONS += "busybox-syslog"
diff --git a/meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb b/meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb
new file mode 100644
index 0000000000..7e6e03d8e7
--- /dev/null
+++ b/meta-initramfs/recipes-core/images/initramfs-kexecboot-image.bb
@@ -0,0 +1,30 @@
+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
+# an assignment to IMAGE_FSTYPES so we need anon python
+python () {
+ d.setVar("IMAGE_FSTYPES", d.getVar("INITRAMFS_FSTYPES"))
+}
+
+inherit image
+
+# avoid circular dependencies
+EXTRA_IMAGEDEPENDS = ""
+KERNELDEPMODDEPEND = ""
+
+# We really need just kexecboot, kexec and ubiattach
+IMAGE_INSTALL = "kexecboot kexec mtd-utils-ubifs"
+
+# Do not pollute the initrd image with rootfs features
+IMAGE_FEATURES = ""
+
+IMAGE_LINGUAS = ""
+
+FEED_DEPLOYDIR_BASE_URI = ""
+LDCONFIGDEPEND = ""
+IMAGE_ROOTFS_EXTRA_SPACE = "0"
+
+# disable runtime dependency on run-postinsts -> update-rc.d
+ROOTFS_BOOTSTRAP_INSTALL = ""
+
diff --git a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb b/meta-initramfs/recipes-core/images/initramfs-kexecboot-klibc-image.bb
index 3a8d9f7438..3a8d9f7438 100644
--- a/meta-initramfs/recipes-bsp/images/initramfs-kexecboot-klibc-image.bb
+++ b/meta-initramfs/recipes-core/images/initramfs-kexecboot-klibc-image.bb
diff --git a/meta-initramfs/recipes-core/images/meta-initramfs-image.bb b/meta-initramfs/recipes-core/images/meta-initramfs-image.bb
new file mode 100644
index 0000000000..4c041eb5fc
--- /dev/null
+++ b/meta-initramfs/recipes-core/images/meta-initramfs-image.bb
@@ -0,0 +1,6 @@
+SUMMARY = "meta-initramfs build test image"
+
+IMAGE_INSTALL = "packagegroup-core-boot \
+ packagegroup-meta-initramfs"
+
+inherit core-image
diff --git a/meta-initramfs/recipes-bsp/initrdscripts/files/init-debug.sh b/meta-initramfs/recipes-core/initrdscripts/files/init-debug.sh
index 7edbd70cb0..7edbd70cb0 100644
--- a/meta-initramfs/recipes-bsp/initrdscripts/files/init-debug.sh
+++ b/meta-initramfs/recipes-core/initrdscripts/files/init-debug.sh
diff --git a/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb b/meta-initramfs/recipes-core/initrdscripts/initramfs-debug_1.0.bb
index 667690f888..4c06346570 100644
--- a/meta-initramfs/recipes-bsp/initrdscripts/initramfs-debug_1.0.bb
+++ b/meta-initramfs/recipes-core/initrdscripts/initramfs-debug_1.0.bb
@@ -11,4 +11,4 @@ do_install() {
inherit allarch
-FILES_${PN} += " /init "
+FILES:${PN} += " /init "
diff --git a/meta-initramfs/recipes-core/packagegroups/packagegroup-meta-initramfs.bb b/meta-initramfs/recipes-core/packagegroups/packagegroup-meta-initramfs.bb
new file mode 100644
index 0000000000..4b76246a03
--- /dev/null
+++ b/meta-initramfs/recipes-core/packagegroups/packagegroup-meta-initramfs.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Meta-initramfs packagegroups"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+ packagegroup-meta-initramfs \
+ packagegroup-meta-initramfs-devtools \
+'
+
+RDEPENDS:packagegroup-meta-initramfs = "\
+ packagegroup-meta-initramfs-devtools \
+"
+
+RDEPENDS:packagegroup-meta-initramfs-devtools = "\
+ dracut \
+ ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "grubby", "", d)} \
+ "
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch b/meta-initramfs/recipes-devtools/dracut/dracut/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch
new file mode 100644
index 0000000000..bd768d00d2
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/dracut/dracut/0001-Guard-against-__GLIBC_PREREQ-for-musl-libc.patch
@@ -0,0 +1,35 @@
+From ff5e1a662ba93ba79e2aeaaaec48a2a8ec4b4701 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 31 Mar 2022 22:22:44 +0800
+Subject: [PATCH] Guard against __GLIBC_PREREQ for musl libc
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/install/util.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/install/util.c b/src/install/util.c
+index 5721de89..784aec48 100644
+--- a/src/install/util.c
++++ b/src/install/util.c
+@@ -27,6 +27,7 @@
+
+ #include "util.h"
+
++#if defined(__GLIBC__)
+ #if __GLIBC_PREREQ(2, 30) == 0
+ #include <sys/syscall.h>
+ #ifndef SYS_gettid
+@@ -35,6 +36,7 @@
+
+ #define gettid() ((pid_t) syscall(SYS_gettid))
+ #endif /*__GLIBC_PREREQ */
++#endif /*__GLIBC__*/
+
+ size_t page_size(void)
+ {
+--
+2.25.1
+
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 32714038b9..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
@@ -1,4 +1,4 @@
-From 06011ce55b1e892e863568a73d64eebc6389544f Mon Sep 17 00:00:00 2001
+From 9f7740c4c2fda64029c23674e9858ce8bd4367df Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Jul 2017 17:14:05 -0700
Subject: [PATCH] util.h: include <sys/reg.h> when libc != glibc
@@ -11,13 +11,15 @@ https://github.com/voidlinux/void-packages/blob/master/srcpkgs/dracut/patches/mu
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- install/util.h | 3 +++
+Upstream-Status: Pending
+
+ src/install/util.h | 3 +++
1 file changed, 3 insertions(+)
-diff --git a/install/util.h b/install/util.h
-index 2ad3254d..062626ec 100644
---- a/install/util.h
-+++ b/install/util.h
+diff --git a/src/install/util.h b/src/install/util.h
+index a6f9a184..82732913 100644
+--- a/src/install/util.h
++++ b/src/install/util.h
@@ -36,6 +36,9 @@
#include <sys/stat.h>
#include <dirent.h>
@@ -29,5 +31,5 @@ index 2ad3254d..062626ec 100644
#include "macro.h"
--
-2.13.2
+2.17.1
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_056.bb b/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
new file mode 100644
index 0000000000..db08fffe9a
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/dracut/dracut_056.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Initramfs generator using udev"
+HOMEPAGE = "https://dracut.wiki.kernel.org/index.php/Main_Page"
+DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d."
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PE = "1"
+
+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"
+DEPENDS:append:libc-musl = " fts"
+
+inherit bash-completion pkgconfig
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF = "--prefix=${prefix} \
+ --libdir=${prefix}/lib \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sbindir=${sbindir} \
+ --disable-documentation \
+ --bindir=${bindir} \
+ --includedir=${includedir} \
+ --localstatedir=${localstatedir} \
+ "
+
+# RDEPEND on systemd optionally
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd"
+
+EXTRA_OEMAKE += 'libdir=${prefix}/lib LDLIBS="${LDLIBS}"'
+
+CFLAGS:append = " -fPIC"
+LDLIBS:append:libc-musl = " -lfts"
+
+do_configure() {
+ ./configure ${EXTRA_OECONF}
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+ # Its Makefile uses cp -arx to install modules.d, so fix the owner
+ # to root:root
+ chown -R root:root ${D}/${prefix}/lib/dracut/modules.d
+}
+
+FILES:${PN} += "${prefix}/lib/kernel \
+ ${prefix}/lib/dracut \
+ ${systemd_unitdir} \
+ "
+FILES:${PN}-dbg += "${prefix}/lib/dracut/.debug"
+
+CONFFILES:${PN} += "${sysconfdir}/dracut.conf"
+
+RDEPENDS:${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash ldd"
+
+# This could be optimized a bit, but let's avoid non-booting systems :)
+RRECOMMENDS:${PN} = " \
+ kernel-modules \
+ coreutils \
+ "
+
+CVE_STATUS[CVE-2010-4176] = "not-applicable-platform: Applies only to Fedora"
diff --git a/meta-initramfs/recipes-devtools/dracut/dracut_git.bb b/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
deleted file mode 100644
index ccf9f6ab1b..0000000000
--- a/meta-initramfs/recipes-devtools/dracut/dracut_git.bb
+++ /dev/null
@@ -1,69 +0,0 @@
-SUMMARY = "Initramfs generator using udev"
-HOMEPAGE = "https://dracut.wiki.kernel.org/index.php/Main_Page"
-DESCRIPTION = "Dracut is an event driven initramfs infrastructure. dracut (the tool) is used to create an initramfs image by copying tools and files from an installed system and combining it with the dracut framework, usually found in /usr/lib/dracut/modules.d."
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PE = "1"
-PV = "046+git${SRCREV}"
-
-# v046 tag
-SRCREV = "a0799ffb554487a370c2a1adafaedd2021b6dc8c"
-SRC_URI = "git://git.kernel.org/pub/scm/boot/dracut/dracut.git;protocol=http \
- file://0001-util.h-include-sys-reg.h-when-libc-glibc.patch \
- "
-
-DEPENDS += "kmod"
-DEPENDS_append_libc-musl = " fts"
-
-inherit bash-completion pkgconfig
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF = "--prefix=${prefix} \
- --libdir=${prefix}/lib \
- --datadir=${datadir} \
- --sysconfdir=${sysconfdir} \
- --sbindir=${sbindir} \
- --disable-documentation \
- --bindir=${bindir} \
- --includedir=${includedir} \
- --localstatedir=${localstatedir} \
- "
-
-# RDEPEND on systemd optionally
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,,systemd"
-
-EXTRA_OEMAKE += 'libdir=${prefix}/lib LDLIBS="${LDLIBS}"'
-
-LDLIBS_append_libc-musl = " -lfts"
-
-do_configure() {
- ./configure ${EXTRA_OECONF}
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
- # Its Makefile uses cp -arx to install modules.d, so fix the owner
- # to root:root
- chown -R root:root ${D}/${prefix}/lib/dracut/modules.d
-}
-
-FILES_${PN} += "${prefix}/lib/kernel \
- ${prefix}/lib/dracut \
- ${systemd_unitdir} \
- "
-FILES_${PN}-dbg += "${prefix}/lib/dracut/.debug"
-
-CONFFILES_${PN} += "${sysconfdir}/dracut.conf"
-
-RDEPENDS_${PN} = "findutils cpio util-linux-blkid util-linux-getopt util-linux bash ldd"
-
-# This could be optimized a bit, but let's avoid non-booting systems :)
-RRECOMMENDS_${PN} = " \
- kernel-modules \
- busybox \
- coreutils \
- "
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 dc3a70bb52..0000000000
--- a/meta-initramfs/recipes-devtools/grubby/grubby_8.40.bb
+++ /dev/null
@@ -1,40 +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 = "GPLv2+"
-
-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; \
- 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}-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 8430b7e102..ff673e21bb 100644
--- a/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
+++ b/meta-initramfs/recipes-devtools/grubby/grubby_git.bb
@@ -5,29 +5,30 @@ zipl (s390) boot loaders. It is primarily designed to be used from scripts which
new kernels and need to find information about the current boot environment. \
"
HOMEPAGE = "https://github.com/rhboot/grubby"
-LICENSE = "GPLv2+"
+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; \
- 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"
+RDEPENDS:${PN} += "dracut"
inherit autotools-brokensep ptest
-EXTRA_OEMAKE = "-e 'CC=${CC}' 'LDFLAGS=${LDFLAGS}' LIBS='${LIBS}'"
+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}
@@ -35,6 +36,11 @@ do_install_ptest() {
sed -i 's|./grubby|grubby|' ${D}${PTEST_PATH}/test.sh
}
-RDEPENDS_${PN}-ptest = "util-linux-getopt bash"
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN}-ptest = "util-linux-getopt bash"
+
+inherit update-alternatives
+ALTERNATIVE:${PN} = "installkernel"
+ALTERNATIVE_LINK_NAME[installkernel] = "${sbindir}/installkernel"
COMPATIBLE_HOST = '(x86_64.*|i.86.*)-(linux|freebsd.*)'
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/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 e7a0cce837..c782cf03c8 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/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,12 +12,12 @@ 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/usr/include/net/if.h b/usr/include/net/if.h
-index 116a176..6246b12 100644
--- a/usr/include/net/if.h
+++ b/usr/include/net/if.h
@@ -1,6 +1,17 @@
@@ -38,8 +38,6 @@ index 116a176..6246b12 100644
#include <sys/socket.h>
#include <sys/types.h>
#include <linux/if.h>
-diff --git a/usr/include/netinet/in.h b/usr/include/netinet/in.h
-index 2952bb2..0c95bc9 100644
--- a/usr/include/netinet/in.h
+++ b/usr/include/netinet/in.h
@@ -5,6 +5,42 @@
@@ -82,6 +80,6 @@ index 2952bb2..0c95bc9 100644
+#define __UAPI_DEF_IF_IFREQ 1
+#endif
+
+ #include <sys/types.h>
#include <klibc/extern.h>
#include <stdint.h>
- #include <endian.h> /* Must be included *before* <linux/in.h> */
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/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/klibc-2.0.4/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/klibc-2.0.4/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 fcf4f891a4..5ac0d4596a 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/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,11 +11,11 @@ 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/usr/klibc/arch/arm/MCONFIG b/usr/klibc/arch/arm/MCONFIG
-index 303c6ac..48d2685 100644
--- a/usr/klibc/arch/arm/MCONFIG
+++ b/usr/klibc/arch/arm/MCONFIG
@@ -10,7 +10,7 @@
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
new file mode 100644
index 0000000000..4fc4b45fb1
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-fcntl-Fix-build-failure-for-some-architectures-with-.patch
@@ -0,0 +1,34 @@
+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/klibc-2.0.4/0001-include-linux-sysinfo.h-directly.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-include-linux-sysinfo.h-directly.patch
index 04c97fc5ee..d49dfc1924 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-include-linux-sysinfo.h-directly.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-include-linux-sysinfo.h-directly.patch
@@ -12,17 +12,17 @@ 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/usr/include/sys/sysinfo.h b/usr/include/sys/sysinfo.h
-index dba68dc..d145c0b 100644
--- a/usr/include/sys/sysinfo.h
+++ b/usr/include/sys/sysinfo.h
-@@ -5,7 +5,7 @@
- #ifndef _SYS_SYSINFO_H
+@@ -6,7 +6,7 @@
#define _SYS_SYSINFO_H
+ #include <sys/types.h>
-#include <linux/kernel.h>
+#include <linux/sysinfo.h>
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
new file mode 100644
index 0000000000..15b5144e44
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-Kbuild-Accept-EXTRA_KLIBCAFLAGS.patch
@@ -0,0 +1,26 @@
+From cdc6edc2cfcd0ce88d6e66654d605dad303b1a75 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 11 Sep 2018 17:03:36 -0700
+Subject: [PATCH] klibc/Kbuild: Accept EXTRA_KLIBCAFLAGS
+
+For passing additional assembler flags
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ usr/klibc/Kbuild | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/usr/klibc/Kbuild
++++ b/usr/klibc/Kbuild
+@@ -183,7 +183,8 @@ $(SOHASH): $(SOLIB) $(SOLIB).hash
+ targets += interp.o
+
+ quiet_cmd_interp = BUILD $@
+- cmd_interp = $(KLIBCCC) $(klibccflags) -D__ASSEMBLY__ \
++ cmd_interp = $(KLIBCCC) $(klibccflags) $(EXTRA_KLIBCAFLAGS) \
++ -D__ASSEMBLY__ \
+ -DLIBDIR=\"$(SHLIBDIR)\" \
+ -DSOHASH=\"$(SOLIBHASH)\" \
+ $(KLIBCSTACKFLAGS) \
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
new file mode 100644
index 0000000000..80e6c6b11c
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc-add-getrandom-syscall.patch
@@ -0,0 +1,24 @@
+From e4d5d5224609d7d5c824dd231f5baec868befdfa Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 4 Sep 2018 23:56:00 +0200
+Subject: [PATCH 1/1] klibc: add getrandom() syscall
+
+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(+)
+
+--- a/usr/klibc/SYSCALLS.def
++++ b/usr/klibc/SYSCALLS.def
+@@ -275,6 +275,7 @@ int syslog::klogctl(int, char *, int);
+ int sysinfo(struct sysinfo *);
+ long kexec_load(void *, unsigned long, struct kexec_segment *, unsigned long);
+ <x86_64,ppc64,s390x> long kexec_file_load(int, int, unsigned long, const char *, unsigned long);
++ssize_t getrandom(void *, size_t, unsigned int);
+
+ /*
+ * Low-level I/O (generally architecture-specific);
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
new file mode 100644
index 0000000000..16885488e4
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-klibc_2.0.4-add-kexec_file_load-syscall.patch
@@ -0,0 +1,24 @@
+From 90683d5eaabfa684a71411d6e3262153ac191ad8 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Tue, 4 Sep 2018 23:44:30 +0200
+Subject: [PATCH 1/1] klibc_2.0.4: add kexec_file_load syscall
+
+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(+)
+
+--- a/usr/klibc/SYSCALLS.def
++++ b/usr/klibc/SYSCALLS.def
+@@ -274,6 +274,7 @@ int reboot::__reboot(int, int, int, void
+ int syslog::klogctl(int, char *, int);
+ int sysinfo(struct sysinfo *);
+ long kexec_load(void *, unsigned long, struct kexec_segment *, unsigned long);
++<x86_64,ppc64,s390x> long kexec_file_load(int, int, unsigned long, const char *, unsigned long);
+
+ /*
+ * Low-level I/O (generally architecture-specific);
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/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/klibc-2.0.4/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/0001-workaround-for-overlapping-sections-in-binary.patch b/meta-initramfs/recipes-devtools/klibc/files/0001-workaround-for-overlapping-sections-in-binary.patch
new file mode 100644
index 0000000000..2f203ef0a4
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/0001-workaround-for-overlapping-sections-in-binary.patch
@@ -0,0 +1,47 @@
+From 911130ce429cbf6a92d0fbd17f0ff638ec941df2 Mon Sep 17 00:00:00 2001
+From: Petr Ovtchenkov <ptr@void-ptr.info>
+Date: Sun, 7 Feb 2021 00:04:36 -0800
+Subject: [PATCH] workaround for overlapping sections in binary
+
+Problem: binary (typesize.bin) created from object file (typesize.o)
+with 'objcopy -O binary ... '. But typesize.o has relocatable objects that all
+copied with offset 0. This will lead to overlapping sections in binary.
+By fortunate syscalls.pl check magic bytes and ring the bell.
+
+This is naive workaround: skip .note.gnu.property section that overlap
+.rodata section.
+
+This not a bug of objcopy, https://sourceware.org/bugzilla/show_bug.cgi?id=27314
+
+Related commit:
+
+ commit de6f630e6be90d6d32d8bf2fed3f856b0c32f7ba
+ Author: H. Peter Anvin <hpa at zytor.com>
+ Date: Sat Jun 10 11:15:19 2006 -0700
+
+ [klibc] Detect the sizes of various types, and make available to sysstub.ph.
+
+ This additional code effectively queries the C compiler for the sizes of
+ various types, and makes an associative array %typesize available to
+ sysstub.ph. This is currently not used, but it's expected that some
+ architectures, e.g. s390, will need this to determine which registers
+ go where, and how many registers are needed.
+
+Upstream-Status: Submitted [https://lists.zytor.com/archives/klibc/2021-February/004583.html]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ usr/klibc/syscalls/Kbuild | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/usr/klibc/syscalls/Kbuild
++++ b/usr/klibc/syscalls/Kbuild
+@@ -71,7 +71,7 @@ $(obj)/typesize.c: $(srctree)/$(KLIBCSRC
+
+ # Convert typesize.o to typesize.bin
+ quiet_cmd_mkbin = OBJCOPY $@
+- cmd_mkbin = $(KLIBCOBJCOPY) -O binary --only-section .rodata $< $@
++ cmd_mkbin = $(KLIBCOBJCOPY) -O binary --remove-section .note.gnu.property $< $@
+
+ $(obj)/typesize.bin: $(obj)/typesize.o FORCE
+ $(call if_changed,mkbin)
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/armv4-fix-v4bx.patch b/meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch
index e842353061..585fb2d439 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/armv4-fix-v4bx.patch
+++ b/meta-initramfs/recipes-devtools/klibc/files/armv4-fix-v4bx.patch
@@ -9,15 +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(+)
-diff --git a/usr/klibc/arch/arm/MCONFIG b/usr/klibc/arch/arm/MCONFIG
-index 53bc1dc..303c6ac 100644
--- a/usr/klibc/arch/arm/MCONFIG
+++ b/usr/klibc/arch/arm/MCONFIG
-@@ -29,6 +29,7 @@ else
- KLIBCSHAREDFLAGS = -Ttext 0x01800200
+@@ -27,6 +27,7 @@ else
+ KLIBCSHAREDFLAGS = $(LD_IMAGE_BASE_OPT) 0x01800000
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
new file mode 100644
index 0000000000..f39701a65e
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/cross-clang.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+--- a/scripts/Kbuild.klibc
++++ b/scripts/Kbuild.klibc
+@@ -113,10 +113,8 @@ KLIBCCPPFLAGS := -nostdinc -iwithpref
+ -I$(KLIBCINC)/arch/$(KLIBCARCHDIR) \
+ -I$(KLIBCINC)/bits$(KLIBCBITSIZE) \
+ -I$(KLIBCOBJ)/../include \
+- -I$(KLIBCINC)
+-ifeq ($(cc-name),clang)
+-KLIBCCPPFLAGS += -isystem $(shell $(KLIBCCC) $(KLIBCCFLAGS) --print-file-name=include)
+-endif
++ -I$(KLIBCINC) \
++ -I$(shell $(KLIBCCC) $(KLIBCCFLAGS) --print-file-name=include)
+
+ # kernel include paths
+ KLIBCKERNELSRC ?= $(srctree)
+@@ -137,7 +135,7 @@ KLIBCCFLAGS += $(KLIBCCPPFLAGS) $(K
+ KLIBCAFLAGS += -D__ASSEMBLY__ $(KLIBCCFLAGS)
+ KLIBCSTRIPFLAGS += --strip-all -R .comment -R .note
+
+-KLIBCLIBGCC_DEF := $(shell $(KLIBCCC) $(KLIBCCFLAGS) $(if $(filter gcc,$(cc-name)),--print-libgcc,--print-libgcc-file-name))
++KLIBCLIBGCC_DEF := $(shell $(KLIBCCC) $(KLIBCCFLAGS) --print-libgcc-file-name)
+ KLIBCLIBGCC ?= $(KLIBCLIBGCC_DEF)
+ KLIBCCRT0 := $(KLIBCOBJ)/arch/$(KLIBCARCHDIR)/crt0.o
+ KLIBCLIBC := $(KLIBCOBJ)/libc.a
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/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/klibc-2.0.4/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/klcc-cross-accept-clang-options.patch b/meta-initramfs/recipes-devtools/klibc/files/klcc-cross-accept-clang-options.patch
new file mode 100644
index 0000000000..a3a0695637
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/files/klcc-cross-accept-clang-options.patch
@@ -0,0 +1,38 @@
+meta-clang passes this option to compiler defaults
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/klcc/klcc.in
++++ b/klcc/klcc.in
+@@ -207,6 +207,30 @@ while ( defined($a = shift(@ARGV)) ) {
+ } elsif ( $a =~ /^--([sysroot=])(.*)$/ ) {
+ # Override gcc encoded sysroot
+ push(@ccopt, $a);
++ } elsif ( $a eq '-nostartfiles' ) {
++ # Allow clang options
++ push(@ccopt, $a);
++ } elsif ( $a eq '-nostdlib' ) {
++ # Allow clang options
++ push(@ccopt, $a);
++ } elsif ( $a eq '-nodefaultlibs' ) {
++ # Allow clang options
++ push(@ccopt, $a);
++ } elsif ( $a eq '-no-pie' ) {
++ # Allow clang options
++ push(@ccopt, $a);
++ } elsif ( $a eq '-no-integrated-as' ) {
++ # Allow clang options
++ push(@ccopt, $a);
++ } elsif ( $a =~ '--unwindlib=.*' ) {
++ # Allow clang options
++ push(@ccopt, $a);
++ } elsif ( $a =~ '-rtlib=.*' ) {
++ # Allow clang options
++ push(@ccopt, $a);
++ } elsif ( $a =~ '--dyld-prefix=.*' ) {
++ # Allow clang options
++ push(@ccopt, $a);
+ } else {
+ die "$0: unknown option: $a\n";
+ }
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/use-env-for-perl.patch b/meta-initramfs/recipes-devtools/klibc/files/use-env-for-perl.patch
index eac128cc09..d2a19909f0 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/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
@@ -10,8 +12,6 @@ that /usr/bin/env perl will always return ours (if it has been built).
Signed-off-by: Tom Rini <tom_rini@mentor.com>
-Index: klibc-1.5.20/klcc/makeklcc.pl
-===================================================================
--- a/klcc/makeklcc.pl
+++ b/klcc/makeklcc.pl
@@ -26,7 +26,7 @@ sub pathsearch($) {
diff --git a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.10.bb b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.10.bb
new file mode 100644
index 0000000000..4011aa231e
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.10.bb
@@ -0,0 +1,32 @@
+SUMMARY = "The klcc crosscompiler for klibc"
+
+require klibc.inc
+DEPENDS = "klibc"
+
+# no packaging for this crossscript
+PACKAGES = ""
+inherit nopackages
+
+SRC_URI += "file://use-env-for-perl.patch"
+
+# disable task already run in klibc recipe
+do_configure[noexec] = "1"
+
+do_compile() {
+ oe_runmake 'INSTALLDIR=${STAGING_DIR_TARGET}${libdir}/klibc' klcc
+}
+
+do_install() {
+ install -d ${D}${bindir_crossscripts}/
+ install -m 0755 klcc/klcc ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc
+ # Turn the horribly encoded paths into something which sstate can transform using its ususal
+ # magic by removing all the crazy escaping.
+ sed -i -e "2i \$TARGETSYSROOT = '${STAGING_DIR_TARGET}';" \
+ -e "2i \$NATIVESYSROOT = '${STAGING_DIR_NATIVE}';" \
+ -e 's#${@d.getVar("STAGING_DIR_NATIVE").replace("/", "\\\\/").replace("-", "\\\\-").replace(".", "\\\\.")}#${NATIVESYSROOT}#g;' \
+ -e 's#${@d.getVar("STAGING_DIR_TARGET").replace("/", "\\\\/").replace("-", "\\\\-").replace(".", "\\\\.")}#${TARGETSYSROOT}#g' \
+ ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc
+}
+
+SYSROOT_DIRS += "${bindir_crossscripts}"
+SSTATE_SCAN_FILES += "*-klcc"
diff --git a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb b/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb
deleted file mode 100644
index b285b2e8be..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klcc-cross_2.0.4.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "The klcc crosscompiler for klibc"
-
-require klibc.inc
-DEPENDS = "klibc"
-
-# no packaging for this crossscript
-PACKAGES = ""
-inherit nopackages
-
-FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:"
-
-SRC_URI += "file://use-env-for-perl.patch"
-
-# disable task already run in klibc recipe
-do_configure[noexec] = "1"
-
-do_compile() {
- oe_runmake 'INSTALLDIR=${STAGING_DIR_TARGET}${libdir}/klibc' klcc
-}
-
-do_install() {
- install -d ${D}${bindir_crossscripts}/
- install -m 0755 klcc/klcc ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc
- # Turn the horribly encoded paths into something which sstate can transform using its ususal
- # magic by removing all the crazy escaping.
- sed -i -e "2i \$TARGETSYSROOT = '${STAGING_DIR_TARGET}';" \
- -e "2i \$NATIVESYSROOT = '${STAGING_DIR_NATIVE}';" \
- -e 's#${@d.getVar("STAGING_DIR_NATIVE", True).replace("/", "\\\\/").replace("-", "\\\\-").replace(".", "\\\\.")}#${NATIVESYSROOT}#g;' \
- -e 's#${@d.getVar("STAGING_DIR_TARGET", True).replace("/", "\\\\/").replace("-", "\\\\-").replace(".", "\\\\.")}#${TARGETSYSROOT}#g' \
- ${D}${bindir_crossscripts}/${TARGET_PREFIX}klcc
-}
-
-SYSROOT_DIRS += "${bindir_crossscripts}"
-SSTATE_SCAN_FILES += "*-klcc"
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch
deleted file mode 100644
index 181dcfb6de..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 4b4147b76518d31a88fb2c58cdbf2236e159a25c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 8 Sep 2017 23:10:54 -0700
-Subject: [PATCH] Kbuild.klibc: Add path to compiler headers via -isystem
-
-We need to include this path so it can find compiler headers e.g.
-stdarg.h which is called from wrapper stdarg.h using include_next
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- scripts/Kbuild.klibc | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/scripts/Kbuild.klibc b/scripts/Kbuild.klibc
-index 101f86f..1d5cdc4 100644
---- a/scripts/Kbuild.klibc
-+++ b/scripts/Kbuild.klibc
-@@ -105,7 +105,8 @@ KLIBCOBJCOPY := $(OBJCOPY)
- KLIBCOBJDUMP := $(OBJDUMP)
-
- # klibc include paths
--KLIBCCPPFLAGS := -nostdinc -iwithprefix include \
-+KLIBCCPPFLAGS := -nostdinc -iwithprefix include \
-+ -isystem $(shell $(CC) -print-file-name=include) \
- -I$(KLIBCINC)/arch/$(KLIBCARCHDIR) \
- -I$(KLIBCINC)/bits$(KLIBCBITSIZE) \
- -I$(KLIBCOBJ)/../include \
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch
deleted file mode 100644
index 1ba05a811e..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From b6185401fc3daa7fa8ba2b84db3e4da3b94a9867 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 26 Jul 2017 16:13:16 -0700
-Subject: [PATCH] Kbuild.klibc: Use -print-libgcc-file-name instead of
- --print-libgcc
-
--print-libgcc-file-name works with clang and gcc unlike --print-libgcc
-which is gcc specific
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- scripts/Kbuild.klibc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/Kbuild.klibc b/scripts/Kbuild.klibc
-index f500d53..101f86f 100644
---- a/scripts/Kbuild.klibc
-+++ b/scripts/Kbuild.klibc
-@@ -128,7 +128,7 @@ KLIBCCFLAGS += $(KLIBCCPPFLAGS) $(KLIBCREQFLAGS) $(KLIBCARCHREQFLAGS) \
- KLIBCAFLAGS += -D__ASSEMBLY__ $(KLIBCCFLAGS)
- KLIBCSTRIPFLAGS += --strip-all -R .comment -R .note
-
--KLIBCLIBGCC_DEF := $(shell $(KLIBCCC) $(KLIBCCFLAGS) --print-libgcc)
-+KLIBCLIBGCC_DEF := $(shell $(KLIBCCC) $(KLIBCCFLAGS) -print-libgcc-file-name)
- KLIBCLIBGCC ?= $(KLIBCLIBGCC_DEF)
- KLIBCCRT0 := $(KLIBCOBJ)/arch/$(KLIBCARCHDIR)/crt0.o
- KLIBCLIBC := $(KLIBCOBJ)/libc.a
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-dash-Specify-format-string-in-fmtstr.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-dash-Specify-format-string-in-fmtstr.patch
deleted file mode 100644
index 46a23987f5..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/0001-dash-Specify-format-string-in-fmtstr.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 8beffe501c1ac5b35d62004735c4157c74183901 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 9 Jul 2017 13:51:25 -0700
-Subject: [PATCH] dash: Specify format string in fmtstr()
-
-Fixes build with hardening flags
-
-usr/dash/jobs.c:429:3: error: format not a string literal and no format arguments [-Werror=format-security]
- col = fmtstr(s, 32, strsignal(st));
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- usr/dash/jobs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/usr/dash/jobs.c b/usr/dash/jobs.c
-index 009bbfe..299bcac 100644
---- a/usr/dash/jobs.c
-+++ b/usr/dash/jobs.c
-@@ -426,7 +426,7 @@ sprint_status(char *s, int status, int sigonly)
- goto out;
- #endif
- }
-- col = fmtstr(s, 32, strsignal(st));
-+ col = fmtstr(s, 32, "%s", strsignal(st));
- #ifdef WCOREDUMP
- if (WCOREDUMP(status)) {
- col += fmtstr(s + col, 16, " (core dumped)");
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch
deleted file mode 100644
index f28cd54233..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-config-eabi.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 1118cc971917abe19ddb029aa80417f6fd6bb343 Mon Sep 17 00:00:00 2001
-From: Thomas Kunze <thommycheck@gmx.de>
-Date: Sat, 6 Aug 2011 05:30:14 +0000
-Subject: [PATCH] klibc: initial commit of version 1.5.24
-
-Patch was imported from the OpenEmbedded git server
-(git://git.openembedded.org/openembedded)
-as of commit id b6764cf32ec93547531130dca364fb95e1c495f4
-Signed-off-by: Thomas Kunze <thommycheck@gmx.de>
-
----
- defconfig | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/defconfig b/defconfig
-index 04b98e9..0cb23d0 100644
---- a/defconfig
-+++ b/defconfig
-@@ -6,4 +6,4 @@ CONFIG_KLIBC_ZLIB=y
- CONFIG_REGPARM=y
- # ARM options
- # CONFIG_KLIBC_THUMB is not set
--# CONFIG_AEABI is not set
-+CONFIG_AEABI=y
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch
deleted file mode 100644
index a5563b7407..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/klibc-linux-libc-dev.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1be2bc41f915922102a3ba671b54c2df6f0052e6 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben@decadent.org.uk>
-Date: Sun, 14 Mar 2010 18:41:56 +0000
-Subject: [PATCH] klibc_1.5.26: now build against linux-libc-headers
-
-commit 43adf69062254fb4f8d4d11fb5fe36a60ae25d5a
-
- Taken from debian "Fix klibc Debian specific build trouble"
- Adapted for klibc_2.0.2
-
----
- scripts/Kbuild.install | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/scripts/Kbuild.install b/scripts/Kbuild.install
-index 8af5697..d32a8a5 100644
---- a/scripts/Kbuild.install
-+++ b/scripts/Kbuild.install
-@@ -95,7 +95,9 @@ header:
- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
-- $(Q)$(MAKE) -C $(KLIBCKERNELSRC) ARCH=$(KLIBCARCH) INSTALL_HDR_PATH=$(INSTALLROOT)$(INSTALLDIR)/$(KCROSS) headers_install
-+ $(Q)for x in ../../../include/asm ../../../include/asm-generic ../../../include/linux ../../../include/mtd; do \
-+ ln -sf $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \
-+ done
- $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/.
- $(Q)chmod -R a+rX,go-w $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
- $(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch b/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch
deleted file mode 100644
index 5c7a6625b5..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-2.0.4/staging.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From 1892079b827cf8f8316305b6d6e0985db82441a2 Mon Sep 17 00:00:00 2001
-From: Thomas Kunze <thommycheck@gmx.de>
-Date: Sat, 6 Aug 2011 05:30:14 +0000
-Subject: [PATCH] klibc: initial commit of version 1.5.24
-
-Patch was imported from the OpenEmbedded git server
-(git://git.openembedded.org/openembedded)
-as of commit id eefb99a313bbcc8f34c8b32bf0c5aa2dd2580735
-Signed-off-by: Thomas Kunze <thommycheck@gmx.de>
-
-Minor edits following upstream changes
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
-
----
- scripts/Kbuild.install | 4 ----
- usr/dash/Kbuild | 2 --
- usr/gzip/Kbuild | 2 --
- usr/kinit/Kbuild | 2 --
- usr/kinit/fstype/Kbuild | 2 --
- usr/kinit/ipconfig/Kbuild | 2 --
- usr/kinit/nfsmount/Kbuild | 2 --
- usr/kinit/resume/Kbuild | 2 --
- usr/kinit/run-init/Kbuild | 2 --
- usr/klibc/Kbuild | 2 --
- usr/utils/Kbuild | 2 --
- 11 files changed, 24 deletions(-)
-
-diff --git a/scripts/Kbuild.install b/scripts/Kbuild.install
-index d32a8a5..fda699d 100644
---- a/scripts/Kbuild.install
-+++ b/scripts/Kbuild.install
-@@ -88,19 +88,15 @@ else
- header:
- $(Q)echo " INSTALL headers + man pages to $(INSTALLROOT)$(INSTALLDIR)"
- $(Q)mkdir -p $(INSTALLROOT)$(bindir)
-- $(Q)mkdir -p $(INSTALLROOT)$(mandir)/man1
-- $(Q)mkdir -p $(INSTALLROOT)$(SHLIBDIR)
- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)
- $(Q)-rm -rf $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib
-- $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin
- $(Q)for x in ../../../include/asm ../../../include/asm-generic ../../../include/linux ../../../include/mtd; do \
- ln -sf $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \
- done
- $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/.
- $(Q)chmod -R a+rX,go-w $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include
-- $(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1
- $(Q)$(install-bin) $(objtree)/klcc/$(KCROSS)klcc $(INSTALLROOT)$(bindir)
-
- footer: header
-diff --git a/usr/dash/Kbuild b/usr/dash/Kbuild
-index 3a98c1f..1a6920a 100644
---- a/usr/dash/Kbuild
-+++ b/usr/dash/Kbuild
-@@ -92,5 +92,3 @@ $(obj)/syntax.c: $(obj)/mksyntax
- $(obj)/syntax.h: $(obj)/syntax.c
- $(Q):
-
--# Targets to install
--install-y := sh.shared
-diff --git a/usr/gzip/Kbuild b/usr/gzip/Kbuild
-index 9bbf0a4..c497d02 100644
---- a/usr/gzip/Kbuild
-+++ b/usr/gzip/Kbuild
-@@ -21,5 +21,3 @@ $(obj)/gunzip $(obj)/zcat: $(obj)/gzip
- # Cleaning
- targets := gzip gzip.g gunzip zcat
-
--# Targets to install
--install-y := gzip gunzip zcat
-diff --git a/usr/kinit/Kbuild b/usr/kinit/Kbuild
-index 5320127..f7fdccd 100644
---- a/usr/kinit/Kbuild
-+++ b/usr/kinit/Kbuild
-@@ -33,5 +33,3 @@ targets += kinit kinit.g kinit.shared kinit.shared.g
- subdir- := fstype ipconfig nfsmount resume run-init
-
-
--# install binary
--install-y := kinit kinit.shared
-diff --git a/usr/kinit/fstype/Kbuild b/usr/kinit/fstype/Kbuild
-index 9b20db1..367611d 100644
---- a/usr/kinit/fstype/Kbuild
-+++ b/usr/kinit/fstype/Kbuild
-@@ -21,5 +21,3 @@ shared/fstype-y := $(objs)
- # Cleaning
- clean-dirs := static shared
-
--# install binary
--install-y := $(shared-y)
-diff --git a/usr/kinit/ipconfig/Kbuild b/usr/kinit/ipconfig/Kbuild
-index 7f8d181..eb1d472 100644
---- a/usr/kinit/ipconfig/Kbuild
-+++ b/usr/kinit/ipconfig/Kbuild
-@@ -27,5 +27,3 @@ shared/ipconfig-y := $(objs)
- # Cleaning
- clean-dirs := static shared
-
--# install binary
--install-y := $(shared-y)
-diff --git a/usr/kinit/nfsmount/Kbuild b/usr/kinit/nfsmount/Kbuild
-index 461e6f3..ba31708 100644
---- a/usr/kinit/nfsmount/Kbuild
-+++ b/usr/kinit/nfsmount/Kbuild
-@@ -23,5 +23,3 @@ dummypmap-y := dummypmap_test.o
-
- clean-dirs := static shared
-
--# Install binary
--install-y := $(shared-y)
-diff --git a/usr/kinit/resume/Kbuild b/usr/kinit/resume/Kbuild
-index 034195d..c1342e1 100644
---- a/usr/kinit/resume/Kbuild
-+++ b/usr/kinit/resume/Kbuild
-@@ -26,5 +26,3 @@ shared/resume-lib := ../lib.a
- # Cleaning
- clean-dirs := static shared
-
--# install binary
--install-y := $(shared-y)
-diff --git a/usr/kinit/run-init/Kbuild b/usr/kinit/run-init/Kbuild
-index f7832b7..c153b0a 100644
---- a/usr/kinit/run-init/Kbuild
-+++ b/usr/kinit/run-init/Kbuild
-@@ -30,5 +30,3 @@ shared/run-init-lib := ../lib.a
- # Cleaning
- clean-dirs := static shared
-
--# install binary
--install-y := $(shared-y)
-diff --git a/usr/klibc/Kbuild b/usr/klibc/Kbuild
-index eba6add..98caf2e 100644
---- a/usr/klibc/Kbuild
-+++ b/usr/klibc/Kbuild
-@@ -185,5 +185,3 @@ install-rule:
- $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)lib))
- $(Q)$(install-lib) $(obj)/klibc-$(SOLIBHASH).so \
- $(INSTALLROOT)$(INSTALLDIR)/$(KLIBCCROSS)lib
-- $(Q)$(install-lib) $(obj)/klibc-$(SOLIBHASH).so \
-- $(INSTALLROOT)$(SHLIBDIR)
-diff --git a/usr/utils/Kbuild b/usr/utils/Kbuild
-index 05aa794..67d9486 100644
---- a/usr/utils/Kbuild
-+++ b/usr/utils/Kbuild
-@@ -72,5 +72,3 @@ $(obj)/shared/reboot $(obj)/shared/poweroff: $(obj)/shared/halt
- # Clean deletes the static and shared dir
- clean-dirs := static shared
-
--# install only install the shared binaries
--install-y := $(shared-y) shared/reboot shared/poweroff
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.10.bb
new file mode 100644
index 0000000000..0de580781b
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.10.bb
@@ -0,0 +1,12 @@
+SUMMARY = "klibc utils for initramfs statically compiled"
+
+FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:"
+
+PACKAGES = "${PN}"
+FILES:${PN} = ""
+
+KLIBC_UTILS_VARIANT = "static"
+KLIBC_UTILS_PKGNAME = "klibc-static-utils"
+
+require klibc-utils.inc
+require klibc.inc
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb b/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb
deleted file mode 100644
index c835fd647a..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-static-utils_2.0.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "klibc utils for initramfs statically compiled"
-
-FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:"
-
-PACKAGES = "${PN}"
-FILES_${PN} = ""
-
-KLIBC_UTILS_VARIANT = "static"
-KLIBC_UTILS_PKGNAME = "klibc-static-utils"
-
-require klibc-utils.inc
-require klibc.inc
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc b/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc
index 7df33d64e4..4e9fea88d1 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc
+++ b/meta-initramfs/recipes-devtools/klibc/klibc-utils.inc
@@ -1,16 +1,16 @@
do_install() {
install -d ${D}${base_bindir}
install -d ${D}${base_sbindir}
- # debian packages kinit + kinit.shared but only sh.shared
if [ "${KLIBC_UTILS_VARIANT}" = "shared" ]; then
- install -m 755 usr/kinit/kinit ${D}${base_bindir}/kinit
- install -m 755 usr/kinit/kinit.shared ${D}${base_bindir}/kinit.shared
- install -m 755 usr/dash/sh.shared ${D}${base_bindir}/sh.shared
+ install -m 755 usr/kinit/shared/kinit ${D}${base_bindir}/kinit.shared
+ install -m 755 usr/dash/shared/sh ${D}${base_bindir}/sh.shared
else
- install -m 755 usr/dash/sh ${D}${base_bindir}/sh
- install -m 755 usr/kinit/kinit ${D}${base_bindir}/kinit
+ install -m 755 usr/dash/static/sh ${D}${base_bindir}/sh
+ install -m 755 usr/kinit/static/kinit ${D}${base_bindir}/kinit
+ install -m 755 usr/gzip/gzip ${D}${base_bindir}
+ ln -s gzip ${D}${base_bindir}/gunzip
+ ln -s gzip ${D}${base_bindir}/zcat
fi
- install -m 755 usr/gzip/gzip ${D}${base_bindir}
install -m 755 usr/kinit/fstype/${KLIBC_UTILS_VARIANT}/fstype ${D}${base_bindir}
install -m 755 usr/kinit/ipconfig/${KLIBC_UTILS_VARIANT}/ipconfig ${D}${base_bindir}
install -m 755 usr/kinit/nfsmount/${KLIBC_UTILS_VARIANT}/nfsmount ${D}${base_bindir}
@@ -44,15 +44,13 @@ do_install() {
install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/true ${D}${base_bindir}
install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/umount ${D}${base_bindir}
install -m 755 usr/utils/${KLIBC_UTILS_VARIANT}/uname ${D}${base_bindir}
- ln -s gzip ${D}${base_bindir}/gunzip
- ln -s gzip ${D}${base_bindir}/zcat
}
EXTRA_KLIBC_DEPS = "${@oe.utils.conditional('KLIBC_UTILS_VARIANT', 'shared', '${THIS_LIBKLIBC}', '', d)}"
PACKAGES_DYNAMIC += "^${KLIBC_UTILS_PKGNAME}-.*"
-python populate_packages_prepend () {
+python populate_packages:prepend () {
base_bin_dir = d.expand('${base_bindir}')
do_split_packages(d, base_bin_dir, '(.*)', '${KLIBC_UTILS_PKGNAME}-%s', 'Klibc util for %s', extra_depends='${EXTRA_KLIBC_DEPS}', allow_links=True, allow_dirs=True)
base_sbin_dir = d.expand('${base_sbindir}')
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.10.bb b/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.10.bb
new file mode 100644
index 0000000000..2f26093cbe
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.10.bb
@@ -0,0 +1,14 @@
+SUMMARY = "klibc utils for initramfs"
+
+FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:"
+
+PACKAGES = "${PN}"
+FILES:${PN} = ""
+
+KLIBC_UTILS_VARIANT = "shared"
+KLIBC_UTILS_PKGNAME = "klibc-utils"
+
+require klibc-utils.inc
+require klibc.inc
+
+DEPENDS = "klibc"
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb b/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb
deleted file mode 100644
index 06e71cb7b8..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc-utils_2.0.4.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "klibc utils for initramfs"
-
-FILESPATH =. "${FILE_DIRNAME}/klibc-${PV}:"
-
-PACKAGES = "${PN}"
-FILES_${PN} = ""
-
-KLIBC_UTILS_VARIANT = "shared"
-KLIBC_UTILS_PKGNAME = "klibc-utils"
-
-require klibc-utils.inc
-require klibc.inc
-
-DEPENDS = "klibc"
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc.inc b/meta-initramfs/recipes-devtools/klibc/klibc.inc
index 30294b19a8..5acf679983 100644
--- a/meta-initramfs/recipes-devtools/klibc/klibc.inc
+++ b/meta-initramfs/recipes-devtools/klibc/klibc.inc
@@ -2,34 +2,39 @@ DESCRIPTION = "klibc is intended to be a minimalistic libc subset for \
use with initramfs. It is deliberately written for small size, \
minimal entaglement, and portability, not speed."
SECTION = "libs"
-LICENSE = "BSD-3-Clause & GPL-2.0 & MIT & Zlib"
+LICENSE = "BSD-3-Clause & GPL-2.0-only & MIT & Zlib"
LIC_FILES_CHKSUM = "file://usr/klibc/LICENSE;md5=d75181f10e998c21eb147f6d2e43ce8b"
DEPENDS = "linux-libc-headers perl-native"
-SRCREV = "4d19974d7020488f63651244e1f9f51727c3f66c"
-SRC_URI = "git://git.kernel.org/pub/scm/libs/klibc/klibc.git \
+SRC_URI = "${KERNELORG_MIRROR}/linux/libs/klibc/2.0/klibc-${PV}.tar.xz \
${ARMPATCHES} \
- file://klibc-linux-libc-dev.patch \
- file://staging.patch \
file://klcc-consider-sysroot.patch \
- file://0001-dash-Specify-format-string-in-fmtstr.patch \
+ file://klcc-cross-accept-clang-options.patch \
file://0001-Define-in_-structs-for-non-glibc-system-libs.patch \
file://0001-include-linux-sysinfo.h-directly.patch \
file://0001-mkfifo-Implement-mkfifo.patch \
file://0001-always-use-bfd-linker.patch \
- file://0001-Kbuild.klibc-Use-print-libgcc-file-name-instead-of-p.patch \
- file://0001-Kbuild.klibc-Add-path-to-compiler-headers-via-isyste.patch \
file://0001-arm-Do-not-set-a-fallback-march-and-mtune.patch \
-"
+ file://0001-klibc_2.0.4-add-kexec_file_load-syscall.patch \
+ file://0001-klibc-add-getrandom-syscall.patch \
+ 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 ?= ""
-ARMPATCHES_arm = "file://klibc-config-eabi.patch \
+ARMPATCHES:arm = " \
file://armv4-fix-v4bx.patch \
"
+SRC_URI[sha256sum] = "662753da8889e744dfc0db6eb4021c3377ee7ef8ed66d7d57765f8c9e25939cd"
+S = "${WORKDIR}/klibc-${PV}"
-S = "${WORKDIR}/git"
+OPTFLAGS = "${TUNE_CCARGS} -Os -fcommon"
+OPTFLAGS:append:toolchain-clang = " -fno-builtin-bcmp"
+OPTFLAGS:append:toolchain-clang:mipsarch = " -no-integrated-as"
PARALLEL_MAKE = ""
EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \
@@ -41,7 +46,7 @@ EXTRA_OEMAKE = "'KLIBCARCH=${KLIBC_ARCH}' \
'INSTALLDIR=${libdir}/klibc' \
'SHLIBDIR=${libdir}' \
'${KLIBCTHUMB}' \
- 'KLIBCOPTFLAGS=${TUNE_CCARGS} -Os' \
+ 'KLIBCOPTFLAGS=${OPTFLAGS}' \
V=1 \
"
@@ -52,23 +57,22 @@ do_configure () {
ln -sf "${STAGING_DIR_TARGET}${exec_prefix}" linux
}
-do_compile_prepend_toolchain-clang() {
+do_compile:prepend:toolchain-clang() {
sed -i -e 's#$(KLIBCROSS)gcc#$(KLIBCROSS)clang#g' ${S}/Makefile
}
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
-INSANE_SKIP_${PN} = "already-stripped"
-INSANE_SKIP_libklibc-dev = "dev-elf"
+INSANE_SKIP:${PN} = "already-stripped"
+INSANE_SKIP:libklibc-dev = "dev-elf"
KLIBC_ARCH = "${TARGET_ARCH}"
-KLIBC_ARCH_aarch64 = "arm64"
-KLIBC_ARCH_armeb = "arm"
-KLIBC_ARCH_mipsel = "mips"
-KLIBC_ARCH_x86 = "i386"
-KLIBC_ARCH_x86-64 = "x86_64"
-KLIBC_ARCH_powerpc = "ppc"
-KLIBC_ARCH_powerpc64 = "ppc64"
+KLIBC_ARCH:aarch64 = "arm64"
+KLIBC_ARCH:armeb = "arm"
+KLIBC_ARCH:mipsel = "mips"
+KLIBC_ARCH:mips64el = "mips64"
+KLIBC_ARCH:x86 = "i386"
+KLIBC_ARCH:x86-64 = "x86_64"
+KLIBC_ARCH:powerpc = "ppc"
+KLIBC_ARCH:powerpc64 = "ppc64"
+KLIBC_ARCH:powerpc64le = "ppc64"
THIS_LIBKLIBC = "libklibc (= ${PV}-${PR})"
-
-SECURITY_CFLAGS = "-fno-PIE -no-pie"
-SECURITY_LDFLAGS = "-no-pie"
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc_2.0.10.bb b/meta-initramfs/recipes-devtools/klibc/klibc_2.0.10.bb
new file mode 100644
index 0000000000..8dda9a8cdc
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/klibc/klibc_2.0.10.bb
@@ -0,0 +1,26 @@
+SUMMARY = "klibc, a small C library for use with initramfs"
+
+do_install() {
+ oe_runmake install
+ # the crosscompiler is packaged by klcc-cross
+ # remove klcc
+ rm ${D}${bindir}/klcc
+ # remove now empty dir
+ rmdir ${D}${bindir}
+ install -d ${D}${libdir}
+ install -m 755 usr/klibc/klibc-*.so ${D}${libdir}
+ (cd ${D}${libdir}; ln -s klibc-*.so klibc.so)
+ rm -rf ${D}${exec_prefix}/man
+ rm -rf ${D}${libdir}/klibc/bin
+}
+
+PACKAGES = "libklibc libklibc-staticdev libklibc-dev"
+
+FILES:libklibc = "${libdir}/klibc-*.so"
+FILES:libklibc-staticdev = "${libdir}/klibc/lib/libc.a"
+FILES:libklibc-dev = "${libdir}/klibc.so \
+ ${libdir}/klibc/lib/* \
+ ${libdir}/klibc/include/* \
+ "
+
+require klibc.inc
diff --git a/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb b/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb
deleted file mode 100644
index bc80f382fe..0000000000
--- a/meta-initramfs/recipes-devtools/klibc/klibc_2.0.4.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "klibc, a small C library for use with initramfs"
-
-do_install() {
- oe_runmake install
- # the crosscompiler is packaged by klcc-cross
- # remove klcc
- rm ${D}${bindir}/klcc
- # remove now empty dir
- rmdir ${D}${bindir}
- install -d ${D}${libdir}
- install -m 755 usr/klibc/klibc-*.so ${D}${libdir}
- (cd ${D}${libdir}; ln -s klibc-*.so klibc.so)
-}
-
-PACKAGES = "libklibc libklibc-staticdev libklibc-dev"
-
-FILES_libklibc = "${libdir}/klibc-*.so"
-FILES_libklibc-staticdev = "${libdir}/klibc/lib/libc.a"
-FILES_libklibc-dev = "${libdir}/klibc.so \
- ${libdir}/klibc/lib/* \
- ${libdir}/klibc/include/* \
- "
-
-require klibc.inc
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-make-Add-compiler-includes-in-cflags.patch b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-make-Add-compiler-includes-in-cflags.patch
new file mode 100644
index 0000000000..778d830128
--- /dev/null
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc-2.0.2/0001-make-Add-compiler-includes-in-cflags.patch
@@ -0,0 +1,32 @@
+From 884ec4c654f1d07a387fdc1dae5640606369f254 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 6 Feb 2021 10:56:36 -0800
+Subject: [PATCH] make: Add compiler includes in cflags
+
+Fixes
+ In file included from ../git/ubi-utils/ubiformat.c:47:
+| ../git/include/common.h:22:10: fatal error: 'stdbool.h' file not found
+| #include <stdbool.h>
+| ^~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5a6e77c..f0003d5 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -9,6 +9,7 @@ endif
+ if WITHOUT_LZO
+ AM_CPPFLAGS += -DWITHOUT_LZO
+ endif
++AM_CPPFLAGS += -I$(shell $(CC) -print-file-name=include)
+
+ sbin_PROGRAMS =
+ sbin_SCRIPTS =
+--
+2.30.0
+
diff --git a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
index 0475cbeaee..43ddb82a00 100644
--- a/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
+++ b/meta-initramfs/recipes-devtools/mtd/ubi-utils-klibc_2.0.2.bb
@@ -1,29 +1,31 @@
SUMMARY = "UBI utils statically compiled against klibc"
DESCRIPTION = "Small sized tools from mtd-utils for use with initramfs."
SECTION = "base"
-DEPENDS = "zlib lzo e2fsprogs util-linux"
+DEPENDS = "zlib e2fsprogs util-linux"
HOMEPAGE = "http://www.linux-mtd.infradead.org/"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://include/common.h;beginline=1;endline=17;md5=ba05b07912a44ea2bf81ce409380049c"
inherit autotools pkgconfig klibc
SRCREV = "64f61a9dc71b158c7084006cbce4ea23886f0b47"
-SRC_URI = "git://git.infradead.org/mtd-utils.git \
+SRC_URI = "git://git.infradead.org/mtd-utils.git;branch=master \
file://0001-libmissing.h-fix-klibc-build-when-using-glibc-toolch.patch \
file://0002-Instead-of-doing-preprocessor-magic-just-output-off_.patch \
file://0003-Makefile.am-only-build-ubi-utils.patch \
file://0004-mtd-utils-common.h-no-features.h-for-klibc-builds.patch \
file://0005-common.h-replace-getline-with-fgets.patch \
+ file://0001-make-Add-compiler-includes-in-cflags.patch \
"
-S = "${WORKDIR}/git/"
+S = "${WORKDIR}/git"
EXTRA_OECONF += "--disable-tests --without-jffs --without-ubifs"
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'xattr', d)}"
PACKAGECONFIG[xattr] = ",,acl,"
+PACKAGECONFIG[lzo] = "--with-lzo,--without-lzo,lzo"
EXTRA_OEMAKE = "'CC=${CC}' 'RANLIB=${RANLIB}' 'AR=${AR}' 'CFLAGS=${CFLAGS} ${@bb.utils.contains('PACKAGECONFIG', 'xattr', '', '-DWITHOUT_XATTR', d)} -I${S}/include' 'BUILDDIR=${S}'"
@@ -37,16 +39,16 @@ PACKAGES =+ "mtdinfo-klibc ubiattach-klibc ubiblock-klibc ubicrc32-klibc ubideta
ubiformat-klibc ubimkvol-klibc ubinfo-klibc ubinize-klibc ubirename-klibc \
ubirmvol-klibc ubirsvol-klibc ubiupdatevol-klibc"
-FILES_mtdinfo-klibc = "${sbindir}/mtdinfo"
-FILES_ubiattach-klibc = "${sbindir}/ubiattach"
-FILES_ubiblock-klibc = "${sbindir}/ubiblock"
-FILES_ubicrc32-klibc = "${sbindir}/ubicrc32"
-FILES_ubidetach-klibc = "${sbindir}/ubidetach"
-FILES_ubiformat-klibc = "${sbindir}/ubiformat"
-FILES_ubimkvol-klibc = "${sbindir}/ubimkvol"
-FILES_ubinfo-klibc = "${sbindir}/ubinfo"
-FILES_ubinize-klibc = "${sbindir}/ubinize"
-FILES_ubirename-klibc = "${sbindir}/ubirename"
-FILES_ubirmvol-klibc = "${sbindir}/ubirmvol"
-FILES_ubirsvol-klibc = "${sbindir}/ubirsvol"
-FILES_ubiupdatevol-klibc = "${sbindir}/ubiupdatevol"
+FILES:mtdinfo-klibc = "${sbindir}/mtdinfo"
+FILES:ubiattach-klibc = "${sbindir}/ubiattach"
+FILES:ubiblock-klibc = "${sbindir}/ubiblock"
+FILES:ubicrc32-klibc = "${sbindir}/ubicrc32"
+FILES:ubidetach-klibc = "${sbindir}/ubidetach"
+FILES:ubiformat-klibc = "${sbindir}/ubiformat"
+FILES:ubimkvol-klibc = "${sbindir}/ubimkvol"
+FILES:ubinfo-klibc = "${sbindir}/ubinfo"
+FILES:ubinize-klibc = "${sbindir}/ubinize"
+FILES:ubirename-klibc = "${sbindir}/ubirename"
+FILES:ubirmvol-klibc = "${sbindir}/ubirmvol"
+FILES:ubirsvol-klibc = "${sbindir}/ubirsvol"
+FILES:ubiupdatevol-klibc = "${sbindir}/ubiupdatevol"
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch
index 4744e7a35b..34826baed9 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0001-force-static-build.patch
@@ -1,4 +1,4 @@
-From d6af515cfcc8185f423860f80ff28719975b701f Mon Sep 17 00:00:00 2001
+From 2a62d7623e3d4c0eaa44434ab678274fe3a9edb1 Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 11 Apr 2018 22:51:00 +0200
Subject: [PATCH] force static build
@@ -11,7 +11,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index 54c206f..79188d8 100644
+index fb01134..dbf1fb6 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -47,7 +47,7 @@ TARGET_CFLAGS = @TARGET_CFLAGS@
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch
index 1d96a2b3db..ec456f382b 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch
@@ -1,4 +1,4 @@
-From 0976d2d5be1ed44c2324b609c7d16c1e93181c4b Mon Sep 17 00:00:00 2001
+From 6843cefb1d1d0017a714a2752bb008efd844f3e4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Jul 2017 16:20:08 -0700
Subject: [PATCH] Adjust the order of headers to fix build for musl
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch
index ae9e7bbc48..32035ca128 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0003-kexec-elf-rel-use-our-elf.h.patch
@@ -1,4 +1,4 @@
-From 7f91875d65778154709e4fa0ccb23f3b2a98b0dc Mon Sep 17 00:00:00 2001
+From 7e202ea55e8dd803278d9d1eac7ffd355344d6be Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 11 Apr 2018 22:51:00 +0200
Subject: [PATCH] kexec-elf-rel: use our elf.h
@@ -56,7 +56,7 @@ index 1acbd86..a60c66c 100644
#include "../../kexec-elf.h"
diff --git a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
-index 5f8e3f2..765bf6e 100644
+index 51b1354..c85f421 100644
--- a/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
+++ b/kexec/arch/ppc64/kexec-elf-rel-ppc64.c
@@ -1,5 +1,5 @@
@@ -67,7 +67,7 @@ index 5f8e3f2..765bf6e 100644
#include "../../kexec.h"
#include "../../kexec-elf.h"
diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
-index 7fdde73..cd5d729 100644
+index db85b44..761a4ed 100644
--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
@@ -1,5 +1,5 @@
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch
index 1080e8bb56..27a1cc7a56 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0004-kexec-elf-exec.c-replace-with-our-err.h.patch
@@ -1,4 +1,4 @@
-From 8b9da93ac9a4ea79ae953f80f6fe6e4f080341f2 Mon Sep 17 00:00:00 2001
+From 720e24029fca7dcd8e1cd0b556f37aa1dc2b8fe8 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Tue, 17 Apr 2018 10:57:23 +0200
Subject: [PATCH] kexec-elf-exec.c: replace with our elf.h
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch
index 4f7506d44c..4604c2a5b7 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0005-crashdump-elf.c-work-around-for-sysconf-_SC_NPROCESS.patch
@@ -1,4 +1,4 @@
-From 1cfee75d9662c3382bb7cb8f1c952333837598ae Mon Sep 17 00:00:00 2001
+From 43fb9cec1749b337bfa252fc2c1b0288847e8fa7 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Wed, 18 Apr 2018 02:21:30 +0200
Subject: [PATCH] crashdump-elf.c: work around for _SC_NPROCESSORS_CONF
@@ -18,7 +18,7 @@ Upstream-Status: Inappropriate [klibc specific]
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
- kexec/crashdump-elf.c | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++
+ kexec/crashdump-elf.c | 92 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 92 insertions(+)
diff --git a/kexec/crashdump-elf.c b/kexec/crashdump-elf.c
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch
index 4a8968bcc6..a607ce777e 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0006-kexec-syscall.h-work-around-missing-syscall-wrapper.patch
@@ -1,6 +1,6 @@
-From e6aa1f18dc44dc71be3ceada2a96383d22454399 Mon Sep 17 00:00:00 2001
+From ab24f236cbc0aa8a3eadde5d71d9d7ea1d979a51 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
-Date: Thu, 19 Apr 2018 00:25:01 +0200
+Date: Fri, 31 Aug 2018 11:33:51 +0200
Subject: [PATCH] kexec-syscall.h: work around missing syscall() wrapper
Fix
@@ -12,38 +12,57 @@ Upstream-Status: Inappropriate [klibc specific]
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
- kexec/kexec-syscall.h | 8 ++++++++
- 1 file changed, 8 insertions(+)
+ kexec/kexec-syscall.h | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h
-index 33638c2..6b633e4 100644
+index b96e02a..2a3794d 100644
--- a/kexec/kexec-syscall.h
+++ b/kexec/kexec-syscall.h
-@@ -77,7 +77,11 @@ struct kexec_segment;
+@@ -77,11 +77,16 @@
+
+ struct kexec_segment;
+
++#ifndef __KLIBC__
static inline long kexec_load(void *entry, unsigned long nr_segments,
struct kexec_segment *segments, unsigned long flags)
{
-+#ifndef __KLIBC__
return (long) syscall(__NR_kexec_load, entry, nr_segments, segments, flags);
+ }
+#else
-+ return (long) kexec_load(entry, nr_segments, segments, flags);
++extern long kexec_load(void *entry, unsigned long nr_segments,
++ struct kexec_segment *segments, unsigned long flags);
+#endif
- }
static inline int is_kexec_file_load_implemented(void) {
-@@ -90,8 +94,12 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd,
+ if (__NR_kexec_file_load != 0xffffffff)
+@@ -89,6 +94,21 @@ static inline int is_kexec_file_load_implemented(void) {
+ return 0;
+ }
+
++#ifdef __KLIBC__
++/* Stub provided by klibc only for the following archs */
++#if defined (__x86_64__) || defined (__powerpc_64__) || defined (__s390x__)
++extern long kexec_file_load(int kernel_fd, int initrd_fd,
++ unsigned long cmdline_len, const char *cmdline_ptr,
++ unsigned long flags);
++#else
++static inline long kexec_file_load(int kernel_fd, int initrd_fd,
++ unsigned long cmdline_len, const char *cmdline_ptr,
++ unsigned long flags)
++{
++ return -1;
++}
++#endif
++#else
+ static inline long kexec_file_load(int kernel_fd, int initrd_fd,
unsigned long cmdline_len, const char *cmdline_ptr,
unsigned long flags)
- {
-+#ifndef __KLIBC__
+@@ -96,6 +116,7 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd,
return (long) syscall(__NR_kexec_file_load, kernel_fd, initrd_fd,
cmdline_len, cmdline_ptr, flags);
-+#else
-+ return -1;
-+#endif
}
++#endif
#define KEXEC_ON_CRASH 0x00000001
---
-2.7.4
-
+ #define KEXEC_PRESERVE_CONTEXT 0x00000002
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch
index 3d44683936..0ae90016d0 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0007-kexec.c-add-guard-around-ENOTSUP.patch
@@ -1,4 +1,4 @@
-From e6bd7a1bcfbd3e54efc81fbd7d60d915f9af0632 Mon Sep 17 00:00:00 2001
+From 17e9da8d3c3c69f84e11c0457bd9fb8c4ee4274b Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Tue, 17 Apr 2018 11:35:14 +0200
Subject: [PATCH] kexec.c: add guard around ENOTSUP
@@ -16,10 +16,10 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 2 insertions(+)
diff --git a/kexec/kexec.c b/kexec/kexec.c
-index 313d9fe..b5a8a1e 100644
+index 32ae56c..0764e85 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
-@@ -1501,6 +1501,7 @@ int main(int argc, char *argv[])
+@@ -1517,6 +1517,7 @@ int main(int argc, char *argv[])
*/
case -EINVAL:
case -ENOEXEC:
@@ -27,7 +27,7 @@ index 313d9fe..b5a8a1e 100644
/*
* ENOTSUP can be unsupported image
* type or unsupported PE signature
-@@ -1513,6 +1514,7 @@ int main(int argc, char *argv[])
+@@ -1529,6 +1530,7 @@ int main(int argc, char *argv[])
* kernel bug
*/
case -ENOTSUP:
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch
index cfc51cf7f3..0ab7a1d71e 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0008-kexec.c-replace-mising-BLKGETSIZE64.patch
@@ -1,4 +1,4 @@
-From 12c7b09c3152f2b3475d081691a26bd1a5633256 Mon Sep 17 00:00:00 2001
+From 30b61da180286643bea68b09b092744346011801 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Tue, 17 Apr 2018 11:38:42 +0200
Subject: [PATCH] kexec.c: replace missing BLKGETSIZE64
@@ -16,10 +16,10 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 4 insertions(+)
diff --git a/kexec/kexec.c b/kexec/kexec.c
-index b5a8a1e..7842f8b 100644
+index 0764e85..157c577 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
-@@ -54,6 +54,10 @@
+@@ -55,6 +55,10 @@
#define KEXEC_LOADED_PATH "/sys/kernel/kexec_loaded"
#define KEXEC_CRASH_LOADED_PATH "/sys/kernel/kexec_crash_loaded"
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch
index df980b118e..8bc473cb00 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0009-vmcore-dmesg.c-work-around-missing-imaxdiv.patch
@@ -1,4 +1,4 @@
-From ad598a71ffff6f86462211f252ac0c7b5de53869 Mon Sep 17 00:00:00 2001
+From 20e2c61fc04a291250acee649c2523d2546cedea Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Tue, 17 Apr 2018 13:14:12 +0200
Subject: [PATCH] vmcore-dmesg.c: work around missing imaxdiv()
@@ -18,7 +18,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c
-index e340ef4..1b27b71 100644
+index 7972788..c63ac4f 100644
--- a/vmcore-dmesg/vmcore-dmesg.c
+++ b/vmcore-dmesg/vmcore-dmesg.c
@@ -575,8 +575,11 @@ static void dump_dmesg_structured(int fd)
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch
index cff1485e5e..4652f10a6e 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0010-fs2dt.c-work-around-missing-getline.patch
@@ -1,4 +1,4 @@
-From edefda702d906d472ee7a675f6b506d5cfca7ac8 Mon Sep 17 00:00:00 2001
+From 14d4dbd293c75bc81a0dde6e678f9bbefb40b6f1 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Tue, 17 Apr 2018 13:48:25 +0200
Subject: [PATCH] fs2dt.c: work around missing getline()
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch
index 0ae2be77de..07fa841ccc 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0011-purgatory-Makefile-adapt-to-klcc.patch
@@ -1,20 +1,18 @@
-From fa3844ce6ce95f2db142b6c77f077b3e704d4f6f Mon Sep 17 00:00:00 2001
+From b6ebe05dc389b9457e3707401411fd075230b10e Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
-Date: Tue, 17 Apr 2018 19:12:14 +0200
+Date: Tue, 21 Aug 2018 16:31:44 +0200
Subject: [PATCH] purgatory Makefile: adapt to klcc
Upstream-Status: Inappropriate [klibc specific]
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
---
- purgatory/Makefile | 9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
+ purgatory/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
-diff --git a/purgatory/Makefile b/purgatory/Makefile
-index 49ce80a..da36075 100644
--- a/purgatory/Makefile
+++ b/purgatory/Makefile
-@@ -47,7 +47,7 @@ purgatory/sha256.o: $(srcdir)/util_lib/sha256.c
+@@ -47,7 +47,7 @@ purgatory/sha256.o: $(srcdir)/util_lib/s
$(PURGATORY): CC=$(TARGET_CC)
$(PURGATORY): CFLAGS+=$(PURGATORY_EXTRA_CFLAGS) \
$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
@@ -23,21 +21,14 @@ index 49ce80a..da36075 100644
-fno-zero-initialized-in-bss \
-fno-PIC -fno-PIE -fno-stack-protector
-@@ -59,13 +59,14 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS) \
+@@ -59,8 +59,8 @@ $(PURGATORY): CPPFLAGS=$($(ARCH)_PURGATO
-Iinclude \
-I$(shell $(CC) -print-file-name=include)
$(PURGATORY): LDFLAGS=$($(ARCH)_PURGATORY_EXTRA_CFLAGS)\
- -Wl,--no-undefined -nostartfiles -nostdlib \
-+ --no-undefined -nostartfiles -nostdlib \
- -nodefaultlibs -e purgatory_start -r \
-- -Wl,-Map=$(PURGATORY_MAP)
-+ -Map=$(PURGATORY_MAP)
+- -nodefaultlibs -e purgatory_start -r \
++ -Wl,--no-undefined -no-pie -nostartfiles -nostdlib \
++ -nodefaultlibs -Wl,--entry=purgatory_start -Wl,-r \
+ -Wl,-Map=$(PURGATORY_MAP)
$(PURGATORY): $(PURGATORY_OBJS)
- $(MKDIR) -p $(@D)
-- $(CC) $(CFLAGS) $(LDFLAGS) -o $@.sym $^
-+# $(CC) $(CFLAGS) -o $@.sym $^
-+ $(LD) $(LDFLAGS) -o $@.sym $^
- # $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) --no-undefined -e purgatory_start -r -o $@ $(PURGATORY_OBJS) $(UTIL_LIB)
- $(STRIP) --strip-debug -o $@ $@.sym
-
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch
index 20934da898..db0d763178 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0012-purgatory-string.c-avoid-inclusion-of-string.h.patch
@@ -1,4 +1,4 @@
-From 2d2ad16f9328a7cbb3f5b8479ae93eb923a0727f Mon Sep 17 00:00:00 2001
+From 9bb386018257e1e18ffe0e925201946515b31080 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Thu, 19 Apr 2018 00:28:14 +0200
Subject: [PATCH] purgatory/string.c: avoid inclusion of string.h
@@ -26,6 +26,3 @@ index f06c460..c5e978a 100644
size_t strnlen(const char *s, size_t max)
{
---
-2.7.4
-
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch
index 5d1664f76b..777cbcf94f 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/0013-sha256.h-avoid-inclusion-of-sys-types.h.patch
@@ -1,4 +1,4 @@
-From ec6000b9f287e62cb0746e26cfa4372c7ea528f4 Mon Sep 17 00:00:00 2001
+From 60098810e1c04be677794bff6a3935011af98934 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Thu, 19 Apr 2018 23:26:43 +0200
Subject: [PATCH] sha256.h: avoid inclusion of sys/types.h
@@ -31,6 +31,3 @@ index 467fb22..40fd3ed 100644
#include <stdint.h>
typedef struct
---
-2.7.4
-
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 ad21266987..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
@@ -1,7 +1,7 @@
-From b15e9610b4ab52c381e712241d50dea96d50d873 Mon Sep 17 00:00:00 2001
+From 04eec97b390621f2b3794b0d774b77429eb88cfd Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Wed, 2 May 2018 23:14:19 +0200
-Subject: [PATCH 14/14] add if_nameindex from musl
+Subject: [PATCH] add if_nameindex from musl
Taken from musl, minimal changes.
klibc lacks struct and func
@@ -20,10 +20,13 @@ to fix :
#define __bitwise __bitwise__
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 ++++++++++++
+ kexec/if_nameindex.c | 64 ++++++++++++++++++++++++++++++++++++++++++++
+ kexec/if_nameindex.h | 15 +++++++++++
kexec/ifdown.c | 3 +++
4 files changed, 83 insertions(+), 1 deletion(-)
create mode 100644 kexec/if_nameindex.c
@@ -114,7 +117,7 @@ index 0000000..e586e41
+}
diff --git a/kexec/if_nameindex.h b/kexec/if_nameindex.h
new file mode 100644
-index 0000000..1725fbd
+index 0000000..cf1c061
--- /dev/null
+++ b/kexec/if_nameindex.h
@@ -0,0 +1,15 @@
@@ -147,6 +150,3 @@ index 82c6141..cc3ca9f 100644
/*
* First, we find all shaper devices and down them. Then we
---
-2.7.4
-
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 0b88b94c6e..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
@@ -1,17 +1,20 @@
-From 3294266c6a875c5009065c1ae5d0b86200c4147c Mon Sep 17 00:00:00 2001
+From a2679731a56748de58a4cf0a46b7a15d75543a88 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Sun, 29 Apr 2018 00:52:31 +0200
-Subject: [PATCH 6/6] vmcore-dmesg: fix warning
+Subject: [PATCH] vmcore-dmesg: fix warning
# define __bitwise
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/vmcore-dmesg/vmcore-dmesg.c b/vmcore-dmesg/vmcore-dmesg.c
-index e340ef4..91e4789 100644
+index c63ac4f..a4e3014 100644
--- a/vmcore-dmesg/vmcore-dmesg.c
+++ b/vmcore-dmesg/vmcore-dmesg.c
@@ -2,6 +2,9 @@
@@ -24,6 +27,3 @@ index e340ef4..91e4789 100644
#include <endian.h>
#include <byteswap.h>
#include <stdio.h>
---
-2.7.4
-
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
new file mode 100644
index 0000000000..031efb6275
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/140-mips_disable_devicetree_support.patch
@@ -0,0 +1,158 @@
+From 7bd94a64cd5424e74ad49dbda65a15e83670268f Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Mon, 17 Dec 2018 11:25:20 +0100
+Subject: [PATCH] kexec-tools: fix non-device tree devices on mips
+
+Add additional argument '--no-dtb' which disables device tree
+search in currently loaded kernel.
+
+Taken from LEDE-DEV:
+https://patchwork.ozlabs.org/patch/852961/
+
+Rebased for kexec-tools 2.0.18
+Removed ppc change (unwanted ?)
+
+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 ++
+ kexec/arch/mips/kexec-mips.h | 1 +
+ 4 files changed, 39 insertions(+), 28 deletions(-)
+
+--- a/kexec/arch/mips/include/arch/options.h
++++ b/kexec/arch/mips/include/arch/options.h
+@@ -5,6 +5,7 @@
+ #define OPT_APPEND (OPT_ARCH_MAX+0)
+ #define OPT_DTB (OPT_ARCH_MAX+1)
+ #define OPT_RAMDISK (OPT_ARCH_MAX+2)
++#define OPT_NO_DTB (OPT_ARCH_MAX+3)
+
+ /* Options relevant to the architecture (excluding loader-specific ones),
+ * in this case none:
+@@ -14,7 +15,8 @@
+ {"command-line", 1, 0, OPT_APPEND}, \
+ {"append", 1, 0, OPT_APPEND}, \
+ {"dtb", 1, 0, OPT_DTB }, \
+- {"initrd", 1, 0, OPT_RAMDISK },
++ {"initrd", 1, 0, OPT_RAMDISK }, \
++ {"no-dtb", 0, 0, OPT_NO_DTB },
+
+
+ #define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR ""
+--- a/kexec/arch/mips/kexec-elf-mips.c
++++ b/kexec/arch/mips/kexec-elf-mips.c
+@@ -141,45 +141,49 @@ int elf_mips_load(int argc, char **argv,
+ else
+ cmdline_addr = 0;
+
+- /* MIPS systems that have been converted to use device tree
+- * passed through UHI will use commandline in the DTB and
+- * the DTB passed as a separate buffer. Note that
+- * CMDLINE_PREFIX is skipped here intentionally, as it is
+- * used only in the legacy method */
+-
+- if (arch_options.dtb_file) {
+- dtb_buf = slurp_file(arch_options.dtb_file, &dtb_length);
+- } else {
+- create_flatten_tree(&dtb_buf, &dtb_length, cmdline_buf + strlen(CMDLINE_PREFIX));
+- }
+-
+- if (arch_options.initrd_file) {
+- initrd_buf = slurp_file(arch_options.initrd_file, &initrd_size);
+
+- /* Create initrd entries in dtb - although at this time
+- * they would not point to the correct location */
+- dtb_set_initrd(&dtb_buf, &dtb_length, initrd_buf, initrd_buf + initrd_size);
+-
+- initrd_base = add_buffer(info, initrd_buf, initrd_size,
+- initrd_size, sizeof(void *),
+- _ALIGN_UP(kernel_addr + kernel_size + dtb_length,
+- pagesize), 0x0fffffff, 1);
+-
+- /* Now that the buffer for initrd is prepared, update the dtb
+- * with an appropriate location */
+- dtb_set_initrd(&dtb_buf, &dtb_length, initrd_base, initrd_base + initrd_size);
++ if (!arch_options.no_dtb) {
++ /* MIPS systems that have been converted to use device tree
++ * passed through UHI will use commandline in the DTB and
++ * the DTB passed as a separate buffer. Note that
++ * CMDLINE_PREFIX is skipped here intentionally, as it is
++ * used only in the legacy method */
++
++ if (arch_options.dtb_file) {
++ dtb_buf = slurp_file(arch_options.dtb_file, &dtb_length);
++ } else {
++ create_flatten_tree(&dtb_buf, &dtb_length, cmdline_buf + strlen(CMDLINE_PREFIX));
++ }
++
++ if (arch_options.initrd_file) {
++ initrd_buf = slurp_file(arch_options.initrd_file, &initrd_size);
++
++ /* Create initrd entries in dtb - although at this time
++ * they would not point to the correct location */
++ dtb_set_initrd(&dtb_buf, &dtb_length, (off_t)initrd_buf, (off_t)initrd_buf + initrd_size);
++
++ initrd_base = add_buffer(info, initrd_buf, initrd_size,
++ initrd_size, sizeof(void *),
++ _ALIGN_UP(kernel_addr + kernel_size + dtb_length,
++ pagesize), 0x0fffffff, 1);
++
++ /* Now that the buffer for initrd is prepared, update the dtb
++ * with an appropriate location */
++ dtb_set_initrd(&dtb_buf, &dtb_length, initrd_base, initrd_base + initrd_size);
++ }
+ }
+
+-
+ /* This is a legacy method for commandline passing used
+ * currently by Octeon CPUs only */
+ add_buffer(info, cmdline_buf, sizeof(cmdline_buf),
+ sizeof(cmdline_buf), sizeof(void *),
+ cmdline_addr, 0x0fffffff, 1);
+
+- add_buffer(info, dtb_buf, dtb_length, dtb_length, 0,
+- _ALIGN_UP(kernel_addr + kernel_size, pagesize),
+- 0x0fffffff, 1);
++ if (!arch_options.no_dtb) {
++ add_buffer(info, dtb_buf, dtb_length, dtb_length, 0,
++ _ALIGN_UP(kernel_addr + kernel_size, pagesize),
++ 0x0fffffff, 1);
++ }
+
+ return 0;
+ }
+--- a/kexec/arch/mips/kexec-mips.c
++++ b/kexec/arch/mips/kexec-mips.c
+@@ -89,6 +89,7 @@ void arch_usage(void)
+ " --append=STRING Set the kernel command line to STRING.\n"
+ " --dtb=FILE Use FILE as the device tree blob.\n"
+ " --initrd=FILE Use FILE as initial ramdisk.\n"
++ " --no-dtb Don't try to find device tree\n"
+ );
+ }
+
+@@ -121,6 +122,9 @@ int arch_process_options(int argc, char
+ case OPT_RAMDISK:
+ arch_options.initrd_file = optarg;
+ break;
++ case OPT_NO_DTB:
++ arch_options.no_dtb = 1;
++ break;
+ default:
+ break;
+ }
+--- a/kexec/arch/mips/kexec-mips.h
++++ b/kexec/arch/mips/kexec-mips.h
+@@ -22,6 +22,7 @@ struct arch_options_t {
+ char *dtb_file;
+ char *initrd_file;
+ int core_header_type;
++ int no_dtb;
+ };
+
+ extern struct memory_ranges usablemem_rgns;
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 24be4dd76d..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
@@ -1,7 +1,7 @@
-From 6f69f489a442b3a192e4c08748ee8c4d31c75dae Mon Sep 17 00:00:00 2001
+From 3fd4db2ce1710f45eb297ae6b2c10726b33204f3 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Sun, 29 Apr 2018 00:46:16 +0200
-Subject: [PATCH 5/6] arm64: crashdump-arm64.c: fix warning
+Subject: [PATCH] arm64: crashdump-arm64.c: fix warning
from ../git/kexec/kexec.h:6,
from ../git/kexec/arch/arm64/crashdump-arm64.c:18:
@@ -11,7 +11,10 @@ ng: "__bitwise" redefined
# define __bitwise
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
---
+Upstream-Status: Pending
+
kexec/arch/arm64/crashdump-arm64.c | 3 +++
1 file changed, 3 insertions(+)
@@ -29,6 +32,3 @@ index 4fd7aa8..890d88f 100644
#include <linux/elf.h>
#include "kexec.h"
---
-2.7.4
-
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch
new file mode 100644
index 0000000000..df7b0a7782
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch
@@ -0,0 +1,58 @@
+From a99fc685214452aedabf9ac105bb99357006aa26 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Wed, 5 Sep 2018 17:07:48 +0200
+Subject: [PATCH] kexec-arm64.c: workaround for getrandom() syscall
+
+The syscall was added to OE's klibc.
+Fix
+
+| ../git/kexec/arch/arm64/kexec-arm64.c:19:10: fatal error: syscall.h: No such file or directory
+| #include <syscall.h>
+
+and
+
+| ../git/kexec/arch/arm64/kexec-arm64.c: In function 'setup_2nd_dtb':
+| ../git/kexec/arch/arm64/kexec-arm64.c:499:12: warning: implicit declaration of function 'getrandom'; did you mean 'srandom'? [-Wimplicit-function-declaration]
+| result = getrandom(&fdt_val64,
+
+Upstream-Status: Inappropriate [klibc specific]
+Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
+---
+ kexec/arch/arm64/kexec-arm64.c | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c
+index b143e86..88d4168 100644
+--- a/kexec/arch/arm64/kexec-arm64.c
++++ b/kexec/arch/arm64/kexec-arm64.c
+@@ -16,7 +16,11 @@
+ #include <elf.h>
+
+ #include <unistd.h>
++
++#ifndef __KLIBC__
+ #include <syscall.h>
++#endif
++
+ #include <errno.h>
+ #include <linux/random.h>
+
+@@ -487,10 +491,16 @@ static int setup_2nd_dtb(struct dtb *dtb, char *command_line, int on_crash)
+ * have a valid random seed to pass to the
+ * secondary kernel.
+ */
++#ifndef __KLIBC__
+ result = syscall(SYS_getrandom, &fdt_val64,
+ sizeof(fdt_val64),
+ GRND_NONBLOCK);
+-
++#else
++ extern ssize_t getrandom(void *, size_t, unsigned int);
++ result = getrandom(&fdt_val64,
++ sizeof(fdt_val64),
++ GRND_NONBLOCK);
++#endif
+ if(result == -1) {
+ fprintf(stderr, "%s: Reading random bytes failed.\n",
+ __func__);
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch
index 7decbac4fb..cdcecdf41e 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_kexec-image-header.h-add-missing-le64toh.patch
@@ -1,7 +1,7 @@
-From af7d06a753a4c377b7ffe587da67a6ba56048bea Mon Sep 17 00:00:00 2001
+From c5e7928217ee73640d25c6471c4619601cb1ba19 Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Thu, 19 Apr 2018 10:47:17 +0200
-Subject: [PATCH 2/2] kexec/arm64: image-header.h: add macro for le64toh
+Subject: [PATCH] kexec/arm64: image-header.h: add macro for le64toh
Fix
@@ -35,6 +35,3 @@ index 158d411..10ed2d6 100644
/**
* struct arm64_image_header - arm64 kernel image header.
*
---
-2.7.4
-
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_purgatory-Makefile-remove-unknown-flags.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_purgatory-Makefile-remove-unknown-flags.patch
deleted file mode 100644
index f87f4334d7..0000000000
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm64_purgatory-Makefile-remove-unknown-flags.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 1ceca8645dbe2780e1b8993c80de772993fe3053 Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Thu, 19 Apr 2018 10:43:34 +0200
-Subject: [PATCH 1/2] purgatory/arm64: Makefile: remove unknown flags for arm64
-
-Fix
-
- | aarch64-oe-linux-musl-ld: unrecognised emulation mode: cmodel=large
- | Supported emulations: aarch64linux aarch64elf aarch64elf32
- aarch64elf32b aarch64elfb armelf armelfb aarch64linuxb aarch64linux32
- aarch64linux32b armelfb_linux_eabi armelf_linux_eabi
-
-Upstream-Status: Inappropriate [klibc specific]
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
-
----
- purgatory/arch/arm64/Makefile | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/purgatory/arch/arm64/Makefile b/purgatory/arch/arm64/Makefile
-index 636abea..ddc9461 100644
---- a/purgatory/arch/arm64/Makefile
-+++ b/purgatory/arch/arm64/Makefile
-@@ -1,13 +1,13 @@
-
--arm64_PURGATORY_EXTRA_CFLAGS = \
-- -mcmodel=large \
-- -fno-PIC \
-- -fno-stack-protector \
-- -fno-asynchronous-unwind-tables \
-- -Wundef \
-- -Werror-implicit-function-declaration \
-- -Wdeclaration-after-statement \
-- -Werror=implicit-int \
-- -Werror=strict-prototypes
-+#arm64_PURGATORY_EXTRA_CFLAGS = \
-+# -mcmodel=large \
-+# -fno-PIC \
-+# -fno-stack-protector \
-+# -fno-asynchronous-unwind-tables \
-+# -Wundef \
-+# -Werror-implicit-function-declaration \
-+# -Wdeclaration-after-statement \
-+# -Werror=implicit-int \
-+# -Werror=strict-prototypes
-
- arm64_PURGATORY_SRCS += \
- purgatory/arch/arm64/entry.S \
---
-2.7.4
-
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
new file mode 100644
index 0000000000..89a5d34c83
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump-fix-buffer-align.patch
@@ -0,0 +1,44 @@
+From edf186f45d543e318400195cc25175387ff3f5c4 Mon Sep 17 00:00:00 2001
+From: Andrea Adami <andrea.adami@gmail.com>
+Date: Sun, 26 Aug 2018 21:40:06 +0200
+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/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c
+index daa4788..3f72b38 100644
+--- a/kexec/arch/arm/crashdump-arm.c
++++ b/kexec/arch/arm/crashdump-arm.c
+@@ -240,6 +240,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+ void *buf;
+ int err;
+ int last_ranges;
++ unsigned short align_bit_shift = 20;
+
+ /*
+ * First fetch all the memory (RAM) ranges that we are going to pass to
+@@ -281,6 +282,7 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+
+ /* for support LPAE enabled kernel*/
+ elf_info.class = ELFCLASS64;
++ align_bit_shift = 21;
+
+ err = crash_create_elf64_headers(info, &elf_info,
+ usablemem_rgns.ranges,
+@@ -302,8 +304,9 @@ int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline)
+ * 1MB) so that available memory passed in kernel command line will be
+ * aligned to 1MB. This is because kernel create_mapping() wants memory
+ * regions to be aligned to SECTION_SIZE.
++ * The SECTION_SIZE of LPAE kernel is '1UL << 21' defined in pgtable-3level.h
+ */
+- elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << 20,
++ elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << align_bit_shift,
+ crash_kernel_mem.start,
+ crash_kernel_mem.end, -1, 0);
+
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch
index 95962636e5..2d1d64db1c 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/arm_crashdump.patch
@@ -1,4 +1,4 @@
-From 6dae4752a53973c152b3e91e8a4ca74a486dae8b Mon Sep 17 00:00:00 2001
+From 8ee92bc915d650e188caaa3df0a798ac2002f64e Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 11 Apr 2018 22:51:00 +0200
Subject: [PATCH] use our elf.h header
@@ -17,7 +17,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/kexec/arch/arm/crashdump-arm.c b/kexec/arch/arm/crashdump-arm.c
-index daa4788..2530b29 100644
+index 3f72b38..af2600d 100644
--- a/kexec/arch/arm/crashdump-arm.c
+++ b/kexec/arch/arm/crashdump-arm.c
@@ -21,7 +21,7 @@
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
new file mode 100644
index 0000000000..29ea1d9f18
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/include_next.patch
@@ -0,0 +1,24 @@
+Upstream-Status: Pending
+
+--- a/kexec/Makefile
++++ b/kexec/Makefile
+@@ -110,7 +110,7 @@ $(KEXEC): $(KEXEC_OBJS) $(UTIL_LIB)
+ @$(MKDIR) -p $(@D)
+ $(LINK.o) -o $@ $^ $(CFLAGS) $(LIBS)
+
+-$(KEXEC): CPPFLAGS+=-I$(srcdir)/kexec/arch/$(ARCH)/include
++$(KEXEC): CPPFLAGS+=-I$(srcdir)/kexec/arch/$(ARCH)/include -I$(shell $(CC) -print-file-name=include)
+
+ kexec/fs2dt.o: CPPFLAGS+=$($(ARCH)_FS2DT_INCLUDE)
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -46,7 +46,7 @@ TARGET_CFLAGS = @TARGET_CFLAGS@
+ # Base compiler flags. These are extended by the subcomponent-Makefiles
+ # where necessary.
+ CPPFLAGS = @CPPFLAGS@ -I$(srcdir)/include -I$(srcdir)/util_lib/include \
+- -Iinclude/ $($(ARCH)_CPPFLAGS)
++ -Iinclude/ $($(ARCH)_CPPFLAGS) -I$(shell $(CC) -print-file-name=include)
+ CFLAGS = @CFLAGS@ -static -fno-strict-aliasing -Wall -Wstrict-prototypes
+ PURGATORY_EXTRA_CFLAGS = @PURGATORY_EXTRA_CFLAGS@
+ ASFLAGS = @ASFLAGS@ $($(ARCH)_ASFLAGS)
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch
new file mode 100644
index 0000000000..3c2594a5d0
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/kexec-x32.patch
@@ -0,0 +1,94 @@
+From fd40eee42273220fb0050fe10744b10067adc0a7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linux.intel.com>
+Date: Fri, 31 Aug 2018 17:31:50 +0200
+Subject: [PATCH] x86_64: Add support to build kexec-tools with x32 ABI
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Summary of changes,
+
+configure.ac: Add test for detect x32 ABI.
+purgatory/arch/x86_64/Makefile: Not use mcmodel large when
+ x32 ABI is set.
+kexec/arch/x86_64/kexec-elf-rel-x86_64.c: When x32 ABI is set
+ use ELFCLASS32 instead of ELFCLASS64.
+kexec/kexec-syscall.h: Add correct syscall number for x32 ABI.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
+Signed-off-by: Mariano Lopez <mariano.lopez@linux.intel.com>
+
+---
+ configure.ac | 9 +++++++++
+ kexec/arch/x86_64/kexec-elf-rel-x86_64.c | 4 ++++
+ kexec/kexec-syscall.h | 4 ++++
+ purgatory/arch/x86_64/Makefile | 4 +++-
+ 4 files changed, 20 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index e05d601..c428146 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -54,6 +54,15 @@ case $target_cpu in
+ ;;
+ ia64|x86_64|alpha|m68k )
+ ARCH="$target_cpu"
++
++ dnl ---Test for x32 ABI in x86_64
++ if test "x$ARCH" = "xx86_64" ; then
++ AC_EGREP_CPP(x32_test,
++ [#if defined(__x86_64__) && defined (__ILP32__)
++ x32_test
++ #endif
++ ], SUBARCH='x32', SUBARCH='64')
++ fi
+ ;;
+ * )
+ AC_MSG_ERROR([unsupported architecture $target_cpu])
+diff --git a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+index 761a4ed..1c0e3f8 100644
+--- a/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
++++ b/kexec/arch/x86_64/kexec-elf-rel-x86_64.c
+@@ -8,7 +8,11 @@ int machine_verify_elf_rel(struct mem_ehdr *ehdr)
+ if (ehdr->ei_data != ELFDATA2LSB) {
+ return 0;
+ }
++#ifdef __ILP32__
++ if (ehdr->ei_class != ELFCLASS32) {
++#else
+ if (ehdr->ei_class != ELFCLASS64) {
++#endif
+ return 0;
+ }
+ if (ehdr->e_machine != EM_X86_64) {
+diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h
+index 2a3794d..3e67078 100644
+--- a/kexec/kexec-syscall.h
++++ b/kexec/kexec-syscall.h
+@@ -31,8 +31,12 @@
+ #define __NR_kexec_load 268
+ #endif
+ #ifdef __x86_64__
++#ifdef __ILP32__
++#define __NR_kexec_load 528
++#else
+ #define __NR_kexec_load 246
+ #endif
++#endif
+ #ifdef __s390x__
+ #define __NR_kexec_load 277
+ #endif
+diff --git a/purgatory/arch/x86_64/Makefile b/purgatory/arch/x86_64/Makefile
+index 7300937..4af11e4 100644
+--- a/purgatory/arch/x86_64/Makefile
++++ b/purgatory/arch/x86_64/Makefile
+@@ -23,4 +23,6 @@ x86_64_PURGATORY_SRCS += purgatory/arch/i386/console-x86.c
+ x86_64_PURGATORY_SRCS += purgatory/arch/i386/vga.c
+ x86_64_PURGATORY_SRCS += purgatory/arch/i386/pic.c
+
+-x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
++ifeq ($(SUBARCH),64)
++ x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
++endif
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
new file mode 100644
index 0000000000..1c58e92b35
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/klibc-reboot.patch
@@ -0,0 +1,23 @@
+From 9c99b0748dd0ea1aaf3836378ee75fa5af099a19 Mon Sep 17 00:00:00 2001
+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/kexec/kexec.c b/kexec/kexec.c
+index 157c577..5da0d67 100644
+--- a/kexec/kexec.c
++++ b/kexec/kexec.c
+@@ -901,7 +901,7 @@ static int my_exec(void)
+ if (xen_present())
+ xen_kexec_exec();
+ else
+- reboot(LINUX_REBOOT_CMD_KEXEC);
++ reboot(LINUX_REBOOT_CMD_KEXEC, NULL);
+ /* I have failed if I make it here */
+ fprintf(stderr, "kexec failed: %s\n",
+ strerror(errno));
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch
index c3b2071bcd..8fb9f443aa 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc-purgatory-Makefile-remove-unknown-flags.patch
@@ -1,8 +1,7 @@
-From 709dfe457c07aa0275f3da14634cbce5cf1029dc Mon Sep 17 00:00:00 2001
+From 3683b3f3e318fa711f6018f154d950c51d5b597a Mon Sep 17 00:00:00 2001
From: Andrea Adami <andrea.adami@gmail.com>
Date: Thu, 19 Apr 2018 19:26:53 +0200
-Subject: [PATCH 3/3] powerpc/purgatory: Makefile: remove unknown flags for
- powerpc
+Subject: [PATCH] powerpc/purgatory: Makefile: remove unknown flags for powerpc
Fix
@@ -12,6 +11,7 @@ Fix
Upstream-Status: Inappropriate [klibc specific]
Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
+
---
purgatory/arch/ppc/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
@@ -29,6 +29,3 @@ index c85c58a..cd44a16 100644
dist += purgatory/arch/ppc/Makefile $(ppc_PURGATORY_SRCS) \
purgatory/arch/ppc/purgatory-ppc.h purgatory/arch/ppc/ppc_asm.h
---
-2.7.4
-
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch
new file mode 100644
index 0000000000..67a3cac1fa
--- /dev/null
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/powerpc_change-the-memory-size-limit.patch
@@ -0,0 +1,36 @@
+From 6fec72bd7264478c214169b0f30f649304bd39ea Mon Sep 17 00:00:00 2001
+From: Quanyang Wang <quanyang.wang@windriver.com>
+Date: Tue, 16 Jun 2015 12:59:57 +0800
+Subject: [PATCH] powerpc: change the memory size limit
+
+When run "kexec" in powerpc board, the kexec has a limit that
+the kernel text and bss size must be less than 24M. But now
+some kernel size exceed the limit. So we need to change the limit,
+else will get the error log as below:
+
+my_load:669: do
+Could not find a free area of memory of 0x12400 bytes...
+Could not find a free area of memory of 0x13000 bytes...
+locate_hole failed
+
+Upstream-Status: Pending
+
+Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com>
+
+---
+ kexec/arch/ppc/kexec-ppc.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/kexec/arch/ppc/kexec-ppc.h b/kexec/arch/ppc/kexec-ppc.h
+index 04e728e..6bae9ec 100644
+--- a/kexec/arch/ppc/kexec-ppc.h
++++ b/kexec/arch/ppc/kexec-ppc.h
+@@ -44,7 +44,7 @@ void dol_ppc_usage(void);
+ * During inital setup the kernel does not map the whole memory but a part of
+ * it. On Book-E that is 64MiB, 601 24MiB or 256MiB (if possible).
+ */
+-#define KERNEL_ACCESS_TOP (24 * 1024 * 1024)
++#define KERNEL_ACCESS_TOP (36 * 1024 * 1024)
+
+ /* boot block version 17 as defined by the linux kernel */
+ struct bootblock {
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86-64-purgatory-Makefile-remove-unknown-flags.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86-64-purgatory-Makefile-remove-unknown-flags.patch
deleted file mode 100644
index f1db75741a..0000000000
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86-64-purgatory-Makefile-remove-unknown-flags.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9453599fd833794fb5d87cab2622de286144ed54 Mon Sep 17 00:00:00 2001
-From: Andrea Adami <andrea.adami@gmail.com>
-Date: Wed, 18 Apr 2018 22:30:17 +0200
-Subject: [PATCH 6/6] purgatory: Makefile: remove unknown flags
-
-Fix
-
- x86_64-oe-linux-musl-ld: unrecognised emulation mode: cmodel=large
- Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu
- i386linux elf_l1om elf_k1om
- ../kexec-tools-2.0.17-rc1/purgatory/Makefile:67:
- recipe for target 'purgatory/purgatory.ro' failed
-
-Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
-
----
- purgatory/arch/x86_64/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/purgatory/arch/x86_64/Makefile b/purgatory/arch/x86_64/Makefile
-index 7300937..38f0bf3 100644
---- a/purgatory/arch/x86_64/Makefile
-+++ b/purgatory/arch/x86_64/Makefile
-@@ -23,4 +23,4 @@ x86_64_PURGATORY_SRCS += purgatory/arch/i386/console-x86.c
- x86_64_PURGATORY_SRCS += purgatory/arch/i386/vga.c
- x86_64_PURGATORY_SRCS += purgatory/arch/i386/pic.c
-
--x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
-+#x86_64_PURGATORY_EXTRA_CFLAGS = -mcmodel=large
---
-2.7.4
-
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch
index 0d0ed23c90..568f19758a 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_basename.patch
@@ -1,4 +1,4 @@
-From 5f47c30759684cea9a7a409646686c1a358b78ac Mon Sep 17 00:00:00 2001
+From 7823956149c78e1996c567d1965803456df090f8 Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 11 Apr 2018 22:51:05 +0200
Subject: [PATCH] replace basename() with sscanf()
@@ -13,7 +13,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
-index 6c7d260..7850083 100644
+index 6cda12c..5514c1c 100644
--- a/kexec/arch/i386/x86-linux-setup.c
+++ b/kexec/arch/i386/x86-linux-setup.c
@@ -304,9 +304,9 @@ static int add_edd_entry(struct x86_linux_param_header *real_mode,
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch
index b7d7c1039c..ecb0d85e26 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_kexec_test.patch
@@ -1,4 +1,4 @@
-From 9de68ec5af8db2eff352f12da28145fe5e96244d Mon Sep 17 00:00:00 2001
+From e26fe77b0ac9acc2c8086586d267aa7160969d2d Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 11 Apr 2018 22:51:05 +0200
Subject: [PATCH] do not build test
@@ -14,17 +14,17 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 79188d8..953c141 100644
+index dbf1fb6..440730d 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -178,8 +178,8 @@ PSRCS:=$(foreach s, $(SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s))
+@@ -173,8 +173,8 @@ PSRCS:=$(foreach s, $(SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s))
PGSRCS:=$(foreach s, $(GENERATED_SRCS), $(PACKAGE_NAME)-$(PACKAGE_VERSION)/$(s))
- MAN_PAGES:=$(KEXEC_MANPAGE) $(KDUMP_MANPAGE) $(VMCORE_DMESG_MANPAGE)
+ MAN_PAGES:=$(KEXEC_MANPAGE) $(VMCORE_DMESG_MANPAGE)
-BINARIES_i386:=$(KEXEC_TEST)
-BINARIES_x86_64:=$(KEXEC_TEST)
-+BINARIES_i386:=$(SBINDIR)/kexec
-+BINARIES_x86_64:=$(SBINDIR)/kexec
- BINARIES:=$(KEXEC) $(KDUMP) $(VMCORE_DMESG) $(BINARIES_$(ARCH))
++#BINARIES_i386:=$(KEXEC_TEST)
++#BINARIES_x86_64:=$(KEXEC_TEST)
+ BINARIES:=$(KEXEC) $(VMCORE_DMESG) $(BINARIES_$(ARCH))
- TARGETS:=$(BINARIES) $(MAN_PAGES)
+ UNINSTALL_KDUMP = $(sbindir)/kdump
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch
index 493f298a99..ef9a411b5c 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_sys_io.patch
@@ -1,4 +1,4 @@
-From a992ee014efacdc98d5658be9930dcab0eaadfd7 Mon Sep 17 00:00:00 2001
+From 444160260a11022ecd84cd605fe8c22b316e6546 Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 11 Apr 2018 22:51:04 +0200
Subject: [PATCH] i386: replace with our io.h
diff --git a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch
index 2f0ad2ea45..af8467a239 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc/x86_vfscanf.patch
@@ -1,4 +1,4 @@
-From 423c3f6f41fe04f4512e2a97a130f072d53dd4cf Mon Sep 17 00:00:00 2001
+From c6934455ec2337e6da7ea9fbc3486ce9beeb5d82 Mon Sep 17 00:00:00 2001
From: OpenEmbedded <oe.patch@oe>
Date: Wed, 11 Apr 2018 22:51:05 +0200
Subject: [PATCH] x86-linux-setup.c: replace vfscanf() with vsscanf()
@@ -13,7 +13,7 @@ Signed-off-by: Andrea Adami <andrea.adami@gmail.com>
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/kexec/arch/i386/x86-linux-setup.c b/kexec/arch/i386/x86-linux-setup.c
-index 7850083..e190356 100644
+index 5514c1c..bdb28c6 100644
--- a/kexec/arch/i386/x86-linux-setup.c
+++ b/kexec/arch/i386/x86-linux-setup.c
@@ -200,6 +200,8 @@ static int file_scanf(const char *dir, const char *file, const char *scanf_line,
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 14edec2d12..88f32c8182 100644
--- a/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
+++ b/meta-initramfs/recipes-kernel/kexec/kexec-tools-klibc_git.bb
@@ -3,17 +3,17 @@ SUMMARY = "Kexec tools, statically compiled against klibc"
AUTHOR = "Eric Biederman"
HOMEPAGE = "http://kernel.org/pub/linux/utils/kernel/kexec/"
SECTION = "kernel/userland"
-LICENSE = "GPLv2"
+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.17+git${SRCPV}"
+PV = "2.0.18+git${SRCPV}"
DEPENDS = "zlib xz"
-inherit klibc autotools
+inherit klibc autotools siteinfo
-SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git"
-SRCREV = "0481e9ed61ef80b3d851bb96b0c70a3d4a112c8b"
+SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kexec/kexec-tools.git;branch=master"
+SRCREV = "5750980cdbbc33ef75bfba6660295b932376ce15"
BUILD_PATCHES = "file://0001-force-static-build.patch \
file://0002-Adjust-the-order-of-headers-to-fix-build-for-musl.patch"
@@ -31,26 +31,34 @@ KLIBC_PATCHES += " \
file://0012-purgatory-string.c-avoid-inclusion-of-string.h.patch \
file://0013-sha256.h-avoid-inclusion-of-sys-types.h.patch \
file://0014-add-if_nameindex-from-musl.patch \
- file://0015-vmcore-dmesg-fix-warning.patch"
+ file://0015-vmcore-dmesg-fix-warning.patch \
+ file://klibc-reboot.patch \
+ file://include_next.patch \
+ "
WARNING_FIXES = ""
+FROM_OE_CORE = "file://arm_crashdump-fix-buffer-align.patch \
+ file://powerpc_change-the-memory-size-limit.patch \
+ file://kexec-x32.patch"
-SRC_URI += "${BUILD_PATCHES} ${KLIBC_PATCHES} ${WARNING_FIXES}"
+SRC_URI += "${BUILD_PATCHES} ${KLIBC_PATCHES} ${WARNING_FIXES} ${FROM_OE_CORE}"
-SRC_URI_append_arm = " file://arm_crashdump.patch"
+SRC_URI:append:arm = " file://arm_crashdump.patch"
-SRC_URI_append_x86 = " file://x86_sys_io.patch file://x86_basename.patch \
+SRC_URI:append:mips = " file://140-mips_disable_devicetree_support.patch"
+SRC_URI:append:mipsel = " file://140-mips_disable_devicetree_support.patch"
+
+SRC_URI:append:x86 = " file://x86_sys_io.patch file://x86_basename.patch \
file://x86_vfscanf.patch file://x86_kexec_test.patch"
-SRC_URI_append_x86-64 = " file://x86_sys_io.patch file://x86_basename.patch \
- file://x86_vfscanf.patch file://x86_kexec_test.patch \
- file://x86-64-purgatory-Makefile-remove-unknown-flags.patch"
+SRC_URI:append:x86-64 = " file://x86_sys_io.patch file://x86_basename.patch \
+ file://x86_vfscanf.patch file://x86_kexec_test.patch"
-SRC_URI_append_aarch64 = " file://arm64_purgatory-Makefile-remove-unknown-flags.patch \
- file://arm64_kexec-image-header.h-add-missing-le64toh.patch \
- file://arm64-crashdump-arm64.c-fix-warning.patch"
+SRC_URI:append:aarch64 = " file://arm64_kexec-image-header.h-add-missing-le64toh.patch \
+ file://arm64-crashdump-arm64.c-fix-warning.patch \
+ file://arm64_kexec-arm64.c-workaround-for-getrandom-syscall.patch"
-SRC_URI_append_powerpc = " file://powerpc-purgatory-Makefile-remove-unknown-flags.patch"
+SRC_URI:append:powerpc = " file://powerpc-purgatory-Makefile-remove-unknown-flags.patch"
S = "${WORKDIR}/git"
@@ -58,16 +66,10 @@ EXTRA_OECONF += "--without-zlib --without-lzma --without-xen"
# fix purgatory/printf.c:2:10: fatal error: limits.h: No such file or directory
# fix include/limits.h:42:10: fatal error: bitsize/limits.h: No such file or directory
-COMMON_CFLAGS += "-I${STAGING_DIR_HOST}${libdir}/klibc/include -I${S}/purgatory/include"
-CFLAGS_x86_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
-CFLAGS_x86-64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64"
-CFLAGS_arm_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
-CFLAGS_aarch64_append = "${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64"
-CFLAGS_mips_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
-CFLAGS_mips64_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits64"
-CFLAGS_powerpc_append = " ${COMMON_CFLAGS} -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits32"
-
-do_compile_prepend() {
+CFLAGS += "-O2 -I${STAGING_DIR_HOST}${libdir}/klibc/include -I${S}/purgatory/include \
+ -I${STAGING_DIR_HOST}${libdir}/klibc/include/bits${SITEINFO_BITS}"
+
+do_compile:prepend() {
# Remove the prepackaged config.h from the source tree as it overrides
# the same file generated by configure and placed in the build tree
rm -f ${S}/include/config.h
@@ -82,11 +84,11 @@ do_compile_prepend() {
done
}
-PACKAGES =+ "kexec-klibc kdump-klibc"
+PACKAGES =+ "kexec-klibc vmcore-dmesg-klibc"
-FILES_kexec-klibc = "${sbindir}/kexec"
-FILES_kdump-klibc = "${sbindir}/kdump"
+FILES:kexec-klibc = "${sbindir}/kexec"
+FILES:vmcore-dmesg-klibc = "${sbindir}/vmcore-dmesg"
-INSANE_SKIP_${PN} = "arch"
+INSANE_SKIP:${PN} = "arch"
COMPATIBLE_HOST = '(x86_64.*|i.86.*|arm.*|aarch64.*|powerpc.*|mips.*)-(linux|freebsd.*)'
diff --git a/meta-multimedia/README b/meta-multimedia/README
deleted file mode 100644
index 20f4fb8635..0000000000
--- a/meta-multimedia/README
+++ /dev/null
@@ -1,19 +0,0 @@
-This layer depends on:
-
-URI: git://github.com/openembedded/oe-core.git
-branch: master
-revision: HEAD
-
-URI: git://github.com/openembedded/meta-oe.git
-layers: meta-oe
-branch: master
-revision: HEAD
-
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia]' in the subject'
-
-When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-multimedia][PATCH
-
-You are encouraged to fork the mirror on github https://github.com/openembedded/meta-oe/ to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like gitorious, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
-
-Layer maintainer: Andreas Müller <schnitzeltony@googlemail.com>
diff --git a/meta-multimedia/README.md b/meta-multimedia/README.md
new file mode 100644
index 0000000000..235c34331b
--- /dev/null
+++ b/meta-multimedia/README.md
@@ -0,0 +1,17 @@
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+branch: master
+
+URI: git://git.openembedded.org/meta-openembedded
+layers: meta-oe
+branch: master
+
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia]' in the subject
+
+When sending single patches, please use something like:
+git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-multimedia][PATCH'
+
+You are encouraged to fork the mirror on github https://github.com/openembedded/meta-openembedded to share your patches, this is preferred for patch sets consisting of more than one patch. Other services like GitLab, repo.or.cz or self hosted setups are of course accepted as well, 'git fetch <remote>' works the same on all of them. We recommend github because it is free, easy to use, has been proven to be reliable and has a really good web GUI.
+
+Layer maintainer: Andreas Müller <schnitzeltony@gmail.com>
diff --git a/meta-multimedia/classes/juce.bbclass b/meta-multimedia/classes/juce.bbclass
index 3927235ef1..e20a054b45 100644
--- a/meta-multimedia/classes/juce.bbclass
+++ b/meta-multimedia/classes/juce.bbclass
@@ -9,14 +9,14 @@ JUCE_MODULES ??= " \
"
JUCE_X11_DEPS = "libx11 libxext libxinerama libxrandr libxcursor"
-PACKAGECONFIG_prepend= "${JUCE_MODULES} "
+PACKAGECONFIG:prepend= "${JUCE_MODULES} "
PACKAGECONFIG[juce_core] = ",,curl,"
PACKAGECONFIG[juce_audio_devices] = ",,alsa-lib,"
PACKAGECONFIG[juce_graphics] = ",,${JUCE_X11_DEPS} freetype,"
PACKAGECONFIG[juce_gui_basics] = ",,${JUCE_X11_DEPS},"
PACKAGECONFIG[juce_opengl] = ",,virtual/libgl,"
-DEPENDS_prepend = "projucer-native "
+DEPENDS:prepend = "projucer-native "
export OE_JUCE_PROJUCER = "${STAGING_BINDIR_NATIVE}/Projucer"
diff --git a/meta-multimedia/conf/layer.conf b/meta-multimedia/conf/layer.conf
index cfedf2f6b6..5f9f471428 100644
--- a/meta-multimedia/conf/layer.conf
+++ b/meta-multimedia/conf/layer.conf
@@ -17,16 +17,18 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "multimedia-layer"
BBFILE_PATTERN_multimedia-layer := "^${LAYERDIR}/"
+LICENSE_PATH += "${LAYERDIR}/licenses"
+
# Define the priority for recipes (.bb files) from this layer,
# choosing carefully how this layer interacts with all of the
# other layers.
-BBFILE_PRIORITY_multimedia-layer = "6"
+BBFILE_PRIORITY_multimedia-layer = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_multimedia-layer = "1"
-LAYERDEPENDS_multimedia-layer = "core"
+LAYERDEPENDS_multimedia-layer = "core openembedded-layer meta-python"
-LAYERSERIES_COMPAT_multimedia-layer = "sumo"
+LAYERSERIES_COMPAT_multimedia-layer = "mickledore"
diff --git a/meta-multimedia/licenses/AOM-Patent-License-1.0 b/meta-multimedia/licenses/AOM-Patent-License-1.0
new file mode 100644
index 0000000000..493f616370
--- /dev/null
+++ b/meta-multimedia/licenses/AOM-Patent-License-1.0
@@ -0,0 +1,108 @@
+Alliance for Open Media Patent License 1.0
+
+1. License Terms.
+
+1.1. Patent License. Subject to the terms and conditions of this License, each
+ Licensor, on behalf of itself and successors in interest and assigns,
+ grants Licensee a non-sublicensable, perpetual, worldwide, non-exclusive,
+ no-charge, royalty-free, irrevocable (except as expressly stated in this
+ License) patent license to its Necessary Claims to make, use, sell, offer
+ for sale, import or distribute any Implementation.
+
+1.2. Conditions.
+
+1.2.1. Availability. As a condition to the grant of rights to Licensee to make,
+ sell, offer for sale, import or distribute an Implementation under
+ Section 1.1, Licensee must make its Necessary Claims available under
+ this License, and must reproduce this License with any Implementation
+ as follows:
+
+ a. For distribution in source code, by including this License in the
+ root directory of the source code with its Implementation.
+
+ b. For distribution in any other form (including binary, object form,
+ and/or hardware description code (e.g., HDL, RTL, Gate Level Netlist,
+ GDSII, etc.)), by including this License in the documentation, legal
+ notices, and/or other written materials provided with the
+ Implementation.
+
+1.2.2. Additional Conditions. This license is directly from Licensor to
+ Licensee. Licensee acknowledges as a condition of benefiting from it
+ that no rights from Licensor are received from suppliers, distributors,
+ or otherwise in connection with this License.
+
+1.3. Defensive Termination. If any Licensee, its Affiliates, or its agents
+ initiates patent litigation or files, maintains, or voluntarily
+ participates in a lawsuit against another entity or any person asserting
+ that any Implementation infringes Necessary Claims, any patent licenses
+ granted under this License directly to the Licensee are immediately
+ terminated as of the date of the initiation of action unless 1) that suit
+ was in response to a corresponding suit regarding an Implementation first
+ brought against an initiating entity, or 2) that suit was brought to
+ enforce the terms of this License (including intervention in a third-party
+ action by a Licensee).
+
+1.4. Disclaimers. The Reference Implementation and Specification are provided
+ "AS IS" and without warranty. The entire risk as to implementing or
+ otherwise using the Reference Implementation or Specification is assumed
+ by the implementer and user. Licensor expressly disclaims any warranties
+ (express, implied, or otherwise), including implied warranties of
+ merchantability, non-infringement, fitness for a particular purpose, or
+ title, related to the material. IN NO EVENT WILL LICENSOR BE LIABLE TO
+ ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL,
+ INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF
+ ACTION OF ANY KIND WITH RESPECT TO THIS LICENSE, WHETHER BASED ON BREACH
+ OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR
+ NOT THE OTHER PARTRY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+2. Definitions.
+
+2.1. Affiliate. "Affiliate" means an entity that directly or indirectly
+ Controls, is Controlled by, or is under common Control of that party.
+
+2.2. Control. "Control" means direct or indirect control of more than 50% of
+ the voting power to elect directors of that corporation, or for any other
+ entity, the power to direct management of such entity.
+
+2.3. Decoder. "Decoder" means any decoder that conforms fully with all
+ non-optional portions of the Specification.
+
+2.4. Encoder. "Encoder" means any encoder that produces a bitstream that can
+ be decoded by a Decoder only to the extent it produces such a bitstream.
+
+2.5. Final Deliverable. "Final Deliverable" means the final version of a
+ deliverable approved by the Alliance for Open Media as a Final
+ Deliverable.
+
+2.6. Implementation. "Implementation" means any implementation, including the
+ Reference Implementation, that is an Encoder and/or a Decoder. An
+ Implementation also includes components of an Implementation only to the
+ extent they are used as part of an Implementation.
+
+2.7. License. "License" means this license.
+
+2.8. Licensee. "Licensee" means any person or entity who exercises patent
+ rights granted under this License.
+
+2.9. Licensor. "Licensor" means (i) any Licensee that makes, sells, offers
+ for sale, imports or distributes any Implementation, or (ii) a person
+ or entity that has a licensing obligation to the Implementation as a
+ result of its membership and/or participation in the Alliance for Open
+ Media working group that developed the Specification.
+
+2.10. Necessary Claims. "Necessary Claims" means all claims of patents or
+ patent applications, (a) that currently or at any time in the future,
+ are owned or controlled by the Licensor, and (b) (i) would be an
+ Essential Claim as defined by the W3C Policy as of February 5, 2004
+ (https://www.w3.org/Consortium/Patent-Policy-20040205/#def-essential)
+ as if the Specification was a W3C Recommendation; or (ii) are infringed
+ by the Reference Implementation.
+
+2.11. Reference Implementation. "Reference Implementation" means an Encoder
+ and/or Decoder released by the Alliance for Open Media as a Final
+ Deliverable.
+
+2.12. Specification. "Specification" means the specification designated by
+ the Alliance for Open Media as a Final Deliverable for which this
+ License was issued.
+
diff --git a/meta-multimedia/licenses/BellBird b/meta-multimedia/licenses/BellBird
new file mode 100644
index 0000000000..bc5c03fa8e
--- /dev/null
+++ b/meta-multimedia/licenses/BellBird
@@ -0,0 +1,25 @@
+(c) Copyright the authors of Bellbird. All rights reserved.
+
+Permission is hereby granted, free of charge, to use and distribute
+this software and its documentation without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, sublicense, and/or sell copies of this work, and to
+permit persons to whom this work is furnished to do so, subject to
+the following conditions:
+ 1. The code must retain the above copyright notice, this list of
+ conditions and the following disclaimer.
+ 2. Any modifications must be clearly marked as such.
+ 3. Original authors' names are not deleted.
+ 4. The authors' names are not used to endorse or promote products
+ derived from this software without specific prior written
+ permission.
+
+THE CONTRIBUTORS TO THIS WORK
+DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
+ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
+SHALL THE CONTRIBUTORS BE LIABLE
+FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
diff --git a/meta-multimedia/licenses/CMU-Tex b/meta-multimedia/licenses/CMU-Tex
new file mode 100644
index 0000000000..f512228523
--- /dev/null
+++ b/meta-multimedia/licenses/CMU-Tex
@@ -0,0 +1,20 @@
+Copyright (C) 2001-2014 Carnegie Mellon University
+
+Permission is granted to make and distribute verbatim copies of
+this manual provided the copyright notice and this permission notice
+are preserved on all copies.
+
+Permission is granted to process this file through TeX, or otherwise and
+print the results, provided the printed document carries copying
+permission notice identical to this one except for the removal of this
+paragraph (this paragraph not being relevant to the printed manual).
+
+Permission is granted to copy and distribute modified versions of this
+manual under the conditions for verbatim copying, provided that the entire
+resulting derived work is distributed under the terms of a permission
+notice identical to this one.
+
+Permission is granted to copy and distribute translations of this manual
+into another language, under the above conditions for modified versions,
+except that this permission notice may be stated in a translation approved
+by the authors.
diff --git a/meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android b/meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android
new file mode 100644
index 0000000000..05b32bdeaf
--- /dev/null
+++ b/meta-multimedia/licenses/Fraunhofer_FDK_AAC_Codec_Library_for_Android
@@ -0,0 +1,92 @@
+Software License for The Fraunhofer FDK AAC Codec Library for Android
+
+© Copyright 1995 - 2018 Fraunhofer-Gesellschaft zur Förderung der angewandten
+Forschung e.V. All rights reserved.
+
+ 1. INTRODUCTION
+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. This FDK AAC Codec software is intended to be used on
+a wide variety of Android devices.
+
+AAC's HE-AAC and HE-AAC v2 versions are regarded as today's most efficient
+general perceptual audio codecs. AAC-ELD is considered the best-performing
+full-bandwidth communications codec by independent studies and is widely
+deployed. AAC has been standardized by ISO and IEC as part of the MPEG
+specifications.
+
+Patent licenses for necessary patent claims for the FDK AAC Codec (including
+those of Fraunhofer) may be obtained through Via Licensing
+(www.vialicensing.com) or through the respective patent owners individually for
+the purpose of encoding or decoding bit streams in products that are compliant
+with the ISO/IEC MPEG audio standards. Please note that most manufacturers of
+Android devices already license these patent claims through Via Licensing or
+directly from the patent owners, and therefore FDK AAC Codec software may
+already be covered under those patent licenses when it is used for those
+licensed purposes only.
+
+Commercially-licensed AAC software libraries, including floating-point versions
+with enhanced sound quality, are also available from Fraunhofer. Users are
+encouraged to check the Fraunhofer website for additional applications
+information and documentation.
+
+2. COPYRIGHT LICENSE
+
+Redistribution and use in source and binary forms, with or without modification,
+are permitted without payment of copyright license fees provided that you
+satisfy the following conditions:
+
+You must retain the complete text of this software license in redistributions of
+the FDK AAC Codec or your modifications thereto in source code form.
+
+You must retain the complete text of this software license in the documentation
+and/or other materials provided with redistributions of the FDK AAC Codec or
+your modifications thereto in binary form. You must make available free of
+charge copies of the complete source code of the FDK AAC Codec and your
+modifications thereto to recipients of copies in binary form.
+
+The name of Fraunhofer may not be used to endorse or promote products derived
+from this library without prior written permission.
+
+You may not charge copyright license fees for anyone to use, copy or distribute
+the FDK AAC Codec software or your modifications thereto.
+
+Your modified versions of the FDK AAC Codec must carry prominent notices stating
+that you changed the software and the date of any change. For modified versions
+of the FDK AAC Codec, the term "Fraunhofer FDK AAC Codec Library for Android"
+must be replaced by the term "Third-Party Modified Version of the Fraunhofer FDK
+AAC Codec Library for Android."
+
+3. NO PATENT LICENSE
+
+NO EXPRESS OR IMPLIED LICENSES TO ANY PATENT CLAIMS, including without
+limitation the patents of Fraunhofer, ARE GRANTED BY THIS SOFTWARE LICENSE.
+Fraunhofer provides no warranty of patent non-infringement with respect to this
+software.
+
+You may use this FDK AAC Codec software or modifications thereto only for
+purposes that are authorized by appropriate patent licenses.
+
+4. DISCLAIMER
+
+This FDK AAC Codec software is provided by Fraunhofer on behalf of the copyright
+holders and contributors "AS IS" and WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES,
+including but not limited to the implied warranties of merchantability and
+fitness for a particular purpose. IN NO EVENT SHALL THE COPYRIGHT HOLDER 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), arising in any way out of the use of
+this software, even if advised of the possibility of such damage.
+
+5. CONTACT INFORMATION
+
+Fraunhofer Institute for Integrated Circuits IIS
+Attention: Audio and Multimedia Departments - FDK AAC LL
+Am Wolfsmantel 33
+91058 Erlangen, Germany
+
+www.iis.fraunhofer.de/amm
+amm-info@iis.fraunhofer.de
+
diff --git a/meta-multimedia/licenses/Sun b/meta-multimedia/licenses/Sun
new file mode 100644
index 0000000000..d125a16575
--- /dev/null
+++ b/meta-multimedia/licenses/Sun
@@ -0,0 +1,23 @@
+This source code is a product of Sun Microsystems, Inc. and is provided
+for unrestricted use. Users may copy or modify this source code without
+charge.
+
+SUN SOURCE CODE IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING
+THE WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
+PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
+
+Sun source code is provided with no support and without any obligation on
+the part of Sun Microsystems, Inc. to assist in its use, correction,
+modification or enhancement.
+
+SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
+INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY THIS SOFTWARE
+OR ANY PART THEREOF.
+
+In no event will Sun Microsystems, Inc. be liable for any lost revenue
+or profits or other special, indirect and consequential damages, even if
+Sun has been advised of the possibility of such damages.
+
+Sun Microsystems, Inc.
+2550 Garcia Avenue
+Mountain View, California 94043
diff --git a/meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch b/meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch
deleted file mode 100644
index 9bfc31b8eb..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/files/move_vapigen.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-OE-Core's vala class known one type of vapigen.m4 and deletes it since its
-not cross compile friendly, but this is a different case here where its not
-same vapigen.m4 just name is same and it tends to inherit vala bbclass so
-save it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: gupnp-dlna-0.10.5/m4/vapigen-custom.m4
-===================================================================
---- /dev/null
-+++ gupnp-dlna-0.10.5/m4/vapigen-custom.m4
-@@ -0,0 +1,43 @@
-+
-+dnl vala.m4
-+dnl
-+dnl Copyright 2010 Marc-Andre Lureau
-+dnl Copyright 2011 Rodney Dawes <dobey.pwns@gmail.com>
-+dnl
-+dnl This library is free software; you can redistribute it and/or
-+dnl modify it under the terms of the GNU Lesser General Public
-+dnl License as published by the Free Software Foundation; either
-+dnl version 2.1 of the License, or (at your option) any later version.
-+dnl
-+dnl This library is distributed in the hope that it will be useful,
-+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-+dnl Lesser General Public License for more details.
-+dnl
-+dnl You should have received a copy of the GNU Lesser General Public
-+dnl License along with this library; if not, write to the Free Software
-+dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-+
-+dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg <mail@jensge.org>
-+
-+# Check whether the Vala API Generator exists in `PATH'. If it is found,
-+# the variable VAPIGEN is set. Optionally a minimum release number of the
-+# generator can be requested.
-+#
-+# VALA_PROG_VAPIGEN([MINIMUM-VERSION])
-+# ------------------------------------
-+AC_DEFUN([GUPNP_PROG_VAPIGEN],
-+[AC_PATH_PROG([VAPIGEN], [vapigen], [])
-+ AS_IF([test -z "$VAPIGEN"],
-+ [AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])],
-+ [AS_IF([test -n "$1"],
-+ [AC_MSG_CHECKING([$VAPIGEN is at least version $1])
-+ am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator *//'`
-+ AS_VERSION_COMPARE([$1], ["$am__vapigen_version"],
-+ [AC_MSG_RESULT([yes])],
-+ [AC_MSG_RESULT([yes])],
-+ [AC_MSG_RESULT([no])
-+ AC_MSG_WARN([Vala API Generator $1 not found.])
-+ VAPIGEN=""
-+ ])])])
-+])
-Index: gupnp-dlna-0.10.5/m4/vapigen.m4
-===================================================================
---- gupnp-dlna-0.10.5.orig/m4/vapigen.m4
-+++ /dev/null
-@@ -1,43 +0,0 @@
--
--dnl vala.m4
--dnl
--dnl Copyright 2010 Marc-Andre Lureau
--dnl Copyright 2011 Rodney Dawes <dobey.pwns@gmail.com>
--dnl
--dnl This library is free software; you can redistribute it and/or
--dnl modify it under the terms of the GNU Lesser General Public
--dnl License as published by the Free Software Foundation; either
--dnl version 2.1 of the License, or (at your option) any later version.
--dnl
--dnl This library is distributed in the hope that it will be useful,
--dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
--dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
--dnl Lesser General Public License for more details.
--dnl
--dnl You should have received a copy of the GNU Lesser General Public
--dnl License along with this library; if not, write to the Free Software
--dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
--
--dnl dropped everything but VALA_PROG_VAPIGEN - Jens Georg <mail@jensge.org>
--
--# Check whether the Vala API Generator exists in `PATH'. If it is found,
--# the variable VAPIGEN is set. Optionally a minimum release number of the
--# generator can be requested.
--#
--# VALA_PROG_VAPIGEN([MINIMUM-VERSION])
--# ------------------------------------
--AC_DEFUN([GUPNP_PROG_VAPIGEN],
--[AC_PATH_PROG([VAPIGEN], [vapigen], [])
-- AS_IF([test -z "$VAPIGEN"],
-- [AC_MSG_WARN([No Vala API Generator found. You will not be able to generate .vapi files.])],
-- [AS_IF([test -n "$1"],
-- [AC_MSG_CHECKING([$VAPIGEN is at least version $1])
-- am__vapigen_version=`$VAPIGEN --version | sed 's/Vala API Generator *//'`
-- AS_VERSION_COMPARE([$1], ["$am__vapigen_version"],
-- [AC_MSG_RESULT([yes])],
-- [AC_MSG_RESULT([yes])],
-- [AC_MSG_RESULT([no])
-- AC_MSG_WARN([Vala API Generator $1 not found.])
-- VAPIGEN=""
-- ])])])
--])
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc b/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc
deleted file mode 100644
index 23f17eddf6..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gssdp.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Resource discovery and announcement over SSDP"
-DESCRIPTION = "GSSDP implements resource discovery and announcement over SSDP (Simpe Service Discovery Protocol)."
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
-DEPENDS = "glib-2.0 libsoup-2.4"
-
-inherit autotools pkgconfig gobject-introspection vala
-
-# Copy vapigen.m4 so that it doesn't get removed by vala class
-# (normally this would be the right thing to do, but in gssdp the vapigen.m4 has only a custom macro)
-do_configure_prepend() {
- cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true
-}
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)}"
-PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+"
-
-PACKAGES =+ "gssdp-tools"
-
-FILES_gssdp-tools = "${bindir}/gssdp* ${datadir}/gssdp/*.glade"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb
deleted file mode 100644
index b60d1ea447..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.0.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require gssdp.inc
-
-inherit gtk-doc
-
-PACKAGECONFIG[gtk] = "--with-gtk,--without-gtk,gtk+3"
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.0/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "b30c9a406853c6a3a012d151d6e7ad2c"
-SRC_URI[sha256sum] = "a1e17c09c7e1a185b0bd84fd6ff3794045a3cd729b707c23e422ff66471535dc"
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
new file mode 100644
index 0000000000..ad99bbffa3
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gssdp_1.4.0.1.bb
@@ -0,0 +1,31 @@
+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 features_check
+
+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.inc b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc
deleted file mode 100644
index 0544501569..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av.inc
+++ /dev/null
@@ -1,13 +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 = "LGPLv2"
-DEPENDS = "gupnp"
-
-inherit autotools pkgconfig gobject-introspection vala
-
-# Copy vapigen.m4 so that it doesn't get removed by vala class
-# (normally this would be the right thing to do, but in gupnp-av the vapigen.m4 has only a custom macro)
-do_configure_prepend() {
- cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true
-}
-
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.12.10.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb
deleted file mode 100644
index cfd0227e47..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.12.10.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require gupnp-av.inc
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/0.12/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "215f626508d76b767f5da7c9b92e87d8"
-SRC_URI[sha256sum] = "8038ef84dddbe7ad91c205bf91dddf684f072df8623f39b6555a6bb72837b85a"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
- file://libgupnp-av/gupnp-av.h;beginline=1;endline=22;md5=2b47b7b5f799d2ebabe62b895e848820"
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
new file mode 100644
index 0000000000..48de5868de
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-av_0.14.0.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] = "20aed546fc882e78a3f186a0c8bce5c841cc3a44b7ea528298fbdc82596fb156"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb
deleted file mode 100644
index 3cafd69764..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.10.5.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Helpers for AV applications using DLNA"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274"
-
-DEPENDS = "libxml2 glib-2.0"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.10/${BPN}-${PV}.tar.xz \
- file://move_vapigen.patch \
-"
-SRC_URI[md5sum] = "2d0dc1e4189d0243ac3838ece1e8fea0"
-SRC_URI[sha256sum] = "123e368227c11d5c17fc1aa76cbdaffa345355eb51d172cd39fc74a5b468ff6a"
-
-inherit autotools pkgconfig gobject-introspection vala
-
-PACKAGECONFIG ?= "gstreamer"
-PACKAGECONFIG[gstreamer] = "--enable-gstreamer-metadata-backend,--disable-gstreamer-metadata-backend,gstreamer1.0 gstreamer1.0-plugins-base"
-
-FILES_${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.12.0.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.12.0.bb
new file mode 100644
index 0000000000..8dc5fce199
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-dlna_0.12.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Helpers for AV applications using DLNA"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
+ file://libgupnp-dlna/gupnp-dlna-profile.h;beginline=1;endline=22;md5=1b85459f65cb1e73a885ca137aab6274"
+
+DEPENDS = "libxml2 glib-2.0"
+
+SRC_URI = "http://download.gnome.org/sources/${BPN}/0.12/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "3d53b96f85bc5628d33e367ec9bf2adb38ef2b34d7ad0434a6ba0cf4ad9048e6"
+
+inherit meson pkgconfig gobject-introspection vala
+
+PACKAGECONFIG ?= "gstreamer"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer_backend=enabled,-Dgstreamer_backend=disabled,gstreamer1.0 gstreamer1.0-plugins-base"
+
+FILES:${PN} += "${datadir}/gupnp-dlna-2.0/dlna-profiles"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb
deleted file mode 100644
index 0aa594dc78..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_0.2.4.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Helpers for interacting with Internet Gateway Devices over UPnP"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://libgupnp-igd/gupnp-simple-igd.c;beginline=1;endline=21;md5=aa292c0d9390463a6e1055dc5fc68e80"
-
-DEPENDS = "glib-2.0 gupnp sqlite3"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.2/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "124371136b5a7b1056a3681780a62772"
-SRC_URI[sha256sum] = "38c4a6d7718d17eac17df95a3a8c337677eda77e58978129ad3182d769c38e44"
-
-inherit autotools pkgconfig gtk-doc gobject-introspection
-
-EXTRA_OECONF = "--disable-python"
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
new file mode 100644
index 0000000000..49cd8d8318
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-igd_1.2.0.bb
@@ -0,0 +1,13 @@
+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-tools_0.10.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
new file mode 100644
index 0000000000..20aced8329
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.10.2.bb
@@ -0,0 +1,15 @@
+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.8.13.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb
deleted file mode 100644
index 3ddb818df2..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp-tools_0.8.13.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Tools for GUPnP"
-LICENSE = "GPLv2+"
-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 intltool-native"
-RRECOMMENDS_${PN} = "adwaita-icon-theme"
-
-SRC_URI = "http://download.gnome.org/sources/${BPN}/0.8/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "212d85ebce89b32468b59e1164050d40"
-SRC_URI[sha256sum] = "aa3decb9d532c0e2e505adc592f431fd81c0231ded2981129e87da13712479ed"
-inherit distro_features_check autotools pkgconfig gettext
-
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc b/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc
deleted file mode 100644
index 6ce9631616..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp.inc
+++ /dev/null
@@ -1,25 +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 = "LGPLv2+"
-
-DEPENDS = "e2fsprogs gssdp libsoup-2.4 libxml2"
-
-inherit autotools pkgconfig vala gobject-introspection
-
-# Copy vapigen.m4 so that it doesn't get removed by vala class
-# (normally this would be the right thing to do, but in gupnp the vapigen.m4 has only a custom macro)
-do_configure_prepend() {
- cp -f ${S}/m4/vapigen.m4 ${S}/m4/vapigen-custom.m4 || true
-}
-
-FILES_${PN} = "${libdir}/*.so.*"
-FILES_${PN}-dev += "${bindir}/gupnp-binding-tool"
-
-RDEPENDS_${PN}-dev = "python-textutils python-xml"
-
-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}/
-}
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-all-Drop-xmlRecoverMemory.patch b/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-all-Drop-xmlRecoverMemory.patch
new file mode 100644
index 0000000000..a3941f345f
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp/0001-all-Drop-xmlRecoverMemory.patch
@@ -0,0 +1,107 @@
+From 46f13d9929c81ec2340a1a5d48f596b1892c5a81 Mon Sep 17 00:00:00 2001
+From: Jens Georg <mail@jensge.org>
+Date: Thu, 4 May 2023 19:14:29 +0200
+Subject: [PATCH] all: Drop xmlRecoverMemory
+
+use xmlReadMemory, also use NONET flat
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Backport [https://github.com/GNOME/gupnp/commit/80e68995b745a5900eaaa1d0c424d3a9d354e42d]
+---
+ libgupnp/gupnp-control-point.c | 7 +++++--
+ libgupnp/gupnp-service-info.c | 7 +++++--
+ libgupnp/gupnp-service-proxy-action.c | 7 +++++--
+ libgupnp/gupnp-service-proxy.c | 7 +++++--
+ libgupnp/gupnp-service.c | 7 +++++--
+ 5 files changed, 25 insertions(+), 10 deletions(-)
+
+diff --git a/libgupnp/gupnp-control-point.c b/libgupnp/gupnp-control-point.c
+index dc04732..99ebda5 100644
+--- a/libgupnp/gupnp-control-point.c
++++ b/libgupnp/gupnp-control-point.c
+@@ -608,8 +608,11 @@ got_description_url (SoupSession *session,
+ xmlDoc *xml_doc;
+
+ /* Parse response */
+- xml_doc = xmlRecoverMemory (msg->response_body->data,
+- msg->response_body->length);
++ xml_doc = xmlReadMemory (msg->response_body->data,
++ msg->response_body->length,
++ NULL,
++ NULL,
++ XML_PARSE_NONET | XML_PARSE_RECOVER);
+ if (xml_doc) {
+ doc = gupnp_xml_doc_new (xml_doc);
+
+diff --git a/libgupnp/gupnp-service-info.c b/libgupnp/gupnp-service-info.c
+index 9a9f4de..d468801 100644
+--- a/libgupnp/gupnp-service-info.c
++++ b/libgupnp/gupnp-service-info.c
+@@ -592,8 +592,11 @@ got_scpd_url (G_GNUC_UNUSED SoupSession *session,
+ if (SOUP_STATUS_IS_SUCCESSFUL (msg->status_code)) {
+ xmlDoc *scpd;
+
+- scpd = xmlRecoverMemory (msg->response_body->data,
+- msg->response_body->length);
++ scpd = xmlReadMemory (msg->response_body->data,
++ msg->response_body->length,
++ NULL,
++ NULL,
++ XML_PARSE_NONET | XML_PARSE_RECOVER);
+ if (scpd) {
+ introspection = gupnp_service_introspection_new (scpd);
+
+diff --git a/libgupnp/gupnp-service-proxy-action.c b/libgupnp/gupnp-service-proxy-action.c
+index 4d9336c..ef8a808 100644
+--- a/libgupnp/gupnp-service-proxy-action.c
++++ b/libgupnp/gupnp-service-proxy-action.c
+@@ -86,8 +86,11 @@ check_action_response (G_GNUC_UNUSED GUPnPServiceProxy *proxy,
+ }
+
+ /* Parse response */
+- response = xmlRecoverMemory (action->msg->response_body->data,
+- action->msg->response_body->length);
++ response = xmlReadMemory (action->msg->response_body->data,
++ action->msg->response_body->length,
++ NULL,
++ NULL,
++ XML_PARSE_NONET | XML_PARSE_RECOVER);
+
+ if (!response) {
+ if (action->msg->status_code == SOUP_STATUS_OK) {
+diff --git a/libgupnp/gupnp-service-proxy.c b/libgupnp/gupnp-service-proxy.c
+index 25d5ef6..af2fd46 100644
+--- a/libgupnp/gupnp-service-proxy.c
++++ b/libgupnp/gupnp-service-proxy.c
+@@ -1560,8 +1560,11 @@ server_handler (G_GNUC_UNUSED SoupServer *soup_server,
+ }
+
+ /* Parse the actual XML message content */
+- doc = xmlRecoverMemory (msg->request_body->data,
+- msg->request_body->length);
++ doc = xmlReadMemory (msg->request_body->data,
++ msg->request_body->length,
++ NULL,
++ NULL,
++ XML_PARSE_NONET | XML_PARSE_RECOVER);
+ if (doc == NULL) {
+ /* Failed */
+ g_warning ("Failed to parse NOTIFY message body");
+diff --git a/libgupnp/gupnp-service.c b/libgupnp/gupnp-service.c
+index 67b3d43..0ebfb26 100644
+--- a/libgupnp/gupnp-service.c
++++ b/libgupnp/gupnp-service.c
+@@ -985,8 +985,11 @@ control_server_handler (SoupServer *server,
+ *end = '\0';
+
+ /* Parse action_node */
+- doc = xmlRecoverMemory (msg->request_body->data,
+- msg->request_body->length);
++ doc = xmlReadMemory (msg->request_body->data,
++ msg->request_body->length,
++ NULL,
++ NULL,
++ XML_PARSE_NONET | XML_PARSE_RECOVER);
+ if (doc == NULL) {
+ soup_message_set_status (msg, SOUP_STATUS_BAD_REQUEST);
+
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb
deleted file mode 100644
index 1bdf7d79bc..0000000000
--- a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.0.2.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require gupnp.inc
-
-SRC_URI = "${GNOME_MIRROR}/${BPN}/1.0/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "afd96fe73856b38aaf1baf7526e08edd"
-SRC_URI[sha256sum] = "5173fda779111c6b01cd4a5e41b594322be9d04f8c74d3361f0a0c2069c77610"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
- file://libgupnp/gupnp.h;beginline=1;endline=20;md5=d78a69d9b6e63ee2dc72e7b674d97520"
diff --git a/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
new file mode 100644
index 0000000000..c21e7a05bf
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/gupnp/gupnp_1.4.1.bb
@@ -0,0 +1,24 @@
+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 \
+ file://0001-all-Drop-xmlRecoverMemory.patch \
+"
+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/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
new file mode 100644
index 0000000000..ee78196779
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/libupnp/libupnp/0001-ithread-Use-pthread_mutexattr_gettype-pthread_mutexa.patch
@@ -0,0 +1,42 @@
+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.6.bb b/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.6.bb
new file mode 100644
index 0000000000..81b42da412
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/libupnp/libupnp_1.14.6.bb
@@ -0,0 +1,24 @@
+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/libupnp/libupnp_git.bb b/meta-multimedia/recipes-connectivity/libupnp/libupnp_git.bb
deleted file mode 100644
index 7a524f2d50..0000000000
--- a/meta-multimedia/recipes-connectivity/libupnp/libupnp_git.bb
+++ /dev/null
@@ -1,20 +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"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b3190d5244e08e78e4c8ee78544f4863"
-
-PV = "1.8.2+git${SRCPV}"
-SRCREV = "56d6042abae861e8838a4e6b6b5b575b99e38f34"
-SRC_URI = "git://github.com/mrjimenez/pupnp.git;protocol=https"
-
-S="${WORKDIR}/git"
-
-inherit autotools
-
-EXTRA_OECONF += "--enable-reuseaddr" \ No newline at end of file
diff --git a/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb b/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb
deleted file mode 100644
index f13f5cec06..0000000000
--- a/meta-multimedia/recipes-connectivity/rygel/rygel_0.34.0.bb
+++ /dev/null
@@ -1,68 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "libxml2 glib-2.0 gssdp gupnp gupnp-av gupnp-dlna gstreamer1.0 gstreamer1.0-plugins-base ossp-uuid libgee libsoup-2.4 libmediaart-2.0 libunistring sqlite3 intltool-native"
-RDEPENDS_${PN} = "gstreamer1.0-plugins-base-playback shared-mime-info"
-RRECOMMENDS_${PN} = "rygel-plugin-media-export"
-
-GNOME_COMPRESS_TYPE = "xz"
-SRC_URI[archive.md5sum] = "7d8923324b280cd5452803d61176a34a"
-SRC_URI[archive.sha256sum] = "fbb2d46cbe4e750df6610b4c66b2278f06d1f71a257c7903e676ccb394dad418"
-
-inherit gnomebase vala gobject-introspection gettext systemd
-
-EXTRA_OECONF = "--disable-tracker-plugin --with-media-engine=gstreamer"
-
-PACKAGECONFIG ?= "external mpris ruih media-export gst-launch"
-
-PACKAGECONFIG_append = "${@bb.utils.contains("DISTRO_FEATURES", "x11", " gtk+3", "", d)}"
-
-PACKAGECONFIG[external] = "--enable-external-plugin,--disable-external-plugin"
-PACKAGECONFIG[mpris] = "--enable-mpris-plugin,--disable-mpris-plugin"
-PACKAGECONFIG[ruih] = "--enable-ruih-plugin,--disable-ruih-plugin"
-PACKAGECONFIG[media-export] = "--enable-media-export-plugin,--disable-media-export-plugin"
-PACKAGECONFIG[gst-launch] = "--enable-gst-launch-plugin,--disable-gst-launch-plugin"
-PACKAGECONFIG[gtk+3] = ",--without-ui,gtk+3"
-PACKAGECONFIG[lms] = "--enable-lms-plugin,--disable-lms-plugin"
-
-LIBV = "2.6"
-
-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}${libdir}/systemd/user/rygel.service ]; then
- mkdir -p ${D}${systemd_unitdir}/system
- mv ${D}${libdir}/systemd/user/rygel.service ${D}${systemd_unitdir}/system
- rmdir ${D}${libdir}/systemd/user ${D}${libdir}/systemd
- 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"), '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"), '(.*)\.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.40.4.bb b/meta-multimedia/recipes-connectivity/rygel/rygel_0.40.4.bb
new file mode 100644
index 0000000000..8bc8767d8f
--- /dev/null
+++ b/meta-multimedia/recipes-connectivity/rygel/rygel_0.40.4.bb
@@ -0,0 +1,93 @@
+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-dvb/oscam/oscam/respect-cflags.patch b/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch
deleted file mode 100644
index 179d04a559..0000000000
--- a/meta-multimedia/recipes-dvb/oscam/oscam/respect-cflags.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Upstream-Status: Backport
-http://www.streamboard.tv/oscam/changeset/10068
-http://www.streamboard.tv/oscam/changeset/10070
-
-Index: /CMakeLists.txt
-===================================================================
---- a/CMakeLists.txt (revision 10067)
-+++ b/CMakeLists.txt (revision 10068)
-@@ -625,8 +625,8 @@
- list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR)
- add_definitions ("-W -Wall ")
-- set (CMAKE_C_FLAGS "-Wall -O2")
-- set (CMAKE_CXX_FLAGS "-Wall -O2")
-- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
-- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
-+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2")
-+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2")
-+ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb")
-+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb")
- endif (CMAKE_COMPILER_IS_GNUCC)
- # some optimisations
-Index: /csctapi/CMakeLists.txt
-===================================================================
---- a/csctapi/CMakeLists.txt (revision 10069)
-+++ b/csctapi/CMakeLists.txt (revision 10070)
-@@ -6,8 +6,8 @@
- list(GET GCC_VERSION_COMPONENTS 0 GCC_MINOR)
- add_definitions ("-W -Wall ")
-- set (CMAKE_C_FLAGS "-Wall -O2")
-- set (CMAKE_CXX_FLAGS "-Wall -O2")
-- set (CMAKE_C_FLAGS_DEBUG "-O0 -ggdb")
-- set (CMAKE_CXX_FLAGS_DEBUG "-O0 -ggdb")
-+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -O2")
-+ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -O2")
-+ set (CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ggdb")
-+ set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -ggdb")
- endif (CMAKE_COMPILER_IS_GNUCC)
- # Mac extra removes to avoid ranlib warnings in some situations
diff --git a/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb b/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
index cac517ff5d..bd2df5d8d6 100644
--- a/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
+++ b/meta-multimedia/recipes-dvb/oscam/oscam_svn.bb
@@ -1,15 +1,14 @@
SUMMARY = "OSCam: Open Source Conditional Access Module"
HOMEPAGE = "http://www.streamboard.tv/oscam/"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "libusb1 openssl pcsc-lite"
SRC_URI = "svn://www.streamboard.tv/svn/oscam;module=trunk;protocol=http \
- file://respect-cflags.patch \
-"
-SRCREV = "9164"
+ "
+SRCREV = "11718"
PV = "1.10+${SRCPV}"
S = "${WORKDIR}/trunk"
@@ -18,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
new file mode 100644
index 0000000000..c6e20b75e8
--- /dev/null
+++ b/meta-multimedia/recipes-dvb/tvheadend/tvheadend/0001-adjust-for-64bit-time_t.patch
@@ -0,0 +1,176 @@
+From 81f29b028473a3d8ac0aaeb126fc0336a98bb077 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Nov 2019 11:03:16 -0800
+Subject: [PATCH] adjust for 64bit time_t
+
+Break assumption about time_t being of certain size, and use intmax_t to
+print it where needed
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/cron.c | 4 ++--
+ src/epggrab/module/psip.c | 2 +-
+ src/epggrab/otamux.c | 2 +-
+ src/parsers/parser_teletext.c | 2 +-
+ src/tvheadend.h | 6 +-----
+ src/webui/webui.c | 4 ++--
+ 6 files changed, 8 insertions(+), 12 deletions(-)
+
+--- a/src/cron.c
++++ b/src/cron.c
+@@ -329,9 +329,9 @@ cron_next ( cron_t *c, const time_t now,
+ *ret = mktime(&tmp);
+ if (*ret <= now) {
+ #ifndef CRON_TEST
+- tvherror(LS_CRON, "invalid time, now %"PRItime_t", result %"PRItime_t, now, *ret);
++ tvherror(LS_CRON, "invalid time, now %"PRItime_t", result %"PRItime_t, (intmax_t)now, (intmax_t)*ret);
+ #else
+- printf("ERROR: invalid time, now %"PRItime_t", result %"PRItime_t"\n", now, *ret);
++ printf("ERROR: invalid time, now %"PRItime_t", result %"PRItime_t"\n", (intmax_t)now, (intmax_t)*ret);
+ #endif
+ *ret = now + 600;
+ }
+--- a/src/epggrab/module/psip.c
++++ b/src/epggrab/module/psip.c
+@@ -223,14 +223,14 @@ _psip_eit_callback_channel
+
+ 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, etmlocation,
++ eventid, (intmax_t)start, length, etmlocation,
+ lang_str_get(title, NULL), titlelen);
+
+ save2 = changes2 = 0;
+
+ ebc = epg_broadcast_find_by_time(ch, mod, start, stop, 1, &save2, &changes2);
+ tvhtrace(LS_PSIP, " eid=%5d, start=%"PRItime_t", stop=%"PRItime_t", ebc=%p",
+- eventid, start, stop, ebc);
++ eventid, (intmax_t)start, (intmax_t)stop, ebc);
+ if (!ebc) goto next;
+
+ save2 |= epg_broadcast_set_dvb_eid(ebc, eventid, &changes2);
+--- a/src/epggrab/otamux.c
++++ b/src/epggrab/otamux.c
+@@ -719,7 +719,7 @@ epggrab_ota_start_cb ( void *p );
+ static void
+ epggrab_ota_next_arm( time_t next )
+ {
+- tvhtrace(LS_EPGGRAB, "next ota start event in %li seconds", next - time(NULL));
++ tvhtrace(LS_EPGGRAB, "next ota start event in %jd seconds", (intmax_t)(next - time(NULL)));
+ gtimer_arm_absn(&epggrab_ota_start_timer, epggrab_ota_start_cb, NULL, next);
+ dbus_emit_signal_s64("/epggrab/ota", "next", next);
+ }
+--- a/src/parsers/parser_teletext.c
++++ b/src/parsers/parser_teletext.c
+@@ -625,7 +625,7 @@ tt_construct_unix_time(uint8_t *buf)
+ r[2] = mktime(&tm);
+
+ for(i = 0; i < 3; i++)
+- v[i] = labs(r[i] - t);
++ v[i] = (time_t)llabs((long long)(r[i] - t));
+
+ if(v[0] < v[1] && v[0] < v[2])
+ return r[0];
+--- a/src/tvheadend.h
++++ b/src/tvheadend.h
+@@ -332,11 +332,7 @@ void tvh_qsort_r(void *base, size_t nmem
+ # endif /* ULONG_MAX */
+ #endif /* __WORDSIZE */
+
+-#if __WORDSIZE == 32 && defined(PLATFORM_FREEBSD)
+-#define PRItime_t "d"
+-#else
+-#define PRItime_t "ld"
+-#endif
++#define PRItime_t "jd"
+
+ /* transcoding */
+ #define TVH_NAME_LEN 32
+--- a/src/webui/webui.c
++++ b/src/webui/webui.c
+@@ -886,9 +886,9 @@ http_dvr_list_playlist(http_connection_t
+ bandwidth = ((8*fsize) / (durration*1024.0));
+ strftime(buf, sizeof(buf), "%FT%T%z", localtime_r(&(de->de_start), &tm));
+
+- htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", durration, lang_str_get(de->de_title, NULL));
++ htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", (intmax_t)durration, lang_str_get(de->de_title, NULL));
+
+- htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", durration);
++ htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", (intmax_t)durration);
+ uuid = idnode_uuid_as_str(&de->de_id, ubuf);
+ htsbuf_qprintf(hq, "#EXT-X-STREAM-INF:PROGRAM-ID=%s,BANDWIDTH=%d\n", uuid, bandwidth);
+ htsbuf_qprintf(hq, "#EXT-X-PROGRAM-DATE-TIME:%s\n", buf);
+@@ -944,9 +944,9 @@ http_dvr_playlist(http_connection_t *hc,
+ strftime(buf, sizeof(buf), "%FT%T%z", localtime_r(&(de->de_start), &tm));
+
+ htsbuf_append_str(hq, "#EXTM3U\n");
+- htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", durration, lang_str_get(de->de_title, NULL));
++ htsbuf_qprintf(hq, "#EXTINF:%"PRItime_t",%s\n", (intmax_t)durration, lang_str_get(de->de_title, NULL));
+
+- htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", durration);
++ htsbuf_qprintf(hq, "#EXT-X-TARGETDURATION:%"PRItime_t"\n", (intmax_t)durration);
+ uuid = idnode_uuid_as_str(&de->de_id, ubuf);
+ htsbuf_qprintf(hq, "#EXT-X-STREAM-INF:PROGRAM-ID=%s,BANDWIDTH=%d\n", uuid, bandwidth);
+ htsbuf_qprintf(hq, "#EXT-X-PROGRAM-DATE-TIME:%s\n", buf);
+--- a/src/dvr/dvr_rec.c
++++ b/src/dvr/dvr_rec.c
+@@ -723,7 +723,7 @@ static const char *
+ dvr_sub_start(const char *id, const char *fmt, const void *aux, char *tmp, size_t tmplen)
+ {
+ char buf[16];
+- snprintf(buf, sizeof(buf), "%"PRItime_t, (time_t)dvr_entry_get_start_time((dvr_entry_t *)aux, 0));
++ snprintf(buf, sizeof(buf), "%"PRItime_t, (intmax_t)dvr_entry_get_start_time((dvr_entry_t *)aux, 0));
+ return dvr_do_prefix(id, fmt, buf, tmp, tmplen);
+ }
+
+@@ -747,7 +747,7 @@ static const char *
+ dvr_sub_stop(const char *id, const char *fmt, const void *aux, char *tmp, size_t tmplen)
+ {
+ char buf[16];
+- snprintf(buf, sizeof(buf), "%"PRItime_t, (time_t)dvr_entry_get_stop_time((dvr_entry_t *)aux));
++ snprintf(buf, sizeof(buf), "%"PRItime_t, (intmax_t)dvr_entry_get_stop_time((dvr_entry_t *)aux));
+ return dvr_do_prefix(id, fmt, buf, tmp, tmplen);
+ }
+
+--- a/src/epggrab/module.c
++++ b/src/epggrab/module.c
+@@ -582,7 +582,7 @@ static void _epggrab_socket_handler ( ep
+
+ /* Process */
+ if ( data ) {
+- tvhinfo(mod->subsys, "%s: grab took %"PRItime_t" seconds", mod->id, tm2 - tm1);
++ tvhinfo(mod->subsys, "%s: grab took %"PRItime_t" seconds", mod->id, (intmax_t)(tm2 - tm1));
+ epggrab_module_parse(mod, data);
+
+ /* Failed */
+--- a/src/epggrab/module/opentv.c
++++ b/src/epggrab/module/opentv.c
+@@ -497,7 +497,7 @@ opentv_parse_event_section_one
+ 1, &save, &changes);
+ tvhdebug(LS_OPENTV, "find by time start %"PRItime_t " stop "
+ "%"PRItime_t " ch %"PRId64" eid %d = %p",
+- ev.start, ev.stop, ch->ch_number, ev.eid, ebc);
++ (intmax_t)ev.start, (intmax_t)ev.stop, ch->ch_number, ev.eid, ebc);
+ save |= epg_broadcast_set_dvb_eid(ebc, ev.eid, &changes);
+ } else {
+ ebc = epg_broadcast_find_by_eid(ch, ev.eid);
+--- a/src/webui/simpleui.c
++++ b/src/webui/simpleui.c
+@@ -556,12 +556,12 @@ page_status(http_connection_t *hc,
+ "<title>%s</title>\n",
+ a.tm_year + 1900, a.tm_mon + 1, a.tm_mday,
+ a.tm_hour, a.tm_min,
+- de->de_start,
+- (time_t)dvr_entry_get_extra_time_pre(de),
++ (intmax_t)de->de_start,
++ (intmax_t)dvr_entry_get_extra_time_pre(de),
+ b.tm_year+1900, b.tm_mon + 1, b.tm_mday,
+ b.tm_hour, b.tm_min,
+- de->de_stop,
+- (time_t)dvr_entry_get_extra_time_post(de),
++ (intmax_t)de->de_stop,
++ (intmax_t)dvr_entry_get_extra_time_post(de),
+ buf);
+
+ rstatus = val2str(de->de_sched_state, recstatustxt);
diff --git a/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb b/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
new file mode 100644
index 0000000000..d64ee96f78
--- /dev/null
+++ b/meta-multimedia/recipes-dvb/tvheadend/tvheadend_git.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Tvheadend: TV streaming server and recorder"
+HOMEPAGE = "https://tvheadend.org/"
+
+inherit autotools-brokensep gettext gitpkgv pkgconfig
+
+DEPENDS = "avahi cmake-native dvb-apps libdvbcsa libpcre2 openssl uriparser zlib"
+
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=9cae5acac2e9ee2fc3aec01ac88ce5db"
+
+SRC_URI = "git://github.com/tvheadend/tvheadend.git;branch=master;protocol=https \
+ file://0001-adjust-for-64bit-time_t.patch \
+ "
+
+SRCREV = "cc602833684953fc3e6f1c89d4f08f6dfef179e3"
+PV = "4.3+git${SRCPV}"
+PKGV = "4.3+git${GITPKGV}"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "--arch=${TARGET_ARCH} \
+ --disable-hdhomerun_static \
+ --disable-ffmpeg_static \
+ --disable-libav \
+ --python=python3 \
+ --disable-dvbscan \
+ "
+
+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-mediacenter/kodi/jsonschemabuilder-native.bb b/meta-multimedia/recipes-mediacenter/kodi/jsonschemabuilder-native.bb
deleted file mode 100644
index fdb769943d..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/jsonschemabuilder-native.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Kodi Media Center"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://JsonSchemaBuilder.cpp;beginline=2;endline=18;md5=1f67721215c03f66545390f6e45b99c7"
-
-SRCREV = "661dd08d221f5b2bf509a696a6aca5ee7d45bb27"
-
-PV = "17.1+gitr${SRCPV}"
-SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Krypton"
-
-inherit autotools-brokensep gettext native
-
-S = "${WORKDIR}/git/tools/depends/native/JsonSchemaBuilder/src"
-
-do_compile_prepend() {
- for i in $(find . -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
- done
-
- for i in $(find . -name "*.mak*" -o -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
- done
-}
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-Fix-file_Emu-on-musl.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-Fix-file_Emu-on-musl.patch
deleted file mode 100644
index 20b6377889..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-Fix-file_Emu-on-musl.patch
+++ /dev/null
@@ -1,496 +0,0 @@
-From 7ae4fcf290ffb0b76374efafeaee575456ac9023 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 6 Nov 2016 23:08:27 -0800
-Subject: [PATCH 01/10] Fix file_Emu on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/cores/DllLoader/exports/emu_msvcrt.cpp | 28 ++--
- xbmc/cores/DllLoader/exports/emu_msvcrt.h | 2 +-
- .../DllLoader/exports/util/EmuFileWrapper.cpp | 172 +++++++++------------
- xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h | 27 ++--
- xbmc/cores/DllLoader/exports/wrapper.c | 4 +-
- 5 files changed, 99 insertions(+), 134 deletions(-)
-
-diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
-index ab14942..a39014a 100644
---- a/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
-+++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.cpp
-@@ -51,6 +51,7 @@
- #include <fcntl.h>
- #include <time.h>
- #include <signal.h>
-+#include <paths.h>
- #ifdef TARGET_POSIX
- #include "PlatformDefs.h" // for __stat64
- #include "XFileUtils.h"
-@@ -476,13 +477,10 @@ extern "C"
- EmuFileObject* o = g_emuFileWrapper.GetFileObjectByDescriptor(fd);
- if (o)
- {
-- if(!o->used)
-- return NULL;
--
- int nmode = convert_fmode(mode);
- if( (o->mode & nmode) != nmode)
- CLog::Log(LOGWARNING, "dll_fdopen - mode 0x%x differs from fd mode 0x%x", nmode, o->mode);
-- return &o->file_emu;
-+ return g_emuFileWrapper.GetStreamByFileObject(o);
- }
- else if (!IS_STD_DESCRIPTOR(fd))
- {
-@@ -545,7 +543,7 @@ extern "C"
- return -1;
- }
- object->mode = iMode;
-- return g_emuFileWrapper.GetDescriptorByStream(&object->file_emu);
-+ return g_emuFileWrapper.GetDescriptorByFileObject(object);
- }
- delete pFile;
- return -1;
-@@ -1214,8 +1212,8 @@ extern "C"
- {
- FILE* file = NULL;
- #if defined(TARGET_LINUX) && !defined(TARGET_ANDROID)
-- if (strcmp(filename, MOUNTED) == 0
-- || strcmp(filename, MNTTAB) == 0)
-+ if (strcmp(filename, _PATH_MOUNTED) == 0
-+ || strcmp(filename, _PATH_MNTTAB) == 0)
- {
- CLog::Log(LOGINFO, "%s - something opened the mount file, let's hope it knows what it's doing", __FUNCTION__);
- return fopen(filename, mode);
-@@ -1622,7 +1620,7 @@ extern "C"
- int ret;
-
- ret = dll_fgetpos64(stream, &tmpPos);
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
- *pos = (fpos_t)tmpPos;
- #else
- pos->__pos = (off_t)tmpPos.__pos;
-@@ -1635,8 +1633,9 @@ extern "C"
- CFile* pFile = g_emuFileWrapper.GetFileXbmcByStream(stream);
- if (pFile != NULL)
- {
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-- *pos = pFile->GetPosition();
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+ uint64_t *ppos = (uint64_t *) pos;
-+ *ppos = pFile->GetPosition();
- #else
- pos->__pos = pFile->GetPosition();
- #endif
-@@ -1657,8 +1656,9 @@ extern "C"
- int fd = g_emuFileWrapper.GetDescriptorByStream(stream);
- if (fd >= 0)
- {
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-- if (dll_lseeki64(fd, *pos, SEEK_SET) >= 0)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+ const uint64_t *ppos = (const uint64_t *) pos;
-+ if (dll_lseeki64(fd, *ppos, SEEK_SET) >= 0)
- #else
- if (dll_lseeki64(fd, (__off64_t)pos->__pos, SEEK_SET) >= 0)
- #endif
-@@ -1674,7 +1674,7 @@ extern "C"
- {
- // it might be something else than a file, or the file is not emulated
- // let the operating system handle it
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
- return fsetpos(stream, pos);
- #else
- return fsetpos64(stream, pos);
-@@ -1690,7 +1690,7 @@ extern "C"
- if (fd >= 0)
- {
- fpos64_t tmpPos;
--#if !defined(TARGET_POSIX) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if !defined(__GLIBC__) || defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
- tmpPos= *pos;
- #else
- tmpPos.__pos = (off64_t)(pos->__pos);
-diff --git a/xbmc/cores/DllLoader/exports/emu_msvcrt.h b/xbmc/cores/DllLoader/exports/emu_msvcrt.h
-index 3294d9a..c7c483f 100644
---- a/xbmc/cores/DllLoader/exports/emu_msvcrt.h
-+++ b/xbmc/cores/DllLoader/exports/emu_msvcrt.h
-@@ -24,7 +24,7 @@
- #define _onexit_t void*
- #endif
-
--#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- typedef off_t __off_t;
- typedef int64_t off64_t;
- typedef off64_t __off64_t;
-diff --git a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp
-index 8927d41..e9a2ab0 100644
---- a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp
-+++ b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.cpp
-@@ -52,16 +52,7 @@ constexpr bool isValidFilePtr(FILE* f)
- }
- CEmuFileWrapper::CEmuFileWrapper()
- {
-- // since we always use dlls we might just initialize it directly
-- for (int i = 0; i < MAX_EMULATED_FILES; i++)
-- {
-- memset(&m_files[i], 0, sizeof(EmuFileObject));
-- m_files[i].used = false;
--#if defined(TARGET_WINDOWS) && (_MSC_VER >= 1900)
-- m_files[i].file_emu._Placeholder = new kodi_iobuf();
--#endif
-- FileDescriptor(m_files[i].file_emu)->_file = -1;
-- }
-+ memset(m_files, 0, sizeof(m_files));
- }
-
- CEmuFileWrapper::~CEmuFileWrapper()
-@@ -73,29 +64,7 @@ void CEmuFileWrapper::CleanUp()
- {
- CSingleLock lock(m_criticalSection);
- for (int i = 0; i < MAX_EMULATED_FILES; i++)
-- {
-- if (m_files[i].used)
-- {
-- m_files[i].file_xbmc->Close();
-- delete m_files[i].file_xbmc;
--
-- if (m_files[i].file_lock)
-- {
-- delete m_files[i].file_lock;
-- m_files[i].file_lock = nullptr;
-- }
--#if !defined(TARGET_WINDOWS)
-- //Don't memset on Windows as it overwrites our pointer
-- memset(&m_files[i], 0, sizeof(EmuFileObject));
--#endif
-- m_files[i].used = false;
-- FileDescriptor(m_files[i].file_emu)->_file = -1;
-- }
--#if defined(TARGET_WINDOWS) && (_MSC_VER >= 1900)
-- delete static_cast<kodi_iobuf*>(m_files[i].file_emu._Placeholder);
-- m_files[i].file_emu._Placeholder = nullptr;
--#endif
-- }
-+ UnRegisterFileObject(&m_files[i], true);
- }
-
- EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile)
-@@ -106,13 +75,11 @@ EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile)
-
- for (int i = 0; i < MAX_EMULATED_FILES; i++)
- {
-- if (!m_files[i].used)
-+ if (!m_files[i].file_xbmc)
- {
- // found a free location
- object = &m_files[i];
-- object->used = true;
- object->file_xbmc = pFile;
-- FileDescriptor(object->file_emu)->_file = (i + FILE_WRAPPER_OFFSET);
- object->file_lock = new CCriticalSection();
- break;
- }
-@@ -121,82 +88,74 @@ EmuFileObject* CEmuFileWrapper::RegisterFileObject(XFILE::CFile* pFile)
- return object;
- }
-
--void CEmuFileWrapper::UnRegisterFileObjectByDescriptor(int fd)
-+void CEmuFileWrapper::UnRegisterFileObject(EmuFileObject *object, bool free_file)
-+
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (! (i >= 0 && i < MAX_EMULATED_FILES))
-- return;
-+ if (object && object->file_xbmc)
-+ {
-+ if (object->file_xbmc && free_file)
-+ {
-+ object->file_xbmc->Close();
-+ delete object->file_xbmc;
-+ }
-+ if (object->file_lock)
-+ {
-+ delete object->file_lock;
-+ }
-
-- if (!m_files[i].used)
-- return;
-+ memset(object, 0, sizeof(*object));
-+ }
-+}
-
-+void CEmuFileWrapper::UnRegisterFileObjectByDescriptor(int fd)
-+{
- CSingleLock lock(m_criticalSection);
--
-- // we assume the emulated function alreay deleted the CFile object
-- if (m_files[i].file_lock)
-- {
-- delete m_files[i].file_lock;
-- m_files[i].file_lock = nullptr;
-- }
--#if !defined(TARGET_WINDOWS)
-- //Don't memset on Windows as it overwrites our pointer
-- memset(&m_files[i], 0, sizeof(EmuFileObject));
--#endif
-- m_files[i].used = false;
-- FileDescriptor(m_files[i].file_emu)->_file = -1;
-+ UnRegisterFileObject(GetFileObjectByDescriptor(fd), false);
- }
-
- void CEmuFileWrapper::UnRegisterFileObjectByStream(FILE* stream)
- {
- if (isValidFilePtr(stream))
- {
-- return UnRegisterFileObjectByDescriptor(FileDescriptor(*stream)->_file);
-+ CSingleLock lock(m_criticalSection);
-+ UnRegisterFileObject(GetFileObjectByStream(stream), false);
- }
- }
-
- void CEmuFileWrapper::LockFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-+ EmuFileObject* object = GetFileObjectByDescriptor(fd);
-+ if (object && object->file_xbmc)
- {
-- if (m_files[i].used)
-- {
-- m_files[i].file_lock->lock();
-- }
-+ object->file_lock->lock();
- }
- }
-
- bool CEmuFileWrapper::TryLockFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-+ EmuFileObject* object = GetFileObjectByDescriptor(fd);
-+ if (object && object->file_xbmc)
- {
-- if (m_files[i].used)
-- {
-- return m_files[i].file_lock->try_lock();
-- }
-+ return object->file_lock->try_lock();
- }
- return false;
- }
-
- void CEmuFileWrapper::UnlockFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-+ EmuFileObject* object = GetFileObjectByDescriptor(fd);
-+ if (object && object->file_xbmc)
- {
-- if (m_files[i].used)
-- {
-- m_files[i].file_lock->unlock();
-- }
-+ object->file_lock->unlock();
- }
- }
-
- EmuFileObject* CEmuFileWrapper::GetFileObjectByDescriptor(int fd)
- {
-- int i = fd - FILE_WRAPPER_OFFSET;
-+ int i = fd - 0x7000000;
- if (i >= 0 && i < MAX_EMULATED_FILES)
- {
-- if (m_files[i].used)
-+ if (m_files[i].file_xbmc)
- {
- return &m_files[i];
- }
-@@ -204,20 +163,39 @@ EmuFileObject* CEmuFileWrapper::GetFileObjectByDescriptor(int fd)
- return nullptr;
- }
-
-+int CEmuFileWrapper::GetDescriptorByFileObject(EmuFileObject *object)
-+{
-+ int i = object - m_files;
-+ if (i >= 0 && i < MAX_EMULATED_FILES)
-+ {
-+ return 0x7000000 + i;
-+ }
-+
-+ return -1;
-+}
-+
- EmuFileObject* CEmuFileWrapper::GetFileObjectByStream(FILE* stream)
- {
-- if (isValidFilePtr(stream))
-+ EmuFileObject *object = (EmuFileObject*) stream;
-+ if (object >= &m_files[0] || object < &m_files[MAX_EMULATED_FILES])
- {
-- return GetFileObjectByDescriptor(FileDescriptor(*stream)->_file);
-+ if (object->file_xbmc)
-+ {
-+ return object;
-+ }
- }
-+ return NULL;
-+}
-
-- return nullptr;
-+FILE* CEmuFileWrapper::GetStreamByFileObject(EmuFileObject *object)
-+{
-+ return (FILE*) object;
- }
-
- XFILE::CFile* CEmuFileWrapper::GetFileXbmcByDescriptor(int fd)
- {
- auto object = GetFileObjectByDescriptor(fd);
-- if (object != nullptr && object->used)
-+ if (object != nullptr)
- {
- return object->file_xbmc;
- }
-@@ -228,8 +206,9 @@ XFILE::CFile* CEmuFileWrapper::GetFileXbmcByStream(FILE* stream)
- {
- if (isValidFilePtr(stream))
- {
-- auto object = GetFileObjectByDescriptor(FileDescriptor(*stream)->_file);
-- if (object != nullptr && object->used)
-+ EmuFileObject* object = GetFileObjectByStream(stream);
-+ if (object != NULL)
-+
- {
- return object->file_xbmc;
- }
-@@ -239,32 +218,21 @@ XFILE::CFile* CEmuFileWrapper::GetFileXbmcByStream(FILE* stream)
-
- int CEmuFileWrapper::GetDescriptorByStream(FILE* stream)
- {
-- if (isValidFilePtr(stream))
-- {
-- int i = FileDescriptor(*stream)->_file - FILE_WRAPPER_OFFSET;
-- if (i >= 0 && i < MAX_EMULATED_FILES)
-- {
-- return i + FILE_WRAPPER_OFFSET;
-- }
-- }
-- return -1;
-+ return GetDescriptorByFileObject(GetFileObjectByStream(stream));
- }
-
- FILE* CEmuFileWrapper::GetStreamByDescriptor(int fd)
- {
-- auto object = GetFileObjectByDescriptor(fd);
-- if (object != nullptr && object->used)
-- {
-- return &object->file_emu;
-- }
-- return nullptr;
-+ return GetStreamByFileObject(GetFileObjectByDescriptor(fd));
-+}
-+
-+bool CEmuFileWrapper::DescriptorIsEmulatedFile(int fd)
-+{
-+ return GetFileObjectByDescriptor(fd) != NULL;
- }
-
- bool CEmuFileWrapper::StreamIsEmulatedFile(FILE* stream)
- {
-- if (isValidFilePtr(stream))
-- {
-- return DescriptorIsEmulatedFile(FileDescriptor(*stream)->_file);
-- }
-- return false;
-+ return GetFileObjectByStream(stream) != NULL;
- }
-+
-diff --git a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h
-index 786fa85..311a5cf 100644
---- a/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h
-+++ b/xbmc/cores/DllLoader/exports/util/EmuFileWrapper.h
-@@ -25,14 +25,14 @@
- #include "system.h"
- #include "threads/CriticalSection.h"
-
--#if defined(TARGET_POSIX) && !defined(TARGET_DARWIN) && !defined(TARGET_FREEBSD) && !defined(TARGET_ANDROID) && !defined(__UCLIBC__)
--#define _file _fileno
--#elif defined(__UCLIBC__)
--#define _file __filedes
--#endif
-+//#if defined(TARGET_POSIX) && !defined(TARGET_DARWIN) && !defined(TARGET_FREEBSD) && !defined(TARGET_ANDROID) && !defined(__UCLIBC__)
-+//#define _file _fileno
-+//#elif defined(__UCLIBC__)
-+//#define _file __filedes
-+//#endif
-
- #define MAX_EMULATED_FILES 50
--#define FILE_WRAPPER_OFFSET 0x00000200
-+//#define FILE_WRAPPER_OFFSET 0x00000200
-
- namespace XFILE
- {
-@@ -47,12 +47,9 @@ struct kodi_iobuf {
-
- typedef struct stEmuFileObject
- {
-- FILE file_emu;
- XFILE::CFile* file_xbmc;
- CCriticalSection *file_lock;
- int mode;
-- //Stick this last to avoid 3-7 bytes of padding
-- bool used;
- } EmuFileObject;
-
- class CEmuFileWrapper
-@@ -67,22 +64,22 @@ public:
- void CleanUp();
-
- EmuFileObject* RegisterFileObject(XFILE::CFile* pFile);
-+ void UnRegisterFileObject(EmuFileObject*, bool free_file);
- void UnRegisterFileObjectByDescriptor(int fd);
- void UnRegisterFileObjectByStream(FILE* stream);
- void LockFileObjectByDescriptor(int fd);
- bool TryLockFileObjectByDescriptor(int fd);
- void UnlockFileObjectByDescriptor(int fd);
- EmuFileObject* GetFileObjectByDescriptor(int fd);
-+ int GetDescriptorByFileObject(EmuFileObject*);
- EmuFileObject* GetFileObjectByStream(FILE* stream);
-+ FILE* GetStreamByFileObject(EmuFileObject*);
- XFILE::CFile* GetFileXbmcByDescriptor(int fd);
- XFILE::CFile* GetFileXbmcByStream(FILE* stream);
-- static int GetDescriptorByStream(FILE* stream);
-+ int GetDescriptorByStream(FILE* stream);
- FILE* GetStreamByDescriptor(int fd);
-- static constexpr bool DescriptorIsEmulatedFile(int fd)
-- {
-- return fd >= FILE_WRAPPER_OFFSET && fd < FILE_WRAPPER_OFFSET + MAX_EMULATED_FILES;
-- }
-- static bool StreamIsEmulatedFile(FILE* stream);
-+ bool DescriptorIsEmulatedFile(int fd);
-+ bool StreamIsEmulatedFile(FILE* stream);
- private:
- EmuFileObject m_files[MAX_EMULATED_FILES];
- CCriticalSection m_criticalSection;
-diff --git a/xbmc/cores/DllLoader/exports/wrapper.c b/xbmc/cores/DllLoader/exports/wrapper.c
-index e363662..07825f3 100644
---- a/xbmc/cores/DllLoader/exports/wrapper.c
-+++ b/xbmc/cores/DllLoader/exports/wrapper.c
-@@ -39,13 +39,13 @@
- #endif
- #include <dlfcn.h>
-
--#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_FREEBSD) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- typedef off_t __off_t;
- typedef int64_t off64_t;
- typedef off64_t __off64_t;
- typedef fpos_t fpos64_t;
- #define stat64 stat
--#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID)
-+#if defined(TARGET_DARWIN) || defined(TARGET_ANDROID) || !defined(__GLIBC__)
- #define _G_va_list va_list
- #endif
- #endif
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch
deleted file mode 100644
index 12a6c06e82..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0001-change-order-of-detecting-libegl-and-libgles2.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 21524598110e7a55113205dda4bc1a6d5987111c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 9 May 2017 06:41:33 +0000
-Subject: [PATCH] change order of detecting libegl and libgles2
-
-This actually helps building it on rpi/userland
-where libEGL depends on few functions from libGLESv2
-see
-https://www.raspberrypi.org/forums/viewtopic.php?t=7090
-
-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 b9e4240..1ca0297 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -951,8 +951,8 @@ if test "$use_gles" = "yes"; then
- AC_MSG_RESULT(== WARNING: OpenGLES support is assumed.)
- LIBS="$LIBS -lEGL -lGLESv2 -lbcm_host -lvcos -lvchiq_arm -lmmal -lmmal_core -lmmal_util -lvcsm"
- else
-- AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
- AC_CHECK_LIB([GLESv2],[main],, AC_MSG_ERROR($missing_library))
-+ AC_CHECK_LIB([EGL], [main],, AC_MSG_ERROR($missing_library))
- fi
- fi
- else
---
-1.9.1
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch
deleted file mode 100644
index 463a5c4f81..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0002-Remove-FILEWRAP.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From ad1977a358319093b305df6d84be6db676ef1e4a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 6 Nov 2016 22:35:16 -0800
-Subject: [PATCH 02/10] Remove FILEWRAP
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/utils/posix/PosixInterfaceForCLog.cpp | 6 +-----
- xbmc/utils/posix/PosixInterfaceForCLog.h | 4 +---
- 2 files changed, 2 insertions(+), 8 deletions(-)
-
-Index: git/xbmc/utils/posix/PosixInterfaceForCLog.cpp
-===================================================================
---- git.orig/xbmc/utils/posix/PosixInterfaceForCLog.cpp
-+++ git/xbmc/utils/posix/PosixInterfaceForCLog.cpp
-@@ -29,10 +29,6 @@
- #include "platform/android/activity/XBMCApp.h"
- #endif // TARGET_ANDROID
-
--struct FILEWRAP : public FILE
--{};
--
--
- CPosixInterfaceForCLog::CPosixInterfaceForCLog() :
- m_file(NULL)
- { }
-@@ -52,7 +48,7 @@ bool CPosixInterfaceForCLog::OpenLogFile
- (void)remove(backupOldLogToFilename.c_str()); // if it's failed, try to continue
- (void)rename(logFilename.c_str(), backupOldLogToFilename.c_str()); // if it's failed, try to continue
-
-- m_file = (FILEWRAP*)fopen(logFilename.c_str(), "wb");
-+ m_file = fopen(logFilename.c_str(), "wb");
- if (!m_file)
- return false; // error, can't open log file
-
-Index: git/xbmc/utils/posix/PosixInterfaceForCLog.h
-===================================================================
---- git.orig/xbmc/utils/posix/PosixInterfaceForCLog.h
-+++ git/xbmc/utils/posix/PosixInterfaceForCLog.h
-@@ -34,5 +34,5 @@ public:
- void PrintDebugString(const std::string& debugString);
- static void GetCurrentLocalTime(int& hour, int& minute, int& second, double& millisecond);
- private:
-- FILEWRAP* m_file;
-+ FILE* m_file;
- };
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch
deleted file mode 100644
index 49217a4f7b..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a91a3ba229dc5903935f7dd98dd03bbb4fe5ac1f Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sat, 6 Feb 2016 15:43:01 +0100
-Subject: [PATCH 03/10] configure: don't try to run stuff to find tinyxml
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 34fe643..3132dc1 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1043,7 +1043,7 @@ fi
- AC_LANG_PUSH([C++])
- PKG_CHECK_MODULES([TINYXML], [tinyxml >= 2.6.2],
- [INCLUDES="$INCLUDES $TINYXML_CFLAGS"; LIBS="$LIBS $TINYXML_LIBS"],
-- [AC_RUN_IFELSE(
-+ [AC_COMPILE_IFELSE(
- [AC_LANG_SOURCE([[
- #include <stdlib.h>
- #include <tinyxml.h>
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch
deleted file mode 100644
index dc37439353..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0004-handle-SIGTERM.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 49046c1685465a5486fe9e1c04b99c585aab6862 Mon Sep 17 00:00:00 2001
-From: Stefan Saraev <stefan@saraev.ca>
-Date: Wed, 2 Nov 2016 11:28:34 -0700
-Subject: [PATCH 04/10] handle SIGTERM
-
-0. CApplication::Stop cant be trusted. (deadlocks crashes and boo)
-
-so, when shutdown/reboot is requested:
-
-1. save an exit code (for CEC...)
-2. call CPowerManager::{Reboot,PowerDown}
-3. ... then systemd sends TERM and waits xx seconds before sending KILL
-4. CApplication::Stop has xx seconds to save guisettings.xml and boo
-5. CEC thread has xx seconds to switch off after it received OnQuit
-6. addons / pvrmanager / cec / everything else.. are free to deadlock / crash now, we dont care
-7. KILL
-
-Signed-off-by: Stefan Saraev <stefan@saraev.ca>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/Application.cpp | 17 ++++++++++++-----
- xbmc/Application.h | 1 +
- xbmc/XBApplicationEx.cpp | 1 +
- xbmc/XBApplicationEx.h | 1 +
- xbmc/platform/posix/main.cpp | 15 +++++++++++++++
- 5 files changed, 30 insertions(+), 5 deletions(-)
-
-diff --git a/xbmc/Application.cpp b/xbmc/Application.cpp
-index 100a2f2..fda892d 100644
---- a/xbmc/Application.cpp
-+++ b/xbmc/Application.cpp
-@@ -2426,12 +2426,12 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
- switch (pMsg->dwMessage)
- {
- case TMSG_POWERDOWN:
-- Stop(EXITCODE_POWERDOWN);
-+ SetExitCode(EXITCODE_POWERDOWN);
- g_powerManager.Powerdown();
- break;
-
- case TMSG_QUIT:
-- Stop(EXITCODE_QUIT);
-+ SetExitCode(EXITCODE_QUIT);
- break;
-
- case TMSG_SHUTDOWN:
-@@ -2452,12 +2452,13 @@ void CApplication::OnApplicationMessage(ThreadMessage* pMsg)
-
- case TMSG_RESTART:
- case TMSG_RESET:
-- Stop(EXITCODE_REBOOT);
-+ SetExitCode(EXITCODE_REBOOT);
- g_powerManager.Reboot();
- break;
-
- case TMSG_RESTARTAPP:
- #if defined(TARGET_WINDOWS) || defined(TARGET_LINUX)
-+ SetExitCode(EXITCODE_RESTARTAPP);
- Stop(EXITCODE_RESTARTAPP);
- #endif
- break;
-@@ -2881,6 +2882,13 @@ bool CApplication::Cleanup()
- }
- }
-
-+void CApplication::SetExitCode(int exitCode)
-+{
-+ // save it for CEC
-+ m_ExitCode = exitCode;
-+ m_ExitCodeSet = true;
-+}
-+
- void CApplication::Stop(int exitCode)
- {
- try
-@@ -2888,7 +2896,7 @@ void CApplication::Stop(int exitCode)
- m_frameMoveGuard.unlock();
-
- CVariant vExitCode(CVariant::VariantTypeObject);
-- vExitCode["exitcode"] = exitCode;
-+ vExitCode["exitcode"] = m_ExitCode;
- CAnnouncementManager::GetInstance().Announce(System, "xbmc", "OnQuit", vExitCode);
-
- // Abort any active screensaver
-@@ -2922,7 +2930,6 @@ void CApplication::Stop(int exitCode)
-
- m_bStop = true;
- m_AppFocused = false;
-- m_ExitCode = exitCode;
- CLog::Log(LOGNOTICE, "stop all");
-
- // cancel any jobs from the jobmanager
-diff --git a/xbmc/Application.h b/xbmc/Application.h
-index a9d9bf5..e536deb 100644
---- a/xbmc/Application.h
-+++ b/xbmc/Application.h
-@@ -159,6 +159,7 @@ public:
- void StopPVRManager();
- void ReinitPVRManager();
- bool IsCurrentThread() const;
-+ void SetExitCode(int exitCode);
- void Stop(int exitCode);
- void RestartApp();
- void UnloadSkin(bool forReload = false);
-diff --git a/xbmc/XBApplicationEx.cpp b/xbmc/XBApplicationEx.cpp
-index 035aed2..34102f5 100644
---- a/xbmc/XBApplicationEx.cpp
-+++ b/xbmc/XBApplicationEx.cpp
-@@ -46,6 +46,7 @@ CXBApplicationEx::CXBApplicationEx()
- m_bStop = false;
- m_AppFocused = true;
- m_ExitCode = EXITCODE_QUIT;
-+ m_ExitCodeSet = false;
- m_renderGUI = false;
- }
-
-diff --git a/xbmc/XBApplicationEx.h b/xbmc/XBApplicationEx.h
-index 9bc14fa..f696b89 100644
---- a/xbmc/XBApplicationEx.h
-+++ b/xbmc/XBApplicationEx.h
-@@ -42,6 +42,7 @@ public:
- // Variables for timing
- bool m_bStop;
- int m_ExitCode;
-+ bool m_ExitCodeSet;
- bool m_AppFocused;
- bool m_renderGUI;
-
-diff --git a/xbmc/platform/posix/main.cpp b/xbmc/platform/posix/main.cpp
-index a8b64e5..3d80032 100644
---- a/xbmc/platform/posix/main.cpp
-+++ b/xbmc/platform/posix/main.cpp
-@@ -41,12 +41,27 @@
- #include "input/linux/LIRC.h"
- #endif
- #include "platform/XbmcContext.h"
-+#include "Application.h"
-+
-+void xbmc_term_handler(int signum)
-+{
-+ CLog::Log(LOGINFO, "Received SIGTERM...");
-+ if (!g_application.m_ExitCodeSet)
-+ g_application.SetExitCode(EXITCODE_RESTARTAPP);
-+ g_application.Stop(EXITCODE_RESTARTAPP);
-+}
-
- #ifdef __cplusplus
- extern "C"
- #endif
- int main(int argc, char* argv[])
- {
-+ // SIGTERM handler
-+ struct sigaction action;
-+ memset(&action, 0, sizeof(struct sigaction));
-+ action.sa_handler = xbmc_term_handler;
-+ sigaction(SIGTERM, &action, NULL);
-+
- // set up some xbmc specific relationships
- XBMC::Context context;
-
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch
deleted file mode 100644
index ee10c40ac1..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0005-add-support-to-read-frequency-output-if-using-intel-.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4d1368d20f04216aec9551d9845b305f96a21015 Mon Sep 17 00:00:00 2001
-From: Stephan Raue <stephan@openelec.tv>
-Date: Mon, 1 Sep 2014 03:16:37 +0200
-Subject: [PATCH 05/10] add support to read frequency output if using intel's
- pstate driver
-
----
- xbmc/utils/CPUInfo.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/xbmc/utils/CPUInfo.cpp b/xbmc/utils/CPUInfo.cpp
-index 5e2ebbd..fd04d5a 100644
---- a/xbmc/utils/CPUInfo.cpp
-+++ b/xbmc/utils/CPUInfo.cpp
-@@ -274,6 +274,8 @@ CCPUInfo::CCPUInfo(void)
- m_fProcTemperature = fopen("/sys/class/thermal/thermal_zone0/temp", "r"); // On Raspberry PIs
-
- m_fCPUFreq = fopen ("/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq", "r");
-+ if (m_fCPUFreq == NULL)
-+ m_fCPUFreq = fopen ("/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq", "r");
- if (!m_fCPUFreq)
- {
- m_cpuInfoForFreq = true;
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch
deleted file mode 100644
index 08dfac3240..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0006-Disable-DVD-support.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 3d3ec391038c6ee73897a7fab753b11b589de1ed Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Nov 2016 12:39:20 -0700
-Subject: [PATCH 06/10] Disable DVD support
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.in | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 0d70e9b..050c7ca 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -10,8 +10,7 @@ EC_DIRS= \
- tools/EventClients
-
- DVDPCODECS_DIRS= \
-- lib \
-- lib/libdvd
-+ lib
-
- VideoPlayer_ARCHIVES=xbmc/cores/VideoPlayer/VideoPlayer.a \
- xbmc/cores/VideoPlayer/DVDCodecs/DVDCodecs.a \
-@@ -347,7 +346,6 @@ libaddon: exports
- $(MAKE) -C lib/addons/library.xbmc.pvr
- $(MAKE) -C lib/addons/library.kodi.inputstream
- dvdpcodecs: dllloader
-- $(MAKE) -C lib/libdvd
-
- dvdpextcodecs:
-
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch
deleted file mode 100644
index 8fd7ece054..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0007-Always-compile-libcpluff-as-PIC.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d989cbdb7686c3b95dc749967f89b93e47f955a6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 3 Nov 2016 13:10:00 -0700
-Subject: [PATCH 07/10] Always compile libcpluff as PIC
-
-Fixes errors e.g.
-
-ld: lib/cpluff/libcpluff/.libs/libcpluff.a(pcontrol.o): relocation R_X86_64_PC32 against symbol `cp_stop_plugins' can not be used when making a shared object; recompile with -fPIC
-
-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 3132dc1..ab4eea3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -2385,7 +2385,7 @@ XB_CONFIG_MODULE([lib/cpluff], [
- --prefix="${prefix}" --includedir="${includedir}" --libdir="${libdir}" --datadir="${datadir}" \
- --host=$host_alias \
- --build=$build_alias \
-- --target=$target_alias CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
-+ --target=$target_alias --with-pic=yes CFLAGS="$CFLAGS" CC="$CC" CXX="$CXX" LDFLAGS="$LDFLAGS" LIBS=""
- #LDFLAGS="$LDFLAGS -Wl,-read_only_relocs,suppress"
- ], [0])
-
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch
deleted file mode 100644
index 9390144ceb..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 51cd8d5f084013360b29fe497193288ebde2f4f9 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Wed, 29 Jul 2015 23:13:33 +0200
-Subject: [PATCH 08/10] kodi-config.cmake: use CMAKE_FIND_ROOT_PATH to fix
- cross-compilation
-
-When cross-compiling, the location at build time of the libraries is
-not the same as the one at run-time. The CMAKE_FIND_ROOT_PATH variable
-is here to handle this difference, so use it in kodi-config.cmake.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
----
- project/cmake/KodiConfig.cmake.in | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/project/cmake/KodiConfig.cmake.in b/project/cmake/KodiConfig.cmake.in
-index c02a680..9d6a566 100644
---- a/project/cmake/KodiConfig.cmake.in
-+++ b/project/cmake/KodiConfig.cmake.in
-@@ -7,10 +7,10 @@ if(NOT @APP_NAME_UC@_PREFIX)
- set(@APP_NAME_UC@_PREFIX @APP_PREFIX@)
- endif()
- if(NOT @APP_NAME_UC@_INCLUDE_DIR)
-- set(@APP_NAME_UC@_INCLUDE_DIR @APP_INCLUDE_DIR@)
-+ set(@APP_NAME_UC@_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_INCLUDE_DIR@)
- endif()
- if(NOT @APP_NAME_UC@_LIB_DIR)
-- set(@APP_NAME_UC@_LIB_DIR @APP_LIB_DIR@)
-+ set(@APP_NAME_UC@_LIB_DIR ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@)
- endif()
- if(NOT @APP_NAME_UC@_DATA_DIR)
- set(@APP_NAME_UC@_DATA_DIR @APP_DATA_DIR@)
-@@ -19,6 +19,7 @@ if(NOT WIN32)
- set(CMAKE_CXX_FLAGS "$ENV{CXXFLAGS} @CXX11_SWITCH@")
- endif()
- list(APPEND CMAKE_MODULE_PATH @APP_LIB_DIR@ @APP_DATA_DIR@/cmake)
-+list(APPEND CMAKE_MODULE_PATH ${CMAKE_FIND_ROOT_PATH}/@APP_LIB_DIR@ ${CMAKE_FIND_ROOT_PATH}/@APP_DATA_DIR@/cmake)
-
- string(REPLACE ";" " " ARCH_DEFINES "@ARCH_DEFINES@")
- add_definitions(${ARCH_DEFINES} -DBUILD_KODI_ADDON)
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch
deleted file mode 100644
index f3e739aedb..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0009-build-Add-support-for-musl-triplets.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From 8b2bad58585af0f829fb06e19c9bd2b6caf30808 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 6 Nov 2016 11:54:41 -0800
-Subject: [PATCH 09/10] build: Add support for musl triplets
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 12 ++++++------
- m4/xbmc_arch.m4 | 22 +++++++++++-----------
- tools/depends/configure.ac | 12 ++++++------
- 3 files changed, 23 insertions(+), 23 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ab4eea3..925466a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -526,7 +526,7 @@ case $host in
- use_x11=no
- build_shared_lib=yes
- ;;
-- i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="i486-linux"
-@@ -549,7 +549,7 @@ case $host in
- fi
- fi
- ;;
-- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="x86_64-linux"
-@@ -601,17 +601,17 @@ case $host in
- DEPENDS_ROOT_FOR_XCODE=$(echo ${prefix%/*})
- AC_SUBST([DEPENDS_ROOT_FOR_XCODE])
- ;;
-- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
-+ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="powerpc-linux"
- ;;
-- powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*)
-+ powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*|powerpc64*-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="powerpc64-linux"
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- target_platform=target_linux
- CORE_SYSTEM_NAME=linux
- ARCH="arm"
-@@ -621,7 +621,7 @@ case $host in
- use_gl=no
- USE_STATIC_FFMPEG=1
- ;;
-- aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*)
-+ aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*|aarch64*-*-linux-musl*)
- target_platform=target_linux
- ARCH="aarch64"
- use_arch="aarch64"
-diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
-index d28f263..ff5dc20 100644
---- a/m4/xbmc_arch.m4
-+++ b/m4/xbmc_arch.m4
-@@ -2,10 +2,10 @@ AC_DEFUN([XBMC_SETUP_ARCH_DEFINES],[
-
- # build detection and setup - this is the native arch
- case $build in
-- i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
-- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- i386-*-freebsd*)
-@@ -17,13 +17,13 @@ case $build in
- *86*-apple-darwin*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
- ;;
-- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
-+ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
- ;;
-- powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*)
-+ powerpc64-*-linux-gnu*|powerpc64-*-linux-uclibc*|powerpc64-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- *)
-@@ -33,10 +33,10 @@ esac
-
- # host detection and setup - this is the target arch
- case $host in
-- i*86*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ i*86*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
-- x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64-*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- i386-*-freebsd*)
-@@ -54,16 +54,16 @@ case $host in
- powerpc-apple-darwin*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_DARWIN -DTARGET_DARWIN_OSX -D_LINUX")
- ;;
-- powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*)
-+ powerpc-*-linux-gnu*|powerpc-*-linux-uclibc*|powerpc-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC")
- ;;
-- powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*)
-+ powerpc64*-*-linux-gnu*|powerpc64*-*-linux-uclibc*|powerpc64*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -D_POWERPC64")
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*|aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*|aarch64*-*-linux-gnu*|aarch64*-*-linux-uclibc*|aarch64*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
-- mips*-*-linux-gnu*|mips*-*-linux-uclibc*)
-+ mips*-*-linux-gnu*|mips*-*-linux-uclibc*|mips*-*-linux-musl*)
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- *-*linux-android*)
-diff --git a/tools/depends/configure.ac b/tools/depends/configure.ac
-index f438e5d..409f4d7 100644
---- a/tools/depends/configure.ac
-+++ b/tools/depends/configure.ac
-@@ -120,13 +120,13 @@ platform_cc=gcc
- platform_cxx=g++
-
- case $build in
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- build_os="linux"
- ;;
-- *i686*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ *i686*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- build_os="linux"
- ;;
-- x86_64*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- build_os="linux"
- ;;
- *darwin*)
-@@ -186,7 +186,7 @@ case $host in
- #android builds are always cross
- cross_compiling="yes"
- ;;
-- arm*-*-linux-gnu*|arm*-*-linux-uclibc*)
-+ arm*-*-linux-gnu*|arm*-*-linux-uclibc*|arm*-*-linux-musl*)
- if test "$use_platform" = "auto"; then
- if test "x$use_cpu" = "xauto"; then
- use_cpu=$host_cpu
-@@ -210,12 +210,12 @@ case $host in
- platform_os="linux"
- fi
- ;;
-- *i686*-linux-gnu*|i*86*-*-linux-uclibc*)
-+ *i686*-linux-gnu*|i*86*-*-linux-uclibc*|i*86*-*-linux-musl*)
- use_cpu=$host_cpu
- use_toolchain="${use_toolchain:-/usr}"
- platform_os="linux"
- ;;
-- x86_64*-linux-gnu*|x86_64-*-linux-uclibc*)
-+ x86_64*-linux-gnu*|x86_64-*-linux-uclibc*|x86_64-*-linux-musl*)
- use_cpu=$host_cpu
- use_toolchain="${use_toolchain:-/usr}"
- platform_cflags="-fPIC -DPIC"
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch
deleted file mode 100644
index e34a5b71e4..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 55233024648b5673dbf223586968e71cc4c70711 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 16 Nov 2016 18:49:36 -0800
-Subject: [PATCH 10/10] RssReader: Fix compiler warning comparing pointer to
- zero
-
-Clang finds this warning
-RssReader.cpp:272:19: error: ordered comparison between pointer and zero ('TiXmlElement *' and 'int')
- while (itemNode > 0)
- ~~~~~~~~ ^ ~
-RssReader.cpp:276:22: error: ordered comparison between pointer and zero ('TiXmlNode *' and 'int')
- while (childNode > 0)
- ~~~~~~~~~ ^ ~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- xbmc/utils/RssReader.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xbmc/utils/RssReader.cpp b/xbmc/utils/RssReader.cpp
-index 9186f56..2494dc8 100644
---- a/xbmc/utils/RssReader.cpp
-+++ b/xbmc/utils/RssReader.cpp
-@@ -269,11 +269,11 @@ void CRssReader::GetNewsItems(TiXmlElement* channelXmlNode, int iFeed)
- if (m_tagSet.empty())
- AddTag("title");
-
-- while (itemNode > 0)
-+ while (itemNode != NULL)
- {
- TiXmlNode* childNode = itemNode->FirstChild();
- mTagElements.clear();
-- while (childNode > 0)
-+ while (childNode != NULL)
- {
- std::string strName = childNode->ValueStr();
-
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch
deleted file mode 100644
index 7ee44f1c4e..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0011-Let-configure-pass-on-unknown-architectures-setting-.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 19a1ffc1450bd3ecfb7419d74c733b2e16bf47f3 Mon Sep 17 00:00:00 2001
-From: Balint Reczey <balint@balintreczey.hu>
-Date: Wed, 26 Aug 2015 08:14:41 +0200
-Subject: [PATCH 11/12] Let configure pass on unknown architectures setting
- sane defaults
-
-This helps porting Kodi to new architectures while emitting warnings about
-entering uncharted territory.
----
- configure.ac | 3 ++-
- m4/xbmc_arch.m4 | 6 ++++--
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 925466a..8369615 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -658,7 +658,8 @@ case $host in
- USE_STATIC_FFMPEG=1
- ;;
- *)
-- AC_MSG_ERROR(unsupported host ($host))
-+ ARCH=$host_cpu"-"$host_os
-+ AC_MSG_WARN([unsupported host ($host), guessing ARCH as $ARCH.])
- esac
- AC_SUBST([ARCH])
-
-diff --git a/m4/xbmc_arch.m4 b/m4/xbmc_arch.m4
-index ff5dc20..dfb45fd 100644
---- a/m4/xbmc_arch.m4
-+++ b/m4/xbmc_arch.m4
-@@ -27,7 +27,8 @@ case $build in
- AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- ;;
- *)
-- AC_MSG_ERROR(unsupported native build platform: $build)
-+ AC_MSG_WARN([unsupported native build platform: $build])
-+ AC_SUBST(NATIVE_ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- esac
-
-
-@@ -70,7 +71,8 @@ case $host in
- AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX -DTARGET_ANDROID")
- ;;
- *)
-- AC_MSG_ERROR(unsupported build target: $host)
-+ AC_MSG_WARN([unsupported native build platform: $build])
-+ AC_SUBST(ARCH_DEFINES, "-DTARGET_POSIX -DTARGET_LINUX -D_LINUX")
- esac
-
- if test "$target_platform" = "target_android" ; then
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch
deleted file mode 100644
index 8d70b3f8f3..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0012-Revert-droid-fix-builds-with-AML-disabled.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 9e88aa086083b80c05b2bf057b92682186c4e6dc Mon Sep 17 00:00:00 2001
-From: Balint Reczey <balint@balintreczey.hu>
-Date: Thu, 6 Oct 2016 18:12:18 +0200
-Subject: [PATCH 12/12] Revert "[droid] fix builds with AML disabled"
-
-This reverts commit 4733383b8f1c1dd0b95e9e5358425d8a0b7ba8fc.
----
- xbmc/utils/SystemInfo.cpp | 4 ----
- xbmc/windowing/egl/EGLWrapper.cpp | 16 ++++++----------
- 2 files changed, 6 insertions(+), 14 deletions(-)
-
-diff --git a/xbmc/utils/SystemInfo.cpp b/xbmc/utils/SystemInfo.cpp
-index fcc6733..52e7fa3 100644
---- a/xbmc/utils/SystemInfo.cpp
-+++ b/xbmc/utils/SystemInfo.cpp
-@@ -57,10 +57,8 @@
- #include "utils/XMLUtils.h"
- #if defined(TARGET_ANDROID)
- #include "platform/android/jni/Build.h"
--#if defined(HAS_LIBAMCODEC)
- #include "utils/AMLUtils.h"
- #endif
--#endif
-
- /* Platform identification */
- #if defined(TARGET_DARWIN)
-@@ -873,11 +871,9 @@ bool CSysInfo::IsAeroDisabled()
- bool CSysInfo::HasHW3DInterlaced()
- {
- #if defined(TARGET_ANDROID)
--#if defined(HAS_LIBAMCODEC)
- if (aml_hw3d_present())
- return true;
- #endif
--#endif
- return false;
- }
-
-diff --git a/xbmc/windowing/egl/EGLWrapper.cpp b/xbmc/windowing/egl/EGLWrapper.cpp
-index 30f5757..583d43a 100644
---- a/xbmc/windowing/egl/EGLWrapper.cpp
-+++ b/xbmc/windowing/egl/EGLWrapper.cpp
-@@ -24,19 +24,15 @@
- #include <assert.h>
- #if defined(TARGET_ANDROID)
- #include "EGLNativeTypeAndroid.h"
--#if defined(HAS_LIBAMCODEC)
- #include "EGLNativeTypeAmlAndroid.h"
- #endif
--#endif
- #if defined(TARGET_RASPBERRY_PI)
- #include "EGLNativeTypeRaspberryPI.h"
- #endif
- #if defined(HAS_IMXVPU)
- #include "EGLNativeTypeIMX.h"
- #endif
--#if defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC)
- #include "EGLNativeTypeAmlogic.h"
--#endif
- #include "EGLWrapper.h"
-
- #define CheckError() m_result = eglGetError(); if(m_result != EGL_SUCCESS) CLog::Log(LOGERROR, "EGL error in %s: %x",__FUNCTION__, m_result);
-@@ -91,15 +87,15 @@ bool CEGLWrapper::Initialize(const std::string &implementation)
- // Try to create each backend in sequence and go with the first one
- // that we know will work
- if (
--#if defined(TARGET_ANDROID) && defined(HAS_LIBAMCODEC)
-- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAmlAndroid>(implementation))
--#elif defined(TARGET_ANDROID)
-- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAndroid>(implementation))
--#elif defined(TARGET_RASPBERRY_PI)
-+#if defined(TARGET_ANDROID)
-+ (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAmlAndroid>(implementation)) ||
-+ (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAndroid>(implementation)) ||
-+#endif
-+#if defined(TARGET_RASPBERRY_PI)
- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeRaspberryPI>(implementation))
- #elif defined(HAS_IMXVPU)
- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeIMX>(implementation))
--#elif defined(TARGET_LINUX) && defined(HAS_LIBAMCODEC)
-+#else
- (nativeGuess = CreateEGLNativeType<CEGLNativeTypeAmlogic>(implementation))
- #endif
- )
---
-2.10.2
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch b/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch
deleted file mode 100644
index c9c9066449..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-17/0013-FTPParse.cpp-use-std-string.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 5fa10ff6b1b60abee172296d9c1dec8dfc10615c Mon Sep 17 00:00:00 2001
-From: Stefan Saraev <stefan@saraev.ca>
-Date: Sun, 7 May 2017 17:30:47 +0300
-Subject: [PATCH] FTPParse.cpp: use std::string
-
-Fixes build with newer gcc versions.
-
-Taken from [1]
-
-Upstream-Status: Backport [2]
-
-[1] https://git.busybox.net/buildroot/plain/package/kodi/0003-FTPParse.cpp-use-std-string.patch?id=e2f03a6bde19766a1ac047c5ccfb049b5c4f61ca
-[2] https://github.com/xbmc/xbmc/commit/5fa10ff6b1b60abee172296d9c1dec8dfc10615c
-
-Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de>
----
- xbmc/filesystem/FTPParse.cpp | 44 ++++++++++++++++++++++----------------------
- 1 file changed, 22 insertions(+), 22 deletions(-)
-
-diff --git a/xbmc/filesystem/FTPParse.cpp b/xbmc/filesystem/FTPParse.cpp
-index cfcc7c64ed..b0f676ae1a 100644
---- a/xbmc/filesystem/FTPParse.cpp
-+++ b/xbmc/filesystem/FTPParse.cpp
-@@ -34,7 +34,7 @@ CFTPParse::CFTPParse()
- m_time = 0;
- }
-
--string CFTPParse::getName()
-+std::string CFTPParse::getName()
- {
- return m_name;
- }
-@@ -59,16 +59,16 @@ time_t CFTPParse::getTime()
- return m_time;
- }
-
--void CFTPParse::setTime(string str)
-+void CFTPParse::setTime(std::string str)
- {
- /* Variables used to capture patterns via the regexes */
-- string month;
-- string day;
-- string year;
-- string hour;
-- string minute;
-- string second;
-- string am_or_pm;
-+ std::string month;
-+ std::string day;
-+ std::string year;
-+ std::string hour;
-+ std::string minute;
-+ std::string second;
-+ std::string am_or_pm;
-
- /* time struct used to set the time_t variable */
- struct tm time_struct = {};
-@@ -338,21 +338,21 @@ int CFTPParse::getDayOfWeek(int month, int date, int year)
- return day_of_week;
- }
-
--int CFTPParse::FTPParse(string str)
-+int CFTPParse::FTPParse(std::string str)
- {
- /* Various variable to capture patterns via the regexes */
-- string permissions;
-- string link_count;
-- string owner;
-- string group;
-- string size;
-- string date;
-- string name;
-- string type;
-- string stuff;
-- string facts;
-- string version;
-- string file_id;
-+ std::string permissions;
-+ std::string link_count;
-+ std::string owner;
-+ std::string group;
-+ std::string size;
-+ std::string date;
-+ std::string name;
-+ std::string type;
-+ std::string stuff;
-+ std::string facts;
-+ std::string version;
-+ std::string file_id;
-
- /* Regex for standard Unix listing formats */
- pcrecpp::RE unix_re("^([-bcdlps])" // type
---
-2.11.0
-
-
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service b/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service
deleted file mode 100644
index 29d0394e42..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi-startup/kodi.service
+++ /dev/null
@@ -1,14 +0,0 @@
-[Unit]
-Description=Kodi media thing
-
-[Service]
-User=root
-Type=simple
-SuccessExitStatus=0 1
-IOSchedulingClass=realtime
-IOSchedulingPriority=0
-
-ExecStart=/usr/bin/xinit /usr/bin/kodi-standalone -- /usr/bin/X :0
-
-[Install]
-WantedBy=basic.target
diff --git a/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb b/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb
deleted file mode 100644
index 295618914b..0000000000
--- a/meta-multimedia/recipes-mediacenter/kodi/kodi_17.bb
+++ /dev/null
@@ -1,216 +0,0 @@
-SUMMARY = "Kodi Media Center"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=930e2a5f63425d8dd72dbd7391c43c46"
-
-FILESPATH =. "${FILE_DIRNAME}/kodi-17:"
-
-DEPENDS = " \
- cmake-native \
- curl-native \
- gperf-native \
- jsonschemabuilder-native \
- nasm-native \
- swig-native \
- unzip-native \
- yasm-native \
- zip-native \
- avahi \
- boost \
- bzip2 \
- crossguid \
- curl \
- dcadec \
- enca \
- expat \
- faad2 \
- ffmpeg \
- fontconfig \
- fribidi \
- giflib \
- jasper \
- libass \
- libcdio \
- libcec \
- libmad \
- libmicrohttpd \
- libmms \
- libmms \
- libmodplug \
- libpcre \
- libplist \
- libsamplerate0 \
- libsdl-image \
- libsdl-mixer \
- libsquish \
- libssh \
- libtinyxml \
- libusb1 \
- libxslt \
- lzo \
- mpeg2dec \
- python \
- sqlite3 \
- taglib \
- virtual/egl \
- virtual/libsdl \
- wavpack \
- yajl \
- zlib \
- ${@enable_glew(bb, d)} \
-"
-
-PROVIDES = "xbmc"
-
-SRCREV = "6abeebd5ba371547c8f04272296433f5e4e28e86"
-PV = "17.3+gitr${SRCPV}"
-ADDONSPV = "17.1"
-SRC_URI = "git://github.com/xbmc/xbmc.git;branch=Krypton \
- https://repo.voidlinux.eu/distfiles/${BPN}-${ADDONSPV}-generated-addons.tar.xz;name=addons;unpack=0 \
- file://0003-configure-don-t-try-to-run-stuff-to-find-tinyxml.patch \
- file://0004-handle-SIGTERM.patch \
- file://0005-add-support-to-read-frequency-output-if-using-intel-.patch \
- file://0006-Disable-DVD-support.patch \
- file://0007-Always-compile-libcpluff-as-PIC.patch \
- file://0008-kodi-config.cmake-use-CMAKE_FIND_ROOT_PATH-to-fix-cr.patch \
- file://0009-build-Add-support-for-musl-triplets.patch \
- file://0010-RssReader-Fix-compiler-warning-comparing-pointer-to-.patch \
- file://0011-Let-configure-pass-on-unknown-architectures-setting-.patch \
- file://0012-Revert-droid-fix-builds-with-AML-disabled.patch \
- file://0001-change-order-of-detecting-libegl-and-libgles2.patch \
- file://0013-FTPParse.cpp-use-std-string.patch \
-"
-
-SRC_URI_append_libc-musl = " \
- file://0001-Fix-file_Emu-on-musl.patch \
- file://0002-Remove-FILEWRAP.patch \
-"
-SRC_URI[addons.md5sum] = "719614fa764011a18665d08af5c8c92f"
-SRC_URI[addons.sha256sum] = "350da57408c27473eaf40e7f544bc94841bf101dc4346085260c5c4af0adac97"
-
-inherit autotools-brokensep gettext pythonnative distro_features_check
-
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-S = "${WORKDIR}/git"
-
-# breaks compilation
-ASNEEDED = ""
-
-ACCEL ?= ""
-ACCEL_x86 = "vaapi vdpau"
-ACCEL_x86-64 = "vaapi vdpau"
-
-PACKAGECONFIG ??= "${ACCEL} opengl \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', 'openglesv2', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'samba', '', d)} \
-"
-
-PACKAGECONFIG[opengl] = "--enable-gl,--enable-gles,"
-PACKAGECONFIG[openglesv2] = "--enable-gles,--enable-gl,virtual/egl"
-PACKAGECONFIG[vaapi] = "--enable-vaapi,--disable-vaapi,libva"
-PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau"
-PACKAGECONFIG[mysql] = "--enable-mysql,--disable-mysql,mysql5"
-PACKAGECONFIG[x11] = "--enable-x11,--disable-x11,libxinerama libxmu libxrandr libxtst"
-PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
-PACKAGECONFIG[lcms] = "--enable-lcms2,--disable-lcms2,lcms"
-PACKAGECONFIG[samba] = "--enable-samba,--disable-samba,samba"
-
-EXTRA_OECONF = " \
- --disable-debug \
- --disable-libcap \
- --disable-ccache \
- --disable-mid \
- --enable-libusb \
- --enable-alsa \
- --enable-airplay \
- --disable-optical-drive \
- --with-ffmpeg=shared \
- --enable-texturepacker=no \
- ac_cv_path_JAVA_EXE=/bin/true \
-"
-
-FULL_OPTIMIZATION_armv7a = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math"
-FULL_OPTIMIZATION_armv7ve = "-fexpensive-optimizations -fomit-frame-pointer -O3 -ffast-math"
-BUILD_OPTIMIZATION = "${FULL_OPTIMIZATION}"
-
-LDFLAGS_append_mips = " -latomic"
-LDFLAGS_append_mipsel = " -latomic"
-LDFLAGS_append_powerpc = " -latomic"
-LDFLAGS_append_arm = " -latomic"
-
-EXTRA_OECONF_append = " LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
-
-# for python modules
-export HOST_SYS
-export BUILD_SYS
-export STAGING_LIBDIR
-export STAGING_INCDIR
-export PYTHON_DIR
-
-def enable_glew(bb, d):
- if bb.utils.contains('PACKAGECONFIG', 'x11', True, False, d) and bb.utils.contains('DISTRO_FEATURES', 'opengl', True, False, d):
- return "glew"
- return ""
-
-do_configure() {
- tar xf ${WORKDIR}/${BPN}-${ADDONSPV}-generated-addons.tar.xz -C ${S}/
-
- ( for i in $(find ${S} -name configure.ac -or -name configure.in|grep -v ".pc") ; do
- cd $(dirname $i) && gnu-configize --force || true
- done )
- ( for f in ${S}/xbmc/interfaces/python/generated/*.cpp; do
- touch `echo $f|sed -e 's/.cpp$/.xml/g'`
- done )
-
- BOOTSTRAP_STANDALONE=1 make -f bootstrap.mk JSON_BUILDER="${STAGING_BINDIR_NATIVE}/JsonSchemaBuilder"
- BOOTSTRAP_STANDALONE=1 make JAVA=/bin/true -f codegenerator.mk JSON_BUILDER="${STAGING_BINDIR_NATIVE}/JsonSchemaBuilder"
- oe_runconf
-}
-
-do_compile_prepend() {
- for i in $(find . -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' $i
- done
-
- for i in $(find . -name "*.mak*" -o -name "Makefile") ; do
- sed -i -e 's:I/usr/include:I${STAGING_INCDIR}:g' -e 's:-rpath \$(libdir):-rpath ${libdir}:g' $i
- done
-}
-
-INSANE_SKIP_${PN} = "rpaths"
-
-FILES_${PN} += "${datadir}/xsessions ${datadir}/icons ${libdir}/xbmc ${datadir}/xbmc"
-FILES_${PN}-dbg += "${libdir}/kodi/.debug ${libdir}/kodi/*/.debug ${libdir}/kodi/*/*/.debug ${libdir}/kodi/*/*/*/.debug"
-
-# kodi uses some kind of dlopen() method for libcec so we need to add it manually
-# OpenGL builds need glxinfo, that's in mesa-demos
-RRECOMMENDS_${PN}_append = " \
- libcec \
- python \
- python-ctypes \
- python-lang \
- python-re \
- python-netclient \
- python-html \
- python-difflib \
- python-json \
- python-zlib \
- python-shell \
- python-sqlite3 \
- python-compression \
- libcurl \
- ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'xrandr xdpyinfo', '', d)} \
-"
-RRECOMMENDS_${PN}_append_libc-glibc = " \
- glibc-charmap-ibm850 \
- glibc-gconv-ibm850 \
- glibc-gconv-unicode \
- glibc-gconv-utf-32 \
- glibc-charmap-utf-8 \
- glibc-localedata-en-us \
-"
-
-RPROVIDES_${PN} += "xbmc"
-
-TOOLCHAIN = "gcc"
diff --git a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb b/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
index 16e17e9abe..744486fa2a 100644
--- a/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
+++ b/meta-multimedia/recipes-mkv/libebml/libebml_1.3.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "libebml is a C++ libary to parse EBML files"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=7fbc338309ac38fefcd64b04bb903e34"
SRC_URI = "\
@@ -14,8 +14,8 @@ inherit dos2unix
LIBEBML_OS = "Unknown"
LIBEBML_OS_linux = "Linux"
-LIBEBML_OS_darwin = "Darwin"
-LIBEBML_OS_mingw32 = "Windows"
+LIBEBML_OS:darwin = "Darwin"
+LIBEBML_OS:mingw32 = "Windows"
EXTRA_OEMAKE = "\
'TARGET_OS=${LIBEBML_OS}' \
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
index 90e997561a..f7656913b5 100644
--- 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
@@ -5,6 +5,7 @@ Subject: [PATCH] Makefile: Use LINKFLAGS during link step
Adds much needed GNU_HASH section into the .so
+Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
make/linux/Makefile | 2 +-
diff --git a/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb b/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb
index fdffa41ec5..890be69269 100644
--- a/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb
+++ b/meta-multimedia/recipes-mkv/libmatroska/libmatroska_1.4.1.bb
@@ -1,5 +1,5 @@
SUMMARY = "libmatroska is a C++ libary to parse Matroska files (.mkv and .mka)"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE.LGPL;md5=4fbd65380cdd255951079008b364516c"
DEPENDS = "libebml"
diff --git a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb
index 3bed70e1a1..b5c8ddca11 100644
--- a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb
+++ b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "A real-time adjustable equalizer plugin for ALSA"
HOMEPAGE = "https://web.archive.org/web/20161105202833/http://thedigitalmachine.net/alsaequal.html"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
DEPENDS = "alsa-lib"
@@ -36,9 +36,9 @@ do_install() {
install -Dm 0644 libasound_module_pcm_equal.so ${D}${libdir}/alsa-lib/libasound_module_pcm_equal.so
}
-RDEPENDS_${PN} += " \
+RDEPENDS:${PN} += " \
alsa-utils \
caps \
"
-FILES_${PN} = "${libdir}/alsa-lib/"
+FILES:${PN} = "${libdir}/alsa-lib/"
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
new file mode 100644
index 0000000000..8a8350ec57
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch
@@ -0,0 +1,109 @@
+From 35c1ed84a158354c37e329bad0e236b156836ac7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 23 May 2023 14:59:26 -0700
+Subject: [PATCH] subpel_variance_neon: Provide prototypes for missing
+ functions
+
+Fixes build with clang-15
+aom_dsp/arm/subpel_variance_neon.c:121:10: error: call to undeclared function 'aom_variance8x8_neon'; ISO C99 and later do not support implicit function dec
+larations [-Wimplicit-function-declaration]
+| return aom_variance8x8_neon(temp2, 8, dst, dst_stride, sse);
+| ^
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ 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 a05886066c4..ea6bada224d 100644
+--- a/aom_dsp/arm/subpel_variance_neon.c
++++ b/aom_dsp/arm/subpel_variance_neon.c
+@@ -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,
++ unsigned int *sse);
++
++extern unsigned int aom_variance16x16_neon(const uint8_t *a, int a_stride,
++ 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);
++
++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.40.1
+
diff --git a/meta-multimedia/recipes-multimedia/aom/aom_3.6.1.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.6.1.bb
new file mode 100644
index 0000000000..45dd487f30
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/aom/aom_3.6.1.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 = "7ade96172b95adc91a5d85bf80c90989cd543ee8"
+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 = " ${@bb.utils.contains("TUNE_FEATURES","neon","-DENABLE_NEON=ON","-DENABLE_NEON=OFF",d)}"
+
+do_generate_toolchain_file:append() {
+ echo "set(AOM_AS_FLAGS --debug-prefix-map ${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR})" >> ${WORKDIR}/toolchain.cmake
+}
diff --git a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb
new file mode 100644
index 0000000000..ab0d8bca9f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb
@@ -0,0 +1,66 @@
+SUMMARY = "Bluetooth Audio ALSA Backend"
+HOMEPAGE = "https://github.com/Arkq/bluez-alsa"
+SECTION = "libs"
+
+LICENSE = "MIT"
+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}"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "alsa-lib bluez5 dbus glib-2.0 sbc"
+
+PACKAGECONFIG ??= "aplay cli hcitop ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[a2dpconf] = "--enable-a2dpconf,--disable-a2dpconf"
+PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,fdk-aac"
+PACKAGECONFIG[aplay] = "--enable-aplay,--disable-aplay"
+PACKAGECONFIG[cli] = "--enable-cli,--disable-cli"
+PACKAGECONFIG[coverage] = "--with-coverage,--without-coverage,lcov-native"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
+PACKAGECONFIG[debug-time] = "--enable-debug-time,--disable-debug-time"
+PACKAGECONFIG[faststream] = "--enable-faststream,--disable-faststream"
+PACKAGECONFIG[hcitop] = "--enable-hcitop,--disable-hcitop,libbsd ncurses"
+PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind"
+PACKAGECONFIG[mp3lame] = "--enable-mp3lame,--disable-mp3lame,lame"
+PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123,mpg123"
+PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono,ofono"
+PACKAGECONFIG[payloadcheck] = "--enable-payloadcheck,--disable-payloadcheck"
+PACKAGECONFIG[rfcomm] = "--enable-rfcomm,--disable-rfcomm"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir} \
+ --with-systemdbluealsaargs='${SYSTEMD_BLUEALSA_ARGS}' --with-systemdbluealsaaplayargs='${SYSTEMD_BLUEALSA_APLAY_ARGS}',--disable-systemd,systemd"
+PACKAGECONFIG[test] = "--enable-test,--disable-test,libcheck libsndfile1"
+PACKAGECONFIG[upower] = "--enable-upower,--disable-upower,,upower"
+
+inherit autotools pkgconfig systemd
+
+EXTRA_OECONF = " \
+ --disable-aptx \
+ --disable-lc3plus \
+ --disable-ldac \
+ --disable-manpages \
+"
+
+PACKAGE_BEFORE_PN = "${PN}-aplay"
+RRECOMMENDS:${PN} = "${PN}-aplay"
+
+FILES:${PN}-aplay = "${bindir}/bluealsa-aplay"
+FILES:${PN} += "${libdir}/alsa-lib/*"
+
+SYSTEMD_PACKAGES += "${PN}-aplay"
+SYSTEMD_SERVICE:${PN} = "bluealsa.service"
+SYSTEMD_SERVICE:${PN}-aplay = "bluealsa-aplay.service"
+
+SYSTEMD_AUTO_ENABLE:${PN}-aplay = "disable"
+
+# Choose bluez-alsa arguments to be used in bluealsa systemd service
+# Usually could choose profiles with it: a2dp-source a2dp-sink hfp-hf hfp-ag hsp-hs hsp-ag hfp-ofono
+# Enable bluez-alsa arguments by default:
+SYSTEMD_BLUEALSA_ARGS ?= "-p a2dp-source -p a2dp-sink"
+
+# Choose bluealsa-aplay arguments to be used in bluealsa-aplay systemd service
+# Defaults to be empty:
+SYSTEMD_BLUEALSA_APLAY_ARGS ?= ""
diff --git a/meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch b/meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch
deleted file mode 100644
index bd5e1b6030..0000000000
--- a/meta-multimedia/recipes-multimedia/caps/caps/0001-Do-not-use-obsolete-pow10f-function.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0cc7362e171616dcfeb93c6e1576362761bf14e5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 31 Jan 2018 18:37:16 -0800
-Subject: [PATCH] Do not use obsolete pow10f() function
-
-exp10 name is standardized in TS 18661-4 and its
-available in glibc since version 2.1
-it has been now removed from glibc 2.27+
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- dsp/v4f_IIR2.h | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/dsp/v4f_IIR2.h b/dsp/v4f_IIR2.h
-index a68ecf5..ebd1234 100644
---- a/dsp/v4f_IIR2.h
-+++ b/dsp/v4f_IIR2.h
-@@ -33,7 +33,7 @@
- namespace DSP {
-
- #ifdef __APPLE__
--inline float pow10f(float f) {return pow(10,f);}
-+inline float exp10f(float f) {return __exp10f(f);}
- #endif
-
- class RBJv4
-@@ -142,7 +142,7 @@ class IIR2v4
- /* A = pow (10, gain / 40) */
- v4f_t A = (v4f_t) {.025,.025,.025,.025};
- A *= gain;
-- A = v4f_map<pow10f> (A);
-+ A = v4f_map<exp10f> (A);
-
- RBJv4 p (f, Q);
-
-@@ -429,7 +429,7 @@ class IIR2v4Bank
- /* A = pow (10, gain / 40) */
- v4f_t A = (v4f_t) {.025,.025,.025,.025};
- A *= gain[i];
-- A = v4f_map<pow10f> (A);
-+ A = v4f_map<exp10f> (A);
-
- RBJv4 p (f[i], Q[i]);
-
---
-2.16.1
-
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/Avoid-ambiguity-in-div-invocation.patch b/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch
deleted file mode 100644
index 1a050af917..0000000000
--- a/meta-multimedia/recipes-multimedia/caps/caps/Avoid-ambiguity-in-div-invocation.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 1ea09653692efdd6443fb6770e8523bf6c9e49b9 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Thu, 6 Oct 2016 11:54:07 -0300
-Subject: Avoid ambiguity in div invocation
-Organization: O.S. Systems Software LTDA.
-
-Patch from:
-https://anonscm.debian.org/cgit/pkg-multimedia/caps.git/commit/?id=9a99c225fb813ae69f146e3d90f7b47bdbd97708
-
-Upstream-Status: Pending
-
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
----
- AutoFilter.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/AutoFilter.cc b/AutoFilter.cc
-index fc087d0..bd6b12f 100644
---- a/AutoFilter.cc
-+++ b/AutoFilter.cc
-@@ -69,7 +69,7 @@ AutoFilter::activate()
- void
- AutoFilter::cycle (uint frames)
- {
-- div_t qr = div (frames, blocksize);
-+ div_t qr = div ((int)frames, (int)blocksize);
- int blocks = qr.quot;
- if (qr.rem) ++blocks;
- double over_blocks = 1./blocks;
---
-2.1.4
-
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/caps/caps_0.9.24.bb b/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb
deleted file mode 100644
index fe864c49cc..0000000000
--- a/meta-multimedia/recipes-multimedia/caps/caps_0.9.24.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-DESCRIPTION = "The CAPS Audio Plugin Suite - LADSPA plugin suite"
-HOMEPAGE = "http://quitte.de/dsp/caps.html"
-LICENSE = "GPL-3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://quitte.de/dsp/${PN}_${PV}.tar.bz2 \
- file://Avoid-ambiguity-in-div-invocation.patch \
- file://0001-basic.h-Use-c99-supported-stdint-types.patch \
- file://append_ldflags.patch \
- file://0001-Do-not-use-obsolete-pow10f-function.patch \
- "
-
-SRC_URI[md5sum] = "c1d634038dcb54702306c0e30cb1c626"
-SRC_URI[sha256sum] = "f746feba57af316b159f0169de5d78b4fd1064c2c0c8017cb5856b2f22e83f20"
-
-S = "${WORKDIR}/${PN}-${PV}"
-
-EXTRA_OEMAKE = " \
- CC='${CXX}' \
- CFLAGS='${CFLAGS} -ffast-math -funroll-loops -fPIC -DPIC' \
- ARCH='' \
-"
-do_compile() {
- oe_runmake all
-}
-
-do_install() {
- install -Dm 0644 caps.so ${D}${libdir}/ladspa/caps.so
-}
-
-FILES_${PN} = "${libdir}/ladspa/"
diff --git a/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb b/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb
new file mode 100644
index 0000000000..f33d7ad582
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "The CAPS Audio Plugin Suite - LADSPA plugin suite"
+HOMEPAGE = "http://quitte.de/dsp/caps.html"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://quitte.de/dsp/${BPN}_${PV}.tar.bz2 \
+ file://0001-basic.h-Use-c99-supported-stdint-types.patch \
+ file://append_ldflags.patch \
+ "
+
+SRC_URI[md5sum] = "36b30c7c7db2d2bc5f4f54077e97b5ee"
+SRC_URI[sha256sum] = "e7496c5bce05abebe3dcb635926153bbb58a9337a6e423f048d3b61d8a4f98c9"
+
+EXTRA_OEMAKE = " \
+ CC='${CXX}' \
+ CFLAGS='${CFLAGS} -ffast-math -funroll-loops -fPIC -DPIC' \
+ ARCH='' \
+"
+do_compile() {
+ oe_runmake all
+}
+
+do_install() {
+ install -Dm 0644 caps.so ${D}${libdir}/ladspa/caps.so
+}
+
+FILES:${PN} = "${libdir}/ladspa/"
diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb
index 27fa0e5855..0b844ee7d3 100644
--- a/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb
+++ b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb
@@ -4,7 +4,7 @@ error corrections, hence the name paranoia."
HOMEPAGE = "https://www.xiph.org/"
SECTION = "multimedia"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=d370feaa1c9edcdbd29ca27ea3d2304d"
SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${PV}.src.tgz \
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.2.0.bb b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.2.0.bb
new file mode 100644
index 0000000000..5d43921b03
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.2.0.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 = "676a864a11af2c0522e1f992e770589543894686"
+
+S = "${WORKDIR}/git"
+
+DEPENDS:append:x86 = " nasm-native"
+DEPENDS:append:x86-64 = " nasm-native"
+
+inherit meson
diff --git a/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch b/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch
new file mode 100644
index 0000000000..adce802bc8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch
@@ -0,0 +1,31 @@
+From 18cc69460d2a0c756880bd54fda36afb0173ea02 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Dec 2019 19:47:36 -0800
+Subject: [PATCH] define BASELIB make variable
+
+This helps to override the default libdir from environment
+
+Upstream-Status: Submitted [https://github.com/foo86/dcadec/pull/61]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index a503698..8f323be 100644
+--- a/Makefile
++++ b/Makefile
+@@ -7,8 +7,9 @@ API_PATCH = 0
+ CFLAGS := -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wall -Wextra -O3 -ffast-math -g -MMD $(CFLAGS)
+
+ PREFIX ?= /usr/local
++BASELIB ?= lib
+ BINDIR ?= $(PREFIX)/bin
+-LIBDIR ?= $(PREFIX)/lib
++LIBDIR ?= $(PREFIX)/$(BASELIB)
+ INCLUDEDIR ?= $(PREFIX)/include
+
+ SRC_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
+--
+2.24.1
+
diff --git a/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
index 45b53c1191..ddd4c26efe 100644
--- a/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
+++ b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb
@@ -1,17 +1,19 @@
SUMMARY = "DTS Coherent Acoustics decoder with support for HD extensions"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c"
SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158"
-SRC_URI = "git://github.com/foo86/dcadec.git;protocol=http"
+SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https;branch=master \
+ file://0001-define-BASELIB-make-variable.patch \
+ "
S = "${WORKDIR}/git"
inherit lib_package
-EXTRA_OEMAKE = "CONFIG_SHARED=1"
+EXTRA_OEMAKE = "CONFIG_SHARED=1 PREFIX=${prefix} BASELIB=${baselib}"
do_install() {
- oe_runmake install DESTDIR="${D}" PREFIX="${prefix}"
+ oe_runmake install DESTDIR="${D}"
}
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 f23bc6ca81..033854f19e 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
@@ -1,18 +1,18 @@
SUMMARY = "D-Bus connector for dLeyna libraries"
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://src/connector-dbus.c;endline=21;md5=0a1695cef53beefc36651de439f643b5"
DEPENDS = "glib-2.0 dbus dleyna-core"
-SRC_URI = "git://github.com/01org/${BPN}.git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
SRCREV = "de913c35e5c936e2d40ddbd276ee902cd802bd3a"
S = "${WORKDIR}/git"
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"
+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"
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 a3b2793721..eafbb50db4 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
@@ -5,14 +5,16 @@ e.g., dleyna-server. In brief, it provides APIs for logging, error, settings \
and task management and an IPC asbstraction API."
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://libdleyna/core/core.c;endline=21;md5=139cba0c634344abc9456694fbb5083b"
+ file://libdleyna/core/core.c;endline=21;md5=68602998351825b0844aae34c684c54e"
DEPENDS = "glib-2.0 gupnp"
-SRC_URI = "git://github.com/01org/${BPN}.git"
-SRCREV = "27a3786ec013f64fd58243410a60798f824acec3"
+PV .= "+git${SRCPV}"
+
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
+SRCREV = "1c6853f5bc697dc0a8774fd70dbc915c4dbe7c5b"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch
new file mode 100644
index 0000000000..8f54658a11
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch
@@ -0,0 +1,123 @@
+From 7c945e7960cf7dffd9dd0bb5f7ec6bee4dc0bca3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 18 Feb 2020 14:17:55 -0800
+Subject: [PATCH] add gupnp 1.2 API support
+
+Takes from https://git.archlinux.org/svntogit/packages.git/tree/trunk/gupnp-1.2.diff?h=packages/dleyna-renderer
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 +--
+ libdleyna/renderer/device.c | 51 +++++++++++++++++++++++++++++++++++--
+ libdleyna/renderer/upnp.c | 4 +--
+ 3 files changed, 53 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 271ee92..364659d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -38,8 +38,8 @@ LT_LANG([C])
+ PKG_PROG_PKG_CONFIG(0.16)
+ PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28])
+ PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28])
+-PKG_CHECK_MODULES([GSSDP], [gssdp-1.0 >= 0.13.2])
+-PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5])
++PKG_CHECK_MODULES([GSSDP], [gssdp-1.2 >= 1.2.0])
++PKG_CHECK_MODULES([GUPNP], [gupnp-1.2 >= 1.2.0])
+ PKG_CHECK_MODULES([GUPNPAV], [gupnp-av-1.0 >= 0.11.5])
+ PKG_CHECK_MODULES([GUPNPDLNA], [gupnp-dlna-2.0 >= 0.9.4])
+ PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.28.2])
+diff --git a/libdleyna/renderer/device.c b/libdleyna/renderer/device.c
+index 783fb52..c7b9fc3 100644
+--- a/libdleyna/renderer/device.c
++++ b/libdleyna/renderer/device.c
+@@ -2121,6 +2121,53 @@ exit:
+ return;
+ }
+
++typedef struct
++{
++ GMainLoop *loop;
++ GUPnPServiceIntrospection *introspection;
++ GError **error;
++} GetIntrospectionAsyncData;
++
++static void
++get_introspection_async_cb (GUPnPServiceInfo *info,
++ GUPnPServiceIntrospection *introspection,
++ const GError *error,
++ gpointer user_data)
++{
++ GetIntrospectionAsyncData *data = user_data;
++ data->introspection = introspection;
++ if (data->error)
++ *data->error = g_error_copy (error);
++ g_main_loop_quit (data->loop);
++}
++
++static GUPnPServiceIntrospection *
++_gupnp_service_info_get_introspection (GUPnPServiceInfo *info,
++ GError **error)
++{
++ GetIntrospectionAsyncData data;
++ GMainContext *context;
++
++ context = g_main_context_new ();
++ data.loop = g_main_loop_new (context, FALSE);
++ data.error = error;
++
++ g_main_context_push_thread_default (context);
++
++ gupnp_service_info_get_introspection_async (info,
++ get_introspection_async_cb,
++ &data);
++
++ g_main_loop_run (data.loop);
++
++ g_main_context_pop_thread_default (context);
++
++ g_main_loop_unref (data.loop);
++ g_main_context_unref (context);
++
++ return data.introspection;
++}
++
+ static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy,
+ GVariant **mpris_tp_speeds,
+ GPtrArray **upnp_tp_speeds,
+@@ -2147,7 +2194,7 @@ static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy,
+ weak_ref = av_proxy;
+ g_object_add_weak_pointer(G_OBJECT(av_proxy), &weak_ref);
+
+- introspection = gupnp_service_info_get_introspection(
++ introspection = _gupnp_service_info_get_introspection(
+ GUPNP_SERVICE_INFO(av_proxy),
+ &error);
+
+@@ -2215,7 +2262,7 @@ static gboolean prv_get_rc_service_states_values(GUPnPServiceProxy *rc_proxy,
+ weak_ref = rc_proxy;
+ g_object_add_weak_pointer(G_OBJECT(rc_proxy), &weak_ref);
+
+- introspection = gupnp_service_info_get_introspection(
++ introspection = _gupnp_service_info_get_introspection(
+ GUPNP_SERVICE_INFO(rc_proxy),
+ &error);
+
+diff --git a/libdleyna/renderer/upnp.c b/libdleyna/renderer/upnp.c
+index ac1b08a..b762226 100644
+--- a/libdleyna/renderer/upnp.c
++++ b/libdleyna/renderer/upnp.c
+@@ -243,8 +243,8 @@ static void prv_server_unavailable_cb(GUPnPControlPoint *cp,
+
+ udn = gupnp_device_info_get_udn((GUPnPDeviceInfo *)proxy);
+
+- ip_address = gupnp_context_get_host_ip(
+- gupnp_control_point_get_context(cp));
++ ip_address = gssdp_client_get_host_ip(
++ GSSDP_CLIENT(gupnp_control_point_get_context(cp)));
+
+ if (!udn || !ip_address)
+ goto on_error;
+--
+2.25.1
+
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 b30aee9fbe..e7f918333a 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
@@ -4,14 +4,16 @@ that allow clients to discover and manipulate Digital Media Renderers. \
An implementation of such a service for linux is also included."
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://libdleyna/renderer/server.c;endline=21;md5=f51acd4757fb6a779a87122c43cf1346"
DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core"
-RDEPENDS_${PN} = "dleyna-connector-dbus"
+RDEPENDS:${PN} = "dleyna-connector-dbus"
-SRC_URI = "git://github.com/01org/${BPN}.git"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https \
+ file://0001-add-gupnp-1.2-API-support.patch \
+ "
SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd"
S = "${WORKDIR}/git"
@@ -19,5 +21,5 @@ inherit autotools pkgconfig
CFLAGS += " -I${S}"
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN} += "${datadir}/dbus-1"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
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 a8e5406d0a..071379758c 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
@@ -4,18 +4,19 @@ allow clients to discover, browse and manipulate Digital Media Servers. \
An implementation of such a service for linux is also included."
HOMEPAGE = "https://01.org/dleyna/"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://libdleyna/server/server.c;endline=22;md5=437455d8aeff69ebd0996a76c67397bb"
DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core"
-RDEPENDS_${PN} = "dleyna-connector-dbus"
+RDEPENDS:${PN} = "dleyna-connector-dbus"
-SRC_URI = "git://github.com/01org/${BPN}.git"
-SRCREV = "776950d5d96ac9dbf5c5c47bde8ac06f50a3cf46"
+PV .= "+git${SRCPV}"
+SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https"
+SRCREV = "eb895ae82715e9889a948ffa810c0f828b4f4c76"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
-FILES_${PN} += "${datadir}/dbus-1"
-FILES_${PN}-dev += "${libdir}/${PN}/*.so"
+FILES:${PN} += "${datadir}/dbus-1"
+FILES:${PN}-dev += "${libdir}/${BPN}/*.so"
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
new file mode 100644
index 0000000000..90a69e5e23
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb
@@ -0,0 +1,102 @@
+SUMMARY = "Linux DVB API applications and utilities"
+HOMEPAGE = "http://www.linuxtv.org"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRC_URI = "https://www.linuxtv.org/hg/dvb-apps/archive/3d43b280298c.tar.bz2;downloadfilename=${BPN}-3d43b280298c.tar.bz2 \
+ file://dvb-scan-table \
+ file://0001-Fix-generate-keynames.patch \
+ file://0003-handle-static-shared-only-build.patch \
+ file://0004-Makefile-remove-test.patch \
+ file://0005-libucsi-optimization-removal.patch \
+ file://0006-CA_SET_PID.patch \
+ file://0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch \
+ "
+SRC_URI[sha256sum] = "f39e2f0ebed7e32bce83522062ad4d414f67fccd5df1b647618524497e15e057"
+S = "${WORKDIR}/${BPN}-3d43b280298c"
+
+inherit perlnative
+
+export enable_static="no"
+
+export PERL_USE_UNSAFE_INC = "1"
+
+do_configure() {
+ sed -i -e s:/usr/include:${STAGING_INCDIR}:g util/av7110_loadkeys/generate-keynames.sh
+}
+do_install() {
+ make DESTDIR=${D} install
+ install -d ${D}/${bindir}
+ install -d ${D}/${docdir}/dvb-apps
+ install -d ${D}/${docdir}/dvb-apps/scan
+ install -d ${D}/${docdir}/dvb-apps/szap
+ chmod a+rx ${D}/${libdir}/*.so*
+ cp -R --no-dereference --preserve=mode,links ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/
+ cp -R --no-dereference --preserve=mode,links ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/
+ cp -R --no-dereference --preserve=mode,links ${WORKDIR}/dvb-scan-table/* ${D}/usr/share/dvb
+}
+
+PACKAGES =+ "dvb-evtest dvb-evtest-dbg \
+ dvbapp-tests dvbapp-tests-dbg \
+ dvbdate dvbdate-dbg \
+ dvbtraffic dvbtraffic-dbg \
+ dvbnet dvbnet-dbg \
+ dvb-scan dvb-scan-dbg dvb-scan-data \
+ dvb-azap dvb-azap-dbg \
+ dvb-czap dvb-czap-dbg \
+ dvb-szap dvb-szap-dbg \
+ dvb-tzap dvb-tzap-dbg \
+ dvb-femon dvb-femon-dbg \
+ dvb-zap-data"
+PACKAGES =+ "libdvbapi libdvbcfg libdvben50221 \
+ libesg libucsi libdvbsec"
+
+RDEPENDS:dvbdate =+ "libdvbapi libucsi"
+RDEPENDS:dvbtraffic =+ "libdvbapi"
+RDEPENDS:dvb-scan =+ "libdvbapi libdvbcfg libdvbsec"
+RDEPENDS:dvb-apps =+ "libdvbapi libdvbcfg libdvbsec libdvben50221 libucsi"
+RDEPENDS:dvb-femon =+ "libdvbapi"
+RDEPENDS:dvbnet =+ "libdvbapi"
+
+RCONFLICTS:dvb-evtest = "evtest"
+
+FILES:${PN} = "${bindir} ${datadir}/dvb"
+FILES:${PN}-doc = ""
+FILES:${PN}-dev = "${includedir}"
+FILES:dvb-evtest = "${bindir}/evtest"
+FILES:dvb-evtest-dbg = "${bindir}/.debug/evtest"
+FILES:dvbapp-tests = "${bindir}/*test* "
+FILES:dvbapp-tests-dbg = "${bindir}/.debug/*test*"
+FILES:dvbdate = "${bindir}/dvbdate"
+FILES:dvbdate-dbg = "${bindir}/.debug/dvbdate"
+FILES:dvbtraffic = "${bindir}/dvbtraffic"
+FILES:dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic"
+FILES:dvbnet = "${bindir}/dvbnet"
+FILES:dvbnet-dbg = "${bindir}/.debug/dvbnet"
+FILES:dvb-scan = "${bindir}/*scan "
+FILES:dvb-scan-dbg = "${bindir}/.debug/*scan"
+FILES:dvb-scan-data = "${docdir}/dvb-apps/scan"
+FILES:dvb-azap = "${bindir}/azap"
+FILES:dvb-azap-dbg = "${bindir}/.debug/azap"
+FILES:dvb-czap = "${bindir}/czap"
+FILES:dvb-czap-dbg = "${bindir}/.debug/czap"
+FILES:dvb-szap = "${bindir}/szap"
+FILES:dvb-szap-dbg = "${bindir}/.debug/szap"
+FILES:dvb-tzap = "${bindir}/tzap"
+FILES:dvb-tzap-dbg = "${bindir}/.debug/tzap"
+FILES:dvb-femon = "${bindir}/femon"
+FILES:dvb-femon-dbg = "${bindir}/.debug/femon"
+FILES:dvb-zap-data = "${docdir}/dvb-apps/szap"
+
+python populate_packages:prepend () {
+ dvb_libdir = bb.data.expand('${libdir}', d)
+ do_split_packages(d, dvb_libdir, r'^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True)
+ do_split_packages(d, dvb_libdir, r'^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
+ do_split_packages(d, dvb_libdir, r'^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev')
+ 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
new file mode 100644
index 0000000000..f3d14354b4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch
@@ -0,0 +1,31 @@
+Fix generate-keynames.sh script for cross-compilation
+
+generate-keynames.sh reads /usr/include/linux to find the keyname
+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
+--- dvb-apps-83c746462ccb.orig/util/av7110_loadkeys/generate-keynames.sh 2012-12-06 10:38:07.000000000 +0100
++++ dvb-apps-83c746462ccb/util/av7110_loadkeys/generate-keynames.sh 2013-08-29 21:47:09.717991439 +0200
+@@ -18,7 +18,7 @@ echo "};" >> $1
+ echo >> $1
+ echo >> $1
+ echo "static struct input_key_name key_name [] = {" >> $1
+-for x in $(cat /usr/include/linux/input.h input_fake.h | \
++for x in $(cat ${CROSS_ROOT}/usr/include/linux/input.h input_fake.h | \
+ egrep "#define[ \t]+KEY_" | grep -v KEY_MAX | \
+ cut -f 1 | cut -f 2 -d " " | sort -u) ; do
+ echo " { \"$(echo $x | cut -b 5-)\", $x }," >> $1
+@@ -26,7 +26,7 @@ done
+ echo "};" >> $1
+ echo >> $1
+ echo "static struct input_key_name btn_name [] = {" >> $1
+-for x in $(cat /usr/include/linux/input.h input_fake.h | \
++for x in $(cat ${CROSS_ROOT}/usr/include/linux/input.h input_fake.h | \
+ egrep "#define[ \t]+BTN_" | \
+ cut -f 1 | cut -f 2 -d " " | sort -u) ; do
+ echo " { \"$(echo $x | cut -b 5-)\", $x }," >> $1
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
new file mode 100644
index 0000000000..8ff1e029b0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch
@@ -0,0 +1,28 @@
+From d6817dbaf407f65dd4af12c51736153fae8b217f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 21 Dec 2019 08:36:11 -0800
+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 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/util/dvbdate/dvbdate.c
++++ b/util/dvbdate/dvbdate.c
+@@ -309,7 +309,10 @@ int atsc_scan_date(time_t *rx_time, unsi
+ */
+ int set_time(time_t * new_time)
+ {
+- if (stime(new_time)) {
++ struct timespec s = {0};
++ s.tv_sec = *new_time;
++
++ if (clock_settime(CLOCK_REALTIME, &s)) {
+ perror("Unable to set time");
+ return -1;
+ }
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
new file mode 100644
index 0000000000..ce51084c97
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch
@@ -0,0 +1,45 @@
+From a826c7c722db40bfedf00e51ce38411550ae8216 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Thu, 25 Dec 2014 19:22:16 +0100
+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 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/Make.rules b/Make.rules
+index 3410d7b..d274e16 100644
+--- a/Make.rules
++++ b/Make.rules
+@@ -9,7 +9,13 @@ ifneq ($(lib_name),)
+ CFLAGS_LIB ?= -fPIC
+ CFLAGS += $(CFLAGS_LIB)
+
+-libraries = $(lib_name).so $(lib_name).a
++ifneq ($(enable_static),no)
++libraries += $(lib_name).a
++endif
++
++ifneq ($(enable_shared),no)
++libraries += $(lib_name).so
++endif
+
+ .PHONY: library
+
+@@ -23,7 +29,7 @@ prerequisites = $(subst .o,.d,$(objects)) $(addsuffix .d,$(binaries))
+
+ .PHONY: clean install
+
+-ifeq ($(static),1)
++ifneq ($(enable_static),no)
+ LDFLAGS += -static
+ endif
+
+--
+1.9.3
+
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
new file mode 100644
index 0000000000..6ec5b08ccc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch
@@ -0,0 +1,28 @@
+From c578772d6abc5fdf3ec83f632c371373e5baf9f1 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@openwide.fr>
+Date: Fri, 26 Dec 2014 01:04:58 +0100
+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 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 65a2273..105c460 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,7 +10,6 @@ DVB_API_MINOR := $(word 3, $(shell grep -m1 "DVB_API_VERSION_MINOR" $(VERSION_FI
+
+ all clean install:
+ $(MAKE) -C lib $@
+- $(MAKE) -C test $@
+ $(MAKE) -C util $@
+
+ update:
+--
+1.9.3
+
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
new file mode 100644
index 0000000000..dbb848c72c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch
@@ -0,0 +1,18 @@
+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
+@@ -33,6 +33,9 @@
+ #define __ucsi_packed __attribute__((packed))
+
+
++#if __GNUC__ >= 6 + (0 >= __GNUC_MINOR__)
++#pragma GCC optimize ("O1")
++#endif
+
+
+ #if __BYTE_ORDER == __BIG_ENDIAN
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
new file mode 100644
index 0000000000..59abd32a01
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch
@@ -0,0 +1,28 @@
+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
++++ dvb-apps/util/dst-utils/dst_test.c
+@@ -35,7 +35,18 @@
+ #include <libdvben50221/en50221_app_tags.h>
+
+ #define CA_NODE "/dev/dvb/adapter0/ca0"
+-
++/*
++ Quick hack around the removal of ca_pid_t and CA_GET_PID in recent kernels
++ https://github.com/torvalds/linux/commit/833ff5e7feda1a042b83e82208cef3d212ca0ef1
++*/
++#ifndef CA_SET_PID
++typedef struct ca_pid {
++ unsigned int pid;
++ int index; /* -1 == disable*/
++} ca_pid_t;
++/* We should not be able to get it so a number that is unlikely to happen */
++#define CA_SET_PID 42424242
++#endif
+ static int dst_comms(int cafd, uint32_t tag, uint32_t function, struct ca_msg *msg)
+ {
+ if (tag) {
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/ca-AB-Calgary b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/ca-AB-Calgary
new file mode 100755
index 0000000000..4602c2a1ca
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/ca-AB-Calgary
@@ -0,0 +1,48 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20110502 1 0 ATSC CA </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Calgary AB, Canada OTA
+# date (yyyy-mm-dd) : 2014-01-18
+
+# provided by (opt) : shadowofdarkness@gmail.com
+#
+# A[2] <freq> <mod> [# comment]
+#------------------------------------------------------------------------------
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 515000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 563000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 581000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 617000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 635000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 683000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ATSC-center-frequencies-8VSB b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ATSC-center-frequencies-8VSB
new file mode 100755
index 0000000000..e744878218
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ATSC-center-frequencies-8VSB
@@ -0,0 +1,410 @@
+# US ATSC center frequencies, use if in doubt
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 57028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 63028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 69028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 79028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 85028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 177028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 183028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 189028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 195028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 201028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 207028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 213028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 473028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 479028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 485028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 491028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 497028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 503028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 509028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 515028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 521028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 527028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 533028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 539028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 545028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 551028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 557028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 563028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 569028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 575028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 581028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 587028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 593028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 599028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 605028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 611028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 617028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 623028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 629028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 635028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 641028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 647028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 653028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 659028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 665028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 671028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 677028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 683028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 689028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 695028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 701028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 707028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 713028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 719028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 725028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 731028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 737028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 743028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 749028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 755028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 761028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 767028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 773028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 779028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 785028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 791028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 797028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 803028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CA-SF-Bay-Area b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CA-SF-Bay-Area
new file mode 100755
index 0000000000..e48e6e22a1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CA-SF-Bay-Area
@@ -0,0 +1,81 @@
+# initial tuning data for some frequencies of for the San Francisco Bay Area
+# includes San Francisco, San Jose, Oakland...
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 503000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 551000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 563000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 593000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 623000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 635000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 647000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 659000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 683000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 689000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 701000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 725000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 731000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CO-Denver b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CO-Denver
new file mode 100755
index 0000000000..078ecb015a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-CO-Denver
@@ -0,0 +1,116 @@
+# main channels in Denver
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 189028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 213028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 479028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 485028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 491028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 497028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 503028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 515028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 563028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 581028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 593028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 599028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 617028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 629028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 635028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 647028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 659028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 689028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 695028615
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-HRC-center-frequencies-QAM256 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-HRC-center-frequencies-QAM256
new file mode 100755
index 0000000000..c541b1e14d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-HRC-center-frequencies-QAM256
@@ -0,0 +1,767 @@
+# US EIA-542 Cable center frequencies
+# Harmonically Related Carriers (HRC)
+# Channels 1 to 125 are in ascending EIA/NCTA channel designation order
+
+#1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 73753600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 55752700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 61753000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 67753300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 77753900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 83754200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 175758700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 181759000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 187759300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 193759600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 199759900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 205760200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 211760500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 121756000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 127756300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 133756600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 139756900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 145757200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 151757500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#20
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 157757800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 163758100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 169758400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 217760800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 223761100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 229761400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 235761700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 241762000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 247762300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 253762600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#30
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 259762900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 265763200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 271763500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 277763800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 283764100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 289764400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 295764700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 301765000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 307765300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 313765600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 319765900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 325766200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 331766500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 337766800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 343767100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 349767400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 355767700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 361768000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 367768300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 373768600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#50
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 379768900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 385769200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 391769500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 397769800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 403770100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 409770400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 415770700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 421771000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 427771300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 433771600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 439771900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 445772200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 451772500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 457772800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 463773100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 469773400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 475773700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 481774000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 487774300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 493774600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#70
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 499774900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 505775200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 511775500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 517775800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 523776100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 529776400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 535776700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 541777000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 547777300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 553777600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#80
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 559777900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 565778200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 571778500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 577778800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 583779100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 589779400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 595779700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 601780000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 607780300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 613780600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#90
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 619780900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 625781200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 631781500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 637781800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 643782100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 91754500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 97754800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 103755100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 109775000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 115775000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#100
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 649782400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 655782700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 661783000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 667783300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 673783600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 679783900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 685784200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 691784500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 697784800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 703785100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#110
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 709785400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 715785700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 721786000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 727786300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 733786600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 739786900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 745787200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 751787500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 757787800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 763788100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#120
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 769788400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 775788700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 781789000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 787789300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 793789600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 799789900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-IRC-center_frequencies-QAM256 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-IRC-center_frequencies-QAM256
new file mode 100755
index 0000000000..1aa2a11f76
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-EIA-542-IRC-center_frequencies-QAM256
@@ -0,0 +1,767 @@
+# US Cable EIA-542 center frequencies
+# Incrementally Related Carriers (IRC)
+# Channels 1-125 are in ascending EIA/NCTA channel designation order
+
+#1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 75012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 57025000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 63012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 69012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 79012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 85012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 177012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 183012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 189012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 195012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 201012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 207012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 213012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 123012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 129012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 135012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 141012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 147012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 153012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#20
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 159012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 165012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 171012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 219012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 225012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 231012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 237012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 243012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 249012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 255012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#30
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 261012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 267012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 273012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 279012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 285012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 291012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 297012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 303012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 309012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 315012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 321012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 327012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 333025000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 339012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 345012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 351012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 357012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 363012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 369012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 375012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#50
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 381012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 387012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 393012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 399012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 405012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 411012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 417012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 423012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 429012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 435012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 441012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 447012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 453012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 459012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 465012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 471012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 477012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 483012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 489012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 495012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#70
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 501012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 507012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 513012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 519012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 525012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 531012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 537012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 543012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 549012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 555012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#80
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 561012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 567012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 573012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 579012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 585012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 591012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 597012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 603012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 609012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 615012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#90
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 621012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 627012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 633012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 639012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 645012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 93012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 99012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 105012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 111012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 117012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#100
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 651012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 657012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 663012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 669012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 675012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 681012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 687012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 693012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 699012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 705012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#110
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 711012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 717012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 723012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 729012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 735012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 741012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 747012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 753012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 759012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 765012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#120
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 771012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 777012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 783012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 789012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 795012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 801012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-HRC-center-frequencies-QAM256 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-HRC-center-frequencies-QAM256
new file mode 100755
index 0000000000..2e20b45505
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-HRC-center-frequencies-QAM256
@@ -0,0 +1,767 @@
+# US Cable center frequencies
+# Harmonically Related Carriers (HRC)
+# Channels are in ascending EIA/NCTA channel designation order
+
+#1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 73753600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 55752700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 61753000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 67753300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 77753900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 83754200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 175758700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 181759000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 187759300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 193759600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 199759900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 205760200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 211760500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 121756000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 127756300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 133756600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 139756900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 145757200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 151757500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#20
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 157757800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 163758100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 169758400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 217760800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 223761100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 229761400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 235761700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 241762000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 247762300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 253762600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#30
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 259762900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 265763200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 271763500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 277763800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 283764100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 289764400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 295764700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 301765000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 307765300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 313765600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 319765900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 325766200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 331766500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 337766800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 343767100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 349767400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 355767700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 361768000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 367768300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 373768600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#50
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 379768900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 385769200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 391769500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 397769800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 403770100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 409770400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 415770700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 421771000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 427771300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 433771600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 439771900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 445772200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 451772500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 457772800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 463773100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 469773400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 475773700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 481774000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 487774300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 493774600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#70
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 499774900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 505775200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 511775500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 517775800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 523776100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 529776400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 535776700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 541777000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 547777300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 553777600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#80
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 559777900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 565778200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 571778500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 577778800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 583779100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 589779400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 595779700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 601780000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 607780300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 613780600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#90
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 619780900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 625781200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 631781500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 637781800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 643782100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 91754500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 97754800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 103755100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 109755400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 115755700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#100
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 649782400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 655782700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 661783000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 667783300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 673783600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 679783900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 685784200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 691784500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 697784800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 703785100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#110
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 709785400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 715785700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 721786000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 727786300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 733786600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 739786900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 745787200
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 751787500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 757787800
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 763788100
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#120
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 769788400
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 775788700
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 781789000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 787789300
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 793789600
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 799789900
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-IRC-center-frequencies-QAM256 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-IRC-center-frequencies-QAM256
new file mode 100755
index 0000000000..cd8c4086c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-IRC-center-frequencies-QAM256
@@ -0,0 +1,767 @@
+# US Cable center frequencies
+# Incrementally Related Carriers (IRC)
+# Channels are in ascending EIA/NCTA channel designation order
+
+#1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 75000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 57000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 63000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 69000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 79000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 85000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 177000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 183000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 189000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 195000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 201000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 207000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 213000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 123000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 129000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 135000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 141000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 147000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 153000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#20
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 159000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 165000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 171000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 219000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 225000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 231000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 237000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 243000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 249000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 255000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#30
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 261000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 267000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 273000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 279000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 285000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 291000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 297000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 303000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 309000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 315000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 321000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 327000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 333000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 339000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 345000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 351000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 357000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 363000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 369000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 375000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#50
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 381000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 387000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 393000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 399000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 405000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 411000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 417000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 423000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 429000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 435000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 441000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 447000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 453000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 459000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 465000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 471000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 477000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 483000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 489000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 495000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#70
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 501000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 507000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 513000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 519000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 525000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 531000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 537000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 543000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 549000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 555000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#80
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 561000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 567000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 573000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 579000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 585000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 591000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 597000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 603000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 609000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 615000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#90
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 621000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 627000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 633000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 639000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 645000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 93000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 99000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 105000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 111000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 117000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#100
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 651000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 657000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 663000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 669000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 675000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 681000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 687000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 693000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 699000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 705000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#110
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 711000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 717000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 723000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 729000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 735000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 741000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 747000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 753000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 759000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 765000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#120
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 771000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 777000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 783000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 789000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 795000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 801000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-Standard-center-frequencies-QAM256 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-Standard-center-frequencies-QAM256
new file mode 100755
index 0000000000..b4931287ed
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-Cable-Standard-center-frequencies-QAM256
@@ -0,0 +1,961 @@
+# US EIA/NCTA Standard Cable center frequencies
+# Channels are in ascending EIA/NCTA channel designation order
+
+#2
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 57000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 63000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 69000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 79000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 85000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 177000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 183000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 189000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 195000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 201000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 207000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 213000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 123012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 129012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 135012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 141000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 147000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 153000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#20
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 159000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 165000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 171000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 219000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 225000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 231012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 237012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 243012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 249012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 255012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#30
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 261012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 267012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 273012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 279012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 285012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 291012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 297012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 303012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 309012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 315012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 321012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 327012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 333025000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 339012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 345012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 351012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 357012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 363012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 369012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 375012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#50
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 381012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 387012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 393012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 399012500
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 405000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 411000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 417000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 423000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 429000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 435000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 441000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 447000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 453000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 459000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 465000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 471000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 477000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 483000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 489000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 495000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#70
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 501000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 507000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 513000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 519000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 525000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 531000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 537000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 543000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 549000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 555000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#80
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 561000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 567000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 573000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 579000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 585000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 591000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 597000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 603000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 609000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 615000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#90
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 621000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 627000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 633000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 639000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 645000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 93000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 99000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 105000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 111025000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 117025000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#100
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 651000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 657000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 663000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 669000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 675000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 681000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 687000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 693000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 699000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 705000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#110
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 711000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 717000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 723000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 729000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 735000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 741000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 747000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 753000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 759000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 765000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#120
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 771000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 777000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 783000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 789000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 795000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 801000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 807000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 813000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 819000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 825000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#121
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 831000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 837000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 843000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 849000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 855000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 861000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 867000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 873000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 879000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 885000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#122
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 891000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 897000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 903000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 909000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 915000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 921000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 927000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 933000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 939000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 945000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+#123
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 951000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 957000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 963000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 969000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 975000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 981000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 987000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 993000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_B
+ FREQUENCY = 999000000
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ID-Boise b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ID-Boise
new file mode 100755
index 0000000000..dcef67ccad
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-ID-Boise
@@ -0,0 +1,38 @@
+# Boise, ID, USA
+# A freq mod
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 195000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 213000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 515000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 533000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 545000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 557000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MA-Boston b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MA-Boston
new file mode 100755
index 0000000000..2324402c4d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MA-Boston
@@ -0,0 +1,68 @@
+# initial tuning data for Boston, MA
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 503000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 509000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 527000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 563000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 569000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 575000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 581000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 623000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 635000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 641000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 647000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MI-Lansing b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MI-Lansing
new file mode 100755
index 0000000000..41fb8d2c07
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-MI-Lansing
@@ -0,0 +1,32 @@
+# initial tuning data for Lansing, MI
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 617000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 695000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 719000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 731000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 743000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-NTSC-center-frequencies-8VSB b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-NTSC-center-frequencies-8VSB
new file mode 100755
index 0000000000..8f153affab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-NTSC-center-frequencies-8VSB
@@ -0,0 +1,410 @@
+# US NTSC center frequencies, use if in doubt
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 57000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 63000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 69000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 79000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 85000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 177000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 183000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 189000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 195000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 201000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 207000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 213000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 473000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 479000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 485000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 491000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 497000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 503000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 509000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 515000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 521000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 527000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 533000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 539000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 545000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 551000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 557000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 563000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 569000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 575000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 581000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 587000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 593000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 599000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 605000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 611000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 617000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 623000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 629000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 635000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 641000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 647000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 653000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 659000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 665000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 671000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 677000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 683000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 689000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 695000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 701000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 707000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 713000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 719000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 725000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 731000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 737000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 743000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 749000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 755000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 761000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 767000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 773000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 779000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 785000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 791000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 797000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 803000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-PA-Philadelphia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-PA-Philadelphia
new file mode 100755
index 0000000000..64a7e69f54
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/atsc/us-PA-Philadelphia
@@ -0,0 +1,56 @@
+# US NY state
+
+#A 183000000 8VSB
+#A 515000000 8VSB
+#A 545000000 8VSB
+#A 551000000 8VSB
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 575000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 581000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 593000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+#A 641000000 8VSB
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 647000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 713000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+#A 719000000 8VSB
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 773000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 785000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = ATSC
+ FREQUENCY = 791000000
+ MODULATION = VSB/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/activy.rcmm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/activy.rcmm
new file mode 100644
index 0000000000..c7d7280639
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/activy.rcmm
@@ -0,0 +1,53 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x0c KEY_POWER
+0x0a KEY_BACK
+
+0xfe KEY_SCROLLUP
+0xff KEY_SCROLLDOWN
+
+0x40 KEY_GOTO
+0x86 KEY_KEYBOARD
+
+0x87 KEY_RED
+0xda KEY_GREEN
+0xf3 KEY_YELLOW
+0x88 KEY_BLUE
+
+0x82 KEY_HOME
+0x54 KEY_MENU
+
+0x58 KEY_UP
+0x59 KEY_DOWN
+0x5a KEY_LEFT
+0x5b KEY_RIGHT
+
+0x5c KEY_OK
+
+0xf0 KEY_CHANNELUP
+0xef KEY_CHANNELDOWN
+
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+
+0x81 KEY_INFO
+0x0d KEY_MUTE
+
+0x2f KEY_REWIND
+0x2c KEY_PLAYPAUSE
+0x2e KEY_FASTFORWARD
+0x37 KEY_RECORD
+
+0x21 KEY_PREVIOUS
+0x31 KEY_STOP
+0x20 KEY_NEXT
+0x42 KEY_EJECTCD
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/galaxis.rcmm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/galaxis.rcmm
new file mode 100644
index 0000000000..38eb389ec3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/galaxis.rcmm
@@ -0,0 +1,50 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x0a KEY_MHP
+0x0c KEY_POWER
+0x0d KEY_MUTE
+0x0f KEY_INFO
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+0x20 KEY_CHANNELUP
+0x21 KEY_CHANNELDOWN
+0x3c KEY_TEXT
+0x3f KEY_TV
+
+0x45 KEY_SETUP
+0x4b KEY_SUBTITLE
+0x4e KEY_LANGUAGE
+
+0x50 KEY_RADIO
+0x55 KEY_EXIT
+
+0x58 KEY_UP
+0x59 KEY_DOWN
+0x5a KEY_LEFT
+0x5b KEY_RIGHT
+0x5c KEY_OK
+
+0x6d KEY_RED
+0x6e KEY_GREEN
+0x6f KEY_YELLOW
+0x70 KEY_BLUE
+
+0x78 KEY_MENU
+0x79 KEY_LIST
+0xcc KEY_EPG
+
+0xc4 KEY_UP
+0xc5 KEY_UP
+0xc6 KEY_DOWN
+0xc7 KEY_DOWN
+
+0xff KEY_VCR
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge.rc5
new file mode 100644
index 0000000000..f52eb8542e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge.rc5
@@ -0,0 +1,24 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x0c KEY_RADIO
+0x0d KEY_MUTE
+0x0f KEY_TV
+
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+0x1e KEY_VENDOR
+
+0x20 KEY_CHANNELUP
+0x21 KEY_CHANNELDOWN
+0x22 KEY_SELECT
+0x26 KEY_CYCLEWINDOWS
+0x2e KEY_SCREEN
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge2.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge2.rc5
new file mode 100644
index 0000000000..663fea8232
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge2.rc5
@@ -0,0 +1,40 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+0x1e KEY_VENDOR
+
+0x20 KEY_CHANNELUP
+0x21 KEY_CHANNELDOWN
+0x22 KEY_SELECT
+0x26 KEY_CYCLEWINDOWS
+
+0x3d KEY_POWER
+0x3b KEY_GOTO
+0x1f KEY_BACK
+0x0d KEY_MENU
+0x0b KEY_RED
+0x2e KEY_GREEN
+0x38 KEY_YELLOW
+0x25 KEY_OK
+0x29 KEY_BLUE
+0x0f KEY_MUTE
+0x0c KEY_AUX
+0x3c KEY_SCREEN
+0x32 KEY_REWIND
+0x35 KEY_PLAY
+0x34 KEY_FORWARD
+0x37 KEY_RECORD
+0x36 KEY_STOP
+0x30 KEY_PAUSE
+0x24 KEY_LEFT
+0x1e KEY_RIGHT
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge_grey.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge_grey.rc5
new file mode 100644
index 0000000000..2bca524aa1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/hauppauge_grey.rc5
@@ -0,0 +1,39 @@
+0x3d KEY_POWER
+0x3b KEY_GOTO
+
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x1f KEY_EXIT
+0x0d KEY_MENU
+
+0x0b KEY_RED
+0x2e KEY_GREEN
+0x38 KEY_YELLOW
+0x29 KEY_BLUE
+
+0x11 KEY_LEFT
+0x10 KEY_RIGHT
+0x20 KEY_UP
+0x21 KEY_DOWN
+0x25 KEY_OK
+
+0x0f KEY_MUTE
+0x0c KEY_INFO
+0x3c KEY_EPG
+0x32 KEY_REWIND
+0x35 KEY_PLAY
+0x34 KEY_FASTFORWARD
+0x37 KEY_RECORD
+0x36 KEY_STOP
+0x30 KEY_PAUSE
+0x24 KEY_PREVIOUS
+0x1e KEY_NEXT
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/mbo_81095-code_562.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/mbo_81095-code_562.rc5
new file mode 100644
index 0000000000..357e410387
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/mbo_81095-code_562.rc5
@@ -0,0 +1,39 @@
+0x0c KEY_POWER
+
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+
+0x09 KEY_9
+0x00 KEY_0
+0x0a KEY_F11
+0x2b KEY_F12
+
+0x3f KEY_PROGRAM
+0x23 KEY_CONFIG
+0x0d KEY_MUTE
+
+0x11 KEY_VOLUMEDOWN
+0x10 KEY_VOLUMEUP
+0x20 KEY_CHANNELUP
+0x21 KEY_CHANNELDOWN
+0x29 KEY_TV
+
+0x1a KEY_RED
+0x1b KEY_GREEN
+0x2e KEY_YELLOW
+0x24 KEY_BLUE
+
+0x32 KEY_REWIND
+0x35 KEY_PLAY
+0x34 KEY_FORWARD
+0x37 KEY_RECORD
+
+0x36 KEY_STOP
+0x30 KEY_PAUSE
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_088.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_088.rc5
new file mode 100644
index 0000000000..ebec3fefb8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_088.rc5
@@ -0,0 +1,36 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x0b KEY_BACK
+0x0c KEY_POWER
+0x0d KEY_MUTE
+0x0e KEY_MENU
+0x0f KEY_TV
+
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+0x12 KEY_UP
+0x13 KEY_DOWN
+0x14 KEY_RIGHT
+0x15 KEY_LEFT
+0x1e KEY_VENDOR
+
+0x20 KEY_CHANNELUP
+0x21 KEY_CHANNELDOWN
+0x22 KEY_SELECT
+0x23 KEY_OK
+0x26 KEY_CYCLEWINDOWS
+0x2e KEY_SCREEN
+
+0x37 KEY_RED
+0x36 KEY_GREEN
+0x34 KEY_BLUE
+0x32 KEY_YELLOW
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_155.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_155.rc5
new file mode 100644
index 0000000000..416bbd900a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/medion_155.rc5
@@ -0,0 +1,35 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x35 KEY_BACK
+0x0c KEY_POWER
+0x0d KEY_MUTE
+0x3f KEY_MENU
+0x0f KEY_TV
+
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+0x12 KEY_UP
+0x13 KEY_DOWN
+0x14 KEY_RIGHT
+0x15 KEY_LEFT
+
+0x0a KEY_CHANNELUP
+0x0b KEY_CHANNELDOWN
+0x22 KEY_SELECT
+0x23 KEY_OK
+0x26 KEY_CYCLEWINDOWS
+0x2e KEY_SCREEN
+
+0x37 KEY_RED
+0x36 KEY_GREEN
+0x34 KEY_BLUE
+0x32 KEY_YELLOW
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips.rc5
new file mode 100644
index 0000000000..68bc85d764
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips.rc5
@@ -0,0 +1,32 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+
+0x0b KEY_MENU
+0x0c KEY_POWER
+0x0d KEY_MUTE
+0x0e KEY_OK
+0x0f KEY_MINUS
+0x10 KEY_VOLUMEUP
+0x11 KEY_VOLUMEDOWN
+
+0x20 KEY_CHANNELUP
+0x21 KEY_CHANNELDOWN
+0x26 KEY_INFO
+0x2d KEY_ZOOM
+0x2e KEY_CYCLEWINDOWS
+
+0x32 KEY_PLAY
+0x34 KEY_FORWARD
+0x36 KEY_STOP
+0x37 KEY_REWIND
+0x38 KEY_AUX
+0x3c KEY_TEXT
+0x3f KEY_SCREEN
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips1358.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips1358.rc5
new file mode 100644
index 0000000000..805755ed61
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/philips1358.rc5
@@ -0,0 +1,37 @@
+0x00 KEY_0
+0x01 KEY_1
+0x02 KEY_2
+0x03 KEY_3
+0x04 KEY_4
+0x05 KEY_5
+0x06 KEY_6
+0x07 KEY_7
+0x08 KEY_8
+0x09 KEY_9
+0x0C KEY_POWER
+0x0D KEY_MUTE
+0x0E KEY_OK
+0x0F KEY_DIGITS
+0x10 KEY_RIGHT
+0x11 KEY_LEFT
+0x1E KEY_STOP
+0x20 KEY_UP
+0x21 KEY_DOWN
+0x23 KEY_AB
+0x24 KEY_RECORD
+0x25 KEY_SUBTITLE
+0x26 KEY_INFO
+0x29 KEY_PLAY
+0x2A KEY_FORWARD
+0x2B KEY_PAUSE
+0x2C KEY_REWIND
+0x2D KEY_F4
+0x2E KEY_F3
+0x32 KEY_YELLOW
+0x34 KEY_BLUE
+0x36 KEY_GREEN
+0x37 KEY_RED
+0x38 KEY_AUX
+0x3C KEY_F2
+0x3D KEY_SCREEN
+0x3F KEY_F1
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/technotrend.rc5 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/technotrend.rc5
new file mode 100644
index 0000000000..526fdc7027
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/av7110_loadkeys/technotrend.rc5
@@ -0,0 +1,41 @@
+0x22 KEY_EPG
+0x1a KEY_RADIO
+0x19 KEY_TEXT
+
+0x0c KEY_0
+0x03 KEY_1
+0x04 KEY_2
+0x05 KEY_3
+0x06 KEY_4
+0x07 KEY_5
+0x08 KEY_6
+0x09 KEY_7
+0x0a KEY_8
+0x0b KEY_9
+
+0x0d KEY_UP
+0x11 KEY_DOWN
+0x25 KEY_VOLUMEUP
+0x26 KEY_VOLUMEDOWN
+
+0x23 KEY_CHANNELUP
+0x24 KEY_CHANNELDOWN
+
+0x01 KEY_POWER
+0x13 KEY_BACK
+0x02 KEY_MENU
+0x14 KEY_RED
+0x15 KEY_GREEN
+0x16 KEY_YELLOW
+0x0f KEY_OK
+0x17 KEY_BLUE
+0x18 KEY_MUTE
+0x3d KEY_REWIND
+0x3b KEY_PLAY
+0x3f KEY_FORWARD
+0x3a KEY_RECORD
+0x3c KEY_STOP
+0x3e KEY_PAUSE
+0x0e KEY_LEFT
+0x10 KEY_RIGHT
+0x12 KEY_INFO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Innsbruck b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Innsbruck
new file mode 100755
index 0000000000..89833ea5a0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Innsbruck
@@ -0,0 +1,50 @@
+# scan config for Innsbruck Telesystem cable provider
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabel-Braunau b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabel-Braunau
new file mode 100755
index 0000000000..4111c3ba62
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabel-Braunau
@@ -0,0 +1,194 @@
+# Kabel Braunau
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6111000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6111000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6111000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6111000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6428000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6428000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6111000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 594000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabelsignal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabelsignal
new file mode 100755
index 0000000000..a273047224
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Kabelsignal
@@ -0,0 +1,290 @@
+# kabelsignal
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 786000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 802000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 810000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-KarrerNet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-KarrerNet
new file mode 100755
index 0000000000..371c63be85
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-KarrerNet
@@ -0,0 +1,187 @@
+# Kabel St. Florian bei Linz/AT KarrerNet
+# 2009-01-10
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Liwest b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Liwest
new file mode 100755
index 0000000000..f3b0cadc04
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Liwest
@@ -0,0 +1,227 @@
+# Kabel Linz/AT Liwest
+# 2006-08-01
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 594000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 634000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-SalzburgAG b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-SalzburgAG
new file mode 100755
index 0000000000..0a9e364e8b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-SalzburgAG
@@ -0,0 +1,50 @@
+# scan config for Salzburg AG cable provider
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Vienna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Vienna
new file mode 100755
index 0000000000..dbce4a9985
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/at-Vienna
@@ -0,0 +1,10 @@
+# Kabel Vienna
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 377750000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/be-IN.DI-Integan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/be-IN.DI-Integan
new file mode 100755
index 0000000000..16ecffad44
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/be-IN.DI-Integan
@@ -0,0 +1,114 @@
+# Integan DVB-C (Belgium, IN.DI region)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/br-Net-Digital b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/br-Net-Digital
new file mode 100755
index 0000000000..197383439a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/br-Net-Digital
@@ -0,0 +1,13 @@
+# Net Digital
+# Just the initial transponder is enough
+
+# freq sr fec mod
+# Found on Sao Jose dos Campos, SP
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 573000000
+ SYMBOL_RATE = 5217000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Bern-upc-cablecom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Bern-upc-cablecom
new file mode 100755
index 0000000000..2053d6cf2f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Bern-upc-cablecom
@@ -0,0 +1,11 @@
+# upc cablecom
+# Berne, Switzerland
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-GGA-Pratteln b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-GGA-Pratteln
new file mode 100755
index 0000000000..2581d812b3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-GGA-Pratteln
@@ -0,0 +1,287 @@
+# DVB-C transponder/muxes scan
+# GGA Pratteln, Switzerland
+# www.gga-pratteln.ch
+# Network ID: 186
+# 2012-12-17
+
+# freq sr fec mod Comment
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[Teleclub]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 594000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[Intertainment]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[Intertainment]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[Intertainment]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[Intertainment]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[Intertainment]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 786000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 802000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 810000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 818000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 826000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 834000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 842000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Rega-Sense b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Rega-Sense
new file mode 100755
index 0000000000..6b5beff426
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Rega-Sense
@@ -0,0 +1,209 @@
+# Rega Sense, Switzerland
+# freq sr fec mod
+
+# Pay TV
+[Teleclub]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+
+# Basis offer
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 125000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 634000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+
+# HDTV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Video2000 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Video2000
new file mode 100755
index 0000000000..865c90ece4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Video2000
@@ -0,0 +1,12 @@
+# Cable Video2000
+# Canton of Neuchatel, Switzerland
+
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Zuerich-upc-cablecom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Zuerich-upc-cablecom
new file mode 100755
index 0000000000..a639f8231e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-Zuerich-upc-cablecom
@@ -0,0 +1,11 @@
+# upc cablecom
+# Zurich, Switzerland
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-interGGA b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-interGGA
new file mode 100755
index 0000000000..50457dcc5a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-interGGA
@@ -0,0 +1,223 @@
+# DVB-C transponder/muxes scan
+# interGGA, Switzerland
+# www.intergga-ag.ch
+# Network ID: 555
+# 2012-12-18
+
+# freq sr fec mod Comment
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 626000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 634000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-quickline-ewaarberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-quickline-ewaarberg
new file mode 100755
index 0000000000..c516821c7e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ch-quickline-ewaarberg
@@ -0,0 +1,8 @@
+# Initial scan config for Swiss DVB-C provider Quickline in Aarberg (EWA)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-Moravianet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-Moravianet
new file mode 100755
index 0000000000..457f83b5f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-Moravianet
@@ -0,0 +1,108 @@
+# DVB-C Moravianet (http://www.moravia.net/)
+# Available in villages and cities around Brno:
+# Bohuslavice, Bukovany, Hrusovany u Brna, Hustopece, Ivancice, Jirikovice,
+# Kyjov, Moravsky Krumlov, Mutenice, Neslovice, Nove Branice, Oslavany,
+# Popuvky, Padochov, Troubsko, Rosice, Tisnov, Vojkovice, Svatoborice,
+# Slapanice, Zabcice, Zidlochovice
+# The same content is available also from NejTV where they provide DVB-C.
+# Currently it is in Havlickuv Brod, Breclav, Velke Mezirici
+#
+# 2008-12-03
+#
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 218000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 226000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 234000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 242000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 250000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 258000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 266000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 274000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 282000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 290000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-UPC b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-UPC
new file mode 100755
index 0000000000..cd7fd291f4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/cz-UPC
@@ -0,0 +1,227 @@
+# UPC Česká republika | https://www.upc.cz/
+# Created from http://www.upczone.cz/download/seznam_muxu.htm
+# Last updated: 20/3/2016
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 626000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 634000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Berlin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Berlin
new file mode 100755
index 0000000000..b93ff6baab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Berlin
@@ -0,0 +1,26 @@
+# Kabel Berlin
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 113000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Brandenburg-Havel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Brandenburg-Havel
new file mode 100755
index 0000000000..d0417ad1e9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Brandenburg-Havel
@@ -0,0 +1,226 @@
+# Brandenburg an der Havel
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 594000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 626000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Hessen-Unitymedia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Hessen-Unitymedia
new file mode 100755
index 0000000000..807c443b85
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Hessen-Unitymedia
@@ -0,0 +1,343 @@
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 170000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 114000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 122000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 130000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 138000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 146000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 154000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 786000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 802000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 810000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 818000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 826000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 834000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 850000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_BW b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_BW
new file mode 100755
index 0000000000..f2015cfb6d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_BW
@@ -0,0 +1,23 @@
+# Kabel-BW, Stand 04/2007
+#
+# Nur eine Anfangsfrequenz ist noetig, um den Ball ins
+# Rollen zu bringen. Quasi als Einstiegspunkt fuer eine
+# umfassende Suche. Es besteht kein Grund, sich um all die
+# vielen anderen Frequenzen und deren aktuell verwendete
+# Parameter zu kuemmern und diese dann womoeglich auch
+# noch auf einem aktuellen Stand halten zu wollen. Bei der
+# schieren Anzahl der innerhalb des Ausbaugebiets durch
+# Kabel BW genutzten Frequenzen waere das nur zeitraubend
+# und fehleranfaellig... ;-)
+#
+# Dirk Ritter <dirk@GNUmatic.de>
+#
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 114000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_Deutschland-Hannover b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_Deutschland-Hannover
new file mode 100755
index 0000000000..c432384560
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Kabel_Deutschland-Hannover
@@ -0,0 +1,219 @@
+# Kabel Deutschland
+# Created from http://helpdesk.kdgforum.de/sendb/belegung-188.html
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 114000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 122000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 130000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 626000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Muenchen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Muenchen
new file mode 100755
index 0000000000..e6f637957d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Muenchen
@@ -0,0 +1,174 @@
+# 2008-06-22
+# Area: Muenchen City
+# Cable Provider: Kabel & Medien Service - http://www.atcable.de
+# Cable Content: Cablevista GmbH - http://www.cablevista.de
+#
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 113000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 121000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-NetAachen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-NetAachen
new file mode 100755
index 0000000000..58ee5949c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-NetAachen
@@ -0,0 +1,292 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20120605 1 0 CABLE DE </w_scan>
+# Manually adjusted by reducing whitespace between fec and mod
+#------------------------------------------------------------------------------
+# location and provider: Germany, Aachen, NetAachen, http://www.netaachen.de/
+# date (yyyy-mm-dd) : 2013-04-11
+# provided by (opt) : Till Maas <opensource@till.name>
+#
+# C[2] [plp_id] [data_slice_id] [system_id] <freq> <sr> <fec> <mod> [# comment]
+#------------------------------------------------------------------------------
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 113000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 634000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 626000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 121000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[NetCologne]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 129000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[BetaDigital]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[BetaDigital]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[BetaDigital]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[BetaDigital]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[BetaDigital]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Primacom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Primacom
new file mode 100755
index 0000000000..f89a86ef03
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Primacom
@@ -0,0 +1,251 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20130331 1 0 CABLE DE </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Chemnitz Primacom
+# date (yyyy-mm-dd) : 2013-06-22
+# provided by (opt) : Sven Eckelmann <sven@narfation.org>
+#
+# C[2] [plp_id] [data_slice_id] [system_id] <freq> <sr> <fec> <mod> [# comment]
+#------------------------------------------------------------------------------
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 121000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 169000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 129000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 137000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 145000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 153000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[PrimaCom A.G.]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 161000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Unitymedia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Unitymedia
new file mode 100755
index 0000000000..0323d1affa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-Unitymedia
@@ -0,0 +1,260 @@
+# Unitymedia
+# Created from http://www.unitymedia.de/service/soforthilfe/frequenzen.html
+# and http://www.unitymedia.de/images/UnityDigitalTV_Lineup_01-07-2009.pdf
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 113000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 121000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-iesy b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-iesy
new file mode 100755
index 0000000000..6b3630e8ad
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-iesy
@@ -0,0 +1,146 @@
+# Unity Media (iesy Hessen, ish Nordrhein-Westfalen)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 113000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 121000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-komro-Rosenheim b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-komro-Rosenheim
new file mode 100755
index 0000000000..49ffa5b9b9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-komro-Rosenheim
@@ -0,0 +1,226 @@
+# komro (Rosenheim)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 113000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 121000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 626000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-neftv b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-neftv
new file mode 100755
index 0000000000..abf0f02246
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/de-neftv
@@ -0,0 +1,237 @@
+# Cable conf for NEFtv
+# (Nuernberg, Erlangen, Fuerth and Herzogenaurach (herzomedia))
+
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 113000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+# The following channel is only available in Herzogenaurach
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 634000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 786000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 802000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 810000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Aarhus-Antenneforening b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Aarhus-Antenneforening
new file mode 100755
index 0000000000..3d0ae13e7c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Aarhus-Antenneforening
@@ -0,0 +1,9 @@
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Copenhagen-AFDK b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Copenhagen-AFDK
new file mode 100755
index 0000000000..1773cc30a7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Copenhagen-AFDK
@@ -0,0 +1,67 @@
+# AFDK, Copenhagen
+# http://www.afdk.tv/
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 618000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Odense b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Odense
new file mode 100755
index 0000000000..6fac9c8798
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-Odense
@@ -0,0 +1,66 @@
+# Glentevejs Antennelaug (Denmark / Odense)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 255000000
+ SYMBOL_RATE = 5000000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-YouSee b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-YouSee
new file mode 100755
index 0000000000..54cadb5fb8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/dk-YouSee
@@ -0,0 +1,223 @@
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 602000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 594000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 586000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 578000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 570000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 562000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 554000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 546000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 538000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 248000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 238000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 230000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 156000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 143000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 135000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/es-Euskaltel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/es-Euskaltel
new file mode 100755
index 0000000000..bf5926b82f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/es-Euskaltel
@@ -0,0 +1,117 @@
+# Scan config for Euskaltel (DVB-C)
+# Basque Country - Spain
+# file automatically generated by w_scan
+# (http://free.pages.at/wirbel4vdr/w_scan/index2.html)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 786000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 802000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 810000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 818000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-HTV b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-HTV
new file mode 100755
index 0000000000..9b69de6502
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-HTV
@@ -0,0 +1,234 @@
+# Generated from http://dvb.welho.fi/hel5-sidump1.xml
+# 2016-01-06 15:42:32.073637
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 274000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 250000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 290000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 178000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 186000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 194000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 202000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 210000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 218000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 226000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 242000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 258000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 266000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 154000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 146000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 170000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Joensuu-Tikka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Joensuu-Tikka
new file mode 100755
index 0000000000..df8dbe1118
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Joensuu-Tikka
@@ -0,0 +1,90 @@
+# DVB-C, Tikka Media, Joensuu, Finland
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 154000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 170000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Kaisa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Kaisa
new file mode 100755
index 0000000000..91b869e98d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Kaisa
@@ -0,0 +1,226 @@
+# Kaisanet Oy (Kajaani)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 170000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 146000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 308000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 154000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 290000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 308000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 282000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 274000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 266000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 250000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 258000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 186000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 194000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 202000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 210000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 218000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 226000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-TTV b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-TTV
new file mode 100755
index 0000000000..310719cf04
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-TTV
@@ -0,0 +1,18 @@
+# TTV
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Turku b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Turku
new file mode 100755
index 0000000000..d8c7da66c7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-Turku
@@ -0,0 +1,170 @@
+# Turun Kaapelitelevisio Oy (Turku)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 146000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 154000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 234000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 242000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 250000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 258000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 266000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 290000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-dna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-dna
new file mode 100755
index 0000000000..40bdd6341b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-dna
@@ -0,0 +1,237 @@
+# DNA network reference channels
+# updated 2011-04-08 Antti Palosaari <crope@iki.fi>
+# http://www.dna.fi/YKSITYISILLE/TV/KAAPELITV/Sivut/Taajuudet.aspx
+#
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 154000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 170000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 226000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 234000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 242000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 242000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 250000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 258000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 266000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 274000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 282000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 290000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-jkl b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-jkl
new file mode 100755
index 0000000000..cdfd678311
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-jkl
@@ -0,0 +1,66 @@
+# OnCable (Finland / Jyväskylä)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 162000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/128
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-sonera b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-sonera
new file mode 100755
index 0000000000..fa1326a173
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-sonera
@@ -0,0 +1,196 @@
+# Sonera kaapeli-tv (Finland)
+# Maksuttomat kanavat ovat 242,250,314,370 ja 410 MHz:n muxeissa
+#
+# freq      sr      fec  mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 234000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 242000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 250000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 258000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 266000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 274000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-vaasa-oncable b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-vaasa-oncable
new file mode 100755
index 0000000000..375180f04e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fi-vaasa-oncable
@@ -0,0 +1,90 @@
+# OnCable (Finland / Vaasa)
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 143000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fr-noos-numericable b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fr-noos-numericable
new file mode 100755
index 0000000000..1249b37198
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/fr-noos-numericable
@@ -0,0 +1,314 @@
+# Cable en France
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 123000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 131000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 139000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 147000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 155000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 163000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 171000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 179000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 187000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 195000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 203000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 211000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 219000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 227000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 235000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 243000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 251000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 259000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 267000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 275000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 283000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 291000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 299000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 315000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 323000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 339000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 347000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 748000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 834000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 842000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 850000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hr-B.net b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hr-B.net
new file mode 100755
index 0000000000..ade8eb5d17
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hr-B.net
@@ -0,0 +1,250 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20130331 1 0 CABLE HR </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: <Croatia, B.net, http://www.bnet.hr/>
+# date (yyyy-mm-dd) : 2015-06-07
+# provided by (opt) : <gogo trebelnik2@gmail.com>
+#
+# C[2] [plp_id] [data_slice_id] [system_id] <freq> <sr> <fec> <mod> [# comment]
+#------------------------------------------------------------------------------
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 818000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 834000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 842000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 850000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 858000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 722000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 730000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 786000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 810000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 738000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 826000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 658000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 610000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hu-Digikabel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hu-Digikabel
new file mode 100755
index 0000000000..08d506b867
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/hu-Digikabel
@@ -0,0 +1,144 @@
+# Digikabel, Hungary
+# For the following cities:
+# Budapest, Dorog, Hatvan, Kiskunhalas, Debrecen, Szekesfehervar, Pecs,
+# Veszprem, Dunaujvaros, Miskolc, Gyongyos, Tatabanya, Varpalota, Nagykanizsa,
+# Salgotarjan, Batonyterenye, Szolnok, Szentistvan, Nyiregyhaza, Gyor,
+# Szazhalombatta, Bekescsaba, Bekes, Eger, Komlo, Oroszlany
+# In some of the cities not all the frequencies are available.
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 121000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 746000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 754000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 762000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 778000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 786000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 794000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 850000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/lu-Ettelbruck-ACE b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/lu-Ettelbruck-ACE
new file mode 100755
index 0000000000..4a567feeb4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/lu-Ettelbruck-ACE
@@ -0,0 +1,132 @@
+# Scan config for Antenne Collective Ettelbruck a.s.b.l.
+# (http://antenne-ettelbruck.lu)
+# Luxembourg - Ettelbruck
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 634000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 642000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 650000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 666000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 674000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 714000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 656000000
+ SYMBOL_RATE = 3450000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 660000000
+ SYMBOL_RATE = 3450000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 720000000
+ SYMBOL_RATE = 3450000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 732000000
+ SYMBOL_RATE = 3450000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 724000000
+ SYMBOL_RATE = 3450000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 728000000
+ SYMBOL_RATE = 3450000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Delta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Delta
new file mode 100755
index 0000000000..d278f8da76
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Delta
@@ -0,0 +1,15 @@
+# Initial Tuning file for nl-DELTA
+# This file only lists the main
+# frequency. You still need to do
+# a network scan to find other
+# transponders.
+#
+#
+[Main Frequency]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-REKAM-CAIW_Gouda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-REKAM-CAIW_Gouda
new file mode 100755
index 0000000000..4cd60bde08
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-REKAM-CAIW_Gouda
@@ -0,0 +1,18 @@
+# REKAM / Caiway, Gouda, Netherlands
+# freq sr fec mod
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 163000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 770000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Ziggo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Ziggo
new file mode 100755
index 0000000000..88c89643ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/nl-Ziggo
@@ -0,0 +1,17 @@
+# Initial Tuning file for nl-Ziggo
+# This file only lists the main
+# frequencie. You still need to do
+# a network scan to find other
+# transponders.
+# Also set the network id
+# (aka nit other) to: 5555
+#
+
+[Main Frequency Ziggo]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-CanalDigital b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-CanalDigital
new file mode 100755
index 0000000000..160c19f840
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-CanalDigital
@@ -0,0 +1,97 @@
+# no-oslo-CanalDigital (cable)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6950000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-Get b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-Get
new file mode 100755
index 0000000000..05ac4639c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/no-Oslo-Get
@@ -0,0 +1,169 @@
+# no-Oslo-Get (cable)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 241000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 272000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 280000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 290000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6952000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ro-DigiTV b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ro-DigiTV
new file mode 100755
index 0000000000..fe6cb6aef6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/ro-DigiTV
@@ -0,0 +1,201 @@
+# From http://www.rcs-rds.ro/personal-tv?t=cablu&pachet=digital
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-Gothnet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-Gothnet
new file mode 100755
index 0000000000..3f4f70fd32
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-Gothnet
@@ -0,0 +1,121 @@
+# Gothnet DVB-C
+# Updated: 2008-09-19
+# freq sr fec mod
+
+# Free channels
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+
+# SPA channels
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 682000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 690000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 698000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 706000000
+ SYMBOL_RATE = 6900000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+
+# Canal Digital channels
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 7000000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 7000000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 7000000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 7000000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 7000000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 7000000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-comhem b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-comhem
new file mode 100755
index 0000000000..24acd975aa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-c/se-comhem
@@ -0,0 +1,248 @@
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 290000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 298000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 306000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 314000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 322000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 330000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 338000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 346000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 354000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 362000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/64
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 370000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 378000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 386000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 394000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 402000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 410000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 418000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 426000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 434000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 442000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 450000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 458000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 466000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 474000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 482000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 490000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 498000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 506000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 514000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 522000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBC/ANNEX_A
+ FREQUENCY = 530000000
+ SYMBOL_RATE = 6875000
+ INNER_FEC = NONE
+ MODULATION = QAM/256
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ABS1-75.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ABS1-75.0E
new file mode 100755
index 0000000000..21836284cb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ABS1-75.0E
@@ -0,0 +1,66 @@
+# ABS-1 @ 75E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12518000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12548000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12579000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12640000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12670000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12693000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12704000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3900000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12740000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7408000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC1-103w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC1-103w
new file mode 100755
index 0000000000..bb9db849c9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC1-103w
@@ -0,0 +1,19 @@
+# AMC 1 @ 103W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11942000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12100000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC10_C-135W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC10_C-135W
new file mode 100755
index 0000000000..be36843d16
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC10_C-135W
@@ -0,0 +1,21 @@
+# AMC 10 @ 135W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3820000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29268000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3900000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29268000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC11_C-131W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC11_C-131W
new file mode 100755
index 0000000000..6207d9b1be
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC11_C-131W
@@ -0,0 +1,30 @@
+# AMC 11 @ 131W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3820000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29726000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3860000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3928000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14322000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC16-85.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC16-85.0W
new file mode 100755
index 0000000000..8d89f911d3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC16-85.0W
@@ -0,0 +1,27 @@
+# AMC 2 @ 85W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11731000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11744000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11771000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC18_C-105W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC18_C-105W
new file mode 100755
index 0000000000..09aacb62d2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC18_C-105W
@@ -0,0 +1,20 @@
+# AMC 18 @ 105W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3780000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3760000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28068000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC4-101w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC4-101w
new file mode 100755
index 0000000000..11397d5e90
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC4-101w
@@ -0,0 +1,59 @@
+# AMC 4 @ 101.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11573000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7234000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11655000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11708000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11822000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11860000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28138000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12120000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12169000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3003000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC5-79w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC5-79w
new file mode 100755
index 0000000000..6d8f7ecd70
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC5-79w
@@ -0,0 +1,19 @@
+# AMC 5 @ 79W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11742000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 11110000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12182000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC6-72w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC6-72w
new file mode 100755
index 0000000000..525972a7e3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC6-72w
@@ -0,0 +1,331 @@
+# AMC 6 @ 72W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11482000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2656000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11494000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6560000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11499000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2964000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11505000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11546000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 12000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11548000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3002000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11552000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3002000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11557000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4392000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11563000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4392000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11570000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4392000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11576000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4392000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11586000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2652000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11603000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11605000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11611000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11628000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6560000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11641000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3702000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11648000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11667000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11674000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11680000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11703000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11709000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11715000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11746000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11748000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14015000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11752000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11763000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11817000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11874000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11986000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11995000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12004000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12013000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12025000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12031000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12046000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12055000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6890000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12144000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2573000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12188000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6511000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC8_C-139W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC8_C-139W
new file mode 100755
index 0000000000..7a32adb890
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC8_C-139W
@@ -0,0 +1,57 @@
+# AMC 8 @ 139W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4056000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13250000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3744000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2955000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3766000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3335000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4111000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7136000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4152000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9259000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4170000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10128000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9-83.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9-83.0W
new file mode 100755
index 0000000000..847ab2a2cd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9-83.0W
@@ -0,0 +1,123 @@
+# AMC 9 @ 83W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11745000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11751000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11757000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11763000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11769000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11775000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11826000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11864000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11871000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11889000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13025000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11926000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6511000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11953000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11960000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12002000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12011000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9_C-83.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9_C-83.0W
new file mode 100755
index 0000000000..3bb10bfcd6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AMC9_C-83.0W
@@ -0,0 +1,49 @@
+# AMC 9 @ 83W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3804000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4167000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3811000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2398000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3813000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2221000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3817000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2883000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3825000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4034000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Agila2_C-146.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Agila2_C-146.0E
new file mode 100755
index 0000000000..5591e5050c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Agila2_C-146.0E
@@ -0,0 +1,186 @@
+# Agila 2 @ 146.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Viva Prime Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2345000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Zoe Philippines
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3774000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3300000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Da Ai TV indonesia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3791000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3100000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Trinity Broadcasting Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3791000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10091000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# Bayon TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3796000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3360000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# White Springs TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3846000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6110000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TCT World
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3854000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2603000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# CCTN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3873000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2532000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# NBN Philippines
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3875000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Al Masriyah
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3880000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Viva Entertainment Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3887000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6716000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# IBC13
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3896000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# CTN Cambodia Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3979000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9628000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Divya TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3990000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13330000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Familyland TV Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4164000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3735000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# MTV Philippines
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4171000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3213000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# The Old Path TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4183000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# UNTV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4188000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amazonas-61.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amazonas-61.0W
new file mode 100755
index 0000000000..b7471c12ff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amazonas-61.0W
@@ -0,0 +1,411 @@
+# Amazonas @ 61.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3957000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3966000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3975000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3993000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4137000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3409000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3941000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3480000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12132000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4174000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3330000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11128000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11185000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 11800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11049000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12052000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10975000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3631000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2785000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10975000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3677000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3985000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11810000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11921000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 21740000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11943000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4750000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4168000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7307000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12052000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12172000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11175000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28880000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4154000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 9615000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11099000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7576000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11885000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4890000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11882000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 11343000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11133000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11078000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1862000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11912000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11906000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2220000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11108000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12132000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11135000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4144000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4540000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11808000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 11111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11972000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4156000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4540000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4149000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4540000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3948000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4178000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11844000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 16600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11095000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11790000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12172000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11055000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12012000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amos-4w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amos-4w
new file mode 100755
index 0000000000..522280c2e0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Amos-4w
@@ -0,0 +1,370 @@
+# Amos 6 @ 4W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10722000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10722000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10722000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10758000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10758000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10759000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10806000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10806000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10842000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10842000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10842000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10890000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10890000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10925000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10925000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10972000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11008000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2295000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11123000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1850000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11167000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 12500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11179000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11260000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11304000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19540000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11319000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2750000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11329000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11333000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11347000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3350000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11384000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11411000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7925000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11429000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5925000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11435000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2089000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11474000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11510000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11558000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11559000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13400000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11572000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8888000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11592000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 21350000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11593000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11625000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11630000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11630000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1480000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11647000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 9167000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11647000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8518000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11654000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11658000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8520000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1-107.3W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1-107.3W
new file mode 100755
index 0000000000..4613024fe3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1-107.3W
@@ -0,0 +1,35 @@
+# Anik F1 @ 107.3W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12002000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19980000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12063000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19980000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12155000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12185000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19980000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1R_C-107.3W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1R_C-107.3W
new file mode 100755
index 0000000000..b9959b641b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F1R_C-107.3W
@@ -0,0 +1,93 @@
+# Anik F1R @ 107.3W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7856000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4080000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3807000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6499000
+ INNER_FEC = 1/2
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3824000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 1/2
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3914000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7078000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3928000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4020000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4060000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28348000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4100000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28348000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4140000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F2_C-111.1W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F2_C-111.1W
new file mode 100755
index 0000000000..a9a838af42
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F2_C-111.1W
@@ -0,0 +1,12 @@
+# Anik F2 @ 111.1W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4104000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4143000
+ INNER_FEC = 1/2
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F3-119W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F3-119W
new file mode 100755
index 0000000000..f4405fc4d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Anik-F3-119W
@@ -0,0 +1,560 @@
+#Dish Network USA works with PSK/8turbo
+#Just DVBS-USB Genpix Sky Walker 1 or 2 works with PSK/8turbo
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11715000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11728000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11745000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11758000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11776000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11789000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11806000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11819000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11837000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11850000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11867000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11880000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11898000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11928000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11959000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11972000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11989000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12002000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12020000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12033000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12050000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12063000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12081000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12094000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12111000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12124000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12142000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12155000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12172000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12185000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12224000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12239000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12253000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12268000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12282000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12297000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12311000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12326000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12341000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12355000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12370000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12384000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 201500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12399000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12414000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12428000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12443000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12457000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12472000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12486000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12501000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12516000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12530000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12545000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12559000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12574000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12589000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12603000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12618000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12632000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12647000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12661000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12676000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Apstar6_C-134.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Apstar6_C-134.0E
new file mode 100755
index 0000000000..b61c7c71c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Apstar6_C-134.0E
@@ -0,0 +1,36 @@
+# Apstar 6 @ 134.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# New Entertainment
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3766000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Test
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV Nusantara
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3905000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat2_C-100.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat2_C-100.5E
new file mode 100755
index 0000000000..c0889c80b1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat2_C-100.5E
@@ -0,0 +1,156 @@
+# AsiaSat 2 100.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Iris Sat Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3660000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# APTN Direct
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3706000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4167000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# APTN Global Video Wire (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3732000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8889000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# BYU TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3767000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6527000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+
+# AJK TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3778000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RTB International Brunei
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3786000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Shamshad TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3790000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2444000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# FTV HD (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3794000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4640000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Arabsat ASBU Bouquet Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3820000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Star TV Multiplex (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# E Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3880000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SatLink Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3960000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3980000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28100000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SatLink European Bouquet (MPEG-2 & MPEG-4 S2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Macau Satellite TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4148000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 11852000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat3S_C-105.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat3S_C-105.5E
new file mode 100755
index 0000000000..4454e4484e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/AsiaSat3S_C-105.5E
@@ -0,0 +1,326 @@
+# AsiaSat 3S 105.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# China Entertainment TV & Maharishi Veda Vision
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3680000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26670000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# MediaCorp Channel News Asia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3706000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# BTV World
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4450000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Galaxy TVB
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3729000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13650000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Zee Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3733000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Madani Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3739000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2815000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Fashion TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3746000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2625000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Aaj News
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3750000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2821000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Arirang Arab
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3755000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4418000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Globecast multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3760000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3780000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28100000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Airwaves Media Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3786000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5700000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Zee Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3820000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26850000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3860000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# B4U INDIA - MPEG-4 S/2 Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3880000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3940000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28100000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Tuner International Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3960000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28100000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3980000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28100000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26850000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Sahara Samay Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4020000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# VOA Voice Of America Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4040000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 20400000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+
+# Globecast Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4071000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14240000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# PTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4091000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Sun TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4095000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5554000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# PTV Global USA
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4102000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2894000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# PTV Global UK & Europe
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4106000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2894000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Galaxy TVB Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4111000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13650000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# PTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4114000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Eye TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4129000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Zee Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4140000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Geo TV Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4180000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26666000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Asiasat4_C-122.2E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Asiasat4_C-122.2E
new file mode 100755
index 0000000000..3bc0c09f87
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Asiasat4_C-122.2E
@@ -0,0 +1,76 @@
+# Asiasat 4 @ 122.2E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# SITI Digital Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3760000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SITI Digital Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3820000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Henan Radio Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3856000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SITI Digital Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3880000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SITI Digital network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3920000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SITI Digital network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3960000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SITI Digital network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4180000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-19.2E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-19.2E
new file mode 100755
index 0000000000..2d1f0b24bc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-19.2E
@@ -0,0 +1,10 @@
+# Astra 19.2E SDT info service transponder
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12551500
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-23.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-23.5E
new file mode 100755
index 0000000000..ed505ea6a6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-23.5E
@@ -0,0 +1,450 @@
+# Astra 23.5E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10758000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10788000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10802000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10842000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10862000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+# Astra2Connect
+# S2 10891250 H 22000000 3/4 AUTO 8PSK
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11475000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11515000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11515000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11555000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11555000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11592000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11595000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11635000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11635000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11719000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11739000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Astra2Connect
+# S2 11758000 H 27500000 5/6 AUTO 8PSK
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11778000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11798000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11817000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11836000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29900000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11856000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11875000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11914000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Astra2Connect
+# S2 11954000 H 27500000 3/4 AUTO 8PSK
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11992000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12012000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12032000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12070000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12109000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+# Astra2Connect
+# S2 12148000 H 27500000 3/4 AUTO 8PSK
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12168000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Astra2Connect
+# S2 12226000 H 27500000 3/5 AUTO 8PSK
+# Astra2Connect
+# S2 12304000 H 27500000 5/6 AUTO 8PSK
+# Astra2Connect
+# S2 12344000 H 28200000 5/6 AUTO 8PSK
+# Astra2Connect
+# S2 12382000 H 27500000 3/4 AUTO 8PSK
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12525000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12525000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12565000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12565000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12605000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12605000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12630000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12631000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12636000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2277000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12641000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2220000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12644000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12649000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5600000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12661000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12685000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12696000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12711000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12725000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-28.2E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-28.2E
new file mode 100755
index 0000000000..0266839cb7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Astra-28.2E
@@ -0,0 +1,863 @@
+# Astra 28.2E SDT info service transponder
+# freq pol sr fec
+
+## Astra 2E
+# Transponder 1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11719500
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 3
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11758000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 4
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11778000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 5
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11798000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 6
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11817000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 7
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11836000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 8
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11856000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 9
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11876000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11895000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 11
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11914000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 12
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11934000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 13
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11954000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 16
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12012000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 17
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12032000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 18
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12051000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 19
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12070000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 20
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12090000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 21
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12110000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 22
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12129000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2F
+# Transponder 23
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12148000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 24
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12168000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12188000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 26
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12207000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 27
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12226500
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 28
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12246000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2E
+# Transponder 29
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12266000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2E
+# Transponder 31
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12304000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2E
+# Transponder 31
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12304000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 32
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12324000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 33
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12344000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 34
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12363000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2F
+# Transponder 38
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12441000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 39
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12460000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2E
+# Transponder 40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12480000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2E
+# Transponder 41
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10714250
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 42
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10729000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 43
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10744000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 44
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10758000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 45
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10773000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 46
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10788000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 47
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10803000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 48
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10818000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 49
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 10832000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 50
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 10847000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 10876000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 53
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10891000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10906000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 56
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 10936000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+## Astra 2G
+# Transponder 57
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10964000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10994000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 61
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11024000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 63
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11052750
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 64
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11068000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 65
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11081000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 66
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11097000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 67
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11112000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 68
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11127000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 69
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11141250
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 71
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11170750
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 89
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11464250
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 90
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11479000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 92
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11508500
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 93
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11523500
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 94
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11538000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 95
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11552750
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 96
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11567500
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 97
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11582250
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 98
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11597000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 99
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11611750
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder 102
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11656000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 102
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11656000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 103
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11671750
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 104
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11685500
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2F
+# Transponder 109
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11307000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 110
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11307000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 111
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11344000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 112
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11344500
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+## Astra 2E
+# Transponder 113
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11385000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 114
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11385000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 115
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11425000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder 116
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11426000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder C1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11225000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder C2
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11225000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+# Transponder C1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11265000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+# Transponder C2
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11265000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ MODULATION = QPSK
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-1-12.5W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-1-12.5W
new file mode 100755
index 0000000000..0c85d50f85
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-1-12.5W
@@ -0,0 +1,270 @@
+# Atlantic Bird 1 @ 12.5W
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11099000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11132000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11136000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3700000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11174000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 15190000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11179000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22400000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11188000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5722000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11332000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6428000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11337000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1923000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11340000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2279000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11355000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 11781000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11408000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11428000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11595000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11622000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11643000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2398000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11645000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4790000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11651000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3688000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12515000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 17455000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12535000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12545000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 17455000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12594000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12597000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1730000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12604000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1481000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12655000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12658000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2141000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12662000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3928000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12718000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 36510000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 33
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12718000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 36510000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 34
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12718000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 36510000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 35
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12718000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 36510000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 36
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12720000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12743000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-3-5.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-3-5.0W
new file mode 100755
index 0000000000..9d751a7c5e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Atlantic-Bird-3-5.0W
@@ -0,0 +1,364 @@
+# Atlantic Bird 3 @ 5.0W
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11012000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11012000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 3
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11012000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 11
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11179000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 4
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11179000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 5
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11179000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 12
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 3
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 4
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 5
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11637000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 6
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 7
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 8
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 9
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 10
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 11
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 12
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 13
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 14
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 15
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11675000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 16
+ PLS_CODE = 16416
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12585000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12585000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12606000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29900000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12606000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29900000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12648000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 121212
+ PLS_MODE = 1
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12648000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29500000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 121212
+ PLS_MODE = 1
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12669000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30080000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12669000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30080000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B1-75.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B1-75.0W
new file mode 100755
index 0000000000..b031ca610f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B1-75.0W
@@ -0,0 +1,67 @@
+# Brasilsat B1 @ 75.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3648000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3657000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3653000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4710000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3655000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3629000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3711000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3644000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3638000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B2-65.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B2-65.0W
new file mode 100755
index 0000000000..bc24954b6b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B2-65.0W
@@ -0,0 +1,251 @@
+# Brasilsat B2 @ 65.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3745000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3540000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4008000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4011000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3792000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3393000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4104000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4097000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3905000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3935000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3890000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3925000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4112000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3650000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3736000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3787000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3876000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2740000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4117000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3815000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3793000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3721000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3684000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3915000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3766000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3336000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3847000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3706000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2462000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3667000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7236000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3771000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1480000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3734000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2852000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3810000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3762000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3834000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3572000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3850000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1570000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B4-70.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B4-70.0W
new file mode 100755
index 0000000000..b73c9ff63f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilSat-B4-70.0W
@@ -0,0 +1,291 @@
+# Brasilsat B4 @ 70.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3951000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3714000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3672000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4713000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3955000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3965000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2930000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3628000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3644000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3650000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3688000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3680000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3662000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4606000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3945000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3640000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3263000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3979000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3617000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3752000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6220000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3685000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3650000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3985000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4010000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3665000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3637000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2228000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3708000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3928000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4047000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7143000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3672000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8454000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3820000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3940000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3964000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1875000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3695000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3598000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3900000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3645000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3520000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3983000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1630000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3631000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4687000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3874000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5926000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3700000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9123000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3997000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3973000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4338000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilsatB4-84.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilsatB4-84.0W
new file mode 100755
index 0000000000..a4d4d0a5d4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/BrasilsatB4-84.0W
@@ -0,0 +1,659 @@
+# Brasilsat B3 @ 84.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3728000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3698000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4054000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1287000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3745000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3738000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4708000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3923000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3768000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3955000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4167000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3791000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3330000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3866000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4425000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3932000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4132000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2532000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3906000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3928000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3858000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4288000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3665000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3177000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3732000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3774000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3330000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3927000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3710000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3261000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3883000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4278000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3770000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3754000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3764000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3910000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3616000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3705000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4280000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3852000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3806000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3845000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 10127000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3936000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3653000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3807000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3751000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3565000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3871000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4435000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3895000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4430000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3936000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3800000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3855000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4171000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3716000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4068000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4070000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2964000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3949000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3684000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4169000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8140000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4144000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2734000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3736000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3790000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 10444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3724000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2075000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4121000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3629000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3970000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4445000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3985000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3916000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4155000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3692000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3330000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3644000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4687000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4087000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 17200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3889000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4176000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3515000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3829000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3805000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2662000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3943000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2460000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3757000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3565000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3696000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3989000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3690000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3657000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3996000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3926000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4126000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4136000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2142000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3675000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3931000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3786000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4286000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3688000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2308000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4075000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3911000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3824000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3002000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3778000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6850000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3710000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 12960000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3877000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4450000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3940000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4064000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ChinaSat5A-87.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ChinaSat5A-87.5E
new file mode 100755
index 0000000000..b31fc0a9c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ChinaSat5A-87.5E
@@ -0,0 +1,36 @@
+# ChinaStar 1 @ 87.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Myawady TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3734000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5925000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Zam TV Tests
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4076000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2532000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Test Card
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4081000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4687000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Echostar-10+11-110W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Echostar-10+11-110W
new file mode 100755
index 0000000000..6521ab539a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Echostar-10+11-110W
@@ -0,0 +1,281 @@
+#Dish Network USA works with PSK/8turbo
+#Just DVBS-USB Genpix Sky Walker 1 or 2 works with PSK/8turbo
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12224000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12239000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12253000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12268000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12282000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12297000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12297000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12311000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12326000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12341000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12355000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12370000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12384000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12399000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12414000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12428000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12443000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12457000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12472000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12486000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12501000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12516000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12530000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12545000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12559000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12574000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12589000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12603000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12618000
+ POLARIZATION = LEFT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12632000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12661000
+ POLARIZATION = RIGHT
+ SYMBOL_RATE = 21500000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Estrela-do-Sul-63.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Estrela-do-Sul-63.0W
new file mode 100755
index 0000000000..fe0693010b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Estrela-do-Sul-63.0W
@@ -0,0 +1,195 @@
+# Estrela do Sul @ 63.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11892000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2964000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11987000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3330000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12054000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26660000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11830000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11603000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3124000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11598000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3124000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11803000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11958000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11610000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3124000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11861000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2964000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11879000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2964000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11903000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2362000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11817000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11577000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3124000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11582000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3124000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11982000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8888000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11888000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2392000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11898000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2480000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11871000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11795000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11845000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11640000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 18100000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11875000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11543000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10410000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Eutelsat9-9.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Eutelsat9-9.0E
new file mode 100755
index 0000000000..49e65d684e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Eutelsat9-9.0E
@@ -0,0 +1,114 @@
+# Eurobird 9.0E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11727000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11747000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11766000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11785000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11804000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11823000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11843000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11881000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26700000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11938000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11977000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11996000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12054000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/EutelsatW2-16E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/EutelsatW2-16E
new file mode 100755
index 0000000000..5b2ba88370
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/EutelsatW2-16E
@@ -0,0 +1,451 @@
+# Eutelsat W2 @ 16E
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10957000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2821000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10968000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10972000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10976000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10989000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10997000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11005000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11011000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11025000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2894000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11046000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 10555000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11057000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3327000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11061000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5722000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11078000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5208000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11092000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 32000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11094000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2734000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11132000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14185000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11178000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11192000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11267000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11276000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 11100000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11294000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11304000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11324000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11428000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11449000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11471000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29950000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11492000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29950000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11513000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29950000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11534000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11554000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11575000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11594000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11617000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29950000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11634000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 17578000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11658000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11659000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 17578000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11682000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14468000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12538000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12549000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2894000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12555000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12557000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2156000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12562000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12563000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12568000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3703000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12625000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12633000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4883000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12642000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3418000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12650000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 15000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12656000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4883000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12677000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12683000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2894000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12703000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2748000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12716000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12723000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12733000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 16277000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Express-3A-11.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Express-3A-11.0W
new file mode 100755
index 0000000000..2be272a171
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Express-3A-11.0W
@@ -0,0 +1,11 @@
+# Express 3A @ 11.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3675000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29623000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM1-40.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM1-40.0E
new file mode 100755
index 0000000000..6d31da9359
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM1-40.0E
@@ -0,0 +1,26 @@
+# Express AM1 @ 40E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10967000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10995000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11097000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM2-80.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM2-80.0E
new file mode 100755
index 0000000000..9dfcfc00f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM2-80.0E
@@ -0,0 +1,168 @@
+# Express AM2 @ 80E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10973000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10991000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11044000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 44948000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11081000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5064000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11088000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4548000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11191000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11462000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11478000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11544000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 44950000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11606000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 44948000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11650000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+
+# Express AM2 @ 80E C-BAND
+# Generated by Roman Kashcheev
+# Mar 30, 2008
+# freq pol sr fec
+
+# RSCC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3525000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 31106000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# TRK Sever
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3558000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3215000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# TRV Muji
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3562000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3225000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# OTV Sakhalin
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3625000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# RSCC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3675000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 33483000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+# 5 Kanal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3929000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8705000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# TV Centr
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4147000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Blagovest Telekanal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4175000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6510000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM22-53.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM22-53.0E
new file mode 100755
index 0000000000..513244cb9b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ExpressAM22-53.0E
@@ -0,0 +1,51 @@
+# Express AM 22 @ 53E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11044000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 44950000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10974000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8150000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+#S 10974000 V 32223000 7/8
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11031000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3750000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11096000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11124000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7593000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11161000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5785000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy10R-123w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy10R-123w
new file mode 100755
index 0000000000..6212f56cd4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy10R-123w
@@ -0,0 +1,59 @@
+# Galaxy 10R @ 123W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11720000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27692000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11732000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13240000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11800000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26657000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11805000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4580000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11966000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12104000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12114000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy13_C-127W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy13_C-127W
new file mode 100755
index 0000000000..db85e25ec3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy13_C-127W
@@ -0,0 +1,39 @@
+# Galaxy 13 @ 127W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3780000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3820000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4066000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3313000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4185000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 10097000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy14_C-125W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy14_C-125W
new file mode 100755
index 0000000000..b7ffe0d588
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy14_C-125W
@@ -0,0 +1,30 @@
+# Galaxy 14 @ 125W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3720000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26668000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3760000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19887000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3900000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29077000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy15_C-133W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy15_C-133W
new file mode 100755
index 0000000000..bcc096f07e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy15_C-133W
@@ -0,0 +1,22 @@
+# GALAXY 15 @ 133W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3790000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 11935000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3809000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 16303000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy16_C-99.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy16_C-99.0W
new file mode 100755
index 0000000000..5d23c6f951
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy16_C-99.0W
@@ -0,0 +1,137 @@
+# Galaxy 16 @ 99W C-BAND
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3721000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8703000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3789000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1671000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3795000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3805000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2300000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3810000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8029000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3932000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1561000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3936000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1545000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26398000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4080000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27780000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4120000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3740000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3812000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 15004000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4006000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5833000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4060000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27781000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4140000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17-91.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17-91.0W
new file mode 100755
index 0000000000..ff7599a424
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17-91.0W
@@ -0,0 +1,370 @@
+# Galaxy 17 @ 91W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10964000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 19850000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10994000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11024000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11806000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11815000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11825000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11925000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11930000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11935000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11940000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11945000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11950000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11950000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11955000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11955000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11960000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11965000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11965000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11970000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11970000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11975000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11975000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11980000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11985000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11985000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11990000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11990000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11995000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11995000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12005000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12010000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12010000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12015000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12020000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12025000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12030000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12035000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12066000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12075000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12083000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12086000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6144000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12096000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6144000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12104000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6144000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12114000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6144000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17_C-91.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17_C-91.0W
new file mode 100755
index 0000000000..0530bc9dec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy17_C-91.0W
@@ -0,0 +1,48 @@
+# Galaxy 17 @ 91W C-Band
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3867000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6619000
+ INNER_FEC = 1/2
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3935000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2489000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3925000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4249000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3966000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5600000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4067000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6051000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19-97.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19-97.0W
new file mode 100755
index 0000000000..3c1cdf2c53
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19-97.0W
@@ -0,0 +1,130 @@
+# Galaxy 19 @ 97W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11789000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28125000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11836000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20765000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11867000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11874000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11898000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11936000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11966000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11991000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12053000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12084000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12090000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12115000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22425000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12122000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12146000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12152000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12177000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 23000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19_C-97.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19_C-97.0W
new file mode 100755
index 0000000000..6d9f4616a2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy19_C-97.0W
@@ -0,0 +1,138 @@
+# Galaxy 19 @ 97W C-BAND
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3940000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4070000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5499000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4100000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29862000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3760000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 31456000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3791000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13332000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3814000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6373000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3847000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2200000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3851000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3532000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3856000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2940000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3922000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3703000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3984000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3599000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4060000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29858000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4080000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29858000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4120000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4160000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29862000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy23_C-121W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy23_C-121W
new file mode 100755
index 0000000000..f03b1dfccd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy23_C-121W
@@ -0,0 +1,111 @@
+# Galaxy 23 @ 121W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3840000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3877000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3892000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13020000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3910000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14399000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4115000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 18086000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3780000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29269000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3980000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29270000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4032000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8332000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4050000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2590000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4070000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6537000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4170000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 18915000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4190000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 11068000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy25-93.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy25-93.0W
new file mode 100755
index 0000000000..3f349e3673
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy25-93.0W
@@ -0,0 +1,474 @@
+# Galaxy 25 @ 93W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11711000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14312000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11721000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11727000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11732000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11737000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11737000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11742000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11748000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11753000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11767000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11772000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11772000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11777000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11782000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11788000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11793000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11809000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11814000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11827000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8429000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11836000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7179000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11841000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11865000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3516000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11887000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11893000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11904000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3010000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11904000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11924000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11926000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8848000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11929000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11935000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11936000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8848000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11944000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8848000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11949000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11954000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11956000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11960000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11961000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11965000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11967000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11970000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11972000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11977000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12047000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12048000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12054000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12058000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12059000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12063000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12064000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12069000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12076000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8679000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12089000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6511000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12110000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4104000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12116000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12121000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12126000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12132000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12175000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5147000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy27-129w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy27-129w
new file mode 100755
index 0000000000..3fb402e2fb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy27-129w
@@ -0,0 +1,11 @@
+# Galaxy 27 @ 129W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11964000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2920000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28-89.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28-89.0W
new file mode 100755
index 0000000000..cefb320866
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28-89.0W
@@ -0,0 +1,315 @@
+# Galaxy 28 @ 89W
+# Intelsat Americas 8 @ 89W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11717000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4411000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11747000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11756000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11780000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11800000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11825000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4552000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11865000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11882000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4883000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11925000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11930000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11935000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11936000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11940000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11945000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11950000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11955000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11960000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11965000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11970000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11970000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11975000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11980000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11985000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11989000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11990000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11995000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12009000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12032000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2314000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12114000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14398000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12134000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12164000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12170000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12175000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12180000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12185000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12191000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12196000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3979000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28_C-89.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28_C-89.0W
new file mode 100755
index 0000000000..aba698d9ab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy28_C-89.0W
@@ -0,0 +1,30 @@
+# Galaxy 28 @ 89W C-Band
+#
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3860000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3900000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29862000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3880000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 32364000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C-95.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C-95.0W
new file mode 100755
index 0000000000..d9e62cfc88
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C-95.0W
@@ -0,0 +1,10 @@
+# Galaxy 3C @ 95W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11780000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 20760000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C_C-95.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C_C-95.0W
new file mode 100755
index 0000000000..9c03c4190c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Galaxy3C_C-95.0W
@@ -0,0 +1,29 @@
+# Galaxy 3C @ 95W C-BAND
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3950000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14999000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3776000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6923000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3824000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7500000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hispasat-30.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hispasat-30.0W
new file mode 100755
index 0000000000..676251572b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hispasat-30.0W
@@ -0,0 +1,297 @@
+# Hispasat 30.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 10730000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 10730000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10890000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10930000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2150000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11510000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11529000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10000000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = QPSK
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11615000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29000000
+ INNER_FEC = 9/10
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11641000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11731000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11771000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11811000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11851000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11891000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11931000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2220000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11931000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11940000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1481000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12130000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12168000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12207
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12226000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12246000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12284000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12303000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12322000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12360000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12380000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12398000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12437000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12456000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12476000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hotbird-13.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hotbird-13.0E
new file mode 100755
index 0000000000..0df0ab3e8b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Hotbird-13.0E
@@ -0,0 +1,778 @@
+# EUTELSAT SkyPlex, Hotbird 13E
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10719000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10723000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29900000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10757000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10775000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10795000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10834000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10853000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10872000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10892000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10910000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10930000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10949000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10971000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10992000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11013000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11034000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11054000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11075000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11095000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11117000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11137000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11158000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11178000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11200000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11219000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11242000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11278000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11295000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11334000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11355000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11373000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11393000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11411000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11470000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11488000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11526000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11541000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11565000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11585000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11604000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11623000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11645000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11662000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11677000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11727000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11747000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11765000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11785000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11804000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11823000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11842000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11861000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11880000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11900000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11938000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11958000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11976000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12034000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12054000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12072000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12111000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12149000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12169000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12188000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12207000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12226000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12245000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12264000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12284000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12302000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12322000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12341000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12360000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12379000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12398000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12418000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12437000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12475000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12519000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12539000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 1
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12539000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ PLS_CODE = 8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12558000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12577000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12596000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12616000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12635000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12654000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12673000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12692000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12713000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12731000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/IA7-129w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/IA7-129w
new file mode 100755
index 0000000000..612504a6c0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/IA7-129w
@@ -0,0 +1,11 @@
+# Intelsat Americas 7 @ 129W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11989000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2821000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat2E_C-83.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat2E_C-83.0E
new file mode 100755
index 0000000000..f6bdcccb9e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat2E_C-83.0E
@@ -0,0 +1,296 @@
+# Insat 2E @ 83.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# NE TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3521000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8640000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# NE TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3537000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV 9 Telugu
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3550000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# S1 Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3559000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3366000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV 9 Kannada
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3581000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Jaya TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3593000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8680000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Tata Communications Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3593000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9629000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Asianet Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3643000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 19531000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Amrita TV Middle East
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3678000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5926000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Mahaa TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3689000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2893000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Tata Communications Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3696000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# CNBC India
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3760000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Raj TV Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3774000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# UTVi TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3794000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3500000
+ INNER_FEC = 3/5
+ INVERSION = AUTO
+
+
+# PTC Multiplex (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3815000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Tata Communications Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3845000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26043000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Indiavision
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3914000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Yes Indiavision
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Manorama News International
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3923000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Tata Communications Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3934000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Raj Musix kanada
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3961000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6656000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV 9 Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3974000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Asianet Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4010000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 19531000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Tata Communications Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4031000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7440000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# RRSat Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4042000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7420000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Tata Communications Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4050000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5084000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# DD national
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4070000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Indiasign Mulitplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4091000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9230000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# News Live (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4100000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4700000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat3A_C-93.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat3A_C-93.5E
new file mode 100755
index 0000000000..b12d36b721
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat3A_C-93.5E
@@ -0,0 +1,206 @@
+# Insat 3A @ 93.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# DD Bangla
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3732000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Punjab
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3740000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Gujarati
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3750000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Chandana
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3759000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Oriya
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3772000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD kashir
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3782000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Sahyadri
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3791000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Malayalam
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3812000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Saptagiri
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3820000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD podhigai
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3831000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Himachal Pradesh
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3932000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Jaipur
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3940000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Madhya Pradesh
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3950000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Uttar Pradesh
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3958000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD North East
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4092000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Mizoram
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4101000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Tripura
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4109000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RTA Afghanistan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4132000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RTA Afghanistan Nangarhar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4136000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Ariana TV Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4141000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5150000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4A_C-83.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4A_C-83.0E
new file mode 100755
index 0000000000..8e1e903c4c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4A_C-83.0E
@@ -0,0 +1,296 @@
+# Insat 4A @ 83.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# NSTPL Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26665000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Indiasign multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3756000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Star TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3777000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 10900000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Essel Shyam Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3805000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Tarang TV Multiplex (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3841000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6920000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# CTVN AKD Plus
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3853000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3265000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Kasthuri TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3857000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3462000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Kamyab TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3874000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3403000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Vanitha TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3892000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3300000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Essel Shayam Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3898000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Channel 10 India
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3910000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3600000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Essel Shyam
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3923000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DY 365
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3949000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3225000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3958000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 9500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Zee News Uttar Pradesh
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3976000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# ETV Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4004000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22220000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# Essel Shyam
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4040000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Lamhas Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4054000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13230000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Network 18 Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4072000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# IBN Lokmat
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4078000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Live India
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4087000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3300000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Mi Marathi
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4091000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# BBS TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4100000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4750000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Manorama News
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4115000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5555000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# BAG Films
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4134000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 10600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Zee Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4151000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Zee Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4161000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Lok Sabha TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4170000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Kolkata TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4180000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3233000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4B_C-93.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4B_C-93.5E
new file mode 100755
index 0000000000..6e9399791b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Insat4B_C-93.5E
@@ -0,0 +1,156 @@
+# Insat 4B @ 93.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Doordarshan Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Dehradun
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3750000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Raipur
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3762000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Ranchi
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3768000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Jammu
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3774000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Hissar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3802000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Chandigarh
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3808000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Port Blair
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3822000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD Bihar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3832000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# DD North East
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3841000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Sun network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3885000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Doordarshan Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3925000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Sakshi TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3950000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Tata Communications Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4005000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25422000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Sun Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4045000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel4-72.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel4-72.0E
new file mode 100755
index 0000000000..feba65e356
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel4-72.0E
@@ -0,0 +1,34 @@
+# Intel4 @ 72E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11533000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4220000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11638000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12518000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12526000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3266000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel904-60.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel904-60.0E
new file mode 100755
index 0000000000..11bcce43c8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intel904-60.0E
@@ -0,0 +1,90 @@
+# Intel904 @ 60E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11003000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2975000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11011000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2975000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2975000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11093000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3980000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11101000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4105000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11142000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11152000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11157000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11515000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11635000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11675000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1002-1.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1002-1.0W
new file mode 100755
index 0000000000..57b2b60f5e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1002-1.0W
@@ -0,0 +1,146 @@
+# Intelsat 1002 @ 1.0W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4175000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4180000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 21050000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11093000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19191000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11166000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1450000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11182000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3100000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11606000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13356000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12527000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12563000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12563000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12607000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12607000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12643000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12643000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12687000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12687000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12718000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 18400000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12723000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12735000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-11-43.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-11-43.0W
new file mode 100755
index 0000000000..3ae9107c9c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-11-43.0W
@@ -0,0 +1,11 @@
+# Intelsat 11 @ 43.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3944000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5945000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-12-45.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-12-45.0E
new file mode 100755
index 0000000000..124b0ecfc3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-12-45.0E
@@ -0,0 +1,106 @@
+# Intelsat 12 @ 45.0E
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11468000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11495000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7299000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11517000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2959000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11523000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5787000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11550000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11591000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 2
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11591000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11591000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11632000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11673000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ ROLLOFF = AUTO
+ MODULATION = PSK/8
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1R-45.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1R-45.0W
new file mode 100755
index 0000000000..d512c54ccf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-1R-45.0W
@@ -0,0 +1,331 @@
+# Intelsat 1R @ 45.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4104000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14450000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3854000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2370000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11893000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3869000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3515000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4186000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4040000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4347000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4071000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2615000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3991000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4044000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3882000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4410000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11788000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11728000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5057000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11737000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5057000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11722000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11718000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11833000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 17360000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11930000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 11790000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11808000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4779000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4132000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5749000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3780000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2941000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11705000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3759000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2941000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4171000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4410000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3899000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6611000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4192000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2075000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4096000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8102000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11873000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11856000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11746000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11715000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3985000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3310000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3892000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6110000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4135000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4121000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3510000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3742000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3910000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4292000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3975000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3310000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4133000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3785000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4409000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3868000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10075000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3774000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8820000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4128000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3310000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-3R-43.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-3R-43.0W
new file mode 100755
index 0000000000..9ffcec5c88
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-3R-43.0W
@@ -0,0 +1,259 @@
+# Intelsat 3R @ 43.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3936000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3310000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3901000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3891000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3935000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 17360000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3872000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3736000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29270000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4106000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26470000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3910000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4083000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6599000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4106000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29270000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3994000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 21090000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3867000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6429000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3958000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3980000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3828000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4350000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3888000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7813000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3785000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3942000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3946000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2592000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3988000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4070000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3845000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4040000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3865000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6900000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3850000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11705000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11745000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11711000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4687000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11754000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3109000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3746000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 21261000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4150000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24570000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3930000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2812000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-6B-43.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-6B-43.0W
new file mode 100755
index 0000000000..169e6ebf22
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-6B-43.0W
@@ -0,0 +1,115 @@
+# Intelsat 6B @ 43.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10882000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10882000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10970000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10970000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11050000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11130000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11382000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11130000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10720000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10720000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11050000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11382000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10800000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10800000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-705-50.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-705-50.0W
new file mode 100755
index 0000000000..461b68ac12
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-705-50.0W
@@ -0,0 +1,35 @@
+# Intelsat 705 @ 50.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3911000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3617000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3917000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4087000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3838000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7053000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4126000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-707-53.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-707-53.0W
new file mode 100755
index 0000000000..228866cd21
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-707-53.0W
@@ -0,0 +1,19 @@
+# Intelsat 707 @ 53.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3820000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11483000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-903-34.5W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-903-34.5W
new file mode 100755
index 0000000000..f6be6ea08c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-903-34.5W
@@ -0,0 +1,35 @@
+# Intelsat 903 @ 34.5W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4178000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 32555000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4045000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4960000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3895000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13021000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4004000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-905-24.5W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-905-24.5W
new file mode 100755
index 0000000000..730d2c9dec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-905-24.5W
@@ -0,0 +1,51 @@
+# Intelsat 905 @ 24.5W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4171000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4181000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4194000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5193000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4162000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4060000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4070000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-907-27.5W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-907-27.5W
new file mode 100755
index 0000000000..9e6d55329a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat-907-27.5W
@@ -0,0 +1,51 @@
+# Intelsat 907 @ 27.5W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3873000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4687000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3935000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4687000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3743000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2900000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3732000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3943000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3938000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3544000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat21_C-58.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat21_C-58.0W
new file mode 100755
index 0000000000..8467159d7d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat21_C-58.0W
@@ -0,0 +1,273 @@
+# Intelsat 21 @ 58.0W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3720000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3760000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3785000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5199000
+ INNER_FEC = 9/10
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3791000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3329000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27690000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3880000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27690000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3920000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 9/10
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3952000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 15146000
+ INNER_FEC = 3/5
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3972000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4499000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28122000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4040000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26591000
+ INNER_FEC = 1/2
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4080000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4125000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3700000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3720000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 8/9
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3760000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27690000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3800000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27690000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3880000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3910000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14999000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3924000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3934000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7000000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3960000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4000000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4040000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4080000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27690000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4120000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27501000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4150000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4160000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2940000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4169000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4174000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2941000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat34_C-55.5W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat34_C-55.5W
new file mode 100755
index 0000000000..0b20ffbee9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat34_C-55.5W
@@ -0,0 +1,371 @@
+# Intelsat 34 @ 55.5W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3715000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8890000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3725000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3746000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1600000
+ INNER_FEC = 3/5
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3754000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3757000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2967000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3763000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3776000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7999000
+ INNER_FEC = 3/5
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3797000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6670000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3845000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3872000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 9333000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3910000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5833000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3932000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5625000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3969000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7120000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4055000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4084000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 10560000
+ INNER_FEC = 3/5
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4097000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2272000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4100000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1840000
+ INNER_FEC = 3/5
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4106000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5360000
+ INNER_FEC = 3/5
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4111000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = 3/5
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4120000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5499000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4134000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4136000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4142000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4147000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3443000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4151000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4160000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5599000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3805000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26664000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26700000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3884000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3926000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7199000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3987000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3329000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3990000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3590000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4002000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8681000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4020000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 18401000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4085000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4074000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4092000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3616000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4100000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2319000
+ INNER_FEC = 8/9
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4111000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1850000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4136000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4177000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat8_C-166.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat8_C-166.0E
new file mode 100755
index 0000000000..be61e6b046
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Intelsat8_C-166.0E
@@ -0,0 +1,116 @@
+# Intelsat 8 @ 166.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Viacom Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3740000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# South Korean Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3790000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6510000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Arirang World
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3815000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Australian network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3829000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13238000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TVBS multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3833000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 17500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# NBC Universal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3900000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Intelsat multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3940000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27690000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# China Radio multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3959000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3428000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# NHK World network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4060000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 16180000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+
+# Philippines Network TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4122000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5554000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TAS Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4130000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/JCSat3A_C-128.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/JCSat3A_C-128.0E
new file mode 100755
index 0000000000..211c636dec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/JCSat3A_C-128.0E
@@ -0,0 +1,46 @@
+# JCSAT 3A @ 128.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# TAS Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3960000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# TAS Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4000000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# Miraclenet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4055000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3332000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TAS Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4120000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Measat3_C-91.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Measat3_C-91.5E
new file mode 100755
index 0000000000..4ecce5e486
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Measat3_C-91.5E
@@ -0,0 +1,166 @@
+# Measat 3 @ 91.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Shop TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3629000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2200000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Aora TV Mulitplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3644000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22320000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Solar Entertainment
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3645000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 19510000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# National Geographic music
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3718000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1700000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# DZRH TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3721000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Ascent Media (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3751000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13330000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# Globecast Multiplex (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3769000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# HTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3796000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7030000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Sky International
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3814000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Un-named Mulitplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3865000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3835000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RTM Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3877000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 12525000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# RTM Sarawak Feeds
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3887000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3984000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Globecast Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3920000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# Ginx TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4113000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# YR Asia TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4117000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# All Sports Network (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4134000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7200000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-10-37.5W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-10-37.5W
new file mode 100755
index 0000000000..4f892aa23c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-10-37.5W
@@ -0,0 +1,75 @@
+# NSS 10 @ 37.5W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4055000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3824000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4059000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3828000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2532000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3844000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4071000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3150000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4051000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4044000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3250000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4077000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-7-22.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-7-22.0W
new file mode 100755
index 0000000000..a085d0f4bc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-7-22.0W
@@ -0,0 +1,179 @@
+# NSS 7 @ 22.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3926000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3715000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3920000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3715000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3954000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3929000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3915000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3715000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3761000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22650000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11825000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5904000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12162000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6510000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11777000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11860000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 35000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12049000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11921000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 35000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4003000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4011000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4126000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3680000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3969000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3976000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1842000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11814000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5630000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4038000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3690000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3674000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4033000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3689000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4016000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3663000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-806-40.5W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-806-40.5W
new file mode 100755
index 0000000000..fb5d0545a2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/NSS-806-40.5W
@@ -0,0 +1,843 @@
+# NSS 806 @ 40.5W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11921000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 35000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3660000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4350000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3986000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3179000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3859000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4120000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4016000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5712000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3978000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3978000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4100000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6111000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3965000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2540000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3774000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6670000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3600000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 25185000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3758000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26667000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3982000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 17800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4090000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2515000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4042000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8680000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4009000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4003000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3648000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3664000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3644000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2534000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3695000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4082000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4143000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3641000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3991000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3578000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2450000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4009000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2450000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3960000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3755000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4135000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4005000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2450000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4003000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2450000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3600000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29185000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3868000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2100000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3685000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3688000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3679000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2220000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3961000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1481000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4130000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3923000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4052000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2459000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4071000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4146000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2571000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3646000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3978000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3837000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19510000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4132000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2480000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3653000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5924000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4055000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7233000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3938000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4785000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4152000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3280000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3832000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 13310000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4090000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4082000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6510000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4107000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2100000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3500000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4126000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2531000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3860000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2713000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3983000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4065000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4063000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3972000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3330000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4024000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 16030000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3803000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26860000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3920000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4053000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3676000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3637000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3516000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3516000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4093000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2887000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4177000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4391000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4124000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3480000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4139000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2220000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3693000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4441000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4194000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6660000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3803000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4112000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3676000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5900000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3652000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26669000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3898000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4195000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4162000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4168000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3965000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3332000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4100000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6654000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4127000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4109000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6654000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3670000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3853000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5900000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3660000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2540000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4170000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3630000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3695000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2220000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4184000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6142000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4122000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1860000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4022000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4137000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3878000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22117000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4132000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2800000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4043000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4142000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3990000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4195000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3667000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3673000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nahuel-1-71.8W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nahuel-1-71.8W
new file mode 100755
index 0000000000..66c3702dd1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nahuel-1-71.8W
@@ -0,0 +1,67 @@
+# Nahuel 1 @ 71.8W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11673000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11680000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3335000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11654000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11874000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12136000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11873000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12116000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14396000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11997000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nilesat101+102-7.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nilesat101+102-7.0W
new file mode 100755
index 0000000000..4a6bb30502
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Nilesat101+102-7.0W
@@ -0,0 +1,314 @@
+# Nilesat 101/102 & Atlantic Bird @ 7W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10719000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10723000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10758000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10775000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10796000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10892000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10911000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10930000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11317000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11747000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11766000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11785000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11804000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11823000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11843000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11862000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11881000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11900000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11919000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11938000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11958000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11977000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27600000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11996000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12015000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12034000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12054000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12073000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12130000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12149000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12207000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12226000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12284000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12303000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12341000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12360000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12380000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12399000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12418000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12476000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusC1-156E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusC1-156E
new file mode 100755
index 0000000000..c3eddb323d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusC1-156E
@@ -0,0 +1,146 @@
+# Optus C1 satellite 156E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12278000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12305000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12358000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12398000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12407000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12438000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12487000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12501000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29473000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12518000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12527000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12558000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12564000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29473000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12567000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12598000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12607000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29473000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12638000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12689000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12720000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusD1-160.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusD1-160.0E
new file mode 100755
index 0000000000..fef901a9af
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/OptusD1-160.0E
@@ -0,0 +1,18 @@
+# Optus D1 satellite 160.0E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12456000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12483000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PAS-43.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PAS-43.0W
new file mode 100755
index 0000000000..db5bf939ee
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PAS-43.0W
@@ -0,0 +1,34 @@
+# PAS 6/6B/3R at 43.0W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12578000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19850000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12584000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12606000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6616000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12665000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19850000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PalapaC2_C-113.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PalapaC2_C-113.0E
new file mode 100755
index 0000000000..f00e4c94f4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/PalapaC2_C-113.0E
@@ -0,0 +1,116 @@
+# Palapa C2 @ 113.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# SCTV Jawa Timur
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3745000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SCTV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3758000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4470000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TVRI Nasional
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3765000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5555000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RCTI
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3774000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6520000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# KBS World Indonesia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3836000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2097000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Bali TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3926000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4208000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV One Indonesia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4054000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# ANTV Indonesia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4055000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6510000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Indosiar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4074000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Satelindo Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4080000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TPI Indonesia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4184000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6700000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SBS6-74w b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SBS6-74w
new file mode 100755
index 0000000000..f6ca6c74cb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SBS6-74w
@@ -0,0 +1,11 @@
+# SBS 6 @ 74W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11744000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6616000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES1_C-101W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES1_C-101W
new file mode 100755
index 0000000000..0dbb860a7a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES1_C-101W
@@ -0,0 +1,75 @@
+# SES 1 @ 101.0W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4020000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3715000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4775000
+ INNER_FEC = 3/5
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3720000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 10000000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3773000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4441000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3952000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2734000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3956000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2734000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3960000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2734000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3973000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5924000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2-87.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2-87.0W
new file mode 100755
index 0000000000..9fa21ab431
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2-87.0W
@@ -0,0 +1,59 @@
+# AMC 3 @ 87.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11716000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4859000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12142000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12147000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12159000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12165000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12172000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12182000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2_C-87.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2_C-87.0W
new file mode 100755
index 0000000000..c19372f28b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES2_C-87.0W
@@ -0,0 +1,66 @@
+# SES 2 @ 87.0W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3842000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6149000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29123000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4043000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4710000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3743000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3752000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8681000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3948000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4164000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3953000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = 3/4
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES3_C-103W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES3_C-103W
new file mode 100755
index 0000000000..2a0d41356e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/SES3_C-103W
@@ -0,0 +1,111 @@
+# SES 3 @ 103W C-BAND
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26682000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3903000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6511000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3912000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2927000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3920000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3149000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 3923000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2733000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4000000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 29271000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4040000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 2/3
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3740000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29268000
+ INNER_FEC = 7/8
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3971000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14800000
+ INNER_FEC = 5/6
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4020000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3499000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4090
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 14029000
+ INNER_FEC = 3/4
+ MODULATION = QPSK
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 4140000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ MODULATION = PSK/8
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ST1_C-80.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ST1_C-80.0E
new file mode 100755
index 0000000000..d60a39eaca
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/ST1_C-80.0E
@@ -0,0 +1,76 @@
+# ST1 @ 88.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# GTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3469000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# ABTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3521000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8332000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# Videoland Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3550000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# GTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3595000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Videoland multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3632000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Chungwa Telecom
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3671000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 9256000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# NTD TV Asia-Pacific
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3689000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-5-116.8W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-5-116.8W
new file mode 100755
index 0000000000..96c804d6e2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-5-116.8W
@@ -0,0 +1,555 @@
+# Satmex 5 @ 116.8W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12034000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2532000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12175000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4232000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4060000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19510000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3905000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4084000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3162000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3767000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1620000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11975000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11960000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4180000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19510000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4115000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3253000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29270000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4160000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29270000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3940000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28125000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4052000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4307000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12024000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4134000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3617000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12028000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12060000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3078000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4012000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3131000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3949000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4076000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2962000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3749000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4070000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3744000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4480000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3755000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3869000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3876000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3879000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1984000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3957000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2600000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3975000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3131000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3982000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2531000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3832000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3953000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2597000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3987000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8860000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3996000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3748000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2100000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3932000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3914000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3223000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3888000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5351000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3805000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4679000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4001000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4100000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4023000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12176000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3985000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4108000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2666000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4038000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7675000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3809000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3100000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4080000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 29270000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3910000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4164000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1733000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12193000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7885000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12164000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12044000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3720000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3922000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9760000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3797000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3968000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4037000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4046000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2441000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4080000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2441000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3773000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2892000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3767000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2893000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3935000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4440000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3972000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3364000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3905000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4007000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5582000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3885000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3826000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2712000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3944000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3410000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3915000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1520000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3876000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2920000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-6-113.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-6-113.0W
new file mode 100755
index 0000000000..19a8f3087a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Satmex-6-113.0W
@@ -0,0 +1,131 @@
+# Satmex 6 @ 113.0W
+# freq pol sr fec
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4078000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3609000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4080000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12145000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4085000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2821000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12126000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6022000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12166000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 17500000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4075000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3782000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4091000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3720000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3985000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2300000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12126000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12157000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3038000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12091000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3337000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3947000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3700000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3761000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2120000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12107000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12080000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25635000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Sirius-5.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Sirius-5.0E
new file mode 100755
index 0000000000..9f93c383d4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Sirius-5.0E
@@ -0,0 +1,519 @@
+# Sirius 5.0E
+# automatically generated from kingofsat.net ini file 0048.ini
+# http://en.kingofsat.net/satellites.php
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11265000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11265000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11305000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11305000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11345000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11345000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 11385000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11727000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11747000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11766000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11785000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11804000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11823000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11843000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11862000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11881000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11900000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11919000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11938000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11958000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11977000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11996000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12015000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12034000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12054000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12073000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12111000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12130000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12149000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12169000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12188000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+ STREAM_ID = 10
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12188000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+ STREAM_ID = 20
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12207000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12226000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25540000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12245000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12265000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12284000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12303000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25547000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12322000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12341000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+ STREAM_ID = 30
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12341000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+ STREAM_ID = 40
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12360000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12379000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12399000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12418000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12437000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12456000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12476000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12575000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13922000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12608000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12637000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14465000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12670000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2600000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12680000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 9404000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12682000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6888000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12687000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12687000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6667000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12694000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12702000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2100000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12703000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12719000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12722000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS2
+ FREQUENCY = 12725000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1480000
+ INNER_FEC = 8/9
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12728000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1600000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telecom2-8.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telecom2-8.0W
new file mode 100755
index 0000000000..637871d98c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telecom2-8.0W
@@ -0,0 +1,122 @@
+# Telecom2 8.0W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10972000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10974000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11010000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11011000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11042000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7860000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11053000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2850000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11064000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 12667000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11387000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24740000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11428000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11500000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3460000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11554000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11595000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12545000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3038000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12566000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12649000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telkom1_C-108.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telkom1_C-108.0E
new file mode 100755
index 0000000000..194b5e5d03
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telkom1_C-108.0E
@@ -0,0 +1,146 @@
+# Telkom 1 @ 108.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Telkom Vision Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3580000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Telkom Vision Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3620000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Telkom Vision Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3640000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV Timor Leste
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3776000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV Edukasi 1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3785000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TVRI Kalbar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3793000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TVRI Papua
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3797000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3900000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV Edukasi 2
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3807000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Trans 7
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3990000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TVRI Aceh
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RCTI Jawa Timur
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4025000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Trans TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4084000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Papua TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4092000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3570000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# JTV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4097000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar10_C-76.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar10_C-76.5E
new file mode 100755
index 0000000000..3ea634b6ab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar10_C-76.5E
@@ -0,0 +1,196 @@
+# Telstar 10 @ 76.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# Racing International
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3646000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5064000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Image Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3655000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Globe Cast Asia multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3680000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# UBI World TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3760000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28066000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# UBI World TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3780000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28066000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# Ekushey TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3787000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4600000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# Diganta TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3793000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RRSat Global Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3840000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Channel 1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4003000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4080000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Boishakhi TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4009000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4300000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TV Maldives
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4030000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6312000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+
+# Channel I
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4034000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4300000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Bangla Vision
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4049000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Kantipur TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4056000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3214000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# BBC World Service Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4073000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13020000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+
+# MNC Indonesia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4105000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# NDTV Arabia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4137000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2893000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Islamic TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4146000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3600000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Bangladesh Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4173000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7400000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar12-15.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar12-15.0W
new file mode 100755
index 0000000000..9dd367a175
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar12-15.0W
@@ -0,0 +1,194 @@
+# Telstar 12 15.0W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10988000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2893000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10992000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2893000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11060000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19279000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11123000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 19279000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11124000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 18386000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11150000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 18386000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11150000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 19279000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11531000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3198000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11566000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4284000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11677000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2200000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11709000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3195000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11806000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 7596000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11963000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 14714000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12082000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3935000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12117000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4772000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12159000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7777000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12166000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3503000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12173000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3503000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12524000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26470000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12547000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 11900000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12589000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4503000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12608000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 19279000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12615000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 11939000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12645000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar18_C-138.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar18_C-138.0E
new file mode 100755
index 0000000000..a8ae308648
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Telstar18_C-138.0E
@@ -0,0 +1,46 @@
+# Telstar 18 @ 138.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# I-Sky-Net Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3599000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# I-Sky-Net Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3660000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# LNTV Laos
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3704000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3034000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# BBC World Service Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4124000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom1A_C-120.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom1A_C-120.0E
new file mode 100755
index 0000000000..a9bcb17210
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom1A_C-120.0E
@@ -0,0 +1,66 @@
+# Thaicom 1A @ 120.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# TV3 Cambodia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3255000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Panyapiwat
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3745000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2850000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# CTN Cambodia Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3854000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9628000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Kasikorn TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3881000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Bayon TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3916000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3359000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Radio Thailand Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4135000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1808000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom2_C-78.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom2_C-78.5E
new file mode 100755
index 0000000000..342e70bd36
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom2_C-78.5E
@@ -0,0 +1,96 @@
+# Thaicom 2 @ 78.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# BBTV Channel 7
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3764000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5900000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# SBT TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3803000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1445000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# MCOT Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3888000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 15625000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Royal Thai Army TV 5
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3905000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6250000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Thai TV Color Channel 3
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3967000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4551000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RU TV 1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4003000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 1085000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Ten TV & Rich Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4016000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2305000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+
+# NBT TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4106000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4688000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Thai PBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4145000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4815000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom5_C-78.5E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom5_C-78.5E
new file mode 100755
index 0000000000..2171a97ed2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thaicom5_C-78.5E
@@ -0,0 +1,216 @@
+# Thaicom 5 @ 78.5E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# ETC India Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3421000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6667000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Europe Media Port Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3431000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Nepal TV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3432000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6667000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# CTV9
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3448000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RRSat Global Network (MPEG-4 S/2)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3450000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Avenues TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3454000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# PSI Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3460000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1538000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Sagarmatha TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3489000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Dhi TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3502000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# Korean Central TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3504000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3367000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# Gang Cartoon Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3505000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 1852000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Lao Star Channel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3521000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2917000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Thaicom Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3545000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+
+# RRSat Global Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3551000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 13333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# VTV Maldives
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3562000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 1/2
+ INVERSION = AUTO
+
+
+# MRTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3574000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7492000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+
+# Thaicom Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3585000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26667000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# Thaicom Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3600000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 26667000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# MRTV Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3617000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 12500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# RRSat Global Network Multiplex
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3640000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28066000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# TVK Cambodia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3664000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3704000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thor-1.0W b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thor-1.0W
new file mode 100755
index 0000000000..0b4626586b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Thor-1.0W
@@ -0,0 +1,506 @@
+# Thor 1.0W
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10747000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10778000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 25000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10778000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10809000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10809000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10841000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10841000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10872000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10872000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10903000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 25000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10903000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10934000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10934000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11216000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11229000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11247000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11261000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11278000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11293000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11309000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11325000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11325000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11325000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11341000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11357000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11372000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11389000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11403000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11421000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11434000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24500000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11727000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11747000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11766000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11785000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11804000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11823000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11843000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11862000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11881000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11900000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11938000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 25000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11958000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11977000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11996000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12034000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12073000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12092000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12130000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12149000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12169000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12188000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 25000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12226000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12245000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12303000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12322000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 27800000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12341000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12380000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12399000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12418000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12456000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12476000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Turksat-42.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Turksat-42.0E
new file mode 100755
index 0000000000..c363aed15e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Turksat-42.0E
@@ -0,0 +1,818 @@
+# Turksat 42.0E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10968000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4557000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10970000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 30000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10999000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11003000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2175000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11007000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2950000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11011000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2125000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11014000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2050000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11018000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2150000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11028000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11083000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8888000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11136000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11143000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2200000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11159000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2596000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11162000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11166000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11177000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2200000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11554000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2916000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11576000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11581000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11607000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3750000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11712000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2963000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11716000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11729000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 15555000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11734000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3291000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11739000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11743000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11743000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11748000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11753000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11754000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3900000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11758000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2962000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11760000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5925000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11762000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2155000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11765000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11770000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2177000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11773000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2420000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11775000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11777000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3150000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11781000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2815000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11794000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5632000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11800000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11804000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24444000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11830000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11839000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11846000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11852000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11858000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11867000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11874000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3400000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11878000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3750000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11882000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2965000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11887000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11892000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 12800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11892000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11896000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11905000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11912000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11919000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 24444000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11951000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11959000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2960000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11963000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2300000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11967000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4340000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11970000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 17900000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11973000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2240000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11984000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11996000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12002000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12008000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12015000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12022000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 5380000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12028000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4557000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12126000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 6666000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12127000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 7400000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12140000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12140000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12513000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4400000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12518000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12524000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4250000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12530000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4444000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12536000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2962000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12540000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3125000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12563000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 24000000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12590000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3000000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12595000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12605000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2961000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12609000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3700000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12614000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12633000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12636000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12638000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12647000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12652000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 22500000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12652000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3900000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12660000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9150000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12672000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12680000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 8888000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12692000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2800000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12696000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2222000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12699000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2400000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12702000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2285000
+ INNER_FEC = 7/8
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12717000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 5925000
+ INNER_FEC = 5/6
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 12731000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 3333000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Vinasat1_C-132.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Vinasat1_C-132.0E
new file mode 100755
index 0000000000..06f9acbcdb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Vinasat1_C-132.0E
@@ -0,0 +1,26 @@
+# VINASAT 1 @ 132.0E C-BAND
+# Generated by Pietro Casoar
+# 1st March 2009
+
+# MPEG-2 & MPEG-4 QPSK (DVBS/S2)
+# freq pol sr fec
+
+# VTV Multiplex (VTV 1, VTV 2, VTV 3, VTV 4, VTV6)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3413000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 9766000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+
+# VOV TV (Voice of VietNam)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3529000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = 2/3
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Yamal201-90.0E b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Yamal201-90.0E
new file mode 100755
index 0000000000..fd4b97ef33
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-s/Yamal201-90.0E
@@ -0,0 +1,209 @@
+# Yamal201 @ 90E
+# freq pol sr fec
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10990000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2170000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 10995000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11057000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26470000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11092000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 26470000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11145000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 22222000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 11671000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 18200000
+ INNER_FEC = AUTO
+ INVERSION = AUTO
+
+
+# Yamal201 @ 90E C-BAND
+# Generated by Roman Kashcheev
+# Mar 30, 2008
+# freq pol sr fec
+
+# NauTV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3536000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2532000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Turkmenistan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3553000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 20000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# CNL
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3577000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2626000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Nord TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3588000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Telekompanija OTV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3600000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Oblastnoe Televidenie
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3603000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# CNL
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3605000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 2626000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Gascom
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3645000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 28000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Spas
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3674000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 17500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# TV Gubernia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3725000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 3200000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Yuzhniy Region
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3900000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4285000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Rostov TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3907000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4265000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# ORTRK 12 Kanal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3912000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 4295000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# O2
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3944000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 15550000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Klub Puteshestviy
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 3980000
+ POLARIZATION = HORIZONTAL
+ SYMBOL_RATE = 38000000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# Music Box
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4042000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 8681000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
+# NetService
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBS
+ FREQUENCY = 4084000
+ POLARIZATION = VERTICAL
+ SYMBOL_RATE = 2500000
+ INNER_FEC = 3/4
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ad-Andorra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ad-Andorra
new file mode 100755
index 0000000000..e43251d8de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ad-Andorra
@@ -0,0 +1,49 @@
+# DVB-T Andorra
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/at-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/at-All
new file mode 100755
index 0000000000..7fbfdce5aa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/at-All
@@ -0,0 +1,591 @@
+# Austria, all DVB-T transmitters run by ORS
+# Created from
+# http://www.ors.at/fileadmin/user_upload/downloads/DVB-T_Kanalbezeichnungen_und_Mittenfrequenzen.pdf
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Adelaide b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Adelaide
new file mode 100755
index 0000000000..5376dd8d60
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Adelaide
@@ -0,0 +1,79 @@
+# Australia / Adelaide / Mt Lofty
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 3D Trial Australia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-AdelaideFoothills b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-AdelaideFoothills
new file mode 100755
index 0000000000..73dbe3d6e5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-AdelaideFoothills
@@ -0,0 +1,66 @@
+# Australia / Adelaide / Grenfell Street
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 781625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 795500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 732500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 760500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Ballarat b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Ballarat
new file mode 100755
index 0000000000..438ada95ed
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Ballarat
@@ -0,0 +1,66 @@
+# Australia / Ballarat
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 655500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 613500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Bendigo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Bendigo
new file mode 100755
index 0000000000..07f09ca82d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Bendigo
@@ -0,0 +1,326 @@
+# Australia / Bendigo (Mt Alexandria transmitters)
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 669500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 572500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 655500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 555250000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 576250000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618250000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 534250000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# UNK1
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 676500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# UNK2
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 571500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 543500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 550500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Brisbane b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Brisbane
new file mode 100755
index 0000000000..a23cb9cbe1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Brisbane
@@ -0,0 +1,79 @@
+# Australia / Brisbane (Mt Coot-tha transmitters)
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 31 Digital
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Cairns b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Cairns
new file mode 100755
index 0000000000..272c605b83
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Cairns
@@ -0,0 +1,66 @@
+# Australia / Cairns (Mt Bellenden-Ker transmitters)
+# ABC VHF 8
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SEVEN VHF 11
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN VHF 12
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# TEN VHF 6 (Expected Start Date Dec 2006)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS UHF 29
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Canberra-Black-Mt b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Canberra-Black-Mt
new file mode 100755
index 0000000000..e783e8ad7a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Canberra-Black-Mt
@@ -0,0 +1,66 @@
+# Australia / Canberra / Black Mt
+# ABC (ABC8)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven (CBN12)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# (Nine (WIN11)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten (CTC6)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS (SBS7)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Coonabarabran b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Coonabarabran
new file mode 100755
index 0000000000..83a4e6a9de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Coonabarabran
@@ -0,0 +1,57 @@
+# Australia / Coonabarabran
+#
+#
+# ABC VHF12
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# TEN UHF46
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 655500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine UHF45
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 648500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven VHF11
+#T 618250000 7MHz 3/4 NONE QAM64 8k 1/16 NONE
+# SBS UHF44
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Darwin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Darwin
new file mode 100755
index 0000000000..4e77194755
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Darwin
@@ -0,0 +1,65 @@
+# ABC (UHF 30)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 543625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine (UHF 31)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 550500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS (UHF 29)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Southern Cross (UHF 32)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 557625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Darwin Digital Television (UHF 33)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Devonport b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Devonport
new file mode 100755
index 0000000000..da39e0d4bd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Devonport
@@ -0,0 +1,95 @@
+# Australia / Tasmania / Devonport
+#
+# Brett S Hallett October 2009 , may not be complete !!
+#
+# ABC VHF 57
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730250000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC Digital 45
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 648500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS VHF 54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 709250000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS Digital 39
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 606500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SCTV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 613498000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 627498000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# TDT
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585498000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-FraserCoast-Bundaberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-FraserCoast-Bundaberg
new file mode 100755
index 0000000000..ea93d82d75
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-FraserCoast-Bundaberg
@@ -0,0 +1,66 @@
+# Australia / QLD / Fraser Coast - Bundaberg / Mt Goonaneman
+# ABC VHF9A
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS UHF28
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven VHF7
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN Wide Bay VHF10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Southern Cross Ten VHF9
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 198525000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-GoldCoast b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-GoldCoast
new file mode 100755
index 0000000000..9f3a74be9c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-GoldCoast
@@ -0,0 +1,108 @@
+# DVB-T frequencies & modulation for the Gold Coast, Australia (Mt Tamborine)
+# See http://www.dba.org.au/index.asp?sectionID=22&recLocation=Gold+Coast
+# and http://www.dba.org.au/index.asp?sectionID=120
+#
+# ABC (UHF 62)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 767500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS (UHF 36)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven (UHF 53)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 704500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# NBN (UHF 68)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 809500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime (UHF 65)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 788500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Southern Cross Ten (UHF 43)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine (UHF 59)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten (UHF 56)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 725500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Goulburn-Rocky_Hill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Goulburn-Rocky_Hill
new file mode 100755
index 0000000000..259d9ea8d8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Goulburn-Rocky_Hill
@@ -0,0 +1,664 @@
+# Australia / Goulburn / Rocky Hill
+#
+# Scanned 31/07/2016 - Alex Ferrara (alex@receptiveit.com.au)
+
+[Nine Canberra]
+ SERVICE_ID = 2055
+ VIDEO_PID = 353
+ AUDIO_PID = 354
+ PID_0b = 8026
+ PID_06 = 355
+ PID_05 = 8025
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[9HD Canberra]
+ SERVICE_ID = 2247
+ VIDEO_PID = 1761
+ AUDIO_PID = 1762 1763 8025
+ PID_0b = 8026
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[Nine Canberra]
+ SERVICE_ID = 2215
+ VIDEO_PID = 353
+ AUDIO_PID = 354
+ PID_0b = 8026
+ PID_06 = 355
+ PID_05 = 8025
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[9Gem]
+ SERVICE_ID = 2087
+ VIDEO_PID = 1711
+ AUDIO_PID = 1712
+ PID_0b = 8026
+ PID_06 = 1713
+ PID_05 = 8025
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[9Go!]
+ SERVICE_ID = 2119
+ VIDEO_PID = 1721
+ AUDIO_PID = 1722
+ PID_0b = 8026
+ PID_06 = 1723
+ PID_05 = 8025
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[9Life]
+ SERVICE_ID = 2279
+ VIDEO_PID = 1771
+ AUDIO_PID = 1772
+ PID_0b = 8026
+ PID_06 = 1773
+ PID_05 = 8025
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[YESSHOP]
+ SERVICE_ID = 2151
+ VIDEO_PID = 1731
+ AUDIO_PID = 1732
+ PID_0b = 8026
+ PID_05 = 8025
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[Aspire]
+ SERVICE_ID = 2183
+ VIDEO_PID = 1741
+ AUDIO_PID = 1742
+ PID_0b = 8026
+ PID_05 = 8025
+ FREQUENCY = 641500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[WIN Canberra]
+ SERVICE_ID = 1921
+ VIDEO_PID = 122
+ AUDIO_PID = 522
+ PID_0b = 102
+ PID_06 = 722
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[WIN Canberra HD]
+ SERVICE_ID = 1939
+ VIDEO_PID = 125
+ AUDIO_PID = 525 725
+ PID_0b = 102
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ONE Canberra]
+ SERVICE_ID = 1922
+ VIDEO_PID = 123
+ AUDIO_PID = 523
+ PID_0b = 102
+ PID_06 = 723
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ELEVEN Canberra]
+ SERVICE_ID = 1926
+ VIDEO_PID = 124
+ AUDIO_PID = 524
+ PID_0b = 102
+ PID_06 = 724
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[WIN NETWORK]
+ SERVICE_ID = 1936
+ VIDEO_PID = 126
+ AUDIO_PID = 526
+ PID_0b = 102
+ PID_06 = 726
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[TVSN]
+ SERVICE_ID = 1928
+ VIDEO_PID = 116
+ AUDIO_PID = 516
+ PID_0b = 102
+ PID_06 = 716
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[GOLD]
+ SERVICE_ID = 1927
+ VIDEO_PID = 115
+ AUDIO_PID = 515
+ PID_0b = 102
+ PID_06 = 715
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ONE Canberra]
+ SERVICE_ID = 1925
+ VIDEO_PID = 123
+ AUDIO_PID = 523
+ PID_0b = 102
+ PID_06 = 723
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[WIN Canberra]
+ SERVICE_ID = 1924
+ VIDEO_PID = 122
+ AUDIO_PID = 522
+ PID_0b = 102
+ PID_06 = 722
+ FREQUENCY = 634500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[PRIME7 Canberra]
+ SERVICE_ID = 2374
+ VIDEO_PID = 2740
+ AUDIO_PID = 2741
+ PID_0b = 2749
+ PID_06 = 2745
+ FREQUENCY = 627500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[PRIME7 Canberra]
+ SERVICE_ID = 2400
+ VIDEO_PID = 2740
+ AUDIO_PID = 2741
+ PID_0b = 2749
+ PID_06 = 2745
+ FREQUENCY = 627500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[PRIME7 Canberra]
+ SERVICE_ID = 2401
+ VIDEO_PID = 2740
+ AUDIO_PID = 2741
+ PID_0b = 2749
+ PID_06 = 2745
+ FREQUENCY = 627500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[7TWO Canberra]
+ SERVICE_ID = 2402
+ VIDEO_PID = 4620
+ AUDIO_PID = 4621
+ PID_0b = 2749
+ PID_06 = 4625
+ FREQUENCY = 627500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[7mate Canberra]
+ SERVICE_ID = 2403
+ VIDEO_PID = 4630
+ AUDIO_PID = 4632 4635
+ PID_0b = 2749
+ FREQUENCY = 627500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ishoptv]
+ SERVICE_ID = 2405
+ VIDEO_PID = 4650
+ AUDIO_PID = 4651
+ PID_0b = 2749
+ FREQUENCY = 627500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[RACING.COM]
+ SERVICE_ID = 2408
+ VIDEO_PID = 4680
+ AUDIO_PID = 4681
+ PID_0b = 2749
+ FREQUENCY = 627500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ABC News 24]
+ SERVICE_ID = 672
+ VIDEO_PID = 516
+ AUDIO_PID = 654 580 5500
+ PID_0b = 5501 5000
+ FREQUENCY = 620500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ABC]
+ SERVICE_ID = 673
+ VIDEO_PID = 512
+ AUDIO_PID = 650
+ PID_0b = 5501 5000
+ PID_06 = 576
+ PID_05 = 5500
+ FREQUENCY = 620500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ABC2/KIDS]
+ SERVICE_ID = 674
+ VIDEO_PID = 513
+ AUDIO_PID = 651
+ PID_0b = 5501 5000
+ PID_06 = 577
+ PID_05 = 5500
+ FREQUENCY = 620500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ABC]
+ SERVICE_ID = 675
+ VIDEO_PID = 512
+ AUDIO_PID = 650
+ PID_0b = 5501 5000
+ PID_06 = 576
+ PID_05 = 5500
+ FREQUENCY = 620500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ABC3]
+ SERVICE_ID = 676
+ VIDEO_PID = 514
+ AUDIO_PID = 652
+ PID_0b = 5501 5000
+ PID_06 = 578
+ PID_05 = 5500
+ FREQUENCY = 620500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[Double J]
+ SERVICE_ID = 678
+ AUDIO_PID = 690
+ PID_0b = 5501
+ PID_05 = 5500
+ FREQUENCY = 620500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[ABC Jazz]
+ SERVICE_ID = 679
+ AUDIO_PID = 700
+ PID_0b = 5501
+ PID_05 = 5500
+ FREQUENCY = 620500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[SBS ONE]
+ SERVICE_ID = 849
+ VIDEO_PID = 161
+ AUDIO_PID = 81
+ PID_0b = 7000 5000
+ PID_06 = 41
+ PID_05 = 7849
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[SBS HD]
+ SERVICE_ID = 853
+ VIDEO_PID = 102
+ AUDIO_PID = 103
+ PID_0b = 7000 5000
+ PID_06 = 43
+ PID_05 = 7853
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[SBS TWO]
+ SERVICE_ID = 850
+ VIDEO_PID = 162
+ AUDIO_PID = 83
+ PID_0b = 7000 5000
+ PID_06 = 42
+ PID_05 = 7850
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[Food Network]
+ SERVICE_ID = 851
+ VIDEO_PID = 163
+ AUDIO_PID = 85
+ PID_0b = 7000 5000
+ PID_06 = 44
+ PID_05 = 7849
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[NITV]
+ SERVICE_ID = 852
+ VIDEO_PID = 164
+ AUDIO_PID = 87
+ PID_0b = 7000 5000
+ PID_06 = 45
+ PID_05 = 7852
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[SBS Radio 1]
+ SERVICE_ID = 862
+ AUDIO_PID = 201
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[SBS Radio 2]
+ SERVICE_ID = 863
+ AUDIO_PID = 202
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
+[SBS Radio 3]
+ SERVICE_ID = 864
+ AUDIO_PID = 203
+ FREQUENCY = 613500000
+ MODULATION = QAM/256
+ BANDWIDTH_HZ = 0
+ INVERSION = AUTO
+ CODE_RATE_HP = NONE
+ CODE_RATE_LP = AUTO
+ GUARD_INTERVAL = 1/32
+ TRANSMISSION_MODE = 2K
+ HIERARCHY = NONE
+ DELIVERY_SYSTEM = DVBT
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hervey_Bay-Ghost_Hill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hervey_Bay-Ghost_Hill
new file mode 100755
index 0000000000..e35869aaff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hervey_Bay-Ghost_Hill
@@ -0,0 +1,81 @@
+# Australia / Hervey Bay / Ghost Hill
+#
+#
+# ABC UHF56
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 725500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven UHF59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine UHF62
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 767625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten UHF68
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 809500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS UHF28
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS UHF34
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 704500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hobart b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hobart
new file mode 100755
index 0000000000..c94c53fc39
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Hobart
@@ -0,0 +1,66 @@
+# Australia / Tasmania / Hobart
+# ABC VHF 8
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS VHF 9a
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SCT VHF 10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN VHF 7
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# TDT VHF 11
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Mackay b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Mackay
new file mode 100755
index 0000000000..f894007aaa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Mackay
@@ -0,0 +1,68 @@
+# Australia / Mackay (Mt Blackwood transmitters)
+# aufreq=((UHF channel number)*8+306)
+
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN Digital
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Southern Cross Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 557500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne
new file mode 100755
index 0000000000..cc742ff953
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne
@@ -0,0 +1,88 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20130331 1 0 TERRESTRIAL AU </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Australia / Melbourne (Mt Dandenong transmitters)
+# date (yyyy-mm-dd) : 2014-08-17
+# provided by (opt) : <your name or email here>
+#
+#------------------------------------------------------------------------------
+# Seven Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS Melbourne
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine Network Australia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Network TEN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC Melbourne
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# C31
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 557625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Selby b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Selby
new file mode 100755
index 0000000000..2219466ff2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Selby
@@ -0,0 +1,66 @@
+# Australia / Melbourne (Selby Repeater)
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 662500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 683500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Upwey b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Upwey
new file mode 100755
index 0000000000..978e2ade82
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Melbourne-Upwey
@@ -0,0 +1,66 @@
+# Australia / Melbourne (Upwey Repeater)
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 662500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 683500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-MidNorthCoast b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-MidNorthCoast
new file mode 100755
index 0000000000..714d8da9c6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-MidNorthCoast
@@ -0,0 +1,131 @@
+# Australia ABC Mid North Coast
+# ABC middle brother
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime Middle Brother
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# NBN Middle Brother
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten Middle Brother
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS middle brother
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC Moombil
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime Moombil
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 543500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# NBN Moombil
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten Moombil
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS Moombil
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 606500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Newcastle b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Newcastle
new file mode 100755
index 0000000000..dd634e4d7d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Newcastle
@@ -0,0 +1,66 @@
+# Australia / Newcastle
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# NBN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 704500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SC10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth
new file mode 100755
index 0000000000..4c6fb09bd2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth
@@ -0,0 +1,66 @@
+# Australia / Perth
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Network TEN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth_Roleystone b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth_Roleystone
new file mode 100755
index 0000000000..f02cc23184
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Perth_Roleystone
@@ -0,0 +1,66 @@
+# Australia / Perth (Roleystone transmitter)
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 704500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 725500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 767500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 788500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SpencerGulf b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SpencerGulf
new file mode 100755
index 0000000000..9983110cd1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SpencerGulf
@@ -0,0 +1,40 @@
+# Australia / South Australia / Pt Pirie (THE BLUFF)
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Southern Cross
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SunshineCoast b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SunshineCoast
new file mode 100755
index 0000000000..ff6f5dd7fc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-SunshineCoast
@@ -0,0 +1,66 @@
+# Australia / Sunshine Coast
+# SBS40 SBS ***
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 613500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# TNQ44 10 ***
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC41 ABC ***
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# STQ42 7 ***
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 627500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# RTQ43 WIN ***
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sutherland b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sutherland
new file mode 100755
index 0000000000..403f4be7e0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sutherland
@@ -0,0 +1,63 @@
+# Australia / Sutherland
+#
+# Australia modulation params:
+# - http://www.dba.org.au/index.asp?sectionID=120
+#
+#
+# North (Broadcast Site Escarpment Road BROKERS NOSE)
+# - http://www.dba.org.au/index.asp?query=true&sectionID=22&recLocation=Wollongong+%2D+North
+#
+#Channel 7 stations
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#Channel 9 bundle
+# T 191500000 7MHz AUTO AUTO AUTO AUTO AUTO AUTO
+#One and Channel 10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#Aunty
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 571500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney
new file mode 100755
index 0000000000..19e7be3b41
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney
@@ -0,0 +1,82 @@
+# Australia / Sydney (transmitters at Artarmon/Gore Hill/Willoughby)
+#
+# ## Service - Channel - Network owner
+#
+## ABC - CH12 - ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+## ATN - CH6 - Seven Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+## TCN - CH8 - Nine Network
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+## TEN - CH11 - Network Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+## SBS - CH7 - SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+## TSN - CH29 - Community Television
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney_Kings_Cross b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney_Kings_Cross
new file mode 100755
index 0000000000..f61fb983ad
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Sydney_Kings_Cross
@@ -0,0 +1,68 @@
+# Australia / Sydney / Kings Cross and North Head
+#
+#
+# ABC UHF30
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 543500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven UHF48
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 669500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine UHF33
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten UHF45
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 648500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS UHF34
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 571500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Tamworth b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Tamworth
new file mode 100755
index 0000000000..87c31802a7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Tamworth
@@ -0,0 +1,200 @@
+# Australia / NSW / New England / Tamworth / Mt.Soma
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# NBN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 753500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 732500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SC10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 774500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# Australia / NSW / New England / Upper Namoi / Mt.Dowe
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# NBN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SC10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 613500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# Australia / NSW / Western Districts / Central Western Slopes / Mt. Cenn Cruaich
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 648500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SC10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Townsville b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Townsville
new file mode 100755
index 0000000000..d7c8b6ce61
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Townsville
@@ -0,0 +1,66 @@
+# Australia / Brisbane (Mt Coot-tha transmitters)
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 550500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-WaggaWagga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-WaggaWagga
new file mode 100755
index 0000000000..d0762c7cfe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-WaggaWagga
@@ -0,0 +1,66 @@
+# Australia / Wagga Wagga (Mt Ulundra)
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 655500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 669500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 662500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Southern Cross Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 683500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Wollongong b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Wollongong
new file mode 100755
index 0000000000..94fe7444d8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-Wollongong
@@ -0,0 +1,149 @@
+# Australia / Wollongong
+#
+# Australia modulation params:
+# - http://www.dba.org.au/index.asp?sectionID=120
+#
+#
+# North (Broadcast Site Escarpment Road BROKERS NOSE)
+# - http://www.dba.org.au/index.asp?query=true&sectionID=22&recLocation=Wollongong+%2D+North
+#
+# ABC UHF52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 697500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime UHF46
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 655500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN UHF40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 613500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten UHF43
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS UHF54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# Illawarra (Broadcast Australia Digital Television Tower KNIGHTS HILL)
+# - http://www.dba.org.au/index.asp?query=true&sectionID=22&recLocation=Wollongong+%2D+Illawarra
+#
+# ABC UHF51
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Prime UHF38
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# WIN UHF36
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten UHF37
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS - same as North
+#
+# Stanwell Park (Bald Hill STANWELL TOPS)
+# - http://www.dba.org.au/index.asp?query=true&sectionID=22&recLocation=Wollongong+%2D+Stanwell%20Park
+#
+# ABC, Prime, WIN, Ten are identical to Wollongong / North
+# SBS UHF49
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 676500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-canberra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-canberra
new file mode 100755
index 0000000000..79a094afc5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-canberra
@@ -0,0 +1,66 @@
+# Australia / Canberra / Woden
+# ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Seven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Nine
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Ten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# SBS
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 543500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-unknown b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-unknown
new file mode 100755
index 0000000000..c8d16b3d10
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/au-unknown
@@ -0,0 +1,13 @@
+# Australia ABC
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Australia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Australia
new file mode 100755
index 0000000000..f58fae350d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Australia
@@ -0,0 +1,1209 @@
+# for ($freq = 177500000; $freq <= 226500000; $freq += 7000000) {
+# print "T $freq 7MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# print "T ", $freq + 125000, " 7MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# }
+# for ($freq = 529500000; $freq <= 816500000; $freq += 7000000) {
+# print "T $freq 7MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# print "T ", $freq + 125000, " 7MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# }
+#
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 198625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 536625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 543500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 543625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 550500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 550625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 557500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 557625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 564625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 571500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 571625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 592625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 606500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 606625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 613500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 613625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 620625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 627500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 627625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 648500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 648625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 655500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 655625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 662500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 662625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 669500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 669625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 676500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 676625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 683500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 683625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 697500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 697625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 704500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 704625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 711625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 718500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 718625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 725500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 725625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 732500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 732625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 739500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 739625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 753500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 753625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 760500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 760625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 767500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 767625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 774500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 774625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 781500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 781625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 788500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 788625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 795500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 795625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 809500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 809625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 816500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 816625000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Default b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Default
new file mode 100755
index 0000000000..add81b94e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Default
@@ -0,0 +1,691 @@
+# for ($freq = 177500000; $freq <= 226500000; $freq += 7000000) {
+# print "T $freq 7MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# }
+# for ($freq = 474000000; $freq <= 858000000; $freq += 8000000) {
+# print "T $freq 8MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# }
+#
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Taiwan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Taiwan
new file mode 100755
index 0000000000..3b2fb9ff64
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-Taiwan
@@ -0,0 +1,160 @@
+# for ($freq = 527000000; $freq <= 599000000; $freq += 6000000) {
+# print "T $freq 6MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# }
+#
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 527000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 533000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 539000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 545000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 551000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 557000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 563000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 569000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 575000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 581000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 587000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 593000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 599000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-With167kHzOffsets b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-With167kHzOffsets
new file mode 100755
index 0000000000..3542db03af
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/auto-With167kHzOffsets
@@ -0,0 +1,1869 @@
+# for ($freq = 177500000; $freq <= 226500000; $freq += 7000000) {
+# print "T $freq 7MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# }
+# for ($freq = 474000000; $freq <= 858000000; $freq += 8000000) {
+# print "T $freq 8MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# print "T ", $freq - 167000, " 8MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# print "T ", $freq + 167000, " 8MHz AUTO NONE AUTO AUTO AUTO NONE\n";
+# }
+#
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 473833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 481833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 489833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 497833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 505833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 513833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 521833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 537833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 553833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 561833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 569833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 577833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 585833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 593833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 601833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 609833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 617833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 625833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 633833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 649833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 657833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 665833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 673833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 681833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 689833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 697833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 705833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 713833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 721833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 729833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 737833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 745833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 753833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 761833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 769833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 793833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 801833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 809833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 817833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 825833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 833833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 841833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 849833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 857833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = AUTO
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ax-Smedsbole b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ax-Smedsbole
new file mode 100755
index 0000000000..19e206dd7b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ax-Smedsbole
@@ -0,0 +1,34 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20090808 2 0 OFDM FI </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Åland Smedsböle/Sund
+# date (yyyy-mm-dd) : 2009-12-23
+# provided by (opt) : k.hampf@gmail.com
+#
+#------------------------------------------------------------------------------
+[Åland Network]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Åland Network]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/be-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/be-All
new file mode 100755
index 0000000000..c957c06136
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/be-All
@@ -0,0 +1,62 @@
+# Belgium, whole country
+# Created from http://nl.wikipedia.org/wiki/DVB-T-frequenties
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/bg-Sofia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/bg-Sofia
new file mode 100755
index 0000000000..1d39d1c5c7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/bg-Sofia
@@ -0,0 +1,58 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20130331 1 0 TERRESTRIAL BG </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Sofia
+# date (yyyy-mm-dd) : 2013-05-13
+# provided by (opt) : v.lalov@gmail.com
+#
+#------------------------------------------------------------------------------
+[NURTS Digital]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[NURTS Digital]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[First Digital]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[NURTS]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-All
new file mode 100755
index 0000000000..0ff77caf95
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-All
@@ -0,0 +1,339 @@
+# Switzerland, whole country
+# Created from http://www.broadcast.ch/portal.aspx?pid=705
+# and http://www.broadcast.ch/data_program_dvbt.aspx
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Citycable b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Citycable
new file mode 100755
index 0000000000..ef58d06576
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Citycable
@@ -0,0 +1,325 @@
+# Lausanne - Switzerland (DVB-T on CityCable cable network)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 7/8
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Geneva b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Geneva
new file mode 100755
index 0000000000..a64cc945a5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ch-Geneva
@@ -0,0 +1,147 @@
+# Switzerland, Geneva region
+# Updated by tkernen@deckpoint.ch on 2010/12/03
+#------------------------------------------------------------------------------
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850166000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/co-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/co-All
new file mode 100755
index 0000000000..c06056aa8f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/co-All
@@ -0,0 +1,34 @@
+# initial scan file for Colombia, national level
+# DVB-T2, 470-860MHz, 6MHz bandwidth
+# See: https://es.wikipedia.org/wiki/Televisi%C3%B3n_Digital_Terrestre_en_Colombia
+# See: https://www.crcom.gov.co/recursos_user/Documentos_CRC_2012/Actividades_Regulatorias/TDT/documentos_soporte_TDT_20120914.pdf#page=51
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 473000000
+ BANDWIDTH_HZ = 6000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 479000000
+ BANDWIDTH_HZ = 6000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 485000000
+ BANDWIDTH_HZ = 6000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 491000000
+ BANDWIDTH_HZ = 6000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 551000000
+ BANDWIDTH_HZ = 6000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 557000000
+ BANDWIDTH_HZ = 6000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/cz-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/cz-All
new file mode 100755
index 0000000000..672f2c63bf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/cz-All
@@ -0,0 +1,483 @@
+# Czech Republic, whole country (updated to regulatory 2013)
+# Created from http://www.ctu.cz/cs/download/plan-vyuziti-radioveho-spektra/rok_2012/pv-p_10-08_2012-11.pdf
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Baden-Wuerttemberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Baden-Wuerttemberg
new file mode 100755
index 0000000000..07ead3169e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Baden-Wuerttemberg
@@ -0,0 +1,194 @@
+# DVB-T Baden-Württemberg
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH21: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH26: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH39: SWR-BW, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH40: SWR-BW, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH41: SWR-BW, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH43: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH45: RTL, RTL2, Super RTL, VOX, RTL Crime, Passion [Sendenorm: MPEG-4]]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH49: SWR-BW, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH50: SWR-BW, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH52: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH54: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH59: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH60: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bayern b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bayern
new file mode 100755
index 0000000000..0d4182f888
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bayern
@@ -0,0 +1,237 @@
+# DVB-T Bayern
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH25: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH25: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo
+[CH27: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH28: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH28: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo
+[CH29: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH30: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH34: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH36: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH39: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH40: Bayerisches Fernsehen, BR-alpha, MDR, hr]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH40: Das Erste, arte, Phoenix, EinsPlus
+[CH42: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH42: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo
+[CH44: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH45: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH46: Bayerisches Fernsehen, BR-alpha, MDR, hr]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH46: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra
+[CH47: Bayerisches Fernsehen, BR-alpha, MDR, hr]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH47: Das Erste, arte, Phoenix, EinsPlus
+[CH49: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH53: Bayerisches Fernsehen, BR-alpha, SWR, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH53: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo
+[CH55: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Berlin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Berlin
new file mode 100755
index 0000000000..79d29b51eb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Berlin
@@ -0,0 +1,110 @@
+# DVB-T Berlin
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH25: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH27: Das Erste, RBB, Phoenix, EinsExtra / BrandenburgAktuell]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH39: QVC, DasVierte, Bibel.TV, BR-Fernsehen, n-tv, EuroNews/Channe21 Shop + 7 Radioprogr]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH44: ProSieben, Sat.1, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH47: MDR, NDR, arte, hr]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH50: Tele5, HSE 24, WDR, SWR (BW / RP)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH56: Eurosport, TV.B, Music1, sixx,]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH59: BerlinerSpreekanal / JuveloTV, ServusTV, Anixe]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Brandenburg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Brandenburg
new file mode 100755
index 0000000000..223126e1ca
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Brandenburg
@@ -0,0 +1,50 @@
+# DVB-T Brandenburg
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH36: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH53: Das Erste, RBB, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH57: MDR, NDR, arte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bremen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bremen
new file mode 100755
index 0000000000..24ab8eb0e8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Bremen
@@ -0,0 +1,74 @@
+# DVB-T Bremen
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH22: Das Erste (RB), RB TV (NDR NDS), arte, Phoenix]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH29: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH32: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH42: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH45: Tele 5, SIXX, QVC, Mona / Bibel TV / Das Vierte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH49: ProSieben, Sat.1, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Dusseldorf b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Dusseldorf
new file mode 100755
index 0000000000..aaf5a53fdb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Dusseldorf
@@ -0,0 +1,144 @@
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hamburg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hamburg
new file mode 100755
index 0000000000..7a43b78027
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hamburg
@@ -0,0 +1,98 @@
+# DVB-T Hamburg
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH28: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH30: ProSieben, Sat.1/ Sat.1Regional, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH36: Tele5, Das Vierte, QVC, Channel21/ Euronews]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH40: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH46: SIXX, Hamburg 1, Bibel TV, Eurosport]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH54: NDR HH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR SH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hessen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hessen
new file mode 100755
index 0000000000..636e30cb03
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Hessen
@@ -0,0 +1,194 @@
+# DVB-T Hessen
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH21: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH24: hr, Bayerisches Fernsehen, SWR-RP, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH25: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH32: Das Erste, Phoenix, arte, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH34: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH35: hr, Bayerisches Fernsehen, SWR-RP, MDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH37: Das Erste, Phoenix, arte, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH39: hr, Bayerisches Fernsehen, SWR-RP, rbb]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH42: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH43: Das Erste, Phoenix, arte, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH45: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH52: Tele5, QVC, rheinmaintv / Channel21, iMusic1 / Anixe]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH53: hr, Bayerisches Fernsehen, SWR-BW, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH54: ProSieben, Sat.1, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH55: hr, NDR, MDR, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Mecklenburg-Vorpommern b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Mecklenburg-Vorpommern
new file mode 100755
index 0000000000..259012f23d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Mecklenburg-Vorpommern
@@ -0,0 +1,110 @@
+# DVB-T Mecklenburg-Vorpommernen
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH22: Das Erste, NDR MVP, RBB, MDR/NDR SH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH26: Das Erste, NDR MVP, RBB, MDR/NDR SH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH29: Das Erste, NDR MVP, RBB, MDR/NDR SH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH36: Das Erste, NDR MVP, RBB, MDR/NDR SH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH37: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH40: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH46: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH53: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Niedersachsen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Niedersachsen
new file mode 100755
index 0000000000..496e1c4961
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Niedersachsen
@@ -0,0 +1,270 @@
+# DVB-T Niedersachsen
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH21: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH22: Das Erste (RB), RB TV (NDR NDS), arte, Phoenix]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH22: Das Erste, arte, Phoenix, EinsExtra
+[CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH24: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH26: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH28: Tele 5, Nickelodeon/Comedy Central, Eurosport, Mona / Bibel TV / Das Vierte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH29: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH31: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH32: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH35: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH36: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH38: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH38: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo
+[CH42: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH42: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo
+[CH43: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH43: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH
+[CH44: ProSieben, Sat.1, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH45: Tele 5, SIXX, QVC, Mona / Bibel TV / Das Vierte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH47: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH48: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH49: ProSieben, Sat.1, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH58: NDR NDS, WDR/NDR SH, MDR/NDR MVP, HR/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH59: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH60: Tele 5, Nickelodeon/Comedy Central, Eurosport, Mona / Bibel TV / Das Vierte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Nordrhein-Westfalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Nordrhein-Westfalen
new file mode 100755
index 0000000000..940d18d4ef
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Nordrhein-Westfalen
@@ -0,0 +1,231 @@
+# DVB-T Nordrhein-Westfalen
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH25: WDR-Dortmund, NDR/WDR-Ruhr, MDR, SWR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH26: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+ # CH26: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo
+[CH27: WDR-Südwestfalen, NDR, MDR, SWR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH29: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH31: WDR-OWL_aktuell, NDR/WDR-Südwestfalen, MDR, SWR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH35: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH36: Tele5, CNN, Eurosport, VIVA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH37: WDR-Aachen, NDR/WDR-Köln, MDR, SWR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH46: WDR-Düsseldorf, MDR/WDR-Duisburg, NDR/WDR-Berg.Land, SWR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH48: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH49: WDR-Köln, MDR/WDR-Bonn, NDR/WDR-Aachen, SWR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH50: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH52: Tele5, CNN, Eurosport, VIVA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH53: ProSieben, Sat.1, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH55: ProSieben, Sat.1, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH57: WDR-Ruhr, NDR/WDR-Dortmund, MDR, SWR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH60: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Rheinland-Pfalz b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Rheinland-Pfalz
new file mode 100755
index 0000000000..8779942853
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Rheinland-Pfalz
@@ -0,0 +1,98 @@
+# DVB-T Rheinland-Pfalz
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH28: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: SWR-RP, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH44: SWR-RP, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH46: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH48: SWR-RP, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH56: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH57: Das Erste, arte, Phoenix, EinsPlus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Saarland b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Saarland
new file mode 100755
index 0000000000..4809557a5e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Saarland
@@ -0,0 +1,50 @@
+# DVB-T Saarland
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH42: Das Erste, SR Fernsehen, arte, Phoenix]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH44: SWR-RP, Bayerisches Fernsehen, hr, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH49: Tele5, QVC, Bibel.TV, freie Kapazität]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen
new file mode 100755
index 0000000000..ad875145d5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen
@@ -0,0 +1,134 @@
+# DVB-T Sachsen
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH24: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH25: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH27: MDR-SN, rbb, Bayerisches Fernsehen, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH28: RTL, RTL2, Super RTL, VOX, RTL Crime, Passion [Sendenorm: MPEG-4]]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH29: MDR-SN, rbb, Bayerisches Fernsehen, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH31: LF Leipzg.Ferns., InfoTVLeipzig, BBCWorld, Bibel.TV, RadioLeipzig, RadioHoreb]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH32: MDR-SN, rbb, Bayerisches Fernsehen, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH36: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH37: MDR-SN, rbb, Bayerisches Fernsehen, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH39: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen-Anhalt b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen-Anhalt
new file mode 100755
index 0000000000..9925a2dd53
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Sachsen-Anhalt
@@ -0,0 +1,122 @@
+# DVB-T Sachsen-Anhalt
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH24: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH28: RTL, RTL2, Super RTL, VOX, RTL Crime, Passion [Sendenorm: MPEG-4]]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH29: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH30: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH31: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH34: MDR-ST, rbb, NDR, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH38: MDR-ST, rbb, NDR, WDR]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH41: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH55: TV Halle (Testbetrieb)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Schleswig-Holstein b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Schleswig-Holstein
new file mode 100755
index 0000000000..00976acc4a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Schleswig-Holstein
@@ -0,0 +1,182 @@
+# DVB-T Schleswig-Holstein
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH21: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH23: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH24: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH26: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH28: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH30: ProSieben, Sat.1/ Sat.1Regional, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH31: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH35: ProSieben, Sat.1/ Sat.1Regional, Kabel1, N24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH39: NDR SH, WDR/NDR NDS, MDR/NDR MVP, BR Fernsehen/NDR HH]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH40: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH45: RTL, RTL2, Super RTL, VOX]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH47: Das Erste, arte, Phoenix, EinsExtra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH57: Tele 5, SIXX, das Vierte, Bibel TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH59: Tele 5, SIXX, das Vierte, Bibel TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Thueringen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Thueringen
new file mode 100755
index 0000000000..72fa945809
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/de-Thueringen
@@ -0,0 +1,86 @@
+# DVB-T Thüringen
+# Created from http://www.ueberallfernsehen.de/data/senderliste.pdf
+[CH21: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH22: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH25: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH27: MDR-TH, rbb, hr, Bayerisches Fernsehen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH48: MDR-TH, rbb, hr, Bayerisches Fernsehen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH50: ZDF, 3sat, KiKa / ZDFneo, ZDFinfo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH53: Das Erste, arte, Phoenix, EinsFestival]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/dk-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/dk-All
new file mode 100755
index 0000000000..6bd590cdde
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/dk-All
@@ -0,0 +1,231 @@
+# Denmark, whole country
+# Created from http://www.digi-tv.dk/Indhold_og_tilbud/frekvenser.asp
+# and http://www.digi-tv.dk/Sendenettets_opbygning/
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ee-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ee-All
new file mode 100755
index 0000000000..689a35a0d6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ee-All
@@ -0,0 +1,393 @@
+# Estonia, whole country
+# Created from http://www.levira.ee/transmitter.pdf
+# and http://wiki.wifi.ee/index.php/DVB-T#Tehniline_teave
+# Additional MUX info http://www.levira.ee/program.pdf
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ STREAM_ID = 4294967295
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ STREAM_ID = 4294967295
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ STREAM_ID = 4294967295
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ STREAM_ID = 4294967295
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ STREAM_ID = 4294967295
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Albacete b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Albacete
new file mode 100755
index 0000000000..d64012ed94
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Albacete
@@ -0,0 +1,145 @@
+# Spain, Albacete - Update 2010/08/12 (Freud)
+[Canal 37: La Regional, TCM, CRN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 46: Sogecuatro, laSexta2, laSexta3 (Todos pendientes de asignar)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 47: CNC, Vision6, ABTeVe, Punto Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 50: Boing, La 10, MTV, Punto Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 53: Nitro, Marca TV, Veo13]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 56: TVE HD, Teledeporte, Pruebas TVE, RNE 1, RNE CLÁSICA, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 59: La 1, La 2, 24H, Clan, RNE1, RNE Clásica, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 63: CMT, CMT2, RCM]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Veo7, Tienda en Veo, Intereconomía, AXN, Teledeporte, Radio Intereconomía, Radio Marca, esRadio, Vaughan Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: Cuatro, CNN+, 40 Latino, Canal+ Dos, Canal Club, LaSexta, SER, 40 Principales, Cadena Dial]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, La Siete, FDF, CincoShop, Disney Channel, Punto Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, Neox, Nova, Gol Televisión, Onda Cero, Europa FM, Onda Melodía ]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alfabia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alfabia
new file mode 100755
index 0000000000..ee20e68564
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alfabia
@@ -0,0 +1,145 @@
+# DVB-T Alfabia, Mallorca, Balearic Islands, Spain.
+[TV3 Cat, 3/24, 33, Super3/300]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Nitro, A3TVHD, 13TV, Tienda]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TV Mallorca, Canal 4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Popular TV, TEVEi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Xplora, laSexta3, laSextaHD, CuatroHD, Energy]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Boing, TelecincoHD, Paramount]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[La1HD, TDP, TDPHD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C.63: 24h, 50 aniv., ClanTV, La 2, TVE1; RNE 1, RNE 3, RNE C; Digitext, EPG, Lanzadera.]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C.65: IB3, IB3HD, Metropolitan TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C.67: Cuatro, La Sexta, GolTV, Divinity, Nueve]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C.68: Tele 5, La7, FDF, Disney Channel, Intereconomía]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C.69: Antena 3, Discovery Max, Neox, Nova, AXN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alicante b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alicante
new file mode 100755
index 0000000000..a95a492adc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alicante
@@ -0,0 +1,85 @@
+# DVB-T Alicante, Spain
+[Canal 55: TV3, K33/33, 3/24, Canal 300]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 58: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 63: Telemadrid, La Otra, Onda 6]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Veo, Veo 2, Net TV, Teledeporte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Almeria b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Almeria
new file mode 100755
index 0000000000..a6481e69a8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Almeria
@@ -0,0 +1,108 @@
+# Spain, Almeria - Update 2016/03/17 (denise_amiga)
+[Canal 34: Interalmeria TV, 8TV, Tubienstar Astrocanal, Canal 28]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 36: Atreseries HD, Energy HD, Real Madrid TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 38: Boing, Energy, Mega, 13TV, Onda Cero, Europa FM, Melodia FM, Cope]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 41: Antena 3, Antena 3HD, laSexta, laSecta HD, Neox, Nova]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 44: Telecinco, Telecinco HD, Cuatro, Cuatro HD, FDF, Divinity]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 47: TDP, TDP HD 9Kiss TV, 10, Radio Clasica HQ, Radio 3 HQ, Radio Exterior RNE Kiss FM, Canal Ingenieria]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 57: La 1, La 1 HD, La 2, 24h, Clan, Radio, Radio 5]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 58: 13TV, Discovery MAX, Disney Channel, Paramount Channel, Cope, Radio Maria, Radio Marca, Vaughan Radio, esRadio, Guide Plus+]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 59: Canal Sur, Canal Sur 2, Andalucia TV, EHS TV, Canal Sur Radio, Flamenco Radio, Canal Fiesta Radio, Radio Andalucia Informacion]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alpicat b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alpicat
new file mode 100755
index 0000000000..be46742637
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Alpicat
@@ -0,0 +1,73 @@
+# DVB-T Alpicat (Lleida)
+[c58: TV3, K3/33, 3/24, 300, 3i]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c64: TVE1, TVE2, Teledeporte, C24h]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c66: TVE ClanTV, TVE 50a, Veo1, Veo2, Net]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c67: Cuatro, 40Latino, CNN+, LaSexta 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c68: T5, T5 Sports, T5 Estrellas, Net Fly Music]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c69: Antena3, Antena.Neox, Antena.Nova, La Sexta 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Asturias b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Asturias
new file mode 100755
index 0000000000..283b91215e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Asturias
@@ -0,0 +1,194 @@
+# DVB-T Asturias
+[Canal 22: Atreseries HD, Energy HD, Real Madrid TV, Be Mad]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# START CANGAS DE NARCEA Y LLANES
+[Canal 25: Ed. Prensa Asturiana, TeleNarcea, TeleAvilés, UTE Opalo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+# END CANGAS DE NARCEA Y LLANES
+
+[Canal 27: Boing, Energy, Mega, 13 TV, Onda Cero, Europa FM, Melodía FM, Cope]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 28: Telecinco, Telecinco HD, Cuatro, Cuatro HD, FDF, Divinity]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 32: Antena 3, Antena 3 HD, laSexta, laSexta HD, Neox, Nova]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 35: Proximamente, Discovery Max, Disney Channel, Paramount Channel, Cope, Radio María, Radio Marca, Vaughan Radio, esRadio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# START GIJÓN
+[Canal 38: Muy Muy TV, Canal 10, Astrocanal]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+# END GIJÓN
+
+[Canal 39: La 1, La 1 HD, La 2, 24h, Clan, Radio Nacional, Radio 5]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 42: TDP, TDP HD, KISS, TEN, Radio Clásica HQ, Radio 3 HQ, Radio Exterior RNE, Kiss FM]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# START OVIEDO
+[Canal 43: Ed. Prensa Asturiana, Oviedo TV, Canal 10]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+# END OVIEDO
+
+# START INFIESTO
+[Canal 44: Ed. Prensa Asturiana, TeleAvilés, UTE Opalo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+# END INFIESTO
+
+[Canal 45: TPA7, TPA8, TPA HD, RPA, Radio Langreo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# START MIERES
+[Canal 46: Cuencas Mineras TV, Producciones Grela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+# END MIERES
+
+# START AVILÉS
+[Canal 47: Ed. Prensa Asturiana, Canal 10, TeleAvilés]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+# END AVILÉS
+
+# START LUARCA-VALDÉS
+[Canal 56: Ed. Prensa Asturiana, TeleAvilés, ORT]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+# END LUARCA-VALDÉS
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-BaixoMinho b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-BaixoMinho
new file mode 100755
index 0000000000..ffc1de87bd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-BaixoMinho
@@ -0,0 +1,81 @@
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20090528 1 0 OFDM ES </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Baixo Minho, Pontevedra (Spain)
+# date (yyyy-mm-dd) : 2009-07-11
+# provided by (opt) : neonmann@gmail.com
+#
+#------------------------------------------------------------------------------
+[SFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[RAR Pontevedra]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[RGE GALICIA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Bilbao b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Bilbao
new file mode 100755
index 0000000000..c4233f06a8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Bilbao
@@ -0,0 +1,72 @@
+[Canal 67: CNN+. Cuatro, La Sexta, 40 latino TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, La Sexta 2, Neo, Nova, Telehit, Onda Cero, Europa FM, Onda Melodia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 63: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Veo, Veo 2, Net TV, Teledeporte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 61: ETB1, ETB2, ETB-Sat, Canal Vasco, Euskadi Irratia, Radio Euskadi, Euskadi Gastea, Radio EITB]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Cadiz b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Cadiz
new file mode 100755
index 0000000000..4155003d8b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Cadiz
@@ -0,0 +1,294 @@
+# DVB-T Cadiz (Andalusia) by xiterrex Aug 2014
+# Info obtained from Spanish Government (Ministerio de Industria) at URL:
+# <http://www.minetur.gob.es/telecomunicaciones/infraestructuras/paginas/tdt_ict.aspx>
+[C21 # MPE2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 # RGE1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 # RGE1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 498000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C24 # TL02CA Arcos
+[C27 # RGE2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 522000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C27 # TL06CA Olvera
+[C28 # TL01CA Algeciras]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30 # TL05CA Jerez]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 # RGE2 (Main)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C38 # MPE3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41 # MPE2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C43 # TL08CA Medina]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 # MPE1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 # AND]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 # MPE3 (Main)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C50 # TL07CA Ubrique]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 # RGE2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 722000000 8MHz 2/3 NONE QAM64 8k 1/4 NONE # C52 # TL04CA Chiclana
+[C53 # MPE1 (Main)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 # TL03CA Cadiz]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 # MPE2 (Main)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 # RGE1 (Main)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 # AND (Main)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C64 # RGE1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C67 # MD67]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C68 # MD68]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C69 # MD69]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Carceres b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Carceres
new file mode 100755
index 0000000000..8f52a46bab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Carceres
@@ -0,0 +1,108 @@
+[Canal 39: 8Madrid, TMT-Popular TV, Kiss TV, Intereconomía TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 50: EsMadrid TV, Ver-t, EM2, Libertad Digital TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 58: La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 63: Telemadrid, La Otra, Onda 6]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Veo, Veo 2, Net TV, Teledeporte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 61: Canal Extremadura, Extremadura Television]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Collserola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Collserola
new file mode 100755
index 0000000000..60c73f0446
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Collserola
@@ -0,0 +1,121 @@
+# DVB-T Collserola (Barcelona)
+[BTV, TV Badalona, TV L'Hospitalet, TV del Besòs, COM Ràdio, Ràdio Ciutat Badalona, Ràdio L'Hospitalet]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[8TV, Barça TV, EDC3, 105TV, RAC 1, RAC 105]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TV3HD, 3/24, Canal 9, IB3, Catalunya Música, iCat FM]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Urbe TV, Canal Català, 25 TV, Localia, Ona FM, Onda Rambla, Sensació Ràdio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TV3, 33, 3/24, K3/300, Catalunya Ràdio, Catalunya Informació]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TVE1, TVE2, TVE 24H, Clan/TVE 50 Años, RNE1, RNEC, RNE3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Veo7, Sony TV en Veo, Tienda en Veo, Intereconomía, Teledeporte, Radio Intereconomía, Radio Marca]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Cuatro, CNN+, 40 Latino, La Sexta, Ser, 40 Principales, Cadena Dial]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Telecino, La Siete, FDF, CincoShop, Disney Channel, Punto Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Antena 3, Antena.Neox, Antena.Nova, Hogar 10, Onda Cero, Europa FM, Onda Melodía]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Donostia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Donostia
new file mode 100755
index 0000000000..a760346d4a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Donostia
@@ -0,0 +1,122 @@
+# The channels with 1/32 guard-interval are French and should be perfectly visible
+# here. However I have only managed to get a lock for the channel 57 of the French ones.
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Granada b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Granada
new file mode 100755
index 0000000000..1545b960c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Granada
@@ -0,0 +1,73 @@
+# Spain, Granada
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Huesca b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Huesca
new file mode 100755
index 0000000000..53cb0878b9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Huesca
@@ -0,0 +1,124 @@
+# DVB-T Huesca (Aragon) [Spain] [es-Huesca]
+# Generated by Vicente Hernando Ara <bizenton@gmail.com>
+#------------------------------------------------------------------------------
+
+[CH 43 HTV-HuescaTelevision]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 44 La Sexta 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 45 TVE HD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 48 NITRO]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 54 BOING]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 57 ARAGON TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 61 TVE]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 67]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 68]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH 69]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Las_Palmas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Las_Palmas
new file mode 100755
index 0000000000..da971ee85c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Las_Palmas
@@ -0,0 +1,149 @@
+# Funciona correctamente en Las Palmas de Gran Canaria (25-09-2010)
+#
+# Revisada y corregida por el Grupo de Usuarios de Linux de Canarias
+# http://www.gulic.org
+#
+[Canal 28: TVE HD, Teledeporte, RNE Clásica, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 32: Boing, Telecinco HD, La 10, MTV, Punto Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 35: Sogecuatro, LaSexta2, LaSexta3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 38: Nitro, Antena 3 HD, Marca TV, Veo13]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 44: Canal 7 Gran Canaria, TIC Canal 8, Canal 4, RTI]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 52: Localia, Nueve TV, Nueve Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 60: TVE1, TVE2, 24H TVE, Clan/TVE, RNE, RNEC, RNE3, Lanzadera, EPG, Digitext, Meteo, Bolsa, Trafico, Empleat]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 65: TV C, TV C2, Antena 3 Canarias, Popular TV, Canarias Radio, Cope, Cadena 100, Radio ECCA, Lanzadera, Ticker, Piloto TDT]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Veo7, Tienda en Veo, AXN, Intereconomia, Teledeporte, Radio Intereconomia, Radio Marca, esRadio, Vaughan Radio, Canal Ingeniería, GUIDE Plus +, C66Gancho, C66Lanzadera, C66EPG, EpgNet]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: Cuatro, CNN+, Canal+ Dos, Canal Club, laSexta, SER, 40 Principales, Cadena Dial, Lanzadera, EPG TDT, Ticker, Lanzadera, Noticias, EPG]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, La Siete, FDF, CincoShop, Disney Channel, T5Lanzadera, T5Digitext, Noticias, Tiempo, Bolsa, Tráfico]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, Neox, Nova, Gol Televisión, Onda Cero, Europa FM, Onda Melodía, tvtv DIGITAL, A3Lanzadera, A3Portal, A3EPG, A3Ticker, T-seniority, Gol Bar]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Lugo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Lugo
new file mode 100755
index 0000000000..53164a750b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Lugo
@@ -0,0 +1,74 @@
+# DVB-T Lugo (Centro emisor Paramo) - Rev. 1.2 - 11.12.05
+
+[TVE 1, TVE 2, 24H TVE, CLAN/50 TVE, RNE1, RNE CLASICA, RNE3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TVG, GALICIA TV AMERICA, RADIO GALEGA, R.GALEGA MUSICA, SON GALICIA RADIO, PROBAS RETEGAL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TELEDEPORTE, VEO TV, VEO 2, NET TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CUATRO, CNN+, 40 LATINO, LA SEXTA 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TELECINCO, T5 ESTRELLAS, T5 SPORT, FLYMUSIC]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, LA SEXTA 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Madrid b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Madrid
new file mode 100755
index 0000000000..40df6e69cc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Madrid
@@ -0,0 +1,142 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20110306 2 0 OFDM ES </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: <add description here>
+# date (yyyy-mm-dd) : 2011-03-16
+# provided by (opt) : <your name or email here>
+#
+#------------------------------------------------------------------------------
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Teledifusion Madrid]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[RGE2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[RGE MADRID]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TDT-CAM]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Malaga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Malaga
new file mode 100755
index 0000000000..521e5da1c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Malaga
@@ -0,0 +1,73 @@
+# DVB-T Malaga (Andalucia) by Pedro Leon 4 Mayo 2007
+[C57 La Primera, La 2, Canal 24H, Clan/TVE 50, RNE1, RNE Clásica, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C63 Canal Sur, Canal 2 Andalucia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C66 TELEDEPORTE, VEO, *Canal Ingenieria, SETenVEO, Tienda en VEO, NET TV, Radio Intereconomia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C67 CUATRO, CNN+, 40 LATINO, laSexta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C68 Telecinco, T5 Estrellas, T5 Sport, FLYMUSIC, PUNTO RADIO]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C69 ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, *tvtv DIGITAL, ONDA CERO, EUROPA FM, ONDA MELODIA, Telehit]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Muros-Noia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Muros-Noia
new file mode 100755
index 0000000000..26d3016ebe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Muros-Noia
@@ -0,0 +1,85 @@
+# DVB-T Muros and Noia
+[Canal 27: Local Ribeira]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 61: RAR A Corunha]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 63: RGE Galicia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: SFN 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: SFN 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: SFN 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: SFN 4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Mussara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Mussara
new file mode 100755
index 0000000000..c02383f128
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Mussara
@@ -0,0 +1,73 @@
+# DVB-T La Mussara (Reus-Tarragona)
+[c59: TV3, K3/33, 3/24, 300, 3i]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c64: TVE1, TVE2, Teledeporte, C24h]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c66: TVE ClanTV, TVE 50a, Veo1, Veo2, Net]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c67: Cuatro, 40Latino, CNN+, LaSexta 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c68: T5, T5 Sports, T5 Estrellas, Net Fly Music]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[c69: Antena3, Antena.Neox, Antena.Nova, La Sexta 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Pamplona b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Pamplona
new file mode 100755
index 0000000000..fed6f53a6f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Pamplona
@@ -0,0 +1,85 @@
+# DVB-T Pamplona
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-SC_Tenerife b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-SC_Tenerife
new file mode 100755
index 0000000000..25ef3ba972
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-SC_Tenerife
@@ -0,0 +1,149 @@
+# Funciona correctamente en Santa Cruz de Tenerife (25-09-2010)
+#
+# Revisada y corregida por el Grupo de Usuarios de Linux de Canarias
+# http://www.gulic.org
+#
+[C23]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C66]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C67]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C68]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C69]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santander b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santander
new file mode 100755
index 0000000000..d2fc392eb6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santander
@@ -0,0 +1,50 @@
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santiago_de_Compostela b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santiago_de_Compostela
new file mode 100755
index 0000000000..75943db94c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Santiago_de_Compostela
@@ -0,0 +1,85 @@
+# DVB-T Santiago de Compostela
+[Canal 23: Local Santiago]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 40: RAR Santiago]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 63: RGE Galicia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: SFN 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: SFN 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: SFN 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: SFN 4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Sevilla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Sevilla
new file mode 100755
index 0000000000..17eae2aa93
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Sevilla
@@ -0,0 +1,231 @@
+# DVB-T Sevilla (Spain) by x2 15-agos-2010, modificado 15-ago-2010
+# thanks to http://www.tdt1.com
+# thanks to http://wirbel.htpc-forum.de/w_scan/index2.html
+[C33]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C36]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C38]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C61]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C63]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C66]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C67]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C68]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C69]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Tenerife b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Tenerife
new file mode 100755
index 0000000000..c97a002a1e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Tenerife
@@ -0,0 +1,145 @@
+# DVB-T Tenerife, Spain (03/04/2011)
+[Canal 23: laSexta 2, laSexta 3, laSexta HD, C+ 2, Cuatro]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 24: Canal 7, Mírame, Canal 4 Tenerife]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 26: Nitro, Antena 3, Marca, 13]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 29: Boing, Tele5 HD, MTV, La 10]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 45: TVE HD, tdp]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 56: Canal 6 TeideVisión, ElDía]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 59: TV Canaria, TV Canaria 2, Antena 3 Canaria]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 60: La 1, La 2, 24h, Clan]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Teledeporte, Canal Ingeniería, Veo7, Intereconomía]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: laSexta, laSexta 3, Gol Televisión, Cuatro, Divinity, La Tienda en Casa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Tele5, FDF, laSiete, Disney Channel, Intereconomía]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, Neox, Nova, Veo7, AXN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valencia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valencia
new file mode 100755
index 0000000000..44c3560122
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valencia
@@ -0,0 +1,97 @@
+# DVB-T Valencia, Spain
+[Canal 23: TMV, Tele 7, Aprende ingles TV, Ed. Prensa Val.,R.Mediamed]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 55: TV3, 33, 3/24, K3/300]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 57: Canal 9, Punt 2, Popular TV, LP Teva, Radio 9, Si Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 58: TVE 1, La 2, 24H TVE, Clan TVE, RNE 1, RNE C, RNE 3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Veo, Sony TV en Veo, Tienda en Veo, Intereconomia, Teledeporte, R. Interec., R. Marca]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: Cuatro, CNN+, 40 Latino, Promo, La Sexta, Ser, 40 Princ., Cad. Dial]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, Telecinco 2, FDF, Cinco Shop, Disney Channel, Punto Radio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, Antena Neox, Antena Nova, Hogar 10, Onda Cero, Europa FM, Onda Melodia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valladolid b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valladolid
new file mode 100755
index 0000000000..31bf0accbe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Valladolid
@@ -0,0 +1,61 @@
+# DVB-T Valladolid
+[Canal 57: Clan TVE, 24H TVE, La 2, TVE 1, RNE1, RNE3, RNC]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Veo, Veo 2, Net TV, Teledeporte]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: Cuatro, CNN+, 40 Latino, La Sexta 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, Telecinco Sport, Telecinco Estrellas, Fly Music]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: Antena 3, Antena Neox, Antena Nova, La Sexta 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vilamarxant b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vilamarxant
new file mode 100755
index 0000000000..c355eef365
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vilamarxant
@@ -0,0 +1,25 @@
+# DVB-T Vilamarxant, Valencia, C. Valenciana, Spain.
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vitoria-Gasteiz b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vitoria-Gasteiz
new file mode 100755
index 0000000000..a475c8bd7a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Vitoria-Gasteiz
@@ -0,0 +1,74 @@
+# Channel names in use at 2009/07/12, in Channel 66 [fffe] is a scrambled channel.
+# In the generated *channels.conf file could be necesary to change Intereconomía, Radio Intereconomía, ONDA MELODÍA to Intereconomia, Radio Intereconomia, ONDA MELODIA for Totem to work well.
+[Canal 58: ETB1, ETB2, ETB3, ETBSAT, Euskadi Irratia, Gaztea, EiTB Irratia, Radio Euskadi, Radio Vitoria]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 63: La 1, La 2, 24h, Clan, RNE1, RNEC, RNE3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: Teledeporte, Canal Ingenieria, VEO7, SONY TV en VEO, Tienda en VEO, GUIDE PLUS+, Intereconomía, Radio Intereconomía, [fffe], RADIO MARCA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: laSexta, CUATRO, CNN+, 40 LATINO, CANAL CLUB, SER, 40 PRINCIPALES, CADENA DIAL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: Telecinco, FDF, LaSiete, Disney Channel, Cincoshop]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, ONDA CERO, EUROPA FM, ONDA MELODÍA, HOGAR 10]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Zaragoza b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Zaragoza
new file mode 100755
index 0000000000..e6aab40ead
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/es-Zaragoza
@@ -0,0 +1,62 @@
+# DVB-T Zaragoza (Aragón) [Spain] [es-Zaragoza]
+# Generated by Víctor Martínez Romanos <vmromanos@gmail.com>
+[Canal 63: TVE 1, TVE 2, 24H, CLAN/50, RNE1, RNEC, RNE3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 66: TELEDEPORTE, VEO TV, VEO 2, NET TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 67: CUATRO, CNN+, 40 LATINO, LA SEXTA 1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 68: T5 ESTRELLAS, T5 SPORT, TELECINCO, FLYMUSIC]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Canal 69: ANTENA 3, ANTENA.NEOX, ANTENA.NOVA, LA SEXTA 2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski
new file mode 100755
index 0000000000..7dda3262b5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Aanekoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Aanekoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[Aanekoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Aanekoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski_Konginkangas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski_Konginkangas
new file mode 100755
index 0000000000..ff13741eb2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Aanekoski_Konginkangas
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Aanekoski_Konginkangas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Aanekoski_Konginkangas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Aanekoski_Konginkangas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Aanekoski_Konginkangas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ahtari b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ahtari
new file mode 100755
index 0000000000..aa90ea2d90
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ahtari
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ahtari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Ahtari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Alajarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Alajarvi
new file mode 100755
index 0000000000..712483d1b8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Alajarvi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Alajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Alajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[Alajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[Alajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Anjalankoski_Ruotila b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Anjalankoski_Ruotila
new file mode 100755
index 0000000000..8ae1231955
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Anjalankoski_Ruotila
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Anjalankoski_Ruotila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Anjalankoski_Ruotila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Anjalankoski_Ruotila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[Anjalankoski_Ruotila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Anjalankoski_Ruotila]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Espoo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Espoo
new file mode 100755
index 0000000000..7d74fc1347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Espoo
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Eurajoki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Eurajoki
new file mode 100755
index 0000000000..31de9350d2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Eurajoki
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hameenlinna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hameenlinna
new file mode 100755
index 0000000000..92b4ecfcbc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hameenlinna
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hamina b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hamina
new file mode 100755
index 0000000000..3525cb0c47
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hamina
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hausjarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hausjarvi
new file mode 100755
index 0000000000..92b4ecfcbc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Hausjarvi
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Helsinki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Helsinki
new file mode 100755
index 0000000000..7d74fc1347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Helsinki
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jokioinen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jokioinen
new file mode 100755
index 0000000000..92b4ecfcbc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jokioinen
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jyvaskyla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jyvaskyla
new file mode 100755
index 0000000000..925c8252de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Jyvaskyla
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kaarina b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kaarina
new file mode 100755
index 0000000000..85ca3bd859
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kaarina
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kajaani b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kajaani
new file mode 100755
index 0000000000..3525cb0c47
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kajaani
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kangasala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kangasala
new file mode 100755
index 0000000000..cb27de2831
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kangasala
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Karkkila b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Karkkila
new file mode 100755
index 0000000000..7d74fc1347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Karkkila
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kiiminki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kiiminki
new file mode 100755
index 0000000000..925c8252de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kiiminki
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kokkola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kokkola
new file mode 100755
index 0000000000..925c8252de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kokkola
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kontiolahti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kontiolahti
new file mode 100755
index 0000000000..b7895d0f0a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kontiolahti
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kouvola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kouvola
new file mode 100755
index 0000000000..3525cb0c47
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kouvola
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kuopio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kuopio
new file mode 100755
index 0000000000..63be3cabcc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Kuopio
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lahti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lahti
new file mode 100755
index 0000000000..8147d50802
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lahti
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lappeenranta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lappeenranta
new file mode 100755
index 0000000000..b7895d0f0a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lappeenranta
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lohja b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lohja
new file mode 100755
index 0000000000..7d74fc1347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Lohja
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Loviisa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Loviisa
new file mode 100755
index 0000000000..7d74fc1347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Loviisa
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Mikkeli b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Mikkeli
new file mode 100755
index 0000000000..b7895d0f0a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Mikkeli
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nousiainen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nousiainen
new file mode 100755
index 0000000000..85ca3bd859
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nousiainen
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nurmijarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nurmijarvi
new file mode 100755
index 0000000000..7d74fc1347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Nurmijarvi
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Porvoo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Porvoo
new file mode 100755
index 0000000000..7d74fc1347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Porvoo
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Salo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Salo
new file mode 100755
index 0000000000..85ca3bd859
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Salo
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Savonlinna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Savonlinna
new file mode 100755
index 0000000000..72954131bd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Savonlinna
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Seinajoki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Seinajoki
new file mode 100755
index 0000000000..2f5d7e5491
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Seinajoki
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Tyrnava b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Tyrnava
new file mode 100755
index 0000000000..925c8252de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Tyrnava
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ulvila b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ulvila
new file mode 100755
index 0000000000..31de9350d2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ulvila
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vaasa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vaasa
new file mode 100755
index 0000000000..2f5d7e5491
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vaasa
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Valkeakoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Valkeakoski
new file mode 100755
index 0000000000..cb27de2831
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Valkeakoski
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vesilahti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vesilahti
new file mode 100755
index 0000000000..cb27de2831
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Vesilahti
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ylivieska b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ylivieska
new file mode 100755
index 0000000000..8147d50802
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-DNA-Ylivieska
@@ -0,0 +1,38 @@
+# 2014-03-08 Olli Salonen <olli.salonen@iki.fi>
+# generated from http://www.dna.fi/tuki-antenniverkon-nakyvyysalueet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 19/256
+ HIERARCHY = AUTO
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Ahovaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Ahovaara
new file mode 100755
index 0000000000..21abdbc039
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Ahovaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Enontekio_Ahovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Enontekio_Ahovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Hetta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Hetta
new file mode 100755
index 0000000000..6ff6b84513
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Hetta
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Enontekio_Hetta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Enontekio_Hetta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Kuttanen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Kuttanen
new file mode 100755
index 0000000000..f9a6af8241
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Enontekio_Kuttanen
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Enontekio_Kuttanen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[Enontekio_Kuttanen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Espoo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Espoo
new file mode 100755
index 0000000000..ceb906d82b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Espoo
@@ -0,0 +1,33 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Espoo-A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Espoo-B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Espoo-C]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Espoo-E]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[Espoo-D]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[Espoo-H]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Eurajoki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Eurajoki
new file mode 100755
index 0000000000..1d090a5310
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Eurajoki
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Eurajoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Eurajoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[Eurajoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Eurajoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Eurajoki]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Fiskars b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Fiskars
new file mode 100755
index 0000000000..0f84bb7a95
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Fiskars
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Fiskars]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Fiskars]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Fiskars]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Fiskars]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Haapavesi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Haapavesi
new file mode 100755
index 0000000000..8be1f62b91
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Haapavesi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Haapavesi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Haapavesi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Haapavesi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[Haapavesi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenkyro_Kyroskoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenkyro_Kyroskoski
new file mode 100755
index 0000000000..8a98791cc5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenkyro_Kyroskoski
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hameenkyro_Kyroskoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Hameenkyro_Kyroskoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Hameenkyro_Kyroskoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[Hameenkyro_Kyroskoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenlinna_Painokangas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenlinna_Painokangas
new file mode 100755
index 0000000000..9a56b2bba2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hameenlinna_Painokangas
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hameenlinna_Painokangas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Hameenlinna_Painokangas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Hameenlinna_Painokangas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hanko b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hanko
new file mode 100755
index 0000000000..ab08a14297
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hanko
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hanko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Hanko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[Hanko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Hanko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hartola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hartola
new file mode 100755
index 0000000000..d10df22d22
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hartola
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hartola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Hartola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Hartola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinavesi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinavesi
new file mode 100755
index 0000000000..b33bb39e58
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinavesi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Heinavesi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Heinavesi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Heinavesi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinola
new file mode 100755
index 0000000000..7a6f234e74
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Heinola
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Heinola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Heinola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Heinola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Heinola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi
new file mode 100755
index 0000000000..e11f89acb3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hyrynsalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyrynsalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyrynsalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Kyparavaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Kyparavaara
new file mode 100755
index 0000000000..f402d8afb2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Kyparavaara
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hyrynsalmi_Kyparavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyrynsalmi_Kyparavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyrynsalmi_Kyparavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Paljakka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Paljakka
new file mode 100755
index 0000000000..806a3c09fe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyrynsalmi_Paljakka
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hyrynsalmi_Paljakka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyrynsalmi_Paljakka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyrynsalmi_Paljakka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyvinkaa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyvinkaa
new file mode 100755
index 0000000000..e711b16d07
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Hyvinkaa
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Hyvinkaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyvinkaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyvinkaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Hyvinkaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ii_Raiskio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ii_Raiskio
new file mode 100755
index 0000000000..c5fda678d1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ii_Raiskio
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ii_Raiskio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Ii_Raiskio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Iisalmi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Iisalmi
new file mode 100755
index 0000000000..d281825129
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Iisalmi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Iisalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Iisalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen
new file mode 100755
index 0000000000..885d44b524
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ikaalinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[Ikaalinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Ikaalinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Ikaalinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen_Riitiala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen_Riitiala
new file mode 100755
index 0000000000..55d82022e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ikaalinen_Riitiala
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ikaalinen_Riitiala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Ikaalinen_Riitiala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[Ikaalinen_Riitiala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Ikaalinen_Riitiala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari
new file mode 100755
index 0000000000..31deb21278
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Inari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Inari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Janispaa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Janispaa
new file mode 100755
index 0000000000..37bd31e20c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Janispaa
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Inari_Janispaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Inari_Janispaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Naatamo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Naatamo
new file mode 100755
index 0000000000..ba843609e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Inari_Naatamo
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Inari_Naatamo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Inari_Naatamo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ivalo_Saarineitamovaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ivalo_Saarineitamovaara
new file mode 100755
index 0000000000..70181bbe2c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ivalo_Saarineitamovaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ivalo_Saarineitamovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Ivalo_Saarineitamovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jalasjarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jalasjarvi
new file mode 100755
index 0000000000..9bc7058220
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jalasjarvi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jalasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Jalasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Jalasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Jalasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Halli b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Halli
new file mode 100755
index 0000000000..5d06520a0a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Halli
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jamsa_Halli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Halli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Halli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Halli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Kaipola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Kaipola
new file mode 100755
index 0000000000..ca8e563f12
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Kaipola
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jamsa_Kaipola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Kaipola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Kaipola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Kaipola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Matkosvuori b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Matkosvuori
new file mode 100755
index 0000000000..eacacff3f5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Matkosvuori
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jamsa_Matkosvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Matkosvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Matkosvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Matkosvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Ouninpohja b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Ouninpohja
new file mode 100755
index 0000000000..70eb8e14a5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsa_Ouninpohja
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jamsa_Ouninpohja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Ouninpohja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsa_Ouninpohja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsankoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsankoski
new file mode 100755
index 0000000000..142be917e6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jamsankoski
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jamsankoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsankoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsankoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Jamsankoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joensuu_Vestinkallio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joensuu_Vestinkallio
new file mode 100755
index 0000000000..765ba1ce90
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joensuu_Vestinkallio
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Joensuu_Vestinkallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[Joensuu_Vestinkallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Joensuu_Vestinkallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joroinen_Puukkola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joroinen_Puukkola
new file mode 100755
index 0000000000..5fce8db426
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joroinen_Puukkola
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Joroinen_Puukkola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Joroinen_Puukkola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Joroinen_Puukkola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutsa_Lankia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutsa_Lankia
new file mode 100755
index 0000000000..cc44c8135e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutsa_Lankia
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Joutsa_Lankia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Joutsa_Lankia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Joutsa_Lankia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Joutsa_Lankia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutseno b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutseno
new file mode 100755
index 0000000000..80337fc796
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Joutseno
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Joutseno]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Joutseno]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[Joutseno]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Joutseno]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Joutseno]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juupajoki_Kopsamo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juupajoki_Kopsamo
new file mode 100755
index 0000000000..a99af77e4d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juupajoki_Kopsamo
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Juupajoki_Kopsamo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Juupajoki_Kopsamo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Juupajoki_Kopsamo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juva b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juva
new file mode 100755
index 0000000000..ab8a15e59b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Juva
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Juva]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Juva]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Juva]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Juva]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla
new file mode 100755
index 0000000000..02ced9e360
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla
@@ -0,0 +1,33 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jyvaskyla-A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Jyvaskyla-B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Jyvaskyla-C]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Jyvaskyla-E]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[Jyvaskyla-D]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Jyvaskyla-H]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla_Vaajakoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla_Vaajakoski
new file mode 100755
index 0000000000..92b5ac963c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Jyvaskyla_Vaajakoski
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Jyvaskyla_Vaajakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Jyvaskyla_Vaajakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Jyvaskyla_Vaajakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaavi_Sivakkavaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaavi_Sivakkavaara
new file mode 100755
index 0000000000..7595a39865
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaavi_Sivakkavaara
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kaavi_Sivakkavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Kaavi_Sivakkavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Kaavi_Sivakkavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kajaani_Pollyvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kajaani_Pollyvaara
new file mode 100755
index 0000000000..3ea7b90f46
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kajaani_Pollyvaara
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kajaani_Pollyvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Kajaani_Pollyvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Kajaani_Pollyvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kalajoki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kalajoki
new file mode 100755
index 0000000000..cab796dc05
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kalajoki
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kalajoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Kalajoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Kalajoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangaslampi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangaslampi
new file mode 100755
index 0000000000..d84b2a9ee8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangaslampi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kangaslampi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Kangaslampi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Kangaslampi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Kangaslampi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangasniemi_Turkinmaki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangasniemi_Turkinmaki
new file mode 100755
index 0000000000..56476e6bf2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kangasniemi_Turkinmaki
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kangasniemi_Turkinmaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Kangasniemi_Turkinmaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Kangasniemi_Turkinmaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Kangasniemi_Turkinmaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kankaanpaa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kankaanpaa
new file mode 100755
index 0000000000..a3df7ba596
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kankaanpaa
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kankaanpaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Kankaanpaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Kankaanpaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Kankaanpaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karigasniemi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karigasniemi
new file mode 100755
index 0000000000..60548c723b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karigasniemi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Karigasniemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Karigasniemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karkkila b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karkkila
new file mode 100755
index 0000000000..d598f4719f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karkkila
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Karkkila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Karkkila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[Karkkila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Karkkila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karstula b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karstula
new file mode 100755
index 0000000000..dfd3001672
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karstula
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Karstula]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Karstula]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Karstula]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karvia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karvia
new file mode 100755
index 0000000000..51e89b7bea
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Karvia
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Karvia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Karvia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Karvia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaunispaa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaunispaa
new file mode 100755
index 0000000000..e9fea9c7f5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kaunispaa
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kaunispaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Kaunispaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kemijarvi_Suomutunturi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kemijarvi_Suomutunturi
new file mode 100755
index 0000000000..dac5d9324b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kemijarvi_Suomutunturi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kemijarvi_Suomutunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Kemijarvi_Suomutunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kerimaki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kerimaki
new file mode 100755
index 0000000000..68f45d1049
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kerimaki
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kerimaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Kerimaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Kerimaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[Kerimaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu
new file mode 100755
index 0000000000..dd49b5b6a0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Keuruu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Keuruu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Keuruu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Keuruu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu_Haapamaki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu_Haapamaki
new file mode 100755
index 0000000000..cfb9b0e2a0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Keuruu_Haapamaki
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Keuruu_Haapamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Keuruu_Haapamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Keuruu_Haapamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Keuruu_Haapamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kihnio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kihnio
new file mode 100755
index 0000000000..7c5c99241e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kihnio
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kihnio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[Kihnio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Kihnio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Kihnio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kiihtelysvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kiihtelysvaara
new file mode 100755
index 0000000000..52e60b8e30
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kiihtelysvaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kiihtelysvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Kiihtelysvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kilpisjarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kilpisjarvi
new file mode 100755
index 0000000000..9d3435c425
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kilpisjarvi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kilpisjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[Kilpisjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kittila_Levitunturi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kittila_Levitunturi
new file mode 100755
index 0000000000..ae4c1c9033
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kittila_Levitunturi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kittila_Levitunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Kittila_Levitunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kolari_Vuolittaja b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kolari_Vuolittaja
new file mode 100755
index 0000000000..f507750a14
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kolari_Vuolittaja
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kolari_Vuolittaja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Kolari_Vuolittaja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Koli b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Koli
new file mode 100755
index 0000000000..034bf2d44f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Koli
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Koli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Koli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Koli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Koli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korpilahti_Vaarunvuori b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korpilahti_Vaarunvuori
new file mode 100755
index 0000000000..7fa3ed6590
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korpilahti_Vaarunvuori
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Korpilahti_Vaarunvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Korpilahti_Vaarunvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Korpilahti_Vaarunvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Korpilahti_Vaarunvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korppoo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korppoo
new file mode 100755
index 0000000000..6c84241465
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Korppoo
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Korppoo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Korppoo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Korppoo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Korppoo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kruunupyy b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kruunupyy
new file mode 100755
index 0000000000..65d86c4c71
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kruunupyy
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kruunupyy]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Kruunupyy]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Kruunupyy]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[Kruunupyy]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Kruunupyy]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Haukela b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Haukela
new file mode 100755
index 0000000000..c3a3bd8bda
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Haukela
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuhmo_Haukela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmo_Haukela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmo_Haukela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Lentiira b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Lentiira
new file mode 100755
index 0000000000..112799934d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Lentiira
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuhmo_Lentiira]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmo_Lentiira]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmo_Lentiira]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Niva b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Niva
new file mode 100755
index 0000000000..6f7aa2cbd3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmo_Niva
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuhmo_Niva]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmo_Niva]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmo_Niva]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen
new file mode 100755
index 0000000000..53d2de9e94
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuhmoinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Harjunsalmi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Harjunsalmi
new file mode 100755
index 0000000000..059df911d8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Harjunsalmi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuhmoinen_Harjunsalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen_Harjunsalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen_Harjunsalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen_Harjunsalmi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Puukkoinen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Puukkoinen
new file mode 100755
index 0000000000..113e0f45f7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuhmoinen_Puukkoinen
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuhmoinen_Puukkoinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen_Puukkoinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuhmoinen_Puukkoinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuopio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuopio
new file mode 100755
index 0000000000..eb39e5f087
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuopio
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuopio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuopio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuopio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuopio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuopio]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kurikka_Kesti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kurikka_Kesti
new file mode 100755
index 0000000000..c34cfe6220
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kurikka_Kesti
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kurikka_Kesti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Kurikka_Kesti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Kurikka_Kesti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Kurikka_Kesti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kustavi_Viherlahti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kustavi_Viherlahti
new file mode 100755
index 0000000000..ecef74dd21
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kustavi_Viherlahti
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kustavi_Viherlahti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Kustavi_Viherlahti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[Kustavi_Viherlahti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Kustavi_Viherlahti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuusamo_Hamppulampi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuusamo_Hamppulampi
new file mode 100755
index 0000000000..6ce9243a0d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kuusamo_Hamppulampi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kuusamo_Hamppulampi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Kuusamo_Hamppulampi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kyyjarvi_Noposenaho b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kyyjarvi_Noposenaho
new file mode 100755
index 0000000000..d3deab819b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Kyyjarvi_Noposenaho
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Kyyjarvi_Noposenaho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Kyyjarvi_Noposenaho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[Kyyjarvi_Noposenaho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lahti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lahti
new file mode 100755
index 0000000000..f4c89b81bc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lahti
@@ -0,0 +1,33 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Lahti-A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[Lahti-B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Lahti-C]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Lahti-E]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Lahti-D]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Lahti-H]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lapua b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lapua
new file mode 100755
index 0000000000..9084440f93
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lapua
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Lapua]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Lapua]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Lapua]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Lapua]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Lapua]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa
new file mode 100755
index 0000000000..3c484aeb64
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Laukaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Laukaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Laukaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Laukaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa_Vihtavuori b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa_Vihtavuori
new file mode 100755
index 0000000000..5bc93a78e5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Laukaa_Vihtavuori
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Laukaa_Vihtavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Laukaa_Vihtavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Laukaa_Vihtavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Laukaa_Vihtavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lavia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lavia
new file mode 100755
index 0000000000..f2f13916f1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lavia
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Lavia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Lavia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Lavia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lohja b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lohja
new file mode 100755
index 0000000000..d040f9b425
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Lohja
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Lohja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Lohja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Lohja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Lohja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Loimaa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Loimaa
new file mode 100755
index 0000000000..0b6aad8704
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Loimaa
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Loimaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Loimaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Loimaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Loimaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luhanka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luhanka
new file mode 100755
index 0000000000..f6407ce322
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luhanka
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Luhanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Luhanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Luhanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Luhanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luopioinen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luopioinen
new file mode 100755
index 0000000000..9ed4e3f279
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Luopioinen
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Luopioinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Luopioinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Luopioinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Luopioinen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantta
new file mode 100755
index 0000000000..e2014052e2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantta
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Mantta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Mantta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Mantta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Mantta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantyharju b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantyharju
new file mode 100755
index 0000000000..3b7f127a32
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mantyharju
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Mantyharju]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Mantyharju]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Mantyharju]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mikkeli b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mikkeli
new file mode 100755
index 0000000000..f523878c60
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Mikkeli
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Mikkeli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[Mikkeli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Mikkeli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[Mikkeli]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Muonio_Olostunturi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Muonio_Olostunturi
new file mode 100755
index 0000000000..bfdf0c738e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Muonio_Olostunturi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Muonio_Olostunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Muonio_Olostunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia
new file mode 100755
index 0000000000..208d1c43e5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nilsia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Nilsia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Nilsia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Nilsia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Keski-Siikajarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Keski-Siikajarvi
new file mode 100755
index 0000000000..bfbc561ad9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Keski-Siikajarvi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nilsia_Keski-Siikajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Nilsia_Keski-Siikajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[Nilsia_Keski-Siikajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Pisa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Pisa
new file mode 100755
index 0000000000..8c8ee34ff5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nilsia_Pisa
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nilsia_Pisa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Nilsia_Pisa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Nilsia_Pisa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia
new file mode 100755
index 0000000000..2a2b38030b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nokia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Nokia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Nokia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Nokia]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia_Siuro b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia_Siuro
new file mode 100755
index 0000000000..1ba3ccacbb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nokia_Siuro
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nokia_Siuro]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Nokia_Siuro]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[Nokia_Siuro]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Nokia_Siuro]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nummi-Pusula_Hyonola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nummi-Pusula_Hyonola
new file mode 100755
index 0000000000..08840cc3b9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nummi-Pusula_Hyonola
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nummi-Pusula_Hyonola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Nummi-Pusula_Hyonola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[Nummi-Pusula_Hyonola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Nummi-Pusula_Hyonola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_Njallavaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_Njallavaara
new file mode 100755
index 0000000000..e1c1c3e0fd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_Njallavaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nuorgam_Njallavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Nuorgam_Njallavaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_raja b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_raja
new file mode 100755
index 0000000000..2b2cb3cdab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nuorgam_raja
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nuorgam_raja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Nuorgam_raja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Konnanvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Konnanvaara
new file mode 100755
index 0000000000..7cd3d91d61
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Konnanvaara
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nurmes_Konnanvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Nurmes_Konnanvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Nurmes_Konnanvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Nurmes_Konnanvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Kortevaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Kortevaara
new file mode 100755
index 0000000000..3e118ad492
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Nurmes_Kortevaara
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Nurmes_Kortevaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Nurmes_Kortevaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Nurmes_Kortevaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Orivesi_Talviainen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Orivesi_Talviainen
new file mode 100755
index 0000000000..149782ea78
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Orivesi_Talviainen
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Orivesi_Talviainen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Orivesi_Talviainen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Orivesi_Talviainen]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Oulu b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Oulu
new file mode 100755
index 0000000000..0e3906a22d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Oulu
@@ -0,0 +1,33 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Oulu-A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[Oulu-B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Oulu-C]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[Oulu-E]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Oulu-D]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Oulu-H]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki
new file mode 100755
index 0000000000..47246b4be8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Padasjoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[Padasjoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Padasjoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Padasjoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki_Arrakoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki_Arrakoski
new file mode 100755
index 0000000000..c8c1b05b50
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Padasjoki_Arrakoski
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Padasjoki_Arrakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Padasjoki_Arrakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Padasjoki_Arrakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[Padasjoki_Arrakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Paltamo_Kivesvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Paltamo_Kivesvaara
new file mode 100755
index 0000000000..56f8ba05f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Paltamo_Kivesvaara
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Paltamo_Kivesvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Paltamo_Kivesvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[Paltamo_Kivesvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parainen_Houtskari b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parainen_Houtskari
new file mode 100755
index 0000000000..e18781426d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parainen_Houtskari
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Parainen_Houtskari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Parainen_Houtskari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Parainen_Houtskari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Parainen_Houtskari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parikkala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parikkala
new file mode 100755
index 0000000000..f0f52f7abf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parikkala
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Parikkala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Parikkala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[Parikkala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[Parikkala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parkano_Sopukallio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parkano_Sopukallio
new file mode 100755
index 0000000000..62e85079b7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Parkano_Sopukallio
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Parkano_Sopukallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Parkano_Sopukallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Parkano_Sopukallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Parkano_Sopukallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello
new file mode 100755
index 0000000000..2cbd28eca0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pello]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Pello]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello_Ratasvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello_Ratasvaara
new file mode 100755
index 0000000000..ff7f6607b3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pello_Ratasvaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pello_Ratasvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Pello_Ratasvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Perho b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Perho
new file mode 100755
index 0000000000..0a7a2dc9b0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Perho
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Perho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Perho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Perho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Perho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pernaja b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pernaja
new file mode 100755
index 0000000000..5459e885fc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pernaja
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pernaja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Pernaja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Pernaja]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pieksamaki_Halkokumpu b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pieksamaki_Halkokumpu
new file mode 100755
index 0000000000..f03f9a047b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pieksamaki_Halkokumpu
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pieksamaki_Halkokumpu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Pieksamaki_Halkokumpu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Pieksamaki_Halkokumpu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pihtipudas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pihtipudas
new file mode 100755
index 0000000000..42cdd29303
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pihtipudas
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pihtipudas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Pihtipudas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[Pihtipudas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Porvoo_Suomenkyla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Porvoo_Suomenkyla
new file mode 100755
index 0000000000..7b5e79dfb1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Porvoo_Suomenkyla
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Porvoo_Suomenkyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Porvoo_Suomenkyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Porvoo_Suomenkyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Porvoo_Suomenkyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Posio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Posio
new file mode 100755
index 0000000000..02586479c0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Posio
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Posio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Posio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi
new file mode 100755
index 0000000000..dc85d9ab34
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pudasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Pudasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Pudasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Iso-Syote b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Iso-Syote
new file mode 100755
index 0000000000..24cebddf36
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Iso-Syote
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pudasjarvi_Iso-Syote]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Pudasjarvi_Iso-Syote]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Pudasjarvi_Iso-Syote]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Kangasvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Kangasvaara
new file mode 100755
index 0000000000..cb911634d3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pudasjarvi_Kangasvaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pudasjarvi_Kangasvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Pudasjarvi_Kangasvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Puolanka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Puolanka
new file mode 100755
index 0000000000..3370a9a6a4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Puolanka
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Puolanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Puolanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[Puolanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Puolanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhatunturi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhatunturi
new file mode 100755
index 0000000000..c50057614c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhatunturi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pyhatunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Pyhatunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhavuori b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhavuori
new file mode 100755
index 0000000000..ad2326542b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pyhavuori
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pyhavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Pyhavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[Pyhavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pylkonmaki_Karankajarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pylkonmaki_Karankajarvi
new file mode 100755
index 0000000000..2d7ef17825
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Pylkonmaki_Karankajarvi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Pylkonmaki_Karankajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Pylkonmaki_Karankajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Pylkonmaki_Karankajarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Mestauskallio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Mestauskallio
new file mode 100755
index 0000000000..e4cc7b198b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Mestauskallio
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Raahe_Mestauskallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Raahe_Mestauskallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[Raahe_Mestauskallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Raahe_Mestauskallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Piehinki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Piehinki
new file mode 100755
index 0000000000..1b3836d97c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Raahe_Piehinki
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Raahe_Piehinki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Raahe_Piehinki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[Raahe_Piehinki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Haasionmaa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Haasionmaa
new file mode 100755
index 0000000000..837a10f396
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Haasionmaa
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ranua_Haasionmaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Ranua_Haasionmaa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Leppiaho b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Leppiaho
new file mode 100755
index 0000000000..94d3eef754
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ranua_Leppiaho
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ranua_Leppiaho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Ranua_Leppiaho]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautavaara_Angervikko b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautavaara_Angervikko
new file mode 100755
index 0000000000..c89e4bf41c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautavaara_Angervikko
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rautavaara_Angervikko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Rautavaara_Angervikko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[Rautavaara_Angervikko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Rautavaara_Angervikko]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautjarvi_Simpele b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautjarvi_Simpele
new file mode 100755
index 0000000000..2d4c254f1c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rautjarvi_Simpele
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rautjarvi_Simpele]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Rautjarvi_Simpele]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Rautjarvi_Simpele]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ristijarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ristijarvi
new file mode 100755
index 0000000000..79a58c399f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ristijarvi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ristijarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Ristijarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Ristijarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi
new file mode 100755
index 0000000000..87a65b174f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rovaniemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Kaihuanvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Kaihuanvaara
new file mode 100755
index 0000000000..3808ebc846
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Kaihuanvaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rovaniemi_Kaihuanvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi_Kaihuanvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Karhuvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Karhuvaara
new file mode 100755
index 0000000000..069ecb4ba9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Karhuvaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rovaniemi_Karhuvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi_Karhuvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Marasenkallio b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Marasenkallio
new file mode 100755
index 0000000000..6c8d5421af
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Marasenkallio
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rovaniemi_Marasenkallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi_Marasenkallio]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Rantalaki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Rantalaki
new file mode 100755
index 0000000000..fe3ea4c5fc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Rantalaki
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rovaniemi_Rantalaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi_Rantalaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sonka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sonka
new file mode 100755
index 0000000000..932b409cd7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sonka
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rovaniemi_Sonka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi_Sonka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sorviselka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sorviselka
new file mode 100755
index 0000000000..feb3bcf493
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Rovaniemi_Sorviselka
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Rovaniemi_Sorviselka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[Rovaniemi_Sorviselka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruka
new file mode 100755
index 0000000000..de41ddc747
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruka
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ruka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[Ruka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Ruka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruovesi_Storminiemi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruovesi_Storminiemi
new file mode 100755
index 0000000000..ac465cbf44
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ruovesi_Storminiemi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ruovesi_Storminiemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Ruovesi_Storminiemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Ruovesi_Storminiemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[Ruovesi_Storminiemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi
new file mode 100755
index 0000000000..18c923f8d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Saarijarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Saarijarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Saarijarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[Saarijarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Kalmari b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Kalmari
new file mode 100755
index 0000000000..77d5adeb9d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Kalmari
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Saarijarvi_Kalmari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Saarijarvi_Kalmari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Saarijarvi_Kalmari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Mahlu b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Mahlu
new file mode 100755
index 0000000000..48324d0eed
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Saarijarvi_Mahlu
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Saarijarvi_Mahlu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Saarijarvi_Mahlu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Saarijarvi_Mahlu]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Hirvasvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Hirvasvaara
new file mode 100755
index 0000000000..e1410a0e3a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Hirvasvaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Salla_Hirvasvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Salla_Hirvasvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Ihistysjanka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Ihistysjanka
new file mode 100755
index 0000000000..0d857b590c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Ihistysjanka
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Salla_Ihistysjanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[Salla_Ihistysjanka]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Naruska b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Naruska
new file mode 100755
index 0000000000..06bc1bab1d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Naruska
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Salla_Naruska]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Salla_Naruska]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sallatunturi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sallatunturi
new file mode 100755
index 0000000000..54a55540af
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sallatunturi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Salla_Sallatunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Salla_Sallatunturi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sarivaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sarivaara
new file mode 100755
index 0000000000..eb9bbc0dec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salla_Sarivaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Salla_Sarivaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Salla_Sarivaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salo_Isokyla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salo_Isokyla
new file mode 100755
index 0000000000..42df3b49a9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Salo_Isokyla
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Salo_Isokyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Salo_Isokyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[Salo_Isokyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Salo_Isokyla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Martti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Martti
new file mode 100755
index 0000000000..aafbdcbdfb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Martti
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Savukoski_Martti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Savukoski_Martti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Tanhua b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Tanhua
new file mode 100755
index 0000000000..91f5fa75d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Savukoski_Tanhua
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Savukoski_Tanhua]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Savukoski_Tanhua]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Siilinjarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Siilinjarvi
new file mode 100755
index 0000000000..7fc1f47379
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Siilinjarvi
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Siilinjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[Siilinjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[Siilinjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Siilinjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Simo_Viantie b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Simo_Viantie
new file mode 100755
index 0000000000..580c7bdddc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Simo_Viantie
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Simo_Viantie]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Simo_Viantie]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Simo_Viantie]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sipoo_Norrkulla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sipoo_Norrkulla
new file mode 100755
index 0000000000..abfb413de2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sipoo_Norrkulla
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Sipoo_Norrkulla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Sipoo_Norrkulla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Sipoo_Norrkulla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Sipoo_Norrkulla]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Pittiovaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Pittiovaara
new file mode 100755
index 0000000000..a123f64392
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Pittiovaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Sodankyla_Pittiovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Sodankyla_Pittiovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Vuotso b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Vuotso
new file mode 100755
index 0000000000..9c60b77143
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sodankyla_Vuotso
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Sodankyla_Vuotso]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[Sodankyla_Vuotso]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sulkava_Vaatalanmaki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sulkava_Vaatalanmaki
new file mode 100755
index 0000000000..31bdd61f4f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sulkava_Vaatalanmaki
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Sulkava_Vaatalanmaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Sulkava_Vaatalanmaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Sulkava_Vaatalanmaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ala-Vuokki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ala-Vuokki
new file mode 100755
index 0000000000..0878a88eec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ala-Vuokki
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Suomussalmi_Ala-Vuokki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Suomussalmi_Ala-Vuokki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ammansaari b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ammansaari
new file mode 100755
index 0000000000..9afcefffa3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Ammansaari
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Suomussalmi_Ammansaari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Suomussalmi_Ammansaari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Juntusranta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Juntusranta
new file mode 100755
index 0000000000..66c4e5b58f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Juntusranta
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Suomussalmi_Juntusranta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Suomussalmi_Juntusranta]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Myllylahti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Myllylahti
new file mode 100755
index 0000000000..9630977d3c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Suomussalmi_Myllylahti
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Suomussalmi_Myllylahti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Suomussalmi_Myllylahti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sysma_Liikola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sysma_Liikola
new file mode 100755
index 0000000000..9db4424603
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Sysma_Liikola
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Sysma_Liikola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Sysma_Liikola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Sysma_Liikola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Sysma_Liikola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski
new file mode 100755
index 0000000000..c307ae4966
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Taivalkoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Taivalkoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski_Taivalvaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski_Taivalvaara
new file mode 100755
index 0000000000..ff81bf0225
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Taivalkoski_Taivalvaara
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Taivalkoski_Taivalvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Taivalkoski_Taivalvaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammela b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammela
new file mode 100755
index 0000000000..f537bef28b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammela
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Tammela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Tammela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Tammela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Tammela]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Tammela]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammisaari b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammisaari
new file mode 100755
index 0000000000..5248fd2209
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tammisaari
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Tammisaari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[Tammisaari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[Tammisaari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[Tammisaari]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere
new file mode 100755
index 0000000000..27cf3a7ce7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere
@@ -0,0 +1,33 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Tampere-A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere-B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere-C]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere-E]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere-D]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere-H]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere_Pyynikki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere_Pyynikki
new file mode 100755
index 0000000000..03e8eccaca
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tampere_Pyynikki
@@ -0,0 +1,28 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Tampere_Pyynikki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere_Pyynikki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere_Pyynikki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere_Pyynikki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[Tampere_Pyynikki]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tervola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tervola
new file mode 100755
index 0000000000..d2c2d949b1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Tervola
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Tervola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[Tervola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[Tervola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Turku b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Turku
new file mode 100755
index 0000000000..e3907a6255
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Turku
@@ -0,0 +1,33 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Turku-A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Turku-B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[Turku-C]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Turku-E]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Turku-D]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[Turku-H]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki
new file mode 100755
index 0000000000..b884a17a1e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Utsjoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Utsjoki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Nuvvus b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Nuvvus
new file mode 100755
index 0000000000..66d35a3a26
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Nuvvus
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Utsjoki_Nuvvus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Utsjoki_Nuvvus]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Outakoski b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Outakoski
new file mode 100755
index 0000000000..53a75af892
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Outakoski
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Utsjoki_Outakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Utsjoki_Outakoski]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Polvarniemi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Polvarniemi
new file mode 100755
index 0000000000..0ee4cebd5a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Polvarniemi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Utsjoki_Polvarniemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[Utsjoki_Polvarniemi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Rovisuvanto b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Rovisuvanto
new file mode 100755
index 0000000000..7459a8d611
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Rovisuvanto
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Utsjoki_Rovisuvanto]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[Utsjoki_Rovisuvanto]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Tenola b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Tenola
new file mode 100755
index 0000000000..96504393de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Utsjoki_Tenola
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Utsjoki_Tenola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Utsjoki_Tenola]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Uusikaupunki_Orivo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Uusikaupunki_Orivo
new file mode 100755
index 0000000000..abe1f7f1d3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Uusikaupunki_Orivo
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Uusikaupunki_Orivo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Uusikaupunki_Orivo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Uusikaupunki_Orivo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[Uusikaupunki_Orivo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaala
new file mode 100755
index 0000000000..86e877327c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaala
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Vaala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[Vaala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Vaala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaasa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaasa
new file mode 100755
index 0000000000..7826313c84
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vaasa
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Vaasa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Vaasa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Vaasa]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Valtimo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Valtimo
new file mode 100755
index 0000000000..81e824558c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Valtimo
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Valtimo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[Valtimo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[Valtimo]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Jyranvuori b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Jyranvuori
new file mode 100755
index 0000000000..26582a8371
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Jyranvuori
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Vammala_Jyranvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[Vammala_Jyranvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Vammala_Jyranvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[Vammala_Jyranvuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Roismala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Roismala
new file mode 100755
index 0000000000..53f37934c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Roismala
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Vammala_Roismala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[Vammala_Roismala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Vammala_Roismala]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Savi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Savi
new file mode 100755
index 0000000000..189afb4ae2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vammala_Savi
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Vammala_Savi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Vammala_Savi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[Vammala_Savi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vantaa_Hakunila b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vantaa_Hakunila
new file mode 100755
index 0000000000..af493a1d0a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vantaa_Hakunila
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Vantaa_Hakunila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[Vantaa_Hakunila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[Vantaa_Hakunila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[Vantaa_Hakunila]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Varpaisjarvi_Honkamaki b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Varpaisjarvi_Honkamaki
new file mode 100755
index 0000000000..5bdf974246
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Varpaisjarvi_Honkamaki
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Varpaisjarvi_Honkamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[Varpaisjarvi_Honkamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[Varpaisjarvi_Honkamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Varpaisjarvi_Honkamaki]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Virrat_Lappavuori b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Virrat_Lappavuori
new file mode 100755
index 0000000000..61f12b0b43
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Virrat_Lappavuori
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Virrat_Lappavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[Virrat_Lappavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[Virrat_Lappavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[Virrat_Lappavuori]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vuokatti b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vuokatti
new file mode 100755
index 0000000000..5a78cf36f6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Vuokatti
@@ -0,0 +1,23 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Vuokatti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Vuokatti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[Vuokatti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[Vuokatti]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Ainiovaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Ainiovaara
new file mode 100755
index 0000000000..ebd72b9074
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Ainiovaara
@@ -0,0 +1,18 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ylitornio_Ainiovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Ylitornio_Ainiovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[Ylitornio_Ainiovaara]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Raanujarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Raanujarvi
new file mode 100755
index 0000000000..885c18f534
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Ylitornio_Raanujarvi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Ylitornio_Raanujarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[Ylitornio_Raanujarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllas
new file mode 100755
index 0000000000..0488cfb8dc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllas
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Yllas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[Yllas]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllasjarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllasjarvi
new file mode 100755
index 0000000000..67900896a0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fi-Yllasjarvi
@@ -0,0 +1,13 @@
+# 2014-04-18 Antti Palosaari <crope@iki.fi>
+# generated from http://www.digita.fi/kuluttajat/tv/nakyvyysalueet/kanavanumerot_ja_taajuudet
+
+[Yllasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[Yllasjarvi]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fr-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fr-All
new file mode 100755
index 0000000000..c3eba11b2e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/fr-All
@@ -0,0 +1,481 @@
+# France ALL (All channel 21 to 60)
+[UHF 21]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 22]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 23]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 24]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 25]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 26]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 27]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 28]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 29]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 30]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 31]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 32]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 33]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 34]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 35]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 36]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 37]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 38]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 39]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 40]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 41]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 42]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 43]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 44]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 45]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 46]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 47]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 48]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 49]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 50]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 51]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 52]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 53]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 54]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 55]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 56]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 57]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 58]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 59]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[UHF 60]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/gr-Athens b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/gr-Athens
new file mode 100755
index 0000000000..28e6c05a4b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/gr-Athens
@@ -0,0 +1,95 @@
+# Initial scan config for DVB-T in Athens Greece
+# Created from the frequencies listed in
+# http://www.satspot.gr/television/channels/160-tv-sixnotites-attiki
+# and the actual service names for comments.
+
+# ART, ANT1, ALPHA, E
+[Digea 01]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# STAR, M.tv, SKAI, MEGA
+[Digea 02]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Vouli, Kosmos, N Plus, Deutero, N1, N HD, Trito, Proto
+[DT DIGITAL 01]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# DW, PROTO, KOSMOS, RIK, TRITO, TV 5, Europe, BBC World News
+[DT DIGITAL 02]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# BLUE SKY, ATTICA TV, AB CHANNEL, CHANNEL 9, ACTION24
+[MULTI ATTIKI 01]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# KONTRA, MAD TV, EXTRA CHANNEL, HIGH TV
+[MULTI ATTIKI 02]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# NICKELODEON, SMILE, SBC, MTV GREECE
+[MULTI ATTIKI 03]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hk-HongKong b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hk-HongKong
new file mode 100755
index 0000000000..1e2d136d40
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hk-HongKong
@@ -0,0 +1,94 @@
+# Hong Kong (DMB-TH)
+
+# TVB (band 35)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# ATV (band 37)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# Simulcast (band 22)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Simulcast (band 30)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Simulcast (band 32)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Simulcast (band 40)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 628000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# Simulcast (band 43)
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hr-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hr-All
new file mode 100755
index 0000000000..2919099bea
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hr-All
@@ -0,0 +1,315 @@
+# Croatia, whole country
+# Created from http://www.oiv.hr/broadcasting/tables/dtv_hr.aspx
+# and from http://www.oiv.hr/broadcasting/tables/dtv_channel_hr.aspx
+[D1 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D2 MUXA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D4 MUXA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D5 MUXA, D9 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D5 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[d72 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D6 MUXA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D7 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D8 MUXA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D8 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[d71 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D3 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D1 MUXA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D2 MUXB]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D4 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D1 MUXB, D3 MUXA, D6 MUXB]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D5 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SLO MUXA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D3 MUXB, D4 MUXB]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D7 MUXA, D9 MUXA]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D5 MUXB, D8 MUXB]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D6 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Tusti Vrh MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D2 MUXD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D7 MUXB, D9 MUXB]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[D5 MFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Bekescsaba b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Bekescsaba
new file mode 100755
index 0000000000..dac2e7b0ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Bekescsaba
@@ -0,0 +1,53 @@
+# Hungary / Bekescsaba
+#
+# A.multiplex UHF-38:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-54:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-65:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Budapest b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Budapest
new file mode 100755
index 0000000000..b4c17b357d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Budapest
@@ -0,0 +1,53 @@
+# Hungary / Budapest
+#
+# A.multiplex UHF-38:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-55:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-62:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Csavoly-Kiskoros b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Csavoly-Kiskoros
new file mode 100755
index 0000000000..9b88371d5b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Csavoly-Kiskoros
@@ -0,0 +1,42 @@
+# Hungary / Csavoly-Kiskoros
+#
+# A.multiplex UHF-45:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-00:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+# T 746000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+#
+# C.multiplex UHF-68:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Debrecen-Komadi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Debrecen-Komadi
new file mode 100755
index 0000000000..7395939cef
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Debrecen-Komadi
@@ -0,0 +1,53 @@
+# Hungary / Debrecen-Komadi
+#
+# A.multiplex UHF-46:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-51:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-62:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Fehergyarmat b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Fehergyarmat
new file mode 100755
index 0000000000..dbfdda0640
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Fehergyarmat
@@ -0,0 +1,42 @@
+# Hungary / Fehergyarmat
+#
+# A.multiplex UHF-58:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-00:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+# T 714000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+#
+# C.multiplex UHF-38:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gerecse-Dorog-Tatabanya b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gerecse-Dorog-Tatabanya
new file mode 100755
index 0000000000..1a14795fcb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gerecse-Dorog-Tatabanya
@@ -0,0 +1,53 @@
+# Hungary / Gerecse-Dorog-Tatabanya
+#
+# A.multiplex UHF-64:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-29:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-63:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gyor b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gyor
new file mode 100755
index 0000000000..5ecd59c583
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Gyor
@@ -0,0 +1,53 @@
+# Hungary / Gyor
+#
+# A.multiplex UHF-42:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-25:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-61:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kabhegy-Kaposvar-Tamasi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kabhegy-Kaposvar-Tamasi
new file mode 100755
index 0000000000..6c5cbfe271
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kabhegy-Kaposvar-Tamasi
@@ -0,0 +1,42 @@
+# Hungary / Kabhegy-Kaposvar-Tamasi
+#
+# A.multiplex UHF-64:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-00:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+# T 506000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+#
+# C.multiplex UHF-61:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karancs-Nagy-Hideg-hegy-Balassagyarmat-Godollo-Salgotarjan-Vac b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karancs-Nagy-Hideg-hegy-Balassagyarmat-Godollo-Salgotarjan-Vac
new file mode 100755
index 0000000000..2b2cab5855
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karancs-Nagy-Hideg-hegy-Balassagyarmat-Godollo-Salgotarjan-Vac
@@ -0,0 +1,53 @@
+# Hungary / Karancs-Nagy-Hideg-hegy-Balassagyarmat-Godollo-Salgotarjan-Vac
+#
+# A.multiplex UHF-38:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-55:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-62:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karcag b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karcag
new file mode 100755
index 0000000000..ae6390a53b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Karcag
@@ -0,0 +1,53 @@
+# Hungary / Karcag
+#
+# A.multiplex UHF-46:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-30:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-64:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kecskemet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kecskemet
new file mode 100755
index 0000000000..cf9ffada7b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kecskemet
@@ -0,0 +1,53 @@
+# Hungary / Kecskemet
+#
+# A.multiplex UHF-56:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-39:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-68:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kekes-Cegled-Eger-Miskolctapolca-Ozd b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kekes-Cegled-Eger-Miskolctapolca-Ozd
new file mode 100755
index 0000000000..58afcd96b8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Kekes-Cegled-Eger-Miskolctapolca-Ozd
@@ -0,0 +1,53 @@
+# Hungary / Kekes-Cegled-Miskolctapolca
+#
+# A.multiplex UHF-44:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-39:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-69:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Miskolc-Aggtelek-Fony b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Miskolc-Aggtelek-Fony
new file mode 100755
index 0000000000..361ac5a11c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Miskolc-Aggtelek-Fony
@@ -0,0 +1,53 @@
+# Hungary / Miskolc-Aggtelek-Fony
+#
+# A.multiplex UHF-45:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-31:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-63:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Mor-Siofok-Veszprem-Zirc b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Mor-Siofok-Veszprem-Zirc
new file mode 100755
index 0000000000..cc2e32a90c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Mor-Siofok-Veszprem-Zirc
@@ -0,0 +1,53 @@
+# Hungary / Mor-Siofok-Veszprem-Zirc
+#
+# A.multiplex UHF-64:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-29:
+# NON-FREE ----------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-61:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nagykanizsa-Barcs-Keszthely b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nagykanizsa-Barcs-Keszthely
new file mode 100755
index 0000000000..ce0ee071f7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nagykanizsa-Barcs-Keszthely
@@ -0,0 +1,53 @@
+# Hungary / Nagykanizsa-Barcs-Keszthely
+#
+# A.multiplex UHF-24:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-55:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-65:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nyiregyhaza-Tokaj-Kazincbarcika-Saly-Satoraljaujhely b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nyiregyhaza-Tokaj-Kazincbarcika-Saly-Satoraljaujhely
new file mode 100755
index 0000000000..03f8e962b8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Nyiregyhaza-Tokaj-Kazincbarcika-Saly-Satoraljaujhely
@@ -0,0 +1,53 @@
+# Hungary / Nyregyhaza-Tokaj-Kzincbarcika-Saly-Satoraljaujhely
+#
+# A.multiplex UHF-68:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-31:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-63:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Pecs-Siklos b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Pecs-Siklos
new file mode 100755
index 0000000000..b5497c8b94
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Pecs-Siklos
@@ -0,0 +1,42 @@
+# Hungary / Pecs-Siklos
+#
+# A.multiplex UHF-52:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-00:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+# T 554000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+#
+# C.multiplex UHF-67:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Sopron-Koszeg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Sopron-Koszeg
new file mode 100755
index 0000000000..4a9b08016d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Sopron-Koszeg
@@ -0,0 +1,53 @@
+# Hungary / Sopron-Koszeg
+#
+# A.multiplex UHF-42:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-40:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-68:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szeged b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szeged
new file mode 100755
index 0000000000..5fa2aa1d8a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szeged
@@ -0,0 +1,53 @@
+# Hungary / Szeged
+#
+# A.multiplex UHF-60:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-22:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-65:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szekesfehervar b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szekesfehervar
new file mode 100755
index 0000000000..69b2162488
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szekesfehervar
@@ -0,0 +1,53 @@
+# Hungary / Szekesfehervar
+#
+# A.multiplex UHF-30:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-29:
+# NON-FREE --------------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-63:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szentes-Battonya b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szentes-Battonya
new file mode 100755
index 0000000000..c4f756a1bf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szentes-Battonya
@@ -0,0 +1,42 @@
+# Hungary / Szentes-Battonya
+#
+# A.multiplex UHF-60:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-00:
+# NON-FREE ----------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+# T 538000000 8MHz 3/4 NONE QAM64 8k 1/4 NONE
+#
+# C.multiplex UHF-65:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szolnok b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szolnok
new file mode 100755
index 0000000000..1f371e0285
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szolnok
@@ -0,0 +1,53 @@
+# Hungary / Szolnok
+#
+# A.multiplex UHF-56:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-30:
+# NON-FREE ----------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-64:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szombathely-Vasvar-Lenti-Zalaegerszeg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szombathely-Vasvar-Lenti-Zalaegerszeg
new file mode 100755
index 0000000000..5877b4c04b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Szombathely-Vasvar-Lenti-Zalaegerszeg
@@ -0,0 +1,53 @@
+# Hungary / Szombathely-Vasvar-Lenti-Zalaegerszeg
+#
+# A.multiplex UHF-38:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-58:
+# NON-FREE ----------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-68:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Uzd-Bonyhad-Dunaujvaros-Szekszard-Szigetvar b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Uzd-Bonyhad-Dunaujvaros-Szekszard-Szigetvar
new file mode 100755
index 0000000000..78075e40e1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/hu-Uzd-Bonyhad-Dunaujvaros-Szekszard-Szigetvar
@@ -0,0 +1,53 @@
+# Hungary / Uzd-Bonyhad-Dunaujvaros-Szekszard-Szigetvar
+#
+# A.multiplex UHF-52:
+# FREE -----------------------------------------------------------------------------------
+# m1 HD, m2 HD, Duna World, Duna HD, MR1 Kossuth Radio, MR2 Petofi Radio, MR3 Bartok Radio
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# B.multiplex UHF-37:
+# NON-FREE ----------------------------------------------------------------------------
+# PRO4, VIASAT3, Prizma TV, Muzsika TV, Universal Channel, Comedy Central, Minimax,
+# Cartoon Network, Spektrum, History, Sport1, Sport2, Dorcel TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#
+# C.multiplex UHF-67:
+# FREE --------------------------------------------------------------------------------
+# RTL Klub, TV2, Euronews Test, Info csatorna, Neo FM
+# NON-FREE ----------------------------------------------------------------------------
+# Cool, Film+, HBO, National Geographic, Disney Channel, AXN, FEM3, Private spice, ATV,
+# HirTV, Sportklub
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-CairnHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-CairnHill
new file mode 100755
index 0000000000..d3a5dc5a77
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-CairnHill
@@ -0,0 +1,26 @@
+# Ireland, Cairn Hill
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH47: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH44: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ClermontCarn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ClermontCarn
new file mode 100755
index 0000000000..81f17d24c3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ClermontCarn
@@ -0,0 +1,26 @@
+# Ireland, Clermont Carn
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH52: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH56: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Dungarvan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Dungarvan
new file mode 100755
index 0000000000..1c2ccd8815
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Dungarvan
@@ -0,0 +1,26 @@
+# Ireland, Dungarvan
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH55: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH59: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-HolywellHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-HolywellHill
new file mode 100755
index 0000000000..5bb2c585a4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-HolywellHill
@@ -0,0 +1,26 @@
+# Ireland, Holywell Hill
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH30: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Kippure b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Kippure
new file mode 100755
index 0000000000..8a7a3be0a7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Kippure
@@ -0,0 +1,26 @@
+# Ireland, Kippure
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH54: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH58: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Maghera b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Maghera
new file mode 100755
index 0000000000..e87acd9a64
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Maghera
@@ -0,0 +1,26 @@
+# Ireland, Maghera
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH48: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH55: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-MountLeinster b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-MountLeinster
new file mode 100755
index 0000000000..60430a23bb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-MountLeinster
@@ -0,0 +1,26 @@
+# Ireland, Mount Leinster
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH23: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH26: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Mullaghanish b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Mullaghanish
new file mode 100755
index 0000000000..9eb7cebbd0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Mullaghanish
@@ -0,0 +1,26 @@
+# Ireland, Mullaghanish
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH21: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH24: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-SpurHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-SpurHill
new file mode 100755
index 0000000000..96782febd1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-SpurHill
@@ -0,0 +1,26 @@
+# Ireland, Spur Hill
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH45: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH49: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ThreeRock b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ThreeRock
new file mode 100755
index 0000000000..7df648eda4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-ThreeRock
@@ -0,0 +1,26 @@
+# Ireland, Three Rock
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH30: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH33: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Truskmore b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Truskmore
new file mode 100755
index 0000000000..838429c6f6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-Truskmore
@@ -0,0 +1,26 @@
+# Ireland, Truskmore
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH53: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH57: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-WoodcockHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-WoodcockHill
new file mode 100755
index 0000000000..065e6fcee6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ie-WoodcockHill
@@ -0,0 +1,26 @@
+# Ireland, Woodcock Hill
+# Generated from http://www.comreg.ie/_fileupload/Broadcast_Technical_Parameters.xlsx
+[CH47: Saorview MUX1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CH44: Saorview MUX2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/il-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/il-All
new file mode 100755
index 0000000000..14e2b5d140
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/il-All
@@ -0,0 +1,26 @@
+# Israel, Israel Broadcasting Authority's transmitters
+# Generated from list in http://www.iba.org.il/reception/
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ir-Tehran b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ir-Tehran
new file mode 100755
index 0000000000..9c28a7764c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ir-Tehran
@@ -0,0 +1,25 @@
+# DVB-T Tehran
+[IRIB-TV1/2/3/4/5, IRINN, AMOUZESH, QURAN-TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[PRESS TV, AL-ALAM, AL-KOUSAR, JAAMEJAM 1, IRIB MOSTANAD, IRIB OSTANI]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/is-Reykjavik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/is-Reykjavik
new file mode 100755
index 0000000000..c898a6bfe0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/is-Reykjavik
@@ -0,0 +1,226 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20100316 1 0 OFDM IS </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: <add description here>
+# date (yyyy-mm-dd) : 2010-10-22
+# provided by (opt) : <your name or email here>
+#
+#------------------------------------------------------------------------------
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Vodafone]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/it-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/it-All
new file mode 100755
index 0000000000..c41cac3e26
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/it-All
@@ -0,0 +1,761 @@
+# This file lists all frequencies used in Western Europe for DVB-T.
+# The transmission parameters listed here are the ones generally used in
+# Italy, broadcast neworks in other countries do use different parameters.
+# Moreover, other countries use a bandwidth of 8 MHz also for Band III
+# channels.
+#
+# Compiled in December 2010 by Marco d'Itri <md@linux.it>.
+#
+# References:
+# http://en.wikipedia.org/wiki/Band_I#Europe
+# http://en.wikipedia.org/wiki/Band_III#Europe
+# http://en.wikipedia.org/wiki/File:VHF_Usage.svg
+# http://en.wikipedia.org/wiki/Television_channel_frequencies
+
+
+### VHF - Band III ###
+# 5
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 6
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 7
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 8
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 9
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 10
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 11
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 219500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 12
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 226500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+### UHF - Band IV ###
+# 21
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 22
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 23
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 24
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 26
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 27
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 28
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 29
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 30
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 31
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 32
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 33
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 34
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 35
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 36
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 37
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+### UHF - Band V ###
+# 38
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 39
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 41
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 42
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 43
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 44
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 45
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 46
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 47
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 48
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 49
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 50
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 51
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 53
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 55
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 56
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 57
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 58
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 61
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 62
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 63
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 64
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 65
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 66
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 67
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 842000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 68
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 850000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+# 69
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 858000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lt-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lt-All
new file mode 100755
index 0000000000..4ae5fef7c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lt-All
@@ -0,0 +1,302 @@
+# Lithuania, whole country
+# Created from http://www.skaitmenine.lt/lt/skaitmenine_tv_lietuvoje/antzemine_dvb_t.html
+# Created by baruse@gmail.com
+
+# LRTC I tinklas
+[kanalas 22]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 26]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 39]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 44]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 47]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 57]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 58]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 60]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 61]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 794000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# LRTC II tinklas
+[kanalas 33]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 38]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 48]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 54]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 62]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 63]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 810000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 64]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# TEO LT I tinklas
+[kanalas 36]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 50]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 59]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 65]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 826000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# TEO LT II tinklas
+[kanalas 21]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 30]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[kanalas 53]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+#T 786000000 8MHz AUTO NONE QAM64 8k 1/16 NONE # kanalas 60
+
+# Vilniui bonusas
+[kanalas 37]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lu-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lu-All
new file mode 100755
index 0000000000..4e8053fc0d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lu-All
@@ -0,0 +1,49 @@
+# DVB-T Luxembourg [2007-11-18]
+[Kanal 7 M6, RTL 8, LUXE.TV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Kanal 21 air]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Kanal 24 club RTL, RTL TVI, plug TV, RTL 4, RTL 5, RTL 7]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Kanal 27 RTL TeleLetz, 2 ten RTL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lv-Riga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lv-Riga
new file mode 100755
index 0000000000..bfb2e37186
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/lv-Riga
@@ -0,0 +1,92 @@
+# Latvia - Riga (lv-Riga)
+# Generated by Raimonds Cicans
+# UTF8 encoding
+
+
+# DLRTC
+[Weak signal! Vājš signāls! Слабый сигнал!]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# Baltkom TV
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 834000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nl-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nl-All
new file mode 100755
index 0000000000..33fccd317e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nl-All
@@ -0,0 +1,483 @@
+# The Netherlands, whole country
+# Created from http://radio-tv-nederland.nl/TV 1.251978e-312nderlijst%20Nederland.xls
+# and http://radio-tv-nederland.nl/dvbt/dvbt-lokaal.html
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/no-Trondelag_Stjordal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/no-Trondelag_Stjordal
new file mode 100755
index 0000000000..f6d8997821
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/no-Trondelag_Stjordal
@@ -0,0 +1,39 @@
+# Norway / Trondelag / Stjordal
+# modified according to data automatically generated by w_scan
+# free (nrk) channels are on 658000000
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandInfill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandInfill
new file mode 100755
index 0000000000..dc05f0c72a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandInfill
@@ -0,0 +1,42 @@
+# Pinehill, Remuera, Sky Tower, Auckland Infill, Auckland NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandWaiatarua b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandWaiatarua
new file mode 100755
index 0000000000..4fbeb87f9c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-AucklandWaiatarua
@@ -0,0 +1,42 @@
+# Waiatarua, Auckland NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Christchurch b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Christchurch
new file mode 100755
index 0000000000..242c186e91
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Christchurch
@@ -0,0 +1,42 @@
+# Sugarloaf, Christchurch NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Dunedin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Dunedin
new file mode 100755
index 0000000000..440449a6ab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Dunedin
@@ -0,0 +1,42 @@
+# Mt Cargill, Dunedin NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Hamilton b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Hamilton
new file mode 100755
index 0000000000..eeb5b41f56
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Hamilton
@@ -0,0 +1,42 @@
+# Hamilton Infill, Waikato NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayMtErin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayMtErin
new file mode 100755
index 0000000000..6b6cee1f66
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayMtErin
@@ -0,0 +1,42 @@
+# Mt. Erin, Hawkes Bay NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayNapier b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayNapier
new file mode 100755
index 0000000000..0941b8366a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-HawkesBayNapier
@@ -0,0 +1,42 @@
+# Napier Infill, Hawkes Bay NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Manawatu b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Manawatu
new file mode 100755
index 0000000000..9c013042de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Manawatu
@@ -0,0 +1,42 @@
+# Wharite, Manawatu NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Tauranga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Tauranga
new file mode 100755
index 0000000000..3b30c5e24c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Tauranga
@@ -0,0 +1,42 @@
+# Kopukairua, Tauranga NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Waikato b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Waikato
new file mode 100755
index 0000000000..d88cea6a23
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-Waikato
@@ -0,0 +1,42 @@
+# Te Aroha, Waikato NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonInfill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonInfill
new file mode 100755
index 0000000000..63d4871285
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonInfill
@@ -0,0 +1,42 @@
+# Fitzherbert, Baxters Knob, Wellington infill, Wellington NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonKaukau b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonKaukau
new file mode 100755
index 0000000000..9111f1a099
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonKaukau
@@ -0,0 +1,42 @@
+# Kaukau, Wellington NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonNgarara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonNgarara
new file mode 100755
index 0000000000..27d920cf5a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/nz-WellingtonNgarara
@@ -0,0 +1,42 @@
+# Ngarara, Wellington NZ
+#
+# Channel allocation details for NZ can be found at
+# http://en.wikipedia.org/wiki/Freeview_(New_Zealand)
+#
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Czestochowa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Czestochowa
new file mode 100755
index 0000000000..e24f5f65d6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Czestochowa
@@ -0,0 +1,46 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20120605 1 0 TERRESTRIAL PL </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: PL Czestochowa slaskie
+# date (yyyy-mm-dd) : 2012-11-30
+# provided by (opt) : Jakub Kasprzycki jakub@kasprzycki.name
+#
+#------------------------------------------------------------------------------
+[MUX-1 Emitel Wreczyca 100KW H]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[MUX-2 Emitel Wreczyca 100KW H]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[MUX-3 TON Czestochowa/Bleszno 2KW H]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Gdansk b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Gdansk
new file mode 100755
index 0000000000..6ff18cb7a9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Gdansk
@@ -0,0 +1,25 @@
+# Gdańsk, Poland
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krakow b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krakow
new file mode 100755
index 0000000000..12b164f4e5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krakow
@@ -0,0 +1,82 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20091230 1 0 OFDM PL </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Poland, Krakow
+# date (yyyy-mm-dd) : 2011-10-29
+# provided by (opt) : Damian Golda
+#
+#------------------------------------------------------------------------------
+[Ch.23, Mux2 Tarnow/g.Sw.Marcina]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[NW 04 Malopolskie, Ch.48, Mux3 Krakow/Choragwica 2kW]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Ch.49, Mux2 Katowice/Kosztowy]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Ch.51, Mux3 Katowice/Kosztowy 2.5kW]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Ch.62, Mux1 Wisla/Skrzyczne]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 802000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[TP EmiTel Ch.64, Mux3 Krakow/Choragwica]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 818000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krosno_Sucha_Gora b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krosno_Sucha_Gora
new file mode 100755
index 0000000000..cb4e92d544
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Krosno_Sucha_Gora
@@ -0,0 +1,35 @@
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Rzeszow b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Rzeszow
new file mode 100755
index 0000000000..19918788c3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Rzeszow
@@ -0,0 +1,13 @@
+# Rzeszow / Sucha Gora, South-East Poland
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Szczecin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Szczecin
new file mode 100755
index 0000000000..86db69f73d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Szczecin
@@ -0,0 +1,46 @@
+#------------------------------------------------------------------------------
+# file automatically generated by w_scan
+# (http://wirbel.htpc-forum.de/w_scan/index2.html)
+#! <w_scan> 20091230 1 0 OFDM PL </w_scan>
+#------------------------------------------------------------------------------
+# location and provider: Poland, Szczecin
+# date (yyyy-mm-dd) : 2015-12-01
+# provided by (opt) : Fantom
+#
+#------------------------------------------------------------------------------
+
+[Zachodniopomorskie, Ch.41, Mux1 Szczecin/Kolowo 100kW]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Zachodniopomorskie, Ch.34, Mux2 Szczecin/Kolowo 100kW]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Zachodniopomorskie, Ch.48, Mux3 Szczecin/Kolowo 100kW]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Warszawa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Warszawa
new file mode 100755
index 0000000000..e6c6b3ec1c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Warszawa
@@ -0,0 +1,64 @@
+# Warsaw (Masowian), Poland
+#
+# Channels info: http://sat-charts.eu/dvb-t.php
+#
+[Raszyn/PKiN MUX-3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Raszyn/PKiN MUX-8 (TVNHD)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Raszyn/PKiN MUX-1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Raszyn/PKiN MUX-2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[PKiN MUX-8]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+ CODE_RATE_HP = 5/6
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Wroclaw b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Wroclaw
new file mode 100755
index 0000000000..cffbe7fb6a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pl-Wroclaw
@@ -0,0 +1,13 @@
+# Wroclaw / Zorawina, South-West Poland
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pt-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pt-All
new file mode 100755
index 0000000000..119e4db4db
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/pt-All
@@ -0,0 +1,85 @@
+# Generated from http://tdt-portugal.blogspot.pt/
+[Monte da Virgem]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Lousa (Trevim)]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Montejunto]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Mainland SFN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ro-Bucharest b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ro-Bucharest
new file mode 100755
index 0000000000..e2427cec51
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ro-Bucharest
@@ -0,0 +1,37 @@
+# Romania / Bucharest
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SRTV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[SNR DVB-T]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Krasnodar b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Krasnodar
new file mode 100755
index 0000000000..04a0fdb74f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Krasnodar
@@ -0,0 +1,26 @@
+# Russia, Krasnodar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 4/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 4/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ STREAM_ID = 1
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Novosibirsk b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Novosibirsk
new file mode 100755
index 0000000000..3be3c33856
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Novosibirsk
@@ -0,0 +1,26 @@
+# Russia, Novosibirsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 4/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 4/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ STREAM_ID = 1
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Volgodonsk b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Volgodonsk
new file mode 100755
index 0000000000..6832d726a9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ru-Volgodonsk
@@ -0,0 +1,26 @@
+# Russia, Volgodonsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 4/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 4/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = AUTO
+ HIERARCHY = NONE
+ STREAM_ID = 1
+ INVERSION = AUTO
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aareavaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aareavaara
new file mode 100755
index 0000000000..13d716a30c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aareavaara
@@ -0,0 +1,5 @@
+# Sweden - Aareavaara
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Adolfstrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Adolfstrom
new file mode 100755
index 0000000000..b7aa4454b0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Adolfstrom
@@ -0,0 +1,5 @@
+# Sweden - Adolfström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Agnas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Agnas
new file mode 100755
index 0000000000..bd7c1c9741
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Agnas
@@ -0,0 +1,5 @@
+# Sweden - Agnäs
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Akersjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Akersjon
new file mode 100755
index 0000000000..26dc4ed479
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Akersjon
@@ -0,0 +1,5 @@
+# Sweden - Åkersjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alafors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alafors
new file mode 100755
index 0000000000..c126dce39b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alafors
@@ -0,0 +1,35 @@
+# Sweden - Alafors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Albacken b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Albacken
new file mode 100755
index 0000000000..e91aa4f723
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Albacken
@@ -0,0 +1,5 @@
+# Sweden - Albacken
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Algsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Algsjo
new file mode 100755
index 0000000000..6bcb7821e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Algsjo
@@ -0,0 +1,5 @@
+# Sweden - Älgsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alingsas_Mariedal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alingsas_Mariedal
new file mode 100755
index 0000000000..249fe98f04
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alingsas_Mariedal
@@ -0,0 +1,35 @@
+# Sweden - Alingsås/Mariedal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvangen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvangen
new file mode 100755
index 0000000000..cd389a2b2f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvangen
@@ -0,0 +1,35 @@
+# Sweden - Älvängen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalen_Brunnsberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalen_Brunnsberg
new file mode 100755
index 0000000000..4f1b825cb5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalen_Brunnsberg
@@ -0,0 +1,13 @@
+# Sweden - Älvdalen/Brunnsberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalsasen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalsasen
new file mode 100755
index 0000000000..1561589ad5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvdalsasen
@@ -0,0 +1,13 @@
+# Sweden - Älvdalsåsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbacka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbacka
new file mode 100755
index 0000000000..ceb9635d50
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbacka
@@ -0,0 +1,5 @@
+# Sweden - Älvsbacka
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbyn
new file mode 100755
index 0000000000..4c308d0563
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Alvsbyn
@@ -0,0 +1,70 @@
+# Sweden - Älvsbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Ribovardo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Ribovardo
new file mode 100755
index 0000000000..9206a9a41c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Ribovardo
@@ -0,0 +1,5 @@
+# Sweden - Ammarnäs Ribovardo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Tjultrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Tjultrask
new file mode 100755
index 0000000000..4bb1d356cf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ammarnas_Tjultrask
@@ -0,0 +1,5 @@
+# Sweden - Ammarnäs/Tjulträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amot b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amot
new file mode 100755
index 0000000000..36697b79c3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amot
@@ -0,0 +1,13 @@
+# Sweden - Åmot
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amotfors_Kroppstad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amotfors_Kroppstad
new file mode 100755
index 0000000000..9272645096
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Amotfors_Kroppstad
@@ -0,0 +1,5 @@
+# Sweden - Åmotfors Kroppstad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-An b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-An
new file mode 100755
index 0000000000..acabed7241
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-An
@@ -0,0 +1,5 @@
+# Sweden - Ån
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Andersvattnet_Ersmyrberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Andersvattnet_Ersmyrberget
new file mode 100755
index 0000000000..aa82b3f9d3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Andersvattnet_Ersmyrberget
@@ -0,0 +1,5 @@
+# Sweden - Andersvattnet/Ersmyrberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ange_Snoberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ange_Snoberg
new file mode 100755
index 0000000000..7f0bac7c0d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ange_Snoberg
@@ -0,0 +1,63 @@
+# Sweden - Ånge/Snöberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angebo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angebo
new file mode 100755
index 0000000000..d3145eae47
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angebo
@@ -0,0 +1,6 @@
+# Sweden - Ängebo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angelholm_Vegeholm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angelholm_Vegeholm
new file mode 100755
index 0000000000..3611129fd1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angelholm_Vegeholm
@@ -0,0 +1,35 @@
+# Sweden - Ängelholm/Vegeholm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angersjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angersjo
new file mode 100755
index 0000000000..190c7f57dd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Angersjo
@@ -0,0 +1,5 @@
+# Sweden - Ängersjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Are b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Are
new file mode 100755
index 0000000000..be581bbcd7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Are
@@ -0,0 +1,35 @@
+# Sweden - Åre
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjang b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjang
new file mode 100755
index 0000000000..3b540abbc4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjang
@@ -0,0 +1,35 @@
+# Sweden - Årjäng
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjeplog_Galtispouda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjeplog_Galtispouda
new file mode 100755
index 0000000000..dc0c8180f1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arjeplog_Galtispouda
@@ -0,0 +1,35 @@
+# Sweden - Arjeplog Galtispouda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arosjokk b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arosjokk
new file mode 100755
index 0000000000..fa88de3f5d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arosjokk
@@ -0,0 +1,5 @@
+# Sweden - Årosjokk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvidsjaur_Jultrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvidsjaur_Jultrask
new file mode 100755
index 0000000000..76c48626da
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvidsjaur_Jultrask
@@ -0,0 +1,35 @@
+# Sweden - Arvidsjaur/Julträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvika_Orshultaberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvika_Orshultaberget
new file mode 100755
index 0000000000..7d041b2d34
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Arvika_Orshultaberget
@@ -0,0 +1,5 @@
+# Sweden - Arvika/Örshultaberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-As b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-As
new file mode 100755
index 0000000000..ca6213ee53
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-As
@@ -0,0 +1,5 @@
+# Sweden - Ås
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asele_Aslia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asele_Aslia
new file mode 100755
index 0000000000..cac0d8edee
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asele_Aslia
@@ -0,0 +1,5 @@
+# Sweden - Åsele Åslia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asmon_Sormoflo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asmon_Sormoflo
new file mode 100755
index 0000000000..c74420620d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Asmon_Sormoflo
@@ -0,0 +1,5 @@
+# Sweden - Åsmon/Sörmoflo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aspeboda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aspeboda
new file mode 100755
index 0000000000..5ca5003ea5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Aspeboda
@@ -0,0 +1,13 @@
+# Sweden - Aspeboda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Atvidaberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Atvidaberg
new file mode 100755
index 0000000000..380b7e1a1f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Atvidaberg
@@ -0,0 +1,35 @@
+# Sweden - Åtvidaberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Avesta_Krylbo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Avesta_Krylbo
new file mode 100755
index 0000000000..e9a146bf26
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Avesta_Krylbo
@@ -0,0 +1,35 @@
+# Sweden - Avesta/Krylbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backe b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backe
new file mode 100755
index 0000000000..e688bf72dc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backe
@@ -0,0 +1,5 @@
+# Sweden - Backe
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backefors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backefors
new file mode 100755
index 0000000000..b6b9ba8220
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Backefors
@@ -0,0 +1,35 @@
+# Sweden - Bäckefors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bankeryd b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bankeryd
new file mode 100755
index 0000000000..ab12312578
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bankeryd
@@ -0,0 +1,35 @@
+# Sweden - Bankeryd
+[[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bengtsfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bengtsfors
new file mode 100755
index 0000000000..41de7e214f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bengtsfors
@@ -0,0 +1,5 @@
+# Sweden - Bengtsfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Berghamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Berghamn
new file mode 100755
index 0000000000..59b198ac5a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Berghamn
@@ -0,0 +1,5 @@
+# Sweden - Berghamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergshamra_Vaxtuna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergshamra_Vaxtuna
new file mode 100755
index 0000000000..08e7e6e55b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergshamra_Vaxtuna
@@ -0,0 +1,35 @@
+# Sweden - Bergshamra/Vaxtuna
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergsjo_Balleberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergsjo_Balleberget
new file mode 100755
index 0000000000..f4c8c33e65
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergsjo_Balleberget
@@ -0,0 +1,13 @@
+# Sweden - Bergsjö/Bålleberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergvik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergvik
new file mode 100755
index 0000000000..d1ac6bfea6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bergvik
@@ -0,0 +1,13 @@
+# Sweden - Bergvik
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Billsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Billsjo
new file mode 100755
index 0000000000..ff3bbf707b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Billsjo
@@ -0,0 +1,5 @@
+# Sweden - Billsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bispfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bispfors
new file mode 100755
index 0000000000..d93aa7aa82
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bispfors
@@ -0,0 +1,35 @@
+# Sweden - Bispfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkliden_Tornehamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkliden_Tornehamn
new file mode 100755
index 0000000000..3653d5608e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkliden_Tornehamn
@@ -0,0 +1,5 @@
+# Sweden - Björkliden/Tornehamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorksele b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorksele
new file mode 100755
index 0000000000..fa24fd2d6c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorksele
@@ -0,0 +1,5 @@
+# Sweden - Björksele
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkvattnet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkvattnet
new file mode 100755
index 0000000000..b8ce3ade0c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorkvattnet
@@ -0,0 +1,5 @@
+# Sweden - Björkvattnet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorna
new file mode 100755
index 0000000000..a0223299d3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjorna
@@ -0,0 +1,5 @@
+# Sweden - Björna
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurberget_Hemtjarn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurberget_Hemtjarn
new file mode 100755
index 0000000000..e6d57c570a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurberget_Hemtjarn
@@ -0,0 +1,5 @@
+# Sweden - Bjurberget/Hemtjärn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurtrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurtrask
new file mode 100755
index 0000000000..c1d7a32df7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bjurtrask
@@ -0,0 +1,5 @@
+# Sweden - Bjurträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boberg
new file mode 100755
index 0000000000..323b1c24b2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boberg
@@ -0,0 +1,5 @@
+# Sweden - Boberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boda_Fagerum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boda_Fagerum
new file mode 100755
index 0000000000..2f705a7a6a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boda_Fagerum
@@ -0,0 +1,35 @@
+# Sweden - Böda/Fagerum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boden_Skogsa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boden_Skogsa
new file mode 100755
index 0000000000..c7dbabe24d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boden_Skogsa
@@ -0,0 +1,5 @@
+# Sweden - Boden/Skogså
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bograngen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bograngen
new file mode 100755
index 0000000000..0ae4656a2c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bograngen
@@ -0,0 +1,5 @@
+# Sweden - Bograngen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollebygd b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollebygd
new file mode 100755
index 0000000000..80606617dc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollebygd
@@ -0,0 +1,36 @@
+# Sweden - Bollebygd
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollnas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollnas
new file mode 100755
index 0000000000..63f56b5637
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bollnas
@@ -0,0 +1,63 @@
+# Sweden - Bollnäs
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bonhamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bonhamn
new file mode 100755
index 0000000000..07e6d84475
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bonhamn
@@ -0,0 +1,5 @@
+# Sweden - Bönhamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Dalsjofors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Dalsjofors
new file mode 100755
index 0000000000..8ae4b9deea
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Dalsjofors
@@ -0,0 +1,35 @@
+# Sweden - Borås/Dalsjöfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Sjobo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Sjobo
new file mode 100755
index 0000000000..f2e80f1b55
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Boras_Sjobo
@@ -0,0 +1,35 @@
+# Sweden - Borås/Sjöbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgafjall b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgafjall
new file mode 100755
index 0000000000..68e72a39bb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgafjall
@@ -0,0 +1,5 @@
+# Sweden - Borgafjäll
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgholm_Ramsattra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgholm_Ramsattra
new file mode 100755
index 0000000000..04df002436
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgholm_Ramsattra
@@ -0,0 +1,31 @@
+# Sweden - Borgholm/Ramsättra
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgsjobyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgsjobyn
new file mode 100755
index 0000000000..cd55d97ecb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borgsjobyn
@@ -0,0 +1,5 @@
+# Sweden - Borgsjöbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borkan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borkan
new file mode 100755
index 0000000000..efeba30e2e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borkan
@@ -0,0 +1,5 @@
+# Sweden - Borkan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Idkerberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Idkerberget
new file mode 100755
index 0000000000..b678ee95c3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Idkerberget
@@ -0,0 +1,63 @@
+# Sweden - Borlänge/Idkerberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Nygardarna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Nygardarna
new file mode 100755
index 0000000000..393e729ca6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Borlange_Nygardarna
@@ -0,0 +1,49 @@
+# Sweden - Borlänge/Nygårdarna
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bortansbyn_Bortan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bortansbyn_Bortan
new file mode 100755
index 0000000000..4c0f263cfd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bortansbyn_Bortan
@@ -0,0 +1,5 @@
+# Sweden - Bortansbyn/Bortan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bosebyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bosebyn
new file mode 100755
index 0000000000..edb7c4e988
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bosebyn
@@ -0,0 +1,5 @@
+# Sweden - Bosebyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Botsmark b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Botsmark
new file mode 100755
index 0000000000..ca257a1754
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Botsmark
@@ -0,0 +1,5 @@
+# Sweden - Botsmark
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bottnaryd_Ryd b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bottnaryd_Ryd
new file mode 100755
index 0000000000..a29e54f5c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bottnaryd_Ryd
@@ -0,0 +1,13 @@
+# Sweden - Bottnaryd/Ryd
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredaker b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredaker
new file mode 100755
index 0000000000..342744a477
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredaker
@@ -0,0 +1,5 @@
+# Sweden - Bredåker
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Kubbe b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Kubbe
new file mode 100755
index 0000000000..1038e20619
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Kubbe
@@ -0,0 +1,5 @@
+# Sweden - Bredbyn/Kubbe
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Vasterfannbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Vasterfannbyn
new file mode 100755
index 0000000000..2abb1ad373
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredbyn_Vasterfannbyn
@@ -0,0 +1,5 @@
+# Sweden - Bredbyn Västerfannbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredsjon
new file mode 100755
index 0000000000..c6b4e7e840
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bredsjon
@@ -0,0 +1,5 @@
+# Sweden - Bredsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bromsebro b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bromsebro
new file mode 100755
index 0000000000..48e8175176
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bromsebro
@@ -0,0 +1,35 @@
+# Sweden - Brömsebro
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bruzaholm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bruzaholm
new file mode 100755
index 0000000000..45caddd0a4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bruzaholm
@@ -0,0 +1,13 @@
+# Sweden - Bruzaholm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bydalen_Hovdehogen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bydalen_Hovdehogen
new file mode 100755
index 0000000000..dcec415f29
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bydalen_Hovdehogen
@@ -0,0 +1,5 @@
+# Sweden - Bydalen/Hovdehögen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdetrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdetrask
new file mode 100755
index 0000000000..17661620d9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdetrask
@@ -0,0 +1,5 @@
+# Sweden - Bygdeträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdsiljum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdsiljum
new file mode 100755
index 0000000000..2a7eb03450
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Bygdsiljum
@@ -0,0 +1,5 @@
+# Sweden - Bygdsiljum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Byxelkrok b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Byxelkrok
new file mode 100755
index 0000000000..abff541fd8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Byxelkrok
@@ -0,0 +1,25 @@
+# Sweden - Byxelkrok
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dadran b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dadran
new file mode 100755
index 0000000000..c8eb9a0684
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dadran
@@ -0,0 +1,5 @@
+# Sweden - Dådran
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dal
new file mode 100755
index 0000000000..f33ab2e832
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dal
@@ -0,0 +1,5 @@
+# Sweden - Dal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalfors
new file mode 100755
index 0000000000..57ae1d3c16
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalfors
@@ -0,0 +1,13 @@
+# Sweden - Dalfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dals_Langed b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dals_Langed
new file mode 100755
index 0000000000..473733df0e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dals_Langed
@@ -0,0 +1,5 @@
+# Sweden - Dals Långed
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalstuga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalstuga
new file mode 100755
index 0000000000..328496ac21
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dalstuga
@@ -0,0 +1,13 @@
+# Sweden - Dalstuga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degeberga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degeberga
new file mode 100755
index 0000000000..a3518f7417
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degeberga
@@ -0,0 +1,5 @@
+# Sweden - Degeberga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degerfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degerfors
new file mode 100755
index 0000000000..b2f6572606
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Degerfors
@@ -0,0 +1,35 @@
+# Sweden - Degerfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary
new file mode 100755
index 0000000000..e62500ac88
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary
@@ -0,0 +1,13 @@
+# Sweden - Delary
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary_Kolaboda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary_Kolaboda
new file mode 100755
index 0000000000..362df263d2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Delary_Kolaboda
@@ -0,0 +1,5 @@
+# Sweden - Delary/Kölaboda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Djura b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Djura
new file mode 100755
index 0000000000..020a4d4de1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Djura
@@ -0,0 +1,13 @@
+# Sweden - Djura
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dorotea b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dorotea
new file mode 100755
index 0000000000..7b5aaca4f7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Dorotea
@@ -0,0 +1,5 @@
+# Sweden - Dorotea
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Drevdagen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Drevdagen
new file mode 100755
index 0000000000..e2c9da3357
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Drevdagen
@@ -0,0 +1,13 @@
+# Sweden - Drevdagen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duved b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duved
new file mode 100755
index 0000000000..dfb39dada3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duved
@@ -0,0 +1,5 @@
+# Sweden - Duved
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas
new file mode 100755
index 0000000000..33aaf97459
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas
@@ -0,0 +1,13 @@
+# Sweden - Duvnäs
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas_Basna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas_Basna
new file mode 100755
index 0000000000..de5ec55224
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Duvnas_Basna
@@ -0,0 +1,13 @@
+# Sweden - Duvnäs/Bäsna
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edane b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edane
new file mode 100755
index 0000000000..c168681a01
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edane
@@ -0,0 +1,5 @@
+# Sweden - Edane
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsbyn
new file mode 100755
index 0000000000..f92440f129
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsbyn
@@ -0,0 +1,13 @@
+# Sweden - Edsbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsele b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsele
new file mode 100755
index 0000000000..c7df3b8f44
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsele
@@ -0,0 +1,5 @@
+# Sweden - Edsele
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsleskog_Hogheden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsleskog_Hogheden
new file mode 100755
index 0000000000..3df7f0ddec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Edsleskog_Hogheden
@@ -0,0 +1,5 @@
+# Sweden - Edsleskog/Högheden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Eksharad_Ekesberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Eksharad_Ekesberget
new file mode 100755
index 0000000000..6daa2d5ef4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Eksharad_Ekesberget
@@ -0,0 +1,5 @@
+# Sweden - Ekshärad Ekesberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ellos b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ellos
new file mode 100755
index 0000000000..ba838496d6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ellos
@@ -0,0 +1,5 @@
+# Sweden - Ellös
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Emmaboda_Balshult b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Emmaboda_Balshult
new file mode 100755
index 0000000000..61d117bdde
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Emmaboda_Balshult
@@ -0,0 +1,36 @@
+# Sweden - Emmaboda/Bälshult
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enafors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enafors
new file mode 100755
index 0000000000..5e2089a938
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enafors
@@ -0,0 +1,5 @@
+# Sweden - Enafors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enviken b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enviken
new file mode 100755
index 0000000000..9936718546
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Enviken
@@ -0,0 +1,36 @@
+# Sweden - Enviken
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Erikslund_Bergasen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Erikslund_Bergasen
new file mode 100755
index 0000000000..6b1622c28c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Erikslund_Bergasen
@@ -0,0 +1,5 @@
+# Sweden - Erikslund/Bergåsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta
new file mode 100755
index 0000000000..3201b34b4d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta
@@ -0,0 +1,25 @@
+# Sweden - Fagersta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta_Jattasen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta_Jattasen
new file mode 100755
index 0000000000..de93d291e1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fagersta_Jattasen
@@ -0,0 +1,35 @@
+# Sweden - Fagersta Jättåsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falerum_Centrum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falerum_Centrum
new file mode 100755
index 0000000000..716f262b22
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falerum_Centrum
@@ -0,0 +1,13 @@
+# Sweden - Falerum/Centrum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falkenberg_Ringsegard b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falkenberg_Ringsegard
new file mode 100755
index 0000000000..709dbade66
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falkenberg_Ringsegard
@@ -0,0 +1,5 @@
+# Sweden - Falkenberg/Ringsegård
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faltrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faltrask
new file mode 100755
index 0000000000..93bcda1ae7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faltrask
@@ -0,0 +1,5 @@
+# Sweden - Falträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falun_Lovberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falun_Lovberget
new file mode 100755
index 0000000000..792bcb77aa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Falun_Lovberget
@@ -0,0 +1,36 @@
+# Sweden - Falun/Lövberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farila b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farila
new file mode 100755
index 0000000000..ead51637ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farila
@@ -0,0 +1,13 @@
+# Sweden - Färila
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farjestaden_Algutsrum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farjestaden_Algutsrum
new file mode 100755
index 0000000000..e45a1da04b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farjestaden_Algutsrum
@@ -0,0 +1,35 @@
+# Sweden - Färjestaden/Algutsrum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkerstrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkerstrask
new file mode 100755
index 0000000000..f3f2652f49
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkerstrask
@@ -0,0 +1,25 @@
+# Sweden - Fårö/Ajkersträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkestrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkestrask
new file mode 100755
index 0000000000..5e36835c02
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Faro_Ajkestrask
@@ -0,0 +1,30 @@
+# Sweden - Fårö/Ajkesträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farosund_Bunge b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farosund_Bunge
new file mode 100755
index 0000000000..bb0dcb1207
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Farosund_Bunge
@@ -0,0 +1,31 @@
+# Sweden - Fårösund/Bunge
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fengersfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fengersfors
new file mode 100755
index 0000000000..94eeca2e41
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fengersfors
@@ -0,0 +1,5 @@
+# Sweden - Fengersfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Filipstad_Klockarhojden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Filipstad_Klockarhojden
new file mode 100755
index 0000000000..c3674bb1a1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Filipstad_Klockarhojden
@@ -0,0 +1,36 @@
+# Sweden - Filipstad/Klockarhöjden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Finnveden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Finnveden
new file mode 100755
index 0000000000..1fa0dbfcf7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Finnveden
@@ -0,0 +1,36 @@
+# Sweden - Finnveden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjal
new file mode 100755
index 0000000000..600d991623
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjal
@@ -0,0 +1,5 @@
+# Sweden - Fjäl
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjallsta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjallsta
new file mode 100755
index 0000000000..afc99cc324
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fjallsta
@@ -0,0 +1,5 @@
+# Sweden - Fjällsta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flarke b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flarke
new file mode 100755
index 0000000000..2e0d9eaa48
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flarke
@@ -0,0 +1,5 @@
+# Sweden - Flärke
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Floda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Floda
new file mode 100755
index 0000000000..af4e62968c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Floda
@@ -0,0 +1,5 @@
+# Sweden - Floda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flurkmark b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flurkmark
new file mode 100755
index 0000000000..cedba80fb9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flurkmark
@@ -0,0 +1,5 @@
+# Sweden - Flurkmark
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyggsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyggsjo
new file mode 100755
index 0000000000..bcec030bf9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyggsjo
@@ -0,0 +1,5 @@
+# Sweden - Flyggsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyn
new file mode 100755
index 0000000000..59b8aee82f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Flyn
@@ -0,0 +1,5 @@
+# Sweden - Flyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Folsbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Folsbyn
new file mode 100755
index 0000000000..9b70007dfa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Folsbyn
@@ -0,0 +1,5 @@
+# Sweden - Fölsbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsed b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsed
new file mode 100755
index 0000000000..4981325248
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsed
@@ -0,0 +1,5 @@
+# Sweden - Forsed
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo
new file mode 100755
index 0000000000..560bafa4f0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo
@@ -0,0 +1,5 @@
+# Sweden - Forsmo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo_Yttersel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo_Yttersel
new file mode 100755
index 0000000000..86681c62cf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsmo_Yttersel
@@ -0,0 +1,5 @@
+# Sweden - Forsmo/Yttersel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsnaset b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsnaset
new file mode 100755
index 0000000000..8127217b69
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Forsnaset
@@ -0,0 +1,5 @@
+# Sweden - Forsnäset
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Frankrikegarden_Frankrike b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Frankrikegarden_Frankrike
new file mode 100755
index 0000000000..8a829885ea
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Frankrikegarden_Frankrike
@@ -0,0 +1,5 @@
+# Sweden - Frankrikegården/Frankrike
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fransta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fransta
new file mode 100755
index 0000000000..ac86ede5d6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fransta
@@ -0,0 +1,5 @@
+# Sweden - Fränsta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredrika b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredrika
new file mode 100755
index 0000000000..76230d19be
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredrika
@@ -0,0 +1,5 @@
+# Sweden - Fredrika
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredriksberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredriksberg
new file mode 100755
index 0000000000..038defe374
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredriksberg
@@ -0,0 +1,13 @@
+# Sweden - Fredriksberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredros b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredros
new file mode 100755
index 0000000000..2013d861e7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fredros
@@ -0,0 +1,5 @@
+# Sweden - Fredros
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fritsla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fritsla
new file mode 100755
index 0000000000..124e7631f1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fritsla
@@ -0,0 +1,13 @@
+# Sweden - Fritsla
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fullsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fullsjon
new file mode 100755
index 0000000000..f57739d47e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Fullsjon
@@ -0,0 +1,5 @@
+# Sweden - Fullsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Funasdalsberge b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Funasdalsberge
new file mode 100755
index 0000000000..b24ce5cfbc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Funasdalsberge
@@ -0,0 +1,35 @@
+# Sweden - Funäsdalen Funäsdalsberge
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Telestation b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Telestation
new file mode 100755
index 0000000000..0cff0620c9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Funasdalen_Telestation
@@ -0,0 +1,5 @@
+# Sweden - Funäsdalen/Telestation
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Furudal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Furudal
new file mode 100755
index 0000000000..92d0817c04
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Furudal
@@ -0,0 +1,13 @@
+# Sweden - Furudal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gaddede b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gaddede
new file mode 100755
index 0000000000..31183b5569
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gaddede
@@ -0,0 +1,5 @@
+# Sweden - Gäddede
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallivare b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallivare
new file mode 100755
index 0000000000..1f98a967b3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallivare
@@ -0,0 +1,36 @@
+# Sweden - Gällivare
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallsatter b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallsatter
new file mode 100755
index 0000000000..fce542444d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gallsatter
@@ -0,0 +1,5 @@
+# Sweden - Gallsätter
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gardikfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gardikfors
new file mode 100755
index 0000000000..5c97a95a87
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gardikfors
@@ -0,0 +1,5 @@
+# Sweden - Gardikfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gargnas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gargnas
new file mode 100755
index 0000000000..5ef79a1ff0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gargnas
@@ -0,0 +1,5 @@
+# Sweden - Gargnäs
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Garpenberg_Kuppgarden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Garpenberg_Kuppgarden
new file mode 100755
index 0000000000..9dc790e7ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Garpenberg_Kuppgarden
@@ -0,0 +1,13 @@
+# Sweden - Garpenberg/Kuppgården
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gavle_Skogmur b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gavle_Skogmur
new file mode 100755
index 0000000000..ae8ac75a32
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gavle_Skogmur
@@ -0,0 +1,36 @@
+# Sweden - Gävle/Skogmur
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gillhov b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gillhov
new file mode 100755
index 0000000000..15415f194b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gillhov
@@ -0,0 +1,5 @@
+# Sweden - Gillhov
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Glimakra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Glimakra
new file mode 100755
index 0000000000..5f027cc12f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Glimakra
@@ -0,0 +1,5 @@
+# Sweden - Glimåkra
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnarp b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnarp
new file mode 100755
index 0000000000..04b461f418
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnarp
@@ -0,0 +1,13 @@
+# Sweden - Gnarp
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnesta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnesta
new file mode 100755
index 0000000000..5baf70e38b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnesta
@@ -0,0 +1,25 @@
+# Sweden - Gnesta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnosjo_Marieholm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnosjo_Marieholm
new file mode 100755
index 0000000000..654c5ac4e1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gnosjo_Marieholm
@@ -0,0 +1,13 @@
+# Sweden - Gnosjö/Marieholm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gordalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gordalen
new file mode 100755
index 0000000000..e47263f7ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gordalen
@@ -0,0 +1,5 @@
+# Sweden - Gördalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Brudaremossen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Brudaremossen
new file mode 100755
index 0000000000..51d7b65457
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Brudaremossen
@@ -0,0 +1,36 @@
+# Sweden - Göteborg/Brudaremossen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Slattadamm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Slattadamm
new file mode 100755
index 0000000000..4f499e94c7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Goteborg_Slattadamm
@@ -0,0 +1,31 @@
+# Sweden - Göteborg/Slättadamm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Graninge b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Graninge
new file mode 100755
index 0000000000..191e14da2f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Graninge
@@ -0,0 +1,5 @@
+# Sweden - Graninge
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmark b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmark
new file mode 100755
index 0000000000..3c0cd6fa58
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmark
@@ -0,0 +1,5 @@
+# Sweden - Gräsmark
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmyr b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmyr
new file mode 100755
index 0000000000..1767f52667
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grasmyr
@@ -0,0 +1,5 @@
+# Sweden - Gräsmyr
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grebbestad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grebbestad
new file mode 100755
index 0000000000..41b6ba82d6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grebbestad
@@ -0,0 +1,35 @@
+# Sweden - Grebbestad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grevie b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grevie
new file mode 100755
index 0000000000..4c2a98a411
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grevie
@@ -0,0 +1,5 @@
+# Sweden - Grevie
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grovelsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grovelsjon
new file mode 100755
index 0000000000..04f7916ec2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grovelsjon
@@ -0,0 +1,5 @@
+# Sweden - Grövelsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grums b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grums
new file mode 100755
index 0000000000..d7e99764d5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Grums
@@ -0,0 +1,5 @@
+# Sweden - Grums
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg
new file mode 100755
index 0000000000..050f864318
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg
@@ -0,0 +1,5 @@
+# Sweden - Guliksberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg_Rodvattnet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg_Rodvattnet
new file mode 100755
index 0000000000..c55b80ad28
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Guliksberg_Rodvattnet
@@ -0,0 +1,5 @@
+# Sweden - Guliksberg/Rödvattnet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gullbrandstorp b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gullbrandstorp
new file mode 100755
index 0000000000..f91713406f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gullbrandstorp
@@ -0,0 +1,13 @@
+# Sweden - Gullbrandstorp
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gumhojden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gumhojden
new file mode 100755
index 0000000000..7322820131
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gumhojden
@@ -0,0 +1,5 @@
+# Sweden - Gumhöjden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarn_Sorsjoliden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarn_Sorsjoliden
new file mode 100755
index 0000000000..5aee02fb2c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarn_Sorsjoliden
@@ -0,0 +1,35 @@
+# Sweden - Gunnarn/Sörsjöliden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbo
new file mode 100755
index 0000000000..e951cde44c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbo
@@ -0,0 +1,13 @@
+# Sweden - Gunnarsbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbyn
new file mode 100755
index 0000000000..1625739a93
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarsbyn
@@ -0,0 +1,5 @@
+# Sweden - Gunnarsbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarskog b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarskog
new file mode 100755
index 0000000000..9600c928f7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gunnarskog
@@ -0,0 +1,5 @@
+# Sweden - Gunnarskog
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gusum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gusum
new file mode 100755
index 0000000000..faeeec6361
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Gusum
@@ -0,0 +1,13 @@
+# Sweden - Gusum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hadanberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hadanberg
new file mode 100755
index 0000000000..8a34887675
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hadanberg
@@ -0,0 +1,5 @@
+# Sweden - Hädanberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hagfors_Varmullsasen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hagfors_Varmullsasen
new file mode 100755
index 0000000000..7b8f932f36
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hagfors_Varmullsasen
@@ -0,0 +1,36 @@
+# Sweden - Hagfors/Värmullsåsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hakafot b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hakafot
new file mode 100755
index 0000000000..1f1b392944
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hakafot
@@ -0,0 +1,5 @@
+# Sweden - Håkafot
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halaforsen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halaforsen
new file mode 100755
index 0000000000..f9ab849cbe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halaforsen
@@ -0,0 +1,5 @@
+# Sweden - Hålaforsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Haljeboda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Haljeboda
new file mode 100755
index 0000000000..d56bb1dc34
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Haljeboda
@@ -0,0 +1,5 @@
+# Sweden - Häljeboda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallan
new file mode 100755
index 0000000000..316266cdb4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallan
@@ -0,0 +1,5 @@
+# Sweden - Hållan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallaryd b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallaryd
new file mode 100755
index 0000000000..d388227780
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallaryd
@@ -0,0 +1,13 @@
+# Sweden - Hallaryd
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallastrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallastrom
new file mode 100755
index 0000000000..3e07de10ba
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallastrom
@@ -0,0 +1,5 @@
+# Sweden - Hällaström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallbo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallbo
new file mode 100755
index 0000000000..68e60f4816
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallbo
@@ -0,0 +1,13 @@
+# Sweden - Hällbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halle b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halle
new file mode 100755
index 0000000000..82192fdafe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halle
@@ -0,0 +1,5 @@
+# Sweden - Hälle
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halleviksstrand b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halleviksstrand
new file mode 100755
index 0000000000..ce12528315
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halleviksstrand
@@ -0,0 +1,5 @@
+# Sweden - Hälleviksstrand
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallsjo
new file mode 100755
index 0000000000..8ac664608c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hallsjo
@@ -0,0 +1,5 @@
+# Sweden - Hällsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Hamnen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Hamnen
new file mode 100755
index 0000000000..344e712594
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Hamnen
@@ -0,0 +1,31 @@
+# Sweden - Halmstad/Hamnen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Oskarstrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Oskarstrom
new file mode 100755
index 0000000000..bd8b06bcf9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Halmstad_Oskarstrom
@@ -0,0 +1,36 @@
+# Sweden - Halmstad/Oskarström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hamburgsund b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hamburgsund
new file mode 100755
index 0000000000..09aca5f0ab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hamburgsund
@@ -0,0 +1,5 @@
+# Sweden - Hamburgsund
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harads b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harads
new file mode 100755
index 0000000000..8acae9ab75
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harads
@@ -0,0 +1,5 @@
+# Sweden - Harads
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harnosand_Harnon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harnosand_Harnon
new file mode 100755
index 0000000000..6511fea213
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harnosand_Harnon
@@ -0,0 +1,36 @@
+# Sweden - Härnösand/Härnön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harrsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harrsjon
new file mode 100755
index 0000000000..597d9fb56a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Harrsjon
@@ -0,0 +1,5 @@
+# Sweden - Harrsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hassela b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hassela
new file mode 100755
index 0000000000..d9ee98ae81
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hassela
@@ -0,0 +1,13 @@
+# Sweden - Hassela
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Havdhem b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Havdhem
new file mode 100755
index 0000000000..ba8f198fcc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Havdhem
@@ -0,0 +1,61 @@
+# Sweden - Havdhem
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hede b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hede
new file mode 100755
index 0000000000..e024aa6f5a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hede
@@ -0,0 +1,35 @@
+# Sweden - Hede
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedemora b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedemora
new file mode 100755
index 0000000000..b4c4e55ffe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedemora
@@ -0,0 +1,6 @@
+# Sweden - Hedemora
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedenaset b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedenaset
new file mode 100755
index 0000000000..c33e6ad051
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hedenaset
@@ -0,0 +1,5 @@
+# Sweden - Hedenäset
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helgum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helgum
new file mode 100755
index 0000000000..57f82a9b17
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helgum
@@ -0,0 +1,5 @@
+# Sweden - Helgum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helsingborg_Olympia b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helsingborg_Olympia
new file mode 100755
index 0000000000..224840a9fd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Helsingborg_Olympia
@@ -0,0 +1,36 @@
+# Sweden - Helsingborg/Olympia
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemavan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemavan
new file mode 100755
index 0000000000..1af34be230
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemavan
@@ -0,0 +1,35 @@
+# Sweden - Hemavan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemson b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemson
new file mode 100755
index 0000000000..6a6e00162c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hemson
@@ -0,0 +1,5 @@
+# Sweden - Hemsön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Henan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Henan
new file mode 100755
index 0000000000..2fab24cc8c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Henan
@@ -0,0 +1,5 @@
+# Sweden - Henån
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hennan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hennan
new file mode 100755
index 0000000000..37e78c7be1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hennan
@@ -0,0 +1,13 @@
+# Sweden - Hennan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hestra_Aspas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hestra_Aspas
new file mode 100755
index 0000000000..f3a554aad6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hestra_Aspas
@@ -0,0 +1,13 @@
+# Sweden - Hestra/Äspås
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hjo_Grevback b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hjo_Grevback
new file mode 100755
index 0000000000..5063c1febc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hjo_Grevback
@@ -0,0 +1,13 @@
+# Sweden - Hjo/Grevbäck
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hofors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hofors
new file mode 100755
index 0000000000..a476eb8ae7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hofors
@@ -0,0 +1,36 @@
+# Sweden - Hofors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogfors
new file mode 100755
index 0000000000..197423f5cb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogfors
@@ -0,0 +1,13 @@
+# Sweden - Högfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoglunda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoglunda
new file mode 100755
index 0000000000..86656f58dc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoglunda
@@ -0,0 +1,5 @@
+# Sweden - Höglunda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogsby_Virstad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogsby_Virstad
new file mode 100755
index 0000000000..27e3768512
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogsby_Virstad
@@ -0,0 +1,36 @@
+# Sweden - Högsby/Virstad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogvalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogvalen
new file mode 100755
index 0000000000..f90e01ea4c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hogvalen
@@ -0,0 +1,5 @@
+# Sweden - Högvålen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holjes b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holjes
new file mode 100755
index 0000000000..feefa840f3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holjes
@@ -0,0 +1,5 @@
+# Sweden - Höljes
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hollviken_Stora_Hammar b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hollviken_Stora_Hammar
new file mode 100755
index 0000000000..41de99d2c8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hollviken_Stora_Hammar
@@ -0,0 +1,30 @@
+# Sweden - Höllviken/Stora Hammar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holsbybrunn_Holsbyholm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holsbybrunn_Holsbyholm
new file mode 100755
index 0000000000..d1800510d1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Holsbybrunn_Holsbyholm
@@ -0,0 +1,13 @@
+# Sweden - Holsbybrunn/Holsbyholm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horby_Sallerup b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horby_Sallerup
new file mode 100755
index 0000000000..7363cbbd36
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horby_Sallerup
@@ -0,0 +1,36 @@
+# Sweden - Hörby/Sallerup
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horken b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horken
new file mode 100755
index 0000000000..d58ee6d87e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Horken
@@ -0,0 +1,13 @@
+# Sweden - Hörken
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hornon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hornon
new file mode 100755
index 0000000000..4892c1dd32
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hornon
@@ -0,0 +1,5 @@
+# Sweden - Hornön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hotagen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hotagen
new file mode 100755
index 0000000000..631a624dce
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hotagen
@@ -0,0 +1,5 @@
+# Sweden - Hotagen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoting b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoting
new file mode 100755
index 0000000000..60387c637d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hoting
@@ -0,0 +1,5 @@
+# Sweden - Hoting
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hovfjallet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hovfjallet
new file mode 100755
index 0000000000..3d37947558
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hovfjallet
@@ -0,0 +1,5 @@
+# Sweden - Hovfjället
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Forsa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Forsa
new file mode 100755
index 0000000000..aecf6d50fe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Forsa
@@ -0,0 +1,36 @@
+# Sweden - Hudiksvall/Forsa
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Galgberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Galgberget
new file mode 100755
index 0000000000..836f3c56f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hudiksvall_Galgberget
@@ -0,0 +1,36 @@
+# Sweden - Hudiksvall/Galgberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hummelholm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hummelholm
new file mode 100755
index 0000000000..88638ad1de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hummelholm
@@ -0,0 +1,5 @@
+# Sweden - Hummelholm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hunnebostrand b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hunnebostrand
new file mode 100755
index 0000000000..54918df697
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Hunnebostrand
@@ -0,0 +1,5 @@
+# Sweden - Hunnebostrand
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Huskvarna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Huskvarna
new file mode 100755
index 0000000000..eb500ab9f5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Huskvarna
@@ -0,0 +1,13 @@
+# Sweden - Huskvarna
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Husum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Husum
new file mode 100755
index 0000000000..d6678a4797
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Husum
@@ -0,0 +1,5 @@
+# Sweden - Husum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idivuoma b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idivuoma
new file mode 100755
index 0000000000..d8a3b42466
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idivuoma
@@ -0,0 +1,5 @@
+# Sweden - Idivuoma
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idre b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idre
new file mode 100755
index 0000000000..341ff8dcc4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Idre
@@ -0,0 +1,36 @@
+# Sweden - Idre
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingatorp b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingatorp
new file mode 100755
index 0000000000..2b1188845b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingatorp
@@ -0,0 +1,13 @@
+# Sweden - Ingatorp
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingvallsbenning b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingvallsbenning
new file mode 100755
index 0000000000..391cb145a3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ingvallsbenning
@@ -0,0 +1,6 @@
+# Sweden - Ingvallsbenning
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik
new file mode 100755
index 0000000000..9fa49d93d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik
@@ -0,0 +1,25 @@
+# Sweden - Irevik
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik_3195 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik_3195
new file mode 100755
index 0000000000..694b756fbc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Irevik_3195
@@ -0,0 +1,30 @@
+# Sweden - Irevik/3195
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ivarsbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ivarsbyn
new file mode 100755
index 0000000000..9f5c5558c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ivarsbyn
@@ -0,0 +1,5 @@
+# Sweden - Ivarsbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jakkvik_Frakenmyren b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jakkvik_Frakenmyren
new file mode 100755
index 0000000000..ca2cea1ff1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jakkvik_Frakenmyren
@@ -0,0 +1,5 @@
+# Sweden - Jäkkvik Fräkenmyren
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jamjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jamjo
new file mode 100755
index 0000000000..dd1446f010
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jamjo
@@ -0,0 +1,25 @@
+# Sweden - Jämjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarkvissle b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarkvissle
new file mode 100755
index 0000000000..7cfbaeba4f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarkvissle
@@ -0,0 +1,5 @@
+# Sweden - Järkvissle
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarnforsen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarnforsen
new file mode 100755
index 0000000000..d163be1516
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarnforsen
@@ -0,0 +1,13 @@
+# Sweden - Järnforsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarpen_Mellangardsberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarpen_Mellangardsberget
new file mode 100755
index 0000000000..d4b47c5714
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarpen_Mellangardsberget
@@ -0,0 +1,5 @@
+# Sweden - Järpen Mellangårdsberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvso b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvso
new file mode 100755
index 0000000000..d5dcf62fcc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvso
@@ -0,0 +1,13 @@
+# Sweden - Järvsö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvtrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvtrask
new file mode 100755
index 0000000000..4e46510b2e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jarvtrask
@@ -0,0 +1,5 @@
+# Sweden - Järvträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Joestrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Joestrom
new file mode 100755
index 0000000000..9e1bc4a0c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Joestrom
@@ -0,0 +1,5 @@
+# Sweden - Joeström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Nyborg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Nyborg
new file mode 100755
index 0000000000..4f12cf2e90
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Nyborg
@@ -0,0 +1,35 @@
+# Sweden - Jokkmokk/Nyborg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Tjalmejaure b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Tjalmejaure
new file mode 100755
index 0000000000..364ba6dac0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jokkmokk_Tjalmejaure
@@ -0,0 +1,36 @@
+# Sweden - Jokkmokk/Tjalmejaure
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jonkoping_Bondberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jonkoping_Bondberget
new file mode 100755
index 0000000000..f8ca1d45a3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jonkoping_Bondberget
@@ -0,0 +1,36 @@
+# Sweden - Jönköping/Bondberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jormvattnet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jormvattnet
new file mode 100755
index 0000000000..0a9b458347
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jormvattnet
@@ -0,0 +1,5 @@
+# Sweden - Jormvattnet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jude b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jude
new file mode 100755
index 0000000000..f0a4dfef60
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Jude
@@ -0,0 +1,5 @@
+# Sweden - Jude
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Hamptjarnsberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Hamptjarnsberget
new file mode 100755
index 0000000000..a031b71927
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Hamptjarnsberget
@@ -0,0 +1,5 @@
+# Sweden - Junsele Hamptjärnsberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Vallen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Vallen
new file mode 100755
index 0000000000..af1fe14a11
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Junsele_Vallen
@@ -0,0 +1,5 @@
+# Sweden - Junsele/Vallen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kagerod_Mollarp b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kagerod_Mollarp
new file mode 100755
index 0000000000..665b195620
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kagerod_Mollarp
@@ -0,0 +1,5 @@
+# Sweden - Kågeröd/Möllarp
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalarne b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalarne
new file mode 100755
index 0000000000..3ed4c70906
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalarne
@@ -0,0 +1,5 @@
+# Sweden - Kälarne
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalen
new file mode 100755
index 0000000000..c26d776246
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalen
@@ -0,0 +1,5 @@
+# Sweden - Kälen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalix b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalix
new file mode 100755
index 0000000000..fe4e1d2f7e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kalix
@@ -0,0 +1,36 @@
+# Sweden - Kalix
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallered b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallered
new file mode 100755
index 0000000000..9bad036587
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallered
@@ -0,0 +1,5 @@
+# Sweden - Kållered
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallinge_Kalleberga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallinge_Kalleberga
new file mode 100755
index 0000000000..4079c6b05c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallinge_Kalleberga
@@ -0,0 +1,35 @@
+# Sweden - Kallinge/Kalleberga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallror b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallror
new file mode 100755
index 0000000000..9c05f41cef
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kallror
@@ -0,0 +1,5 @@
+# Sweden - Kallrör
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kampersvik_Ekeberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kampersvik_Ekeberget
new file mode 100755
index 0000000000..37394cab8c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kampersvik_Ekeberget
@@ -0,0 +1,5 @@
+# Sweden - Kämpersvik/Ekeberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karbole b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karbole
new file mode 100755
index 0000000000..f7340cc5a4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karbole
@@ -0,0 +1,13 @@
+# Sweden - Kårböle
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karesuando b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karesuando
new file mode 100755
index 0000000000..ac8e934685
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karesuando
@@ -0,0 +1,5 @@
+# Sweden - Karesuando
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlanda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlanda
new file mode 100755
index 0000000000..3c455a1caa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlanda
@@ -0,0 +1,5 @@
+# Sweden - Karlanda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlsborg_Vaberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlsborg_Vaberget
new file mode 100755
index 0000000000..dc1a6af8dd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlsborg_Vaberget
@@ -0,0 +1,13 @@
+# Sweden - Karlsborg/Vaberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlshamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlshamn
new file mode 100755
index 0000000000..948e5d0e30
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlshamn
@@ -0,0 +1,36 @@
+# Sweden - Karlshamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Jamjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Jamjo
new file mode 100755
index 0000000000..d7c2bf9403
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Jamjo
@@ -0,0 +1,35 @@
+# Sweden - Karlskrona/Jämjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Vamo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Vamo
new file mode 100755
index 0000000000..56195f4994
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlskrona_Vamo
@@ -0,0 +1,36 @@
+# Sweden - Karlskrona/Vämö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlstad_Sormon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlstad_Sormon
new file mode 100755
index 0000000000..0173e42fe0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Karlstad_Sormon
@@ -0,0 +1,36 @@
+# Sweden - Karlstad Sörmon
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kasta_Ringkallen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kasta_Ringkallen
new file mode 100755
index 0000000000..6288d414af
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kasta_Ringkallen
@@ -0,0 +1,5 @@
+# Sweden - Kåsta Ringkallen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxas
new file mode 100755
index 0000000000..e4e67c8061
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxas
@@ -0,0 +1,5 @@
+# Sweden - Kaxås
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxholmen_Vistakulle b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxholmen_Vistakulle
new file mode 100755
index 0000000000..e3f04e321f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kaxholmen_Vistakulle
@@ -0,0 +1,13 @@
+# Sweden - Kaxholmen/Vistakulle
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kinnastrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kinnastrom
new file mode 100755
index 0000000000..a612d363b9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kinnastrom
@@ -0,0 +1,13 @@
+# Sweden - Kinnaström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kiruna_Kirunavaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kiruna_Kirunavaara
new file mode 100755
index 0000000000..91ee463192
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kiruna_Kirunavaara
@@ -0,0 +1,63 @@
+# Sweden - Kiruna/Kirunavaara
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kisa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kisa
new file mode 100755
index 0000000000..590111de40
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kisa
@@ -0,0 +1,70 @@
+# Sweden - Kisa
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klingsta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klingsta
new file mode 100755
index 0000000000..41b96693e0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klingsta
@@ -0,0 +1,5 @@
+# Sweden - Klingsta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klovsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klovsjo
new file mode 100755
index 0000000000..2cbf2e487e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Klovsjo
@@ -0,0 +1,5 @@
+# Sweden - Klövsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knared b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knared
new file mode 100755
index 0000000000..04db854aae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knared
@@ -0,0 +1,13 @@
+# Sweden - Knäred
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knavland b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knavland
new file mode 100755
index 0000000000..9a092243c4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Knavland
@@ -0,0 +1,5 @@
+# Sweden - Knävland
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopmanholmen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopmanholmen
new file mode 100755
index 0000000000..bbe55a60fb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopmanholmen
@@ -0,0 +1,63 @@
+# Sweden - Köpmanholmen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopparberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopparberg
new file mode 100755
index 0000000000..b684445d9b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kopparberg
@@ -0,0 +1,35 @@
+# Sweden - Kopparberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Koppom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Koppom
new file mode 100755
index 0000000000..e6001531ee
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Koppom
@@ -0,0 +1,35 @@
+# Sweden - Koppom
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Korstrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Korstrask
new file mode 100755
index 0000000000..b854cc2571
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Korstrask
@@ -0,0 +1,5 @@
+# Sweden - Korsträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kottsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kottsjon
new file mode 100755
index 0000000000..a3b0cde3f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kottsjon
@@ -0,0 +1,5 @@
+# Sweden - Köttsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kovland b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kovland
new file mode 100755
index 0000000000..9f5d97cb1b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kovland
@@ -0,0 +1,5 @@
+# Sweden - Kovland
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Lugnvik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Lugnvik
new file mode 100755
index 0000000000..67bab9a7dc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Lugnvik
@@ -0,0 +1,36 @@
+# Sweden - Kramfors/Lugnvik
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Ostby b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Ostby
new file mode 100755
index 0000000000..9cd0d78bcb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kramfors_Ostby
@@ -0,0 +1,5 @@
+# Sweden - Kramfors/Östby
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krangede b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krangede
new file mode 100755
index 0000000000..ac6ff0b944
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krangede
@@ -0,0 +1,5 @@
+# Sweden - Krångede
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristineberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristineberg
new file mode 100755
index 0000000000..f8c00a4260
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristineberg
@@ -0,0 +1,5 @@
+# Sweden - Kristineberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristinehamn_Utsiktsberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristinehamn_Utsiktsberget
new file mode 100755
index 0000000000..a4d53921b8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kristinehamn_Utsiktsberget
@@ -0,0 +1,36 @@
+# Sweden - Kristinehamn/Utsiktsberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krokstrand b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krokstrand
new file mode 100755
index 0000000000..b999d34179
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Krokstrand
@@ -0,0 +1,5 @@
+# Sweden - Krokstrand
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kultsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kultsjon
new file mode 100755
index 0000000000..a79ca581e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kultsjon
@@ -0,0 +1,5 @@
+# Sweden - Kultsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungalv b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungalv
new file mode 100755
index 0000000000..ea51882fa3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungalv
@@ -0,0 +1,35 @@
+# Sweden - Kungälv
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsater b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsater
new file mode 100755
index 0000000000..26026b6251
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsater
@@ -0,0 +1,13 @@
+# Sweden - Kungsäter
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsbacka_Ojersbo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsbacka_Ojersbo
new file mode 100755
index 0000000000..17fbda15ca
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsbacka_Ojersbo
@@ -0,0 +1,5 @@
+# Sweden - Kungsbacka/Öjersbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_GI b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_GI
new file mode 100755
index 0000000000..8d34e20237
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_GI
@@ -0,0 +1,13 @@
+# Sweden - Kungsberget/GI
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_Gl b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_Gl
new file mode 100755
index 0000000000..f3e5c2f5b3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungsberget_Gl
@@ -0,0 +1,5 @@
+# Sweden - Kungsberget/Gl
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungshamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungshamn
new file mode 100755
index 0000000000..adb59893f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kungshamn
@@ -0,0 +1,35 @@
+# Sweden - Kungshamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kurravaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kurravaara
new file mode 100755
index 0000000000..06abf2ba75
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kurravaara
@@ -0,0 +1,5 @@
+# Sweden - Kurravaara
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvarnsvedjan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvarnsvedjan
new file mode 100755
index 0000000000..c2d9f6e84a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvarnsvedjan
@@ -0,0 +1,5 @@
+# Sweden - Kvarnsvedjan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Arrevare b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Arrevare
new file mode 100755
index 0000000000..b4606acc13
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Arrevare
@@ -0,0 +1,5 @@
+# Sweden - Kvikkjokk/Årrevare
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Tavvevare b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Tavvevare
new file mode 100755
index 0000000000..d15e9a54da
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kvikkjokk_Tavvevare
@@ -0,0 +1,5 @@
+# Sweden - Kvikkjokk/Tavvevare
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kyrkesund b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kyrkesund
new file mode 100755
index 0000000000..935a3009e5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Kyrkesund
@@ -0,0 +1,5 @@
+# Sweden - Kyrkesund
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lagfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lagfors
new file mode 100755
index 0000000000..c4f530c346
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lagfors
@@ -0,0 +1,5 @@
+# Sweden - Lagfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laggarberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laggarberg
new file mode 100755
index 0000000000..0c96875d8a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laggarberg
@@ -0,0 +1,5 @@
+# Sweden - Laggarberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laisvall b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laisvall
new file mode 100755
index 0000000000..36d1b0abab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laisvall
@@ -0,0 +1,5 @@
+# Sweden - Laisvall
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langa
new file mode 100755
index 0000000000..f08353244f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langa
@@ -0,0 +1,5 @@
+# Sweden - Långå
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langsele b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langsele
new file mode 100755
index 0000000000..15bddfc170
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langsele
@@ -0,0 +1,5 @@
+# Sweden - Långsele
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan
new file mode 100755
index 0000000000..158f8b10d5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan
@@ -0,0 +1,13 @@
+# Sweden - Långshyttan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan_Engelsfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan_Engelsfors
new file mode 100755
index 0000000000..420d18b509
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Langshyttan_Engelsfors
@@ -0,0 +1,6 @@
+# Sweden - Långshyttan/Engelsfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxsjo
new file mode 100755
index 0000000000..655b28acc0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxsjo
@@ -0,0 +1,5 @@
+# Sweden - Laxsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxviken b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxviken
new file mode 100755
index 0000000000..4bd6bd9828
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Laxviken
@@ -0,0 +1,5 @@
+# Sweden - Laxviken
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Asledsberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Asledsberget
new file mode 100755
index 0000000000..f7a0d8a31f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Asledsberget
@@ -0,0 +1,35 @@
+# Sweden - Leksand/Åsledsberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Karingberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Karingberget
new file mode 100755
index 0000000000..431233b072
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Leksand_Karingberget
@@ -0,0 +1,13 @@
+# Sweden - Leksand/Käringberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lekvattnet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lekvattnet
new file mode 100755
index 0000000000..e0529247ea
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lekvattnet
@@ -0,0 +1,5 @@
+# Sweden - Lekvattnet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lerdala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lerdala
new file mode 100755
index 0000000000..3e9750f318
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lerdala
@@ -0,0 +1,13 @@
+# Sweden - Lerdala
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lesjofors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lesjofors
new file mode 100755
index 0000000000..47ec1048d5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lesjofors
@@ -0,0 +1,35 @@
+# Sweden - Lesjöfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden
new file mode 100755
index 0000000000..7e0e84492a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden
@@ -0,0 +1,5 @@
+# Sweden - Liden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden_Osterstrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden_Osterstrom
new file mode 100755
index 0000000000..37120a1b01
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Liden_Osterstrom
@@ -0,0 +1,5 @@
+# Sweden - Liden/Österström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilla_Edet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilla_Edet
new file mode 100755
index 0000000000..edaf9067eb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilla_Edet
@@ -0,0 +1,35 @@
+# Sweden - Lilla Edet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillogda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillogda
new file mode 100755
index 0000000000..8ceaea1792
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillogda
@@ -0,0 +1,5 @@
+# Sweden - Lillögda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillpite_Bastaberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillpite_Bastaberget
new file mode 100755
index 0000000000..a296c0c794
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lillpite_Bastaberget
@@ -0,0 +1,5 @@
+# Sweden - Lillpite Bastaberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilltjara_Digerberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilltjara_Digerberget
new file mode 100755
index 0000000000..cd9197b377
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lilltjara_Digerberget
@@ -0,0 +1,13 @@
+# Sweden - Lilltjära/Digerberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Limedsforsen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Limedsforsen
new file mode 100755
index 0000000000..64c4d25ecb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Limedsforsen
@@ -0,0 +1,13 @@
+# Sweden - Limedsforsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lindshammar_Ramkvilla b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lindshammar_Ramkvilla
new file mode 100755
index 0000000000..e736d0ddfe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lindshammar_Ramkvilla
@@ -0,0 +1,13 @@
+# Sweden - Lindshammar/Ramkvilla
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linkoping_Vattentornet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linkoping_Vattentornet
new file mode 100755
index 0000000000..ecc44e8497
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linkoping_Vattentornet
@@ -0,0 +1,36 @@
+# Sweden - Linköping/Vattentornet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linsell b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linsell
new file mode 100755
index 0000000000..679209bd13
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Linsell
@@ -0,0 +1,5 @@
+# Sweden - Linsell
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lit b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lit
new file mode 100755
index 0000000000..abe24ecf36
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lit
@@ -0,0 +1,5 @@
+# Sweden - Lit
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn
new file mode 100755
index 0000000000..c256ce2a4d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn
@@ -0,0 +1,25 @@
+# Sweden - Ljugarn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn_3193 b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn_3193
new file mode 100755
index 0000000000..d248ceca84
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljugarn_3193
@@ -0,0 +1,30 @@
+# Sweden - Ljugarn/3193
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungaverk b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungaverk
new file mode 100755
index 0000000000..9b8144d98f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungaverk
@@ -0,0 +1,5 @@
+# Sweden - Ljungaverk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungdalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungdalen
new file mode 100755
index 0000000000..993efd06b4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljungdalen
@@ -0,0 +1,35 @@
+# Sweden - Ljungdalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljustorp b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljustorp
new file mode 100755
index 0000000000..1444dc9cd3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljustorp
@@ -0,0 +1,5 @@
+# Sweden - Ljustorp
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljusvattnet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljusvattnet
new file mode 100755
index 0000000000..25026caf8e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ljusvattnet
@@ -0,0 +1,5 @@
+# Sweden - Ljusvattnet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loderups_Strandbad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loderups_Strandbad
new file mode 100755
index 0000000000..a9b40730fc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loderups_Strandbad
@@ -0,0 +1,5 @@
+# Sweden - Löderups Strandbad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loffstrand b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loffstrand
new file mode 100755
index 0000000000..440ac0abc3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Loffstrand
@@ -0,0 +1,36 @@
+# Sweden - Loffstrand
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lofsdalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lofsdalen
new file mode 100755
index 0000000000..dcae230411
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lofsdalen
@@ -0,0 +1,5 @@
+# Sweden - Lofsdalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Logdealv b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Logdealv
new file mode 100755
index 0000000000..b1a7ac9985
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Logdealv
@@ -0,0 +1,5 @@
+# Sweden - Lögdeälv
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lonneberga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lonneberga
new file mode 100755
index 0000000000..29a8e8fb9e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lonneberga
@@ -0,0 +1,35 @@
+# Sweden - Lönneberga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lorstrand b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lorstrand
new file mode 100755
index 0000000000..dbbde4aee2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lorstrand
@@ -0,0 +1,13 @@
+# Sweden - Lörstrand
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lovanger b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lovanger
new file mode 100755
index 0000000000..0e05df5fed
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lovanger
@@ -0,0 +1,5 @@
+# Sweden - Lövånger
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ludvika_Bjorkasen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ludvika_Bjorkasen
new file mode 100755
index 0000000000..8512a0d58f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ludvika_Bjorkasen
@@ -0,0 +1,36 @@
+# Sweden - Ludvika/Björkåsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lumsheden_Trekanten b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lumsheden_Trekanten
new file mode 100755
index 0000000000..5b9e0b6b54
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lumsheden_Trekanten
@@ -0,0 +1,13 @@
+# Sweden - Lumsheden/Trekanten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lycksele_Knaften b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lycksele_Knaften
new file mode 100755
index 0000000000..b5ec6dd05f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Lycksele_Knaften
@@ -0,0 +1,36 @@
+# Sweden - Lycksele/Knaften
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mahult b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mahult
new file mode 100755
index 0000000000..d27311d61c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mahult
@@ -0,0 +1,13 @@
+# Sweden - Mahult
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mala
new file mode 100755
index 0000000000..96fce5a1b4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mala
@@ -0,0 +1,5 @@
+# Sweden - Malå
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malmo_Jagersro b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malmo_Jagersro
new file mode 100755
index 0000000000..c8725c9f44
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malmo_Jagersro
@@ -0,0 +1,36 @@
+# Sweden - Malmö/Jägersro
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malung b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malung
new file mode 100755
index 0000000000..4ea6361682
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Malung
@@ -0,0 +1,36 @@
+# Sweden - Malung
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Manserud b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Manserud
new file mode 100755
index 0000000000..a9ee5b0244
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Manserud
@@ -0,0 +1,5 @@
+# Sweden - Månserud
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mardsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mardsjo
new file mode 100755
index 0000000000..ddf67ba577
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mardsjo
@@ -0,0 +1,5 @@
+# Sweden - Mårdsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mariannelund b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mariannelund
new file mode 100755
index 0000000000..21b5100030
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mariannelund
@@ -0,0 +1,6 @@
+# Sweden - Mariannelund
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Markaryd_Hualtet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Markaryd_Hualtet
new file mode 100755
index 0000000000..453807e8a0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Markaryd_Hualtet
@@ -0,0 +1,49 @@
+# Sweden - Markaryd/Hualtet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matfors
new file mode 100755
index 0000000000..4f0b82bc48
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matfors
@@ -0,0 +1,35 @@
+# Sweden - Matfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matsdal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matsdal
new file mode 100755
index 0000000000..a06ec36f4e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Matsdal
@@ -0,0 +1,5 @@
+# Sweden - Matsdal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Medstugan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Medstugan
new file mode 100755
index 0000000000..2ca7194490
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Medstugan
@@ -0,0 +1,5 @@
+# Sweden - Medstugan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mittadalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mittadalen
new file mode 100755
index 0000000000..ddbc60adb7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mittadalen
@@ -0,0 +1,5 @@
+# Sweden - Mittådalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjallom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjallom
new file mode 100755
index 0000000000..8f0ea291e9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjallom
@@ -0,0 +1,35 @@
+# Sweden - Mjällom
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjosjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjosjo
new file mode 100755
index 0000000000..ea339fd520
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mjosjo
@@ -0,0 +1,5 @@
+# Sweden - Mjösjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moliden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moliden
new file mode 100755
index 0000000000..6067827e2d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moliden
@@ -0,0 +1,5 @@
+# Sweden - Moliden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molnbo_Tallstugan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molnbo_Tallstugan
new file mode 100755
index 0000000000..5aa617699a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molnbo_Tallstugan
@@ -0,0 +1,35 @@
+# Sweden - Mölnbo/Tallstugan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molndal_Vasterberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molndal_Vasterberget
new file mode 100755
index 0000000000..8bc31222e9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Molndal_Vasterberget
@@ -0,0 +1,30 @@
+# Sweden - Mölndal/Västerberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mora_Eldris b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mora_Eldris
new file mode 100755
index 0000000000..322331bc32
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mora_Eldris
@@ -0,0 +1,63 @@
+# Sweden - Mora/Eldris
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Morkret b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Morkret
new file mode 100755
index 0000000000..cac8286673
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Morkret
@@ -0,0 +1,5 @@
+# Sweden - Mörkret
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moskosel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moskosel
new file mode 100755
index 0000000000..7c20752c87
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Moskosel
@@ -0,0 +1,5 @@
+# Sweden - Moskosel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Motala_Ervasteby b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Motala_Ervasteby
new file mode 100755
index 0000000000..eb46976b4c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Motala_Ervasteby
@@ -0,0 +1,70 @@
+# Sweden - Motala/Ervasteby
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mullsjo_Torestorp b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mullsjo_Torestorp
new file mode 100755
index 0000000000..af676e5c2a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Mullsjo_Torestorp
@@ -0,0 +1,35 @@
+# Sweden - Mullsjö/Torestorp
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkedal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkedal
new file mode 100755
index 0000000000..bc022c38e1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkedal
@@ -0,0 +1,35 @@
+# Sweden - Munkedal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkfors
new file mode 100755
index 0000000000..5dcc6563f0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Munkfors
@@ -0,0 +1,35 @@
+# Sweden - Munkfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Muodoslompolo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Muodoslompolo
new file mode 100755
index 0000000000..b10d741d52
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Muodoslompolo
@@ -0,0 +1,5 @@
+# Sweden - Muodoslompolo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nalden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nalden
new file mode 100755
index 0000000000..42e4ebebc1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nalden
@@ -0,0 +1,5 @@
+# Sweden - Nälden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasaker b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasaker
new file mode 100755
index 0000000000..5df6e2cd3b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasaker
@@ -0,0 +1,5 @@
+# Sweden - Näsåker
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasanget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasanget
new file mode 100755
index 0000000000..381ac65d42
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasanget
@@ -0,0 +1,5 @@
+# Sweden - Näsänget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nassjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nassjo
new file mode 100755
index 0000000000..7b1628479f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nassjo
@@ -0,0 +1,63 @@
+# Sweden - Nässjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasteln b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasteln
new file mode 100755
index 0000000000..e47ade612f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nasteln
@@ -0,0 +1,5 @@
+# Sweden - Nästeln
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Navekvarn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Navekvarn
new file mode 100755
index 0000000000..cccc63eeae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Navekvarn
@@ -0,0 +1,6 @@
+# Sweden - Nävekvarn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Naverede_Oberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Naverede_Oberget
new file mode 100755
index 0000000000..b6e6fb69c8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Naverede_Oberget
@@ -0,0 +1,5 @@
+# Sweden - Näverede Öberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Niemisel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Niemisel
new file mode 100755
index 0000000000..eee6be7d64
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Niemisel
@@ -0,0 +1,5 @@
+# Sweden - Niemisel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordanede b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordanede
new file mode 100755
index 0000000000..3a2ad29945
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordanede
@@ -0,0 +1,5 @@
+# Sweden - Nordanede
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordmaling b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordmaling
new file mode 100755
index 0000000000..9d02cd5de6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nordmaling
@@ -0,0 +1,5 @@
+# Sweden - Nordmaling
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norra_Rorum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norra_Rorum
new file mode 100755
index 0000000000..a08dfd8f70
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norra_Rorum
@@ -0,0 +1,5 @@
+# Sweden - Norra Rörum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrahammar b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrahammar
new file mode 100755
index 0000000000..d27605944d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrahammar
@@ -0,0 +1,13 @@
+# Sweden - Norrahammar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norraker b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norraker
new file mode 100755
index 0000000000..cfea43f319
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norraker
@@ -0,0 +1,5 @@
+# Sweden - Norråker
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrfors
new file mode 100755
index 0000000000..d9a0cbe947
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrfors
@@ -0,0 +1,5 @@
+# Sweden - Norrfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrhassel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrhassel
new file mode 100755
index 0000000000..69b698e620
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrhassel
@@ -0,0 +1,5 @@
+# Sweden - Norrhassel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrkoping_Krokek b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrkoping_Krokek
new file mode 100755
index 0000000000..f6e6e48973
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrkoping_Krokek
@@ -0,0 +1,36 @@
+# Sweden - Norrköping/Krokek
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra
new file mode 100755
index 0000000000..33b6c8fb29
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra
@@ -0,0 +1,30 @@
+# Sweden - Norrtälje Södra
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra_Bergen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra_Bergen
new file mode 100755
index 0000000000..7c82968498
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norrtalje_Sodra_Bergen
@@ -0,0 +1,61 @@
+# Sweden - Norrtälje/Södra Bergen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norsjovallen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norsjovallen
new file mode 100755
index 0000000000..4f3e7689af
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Norsjovallen
@@ -0,0 +1,5 @@
+# Sweden - Norsjövallen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyhem b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyhem
new file mode 100755
index 0000000000..a7406f44e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyhem
@@ -0,0 +1,5 @@
+# Sweden - Nyhem
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nykoping b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nykoping
new file mode 100755
index 0000000000..6735148f62
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nykoping
@@ -0,0 +1,13 @@
+# Sweden - Nyköping
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyliden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyliden
new file mode 100755
index 0000000000..c03bc4c9c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nyliden
@@ -0,0 +1,5 @@
+# Sweden - Nyliden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nynashamn_Vattentornet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nynashamn_Vattentornet
new file mode 100755
index 0000000000..ec118d8303
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Nynashamn_Vattentornet
@@ -0,0 +1,35 @@
+# Sweden - Nynäshamn/Vattentornet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Odsmal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Odsmal
new file mode 100755
index 0000000000..fff9356d4c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Odsmal
@@ -0,0 +1,5 @@
+# Sweden - Ödsmål
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olden_Telestation b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olden_Telestation
new file mode 100755
index 0000000000..4a65faea78
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olden_Telestation
@@ -0,0 +1,5 @@
+# Sweden - Olden/Telestation
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olkamangi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olkamangi
new file mode 100755
index 0000000000..c76b784328
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olkamangi
@@ -0,0 +1,5 @@
+# Sweden - Olkamangi
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olofstrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olofstrom
new file mode 100755
index 0000000000..e883dc3f26
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Olofstrom
@@ -0,0 +1,5 @@
+# Sweden - Olofström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orebro_Lockhyttan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orebro_Lockhyttan
new file mode 100755
index 0000000000..036d74b965
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orebro_Lockhyttan
@@ -0,0 +1,70 @@
+# Sweden - Örebro/Lockhyttan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orkelljunga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orkelljunga
new file mode 100755
index 0000000000..2306c7e6f4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Orkelljunga
@@ -0,0 +1,35 @@
+# Sweden - Örkelljunga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ornskoldsvik_As b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ornskoldsvik_As
new file mode 100755
index 0000000000..b35452cbdb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ornskoldsvik_As
@@ -0,0 +1,70 @@
+# Sweden - Örnsköldsvik/Ås
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000 \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oskarshamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oskarshamn
new file mode 100755
index 0000000000..8ee04ca70a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oskarshamn
@@ -0,0 +1,35 @@
+# Sweden - Oskarshamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osmo_Bjorsta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osmo_Bjorsta
new file mode 100755
index 0000000000..c5973bffdc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osmo_Bjorsta
@@ -0,0 +1,10 @@
+# Sweden - Ösmo/Björsta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osterforse b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osterforse
new file mode 100755
index 0000000000..ce72b930f8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osterforse
@@ -0,0 +1,5 @@
+# Sweden - Österforse
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostergraninge b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostergraninge
new file mode 100755
index 0000000000..1c0a589897
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostergraninge
@@ -0,0 +1,5 @@
+# Sweden - Östergraninge
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostersund_Brattasen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostersund_Brattasen
new file mode 100755
index 0000000000..ddb74a5ce7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostersund_Brattasen
@@ -0,0 +1,36 @@
+# Sweden - Östersund/Brattåsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osthammar_Valo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osthammar_Valo
new file mode 100755
index 0000000000..301063d229
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Osthammar_Valo
@@ -0,0 +1,36 @@
+# Sweden - Östhammar/Valö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostmark b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostmark
new file mode 100755
index 0000000000..40cb1a7899
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ostmark
@@ -0,0 +1,5 @@
+# Sweden - Östmark
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overammer b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overammer
new file mode 100755
index 0000000000..db3e13bde1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overammer
@@ -0,0 +1,5 @@
+# Sweden - Överammer
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overhogdal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overhogdal
new file mode 100755
index 0000000000..4990749e16
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overhogdal
@@ -0,0 +1,5 @@
+# Sweden - Överhogdal
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overkalix b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overkalix
new file mode 100755
index 0000000000..56612b8023
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overkalix
@@ -0,0 +1,36 @@
+# Sweden - Överkalix
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overklinten b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overklinten
new file mode 100755
index 0000000000..5c427eea48
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overklinten
@@ -0,0 +1,5 @@
+# Sweden - Överklinten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overrissjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overrissjo
new file mode 100755
index 0000000000..030f14f59a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overrissjo
@@ -0,0 +1,5 @@
+# Sweden - Överrissjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overtornea_Sarkivaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overtornea_Sarkivaara
new file mode 100755
index 0000000000..1d9bee0260
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overtornea_Sarkivaara
@@ -0,0 +1,35 @@
+# Sweden - Övertorneå Särkivaara
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overturingen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overturingen
new file mode 100755
index 0000000000..1dbac13361
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Overturingen
@@ -0,0 +1,5 @@
+# Sweden - Överturingen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oxberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oxberg
new file mode 100755
index 0000000000..3a28be5f2b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Oxberg
@@ -0,0 +1,13 @@
+# Sweden - Oxberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pajala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pajala
new file mode 100755
index 0000000000..a0e7b6408b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pajala
@@ -0,0 +1,35 @@
+# Sweden - Pajala
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistom
new file mode 100755
index 0000000000..3dd9b5062f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistom
@@ -0,0 +1,13 @@
+# Sweden - Paulistöm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistrom
new file mode 100755
index 0000000000..60f8253942
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Paulistrom
@@ -0,0 +1,5 @@
+# Sweden - Pauliström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pilgrimstad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pilgrimstad
new file mode 100755
index 0000000000..cbed2912f5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Pilgrimstad
@@ -0,0 +1,5 @@
+# Sweden - Pilgrimstad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Porjus b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Porjus
new file mode 100755
index 0000000000..720623d5a1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Porjus
@@ -0,0 +1,35 @@
+# Sweden - Porjus
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Puoltsa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Puoltsa
new file mode 100755
index 0000000000..4d3140b482
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Puoltsa
@@ -0,0 +1,5 @@
+# Sweden - Puoltsa
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ragunda b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ragunda
new file mode 100755
index 0000000000..7bd1705d82
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ragunda
@@ -0,0 +1,35 @@
+# Sweden - Ragunda
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsele_Skavasen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsele_Skavasen
new file mode 100755
index 0000000000..fbd6e4a478
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsele_Skavasen
@@ -0,0 +1,35 @@
+# Sweden - Ramsele Skavåsen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsjo
new file mode 100755
index 0000000000..8bb3ffe835
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramsjo
@@ -0,0 +1,5 @@
+# Sweden - Ramsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramundberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramundberget
new file mode 100755
index 0000000000..0f8c16958f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ramundberget
@@ -0,0 +1,5 @@
+# Sweden - Ramundberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randalen
new file mode 100755
index 0000000000..c0f4230810
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randalen
@@ -0,0 +1,5 @@
+# Sweden - Råndalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randijaure b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randijaure
new file mode 100755
index 0000000000..ccfa86b7e6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Randijaure
@@ -0,0 +1,5 @@
+# Sweden - Randijaure
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ransater b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ransater
new file mode 100755
index 0000000000..8615695795
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ransater
@@ -0,0 +1,5 @@
+# Sweden - Ransäter
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rattvik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rattvik
new file mode 100755
index 0000000000..725bc8b7d5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rattvik
@@ -0,0 +1,6 @@
+# Sweden - Rättvik
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rengsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rengsjo
new file mode 100755
index 0000000000..076c45debe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rengsjo
@@ -0,0 +1,13 @@
+# Sweden - Rengsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Renstrom b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Renstrom
new file mode 100755
index 0000000000..f710ec3db1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Renstrom
@@ -0,0 +1,5 @@
+# Sweden - Renström
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Resele b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Resele
new file mode 100755
index 0000000000..b706c8765f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Resele
@@ -0,0 +1,5 @@
+# Sweden - Resele
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Risback b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Risback
new file mode 100755
index 0000000000..f27173e2ff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Risback
@@ -0,0 +1,5 @@
+# Sweden - Risbäck
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rissna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rissna
new file mode 100755
index 0000000000..29efffe268
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rissna
@@ -0,0 +1,5 @@
+# Sweden - Rissna
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ritsem b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ritsem
new file mode 100755
index 0000000000..4c98209de4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ritsem
@@ -0,0 +1,5 @@
+# Sweden - Ritsem
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Robertsfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Robertsfors
new file mode 100755
index 0000000000..01f0ceef9a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Robertsfors
@@ -0,0 +1,5 @@
+# Sweden - Robertsfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rojdafors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rojdafors
new file mode 100755
index 0000000000..0119dbb72e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rojdafors
@@ -0,0 +1,5 @@
+# Sweden - Röjdåfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ronnang b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ronnang
new file mode 100755
index 0000000000..5e8607f561
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ronnang
@@ -0,0 +1,5 @@
+# Sweden - Rönnäng
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rorbacksnas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rorbacksnas
new file mode 100755
index 0000000000..24e081ed30
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rorbacksnas
@@ -0,0 +1,13 @@
+# Sweden - Rörbäcksnäs
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rosson b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rosson
new file mode 100755
index 0000000000..6807bd35cd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rosson
@@ -0,0 +1,5 @@
+# Sweden - Rossön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rusksele b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rusksele
new file mode 100755
index 0000000000..75d36e4e15
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Rusksele
@@ -0,0 +1,5 @@
+# Sweden - Rusksele
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sadvaluspen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sadvaluspen
new file mode 100755
index 0000000000..6510a36b5f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sadvaluspen
@@ -0,0 +1,5 @@
+# Sweden - Sädvaluspen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sagmyra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sagmyra
new file mode 100755
index 0000000000..a9d67e8a63
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sagmyra
@@ -0,0 +1,13 @@
+# Sweden - Sågmyra
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saivomuotka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saivomuotka
new file mode 100755
index 0000000000..57b43a6d81
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saivomuotka
@@ -0,0 +1,5 @@
+# Sweden - Saivomuotka
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salen
new file mode 100755
index 0000000000..58bd5a69b9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salen
@@ -0,0 +1,13 @@
+# Sweden - Sälen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salfjallet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salfjallet
new file mode 100755
index 0000000000..aa161acb63
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Salfjallet
@@ -0,0 +1,13 @@
+# Sweden - Sälfjället
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sarna_Mickeltemplet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sarna_Mickeltemplet
new file mode 100755
index 0000000000..1ae4e26bb6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sarna_Mickeltemplet
@@ -0,0 +1,13 @@
+# Sweden - Särna/Mickeltemplet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Satila b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Satila
new file mode 100755
index 0000000000..90eff02178
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Satila
@@ -0,0 +1,13 @@
+# Sweden - Sätila
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savar_Sorbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savar_Sorbyn
new file mode 100755
index 0000000000..4c924bdc00
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savar_Sorbyn
@@ -0,0 +1,5 @@
+# Sweden - Sävar Sörbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savast b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savast
new file mode 100755
index 0000000000..ea99007821
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Savast
@@ -0,0 +1,5 @@
+# Sweden - Sävast
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saxdalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saxdalen
new file mode 100755
index 0000000000..cf3f4ad0de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Saxdalen
@@ -0,0 +1,13 @@
+# Sweden - Saxdalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seitevaare b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seitevaare
new file mode 100755
index 0000000000..a02c831a53
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seitevaare
@@ -0,0 +1,5 @@
+# Sweden - Seitevaare
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Selanger b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Selanger
new file mode 100755
index 0000000000..8ea3e2a030
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Selanger
@@ -0,0 +1,5 @@
+# Sweden - Selånger
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seltjarn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seltjarn
new file mode 100755
index 0000000000..3914c8d4e7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Seltjarn
@@ -0,0 +1,5 @@
+# Sweden - Seltjärn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sidensjo_Aberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sidensjo_Aberget
new file mode 100755
index 0000000000..1ae9b5ba50
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sidensjo_Aberget
@@ -0,0 +1,5 @@
+# Sweden - Sidensjö Åberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Siljansnas_Uvberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Siljansnas_Uvberget
new file mode 100755
index 0000000000..7f35c519c8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Siljansnas_Uvberget
@@ -0,0 +1,13 @@
+# Sweden - Siljansnäs/Uvberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Simrishamn_Fabriksgatan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Simrishamn_Fabriksgatan
new file mode 100755
index 0000000000..e5583def7e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Simrishamn_Fabriksgatan
@@ -0,0 +1,35 @@
+# Sweden - Simrishamn/Fabriksgatan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalan
new file mode 100755
index 0000000000..71362e51c7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalan
@@ -0,0 +1,5 @@
+# Sweden - Skålan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalmsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalmsjo
new file mode 100755
index 0000000000..7f4bd42a9a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skalmsjo
@@ -0,0 +1,5 @@
+# Sweden - Skalmsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarstad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarstad
new file mode 100755
index 0000000000..58a749999d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarstad
@@ -0,0 +1,13 @@
+# Sweden - Skärstad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarvangen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarvangen
new file mode 100755
index 0000000000..ebe9594fd7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skarvangen
@@ -0,0 +1,5 @@
+# Sweden - Skärvången
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skattungbyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skattungbyn
new file mode 100755
index 0000000000..3842b303c9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skattungbyn
@@ -0,0 +1,13 @@
+# Sweden - Skattungbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skaulo_Pyhakielinen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skaulo_Pyhakielinen
new file mode 100755
index 0000000000..fbfef7b22c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skaulo_Pyhakielinen
@@ -0,0 +1,5 @@
+# Sweden - Skaulo Pyhäkielinen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skelleftea b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skelleftea
new file mode 100755
index 0000000000..6ab14003ee
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skelleftea
@@ -0,0 +1,36 @@
+# Sweden - Skellefteå
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skene_Nycklarberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skene_Nycklarberget
new file mode 100755
index 0000000000..49347d3a81
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skene_Nycklarberget
@@ -0,0 +1,13 @@
+# Sweden - Skene/Nycklarberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skillingsfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skillingsfors
new file mode 100755
index 0000000000..c635db5497
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skillingsfors
@@ -0,0 +1,5 @@
+# Sweden - Skillingsfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skorped b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skorped
new file mode 100755
index 0000000000..694e3e3e3d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skorped
@@ -0,0 +1,5 @@
+# Sweden - Skorped
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skottsund b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skottsund
new file mode 100755
index 0000000000..862c044282
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skottsund
@@ -0,0 +1,5 @@
+# Sweden - Skottsund
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skovde b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skovde
new file mode 100755
index 0000000000..4a5f8b2c15
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skovde
@@ -0,0 +1,70 @@
+# Sweden - Skövde
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skroven b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skroven
new file mode 100755
index 0000000000..98e24f07c6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skroven
@@ -0,0 +1,5 @@
+# Sweden - Skröven
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skymnas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skymnas
new file mode 100755
index 0000000000..1658d63e6b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Skymnas
@@ -0,0 +1,5 @@
+# Sweden - Skymnäs
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Slussfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Slussfors
new file mode 100755
index 0000000000..4a6a9b4de6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Slussfors
@@ -0,0 +1,5 @@
+# Sweden - Slussfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Smedjebacken_Uvberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Smedjebacken_Uvberget
new file mode 100755
index 0000000000..01658dfecc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Smedjebacken_Uvberget
@@ -0,0 +1,36 @@
+# Sweden - Smedjebacken/Uvberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderhamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderhamn
new file mode 100755
index 0000000000..6a85f0ba78
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderhamn
@@ -0,0 +1,36 @@
+# Sweden - Söderhamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderkoping b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderkoping
new file mode 100755
index 0000000000..ce55cd4c80
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soderkoping
@@ -0,0 +1,36 @@
+# Sweden - Söderköping
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sodertalje_Ragnhildsborg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sodertalje_Ragnhildsborg
new file mode 100755
index 0000000000..065434e7f7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sodertalje_Ragnhildsborg
@@ -0,0 +1,36 @@
+# Sweden - Södertälje/Ragnhildsborg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Hallsta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Hallsta
new file mode 100755
index 0000000000..1279be4b35
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Hallsta
@@ -0,0 +1,63 @@
+# Sweden - Sollefteå/Hallsta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Multra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Multra
new file mode 100755
index 0000000000..8fb8ec3641
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Solleftea_Multra
@@ -0,0 +1,63 @@
+# Sweden - Sollefteå/Multrå
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soraker b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soraker
new file mode 100755
index 0000000000..936521559c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soraker
@@ -0,0 +1,5 @@
+# Sweden - Söråker
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorbygden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorbygden
new file mode 100755
index 0000000000..20e9d318b8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorbygden
@@ -0,0 +1,5 @@
+# Sweden - Sörbygden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorflarke b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorflarke
new file mode 100755
index 0000000000..2e779f4252
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorflarke
@@ -0,0 +1,5 @@
+# Sweden - Sörflärke
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Nalovardo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Nalovardo
new file mode 100755
index 0000000000..5f8cd7b8bb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Nalovardo
@@ -0,0 +1,5 @@
+# Sweden - Sorsele Nalovardo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Vattentornet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Vattentornet
new file mode 100755
index 0000000000..ba7e3c23de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsele_Vattentornet
@@ -0,0 +1,5 @@
+# Sweden - Sorsele/Vattentornet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsjon
new file mode 100755
index 0000000000..84e99e8331
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sorsjon
@@ -0,0 +1,13 @@
+# Sweden - Sörsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soukolojarvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soukolojarvi
new file mode 100755
index 0000000000..6d5e247d84
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Soukolojarvi
@@ -0,0 +1,5 @@
+# Sweden - Soukolojärvi
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stalon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stalon
new file mode 100755
index 0000000000..ce88159a04
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stalon
@@ -0,0 +1,5 @@
+# Sweden - Stalon
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stigsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stigsjo
new file mode 100755
index 0000000000..137a59ed6b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stigsjo
@@ -0,0 +1,5 @@
+# Sweden - Stigsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Marieberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Marieberg
new file mode 100755
index 0000000000..0ae30a2f6b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Marieberg
@@ -0,0 +1,36 @@
+# Sweden - Stockholm/Marieberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Nacka b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Nacka
new file mode 100755
index 0000000000..b5345041c9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stockholm_Nacka
@@ -0,0 +1,71 @@
+# Sweden - Stockholm/Nacka
+[Teracom_Mux_1]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Teracom_Mux_2]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Teracom_Mux_3]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Teracom_Mux_4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[Teracom_Mux_5]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Hullsjon b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Hullsjon
new file mode 100755
index 0000000000..e46bc80f50
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Hullsjon
@@ -0,0 +1,5 @@
+# Sweden - Stöde/Hullsjön
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Intaget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Intaget
new file mode 100755
index 0000000000..deb3bab77e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stode_Intaget
@@ -0,0 +1,35 @@
+# Sweden - Stöde Intaget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stomne_Skasas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stomne_Skasas
new file mode 100755
index 0000000000..7e293baeba
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stomne_Skasas
@@ -0,0 +1,5 @@
+# Sweden - Stömne/Skasås
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stora_Skedvi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stora_Skedvi
new file mode 100755
index 0000000000..f00c7936c2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stora_Skedvi
@@ -0,0 +1,13 @@
+# Sweden - Stora Skedvi
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stordalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stordalen
new file mode 100755
index 0000000000..75656dd21c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stordalen
@@ -0,0 +1,5 @@
+# Sweden - Stordalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storfjaten b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storfjaten
new file mode 100755
index 0000000000..93b898edcf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storfjaten
@@ -0,0 +1,13 @@
+# Sweden - Storfjäten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storlien b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storlien
new file mode 100755
index 0000000000..10e25226b6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storlien
@@ -0,0 +1,5 @@
+# Sweden - Storlien
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storuman b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storuman
new file mode 100755
index 0000000000..9fe23fc074
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Storuman
@@ -0,0 +1,36 @@
+# Sweden - Storuman
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromstad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromstad
new file mode 100755
index 0000000000..f2609f6868
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromstad
@@ -0,0 +1,36 @@
+# Sweden - Strömstad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromsund_Grelsgard b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromsund_Grelsgard
new file mode 100755
index 0000000000..a126552d28
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stromsund_Grelsgard
@@ -0,0 +1,35 @@
+# Sweden - Strömsund/Grelsgård
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stugun b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stugun
new file mode 100755
index 0000000000..e4b62187b5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Stugun
@@ -0,0 +1,5 @@
+# Sweden - Stugun
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Styrsjobo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Styrsjobo
new file mode 100755
index 0000000000..1ccce04f9f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Styrsjobo
@@ -0,0 +1,13 @@
+# Sweden - Styrsjöbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suddesjaur b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suddesjaur
new file mode 100755
index 0000000000..36a53dc066
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suddesjaur
@@ -0,0 +1,5 @@
+# Sweden - Suddesjaur
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suijavaara b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suijavaara
new file mode 100755
index 0000000000..1f0371b5ee
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Suijavaara
@@ -0,0 +1,5 @@
+# Sweden - Suijavaara
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sulvik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sulvik
new file mode 100755
index 0000000000..d26f593778
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sulvik
@@ -0,0 +1,5 @@
+# Sweden - Sulvik
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundborn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundborn
new file mode 100755
index 0000000000..b423757e5f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundborn
@@ -0,0 +1,13 @@
+# Sweden - Sundborn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsbruk b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsbruk
new file mode 100755
index 0000000000..9c7a7fd5ad
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsbruk
@@ -0,0 +1,36 @@
+# Sweden - Sundsbruk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsvall_S_Stadsberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsvall_S_Stadsberget
new file mode 100755
index 0000000000..cf6bbdcb45
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sundsvall_S_Stadsberget
@@ -0,0 +1,36 @@
+# Sweden - Sundsvall/S Stadsberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_As b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_As
new file mode 100755
index 0000000000..c94500e27f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_As
@@ -0,0 +1,5 @@
+# Sweden - Sunne/Ås
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_Blabarskullen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_Blabarskullen
new file mode 100755
index 0000000000..c0f29a99f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunne_Blabarskullen
@@ -0,0 +1,36 @@
+# Sweden - Sunne/Blåbärskullen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunnemo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunnemo
new file mode 100755
index 0000000000..18beec2774
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sunnemo
@@ -0,0 +1,5 @@
+# Sweden - Sunnemo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svaneholm b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svaneholm
new file mode 100755
index 0000000000..9b32d44868
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svaneholm
@@ -0,0 +1,5 @@
+# Sweden - Svaneholm
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svanstein b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svanstein
new file mode 100755
index 0000000000..97e1d3e535
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svanstein
@@ -0,0 +1,5 @@
+# Sweden - Svanstein
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svardsosund_Svardso b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svardsosund_Svardso
new file mode 100755
index 0000000000..233c10e57a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svardsosund_Svardso
@@ -0,0 +1,5 @@
+# Sweden - Svärdsösund/Svärdsö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svartnas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svartnas
new file mode 100755
index 0000000000..ac37690215
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svartnas
@@ -0,0 +1,13 @@
+# Sweden - Svartnäs
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Brickan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Brickan
new file mode 100755
index 0000000000..b385b98d54
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Brickan
@@ -0,0 +1,36 @@
+# Sweden - Sveg/Brickan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Ransjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Ransjo
new file mode 100755
index 0000000000..fb503d9a93
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Sveg_Ransjo
@@ -0,0 +1,5 @@
+# Sweden - Sveg/Ransjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svenstavik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svenstavik
new file mode 100755
index 0000000000..551e33f660
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svenstavik
@@ -0,0 +1,5 @@
+# Sweden - Svenstavik
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svinesund b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svinesund
new file mode 100755
index 0000000000..32c50984d2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Svinesund
@@ -0,0 +1,5 @@
+# Sweden - Svinesund
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Syssleback b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Syssleback
new file mode 100755
index 0000000000..b2be682f3d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Syssleback
@@ -0,0 +1,35 @@
+# Sweden - Sysslebäck
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Taberg b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Taberg
new file mode 100755
index 0000000000..7ee8530f17
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Taberg
@@ -0,0 +1,13 @@
+# Sweden - Taberg
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tandadalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tandadalen
new file mode 100755
index 0000000000..e726d3a083
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tandadalen
@@ -0,0 +1,6 @@
+# Sweden - Tandådalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tannas_Vastra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tannas_Vastra
new file mode 100755
index 0000000000..9e1799c6c8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tannas_Vastra
@@ -0,0 +1,5 @@
+# Sweden - Tännäs Västra
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tanndalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tanndalen
new file mode 100755
index 0000000000..ca4b668bc3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tanndalen
@@ -0,0 +1,5 @@
+# Sweden - Tänndalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnaby_Ryfjallet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnaby_Ryfjallet
new file mode 100755
index 0000000000..62720a91ac
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnaby_Ryfjallet
@@ -0,0 +1,35 @@
+# Sweden - Tärnaby Ryfjället
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnamo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnamo
new file mode 100755
index 0000000000..0fd4e930de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tarnamo
@@ -0,0 +1,5 @@
+# Sweden - Tärnamo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tasjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tasjo
new file mode 100755
index 0000000000..b1958546b7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tasjo
@@ -0,0 +1,36 @@
+# Sweden - Tåsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tavelsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tavelsjo
new file mode 100755
index 0000000000..f300992250
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tavelsjo
@@ -0,0 +1,5 @@
+# Sweden - Tavelsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tocksfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tocksfors
new file mode 100755
index 0000000000..2c087945bb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tocksfors
@@ -0,0 +1,35 @@
+# Sweden - Töcksfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tollsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tollsjo
new file mode 100755
index 0000000000..3f18527f56
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tollsjo
@@ -0,0 +1,13 @@
+# Sweden - Töllsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tormestorp b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tormestorp
new file mode 100755
index 0000000000..d4bf4497d8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tormestorp
@@ -0,0 +1,5 @@
+# Sweden - Tormestorp
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tornetrask b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tornetrask
new file mode 100755
index 0000000000..c97b3d6d59
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tornetrask
@@ -0,0 +1,5 @@
+# Sweden - Torneträsk
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torpshammar b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torpshammar
new file mode 100755
index 0000000000..25102689db
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torpshammar
@@ -0,0 +1,35 @@
+# Sweden - Torpshammar
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torsby_Bada b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torsby_Bada
new file mode 100755
index 0000000000..fc3e506b2d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Torsby_Bada
@@ -0,0 +1,36 @@
+# Sweden - Torsby/Bada
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranas_Bredkarr b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranas_Bredkarr
new file mode 100755
index 0000000000..7e88588f50
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranas_Bredkarr
@@ -0,0 +1,35 @@
+# Sweden - Tranås/Bredkärr
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranemo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranemo
new file mode 100755
index 0000000000..eca9304382
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tranemo
@@ -0,0 +1,13 @@
+# Sweden - Tranemo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Transtrand_Bolheden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Transtrand_Bolheden
new file mode 100755
index 0000000000..2d140a9aac
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Transtrand_Bolheden
@@ -0,0 +1,36 @@
+# Sweden - Transtrand/Bolheden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Traryd_Betas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Traryd_Betas
new file mode 100755
index 0000000000..6a7bcdfd27
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Traryd_Betas
@@ -0,0 +1,36 @@
+# Sweden - Traryd/Betås
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trehorningsjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trehorningsjo
new file mode 100755
index 0000000000..e14d48dd72
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trehorningsjo
@@ -0,0 +1,5 @@
+# Sweden - Trehörningsjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trelleborg_Gylle b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trelleborg_Gylle
new file mode 100755
index 0000000000..d127f66ca5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trelleborg_Gylle
@@ -0,0 +1,35 @@
+# Sweden - Trelleborg/Gylle
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trollhattan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trollhattan
new file mode 100755
index 0000000000..72ca060920
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trollhattan
@@ -0,0 +1,36 @@
+# Sweden - Trollhättan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trosa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trosa
new file mode 100755
index 0000000000..2d6b9631b2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Trosa
@@ -0,0 +1,25 @@
+# Sweden - Trosa
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tullinge_Hamra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tullinge_Hamra
new file mode 100755
index 0000000000..b1b15aa6e1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tullinge_Hamra
@@ -0,0 +1,35 @@
+# Sweden - Tullinge/Hamra
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tyringe b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tyringe
new file mode 100755
index 0000000000..1222e5c39a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tyringe
@@ -0,0 +1,5 @@
+# Sweden - Tyringe
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tystberga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tystberga
new file mode 100755
index 0000000000..ef240a3e9b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Tystberga
@@ -0,0 +1,6 @@
+# Sweden - Tystberga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Herrestad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Herrestad
new file mode 100755
index 0000000000..bc1992bb7b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Herrestad
@@ -0,0 +1,36 @@
+# Sweden - Uddevalla/Herrestad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Kapelle b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Kapelle
new file mode 100755
index 0000000000..7a2668e62f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uddevalla_Kapelle
@@ -0,0 +1,5 @@
+# Sweden - Uddevalla/Kapelle
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uggleheden b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uggleheden
new file mode 100755
index 0000000000..afbfc68b1a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uggleheden
@@ -0,0 +1,5 @@
+# Sweden - Uggleheden
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullanger_Skidsta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullanger_Skidsta
new file mode 100755
index 0000000000..8f5a54f8d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullanger_Skidsta
@@ -0,0 +1,5 @@
+# Sweden - Ullånger Skidsta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullared b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullared
new file mode 100755
index 0000000000..29d4a02643
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ullared
@@ -0,0 +1,13 @@
+# Sweden - Ullared
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulricehamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulricehamn
new file mode 100755
index 0000000000..759c62f975
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulricehamn
@@ -0,0 +1,36 @@
+# Sweden - Ulricehamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvohamn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvohamn
new file mode 100755
index 0000000000..57ae731e56
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvohamn
@@ -0,0 +1,5 @@
+# Sweden - Ulvöhamn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvshyttan_Porjus b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvshyttan_Porjus
new file mode 100755
index 0000000000..08f0234399
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ulvshyttan_Porjus
@@ -0,0 +1,13 @@
+# Sweden - Ulvshyttan/Porjus
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umea_Mariehem b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umea_Mariehem
new file mode 100755
index 0000000000..70f7360d0a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umea_Mariehem
@@ -0,0 +1,5 @@
+# Sweden - Umeå/Mariehem
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umfors
new file mode 100755
index 0000000000..51a1e49147
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umfors
@@ -0,0 +1,5 @@
+# Sweden - Umfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umgransele_Granselelund b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umgransele_Granselelund
new file mode 100755
index 0000000000..8fef12a5b1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Umgransele_Granselelund
@@ -0,0 +1,5 @@
+# Sweden - Umgransele/Granselelund
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Undersaker b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Undersaker
new file mode 100755
index 0000000000..95e816e029
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Undersaker
@@ -0,0 +1,5 @@
+# Sweden - Undersåker
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Rickomberga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Rickomberga
new file mode 100755
index 0000000000..2c0ac8f244
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Rickomberga
@@ -0,0 +1,13 @@
+# Sweden - Uppsala/Rickomberga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Vedyxa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Vedyxa
new file mode 100755
index 0000000000..55f99a8d1b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Uppsala_Vedyxa
@@ -0,0 +1,36 @@
+# Sweden - Uppsala/Vedyxa
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utansjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utansjo
new file mode 100755
index 0000000000..95044009b5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utansjo
@@ -0,0 +1,5 @@
+# Sweden - Utansjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utanskog b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utanskog
new file mode 100755
index 0000000000..799d850a18
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Utanskog
@@ -0,0 +1,5 @@
+# Sweden - Utanskog
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaddo_Elmsta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaddo_Elmsta
new file mode 100755
index 0000000000..310a1da682
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaddo_Elmsta
@@ -0,0 +1,36 @@
+# Sweden - Väddö/Elmsta
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 184500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valadalen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valadalen
new file mode 100755
index 0000000000..9aeed885e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valadalen
@@ -0,0 +1,5 @@
+# Sweden - Vålådalen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valanger b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valanger
new file mode 100755
index 0000000000..64e33f13df
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valanger
@@ -0,0 +1,5 @@
+# Sweden - Vålånger
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valdemarsvik b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valdemarsvik
new file mode 100755
index 0000000000..0d7c74079a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valdemarsvik
@@ -0,0 +1,36 @@
+# Sweden - Valdemarsvik
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 177500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valsjobyn b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valsjobyn
new file mode 100755
index 0000000000..dc158b9522
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Valsjobyn
@@ -0,0 +1,5 @@
+# Sweden - Valsjöbyn
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vannas_Granlundsberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vannas_Granlundsberget
new file mode 100755
index 0000000000..53e7df00ab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vannas_Granlundsberget
@@ -0,0 +1,36 @@
+# Sweden - Vännäs/Granlundsberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 594000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vansbro_Hummelberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vansbro_Hummelberget
new file mode 100755
index 0000000000..0b4263de7b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vansbro_Hummelberget
@@ -0,0 +1,13 @@
+# Sweden - Vansbro/Hummelberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varberg_Grimeton b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varberg_Grimeton
new file mode 100755
index 0000000000..6c85acd5ee
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varberg_Grimeton
@@ -0,0 +1,63 @@
+# Sweden - Varberg/Grimeton
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 191500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varmvattnet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varmvattnet
new file mode 100755
index 0000000000..9e56091707
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varmvattnet
@@ -0,0 +1,5 @@
+# Sweden - Varmvattnet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varnamo_Alandsryd b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varnamo_Alandsryd
new file mode 100755
index 0000000000..f9f6414b5a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Varnamo_Alandsryd
@@ -0,0 +1,5 @@
+# Sweden - Värnamo/Alandsryd -
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassbotten b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassbotten
new file mode 100755
index 0000000000..5aac5e9188
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassbotten
@@ -0,0 +1,5 @@
+# Sweden - Vassbotten
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassijaure b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassijaure
new file mode 100755
index 0000000000..8d6ebf7bed
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vassijaure
@@ -0,0 +1,5 @@
+# Sweden - Vassijaure
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastansjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastansjo
new file mode 100755
index 0000000000..dafa88f5ab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastansjo
@@ -0,0 +1,5 @@
+# Sweden - Västansjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vasteras_Lillharad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vasteras_Lillharad
new file mode 100755
index 0000000000..0c50190de2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vasteras_Lillharad
@@ -0,0 +1,82 @@
+# Sweden - Västerås/Lillhärad
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastervik_Farhult b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastervik_Farhult
new file mode 100755
index 0000000000..6b17d38913
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vastervik_Farhult
@@ -0,0 +1,36 @@
+# Sweden - Västervik/Fårhult
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vato b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vato
new file mode 100755
index 0000000000..94721d0940
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vato
@@ -0,0 +1,5 @@
+# Sweden - Vätö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaxbo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaxbo
new file mode 100755
index 0000000000..116483f6b5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vaxbo
@@ -0,0 +1,13 @@
+# Sweden - Växbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vemdalsskalet b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vemdalsskalet
new file mode 100755
index 0000000000..2447887276
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vemdalsskalet
@@ -0,0 +1,5 @@
+# Sweden - Vemdalsskalet
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vessigebro b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vessigebro
new file mode 100755
index 0000000000..2cd921e139
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vessigebro
@@ -0,0 +1,13 @@
+# Sweden - Vessigebro
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vetlanda_Nye b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vetlanda_Nye
new file mode 100755
index 0000000000..7cd1f5c05e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vetlanda_Nye
@@ -0,0 +1,13 @@
+# Sweden - Vetlanda/Nye
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vidsel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vidsel
new file mode 100755
index 0000000000..0351783d22
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vidsel
@@ -0,0 +1,5 @@
+# Sweden - Vidsel
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vietas b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vietas
new file mode 100755
index 0000000000..668657b3a1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vietas
@@ -0,0 +1,5 @@
+# Sweden - Vietas
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 610000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vikmanshyttan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vikmanshyttan
new file mode 100755
index 0000000000..6b24d6e3d5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vikmanshyttan
@@ -0,0 +1,13 @@
+# Sweden - Vikmanshyttan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Viksjo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Viksjo
new file mode 100755
index 0000000000..d004252f0d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Viksjo
@@ -0,0 +1,5 @@
+# Sweden - Viksjö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vilhelmina b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vilhelmina
new file mode 100755
index 0000000000..1adb2a0126
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vilhelmina
@@ -0,0 +1,35 @@
+# Sweden - Vilhelmina
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Villands_Vanga b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Villands_Vanga
new file mode 100755
index 0000000000..431ec0c6a2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Villands_Vanga
@@ -0,0 +1,5 @@
+# Sweden - Villands Vånga
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindelgransele b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindelgransele
new file mode 100755
index 0000000000..d31e68239f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindelgransele
@@ -0,0 +1,5 @@
+# Sweden - Vindelgransele
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindeln_Renfors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindeln_Renfors
new file mode 100755
index 0000000000..d34c836bed
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vindeln_Renfors
@@ -0,0 +1,35 @@
+# Sweden - Vindeln/Renfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Virserum b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Virserum
new file mode 100755
index 0000000000..32c79bcff9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Virserum
@@ -0,0 +1,63 @@
+# Sweden - Virserum
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Follingbo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Follingbo
new file mode 100755
index 0000000000..33b14fa51a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Follingbo
@@ -0,0 +1,36 @@
+# Sweden - Visby/Follingbo
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Hamnen b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Hamnen
new file mode 100755
index 0000000000..1c839f18ba
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Hamnen
@@ -0,0 +1,65 @@
+# Sweden - Visby/Hamnen
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Havdhem b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Havdhem
new file mode 100755
index 0000000000..c376217873
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visby_Havdhem
@@ -0,0 +1,35 @@
+# Sweden - Visby/Havdhem
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 205500000
+ BANDWIDTH_HZ = 7000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visingso b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visingso
new file mode 100755
index 0000000000..0dcc4f4958
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Visingso
@@ -0,0 +1,13 @@
+# Sweden - Visingsö
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vislanda_Nydala b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vislanda_Nydala
new file mode 100755
index 0000000000..1aaf3ef9f0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vislanda_Nydala
@@ -0,0 +1,36 @@
+# Sweden - Vislanda/Nydala
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 198500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitberget b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitberget
new file mode 100755
index 0000000000..7053f5ac5e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitberget
@@ -0,0 +1,5 @@
+# Sweden - Vitberget
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand
new file mode 100755
index 0000000000..a1b4dc9d3b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand
@@ -0,0 +1,5 @@
+# Sweden - Vitsand
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand_Vagsjofors b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand_Vagsjofors
new file mode 100755
index 0000000000..c07c012457
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vitsand_Vagsjofors
@@ -0,0 +1,5 @@
+# Sweden - Vitsand/Vägsjöfors
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Voxna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Voxna
new file mode 100755
index 0000000000..a14cba72c6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Voxna
@@ -0,0 +1,13 @@
+# Sweden - Voxna
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vuollerim b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vuollerim
new file mode 100755
index 0000000000..a034ca8ccc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Vuollerim
@@ -0,0 +1,35 @@
+# Sweden - Vuollerim
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ystad_Metallgatan b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ystad_Metallgatan
new file mode 100755
index 0000000000..5c250b504d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Ystad_Metallgatan
@@ -0,0 +1,36 @@
+# Sweden - Ystad/Metallgatan
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 212500000
+ BANDWIDTH_HZ = 7000000
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Yttermalung b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Yttermalung
new file mode 100755
index 0000000000..7473b30a5e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/se-Yttermalung
@@ -0,0 +1,13 @@
+# Sweden - Yttermalung
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/si-Ljubljana b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/si-Ljubljana
new file mode 100755
index 0000000000..e1d3e8bebc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/si-Ljubljana
@@ -0,0 +1,27 @@
+# Slovenia / Ljubljana
+# MULTIPLEX A
+#------------------------------------------
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 602000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/8
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaBystrica b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaBystrica
new file mode 100755
index 0000000000..340164a3fe
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaBystrica
@@ -0,0 +1,30 @@
+# DVB-T Banska Bystrica (Banska Bystrica, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 51
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 33
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaStiavnica b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaStiavnica
new file mode 100755
index 0000000000..0afc471887
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-BanskaStiavnica
@@ -0,0 +1,30 @@
+# DVB-T Banska Stiavnica (Banska Stiavnica, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 21
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 306000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 48
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bardejov b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bardejov
new file mode 100755
index 0000000000..a481bdf2fd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bardejov
@@ -0,0 +1,30 @@
+# DVB-T Bardejov (Bardejov, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 40
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bratislava b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bratislava
new file mode 100755
index 0000000000..cd461629f8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Bratislava
@@ -0,0 +1,48 @@
+# DVB-T Bratislava (Bratislava, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 56
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 27
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+#
+# T- Video Agency
+# (TODO: http://www.zive.sk/bratislava-sa-dockala-novych-programov-v-dvb-t-divaci-si-naladia-uz-aj-ta3/sc-4-a-298830/default.aspx)
+#
+# regional multiplex - on channel 55
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 1/2
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Cadca b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Cadca
new file mode 100755
index 0000000000..abd0e5b2db
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Cadca
@@ -0,0 +1,30 @@
+# DVB-T Cadca (Cadca, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 32
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Detva b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Detva
new file mode 100755
index 0000000000..44cf2a6044
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Detva
@@ -0,0 +1,30 @@
+# DVB-T Detva (Detva, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 33
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Hnusta b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Hnusta
new file mode 100755
index 0000000000..d0b41eed02
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Hnusta
@@ -0,0 +1,30 @@
+# DVB-T Hnusta (Hnusta, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 27
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Kosice b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Kosice
new file mode 100755
index 0000000000..7c01b81fe4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Kosice
@@ -0,0 +1,30 @@
+# DVB-T Kosice (Kosice, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-KralovskyChlmec b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-KralovskyChlmec
new file mode 100755
index 0000000000..7163e833ca
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-KralovskyChlmec
@@ -0,0 +1,30 @@
+# DVB-T Kralovsky Chlmec (Kralovsky Chlmec, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Krompachy b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Krompachy
new file mode 100755
index 0000000000..27747cdf04
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Krompachy
@@ -0,0 +1,30 @@
+# DVB-T Krompachy (Krompachy, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Lucenec b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Lucenec
new file mode 100755
index 0000000000..1225eace84
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Lucenec
@@ -0,0 +1,30 @@
+# DVB-T Lucenec (Lucenec, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 60
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 786000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 33
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Medzev b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Medzev
new file mode 100755
index 0000000000..52e19bba27
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Medzev
@@ -0,0 +1,30 @@
+# DVB-T Medzev (Medzev, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Namestovo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Namestovo
new file mode 100755
index 0000000000..ea76c106a8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Namestovo
@@ -0,0 +1,30 @@
+# DVB-T Namestovo (Namestovo, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 26
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Nitra b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Nitra
new file mode 100755
index 0000000000..a823427e5f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Nitra
@@ -0,0 +1,30 @@
+# DVB-T Nitra (Nitra, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 21
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 48
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Poprad b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Poprad
new file mode 100755
index 0000000000..ccec3505a4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Poprad
@@ -0,0 +1,42 @@
+# DVB-T Poprad (Poprad, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 55
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 24/54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-PovazskaBystrica b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-PovazskaBystrica
new file mode 100755
index 0000000000..d32759eae9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-PovazskaBystrica
@@ -0,0 +1,30 @@
+# DVB-T Povazska Bystrica (Povazska Bystrica, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 32
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Presov b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Presov
new file mode 100755
index 0000000000..0f0a36ec67
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Presov
@@ -0,0 +1,30 @@
+# DVB-T Prešov (Prešov, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# MUX2 - Commercial - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# MUX3 - Public - on channel 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Prievidza b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Prievidza
new file mode 100755
index 0000000000..dafbc1e56c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Prievidza
@@ -0,0 +1,30 @@
+# DVB-T Prievidza (Prievidza, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 57
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Revuca b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Revuca
new file mode 100755
index 0000000000..4f797ce652
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Revuca
@@ -0,0 +1,30 @@
+# DVB-T Revuca (Revuca, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 27
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Roznava b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Roznava
new file mode 100755
index 0000000000..fc09aaacb0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Roznava
@@ -0,0 +1,30 @@
+# DVB-T Roznava (Roznava, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 27
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 54
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Ruzomberok b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Ruzomberok
new file mode 100755
index 0000000000..fc2c6680df
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Ruzomberok
@@ -0,0 +1,30 @@
+# DVB-T Ruzomberok (Ruzomberok, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 26
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Snina b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Snina
new file mode 100755
index 0000000000..f0f158526c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Snina
@@ -0,0 +1,30 @@
+# DVB-T Snina (Snina, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 59
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 25
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-StaraLubovna b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-StaraLubovna
new file mode 100755
index 0000000000..b1cf740432
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-StaraLubovna
@@ -0,0 +1,30 @@
+# DVB-T Stara Lubovna (Stara Lubovna, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 55
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 24
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Sturovo b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Sturovo
new file mode 100755
index 0000000000..f54f8df5b5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Sturovo
@@ -0,0 +1,30 @@
+# DVB-T Sturovo (Sturovo, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 21
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 48
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Trencin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Trencin
new file mode 100755
index 0000000000..805038ce54
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Trencin
@@ -0,0 +1,30 @@
+# DVB-T Trencin (Trencin, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 57
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Zilina b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Zilina
new file mode 100755
index 0000000000..e8d486d450
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/sk-Zilina
@@ -0,0 +1,30 @@
+# DVB-T Zilina (Zilina, Slovak Republic)
+# Created from http://www.dvbt.towercom.sk/odbornici.php
+
+# 2.st multiplex (commercial) - on channel 52
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+
+# 3.st multiplex (public) - on channel 32
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/tw-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/tw-All
new file mode 100755
index 0000000000..3e18167a62
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/tw-All
@@ -0,0 +1,132 @@
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 533000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 539000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 545000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 551000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 557000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 563000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 569000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 575000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 581000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 587000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 593000000
+ BANDWIDTH_HZ = 6000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/16
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kharkov b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kharkov
new file mode 100755
index 0000000000..38c6b07dde
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kharkov
@@ -0,0 +1,49 @@
+# Ukraine, Kharkov
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kiev b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kiev
new file mode 100755
index 0000000000..6bf096b7ae
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Kiev
@@ -0,0 +1,49 @@
+# Ukraine, Kiev
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 526000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Lozovaya b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Lozovaya
new file mode 100755
index 0000000000..be7d9b9dba
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Lozovaya
@@ -0,0 +1,49 @@
+# Ukraine, Lozovaya
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Odessa b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Odessa
new file mode 100755
index 0000000000..16f00fabb6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ua-Odessa
@@ -0,0 +1,49 @@
+# Ukraine, Odessa
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/5
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ug-All b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ug-All
new file mode 100755
index 0000000000..ce2a2866f7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/ug-All
@@ -0,0 +1,45 @@
+# location and provider : Kampala-Uganda
+# date : 2013-11-01
+# provided by : Joseph Zikusooka
+# : http://joseph.zikusooka.com
+# : joseph@zikusooka.com
+#
+#------------------------------------------------------------------------------
+[UCC Primary]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/4
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = AUTO
+ STREAM_ID = 1
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 586000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = AUTO
+ CODE_RATE_LP = AUTO
+ MODULATION = QAM/AUTO
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/16
+ HIERARCHY = AUTO
+ STREAM_ID = 9
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Aberdare b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Aberdare
new file mode 100755
index 0000000000..a0c08b0d00
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Aberdare
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/CF44+0DA/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Aberdare
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C24- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 497833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 521833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Angus b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Angus
new file mode 100755
index 0000000000..1127e363bf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Angus
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/DD40RQ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Angus
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C60- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C54 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BeaconHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BeaconHill
new file mode 100755
index 0000000000..549b3c9c21
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BeaconHill
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TQ31RT/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Beacon Hill
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C60- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C51 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Belmont b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Belmont
new file mode 100755
index 0000000000..d17c3cabc2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Belmont
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/LN86JT/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Belmont
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C22 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C30- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bilsdale b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bilsdale
new file mode 100755
index 0000000000..b8164cc4ef
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bilsdale
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TS97JS/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Bilsdale
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C43 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BlackHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BlackHill
new file mode 100755
index 0000000000..b97c26fa6f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BlackHill
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/ML74NZ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Black Hill
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C46 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C43 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C41+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C51 L-GLW]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Blaenplwyf b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Blaenplwyf
new file mode 100755
index 0000000000..5a569c2945
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Blaenplwyf
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SY234QH/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Blaenplwyf
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BluebellHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BluebellHill
new file mode 100755
index 0000000000..630ae755be
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BluebellHill
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/ME59RD/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Bluebell Hill
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C46 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C43 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C45 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bressay b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bressay
new file mode 100755
index 0000000000..9c95234557
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bressay
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/ZE29EL/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Bressay
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C28 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrierleyHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrierleyHill
new file mode 100755
index 0000000000..34fbc90cf8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrierleyHill
@@ -0,0 +1,93 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/DY52PD/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Brierley Hill
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C60- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C50 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C29 L-BRM]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolIlchesterCrescent b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolIlchesterCrescent
new file mode 100755
index 0000000000..6a268ff258
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolIlchesterCrescent
@@ -0,0 +1,93 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BS137HU/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Bristol Ilchester Crescent
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C41+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C30 L-BSL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolKingsWeston b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolKingsWeston
new file mode 100755
index 0000000000..8abd22a513
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BristolKingsWeston
@@ -0,0 +1,93 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BS92QY/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Bristol Kings Weston
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C43 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C30 L-BSL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bromsgrove b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bromsgrove
new file mode 100755
index 0000000000..8956edeed6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Bromsgrove
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/B619JD/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Bromsgrove
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrougherMountain b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrougherMountain
new file mode 100755
index 0000000000..99c04a4267
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-BrougherMountain
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BT783SG/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Brougher Mountain
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C28 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C30- NI mux]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Caldbeck b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Caldbeck
new file mode 100755
index 0000000000..c75c3d2dad
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Caldbeck
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/CA78DW/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Caldbeck
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C25- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 505833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C23- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 489833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 513833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 537833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CaradonHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CaradonHill
new file mode 100755
index 0000000000..e216aa51bd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CaradonHill
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/PL145LT/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Caradon Hill
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C28+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C21+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 497833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 521833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Carmel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Carmel
new file mode 100755
index 0000000000..9e78dfd554
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Carmel
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SA147NA/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Carmel
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C60- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chatton b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chatton
new file mode 100755
index 0000000000..4d40a46109
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chatton
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/NE675JD/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Chatton
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C45 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chesterfield b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chesterfield
new file mode 100755
index 0000000000..38bedb9333
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Chesterfield
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/S184BT/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Chesterfield
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C43 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Craigkelly b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Craigkelly
new file mode 100755
index 0000000000..82494814a3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Craigkelly
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/KY39HW/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Craigkelly
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C30 L-EDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CrystalPalace b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CrystalPalace
new file mode 100755
index 0000000000..3d17dd88af
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-CrystalPalace
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SE191UE/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Crystal Palace
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C23 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C25 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Darvel b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Darvel
new file mode 100755
index 0000000000..015f9ff283
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Darvel
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/KA169LS/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Darvel
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C22- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 481833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C23 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Divis b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Divis
new file mode 100755
index 0000000000..4dbc6c55bf
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Divis
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BT170NG/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Divis
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C23 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Dover b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Dover
new file mode 100755
index 0000000000..15fd2702d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Dover
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/CT157AQ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Dover
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C50 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C51 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Durris b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Durris
new file mode 100755
index 0000000000..7ecdc705d9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Durris
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/AB393TH/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Durris
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C28 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C23 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Eitshal b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Eitshal
new file mode 100755
index 0000000000..3901c1276b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Eitshal
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/HS29JW/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Eitshal
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-EmleyMoor b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-EmleyMoor
new file mode 100755
index 0000000000..c9c01d7f96
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-EmleyMoor
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/HD89TF/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Emley Moor
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C47 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C51 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C56 L-LDS]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenham b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenham
new file mode 100755
index 0000000000..dd054f598d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenham
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/NE156PL/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Fenham
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C25 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenton b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenton
new file mode 100755
index 0000000000..8c0a54326f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Fenton
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/ST42NX/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Fenton
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C24 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C25 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Ferryside b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Ferryside
new file mode 100755
index 0000000000..71c2e12f29
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Ferryside
@@ -0,0 +1,57 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SA17+5UR/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Ferryside
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C21+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Guildford b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Guildford
new file mode 100755
index 0000000000..ab5616182c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Guildford
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/GU27RW/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Guildford
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C43 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hannington b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hannington
new file mode 100755
index 0000000000..d3bbc75496
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hannington
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/RG265UD/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Hannington
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C45 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C41 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hastings b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hastings
new file mode 100755
index 0000000000..520c86a1ff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Hastings
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TN341LE/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Hastings
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C25 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Heathfield b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Heathfield
new file mode 100755
index 0000000000..fda6fe00c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Heathfield
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TN210UG/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Heathfield
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C52 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HemelHempstead b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HemelHempstead
new file mode 100755
index 0000000000..0116d4e816
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HemelHempstead
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/HP38SA/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Hemel Hempstead
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C44 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C50 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HuntshawCross b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HuntshawCross
new file mode 100755
index 0000000000..3b2b964499
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-HuntshawCross
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/EX313ND/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Huntshaw Cross
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C50 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 745833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Idle b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Idle
new file mode 100755
index 0000000000..e736ca94ab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Idle
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BD181JP/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Idle
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C24 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KeelylangHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KeelylangHill
new file mode 100755
index 0000000000..ac90b5dde3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KeelylangHill
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/KW151SF/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Keelylang Hill
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C46 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C43 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Keighley b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Keighley
new file mode 100755
index 0000000000..ab86448246
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Keighley
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BD205RL/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Keighley
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C49 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KilveyHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KilveyHill
new file mode 100755
index 0000000000..5919ee397c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KilveyHill
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SA17BL/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Kilvey Hill
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C23 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KnockMore b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KnockMore
new file mode 100755
index 0000000000..3d7e41f5c9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-KnockMore
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/AB556XP/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Knockmore
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Lancaster b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Lancaster
new file mode 100755
index 0000000000..0694e7a8e0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Lancaster
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/LA58AF/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Lancaster
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C27- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 521833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 497833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-LarkStoke b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-LarkStoke
new file mode 100755
index 0000000000..3d7a6fb571
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-LarkStoke
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/GL556LS/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Lark Stoke
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Limavady b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Limavady
new file mode 100755
index 0000000000..977b973aec
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Limavady
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BT499LJ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Limavady
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C50 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Llanddona b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Llanddona
new file mode 100755
index 0000000000..88067eec74
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Llanddona
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/LL588YB/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Llanddona
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C57 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C43 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Malvern b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Malvern
new file mode 100755
index 0000000000..66c10e249e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Malvern
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/WR144AD/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Malvern
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C53 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C50 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Mendip b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Mendip
new file mode 100755
index 0000000000..8d3849b612
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Mendip
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BA53LB/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Mendip
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C49 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C48 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Midhurst b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Midhurst
new file mode 100755
index 0000000000..37416ad94b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Midhurst
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/GU289EA/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Midhurst
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C55 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C50 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-MoelyParc b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-MoelyParc
new file mode 100755
index 0000000000..a2300b70f4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-MoelyParc
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/CH75UU/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Moel y Parc
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C45 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C51- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 713833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 689833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Nottingham b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Nottingham
new file mode 100755
index 0000000000..8112ec72bc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Nottingham
@@ -0,0 +1,93 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/NG162SU/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Nottingham
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C51 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C50 L-NOT]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-OliversMount b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-OliversMount
new file mode 100755
index 0000000000..898e29a727
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-OliversMount
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/YO112TZ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Olivers Mount
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C57 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Oxford b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Oxford
new file mode 100755
index 0000000000..1274349cb9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Oxford
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/OX39SS/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Oxford
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C53+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C50 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C29 L-OFD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PendleForest b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PendleForest
new file mode 100755
index 0000000000..7bcdd5ab70
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PendleForest
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BB129PW/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Pendle Forest
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C28+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 521833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 497833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Plympton b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Plympton
new file mode 100755
index 0000000000..d3bce92acb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Plympton
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/PL71TT/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Plympton
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C54 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PontopPike b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PontopPike
new file mode 100755
index 0000000000..2ceb229826
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-PontopPike
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/DH99AT/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Pontop Pike
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C58 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C50 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C56 L-NCL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Pontypool b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Pontypool
new file mode 100755
index 0000000000..b66c8373fa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Pontypool
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/NP45XJ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Pontypool
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C23+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 505833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 481833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 529833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Preseli b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Preseli
new file mode 100755
index 0000000000..72e71c2bf2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Preseli
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SA413QR/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Preseli
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C43+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 641833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 665833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Redruth b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Redruth
new file mode 100755
index 0000000000..650ca612de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Redruth
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TR166QZ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Redruth
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C44+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C51 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Reigate b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Reigate
new file mode 100755
index 0000000000..b845d3779a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Reigate
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/RH29RN/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Reigate
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C60- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RidgeHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RidgeHill
new file mode 100755
index 0000000000..abb09716e1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RidgeHill
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/HR82PG/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Ridge Hill
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C28 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C21+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosemarkie b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosemarkie
new file mode 100755
index 0000000000..7fbd7e30e0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosemarkie
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/IV118XY/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Rosemarkie
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C45 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C43 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosneath b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosneath
new file mode 100755
index 0000000000..cf006e739c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rosneath
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/G840LF/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Rosneath
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C49 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 738000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rowridge b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rowridge
new file mode 100755
index 0000000000..16f781d305
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Rowridge
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/PO304HT/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Rowridge
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C24 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C27 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C25 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C29 L-SOT]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RumsterForest b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RumsterForest
new file mode 100755
index 0000000000..1f229cd4d8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-RumsterForest
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/KW56DJ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Rumster Forest
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Saddleworth b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Saddleworth
new file mode 100755
index 0000000000..6a4b2d950f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Saddleworth
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/OL35RU/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Saddleworth
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C45 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C51- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 713833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52+ ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Salisbury b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Salisbury
new file mode 100755
index 0000000000..17f24a944a
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Salisbury
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SP28NZ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Salisbury
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C57 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C50 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SandyHeath b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SandyHeath
new file mode 100755
index 0000000000..5b3423023e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SandyHeath
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/SG192NH/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Sandy Heath
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C32 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 562000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C51 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C52 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Selkirk b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Selkirk
new file mode 100755
index 0000000000..ee4d822d89
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Selkirk
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TD74QN/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Selkirk
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C50 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sheffield b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sheffield
new file mode 100755
index 0000000000..cc31205e8e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sheffield
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/S105GL/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Sheffield
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C27 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 522000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C24 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 498000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C21+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 474167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C55 L-SFD]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-StocklandHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-StocklandHill
new file mode 100755
index 0000000000..8b9ad5aa54
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-StocklandHill
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/EX149EP/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Stockland Hill
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23+ D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25- SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C28- ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Storeton b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Storeton
new file mode 100755
index 0000000000..15f8869bb3
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Storeton
@@ -0,0 +1,93 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/CH632RH/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Storeton
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C28 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C30 L-LIV]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 546000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sudbury b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sudbury
new file mode 100755
index 0000000000..3be094786b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Sudbury
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/CO105NG/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Sudbury
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C44 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C60- ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SuttonColdfield b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SuttonColdfield
new file mode 100755
index 0000000000..ff1deedee7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-SuttonColdfield
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/B755JJ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Sutton Coldfield
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C43 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 650000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C46 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 674000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C33 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 570000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C40+ BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 626167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C51 L-BRM]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Tacolneston b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Tacolneston
new file mode 100755
index 0000000000..1f664b8e71
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Tacolneston
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/NR161DW/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Tacolneston
+# date (yyyy-mm-dd) : 2015-01-17
+#
+#----------------------------------------------------------------------------------------------
+[C55- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 745833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 777833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C50 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TheWrekin b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TheWrekin
new file mode 100755
index 0000000000..fe58789e4b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TheWrekin
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TF65AH/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, The Wrekin
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C26 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C30- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 545833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Torosay b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Torosay
new file mode 100755
index 0000000000..74b96e408f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Torosay
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/PA656AZ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Torosay
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C28 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 530000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C25 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 506000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C23 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 490000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C26 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C29 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C22 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 482000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TunbridgeWells b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TunbridgeWells
new file mode 100755
index 0000000000..47ed282364
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-TunbridgeWells
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/TN110NB/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Tunbridge Wells
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C52 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 722000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C42 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C41 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Waltham b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Waltham
new file mode 100755
index 0000000000..789ae685ff
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Waltham
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/LE144AJ/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Waltham
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C49 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54- D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 737833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C29 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 538000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C58 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C26 L-NOT]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Wenvoe b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Wenvoe
new file mode 100755
index 0000000000..7d21b7ad59
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-Wenvoe
@@ -0,0 +1,106 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/CF56SA/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Wenvoe
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C41+ BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C44 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 658000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C42+ SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 642167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C45 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 666000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C39+ ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 618167000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C47 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 682000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C51 L-CDF]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QPSK
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WhitehawkHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WhitehawkHill
new file mode 100755
index 0000000000..3cbabbbb4c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WhitehawkHill
@@ -0,0 +1,81 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BN25EL/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Whitehawk Hill
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C60- BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 785833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C53 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 730000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C57 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 762000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C56 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 754000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C48 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 690000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C51 BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 714000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WinterHill b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WinterHill
new file mode 100755
index 0000000000..15546d708c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/uk-WinterHill
@@ -0,0 +1,94 @@
+#----------------------------------------------------------------------------------------------
+# Auto-generated from:
+# <http://www.digitaluk.co.uk/coveragechecker/main/tradeexport/BL66SL/NA/0/>
+#----------------------------------------------------------------------------------------------
+# location and provider: UK, Winter Hill
+# date (yyyy-mm-dd) : 2014-03-25
+#
+#----------------------------------------------------------------------------------------------
+[C50 BBC A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 706000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C59 D3&4]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 778000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C31 COM7 HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 554000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
+[C58 SDN]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 770000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C49 ARQ A]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 698000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C55 ARQ B]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 746000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 8K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[C54- BBC B HD]
+ DELIVERY_SYSTEM = DVBT2
+ FREQUENCY = 737833000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 2/3
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/256
+ TRANSMISSION_MODE = 32K
+ GUARD_INTERVAL = 1/128
+ HIERARCHY = NONE
+ STREAM_ID = 0
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Hanoi b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Hanoi
new file mode 100755
index 0000000000..abb9695be0
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Hanoi
@@ -0,0 +1,26 @@
+# Hanoi - Vietnam - DVB-T by VTC
+# contributed by Pham Thanh Nam <phamthanhnam.ptn@gmail.com>
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 514000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 578000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Thaibinh b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Thaibinh
new file mode 100755
index 0000000000..f340948dea
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/dvb-scan-table/dvb-t/vn-Thaibinh
@@ -0,0 +1,26 @@
+# Thaibinh - Vietnam - DVB-T by VTC
+# contributed by Pham Thanh Nam <phamthanhnam.ptn@gmail.com>
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 626000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
+[CHANNEL]
+ DELIVERY_SYSTEM = DVBT
+ FREQUENCY = 634000000
+ BANDWIDTH_HZ = 8000000
+ CODE_RATE_HP = 3/4
+ CODE_RATE_LP = NONE
+ MODULATION = QAM/64
+ TRANSMISSION_MODE = 2K
+ GUARD_INTERVAL = 1/32
+ HIERARCHY = NONE
+ INVERSION = AUTO
+
diff --git a/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb b/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb
new file mode 100644
index 0000000000..1663548b22
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)"
+SECTION = "libs"
+LICENSE = "LGPL-2.0-or-later"
+HOMEPAGE = "http://www.audiocoding.com/faac.html"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+ file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0"
+
+LICENSE_FLAGS = "commercial"
+
+inherit autotools
+
+SRC_URI = " \
+ ${SOURCEFORGE_MIRROR}/faac/${BP}.tar.gz \
+"
+
+SRC_URI[md5sum] = "2b58d621fad8fda879f07b7cad8bfe10"
+SRC_URI[sha256sum] = "d45f209d837c49dae6deebcdd87b8cc3b04ea290880358faecf5e7737740c771"
+
+PACKAGES =+ "lib${BPN} lib${BPN}-dev"
+
+FILES:${PN} = " ${bindir}/faac "
+FILES:lib${BPN} = " ${libdir}/*.so.*"
+FILES:lib${BPN}-dev = " \
+ ${includedir} \
+ ${libdir}/*.so \
+ ${libdir}/*.la \
+"
diff --git a/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb b/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb
deleted file mode 100644
index 4765c6c9ca..0000000000
--- a/meta-multimedia/recipes-multimedia/faac/faac_1.29.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)"
-SECTION = "libs"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
- file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0"
-
-inherit autotools
-
-SRC_URI = " \
- ${SOURCEFORGE_MIRROR}/faac/${BP}.tar.gz \
- file://0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch \
-"
-
-SRC_URI[md5sum] = "78603720f655180059d6970c582a3005"
-SRC_URI[sha256sum] = "8cc7b03ceb2722223a6457e95d4c994731d80214a03ba33d1af76ba53f4b3197"
-
-EXTRA_OECONF += "--without-mp4v2"
-
-PACKAGES =+ "lib${BPN} lib${BPN}-dev"
-
-FILES_${PN} = " ${bindir}/faac "
-FILES_lib${PN} = " ${libdir}/*.so.*"
-FILES_lib${PN}-dev = " \
- ${includedir} \
- ${libdir}/*.so \
- ${libdir}/*.la \
-"
diff --git a/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch b/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch
deleted file mode 100644
index d845ddf595..0000000000
--- a/meta-multimedia/recipes-multimedia/faac/files/0001-mp4v2-Define-__STRING-if-cdefs.h-does-not-exist.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 46cc9298c38b9dd735fec3f39aa2d6e56a362410 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 28 Mar 2017 21:33:36 -0700
-Subject: [PATCH 2/2] mp4v2: Define __STRING if cdefs.h does not exist
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- common/mp4v2/mp4util.h | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/common/mp4v2/mp4util.h b/common/mp4v2/mp4util.h
-index 1f9cb64..1e7aced 100644
---- a/common/mp4v2/mp4util.h
-+++ b/common/mp4v2/mp4util.h
-@@ -23,6 +23,10 @@
- #define __MP4_UTIL_INCLUDED__
- #include <assert.h>
-
-+#ifndef __STRING
-+#define __STRING(x) #x
-+#endif
-+
- #ifndef ASSERT
- #define ASSERT(expr) \
- if (!(expr)) { \
---
-2.12.1
-
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
new file mode 100644
index 0000000000..c499119c6f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.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 = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec"
+
+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
new file mode 100644
index 0000000000..0a7680a8c4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Flite: a small run-time speech synthesis engine"
+HOMEPAGE = "http://cmuflite.org"
+SECTION = "libs/multimedia"
+LICENSE = "BSD-3-Clause"
+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"
+
+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/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch b/meta-multimedia/recipes-multimedia/fluidsynth/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch
deleted file mode 100644
index 0e1846e31c..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/files/0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 2de7e128fbdf528716b500cf27ed9a4358c931c9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 24 Nov 2017 00:05:35 +0100
-Subject: [PATCH 2/2] Use ARM-NEON accelaration for float-multithreaded setups
-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/rvoice/fluid_rvoice_mixer.c | 26 ++++++++++++++++++++++++++
- 1 file changed, 26 insertions(+)
-
-diff --git a/src/rvoice/fluid_rvoice_mixer.c b/src/rvoice/fluid_rvoice_mixer.c
-index 9616518..dbf8057 100644
---- a/src/rvoice/fluid_rvoice_mixer.c
-+++ b/src/rvoice/fluid_rvoice_mixer.c
-@@ -27,6 +27,10 @@
- #include "fluid_ladspa.h"
- #include "fluid_synth.h"
-
-+#if defined(__ARM_NEON__)
-+#include "arm_neon.h"
-+#endif
-+
-
- #define ENABLE_MIXER_THREADS 1
-
-@@ -794,20 +798,42 @@ fluid_mixer_buffers_mix(fluid_mixer_buffers_t* dest, fluid_mixer_buffers_t* src)
- if (minbuf > src->buf_count)
- minbuf = src->buf_count;
- for (i=0; i < minbuf; i++) {
-+#if defined(__ARM_NEON__) && defined(WITH_FLOAT)
-+ for (j=0; j < scount; j+=4) {
-+ float32x4_t vleft = vld1q_f32(&dest->left_buf[i][j]);
-+ float32x4_t vright = vld1q_f32(&dest->right_buf[i][j]);
-+ vleft = vaddq_f32(vleft, vld1q_f32(&src->left_buf[i][j]));
-+ vright = vaddq_f32(vright, vld1q_f32(&src->right_buf[i][j]));
-+ vst1q_f32(&dest->left_buf[i][j], vleft);
-+ vst1q_f32(&dest->right_buf[i][j], vright);
-+ }
-+#else
- for (j=0; j < scount; j++) {
- dest->left_buf[i][j] += src->left_buf[i][j];
- dest->right_buf[i][j] += src->right_buf[i][j];
- }
-+#endif
- }
-
- minbuf = dest->fx_buf_count;
- if (minbuf > src->fx_buf_count)
- minbuf = src->fx_buf_count;
- for (i=0; i < minbuf; i++) {
-+#if defined(__ARM_NEON__) && defined(WITH_FLOAT)
-+ for (j=0; j < scount; j+=4) {
-+ float32x4_t vleft = vld1q_f32(&dest->fx_left_buf[i][j]);
-+ float32x4_t vright = vld1q_f32(&dest->fx_right_buf[i][j]);
-+ vleft = vaddq_f32(vleft, vld1q_f32(&src->fx_left_buf[i][j]));
-+ vright = vaddq_f32(vright, vld1q_f32(&src->fx_right_buf[i][j]));
-+ vst1q_f32(&dest->fx_left_buf[i][j], vleft);
-+ vst1q_f32(&dest->fx_right_buf[i][j], vright);
-+ }
-+#else
- for (j=0; j < scount; j++) {
- dest->fx_left_buf[i][j] += src->fx_left_buf[i][j];
- dest->fx_right_buf[i][j] += src->fx_right_buf[i][j];
- }
-+#endif
- }
- }
-
---
-2.9.5
-
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch
new file mode 100644
index 0000000000..f7debc5ad4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch
@@ -0,0 +1,178 @@
+From 300977537b6056bdbbba9df9100fa6e891ca1f44 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 17 Dec 2018 14:08:45 +0100
+Subject: [PATCH 2/2] fluid_synth_nwrite_float: Allow zero pointer for
+ left/right and zero pointer in arrays
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+With this modification a client can define exactly what it wants to get into
+buffers to avoid useless copying of data. On weak machines this leads to measurable
+performance wins.
+
+Upstream-Status: Submitted [1]
+
+[1] https://github.com/FluidSynth/fluidsynth/pull/490
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/synth/fluid_synth.c | 69 ++++++++++++++++++++++++++++-------------
+ 1 file changed, 48 insertions(+), 21 deletions(-)
+
+diff --git a/src/synth/fluid_synth.c b/src/synth/fluid_synth.c
+index 1eb5d737..6c876efa 100644
+--- a/src/synth/fluid_synth.c
++++ b/src/synth/fluid_synth.c
+@@ -3628,10 +3628,10 @@ fluid_synth_program_reset(fluid_synth_t *synth)
+ *
+ * @param synth FluidSynth instance
+ * @param len Count of audio frames to synthesize
+- * @param left Array of float buffers to store left channel of planar audio (as many as \c synth.audio-channels buffers, each of \c len in size)
+- * @param right Array of float buffers to store right channel of planar audio (size: dito)
+- * @param fx_left Since 1.1.7: If not \c NULL, array of float buffers to store left effect channels (as many as \c synth.effects-channels buffers, each of \c len in size)
+- * @param fx_right Since 1.1.7: If not \c NULL, array of float buffers to store right effect channels (size: dito)
++ * @param left Array of float buffers to store left channel of planar audio (as many as \c synth.audio-channels buffers, each of \c len in size). Since 2.0.3: NULL allowed / NULL allowed for array entry
++ * @param right Array of float buffers to store right channel of planar audio (size: dito). Since 2.0.3: NULL allowed / NULL allowed for array entry
++ * @param fx_left Since 1.1.7: If not \c NULL, array of float buffers to store left effect channels (as many as \c synth.effects-channels buffers, each of \c len in size). Since 2.0.3: NULL allowed for array entry
++ * @param fx_right Since 1.1.7: If not \c NULL, array of float buffers to store right effect channels (size: dito). Since 2.0.3: NULL allowed for array entry
+ * @return #FLUID_OK on success, #FLUID_FAILED otherwise
+ *
+ * First effect channel used by reverb, second for chorus.
+@@ -3719,15 +3719,27 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ for(i = 0; i < synth->audio_channels; i++)
+ {
+ #ifdef WITH_FLOAT
+- FLUID_MEMCPY(left[i], &left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + synth->cur], bytes);
+- FLUID_MEMCPY(right[i], &right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + synth->cur], bytes);
++ if(left != NULL && left[i] != NULL)
++ {
++ FLUID_MEMCPY(left[i], &left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + synth->cur], bytes);
++ }
++ if(right != NULL && right[i] != NULL)
++ {
++ FLUID_MEMCPY(right[i], &right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + synth->cur], bytes);
++ }
+ #else //WITH_FLOAT
+ int j;
+
+ for(j = 0; j < num; j++)
+ {
+- left[i][j] = (float) left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j + synth->cur];
+- right[i][j] = (float) right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j + synth->cur];
++ if(left != NULL && left[i] != NULL)
++ {
++ left[i][j] = (float) left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j + synth->cur];
++ }
++ if(right != NULL && right[i] != NULL)
++ {
++ right[i][j] = (float) right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j + synth->cur];
++ }
+ }
+
+ #endif //WITH_FLOAT
+@@ -3737,12 +3749,12 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ {
+ #ifdef WITH_FLOAT
+
+- if(fx_left != NULL)
++ if(fx_left != NULL && fx_left[i] != NULL)
+ {
+ FLUID_MEMCPY(fx_left[i], &fx_left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + synth->cur], bytes);
+ }
+
+- if(fx_right != NULL)
++ if(fx_right != NULL && fx_right[i] != NULL)
+ {
+ FLUID_MEMCPY(fx_right[i], &fx_right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + synth->cur], bytes);
+ }
+@@ -3750,7 +3762,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ #else //WITH_FLOAT
+ int j;
+
+- if(fx_left != NULL)
++ if(fx_left != NULL && fx_left[i] != NULL)
+ {
+ for(j = 0; j < num; j++)
+ {
+@@ -3758,7 +3770,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ }
+ }
+
+- if(fx_right != NULL)
++ if(fx_right != NULL && fx_right[i] != NULL)
+ {
+ for(j = 0; j < num; j++)
+ {
+@@ -3789,15 +3801,30 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ for(i = 0; i < synth->audio_channels; i++)
+ {
+ #ifdef WITH_FLOAT
+- FLUID_MEMCPY(left[i] + count, &left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT], bytes);
+- FLUID_MEMCPY(right[i] + count, &right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT], bytes);
++ if(left != NULL && left[i] != NULL)
++ {
++ FLUID_MEMCPY(left[i] + count, &left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT], bytes);
++ }
++ if(right != NULL && right[i] != NULL)
++ {
++ FLUID_MEMCPY(right[i] + count, &right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT], bytes);
++ }
+ #else //WITH_FLOAT
+ int j;
+
+- for(j = 0; j < num; j++)
++ if(left != NULL && left[i] != NULL)
++ {
++ for(j = 0; j < num; j++)
++ {
++ left[i][j + count] = (float) left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j];
++ }
++ }
++ if(right != NULL && right[i] != NULL)
+ {
+- left[i][j + count] = (float) left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j];
+- right[i][j + count] = (float) right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j];
++ for(j = 0; j < num; j++)
++ {
++ right[i][j + count] = (float) right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + j];
++ }
+ }
+
+ #endif //WITH_FLOAT
+@@ -3807,12 +3834,12 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ {
+ #ifdef WITH_FLOAT
+
+- if(fx_left != NULL)
++ if(fx_left != NULL && fx_left[i] != NULL)
+ {
+ FLUID_MEMCPY(fx_left[i] + count, &fx_left_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT], bytes);
+ }
+
+- if(fx_right != NULL)
++ if(fx_right != NULL && fx_right[i] != NULL)
+ {
+ FLUID_MEMCPY(fx_right[i] + count, &fx_right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT], bytes);
+ }
+@@ -3820,7 +3847,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ #else //WITH_FLOAT
+ int j;
+
+- if(fx_left != NULL)
++ if(fx_left != NULL && fx_left[i] != NULL)
+ {
+ for(j = 0; j < num; j++)
+ {
+@@ -3828,7 +3855,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len,
+ }
+ }
+
+- if(fx_right != NULL)
++ if(fx_right != NULL && fx_right[i] != NULL)
+ {
+ for(j = 0; j < num; j++)
+ {
+--
+2.14.5
+
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch
new file mode 100644
index 0000000000..ead099545d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch
@@ -0,0 +1,304 @@
+From 947f79f97a5fa6547d99bff282606026632e010b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 13 Oct 2018 23:01:11 +0200
+Subject: [PATCH] Use ARM-NEON accelaration for float-multithreaded setups
+
+Profiling shows a considerable performance win. See estimated number of voices:
+They increase from ~471 to ~513 which makes a ~9% win:
+
+*******************************************************************************
+WITHOUT ARM NEON:
+*******************************************************************************
+
+morona@raspberrypi3:~$ fluidsynth -o synth.cpu-cores=4 -o synth.chorus.active=0 -o synth.reverb.active=0 /usr/share/sf2/fluidr3gm.sf2
+> prof_set_print 1
+> prof_set_notes 10
+> prof_start 3 10000
+Generating 10 notes, generated voices:20
+Number of measures(n_prof):3, duration of one mesure(dur):10000ms
+
+Profiling time(mm:ss): Total=0:30 Remainder=0:30, press <ENTER> to cancel
+ ------------------------------------------------------------------------------
+ Duration(microsecond) and cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond)
+ ------------------------------------------------------------------------------
+ Code under profiling |Voices| Duration (microsecond) | Load(%)
+ | nbr| min| avg| max|
+ ---------------------------|------|--------------------------------|----------
+ synth_write_* ------------>| 20| 112.00| 118.96| 206.00| 4.461
+ synth_one_block ---------->| 20| 109.00| 116.44| 196.00| 4.367
+ synth_one_block:clear ---->| 20| 1.00| 1.67| 18.00| 0.063
+ synth_one_block:one voice->| 1| 11.00| 12.36| 58.00| 0.463
+ synth_one_block:all voices>| 20| 107.00| 113.47| 187.00| 4.255
+ synth_one_block:reverb --->| no profiling available
+ synth_one_block:chorus --->| no profiling available
+ voice:note --------------->| no profiling available
+ voice:release ------------>| no profiling available
+ ------------------------------------------------------------------------------
+ Cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond) and maximum voices
+ ------------------------------------------------------------------------------
+ nVoices| total(%)|voices(%)| reverb(%)|chorus(%)| voice(%)|estimated maxVoices
+ -------|---------|---------|----------|---------|---------|-------------------
+ 20| 4.461| 4.461| 0.000| 0.000| 0.213| 470
+
+Profiling time(mm:ss): Total=0:30 Remainder=0:20, press <ENTER> to cancel
+ ------------------------------------------------------------------------------
+ Duration(microsecond) and cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond)
+ ------------------------------------------------------------------------------
+ Code under profiling |Voices| Duration (microsecond) | Load(%)
+ | nbr| min| avg| max|
+ ---------------------------|------|--------------------------------|----------
+ synth_write_* ------------>| 20| 112.00| 118.42| 216.00| 4.441
+ synth_one_block ---------->| 20| 109.00| 115.91| 205.00| 4.347
+ synth_one_block:clear ---->| 20| 1.00| 1.65| 18.00| 0.062
+ synth_one_block:one voice->| 1| 11.00| 12.30| 58.00| 0.461
+ synth_one_block:all voices>| 20| 107.00| 112.98| 197.00| 4.237
+ synth_one_block:reverb --->| no profiling available
+ synth_one_block:chorus --->| no profiling available
+ voice:note --------------->| no profiling available
+ voice:release ------------>| no profiling available
+ ------------------------------------------------------------------------------
+ Cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond) and maximum voices
+ ------------------------------------------------------------------------------
+ nVoices| total(%)|voices(%)| reverb(%)|chorus(%)| voice(%)|estimated maxVoices
+ -------|---------|---------|----------|---------|---------|-------------------
+ 20| 4.441| 4.441| 0.000| 0.000| 0.212| 472
+
+Profiling time(mm:ss): Total=0:30 Remainder=0:10, press <ENTER> to cancel
+ ------------------------------------------------------------------------------
+ Duration(microsecond) and cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond)
+ ------------------------------------------------------------------------------
+ Code under profiling |Voices| Duration (microsecond) | Load(%)
+ | nbr| min| avg| max|
+ ---------------------------|------|--------------------------------|----------
+ synth_write_* ------------>| 20| 112.00| 118.64| 244.00| 4.449
+ synth_one_block ---------->| 20| 109.00| 116.12| 234.00| 4.355
+ synth_one_block:clear ---->| 20| 1.00| 1.67| 37.00| 0.062
+ synth_one_block:one voice->| 1| 11.00| 12.31| 63.00| 0.462
+ synth_one_block:all voices>| 20| 107.00| 113.18| 214.00| 4.244
+ synth_one_block:reverb --->| no profiling available
+ synth_one_block:chorus --->| no profiling available
+ voice:note --------------->| no profiling available
+ voice:release ------------>| no profiling available
+ ------------------------------------------------------------------------------
+ Cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond) and maximum voices
+ ------------------------------------------------------------------------------
+ nVoices| total(%)|voices(%)| reverb(%)|chorus(%)| voice(%)|estimated maxVoices
+ -------|---------|---------|----------|---------|---------|-------------------
+ 20| 4.449| 4.449| 0.000| 0.000| 0.212| 471
+Stopping 20 voices...voices stopped.
+> quit
+cheers!
+JackTemporaryException : now quits...
+Jack main caught signal 2
+fluid_profiling_print
+fluidsynth: Estimated times: min/avg/max (micro seconds)
+fluidsynth: synth_write_* ------------>: 112.000/118.636/244.000
+fluidsynth: synth_one_block ---------->: 109.000/116.124/234.000
+fluidsynth: synth_one_block:clear ---->: 1.000/1.665/37.000
+fluidsynth: synth_one_block:one voice->: 11.000/12.309/63.000
+fluidsynth: synth_one_block:all voices>: 107.000/113.180/214.000
+
+*******************************************************************************
+WITH ARM NEON:
+*******************************************************************************
+
+morona@raspberrypi3:~$ fluidsynth -o synth.cpu-cores=4 -o synth.chorus.active=0 -o synth.reverb.active=0 /usr/share/sf2/fluidr3gm.sf2
+> prof_set_print 1
+> prof_set_notes 10
+> prof_start 3 10000
+Generating 10 notes, generated voices:20
+Number of measures(n_prof):3, duration of one mesure(dur):10000ms
+
+Profiling time(mm:ss): Total=0:30 Remainder=0:30, press <ENTER> to cancel
+ ------------------------------------------------------------------------------
+ Duration(microsecond) and cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond)
+ ------------------------------------------------------------------------------
+ Code under profiling |Voices| Duration (microsecond) | Load(%)
+ | nbr| min| avg| max|
+ ---------------------------|------|--------------------------------|----------
+ synth_write_* ------------>| 20| 102.00| 109.21| 213.00| 4.095
+ synth_one_block ---------->| 20| 99.00| 106.68| 201.00| 4.001
+ synth_one_block:clear ---->| 20| 1.00| 1.64| 18.00| 0.062
+ synth_one_block:one voice->| 1| 11.00| 12.30| 54.00| 0.461
+ synth_one_block:all voices>| 20| 97.00| 103.71| 188.00| 3.889
+ synth_one_block:reverb --->| no profiling available
+ synth_one_block:chorus --->| no profiling available
+ voice:note --------------->| no profiling available
+ voice:release ------------>| no profiling available
+ ------------------------------------------------------------------------------
+ Cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond) and maximum voices
+ ------------------------------------------------------------------------------
+ nVoices| total(%)|voices(%)| reverb(%)|chorus(%)| voice(%)|estimated maxVoices
+ -------|---------|---------|----------|---------|---------|-------------------
+ 20| 4.095| 4.095| 0.000| 0.000| 0.194| 514
+
+Profiling time(mm:ss): Total=0:30 Remainder=0:20, press <ENTER> to cancel
+ ------------------------------------------------------------------------------
+ Duration(microsecond) and cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond)
+ ------------------------------------------------------------------------------
+ Code under profiling |Voices| Duration (microsecond) | Load(%)
+ | nbr| min| avg| max|
+ ---------------------------|------|--------------------------------|----------
+ synth_write_* ------------>| 20| 102.00| 109.46| 278.00| 4.105
+ synth_one_block ---------->| 20| 99.00| 106.91| 265.00| 4.009
+ synth_one_block:clear ---->| 20| 1.00| 1.67| 22.00| 0.062
+ synth_one_block:one voice->| 1| 11.00| 12.30| 54.00| 0.461
+ synth_one_block:all voices>| 20| 97.00| 103.94| 251.00| 3.898
+ synth_one_block:reverb --->| no profiling available
+ synth_one_block:chorus --->| no profiling available
+ voice:note --------------->| no profiling available
+ voice:release ------------>| no profiling available
+ ------------------------------------------------------------------------------
+ Cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond) and maximum voices
+ ------------------------------------------------------------------------------
+ nVoices| total(%)|voices(%)| reverb(%)|chorus(%)| voice(%)|estimated maxVoices
+ -------|---------|---------|----------|---------|---------|-------------------
+ 20| 4.105| 4.105| 0.000| 0.000| 0.195| 513
+
+Profiling time(mm:ss): Total=0:30 Remainder=0:10, press <ENTER> to cancel
+ ------------------------------------------------------------------------------
+ Duration(microsecond) and cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond)
+ ------------------------------------------------------------------------------
+ Code under profiling |Voices| Duration (microsecond) | Load(%)
+ | nbr| min| avg| max|
+ ---------------------------|------|--------------------------------|----------
+ synth_write_* ------------>| 20| 102.00| 109.22| 278.00| 4.096
+ synth_one_block ---------->| 20| 99.00| 106.65| 265.00| 3.999
+ synth_one_block:clear ---->| 20| 1.00| 1.67| 22.00| 0.062
+ synth_one_block:one voice->| 1| 11.00| 12.31| 57.00| 0.462
+ synth_one_block:all voices>| 20| 97.00| 103.68| 251.00| 3.888
+ synth_one_block:reverb --->| no profiling available
+ synth_one_block:chorus --->| no profiling available
+ voice:note --------------->| no profiling available
+ voice:release ------------>| no profiling available
+ ------------------------------------------------------------------------------
+ Cpu loads(%) (sr: 48000 Hz, sp: 20.83 microsecond) and maximum voices
+ ------------------------------------------------------------------------------
+ nVoices| total(%)|voices(%)| reverb(%)|chorus(%)| voice(%)|estimated maxVoices
+ -------|---------|---------|----------|---------|---------|-------------------
+ 20| 4.096| 4.096| 0.000| 0.000| 0.194| 514
+Stopping 20 voices...voices stopped.
+> quit
+cheers!
+JackTemporaryException : now quits...
+Jack main caught signal 2
+fluid_profiling_print
+fluidsynth: Estimated times: min/avg/max (micro seconds)
+fluidsynth: synth_write_* ------------>: 102.000/109.216/278.000
+fluidsynth: synth_one_block ---------->: 99.000/106.649/265.000
+fluidsynth: synth_one_block:clear ---->: 1.000/1.666/22.000
+fluidsynth: synth_one_block:one voice->: 11.000/12.307/57.000
+fluidsynth: synth_one_block:all voices>: 97.000/103.681/251.000
+
+Upstream-Status: Inappropriate [embedded-specific]
+
+---
+ src/rvoice/fluid_rvoice_mixer.c | 55 ++++++++++++++++++++++++++++++++-
+ 1 file changed, 54 insertions(+), 1 deletion(-)
+
+diff --git a/src/rvoice/fluid_rvoice_mixer.c b/src/rvoice/fluid_rvoice_mixer.c
+index af0ef75d..07a357c7 100644
+--- a/src/rvoice/fluid_rvoice_mixer.c
++++ b/src/rvoice/fluid_rvoice_mixer.c
+@@ -27,6 +27,9 @@
+ #include "fluid_ladspa.h"
+ #include "fluid_synth.h"
+
++#if defined(__ARM_NEON__)
++#include "arm_neon.h"
++#endif
+
+ // If less than x voices, the thread overhead is larger than the gain,
+ // so don't activate the thread(s).
+@@ -1053,9 +1056,15 @@ fluid_mixer_buffers_mix(fluid_mixer_buffers_t *dst, fluid_mixer_buffers_t *src,
+ int i, j;
+ int scount = current_blockcount * FLUID_BUFSIZE;
+ int minbuf;
++#if defined(__ARM_NEON__) && defined(WITH_FLOAT)
++ fluid_real_t *FLUID_RESTRICT base_src_left;
++ fluid_real_t *FLUID_RESTRICT base_src_right;
++ fluid_real_t *FLUID_RESTRICT base_dst_left;
++ fluid_real_t *FLUID_RESTRICT base_dst_right;
++#else
+ fluid_real_t *FLUID_RESTRICT base_src;
+ fluid_real_t *FLUID_RESTRICT base_dst;
+-
++#endif
+ minbuf = dst->buf_count;
+
+ if(minbuf > src->buf_count)
+@@ -1063,6 +1072,27 @@ fluid_mixer_buffers_mix(fluid_mixer_buffers_t *dst, fluid_mixer_buffers_t *src,
+ minbuf = src->buf_count;
+ }
+
++#if defined(__ARM_NEON__) && defined(WITH_FLOAT)
++ base_src_left = fluid_align_ptr(src->left_buf, FLUID_DEFAULT_ALIGNMENT);
++ base_dst_left = fluid_align_ptr(dst->left_buf, FLUID_DEFAULT_ALIGNMENT);
++ base_src_right = fluid_align_ptr(src->right_buf, FLUID_DEFAULT_ALIGNMENT);
++ base_dst_right = fluid_align_ptr(dst->right_buf, FLUID_DEFAULT_ALIGNMENT);
++
++ for(i = 0; i < minbuf; i++)
++ {
++ for(j = 0; j < scount; j+=4)
++ {
++ int dsp_i = i * FLUID_MIXER_MAX_BUFFERS_DEFAULT * FLUID_BUFSIZE + j;
++
++ float32x4_t vleft = vld1q_f32(&base_dst_left[dsp_i]);
++ float32x4_t vright = vld1q_f32(&base_dst_right[dsp_i]);
++ vleft = vaddq_f32(vleft, vld1q_f32(&base_src_left[dsp_i]));
++ vright = vaddq_f32(vright, vld1q_f32(&base_src_right[dsp_i]));
++ vst1q_f32(&base_dst_left[dsp_i], vleft);
++ vst1q_f32(&base_dst_right[dsp_i], vright);
++ }
++ }
++#else
+ base_src = fluid_align_ptr(src->left_buf, FLUID_DEFAULT_ALIGNMENT);
+ base_dst = fluid_align_ptr(dst->left_buf, FLUID_DEFAULT_ALIGNMENT);
+
+@@ -1090,6 +1120,7 @@ fluid_mixer_buffers_mix(fluid_mixer_buffers_t *dst, fluid_mixer_buffers_t *src,
+ base_dst[dsp_i] += base_src[dsp_i];
+ }
+ }
++#endif
+
+ minbuf = dst->fx_buf_count;
+
+@@ -1098,6 +1129,27 @@ fluid_mixer_buffers_mix(fluid_mixer_buffers_t *dst, fluid_mixer_buffers_t *src,
+ minbuf = src->fx_buf_count;
+ }
+
++#if defined(__ARM_NEON__) && defined(WITH_FLOAT)
++ base_src_left = fluid_align_ptr(src->fx_left_buf, FLUID_DEFAULT_ALIGNMENT);
++ base_dst_left = fluid_align_ptr(dst->fx_left_buf, FLUID_DEFAULT_ALIGNMENT);
++ base_src_right = fluid_align_ptr(src->fx_right_buf, FLUID_DEFAULT_ALIGNMENT);
++ base_dst_right = fluid_align_ptr(dst->fx_right_buf, FLUID_DEFAULT_ALIGNMENT);
++
++ for(i = 0; i < minbuf; i++)
++ {
++ for(j = 0; j < scount; j+=4)
++ {
++ int dsp_i = i * FLUID_MIXER_MAX_BUFFERS_DEFAULT * FLUID_BUFSIZE + j;
++
++ float32x4_t vleft = vld1q_f32(&base_dst_left[dsp_i]);
++ float32x4_t vright = vld1q_f32(&base_dst_right[dsp_i]);
++ vleft = vaddq_f32(vleft, vld1q_f32(&base_src_left[dsp_i]));
++ vright = vaddq_f32(vright, vld1q_f32(&base_src_right[dsp_i]));
++ vst1q_f32(&base_dst_left[dsp_i], vleft);
++ vst1q_f32(&base_dst_right[dsp_i], vright);
++ }
++ }
++#else
+ base_src = fluid_align_ptr(src->fx_left_buf, FLUID_DEFAULT_ALIGNMENT);
+ base_dst = fluid_align_ptr(dst->fx_left_buf, FLUID_DEFAULT_ALIGNMENT);
+
+@@ -1125,6 +1177,7 @@ fluid_mixer_buffers_mix(fluid_mixer_buffers_t *dst, fluid_mixer_buffers_t *src,
+ base_dst[dsp_i] += base_src[dsp_i];
+ }
+ }
++#endif
+ }
+
+
+--
+2.20.1
+
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb
deleted file mode 100644
index 5002fc9f36..0000000000
--- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_1.1.11.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Fluidsynth is a software synthesizer"
-HOMEPAGE = "http://www.fluidsynth.org/"
-SECTION = "libs/multimedia"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594"
-
-DEPENDS = "alsa-lib ncurses glib-2.0"
-
-SRC_URI = " \
- git://github.com/FluidSynth/fluidsynth.git;branch=1.1.x \
- file://0001-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \
-"
-SRCREV = "f65c6ba25fb2c7e37c89fc6a4afc5aa645e208c2"
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig lib_package
-
-EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
-PACKAGECONFIG[sndfile] = "-Denable-libsndfile-support=ON,-Denable-libsndfile-support=OFF,libsndfile1"
-PACKAGECONFIG[jack] = "-Denable-jack-support=ON,-Denable-jack-support=OFF,jack"
-PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,--Denable-pulseaudio=OFF,pulseaudio"
-PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19"
diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb
new file mode 100644
index 0000000000..a1083af56d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb
@@ -0,0 +1,40 @@
+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=master;protocol=https"
+SRCREV = "4d8fe638e1a48660a4c843d493f69a86579e12f0"
+S = "${WORKDIR}/git"
+PV = "2.3.2"
+
+inherit cmake pkgconfig lib_package
+
+DEPENDS = "glib-2.0"
+
+SRC_URI += " \
+ 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_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/gerbera/files/gerbera.service b/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service
deleted file mode 100644
index 1b5a3ad3e9..0000000000
--- a/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Start Gerbera, an UPnP media server
-After=multi-user.target network-online.target
-Wants=network-online.target
-
-[Service]
-ExecStart=/usr/bin/gerbera
-Environment='HOME=/root'
-Type=simple
-RemainAfterExit=yes
-
-[Install]
-WantedBy=multi-user.target \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-against-fmt-10.patch b/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-against-fmt-10.patch
new file mode 100644
index 0000000000..2da98cfcfb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-against-fmt-10.patch
@@ -0,0 +1,168 @@
+From 2c08724e8a7e3a0ee8cdd91246a714a17f2ba5c1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 17 May 2023 17:31:56 -0700
+Subject: [PATCH] Fix build against fmt 10+
+
+Fixes
+git/src/config/setup/config_setup_vector.cc:191:9: required from here
+| /home/hains/openpli-dm920-python3/build/tmp/work/cortexa15hf-neon-vfpv4-oe-linux-gnueabi/gerbera/1.11.0-r0/
+recipe-sysroot/usr/include/fmt/core.h:1691:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
+| 1691 | formattable,
+| | ^~~~~~~~~~~
+
+Source: https://github.com/Hains/openpli-dm920-python3/commit/688ae121bd3928925a8656bd4aaf3857d8e8a8ed
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/config/setup/config_setup_array.cc | 6 +++---
+ src/config/setup/config_setup_autoscan.cc | 2 +-
+ src/config/setup/config_setup_client.cc | 2 +-
+ src/config/setup/config_setup_dictionary.cc | 6 +++---
+ src/config/setup/config_setup_dynamic.cc | 2 +-
+ src/config/setup/config_setup_transcoding.cc | 2 +-
+ src/config/setup/config_setup_tweak.cc | 2 +-
+ src/config/setup/config_setup_vector.cc | 4 ++--
+ 8 files changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/src/config/setup/config_setup_array.cc b/src/config/setup/config_setup_array.cc
+index 8f3cf1db..efc9b501 100644
+--- a/src/config/setup/config_setup_array.cc
++++ b/src/config/setup/config_setup_array.cc
+@@ -136,11 +136,11 @@ std::vector<std::string> ConfigArraySetup::getXmlContent(const pugi::xml_node& o
+ std::vector<std::string> result;
+ if (initArray) {
+ if (!initArray(optValue, result, ConfigDefinition::mapConfigOption(nodeOption))) {
+- throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue);
++ throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue.value());
+ }
+ } else {
+ if (!createOptionFromNode(optValue, result)) {
+- throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue);
++ throw_std_runtime_error("Invalid {} array value '{}'", xpath, optValue.value());
+ }
+ }
+ if (result.empty()) {
+@@ -149,7 +149,7 @@ std::vector<std::string> ConfigArraySetup::getXmlContent(const pugi::xml_node& o
+ result = defaultEntries;
+ }
+ if (notEmpty && result.empty()) {
+- throw_std_runtime_error("Invalid array {} empty '{}'", xpath, optValue);
++ throw_std_runtime_error("Invalid array {} empty '{}'", xpath, optValue.value());
+ }
+ return result;
+ }
+diff --git a/src/config/setup/config_setup_autoscan.cc b/src/config/setup/config_setup_autoscan.cc
+index e882ca3e..d773419b 100644
+--- a/src/config/setup/config_setup_autoscan.cc
++++ b/src/config/setup/config_setup_autoscan.cc
+@@ -203,7 +203,7 @@ std::shared_ptr<ConfigOption> ConfigAutoscanSetup::newOption(const pugi::xml_nod
+ {
+ auto result = std::vector<AutoscanDirectory>();
+ if (!createOptionFromNode(optValue, result)) {
+- throw_std_runtime_error("Init {} autoscan failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} autoscan failed '{}'", xpath, optValue.value());
+ }
+ optionValue = std::make_shared<AutoscanListOption>(result);
+ return optionValue;
+diff --git a/src/config/setup/config_setup_client.cc b/src/config/setup/config_setup_client.cc
+index 30bb98cb..56be9c53 100644
+--- a/src/config/setup/config_setup_client.cc
++++ b/src/config/setup/config_setup_client.cc
+@@ -163,7 +163,7 @@ std::shared_ptr<ConfigOption> ConfigClientSetup::newOption(const pugi::xml_node&
+ auto result = std::make_shared<ClientConfigList>();
+
+ if (!createOptionFromNode(isEnabled ? optValue : pugi::xml_node(nullptr), result)) {
+- throw_std_runtime_error("Init {} client config failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} client config failed '{}'", xpath, optValue.value());
+ }
+ optionValue = std::make_shared<ClientConfigListOption>(result);
+ return optionValue;
+diff --git a/src/config/setup/config_setup_dictionary.cc b/src/config/setup/config_setup_dictionary.cc
+index eb91c694..ea2aaa05 100644
+--- a/src/config/setup/config_setup_dictionary.cc
++++ b/src/config/setup/config_setup_dictionary.cc
+@@ -162,11 +162,11 @@ std::map<std::string, std::string> ConfigDictionarySetup::getXmlContent(const pu
+ std::map<std::string, std::string> result;
+ if (initDict) {
+ if (!initDict(optValue, result)) {
+- throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue.value());
+ }
+ } else {
+ if (!createOptionFromNode(optValue, result) && required) {
+- throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} dictionary failed '{}'", xpath, optValue.value());
+ }
+ }
+ if (result.empty()) {
+@@ -175,7 +175,7 @@ std::map<std::string, std::string> ConfigDictionarySetup::getXmlContent(const pu
+ result = defaultEntries;
+ }
+ if (notEmpty && result.empty()) {
+- throw_std_runtime_error("Invalid dictionary {} empty '{}'", xpath, optValue);
++ throw_std_runtime_error("Invalid dictionary {} empty '{}'", xpath, optValue.value());
+ }
+ return result;
+ }
+diff --git a/src/config/setup/config_setup_dynamic.cc b/src/config/setup/config_setup_dynamic.cc
+index 6a43b820..93030b85 100644
+--- a/src/config/setup/config_setup_dynamic.cc
++++ b/src/config/setup/config_setup_dynamic.cc
+@@ -179,7 +179,7 @@ std::shared_ptr<ConfigOption> ConfigDynamicContentSetup::newOption(const pugi::x
+ auto result = std::make_shared<DynamicContentList>();
+
+ if (!createOptionFromNode(optValue, result)) {
+- throw_std_runtime_error("Init {} DynamicContentList failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} DynamicContentList failed '{}'", xpath, optValue.value());
+ }
+ optionValue = std::make_shared<DynamicContentListOption>(result);
+ return optionValue;
+diff --git a/src/config/setup/config_setup_transcoding.cc b/src/config/setup/config_setup_transcoding.cc
+index 4827f109..c353ce1f 100644
+--- a/src/config/setup/config_setup_transcoding.cc
++++ b/src/config/setup/config_setup_transcoding.cc
+@@ -492,7 +492,7 @@ std::shared_ptr<ConfigOption> ConfigTranscodingSetup::newOption(const pugi::xml_
+ auto result = std::make_shared<TranscodingProfileList>();
+
+ if (!createOptionFromNode(isEnabled ? optValue : pugi::xml_node(nullptr), result)) {
+- throw_std_runtime_error("Init {} transcoding failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} transcoding failed '{}'", xpath, optValue.value());
+ }
+ optionValue = std::make_shared<TranscodingProfileListOption>(result);
+ return optionValue;
+diff --git a/src/config/setup/config_setup_tweak.cc b/src/config/setup/config_setup_tweak.cc
+index d7692c09..72c2beb2 100644
+--- a/src/config/setup/config_setup_tweak.cc
++++ b/src/config/setup/config_setup_tweak.cc
+@@ -242,7 +242,7 @@ std::shared_ptr<ConfigOption> ConfigDirectorySetup::newOption(const pugi::xml_no
+ auto result = std::make_shared<DirectoryConfigList>();
+
+ if (!createOptionFromNode(optValue, result)) {
+- throw_std_runtime_error("Init {} DirectoryConfigList failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} DirectoryConfigList failed '{}'", xpath, optValue.value());
+ }
+ optionValue = std::make_shared<DirectoryTweakOption>(result);
+ return optionValue;
+diff --git a/src/config/setup/config_setup_vector.cc b/src/config/setup/config_setup_vector.cc
+index c8ff853d..91f99ca4 100644
+--- a/src/config/setup/config_setup_vector.cc
++++ b/src/config/setup/config_setup_vector.cc
+@@ -180,7 +180,7 @@ std::vector<std::vector<std::pair<std::string, std::string>>> ConfigVectorSetup:
+ {
+ std::vector<std::vector<std::pair<std::string, std::string>>> result;
+ if (!createOptionFromNode(optValue, result) && required) {
+- throw_std_runtime_error("Init {} vector failed '{}'", xpath, optValue);
++ throw_std_runtime_error("Init {} vector failed '{}'", xpath, optValue.value());
+ }
+ if (result.empty()) {
+ log_debug("{} assigning {} default values", xpath, defaultEntries.size());
+@@ -188,7 +188,7 @@ std::vector<std::vector<std::pair<std::string, std::string>>> ConfigVectorSetup:
+ result = defaultEntries;
+ }
+ if (notEmpty && result.empty()) {
+- throw_std_runtime_error("Invalid vector {} empty '{}'", xpath, optValue);
++ throw_std_runtime_error("Invalid vector {} empty '{}'", xpath, optValue.value());
+ }
+ return result;
+ }
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
new file mode 100644
index 0000000000..bb8e438304
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-build-with-fmt-9.0.patch
@@ -0,0 +1,37 @@
+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
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ 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
new file mode 100644
index 0000000000..2a6d328711
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.11.0.bb
@@ -0,0 +1,32 @@
+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 \
+ file://0001-Fix-build-against-fmt-10.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_git.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb
deleted file mode 100644
index f763cf1e42..0000000000
--- a/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-Description = "Gerbera - An UPnP media server"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8"
-
-SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \
- file://gerbera.service \
-"
-
-PV = "1.0+git${SRCPV}"
-SRCREV = "4435b165d121195aefd67d0287f7f9349e181d45"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "expat zlib curl libupnp e2fsprogs sqlite3 "
-
-SYSTEMD_SERVICE_${PN} = "gerbera.service"
-
-inherit cmake systemd
-
-PACKAGECONFIG = ""
-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/
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/gerbera.service ${D}${systemd_system_unitdir}/
-}
-
-FILES_${PN} += "/root/.config/"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb
deleted file mode 100644
index 1e2cd2a4ab..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mp3_0.10.31.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require gst-fluendo.inc
-
-SUMMARY = "Fluendo closed-format mp3 GStreamer plug-in"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=259a43dd1c9854b71fc396f74699f4d2"
-LICENSE_FLAGS = "commercial"
-
-GSTREAMER_DEBUG ?= "--disable-debug"
-EXTRA_OECONF += "${GSTREAMER_DEBUG} --with-gstreamer-api=0.10"
-
-acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-
-SRC_URI[md5sum] = "adf0390f3416bb72f91c358528be0c38"
-SRC_URI[sha256sum] = "dae0d0559a4e159c0dd92b7e18de059a5783f8d038904c7de4ca6393f7d55c7d"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb
deleted file mode 100644
index 7bba41a341..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo-mpegdemux_0.10.85.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require gst-fluendo.inc
-
-SUMMARY = "Fluendo MPEG Transport Stream and Program Stream demuxer for GStreamer"
-LICENSE = "MPLv1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=be282f1c3cc9a98cc0dc5c2b25dfc510 \
- file://src/gstmpegdemux.h;beginline=1;endline=19;md5=a9e90033f59897b91664d9f2a2ff01dd"
-LICENSE_FLAGS = "commercial"
-
-acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-
-SRC_URI[md5sum] = "7c4fb993f80b9ae631b11897733f0970"
-SRC_URI[sha256sum] = "df04c91cc8e5d9a892c2492ed989974b4547beaa2a3647649e85113317897424"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc
deleted file mode 100644
index 7a77d624f2..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-fluendo.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Fluendo closed-format GStreamer plug-in"
-SECTION = "multimedia"
-HOMEPAGE = "https://core.fluendo.com/gstreamer/trac/wiki"
-DEPENDS = "gstreamer gst-plugins-base zlib"
-
-inherit autotools pkgconfig
-
-SRC_URI = "http://core.fluendo.com/gstreamer/src/${BPN}/${BPN}-${PV}.tar.bz2"
-
-FILES_${PN} += "${libdir}/gstreamer-0.10/*.so"
-FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
-FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
-
-EXTRA_OECONF = "--disable-valgrind"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb
deleted file mode 100644
index 88f1abf68a..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-meta-base_0.10.bb
+++ /dev/null
@@ -1,73 +0,0 @@
-SUMMARY = "GStreamer package groups"
-LICENSE = "MIT"
-
-COMMERCIAL_PLUGINS = "${COMMERCIAL_AUDIO_PLUGINS} ${COMMERCIAL_VIDEO_PLUGINS}"
-DEPENDS_UGLY="${@'gst-plugins-ugly' if 'ugly' in COMMERCIAL_PLUGINS.split('-') else ''}"
-DEPENDS_BAD="${@'gst-plugins-bad' if 'bad' in COMMERCIAL_PLUGINS.split('-') else ''}"
-DEPENDS = "gstreamer gst-plugins-base gst-plugins-good ${DEPENDS_UGLY} ${DEPENDS_BAD}"
-
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
- file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-
-PR = "r13"
-
-PACKAGES = "\
- gst-meta-base \
- gst-meta-x11-base \
- gst-meta-audio \
- gst-meta-debug \
- gst-meta-video"
-
-ALLOW_EMPTY_gst-meta-base = "1"
-ALLOW_EMPTY_gst-meta-x11-base = "1"
-ALLOW_EMPTY_gst-meta-audio = "1"
-ALLOW_EMPTY_gst-meta-debug = "1"
-ALLOW_EMPTY_gst-meta-video = "1"
-
-RDEPENDS_gst-meta-base = "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \
- gstreamer \
- gst-plugins-base-playbin \
- gst-plugins-base-decodebin \
- gst-plugins-base-decodebin2 \
- gst-plugins-base-gio \
- gst-plugins-base-alsa \
- gst-plugins-base-volume \
- gst-plugins-base-audioconvert \
- gst-plugins-base-audioresample \
- gst-plugins-base-typefindfunctions \
- gst-plugins-base-videoscale \
- gst-plugins-base-ffmpegcolorspace \
- gst-plugins-good-autodetect \
- gst-plugins-good-souphttpsrc"
-
-RRECOMMENDS_gst-meta-x11-base = "\
- gst-plugins-base-ximagesink \
- gst-plugins-base-xvimagesink"
-
-RDEPENDS_gst-meta-audio = "\
- gst-meta-base \
- gst-plugins-base-vorbis \
- gst-plugins-base-ogg \
- gst-plugins-good-wavparse \
- gst-plugins-good-flac \
- ${COMMERCIAL_AUDIO_PLUGINS}"
-
-
-RDEPENDS_gst-meta-debug = "\
- gst-meta-base \
- gst-plugins-good-debug \
- gst-plugins-base-audiotestsrc \
- gst-plugins-base-videotestsrc"
-
-
-RDEPENDS_gst-meta-video = "\
- gst-meta-base \
- gst-plugins-good-avi \
- gst-plugins-good-matroska \
- gst-plugins-base-theora \
- ${COMMERCIAL_VIDEO_PLUGINS}"
-
-RRECOMMENDS_gst-meta-video = "\
- gst-meta-audio"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch
deleted file mode 100644
index 57a63b5a0f..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/gcc_4.6.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
-Signed-off-by: Saul Wold <sgw@linux.intel.com>
-
-Index: gst-openmax-0.10.1/omx/gstomx.c
-===================================================================
---- gst-openmax-0.10.1.orig/omx/gstomx.c 2010-09-30 18:00:24.000000000 -0700
-+++ gst-openmax-0.10.1/omx/gstomx.c 2011-05-17 23:08:08.794535872 -0700
-@@ -238,7 +238,8 @@
- const gchar *element_name = gst_structure_nth_field_name (element_table, i);
- GstStructure *element = get_element_entry (element_name);
- const gchar *type_name, *parent_type_name;
-- const gchar *component_name, *component_role, *library_name;
-+ const gchar *component_name, *library_name;
-+ const gchar __attribute__((__unused__)) *component_role;
- GType type;
- gint rank;
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch
deleted file mode 100644
index 5965bbafbb..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax/ptr-array.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Rename static functions that use GLib naming conventions as one of them
-(g_ptr_array_insert) has now been added to GLib.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/omx/gstomx_util.c b/omx/gstomx_util.c
-index 423e441..579dbf5 100644
---- a/omx/gstomx_util.c
-+++ b/omx/gstomx_util.c
-@@ -85,7 +85,7 @@ static gboolean initialized;
- */
-
- static void
--g_ptr_array_clear (GPtrArray * array)
-+omx_g_ptr_array_clear (GPtrArray * array)
- {
- guint index;
- for (index = 0; index < array->len; index++)
-@@ -93,7 +93,7 @@ g_ptr_array_clear (GPtrArray * array)
- }
-
- static void
--g_ptr_array_insert (GPtrArray * array, guint index, gpointer data)
-+omx_g_ptr_array_insert (GPtrArray * array, guint index, gpointer data)
- {
- if (index + 1 > array->len) {
- g_ptr_array_set_size (array, index + 1);
-@@ -394,7 +394,7 @@ g_omx_core_unload (GOmxCore * core)
- }
-
- core_for_each_port (core, g_omx_port_free);
-- g_ptr_array_clear (core->ports);
-+ omx_g_ptr_array_clear (core->ports);
- }
-
- static inline GOmxPort *
-@@ -418,7 +418,7 @@ g_omx_core_new_port (GOmxCore * core, guint index)
- }
-
- port = g_omx_port_new (core, index);
-- g_ptr_array_insert (core->ports, index, port);
-+ omx_g_ptr_array_insert (core->ports, index, port);
-
- return port;
- }
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb
deleted file mode 100644
index 2e01579569..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-openmax_0.10.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "GStreamer plug-in for communication with OpenMAX IL components"
-DESCRIPTION = "GstOpenMAX is a GStreamer plug-in that allows \
-communication with OpenMAX Integration Layer (IL) components. OpenMAX \
-IL is an industry standard that provides an abstraction layer for \
-computer graphics, video, and sound routines."
-HOMEPAGE = "http://freedesktop.org/wiki/GstOpenMAX"
-DEPENDS = "gstreamer"
-RDEPENDS_${PN} = "libomxil"
-LICENSE = "LGPLv2.1"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24 \
- file://util/sem.h;beginline=1;endline=20;md5=accce5550d5583b839b441a0623f09fc"
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/gst-openmax/gst-openmax-${PV}.tar.bz2 \
- file://gcc_4.6.patch \
- file://ptr-array.patch \
- "
-
-inherit autotools pkgconfig
-
-# Tell configure that this isn't a development snapshot so we don't want
-# -Werror (hopefully fixed in 0.10.2)
-export GST_CVS="no"
-
-EXTRA_OECONF += "--disable-valgrind"
-
-PR = "r4"
-
-FILES_${PN} += "${libdir}/gstreamer-0.10/libgstomx.so"
-FILES_${PN}-dev += "${libdir}/gstreamer-0.10/libgstomx.la"
-FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/libgstomx.a"
-FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug/"
-
-SRC_URI[md5sum] = "4d0370bfe99dea20918c84347abadb4e"
-SRC_URI[sha256sum] = "9074d5a0591995133d19cfb15144f19664f902c1623f996595695cf2c2070e1f"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch
deleted file mode 100644
index 235acda8bf..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad/buffer-overflow-mp4.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Description: Fix buffer overflow in mp4 parsing
-Author: Ralph Giles <giles@mozilla.com>
----
-Backport patch from debian to fix CVE-2015-0797.
-https://sources.debian.net/data/main/g/gst-plugins-bad0.10/0.10.23-7.1+deb7u2/debian/patches/buffer-overflow-mp4.patch
-
-Upstream-Status: Backport
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
---- gst-plugins-bad0.10-0.10.23.orig/gst/videoparsers/gsth264parse.c
-+++ gst-plugins-bad0.10-0.10.23/gst/videoparsers/gsth264parse.c
-@@ -384,6 +384,11 @@ gst_h264_parse_wrap_nal (GstH264Parse *
-
- GST_DEBUG_OBJECT (h264parse, "nal length %d", size);
-
-+ if (size > G_MAXUINT32 - nl) {
-+ GST_ELEMENT_ERROR (h264parse, STREAM, FAILED, (NULL),
-+ ("overflow in nal size"));
-+ return NULL;
-+ }
- buf = gst_buffer_new_and_alloc (size + nl + 4);
- if (format == GST_H264_PARSE_FORMAT_AVC) {
- GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf), size << (32 - 8 * nl));
-@@ -452,6 +457,11 @@ gst_h264_parse_process_nal (GstH264Parse
- GST_DEBUG_OBJECT (h264parse, "not processing nal size %u", nalu->size);
- return;
- }
-+ if (G_UNLIKELY (nalu->size > 20 * 1024 * 1024)) {
-+ GST_DEBUG_OBJECT (h264parse, "not processing nal size %u (too big)",
-+ nalu->size);
-+ return;
-+ }
-
- /* we have a peek as well */
- nal_type = nalu->type;
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb
deleted file mode 100644
index 38fccc8d01..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-bad_0.10.23.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-require gst-plugins.inc
-
-LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
- file://gst/tta/filters.h;beginline=12;endline=29;md5=629b0c7a665d155a6677778f4460ec06 \
- file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
- file://gst/tta/crc32.h;beginline=12;endline=29;md5=71a904d99ce7ae0c1cf129891b98145c"
-
-DEPENDS += "gst-plugins-base"
-
-PR = "r4"
-
-SRC_URI += "file://buffer-overflow-mp4.patch"
-
-inherit gettext gsettings
-
-EXTRA_OECONF += "--disable-experimental \
- --disable-sdl --disable-cdaudio --disable-directfb \
- --disable-vdpau --disable-apexsink"
-
-PACKAGECONFIG ??= "bzip curl \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'rsvg', '', d)}"
-
-PACKAGECONFIG[bzip] = "--enable-bz2,--disable-bz2,bzip2"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl"
-PACKAGECONFIG[rsvg] = "--enable-rsvg,--disable-rsvg,librsvg,"
-PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
-PACKAGECONFIG[neon] = "--enable-neon,--disable-neon,neon"
-PACKAGECONFIG[mms] = "--enable-libmms,--disable-libmms,libmms"
-PACKAGECONFIG[cog] = "--enable-cog,--disable-cog,libpng"
-PACKAGECONFIG[faad] = "--enable-faad,--disable-faad,faad2"
-PACKAGECONFIG[jp2k] = "--enable-jp2k,--disable-jp2k,jasper"
-PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug"
-PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus"
-PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1"
-PACKAGECONFIG[vp8] = "--enable-vp8,--disable-vp8,libvpx"
-PACKAGECONFIG[ass] = "--enable-assrender,--disable-assrender,libass"
-PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft"
-PACKAGECONFIG[schro] = "--enable-schro,--disable-schro,schroedinger"
-PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394"
-PACKAGECONFIG[faac] = "--enable-faac,--disable-faac,faac"
-PACKAGECONFIG[rtmp] = "--enable-rtmp,--disable-rtmp,rtmpdump"
-PACKAGECONFIG[voamrwbenc] = "--enable-voamrwbenc,--disable-voamrwbenc,vo-amrwbenc"
-PACKAGECONFIG[voaacenc] = "--enable-voaacenc,--disable-voaacenc,vo-aacenc"
-PACKAGECONFIG[resindvd] = "--enable-resindvd,--disable-resindvd,libdvdnav libdvdread"
-PACKAGECONFIG[zbar] = "--enable-zbar,--disable-zbar,zbar jpeg"
-
-ARM_INSTRUCTION_SET = "arm"
-
-PACKAGES =+ "${PN}-resindvd"
-FILES_${PN}-resindvd = "${libdir}/gstreamer-${LIBV}/libresindvd.so"
-FILES_${PN}-dev += "${libdir}/gstreamer-${LIBV}/libresindvd.la"
-FILES_${PN}-voamrwbenc += "${datadir}/gstreamer-${LIBV}/presets/GstVoAmrwbEnc.prs"
-
-do_configure_prepend() {
- # This m4 file contains nastiness which conflicts with libtool 2.2.2
- rm ${S}/m4/lib-link.m4 || true
-}
-
-SRC_URI[md5sum] = "fcb09798114461955260e4d940db5987"
-SRC_URI[sha256sum] = "0eae7d1a1357ae8377fded6a1b42e663887beabe0e6cc336e2ef9ada42e11491"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch
deleted file mode 100644
index 29fbec5f80..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 5478eafecf618cd8e742cc1b96d688a2c7ce5a79 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Sun, 2 Oct 2016 21:49:33 +0200
-Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-we are definitely not one of those poor souls mentioned
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- common/m4/gst-glib2.m4 | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
-index b01f02f..4569ae5 100644
---- a/common/m4/gst-glib2.m4
-+++ b/common/m4/gst-glib2.m4
-@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
- fi
-
- dnl for the poor souls who for example have glib in /usr/local
-- AS_SCRUB_INCLUDE(GLIB_CFLAGS)
-
- AC_SUBST(GLIB_EXTRA_CFLAGS)
- ])
---
-2.5.5
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch
deleted file mode 100644
index 52142562ab..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-audioresample: Fix build on x86 if emmintrin.h is available but can't be used
-
-On x86, EMMINTRIN is defined but not usable without SSE so check for
-__SSE__ and __SSE2__ as well.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
-
-Upstream-Status: Backport
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- gst/audioresample/resample.c | 4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
-index 98d006c..481fa01 100644
---- a/gst/audioresample/resample.c
-+++ b/gst/audioresample/resample.c
-@@ -77,13 +77,13 @@
- #define EXPORT G_GNUC_INTERNAL
-
- #ifdef _USE_SSE
--#ifndef HAVE_XMMINTRIN_H
-+#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE
- #endif
- #endif
-
- #ifdef _USE_SSE2
--#ifndef HAVE_EMMINTRIN_H
-+#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H)
- #undef _USE_SSE2
- #endif
- #endif
---
-1.7.1
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch
deleted file mode 100644
index b8602c80d7..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/configure.ac-fix-subparse-plugin.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Upstream-Status: Submitted [similar patch by other author, bugzilla]
-Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600
-
-Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't
-search for gstconfig.h in /usr/include.
-
-Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
----
- configure.ac | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 1901bcf..460fb0a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume)
- dnl check for gstreamer core features (subsystems)
- dnl FIXME: this assumes srcdir == builddir for uninstalled setups
- GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
--AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH)
-+AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH)
- AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1")
-
- dnl disable plug-ins that require libxml2's HTML support if it is not available
---
-1.7.5.4
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch
deleted file mode 100644
index 99dbc9d52e..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base-0.10.36/gst-plugins-base-tremor.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Remove -DTREMOR option since Tremor has dropped its internal
-libogg2, and gst-plugins-base has dependency on that.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-Signed-off-by: Shane Wang <shane.wang@intel.com>
-
-diff -r 70065fb4e085 ext/vorbis/Makefile.am
---- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800
-+++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800
-@@ -30,7 +30,7 @@
- gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
- libgstivorbisdec_la_CFLAGS = \
- $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
-- -DTREMOR $(IVORBIS_CFLAGS)
-+ $(IVORBIS_CFLAGS)
- libgstivorbisdec_la_LIBADD = \
- $(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
- $(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb
deleted file mode 100644
index f2354648df..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-base_0.10.36.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-require gst-plugins.inc
-
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
- file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
- file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
- file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0"
-
-DEPENDS += "alsa-lib libogg libvorbis libtheora util-linux tremor glib-2.0-native"
-
-SRC_URI += "file://gst-plugins-base-tremor.patch \
- file://configure.ac-fix-subparse-plugin.patch \
- file://audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch \
- file://0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \
-"
-
-SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a"
-SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976"
-
-PR = "r8"
-
-inherit gettext
-
-EXTRA_OECONF += "--disable-freetypetest"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-
-PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
-PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
-PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice"
-PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia"
-
-do_configure_prepend() {
- # This m4 file contains nastiness which conflicts with libtool 2.2.2
- rm -f ${S}/m4/lib-link.m4
-}
-
-FILES_${PN} += "${datadir}/${BPN}"
-
-CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no"
-
-# /usr/bin/gst-visualise-0.10 is a perl script.
-RDEPENDS_${PN}-apps += "perl"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch
deleted file mode 100644
index bc2f88b241..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/0001-conditional-gl-framebuffer-undefined-use.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 14d51cbefef19737e7ab2b6818ee1d3bdb248d12 Mon Sep 17 00:00:00 2001
-From: Jeremy Stashluk <jstashluk@dekaresearch.com>
-Date: Wed, 6 Feb 2013 09:59:48 -0500
-Subject: [PATCH] conditional gl framebuffer undefined use
-
-The OpenGL extension GL_ARB_framebuffer_object defines the macro
-GL_FRAMEBUFFER_UNDEFINED. The macro will only need to map to an error
-string if the extension provides functions that might return the macro.
-
-Upstream-Status: Pending
-
-Signed-off-by: Jeremy Stashluk <jstashluk@dekaresearch.com>
----
- gst-libs/gst/gl/gstgldisplay.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/gst-libs/gst/gl/gstgldisplay.c b/gst-libs/gst/gl/gstgldisplay.c
-index 3ed0b71..64c6c2c 100644
---- a/gst-libs/gst/gl/gstgldisplay.c
-+++ b/gst-libs/gst/gl/gstgldisplay.c
-@@ -2177,9 +2177,11 @@ gst_gl_display_check_framebuffer_status (void)
- GST_ERROR ("GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS");
- break;
-
-+#if defined(GL_ARB_framebuffer_object)
- case GL_FRAMEBUFFER_UNDEFINED:
- GST_ERROR ("GL_FRAMEBUFFER_UNDEFINED");
- break;
-+#endif
-
- default:
- GST_ERROR ("General FBO error");
---
-1.7.9.5
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch
deleted file mode 100644
index 7db1c5afcc..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl/rpi-egl-gles2-dep.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Check for header and library separately and check for GLESv2 before egl
-this is to overcome an annoying issue with rpi/userland where egl depends
-on sysmbols from libGLESv2
-
--Khem
-Index: gst-plugins-gl-0.10.3/configure.ac
-===================================================================
---- gst-plugins-gl-0.10.3.orig/configure.ac
-+++ gst-plugins-gl-0.10.3/configure.ac
-@@ -183,8 +183,10 @@ case $host in
- else
- AC_CHECK_HEADERS([EGL/egl.h], [HAVE_EGL=yes], [HAVE_EGL=no])
- if test "x$HAVE_EGL" = "xyes"; then
-- AG_GST_CHECK_LIBHEADER(EGL, EGL, eglGetError,, EGL/egl.h,, AC_MSG_ERROR([EGL is required]))
-- AG_GST_CHECK_LIBHEADER(GLES2, GLESv2, glTexImage2D,, GLES2/gl2.h,, AC_MSG_ERROR([OpenGLES2 is required]))
-+ AC_CHECK_HEADERS([GLES2/gl2.h],, AC_MSG_ERROR([OpenGLES2 is required]))
-+ AC_CHECK_LIB(GLESv2,[glTexImage2D],, AC_MSG_ERROR([OpenGLES2 is required]))
-+ AC_CHECK_HEADERS([EGL/egl.h],, AC_MSG_ERROR([EGL is required]))
-+ AC_CHECK_LIB(EGL,[eglGetError],, AC_MSG_ERROR([EGL is required]))
- GL_LIBS="$LIBS $X_LIBS -lEGL -lGLESv2"
- GL_BACKEND=x11ES2
- GL_TYPE=gles
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb
deleted file mode 100644
index f3eaf30940..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-gl_0.10.3.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-require gst-plugins.inc
-
-LICENSE = "GPLv2+ & LGPLv2+ & LGPLv2.1+ "
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
-
-SRC_URI[md5sum] = "ac70ede13f79978d56eaed8abaa3c938"
-SRC_URI[sha256sum] = "48340b6a4b8abce16344a7bc33e74a94fdcce4f57ef6342cdf2f941c429bf210"
-
-SRC_URI += " file://0001-conditional-gl-framebuffer-undefined-use.patch \
- file://rpi-egl-gles2-dep.patch \
-"
-
-DEPENDS += "gst-plugins-base virtual/libgles2 virtual/egl jpeg libpng glew"
-
-PR = "r4"
-
-inherit gettext distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "opengl"
-
-# This package doesn't have a configure switch for EGL or GL, so forcibly tell
-# configure that it can't find gl.h so it always uses EGL. If/when we have some
-# way for machines to specify their preferred GL flavour this can be
-# automatically adapted.
-EXTRA_OECONF += "ac_cv_header_GL_gl_h=no"
-
-ALLOW_EMPTY_${PN} = "1"
-ALLOW_EMPTY_${PN}-apps = "1"
-ALLOW_EMPTY_${PN}-glib = "1"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
deleted file mode 100644
index 6456d3c6c2..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Wed, 5 Sep 2012 18:54:42 +0200
-Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input
- field was removed
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Backport
-
-[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- sys/v4l2/gstv4l2bufferpool.c | 1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
-index b81c6a4..51cc0ce 100644
---- a/sys/v4l2/gstv4l2bufferpool.c
-+++ b/sys/v4l2/gstv4l2bufferpool.c
-@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps)
- GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u",
- ret->vbuffer.m.offset);
- GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length);
-- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input);
-
- data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
- PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
---
-1.7.6.5
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch
deleted file mode 100644
index bd0de583a5..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001
-From: Bruce Ashfield <bruce.ashfield@windriver.com>
-Date: Thu, 22 Aug 2013 12:15:54 -0400
-Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER
-
-kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls]
-removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three
-years of depreciation.
-
-The ioctl values are still free, and the case statement which processess them
-in v4l2 userspace falls through to the proper replacement. So in the short
-term, we can explicitly define them using the old absolute values, and everything
-will work.
-
-Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
----
- sys/v4l2/v4l2_calls.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
-index 309bfb6..3c64544 100644
---- a/sys/v4l2/v4l2_calls.c
-+++ b/sys/v4l2/v4l2_calls.c
-@@ -54,11 +54,16 @@
- #include "gst/gst-i18n-plugin.h"
-
- /* Those are ioctl calls */
-+
-+/* V4L2_CID_HCENTER has been removed from the mainline kernel, but
-+ the ioctl space is still present. Since these values fall through
-+ to their replacement, it is safe (in the short term) to re-use the
-+ old values explictily */
- #ifndef V4L2_CID_HCENTER
--#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED
-+#define V4L2_CID_HCENTER V4L2_CID_BASE+22
- #endif
- #ifndef V4L2_CID_VCENTER
--#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED
-+#define V4L2_CID_VCENTER V4L2_CID_BASE+23
- #endif
-
- GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
---
-1.7.10.4
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch
deleted file mode 100644
index 48b8e98b81..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good-0.10.31/0407-mulawdec-fix-integer-overrun.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001
-From: Roland Krikava <rkrikava@gmail.com>
-Date: Fri, 2 Nov 2012 12:38:44 -0400
-Subject: [PATCH 407/440] mulawdec: fix integer overrun
-
-There might be more than 65535 samples in a chunk of data.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=687469
-
-Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch
-
-Upstream Status: Backported
-
-Signed-off-by: Roland Krikava <rkrikava@gmail.com>
----
- gst/law/mulaw-conversion.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c
-index 8afae80..190a9f5 100644
---- a/gst/law/mulaw-conversion.c
-+++ b/gst/law/mulaw-conversion.c
-@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples)
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
- 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
- };
-- gint16 sign, exponent, mantissa, i;
-+ gint16 sign, exponent, mantissa;
- gint16 sample;
- guint8 ulawbyte;
-+ gint i;
-
- for (i = 0; i < numsamples; i++) {
- sample = in[i];
-@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples)
- static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 };
- gint16 sign, exponent, mantissa;
- guint8 ulawbyte;
-- gint16 linear, i;
-+ gint16 linear;
-+ gint i;
-
- for (i = 0; i < numsamples; i++) {
- ulawbyte = in[i];
---
-1.7.9.5
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb
deleted file mode 100644
index f993cfc111..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-good_0.10.31.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-require gst-plugins.inc
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
- file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
-
-PR = "r8"
-
-PACKAGECONFIG ?= "jpeg v4l \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \
-"
-PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
-PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
-PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
-PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
-PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,libgudev"
-# sub-feature of v4l, but control separately since libv4l is not part of oe-core
-PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l"
-PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2"
-PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
-PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage"
-PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394"
-
-DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \
- speex libsoup-2.4 libcap"
-
-inherit gettext gconf
-
-SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \
- file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \
- file://0407-mulawdec-fix-integer-overrun.patch \
-"
-EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \
- --disable-examples --disable-taglib"
-
-do_configure_prepend() {
- # This m4 file contains nastiness which conflicts with libtool 2.2.2
- rm ${S}/m4/lib-link.m4 || true
-}
-
-SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6"
-SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6"
-
-FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas"
-FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch
deleted file mode 100644
index 1f72fc036c..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From 649bd92cd2600719862ad5189899212409dd0a67 Mon Sep 17 00:00:00 2001
-From: Leon Merten Lohse <leon@green-side.de>
-Date: Thu, 3 May 2012 23:50:30 +0100
-Subject: [PATCH] cdio: compensate for libcdio's recent cd-text api changes
-
-https://bugzilla.gnome.org/show_bug.cgi?id=675112
-
-Conflicts:
-
- ext/cdio/gstcdiocddasrc.c
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
-
-Upstream-Status: Backport
----
- ext/cdio/gstcdio.c | 35 ++++++++++++++++++++++++++++-------
- ext/cdio/gstcdio.h | 16 ++++++++++++++++
- ext/cdio/gstcdiocddasrc.c | 19 +++++++++++++++++++
- 3 files changed, 63 insertions(+), 7 deletions(-)
-
-diff --git a/ext/cdio/gstcdio.c b/ext/cdio/gstcdio.c
-index 2f58d18..483ebf5 100644
---- a/ext/cdio/gstcdio.c
-+++ b/ext/cdio/gstcdio.c
-@@ -30,12 +30,16 @@
- GST_DEBUG_CATEGORY (gst_cdio_debug);
-
- void
--gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext,
-+gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext, track_t track,
- cdtext_field_t field, const gchar * gst_tag, GstTagList ** p_tags)
- {
- const gchar *txt;
-
-+#if LIBCDIO_VERSION_NUM > 83
-+ txt = cdtext_get_const (cdtext, field, track);
-+#else
- txt = cdtext_get_const (field, cdtext);
-+#endif
- if (txt == NULL || *txt == '\0') {
- GST_DEBUG_OBJECT (src, "empty CD-TEXT field %u (%s)", field, gst_tag);
- return;
-@@ -57,6 +61,12 @@ gst_cdio_add_cdtext_field (GstObject * src, cdtext_t * cdtext,
- }
-
- GstTagList *
-+#if LIBCDIO_VERSION_NUM > 83
-+gst_cdio_get_cdtext (GstObject * src, cdtext_t * t, track_t track)
-+{
-+ GstTagList *tags = NULL;
-+
-+#else
- gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track)
- {
- GstTagList *tags = NULL;
-@@ -67,14 +77,22 @@ gst_cdio_get_cdtext (GstObject * src, CdIo * cdio, track_t track)
- GST_DEBUG_OBJECT (src, "no CD-TEXT for track %u", track);
- return NULL;
- }
-+#endif
-
-- gst_cdio_add_cdtext_field (src, t, CDTEXT_PERFORMER, GST_TAG_ARTIST, &tags);
-- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_TITLE, &tags);
-+ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_PERFORMER,
-+ GST_TAG_ARTIST, &tags);
-+ gst_cdio_add_cdtext_field (src, t, track, CDTEXT_FIELD_TITLE, GST_TAG_TITLE,
-+ &tags);
-
- return tags;
- }
-
- void
-+#if LIBCDIO_VERSION_NUM > 83
-+gst_cdio_add_cdtext_album_tags (GstObject * src, cdtext_t * t,
-+ GstTagList * tags)
-+{
-+#else
- gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags)
- {
- cdtext_t *t;
-@@ -84,11 +102,14 @@ gst_cdio_add_cdtext_album_tags (GstObject * src, CdIo * cdio, GstTagList * tags)
- GST_DEBUG_OBJECT (src, "no CD-TEXT for album");
- return;
- }
-+#endif
-
-- /* FIXME: map CDTEXT_PERFORMER to GST_TAG_ALBUM_ARTIST once we have that */
-- gst_cdio_add_cdtext_field (src, t, CDTEXT_TITLE, GST_TAG_ALBUM, &tags);
-- gst_cdio_add_cdtext_field (src, t, CDTEXT_GENRE, GST_TAG_GENRE, &tags);
--
-+ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_PERFORMER,
-+ GST_TAG_ALBUM_ARTIST, &tags);
-+ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_TITLE, GST_TAG_ALBUM,
-+ &tags);
-+ gst_cdio_add_cdtext_field (src, t, 0, CDTEXT_FIELD_GENRE, GST_TAG_GENRE,
-+ &tags);
- GST_DEBUG ("CD-TEXT album tags: %" GST_PTR_FORMAT, tags);
- }
-
-diff --git a/ext/cdio/gstcdio.h b/ext/cdio/gstcdio.h
-index ef31ed0..c6da580 100644
---- a/ext/cdio/gstcdio.h
-+++ b/ext/cdio/gstcdio.h
-@@ -24,22 +24,38 @@
- #include <gst/gst.h>
- #include <cdio/cdio.h>
- #include <cdio/cdtext.h>
-+#include <cdio/version.h>
-+
-+#if LIBCDIO_VERSION_NUM <= 83
-+ #define CDTEXT_FIELD_PERFORMER CDTEXT_PERFORMER
-+ #define CDTEXT_FIELD_GENRE CDTEXT_GENRE
-+ #define CDTEXT_FIELD_TITLE CDTEXT_TITLE
-+#endif
-
- GST_DEBUG_CATEGORY_EXTERN (gst_cdio_debug);
- #define GST_CAT_DEFAULT gst_cdio_debug
-
- void gst_cdio_add_cdtext_field (GstObject * src,
- cdtext_t * cdtext,
-+ track_t track,
- cdtext_field_t field,
- const gchar * gst_tag,
- GstTagList ** p_tags);
-
- GstTagList * gst_cdio_get_cdtext (GstObject * src,
-+#if LIBCDIO_VERSION_NUM > 83
-+ cdtext_t * t,
-+#else
- CdIo * cdio,
-+#endif
- track_t track);
-
- void gst_cdio_add_cdtext_album_tags (GstObject * src,
-+#if LIBCDIO_VERSION_NUM > 83
-+ cdtext_t * t,
-+#else
- CdIo * cdio,
-+#endif
- GstTagList * tags);
-
- #endif /* __GST_CDIO_H__ */
-diff --git a/ext/cdio/gstcdiocddasrc.c b/ext/cdio/gstcdiocddasrc.c
-index 615a0c8..830839e 100644
---- a/ext/cdio/gstcdiocddasrc.c
-+++ b/ext/cdio/gstcdiocddasrc.c
-@@ -206,6 +206,9 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device)
- GstCdioCddaSrc *src;
- discmode_t discmode;
- gint first_track, num_tracks, i;
-+#if LIBCDIO_VERSION_NUM > 83
-+ cdtext_t *cdtext;
-+#endif
-
- src = GST_CDIO_CDDA_SRC (audiocdsrc);
-
-@@ -244,8 +244,18 @@ gst_cdio_cdda_src_open (GstCddaBaseSrc * cddabasesrc, const gchar * device)
- if (src->read_speed != -1)
- cdio_set_speed (src->cdio, src->read_speed);
-
-+#if LIBCDIO_VERSION_NUM > 83
-+ cdtext = cdio_get_cdtext (src->cdio);
-+
-+ if (NULL == cdtext)
-+ GST_DEBUG_OBJECT (src, "no CD-TEXT on disc");
-+ else
-+ gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), cdtext,
-+ cddabasesrc->tags);
-+#else
- gst_cdio_add_cdtext_album_tags (GST_OBJECT_CAST (src), src->cdio,
- cddabasesrc->tags);
-+#endif
-
- GST_LOG_OBJECT (src, "%u tracks, first track: %d", num_tracks, first_track);
-
-@@ -250,8 +263,14 @@ gst_cdio_cdda_src_open (GstAudioCdSrc * audiocdsrc, const gchar * device)
- * the right thing here (for cddb id calculations etc. as well) */
- track.start = cdio_get_track_lsn (src->cdio, i + first_track);
- track.end = track.start + len_sectors - 1; /* -1? */
-+#if LIBCDIO_VERSION_NUM > 83
-+ if (NULL != cdtext)
-+ track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), cdtext,
-+ i + first_track);
-+#else
- track.tags = gst_cdio_get_cdtext (GST_OBJECT (src), src->cdio,
- i + first_track);
-+#endif
-
- gst_audio_cd_src_add_track (GST_AUDIO_CD_SRC (src), &track);
- }
---
-2.1.0
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch
deleted file mode 100644
index 3fd6a26974..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly/0002-Fix-opencore-include-paths.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From e634bc6420826f760f6519a9f134c6a4d3412ef8 Mon Sep 17 00:00:00 2001
-From: Carlos Rafael Giani <dv@pseudoterminal.org>
-Date: Mon, 19 Oct 2015 15:26:24 +0200
-Subject: [PATCH] Fix opencore include paths
-
-Upstream-Status: Inappropriate [no upstream - GStreamer 0.10 is no longer being maintained]
-
-Signed-off-by: Carlos Rafael Giani <dv@pseudoterminal.org>
----
- ext/amrnb/amrnbdec.h | 2 +-
- ext/amrnb/amrnbenc.h | 2 +-
- ext/amrwbdec/amrwbdec.h | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/ext/amrnb/amrnbdec.h b/ext/amrnb/amrnbdec.h
-index 1e81839..01b7154 100644
---- a/ext/amrnb/amrnbdec.h
-+++ b/ext/amrnb/amrnbdec.h
-@@ -22,7 +22,7 @@
-
- #include <gst/gst.h>
- #include <gst/audio/gstaudiodecoder.h>
--#include <interf_dec.h>
-+#include <opencore-amrnb/interf_dec.h>
-
- G_BEGIN_DECLS
-
-diff --git a/ext/amrnb/amrnbenc.h b/ext/amrnb/amrnbenc.h
-index 7f673ac..5be39b5 100644
---- a/ext/amrnb/amrnbenc.h
-+++ b/ext/amrnb/amrnbenc.h
-@@ -21,7 +21,7 @@
- #define __GST_AMRNBENC_H__
-
- #include <gst/gst.h>
--#include <interf_enc.h>
-+#include <opencore-amrnb/interf_enc.h>
- #include <gst/audio/gstaudioencoder.h>
-
- G_BEGIN_DECLS
-diff --git a/ext/amrwbdec/amrwbdec.h b/ext/amrwbdec/amrwbdec.h
-index c3528fc..f27c6d2 100644
---- a/ext/amrwbdec/amrwbdec.h
-+++ b/ext/amrwbdec/amrwbdec.h
-@@ -22,8 +22,8 @@
-
- #include <gst/gst.h>
- #include <gst/audio/gstaudiodecoder.h>
--#include <dec_if.h>
--#include <if_rom.h>
-+#include <opencore-amrwb/dec_if.h>
-+#include <opencore-amrwb/if_rom.h>
-
- G_BEGIN_DECLS
-
---
-1.9.1
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb
deleted file mode 100644
index 199b47d762..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins-ugly_0.10.19.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-require gst-plugins.inc
-
-LICENSE = "GPLv2+ & LGPLv2.1+ & LGPLv2+"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
- file://gst/synaesthesia/synaescope.h;beginline=1;endline=20;md5=99f301df7b80490c6ff8305fcc712838 \
- file://tests/check/elements/xingmux.c;beginline=1;endline=21;md5=4c771b8af188724855cb99cadd390068 \
- file://gst/mpegstream/gstmpegparse.h;beginline=1;endline=18;md5=ff65467b0c53cdfa98d0684c1bc240a9"
-
-DEPENDS += "gst-plugins-base libid3tag libmad mpeg2dec liba52 lame"
-PR = "r3"
-
-inherit gettext
-
-EXTRA_OECONF += "--with-plugins=a52dec,lame,id3tag,mad,mpeg2dec,mpegstream,mpegaudioparse,asfdemux,realmedia \
- --disable-orc"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264"
-PACKAGECONFIG[cdio] = "--enable-cdio,--disable-cdio,libcdio"
-PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread,libdvdread"
-PACKAGECONFIG[amrnb] = "--enable-amrnb,--disable-amrnb,opencore-amr"
-PACKAGECONFIG[amrwb] = "--enable-amrwb,--disable-amrwb,opencore-amr"
-
-do_configure_prepend() {
- # This m4 file contains nastiness which conflicts with libtool 2.2.2
- rm ${S}/m4/lib-link.m4 || true
-}
-
-SRC_URI[md5sum] = "1d81c593e22a6cdf0f2b4f57eae93df2"
-SRC_URI[sha256sum] = "1ca90059275c0f5dca71d4d1601a8f429b7852baed0723e820703b977e2c8df0"
-SRC_URI += "file://0001-cdio-compensate-for-libcdio-s-recent-cd-text-api-cha.patch \
- file://0002-Fix-opencore-include-paths.patch"
-
-FILES_${PN}-amrnb += "${datadir}/gstreamer-0.10/presets/GstAmrnbEnc.prs"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc
deleted file mode 100644
index 6e163a8c49..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-plugins.inc
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Plugins for the GStreamer multimedia framework"
-HOMEPAGE = "http://gstreamer.freedesktop.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
-SECTION = "multimedia"
-DEPENDS = "gstreamer"
-
-# gobject-introspection to get --disable-introspection into UNKNOWN_CONFIGURE_WHITELIST
-inherit autotools pkgconfig gobject-introspection
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2"
-
-GSTREAMER_DEBUG ?= "--disable-debug"
-EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples --disable-introspection"
-
-acpaths = "-I ${S}/common/m4 -I ${S}/m4"
-
-LIBV = "0.10"
-require recipes-multimedia/gstreamer/gst-plugins-package.inc
-
-PACKAGES_DYNAMIC += "^${PN}-.*"
-
-# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
-# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
-# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
-oe_runconf_prepend() {
- if [ -e ${S}/po/Makefile.in.in ]; then
- sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
- fi
-}
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch
deleted file mode 100644
index 69b21dd874..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp/0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-index gst-rtsp_0.10.8/bindings/python/Makefile.am
-Index: gst-rtsp-0.10.8/bindings/python/Makefile.am
-===================================================================
---- gst-rtsp-0.10.8.orig/bindings/python/Makefile.am
-+++ gst-rtsp-0.10.8/bindings/python/Makefile.am
-@@ -14,7 +14,7 @@ defs_DATA = $(DEFS)
- defsdir = $(pkgdatadir)/$(GST_MAJORMINOR)/defs
- OVERRIDES = rtspserver.override
-
--INCLUDES = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES)
-+AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir) $(PYTHON_INCLUDES)
-
- rtspserver_la_CFLAGS = -I$(top_srcdir)/src \
- $(PYGOBJECT_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
-Index: gst-rtsp-0.10.8/examples/Makefile.am
-===================================================================
---- gst-rtsp-0.10.8.orig/examples/Makefile.am
-+++ gst-rtsp-0.10.8/examples/Makefile.am
-@@ -1,6 +1,6 @@
- noinst_PROGRAMS = test-video test-ogg test-mp4 test-readme test-launch test-sdp test-uri test-auth
-
--INCLUDES = -I$(top_srcdir) -I$(srcdir)
-+AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir)
-
- AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
- AM_LDFLAGS = \
-Index: gst-rtsp-0.10.8/tests/Makefile.am
-===================================================================
---- gst-rtsp-0.10.8.orig/tests/Makefile.am
-+++ gst-rtsp-0.10.8/tests/Makefile.am
-@@ -1,6 +1,6 @@
- noinst_PROGRAMS = test-cleanup
-
--INCLUDES = -I$(top_srcdir) -I$(srcdir)
-+AM_CPPFLAGS = -I$(top_srcdir) -I$(srcdir)
-
- AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS)
- AM_LDFLAGS = \
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb
deleted file mode 100644
index b78bcaf5ac..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gst-rtsp_0.10.8.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "GStreamer RTSP server"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605"
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://0001-change-deprecated-INCLUDES-to-AM_CPPFLAGS-for-automa.patch"
-SRC_URI[md5sum] = "b511af07000595f63c3a705946221643"
-SRC_URI[sha256sum] = "9915887cf8515bda87462c69738646afb715b597613edc7340477ccab63a6617"
-
-DEPENDS = "gst-plugins-base gstreamer"
-
-EXTRA_OECONF = "--disable-introspection"
-
-# Configure always checks for Python so inherit pythonnative. Better solution
-# would be to disable the checks entirely.
-inherit autotools pythonnative gettext
-
-FILES_${PN}-dev += "${datadir}/vala/vapi/"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch
deleted file mode 100644
index d07749682b..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From ed7f4802222234eef192aa3f74bc92268f338f97 Mon Sep 17 00:00:00 2001
-From: Sebastian Droege <sebastian.droege@collabora.co.uk>
-Date: Tue, 6 Mar 2012 12:28:02 +0100
-Subject: [PATCH] baseparse: Fix 'self-comparison always evaluates to true'
-
-This was really a bug.
-
-Commit is ed7f4802222234eef192aa3f74bc92268f338f97 in 0.10 branch
-
-Upstream Status: Backported
-
-Signed-off-by: Sebastian Droege <sebastian.droege@collabora.co.uk>
----
- libs/gst/base/gstbaseparse.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
-index 851ec1d..108ee89 100644
---- a/libs/gst/base/gstbaseparse.c
-+++ b/libs/gst/base/gstbaseparse.c
-@@ -3899,7 +3899,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event)
- seek event (in bytes) to upstream. Segment / flush handling happens
- in corresponding src event handlers */
- GST_DEBUG_OBJECT (parse, "seek in PUSH mode");
-- if (seekstop >= 0 && seekpos <= seekpos)
-+ if (seekstop >= 0 && seekstop <= seekpos)
- seekstop = seekpos;
- new_event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
- GST_SEEK_TYPE_SET, seekpos, stop_type, seekstop);
---
-1.7.9.5
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch
deleted file mode 100644
index dc2d606122..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0001-parse-make-grammar.y-work-with-Bison-3.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001
-From: Kerrick Staley <kerrick@kerrickstaley.com>
-Date: Tue, 20 Aug 2013 23:59:29 -0700
-Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3
-
-YYLEX_PARAM is no longer supported in Bison 3.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=706462
----
- gst/parse/grammar.y | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
-index 24fc87b..7f9dd16 100644
---- a/gst/parse/grammar.y
-+++ b/gst/parse/grammar.y
-@@ -26,7 +26,6 @@
- */
-
- #define YYERROR_VERBOSE 1
--#define YYLEX_PARAM scanner
-
- #define YYENABLE_NLS 0
-
-@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
- %right '.'
- %left '!' '='
-
-+%lex-param { void *scanner }
- %parse-param { void *scanner }
- %parse-param { graph_t *graph }
- %pure-parser
---
-2.7.2
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch
deleted file mode 100644
index 8db3966313..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 4b145ceb22bbce7ba6e209c6ab61f2d5867e69f9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 1 Nov 2016 19:02:30 +0100
-Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-we are definitely not one of those poor souls mentioned
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- common/m4/gst-glib2.m4 | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
-index b01f02f..4569ae5 100644
---- a/common/m4/gst-glib2.m4
-+++ b/common/m4/gst-glib2.m4
-@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
- fi
-
- dnl for the poor souls who for example have glib in /usr/local
-- AS_SCRUB_INCLUDE(GLIB_CFLAGS)
-
- AC_SUBST(GLIB_EXTRA_CFLAGS)
- ])
---
-2.5.5
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch
deleted file mode 100644
index 5d8bb13403..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/check_fix.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-# gstreamer: Fix a problem with configure if check has already been built
-# Richard Purdie <rpurdie@linux.intel.com>
-
-Upstream-Status: Inappropriate [configuration]
-
-diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac
---- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800
-+++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800
-@@ -543,8 +543,10 @@
- *) BUILD_CHECK=yes ;;
- esac
- ])
-+
- dnl bit of a misnomer, but keep the conditional named like this so we don't
- dnl have to change too much elsewhere
-+HAVE_CHECK=no
- AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes")
-
- dnl configure the desired buffer alignment
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch
deleted file mode 100644
index 30be85f59d..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gst-inspect-check-error.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-# Fix crash with gst-inspect
-# Chris Lord <chris@openedhand.com>
-
-Upstream-Status: Pending
-
---- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100
-+++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100
-@@ -1123,7 +1123,7 @@
- g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
- g_option_context_add_group (ctx, gst_init_get_option_group ());
- if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
-- g_print ("Error initializing: %s\n", err->message);
-+ g_print ("Error initializing: %s\n", err ? err->message : "(null)");
- exit (1);
- }
- g_option_context_free (ctx);
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c
deleted file mode 100644
index c1f3e71af6..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.c
+++ /dev/null
@@ -1,487 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
- * 2000 Wim Taymans <wtay@chello.be>
- * 2005 David A. Schleef <ds@schleef.org>
- *
- * gstregistryxml.c: GstRegistry object, support routines
- *
- * This library is free software; you can redistribute it and/or
- * modify it ulnder the terms of the GNU Library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library 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.
- */
-
-
-#include <gst/gstregistrybinary.h>
-
-/*
-** Simple handy function to write a memory location to the registry cache file
-*/
-inline static gboolean
-gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size)
-{
- if (write(registry->cache_file, mem, size) != size)
- {
- GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n",
- mem, size, strerror(errno));
- return FALSE;
- }
- return TRUE;
-}
-
-/*
-** Save features GstBinary style
-*/
-static gboolean
-gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name)
-{
- GstBinaryChunck *chk;
-
- if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
- return FALSE;
-
- chk->data = dest;
- chk->size = sizeof (GstBinaryPluginFeature);
-
- *list = g_list_append(*list, chk);
-
- dest->rank = orig->rank;
- if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) ||
- !strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN))
- {
- GST_ERROR("Failed to write binary registry feature");
- goto fail;
- }
-
- if (GST_IS_ELEMENT_FACTORY(orig))
- {
- GstElementFactory *factory = GST_ELEMENT_FACTORY(orig);
-
- if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) ||
- !strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) ||
- !strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) ||
- !strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN))
- {
- GST_ERROR("Failed to write binary registry feature");
- goto fail;
- }
- }
-
- dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0;
- return TRUE;
-
- fail:
- free(chk);
- return FALSE;
-}
-
-
-/*
-** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version
-*/
-inline static gboolean
-gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m)
-{
- if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) ||
- !strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
- {
- GST_ERROR("Failed to write magic to the registry magic structure");
- return FALSE;
- }
- return TRUE;
-}
-
-/*
-** Check GstBinaryRegistryMagic validity.
-** Return a pointer pointing right after the magic structure
-*/
-static gchar *
-gst_registry_binary_check_magic(gchar *in)
-{
- GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in;
-
- if (m == NULL || m->magic == NULL || m->version == NULL)
- {
- GST_ERROR("Binary registry magic structure is broken");
- return NULL;
- }
- if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0)
- {
- GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x",
- GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff,
- GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff,
- m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff);
- return NULL;
- }
- if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
- {
- GST_ERROR("Binary registry magic version is different : %s != %s",
- GST_MAJORMINOR, m->version);
- return NULL;
- }
- return (in + sizeof (GstBinaryRegistryMagic));
-}
-
-/*
-** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the
-** registry file.
-*/
-static gboolean
-gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin)
-{
- GstBinaryPluginElement *e;
- GstBinaryChunck *chk;
- GList *walk;
-
- if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL ||
- (chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
- return FALSE;
-
- chk->data = e;
- chk->size = sizeof (GstBinaryPluginElement);
- *list = g_list_append(*list, chk);
-
- if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) ||
- !strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) ||
- !strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) ||
- !strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) ||
- !strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) ||
- !strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) ||
- !strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) ||
- !strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN))
- {
- GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement");
- goto fail;
- }
-
- e->size = plugin->file_size;
- e->m32p = plugin->file_mtime;
-
- GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name);
-
- for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++)
- {
- GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data);
- GstBinaryPluginFeature *newfeat;
- const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat));
-
- if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL)
- goto fail;
-
- if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name))
- {
- GST_ERROR("Can't fill plugin feature, aborting.");
- goto fail;
- }
- }
-
- GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name);
- return TRUE;
-
- fail:
- free(chk);
- free(e);
- return FALSE;
-}
-
-/*
-** Write the cache to file. Part of the code was taken from gstregistryxml.c
-*/
-gboolean
-gst_registry_binary_write_cache(GstRegistry *registry, const char *location)
-{
- GList *walk;
- char *tmp_location;
- GstBinaryRegistryMagic *magic;
- GstBinaryChunck *magic_chunck;
- GList *to_write = NULL;
-
- GST_INFO("Writing binary registry cache");
-
- g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
- tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL);
- registry->cache_file = g_mkstemp (tmp_location);
- if (registry->cache_file == -1)
- {
- char *dir;
-
- /* oops, I bet the directory doesn't exist */
- dir = g_path_get_dirname (location);
- g_mkdir_with_parents (dir, 0777);
- g_free (dir);
-
- registry->cache_file = g_mkstemp (tmp_location);
- }
-
- if (registry->cache_file == -1)
- goto fail;
-
- if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL ||
- !gst_registry_binary_initialize_magic(magic))
- goto fail;
-
- if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL)
- goto fail;
-
- magic_chunck->data = magic;
- magic_chunck->size = sizeof (GstBinaryRegistryMagic);
- to_write = g_list_append(to_write, magic_chunck);
-
- /* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */
- for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk))
- {
- GstPlugin *plugin = GST_PLUGIN(walk->data);
-
- if (!plugin->filename)
- continue;
-
- if (plugin->flags & GST_PLUGIN_FLAG_CACHED)
- {
- int ret;
- struct stat statbuf;
-
- ret = g_stat (plugin->filename, &statbuf);
- if ((ret = g_stat (plugin->filename, &statbuf)) < 0 ||
- plugin->file_mtime != statbuf.st_mtime ||
- plugin->file_size != statbuf.st_size)
- continue;
- }
-
- if (!gst_registry_binary_save_plugin(&to_write, registry, plugin))
- {
- GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename);
- continue; /* Try anyway */
- }
- }
-
- for (walk = g_list_first(to_write); walk; walk = g_list_next(walk))
- {
- GstBinaryChunck *cur = walk->data;
-
- if (!gst_registry_binary_write(registry, cur->data, cur->size))
- {
- free(cur->data);
- free(cur);
- g_list_free(to_write);
- goto fail;
- }
- free(cur->data);
- free(cur);
- }
- g_list_free(to_write);
-
- if (close(registry->cache_file) < 0)
- {
- GST_DEBUG("Can't close registry file : %s", strerror(errno));
- goto fail;
- }
-
- if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) {
-#ifdef WIN32
- remove (location);
-#endif
- rename (tmp_location, location);
- }
-
- g_free (tmp_location);
- return TRUE;
-
- fail:
- g_free(tmp_location);
- return FALSE;
-}
-
-static GstPluginFeature*
-gst_registry_binary_load_feature(GstBinaryPluginFeature *in)
-{
- GstPluginFeature *feature;
- GType type;
-
- if (!in->typename || !*(in->typename))
- return NULL;
-
- /* GST_INFO("Plugin feature typename : %s", in->typename);*/
-
- if (!(type = g_type_from_name(in->typename)))
- {
- GST_ERROR("Unknown type from typename");
- return NULL;
- }
- feature = g_object_new (type, NULL);
-
- if (!feature) {
- GST_ERROR("Can't create feature from type");
- return NULL;
- }
-
- if (!GST_IS_PLUGIN_FEATURE (feature)) {
- /* don't really know what it is */
- if (GST_IS_OBJECT (feature))
- gst_object_unref (feature);
- else
- g_object_unref (feature);
- return NULL;
- }
-
- feature->name = g_strdup(in->name);
- feature->rank = in->rank;
-
- if (GST_IS_ELEMENT_FACTORY(feature))
- {
- GstElementFactory *factory = GST_ELEMENT_FACTORY(feature);
-
- factory->details.longname = g_strdup(in->longname);
- factory->details.klass = g_strdup(in->class);
- factory->details.description = g_strdup(in->description);
- factory->details.author = g_strdup(in->author);
-
- /* GST_INFO("Element factory : %s", factory->details.longname); */
- }
-
- GST_DEBUG("Added feature %p with name %s", feature, feature->name);
- return feature;
-}
-
-/*
-** Make a new plugin from current GstBinaryPluginElement structure
-** and save it to the GstRegistry. Return an offset to the next
-** GstBinaryPluginElement structure.
-*/
-static unsigned long
-gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in)
-{
- GstBinaryPluginElement *p = (GstBinaryPluginElement *) in;
- GstPlugin *plugin = NULL;
- GList *plugin_features = NULL;
- GstBinaryPluginFeature *feat;
- unsigned int i;
- unsigned long offset;
-
- plugin = g_object_new (GST_TYPE_PLUGIN, NULL);
-
- plugin->flags |= GST_PLUGIN_FLAG_CACHED;
-
- plugin->desc.name = g_strdup(p->name);
- plugin->desc.description= g_strdup(p->description);
- plugin->filename = g_strdup(p->filename);
- plugin->desc.version = g_strdup(p->version);
- plugin->desc.license = g_strdup(p->license);
- plugin->desc.source = g_strdup(p->source);
- plugin->desc.package = g_strdup(p->package);
- plugin->desc.origin = g_strdup(p->origin);
- plugin->file_mtime = p->m32p;
- plugin->file_size = p->size;
- plugin->basename = g_path_get_basename (plugin->filename);
-
- if (plugin->file_mtime < 0 || plugin->file_size < 0)
- {
- GST_ERROR("Plugin time or file size is not valid !");
- g_free(plugin);
- return -1;
- }
-
- if (p->nfeatures < 0)
- {
- GST_ERROR("The number of feature structure is not valid !");
- gst_object_unref(plugin);
- return -1;
- }
-
- for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0;
- i < p->nfeatures; i++, feat++)
- {
- GstPluginFeature *gstfeat;
-
- if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL)
- {
- g_list_free(plugin_features);
- g_free(plugin);
- GST_ERROR("Error while loading binary feature");
- return -1;
- }
- gstfeat->plugin_name = g_strdup(plugin->desc.name);
- plugin_features = g_list_prepend(plugin_features, gstfeat);
- }
-
- GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name);
- GList *g;
-
- gst_registry_add_plugin (registry, plugin);
- for (g = plugin_features; g; g = g_list_next (g))
- gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data));
- /* g_list_free(plugin_features); */
-
- offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature);
- return offset;
-}
-
-
-/*
-** Read the cache and adapt it to fill GstRegistry
-*/
-gboolean
-gst_registry_binary_read_cache(GstRegistry *registry, const char *location)
-{
- GMappedFile *mapped = NULL;
- GTimer *timer = NULL;
- gchar *contents = NULL;
- gdouble seconds;
- unsigned long offset, inc;
- gsize size;
-
- /* make sure these types exist */
- GST_TYPE_ELEMENT_FACTORY;
- GST_TYPE_TYPE_FIND_FACTORY;
- GST_TYPE_INDEX_FACTORY;
-
- timer = g_timer_new ();
-
- if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL ||
- (contents = g_mapped_file_get_contents(mapped)) == NULL)
- {
- GST_ERROR("Can't load file : %s", strerror(errno));
- return FALSE;
- }
- if ((contents = gst_registry_binary_check_magic(contents)) == NULL)
- {
- GST_ERROR("Binary registry type not recognized (invalid magic)");
- g_mapped_file_free(mapped);
- return FALSE;
- }
-
- if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement))
- {
- GST_INFO("No binary plugins structure to read");
- return TRUE; /* This is not really an error */
- }
-
- for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size &&
- (inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0;
- offset += inc)
- ; /* May want in the future to do something here */
- if (inc < 0)
- {
- GST_DEBUG("Problem while reading binary registry");
- return FALSE;
- }
-
- g_timer_stop (timer);
- seconds = g_timer_elapsed (timer, NULL);
- g_timer_destroy (timer);
-
- GST_INFO ("loaded %s in %f seconds", location, seconds);
-
- if (mapped)
- g_mapped_file_free (mapped);
- return TRUE;
-}
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h
deleted file mode 100644
index 2ef24d765d..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer-0.10.36/gstregistrybinary.h
+++ /dev/null
@@ -1,194 +0,0 @@
-/* GStreamer
- * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
- * 2000 Wim Taymans <wim.taymans@chello.be>
- *
- * gstregistry.h: Header for registry handling
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library 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
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library 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.
- */
-
-/* SUGGESTIONS AND TODO :
-** ====================
-** - Use a compressed registry, but would induce performance loss
-** - Encrypt the registry, for security purpose, but would also reduce performances
-** - Also have a non-mmap based cache reading (work with file descriptors)
-*/
-
-#ifndef __GST_REGISTRYBINARY_H__
-#define __GST_REGISTRYBINARY_H__
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#include <stdio.h>
-#include <errno.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <dirent.h>
-#include <fcntl.h>
-#include <sys/mman.h>
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#include <gst/gst_private.h>
-#include <gst/gstelement.h>
-#include <gst/gsttypefind.h>
-#include <gst/gsttypefindfactory.h>
-#include <gst/gsturi.h>
-#include <gst/gstinfo.h>
-#include <gst/gstenumtypes.h>
-#include <gst/gstregistry.h>
-#include <gst/gstpadtemplate.h>
-
-#include "glib-compat-private.h"
-#include <glib/gstdio.h>
-
-/* A magic, written at the beginning of the file */
-#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d"
-#define GST_MAGIC_BINARY_REGISTRY_LEN (4)
-#define GST_MAGIC_BINARY_VERSION_LEN (64)
-
-typedef struct _GstBinaryRegistryMagic
-{
- char magic[GST_MAGIC_BINARY_REGISTRY_LEN];
- char version[GST_MAGIC_BINARY_VERSION_LEN];
-} GstBinaryRegistryMagic;
-
-
-/* Used to store pointers to write */
-typedef struct _GstBinaryChunck
-{
- void *data;
- unsigned int size;
-} GstBinaryChunck;
-
-
-/* A structure containing (staticely) every information needed for a plugin
-**
-** Notes :
-** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have
-** right after the structure itself.
-*/
-
-/* Various lenght defines for our GstBinaryPluginElement structure
-** Note : We could eventually use smaller size
-*/
-#define GST_BINARY_REGISTRY_NAME_LEN (256)
-#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024)
-#define GST_BINARY_REGISTRY_VERSION_LEN (64)
-#define GST_BINARY_REGISTRY_LICENSE_LEN (256)
-#define GST_BINARY_REGISTRY_SOURCE_LEN (256)
-#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024)
-#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024)
-
-typedef struct _GstBinaryPluginElement
-{
- char name[GST_BINARY_REGISTRY_NAME_LEN];
- char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN];
- char filename[_POSIX_PATH_MAX];
- char version[GST_BINARY_REGISTRY_VERSION_LEN];
- char license[GST_BINARY_REGISTRY_LICENSE_LEN];
- char source[GST_BINARY_REGISTRY_SOURCE_LEN];
- char package[GST_BINARY_REGISTRY_PACKAGE_LEN];
- char origin[GST_BINARY_REGISTRY_ORIGIN_LEN];
- unsigned long size;
- unsigned long m32p;
- unsigned int nfeatures;
-} GstBinaryPluginElement;
-
-
-/* A structure containing the plugin features
-**
-** Note :
-** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself.
-** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself.
-** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself.
-*/
-#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256)
-#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256)
-#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024)
-#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512)
-#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024)
-#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256)
-
-typedef struct _GstBinaryPluginFeature
-{
- char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN];
- char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN];
- unsigned long rank;
- char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN];
- char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN];
- char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN];
- char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN];
- unsigned int npadtemplates;
- unsigned int ninterfaces;
- unsigned int nuritypes;
-} GstBinaryPluginFeature;
-
-
-/*
-** A structure containing the static pad templates of a plugin feature
-*/
-#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256)
-#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024)
-
-typedef struct _GstBinaryPadTemplate
-{
- char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN];
- char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN];
- int direction; /* Either 0:"sink" or 1:"src" */
- GstPadPresence presence;
-} GstBinaryPadTemplate;
-
-/*
-** A very simple structure defining the plugin feature interface string
-*/
-#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512)
-typedef struct _GstBinaryInterface
-{
- char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN];
- unsigned long size;
-} GstBinaryInterface;
-
-/* Uri Type */
-typedef struct _GstBinaryUriType
-{
- GstURIType type;
- unsigned long nuriprotocols;
-} GstBinaryUriType;
-
-/*
-** Function prototypes
-*/
-
-/* Local prototypes */
-inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size);
-inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m);
-static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *);
-static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin);
-static gchar *gst_registry_binary_check_magic(gchar *in);
-static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *);
-static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in);
-
-/* Exportable */
-gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location);
-gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location);
-
-#endif /* !__GST_REGISTRYBINARY_H__ */
-
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb b/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
deleted file mode 100644
index 5f97a20fd6..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-0.10/gstreamer_0.10.36.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "GStreamer multimedia framework"
-DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
-It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
-HOMEPAGE = "http://gstreamer.freedesktop.org/"
-BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
-SECTION = "multimedia"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
- file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
-DEPENDS = "glib-2.0 libxml2 bison-native flex-native glib-2.0-native"
-
-PR = "r2"
-
-SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \
- file://check_fix.patch \
- file://gst-inspect-check-error.patch \
- file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \
- file://0001-parse-make-grammar.y-work-with-Bison-3.patch \
- file://0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \
-"
-
-SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b"
-SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30"
-
-inherit autotools pkgconfig gettext
-
-GSTREAMER_DEBUG ?= "--disable-debug"
-EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \
- --disable-dependency-tracking --disable-check \
- --disable-examples --disable-tests \
- --disable-valgrind ${GSTREAMER_DEBUG} \
- --disable-introspection \
- "
-
-CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
-
-# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
-# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
-# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
-oe_runconf_prepend() {
- sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
-}
-
-#do_compile_prepend () {
-# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/
-#}
-
-RRECOMMENDS_${PN}_qemux86 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-RRECOMMENDS_${PN}_qemux86-64 += "kernel-module-snd-ens1370 kernel-module-snd-rawmidi"
-
-FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so"
-FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
-FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch
new file mode 100644
index 0000000000..1d85e51d6b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch
@@ -0,0 +1,33 @@
+From d84807ec6d6f8511e4ec939a745d4d7bb35c3cfb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 4 Feb 2022 09:22:48 -0800
+Subject: [PATCH] tracers: Fix buffer overflow
+
+Fixes
+| ../../../git/plugins/tracers/gstcpuusagecompute.c:106:9: error: 'fscanf' may overflow; destination buffer in argument 3 has size 8, but the corresponding specifier may require size 9 [-Werror,-Wfortify-sour
+ce]
+| cpu_name, &user[0], &nice[0], &system[0], &idle[0], &iowait, &irq,
+| ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/tracers/gstcpuusagecompute.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/tracers/gstcpuusagecompute.c b/plugins/tracers/gstcpuusagecompute.c
+index 39255fb..00bae66 100644
+--- a/plugins/tracers/gstcpuusagecompute.c
++++ b/plugins/tracers/gstcpuusagecompute.c
+@@ -69,7 +69,7 @@ gst_cpu_usage_compute (GstCPUUsage * cpu_usage)
+ gint *idle;
+ gint *idle_aux;
+
+- gchar cpu_name[CPU_NAME_MAX_SIZE];
++ gchar cpu_name[CPU_NAME_MAX_SIZE+1];
+ gint iowait; /* Time waiting for I/O to complete */
+ gint irq; /* Time servicing interrupts */
+ gint softirq; /* Time servicing softirqs */
+--
+2.35.1
+
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb
deleted file mode 100644
index 5409f32045..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb
+++ /dev/null
@@ -1,38 +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 = "GPLv2+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97"
-
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad "
-
-SRCBRANCH ?= "master"
-
-SRCREV_base = "a60b3996fe3376d42334fc89014e9d6f6af62899"
-SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0"
-
-SRC_URI = " \
- git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \
- git://anongit.freedesktop.org/git/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \
- "
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG_CONFARGS = " \
- --disable-graphviz \
- --enable-gtk-doc=no \
-"
-
-FILES_${PN} += "\
- ${libdir}/gstreamer-1.0/libgstsharktracers.so \
- ${libdir}/gstreamer-1.0/libgstsharktracers.la \
-"
-
-inherit autotools gettext
-
-do_configure() {
- ${S}/autogen.sh --noconfigure
- oe_runconf
-}
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
new file mode 100644
index 0000000000..4e50897de6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb
@@ -0,0 +1,36 @@
+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.inc b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc
deleted file mode 100644
index 10ee5bcb2c..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "Gstreamer Daemon 1.0"
-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 = "GPLv2+"
-
-DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon"
-
-SRCBRANCH ?= "master"
-SRCREV = "097a086a8606dcb368c7d38c7ec4fefc2497401b"
-SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \
- file://0001-gstd-yocto-compatibility.patch"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG_CONFARGS = " \
- --disable-gtk-doc \
-"
-
-inherit autotools pkgconfig gettext
-
-do_configure() {
-${S}/autogen.sh
-oe_runconf
-}
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
index ddc1831936..64fd578a96 100644
--- 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
@@ -3,61 +3,20 @@ From: Carlos <carlos.rodriguez@ridgerun.com>
Date: Fri, 15 Dec 2017 10:14:05 -0600
Subject: [PATCH] gstd:yocto compatibility
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- autogen.sh | 8 +++++++-
- docs/reference/gstd/Makefile.am | 2 +-
gstd/Makefile.am | 2 +-
3 files changed, 9 insertions(+), 3 deletions(-)
-diff --git a/autogen.sh b/autogen.sh
-index 66dbd42..793ee2f 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -21,7 +21,11 @@
- # ACLOCAL, AUTOPOINT and/or LIBTOOLIZE to the right versions, or leave them
- # unset and get the defaults
-
--gtkdocize || exit 1
-+test -n "$srcdir" || srcdir=`dirname "$0"`
-+test -n "$srcdir" || srcdir=.
-+
-+olddir=`pwd`
-+cd "$srcdir"
-
- autoreconf --verbose --force --install || {
- echo 'autogen.sh failed';
-@@ -31,3 +35,5 @@ autoreconf --verbose --force --install || {
- echo
- echo "Now run './configure' with your system settings followed by 'make' to compile this module."
- echo
-+
-+cd "$olddir"
-diff --git a/docs/reference/gstd/Makefile.am b/docs/reference/gstd/Makefile.am
-index f860fa1..153a13b 100644
---- a/docs/reference/gstd/Makefile.am
-+++ b/docs/reference/gstd/Makefile.am
-@@ -66,7 +66,7 @@ GTKDOC_LIBS=$(top_builddir)/gstd/libgstd-core.la
-
-
- # This includes the standard gtk-doc make rules, copied by gtkdocize.
--include $(top_srcdir)/docs/gtk-doc.make
-+# include $(top_srcdir)/docs/gtk-doc.make
-
- # Comment this out if you want 'make check' to test you doc status
- # and run some sanity checks
-diff --git a/gstd/Makefile.am b/gstd/Makefile.am
-index 13c551d..11fe202 100644
--- a/gstd/Makefile.am
+++ b/gstd/Makefile.am
-@@ -49,7 +49,7 @@ bin_PROGRAMS = gstd
+@@ -74,7 +74,7 @@ gstd_CFLAGS = $(GST_CFLAGS) \
+ -DGSTD_LOG_STATE_DIR=\"$(gstdlogstatedir)\" \
+ -DGSTD_RUN_STATE_DIR=\"$(gstdrunstatedir)\"
- gstd_SOURCES = gstd.c
- gstd_CFLAGS = $(GST_CFLAGS) $(GIO_CFLAGS) $(GJSON_CFLAGS)
--gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS) -Wl,-rpath -Wl,$(libdir)
-+gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS)
+-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
---
-1.9.1
-
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb
deleted file mode 100644
index 94f6b575b9..0000000000
--- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require gstd.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
new file mode 100644
index 0000000000..38fafe82e4
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb
@@ -0,0 +1,35 @@
+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"
+
+DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon 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 \
+ "
+S = "${WORKDIR}/git"
+
+# Remove the +really when upstream version is > 1.0
+PV = "1.0+really0.8.0"
+
+inherit autotools pkgconfig gettext gtk-doc
+
+do_install:append() {
+ rmdir ${D}${localstatedir}/run/${BPN} ${D}${localstatedir}/run \
+ ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
+ 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 -" \
+ >> ${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
+}
diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb
new file mode 100644
index 0000000000..249f989a4b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb
@@ -0,0 +1,7 @@
+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.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb
new file mode 100644
index 0000000000..9f2fda9fef
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb
@@ -0,0 +1,3 @@
+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
new file mode 100644
index 0000000000..bc1c52ad48
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb
@@ -0,0 +1,19 @@
+# Copyright (C) 2020 Madhavan Krishnan <madhavan.krishnan@linaro.org>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "libcamera image"
+LICENSE = "MIT"
+
+require meta-multimedia-image.bb
+
+IMAGE_INSTALL += " \
+ kernel-modules \
+ xkeyboard-config \
+"
+
+IMAGE_INSTALL:append = "\
+ libcamera \
+ gstreamer1.0-plugins-good \
+ gstreamer1.0-plugins-base \
+"
+
diff --git a/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb b/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb
deleted file mode 100644
index 7836bae691..0000000000
--- a/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit nativesdk
-include projucer.inc
-BBCLASSEXTEND = "nativesdk"
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb b/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb
deleted file mode 100644
index fb54fb9e98..0000000000
--- a/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit native
-include projucer.inc
-BBCLASSEXTEND = "native"
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer.inc b/meta-multimedia/recipes-multimedia/juce/projucer.inc
index 63ed9e90e0..feb3564633 100644
--- a/meta-multimedia/recipes-multimedia/juce/projucer.inc
+++ b/meta-multimedia/recipes-multimedia/juce/projucer.inc
@@ -3,24 +3,41 @@ DESCRIPTION = "Projucer is used to build and generate support files and build in
JUCE supported platforms, including Linux and Embedded Linux."
SECTION = "utils"
HOMEPAGE = "http://juce.com/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://README.md;md5=65c50b4ff3522b99436da100536ccd1c"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eff9da77cdb81a803f8cbca6c16801d8"
-inherit pkgconfig
+LICENSE_FLAGS = "commercial"
-DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl"
+inherit pkgconfig features_check
-SRCREV = "4f41f28b47d01b939559123d145b4e5860528bb7"
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl bzip2 libpng harfbuzz glib-2.0 libpcre"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+SRCREV = "2f980209cc4091a4490bb1bafc5d530f16834e58"
BRANCH = "master"
-SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH}"
+SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH} \
+"
S = "${WORKDIR}/git"
-PV = "5.0.1"
+PV = "6.1.6"
JUCE_PROJUCER_BUILD_PATH = "${B}/extras/Projucer/Builds"
JUCE_PROJUCER_MAKEFILE_PATH = "${JUCE_PROJUCER_BUILD_PATH}/LinuxMakefile"
JUCE_PROJUCER = "${JUCE_PROJUCER_MAKEFILE_PATH}/build/Projucer"
+# export dummy TARGET_ARCH that doesn't do much,
+# but disables "-march=native" optimization which does
+# not work on cross builds
+EXTRA_OEMAKE = "V=1 JUCE_ARCH_LABEL=${TARGET_ARCH} TARGET_ARCH='-g'"
+
+LDFLAGS:append:mipsarcho32 = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:riscv64 = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+LDFLAGS:append:armv5 = " -latomic"
+
do_configure() {
cd ${JUCE_PROJUCER_MAKEFILE_PATH}
CONFIG=Release oe_runmake clean
@@ -35,3 +52,5 @@ do_install() {
install -d ${D}${bindir}
install -m 0755 ${JUCE_PROJUCER} ${D}${bindir}
}
+# error: '_NL_IDENTIFICATION_LANGUAGE' was not declared in this scope
+COMPATIBLE_HOST:libc-musl = "null"
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer_git.bb b/meta-multimedia/recipes-multimedia/juce/projucer_git.bb
new file mode 100644
index 0000000000..f408f6f1bc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/juce/projucer_git.bb
@@ -0,0 +1,2 @@
+include projucer.inc
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb
index 4c0976e43d..b30f398e87 100644
--- a/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb
+++ b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "Libao is a cross-platform audio library that allows programs to \
SECTION = "multimedia"
HOMEPAGE = "https://www.xiph.org/ao/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI="http://downloads.xiph.org/releases/ao/${BP}.tar.gz"
@@ -16,19 +16,18 @@ inherit autotools
PACKAGES += "${BPN}-ckport"
PACKAGES_DYNAMIC += "^${BPN}-plugin-.*"
-do_install_append () {
+do_install:append () {
find "${D}" -name '*.la' -exec rm -f {} +
}
-python populate_packages_prepend () {
+python populate_packages:prepend () {
rootdir = bb.data.expand('${libdir}/ao/plugins-4', d)
rootdir_dbg = bb.data.expand('${libdir}/ao/plugins-4/.debug', d)
- do_split_packages(d, rootdir, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin')
- do_split_packages(d, rootdir_dbg, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data')
+ do_split_packages(d, rootdir, r'^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin')
+ do_split_packages(d, rootdir_dbg, r'^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data')
}
PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}"
-PACKAGECONFIG[esound] = "--enable-esd,--disable-esd,esound"
PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib"
PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
-FILES_${BPN}-ckport = "${libdir}/ckport"
+FILES:${BPN}-ckport = "${libdir}/ckport"
diff --git a/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb
index f5b0d48c46..02a90c547d 100644
--- a/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb
+++ b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb
@@ -4,9 +4,9 @@ HOMEPAGE = "http://sourceforge.net/projects/libavc1394/"
SECTION = "libs/multimedia"
DEPENDS = "libraw1394"
-DEPENDS_append_libc-musl = " argp-standalone"
+DEPENDS:append:libc-musl = " argp-standalone"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
@@ -15,4 +15,4 @@ SRC_URI[sha256sum] = "7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4
inherit autotools pkgconfig
-LDFLAGS_append_libc-musl = " -largp"
+LDFLAGS:append:libc-musl = " -largp"
diff --git a/meta-multimedia/recipes-multimedia/libavif/libavif_0.11.1.bb b/meta-multimedia/recipes-multimedia/libavif/libavif_0.11.1.bb
new file mode 100644
index 0000000000..f01024e8aa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavif/libavif_0.11.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=main"
+
+S = "${WORKDIR}/git"
+SRCREV = "6ab53189045e7a6fe0bd93d14977b2a4f8efa5e9"
+
+DEPENDS = "dav1d"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DAVIF_CODEC_DAV1D=ON"
diff --git a/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch b/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch
new file mode 100644
index 0000000000..e432ccca42
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch
@@ -0,0 +1,43 @@
+From cdbbe227594665145e9309a9ecb7d90aad070aab Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Wed, 1 Jun 2022 15:53:55 +0000
+Subject: [PATCH] provide 64bit host to network conversion macros
+
+musl dosn't include the macros which convert 64-bit integers
+between host and network endianness from arpa/inet.h as glibc does.
+
+Use this patch to include endian.h in util.h if compiling for musl.
+
+Prevents:
+| [2/8] aarch64-tdx-linux-musl-gcc ... -o libavtp.so.0.2.0.p/src_avtp_stream.c.o -c ../git/src/avtp_stream.c
+| ../git/src/avtp_stream.c: In function 'avtp_stream_pdu_get':
+| ../git/src/avtp_stream.c:116:24: warning: implicit declaration of function 'be64toh' [-Wimplicit-function-declaration]
+| 116 | *val = be64toh(pdu->stream_id);
+| | ^~~~~~~
+| ../git/src/avtp_stream.c: In function 'avtp_stream_pdu_set':
+| ../git/src/avtp_stream.c:199:34: warning: implicit declaration of function 'htobe64' [-Wimplicit-function-declaration]
+| 199 | pdu->stream_id = htobe64(value);
+
+Upstream-Status: Inappropriate [musl specific]
+
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
+ src/util.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/util.h b/src/util.h
+index 8b50625..e6fd2ef 100644
+--- a/src/util.h
++++ b/src/util.h
+@@ -27,6 +27,8 @@
+
+ #pragma once
+
++#include <endian.h>
++
+ #define BIT(n) (1ULL << n)
+
+ #define BITMASK(len) (BIT(len) - 1)
+--
+2.20.1
+
diff --git a/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb b/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb
new file mode 100644
index 0000000000..98f8e5b84d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Implements Audio Video Transport Protocol (AVTP)"
+DESCRIPTION = "Open source implementation of Audio Video Transport Protocol (AVTP) \
+ specified in IEEE 1722-2016 spec."
+HOMEPAGE = "https://github.com/Avnu/libavtp"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7fcb4331e23e45e171cd5693c1ff7d3e"
+
+SRC_URI = "git://github.com/Avnu/libavtp.git;branch=master;protocol=https"
+SRC_URI:append:libc-musl = " file://0001-provide-64bit-host-to-network-conversion-macros.patch"
+SRCREV = "3599a5bf2d18fc3ae89b64f208d8380e6ee3a866"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = "-Dtests=disabled"
diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.1.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.1.0.bb
new file mode 100644
index 0000000000..e770200e28
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.1.0.bb
@@ -0,0 +1,72 @@
+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 = "9e3a83c03bab65b745eea2482be78077b409a2b5"
+
+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
+}
+
+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} += " ${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
new file mode 100755
index 0000000000..952ba603ba
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb
@@ -0,0 +1,21 @@
+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_git.bb b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb
deleted file mode 100755
index 8a9e9a1d7d..0000000000
--- a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Capture and control API for IIDC compliant cameras"
-HOMEPAGE = "http://sourceforge.net/projects/libdc1394/"
-SECTION = "libs"
-LICENSE = "LGPL-2.0"
-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/libgl libglu', '', d)} \
-"
-
-PV = "2.2.5+gitr${SRCPV}"
-
-SRCREV = "5e78f51936fd09db0c0f742c7d2c0e5bdbbeed56"
-
-SRC_URI = "git://git.code.sf.net/p/libdc1394/code;branch=master;protocol=git \
- file://install_examples.patch \
- "
-
-S = "${WORKDIR}/git/${PN}"
-
-inherit autotools-brokensep pkgconfig
-
-EXTRA_OECONF += "--disable-doxygen-doc --disable-examples"
diff --git a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb
deleted file mode 100644
index cd075ffe1b..0000000000
--- a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb
+++ /dev/null
@@ -1,20 +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 = "LGPLv3"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=852f345c1c52c9160f9a7c36bb997546"
-
-SRC_URI = "https://github.com/strukturag/libde265/releases/download/v${PV}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "93520b378df25f3a94e962f2b54872cc"
-SRC_URI[sha256sum] = "eaa0348839c2935dd90647d72c6dd4a043e36361cb3c33d2b04df10fbcebd3cb"
-
-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
new file mode 100644
index 0000000000..d0ecd04f16
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb
@@ -0,0 +1,19 @@
+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/libdvbcsa/libdvbcsa/libdvbcsa.pc b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa/libdvbcsa.pc
new file mode 100644
index 0000000000..57e74668eb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa/libdvbcsa.pc
@@ -0,0 +1,10 @@
+prefix=/usr
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: libdvbcsa
+Description: is a free implementation of the DVB Common Scrambling Algorithm - DVB/CSA - with encryption and decryption capabilities.
+Version: 1.1.0
+Requires:
+Libs: -L${libdir} -ldvbcsa
+
diff --git a/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
new file mode 100644
index 0000000000..5de717c281
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Open implementation of the DVB Common Scrambling Algorithm, encrypt and decrypt "
+SECTION = "libs/multimedia"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRCREV = "bc6c0b164a87ce05e9925785cc6fb3f54c02b026"
+
+SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https;branch=master \
+ file://libdvbcsa.pc \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools lib_package pkgconfig
+
+do_install:append() {
+ install -D -m 0644 ${S}/src/dvbcsa/dvbcsa.h ${D}${includedir}/dvbcsa/dvbcsa.h
+ install -D -m 0644 ${WORKDIR}/libdvbcsa.pc ${D}${libdir}/pkgconfig/libdvbcsa.pc
+}
diff --git a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb
index 48b0111047..5ca146792c 100644
--- a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb
+++ b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb
@@ -2,7 +2,7 @@ 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 = "LGPLv2.1"
+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"
diff --git a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb
deleted file mode 100644
index c2dd96f9d8..0000000000
--- a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "library for DVD navigation features"
-SECTION = "libs/multimedia"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "libdvdread"
-
-SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2"
-SRC_URI[md5sum] = "e9ea4de3bd8f204e61301d407d09f033"
-SRC_URI[sha256sum] = "5097023e3d2b36944c763f1df707ee06b19dc639b2b68fb30113a5f2cbf60b6d"
-
-inherit autotools lib_package binconfig pkgconfig
-
-CONFIGUREOPTS_remove = "--disable-silent-rules"
-
diff --git a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
new file mode 100644
index 0000000000..766ee02ca2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "library for DVD navigation features"
+SECTION = "libs/multimedia"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "libdvdread"
+
+SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2"
+SRC_URI[md5sum] = "46c46cb0294fbd1fcb8a0181818dad15"
+SRC_URI[sha256sum] = "c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48"
+
+inherit autotools lib_package binconfig pkgconfig
+
+CONFIGUREOPTS:remove = "--disable-silent-rules"
+
diff --git a/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb
index e6079bd752..7c90faa45e 100644
--- a/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb
+++ b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb
@@ -6,7 +6,7 @@ SECTION = "libs/multimedia"
DEPENDS = "libraw1394"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=771782cb6245c7fbbe74bc0ec059beff"
SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.xz"
diff --git a/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest b/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest
new file mode 100644
index 0000000000..84981b22c5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libopenmpt/files/run-ptest
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+./libopenmpttest >/dev/null 2>&1
+
+if [ $? -eq 0 ]; then
+ echo "PASS: libopenmpttest"
+else
+ echo "FAIL: libopenmpttest"
+fi
diff --git a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb
new file mode 100644
index 0000000000..47173d71d5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.6.2.bb
@@ -0,0 +1,81 @@
+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/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch b/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch
new file mode 100644
index 0000000000..a6a58688bc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch
@@ -0,0 +1,70 @@
+From 20d14f323c877eca631f0a75efcf19727fb18dd9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 22 Mar 2022 09:17:06 -0700
+Subject: [PATCH] Add support for variable libdir
+
+sometimes libdir is not 'lib' in such cases set LIBDIR_SUFFIX to 32 or
+64 to append to it.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 9 +++++----
+ config.in | 2 ++
+ squish.pc.in | 3 ++-
+ 3 files changed, 9 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 1c01f89..768a4a7 100644
+--- a/Makefile
++++ b/Makefile
+@@ -10,13 +10,13 @@ LIB = libsquish.a
+ 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 squish.h $(INSTALL_DIR)/include
++ install libsquish.a $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)
++ install squish.pc $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)/pkgconfig
+
+ uninstall:
+ $(RM) $(INSTALL_DIR)/include/squish.h
+- $(RM) $(INSTALL_DIR)/lib/libsquish.a
++ $(RM) $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)/libsquish.a
+
+ $(LIB) : $(OBJ)
+ $(AR) cr $@ $?
+@@ -30,4 +30,5 @@ clean :
+
+ squish.pc:
+ sed 's|@PREFIX@|$(PREFIX)|' $@.in > $@
++ sed 's|@LIBDIR_SUFFIX@|$(LIBDIR_SUFFIX)|' $@.in > $@
+
+diff --git a/config.in b/config.in
+index fdca022..a6cf833 100644
+--- a/config.in
++++ b/config.in
+@@ -19,3 +19,5 @@ endif
+
+ # where should we install to
+ INSTALL_DIR ?= @PREFIX@
++# libdir is architecture specific
++LIBDIR_SUFFIX ?= @LIBDIR_SUFFIX@
+diff --git a/squish.pc.in b/squish.pc.in
+index ca04334..73c21bb 100644
+--- a/squish.pc.in
++++ b/squish.pc.in
+@@ -1,6 +1,7 @@
+ prefix=@PREFIX@
++suffix=@LIBDIR_SUFFIX@
+ exec_prefix=${prefix}
+-libdir=${prefix}/lib
++libdir=${prefix}/lib${suffix}
+ sharedlibdir=${libdir}
+ includedir=${prefix}/include
+
+--
+2.35.1
+
diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
index f060f1e80d..fb74881c03 100644
--- a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
+++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb
@@ -6,11 +6,14 @@ LIC_FILES_CHKSUM = "file://alpha.cpp;beginline=3;endline=22;md5=6665e479f71feb92
PV = "1.10+git${SRCPV}"
SRCREV = "52e7d93c5947f72380521116c05d97c528863ba8"
-SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https"
+SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https;branch=master \
+ file://0001-Add-support-for-variable-libdir.patch \
+ "
S = "${WORKDIR}/git"
-EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix}"
+EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix} LIBDIR_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ ${@bb.utils.contains('TUNE_FEATURES', 'altivec', 'USE_ALTIVEC=1', '', d)}"
do_install() {
install -d ${D}${includedir}
diff --git a/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb b/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb
new file mode 100644
index 0000000000..464b1dc23e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/libuvc/libuvc.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 = "ad6c72a4e390367f0d2be81aac00cfc0b6680d74"
+PV = "v0.0.6+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic/0001-Fix-musl-compatibility.patch b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-Fix-musl-compatibility.patch
new file mode 100644
index 0000000000..1352fdde64
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-Fix-musl-compatibility.patch
@@ -0,0 +1,30 @@
+From d7d00ec681dc430192cf2192b3de7b7c30c4753d Mon Sep 17 00:00:00 2001
+From: Bart Ribbers <bribbers@disroot.org>
+Date: Sat, 9 May 2020 11:42:32 +0200
+Subject: [PATCH] Fix musl compatibility
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Backport [https://github.com/MycroftAI/mimic1/commit/5282ff075091c3d1a635fb20f2b8a35a377f4b42.patch]
+---
+ src/hts/hts_engine_API/lib/HTS_misc.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/src/hts/hts_engine_API/lib/HTS_misc.c b/src/hts/hts_engine_API/lib/HTS_misc.c
+index 72306cb..afcaaec 100644
+--- a/src/hts/hts_engine_API/lib/HTS_misc.c
++++ b/src/hts/hts_engine_API/lib/HTS_misc.c
+@@ -247,8 +247,10 @@ size_t HTS_ftell(HTS_File * fp)
+ fgetpos((FILE *) fp->pointer, &pos);
+ #if defined(_WIN32) || defined(__CYGWIN__) || defined(__APPLE__) || defined(__ANDROID__)
+ return (size_t) pos;
+-#else
++#elif defined(__GLIBC__)
+ return (size_t) pos.__pos;
++#else
++ return (size_t) ftell(fp->pointer);
+ #endif /* _WIN32 || __CYGWIN__ || __APPLE__ || __ANDROID__ */
+ } else if (fp->type == HTS_DATA) {
+ HTS_Data *d = (HTS_Data *) fp->pointer;
+--
+2.28.0
+
diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic/0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch
new file mode 100644
index 0000000000..e6bf9eb2be
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch
@@ -0,0 +1,29 @@
+From 7d38a72f9ae14a2416f7a78e28152aa33685aec7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Aug 2020 16:47:27 -0700
+Subject: [PATCH] cmu_indic_lang: Make cst_rx_not_indic as extern declaration
+
+Fixes build with gcc-10 which has -fno-common turned on by default
+
+Upstream-Status: Submitted [https://github.com/MycroftAI/mimic1/pull/211]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lang/cmu_indic_lang/cmu_indic_lang.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lang/cmu_indic_lang/cmu_indic_lang.h b/lang/cmu_indic_lang/cmu_indic_lang.h
+index 75ee46c..83e2afa 100644
+--- a/lang/cmu_indic_lang/cmu_indic_lang.h
++++ b/lang/cmu_indic_lang/cmu_indic_lang.h
+@@ -51,7 +51,7 @@ void cmu_indic_lang_init(cst_voice *v);
+ extern const cst_phoneset cmu_indic_phoneset;
+ extern const cst_cart cmu_indic_phrasing_cart;
+
+-const cst_regex * const cst_rx_not_indic;
++extern const cst_regex * const cst_rx_not_indic;
+
+ #ifdef __cplusplus
+ } /* extern "C" */
+--
+2.28.0
+
diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb b/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
new file mode 100644
index 0000000000..76f51196aa
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "A fast lightweight Text-to-speech engine"
+DESCRIPTION = "Mimic is a fast, lightweight Text-to-speech engine developed by Mycroft A.I. and VocaliD, based on Carnegie Mellon University’s Flite (Festival-Lite) software. Mimic takes in text and reads it out loud to create a high quality voice."
+HOMEPAGE = "https://mimic.mycroft.ai/"
+SECTION = "multimedia"
+
+# "Mimic is available under permissive BSD-like licenses"
+LICENSE = "MIT & \
+ PD & \
+ CMU-Tex & \
+ rateconv & \
+ BSD-2-Clause & \
+ BSD-3-Clause & \
+ flite & \
+ (flite & Sun) & \
+ BellBird & \
+ Apache-2.0 \
+ "
+LIC_FILES_CHKSUM = "file://COPYING;md5=a2c2c7371b58b9cdeae0dc68846fe9f1"
+
+DEPENDS = "curl-native libpcre2"
+
+SRCREV = "adf655da0399530ac1b586590257847eb61be232"
+SRC_URI = "git://github.com/MycroftAI/mimic1.git;branch=master;protocol=https \
+ file://0001-Fix-musl-compatibility.patch \
+ file://0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch \
+ "
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
+
+CPPFLAGS:append = " -Wno-error"
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc b/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc
new file mode 100644
index 0000000000..4959a3c8d7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc
@@ -0,0 +1,43 @@
+DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \
+being fully compliant with DLNA/UPnP-AV clients."
+LICENSE = "GPL-2.0-only|BSD-3-Clause"
+DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis"
+
+# because it depends on libav which has commercial flag
+LICENSE_FLAGS = "commercial"
+
+inherit gettext autotools-brokensep update-rc.d systemd
+
+SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \
+ file://minidlna-daemon.init.d \
+ file://minidlna.service \
+ file://0001-Update-Gettext-version.patch \
+ file://0001-configure-Check-for-clock_gettime-seprately-from-__N.patch \
+ file://0001-configure.ac-drop-non-standard-checks.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+# This remove "--exclude=autopoint" option from autoreconf argument to avoid
+# configure.ac:30: error: required file './ABOUT-NLS' not found
+EXTRA_AUTORECONF = ""
+
+do_install:append(){
+ install -d ${D}${sysconfdir}
+ install -m 0755 minidlna.conf ${D}${sysconfdir}
+
+# Systemd script
+ install -d ${D}${nonarch_base_libdir}/systemd/system
+ install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system
+
+# Sysvinit script
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna
+
+}
+
+SYSTEMD_SERVICE:${PN} = "minidlna.service"
+
+INITSCRIPT_NAME = "minidlna"
+INITSCRIPT_PARAMS = "defaults 90"
+
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch
new file mode 100644
index 0000000000..6100da3581
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch
@@ -0,0 +1,32 @@
+From a4290bf1887f9203288858ca76bdd20b2edf337a Mon Sep 17 00:00:00 2001
+From: Baptiste Durand <baptiste.durand@gmail.com>
+Date: Sun, 9 Sep 2018 20:50:41 +0200
+Subject: [PATCH] Update Gettext version
+
+Upstream-Status: Inappropriate [oe-core specific]
+
+Signed-off-by: Baptiste Durand <baptiste.durand@gmail.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -14,7 +14,7 @@
+ # License along with MiniDLNA; if not, write to the Free Software
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ # USA.
+-AC_INIT(MiniDLNA,1.1.3,,minidlna)
++AC_INIT(MiniDLNA,1.2.1,,minidlna)
+ #LT_INIT
+
+ AC_CANONICAL_TARGET
+@@ -28,7 +28,7 @@ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC
+
+ AM_ICONV
+ AM_GNU_GETTEXT([external])
+-AM_GNU_GETTEXT_VERSION(0.18)
++AM_GNU_GETTEXT_VERSION(0.20)
+
+ # Checks for programs.
+ AC_PROG_AWK
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch
new file mode 100644
index 0000000000..dd29797a66
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch
@@ -0,0 +1,31 @@
+From 93e7e25a10c890b8c8cd06cbfd78175c30999d31 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 9 Mar 2020 09:44:33 -0700
+Subject: [PATCH] configure: Check for clock_gettime seprately from
+ __NR_clock_gettime
+
+This helps prioritize using clock_gettime API from libc over syscall
+since direct use of __NR_clock_gettime is not time64-safe
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ configure.ac | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 3d218ea..aa7dd1c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -127,6 +127,10 @@ case $host in
+ esac
+
+ AC_CHECK_HEADERS(syscall.h sys/syscall.h mach/mach_time.h)
++
++AC_MSG_CHECKING([for clock_gettime])
++AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME], [1], [use clock_gettime])],)
++
+ AC_MSG_CHECKING([for __NR_clock_gettime syscall])
+ AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch
new file mode 100644
index 0000000000..93334b7dab
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch
@@ -0,0 +1,37 @@
+From 83425344b2d7339e8f5b0ad230c51278d330d613 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sat, 22 Jan 2022 11:41:50 +0100
+Subject: [PATCH] configure.ac: drop non-standard checks
+
+Not sure what upstream is trying to do here but it does not work
+with the latest autoconf.
+
+Upstream-Status: Inactive-Upstream
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ configure.ac | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index aa7dd1c..858db52 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -418,7 +418,6 @@ for dir in "" /usr/local $SEARCH_DIR; do
+ AC_CHECK_LIB([id3tag -lz], [id3_file_open], [LIBID3TAG_LIBS="-lid3tag -lz"], [unset ac_cv_lib_id3tag_id3_file_open; LDFLAGS="$LDFLAGS_SAVE"; continue])
+ break
+ done
+-test x"$ac_cv_lib_id3tag__lz___id3_file_open" = x"yes" || AC_MSG_ERROR([Could not find libid3tag])
+ AC_SUBST(LIBID3TAG_LIBS)
+
+ LDFLAGS_SAVE="$LDFLAGS"
+@@ -444,10 +443,6 @@ for dir in "" /usr/local $SEARCH_DIR; do
+ [unset ac_cv_lib_avformat_av_open_input_file; unset ac_cv_lib_avformat_avformat_open_input; LDFLAGS="$LDFLAGS_SAVE"; continue])])
+ break
+ done
+-if test x"$ac_cv_lib_avformat__lavcodec__lavutil__lz___av_open_input_file" != x"yes" &&
+- test x"$ac_cv_lib_avformat__lavcodec__lavutil__lz___avformat_open_input" != x"yes"; then
+- AC_MSG_ERROR([Could not find libavformat - part of ffmpeg])
+-fi
+ AC_SUBST(LIBAVFORMAT_LIBS)
+
+ AC_CHECK_LIB(pthread, pthread_create)
diff --git a/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d b/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
index 9e64a20fdd..9e64a20fdd 100644
--- a/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna-daemon.init.d
diff --git a/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service b/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service
index 656100bb62..656100bb62 100644
--- a/meta-oe/recipes-multimedia/minidlna/minidlna/minidlna.service
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/minidlna.service
diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb b/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb
new file mode 100644
index 0000000000..4238918c97
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb
@@ -0,0 +1,4 @@
+require ${BPN}.inc
+
+SRCREV = "109d63cb11ac207c18a784556834eb054b34b00b"
+LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b"
diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch b/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch
deleted file mode 100644
index db4d6e8c99..0000000000
--- a/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Allow LIB_INSTALL_DIR to be set by the the cmake configure invocation. We dont
-easily have a way of determining something that patches ${LIB_SUFFIX} so we'll
-set LIB_INSTALL_DIR.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
-
-Index: git/CMakeLists.txt
-===================================================================
---- git.orig/CMakeLists.txt
-+++ git/CMakeLists.txt
-@@ -36,7 +36,7 @@ FIND_PACKAGE(LibXml2 REQUIRED)
- SET(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)")
- SET(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Installation prefix for executables and object code libraries" FORCE)
- SET(BIN_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/bin CACHE PATH "Installation prefix for user executables" FORCE)
--SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries" FORCE)
-+SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries")
- SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE)
-
- CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz5.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc)
diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch
new file mode 100644
index 0000000000..1fae37614c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch
@@ -0,0 +1,50 @@
+From 06b2a6aa70616aafab780514d9d26e85bd98d965 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 25 Aug 2022 14:02:16 -0700
+Subject: [PATCH] http/fetch: Pass a non-null buffer to
+ ne_set_request_body_buffer API
+
+Newer versions of neon has added a check for non-null arguments for
+ne_set_request_body_buffer() API and this is triggered but older
+compiler only treats -Wnonnull as warning so all was fine, however gcc
+12.2 has started to throw this warning as error by default and builds
+are breaking
+
+Fixes
+src/HTTPFetch.cc:186:38: warning: null passed to a callee that requires a non-null argument [-Wnonnull]
+ ne_set_request_body_buffer(req,0,0);
+ ~ ^
+Upstream-Status: Submitted [https://github.com/metabrainz/libmusicbrainz/pull/18]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/HTTPFetch.cc | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/HTTPFetch.cc b/src/HTTPFetch.cc
+index baec359..0c0d919 100644
+--- a/src/HTTPFetch.cc
++++ b/src/HTTPFetch.cc
+@@ -182,8 +182,10 @@ int MusicBrainz5::CHTTPFetch::Fetch(const std::string& URL, const std::string& R
+ }
+
+ ne_request *req = ne_request_create(sess, Request.c_str(), URL.c_str());
++ ne_buffer *body = ne_buffer_create();
++
+ if (Request=="PUT")
+- ne_set_request_body_buffer(req,0,0);
++ ne_set_request_body_buffer(req, body->data, ne_buffer_size(body));
+
+ if (Request!="GET")
+ ne_set_request_flag(req, NE_REQFLAG_IDEMPOTENT, 0);
+@@ -195,6 +197,8 @@ int MusicBrainz5::CHTTPFetch::Fetch(const std::string& URL, const std::string& R
+
+ Ret=m_d->m_Data.size();
+
++ ne_buffer_destroy(body);
++
+ ne_request_destroy(req);
+
+ m_d->m_ErrorMessage = ne_get_error(sess);
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
index ca9d94a19c..3b365444e2 100644
--- a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
+++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb
@@ -1,40 +1,27 @@
SUMMARY = "MusicBrainz client library"
DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. The library allows you to access the data held on the MusicBrainz server."
HOMEPAGE = "http://musicbrainz.org"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24"
-DEPENDS = "expat libxml2 libxml2-native neon neon-native"
+DEPENDS = "expat libxml2 libxml2-native neon neon-native libmusicbrainz-native"
PV = "5.1.0+git${SRCPV}"
-SRCREV = "44c05779dd996035758f5ec426766aeedce29cc3"
-SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git \
- file://allow-libdir-override.patch "
+SRCREV = "8be45b12a86bc0e46f2f836c8ac88e1e98d82aee"
+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 \
+ "
S = "${WORKDIR}/git"
inherit cmake pkgconfig
-do_configure_prepend() {
- # The native build really doesn't like being rebuilt, so delete
- # it if it's already present. Also delete all other files not
- # known to Git to fix subsequent invocations of do_configure.
- git clean -dfx -e /.pc/ -e /patches/ .
- mkdir build-native
- cd build-native
- LDFLAGS="${BUILD_LDFLAGS}" \
- cmake -DCMAKE_C_FLAGS=${BUILD_CFLAGS} \
- -DCMAKE_C_COMPILER=${BUILD_CC} \
- -DCMAKE_CXX_FLAGS=${BUILD_CXXFLAGS} \
- -DCMAKE_CXX_COMPILER=${BUILD_CXX} \
- -DCMAKE_EXE_LINKER_FLAGS=${BUILD_LDFLAGS} \
- ..
- make make-c-interface
- cd ..
-}
+EXTRA_OECMAKE:append:class-target = " -DIMPORT_EXECUTABLES=${STAGING_LIBDIR_NATIVE}/cmake/${BPN}/ImportExecutables.cmake"
-EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:PATH=${libdir} \
- -DIMPORT_EXECUTABLES=build-native/ImportExecutables.cmake"
+do_install:append:class-native() {
+ install -Dm 0755 ${B}/src/make-c-interface ${D}${bindir}/make-c-interface
+ install -Dm 0644 ${B}/ImportExecutables.cmake ${D}${libdir}/cmake/${BPN}/ImportExecutables.cmake
+ sed -i -e s:'${B}'/src/::g ${D}${libdir}/cmake/${BPN}/ImportExecutables.cmake
+}
-# out-of-tree building doesn't appear to work for this package.
-B = "${S}"
+BBCLASSEXTEND = "native"
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch
deleted file mode 100644
index 4a2b25cdd9..0000000000
--- a/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- libmpd-11.8.17/src/libmpd-internal.h.orig 2014-09-30 04:08:50.963292427 +0200
-+++ libmpd-11.8.17/src/libmpd-internal.h 2014-09-30 04:08:30.595292223 +0200
-@@ -21,6 +21,7 @@
- #define __MPD_INTERNAL_LIB_
-
- #include "libmpdclient.h"
-+#include "config.h"
- struct _MpdData_real;
-
- typedef struct _MpdData_real {
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch
new file mode 100644
index 0000000000..dd50a71f7d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch
@@ -0,0 +1,27 @@
+From f0f8cc5ac6f1fa9cb5c98cb0b3688f44c64fa8ee Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Wed, 19 Jul 2017 14:22:48 +0200
+Subject: [PATCH 1/3] fix return makes integer from pointer without a cast
+
+Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libmpd-playlist.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libmpd-playlist.c b/src/libmpd-playlist.c
+index c3c30ec..64c64ea 100644
+--- a/src/libmpd-playlist.c
++++ b/src/libmpd-playlist.c
+@@ -780,7 +780,7 @@ int mpd_playlist_load(MpdObj *mi, const char *path)
+ if(mpd_lock_conn(mi))
+ {
+ debug_printf(DEBUG_ERROR,"lock failed\n");
+- return NULL;
++ return MPD_LOCK_FAILED;
+ }
+ mpd_sendLoadCommand(mi->connection,path);
+ mpd_finishCommand(mi->connection);
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch
new file mode 100644
index 0000000000..66d921ed6d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch
@@ -0,0 +1,27 @@
+From fa3b3b3759986171a85230ba8b53764beafdb37f Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Wed, 19 Jul 2017 14:40:00 +0200
+Subject: [PATCH 2/3] fix comparison between pointer and zero character constant
+
+Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libmpd-database.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libmpd-database.c b/src/libmpd-database.c
+index 2480d5e..edafc0a 100644
+--- a/src/libmpd-database.c
++++ b/src/libmpd-database.c
+@@ -961,7 +961,7 @@ MpdData * mpd_database_get_directory_recursive(MpdObj *mi, const char *path)
+ debug_printf(DEBUG_WARNING,"not connected\n");
+ return NULL;
+ }
+- if(path == '\0' || path[0] == '\0')
++ if(path == NULL || path[0] == '\0')
+ {
+ debug_printf(DEBUG_ERROR, "argumant invalid\n");
+ return NULL;
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch
new file mode 100644
index 0000000000..805204c0b2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch
@@ -0,0 +1,26 @@
+From 67eae4f20af9aaaf693025d95a05527a2c1fed1a Mon Sep 17 00:00:00 2001
+From: Christian Hesse <mail@eworm.de>
+Date: Wed, 19 Jul 2017 14:38:43 +0200
+Subject: [PATCH 3/3] include config.h
+
+Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libmpd-strfsong.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/libmpd-strfsong.c b/src/libmpd-strfsong.c
+index 7d47bed..76fa3ff 100644
+--- a/src/libmpd-strfsong.c
++++ b/src/libmpd-strfsong.c
+@@ -28,6 +28,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <glib.h>
++#include <config.h>
+ #include "libmpd.h"
+ #include "libmpd-internal.h"
+
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb b/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb
index 54d79109df..3a4b3aa1a0 100644
--- a/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb
@@ -1,13 +1,14 @@
SUMMARY = "Music Player Daemon library"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
HOMEPAGE ="http://sourceforge.net/projects/musicpd"
DEPENDS = "glib-2.0"
SRC_URI = "http://www.musicpd.org/download/${BPN}/${PV}/${BP}.tar.gz \
- file://glibc-2.20.patch \
+ file://0001-fix-return-makes-integer-from-pointer-without-a-cast.patch \
+ file://0002-fix-comparison-between-pointer-and-zero-character-co.patch \
+ file://0003-include-config.h.patch \
"
-SRC_URI[md5sum] = "5ae3d87467d52aef3345407adb0a2488"
SRC_URI[sha256sum] = "fe20326b0d10641f71c4673fae637bf9222a96e1712f71f170fca2fc34bf7a83"
inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb
new file mode 100644
index 0000000000..2746c6bb80
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb
@@ -0,0 +1,22 @@
+SUMMARY = "C client library for the Music Player Daemon"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=06b9dfd2f197dc514d8ef06549684b77"
+HOMEPAGE = "https://www.musicpd.org/libs/libmpdclient/"
+
+inherit meson
+
+SRC_URI = " \
+ git://github.com/MusicPlayerDaemon/libmpdclient;branch=master;protocol=https \
+"
+SRCREV = "7124a0ad4841a44db084bb785a6e7120bc8f0139"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "tcp"
+PACKAGECONFIG[tcp] = "-Dtcp=true,-Dtcp=false"
+
+do_install:append() {
+ # libmpdclient's Vala bindings are outdated and unmaintained; it
+ # is likely that nobody will ever use them, so let's not install
+ # them
+ rm -rf ${D}${datadir}/vala
+}
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb
new file mode 100644
index 0000000000..93df25ee2f
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A minimalist command line interface to the Music Player Daemon"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+HOMEPAGE = "https://www.musicpd.org/clients/mpc/"
+
+inherit meson pkgconfig
+
+DEPENDS += "libmpdclient"
+
+SRC_URI = "git://github.com/MusicPlayerDaemon/mpc;branch=master;protocol=https"
+SRCREV = "31c900b79b3a1cd7f2944e92f24223d12589fdaa"
+
+S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-SndfileDecoderPlugin-Fix-type-mismatch-for-std-span.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-SndfileDecoderPlugin-Fix-type-mismatch-for-std-span.patch
new file mode 100644
index 0000000000..37aa448e95
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-SndfileDecoderPlugin-Fix-type-mismatch-for-std-span.patch
@@ -0,0 +1,28 @@
+From f2fbfeeb9c4ff7aa9ba4b95604ee0fb14ecec763 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 17 May 2023 17:54:09 -0700
+Subject: [PATCH] SndfileDecoderPlugin: Fix type mismatch for std::span
+
+Fixes
+../git/src/decoder/plugins/SndfileDecoderPlugin.cxx:231:25: error: non-constant-expression cannot be narrowed from type 'sf_count_t' (aka 'long long') to 'size_type' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
+ std::span{buffer, num_frames * frame_size},
+ ^~~~~~~~~~~~~~~~~~~~~~~
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/decoder/plugins/SndfileDecoderPlugin.cxx | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/decoder/plugins/SndfileDecoderPlugin.cxx b/src/decoder/plugins/SndfileDecoderPlugin.cxx
+index ad3908847..a3cb87ca9 100644
+--- a/src/decoder/plugins/SndfileDecoderPlugin.cxx
++++ b/src/decoder/plugins/SndfileDecoderPlugin.cxx
+@@ -228,7 +228,7 @@ sndfile_stream_decode(DecoderClient &client, InputStream &is)
+ break;
+
+ cmd = client.SubmitAudio(is,
+- std::span{buffer, num_frames * frame_size},
++ std::span{buffer, static_cast<std::size_t>(num_frames * frame_size)},
+ 0);
+ if (cmd == DecoderCommand::SEEK) {
+ sf_count_t c = client.GetSeekFrame();
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/fix-build-error-when-fmt-updated.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/fix-build-error-when-fmt-updated.patch
new file mode 100644
index 0000000000..ebbea2b358
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd/fix-build-error-when-fmt-updated.patch
@@ -0,0 +1,71 @@
+Upstream-Status: Backport [https://github.com/MusicPlayerDaemon/MPD/commit/181b96dd2d71bc8f2668776719d344466f258b5d]
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+
+From 181b96dd2d71bc8f2668776719d344466f258b5d Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max.kellermann@gmail.com>
+Date: Mon, 15 May 2023 20:52:21 +0200
+Subject: [PATCH] command/player, SongPrint: use AudioFormatFormatter()
+
+libfmt version 10 apparently doesn't know how to format a
+`StringBuffer`, failing the MPD build. Since we have a formatter
+specialization for `AudioFormat`, let's use that - it's better and
+easier to use.
+
+Closes https://github.com/MusicPlayerDaemon/MPD/issues/1807
+---
+ src/SongPrint.cxx | 5 +++--
+ src/command/PlayerCommands.cxx | 3 ++-
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/src/SongPrint.cxx b/src/SongPrint.cxx
+index 98d544cc38..835669d276 100644
+--- a/src/SongPrint.cxx
++++ b/src/SongPrint.cxx
+@@ -8,6 +8,7 @@
+ #include "TagPrint.hxx"
+ #include "client/Response.hxx"
+ #include "fs/Traits.hxx"
++#include "lib/fmt/AudioFormatFormatter.hxx"
+ #include "time/ChronoUtil.hxx"
+ #include "util/StringBuffer.hxx"
+ #include "util/UriUtil.hxx"
+@@ -77,7 +78,7 @@ song_print_info(Response &r, const LightSong &song, bool base) noexcept
+ time_print(r, "Last-Modified", song.mtime);
+
+ if (song.audio_format.IsDefined())
+- r.Fmt(FMT_STRING("Format: {}\n"), ToString(song.audio_format));
++ r.Fmt(FMT_STRING("Format: {}\n"), song.audio_format);
+
+ tag_print_values(r, song.tag);
+
+@@ -100,7 +101,7 @@ song_print_info(Response &r, const DetachedSong &song, bool base) noexcept
+ time_print(r, "Last-Modified", song.GetLastModified());
+
+ if (const auto &f = song.GetAudioFormat(); f.IsDefined())
+- r.Fmt(FMT_STRING("Format: {}\n"), ToString(f));
++ r.Fmt(FMT_STRING("Format: {}\n"), f);
+
+ tag_print_values(r, song.GetTag());
+
+diff --git a/src/command/PlayerCommands.cxx b/src/command/PlayerCommands.cxx
+index 5108b9d3c4..0b5a917020 100644
+--- a/src/command/PlayerCommands.cxx
++++ b/src/command/PlayerCommands.cxx
+@@ -13,6 +13,7 @@
+ #include "Partition.hxx"
+ #include "Instance.hxx"
+ #include "IdleFlags.hxx"
++#include "lib/fmt/AudioFormatFormatter.hxx"
+ #include "util/StringBuffer.hxx"
+ #include "util/ScopeExit.hxx"
+ #include "util/Exception.hxx"
+@@ -170,7 +171,7 @@ handle_status(Client &client, [[maybe_unused]] Request args, Response &r)
+
+ if (player_status.audio_format.IsDefined())
+ r.Fmt(FMT_STRING(COMMAND_STATUS_AUDIO ": {}\n"),
+- ToString(player_status.audio_format));
++ player_status.audio_format);
+ }
+
+ #ifdef ENABLE_DATABASE
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/minor-fixup-for-libfmt10.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/minor-fixup-for-libfmt10.patch
new file mode 100644
index 0000000000..0c9d979107
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd/minor-fixup-for-libfmt10.patch
@@ -0,0 +1,27 @@
+Upstream-Status: Backport
+[https://github.com/MusicPlayerDaemon/MPD/commit/f869593ac8913e52c711e974257bd6dc0d5dbf26]
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+
+From f869593ac8913e52c711e974257bd6dc0d5dbf26 Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max.kellermann@gmail.com>
+Date: Mon, 15 May 2023 20:59:58 +0200
+Subject: [PATCH] TimePrint: minor fixup for libfmt 10
+
+libfmt version 10 has difficulties formatting a `StringBuffer`, and we
+need to help it by explicitly invoking the `c_str()` method.
+---
+ src/TimePrint.cxx | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletion(-)
+
+diff --git a/src/TimePrint.cxx b/src/TimePrint.cxx
+index 5bf05f6238..d47f3178bb 100644
+--- a/src/TimePrint.cxx
++++ b/src/TimePrint.cxx
+@@ -20,5 +20,5 @@ time_print(Response &r, const char *name,
+ return;
+ }
+
+- r.Fmt(FMT_STRING("{}: {}\n"), name, s);
++ r.Fmt(FMT_STRING("{}: {}\n"), name, s.c_str());
+ }
diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.18.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.18.bb
deleted file mode 100644
index 6754f347e1..0000000000
--- a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.18.bb
+++ /dev/null
@@ -1,100 +0,0 @@
-SUMMARY = "Music Player Daemon"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-HOMEPAGE ="http://www.musicpd.org"
-
-inherit autotools useradd systemd pkgconfig
-
-DEPENDS += " \
- alsa-lib \
- libsamplerate0 \
- libsndfile1 \
- libvorbis \
- libogg \
- faad2 \
- ffmpeg \
- curl \
- sqlite \
- bzip2 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \
- tcp-wrappers \
- openal-soft \
- yajl \
- jack \
- faad2 \
- flac \
- libao \
- fluidsynth \
- libcdio \
- wavpack \
- libopus \
- mpg123 \
- libmms \
- libmodplug \
- boost \
- icu \
- dbus \
- expat \
- zlib \
- libupnp \
-"
-
-# While this item does not require it, it depends on mpg123 which does
-LICENSE_FLAGS = "commercial"
-
-SRC_URI = " \
- http://www.musicpd.org/download/${BPN}/0.20/${BP}.tar.xz \
- file://mpd.conf.in \
-"
-SRC_URI[md5sum] = "8dc87ba95473fd738f2aff9bd69cc212"
-SRC_URI[sha256sum] = "6a582dc2ae90b94ff3853f9ffd7d80b2c2b5fe2e2c35cb1da0b36f3f3dfad434"
-
-EXTRA_OECONF = "enable_bzip2=yes"
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
-
-PACKAGECONFIG[audiofile] = "--enable-audiofile,--disable-audiofile,audiofile"
-PACKAGECONFIG[cdioparanoia] = "--enable-cdio-paranoia,--disable-cdio-paranoia,libcdio-paranoia"
-PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
-PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag"
-PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame"
-PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba"
-
-do_configure_prepend() {
- sed -i -e 's|libsystemd-daemon|libsystemd|' ${S}/configure.ac
-}
-
-do_install_append() {
- install -d ${D}/${localstatedir}/lib/mpd/music
- chmod 775 ${D}/${localstatedir}/lib/mpd/music
- install -d ${D}/${localstatedir}/lib/mpd/playlists
- chown -R mpd ${D}/${localstatedir}/lib/mpd
- chown mpd:mpd ${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
-
- if [ -e ${D}/${systemd_unitdir}/system/mpd.service ] ; then
- sed -i \
- 's|^ExecStart=.*|ExecStart=${bindir}/mpd --no-daemon|' \
- ${D}/${systemd_unitdir}/system/mpd.service
- fi
-}
-
-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.12.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.12.bb
new file mode 100644
index 0000000000..0c309ded00
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.12.bb
@@ -0,0 +1,104 @@
+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://mpd.conf.in \
+ file://minor-fixup-for-libfmt10.patch \
+ file://fix-build-error-when-fmt-updated.patch \
+ file://0001-SndfileDecoderPlugin-Fix-type-mismatch-for-std-span.patch \
+ "
+SRCREV = "b1422fbda40a1831d397fb161e7a555443c2a072"
+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/0001-SearchPage-use-regular-integer-to-fix-Wenum-constexp.patch b/meta-multimedia/recipes-multimedia/musicpd/ncmpc/0001-SearchPage-use-regular-integer-to-fix-Wenum-constexp.patch
new file mode 100644
index 0000000000..92094af1f2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/ncmpc/0001-SearchPage-use-regular-integer-to-fix-Wenum-constexp.patch
@@ -0,0 +1,37 @@
+From 2e8dc2c28c0938dbbb85ebbac2b9a60be9ccd9f3 Mon Sep 17 00:00:00 2001
+From: Max Kellermann <max@musicpd.org>
+Date: Wed, 23 Nov 2022 12:25:50 +0100
+Subject: [PATCH] SearchPage: use regular integer to fix -Wenum-constexpr-conversion
+
+Upstream-Status: Backport [https://github.com/MusicPlayerDaemon/ncmpc/commit/ddd1757907f0376b5843f707bf182b7827ff6591]
+---
+ src/SearchPage.cxx | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/SearchPage.cxx b/src/SearchPage.cxx
+index 2fa5edbc..3f91c4fe 100644
+--- a/src/SearchPage.cxx
++++ b/src/SearchPage.cxx
+@@ -81,7 +81,7 @@ search_get_tag_id(const char *name)
+ }
+
+ struct SearchMode {
+- enum mpd_tag_type table;
++ int table;
+ const char *label;
+ };
+
+@@ -89,8 +89,8 @@ static constexpr SearchMode mode[] = {
+ { MPD_TAG_TITLE, N_("Title") },
+ { MPD_TAG_ARTIST, N_("Artist") },
+ { MPD_TAG_ALBUM, N_("Album") },
+- { (enum mpd_tag_type)SEARCH_URI, N_("Filename") },
+- { (enum mpd_tag_type)SEARCH_ARTIST_TITLE, N_("Artist + Title") },
++ { SEARCH_URI, N_("Filename") },
++ { SEARCH_ARTIST_TITLE, N_("Artist + Title") },
+ { MPD_TAG_COUNT, nullptr }
+ };
+
+--
+2.39.0
+
diff --git a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.47.bb b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.47.bb
new file mode 100644
index 0000000000..44046912ed
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.47.bb
@@ -0,0 +1,40 @@
+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 \
+ file://0001-SearchPage-use-regular-integer-to-fix-Wenum-constexp.patch \
+"
+SRCREV = "fc8de01c71acdf10ad07c7aae756dc522b848124"
+S = "${WORKDIR}/git"
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch
new file mode 100644
index 0000000000..245785c826
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch
@@ -0,0 +1,194 @@
+From 07fce2101d83b5334de78e661ba0361c2874ebdf Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Mon, 18 Mar 2019 16:30:45 -0700
+Subject: [PATCH 1/7] Remove python venv
+
+Remove the python venv requirements and instead just use the native
+python and pip pacakges.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 39 ---------------------------------------
+ start-mycroft.sh | 13 -------------
+ venv-activate.sh | 44 +-------------------------------------------
+ 3 files changed, 1 insertion(+), 95 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index cf81ed25f0f..99a44bfd8a7 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -338,18 +338,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho
+ fi
+ }
+
+-VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${TOP}/.venv"}
+-
+-function install_venv() {
+- $opt_python -m venv "${VIRTUALENV_ROOT}/" --without-pip
+- # Force version of pip for reproducability, but there is nothing special
+- # about this version. Update whenever a new version is released and
+- # verified functional.
+- curl https://bootstrap.pypa.io/3.3/get-pip.py | "${VIRTUALENV_ROOT}/bin/python" - 'pip==18.0.0'
+- # Function status depending on if pip exists
+- [[ -x ${VIRTUALENV_ROOT}/bin/pip ]]
+-}
+-
+ install_deps
+
+ # Configure to use the standard commit template for
+@@ -383,17 +371,6 @@ else
+ fi
+ fi
+
+-if [[ ! -x ${VIRTUALENV_ROOT}/bin/activate ]] ; then
+- if ! install_venv ; then
+- echo 'Failed to set up virtualenv for mycroft, exiting setup.'
+- exit 1
+- fi
+-fi
+-
+-# Start the virtual environment
+-source "${VIRTUALENV_ROOT}/bin/activate"
+-cd "$TOP"
+-
+ # Install pep8 pre-commit hook
+ HOOK_FILE='./.git/hooks/pre-commit'
+ if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then
+@@ -408,22 +385,6 @@ fi
+
+ PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))")
+
+-# Add mycroft-core to the virtualenv path
+-# (This is equivalent to typing 'add2virtualenv $TOP', except
+-# you can't invoke that shell function from inside a script)
+-VENV_PATH_FILE="${VIRTUALENV_ROOT}/lib/$PYTHON/site-packages/_virtualenv_path_extensions.pth"
+-if [[ ! -f $VENV_PATH_FILE ]] ; then
+- echo 'import sys; sys.__plen = len(sys.path)' > "$VENV_PATH_FILE" || return 1
+- echo "import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)" >> "$VENV_PATH_FILE" || return 1
+-fi
+-
+-if ! grep -q "$TOP" $VENV_PATH_FILE ; then
+- echo 'Adding mycroft-core to virtualenv path'
+- sed -i.tmp '1 a\
+-'"$TOP"'
+-' "$VENV_PATH_FILE"
+-fi
+-
+ # install required python modules
+ if ! pip install -r requirements.txt ; then
+ echo 'Warning: Failed to install all requirements. Continue? y/N'
+diff --git a/start-mycroft.sh b/start-mycroft.sh
+index 0f88430982e..3aed2f189d4 100755
+--- a/start-mycroft.sh
++++ b/start-mycroft.sh
+@@ -20,7 +20,6 @@ script=${0}
+ script=${script##*/}
+ cd -P "$( dirname "$SOURCE" )"
+ DIR="$( pwd )"
+-VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${DIR}/.venv"}
+
+ function help() {
+ echo "${script}: Mycroft command/service launcher"
+@@ -76,19 +75,11 @@ function name-to-script-path() {
+ esac
+ }
+
+-function source-venv() {
+- # Enter Python virtual environment, unless under Docker
+- if [ ! -f "/.dockerenv" ] ; then
+- source ${VIRTUALENV_ROOT}/bin/activate
+- fi
+-}
+-
+ first_time=true
+ function init-once() {
+ if ($first_time) ; then
+ echo "Initializing..."
+ "${DIR}/scripts/prepare-msm.sh"
+- source-venv
+ first_time=false
+ fi
+ }
+@@ -225,15 +216,12 @@ case ${_opt} in
+ # launch-background ${_opt}
+ # ;;
+ "unittest")
+- source-venv
+ pytest test/unittests/ --cov=mycroft "$@"
+ ;;
+ "singleunittest")
+- source-venv
+ pytest "$@"
+ ;;
+ "skillstest")
+- source-venv
+ pytest test/integrationtests/skills/discover_tests.py "$@"
+ ;;
+ "audiotest")
+@@ -243,7 +231,6 @@ case ${_opt} in
+ launch-process ${_opt}
+ ;;
+ "sdkdoc")
+- source-venv
+ cd doc
+ make ${_params}
+ cd ..
+diff --git a/venv-activate.sh b/venv-activate.sh
+index d1e7bcb44e7..10b46d4de3b 100644
+--- a/venv-activate.sh
++++ b/venv-activate.sh
+@@ -22,49 +22,7 @@
+
+ # wrap in function to allow local variables, since this file will be source'd
+ function main() {
+- local quiet=0
+-
+- for arg in "$@"
+- do
+- case $arg in
+- "-q"|"--quiet" )
+- quiet=1
+- ;;
+-
+- "-h"|"--help" )
+- echo "venv-activate.sh: Enter the Mycroft virtual environment"
+- echo "Usage:"
+- echo " source venv-activate.sh"
+- echo "or"
+- echo " . venv-activate.sh"
+- echo ""
+- echo "Options:"
+- echo " -q | --quiet Don't show instructions."
+- echo " -h | --help Show help."
+- return 0
+- ;;
+-
+- *)
+- echo "ERROR: Unrecognized option: $@"
+- return 1
+- ;;
+- esac
+- done
+-
+- if [ "$0" == "$BASH_SOURCE" ] ; then
+- # Prevent running in script then exiting immediately
+- echo "ERROR: Invoke with 'source venv-activate.sh' or '. venv-activate.sh'"
+- else
+- local SRC_DIR="$( builtin cd "$( dirname "${BASH_SOURCE}" )" ; pwd -P )"
+- source ${SRC_DIR}/.venv/bin/activate
+-
+- # Provide an easier to find "mycroft-" prefixed command.
+- unalias mycroft-venv-activate 2>/dev/null
+- alias mycroft-venv-deactivate="deactivate && unalias mycroft-venv-deactivate 2>/dev/null && alias mycroft-venv-activate=\"source '${SRC_DIR}/venv-activate.sh'\""
+- if [ $quiet -eq 0 ] ; then
+- echo "Entering Mycroft virtual environment. Run 'mycroft-venv-deactivate' to exit"
+- fi
+- fi
++ echo "Not entering Python VENV"
+ }
+
+ main $@
+--
+2.23.0
+
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch
new file mode 100644
index 0000000000..637854fdfc
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch
@@ -0,0 +1,48 @@
+From 88696037af52d6a7f57bc0fb82598de1a25365cc Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Fri, 29 Mar 2019 16:09:57 -0700
+Subject: [PATCH 2/7] dev_setup.sh: Remove the git dependency
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 16 ----------------
+ 1 file changed, 16 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index 99a44bfd8a7..672b27080c2 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -340,10 +340,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho
+
+ install_deps
+
+-# Configure to use the standard commit template for
+-# this repo only.
+-git config commit.template .gitmessage
+-
+ # Check whether to build mimic (it takes a really long time!)
+ build_mimic='n'
+ if [[ $opt_forcemimicbuild == true ]] ; then
+@@ -371,18 +367,6 @@ else
+ fi
+ fi
+
+-# Install pep8 pre-commit hook
+-HOOK_FILE='./.git/hooks/pre-commit'
+-if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then
+- if [[ ! -f $HOOK_FILE ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then
+- echo 'Installing PEP8 check as precommit-hook'
+- echo "#! $(which python)" > $HOOK_FILE
+- echo '# MYCROFT DEV SETUP' >> $HOOK_FILE
+- cat ./scripts/pre-commit >> $HOOK_FILE
+- chmod +x $HOOK_FILE
+- fi
+-fi
+-
+ PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))")
+
+ # install required python modules
+--
+2.23.0
+
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch
new file mode 100644
index 0000000000..d803f526de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch
@@ -0,0 +1,37 @@
+From 5ef52cdea278a1dff966a912549cb6708f2cb699 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 17 Sep 2019 11:31:47 -0700
+Subject: [PATCH 3/7] dev_setup.sh: Remove the TERM dependency
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index 672b27080c2..72f734f36bf 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -115,18 +115,6 @@ function get_YN() {
+ done
+ }
+
+-# If tput is available and can handle multiple colors
+-if found_exe tput ; then
+- if [[ $(tput colors) != "-1" ]]; then
+- GREEN=$(tput setaf 2)
+- BLUE=$(tput setaf 4)
+- CYAN=$(tput setaf 6)
+- YELLOW=$(tput setaf 3)
+- RESET=$(tput sgr0)
+- HIGHLIGHT=$YELLOW
+- fi
+-fi
+-
+ # Run a setup wizard the very first time that guides the user through some decisions
+ if [[ ! -f .dev_opts.json && -z $CI ]] ; then
+ echo "
+--
+2.23.0
+
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch
new file mode 100644
index 0000000000..d2dc179ca6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch
@@ -0,0 +1,31 @@
+From e3b6ca995caca22e65d012a54bc2aeb08eb7e9d4 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 15 Oct 2019 17:09:06 -0700
+Subject: [PATCH 4/7] dev_setup.sh: Ignore missing package manager
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index 72f734f36bf..0c8e11b8170 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -317,12 +317,6 @@ Please review the following package changes carefully."
+ echo -e "${YELLOW}Could not find package manager
+ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools python-venv pygobject libtool libffi libjpg openssl autoconf bison swig glib2.0 portaudio19 mpg123 flac curl fann g++ jq\n$RESET"
+
+- echo 'Warning: Failed to install all dependencies. Continue? y/N'
+- read -n1 continue
+- if [[ $continue != 'y' ]] ; then
+- exit 1
+- fi
+-
+ fi
+ }
+
+--
+2.23.0
+
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch
new file mode 100644
index 0000000000..7f63ea13de
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch
@@ -0,0 +1,103 @@
+From 04b14c4569309f1a433d955773aeb8a3607a1360 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 19 Mar 2019 13:32:54 -0700
+Subject: [PATCH 5/7] pip requirements: Don't install requirements with pip
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ dev_setup.sh | 15 +--------------
+ requirements.txt | 36 ------------------------------------
+ test-requirements.txt | 7 -------
+ 3 files changed, 1 insertion(+), 57 deletions(-)
+ delete mode 100644 requirements.txt
+ delete mode 100644 test-requirements.txt
+
+diff --git a/dev_setup.sh b/dev_setup.sh
+index 0c8e11b8170..be4a19de0c3 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -351,19 +351,6 @@ fi
+
+ PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))")
+
+-# install required python modules
+-if ! pip install -r requirements.txt ; then
+- echo 'Warning: Failed to install all requirements. Continue? y/N'
+- read -n1 continue
+- if [[ $continue != 'y' ]] ; then
+- exit 1
+- fi
+-fi
+-
+-if ! pip install -r test-requirements.txt ; then
+- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..."
+-fi
+-
+ SYSMEM=$(free | awk '/^Mem:/ { print $2 }')
+ MAXCORES=$(($SYSMEM / 512000))
+ MINCORES=1
+@@ -420,4 +407,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then
+ fi
+
+ #Store a fingerprint of setup
+-md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed
++md5sum dev_setup.sh > .installed
+diff --git a/requirements.txt b/requirements.txt
+deleted file mode 100644
+index 0140d5465dc..00000000000
+--- a/requirements.txt
++++ /dev/null
+@@ -1,36 +0,0 @@
+-six==1.10.0
+-cryptography==2.6.1
+-requests==2.20.0
+-gTTS==2.0.3
+-gTTS-token==1.1.3
+-PyAudio==0.2.11
+-pyee==5.0.0
+-SpeechRecognition==3.8.1
+-tornado==4.5.3
+-websocket-client==0.54.0
+-requests-futures==0.9.5
+-pyalsaaudio==0.8.2
+-xmlrunner==1.7.7
+-pyserial==3.0
+-psutil==5.2.1
+-pocketsphinx==0.1.0
+-inflection==0.3.1
+-pillow==4.1.1
+-python-dateutil==2.6.0
+-pychromecast==3.2.2
+-python-vlc==1.1.2
+-google-api-python-client==1.6.4
+-fasteners==0.14.1
+-PyYAML==3.13
+-
+-msm==0.8.3
+-msk==0.3.13
+-adapt-parser==0.3.3
+-padatious==0.4.6
+-fann2==1.0.7
+-padaos==0.1.9
+-precise-runner==0.2.1
+-petact==0.1.2
+-
+-# dev setup tools
+-pep8==1.7.0
+diff --git a/test-requirements.txt b/test-requirements.txt
+deleted file mode 100644
+index fd129e3f66d..00000000000
+--- a/test-requirements.txt
++++ /dev/null
+@@ -1,7 +0,0 @@
+-pycodestyle===2.5.0
+-coveralls==1.5.0
+-pytest==3.5.0
+-pytest-cov==2.5.1
+-cov-core==1.15.0
+-sphinx==1.8.2
+-sphinx-rtd-theme==0.4.2
+--
+2.23.0
+
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch
new file mode 100644
index 0000000000..6f1f6f78d1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch
@@ -0,0 +1,121 @@
+From 86a1d18d96f827baa0c1029c85a53fc89d436e17 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 19 Mar 2019 13:38:44 -0700
+Subject: [PATCH 6/7] Use python3 and pip3 instead of python and pip
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ bin/mycroft-cli-client | 2 +-
+ bin/mycroft-pip | 2 +-
+ bin/mycroft-say-to | 2 +-
+ bin/mycroft-skill-testrunner | 4 ++--
+ bin/mycroft-speak | 2 +-
+ dev_setup.sh | 6 +++---
+ scripts/install-pocketsphinx.sh | 2 +-
+ 7 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/bin/mycroft-cli-client b/bin/mycroft-cli-client
+index f40a316e3f6..de2040d9e67 100755
+--- a/bin/mycroft-cli-client
++++ b/bin/mycroft-cli-client
+@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )"
+ source "$DIR/../venv-activate.sh" -q
+
+ # Invoke the Command Line Interface
+-python -m mycroft.client.text $@
++python3 -m mycroft.client.text $@
+diff --git a/bin/mycroft-pip b/bin/mycroft-pip
+index a42b16b847a..81bd5bfb3cf 100755
+--- a/bin/mycroft-pip
++++ b/bin/mycroft-pip
+@@ -21,4 +21,4 @@ DIR="$( dirname "$SOURCE" )"
+ source "$DIR/../venv-activate.sh" -q
+
+ # Install pip packages within the Mycroft venv
+-pip $@
+\ No newline at end of file
++pip3 $@
+\ No newline at end of file
+diff --git a/bin/mycroft-say-to b/bin/mycroft-say-to
+index 4ae597f3062..8bb4039996d 100755
+--- a/bin/mycroft-say-to
++++ b/bin/mycroft-say-to
+@@ -26,4 +26,4 @@ set -- "${1:-$(</dev/stdin)}" "${@:2}"
+
+ # Send a message to be spoken
+ data="$@"
+-output=$(python -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$data\"], \"lang\": \"en-us\"}")
++output=$(python3 -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$data\"], \"lang\": \"en-us\"}")
+diff --git a/bin/mycroft-skill-testrunner b/bin/mycroft-skill-testrunner
+index 9699a4d138f..282f5ca65b0 100755
+--- a/bin/mycroft-skill-testrunner
++++ b/bin/mycroft-skill-testrunner
+@@ -22,7 +22,7 @@ source "$DIR/../venv-activate.sh" -q
+
+ # Invoke the individual skill tester
+ if [ "$#" -eq 0 ] ; then
+- python -m test.integrationtests.skills.runner .
++ python3 -m test.integrationtests.skills.runner .
+ else
+- python -m test.integrationtests.skills.runner $@
++ python3 -m test.integrationtests.skills.runner $@
+ fi
+\ No newline at end of file
+diff --git a/bin/mycroft-speak b/bin/mycroft-speak
+index d80f0e75b13..9448ea3400f 100755
+--- a/bin/mycroft-speak
++++ b/bin/mycroft-speak
+@@ -24,4 +24,4 @@ source "$DIR/../venv-activate.sh" -q
+
+ # Send a message to be spoken
+ data="$@"
+-output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}")
++output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}")
+diff --git a/dev_setup.sh b/dev_setup.sh
+index be4a19de0c3..2d9e17ddfd6 100755
+--- a/dev_setup.sh
++++ b/dev_setup.sh
+@@ -48,7 +48,7 @@ param=''
+
+ for var in "$@" ; do
+ # Check if parameter should be read
+- if [[ $param == 'python' ]] ; then
++ if [[ $param == 'python3' ]] ; then
+ opt_python=$var
+ param=""
+ continue
+@@ -75,7 +75,7 @@ for var in "$@" ; do
+ opt_skipmimicbuild=true
+ fi
+ if [[ $var == '-p' || $var == '--python' ]] ; then
+- param='python'
++ param='python3'
+ fi
+ done
+
+@@ -349,7 +349,7 @@ else
+ fi
+ fi
+
+-PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))")
++PYTHON=$(python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))")
+
+ SYSMEM=$(free | awk '/^Mem:/ { print $2 }')
+ MAXCORES=$(($SYSMEM / 512000))
+diff --git a/scripts/install-pocketsphinx.sh b/scripts/install-pocketsphinx.sh
+index 44d329b7985..d45f5c22747 100755
+--- a/scripts/install-pocketsphinx.sh
++++ b/scripts/install-pocketsphinx.sh
+@@ -47,7 +47,7 @@ function install_pocketsphinx() {
+
+ # build and install pocketsphinx python bindings
+ cd ${TOP}/pocketsphinx-python
+- python setup.py install
++ python3 setup.py install
+ }
+
+ if [ "$1" = "-q" ] ; then
+--
+2.23.0
+
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch
new file mode 100644
index 0000000000..574bda144e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch
@@ -0,0 +1,30 @@
+From b48b3d240cb0fa5e76aa5daf578e51bb8126431d Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Wed, 16 Oct 2019 09:18:39 -0700
+Subject: [PATCH 7/7] mycroft.conf: Use pocketsphinx by default
+
+precise only works on certain architectures, to make Mycroft more
+versitle use pocketsphinx as it is architecture independent.
+
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Upstream-Status: Inappropriate [embedded specific]
+---
+ mycroft/configuration/mycroft.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mycroft/configuration/mycroft.conf b/mycroft/configuration/mycroft.conf
+index 1d0be0dcd2b..d2dc75dac44 100644
+--- a/mycroft/configuration/mycroft.conf
++++ b/mycroft/configuration/mycroft.conf
+@@ -196,7 +196,7 @@
+ // Hotword configurations
+ "hotwords": {
+ "hey mycroft": {
+- "module": "precise",
++ "module": "pocketsphinx",
+ "phonemes": "HH EY . M AY K R AO F T",
+ "threshold": 1e-90,
+ "lang": "en-us"
+--
+2.23.0
+
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json b/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json
new file mode 100644
index 0000000000..5ed85faf41
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/dev_opts.json
@@ -0,0 +1 @@
+{"use_branch": "dev", "auto_update": false} \ No newline at end of file
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service
new file mode 100644
index 0000000000..4b4bcdd774
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Mycroft Setup
+DefaultDependencies=no
+After=systemd-user-sessions.service
+
+[Service]
+Type=oneshot
+ExecStart=cp -rf @LIBDIR@/mycroft /var/
+ExecStart=/var/mycroft/dev_setup.sh --allow-root
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service
new file mode 100644
index 0000000000..c7f477f136
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Mycroft
+RequiresMountsFor=/var
+After=mycroft-setup.service
+
+[Service]
+Type=forking
+WorkingDirectory=/var/mycroft
+ExecStartPre=mkdir -p /var/log/mycroft
+ExecStart=/var/mycroft/start-mycroft.sh all
+ExecStop=/var/mycroft/stop-mycroft.sh all
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
new file mode 100644
index 0000000000..6797899808
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb
@@ -0,0 +1,95 @@
+SUMMARY = "Mycroft is a hackable open source voice assistant."
+DESCRIPTION = "Mycroft is the world’s first open source assistant. "
+HOMEPAGE = "https://mycroft.ai/"
+SECTION = "multimedia"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6"
+
+SRCREV = "913f29d3d550637934f9abf43a097eb2c30d76fc"
+SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master;protocol=https \
+ file://0001-Remove-python-venv.patch \
+ file://0002-dev_setup.sh-Remove-the-git-dependency.patch \
+ file://0003-dev_setup.sh-Remove-the-TERM-dependency.patch \
+ file://0004-dev_setup.sh-Ignore-missing-package-manager.patch \
+ file://0005-pip-requirements-Don-t-install-requirements-with-pip.patch \
+ file://0006-Use-python3-and-pip3-instead-of-python-and-pip.patch \
+ file://0007-mycroft.conf-Use-pocketsphinx-by-default.patch \
+ file://dev_opts.json \
+ file://mycroft-setup.service \
+ file://mycroft.service \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit systemd features_check
+
+# Mycroft installs itself on the host
+# Just copy the setup files to the rootfs
+# The mycroft-setup service will copy the files to /var/ where we run them from
+do_install() {
+ install -d ${D}${libdir}/
+ cp -r ${B} ${D}${libdir}/mycroft
+ rm -r ${D}${libdir}/mycroft/.git
+
+ # Install the dev opts so it doesn't ask us on initial setup.
+ install -m 644 ${WORKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/mycroft.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service
+ fi
+}
+
+FILES:${PN} += "${libdir}/mycroft"
+
+RDEPENDS:${PN} = "python3"
+
+RDEPENDS:${PN} += "python3-requests python3-pillow \
+ python3-tornado python3-pyyaml \
+ python3-pyalsaaudio python3-inflection \
+ python3-pyserial python3-psutil \
+ python3-pyaudio python3-fann2 \
+ python3-pocketsphinx \
+ python3-xxhash python3-pako \
+ python3-six python3-cryptography \
+ python3-requests-futures \
+ python3-xmlrunner python3-fasteners \
+ python3-python-vlc \
+ python3-padatious python3-padaos \
+ python3-petact python3-precise-runner \
+ python3-pulsectl python3-pychromecast \
+ python3-msm python3-msk \
+ python3-websocket-client \
+ python3-google-api-python-client \
+ "
+
+# These packages need to be installed on the target
+# python3-speechrecognition python3-pyee==5.0.0 python3-six==1.10.0
+# python3-websocket-client==0.54.0 python3-gtts python3-gtts-token
+# python3-python-dateutil python3-adapt-parser python3-lazy
+
+# Mycroft uses Alsa, PulseAudio and Flac
+RDEPENDS:${PN} += "alsa-utils alsa-plugins alsa-tools"
+RDEPENDS:${PN} += "pulseaudio pulseaudio-misc pulseaudio-server"
+RDEPENDS:${PN} += "flac mpg123"
+
+# Mycroft can do this itself on the target, but it's quicker to do it here
+RDEPENDS:${PN} += "mimic"
+
+# pgrep is used by stop-mycroft.sh
+RDEPENDS:${PN} += "procps"
+
+# More tools needed by scripts
+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.0.16.0.bb b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.0.16.0.bb
new file mode 100644
index 0000000000..4bff4f24b7
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.0.16.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 = "c5e4af74850a616c42d39ed45b9b8568b71bf8bf"
+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
new file mode 100644
index 0000000000..2bffd65c6e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch
@@ -0,0 +1,31 @@
+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
new file mode 100644
index 0000000000..607ddab8d6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch
@@ -0,0 +1,29 @@
+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.15.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb
deleted file mode 100644
index e0f1a26de4..0000000000
--- a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.15.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "OpenAL is a cross-platform 3D audio API"
-HOMEPAGE = "http://kcat.strangesoft.net/openal.html"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=facc3a8f452930083bbb95d82b989c35"
-
-inherit cmake
-
-SRC_URI = "http://kcat.strangesoft.net/openal-releases/${BP}.tar.bz2"
-SRC_URI[md5sum] = "ea83dec3b9655a27d28e7bc7cae9cd71"
-SRC_URI[sha256sum] = "0e29a162f0841ccb4135ce76e92e8a704589b680a85eddf76f898de5236eb056"
-
-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.20.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
new file mode 100644
index 0000000000..ad70005721
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb
@@ -0,0 +1,24 @@
+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/openh264/openh264/0001-Makefile-Use-cp-options-to-preserve-file-mode.patch b/meta-multimedia/recipes-multimedia/openh264/openh264/0001-Makefile-Use-cp-options-to-preserve-file-mode.patch
new file mode 100644
index 0000000000..92f32948b2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openh264/openh264/0001-Makefile-Use-cp-options-to-preserve-file-mode.patch
@@ -0,0 +1,32 @@
+From 1c3bda45c55d2334af384caf9e7f240b7aaf2eb5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 3 Mar 2020 22:28:25 -0800
+Subject: [PATCH] Makefile: Use cp options to preserve file mode
+
+This fixes packaging issues e.g.
+openh264: /usr/lib/libopenh264.so is owned by uid 1000, which is the same as the user running bitbake
+
+Upstream-Status: Submitted [https://github.com/cisco/openh264/pull/3245]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 74ff029d..ac643412 100644
+--- a/Makefile
++++ b/Makefile
+@@ -306,8 +306,8 @@ install-shared: $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) install-headers $
+ mkdir -p $(DESTDIR)$(SHAREDLIB_DIR)
+ install -m 755 $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXFULLVER) $(DESTDIR)$(SHAREDLIB_DIR)
+ if [ "$(SHAREDLIBSUFFIXFULLVER)" != "$(SHAREDLIBSUFFIX)" ]; then \
+- cp -a $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) $(DESTDIR)$(SHAREDLIB_DIR) ; \
+- cp -a $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR) ; \
++ cp -R --no-dereference --preserve=mode,links $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) $(DESTDIR)$(SHAREDLIB_DIR) ; \
++ cp -R --no-dereference --preserve=mode,links $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR) ; \
+ fi
+ mkdir -p $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig
+ install -m 644 $(PROJECT_NAME).pc $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig
+--
+2.25.1
+
diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb
deleted file mode 100644
index 44c46f81e8..0000000000
--- a/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb
+++ /dev/null
@@ -1,42 +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_x86 += "nasm-native"
-DEPENDS_x86-64 += "nasm-native"
-
-LICENSE = "BSD-2-Clause"
-LICENSE_FLAGS = "commercial"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf"
-
-S = "${WORKDIR}/git"
-SRCREV = "a180c9d4d6f1a4830ca9eed9d159d54996bd63cb"
-BRANCH = "openh264v1.7"
-SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH};"
-
-COMPATIBLE_MACHINE_armv7a = "(.*)"
-COMPATIBLE_MACHINE_aarch64 = "(.*)"
-COMPATIBLE_MACHINE_x86 = "(.*)"
-COMPATIBLE_MACHINE_x86-64 = "(.*)"
-COMPATIBLE_MACHINE_mips = "(.*)"
-COMPATIBLE_MACHINE_mips64 = "(.*)"
-
-EXTRA_OEMAKE_armv7a = "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"
-
-do_configure() {
- :
-}
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} PREFIX=${prefix}
-}
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..3fa87d05f5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb
@@ -0,0 +1,51 @@
+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 \
+ "
+
+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/opus-tools/opus-tools_0.2.bb b/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb
new file mode 100644
index 0000000000..b76c5ba01d
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Opus Audio Tools"
+HOMEPAGE = "http://www.opus-codec.org/"
+
+LICENSE = "BSD-2-Clause & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=79f6fc2a6239fbe5f6e52f20ac76698c"
+
+SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz"
+SRC_URI[md5sum] = "ff2d0536e960cabbfb8ca7c8c1759b6c"
+SRC_URI[sha256sum] = "b4e56cb00d3e509acfba9a9b627ffd8273b876b4e2408642259f6da28fa0ff86"
+
+S = "${WORKDIR}/opus-tools-${PV}"
+
+DEPENDS = "libopus libopusenc flac opusfile"
+
+inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb b/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb
deleted file mode 100644
index 189dc87c49..0000000000
--- a/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Library for opening, seeking, and decoding opus audio files"
-HOMEPAGE = "https://www.opus-codec.org/"
-SECTION = "audio"
-
-DEPENDS = "libogg openssl libopus"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6ac22b992dde6a891f8949c3e2da8576"
-
-SRC_URI = "https://downloads.xiph.org/releases/opus/${PN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "ab3f7d15d766f5b36b0951ee435f9ebf"
-SRC_URI[sha256sum] = "48e03526ba87ef9cf5f1c47b5ebe3aa195bd89b912a57060c36184a6cd19412f"
-
-inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.12.bb b/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.12.bb
new file mode 100644
index 0000000000..c775cef5a1
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.12.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Library for opening, seeking, and decoding opus audio files"
+HOMEPAGE = "https://www.opus-codec.org/"
+SECTION = "audio"
+
+DEPENDS = "libogg openssl libopus"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ac22b992dde6a891f8949c3e2da8576"
+
+SRC_URI = "https://downloads.xiph.org/releases/opus/${BP}.tar.gz"
+SRC_URI[md5sum] = "45e8c62f6cd413395223c82f06bfa8ec"
+SRC_URI[sha256sum] = "118d8601c12dd6a44f52423e68ca9083cc9f2bfe72da7a8c1acb22a80ae3550b"
+
+inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
new file mode 100644
index 0000000000..c520653761
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb
@@ -0,0 +1,80 @@
+SUMMARY = "Meta-multimedia packagegroups"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+ packagegroup-meta-multimedia \
+ packagegroup-meta-multimedia-connectivity \
+ packagegroup-meta-multimedia-dvb \
+ packagegroup-meta-multimedia-mkv \
+ packagegroup-meta-multimedia-support \
+'
+
+RDEPENDS:packagegroup-meta-multimedia = "\
+ packagegroup-meta-multimedia \
+ packagegroup-meta-multimedia-connectivity \
+ packagegroup-meta-multimedia-dvb \
+ packagegroup-meta-multimedia-mkv \
+ packagegroup-meta-multimedia-support \
+"
+
+RDEPENDS:packagegroup-meta-multimedia = "\
+ alsa-equal \
+ aom \
+ bluealsa \
+ caps \
+ cdparanoia \
+ dleyna-connector-dbus \
+ dleyna-renderer \
+ dleyna-server \
+ dvb-apps \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faac mpd", "", d)} \
+ gerbera \
+ libavc1394 \
+ libiec61883 \
+ libmusicbrainz \
+ mpc \
+ ncmpc \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "opencore-amr", "", d)} \
+ gstd \
+ rtmpdump \
+ bigbuckbunny-1080p \
+ bigbuckbunny-480p \
+ bigbuckbunny-720p \
+ tearsofsteel-1080p \
+ pipewire \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "projucer", "", d)} \
+ libcamera \
+ vorbis-tools \
+ libopenmpt \
+ mimic \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "minidlna", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pulseaudio", "mycroft", "", d)} \
+ openal-soft \
+ opusfile \
+ opus-tools \
+ ${@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 \
+ ${@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-connectivity = "\
+ gupnp-dlna \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gupnp-tools", "", d)} \
+ libupnp \
+ ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d)} \
+"
+RDEPENDS:packagegroup-meta-multimedia-dvb = "\
+ oscam \
+ tvheadend \
+"
+
+RDEPENDS:packagegroup-meta-multimedia-support = "\
+ crossguid \
+ gst-instruments \
+"
+# 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
new file mode 100644
index 0000000000..52a672f042
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb
@@ -0,0 +1,65 @@
+SUMMARY = "Multimedia processing server for Linux"
+AUTHOR = "Wim Taymans <wtaymans@redhat.com>"
+HOMEPAGE = "https://pipewire.org"
+SECTION = "multimedia"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \
+ file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+"
+DEPENDS = "alsa-lib dbus udev"
+SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d"
+PV = "0.2.7"
+
+SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig systemd manpages
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ gstreamer \
+"
+
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
+PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native"
+
+PACKAGES =+ "\
+ ${PN}-spa-plugins \
+ ${PN}-alsa \
+ ${PN}-config \
+ gstreamer1.0-${PN} \
+ lib${PN} \
+ lib${PN}-modules \
+"
+
+RDEPENDS:lib${PN} += "lib${PN}-modules ${PN}-spa-plugins"
+
+FILES:${PN} = "\
+ ${sysconfdir}/pipewire/pipewire.conf \
+ ${bindir}/pipewire* \
+ ${systemd_user_unitdir}/* \
+"
+FILES:lib${PN} = "\
+ ${libdir}/libpipewire-*.so.* \
+"
+FILES:lib${PN}-modules = "\
+ ${libdir}/pipewire-*/* \
+"
+FILES:${PN}-spa-plugins = "\
+ ${bindir}/spa-* \
+ ${libdir}/spa/* \
+"
+FILES:${PN}-alsa = "\
+ ${libdir}/alsa-lib/* \
+ ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \
+"
+FILES:gstreamer1.0-${PN} = "\
+ ${libdir}/gstreamer-1.0/* \
+"
+
+CONFFILES:${PN} = "\
+ ${sysconfdir}/pipewire/pipewire.conf \
+"
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.75.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.75.bb
new file mode 100644
index 0000000000..72533310cb
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.75.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"
+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 = "a3bd0f7a0a8dec9045deeb5eb3eb92b09ff75d57"
+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, 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"
+# 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"
+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 \
+"
+
+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/rtmpdump/rtmpdump/fix-racing-build-issue.patch b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch
index bb3d8b0efe..6e11c9752e 100644
--- a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch
+++ b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump/fix-racing-build-issue.patch
@@ -8,11 +8,11 @@ Index: git/librtmp/Makefile
===================================================================
--- git.orig/librtmp/Makefile
+++ git/librtmp/Makefile
-@@ -107,6 +107,7 @@ install_base: librtmp.a librtmp.pc
+@@ -115,6 +115,7 @@ install_base: librtmp.a librtmp.pc
cp librtmp.3 $(MANDIR)/man3
- install_so: librtmp.$(SO_EXT)
+ install_so: librtmp$(SO_EXT)
+ -mkdir -p $(SODIR)
- cp librtmp.$(SO_EXT) $(SODIR)
- cd $(SODIR); ln -sf librtmp.$(SO_EXT) librtmp.$(SOX)
-
+ cp librtmp$(SO_EXT) $(SODIR)
+ $(INSTALL_IMPLIB)
+ cd $(SODIR); ln -sf librtmp$(SO_EXT) librtmp.$(SOX)
diff --git a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
index c5513b0252..aa92c58808 100644
--- a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
+++ b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb
@@ -2,14 +2,14 @@ SUMMARY = "RTMP Dump"
DESCRIPTION = "rtmpdump is a toolkit for RTMP streams. All forms of RTMP are \
supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://."
HOMEPAGE = "http://rtmpdump.mplayerhq.hu/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "openssl zlib"
+DEPENDS = "gnutls zlib"
-SRCREV = "3121324046e4ca1934e7e28293fc8326475d5053"
+SRCREV = "fa8646daeb19dfd12c181f7d19de708d623704c0"
SRC_URI = " \
- git://git.ffmpeg.org/rtmpdump \
+ git://git.ffmpeg.org/rtmpdump;branch=master \
file://fix-racing-build-issue.patch"
S = "${WORKDIR}/git"
@@ -18,5 +18,5 @@ inherit autotools-brokensep
EXTRA_OEMAKE = " \
CC='${CC}' LD='${LD} ${STAGING_LIBDIR}' XCFLAGS='${CFLAGS}' XLDFLAGS='${LDFLAGS}' \
- SYS=posix INC=-I=/usr/include DESTDIR=${D} \
+ SYS=posix INC=-I=/usr/include DESTDIR=${D} CRYPTO=GNUTLS \
prefix=${prefix} libdir=${libdir} incdir=${includedir}/librtmp bindir=${bindir} mandir=${mandir}"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
index a80fc10ace..cb919d79e3 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb
@@ -1,9 +1,9 @@
SUMMARY = "Big Buck Bunny movie - 1080P"
LICENSE = "CC-BY-3.0"
# http://www.bigbuckbunny.org/index.php/about/
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
-SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_surround.avi"
+SRC_URI = "http://www.peach.themazzone.com/big_buck_bunny_1080p_surround.avi"
SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a"
SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c20c06ea"
@@ -14,4 +14,4 @@ do_install() {
install -m 0644 ${WORKDIR}/big_buck_bunny_1080p_surround.avi ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb
index 59ac4788cb..40dc2aacb5 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb
@@ -1,9 +1,9 @@
SUMMARY = "Big Buck Bunny movie - 480P"
LICENSE = "CC-BY-3.0"
# http://www.bigbuckbunny.org/index.php/about/
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
-SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi"
+SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi"
SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120"
SRC_URI[sha256sum] = "40d1cf5bc8e1b0e55dac7bb2e3fbc2aea05b6679444864781299b24db044634f"
@@ -14,4 +14,4 @@ do_install() {
install -m 0644 ${WORKDIR}/big_buck_bunny_480p_surround-fix.avi ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb
index 21b8f8f0f8..ed1d027b40 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb
@@ -1,9 +1,9 @@
SUMMARY = "Big Buck Bunny movie - 720P"
LICENSE = "CC-BY-3.0"
# http://www.bigbuckbunny.org/index.php/about/
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
-SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi"
+SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_720p_surround.avi"
SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc"
SRC_URI[sha256sum] = "b957d6e6212638441b52d3b620af157cc8d40c2a0342669294854a06edcd528c"
@@ -14,4 +14,4 @@ do_install() {
install -m 0644 ${WORKDIR}/big_buck_bunny_720p_surround.avi ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb
index 0582a48562..78f15f143f 100644
--- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb
+++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb
@@ -1,6 +1,6 @@
SUMMARY = "Tears of Steel movie - 1080P"
LICENSE = "CC-BY-3.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7"
SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov"
SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6"
@@ -13,4 +13,4 @@ do_install() {
install -m 0644 ${WORKDIR}/ToS-4k-1920.mov ${D}${datadir}/movies/
}
-FILES_${PN} += "${datadir}/movies"
+FILES:${PN} += "${datadir}/movies"
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 d38eb94773..c78e008007 100644
--- a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
+++ b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb
@@ -1,6 +1,6 @@
SUMMARY = "Dirac compressed video encoder/decoder"
HOMEPAGE = "http://schrodinger.sourceforge.net/"
-LICENSE = "MPL-1.1 | GPLv2 | LGPLv2 | MIT"
+LICENSE = "MPL-1.1 | GPL-2.0-only | LGPL-2.0-only | MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \
file://COPYING.GPL;md5=e181e3b7c66f5f96921d813c1074f833 \
@@ -8,9 +8,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \
file://COPYING.MIT;md5=8b345371b3536b4ce37ead1eafc88221 \
file://COPYING.MPL;md5=0117647fecb9a932c25a7bbfc0333c37"
-DEPENDS = "liboil orc-native orc"
+DEPENDS = "orc-native orc"
-SRC_URI = "http://www.diracvideo.org/download/schroedinger/${BP}.tar.gz \
+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"
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 21fddd1e19..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,10 +4,7 @@ and can apply different effects and filters to the audio data."
HOMEPAGE = "http://sox.sourceforge.net"
SECTION = "audio"
-DEPENDS = "libpng ffmpeg libsndfile1"
-
-# While this item does not require it, it depends on ffmpeg which does
-LICENSE_FLAGS = "commercial"
+DEPENDS = "libpng libsndfile1 libtool"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \
magic \
@@ -26,7 +23,7 @@ PACKAGECONFIG[id3tag] = "--with-id3tag,--without-id3tag,libid3tag,"
PACKAGECONFIG[lame] = "--with-lame,--without-lame,lame,"
PACKAGECONFIG[ao] = "--with-ao,--without-ao,libao,"
-LICENSE = "GPLv2 & LGPLv2.1"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe \
file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24"
@@ -38,3 +35,8 @@ SRC_URI[md5sum] = "d04fba2d9245e661f245de0577f48a33"
SRC_URI[sha256sum] = "b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3bb55f6c"
inherit autotools pkgconfig
+
+# Enable largefile support
+CFLAGS += "-D_FILE_OFFSET_BITS=64"
+
+EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}"
diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
index 722815ab6a..6014326826 100644
--- a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
+++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb
@@ -2,7 +2,7 @@ SUMMARY = "download online streams into audio files"
DESCRIPTION = "This command-line tool can be used to record MPEG III \
and OGG online radio-streams into track-separated audio files."
HOMEPAGE = "http://streamripper.sourceforge.net"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
DEPENDS = "glib-2.0 libmad libogg libvorbis"
@@ -29,4 +29,4 @@ EXTRA_OECONF += "\
"
# the included argv library needs this
-CPPFLAGS_append = " -DANSI_PROTOTYPES"
+CPPFLAGS:append = " -DANSI_PROTOTYPES"
diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
index 72094b6fad..68cf8795a6 100644
--- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
+++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb
@@ -6,13 +6,18 @@ SECTION = "libs/multimedia"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b"
-SRCREV = "67b9210d344c34e8d1aa0cfe638abce71c5221ca"
-SRC_URI = "git://github.com/tinyalsa/tinyalsa"
+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
-PACKAGES =+ "${PN}-tools"
-FILES_${PN}-tools = "${bindir}/*"
+# 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
new file mode 100644
index 0000000000..6f9c39996b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch
@@ -0,0 +1,46 @@
+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/tremor/tremor_20150107.bb b/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb
deleted file mode 100644
index 937894a73a..0000000000
--- a/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Fixed-point decoder"
-DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec."
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \
- file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f"
-DEPENDS = "libogg"
-SRCDATE = "${PV}"
-PR = "r1"
-
-# SVN support for upstream version check isn't implemented yet
-RECIPE_UPSTREAM_VERSION = "20150107"
-RECIPE_UPSTREAM_DATE = "Jan 07, 2015"
-CHECK_DATE = "Aug 12, 2015"
-
-SRC_URI = "svn://svn.xiph.org/trunk;module=Tremor;rev=19427;protocol=http \
- file://obsolete_automake_macros.patch;striplevel=0 \
- file://tremor-arm-thumb2.patch \
-"
-
-S = "${WORKDIR}/Tremor"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-shared"
-
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
new file mode 100644
index 0000000000..f8ab1bf680
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Fixed-point decoder"
+DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec."
+SECTION = "libs"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \
+ file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f"
+DEPENDS = "libogg"
+
+SRC_URI = "git://gitlab.xiph.org/xiph/tremor.git;protocol=https;branch=master \
+ file://obsolete_automake_macros.patch;striplevel=0 \
+ file://tremor-arm-thumb2.patch \
+"
+SRCREV = "7c30a66346199f3f09017a09567c6c8a3a0eedc8"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--enable-shared"
+
+ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb
deleted file mode 100644
index 79e64aebda..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption."
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2"
-
-inherit autotools
-
-EXTRA_OECONF = " --disable-doc "
-
-SRC_URI[md5sum] = "7f0fdb3ff91d638f5e45ed7536f7eb67"
-SRC_URI[sha256sum] = "7c414acd520c4e4dd7267952f72d738ff50321a7869af4d75c65aefad44f1395"
diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb
new file mode 100644
index 0000000000..0b472b81d9
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb
@@ -0,0 +1,13 @@
+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/vlc.inc b/meta-multimedia/recipes-multimedia/vlc/vlc.inc
deleted file mode 100644
index 8e82b3bd33..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc.inc
+++ /dev/null
@@ -1,113 +0,0 @@
-DESCRIPTION = "Video player and streamer - davinci edition"
-HOMEPAGE = "http://www.videolan.org"
-SECTION = "multimedia"
-
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "libfribidi libtool libgcrypt libgcrypt-native \
- dbus dbus-glib libxml2 gnutls \
- tremor faad2 ffmpeg flac fluidsynth alsa-lib \
- lua-native lua libidn \
- avahi jpeg xz libmodplug mpeg2dec \
- libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \
- tiff"
-
-# While this item does not require it, it depends on ffmpeg which does
-LICENSE_FLAGS = "commercial"
-
-SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz"
-
-inherit autotools gettext pkgconfig distro_features_check
-
-ARM_INSTRUCTION_SET = "arm"
-
-EXTRA_OECONF = "\
- --enable-run-as-root \
- --enable-xvideo \
- --disable-screen --disable-caca \
- --enable-httpd --enable-vlm \
- --enable-freetype \
- --enable-tremor \
- --enable-v4l2 --disable-aa --disable-faad \
- --enable-dbus \
- --without-contrib \
- --without-kde-solid \
- --enable-realrtsp \
- --disable-libtar \
- ac_cv_path_MOC=${STAGING_BINDIR_NATIVE}/moc4 \
- ac_cv_path_RCC=${STAGING_BINDIR_NATIVE}/rcc4 \
- ac_cv_path_UIC=${STAGING_BINDIR_NATIVE}/uic4 \
-"
-
-PACKAGECONFIG ?= " live555 dc1394 dv1394 notify fontconfig freetype dvdread png ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 sdl vdpau', '', d)}"
-PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad"
-PACKAGECONFIG[sdl] = "--enable-sdl,--disable-sdl,virtual/libsdl libsdl-image "
-PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52"
-PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
-PACKAGECONFIG[live555] = "--enable-live555,--disable-live555,live555"
-PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
-PACKAGECONFIG[mkv] = "--enable-mkv,--disable-mkv,libmatroska libebml"
-PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc"
-PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv"
-PACKAGECONFIG[libva] = "--enable-libva --enable-avcodec,--disable-libva --disable-avcodec,libva libav"
-PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex"
-PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gst-plugins-bad"
-PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx"
-PACKAGECONFIG[qt4] = "--enable-qt,--disable-qt, qt4-x11-free"
-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+"
-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"
-
-do_configure_prepend() {
- cp ${STAGING_DATADIR}/libtool/config.* ${S}/autotools/ || true
-}
-
-do_configure_append() {
- sed -i -e s:'$(MOC) $(DEFS) $(CPPFLAGS)':'$(MOC) $(DEFS)'\ -I${B}/include\ -DSYS_LINUX:g ${B}/modules/gui/qt4/Makefile
- sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool
-}
-
-# 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 \
- ${datadir}/applications \
- ${datadir}/vlc/ \
- ${datadir}/icons \
- ${lindir}/vlc/vlc/libvlc_vdpau.so \
-"
-
-FILES_${PN}-dbg += "\
- ${libdir}/vlc/*/.debug \
- ${libdir}/vlc/plugins/*/.debug \
-"
-
-FILES_${PN}-staticdev += "\
- ${libdir}/vlc/plugins/*/*.a \
-"
-
-INSANE_SKIP_${PN} = "dev-so"
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch
deleted file mode 100644
index 9f0e708ed7..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-enable-subdir-objects.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: vlc-2.1.2/configure.ac
-===================================================================
---- vlc-2.1.2.orig/configure.ac
-+++ vlc-2.1.2/configure.ac
-@@ -24,7 +24,7 @@ AC_CANONICAL_BUILD
- AC_CANONICAL_HOST
- AC_PRESERVE_HELP_ORDER
-
--AM_INIT_AUTOMAKE(tar-ustar color-tests foreign)
-+AM_INIT_AUTOMAKE(tar-ustar color-tests foreign subdir-objects)
- AC_CONFIG_HEADERS([config.h])
-
- # Disable with "./configure --disable-silent-rules" or "make V=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
new file mode 100644
index 0000000000..cc65af009b
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch
@@ -0,0 +1,27 @@
+Recent opencv API changes break upstream filter and example.
+Make opencv explicitly configurable.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Tim Orling <TicoTimo@gmail.com>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -1892,7 +1892,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu
+ dnl
+ dnl OpenCV wrapper and example filters
+ dnl
+-PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
++AC_ARG_ENABLE(opencv,
++ [AS_HELP_STRING([--disable-opencv],
++ [disable OpenCV computer vision filter and example (default auto)])])
++if test "${enable_opencv}" != "no"
++then
++ PKG_ENABLE_MODULES_VLC([OPENCV],
++ [opencv_example opencv_wrapper],
++ [opencv > 2.0],
++ (OpenCV (computer vision) filter), [auto])
++fi
+
+
+ dnl
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch
deleted file mode 100644
index 6d2a46fb3c..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0002-glibc-does-not-provide-strlcpy.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: vlc-2.1.2/src/input/subtitles.c
-===================================================================
---- vlc-2.1.2.orig/src/input/subtitles.c
-+++ vlc-2.1.2/src/input/subtitles.c
-@@ -44,6 +44,12 @@
- #include "input_internal.h"
-
- /**
-+ * Drepper's alternative
-+ * http://en.wikibooks.org/wiki/C_Programming/C_Reference/nonstandard/strlcpy
-+ */
-+#define strlcpy(dst, src, n) *((char* ) mempcpy(dst, src, n)) = '\0'
-+
-+/**
- * We are not going to autodetect more subtitle files than this.
- */
- #define MAX_SUBTITLE_FILES 128
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
new file mode 100644
index 0000000000..8ecddd33c6
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch
@@ -0,0 +1,17 @@
+* tremor provides libvorbisidec, use it instead of libvorbisdec
+
+Upstream-Status: Pending
+
+Signed-off-by: Tim Orling <TicoTimo@gmail.com>
+
+--- a/modules/codec/Makefile.am
++++ b/modules/codec/Makefile.am
+@@ -321,7 +321,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)'
+-libtremor_plugin_la_LIBADD = -lvorbisdec -logg
++libtremor_plugin_la_LIBADD = -lvorbisidec -logg
+ EXTRA_LTLIBRARIES += libtremor_plugin.la
+ codec_LTLIBRARIES += $(LTLIBtremor)
+
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
new file mode 100644
index 0000000000..e10002f78e
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch
@@ -0,0 +1,233 @@
+* luaL_checkint and luaL_optint were deprecated in lua 5.3
+* replacement functions are luaL_checkinteger and luaL_optinteger
+
+Upstream-Status: Pending
+
+Signed-off-by: Tim Orling <TicoTimo@gmail.com>
+
+--- a/modules/lua/demux.c
++++ b/modules/lua/demux.c
+@@ -52,7 +52,7 @@ struct vlclua_playlist
+ static int vlclua_demux_peek( lua_State *L )
+ {
+ stream_t *s = (stream_t *)vlclua_get_this(L);
+- int n = luaL_checkint( L, 1 );
++ int n = luaL_checkinteger( L, 1 );
+ const uint8_t *p_peek;
+
+ ssize_t val = vlc_stream_Peek(s->p_source, &p_peek, n);
+@@ -66,7 +66,7 @@ static int vlclua_demux_peek( lua_State
+ static int vlclua_demux_read( lua_State *L )
+ {
+ stream_t *s = (stream_t *)vlclua_get_this(L);
+- int n = luaL_checkint( L, 1 );
++ int n = luaL_checkinteger( L, 1 );
+ char *buf = malloc(n);
+
+ if (buf != NULL)
+--- a/modules/lua/libs/net.c
++++ b/modules/lua/libs/net.c
+@@ -179,7 +179,7 @@ static int vlclua_net_listen_tcp( lua_St
+ {
+ vlc_object_t *p_this = vlclua_get_this( L );
+ const char *psz_host = luaL_checkstring( L, 1 );
+- int i_port = luaL_checkint( L, 2 );
++ int i_port = luaL_checkinteger( L, 2 );
+ int *pi_fd = net_ListenTCP( p_this, psz_host, i_port );
+ if( pi_fd == NULL )
+ return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port );
+@@ -251,7 +251,7 @@ static int vlclua_net_connect_tcp( lua_S
+ {
+ vlc_object_t *p_this = vlclua_get_this( L );
+ const char *psz_host = luaL_checkstring( L, 1 );
+- int i_port = luaL_checkint( L, 2 );
++ int i_port = luaL_checkinteger( L, 2 );
+ int i_fd = net_ConnectTCP( p_this, psz_host, i_port );
+ lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) );
+ return 1;
+@@ -259,14 +259,14 @@ static int vlclua_net_connect_tcp( lua_S
+
+ static int vlclua_net_close( lua_State *L )
+ {
+- int i_fd = luaL_checkint( L, 1 );
++ int i_fd = luaL_checkinteger( L, 1 );
+ vlclua_fd_unmap_safe( L, i_fd );
+ return 0;
+ }
+
+ static int vlclua_net_send( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len;
+ const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
+
+@@ -278,7 +278,7 @@ static int vlclua_net_send( lua_State *L
+
+ static int vlclua_net_recv( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
+ char psz_buffer[i_len];
+
+@@ -312,7 +312,7 @@ static int vlclua_net_poll( lua_State *L
+ lua_pushnil( L );
+ for( int i = 0; lua_next( L, 1 ); i++ )
+ {
+- luafds[i] = luaL_checkint( L, -2 );
++ luafds[i] = luaL_checkinteger( L, -2 );
+ p_fds[i].fd = vlclua_fd_get( L, luafds[i] );
+ p_fds[i].events = luaL_checkinteger( L, -1 );
+ p_fds[i].events &= POLLIN | POLLOUT | POLLPRI;
+@@ -360,7 +360,7 @@ static int vlclua_fd_open( lua_State *L
+ #ifndef _WIN32
+ static int vlclua_fd_write( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len;
+ const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
+
+@@ -371,7 +371,7 @@ static int vlclua_fd_write( lua_State *L
+
+ static int vlclua_fd_read( lua_State *L )
+ {
+- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
++ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
+ size_t i_len = (size_t)luaL_optinteger( L, 2, 1 );
+ char psz_buffer[i_len];
+
+--- a/modules/lua/libs/osd.c
++++ b/modules/lua/libs/osd.c
+@@ -154,7 +154,7 @@ static int vlc_osd_slider_type_from_stri
+
+ static int vlclua_osd_slider( lua_State *L )
+ {
+- int i_position = luaL_checkint( L, 1 );
++ int i_position = luaL_checkinteger( L, 1 );
+ const char *psz_type = luaL_checkstring( L, 2 );
+ int i_type = vlc_osd_slider_type_from_string( psz_type );
+ int i_chan = (int)luaL_optinteger( L, 3, VOUT_SPU_CHANNEL_OSD );
+@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register(
+
+ static int vlclua_spu_channel_clear( lua_State *L )
+ {
+- int i_chan = luaL_checkint( L, 1 );
++ int i_chan = luaL_checkinteger( L, 1 );
+ input_thread_t *p_input = vlclua_get_input_internal( L );
+ if( !p_input )
+ return luaL_error( L, "Unable to find input." );
+--- a/modules/lua/libs/playlist.c
++++ b/modules/lua/libs/playlist.c
+@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_Sta
+
+ static int vlclua_playlist_skip( lua_State * L )
+ {
+- int i_skip = luaL_checkint( L, 1 );
++ int i_skip = luaL_checkinteger( L, 1 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+ playlist_Skip( p_playlist, i_skip );
+ return 0;
+@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_S
+
+ static int vlclua_playlist_gotoitem( lua_State * L )
+ {
+- int i_id = luaL_checkint( L, 1 );
++ int i_id = luaL_checkinteger( L, 1 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+ PL_LOCK;
+ playlist_ViewPlay( p_playlist, NULL,
+@@ -138,7 +138,7 @@ static int vlclua_playlist_gotoitem( lua
+
+ static int vlclua_playlist_delete( lua_State * L )
+ {
+- int i_id = luaL_checkint( L, 1 );
++ int i_id = luaL_checkinteger( L, 1 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+
+ PL_LOCK;
+@@ -152,8 +152,8 @@ static int vlclua_playlist_delete( lua_S
+
+ static int vlclua_playlist_move( lua_State * L )
+ {
+- int i_item = luaL_checkint( L, 1 );
+- int i_target = luaL_checkint( L, 2 );
++ int i_item = luaL_checkinteger( L, 1 );
++ int i_target = luaL_checkinteger( L, 2 );
+ playlist_t *p_playlist = vlclua_get_playlist_internal( L );
+ PL_LOCK;
+ playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item );
+--- a/modules/lua/libs/stream.c
++++ b/modules/lua/libs/stream.c
+@@ -123,7 +123,7 @@ static int vlclua_stream_read( lua_State
+ {
+ int i_read;
+ stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" );
+- int n = luaL_checkint( L, 2 );
++ int n = luaL_checkinteger( L, 2 );
+ uint8_t *p_read = malloc( n );
+ if( !p_read ) return vlclua_error( L );
+
+--- a/modules/lua/libs/volume.c
++++ b/modules/lua/libs/volume.c
+@@ -48,7 +48,7 @@
+ static int vlclua_volume_set( lua_State *L )
+ {
+ playlist_t *p_this = vlclua_get_playlist_internal( L );
+- int i_volume = luaL_checkint( L, 1 );
++ int i_volume = luaL_checkinteger( L, 1 );
+ if( i_volume < 0 )
+ i_volume = 0;
+ int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT );
+--- a/modules/lua/libs/dialog.c
++++ b/modules/lua/libs/dialog.c
+@@ -382,7 +382,7 @@ static int lua_GetDialogUpdate( lua_Stat
+ /* Read entry in the Lua registry */
+ lua_pushlightuserdata( L, (void*) &key_update );
+ lua_gettable( L, LUA_REGISTRYINDEX );
+- return luaL_checkint( L, -1 );
++ return luaL_checkinteger( L, -1 );
+ }
+
+ /** Manually update a dialog
+@@ -573,22 +573,22 @@ static int vlclua_create_widget_inner( l
+
+ /* Set common arguments: col, row, hspan, vspan, width, height */
+ if( lua_isnumber( L, arg ) )
+- p_widget->i_column = luaL_checkint( L, arg );
++ p_widget->i_column = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_row = luaL_checkint( L, arg );
++ p_widget->i_row = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_horiz_span = luaL_checkint( L, arg );
++ p_widget->i_horiz_span = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_vert_span = luaL_checkint( L, arg );
++ p_widget->i_vert_span = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_width = luaL_checkint( L, arg );
++ p_widget->i_width = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+ if( lua_isnumber( L, ++arg ) )
+- p_widget->i_height = luaL_checkint( L, arg );
++ p_widget->i_height = luaL_checkinteger( L, arg );
+ else goto end_of_args;
+
+ end_of_args:
+--- a/modules/lua/libs/io.c
++++ b/modules/lua/libs/io.c
+@@ -139,7 +139,7 @@ static int vlclua_io_file_seek( lua_Stat
+ const char* psz_mode = luaL_optstring( L, 2, NULL );
+ if ( psz_mode != NULL )
+ {
+- long i_offset = luaL_optlong( L, 3, 0 );
++ long i_offset = (long)luaL_optinteger( L, 3, 0 );
+ int i_mode;
+ if ( !strcmp( psz_mode, "set" ) )
+ i_mode = SEEK_SET;
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch
deleted file mode 100644
index 8e881d0935..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0003-use-am-path-libgcrypt.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-* The upstream tests for libgcrypt are awkward and not working.
- - Requires libgcrypt-config, which seems broken?
-* AM_PATH_LIBGCRYPT exists for a reason, why not use it? KISS.
-* Upstream abandoned AM_PATH_LIBGCRYPT in the past...newer automake ok?
-
-Upstream status: Pending
-
-Index: vlc-2.2.1/configure.ac
-===================================================================
---- vlc-2.2.1.orig/configure.ac
-+++ vlc-2.2.1/configure.ac
-@@ -4017,25 +4017,19 @@ PKG_ENABLE_MODULES_VLC([LIBXML2], [xml],
- dnl
- dnl libgcrypt
- dnl
-+GCRYPT_LIBVER=1
-+GCRYPT_REQ=1.1.94
- AC_ARG_ENABLE(libgcrypt,
- [ --disable-libgcrypt gcrypt support (default enabled)])
- AS_IF([test "${enable_libgcrypt}" != "no"], [
-- AC_CHECK_DECL([GCRYCTL_SET_THREAD_CBS], [
-- libgcrypt-config --version >/dev/null || \
-- AC_MSG_ERROR([gcrypt.h present but libgcrypt-config could not be found])
-- AC_CHECK_LIB(gcrypt, gcry_control, [
-- have_libgcrypt="yes"
-- GCRYPT_CFLAGS="`libgcrypt-config --cflags`"
-- GCRYPT_LIBS="`libgcrypt-config --libs`"
-- ], [
-- AC_MSG_ERROR([libgcrypt not found. Install libgcrypt or pass --disable-libgcrypt.])
-- ], [`libgcrypt-config --libs`])
-- ], [
-- AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or pass --disable-libgcrypt.])
-- ], [#include <gcrypt.h>]
-- )
-+ AM_PATH_LIBGCRYPT($GCRYPT_LIBVER:$GCRYPT_REQ,
-+ [
-+ GCRYPT_CFLAGS="$LIBGCRYPT_CFLAGS"
-+ GCRYPT_LIBS="$LIBGCRYPT_LIBS"
-+ ],[
-+ AC_MSG_ERROR([libgcrypt version 1.1.94 or higher not found. Install libgcrypt or use --disable-libgcrypt. Have a nice day.])
-+ ])
- ])
--
- AC_SUBST(GCRYPT_CFLAGS)
- AC_SUBST(GCRYPT_LIBS)
- AM_CONDITIONAL([HAVE_GCRYPT], [test "${have_libgcrypt}" = "yes"])
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
new file mode 100644
index 0000000000..b9f5ad591c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch
@@ -0,0 +1,57 @@
+From e8716a7755eef93e1033bb913e1eb4faee54658f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 15 Apr 2020 18:29:26 -0700
+Subject: [PATCH] Use packageconfig to detect mmal support
+
+This needs userland graphics libraries, because distros may install it
+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(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -3461,27 +3461,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
+- VLC_SAVE_FLAGS
+- LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif"
+- CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux"
+- AC_CHECK_HEADERS(interface/mmal/mmal.h,
+- [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [
+- have_mmal="yes"
+- VLC_ADD_PLUGIN([mmal])
+- VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ])
+- VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ])
+- VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [
+- AS_IF([test "${enable_mmal}" = "yes"],
+- [ AC_MSG_ERROR([Cannot find bcm library...]) ],
+- [ AC_MSG_WARN([Cannot find bcm library...]) ])
+- ],
+- [])
+- ] , [ AS_IF([test "${enable_mmal}" = "yes"],
+- [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ],
+- [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ])
+- VLC_RESTORE_FLAGS
++ PKG_CHECK_MODULES(BCMHOST, [bcm_host], [
++ HAVE_BCMHOST=yes
++ AC_DEFINE(HAVE_BCMHOST, 1, [Define this if you have have userlang graphics installed])
++ VLC_ADD_LIBS([bcmhost],[$BCMHOST_LIBS])
++ VLC_ADD_CFLAGS([bcmhost],[$BCMHOST_CFLAGS])
++ ],:
++ [AC_MSG_WARN([${BCMHOST_PKG_ERRORS}: userland graphics not available.])
++ HAVE_BCMHOST=no])
++
++ AC_CHECK_HEADERS(interface/mmal/mmal.h)
+ fi
+-AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"])
++AM_CONDITIONAL([HAVE_MMAL], [test "${have_bcmhost}" = "yes"])
+
+ dnl
+ dnl evas plugin
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch
deleted file mode 100644
index 53df1c6ebf..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-modules-gui-qt4-out-of-tree-build.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-* modules/gui/qt4/Makefile.am not B!=S friendly
-* Simple solution to missing directories in ${B}
-
-Upstream status: Pending
-
-Signed-off-by: Tim Orling <TicoTimo@gmail.com>
-
-Index: vlc-2.2.1/modules/gui/qt4/Makefile.am
-===================================================================
---- vlc-2.2.1.orig/modules/gui/qt4/Makefile.am
-+++ vlc-2.2.1/modules/gui/qt4/Makefile.am
-@@ -127,6 +127,7 @@ moc_verbose_0 = @echo " MOC " $@;
- moc_verbose__0 = $(moc_verbose_0)
-
- .hpp.moc.cpp:
-+ [ -d $(dir $@) ] || mkdir -p $(dir $@)
- $(moc_verbose)$(MOC) $(MOC_CPPFLAGS) -o $@ $<
-
- # These MOC files depend on the configure settings:
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..cbf4f2b911
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch
@@ -0,0 +1,47 @@
+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(+)
+
+diff --git a/modules/access/v4l2/lib.c b/modules/access/v4l2/lib.c
+index b212e1bc5f..ff7c66bf35 100644
+--- a/modules/access/v4l2/lib.c
++++ b/modules/access/v4l2/lib.c
+@@ -43,7 +43,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;
+diff --git a/modules/access/v4l2/v4l2.h b/modules/access/v4l2/v4l2.h
+index ac4562e269..727e83e9b1 100644
+--- a/modules/access/v4l2/v4l2.h
++++ b/modules/access/v4l2/v4l2.h
+@@ -23,7 +23,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);
+--
+2.39.2
+
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch
deleted file mode 100644
index 2d84ffd2f4..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-libpostproc-header-check.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-* Also look for postprocess.h under libpostproc/
-
-Upstream-status: Pending
-
-Index: vlc-2.1.4/configure.ac
-===================================================================
---- vlc-2.1.4.orig/configure.ac
-+++ vlc-2.1.4/configure.ac
-@@ -2444,7 +2444,7 @@ then
- VLC_SAVE_FLAGS
- CPPFLAGS="${CPPFLAGS} ${POSTPROC_CFLAGS}"
- CFLAGS="${CFLAGS} ${POSTPROC_CFLAGS}"
-- AC_CHECK_HEADERS(postproc/postprocess.h)
-+ AC_CHECK_HEADERS(postproc/postprocess.h,[],[AC_CHECK_HEADERS(libpostproc/postprocess.h)])
- VLC_ADD_PLUGIN([postproc])
- VLC_ADD_LIBS([postproc],[$POSTPROC_LIBS $AVUTIL_LIBS])
- VLC_ADD_CFLAGS([postproc],[$POSTPROC_CFLAGS $AVUTIL_CFLAGS])
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..4128db1aea
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch
@@ -0,0 +1,31 @@
+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(+)
+
+diff --git a/configure.ac b/configure.ac
+index 9f1c099e13..8e45a05808 100644
+--- 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
+--
+2.39.2
+
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch
deleted file mode 100644
index 950c09b8ae..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Recent opencv API changes break upstream filter and example.
-Make opencv explicitly configurable.
-
-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
- dnl
- dnl OpenCV wrapper and example filters
- dnl
--PKG_ENABLE_MODULES_VLC([OPENCV], [opencv_example opencv_wrapper], [opencv > 2.0], (OpenCV (computer vision) filter), [auto])
-+AC_ARG_ENABLE(opencv,
-+ [AS_HELP_STRING([--disable-opencv],
-+ [disable OpenCV computer vision filter and example (default auto)])])
-+if test "${enable_opencv}" != "no"
-+then
-+ PKG_ENABLE_MODULES_VLC([OPENCV],
-+ [opencv_example opencv_wrapper],
-+ [opencv > 2.0],
-+ (OpenCV (computer vision) filter), [auto])
-+fi
-
-
- dnl
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch
deleted file mode 100644
index d05cf02b71..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-* tremor provides libvorbisidec, use it instead of libvorbisdec
-
-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)
- 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)'
--libtremor_plugin_la_LIBADD = -lvorbisdec -logg
-+libtremor_plugin_la_LIBADD = -lvorbisidec -logg
- EXTRA_LTLIBRARIES += libtremor_plugin.la
- codec_LTLIBRARIES += $(LTLIBtremor)
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch
deleted file mode 100644
index 145e1ab821..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch
+++ /dev/null
@@ -1,279 +0,0 @@
-* luaL_checkint and luaL_optint were deprecated in lua 5.3
-* replacement functions are luaL_checkinteger and luaL_optinteger
-
-Upstream-status: Pending
-
-Signed-off-by: Tim Orling <TicoTimo@gmail.com>
-
-Index: vlc-2.2.1/modules/lua/demux.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/demux.c
-+++ vlc-2.2.1/modules/lua/demux.c
-@@ -52,7 +52,7 @@ struct demux_sys_t
- static int vlclua_demux_peek( lua_State *L )
- {
- demux_t *p_demux = (demux_t *)vlclua_get_this( L );
-- int n = luaL_checkint( L, 1 );
-+ int n = luaL_checkinteger( L, 1 );
- const uint8_t *p_peek;
-
- int i_peek = stream_Peek( p_demux->s, &p_peek, n );
-@@ -67,7 +67,7 @@ static int vlclua_demux_read( lua_State
- {
- demux_t *p_demux = (demux_t *)vlclua_get_this( L );
- const uint8_t *p_read;
-- int n = luaL_checkint( L, 1 );
-+ int n = luaL_checkinteger( L, 1 );
- int i_read = stream_Peek( p_demux->s, &p_read, n );
-
- if( i_read > 0 )
-Index: vlc-2.2.1/modules/lua/libs/configuration.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/configuration.c
-+++ vlc-2.2.1/modules/lua/libs/configuration.c
-@@ -84,7 +84,7 @@ static int vlclua_config_set( lua_State
- break;
-
- case VLC_VAR_INTEGER:
-- config_PutInt( p_this, psz_name, luaL_checkint( L, 2 ) );
-+ config_PutInt( p_this, psz_name, luaL_checkinteger( L, 2 ) );
- break;
-
- case VLC_VAR_BOOL:
-Index: vlc-2.2.1/modules/lua/libs/net.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/net.c
-+++ vlc-2.2.1/modules/lua/libs/net.c
-@@ -202,7 +202,7 @@ static int vlclua_net_listen_tcp( lua_St
- {
- vlc_object_t *p_this = vlclua_get_this( L );
- const char *psz_host = luaL_checkstring( L, 1 );
-- int i_port = luaL_checkint( L, 2 );
-+ int i_port = luaL_checkinteger( L, 2 );
- int *pi_fd = net_ListenTCP( p_this, psz_host, i_port );
- if( pi_fd == NULL )
- return luaL_error( L, "Cannot listen on %s:%d", psz_host, i_port );
-@@ -274,7 +274,7 @@ static int vlclua_net_connect_tcp( lua_S
- {
- vlc_object_t *p_this = vlclua_get_this( L );
- const char *psz_host = luaL_checkstring( L, 1 );
-- int i_port = luaL_checkint( L, 2 );
-+ int i_port = luaL_checkinteger( L, 2 );
- int i_fd = net_Connect( p_this, psz_host, i_port, SOCK_STREAM, IPPROTO_TCP );
- lua_pushinteger( L, vlclua_fd_map_safe( L, i_fd ) );
- return 1;
-@@ -282,26 +282,26 @@ static int vlclua_net_connect_tcp( lua_S
-
- static int vlclua_net_close( lua_State *L )
- {
-- int i_fd = luaL_checkint( L, 1 );
-+ int i_fd = luaL_checkinteger( L, 1 );
- vlclua_fd_unmap_safe( L, i_fd );
- return 0;
- }
-
- static int vlclua_net_send( lua_State *L )
- {
-- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
-+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
- size_t i_len;
- const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
-
-- i_len = luaL_optint( L, 3, i_len );
-+ i_len = luaL_optinteger( L, 3, i_len );
- lua_pushinteger( L, (fd != -1) ? send( fd, psz_buffer, i_len, 0 ) : -1 );
- return 1;
- }
-
- static int vlclua_net_recv( lua_State *L )
- {
-- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
-- size_t i_len = luaL_optint( L, 2, 1 );
-+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
-+ size_t i_len = luaL_optinteger( L, 2, 1 );
- char psz_buffer[i_len];
-
- ssize_t i_ret = (fd != -1) ? recv( fd, psz_buffer, i_len, 0 ) : -1;
-@@ -382,19 +382,19 @@ static int vlclua_fd_open( lua_State *L
- #ifndef _WIN32
- static int vlclua_fd_write( lua_State *L )
- {
-- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
-+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
- size_t i_len;
- const char *psz_buffer = luaL_checklstring( L, 2, &i_len );
-
-- i_len = luaL_optint( L, 3, i_len );
-+ i_len = luaL_optinteger( L, 3, i_len );
- lua_pushinteger( L, (fd != -1) ? write( fd, psz_buffer, i_len ) : -1 );
- return 1;
- }
-
- static int vlclua_fd_read( lua_State *L )
- {
-- int fd = vlclua_fd_get( L, luaL_checkint( L, 1 ) );
-- size_t i_len = luaL_optint( L, 2, 1 );
-+ int fd = vlclua_fd_get( L, luaL_checkinteger( L, 1 ) );
-+ size_t i_len = luaL_optinteger( L, 2, 1 );
- char psz_buffer[i_len];
-
- ssize_t i_ret = (fd != -1) ? read( fd, psz_buffer, i_len ) : -1;
-Index: vlc-2.2.1/modules/lua/libs/osd.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/osd.c
-+++ vlc-2.2.1/modules/lua/libs/osd.c
-@@ -67,7 +67,7 @@ static int vlclua_osd_icon( lua_State *L
- {
- const char *psz_icon = luaL_checkstring( L, 1 );
- int i_icon = vlc_osd_icon_from_string( psz_icon );
-- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL );
-+ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL );
- if( !i_icon )
- return luaL_error( L, "\"%s\" is not a valid osd icon.", psz_icon );
-
-@@ -114,9 +114,9 @@ static int vlc_osd_position_from_string(
- static int vlclua_osd_message( lua_State *L )
- {
- const char *psz_message = luaL_checkstring( L, 1 );
-- int i_chan = luaL_optint( L, 2, SPU_DEFAULT_CHANNEL );
-+ int i_chan = luaL_optinteger( L, 2, SPU_DEFAULT_CHANNEL );
- const char *psz_position = luaL_optstring( L, 3, "top-right" );
-- mtime_t duration = luaL_optint( L, 4, 1000000 );
-+ mtime_t duration = luaL_optinteger( L, 4, 1000000 );
-
- input_thread_t *p_input = vlclua_get_input_internal( L );
- if( p_input )
-@@ -154,10 +154,10 @@ static int vlc_osd_slider_type_from_stri
-
- static int vlclua_osd_slider( lua_State *L )
- {
-- int i_position = luaL_checkint( L, 1 );
-+ int i_position = luaL_checkinteger( L, 1 );
- const char *psz_type = luaL_checkstring( L, 2 );
- int i_type = vlc_osd_slider_type_from_string( psz_type );
-- int i_chan = luaL_optint( L, 3, SPU_DEFAULT_CHANNEL );
-+ int i_chan = luaL_optinteger( L, 3, SPU_DEFAULT_CHANNEL );
- if( !i_type )
- return luaL_error( L, "\"%s\" is not a valid slider type.",
- psz_type );
-@@ -198,7 +198,7 @@ static int vlclua_spu_channel_register(
-
- static int vlclua_spu_channel_clear( lua_State *L )
- {
-- int i_chan = luaL_checkint( L, 1 );
-+ int i_chan = luaL_checkinteger( L, 1 );
- input_thread_t *p_input = vlclua_get_input_internal( L );
- if( !p_input )
- return luaL_error( L, "Unable to find input." );
-Index: vlc-2.2.1/modules/lua/libs/playlist.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/playlist.c
-+++ vlc-2.2.1/modules/lua/libs/playlist.c
-@@ -69,7 +69,7 @@ static int vlclua_playlist_next( lua_Sta
-
- static int vlclua_playlist_skip( lua_State * L )
- {
-- int i_skip = luaL_checkint( L, 1 );
-+ int i_skip = luaL_checkinteger( L, 1 );
- playlist_t *p_playlist = vlclua_get_playlist_internal( L );
- playlist_Skip( p_playlist, i_skip );
- return 0;
-@@ -127,7 +127,7 @@ static int vlclua_playlist_random( lua_S
-
- static int vlclua_playlist_gotoitem( lua_State * L )
- {
-- int i_id = luaL_checkint( L, 1 );
-+ int i_id = luaL_checkinteger( L, 1 );
- playlist_t *p_playlist = vlclua_get_playlist_internal( L );
- PL_LOCK;
- int i_ret = playlist_Control( p_playlist, PLAYLIST_VIEWPLAY,
-@@ -139,7 +139,7 @@ static int vlclua_playlist_gotoitem( lua
-
- static int vlclua_playlist_delete( lua_State * L )
- {
-- int i_id = luaL_checkint( L, 1 );
-+ int i_id = luaL_checkinteger( L, 1 );
- playlist_t *p_playlist = vlclua_get_playlist_internal( L );
- PL_LOCK;
- playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_id );
-@@ -155,8 +155,8 @@ static int vlclua_playlist_delete( lua_S
-
- static int vlclua_playlist_move( lua_State * L )
- {
-- int i_item = luaL_checkint( L, 1 );
-- int i_target = luaL_checkint( L, 2 );
-+ int i_item = luaL_checkinteger( L, 1 );
-+ int i_target = luaL_checkinteger( L, 2 );
- playlist_t *p_playlist = vlclua_get_playlist_internal( L );
- PL_LOCK;
- playlist_item_t *p_item = playlist_ItemGetById( p_playlist, i_item );
-Index: vlc-2.2.1/modules/lua/libs/stream.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/stream.c
-+++ vlc-2.2.1/modules/lua/libs/stream.c
-@@ -101,7 +101,7 @@ static int vlclua_stream_read( lua_State
- {
- int i_read;
- stream_t **pp_stream = (stream_t **)luaL_checkudata( L, 1, "stream" );
-- int n = luaL_checkint( L, 2 );
-+ int n = luaL_checkinteger( L, 2 );
- uint8_t *p_read = malloc( n );
- if( !p_read ) return vlclua_error( L );
-
-Index: vlc-2.2.1/modules/lua/libs/variables.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/variables.c
-+++ vlc-2.2.1/modules/lua/libs/variables.c
-@@ -103,7 +103,7 @@ static int vlclua_tovalue( lua_State *L,
- val->b_bool = luaL_checkboolean( L, -1 );
- break;
- case VLC_VAR_INTEGER:
-- val->i_int = luaL_checkint( L, -1 );
-+ val->i_int = luaL_checkinteger( L, -1 );
- break;
- case VLC_VAR_STRING:
- val->psz_string = (char*)luaL_checkstring( L, -1 ); /* XXX: Beware, this only stays valid as long as (L,-1) stays in the stack */
-Index: vlc-2.2.1/modules/lua/libs/volume.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/volume.c
-+++ vlc-2.2.1/modules/lua/libs/volume.c
-@@ -48,7 +48,7 @@
- static int vlclua_volume_set( lua_State *L )
- {
- playlist_t *p_this = vlclua_get_playlist_internal( L );
-- int i_volume = luaL_checkint( L, 1 );
-+ int i_volume = luaL_checkinteger( L, 1 );
- if( i_volume < 0 )
- i_volume = 0;
- int i_ret = playlist_VolumeSet( p_this, i_volume/(float)AOUT_VOLUME_DEFAULT );
-@@ -68,7 +68,7 @@ static int vlclua_volume_up( lua_State *
- playlist_t *p_this = vlclua_get_playlist_internal( L );
- float volume;
-
-- playlist_VolumeUp( p_this, luaL_optint( L, 1, 1 ), &volume );
-+ playlist_VolumeUp( p_this, luaL_optinteger( L, 1, 1 ), &volume );
- lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) );
- return 1;
- }
-@@ -78,7 +78,7 @@ static int vlclua_volume_down( lua_State
- playlist_t *p_this = vlclua_get_playlist_internal( L );
- float volume;
-
-- playlist_VolumeDown( p_this, luaL_optint( L, 1, 1 ), &volume );
-+ playlist_VolumeDown( p_this, luaL_optinteger( L, 1, 1 ), &volume );
- lua_pushnumber( L, lroundf(volume * AOUT_VOLUME_DEFAULT) );
- return 1;
- }
-Index: vlc-2.2.1/modules/lua/libs/win.c
-===================================================================
---- vlc-2.2.1.orig/modules/lua/libs/win.c
-+++ vlc-2.2.1/modules/lua/libs/win.c
-@@ -123,7 +123,7 @@ static int vlclua_console_init( lua_Stat
-
- static int vlclua_console_wait( lua_State *L )
- {
-- int i_timeout = luaL_optint( L, 1, 0 );
-+ int i_timeout = luaL_optinteger( L, 1, 0 );
- DWORD status = WaitForSingleObject( GetConsole( L ), i_timeout );
- lua_pushboolean( L, status == WAIT_OBJECT_0 );
- return 1;
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch
deleted file mode 100644
index cb3ba71dd6..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch
+++ /dev/null
@@ -1,293 +0,0 @@
-From 427732a379893491eac27aeadff0e0b3e252d158 Mon Sep 17 00:00:00 2001
-From: Jean-Baptiste Kempf <jb@videolan.org>
-Date: Mon, 31 Aug 2015 08:19:00 +0200
-Subject: [PATCH] Avcodec/swscale: use AV_PIX_FMT consistently
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-(cherry picked from commit faa7bd357b1f9e07a6ffbc451a188773fad7a275)
-Signed-off-by: Rafaël Carré <funman@videolan.org>
-
-Conflicts:
- modules/codec/avcodec/chroma.c
- modules/codec/avcodec/video.c
----
- modules/codec/avcodec/chroma.c | 104 ++++++++++++++++++++---------------------
- modules/codec/avcodec/video.c | 10 ++--
- modules/video_chroma/swscale.c | 28 +++++------
- 3 files changed, 71 insertions(+), 71 deletions(-)
-
-diff --git a/modules/codec/avcodec/chroma.c b/modules/codec/avcodec/chroma.c
-index 393364b..c31f93d 100644
---- a/modules/codec/avcodec/chroma.c
-+++ b/modules/codec/avcodec/chroma.c
-@@ -62,77 +62,77 @@ static const struct
- } chroma_table[] =
- {
- /* Planar YUV formats */
-- {VLC_CODEC_I444, PIX_FMT_YUV444P, 0, 0, 0 },
-- {VLC_CODEC_J444, PIX_FMT_YUVJ444P, 0, 0, 0 },
--
-- {VLC_CODEC_I440, PIX_FMT_YUV440P, 0, 0, 0 },
-- {VLC_CODEC_J440, PIX_FMT_YUVJ440P, 0, 0, 0 },
--
-- {VLC_CODEC_I422, PIX_FMT_YUV422P, 0, 0, 0 },
-- {VLC_CODEC_J422, PIX_FMT_YUVJ422P, 0, 0, 0 },
--
-- {VLC_CODEC_I420, PIX_FMT_YUV420P, 0, 0, 0 },
-- {VLC_CODEC_YV12, PIX_FMT_YUV420P, 0, 0, 0 },
-- {VLC_FOURCC('I','Y','U','V'), PIX_FMT_YUV420P, 0, 0, 0 },
-- {VLC_CODEC_J420, PIX_FMT_YUVJ420P, 0, 0, 0 },
-- {VLC_CODEC_I411, PIX_FMT_YUV411P, 0, 0, 0 },
-- {VLC_CODEC_I410, PIX_FMT_YUV410P, 0, 0, 0 },
-- {VLC_FOURCC('Y','V','U','9'), PIX_FMT_YUV410P, 0, 0, 0 },
--
-- {VLC_FOURCC('N','V','1','2'), PIX_FMT_NV12, 0, 0, 0 },
-- {VLC_FOURCC('N','V','2','1'), PIX_FMT_NV21, 0, 0, 0 },
--
-- {VLC_CODEC_I420_9L, PIX_FMT_YUV420P9LE, 0, 0, 0 },
-- {VLC_CODEC_I420_9B, PIX_FMT_YUV420P9BE, 0, 0, 0 },
-- {VLC_CODEC_I420_10L, PIX_FMT_YUV420P10LE, 0, 0, 0 },
-- {VLC_CODEC_I420_10B, PIX_FMT_YUV420P10BE, 0, 0, 0 },
-+ {VLC_CODEC_I444, AV_PIX_FMT_YUV444P, 0, 0, 0 },
-+ {VLC_CODEC_J444, AV_PIX_FMT_YUVJ444P, 0, 0, 0 },
-+
-+ {VLC_CODEC_I440, AV_PIX_FMT_YUV440P, 0, 0, 0 },
-+ {VLC_CODEC_J440, AV_PIX_FMT_YUVJ440P, 0, 0, 0 },
-+
-+ {VLC_CODEC_I422, AV_PIX_FMT_YUV422P, 0, 0, 0 },
-+ {VLC_CODEC_J422, AV_PIX_FMT_YUVJ422P, 0, 0, 0 },
-+
-+ {VLC_CODEC_I420, AV_PIX_FMT_YUV420P, 0, 0, 0 },
-+ {VLC_CODEC_YV12, AV_PIX_FMT_YUV420P, 0, 0, 0 },
-+ {VLC_FOURCC('I','Y','U','V'), AV_PIX_FMT_YUV420P, 0, 0, 0 },
-+ {VLC_CODEC_J420, AV_PIX_FMT_YUVJ420P, 0, 0, 0 },
-+ {VLC_CODEC_I411, AV_PIX_FMT_YUV411P, 0, 0, 0 },
-+ {VLC_CODEC_I410, AV_PIX_FMT_YUV410P, 0, 0, 0 },
-+ {VLC_FOURCC('Y','V','U','9'), AV_PIX_FMT_YUV410P, 0, 0, 0 },
-+
-+ {VLC_FOURCC('N','V','1','2'), AV_PIX_FMT_NV12, 0, 0, 0 },
-+ {VLC_FOURCC('N','V','2','1'), AV_PIX_FMT_NV21, 0, 0, 0 },
-+
-+ {VLC_CODEC_I420_9L, AV_PIX_FMT_YUV420P9LE, 0, 0, 0 },
-+ {VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE, 0, 0, 0 },
-+ {VLC_CODEC_I420_10L, AV_PIX_FMT_YUV420P10LE, 0, 0, 0 },
-+ {VLC_CODEC_I420_10B, AV_PIX_FMT_YUV420P10BE, 0, 0, 0 },
- #if LIBAVUTIL_VERSION_INT >= AV_VERSION_INT(51,13,0)
-- {VLC_CODEC_I422_9L, PIX_FMT_YUV422P9LE, 0, 0, 0 },
-- {VLC_CODEC_I422_9B, PIX_FMT_YUV422P9BE, 0, 0, 0 },
-+ {VLC_CODEC_I422_9L, AV_PIX_FMT_YUV422P9LE, 0, 0, 0 },
-+ {VLC_CODEC_I422_9B, AV_PIX_FMT_YUV422P9BE, 0, 0, 0 },
- #endif
-- {VLC_CODEC_I422_10L, PIX_FMT_YUV422P10LE, 0, 0, 0 },
-- {VLC_CODEC_I422_10B, PIX_FMT_YUV422P10BE, 0, 0, 0 },
-+ {VLC_CODEC_I422_10L, AV_PIX_FMT_YUV422P10LE, 0, 0, 0 },
-+ {VLC_CODEC_I422_10B, AV_PIX_FMT_YUV422P10BE, 0, 0, 0 },
-
-- {VLC_CODEC_YUV420A, PIX_FMT_YUVA420P, 0, 0, 0 },
-+ {VLC_CODEC_YUV420A, AV_PIX_FMT_YUVA420P, 0, 0, 0 },
- #if LIBAVUTIL_VERSION_CHECK( 51, 45, 0, 74, 100 )
- {VLC_CODEC_YUV422A, AV_PIX_FMT_YUVA422P, 0, 0, 0 },
- #endif
-
-- {VLC_CODEC_I444_9L, PIX_FMT_YUV444P9LE, 0, 0, 0 },
-- {VLC_CODEC_I444_9B, PIX_FMT_YUV444P9BE, 0, 0, 0 },
-- {VLC_CODEC_I444_10L, PIX_FMT_YUV444P10LE, 0, 0, 0 },
-- {VLC_CODEC_I444_10B, PIX_FMT_YUV444P10BE, 0, 0, 0 },
-- {VLC_CODEC_I444_16L, PIX_FMT_YUV444P16LE, 0, 0, 0 },
-- {VLC_CODEC_I444_16B, PIX_FMT_YUV444P16BE, 0, 0, 0 },
-+ {VLC_CODEC_I444_9L, AV_PIX_FMT_YUV444P9LE, 0, 0, 0 },
-+ {VLC_CODEC_I444_9B, AV_PIX_FMT_YUV444P9BE, 0, 0, 0 },
-+ {VLC_CODEC_I444_10L, AV_PIX_FMT_YUV444P10LE, 0, 0, 0 },
-+ {VLC_CODEC_I444_10B, AV_PIX_FMT_YUV444P10BE, 0, 0, 0 },
-+ {VLC_CODEC_I444_16L, AV_PIX_FMT_YUV444P16LE, 0, 0, 0 },
-+ {VLC_CODEC_I444_16B, AV_PIX_FMT_YUV444P16BE, 0, 0, 0 },
-
- /* Packed YUV formats */
-- {VLC_CODEC_YUYV, PIX_FMT_YUYV422, 0, 0, 0 },
-- {VLC_FOURCC('Y','U','Y','V'), PIX_FMT_YUYV422, 0, 0, 0 },
-- {VLC_CODEC_UYVY, PIX_FMT_UYVY422, 0, 0, 0 },
-- {VLC_FOURCC('Y','4','1','1'), PIX_FMT_UYYVYY411, 0, 0, 0 },
-+ {VLC_CODEC_YUYV, AV_PIX_FMT_YUYV422, 0, 0, 0 },
-+ {VLC_FOURCC('Y','U','Y','V'), AV_PIX_FMT_YUYV422, 0, 0, 0 },
-+ {VLC_CODEC_UYVY, AV_PIX_FMT_UYVY422, 0, 0, 0 },
-+ {VLC_FOURCC('Y','4','1','1'), AV_PIX_FMT_UYYVYY411, 0, 0, 0 },
-
- /* Packed RGB formats */
-- VLC_RGB( VLC_FOURCC('R','G','B','4'), PIX_FMT_RGB4, PIX_FMT_BGR4, 0x10, 0x06, 0x01 )
-- VLC_RGB( VLC_FOURCC('R','G','B','8'), PIX_FMT_RGB8, PIX_FMT_BGR8, 0xC0, 0x38, 0x07 )
-+ VLC_RGB( VLC_FOURCC('R','G','B','4'), AV_PIX_FMT_RGB4, AV_PIX_FMT_BGR4, 0x10, 0x06, 0x01 )
-+ VLC_RGB( VLC_FOURCC('R','G','B','8'), AV_PIX_FMT_RGB8, AV_PIX_FMT_BGR8, 0xC0, 0x38, 0x07 )
-
-- VLC_RGB( VLC_CODEC_RGB15, PIX_FMT_RGB555, PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f )
-- VLC_RGB( VLC_CODEC_RGB16, PIX_FMT_RGB565, PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f )
-- VLC_RGB( VLC_CODEC_RGB24, PIX_FMT_BGR24, PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff )
-+ VLC_RGB( VLC_CODEC_RGB15, AV_PIX_FMT_RGB555, AV_PIX_FMT_BGR555, 0x7c00, 0x03e0, 0x001f )
-+ VLC_RGB( VLC_CODEC_RGB16, AV_PIX_FMT_RGB565, AV_PIX_FMT_BGR565, 0xf800, 0x07e0, 0x001f )
-+ VLC_RGB( VLC_CODEC_RGB24, AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24, 0xff0000, 0x00ff00, 0x0000ff )
-
-- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32, PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff )
-- VLC_RGB( VLC_CODEC_RGB32, PIX_FMT_RGB32_1, PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 )
-+ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32, AV_PIX_FMT_BGR32, 0x00ff0000, 0x0000ff00, 0x000000ff )
-+ VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_RGB32_1, AV_PIX_FMT_BGR32_1, 0xff000000, 0x00ff0000, 0x0000ff00 )
-
- #ifdef AV_PIX_FMT_0BGR32
- VLC_RGB( VLC_CODEC_RGB32, AV_PIX_FMT_0BGR32, AV_PIX_FMT_0RGB32, 0x000000ff, 0x0000ff00, 0x00ff0000 )
- #endif
-
-- {VLC_CODEC_RGBA, PIX_FMT_RGBA, 0, 0, 0 },
-- {VLC_CODEC_ARGB, PIX_FMT_ARGB, 0, 0, 0 },
-- {VLC_CODEC_BGRA, PIX_FMT_BGRA, 0, 0, 0 },
-- {VLC_CODEC_GREY, PIX_FMT_GRAY8, 0, 0, 0},
-+ {VLC_CODEC_RGBA, AV_PIX_FMT_RGBA, 0, 0, 0 },
-+ {VLC_CODEC_ARGB, AV_PIX_FMT_ARGB, 0, 0, 0 },
-+ {VLC_CODEC_BGRA, AV_PIX_FMT_BGRA, 0, 0, 0 },
-+ {VLC_CODEC_GREY, AV_PIX_FMT_GRAY8, 0, 0, 0},
-
- /* Paletized RGB */
-- {VLC_CODEC_RGBP, PIX_FMT_PAL8, 0, 0, 0},
-+ {VLC_CODEC_RGBP, AV_PIX_FMT_PAL8, 0, 0, 0},
-
- #if LIBAVUTIL_VERSION_CHECK(51, 42, 0, 74,100)
- {VLC_CODEC_GBR_PLANAR, AV_PIX_FMT_GBRP, 0, 0, 0 },
-@@ -201,5 +201,5 @@ int FindFfmpegChroma( vlc_fourcc_t fourcc )
- for( int i = 0; chroma_table[i].i_chroma != 0; i++ )
- if( chroma_table[i].i_chroma == fourcc )
- return chroma_table[i].i_chroma_id;
-- return PIX_FMT_NONE;
-+ return AV_PIX_FMT_NONE;
- }
-diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
-index c115db9..ae600e8 100644
---- a/modules/codec/avcodec/video.c
-+++ b/modules/codec/avcodec/video.c
-@@ -1004,7 +1004,7 @@ static picture_t *lavc_dr_GetFrame(struct AVCodecContext *ctx,
- if (GetVlcChroma(&dec->fmt_out.video, ctx->pix_fmt) != VLC_SUCCESS)
- return NULL;
- dec->fmt_out.i_codec = dec->fmt_out.video.i_chroma;
-- if (ctx->pix_fmt == PIX_FMT_PAL8)
-+ if (ctx->pix_fmt == AV_PIX_FMT_PAL8)
- return NULL;
-
- int width = frame->width;
-@@ -1180,7 +1180,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context)
- if (GetVlcChroma(&p_dec->fmt_out.video, p_context->pix_fmt) != VLC_SUCCESS)
- goto no_dr;
-
-- if (p_context->pix_fmt == PIX_FMT_PAL8)
-+ if (p_context->pix_fmt == AV_PIX_FMT_PAL8)
- goto no_dr;
-
- p_dec->fmt_out.i_codec = p_dec->fmt_out.video.i_chroma;
-@@ -1215,7 +1215,7 @@ static picture_t *ffmpeg_dr_GetFrameBuf(struct AVCodecContext *p_context)
- goto no_dr;
- }
-
-- if( p_context->pix_fmt == PIX_FMT_YUV422P )
-+ if( p_context->pix_fmt == AV_PIX_FMT_YUV422P )
- {
- if( 2 * p_pic->p[1].i_pitch != p_pic->p[0].i_pitch ||
- 2 * p_pic->p[2].i_pitch != p_pic->p[0].i_pitch )
-@@ -1325,7 +1325,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
-
- /* Enumerate available formats */
- bool can_hwaccel = false;
-- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ )
-+ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ )
- {
- const AVPixFmtDescriptor *dsc = av_pix_fmt_desc_get(pi_fmt[i]);
- if (dsc == NULL)
-@@ -1352,7 +1352,7 @@ static enum PixelFormat ffmpeg_GetFormat( AVCodecContext *p_context,
- if( p_va == NULL )
- goto end;
-
-- for( size_t i = 0; pi_fmt[i] != PIX_FMT_NONE; i++ )
-+ for( size_t i = 0; pi_fmt[i] != AV_PIX_FMT_NONE; i++ )
- {
- if( p_va->pix_fmt != pi_fmt[i] )
- continue;
-diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c
-index 569e0f5..4e0ecf1 100644
---- a/modules/video_chroma/swscale.c
-+++ b/modules/video_chroma/swscale.c
-@@ -257,35 +257,35 @@ static void FixParameters( int *pi_fmt, bool *pb_has_a, bool *pb_swap_uv, vlc_fo
- switch( fmt )
- {
- case VLC_CODEC_YUV422A:
-- *pi_fmt = PIX_FMT_YUV422P;
-+ *pi_fmt = AV_PIX_FMT_YUV422P;
- *pb_has_a = true;
- break;
- case VLC_CODEC_YUV420A:
-- *pi_fmt = PIX_FMT_YUV420P;
-+ *pi_fmt = AV_PIX_FMT_YUV420P;
- *pb_has_a = true;
- break;
- case VLC_CODEC_YUVA:
-- *pi_fmt = PIX_FMT_YUV444P;
-+ *pi_fmt = AV_PIX_FMT_YUV444P;
- *pb_has_a = true;
- break;
- case VLC_CODEC_RGBA:
-- *pi_fmt = PIX_FMT_BGR32;
-+ *pi_fmt = AV_PIX_FMT_BGR32;
- *pb_has_a = true;
- break;
- case VLC_CODEC_ARGB:
-- *pi_fmt = PIX_FMT_BGR32_1;
-+ *pi_fmt = AV_PIX_FMT_BGR32_1;
- *pb_has_a = true;
- break;
- case VLC_CODEC_BGRA:
-- *pi_fmt = PIX_FMT_RGB32;
-+ *pi_fmt = AV_PIX_FMT_RGB32;
- *pb_has_a = true;
- break;
- case VLC_CODEC_YV12:
-- *pi_fmt = PIX_FMT_YUV420P;
-+ *pi_fmt = AV_PIX_FMT_YUV420P;
- *pb_swap_uv = true;
- break;
- case VLC_CODEC_YV9:
-- *pi_fmt = PIX_FMT_YUV410P;
-+ *pi_fmt = AV_PIX_FMT_YUV410P;
- *pb_swap_uv = true;
- break;
- default:
-@@ -314,7 +314,7 @@ static int GetParameters( ScalerConfiguration *p_cfg,
- {
- if( p_fmti->i_chroma == VLC_CODEC_YUVP && ALLOW_YUVP )
- {
-- i_fmti = i_fmto = PIX_FMT_GRAY8;
-+ i_fmti = i_fmto = AV_PIX_FMT_GRAY8;
- i_sws_flags = SWS_POINT;
- }
- }
-@@ -327,9 +327,9 @@ static int GetParameters( ScalerConfiguration *p_cfg,
- * Without SWS_ACCURATE_RND the quality is really bad for some conversions */
- switch( i_fmto )
- {
-- case PIX_FMT_ARGB:
-- case PIX_FMT_RGBA:
-- case PIX_FMT_ABGR:
-+ case AV_PIX_FMT_ARGB:
-+ case AV_PIX_FMT_RGBA:
-+ case AV_PIX_FMT_ABGR:
- i_sws_flags |= SWS_ACCURATE_RND;
- break;
- }
-@@ -403,8 +403,8 @@ static int Init( filter_t *p_filter )
- const unsigned i_fmto_visible_width = p_fmto->i_visible_width * p_sys->i_extend_factor;
- for( int n = 0; n < (cfg.b_has_a ? 2 : 1); n++ )
- {
-- const int i_fmti = n == 0 ? cfg.i_fmti : PIX_FMT_GRAY8;
-- const int i_fmto = n == 0 ? cfg.i_fmto : PIX_FMT_GRAY8;
-+ const int i_fmti = n == 0 ? cfg.i_fmti : AV_PIX_FMT_GRAY8;
-+ const int i_fmto = n == 0 ? cfg.i_fmto : AV_PIX_FMT_GRAY8;
- struct SwsContext *ctx;
-
- ctx = sws_getContext( i_fmti_visible_width, p_fmti->i_visible_height, i_fmti,
---
-2.5.0
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch
deleted file mode 100644
index 56744e7de8..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc/0010-SWSCALE-fix-compilation-with-4.x.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 6fa8a4a9bb64ff34328aae46acd600f8502b2c05 Mon Sep 17 00:00:00 2001
-From: Jean-Baptiste Kempf <jb@videolan.org>
-Date: Mon, 31 Aug 2015 09:07:39 +0200
-Subject: [PATCH] SWSCALE: fix compilation with 4.x
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-(cherry picked from commit 2b23857c68622edda76b72b74aeb3d943ee277c9)
-Signed-off-by: Rafaël Carré <funman@videolan.org>
----
- modules/video_chroma/swscale.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/modules/video_chroma/swscale.c b/modules/video_chroma/swscale.c
-index 4e0ecf1..26d0d6f 100644
---- a/modules/video_chroma/swscale.c
-+++ b/modules/video_chroma/swscale.c
-@@ -36,6 +36,7 @@
- #include <vlc_cpu.h>
-
- #include <libswscale/swscale.h>
-+#include <libswscale/version.h>
-
- #ifdef __APPLE__
- # include <TargetConditionals.h>
-@@ -235,6 +236,7 @@ static int GetSwsCpuMask(void)
- {
- int i_sws_cpu = 0;
-
-+#if LIBSWSCALE_VERSION_MAJOR < 4
- #if defined(__i386__) || defined(__x86_64__)
- if( vlc_CPU_MMX() )
- i_sws_cpu |= SWS_CPU_CAPS_MMX;
-@@ -248,6 +250,7 @@ static int GetSwsCpuMask(void)
- if( vlc_CPU_ALTIVEC() )
- i_sws_cpu |= SWS_CPU_CAPS_ALTIVEC;
- #endif
-+#endif
-
- return i_sws_cpu;
- }
---
-2.5.0
-
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb
deleted file mode 100644
index b5be04cb91..0000000000
--- a/meta-multimedia/recipes-multimedia/vlc/vlc_2.2.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require ${BPN}.inc
-
-# work around build failure
-EXTRA_OECONF += " --enable-libxml2=no"
-
-SRC_URI += "file://0001-enable-subdir-objects.patch \
- file://0002-glibc-does-not-provide-strlcpy.patch \
- file://0003-use-am-path-libgcrypt.patch \
- file://0004-modules-gui-qt4-out-of-tree-build.patch \
- file://0005-libpostproc-header-check.patch \
- file://0006-make-opencv-configurable.patch \
- file://0007-use-vorbisidec.patch \
- file://0008-fix-luaL-checkint.patch \
- file://0009-Avcodec-swscale-use-AV_PIX_FMT-consistently.patch \
- file://0010-SWSCALE-fix-compilation-with-4.x.patch \
-"
-
-SRC_URI[md5sum] = "f98d60f0f59ef72b6e3407f2ff09bda6"
-SRC_URI[sha256sum] = "9ad23128be16f9b40ed772961272cb0748ed8e4aa1bc79c129e589feebea5fb5"
diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb
new file mode 100644
index 0000000000..92f05544dd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.18.bb
@@ -0,0 +1,134 @@
+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-ioctl-does-not-have-same-signature-between-glibc-and.patch \
+ file://0006-configure-Disable-incompatible-function-pointer-type.patch \
+"
+SRCREV = "e9eceaed4d838dbd84638bfb2e4bdd08294163b1"
+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
+ 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/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch
deleted file mode 100644
index b623dbf37e..0000000000
--- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Upstream-Status: Backport
-
-Backport patch to fix CVE-2015-6749 from:
-
-https://trac.xiph.org/ticket/2212
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 04815d3e1bfae3a6cdfb2c25358a5a72b61299f7 Mon Sep 17 00:00:00 2001
-From: Mark Harris <mark.hsj@gmail.com>
-Date: Sun, 30 Aug 2015 05:54:46 -0700
-Subject: [PATCH] oggenc: Fix large alloca on bad AIFF input
-
-Fixes #2212
----
- oggenc/audio.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/oggenc/audio.c b/oggenc/audio.c
-index 477da8c..4921fb9 100644
---- a/oggenc/audio.c
-+++ b/oggenc/audio.c
-@@ -245,8 +245,8 @@ static int aiff_permute_matrix[6][6] =
- int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen)
- {
- int aifc; /* AIFC or AIFF? */
-- unsigned int len;
-- unsigned char *buffer;
-+ unsigned int len, readlen;
-+ unsigned char buffer[22];
- unsigned char buf2[8];
- aiff_fmt format;
- aifffile *aiff = malloc(sizeof(aifffile));
-@@ -269,9 +269,9 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen)
- return 0; /* Weird common chunk */
- }
-
-- buffer = alloca(len);
--
-- if(fread(buffer,1,len,in) < len)
-+ readlen = len < sizeof(buffer) ? len : sizeof(buffer);
-+ if(fread(buffer,1,readlen,in) < readlen ||
-+ (len > readlen && !seek_forward(in, len-readlen)))
- {
- fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n"));
- return 0;
---
-2.5.0
-
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch
new file mode 100644
index 0000000000..36a31a85cd
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch
@@ -0,0 +1,27 @@
+From 8c10181547c93438fc10f753e7164ee004add6d1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 27 Aug 2022 10:28:47 -0700
+Subject: [PATCH] ogginfo: Include utf8.h for missing utf8_decode
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ogginfo/codec_skeleton.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ogginfo/codec_skeleton.c b/ogginfo/codec_skeleton.c
+index a27f8da..3ac13f6 100644
+--- a/ogginfo/codec_skeleton.c
++++ b/ogginfo/codec_skeleton.c
+@@ -25,6 +25,7 @@
+ #include <ogg/ogg.h>
+
+ #include "i18n.h"
++#include "utf8.h" /* utf8_decode */
+
+ #include "private.h"
+
+--
+2.37.2
+
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch
deleted file mode 100644
index 111e98ac1f..0000000000
--- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From: Petter Reinholdtsen <pere@hungry.com>
-Date: Wed, 22 Oct 2014 13:25:21 +0200
-Subject: Fix format error blocking compilation with hardening
-
-Last-Update: 2014-10-22
-Forwarded: no
-
-Enabling hardening refuses to compile code with sprintf() calls
-with no formatting string. Adjust the code to work with hardening.
----
- ogg123/status.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ogg123/status.c b/ogg123/status.c
-index 92b8ff1..ccec389 100644
---- a/ogg123/status.c
-+++ b/ogg123/status.c
-@@ -148,7 +148,7 @@ int print_statistics_line (stat_format_t stats[])
-
- switch (stats->type) {
- case stat_noarg:
-- len += sprintf(str+len, stats->formatstr);
-+ len += sprintf(str+len, "%s", stats->formatstr);
- break;
- case stat_intarg:
- len += sprintf(str+len, stats->formatstr, stats->arg.intarg);
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch
new file mode 100644
index 0000000000..dd03fa9524
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch
@@ -0,0 +1,37 @@
+Fix build with gettext 0.20.x
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
+--- a/configure.ac
++++ b/configure.ac
+@@ -34,7 +34,7 @@
+ AC_PROG_LIBTOOL
+
+ ALL_LINGUAS="be cs da en_GB eo es fr hr hu nl pl ro ru sk sv uk vi"
+-AM_GNU_GETTEXT
++AM_GNU_GETTEXT([external])
+
+ dnl --------------------------------------------------
+ dnl System checks
+@@ -397,7 +397,6 @@
+ Makefile
+ m4/Makefile
+ po/Makefile.in
+-intl/Makefile
+ include/Makefile
+ share/Makefile
+ win32/Makefile
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,8 +2,8 @@
+
+ AUTOMAKE_OPTIONS = foreign dist-zip
+
+-SUBDIRS = po intl include share win32 @OPT_SUBDIRS@
+-DIST_SUBDIRS = po intl include share win32 ogg123 oggenc oggdec ogginfo \
++SUBDIRS = po include share win32 @OPT_SUBDIRS@
++DIST_SUBDIRS = po include share win32 ogg123 oggenc oggdec ogginfo \
+ vcut vorbiscomment m4
+
+ EXTRA_DIST = config.rpath README AUTHORS COPYING CHANGES
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb
deleted file mode 100644
index e43cb40329..0000000000
--- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Vorbis Tools"
-DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
-that is free of intellectual property restrictions. vorbis-tools \
-include some command line applications to use the libraries."
-HOMEPAGE = "http://www.vorbis.com/"
-BUGTRACKER = "https://trac.xiph.org"
-SECTION = "multimedia"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "libogg libvorbis curl libao"
-
-SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \
- file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \
- file://0004-Fix-format-error-blocking-compilation-with-hardening.patch \
- "
-
-SRC_URI[md5sum] = "567e0fb8d321b2cd7124f8208b8b90e6"
-SRC_URI[sha256sum] = "a389395baa43f8e5a796c99daf62397e435a7e73531c9f44d9084055a05d22bc"
-
-inherit autotools pkgconfig gettext
-
-PACKAGECONFIG ??= "flac"
-PACKAGECONFIG[flac] = ",--without-flac,flac,libflac"
-PACKAGECONFIG[speex] = ",--without-speex,speex,speex"
diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb
new file mode 100644
index 0000000000..61a4aedb85
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Vorbis Tools"
+DESCRIPTION = "Ogg Vorbis is a high-quality lossy audio codec \
+that is free of intellectual property restrictions. vorbis-tools \
+include some command line applications to use the libraries."
+HOMEPAGE = "http://www.vorbis.com/"
+BUGTRACKER = "https://trac.xiph.org"
+SECTION = "multimedia"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libogg libvorbis"
+
+SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \
+ file://gettext.patch \
+ file://0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch \
+ "
+
+SRC_URI[md5sum] = "998fca293bd4e4bdc2b96fb70f952f4e"
+SRC_URI[sha256sum] = "db7774ec2bf2c939b139452183669be84fda5774d6400fc57fde37f77624f0b0"
+
+inherit autotools pkgconfig gettext
+
+PACKAGECONFIG ??= "flac ogg123"
+PACKAGECONFIG[flac] = ",--without-flac,flac,libflac"
+PACKAGECONFIG[speex] = ",--without-speex,speex,speex"
+PACKAGECONFIG[ogg123] = "--enable-ogg123,--disable-ogg123,libao curl"
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch
deleted file mode 100644
index 7668df35d7..0000000000
--- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 4945dca11bc4ddec60bd858f45212dc8f39638e0 Mon Sep 17 00:00:00 2001
-From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
-Date: Tue, 5 Jul 2016 18:07:45 -0400
-Subject: [PATCH 1/6] build: Protect against unsupported CPU types
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
-Upstream-Status: Accepted [expected in 0.4]
----
- configure.ac | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6f9553b..f5304b8 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -70,8 +70,9 @@ AS_CASE(["${host_cpu}"],
- [
- HAVE_ARM=1
- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM"
-- ]
-+ ],
- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines
-+ [AC_MSG_ERROR([Unsupported CPU type $host_cpu])]
- )
- AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"])
- AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"])
---
-2.11.0
-
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch
deleted file mode 100644
index 2e202b03c1..0000000000
--- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b5bda3431159b6505dcd069641c863018c4d4309 Mon Sep 17 00:00:00 2001
-From: Nicolas Dufresne <nicolas.dufresne@collabora.com>
-Date: Wed, 6 Jul 2016 15:18:15 -0400
-Subject: [PATCH 2/6] build: Add ARM 64bit support
-
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
-Upstream-Status: Accepted [expected in 0.4]
----
- configure.ac | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index f5304b8..be20514 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -71,6 +71,11 @@ AS_CASE(["${host_cpu}"],
- HAVE_ARM=1
- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM"
- ],
-+ [aarch64*],
-+ [
-+ HAVE_NEON=1
-+ ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"
-+ ],
- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines
- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])]
- )
---
-2.11.0
-
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch
deleted file mode 100644
index 82e270fac1..0000000000
--- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 7722fb8a3189fea0f6381f02a0e4f63c847f0393 Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Date: Sat, 6 Aug 2016 11:02:43 +0200
-Subject: [PATCH 3/6] build: fix architecture detection
-
-The current architecture detection, based on the "host_cpu" part of the
-tuple does not work properly for a number of reason:
-
- - The code assumes that if host_cpu starts with "arm" then ARM
- instructions are available, which is incorrect. Indeed, Cortex-M
- platforms can run Linux, they are ARM platforms (so host_cpu = arm),
- but they don't support ARM instructions: they support only the
- Thumb-2 instruction set.
-
- - The armv7 case is also not very useful, as it is not standard at all
- to pass armv7 as host_cpu even if the host system is actually ARMv7
- based.
-
- - For the same reason, the armv8 case is not very useful: ARMv8 is
- AArch64, and there is already a separate case to handle this
- architecture.
-
-So, this commit moves away from a host_cpu based logic, and instead
-tests using AC_CHECK_DECLS() the built-in definitions of the compiler:
-
- - If we have __ARM_ARCH_ISA_ARM defined, then it's an ARM processor
- that supports the ARM instruction set (this allows to exclude Thumb-2
- only processors).
-
- - If we have __ARM_ARCH_7A__, then we have an ARMv7-A processor, and
- we can enable the corresponding optimizations
-
- - Same for __aarch64__, __i386__ and __x86_64__.
-
-In addition, we remove the AC_MSG_ERROR() that makes the build fail for
-all architectures but the ones that are explicitly supported. Indeed,
-webrtc-audio-processing builds just fine for other architectures (tested
-on MIPS), it's just that none of the architecture-specific optimizations
-will be used.
-
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-Signed-off-by: Tanu Kaskinen <tanuk@iki.fi>
-Upstream-Status: Accepted [expected in 0.4]
----
- configure.ac | 35 +++++++++++------------------------
- 1 file changed, 11 insertions(+), 24 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index be20514..e898014 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -55,30 +55,17 @@ AS_CASE(["${host}"],
- )
- AC_SUBST(PLATFORM_CFLAGS)
-
--AS_CASE(["${host_cpu}"],
-- [i?86|x86_64],
-- [
-- HAVE_X86=1
-- ],
-- [armv7*|armv8*],
-- [
-- HAVE_ARM=1
-- HAVE_ARMV7=1
-- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7"
-- ],
-- [arm*],
-- [
-- HAVE_ARM=1
-- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM"
-- ],
-- [aarch64*],
-- [
-- HAVE_NEON=1
-- ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"
-- ],
-- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines
-- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])]
--)
-+# Testing __ARM_ARCH_ISA_ARM since the code contains ARM instructions,
-+# which don't work on Thumb-2 only platforms (ARMv7-M).
-+AC_CHECK_DECLS([__ARM_ARCH_ISA_ARM],
-+ [HAVE_ARM=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM"])
-+AC_CHECK_DECLS([__ARM_ARCH_7A__],
-+ [HAVE_ARMV7=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM_V7"])
-+AC_CHECK_DECLS([__aarch64__],
-+ [HAVE_NEON=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"])
-+AC_CHECK_DECLS([__i386__], [HAVE_X86=1])
-+AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1])
-+
- AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"])
- AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"])
- AM_CONDITIONAL(HAVE_ARMV7, [test "x${HAVE_ARMV7}" = "x1"])
---
-2.11.0
-
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/riscv_support.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/riscv_support.patch
new file mode 100644
index 0000000000..576b9860a8
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/riscv_support.patch
@@ -0,0 +1,33 @@
+Add support for RISC-V
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/webrtc/base/basictypes.h
++++ b/webrtc/base/basictypes.h
+@@ -29,6 +29,10 @@
+ #define CPU_ARM 1
+ #endif
+
++#if defined(__riscv) || defined(_M_RISCV)
++#define CPU_RISCV 1
++#endif
++
+ #if defined(CPU_X86) && defined(CPU_ARM)
+ #error CPU_X86 and CPU_ARM both defined.
+ #endif
+--- a/webrtc/typedefs.h
++++ b/webrtc/typedefs.h
+@@ -56,6 +56,13 @@
+ #elif defined(__powerpc__)
+ #define WEBRTC_ARCH_32_BITS
+ #define WEBRTC_ARCH_BIG_ENDIAN
++#elif defined(__riscv)
++#if __riscv_xlen == 64
++# define WEBRTC_ARCH_64_BITS
++#else
++# define WEBRTC_ARCH_32_BITS
++#endif
++#define WEBRTC_ARCH_LITTLE_ENDIAN
+ #elif defined(__pnacl__)
+ #define WEBRTC_ARCH_32_BITS
+ #define WEBRTC_ARCH_LITTLE_ENDIAN
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb
new file mode 100644
index 0000000000..6e56c4409c
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Audio processing bits of the WebRTC reference implementation"
+HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/"
+SECTION = "audio"
+
+DEPENDS:append:libc-musl = " libexecinfo"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \
+ file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \
+"
+
+SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \
+ file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \
+ file://0005-typedefs.h-add-support-for-PowerPC.patch \
+ file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \
+ file://riscv_support.patch \
+"
+
+SRC_URI[md5sum] = "6e10724ca34bcbc715a4c208273acb0c"
+SRC_URI[sha256sum] = "a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf"
+
+LDFLAGS:append:libc-musl = " -lexecinfo"
+inherit autotools pkgconfig
diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb
deleted file mode 100644
index 2b0f7c6840..0000000000
--- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION = "Audio processing bits of the WebRTC reference implementation"
-HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/"
-SECTION = "audio"
-
-DEPENDS_append_libc-musl = " libexecinfo"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \
- file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \
-"
-
-# Note that patch 3 effectively reverts patches 1 and 2. The only reason
-# why patches 1 and 2 are included is that otherwise patch 3 wouldn't
-# apply cleanly.
-SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \
- file://0001-build-Protect-against-unsupported-CPU-types.patch \
- file://0002-build-Add-ARM-64bit-support.patch \
- file://0003-build-fix-architecture-detection.patch \
- file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \
- file://0005-typedefs.h-add-support-for-PowerPC.patch \
- file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \
-"
-
-SRC_URI[md5sum] = "336ae032f608e65808ac577cde0ab72c"
-SRC_URI[sha256sum] = "756e291d4f557d88cd50c4fe3b8454ec238362d22cedb3e6173240d90f0a80fa"
-
-LDFLAGS_append_libc-musl = " -lexecinfo"
-inherit autotools
diff --git a/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua b/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua
new file mode 100644
index 0000000000..353a49c0b5
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua
@@ -0,0 +1,5 @@
+-- These features require a session DBus instance, which is not available
+-- by default in OE generated images. The absence of such a DBus instance
+-- causes WirePlumber to fail to start. Turn these off to prevent that.
+alsa_monitor.properties["alsa.reserve"] = false
+default_access.properties["enable-flatpak-portal"] = false
diff --git a/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.14.bb b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.14.bb
new file mode 100644
index 0000000000..6f93b443d2
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.14.bb
@@ -0,0 +1,146 @@
+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 = "6d0c7f7b7f484b3cd2aaf2e2b3cc902c095b4946"
+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.4"
+
+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}"
+
+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
new file mode 100644
index 0000000000..250af58e17
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "H.265/HEVC video encoder"
+DESCRIPTION = "A free software library and application for encoding video streams into the H.265/HEVC format."
+HOMEPAGE = "http://www.videolan.org/developers/x265.html"
+
+LICENSE = "GPL-2.0-only"
+LICENSE_FLAGS = "commercial"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=c9e0427bc58f129f99728c62d4ad4091"
+
+DEPENDS = "nasm-native gnutls zlib libpcre"
+
+SRC_URI = "http://ftp.videolan.org/pub/videolan/x265/x265_${PV}.tar.gz"
+
+S = "${WORKDIR}/x265_${PV}/source"
+
+SRC_URI[md5sum] = "94808045a34d88a857e5eaf3f68f4bca"
+SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b58cbbcc"
+
+inherit lib_package pkgconfig cmake
+
+do_generate_toolchain_file:append() {
+ echo "set(CMAKE_ASM_NASM_FLAGS --debug-prefix-map ${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR})" >> ${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|aarch64).*-linux'
diff --git a/meta-multimedia/recipes-support/crossguid/crossguid.bb b/meta-multimedia/recipes-support/crossguid/crossguid.bb
deleted file mode 100644
index 228b8b6540..0000000000
--- a/meta-multimedia/recipes-support/crossguid/crossguid.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-DESCRIPTION = "Lightweight cross platform C++ GUID/UUID library"
-HOMEPAGE = "https://github.com/graeme-hill/crossguid"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1373274bc8d8001edc54933919f36f68"
-DEPENDS += "util-linux"
-
-PV = "0.0+git${SRCPV}"
-
-SRCREV = "b56957ac453575e91ca1b63a80c0077c2b0d011a"
-SRC_URI = "git://github.com/graeme-hill/crossguid;protocol=https"
-
-S = "${WORKDIR}/git"
-
-do_compile() {
- ${CXX} -c guid.cpp -o guid.o ${CXXFLAGS} -std=c++11 -DGUID_LIBUUID
- ${AR} rvs libcrossguid.a guid.o
-}
-
-do_install() {
- install -D -m 0644 ${B}/libcrossguid.a ${D}${libdir}/libcrossguid.a
- install -D -m 0644 ${S}/guid.h ${D}${includedir}/guid.h
-}
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
new file mode 100644
index 0000000000..58b049bb4f
--- /dev/null
+++ b/meta-multimedia/recipes-support/crossguid/crossguid_0.2.2.bb
@@ -0,0 +1,17 @@
+# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Lightweight cross platform C++ GUID/UUID library"
+HOMEPAGE = "https://github.com/graeme-hill/crossguid"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1373274bc8d8001edc54933919f36f68"
+DEPENDS += "util-linux"
+
+SRCREV = "ca1bf4b810e2d188d04cb6286f957008ee1b7681"
+SRC_URI = "git://github.com/graeme-hill/crossguid;protocol=https;branch=master \
+ file://0001-include-missing-cstdint.patch"
+
+S = "${WORKDIR}/git"
+
+inherit 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 feffa9fe19..8f0ad65120 100644
--- a/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
+++ b/meta-multimedia/recipes-support/gst-instruments/gst-instruments_git.bb
@@ -2,19 +2,22 @@ SUMMARY = "Profiling utilities for GStreamer 1.0 pipelines"
HOMEPAGE = "https://github.com/kirushyk/gst-instruments"
SECTION = "multimedia"
-LICENSE = "LGPL-3.0"
+LICENSE = "LGPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
DEPENDS = "gstreamer1.0"
+SRCREV = "cb8977a6711657e32853159cd539d1d75fcbc772"
+PV = "0.3.1+git${SRCPV}"
+
+SRC_URI = "git://github.com/kirushyk/gst-instruments.git;protocol=https;branch=master"
S = "${WORKDIR}/git"
-SRCREV = "3b862e52e5c53ad1023dc6808effa4cb75572c4b"
-SRC_URI = "git://github.com/kirushyk/gst-instruments.git;protocol=https;"
-FILES_${PN}-staticdev += "${libdir}/gstreamer-1.0/*a"
-FILES_${PN} += "${libdir}/*"
+inherit vala meson pkgconfig
-INSANE_SKIP_${PN} = "dev-so"
+FILES:${PN}-staticdev += "${libdir}/gstreamer-1.0/*a"
+FILES:${PN} += "${libdir}/*"
-inherit autotools pkgconfig
+INSANE_SKIP:${PN}-dev = "dev-elf"
+PACKAGECONFIG ??= "ui"
+PACKAGECONFIG[ui] = "-Dui=enabled,-Dui=disabled,gtk+3"
diff --git a/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb b/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb
deleted file mode 100644
index 44f135a216..0000000000
--- a/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require libmediaart.inc
-
-SRC_URI = "${GNOME_MIRROR}/libmediaart/1.9/libmediaart-${PV}.tar.xz"
-SRC_URI[md5sum] = "0b65d64398d2f3dff89534c9dfffab4f"
-SRC_URI[sha256sum] = "94668adb29d4dc3115b0fd105942ebd5ca6f5f9dbb2afa8a191a73a747dd506f"
-
-S = "${WORKDIR}/libmediaart-${PV}"
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
new file mode 100644
index 0000000000..ad42e27278
--- /dev/null
+++ b/meta-multimedia/recipes-support/libmediaart/libmediaart-2.0_1.9.5.bb
@@ -0,0 +1,23 @@
+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.inc b/meta-multimedia/recipes-support/libmediaart/libmediaart.inc
deleted file mode 100644
index 57dca9c176..0000000000
--- a/meta-multimedia/recipes-support/libmediaart/libmediaart.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Library tasked with managing, extracting and handling media art caches"
-
-LICENSE = "LGPLv2+ & GPLv2+"
-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"
-
-GNOME_COMPRESS_TYPE = "xz"
-
-inherit gnomebase gtk-doc gobject-introspection
-
-EXTRA_OECONF = "--disable-qt --enable-gdkpixbuf"
diff --git a/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb b/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb
deleted file mode 100644
index ae95d4f697..0000000000
--- a/meta-multimedia/recipes-support/libmediaart/libmediaart_0.7.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require libmediaart.inc
-
-SRC_URI[archive.md5sum] = "1a44933d4cd0064e3c76d8d0ddacddc9"
-SRC_URI[archive.sha256sum] = "3a9dffcad862aed7c0921579b93080d694b8a66f3676bfee8037867f653a1cd3"
-
-EXTRA_OECONF_append = " --disable-gtk-doc"
diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch
deleted file mode 100644
index aff1cb1842..0000000000
--- a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/0001-Fix-enable-vfp-flag.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-From 1921498bcc06408e8b051a3a9e9ce4182998f748 Mon Sep 17 00:00:00 2001
-From: David Schleef <ds@schleef.org>
-Date: Fri, 8 Apr 2011 10:05:49 -0700
-Subject: [PATCH 10/10] Fix --enable-vfp flag
-
-Patch from Christophe Lyon, fixes #36084.
----
- configure.ac | 4 ++--
- liboil/arm/Makefile.am | 1 +
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 98c81fb..407d88c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -188,8 +188,8 @@ fi
- AC_ARG_ENABLE(vfp,
- AC_HELP_STRING([--enable-vfp],[compile with Vector Floating-point unit support]),
- enable_vfp=$enableval,enable_vfp=yes)
--if test "x$enable-vfp" = xyes -a x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes; then
-- AS_COMPILER_FLAG(["-Wa,-mfpu=vfp"],
-+if test "x$enable_vfp" = xyes -a x$HAVE_GCC_ASM = xyes -a x$HAVE_ARM = xyes; then
-+ AS_COMPILER_FLAG(["-mfpu=vfp"],
- [VFP_CFLAGS="$VFP_CFLAGS -mfpu=vfp"],
- true)
- #AS_COMPILER_FLAG(["-Wa,-mfloat-abi=softfp"],
-diff --git a/liboil/arm/Makefile.am b/liboil/arm/Makefile.am
-index ead08ed..cd8d9fa 100644
---- a/liboil/arm/Makefile.am
-+++ b/liboil/arm/Makefile.am
-@@ -6,4 +6,5 @@ libarm_la_SOURCES = \
- math_vfp_asm.S
-
- libarm_la_CFLAGS = $(LIBOIL_CFLAGS) $(VFP_CFLAGS)
-+libarm_la_CCASFLAGS = $(LIBOIL_CFLAGS) $(VFP_CFLAGS)
-
---
-1.7.6
-
diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch
deleted file mode 100644
index c8e3c1f721..0000000000
--- a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/fix-unaligned-whitelist.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Upstream: https://bugs.freedesktop.org/show_bug.cgi?id=31358
-
-configure: fix whitelisting of x86_64 unaligned memory access
-
-Fix typo in whitelist so cross-compile works for x86_64.
-
-Upstream-Status: Inappropriate [configuration]
-
---- liboil-0.3.17/m4/as-unaligned-access.m4.orig 2009-02-26 14:40:08.000000000 -0500
-+++ liboil-0.3.17/m4/as-unaligned-access.m4 2010-11-03 12:19:55.000000000 -0400
-@@ -9,7 +9,7 @@
- _AS_ECHO_N([(blacklisted) ])
- as_cv_unaligned_access=no
- ;;
-- i?86*|x86_64|amd64|powerpc*|m68k*|cris*)
-+ i?86*|x86_64*|amd64*|powerpc*|m68k*|cris*)
- _AS_ECHO_N([(whitelisted) ])
- as_cv_unaligned_access=yes
- ;;
diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch
deleted file mode 100644
index 473380e9fc..0000000000
--- a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/liboil_fix_for_x32.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-Upstream-Status: Pending
-
-Make the assembly syntax compatible with x32 gcc. Othewise x32 gcc throws errors.
-
-Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
-2011/12/01
-
-
-Index: liboil-0.3.17/liboil/amd64/wavelet.c
-===================================================================
---- liboil-0.3.17.orig/liboil/amd64/wavelet.c
-+++ liboil-0.3.17/liboil/amd64/wavelet.c
-@@ -21,14 +21,14 @@ deinterleave2_asm (int16_t *d1, int16_t
- asm volatile ("\n"
- " sub $2, %%rcx\n"
- "1:\n"
-- " movw (%1,%%rcx,4), %%ax\n"
-- " movw %%ax, (%0,%%rcx,2)\n"
-- " movw 2(%1,%%rcx,4), %%ax\n"
-- " movw %%ax, (%2,%%rcx,2)\n"
-- " movw 4(%1,%%rcx,4), %%ax\n"
-- " movw %%ax, 2(%0,%%rcx,2)\n"
-- " movw 6(%1,%%rcx,4), %%ax\n"
-- " movw %%ax, 2(%2,%%rcx,2)\n"
-+ " movw (%q1,%%rcx,4), %%ax\n"
-+ " movw %%ax, (%q0,%%rcx,2)\n"
-+ " movw 2(%q1,%%rcx,4), %%ax\n"
-+ " movw %%ax, (%q2,%%rcx,2)\n"
-+ " movw 4(%q1,%%rcx,4), %%ax\n"
-+ " movw %%ax, 2(%q0,%%rcx,2)\n"
-+ " movw 6(%q1,%%rcx,4), %%ax\n"
-+ " movw %%ax, 2(%q2,%%rcx,2)\n"
- " sub $2, %%rcx\n"
- " jge 1b\n"
- : "+r" (d1), "+r" (s_2xn), "+r" (d2), "+c" (n)
-@@ -53,20 +53,20 @@ deinterleave2_mmx (int16_t *d1, int16_t
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%1,%%rcx,4), %%mm0\n"
-- " movq 8(%1,%%rcx,4), %%mm1\n"
-+ " movq (%q1,%%rcx,4), %%mm0\n"
-+ " movq 8(%q1,%%rcx,4), %%mm1\n"
- " pslld $16, %%mm0\n"
- " pslld $16, %%mm1\n"
- " psrad $16, %%mm0\n"
- " psrad $16, %%mm1\n"
- " packssdw %%mm1, %%mm0\n"
-- " movq %%mm0, (%0,%%rcx,2)\n"
-- " movq (%1,%%rcx,4), %%mm0\n"
-- " movq 8(%1,%%rcx,4), %%mm1\n"
-+ " movq %%mm0, (%q0,%%rcx,2)\n"
-+ " movq (%q1,%%rcx,4), %%mm0\n"
-+ " movq 8(%q1,%%rcx,4), %%mm1\n"
- " psrad $16, %%mm0\n"
- " psrad $16, %%mm1\n"
- " packssdw %%mm1, %%mm0\n"
-- " movq %%mm0, (%2,%%rcx,2)\n"
-+ " movq %%mm0, (%q2,%%rcx,2)\n"
- " add $4, %%rcx\n"
- " cmp %3, %%ecx\n"
- " jl 1b\n"
-@@ -93,10 +93,10 @@ deinterleave2_mmx_2 (int16_t *d1, int16_
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " pshufw $0xd8, (%1,%%rcx,4), %%mm0\n"
-- " movd %%mm0, (%0,%%rcx,2)\n"
-- " pshufw $0x8d, (%1,%%rcx,4), %%mm0\n"
-- " movd %%mm0, (%2,%%rcx,2)\n"
-+ " pshufw $0xd8, (%q1,%%rcx,4), %%mm0\n"
-+ " movd %%mm0, (%q0,%%rcx,2)\n"
-+ " pshufw $0x8d, (%q1,%%rcx,4), %%mm0\n"
-+ " movd %%mm0, (%q2,%%rcx,2)\n"
- " add $2, %%rcx\n"
- " cmp %3, %%ecx\n"
- " jl 1b\n"
-@@ -123,16 +123,16 @@ deinterleave2_mmx_3 (int16_t *d1, int16_
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%1,%%rcx,4), %%mm1\n"
-- " movq (%1,%%rcx,4), %%mm2\n"
-- " movq 8(%1,%%rcx,4), %%mm0\n"
-+ " movq (%q1,%%rcx,4), %%mm1\n"
-+ " movq (%q1,%%rcx,4), %%mm2\n"
-+ " movq 8(%q1,%%rcx,4), %%mm0\n"
- " punpcklwd %%mm0, %%mm1\n"
- " punpckhwd %%mm0, %%mm2\n"
- " movq %%mm1, %%mm0\n"
- " punpcklwd %%mm2, %%mm0\n"
- " punpckhwd %%mm2, %%mm1\n"
-- " movq %%mm0, (%0,%%rcx,2)\n"
-- " movq %%mm1, (%2,%%rcx,2)\n"
-+ " movq %%mm0, (%q0,%%rcx,2)\n"
-+ " movq %%mm1, (%q2,%%rcx,2)\n"
- " add $4, %%rcx\n"
- " cmp %3, %%ecx\n"
- " jl 1b\n"
-@@ -159,26 +159,26 @@ deinterleave2_mmx_4 (int16_t *d1, int16_
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%1,%%rcx,4), %%mm1\n"
-+ " movq (%q1,%%rcx,4), %%mm1\n"
- " movq %%mm1, %%mm2\n"
-- " movq 8(%1,%%rcx,4), %%mm0\n"
-- " movq 16(%1,%%rcx,4), %%mm5\n"
-+ " movq 8(%q1,%%rcx,4), %%mm0\n"
-+ " movq 16(%q1,%%rcx,4), %%mm5\n"
- " punpcklwd %%mm0, %%mm1\n"
- " movq %%mm5, %%mm6\n"
- " punpckhwd %%mm0, %%mm2\n"
-- " movq 24(%1,%%rcx,4), %%mm4\n"
-+ " movq 24(%q1,%%rcx,4), %%mm4\n"
- " movq %%mm1, %%mm0\n"
- " punpcklwd %%mm4, %%mm5\n"
- " punpcklwd %%mm2, %%mm0\n"
- " punpckhwd %%mm4, %%mm6\n"
- " punpckhwd %%mm2, %%mm1\n"
- " movq %%mm5, %%mm4\n"
-- " movq %%mm0, (%0,%%rcx,2)\n"
-+ " movq %%mm0, (%q0,%%rcx,2)\n"
- " punpcklwd %%mm6, %%mm4\n"
-- " movq %%mm1, (%2,%%rcx,2)\n"
-+ " movq %%mm1, (%q2,%%rcx,2)\n"
- " punpckhwd %%mm6, %%mm5\n"
-- " movq %%mm4, 8(%0,%%rcx,2)\n"
-- " movq %%mm5, 8(%2,%%rcx,2)\n"
-+ " movq %%mm4, 8(%q0,%%rcx,2)\n"
-+ " movq %%mm5, 8(%q2,%%rcx,2)\n"
- " add $8, %%rcx\n"
- " cmp %3, %%ecx\n"
- " jl 1b\n"
-@@ -252,13 +252,13 @@ interleave2_mmx (int16_t *d_2xn, int16_t
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%1,%%rcx,2), %%mm0\n"
-- " movq (%2,%%rcx,2), %%mm1\n"
-+ " movq (%q1,%%rcx,2), %%mm0\n"
-+ " movq (%q2,%%rcx,2), %%mm1\n"
- " movq %%mm0, %%mm2\n"
- " punpckhwd %%mm1, %%mm0\n"
- " punpcklwd %%mm1, %%mm2\n"
-- " movq %%mm2, (%0,%%rcx,4)\n"
-- " movq %%mm0, 8(%0,%%rcx,4)\n"
-+ " movq %%mm2, (%q0,%%rcx,4)\n"
-+ " movq %%mm0, 8(%q0,%%rcx,4)\n"
- " add $4, %%rcx\n"
- " cmp %3, %%ecx\n"
- " jl 1b\n"
-@@ -285,12 +285,12 @@ lift_add_shift1_mmx (int16_t *d, int16_t
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%2,%%rcx,2), %%mm1\n"
-- " movq (%3,%%rcx,2), %%mm2\n"
-+ " movq (%q2,%%rcx,2), %%mm1\n"
-+ " movq (%q3,%%rcx,2), %%mm2\n"
- " paddw %%mm2, %%mm1\n"
- " psraw $1, %%mm1\n"
-- " paddw (%1,%%rcx,2), %%mm1\n"
-- " movq %%mm1, (%0,%%rcx,2)\n"
-+ " paddw (%q1,%%rcx,2), %%mm1\n"
-+ " movq %%mm1, (%q0,%%rcx,2)\n"
- " add $4, %%rcx\n"
- " cmp %4, %%ecx\n"
- " jl 1b\n"
-@@ -317,13 +317,13 @@ lift_sub_shift1_mmx (int16_t *d, int16_t
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%2,%%rcx,2), %%mm1\n"
-- " movq (%3,%%rcx,2), %%mm2\n"
-- " movq (%1,%%rcx,2), %%mm0\n"
-+ " movq (%q2,%%rcx,2), %%mm1\n"
-+ " movq (%q3,%%rcx,2), %%mm2\n"
-+ " movq (%q1,%%rcx,2), %%mm0\n"
- " paddw %%mm2, %%mm1\n"
- " psraw $1, %%mm1\n"
- " psubw %%mm1, %%mm0\n"
-- " movq %%mm0, (%0,%%rcx,2)\n"
-+ " movq %%mm0, (%q0,%%rcx,2)\n"
- " add $4, %%rcx\n"
- " cmp %4, %%ecx\n"
- " jl 1b\n"
-@@ -350,12 +350,12 @@ lift_add_shift2_mmx (int16_t *d, int16_t
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%2,%%rcx,2), %%mm1\n"
-- " movq (%3,%%rcx,2), %%mm2\n"
-+ " movq (%q2,%%rcx,2), %%mm1\n"
-+ " movq (%q3,%%rcx,2), %%mm2\n"
- " paddw %%mm2, %%mm1\n"
- " psraw $2, %%mm1\n"
-- " paddw (%1,%%rcx,2), %%mm1\n"
-- " movq %%mm1, (%0,%%rcx,2)\n"
-+ " paddw (%q1,%%rcx,2), %%mm1\n"
-+ " movq %%mm1, (%q0,%%rcx,2)\n"
- " add $4, %%rcx\n"
- " cmp %4, %%ecx\n"
- " jl 1b\n"
-@@ -382,13 +382,13 @@ lift_sub_shift2_mmx (int16_t *d, int16_t
- asm volatile ("\n"
- " xor %%rcx, %%rcx\n"
- "1:\n"
-- " movq (%2,%%rcx,2), %%mm1\n"
-- " movq (%3,%%rcx,2), %%mm2\n"
-- " movq (%1,%%rcx,2), %%mm0\n"
-+ " movq (%q2,%%rcx,2), %%mm1\n"
-+ " movq (%q3,%%rcx,2), %%mm2\n"
-+ " movq (%q1,%%rcx,2), %%mm0\n"
- " paddw %%mm2, %%mm1\n"
- " psraw $2, %%mm1\n"
- " psubw %%mm1, %%mm0\n"
-- " movq %%mm0, (%0,%%rcx,2)\n"
-+ " movq %%mm0, (%q0,%%rcx,2)\n"
- " add $4, %%rcx\n"
- " cmp %4, %%ecx\n"
- " jl 1b\n"
diff --git a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch b/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch
deleted file mode 100644
index 892d441310..0000000000
--- a/meta-multimedia/recipes-support/liboil/liboil-0.3.17/no-tests.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Upstream-Status: Inappropriate [disable feature]
-
---- liboil-0.3.9/liboil/liboilfunction.c.old 2006-09-18 13:03:20.000000000 +0100
-+++ liboil-0.3.9/liboil/liboilfunction.c 2006-09-18 13:04:10.000000000 +0100
-@@ -345,7 +345,9 @@
- return;
- }
-
-- test = oil_test_new (klass);
-+ klass->chosen_impl = klass->reference_impl;
-+ klass->func = klass->reference_impl->func;
-+/* test = oil_test_new (klass);
- if (test == NULL) {
- OIL_ERROR ("failed to test function class %s", klass->name);
- return;
-@@ -385,7 +387,7 @@
- klass->chosen_impl = min_impl;
- klass->func = min_impl->func;
-
-- oil_test_free (test);
-+ oil_test_free (test);*/
- }
-
- static void
diff --git a/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb b/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb
deleted file mode 100644
index 03b7785215..0000000000
--- a/meta-multimedia/recipes-support/liboil/liboil_0.3.17.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Library of simple functions optimized for various CPUs"
-HOMEPAGE = "http://liboil.freedesktop.org/"
-BUGTRACKER = "https://bugs.freedesktop.org/"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ad80780d9c5205d63481a0184e199a15 \
- file://liboil/liboil.h;endline=28;md5=95c794a66b88800d949fed17e437d9fb \
- file://liboil/liboilcpu.c;endline=28;md5=89da69a61d88eedcba066f42353fb75a \
- file://examples/example1.c;endline=29;md5=9d4dad9fcbbdf0441ee063f8af5170c9 \
- file://testsuite/trans.c;endline=29;md5=380ecd43121fe3dcc0d8d7e5984f283d"
-
-DEPENDS = "glib-2.0"
-PR = "r5"
-
-SRC_URI = "http://liboil.freedesktop.org/download/${BPN}-${PV}.tar.gz \
- file://no-tests.patch \
- file://fix-unaligned-whitelist.patch \
- file://0001-Fix-enable-vfp-flag.patch \
- file://liboil_fix_for_x32.patch \
- "
-
-SRC_URI[md5sum] = "47dc734f82faeb2964d97771cfd2e701"
-SRC_URI[sha256sum] = "105f02079b0b50034c759db34b473ecb5704ffa20a5486b60a8b7698128bfc69"
-
-inherit autotools pkgconfig
-
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-multimedia/recipes-support/libsrtp/libsrtp/0001-Rename-conflicting-variable-mips.patch b/meta-multimedia/recipes-support/libsrtp/libsrtp/0001-Rename-conflicting-variable-mips.patch
deleted file mode 100644
index b56c78959a..0000000000
--- a/meta-multimedia/recipes-support/libsrtp/libsrtp/0001-Rename-conflicting-variable-mips.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 3dc8a678a844247d0afcf7e30fb3cbd5ccbd828f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 29 Jun 2017 14:05:06 -0700
-Subject: [PATCH] Rename conflicting variable 'mips'
-
-Fixes
-test/srtp_driver.c:344:12: error: expected identifier or '(' before numeric constant
- double mips = mips_estimate(1000000000, &ignore);
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- test/srtp_driver.c | 20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/test/srtp_driver.c b/test/srtp_driver.c
-index 8872971..d38ea19 100644
---- a/test/srtp_driver.c
-+++ b/test/srtp_driver.c
-@@ -341,7 +341,7 @@ main (int argc, char *argv[]) {
- if (do_codec_timing) {
- srtp_policy_t policy;
- int ignore;
-- double mips = mips_estimate(1000000000, &ignore);
-+ double est = mips_estimate(1000000000, &ignore);
-
- crypto_policy_set_rtp_default(&policy.rtp);
- crypto_policy_set_rtcp_default(&policy.rtcp);
-@@ -353,33 +353,33 @@ main (int argc, char *argv[]) {
- policy.allow_repeat_tx = 0;
- policy.next = NULL;
-
-- printf("mips estimate: %e\n", mips);
-+ printf("mips estimate: %e\n", est);
-
- printf("testing srtp processing time for voice codecs:\n");
- printf("codec\t\tlength (octets)\t\tsrtp instructions/second\n");
- printf("G.711\t\t%d\t\t\t%e\n", 80,
-- (double) mips * (80 * 8) /
-+ (double) est * (80 * 8) /
- srtp_bits_per_second(80, &policy) / .01 );
- printf("G.711\t\t%d\t\t\t%e\n", 160,
-- (double) mips * (160 * 8) /
-+ (double) est * (160 * 8) /
- srtp_bits_per_second(160, &policy) / .02);
- printf("G.726-32\t%d\t\t\t%e\n", 40,
-- (double) mips * (40 * 8) /
-+ (double) est * (40 * 8) /
- srtp_bits_per_second(40, &policy) / .01 );
- printf("G.726-32\t%d\t\t\t%e\n", 80,
-- (double) mips * (80 * 8) /
-+ (double) est * (80 * 8) /
- srtp_bits_per_second(80, &policy) / .02);
- printf("G.729\t\t%d\t\t\t%e\n", 10,
-- (double) mips * (10 * 8) /
-+ (double) est * (10 * 8) /
- srtp_bits_per_second(10, &policy) / .01 );
- printf("G.729\t\t%d\t\t\t%e\n", 20,
-- (double) mips * (20 * 8) /
-+ (double) est * (20 * 8) /
- srtp_bits_per_second(20, &policy) / .02 );
- printf("Wideband\t%d\t\t\t%e\n", 320,
-- (double) mips * (320 * 8) /
-+ (double) est * (320 * 8) /
- srtp_bits_per_second(320, &policy) / .01 );
- printf("Wideband\t%d\t\t\t%e\n", 640,
-- (double) mips * (640 * 8) /
-+ (double) est * (640 * 8) /
- srtp_bits_per_second(640, &policy) / .02 );
- }
-
---
-2.13.2
-
diff --git a/meta-multimedia/recipes-support/libsrtp/libsrtp_1.6.0.bb b/meta-multimedia/recipes-support/libsrtp/libsrtp_1.6.0.bb
deleted file mode 100644
index d3ab5b71c0..0000000000
--- a/meta-multimedia/recipes-support/libsrtp/libsrtp_1.6.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "library implementing Secure RTP (RFC 3711)"
-HOMEPAGE = "https://github.com/cisco/libsrtp"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=15bc16b9d2e305974dde47e733883714"
-
-S = "${WORKDIR}/git"
-SRCREV = "2b091a4fb21c9b06fc5d4b5763bdaec97542fcd7"
-SRC_URI = "git://github.com/cisco/libsrtp.git;protocol=https;branch=1_6_x_throttle; \
- file://0001-Rename-conflicting-variable-mips.patch \
- "
-
-inherit autotools
-
-ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb b/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.bb
new file mode 100644
index 0000000000..b17e4767b4
--- /dev/null
+++ b/meta-multimedia/recipes-support/libsrtp/libsrtp_2.4.2.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=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/srt/srt/0001-don-t-install-srt-ffplay.patch b/meta-multimedia/recipes-support/srt/srt/0001-don-t-install-srt-ffplay.patch
new file mode 100644
index 0000000000..5b76b16328
--- /dev/null
+++ b/meta-multimedia/recipes-support/srt/srt/0001-don-t-install-srt-ffplay.patch
@@ -0,0 +1,28 @@
+From a45b43a2acd4c29bc8a204f51a3fa5e7b9815613 Mon Sep 17 00:00:00 2001
+From: Jose Quaresma <quaresma.jose@gmail.com>
+Date: Sat, 14 Nov 2020 12:29:56 +0000
+Subject: [PATCH] don't install srt-ffplay
+
+srt-ffplay is a simple bash scripts that pipes the output of srt-live-transmit to ffplay.
+It need ffmpeg as dependencie and requeire that libsrt is builded with -DENABLE_APPS=ON.
+So remove it because there are no option to disable the instalation.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jose Quaresma <quaresma.jose@gmail.com>
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ed6e603..ef53dc5 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1224,7 +1224,6 @@ if (ENABLE_UNITTESTS AND ENABLE_CXX11)
+ endif()
+
+
+-install(PROGRAMS scripts/srt-ffplay DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+
+ if (DEFINED SRT_EXTRA_APPS_INC)
diff --git a/meta-multimedia/recipes-support/srt/srt_1.4.4.bb b/meta-multimedia/recipes-support/srt/srt_1.4.4.bb
new file mode 100644
index 0000000000..d6cf36dfbe
--- /dev/null
+++ b/meta-multimedia/recipes-support/srt/srt_1.4.4.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Secure Reliable Transport (SRT) Protocol"
+DESCRIPTION = "Secure Reliable Transport (SRT) is an open source transport technology \
+that optimizes streaming performance across unpredictable networks, such as the Internet."
+SECTION = "libs"
+HOMEPAGE = "https://github.com/Haivision/srt"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
+
+SRCREV = "8b32f3734ff6af7cc7b0fef272591cb80a2d1aae"
+SRC_URI = "git://github.com/Haivision/srt;protocol=https;branch=master \
+ file://0001-don-t-install-srt-ffplay.patch \
+ "
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = "-DCMAKE_BUILD_TYPE=Release -DENABLE_UNITTESTS=OFF"
+
+PACKAGECONFIG ??= "crypt"
+PACKAGECONFIG[debug] = "-DENABLE_DEBUG=1,,"
+PACKAGECONFIG[crypt] = "-DENABLE_ENCRYPTION=ON,-DENABLE_ENCRYPTION=OFF,openssl"
+PACKAGECONFIG[utils] = "-DENABLE_APPS=ON,-DENABLE_APPS=OFF,"
+
+PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'utils', '${PN}-utils', '', d)}"
+FILES:${PN}-utils += "${bindir}"
+RDEPENDS:${PN}-utils += "${PN}"
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..b845c5f792
--- /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;nobranch=1 \
+ 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 bbb2d1b5b2..ce53ec471b 100644
--- a/meta-networking/MAINTAINERS
+++ b/meta-networking/MAINTAINERS
@@ -8,7 +8,7 @@ When sending single patches, please use something like:
git send-email -1 -M \
--to openembedded-devel@lists.openembedded.org \
- --subject-prefix=meta-networking][PATCH
+ --subject-prefix='meta-networking][PATCH'
You may also contact the maintainers directly.
@@ -26,10 +26,18 @@ Please keep this list in alphabetical order.
Maintainers List (try to look for most precise areas first)
COMMON
-M: Joe MacDonald <joe_macdonald@mentor.com>
+M: Khem Raj <raj.khem@gmail.com>
+M: "Joe MacDonald (backup)" <joe@deserted.net>
+L: openembedded-devel@lists.openembedded.org
+Q: https://patchwork.openembedded.org/project/oe/
+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 e1ba27d83b..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://github.com/openembedded/openembedded-core.git
-branch: master
-revision: HEAD
-
-For some recipes, the meta-oe layer is required:
-
-URI: git://github.com/openembedded/meta-openembedded.git
-subdirectory: meta-oe
-branch: master
-revision: HEAD
-
-URI: git://github.com/openembedded/meta-openembedded.git
-subdirectory: meta-python
-branch: master
-revision: HEAD
-
-Maintenance
------------
-
-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..34e11a96dd
--- /dev/null
+++ b/meta-networking/README.md
@@ -0,0 +1,40 @@
+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/classes/kernel_wireless_regdb.bbclass b/meta-networking/classes/kernel_wireless_regdb.bbclass
new file mode 100644
index 0000000000..9ad566c837
--- /dev/null
+++ b/meta-networking/classes/kernel_wireless_regdb.bbclass
@@ -0,0 +1,20 @@
+# Linux kernels before v4.15, allowed to be compiled with static
+# regulatory database if it was put under net/wireless/db.txt.
+#
+# This class copies the regulatory plaintext database to kernel sources before
+# compiling.
+#
+# Usage:
+# 1. The class should be inherited by kernel recipe (e.g. in
+# linux-yocto_%.bbappend).
+# 2. For Linux kernels up to v4.14, build kernel with CONFIG_EXPERT and
+# CONFIG_CFG80211_INTERNAL_REGDB.
+
+DEPENDS += "wireless-regdb-native"
+
+SRCTREECOVEREDTASKS += "do_kernel_add_regdb"
+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_compile after do_configure
diff --git a/meta-networking/classes/waf-samba.bbclass b/meta-networking/classes/waf-samba.bbclass
index 1632c3c60e..41909788f7 100644
--- a/meta-networking/classes/waf-samba.bbclass
+++ b/meta-networking/classes/waf-samba.bbclass
@@ -1,9 +1,9 @@
# waf is a build system which is used by samba related project.
# Obtain details from https://wiki.samba.org/index.php/Waf
#
-inherit qemu pythonnative
+inherit qemu python3native
-DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python"
+DEPENDS += "qemu-native libxslt-native docbook-xsl-stylesheets-native python3"
CONFIGUREOPTS = " --prefix=${prefix} \
--bindir=${bindir} \
@@ -95,6 +95,7 @@ do_configure() {
export STAGING_LIBDIR=${STAGING_LIBDIR}
export STAGING_INCDIR=${STAGING_INCDIR}
export PYTHONPATH=${STAGING_DIR_HOST}${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
@@ -111,7 +112,7 @@ do_configure() {
do_compile[progress] = "outof:^\[\s*(\d+)/\s*(\d+)\]\s+"
do_compile () {
- python ./buildtools/bin/waf ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)}
+ python3 ./buildtools/bin/waf ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)}
}
do_install() {
diff --git a/meta-networking/conf/layer.conf b/meta-networking/conf/layer.conf
index e594b7b957..5716eb3f22 100644
--- a/meta-networking/conf/layer.conf
+++ b/meta-networking/conf/layer.conf
@@ -15,12 +15,14 @@ LAYERVERSION_networking-layer = "1"
LAYERDEPENDS_networking-layer = "core"
LAYERDEPENDS_networking-layer += "openembedded-layer"
-LAYERDEPENDS_networking-layer += "meta-python"
-LAYERSERIES_COMPAT_networking-layer = "sumo"
+LAYERSERIES_COMPAT_networking-layer = "mickledore"
LICENSE_PATH += "${LAYERDIR}/licenses"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
wireguard-tools->wireguard-module \
"
+BBFILES_DYNAMIC += " \
+ meta-python:${LAYERDIR}/dynamic-layers/meta-python/recipes-*/*/*.bb \
+"
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/firewalld.init b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/firewalld.init
new file mode 100644
index 0000000000..08e8930b97
--- /dev/null
+++ b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/firewalld.init
@@ -0,0 +1,48 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides: firewalld
+# Required-Start: $syslog $local_fs messagebus
+# Required-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description:
+# Description:
+### END INIT INFO
+
+. /etc/init.d/functions
+
+firewalld=/usr/sbin/firewalld
+pidfile=/var/run/firewalld.pid
+
+case "$1" in
+ start)
+ echo -n "Starting firewalld: "
+ start-stop-daemon --start --quiet --exec $firewalld
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping firewalld: "
+ start-stop-daemon --stop --quiet --pidfile $pidfile
+ echo "."
+ ;;
+ restart)
+ echo -n "Stopping firewalld: "
+ start-stop-daemon --stop --quiet --pidfile $pidfile
+ echo "."
+ echo -n "Starting firewalld: "
+ start-stop-daemon --start --quiet --exec $firewalld
+ echo "."
+ ;;
+ reload)
+ echo -n "Reloading firewalld: "
+ firewall-cmd --reload
+ echo "."
+ ;;
+ status)
+ firewall-cmd --state
+ ;;
+ *)
+ echo "Usage: /etc/init.d/firewalld {start|stop|restart|reload|status}" >&2
+ exit 1
+esac
diff --git a/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/run-ptest b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/run-ptest
new file mode 100644
index 0000000000..9d3ec79042
--- /dev/null
+++ b/meta-networking/dynamic-layers/meta-python/recipes-connectivity/firewalld/files/run-ptest
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+ret_val=0
+
+# Check if all the kernel modules are available
+FIREWALLD_KERNEL_MODULES="@@FIREWALLD_KERNEL_MODULES@@"
+for m in $FIREWALLD_KERNEL_MODULES; do
+ if modprobe $m; then
+ echo "PASS: loading $m"
+ else
+ echo "FAIL: loading $m"
+ ret_val=1
+ fi
+done
+
+# Run the test suite from firewalld
+# Failing testsuites: 203 226 241 250 270 280 281 282 285 286
+# Problem icmpv6 compared against ipv6-icmptype?
+/usr/share/firewalld/testsuite/testsuite -C /tmp -A || ret_val=1
+
+exit $ret_val
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..f0ff24f376
--- /dev/null
+++ b/meta-networking/dynamic-layers/meta-python/recipes-printing/system-config-printer/system-config-printer_1.5.18.bb
@@ -0,0 +1,45 @@
+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"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = ",--without-systemdsystemunitdir,systemd"
+
+do_configure:prepend() {
+ # This file is not provided if fetching from git but required for configure
+ touch ${S}/ChangeLog
+}
+
+do_install:append() {
+ 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} = " \
+ dbus-x11 \
+ gtk+3 \
+ libnotify \
+ python3-core \
+ python3-dbus \
+ python3-firewall \
+ python3-pycups \
+ python3-pycurl \
+ python3-pygobject \
+"
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 1023f6aff3..fa960ea2b9 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-aarch64.txt
@@ -37,3 +37,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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 1023f6aff3..fa960ea2b9 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
@@ -37,3 +37,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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 a5cd9981a3..19d0b6f765 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-arm.txt
@@ -38,3 +38,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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
new file mode 100644
index 0000000000..19d0b6f765
--- /dev/null
+++ b/meta-networking/files/waf-cross-answers/cross-answers-armeb.txt
@@ -0,0 +1,48 @@
+Checking uname sysname type: "Linux"
+Checking uname version type: "# Wed May 20 10:34:39 UTC 2015"
+Checking simple C program: "hello world"
+rpath library support: OK
+-Wl,--version-script support: OK
+Checking getconf LFS_CFLAGS: NO
+Checking correct behavior of strtoll: NO
+Checking for working strptime: OK
+Checking for C99 vsnprintf: "1"
+Checking for HAVE_SHARED_MMAP: OK
+Checking for HAVE_MREMAP: OK
+Checking for HAVE_SECURE_MKSTEMP: OK
+Checking for HAVE_IFACE_GETIFADDRS: NO
+Checking for HAVE_IFACE_IFCONF: NO
+Checking for HAVE_IFACE_IFREQ: NO
+Checking for large file support without additional flags: NO
+Checking for -D_FILE_OFFSET_BITS=64: OK
+Checking for HAVE_INCOHERENT_MMAP: NO
+Checking value of NSIG: "65"
+Checking value of _NSIG: "65"
+Checking value of SIGRTMAX: "64"
+Checking value of SIGRTMIN: "34"
+Checking whether the WRFILE -keytab is supported: OK
+Checking for kernel change notify support: OK
+Checking for Linux kernel oplocks: OK
+Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
+Checking if can we convert from CP850 to UCS-2LE: OK
+Checking if can we convert from UTF-8 to UCS-2LE: OK
+vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
+Checking whether fcntl locking is available: OK
+Checking for the maximum value of the 'time_t' type: NO
+Checking whether the realpath function allows a NULL argument: OK
+Checking for ftruncate extend: OK
+getcwd takes a NULL argument: OK
+Checking for small off_t: NO
+Checking whether blkcnt_t is 32 bit: NO
+Checking whether blkcnt_t is 64 bit: OK
+Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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 a5cd9981a3..19d0b6f765 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-i586.txt
@@ -38,3 +38,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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 a5cd9981a3..19d0b6f765 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-i686.txt
@@ -38,3 +38,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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 3e239e727f..aa87368802 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mips.txt
@@ -38,3 +38,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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 82e694fdaf..407e4154c2 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mips64.txt
@@ -37,3 +37,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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
new file mode 100644
index 0000000000..407e4154c2
--- /dev/null
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mips64el.txt
@@ -0,0 +1,47 @@
+Checking uname sysname type: "Linux"
+Checking uname version type: "# Wed May 20 10:34:39 UTC 2015"
+Checking simple C program: "hello world"
+rpath library support: OK
+-Wl,--version-script support: OK
+Checking getconf LFS_CFLAGS: NO
+Checking correct behavior of strtoll: NO
+Checking for working strptime: OK
+Checking for C99 vsnprintf: "1"
+Checking for HAVE_SHARED_MMAP: OK
+Checking for HAVE_MREMAP: OK
+Checking for HAVE_SECURE_MKSTEMP: OK
+Checking for HAVE_IFACE_GETIFADDRS: NO
+Checking for HAVE_IFACE_IFCONF: NO
+Checking for HAVE_IFACE_IFREQ: NO
+Checking for large file support without additional flags: OK
+Checking for HAVE_INCOHERENT_MMAP: OK
+Checking value of NSIG: "128"
+Checking value of _NSIG: "128"
+Checking value of SIGRTMAX: "127"
+Checking value of SIGRTMIN: "34"
+Checking whether the WRFILE -keytab is supported: OK
+Checking for kernel change notify support: OK
+Checking for Linux kernel oplocks: OK
+Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
+Checking if can we convert from CP850 to UCS-2LE: OK
+Checking if can we convert from UTF-8 to UCS-2LE: OK
+vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
+Checking whether we can use Linux thread-specific credentials: OK
+Checking whether fcntl locking is available: OK
+Checking for the maximum value of the 'time_t' type: OK
+Checking whether the realpath function allows a NULL argument: OK
+Checking for ftruncate extend: OK
+getcwd takes a NULL argument: OK
+Checking for small off_t: NO
+Checking whether blkcnt_t is 32 bit: NO
+Checking whether blkcnt_t is 64 bit: OK
+Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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 3e239e727f..aa87368802 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-mipsel.txt
@@ -38,3 +38,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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 27b9378a42..e94a5a4731 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc.txt
@@ -38,3 +38,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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 7fd3092cb9..a5c0d0d61e 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64.txt
@@ -38,3 +38,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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
new file mode 100644
index 0000000000..a5c0d0d61e
--- /dev/null
+++ b/meta-networking/files/waf-cross-answers/cross-answers-powerpc64le.txt
@@ -0,0 +1,48 @@
+Checking uname sysname type: "Linux"
+Checking uname version type: "# Wed May 20 10:34:39 UTC 2015"
+Checking simple C program: "hello world"
+rpath library support: OK
+-Wl,--version-script support: OK
+Checking getconf LFS_CFLAGS: NO
+Checking correct behavior of strtoll: NO
+Checking for working strptime: OK
+Checking for C99 vsnprintf: "1"
+Checking for HAVE_SHARED_MMAP: OK
+Checking for HAVE_MREMAP: OK
+Checking for HAVE_SECURE_MKSTEMP: OK
+Checking for HAVE_IFACE_GETIFADDRS: NO
+Checking for HAVE_IFACE_IFCONF: NO
+Checking for HAVE_IFACE_IFREQ: NO
+Checking for large file support without additional flags: OK
+Checking for HAVE_INCOHERENT_MMAP: NO
+Checking value of NSIG: "65"
+Checking value of _NSIG: "65"
+Checking value of SIGRTMAX: "64"
+Checking value of SIGRTMIN: "34"
+Checking whether the WRFILE -keytab is supported: OK
+Checking for kernel change notify support: OK
+Checking for Linux kernel oplocks: OK
+Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
+Checking if can we convert from CP850 to UCS-2LE: (255, "")
+Checking if can we convert from IBM850 to UCS-2LE: (255, "")
+Checking if can we convert from UTF-8 to UCS-2LE: OK
+vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
+Checking whether we can use Linux thread-specific credentials: OK
+Checking whether fcntl locking is available: OK
+Checking for the maximum value of the 'time_t' type: OK
+Checking whether the realpath function allows a NULL argument: OK
+Checking for ftruncate extend: OK
+getcwd takes a NULL argument: OK
+Checking for small off_t: NO
+Checking whether blkcnt_t is 32 bit: NO
+Checking whether blkcnt_t is 64 bit: OK
+Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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
new file mode 100644
index 0000000000..19d0b6f765
--- /dev/null
+++ b/meta-networking/files/waf-cross-answers/cross-answers-riscv32.txt
@@ -0,0 +1,48 @@
+Checking uname sysname type: "Linux"
+Checking uname version type: "# Wed May 20 10:34:39 UTC 2015"
+Checking simple C program: "hello world"
+rpath library support: OK
+-Wl,--version-script support: OK
+Checking getconf LFS_CFLAGS: NO
+Checking correct behavior of strtoll: NO
+Checking for working strptime: OK
+Checking for C99 vsnprintf: "1"
+Checking for HAVE_SHARED_MMAP: OK
+Checking for HAVE_MREMAP: OK
+Checking for HAVE_SECURE_MKSTEMP: OK
+Checking for HAVE_IFACE_GETIFADDRS: NO
+Checking for HAVE_IFACE_IFCONF: NO
+Checking for HAVE_IFACE_IFREQ: NO
+Checking for large file support without additional flags: NO
+Checking for -D_FILE_OFFSET_BITS=64: OK
+Checking for HAVE_INCOHERENT_MMAP: NO
+Checking value of NSIG: "65"
+Checking value of _NSIG: "65"
+Checking value of SIGRTMAX: "64"
+Checking value of SIGRTMIN: "34"
+Checking whether the WRFILE -keytab is supported: OK
+Checking for kernel change notify support: OK
+Checking for Linux kernel oplocks: OK
+Checking for kernel share modes: OK
+Checking whether POSIX capabilities are available: OK
+Checking if can we convert from CP850 to UCS-2LE: OK
+Checking if can we convert from UTF-8 to UCS-2LE: OK
+vfs_fileid checking for statfs() and struct statfs.f_fsid: OK
+Checking whether we can use Linux thread-specific credentials with 32-bit system calls: OK
+Checking whether fcntl locking is available: OK
+Checking for the maximum value of the 'time_t' type: NO
+Checking whether the realpath function allows a NULL argument: OK
+Checking for ftruncate extend: OK
+getcwd takes a NULL argument: OK
+Checking for small off_t: NO
+Checking whether blkcnt_t is 32 bit: NO
+Checking whether blkcnt_t is 64 bit: OK
+Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: NO
+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 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 1023f6aff3..fa960ea2b9 100644
--- a/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
+++ b/meta-networking/files/waf-cross-answers/cross-answers-riscv64.txt
@@ -37,3 +37,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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 1023f6aff3..fa960ea2b9 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
@@ -37,3 +37,11 @@ Checking for small off_t: NO
Checking whether blkcnt_t is 32 bit: NO
Checking whether blkcnt_t is 64 bit: OK
Checking whether fcntl lock supports open file description locks: OK
+Checking for a 64-bit host to support lmdb: OK
+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 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.2.bb b/meta-networking/recipes-connectivity/adcli/adcli_0.9.2.bb
new file mode 100644
index 0000000000..6092823944
--- /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;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/autossh/autossh_1.4g.bb b/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
new file mode 100644
index 0000000000..de7e2d3e01
--- /dev/null
+++ b/meta-networking/recipes-connectivity/autossh/autossh_1.4g.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "autossh is a program to start a copy of ssh and monitor it, restarting it as necessary should it die or stop passing traffic"
+HOMEPAGE = "https://www.harding.motd.ca/autossh/"
+
+LICENSE = "BSD-1-Clause & BSD-4-Clause"
+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"
+SRC_URI[sha256sum] = "5fc3cee3361ca1615af862364c480593171d0c54ec156de79fc421e31ae21277"
+
+RDEPENDS:${PN} = "ssh"
+
+CFLAGS:prepend = "-I${WORKDIR}/build "
+
+inherit autotools
+
+EXTRA_OECONF="--with-ssh=/usr/bin/ssh"
+
+do_compile:append() {
+ cp ${WORKDIR}/autossh-${PV}/CHANGES ${WORKDIR}/build
+ cp ${WORKDIR}/autossh-${PV}/README ${WORKDIR}/build
+ cp ${WORKDIR}/autossh-${PV}/autossh.host ${WORKDIR}/build
+ cp ${WORKDIR}/autossh-${PV}/rscreen ${WORKDIR}/build
+ cp ${WORKDIR}/autossh-${PV}/autossh.1 ${WORKDIR}/build
+ cp ${WORKDIR}/autossh-${PV}/autossh.spec ${WORKDIR}/build
+}
+
+do_install:append() {
+ rm -rf ${D}${datadir}/examples
+}
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
new file mode 100644
index 0000000000..00be224990
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bearssl/bearssl/0001-conf-Unix.mk-remove-fixed-command-definitions.patch
@@ -0,0 +1,57 @@
+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
new file mode 100644
index 0000000000..3b341e0355
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bearssl/bearssl/0001-make-Pass-LDFLAGS-when-building-shared-objects.patch
@@ -0,0 +1,32 @@
+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
new file mode 100644
index 0000000000..e0e5c13588
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bearssl/bearssl/0002-test-test_x509.c-fix-potential-overflow-issue.patch
@@ -0,0 +1,43 @@
+From 542380a13f178d97851751b57054a6b5be555d1c Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <sno@netbsd.org>
+Date: Thu, 13 Aug 2020 16:16:44 +0200
+Subject: [PATCH 2/2] test/test_x509.c: fix potential overflow issue
+
+Instead of doing a memcpy() which does static overflow checking, use
+snprintf() for string copying which does the check dynamically.
+
+Fixes:
+| In file included from .../recipe-sysroot/usr/include/string.h:519,
+| from test/test_x509.c:27:
+| In function 'memcpy',
+| inlined from 'parse_keyvalue' at test/test_x509.c:845:2,
+| inlined from 'process_conf_file' at test/test_x509.c:1360:7,
+| inlined from 'main' at test/test_x509.c:2038:2:
+| .../recipe-sysroot/usr/include/bits/string_fortified.h:34:10: warning: '__builtin_memcpy' specified bound 4294967295 exceeds maximum object size 2147483647 [-Wstringop-overflow=]
+| 34 | return __builtin___memcpy_chk (__dest, __src, __len, __bos0 (__dest));
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+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/test/test_x509.c b/test/test_x509.c
+index 2c61cf5..76f6ab9 100644
+--- a/test/test_x509.c
++++ b/test/test_x509.c
+@@ -842,8 +842,7 @@ parse_keyvalue(HT *d)
+ return -1;
+ }
+ name = xmalloc(u + 1);
+- memcpy(name, buf, u);
+- name[u] = 0;
++ snprintf(name, u, "%s", buf);
+ if (HT_get(d, name) != NULL) {
+ xfree(name);
+ return -1;
+--
+2.17.1
+
diff --git a/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb b/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
new file mode 100644
index 0000000000..777ba2270b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bearssl/bearssl_0.6.bb
@@ -0,0 +1,47 @@
+SUMMARY = "BearSSL is an implementation of the SSL/TLS protocol (RFC 5246) written in C"
+DESCRIPTION = "BearSSL is an implementation of the SSL/TLS protocol (RFC \
+5246) written in C. It aims at offering the following features: \
+ * Be correct and secure. In particular, insecure protocol versions and \
+ choices of algorithms are not supported, by design; cryptographic \
+ algorithm implementations are constant-time by default. \
+ * Be small, both in RAM and code footprint. For instance, a minimal \
+ server implementation may fit in about 20 kilobytes of compiled code \
+ and 25 kilobytes of RAM. \
+ * Be highly portable. BearSSL targets not only “big” operating systems \
+ like Linux and Windows, but also small embedded systems and even special \
+ contexts like bootstrap code. \
+ * Be feature-rich and extensible. SSL/TLS has many defined cipher suites \
+ and extensions; BearSSL should implement most of them, and allow extra \
+ algorithm implementations to be added afterwards, possibly from third \
+ parties."
+HOMEPAGE = "https://bearssl.org"
+
+SECTION = "libs"
+
+inherit lib_package
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=1fc37e1037ae673975fbcb96a98f7191"
+
+PV .= "+git${SRCPV}"
+SRCREV = "79b1a9996c094ff593ae50bc4edc1f349f39dd6d"
+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 \
+ "
+
+# without compile errors like
+# <..>/ld: build/obj/ghash_pclmul.o: warning: relocation against `br_ghash_pclmul' in read-only section `.text'
+CFLAGS += "-fPIC"
+
+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
+}
diff --git a/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch b/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
new file mode 100644
index 0000000000..913566dce9
--- /dev/null
+++ b/meta-networking/recipes-connectivity/blueman/blueman/0001-Search-for-cython3.patch
@@ -0,0 +1,24 @@
+Subject: [PATCH] Search for cython3
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Markus Volk <f_l_k@gmx.net>
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/module/meson.build 2022-02-10 08:49:35.000000000 +0100
++++ b/module/meson.build 2022-03-29 12:58:03.456193737 +0200
+@@ -1,4 +1,4 @@
+-cython = find_program('cython', required: true)
++cython = find_program('cython3', required: true)
+
+ blueman_c = custom_target(
+ 'blueman_c',
+
+--
+2.14.3
+
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
new file mode 100644
index 0000000000..cc448b4ffd
--- /dev/null
+++ b/meta-networking/recipes-connectivity/blueman/blueman/0001-meson-add-pythoninstalldir-option.patch
@@ -0,0 +1,50 @@
+From 37f24a9bd62f0a8f3e37eaddd33f2f0c9d3aaa0a Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Fri, 1 Apr 2022 23:12:17 -0700
+Subject: [PATCH] meson: add pythoninstalldir option
+
+In case of cross build, using host python to determine the python
+site-packages directory for target is not feasible, add a new option
+pythoninstalldir to fix the issue.
+
+Upstream-Status: Submitted [https://github.com/blueman-project/blueman/pull/1699]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ meson.build | 7 ++++++-
+ meson_options.txt | 1 +
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+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(['share', 'glib-2.0', 'schemas'])
+-pythondir = pyinstall.get_install_dir()
++pythoninstalldir = get_option('pythoninstalldir')
++if pythoninstalldir != ''
++ pythondir = join_paths([prefix, pythoninstalldir])
++else
++ pythondir = join_paths([prefix, python.sysconfig_path('purelib')])
++endif
+
+ if get_option('policykit')
+ have_polkit = 'True'
+diff --git a/meson_options.txt b/meson_options.txt
+index 177d9ab8..3e397d8e 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -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('sendto-plugins', type: 'array', choices: ['Caja', 'Nemo', 'Nautilus'], value: ['Caja', 'Nemo', 'Nautilus'], description: 'Install sendto plugins for various filemanagers')
+--
+2.34.1
+
diff --git a/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch b/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
new file mode 100644
index 0000000000..282d821374
--- /dev/null
+++ b/meta-networking/recipes-connectivity/blueman/blueman/0002-fix-fail-to-enable-bluetooth.patch
@@ -0,0 +1,72 @@
+Fix fail to enable bluetooth issue
+
+When launch blueman-manager while bluetooth is disable, it may fails
+with error:
+
+ Failed to enable bluetooth
+
+Because when get bluetooth status right after change its status, the
+status may not be updated that plugin applet/KillSwitch.py sets the
+bluetooth status via method of another dbus service which doesn't return
+immediately.
+
+Provides a new dbus method for PowerManager which checks whether dbus
+method SetBluetoothStatus() has finished. Then it makes sure to get
+right bluetooth status.
+
+Upstream-Status: Inappropriate
+Send to upstream but not accepted:
+https://github.com/blueman-project/blueman/pull/1121
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ blueman/Functions.py | 10 ++++++++++
+ blueman/plugins/applet/PowerManager.py | 4 ++++
+ 2 files changed, 14 insertions(+)
+
+diff --git a/blueman/Functions.py b/blueman/Functions.py
+index 3917f42..b4d5eae 100644
+--- a/blueman/Functions.py
++++ b/blueman/Functions.py
+@@ -80,6 +80,16 @@ def check_bluetooth_status(message: str, exitfunc: Callable[[], Any]) -> None:
+ return
+
+ applet.SetBluetoothStatus('(b)', True)
++
++ timeout = time.time() + 10
++ while applet.GetRequestStatus():
++ time.sleep(0.1)
++ if time.time() > timeout:
++ # timeout 5s has been set in applet/PowerManager.py
++ # so it should NOT reach timeout here
++ logging.warning('Should NOT reach timeout.')
++ break
++
+ if not applet.GetBluetoothStatus():
+ print('Failed to enable bluetooth')
+ exitfunc()
+diff --git a/blueman/plugins/applet/PowerManager.py b/blueman/plugins/applet/PowerManager.py
+index c2f7bc3..bf6c99f 100644
+--- a/blueman/plugins/applet/PowerManager.py
++++ b/blueman/plugins/applet/PowerManager.py
+@@ -63,6 +63,7 @@ class PowerManager(AppletPlugin, StatusIconProvider):
+ self._add_dbus_signal("BluetoothStatusChanged", "b")
+ self._add_dbus_method("SetBluetoothStatus", ("b",), "", self.request_power_state)
+ self._add_dbus_method("GetBluetoothStatus", (), "b", self.get_bluetooth_status)
++ self._add_dbus_method("GetRequestStatus", (), "b", self.get_request_status)
+
+ def on_unload(self) -> None:
+ self.parent.Plugins.Menu.unregister(self)
+@@ -196,6 +197,9 @@ class PowerManager(AppletPlugin, StatusIconProvider):
+ def get_bluetooth_status(self) -> bool:
+ return self.current_state
+
++ def get_request_status(self):
++ return self.request_in_progress
++
+ def on_adapter_property_changed(self, _path: str, key: str, value: Any) -> None:
+ if key == "Powered":
+ if value and not self.current_state:
+--
+2.31.1
+
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/0001-bluepy-Fix-username-issue-with-tarballs.patch b/meta-networking/recipes-connectivity/bluepy/bluepy/0001-bluepy-Fix-username-issue-with-tarballs.patch
new file mode 100644
index 0000000000..93b367a77b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bluepy/bluepy/0001-bluepy-Fix-username-issue-with-tarballs.patch
@@ -0,0 +1,32 @@
+From 318a0e7dfaa0f5f233a20c0b347948c8004cf6af Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Oct 2021 14:02:09 -0700
+Subject: [PATCH] bluepy: Fix username issue with tarballs
+
+Fixes
+Cannot change ownership to uid 1000, gid 1000: Operation not permitted
+
+Upstream-Status: Submitted [https://github.com/IanHarvey/bluepy/pull/462]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ bluepy/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/bluepy/Makefile
++++ b/bluepy/Makefile
+@@ -30,13 +30,13 @@ bluepy-helper: $(LOCAL_SRCS) $(IMPORT_SR
+ $(CC) -L. $(CFLAGS) $(CPPFLAGS) -o $@ $(LOCAL_SRCS) $(IMPORT_SRCS) $(LDLIBS)
+
+ $(IMPORT_SRCS): bluez-src.tgz
+- tar xzf $<
++ tar xzf $< --no-same-owner
+ touch $(IMPORT_SRCS)
+
+ .PHONY: bluez-tarfile
+
+ bluez-tarfile:
+- (cd ..; tar czf bluepy/bluez-src.tgz $(BLUEZ_PATH))
++ (cd ..; tar czf bluepy/bluez-src.tgz $(BLUEZ_PATH) --no-same-owner)
+
+ GET_SERVICES=get_services.py
+
diff --git a/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb b/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
new file mode 100644
index 0000000000..8e164708ed
--- /dev/null
+++ b/meta-networking/recipes-connectivity/bluepy/bluepy_git.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Python interface to Bluetooth LE on Linux"
+HOMEPAGE = "https://github.com/IanHarvey/bluepy"
+SECTION = "devel/python"
+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}"
+
+SRC_URI = "git://github.com/IanHarvey/bluepy.git;protocol=https;branch=master \
+ file://0001-bluepy-Fix-username-issue-with-tarballs.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3 pkgconfig
+
+RDEPENDS:${PN} = "bluez5"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
diff --git a/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb b/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb
new file mode 100644
index 0000000000..f34c73c173
--- /dev/null
+++ b/meta-networking/recipes-connectivity/cannelloni/cannelloni_1.0.0.bb
@@ -0,0 +1,15 @@
+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/civetweb/civetweb/0001-Test-Fix-missing-librt-and-libm-during-native-compil.patch b/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Test-Fix-missing-librt-and-libm-during-native-compil.patch
deleted file mode 100644
index 401cf39ad8..0000000000
--- a/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Test-Fix-missing-librt-and-libm-during-native-compil.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From cd93e2c538cecb3192fd24c0fbd6e834d0c47eec Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 18 Apr 2018 14:11:52 +0200
-Subject: [PATCH] Unittest: Fix missing librt and libm during native compilation
-
-civetweb looks for librt and libm in weird places and for native build
-this fails:
-
- | ../third_party/lib/libcheck.a(check.c.o): In function `tcase_create':
- | build/tmp/work/x86_64-linux/civetweb-native/1.10-r0/build/third_party/src/check-unit-test-framework/src/check.c:145: undefined reference to `floor'
- | build/tmp/work/x86_64-linux/civetweb-native/1.10-r0/build/third_party/src/check-unit-test-framework/src/check.c:148: undefined reference to `floor'
-
-These are needed dependencies so try regular system linkage in such
-case.
-
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- unittest/CMakeLists.txt | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
-index f34b2e0e4ce4..05d25702178c 100644
---- a/unittest/CMakeLists.txt
-+++ b/unittest/CMakeLists.txt
-@@ -60,10 +60,14 @@ endif()
- find_package(LibM)
- if (LIBM_FOUND)
- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBM::LIBM")
-+else()
-+ set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lm")
- endif()
- find_package(LibRt)
- if (LIBRT_FOUND)
- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBRT::LIBRT")
-+else()
-+ set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lrt")
- endif()
-
- # Build the C unit tests
---
-2.7.4
-
diff --git a/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch b/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch
new file mode 100644
index 0000000000..eecbc14682
--- /dev/null
+++ b/meta-networking/recipes-connectivity/civetweb/civetweb/0001-Unittest-Link-librt-and-libm-using-l-option.patch
@@ -0,0 +1,40 @@
+From 21e9a4bb214648ffd43c66b535fbf096bfcc9f4f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 24 Jun 2018 00:04:37 -0700
+Subject: [PATCH] Unittest: Link librt and libm using -l option
+
+cmake'ry forces full path to .so files when found using
+find_package and since we have proper sysrooted toolchain
+-lm and -lrt is all we need
+
+Upstream-Status: Inappropriate [Cross compile specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ unittest/CMakeLists.txt | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/unittest/CMakeLists.txt b/unittest/CMakeLists.txt
+index c4cdf229..e1b63caf 100644
+--- a/unittest/CMakeLists.txt
++++ b/unittest/CMakeLists.txt
+@@ -57,14 +57,8 @@ elseif (WIN32)
+ else()
+ set(CHECK_LIBRARIES "${CHECK_INSTALL_DIR}/lib/libcheck.a")
+ endif()
+-find_package(LibM)
+-if (LIBM_FOUND)
+- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBM::LIBM")
+-endif()
+-find_package(LibRt)
+-if (LIBRT_FOUND)
+- set(CHECK_LIBRARIES "${CHECK_LIBRARIES};LIBRT::LIBRT")
+-endif()
++set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lm")
++set(CHECK_LIBRARIES "${CHECK_LIBRARIES};-lrt")
+
+ # Build the C unit tests
+ add_library(shared-c-unit-tests STATIC shared.c)
+--
+2.18.0
+
diff --git a/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb b/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
index 45d6ec8864..e9c2056180 100644
--- a/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
+++ b/meta-networking/recipes-connectivity/civetweb/civetweb_git.bb
@@ -2,14 +2,14 @@ SUMMARY = "Civetweb embedded web server"
HOMEPAGE = "https://github.com/civetweb/civetweb"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6f28fdcba0dda735eed62bac6a397562"
+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 \
+ "
-SRCREV = "b8148afe8fa44c64f75e69655c4fdc9095565568"
-PV = "1.10+git${SRCPV}"
-SRC_URI = "git://github.com/civetweb/civetweb.git"
-SRC_URI_append_class-native = " \
- file://0001-Test-Fix-missing-librt-and-libm-during-native-compil.patch \
-"
S = "${WORKDIR}/git"
# civetweb supports building with make or cmake (although cmake lacks few features)
@@ -22,12 +22,7 @@ EXTRA_OECMAKE = " \
-DCIVETWEB_ENABLE_DUKTAPE=OFF \
-DCIVETWEB_ENABLE_LUA=OFF \
-DCIVETWEB_ENABLE_ASAN=OFF \
-"
-EXTRA_OECMAKE_class-native = " \
- -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
@@ -40,7 +35,7 @@ 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_INSTALL_EXECUTABLE=ON,-DCIVETWEB_INSTALL_EXECUTABLE=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,"
diff --git a/meta-networking/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch b/meta-networking/recipes-connectivity/crda/crda/0001-Makefile-respect-LDFLAGS-for-libreg.patch
deleted file mode 100644
index 16800d5066..0000000000
--- a/meta-networking/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/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch b/meta-networking/recipes-connectivity/crda/crda/do-not-run-ldconfig-if-destdir-is-set.patch
deleted file mode 100644
index 3ef35ee549..0000000000
--- a/meta-networking/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/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch b/meta-networking/recipes-connectivity/crda/crda/fix-gcc-6-unused-variables.patch
deleted file mode 100644
index 747804d345..0000000000
--- a/meta-networking/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/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch b/meta-networking/recipes-connectivity/crda/crda/fix-issues-when-USE_OPENSSL-1.patch
deleted file mode 100644
index 1bb5c638f0..0000000000
--- a/meta-networking/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/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch b/meta-networking/recipes-connectivity/crda/crda/fix-linking-of-libraries-used-by-reglib.patch
deleted file mode 100644
index 812e983798..0000000000
--- a/meta-networking/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/recipes-connectivity/crda/crda/make.patch b/meta-networking/recipes-connectivity/crda/crda/make.patch
deleted file mode 100644
index 0b737852c2..0000000000
--- a/meta-networking/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/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch b/meta-networking/recipes-connectivity/crda/crda/use-target-word-size-instead-of-host-s.patch
deleted file mode 100644
index 100b765f2d..0000000000
--- a/meta-networking/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/recipes-connectivity/crda/crda_3.18.bb b/meta-networking/recipes-connectivity/crda/crda_3.18.bb
deleted file mode 100644
index 82a297b33e..0000000000
--- a/meta-networking/recipes-connectivity/crda/crda_3.18.bb
+++ /dev/null
@@ -1,36 +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 = "python-m2crypto-native python-typing-native python-native libgcrypt libnl openssl"
-
-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 \
-"
-SRC_URI[md5sum] = "0431fef3067bf503dfb464069f06163a"
-SRC_URI[sha256sum] = "43fcb9679f8b75ed87ad10944a506292def13e4afb194afa7aa921b01e8ecdbf"
-
-inherit python-dir pythonnative
-# Recursive make problem
-EXTRA_OEMAKE = "MAKEFLAGS= DESTDIR=${D} LIBDIR=${libdir}/crda LDLIBREG='-Wl,-rpath,${libdir}/crda -lreg'"
-EXTRA_OEMAKE_append = " USE_OPENSSL=1"
-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/recipes-connectivity/daq/daq_2.0.6.bb b/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
deleted file mode 100644
index ec35175a08..0000000000
--- a/meta-networking/recipes-connectivity/daq/daq_2.0.6.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "The dump DAQ test the various inline mode features "
-HOMEPAGE = "http://www.snort.org"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f9ce51a65dd738dc1ae631d8b21c40e0"
-
-PARALLEL_MAKE = ""
-
-DEPENDS = "libpcap libpcre libdnet"
-
-SRC_URI = "http://fossies.org/linux/misc/daq-${PV}.tar.gz \
- file://disable-run-test-program-while-cross-compiling.patch \
- file://0001-correct-the-location-of-unistd.h.patch \
- "
-
-# these 2 create undeclared dependency on libdnet and libnetfilter-queue from meta-networking
-# this error from test-dependencies script:
-# daq/daq/latest lost dependency on libdnet libmnl libnetfilter-queue libnfnetlink
-#
-# never look to /usr/local lib while cross compiling
-
-EXTRA_OECONF = "--disable-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,"
-
-SRC_URI[md5sum] = "2cd6da422a72c129c685fc4bb848c24c"
-SRC_URI[sha256sum] = "b40e1d1273e08aaeaa86e69d4f28d535b7e53bdb3898adf539266b63137be7cb"
-
-inherit autotools
-
-DISABLE_STATIC = ""
-
-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
new file mode 100644
index 0000000000..c5499ffeeb
--- /dev/null
+++ b/meta-networking/recipes-connectivity/daq/daq_2.0.7.bb
@@ -0,0 +1,32 @@
+SUMMARY = "The dump DAQ test the various inline mode features "
+HOMEPAGE = "http://www.snort.org"
+SECTION = "libs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f9ce51a65dd738dc1ae631d8b21c40e0"
+
+PARALLEL_MAKE = ""
+
+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 \
+ file://0001-correct-the-location-of-unistd.h.patch \
+ "
+SRC_URI[sha256sum] = "bdc4e5a24d1ea492c39ee213a63c55466a2e8114b6a9abed609927ae13a7705e"
+# these 2 create undeclared dependency on libdnet and libnetfilter-queue from meta-networking
+# this error from test-dependencies script:
+# daq/daq/latest lost dependency on libdnet libmnl libnetfilter-queue libnfnetlink
+#
+# never look to /usr/local lib while cross compiling
+
+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
+
+DISABLE_STATIC = ""
+
+BBCLASSEXTEND = "native"
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/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/dhcp/files/0001-Makefile.am-only-build-dhcrelay.patch b/meta-networking/recipes-connectivity/dhcp/files/0001-Makefile.am-only-build-dhcrelay.patch
new file mode 100644
index 0000000000..5320d7c9e9
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dhcp/files/0001-Makefile.am-only-build-dhcrelay.patch
@@ -0,0 +1,30 @@
+From 4fd67b6adb7c1d8524ba17d1a0b3894f901555a9 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 13 May 2021 15:23:16 +0800
+Subject: [PATCH] Makefile.am: only build dhcrelay
+
+Drop client and server build as we don't need them.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ed692a5..34f9772 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -38,7 +38,7 @@ endif
+
+ # Use an autoconf substitution vs an automake conditional here
+ # to fool automake when the bind directory does not exist.
+-SUBDIRS = @BINDSUBDIR@ includes tests common omapip client dhcpctl relay server
++SUBDIRS = @BINDSUBDIR@ includes common omapip relay
+
+ DIST_SUBDIRS = $(SUBDIRS) keama
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/dhcp/files/0002-bind-Makefile.in-disable-backtrace.patch b/meta-networking/recipes-connectivity/dhcp/files/0002-bind-Makefile.in-disable-backtrace.patch
new file mode 100644
index 0000000000..631a640ecc
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dhcp/files/0002-bind-Makefile.in-disable-backtrace.patch
@@ -0,0 +1,31 @@
+From 6c6bbfe6b33e5c7e46a4260d656593dbe610fd8a Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 8 Jun 2021 10:13:57 +0800
+Subject: [PATCH] bind/Makefile.in: disable backtrace
+
+Fixes build error for qemuarm on musl:
+libisc.so: undefined reference to `_Unwind_GetIP'
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ bind/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bind/Makefile.in b/bind/Makefile.in
+index 2e60091..533d55c 100644
+--- a/bind/Makefile.in
++++ b/bind/Makefile.in
+@@ -22,7 +22,7 @@ prefix = @prefix@
+ exec_prefix = @exec_prefix@
+
+ bindconfig = --without-openssl --without-libxml2 --without-libjson \
+- --without-gssapi --disable-threads --without-lmdb \
++ --without-gssapi --disable-threads --without-lmdb --disable-backtrace \
+ --includedir=@includedir@ --libdir=@libdir@ --without-python\
+ @BINDLT@ @BINDIOMUX@ @BINDCONFIG@ --enable-full-report
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/dhcp/files/0003-bind-Makefile.in-regenerate-configure.patch b/meta-networking/recipes-connectivity/dhcp/files/0003-bind-Makefile.in-regenerate-configure.patch
new file mode 100644
index 0000000000..71be0276a3
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dhcp/files/0003-bind-Makefile.in-regenerate-configure.patch
@@ -0,0 +1,30 @@
+From 6ca1b224032355521b35471d222d0b09c08369a0 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 27 May 2021 11:38:36 +0800
+Subject: [PATCH] bind/Makefile.in: regenerate configure
+
+Run autogen.sh to regenerate configure.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ bind/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/bind/Makefile.in b/bind/Makefile.in
+index 533d55c..fdffe15 100644
+--- a/bind/Makefile.in
++++ b/bind/Makefile.in
+@@ -55,7 +55,7 @@ bind1:
+ else \
+ echo Configuring BIND libraries for DHCP. ; \
+ rm -rf ${cleandirs} ${cleanfiles} ; \
+- (cd ${bindsrcdir} && \
++ (cd ${bindsrcdir} && ./autogen.sh && \
+ ./configure ${bindconfig} > ${binddir}/configure.log); \
+ fi
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/dhcp/files/default-relay b/meta-networking/recipes-connectivity/dhcp/files/default-relay
new file mode 100644
index 0000000000..7961f014be
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dhcp/files/default-relay
@@ -0,0 +1,12 @@
+# Defaults for dhcp-relay initscript
+# sourced by /etc/init.d/dhcp-relay
+
+# What servers should the DHCP relay forward requests to?
+# e.g: SERVERS="192.168.0.1"
+SERVERS=""
+
+# On what interfaces should the DHCP relay (dhrelay) serve DHCP requests?
+INTERFACES=""
+
+# Additional options that are passed to the DHCP relay daemon?
+OPTIONS=""
diff --git a/meta-networking/recipes-connectivity/dhcp/files/dhcrelay.service b/meta-networking/recipes-connectivity/dhcp/files/dhcrelay.service
new file mode 100644
index 0000000000..15ff927d34
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dhcp/files/dhcrelay.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=DHCP Relay Agent Daemon
+After=network.target
+
+[Service]
+EnvironmentFile=@SYSCONFDIR@/default/dhcp-relay
+ExecStart=@SBINDIR@/dhcrelay -d --no-pid -q $SERVERS
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/dhcp/files/init-relay b/meta-networking/recipes-connectivity/dhcp/files/init-relay
new file mode 100644
index 0000000000..019a7e84cf
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dhcp/files/init-relay
@@ -0,0 +1,44 @@
+#!/bin/sh
+#
+# $Id: dhcp3-relay,v 1.1 2004/04/16 15:41:08 ml Exp $
+#
+
+# It is not safe to start if we don't have a default configuration...
+if [ ! -f /etc/default/dhcp-relay ]; then
+ echo "/etc/default/dhcp-relay does not exist! - Aborting..."
+ echo "create this file to fix the problem."
+ exit 1
+fi
+
+# Read init script configuration (interfaces the daemon should listen on
+# and the DHCP server we should forward requests to.)
+. /etc/default/dhcp-relay
+
+# Build command line for interfaces (will be passed to dhrelay below.)
+IFCMD=""
+if test "$INTERFACES" != ""; then
+ for I in $INTERFACES; do
+ IFCMD=${IFCMD}"-i "${I}" "
+ done
+fi
+
+DHCRELAYPID=/var/run/dhcrelay.pid
+
+case "$1" in
+ start)
+ start-stop-daemon -S -x /usr/sbin/dhcrelay -- -q $OPTIONS $IFCMD $SERVERS
+ ;;
+ stop)
+ start-stop-daemon -K -x /usr/sbin/dhcrelay
+ ;;
+ restart | force-reload)
+ $0 stop
+ sleep 2
+ $0 start
+ ;;
+ *)
+ echo "Usage: /etc/init.d/dhcp-relay {start|stop|restart|force-reload}"
+ exit 1
+esac
+
+exit 0
diff --git a/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb b/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb
deleted file mode 100644
index 885c6c0e2b..0000000000
--- a/meta-networking/recipes-connectivity/dhcpcd/dhcpcd_6.11.5.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SECTION = "console/network"
-SUMMARY = "dhcpcd - a DHCP client"
-DESCRIPTION = "dhcpcd runs on your machine and silently configures your computer to work on the attached networks without trouble and mostly without configuration."
-
-HOMEPAGE = "http://roy.marples.name/projects/dhcpcd/"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://dhcpcd.c;endline=26;md5=77c40d671aff804ca91ea99556da8e9b"
-
-SRC_URI = "http://roy.marples.name/downloads/${BPN}/${BPN}-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "2465624b62c1154f0e89dc69c42c849b"
-SRC_URI[sha256sum] = "6f9674dc7e27e936cc787175404a6171618675ecfb6903ab9887b1b66a87d69e"
-
-inherit autotools-brokensep
-
-PACKAGECONFIG ?= "udev ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-
-PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev,udev"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6"
-
-EXTRA_OECONF = "--enable-ipv4"
-
-FILES_${PN}-dbg += "${libdir}/dhcpcd/dev/.debug"
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
new file mode 100644
index 0000000000..884be404b5
--- /dev/null
+++ b/meta-networking/recipes-connectivity/dibbler/dibbler/0001-port-linux-Re-order-header-includes.patch
@@ -0,0 +1,33 @@
+From cbb33e1548fe526c3e7dead294617bde1f087ae3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Aug 2022 16:40:38 -0700
+Subject: [PATCH] port-linux: Re-order header includes
+
+linux/if.h when included before net/if.h casues duplicate definitions
+
+Upstream-Status: Inappropriate [Upstream is Dead]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Port-linux/interface.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Port-linux/interface.c b/Port-linux/interface.c
+index 18777e91..19aefb2b 100644
+--- a/Port-linux/interface.c
++++ b/Port-linux/interface.c
+@@ -25,7 +25,6 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+-#include <linux/if.h>
+ #include <syslog.h>
+ #include <string.h>
+ #include <errno.h>
+@@ -42,6 +41,7 @@
+ #include <stdarg.h>
+ #include <linux/sockios.h>
+ #include <linux/if_ether.h>
++#include <linux/if.h>
+
+ int interface_auto_up = 0;
+ int interface_do_message = 0;
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 8890e14318..34f8a7e3e5 100644
--- a/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
+++ b/meta-networking/recipes-connectivity/dibbler/dibbler_git.bb
@@ -2,14 +2,17 @@ SUMMARY = "Dibbler DHCPv6 client"
DESCRIPTION = "Dibbler is a portable DHCPv6 implementation. It supports stateful as well as stateless autoconfiguration for IPv6."
HOMEPAGE = "http://klub.com.pl/dhcpv6"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=7236695bb6d4461c105d685a8b61c4e3"
-SRCREV = "c4b0ed52e751da7823dd9a36e91f93a6310e5525"
+SRCREV = "a7c6cf58a88a510cb00841351e75030ce78d36bf"
-SRC_URI = "git://github.com/tomaszmrugalski/dibbler \
+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}"
S = "${WORKDIR}/git"
@@ -29,9 +32,12 @@ inherit autotools
DEPENDS += "flex-native"
+CPPFLAGS += "-D_GNU_SOURCE -Dregister=''"
+LDFLAGS += "-pthread"
+
PACKAGES =+ "${PN}-requestor ${PN}-client ${PN}-relay ${PN}-server"
-FILES_${PN}-client = "${sbindir}/${PN}-client"
-FILES_${PN}-relay = "${sbindir}/${PN}-relay"
-FILES_${PN}-requestor = "${sbindir}/${PN}-requestor"
-FILES_${PN}-server = "${sbindir}/${PN}-server"
+FILES:${PN}-client = "${sbindir}/${PN}-client"
+FILES:${PN}-relay = "${sbindir}/${PN}-relay"
+FILES:${PN}-requestor = "${sbindir}/${PN}-requestor"
+FILES:${PN}-server = "${sbindir}/${PN}-server"
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb b/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb
index 51e220c9e7..42ecf9bac4 100644
--- a/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/ez-ipupdate_3.0.11b7.bb
@@ -1,15 +1,16 @@
SUMMARY = "daemon that sends updates when your IP changes"
HOMEPAGE = "http://sourceforge.net/projects/ez-ipupdate/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=7783169b4be06b54e86730eb01bc3a31"
SRC_URI = "http://sourceforge.net/projects/ez-ipupdate/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
- file://Makefile.am.patch \
- file://cache_file.c.patch \
- file://conf_file.c.patch \
- file://wformat.patch \
- "
+ file://Makefile.am.patch \
+ file://cache_file.c.patch \
+ file://conf_file.c.patch \
+ file://wformat.patch \
+ file://0001-ez-ipupdate-Include-time.h-for-time-API-prototype.patch \
+ "
SRC_URI[md5sum] = "525be4550b4461fdf105aed8e753b020"
SRC_URI[sha256sum] = "a15ec0dc0b78ec7578360987c68e43a67bc8d3591cbf528a323588830ae22c20"
diff --git a/meta-networking/recipes-connectivity/ez-ipupdate/files/0001-ez-ipupdate-Include-time.h-for-time-API-prototype.patch b/meta-networking/recipes-connectivity/ez-ipupdate/files/0001-ez-ipupdate-Include-time.h-for-time-API-prototype.patch
new file mode 100644
index 0000000000..b2a2ebdae3
--- /dev/null
+++ b/meta-networking/recipes-connectivity/ez-ipupdate/files/0001-ez-ipupdate-Include-time.h-for-time-API-prototype.patch
@@ -0,0 +1,44 @@
+From 6c8fe883df993b9e7987c8f1c849962f8007a373 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 12:50:37 -0700
+Subject: [PATCH] ez-ipupdate: Include time.h for time() API prototype
+
+Fix printf format specifiers for snprintf
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ez-ipupdate.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/ez-ipupdate.c b/ez-ipupdate.c
+index 15a4c13..5cbe7f3 100644
+--- a/ez-ipupdate.c
++++ b/ez-ipupdate.c
+@@ -38,6 +38,8 @@
+ # include <config.h>
+ #endif
+
++#include <time.h>
++
+ // you man very well need to edit this, don't worry though, email is only sent
+ // if bad things happend and it has to exit when in daemon mode.
+ #define SEND_EMAIL_CMD "mail"
+@@ -2483,7 +2485,7 @@ int DHS_update_entry(void)
+ p += strlen(p);
+ limit = BUFFER_SIZE - 1 - strlen(buf);
+
+- snprintf(buf, BUFFER_SIZE, "Content-length: %d\015\012", strlen(putbuf));
++ snprintf(buf, BUFFER_SIZE, "Content-length: %lu\015\012", strlen(putbuf));
+ output(buf);
+ snprintf(buf, BUFFER_SIZE, "\015\012");
+ output(buf);
+@@ -2620,7 +2622,7 @@ int DHS_update_entry(void)
+ p += strlen(p);
+ limit = BUFFER_SIZE - 1 - strlen(buf);
+
+- snprintf(buf, BUFFER_SIZE, "Content-length: %d\015\012", strlen(putbuf));
++ snprintf(buf, BUFFER_SIZE, "Content-length: %lu\015\012", strlen(putbuf));
+ output(buf);
+ snprintf(buf, BUFFER_SIZE, "\015\012");
+ output(buf);
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-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/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..e5442360b3
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0003-configure.ac-allow-cross-compilation.patch
@@ -0,0 +1,37 @@
+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>
+---
+ 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 a0f510cfb3..d2f3eca03e 100644
+--- a/src/modules/rlm_krb5/configure.ac
++++ b/src/modules/rlm_krb5/configure.ac
+@@ -140,7 +140,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.25.1
+
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..8fd0dca443
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0006-Avoid-searching-host-dirs.patch
@@ -0,0 +1,198 @@
+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>
+---
+ 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 a953d0e1b6..ede143d3c2 100644
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -115,7 +115,7 @@ dnl #
+ dnl # Try to guess possible locations.
+ dnl #
+ if test "x$smart_lib" = "x"; then
+- for try in /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"
+@@ -155,7 +155,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 44f84aa27e..23a1899591 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_db2/configure.ac
+@@ -61,14 +61,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 4c2fd7ba9e..10c864def5 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_firebird/configure.ac
+@@ -60,14 +60,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 d26ac9c431..6e4500e948 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_iodbc/configure.ac
+@@ -61,14 +61,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 df36da77bf..31359041c7 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/configure.ac
+@@ -140,7 +140,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'
+@@ -149,7 +149,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'
+@@ -243,7 +243,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 3b45da582a..03e6607d2b 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_oracle/configure.ac
+@@ -68,7 +68,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 8ac1022e89..d46c0f66bf 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_postgresql/configure.ac
+@@ -45,7 +45,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"
+@@ -94,7 +94,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 f10279fe1f..0081a338c8 100644
+--- a/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
++++ b/src/modules/rlm_sql/drivers/rlm_sql_unixodbc/configure.ac
+@@ -61,14 +61,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"
+--
+2.25.1
+
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..cb71fb1373
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0007-rlm_python-add-PY_INC_DIR-in-search-dir.patch
@@ -0,0 +1,33 @@
+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 08ecb62518..d5c0944ff1 100644
+--- a/src/modules/rlm_python/configure.ac
++++ b/src/modules/rlm_python/configure.ac
+@@ -98,7 +98,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.25.1
+
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..69125eb3cb
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0011-rlm_mschap-Use-includedir-instead-of-hardcoding-usr-.patch
@@ -0,0 +1,31 @@
+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 0fd105d7e6..6ab15509e5 100644
+--- a/src/modules/rlm_mschap/configure.ac
++++ b/src/modules/rlm_mschap/configure.ac
+@@ -75,7 +75,7 @@ if test x$with_[]modname != xno; then
+ mod_ldflags="-F /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks -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
+--
+2.25.1
+
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-python.m4-for-detecting-python-3.10.patch b/meta-networking/recipes-connectivity/freeradius/files/0017-add-python.m4-for-detecting-python-3.10.patch
new file mode 100644
index 0000000000..62a4869c95
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/files/0017-add-python.m4-for-detecting-python-3.10.patch
@@ -0,0 +1,427 @@
+From f1418e1b46cb1cbd130935b76f5c78c577d1ad28 Mon Sep 17 00:00:00 2001
+From: Matthew Newton <matthew-git@newtoncomputing.co.uk>
+Date: Wed, 28 Sep 2022 23:49:32 +0100
+Subject: [PATCH] add python.m4 for detecting python > 3.10
+
+Upstream-Status: Backport
+[https://github.com/FreeRADIUS/freeradius-server/commit/86584d2753829756cc73aadce5d48f703af472b1]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ src/modules/rlm_python3/configure.ac | 4 +
+ src/modules/rlm_python3/m4/python.m4 | 363 +++++++++++++++++++++++++++
+ src/modules/rlm_python3/m4/runlog.m4 | 17 ++
+ 3 files changed, 384 insertions(+)
+ create mode 100644 src/modules/rlm_python3/m4/python.m4
+ create mode 100644 src/modules/rlm_python3/m4/runlog.m4
+
+diff --git a/src/modules/rlm_python3/configure.ac b/src/modules/rlm_python3/configure.ac
+index bc0e97f9ba..90f2116e73 100644
+--- a/src/modules/rlm_python3/configure.ac
++++ b/src/modules/rlm_python3/configure.ac
+@@ -3,6 +3,10 @@ AC_INIT(rlm_python3.c)
+ AC_REVISION($Revision$)
+ AC_DEFUN(modname,[rlm_python3])
+
++m4_include([ax_compare_version.m4])
++m4_include([runlog.m4])
++m4_include([python.m4])
++
+ AC_ARG_WITH([]modname,
+ [ --with-[]modname build []modname. (default=yes)])
+
+diff --git a/src/modules/rlm_python3/m4/python.m4 b/src/modules/rlm_python3/m4/python.m4
+new file mode 100644
+index 0000000000..78ca7635ab
+--- /dev/null
++++ b/src/modules/rlm_python3/m4/python.m4
+@@ -0,0 +1,363 @@
++## ------------------------ -*- Autoconf -*-
++## Python file handling
++## From Andrew Dalke
++## Updated by James Henstridge and other contributors.
++## ------------------------
++# Copyright (C) 1999-2021 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_PATH_PYTHON([MINIMUM-VERSION], [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
++# ---------------------------------------------------------------------------
++# Adds support for distributing Python modules and packages. To
++# install modules, copy them to $(pythondir), using the python_PYTHON
++# automake variable. To install a package with the same name as the
++# automake package, install to $(pkgpythondir), or use the
++# pkgpython_PYTHON automake variable.
++#
++# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as
++# locations to install python extension modules (shared libraries).
++# Another macro is required to find the appropriate flags to compile
++# extension modules.
++#
++# If your package is configured with a different prefix to python,
++# users will have to add the install directory to the PYTHONPATH
++# environment variable, or create a .pth file (see the python
++# documentation for details).
++#
++# If the MINIMUM-VERSION argument is passed, AM_PATH_PYTHON will
++# cause an error if the version of python installed on the system
++# doesn't meet the requirement. MINIMUM-VERSION should consist of
++# numbers and dots only.
++AC_DEFUN([AM_PATH_PYTHON],
++ [
++ dnl Find a Python interpreter. Python versions prior to 2.0 are not
++ dnl supported. (2.0 was released on October 16, 2000).
++ m4_define_default([_AM_PYTHON_INTERPRETER_LIST],
++[python python2 python3 dnl
++ python3.11 python3.10 dnl
++ python3.9 python3.8 python3.7 python3.6 python3.5 python3.4 python3.3 dnl
++ python3.2 python3.1 python3.0 dnl
++ python2.7 python2.6 python2.5 python2.4 python2.3 python2.2 python2.1 dnl
++ python2.0])
++
++ AC_ARG_VAR([PYTHON], [the Python interpreter])
++
++ m4_if([$1],[],[
++ dnl No version check is needed.
++ # Find any Python interpreter.
++ if test -z "$PYTHON"; then
++ AC_PATH_PROGS([PYTHON], _AM_PYTHON_INTERPRETER_LIST, :)
++ fi
++ am_display_PYTHON=python
++ ], [
++ dnl A version check is needed.
++ if test -n "$PYTHON"; then
++ # If the user set $PYTHON, use it and don't search something else.
++ AC_MSG_CHECKING([whether $PYTHON version is >= $1])
++ AM_PYTHON_CHECK_VERSION([$PYTHON], [$1],
++ [AC_MSG_RESULT([yes])],
++ [AC_MSG_RESULT([no])
++ AC_MSG_ERROR([Python interpreter is too old])])
++ am_display_PYTHON=$PYTHON
++ else
++ # Otherwise, try each interpreter until we find one that satisfies
++ # VERSION.
++ AC_CACHE_CHECK([for a Python interpreter with version >= $1],
++ [am_cv_pathless_PYTHON],[
++ for am_cv_pathless_PYTHON in _AM_PYTHON_INTERPRETER_LIST none; do
++ test "$am_cv_pathless_PYTHON" = none && break
++ AM_PYTHON_CHECK_VERSION([$am_cv_pathless_PYTHON], [$1], [break])
++ done])
++ # Set $PYTHON to the absolute path of $am_cv_pathless_PYTHON.
++ if test "$am_cv_pathless_PYTHON" = none; then
++ PYTHON=:
++ else
++ AC_PATH_PROG([PYTHON], [$am_cv_pathless_PYTHON])
++ fi
++ am_display_PYTHON=$am_cv_pathless_PYTHON
++ fi
++ ])
++
++ if test "$PYTHON" = :; then
++ dnl Run any user-specified action, or abort.
++ m4_default([$3], [AC_MSG_ERROR([no suitable Python interpreter found])])
++ else
++
++ dnl Query Python for its version number. Although site.py simply uses
++ dnl sys.version[:3], printing that failed with Python 3.10, since the
++ dnl trailing zero was eliminated. So now we output just the major
++ dnl and minor version numbers, as numbers. Apparently the tertiary
++ dnl version is not of interest.
++ dnl
++ AC_CACHE_CHECK([for $am_display_PYTHON version], [am_cv_python_version],
++ [am_cv_python_version=`$PYTHON -c "import sys; print ('%u.%u' % sys.version_info[[:2]])"`])
++ AC_SUBST([PYTHON_VERSION], [$am_cv_python_version])
++
++ dnl At times, e.g., when building shared libraries, you may want
++ dnl to know which OS platform Python thinks this is.
++ dnl
++ AC_CACHE_CHECK([for $am_display_PYTHON platform], [am_cv_python_platform],
++ [am_cv_python_platform=`$PYTHON -c "import sys; sys.stdout.write(sys.platform)"`])
++ AC_SUBST([PYTHON_PLATFORM], [$am_cv_python_platform])
++
++ dnl emacs-page
++ dnl If --with-python-sys-prefix is given, use the values of sys.prefix
++ dnl and sys.exec_prefix for the corresponding values of PYTHON_PREFIX
++ dnl and PYTHON_EXEC_PREFIX. Otherwise, use the GNU ${prefix} and
++ dnl ${exec_prefix} variables.
++ dnl
++ dnl The two are made distinct variables so they can be overridden if
++ dnl need be, although general consensus is that you shouldn't need
++ dnl this separation.
++ dnl
++ dnl Also allow directly setting the prefixes via configure options,
++ dnl overriding any default.
++ dnl
++ if test "x$prefix" = xNONE; then
++ am__usable_prefix=$ac_default_prefix
++ else
++ am__usable_prefix=$prefix
++ fi
++
++ # Allow user to request using sys.* values from Python,
++ # instead of the GNU $prefix values.
++ AC_ARG_WITH([python-sys-prefix],
++ [AS_HELP_STRING([--with-python-sys-prefix],
++ [use Python's sys.prefix and sys.exec_prefix values])],
++ [am_use_python_sys=:],
++ [am_use_python_sys=false])
++
++ # Allow user to override whatever the default Python prefix is.
++ AC_ARG_WITH([python_prefix],
++ [AS_HELP_STRING([--with-python_prefix],
++ [override the default PYTHON_PREFIX])],
++ [am_python_prefix_subst=$withval
++ am_cv_python_prefix=$withval
++ AC_MSG_CHECKING([for explicit $am_display_PYTHON prefix])
++ AC_MSG_RESULT([$am_cv_python_prefix])],
++ [
++ if $am_use_python_sys; then
++ # using python sys.prefix value, not GNU
++ AC_CACHE_CHECK([for python default $am_display_PYTHON prefix],
++ [am_cv_python_prefix],
++ [am_cv_python_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.prefix)"`])
++
++ dnl If sys.prefix is a subdir of $prefix, replace the literal value of
++ dnl $prefix with a variable reference so it can be overridden.
++ case $am_cv_python_prefix in
++ $am__usable_prefix*)
++ am__strip_prefix=`echo "$am__usable_prefix" | sed 's|.|.|g'`
++ am_python_prefix_subst=`echo "$am_cv_python_prefix" | sed "s,^$am__strip_prefix,\\${prefix},"`
++ ;;
++ *)
++ am_python_prefix_subst=$am_cv_python_prefix
++ ;;
++ esac
++ else # using GNU prefix value, not python sys.prefix
++ am_python_prefix_subst='${prefix}'
++ am_python_prefix=$am_python_prefix_subst
++ AC_MSG_CHECKING([for GNU default $am_display_PYTHON prefix])
++ AC_MSG_RESULT([$am_python_prefix])
++ fi])
++ # Substituting python_prefix_subst value.
++ AC_SUBST([PYTHON_PREFIX], [$am_python_prefix_subst])
++
++ # emacs-page Now do it all over again for Python exec_prefix, but with yet
++ # another conditional: fall back to regular prefix if that was specified.
++ AC_ARG_WITH([python_exec_prefix],
++ [AS_HELP_STRING([--with-python_exec_prefix],
++ [override the default PYTHON_EXEC_PREFIX])],
++ [am_python_exec_prefix_subst=$withval
++ am_cv_python_exec_prefix=$withval
++ AC_MSG_CHECKING([for explicit $am_display_PYTHON exec_prefix])
++ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
++ [
++ # no explicit --with-python_exec_prefix, but if
++ # --with-python_prefix was given, use its value for python_exec_prefix too.
++ AS_IF([test -n "$with_python_prefix"],
++ [am_python_exec_prefix_subst=$with_python_prefix
++ am_cv_python_exec_prefix=$with_python_prefix
++ AC_MSG_CHECKING([for python_prefix-given $am_display_PYTHON exec_prefix])
++ AC_MSG_RESULT([$am_cv_python_exec_prefix])],
++ [
++ # Set am__usable_exec_prefix whether using GNU or Python values,
++ # since we use that variable for pyexecdir.
++ if test "x$exec_prefix" = xNONE; then
++ am__usable_exec_prefix=$am__usable_prefix
++ else
++ am__usable_exec_prefix=$exec_prefix
++ fi
++ #
++ if $am_use_python_sys; then # using python sys.exec_prefix, not GNU
++ AC_CACHE_CHECK([for python default $am_display_PYTHON exec_prefix],
++ [am_cv_python_exec_prefix],
++ [am_cv_python_exec_prefix=`$PYTHON -c "import sys; sys.stdout.write(sys.exec_prefix)"`])
++ dnl If sys.exec_prefix is a subdir of $exec_prefix, replace the
++ dnl literal value of $exec_prefix with a variable reference so it can
++ dnl be overridden.
++ case $am_cv_python_exec_prefix in
++ $am__usable_exec_prefix*)
++ am__strip_prefix=`echo "$am__usable_exec_prefix" | sed 's|.|.|g'`
++ am_python_exec_prefix_subst=`echo "$am_cv_python_exec_prefix" | sed "s,^$am__strip_prefix,\\${exec_prefix},"`
++ ;;
++ *)
++ am_python_exec_prefix_subst=$am_cv_python_exec_prefix
++ ;;
++ esac
++ else # using GNU $exec_prefix, not python sys.exec_prefix
++ am_python_exec_prefix_subst='${exec_prefix}'
++ am_python_exec_prefix=$am_python_exec_prefix_subst
++ AC_MSG_CHECKING([for GNU default $am_display_PYTHON exec_prefix])
++ AC_MSG_RESULT([$am_python_exec_prefix])
++ fi])])
++ # Substituting python_exec_prefix_subst.
++ AC_SUBST([PYTHON_EXEC_PREFIX], [$am_python_exec_prefix_subst])
++
++ # Factor out some code duplication into this shell variable.
++ am_python_setup_sysconfig="\
++import sys
++# Prefer sysconfig over distutils.sysconfig, for better compatibility
++# with python 3.x. See automake bug#10227.
++try:
++ import sysconfig
++except ImportError:
++ can_use_sysconfig = 0
++else:
++ can_use_sysconfig = 1
++# Can't use sysconfig in CPython 2.7, since it's broken in virtualenvs:
++# <https://github.com/pypa/virtualenv/issues/118>
++try:
++ from platform import python_implementation
++ if python_implementation() == 'CPython' and sys.version[[:3]] == '2.7':
++ can_use_sysconfig = 0
++except ImportError:
++ pass"
++
++ dnl emacs-page Set up 4 directories:
++
++ dnl 1. pythondir: where to install python scripts. This is the
++ dnl site-packages directory, not the python standard library
++ dnl directory like in previous automake betas. This behavior
++ dnl is more consistent with lispdir.m4 for example.
++ dnl Query distutils for this directory.
++ dnl
++ AC_CACHE_CHECK([for $am_display_PYTHON script directory (pythondir)],
++ [am_cv_python_pythondir],
++ [if test "x$am_cv_python_prefix" = x; then
++ am_py_prefix=$am__usable_prefix
++ else
++ am_py_prefix=$am_cv_python_prefix
++ fi
++ am_cv_python_pythondir=`$PYTHON -c "
++$am_python_setup_sysconfig
++if can_use_sysconfig:
++ if hasattr(sysconfig, 'get_default_scheme'):
++ scheme = sysconfig.get_default_scheme()
++ else:
++ scheme = sysconfig._get_default_scheme()
++ if scheme == 'posix_local':
++ # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/
++ scheme = 'posix_prefix'
++ sitedir = sysconfig.get_path('purelib', scheme, vars={'base':'$am_py_prefix'})
++else:
++ from distutils import sysconfig
++ sitedir = sysconfig.get_python_lib(0, 0, prefix='$am_py_prefix')
++sys.stdout.write(sitedir)"`
++ #
++ case $am_cv_python_pythondir in
++ $am_py_prefix*)
++ am__strip_prefix=`echo "$am_py_prefix" | sed 's|.|.|g'`
++ am_cv_python_pythondir=`echo "$am_cv_python_pythondir" | sed "s,^$am__strip_prefix,\\${PYTHON_PREFIX},"`
++ ;;
++ *)
++ case $am_py_prefix in
++ /usr|/System*) ;;
++ *) am_cv_python_pythondir="\${PYTHON_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
++ ;;
++ esac
++ ;;
++ esac
++ ])
++ AC_SUBST([pythondir], [$am_cv_python_pythondir])
++
++ dnl 2. pkgpythondir: $PACKAGE directory under pythondir. Was
++ dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is
++ dnl more consistent with the rest of automake.
++ dnl
++ AC_SUBST([pkgpythondir], [\${pythondir}/$PACKAGE])
++
++ dnl 3. pyexecdir: directory for installing python extension modules
++ dnl (shared libraries).
++ dnl Query distutils for this directory.
++ dnl
++ AC_CACHE_CHECK([for $am_display_PYTHON extension module directory (pyexecdir)],
++ [am_cv_python_pyexecdir],
++ [if test "x$am_cv_python_exec_prefix" = x; then
++ am_py_exec_prefix=$am__usable_exec_prefix
++ else
++ am_py_exec_prefix=$am_cv_python_exec_prefix
++ fi
++ am_cv_python_pyexecdir=`$PYTHON -c "
++$am_python_setup_sysconfig
++if can_use_sysconfig:
++ if hasattr(sysconfig, 'get_default_scheme'):
++ scheme = sysconfig.get_default_scheme()
++ else:
++ scheme = sysconfig._get_default_scheme()
++ if scheme == 'posix_local':
++ # Debian's default scheme installs to /usr/local/ but we want to find headers in /usr/
++ scheme = 'posix_prefix'
++ sitedir = sysconfig.get_path('platlib', scheme, vars={'platbase':'$am_py_exec_prefix'})
++else:
++ from distutils import sysconfig
++ sitedir = sysconfig.get_python_lib(1, 0, prefix='$am_py_exec_prefix')
++sys.stdout.write(sitedir)"`
++ #
++ case $am_cv_python_pyexecdir in
++ $am_py_exec_prefix*)
++ am__strip_prefix=`echo "$am_py_exec_prefix" | sed 's|.|.|g'`
++ am_cv_python_pyexecdir=`echo "$am_cv_python_pyexecdir" | sed "s,^$am__strip_prefix,\\${PYTHON_EXEC_PREFIX},"`
++ ;;
++ *)
++ case $am_py_exec_prefix in
++ /usr|/System*) ;;
++ *) am_cv_python_pyexecdir="\${PYTHON_EXEC_PREFIX}/lib/python$PYTHON_VERSION/site-packages"
++ ;;
++ esac
++ ;;
++ esac
++ ])
++ AC_SUBST([pyexecdir], [$am_cv_python_pyexecdir])
++
++ dnl 4. pkgpyexecdir: $(pyexecdir)/$(PACKAGE)
++ dnl
++ AC_SUBST([pkgpyexecdir], [\${pyexecdir}/$PACKAGE])
++
++ dnl Run any user-specified action.
++ $2
++ fi
++])
++
++
++# AM_PYTHON_CHECK_VERSION(PROG, VERSION, [ACTION-IF-TRUE], [ACTION-IF-FALSE])
++# ---------------------------------------------------------------------------
++# Run ACTION-IF-TRUE if the Python interpreter PROG has version >= VERSION.
++# Run ACTION-IF-FALSE otherwise.
++# This test uses sys.hexversion instead of the string equivalent (first
++# word of sys.version), in order to cope with versions such as 2.2c1.
++# This supports Python 2.0 or higher. (2.0 was released on October 16, 2000).
++AC_DEFUN([AM_PYTHON_CHECK_VERSION],
++ [prog="import sys
++# split strings by '.' and convert to numeric. Append some zeros
++# because we need at least 4 digits for the hex conversion.
++# map returns an iterator in Python 3.0 and a list in 2.x
++minver = list(map(int, '$2'.split('.'))) + [[0, 0, 0]]
++minverhex = 0
++# xrange is not present in Python 3.0 and range returns an iterator
++for i in list(range(0, 4)): minverhex = (minverhex << 8) + minver[[i]]
++sys.exit(sys.hexversion < minverhex)"
++ AS_IF([AM_RUN_LOG([$1 -c "$prog"])], [$3], [$4])])
+diff --git a/src/modules/rlm_python3/m4/runlog.m4 b/src/modules/rlm_python3/m4/runlog.m4
+new file mode 100644
+index 0000000000..690efc3258
+--- /dev/null
++++ b/src/modules/rlm_python3/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.25.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 71b78090c3..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-add-option-for-libcap.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 74eed61dec8702c89f3e121d577ea9db25c961a4 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Mon, 11 Jan 2016 02:52:16 -0500
-Subject: [PATCH] configure.ac: add option for libcap
-
-Upstream-Status: Pending
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- configure.ac | 37 ++++++++++++++++++++++++++++---------
- 1 file changed, 28 insertions(+), 9 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 066d3d7..6e4266b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -948,6 +948,23 @@ 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=
-@@ -981,15 +998,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
-
- VL_LIB_READLINE
---
-1.9.1
-
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 30497a6029..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-configure.ac-allow-cross-compilation.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-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>
----
- 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 eb43534..113a079 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.10.2
-
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-issues-related-to-m4-include-path.patch b/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch
deleted file mode 100644
index d29b2ac39d..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-fix-issues-related-to-m4-include-path.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From d8e251ef97869ab2c1c82bd374016f402083997c Mon Sep 17 00:00:00 2001
-From: Jorge Pereira <jpereiran@gmail.com>
-Date: Mon, 7 Dec 2015 16:51:07 -0200
-Subject: [PATCH] Fixing issues related to m4 include path
-
-Upstream-Status: Submitted [1]
-
-[1]: https://github.com/FreeRADIUS/freeradius-server/pull/1428
-
-Submmited by: Jorge Pereira <jpereiran@gmail.com>
----
- src/modules/rlm_example/config.h.in | 39 ++--------------------
- src/modules/rlm_ldap/configure | 2 +-
- src/modules/rlm_pam/config.h.in | 3 ++
- src/modules/rlm_perl/config.h.in | 3 ++
- src/modules/rlm_perl/configure.ac | 2 +-
- src/modules/rlm_radutmp/config.h.in | 3 ++
- src/modules/rlm_ruby/configure | 1 +
- src/modules/rlm_ruby/configure.ac | 9 ++---
- src/modules/rlm_smsotp/config.h.in | 3 ++
- .../rlm_sql/drivers/rlm_sql_mysql/config.h.in | 3 ++
- src/modules/rlm_unix/config.h.in | 6 ++++
- 11 files changed, 32 insertions(+), 42 deletions(-)
-
-diff --git a/src/modules/rlm_example/config.h.in b/src/modules/rlm_example/config.h.in
-index 2a81ef5..f80de9c 100644
---- a/src/modules/rlm_example/config.h.in
-+++ b/src/modules/rlm_example/config.h.in
-@@ -1,38 +1,5 @@
- /* config.h.in. Generated from configure.ac by autoheader. */
-
--/* Define to 1 if you have the <inttypes.h> header file. */
--#undef HAVE_INTTYPES_H
--
--/* Define to 1 if you have the <memory.h> header file. */
--#undef HAVE_MEMORY_H
--
--/* Define to 1 if you have the `printf' function. */
--#undef HAVE_PRINTF
--
--/* Define to 1 if you have the <stdint.h> header file. */
--#undef HAVE_STDINT_H
--
--/* Define to 1 if you have the <stdio.h> header file. */
--#undef HAVE_STDIO_H
--
--/* Define to 1 if you have the <stdlib.h> header file. */
--#undef HAVE_STDLIB_H
--
--/* Define to 1 if you have the <strings.h> header file. */
--#undef HAVE_STRINGS_H
--
--/* Define to 1 if you have the <string.h> header file. */
--#undef HAVE_STRING_H
--
--/* Define to 1 if you have the <sys/stat.h> header file. */
--#undef HAVE_SYS_STAT_H
--
--/* Define to 1 if you have the <sys/types.h> header file. */
--#undef HAVE_SYS_TYPES_H
--
--/* Define to 1 if you have the <unistd.h> header file. */
--#undef HAVE_UNISTD_H
--
- /* Define to the address where bug reports for this package should be sent. */
- #undef PACKAGE_BUGREPORT
-
-@@ -45,8 +12,8 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
--
--/* Define to 1 if you have the ANSI C header files. */
--#undef STDC_HEADERS
-diff --git a/src/modules/rlm_ldap/configure b/src/modules/rlm_ldap/configure
-index e0c15d9..cdf96d5 100755
---- a/src/modules/rlm_ldap/configure
-+++ b/src/modules/rlm_ldap/configure
-@@ -3992,7 +3992,7 @@ smart_prefix=
- $as_echo "#define WITH_SASL 1" >>confdefs.h
-
- SASL=sasl.c
-- fi
-+ fi
- fi
-
- targetname=rlm_ldap
-diff --git a/src/modules/rlm_pam/config.h.in b/src/modules/rlm_pam/config.h.in
-index 32ef6ff..1ad20c5 100644
---- a/src/modules/rlm_pam/config.h.in
-+++ b/src/modules/rlm_pam/config.h.in
-@@ -45,6 +45,9 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
-
-diff --git a/src/modules/rlm_perl/config.h.in b/src/modules/rlm_perl/config.h.in
-index 989ed53..f80de9c 100644
---- a/src/modules/rlm_perl/config.h.in
-+++ b/src/modules/rlm_perl/config.h.in
-@@ -12,5 +12,8 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
-diff --git a/src/modules/rlm_perl/configure.ac b/src/modules/rlm_perl/configure.ac
-index 44c5fc9..6b2a043 100644
---- a/src/modules/rlm_perl/configure.ac
-+++ b/src/modules/rlm_perl/configure.ac
-@@ -3,7 +3,7 @@ AC_INIT(rlm_perl.c)
- AC_REVISION($Revision$)
- AC_DEFUN(modname,[rlm_perl])
-
--m4_include([ax_with_prog.m4])
-+m4_include([m4/ax_with_prog.m4])
-
- if test x$with_[]modname != xno; then
- AC_PROG_CC
-diff --git a/src/modules/rlm_radutmp/config.h.in b/src/modules/rlm_radutmp/config.h.in
-index 9a883cc..750b434 100644
---- a/src/modules/rlm_radutmp/config.h.in
-+++ b/src/modules/rlm_radutmp/config.h.in
-@@ -42,6 +42,9 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
-
-diff --git a/src/modules/rlm_ruby/configure b/src/modules/rlm_ruby/configure
-index 15868ab..c728af2 100755
---- a/src/modules/rlm_ruby/configure
-+++ b/src/modules/rlm_ruby/configure
-@@ -1875,6 +1875,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-+
- # ===========================================================================
- # http://www.gnu.org/software/autoconf-archive/ax_compare_version.html
- # ===========================================================================
-diff --git a/src/modules/rlm_ruby/configure.ac b/src/modules/rlm_ruby/configure.ac
-index 9306382..f1c8118 100644
---- a/src/modules/rlm_ruby/configure.ac
-+++ b/src/modules/rlm_ruby/configure.ac
-@@ -3,15 +3,16 @@ AC_INIT(rlm_ruby.c)
- AC_REVISION($Revision: 1.9 $)
- AC_DEFUN(modname,[rlm_ruby])
-
--m4_include([ax_with_prog.m4])
-+m4_include([m4/ax_with_prog.m4])
-
- AC_DEFUN([AX_WITH_RUBY],[
- AX_WITH_PROG([RUBY],[ruby],[not-found],[${PATH}:/usr/bin:/usr/local/bin])
- ])
-
--m4_include([ax_compare_version.m4])
--m4_include([ax_prog_ruby_version.m4])
--m4_include([ax_ruby_devel.m4])
-+
-+m4_include([m4/ax_compare_version.m4])
-+m4_include([m4/ax_prog_ruby_version.m4])
-+m4_include([m4/ax_ruby_devel.m4])
-
- targetname=modname
- mod_cflags=
-diff --git a/src/modules/rlm_smsotp/config.h.in b/src/modules/rlm_smsotp/config.h.in
-index 5feaf91..9e69f85 100644
---- a/src/modules/rlm_smsotp/config.h.in
-+++ b/src/modules/rlm_smsotp/config.h.in
-@@ -42,6 +42,9 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
-
-diff --git a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in
-index e03d1a9..6262c48 100644
---- a/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in
-+++ b/src/modules/rlm_sql/drivers/rlm_sql_mysql/config.h.in
-@@ -18,5 +18,8 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
-diff --git a/src/modules/rlm_unix/config.h.in b/src/modules/rlm_unix/config.h.in
-index dcb9aa2..70b4680 100644
---- a/src/modules/rlm_unix/config.h.in
-+++ b/src/modules/rlm_unix/config.h.in
-@@ -1,5 +1,8 @@
- /* config.h.in. Generated from configure.ac by autoheader. */
-
-+/* Define to 1 if you have the `getpwnam' function. */
-+#undef HAVE_GETPWNAM
-+
- /* Define to 1 if you have the `getspnam' function. */
- #undef HAVE_GETSPNAM
-
-@@ -54,6 +57,9 @@
- /* Define to the one symbol short name of this package. */
- #undef PACKAGE_TARNAME
-
-+/* Define to the home page for this package. */
-+#undef PACKAGE_URL
-+
- /* Define to the version of this package. */
- #undef PACKAGE_VERSION
-
---
-2.3.5
-
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 4eb61ff2ec..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/files/freeradius-libtool-detection.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 56ef434e454bcc82c162a83d9bcb076d4fc72b7f Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Thu, 9 Jan 2014 14:30:26 +0800
-Subject: [PATCH] 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>
----
- autogen.sh | 5 +----
- configure.ac | 36 ++++++++++++++++++++++++++++++++++++
- 2 files changed, 37 insertions(+), 4 deletions(-)
-
-diff --git a/autogen.sh b/autogen.sh
-index 3418673..e42c3d5 100755
---- a/autogen.sh
-+++ b/autogen.sh
-@@ -5,10 +5,7 @@ parentdir=`dirname $0`
- cd $parentdir
- parentdir=`pwd`
-
--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 e73e4ad..066d3d7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -205,6 +205,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:]
---
-1.8.3
-
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-volatiles.conf b/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf
index fa62962975..f3619dddb6 100644
--- a/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf
+++ b/meta-networking/recipes-connectivity/freeradius/files/radiusd-volatiles.conf
@@ -1,2 +1,2 @@
d /var/log/radius 0755 radiusd radiusd -
-d /var/run/radiusd 0755 radiusd radiusd -
+d /run/radiusd 0755 radiusd radiusd -
diff --git a/meta-networking/recipes-connectivity/freeradius/files/radiusd.service b/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
index 899c4e4955..7969bfb690 100644
--- a/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
+++ b/meta-networking/recipes-connectivity/freeradius/files/radiusd.service
@@ -4,11 +4,11 @@ After=syslog.target network.target
[Service]
Type=forking
-PIDFile=@STATEDIR@/run/radiusd/radiusd.pid
-ExecStartPre=-@BASE_BINDIR@/chown -R radiusd.radiusd @STATEDIR@/run/radiusd
-ExecStartPre=-@BASE_BINDIR@/sh -c "if [ ! -f @SYSCONFDIR@/raddb/certs/server.pem ]; then sudo -u radiusd @SYSCONFDIR@/raddb/certs/bootstrap; fi"
+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.15.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb
deleted file mode 100644
index 4155a4059e..0000000000
--- a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.15.bb
+++ /dev/null
@@ -1,222 +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 = "GPLv2 & LGPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=eb723b61539feef013de476e68b5c50a"
-DEPENDS = "openssl-native openssl libidn libtool libpcap libtalloc"
-
-SRC_URI = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${PV}.tar.bz2 \
- file://freeradius \
- file://volatiles.58_radiusd \
- file://freeradius-enble-user-in-conf.patch \
- file://freeradius-configure.ac-allow-cross-compilation.patch \
- file://freeradius-fix-issues-related-to-m4-include-path.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://radiusd.service \
- file://radiusd-volatiles.conf \
-"
-SRC_URI[md5sum] = "0c81a4464ccf1d04f7ef1218a029d37a"
-SRC_URI[sha256sum] = "23267d8505e7b2909f5bdbf3938ca077c1fe122290dc969304d4f3b594f7e3ba"
-
-PARALLEL_MAKE = ""
-
-S = "${WORKDIR}/freeradius-server-${PV}"
-
-EXTRA_OECONF = " --enable-strict-dependencies \
- --with-docdir=${docdir}/freeradius-${PV} \
- --with-openssl-includes=${STAGING_INCDIR} \
- --with-openssl-libraries=${STAGING_LIBDIR} \
- --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_sqlhpwippool \
- 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 \
-"
-
-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[python] = "--with-rlm_python --with-rlm-python-bin=${STAGING_BINDIR_NATIVE}/python-native/python --with-rlm-python-include-dir=${STAGING_INCDIR}/${PYTHON_DIR},--without-rlm_python,python-native python"
-PACKAGECONFIG[rest] = "--with-rlm_rest,--without-rlm_rest,curl json-c"
-PACKAGECONFIG[ruby] = "--with-rlm_ruby,--without-rlm_ruby,ruby"
-
-inherit useradd autotools-brokensep update-rc.d systemd
-
-# This is not a cpan or python based package, but it needs some definitions
-# from cpan-base and python-dir bbclasses for building rlm_perl and rlm_python
-# correctly.
-inherit cpan-base python-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}/${sysconfdir}/raddb/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/
- install -m 0644 ${WORKDIR}/volatiles.58_radiusd ${D}${sysconfdir}/default/volatiles/58_radiusd
-
- chown -R radiusd:radiusd ${D}/${sysconfdir}/raddb/
- chown -R radiusd:radiusd ${D}/${localstatedir}/lib/radiusd
-
- # For systemd
- 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
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d/
- install -m 0644 ${WORKDIR}/radiusd-volatiles.conf ${D}${sysconfdir}/tmpfiles.d/
- fi
-}
-
-# 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-volatiles.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 ${sysconfdir}/raddb
- 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* \
- ${sysconfdir}/raddb/mods-available/ldap \
-"
-
-FILES_${PN}-krb5 = "${libdir}/rlm_krb5.so* \
- ${sysconfdir}/raddb/mods-available/krb5 \
-"
-
-FILES_${PN}-perl = "${libdir}/rlm_perl.so* \
- ${sysconfdir}/raddb/mods-config/perl \
- ${sysconfdir}/raddb/mods-available/perl \
-"
-
-FILES_${PN}-python = "${libdir}/rlm_python.so* \
- ${sysconfdir}/raddb/mods-config/python \
- ${sysconfdir}/raddb/mods-available/python \
-"
-
-FILES_${PN}-mysql = "${libdir}/rlm_sql_mysql.so* \
- ${sysconfdir}/raddb/mods-config/sql/*/mysql \
- ${sysconfdir}/raddb/mods-available/sql \
-"
-
-FILES_${PN}-postgresql = "${libdir}/rlm_sql_postgresql.so* \
- ${sysconfdir}/raddb/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}"
diff --git a/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb
new file mode 100644
index 0000000000..35733c5307
--- /dev/null
+++ b/meta-networking/recipes-connectivity/freeradius/freeradius_3.0.26.bb
@@ -0,0 +1,290 @@
+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://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-python.m4-for-detecting-python-3.10.patch \
+"
+
+raddbdir = "${sysconfdir}/${MLPREFIX}raddb"
+
+SRCREV = "d956f683d37ea40e7977cc5907361f3e6988a439"
+
+UPSTREAM_CHECK_GITTAGREGEX = "release_(?P<pver>\d+(\_\d+)+)"
+
+CVE_CHECK_STATUS[CVE-2002-0318] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_CHECK_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_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}
+ 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"
+
+CLEANBROKEN = "1"
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch
deleted file mode 100644
index d4764f5867..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/0001-rcp-fix-to-work-with-large-files.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Upstream-Status: Pending
-
-Subject: rcp: fix to work with large files
-
-When we copy file by rcp command, if the file > 2GB, it will fail.
-The cause is that it used incorrect data type on file size in sink() of rcp.
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- src/rcp.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/rcp.c b/src/rcp.c
-index 21f55b6..bafa35f 100644
---- a/src/rcp.c
-+++ b/src/rcp.c
-@@ -876,9 +876,9 @@ sink (int argc, char *argv[])
- enum
- { YES, NO, DISPLAYED } wrerr;
- BUF *bp;
-- off_t i, j;
-+ off_t i, j, size;
- int amt, count, exists, first, mask, mode, ofd, omode;
-- int setimes, size, targisdir, wrerrno;
-+ int setimes, targisdir, wrerrno;
- char ch, *cp, *np, *targ, *vect[1], buf[BUFSIZ];
- const char *why;
-
---
-1.9.1
-
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch
deleted file mode 100644
index 24c134fcac..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/fix-disable-ipv6.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-Upstream: http://www.mail-archive.com/bug-inetutils@gnu.org/msg02103.html
-
-Upstream-Status: Pending
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- ping/ping_common.h | 20 ++++++++++++++++++++
- 1 file changed, 20 insertions(+)
-
-diff --git a/ping/ping_common.h b/ping/ping_common.h
-index 1dfd1b5..3bfbd12 100644
---- a/ping/ping_common.h
-+++ b/ping/ping_common.h
-@@ -17,10 +17,14 @@
- You should have received a copy of the GNU General Public License
- along with this program. If not, see `http://www.gnu.org/licenses/'. */
-
-+#include <config.h>
-+
- #include <netinet/in_systm.h>
- #include <netinet/in.h>
- #include <netinet/ip.h>
-+#ifdef HAVE_IPV6
- #include <netinet/icmp6.h>
-+#endif
- #include <icmp.h>
- #include <error.h>
- #include <progname.h>
-@@ -62,7 +66,12 @@ struct ping_stat
- want to follow the traditional behaviour of ping. */
- #define DEFAULT_PING_COUNT 0
-
-+#ifdef HAVE_IPV6
- #define PING_HEADER_LEN (USE_IPV6 ? sizeof (struct icmp6_hdr) : ICMP_MINLEN)
-+#else
-+#define PING_HEADER_LEN (ICMP_MINLEN)
-+#endif
-+
- #define PING_TIMING(s) ((s) >= sizeof (struct timeval))
- #define PING_DATALEN (64 - PING_HEADER_LEN) /* default data length */
-
-@@ -74,13 +83,20 @@ struct ping_stat
- (t).tv_usec = ((i)%PING_PRECISION)*(1000000/PING_PRECISION) ;\
- } while (0)
-
-+#ifdef HAVE_IPV6
- /* FIXME: Adjust IPv6 case for options and their consumption. */
- #define _PING_BUFLEN(p, u) ((u)? ((p)->ping_datalen + sizeof (struct icmp6_hdr)) : \
- (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN))
-
-+#else
-+#define _PING_BUFLEN(p, u) (MAXIPLEN + (p)->ping_datalen + ICMP_TSLEN)
-+#endif
-+
-+#ifdef HAVE_IPV6
- typedef int (*ping_efp6) (int code, void *closure, struct sockaddr_in6 * dest,
- struct sockaddr_in6 * from, struct icmp6_hdr * icmp,
- int datalen);
-+#endif
-
- typedef int (*ping_efp) (int code,
- void *closure,
-@@ -89,13 +105,17 @@ typedef int (*ping_efp) (int code,
- struct ip * ip, icmphdr_t * icmp, int datalen);
-
- union event {
-+#ifdef HAVE_IPV6
- ping_efp6 handler6;
-+#endif
- ping_efp handler;
- };
-
- union ping_address {
- struct sockaddr_in ping_sockaddr;
-+#ifdef HAVE_IPV6
- struct sockaddr_in6 ping_sockaddr6;
-+#endif
- };
-
- typedef struct ping_data PING;
---
-2.8.3
-
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch
deleted file mode 100644
index 3da4e9f55a..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 552a7d64ad4a7188a9b7cd89933ae7caf7ebfe90 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier at gentoo.org>
-Date: Thu, 18 Nov 2010 16:59:14 -0500
-Subject: [PATCH gnulib] printf-parse: pull in features.h for __GLIBC__
-
-Upstream-Status: Pending
-
-Signed-off-by: Mike Frysinger <vapier at gentoo.org>
----
- lib/printf-parse.h | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/lib/printf-parse.h b/lib/printf-parse.h
-index 67a4a2a..3bd6152 100644
---- a/lib/printf-parse.h
-+++ b/lib/printf-parse.h
-@@ -25,6 +25,9 @@
-
- #include "printf-args.h"
-
-+#ifdef HAVE_FEATURES_H
-+# include <features.h> /* for __GLIBC__ */
-+#endif
-
- /* Flags */
- #define FLAG_GROUP 1 /* ' flag */
---
-1.7.3.2
-
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch
deleted file mode 100644
index b13bb9229f..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.8-0003-wchar.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream-Status: Pending
-
---- inetutils-1.8/lib/wchar.in.h
-+++ inetutils-1.8/lib/wchar.in.h
-@@ -70,6 +70,9 @@
- /* The include_next requires a split double-inclusion guard. */
- #if @HAVE_WCHAR_H@
- # @INCLUDE_NEXT@ @NEXT_WCHAR_H@
-+#else
-+# include <stddef.h>
-+# define MB_CUR_MAX 1
- #endif
-
- #undef _GL_ALREADY_INCLUDING_WCHAR_H
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch
deleted file mode 100644
index 2592989a90..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-1.9-PATH_PROCNET_DEV.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-inetutils: define PATH_PROCNET_DEV if not already defined
-
-this prevents the following compilation error :
-system/linux.c:401:15: error: 'PATH_PROCNET_DEV' undeclared (first use in this function)
-
-this patch comes from :
- http://repository.timesys.com/buildsources/i/inetutils/inetutils-1.9/
-
-Upstream-Status: Inappropriate [not author]
-
-Signed-of-by: Eric Bénard <eric@eukrea.com>
----
-diff -Naur inetutils-1.9.orig/ifconfig/system/linux.c inetutils-1.9/ifconfig/system/linux.c
---- inetutils-1.9.orig/ifconfig/system/linux.c 2012-01-04 16:31:36.000000000 -0500
-+++ inetutils-1.9/ifconfig/system/linux.c 2012-01-04 16:40:53.000000000 -0500
-@@ -49,6 +49,10 @@
- #include "../ifconfig.h"
-
-
-+#ifndef PATH_PROCNET_DEV
-+ #define PATH_PROCNET_DEV "/proc/net/dev"
-+#endif
-+
- /* ARPHRD stuff. */
-
- static void
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch
deleted file mode 100644
index ff3abd86aa..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/inetutils-only-check-pam_appl.h-when-pam-enabled.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Only check security/pam_appl.h which is provided by package libpam when pam is
-enabled.
-
-Upstream-Status: Pending
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-diff --git a/configure.ac b/configure.ac
-index b35e672..e78a751 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -195,6 +195,19 @@ fi
-
- # See if we have libpam.a. Investigate PAM versus Linux-PAM.
- if test "$with_pam" = yes ; then
-+ AC_CHECK_HEADERS([security/pam_appl.h], [], [], [
-+#include <sys/types.h>
-+#ifdef HAVE_NETINET_IN_SYSTM_H
-+# include <netinet/in_systm.h>
-+#endif
-+#include <netinet/in.h>
-+#ifdef HAVE_NETINET_IP_H
-+# include <netinet/ip.h>
-+#endif
-+#ifdef HAVE_SYS_PARAM_H
-+# include <sys/param.h>
-+#endif
-+])
- AC_CHECK_LIB(dl, dlopen, LIBDL=-ldl)
- AC_CHECK_LIB(pam, pam_authenticate, LIBPAM=-lpam)
- if test "$ac_cv_lib_pam_pam_authenticate" = yes ; then
-@@ -587,7 +600,7 @@ AC_HEADER_DIRENT
- AC_CHECK_HEADERS([arpa/nameser.h errno.h fcntl.h features.h \
- glob.h memory.h netinet/ether.h netinet/in_systm.h \
- netinet/ip.h netinet/ip_icmp.h netinet/ip_var.h \
-- security/pam_appl.h shadow.h \
-+ shadow.h \
- stdarg.h stdlib.h string.h stropts.h sys/tty.h \
- sys/utsname.h sys/ptyvar.h sys/msgbuf.h sys/filio.h \
- sys/ioctl_compat.h sys/cdefs.h sys/stream.h sys/mkdev.h \
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils
deleted file mode 100644
index 30e81ef450..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/rexec.xinetd.inetutils
+++ /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 = @SBINDIR@/tcpd
- server_args = @SBINDIR@/in.rexecd
- disable = yes
-}
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils
deleted file mode 100644
index 21b55da9a9..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/rlogin.xinetd.inetutils
+++ /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 = @SBINDIR@/tcpd
- server_args = @SBINDIR@/in.rlogind -a
- disable = yes
-}
-
-
-
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils
deleted file mode 100644
index 2b894a74bd..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/rsh.xinetd.inetutils
+++ /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 = @SBINDIR@/tcpd
- server_args = @SBINDIR@/in.rshd -aL
- disable = yes
-}
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils
deleted file mode 100644
index 2d9a0408c0..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/telnet.xinetd.inetutils
+++ /dev/null
@@ -1,13 +0,0 @@
-# default: on
-# description: The telnet server serves telnet sessions; it uses \
-# unencrypted username/password pairs for authentication.
-service telnet
-{
- disable = no
- flags = REUSE
- socket_type = stream
- wait = no
- user = root
- server = @SBINDIR@/in.telnetd
- log_on_failure += USERID
-}
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils b/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils
deleted file mode 100644
index 67b44c43e8..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/tftpd.xinetd.inetutils
+++ /dev/null
@@ -1,19 +0,0 @@
-# default: off
-# description:
-# Tftpd is a server which supports the Internet Trivial File Transfer
-# Pro-tocol (RFC 783). The TFTP server operates at the port indicated
-# in the tftp service description; see services(5).
-#
-service tftp
-{
- disable = yes
- socket_type = dgram
- protocol = udp
- flags = IPv6
- wait = yes
- user = root
- group = root
- server = @SBINDIR@/in.tftpd
- server_args = /tftpboot
-}
-
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch b/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch
deleted file mode 100644
index 532a0e5c08..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils/version.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-remove m4_esyscmd function
-
-Signed-off-by: Chunrong Guo <b40290@freescale.com>
---- inetutils-1.9.1/configure.ac 2012-01-06 22:05:05.000000000 +0800
-+++ inetutils-1.9.1/configure.ac 2012-11-12 14:01:11.732957019 +0800
-@@ -20,8 +20,7 @@
-
- AC_PREREQ(2.59)
-
--AC_INIT([GNU inetutils],
-- m4_esyscmd([build-aux/git-version-gen .tarball-version 's/inetutils-/v/;s/_/./g']),
-+AC_INIT([GNU inetutils],[1.9.4],
- [bug-inetutils@gnu.org])
-
- AC_CONFIG_SRCDIR([src/inetd.c])
diff --git a/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb
deleted file mode 100644
index 190cd5f142..0000000000
--- a/meta-networking/recipes-connectivity/inetutils/inetutils_1.9.4.bb
+++ /dev/null
@@ -1,206 +0,0 @@
-DESCRIPTION = "The GNU inetutils are a collection of common \
-networking utilities and servers including ftp, ftpd, rcp, \
-rexec, rlogin, rlogind, rsh, rshd, syslog, syslogd, talk, \
-talkd, telnet, telnetd, tftp, tftpd, and uucpd."
-HOMEPAGE = "http://www.gnu.org/software/inetutils"
-SECTION = "net"
-DEPENDS = "ncurses netbase readline"
-
-LICENSE = "GPLv3"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=0c7051aef9219dc7237f206c5c4179a7"
-
-SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \
- file://version.patch \
- file://inetutils-1.8-0001-printf-parse-pull-in-features.h-for-__GLIBC__.patch \
- file://inetutils-1.8-0003-wchar.patch \
- file://rexec.xinetd.inetutils \
- file://rlogin.xinetd.inetutils \
- file://rsh.xinetd.inetutils \
- file://telnet.xinetd.inetutils \
- file://tftpd.xinetd.inetutils \
- file://inetutils-1.9-PATH_PROCNET_DEV.patch \
- file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \
- file://0001-rcp-fix-to-work-with-large-files.patch \
-"
-
-SRC_URI[md5sum] = "04852c26c47cc8c6b825f2b74f191f52"
-SRC_URI[sha256sum] = "be8f75eff936b8e41b112462db51adf689715658a1b09e0d6b05d11ec92cc616"
-
-inherit autotools gettext update-alternatives texinfo
-
-acpaths = "-I ./m4"
-
-SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '', 'file://fix-disable-ipv6.patch', d)}"
-
-PACKAGECONFIG ??= "ftp uucpd \
- ${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6 ping6', '', d)} \
- "
-PACKAGECONFIG[ftp] = "--enable-ftp,--disable-ftp,readline"
-PACKAGECONFIG[uucpd] = "--enable-uucpd,--disable-uucpd,readline"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6 gl_cv_socket_ipv6=no,"
-PACKAGECONFIG[ping6] = "--enable-ping6,--disable-ping6,"
-
-EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \
- inetutils_cv_path_login=${base_bindir}/login \
- --with-libreadline-prefix=${STAGING_LIBDIR} \
- --enable-rpath=no \
-"
-
-EXTRA_OECONF_append_libc-musl = " --disable-rsh --disable-rcp --disable-rlogin "
-
-do_configure_prepend () {
- export HELP2MAN='true'
- cp ${STAGING_DATADIR_NATIVE}/gettext/config.rpath ${S}/build-aux/config.rpath
- rm -f ${S}/glob/configure*
-}
-
-do_install_append () {
- install -m 0755 -d ${D}${base_sbindir}
- install -m 0755 -d ${D}${sbindir}
- install -m 0755 -d ${D}${sysconfdir}/xinetd.d
- if [ "${base_bindir}" != "${bindir}" ] ; then
- install -m 0755 -d ${D}${base_bindir}
- mv ${D}${bindir}/ping* ${D}${base_bindir}/
- mv ${D}${bindir}/hostname ${D}${base_bindir}/
- fi
- mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/
- mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/
- mv ${D}${libexecdir}/tftpd ${D}${sbindir}/in.tftpd
- mv ${D}${libexecdir}/telnetd ${D}${sbindir}/in.telnetd
- mv ${D}${libexecdir}/rexecd ${D}${sbindir}/in.rexecd
- if [ -e ${D}${libexecdir}/rlogind ]; then
- mv ${D}${libexecdir}/rlogind ${D}${sbindir}/in.rlogind
- fi
- if [ -e ${D}${libexecdir}/rshd ]; then
- mv ${D}${libexecdir}/rshd ${D}${sbindir}/in.rshd
- fi
- if [ -e ${D}${libexecdir}/talkd ]; then
- mv ${D}${libexecdir}/talkd ${D}${sbindir}/in.talkd
- fi
- mv ${D}${libexecdir}/uucpd ${D}${sbindir}/in.uucpd
- mv ${D}${libexecdir}/* ${D}${bindir}/
- cp ${WORKDIR}/rexec.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rexec
- cp ${WORKDIR}/rlogin.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rlogin
- cp ${WORKDIR}/rsh.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/rsh
- cp ${WORKDIR}/telnet.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/telnet
- cp ${WORKDIR}/tftpd.xinetd.inetutils ${D}/${sysconfdir}/xinetd.d/tftpd
-
- sed -e 's,@SBINDIR@,${sbindir},g' -i ${D}/${sysconfdir}/xinetd.d/*
- if [ -e ${D}${libdir}/charset.alias ]; then
- rm -rf ${D}${libdir}/charset.alias
- fi
- rm -rf ${D}${libexecdir}/
- # remove usr/lib if empty
- rmdir ${D}${libdir} || true
-}
-
-PACKAGES =+ "${PN}-ping ${PN}-ping6 ${PN}-hostname ${PN}-ifconfig \
-${PN}-tftp ${PN}-logger ${PN}-traceroute ${PN}-syslogd \
-${PN}-ftp ${PN}-ftpd ${PN}-tftpd ${PN}-telnet ${PN}-telnetd ${PN}-inetd \
-${PN}-rsh ${PN}-rshd"
-
-# The packages tftpd, telnetd and rshd conflict with the ones
-# provided by netkit, so add the corresponding -dbg packages
-# for them to avoid the confliction between the dbg package
-# of inetutils and netkit.
-PACKAGES =+ "${PN}-tftpd-dbg ${PN}-telnetd-dbg ${PN}-rshd-dbg"
-NOAUTOPACKAGEDEBUG = "1"
-
-ALTERNATIVE_PRIORITY = "79"
-ALTERNATIVE_${PN} = "talk whois"
-ALTERNATIVE_LINK_NAME[talkd] = "${sbindir}/in.talkd"
-ALTERNATIVE_LINK_NAME[uucpd] = "${sbindir}/in.uucpd"
-
-ALTERNATIVE_PRIORITY_${PN}-logger = "60"
-ALTERNATIVE_${PN}-logger = "logger"
-ALTERNATIVE_${PN}-syslogd = "syslogd"
-ALTERNATIVE_LINK_NAME[syslogd] = "${base_sbindir}/syslogd"
-
-ALTERNATIVE_${PN}-ftp = "ftp"
-ALTERNATIVE_${PN}-ftpd = "ftpd"
-ALTERNATIVE_${PN}-tftp = "tftp"
-ALTERNATIVE_${PN}-tftpd = "tftpd"
-ALTERNATIVE_LINK_NAME[tftpd] = "${sbindir}/tftpd"
-ALTERNATIVE_TARGET[tftpd] = "${sbindir}/in.tftpd"
-
-ALTERNATIVE_${PN}-telnet = "telnet"
-ALTERNATIVE_${PN}-telnetd = "telnetd"
-ALTERNATIVE_LINK_NAME[telnetd] = "${sbindir}/telnetd"
-ALTERNATIVE_TARGET[telnetd] = "${sbindir}/in.telnetd"
-
-ALTERNATIVE_${PN}-rsh = "rcp rexec rlogin rsh"
-ALTERNATIVE_${PN}-rshd = "rshd rexecd rlogind"
-ALTERNATIVE_LINK_NAME[rshd] = "${sbindir}/rshd"
-ALTERNATIVE_TARGET[rshd] = "${sbindir}/in.rshd"
-ALTERNATIVE_LINK_NAME[rexecd] = "${sbindir}/rexecd"
-ALTERNATIVE_TARGET[rexecd] = "${sbindir}/in.rexecd"
-ALTERNATIVE_LINK_NAME[rlogind] = "${sbindir}/rlogind"
-ALTERNATIVE_TARGET[rlogind] = "${sbindir}/in.rlogind"
-
-ALTERNATIVE_${PN}-inetd= "inetd"
-ALTERNATIVE_${PN}-traceroute = "traceroute"
-
-ALTERNATIVE_${PN}-hostname = "hostname"
-ALTERNATIVE_LINK_NAME[hostname] = "${base_bindir}/hostname"
-
-ALTERNATIVE_${PN}-doc = "hostname.1 dnsdomainname.1 logger.1 syslogd.8"
-ALTERNATIVE_LINK_NAME[hostname.1] = "${mandir}/man1/hostname.1"
-ALTERNATIVE_LINK_NAME[dnsdomainname.1] = "${mandir}/man1/dnsdomainname.1"
-ALTERNATIVE_LINK_NAME[logger.1] = "${mandir}/man1/logger.1"
-ALTERNATIVE_LINK_NAME[syslogd.8] = "${mandir}/man8/syslogd.8"
-
-ALTERNATIVE_${PN}-ifconfig = "ifconfig"
-ALTERNATIVE_LINK_NAME[ifconfig] = "${base_sbindir}/ifconfig"
-
-ALTERNATIVE_${PN}-ping = "ping"
-ALTERNATIVE_LINK_NAME[ping] = "${base_bindir}/ping"
-
-ALTERNATIVE_${PN}-ping6 = "${@bb.utils.filter('PACKAGECONFIG', 'ping6', d)}"
-ALTERNATIVE_LINK_NAME[ping6] = "${base_bindir}/ping6"
-
-
-FILES_${PN}-dbg += "${base_bindir}/.debug ${base_sbindir}/.debug ${bindir}/.debug ${sbindir}/.debug"
-FILES_${PN}-ping = "${base_bindir}/ping.${BPN}"
-FILES_${PN}-ping6 = "${base_bindir}/ping6.${BPN}"
-FILES_${PN}-hostname = "${base_bindir}/hostname.${BPN}"
-FILES_${PN}-ifconfig = "${base_sbindir}/ifconfig.${BPN}"
-FILES_${PN}-traceroute = "${bindir}/traceroute.${BPN}"
-FILES_${PN}-logger = "${bindir}/logger.${BPN}"
-
-FILES_${PN}-syslogd = "${base_sbindir}/syslogd.${BPN}"
-RCONFLICTS_${PN}-syslogd = "rsyslog busybox-syslog sysklogd syslog-ng"
-
-FILES_${PN}-ftp = "${bindir}/ftp.${BPN}"
-
-FILES_${PN}-tftp = "${bindir}/tftp.${BPN}"
-FILES_${PN}-telnet = "${bindir}/telnet.${BPN}"
-FILES_${PN}-rsh = "${bindir}/rsh.${BPN} ${bindir}/rlogin.${BPN} ${bindir}/rexec.${BPN} ${bindir}/rcp.${BPN}"
-
-FILES_${PN}-rshd = "${sbindir}/in.rshd ${sbindir}/in.rlogind ${sbindir}/in.rexecd \
- ${sysconfdir}/xinetd.d/rsh ${sysconfdir}/xinetd.d/rlogin ${sysconfdir}/xinetd.d/rexec"
-FILES_${PN}-rshd-dbg = "${sbindir}/.debug/in.rshd ${sbindir}/.debug/in.rlogind ${sbindir}/.debug/in.rexecd"
-RDEPENDS_${PN}-rshd += "xinetd tcp-wrappers"
-RCONFLICTS_${PN}-rshd += "netkit-rshd"
-RPROVIDES_${PN}-rshd = "rshd"
-
-FILES_${PN}-ftpd = "${bindir}/ftpd.${BPN}"
-FILES_${PN}-ftpd-dbg = "${bindir}/.debug/ftpd.${BPN}"
-RDEPENDS_${PN}-ftpd += "xinetd"
-
-FILES_${PN}-tftpd = "${sbindir}/in.tftpd ${sysconfdir}/xinetd.d/tftpd"
-FILES_${PN}-tftpd-dbg = "${sbindir}/.debug/in.tftpd"
-RCONFLICTS_${PN}-tftpd += "netkit-tftpd"
-RDEPENDS_${PN}-tftpd += "xinetd"
-
-FILES_${PN}-telnetd = "${sbindir}/in.telnetd ${sysconfdir}/xinetd.d/telnet"
-FILES_${PN}-telnetd-dbg = "${sbindir}/.debug/in.telnetd"
-RCONFLICTS_${PN}-telnetd += "netkit-telnetd"
-RPROVIDES_${PN}-telnetd = "telnetd"
-RDEPENDS_${PN}-telnetd += "xinetd"
-
-FILES_${PN}-inetd = "${bindir}/inetd.${BPN}"
-
-RDEPENDS_${PN} = "xinetd"
diff --git a/meta-networking/recipes-connectivity/kea/files/0001-Added-option-to-provide-kea-msg-compiler.patch b/meta-networking/recipes-connectivity/kea/files/0001-Added-option-to-provide-kea-msg-compiler.patch
deleted file mode 100644
index b58a658b92..0000000000
--- a/meta-networking/recipes-connectivity/kea/files/0001-Added-option-to-provide-kea-msg-compiler.patch
+++ /dev/null
@@ -1,235 +0,0 @@
-From c7806af2957627151ef603ad4aa893ca1a4bf59e Mon Sep 17 00:00:00 2001
-From: Siyu Zhang <siyu.zhang@windriver.com>
-Date: Sat, 10 Sep 2016 15:44:10 +0200
-Subject: [PATCH 1/1] Added option to provide kea-msg-compiler
-
-Upstream-Status: Inappropriate[oe specific]
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- configure.ac | 18 ++++++++++++++++++
- src/bin/d2/Makefile.am | 2 +-
- src/bin/dhcp4/Makefile.am | 2 +-
- src/bin/dhcp6/Makefile.am | 2 +-
- src/bin/lfc/Makefile.am | 2 +-
- src/hooks/dhcp/user_chk/Makefile.am | 2 +-
- src/lib/asiodns/Makefile.am | 2 +-
- src/lib/config/Makefile.am | 2 +-
- src/lib/dhcp_ddns/Makefile.am | 2 +-
- src/lib/dhcpsrv/Makefile.am | 6 +++---
- src/lib/eval/Makefile.am | 2 +-
- src/lib/hooks/Makefile.am | 2 +-
- src/lib/log/Makefile.am | 8 +++++++-
- src/lib/log/tests/Makefile.am | 2 +-
- 14 files changed, 39 insertions(+), 15 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ea41f08..edb5120 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -202,6 +202,24 @@ case "$host" in
- esac
- KEA_CXXFLAGS="$KEA_CXXFLAGS $MULTITHREADING_FLAG"
-
-+AC_MSG_CHECKING(whether kea-msg-compiler is provided)
-+AC_ARG_WITH(msg-compiler,
-+ AC_HELP_STRING([--with-msg-compiler=PATH], [use provided kea-msg-compiler instead of local build]),
-+ [
-+ dnl TODO: Validate provided kea-msg-compiler
-+ AC_SUBST([KEA_MSG_COMPILER], [${withval}])
-+ AC_MSG_RESULT(${withval})],
-+ [
-+ AC_MSG_RESULT([no])
-+ if test x"$host" != x"$build" && test x"$host" == x"$target"; then
-+ AC_MSG_ERROR(native kea-msg-compiler not provided for cross compilation: build=${build} host=${host} target=${target})
-+ else
-+ AC_SUBST([KEA_MSG_COMPILER], ['$(top_builddir)/src/lib/log/compiler/kea-msg-compiler'])
-+ with_msg_compiler=no
-+ fi])
-+
-+AM_CONDITIONAL([HAVE_MSG_COMPILER], [test x"$with_msg_compiler" != x"no"])
-+
- # Disable -Werror by default. Only use it if specifically enabled.
- # The usage of this flag is:
- #
-diff --git a/src/bin/d2/Makefile.am b/src/bin/d2/Makefile.am
-index 0b4e7d5..40cc094 100644
---- a/src/bin/d2/Makefile.am
-+++ b/src/bin/d2/Makefile.am
-@@ -53,7 +53,7 @@ spec_config.h: spec_config.h.pre
- d2_messages.h d2_messages.cc: s-messages
-
- s-messages: d2_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/d2/d2_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/bin/d2/d2_messages.mes
- touch $@
-
- BUILT_SOURCES = d2_messages.h d2_messages.cc
-diff --git a/src/bin/dhcp4/Makefile.am b/src/bin/dhcp4/Makefile.am
-index 8360677..57acb91 100644
---- a/src/bin/dhcp4/Makefile.am
-+++ b/src/bin/dhcp4/Makefile.am
-@@ -47,7 +47,7 @@ spec_config.h: spec_config.h.pre
- dhcp4_messages.h dhcp4_messages.cc: s-messages
-
- s-messages: dhcp4_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/dhcp4/dhcp4_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/bin/dhcp4/dhcp4_messages.mes
- touch $@
-
- BUILT_SOURCES = spec_config.h dhcp4_messages.h dhcp4_messages.cc
-diff --git a/src/bin/dhcp6/Makefile.am b/src/bin/dhcp6/Makefile.am
-index 47155ae..d7ed722 100644
---- a/src/bin/dhcp6/Makefile.am
-+++ b/src/bin/dhcp6/Makefile.am
-@@ -48,7 +48,7 @@ spec_config.h: spec_config.h.pre
- dhcp6_messages.h dhcp6_messages.cc: s-messages
-
- s-messages: dhcp6_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/dhcp6/dhcp6_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/bin/dhcp6/dhcp6_messages.mes
- touch $@
-
- BUILT_SOURCES = spec_config.h dhcp6_messages.h dhcp6_messages.cc
-diff --git a/src/bin/lfc/Makefile.am b/src/bin/lfc/Makefile.am
-index 7bfeb96..09a700e 100644
---- a/src/bin/lfc/Makefile.am
-+++ b/src/bin/lfc/Makefile.am
-@@ -32,7 +32,7 @@ endif
- lfc_messages.h lfc_messages.cc: s-messages
-
- s-messages: lfc_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/lfc/lfc_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/bin/lfc/lfc_messages.mes
- touch $@
-
- BUILT_SOURCES = lfc_messages.h lfc_messages.cc
-diff --git a/src/hooks/dhcp/user_chk/Makefile.am b/src/hooks/dhcp/user_chk/Makefile.am
-index 41ad7b2..32a93412 100644
---- a/src/hooks/dhcp/user_chk/Makefile.am
-+++ b/src/hooks/dhcp/user_chk/Makefile.am
-@@ -7,7 +7,7 @@ AM_CXXFLAGS = $(KEA_CXXFLAGS)
- # Define rule to build logging source files from message file
- user_chk_messages.h user_chk_messages.cc: s-messages
- s-messages: user_chk_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/hooks/dhcp/user_chk/user_chk_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/hooks/dhcp/user_chk/user_chk_messages.mes
- touch $@
-
- # Tell automake that the message files are built as part of the build process
-diff --git a/src/lib/asiodns/Makefile.am b/src/lib/asiodns/Makefile.am
-index 24dfe05..60c9f80 100644
---- a/src/lib/asiodns/Makefile.am
-+++ b/src/lib/asiodns/Makefile.am
-@@ -11,7 +11,7 @@ CLEANFILES = *.gcno *.gcda asiodns_messages.h asiodns_messages.cc s-messages
- asiodns_messages.h asiodns_messages.cc: s-messages
-
- s-messages: asiodns_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/asiodns/asiodns_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/asiodns/asiodns_messages.mes
- touch $@
-
- BUILT_SOURCES = asiodns_messages.h asiodns_messages.cc
-diff --git a/src/lib/config/Makefile.am b/src/lib/config/Makefile.am
-index a89d530..26894ad 100644
---- a/src/lib/config/Makefile.am
-+++ b/src/lib/config/Makefile.am
-@@ -7,7 +7,7 @@ AM_CPPFLAGS += $(BOOST_INCLUDES)
- config_messages.h config_messages.cc: s-messages
-
- s-messages: config_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/config/config_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/config/config_messages.mes
- touch $@
-
- BUILT_SOURCES = config_messages.h config_messages.cc
-diff --git a/src/lib/dhcp_ddns/Makefile.am b/src/lib/dhcp_ddns/Makefile.am
-index 820f448..fe15533 100644
---- a/src/lib/dhcp_ddns/Makefile.am
-+++ b/src/lib/dhcp_ddns/Makefile.am
-@@ -8,7 +8,7 @@ AM_CXXFLAGS = $(KEA_CXXFLAGS)
- dhcp_ddns_messages.h dhcp_ddns_messages.cc: s-messages
-
- s-messages: dhcp_ddns_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcp_ddns/dhcp_ddns_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/dhcp_ddns/dhcp_ddns_messages.mes
- touch $@
-
- # Tell automake that the message files are built as part of the build process
-diff --git a/src/lib/dhcpsrv/Makefile.am b/src/lib/dhcpsrv/Makefile.am
-index db95dbd..6499b9f 100644
---- a/src/lib/dhcpsrv/Makefile.am
-+++ b/src/lib/dhcpsrv/Makefile.am
-@@ -52,11 +52,11 @@ alloc_engine_messages.h alloc_engine_messages.cc dhcpsrv_messages.h \
- dhcpsrv_messages.cc hosts_messages.h hosts_messages.cc: s-messages
-
- s-messages: alloc_engine_messages.mes dhcpsrv_messages.mes hosts_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/alloc_engine_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/dhcpsrv/alloc_engine_messages.mes
- touch $@
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/dhcpsrv_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/dhcpsrv/dhcpsrv_messages.mes
- touch $@
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/dhcpsrv/hosts_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/dhcpsrv/hosts_messages.mes
- touch $@
-
- # Tell Automake that the {alloc_engine,dhcpsrv,hosts}_messages.{cc,h} source files
-diff --git a/src/lib/eval/Makefile.am b/src/lib/eval/Makefile.am
-index e4968c1..f8464f8 100644
---- a/src/lib/eval/Makefile.am
-+++ b/src/lib/eval/Makefile.am
-@@ -47,7 +47,7 @@ EXTRA_DIST += lexer.ll parser.yy
- eval_messages.h eval_messages.cc: s-messages
-
- s-messages: eval_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/eval/eval_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/eval/eval_messages.mes
- touch $@
-
- # Tell Automake that the eval_messages.{cc,h} source files are created in the
-diff --git a/src/lib/hooks/Makefile.am b/src/lib/hooks/Makefile.am
-index 624e227..3458da8 100644
---- a/src/lib/hooks/Makefile.am
-+++ b/src/lib/hooks/Makefile.am
-@@ -8,7 +8,7 @@ AM_CXXFLAGS = $(KEA_CXXFLAGS)
- hooks_messages.h hooks_messages.cc: s-messages
-
- s-messages: hooks_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/hooks/hooks_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/hooks/hooks_messages.mes
- touch $@
-
- # Tell automake that the message files are built as part of the build process
-diff --git a/src/lib/log/Makefile.am b/src/lib/log/Makefile.am
-index e1185cd..22e9ce6 100644
---- a/src/lib/log/Makefile.am
-+++ b/src/lib/log/Makefile.am
-@@ -1,4 +1,10 @@
--SUBDIRS = interprocess . compiler tests
-+SUBDIRS = interprocess .
-+
-+if !HAVE_MSG_COMPILER
-+SUBDIRS += compiler
-+endif
-+
-+SUBDIRS += tests
-
- AM_CPPFLAGS = -I$(top_builddir)/src/lib -I$(top_srcdir)/src/lib
- AM_CPPFLAGS += $(BOOST_INCLUDES)
-diff --git a/src/lib/log/tests/Makefile.am b/src/lib/log/tests/Makefile.am
-index 03806f9..caf9cab 100644
---- a/src/lib/log/tests/Makefile.am
-+++ b/src/lib/log/tests/Makefile.am
-@@ -17,7 +17,7 @@ BUILT_SOURCES = log_test_messages.h log_test_messages.cc
- log_test_messages.h log_test_messages.cc: s-messages
-
- s-messages: log_test_messages.mes
-- $(AM_V_GEN) $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/log/tests/log_test_messages.mes
-+ $(AM_V_GEN) @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/log/tests/log_test_messages.mes
- touch $@
-
- CLEANFILES += log_test_messages.h log_test_messages.cc s-messages
---
-1.8.4.2
-
diff --git a/meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-fix-compile-error-about-kea-msg-compiler.patch b/meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-fix-compile-error-about-kea-msg-compiler.patch
deleted file mode 100644
index e8a4ae41b5..0000000000
--- a/meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-fix-compile-error-about-kea-msg-compiler.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From d800c6017962e358c8b2ada6803acb0f4011a763 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Fri, 16 Mar 2018 08:03:20 +0000
-Subject: [PATCH] Makefile.am: fix compile error about kea-msg-compiler
-
-fix compile error about kea-msg-compiler
-
-Upstream-Status: Inappropriate[oe specific]
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- src/bin/agent/Makefile.am | 2 +-
- src/hooks/dhcp/lease_cmds/Makefile.am | 2 +-
- src/lib/http/Makefile.am | 2 +-
- src/lib/process/Makefile.am | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/bin/agent/Makefile.am b/src/bin/agent/Makefile.am
-index e67c572..b646325 100644
---- a/src/bin/agent/Makefile.am
-+++ b/src/bin/agent/Makefile.am
-@@ -33,7 +33,7 @@ endif
- ca_messages.h ca_messages.cc: s-messages
-
- s-messages: ca_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/bin/agent/ca_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/bin/agent/ca_messages.mes
- touch $@
-
- BUILT_SOURCES = ca_messages.h ca_messages.cc
-diff --git a/src/hooks/dhcp/lease_cmds/Makefile.am b/src/hooks/dhcp/lease_cmds/Makefile.am
-index 90abfda..cfd6779 100644
---- a/src/hooks/dhcp/lease_cmds/Makefile.am
-+++ b/src/hooks/dhcp/lease_cmds/Makefile.am
-@@ -7,7 +7,7 @@ AM_CXXFLAGS = $(KEA_CXXFLAGS)
- # Define rule to build logging source files from message file
- lease_cmds_messages.h lease_cmds_messages.cc: s-messages
- s-messages: lease_cmds_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/hooks/dhcp/lease_cmds/lease_cmds_messages.mes
- touch $@
-
- # Tell automake that the message files are built as part of the build process
-diff --git a/src/lib/http/Makefile.am b/src/lib/http/Makefile.am
-index 2b0eed5..db3bb0e 100644
---- a/src/lib/http/Makefile.am
-+++ b/src/lib/http/Makefile.am
-@@ -8,7 +8,7 @@ AM_CXXFLAGS = $(KEA_CXXFLAGS)
- http_messages.h http_messages.cc: s-messages
-
- s-messages: http_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/http/http_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/http/http_messages.mes
- touch $@
-
- # Tell automake that the message files are built as part of the build process
-diff --git a/src/lib/process/Makefile.am b/src/lib/process/Makefile.am
-index c7746c6..71998ed 100644
---- a/src/lib/process/Makefile.am
-+++ b/src/lib/process/Makefile.am
-@@ -19,7 +19,7 @@ AM_CXXFLAGS = $(KEA_CXXFLAGS)
- process_messages.h process_messages.cc: s-messages
-
- s-messages: process_messages.mes
-- $(top_builddir)/src/lib/log/compiler/kea-msg-compiler $(top_srcdir)/src/lib/process/process_messages.mes
-+ @KEA_MSG_COMPILER@ $(top_srcdir)/src/lib/process/process_messages.mes
- touch $@
-
- spec_config.h: spec_config.h.pre
---
-2.13.3
-
diff --git a/meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-update-hooksdir-for-lease_cmds.patch b/meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-update-hooksdir-for-lease_cmds.patch
deleted file mode 100644
index 72fa113b00..0000000000
--- a/meta-networking/recipes-connectivity/kea/files/0001-Makefile.am-update-hooksdir-for-lease_cmds.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 77ab10015512e9cc0c7a160bd6b534bf4174bc95 Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Wed, 21 Mar 2018 06:01:38 +0000
-Subject: [PATCH] Makefile.am: update hooksdir for lease_cmds
-
-update hooksdir for lease_cmds
-
-Upstream-Status: Pending
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- src/hooks/dhcp/lease_cmds/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/hooks/dhcp/lease_cmds/Makefile.am b/src/hooks/dhcp/lease_cmds/Makefile.am
-index cfd6779..22cc4a9 100644
---- a/src/hooks/dhcp/lease_cmds/Makefile.am
-+++ b/src/hooks/dhcp/lease_cmds/Makefile.am
-@@ -37,7 +37,7 @@ liblease_cmds_la_CXXFLAGS = $(AM_CXXFLAGS)
- liblease_cmds_la_CPPFLAGS = $(AM_CPPFLAGS)
-
- # install the shared object into $(libdir)/hooks
--lib_hooksdir = $(libdir)/hooks
-+lib_hooksdir = $(libdir)/kea/hooks
- lib_hooks_LTLIBRARIES = libdhcp_lease_cmds.la
-
- libdhcp_lease_cmds_la_SOURCES =
---
-2.13.3
-
diff --git a/meta-networking/recipes-connectivity/kea/files/0001-asiolink-fix-build-with-boost-1.66.patch b/meta-networking/recipes-connectivity/kea/files/0001-asiolink-fix-build-with-boost-1.66.patch
deleted file mode 100644
index 9262381d5b..0000000000
--- a/meta-networking/recipes-connectivity/kea/files/0001-asiolink-fix-build-with-boost-1.66.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 4fd11ef050438adeb1e0ae0d9d2d8ec3a2cb659c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bart=C5=82omiej=20Piotrowski?= <bpiotrowski@archlinux.org>
-Date: Sat, 30 Dec 2017 14:40:24 +0100
-Subject: [PATCH] asiolink: fix build with boost 1.66
-
-- use native_handle() for getting native socket type
-- use io_context instead of io_service
-
-Upstream-Status: Backport
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
----
- src/lib/asiolink/io_acceptor.h | 4 ++++
- src/lib/asiolink/io_service.h | 5 +++++
- src/lib/asiolink/tcp_socket.h | 4 ++++
- src/lib/asiolink/udp_socket.h | 4 ++++
- src/lib/asiolink/unix_domain_socket.cc | 4 ++++
- 5 files changed, 21 insertions(+)
-
-diff --git a/src/lib/asiolink/io_acceptor.h b/src/lib/asiolink/io_acceptor.h
-index c493d3427..913a3280b 100644
---- a/src/lib/asiolink/io_acceptor.h
-+++ b/src/lib/asiolink/io_acceptor.h
-@@ -47,7 +47,11 @@ public:
-
- /// @brief Returns file descriptor of the underlying socket.
- virtual int getNative() const {
-+#if BOOST_VERSION < 106600
- return (acceptor_->native());
-+#else
-+ return (acceptor_->native_handle());
-+#endif
- }
-
- /// @brief Opens acceptor socket given the endpoint.
-diff --git a/src/lib/asiolink/io_service.h b/src/lib/asiolink/io_service.h
-index e9e402d11..e0832b2c0 100644
---- a/src/lib/asiolink/io_service.h
-+++ b/src/lib/asiolink/io_service.h
-@@ -11,7 +11,12 @@
-
- namespace boost {
- namespace asio {
-+#if BOOST_VERSION < 106600
- class io_service;
-+#else
-+ class io_context;
-+ typedef io_context io_service;
-+#endif
- }
- }
-
-diff --git a/src/lib/asiolink/tcp_socket.h b/src/lib/asiolink/tcp_socket.h
-index adf74d1f0..83b8264c8 100644
---- a/src/lib/asiolink/tcp_socket.h
-+++ b/src/lib/asiolink/tcp_socket.h
-@@ -75,7 +75,11 @@ public:
-
- /// \brief Return file descriptor of underlying socket
- virtual int getNative() const {
-+#if BOOST_VERSION < 106600
- return (socket_.native());
-+#else
-+ return (socket_.native_handle());
-+#endif
- }
-
- /// \brief Return protocol of socket
-diff --git a/src/lib/asiolink/udp_socket.h b/src/lib/asiolink/udp_socket.h
-index 07ba44743..5b040cfe1 100644
---- a/src/lib/asiolink/udp_socket.h
-+++ b/src/lib/asiolink/udp_socket.h
-@@ -61,7 +61,11 @@ public:
-
- /// \brief Return file descriptor of underlying socket
- virtual int getNative() const {
-+#if BOOST_VERSION < 106600
- return (socket_.native());
-+#else
-+ return (socket_.native_handle());
-+#endif
- }
-
- /// \brief Return protocol of socket
-diff --git a/src/lib/asiolink/unix_domain_socket.cc b/src/lib/asiolink/unix_domain_socket.cc
-index f17ec2e8f..d1ad9ec30 100644
---- a/src/lib/asiolink/unix_domain_socket.cc
-+++ b/src/lib/asiolink/unix_domain_socket.cc
-@@ -287,7 +287,11 @@ UnixDomainSocket::UnixDomainSocket(IOService& io_service)
-
- int
- UnixDomainSocket::getNative() const {
-+#if BOOST_VERSION < 106600
- return (impl_->socket_.native());
-+#else
-+ return (impl_->socket_.native_handle());
-+#endif
- }
-
- int
---
-2.11.0
-
diff --git a/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service b/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service
deleted file mode 100644
index 91aa2eb14f..0000000000
--- a/meta-networking/recipes-connectivity/kea/files/kea-dhcp-ddns.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Kea DHCP-DDNS Server
-Wants=network-online.target
-After=network-online.target
-After=time-sync.target
-
-[Service]
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
-ExecStart=@SBINDIR@/kea-dhcp-ddns -c @SYSCONFDIR@/kea/kea-dhcp-ddns.conf
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service b/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service
deleted file mode 100644
index f32edcb90d..0000000000
--- a/meta-networking/recipes-connectivity/kea/files/kea-dhcp4.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Kea DHCPv4 Server
-Wants=network-online.target
-After=network-online.target
-After=time-sync.target
-
-[Service]
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
-ExecStart=@SBINDIR@/kea-dhcp4 -c @SYSCONFDIR@/kea/kea-dhcp4.conf
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service b/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service
deleted file mode 100644
index 26d2205e64..0000000000
--- a/meta-networking/recipes-connectivity/kea/files/kea-dhcp6.service
+++ /dev/null
@@ -1,13 +0,0 @@
-[Unit]
-Description=Kea DHCPv6 Server
-Wants=network-online.target
-After=network-online.target
-After=time-sync.target
-
-[Service]
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/run/kea/
-ExecStartPre=@BASE_BINDIR@/mkdir -p @LOCALSTATEDIR@/kea
-ExecStart=@SBINDIR@/kea-dhcp6 -c @SYSCONFDIR@/kea/kea-dhcp6.conf
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/kea/kea_1.3.0.bb b/meta-networking/recipes-connectivity/kea/kea_1.3.0.bb
deleted file mode 100644
index 946c1e17dd..0000000000
--- a/meta-networking/recipes-connectivity/kea/kea_1.3.0.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "ISC Kea DHCP Server"
-DESCRIPTION = "Kea is the next generation of DHCP software developed by ISC. It supports both DHCPv4 and DHCPv6 protocols along with their extensions, e.g. prefix delegation and dynamic updates to DNS."
-HOMEPAGE = "http://kea.isc.org"
-SECTION = "connectivity"
-LICENSE = "MPL-2.0 & BSL-1.0 & Apache-2.0"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=9310b19bc010f85f4ad19637f168f23f \
- file://ext/coroutine/LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c \
-"
-
-SRC_URI = "\
- http://ftp.isc.org/isc/kea/${PV}/${BP}.tar.gz \
- file://0001-Added-option-to-provide-kea-msg-compiler.patch \
- file://0001-Makefile.am-fix-compile-error-about-kea-msg-compiler.patch \
- file://0001-asiolink-fix-build-with-boost-1.66.patch \
- file://0001-Makefile.am-update-hooksdir-for-lease_cmds.patch \
- file://kea-dhcp4.service \
- file://kea-dhcp6.service \
- file://kea-dhcp-ddns.service \
-"
-
-SRC_URI[md5sum] = "f93bf836fd555a221f9ed0d4520058db"
-SRC_URI[sha256sum] = "6edfcdbf2526c218426a1d1a6a6694a4050c97bb8412953a230285d63415c391"
-
-inherit autotools systemd
-
-SYSTEMD_SERVICE_${PN} = "kea-dhcp4.service kea-dhcp6.service kea-dhcp-ddns.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_install_append_class-target() {
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/kea-dhcp*service ${D}${systemd_system_unitdir}
- sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@BASE_BINDIR@,${base_bindir},g' \
- -e 's,@LOCALSTATEDIR@,${localstatedir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- ${D}${systemd_system_unitdir}/kea-dhcp*service
-}
-
-do_install_append() {
- rm -rf "${D}${localstatedir}"
-}
-
-PACKAGECONFIG_class-target ??= "kmc openssl log4cplus boost"
-PACKAGECONFIG_class-native ??= "openssl log4cplus boost"
-
-PACKAGECONFIG[kmc] = "--with-msg-compiler=${STAGING_BINDIR_NATIVE}/kea-msg-compiler,,kea-native,"
-PACKAGECONFIG[openssl] = "--with-openssl=${STAGING_DIR_TARGET}${prefix},,openssl,openssl"
-PACKAGECONFIG[log4cplus] = "--with-log4cplus=${STAGING_DIR_TARGET}${prefix},,log4cplus,log4cplus"
-PACKAGECONFIG[boost] = "--with-boost-include=${STAGING_INCDIR} --with-boost-lib-dir=${STAGING_LIBDIR} --with-boost-libs=-lboost_system,,boost,boost"
-
-FILES_${PN}-staticdev += "${libdir}/kea/hooks/*.a"
-
-BBCLASSEXTEND += "native"
diff --git a/meta-networking/recipes-connectivity/lftp/files/fix-gcc-6-conflicts-signbit.patch b/meta-networking/recipes-connectivity/lftp/files/fix-gcc-6-conflicts-signbit.patch
deleted file mode 100644
index 952232b7a7..0000000000
--- a/meta-networking/recipes-connectivity/lftp/files/fix-gcc-6-conflicts-signbit.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- lftp-4.6.3a/src/NetAccess.cc.orig 2016-06-18 10:25:51.063358981 -0400
-+++ lftp-4.6.3a/src/NetAccess.cc 2016-06-18 10:26:04.143359209 -0400
-@@ -21,7 +21,7 @@
-
- #include <errno.h>
- #include <assert.h>
--#include <math.h>
-+#include <cmath>
- #include <sys/types.h>
-
- #include "NetAccess.h"
---- lftp-4.6.3a/src/Speedometer.cc.orig 2016-06-18 10:24:58.895358073 -0400
-+++ lftp-4.6.3a/src/Speedometer.cc 2016-06-18 10:25:10.879358281 -0400
-@@ -18,7 +18,7 @@
- */
-
- #include <config.h>
--#include <math.h>
-+#include <cmath>
- #include <stdlib.h>
- #include "Speedometer.h"
- #include "misc.h"
---- lftp-4.6.3a/src/FileCopy.cc.orig 2016-06-18 10:24:15.939357325 -0400
-+++ lftp-4.6.3a/src/FileCopy.cc 2016-06-18 10:24:24.583357475 -0400
-@@ -36,7 +36,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
--#include <math.h>
-+#include <cmath>
- #include <stddef.h>
- #include "FileCopy.h"
- #include "url.h"
---- lftp-4.6.3a/src/ResMgr.cc.orig 2016-06-18 10:23:31.387356549 -0400
-+++ lftp-4.6.3a/src/ResMgr.cc 2016-06-18 10:23:41.771356729 -0400
-@@ -23,7 +23,7 @@
- #include <ctype.h>
- #include <unistd.h>
- #include <stdlib.h>
--#include <math.h>
-+#include <cmath>
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <errno.h>
diff --git a/meta-networking/recipes-connectivity/lftp/lftp_4.8.3.bb b/meta-networking/recipes-connectivity/lftp/lftp_4.8.3.bb
deleted file mode 100644
index c6e37277e4..0000000000
--- a/meta-networking/recipes-connectivity/lftp/lftp_4.8.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "LFTP is a sophisticated file transfer program with \
- command line interface. It supports FTP, HTTP, \
- FISH, SFTP, HTTPS and FTPS protocols"
-HOMEPAGE = "http://lftp.yar.ru/"
-SECTION = "console/network"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2 \
- file://fix-gcc-6-conflicts-signbit.patch \
- "
-SRC_URI[md5sum] = "12b1fcbf13f41e9cdb0903fc670fa1f1"
-SRC_URI[sha256sum] = "c4159f056afee41866a6c2d639655bc351e6d3486bbe7758eaedb24f6a4239d5"
-
-inherit autotools gettext pkgconfig
-
-acpaths = "-I ./m4"
-
-EXTRA_OECONF += "--with-modules --disable-rpath"
-
-PACKAGECONFIG ??= "openssl zlib gnutls readline expat"
-PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl"
-PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_INCDIR}/.., --without-zlib, zlib"
-PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls"
-PACKAGECONFIG[readline] = "--with-readline=${STAGING_INCDIR}/.. --with-readline-inc=${STAGING_INCDIR} --with-readline-lib=-lreadline, --with-readline=no, readline"
-PACKAGECONFIG[expat] = "--with-expat=${STAGING_INCDIR}/.. --with-expat-inc=${STAGING_INCDIR} --with-expat-lib=-lexpat, , expat"
-
-do_install_append() {
- rm -rf ${D}${libdir}/charset.alias
-}
-FILES_${PN} += "${datadir}/icons/hicolor"
-FILES_${PN}-dbg += "${libdir}/lftp/${PV}/.debug"
-RDEPENDS_${PN} = "perl bash readline"
diff --git a/meta-networking/recipes-connectivity/lftp/lftp_4.9.2.bb b/meta-networking/recipes-connectivity/lftp/lftp_4.9.2.bb
new file mode 100644
index 0000000000..bf3e18dce7
--- /dev/null
+++ b/meta-networking/recipes-connectivity/lftp/lftp_4.9.2.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "LFTP is a sophisticated file transfer program with \
+ command line interface. It supports FTP, HTTP, \
+ FISH, SFTP, HTTPS and FTPS protocols"
+HOMEPAGE = "http://lftp.yar.ru/"
+SECTION = "console/network"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "http://lftp.yar.ru/ftp/lftp-${PV}.tar.bz2"
+SRC_URI[md5sum] = "42ec1793c386702bc2734ffbc8a5cff1"
+SRC_URI[sha256sum] = "8a07cbf4df09b107fe3fc41d133ee2f6cea6ef4c33ccf06c8448ad058cd96b7e"
+
+inherit autotools gettext pkgconfig
+
+acpaths = "-I ./m4"
+
+EXTRA_OECONF += "--with-modules --disable-rpath"
+
+PACKAGECONFIG ??= "openssl zlib gnutls readline expat"
+PACKAGECONFIG[openssl] = "--with-openssl, --without-openssl, openssl"
+PACKAGECONFIG[zlib] = "--with-zlib=${STAGING_INCDIR}/.., --without-zlib, zlib"
+PACKAGECONFIG[gnutls] = "--with-gnutls, --without-gnutls, gnutls"
+PACKAGECONFIG[readline] = "--with-readline=${STAGING_INCDIR}/.. --with-readline-inc=${STAGING_INCDIR} --with-readline-lib=-lreadline, --with-readline=no, readline"
+PACKAGECONFIG[expat] = "--with-expat=${STAGING_INCDIR}/.. --with-expat-inc=${STAGING_INCDIR} --with-expat-lib=-lexpat, , expat"
+
+do_install:append() {
+ rm -rf ${D}${libdir}/charset.alias
+}
+FILES:${PN} += "${datadir}/icons/hicolor"
+FILES:${PN}-dbg += "${libdir}/lftp/${PV}/.debug"
+RDEPENDS:${PN} = "perl bash readline"
diff --git a/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Replace-use-of-AC_EGREP_CPP.patch b/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Replace-use-of-AC_EGREP_CPP.patch
new file mode 100644
index 0000000000..133ccc46b2
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Replace-use-of-AC_EGREP_CPP.patch
@@ -0,0 +1,39 @@
+From b0c98f93a7f427d18206c79bf2a0350dc81172f6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Apr 2023 10:44:08 -0700
+Subject: [PATCH] configure: Replace use of AC_EGREP_CPP
+
+Use AC_COMPILE_IFELSE instead to compute platform support for arp ioctls
+AC_EGREP_CPP does not work as used with upcoming autoconf 2.72
+
+Upstream-Status: Submitted [https://github.com/ofalk/libdnet/pull/85]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/acinclude.m4 | 11 +++++------
+ 1 file changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/m4/acinclude.m4 b/m4/acinclude.m4
+index d6350a2..3699bf1 100644
+--- a/m4/acinclude.m4
++++ b/m4/acinclude.m4
+@@ -196,12 +196,11 @@ dnl
+ AC_DEFUN([AC_DNET_IOCTL_ARP],
+ [AC_MSG_CHECKING(for arp(7) ioctls)
+ AC_CACHE_VAL(ac_cv_dnet_ioctl_arp,
+- AC_EGREP_CPP(werd,[#include <sys/types.h>
+- #define BSD_COMP
+- #include <sys/ioctl.h>
+- #ifdef SIOCGARP
+- werd
+- #endif],
++ AC_COMPILE_IFELSE(
++ [AC_LANG_PROGRAM([[#include <sys/types.h>
++ #define BSD_COMP
++ #include <sys/ioctl.h>]],
++ [[int foo = SIOCGARP;]])],
+ ac_cv_dnet_ioctl_arp=yes,
+ ac_cv_dnet_ioctl_arp=no))
+ case "$host_os" in
+--
+2.40.0
+
diff --git a/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Use-pkg-config-variable-to-find-check-incl.patch b/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Use-pkg-config-variable-to-find-check-incl.patch
new file mode 100644
index 0000000000..8a78e7ac28
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libdnet/libdnet/0001-configure-Use-pkg-config-variable-to-find-check-incl.patch
@@ -0,0 +1,27 @@
+From 85d8338a3ebc01a3ea7600aa602139c4eac3be07 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Apr 2023 12:13:09 -0700
+Subject: [PATCH] configure: Use pkg-config variable to find check include paths
+
+Upstream-Status: Submitted [https://github.com/ofalk/libdnet/pull/85]
+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 3f0c404..553b487 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -153,7 +153,7 @@ AC_ARG_WITH(check,
+ esac ],
+ [ PKG_CHECK_MODULES([CHECK], [check])
+ if test -n "${CHECK_LIBS}"; then
+- CHECKINC="-I${prefix}/include"
++ CHECKINC="${CHECK_CFLAGS}"
+ CHECKLIB="${CHECK_LIBS}"
+ AC_MSG_RESULT(yes)
+ else
+--
+2.40.0
+
diff --git a/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb b/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
deleted file mode 100644
index 53ba25e239..0000000000
--- a/meta-networking/recipes-connectivity/libdnet/libdnet_1.12.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "dumb networking library"
-HOMEPAGE = "http://code.google.com/p/libdnet/"
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0036c1b155f4e999f3e0a373490b5db9"
-
-SRC_URI = "git://github.com/dugsong/libdnet.git;nobranch=1"
-SRCREV = "12fca29a6d4e99d1b923d6820887fe7b24226904"
-
-UPSTREAM_CHECK_GITTAGREGEX = "libdnet-(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-acpaths = "-I ./config/"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-connectivity/libdnet/libdnet_1.16.3.bb b/meta-networking/recipes-connectivity/libdnet/libdnet_1.16.3.bb
new file mode 100644
index 0000000000..05c8fb309f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libdnet/libdnet_1.16.3.bb
@@ -0,0 +1,23 @@
+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 \
+ file://0001-configure-Replace-use-of-AC_EGREP_CPP.patch \
+ file://0001-configure-Use-pkg-config-variable-to-find-check-incl.patch"
+SRCREV = "a03043bec8e66b240a45555e37147b22db182c21"
+
+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-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallD.patch b/meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallD.patch
new file mode 100644
index 0000000000..e778e8158b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallD.patch
@@ -0,0 +1,29 @@
+From 16d07a82242c3263ec0038c9b4c97355795d2dd9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 19 Mar 2022 23:16:51 -0700
+Subject: [PATCH] pyiec61850: Use CMAKE_INSTALL_LIBDIR from GNUInstallDirs in
+ cmake
+
+This ensures that it gets installed in platform specified system libdir
+all platforms do not use /usr/lib as assumed here e.g. ppc64 uses lib64
+
+Upstream-Status: Submitted [https://github.com/mz-automation/libiec61850/pull/376]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ pyiec61850/CMakeLists.txt | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/pyiec61850/CMakeLists.txt
++++ b/pyiec61850/CMakeLists.txt
+@@ -31,7 +31,9 @@ endif()
+
+ swig_link_libraries(iec61850 ${PYTHON_LIBRARIES} ${LIBS})
+
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION /usr/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
+-install(TARGETS _iec61850 LIBRARY DESTINATION /usr/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
++include(GNUInstallDirs)
++
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
++install(TARGETS _iec61850 LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}//python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
+
+ add_test(test_pyiec61850 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/test_pyiec61850.py)
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
new file mode 100644
index 0000000000..3f0490cb80
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libiec61850/files/0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch
@@ -0,0 +1,39 @@
+From d4ddfc7a350011b7944ed8d6bca80f164dfd1387 Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@smile.fr>
+Date: Fri, 10 Jul 2020 17:08:34 +0200
+Subject: [PATCH] pyiec61850: don't break CMAKE_INSTALL_PATH by trying to find
+ python modules install path (site-packages)
+
+https://stackoverflow.com/questions/1242904/finding-python-site-packages-directory-with-cmake
+
+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/pyiec61850/CMakeLists.txt b/pyiec61850/CMakeLists.txt
+index 159ef4b..d1732a1 100644
+--- a/pyiec61850/CMakeLists.txt
++++ b/pyiec61850/CMakeLists.txt
+@@ -31,14 +31,7 @@ endif()
+
+ swig_link_libraries(iec61850 ${PYTHON_LIBRARIES} ${LIBS})
+
+-# Finding python modules install path
+-execute_process(
+- COMMAND ${PYTHON_EXECUTABLE} -c
+- "from distutils.sysconfig import get_python_lib; import sys; sys.stdout.write(get_python_lib())"
+- OUTPUT_VARIABLE PYTHON_SITE_DIR
+-)
+-
+-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION ${PYTHON_SITE_DIR})
+-install(TARGETS _iec61850 LIBRARY DESTINATION ${PYTHON_SITE_DIR})
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/iec61850.py DESTINATION /usr/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
++install(TARGETS _iec61850 LIBRARY DESTINATION /usr/lib/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/site-packages)
+
+ add_test(test_pyiec61850 ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/test_pyiec61850.py)
+--
+2.31.1
+
diff --git a/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb b/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb
new file mode 100644
index 0000000000..3e5fc91dad
--- /dev/null
+++ b/meta-networking/recipes-connectivity/libiec61850/libiec61850_1.5.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Open source iec61850 implementation"
+DESCRIPTION = "IEC 61850 is an international standard for \
+communication systems in Substation Automation Systems \
+(SAS) and management of Decentralized Energy Resources \
+(DER). It is seen as one of the communication standards \
+of the emerging Smart Grid. \
+The project libIEC61850 provides a server and client \
+library for the IEC 61850/MMS, IEC 61850/GOOSE and IEC \
+61850-9-2/Sampled Values communication protocols \
+written in C. It is available under the GPLv3 license."
+HOMEPAGE = "http://libiec61850.com"
+SECTION = "console/network"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "swig-native python3"
+SRCREV = "210cf30897631fe2006ac50483caf8fd616622a2"
+
+SRC_URI = "git://github.com/mz-automation/${BPN}.git;branch=v1.5;protocol=https \
+ file://0001-pyiec61850-don-t-break-CMAKE_INSTALL_PATH-by-trying-.patch \
+ file://0001-pyiec61850-Use-CMAKE_INSTALL_LIBDIR-from-GNUInstallD.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig python3-dir python3native siteinfo
+
+EXTRA_OECMAKE = " \
+ -DBUILD_EXAMPLES=OFF \
+ -DBUILD_PYTHON_BINDINGS=ON \
+"
+
+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 \
+"
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls/0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch b/meta-networking/recipes-connectivity/mbedtls/mbedtls/0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch
new file mode 100644
index 0000000000..d98d8fa575
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls/0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch
@@ -0,0 +1,33 @@
+From 2246925e3cb16183e25d4e2cfd13fb800df86270 Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Sun, 25 Jun 2023 19:58:08 +0300
+Subject: [PATCH] aesce: do not specify an arch version when enabling crypto
+ instructions
+
+Building mbedtls with different aarch64 tuning variations revealed
+that we should use the crypto extensions without forcing a particular
+architecture version or core, as that can create issues.
+
+Upstream-Status: Submitted [https://github.com/Mbed-TLS/mbedtls/pull/7834]
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+---
+ library/aesce.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/library/aesce.c b/library/aesce.c
+index fe056dc4c..843de3973 100644
+--- a/library/aesce.c
++++ b/library/aesce.c
+@@ -60,7 +60,7 @@
+ # error "A more recent GCC is required for MBEDTLS_AESCE_C"
+ # endif
+ # pragma GCC push_options
+-# pragma GCC target ("arch=armv8-a+crypto")
++# pragma GCC target ("+crypto")
+ # define MBEDTLS_POP_TARGET_PRAGMA
+ # else
+ # error "Only GCC and Clang supported for MBEDTLS_AESCE_C"
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls/0002-aesce-use-correct-target-attribute-when-building-wit.patch b/meta-networking/recipes-connectivity/mbedtls/mbedtls/0002-aesce-use-correct-target-attribute-when-building-wit.patch
new file mode 100644
index 0000000000..4775c8ddb7
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls/0002-aesce-use-correct-target-attribute-when-building-wit.patch
@@ -0,0 +1,34 @@
+From 03d3523f974536f2358047382aadb0d4cc762f8a Mon Sep 17 00:00:00 2001
+From: Beniamin Sandu <beniaminsandu@gmail.com>
+Date: Mon, 26 Jun 2023 12:07:21 +0300
+Subject: [PATCH] aesce: use correct target attribute when building with clang
+
+Seems clang has its own issues when it comes to crypto extensions,
+and right now the best way to avoid them is to accurately enable
+the needed instructions instead of the broad crypto feature.
+
+E.g.: https://github.com/llvm/llvm-project/issues/61645
+
+Upstream-Status: Pending
+
+Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
+---
+ library/aesce.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/library/aesce.c b/library/aesce.c
+index 843de3973..7bea088ba 100644
+--- a/library/aesce.c
++++ b/library/aesce.c
+@@ -53,7 +53,7 @@
+ # if __clang_major__ < 4
+ # error "A more recent Clang is required for MBEDTLS_AESCE_C"
+ # endif
+-# pragma clang attribute push (__attribute__((target("crypto"))), apply_to=function)
++# pragma clang attribute push (__attribute__((target("aes"))), apply_to=function)
+ # define MBEDTLS_POP_TARGET_PRAGMA
+ # elif defined(__GNUC__)
+ # if __GNUC__ < 6
+--
+2.25.1
+
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.3.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.bb
new file mode 100644
index 0000000000..fff320afd8
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.28.3.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"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SECTION = "libs"
+
+S = "${WORKDIR}/git"
+SRCREV = "981743de6fcdbe672e482b6fd724d31d0a0d2476"
+SRC_URI = "git://github.com/ARMmbed/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-43666] = "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_2.9.0.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.9.0.bb
deleted file mode 100644
index ee4f164a4b..0000000000
--- a/meta-networking/recipes-connectivity/mbedtls/mbedtls_2.9.0.bb
+++ /dev/null
@@ -1,42 +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=302d50a6369f5f22efdb674db908167a"
-
-SECTION = "libdevel"
-
-SRC_URI = "https://tls.mbed.org/download/mbedtls-${PV}-apache.tgz"
-
-SRC_URI[md5sum] = "31dcf56cb92da5d7ec2dbb7a3cc5dff3"
-SRC_URI[sha256sum] = "a06a9b43e583b7e6707becfeeb13d88ed00f25fee31a5386cb3a3014c454bad8"
-
-inherit cmake
-
-PACKAGECONFIG ??= "shared-libs programs"
-PACKAGECONFIG[shared-libs] = "-DUSE_SHARED_MBEDTLS_LIBRARY=ON,-USE_SHARED_MBEDTLS_LIBRARY=OFF"
-PACKAGECONFIG[programs] = "-DENABLE_PROGRAMS=ON,-DENABLE_PROGRAMS=OFF"
-
-EXTRA_OECMAKE = "-DENABLE_TESTING=OFF -DLIB_INSTALL_DIR:STRING=${libdir}"
-
-PROVIDES += "polarssl"
-RPROVIDES_${PN} = "polarssl"
-
-PACKAGES =+ "${PN}-programs"
-FILES_${PN}-programs = "${bindir}/"
diff --git a/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
new file mode 100644
index 0000000000..10fb7de8ca
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mbedtls/mbedtls_3.4.0.bb
@@ -0,0 +1,78 @@
+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 = "1873d3bfc2da771672bd8e7e8f41f57e0af77f33"
+SRC_URI = "git://github.com/ARMmbed/mbedtls.git;protocol=https;branch=master \
+ file://0001-aesce-do-not-specify-an-arch-version-when-enabling-c.patch \
+ file://0002-aesce-use-correct-target-attribute-when-building-wit.patch \
+ 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"
+
+# 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/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch b/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch
new file mode 100644
index 0000000000..e33d8eac1d
--- /dev/null
+++ b/meta-networking/recipes-connectivity/miniupnpd/files/0001-Add-OpenEmbedded-cross-compile-case.patch
@@ -0,0 +1,38 @@
+From 54698856e5602bbd9d61e855814c854a013b4840 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 22 Dec 2018 18:47:45 -0800
+Subject: [PATCH] Add OpenEmbedded cross compile case
+
+Upstream-Status: Submitted [https://github.com/miniupnp/miniupnp/pull/410]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ genconfig.sh | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+--- a/genconfig.sh
++++ b/genconfig.sh
+@@ -103,6 +103,12 @@ if [ -f ../shared/tomato_version ]; then
+ OS_VERSION="Tomato $TOMATO_VER"
+ fi
+
++# OpenEmbedded special case
++if [ -f ./os.openembedded ]; then
++ OS_NAME=OpenEmbedded
++ OS_VERSION=$(cat ./os.openembedded)
++fi
++
+ ${RM} ${CONFIGFILE}
+
+ echo "/* MiniUPnP Project" >> ${CONFIGFILE}
+@@ -346,6 +352,11 @@ case $OS_NAME in
+ echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
+ FW=iptables
+ ;;
++ OpenEmbedded)
++ OS_URL=http://www.openembedded.org/
++ echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
++ FW=iptables
++ ;;
+ AstLinux)
+ OS_URL=http://www.astlinux.org/
+ echo "#define USE_IFACEWATCHER 1" >> ${CONFIGFILE}
diff --git a/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb b/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb
deleted file mode 100644
index 04b5cd589c..0000000000
--- a/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.0.20180203.bb
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Lightweight UPnP IGD daemon"
-DESCRIPTION = "The miniUPnP daemon is an UPnP IGD (internet gateway device) \
-which provide NAT traversal services to any UPnP enabled client on \
-the network."
-
-SECTION = "networking"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=91ac00c6b9f5c106e89291e196fe0234"
-
-inherit autotools gettext pkgconfig systemd
-
-DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack"
-
-SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${P}.tar.gz;downloadfilename=${P}.tar.gz \
- file://miniupnpd.service"
-
-SRC_URI[md5sum] = "b4c7c938915edeee6ca4c65dd021f212"
-SRC_URI[sha256sum] = "860c15f2f8340fd69546b01cffe4c7fcff3e63a7bdfe5a2af6b2346f0e074bb6"
-
-IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}"
-
-do_compile() {
- cd ${S}
- CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux
-}
-
-do_install() {
- install -d ${D}/${sbindir}
- install ${S}/miniupnpd ${D}/${sbindir}
- install -d ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/iptables_init.sh ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/iptables_removeall.sh ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/ip6tables_init.sh ${D}/${sysconfdir}/${BPN}
- install ${S}/netfilter/ip6tables_removeall.sh ${D}/${sysconfdir}/${BPN}
- install -m 0644 -b ${S}/miniupnpd.conf ${D}/${sysconfdir}/${BPN}
- install -d ${D}/${sysconfdir}/init.d
- install ${S}/linux/miniupnpd.init.d.script ${D}/${sysconfdir}/init.d/miniupnpd
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/miniupnpd.service ${D}${systemd_unitdir}/system/
-}
-
-SYSTEMD_SERVICE_${PN} = "miniupnpd.service"
diff --git a/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20191006.bb b/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20191006.bb
new file mode 100644
index 0000000000..468569eef1
--- /dev/null
+++ b/meta-networking/recipes-connectivity/miniupnpd/miniupnpd_2.1.20191006.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Lightweight UPnP IGD daemon"
+DESCRIPTION = "The miniUPnP daemon is an UPnP IGD (internet gateway device) \
+which provide NAT traversal services to any UPnP enabled client on \
+the network."
+
+SECTION = "networking"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a1ed15843ce66639bcf9f109cf247870"
+
+inherit autotools gettext pkgconfig systemd
+
+DEPENDS += "iptables net-tools util-linux libmnl libnetfilter-conntrack"
+
+SRC_URI = "http://miniupnp.tuxfamily.org/files/download.php?file=${BP}.tar.gz;downloadfilename=${BP}.tar.gz \
+ file://miniupnpd.service \
+ file://0001-Add-OpenEmbedded-cross-compile-case.patch \
+ "
+SRC_URI[md5sum] = "340789edd49c113afe37834cc901a1e8"
+SRC_URI[sha256sum] = "218fad7af31f3c22fb4c9db28a55a2a8b5067d41f5b38f52008a057a00d2206d"
+
+IPV6 = "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--ipv6', '', d)}"
+
+do_configure:prepend() {
+ echo "${@d.getVar('DISTRO_VERSION')}" > ${S}/os.openembedded
+}
+
+do_compile() {
+ cd ${S}
+ CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux config.h
+ CONFIG_OPTIONS="${IPV6} --leasefile --vendorcfg" oe_runmake -f Makefile.linux
+}
+
+do_install() {
+ install -d ${D}/${sbindir}
+ install ${S}/miniupnpd ${D}/${sbindir}
+ install -d ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/iptables_init.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/iptables_removeall.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/ip6tables_init.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/miniupnpd_functions.sh ${D}/${sysconfdir}/${BPN}
+ install ${S}/netfilter/ip6tables_removeall.sh ${D}/${sysconfdir}/${BPN}
+ install -m 0644 -b ${S}/miniupnpd.conf ${D}/${sysconfdir}/${BPN}
+ install -d ${D}/${sysconfdir}/init.d
+ install ${S}/linux/miniupnpd.init.d.script ${D}/${sysconfdir}/init.d/miniupnpd
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/miniupnpd.service ${D}${systemd_unitdir}/system/
+}
+
+SYSTEMD_SERVICE:${PN} = "miniupnpd.service"
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch b/meta-networking/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch
deleted file mode 100644
index a5aa277a08..0000000000
--- a/meta-networking/recipes-connectivity/mosquitto/files/0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0be38301249d797ec1f59071cc868ceda6d4720a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
-Date: Tue, 12 Apr 2016 12:50:32 +0100
-Subject: [PATCH 1/2] config.mk: allow prefix / mandir / localedir from
- environment
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We want to control them using OE environment variables.
-
-Upstream-Status: Inappropriate [embedded-specific]
-Signed-off-by: André Draszik <andre.draszik@jci.com>
----
- config.mk | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/config.mk b/config.mk
-index 71f17e5..81d9702 100644
---- a/config.mk
-+++ b/config.mk
-@@ -249,7 +249,7 @@ ifeq ($(WITH_DOCS),yes)
- endif
-
- INSTALL?=install
--prefix=/usr/local
--mandir=${prefix}/share/man
--localedir=${prefix}/share/locale
-+prefix?=/usr/local
-+mandir?=${prefix}/share/man
-+localedir?=${prefix}/share/locale
- STRIP?=strip
---
-2.15.1
-
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch b/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
deleted file mode 100644
index c89dfe6bef..0000000000
--- a/meta-networking/recipes-connectivity/mosquitto/files/0002-uthash-remove-in-tree-version.patch
+++ /dev/null
@@ -1,975 +0,0 @@
-From d9aeef8d95a325942cc92f4d72415771d75d904c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <andre.draszik@jci.com>
-Date: Tue, 12 Apr 2016 13:05:10 +0100
-Subject: [PATCH 2/2] uthash: remove in-tree version
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We don't need it as we want to use the version provided by
-meta-oe instead.
-
-Upstream-Status: Inappropriate [embedded-specific]
-Signed-off-by: André Draszik <andre.draszik@jci.com>
----
- src/uthash.h | 948 -----------------------------------------------------------
- 1 file changed, 948 deletions(-)
- delete mode 100644 src/uthash.h
-
-diff --git a/src/uthash.h b/src/uthash.h
-deleted file mode 100644
-index 915a825..0000000
---- a/src/uthash.h
-+++ /dev/null
-@@ -1,948 +0,0 @@
--/*
--Copyright (c) 2003-2013, Troy D. Hanson http://troydhanson.github.com/uthash/
--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.
--
--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.
--*/
--
--#ifndef UTHASH_H
--#define UTHASH_H
--
--#include <string.h> /* memcmp,strlen */
--#include <stddef.h> /* ptrdiff_t */
--#include <stdlib.h> /* exit() */
--
--/* These macros use decltype or the earlier __typeof GNU extension.
-- As decltype is only available in newer compilers (VS2010 or gcc 4.3+
-- when compiling c++ source) this code uses whatever method is needed
-- or, for VS2008 where neither is available, uses casting workarounds. */
--#ifdef _MSC_VER /* MS compiler */
--#if _MSC_VER >= 1600 && defined(__cplusplus) /* VS2010 or newer in C++ mode */
--#define DECLTYPE(x) (decltype(x))
--#else /* VS2008 or older (or VS2010 in C mode) */
--#define NO_DECLTYPE
--#define DECLTYPE(x)
--#endif
--#else /* GNU, Sun and other compilers */
--#define DECLTYPE(x) (__typeof(x))
--#endif
--
--#ifdef NO_DECLTYPE
--#define DECLTYPE_ASSIGN(dst,src) \
--do { \
-- char **_da_dst = (char**)(&(dst)); \
-- *_da_dst = (char*)(src); \
--} while(0)
--#else
--#define DECLTYPE_ASSIGN(dst,src) \
--do { \
-- (dst) = DECLTYPE(dst)(src); \
--} while(0)
--#endif
--
--/* a number of the hash function use uint32_t which isn't defined on win32 */
--#ifdef _MSC_VER
--typedef unsigned int uint32_t;
--typedef unsigned char uint8_t;
--#else
--#include <inttypes.h> /* uint32_t */
--#endif
--
--#define UTHASH_VERSION 1.9.8
--
--#ifndef uthash_fatal
--#define uthash_fatal(msg) exit(-1) /* fatal error (out of memory,etc) */
--#endif
--#ifndef uthash_malloc
--#define uthash_malloc(sz) malloc(sz) /* malloc fcn */
--#endif
--#ifndef uthash_free
--#define uthash_free(ptr,sz) free(ptr) /* free fcn */
--#endif
--
--#ifndef uthash_noexpand_fyi
--#define uthash_noexpand_fyi(tbl) /* can be defined to log noexpand */
--#endif
--#ifndef uthash_expand_fyi
--#define uthash_expand_fyi(tbl) /* can be defined to log expands */
--#endif
--
--/* initial number of buckets */
--#define HASH_INITIAL_NUM_BUCKETS 32 /* initial number of buckets */
--#define HASH_INITIAL_NUM_BUCKETS_LOG2 5 /* lg2 of initial number of buckets */
--#define HASH_BKT_CAPACITY_THRESH 10 /* expand when bucket count reaches */
--
--/* calculate the element whose hash handle address is hhe */
--#define ELMT_FROM_HH(tbl,hhp) ((void*)(((char*)(hhp)) - ((tbl)->hho)))
--
--#define HASH_FIND(hh,head,keyptr,keylen,out) \
--do { \
-- unsigned _hf_bkt,_hf_hashv; \
-- out=NULL; \
-- if (head) { \
-- HASH_FCN(keyptr,keylen, (head)->hh.tbl->num_buckets, _hf_hashv, _hf_bkt); \
-- if (HASH_BLOOM_TEST((head)->hh.tbl, _hf_hashv)) { \
-- HASH_FIND_IN_BKT((head)->hh.tbl, hh, (head)->hh.tbl->buckets[ _hf_bkt ], \
-- keyptr,keylen,out); \
-- } \
-- } \
--} while (0)
--
--#ifdef HASH_BLOOM
--#define HASH_BLOOM_BITLEN (1ULL << HASH_BLOOM)
--#define HASH_BLOOM_BYTELEN (HASH_BLOOM_BITLEN/8) + ((HASH_BLOOM_BITLEN%8) ? 1:0)
--#define HASH_BLOOM_MAKE(tbl) \
--do { \
-- (tbl)->bloom_nbits = HASH_BLOOM; \
-- (tbl)->bloom_bv = (uint8_t*)uthash_malloc(HASH_BLOOM_BYTELEN); \
-- if (!((tbl)->bloom_bv)) { uthash_fatal( "out of memory"); } \
-- memset((tbl)->bloom_bv, 0, HASH_BLOOM_BYTELEN); \
-- (tbl)->bloom_sig = HASH_BLOOM_SIGNATURE; \
--} while (0)
--
--#define HASH_BLOOM_FREE(tbl) \
--do { \
-- uthash_free((tbl)->bloom_bv, HASH_BLOOM_BYTELEN); \
--} while (0)
--
--#define HASH_BLOOM_BITSET(bv,idx) (bv[(idx)/8] |= (1U << ((idx)%8)))
--#define HASH_BLOOM_BITTEST(bv,idx) (bv[(idx)/8] & (1U << ((idx)%8)))
--
--#define HASH_BLOOM_ADD(tbl,hashv) \
-- HASH_BLOOM_BITSET((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
--
--#define HASH_BLOOM_TEST(tbl,hashv) \
-- HASH_BLOOM_BITTEST((tbl)->bloom_bv, (hashv & (uint32_t)((1ULL << (tbl)->bloom_nbits) - 1)))
--
--#else
--#define HASH_BLOOM_MAKE(tbl)
--#define HASH_BLOOM_FREE(tbl)
--#define HASH_BLOOM_ADD(tbl,hashv)
--#define HASH_BLOOM_TEST(tbl,hashv) (1)
--#define HASH_BLOOM_BYTELEN 0
--#endif
--
--#define HASH_MAKE_TABLE(hh,head) \
--do { \
-- (head)->hh.tbl = (UT_hash_table*)uthash_malloc( \
-- sizeof(UT_hash_table)); \
-- if (!((head)->hh.tbl)) { uthash_fatal( "out of memory"); } \
-- memset((head)->hh.tbl, 0, sizeof(UT_hash_table)); \
-- (head)->hh.tbl->tail = &((head)->hh); \
-- (head)->hh.tbl->num_buckets = HASH_INITIAL_NUM_BUCKETS; \
-- (head)->hh.tbl->log2_num_buckets = HASH_INITIAL_NUM_BUCKETS_LOG2; \
-- (head)->hh.tbl->hho = (char*)(&(head)->hh) - (char*)(head); \
-- (head)->hh.tbl->buckets = (UT_hash_bucket*)uthash_malloc( \
-- HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
-- if (! (head)->hh.tbl->buckets) { uthash_fatal( "out of memory"); } \
-- memset((head)->hh.tbl->buckets, 0, \
-- HASH_INITIAL_NUM_BUCKETS*sizeof(struct UT_hash_bucket)); \
-- HASH_BLOOM_MAKE((head)->hh.tbl); \
-- (head)->hh.tbl->signature = HASH_SIGNATURE; \
--} while(0)
--
--#define HASH_ADD(hh,head,fieldname,keylen_in,add) \
-- HASH_ADD_KEYPTR(hh,head,&((add)->fieldname),keylen_in,add)
--
--#define HASH_REPLACE(hh,head,fieldname,keylen_in,add,replaced) \
--do { \
-- replaced=NULL; \
-- HASH_FIND(hh,head,&((add)->fieldname),keylen_in,replaced); \
-- if (replaced!=NULL) { \
-- HASH_DELETE(hh,head,replaced); \
-- }; \
-- HASH_ADD(hh,head,fieldname,keylen_in,add); \
--} while(0)
--
--#define HASH_ADD_KEYPTR(hh,head,keyptr,keylen_in,add) \
--do { \
-- unsigned _ha_bkt; \
-- (add)->hh.next = NULL; \
-- (add)->hh.key = (char*)keyptr; \
-- (add)->hh.keylen = (unsigned)keylen_in; \
-- if (!(head)) { \
-- head = (add); \
-- (head)->hh.prev = NULL; \
-- HASH_MAKE_TABLE(hh,head); \
-- } else { \
-- (head)->hh.tbl->tail->next = (add); \
-- (add)->hh.prev = ELMT_FROM_HH((head)->hh.tbl, (head)->hh.tbl->tail); \
-- (head)->hh.tbl->tail = &((add)->hh); \
-- } \
-- (head)->hh.tbl->num_items++; \
-- (add)->hh.tbl = (head)->hh.tbl; \
-- HASH_FCN(keyptr,keylen_in, (head)->hh.tbl->num_buckets, \
-- (add)->hh.hashv, _ha_bkt); \
-- HASH_ADD_TO_BKT((head)->hh.tbl->buckets[_ha_bkt],&(add)->hh); \
-- HASH_BLOOM_ADD((head)->hh.tbl,(add)->hh.hashv); \
-- HASH_EMIT_KEY(hh,head,keyptr,keylen_in); \
-- HASH_FSCK(hh,head); \
--} while(0)
--
--#define HASH_TO_BKT( hashv, num_bkts, bkt ) \
--do { \
-- bkt = ((hashv) & ((num_bkts) - 1)); \
--} while(0)
--
--/* delete "delptr" from the hash table.
-- * "the usual" patch-up process for the app-order doubly-linked-list.
-- * The use of _hd_hh_del below deserves special explanation.
-- * These used to be expressed using (delptr) but that led to a bug
-- * if someone used the same symbol for the head and deletee, like
-- * HASH_DELETE(hh,users,users);
-- * We want that to work, but by changing the head (users) below
-- * we were forfeiting our ability to further refer to the deletee (users)
-- * in the patch-up process. Solution: use scratch space to
-- * copy the deletee pointer, then the latter references are via that
-- * scratch pointer rather than through the repointed (users) symbol.
-- */
--#define HASH_DELETE(hh,head,delptr) \
--do { \
-- unsigned _hd_bkt; \
-- struct UT_hash_handle *_hd_hh_del; \
-- if ( ((delptr)->hh.prev == NULL) && ((delptr)->hh.next == NULL) ) { \
-- uthash_free((head)->hh.tbl->buckets, \
-- (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
-- HASH_BLOOM_FREE((head)->hh.tbl); \
-- uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
-- head = NULL; \
-- } else { \
-- _hd_hh_del = &((delptr)->hh); \
-- if ((delptr) == ELMT_FROM_HH((head)->hh.tbl,(head)->hh.tbl->tail)) { \
-- (head)->hh.tbl->tail = \
-- (UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
-- (head)->hh.tbl->hho); \
-- } \
-- if ((delptr)->hh.prev) { \
-- ((UT_hash_handle*)((ptrdiff_t)((delptr)->hh.prev) + \
-- (head)->hh.tbl->hho))->next = (delptr)->hh.next; \
-- } else { \
-- DECLTYPE_ASSIGN(head,(delptr)->hh.next); \
-- } \
-- if (_hd_hh_del->next) { \
-- ((UT_hash_handle*)((ptrdiff_t)_hd_hh_del->next + \
-- (head)->hh.tbl->hho))->prev = \
-- _hd_hh_del->prev; \
-- } \
-- HASH_TO_BKT( _hd_hh_del->hashv, (head)->hh.tbl->num_buckets, _hd_bkt); \
-- HASH_DEL_IN_BKT(hh,(head)->hh.tbl->buckets[_hd_bkt], _hd_hh_del); \
-- (head)->hh.tbl->num_items--; \
-- } \
-- HASH_FSCK(hh,head); \
--} while (0)
--
--
--/* convenience forms of HASH_FIND/HASH_ADD/HASH_DEL */
--#define HASH_FIND_STR(head,findstr,out) \
-- HASH_FIND(hh,head,findstr,strlen(findstr),out)
--#define HASH_ADD_STR(head,strfield,add) \
-- HASH_ADD(hh,head,strfield,strlen(add->strfield),add)
--#define HASH_REPLACE_STR(head,strfield,add,replaced) \
-- HASH_REPLACE(hh,head,strfield,strlen(add->strfield),add,replaced)
--#define HASH_FIND_INT(head,findint,out) \
-- HASH_FIND(hh,head,findint,sizeof(int),out)
--#define HASH_ADD_INT(head,intfield,add) \
-- HASH_ADD(hh,head,intfield,sizeof(int),add)
--#define HASH_REPLACE_INT(head,intfield,add,replaced) \
-- HASH_REPLACE(hh,head,intfield,sizeof(int),add,replaced)
--#define HASH_FIND_PTR(head,findptr,out) \
-- HASH_FIND(hh,head,findptr,sizeof(void *),out)
--#define HASH_ADD_PTR(head,ptrfield,add) \
-- HASH_ADD(hh,head,ptrfield,sizeof(void *),add)
--#define HASH_REPLACE_PTR(head,ptrfield,add) \
-- HASH_REPLACE(hh,head,ptrfield,sizeof(void *),add,replaced)
--#define HASH_DEL(head,delptr) \
-- HASH_DELETE(hh,head,delptr)
--
--/* HASH_FSCK checks hash integrity on every add/delete when HASH_DEBUG is defined.
-- * This is for uthash developer only; it compiles away if HASH_DEBUG isn't defined.
-- */
--#ifdef HASH_DEBUG
--#define HASH_OOPS(...) do { fprintf(stderr,__VA_ARGS__); exit(-1); } while (0)
--#define HASH_FSCK(hh,head) \
--do { \
-- unsigned _bkt_i; \
-- unsigned _count, _bkt_count; \
-- char *_prev; \
-- struct UT_hash_handle *_thh; \
-- if (head) { \
-- _count = 0; \
-- for( _bkt_i = 0; _bkt_i < (head)->hh.tbl->num_buckets; _bkt_i++) { \
-- _bkt_count = 0; \
-- _thh = (head)->hh.tbl->buckets[_bkt_i].hh_head; \
-- _prev = NULL; \
-- while (_thh) { \
-- if (_prev != (char*)(_thh->hh_prev)) { \
-- HASH_OOPS("invalid hh_prev %p, actual %p\n", \
-- _thh->hh_prev, _prev ); \
-- } \
-- _bkt_count++; \
-- _prev = (char*)(_thh); \
-- _thh = _thh->hh_next; \
-- } \
-- _count += _bkt_count; \
-- if ((head)->hh.tbl->buckets[_bkt_i].count != _bkt_count) { \
-- HASH_OOPS("invalid bucket count %d, actual %d\n", \
-- (head)->hh.tbl->buckets[_bkt_i].count, _bkt_count); \
-- } \
-- } \
-- if (_count != (head)->hh.tbl->num_items) { \
-- HASH_OOPS("invalid hh item count %d, actual %d\n", \
-- (head)->hh.tbl->num_items, _count ); \
-- } \
-- /* traverse hh in app order; check next/prev integrity, count */ \
-- _count = 0; \
-- _prev = NULL; \
-- _thh = &(head)->hh; \
-- while (_thh) { \
-- _count++; \
-- if (_prev !=(char*)(_thh->prev)) { \
-- HASH_OOPS("invalid prev %p, actual %p\n", \
-- _thh->prev, _prev ); \
-- } \
-- _prev = (char*)ELMT_FROM_HH((head)->hh.tbl, _thh); \
-- _thh = ( _thh->next ? (UT_hash_handle*)((char*)(_thh->next) + \
-- (head)->hh.tbl->hho) : NULL ); \
-- } \
-- if (_count != (head)->hh.tbl->num_items) { \
-- HASH_OOPS("invalid app item count %d, actual %d\n", \
-- (head)->hh.tbl->num_items, _count ); \
-- } \
-- } \
--} while (0)
--#else
--#define HASH_FSCK(hh,head)
--#endif
--
--/* When compiled with -DHASH_EMIT_KEYS, length-prefixed keys are emitted to
-- * the descriptor to which this macro is defined for tuning the hash function.
-- * The app can #include <unistd.h> to get the prototype for write(2). */
--#ifdef HASH_EMIT_KEYS
--#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen) \
--do { \
-- unsigned _klen = fieldlen; \
-- write(HASH_EMIT_KEYS, &_klen, sizeof(_klen)); \
-- write(HASH_EMIT_KEYS, keyptr, fieldlen); \
--} while (0)
--#else
--#define HASH_EMIT_KEY(hh,head,keyptr,fieldlen)
--#endif
--
--/* default to Jenkin's hash unless overridden e.g. DHASH_FUNCTION=HASH_SAX */
--#ifdef HASH_FUNCTION
--#define HASH_FCN HASH_FUNCTION
--#else
--#define HASH_FCN HASH_JEN
--#endif
--
--/* The Bernstein hash function, used in Perl prior to v5.6 */
--#define HASH_BER(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _hb_keylen=keylen; \
-- char *_hb_key=(char*)(key); \
-- (hashv) = 0; \
-- while (_hb_keylen--) { (hashv) = ((hashv) * 33) + *_hb_key++; } \
-- bkt = (hashv) & (num_bkts-1); \
--} while (0)
--
--
--/* SAX/FNV/OAT/JEN hash functions are macro variants of those listed at
-- * http://eternallyconfuzzled.com/tuts/algorithms/jsw_tut_hashing.aspx */
--#define HASH_SAX(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _sx_i; \
-- char *_hs_key=(char*)(key); \
-- hashv = 0; \
-- for(_sx_i=0; _sx_i < keylen; _sx_i++) \
-- hashv ^= (hashv << 5) + (hashv >> 2) + _hs_key[_sx_i]; \
-- bkt = hashv & (num_bkts-1); \
--} while (0)
--
--#define HASH_FNV(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _fn_i; \
-- char *_hf_key=(char*)(key); \
-- hashv = 2166136261UL; \
-- for(_fn_i=0; _fn_i < keylen; _fn_i++) \
-- hashv = (hashv * 16777619) ^ _hf_key[_fn_i]; \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--#define HASH_OAT(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _ho_i; \
-- char *_ho_key=(char*)(key); \
-- hashv = 0; \
-- for(_ho_i=0; _ho_i < keylen; _ho_i++) { \
-- hashv += _ho_key[_ho_i]; \
-- hashv += (hashv << 10); \
-- hashv ^= (hashv >> 6); \
-- } \
-- hashv += (hashv << 3); \
-- hashv ^= (hashv >> 11); \
-- hashv += (hashv << 15); \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--#define HASH_JEN_MIX(a,b,c) \
--do { \
-- a -= b; a -= c; a ^= ( c >> 13 ); \
-- b -= c; b -= a; b ^= ( a << 8 ); \
-- c -= a; c -= b; c ^= ( b >> 13 ); \
-- a -= b; a -= c; a ^= ( c >> 12 ); \
-- b -= c; b -= a; b ^= ( a << 16 ); \
-- c -= a; c -= b; c ^= ( b >> 5 ); \
-- a -= b; a -= c; a ^= ( c >> 3 ); \
-- b -= c; b -= a; b ^= ( a << 10 ); \
-- c -= a; c -= b; c ^= ( b >> 15 ); \
--} while (0)
--
--#define HASH_JEN(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned _hj_i,_hj_j,_hj_k; \
-- unsigned char *_hj_key=(unsigned char*)(key); \
-- hashv = 0xfeedbeef; \
-- _hj_i = _hj_j = 0x9e3779b9; \
-- _hj_k = (unsigned)keylen; \
-- while (_hj_k >= 12) { \
-- _hj_i += (_hj_key[0] + ( (unsigned)_hj_key[1] << 8 ) \
-- + ( (unsigned)_hj_key[2] << 16 ) \
-- + ( (unsigned)_hj_key[3] << 24 ) ); \
-- _hj_j += (_hj_key[4] + ( (unsigned)_hj_key[5] << 8 ) \
-- + ( (unsigned)_hj_key[6] << 16 ) \
-- + ( (unsigned)_hj_key[7] << 24 ) ); \
-- hashv += (_hj_key[8] + ( (unsigned)_hj_key[9] << 8 ) \
-- + ( (unsigned)_hj_key[10] << 16 ) \
-- + ( (unsigned)_hj_key[11] << 24 ) ); \
-- \
-- HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
-- \
-- _hj_key += 12; \
-- _hj_k -= 12; \
-- } \
-- hashv += keylen; \
-- switch ( _hj_k ) { \
-- case 11: hashv += ( (unsigned)_hj_key[10] << 24 ); \
-- case 10: hashv += ( (unsigned)_hj_key[9] << 16 ); \
-- case 9: hashv += ( (unsigned)_hj_key[8] << 8 ); \
-- case 8: _hj_j += ( (unsigned)_hj_key[7] << 24 ); \
-- case 7: _hj_j += ( (unsigned)_hj_key[6] << 16 ); \
-- case 6: _hj_j += ( (unsigned)_hj_key[5] << 8 ); \
-- case 5: _hj_j += _hj_key[4]; \
-- case 4: _hj_i += ( (unsigned)_hj_key[3] << 24 ); \
-- case 3: _hj_i += ( (unsigned)_hj_key[2] << 16 ); \
-- case 2: _hj_i += ( (unsigned)_hj_key[1] << 8 ); \
-- case 1: _hj_i += _hj_key[0]; \
-- } \
-- HASH_JEN_MIX(_hj_i, _hj_j, hashv); \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--/* The Paul Hsieh hash function */
--#undef get16bits
--#if (defined(__GNUC__) && defined(__i386__)) || defined(__WATCOMC__) \
-- || defined(_MSC_VER) || defined (__BORLANDC__) || defined (__TURBOC__)
--#define get16bits(d) (*((const uint16_t *) (d)))
--#endif
--
--#if !defined (get16bits)
--#define get16bits(d) ((((uint32_t)(((const uint8_t *)(d))[1])) << 8) \
-- +(uint32_t)(((const uint8_t *)(d))[0]) )
--#endif
--#define HASH_SFH(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- unsigned char *_sfh_key=(unsigned char*)(key); \
-- uint32_t _sfh_tmp, _sfh_len = keylen; \
-- \
-- int _sfh_rem = _sfh_len & 3; \
-- _sfh_len >>= 2; \
-- hashv = 0xcafebabe; \
-- \
-- /* Main loop */ \
-- for (;_sfh_len > 0; _sfh_len--) { \
-- hashv += get16bits (_sfh_key); \
-- _sfh_tmp = (uint32_t)(get16bits (_sfh_key+2)) << 11 ^ hashv; \
-- hashv = (hashv << 16) ^ _sfh_tmp; \
-- _sfh_key += 2*sizeof (uint16_t); \
-- hashv += hashv >> 11; \
-- } \
-- \
-- /* Handle end cases */ \
-- switch (_sfh_rem) { \
-- case 3: hashv += get16bits (_sfh_key); \
-- hashv ^= hashv << 16; \
-- hashv ^= (uint32_t)(_sfh_key[sizeof (uint16_t)] << 18); \
-- hashv += hashv >> 11; \
-- break; \
-- case 2: hashv += get16bits (_sfh_key); \
-- hashv ^= hashv << 11; \
-- hashv += hashv >> 17; \
-- break; \
-- case 1: hashv += *_sfh_key; \
-- hashv ^= hashv << 10; \
-- hashv += hashv >> 1; \
-- } \
-- \
-- /* Force "avalanching" of final 127 bits */ \
-- hashv ^= hashv << 3; \
-- hashv += hashv >> 5; \
-- hashv ^= hashv << 4; \
-- hashv += hashv >> 17; \
-- hashv ^= hashv << 25; \
-- hashv += hashv >> 6; \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--
--#ifdef HASH_USING_NO_STRICT_ALIASING
--/* The MurmurHash exploits some CPU's (x86,x86_64) tolerance for unaligned reads.
-- * For other types of CPU's (e.g. Sparc) an unaligned read causes a bus error.
-- * MurmurHash uses the faster approach only on CPU's where we know it's safe.
-- *
-- * Note the preprocessor built-in defines can be emitted using:
-- *
-- * gcc -m64 -dM -E - < /dev/null (on gcc)
-- * cc -## a.c (where a.c is a simple test file) (Sun Studio)
-- */
--#if (defined(__i386__) || defined(__x86_64__) || defined(_M_IX86))
--#define MUR_GETBLOCK(p,i) p[i]
--#else /* non intel */
--#define MUR_PLUS0_ALIGNED(p) (((unsigned long)p & 0x3) == 0)
--#define MUR_PLUS1_ALIGNED(p) (((unsigned long)p & 0x3) == 1)
--#define MUR_PLUS2_ALIGNED(p) (((unsigned long)p & 0x3) == 2)
--#define MUR_PLUS3_ALIGNED(p) (((unsigned long)p & 0x3) == 3)
--#define WP(p) ((uint32_t*)((unsigned long)(p) & ~3UL))
--#if (defined(__BIG_ENDIAN__) || defined(SPARC) || defined(__ppc__) || defined(__ppc64__))
--#define MUR_THREE_ONE(p) ((((*WP(p))&0x00ffffff) << 8) | (((*(WP(p)+1))&0xff000000) >> 24))
--#define MUR_TWO_TWO(p) ((((*WP(p))&0x0000ffff) <<16) | (((*(WP(p)+1))&0xffff0000) >> 16))
--#define MUR_ONE_THREE(p) ((((*WP(p))&0x000000ff) <<24) | (((*(WP(p)+1))&0xffffff00) >> 8))
--#else /* assume little endian non-intel */
--#define MUR_THREE_ONE(p) ((((*WP(p))&0xffffff00) >> 8) | (((*(WP(p)+1))&0x000000ff) << 24))
--#define MUR_TWO_TWO(p) ((((*WP(p))&0xffff0000) >>16) | (((*(WP(p)+1))&0x0000ffff) << 16))
--#define MUR_ONE_THREE(p) ((((*WP(p))&0xff000000) >>24) | (((*(WP(p)+1))&0x00ffffff) << 8))
--#endif
--#define MUR_GETBLOCK(p,i) (MUR_PLUS0_ALIGNED(p) ? ((p)[i]) : \
-- (MUR_PLUS1_ALIGNED(p) ? MUR_THREE_ONE(p) : \
-- (MUR_PLUS2_ALIGNED(p) ? MUR_TWO_TWO(p) : \
-- MUR_ONE_THREE(p))))
--#endif
--#define MUR_ROTL32(x,r) (((x) << (r)) | ((x) >> (32 - (r))))
--#define MUR_FMIX(_h) \
--do { \
-- _h ^= _h >> 16; \
-- _h *= 0x85ebca6b; \
-- _h ^= _h >> 13; \
-- _h *= 0xc2b2ae35l; \
-- _h ^= _h >> 16; \
--} while(0)
--
--#define HASH_MUR(key,keylen,num_bkts,hashv,bkt) \
--do { \
-- const uint8_t *_mur_data = (const uint8_t*)(key); \
-- const int _mur_nblocks = (keylen) / 4; \
-- uint32_t _mur_h1 = 0xf88D5353; \
-- uint32_t _mur_c1 = 0xcc9e2d51; \
-- uint32_t _mur_c2 = 0x1b873593; \
-- uint32_t _mur_k1 = 0; \
-- const uint8_t *_mur_tail; \
-- const uint32_t *_mur_blocks = (const uint32_t*)(_mur_data+_mur_nblocks*4); \
-- int _mur_i; \
-- for(_mur_i = -_mur_nblocks; _mur_i; _mur_i++) { \
-- _mur_k1 = MUR_GETBLOCK(_mur_blocks,_mur_i); \
-- _mur_k1 *= _mur_c1; \
-- _mur_k1 = MUR_ROTL32(_mur_k1,15); \
-- _mur_k1 *= _mur_c2; \
-- \
-- _mur_h1 ^= _mur_k1; \
-- _mur_h1 = MUR_ROTL32(_mur_h1,13); \
-- _mur_h1 = _mur_h1*5+0xe6546b64; \
-- } \
-- _mur_tail = (const uint8_t*)(_mur_data + _mur_nblocks*4); \
-- _mur_k1=0; \
-- switch((keylen) & 3) { \
-- case 3: _mur_k1 ^= _mur_tail[2] << 16; \
-- case 2: _mur_k1 ^= _mur_tail[1] << 8; \
-- case 1: _mur_k1 ^= _mur_tail[0]; \
-- _mur_k1 *= _mur_c1; \
-- _mur_k1 = MUR_ROTL32(_mur_k1,15); \
-- _mur_k1 *= _mur_c2; \
-- _mur_h1 ^= _mur_k1; \
-- } \
-- _mur_h1 ^= (keylen); \
-- MUR_FMIX(_mur_h1); \
-- hashv = _mur_h1; \
-- bkt = hashv & (num_bkts-1); \
--} while(0)
--#endif /* HASH_USING_NO_STRICT_ALIASING */
--
--/* key comparison function; return 0 if keys equal */
--#define HASH_KEYCMP(a,b,len) memcmp(a,b,len)
--
--/* iterate over items in a known bucket to find desired item */
--#define HASH_FIND_IN_BKT(tbl,hh,head,keyptr,keylen_in,out) \
--do { \
-- if (head.hh_head) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,head.hh_head)); \
-- else out=NULL; \
-- while (out) { \
-- if ((out)->hh.keylen == keylen_in) { \
-- if ((HASH_KEYCMP((out)->hh.key,keyptr,keylen_in)) == 0) break; \
-- } \
-- if ((out)->hh.hh_next) DECLTYPE_ASSIGN(out,ELMT_FROM_HH(tbl,(out)->hh.hh_next)); \
-- else out = NULL; \
-- } \
--} while(0)
--
--/* add an item to a bucket */
--#define HASH_ADD_TO_BKT(head,addhh) \
--do { \
-- head.count++; \
-- (addhh)->hh_next = head.hh_head; \
-- (addhh)->hh_prev = NULL; \
-- if (head.hh_head) { (head).hh_head->hh_prev = (addhh); } \
-- (head).hh_head=addhh; \
-- if (head.count >= ((head.expand_mult+1) * HASH_BKT_CAPACITY_THRESH) \
-- && (addhh)->tbl->noexpand != 1) { \
-- HASH_EXPAND_BUCKETS((addhh)->tbl); \
-- } \
--} while(0)
--
--/* remove an item from a given bucket */
--#define HASH_DEL_IN_BKT(hh,head,hh_del) \
-- (head).count--; \
-- if ((head).hh_head == hh_del) { \
-- (head).hh_head = hh_del->hh_next; \
-- } \
-- if (hh_del->hh_prev) { \
-- hh_del->hh_prev->hh_next = hh_del->hh_next; \
-- } \
-- if (hh_del->hh_next) { \
-- hh_del->hh_next->hh_prev = hh_del->hh_prev; \
-- }
--
--/* Bucket expansion has the effect of doubling the number of buckets
-- * and redistributing the items into the new buckets. Ideally the
-- * items will distribute more or less evenly into the new buckets
-- * (the extent to which this is true is a measure of the quality of
-- * the hash function as it applies to the key domain).
-- *
-- * With the items distributed into more buckets, the chain length
-- * (item count) in each bucket is reduced. Thus by expanding buckets
-- * the hash keeps a bound on the chain length. This bounded chain
-- * length is the essence of how a hash provides constant time lookup.
-- *
-- * The calculation of tbl->ideal_chain_maxlen below deserves some
-- * explanation. First, keep in mind that we're calculating the ideal
-- * maximum chain length based on the *new* (doubled) bucket count.
-- * In fractions this is just n/b (n=number of items,b=new num buckets).
-- * Since the ideal chain length is an integer, we want to calculate
-- * ceil(n/b). We don't depend on floating point arithmetic in this
-- * hash, so to calculate ceil(n/b) with integers we could write
-- *
-- * ceil(n/b) = (n/b) + ((n%b)?1:0)
-- *
-- * and in fact a previous version of this hash did just that.
-- * But now we have improved things a bit by recognizing that b is
-- * always a power of two. We keep its base 2 log handy (call it lb),
-- * so now we can write this with a bit shift and logical AND:
-- *
-- * ceil(n/b) = (n>>lb) + ( (n & (b-1)) ? 1:0)
-- *
-- */
--#define HASH_EXPAND_BUCKETS(tbl) \
--do { \
-- unsigned _he_bkt; \
-- unsigned _he_bkt_i; \
-- struct UT_hash_handle *_he_thh, *_he_hh_nxt; \
-- UT_hash_bucket *_he_new_buckets, *_he_newbkt; \
-- _he_new_buckets = (UT_hash_bucket*)uthash_malloc( \
-- 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
-- if (!_he_new_buckets) { uthash_fatal( "out of memory"); } \
-- memset(_he_new_buckets, 0, \
-- 2 * tbl->num_buckets * sizeof(struct UT_hash_bucket)); \
-- tbl->ideal_chain_maxlen = \
-- (tbl->num_items >> (tbl->log2_num_buckets+1)) + \
-- ((tbl->num_items & ((tbl->num_buckets*2)-1)) ? 1 : 0); \
-- tbl->nonideal_items = 0; \
-- for(_he_bkt_i = 0; _he_bkt_i < tbl->num_buckets; _he_bkt_i++) \
-- { \
-- _he_thh = tbl->buckets[ _he_bkt_i ].hh_head; \
-- while (_he_thh) { \
-- _he_hh_nxt = _he_thh->hh_next; \
-- HASH_TO_BKT( _he_thh->hashv, tbl->num_buckets*2, _he_bkt); \
-- _he_newbkt = &(_he_new_buckets[ _he_bkt ]); \
-- if (++(_he_newbkt->count) > tbl->ideal_chain_maxlen) { \
-- tbl->nonideal_items++; \
-- _he_newbkt->expand_mult = _he_newbkt->count / \
-- tbl->ideal_chain_maxlen; \
-- } \
-- _he_thh->hh_prev = NULL; \
-- _he_thh->hh_next = _he_newbkt->hh_head; \
-- if (_he_newbkt->hh_head) _he_newbkt->hh_head->hh_prev = \
-- _he_thh; \
-- _he_newbkt->hh_head = _he_thh; \
-- _he_thh = _he_hh_nxt; \
-- } \
-- } \
-- uthash_free( tbl->buckets, tbl->num_buckets*sizeof(struct UT_hash_bucket) ); \
-- tbl->num_buckets *= 2; \
-- tbl->log2_num_buckets++; \
-- tbl->buckets = _he_new_buckets; \
-- tbl->ineff_expands = (tbl->nonideal_items > (tbl->num_items >> 1)) ? \
-- (tbl->ineff_expands+1) : 0; \
-- if (tbl->ineff_expands > 1) { \
-- tbl->noexpand=1; \
-- uthash_noexpand_fyi(tbl); \
-- } \
-- uthash_expand_fyi(tbl); \
--} while(0)
--
--
--/* This is an adaptation of Simon Tatham's O(n log(n)) mergesort */
--/* Note that HASH_SORT assumes the hash handle name to be hh.
-- * HASH_SRT was added to allow the hash handle name to be passed in. */
--#define HASH_SORT(head,cmpfcn) HASH_SRT(hh,head,cmpfcn)
--#define HASH_SRT(hh,head,cmpfcn) \
--do { \
-- unsigned _hs_i; \
-- unsigned _hs_looping,_hs_nmerges,_hs_insize,_hs_psize,_hs_qsize; \
-- struct UT_hash_handle *_hs_p, *_hs_q, *_hs_e, *_hs_list, *_hs_tail; \
-- if (head) { \
-- _hs_insize = 1; \
-- _hs_looping = 1; \
-- _hs_list = &((head)->hh); \
-- while (_hs_looping) { \
-- _hs_p = _hs_list; \
-- _hs_list = NULL; \
-- _hs_tail = NULL; \
-- _hs_nmerges = 0; \
-- while (_hs_p) { \
-- _hs_nmerges++; \
-- _hs_q = _hs_p; \
-- _hs_psize = 0; \
-- for ( _hs_i = 0; _hs_i < _hs_insize; _hs_i++ ) { \
-- _hs_psize++; \
-- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
-- ((void*)((char*)(_hs_q->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- if (! (_hs_q) ) break; \
-- } \
-- _hs_qsize = _hs_insize; \
-- while ((_hs_psize > 0) || ((_hs_qsize > 0) && _hs_q )) { \
-- if (_hs_psize == 0) { \
-- _hs_e = _hs_q; \
-- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
-- ((void*)((char*)(_hs_q->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- _hs_qsize--; \
-- } else if ( (_hs_qsize == 0) || !(_hs_q) ) { \
-- _hs_e = _hs_p; \
-- if (_hs_p){ \
-- _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
-- ((void*)((char*)(_hs_p->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- } \
-- _hs_psize--; \
-- } else if (( \
-- cmpfcn(DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_p)), \
-- DECLTYPE(head)(ELMT_FROM_HH((head)->hh.tbl,_hs_q))) \
-- ) <= 0) { \
-- _hs_e = _hs_p; \
-- if (_hs_p){ \
-- _hs_p = (UT_hash_handle*)((_hs_p->next) ? \
-- ((void*)((char*)(_hs_p->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- } \
-- _hs_psize--; \
-- } else { \
-- _hs_e = _hs_q; \
-- _hs_q = (UT_hash_handle*)((_hs_q->next) ? \
-- ((void*)((char*)(_hs_q->next) + \
-- (head)->hh.tbl->hho)) : NULL); \
-- _hs_qsize--; \
-- } \
-- if ( _hs_tail ) { \
-- _hs_tail->next = ((_hs_e) ? \
-- ELMT_FROM_HH((head)->hh.tbl,_hs_e) : NULL); \
-- } else { \
-- _hs_list = _hs_e; \
-- } \
-- if (_hs_e) { \
-- _hs_e->prev = ((_hs_tail) ? \
-- ELMT_FROM_HH((head)->hh.tbl,_hs_tail) : NULL); \
-- } \
-- _hs_tail = _hs_e; \
-- } \
-- _hs_p = _hs_q; \
-- } \
-- if (_hs_tail){ \
-- _hs_tail->next = NULL; \
-- } \
-- if ( _hs_nmerges <= 1 ) { \
-- _hs_looping=0; \
-- (head)->hh.tbl->tail = _hs_tail; \
-- DECLTYPE_ASSIGN(head,ELMT_FROM_HH((head)->hh.tbl, _hs_list)); \
-- } \
-- _hs_insize *= 2; \
-- } \
-- HASH_FSCK(hh,head); \
-- } \
--} while (0)
--
--/* This function selects items from one hash into another hash.
-- * The end result is that the selected items have dual presence
-- * in both hashes. There is no copy of the items made; rather
-- * they are added into the new hash through a secondary hash
-- * hash handle that must be present in the structure. */
--#define HASH_SELECT(hh_dst, dst, hh_src, src, cond) \
--do { \
-- unsigned _src_bkt, _dst_bkt; \
-- void *_last_elt=NULL, *_elt; \
-- UT_hash_handle *_src_hh, *_dst_hh, *_last_elt_hh=NULL; \
-- ptrdiff_t _dst_hho = ((char*)(&(dst)->hh_dst) - (char*)(dst)); \
-- if (src) { \
-- for(_src_bkt=0; _src_bkt < (src)->hh_src.tbl->num_buckets; _src_bkt++) { \
-- for(_src_hh = (src)->hh_src.tbl->buckets[_src_bkt].hh_head; \
-- _src_hh; \
-- _src_hh = _src_hh->hh_next) { \
-- _elt = ELMT_FROM_HH((src)->hh_src.tbl, _src_hh); \
-- if (cond(_elt)) { \
-- _dst_hh = (UT_hash_handle*)(((char*)_elt) + _dst_hho); \
-- _dst_hh->key = _src_hh->key; \
-- _dst_hh->keylen = _src_hh->keylen; \
-- _dst_hh->hashv = _src_hh->hashv; \
-- _dst_hh->prev = _last_elt; \
-- _dst_hh->next = NULL; \
-- if (_last_elt_hh) { _last_elt_hh->next = _elt; } \
-- if (!dst) { \
-- DECLTYPE_ASSIGN(dst,_elt); \
-- HASH_MAKE_TABLE(hh_dst,dst); \
-- } else { \
-- _dst_hh->tbl = (dst)->hh_dst.tbl; \
-- } \
-- HASH_TO_BKT(_dst_hh->hashv, _dst_hh->tbl->num_buckets, _dst_bkt); \
-- HASH_ADD_TO_BKT(_dst_hh->tbl->buckets[_dst_bkt],_dst_hh); \
-- (dst)->hh_dst.tbl->num_items++; \
-- _last_elt = _elt; \
-- _last_elt_hh = _dst_hh; \
-- } \
-- } \
-- } \
-- } \
-- HASH_FSCK(hh_dst,dst); \
--} while (0)
--
--#define HASH_CLEAR(hh,head) \
--do { \
-- if (head) { \
-- uthash_free((head)->hh.tbl->buckets, \
-- (head)->hh.tbl->num_buckets*sizeof(struct UT_hash_bucket)); \
-- HASH_BLOOM_FREE((head)->hh.tbl); \
-- uthash_free((head)->hh.tbl, sizeof(UT_hash_table)); \
-- (head)=NULL; \
-- } \
--} while(0)
--
--#define HASH_OVERHEAD(hh,head) \
-- (size_t)((((head)->hh.tbl->num_items * sizeof(UT_hash_handle)) + \
-- ((head)->hh.tbl->num_buckets * sizeof(UT_hash_bucket)) + \
-- (sizeof(UT_hash_table)) + \
-- (HASH_BLOOM_BYTELEN)))
--
--#ifdef NO_DECLTYPE
--#define HASH_ITER(hh,head,el,tmp) \
--for((el)=(head), (*(char**)(&(tmp)))=(char*)((head)?(head)->hh.next:NULL); \
-- el; (el)=(tmp),(*(char**)(&(tmp)))=(char*)((tmp)?(tmp)->hh.next:NULL))
--#else
--#define HASH_ITER(hh,head,el,tmp) \
--for((el)=(head),(tmp)=DECLTYPE(el)((head)?(head)->hh.next:NULL); \
-- el; (el)=(tmp),(tmp)=DECLTYPE(el)((tmp)?(tmp)->hh.next:NULL))
--#endif
--
--/* obtain a count of items in the hash */
--#define HASH_COUNT(head) HASH_CNT(hh,head)
--#define HASH_CNT(hh,head) ((head)?((head)->hh.tbl->num_items):0)
--
--typedef struct UT_hash_bucket {
-- struct UT_hash_handle *hh_head;
-- unsigned count;
--
-- /* expand_mult is normally set to 0. In this situation, the max chain length
-- * threshold is enforced at its default value, HASH_BKT_CAPACITY_THRESH. (If
-- * the bucket's chain exceeds this length, bucket expansion is triggered).
-- * However, setting expand_mult to a non-zero value delays bucket expansion
-- * (that would be triggered by additions to this particular bucket)
-- * until its chain length reaches a *multiple* of HASH_BKT_CAPACITY_THRESH.
-- * (The multiplier is simply expand_mult+1). The whole idea of this
-- * multiplier is to reduce bucket expansions, since they are expensive, in
-- * situations where we know that a particular bucket tends to be overused.
-- * It is better to let its chain length grow to a longer yet-still-bounded
-- * value, than to do an O(n) bucket expansion too often.
-- */
-- unsigned expand_mult;
--
--} UT_hash_bucket;
--
--/* random signature used only to find hash tables in external analysis */
--#define HASH_SIGNATURE 0xa0111fe1
--#define HASH_BLOOM_SIGNATURE 0xb12220f2
--
--typedef struct UT_hash_table {
-- UT_hash_bucket *buckets;
-- unsigned num_buckets, log2_num_buckets;
-- unsigned num_items;
-- struct UT_hash_handle *tail; /* tail hh in app order, for fast append */
-- ptrdiff_t hho; /* hash handle offset (byte pos of hash handle in element */
--
-- /* in an ideal situation (all buckets used equally), no bucket would have
-- * more than ceil(#items/#buckets) items. that's the ideal chain length. */
-- unsigned ideal_chain_maxlen;
--
-- /* nonideal_items is the number of items in the hash whose chain position
-- * exceeds the ideal chain maxlen. these items pay the penalty for an uneven
-- * hash distribution; reaching them in a chain traversal takes >ideal steps */
-- unsigned nonideal_items;
--
-- /* ineffective expands occur when a bucket doubling was performed, but
-- * afterward, more than half the items in the hash had nonideal chain
-- * positions. If this happens on two consecutive expansions we inhibit any
-- * further expansion, as it's not helping; this happens when the hash
-- * function isn't a good fit for the key domain. When expansion is inhibited
-- * the hash will still work, albeit no longer in constant time. */
-- unsigned ineff_expands, noexpand;
--
-- uint32_t signature; /* used only to find hash tables in external analysis */
--#ifdef HASH_BLOOM
-- uint32_t bloom_sig; /* used only to test bloom exists in external analysis */
-- uint8_t *bloom_bv;
-- char bloom_nbits;
--#endif
--
--} UT_hash_table;
--
--typedef struct UT_hash_handle {
-- struct UT_hash_table *tbl;
-- void *prev; /* prev element in app order */
-- void *next; /* next element in app order */
-- struct UT_hash_handle *hh_prev; /* previous hh in bucket order */
-- struct UT_hash_handle *hh_next; /* next hh in bucket order */
-- void *key; /* ptr to enclosing struct's key */
-- unsigned keylen; /* enclosing struct's key len */
-- unsigned hashv; /* result of hash-fcn(key) */
--} UT_hash_handle;
--
--#endif /* UTHASH_H */
---
-2.15.1
-
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/1571.patch b/meta-networking/recipes-connectivity/mosquitto/files/1571.patch
new file mode 100644
index 0000000000..627638ec89
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mosquitto/files/1571.patch
@@ -0,0 +1,22 @@
+Upstream-Status: Submitted [https://github.com/eclipse/mosquitto/pull/1571]
+From 3fe5468f1bdca1bff1d18cf43c9e338f41aa9e32 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Wed, 22 Jan 2020 12:39:49 +0100
+Subject: [PATCH] Add dynamic symbols linking with cmake too
+
+Signed-off-by: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+---
+ lib/CMakeLists.txt | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/lib/CMakeLists.txt
++++ b/lib/CMakeLists.txt
+@@ -94,6 +94,8 @@
+ OUTPUT_NAME mosquitto
+ VERSION ${VERSION}
+ SOVERSION 1
++ LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/linker.version
++ LINK_FLAGS "-Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/linker.version"
+ )
+
+ install(TARGETS libmosquitto
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
index d2a27b2732..9d5963c418 100644
--- a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
+++ b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.init
@@ -8,9 +8,9 @@
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
-# Short-Description: mosquitto MQTT v3.1 message broker
+# Short-Description: mosquitto MQTT message broker
# Description:
-# This is a message broker that supports version 3.1 of the MQ Telemetry
+# This is a message broker that supports version 3.1/3.1.1 of the MQ Telemetry
# Transport (MQTT) protocol.
#
# MQTT provides a method of carrying out messaging using a publish/subscribe
@@ -38,7 +38,7 @@ export PATH="${PATH:+$PATH:}@SBINDIR@:@BASE_SBINDIR@"
case "$1" in
start)
echo "Starting Mosquitto message broker" "mosquitto"
- if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} ; then
+ if start-stop-daemon --start --quiet --oknodo --background --make-pidfile --pidfile ${PIDFILE} --exec ${DAEMON} -- -c @SYSCONFDIR@/mosquitto/mosquitto.conf ; then
exit 0
else
exit 1
diff --git a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.service b/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.service
deleted file mode 100644
index 25f68fae05..0000000000
--- a/meta-networking/recipes-connectivity/mosquitto/files/mosquitto.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=Mosquitto - lightweight server implementation of the MQTT and MQTT-SN protocols
-ConditionPathExists=/etc/mosquitto/mosquitto.conf
-After=network.target
-
-[Service]
-Type=simple
-ExecStartPre=/bin/rm -f /var/run/mosquitto.pid
-ExecStart=/usr/sbin/mosquitto -c /etc/mosquitto/mosquitto.conf
-ExecReload=/bin/kill -HUP $MAINPID
-PIDFile=/var/run/mosquitto.pid
-Restart=on-failure
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.4.15.bb b/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.4.15.bb
deleted file mode 100644
index 8dd2124c41..0000000000
--- a/meta-networking/recipes-connectivity/mosquitto/mosquitto_1.4.15.bb
+++ /dev/null
@@ -1,93 +0,0 @@
-SUMMARY = "Open source MQTT v3.1/3.1.1 implemention"
-DESCRIPTION = "Mosquitto is an open source (Eclipse licensed) message broker that implements the MQ Telemetry Transport protocol version 3.1 and 3.1.1. MQTT provides a lightweight method of carrying out messaging using a publish/subscribe model. "
-HOMEPAGE = "http://mosquitto.org/"
-SECTION = "console/network"
-LICENSE = "EPL-1.0 | EDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=62ddc846179e908dc0c8efec4a42ef20 \
- file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
- file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \
- file://notice.html;md5=a00d6f9ab542be7babc2d8b80d5d2a4c \
-"
-DEPENDS = "uthash"
-
-SRC_URI = "http://mosquitto.org/files/source/mosquitto-${PV}.tar.gz \
- file://0001-config.mk-allow-prefix-mandir-localedir-from-environ.patch \
- file://0002-uthash-remove-in-tree-version.patch \
- file://mosquitto.service \
- file://mosquitto.init \
-"
-
-SRC_URI[md5sum] = "546cb1ce35cc3f7d23e6d2f1f9a962e7"
-SRC_URI[sha256sum] = "7d3b3e245a3b4ec94b05678c8199c806359737949f4cfe0bf936184f6ca89a83"
-
-inherit systemd update-rc.d useradd
-
-PACKAGECONFIG ??= "ssl uuid"
-
-PACKAGECONFIG[dns-srv] = ",,c-ares"
-PACKAGECONFIG[ssl] = ",,openssl"
-PACKAGECONFIG[uuid] = ",,util-linux"
-EXTRA_OEMAKE = "${@bb.utils.contains('PACKAGECONFIG', 'dns-srv', 'WITH_SRV=yes', 'WITH_SRV=no', d)} \
- STRIP=/bin/true \
- WITH_DOCS=no \
- ${@bb.utils.contains('PACKAGECONFIG', 'ssl', 'WITH_TLS=yes WITH_TLS_PSK=yes', 'WITH_TLS=no WITH_TLS_PSK=no', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'uuid', 'WITH_UUID=yes', 'WITH_UUID=no', d)}"
-
-export LIB_SUFFIX="${@d.getVar('baselib', True).replace('lib', '')}"
-
-do_compile() {
- oe_runmake PREFIX=${prefix}
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
- install -d ${D}${libdir}
- install -m 0644 lib/libmosquitto.a ${D}${libdir}/
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${WORKDIR}/mosquitto.service ${D}${systemd_unitdir}/system/
-
- install -d ${D}${sysconfdir}/mosquitto
- install -m 0644 ${D}${sysconfdir}/mosquitto/mosquitto.conf.example \
- ${D}${sysconfdir}/mosquitto/mosquitto.conf
-
- 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 \
- ${sysconfdir}/mosquitto \
- ${sysconfdir}/init.d \
- ${systemd_unitdir}/system/mosquitto.service \
-"
-
-CONFFILES_${PN} += "${sysconfdir}/mosquitto/mosquitto.conf"
-
-FILES_libmosquitto1 = "${libdir}/libmosquitto.so.1"
-
-FILES_libmosquittopp1 = "${libdir}/libmosquittopp.so.1"
-
-FILES_${PN}-clients = "${bindir}/mosquitto_pub \
- ${bindir}/mosquitto_sub \
-"
-
-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"
diff --git a/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb b/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb
new file mode 100644
index 0000000000..d06dd2d9ca
--- /dev/null
+++ b/meta-networking/recipes-connectivity/mosquitto/mosquitto_2.0.15.bb
@@ -0,0 +1,90 @@
+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/nanomsg/nanomsg_1.2.bb b/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.bb
new file mode 100644
index 0000000000..fdb781180a
--- /dev/null
+++ b/meta-networking/recipes-connectivity/nanomsg/nanomsg_1.2.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 = "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_1.5.2.bb
new file mode 100644
index 0000000000..ab2907110d
--- /dev/null
+++ b/meta-networking/recipes-connectivity/nanomsg/nng_1.5.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "nanomsg-next-generation -- light-weight brokerless messaging"
+DESCRIPTION = "NNG, like its predecessors nanomsg (and to some extent ZeroMQ), is a lightweight, broker-less library, offering a simple API to solve common recurring messaging problems, such as publish/subscribe, RPC-style request/reply, or service discovery."
+HOMEPAGE = "https://github.com/nanomsg/nng"
+SECTION = "libs/networking"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a41e579bb4326c21c774f8e51e41d8a3"
+
+SRC_URI = "git://github.com/nanomsg/nng.git;branch=master;protocol=https"
+SRCREV = "169221da8d53b2ca4fda76f894bee8505887a7c6"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=ON -DNNG_ENABLE_NNGCAT=ON"
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[mbedtls] = "-DNNG_ENABLE_TLS=ON,-DNNG_ENABLE_TLS=OFF,mbedtls"
+
+PACKAGES =+ "${PN}-tools"
+FILES:${PN}-tools = "${bindir}/*"
diff --git a/meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb b/meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb
new file mode 100644
index 0000000000..b52154025b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/nanomsg/nngpp_git.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "C++ wrapper around the nanomsg NNG API"
+HOMEPAGE = "https://github.com/cwzx/nngpp"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://license.txt;md5=6d17d78c3597e0d4452fb1c63bf7c58e"
+DEPENDS = "nng"
+
+SRCREV = "cc5d2641babab165d8a9943817c46d36c6dc17c2"
+PV = "1.3.0"
+
+SRC_URI = "git://github.com/cwzx/nngpp;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
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..0a568fa23c
--- /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: Accepted
+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..798a57b0da
--- /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: Accepted
+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..a251e8bf3d
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-fortisslvpn_1.4.0.bb
@@ -0,0 +1,70 @@
+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"
+
+inherit gnomebase gettext useradd
+
+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..c978defbbf
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openconnect_1.2.8.bb
@@ -0,0 +1,46 @@
+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"
+
+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_1.10.2.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.2.bb
new file mode 100644
index 0000000000..3114731f2a
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.10.2.bb
@@ -0,0 +1,52 @@
+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] = "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-openvpn_1.2.8.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
deleted file mode 100644
index 1b604ad529..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager-openvpn_1.2.8.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "NetworkManager-openvpn-plugin"
-SECTION = "net/misc"
-
-LICENSE = "GPLv2+"
-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[md5sum] = "9f325be386aa906ff9b0b7c0bdf2a59a"
-SRC_URI[sha256sum] = "3e0b4007f248d96df4b8eb5d0f937536044af7053debbbf525e67c9bc5d30654"
-
-S = "${WORKDIR}/NetworkManager-openvpn-${PV}"
-
-PACKAGECONFIG[gnome] = "--with-gnome,--without-gnome"
-
-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} += " \
- ${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-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
deleted file mode 100644
index 7194423192..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 18f71c1b48730b8602826517f2b5b088283ae948 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 16:48:00 -0700
-Subject: [PATCH 5/7] sd-lldp.h: Remove net/ethernet.h seems to be over
- specified
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/systemd/src/libsystemd-network/sd-lldp.c | 1 +
- src/systemd/src/systemd/sd-lldp.h | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/systemd/src/libsystemd-network/sd-lldp.c b/src/systemd/src/libsystemd-network/sd-lldp.c
-index 31e2448..7721cc2 100644
---- a/src/systemd/src/libsystemd-network/sd-lldp.c
-+++ b/src/systemd/src/libsystemd-network/sd-lldp.c
-@@ -21,6 +21,7 @@
- #include "nm-sd-adapt.h"
-
- #include <arpa/inet.h>
-+#include <net/ethernet.h>
- #include <linux/sockios.h>
-
- #include "sd-lldp.h"
-diff --git a/src/systemd/src/systemd/sd-lldp.h b/src/systemd/src/systemd/sd-lldp.h
-index 3f35eeb..61b0e45 100644
---- a/src/systemd/src/systemd/sd-lldp.h
-+++ b/src/systemd/src/systemd/sd-lldp.h
-@@ -22,7 +22,7 @@
- ***/
-
- #include <inttypes.h>
--#include <net/ethernet.h>
-+//#include <net/ethernet.h>
- #include <sys/types.h>
-
- #include "sd-event.h"
---
-2.14.1
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
deleted file mode 100644
index 28848d3543..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 583f0448fb7e9aba2b410c06eec6f420b41a6a0c Mon Sep 17 00:00:00 2001
-From: Pablo Saavedra <psaavedra@igalia.com>
-Date: Tue, 13 Mar 2018 17:36:20 +0100
-Subject: [PATCH 7/7] Fixed configure.ac: Fix pkgconfig sysroot locations
-
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 51e5eb6..c9d3e56 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -669,7 +669,7 @@ else
- AC_DEFINE(WITH_JANSSON, 1, [Define if JANSSON is enabled])
-
- AC_CHECK_TOOLS(READELF, [eu-readelf readelf])
-- JANSSON_LIBDIR=`$PKG_CONFIG --variable=libdir jansson`
-+ JANSSON_LIBDIR=${PKG_CONFIG_SYSROOT_DIR}`$PKG_CONFIG --variable=libdir jansson`
- JANSSON_SONAME=`$READELF -d $JANSSON_LIBDIR/libjansson.so |sed -n 's/.*SONAME.*\[[\([^]]*\)]]/\1/p'`
-
- if test "$JANSSON_SONAME" = ""; then
---
-2.14.1
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch
deleted file mode 100644
index 92485f0441..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/0003-Do-not-create-settings-settings-property-documentati.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 4f000a4a19975d6aba71427e693cd1ed080abda9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 11:08:30 +0100
-Subject: [PATCH] Do not create settings settings/property documentation
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It was tried to get this work but gi / GirRepository could not be found by
-python. Anyway it is not necessary for us to have the settings/property docs.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- Makefile.am | 18 ++----------------
- configure.ac | 4 ----
- 2 files changed, 2 insertions(+), 20 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 639921d..314a61d 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -961,9 +961,7 @@ endif
- if HAVE_INTROSPECTION
-
- libnm_noinst_data = \
-- libnm/nm-property-docs.xml \
- libnm/nm-settings-docs-overrides.xml \
-- libnm/nm-settings-docs.xml \
- libnm/nm-settings-keyfile-docs.xml \
- libnm/nm-settings-ifcfg-rh-docs.xml
-
-@@ -3317,23 +3315,11 @@ $(clients_common_libnmc_base_la_OBJECTS): $(libnm_core_lib_h_pub_mkenums)
- $(clients_common_libnmc_base_la_OBJECTS): clients/common/.dirstamp
-
- clients_common_settings_doc_c = clients/common/settings-docs.c
--if HAVE_INTROSPECTION
--$(clients_common_settings_doc_c): clients/common/settings-docs.xsl libnm/nm-property-docs.xml clients/common/.dirstamp
-- $(AM_V_GEN) $(XSLTPROC) --output $@ $< $(word 2,$^)
--DISTCLEANFILES += $(clients_common_settings_doc_c)
--check-local-settings-docs: $(clients_common_settings_doc_c)
-- @if test -z "$$NMTST_NO_CHECK_SETTINGS_DOCS" ; then \
-- if ! cmp -s "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)" ; then \
-- echo "The generated file \"$(builddir)/$(clients_common_settings_doc_c)\" differs from the source file \"$(srcdir)/$(clients_common_settings_doc_c).in\". You probably should copy the generated file over to the source file. You can skip this test by setting \$$NMTST_NO_CHECK_SETTINGS_DOCS=yes"; \
-- false; \
-- fi;\
-- fi
--check_local += check-local-settings-docs
--else
-+
- $(clients_common_settings_doc_c): $(clients_common_settings_doc_c).in clients/common/.dirstamp
- $(AM_V_GEN) cp "$(srcdir)/$(clients_common_settings_doc_c).in" "$(builddir)/$(clients_common_settings_doc_c)"
- check-local-settings-docs:
--endif
-+
- EXTRA_DIST += \
- $(clients_common_settings_doc_c) \
- $(clients_common_settings_doc_c).in
-diff --git a/configure.ac b/configure.ac
-index c9d3e56..407222e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1286,10 +1286,6 @@ GTK_DOC_CHECK(1.0)
- # check if we can build setting property documentation
- build_docs=no
- if test -n "$INTROSPECTION_MAKEFILE"; then
-- # If g-i is installed we know we have python, but we might not have pygobject
-- if ! "$PYTHON" -c 'from gi.repository import GObject' >& /dev/null; then
-- AC_MSG_ERROR(["--enable-introspection aims to build the settings documentation. This requires GObject introspection for python (pygobject)])
-- fi
-
- AC_PATH_PROG(PERL, perl)
- if test -z "$PERL"; then
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-dhcpcd.conf b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-dhcpcd.conf
new file mode 100644
index 0000000000..8da4fe0487
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-dhcpcd.conf
@@ -0,0 +1,2 @@
+[main]
+dhcp=dhcpcd
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-iwd.conf b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-iwd.conf
new file mode 100644
index 0000000000..abb5937341
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/enable-iwd.conf
@@ -0,0 +1,3 @@
+[device]
+wifi.iwd.autoconnect=yes
+wifi.backend=iwd
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch
deleted file mode 100644
index 9d208e1fda..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0001-musl-basic.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e92de7409a3e107f90d108a9c5d49bd0418296dd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 17:54:10 +0100
-Subject: [PATCH 1/4] Usual fix for musl libc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- src/systemd/src/basic/stdio-util.h | 2 ++
- src/systemd/src/basic/util.h | 5 +++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/src/systemd/src/basic/stdio-util.h b/src/systemd/src/basic/stdio-util.h
-index bd1144b..9eafacb 100644
---- a/src/systemd/src/basic/stdio-util.h
-+++ b/src/systemd/src/basic/stdio-util.h
-@@ -19,7 +19,9 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
-
-+#if defined(__GLIBC__)
- #include <printf.h>
-+#endif
- #include <stdarg.h>
- #include <stdio.h>
- #include <sys/types.h>
-diff --git a/src/systemd/src/basic/util.h b/src/systemd/src/basic/util.h
-index b31dfd1..9b7032c 100644
---- a/src/systemd/src/basic/util.h
-+++ b/src/systemd/src/basic/util.h
-@@ -46,6 +46,11 @@
- #include "missing.h"
- #include "time-util.h"
-
-+#if !defined(__GLIBC__)
-+typedef int (*__compar_fn_t) (const void*, const void*);
-+typedef __compar_fn_t comparison_fn_t;
-+#endif
-+
- size_t page_size(void) _pure_;
- #define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
-
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch
deleted file mode 100644
index 548cccb329..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0002-musl-dlopen-configure-ac.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 57239fda56b68a8f3e413f7b6af5290ba0d86636 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 18:18:06 +0100
-Subject: [PATCH 2/4] musl: dlopen is included so LD_LIBS="" instead of
- LD_LIBS="none required"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index 487a266..96ae4f7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -305,6 +305,7 @@ dnl
- dnl Checks for libdl - on certain platforms its part of libc
- dnl
- AC_SEARCH_LIBS([dlopen], [dl dld], [], [ac_cv_search_dlopen=])
-+AS_IF([test "$ac_cv_search_dlopen" = "none required"],[ac_cv_search_dlopen=""])
- AC_SUBST([DL_LIBS], "$ac_cv_search_dlopen")
-
- PKG_CHECK_MODULES(GLIB, [gio-unix-2.0 >= 2.37.6 gmodule-2.0],
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch
deleted file mode 100644
index 5dd17b63b4..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0003-musl-network-support.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 714b4731a238653e9c7d885c0dee10677b0a4df3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 18:24:07 +0100
-Subject: [PATCH 3/4] musl: network support
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- libnm-core/nm-utils.h | 4 ++++
- src/platform/wifi/wifi-utils.h | 4 ++++
- src/systemd/src/basic/socket-util.h | 5 +++++
- 3 files changed, 13 insertions(+)
-
-diff --git a/libnm-core/nm-utils.h b/libnm-core/nm-utils.h
-index df9284b..2bcf4b8 100644
---- a/libnm-core/nm-utils.h
-+++ b/libnm-core/nm-utils.h
-@@ -30,7 +30,11 @@
- #include <netinet/in.h>
-
- /* For ETH_ALEN and INFINIBAND_ALEN */
-+#if defined(__GLIBC__)
- #include <linux/if_ether.h>
-+#else
-+#define ETH_ALEN 6 /* Octets in one ethernet addr */
-+#endif
- #include <linux/if_infiniband.h>
-
- #include "nm-core-enum-types.h"
-diff --git a/src/platform/wifi/wifi-utils.h b/src/platform/wifi/wifi-utils.h
-index 705717b..da3edc4 100644
---- a/src/platform/wifi/wifi-utils.h
-+++ b/src/platform/wifi/wifi-utils.h
-@@ -22,7 +22,11 @@
- #ifndef __WIFI_UTILS_H__
- #define __WIFI_UTILS_H__
-
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#else /* musl libc */
-+#define ETH_ALEN 6 /* Octets in one ethernet addr */
-+#endif
-
- #include "nm-dbus-interface.h"
-
-diff --git a/src/systemd/src/basic/socket-util.h b/src/systemd/src/basic/socket-util.h
-index d7e2d85..d109c84 100644
---- a/src/systemd/src/basic/socket-util.h
-+++ b/src/systemd/src/basic/socket-util.h
-@@ -29,6 +29,11 @@
- #include <linux/netlink.h>
- #include <linux/if_infiniband.h>
- #include <linux/if_packet.h>
-+#if !defined(__GLIBC__)
-+/* SIOCGSTAMPNS from linux/asm-generic.h
-+ * for src/systemd/src/libsystemd-network/sd-lldp.c */
-+#include <linux/sockios.h>
-+#endif
-
- #include "macro.h"
- #include "missing.h"
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch
deleted file mode 100644
index fc55ce85f6..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0004-musl-process-util.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From d513c8bfc982dbd976617178b040c512c95710b6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Thu, 22 Mar 2018 18:29:00 +0100
-Subject: [PATCH 4/4] musl: process-util
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Upstream-Status: Pending
-
-Stolen from [1] and prettyfied slightly
-
-[1] https://github.com/voidlinux/void-packages/tree/master/srcpkgs/NetworkManager/patches
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- src/systemd/src/basic/process-util.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/src/systemd/src/basic/process-util.c b/src/systemd/src/basic/process-util.c
-index 272030d..485f1db 100644
---- a/src/systemd/src/basic/process-util.c
-+++ b/src/systemd/src/basic/process-util.c
-@@ -36,6 +36,9 @@
- #include <sys/wait.h>
- #include <syslog.h>
- #include <unistd.h>
-+#ifndef __GLIBC__
-+#include <pthread.h>
-+#endif
- #if 0 /* NM_IGNORED */
- #if HAVE_VALGRIND_VALGRIND_H
- #include <valgrind/valgrind.h>
-@@ -1015,11 +1018,13 @@ static 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 __attribute__ ((__weak__));
-+#endif
-
- pid_t getpid_cached(void) {
- pid_t current_value;
-@@ -1042,7 +1047,11 @@ pid_t getpid_cached(void) {
-
- new_pid = getpid();
-
-+#ifdef __GLIBC__
- if (__register_atfork(NULL, NULL, reset_cached_pid, __dso_handle) != 0) {
-+#else
-+ if (pthread_atfork(NULL, NULL, reset_cached_pid) != 0) {
-+#endif
- /* OOM? Let's try again later */
- cached_pid = CACHED_PID_UNSET;
- return new_pid;
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch
deleted file mode 100644
index 752fe4f581..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From b3b4fe35018c98ad176719b2d9ffb867974fc7c3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 16 Apr 2018 14:45:44 +0200
-Subject: [PATCH] musl: avoid further conflicts by including net/ethernet.h
-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/systemd/src/systemd/sd-dhcp-client.h | 2 ++
- src/systemd/src/systemd/sd-dhcp-lease.h | 2 ++
- src/systemd/src/systemd/sd-dhcp6-client.h | 2 ++
- src/systemd/src/systemd/sd-ipv4ll.h | 2 ++
- 4 files changed, 8 insertions(+)
-
-diff --git a/src/systemd/src/systemd/sd-dhcp-client.h b/src/systemd/src/systemd/sd-dhcp-client.h
-index 5e46d8d..18a613f 100644
---- a/src/systemd/src/systemd/sd-dhcp-client.h
-+++ b/src/systemd/src/systemd/sd-dhcp-client.h
-@@ -21,7 +21,9 @@
- ***/
-
- #include <inttypes.h>
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <netinet/in.h>
- #include <sys/types.h>
-
-diff --git a/src/systemd/src/systemd/sd-dhcp-lease.h b/src/systemd/src/systemd/sd-dhcp-lease.h
-index 7ab99cc..85acdf2 100644
---- a/src/systemd/src/systemd/sd-dhcp-lease.h
-+++ b/src/systemd/src/systemd/sd-dhcp-lease.h
-@@ -22,7 +22,9 @@
- ***/
-
- #include <inttypes.h>
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <netinet/in.h>
- #include <sys/types.h>
-
-diff --git a/src/systemd/src/systemd/sd-dhcp6-client.h b/src/systemd/src/systemd/sd-dhcp6-client.h
-index 7819f0d..35f30ee 100644
---- a/src/systemd/src/systemd/sd-dhcp6-client.h
-+++ b/src/systemd/src/systemd/sd-dhcp6-client.h
-@@ -21,7 +21,9 @@
- ***/
-
- #include <inttypes.h>
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <sys/types.h>
-
- #include "sd-dhcp6-lease.h"
-diff --git a/src/systemd/src/systemd/sd-ipv4ll.h b/src/systemd/src/systemd/sd-ipv4ll.h
-index 5ba9208..c90eca6 100644
---- a/src/systemd/src/systemd/sd-ipv4ll.h
-+++ b/src/systemd/src/systemd/sd-ipv4ll.h
-@@ -20,7 +20,9 @@
- along with systemd; If not, see <http://www.gnu.org/licenses/>.
- ***/
-
-+#if defined(__GLIBC__)
- #include <net/ethernet.h>
-+#endif
- #include <netinet/in.h>
-
- #include "sd-event.h"
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch b/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch
deleted file mode 100644
index 8ed7ee64fb..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager/musl/0006-Add-a-strndupa-replacement-for-musl.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6db6596e450062601d18b2ae812a4a58d2e03a53 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 16 Apr 2018 15:07:20 +0200
-Subject: [PATCH] Add a strndupa replacement for musl
-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/systemd/src/basic/in-addr-util.c | 1 +
- src/systemd/src/basic/string-util.h | 5 +++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/src/systemd/src/basic/in-addr-util.c b/src/systemd/src/basic/in-addr-util.c
-index 2a02d90..a57c360 100644
---- a/src/systemd/src/basic/in-addr-util.c
-+++ b/src/systemd/src/basic/in-addr-util.c
-@@ -30,6 +30,7 @@
- #include "in-addr-util.h"
- #include "macro.h"
- #include "parse-util.h"
-+#include "string-util.h"
- #include "util.h"
-
- bool in4_addr_is_null(const struct in_addr *a) {
-diff --git a/src/systemd/src/basic/string-util.h b/src/systemd/src/basic/string-util.h
-index 4c94b18..a6dc446 100644
---- a/src/systemd/src/basic/string-util.h
-+++ b/src/systemd/src/basic/string-util.h
-@@ -44,6 +44,11 @@
- #define strcaseeq(a,b) (strcasecmp((a),(b)) == 0)
- #define strncaseeq(a, b, n) (strncasecmp((a), (b), (n)) == 0)
-
-+/* musl does not know strndupa */
-+#if !defined(__GLIBC__)
-+#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
-+#endif
-+
- int strcmp_ptr(const char *a, const char *b) _pure_;
-
- static inline bool streq_ptr(const char *a, const char *b) {
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager/networkmanager.initd b/meta-networking/recipes-connectivity/networkmanager/networkmanager/networkmanager.initd
new file mode 100644
index 0000000000..4fdd80d410
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager/networkmanager.initd
@@ -0,0 +1,110 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: network-manager
+# Required-Start: $remote_fs dbus udev
+# Required-Stop: $remote_fs dbus udev
+# Should-Start: $syslog
+# Should-Stop: $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: network connection manager
+# Description: Daemon for automatically switching network
+# connections to the best available connection.
+### END INIT INFO
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DESC="network connection manager"
+NAME="NetworkManager"
+
+DAEMON=/usr/sbin/$NAME
+
+PIDFILE=/run/$NAME/$NAME.pid
+
+SCRIPTNAME=/etc/init.d/network-manager
+
+. /etc/init.d/functions || exit 1
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+log_daemon_msg() {
+ echo -n $*
+}
+
+log_end_msg() {
+ if [ $1 -eq 0 ]; then
+ success
+ else
+ failure
+ fi
+ echo
+}
+
+log_progress_msg () {
+ if [ -z "${1:-}" ]; then
+ return 1
+ fi
+ echo -n " $@"
+}
+
+#
+# Function that starts the daemon/service.
+#
+d_start() {
+ start-stop-daemon --start --quiet --pidfile $PIDFILE \
+ --exec $DAEMON -- $DAEMON_OPTS
+}
+
+#
+# Function that stops the daemon/service.
+#
+d_stop() {
+ start-stop-daemon --stop --retry 5 --quiet --pidfile $PIDFILE \
+ --exec $DAEMON
+}
+
+d_reload() {
+ start-stop-daemon --stop --signal HUP --quiet --pidfile $PIDFILE \
+ --exec $DAEMON
+}
+
+case "$1" in
+ start)
+ log_daemon_msg "Starting $DESC" "$NAME"
+ d_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_progress_msg "already started"
+ log_end_msg 0 ;;
+ *) log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ log_daemon_msg "Stopping $DESC" "$NAME"
+ d_stop
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_progress_msg "already stopped"
+ log_end_msg 0 ;;
+ *) log_end_msg 1 ;;
+ esac
+ ;;
+ reload|force-reload)
+ log_daemon_msg "Reloading $DESC" "$NAME"
+ d_reload
+ log_end_msg $?
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ ;;
+ status)
+ status_of_proc -p $PIDFILE $DAEMON $NAME && exit 0 || exit $?
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|status}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb
deleted file mode 100644
index 605d371b14..0000000000
--- a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.10.6.bb
+++ /dev/null
@@ -1,143 +0,0 @@
-SUMMARY = "NetworkManager"
-HOMEPAGE = "https://wiki.gnome.org/Projects/NetworkManager"
-SECTION = "net/misc"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cbbffd568227ada506640fe950a4823b \
- file://libnm-util/COPYING;md5=1c4fa765d6eb3cd2fbd84344a1b816cd \
- file://docs/api/html/license.html;md5=77b9e362690c149da196aefe7712db30 \
-"
-
-DEPENDS = " \
- intltool-native \
- libxslt-native \
- libnl \
- dbus \
- dbus-glib \
- dbus-glib-native \
- libgudev \
- util-linux \
- libndp \
- libnewt \
- polkit \
- jansson \
- curl \
-"
-
-inherit gnomebase gettext systemd bluetooth bash-completion vala gobject-introspection gtk-doc
-
-SRC_URI = " \
- ${GNOME_MIRROR}/NetworkManager/${@gnome_verdir("${PV}")}/NetworkManager-${PV}.tar.xz \
- file://0001-sd-lldp.h-Remove-net-ethernet.h-seems-to-be-over-spe.patch \
- file://0002-Fixed-configure.ac-Fix-pkgconfig-sysroot-locations.patch \
- file://0003-Do-not-create-settings-settings-property-documentati.patch \
- file://musl/0001-musl-basic.patch \
- file://musl/0002-musl-dlopen-configure-ac.patch \
- file://musl/0003-musl-network-support.patch \
- file://musl/0004-musl-process-util.patch \
- file://musl/0005-musl-avoid-further-conflicts-by-including-net-ethern.patch \
- file://musl/0006-Add-a-strndupa-replacement-for-musl.patch \
-"
-SRC_URI[md5sum] = "de3c7147a693da6f80eb22f126086a14"
-SRC_URI[sha256sum] = "6af0b1e856a3725f88791f55c4fbb04105dc0b20dbf182aaec8aad16481fac76"
-
-S = "${WORKDIR}/NetworkManager-${PV}"
-
-EXTRA_OECONF = " \
- --disable-ifcfg-rh \
- --disable-ifnet \
- --disable-ifcfg-suse \
- --disable-more-warnings \
- --with-iptables=${sbindir}/iptables \
- --with-tests \
- --with-nmtui=yes \
-"
-
-# gobject-introspection related
-GI_DATA_ENABLED_libc-musl = "False"
-
-# stolen from https://github.com/voidlinux/void-packages/blob/master/srcpkgs/NetworkManager/template
-CFLAGS_libc-musl_append = " \
- -DHAVE_SECURE_GETENV -Dsecure_getenv=getenv \
- -D__USE_POSIX199309 -DRTLD_DEEPBIND=0 \
-"
-
-do_compile_prepend() {
- export GIR_EXTRA_LIBS_PATH="${B}/libnm/.libs:${B}/libnm-glib/.libs:${B}/libnm-util/.libs"
-}
-
-PACKAGECONFIG ??= "nss ifupdown netconfig dhclient dnsmasq \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', '${BLUEZ}', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'wifi', d)} \
-"
-PACKAGECONFIG[systemd] = " \
- --with-systemdsystemunitdir=${systemd_unitdir}/system --with-session-tracking=systemd --enable-polkit, \
- --without-systemdsystemunitdir, \
- polkit \
-"
-PACKAGECONFIG[bluez5] = "--enable-bluez5-dun,--disable-bluez5-dun,bluez5"
-# consolekit is not picked by shlibs, so add it to RDEPENDS too
-PACKAGECONFIG[consolekit] = "--with-session-tracking=consolekit,,consolekit,consolekit"
-PACKAGECONFIG[modemmanager] = "--with-modem-manager-1=yes,--with-modem-manager-1=no,modemmanager"
-PACKAGECONFIG[ppp] = "--enable-ppp,--disable-ppp,ppp,ppp"
-# Use full featured dhcp client instead of internal one
-PACKAGECONFIG[dhclient] = "--with-dhclient=${base_sbindir}/dhclient,,,dhcp-client"
-PACKAGECONFIG[dnsmasq] = "--with-dnsmasq=${bindir}/dnsmasq"
-PACKAGECONFIG[nss] = "--with-crypto=nss,,nss"
-PACKAGECONFIG[gnutls] = "--with-crypto=gnutls,,gnutls"
-PACKAGECONFIG[wifi] = "--enable-wifi=yes,--enable-wifi=no,,wpa-supplicant"
-PACKAGECONFIG[ifupdown] = "--enable-ifupdown,--disable-ifupdown"
-PACKAGECONFIG[netconfig] = "--with-netconfig=yes,--with-netconfig=no"
-PACKAGECONFIG[qt4-x11-free] = "--enable-qt,--disable-qt,qt4-x11-free"
-
-PACKAGES =+ "libnmutil libnmglib libnmglib-vpn \
- ${PN}-nmtui ${PN}-nmtui-doc \
- ${PN}-adsl \
-"
-
-FILES_libnmutil += "${libdir}/libnm-util.so.*"
-FILES_libnmglib += "${libdir}/libnm-glib.so.*"
-FILES_libnmglib-vpn += "${libdir}/libnm-glib-vpn.so.*"
-
-FILES_${PN}-adsl = "${libdir}/NetworkManager/libnm-device-plugin-adsl.so"
-
-FILES_${PN} += " \
- ${libexecdir} \
- ${libdir}/pppd/*/nm-pppd-plugin.so \
- ${libdir}/NetworkManager/*.so \
- ${nonarch_libdir}/NetworkManager/VPN \
- ${nonarch_libdir}/NetworkManager/conf.d \
- ${datadir}/polkit-1 \
- ${datadir}/dbus-1 \
- ${base_libdir}/udev/* \
- ${systemd_unitdir}/system \
-"
-
-RRECOMMENDS_${PN} += "iptables \
- ${@bb.utils.filter('PACKAGECONFIG', 'dnsmasq', d)} \
-"
-RCONFLICTS_${PN} = "connman"
-
-FILES_${PN}-dev += " \
- ${datadir}/NetworkManager/gdb-cmd \
- ${libdir}/pppd/*/*.la \
- ${libdir}/NetworkManager/*.la \
-"
-
-FILES_${PN}-nmtui = " \
- ${bindir}/nmtui \
- ${bindir}/nmtui-edit \
- ${bindir}/nmtui-connect \
- ${bindir}/nmtui-hostname \
-"
-
-FILES_${PN}-nmtui-doc = " \
- ${mandir}/man1/nmtui* \
-"
-
-SYSTEMD_SERVICE_${PN} = "NetworkManager.service NetworkManager-dispatcher.service"
-
-do_install_append() {
- rm -rf ${D}/run ${D}${localstatedir}/run
-}
diff --git a/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.8.bb b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.8.bb
new file mode 100644
index 0000000000..5d9c6f4274
--- /dev/null
+++ b/meta-networking/recipes-connectivity/networkmanager/networkmanager_1.42.8.bb
@@ -0,0 +1,309 @@
+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 = " \
+ python3-pygobject-native \
+ 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] = "0337e7583d2ec5ade2ba2e8c625d2f09eeccda1d22836ee29aa72925d399c353"
+
+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"
+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=${base_sbindir}/dhcpcd,-Ddhcpcd=no,,dhcpcd"
+PACKAGECONFIG[dhclient] = "-Ddhclient=yes,-Ddhclient=no,,dhcp"
+PACKAGECONFIG[concheck] = "-Dconcheck=true,-Dconcheck=false"
+# 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_9.01.bb b/meta-networking/recipes-connectivity/openconnect/openconnect_9.01.bb
new file mode 100644
index 0000000000..afdbdca4e3
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openconnect/openconnect_9.01.bb
@@ -0,0 +1,32 @@
+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_git.bb b/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
deleted file mode 100644
index c944144e22..0000000000
--- a/meta-networking/recipes-connectivity/openconnect/openconnect_git.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Open client for Cisco AnyConnect VPN"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING.LGPL;md5=243b725d71bb5df4a1e5920b344b86ad"
-
-DEPENDS = "vpnc libxml2 krb5 gettext-native"
-
-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,"
-
-PV = "7.08"
-
-SRCREV = "9697bea0e50952cab57063238b43a7099e498cbb"
-SRC_URI = "git://git.infradead.org/users/dwmw2/openconnect.git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--with-vpnc-script=${SYSROOT_DESTDIR}${sysconfdir}/vpnc/vpnc-script \
- --disable-static"
diff --git a/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.5.bb b/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.5.bb
new file mode 100644
index 0000000000..bcfe646913
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openfortivpn/openfortivpn_1.20.5.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 = "1ccb8ee682af255ae85fecd5fcbab6497ccb6b38"
+
+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
new file mode 100644
index 0000000000..8122e725e7
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch
@@ -0,0 +1,68 @@
+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
new file mode 100644
index 0000000000..f0bb392a9f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-cmake-Disable-nonnull-compare-warning-on-gcc.patch
@@ -0,0 +1,40 @@
+From aa706d714294b83db696de2beca9a722a512796f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Apr 2022 14:04:40 -0700
+Subject: [PATCH] cmake: Disable nonnull-compare warning on gcc
+
+GCC finds a legit warning which clang does not on code like this
+
+class Message;
+void SendResponse(Message & aMessage)
+{
+ if ((&aMessage) != nullptr) { return; }
+}
+
+Perhaps it should be fixed upstream but for now disable treating this
+warning as error when using gcc
+
+Upstream-Status: Pending
+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()
+
+ set(CMAKE_CXX_EXTENSIONS OFF)
+
++if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
++ add_compile_options(-Wno-error=nonnull-compare)
++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)
+--
+2.36.0
+
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch
new file mode 100644
index 0000000000..250de4bdd8
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/0001-otbr-agent.service.in-remove-pre-exec-hook-for-mdns-.patch
@@ -0,0 +1,35 @@
+From ed60d4605b81c43b9ba9504a37835109c247c6f8 Mon Sep 17 00:00:00 2001
+From: Stefan Schmidt <stefan.schmidt@huawei.com>
+Date: Fri, 1 Apr 2022 21:46:03 +0200
+Subject: [PATCH] otbr-agent.service.in: remove pre exec hook for mdns service
+
+It uses the service command which is not available in all cases under
+Yocto/OE. The upstream project uses this mainly with Ubuntu and Raspian
+as testbeds.
+
+In our case we simply ensure that avahi-daemon is installed on the
+system inside the recipe.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Stefan Schmidt <stefan.schmidt@huawei.com>
+---
+ src/agent/otbr-agent.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/agent/otbr-agent.service.in b/src/agent/otbr-agent.service.in
+index 8314121347..4c97869def 100644
+--- a/src/agent/otbr-agent.service.in
++++ b/src/agent/otbr-agent.service.in
+@@ -6,7 +6,7 @@ After=dbus.socket
+
+ [Service]
+ EnvironmentFile=-@CMAKE_INSTALL_FULL_SYSCONFDIR@/default/otbr-agent
+-@EXEC_START_PRE@ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/otbr-agent $OTBR_AGENT_OPTS
++ExecStart=@CMAKE_INSTALL_FULL_SBINDIR@/otbr-agent $OTBR_AGENT_OPTS
+ KillMode=mixed
+ Restart=on-failure
+ RestartSec=5
+--
+2.35.1
+
diff --git a/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch
new file mode 100644
index 0000000000..23e4368d27
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/mbedtls.patch
@@ -0,0 +1,34 @@
+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, t __attribute__ ((unused)) = 0;
+
+ #if defined(MULADDC_HUIT)
+ for( ; i >= 8; i -= 8 )
+--- 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/unused_var.patch b/meta-networking/recipes-connectivity/openthread/ot-br-posix/unused_var.patch
new file mode 100644
index 0000000000..f10cec2d6c
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix/unused_var.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Pending
+
+--- 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
new file mode 100644
index 0000000000..720228dc14
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-br-posix_git.bb
@@ -0,0 +1,65 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+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/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}"
+
+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 \
+ "
+
+S = "${WORKDIR}/git"
+SYSTEMD_SERVICE:${PN} = "otbr-agent.service"
+
+inherit pkgconfig cmake systemd
+# openthread/repo/src/cli/cli.cpp:1786:18: fatal error: variable 'i' set but not used [-Wunused-but-set-variable]
+# for (uint8_t i = 0;; i++)
+CXXFLAGS:append:libc-musl:toolchain-clang = " -Wno-error=sign-compare -Wno-error=unused-but-set-variable"
+
+EXTRA_OECMAKE = "-DBUILD_TESTING=OFF \
+ -DOTBR_DBUS=ON \
+ -DOTBR_REST=ON \
+ -DOTBR_WEB=OFF \
+ -DCMAKE_LIBRARY_PATH=${libdir} \
+ -DOTBR_MDNS=avahi \
+ -DOTBR_BACKBONE_ROUTER=ON \
+ -DOTBR_BORDER_ROUTING=ON \
+ -DOTBR_SRP_ADVERTISING_PROXY=ON \
+ -DOTBR_BORDER_AGENT=ON \
+ -DOT_SPINEL_RESET_CONNECTION=ON \
+ -DOT_TREL=ON \
+ -DOT_MLR=ON \
+ -DOT_SRP_SERVER=ON \
+ -DOT_ECDSA=ON \
+ -DOT_SERVICE=ON \
+ -DOTBR_DUA_ROUTING=ON \
+ -DOT_DUA=ON \
+ -DOT_BORDER_ROUTING_NAT64=ON \
+ -DOTBR_DNSSD_DISCOVERY_PROXY=ON \
+ -DOTBR_INFRA_IF_NAME=eth0 \
+ -DOTBR_NO_AUTO_ATTACH=1 \
+ -DOT_REFERENCE_DEVICE=ON \
+ -DOT_DHCP6_CLIENT=ON \
+ -DOT_DHCP6_SERVER=ON \
+ "
+
+RDEPENDS:${PN} = "iproute2 ipset avahi-daemon"
+
+RCONFLICTS:${PN} = "ot-daemon"
+
+FILES:${PN} += "${systemd_unitdir}/*"
+FILES:${PN} += "${datadir}/*"
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
new file mode 100644
index 0000000000..c9edb0098b
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-daemon/0001-bn_mul.h-fix-x86-PIC-inline-ASM-compilation-with-GCC.patch
@@ -0,0 +1,68 @@
+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
new file mode 100644
index 0000000000..ffaff48dd4
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-daemon/mbedtls.patch
@@ -0,0 +1,34 @@
+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, t __attribute__ ((unused)) = 0;
+
+ #if defined(MULADDC_HUIT)
+ for( ; i >= 8; i -= 8 )
+--- 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
new file mode 100644
index 0000000000..18703d6c4d
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/ot-daemon_git.bb
@@ -0,0 +1,29 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+SUMMARY = "OpenThread Daemon is an OpenThread POSIX build mode that runs OpenThread as a service."
+SECTION = "net"
+LICENSE = "BSD-3-Clause & Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=543b6fe90ec5901a683320a36390c65f \
+ file://third_party/mbedtls/repo/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+ "
+DEPENDS = "readline"
+SRCREV = "7dfde1f12923f03c9680be4d838b94b7a2320324"
+PV = "0.1+git${SRCPV}"
+
+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"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DOT_DAEMON=ON \
+ -DOT_SPINEL_RESET_CONNECTION=ON \
+ -DOT_THREAD_VERSION=1.2 \
+ -DOT_COVERAGE=OFF \
+ -DOT_PLATFORM=posix \
+ -DCMAKE_BUILD_TYPE=Release \
+ "
diff --git a/meta-networking/recipes-connectivity/openthread/wpantund_git.bb b/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
new file mode 100644
index 0000000000..ebb3fc3c1c
--- /dev/null
+++ b/meta-networking/recipes-connectivity/openthread/wpantund_git.bb
@@ -0,0 +1,29 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+SUMMARY = "wpantund, Userspace WPAN Network Daemon"
+SECTION = "net"
+LICENSE = "Apache-2.0 & MIT & BSL-1.0 & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e7820bc7f7d1638a6b54fc2e8d7fb103 \
+ file://third_party/assert-macros/LICENSE;md5=cbf35ecdc8161026afe4da2906fab204 \
+ file://third_party/boost/LICENSE;md5=e4224ccaecb14d942c71d31bef20d78c \
+ file://third_party/fgetln/LICENSE;md5=389e03d2254ecad45d0d9bbdefef7129 \
+ file://third_party/openthread/LICENSE;md5=543b6fe90ec5901a683320a36390c65f \
+ file://third_party/pt/LICENSE;md5=dcd598b69cad786beea33da7b1ae14b7 \
+ "
+DEPENDS = "autoconf-archive dbus readline boost"
+SRCREV = "0fb1f57e4224e2df3e630e146702bfcf63fbf07a"
+PV = "0.07.01+git${SRCPV}"
+
+SRC_URI = "gitsm://github.com/openthread/wpantund.git;protocol=https;branch=master \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig perlnative autotools
+
+# 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 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/python-networkmanager/python-networkmanager_2.0.1.bb b/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb
deleted file mode 100644
index 4e41aa5765..0000000000
--- a/meta-networking/recipes-connectivity/python-networkmanager/python-networkmanager_2.0.1.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Easy communication with NetworkManager from Python"
-HOMEPAGE = "https://github.com/seveas/python-networkmanager"
-LICENSE = "Zlib"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8d8bac174bf8422b151200e6cc78ebe4"
-
-SRC_URI[md5sum] = "5fc644a65463031295c6b7dd51a0f1bd"
-SRC_URI[sha256sum] = "bc36507506ad29bfdac941b0987ebd1cc9633c9a9291d7378e229e4515a0a517"
-
-PYPI_PACKAGE = "python-networkmanager"
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "networkmanager python-dbus python-six"
diff --git a/meta-networking/recipes-connectivity/python-networkmanager/python3-networkmanager_2.2.bb b/meta-networking/recipes-connectivity/python-networkmanager/python3-networkmanager_2.2.bb
new file mode 100644
index 0000000000..60cf3c2525
--- /dev/null
+++ b/meta-networking/recipes-connectivity/python-networkmanager/python3-networkmanager_2.2.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Easy communication with NetworkManager from Python"
+HOMEPAGE = "https://github.com/seveas/python-networkmanager"
+LICENSE = "Zlib"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=9f8a5b5844f027357ab19ef3e3c6a956"
+
+SRC_URI[md5sum] = "7e05d3ca40a4fa50222ba93cda3d0d02"
+SRC_URI[sha256sum] = "de6eb921d94aba7549f428ed2b3aa482a5d543ecb6965cbaa0fbb555ab31b9d5"
+
+PYPI_PACKAGE = "python-networkmanager"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "networkmanager python3-dbus python3-six"
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/rdate/rdate_1.5.bb b/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb
index cd4db12c08..67e7c1c615 100644
--- a/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb
+++ b/meta-networking/recipes-connectivity/rdate/rdate_1.5.bb
@@ -8,7 +8,7 @@ DESCRIPTION = "The rdate utility retrieves the date and time from \
HOMEPAGE= "https://www.aelius.com/njh/rdate/"
SECTION = "Applications/System"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
SRC_URI = "https://www.aelius.com/njh/${BPN}/${BP}.tar.gz \
diff --git a/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-parallel-build.patch b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-parallel-build.patch
new file mode 100644
index 0000000000..f35e96a34f
--- /dev/null
+++ b/meta-networking/recipes-connectivity/rdist/rdist-6.1.5/rdist-6.1.5-fix-parallel-build.patch
@@ -0,0 +1,31 @@
+It fails to produce common.o when system load is high:
+
+| In file included from common.c:57:
+| ../include/defs.h:49:10: fatal error: y.tab.h: No such file or directory
+| 49 | #include "y.tab.h"
+| | ^~~~~~~~~
+| compilation terminated.
+
+Make $(COMMONOBJS) which include common.o to depends on related header files
+and y.tab.h to fix the parallel build failure.
+
+Upstream-Status: Inappropriate [no upstream]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/Makefile.real | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.real b/src/Makefile.real
+index e0f0dfc..53d4944 100644
+--- a/src/Makefile.real
++++ b/src/Makefile.real
+@@ -41,7 +41,7 @@ $(SERVER_BIN): $(SERVEROBJS) $(COMMONOBJS) $(MISSINGOBJS)
+ $(CLIENT_BIN): $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS)
+ $(CC) -o $@ $(CLIENTOBJS) $(COMMONOBJS) $(MISSINGOBJS) $(LIBS) $(LDFLAGS)
+
+-$(CLIENTOBJS) $(SERVEROBJS): $(HFILES) y.tab.h
++$(COMMONOBJS) $(CLIENTOBJS) $(SERVEROBJS): $(HFILES) y.tab.h
+
+ y.tab.h: gram.c
+
diff --git a/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb b/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
index 0c97960f8b..d81cc9a3d1 100644
--- a/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
+++ b/meta-networking/recipes-connectivity/rdist/rdist_6.1.5.bb
@@ -28,6 +28,7 @@ SRC_URI += "file://rdist-6.1.5-linux.patch \
file://rdist-6.1.5-fix-msgsndnotify-loop.patch \
file://rdist-6.1.5-bb-build.patch \
file://rdist-6.1.5-makefile-add-ldflags.patch \
+ file://rdist-6.1.5-fix-parallel-build.patch \
"
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/rdist/files/rdist/"
@@ -38,3 +39,6 @@ DEPENDS = "bison-native"
inherit autotools-brokensep
EXTRA_OEMAKE = "BIN_GROUP=root MAN_GROUP=root RDIST_MODE=755 RDISTD_MODE=755 MAN_MODE=644"
+
+# http://errors.yoctoproject.org/Errors/Details/186972/
+COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-networking/recipes-connectivity/relayd/relayd_git.bb b/meta-networking/recipes-connectivity/relayd/relayd_git.bb
index 98dc41a093..1da18d7ca0 100644
--- a/meta-networking/recipes-connectivity/relayd/relayd_git.bb
+++ b/meta-networking/recipes-connectivity/relayd/relayd_git.bb
@@ -1,17 +1,19 @@
DESCRIPTION = "Layer 3 relay daemon"
SECTION = "console/network"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://main.c;endline=17;md5=86aad799085683e0a2e1c2684a20bab2"
DEPENDS = "libubox"
-SRC_URI = "git://git.openwrt.org/project/relayd.git \
+SRC_URI = "git://git.openwrt.org/project/relayd.git;branch=master \
file://0001-rtnl_flush-Error-on-failed-write.patch \
"
-SRCREV = "ad0b25ad74345d367c62311e14b279f5ccb8ef13"
+SRCREV = "f4d759be54ceb37714e9a6ca320d5b50c95e9ce9"
PV = "0.0.1+git${SRCPV}"
+UPSTREAM_CHECK_COMMITS = "1"
+
S = "${WORKDIR}/git"
inherit cmake
diff --git a/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb b/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
new file mode 100644
index 0000000000..03eff43dd2
--- /dev/null
+++ b/meta-networking/recipes-connectivity/restinio/restinio_0.6.13.bb
@@ -0,0 +1,31 @@
+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}/${BP}.tar.bz2"
+SRC_URI[md5sum] = "37a4310e98912030a74bdd4ed789f33c"
+SRC_URI[sha256sum] = "b35d696e6fafd4563ca708fcecf9d0cf6705c846d417b5000f5252e0188848e7"
+
+S = "${WORKDIR}/${BP}/dev"
+
+inherit cmake
+
+EXTRA_OECMAKE += "\
+ -DRESTINIO_TEST=OFF \
+ -DRESTINIO_SAMPLE=OFF \
+ -DRESTINIO_BENCH=OFF \
+ -DRESTINIO_FIND_DEPS=ON \
+ -DRESTINIO_ALLOW_SOBJECTIZER=OFF \
+ -DRESTINIO_USE_EXTERNAL_HTTP_PARSER=ON \
+ "
+
+# Header-only library
+RDEPENDS:${PN}-dev = ""
+RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
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
new file mode 100644
index 0000000000..9f597bee2d
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0001-Don-t-check-xsltproc-manpages.patch
@@ -0,0 +1,59 @@
+From f6fa33bfc2e1272198db6ea08910b4162b364b18 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
+
+Upstream-Status: Pending
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+
+Rebase to 4.14.4
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ lib/ldb/wscript | 2 +-
+ lib/talloc/wscript | 2 +-
+ lib/tdb/wscript | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/lib/ldb/wscript b/lib/ldb/wscript
+index 60bb7cf..b7b0152 100644
+--- a/lib/ldb/wscript
++++ b/lib/ldb/wscript
+@@ -144,7 +144,7 @@ def configure(conf):
+ conf.DEFINE('EXPECTED_SYSTEM_LDB_VERSION_RELEASE', int(v[2]))
+
+ if conf.env.standalone_ldb:
+- conf.CHECK_XSLTPROC_MANPAGES()
++ #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'):
+diff --git a/lib/talloc/wscript b/lib/talloc/wscript
+index 3089663..76cd65e 100644
+--- a/lib/talloc/wscript
++++ b/lib/talloc/wscript
+@@ -48,7 +48,7 @@ def configure(conf):
+ conf.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
+ conf.env.TALLOC_VERSION = VERSION
+
+- conf.CHECK_XSLTPROC_MANPAGES()
++ #conf.CHECK_XSLTPROC_MANPAGES()
+
+ conf.CHECK_HEADERS('sys/auxv.h')
+ conf.CHECK_FUNCS('getauxval')
+diff --git a/lib/tdb/wscript b/lib/tdb/wscript
+index 71ada31..accd474 100644
+--- a/lib/tdb/wscript
++++ b/lib/tdb/wscript
+@@ -95,7 +95,7 @@ def configure(conf):
+ not conf.env.disable_tdb_mutex_locking):
+ conf.define('USE_TDB_MUTEX_LOCKING', 1)
+
+- conf.CHECK_XSLTPROC_MANPAGES()
++ #conf.CHECK_XSLTPROC_MANPAGES()
+
+ conf.SAMBA_CHECK_PYTHON()
+ conf.SAMBA_CHECK_PYTHON_HEADERS()
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch b/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch
deleted file mode 100644
index 0e89a9be01..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Submitted [https://github.com/samba-team/samba/pull/70]
-
-Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
-
-From 50eac4fd30944e5e1d83060757633fe0ed572723 Mon Sep 17 00:00:00 2001
-From: Andreas Oberritter <obi@opendreambox.org>
-Date: Wed, 30 Nov 2016 16:25:06 +0100
-Subject: [PATCH] packaging: Avoid timeout for nmbd if started offline with
- systemd
-
-If no network connection appears within DefaultTimeoutStartSec
-(~ 90s) after startup, nmbd fails to notify systemd and will
-therefore get killed.
-
-Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
-
----
- packaging/systemd/nmb.service | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/packaging/systemd/nmb.service b/packaging/systemd/nmb.service
-index 71c93d6..f3d2fc2 100644
---- a/packaging/systemd/nmb.service
-+++ b/packaging/systemd/nmb.service
-@@ -10,6 +10,7 @@ EnvironmentFile=-/etc/sysconfig/samba
- ExecStart=/usr/sbin/nmbd --foreground --no-process-group $NMBDOPTIONS
- ExecReload=/usr/bin/kill -HUP $MAINPID
- LimitCORE=infinity
-+TimeoutStartSec=0
-
- [Install]
- WantedBy=multi-user.target
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
new file mode 100644
index 0000000000..3b02690926
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0002-do-not-import-target-module-while-cross-compile.patch
@@ -0,0 +1,69 @@
+From f7b8e2e149b06a8033e31f4242c392573fa9ab52 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
+
+Some modules such as dynamic library maybe cann't be imported
+while cross compile, we just check whether does the module exist.
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+
+update to version 4.10.5, and switch to python3
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+Upstream-Status: Pending
+
+ buildtools/wafsamba/samba_bundled.py | 27 +++++++++++++++++++--------
+ 1 file changed, 19 insertions(+), 8 deletions(-)
+
+diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
+index 7d2d855..01dcb56 100644
+--- a/buildtools/wafsamba/samba_bundled.py
++++ b/buildtools/wafsamba/samba_bundled.py
+@@ -4,6 +4,7 @@ import sys
+ from waflib import Build, Options, Logs
+ from waflib.Configure import conf
+ from wafsamba import samba_utils
++import importlib.util, os
+
+ def PRIVATE_NAME(bld, name):
+ '''possibly rename a library to include a bundled extension'''
+@@ -241,17 +242,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
+ # versions
+ minversion = minimum_library_version(conf, libname, minversion)
+
+- try:
+- m = __import__(modulename)
+- except ImportError:
+- found = False
+- else:
++ # Find module in PYTHONPATH
++ spec = importlib.util._find_spec_from_path(modulename, [os.environ["PYTHONPATH"]])
++ if spec:
+ try:
+- version = m.__version__
+- except AttributeError:
++ module = importlib.util.module_from_spec(spec)
++ spec.loader.load_module(module)
++ except ImportError:
+ found = False
++
++ if conf.env.CROSS_COMPILE:
++ # Some modules such as dynamic library maybe cann't be imported
++ # while cross compile, we just check whether the module exist
++ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (spec.name))
++ found = True
+ else:
+- found = tuplize_version(version) >= tuplize_version(minversion)
++ try:
++ version = module.__version__
++ except AttributeError:
++ found = False
++ else:
++ found = tuplize_version(version) >= tuplize_version(minversion)
+ if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
+ Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
+ sys.exit(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
new file mode 100644
index 0000000000..f2e25eb105
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0003-Add-config-option-without-valgrind.patch
@@ -0,0 +1,50 @@
+From 556bb3cf17ccdf0b0ee0d82801c4b20cf0990ae4 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
+
+Upstream-Status: Pending
+
+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>
+---
+ lib/replace/wscript | 5 +++--
+ wscript | 4 ++++
+ 2 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 2f17999..9ef9bd9 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -114,8 +114,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.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')
+diff --git a/wscript b/wscript
+index 3af4207..54d7e9e 100644
+--- a/wscript
++++ b/wscript
+@@ -116,6 +116,10 @@ def options(opt):
+ help=("Disable RELRO builds"),
+ action="store_false", dest='enable_relro')
+
++ opt.add_option('--without-valgrind',
++ help=("Disable use of the valgrind headers"),
++ action="store_true", dest='disable_valgrind', default=False)
++
+ gr = opt.option_group('developer options')
+
+ opt.load('python') # options for disabling pyc or pyo compilation
+--
+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
new file mode 100644
index 0000000000..2b0fbff8e7
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0004-Add-options-to-configure-the-use-of-libbsd.patch
@@ -0,0 +1,96 @@
+From 515f2455b4b69f5fcd2c61a532663280785db737 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
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ buildtools/wafsamba/wscript | 7 +++++++
+ lib/replace/wscript | 29 +++++++++++++++--------------
+ lib/texpect/wscript | 8 +++++++-
+ 3 files changed, 29 insertions(+), 15 deletions(-)
+
+diff --git a/buildtools/wafsamba/wscript b/buildtools/wafsamba/wscript
+index 8729b08..1c55428 100644
+--- a/buildtools/wafsamba/wscript
++++ b/buildtools/wafsamba/wscript
+@@ -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)
+
++ 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)
++
+ gr = opt.option_group('developer options')
+
+ gr.add_option('-C',
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 9ef9bd9..d47de4f 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -439,20 +439,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/lib/texpect/wscript b/lib/texpect/wscript
+index 44f92a8..79e8d09 100644
+--- a/lib/texpect/wscript
++++ b/lib/texpect/wscript
+@@ -1,7 +1,13 @@
+ #!/usr/bin/env python
+
++from waflib import Options
++
+ def configure(conf):
+- conf.CHECK_FUNCS_IN('openpty', 'util', checklibc=True, headers='pty.h util.h bsd/libutil.h libutil.h')
++ hdrs = 'pty.h util.h'
++ if Options.options.enable_libbsd:
++ hdrs += ' bsd/libutil.h'
++ hdrs += ' libutil.h'
++ conf.CHECK_FUNCS_IN('openpty', 'util', checklibc=True, headers=hdrs)
+
+ def build(bld):
+ bld.SAMBA_BINARY('texpect',
+--
+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..e1b5fac0d0
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0005-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,63 @@
+From a8b4a40b535a2c69eb408f649e7169bcc1975fc1 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 a23bd01..af202e0 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] = 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/0006-avoid-using-colon-in-the-checking-msg.patch b/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch
deleted file mode 100644
index cdf7a38c18..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/0006-avoid-using-colon-in-the-checking-msg.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 5413f97290d3126262eb309ecbcf7769509f2a11 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Tue, 10 Nov 2015 00:48:35 -0500
-Subject: [PATCH 6/7] avoid using colon in the checking msg
-
-Upstream-Status: Pending
-
-colon is used as the separator when parse from
-a answers file, the colon here makes it never
-get the right answer.
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- wscript_configure_system_mitkrb5 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wscript_configure_system_mitkrb5 b/wscript_configure_system_mitkrb5
-index a62d00b..a2d89f0 100644
---- a/wscript_configure_system_mitkrb5
-+++ b/wscript_configure_system_mitkrb5
-@@ -240,7 +240,7 @@ conf.CHECK_CODE('''
- ''',
- 'HAVE_WRFILE_KEYTAB',
- headers='krb5.h', lib='krb5', execute=True,
-- msg="Checking whether the WRFILE:-keytab is supported");
-+ msg="Checking whether the WRFILE -keytab is supported");
- # Check for KRB5_DEPRECATED handling
- conf.CHECK_CODE('''#define KRB5_DEPRECATED 1
- #include <krb5.h>''',
---
-1.9.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..cc4c15e099
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0006-smbtorture-skip-test-case-tfork_cmd_send.patch
@@ -0,0 +1,38 @@
+From 950b5977ea7e72343067d0070cc35fb0dc5163d4 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..45a7c82d80
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/0007-Deleted-settiong-of-python-to-fix-the-install-confli.patch
@@ -0,0 +1,123 @@
+From f783bb9c87ce11e824dfefca473d0dcf6edad238 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
+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 f8a70a6..3c818de 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 1ce53f5..2cdfbf8 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 84ff771..b6fe041 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/16-do-not-check-xsltproc-manpages.patch b/meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch
deleted file mode 100644
index 8ca7a52ed8..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/16-do-not-check-xsltproc-manpages.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 2214c2d1e455a38c891d17e421b438e3f7c495d8 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
-
-Upstream-Status: Pending
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
----
- lib/ldb/wscript | 2 +-
- lib/talloc/wscript | 2 +-
- lib/tdb/wscript | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/lib/ldb/wscript b/lib/ldb/wscript
-index 5ea5231..d94086b 100644
---- a/lib/ldb/wscript
-+++ b/lib/ldb/wscript
-@@ -98,7 +98,7 @@ def configure(conf):
- conf.DEFINE('EXPECTED_SYSTEM_LDB_VERSION_RELEASE', int(v[2]))
-
- if conf.env.standalone_ldb:
-- conf.CHECK_XSLTPROC_MANPAGES()
-+ #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'):
-diff --git a/lib/talloc/wscript b/lib/talloc/wscript
-index df7e6be..b3305cf 100644
---- a/lib/talloc/wscript
-+++ b/lib/talloc/wscript
-@@ -49,7 +49,7 @@ def configure(conf):
- conf.env.PKGCONFIGDIR = '${LIBDIR}/pkgconfig'
- conf.env.TALLOC_VERSION = VERSION
-
-- conf.CHECK_XSLTPROC_MANPAGES()
-+ #conf.CHECK_XSLTPROC_MANPAGES()
-
- conf.CHECK_HEADERS('sys/auxv.h')
- conf.CHECK_FUNCS('getauxval')
-diff --git a/lib/tdb/wscript b/lib/tdb/wscript
-index 4782550..6bb3fa1 100644
---- a/lib/tdb/wscript
-+++ b/lib/tdb/wscript
-@@ -89,7 +89,7 @@ def configure(conf):
- not conf.env.disable_tdb_mutex_locking):
- conf.define('USE_TDB_MUTEX_LOCKING', 1)
-
-- conf.CHECK_XSLTPROC_MANPAGES()
-+ #conf.CHECK_XSLTPROC_MANPAGES()
-
- if not conf.env.disable_python:
- # also disable if we don't have the python libs installed
---
-2.14.3
-
diff --git a/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch b/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch
deleted file mode 100644
index e112b3b40b..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/20-do-not-import-target-module-while-cross-compile.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Some modules such as dynamic library maybe cann't be imported while cross compile,
-we just check whether does the module exist.
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
-Index: samba-4.4.2/buildtools/wafsamba/samba_bundled.py
-===================================================================
---- samba-4.4.2.orig/buildtools/wafsamba/samba_bundled.py
-+++ samba-4.4.2/buildtools/wafsamba/samba_bundled.py
-@@ -2,6 +2,7 @@
-
- import sys
- import Build, Options, Logs
-+import imp, os
- from Configure import conf
- from samba_utils import TO_LIST
-
-@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li
- # versions
- minversion = minimum_library_version(conf, libname, minversion)
-
-- try:
-- m = __import__(modulename)
-- except ImportError:
-- found = False
-- else:
-+ # Find module in PYTHONPATH
-+ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]])
-+ if stuff:
- try:
-- version = m.__version__
-- except AttributeError:
-+ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2])
-+ except ImportError:
- found = False
-+
-+ if conf.env.CROSS_COMPILE:
-+ # Some modules such as dynamic library maybe cann't be imported
-+ # while cross compile, we just check whether the module exist
-+ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1]))
-+ found = True
- else:
-- found = tuplize_version(version) >= tuplize_version(minversion)
-+ try:
-+ version = m.__version__
-+ except AttributeError:
-+ found = False
-+ else:
-+ found = tuplize_version(version) >= tuplize_version(minversion)
-+ finally:
-+ if stuff[0]:
-+ stuff[0].close()
-+ else:
-+ found = False
-+
- if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
- Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
- sys.exit(1)
diff --git a/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch b/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch
deleted file mode 100644
index 6a7f8facc5..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/21-add-config-option-without-valgrind.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 9a2d6315ff206b2a47100dfd85afe3af56576995 Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Thu, 10 Dec 2015 04:20:51 -0500
-Subject: [PATCH] Add config option without-valgrind
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-
----
- lib/replace/wscript | 4 +++-
- source3/wscript | 5 ++++-
- wscript | 4 ++++
- 3 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index f0040b1..aca73af 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -101,7 +101,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 valgrind/memcheck.h')
-+ if not Options.options.disable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.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/source3/wscript b/source3/wscript
-index bac3dd5..a5c51ea 100644
---- a/source3/wscript
-+++ b/source3/wscript
-@@ -1070,7 +1070,10 @@ syscall(SYS_setgroups32, 0, NULL);
- Logs.warn("--with-dnsupdate=yes but gssapi support not sufficient")
- else:
- conf.DEFINE('WITH_DNS_UPDATES', 1)
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+
-+ if not Options.options.disable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+
- if Options.options.developer:
- if conf.CONFIG_SET('HAVE_VALGRIND_H') or conf.CONFIG_SET('HAVE_VALGRIND_VALGRIND_H'):
- conf.DEFINE('VALGRIND', '1')
-diff --git a/wscript b/wscript
-index 542a60c..22e6116 100644
---- a/wscript
-+++ b/wscript
-@@ -86,6 +86,10 @@ def set_options(opt):
- help=("Disable RELRO builds"),
- action="store_false", dest='enable_relro')
-
-+ opt.add_option('--without-valgrind',
-+ help=("Disable use of the valgrind headers"),
-+ action="store_true", dest='disable_valgrind', default=False)
-+
- gr = opt.option_group('developer options')
-
- opt.tool_options('python') # options for disabling pyc or pyo compilation
---
-1.9.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
new file mode 100644
index 0000000000..e6e8784338
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/cmocka-uintptr_t.patch
@@ -0,0 +1,51 @@
+From 14f8ee7cd1318567b00e52217d57f0a528fd2cf7 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 e6861c8..238201d 100644
+--- a/third_party/cmocka/cmocka.h
++++ b/third_party/cmocka/cmocka.h
+@@ -111,7 +111,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;
+@@ -135,9 +135,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.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/dnsserver-4.7.0.patch b/meta-networking/recipes-connectivity/samba/samba/dnsserver-4.7.0.patch
deleted file mode 100644
index 0c7592f8e2..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/dnsserver-4.7.0.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-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>
-
---- 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',
diff --git a/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch b/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch
deleted file mode 100644
index 894bc8bb2c..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/glibc_only.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Index: samba-4.6.2/ctdb/tests/src/test_mutex_raw.c
-===================================================================
---- samba-4.6.2.orig/ctdb/tests/src/test_mutex_raw.c
-+++ samba-4.6.2/ctdb/tests/src/test_mutex_raw.c
-@@ -166,8 +166,10 @@ int main(int argc, const char **argv)
- if (ret == 0) {
- pthread_mutex_unlock(mutex);
- }
-+#ifdef __GLIBC__
- } else if (ret == EBUSY) {
- printf("pid=%u\n", mutex->__data.__owner);
-+#endif
- } else if (ret == 0) {
- pthread_mutex_unlock(mutex);
- }
diff --git a/meta-networking/recipes-connectivity/samba/samba/iconv-4.7.0.patch b/meta-networking/recipes-connectivity/samba/samba/iconv-4.7.0.patch
deleted file mode 100644
index 5ae8c59783..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/iconv-4.7.0.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-samba: defeat iconv test
-
-A test was added when configuring samba which requires target code
-to be executed. In general, this will not work, so we eliminate it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
---- a/lib/util/charset/wscript_configure
-+++ b/lib/util/charset/wscript_configure
-@@ -17,6 +17,8 @@ if (conf.CHECK_FUNCS_IN('iconv_open', 'i
-
- conf.DEFINE('HAVE_NATIVE_ICONV', 1)
-
-+"""
-+[added for 4.7.0, but breaks cross-compilation]
- conf.CHECK_CODE('''
- uint8_t inbuf[2] = { 0x30, 0xdf };
- uint8_t outbuf[4] = { 0 };
-@@ -36,3 +38,4 @@ conf.CHECK_CODE('''
- msg='Checking errno of iconv for illegal multibyte sequence',
- lib='iconv',
- headers='errno.h iconv.h')
-+"""
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 71db99c5d2..9a83574e66 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,15 +1,24 @@
-Musl does not have _r versions of getent() and getpwent() APIs
+From 08003ea30d86a8b983be89f6a161d3baacdaa038 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()
+ APIs
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
-Index: samba-4.4.5/source4/torture/local/nss_tests.c
-===================================================================
---- samba-4.4.5.orig/source4/torture/local/nss_tests.c
-+++ samba-4.4.5/source4/torture/local/nss_tests.c
-@@ -247,7 +247,6 @@ static bool test_getgrnam_r(struct tortu
+ 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 2943122..bc185ca 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,
return true;
}
@@ -17,7 +26,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
static bool test_getgrgid(struct torture_context *tctx,
gid_t gid,
struct group *grp_p)
-@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct tort
+@@ -333,6 +332,7 @@ static bool test_enum_passwd(struct torture_context *tctx,
return true;
}
@@ -25,7 +34,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
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 to
+@@ -383,6 +383,7 @@ static bool test_enum_r_passwd(struct torture_context *tctx,
return true;
}
@@ -33,7 +42,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
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
+@@ -434,7 +435,7 @@ static bool test_passwd_r(struct torture_context *tctx)
struct passwd *pwd, pwd1, pwd2;
size_t num_pwd;
@@ -42,7 +51,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
"failed to enumerate passwd");
for (i=0; i < num_pwd; i++) {
-@@ -460,7 +461,7 @@ static bool test_passwd_r_cross(struct t
+@@ -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;
@@ -51,7 +60,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
"failed to enumerate passwd");
for (i=0; i < num_pwd; i++) {
-@@ -531,6 +532,7 @@ static bool test_enum_group(struct tortu
+@@ -533,6 +534,7 @@ static bool test_enum_group(struct torture_context *tctx,
return true;
}
@@ -59,7 +68,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
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 tor
+@@ -583,6 +585,7 @@ static bool test_enum_r_group(struct torture_context *tctx,
return true;
}
@@ -67,7 +76,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
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_
+@@ -639,7 +642,7 @@ static bool test_group_r(struct torture_context *tctx)
struct group *grp, grp1, grp2;
size_t num_grp;
@@ -76,7 +85,7 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
"failed to enumerate group");
for (i=0; i < num_grp; i++) {
-@@ -663,7 +666,7 @@ static bool test_group_r_cross(struct to
+@@ -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;
@@ -85,3 +94,6 @@ Index: samba-4.4.5/source4/torture/local/nss_tests.c
"failed to enumerate group");
for (i=0; i < num_grp; i++) {
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch b/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
index 0cbacb6c0e..9bf1f9757c 100644
--- a/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
+++ b/meta-networking/recipes-connectivity/samba/samba/samba-pam.patch
@@ -1,14 +1,22 @@
-Lifted from gentoo and ported to 4.4.5
+From 6822c61ade5617c9f109e32ad4cdc115fa9e12c8 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
-Index: samba-4.7.0/source3/wscript
-===================================================================
---- samba-4.7.0.orig/source3/wscript
-+++ samba-4.7.0/source3/wscript
-@@ -875,7 +875,7 @@ msg.msg_accrightslen = sizeof(fd);
+ source3/wscript | 13 ++++++++++++-
+ 1 file changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/source3/wscript b/source3/wscript
+index 22be17a..ee9ce52 100644
+--- a/source3/wscript
++++ b/source3/wscript
+@@ -862,7 +862,7 @@ msg.msg_accrightslen = sizeof(fd);
if conf.env.with_iconv:
conf.DEFINE('HAVE_ICONV', 1)
@@ -17,7 +25,7 @@ Index: samba-4.7.0/source3/wscript
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'):
-@@ -952,6 +952,17 @@ int i; i = PAM_RADIO_TYPE;
+@@ -939,6 +939,17 @@ int i; i = PAM_RADIO_TYPE;
"or headers not found. Use --without-pam to disable "
"PAM support.");
@@ -35,3 +43,6 @@ Index: samba-4.7.0/source3/wscript
seteuid = False
#
+--
+2.25.1
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/smb.conf b/meta-networking/recipes-connectivity/samba/samba/smb.conf
new file mode 100644
index 0000000000..588491ee68
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba/smb.conf
@@ -0,0 +1,240 @@
+#
+# Sample configuration file for the Samba suite for Debian GNU/Linux.
+#
+#
+# This is the main Samba configuration file. You should read the
+# smb.conf(5) manual page in order to understand the options listed
+# here. Samba has a huge number of configurable options most of which
+# are not shown in this example
+#
+# Some options that are often worth tuning have been included as
+# commented-out examples in this file.
+# - When such options are commented with ";", the proposed setting
+# differs from the default Samba behaviour
+# - When commented with "#", the proposed setting is the default
+# behaviour of Samba but the option is considered important
+# enough to be mentioned here
+#
+# NOTE: Whenever you modify this file you should run the command
+# "testparm" to check that you have not made any basic syntactic
+# errors.
+
+#======================= Global Settings =======================
+
+[global]
+
+## Browsing/Identification ###
+
+# Prevent anonymous connections. Overriden if the user sets guest ok = yes
+# on any share
+ restrict anonymous = 1
+
+# Change this to the workgroup/NT-domain name your Samba server will part of
+ workgroup = WORKGROUP
+
+#### Networking ####
+
+# The specific set of interfaces / networks to bind to
+# This can be either the interface name or an IP address/netmask;
+# interface names are normally preferred
+; interfaces = 127.0.0.0/8 eth0
+
+# Only bind to the named interfaces and/or networks; you must use the
+# 'interfaces' option above to use this.
+# It is recommended that you enable this feature if your Samba machine is
+# not protected by a firewall or is a firewall itself. However, this
+# option cannot handle dynamic or non-broadcast interfaces correctly.
+; bind interfaces only = yes
+
+
+
+#### Debugging/Accounting ####
+
+# This tells Samba to use a separate log file for each machine
+# that connects
+ log file = /var/log/samba/log.%m
+
+# Cap the size of the individual log files (in KiB).
+ max log size = 1000
+
+# We want Samba to only log to /var/log/samba/log.{smbd,nmbd}.
+# Append syslog@1 if you want important messages to be sent to syslog too.
+ logging = file
+
+# Do something sensible when Samba crashes: mail the admin a backtrace
+ panic action = /usr/share/samba/panic-action %d
+
+
+####### Authentication #######
+
+# Server role. Defines in which mode Samba will operate. Possible
+# values are "standalone server", "member server", "classic primary
+# domain controller", "classic backup domain controller", "active
+# directory domain controller".
+#
+# Most people will want "standalone server" or "member server".
+# Running as "active directory domain controller" will require first
+# running "samba-tool domain provision" to wipe databases and create a
+# new domain.
+ server role = standalone server
+
+ obey pam restrictions = yes
+
+# This boolean parameter controls whether Samba attempts to sync the Unix
+# password with the SMB password when the encrypted SMB password in the
+# passdb is changed.
+ unix password sync = yes
+
+# For Unix password sync to work on a Debian GNU/Linux system, the following
+# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de> for
+# sending the correct chat script for the passwd program in Debian Sarge).
+ passwd program = /usr/bin/passwd %u
+ passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* .
+
+# This boolean controls whether PAM will be used for password changes
+# when requested by an SMB client instead of the program listed in
+# 'passwd program'. The default is 'no'.
+ pam password change = yes
+
+# This option controls how unsuccessful authentication attempts are mapped
+# to anonymous connections
+ map to guest = never
+
+########## Domains ###########
+
+#
+# The following settings only takes effect if 'server role = classic
+# primary domain controller', 'server role = classic backup domain controller'
+# or 'domain logons' is set
+#
+
+# It specifies the location of the user's
+# profile directory from the client point of view) The following
+# required a [profiles] share to be setup on the samba server (see
+# below)
+; logon path = \\%N\profiles\%U
+# Another common choice is storing the profile in the user's home directory
+# (this is Samba's default)
+# logon path = \\%N\%U\profile
+
+# The following setting only takes effect if 'domain logons' is set
+# It specifies the location of a user's home directory (from the client
+# point of view)
+; logon drive = H:
+# logon home = \\%N\%U
+
+# The following setting only takes effect if 'domain logons' is set
+# It specifies the script to run during logon. The script must be stored
+# in the [netlogon] share
+# NOTE: Must be store in 'DOS' file format convention
+; logon script = logon.cmd
+
+# This allows Unix users to be created on the domain controller via the SAMR
+# RPC pipe. The example command creates a user account with a disabled Unix
+# password; please adapt to your needs
+; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u
+
+# This allows machine accounts to be created on the domain controller via the
+# SAMR RPC pipe.
+# The following assumes a "machines" group exists on the system
+; add machine script = /usr/sbin/useradd -g machines -c "%u machine account" -d /var/lib/samba -s /bin/false %u
+
+# This allows Unix groups to be created on the domain controller via the SAMR
+# RPC pipe.
+; add group script = /usr/sbin/addgroup --force-badname %g
+
+############ Misc ############
+
+# Using the following line enables you to customise your configuration
+# on a per machine basis. The %m gets replaced with the netbios name
+# of the machine that is connecting
+; include = /home/samba/etc/smb.conf.%m
+
+# Some defaults for winbind (make sure you're not using the ranges
+# for something else.)
+; idmap config * : backend = tdb
+; idmap config * : range = 3000-7999
+; idmap config YOURDOMAINHERE : backend = tdb
+; idmap config YOURDOMAINHERE : range = 100000-999999
+; template shell = /bin/bash
+
+# Setup usershare options to enable non-root users to share folders
+# with the net usershare command.
+
+# Maximum number of usershare. 0 means that usershare is disabled.
+# usershare max shares = 100
+
+# Allow users who've been granted usershare privileges to create
+# public shares, not just authenticated ones
+ usershare allow guests = yes
+
+#======================= Share Definitions =======================
+
+[homes]
+ comment = Home Directories
+ browseable = no
+
+# By default, the home directories are exported read-only. Change the
+# next parameter to 'no' if you want to be able to write to them.
+ read only = yes
+
+# File creation mask is set to 0700 for security reasons. If you want to
+# create files with group=rw permissions, set next parameter to 0775.
+ create mask = 0700
+
+# Directory creation mask is set to 0700 for security reasons. If you want to
+# create dirs. with group=rw permissions, set next parameter to 0775.
+ directory mask = 0700
+
+# By default, \\server\username shares can be connected to by anyone
+# with access to the samba server.
+# The following parameter makes sure that only "username" can connect
+# to \\server\username
+# This might need tweaking when using external authentication schemes
+ valid users = %S
+
+# Un-comment the following and create the netlogon directory for Domain Logons
+# (you need to configure Samba to act as a domain controller too.)
+;[netlogon]
+; comment = Network Logon Service
+; path = /home/samba/netlogon
+; guest ok = yes
+; read only = yes
+
+# Un-comment the following and create the profiles directory to store
+# users profiles (see the "logon path" option above)
+# (you need to configure Samba to act as a domain controller too.)
+# The path below should be writable by all users so that their
+# profile directory may be created the first time they log on
+;[profiles]
+; comment = Users profiles
+; path = /home/samba/profiles
+; guest ok = no
+; browseable = no
+; create mask = 0600
+; directory mask = 0700
+
+[printers]
+ comment = All Printers
+ browseable = no
+ path = /var/spool/samba
+ printable = yes
+ guest ok = no
+ read only = yes
+ create mask = 0700
+
+# Windows clients look for this share name as a source of downloadable
+# printer drivers
+[print$]
+ comment = Printer Drivers
+ path = /var/lib/samba/printers
+ browseable = yes
+ read only = yes
+ guest ok = no
+# Uncomment to allow remote administration of Windows print drivers.
+# You may need to replace 'lpadmin' with the name of the group your
+# admin users are members of.
+# Please note that you also need to set appropriate Unix permissions
+# to the drivers directory for these users to have write rights in it
+; write list = root, @lpadmin
+
diff --git a/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch b/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch
deleted file mode 100644
index 77c8b3626b..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba/smb_conf-4.7.0.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-samba: correct log files location
-
-We use /var/log/samba.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
---- a/packaging/RHEL/setup/smb.conf
-+++ b/packaging/RHEL/setup/smb.conf
-@@ -63,7 +63,7 @@
-
- # this tells Samba to use a separate log file for each machine
- # that connects
-- log file = /usr/local/samba/var/log.%m
-+ log file = /var/log/samba/log.%m
-
- # Put a capping on the size of the log files (in Kb).
- max log size = 50
diff --git a/meta-networking/recipes-connectivity/samba/samba_4.18.5.bb b/meta-networking/recipes-connectivity/samba/samba_4.18.5.bb
new file mode 100644
index 0000000000..9d8802ff54
--- /dev/null
+++ b/meta-networking/recipes-connectivity/samba/samba_4.18.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 \
+ file://cmocka-uintptr_t.patch \
+ "
+
+SRC_URI[sha256sum] = "095256ac332e1d9fbf9b7ff7823f92a3233d3ed658ce7fc9b33905c2243f447f"
+
+UPSTREAM_CHECK_REGEX = "samba\-(?P<pver>4\.18(\.\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 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 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 ad-dc 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] = ",--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,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}/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/samba/samba_4.7.6.bb b/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb
deleted file mode 100644
index ba2b7f2c6b..0000000000
--- a/meta-networking/recipes-connectivity/samba/samba_4.7.6.bb
+++ /dev/null
@@ -1,314 +0,0 @@
-HOMEPAGE = "https://www.samba.org/"
-SECTION = "console/network"
-
-LICENSE = "GPL-3.0+ & LGPL-3.0+ & GPL-2.0+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \
- file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 "
-
-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://16-do-not-check-xsltproc-manpages.patch \
- file://20-do-not-import-target-module-while-cross-compile.patch \
- file://21-add-config-option-without-valgrind.patch \
- file://0001-packaging-Avoid-timeout-for-nmbd-if-started-offline-.patch \
- file://0006-avoid-using-colon-in-the-checking-msg.patch \
- file://netdb_defines.patch \
- file://glibc_only.patch \
- file://iconv-4.7.0.patch \
- file://dnsserver-4.7.0.patch \
- file://smb_conf-4.7.0.patch \
- file://volatiles.03_samba \
- "
-SRC_URI_append_libc-musl = " \
- file://samba-pam.patch \
- file://samba-4.3.9-remove-getpwent_r.patch \
- "
-
-SRC_URI[md5sum] = "0253021a45c479cec1e135b004a0177a"
-SRC_URI[sha256sum] = "1eede30fc8ef6504e24602fb72b00baa0a7b73b59f16d25cb0771dc8c7c57d6e"
-
-inherit systemd waf-samba cpan-base perlnative update-rc.d
-# remove default added RDEPENDS on perl
-RDEPENDS_${PN}_remove = "perl"
-
-DEPENDS += "readline virtual/libiconv zlib popt libtalloc libtdb libtevent libldb libbsd libaio libpam"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-DEPENDS_append_libc-musl = " libtirpc"
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/tirpc"
-LDFLAGS_append_libc-musl = " -ltirpc"
-
-LSB = ""
-LSB_linuxstdbase = "lsb"
-
-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"
-
-# Use krb5. Build active domain controller.
-#
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd zeroconf', d)} \
- acl ad-dc cups gnutls ldap mitkrb5 \
-"
-
-RDEPENDS_${PN}-base += "${LSB}"
-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"
-
-# Building the AD (Active Directory) DC (Domain Controller) requires GnuTLS,
-# And ad-dc doesn't work with mitkrb5 for versions prior to 4.7.0 according to:
-# http://samba.2283325.n4.nabble.com/samba-4-6-6-Unknown-dependency-kdc-in-service-kdc-objlist-td4722096.html
-# So the working combination is:
-# 1) ad-dc: enable, gnutls: enable, mitkrb5: disable
-# 2) ad-dc: disable, gnutls: enable/disable, mitkrb5: enable
-#
-# We are now at 4.7.0, so take the above with a grain of salt. We do not need to know where
-# krb5kdc is unless ad-dc is enabled, but we tell configure anyhow.
-#
-PACKAGECONFIG[ad-dc] = ",--without-ad-dc,,"
-PACKAGECONFIG[gnutls] = "--enable-gnutls,--disable-gnutls,gnutls,"
-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-lockdir=${localstatedir}/lib/samba \
- --with-cachedir=${localstatedir}/lib/samba \
- --disable-rpath-install \
- --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_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 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 packaging/RHEL/setup/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
-
- # install ctdb config file and test cases
- install -D -m 0644 ${S}/ctdb/tests/onnode/nodes ${D}${sysconfdir}/ctdb/nodes
- # the items are from ctdb/tests/run_tests.sh
- for d in onnode takeover tool eventscripts cunit simple complex; do
- testdir=${D}${datadir}/ctdb-tests/$d
- install -d $testdir
- cp ${S}/ctdb/tests/$d/*.sh $testdir
- cp -r ${S}/ctdb/tests/$d/scripts ${S}/ctdb/tests/$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
- rm -rf ${D}/run ${D}${localstatedir}/run ${D}${localstatedir}/log
-}
-
-PACKAGES =+ "${PN}-python ${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', True)
- d.appendVar('RRECOMMENDS_%s-base' % pn, ' %s' % pkg)
-
- mlprefix = d.getVar('MLPREFIX', True) or ''
- pam_libdir = d.expand('${base_libdir}/security')
- pam_pkgname = mlprefix + 'pam-plugin%s'
- do_split_packages(d, pam_libdir, '^pam_(.*)\.so$', pam_pkgname, 'PAM plugin for %s', extra_depends='', prepend=True)
-
- libdir = d.getVar('libdir', True)
- do_split_packages(d, libdir, '^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, '^lib(.*)\.so$', 'lib%s', 'Samba %s library', extra_depends='${PN}-common', prepend=True)
- moduledir = '%s/samba/auth' % libdir
- do_split_packages(d, moduledir, '^(.*)\.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, '^(.*)\.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}-python ${PN}-dsdb-modules"
-RDEPENDS_${PN}-python += "pytalloc python-tdb"
-
-FILES_${PN}-base = "${sbindir}/nmbd \
- ${sbindir}/smbd \
- ${sysconfdir}/init.d \
- ${localstatedir}/lib/samba \
- ${localstatedir}/nmbd \
- ${localstatedir}/spool/samba \
- ${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 \
- "
-
-FILES_${BPN}-common = "${sysconfdir}/default \
- ${sysconfdir}/samba \
- ${sysconfdir}/tmpfiles.d \
-"
-
-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 \
- ${sysconfdir}/init.d/winbind \
- ${systemd_system_unitdir}/winbind.service"
-
-FILES_${PN}-python = "${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"
-FILES_${PN}-pidl = "${bindir}/pidl ${datadir}/perl5/Parse"
-
-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"
diff --git a/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb b/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb
deleted file mode 100644
index fc304fae72..0000000000
--- a/meta-networking/recipes-connectivity/sethdlc/sethdlc.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-DESCRIPTION = "set Linux HDLC packet radio modem driver port information"
-HOMEPAGE = "https://www.kernel.org/pub/linux/utils/net/hdlc"
-SECTION = "comm"
-LICENSE = "GPLv2 & GPLv2+ "
-LIC_FILES_CHKSUM = "file://sethdlc.c;endline=10;md5=90f936879e9f8b755a138aeb348782eb"
-
-
-SRC_URI = "https://www.kernel.org/pub/linux/utils/net/hdlc/${BPN}-1.18.tar.gz \
- file://sethdlc-fix-host-contamination.patch \
-"
-SRC_URI[md5sum] = "9016878156a5eadb06c0bae71cc5c9ab"
-SRC_URI[sha256sum] = "21b1e2e1cb0e288b0ec8fcfd9fed449914e0f8e6fc273706bd5b3d4f6ab6b04e"
-
-
-S = "${WORKDIR}/${BPN}-1.18"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-DEPENDS = "virtual/kernel"
-
-EXTRA_OEMAKE="CROSS_COMPILE=${TARGET_PREFIX} CC='${CC} ${LDFLAGS}' \
- KERNEL_DIR=${STAGING_KERNEL_DIR} "
-
-do_compile_prepend () {
- oe_runmake clean
-}
-
-
-do_install() {
- install -d ${D}/${bindir}
- install sethdlc ${D}/${bindir}/
-}
-
-FILES_${PN} += "${bindir}/sethdlc"
diff --git a/meta-networking/recipes-connectivity/sethdlc/sethdlc_1.18.bb b/meta-networking/recipes-connectivity/sethdlc/sethdlc_1.18.bb
new file mode 100644
index 0000000000..4e3c157713
--- /dev/null
+++ b/meta-networking/recipes-connectivity/sethdlc/sethdlc_1.18.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "set Linux HDLC packet radio modem driver port information"
+HOMEPAGE = "https://www.kernel.org/pub/linux/utils/net/hdlc"
+SECTION = "comm"
+LICENSE = "GPL-2.0-only & GPL-2.0-or-later "
+LIC_FILES_CHKSUM = "file://sethdlc.c;endline=10;md5=90f936879e9f8b755a138aeb348782eb"
+
+
+SRC_URI = "https://www.kernel.org/pub/linux/utils/net/hdlc/${BP}.tar.gz \
+ file://sethdlc-fix-host-contamination.patch \
+"
+SRC_URI[md5sum] = "9016878156a5eadb06c0bae71cc5c9ab"
+SRC_URI[sha256sum] = "21b1e2e1cb0e288b0ec8fcfd9fed449914e0f8e6fc273706bd5b3d4f6ab6b04e"
+
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+DEPENDS = "virtual/kernel"
+
+EXTRA_OEMAKE="CROSS_COMPILE=${TARGET_PREFIX} CC='${CC} ${LDFLAGS}' \
+ KERNEL_DIR=${STAGING_KERNEL_DIR} "
+
+do_compile:prepend () {
+ oe_runmake clean
+}
+
+
+do_install() {
+ install -d ${D}/${bindir}
+ install sethdlc ${D}/${bindir}/
+}
+
+FILES:${PN} += "${bindir}/sethdlc"
diff --git a/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch b/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch
deleted file mode 100644
index 047caec324..0000000000
--- a/meta-networking/recipes-connectivity/snort/snort/0001-fix-do_package-failed-since-snort-2.9.7.0.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 4335c4c61877c0b65ff4ec767e8ad3ad8c73c32d Mon Sep 17 00:00:00 2001
-From: Zhiquan Li <zhiquan.li@windriver.com>
-Date: Fri, 13 Nov 2015 17:40:24 +0800
-Subject: [PATCH] fix do_package failed since snort 2.9.7.0
-
-Remove redundant '/' as a workround for below error:
-/lib/rpm/bin/debugedit: canonicalization unexpectedly shrank by one character
-
-It's a rpm debugedit bug:
-* http://sourceforge.net/p/snort/mailman/message/34130268/
-* https://bugzilla.redhat.com/show_bug.cgi?id=304121
-
-Upstream-Status:Inappropriate [embedded specific]
-
-Signed-off-by: Zhiquan Li <zhiquan.li@windriver.com>
-
----
- src/snort.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/snort.h b/src/snort.h
-index 8308e57..499d157 100644
---- a/src/snort.h
-+++ b/src/snort.h
-@@ -39,7 +39,7 @@
- #include "sfdaq.h"
- #include "sf_types.h"
- #include "sfutil/sflsq.h"
--#include "sfutil//sfActionQueue.h"
-+#include "sfutil/sfActionQueue.h"
- #include "profiler.h"
- #include "rules.h"
- #include "treenodes.h"
diff --git a/meta-networking/recipes-connectivity/snort/snort/configure.in-disable-tirpc-checking-for-fedora.patch b/meta-networking/recipes-connectivity/snort/snort/configure.in-disable-tirpc-checking-for-fedora.patch
new file mode 100644
index 0000000000..d8c945a481
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort/configure.in-disable-tirpc-checking-for-fedora.patch
@@ -0,0 +1,60 @@
+From 65463a7c5cb2514b1523a81911810effffb75a79 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Fri, 28 Jun 2019 15:05:31 +0800
+Subject: [PATCH] configure.in: disable tirpc checking for fedora
+
+The Fedora 28+ does not have inbuilt SunRPC support in glibc and is
+separately availble in tirpc package. So it enables tirpc checking for
+fedora in configure.
+
+Drop this piece of code since we had specify '-ltirpc' in LDFLAGS
+explicitly. Otherwise it will cause a compile-host-path QA issue if the
+host is Fedora 28+:
+cc1: warning: include location "/usr/include/tirpc" is unsafe for
+cross-compilation [-Wpoison-system-directories]
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ configure.in | 24 ------------------------
+ 1 file changed, 24 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 8662cdd..0ff7e27 100644
+--- a/configure.in
++++ b/configure.in
+@@ -895,30 +895,6 @@ if test "x$enable_dlclose" = "xno"; then
+ AC_DEFINE([DISABLE_DLCLOSE_FOR_VALGRIND_TESTING],[1],[Don't close opened shared objects for valgrind leak testing of dynamic libraries])
+ fi
+
+-##################################################
+-# Fedora 28+ does not have inbuilt SunRPC support#
+-# in glibc and is separately availble in tirpc #
+-# package. Make sure we've got the library and #
+-# link it #
+-##################################################
+-
+-if test -f /etc/fedora-release ; then
+- DISTRO_VERSION=$(awk '{ print $3 }' /etc/fedora-release)
+- if test $DISTRO_VERSION -ge 28 ; then
+- TIRPC=""
+- AC_CHECK_LIB(tirpc,bindresvport,, TIRPC="no")
+- echo "$TIRPC"
+- if test "x$TIRPC" = "xno"; then
+- echo
+- echo " ERROR! tirpc not found, get it by running "
+- echo " yum install libtirpc-devel "
+- exit
+- fi
+- LIBS="${LIBS} -ltirpc"
+- extra_incl="-I/usr/include/tirpc"
+- fi
+-fi
+-
+ ##################################################
+ # Centos 8+ does not have inbuilt SunRPC support #
+ # in glibc and is separately availble in tirpc #
+--
+2.7.4
+
diff --git a/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch b/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch
deleted file mode 100644
index 6aa0b736f9..0000000000
--- a/meta-networking/recipes-connectivity/snort/snort/disable-dap-address-space-id.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5a53260a819e2873f58165e96852529719101c53 Mon Sep 17 00:00:00 2001
-From: Chunrong Guo <B40290@freescale.com>
-Date: Mon, 4 Nov 2013 10:39:56 +0800
-Subject: [PATCH] snort: add recipe
-
-Upstream-Status:Inappropriate [embedded specific]
-
-fix the below error:
-checking for dap address space id... configure:
-configure: error: cannot run test program while cross compiling
-
-Signed-off-by: Chunrong Guo <B40290@freescale.com>
-
----
- configure.in | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 6fe5d68..e7636ce 100644
---- a/configure.in
-+++ b/configure.in
-@@ -698,23 +698,23 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then
-
- fi
-
--AC_MSG_CHECKING([for daq address space ID])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <daq.h>
--]],
--[[
-- DAQ_PktHdr_t hdr;
-- hdr.address_space_id = 0;
--]])],
--[have_daq_address_space_id="yes"],
--[have_daq_address_space_id="no"])
--AC_MSG_RESULT($have_daq_address_space_id)
--if test "x$have_daq_address_space_id" = "xyes"; then
-- AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
-- [DAQ version supports address space ID in header.])
--fi
-+#AC_MSG_CHECKING([for daq address space ID])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <daq.h>
-+#]],
-+#[[
-+# DAQ_PktHdr_t hdr;
-+# hdr.address_space_id = 0;
-+#]])],
-+have_daq_address_space_id="yes"
-+#[have_daq_address_space_id="no"])
-+#AC_MSG_RESULT($have_daq_address_space_id)
-+#if test "x$have_daq_address_space_id" = "xyes"; then
-+# AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
-+# [DAQ version supports address space ID in header.])
-+#fi
-
- AC_MSG_CHECKING([for daq flow ID])
- AC_RUN_IFELSE(
diff --git a/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch b/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch
deleted file mode 100644
index 04df37c94f..0000000000
--- a/meta-networking/recipes-connectivity/snort/snort/disable-daq-flow-id.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 5aa42a3137c657b5eddd4608343aa1854bd7cd27 Mon Sep 17 00:00:00 2001
-From: Zhiquan Li <zhiquan.li@windriver.com>
-Date: Mon, 16 Nov 2015 10:23:00 +0800
-Subject: [PATCH] snort: 2.9.6.0 -> 2.9.7.5
-
-Upstream-Status:Inappropriate [embedded specific]
-
-fix the below error:
-checking for daq flow ID... configure:
-configure: error: cannot run test program while cross compiling
-
----
- configure.in | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index e7636ce..2fbd298 100644
---- a/configure.in
-+++ b/configure.in
-@@ -716,23 +716,23 @@ have_daq_address_space_id="yes"
- # [DAQ version supports address space ID in header.])
- #fi
-
--AC_MSG_CHECKING([for daq flow ID])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <daq.h>
--]],
--[[
-- DAQ_PktHdr_t hdr;
-- hdr.flow_id = 0;
--]])],
--[have_daq_flow_id="yes"],
--[have_daq_flow_id="no"])
--AC_MSG_RESULT($have_daq_flow_id)
--if test "x$have_daq_flow_id" = "xyes"; then
-- AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
-- [DAQ version supports flow ID in header.])
--fi
-+#AC_MSG_CHECKING([for daq flow ID])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <daq.h>
-+#]],
-+#[[
-+# DAQ_PktHdr_t hdr;
-+# hdr.flow_id = 0;
-+#]])],
-+have_daq_flow_id="yes"
-+#[have_daq_flow_id="no"])
-+#AC_MSG_RESULT($have_daq_flow_id)
-+#if test "x$have_daq_flow_id" = "xyes"; then
-+# AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
-+# [DAQ version supports flow ID in header.])
-+#fi
-
- AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
- AC_RUN_IFELSE(
diff --git a/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch b/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch
deleted file mode 100644
index 15958a72d0..0000000000
--- a/meta-networking/recipes-connectivity/snort/snort/disable-daq-verdict-retry.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b916443d43f2e1eeacfbed0033274a0270ef634d Mon Sep 17 00:00:00 2001
-From: Zhiquan Li <zhiquan.li@windriver.com>
-Date: Mon, 16 Nov 2015 10:23:00 +0800
-Subject: [PATCH] snort: 2.9.6.0 -> 2.9.7.5
-
-Upstream-Status:Inappropriate [embedded specific]
-
-fix the below error:
-checking for DAQ_VERDICT_RETRY... configure:
-configure: error: cannot run test program while cross compiling
-
----
- configure.in | 34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 2fbd298..62573a8 100644
---- a/configure.in
-+++ b/configure.in
-@@ -734,23 +734,23 @@ have_daq_flow_id="yes"
- # [DAQ version supports flow ID in header.])
- #fi
-
--AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <daq.h>
--]],
--[[
-- DAQ_Verdict verdict;
-- verdict = DAQ_VERDICT_RETRY;
--]])],
--[have_daq_verdict_retry="yes"],
--[have_daq_verdict_retry="no"])
--AC_MSG_RESULT($have_daq_verdict_retry)
--if test "x$have_daq_verdict_retry" = "xyes"; then
-- AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1],
-- [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.])
--fi
-+#AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <daq.h>
-+#]],
-+#[[
-+# DAQ_Verdict verdict;
-+# verdict = DAQ_VERDICT_RETRY;
-+#]])],
-+have_daq_verdict_retry="yes"
-+#[have_daq_verdict_retry="no"])
-+#AC_MSG_RESULT($have_daq_verdict_retry)
-+#if test "x$have_daq_verdict_retry" = "xyes"; then
-+# AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1],
-+# [DAQ version supports DAQ_VERDICT_RETRY in DAQ_Verdict.])
-+#fi
-
- # any sparc platform has to have this one defined.
- AC_MSG_CHECKING(for sparc)
diff --git a/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch b/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch
deleted file mode 100644
index 79e9f076b1..0000000000
--- a/meta-networking/recipes-connectivity/snort/snort/disable-inaddr-none.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From a1fdbced4166cb0f35d23b63a59312d86860485a Mon Sep 17 00:00:00 2001
-From: Chunrong Guo <B40290@freescale.com>
-Date: Mon, 4 Nov 2013 10:39:56 +0800
-Subject: [PATCH] snort: add recipe
-
-Upstream-Status: Inappropriate [embedded specific]
-
-fix the below error:
-checking for INADDR_NONE... configure:
-configure: error: cannot run test program while cross compiling
-
-Signed-off-by: Chunrong Guo <B40290@freescale.com>
-
----
- configure.in | 50 ++++++++++++++++----------------------------------
- 1 file changed, 16 insertions(+), 34 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 20d15eb..6fe5d68 100644
---- a/configure.in
-+++ b/configure.in
-@@ -274,25 +274,7 @@ AC_CHECK_TYPES([int8_t,int16_t,int32_t,int64_t])
- AC_CHECK_TYPES([boolean])
-
- # In case INADDR_NONE is not defined (like on Solaris)
--have_inaddr_none="no"
--AC_MSG_CHECKING([for INADDR_NONE])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <sys/types.h>
--#include <netinet/in.h>
--#include <arpa/inet.h>
--]],
--[[
-- if (inet_addr("10,5,2") == INADDR_NONE);
-- return 0;
--]])],
--[have_inaddr_none="yes"],
--[have_inaddr_none="no"])
--AC_MSG_RESULT($have_inaddr_none)
--if test "x$have_inaddr_none" = "xno"; then
-- AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition])
--fi
-+have_inaddr_none="yes"
-
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <stdio.h>
-@@ -421,21 +403,21 @@ if test "x$LPCAP" = "xno"; then
- fi
- fi
-
--AC_MSG_CHECKING([for pcap_lex_destroy])
--AC_RUN_IFELSE(
--[AC_LANG_PROGRAM(
--[[
--#include <pcap.h>
--]],
--[[
-- pcap_lex_destroy();
--]])],
--[have_pcap_lex_destroy="yes"],
--[have_pcap_lex_destroy="no"])
--AC_MSG_RESULT($have_pcap_lex_destroy)
--if test "x$have_pcap_lex_destroy" = "xyes"; then
-- AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
--fi
-+#AC_MSG_CHECKING([for pcap_lex_destroy])
-+#AC_RUN_IFELSE(
-+#[AC_LANG_PROGRAM(
-+#[[
-+##include <pcap.h>
-+#]],
-+#[[
-+# pcap_lex_destroy();
-+#]])],
-+have_pcap_lex_destroy="yes"
-+#[have_pcap_lex_destroy="no"])
-+#AC_MSG_RESULT($have_pcap_lex_destroy)
-+#if test "x$have_pcap_lex_destroy" = "xyes"; then
-+# AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
-+#fi
-
- AC_MSG_CHECKING([for pcap_lib_version])
- AC_LINK_IFELSE(
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
new file mode 100644
index 0000000000..98c20b6ecf
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort/disable-run-test-program-while-cross-compiling.patch
@@ -0,0 +1,254 @@
+From dc390837bc7adc205bb955d0922040a7e365d8dd Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Mon, 23 Jul 2018 13:54:07 +0800
+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]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ configure.in | 148 +++++------------------------------------------------------
+ 1 file changed, 12 insertions(+), 136 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 4b3a5db..a6c5498 100644
+--- a/configure.in
++++ b/configure.in
+@@ -284,19 +284,7 @@ AC_CHECK_TYPES([boolean])
+ # In case INADDR_NONE is not defined (like on Solaris)
+ have_inaddr_none="no"
+ AC_MSG_CHECKING([for INADDR_NONE])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <sys/types.h>
+-#include <netinet/in.h>
+-#include <arpa/inet.h>
+-]],
+-[[
+- if (inet_addr("10,5,2") == INADDR_NONE);
+- return 0;
+-]])],
+-[have_inaddr_none="yes"],
+-[have_inaddr_none="no"])
++have_inaddr_none="yes"
+ AC_MSG_RESULT($have_inaddr_none)
+ if test "x$have_inaddr_none" = "xno"; then
+ AC_DEFINE([INADDR_NONE],[-1],[For INADDR_NONE definition])
+@@ -429,16 +417,7 @@ if test "x$LPCAP" = "xno"; then
+ fi
+
+ AC_MSG_CHECKING([for pcap_lex_destroy])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <pcap.h>
+-]],
+-[[
+- pcap_lex_destroy();
+-]])],
+-[have_pcap_lex_destroy="yes"],
+-[have_pcap_lex_destroy="no"])
++have_pcap_lex_destroy="yes"
+ AC_MSG_RESULT($have_pcap_lex_destroy)
+ if test "x$have_pcap_lex_destroy" = "xyes"; then
+ AC_DEFINE([HAVE_PCAP_LEX_DESTROY],[1],[Can cleanup lex buffer stack created by pcap bpf filter])
+@@ -716,17 +695,7 @@ fi
+ AC_CHECK_FUNCS([daq_hup_apply] [daq_acquire_with_meta] [daq_dp_add_dc])
+
+ AC_MSG_CHECKING([for daq real addresses])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.n_real_dPort = 0;
+-]])],
+-[have_daq_real_addresses="yes"],
+-[have_daq_real_addresses="no"])
++have_daq_real_addresses="no"
+ AC_MSG_RESULT($have_daq_real_addresses)
+ if test "x$have_daq_real_addresses" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_REAL_ADDRESSES],[1],
+@@ -754,17 +723,7 @@ if test "x$ac_cv_func_daq_dp_add_dc" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq address space ID])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.address_space_id = 0;
+-]])],
+-[have_daq_address_space_id="yes"],
+-[have_daq_address_space_id="no"])
++have_daq_address_space_id="yes"
+ AC_MSG_RESULT($have_daq_address_space_id)
+ if test "x$have_daq_address_space_id" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_ADDRESS_SPACE_ID],[1],
+@@ -772,17 +731,7 @@ if test "x$have_daq_address_space_id" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq flow ID])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.flow_id = 0;
+-]])],
+-[have_daq_flow_id="yes"],
+-[have_daq_flow_id="no"])
++have_daq_flow_id="yes"
+ AC_MSG_RESULT($have_daq_flow_id)
+ if test "x$have_daq_flow_id" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_FLOW_ID],[1],
+@@ -790,19 +739,7 @@ if test "x$have_daq_flow_id" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq extended flow modifiers])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_ModFlow_t mod;
+- mod.type = 0;
+- mod.length = 0;
+- mod.value = NULL;
+-]])],
+-[have_daq_ext_modflow="yes"],
+-[have_daq_ext_modflow="no"])
++have_daq_ext_modflow="no"
+ AC_MSG_RESULT($have_daq_ext_modflow)
+ if test "x$have_daq_ext_modflow" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_EXT_MODFLOW"
+@@ -811,19 +748,7 @@ if test "x$have_daq_ext_modflow" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq query flow])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_QueryFlow_t mod;
+- mod.type = 0;
+- mod.length = 0;
+- mod.value = NULL;
+-]])],
+-[have_daq_queryflow="yes"],
+-[have_daq_queryflow="no"])
++have_daq_queryflow="no"
+ AC_MSG_RESULT($have_daq_queryflow)
+ if test "x$have_daq_queryflow" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_QUERYFLOW"
+@@ -832,16 +757,7 @@ if test "x$have_daq_queryflow" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq data channel flags])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_Data_Channel_Params_t params;
+-]])],
+-[have_daq_data_channel_flags="yes"],
+-[have_daq_data_channel_flags="no"])
++have_daq_data_channel_flags="no"
+ AC_MSG_RESULT($have_daq_data_channel_flags)
+ if test "x$have_daq_data_channel_flags" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_PARAMS"
+@@ -850,17 +766,7 @@ if test "x$have_daq_data_channel_flags" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for separate IP versions on pinhole endpoints])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_DP_key_t dpKey;
+- dpKey.src_af = 0;
+-]])],
+-[have_daq_data_channel_separate_ip_versions="yes"],
+-[have_daq_data_channel_separate_ip_versions="no"])
++have_daq_data_channel_separate_ip_versions="no"
+ AC_MSG_RESULT($have_daq_data_channel_separate_ip_versions)
+ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
+ CCONFIGFLAGS="${CCONFIGFLAGS} -DHAVE_DAQ_DATA_CHANNEL_SEPARATE_IP_VERSIONS"
+@@ -869,17 +775,7 @@ if test "x$have_daq_data_channel_separate_ip_versions" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for DAQ_VERDICT_RETRY])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_Verdict verdict;
+- verdict = DAQ_VERDICT_RETRY;
+-]])],
+-[have_daq_verdict_retry="yes"],
+-[have_daq_verdict_retry="no"])
++have_daq_verdict_retry="yes"
+ AC_MSG_RESULT($have_daq_verdict_retry)
+ if test "x$have_daq_verdict_retry" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_VERDICT_RETRY],[1],
+@@ -887,17 +783,7 @@ if test "x$have_daq_verdict_retry" = "xyes"; then
+ fi
+
+ AC_MSG_CHECKING([for daq packet trace])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_PktHdr_t hdr;
+- hdr.flags = DAQ_PKT_FLAG_TRACE_ENABLED;
+-]])],
+-[have_daq_packet_trace="yes"],
+-[have_daq_packet_trace="no"])
++have_daq_packet_trace="no"
+ AC_MSG_RESULT($have_daq_packet_trace)
+ if test "x$have_daq_packet_trace" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_PKT_TRACE],[1],
+@@ -907,17 +793,7 @@ else
+ fi
+
+ AC_MSG_CHECKING([for daq verdict reason])
+-AC_RUN_IFELSE(
+-[AC_LANG_PROGRAM(
+-[[
+-#include <daq.h>
+-]],
+-[[
+- DAQ_ModFlow_t fl;
+- fl.type = DAQ_MODFLOW_TYPE_VER_REASON;
+-]])],
+-[have_daq_verdict_reason="yes"],
+-[have_daq_verdict_reason="no"])
++have_daq_verdict_reason="no"
+ AC_MSG_RESULT($have_daq_verdict_reason)
+ if test "x$have_daq_verdict_reason" = "xyes"; then
+ AC_DEFINE([HAVE_DAQ_VERDICT_REASON],[1],
+--
+2.7.4
+
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.init b/meta-networking/recipes-connectivity/snort/snort/snort.init
index d8a00c43fc..0d90c9af03 100644
--- a/meta-networking/recipes-connectivity/snort/snort/snort.init
+++ b/meta-networking/recipes-connectivity/snort/snort/snort.init
@@ -1,6 +1,6 @@
#!/bin/sh
#
-# Snort Startup Script modified for OpenEmbedded
+# Snort Startup Script modified for OpenEmbedded
#
# Script variables
@@ -30,16 +30,16 @@ fi
start()
{
-
[ -n "$LAN_INTERFACE" ] || return 0
# Check if log diratory is present. Otherwise, create it.
if [ ! -d $LOGDIR/$DATE ]; then
- mkdir -d $LOGDIR/$DATE
+ mkdir -p $LOGDIR/$DATE
/bin/chown -R $USER:$USER $LOGDIR/$DATE
- /bin/chmod -R 700 $LOGDIR/$DATE
+ /bin/chmod -R 700 $LOGDIR/$DATE
fi
/bin/echo "Starting $PROG: "
+
# Snort parameters
# -D Run Snort in background (daemon) mode
# -i <if> Listen on interface <if>
@@ -64,7 +64,7 @@ stop()
RETURN_VAL=$?
/bin/echo "$PROG shutdown complete."
[ -e $DEL_PID ] && rm -f $DEL_PID
- [ -e $DEL_PID.lck ] && rm -f $DEL_PID.lck
+ [ -e $DEL_PID.lck ] && rm -f $DEL_PID.lck
else
/bin/echo "ERROR: PID in $PID file not found."
RETURN_VAL=1
@@ -72,12 +72,13 @@ stop()
return $RETURN_VAL
}
-status() {
- if [ -s $PID ]; then
- echo "$PROG is running as pid `cat $PID`:"
- else
- echo "$PROG is not running."
- fi
+status()
+{
+ if [ -s $PID ]; then
+ echo "$PROG is running as pid `cat $PID`:"
+ else
+ echo "$PROG is not running."
+ fi
}
restart()
@@ -89,21 +90,21 @@ restart()
}
case "$1" in
- start)
- start
- ;;
- stop)
- stop
- ;;
- status)
- status
- ;;
- restart|reload)
- restart
- ;;
- *)
- /bin/echo "Usage: $0 {start|stop|status|restart|reload}"
- RETURN_VAL=1
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ status)
+ status
+ ;;
+ restart|reload)
+ restart
+ ;;
+ *)
+ /bin/echo "Usage: $0 {start|stop|status|restart|reload}"
+ RETURN_VAL=1
esac
exit $RETURN_VAL
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/snort/volatiles.99_snort b/meta-networking/recipes-connectivity/snort/snort/volatiles.99_snort
new file mode 100644
index 0000000000..acf5f61ab6
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort/volatiles.99_snort
@@ -0,0 +1,2 @@
+# <type> <owner> <group> <mode> <path> <linksource>
+d root root 0755 /var/log/snort none
diff --git a/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb b/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
new file mode 100644
index 0000000000..8b9092b418
--- /dev/null
+++ b/meta-networking/recipes-connectivity/snort/snort_2.9.20.bb
@@ -0,0 +1,127 @@
+DESCRIPTION = "snort - 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 = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc bison-native"
+
+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 \
+ file://disable-run-test-program-while-cross-compiling.patch \
+ file://configure.in-disable-tirpc-checking-for-fedora.patch \
+"
+SRC_URI[sha256sum] = "29400e13f53b1831e0b8b10ec1224a1cbaa6dc1533a5322a20dd80bb84b4981c"
+
+UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
+UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
+
+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 \
+ --enable-reload \
+ --enable-reload-error-restart \
+ --enable-targetbased \
+ --enable-static-daq \
+ --with-dnet-includes=${STAGING_INCDIR} \
+ --with-dnet-libraries=${STAGING_LIBDIR} \
+ --with-libpcre-includes=${STAGING_INCDIR} \
+ --with-libpcre-libraries=${STAGING_LIBDIR} \
+ --with-daq-includes=${STAGING_INCDIR} \
+ --with-daq-libraries=${STAGING_LIBDIR} \
+"
+
+# if you want to disable it, you need to patch configure.in first
+# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
+# is called even with --without-openssl-includes
+PACKAGECONFIG ?= "openssl lzma"
+PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
+PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"
+PACKAGECONFIG[appid] = "--enable-open-appid, --disable-open-appid, luajit, bash"
+
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+LDFLAGS += " -ltirpc"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/snort/rules
+ install -d ${D}${sysconfdir}/snort/preproc_rules
+ install -d ${D}${sysconfdir}/init.d
+ for i in map config conf dtd; do
+ cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
+ done
+
+ # fix the hardcoded path and lib name
+ # comment out the rules that are not provided
+ sed -i -e 's#/usr/local/lib#${libdir}#' \
+ -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
+ -e 's#\(libsf_engine.so\)#\1.0#' \
+ -e 's/^\(include $RULE_PATH\)/#\1/' \
+ -e 's/^\(dynamicdetection\)/#\1/' \
+ -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
+ ${D}${sysconfdir}/snort/snort.conf
+
+ cp ${S}/preproc_rules/*.rules ${D}${sysconfdir}/snort/preproc_rules/
+ 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
+
+ sed -i -e 's|-ffile-prefix-map[^ ]*||g; s|-fdebug-prefix-map[^ ]*||g; s|-fmacro-prefix-map[^ ]*||g; s|${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
+}
+
+pkg_postinst:${PN}() {
+ if [ -z "$D" ] && [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
+ ${sysconfdir}/init.d/populate-volatile.sh update
+ fi
+}
+
+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 \
+ ${libdir}/snort_dynamicpreprocessor/.debug \
+ ${libdir}/snort_dynamicrules/.debug \
+"
+FILES:${PN}-staticdev += " \
+ ${libdir}/snort_dynamicengine/*.a \
+ ${libdir}/snort_dynamicpreprocessor/*.a \
+ ${libdir}/snort_dynamicrules/*.a \
+ ${libdir}/snort/dynamic_preproc/*.a \
+ ${libdir}/snort/dynamic_output/*.a \
+"
+FILES:${PN}-dev += " \
+ ${libdir}/snort_dynamicengine/*.la \
+ ${libdir}/snort_dynamicpreprocessor/*.la \
+ ${libdir}/snort_dynamicrules/*.la \
+ ${libdir}/snort_dynamicengine/*.so \
+ ${libdir}/snort_dynamicpreprocessor/*.so \
+ ${libdir}/snort_dynamicrules/*.so \
+ ${prefix}/src/snort_dynamicsrc \
+"
diff --git a/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb b/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb
deleted file mode 100644
index 24b91b95fd..0000000000
--- a/meta-networking/recipes-connectivity/snort/snort_2.9.7.5.bb
+++ /dev/null
@@ -1,107 +0,0 @@
-DESCRIPTION = "snort - a free lightweight network intrusion detection system for UNIX and Windows."
-HOMEPAGE = "http://www.snort.org/"
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=78fa8ef966b48fbf9095e13cc92377c5"
-
-DEPENDS = "xz libpcap libpcre daq libdnet util-linux daq-native libtirpc"
-
-SRC_URI = " ${GENTOO_MIRROR}/${BP}.tar.gz;name=tarball \
- file://snort.init \
- file://disable-inaddr-none.patch \
- file://disable-dap-address-space-id.patch \
- file://disable-daq-flow-id.patch \
- file://disable-daq-verdict-retry.patch \
- file://0001-libpcap-search-sysroot-for-headers.patch \
- file://0001-fix-do_package-failed-since-snort-2.9.7.0.patch \
- file://fix-host-contamination-when-enable-static-daq.patch \
-"
-
-SRC_URI[tarball.md5sum] = "fd271788c0f8876be87a858a9142f202"
-SRC_URI[tarball.sha256sum] = "ad03f11b5301b16642199a86aa90388eaa53f5003f83b0c5595745a490047be1"
-
-UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
-UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
-
-inherit autotools gettext update-rc.d pkgconfig
-
-INITSCRIPT_NAME = "snort"
-INITSCRIPT_PARAMS = "defaults"
-
-EXTRA_OECONF = " \
- --enable-gre \
- --enable-linux-smp-stats \
- --enable-reload \
- --enable-reload-error-restart \
- --enable-targetbased \
- --enable-static-daq \
- --with-dnet-includes=${STAGING_INCDIR} \
- --with-dnet-libraries=${STAGING_LIBDIR} \
- --with-libpcre-includes=${STAGING_INCDIR} \
- --with-libpcre-libraries=${STAGING_LIBDIR} \
- --with-daq-includes=${STAGING_INCDIR} \
- --with-daq-libraries=${STAGING_LIBDIR} \
-"
-
-# if you want to disable it, you need to patch configure.in first
-# AC_CHECK_HEADERS([openssl/sha.h],, SHA_H="no")
-# is called even with --without-openssl-includes
-PACKAGECONFIG ?= "openssl lzma"
-PACKAGECONFIG[openssl] = "--with-openssl-includes=${STAGING_INCDIR} --with-openssl-libraries=${STAGING_LIBDIR}, --without-openssl-includes --without-openssl-libraries, openssl,"
-PACKAGECONFIG[lzma] = "--with-lzma-includes=${STAGING_INCDIR} --with-lzma-libraries=${STAGING_LIBDIR}, --without-lzma-includes --without-lzma-libraries, xz,"
-
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDFLAGS += " -ltirpc"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/snort/rules
- install -d ${D}${sysconfdir}/snort/preproc_rules
- install -d ${D}${sysconfdir}/init.d
- for i in map config conf dtd; do
- cp ${S}/etc/*.$i ${D}${sysconfdir}/snort/
- done
-
- # fix the hardcoded path and lib name
- # comment out the rules that are not provided
- sed -i -e 's#/usr/local/lib#${libdir}#' \
- -e 's#\.\./\(.*rules\)#${sysconfdir}/snort/\1#' \
- -e 's#\(libsf_engine.so\)#\1.0#' \
- -e 's/^\(include $RULE_PATH\)/#\1/' \
- -e 's/^\(dynamicdetection\)/#\1/' \
- -e '/preprocessor reputation/,/blacklist/ s/^/#/' \
- ${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
- mkdir -p ${D}${localstatedir}/log/snort
- install -d ${D}/var/log/snort
-
- sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
-}
-
-FILES_${PN} += " \
- ${libdir}/snort_dynamicengine/*.so.* \
- ${libdir}/snort_dynamicpreprocessor/*.so.* \
- ${libdir}/snort_dynamicrules/*.so.* \
-"
-FILES_${PN}-dbg += " \
- ${libdir}/snort_dynamicengine/.debug \
- ${libdir}/snort_dynamicpreprocessor/.debug \
- ${libdir}/snort_dynamicrules/.debug \
-"
-FILES_${PN}-staticdev += " \
- ${libdir}/snort_dynamicengine/*.a \
- ${libdir}/snort_dynamicpreprocessor/*.a \
- ${libdir}/snort_dynamicrules/*.a \
- ${libdir}/snort/dynamic_preproc/*.a \
- ${libdir}/snort/dynamic_output/*.a \
-"
-FILES_${PN}-dev += " \
- ${libdir}/snort_dynamicengine/*.la \
- ${libdir}/snort_dynamicpreprocessor/*.la \
- ${libdir}/snort_dynamicrules/*.la \
- ${libdir}/snort_dynamicengine/*.so \
- ${libdir}/snort_dynamicpreprocessor/*.so \
- ${libdir}/snort_dynamicrules/*.so \
- ${prefix}/src/snort_dynamicsrc \
-"
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/ufw/ufw/0001-optimize-boot.patch b/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch
index a1e56b7cac..28068bba11 100644
--- a/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch
+++ b/meta-networking/recipes-connectivity/ufw/ufw/0001-optimize-boot.patch
@@ -1,18 +1,31 @@
-Author: Jamie Strandboge <jamie@canonical.com>
-Description: to improve boot speed when disabled, don't source all of
- ufw-init-functions (which also sources in other files).
+From 92fcdbc1a57086e4decc1597217c0739dc16342a Mon Sep 17 00:00:00 2001
+From: Silcet <camorga1@gmail.com>
+Date: Tue, 27 Apr 2021 05:34:59 +0000
+Subject: [PATCH] Author: Jamie Strandboge <jamie@canonical.com>
+Description:
+to improve boot speed when disabled, don't source all of ufw-init-functions
+(which also sources in other files).
Upstream-Status: Inappropriate [ not author ]
Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-Index: ufw-0.31/src/ufw-init
-===================================================================
---- ufw-0.31.orig/src/ufw-init 2012-03-09 17:07:11.000000000 -0600
-+++ ufw-0.31/src/ufw-init 2012-03-17 09:37:51.000000000 -0500
-@@ -18,6 +18,12 @@
- #
- set -e
+The patch was imported from the OpenEmbedded git server
+(git://git.openembedded.org/openembedded) as of commit id
+2cc1bd9dd060f5002c2fde7aacba86fe230c12af.
+
+Signed-off-by: Silcet <camorga1@gmail.com>
+---
+ src/ufw-init | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/ufw-init b/src/ufw-init
+index 3505a02..dde37f0 100755
+--- a/src/ufw-init
++++ b/src/ufw-init
+@@ -31,6 +31,12 @@ if [ "$1" = "--datadir" ] && [ -s "$2" ]; then
+ fi
+ export DATA_DIR="$datadir"
+# Debian/Ubuntu: small boot speed improvement
+. "#CONFIG_PREFIX#/ufw/ufw.conf"
@@ -20,6 +33,6 @@ Index: ufw-0.31/src/ufw-init
+ exit 0
+fi
+
- if [ -s "#STATE_PREFIX#/ufw-init-functions" ]; then
- . "#STATE_PREFIX#/ufw-init-functions"
+ if [ -s "${rootdir}#STATE_PREFIX#/ufw-init-functions" ]; then
+ . "${rootdir}#STATE_PREFIX#/ufw-init-functions"
else
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0002-add-an-option-to-specify-iptables-location.patch b/meta-networking/recipes-connectivity/ufw/ufw/0002-add-an-option-to-specify-iptables-location.patch
new file mode 100644
index 0000000000..ee935eb615
--- /dev/null
+++ b/meta-networking/recipes-connectivity/ufw/ufw/0002-add-an-option-to-specify-iptables-location.patch
@@ -0,0 +1,112 @@
+From 808577f8464f542076840d0d93fe168a5f79442c Mon Sep 17 00:00:00 2001
+From: Silcet <camorga1@gmail.com>
+Date: Tue, 27 Apr 2021 05:40:03 +0000
+Subject: [PATCH] setup: add an option to specify iptables location
+
+When cross-compiling it isn't certain that the location of iptables on the
+target will be the same as on the host. It also doesn't make sense the
+test the version of the host during setup. We provide an option to
+specify an alternate iptables directory. This is assumed to be a
+cross-compile environment and therefore no attempt is made to verify the
+version of iptables to be used.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+
+The patch was imported from the OpenEmbedded git server
+(git://git.openembedded.org/openembedded) as of commit id
+2cc1bd9dd060f5002c2fde7aacba86fe230c12af.
+
+Signed-off-by: Silcet <camorga1@gmail.com>
+---
+ setup.py | 65 ++++++++++++++++++++++++++++++++------------------------
+ 1 file changed, 37 insertions(+), 28 deletions(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -245,45 +245,50 @@ shutil.copytree('src', 'staging')
+ os.unlink(os.path.join('staging', 'ufw-init'))
+ os.unlink(os.path.join('staging', 'ufw-init-functions'))
+
++iptables_set = 0
+ iptables_exe = ''
+ iptables_dir = ''
+
+-for e in ['iptables']:
+- # Historically iptables was in /sbin, then later also symlinked from
+- # /usr/sbin/iptables to /sbin/iptables. Debian bullseye moves iptables
+- # to /usr/sbin with no symlink in /sbin except on upgrades. To accomodate
+- # buildds that may still have the old iptables, search /usr/sbin first
+- for dir in ['/usr/sbin', '/sbin', '/usr/bin', '/bin', '/usr/local/sbin', \
+- '/usr/local/bin']:
+- if e == "iptables":
+- if os.path.exists(os.path.join(dir, e)):
+- iptables_dir = dir
+- iptables_exe = os.path.join(iptables_dir, "iptables")
+- print("Found '%s'" % iptables_exe)
+- else:
+- continue
+-
+- if iptables_exe != "":
+- break
+-
+-
+-if iptables_exe == '':
+- print("ERROR: could not find required binary 'iptables'", file=sys.stderr)
+- sys.exit(1)
+-
+-for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']:
+- if not os.path.exists(os.path.join(iptables_dir, e)):
+- print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr)
++if "--iptables-dir" in sys.argv:
++ iptables_dir = sys.argv[sys.argv.index("--iptables-dir") + 1]
++ iptables_exe = os.path.join(iptables_dir, "iptables")
++ iptables_set = 1
++ print("INFO: iptables manually set: '%s'" % (iptables_exe))
++ sys.argv.remove(iptables_dir)
++ sys.argv.remove("--iptables-dir")
++
++if not iptables_set:
++ for e in ['iptables']:
++ for dir in ['/usr/sbin', '/sbin', '/usr/bin', '/bin', '/usr/local/sbin', \
++ '/usr/local/bin']:
++ if e == "iptables":
++ if os.path.exists(os.path.join(dir, e)):
++ iptables_dir = dir
++ iptables_exe = os.path.join(iptables_dir, "iptables")
++ print("Found '%s'" % iptables_exe)
++ else:
++ continue
++
++ if iptables_exe != "":
++ break
++
++ if iptables_exe == '':
++ print("ERROR: could not find required binary 'iptables'", file=sys.stderr)
+ sys.exit(1)
+
+-(rc, out) = cmd([iptables_exe, '-V'])
+-if rc != 0:
+- raise OSError(errno.ENOENT, "Could not find version for '%s'" % \
+- (iptables_exe))
+-version = re.sub('^v', '', re.split('\s', str(out))[1])
+-print("Found '%s' version '%s'" % (iptables_exe, version))
+-if version < "1.4":
+- print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr)
++ for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']:
++ if not os.path.exists(os.path.join(iptables_dir, e)):
++ print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr)
++ sys.exit(1)
++
++ (rc, out) = cmd([iptables_exe, '-V'])
++ if rc != 0:
++ raise OSError(errno.ENOENT, "Could not find version for '%s'" % \
++ (iptables_exe))
++ version = re.sub('^v', '', re.split('\s', str(out))[1])
++ print("Found '%s' version '%s'" % (iptables_exe, version))
++ if version < "1.4":
++ print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr)
+
+ setup (name='ufw',
+ version=ufw_version,
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch b/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch
deleted file mode 100644
index 804c18bc9e..0000000000
--- a/meta-networking/recipes-connectivity/ufw/ufw/0002-lp1044361.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-Origin: r795, r796
-Description: move netfilter capabilities checking into initcaps(), and call
- initcaps() only when we need it.
-Bug-Ubuntu: https://launchpad.net/bugs/1044361
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/src/backend_iptables.py
-===================================================================
---- ufw-0.33.orig/src/backend_iptables.py 2012-09-23 09:58:34.000000000 -0500
-+++ ufw-0.33/src/backend_iptables.py 2012-09-23 09:58:36.000000000 -0500
-@@ -160,6 +160,9 @@
- out += "> " + _("Checking raw ip6tables\n")
- return out
-
-+ # Initialize the capabilities database
-+ self.initcaps()
-+
- args = ['-n', '-v', '-x', '-L']
- items = []
- items6 = []
-@@ -470,6 +473,9 @@
- if self.dryrun:
- return False
-
-+ # Initialize the capabilities database
-+ self.initcaps()
-+
- prefix = "ufw"
- exe = self.iptables
- if v6:
-@@ -684,6 +690,9 @@
- except Exception:
- raise
-
-+ # Initialize the capabilities database
-+ self.initcaps()
-+
- chain_prefix = "ufw"
- rules = self.rules
- if v6:
-@@ -830,6 +839,10 @@
- * updating user rules file
- * reloading the user rules file if rule is modified
- '''
-+
-+ # Initialize the capabilities database
-+ self.initcaps()
-+
- rstr = ""
-
- if rule.v6:
-@@ -1073,6 +1086,9 @@
- if self.dryrun:
- return
-
-+ # Initialize the capabilities database
-+ self.initcaps()
-+
- rules_t = []
- try:
- rules_t = self._get_logging_rules(level)
-Index: ufw-0.33/src/backend.py
-===================================================================
---- ufw-0.33.orig/src/backend.py 2012-09-23 09:58:34.000000000 -0500
-+++ ufw-0.33/src/backend.py 2012-09-23 09:59:03.000000000 -0500
-@@ -21,7 +21,7 @@
- import stat
- import sys
- import ufw.util
--from ufw.util import warn, debug
-+from ufw.util import error, warn, debug
- from ufw.common import UFWError, config_dir, iptables_dir, UFWRule
- import ufw.applications
-
-@@ -68,6 +68,17 @@
- err_msg = _("Couldn't determine iptables version")
- raise UFWError(err_msg)
-
-+ # Initialize via initcaps only when we need it (LP: #1044361)
-+ self.caps = None
-+
-+ def initcaps(self):
-+ '''Initialize the capabilities database. This needs to be called
-+ before accessing the database.'''
-+
-+ # Only initialize if not initialized already
-+ if self.caps != None:
-+ return
-+
- self.caps = {}
- self.caps['limit'] = {}
-
-@@ -78,14 +89,20 @@
- # Try to get capabilities from the running system if root
- if self.do_checks and os.getuid() == 0 and not self.dryrun:
- # v4
-- nf_caps = ufw.util.get_netfilter_capabilities(self.iptables)
-+ try:
-+ nf_caps = ufw.util.get_netfilter_capabilities(self.iptables)
-+ except OSError as e:
-+ error("initcaps\n%s" % e)
- if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
- self.caps['limit']['4'] = True
- else:
- self.caps['limit']['4'] = False
-
- # v6
-- nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
-+ try:
-+ nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
-+ except OSError as e:
-+ error("initcaps\n%s" % e)
- if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
- self.caps['limit']['6'] = True
- else:
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch b/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch
deleted file mode 100644
index b259fdf781..0000000000
--- a/meta-networking/recipes-connectivity/ufw/ufw/0003-fix-typeerror-on-error.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Origin: r797
-Description: src/backend_iptables.py: fix misplaced parenthesis
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/src/backend_iptables.py
-===================================================================
---- ufw-0.33.orig/src/backend_iptables.py 2012-09-24 08:51:13.000000000 -0500
-+++ ufw-0.33/src/backend_iptables.py 2012-09-24 08:52:00.000000000 -0500
-@@ -1075,7 +1075,7 @@
- exe = self.ip6tables
- (rc, out) = cmd([exe] + args)
- if rc != 0:
-- err_msg = _("Could not perform '%s'") % (args)
-+ err_msg = _("Could not perform '%s'" % (args))
- if fail_ok:
- debug("FAILOK: " + err_msg)
- else:
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0003-only-make-one-reference-to-env.patch b/meta-networking/recipes-connectivity/ufw/ufw/0003-only-make-one-reference-to-env.patch
new file mode 100644
index 0000000000..556d4459d0
--- /dev/null
+++ b/meta-networking/recipes-connectivity/ufw/ufw/0003-only-make-one-reference-to-env.patch
@@ -0,0 +1,73 @@
+From 42170d379eddc12bd2d1fe84dc268882d8eb4d64 Mon Sep 17 00:00:00 2001
+From: Silcet <camorga1@gmail.com>
+Date: Mon, 3 May 2021 08:59:28 +0000
+Subject: [PATCH] setup: only make one reference to env
+
+If sys.executable happens to be '/usr/bin/env python' or something
+similar, the setup script will result in 'ufw' getting /usr/bin/env
+repeated on the top line. This causes an error at runtime. Perform a
+quick sanity check on sys.executable before doing the substitution.
+
+While we're at it, change the default value of 'exe' to the one we either
+detected or specified on the build line.
+
+Upstream-Status: Inappropriate [ embedded specific ]
+
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+
+The patch was imported from the OpenEmbedded git server
+(git://git.openembedded.org/openembedded) as of commit id
+2cc1bd9dd060f5002c2fde7aacba86fe230c12af.
+
+A previous change had modified the way the python shebang was updated to
+follow the same version as the one used to call setup.py. However, it
+used a regex that was not matching anymore. To fix this, the regex
+condition is removed so the shebang line is substituted with the sys.executable
+value. Later in the installation distutils finds the string with the path
+of sys.executable and replaces it with "#! /usr/bin/env python3".
+
+Signed-off-by: Silcet <camorga1@gmail.com>
+---
+ setup.py | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 2343bc9..f8a638b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -64,7 +64,7 @@ class Install(_install, object):
+ real_sharedir = os.path.join(real_prefix, 'share', 'ufw')
+
+ # Update the modules' paths
+- for fn in [ 'common.py' ]:
++ for fn in [ 'common.py', 'util.py' ]:
+ # 'staging' is used with just 'install' but build_lib is used when
+ # using 'build'. We could probably override 'def build()' but this
+ # at least works
+@@ -97,6 +97,12 @@ class Install(_install, object):
+ "-i",
+ "s%#SHARE_DIR#%" + real_sharedir + "%g",
+ f])
++
++ subprocess.call(["sed",
++ "-i.jjm",
++ "s%/sbin/iptables%" + iptables_exe + "%g",
++ f])
++
+
+ if fn == 'common.py' and 'UFW_SKIP_CHECKS' in os.environ and \
+ os.environ['UFW_SKIP_CHECKS'] != '':
+@@ -123,10 +129,12 @@ class Install(_install, object):
+ self.mkpath(os.path.dirname(f))
+
+ # update the interpreter to that of the one the user specified for setup
++ # Distutils searches for the string of sys.executable and replaces it
++ # with the "#! /usr/bin/env pythonX" shebang on a later step
+ print("Updating staging/ufw to use %s" % (sys.executable))
+ subprocess.call(["sed",
+ "-i",
+- "1s%^#.*python.*%#! /usr/bin/env " + sys.executable + "%g",
++ "1s%/.*python.*%" + sys.executable + "%g",
+ 'staging/ufw'])
+ self.copy_file('staging/ufw', script)
+ self.copy_file('doc/ufw.8', manpage)
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch b/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch
deleted file mode 100644
index 695b265671..0000000000
--- a/meta-networking/recipes-connectivity/ufw/ufw/0004-lp1039729.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-Origin: r803, r804
-Description: Don't call get_netfilter_capabilities() with ipv6 if ipv6 is
- disabled.
-Bug-Ubuntu: https://launchpad.net/ufw/bugs/1039729
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/src/backend.py
-===================================================================
---- ufw-0.33.orig/src/backend.py 2012-12-04 09:21:57.000000000 -0600
-+++ ufw-0.33/src/backend.py 2012-12-04 09:22:40.000000000 -0600
-@@ -98,15 +98,17 @@
- else:
- self.caps['limit']['4'] = False
-
-- # v6
-- try:
-- nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
-- except OSError as e:
-- error("initcaps\n%s" % e)
-- if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
-- self.caps['limit']['6'] = True
-- else:
-- self.caps['limit']['6'] = False
-+ # v6 (skip capabilities check for ipv6 if ipv6 is disabled in ufw
-+ # because the system may not have ipv6 support (LP: #1039729)
-+ if self.use_ipv6():
-+ try:
-+ nf_caps = ufw.util.get_netfilter_capabilities(self.ip6tables)
-+ except OSError as e:
-+ error("initcaps\n%s" % e)
-+ if 'recent-set' in nf_caps and 'recent-update' in nf_caps:
-+ self.caps['limit']['6'] = True
-+ else:
-+ self.caps['limit']['6'] = False
-
- def is_enabled(self):
- '''Is firewall configured as enabled'''
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch b/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch
deleted file mode 100644
index b760d3fd33..0000000000
--- a/meta-networking/recipes-connectivity/ufw/ufw/0005-lp1191197.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Origin: r816
-Description: add check for -m rt --rt-type 0
-Bug-Ubuntu: https://launchpad.net/bugs/1191197
-Forwarded: yes
-
-Upstream-Status: Inappropriate [ not author ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
-
-Index: ufw-0.33/tests/check-requirements
-===================================================================
---- ufw-0.33.orig/tests/check-requirements 2012-08-17 16:12:49.000000000 -0500
-+++ ufw-0.33/tests/check-requirements 2013-06-15 07:47:00.000000000 -0500
-@@ -3,7 +3,7 @@
- # check-requirements: verify all the required iptables functionality is
- # available
- #
--# Copyright 2008-2012 Canonical Ltd.
-+# Copyright 2008-2013 Canonical Ltd.
- #
- # This program is free software: you can redistribute it and/or modify
- # it under the terms of the GNU General Public License version 3,
-@@ -218,6 +218,9 @@
- echo -n "icmpv6 with hl ($j): "
- runcmd $exe -A $c -p icmpv6 --icmpv6-type $j -m hl --hl-eq 255 -j ACCEPT
- done
-+
-+ echo -n "ipv6 rt: "
-+ runcmd $exe -A $c -m rt --rt-type 0 -j ACCEPT
- fi
-
- echo ""
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch b/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch
deleted file mode 100644
index 5117423387..0000000000
--- a/meta-networking/recipes-connectivity/ufw/ufw/setup-add-an-option-to-specify-iptables-location.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From c54d36d0582a60fd281cd9287077cea205fd849d Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Thu, 27 Nov 2014 15:20:34 -0500
-Subject: [PATCH] setup: add an option to specify iptables location
-
-When cross-compiling it isn't certain that the location of iptables on the
-target will be the same as on the host. It also doesn't make sense the
-test the version of the host during setup. We provide an option to
-specify an alternate iptables directory. This is assumed to be a
-cross-compile environment and therefore no attempt is made to verify the
-version of iptables to be used.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- setup.py | 69 ++++++++++++++++++++++++++++++++++++----------------------------
- 1 file changed, 39 insertions(+), 30 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 6fb3751..b13d11c 100644
---- a/setup.py
-+++ b/setup.py
-@@ -225,41 +225,50 @@ shutil.copytree('src', 'staging')
- os.unlink(os.path.join('staging', 'ufw-init'))
- os.unlink(os.path.join('staging', 'ufw-init-functions'))
-
-+iptables_set = 0
- iptables_exe = ''
- iptables_dir = ''
-
--for e in ['iptables']:
-- for dir in ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin', \
-- '/usr/local/bin']:
-- if e == "iptables":
-- if os.path.exists(os.path.join(dir, e)):
-- iptables_dir = dir
-- iptables_exe = os.path.join(iptables_dir, "iptables")
-- print("Found '%s'" % iptables_exe)
-- else:
-- continue
--
-- if iptables_exe != "":
-- break
--
--
--if iptables_exe == '':
-- print("ERROR: could not find required binary 'iptables'", file=sys.stderr)
-- sys.exit(1)
--
--for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']:
-- if not os.path.exists(os.path.join(iptables_dir, e)):
-- print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr)
-+if "--iptables-dir" in sys.argv:
-+ iptables_dir = sys.argv[sys.argv.index("--iptables-dir") + 1]
-+ iptables_exe = os.path.join(iptables_dir, "iptables")
-+ iptables_set = 1
-+ print("INFO: iptables manually set: '%s'" % (iptables_exe))
-+ sys.argv.remove(iptables_dir)
-+ sys.argv.remove("--iptables-dir")
-+
-+if not iptables_set:
-+ for e in ['iptables']:
-+ for dir in ['/sbin', '/bin', '/usr/sbin', '/usr/bin', '/usr/local/sbin', \
-+ '/usr/local/bin']:
-+ if e == "iptables":
-+ if os.path.exists(os.path.join(dir, e)):
-+ iptables_dir = dir
-+ iptables_exe = os.path.join(iptables_dir, "iptables")
-+ print("Found '%s'" % iptables_exe)
-+ else:
-+ continue
-+
-+ if iptables_exe != "":
-+ break
-+
-+ if iptables_exe == '':
-+ print("ERROR: could not find required binary 'iptables'", file=sys.stderr)
- sys.exit(1)
-
--(rc, out) = cmd([iptables_exe, '-V'])
--if rc != 0:
-- raise OSError(errno.ENOENT, "Could not find version for '%s'" % \
-- (iptables_exe))
--version = re.sub('^v', '', re.split('\s', str(out))[1])
--print("Found '%s' version '%s'" % (iptables_exe, version))
--if version < "1.4":
-- print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr)
-+ for e in ['ip6tables', 'iptables-restore', 'ip6tables-restore']:
-+ if not os.path.exists(os.path.join(iptables_dir, e)):
-+ print("ERROR: could not find required binary '%s'" % (e), file=sys.stderr)
-+ sys.exit(1)
-+
-+ (rc, out) = cmd([iptables_exe, '-V'])
-+ if rc != 0:
-+ raise OSError(errno.ENOENT, "Could not find version for '%s'" % \
-+ (iptables_exe))
-+ version = re.sub('^v', '', re.split('\s', str(out))[1])
-+ print("Found '%s' version '%s'" % (iptables_exe, version))
-+ if version < "1.4":
-+ print("WARN: version '%s' has limited IPv6 support. See README for details." % (version), file=sys.stderr)
-
- setup (name='ufw',
- version=ufw_version,
---
-1.9.1
-
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch b/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch
deleted file mode 100644
index ff704b5a46..0000000000
--- a/meta-networking/recipes-connectivity/ufw/ufw/setup-only-make-one-reference-to-env.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From be53eea06a5655fdc98f47a73be8277b65bb42ed Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Tue, 11 Nov 2014 21:41:14 -0500
-Subject: [PATCH] setup: only make one reference to env
-
-If sys.executable happens to be '/usr/bin/env python' or something
-similar, the setup script will result in 'ufw' getting /usr/bin/env
-repeated on the top line. This causes an error at runtime. Perform a
-quick sanity check on sys.executable before doing the substitution.
-
-While we're at it, change the default value of 'exe' to the one we either
-detected or specified on the build line.
-
-Upstream-Status: Inappropriate [ embedded specific ]
-
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- setup.py | 34 ++++++++++++++++++++++++++++------
- 1 file changed, 28 insertions(+), 6 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index b13d11c..73acdef 100644
---- a/setup.py
-+++ b/setup.py
-@@ -64,7 +64,7 @@ class Install(_install, object):
- real_sharedir = os.path.join(real_prefix, 'share', 'ufw')
-
- # Update the modules' paths
-- for file in [ 'common.py' ]:
-+ for file in [ 'common.py', 'util.py' ]:
- print("Updating " + file)
- subprocess.call(["sed",
- "-i",
-@@ -91,6 +91,11 @@ class Install(_install, object):
- "s%#SHARE_DIR#%" + real_sharedir + "%g",
- os.path.join('staging', file)])
-
-+ subprocess.call(["sed",
-+ "-i.jjm",
-+ "s%/sbin/iptables%" + iptables_exe + "%g",
-+ os.path.join('staging', file)])
-+
- # Now byte-compile everything
- super(Install, self).run()
-
-@@ -107,12 +112,23 @@ class Install(_install, object):
- for f in [ script, manpage, manpage_f ]:
- self.mkpath(os.path.dirname(f))
-
-+ # if sys.executable == /usr/bin/env python* the result will be the top
-+ # of ufw getting:
-+ #
-+ # #! /usr/bin/env /usr/bin/env python
-+ #
-+ # which is not ideal
-+ #
- # update the interpreter to that of the one the user specified for setup
-- print("Updating staging/ufw to use %s" % (sys.executable))
-- subprocess.call(["sed",
-- "-i",
-- "1s%^#.*python.*%#! /usr/bin/env " + sys.executable + "%g",
-- 'staging/ufw'])
-+ print("Updating staging/ufw to use (%s)" % (sys.executable))
-+
-+ if re.search("(/usr/bin/env)", sys.executable):
-+ print("found 'env' in sys.executable (%s)" % (sys.executable))
-+ subprocess.call(["sed",
-+ "-i.jjm",
-+ "1s%^#.*python.*%#! " + sys.executable + "%g",
-+ 'staging/ufw'])
-+
- self.copy_file('staging/ufw', script)
- self.copy_file('doc/ufw.8', manpage)
- self.copy_file('doc/ufw-framework.8', manpage_f)
---
-1.9.1
-
diff --git a/meta-networking/recipes-connectivity/ufw/ufw/setuptools.patch b/meta-networking/recipes-connectivity/ufw/ufw/setuptools.patch
new file mode 100644
index 0000000000..ad5391cb98
--- /dev/null
+++ b/meta-networking/recipes-connectivity/ufw/ufw/setuptools.patch
@@ -0,0 +1,20 @@
+Move to setuptools as distutils is now deprecated.
+
+Upstream-Status: Submitted [https://code.launchpad.net/~tgamblin/ufw/distutils-to-setuptools]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/setup.py b/setup.py
+index cb67a6a..de648d3 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,8 +25,8 @@
+ #
+
+ from __future__ import print_function
+-from distutils.command.install import install as _install
+-from distutils.core import setup
++from setuptools.command.install import install as _install
++from setuptools import setup
+ import errno
+ import os
+ import re
diff --git a/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb b/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb
deleted file mode 100644
index 19cfe46b7b..0000000000
--- a/meta-networking/recipes-connectivity/ufw/ufw_0.33.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-SUMMARY = "Uncomplicated Firewall"
-DESCRIPTION = "UFW stands for Uncomplicated Firewall, and is program for \
-managing a netfilter firewall. It provides a command line interface and aims \
-to be uncomplicated and easy to use."
-HOMEPAGE = "https://launchpad.net/ufw"
-SECTION = "net"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-
-SRC_URI = " \
- https://launchpad.net/ufw/0.33/0.33/+download/ufw-0.33.tar.gz \
- file://setup-add-an-option-to-specify-iptables-location.patch \
- file://setup-only-make-one-reference-to-env.patch \
- file://0001-optimize-boot.patch \
- file://0002-lp1044361.patch \
- file://0003-fix-typeerror-on-error.patch \
- file://0004-lp1039729.patch \
- file://0005-lp1191197.patch \
-"
-SRC_URI[md5sum] = "3747b453d76709e5a99da209fc0bb5f5"
-SRC_URI[sha256sum] = "5f85a8084ad3539b547bec097286948233188c971f498890316dec170bdd1da8"
-
-inherit setuptools distro_features_check
-
-RDEPENDS_${PN} = " \
- iptables \
- python \
- python-modules \
- "
-
-RRECOMMENDS_${PN} = " \
- kernel-module-ipv6 \
- kernel-module-nf-conntrack-ipv6 \
- kernel-module-nf-log-common \
- kernel-module-nf-log-ipv4 \
- kernel-module-nf-log-ipv6 \
- kernel-module-nf-addrtype \
- kernel-module-nf-limit \
- kernel-module-nf-log \
- kernel-module-nf-recent \
-"
-
-# Certain items are explicitly put under /lib, not base_libdir when installed.
-#
-FILES_${PN} += " \
- ${sbindir}/* \
- ${datadir}/ufw/* \
- /lib/ufw/* \
- ${sysconfdir}/ufw/* \
- ${sysconfdir}/default/ufw \
-"
-
-REQUIRED_DISTRO_FEATURES = "ipv6"
-
-DISTUTILS_BUILD_ARGS_append = " --iptables-dir /usr/sbin"
-DISTUTILS_INSTALL_ARGS_append = " --iptables-dir /usr/sbin"
diff --git a/meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb b/meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb
new file mode 100644
index 0000000000..c479eefba0
--- /dev/null
+++ b/meta-networking/recipes-connectivity/ufw/ufw_0.36.1.bb
@@ -0,0 +1,74 @@
+
+SUMMARY = "Uncomplicated Firewall"
+DESCRIPTION = "UFW stands for Uncomplicated Firewall, and is program for \
+managing a netfilter firewall. It provides a command line interface and aims \
+to be uncomplicated and easy to use."
+HOMEPAGE = "https://launchpad.net/ufw"
+SECTION = "net"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+
+SRC_URI = "https://launchpad.net/ufw/0.36/0.36.1/+download/ufw-0.36.1.tar.gz \
+ file://0001-optimize-boot.patch \
+ file://0002-add-an-option-to-specify-iptables-location.patch \
+ file://0003-only-make-one-reference-to-env.patch \
+ file://setuptools.patch \
+ "
+SRC_URI[sha256sum] = "1c57e78fbf2970f0cc9c56ea87a231e6d83d825e55b9e31e2c88b91b0ea03c8c"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/ufw"
+
+inherit setuptools3_legacy features_check systemd update-rc.d
+
+RDEPENDS:${PN} = " \
+ iptables \
+ python3 \
+ python3-modules \
+ "
+
+RRECOMMENDS:${PN} = " \
+ kernel-module-ipv6 \
+ kernel-module-nf-conntrack-ipv6 \
+ kernel-module-nf-log-common \
+ kernel-module-nf-log-ipv4 \
+ kernel-module-nf-log-ipv6 \
+ kernel-module-nf-addrtype \
+ kernel-module-nf-limit \
+ kernel-module-nf-log \
+ kernel-module-nf-recent \
+"
+
+
+do_configure:prepend() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
+ sed -i -e 's|/lib|${nonarch_base_libdir}|' ${S}/setup.py
+ fi
+}
+
+do_install:append() {
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${S}/doc/systemd.example ${D}${systemd_unitdir}/system/ufw.service
+
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 0755 ${S}/doc/initscript.example ${D}${sysconfdir}/init.d/ufw
+}
+
+SYSTEMD_SERVICE:${PN} = "ufw.service"
+
+INITSCRIPT_NAME = "ufw"
+INITSCRIPT_PARAMS = "defaults"
+
+# Certain items are explicitly put under /lib, not base_libdir when installed.
+#
+FILES:${PN} += " \
+ ${sbindir}/* \
+ ${datadir}/ufw/* \
+ ${nonarch_base_libdir}/ufw/* \
+ ${sysconfdir}/ufw/* \
+ ${sysconfdir}/default/ufw \
+"
+
+REQUIRED_DISTRO_FEATURES = "ipv6"
+
+SETUPTOOLS_BUILD_ARGS:append = " --iptables-dir /usr/sbin"
+SETUPTOOLS_INSTALL_ARGS:append = " --iptables-dir /usr/sbin"
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 795c891b19..b478692e39 100644
--- a/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
+++ b/meta-networking/recipes-connectivity/vlan/vlan_1.9.bb
@@ -1,10 +1,10 @@
SUMMARY = "VLAN provides vconfig utility"
HOMEPAGE = "http://www.candelatech.com/~greear/vlan.html"
SECTION = "misc"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://vconfig.c;beginline=1;endline=19;md5=094ca47de36c20c598b15b32c270ce0a"
-SRC_URI = "http://${BPN}.sourcearchive.com/downloads/${PV}-3ubuntu9/${BPN}_${PV}.orig.tar.gz \
+SRC_URI = "https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/vlan/1.9-3ubuntu10.6/${BPN}_${PV}.orig.tar.gz \
file://no-HOME-includes.patch \
file://0001-Add-printf-format-and-silence-format-security-warnin.patch \
"
@@ -22,13 +22,13 @@ inherit update-alternatives
EXTRA_OEMAKE = "-e MAKEFLAGS="
# comment out MakeInclude in Makefile which sets build environment
-do_configure_append () {
+do_configure:append () {
sed -i 's/^ include/#^include/' ${S}/Makefile
}
# 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 () {
@@ -37,5 +37,5 @@ do_install () {
}
ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "vconfig"
+ALTERNATIVE:${PN} = "vconfig"
ALTERNATIVE_LINK_NAME[vconfig] = "${base_sbindir}/vconfig"
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 ea21799853..adc2a72eeb 100644
--- a/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
+++ b/meta-networking/recipes-connectivity/vpnc/vpnc_0.5.3.bb
@@ -2,14 +2,14 @@ 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+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=173b74cb8ac640a9992c03f3bce22a33"
DEPENDS += "libgcrypt"
PV .= "r550-2jnpr1"
SRCREV = "b1243d29e0c00312ead038b04a2cf5e2fa31d740"
-SRC_URI = "git://github.com/ndpgroup/vpnc \
+SRC_URI = "git://github.com/ndpgroup/vpnc;branch=master;protocol=https \
file://long-help \
file://default.conf \
file://0001-search-for-log-help-in-build-dir.patch \
@@ -28,13 +28,15 @@ PACKAGECONFIG ?= "gnutls"
PACKAGECONFIG[gnutls] = ",,gnutls"
PACKAGECONFIG[openssl] = ",,openssl"
+PACKAGES =+ "${PN}-script"
+
S = "${WORKDIR}/git"
inherit perlnative pkgconfig
#EXTRA_OEMAKE = "-e MAKEFLAGS="
-do_configure_append () {
+do_configure:append () {
# Make sure we use our nativeperl wrapper
sed -i "1s:#!.*:#!/usr/bin/env nativeperl:" ${S}/*.pl
cp ${WORKDIR}/long-help ${S}
@@ -54,6 +56,8 @@ vpnc_sysroot_preprocess () {
install -m 755 ${D}${sysconfdir}/vpnc/vpnc-script ${SYSROOT_DESTDIR}${sysconfdir}/vpnc
}
-CONFFILES_${PN} = "${sysconfdir}/vpnc/default.conf"
-RDEPENDS_${PN} = "perl-module-io-file"
-RRECOMMENDS_${PN} = "kernel-module-tun"
+FILES:${PN}-script = "${sysconfdir}/vpnc/vpnc-script"
+
+CONFFILES:${PN} = "${sysconfdir}/vpnc/default.conf"
+RDEPENDS:${PN} = "perl-module-io-file ${PN}-script"
+RRECOMMENDS:${PN} = "kernel-module-tun"
diff --git a/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb b/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb
deleted file mode 100644
index 64e9401e7a..0000000000
--- a/meta-networking/recipes-connectivity/wireless-regdb/wireless-regdb_2016.06.10.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Wireless Central Regulatory Domain Database"
-HOMEPAGE = "http://wireless.kernel.org/en/developers/Regulatory/CRDA"
-SECTION = "net"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=07c4f6dea3845b02a18dc00c8c87699c"
-
-SRC_URI = "https://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "d282cce92b6e692e8673e2bd97adf33b"
-SRC_URI[sha256sum] = "cfedf1c3521b3c8f32602f25ed796e96e687c3441a00e7c050fedf7fd4f1b8b7"
-
-inherit bin_package
-
-do_install() {
- install -d -m0755 ${D}${libdir}/crda
- install -d -m0755 ${D}${sysconfdir}/wireless-regdb/pubkeys
- install -m 0644 regulatory.bin ${D}${libdir}/crda/regulatory.bin
- install -m 0644 sforshee.key.pub.pem ${D}${sysconfdir}/wireless-regdb/pubkeys/sforshee.key.pub.pem
-}
-
-RSUGGESTS_${PN} = "crda"
diff --git a/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch b/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch
deleted file mode 100644
index f304d933da..0000000000
--- a/meta-networking/recipes-connectivity/wolfssl/files/0001-fix-no-rule-to-make-cyassl-options.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From fb490136cf8f2456cfe13b0b4f796e6c155e75dc Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Wed, 30 Aug 2017 03:02:32 -0400
-Subject: [PATCH] fix no rule to make cyassl/options.h
-
-Upstream-Status: Pending
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index 395d75d..d4a3880 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3684,6 +3684,7 @@ AC_CONFIG_FILES([wolfssl/options.h])
- #fi
- AC_CONFIG_FILES([support/wolfssl.pc])
- AC_CONFIG_FILES([rpm/spec])
-+AC_CONFIG_FILES([cyassl/options.h])
-
- AX_CREATE_GENERIC_CONFIG
- AX_AM_JOBSERVER([yes])
---
-2.8.1
-
diff --git a/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb b/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb
deleted file mode 100644
index dc9094d8bf..0000000000
--- a/meta-networking/recipes-connectivity/wolfssl/wolfssl_3.14.4.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "wolfSSL Lightweight, Embedded SSL 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 1.2 client and server."
-HOMEPAGE = "http://www.wolfssl.com/yaSSL/Products-wolfssl.html"
-BUGTRACKER = "http://github.com/wolfssl/wolfssl/issues"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-PROVIDES += "cyassl"
-RPROVIDES_${PN} = "cyassl"
-
-S = "${WORKDIR}/git"
-SRCREV = "1196a3b64d9fabffc8273b87f6f69ac0e75d2eb7"
-SRC_URI = "git://github.com/wolfSSL/wolfssl.git;protocol=https; \
- file://0001-fix-no-rule-to-make-cyassl-options.h.patch \
- "
-
-inherit autotools
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.4.bb b/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.4.bb
new file mode 100644
index 0000000000..9ac859f306
--- /dev/null
+++ b/meta-networking/recipes-connectivity/wolfssl/wolfssl_5.5.4.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 = "4fbd4fd36a21efd9d1a7e17aba390e91c78693b1"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-networking/recipes-core/images/meta-networking-image-base.bb b/meta-networking/recipes-core/images/meta-networking-image-base.bb
new file mode 100644
index 0000000000..eaf1409537
--- /dev/null
+++ b/meta-networking/recipes-core/images/meta-networking-image-base.bb
@@ -0,0 +1,7 @@
+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.bb b/meta-networking/recipes-core/images/meta-networking-image.bb
new file mode 100644
index 0000000000..f4c7401b35
--- /dev/null
+++ b/meta-networking/recipes-core/images/meta-networking-image.bb
@@ -0,0 +1,3 @@
+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
new file mode 100644
index 0000000000..7be8261164
--- /dev/null
+++ b/meta-networking/recipes-core/packagegroups/packagegroup-meta-networking.bb
@@ -0,0 +1,269 @@
+SUMMARY = "Meta-networking packagegroups"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+ packagegroup-meta-networking \
+ packagegroup-meta-networking-connectivity \
+ packagegroup-meta-networking-daemons \
+ packagegroup-meta-networking-devtools \
+ packagegroup-meta-networking-extended \
+ packagegroup-meta-networking-filter \
+ packagegroup-meta-networking-irc \
+ packagegroup-meta-networking-kernel \
+ packagegroup-meta-networking-netkit \
+ packagegroup-meta-networking-protocols \
+ packagegroup-meta-networking-support \
+'
+
+RDEPENDS:packagegroup-meta-networking = "\
+ packagegroup-meta-networking-connectivity \
+ packagegroup-meta-networking-daemons \
+ packagegroup-meta-networking-devtools \
+ packagegroup-meta-networking-extended \
+ packagegroup-meta-networking-filter \
+ packagegroup-meta-networking-irc \
+ packagegroup-meta-networking-kernel \
+ packagegroup-meta-networking-netkit \
+ packagegroup-meta-networking-protocols \
+ packagegroup-meta-networking-support \
+ "
+
+RDEPENDS:packagegroup-meta-networking-connectivity = "\
+ daq \
+ adcli \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth x11", "blueman", "", d)} \
+ cannelloni \
+ civetweb \
+ libdnet \
+ dibbler-client \
+ dibbler-relay \
+ dibbler-server \
+ relayd \
+ lftp \
+ sethdlc \
+ snort \
+ ufw \
+ vlan \
+ vpnc \
+ ez-ipupdate \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python", "firewalld", "", d)} \
+ freeradius \
+ mbedtls \
+ miniupnpd \
+ mosquitto \
+ nanomsg \
+ nng \
+ networkmanager-openvpn \
+ networkmanager \
+ openconnect \
+ python3-networkmanager \
+ rdate \
+ rdist \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "samba", "", d)} \
+ wolfssl \
+ autossh \
+ bearssl \
+ dhcp-relay \
+"
+
+RDEPENDS:packagegroup-meta-networking-connectivity:remove:libc-musl = "rdist"
+
+RDEPENDS:packagegroup-meta-networking-daemons = "\
+ atftp \
+ autofs \
+ cyrus-sasl \
+ ippool \
+ iscsi-initiator-utils \
+ lldpd \
+ ncftp \
+ igmpproxy \
+ postfix \
+ proftpd \
+ ptpd \
+ pure-ftpd \
+ radvd \
+ squid \
+ tftp-hpa \
+ tftp-hpa-server \
+ vblade \
+ vsftpd \
+ keepalived \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "networkd-dispatcher", "", d)} \
+ openhpi \
+ opensaf \
+"
+
+RDEPENDS:packagegroup-meta-networking-daemons:remove:libc-musl = "opensaf"
+
+RDEPENDS:packagegroup-meta-networking-devtools = "\
+ python3-scapy \
+"
+
+RDEPENDS:packagegroup-meta-networking-extended = "\
+ corosync \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "dlm", "", d)} \
+ kronosnet \
+"
+
+RDEPENDS:packagegroup-meta-networking-filter = "\
+ libnftnl \
+ conntrack-tools \
+ ebtables \
+ ipset \
+ libnetfilter-acct \
+ libnetfilter-conntrack \
+ libnetfilter-cthelper \
+ libnetfilter-cttimeout \
+ libnetfilter-log \
+ libnetfilter-queue \
+ libnfnetlink \
+ arno-iptables-firewall \
+ nfacct \
+ nftables \
+"
+
+RDEPENDS:packagegroup-meta-networking-irc = "\
+ weechat \
+ znc \
+"
+
+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 \
+ radiusclient-ng \
+ tsocks \
+ openlldp \
+ zeroconf \
+ pptp-linux \
+ rp-pppoe \
+ usrsctp \
+ xl2tpd \
+"
+
+RDEPENDS:packagegroup-meta-networking-support = "\
+ aoetools \
+ arptables \
+ bmon \
+ bridge-utils \
+ celt051 \
+ cim-schema-docs \
+ cim-schema-final \
+ cifs-utils \
+ dnsmasq \
+ curlpp \
+ drbd-utils \
+ dovecot \
+ fping \
+ esmtp \
+ fetchmail \
+ geoip-perl \
+ geoip \
+ geoipupdate \
+ fwknop \
+ htpdate \
+ http-parser \
+ iftop \
+ ifmetric \
+ ipvsadm \
+ libesmtp \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "libldb", "", d)} \
+ libmemcached \
+ libtalloc \
+ ipcalc \
+ libtevent \
+ linux-atm \
+ lksctp-tools \
+ mctp \
+ memcached \
+ ifenslave \
+ netcat \
+ netcat-openbsd \
+ libtdb \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "non-commercial", "netperf", "", d)} \
+ yp-tools \
+ ypbind-mt \
+ yp-tools \
+ mtr \
+ netsniff-ng \
+ ntp sntp ntpdc ntpq ntp-tickadj ntp-utils \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "ntpsec", "", d)} \
+ nbd-client \
+ nbd-server \
+ nbd-trplay \
+ nbd-trdump \
+ openvpn \
+ macchanger \
+ nbdkit \
+ ssmping \
+ libmaxminddb \
+ libowfat \
+ ncp \
+ strongswan \
+ ndisc6 \
+ tcpdump \
+ tcpslice \
+ netcf \
+ tnftp \
+ traceroute \
+ tunctl \
+ wireshark \
+ ndpi \
+ ntopng \
+ nuttcp \
+ open-isns \
+ openipmi \
+ phytool \
+ pimd \
+ ruli \
+ smcroute \
+ ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "spice-protocol spice", "", d)} \
+ usbredir \
+ ssmtp \
+ stunnel \
+ rdma-core \
+ tcpreplay \
+ tinyproxy \
+ uftp \
+ unbound \
+ vnstat \
+ wpan-tools \
+ ettercap \
+"
+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"
+# Empty packages, only devel headers and libs
+# nngpp
+# Use ntp and not chrony or ntimed
diff --git a/meta-networking/recipes-daemons/atftp/atftp/0001-argz.h-fix-musl-compile-add-missing-defines.patch b/meta-networking/recipes-daemons/atftp/atftp/0001-argz.h-fix-musl-compile-add-missing-defines.patch
deleted file mode 100644
index cfa8a7325f..0000000000
--- a/meta-networking/recipes-daemons/atftp/atftp/0001-argz.h-fix-musl-compile-add-missing-defines.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 543e67919f5cacf309ac88ab091331e41af4224b Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Thu, 16 Apr 2015 22:41:57 +0200
-Subject: [PATCH] argz.h: fix musl compile (add missing defines)
-
-Upstream-Status: Pending
-
-Add __THROW, __BEGIN_DECLS, __END_DECLS and __attribute_pure__ defines.
-
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
-Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
----
- argz.h | 16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/argz.h b/argz.h
-index 582be55..bdf9f62 100644
---- a/argz.h
-+++ b/argz.h
-@@ -48,6 +48,22 @@
- # define __const const
- #endif
-
-+#ifndef __THROW
-+# define __THROW
-+#endif
-+
-+#ifndef __BEGIN_DECLS
-+# define __BEGIN_DECLS
-+#endif
-+
-+#ifndef __END_DECLS
-+# define __END_DECLS
-+#endif
-+
-+#ifndef __attribute_pure__
-+# define __attribute_pure__
-+#endif
-+
- #ifndef __error_t_defined
- typedef int error_t;
- #endif
---
-2.1.4
-
diff --git a/meta-networking/recipes-daemons/atftp/atftp/0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch b/meta-networking/recipes-daemons/atftp/atftp/0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch
deleted file mode 100644
index 093054ce80..0000000000
--- a/meta-networking/recipes-daemons/atftp/atftp/0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 77e399899d9d7297d23c321811b628febdf0fd92 Mon Sep 17 00:00:00 2001
-From: Peter Seiderer <ps.report@gmx.net>
-Date: Thu, 16 Apr 2015 22:43:49 +0200
-Subject: [PATCH] tftp.h/tftpd.h: fix musl compile (missing include)
-
-Upstream-Status: Pending
-
-Add sys/types.h include for u_char typedef.
-
-Signed-off-by: Peter Seiderer <ps.report@gmx.net>
-Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
----
- tftp.h | 1 +
- tftpd.h | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/tftp.h b/tftp.h
-index 12bd6aa..32a3f63 100644
---- a/tftp.h
-+++ b/tftp.h
-@@ -19,6 +19,7 @@
-
- #include <sys/time.h>
- #include <sys/times.h>
-+#include <sys/types.h>
- #include "tftp_def.h"
- #include "config.h"
-
-diff --git a/tftpd.h b/tftpd.h
-index 945065e..60d3a49 100644
---- a/tftpd.h
-+++ b/tftpd.h
-@@ -20,6 +20,7 @@
- #include <pthread.h>
- #include <arpa/tftp.h>
- #include <arpa/inet.h>
-+#include <sys/types.h>
- #include "tftp_io.h"
-
- /*
---
-2.1.4
-
diff --git a/meta-networking/recipes-daemons/atftp/files/atftpd.init b/meta-networking/recipes-daemons/atftp/atftp/atftpd.init
index 161d97aca7..161d97aca7 100644
--- a/meta-networking/recipes-daemons/atftp/files/atftpd.init
+++ b/meta-networking/recipes-daemons/atftp/atftp/atftpd.init
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/atftp/atftp_git.bb b/meta-networking/recipes-daemons/atftp/atftp_git.bb
deleted file mode 100644
index a9949d59ae..0000000000
--- a/meta-networking/recipes-daemons/atftp/atftp_git.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-SUMMARY = "Advanced TFTP server and client"
-SECTION = "net"
-HOMEPAGE = "http://packages.debian.org/atftp"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f"
-PV = "0.7.1+git${SRCPV}"
-PR = "r3"
-
-SRCREV = "be3291a18c069ae23a124ffdc56d64a5ff0bbec7"
-
-SRC_URI = "git://git.code.sf.net/p/atftp/code \
- file://atftpd-0.7_circumvent_tftp_size_restrictions.patch \
- file://atftpd-0.7_unprotected_assignments_crash.patch \
- file://atftpd.init \
- file://atftpd.service \
- file://atftp-0.7-sorcerers_apprentice.patch \
-"
-SRC_URI_append_libc-musl = " file://0001-argz.h-fix-musl-compile-add-missing-defines.patch \
- file://0002-tftp.h-tftpd.h-fix-musl-compile-missing-include.patch \
- "
-
-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/files/atftp-0.7-sorcerers_apprentice.patch b/meta-networking/recipes-daemons/atftp/files/atftp-0.7-sorcerers_apprentice.patch
deleted file mode 100644
index fc64291cd3..0000000000
--- a/meta-networking/recipes-daemons/atftp/files/atftp-0.7-sorcerers_apprentice.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-atftp exhibits the well known "Sorcerer's Apprentice Syndrome"(SAS) problem.
-According to RFC 1350, the fix to SAS is quite simple: further copies of the
-acknowledgment for a particular data block would be ignored.
-
-Patch originally from OpenSUSE:
-https://build.opensuse.org/package/view_file?file=atftp-0.7-sorcerers_apprentice.patch&package=atftp.539&project=openSUSE%3A12.1%3AUpdate&rev=84569792975e00573d7df597d2a6e895
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
-Index: atftp-0.7/tftp_file.c
-===================================================================
---- atftp-0.7.orig/tftp_file.c 2011-11-22 15:12:53.792744083 +0100
-+++ atftp-0.7/tftp_file.c 2011-11-22 15:13:51.706421893 +0100
-@@ -605,6 +605,7 @@
- int timeout_state = state; /* what state should we go on when timeout */
- int result;
- long block_number = 0;
-+ long last_requested_block = -1;
- long last_block = -1;
- int data_size; /* size of data received */
- int sockfd = data->sockfd; /* just to simplify calls */
-@@ -765,6 +766,17 @@
- connected = 1;
- }
- block_number = ntohs(tftphdr->th_block);
-+
-+ if (last_requested_block >= block_number)
-+ {
-+ if (data->trace)
-+ fprintf(stderr, "received duplicated ACK <block: %ld >= %ld>\n",
-+ last_requested_block, block_number);
-+ break;
-+ }
-+ else
-+ last_requested_block = block_number;
-+
- if (data->trace)
- fprintf(stderr, "received ACK <block: %ld>\n",
- block_number);
-Index: atftp-0.7/tftpd_file.c
-===================================================================
---- atftp-0.7.orig/tftpd_file.c 2011-11-22 15:12:53.793744112 +0100
-+++ atftp-0.7/tftpd_file.c 2011-11-22 15:15:04.617534260 +0100
-@@ -403,6 +403,7 @@
- int timeout_state = state;
- int result;
- long block_number = 0;
-+ long last_requested_block = -1;
- long last_block = -1;
- int block_loops = 0;
- int data_size;
-@@ -859,6 +860,32 @@
- {
- logger(LOG_DEBUG, "received ACK <block: %d>", block_number);
- }
-+
-+ /* check whether the block request isn't already fulfilled */
-+
-+ /* multicast, block numbers could contain gaps */
-+ if (multicast) {
-+ if (last_requested_block >= block_number)
-+ {
-+ if (data->trace)
-+ logger(LOG_DEBUG, "received duplicated ACK <block: %d >= %d>", last_requested_block, block_number);
-+ break;
-+ }
-+ else
-+ last_requested_block = block_number;
-+ /* unicast, blocks should be requested one after another */
-+ } else {
-+ if (last_requested_block + 1 != block_number && last_requested_block != -1)
-+ {
-+ if (data->trace)
-+ logger(LOG_DEBUG, "received out of order ACK <block: %d != %d>", last_requested_block + 1, block_number);
-+ break;
-+ }
-+ else
-+ last_requested_block = block_number;
-+ }
-+
-+
- if (ntohs(tftphdr->th_block) == 65535)
- {
- block_loops++;
-@@ -958,6 +985,8 @@
- /* nedd to send an oack to that client */
- state = S_SEND_OACK;
- fseek(fp, 0, SEEK_SET);
-+ /* reset the last block received counter */
-+ last_requested_block = -1;
- }
- else
- {
diff --git a/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch b/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch
deleted file mode 100644
index 280b570b22..0000000000
--- a/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_circumvent_tftp_size_restrictions.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-Fate #303031: Circumvent TFTP size restrictions in atftpd
-The size of a single image file that can be transferred with TFTP is limited to
-2^(2*8) *BLOCKSIZE (as per RFC 1350 there are only two bytes for the block
-counter). This is problematic for one of our customers who needs to transfer
-100+ MB Windows images using a TFTP client (NT bootloader) which has a
-hardwared BLOCKSIZE setting of 1432).
-
-block rollover
-http://www.compuphase.com/tftp.htm
-
-Patch originally from OpenSUSE:
-https://build.opensuse.org/package/show?package=atftp&project=openSUSE%3A12.2
-
-Upstream-Status: Pending
-
-Index: git/tftp_def.h
-===================================================================
---- git.orig/tftp_def.h 2012-11-19 16:28:50.221027144 -0800
-+++ git/tftp_def.h 2012-11-20 17:40:54.391206979 -0800
-@@ -32,6 +32,7 @@
- #define TIMEOUT 5 /* Client timeout */
- #define S_TIMEOUT 5 /* Server timout. */
- #define NB_OF_RETRY 5
-+#define MAXBLOCKS 1000000 /* maximum number of blocks in a download */
-
- /* definition to use tftp_options structure */
- #define OPT_FILENAME 0
-Index: git/tftp_file.c
-===================================================================
---- git.orig/tftp_file.c 2012-11-19 16:28:50.221027144 -0800
-+++ git/tftp_file.c 2012-11-19 16:28:51.201027167 -0800
-@@ -622,8 +622,8 @@
- int state = S_SEND_REQ; /* current state in the state machine */
- int timeout_state = state; /* what state should we go on when timeout */
- int result;
-- int block_number = 0;
-- int last_block = -1;
-+ long block_number = 0;
-+ long last_block = -1;
- int data_size; /* size of data received */
- int sockfd = data->sockfd; /* just to simplify calls */
- struct sockaddr_storage sa; /* a copy of data.sa_peer */
-@@ -637,8 +637,8 @@
- int convert = 0; /* if true, do netascii convertion */
- char string[MAXLEN];
-
-- int prev_block_number = 0; /* needed to support netascii convertion */
-- int prev_file_pos = 0;
-+ long prev_block_number = 0; /* needed to support netascii convertion */
-+ long prev_file_pos = 0;
- int temp = 0;
-
- data->file_size = 0;
-@@ -745,7 +745,7 @@
- data_size, data->data_buffer);
- data->file_size += data_size;
- if (data->trace)
-- fprintf(stderr, "sent DATA <block: %d, size: %d>\n",
-+ fprintf(stderr, "sent DATA <block: %ld, size: %d>\n",
- block_number + 1, data_size - 4);
- state = S_WAIT_PACKET;
- break;
-@@ -785,7 +785,7 @@
- }
- block_number = ntohs(tftphdr->th_block);
- if (data->trace)
-- fprintf(stderr, "received ACK <block: %d>\n",
-+ fprintf(stderr, "received ACK <block: %ld>\n",
- block_number);
- if ((last_block != -1) && (block_number > last_block))
- {
-Index: git/tftp_io.c
-===================================================================
---- git.orig/tftp_io.c 2012-11-19 16:28:50.221027144 -0800
-+++ git/tftp_io.c 2012-11-19 16:28:51.201027167 -0800
-@@ -350,8 +350,8 @@
- /*
- * Read from file and do netascii conversion if needed
- */
--int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, int block_number,
-- int convert, int *prev_block_number, int *prev_file_pos, int *temp)
-+int tftp_file_read(FILE *fp, char *data_buffer, int data_buffer_size, long block_number,
-+ int convert, long *prev_block_number, long *prev_file_pos, int *temp)
- {
- int i;
- int c;
-Index: git/tftp_io.h
-===================================================================
---- git.orig/tftp_io.h 2012-11-19 16:28:50.221027144 -0800
-+++ git/tftp_io.h 2012-11-19 16:28:51.201027167 -0800
-@@ -52,8 +52,8 @@
- int tftp_get_packet(int sock1, int sock2, int *sock, struct sockaddr_storage *sa,
- struct sockaddr_storage *from, struct sockaddr_storage *to,
- int timeout, int *size, char *data);
--int tftp_file_read(FILE *fp, char *buffer, int buffer_size, int block_number, int convert,
-- int *prev_block_number, int *prev_file_pos, int *temp);
-+int tftp_file_read(FILE *fp, char *buffer, int buffer_size, long block_number, int convert,
-+ long *prev_block_number, long *prev_file_pos, int *temp);
- int tftp_file_write(FILE *fp, char *data_buffer, int data_buffer_size, int block_number,
- int data_size, int convert, int *prev_block_number, int *temp);
- #endif
-Index: git/tftpd_file.c
-===================================================================
---- git.orig/tftpd_file.c 2012-11-19 16:28:50.225027144 -0800
-+++ git/tftpd_file.c 2012-11-19 16:28:51.201027167 -0800
-@@ -407,8 +407,9 @@
- int state = S_BEGIN;
- int timeout_state = state;
- int result;
-- int block_number = 0;
-- int last_block = -1;
-+ long block_number = 0;
-+ long last_block = -1;
-+ int block_loops = 0;
- int data_size;
- struct sockaddr_storage *sa = &data->client_info->client;
- struct sockaddr_storage from;
-@@ -431,8 +432,8 @@
- struct client_info *client_old = NULL;
- struct tftp_opt options[OPT_NUMBER];
-
-- int prev_block_number = 0; /* needed to support netascii convertion */
-- int prev_file_pos = 0;
-+ long prev_block_number = 0; /* needed to support netascii convertion */
-+ long prev_file_pos = 0;
- int temp = 0;
-
- /* look for mode option */
-@@ -565,11 +566,12 @@
- logger(LOG_INFO, "blksize option -> %d", result);
- }
-
-- /* Verify that the file can be sent in 2^16 block of BLKSIZE octets */
-- if ((file_stat.st_size / (data->data_buffer_size - 4)) > 65535)
-+ /* Verify that the file can be sent in MAXBLOCKS blocks of BLKSIZE octets */
-+ if ((file_stat.st_size / (data->data_buffer_size - 4)) > MAXBLOCKS)
- {
- tftp_send_error(sockfd, sa, EUNDEF, data->data_buffer, data->data_buffer_size);
-- logger(LOG_NOTICE, "Requested file to big, increase BLKSIZE");
-+ logger(LOG_NOTICE, "Requested file too big, increase BLKSIZE");
-+ logger(LOG_NOTICE, "Only %d blocks of %d bytes can be served.", MAXBLOCKS, data->data_buffer_size);
- if (data->trace)
- logger(LOG_DEBUG, "sent ERROR <code: %d, msg: %s>", EUNDEF,
- tftp_errmsg[EUNDEF]);
-@@ -880,10 +882,15 @@
- }
- /* The ACK is from the current client */
- number_of_timeout = 0;
-- block_number = ntohs(tftphdr->th_block);
-+ block_number = (block_loops * 65536) + ntohs(tftphdr->th_block);
- if (data->trace)
-- logger(LOG_DEBUG, "received ACK <block: %d>",
-- block_number);
-+ {
-+ logger(LOG_DEBUG, "received ACK <block: %d>", block_number);
-+ }
-+ if (ntohs(tftphdr->th_block) == 65535)
-+ {
-+ block_loops++;
-+ };
- if ((last_block != -1) && (block_number > last_block))
- {
- state = S_END;
diff --git a/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch b/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch
deleted file mode 100644
index 28fba6cf50..0000000000
--- a/meta-networking/recipes-daemons/atftp/files/atftpd-0.7_unprotected_assignments_crash.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-Avoid assigning thread data outside of mutex lock
-
-Patch originally from OpenSUSE:
-https://build.opensuse.org/package/show?package=atftp&project=openSUSE%3A12.2
-
-Upstream-Status: Pending
-
-Index: git/tftpd_list.c
-===================================================================
---- git.orig/tftpd_list.c 2012-10-24 21:48:47.000000000 -0700
-+++ git/tftpd_list.c 2012-10-24 21:52:04.266205076 -0700
-@@ -49,11 +49,11 @@
- */
- int tftpd_list_add(struct thread_data *new)
- {
-- struct thread_data *current = thread_data;
-+ struct thread_data *current;
- int ret;
-
- pthread_mutex_lock(&thread_list_mutex);
--
-+ current = thread_data;
- number_of_thread++;
-
- ret = number_of_thread;
-@@ -81,11 +81,13 @@
- */
- int tftpd_list_remove(struct thread_data *old)
- {
-- struct thread_data *current = thread_data;
-+ struct thread_data *current;
- int ret;
-
- pthread_mutex_lock(&thread_list_mutex);
-
-+ current = thread_data;
-+
- number_of_thread--;
- ret = number_of_thread;
-
-@@ -137,23 +139,26 @@
- struct thread_data *data,
- struct client_info *client)
- {
-- struct thread_data *current = thread_data; /* head of the list */
-- struct tftp_opt *tftp_options = data->tftp_options;
-+ struct thread_data *current; /* head of the list */
-+ struct tftp_opt *tftp_options;
- struct client_info *tmp;
- char options[MAXLEN];
- char string[MAXLEN];
- char *index;
- int len;
-
-+ /* lock the whole list before walking it */
-+ pthread_mutex_lock(&thread_list_mutex);
-+
- *thread = NULL;
-
-+ current = thread_data;
-+ tftp_options = data->tftp_options;
-+
- opt_request_to_string(tftp_options, options, MAXLEN);
- index = strstr(options, "multicast");
- len = (int)index - (int)options;
-
-- /* lock the whole list before walking it */
-- pthread_mutex_lock(&thread_list_mutex);
--
- while (current)
- {
- if (current != data)
-@@ -214,9 +219,10 @@
- void tftpd_clientlist_remove(struct thread_data *thread,
- struct client_info *client)
- {
-- struct client_info *tmp = thread->client_info;
-+ struct client_info *tmp;
-
- pthread_mutex_lock(&thread->client_mutex);
-+ tmp = thread->client_info;
- while ((tmp->next != client) && (tmp->next != NULL))
- tmp = tmp->next;
- if (tmp->next == NULL)
-@@ -231,9 +237,11 @@
- void tftpd_clientlist_free(struct thread_data *thread)
- {
- struct client_info *tmp;
-- struct client_info *head = thread->client_info;
-+ struct client_info *head;
-
- pthread_mutex_lock(&thread->client_mutex);
-+ head = thread->client_info;
-+
- while (head)
- {
- tmp = head;
-@@ -250,9 +258,10 @@
- struct client_info *client,
- struct sockaddr_storage *sock)
- {
-- struct client_info *head = thread->client_info;
-+ struct client_info *head;
-
- pthread_mutex_lock(&thread->client_mutex);
-+ head = thread->client_info;
-
- if (client)
- {
-@@ -334,10 +343,10 @@
-
- void tftpd_list_kill_threads(void)
- {
-- struct thread_data *current = thread_data; /* head of list */
-+ struct thread_data *current; /* head of list */
-
- pthread_mutex_lock(&thread_list_mutex);
--
-+ current = thread_data;
-
- while (current != NULL)
- {
-Index: git/tftpd_mcast.c
-===================================================================
---- git.orig/tftpd_mcast.c 2012-10-24 21:48:47.000000000 -0700
-+++ git/tftpd_mcast.c 2012-10-24 21:49:11.570201582 -0700
-@@ -51,9 +51,11 @@
- */
- int tftpd_mcast_get_tid(char **addr, short *port)
- {
-- struct tid *current = tid_list;
-+ struct tid *current;
-
- pthread_mutex_lock(&mcast_tid_list);
-+ current = tid_list;
-+
- /* walk the list for a free tid */
- while (current != NULL)
- {
-@@ -74,9 +76,11 @@
-
- int tftpd_mcast_free_tid(char *addr, short port)
- {
-- struct tid *current = tid_list;
-+ struct tid *current;
-
- pthread_mutex_lock(&mcast_tid_list);
-+ current = tid_list;
-+
- while (current != NULL)
- {
- if ((current->used == 1) && (current->port == port) &&
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch
new file mode 100644
index 0000000000..2a583466e3
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-Bug-fix-for-pid_t-not-found-on-musl.patch
@@ -0,0 +1,30 @@
+From d0d5ac317dab11610a5fc91ca3e7f5ad72ce2236 Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+Date: Tue, 29 Oct 2019 13:19:37 +0800
+Subject: [PATCH] Bug fix for pid_t not found on musl.
+
+When compiling version 5.1.6 on musl, the following error occurs:
+log.h:49:8: error: unknown type name 'pid_t'
+
+Upstream-Status: Pending
+
+Signed-off-by: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+---
+ lib/defaults.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/defaults.c b/lib/defaults.c
+index a6ea116..b3ecfa5 100644
+--- a/lib/defaults.c
++++ b/lib/defaults.c
+@@ -21,6 +21,7 @@
+ #include <string.h>
+ #include <sys/utsname.h>
+ #include <sys/stat.h>
++#include <sys/types.h>
+ #include <stdarg.h>
+
+ #include "config.h"
+--
+2.20.1
+
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-Define-__SWORD_TYPE-if-undefined.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-if-undefined.patch
new file mode 100644
index 0000000000..f16ae5277e
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-Define-__SWORD_TYPE-if-undefined.patch
@@ -0,0 +1,115 @@
+From 9fe90ab1e333b2e2bed370ff13ba552eb54c3aaf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Jul 2021 09:56:28 -0700
+Subject: [PATCH] Define __SWORD_TYPE if undefined
+
+These fixes are inspired when building autofs on musl
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ daemon/automount.c | 20 ++++++++++++++------
+ include/hash.h | 5 +++++
+ lib/log.c | 6 +++++-
+ 3 files changed, 24 insertions(+), 7 deletions(-)
+
+--- a/daemon/automount.c
++++ b/daemon/automount.c
+@@ -1,7 +1,7 @@
+ /* ----------------------------------------------------------------------- *
+ *
+ * automount.c - Linux automounter daemon
+- *
++ *
+ * Copyright 1997 Transmeta Corporation - All Rights Reserved
+ * Copyright 1999-2000 Jeremy Fitzhardinge <jeremy@goop.org>
+ * Copyright 2001-2005 Ian Kent <raven@themaw.net>
+@@ -11,7 +11,7 @@
+ * the Free Software Foundation, Inc., 675 Mass Ave, Cambridge MA 02139,
+ * USA; 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
+@@ -40,6 +40,14 @@
+ #include <systemd/sd-daemon.h>
+ #endif
+
++#ifndef __SWORD_TYPE
++# if __WORDSIZE == 32 /* System word size */
++# define __SWORD_TYPE int
++# else /* __WORDSIZE == 64 */
++# define __SWORD_TYPE long int
++# endif
++#endif
++
+ #include "automount.h"
+ #if defined(LIBXML2_WORKAROUND) || defined(TIRPC_WORKAROUND)
+ #include <dlfcn.h>
+@@ -282,7 +290,7 @@ int rmdir_path(struct autofs_point *ap,
+ dev, buf, st.st_dev);
+ return -1;
+ }
+-
++
+ /*
+ * Last element of path may be a symbolic link; all others
+ * are directories (and the last directory element is
+@@ -455,7 +463,7 @@ int count_mounts(struct autofs_point *ap
+
+ counter.count = 0;
+ counter.dev = dev;
+-
++
+ if (walk_tree(path, counter_fn, 1, ap, &counter) == -1)
+ return -1;
+
+@@ -811,7 +819,7 @@ static char *automount_path_to_fifo(unsi
+ /*
+ * An automount path can be made up of subdirectories. So, to
+ * create the fifo name, we will just replace instances of '/' with
+- * '-'.
++ * '-'.
+ */
+ p = fifo_name + strlen(fifodir);
+ while (*p != '\0') {
+@@ -1640,7 +1648,7 @@ static void return_start_status(void *ar
+ sc->done = 1;
+
+ /*
+- * Startup condition mutex must be locked during
++ * Startup condition mutex must be locked during
+ * the startup process.
+ */
+ status = pthread_cond_signal(&sc->cond);
+--- a/include/hash.h
++++ b/include/hash.h
+@@ -5,6 +5,11 @@
+
+ #include <sys/types.h>
+ #include <stdint.h>
++#include <linux/stddef.h>
++
++#ifndef __GLIBC__
++#include <sys/reg.h>
++#endif
+
+ /*
+ * The "GOLDEN_RATIO_PRIME" is used in ifs/btrfs/brtfs_inode.h and
+--- a/lib/log.c
++++ b/lib/log.c
+@@ -38,7 +38,11 @@ static char *prepare_attempt_prefix(cons
+ char buffer[ATTEMPT_ID_SIZE + 1];
+ char *prefixed_msg = NULL;
+
+- attempt_id = pthread_getspecific(key_thread_attempt_id);
++ if (key_thread_attempt_id) {
++ attempt_id = pthread_getspecific(key_thread_attempt_id);
++ } else {
++ attempt_id = 0;
++ }
+ if (attempt_id) {
+ int len = sizeof(buffer) + 1 + strlen(msg) + 1;
+
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch b/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
new file mode 100644
index 0000000000..f18f237d98
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-Do-not-hardcode-path-for-pkg.m4.patch
@@ -0,0 +1,31 @@
+From d7a34bb388e33d16260b67275cdb58f9c877d324 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 15:27:47 +0800
+Subject: [PATCH] From 6d24365f0828185fd1bb4d199209ca07eb95c41d Mon Sep 17
+ 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 24 Aug 2018
+ 06:24:36 +0000 Subject: [PATCH] Do not hardcode path for pkg.m4
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+update patch to version 5.1.6
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index 07c2051..e85d718 100644
+--- a/configure.in
++++ b/configure.in
+@@ -12,7 +12,7 @@ define([AC_CACHE_SAVE], )dnl
+ AC_INIT(.autofs-5.1.8)
+
+ # for pkg-config macros
+-m4_include([/usr/share/aclocal/pkg.m4])
++m4_include([pkg.m4])
+
+ #
+ # autofs installs by default in /usr
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
new file mode 100644
index 0000000000..caf0105118
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs/0001-autofs-5.1.8-add-autofs_strerror_r-helper-for-musl.patch
@@ -0,0 +1,56 @@
+From 88f991b0ebb6fb8fcaad3d0eb8fb51a7439d053e Mon Sep 17 00:00:00 2001
+From: Fabian Groffen <grobian@gentoo.org>
+Date: Wed, 2 Feb 2022 09:27:13 +0800
+Subject: [PATCH 1/2] autofs-5.1.8 - add autofs_strerror_r() helper for musl
+
+If using musl libc the XSI-compliant variant strerror_r() which returns
+an integer instead of a pointer so add a helper function to handle this
+case.
+
+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/include/automount.h b/include/automount.h
+index 8cd8b3a..f759e59 100644
+--- a/include/automount.h
++++ b/include/automount.h
+@@ -51,6 +51,11 @@
+ # endif
+ #endif
+
++#ifndef __GLIBC__
++# define strerror_r(N,B,S) autofs_strerror_r(N,B,S)
++char *autofs_strerror_r(int errnum, char *buf, size_t buflen); /* GNU */
++#endif
++
+ /* We MUST have the paths to mount(8) and umount(8) */
+ #ifndef HAVE_MOUNT
+ #error Failed to locate mount(8)!
+diff --git a/lib/log.c b/lib/log.c
+index 39b1e3b..b99fa39 100644
+--- a/lib/log.c
++++ b/lib/log.c
+@@ -368,3 +368,13 @@ pid_t log_pidinfo(struct autofs_point *ap, pid_t pid, char *label) {
+
+ return ppid;
+ }
++
++#ifndef __GLIBC__
++# undef strerror_r
++char *autofs_strerror_r(int errnum, char *buf, size_t buflen) {
++ int s = strerror_r(errnum, buf, buflen);
++ if (s)
++ return NULL;
++ return buf;
++}
++#endif
+--
+2.37.3
+
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 469027aacc..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
@@ -1,44 +1,55 @@
-From 557ca399f4b3a397f20bb147ec6dc4ab9732dd1e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 19:12:10 -0700
-Subject: [PATCH] Replace __S_IEXEC with S_IEXEC
+From 096e33743158e0e8c04d60d01cc66e2945d79777 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 16:52:35 +0800
+Subject: [PATCH] From 557ca399f4b3a397f20bb147ec6dc4ab9732dd1e Mon Sep 17
+ 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Fri, 31 Mar 2017
+ 19:12:10 -0700 Subject: [PATCH] Replace __S_IEXEC with S_IEXEC
S_IEXEC is portable
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>
---
- daemon/lookup.c | 4 ++--
+Upstream-Status: Pending
+
+ daemon/lookup.c | 6 +++---
modules/lookup_multi.c | 2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
+ 2 files changed, 4 insertions(+), 4 deletions(-)
-diff --git a/daemon/lookup.c b/daemon/lookup.c
-index 201ccbb..d821db8 100644
--- a/daemon/lookup.c
+++ b/daemon/lookup.c
-@@ -366,7 +366,7 @@ static int read_file_source_instance(struct autofs_point *ap, struct map_source
- if (!S_ISREG(st.st_mode))
+@@ -397,7 +397,7 @@ static int read_file_source_instance(str
return NSS_STATUS_NOTFOUND;
+ }
- if (st.st_mode & __S_IEXEC)
+ if (st.st_mode & S_IEXEC)
type = src_prog;
else
type = src_file;
-@@ -856,7 +856,7 @@ static int lookup_name_file_source_instance(struct autofs_point *ap, struct map_
- if (!S_ISREG(st.st_mode))
+@@ -930,7 +930,7 @@ static int lookup_name_file_source_insta
return NSS_STATUS_NOTFOUND;
+ }
- if (st.st_mode & __S_IEXEC)
+ if (st.st_mode & S_IEXEC)
type = src_prog;
else
type = src_file;
-diff --git a/modules/lookup_multi.c b/modules/lookup_multi.c
-index fadd2ea..3ecda6d 100644
+@@ -1077,7 +1077,7 @@ static struct map_source *lookup_get_map
+ if (!S_ISREG(st.st_mode))
+ return NULL;
+
+- if (st.st_mode & __S_IEXEC)
++ if (st.st_mode & S_IEXEC)
+ type = "program";
+ else
+ type = "file";
--- a/modules/lookup_multi.c
+++ b/modules/lookup_multi.c
-@@ -247,7 +247,7 @@ static struct lookup_mod *nss_open_lookup(const char *format, int argc, const ch
+@@ -247,7 +247,7 @@ static struct lookup_mod *nss_open_looku
continue;
}
diff --git a/meta-networking/recipes-daemons/autofs/autofs/0002-autofs-5.1.8-handle-innetgr-not-present-in-musl.patch b/meta-networking/recipes-daemons/autofs/autofs/0002-autofs-5.1.8-handle-innetgr-not-present-in-musl.patch
new file mode 100644
index 0000000000..9d0caae312
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs/0002-autofs-5.1.8-handle-innetgr-not-present-in-musl.patch
@@ -0,0 +1,106 @@
+From 1c0b0b70a276280f431d72319109a0bbc0267970 Mon Sep 17 00:00:00 2001
+From: Fabian Groffen <grobian@gentoo.org>
+Date: Wed, 2 Feb 2022 10:15:22 +0800
+Subject: [PATCH 2/2] autofs-5.1.8 - handle innetgr() not present in musl
+
+The function innetgr(3) may not be present in musl libc, add a check
+for this.
+
+Originally contributed by Fabian, modified by me.
+
+Upstream-Status: Backport [https://git.kernel.org/pub/scm/linux/storage/autofs/autofs.git/commit/?id=f60e40af3c038b8955325a11b7294ad38c15c9e8]
+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>
+---
+ configure | 6 ++++++
+ configure.in | 2 +-
+ include/config.h.in | 3 +++
+ modules/parse_amd.c | 7 +++++++
+ 4 files changed, 17 insertions(+), 1 deletion(-)
+
+--- a/configure.in
++++ b/configure.in
+@@ -169,7 +169,7 @@ AF_CHECK_SSS_LIB(SSS_AUTOFS, libsss_auto
+ AC_SUBST(HAVE_SSS_AUTOFS)
+ AC_SUBST(sssldir)
+
+-AC_CHECK_FUNCS(pipe2)
++AC_CHECK_FUNCS(pipe2 innetgr)
+
+ #
+ # Newer mounts have the -s (sloppy) option to ignore unknown options,
+--- a/include/config.h.in
++++ b/include/config.h.in
+@@ -30,6 +30,9 @@
+ /* Define to 1 if you have the `getservbyname' function. */
+ #undef HAVE_GETSERVBYNAME
+
++/* Define to 1 if you have the `innetgr' function. */
++#undef HAVE_INNETGR
++
+ /* Define to 1 if you have the <inttypes.h> header file. */
+ #undef HAVE_INTTYPES_H
+
+@@ -45,9 +48,6 @@
+ /* Define if you have the Linux /proc filesystem. */
+ #undef HAVE_LINUX_PROCFS
+
+-/* Define to 1 if you have the <memory.h> header file. */
+-#undef HAVE_MEMORY_H
+-
+ /* define if you have MOUNT */
+ #undef HAVE_MOUNT
+
+@@ -69,6 +69,9 @@
+ /* Define to 1 if you have the <stdint.h> header file. */
+ #undef HAVE_STDINT_H
+
++/* Define to 1 if you have the <stdio.h> header file. */
++#undef HAVE_STDIO_H
++
+ /* Define to 1 if you have the <stdlib.h> header file. */
+ #undef HAVE_STDLIB_H
+
+@@ -141,7 +144,9 @@
+ /* define if you have YACC */
+ #undef PATH_YACC
+
+-/* Define to 1 if you have the ANSI C header files. */
++/* Define to 1 if all of the C90 standard headers exist (not just the ones
++ required in a freestanding environment). This macro is provided for
++ backward compatibility; new code need not use it. */
+ #undef STDC_HEADERS
+
+ /* Define to 1 to use the libtirpc tsd usage workaround */
+--- a/modules/parse_amd.c
++++ b/modules/parse_amd.c
+@@ -424,6 +424,7 @@ static int sel_in_network(struct autofs_
+ return ret;
+ }
+
++#ifdef HAVE_INNETGR
+ static int sel_netgrp(struct autofs_point *ap,
+ struct selector *s, struct substvar *sv)
+ {
+@@ -488,6 +489,7 @@ out:
+
+ return ret;
+ }
++#endif
+
+ static int eval_selector(struct autofs_point *ap,
+ struct amd_entry *this, struct substvar *sv)
+@@ -627,7 +629,12 @@ static int eval_selector(struct autofs_p
+ switch (s->sel->selector) {
+ case SEL_NETGRP:
+ case SEL_NETGRPD:
++#ifndef HAVE_INNETGR
++ error(logopt, MODPREFIX
++ "netgroups not available, function innetgr(3) not available");
++#else
+ ret = sel_netgrp(ap, s, sv);
++#endif
+ break;
+
+ default:
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/autofs-5.0.7-do-not-check-for-modprobe.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch
deleted file mode 100644
index 1d5c3e1eeb..0000000000
--- a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-do-not-check-for-modprobe.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 2cbc576ea1fbd1cbf4579d64b30e41d762084e7f Mon Sep 17 00:00:00 2001
-From: "yanjun.zhu" <yanjun.zhu@windriver.com>
-Date: Tue, 15 Jan 2013 12:45:44 +0800
-Subject: [PATCH] autofs: do not check for modprobe
-
-Description: Loading autofs module is #ifdef'ed in the source, so
- there is no need to check for /proc (which is only used
- to load module) or modprobe. Both modprobe and /proc
- are always in the fixed location so there's no need to
- check for these to start with.
-
-Upstream-Status: Backport [1]
-[1] http://www.spinics.net/lists/autofs/msg00139.html
-
----
- configure.in | 6 ------
- daemon/module.c | 3 +++
- include/automount.h | 11 +++--------
- 3 files changed, 6 insertions(+), 14 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 44a1c8b..b226236 100644
---- a/configure.in
-+++ b/configure.in
-@@ -34,11 +34,6 @@ AC_MSG_CHECKING([for binaries in])
- AC_MSG_RESULT([$searchpath])
-
- #
--# Make sure we have "/proc"
--#
--AF_LINUX_PROCFS()
--
--#
- # Location of init.d directory?
- #
- AF_INIT_D()
-@@ -142,7 +137,6 @@ AF_PATH_INCLUDE(UMOUNT, umount, /bin/umount, $searchpath)
- AF_PATH_INCLUDE(E2FSCK, fsck.ext2 e2fsck, , $searchpath)
- AF_PATH_INCLUDE(E3FSCK, fsck.ext3 e3fsck, , $searchpath)
- AF_PATH_INCLUDE(E4FSCK, fsck.ext4 e4fsck, , $searchpath)
--AF_PATH_INCLUDE(MODPROBE, modprobe, , $searchpath)
-
- AF_CHECK_PROG(LEX, flex lex, , $searchpath)
- AF_CHECK_PROG(YACC, bison, , $searchpath)
-diff --git a/daemon/module.c b/daemon/module.c
-index bed8f7a..e41a98e 100644
---- a/daemon/module.c
-+++ b/daemon/module.c
-@@ -19,6 +19,8 @@
- #include "automount.h"
- #include "nsswitch.h"
-
-+#if 0
-+/* see comment in daemon/automount.c around load_autofs4_module() call */
- int load_autofs4_module(void)
- {
- FILE *fp;
-@@ -53,6 +55,7 @@ int load_autofs4_module(void)
-
- return 1;
- }
-+#endif
-
- int open_lookup(const char *name, const char *err_prefix, const char *mapfmt,
- int argc, const char *const *argv, struct lookup_mod **lookup)
-diff --git a/include/automount.h b/include/automount.h
-index c0f5fbf..cc336ad 100644
---- a/include/automount.h
-+++ b/include/automount.h
-@@ -51,16 +51,11 @@
- #error Failed to locate umount(8)!
- #endif
-
--#ifndef HAVE_MODPROBE
--#error Failed to locate modprobe(8)!
--#endif
--
--#ifndef HAVE_LINUX_PROCFS
--#error Failed to verify existence of procfs filesystem!
--#endif
--
-+#if 0
-+/* see comment in daemon/automount.c around load_autofs4_module() call */
- #define FS_MODULE_NAME "autofs4"
- int load_autofs4_module(void);
-+#endif
-
- /* The -s (sloppy) option to mount is good, if we have it... */
-
diff --git a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch
deleted file mode 100644
index 9b0942ebf6..0000000000
--- a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2256b8aa98cff15ddf2a8d36496e6c9125927901 Mon Sep 17 00:00:00 2001
-From: Andreas Oberritter <obi@opendreambox.org>
-Date: Wed, 13 Mar 2013 16:17:08 +0100
-Subject: [PATCH] autofs-5.0.7: include linux/nfs.h directly in rpc_subs.h
-
-Upstream-Status: Pending
-
-Fixes compile error with uclibc. Glibc's nfs/nfs.h contains
-nothing but "#include linux/nfs.h". rpc_subs.h already includes
-other linux/nfs*.h files directly.
-
-Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
-
----
- include/rpc_subs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/rpc_subs.h b/include/rpc_subs.h
-index e744e89..83db47e 100644
---- a/include/rpc_subs.h
-+++ b/include/rpc_subs.h
-@@ -18,7 +18,7 @@
-
- #include <rpc/rpc.h>
- #include <rpc/pmap_prot.h>
--#include <nfs/nfs.h>
-+#include <linux/nfs.h>
- #include <linux/nfs2.h>
- #include <linux/nfs3.h>
-
diff --git a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch b/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch
deleted file mode 100644
index 18ce193855..0000000000
--- a/meta-networking/recipes-daemons/autofs/autofs/autofs-5.1.2-libtirpc-as-need.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From b31decac4acb194b020c621d2d11019f636a45e0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 24 Apr 2017 20:41:25 -0700
-Subject: [PATCH] autofs: Upgrade to 5.1.2 release
-
-Make configure compatible with -Wl,--as-needed following
-https://wiki.gentoo.org/wiki/Project:Quality_Assurance/As-needed#Failure_in_..2Fconfigure
-
-2016-07-05 Martin von Gagern
-
----
- aclocal.m4 | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 0e4a624..2e620cd 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -415,9 +415,9 @@ AC_DEFUN([AF_CHECK_LIBTIRPC],
- [
- # save current flags
- af_check_libtirpc_save_cflags="$CFLAGS"
--af_check_libtirpc_save_ldflags="$LDFLAGS"
-+af_check_libtirpc_save_libs="$LIBS"
- CFLAGS="$CFLAGS -I=/usr/include/tirpc"
--LDFLAGS="$LDFLAGS -ltirpc"
-+LIBS="$LIBS -ltirpc"
-
- AC_TRY_LINK(
- [ #include <rpc/rpc.h> ],
-@@ -440,7 +440,7 @@ AC_CHECK_FUNCS([getrpcbyname getservbyname])
-
- # restore flags
- CFLAGS="$af_check_libtirpc_save_cflags"
--LDFLAGS="$af_check_libtirpc_save_ldflags"
-+LIBS="$af_check_libtirpc_save_libs"
- ])
-
- AC_DEFUN([AF_WITH_LIBTIRPC],
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 21a97c8f5c..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,25 +19,15 @@ 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/lib/Makefile b/lib/Makefile
-index 4798a4b..c40cf86 100644
--- a/lib/Makefile
+++ b/lib/Makefile
-@@ -57,7 +57,8 @@ mount_xdr.o: mount_xdr.c
- master_tok.c: master_tok.l
- $(LEX) -o$@ -Pmaster_ $?
-
--master_parse.tab.c master_parse.tab.h: master_parse.y
-+master_parse.tab.h: master_parse.tab.c
-+master_parse.tab.c: master_parse.y
- $(YACC) -v -d -p master_ -b master_parse $?
-
- master_tok.o: master_tok.c master_parse.tab.h
-@@ -67,7 +68,8 @@ master_parse.tab.o: master_parse.tab.c master_parse.tab.h
+@@ -53,7 +53,8 @@ mount_xdr.o: mount_xdr.c
nss_tok.c: nss_tok.l
$(LEX) -o$@ -Pnss_ $?
@@ -47,8 +37,6 @@ index 4798a4b..c40cf86 100644
$(YACC) -v -d -p nss_ -b nss_parse $?
nss_tok.o: nss_tok.c nss_parse.tab.h
-diff --git a/modules/Makefile b/modules/Makefile
-index d9ab06c..abc7698 100644
--- a/modules/Makefile
+++ b/modules/Makefile
@@ -103,7 +103,8 @@ amd_tok.c: amd_tok.l
@@ -61,3 +49,30 @@ index d9ab06c..abc7698 100644
$(YACC) -v -d -p amd_ -b amd_parse $?
amd_parse.tab.o: amd_parse.tab.c amd_parse.tab.h
+--- a/daemon/Makefile
++++ b/daemon/Makefile
+@@ -16,7 +16,7 @@ YACCSRC = master_tok.c master_parse.tab.
+ version := $(shell cat ../.version)
+
+ CFLAGS += -rdynamic $(DAEMON_CFLAGS) -D_GNU_SOURCE -I../include
+-CFLAGS += -DAUTOFS_LIB_DIR=\"$(autofslibdir)\"
++CFLAGS += -DAUTOFS_LIB_DIR=\"$(autofslibdir)\"
+ CFLAGS += -DAUTOFS_MAP_DIR=\"$(autofsmapdir)\"
+ CFLAGS += -DAUTOFS_CONF_DIR=\"$(autofsconfdir)\"
+ CFLAGS += -DAUTOFS_FIFO_DIR=\"$(autofsfifodir)\"
+@@ -44,7 +44,8 @@ automount: $(OBJS) $(AUTOFS_LIB)
+ master_tok.c: master_tok.l
+ $(LEX) -o$@ -Pmaster_ $?
+
+-master_parse.tab.c master_parse.tab.h: master_parse.y
++master_parse.tab.h: master_parse.tab.c
++master_parse.tab.c: master_parse.y
+ $(YACC) -v -d -p master_ -b master_parse $?
+
+ master_tok.o: master_tok.c master_parse.tab.h
+@@ -57,5 +58,3 @@ clean:
+ install: all
+ install -d -m 755 $(INSTALLROOT)$(sbindir)
+ install -c automount -m 755 $(INSTALLROOT)$(sbindir)
+-
+-
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/libtirpc.patch b/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch
deleted file mode 100644
index 0a2d502b8d..0000000000
--- a/meta-networking/recipes-daemons/autofs/autofs/libtirpc.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From cb6a4f61adb027f2366318f2c08c8264ebf39218 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 5 Jan 2013 19:53:10 -0800
-
----
- Makefile.rules | 2 +-
- aclocal.m4 | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile.rules b/Makefile.rules
-index 6fa3e02..709dd04 100644
---- a/Makefile.rules
-+++ b/Makefile.rules
-@@ -46,7 +46,7 @@ CFLAGS += -D_REENTRANT -D_FILE_OFFSET_BITS=64
- LIBS += -lpthread
-
- ifdef TIRPCLIB
--CFLAGS += -I/usr/include/tirpc
-+CFLAGS += -I=/usr/include/tirpc
- LIBS += $(TIRPCLIB)
- endif
-
-diff --git a/aclocal.m4 b/aclocal.m4
-index 2a9a802..0e4a624 100644
---- a/aclocal.m4
-+++ b/aclocal.m4
-@@ -416,7 +416,7 @@ AC_DEFUN([AF_CHECK_LIBTIRPC],
- # save current flags
- af_check_libtirpc_save_cflags="$CFLAGS"
- af_check_libtirpc_save_ldflags="$LDFLAGS"
--CFLAGS="$CFLAGS -I/usr/include/tirpc"
-+CFLAGS="$CFLAGS -I=/usr/include/tirpc"
- LDFLAGS="$LDFLAGS -ltirpc"
-
- AC_TRY_LINK(
diff --git a/meta-networking/recipes-daemons/autofs/autofs/mount_conflict.patch b/meta-networking/recipes-daemons/autofs/autofs/mount_conflict.patch
new file mode 100644
index 0000000000..e2a94bf825
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs/mount_conflict.patch
@@ -0,0 +1,30 @@
+Avoid conflicts between sys/mount.h and linux/mount.h
+
+linux/fs.h includes linux/mount.h and this include file is unused so
+do not include it and avoid conflict too with glibc 2.36+ see [1]
+
+[1] https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/modules/parse_amd.c
++++ b/modules/parse_amd.c
+@@ -27,7 +27,6 @@
+ #include <sys/utsname.h>
+ #include <netinet/in.h>
+ #include <sys/mount.h>
+-#include <linux/fs.h>
+
+ #define MODULE_PARSE
+ #include "automount.h"
+--- a/modules/parse_sun.c
++++ b/modules/parse_sun.c
+@@ -30,7 +30,6 @@
+ #include <sys/utsname.h>
+ #include <netinet/in.h>
+ #include <sys/mount.h>
+-#include <linux/fs.h>
+
+ #define MODULE_PARSE
+ #include "automount.h"
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/pkgconfig-libnsl.patch b/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch
index 1c7b11997c..be750ab897 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/pkgconfig-libnsl.patch
@@ -1,7 +1,9 @@
-From e3ae56cf0bb4063c31295f45d04e3c504f4b6cc7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 24 Apr 2017 20:41:25 -0700
-Subject: [PATCH] autofs: Upgrade to 5.1.2 release
+From 602f9ca83c2bdbf511bcb178fcb4b9fc54da955f Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 15:20:46 +0800
+Subject: [PATCH] From e3ae56cf0bb4063c31295f45d04e3c504f4b6cc7 Mon Sep 17
+ 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 24 Apr 2017
+ 20:41:25 -0700 Subject: [PATCH] autofs: Upgrade to 5.1.2 release
Use pkg-config first to look for external libnsl which is now
split out from glibc, if it does not exist then see if its provided
@@ -9,20 +11,27 @@ by glibc itself.
-Khem
+Upstream-Status: Pending
+
+update patch to version 5.1.5
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
configure.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.in b/configure.in
-index 9cf73b8..1016c71 100644
+index 76ecb40..493b9f1 100644
--- a/configure.in
+++ b/configure.in
-@@ -186,7 +186,7 @@ fi
- #
- # glibc/libc 6 new libraries
- #
--AC_CHECK_LIB(nsl, yp_match, LIBNSL="-lnsl")
-+PKG_CHECK_MODULES([NSL], [libnsl], [], [AC_CHECK_LIB([nsl],[yp_match],[LIBNSL="-lnsl"],[LIBNSL=""])])
- AC_SUBST(LIBNSL)
+@@ -238,7 +238,7 @@ AC_SUBST(LIBCLOCK_GETTIME)
- AC_CHECK_LIB(resolv, res_query, LIBRESOLV="-lresolv")
+ PKG_CHECK_MODULES([NSL],[libnsl],,
+ [
+-AC_CHECK_LIB(nsl, yp_match, NSL_LIBS="-lnsl")
++PKG_CHECK_MODULES([NSL], [libnsl], [], [AC_CHECK_LIB([nsl],[yp_match],[LIBNSL="-lnsl"],[LIBNSL=""])])
+ AC_SUBST(NSL_LIBS)
+ NSL_CFLAGS=""
+ ])
+--
+2.7.4
+
diff --git a/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch b/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch
index 3d0c6bd715..41de373fd4 100644
--- a/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch
+++ b/meta-networking/recipes-daemons/autofs/autofs/using-pkg-config-to-detect-libxml-2.0-and-krb5.patch
@@ -1,40 +1,36 @@
-From dabcbdae38038a8e4ad2c4286112381c407c5ce7 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Tue, 19 Aug 2014 11:31:35 +0800
-Subject: [PATCH] using pkg-config to detect libxml-2.0 and krb5
+From dd90a690f95569b999b8ac9ab57e834b3421dcbb Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 15:19:07 +0800
+Subject: [PATCH] From dabcbdae38038a8e4ad2c4286112381c407c5ce7 Mon Sep 17
+ 00:00:00 2001 From: Roy Li <rongqing.li@windriver.com> Date: Tue, 19 Aug 2014
+ 11:31:35 +0800 Subject: [PATCH] using pkg-config to detect libxml-2.0 and
+ krb5
-Upstream-status: Pending
+Upstream-Status: Pending
Signed-off-by: Roy Li <rongqing.li@windriver.com>
+update patch to 5.1.5
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
configure.in | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
-diff --git a/configure.in b/configure.in
-index b226236..9cf73b8 100644
--- a/configure.in
+++ b/configure.in
-@@ -162,8 +162,20 @@ if test x$enable_sloppy_mount = xyes; then
- fi
-
- # LDAP SASL auth needs libxml and Kerberos
--AF_CHECK_LIBXML()
+@@ -215,7 +215,14 @@ PKG_CHECK_MODULES([XML], [libxml-2.0], [
+ AC_DEFINE(LIBXML2_WORKAROUND, 1, [Use libxml2 tsd usage workaround])
+ ], [HAVE_LIBXML=0])
+
-AF_CHECK_KRB5()
-+PKG_CHECK_MODULES(XML, [libxml-2.0],HAVE_LIBXML=1,HAVE_LIBXML=0)
-+AC_SUBST([HAVE_LIBXML])
-+XML_FLAGS=$XML_CFLAGS
-+
-+PKG_CHECK_MODULES(KRB5, [krb5],HAVE_KRB5=1,HAVE_KRB5=0)
-+AC_SUBST([HAVE_KRB5])
-+if test "x$HAVE_KRB5" = "x1"; then
++PKG_CHECK_MODULES(KRB5, [krb5], [
++ HAVE_KRB5=1
+ SAVE_CFLAGS=$CFLAGS
+ SAVE_LIBS=$LIBS
+ CFLAGS="$CFLAGS $KRB5_FLAGS"
+ LIBS="$LIBS $KRB5_LIBS"
-+
+ AC_CHECK_FUNCS([krb5_principal_get_realm])
-+fi
-
++], [HAVE_KRB5=0])
+
AC_SEARCH_LIBS([versionsort],[])
if test "$ac_cv_search_versionsort" = "no"; then
diff --git a/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb b/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb
deleted file mode 100644
index e2799952c9..0000000000
--- a/meta-networking/recipes-daemons/autofs/autofs_5.1.2.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-SUMMARY = "Kernel based automounter for linux"
-SECTION = "utils"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2"
-
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-
-inherit autotools-brokensep systemd update-rc.d pkgconfig
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
- file://autofs-5.0.7-include-linux-nfs.h-directly-in-rpc_sub.patch \
- file://no-bash.patch \
- file://cross.patch \
- file://libtirpc.patch \
- file://autofs-5.0.7-do-not-check-for-modprobe.patch \
- file://fix_disable_ldap.patch \
- file://autofs-5.0.7-fix-lib-deps.patch \
- file://add-the-needed-stdarg.h.patch \
- file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \
- file://force-STRIP-to-emtpy.patch \
- file://remove-bashism.patch \
- file://fix-the-YACC-rule-to-fix-a-building-failure.patch \
- file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \
- file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \
- file://autofs-5.1.2-libtirpc-as-need.patch \
- file://pkgconfig-libnsl.patch \
- file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
- "
-SRC_URI[md5sum] = "28cf88f99eff553a8500659ba5d45a76"
-SRC_URI[sha256sum] = "0d57e4138c2ec8058ca92164d035546f68ce4af93acb893369993d67c7056a10"
-
-UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/"
-
-INITSCRIPT_NAME = "autofs"
-INITSCRIPT_PARAMS = "defaults"
-
-# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS
-#CFLAGS += "${LDFLAGS}"
-
-PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-EXTRA_OEMAKE = "DONTSTRIP=1"
-EXTRA_OECONF += "--disable-mount-locking \
- --enable-ignore-busy --with-openldap=no \
- --with-sasl=no --with-libtirpc \
- --with-path=${STAGING_BINDIR_NATIVE} \
-"
-CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \
- ac_cv_path_RPCGEN=rpcgen \
-"
-
-do_configure_prepend () {
- sed -e "s:filagdir:flagdir:" -i ${S}/configure.in
- if [ ! -e ${S}/acinclude.m4 ]; then
- cp ${S}/aclocal.m4 ${S}/acinclude.m4
- fi
-}
-
-do_install_append () {
- if [ -d ${D}/run ]; then
- rmdir ${D}/run
- fi
- if [ -d ${D}${localstatedir}/run ]; then
- rmdir ${D}${localstatedir}/run
- fi
-}
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-
-INSANE_SKIP_${PN} = "dev-so"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "autofs.service"
-
diff --git a/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb b/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb
new file mode 100644
index 0000000000..ca11f1a170
--- /dev/null
+++ b/meta-networking/recipes-daemons/autofs/autofs_5.1.8.bb
@@ -0,0 +1,100 @@
+SUMMARY = "Kernel based automounter for linux"
+SECTION = "utils"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ee9324a6f564bb2376b63878ac396798"
+
+DEPENDS += "libtirpc flex-native bison-native e2fsprogs openssl libxml2 util-linux cyrus-sasl libnsl2"
+
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+
+inherit autotools-brokensep systemd update-rc.d pkgconfig
+
+SRC_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/autofs-${PV}.tar.gz \
+ file://no-bash.patch \
+ file://cross.patch \
+ file://fix_disable_ldap.patch \
+ file://autofs-5.0.7-fix-lib-deps.patch \
+ file://add-the-needed-stdarg.h.patch \
+ file://using-pkg-config-to-detect-libxml-2.0-and-krb5.patch \
+ file://force-STRIP-to-emtpy.patch \
+ file://remove-bashism.patch \
+ file://fix-the-YACC-rule-to-fix-a-building-failure.patch \
+ file://0001-Define-__SWORD_TYPE-and-_PATH_NSSWITCH_CONF.patch \
+ file://0002-Replace-__S_IEXEC-with-S_IEXEC.patch \
+ file://pkgconfig-libnsl.patch \
+ file://0001-modules-lookup_multi.c-Replace-__S_IEXEC-with-S_IEXE.patch \
+ file://0001-Do-not-hardcode-path-for-pkg.m4.patch \
+ file://0001-Bug-fix-for-pid_t-not-found-on-musl.patch \
+ file://0001-Define-__SWORD_TYPE-if-undefined.patch \
+ 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 \
+ "
+SRC_URI[sha256sum] = "0bd401c56f0eb1ca6251344c3a3d70bface3eccf9c67117cd184422c4cace30c"
+
+UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/daemons/autofs/v5/"
+
+INITSCRIPT_NAME = "autofs"
+INITSCRIPT_PARAMS = "defaults"
+
+# FIXME: modules/Makefile has crappy rules that don't obey LDFLAGS
+#CFLAGS += "${LDFLAGS}"
+
+PACKAGECONFIG[systemd] = "--with-systemd=${systemd_unitdir}/system,--without-systemd,systemd"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+EXTRA_OEMAKE = "DONTSTRIP=1"
+EXTRA_OECONF += "--disable-mount-locking \
+ --enable-ignore-busy --with-openldap=no \
+ --with-confdir=${sysconfdir}/default \
+ --with-fifodir=/run \
+ --with-flagdir=/run \
+ --with-sasl=no --with-libtirpc \
+ --with-mapdir=${sysconfdir} \
+ --with-path=${STAGING_BINDIR_NATIVE} \
+ --with-fifodir=${localstatedir}/run \
+ --with-flagdir=${localstatedir}/run \
+"
+CACHED_CONFIGUREVARS = "ac_cv_path_RANLIB=${RANLIB} \
+ ac_cv_path_RPCGEN=rpcgen \
+ initdir=${INIT_D_DIR} \
+ piddir=/run \
+"
+
+do_configure:prepend () {
+ if [ ! -e ${S}/acinclude.m4 ]; then
+ cp ${S}/aclocal.m4 ${S}/acinclude.m4
+ fi
+ cp ${STAGING_DATADIR_NATIVE}/aclocal/pkg.m4 .
+}
+
+do_install:append () {
+ # samples have been removed from SUBDIRS from 5.1.5, need to install separately
+ oe_runmake 'DESTDIR=${D}' install_samples
+
+ if [ -d ${D}/run ]; then
+ rmdir ${D}/run
+ fi
+ if [ -d ${D}${localstatedir}/run ]; then
+ rmdir ${D}${localstatedir}/run
+ fi
+ # On hybrid systemd/sysvinit builds, we need to install the sysvinit script by hand.
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d -m 755 ${D}${INIT_D_DIR}
+ install -m 755 ${S}/samples/rc.autofs ${D}${INIT_D_DIR}/autofs
+ fi
+}
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+# all the libraries are unversioned, so don't pack it on PN-dev
+SOLIBS = ".so"
+FILES_SOLIBSDEV = ""
+# Some symlinks are created in plugins dir e.g.
+# mount_nfs4.so -> mount_nfs.so
+INSANE_SKIP:${PN} = "dev-so"
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "autofs.service"
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch
deleted file mode 100644
index 3fa8431c34..0000000000
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/Fix-hardcoded-libdir.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Fix hardcoded libdir.
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
----
- plugins/Makefile.am | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/plugins/Makefile.am b/plugins/Makefile.am
-index b00915f..25262a1 100644
---- a/plugins/Makefile.am
-+++ b/plugins/Makefile.am
-@@ -62,7 +62,7 @@ plugindir = @plugindir@
-
- common_sources = plugin_common.c plugin_common.h
-
--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 \
---
-1.7.4.1
-
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
deleted file mode 100644
index 6407721ae3..0000000000
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Avoid to call AC_TRY_RUN
-
-Upstream-Status: Inappropriate [configuration]
-
-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>
----
- cmulocal/sasl2.m4 | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/cmulocal/sasl2.m4 b/cmulocal/sasl2.m4
-index 3c2841a..a5ecf81 100644
---- a/cmulocal/sasl2.m4
-+++ b/cmulocal/sasl2.m4
-@@ -281,6 +281,17 @@ if test "$gssapi" != no; then
-
- 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
-@@ -308,7 +319,7 @@ int main(void)
- AC_MSG_RESULT(yes) ],
- AC_MSG_RESULT(no))
- LIBS="$cmu_save_LIBS"
--
-+ fi
- else
- AC_MSG_RESULT([disabled])
- fi
---
-1.7.10.4
-
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff
deleted file mode 100644
index 8eff5a8bdd..0000000000
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0009_sasldb_al.diff
+++ /dev/null
@@ -1,14 +0,0 @@
-Author: Fabian Fagerholm <fabbe@debian.org>
-Description: Fix linking with libsasldb.a when saslauthd is built with sasldb
-support.
---- a/saslauthd/configure.in
-+++ b/saslauthd/configure.in
-@@ -77,7 +77,7 @@ if test "$authsasldb" != no; then
- AC_DEFINE(AUTH_SASLDB,[],[Include SASLdb Support])
- SASL_DB_PATH_CHECK()
- SASL_DB_CHECK()
-- SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.al"
-+ SASL_DB_LIB="$SASL_DB_LIB ../sasldb/.libs/libsasldb.a"
- fi
-
- AC_ARG_ENABLE(httpform, [ --enable-httpform enable HTTP form authentication [[no]] ],
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
deleted file mode 100644
index 2e5b1750d0..0000000000
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
+++ /dev/null
@@ -1,27 +0,0 @@
-Author: Fabian Fagerholm <fabbe@debian.org>
-Description: This patch makes sure the non-PIC version of libsasldb.a, which
-is created out of non-PIC objects, is not going to overwrite the PIC version,
-which is created out of PIC objects. The PIC version is placed in .libs, and
-the non-PIC version in the current directory. This ensures that both non-PIC
-and PIC versions are available in the correct locations.
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -78,7 +78,7 @@ endif
-
- libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS)
- @echo adding static plugins and dependencies
-- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS)
-+ $(AR) cru $@ $(SASL_STATIC_OBJS)
- @for i in ./libsasl2.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \
- if test ! -f $$i; then continue; fi; . $$i; \
- for j in $$dependency_libs foo; do \
---- a/sasldb/Makefile.am
-+++ b/sasldb/Makefile.am
-@@ -63,6 +63,6 @@ libsasldb_a_SOURCES =
- EXTRA_libsasldb_a_SOURCES =
-
- libsasldb.a: libsasldb.la $(SASL_DB_BACKEND_STATIC)
-- $(AR) cru .libs/$@ $(SASL_DB_BACKEND_STATIC)
-+ $(AR) cru $@ $(SASL_DB_BACKEND_STATIC)
-
-
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch
deleted file mode 100644
index ecbab845d0..0000000000
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 92d72789c811b0d55f624a8bac5ccc4412f5996e Mon Sep 17 00:00:00 2001
-From: Ken Murchison <murch@andrew.cmu.edu>
-Date: Thu, 20 Dec 2012 18:14:50 -0500
-Subject: [PATCH] sasl.h: #include <stddef.h> for size_t on NetBSD
-
-This patch was imported from git://git.cyrusimap.org/cyrus-sasl
-commit 67a188693796a14e3a76ac603104807fbbfddfc4
-
-Upstream-Status: Backport
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- include/sasl.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/sasl.h b/include/sasl.h
-index fef4d51..8b8a63f 100755
---- a/include/sasl.h
-+++ b/include/sasl.h
-@@ -121,6 +121,8 @@
- #ifndef SASL_H
- #define SASL_H 1
-
-+#include <stddef.h> /* For size_t */
-+
- /* Keep in sync with win32/common.mak */
- #define SASL_VERSION_MAJOR 2
- #define SASL_VERSION_MINOR 1
---
-1.8.3.2
-
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb b/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb
deleted file mode 100644
index 317d2387bc..0000000000
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl_2.1.26.bb
+++ /dev/null
@@ -1,98 +0,0 @@
-SUMMARY = "Generic client/server library for SASL authentication"
-SECTION = "libs"
-HOMEPAGE = "http://asg.web.cmu.edu/sasl/"
-DEPENDS = "openssl db"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396"
-
-SRC_URI = "ftp://ftp.cyrusimap.org/cyrus-sasl/cyrus-sasl-${PV}.tar.gz \
- file://avoid-to-call-AC_TRY_RUN.patch \
- file://Fix-hardcoded-libdir.patch \
- file://debian_patches_0009_sasldb_al.diff \
- file://debian_patches_0014_avoid_pic_overwrite.diff \
- file://sasl.h-include-stddef.h-for-size_t-on-NetBSD.patch \
- file://saslauthd.service \
- file://saslauthd.conf \
-"
-
-UPSTREAM_CHECK_REGEX = "cyrus-sasl-(?P<pver>(\d+(\.\d+)+))\.tar"
-
-inherit autotools-brokensep pkgconfig useradd systemd
-
-EXTRA_OECONF += "--with-dblib=berkeley \
- --with-bdb-libdir=${STAGING_LIBDIR} \
- --with-bdb-incdir=${STAGING_INCDIR} \
- --with-bdb=db-5.3 \
- --with-plugindir="${libdir}/sasl2" \
- andrew_cv_runpath_switch=none"
-
-PACKAGECONFIG ??= "ntlm \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 ldap pam', d)} \
-"
-PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5,"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
-PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie,"
-PACKAGECONFIG[des] = "--with-des,--without-des,,"
-PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap,"
-PACKAGECONFIG[ntlm] = "--with-ntlm,--without-ntlm,,"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-CFLAGS += "-fPIC"
-
-do_configure_prepend () {
- rm -f acinclude.m4 config/libtool.m4
-
- # make it be able to work with db 5.0 version
- local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c"
- for sed_file in $sed_files; do
- sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' $sed_file
- done
-}
-
-do_compile_prepend () {
- cd include
- ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} makemd5.c -o makemd5
- touch makemd5.o makemd5.lo makemd5
- cd ..
-}
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system
-
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
- sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
- sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /run/saslauthd/ - - - -" > ${D}${sysconfdir}/tmpfiles.d/saslauthd.conf
-
- install -d ${D}${sysconfdir}/default/
- install -m 0644 ${WORKDIR}/saslauthd.conf ${D}${sysconfdir}/default/saslauthd
- sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/default/saslauthd
- fi
-}
-
-USERADD_PACKAGES = "${PN}-bin"
-USERADD_PARAM_${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus"
-
-SYSTEMD_PACKAGES = "${PN}-bin"
-SYSTEMD_SERVICE_${PN}-bin = "saslauthd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-SRC_URI[md5sum] = "a7f4e5e559a0e37b3ffc438c9456e425"
-SRC_URI[sha256sum] = "8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3"
-
-PACKAGES =+ "${PN}-bin"
-
-FILES_${PN} += "${libdir}/sasl2/*.so*"
-FILES_${PN}-bin += "${bindir} \
- ${sysconfdir}/default/saslauthd \
- ${systemd_unitdir}/system/saslauthd.service \
- ${sysconfdir}/tmpfiles.d/saslauthd.conf"
-FILES_${PN}-dev += "${libdir}/sasl2/*.la"
-FILES_${PN}-dbg += "${libdir}/sasl2/.debug"
-FILES_${PN}-staticdev += "${libdir}/sasl2/*.a"
-
-INSANE_SKIP_${PN} += "dev-so"
diff --git a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample
deleted file mode 100644
index ec0584193d..0000000000
--- a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.conf.sample
+++ /dev/null
@@ -1,21 +0,0 @@
-# options to dnrd
-
-# example: two default dns servers and dns servers for exampledomain.com. The
-# latter are load balanced (-b)
-#
-#
-
-# DNRD_OPTS="
-# -s XXX.XXX.XX.XXX
-# -s XXX.XXX.XX.XXX
-# -b
-# -s XXX.XXX.XX.XXX:exampledomain.com
-# -s XXX.XXX.XX.XXX:exampledomain.com"
-
-# example: dnrd user
-#
-
-# DNRD_USER="user"
-#
-
-
diff --git a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init
deleted file mode 100644
index 2fe583fcf9..0000000000
--- a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.init
+++ /dev/null
@@ -1,94 +0,0 @@
-#!/bin/sh
-#
-# Startup script for dnrd
-#
-# Copyright 2008, Rakesh Pandit <rakesh.pandit@gmail.com>
-#
-# This source 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, or (at your option)
-# any later version.
-
-# This source 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., 675 Mass Ave, Cambridge, MA 02139, USA.
-#
-# chkconfig: - 85 15
-# description: dnrd is a proxying nameserver. It forwards DNS queries to the
-# appropriate nameserver, but can also act as the primary nameserver for
-# a subnet behind a firewall. It also has features such as caching DNS
-# requests, support for DNS servers, cache poisoning prevention, TCP
-# support, etc..
-
-# processname: dnrd
-# pidfile: /var/run/dnrd.pid
-# config: /etc/dnrd/dnrd.conf
-
-# Provides: dnrd
-# Required-Start:
-# Should-Start:
-# Required-Stop:
-# Default-Stop: 0 1 2 6
-# Short-Description: Start dnrd daemon
-# Description: Domain Name Relay Daemon
-# END INIT INFO
-
-exe=/usr/sbin/dnrd
-pfile=/etc/passwd
-
-# Source function library.
-. /etc/init.d/functions
-
-# Source conf file
-. /etc/dnrd/dnrd.conf
-
-[ -x $exe ] || exit 1
-[ -r "/etc/dnrd/dnrd.conf" ] || exit 1
-if [ $DNRD_USER ]
-then
- grep "^${LOGIN}:" $pfile >/dev/null 2>&1
- if [ $? -eq 0 ];then
- echo "$DNRD_USER specified in /etc/dnrd/dnrd.conf does not exist!"
- fi
-else
- echo "DNRD_USER not set at /etc/dnrd/dnrd.conf!"
- exit 1
-fi
-
-case "$1" in
- start)
- echo -n "Starting dnrd: "
- daemon dnrd $DNRD_OPTS -u $DNRD_USER
- echo
- touch /var/lock/subsys/dnrd
- ;;
- stop)
- echo -n "Shutting down dnrd: "
- killproc dnrd
- echo
- rm -f /var/lock/subsys/dnrd
- rm -f /var/run/dnrd.pid
- ;;
- status)
- status dnrd
- ;;
- restart)
- $0 stop
- $0 start
- ;;
- reload)
- echo -n "Reloading dnrd: "
- killproc dnrd -HUP
- echo
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|reload|status}"
- exit 1
-esac
-
-exit 0
diff --git a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service b/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service
deleted file mode 100644
index 9c9fa66394..0000000000
--- a/meta-networking/recipes-daemons/dnrd/dnrd/dnrd.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Domain Name Relay Daemon
-After=network.target
-
-[Service]
-Type=forking
-PIDFile=/var/run/dnrd.pid
-EnvironmentFile=/etc/dnrd/dnrd.conf
-ExecStart=/usr/sbin/dnrd $DNRD_OPTS -u $DNRD_USER
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch b/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch
deleted file mode 100644
index 82cdc36ac4..0000000000
--- a/meta-networking/recipes-daemons/igmpproxy/igmpproxy/0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a557651a08e21e3c7c7f5eca9f5405f86624903f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 22:42:51 -0700
-Subject: [PATCH] src/igmpproxy.h: Include sys/types.h for u_short/u_init
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/igmpproxy.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/igmpproxy.h b/src/igmpproxy.h
-index 4dabd1c..4454729 100644
---- a/src/igmpproxy.h
-+++ b/src/igmpproxy.h
-@@ -46,6 +46,7 @@
- #include <stdbool.h>
-
- #include <sys/socket.h>
-+#include <sys/types.h>
- #include <sys/un.h>
- #include <sys/time.h>
- #include <sys/ioctl.h>
---
-2.13.3
-
diff --git a/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb b/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb
deleted file mode 100644
index 5424dc455e..0000000000
--- a/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "simple dynamic multicast routing daemon that only uses IGMP signalling"
-HOMEPAGE = "http://sourceforge.net/projects/igmpproxy/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1e995e2799bb0d27d63069b97f805420"
-
-SRC_URI = "http://sourceforge.net/projects/igmpproxy/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
- file://0001-src-igmpproxy.h-Include-sys-types.h-for-u_short-u_in.patch \
- "
-
-SRC_URI[md5sum] = "c56f41ec195bc1fe016369bf74efc5a1"
-SRC_URI[sha256sum] = "ee18ff3d8c3ae3a29dccb7e5eedf332337330020168bd95a11cece8d7d7ee6ae"
-
-inherit autotools pkgconfig
-
-CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.3.bb b/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.3.bb
new file mode 100644
index 0000000000..e8567ccebf
--- /dev/null
+++ b/meta-networking/recipes-daemons/igmpproxy/igmpproxy_0.3.bb
@@ -0,0 +1,13 @@
+SUMMARY = "simple dynamic multicast routing daemon that only uses IGMP signalling"
+HOMEPAGE = "http://sourceforge.net/projects/igmpproxy/"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=432040ff3a55670c1dec0c32b209ad69"
+
+SRC_URI = "https://github.com/pali/igmpproxy/releases/download/${PV}/${BP}.tar.gz"
+SRC_URI[md5sum] = "5565874d9631103109a72452cecb5ce7"
+SRC_URI[sha256sum] = "d1fc244cb2fbbf99f720bda3e841fe59ece9b6919073790b4b892739b1b844eb"
+
+UPSTREAM_CHECK_URI = "https://github.com/pali/${BPN}/releases"
+
+inherit autotools pkgconfig
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-pppd-ippool.c-Fix-type-casting-issues-between-in_add.patch b/meta-networking/recipes-daemons/ippool/ippool/0001-pppd-ippool.c-Fix-type-casting-issues-between-in_add.patch
new file mode 100644
index 0000000000..a98c179290
--- /dev/null
+++ b/meta-networking/recipes-daemons/ippool/ippool/0001-pppd-ippool.c-Fix-type-casting-issues-between-in_add.patch
@@ -0,0 +1,72 @@
+From da67444994bde603c7ff1483a6803bdab24e1f14 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 09:36:55 -0700
+Subject: [PATCH 1/2] pppd/ippool.c: Fix type casting issues between in_addr
+ and ippool_api_ip_addr
+
+Also remove unused variabled
+
+Upstream-Status: Inappropriate [No upstream]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ pppd/ippool.c | 13 ++++++-------
+ 1 file changed, 6 insertions(+), 7 deletions(-)
+
+--- a/pppd/ippool.c
++++ b/pppd/ippool.c
+@@ -16,6 +16,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/socket.h>
+ #include <netinet/in.h>
++#include <arpa/inet.h>
+ #include <signal.h>
+
+ #include <linux/types.h>
+@@ -24,7 +25,6 @@
+
+ const char pppd_version[] = VERSION;
+
+-static int ippool_fd = -1;
+ static char *ippool_pool_name = NULL;
+ static char *ippool_pool_name2 = NULL;
+ static char *ippool_server = "localhost";
+@@ -64,9 +64,9 @@ static int ippool_addr_alloc(CLIENT *cl,
+ }
+
+ *addr = clnt_res.addr.s_addr;
+-
++ struct in_addr temp_addr = {*addr};
+ if (ippool_debug) {
+- dbglog("Allocated address %s from pool %s", inet_ntoa(clnt_res.addr.s_addr), pool_name);
++ dbglog("Allocated address %s from pool %s", inet_ntoa(temp_addr), pool_name);
+ }
+ out:
+ return result;
+@@ -85,14 +85,16 @@ static void ippool_addr_free(CLIENT *cl,
+ }
+ if (clnt_res < 0) {
+ if (ippool_debug) {
++ struct in_addr temp_addr = {free_addr.s_addr};
+ warn("IP address %s free to pool %s failed: %s",
+- inet_ntoa(free_addr), pool_name, strerror(-clnt_res));
++ inet_ntoa(temp_addr), pool_name, strerror(-clnt_res));
+ }
+ goto out;
+ }
+
+ if (ippool_debug) {
+- dbglog("Freed address %s to pool %s", inet_ntoa(free_addr), pool_name);
++ struct in_addr temp_addr = {free_addr.s_addr};
++ dbglog("Freed address %s to pool %s", inet_ntoa(temp_addr), pool_name);
+ }
+ out:
+ return;
+@@ -138,8 +140,6 @@ static void ippool_choose_ip(u_int32_t *
+ {
+ ipcp_options *wo = &ipcp_wantoptions[0];
+ ipcp_options *go = &ipcp_gotoptions[0];
+- ipcp_options *ao = &ipcp_allowoptions[0];
+- ipcp_options *ho = &ipcp_hisoptions[0];
+ CLIENT *cl;
+ int result = 0;
+
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-ippool_rpc_server.c-Add-missing-prototype-for-ippool.patch b/meta-networking/recipes-daemons/ippool/ippool/0002-ippool_rpc_server.c-Add-missing-prototype-for-ippool.patch
new file mode 100644
index 0000000000..b8fdedf0c8
--- /dev/null
+++ b/meta-networking/recipes-daemons/ippool/ippool/0002-ippool_rpc_server.c-Add-missing-prototype-for-ippool.patch
@@ -0,0 +1,22 @@
+From f9ea91771f0d3c984e7d5fe9e15962db1ee686ad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 09:39:16 -0700
+Subject: [PATCH 2/2] ippool_rpc_server.c: Add missing prototype for
+ ippool_api_rpc_check_request
+
+Upstream-Status: Inappropriate [no upstream]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ippool_rpc_server.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/Makefile
++++ b/Makefile
+@@ -123,6 +123,7 @@ $(IPPOOL_RPC_STEM)_server.c: $(IPPOOL_RP
+ -$(RM) $@ $@.tmp
+ rpcgen $(RPCGENFLAGS) -m -o $@.tmp $<
+ cat $@.tmp | sed -e 's/switch (rqstp->rq_proc) {/if (ippool_api_rpc_check_request(transp) < 0) return; switch (rqstp->rq_proc) {/' > $@
++ sed -i '20i int ippool_api_rpc_check_request(SVCXPRT *xprt);' $@
+
+ $(IPPOOL_RPC_STEM)_client.c: $(IPPOOL_RPC_STEM).x
+ -$(RM) $@
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 e5917fc141..f168e4ccb6 100644
--- a/meta-networking/recipes-daemons/ippool/ippool/ippool.service
+++ b/meta-networking/recipes-daemons/ippool/ippool/ippool.service
@@ -5,11 +5,10 @@ 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
-StandardError=syslog
# ExecStop is not needed. systemd will send SIGTERM
# and ippoold will exit status 1.
SuccessExitStatus=1
diff --git a/meta-networking/recipes-daemons/ippool/ippool/strncpy-truncation.patch b/meta-networking/recipes-daemons/ippool/ippool/strncpy-truncation.patch
new file mode 100644
index 0000000000..01e1da8703
--- /dev/null
+++ b/meta-networking/recipes-daemons/ippool/ippool/strncpy-truncation.patch
@@ -0,0 +1,39 @@
+Replace strncpy with memcpy
+
+since the length of data to
+be copied has already been determined with strlen(). Replace strncpy()
+with memcpy() to address the warning and optimize the code a little.
+
+| ippool_config.c:112:2: note: 'snprintf' output between 8 and 55 bytes into a destination of size 48
+| 112 | snprintf(prompt, sizeof(prompt), "ippool-%s", server_name);
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/cli/cli_readline.c
++++ b/cli/cli_readline.c
+@@ -257,10 +257,15 @@ static void cli_rl_display_wrapped_text(
+ int pos;
+ int in_ws;
+ int i;
++ int bufsize = sizeof(text_buf)/sizeof(text_buf[0]);
+
+ if (left_margin == 0) {
+ left_margin = 3;
+ }
++ if (left_margin > bufsize) {
++ left_margin = bufsize;
++ }
++
+ if (right_margin == 0) {
+ right_margin = 78;;
+ }
+@@ -271,7 +276,7 @@ static void cli_rl_display_wrapped_text(
+ /* First copy the text heading to the buffer and add a "-", accounting for
+ * the specified left margin.
+ */
+- strncpy(&text_buf[0], text1, left_margin - 3);
++ memcpy(&text_buf[0], text1, left_margin - 3);
+ for (pos = strlen(text1); pos < left_margin - 3; pos++) {
+ text_buf[pos] = ' ';
+ }
diff --git a/meta-networking/recipes-daemons/ippool/ippool_1.3.bb b/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
index 6fa46904b3..36ea289945 100644
--- a/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
+++ b/meta-networking/recipes-daemons/ippool/ippool_1.3.bb
@@ -9,7 +9,7 @@ addresses from ippoold. \
"
HOMEPAGE = "http://www.openl2tp.org/"
SECTION = "console/network"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
SRC_URI = "https://sourceforge.net/projects/openl2tp/files/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
file://runtest.sh \
@@ -26,6 +26,11 @@ SRC_URI = "https://sourceforge.net/projects/openl2tp/files/${BPN}/${PV}/${BPN}-$
file://0003-cli-Mark-return-of-strtol-as-long-int.patch \
file://0002-link-with-libtirpc.patch \
file://0003-musl-fixes.patch \
+ 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"
@@ -35,7 +40,7 @@ SRC_URI[sha256sum] = "d3eab7d6cad5da8ccc9d1e31d5303e27a39622c07bdb8fa3618eea3144
inherit systemd
DEPENDS = "readline ppp ncurses gzip-native rpcsvc-proto-native libtirpc"
-RDEPENDS_${PN} = "rpcbind"
+RDEPENDS:${PN} = "rpcbind"
EXTRA_OEMAKE = "CC='${CC}' AS='${AS}' LD='${LD}' AR='${AR}' NM='${NM}' STRIP='${STRIP}'"
EXTRA_OEMAKE += "PPPD_VERSION=${PPPD_VERSION} SYS_LIBDIR=${libdir}"
@@ -44,11 +49,9 @@ EXTRA_OEMAKE += "IPPOOL_TEST=y"
CPPFLAGS += "${SELECTED_OPTIMIZATION} -I${STAGING_INCDIR}/tirpc"
-SYSTEMD_SERVICE_${PN} = "ippool.service"
-SYSTEMD_AUTO_ENABLE = "disable"
+SYSTEMD_SERVICE:${PN} = "ippool.service"
-
-do_compile_prepend() {
+do_compile:prepend() {
# fix the CFLAGS= and CPPFLAGS= in main Makefile, to have the extra CFLAGS in env
sed -i -e "s/^CFLAGS=/CFLAGS+=/" ${S}/Makefile
sed -i -e "s/^CPPFLAGS=/CPPFLAGS+=/" ${S}/Makefile
@@ -78,12 +81,12 @@ do_install() {
PACKAGES =+ "${PN}-test"
-FILES_${PN} += "${libdir}/pppd/${PPPD_VERSION}/ippool.so"
-FILES_${PN}-dbg += "${libdir}/pppd/${PPPD_VERSION}/.debug/ippool.so"
-FILES_${PN}-test = "/opt/${BPN}"
+FILES:${PN} += "${libdir}/pppd/${PPPD_VERSION}/ippool.so"
+FILES:${PN}-dbg += "${libdir}/pppd/${PPPD_VERSION}/.debug/ippool.so"
+FILES:${PN}-test = "/opt/${BPN}"
# needs tcl to run tests
-RDEPENDS_${PN}-test += "tcl ${BPN}"
+RDEPENDS:${PN}-test += "tcl ${BPN}"
PPPD_VERSION="${@get_ppp_version(d)}"
@@ -95,7 +98,7 @@ def get_ppp_version(d):
return None
bb.debug(1, "pppd plugin dir %s" % pppd_plugin)
- r = re.compile("\d*\.\d*\.\d*")
+ 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)
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
new file mode 100644
index 0000000000..d720a1adb0
--- /dev/null
+++ b/meta-networking/recipes-daemons/iscsi-initiator-utils/files/0001-Makefile-Do-not-set-Werror.patch
@@ -0,0 +1,31 @@
+From 6afdfbdf1ecf3e7e9158734a3994a57ea151d680 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Aug 2020 12:00:29 -0700
+Subject: [PATCH] Makefile: Do not set -Werror
+
+clang finds more warnings which causes build to fail, disable treating
+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 84f33bc..9e7b839 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -44,7 +44,7 @@ HOMEDIR ?= $(etcdir)/iscsi
+ PKG_CONFIG ?= /usr/bin/pkg-config
+
+ CFLAGS ?= -O2 -g
+-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 \
+ -DISCSI_VERSION_STR=\"$(ISCSI_VERSION_STR)\"
+--
+2.34.1
+
diff --git a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb b/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
deleted file mode 100644
index e6a87a38aa..0000000000
--- a/meta-networking/recipes-daemons/iscsi-initiator-utils/iscsi-initiator-utils_2.0.876.bb
+++ /dev/null
@@ -1,113 +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 = "GPLv2 & LGPLv2.1"
-SECTION = "net"
-DEPENDS = "openssl flex-native bison-native open-isns util-linux"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-
-SRCREV ?= "bd79e4ed1004a6035d2538a308c5930890421a22"
-
-SRC_URI = "git://github.com/open-iscsi/open-iscsi \
- 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"
-B = "${WORKDIR}/build"
-
-PV .= "+git${SRCPV}"
-
-inherit update-rc.d systemd autotools
-
-EXTRA_OECONF = " \
- --target=${TARGET_SYS} \
- --host=${BUILD_SYS} \
-"
-
-EXTRA_OEMAKE = ' \
- OS="${TARGET_SYS}" \
- TARGET="${TARGET_OS}" \
- BASE="${prefix}" \
- MANDIR="${mandir}" \
-'
-
-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
new file mode 100644
index 0000000000..678a208ac3
--- /dev/null
+++ b/meta-networking/recipes-daemons/keepalived/keepalived/0001-layer4-Change-order-of-include-files.patch
@@ -0,0 +1,60 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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_1.4.2.bb b/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb
deleted file mode 100644
index 36417b72a3..0000000000
--- a/meta-networking/recipes-daemons/keepalived/keepalived_1.4.2.bb
+++ /dev/null
@@ -1,48 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.keepalived.org/software/${BP}.tar.gz"
-SRC_URI[md5sum] = "610af6e04071f02d3469191de7499f4e"
-SRC_URI[sha256sum] = "4e2d7cc01a6ee29a3955f5c622d47704ba7d9dd758189f15e9def016a2d1faa3"
-
-DEPENDS = "libnfnetlink openssl"
-
-inherit autotools pkgconfig systemd update-rc.d
-
-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_OECONF = "--disable-libiptc"
-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"
-
-INITSCRIPT_NAME = "keepalived"
-INITSCRIPT_PARAMS = "remove"
-
-SYSTEMD_SERVICE_${PN} = "keepalived.service"
-SYSTEMD_AUTO_ENABLE ?= "disable"
diff --git a/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb
new file mode 100644
index 0000000000..204d2fd116
--- /dev/null
+++ b/meta-networking/recipes-daemons/keepalived/keepalived_2.2.2.bb
@@ -0,0 +1,46 @@
+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/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/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch b/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch
deleted file mode 100644
index 4876e17945..0000000000
--- a/meta-networking/recipes-daemons/lldpd/files/src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f9f3e4dd31588cce5f655730da7b5c3f56a9bdc1 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Tue, 26 Sep 2017 09:19:51 -0300
-Subject: [PATCH] src/daemon/lldpd.service.in: Use fixed path for mkdir command
-Organization: O.S. Systems Software LTDA.
-
-@mkdir_p@ is expanded to host tools path ../build/tmp/hosttools/mkdir that
-doesn't exist on target. Remove @mkdir_p@ and use /bin/mkdir -p to
-create /var/run/lldpd directory.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
----
- src/daemon/lldpd.service.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/daemon/lldpd.service.in b/src/daemon/lldpd.service.in
-index fdb7338..4291830 100644
---- a/src/daemon/lldpd.service.in
-+++ b/src/daemon/lldpd.service.in
-@@ -9,7 +9,7 @@ Type=notify
- NotifyAccess=main
- EnvironmentFile=-/etc/default/lldpd
- EnvironmentFile=-/etc/sysconfig/lldpd
--ExecStartPre=@mkdir_p@ @PRIVSEP_CHROOT@
-+ExecStartPre=/bin/mkdir -p @PRIVSEP_CHROOT@
- ExecStart=@sbindir@/lldpd $DAEMON_ARGS $LLDPD_OPTIONS
- Restart=on-failure
- PrivateTmp=yes
---
-2.14.2
diff --git a/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb b/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb
deleted file mode 100644
index dbd84cf673..0000000000
--- a/meta-networking/recipes-daemons/lldpd/lldpd_0.9.8.bb
+++ /dev/null
@@ -1,65 +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 \
- file://src-daemon-lldpd.service.in-Use-fixed-path-for-mkdir.patch \
- "
-
-SRC_URI[md5sum] = "8809600492f6b73149eb19158e819c1f"
-SRC_URI[sha256sum] = "9ee494e91bc33938575b2c09b26188c486ef8eac6e2155d250c189cc4e988c4f"
-
-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.17.bb b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.17.bb
new file mode 100644
index 0000000000..aa29f41582
--- /dev/null
+++ b/meta-networking/recipes-daemons/lldpd/lldpd_1.0.17.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] = "9343177f145d2bca66ef03d59528079d3f1663c624b1e2b9d08268efdc6127ce"
+
+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/0001-Forward-port-defining-PREFIX_BINDIR-to-use-new-autoc.patch b/meta-networking/recipes-daemons/ncftp/ncftp/0001-Forward-port-defining-PREFIX_BINDIR-to-use-new-autoc.patch
new file mode 100644
index 0000000000..efd1f345e6
--- /dev/null
+++ b/meta-networking/recipes-daemons/ncftp/ncftp/0001-Forward-port-defining-PREFIX_BINDIR-to-use-new-autoc.patch
@@ -0,0 +1,25 @@
+From 53ca110d53ca82f6c4224e4c29dbcf7dfe6914cd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 23 Aug 2022 00:25:06 -0700
+Subject: [PATCH] Forward port defining PREFIX_BINDIR to use new autoconf
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.in b/configure.in
+index c3ef568..a320c56 100644
+--- a/configure.in
++++ b/configure.in
+@@ -44,7 +44,7 @@ wi_EXTRA_SYSV_SUNOS_DIRS dnl For better curses library on SunOS 4
+
+ dnl Try to use PATH rather than hardcode the installation path, if possible.
+ if test "${prefix-NONE}" != "NONE" && test "$prefix" != "/usr/local" && test "$prefix" != "/usr"; then
+- AC_DEFINE_UNQUOTED(PREFIX_BINDIR, "$prefix/bin")
++ AC_DEFINE([PREFIX_BINDIR], [${prefix}/bin], [Install bindir])
+ fi
+
+
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
new file mode 100644
index 0000000000..5dee824d7a
--- /dev/null
+++ b/meta-networking/recipes-daemons/ncftp/ncftp/ncftp-3.2.5-gcc10.patch
@@ -0,0 +1,83 @@
+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/unistd.patch b/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch
index 1c8146edaf..22e4f7837b 100644
--- a/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch
+++ b/meta-networking/recipes-daemons/ncftp/ncftp/unistd.patch
@@ -16,13 +16,9 @@ Other solution would to fix sed.sh to ignore double definitions
Upstream-Status: Pending
Signed-of-by: Khem Raj <raj.khem@gmail.com>
-
-
-Index: ncftp-3.2.6/configure
-===================================================================
---- ncftp-3.2.6.orig/configure
-+++ ncftp-3.2.6/configure
-@@ -7859,7 +7859,6 @@ chmod 755 "$wi_tmpdir/prpp.pl"
+--- a/autoconf_local/aclocal.m4
++++ b/autoconf_local/aclocal.m4
+@@ -4220,7 +4220,6 @@ changequote({{, }})dnl
cat << 'EOF' > "$wi_tmpdir/unistd.c"
#include <confdefs.h>
diff --git a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb
index 5f92f27fdf..e66325c838 100644
--- a/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb
+++ b/meta-networking/recipes-daemons/ncftp/ncftp_3.2.6.bb
@@ -8,7 +8,9 @@ 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"
@@ -19,14 +21,9 @@ CFLAGS += "-DNO_SSLv2 -D_FILE_OFFSET_BITS=64 -Wall"
PACKAGECONFIG ??= ""
PACKAGECONFIG[ccdv] = "--enable-ccdv,--disable-ccdv,,"
-EXTRA_OECONF = "--disable-precomp"
-TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
+EXTRA_OECONF = "--disable-precomp --disable-universal ac_cv_path_TAR=tar"
+ACLOCALEXTRAPATH:append = " -I ${S}/autoconf_local"
-do_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 () {
install -d ${D}${bindir} ${D}${sysconfdir} ${D}${mandir}
oe_runmake 'prefix=${D}${prefix}' 'BINDIR=${D}${bindir}' \
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
new file mode 100644
index 0000000000..a83dad350f
--- /dev/null
+++ b/meta-networking/recipes-daemons/networkd-dispatcher/networkd-dispatcher_2.1.bb
@@ -0,0 +1,32 @@
+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 gobject-introspection-data"
+
+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/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch b/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch
new file mode 100644
index 0000000000..ab9b25fed0
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/files/0001-Do-not-poke-at-build-host-s-etc-os-release.patch
@@ -0,0 +1,27 @@
+From 2bc5c6367a7f70ca5bff177ec95bcad3b1c2b66b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Sep 2018 18:15:10 -0700
+Subject: [PATCH] Do not poke at build host's /etc/os-release
+
+During cross compile we are interested in target distro and not host
+distro therefore do not check for it.
+
+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(-)
+
+Index: openhpi-3.8.0/configure.ac
+===================================================================
+--- openhpi-3.8.0.orig/configure.ac
++++ openhpi-3.8.0/configure.ac
+@@ -194,7 +194,6 @@ AC_SUBST(JSON_C_LIB)
+ AC_SUBST(JSON_C_INCLUDE)
+ AC_CHECK_LIB([rabbitmq],[amqp_new_connection],[RABBITMQ_LIB=-lrabbitmq],[RABBITMQ_LIB=])
+ AC_SUBST(RABBITMQ_LIB)
+-AC_CHECK_FILE([/etc/os-release],[DISTRO=`grep "^ID=" /etc/os-release | awk -F"\"" '{ print $2 }'`])
+
+ AC_CHECK_HEADERS([amqp.h],[have_rabbitmq=yes],[have_rabbitmq=no])
+
diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch b/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch
deleted file mode 100644
index 4f493f7b8f..0000000000
--- a/meta-networking/recipes-daemons/openhpi/files/0001-Fix-build-failures-with-gcc7.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 398c6db66c643ed6133cc2b028ab1e27a17c5295 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 1 May 2017 19:10:09 +0000
-Subject: [PATCH] Fix build failures with gcc7
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- plugins/ipmidirect/ipmi_mc_vendor.cpp | 2 +-
- plugins/ipmidirect/ipmi_resource.cpp | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/plugins/ipmidirect/ipmi_mc_vendor.cpp b/plugins/ipmidirect/ipmi_mc_vendor.cpp
-index 2c6c090..557771c 100644
---- a/plugins/ipmidirect/ipmi_mc_vendor.cpp
-+++ b/plugins/ipmidirect/ipmi_mc_vendor.cpp
-@@ -322,7 +322,7 @@ cIpmiMcVendor::CreateResources( cIpmiDomain *domain, cIpmiMc *source_mc, cIpmiSd
- if ( addr.m_channel != source_mc->GetChannel() )
- stdlog << "WARNING : SDR channel " << addr.m_channel << " NOT equal to MC channel " << source_mc->GetChannel() << "\n";
-
-- if ( FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) == false ) {
-+ if ( !FindOrCreateResource( domain, source_mc, fru_id, sdr, sdrs ) ) {
- return false;
- }
- }
-diff --git a/plugins/ipmidirect/ipmi_resource.cpp b/plugins/ipmidirect/ipmi_resource.cpp
-index c438e74..2552673 100644
---- a/plugins/ipmidirect/ipmi_resource.cpp
-+++ b/plugins/ipmidirect/ipmi_resource.cpp
-@@ -73,7 +73,7 @@ cIpmiResource::SendCommandReadLock( const cIpmiMsg &msg, cIpmiMsg &rsp,
-
- domain->ReadLock();
-
-- if ( domain->VerifyResource( resource ) == false )
-+ if ( !domain->VerifyResource( resource ) )
- return SA_ERR_HPI_NOT_PRESENT;
-
- return rv;
-@@ -91,7 +91,7 @@ cIpmiResource::SendCommandReadLock( cIpmiRdr *rdr, const cIpmiMsg &msg, cIpmiMsg
-
- domain->ReadLock();
-
-- if ( domain->VerifyRdr( rdr ) == false )
-+ if ( !domain->VerifyRdr( rdr ) )
- return SA_ERR_HPI_NOT_PRESENT;
-
- return rv;
---
-1.9.1
-
diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch b/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch
new file mode 100644
index 0000000000..c78ec28de7
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/files/0001-include-iostream-for-cout.patch
@@ -0,0 +1,41 @@
+From 8f47adc3b9085d589e62cb5eb560dd23a703036a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Sep 2018 12:47:49 -0700
+Subject: [PATCH] include iostream for cout
+
+End cout with endl
+
+Fixes
+plugins/dynamic_simulator/thread.cpp:241:3: error: 'cout' was not declared in this scope
+ cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined"
+ ^~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/dynamic_simulator/thread.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/dynamic_simulator/thread.cpp b/plugins/dynamic_simulator/thread.cpp
+index b971502..61eaf42 100644
+--- a/plugins/dynamic_simulator/thread.cpp
++++ b/plugins/dynamic_simulator/thread.cpp
+@@ -26,7 +26,7 @@
+ */
+
+ #include "thread.h"
+-#include <stdio.h>
++#include <iostream>
+ #include <sys/time.h>
+ #include <errno.h>
+
+@@ -238,7 +238,7 @@ cThreadLock::cThreadLock()
+ pthread_mutexattr_settype( &attr, PTHREAD_MUTEX_RECURSIVE );
+ pthread_mutex_init( &m_lock, &attr );
+ pthread_mutexattr_destroy( &attr );
+- cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined"
++ std::cout<<"PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP is Defined"<<std::endl;
+ }
+ #else
+ static pthread_mutex_t lock_tmpl = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch b/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch
deleted file mode 100644
index 4d56f6535c..0000000000
--- a/meta-networking/recipes-daemons/openhpi/files/0001-ipmidirect-Replace-__STRING.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From be40b3f11460cf495bbbef45692e7763afda0c2b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 14 Sep 2017 17:56:31 -0700
-Subject: [PATCH] ipmidirect: Replace __STRING
-
-__STRING is not universally available e.g.
-musl does not define it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- plugins/ipmidirect/t/test.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/plugins/ipmidirect/t/test.h b/plugins/ipmidirect/t/test.h
-index 8d71381..978d5ff 100644
---- a/plugins/ipmidirect/t/test.h
-+++ b/plugins/ipmidirect/t/test.h
-@@ -22,7 +22,7 @@ TestFunction( const char *str, const char *file, int line, bool expr )
- }
-
-
--#define Test(expr) TestFunction( __STRING(expr), __FILE__, __LINE__, expr )
-+#define Test(expr) TestFunction( #expr, __FILE__, __LINE__, expr )
-
-
- static int
---
-2.14.1
-
diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch b/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch
deleted file mode 100644
index 0f033ac855..0000000000
--- a/meta-networking/recipes-daemons/openhpi/files/0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From be665d9513cca7e8b64c79ae424cf44ac166b052 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 14 Sep 2017 17:07:58 -0700
-Subject: [PATCH] plugins: Check for PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
- before use
-
-musl does not define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-so we can not assume that all Linux systems support PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
-its a glibc specific define so check for it being defined before using it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- plugins/dynamic_simulator/thread.cpp | 2 +-
- plugins/ipmidirect/thread.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/plugins/dynamic_simulator/thread.cpp b/plugins/dynamic_simulator/thread.cpp
-index d663be0..9210fd7 100644
---- a/plugins/dynamic_simulator/thread.cpp
-+++ b/plugins/dynamic_simulator/thread.cpp
-@@ -229,7 +229,7 @@ cThread::Exit( void *rv )
- /**
- * Constructor
- **/
--#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__)
-+#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
- cThreadLock::cThreadLock()
- {
- pthread_mutexattr_t attr;
-diff --git a/plugins/ipmidirect/thread.cpp b/plugins/ipmidirect/thread.cpp
-index 5c52557..48e83fa 100644
---- a/plugins/ipmidirect/thread.cpp
-+++ b/plugins/ipmidirect/thread.cpp
-@@ -167,7 +167,7 @@ cThread::Exit( void *rv )
- // cThreadLock
- //////////////////////////////////////////////////
-
--#if ( defined(__sun) && defined(__SVR4) ) || defined(__FreeBSD__)
-+#ifndef PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP
- cThreadLock::cThreadLock()
- {
- pthread_mutexattr_t attr;
---
-2.14.1
-
diff --git a/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch b/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch
new file mode 100644
index 0000000000..2cefd55be2
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/files/0001-session-close-socket.patch
@@ -0,0 +1,37 @@
+From b8bc6bfdb5e7fb5b46d3a830e04632939bee6b98 Mon Sep 17 00:00:00 2001
+From: Catalin Enache <catalin.enache@windriver.com>
+Date: Fri, 9 Feb 2018 16:35:11 +0200
+Subject: [PATCH] saHpiSessionClose: close socket
+
+saHpiSessionClose leaks file descriptors
+
+Upstream issue: https://github.com/open-hpi/openhpi/issues/1918
+
+Upstream-Status: Pending
+
+Signed-off-by: Catalin Enache <catalin.enache@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ baselib/session.cpp | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/baselib/session.cpp b/baselib/session.cpp
+index c5edfc8..4ece1b7 100644
+--- a/baselib/session.cpp
++++ b/baselib/session.cpp
+@@ -126,6 +126,12 @@ cSession::cSession()
+
+ cSession::~cSession()
+ {
++ cClientStreamSock * sock;
++ gpointer ptr = wrap_g_static_private_get( &m_sockets );
++ if ( ptr ) {
++ sock = reinterpret_cast<cClientStreamSock *>(ptr);
++ sock->Close();
++ }
+ wrap_g_static_private_free( &m_sockets );
+ }
+
+--
+2.10.2
+
diff --git a/meta-networking/recipes-daemons/openhpi/files/c++11.patch b/meta-networking/recipes-daemons/openhpi/files/c++11.patch
index 0549d59777..5eff86b4d5 100644
--- a/meta-networking/recipes-daemons/openhpi/files/c++11.patch
+++ b/meta-networking/recipes-daemons/openhpi/files/c++11.patch
@@ -1,11 +1,21 @@
-Index: openhpi-3.6.1/configure.ac
-===================================================================
---- openhpi-3.6.1.orig/configure.ac
-+++ openhpi-3.6.1/configure.ac
-@@ -44,6 +44,7 @@ AC_PROG_CPP
- AC_PROG_INSTALL
- AC_PROG_LN_S
+From ed51168dfd6844deeaebf7d5f6c65898aafb6299 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 27 Aug 2017 12:12:04 -0700
+
+Upstream-Status: Pending
+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 c29a31f..f7fe0f7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -46,6 +46,7 @@ AC_PROG_LN_S
AC_PROG_MAKE_SET
+ AC_PROG_AWK
+ AC_PROG_GREP
+AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
enabled_non32bit="no"
diff --git a/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch b/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
index 9b35a0cced..7958a07c67 100644
--- a/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
+++ b/meta-networking/recipes-daemons/openhpi/files/clang-c++11.patch
@@ -1,3 +1,7 @@
+Support build with Clang
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
Index: openhpi-3.6.1/plugins/dynamic_simulator/new_sim.cpp
===================================================================
--- openhpi-3.6.1.orig/plugins/dynamic_simulator/new_sim.cpp
@@ -1273,16 +1277,3 @@ Index: openhpi-3.6.1/plugins/ipmidirect/ipmi.cpp
static SaErrorT
IpmiResetWatchdog(void *hnd,
-Index: openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h
-===================================================================
---- openhpi-3.6.1.orig/plugins/ipmidirect/ipmi_auth.h
-+++ openhpi-3.6.1/plugins/ipmidirect/ipmi_auth.h
-@@ -32,7 +32,7 @@ class cIpmiAuthSg
- {
- public:
- void *data; /* NULL to terminate. */
-- int len;
-+ unsigned int len;
- };
-
-
diff --git a/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch b/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch
new file mode 100644
index 0000000000..3161140df9
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/files/cross_899198.patch
@@ -0,0 +1,98 @@
+From: Helmut Grohne <helmut@subdivi.de>
+Subject: fix cross compilation
+
+The OH_SET_SIZES macro relies on the usual autoconf sizeof cache variables
+during cross compilation, but it never ensure that they are initialized.
+
+pkg-config must be called with $ac_tool_prefix and PKG_PROG_PKG_CONFIG takes
+care of that. Setting PKG_CONFIG_PATH breaks the pkg-config-cross-wrapper.
+Don't do that.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: openhpi-3.8.0/acinclude.m4
+===================================================================
+--- openhpi-3.8.0.orig/acinclude.m4
++++ openhpi-3.8.0/acinclude.m4
+@@ -22,30 +22,39 @@ AC_DEFUN([OH_SET_SIZES],
+
+ if test "x$cross_compiling" != "xno"; then
+ if test "x$OH_SIZEOF_UCHAR" = x; then
++ AC_CHECK_SIZEOF([unsigned char])
+ OH_SIZEOF_UCHAR=$ac_cv_sizeof_uchar
+ fi
+ if test "x$OH_SIZEOF_USHORT" = x; then
++ AC_CHECK_SIZEOF([unsigned short])
+ OH_SIZEOF_USHORT=$ac_cv_sizeof_ushort
+ fi
+ if test "x$OH_SIZEOF_UINT" = x; then
++ AC_CHECK_SIZEOF([unsigned int])
+ OH_SIZEOF_UINT=$ac_cv_sizeof_uint
+ fi
+ if test "x$OH_SIZEOF_CHAR" = x; then
++ AC_CHECK_SIZEOF([char])
+ OH_SIZEOF_CHAR=$ac_cv_sizeof_char
+ fi
+ if test "x$OH_SIZEOF_SHORT" = x; then
++ AC_CHECK_SIZEOF([short])
+ OH_SIZEOF_SHORT=$ac_cv_sizeof_short
+ fi
+ if test "x$OH_SIZEOF_INT" = x; then
++ AC_CHECK_SIZEOF([int])
+ OH_SIZEOF_INT=$ac_cv_sizeof_int
+ fi
+ if test "x$OH_SIZEOF_LLONG" = x; then
++ AC_CHECK_SIZEOF([long long])
+ OH_SIZEOF_LLONG=$ac_cv_sizeof_longlong
+ fi
+ if test "x$OH_SIZEOF_FLOAT" = x; then
++ AC_CHECK_SIZEOF([float])
+ OH_SIZEOF_FLOAT=$ac_cv_sizeof_float
+ fi
+ if test "x$OH_SIZEOF_DOUBLE" = x; then
++ AC_CHECK_SIZEOF([double])
+ OH_SIZEOF_DOUBLE=$ac_cv_sizeof_double
+ fi
+ else
+Index: openhpi-3.8.0/configure.ac
+===================================================================
+--- openhpi-3.8.0.orig/configure.ac
++++ openhpi-3.8.0/configure.ac
+@@ -87,9 +87,9 @@ have_rtas_lib=no
+
+ dnl Check for GLIB
+
+-AC_CHECK_PROG([found_pkg_config],[pkg-config],[yes])
++PKG_PROG_PKG_CONFIG
+
+-if test "x$found_pkg_config" != "xyes"; then
++if test "x$PKG_CONFIG" = "x"; then
+ OH_CHECK_FAIL(pkg-config,pkg-config)
+ fi
+ PKG_CFG_SETPATH
+@@ -105,7 +105,7 @@ GLIB=glib-2.0
+ GTHREAD=gthread-2.0
+ GMODULE=gmodule-2.0
+
+-if pkg-config --atleast-version $GLIB_REQUIRED_VERSION $GLIB; then
++if $PKG_CONFIG --atleast-version $GLIB_REQUIRED_VERSION $GLIB; then
+ :
+ else
+ AC_MSG_ERROR([
+@@ -268,12 +268,12 @@ dnl
+ dnl We really need to make ipmi enablement be contigent on OpenIPMI
+ dnl
+
+-if PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --atleast-version 1.4.20 OpenIPMI; then
++if $PKG_CONFIG --atleast-version 1.4.20 OpenIPMI; then
+ have_openipmi=yes
+ AC_CHECK_LIB([OpenIPMI], [ipmi_smi_setup_con], [have_openipmi=yes])
+- OPENIPMI_CFLAGS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --cflags OpenIPMI`
++ OPENIPMI_CFLAGS=`$PKG_CONFIG --cflags OpenIPMI`
+ AC_SUBST(OPENIPMI_CFLAGS)
+- OPENIPMI_LIBS=`PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig pkg-config --libs OpenIPMI`
++ OPENIPMI_LIBS=`$PKG_CONFIG --libs OpenIPMI`
+ AC_SUBST(OPENIPMI_LIBS)
+ fi
+
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/no-md2.patch b/meta-networking/recipes-daemons/openhpi/files/no-md2.patch
new file mode 100644
index 0000000000..c4dd23e790
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/files/no-md2.patch
@@ -0,0 +1,37 @@
+Description: Fix FTBFS with OpenSSL 1.1 by honouring OPENSSL_NO_MD2
+Author: Adrian Bunk <bunk@debian.org>
+Bug-Debian: https://bugs.debian.org/859543
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Index: openhpi-3.8.0/plugins/ipmidirect/ipmi_auth.cpp
+===================================================================
+--- openhpi-3.8.0.orig/plugins/ipmidirect/ipmi_auth.cpp
++++ openhpi-3.8.0/plugins/ipmidirect/ipmi_auth.cpp
+@@ -21,6 +21,7 @@
+ #include "ipmi_auth.h"
+ #include <string.h>
+ #include <errno.h>
++#include <openssl/opensslconf.h>
+
+
+ cIpmiAuth *
+@@ -32,7 +33,7 @@ IpmiAuthFactory( tIpmiAuthType type )
+ return new cIpmiAuthNone;
+
+ case eIpmiAuthTypeMd2:
+-#ifdef HAVE_OPENSSL_MD2_H
++#if defined(HAVE_OPENSSL_MD2_H) && !defined(OPENSSL_NO_MD2)
+ return new cIpmiAuthMd2;
+ #else
+ break;
+@@ -78,7 +79,7 @@ cIpmiAuthNone::Check( cIpmiAuthSg /*d*/[
+ }
+
+
+-#ifdef HAVE_OPENSSL_MD2_H
++#if defined(HAVE_OPENSSL_MD2_H) && !defined(OPENSSL_NO_MD2)
+ #include <openssl/md2.h>
+
+
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
new file mode 100644
index 0000000000..68f972fc51
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-3.6.1-ssl.patch
@@ -0,0 +1,20 @@
+Link with libssl
+
+fixed build with openssl-1.1.x
+
+Taken from Fedora
+https://src.fedoraproject.org/rpms/openhpi/c/be77f5484b0206f8946a85b29424ea10bf863063
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+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
++++ openhpi-3.6.1/ssl/Makefile.am 2017-02-21 12:22:44.576454262 -0500
+@@ -19,5 +19,5 @@ lib_LTLIBRARIES = libopenhpi_ssl.la
+ libopenhpi_ssl_la_SOURCES = oh_ssl.c oh_ssl.h
+
+ libopenhpi_ssl_la_LDFLAGS = -version-info @HPI_LIB_VERSION@
+-libopenhpi_ssl_la_LIBADD = @CRYPTO_LIB@
++libopenhpi_ssl_la_LIBADD = -lssl @CRYPTO_LIB@
+
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-function-saHpiSensorThresholds.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-function-saHpiSensorThresholds.patch
new file mode 100644
index 0000000000..b2771c0c92
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-function-saHpiSensorThresholds.patch
@@ -0,0 +1,35 @@
+From e0b2be7a1fce0fed63bac8c350b711b69edfe30e Mon Sep 17 00:00:00 2001
+From: "yanjun.zhu" <yanjun.zhu@windriver.com>
+Date: Tue, 30 Apr 2019 10:04:58 +0800
+Subject: [PATCH] openhpid/safhpi.c: fix function saHpiSensorThresholdsSet
+
+In COPY_TH the SensorThresholds->TH will be copied to tmp.TH only if
+TH.IsSupported == SAHPI_TRUE. So we should pass &tmp but not
+SensorThresholds as the argument to OH_CALL_ABI. Otherwise the TH will
+be set even if TH.IsSupported == SAHPI_FALSE.
+
+Upstream-Status: Submitted
+[https://github.com/open-hpi/openhpi/pull/2744/commits/77a78bb1ada56e55c5ba6d7a5987c214705bf035]
+
+Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ openhpid/safhpi.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/openhpid/safhpi.c b/openhpid/safhpi.c
+index 28a2632..61b7f03 100644
+--- a/openhpid/safhpi.c
++++ b/openhpid/safhpi.c
+@@ -1933,7 +1933,7 @@ SaErrorT SAHPI_API saHpiSensorThresholdsSet (
+ oh_release_domain(d); /* Unlock domain */
+
+ OH_CALL_ABI(h, set_sensor_thresholds, SA_ERR_HPI_INVALID_CMD, rv,
+- ResourceId, SensorNum, SensorThresholds);
++ ResourceId, SensorNum, &tmp);
+ oh_release_handler(h);
+
+ return rv;
+--
+2.7.4
+
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch
deleted file mode 100644
index 60e2e79191..0000000000
--- a/meta-networking/recipes-daemons/openhpi/files/openhpi-fix-testfail-errors.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Fix for saftest failures.
-
-Upstream-Status: Pending
-
-Signed-off-by: yanjun.zhu <yanjun.zhu@windriver.com>
-
-Index: openhpi-3.6.1/openhpid/safhpi.c
-===================================================================
---- openhpi-3.6.1.orig/openhpid/safhpi.c
-+++ openhpi-3.6.1/openhpid/safhpi.c
-@@ -1933,7 +1933,7 @@ SaErrorT SAHPI_API saHpiSensorThresholds
- oh_release_domain(d); /* Unlock domain */
-
- OH_CALL_ABI(h, set_sensor_thresholds, SA_ERR_HPI_INVALID_CMD, rv,
-- ResourceId, SensorNum, SensorThresholds);
-+ ResourceId, SensorNum, &tmp);
- oh_release_handler(h);
-
- return rv;
-Index: openhpi-3.6.1/utils/sahpi_struct_utils.c
-===================================================================
---- openhpi-3.6.1.orig/utils/sahpi_struct_utils.c
-+++ openhpi-3.6.1/utils/sahpi_struct_utils.c
-@@ -3861,6 +3861,9 @@ SaHpiBoolT oh_valid_textbuffer(SaHpiText
- /* found a unpaired surrogate */
- return SAHPI_FALSE;
- }
-+ } else {
-+ /*the first 2 bytes wrong*/
-+ return SAHPI_FALSE;
- }
- }
- break;
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch
deleted file mode 100644
index cc21ff8c79..0000000000
--- a/meta-networking/recipes-daemons/openhpi/files/openhpi-hpi-shell-thread-fix.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-commit e9f9a73c9dba8dd59f3d6c3acd9988ec8361d55a
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date: Mon Dec 17 16:23:45 2012 -0500
-
- Correct dangling g_thread_exit in session.c
-
- hpi_shell's session.c has its progress_bar
- thread created using pthread_create but
- exited using g_thread_exit. Use pthread_exit
- instead to avoid unpredictable GLIB thread
- errors.
-
- Upstream-Status: Pending
-
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
-
-Index: openhpi-3.6.1/hpi_shell/session.c
-===================================================================
---- openhpi-3.6.1.orig/hpi_shell/session.c
-+++ openhpi-3.6.1/hpi_shell/session.c
-@@ -73,7 +73,7 @@ static void* progress_bar(void *unused)
- if (i < (PROGRESS_BUF_SIZE - mes_len - 1)) i++;
- t++;
- };
-- g_thread_exit(0);
-+ pthread_exit(0);
- return (void *)1;
- }
-
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
index c848b35027..160eeede69 100644
--- a/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
+++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-libxml2-cross-compile.patch
@@ -1,4 +1,7 @@
-Fix libxml2 for cross-compiling
+From afe545e77f9d841b7777d859e7e8108492fece96 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Wed, 26 Apr 2017 16:22:00 +0800
+Subject: [PATCH] Fix libxml2 for cross-compiling
Use proper XML2_INCLUDE path when cross-compiling
@@ -6,16 +9,20 @@ Upstream-Status: Pending
Signed-of-by: Aws Ismail <aws.ismail@windriver.com>
-Index: openhpi-3.6.1/configure.ac
-===================================================================
---- openhpi-3.6.1.orig/configure.ac
-+++ openhpi-3.6.1/configure.ac
-@@ -177,7 +177,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6242cbf..4fb6b69 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -179,7 +179,7 @@ AC_CHECK_HEADERS([openssl/md2.h openssl/md5.h openssl/bio.h openssl/ssl.h openss
dnl xml is used for XML-based communication in ilo2_ribcl and oa_soap
AC_CHECK_LIB([xml2],[xmlParseMemory],[XML2_LIB=-lxml2],[XML2_LIB=])
--AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE])
-+AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE])
+-AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="-I/usr/include/libxml2"],[XML2_INCLUDE=])
++AC_CHECK_HEADERS([libxml2/libxml/xmlexports.h],[XML2_INCLUDE="$XML2_INCLUDE"],[XML2_INCLUDE=])
AC_SUBST(XML2_LIB)
AC_SUBST(XML2_INCLUDE)
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
index 95b0abc913..293c8d91f5 100644
--- a/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
+++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-netsnmp-cross-compile.patch
@@ -13,36 +13,33 @@ Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
configure | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
-diff --git a/acinclude.m4 b/acinclude.m4
-index 82c33f6..727e461 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
+Index: openhpi-3.8.0/acinclude.m4
+===================================================================
+--- openhpi-3.8.0.orig/acinclude.m4
++++ openhpi-3.8.0/acinclude.m4
@@ -160,8 +160,8 @@ AC_DEFUN([OH_CHECK_NETSNMP],
],
[
have_netsnmp=yes
-- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'`
+- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/ -O\S*//g'`
- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs`
+ SNMPFLAGS=""
+ SNMPLIBS=""
AC_MSG_RESULT(yes)
],
[AC_MSG_RESULT(no. No SNMP based plugins can be built!)])
-diff --git a/configure b/configure
-index 00067bc..36b913c 100755
---- a/configure
-+++ b/configure
-@@ -15949,8 +15949,8 @@ _ACEOF
+Index: openhpi-3.8.0/configure
+===================================================================
+--- openhpi-3.8.0.orig/configure
++++ openhpi-3.8.0/configure
+@@ -16062,8 +16062,8 @@ _ACEOF
if ac_fn_c_try_link "$LINENO"; then :
have_netsnmp=yes
-- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/-O\S*//g'`
+- SNMPFLAGS=`${net_snmp_config:-net-snmp-config} --cflags | perl -p -e 's/ -O\S*//g'`
- SNMPLIBS=`${net_snmp_config:-net-snmp-config} --libs`
+ SNMPFLAGS=""
+ SNMPLIBS=""
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
---
-1.9.1
-
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch b/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
index 3e09180d4d..472318b808 100644
--- a/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
+++ b/meta-networking/recipes-daemons/openhpi/files/openhpi-use-serial-tests-config-needed-by-ptest.patch
@@ -1,4 +1,4 @@
-From 36fbaa27e7299f63c1324b0ad22b970e9365d6a7 Mon Sep 17 00:00:00 2001
+From 5e0ae172586f5aeb270a8f9b012dd3e36536a2a9 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Wed, 24 Dec 2014 10:54:59 +0800
Subject: [PATCH] openhpi: use serial-tests config needed by ptest
@@ -9,17 +9,18 @@ serial-tests is required to generate those targets.
Upstream-Status: Inappropriate [default automake behavior incompatible with ptest]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
- configure.ac | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-Index: openhpi-3.6.1/configure.ac
-===================================================================
---- openhpi-3.6.1.orig/configure.ac
-+++ openhpi-3.6.1/configure.ac
-@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague <http:
+diff --git a/configure.ac b/configure.ac
+index 89d8104..c29a31f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -7,7 +7,7 @@ dnl various hacks by Sean Dague <http://dague.net/sean> 4/23/03
AC_PREREQ(2.57)
- AC_INIT(openhpi, 3.6.1)
+ AC_INIT(openhpi, 3.8.0)
AC_CONFIG_SRCDIR(openhpi.spec.in)
-AM_INIT_AUTOMAKE([1.8])
+AM_INIT_AUTOMAKE([1.8 serial-tests])
diff --git a/meta-networking/recipes-daemons/openhpi/files/openhpid.service b/meta-networking/recipes-daemons/openhpi/files/openhpid.service
index cd4168f8e5..816e44f822 100644
--- a/meta-networking/recipes-daemons/openhpi/files/openhpid.service
+++ b/meta-networking/recipes-daemons/openhpi/files/openhpid.service
@@ -4,7 +4,7 @@ After=syslog.target
[Service]
Type=forking
-PIDFile=/var/run/openhpid.pid
+PIDFile=/run/openhpid.pid
ExecStart=@SBINDIR@/openhpid -c @SYSCONFDIR@/openhpi/openhpi.conf
[Install]
diff --git a/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb b/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
deleted file mode 100644
index ecf71d70f6..0000000000
--- a/meta-networking/recipes-daemons/openhpi/openhpi_3.6.1.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Hardware Platform Interface Library and Tools"
-
-DESCRIPTION = "\
-OpenHPI is an open source project created with the intent of providing an \
-implementation of the SA Forum's Hardware Platform Interface (HPI). HPI \
-provides an abstracted interface to managing computer hardware, typically for \
-chassis and rack based servers. HPI includes resource modeling; access to and \
-control over sensor, control, watchdog, and inventory data associated with \
-resources; abstracted System Event Log interfaces; hardware events and alerts; \
-and a managed hotswap interface. \
-\
-OpenHPI provides a modular mechanism for adding new hardware and device support \
-easily. Many plugins exist in the OpenHPI source tree to provide access to \
-various types of hardware. This includes, but is not limited to, IPMI based \
-servers, Blade Center, and machines which export data via sysfs. \
-"
-
-HOMEPAGE = "http://openhpi.sourceforge.net/Home"
-SECTION = "net"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"
-
-DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs autoconf-archive-native"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
- file://openhpi.init \
- file://openhpid.service \
- file://run-ptest \
- file://openhpi-netsnmp-cross-compile.patch \
- file://openhpi-sysfs-cross-compile.patch \
- file://openhpi-libxml2-cross-compile.patch \
- file://openhpi-glib-cross-compile.patch \
- file://openhpi-linkfix.patch \
- file://openhpi-fix-host-gcc.patch \
- file://openhpi-hpi-shell-thread-fix.patch \
- file://openhpi-fix-testfail-errors.patch \
- file://openhpi-add-libnetsnmp-when-link.patch \
- file://openhpi-invalide-session.patch \
- file://openhpi-use-serial-tests-config-needed-by-ptest.patch \
- file://openhpi-fix-alignment-issue.patch \
- file://0001-Fix-build-failures-with-gcc7.patch \
- file://c++11.patch \
- file://clang-c++11.patch \
- file://fix-narrowing-warning.patch \
- file://0001-plugins-Check-for-PTHREAD_RECURSIVE_MUTEX_INITIALIZE.patch \
- file://0001-ipmidirect-Replace-__STRING.patch \
- "
-
-SRC_URI[md5sum] = "4718b16e0f749b5ad214a9b04f45dd23"
-SRC_URI[sha256sum] = "e0a810cb401c4bdcfc9551f2e6afd5a8ca4b411f5ee3bc60c19f82fd6e84a3dc"
-
-inherit autotools pkgconfig ptest update-rc.d systemd
-
-PACKAGES =+ "${PN}-libs"
-
-FILES_${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
-
-INSANE_SKIP_${PN}-libs = "dev-so"
-RDEPENDS_${PN} += "${PN}-libs"
-
-PACKAGECONFIG ??= "libgcrypt non32bit"
-PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
-PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
-PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,,"
-
-do_install_append () {
- install -m 0755 -d ${D}${sysconfdir}/${BPN}
- install -m 0755 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf
- install -m 0700 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf
- install -m 0755 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data
- install -m 0755 ${S}/test_agent.data.example ${D}${sysconfdir}/${BPN}/test_agent.data
- install -m 0755 ${WORKDIR}/openhpi.init ${D}${sysconfdir}/init.d/openhpid
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/openhpid.service ${D}${systemd_unitdir}/system
- sed -i -e "s,@SBINDIR@,${sbindir},g" -e "s,@SYSCONFDIR@,${sysconfdir},g" \
- ${D}${systemd_unitdir}/system/openhpid.service
-}
-
-do_compile_ptest () {
- for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do
- dir=`dirname ${x}`
- upper=`dirname ${dir}`
- if [ `basename ${upper}` != "cpp" ]; then
- oe_runmake -C ${dir} buildtest-TESTS
- fi
- done
-}
-
-do_install_ptest () {
- cp -rf ${B}/openhpid/t/ohpi/.libs/* ${B}/openhpid/t/ohpi/
- TESTS="utils marshal openhpid"
- for subtest in ${TESTS}; do
- mkdir -p ${D}${PTEST_PATH}/${subtest}/t
- cp -rf ${B}/${subtest}/t/* ${D}${PTEST_PATH}/${subtest}/t
- done
-
- for x in `find ${D}${PTEST_PATH} -name Makefile`; do
- sed -i "s:${S}:${PTEST_PATH}/:g" ${x};
- sed -i "s/^Makefile:/MM:/g" ${x};
- done;
-
- mkdir -p ${D}${PTEST_PATH}/plugins/watchdog/
- cp -L ${D}/${libdir}/${BPN}/libwatchdog.so ${D}${PTEST_PATH}/plugins/watchdog/
- cp -L ${D}/${libdir}/${BPN}/libsimulator.so ${D}${PTEST_PATH}/plugins/watchdog/
- find ${D}${PTEST_PATH}/ -name "*.c" -exec rm {} \;
- find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
- find ${D}${PTEST_PATH}/ -name "*.h" -exec rm {} \;
-}
-
-INITSCRIPT_NAME = "openhpid"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "openhpid.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb b/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
new file mode 100644
index 0000000000..bacf984e74
--- /dev/null
+++ b/meta-networking/recipes-daemons/openhpi/openhpi_3.8.0.bb
@@ -0,0 +1,138 @@
+SUMMARY = "Hardware Platform Interface Library and Tools"
+
+DESCRIPTION = "\
+OpenHPI is an open source project created with the intent of providing an \
+implementation of the SA Forum's Hardware Platform Interface (HPI). HPI \
+provides an abstracted interface to managing computer hardware, typically for \
+chassis and rack based servers. HPI includes resource modeling; access to and \
+control over sensor, control, watchdog, and inventory data associated with \
+resources; abstracted System Event Log interfaces; hardware events and alerts; \
+and a managed hotswap interface. \
+\
+OpenHPI provides a modular mechanism for adding new hardware and device support \
+easily. Many plugins exist in the OpenHPI source tree to provide access to \
+various types of hardware. This includes, but is not limited to, IPMI based \
+servers, Blade Center, and machines which export data via sysfs. \
+"
+
+HOMEPAGE = "http://openhpi.sourceforge.net/Home"
+SECTION = "net"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e3c772a32386888ccb5ae1c0ba95f1a4"
+
+DEPENDS = "net-snmp libxml2 ncurses openssl glib-2.0 popt e2fsprogs \
+ autoconf-archive-native os-release"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://openhpi.init \
+ file://openhpid.service \
+ file://run-ptest \
+ file://openhpi-netsnmp-cross-compile.patch \
+ file://openhpi-sysfs-cross-compile.patch \
+ file://openhpi-libxml2-cross-compile.patch \
+ file://openhpi-glib-cross-compile.patch \
+ file://openhpi-linkfix.patch \
+ file://openhpi-fix-host-gcc.patch \
+ file://openhpi-fix-function-saHpiSensorThresholds.patch \
+ file://openhpi-add-libnetsnmp-when-link.patch \
+ file://openhpi-invalide-session.patch \
+ file://openhpi-use-serial-tests-config-needed-by-ptest.patch \
+ file://openhpi-fix-alignment-issue.patch \
+ file://c++11.patch \
+ file://clang-c++11.patch \
+ file://fix-narrowing-warning.patch \
+ file://0001-session-close-socket.patch \
+ file://openhpi-3.6.1-ssl.patch \
+ file://0001-Do-not-poke-at-build-host-s-etc-os-release.patch \
+ file://cross_899198.patch \
+ file://no-md2.patch \
+ file://0001-include-iostream-for-cout.patch \
+ "
+SRC_URI[md5sum] = "fffda3deea8a0d3671a72eea9d13a4df"
+SRC_URI[sha256sum] = "c94332a29160dd75cb799c027e614690c00263b0fabed87417707bec04c38723"
+
+inherit autotools pkgconfig ptest update-rc.d systemd
+
+PACKAGES =+ "${PN}-libs"
+
+FILES:${PN}-libs = "${libdir}/${BPN}/*.so /usr/lib/${BPN}/*.so"
+
+INSANE_SKIP:${PN}-libs = "dev-so"
+RDEPENDS:${PN} += "${PN}-libs"
+
+PACKAGECONFIG ??= "libgcrypt non32bit snmp-bc"
+PACKAGECONFIG[sysfs] = "--enable-sysfs,--disable-sysfs,sysfsutils,"
+PACKAGECONFIG[libgcrypt] = "--enable-encryption,--disable-encryption,libgcrypt,"
+PACKAGECONFIG[non32bit] = "--enable-non32bit-int,--disable-non32bit-int,,"
+PACKAGECONFIG[snmp-bc] = "--enable-snmp_bc,--disable-snmp_bc"
+
+export DISTRO
+
+do_install:append () {
+ install -m 0755 -d ${D}${sysconfdir}/${BPN}
+ install -m 0644 ${S}/openhpiclient.conf.example ${D}${sysconfdir}/${BPN}/openhpiclient.conf
+ install -m 0600 ${S}/openhpi.conf.example ${D}${sysconfdir}/${BPN}/openhpi.conf
+ install -m 0644 ${S}/simulation.data.example ${D}${sysconfdir}/${BPN}/simulation.data
+ install -m 0644 ${S}/test_agent.data.example ${D}${sysconfdir}/${BPN}/test_agent.data
+ install -m 0755 ${WORKDIR}/openhpi.init ${D}${sysconfdir}/init.d/openhpid
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/openhpid.service ${D}${systemd_unitdir}/system
+ sed -i -e "s,@SBINDIR@,${sbindir},g" -e "s,@SYSCONFDIR@,${sysconfdir},g" \
+ ${D}${systemd_unitdir}/system/openhpid.service
+}
+
+do_compile_ptest () {
+ for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do
+ dir=`dirname ${x}`
+ case $dir in
+ *cpp/t) ;;
+ *snmp_bc/t) if ${@bb.utils.contains('PACKAGECONFIG','snmp-bc','true','false',d)}
+ then
+ oe_runmake -C ${dir} buildtest-TESTS
+ fi
+ ;;
+ *) oe_runmake -C ${dir} buildtest-TESTS ;;
+ esac
+ done
+}
+
+ack_do_compile_ptest () {
+ for x in `find ${B} -name Makefile -exec grep -l buildtest-TESTS {} \;`; do
+ dir=`dirname ${x}`
+ upper=`dirname ${dir}`
+ if [ `basename ${upper}` != "cpp" ]; then
+ oe_runmake -C ${dir} buildtest-TESTS
+ fi
+ done
+}
+
+do_install_ptest () {
+ cp -rf ${B}/openhpid/t/ohpi/.libs/* ${B}/openhpid/t/ohpi/
+ TESTS="utils marshal openhpid"
+ for subtest in ${TESTS}; do
+ mkdir -p ${D}${PTEST_PATH}/${subtest}/t
+ cp -rf ${B}/${subtest}/t/* ${D}${PTEST_PATH}/${subtest}/t
+ done
+
+ for x in `find ${D}${PTEST_PATH} -name Makefile`; do
+ sed -i "s:${S}:${PTEST_PATH}/:g" ${x};
+ sed -i "s/^Makefile:/MM:/g" ${x};
+ done;
+
+ install -m 644 ${S}/openhpid/t/ohpi/openhpi.conf ${D}${PTEST_PATH}/openhpid/t/ohpi/
+ sed -i "s:OPENHPI_CONF=[^ ]*:OPENHPI_CONF=./openhpi.conf:g" ${D}${PTEST_PATH}/openhpid/t/ohpi/Makefile
+
+ mkdir -p ${D}${PTEST_PATH}/plugins/watchdog/
+ cp -L ${D}/${libdir}/${BPN}/libwatchdog.so ${D}${PTEST_PATH}/plugins/watchdog/
+ cp -L ${D}/${libdir}/${BPN}/libsimulator.so ${D}${PTEST_PATH}/plugins/watchdog/
+ find ${D}${PTEST_PATH}/ -name "*.c" -exec rm {} \;
+ find ${D}${PTEST_PATH}/ -name "*.o" -exec rm {} \;
+ find ${D}${PTEST_PATH}/ -name "*.h" -exec rm {} \;
+}
+
+INITSCRIPT_NAME = "openhpid"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE:${PN} = "openhpid.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch
deleted file mode 100644
index 8f8dba0541..0000000000
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0001-Catch-std-ifstream-failure-by-reference.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 77d50b8d92ef1903cbc50d8f39e05fc828696bb9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Apr 2018 14:33:35 -0700
-Subject: [PATCH 1/2] Catch std::ifstream::failure by reference
-
-Fixes
-error: catching polymorphic type 'class std::ios_base::failure' by value
-[-Werror=catch-value=]
- } catch (std::ofstream::failure) {
- ^~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/base/conf.cc | 4 ++--
- src/dtm/dtmnd/dtm_main.cc | 2 +-
- src/dtm/dtmnd/multicast.cc | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/base/conf.cc b/src/base/conf.cc
-index d5755a1..4820357 100644
---- a/src/base/conf.cc
-+++ b/src/base/conf.cc
-@@ -189,7 +189,7 @@ std::string Conf::ReadFile(const std::string& path_name,
- try {
- str.open(path_name);
- str >> contents;
-- } catch (std::ifstream::failure) {
-+ } catch (std::ifstream::failure& e) {
- contents.clear();
- }
- return (str.fail() || contents.empty()) ? default_contents : contents;
-@@ -203,7 +203,7 @@ void Conf::WriteFileAtomically(const std::string& path_name,
- try {
- str.open(tmp_file, std::ofstream::out | std::ofstream::trunc);
- str << contents << std::endl;
-- } catch (std::ofstream::failure) {
-+ } catch (std::ofstream::failure& e) {
- success = false;
- }
- str.close();
-diff --git a/src/dtm/dtmnd/dtm_main.cc b/src/dtm/dtmnd/dtm_main.cc
-index 3260a81..a55afac 100644
---- a/src/dtm/dtmnd/dtm_main.cc
-+++ b/src/dtm/dtmnd/dtm_main.cc
-@@ -359,7 +359,7 @@ void UpdateNodeIdFile(DTM_INTERNODE_CB *cb) {
- try {
- str.open(PKGLOCALSTATEDIR "/node_id", std::ofstream::out);
- str << std::hex << node_id << std::endl;
-- } catch (std::ofstream::failure) {
-+ } catch (std::ofstream::failure& e) {
- }
- str.close();
- }
-diff --git a/src/dtm/dtmnd/multicast.cc b/src/dtm/dtmnd/multicast.cc
-index bf67b9c..7232066 100644
---- a/src/dtm/dtmnd/multicast.cc
-+++ b/src/dtm/dtmnd/multicast.cc
-@@ -198,7 +198,7 @@ bool Multicast::GetPeersFromFile(const std::string &path_name) {
- }
- }
- }
-- } catch (std::ifstream::failure) {
-+ } catch (std::ifstream::failure& e) {
- LOG_ER("Caught std::ifstream::failure when reading file '%s', peers=%zu",
- path_name.c_str(), static_cast<size_t>(peers_.size()));
- peers_.clear();
---
-2.17.0
-
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-build-with-fno-common.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-build-with-fno-common.patch
new file mode 100644
index 0000000000..b581c571bb
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-build-with-fno-common.patch
@@ -0,0 +1,311 @@
+From 9a46462f08535e946d97fd40c79229a7ee8b7336 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 17 Aug 2020 00:00:00 -0700
+Subject: [PATCH] Fix build with -fno-common
+
+Mark the declarations with extern where needed in header files
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ckpt/agent/cpa_cb.h | 2 +-
+ src/ckpt/ckptd/cpd_init.h | 2 +-
+ src/evt/agent/eda.h | 2 +-
+ src/evt/evtd/eds.h | 2 +-
+ src/evt/evtd/eds_amf.c | 2 ++
+ src/evt/evtd/eds_amf.h | 2 +-
+ src/evt/evtd/eds_cb.h | 2 +-
+ src/imm/immd/immd.h | 2 +-
+ src/lck/lckd/gld_dl_api.h | 4 ++--
+ src/lck/lcknd/glnd_cb.h | 4 ++--
+ src/mds/mds_core.h | 34 +++++++++++++++++++---------------
+ src/mds/mds_dt_tcp.c | 2 ++
+ src/mds/mds_dt_tcp.h | 2 +-
+ src/mds/mds_main.c | 2 +-
+ src/msg/msgnd/mqnd_db.h | 2 +-
+ 15 files changed, 37 insertions(+), 29 deletions(-)
+
+diff --git a/src/ckpt/agent/cpa_cb.h b/src/ckpt/agent/cpa_cb.h
+index ac48c6c..d633583 100644
+--- a/src/ckpt/agent/cpa_cb.h
++++ b/src/ckpt/agent/cpa_cb.h
+@@ -119,7 +119,7 @@ typedef struct cpa_cb {
+
+ } CPA_CB;
+
+-uint32_t gl_cpa_hdl;
++extern uint32_t gl_cpa_hdl;
+
+ typedef struct cpa_prcess_evt_sync {
+ NCS_QELEM qelem;
+diff --git a/src/ckpt/ckptd/cpd_init.h b/src/ckpt/ckptd/cpd_init.h
+index 0c02642..cf3466b 100644
+--- a/src/ckpt/ckptd/cpd_init.h
++++ b/src/ckpt/ckptd/cpd_init.h
+@@ -33,7 +33,7 @@
+ #include <saAmf.h>
+ #include "cpd_cb.h"
+
+-uint32_t gl_cpd_cb_hdl;
++extern uint32_t gl_cpd_cb_hdl;
+
+ /* Macro to get the component name for the component type */
+ #define m_CPD_TASKNAME "CPD"
+diff --git a/src/evt/agent/eda.h b/src/evt/agent/eda.h
+index 4d1991c..138c910 100644
+--- a/src/evt/agent/eda.h
++++ b/src/evt/agent/eda.h
+@@ -39,7 +39,7 @@
+ #include "base/logtrace.h"
+
+ /* EDA CB global handle declaration */
+-uint32_t gl_eda_hdl;
++extern uint32_t gl_eda_hdl;
+
+ /* EDA Default MDS timeout value */
+ #define EDA_MDS_DEF_TIMEOUT 100
+diff --git a/src/evt/evtd/eds.h b/src/evt/evtd/eds.h
+index bc9c429..3545d77 100644
+--- a/src/evt/evtd/eds.h
++++ b/src/evt/evtd/eds.h
+@@ -72,6 +72,6 @@
+ #include "base/daemon.h"
+
+ /* EDS CB global handle declaration */
+-uint32_t gl_eds_hdl;
++extern uint32_t gl_eds_hdl;
+
+ #endif // EVT_EVTD_EDS_H_
+diff --git a/src/evt/evtd/eds_amf.c b/src/evt/evtd/eds_amf.c
+index 97b71a5..adebf0c 100644
+--- a/src/evt/evtd/eds_amf.c
++++ b/src/evt/evtd/eds_amf.c
+@@ -30,6 +30,8 @@ stuff.
+ #include "eds.h"
+ #include "eds_dl_api.h"
+
++struct next_HAState nextStateInfo;
++
+ /* HA AMF statemachine & State handler definitions */
+
+ /****************************************************************************
+diff --git a/src/evt/evtd/eds_amf.h b/src/evt/evtd/eds_amf.h
+index e9aeaa6..f9803b4 100644
+--- a/src/evt/evtd/eds_amf.h
++++ b/src/evt/evtd/eds_amf.h
+@@ -49,7 +49,7 @@ uint32_t eds_quiesced_state_handler(EDS_CB *cb, SaInvocationT invocation);
+ struct next_HAState {
+ uint8_t nextState1;
+ uint8_t nextState2;
+-} nextStateInfo; /* AMF HA state can transit to a maximum of the two defined
++}; /* AMF HA state can transit to a maximum of the two defined
+ states */
+
+ #define VALIDATE_STATE(curr, next) \
+diff --git a/src/evt/evtd/eds_cb.h b/src/evt/evtd/eds_cb.h
+index c127ead..19c48cd 100644
+--- a/src/evt/evtd/eds_cb.h
++++ b/src/evt/evtd/eds_cb.h
+@@ -40,7 +40,7 @@
+ #include "base/ncssysf_tmr.h"
+
+ /* global variables */
+-uint32_t gl_eds_hdl;
++extern uint32_t gl_eds_hdl;
+
+ struct eda_reg_list_tag;
+
+diff --git a/src/imm/immd/immd.h b/src/imm/immd/immd.h
+index 7dc1da6..bab3945 100644
+--- a/src/imm/immd/immd.h
++++ b/src/imm/immd/immd.h
+@@ -42,7 +42,7 @@
+ #include "immd_sbedu.h"
+ #include "base/ncs_mda_pvt.h"
+
+-IMMD_CB *immd_cb;
++extern IMMD_CB *immd_cb;
+
+ extern uint32_t initialize_for_assignment(IMMD_CB *cb, SaAmfHAStateT ha_state);
+
+diff --git a/src/lck/lckd/gld_dl_api.h b/src/lck/lckd/gld_dl_api.h
+index 6476a71..3a67fd1 100644
+--- a/src/lck/lckd/gld_dl_api.h
++++ b/src/lck/lckd/gld_dl_api.h
+@@ -33,7 +33,7 @@
+ #include "base/ncsgl_defs.h"
+ #include "base/ncs_lib.h"
+
+-uint32_t gl_gld_hdl;
+-uint32_t gld_lib_req(NCS_LIB_REQ_INFO *req_info);
++extern uint32_t gl_gld_hdl;
++extern uint32_t gld_lib_req(NCS_LIB_REQ_INFO *req_info);
+
+ #endif // LCK_LCKD_GLD_DL_API_H_
+diff --git a/src/lck/lcknd/glnd_cb.h b/src/lck/lcknd/glnd_cb.h
+index 3b82f60..77a1f88 100644
+--- a/src/lck/lcknd/glnd_cb.h
++++ b/src/lck/lcknd/glnd_cb.h
+@@ -28,8 +28,8 @@ extern "C" {
+ #endif
+
+ /* global variables */
+-uint32_t gl_glnd_hdl;
+-NCSCONTEXT gl_glnd_task_hdl;
++extern uint32_t gl_glnd_hdl;
++extern NCSCONTEXT gl_glnd_task_hdl;
+
+ /* macros for the global varibales */
+ #define m_GLND_RETRIEVE_GLND_CB_HDL gl_glnd_hdl
+diff --git a/src/mds/mds_core.h b/src/mds/mds_core.h
+index dad62cd..ed69d3a 100644
+--- a/src/mds/mds_core.h
++++ b/src/mds/mds_core.h
+@@ -26,6 +26,10 @@
+ #ifndef MDS_MDS_CORE_H_
+ #define MDS_MDS_CORE_H_
+
++#ifndef EXTERN
++#define EXTERN extern
++#endif
++
+ #include <pthread.h>
+ #include "base/ncsgl_defs.h"
+ #include "mds/mds_papi.h"
+@@ -600,65 +604,65 @@ extern "C" {
+ /* ******************************************** */
+
+ /* Initialization of MDTM Module */
+-uint32_t (*mds_mdtm_init)(NODE_ID node_id, uint32_t *mds_tipc_ref);
++EXTERN uint32_t (*mds_mdtm_init)(NODE_ID node_id, uint32_t *mds_tipc_ref);
+
+ /* Destroying the MDTM Module*/
+-uint32_t (*mds_mdtm_destroy)(void);
++EXTERN uint32_t (*mds_mdtm_destroy)(void);
+
+-uint32_t (*mds_mdtm_send)(MDTM_SEND_REQ *req);
++EXTERN uint32_t (*mds_mdtm_send)(MDTM_SEND_REQ *req);
+
+ /* SVC Install */
+-uint32_t (*mds_mdtm_svc_install)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
++EXTERN uint32_t (*mds_mdtm_svc_install)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
+ NCSMDS_SCOPE_TYPE install_scope,
+ V_DEST_RL role, MDS_VDEST_ID vdest_id,
+ NCS_VDEST_TYPE vdest_policy,
+ MDS_SVC_PVT_SUB_PART_VER mds_svc_pvt_ver);
+
+ /* SVC Uninstall */
+-uint32_t (*mds_mdtm_svc_uninstall)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
++EXTERN uint32_t (*mds_mdtm_svc_uninstall)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
+ NCSMDS_SCOPE_TYPE install_scope,
+ V_DEST_RL role, MDS_VDEST_ID vdest_id,
+ NCS_VDEST_TYPE vdest_policy,
+ MDS_SVC_PVT_SUB_PART_VER mds_svc_pvt_ver);
+
+ /* SVC Subscribe */
+-uint32_t (*mds_mdtm_svc_subscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
++EXTERN uint32_t (*mds_mdtm_svc_subscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
+ NCSMDS_SCOPE_TYPE subscribe_scope,
+ MDS_SVC_HDL local_svc_hdl,
+ MDS_SUBTN_REF_VAL *subtn_ref_val);
+
+ /* added svc_hdl */
+ /* SVC Unsubscribe */
+-uint32_t (*mds_mdtm_svc_unsubscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
++EXTERN uint32_t (*mds_mdtm_svc_unsubscribe)(PW_ENV_ID pwe_id, MDS_SVC_ID svc_id,
+ NCSMDS_SCOPE_TYPE subscribe_scope,
+ MDS_SUBTN_REF_VAL subtn_ref_val);
+
+ /* VDEST Install */
+-uint32_t (*mds_mdtm_vdest_install)(MDS_VDEST_ID vdest_id);
++EXTERN uint32_t (*mds_mdtm_vdest_install)(MDS_VDEST_ID vdest_id);
+
+ /* VDEST Uninstall */
+-uint32_t (*mds_mdtm_vdest_uninstall)(MDS_VDEST_ID vdest_id);
++EXTERN uint32_t (*mds_mdtm_vdest_uninstall)(MDS_VDEST_ID vdest_id);
+
+ /* VDEST Subscribe */
+-uint32_t (*mds_mdtm_vdest_subscribe)(MDS_VDEST_ID vdest_id,
++EXTERN uint32_t (*mds_mdtm_vdest_subscribe)(MDS_VDEST_ID vdest_id,
+ MDS_SUBTN_REF_VAL *subtn_ref_val);
+
+ /* VDEST Unsubscribe */
+-uint32_t (*mds_mdtm_vdest_unsubscribe)(MDS_VDEST_ID vdest_id,
++EXTERN uint32_t (*mds_mdtm_vdest_unsubscribe)(MDS_VDEST_ID vdest_id,
+ MDS_SUBTN_REF_VAL subtn_ref_val);
+
+ /* Tx Register (For incrementing the use count) */
+-uint32_t (*mds_mdtm_tx_hdl_register)(MDS_DEST adest);
++EXTERN uint32_t (*mds_mdtm_tx_hdl_register)(MDS_DEST adest);
+
+ /* Tx Unregister (For decrementing the use count) */
+-uint32_t (*mds_mdtm_tx_hdl_unregister)(MDS_DEST adest);
++EXTERN uint32_t (*mds_mdtm_tx_hdl_unregister)(MDS_DEST adest);
+
+ /* Node subscription */
+-uint32_t (*mds_mdtm_node_subscribe)(MDS_SVC_HDL svc_hdl,
++EXTERN uint32_t (*mds_mdtm_node_subscribe)(MDS_SVC_HDL svc_hdl,
+ MDS_SUBTN_REF_VAL *subtn_ref_val);
+
+ /* Node unsubscription */
+-uint32_t (*mds_mdtm_node_unsubscribe)(MDS_SUBTN_REF_VAL subtn_ref_val);
++EXTERN uint32_t (*mds_mdtm_node_unsubscribe)(MDS_SUBTN_REF_VAL subtn_ref_val);
+
+ #ifdef __cplusplus
+ }
+diff --git a/src/mds/mds_dt_tcp.c b/src/mds/mds_dt_tcp.c
+index 4a37246..e73cef4 100644
+--- a/src/mds/mds_dt_tcp.c
++++ b/src/mds/mds_dt_tcp.c
+@@ -70,6 +70,8 @@ NCS_PATRICIA_TREE mdtm_reassembly_list;
+
+ /* Get the pid of the process */
+ pid_t mdtm_pid;
++
++MDTM_TCP_CB *tcp_cb;
+
+ static void mds_mdtm_enc_init(MDS_MDTM_DTM_MSG *init, uint8_t *buff);
+ static uint32_t mdtm_create_rcv_task(void);
+diff --git a/src/mds/mds_dt_tcp.h b/src/mds/mds_dt_tcp.h
+index 1065464..350d534 100644
+--- a/src/mds/mds_dt_tcp.h
++++ b/src/mds/mds_dt_tcp.h
+@@ -50,7 +50,7 @@ typedef struct mdtm_tcp_cb {
+
+ } MDTM_TCP_CB;
+
+-MDTM_TCP_CB *tcp_cb;
++extern MDTM_TCP_CB *tcp_cb;
+
+ typedef enum mds_mdtm_dtm_msg_types {
+ MDS_MDTM_DTM_PID_TYPE = 1,
+diff --git a/src/mds/mds_main.c b/src/mds/mds_main.c
+index 0bcb2f9..5671ed3 100644
+--- a/src/mds/mds_main.c
++++ b/src/mds/mds_main.c
+@@ -20,7 +20,7 @@
+ #endif
+
+ #include "osaf/configmake.h"
+-
++#define EXTERN
+ /*****************************************************************************
+ ..............................................................................
+
+diff --git a/src/msg/msgnd/mqnd_db.h b/src/msg/msgnd/mqnd_db.h
+index b78024e..fee43e5 100644
+--- a/src/msg/msgnd/mqnd_db.h
++++ b/src/msg/msgnd/mqnd_db.h
+@@ -33,7 +33,7 @@
+ #include <saClm.h>
+ #include <saImmOi.h>
+ /* Decleration for global variable */
+-uint32_t gl_mqnd_cb_hdl;
++extern uint32_t gl_mqnd_cb_hdl;
+
+ /* Macros for reading global database */
+ #define m_MQND_STORE_HDL(hdl) (gl_mqnd_cb_hdl = (hdl))
+--
+2.28.0
+
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch
deleted file mode 100644
index 428e462289..0000000000
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0001-Fix-string-overflow-in-snprintf.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 8cf323a2d8e02ca0bd36deb38e613c6edac546ad Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Apr 2018 18:29:17 -0700
-Subject: [PATCH] Fix string overflow in snprintf
-
-Fixes errors like
-error: '%s' dir
-ective output may be truncated writing up to 255 bytes into a region of size 32 [-Werror=forma
-t-truncation=]
- snprintf(reinterpret_cast<char *>(Healthy.key), sizeof(Healthy.key), "%s",
- ^~~~
- hlth_str);
- ~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/log/logd/lgs_util.cc | 4 ++--
- src/rde/rded/rde_amf.cc | 2 +-
- src/smf/smfd/SmfUpgradeCampaign.cc | 4 ++--
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/log/logd/lgs_util.cc b/src/log/logd/lgs_util.cc
-index ac93d5a..cce80f3 100644
---- a/src/log/logd/lgs_util.cc
-+++ b/src/log/logd/lgs_util.cc
-@@ -200,12 +200,12 @@ char *lgs_get_time(time_t *time_in) {
-
- stringSize = 5 * sizeof(char);
- snprintf(srcString, (size_t)stringSize, "%d",
-- (timeStampData->tm_year + START_YEAR));
-+ (timeStampData->tm_year + START_YEAR) & 0x4dU);
-
- strncpy(timeStampString, srcString, stringSize);
-
- stringSize = 3 * sizeof(char);
-- snprintf(srcString, (size_t)stringSize, "%02d", (timeStampData->tm_mon + 1));
-+ snprintf(srcString, (size_t)stringSize, "%02d", (timeStampData->tm_mon + 1) & 0x2dU);
-
- strncat(timeStampString, srcString, stringSize);
-
-diff --git a/src/rde/rded/rde_amf.cc b/src/rde/rded/rde_amf.cc
-index 81e521e..d53cc48 100644
---- a/src/rde/rded/rde_amf.cc
-+++ b/src/rde/rded/rde_amf.cc
-@@ -102,7 +102,7 @@ static uint32_t rde_amf_healthcheck_start(RDE_AMF_CB *rde_amf_cb) {
- SaAmfHealthcheckKeyT Healthy;
- SaNameT SaCompName;
- char *phlth_ptr;
-- char hlth_str[256];
-+ char hlth_str[32];
-
- TRACE_ENTER();
-
-diff --git a/src/smf/smfd/SmfUpgradeCampaign.cc b/src/smf/smfd/SmfUpgradeCampaign.cc
-index 45cdce8..6761bcf 100644
---- a/src/smf/smfd/SmfUpgradeCampaign.cc
-+++ b/src/smf/smfd/SmfUpgradeCampaign.cc
-@@ -447,7 +447,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) {
- TRACE_ENTER();
- SaAisErrorT rc = SA_AIS_OK;
- SaImmAttrValuesT_2 **attributes;
-- int curCnt = 0;
-+ short int curCnt = 0;
-
- /* Read the SmfCampRestartInfo object smfCampRestartCnt attr */
- std::string obj = "smfRestartInfo=info," +
-@@ -473,7 +473,7 @@ SaAisErrorT SmfUpgradeCampaign::tooManyRestarts(bool *o_result) {
- attrsmfCampRestartCnt.setName("smfCampRestartCnt");
- attrsmfCampRestartCnt.setType("SA_IMM_ATTR_SAUINT32T");
- char buf[5];
-- snprintf(buf, 4, "%d", curCnt);
-+ snprintf(buf, 4, "%hd", curCnt);
- attrsmfCampRestartCnt.addValue(buf);
- imoCampRestartInfo.addValue(attrsmfCampRestartCnt);
-
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
new file mode 100644
index 0000000000..7e88c498ee
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-Use-correct-printf-format-for-__fsblkcnt_t.patch
@@ -0,0 +1,31 @@
+From 90f81c1fb3e560cfc99ee7ab9a48a1736e3929cd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Nov 2020 13:22:31 -0800
+Subject: [PATCH] Use correct printf format for __fsblkcnt_t
+
+This depends on time_t size and on some 32bit architectures e.g. riscv32
+this would be a 64bit value
+
+Fixes
+os_defs.c:920:40: error: format '%ld' expects argument of type 'long int', but argument 3 has type '__fsblkcnt_t' {aka 'long long unsigned int'} [-Werror=format=]
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/base/os_defs.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- 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_S
+ ((statsvfs.f_bfree - 1) * statsvfs.f_frsize)) {
+ syslog(
+ LOG_ERR,
++#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
++#endif
+ "\n",
+ (statsvfs.f_bfree * statsvfs.f_frsize),
+ req->info.write.i_write_size);
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 effe25c85c..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
@@ -1,20 +1,23 @@
-From ab00d6f5793b2d850f975bcb6d5d0aa6d7a9eaa4 Mon Sep 17 00:00:00 2001
+From c2668f7f2ea82a61115b7cae56ed081b41ff5153 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 22 Apr 2017 12:34:37 -0700
Subject: [PATCH] configure: Disable format-overflow if supported by gcc
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
- Makefile.am | 6 ++--
- configure.ac | 2 ++
- m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++++++++++
+Upstream-Status: Pending
+
+ Makefile.am | 6 +--
+ configure.ac | 2 +
+ m4/ax_check_compile_flag.m4 | 74 +++++++++++++++++++++++++++++++++++++
3 files changed, 79 insertions(+), 3 deletions(-)
create mode 100644 m4/ax_check_compile_flag.m4
-Index: opensaf-5.18.02/Makefile.am
-===================================================================
---- opensaf-5.18.02.orig/Makefile.am
-+++ opensaf-5.18.02/Makefile.am
+diff --git a/Makefile.am b/Makefile.am
+index b3d6553..5607fc2 100644
+--- a/Makefile.am
++++ b/Makefile.am
@@ -52,10 +52,10 @@ AM_CPPFLAGS = \
-pthread \
-D_GNU_SOURCE -DINTERNAL_VERSION_ID='"@INTERNAL_VERSION_ID@"' \
@@ -29,11 +32,11 @@ Index: opensaf-5.18.02/Makefile.am
if ENABLE_GCOV
AM_CFLAGS += --coverage
-Index: opensaf-5.18.02/configure.ac
-===================================================================
---- opensaf-5.18.02.orig/configure.ac
-+++ opensaf-5.18.02/configure.ac
-@@ -593,6 +593,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
+diff --git a/configure.ac b/configure.ac
+index 5b86730..47d1002 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -600,6 +600,8 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
fi
AC_SUBST(OSAF_HARDEN_FLAGS)
@@ -42,10 +45,11 @@ Index: opensaf-5.18.02/configure.ac
#############################################
# List the output Makefiles
#############################################
-Index: opensaf-5.18.02/m4/ax_check_compile_flag.m4
-===================================================================
+diff --git a/m4/ax_check_compile_flag.m4 b/m4/ax_check_compile_flag.m4
+new file mode 100644
+index 0000000..dcabb92
--- /dev/null
-+++ opensaf-5.18.02/m4/ax_check_compile_flag.m4
++++ b/m4/ax_check_compile_flag.m4
@@ -0,0 +1,74 @@
+# ===========================================================================
+# https://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html
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 5756a027b4..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
@@ -1,4 +1,4 @@
-From 6248b717b4861d16b80235fd8e57d64e4f636428 Mon Sep 17 00:00:00 2001
+From 979b2b6a1aa574a26e8b736049c4207d568f60f3 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 13 Apr 2017 17:39:07 -0700
Subject: [PATCH] configure: Pass linker specific options with -Wl
@@ -7,15 +7,18 @@ This helps make it pass the options to linker correctly
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/configure.ac b/configure.ac
-index df4fc58..02771c6 100644
+index 12a5d5c..5b86730 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -553,7 +553,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
+@@ -596,7 +596,7 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
if echo "${CFLAGS} ${CXXFLAGS}" | grep -q -- -O0; then
OSAF_HARDEN_FLAGS=""
fi
@@ -24,6 +27,3 @@ index df4fc58..02771c6 100644
fi
AC_SUBST(OSAF_HARDEN_FLAGS)
---
-2.12.2
-
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-create_empty_library-Use-CC-variable-intead-of-hardc.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-create_empty_library-Use-CC-variable-intead-of-hardc.patch
new file mode 100644
index 0000000000..21abcf75b5
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-create_empty_library-Use-CC-variable-intead-of-hardc.patch
@@ -0,0 +1,23 @@
+From 300fd3e27e71a91fc52d3f985ed4fde548852853 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 27 Sep 2019 12:50:11 -0700
+Subject: [PATCH] create_empty_library: Use CC variable intead of hardcoding
+ gcc
+
+This ensures that cross-compiles can succeed, otherwise we get wrong
+architecture on these stub libraries
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ scripts/create_empty_library | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/scripts/create_empty_library
++++ b/scripts/create_empty_library
+@@ -66,4 +66,4 @@ for s in $symbols; do
+ echo "SaAisErrorT $s() { return SA_AIS_ERR_UNAVAILABLE; }" >> "$tmpdir/lib.c"
+ done
+ rm -f "$1"
+-gcc -O2 -shared -fPIC "$tmpdir/lib.c" -Wl,-version-script="$2" -Wl,-soname="$libbase.so.$version1" -o "$1"
++$CC -O2 -shared -fPIC "$tmpdir/lib.c" -Wl,-version-script="$2" -Wl,-soname="$libbase.so.$version1" -o "$1" $LDFLAGS
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0001-immom_python-convert-to-python3.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-immom_python-convert-to-python3.patch
new file mode 100644
index 0000000000..f45874680d
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-immom_python-convert-to-python3.patch
@@ -0,0 +1,50 @@
+From ffc829603a2c50674c8e04de5221e43f80bfc1b2 Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 13:00:53 +0000
+Subject: [PATCH] immom_python: convert to python3
+
+Convert immom_python to use python3, python2 is EOL and is not supported
+by all distributions anymore.
+
+Upstream-Status: Pending
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ samples/immsv/immom_python/immom.py | 2 +-
+ samples/immsv/immom_python/immomexamples.py | 2 +-
+ samples/immsv/immom_python/immomtest.py | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/samples/immsv/immom_python/immom.py b/samples/immsv/immom_python/immom.py
+index 4f68625ed..f88197000 100755
+--- a/samples/immsv/immom_python/immom.py
++++ b/samples/immsv/immom_python/immom.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/python
++#!/usr/bin/env python3
+ """
+ immom -- An IMM Object Manager in Python
+
+diff --git a/samples/immsv/immom_python/immomexamples.py b/samples/immsv/immom_python/immomexamples.py
+index 70c579265..bd693c25f 100755
+--- a/samples/immsv/immom_python/immomexamples.py
++++ b/samples/immsv/immom_python/immomexamples.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#!/usr/bin/env python3
+
+ import immom
+
+diff --git a/samples/immsv/immom_python/immomtest.py b/samples/immsv/immom_python/immomtest.py
+index 4b98bea8c..ed2463ba9 100755
+--- a/samples/immsv/immom_python/immomtest.py
++++ b/samples/immsv/immom_python/immomtest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ # -*- coding: utf-8 -*-
+
+ import immom
+--
+2.17.1
+
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 76c47c6584..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
@@ -1,4 +1,4 @@
-From 508ea7c0d67243feb1684eaa83569cb687561d64 Mon Sep 17 00:00:00 2001
+From c21f77d592415f316138c05f581192a1f061e735 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 15 Sep 2017 10:09:03 -0700
Subject: [PATCH] immpbe_dump.cc: Use sys/wait.h instead of wait.h
@@ -7,12 +7,15 @@ Fixes
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/src/imm/common/immpbe_dump.cc b/src/imm/common/immpbe_dump.cc
-index 100222f37..33e47ce3c 100644
+index e6b3cc5..3956028 100644
--- a/src/imm/common/immpbe_dump.cc
+++ b/src/imm/common/immpbe_dump.cc
@@ -26,12 +26,12 @@
@@ -27,8 +30,5 @@ index 100222f37..33e47ce3c 100644
#include <sys/stat.h>
+#include <sys/wait.h>
#include <libgen.h>
-
- #include <saAis.h>
---
-2.14.1
-
+ #include <set>
+ #include <vector>
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-include-missing-array-header.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0001-include-missing-array-header.patch
new file mode 100644
index 0000000000..e735d432a7
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0001-include-missing-array-header.patch
@@ -0,0 +1,32 @@
+From 6168d43ddd353b92ad8bcd5c49dc68f18caa8a00 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Apr 2022 17:07:49 -0700
+Subject: [PATCH 1/2] include missing <array> header
+
+Fixes
+src/osaf/consensus/key_value.cc:25:30: error: aggregate 'std::array<char, 128> buffer' has incomplete type and cannot be defined
+ 25 | std::array<char, buf_size> buffer;
+ | ^~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/osaf/consensus/key_value.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/osaf/consensus/key_value.cc b/src/osaf/consensus/key_value.cc
+index 692dd3f..6e16cbf 100644
+--- a/src/osaf/consensus/key_value.cc
++++ b/src/osaf/consensus/key_value.cc
+@@ -18,7 +18,7 @@
+ #include "base/getenv.h"
+ #include "base/logtrace.h"
+ #include "osaf/consensus/consensus.h"
+-
++#include <array>
+ int KeyValue::Execute(const std::string& command, std::string& output) {
+ TRACE_ENTER();
+ constexpr size_t buf_size = 128;
+--
+2.35.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 4a2a825f99..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
@@ -1,4 +1,4 @@
-From 6442b57a855e273aa5a3d93e8596783cea128073 Mon Sep 17 00:00:00 2001
+From 7fb393c66df33110fef0cbabac7d304f12eb82e4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 15 Sep 2017 09:39:40 -0700
Subject: [PATCH] src: Add missing header limits.h for _POSIX_HOST_NAME_MAX
@@ -7,7 +7,10 @@ Use _GNU_SOURCE instead of libc internal __USE_GNU
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 +-
@@ -18,7 +21,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
7 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/src/base/os_defs.h b/src/base/os_defs.h
-index 50a9bf5fc..af6842863 100644
+index a570c43..3559b19 100644
--- a/src/base/os_defs.h
+++ b/src/base/os_defs.h
@@ -47,17 +47,18 @@
@@ -43,7 +46,7 @@ index 50a9bf5fc..af6842863 100644
#include <pthread.h>
diff --git a/src/mds/mds_dt_tcp.c b/src/mds/mds_dt_tcp.c
-index 1407eb1ab..a87c22faa 100644
+index 1407eb1..a87c22f 100644
--- a/src/mds/mds_dt_tcp.c
+++ b/src/mds/mds_dt_tcp.c
@@ -27,7 +27,6 @@
@@ -55,7 +58,7 @@ index 1407eb1ab..a87c22faa 100644
#include <sys/types.h>
#include <unistd.h>
diff --git a/src/mds/mds_dt_tcp_disc.h b/src/mds/mds_dt_tcp_disc.h
-index a6249d73e..574f52681 100644
+index a6249d7..574f526 100644
--- a/src/mds/mds_dt_tcp_disc.h
+++ b/src/mds/mds_dt_tcp_disc.h
@@ -24,7 +24,7 @@
@@ -68,7 +71,7 @@ index a6249d73e..574f52681 100644
/* mds_indentifire + mds_version + msg_type + scope_type + server_type +
server_instance_lower + server_instance_upper + sub_ref_val + sub_ref_val +
diff --git a/src/mds/mds_dt_tipc.c b/src/mds/mds_dt_tipc.c
-index 37745e7f0..9b3255567 100644
+index 7714175..a0ed3b6 100644
--- a/src/mds/mds_dt_tipc.c
+++ b/src/mds/mds_dt_tipc.c
@@ -35,7 +35,6 @@
@@ -80,7 +83,7 @@ index 37745e7f0..9b3255567 100644
#include <sys/types.h>
#include <unistd.h>
diff --git a/src/mds/mds_dt_tipc.h b/src/mds/mds_dt_tipc.h
-index e73a11b09..401d208c2 100644
+index e73a11b..401d208 100644
--- a/src/mds/mds_dt_tipc.h
+++ b/src/mds/mds_dt_tipc.h
@@ -32,7 +32,7 @@
@@ -93,7 +96,7 @@ index e73a11b09..401d208c2 100644
#include <errno.h>
#include <fcntl.h>
diff --git a/src/mds/mds_dt_trans.c b/src/mds/mds_dt_trans.c
-index 6f621e04e..5aacbd33e 100644
+index 6f621e0..5aacbd3 100644
--- a/src/mds/mds_dt_trans.c
+++ b/src/mds/mds_dt_trans.c
@@ -26,7 +26,6 @@
@@ -105,7 +108,7 @@ index 6f621e04e..5aacbd33e 100644
#define MDS_PROT_TCP 0xA0
diff --git a/src/ntf/ntfd/NtfLogger.cc b/src/ntf/ntfd/NtfLogger.cc
-index 84014b578..31b1ccc6c 100644
+index fd17c58..1120008 100644
--- a/src/ntf/ntfd/NtfLogger.cc
+++ b/src/ntf/ntfd/NtfLogger.cc
@@ -20,7 +20,7 @@
@@ -117,6 +120,3 @@ index 84014b578..31b1ccc6c 100644
#include "base/osaf_utility.h"
#include <saAis.h>
---
-2.14.1
-
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/0002-Fix-format-truncation-errors.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch
deleted file mode 100644
index 9865a5e1b8..0000000000
--- a/meta-networking/recipes-daemons/opensaf/opensaf/0002-Fix-format-truncation-errors.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 4d58d26cbd3622183afc2e8f85c9c81edaf135df Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 16 Apr 2018 14:56:47 -0700
-Subject: [PATCH 2/2] Fix format-truncation errors
-
-Fixes errors with gcc8 eg.
-error: '%u' directive output may be truncated writing between 1 and 10 bytes into a region of size between 0 and 254 [-Werror=format-truncation=]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/base/daemon.c | 4 ++--
- src/mds/mds_c_db.c | 8 ++++----
- src/mds/mds_core.h | 4 ++--
- src/mds/mds_dt2c.h | 2 +-
- 4 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/src/base/daemon.c b/src/base/daemon.c
-index 27170d7..da97700 100644
---- a/src/base/daemon.c
-+++ b/src/base/daemon.c
-@@ -92,11 +92,11 @@ static int __create_pidfile(const char *pidfile)
- {
- FILE *file = NULL;
- int fd, rc = 0;
-- char pidfiletmp[NAME_MAX] = {0};
-+ char pidfiletmp[NAME_MAX+12] = {0};
- pid_t pid;
-
- pid = getpid();
-- snprintf(pidfiletmp, NAME_MAX, "%s.%u.tmp", pidfile, pid);
-+ snprintf(pidfiletmp, NAME_MAX+12, "%s.%u.tmp", pidfile, pid);
-
- /* open the file and associate a stream with it */
- if (((fd = open(pidfiletmp, O_RDWR | O_CREAT, 0644)) == -1) ||
-diff --git a/src/mds/mds_c_db.c b/src/mds/mds_c_db.c
-index e6b95cd..3d4a222 100644
---- a/src/mds/mds_c_db.c
-+++ b/src/mds/mds_c_db.c
-@@ -124,10 +124,10 @@ void get_adest_details(MDS_DEST adest, char *adest_details)
- }
-
- if (remote == true)
-- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-+ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
- "<rem_nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
- else
-- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-+ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
- "<nodeid[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
-
- m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details);
-@@ -207,10 +207,10 @@ void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, MDS_SVC_ID svc_id,
- }
-
- if (remote == true)
-- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-+ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
- "<rem_node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
- else
-- snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN,
-+ snprintf(adest_details, MDS_MAX_PROCESS_NAME_LEN+24,
- "<node[0x%" PRIx32 "]:%s>", ncs_node_id, process_name);
- done:
- m_MDS_LOG_DBG("MDS:DB: adest_details: %s ", adest_details);
-diff --git a/src/mds/mds_core.h b/src/mds/mds_core.h
-index 37696d4..7f5225d 100644
---- a/src/mds/mds_core.h
-+++ b/src/mds/mds_core.h
-@@ -163,7 +163,7 @@ typedef struct mds_subscription_results_info {
- uint32_t msg_snd_cnt; /* Message send count to this destination */
- uint32_t msg_rcv_cnt; /* Message rcv count from this destination */
- char sub_adest_details
-- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[slotno]:processname[pid]> */
-+ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[slotno]:processname[pid]> */
-
- } MDS_SUBSCRIPTION_RESULTS_INFO;
-
-@@ -194,7 +194,7 @@ typedef struct mds_subscription_info {
- count is grater than ZERO bcast (multi-unicast) */
- uint32_t prev_ver_sub_count;
- char sub_adest_details
-- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[slotno]:processname[pid]> */
-+ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[slotno]:processname[pid]> */
-
- } MDS_SUBSCRIPTION_INFO;
-
-diff --git a/src/mds/mds_dt2c.h b/src/mds/mds_dt2c.h
-index 012999c..006b722 100644
---- a/src/mds/mds_dt2c.h
-+++ b/src/mds/mds_dt2c.h
-@@ -143,7 +143,7 @@ typedef struct mdtm_send_req {
- */
- MDS_DEST adest; /* MDTM to do local/remote routing, destination adest */
- char sub_adest_details
-- [MDS_MAX_PROCESS_NAME_LEN]; /* <node[nodeid]:processname[pid]> */
-+ [MDS_MAX_PROCESS_NAME_LEN+24]; /* <node[nodeid]:processname[pid]> */
- MDS_SEND_PRIORITY_TYPE pri;
- MDS_CLIENT_MSG_FORMAT_VER
- msg_fmt_ver; /* message format version specification */
---
-2.17.0
-
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf/0002-configure-Disable-selected-warnings.patch b/meta-networking/recipes-daemons/opensaf/opensaf/0002-configure-Disable-selected-warnings.patch
new file mode 100644
index 0000000000..a9953259ce
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf/0002-configure-Disable-selected-warnings.patch
@@ -0,0 +1,28 @@
+From fe654d5340d18f04e4689ba19f843554909a0c00 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Apr 2022 17:16:37 -0700
+Subject: [PATCH 2/2] configure: Disable selected warnings
+
+These warnings are emitted when compiling with gcc 11 and gcc 12
+Do not treat them as errors
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -601,7 +601,10 @@ if test -z "$OSAF_HARDEN_FLAGS"; then
+ fi
+ AC_SUBST(OSAF_HARDEN_FLAGS)
+
+-AX_CHECK_COMPILE_FLAG([-Werror=format-overflow],[NOWARNINGS=-Wno-error=format-overflow])
++AX_CHECK_COMPILE_FLAG([-Werror=format-overflow],[NOWARNINGS='-Wno-error=format-overflow'])
++AX_CHECK_COMPILE_FLAG([-Wuse-after-free],[NOWARNINGS+=' -Wno-error=use-after-free'])
++AX_CHECK_COMPILE_FLAG([-Wstringop-truncation],[NOWARNINGS+=' -Wno-error=stringop-truncation'])
++AX_CHECK_COMPILE_FLAG([-Warray-bounds],[NOWARNINGS+=' -Wno-error=array-bounds'])
+ AC_SUBST(NOWARNINGS)
+ #############################################
+ # List the output Makefiles
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb b/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb
deleted file mode 100644
index 0ef13b0485..0000000000
--- a/meta-networking/recipes-daemons/opensaf/opensaf_5.18.02.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification"
-DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \
-middleware consistent with Service Availability Forum (SA Forum) \
-specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \
-established by leading Communications and Enterprise Computing Companies to \
-facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \
-code base in commercial products. \
-The OpenSAF project was launched in mid 2007 and has been under development by \
-an informal group of supporters of the OpenSAF initiative. The OpenSAF \
-Foundation was founded on January 22nd 2008 with Emerson Network Power, \
-Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members."
-HOMEPAGE = "http://www.opensaf.org"
-SECTION = "admin"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7"
-
-DEPENDS = "libxml2 python"
-TOOLCHAIN = "gcc"
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
- file://0001-configure-Pass-linker-specific-options-with-Wl.patch \
- file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \
- file://0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch \
- file://0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch \
- file://0001-Catch-std-ifstream-failure-by-reference.patch \
- file://0002-Fix-format-truncation-errors.patch \
- file://0001-Fix-string-overflow-in-snprintf.patch \
- "
-SRC_URI[md5sum] = "42064f5ddbc7f560bfc5ff93ea9eecc7"
-SRC_URI[sha256sum] = "f9e24897f9cfd63bb3115f6275c706de1702d3d9bae2fc423227db72b23c37f0"
-
-inherit autotools useradd systemd pkgconfig
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "-f -r opensaf"
-USERADD_PARAM_${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf"
-
-SYSTEMD_SERVICE_${PN} += "opensafd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-PACKAGECONFIG[systemd] = ",,systemd"
-PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03,,openhpi"
-PACKAGECONFIG[plm] = "--enable-ais-plm,--disable-ais-plm,libvirt openhpi"
-
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}"
-
-PKGLIBDIR="${libdir}"
-
-LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
-
-do_install_append() {
- cp -av --no-preserve=ownership ${B}/lib/.libs/*.so* ${D}${libdir}
- rm -fr "${D}${localstatedir}/lock"
- rm -fr "${D}${localstatedir}/run"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
- rmdir --ignore-fail-on-non-empty "${D}${datadir}/java"
- if [ ! -d "${D}${sysconfdir}/init.d" ]; then
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${B}/osaf/services/infrastructure/nid/scripts/opensafd ${D}${sysconfdir}/init.d/
- fi
-}
-
-FILES_${PN} += "${systemd_unitdir}/system/*.service"
-FILES_${PN}-staticdev += "${PKGLIBDIR}/*.a"
-
-INSANE_SKIP_${PN} = "dev-so"
-
-RDEPENDS_${PN} += "bash python"
-
diff --git a/meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb b/meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb
new file mode 100644
index 0000000000..3dd950c720
--- /dev/null
+++ b/meta-networking/recipes-daemons/opensaf/opensaf_5.22.01.bb
@@ -0,0 +1,99 @@
+SUMMARY = "OpenSAF is an open source implementation of the SAF AIS specification"
+DESCRIPTION = "OpenSAF is an open source project established to develop a base platform \
+middleware consistent with Service Availability Forum (SA Forum) \
+specifications, under the LGPLv2.1 license. The OpenSAF Foundation was \
+established by leading Communications and Enterprise Computing Companies to \
+facilitate the OpenSAF Project and to accelerate the adoption of the OpenSAF \
+code base in commercial products. \
+The OpenSAF project was launched in mid 2007 and has been under development by \
+an informal group of supporters of the OpenSAF initiative. The OpenSAF \
+Foundation was founded on January 22nd 2008 with Emerson Network Power, \
+Ericsson, Nokia Siemens Networks, HP and Sun Microsystems as founding members."
+HOMEPAGE = "http://www.opensaf.org"
+SECTION = "admin"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=a916467b91076e631dd8edb7424769c7"
+
+DEPENDS = "libxml2 python3"
+TOOLCHAIN = "gcc"
+
+SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/releases/${BPN}-${PV}.tar.gz \
+ file://0001-configure-Pass-linker-specific-options-with-Wl.patch \
+ file://0001-configure-Disable-format-overflow-if-supported-by-gc.patch \
+ file://0001-src-Add-missing-header-limits.h-for-_POSIX_HOST_NAME.patch \
+ file://0001-immpbe_dump.cc-Use-sys-wait.h-instead-of-wait.h.patch \
+ file://0001-create_empty_library-Use-CC-variable-intead-of-hardc.patch \
+ file://0001-immom_python-convert-to-python3.patch \
+ file://0001-Fix-build-with-fno-common.patch \
+ 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"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/opensaf/files/releases"
+
+inherit autotools useradd systemd pkgconfig
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "-f -r opensaf"
+USERADD_PARAM:${PN} = "-r -g opensaf -d ${datadir}/opensaf/ -s ${sbindir}/nologin -c \"OpenSAF\" opensaf"
+
+SYSTEMD_SERVICE:${PN} += "opensafd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+PACKAGECONFIG[systemd] = ",,systemd"
+PACKAGECONFIG[openhpi] = "--with-hpi-interface=B03,,openhpi"
+PACKAGECONFIG[plm] = "--enable-ais-plm,--disable-ais-plm,libvirt openhpi"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd', '', d)}"
+
+CPPFLAGS += "-Wno-error"
+CXXFLAGS += "-Wno-error"
+LDFLAGS += "-Wl,--as-needed -latomic -Wl,--no-as-needed"
+
+do_install:append() {
+ rm -fr "${D}${localstatedir}/lock"
+ rm -fr "${D}${localstatedir}/run"
+ rmdir "${D}${localstatedir}/log/${BPN}/saflog"
+ rmdir "${D}${localstatedir}/log/${BPN}"
+ rmdir "${D}${localstatedir}/log"
+ rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
+ rmdir --ignore-fail-on-non-empty "${D}${datadir}/java"
+
+ # Rename /etc/init.d/opensafd to /usr/lib/opensaf/opensafd-init as it is
+ # needed by opensafd.service, but /etc/init.d is removed by systemd.bbclass
+ # if sysvinit is not in DISTRO_FEATURES.
+ mv ${D}${sysconfdir}/init.d/opensafd ${D}${libdir}/${BPN}/opensafd-init
+ ln -srf ${D}${libdir}/${BPN}/opensafd-init ${D}${sysconfdir}/init.d/opensafd
+ [ ! -f ${D}${systemd_system_unitdir}/opensafd.service ] ||
+ sed -ri -e "s|/etc/init.d/opensafd|${libdir}/${BPN}/opensafd-init|" ${D}${systemd_system_unitdir}/opensafd.service
+
+ # Create /var/log/opensaf/saflog in runtime.
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+ install -d ${D}${nonarch_libdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/${BPN}/saflog - - - -" > ${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}/saflog none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+ fi
+}
+
+FILES:${PN} += "${libdir}/libSa*.so ${systemd_unitdir}/system/*.service"
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
+FILES:${PN}-dev += "${libdir}/libopensaf_core.so"
+FILES:${PN}-staticdev += "${PKGLIBDIR}/*.a"
+
+INSANE_SKIP:${PN} = "dev-so"
+
+RDEPENDS:${PN} += "bash python3-core"
+
+# http://errors.yoctoproject.org/Errors/Details/186970/
+COMPATIBLE_HOST:libc-musl = 'null'
+
+FILES_SOLIBSDEV = ""
diff --git a/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch b/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch
deleted file mode 100644
index 6b86e39259..0000000000
--- a/meta-networking/recipes-daemons/postfix/files/0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 63619acf25151d4dade6d65732722ec4a710a5ac Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 09:54:25 -0700
-Subject: [PATCH] Check for glibc before setting CANT_USE_SEND_RECV_MSG
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/util/sys_defs.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/util/sys_defs.h b/src/util/sys_defs.h
-index f720e2a..7314c63 100644
---- a/src/util/sys_defs.h
-+++ b/src/util/sys_defs.h
-@@ -813,7 +813,7 @@ extern int initgroups(const char *, int);
- #define KERNEL_VERSION(a,b,c) (LINUX_VERSION_CODE + 1)
- #endif
- #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,2,0)) \
-- || (__GLIBC__ < 2)
-+ || (defined(__GLIBC__) && (__GLIBC__ < 2))
- #define CANT_USE_SEND_RECV_MSG
- #define DEF_SMTP_CACHE_DEMAND 0
- #else
---
-2.13.3
-
diff --git a/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch b/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch
new file mode 100644
index 0000000000..8c9c13b1c4
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/0001-Fix-makedefs.patch
@@ -0,0 +1,117 @@
+From 9000ee4d8bb5c5e0bcc588e9bec86eb56f4285e1 Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Fri, 19 Jun 2015 16:45:54 +0900
+Subject: [PATCH] Fix makedefs
+
+1)remove RANLIB, SYSLIBS, AR and get them from env.
+2)reference sysroot when searching header files
+3)include sysroot path instead of absolute include path
+for Linux2 and Linux3 systems.
+4)for non-native build, search STAGING_BASELIBDIR/LIBDIR
+ native build, search host library path for nsl and resolv library
+ which comes from libc
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+ makedefs | 27 +++++++++++----------------
+ 1 file changed, 11 insertions(+), 16 deletions(-)
+
+diff --git a/makedefs b/makedefs
+index 3448c1e..78e0717 100644
+--- a/makedefs
++++ b/makedefs
+@@ -197,9 +197,6 @@ echo "# pie=$pie"
+
+ # Defaults for most sane systems
+
+-RANLIB=ranlib
+-SYSLIBS=
+-AR=ar
+ ARFL=rv
+
+ # Ugly function to make our error message more visible among the
+@@ -492,12 +489,12 @@ case "$SYSTEM.$RELEASE" in
+ case "$CCARGS" in
+ *-DNO_DB*) ;;
+ *-DHAS_DB*) ;;
+- *) if [ -f /usr/include/db.h ]
++ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
+ then
+ : we are all set
+- elif [ -f /usr/include/db/db.h ]
++ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
+ then
+- CCARGS="$CCARGS -I/usr/include/db"
++ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
+ else
+ # No, we're not going to try db1 db2 db3 etc.
+ # On a properly installed system, Postfix builds
+@@ -506,12 +503,12 @@ case "$SYSTEM.$RELEASE" in
+ echo "Install the appropriate db*-devel package first." 1>&2
+ exit 1
+ fi
+- SYSLIBS="-ldb"
++ SYSLIBS="$SYSLIBS -ldb"
+ ;;
+ esac
+ for name in nsl resolv $GDBM_LIBS
+ do
+- for lib in /usr/lib64 /lib64 /usr/lib /lib
++ for lib in $BUILD_SYSROOT_NSL_PATH
+ do
+ test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+ SYSLIBS="$SYSLIBS -l$name"
+@@ -531,7 +528,7 @@ case "$SYSTEM.$RELEASE" in
+ if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ]
+ then
+ :
+- elif [ ! -e /usr/include/sys/epoll.h ]
++ elif [ ! -e "$BUILD_SYSROOT"/usr/include/sys/epoll.h ]
+ then
+ echo CCARGS="$CCARGS -DNO_EPOLL"
+ else
+@@ -555,8 +552,6 @@ int main(int argc, char **argv)
+ }
+ EOF
+ ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+- ./makedefs.test 2>/dev/null ||
+- CCARGS="$CCARGS -DNO_EPOLL"
+ rm -f makedefs.test makedefs.test.[co]
+ fi;;
+ esac
+@@ -572,12 +567,12 @@ EOF
+ case "$CCARGS" in
+ *-DNO_DB*) ;;
+ *-DHAS_DB*) ;;
+- *) if [ -f /usr/include/db.h ]
++ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
+ then
+ : we are all set
+- elif [ -f /usr/include/db/db.h ]
++ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
+ then
+- CCARGS="$CCARGS -I/usr/include/db"
++ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
+ else
+ # On a properly installed system, Postfix builds
+ # by including <db.h> and by linking with -ldb
+@@ -585,12 +580,12 @@ EOF
+ echo "Install the appropriate db*-devel package first." 1>&2
+ exit 1
+ fi
+- SYSLIBS="-ldb"
++ SYSLIBS="$SYSLIBS -ldb"
+ ;;
+ esac
+ for name in nsl resolv
+ do
+- for lib in /usr/lib64 /lib64 /usr/lib /usr/lib/* /lib /lib/*
++ for lib in $BUILD_SYSROOT_NSL_PATH
+ do
+ test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+ SYSLIBS="$SYSLIBS -l$name"
+--
+2.17.1
+
diff --git a/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch b/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch
deleted file mode 100644
index 763a4a9b98..0000000000
--- a/meta-networking/recipes-daemons/postfix/files/0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From a0d0de10e4c5ab55bc2fa48798079e2876b1211d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 10:29:37 -0700
-Subject: [PATCH] makedefs: Use native compiler to build makedefs.test
-
-Its a binary used during build
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- makedefs | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/makedefs b/makedefs
-index 9fd4bc2..5ee7747 100644
---- a/makedefs
-+++ b/makedefs
-@@ -526,7 +526,7 @@ int main(int argc, char **argv)
- exit(0);
- }
- EOF
-- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
-+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
- rm -f makedefs.test makedefs.test.[co]
- fi;;
- esac
-@@ -762,7 +762,7 @@ int main(int argc, char **argv)
- exit(0);
- }
- EOF
-- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
-+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
- ./makedefs.test 2>/dev/null ||
- CCARGS="$CCARGS -DNO_SIGSETJMP"
- rm -f makedefs.test makedefs.test.[co]
-@@ -796,7 +796,7 @@ int main(int argc, char **argv)
- &error) != 14);
- }
- EOF
-- ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
-+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
- $icu_ldflags >/dev/null 2>&1
- if ./makedefs.test 2>/dev/null ; then
- CCARGS="$CCARGS $icu_cppflags"
-@@ -911,7 +911,7 @@ int main(void)
- exit(ferror(stdout) ? 1 : 0);
- }
- EOF
-- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
-+ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
- ./makedefs.test || exit 1
- rm -f makedefs.test makedefs.test.[co]
- }
-@@ -1067,7 +1067,7 @@ int main(void)
- exit(ferror(stdout) ? 1 : 0);
- }
- EOF
-- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
-+ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
- parm_val=`./makedefs.test` || exit 1
- rm -f makedefs.test makedefs.test.[co]
- eval ${parm_name}=\""\$parm_val"\"
---
-2.14.1
-
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
new file mode 100644
index 0000000000..28199ccdd2
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/0002-Change-fixed-postconf-to-a-variable-for-cross-compil.patch
@@ -0,0 +1,107 @@
+From cb69ffda0c2cbde6acdc8b01c8d5ff78d81a84fc Mon Sep 17 00:00:00 2001
+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
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
+---
+ Makefile.in | 2 +-
+ postfix-install | 18 ++++++++++--------
+ 2 files changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 65e7911..40295be 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -22,7 +22,7 @@ META = meta/main.cf.proto meta/master.cf.proto meta/postfix-files \
+ EXPAND = sed -e "s;\$${LIB_PREFIX};$(LIB_PREFIX);" \
+ -e "s;\$${LIB_SUFFIX};$(LIB_SUFFIX);"
+ SHLIB_DIR_OVERRIDE = \
+- $${shlib_directory:-`$(SHLIB_ENV) bin/postconf -dhx shlib_directory`}
++ $${shlib_directory:-`$(SHLIB_ENV) $(POSTCONF) -dhx shlib_directory`}
+
+ default: update
+
+diff --git a/postfix-install b/postfix-install
+index e498cd3..8049f43 100644
+--- a/postfix-install
++++ b/postfix-install
+@@ -244,8 +244,8 @@ test -z "$non_interactive" -a ! -t 0 && {
+ exit 1
+ }
+
+-test -x bin/postconf || {
+- echo $0: Error: no bin/postconf file. Did you forget to run \"make\"? 1>&2
++test -x "$POSTCONF" || {
++ echo $0: Error: no $POSTCONF file. Did you forget to run \"make\"? 1>&2
+ exit 1
+ }
+
+@@ -266,7 +266,7 @@ do
+ case "$junk" in
+ *MAIL_VERSION*)
+ case "$mail_version" in
+- "") mail_version="`bin/postconf -dhx mail_version`" || exit 1
++ "") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
+ esac
+ val=`echo "$junk" | sed 's/MAIL_VERSION$/'"$mail_version/g"` || exit 1
+ case "$val" in
+@@ -454,7 +454,7 @@ template files main.cf.proto and master.cf.proto."
+
+ : ${install_root=/}
+ : ${tempdir=`pwd`}
+-: ${config_directory=`bin/postconf -c conf -h -d config_directory`}
++: ${config_directory=`$POSTCONF -c conf -h -d config_directory`}
+
+ # Find out the location of installed configuration files.
+
+@@ -520,7 +520,7 @@ test -f $CONFIG_DIRECTORY/main.cf && {
+ case "$junk" in
+ "") eval unset $name;;
+ esac
+- eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -hx $name\`} ||
++ eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -hx $name\`} ||
+ exit 1
+ done
+ }
+@@ -533,7 +533,7 @@ do
+ case "$junk" in
+ "") eval unset $name;;
+ esac
+- eval : \${$name=\`bin/postconf -c conf -d -hx $name\`} || exit 1
++ eval : \${$name=\`$POSTCONF -c conf -d -hx $name\`} || exit 1
+ done
+
+ # Override settings manually.
+@@ -670,6 +670,8 @@ README_DIRECTORY=$install_root$readme_directory
+ SHLIB_DIRECTORY=$install_root$shlib_directory
+ META_DIRECTORY=$install_root$meta_directory
+
++test "x$POSTCONF" != "x" || POSTCONF="bin/postconf"
++
+ # Avoid repeated tests for existence of these; default permissions suffice.
+
+ test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1
+@@ -841,7 +843,7 @@ IFS="$BACKUP_IFS"
+ # the wrong place when Postfix is being upgraded.
+
+ case "$mail_version" in
+-"") mail_version="`bin/postconf -dhx mail_version`" || exit 1
++"") mail_version="`$POSTCONF -c $CONFIG_DIRECTORY -dhx mail_version`" || exit 1
+ esac
+
+ # Undo MAIL_VERSION expansion at the end of a parameter value. If
+@@ -861,7 +863,7 @@ do
+ esac
+ done
+
+-bin/postconf -c $CONFIG_DIRECTORY -e \
++"$POSTCONF" -c $CONFIG_DIRECTORY -e \
+ "daemon_directory = $daemon_directory" \
+ "data_directory = $data_directory" \
+ "command_directory = $command_directory" \
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..1545f21637
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/0003-makedefs-Use-native-compiler-to-build-makedefs.test.patch
@@ -0,0 +1,66 @@
+From 995bddd9563b1aecca2369f2f9c675f88bdc0053 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 26 Aug 2017 10:29:37 -0700
+Subject: [PATCH] makedefs: Use native compiler to build makedefs.test
+
+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/makedefs b/makedefs
+index 78e0717..3299eba 100644
+--- a/makedefs
++++ b/makedefs
+@@ -551,7 +551,7 @@ int main(int argc, char **argv)
+ exit(0);
+ }
+ EOF
+- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ rm -f makedefs.test makedefs.test.[co]
+ fi;;
+ esac
+@@ -787,7 +787,7 @@ int main(int argc, char **argv)
+ exit(0);
+ }
+ EOF
+- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c || exit 1
+ ./makedefs.test 2>/dev/null ||
+ CCARGS="$CCARGS -DNO_SIGSETJMP"
+ rm -f makedefs.test makedefs.test.[co]
+@@ -823,7 +823,7 @@ int main(int argc, char **argv)
+ &error) != 14);
+ }
+ EOF
+- ${CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
++ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ $icu_ldflags >/dev/null 2>&1
+ if ./makedefs.test 2>/dev/null ; then
+ CCARGS="$CCARGS $icu_cppflags"
+@@ -938,7 +938,7 @@ int main(void)
+ exit(ferror(stdout) ? 1 : 0);
+ }
+ EOF
+- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
++ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+ ./makedefs.test || exit 1
+ rm -f makedefs.test makedefs.test.[co]
+ }
+@@ -1094,7 +1094,7 @@ int main(void)
+ exit(ferror(stdout) ? 1 : 0);
+ }
+ EOF
+- eval ${CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
++ eval ${BUILD_CC-gcc} ${CCARGS} -o makedefs.test makedefs.test.c || exit 1
+ parm_val=`./makedefs.test` || exit 1
+ rm -f makedefs.test makedefs.test.[co]
+ eval ${parm_name}=\""\$parm_val"\"
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..a38e783309
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/0004-Fix-icu-config.patch
@@ -0,0 +1,34 @@
+From afef4a9391e6bb1a6c3e73d370f240577ed8b0dd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 16 Jan 2022 11:21:54 +0800
+Subject: [PATCH] Fix icu config
+
+do not entertain cppflags from icu, this is because
+icu-config feeds the -I path without sysroot which
+caused native headers to be included and build is
+corrupted in any case its just adding -I/usr/include
+to the CCARGS which we loose nothing if its not
+entertained.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ makedefs | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/makedefs b/makedefs
+index 3299eba..2a76f20 100644
+--- a/makedefs
++++ b/makedefs
+@@ -826,7 +826,6 @@ EOF
+ ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
+ $icu_ldflags >/dev/null 2>&1
+ if ./makedefs.test 2>/dev/null ; then
+- CCARGS="$CCARGS $icu_cppflags"
+ SYSLIBS="$SYSLIBS $icu_ldflags"
+ else
+ CCARGS="$CCARGS -DNO_EAI"
+--
+2.17.1
+
diff --git a/meta-networking/recipes-daemons/postfix/files/0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch b/meta-networking/recipes-daemons/postfix/files/0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
new file mode 100644
index 0000000000..b425cf8432
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/0005-makedefs-add-lnsl-and-lresolv-to-SYSLIBS-by-default.patch
@@ -0,0 +1,58 @@
+From 545d4a79b50caa5698622c0c1905ae154197a16f Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Fri, 12 Oct 2018 12:38:02 +0800
+Subject: [PATCH] makedefs: add -lnsl and -lresolv to SYSLIBS by default
+
+We don't need to check libnsl.so and libresolv.so since the libnsl2 is
+specified in DEPENDS and libresolv.so is from c libarary.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ makedefs | 22 ++--------------------
+ 1 file changed, 2 insertions(+), 20 deletions(-)
+
+diff --git a/makedefs b/makedefs
+index 2a76f20..9d5db9f 100644
+--- a/makedefs
++++ b/makedefs
+@@ -506,16 +506,7 @@ case "$SYSTEM.$RELEASE" in
+ SYSLIBS="$SYSLIBS -ldb"
+ ;;
+ esac
+- for name in nsl resolv $GDBM_LIBS
+- do
+- for lib in $BUILD_SYSROOT_NSL_PATH
+- do
+- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+- SYSLIBS="$SYSLIBS -l$name"
+- break
+- }
+- done
+- done
++ SYSLIBS="$SYSLIBS -lnsl -lresolv"
+ # Kernel 2.4 added IPv6
+ case "$RELEASE" in
+ 2.[0-3].*) CCARGS="$CCARGS -DNO_IPV6";;
+@@ -583,16 +574,7 @@ EOF
+ SYSLIBS="$SYSLIBS -ldb"
+ ;;
+ esac
+- for name in nsl resolv
+- do
+- for lib in $BUILD_SYSROOT_NSL_PATH
+- do
+- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
+- SYSLIBS="$SYSLIBS -l$name"
+- break
+- }
+- done
+- done
++ SYSLIBS="$SYSLIBS -lnsl -lresolv"
+ SYSLIBS="$SYSLIBS -ldl"
+ : ${SHLIB_SUFFIX=.so}
+ : ${SHLIB_CFLAGS=-fPIC}
+--
+2.17.1
+
diff --git a/meta-networking/recipes-daemons/postfix/files/0006-makedefs-Account-for-linux-6.x-version.patch b/meta-networking/recipes-daemons/postfix/files/0006-makedefs-Account-for-linux-6.x-version.patch
new file mode 100644
index 0000000000..ad1704520c
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/files/0006-makedefs-Account-for-linux-6.x-version.patch
@@ -0,0 +1,35 @@
+From e5ddcf9575437bacd64c2b68501b413014186a6a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 19 Oct 2022 10:15:01 -0700
+Subject: [PATCH] makedefs: Account for linux 6.x version
+
+Major version has bumped to 6 and script needs to know that
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ makedefs | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/makedefs
++++ b/makedefs
+@@ -613,7 +613,7 @@ EOF
+ : ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
+ : ${PLUGIN_LD="${CC-gcc} -shared"}
+ ;;
+- Linux.[345].*) SYSTYPE=LINUX$RELEASE_MAJOR
++ Linux.[3-6]*) SYSTYPE=LINUX$RELEASE_MAJOR
+ case "$CCARGS" in
+ *-DNO_DB*) ;;
+ *-DHAS_DB*) ;;
+--- a/src/util/sys_defs.h
++++ b/src/util/sys_defs.h
+@@ -751,7 +751,7 @@ extern int initgroups(const char *, int)
+ /*
+ * LINUX.
+ */
+-#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5)
++#if defined(LINUX2) || defined(LINUX3) || defined(LINUX4) || defined(LINUX5) || defined(LINUX6)
+ #define SUPPORTED
+ #define UINT32_TYPE unsigned int
+ #define UINT16_TYPE unsigned short
diff --git a/meta-networking/recipes-daemons/postfix/files/aliasesdb b/meta-networking/recipes-daemons/postfix/files/aliasesdb
index 855a64f705..855a64f705 100755..100644
--- a/meta-networking/recipes-daemons/postfix/files/aliasesdb
+++ b/meta-networking/recipes-daemons/postfix/files/aliasesdb
diff --git a/meta-networking/recipes-daemons/postfix/files/check_hostname.sh b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
index 37a0dd088c..37a0dd088c 100755..100644
--- a/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
+++ b/meta-networking/recipes-daemons/postfix/files/check_hostname.sh
diff --git a/meta-networking/recipes-daemons/postfix/files/icu-config.patch b/meta-networking/recipes-daemons/postfix/files/icu-config.patch
deleted file mode 100644
index 9bd9c2f03e..0000000000
--- a/meta-networking/recipes-daemons/postfix/files/icu-config.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-do not entertain cppflags from icu, this is because
-icu-config feeds the -I path without sysroot which
-caused native headers to be included and build is
-corrupted in any case its just adding -I/usr/include
-to the CCARGS which we loose nothing if its not
-entertained.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: postfix-3.2.2/makedefs
-===================================================================
---- postfix-3.2.2.orig/makedefs
-+++ postfix-3.2.2/makedefs
-@@ -799,7 +799,6 @@ EOF
- ${BUILD_CC-gcc} -o makedefs.test makedefs.test.c $icu_cppflags \
- $icu_ldflags >/dev/null 2>&1
- if ./makedefs.test 2>/dev/null ; then
-- CCARGS="$CCARGS $icu_cppflags"
- SYSLIBS="$SYSLIBS $icu_ldflags"
- else
- CCARGS="$CCARGS -DNO_EAI"
diff --git a/meta-networking/recipes-daemons/postfix/files/install.patch b/meta-networking/recipes-daemons/postfix/files/install.patch
deleted file mode 100644
index d023680f3b..0000000000
--- a/meta-networking/recipes-daemons/postfix/files/install.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 190650e1cd5700cd6950ead3fcb17ebcec192a2e Mon Sep 17 00:00:00 2001
-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]
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
- postfix-install | 18 ++++++++++--------
- 1 file changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/postfix-install b/postfix-install
-index 1662c3d..d11fa12 100644
---- a/postfix-install
-+++ b/postfix-install
-@@ -226,8 +226,8 @@ test -z "$non_interactive" -a ! -t 0 && {
- exit 1
- }
-
--test -x bin/postconf || {
-- echo $0: Error: no bin/postconf file. Did you forget to run \"make\"? 1>&2
-+test -x "$POSTCONF" || {
-+ echo $0: Error: no $POSTCONF file. Did you forget to run \"make\"? 1>&2
- exit 1
- }
-
-@@ -248,7 +248,7 @@ do
- case "$junk" in
- *MAIL_VERSION*)
- case "$mail_version" in
-- "") mail_version="`bin/postconf -dhx mail_version`" || exit 1
-+ "") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
- esac
- val=`echo "$junk" | sed 's/MAIL_VERSION$/'"$mail_version/g"` || exit 1
- case "$val" in
-@@ -434,7 +434,7 @@ template files main.cf.proto and master.cf.proto."
-
- : ${install_root=/}
- : ${tempdir=`pwd`}
--: ${config_directory=`bin/postconf -c conf -h -d config_directory`}
-+: ${config_directory=`$POSTCONF -c conf -h -d config_directory`}
-
- # Find out the location of installed configuration files.
-
-@@ -500,7 +500,7 @@ test -f $CONFIG_DIRECTORY/main.cf && {
- case "$junk" in
- "") eval unset $name;;
- esac
-- eval : \${$name=\`bin/postconf -c $CONFIG_DIRECTORY -hx $name\`} ||
-+ eval : \${$name=\`$POSTCONF -c $CONFIG_DIRECTORY -hx $name\`} ||
- exit 1
- done
- }
-@@ -513,7 +513,7 @@ do
- case "$junk" in
- "") eval unset $name;;
- esac
-- eval : \${$name=\`bin/postconf -c conf -d -hx $name\`} || exit 1
-+ eval : \${$name=\`$POSTCONF -c conf -d -hx $name\`} || exit 1
- done
-
- # Override settings manually.
-@@ -639,6 +639,8 @@ README_DIRECTORY=$install_root$readme_directory
- SHLIB_DIRECTORY=$install_root$shlib_directory
- META_DIRECTORY=$install_root$meta_directory
-
-+test "x$POSTCONF" != "x" || POSTCONF="bin/postconf"
-+
- # Avoid repeated tests for existence of these; default permissions suffice.
-
- test -d $DAEMON_DIRECTORY || mkdir -p $DAEMON_DIRECTORY || exit 1
-@@ -810,7 +812,7 @@ IFS="$BACKUP_IFS"
- # the wrong place when Postfix is being upgraded.
-
- case "$mail_version" in
--"") mail_version="`bin/postconf -dhx mail_version`" || exit 1
-+"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
- esac
-
- # Undo MAIL_VERSION expansion at the end of a parameter value. If
-@@ -830,7 +832,7 @@ do
- esac
- done
-
--bin/postconf -c $CONFIG_DIRECTORY -e \
-+"$POSTCONF" -c $CONFIG_DIRECTORY -e \
- "daemon_directory = $daemon_directory" \
- "data_directory = $data_directory" \
- "command_directory = $command_directory" \
---
-1.8.4.2
-
diff --git a/meta-networking/recipes-daemons/postfix/files/main.cf b/meta-networking/recipes-daemons/postfix/files/main.cf
index e75c6fc0d7..22c57485d7 100644
--- a/meta-networking/recipes-daemons/postfix/files/main.cf
+++ b/meta-networking/recipes-daemons/postfix/files/main.cf
@@ -1,4 +1,4 @@
-compatibility_level = 2
+compatibility_level = 3.6
smtputf8_enable = no
# Configure your domain and accounts
diff --git a/meta-networking/recipes-daemons/postfix/files/makedefs.patch b/meta-networking/recipes-daemons/postfix/files/makedefs.patch
deleted file mode 100644
index 98d5f7ed60..0000000000
--- a/meta-networking/recipes-daemons/postfix/files/makedefs.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 4f49e2ce420fb3c17415937530493158ef312733 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 19 Jun 2015 16:45:54 +0900
-Subject: [PATCH] 1)remove RANLIB, SYSLIBS, AR and get them from env.
-
-2)reference sysroot when searching header files
-3)include sysroot path instead of absolute include path
-for Linux2 and Linux3 systems.
-4)for non-native build, search STAGING_BASELIBDIR/LIBDIR
- native build, search host library path for nsl and resolv library
- which comes from libc
-
-Upstreamstatus: Inappropriate [embedded specific]
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
- makedefs | 27 +++++++++++----------------
- 1 file changed, 11 insertions(+), 16 deletions(-)
-
-diff --git a/makedefs b/makedefs
-index 8b84e47..893fb0d 100644
---- a/makedefs
-+++ b/makedefs
-@@ -170,9 +170,6 @@ echo "# pie=$pie"
-
- # Defaults for most sane systems
-
--RANLIB=ranlib
--SYSLIBS=
--AR=ar
- ARFL=rv
-
- # Ugly function to make our error message more visible among the
-@@ -424,12 +421,12 @@ case "$SYSTEM.$RELEASE" in
- case "$CCARGS" in
- *-DNO_DB*) ;;
- *-DHAS_DB*) ;;
-- *) if [ -f /usr/include/db.h ]
-+ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
- then
- : we are all set
-- elif [ -f /usr/include/db/db.h ]
-+ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
- then
-- CCARGS="$CCARGS -I/usr/include/db"
-+ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
- else
- # No, we're not going to try db1 db2 db3 etc.
- # On a properly installed system, Postfix builds
-@@ -438,12 +435,12 @@ case "$SYSTEM.$RELEASE" in
- echo "Install the appropriate db*-devel package first." 1>&2
- exit 1
- fi
-- SYSLIBS="-ldb"
-+ SYSLIBS="$SYSLIBS -ldb"
- ;;
- esac
- for name in nsl resolv $GDBM_LIBS
- do
-- for lib in /usr/lib64 /lib64 /usr/lib /lib
-+ for lib in $BUILD_SYSROOT_NSL_PATH
- do
- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
- SYSLIBS="$SYSLIBS -l$name"
-@@ -463,7 +460,7 @@ case "$SYSTEM.$RELEASE" in
- if [ `expr "X$CCARGS" : "X.*-DNO_EPOLL"` -gt 0 ]
- then
- :
-- elif [ ! -e /usr/include/sys/epoll.h ]
-+ elif [ ! -e "$BUILD_SYSROOT"/usr/include/sys/epoll.h ]
- then
- echo CCARGS="$CCARGS -DNO_EPOLL"
- else
-@@ -487,8 +484,6 @@ int main(int argc, char **argv)
- }
- EOF
- ${CC-gcc} -o makedefs.test makedefs.test.c || exit 1
-- ./makedefs.test 2>/dev/null ||
-- CCARGS="$CCARGS -DNO_EPOLL"
- rm -f makedefs.test makedefs.test.[co]
- fi;;
- esac
-@@ -504,12 +499,12 @@ EOF
- case "$CCARGS" in
- *-DNO_DB*) ;;
- *-DHAS_DB*) ;;
-- *) if [ -f /usr/include/db.h ]
-+ *) if [ -f "$BUILD_SYSROOT"/usr/include/db.h ]
- then
- : we are all set
-- elif [ -f /usr/include/db/db.h ]
-+ elif [ -f "$BUILD_SYSROOT"/usr/include/db/db.h ]
- then
-- CCARGS="$CCARGS -I/usr/include/db"
-+ CCARGS="$CCARGS -I"$BUILD_SYSROOT"/usr/include/db"
- else
- # On a properly installed system, Postfix builds
- # by including <db.h> and by linking with -ldb
-@@ -517,12 +512,12 @@ EOF
- echo "Install the appropriate db*-devel package first." 1>&2
- exit 1
- fi
-- SYSLIBS="-ldb"
-+ SYSLIBS="$SYSLIBS -ldb"
- ;;
- esac
- for name in nsl resolv
- do
-- for lib in /usr/lib64 /lib64 /usr/lib /usr/lib/* /lib /lib/*
-+ for lib in $BUILD_SYSROOT_NSL_PATH
- do
- test -e $lib/lib$name.a -o -e $lib/lib$name.so && {
- SYSLIBS="$SYSLIBS -l$name"
---
-1.8.4.2
-
diff --git a/meta-networking/recipes-daemons/postfix/files/postfix b/meta-networking/recipes-daemons/postfix/files/postfix
index 8c7a60175a..8c7a60175a 100755..100644
--- a/meta-networking/recipes-daemons/postfix/files/postfix
+++ b/meta-networking/recipes-daemons/postfix/files/postfix
diff --git a/meta-networking/recipes-daemons/postfix/files/postfix-install.patch b/meta-networking/recipes-daemons/postfix/files/postfix-install.patch
deleted file mode 100644
index 45479bd52a..0000000000
--- a/meta-networking/recipes-daemons/postfix/files/postfix-install.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Index: postfix-3.2.2/postfix-install
-===================================================================
---- postfix-3.2.2.orig/postfix-install
-+++ postfix-3.2.2/postfix-install
-@@ -843,7 +843,7 @@ IFS="$BACKUP_IFS"
- # the wrong place when Postfix is being upgraded.
-
- case "$mail_version" in
--"") mail_version="`$POSTCONF -dhx mail_version`" || exit 1
-+"") mail_version="`$POSTCONF -c $CONFIG_DIRECTORY -dhx mail_version`" || exit 1
- esac
-
- # Undo MAIL_VERSION expansion at the end of a parameter value. If
-Index: postfix-3.2.2/Makefile.in
-===================================================================
---- postfix-3.2.2.orig/Makefile.in
-+++ postfix-3.2.2/Makefile.in
-@@ -20,7 +20,7 @@ META = meta/main.cf.proto meta/master.cf
- EXPAND = sed -e "s;\$${LIB_PREFIX};$(LIB_PREFIX);" \
- -e "s;\$${LIB_SUFFIX};$(LIB_SUFFIX);"
- SHLIB_DIR_OVERRIDE = \
-- $${shlib_directory:-`$(SHLIB_ENV) bin/postconf -dhx shlib_directory`}
-+ $${shlib_directory:-`$(SHLIB_ENV) $(POSTCONF) -dhx shlib_directory`}
-
- default: update
-
diff --git a/meta-networking/recipes-daemons/postfix/postfix.inc b/meta-networking/recipes-daemons/postfix/postfix.inc
index a504b85d8d..5133caaa46 100644
--- a/meta-networking/recipes-daemons/postfix/postfix.inc
+++ b/meta-networking/recipes-daemons/postfix/postfix.inc
@@ -6,24 +6,13 @@ has a definite Sendmail-ish flavor, but the inside is completely different."
HOMEPAGE= "http://www.postfix.org"
SECTION = "mail"
-DEPENDS = "db icu libpcre libnsl2 openssl postfix-native \
+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"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=64375f37431336ea1b1b3005fe3fa354"
-
-SRC_URI = "ftp://ftp.porcupine.org/mirrors/postfix-release/official/postfix-${PV}.tar.gz \
- file://makedefs.patch \
- file://install.patch \
- file://main.cf \
- file://postfix \
- file://internal_recipient \
- file://postfix.service \
- file://aliasesdb \
- file://check_hostname.sh \
-"
+LICENSE = "IPL-1.0 | EPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b181651ad99a7dc4cc8c4ce2f491ed1a"
S = "${WORKDIR}/postfix-${PV}"
@@ -31,16 +20,16 @@ CLEANBROKEN = "1"
BBCLASSEXTEND = "native"
-inherit update-rc.d useradd update-alternatives systemd
+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}"
-USERADD_PARAM_${PN} = \
+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} = "--system postfix;--system postdrop;--system vmail"
+GROUPADD_PARAM:${PN}-bin = "--system postfix;--system postdrop;--system vmail"
export SYSLIBS = "${LDFLAGS}"
@@ -56,10 +45,10 @@ 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-ldap:class-native = ""
+export AUXLIBS-ldap:class-native = ""
-export CCARGS-nonis_libc-musl = "-DNO_NIS"
+export CCARGS-nonis:libc-musl = "-DNO_NIS"
export CCARGS-nonis = ""
# SASL support -DUSE_LDAP_SASL -DUSE_SASL_AUTH
@@ -68,8 +57,8 @@ 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 = ""
+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}"
@@ -97,38 +86,20 @@ do_compile () {
"s:\$(SHELL) makedefs):\$(SHELL) makedefs $SYSTEM $RELEASE):" \
${S}/Makefile.in
export BUILD_SYSROOT="${STAGING_DIR_HOST}"
- export BUILD_SYSROOT_NSL_PATH="${STAGING_BASELIBDIR} \
- ${STAGING_LIBDIR}"
else
# native build
export BUILD_SYSROOT="${STAGING_DIR_NATIVE}"
-
- # ubuntu x86 host: /lib/x86_64-linux-gnu(64) /lib/i386-linux-gnu (32)
- # on 64 bits, 32 libs in i386-linux-gnu
- # let makedefs finds nsl and resolv libs, host CC will link
- # the correct libraries
- BUILD_SYSROOT_NSL_PATH="$(${CC} -print-search-dirs 2>/dev/null | \
- sed -n '/^libraries: =/s/libraries: =//p' | \
- sed -e 's/:/\n/g' | xargs -n1 readlink -f | \
- grep -v 'gcc\|/[0-9.]\+$' | sort -u)"
- if [ -z "$BUILD_SYSROOT_NSL_PATH" ]; then
- BUILD_SYSROOT_NSL_PATH="/usr/lib64 /lib64 \
- /lib/x86_64-linux-gnu \
- /usr/lib /lib \
- /lib/i386-linux-gnu"
- fi
- export BUILD_SYSROOT_NSL_PATH
fi
oe_runmake makefiles
oe_runmake
}
-do_install_prepend_class-native() {
+do_install:prepend:class-native() {
export POSTCONF="bin/postconf"
}
-SYSTEMD_SERVICE_${PN} = "postfix.service"
+SYSTEMD_SERVICE:${PN} = "postfix.service"
do_install () {
sh ./postfix-install 'install_root=${D}' \
@@ -144,7 +115,7 @@ do_install () {
'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
+ 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
@@ -209,49 +180,43 @@ do_install () {
rm -rf ${D}/etc/postfix/makedefs.out
}
-do_install_append_class-native() {
+do_install:append:class-native() {
ln -sf ../sbin/sendmail.postfix ${D}${bindir}/newaliases
ln -sf ../sbin/sendmail.postfix ${D}${bindir}/mailq
}
-ALTERNATIVE_${PN} = "sendmail"
+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:${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"
-PACKAGE_WRITE_DEPS += "postfix-native"
-pkg_postinst_${PN} () {
- if [ "x$D" = "x" ]; then
- touch /etc/aliases
- newaliases
+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
- else
- if ${@'true' if 'linuxstdbase' in d.getVar('DISTROOVERRIDES', False) else 'false'}; then
- # /usr/lib/sendmail is required by LSB core test
- [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/
- fi
-
- touch $D/etc/aliases
- # This can fail depending on host setup
- if ! newaliases -C $D/etc/postfix/main.cf -oA$D/etc/aliases; then
- $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
- exit 0
- fi
- touch $D/etc/postfix/virtual_alias
- postmap -c $D/etc/postfix $D/etc/postfix/virtual_alias
-
- fi
+ # 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} = "${sysconfdir} ${localstatedir} ${bindir}/* ${sbindir}/* \
+FILES:${PN}-bin += "${localstatedir} ${bindir}/* ${sbindir}/* \
${libexecdir}/* ${systemd_unitdir}/*"
-FILES_${PN}-dbg += "${libexecdir}/postfix/.debug"
+FILES:${PN}-cfg = "${sysconfdir}"
+FILES:${PN}-dbg += "${libexecdir}/postfix/.debug"
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb b/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb
deleted file mode 100644
index 89af406ac3..0000000000
--- a/meta-networking/recipes-daemons/postfix/postfix_3.2.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require postfix.inc
-
-SRC_URI += "file://0001-Check-for-glibc-before-setting-CANT_USE_SEND_RECV_MS.patch \
- file://0001-makedefs-Use-native-compiler-to-build-makedefs.test.patch \
- file://postfix-install.patch \
- file://icu-config.patch \
- "
-SRC_URI[md5sum] = "aea073a9b0bea5bdb590460a270a4aa0"
-SRC_URI[sha256sum] = "d06849418d119d09366997b2b481bb23f737629769b4e4a52da42fb3ad8b0576"
diff --git a/meta-networking/recipes-daemons/postfix/postfix_3.7.3.bb b/meta-networking/recipes-daemons/postfix/postfix_3.7.3.bb
new file mode 100644
index 0000000000..b54a97aeaf
--- /dev/null
+++ b/meta-networking/recipes-daemons/postfix/postfix_3.7.3.bb
@@ -0,0 +1,18 @@
+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 \
+ file://0006-makedefs-Account-for-linux-6.x-version.patch \
+ "
+SRC_URI[sha256sum] = "d22f3d37ef75613d5d573b56fc51ef097f2c0d0b0e407923711f71c1fb72911b"
+UPSTREAM_CHECK_REGEX = "postfix\-(?P<pver>3\.6(\.\d+)+).tar.gz"
diff --git a/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
index 9816d4d22a..8126b3619a 100644
--- a/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
+++ b/meta-networking/recipes-daemons/proftpd/files/build_fixup.patch
@@ -6,13 +6,13 @@ 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>
-Index: proftpd-1.3.6/Make.rules.in
-===================================================================
---- proftpd-1.3.6.orig/Make.rules.in
-+++ proftpd-1.3.6/Make.rules.in
+diff --git a/Make.rules.in b/Make.rules.in
+index a5028ac..ccd7807 100644
+--- a/Make.rules.in
++++ b/Make.rules.in
@@ -30,9 +30,9 @@ INSTALL=@INSTALL@
INSTALL_STRIP=@INSTALL_STRIP@
INSTALL_USER=@install_user@
@@ -26,11 +26,11 @@ Index: proftpd-1.3.6/Make.rules.in
RM=rm -f
SHELL=@CONFIG_SHELL@
-Index: proftpd-1.3.6/Makefile.in
-===================================================================
---- proftpd-1.3.6.orig/Makefile.in
-+++ proftpd-1.3.6/Makefile.in
-@@ -105,7 +105,6 @@ check: proftpd$(EXEEXT)
+diff --git a/Makefile.in b/Makefile.in
+index 9434cbd..13f2e16 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -123,7 +123,6 @@ check: proftpd$(EXEEXT)
$(DESTDIR)$(localedir) $(DESTDIR)$(includedir) $(DESTDIR)$(includedir)/proftpd $(DESTDIR)$(libdir) $(DESTDIR)$(pkgconfigdir) $(DESTDIR)$(libdir)/proftpd $(DESTDIR)$(libexecdir) $(DESTDIR)$(localstatedir) $(DESTDIR)$(sysconfdir) $(DESTDIR)$(bindir) $(DESTDIR)$(sbindir) $(DESTDIR)$(mandir) $(DESTDIR)$(mandir)/man1 $(DESTDIR)$(mandir)/man5 $(DESTDIR)$(mandir)/man8:
@if [ ! -d $@ ]; then \
mkdir -p $@; \
@@ -38,20 +38,20 @@ Index: proftpd-1.3.6/Makefile.in
chmod 0755 $@; \
fi
-@@ -115,7 +114,6 @@ install-proftpd: proftpd $(DESTDIR)$(inc
+@@ -133,7 +132,6 @@ install-proftpd: proftpd$(EXEEXT) $(DESTDIR)$(includedir) $(DESTDIR)$(localstate
rm -f $(DESTDIR)$(sbindir)/in.proftpd ; \
fi
- ln -s proftpd $(DESTDIR)$(sbindir)/in.proftpd
+ ln -s $(top_builddir)/proftpd $(DESTDIR)$(sbindir)/in.proftpd
- -chown -h $(INSTALL_USER):$(INSTALL_GROUP) $(DESTDIR)$(sbindir)/in.proftpd
install-libs: $(DESTDIR)$(libdir)/proftpd
cd lib/ && $(MAKE) install
-@@ -152,11 +150,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DE
- $(INSTALL_SBIN) ftpshut $(DESTDIR)$(sbindir)/ftpshut
- $(INSTALL_BIN) ftptop $(DESTDIR)$(bindir)/ftptop
- $(INSTALL_BIN) ftpwho $(DESTDIR)$(bindir)/ftpwho
-- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs
-+ $(INSTALL) -m 0755 src/prxs $(DESTDIR)$(bindir)/prxs
+@@ -170,11 +168,11 @@ install-utils: $(DESTDIR)$(sbindir) $(DESTDIR)$(bindir)
+ $(INSTALL_SBIN) $(top_builddir)/ftpshut $(DESTDIR)$(sbindir)/ftpshut
+ $(INSTALL_BIN) $(top_builddir)/ftptop $(DESTDIR)$(bindir)/ftptop
+ $(INSTALL_BIN) $(top_builddir)/ftpwho $(DESTDIR)$(bindir)/ftpwho
+- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(top_builddir)/src/prxs $(DESTDIR)$(bindir)/prxs
++ $(INSTALL) -m 0755 $(top_builddir)/src/prxs $(DESTDIR)$(bindir)/prxs
install-conf: $(DESTDIR)$(sysconfdir)
if [ ! -f $(DESTDIR)$(sysconfdir)/proftpd.conf ] ; then \
@@ -60,11 +60,11 @@ Index: proftpd-1.3.6/Makefile.in
$(top_srcdir)/sample-configurations/basic.conf \
$(DESTDIR)$(sysconfdir)/proftpd.conf ; \
fi
-Index: proftpd-1.3.6/configure
-===================================================================
---- proftpd-1.3.6.orig/configure
-+++ proftpd-1.3.6/configure
-@@ -41777,7 +41777,7 @@ _ACEOF
+diff --git a/configure b/configure
+index 0a51670..69fa130 100755
+--- a/configure
++++ b/configure
+@@ -25116,7 +25116,7 @@ _ACEOF
cat >>confdefs.h <<_ACEOF
@@ -73,7 +73,7 @@ Index: proftpd-1.3.6/configure
_ACEOF
-@@ -41787,7 +41787,7 @@ _ACEOF
+@@ -25126,7 +25126,7 @@ _ACEOF
cat >>confdefs.h <<_ACEOF
@@ -82,11 +82,11 @@ Index: proftpd-1.3.6/configure
_ACEOF
-Index: proftpd-1.3.6/configure.in
-===================================================================
---- proftpd-1.3.6.orig/configure.in
-+++ proftpd-1.3.6/configure.in
-@@ -3833,8 +3833,8 @@ locale_dir="`eval echo ${locale_dir}`"
+diff --git a/configure.in b/configure.in
+index 50561de..93cad3f 100644
+--- a/configure.in
++++ b/configure.in
+@@ -4059,8 +4059,8 @@ locale_dir="`eval echo ${locale_dir}`"
AC_DEFINE_UNQUOTED(PR_LOCALE_DIR, "`eval echo "${locale_dir}"`", [Define the locale directory])
AC_DEFINE_UNQUOTED(PR_RUN_DIR, "`eval echo "${localstatedir}"`", [Define the run directory])
@@ -97,16 +97,3 @@ Index: proftpd-1.3.6/configure.in
prefix="$pr_saved_prefix"
exec_prefix="$pr_saved_exec_prefix"
-Index: proftpd-1.3.6/lib/libcap/Makefile
-===================================================================
---- proftpd-1.3.6.orig/lib/libcap/Makefile
-+++ proftpd-1.3.6/lib/libcap/Makefile
-@@ -26,7 +26,7 @@ OBJS=$(addsuffix .o, $(FILES))
- all: $(LIBNAME)
-
- _makenames: _makenames.c cap_names.sed
-- $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@
-+ $(BUILD_CC) $(CFLAGS) $(LDFLAGS) $< -o $@
-
- cap_names.h: _makenames
- ./_makenames > cap_names.h
diff --git a/meta-networking/recipes-daemons/proftpd/files/contrib.patch b/meta-networking/recipes-daemons/proftpd/files/contrib.patch
index 7e2a8e3ce0..96c237d386 100644
--- a/meta-networking/recipes-daemons/proftpd/files/contrib.patch
+++ b/meta-networking/recipes-daemons/proftpd/files/contrib.patch
@@ -11,32 +11,29 @@ Signed-off-by: Kevin Strasser <kevin.strasser@linux.intel.com>
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index 5b2e683..ee72fe1 100644
+index 9434cbd..8da7d1f 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -120,7 +120,7 @@ install-modules: $(DESTDIR)$(libexecdir) $(DESTDIR)$(sysconfdir)
+@@ -163,7 +163,7 @@ install-modules: $(DESTDIR)$(libexecdir) $(DESTDIR)$(sysconfdir)
test -z "$(SHARED_MODULE_OBJS)" -a -z "$(SHARED_MODULE_DIRS)" -a -z "$(STATIC_MODULE_DIRS)" || (cd modules/ && $(MAKE) install)
install-utils: $(DESTDIR)$(sbindir) $(DESTDIR)$(bindir)
- cd contrib/ && $(MAKE) install-utils
+ cd contrib/ && $(MAKE) DESTDIR=${DESTDIR} install-utils
- $(INSTALL_BIN) ftpcount $(DESTDIR)$(bindir)/ftpcount
- $(INSTALL_BIN) ftpdctl $(DESTDIR)$(bindir)/ftpdctl
- $(INSTALL_SBIN) ftpscrub $(DESTDIR)$(sbindir)/ftpscrub
+ $(INSTALL_BIN) $(top_builddir)/ftpcount $(DESTDIR)$(bindir)/ftpcount
+ $(INSTALL_BIN) $(top_builddir)/ftpdctl $(DESTDIR)$(bindir)/ftpdctl
+ $(INSTALL_SBIN) $(top_builddir)/ftpscrub $(DESTDIR)$(sbindir)/ftpscrub
diff --git a/contrib/Makefile.in b/contrib/Makefile.in
-index 5bcc038..51d248c 100644
+index d1a31af..65d2abc 100644
--- a/contrib/Makefile.in
+++ b/contrib/Makefile.in
-@@ -18,6 +18,6 @@ Makefile: Makefile.in ../config.status
+@@ -17,6 +17,6 @@ Makefile: Makefile.in ../config.status
cd ../ && ./config.status
install-utils:
-- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpasswd $(DESTDIR)$(bindir)/ftpasswd
-- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpmail $(DESTDIR)$(bindir)/ftpmail
-- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 ftpquota $(DESTDIR)$(bindir)/ftpquota
-+ $(INSTALL) -m 0755 ftpasswd $(DESTDIR)$(bindir)/ftpasswd
-+ $(INSTALL) -m 0755 ftpmail $(DESTDIR)$(bindir)/ftpmail
-+ $(INSTALL) -m 0755 ftpquota $(DESTDIR)$(bindir)/ftpquota
---
-1.7.9.5
-
+- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpasswd $(DESTDIR)$(bindir)/ftpasswd
+- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpmail $(DESTDIR)$(bindir)/ftpmail
+- $(INSTALL) -o $(INSTALL_USER) -g $(INSTALL_GROUP) -m 0755 $(srcdir)/ftpquota $(DESTDIR)$(bindir)/ftpquota
++ $(INSTALL) -m 0755 $(srcdir)/ftpasswd $(DESTDIR)$(bindir)/ftpasswd
++ $(INSTALL) -m 0755 $(srcdir)/ftpmail $(DESTDIR)$(bindir)/ftpmail
++ $(INSTALL) -m 0755 $(srcdir)/ftpquota $(DESTDIR)$(bindir)/ftpquota
diff --git a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb
deleted file mode 100644
index 409947265d..0000000000
--- a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.6.bb
+++ /dev/null
@@ -1,138 +0,0 @@
-SUMMARY = "Secure and configurable FTP server"
-SECTION = "net"
-HOMEPAGE = "http://www.proftpd.org"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184"
-
-SRC_URI = "ftp://ftp.proftpd.org/distrib/source/${BPN}-${PV}.tar.gz \
- file://basic.conf.patch \
- file://proftpd-basic.init \
- file://default \
- file://close-RequireValidShell-check.patch \
- file://contrib.patch \
- file://build_fixup.patch \
- file://proftpd.service \
- "
-iSRC_URI[md5sum] = "13270911c42aac842435f18205546a1b"
-SRC_URI[sha256sum] = "91ef74b143495d5ff97c4d4770c6804072a8c8eb1ad1ecc8cc541b40e152ecaf"
-
-inherit autotools-brokensep useradd update-rc.d systemd
-
-PACKAGECONFIG ??= "shadow \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
- "
-
-PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses"
-PACKAGECONFIG[openssl] = "--enable-openssl, --disable-openssl, openssl, openssl"
-PACKAGECONFIG[pam] = "--enable-auth-pam, --disable-auth-pam, libpam, libpam"
-PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6"
-PACKAGECONFIG[shadow] = "--enable-shadow, --disable-shadow"
-PACKAGECONFIG[pcre] = "--enable-pcre, --disable-pcre, libpcre "
-
-# enable POSIX.1e capabilities
-PACKAGECONFIG[cap] = "--enable-cap, --disable-cap, libcap, libcap"
-
-#enable support for POSIX ACLs
-PACKAGECONFIG[acl] = "--enable-facl, --disable-facl"
-
-#enable proftpd controls via ftpdct
-PACKAGECONFIG[ctrls] = "--enable-ctrls, --disable-crtls"
-
-#prevent proftpd from using its bundled getopt implementation.
-PACKAGECONFIG[getopt] = "--with-getopt, --without-getopt"
-
-#do not strip debugging symbols from installed code
-PACKAGECONFIG[strip] = "--enable-strip, --disable-strip"
-
-#enable SIA authentication support (Tru64)
-PACKAGECONFIG[sia] = "--enable-sia, --disable-sia"
-PACKAGECONFIG[sendfile] = "-enable-sendfile, --disable-sendfile"
-
-#enable Native Language Support (NLS)
-PACKAGECONFIG[nls] = "--enable-nls, --disable-nls"
-
-#add mod_dso to core modules
-PACKAGECONFIG[dso] = "--enable-dso, --disable-dso"
-PACKAGECONFIG[largefile] = "--enable-largefile, --disable-largefile"
-
-#omit mod_auth_file from core modules
-PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file"
-
-
-# proftpd uses libltdl which currently makes configuring using
-# autotools.bbclass a pain...
-do_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
- cp ${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool ${S}/libtool
-}
-
-FTPUSER = "ftp"
-FTPGROUP = "ftp"
-
-do_install () {
- oe_runmake DESTDIR=${D} install
- rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale
- [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir}
- sed -i '/ *User[ \t]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf
- sed -i '/ *Group[ \t]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/proftpd
-
- install -d ${D}${sysconfdir}/default
- install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd
-
- # create the pub directory
- mkdir -p ${D}/home/${FTPUSER}/pub/
- chown -R ${FTPUSER}:${FTPGROUP} ${D}/home/${FTPUSER}/pub
- if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
- # install proftpd pam configuration
- install -d ${D}${sysconfdir}/pam.d
- install -m 644 ${S}/contrib/dist/rpm/ftp.pamd ${D}${sysconfdir}/pam.d/proftpd
- sed -i '/ftpusers/d' ${D}${sysconfdir}/pam.d/proftpd
- # specify the user Authentication config
- sed -i '/^MaxInstances/a\AuthPAM on\nAuthPAMConfig proftpd' \
- ${D}${sysconfdir}/proftpd.conf
- fi
-
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/proftpd.service ${D}/${systemd_unitdir}/system
- sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- -i ${D}${systemd_unitdir}/system/*.service
-
- sed -e 's|--sysroot=${STAGING_DIR_HOST}||g' \
- -e 's|${STAGING_DIR_NATIVE}||g' \
- -e 's|-fdebug-prefix-map=[^ ]*||g' \
- -i ${D}/${bindir}/prxs
-
- # ftpmail perl script, which reads the proftpd log file and sends
- # automatic email notifications once an upload finishs,
- # depends on an old perl Mail::Sendmail
- # The Mail::Sendmail has not been maintained for almost 10 years
- # Other distribution not ship with ftpmail, so do the same to
- # avoid confusion about having it fails to run
- rm -rf ${D}${bindir}/ftpmail
- rm -rf ${D}${mandir}/man1/ftpmail.1
-}
-
-INITSCRIPT_NAME = "proftpd"
-INITSCRIPT_PARAM = "defaults 85 15"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "proftpd.service"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system ${FTPGROUP}"
-USERADD_PARAM_${PN} = "--system -g ${FTPGROUP} --home-dir /var/lib/${FTPUSER} --no-create-home \
- --shell /bin/false ${FTPUSER}"
-
-FILES_${PN} += "/home/${FTPUSER}"
-
-RDEPENDS_${PN} += "perl"
diff --git a/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7c.bb b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7c.bb
new file mode 100644
index 0000000000..ecd2777247
--- /dev/null
+++ b/meta-networking/recipes-daemons/proftpd/proftpd_1.3.7c.bb
@@ -0,0 +1,146 @@
+SUMMARY = "Secure and configurable FTP server"
+SECTION = "net"
+HOMEPAGE = "http://www.proftpd.org"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fb0d1484d11915fa88a6a7702f1dc184"
+
+SRCREV = "75aa739805a6e05eeb31189934a3d324e7862962"
+BRANCH = "1.3.7"
+
+SRC_URI = "git://github.com/proftpd/proftpd.git;branch=${BRANCH};protocol=https \
+ file://basic.conf.patch \
+ file://proftpd-basic.init \
+ file://default \
+ file://close-RequireValidShell-check.patch \
+ file://contrib.patch \
+ file://build_fixup.patch \
+ file://proftpd.service \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep useradd update-rc.d systemd multilib_script
+
+EXTRA_OECONF += "--enable-largefile"
+
+PACKAGECONFIG ??= "shadow \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
+ static \
+ "
+
+PACKAGECONFIG[curses] = "--enable-curses --enable-ncurses, --disable-curses --disable-ncurses, ncurses"
+PACKAGECONFIG[openssl] = "--enable-openssl, --disable-openssl, openssl, openssl"
+PACKAGECONFIG[pam] = "--enable-auth-pam, --disable-auth-pam, libpam, libpam"
+PACKAGECONFIG[ipv6] = "--enable-ipv6, --disable-ipv6"
+PACKAGECONFIG[shadow] = "--enable-shadow, --disable-shadow"
+PACKAGECONFIG[pcre] = "--enable-pcre, --disable-pcre, libpcre "
+PACKAGECONFIG[static] = "--enable-static=yes, --enable-static=no"
+
+# enable POSIX.1e capabilities
+PACKAGECONFIG[cap] = "--enable-cap, --disable-cap, libcap, libcap"
+
+#enable support for POSIX ACLs
+PACKAGECONFIG[acl] = "--enable-facl, --disable-facl"
+
+#enable proftpd controls via ftpdct
+PACKAGECONFIG[ctrls] = "--enable-ctrls, --disable-crtls"
+
+#prevent proftpd from using its bundled getopt implementation.
+PACKAGECONFIG[getopt] = "--with-getopt, --without-getopt"
+
+#do not strip debugging symbols from installed code
+PACKAGECONFIG[strip] = "--enable-strip, --disable-strip"
+
+#enable SIA authentication support (Tru64)
+PACKAGECONFIG[sia] = "--enable-sia, --disable-sia"
+PACKAGECONFIG[sendfile] = "-enable-sendfile, --disable-sendfile"
+
+#enable Native Language Support (NLS)
+PACKAGECONFIG[nls] = "--enable-nls, --disable-nls"
+
+#add mod_dso to core modules
+PACKAGECONFIG[dso] = "--enable-dso, --disable-dso"
+
+#omit mod_auth_file from core modules
+PACKAGECONFIG[auth] = "--enable-auth-file, --disable-auth-file"
+
+# proftpd uses libltdl which currently makes configuring using
+# autotools.bbclass a pain...
+do_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
+}
+
+FTPUSER = "ftp"
+FTPGROUP = "ftp"
+
+do_install () {
+ oe_runmake DESTDIR=${D} install
+ rmdir ${D}${libdir}/proftpd ${D}${datadir}/locale
+ [ -d ${D}${libexecdir} ] && rmdir ${D}${libexecdir}
+ sed -i '/ *User[ \t]*/s/ftp/${FTPUSER}/' ${D}${sysconfdir}/proftpd.conf
+ sed -i '/ *Group[ \t]*/s/ftp/${FTPGROUP}/' ${D}${sysconfdir}/proftpd.conf
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/proftpd-basic.init ${D}${sysconfdir}/init.d/proftpd
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/proftpd
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/proftpd
+ sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/proftpd
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/proftpd
+
+ install -d ${D}${sysconfdir}/default
+ install -m 0755 ${WORKDIR}/default ${D}${sysconfdir}/default/proftpd
+
+ # create the pub directory
+ mkdir -p ${D}/home/${FTPUSER}/pub/
+ chown -R ${FTPUSER}:${FTPGROUP} ${D}/home/${FTPUSER}/pub
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
+ # install proftpd pam configuration
+ install -d ${D}${sysconfdir}/pam.d
+ install -m 644 ${S}/contrib/dist/rpm/ftp.pamd ${D}${sysconfdir}/pam.d/proftpd
+ sed -i '/ftpusers/d' ${D}${sysconfdir}/pam.d/proftpd
+ # specify the user Authentication config
+ sed -i '/^MaxInstances/a\AuthPAM on\nAuthPAMConfig proftpd' \
+ ${D}${sysconfdir}/proftpd.conf
+ fi
+
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/proftpd.service ${D}/${systemd_unitdir}/system
+ sed -e 's,@BASE_SBINDIR@,${base_sbindir},g' \
+ -e 's,@SYSCONFDIR@,${sysconfdir},g' \
+ -e 's,@SBINDIR@,${sbindir},g' \
+ -i ${D}${systemd_unitdir}/system/*.service
+
+ sed -e 's|--sysroot=${STAGING_DIR_HOST}||g' \
+ -e 's|${STAGING_DIR_NATIVE}||g' \
+ -e 's|-ffile-prefix-map=[^ ]*||g' \
+ -e 's|-fdebug-prefix-map=[^ ]*||g' \
+ -e 's|-fmacro-prefix-map=[^ ]*||g' \
+ -i ${D}/${bindir}/prxs
+
+ # ftpmail perl script, which reads the proftpd log file and sends
+ # automatic email notifications once an upload finishs,
+ # depends on an old perl Mail::Sendmail
+ # The Mail::Sendmail has not been maintained for almost 10 years
+ # Other distribution not ship with ftpmail, so do the same to
+ # avoid confusion about having it fails to run
+ rm -rf ${D}${bindir}/ftpmail
+ rm -rf ${D}${mandir}/man1/ftpmail.1
+}
+
+INITSCRIPT_NAME = "proftpd"
+INITSCRIPT_PARAM = "defaults 85 15"
+
+SYSTEMD_PACKAGES = "${PN}"
+SYSTEMD_SERVICE:${PN} = "proftpd.service"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system ${FTPGROUP}"
+USERADD_PARAM:${PN} = "--system -g ${FTPGROUP} --home-dir /var/lib/${FTPUSER} --no-create-home \
+ --shell /bin/false ${FTPUSER}"
+
+MULTILIB_SCRIPTS = "${PN}:${bindir}/prxs"
+
+FILES:${PN} += "/home/${FTPUSER}"
+
+RDEPENDS:${PN} += "perl"
diff --git a/meta-networking/recipes-daemons/ptpd/ptpd/0001-ptpd-Solve-memory-leak-for-function-NTPDCrequest.patch b/meta-networking/recipes-daemons/ptpd/ptpd/0001-ptpd-Solve-memory-leak-for-function-NTPDCrequest.patch
new file mode 100644
index 0000000000..b2caeba2ca
--- /dev/null
+++ b/meta-networking/recipes-daemons/ptpd/ptpd/0001-ptpd-Solve-memory-leak-for-function-NTPDCrequest.patch
@@ -0,0 +1,40 @@
+From 3886219c5c1fdca114dd480b46ce211762e30742 Mon Sep 17 00:00:00 2001
+From: Li Zhou <li.zhou@windriver.com>
+Date: Tue, 30 Jun 2020 13:50:11 +0800
+Subject: [PATCH] ptpd: Solve memory leak for function NTPDCrequest
+
+Solve the memory leak in function NTPDCrequest detected by valgrind tool.
+
+Memory leak log example:
+==619== 21 bytes in 1 blocks are still reachable in loss record 1 of 3
+==619== at 0x4A09DB0: calloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
+==619== by 0x43512E: NTPDCrequest (ntpdcontrol.c:255)
+==619== by 0x43512E: NTPDCquery.isra.1 (ntpdcontrol.c:683)
+==619== by 0x4359EE: ntpdInControl (ntpdcontrol.c:807)
+==619== by 0x4364F5: ntpServiceUpdate (timingdomain.c:622)
+==619== by 0x436935: timingDomainUpdate (timingdomain.c:756)
+==619== by 0x4334A7: protocol (protocol.c:263)
+==619== by 0x402BAE: main (ptpd.c:131)
+
+Upstream-Status: Pending
+
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+---
+ src/dep/ntpengine/ntpdcontrol.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/dep/ntpengine/ntpdcontrol.c b/src/dep/ntpengine/ntpdcontrol.c
+index bfe0b5e..b1973cb 100644
+--- a/src/dep/ntpengine/ntpdcontrol.c
++++ b/src/dep/ntpengine/ntpdcontrol.c
+@@ -271,6 +271,7 @@ NTPDCrequest(
+
+ if (!auth) {
+ qpkt.auth_seq = AUTH_SEQ(0, 0);
++ free(key);
+ return ntpSend(control, (Octet *)&qpkt, req_pkt_size);
+ }
+
+--
+1.9.1
+
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
new file mode 100644
index 0000000000..91028d82bc
--- /dev/null
+++ b/meta-networking/recipes-daemons/ptpd/ptpd/Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch
@@ -0,0 +1,67 @@
+From e00d3f52ccc6496a60992ac5a9d771b1d067eceb Mon Sep 17 00:00:00 2001
+From: Haiqing Bai <Haiqing.Bai@windriver.com>
+Date: Thu, 22 Nov 2018 08:42:48 +0000
+Subject: [PATCH] Fixed 100% CPU using issue by adding minimum POSIX timer
+ interval
+
+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:
+ - 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]
+
+Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
+---
+ src/dep/eventtimer.h | 3 ++-
+ src/dep/eventtimer_itimer.c | 2 +-
+ src/dep/eventtimer_posix.c | 4 ++++
+ 3 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/src/dep/eventtimer.h b/src/dep/eventtimer.h
+index 64e483a..0a21318 100644
+--- a/src/dep/eventtimer.h
++++ b/src/dep/eventtimer.h
+@@ -30,7 +30,8 @@
+ * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#define EVENTTIMER_MAX_DESC 20
++#define EVENTTIMER_MAX_DESC 20
++#define EVENTTIMER_MIN_INTERVAL_US 250 /* 4000/sec */
+
+ typedef struct EventTimer EventTimer;
+
+diff --git a/src/dep/eventtimer_itimer.c b/src/dep/eventtimer_itimer.c
+index cf3c6db..3bb7ec6 100644
+--- a/src/dep/eventtimer_itimer.c
++++ b/src/dep/eventtimer_itimer.c
+@@ -53,7 +53,7 @@
+
+ #include "../ptpd.h"
+
+-#define US_TIMER_INTERVAL (62500)
++#define US_TIMER_INTERVAL (31250)
+
+ static volatile unsigned int elapsed;
+
+diff --git a/src/dep/eventtimer_posix.c b/src/dep/eventtimer_posix.c
+index 637eef3..f4a702d 100644
+--- a/src/dep/eventtimer_posix.c
++++ b/src/dep/eventtimer_posix.c
+@@ -100,6 +100,10 @@ eventTimerStart_posix(EventTimer *timer, double interval)
+ ts.tv_sec = interval;
+ ts.tv_nsec = (interval - ts.tv_sec) * 1E9;
+
++ if(!ts.tv_sec && ts.tv_nsec < EVENTTIMER_MIN_INTERVAL_US * 1000) {
++ ts.tv_nsec = EVENTTIMER_MIN_INTERVAL_US * 1000;
++ }
++
+ DBGV("Timer %s start requested at %d.%4d sec interval\n", timer->id, ts.tv_sec, ts.tv_nsec);
+
+ its.it_interval = ts;
+--
+2.11.0
+
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/ptpd/ptpd_2.3.1.bb b/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb
index e136193205..d1eb6e28fc 100644
--- a/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb
+++ b/meta-networking/recipes-daemons/ptpd/ptpd_2.3.1.bb
@@ -5,7 +5,7 @@ and PTP Version 2 implements IEEE-1588-2008. PTP was developed to provide very p
time coordination of LAN connected computers."
HOMEPAGE = "http://sourceforge.net/projects/ptpd"
SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://README;md5=0733e1b3788ab2ebbc63bf33a020da1d"
DEPENDS = "libpcap"
@@ -23,6 +23,8 @@ def get_sub(d):
SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${@get_sub(d)}/ptpd-${PV}.tar.gz \
file://ptpd-use-pkgconfig.patch \
+ file://Fixed-100-CPU-using-issue-by-adding-minimum-POSIX-ti.patch \
+ file://0001-ptpd-Solve-memory-leak-for-function-NTPDCrequest.patch \
file://ptpd.service \
file://ptpd.conf \
"
@@ -30,6 +32,8 @@ SRC_URI = "http://downloads.sourceforge.net/project/ptpd/ptpd/${@get_sub(d)}/ptp
SRC_URI[md5sum] = "253bab7ab51d969616ea811be1f132f3"
SRC_URI[sha256sum] = "0dbf54dd2c178bd9fe62481d2c37513ee36636d8bf137cfdad96891490cdbf93"
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ptpd/files/releases"
+
S = "${WORKDIR}/ptpd-${PV}"
EXTRA_OEMAKE = ""
@@ -54,5 +58,5 @@ do_install() {
}
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "ptpd.service"
+SYSTEMD_SERVICE:${PN} = "ptpd.service"
SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch
index 76523fb997..c213943d53 100644
--- a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch
+++ b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch
@@ -1,4 +1,4 @@
-From 1bafadf2502334a3e972ff667061469316d0d2ca Mon Sep 17 00:00:00 2001
+From a45e086661a3eed29193546c525998d7525ef6d9 Mon Sep 17 00:00:00 2001
From: Tudor Florea <tudor.florea@enea.com>
Date: Tue, 4 Aug 2015 02:46:39 +0200
Subject: [PATCH] Remove hardcoded /usr/local includes from configure.ac
@@ -7,33 +7,43 @@ Upstream-Status: Inappropriate [config]
Signed-off-by: Yauhen Kharuzhy <yauhen.kharuzhy@promwad.com>
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
+
+Update for 1.0.49.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+Update for 1.0.51.
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
- configure.ac | 12 ------------
- 1 file changed, 12 deletions(-)
+ configure.ac | 16 ----------------
+ 1 file changed, 16 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 6c78e8c..851d45d 100644
+index 62768c8..efaeee5 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -100,18 +100,6 @@ AC_ARG_VAR(PYTHON,local path to the python interpreter)
- python_possible_path="/usr/bin:/usr/local/bin:/bin:/opt/python/bin:/opt/python/usr/bin:/opt/python/usr/local/bin"
- AC_PATH_PROG(PYTHON,python,/usr/bin/env python,$python_possible_path)
+@@ -97,22 +97,6 @@ AX_CHECK_LINK_FLAG([-Wl,-z,relro], [LDFLAGS="$LDFLAGS -Wl,-z,relro"])
+ AX_CHECK_LINK_FLAG([-Wl,-z,now], [LDFLAGS="$LDFLAGS -Wl,-z,now"])
+ AX_CHECK_LINK_FLAG([-Wl,-z,noexecstack], [LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"])
--if test -d /usr/local/include; then
-- CPPFLAGS="$CPPFLAGS -I/usr/local/include"
--fi
--
--if test -d /usr/kerberos/include; then
-- CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
--fi
--
--if test -d /usr/local/lib; then
-- LDFLAGS="$LDFLAGS -L/usr/local/lib"
+-if test "x$cross_compiling" != "xyes"; then
+- for path in \
+- /usr/kerberos \
+- /usr/local /opt /usr/local/opt \
+- /opt/homebrew/opt/openssl@3 /usr/local/opt/openssl@3 \
+- /opt/homebrew/opt/openssl@1.1 /usr/local/opt/openssl@1.1 \
+- /usr/openssl /opt/openssl /usr/local/opt/openssl; do
+- if test -d $path/include; then
+- CPPFLAGS="$CPPFLAGS -I${path}/include"
+- fi
+- if test -d $path/lib; then
+- LDFLAGS="$LDFLAGS -L${path}/lib"
+- fi
+- done
-fi
-
CPPFLAGS="$CPPFLAGS -D_FORTIFY_SOURCE=2"
dnl Checks for header files
--
-1.9.1
+2.25.1
diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch
index 4cb33bc5c8..32d714f6f4 100644
--- a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch
+++ b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd/nostrip.patch
@@ -1,7 +1,8 @@
-From 0290bd6f4ceddff2c52dff833c9d31d24de7d0e1 Mon Sep 17 00:00:00 2001
+From 79fd22c0def26eba130db98e312bb00fec32ac0a Mon Sep 17 00:00:00 2001
From: Tudor Florea <tudor.florea@enea.com>
Date: Tue, 4 Aug 2015 03:07:01 +0200
-Subject: [PATCH] Don't mess with CFLAGS and LDFLAGS when --with-minimal is specified
+Subject: [PATCH] Don't mess with CFLAGS and LDFLAGS when --with-minimal is
+ specified
We especially don't want stripping enabled.
@@ -9,15 +10,16 @@ Upstream-Status: Inappropriate [config]
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Tudor Florea <tudor.florea@enea.com>
+
---
configure.ac | 2 --
1 file changed, 2 deletions(-)
diff --git a/configure.ac b/configure.ac
-index 851d45d..dc410a1 100644
+index 695ce68..0f28b55 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -423,8 +423,6 @@ AC_ARG_WITH(minimal,
+@@ -414,8 +414,6 @@ AC_ARG_WITH(minimal,
AC_DEFINE(NO_FTP_USERS)
AC_DEFINE(WITHOUT_ASCII)
AC_DEFINE(BORING_MODE)
@@ -26,6 +28,3 @@ index 851d45d..dc410a1 100644
fi ])
AC_ARG_WITH(paranoidmsg,
---
-1.9.1
-
diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb
deleted file mode 100644
index c1f1504055..0000000000
--- a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.42.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "FTP Server with a strong focus on software security"
-DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server."
-HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd"
-SECTION = "net"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=90352fb2bfe17f4261687a0d6e09f489"
-
-DEPENDS = "libcap"
-
-
-SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \
- file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \
- file://nostrip.patch \
-"
-SRC_URI[md5sum] = "4195af8f0e5ee2a798b1014071dae3a3"
-SRC_URI[sha256sum] = "7be73a8e58b190a7054d2ae00c5e650cb9e091980420082d02ec3c3b68d8e7f9"
-
-inherit autotools
-
-EXTRA_OECONF = "--with-minimal"
-PACKAGECONFIG[libsodium] ="ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=yes, \
- ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=no, libsodium"
diff --git a/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.51.bb b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.51.bb
new file mode 100644
index 0000000000..6f03f73db5
--- /dev/null
+++ b/meta-networking/recipes-daemons/pure-ftpd/pure-ftpd_1.0.51.bb
@@ -0,0 +1,19 @@
+SUMMARY = "FTP Server with a strong focus on software security"
+DESCRIPTION = "Pure-FTPd is a free (BSD license), secure, production-quality and standard-conformant FTP server."
+HOMEPAGE = "http://www.pureftpd.org/project/pure-ftpd"
+SECTION = "net"
+LICENSE = "0BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=194bc994ad6bbd4ff5a021082fe52156"
+
+DEPENDS = "libcap virtual/crypt"
+
+SRC_URI = "http://download.pureftpd.org/pub/pure-ftpd/releases/pure-ftpd-${PV}.tar.gz \
+ file://0001-Remove-hardcoded-usr-local-includes-from-configure.a.patch \
+ file://nostrip.patch \
+"
+SRC_URI[sha256sum] = "4160f66b76615eea2397eac4ea3f0a146b7928207b79bc4cc2f99ad7b7bd9513"
+
+inherit autotools
+
+PACKAGECONFIG[libsodium] ="ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=yes, \
+ ac_cv_lib_sodium_crypto_pwhash_scryptsalsa208sha256_str=no, libsodium"
diff --git a/meta-networking/recipes-daemons/radvd/files/0001-Reverts-the-include.h-change-in-46883f8a1a02fe42040d.patch b/meta-networking/recipes-daemons/radvd/files/0001-Reverts-the-include.h-change-in-46883f8a1a02fe42040d.patch
new file mode 100644
index 0000000000..57338d4713
--- /dev/null
+++ b/meta-networking/recipes-daemons/radvd/files/0001-Reverts-the-include.h-change-in-46883f8a1a02fe42040d.patch
@@ -0,0 +1,32 @@
+From 15f439c555289f900eb33111b010bf1266f97edb Mon Sep 17 00:00:00 2001
+From: Jonathan Davies <jpds@protonmail.com>
+Date: Thu, 25 Nov 2021 15:29:18 +0000
+Subject: [PATCH] Reverts the include.h change in
+ 46883f8a1a02fe42040dd8e48aec0ed871545d4d
+
+Closes: #158
+
+Upstream-Status: Backport [https://github.com/radvd-project/radvd/commit/06689f8c06f44c7e87f7ff1d814428f88375b53f]
+Signed-off-by: Jonathan Davies <jpds@protonmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ includes.h | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/includes.h b/includes.h
+index ef30b10..c528c86 100644
+--- a/includes.h
++++ b/includes.h
+@@ -76,12 +76,7 @@
+ #include <sys/sysctl.h>
+ #endif
+
+-#if !defined(__GLIBC__) && defined(linux)
+-#include <linux/if.h>
+-#define IF_NAMESIZE IFNAMSIZ
+-#else
+ #include <net/if.h>
+-#endif
+
+ #ifdef HAVE_NET_IF_DL_H
+ #include <net/if_dl.h>
diff --git a/meta-networking/recipes-daemons/radvd/files/radvd.conf b/meta-networking/recipes-daemons/radvd/files/radvd.conf
new file mode 100644
index 0000000000..c006f86313
--- /dev/null
+++ b/meta-networking/recipes-daemons/radvd/files/radvd.conf
@@ -0,0 +1,18 @@
+# NOTE: there is no such thing as a working "by-default" configuration file.
+# At least the prefix needs to be specified. Please consult the radvd.conf(5)
+# man page and/or /usr/share/doc/radvd-*/radvd.conf.example for help.
+#
+#
+#interface eth0
+#{
+# AdvSendAdvert on;
+# MinRtrAdvInterval 30;
+# MaxRtrAdvInterval 100;
+# prefix 2001:db8:1:0::/64
+# {
+# AdvOnLink on;
+# AdvAutonomous on;
+# AdvRouterAddr off;
+# };
+#
+#};
diff --git a/meta-networking/recipes-daemons/radvd/radvd.inc b/meta-networking/recipes-daemons/radvd/radvd.inc
deleted file mode 100644
index 06d16a4cef..0000000000
--- a/meta-networking/recipes-daemons/radvd/radvd.inc
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "IPv6 router advertisement daemon"
-DESCRIPTION = "radvd is the router advertisement daemon for IPv6. It \
-listens to router solicitations and sends router \
-advertisements as described in RFC 2461, Neighbor \
-Discovery for IP Version 6 (IPv6). With these \
-advertisements hosts can automatically configure their \
-addresses and some other parameters. They also can \
-choose a default router based on these advertisements."
-HOMEPAGE = "http://www.litech.org/radvd/"
-SECTION = "net"
-DEPENDS = "flex-native bison-native libdaemon "
-
-# License is BSD-Style (with advertising clause) but also has an additional 0th clause
-LICENSE = "radvd"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=73ebbf7182ae996e65e8fadc9a8c45db"
-
-SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz \
- file://radvd.init \
- file://radvd.service \
- file://volatiles.03_radvd \
- file://radvd.default"
-
-inherit autotools update-rc.d useradd pkgconfig systemd
-
-SYSTEMD_SERVICE_${PN} = "radvd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_install_append () {
- install -m 0755 -d ${D}${sysconfdir}/init.d \
- ${D}${sysconfdir}/default/volatiles \
- ${D}${docdir}/radvd
- # Install init script and volatiles
- install -m 0755 ${WORKDIR}/radvd.init ${D}${sysconfdir}/init.d/radvd
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/radvd
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/radvd
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/radvd
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/radvd
-
- install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/volatiles.03_radvd
-
- # Install systemd service files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/radvd.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' \
- -e 's#@SBINDIR@#${sbindir}#g' \
- -e 's#@BASE_BINDIR@#${base_bindir}#g' ${D}${systemd_unitdir}/system/radvd.service
-
- # Install default environment file
- install -m 0644 ${WORKDIR}/radvd.default ${D}${sysconfdir}/default/radvd
-
- # Documentation
- for i in radvd.conf.example README; do \
- install -m 0644 ${S}/$i ${D}${docdir}/radvd; \
- done
-}
-
-INITSCRIPT_NAME = "radvd"
-INITSCRIPT_PARAMS = "defaults 20 80"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd"
-
-pkg_postinst_${PN} () {
- if [ -z "$D" -a -x /etc/init.d/populate-volatile.sh ]; then
- /etc/init.d/populate-volatile.sh update
- fi
-}
diff --git a/meta-networking/recipes-daemons/radvd/radvd_2.17.bb b/meta-networking/recipes-daemons/radvd/radvd_2.17.bb
deleted file mode 100644
index 4baea01d07..0000000000
--- a/meta-networking/recipes-daemons/radvd/radvd_2.17.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-
-require radvd.inc
-
-SRC_URI[md5sum] = "64ee3fdb5544bcddef1c6cd80d77fa0a"
-SRC_URI[sha256sum] = "53757e7f2164899e1145482f1ae91829600a6e2f6fec29cfb3b350a3bb45bd5d"
diff --git a/meta-networking/recipes-daemons/radvd/radvd_2.19.bb b/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
new file mode 100644
index 0000000000..f9f810abdd
--- /dev/null
+++ b/meta-networking/recipes-daemons/radvd/radvd_2.19.bb
@@ -0,0 +1,70 @@
+SUMMARY = "IPv6 router advertisement daemon"
+DESCRIPTION = "radvd is the router advertisement daemon for IPv6. It \
+listens to router solicitations and sends router \
+advertisements as described in RFC 2461, Neighbor \
+Discovery for IP Version 6 (IPv6). With these \
+advertisements hosts can automatically configure their \
+addresses and some other parameters. They also can \
+choose a default router based on these advertisements."
+HOMEPAGE = "http://www.litech.org/radvd/"
+SECTION = "net"
+DEPENDS = "flex-native bison-native libdaemon "
+
+# License is BSD-Style (with advertising clause) but also has an additional 0th clause
+LICENSE = "radvd"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=73ebbf7182ae996e65e8fadc9a8c45db"
+
+SRC_URI = "http://v6web.litech.org/radvd/dist/radvd-${PV}.tar.gz \
+ file://radvd.init \
+ file://radvd.service \
+ file://volatiles.03_radvd \
+ file://radvd.default \
+ file://radvd.conf \
+ file://0001-Reverts-the-include.h-change-in-46883f8a1a02fe42040d.patch \
+ "
+SRC_URI[sha256sum] = "c36470706fec3a9e6bed394ffea08acaff5dac647848d26b96bb9b9c65d58da0"
+
+inherit autotools useradd pkgconfig systemd
+
+SYSTEMD_SERVICE:${PN} = "radvd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+do_install:append () {
+ install -m 0755 -d ${D}${sysconfdir}/init.d \
+ ${D}${sysconfdir}/default/volatiles \
+ ${D}${docdir}/radvd
+ # Install init script and volatiles
+ install -m 0755 ${WORKDIR}/radvd.init ${D}${sysconfdir}/init.d/radvd
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/radvd
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/radvd
+ sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/radvd
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/radvd
+
+ install -m 0644 ${WORKDIR}/volatiles.03_radvd ${D}${sysconfdir}/default/volatiles/03_radvd
+
+ # Install systemd service files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/radvd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' \
+ -e 's#@SBINDIR@#${sbindir}#g' \
+ -e 's#@BASE_BINDIR@#${base_bindir}#g' ${D}${systemd_unitdir}/system/radvd.service
+
+ # Install default environment file
+ install -m 0644 ${WORKDIR}/radvd.default ${D}${sysconfdir}/default/radvd
+
+ # Documentation
+ for i in radvd.conf.example README; do \
+ install -m 0644 ${S}/$i ${D}${docdir}/radvd; \
+ done
+
+ install -m 0644 ${WORKDIR}/radvd.conf ${D}${sysconfdir}/radvd.conf
+}
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home ${localstatedir}/run/radvd/ -M -g nogroup radvd"
+
+pkg_postinst:${PN} () {
+ if [ -z "$D" -a -x /etc/init.d/populate-volatile.sh ]; then
+ /etc/init.d/populate-volatile.sh update
+ fi
+}
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
index 302136a03c..acebd6dce5 100644
--- 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
@@ -11,6 +11,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
+
acinclude/ax_check_compile_flag.m4 | 74 ++++++++++++++++++++++++++++++++++++++
configure.ac | 2 ++
2 files changed, 76 insertions(+)
diff --git a/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch b/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch
deleted file mode 100644
index 8ea55d0e16..0000000000
--- a/meta-networking/recipes-daemons/squid/files/0001-tools.cc-fixed-unused-result-warning.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From faaa796a138cbd5033b1e53f33faac0cf4162bf5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 25 Jun 2017 00:59:24 -0700
-Subject: [PATCH] tools.cc: fixed unused-result warning
-
-fix
-| ../../squid-3.5.26/src/tools.cc: In function 'void enter_suid()':
-| ../../squid-3.5.26/src/tools.cc:616:11: error: ignoring return value of 'int setuid(__uid_t)', declared with attribute warn_unused_result [-Werror=unused-result]
-| setuid(0);
-| ~~~~~~^~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/tools.cc | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/tools.cc b/src/tools.cc
-index 8137a03..843e266 100644
---- a/src/tools.cc
-+++ b/src/tools.cc
-@@ -612,8 +612,8 @@ enter_suid(void)
- if (setresuid((uid_t)-1, 0, (uid_t)-1) < 0)
- debugs (21, 3, "enter_suid: setresuid failed: " << xstrerror ());
- #else
--
-- setuid(0);
-+ if (setuid(0) < 0)
-+ debugs(50, DBG_IMPORTANT, "WARNING: no_suid: setuid(0): " << xstrerror());
- #endif
- #if HAVE_PRCTL && defined(PR_SET_DUMPABLE)
- /* Set Linux DUMPABLE flag */
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
index 25f68aff8f..738e609c05 100644
--- 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
@@ -1,4 +1,4 @@
-From b4943594654cd340b95aabdc2f3750a4705cc0de Mon Sep 17 00:00:00 2001
+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
@@ -12,19 +12,19 @@ about why and setting the need for -ldb incorrectly.
Signed-off-by: Jim Somerville <Jim.Somerville@windriver.com>
---
- configure.ac | 12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
+Upstream-Status: Pending
+
+ configure.ac | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
diff --git a/configure.ac b/configure.ac
-index 57cd1ac..3827222 100644
+index d2f7feb..c7ae568 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -3229,8 +3229,16 @@ AC_CHECK_DECL(dbopen,,,[
- #include <db.h>
- #endif])
+@@ -3268,6 +3268,16 @@ case "$host" in
+ ;;
+ esac
--dnl 1.85
--SQUID_CHECK_DBOPEN_NEEDS_LIBDB
+if test "x$ac_cv_have_decl_dbopen" = "xyes"; then
+ dnl 1.85
+ SQUID_CHECK_DBOPEN_NEEDS_LIBDB
@@ -35,6 +35,6 @@ index 57cd1ac..3827222 100644
+ # dynamic compile/link test.
+ ac_cv_dbopen_libdb="yes"
+fi
- if test "x$ac_cv_dbopen_libdb" = "xyes"; then
- LIB_DB="-ldb"
- 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..ffb7371640 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
@@ -11,6 +11,8 @@ 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/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 6a3352548b..10853333e2 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 a85311965707ba2fa78f7ce044e6f61e65e66fd0 Mon Sep 17 00:00:00 2001
+From e4778299a3e49a634d2c7fe4fd9ac77777e829e3 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
@@ -17,7 +17,7 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
2 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/acinclude/krb5.m4 b/acinclude/krb5.m4
-index 5c83d88..c264118 100644
+index ad0ba60..4477446 100644
--- a/acinclude/krb5.m4
+++ b/acinclude/krb5.m4
@@ -61,7 +61,15 @@ main(void)
@@ -38,10 +38,10 @@ index 5c83d88..c264118 100644
])
]) dnl SQUID_CHECK_KRB5_HEIMDAL_BROKEN_KRB5_H
diff --git a/acinclude/lib-checks.m4 b/acinclude/lib-checks.m4
-index c4874da..ba72982 100644
+index 1e9333527c..2d42787029 100644
--- a/acinclude/lib-checks.m4
+++ b/acinclude/lib-checks.m4
-@@ -177,7 +177,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_CONST_SSL_METHOD],[
+@@ -227,7 +227,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_CONST_SSL_METHOD],[
[
AC_MSG_RESULT([no])
],
@@ -51,15 +51,16 @@ index c4874da..ba72982 100644
+ ])
SQUID_STATE_ROLLBACK(check_const_SSL_METHOD)
- ]
-@@ -265,7 +267,9 @@ AC_DEFUN([SQUID_CHECK_OPENSSL_TXTDB],[
+ ])
+@@ -386,8 +386,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])
-+])
++ ],[
++ AC_MSG_RESULT([skipped - can't test in cross-compiled env])
++ ])
SQUID_STATE_ROLLBACK(check_TXTDB)
])
diff --git a/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch b/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch
index e990480a6d..124e04490f 100644
--- a/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch
+++ b/meta-networking/recipes-daemons/squid/files/set_sysroot_patch.patch
@@ -17,25 +17,25 @@ diff --git a/configure.ac b/configure.ac
index 504a844..ff4688c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -974,15 +974,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], [ac_cv_libxml2_include="-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], [ac_cv_libxml2_include="-I$SYSROOT/usr/include/libxml2"], [
-+ AC_MSG_NOTICE([Testing in $SYSROOT/usr/local/include/libxml2])
-+ CPPFLAGS="-I$SYSROOT/usr/local/include/libxml2 $SAVED_CPPFLAGS"
+@@ -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], [ac_cv_libxml2_include="-I/usr/local/include/libxml2"], [
-+ AC_CHECK_HEADERS([libxml/parser.h], [ac_cv_libxml2_include="-I$SYSROOT/usr/local/include/libxml2"], [
- AC_MSG_NOTICE([Failed to find libxml2 header file 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
index e5267ea2b2..ea27285e09 100644
--- 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
@@ -20,11 +20,11 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/test-suite/Makefile.am b/test-suite/Makefile.am
-index 061a463..350dfb2 100644
+index 0233c0e..e0021b6 100644
--- a/test-suite/Makefile.am
+++ b/test-suite/Makefile.am
-@@ -41,8 +41,7 @@ TESTS += debug \
- MemPoolTest\
+@@ -40,8 +40,7 @@ TESTS += debug \
+ splay\
mem_node_test\
mem_hdr_test\
- $(ESI_TESTS) \
@@ -33,7 +33,7 @@ index 061a463..350dfb2 100644
## Sort by alpha - any build failures are significant.
check_PROGRAMS += debug \
-@@ -125,19 +124,19 @@ VirtualDeleteOperator_SOURCES = VirtualDeleteOperator.cc $(DEBUG_SOURCE)
+@@ -159,19 +158,19 @@ VirtualDeleteOperator_SOURCES = \
##$(TARGLIB): $(LIBOBJS)
## $(AR_R) $(TARGLIB) $(LIBOBJS)
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 9c75f17e70..732cf17f7b 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
@@ -1,4 +1,4 @@
-From 9bcec221a2bb438d8a9ed59aed846ffe3be9cffa Mon Sep 17 00:00:00 2001
+From 3d881c112bba765731d581194aae95651819b715 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Tue, 19 Jul 2016 01:56:23 -0400
Subject: [PATCH] squid: use serial-tests config needed by ptest
@@ -15,15 +15,15 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 3827222..504a844 100644
+index c7ae568..5e1454e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10,7 +10,7 @@ AC_PREREQ(2.61)
AC_CONFIG_HEADERS([include/autoconf.h])
AC_CONFIG_AUX_DIR(cfgaux)
AC_CONFIG_SRCDIR([src/main.cc])
--AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects])
-+AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects serial-tests])
+-AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects dist-xz])
++AM_INIT_AUTOMAKE([tar-ustar nostdinc subdir-objects dist-xz serial-tests])
AC_REVISION($Revision$)dnl
AC_PREFIX_DEFAULT(/usr/local/squid)
AM_MAINTAINER_MODE
diff --git a/meta-networking/recipes-daemons/squid/squid_3.5.27.bb b/meta-networking/recipes-daemons/squid/squid_3.5.27.bb
deleted file mode 100644
index 7dae3cd83f..0000000000
--- a/meta-networking/recipes-daemons/squid/squid_3.5.27.bb
+++ /dev/null
@@ -1,112 +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 = "GPLv2+"
-
-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}/${MIN_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 \
- file://0001-tools.cc-fixed-unused-result-warning.patch \
- "
-
-SRC_URI_remove_toolchain-clang = "file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch"
-
-SRC_URI[md5sum] = "c17a3ed3a40cd59c23f48b8539dafcd8"
-SRC_URI[sha256sum] = "467da134eaf0f7962ba5881793d106772fb05fefa4aea7d9569eec0412c52433"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c492e2d6d32ec5c1aad0e0609a141ce9 \
- file://errors/COPYRIGHT;md5=8861130fae91400bcf99b66f133172b3 \
- "
-DEPENDS = "libtool krb5 openldap db cyrus-sasl openssl expat libxml2"
-
-inherit autotools pkgconfig useradd ptest perlnative
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --home-dir /var/run/squid --shell /bin/false --user-group squid"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('TARGET_ARCH', 'powerpc', 'noatomics', '', d)} \
- ${@bb.utils.contains('TARGET_ARCH', 'mips', 'noatomics', '', d)} \
- ${@bb.utils.contains('TARGET_ARCH', 'mipsel', 'noatomics', '', d)} \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
- "
-PACKAGECONFIG[libnetfilter-conntrack] = "--with-netfilter-conntrack=${includedir}, --without-netfilter-conntrack, libnetfilter-conntrack"
-PACKAGECONFIG[noatomics] = "squid_cv_gnu_atomics=no,squid_cv_gnu_atomics=yes,,"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-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}
-
- # 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/' \
- -e "s/\(list=' \$(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"
-
-RDEPENDS_${PN} += "perl"
-RDEPENDS_${PN}-ptest += "make"
diff --git a/meta-networking/recipes-daemons/squid/squid_5.7.bb b/meta-networking/recipes-daemons/squid/squid_5.7.bb
new file mode 100644
index 0000000000..2a5de1872d
--- /dev/null
+++ b/meta-networking/recipes-daemons/squid/squid_5.7.bb
@@ -0,0 +1,128 @@
+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_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}
+
+ # 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/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/0001-tftp-Mark-toplevel-definition-as-external.patch b/meta-networking/recipes-daemons/tftp-hpa/files/0001-tftp-Mark-toplevel-definition-as-external.patch
new file mode 100644
index 0000000000..646757c783
--- /dev/null
+++ b/meta-networking/recipes-daemons/tftp-hpa/files/0001-tftp-Mark-toplevel-definition-as-external.patch
@@ -0,0 +1,30 @@
+From 2a12174a5059e84d4ff6fad8f983a4d0f2127e73 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Aug 2020 12:17:31 -0700
+Subject: [PATCH] tftp: Mark toplevel definition as external
+
+Fixes
+multiple definition of `toplevel'; tftp.o:/usr/src/debug/tftp-hpa/5.2-r0/tftp-hpa-5.2/tftp/tftp.c:51: first defined here
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tftp/tftp.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tftp/tftp.c b/tftp/tftp.c
+index 9d15022..109848c 100644
+--- a/tftp/tftp.c
++++ b/tftp/tftp.c
+@@ -48,7 +48,7 @@ extern int maxtimeout;
+ #define PKTSIZE SEGSIZE+4
+ char ackbuf[PKTSIZE];
+ int timeout;
+-sigjmp_buf toplevel;
++extern sigjmp_buf toplevel;
+ sigjmp_buf timeoutbuf;
+
+ static void nak(int, const char *);
+--
+2.28.0
+
diff --git a/meta-networking/recipes-daemons/tftp-hpa/files/0001-tftp-Remove-double-inclusion-of-signal.h.patch b/meta-networking/recipes-daemons/tftp-hpa/files/0001-tftp-Remove-double-inclusion-of-signal.h.patch
new file mode 100644
index 0000000000..84658d667b
--- /dev/null
+++ b/meta-networking/recipes-daemons/tftp-hpa/files/0001-tftp-Remove-double-inclusion-of-signal.h.patch
@@ -0,0 +1,39 @@
+From e9ed48d91642d384ce07cbb9bec788f07fc6354c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Sep 2022 14:51:42 -0700
+Subject: [PATCH] tftp: Remove double inclusion of signal.h
+
+Undefine __USE_XOPEN2K8 so we can get bsd_signal definition from system
+headers
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ config.h | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/config.h b/config.h
+index 3ff2915..ae1a14b 100644
+--- a/config.h
++++ b/config.h
+@@ -93,7 +93,6 @@
+ #endif
+
+ #include <errno.h>
+-#include <signal.h>
+
+ #ifdef HAVE_SYS_SOCKET_H
+ #include <sys/socket.h>
+@@ -296,6 +295,9 @@ char *xstrdup(const char *);
+
+ #ifndef HAVE_BSD_SIGNAL
+ void (*bsd_signal(int, void (*)(int))) (int);
++#else
++#undef __USE_XOPEN2K8
++#include <signal.h>
+ #endif
+ #ifndef HAVE_DUP2
+ int dup2(int, int);
+--
+2.37.3
+
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/tftp-hpa/tftp-hpa_5.2.bb b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
index 132972b331..565f493ce2 100644
--- a/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
+++ b/meta-networking/recipes-daemons/tftp-hpa/tftp-hpa_5.2.bb
@@ -28,6 +28,8 @@ SRC_URI = "http://kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-${PV}.t
file://tftp-hpa-bug-fix-on-separated-CR-and-LF.patch \
file://fix-writing-emtpy-file.patch \
file://0001-__progname-is-provided-by-libc.patch \
+ file://0001-tftp-Mark-toplevel-definition-as-external.patch \
+ file://0001-tftp-Remove-double-inclusion-of-signal.h.patch \
file://tftpd-hpa.socket \
file://tftpd-hpa.service \
"
@@ -71,21 +73,26 @@ do_install() {
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}${systemd_unitdir}/system/tftpd-hpa.service
}
-FILES_${PN} = "${bindir}"
+FILES:${PN} = "${bindir}"
PACKAGES += "tftp-hpa-server"
-SUMMARY_tftp-hpa-server = "Server for the Trivial File Transfer Protocol"
-FILES_tftp-hpa-server = "${sbindir} ${sysconfdir} ${localstatedir}"
-CONFFILES_tftp-hpa-server = "${sysconfdir}/default/tftpd-hpa"
+SUMMARY:tftp-hpa-server = "Server for the Trivial File Transfer Protocol"
+FILES:tftp-hpa-server = "${sbindir} ${sysconfdir} ${localstatedir}"
+CONFFILES:tftp-hpa-server = "${sysconfdir}/default/tftpd-hpa"
INITSCRIPT_PACKAGES = "tftp-hpa-server"
INITSCRIPT_NAME = "tftpd-hpa"
INITSCRIPT_PARAMS = "start 20 2 3 4 5 . stop 20 1 ."
-ALTERNATIVE_${PN} = "tftp"
+ALTERNATIVE:${PN}-doc = "tftpd.8 tftp.1"
+ALTERNATIVE_LINK_NAME[tftpd.8] = "${mandir}/man8/tftpd.8"
+ALTERNATIVE_LINK_NAME[tftp.1] = "${mandir}/man1/tftp.1"
+
+ALTERNATIVE:${PN} = "tftp"
ALTERNATIVE_TARGET[tftp] = "${bindir}/tftp-hpa"
-ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_PRIORITY = "100"
+
SYSTEMD_PACKAGES = "tftp-hpa-server"
-SYSTEMD_SERVICE_tftp-hpa-server = "tftpd-hpa.socket tftpd-hpa.service"
-SYSTEMD_AUTO_ENABLE_tftp-hpa-server = "enable"
+SYSTEMD_SERVICE:tftp-hpa-server = "tftpd-hpa.socket tftpd-hpa.service"
+SYSTEMD_AUTO_ENABLE:tftp-hpa-server = "enable"
diff --git a/meta-networking/recipes-daemons/vblade/files/cross.patch b/meta-networking/recipes-daemons/vblade/files/cross.patch
index d2eb156143..f3dc31c93d 100644
--- a/meta-networking/recipes-daemons/vblade/files/cross.patch
+++ b/meta-networking/recipes-daemons/vblade/files/cross.patch
@@ -8,8 +8,8 @@ diff -urN vblade-19.old//makefile vblade-19//makefile
@@ -9,8 +9,6 @@
mandir = ${sharedir}/man
- O=aoe.o bpf.o ${PLATFORM}.o ata.o
--CFLAGS += -Wall -g -O2
+ O=aoe.o bpf.o ${PLATFORM}.o ata.o dat.o
+-CFLAGS += -Wall -g -O2 -fno-common
-CC = gcc
vblade: $O
diff --git a/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch b/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch
index a74452db69..71af47ac73 100644
--- a/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch
+++ b/meta-networking/recipes-daemons/vblade/files/makefile-add-ldflags.patch
@@ -9,7 +9,7 @@ index 98008da..c328ba7 100644
--- a/makefile
+++ b/makefile
@@ -11,7 +11,7 @@ mandir = ${sharedir}/man
- O=aoe.o bpf.o ${PLATFORM}.o ata.o
+ O=aoe.o bpf.o ${PLATFORM}.o ata.o dat.o
vblade: $O
- ${CC} -o vblade $O
diff --git a/meta-networking/recipes-daemons/vblade/vblade_22.bb b/meta-networking/recipes-daemons/vblade/vblade_22.bb
deleted file mode 100644
index a51a8c31ca..0000000000
--- a/meta-networking/recipes-daemons/vblade/vblade_22.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Virtual EtherDrive blade AoE target"
-SECTION = "admin"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/aoetools/${BP}.tar.gz \
- file://cross.patch \
- file://makefile-add-ldflags.patch \
- file://${BPN}.conf \
- file://${BPN}.init \
- file://${BPN}.service \
- file://volatiles.99_vblade \
- "
-
-SRC_URI[md5sum] = "510d98ba0f231284a5fbe2da11cb2d6e"
-SRC_URI[sha256sum] = "a990378f273f10eb431e42954a871aed52714035bbab28c54cef600c458356bb"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/aoetools/files/vblade/"
-
-inherit autotools-brokensep update-rc.d systemd
-
-do_install() {
- install -D -m 0755 ${S}/vblade ${D}/${sbindir}/vblade
- install -D -m 0755 ${S}/vbladed ${D}/${sbindir}/vbladed
- install -D -m 0644 ${S}/vblade.8 ${D}/${mandir}/man8/vblade.8
-
- install -D -m 0644 ${WORKDIR}/${BPN}.conf ${D}/${sysconfdir}/${BPN}.conf
- install -D -m 0755 ${WORKDIR}/${BPN}.init ${D}/${sysconfdir}/init.d/${BPN}
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -d ${D}/${sysconfdir}/default/volatiles
- install -m 0755 ${WORKDIR}/volatiles.99_vblade ${D}/${sysconfdir}/default/volatiles/99_vblade
- fi
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}/${bindir}
- install -m 0755 ${WORKDIR}/${BPN}.init ${D}/${bindir}/
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /var/run/${BPN} 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/vblade.service ${D}${systemd_system_unitdir}
- sed -e 's,@BINDIR@,${bindir},g' -i ${D}${systemd_system_unitdir}/*.service
- fi
-
-}
-
-INITSCRIPT_NAME = "vblade"
-INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "vblade.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-networking/recipes-daemons/vblade/vblade_25.bb b/meta-networking/recipes-daemons/vblade/vblade_25.bb
new file mode 100644
index 0000000000..7c37fc1676
--- /dev/null
+++ b/meta-networking/recipes-daemons/vblade/vblade_25.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Virtual EtherDrive blade AoE target"
+SECTION = "admin"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/aoetools/files/vblade/"
+
+SRCREV = "5f1a0ba8b9815e3f08a3e2635a17f78bbf2a5b10"
+SRC_URI = "git://github.com/OpenAoE/vblade;branch=master;protocol=https \
+ file://cross.patch \
+ file://makefile-add-ldflags.patch \
+ file://${BPN}.conf \
+ file://${BPN}.init \
+ file://${BPN}.service \
+ file://volatiles.99_vblade \
+ "
+
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_URI = "https://github.com/OpenAoE/vblade/archive/"
+
+inherit autotools-brokensep update-rc.d systemd
+
+do_install() {
+ install -D -m 0755 ${S}/vblade ${D}/${sbindir}/vblade
+ install -D -m 0755 ${S}/vbladed ${D}/${sbindir}/vbladed
+ install -D -m 0644 ${S}/vblade.8 ${D}/${mandir}/man8/vblade.8
+
+ install -D -m 0644 ${WORKDIR}/${BPN}.conf ${D}/${sysconfdir}/${BPN}.conf
+ install -D -m 0755 ${WORKDIR}/${BPN}.init ${D}/${sysconfdir}/init.d/${BPN}
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}/${sysconfdir}/default/volatiles
+ install -m 0755 ${WORKDIR}/volatiles.99_vblade ${D}/${sysconfdir}/default/volatiles/99_vblade
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}/${bindir}
+ install -m 0755 ${WORKDIR}/${BPN}.init ${D}/${bindir}/
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /var/run/${BPN} 0755 root root -" > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/vblade.service ${D}${systemd_system_unitdir}
+ sed -e 's,@BINDIR@,${bindir},g' -i ${D}${systemd_system_unitdir}/*.service
+ fi
+
+}
+
+INITSCRIPT_NAME = "vblade"
+INITSCRIPT_PARAMS = "start 30 . stop 70 0 1 2 3 4 5 6 ."
+
+SYSTEMD_SERVICE:${PN} = "vblade.service"
+SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch
deleted file mode 100644
index c6c0f80a19..0000000000
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 9c4826c19f04da533886209361a2caddf582d65c Mon Sep 17 00:00:00 2001
-From: Mingli Yu <Mingli.Yu@windriver.com>
-Date: Tue, 6 Sep 2016 17:17:44 +0800
-Subject: [PATCH] vsftpd: allow sysinfo() in the seccomp sandbox
-
-Upstream-Status: Pending
-
-* Allow sysinfo() in the seccomp sandbox otherwise
- comes below OOPS: priv_sock_get_cmd as the syscall
- sysinfo() not allowed
-
-tnftp 192.168.1.1
-Connected to 192.168.1.1.
-220 (vsFTPd 3.0.3)
-Name (192.168.1.1:root): anonymous
-331 Please specify the password.
-Password:
-230 Login successful.
-Remote system type is UNIX.
-Using binary mode to transfer files.
-ftp> prompt
-Interactive mode off.
-ftp> mget small*
-OOPS: priv_sock_get_cmd
-
-Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
-
----
- seccompsandbox.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/seccompsandbox.c b/seccompsandbox.c
-index 2c350a9..67d9ca5 100644
---- a/seccompsandbox.c
-+++ b/seccompsandbox.c
-@@ -409,6 +409,7 @@ seccomp_sandbox_setup_postlogin(const struct vsf_session* p_sess)
- allow_nr(__NR_getcwd);
- allow_nr(__NR_chdir);
- allow_nr(__NR_getdents);
-+ allow_nr(__NR_sysinfo);
- /* Misc */
- allow_nr(__NR_umask);
-
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/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.3/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.3/makefile-destdir.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-destdir.patch
index 5ad5c14e7a..5ad5c14e7a 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-destdir.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-destdir.patch
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-libs.patch
index d2e58a3254..d2e58a3254 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-libs.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-libs.patch
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-strip.patch
index e596073887..e596073887 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/makefile-strip.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/makefile-strip.patch
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/nopam-with-tcp_wrappers.patch
index a4387c132b..a4387c132b 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam-with-tcp_wrappers.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/nopam-with-tcp_wrappers.patch
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/nopam.patch
index cf0d68e272..cf0d68e272 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/nopam.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/nopam.patch
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/vsftpd-2.1.0-filter.patch
index 590eb58579..590eb58579 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-2.1.0-filter.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/vsftpd-2.1.0-filter.patch
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/vsftpd-tcp_wrappers-support.patch
index c558aee0aa..c558aee0aa 100644
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.3/vsftpd-tcp_wrappers-support.patch
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd-3.0.5/vsftpd-tcp_wrappers-support.patch
diff --git a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
deleted file mode 100644
index 80b0117c88..0000000000
--- a/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.3.bb
+++ /dev/null
@@ -1,115 +0,0 @@
-SUMMARY = "Very Secure FTP server"
-HOMEPAGE = "https://security.appspot.com/vsftpd.html"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271"
-
-DEPENDS = "libcap openssl"
-
-SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \
- file://makefile-destdir.patch \
- file://makefile-libs.patch \
- file://makefile-strip.patch \
- file://init \
- file://vsftpd.conf \
- file://vsftpd.user_list \
- file://vsftpd.ftpusers \
- file://change-secure_chroot_dir.patch \
- file://volatiles.99_vsftpd \
- file://vsftpd.service \
- file://vsftpd-2.1.0-filter.patch \
- file://0001-vsftpd-allow-sysinfo-in-the-seccomp-sandbox.patch \
- ${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)} \
- file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \
- "
-
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/v/vsftpd/"
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \
- file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \
- file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb"
-SRC_URI[md5sum] = "da119d084bd3f98664636ea05b5bb398"
-SRC_URI[sha256sum] = "9d4d2bf6e6e2884852ba4e69e157a2cecd68c5a7635d66a3a8cf8d898c955ef7"
-
-
-PACKAGECONFIG ??= "tcp-wrappers"
-PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers"
-
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-RDEPENDS_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}"
-PAMLIB = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}"
-WRAPLIB = "${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', '-lwrap', '', d)}"
-NOPAM_SRC ="${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}"
-
-inherit update-rc.d useradd systemd
-
-CONFFILES_${PN} = "${sysconfdir}/vsftpd.conf"
-LDFLAGS_append =" -lcrypt -lcap"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-do_configure() {
- # Fix hardcoded /usr, /etc, /var mess.
- cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \
- |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new
- mv tunables.c.new tunables.c
-}
-
-do_compile() {
- oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} ${WRAPLIB}"
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -d ${D}${mandir}/man8
- install -d ${D}${mandir}/man5
- oe_runmake 'DESTDIR=${D}' install
- install -d ${D}${sysconfdir}
- install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf
- install -d ${D}${sysconfdir}/init.d/
- install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd
- install -d ${D}/${sysconfdir}/default/volatiles
- install -m 644 ${WORKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd
-
- install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/
- install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/
- if ! test -z "${PAMLIB}" ; then
- install -d ${D}${sysconfdir}/pam.d/
- cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd
- sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd
- sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d /var/run/vsftpd/empty 0755 root root -" \
- > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
- fi
-
- # Install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/vsftpd.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/vsftpd.service
-}
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME_${PN} = "vsftpd"
-INITSCRIPT_PARAMS_${PN} = "defaults 80"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --home-dir /var/lib/ftp --no-create-home -g ftp \
- --shell /bin/false ftp "
-GROUPADD_PARAM_${PN} = "-r ftp"
-
-SYSTEMD_SERVICE_${PN} = "vsftpd.service"
-
-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-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb
new file mode 100644
index 0000000000..0ae52c8ddc
--- /dev/null
+++ b/meta-networking/recipes-daemons/vsftpd/vsftpd_3.0.5.bb
@@ -0,0 +1,113 @@
+SUMMARY = "Very Secure FTP server"
+HOMEPAGE = "https://security.appspot.com/vsftpd.html"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271"
+
+DEPENDS = "libcap openssl"
+
+SRC_URI = "https://security.appspot.com/downloads/vsftpd-${PV}.tar.gz \
+ file://makefile-destdir.patch \
+ file://makefile-libs.patch \
+ file://makefile-strip.patch \
+ file://init \
+ file://vsftpd.conf \
+ file://vsftpd.user_list \
+ file://vsftpd.ftpusers \
+ file://change-secure_chroot_dir.patch \
+ file://volatiles.99_vsftpd \
+ file://vsftpd.service \
+ file://vsftpd-2.1.0-filter.patch \
+ ${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://vsftpd-tcp_wrappers-support.patch', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '', '${NOPAM_SRC}', d)} \
+ file://0001-sysdeputil.c-Fix-with-musl-which-does-not-have-utmpx.patch \
+ "
+
+UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/v/vsftpd/"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)\.orig\.tar"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a6067ad950b28336613aed9dd47b1271 \
+ file://COPYRIGHT;md5=04251b2eb0f298dae376d92454f6f72e \
+ file://LICENSE;md5=654df2042d44b8cac8a5654fc5be63eb"
+SRC_URI[sha256sum] = "26b602ae454b0ba6d99ef44a09b6b9e0dfa7f67228106736df1f278c70bc91d3"
+
+
+PACKAGECONFIG ??= "tcp-wrappers"
+PACKAGECONFIG[tcp-wrappers] = ",,tcp-wrappers"
+
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+RDEPENDS:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-listfile', '', d)}"
+PAMLIB = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '-L${STAGING_BASELIBDIR} -lpam', '', d)}"
+WRAPLIB = "${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', '-lwrap', '', d)}"
+NOPAM_SRC ="${@bb.utils.contains('PACKAGECONFIG', 'tcp-wrappers', 'file://nopam-with-tcp_wrappers.patch', 'file://nopam.patch', d)}"
+
+inherit update-rc.d useradd systemd
+
+CONFFILES:${PN} = "${sysconfdir}/vsftpd.conf"
+LDFLAGS:append =" -lcrypt -lcap"
+CFLAGS:append:libc-musl = " -D_GNU_SOURCE -D_LARGEFILE64_SOURCE -include fcntl.h"
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_configure() {
+ # Fix hardcoded /usr, /etc, /var mess.
+ cat tunables.c|sed s:\"/usr:\"${prefix}:g|sed s:\"/var:\"${localstatedir}:g \
+ |sed s:\"/etc:\"${sysconfdir}:g > tunables.c.new
+ mv tunables.c.new tunables.c
+}
+
+do_compile() {
+ oe_runmake "LIBS=-L${STAGING_LIBDIR} -lcrypt -lcap ${PAMLIB} ${WRAPLIB}"
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -d ${D}${mandir}/man8
+ install -d ${D}${mandir}/man5
+ oe_runmake 'DESTDIR=${D}' install
+ install -d ${D}${sysconfdir}
+ install -m 600 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}/vsftpd.conf
+ install -d ${D}${sysconfdir}/init.d/
+ install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/vsftpd
+ install -d ${D}/${sysconfdir}/default/volatiles
+ install -m 644 ${WORKDIR}/volatiles.99_vsftpd ${D}/${sysconfdir}/default/volatiles/99_vsftpd
+
+ install -m 600 ${WORKDIR}/vsftpd.ftpusers ${D}${sysconfdir}/
+ install -m 600 ${WORKDIR}/vsftpd.user_list ${D}${sysconfdir}/
+ if ! test -z "${PAMLIB}" ; then
+ install -d ${D}${sysconfdir}/pam.d/
+ cp ${S}/RedHat/vsftpd.pam ${D}${sysconfdir}/pam.d/vsftpd
+ sed -i "s:/lib/security:${base_libdir}/security:" ${D}${sysconfdir}/pam.d/vsftpd
+ sed -i "s:ftpusers:vsftpd.ftpusers:" ${D}${sysconfdir}/pam.d/vsftpd
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /var/run/vsftpd/empty 0755 root root -" \
+ > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
+ fi
+
+ # Install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/vsftpd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/vsftpd.service
+}
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "vsftpd"
+INITSCRIPT_PARAMS:${PN} = "defaults 80"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home-dir /var/lib/ftp --no-create-home -g ftp \
+ --shell /bin/false ftp "
+GROUPADD_PARAM:${PN} = "-r ftp"
+
+SYSTEMD_SERVICE:${PN} = "vsftpd.service"
+
+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-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
deleted file mode 100644
index 5774e62eb1..0000000000
--- a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From cc6dbabea0e452ebc93682df860a79ed9a45722e Mon Sep 17 00:00:00 2001
-From: Alexey Firago <alexey_firago@mentor.com>
-Date: Fri, 20 Oct 2017 00:04:19 +0300
-Subject: [PATCH] CMakeLists.txt: Fix grpc_cpp_plugin path during
- cross-compilation
-
-Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
----
- CMakeLists.txt | 9 ++++++++-
- templates/CMakeLists.txt.template | 9 ++++++++-
- 2 files changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index f9cd630..9663934 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -328,6 +328,13 @@ function(protobuf_generate_grpc_cpp)
- return()
- endif()
-
-+ #if cross-compiling, find host plugin
-+ if(CMAKE_CROSSCOMPILING)
-+ find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
-+ else()
-+ set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
-+ endif()
-+
- set(_protobuf_include_path -I . -I ${PROTOBUF_WELLKNOWN_IMPORT_DIR})
- foreach(FIL ${ARGN})
- get_filename_component(ABS_FIL ${FIL} ABSOLUTE)
-@@ -345,7 +352,7 @@ function(protobuf_generate_grpc_cpp)
- COMMAND ${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}
- ARGS --grpc_out=generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}
- --cpp_out=${_gRPC_PROTO_GENS_DIR}
-- --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
-+ --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN}
- ${_protobuf_include_path}
- ${REL_FIL}
- DEPENDS ${ABS_FIL} ${_gRPC_PROTOBUF_PROTOC} grpc_cpp_plugin
-diff --git a/templates/CMakeLists.txt.template b/templates/CMakeLists.txt.template
-index 64daf04..a7e8629 100644
---- a/templates/CMakeLists.txt.template
-+++ b/templates/CMakeLists.txt.template
-@@ -373,6 +373,13 @@
- return()
- endif()
-
-+ #if cross-compiling, find host plugin
-+ if(CMAKE_CROSSCOMPILING)
-+ find_program(gRPC_CPP_PLUGIN grpc_cpp_plugin)
-+ else()
-+ set(gRPC_CPP_PLUGIN $<TARGET_FILE:grpc_cpp_plugin>)
-+ endif()
-+
- set(_protobuf_include_path -I . -I <%text>${PROTOBUF_WELLKNOWN_IMPORT_DIR}</%text>)
- foreach(FIL <%text>${ARGN}</%text>)
- get_filename_component(ABS_FIL <%text>${FIL}</%text> ABSOLUTE)
-@@ -390,7 +397,7 @@
- COMMAND <%text>${_gRPC_PROTOBUF_PROTOC_EXECUTABLE}</%text>
- ARGS --grpc_out=<%text>generate_mock_code=true:${_gRPC_PROTO_GENS_DIR}</%text>
- --cpp_out=<%text>${_gRPC_PROTO_GENS_DIR}</%text>
-- --plugin=protoc-gen-grpc=$<TARGET_FILE:grpc_cpp_plugin>
-+ --plugin=protoc-gen-grpc=${gRPC_CPP_PLUGIN}
- <%text>${_protobuf_include_path}</%text>
- <%text>${REL_FIL}</%text>
- DEPENDS <%text>${ABS_FIL}</%text> <%text>${_gRPC_PROTOBUF_PROTOC}</%text> grpc_cpp_plugin
---
-2.7.4
diff --git a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch b/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
deleted file mode 100644
index f8d965294a..0000000000
--- a/meta-networking/recipes-devtools/grpc/grpc/0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 8e9bf962a45a82f1c2eb5858e29fa89a3a60b564 Mon Sep 17 00:00:00 2001
-From: Alexey Firago <alexey_firago@mentor.com>
-Date: Mon, 30 Oct 2017 23:24:49 +0300
-Subject: [PATCH 1/4] CMakeLists.txt: Fix libraries installation for Linux
-
-* Set libs versions as in Makefile
-
-Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
-
-%% original patch: 0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch
----
- CMakeLists.txt | 55 +++++++++++++++++++++++++++++++++++
- CMakeLists.txt => CMakeLists.txt.orig | 0
- 2 files changed, 55 insertions(+)
- copy CMakeLists.txt => CMakeLists.txt.orig (100%)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index b1a49df..13e64ac 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -30,6 +30,15 @@ set(PACKAGE_TARNAME "${PACKAGE_NAME}-${PACKAGE_VERSION}")
- set(PACKAGE_BUGREPORT "https://github.com/grpc/grpc/issues/")
- project(${PACKAGE_NAME} C CXX)
-
-+set (CORE_VERSION_MAJOR "4")
-+set (CORE_VERSION "4.0.0")
-+
-+set (CPP_VERSION_MAJOR "1")
-+set (CPP_VERSION "${PACKAGE_VERSION}")
-+
-+set (CSHARP_VERSION_MAJOR "1")
-+set (CSHARP_VERSION "${PACKAGE_VERSION}")
-+
- set(gRPC_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin" CACHE PATH "Installation directory for executables")
- set(gRPC_INSTALL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" CACHE PATH "Installation directory for libraries")
- set(gRPC_INSTALL_INCLUDEDIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "Installation directory for headers")
-@@ -841,6 +850,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET gpr PROPERTY VERSION ${CORE_VERSION})
-+ set_property(TARGET gpr PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
-+endif()
-
- target_include_directories(gpr
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -1221,6 +1234,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc PROPERTY VERSION ${CORE_VERSION})
-+ set_property(TARGET grpc PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -1535,6 +1552,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc_cronet PROPERTY VERSION ${CORE_VERSION})
-+ set_property(TARGET grpc_cronet PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc_cronet
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -2377,6 +2398,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc_unsecure PROPERTY VERSION ${CORE_VERSION})
-+ set_property(TARGET grpc_unsecure PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc_unsecure
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -2592,6 +2617,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc++ PROPERTY VERSION ${CPP_VERSION})
-+ set_property(TARGET grpc++ PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc++
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -3078,6 +3107,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc++_cronet PROPERTY VERSION ${CPP_VERSION})
-+ set_property(TARGET grpc++_cronet PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc++_cronet
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -3282,6 +3315,11 @@ protobuf_generate_grpc_cpp(
- src/proto/grpc/status/status.proto
- )
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc++_error_details PROPERTY VERSION ${CPP_VERSION})
-+ set_property(TARGET grpc++_error_details PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
-+endif()
-+
- target_include_directories(grpc++_error_details
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-@@ -3408,6 +3446,11 @@ protobuf_generate_grpc_cpp(
- src/proto/grpc/reflection/v1alpha/reflection.proto
- )
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc++_reflection PROPERTY VERSION ${CPP_VERSION})
-+ set_property(TARGET grpc++_reflection PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
-+endif()
-+
- target_include_directories(grpc++_reflection
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
- PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
-@@ -3827,6 +3870,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc++_unsecure PROPERTY VERSION ${CPP_VERSION})
-+ set_property(TARGET grpc++_unsecure PROPERTY SOVERSION ${CPP_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc++_unsecure
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -4140,6 +4187,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc_plugin_support PROPERTY VERSION ${CORE_VERSION})
-+ set_property(TARGET grpc_plugin_support PROPERTY SOVERSION ${CORE_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc_plugin_support
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-@@ -4649,6 +4700,10 @@ if(WIN32 AND MSVC)
- endif()
- endif()
-
-+if(_gRPC_PLATFORM_LINUX)
-+ set_property(TARGET grpc_csharp_ext PROPERTY VERSION ${CSHARP_VERSION})
-+ set_property(TARGET grpc_csharp_ext PROPERTY SOVERSION ${CSHARP_VERSION_MAJOR})
-+endif()
-
- target_include_directories(grpc_csharp_ext
- PUBLIC $<INSTALL_INTERFACE:${gRPC_INSTALL_INCLUDEDIR}> $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
-diff --git a/CMakeLists.txt b/CMakeLists.txt.orig
-similarity index 100%
-copy from CMakeLists.txt
-copy to CMakeLists.txt.orig
---
-2.16.1
-
diff --git a/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch b/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
deleted file mode 100644
index 8985022fad..0000000000
--- a/meta-networking/recipes-devtools/grpc/grpc/0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a498b56ba96948015f0f2784b2ab8296946716ee Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 1 Feb 2018 23:28:17 -0800
-Subject: [PATCH 4/4] CMakeLists.txt: Find c-ares in target sysroot alone
-
-Current code lets it look into native sysroot as well
-which is then preferred during cross compile and it adds
-absolute path to libcares into linker flags
-on heterogenous architectures linker complains and build
-fails
-
-| /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/grpc/1.8.5-r0/recipe-sysroot-native/usr/lib/lib
-cares.so.2.2.0: file not recognized: File format not recognized
-| collect2: error: ld returned 1 exit status
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 1d7eef1..058423d 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -153,10 +153,8 @@ if("${gRPC_CARES_PROVIDER}" STREQUAL "module")
- set(gRPC_INSTALL FALSE)
- endif()
- elseif("${gRPC_CARES_PROVIDER}" STREQUAL "package")
-- find_package(c-ares REQUIRED CONFIG)
-- if(TARGET c-ares::cares)
-- set(_gRPC_CARES_LIBRARIES c-ares::cares)
-- endif()
-+ find_package(c-ares REQUIRED)
-+ set(_gRPC_CARES_LIBRARIES cares)
- set(_gRPC_FIND_CARES "if(NOT c-ares_FOUND)\n find_package(c-ares CONFIG)\nendif()")
- endif()
-
---
-2.16.1
-
diff --git a/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb b/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
deleted file mode 100644
index 3e44f99c16..0000000000
--- a/meta-networking/recipes-devtools/grpc/grpc_1.8.5.bb
+++ /dev/null
@@ -1,33 +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"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS = "gflags c-ares protobuf protobuf-native protobuf-c protobuf-c-native openssl"
-DEPENDS_append_class-target = " gtest grpc-native "
-
-S = "${WORKDIR}/git"
-SRCREV = "db68cb3652cc7697647e9934b5316d98a6ba04d1"
-BRANCH = "v1.8.x"
-SRC_URI = "git://github.com/grpc/grpc.git;protocol=https;branch=${BRANCH} \
- file://0001-CMakeLists.txt-Fix-libraries-installation-for-Linux.patch \
- file://0004-CMakeLists.txt-Find-c-ares-in-target-sysroot-alone.patch \
- "
-SRC_URI_append_class-target = " file://0001-CMakeLists.txt-Fix-grpc_cpp_plugin-path-during-cross.patch"
-
-inherit cmake
-
-EXTRA_OECMAKE = " \
- -DgRPC_CARES_PROVIDER=package \
- -DgRPC_ZLIB_PROVIDER=package \
- -DgRPC_SSL_PROVIDER=package \
- -DgRPC_PROTOBUF_PROVIDER=package \
- -DgRPC_GFLAGS_PROVIDER=package \
- -DgRPC_INSTALL=1 \
- -DBUILD_SHARED_LIBS=ON \
- "
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest b/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
new file mode 100644
index 0000000000..b56ffe68f3
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if /usr/lib/libcoap/ptest/testdriver; then
+ echo "PASS: libcoap"
+else
+ echo "FAIL: libcoap"
+fi
diff --git a/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
new file mode 100644
index 0000000000..efea3fab74
--- /dev/null
+++ b/meta-networking/recipes-devtools/libcoap/libcoap_4.3.1.bb
@@ -0,0 +1,62 @@
+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
+
+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/perl/libauthen/libauthen-radius-perl_0.22.bb b/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb
deleted file mode 100644
index ea5bb1b0c9..0000000000
--- a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl_0.22.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Authen::Radius - provide simple Radius client facilities"
-DESCRIPTION = "The Authen::Radius module provides a simple class that \
- allows you to send/receive Radius requests/responses to/from a \
- Radius server. \
-"
-
-HOMEPAGE = "http://search.cpan.org/~manowar/RadiusPerl"
-SECTION = "libs"
-
-LICENSE = "Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=78ab6ea0cba1f1ec1680ebb149e3bc11"
-
-DEPENDS = "perl"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MANOWAR/RadiusPerl-${PV}.tar.gz \
- file://test.pl-adjust-for-ptest.patch \
- file://run-ptest \
-"
-SRC_URI[md5sum] = "d1fe2d6ecf7ea99299e4e3a8f945aad8"
-SRC_URI[sha256sum] = "3b276506986ccaa4949d92b13ce053a0017ad11562a991cc753364923fe81ca7"
-
-S = "${WORKDIR}/Authen-Radius-${PV}"
-
-inherit cpan ptest
-
-do_install_ptest() {
- install -m 0755 ${S}/test.pl ${D}${PTEST_PATH}
-}
-
-RDEPENDS_${PN} += "\
- libdata-hexdump-perl \
- perl-module-digest-md5 \
- perl-module-data-dumper \
- perl-module-io-select \
- perl-module-io-socket \
-"
-RDEPENDS_${PN}-ptest += "${PN} freeradius"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb b/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb
deleted file mode 100644
index 3dbc8b13e5..0000000000
--- a/meta-networking/recipes-devtools/python/python-ldap_2.4.41.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# Copyright (C) 2012 Wind River Systems, Inc.
-#
-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."
-
-LICENSE = "PSF"
-HOMEPAGE = "http://www.python-ldap.org/"
-DEPENDS = "python openldap cyrus-sasl"
-
-PYPI_PACKAGE = "python-ldap"
-inherit pypi setuptools
-
-LIC_FILES_CHKSUM = "file://LICENCE;md5=a41c82edffa04912007cae1d20cac555"
-SRC_URI[md5sum] = "18db2d009150ec1864710fea3ed76173"
-SRC_URI[sha256sum] = "6d430ecf040f2fc704ee316d3390cb1f5419c191371e1e131baef54a0e42cef0"
-
-do_configure_prepend() {
- sed -i -e 's:^library_dirs =.*::' setup.cfg
- sed -i -e 's:^include_dirs =.*:include_dirs = =/usr/include/sasl/:' setup.cfg
-}
-
-RDEPENDS_${PN} = " \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-threading \
-"
diff --git a/meta-networking/recipes-devtools/python/python3-scapy/run-ptest b/meta-networking/recipes-devtools/python/python3-scapy/run-ptest
new file mode 100644
index 0000000000..417e21053c
--- /dev/null
+++ b/meta-networking/recipes-devtools/python/python3-scapy/run-ptest
@@ -0,0 +1,4 @@
+#!/bin/sh
+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.5.0.bb b/meta-networking/recipes-devtools/python/python3-scapy_2.5.0.bb
new file mode 100644
index 0000000000..cc3f2ee1dd
--- /dev/null
+++ b/meta-networking/recipes-devtools/python/python3-scapy_2.5.0.bb
@@ -0,0 +1,41 @@
+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 = "9473f77d8b548c8e478e52838bdd4c12f5d4f4ff"
+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 ${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 ${PYTHON_PN}-fcntl"
diff --git a/meta-networking/recipes-extended/corosync/corosync/corosync.conf b/meta-networking/recipes-extended/corosync/corosync/corosync.conf
new file mode 100644
index 0000000000..744a30ff55
--- /dev/null
+++ b/meta-networking/recipes-extended/corosync/corosync/corosync.conf
@@ -0,0 +1,61 @@
+# Please read the corosync.conf.5 manual page
+totem {
+ version: 2
+
+ # Set name of the cluster
+ cluster_name: testCluster
+
+ # crypto_cipher and crypto_hash: Used for mutual node authentication.
+ # If you choose to enable this, then do remember to create a shared
+ # secret with "corosync-keygen".
+ # enabling crypto_cipher, requires also enabling of crypto_hash.
+ # crypto works only with knet transport
+ crypto_cipher: none
+ crypto_hash: none
+}
+
+logging {
+ # Log the source file and line where messages are being
+ # generated. When in doubt, leave off. Potentially useful for
+ # debugging.
+ fileline: off
+ # Log to standard error. When in doubt, set to yes. Useful when
+ # running in the foreground (when invoking "corosync -f")
+ to_stderr: yes
+ # Log to a log file. When set to "no", the "logfile" option
+ # must not be set.
+ to_logfile: yes
+ logfile: /var/log/cluster/corosync.log
+ # Log to the system log daemon. When in doubt, set to yes.
+ to_syslog: yes
+ # Log debug messages (very verbose). When in doubt, leave off.
+ debug: off
+ # Log messages with time stamps. When in doubt, set to hires (or on)
+ #timestamp: hires
+ logger_subsys {
+ subsys: QUORUM
+ debug: off
+ }
+}
+
+quorum {
+ # Enable and configure quorum subsystem (default: off)
+ # see also corosync.conf.5 and votequorum.5
+ provider: corosync_votequorum
+}
+
+nodelist {
+ # Change/uncomment/add node sections to match cluster configuration
+
+ node {
+ # Hostname of the node
+ name: node1
+ # Cluster membership node identifier
+ nodeid: 1
+ # Address of first link
+ ring0_addr: 127.0.0.1
+ # When knet transport is used it's possible to define up to 8 links
+ #ring1_addr: 192.168.1.1
+ }
+ # ...
+}
diff --git a/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb b/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb
deleted file mode 100644
index dc2f01b0fb..0000000000
--- a/meta-networking/recipes-extended/corosync/corosync_2.4.3.bb
+++ /dev/null
@@ -1,81 +0,0 @@
-SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
-DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
-APIs and libraries, default configuration files, and an init script."
-HOMEPAGE = "http://corosync.github.io/corosync/"
-
-SECTION = "base"
-
-inherit autotools pkgconfig systemd useradd
-
-SRC_URI = "http://build.clusterlabs.org/corosync/releases/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "bf0ede13018aadc8a046183bc593b0e0"
-SRC_URI[sha256sum] = "b1e7e422e8d2f7af8e5315fa329b1dbd1175fff32efaa55e8054584c80a2c597"
-
-UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.(?!99)\d+(\.\d+)+)"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
-
-DEPENDS = "groff-native nss libqb"
-
-SYSTEMD_SERVICE_${PN} = "corosync.service corosync-notifyd.service \
- ${@bb.utils.contains('PACKAGECONFIG', 'qdevice', 'corosync-qdevice.service', '', d)} \
- ${@bb.utils.contains('PACKAGECONFIG', 'qnetd', 'corosync-qnetd.service', '', d)} \
-"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-INITSCRIPT_NAME = "corosync-daemon"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
- dbus qdevice qnetd snmp \
-"
-
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
-PACKAGECONFIG[qdevice] = "--enable-qdevices,--disable-qdevices"
-PACKAGECONFIG[qnetd] = "--enable-qnetd,--disable-qnetd"
-PACKAGECONFIG[rdma] = "--enable-rdma,--disable-rdma"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
-PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd"
-
-EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash ap_cv_cc_pie=no"
-EXTRA_OEMAKE = "tmpfilesdir_DATA="
-
-do_configure_prepend() {
- ( cd ${S}
- ${S}/autogen.sh )
-}
-
-do_install_append() {
- install -d ${D}${sysconfdir}/sysconfig/
- install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
- install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
-
- rm -rf "${D}${localstatedir}/run"
-
- install -d ${D}${sysconfdir}/default/volatiles
- echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
-
- if [ ${@bb.utils.filter('PACKAGECONFIG', 'qnetd', d)} ]; then
- chown -R coroqnetd:coroqnetd ${D}${sysconfdir}/${BPN}/qnetd
- echo "d coroqnetd coroqnetd 0770 /var/run/corosync-qnetd none" >> ${D}${sysconfdir}/default/volatiles/05_corosync
- fi
-
- if [ ${@bb.utils.filter('DISTRO_FEATURES','systemd',d)} ]; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
-
- if [ ${@bb.utils.filter('PACKAGECONFIG', 'qnetd', d)} ]; then
- install -m 0644 ${S}/conf/tmpfiles.d/corosync-qnetd.conf ${D}${sysconfdir}/tmpfiles.d
- fi
- fi
-}
-
-RDEPENDS_${PN} += "bash ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}"
-
-FILES_${PN}-dbg += "${libexecdir}/lcrso/.debug"
-FILES_${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system coroqnetd"
-USERADD_PARAM_${PN} = "--system -d / -M -s /bin/nologin -c 'User for corosync-qnetd' -g coroqnetd coroqnetd"
diff --git a/meta-networking/recipes-extended/corosync/corosync_3.1.6.bb b/meta-networking/recipes-extended/corosync/corosync_3.1.6.bb
new file mode 100644
index 0000000000..8fca576614
--- /dev/null
+++ b/meta-networking/recipes-extended/corosync/corosync_3.1.6.bb
@@ -0,0 +1,63 @@
+SUMMARY = "The Corosync Cluster Engine and Application Programming Interfaces"
+DESCRIPTION = "This package contains the Corosync Cluster Engine Executive, several default \
+APIs and libraries, default configuration files, and an init script."
+HOMEPAGE = "http://corosync.github.io/corosync/"
+
+SECTION = "base"
+
+inherit autotools pkgconfig systemd
+
+SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/v${PV}/${BP}.tar.gz \
+ file://corosync.conf \
+ "
+SRC_URI[sha256sum] = "ca6ed32b4d7f33ed614afce8760fe58d0de92c68b575d4969ebacd892f3d1e27"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+\.(?!99)\d+(\.\d+)+)"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a85eb4ce24033adb6088dd1d6ffc5e5d"
+
+DEPENDS = "groff-native nss libqb kronosnet"
+
+SYSTEMD_SERVICE:${PN} = "corosync.service corosync-notifyd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+INITSCRIPT_NAME = "corosync-daemon"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ dbus snmp \
+"
+
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp,net-snmp"
+PACKAGECONFIG[systemd] = "--enable-systemd --with-systemddir=${systemd_system_unitdir},--disable-systemd --without-systemddir,systemd"
+
+EXTRA_OECONF = "ac_cv_path_BASHPATH=${base_bindir}/bash ap_cv_cc_pie=no"
+EXTRA_OEMAKE = "tmpfilesdir_DATA="
+
+#do_configure:prepend() {
+# ( cd ${S}
+# ${S}/autogen.sh )
+#}
+
+do_install:append() {
+ install -D -m 0644 ${WORKDIR}/corosync.conf ${D}${sysconfdir}/corosync/corosync.conf.example
+ install -d ${D}${sysconfdir}/sysconfig/
+ install -m 0644 ${S}/init/corosync.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync
+ install -m 0644 ${S}/tools/corosync-notifyd.sysconfig.example ${D}${sysconfdir}/sysconfig/corosync-notifyd
+
+ rmdir ${D}${localstatedir}/log/cluster ${D}${localstatedir}/log
+ rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
+ install -d ${D}${sysconfdir}/default/volatiles
+ echo "d root root 0755 ${localstatedir}/log/cluster none" > ${D}${sysconfdir}/default/volatiles/05_corosync
+
+ if [ ${@bb.utils.filter('DISTRO_FEATURES','systemd',d)} ]; then
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/cluster - - - -" > ${D}${sysconfdir}/tmpfiles.d/corosync.conf
+ fi
+}
+
+RDEPENDS:${PN} += "bash ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'sysvinit-pidof', 'procps', d)}"
+
+FILES:${PN}-dbg += "${libexecdir}/lcrso/.debug"
+FILES:${PN}-doc += "${datadir}/snmp/mibs/COROSYNC-MIB.txt"
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-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch b/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch
new file mode 100644
index 0000000000..6f9a0a45a3
--- /dev/null
+++ b/meta-networking/recipes-extended/dlm/dlm/0001-Include-sys-sysmacros.h-for-major-minor-macros-in-gl.patch
@@ -0,0 +1,41 @@
+From a55ab8a07770296bf6a622df14f2f0445be16327 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 19 Aug 2018 15:58:49 -0700
+Subject: [PATCH] Include sys/sysmacros.h for major/minor macros in glibc 2.25+
+
+sys/sysmacros.h was included though sys/types.h until 2.28
+glibc release removed it therefore it must be included
+explicitly now.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/action.c | 2 ++
+ libdlm/libdlm.c | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/dlm_controld/action.c b/dlm_controld/action.c
+index 84637f1..2b8ad6c 100644
+--- a/dlm_controld/action.c
++++ b/dlm_controld/action.c
+@@ -8,6 +8,8 @@
+
+ #include "dlm_daemon.h"
+
++#include <sys/sysmacros.h>
++
+ #include <corosync/corotypes.h>
+ #include <corosync/cmap.h>
+
+diff --git a/libdlm/libdlm.c b/libdlm/libdlm.c
+index a9e6195..499eb6a 100644
+--- a/libdlm/libdlm.c
++++ b/libdlm/libdlm.c
+@@ -14,6 +14,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/param.h>
+ #include <sys/stat.h>
++#include <sys/sysmacros.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <inttypes.h>
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_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/0001-make-Replace-cp-a-with-mode-preserving-options.patch b/meta-networking/recipes-extended/dlm/dlm/0001-make-Replace-cp-a-with-mode-preserving-options.patch
new file mode 100644
index 0000000000..e6a37579ed
--- /dev/null
+++ b/meta-networking/recipes-extended/dlm/dlm/0001-make-Replace-cp-a-with-mode-preserving-options.patch
@@ -0,0 +1,51 @@
+From 2f72f9271b8dd61ca5092e025b0f8243c6fd68f2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 3 Mar 2020 12:38:19 -0800
+Subject: [PATCH] make: Replace cp -a with mode preserving options
+
+Helps fix permissions in staging area
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ dlm_controld/Makefile | 4 ++--
+ libdlm/Makefile | 8 ++++----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/dlm_controld/Makefile b/dlm_controld/Makefile
+index 6081cf8..fe71be2 100644
+--- a/dlm_controld/Makefile
++++ b/dlm_controld/Makefile
+@@ -88,8 +88,8 @@ install: all
+ $(INSTALL) -d $(DESTDIR)/$(PKGDIR)
+ $(INSTALL) -m 755 $(BIN_TARGET) $(DESTDIR)/$(BINDIR)
+ $(INSTALL) -m 755 $(LIB_TARGET) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_SO) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_SO) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -m 644 $(LIB_PC) $(DESTDIR)/$(PKGDIR)
+ $(INSTALL) -m 644 libdlmcontrol.h $(DESTDIR)/$(HDRDIR)
+ $(INSTALL) -m 644 dlm_controld.8 $(DESTDIR)/$(MANDIR)/man8/
+diff --git a/libdlm/Makefile b/libdlm/Makefile
+index ab32761..8820bf8 100644
+--- a/libdlm/Makefile
++++ b/libdlm/Makefile
+@@ -125,10 +125,10 @@ install: all
+ $(INSTALL) -d $(DESTDIR)/$(UDEVDIR)
+ $(INSTALL) -c -m 755 $(LIB_TARGET) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -c -m 755 $(LLT_TARGET) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_SO) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LLT_SO) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LLT_SMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_SO) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_SMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LLT_SO) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LLT_SMAJOR) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -m 644 $(LIB_PC) $(DESTDIR)/$(PKGDIR)
+ $(INSTALL) -m 644 $(LLT_PC) $(DESTDIR)/$(PKGDIR)
+ $(INSTALL) -c -m 644 $(HDR_TARGET) $(DESTDIR)/$(HDRDIR)
+--
+2.25.1
+
diff --git a/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch b/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
deleted file mode 100644
index 69b2f903c3..0000000000
--- a/meta-networking/recipes-extended/dlm/dlm/respect-ldflags-also-from-bin_ldflags.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile
---- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 10:49:23.661320260 +0200
-+++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 10:50:36.121326429 +0200
-@@ -55,7 +55,7 @@
- BIN_CFLAGS += -fPIE -DPIE
- BIN_CFLAGS += -I../include -I../libdlm
-
--BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
-+BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie
- BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum
-
- LIB_CFLAGS += $(BIN_CFLAGS)
-diff -uNr dlm-4.0.2.orig/dlm_tool/Makefile dlm-4.0.2/dlm_tool/Makefile
---- dlm-4.0.2.orig/dlm_tool/Makefile 2013-07-31 17:50:26.000000000 +0200
-+++ dlm-4.0.2/dlm_tool/Makefile 2017-04-04 10:50:44.617327153 +0200
-@@ -32,7 +32,7 @@
- BIN_CFLAGS += -fPIE -DPIE
- BIN_CFLAGS += -I../include -I../libdlm -I../dlm_controld
-
--BIN_LDFLAGS += -Wl,-z,now -Wl,-z,relro -pie
-+BIN_LDFLAGS += $(LDFLAGS) -Wl,-z,now -Wl,-z,relro -pie
- BIN_LDFLAGS += -L../libdlm -L../dlm_controld
- BIN_LDFLAGS += -lpthread -ldlm -ldlmcontrol
-
-diff -uNr dlm-4.0.2.orig/dlm_controld/Makefile dlm-4.0.2/dlm_controld/Makefile
---- dlm-4.0.2.orig/dlm_controld/Makefile 2017-04-04 11:02:58.578389641 +0200
-+++ dlm-4.0.2/dlm_controld/Makefile 2017-04-04 11:07:55.672414935 +0200
-@@ -59,7 +59,7 @@
- BIN_LDFLAGS += -lpthread -lrt -lcpg -lcmap -lcfg -lquorum
-
- LIB_CFLAGS += $(BIN_CFLAGS)
--LIB_LDFLAGS += -Wl,-z,relro -pie
-+LIB_LDFLAGS += $(LDFLAGS) -Wl,-z,relro -pie
-
- ifeq ($(USE_SD_NOTIFY),yes)
- BIN_CFLAGS += $(shell pkg-config --cflags libsystemd-daemon) \
diff --git a/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb b/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb
deleted file mode 100644
index da7f98ac9c..0000000000
--- a/meta-networking/recipes-extended/dlm/dlm_4.0.2.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-DESCRIPTION = "dlm control daemon and tool"
-
-SECTION = "utils"
-HOMEPAGE = "https://fedorahosted.org/cluster/wiki/HomePage"
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SRC_URI = "https://git.fedorahosted.org/cgit/dlm.git/snapshot/${BP}.tar.xz \
- file://respect-ldflags-also-from-bin_ldflags.patch \
-"
-
-SRC_URI[md5sum] = "efc2ee6093aa6aa0a88aaad83e998a3f"
-SRC_URI[sha256sum] = "b89bc557aaffbab0ac005398025f247718a5589cff6574d902eaffe2b20e683e"
-
-UPSTREAM_CHECK_URI = "https://pagure.io/dlm/releases"
-UPSTREAM_CHECK_REGEX = "dlm-(?P<pver>\d+(\.\d+)+)"
-
-LICENSE = "LGPLv2+ & GPLv2 & GPLv2+"
-LIC_FILES_CHKSUM = "file://README.license;md5=8f0bbcdd678df1bce9863492b6c8832d"
-
-DEPENDS = "corosync systemd"
-
-inherit pkgconfig systemd distro_features_check
-
-SYSTEMD_SERVICE_${PN} = "dlm.service"
-SYSTEMD_AUTO_ENABLE = "enable"
-
-export EXTRA_OEMAKE = ""
-
-do_compile_prepend() {
- sed -i "s/libsystemd-daemon/libsystemd/g" ${S}/dlm_controld/Makefile
-}
-
-do_compile () {
- oe_runmake 'CC=${CC}'
-}
-
-do_install_append (){
- install -d ${D}${sysconfdir}/sysconfig/
- install -d ${D}${sysconfdir}/init.d/
- install -m 0644 ${S}/init/dlm.sysconfig ${D}${sysconfdir}/sysconfig/dlm
- install -m 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 -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/init/dlm.service ${D}${systemd_unitdir}/system
- fi
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D} LIBDIR=${libdir}
-}
-
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/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch b/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch
deleted file mode 100644
index 4426d3552d..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/files/0001-kernel-event-netlink_ack-now-requires-4-arguments.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From cbc5f8151017f45231b75a826f18354a81c287c4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 07:52:59 -0700
-Subject: [PATCH] kernel/event: netlink_ack() now requires 4 arguments
-
-see https://patchwork.kernel.org/patch/9670181/
-
-event.c:32:4: error: too few arguments to function 'netlink_ack'
-| netlink_ack(skb, nlh, 0);
-| ^~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- kernel/event.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: iscsitarget-1.4.20.3+svn502/kernel/event.c
-===================================================================
---- iscsitarget-1.4.20.3+svn502.orig/kernel/event.c
-+++ iscsitarget-1.4.20.3+svn502/kernel/event.c
-@@ -6,6 +6,7 @@
- * Some functions are based on audit code.
- */
-
-+#include <linux/version.h>
- #include <linux/module.h>
- #include <net/tcp.h>
- #include "iet_u.h"
-@@ -29,7 +30,11 @@ static void event_recv_skb(struct sk_buf
- ietd_pid = NETLINK_CB(skb).portid;
- WARN_ON(ietd_pid == 0);
- if (nlh->nlmsg_flags & NLM_F_ACK)
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0)
-+ netlink_ack(skb, nlh, 0, NULL);
-+#else
- netlink_ack(skb, nlh, 0);
-+#endif
- skb_pull(skb, rlen);
- }
- }
diff --git a/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch b/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch
deleted file mode 100644
index 4444234b2e..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/files/access-sk_v6_daddr-iff-IPV6-defined.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-The element skc_v6_daddr (in struct sock_common) is defined in
-kernel source only when CONFIG_IPV6 is enabled. Hence, access
-sk_v6_daddr element (i.e __sk_common.skc_v6_daddr) only when CONFIG_IPV6
-is defined; to fix below error in world build:
-
--- snip --
-/home/jenkins/oe/world/shr-core/tmp-glibc/work-shared/qemux86/kernel-source/include/net/sock.h:330:33: error: 'struct sock_common' has no member named 'skc_v6_daddr'
--- CUT --
-
-Upstream-Status: Pending
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2015-12-29 21:57:50.547932217 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2015-12-29 22:47:25.254657627 -0800
-@@ -46,10 +46,12 @@ void conn_info_show(struct seq_file *seq
- snprintf(buf, sizeof(buf),
- "%pI4", &inet_sk(sk)->inet_daddr);
- break;
-+#if defined(CONFIG_IPV6)
- case AF_INET6:
- snprintf(buf, sizeof(buf), "[%pI6]",
- &(sk)->sk_v6_daddr);
- break;
-+#endif /* defined(CONFIG_IPV6) */
- default:
- break;
- }
diff --git a/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch b/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch
deleted file mode 100644
index bce38baee5..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_bio_struct_of_linux_v4.3_and_above.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Description: Fix source to compile with 4.3+ kernels
- commit 4246a0b63bd8f56a1469b12eafeb875b1041a451
- block: add a bi_error field to struct bio
- -> Removes BIO_UPTODATE and error argument to bio_endio.
- commit b54ffb73cadcdcff9cc1ae0e11f502407e3e2e4c
- block: remove bio_get_nr_vecs()
- -> Removed that call (always use BIO_MAX_PAGES)
- commit 676d23690fb62b5d51ba5d659935e9f7d9da9f8e
- net: Fix use after free by removing length arg from sk_data_ready callbacks.
- -> Removes len argument from sk_data_ready() callback.
-Author: Stefan Bader <stefan.bader@canonical.com>
-
-The original patch is at http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz,
-those changes were taken using #ifs to allow compilation of iscsitarget
-package with kernel versions < 4.3.
-
-Upstream-Status: Submitted [http://launchpadlibrarian.net/227478885/iscsitarget_1.4.20.3+svn502-2ubuntu2_1.4.20.3+svn502-2ubuntu3.diff.gz]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 00:46:28.263951115 -0800
-@@ -29,14 +29,23 @@ struct tio_work {
- struct completion tio_complete;
- };
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+static void blockio_bio_endio(struct bio *bio)
-+#else
- static void blockio_bio_endio(struct bio *bio, int error)
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- {
- struct tio_work *tio_work = bio->bi_private;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ if (bio->bi_error)
-+ atomic_set(&tio_work->error, bio->bi_error);
-+#else
- error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? error : -EIO;
-
- if (error)
- atomic_set(&tio_work->error, error);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
-
- /* If last bio signal completion */
- if (atomic_dec_and_test(&tio_work->bios_remaining))
-@@ -61,14 +70,20 @@ blockio_make_request(struct iet_volume *
- u32 size = tio->size;
- u32 tio_index = 0;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ int max_pages = bdev_q ? BIO_MAX_PAGES : 1;
-+#else
- int max_pages = 1;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- int err = 0;
-
- loff_t ppos = tio->offset;
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0)
- /* Calculate max_pages for bio_alloc (memory saver) */
- if (bdev_q)
- max_pages = bio_get_nr_vecs(bio_data->bdev);
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(4, 3, 0) */
-
- tio_work = kzalloc(sizeof (*tio_work), GFP_KERNEL);
- if (!tio_work)
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 00:39:09.737117778 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 00:52:30.037223901 -0800
-@@ -89,13 +89,21 @@ static void iet_state_change(struct sock
- target->nthread_info.old_state_change(sk);
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+static void iet_data_ready(struct sock *sk)
-+#else
- static void iet_data_ready(struct sock *sk, int len)
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- {
- struct iscsi_conn *conn = sk->sk_user_data;
- struct iscsi_target *target = conn->session->target;
-
- nthread_wakeup(target);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ target->nthread_info.old_data_ready(sk);
-+#else
- target->nthread_info.old_data_ready(sk, len);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- }
-
- /*
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h
---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 00:48:02.102837260 -0800
-@@ -81,7 +81,11 @@ struct network_thread_info {
- spinlock_t nthread_lock;
-
- void (*old_state_change)(struct sock *);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0)
-+ void (*old_data_ready)(struct sock *);
-+#else
- void (*old_data_ready)(struct sock *, int);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(4, 3, 0) */
- void (*old_write_space)(struct sock *);
- };
-
diff --git a/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch b/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch
deleted file mode 100644
index e508a5e6cd..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/files/build_with_updated_interfaces_of_linux_v4.8_and_above.patch
+++ /dev/null
@@ -1,475 +0,0 @@
-Resolve build error with linux kernel 4.8
-
-The below changes in kernel source, triggered iscsitarget
-build fail with linux kernel v4.8.
-
-1. An extra 'flags' argument has been passed to vfs_readv/vfs_writev
- syscalls in v4.8. So, set this argument to "0" for now
- (as there is no real need for that).
- Ref: https://github.com/torvalds/linux/commit/793b80ef14af56d20c998265287648ad34239b6f
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c: In function 'write_data':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:350:9: error: too few arguments to function 'vfs_writev'
- res = vfs_writev(file, (struct iovec __user *) iop, count, &off);
- ^~~~~~~~~~
- -- snip --
-
-2. Redefine dropped PAGE_CACHE_* and page_cache_{get,release} definitions,
- as they have been dropped with v4.8
- Ref: https://github.com/torvalds/linux/commit/1fa64f198b9f8d6ec0f7aec7c18dc94684391140
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c: In function 'sess_param_check':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/param.c:48:41: error: 'PAGE_CACHE_SIZE' undeclared (first use in this function)
- (u32) ((ISCSI_CONN_IOV_MAX - 1) * PAGE_CACHE_SIZE));
- ^
- -- snip --
-
-3. Replace crypto_hash interfaces with crypto_ahash interfaces,
- Ref: https://github.com/torvalds/linux/commit/896545098777564212b9e91af4c973f094649aa7
- Ref: https://www.redhat.com/archives/dm-devel/2016-January/msg00244.html
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_init':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:42:23: error: implicit declaration of function 'crypto_alloc_hash' [-Werror=implicit-function-declaration]
- conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
- ^~~~~~~~~~~~~~~~~
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c: In function 'digest_cleanup':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/digest.c:77:3: error: implicit declaration of function 'crypto_free_hash' [-Werror=implicit-function-declaration]
- crypto_free_hash(conn->tx_hash.tfm);
- ^~~~~~~~~~~~~~~~
- -- snip --
-
-4. The earlier "rw" parameter has been set in "bi_rw" within
- bio structure, hence remove "rw" argument.
- Ref: https://github.com/torvalds/linux/commit/4e49ea4a3d276365bf7396c9b77b4d1d5923835a
- Solves:
--- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/block-io.c:140:14: warning: passing argument 1 of 'submit_bio' makes pointer from integer without a cast [-Wint-conversion]
- submit_bio(rw, bio);
- ^~
--- snip --
-
-5. The 'len' argument from sk_data_ready() callback has been removed in
- linux kernel v4.3 and above.
- Ref: https://github.com/torvalds/linux/commit/676d23690fb62b5d51ba5d659935e9f7d9da9f8e
- Solves:
--- snip --
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c: In function 'iet_socket_bind':
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:143:38: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
- target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready;
- ^
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/conn.c:144:32: error: assignment from incompatible pointer type [-Werror=incompatible-pointer-types]
- conn->sock->sk->sk_data_ready = iet_data_ready;
- ^
--- snip --
-
-6.
- A. The "size" argument has been dropped from sock_recvmsg syscall in v4.8,
- as all callers have it equal to msg_data_left(msg).
- B. 'struct user_msghdr' is being used for userland-side msghdr instead
- of 'struct msghdr', which is used for kernel-side msghdr in linux v3.19
- and above, so typecase it while calling sock_recvmsg syscall.
- Ref: https://github.com/torvalds/linux/commit/2da62906b1e298695e1bb725927041cd59942c98
- https://github.com/torvalds/linux/commit/666547ff591cebdedc4679bf6b1b3f3383a8dea3
- Solves:
- -- snip --
-TOPDIR/tmp-glibc/work-shared/qemux86/kernel-source/include/linux/net.h:222:5: note: expected 'struct msghdr *' but argument is of type 'struct user_msghdr *'
- int sock_recvmsg(struct socket *sock, struct msghdr *msg, int flags);
- ^~~~~~~~~~~~
-TOPDIR/tmp-glibc/work/qemux86-oe-linux/iscsitarget/1.4.20.3+svn502-r0/iscsitarget-1.4.20.3+svn502/kernel/nthread.c:129:8: error: too many arguments to function 'sock_recvmsg'
- res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL);
- ^~~~~~~~~~~~
- -- snip --
-
-Detailed error log is at: http://errors.yoctoproject.org/Errors/Details/83334/
-
-Upstream-Status: Pending
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c iscsitarget-1.4.20.3+svn502/kernel/block-io.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/block-io.c 2017-01-19 20:19:27.400507354 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/block-io.c 2017-01-19 20:32:22.977988593 -0800
-@@ -104,7 +104,11 @@ blockio_make_request(struct iet_volume *
- /* bi_sector is ALWAYS in units of 512 bytes */
- bio->bi_iter.bi_sector = ppos >> 9;
- bio->bi_bdev = bio_data->bdev;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ bio->bi_end_io = (bio_end_io_t *) blockio_bio_endio;
-+#else
- bio->bi_end_io = blockio_bio_endio;
-+#endif
- bio->bi_private = tio_work;
-
- if (tio_bio)
-@@ -139,7 +143,12 @@ blockio_make_request(struct iet_volume *
- tio_bio = tio_bio->bi_next;
- bio->bi_next = NULL;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ bio_set_op_attrs(bio, REQ_OP_WRITE, 0);
-+ submit_bio(bio);
-+#else
- submit_bio(rw, bio);
-+#endif
- }
-
- blk_finish_plug(&plug);
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-19 20:19:27.400507354 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-19 20:32:22.978988614 -0800
-@@ -148,8 +148,14 @@ static void iet_socket_bind(struct iscsi
- target->nthread_info.old_state_change = conn->sock->sk->sk_state_change;
- conn->sock->sk->sk_state_change = iet_state_change;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ target->nthread_info.old_data_ready = (void (*) (struct sock *)) \
-+ conn->sock->sk->sk_data_ready;
-+ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) iet_data_ready;
-+#else
- target->nthread_info.old_data_ready = conn->sock->sk->sk_data_ready;
- conn->sock->sk->sk_data_ready = iet_data_ready;
-+#endif
-
- target->nthread_info.old_write_space = conn->sock->sk->sk_write_space;
- conn->sock->sk->sk_write_space = iet_write_space;
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/digest.c iscsitarget-1.4.20.3+svn502/kernel/digest.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/digest.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/digest.c 2017-01-19 20:32:22.978988614 -0800
-@@ -30,6 +30,9 @@ void digest_alg_available(unsigned int *
- int digest_init(struct iscsi_conn *conn)
- {
- int err = 0;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ struct crypto_ahash *tfm;
-+#endif
-
- if (!(conn->hdigest_type & DIGEST_ALL))
- conn->hdigest_type = DIGEST_NONE;
-@@ -39,15 +42,40 @@ int digest_init(struct iscsi_conn *conn)
-
- if (conn->hdigest_type & DIGEST_CRC32C ||
- conn->ddigest_type & DIGEST_CRC32C) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ tfm = crypto_alloc_ahash("crc32c", 0, CRYPTO_ALG_ASYNC);
-+ if (IS_ERR(tfm)) {
-+ tfm = NULL;
-+#else
- conn->rx_hash.tfm = crypto_alloc_hash("crc32c", 0,
- CRYPTO_ALG_ASYNC);
- conn->rx_hash.flags = 0;
- if (IS_ERR(conn->rx_hash.tfm)) {
- conn->rx_hash.tfm = NULL;
-+#endif
- err = -ENOMEM;
- goto out;
- }
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ conn->rx_hash = ahash_request_alloc(tfm, GFP_KERNEL);
-+ if (!conn->rx_hash) {
-+ pr_err("ahash_request_alloc() failed for conn->rx_hash\n");
-+ crypto_free_ahash(tfm);
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+ ahash_request_set_callback(conn->rx_hash, 0, NULL, NULL);
-+ conn->tx_hash = ahash_request_alloc(tfm, GFP_KERNEL);
-+ if(!conn->tx_hash) {
-+ pr_err("ahash_request_alloc() failed for conn->tx_hash\n");
-+ ahash_request_free(conn->rx_hash);
-+ conn->rx_hash = NULL;
-+ crypto_free_ahash(tfm);
-+ err = -ENOMEM;
-+ goto out;
-+ }
-+ ahash_request_set_callback(conn->tx_hash, 0, NULL, NULL);
-+#else
- conn->tx_hash.tfm = crypto_alloc_hash("crc32c", 0,
- CRYPTO_ALG_ASYNC);
- conn->tx_hash.flags = 0;
-@@ -56,6 +84,7 @@ int digest_init(struct iscsi_conn *conn)
- err = -ENOMEM;
- goto out;
- }
-+#endif
- }
-
- out:
-@@ -73,10 +102,21 @@ out:
- */
- void digest_cleanup(struct iscsi_conn *conn)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ ahash_request_free(conn->tx_hash);
-+ if (conn->rx_hash) {
-+ struct crypto_ahash *tfm;
-+ tfm = crypto_ahash_reqtfm(conn->rx_hash);
-+ ahash_request_free(conn->rx_hash);
-+ crypto_free_ahash(tfm);
-+ }
-+
-+#else
- if (conn->tx_hash.tfm)
- crypto_free_hash(conn->tx_hash.tfm);
- if (conn->rx_hash.tfm)
- crypto_free_hash(conn->rx_hash.tfm);
-+#endif
- }
-
- /**
-@@ -160,8 +200,13 @@ static inline void __dbg_simulate_data_d
- }
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+static void digest_header(struct ahash_request *hash, struct iscsi_pdu *pdu,
-+ u8 *crc)
-+#else
- static void digest_header(struct hash_desc *hash, struct iscsi_pdu *pdu,
- u8 *crc)
-+#endif
- {
- struct scatterlist sg[2];
- unsigned int nbytes = sizeof(struct iscsi_hdr);
-@@ -174,16 +219,27 @@ static void digest_header(struct hash_de
- nbytes += pdu->ahssize;
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ crypto_ahash_init(hash);
-+ ahash_request_set_crypt(hash, sg, crc, nbytes);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_digest(hash);
-+#else
- crypto_hash_init(hash);
- crypto_hash_update(hash, sg, nbytes);
- crypto_hash_final(hash, crc);
-+#endif
- }
-
- int digest_rx_header(struct iscsi_cmnd *cmnd)
- {
- u32 crc;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_header(cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc);
-+#else
- digest_header(&cmnd->conn->rx_hash, &cmnd->pdu, (u8 *) &crc);
-+#endif
- if (crc != cmnd->hdigest)
- return -EIO;
-
-@@ -192,11 +248,20 @@ int digest_rx_header(struct iscsi_cmnd *
-
- void digest_tx_header(struct iscsi_cmnd *cmnd)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_header(cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest);
-+#else
- digest_header(&cmnd->conn->tx_hash, &cmnd->pdu, (u8 *) &cmnd->hdigest);
-+#endif
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+static void digest_data(struct ahash_request *hash, struct iscsi_cmnd *cmnd,
-+ struct tio *tio, u32 offset, u8 *crc)
-+#else
- static void digest_data(struct hash_desc *hash, struct iscsi_cmnd *cmnd,
- struct tio *tio, u32 offset, u8 *crc)
-+#endif
- {
- struct scatterlist *sg = cmnd->conn->hash_sg;
- u32 size, length, npages;
-@@ -214,7 +279,11 @@ static void digest_data(struct hash_desc
- BUG_ON(npages > ISCSI_CONN_IOV_MAX);
-
- sg_init_table(sg, ARRAY_SIZE(cmnd->conn->hash_sg));
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ crypto_ahash_init(hash);
-+#else
- crypto_hash_init(hash);
-+#endif
-
- for (i = 0; size > 0; i++) {
- length = min_t(u32, PAGE_CACHE_SIZE - offset, size);
-@@ -225,8 +294,14 @@ static void digest_data(struct hash_desc
-
- sg_mark_end(&sg[i - 1]);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ ahash_request_set_crypt(hash, sg, crc, nbytes);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_digest(hash);
-+#else
- crypto_hash_update(hash, sg, nbytes);
- crypto_hash_final(hash, crc);
-+#endif
- }
-
- int digest_rx_data(struct iscsi_cmnd *cmnd)
-@@ -251,8 +326,11 @@ int digest_rx_data(struct iscsi_cmnd *cm
- tio = cmnd->tio;
- offset = 0;
- }
--
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_data(cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc);
-+#else
- digest_data(&cmnd->conn->rx_hash, cmnd, tio, offset, (u8 *) &crc);
-+#endif
-
- if (!cmnd->conn->read_overflow &&
- (cmnd_opcode(cmnd) != ISCSI_OP_PDU_REJECT)) {
-@@ -269,6 +347,11 @@ void digest_tx_data(struct iscsi_cmnd *c
- struct iscsi_data_out_hdr *req = (struct iscsi_data_out_hdr *)&cmnd->pdu.bhs;
-
- assert(tio);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ digest_data(cmnd->conn->tx_hash, cmnd, tio,
-+ be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest);
-+#else
- digest_data(&cmnd->conn->tx_hash, cmnd, tio,
- be32_to_cpu(req->buffer_offset), (u8 *) &cmnd->ddigest);
-+#endif
- }
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h iscsitarget-1.4.20.3+svn502/kernel/iscsi.h
---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.h 2017-01-19 20:19:27.400507354 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.h 2017-01-19 20:32:22.979988634 -0800
-@@ -14,6 +14,7 @@
- #include <linux/pagemap.h>
- #include <linux/seq_file.h>
- #include <linux/mm.h>
-+#include <crypto/hash.h>
- #include <linux/crypto.h>
- #include <linux/scatterlist.h>
- #include <net/sock.h>
-@@ -275,8 +276,13 @@ struct iscsi_conn {
- u32 write_offset;
- int write_state;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ struct ahash_request *rx_hash;
-+ struct ahash_request *tx_hash;
-+#else
- struct hash_desc rx_hash;
- struct hash_desc tx_hash;
-+#endif
- struct scatterlist hash_sg[ISCSI_CONN_IOV_MAX];
- };
-
-@@ -552,4 +558,10 @@ enum cmnd_flags {
- #define PRODUCT_ID "VIRTUAL-DISK"
- #define PRODUCT_REV "0"
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+#define PAGE_CACHE_SHIFT PAGE_SHIFT
-+#define PAGE_CACHE_SIZE PAGE_SIZE
-+#define PAGE_CACHE_MASK PAGE_MASK
-+#endif
-+
- #endif /* __ISCSI_H__ */
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2017-01-19 20:19:27.276504928 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-19 20:32:22.979988634 -0800
-@@ -155,7 +155,12 @@ static int do_recv(struct iscsi_conn *co
-
- oldfs = get_fs();
- set_fs(get_ds());
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ res = sock_recvmsg(conn->sock, (struct msghdr *) &msg, \
-+ MSG_DONTWAIT | MSG_NOSIGNAL);
-+#else
- res = sock_recvmsg(conn->sock, &msg, len, MSG_DONTWAIT | MSG_NOSIGNAL);
-+#endif
- set_fs(oldfs);
-
- if (res <= 0) {
-@@ -376,7 +381,11 @@ static int write_data(struct iscsi_conn
- ;
- oldfs = get_fs();
- set_fs(KERNEL_DS);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ res = vfs_writev(file, (struct iovec __user *) iop, count, &off, 0);
-+#else
- res = vfs_writev(file, (struct iovec __user *) iop, count, &off);
-+#endif
- set_fs(oldfs);
- dprintk(D_DATA, "%#Lx:%u: %d(%ld)\n",
- (unsigned long long) conn->session->sid, conn->cid,
-@@ -503,7 +512,11 @@ static int tx_ddigest(struct iscsi_cmnd
- iov.iov_base = (char *) (&cmnd->ddigest) + (sizeof(u32) - rest);
- iov.iov_len = rest;
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ res = kernel_sendmsg(cmnd->conn->sock, (struct msghdr *) &msg, &iov, 1, rest);
-+#else
- res = kernel_sendmsg(cmnd->conn->sock, &msg, &iov, 1, rest);
-+#endif
-
- if (res > 0) {
- cmnd->conn->write_size -= res;
-@@ -702,7 +715,12 @@ static void close_conn(struct iscsi_conn
-
- write_lock_bh(&conn->sock->sk->sk_callback_lock);
- conn->sock->sk->sk_state_change = target->nthread_info.old_state_change;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ conn->sock->sk->sk_data_ready = (void (*) (struct sock *)) \
-+ target->nthread_info.old_data_ready;
-+#else
- conn->sock->sk->sk_data_ready = target->nthread_info.old_data_ready;
-+#endif
- conn->sock->sk->sk_write_space = target->nthread_info.old_write_space;
- write_unlock_bh(&conn->sock->sk->sk_callback_lock);
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2017-01-19 20:19:27.276504928 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-19 20:32:22.979988634 -0800
-@@ -84,12 +84,25 @@ static int set_scsisn(struct iet_volume
- /* Generate a MD5 hash of the target IQN and LUN number */
- static void gen_scsiid(struct iet_volume *volume)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ struct ahash_request *hash;
-+ struct crypto_ahash *tfm;
-+#else
- struct hash_desc hash;
-+#endif
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC);
-+#else
- hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);
- hash.flags = 0;
-+#endif
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ if (!IS_ERR(tfm)) {
-+#else
- if (!IS_ERR(hash.tfm)) {
-+#endif
- struct scatterlist sg[2];
- unsigned int nbytes = 0;
-
-@@ -102,11 +115,19 @@ static void gen_scsiid(struct iet_volume
- sg_set_buf(&sg[1], &volume->lun, sizeof(volume->lun));
- nbytes += sizeof(volume->lun);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-+ crypto_ahash_init(hash);
-+ ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_digest(hash);
-+ crypto_free_ahash(tfm);
-+#else
- crypto_hash_init(&hash);
- crypto_hash_update(&hash, sg, nbytes);
- crypto_hash_final(&hash, volume->scsi_id);
-
- crypto_free_hash(hash.tfm);
-+#endif
- } else {
- /* If no MD5 available set ID to TID and LUN */
- memcpy(volume->scsi_id, &volume->target->tid,
diff --git a/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch b/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch
deleted file mode 100644
index c99683478b..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/files/fix-call-trace-of-ahash-API-calling.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-The previous build_with_updated_interfaces_of_linux_v4.8_and_above.patch
-does not alloc struct ahash_request before using it. This will cause the
-kernel call trace below when calling gen_scsiid on kernel 4.8 or later
-version.
-
-This patch normalizes the calling of ahash API according to the example
-in kernel doc Documentation/crypto/api-intro.txt.
-
-BUG: unable to handle kernel NULL pointer dereference at 0000000000000020
-IP: [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt]
-PGD dd77067 PUD dd7c067 PMD 0
-Oops: 0000 [#1] PREEMPT SMP
-Modules linked in: iscsi_trgt(O)
-CPU: 0 PID: 350 Comm: ietd Tainted: G O 4.8.12-yocto-standard #1
-Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014
-task: ffff88000dfe2c00 task.stack: ffff88000de88000
-RIP: 0010:[<ffffffffa0008d45>] [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt]
-RSP: 0018:ffff88000de8bd90 EFLAGS: 00000206
-RAX: 000000000000ddfa RBX: ffff88000ddd1d78 RCX: ffffea0000000000
-RDX: 0000000000000600 RSI: 0000000000000000 RDI: ffff88000ddd1c14
-RBP: ffff88000de8be38 R08: ffff88000de44180 R09: ffff88000de8bdd0
-R10: 000000000000002c R11: 0000000000000000 R12: ffff88000ddfa600
-R13: 0000000000000000 R14: 0000000000000000 R15: ffff88000de92200
-FS: 00007f767548b700(0000) GS:ffff88000fc00000(0000) knlGS:0000000000000000
-CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-CR2: 0000000000000020 CR3: 000000000dd2d000 CR4: 00000000000006f0
-Stack:
- ffff88000de8bdd0 ffff88000dc1b3d0 ffff88000ddfa650 ffff88000ddfa660
- ffff88000df8f000 ffff88000ddd1c00 ffff88000de44180 0000000000000000
- ffffea0000377440 0000000f00000c14 0000000000000000 0000000000000000
-Call Trace:
- [<ffffffffa0006547>] ioctl+0x217/0x390 [iscsi_trgt]
- [<ffffffff81192574>] do_vfs_ioctl+0x94/0x5c0
- [<ffffffff8117ff73>] ? vfs_read+0xf3/0x120
- [<ffffffff81192b19>] SyS_ioctl+0x79/0x90
- [<ffffffff8191a45b>] entry_SYSCALL_64_fastpath+0x13/0x8f
-Code: 4c 01 e0 0f 82 a2 01 00 00 48 b9 00 00 00 80 ff 77 00 00 48 01
-c8 45 31 f6 48 b9 00 00 00 00 00 ea ff ff 89 54 24 68 48 c1 e8 0c <49>
-8b 56 20 4c 89 44 24 20 4c 89 f7 48 c1 e0 06 c7 44 24 6c 04
-RIP [<ffffffffa0008d45>] volume_add+0x625/0x7f0 [iscsi_trgt]
- RSP <ffff88000de8bd90>
-CR2: 0000000000000020
-end trace cd2016297df21635 ]
-ietd_response_recv 200 0 -5
-Input/output error.
-
-Upstream-Status: Pending [This patch is based on the previous one which
-has not been merged upstream.]
-
-Signed-off-by: Zhe He <zhe.he@windriver.com>
-
---- iscsitarget-1.4.20.3+svn502_orig/kernel/volume.c 2017-01-18 08:57:56.752187402 +0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 09:02:44.164195234 +0800
-@@ -93,13 +93,14 @@ static void gen_scsiid(struct iet_volume
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
- tfm = crypto_alloc_ahash("md5", 0, CRYPTO_ALG_ASYNC);
-+ hash = ahash_request_alloc(tfm, GFP_ATOMIC);
- #else
- hash.tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);
- hash.flags = 0;
- #endif
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-- if (!IS_ERR(tfm)) {
-+ if (tfm && !IS_ERR(tfm)) {
- #else
- if (!IS_ERR(hash.tfm)) {
- #endif
-@@ -116,10 +117,13 @@ static void gen_scsiid(struct iet_volume
- nbytes += sizeof(volume->lun);
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0)
-- crypto_ahash_init(hash);
-+ ahash_request_set_callback(hash, 0, NULL, NULL);
- ahash_request_set_crypt(hash, sg, volume->scsi_id, nbytes);
-- crypto_ahash_update(hash);
- crypto_ahash_digest(hash);
-+ crypto_ahash_init(hash);
-+ crypto_ahash_update(hash);
-+ crypto_ahash_final(hash);
-+ ahash_request_free(hash);
- crypto_free_ahash(tfm);
- #else
- crypto_hash_init(&hash);
diff --git a/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch b/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch
deleted file mode 100644
index 1e6a1d6d3f..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/files/fix-errors-observed-with-linux-3.19-and-greater.patch
+++ /dev/null
@@ -1,327 +0,0 @@
-Description: Fix source to compile on 3.19 kernels
-Author: Stefan Bader <stefan.bader@canonical.com>
-Forward: no
-
-Fixes below inconsistent crash when trying to login to iSCSI target
-server, observed with linux kernel v4.1.
-
--- snip --
-CPU: 1 PID: 29883 Comm: istd1 Tainted: G O 4.1.35-rt40-yocto-standard #1
-Hardware name: To be filled by O.E.M. To be filled by O.E.M./Larne CRB, BIOS 4.6.5.4 09/18/2014
-task: ffff88020f1f30c0 ti: ffff8800d7f3c000 task.ti: ffff8800d7f3c000
-RIP: 0010:[<ffffffff8140d1ae>] [<ffffffff8140d1ae>] copy_to_iter+0x3e/0x280
-RSP: 0018:ffff8800d7f3f728 EFLAGS: 00010246
-RAX: 00000000d7f3f928 RBX: 0000000000000030 RCX: 0000000000000030
-RDX: ffff8800d7f3f900 RSI: 0000000000000030 RDI: ffff8800d1501e82
-RBP: ffff8800d7f3f768 R08: 00000000c127d467 R09: 0000000000000000
-R10: ffff88020f29e118 R11: 0000000000000004 R12: ffff8800d7f3f900
-R13: 0000000000000030 R14: 0000000000000001 R15: 0000000000000246
-FS: 00007f86f9c4c700(0000) GS:ffff88021ec80000(0000) knlGS:00000000f7733700
-CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-CR2: 000000000000024e CR3: 00000000d38b0000 CR4: 00000000000406e0
-Stack:
-ffff880214f14ec0 ffff8800d1501e82 ffff8800d7f3f748 0000000000000030
-ffff88020f122500 0000000000000030 0000000000000000 0000000000000030
-ffff8800d7f3f7c8 ffffffff81806981 ffff8800d7f3f798 ffffffff8105d72a
-Call Trace:
-[<ffffffff81806981>] skb_copy_datagram_iter+0x71/0x2b0
-[<ffffffff8105d72a>] ? __local_bh_enable_ip+0x4a/0xb0
-[<ffffffff8186c9c0>] tcp_recvmsg+0x5e0/0xbb0
-[<ffffffff81898ded>] inet_recvmsg+0x8d/0xb0
-[<ffffffff817f49f3>] sock_recvmsg+0x13/0x20
-[<ffffffffa01655c3>] do_recv+0xe3/0x1f0 [iscsi_trgt]
-[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0
-[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20
-[<ffffffff81153097>] ? __mod_zone_page_state+0x77/0xb0
-[<ffffffff8140fed5>] ? find_next_bit+0x15/0x30
-[<ffffffff813fa8e0>] ? cpumask_next_and+0x30/0x50
-[<ffffffff8113f785>] ? __alloc_pages_nodemask+0x165/0x980
-[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0
-[<ffffffff8195da8b>] ? _raw_spin_lock+0x1b/0x60
-[<ffffffff8109cfa8>] ? cpuacct_charge+0x58/0x70
-[<ffffffff81089039>] ? update_curr+0xb9/0x190
-[<ffffffff81417613>] ? __this_cpu_preempt_check+0x13/0x20
-[<ffffffff8112b43f>] ? __perf_event_task_sched_in+0x4f/0x90
-[<ffffffff8195dbbd>] ? _raw_spin_unlock_irq+0x1d/0x40
-[<ffffffff8107e223>] ? finish_task_switch+0x63/0xe0
-[<ffffffff81959e3b>] ? __schedule+0x38b/0x980
-[<ffffffff8107e370>] ? preempt_count_add+0xd0/0xf0
-[<ffffffffa0165c65>] istd+0x4d5/0x1390 [iscsi_trgt]
-[<ffffffff81959e3b>] ? __schedule+0x38b/0x980
-[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt]
-[<ffffffffa0165790>] ? nthread_wakeup+0x40/0x40 [iscsi_trgt]
-[<ffffffff8107748b>] kthread+0xbb/0xe0
-[<ffffffff81950000>] ? wireless_dev_seq_show+0x100/0x180
-[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170
-[<ffffffff8195e7a2>] ret_from_fork+0x42/0x70
-[<ffffffff810773d0>] ? kthread_worker_fn+0x170/0x170
-Code: 5a 10 48 89 7d c8 48 39 f3 48 0f 47 de 48 85 db 0f 84 6f 01 00 00 8b 02 49 89
-d4 4c 8b 72 08 4c 8b 7a 18 a8 04 0f 85 a2 00 00 00 <4d> 8b 6f 08 4d 29 f5 49 39 dd 4c 0f 47 eb a8 02 0f 85 5c 01 00
-RSP <ffff8800d7f3f728>
-CR2: 000000000000024e
-------------[ cut here ]------------
--- snip --
-
-The original patch is at
-http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz,
-those changes were taken using #ifs, inorder to allow compilation of
-iscsitarget package with linux kernels < 3.19.
-
-Upstream-Status: Submitted [http://launchpadlibrarian.net/218100509/iscsitarget_1.4.20.3+svn499-0ubuntu2_1.4.20.3+svn499-0ubuntu2.1.diff.gz]
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/conn.c iscsitarget-1.4.20.3+svn502/kernel/conn.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/conn.c 2017-01-18 22:27:02.713167436 -0800
-+++ iscsitarget-1.4.20.3+svn502/kernel/conn.c 2017-01-18 23:13:11.909214379 -0800
-@@ -129,7 +129,11 @@ static void iet_socket_bind(struct iscsi
-
- dprintk(D_GENERIC, "%llu\n", (unsigned long long) session->sid);
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ conn->sock = SOCKET_I(file_inode(conn->file));
-+#else
- conn->sock = SOCKET_I(conn->file->f_dentry->d_inode);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- conn->sock->sk->sk_user_data = conn;
-
- write_lock_bh(&conn->sock->sk->sk_callback_lock);
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c iscsitarget-1.4.20.3+svn502/kernel/file-io.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/file-io.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/file-io.c 2017-01-18 23:54:38.505717079 -0800
-@@ -69,7 +69,11 @@ static int fileio_make_request(struct ie
- static int fileio_sync(struct iet_volume *lu, struct tio *tio)
- {
- struct fileio_data *p = lu->private;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ struct inode *inode = file_inode(p->filp);
-+#else
- struct inode *inode = p->filp->f_dentry->d_inode;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- struct address_space *mapping = inode->i_mapping;
- loff_t ppos, count;
- int res;
-@@ -213,7 +217,11 @@ static int fileio_attach(struct iet_volu
- eprintk("%d\n", err);
- goto out;
- }
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ inode = file_inode(p->filp);
-+#else
- inode = p->filp->f_dentry->d_inode;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
-
- if (S_ISREG(inode->i_mode))
- ;
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c iscsitarget-1.4.20.3+svn502/kernel/iscsi.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/iscsi.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/iscsi.c 2017-01-18 23:37:36.462970326 -0800
-@@ -489,8 +489,12 @@ static void cmnd_skip_pdu(struct iscsi_c
- }
- conn->read_iov[i].iov_base = addr;
- conn->read_iov[i].iov_len = size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size);
-+#else
- conn->read_msg.msg_iov = conn->read_iov;
- conn->read_msg.msg_iovlen = ++i;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- static void iscsi_cmnd_reject(struct iscsi_cmnd *req, int reason)
-@@ -718,7 +722,9 @@ static int cmnd_recv_pdu(struct iscsi_co
- idx = offset >> PAGE_CACHE_SHIFT;
- offset &= ~PAGE_CACHE_MASK;
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iov = conn->read_iov;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- conn->read_size = size = (size + 3) & -4;
- conn->read_overflow = 0;
-
-@@ -730,16 +736,25 @@ static int cmnd_recv_pdu(struct iscsi_co
- conn->read_iov[i].iov_base = addr + offset;
- if (offset + size <= PAGE_CACHE_SIZE) {
- conn->read_iov[i].iov_len = size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, ++i, conn->read_size);
-+#else
- conn->read_msg.msg_iovlen = ++i;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- break;
- }
- conn->read_iov[i].iov_len = PAGE_CACHE_SIZE - offset;
- size -= conn->read_iov[i].iov_len;
- offset = 0;
- if (++i >= ISCSI_CONN_IOV_MAX) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iovlen = i;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- conn->read_overflow = size;
- conn->read_size -= size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- break;
- }
-
-@@ -918,7 +933,9 @@ static int nop_out_start(struct iscsi_co
-
- if ((size = cmnd->pdu.datasize)) {
- size = (size + 3) & -4;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iov = conn->read_iov;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- if (cmnd->pdu.bhs.itt != cpu_to_be32(ISCSI_RESERVED_TAG)) {
- struct tio *tio;
- int pg_cnt = get_pgcnt(size);
-@@ -946,7 +963,11 @@ static int nop_out_start(struct iscsi_co
- }
- assert(!size);
- conn->read_overflow = size;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, i, conn->read_size);
-+#else
- conn->read_msg.msg_iovlen = i;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- out:
-@@ -986,7 +1007,11 @@ static void scsi_cmnd_start(struct iscsi
- set_cmnd_lunit(req);
-
- switch (req_hdr->scb[0]) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- if ((req_hdr->scb[1] & 0x1f) != 0x10)
- goto error;
- case INQUIRY:
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c iscsitarget-1.4.20.3+svn502/kernel/nthread.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/nthread.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/nthread.c 2017-01-18 23:45:03.291033881 -0800
-@@ -42,9 +42,14 @@ static inline void iscsi_conn_init_read(
- len = (len + 3) & -4; // XXX ???
- conn->read_iov[0].iov_base = data;
- conn->read_iov[0].iov_len = len;
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0)
- conn->read_msg.msg_iov = conn->read_iov;
- conn->read_msg.msg_iovlen = 1;
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) */
- conn->read_size = (len + 3) & -4;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ iov_iter_init(&conn->read_msg.msg_iter, READ, conn->read_iov, 1, conn->read_size);
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- static void iscsi_conn_read_ahs(struct iscsi_conn *conn, struct iscsi_cmnd *cmnd)
-@@ -83,14 +88,31 @@ static int is_data_available(struct iscs
-
- static void forward_iov(struct msghdr *msg, int len)
- {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ struct iovec *iov;
-+
-+ while (msg->msg_iter.iov->iov_len <= len) {
-+ len -= msg->msg_iter.iov->iov_len;
-+ msg->msg_iter.iov++;
-+ msg->msg_iter.nr_segs--;
-+ }
-+#else
- while (msg->msg_iov->iov_len <= len) {
- len -= msg->msg_iov->iov_len;
- msg->msg_iov++;
- msg->msg_iovlen--;
- }
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ /* XXX: discards const ... */
-+ iov = msg->msg_iter.iov;
-+ iov->iov_base = (char *) msg->msg_iter.iov->iov_base + len;
-+ iov->iov_len -= len;
-+#else
- msg->msg_iov->iov_base = (char *) msg->msg_iov->iov_base + len;
- msg->msg_iov->iov_len -= len;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- }
-
- static int do_recv(struct iscsi_conn *conn, int state)
-@@ -98,6 +120,9 @@ static int do_recv(struct iscsi_conn *co
- mm_segment_t oldfs;
- struct msghdr msg;
- struct iovec iov[ISCSI_CONN_IOV_MAX];
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ size_t iovlen = ISCSI_CONN_IOV_MAX;
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- int i, len, res;
-
- if (!test_bit(CONN_ACTIVE, &conn->state)) {
-@@ -110,12 +135,23 @@ static int do_recv(struct iscsi_conn *co
- goto out;
- }
-
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ if (conn->read_msg.msg_iter.nr_segs < iovlen)
-+ iovlen = conn->read_msg.msg_iter.nr_segs;
-+
-+ for (i = 0, len = 0; i < iovlen; i++) {
-+ iov[i] = conn->read_msg.msg_iter.iov[i];
-+ len += iov[i].iov_len;
-+ }
-+ iov_iter_init(&msg.msg_iter, READ, iov, iovlen, len);
-+#else
- msg.msg_iov = iov;
- msg.msg_iovlen = min_t(size_t, conn->read_msg.msg_iovlen, ISCSI_CONN_IOV_MAX);
- for (i = 0, len = 0; i < msg.msg_iovlen; i++) {
- iov[i] = conn->read_msg.msg_iov[i];
- len += iov[i].iov_len;
- }
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
-
- oldfs = get_fs();
- set_fs(get_ds());
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c iscsitarget-1.4.20.3+svn502/kernel/target_disk.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/target_disk.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/target_disk.c 2017-01-18 23:45:51.451010417 -0800
-@@ -606,7 +606,11 @@ static int disk_execute_cmnd(struct iscs
- case REQUEST_SENSE:
- send_data_rsp(cmnd, build_request_sense_response);
- break;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- send_data_rsp(cmnd, build_service_action_in_response);
- break;
- case READ_6:
-diff -Naurp iscsitarget-1.4.20.3+svn502_org/kernel/volume.c iscsitarget-1.4.20.3+svn502/kernel/volume.c
---- iscsitarget-1.4.20.3+svn502_org/kernel/volume.c 2014-05-06 13:59:55.000000000 -0700
-+++ iscsitarget-1.4.20.3+svn502/kernel/volume.c 2017-01-18 23:47:07.957561600 -0800
-@@ -398,7 +398,11 @@ int is_volume_reserved(struct iet_volume
- case READ_CAPACITY:
- /* allowed commands when reserved */
- break;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- if ((scb[1] & 0x1F) == 0x10)
- break;
- /* fall through */
-@@ -465,7 +469,11 @@ int is_volume_reserved(struct iet_volume
- if (excl_access_ro && !registered)
- err = -EBUSY;
- break;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0)
-+ case SERVICE_ACTION_IN_16:
-+#else
- case SERVICE_ACTION_IN:
-+#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(3, 19, 0) */
- if ((scb[1] & 0x1F) == 0x10)
- break;
- /* fall through */
diff --git a/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch b/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch
deleted file mode 100644
index 95bd047b97..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/files/use-kernel-makefile-to-get-kernel-version.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Get linux kernel version from Makefile of kernel source
-
-We get below messages while building iscsitarget,
-
--- snip --
-x86_64-poky-linux-gcc: error:
-/CGE7_SHDD/project_yocto_1.8/poky/build/tmp/work-shared/qemux86-64/kernel-source/include/linux/version.h:
-No such file or directory
-x86_64-poky-linux-gcc: fatal error: no input files
-compilation terminated.
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
-/bin/sh: line 0: [: too many arguments
--- CUT --
-
-These messages are due to absence of include/linux/version.h file in
-kernel source directory and failed to compute linux kernel version.
-So, use kernel source Makefile ( i.e $(KSRC)/Makefile) to find out
-actual kernel version.
-
-Upstream-Status: Pending
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
---- iscsitarget-1.4.20.3+svn499_org/Makefile 2014-01-27 00:00:45.000000000 +0530
-+++ iscsitarget-1.4.20.3+svn499/Makefile 2015-07-23 10:44:47.013600285 +0530
-@@ -18,27 +18,11 @@ ifeq ($(KSRC),)
- endif
-
-
--ifneq ($(wildcard $(KSRC)/include/generated/utsrelease.h),)
-- VERSION_FILE := $(KSRC)/include/generated/utsrelease.h
--else
-- ifneq ($(wildcard $(KSRC)/include/linux/utsrelease.h),)
-- VERSION_FILE := $(KSRC)/include/linux/utsrelease.h
-- else
-- VERSION_FILE := $(KSRC)/include/linux/version.h
-- endif
--endif
--
--KVER := $(shell $(CC) $(CFLAGS) $(LDFLAGS) -E -dM $(VERSION_FILE) | \
-- grep UTS_RELEASE | awk '{ print $$3 }' | sed 's/\"//g')
--
- KMOD := /lib/modules/$(KVER)/extra
--
--KMAJ := $(shell echo $(KVER) | \
-- sed -e 's/^\([0-9][0-9]*\)\.[0-9][0-9]*\.[0-9][0-9]*.*/\1/')
--KMIN := $(shell echo $(KVER) | \
-- sed -e 's/^[0-9][0-9]*\.\([0-9][0-9]*\)\.[0-9][0-9]*.*/\1/')
--KREV := $(shell echo $(KVER) | \
-- sed -e 's/^[0-9][0-9]*\.[0-9][0-9]*\.\([0-9][0-9]*\).*/\1/')
-+KMAJ := $(shell cat $(KSRC)/Makefile | grep ^VERSION | gawk -F " " '{ print $$NF }')
-+KMIN := $(shell cat $(KSRC)/Makefile | grep ^PATCHLEVEL | gawk -F " " '{ print $$NF }')
-+KREV := $(shell cat $(KSRC)/Makefile | grep ^SUBLEVEL | gawk -F " " '{ print $$NF }')
-+KVER := ${KMAJ}.${KMIN}.${KREV}
-
- kver_eq = $(shell [ $(KMAJ) -eq $(1) -a $(KMIN) -eq $(2) -a $(KREV) -eq $(3) ] && \
- echo 1 || echo 0)
diff --git a/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb b/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb
deleted file mode 100644
index 5d1359165a..0000000000
--- a/meta-networking/recipes-extended/iscsitarget/iscsitarget_1.4.20.3+svn502.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-DESCRIPTION = "iSCSI Enterprise Target is aimed to develop an \
- open source iSCSI target with professional features, \
- that works well in enterprise environment under real \
- workload, and is scalable and versatile enough to meet the \
- challenge of future storage needs and developments."
-HOMEPAGE = "http://iscsitarget.sourceforge.net/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6e233eda45c807aa29aeaa6d94bc48a2"
-DEPENDS = "openssl virtual/kernel"
-
-SRC_URI = "http://ftp.heanet.ie/mirrors/ubuntu/pool/universe/i/${BPN}/${BPN}_${PV}.orig.tar.gz \
- file://use-kernel-makefile-to-get-kernel-version.patch \
- file://fix-errors-observed-with-linux-3.19-and-greater.patch \
- file://access-sk_v6_daddr-iff-IPV6-defined.patch \
- file://build_with_updated_bio_struct_of_linux_v4.3_and_above.patch \
- file://build_with_updated_interfaces_of_linux_v4.8_and_above.patch \
- file://fix-call-trace-of-ahash-API-calling.patch \
- file://0001-kernel-event-netlink_ack-now-requires-4-arguments.patch \
- "
-
-SRC_URI[md5sum] = "ef9bc823bbabd3c772208c00d5f2d089"
-SRC_URI[sha256sum] = "d3196ccb78a43266dce28587bfe30d8ab4db7566d7bce96057dfbb84100babb5"
-
-inherit module
-
-do_configure[noexec] = "1"
-
-# make_scripts requires kernel source directory to create
-# kernel scripts
-do_make_scripts[depends] += "virtual/kernel:do_shared_workdir"
-
-do_compile() {
- oe_runmake KSRC=${STAGING_KERNEL_DIR} LDFLAGS='' V=1 kernel
- oe_runmake KSRC=${STAGING_KERNEL_DIR} usr
-}
-
-do_install() {
- # Module
- install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi
- install -m 0644 kernel/iscsi_trgt.ko \
- ${D}/lib/modules/${KERNEL_VERSION}/kernel/iscsi/iscsi_trgt.ko
-
- # Userspace utilities
- install -d ${D}${sbindir}
- install -m 0755 usr/ietd ${D}${sbindir}/ietd
- install -m 0755 usr/ietadm ${D}${sbindir}/ietadm
-
- # Config files, init scripts
- mkdir -p ${D}${sysconfdir}/iet
- install -m 0644 etc/ietd.conf ${D}/${sysconfdir}/iet/ietd.conf
- install -m 0644 etc/initiators.allow ${D}${sysconfdir}/iet/initiators.allow
- install -m 0644 etc/targets.allow ${D}${sysconfdir}/iet/targets.allow
- mkdir -p ${D}${sysconfdir}/init.d
- install -m 0755 etc/initd/initd ${D}${sysconfdir}/init.d/iscsi-target
- install -m 0644 etc/initiators.deny ${D}${sysconfdir}/iet/initiators.deny
-}
-
-FILES_${PN} += "${sbindir} \
- ${sysconfdir}"
-
-RDEPENDS_${PN} = "kernel-module-iscsi-trgt"
-RRECOMMENDS_${PN} = "kernel-module-crc32c kernel-module-libcrc32c"
-
-PNBLACKLIST[iscsitarget] = "error: implicit declaration of function 'init_timer'; did you mean 'init_timers'?; 4.15 kernel issues"
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
new file mode 100644
index 0000000000..d57d0e61b5
--- /dev/null
+++ b/meta-networking/recipes-extended/kronosnet/kronosnet/0001-links.c-Fix-build-with-gcc-12.patch
@@ -0,0 +1,40 @@
+From a8aac8f3fd8b07fde8f5dc0aa9ece54a46d24425 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 9 Jun 2022 16:03:06 +0800
+Subject: [PATCH] links.c: Fix build with gcc-12
+
+Fixes:
+ | /build/tmp-glibc/work/corei7-64-wrs-linux/kronosnet/1.22-r0/recipe-sysroot/usr/include/bits/string_fortified.h:59:10: error: 'link' may be used uninitialized [-Werror=maybe-uninitialized]
+ | 59 | return __builtin___memset_chk (__dest, __ch, __len,
+ | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ | 60 | __glibc_objsize0 (__dest));
+ | | ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ | ../../git/libknet/links.c: In function 'knet_link_set_config':
+ | ../../git/libknet/links.c:108:27: note: 'link' was declared here
+ | 108 | struct knet_link *link;
+ | | ^~~~
+ | cc1: all warnings being treated as errors
+
+Upstream-Status: Submitted [https://github.com/kronosnet/kronosnet/pull/382]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ libknet/links.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libknet/links.c b/libknet/links.c
+index 8cb1621b..0ef42b79 100644
+--- a/libknet/links.c
++++ b/libknet/links.c
+@@ -105,7 +105,7 @@ int knet_link_set_config(knet_handle_t knet_h, knet_node_id_t host_id, uint8_t l
+ {
+ int savederrno = 0, err = 0, i, wipelink = 0, link_idx;
+ struct knet_host *host, *tmp_host;
+- struct knet_link *link;
++ struct knet_link *link = NULL;
+
+ if (!_is_valid_handle(knet_h)) {
+ return -1;
+--
+2.25.1
+
diff --git a/meta-networking/recipes-extended/kronosnet/kronosnet_1.24.bb b/meta-networking/recipes-extended/kronosnet/kronosnet_1.24.bb
new file mode 100644
index 0000000000..cbd5e7a0fd
--- /dev/null
+++ b/meta-networking/recipes-extended/kronosnet/kronosnet_1.24.bb
@@ -0,0 +1,32 @@
+# Copyright (C) 2020 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Kronosnet, often referred to as knet, is a network abstraction layer \
+ designed for High Availability use cases, where redundancy, security, \
+ fault tolerance and fast fail-over are the core requirements of your application."
+HOMEPAGE = "https://kronosnet.org/"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING.applications;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.libraries;md5=2d5025d4aa3495befef8f17206a5b0a1"
+SECTION = "libs"
+DEPENDS = "doxygen-native libqb-native libxml2-native bzip2 libqb libxml2 libnl lksctp-tools lz4 lzo openssl nss xz zlib zstd"
+
+SRCREV = "f8f80fd7f9b85f2626d2c6452612962ad8efca9e"
+SRC_URI = "git://github.com/kronosnet/kronosnet;protocol=https;branch=stable1 \
+ file://0001-links.c-Fix-build-with-gcc-12.patch \
+ "
+
+UPSTREAM_CHECK_URI = "https://github.com/kronosnet/kronosnet/releases"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
+
+# libknet/transport_udp.c:326:48: error: comparison of integers of different signs: 'unsigned long' and 'int' [-Werror,-Wsign-compare]
+# for (cmsg = CMSG_FIRSTHDR(&msg);cmsg; cmsg = CMSG_NXTHDR(&msg, cmsg)) {
+# ^~~~~~~~~~~~~~~~~~~~~~~
+CFLAGS:append:toolchain-clang = " -Wno-sign-compare"
+
+PACKAGECONFIG[man] = "enable_man="yes", --disable-man, "
+
+PACKAGECONFIG:remove = "man"
diff --git a/meta-networking/recipes-extended/tgt/files/0001-Correct-the-path-of-header-files-check-in-Yocto-buil.patch b/meta-networking/recipes-extended/tgt/files/0001-Correct-the-path-of-header-files-check-in-Yocto-buil.patch
new file mode 100644
index 0000000000..173ecb620d
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/files/0001-Correct-the-path-of-header-files-check-in-Yocto-buil.patch
@@ -0,0 +1,47 @@
+From 93fea40915d01be6d02587a0b8be85a642e6a8d5 Mon Sep 17 00:00:00 2001
+From: Zhenhua Luo <zhenhua.luo@freescale.com>
+Date: Thu, 10 Apr 2014 11:26:39 +0800
+Subject: [PATCH] Correct the path of header files check in Yocto build env
+
+Upstream-Status: Inappropriate [the fix is specific to Yocto build env]
+
+Current Makefile will check headers on host instead of Yocto sysroot, following
+error appears. Change the path of header check.
+| bs_aio.c:34:20: fatal error: libaio.h: No such file or directory
+| #include <libaio.h>
+| ^
+| compilation terminated.
+
+Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
+
+---
+ usr/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/usr/Makefile b/usr/Makefile
+index decf13c..9ff8f15 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -1,11 +1,11 @@
+ sbindir ?= $(PREFIX)/sbin
+ libdir ?= $(PREFIX)/lib/tgt
+
+-ifneq ($(shell test -e /usr/include/linux/signalfd.h && echo 1),)
++ifneq ($(shell test -e $(SYSROOT)/usr/include/linux/signalfd.h && echo 1),)
+ CFLAGS += -DUSE_SIGNALFD
+ endif
+
+-ifneq ($(shell test -n $(shell find /usr/include -name "timerfd.h" | head -n1) && echo 1),)
++ifneq ($(shell test -n $(shell find $(SYSROOT)/usr/include -name "timerfd.h" | head -n1) && echo 1),)
+ CFLAGS += -DUSE_TIMERFD
+ endif
+
+@@ -25,7 +25,7 @@ ifneq ($(SD_NOTIFY),)
+ CFLAGS += -DUSE_SYSTEMD
+ endif
+
+-ifneq ($(shell test -e /usr/include/sys/eventfd.h && test -e /usr/include/libaio.h && echo 1),)
++ifneq ($(shell test -e $(SYSROOT)/usr/include/sys/eventfd.h && test -e $(SYSROOT)/usr/include/libaio.h && echo 1),)
+ CFLAGS += -DUSE_EVENTFD
+ TGTD_OBJS += bs_aio.o
+ LIBS += -laio
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
new file mode 100644
index 0000000000..a3ea604086
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/files/0001-usr-Makefile-WARNING-fix.patch
@@ -0,0 +1,29 @@
+From 6f4e3b11c7dccf83e2d18635c84837b212dfcc1c Mon Sep 17 00:00:00 2001
+From: Li xin <lixin.fnst@cn.fujitsu.com>
+Date: Sun, 26 Jul 2015 04:23:51 +0900
+Subject: [PATCH] usr/Makefile: WARNING fix WARNING: QA Issue: tgt:
+ /work/i586-oe-linux/tgt/1.0.60+gitAUTOINC+ab51727a36-r0/
+ packages-split/tgt/usr/sbin/tgtd contains probably-redundant RPATH /usr/lib
+ [useless-rpaths]
+
+Upstream-Status: Pending
+
+Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
+
+---
+ usr/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/usr/Makefile b/usr/Makefile
+index 9ff8f15..cc8df11 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -63,7 +63,7 @@ TGTD_OBJS += tgtd.o mgmt.o target.o scsi.o log.o driver.o util.o work.o \
+
+ TGTD_DEP = $(TGTD_OBJS:.o=.d)
+
+-LDFLAGS = -Wl,-E,-rpath=$(libdir)
++LDFLAGS += -Wl,-E
+
+ .PHONY:all
+ all: $(PROGRAMS) $(MODULES)
diff --git a/meta-networking/recipes-extended/tgt/files/tgtd b/meta-networking/recipes-extended/tgt/files/tgtd
new file mode 100644
index 0000000000..64df6a3eb4
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/files/tgtd
@@ -0,0 +1,5 @@
+# options for tgtd
+TGTD_OPTS=""
+
+# configuration file
+TGTD_CONFIG=/etc/tgt/targets.conf
diff --git a/meta-networking/recipes-extended/tgt/files/tgtd.init b/meta-networking/recipes-extended/tgt/files/tgtd.init
new file mode 100644
index 0000000000..4b0ce9443f
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/files/tgtd.init
@@ -0,0 +1,116 @@
+#!/bin/sh
+
+### BEGIN INIT INFO
+# Provides: tgtd
+# Required-Start: $remote_fs $network $syslog
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 3 5
+# Default-Stop: 0 1 2 6
+# Short-Description: SCSI target daemon
+# Description: Linux SCSI target framework (tgt)
+### END INIT INFO
+
+DESC="tgtd"
+DAEMON="/usr/sbin/tgtd"
+TGTD_CONFIG=/etc/tgt/targets.conf
+
+start ()
+{
+ echo -n "Starting $DESC..."
+
+ # Ensure service isn't running
+ tgt-admin -s >/dev/null 2>&1
+ RETVAL=$?
+ if [ "$RETVAL" -ne 107 ] ; then
+ echo "$DESC is already running."
+ exit 1
+ fi
+
+ # Start tgtd first
+ $DAEMON &>/dev/null
+ RETVAL=$?
+ if [ "$RETVAL" -ne 0 ]; then
+ echo "failed."
+ exit 1
+ fi
+
+ # Put tgtd into "offline" state until all the targets are configured.
+ # We don't want initiators to (re)connect and fail the connection
+ # if it's not ready.
+ tgtadm --op update --mode sys --name State -v offline
+ # Configure the targets.
+ tgt-admin -f -e -c $TGTD_CONFIG
+ # Put tgtd into "ready" state.
+ tgtadm --op update --mode sys --name State -v ready
+
+ echo "done."
+}
+
+stop ()
+{
+ echo -n "Stopping $DESC..."
+
+ # Remove all targets. It only removes targets which are not in use.
+ tgt-admin --update ALL -c /dev/null &>/dev/null
+ # tgtd will exit if all targets were removed
+ tgtadm --op delete --mode system &>/dev/null
+ RETVAL=$?
+ if [ "$RETVAL" -eq 107 ] ; then
+ if [ "$TASK" != "restart" ] ; then
+ return 1
+ fi
+ elif [ "$RETVAL" -ne 0 ] ; then
+ echo "Some initiators are still connected - could not stop tgtd"
+ return 2
+ fi
+ echo -n
+}
+
+reload()
+{
+ echo "Reloading configuration of $DESC" "$NAME"
+ # Update configuration for targets. Only targets which
+ # are not in use will be updated.
+ tgt-admin --update ALL -c $TGTD_CONFIG &>/dev/null
+ RETVAL=$?
+ if [ "$RETVAL" -eq 107 ] ; then
+ echo "tgtd is not running"
+ exit 1
+ fi
+}
+
+status()
+{
+ tgt-admin -s >/dev/null 2>&1
+ RETVAL=$?
+ if [ "$RETVAL" -eq 107 ] ; then
+ echo "tgtd is not running"
+ else
+ echo "tgtd is running"
+ fi
+}
+
+case "$1" in
+ start)
+ start
+ ;;
+ stop)
+ stop
+ ;;
+ restart|force-reload)
+ stop
+ start
+ ;;
+ reload)
+ reload
+ ;;
+ status)
+ status
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|force-reload|restart|status|reload}"
+ exit 1
+ ;;
+esac
+
+exit 0
diff --git a/meta-networking/recipes-extended/tgt/files/tgtd.service b/meta-networking/recipes-extended/tgt/files/tgtd.service
new file mode 100755
index 0000000000..afbd4b4eaa
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/files/tgtd.service
@@ -0,0 +1,33 @@
+[Unit]
+Description=tgtd iSCSI target daemon
+After=network.target
+
+[Service]
+EnvironmentFile=@SYSCONFDIR@/sysconfig/tgtd
+
+ExecStart=@SBINDIR@/tgtd -f $TGTD_OPTS
+# see bz 848942. workaround for a race for now.
+ExecStartPost=@BASE_BINDIR@/sleep 5
+# Put tgtd into "offline" state until all the targets are configured.
+# We don't want initiators to (re)connect and fail the connection
+# if it's not ready.
+ExecStartPost=@SBINDIR@/tgtadm --op update --mode sys --name State -v offline
+# Configure the targets.
+ExecStartPost=@SBINDIR@/tgt-admin -e -c $TGTD_CONFIG
+# Put tgtd into "ready" state.
+ExecStartPost=@SBINDIR@/tgtadm --op update --mode sys --name State -v ready
+
+# Update configuration for targets. Only targets which
+# are not in use will be updated.
+ExecReload=@SBINDIR@/tgt-admin --update ALL -c $TGTD_CONFIG
+
+# NOTE: Shutdown of the iscsi target may cause data corruption
+# for initiators that are connected.
+ExecStop=@SBINDIR@/tgtadm --op update --mode sys --name State -v offline
+# Remove all targets. It only removes targets which are not in use.
+ExecStop=@SBINDIR@/tgt-admin --update ALL -c /dev/null
+# tgtd will exit if all targets were removed
+ExecStop=@SBINDIR@/tgtadm --op delete --mode system
+
+[Install]
+WantedBy=multi-user.target
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
new file mode 100644
index 0000000000..b6c674bd9d
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/files/usr-Makefile-apply-LDFLAGS-to-all-executables.patch
@@ -0,0 +1,37 @@
+From a815ac8ee16b344d9e24b445957f32bf2aafa532 Mon Sep 17 00:00:00 2001
+From: Mark Asselstine <mark.asselstine@windriver.com>
+Date: Thu, 5 Jan 2017 11:07:51 -0500
+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/usr/Makefile b/usr/Makefile
+index cc8df11..c55fd68 100644
+--- a/usr/Makefile
++++ b/usr/Makefile
+@@ -78,7 +78,7 @@ TGTADM_OBJS = tgtadm.o concat_buf.o
+ TGTADM_DEP = $(TGTADM_OBJS:.o=.d)
+
+ tgtadm: $(TGTADM_OBJS)
+- $(CC) $^ -o $@
++ $(CC) $^ -o $@ $(LDFLAGS)
+
+ -include $(TGTADM_DEP)
+
+@@ -86,7 +86,7 @@ TGTIMG_OBJS = tgtimg.o libssc.o libcrc32c.o
+ TGTIMG_DEP = $(TGTIMG_OBJS:.o=.d)
+
+ tgtimg: $(TGTIMG_OBJS)
+- $(CC) $^ -o $@
++ $(CC) $^ -o $@ $(LDFLAGS)
+
+ -include $(TGTIMG_DEP)
+
+--
+2.7.4
+
diff --git a/meta-networking/recipes-extended/tgt/tgt_git.bb b/meta-networking/recipes-extended/tgt/tgt_git.bb
new file mode 100644
index 0000000000..c74ebb2a6d
--- /dev/null
+++ b/meta-networking/recipes-extended/tgt/tgt_git.bb
@@ -0,0 +1,94 @@
+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/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb b/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb
deleted file mode 100644
index 6fd0affdf6..0000000000
--- a/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.0.1g.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "IPTables based firewall scripts"
-HOMEPAGE = "http://rocky.eld.leidenuniv.nl/joomla/index.php?option=com_content&view=article&id=45&Itemid=63"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://gpl_license.txt;md5=11c7b65c4a4acb9d5175f7e9bf99c403"
-
-SRC_URI = "http://rocky.eld.leidenuniv.nl/arno-iptables-firewall/${BPN}_${PV}.tar.gz \
- "
-SRC_URI[md5sum] = "77eba7f148bf2840a3e35a6f50c9c353"
-SRC_URI[sha256sum] = "0bafd85ddc235752250eaec0c7fdb21e530912483f6807a97f86158ed2d301f7"
-
-S = "${WORKDIR}/${BPN}_${PV}"
-
-inherit systemd
-
-do_install() {
- install -d ${D}${sysconfdir} ${D}${sbindir} ${D}${bindir} ${D}${systemd_unitdir}/system ${D}${sysconfdir}/init.d
- install -d ${D}${datadir}/arno-iptables-firewall ${D}${sysconfdir}/arno-iptables-firewall
- cp -r ${S}${sysconfdir}/arno-iptables-firewall ${D}${sysconfdir}/
- install -m 0755 ${S}${sysconfdir}/init.d/arno-iptables-firewall ${D}${bindir}
- install -m 0755 ${S}/bin/arno-iptables-firewall ${D}${sbindir}
- install -m 0755 ${S}/bin/arno-fwfilter ${D}${bindir}
- cp -r ${S}/share/arno-iptables-firewall/* ${D}${datadir}/arno-iptables-firewall
- cp -r ${S}/etc/arno-iptables-firewall/* ${D}${sysconfdir}/arno-iptables-firewall
- install -m 0644 ${S}/${systemd_unitdir}/system/arno-iptables-firewall.service ${D}${systemd_unitdir}/system
- sed -i -e 's%/usr/local/sbin%${bindir}%g' ${D}${systemd_unitdir}/system/arno-iptables-firewall.service
- sed -i -e 's%/usr/local/sbin%${sbindir}%g' ${D}${bindir}/arno-iptables-firewall
- sed -i -e 's%/usr/local%${exec_prefix}%g' ${D}${sysconfdir}/arno-iptables-firewall/firewall.conf
- sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${bindir}/arno-fwfilter
- sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/traffic-accounting-helper
- sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/dyndns-host-open-helper
-}
-
-SYSTEMD_SERVICE_${PN} = "arno-iptables-firewall.service"
-FILES_${PN} += "${systemd_unitdir}/system/arno-iptables-firewall.service"
diff --git a/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb b/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb
new file mode 100644
index 0000000000..e124fd2906
--- /dev/null
+++ b/meta-networking/recipes-filter/arno-iptables-firewall/arno-iptables-firewall_2.1.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "IPTables based firewall scripts"
+HOMEPAGE = "http://rocky.eld.leidenuniv.nl/joomla/index.php?option=com_content&view=article&id=45&Itemid=63"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://gpl_license.txt;md5=11c7b65c4a4acb9d5175f7e9bf99c403"
+
+SRCREV = "a96b81da4a9b619e4045805f5f13a1e982c95663"
+SRC_URI = "git://github.com/arno-iptables-firewall/aif;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit systemd
+
+do_install() {
+ install -d ${D}${sysconfdir} ${D}${sbindir} ${D}${bindir} ${D}${systemd_unitdir}/system ${D}${sysconfdir}/init.d
+ install -d ${D}${datadir}/arno-iptables-firewall ${D}${sysconfdir}/arno-iptables-firewall
+ cp -r ${S}${sysconfdir}/arno-iptables-firewall ${D}${sysconfdir}/
+ install -m 0755 ${S}${sysconfdir}/init.d/arno-iptables-firewall ${D}${bindir}
+ install -m 0755 ${S}/bin/arno-iptables-firewall ${D}${sbindir}
+ install -m 0755 ${S}/bin/arno-fwfilter ${D}${bindir}
+ cp -r ${S}/share/arno-iptables-firewall/* ${D}${datadir}/arno-iptables-firewall
+ cp -r ${S}/etc/arno-iptables-firewall/* ${D}${sysconfdir}/arno-iptables-firewall
+ install -m 0644 ${S}/lib/systemd/system/arno-iptables-firewall.service ${D}${systemd_unitdir}/system
+ sed -i -e 's%/usr/local/sbin%${bindir}%g' ${D}${systemd_unitdir}/system/arno-iptables-firewall.service
+ sed -i -e 's%/usr/local/sbin%${sbindir}%g' ${D}${bindir}/arno-iptables-firewall
+ sed -i -e 's%/usr/local%${exec_prefix}%g' ${D}${sysconfdir}/arno-iptables-firewall/firewall.conf
+ sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${bindir}/arno-fwfilter
+ sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/traffic-accounting-helper
+ sed -i -e 's%#!/bin/bash%#!/bin/sh%g' ${D}${datadir}/arno-iptables-firewall/plugins/dyndns-host-open-helper
+}
+
+SYSTEMD_SERVICE:${PN} = "arno-iptables-firewall.service"
+FILES:${PN} += "${systemd_unitdir}/system/arno-iptables-firewall.service"
diff --git a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb
deleted file mode 100644
index 46168b0ba4..0000000000
--- a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.4.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Connection tracking userspace tools for Linux"
-SECTION = "net"
-LICENSE = "GPLv2+"
-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] = "acd9e0b27cf16ae3092ba900e4d7560e"
-SRC_URI[tar.sha256sum] = "b7caf4fcc4c03575df57d25e5216584d597fd916c891f191dac616ce68bdba6c"
-
-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
-}
diff --git a/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.bb b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.bb
new file mode 100644
index 0000000000..0c6fd90d34
--- /dev/null
+++ b/meta-networking/recipes-filter/conntrack-tools/conntrack-tools_1.4.7.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.bz2 \
+ file://conntrack-failover \
+ file://init \
+ file://conntrackd.service \
+"
+SRC_URI[sha256sum] = "099debcf57e81690ced57f516b493588a73518f48c14d656f823b29b4fc24b5d"
+
+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.10-4/0001-add-RARP-and-update-iana-url.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch
deleted file mode 100644
index 90b69792b8..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0001-add-RARP-and-update-iana-url.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From dd35afc9ce1004128a754d5eeb8c5c2cb32ae420 Mon Sep 17 00:00:00 2001
-From: Bart De Schuymer <bdschuym@pandora.be>
-Date: Tue, 3 Jul 2012 18:47:32 +0000
-Subject: [PATCH 01/10] add RARP and update iana url
-
----
- ethertypes | 10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/ethertypes b/ethertypes
-index 5e700f6..813177b 100644
---- a/ethertypes
-+++ b/ethertypes
-@@ -5,6 +5,7 @@
- #
- # This list could be found on:
- # http://www.iana.org/assignments/ethernet-numbers
-+# http://www.iana.org/assignments/ieee-802-numbers
- #
- # <name> <hexnumber> <alias1>...<alias35> #Comment
- #
-@@ -21,15 +22,16 @@ LAT 6004 # DEC LAT
- DIAG 6005 # DEC Diagnostics
- CUST 6006 # DEC Customer use
- SCA 6007 # DEC Systems Comms Arch
--TEB 6558 # Trans Ether Bridging [RFC1701]
--RAW_FR 6559 # Raw Frame Relay [RFC1701]
-+TEB 6558 # Trans Ether Bridging [RFC1701]
-+RAW_FR 6559 # Raw Frame Relay [RFC1701]
-+RARP 8035 # Reverse ARP [RFC903]
- AARP 80F3 # Appletalk AARP
--ATALK 809B # Appletalk
-+ATALK 809B # Appletalk
- 802_1Q 8100 8021q 1q 802.1q dot1q # 802.1Q Virtual LAN tagged frame
- IPX 8137 # Novell IPX
- NetBEUI 8191 # NetBEUI
- IPv6 86DD ip6 # IP version 6
--PPP 880B # PPP
-+PPP 880B # PPP
- ATMMPOA 884C # MultiProtocol over ATM
- PPP_DISC 8863 # PPPoE discovery messages
- PPP_SES 8864 # PPPoE session messages
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch
deleted file mode 100644
index 87b0e9b877..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0002-fix-compilation-warning.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 2a5333fc8b4825251adfb717d980d89cefde38d6 Mon Sep 17 00:00:00 2001
-From: Petri Gynther <petri.gynther@gmail.com>
-Date: Sun, 24 Feb 2013 10:56:59 +0100
-Subject: [PATCH 02/10] fix compilation warning
-
----
- communication.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/communication.c b/communication.c
-index 62ed667..ba058c0 100644
---- a/communication.c
-+++ b/communication.c
-@@ -282,7 +282,7 @@ static int store_counters_in_file(char *filename, struct ebt_u_replace *repl)
- }
- close_file:
- fclose(file);
-- return 0;
-+ return ret;
- }
-
- /* Gets executed after ebt_deliver_table. Delivers the counters to the kernel
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch
deleted file mode 100644
index c8573a464f..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0003-add-info-about-Wl-no-as-needed.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From a6faf3b50d6af4768b7b853cb536944fb18e1450 Mon Sep 17 00:00:00 2001
-From: Bart De Schuymer <bdschuym@pandora.be>
-Date: Wed, 3 Jul 2013 22:12:47 +0200
-Subject: [PATCH 03/10] add info about -Wl,-no-as-needed
-
----
- INSTALL | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/INSTALL b/INSTALL
-index 4a05c67..e90d5c1 100644
---- a/INSTALL
-+++ b/INSTALL
-@@ -39,6 +39,8 @@ That's all
- You can also use a base directory different from the root directory (/),
- using the DESTDIR option. See the Makefile for more details.
-
-+You might need to set LDFLAGS=-Wl,-no-as-needed to build ebtables correctly
-+on your system.
-
- ADDITIONAL PROGRAMS:
- ----------------------
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch
deleted file mode 100644
index d8f2795bca..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From b0617af37b8b1aafb43e8019135bea44c2d94c28 Mon Sep 17 00:00:00 2001
-From: Luis Fernando <tdthp@terra.com.br>
-Date: Wed, 3 Jul 2013 22:19:55 +0200
-Subject: [PATCH 04/10] workaround for kernel regression bug: IPv6
- source/destination addresses are potentially not matched correctly
-
----
- extensions/ebt_ip6.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c
-index 0465e77..bbdc4ae 100644
---- a/extensions/ebt_ip6.c
-+++ b/extensions/ebt_ip6.c
-@@ -312,6 +312,10 @@ static void init(struct ebt_entry_match *match)
-
- ipinfo->invflags = 0;
- ipinfo->bitmask = 0;
-+ memset(ipinfo->saddr.s6_addr, 0, sizeof(ipinfo->saddr.s6_addr));
-+ memset(ipinfo->smsk.s6_addr, 0, sizeof(ipinfo->smsk.s6_addr));
-+ memset(ipinfo->daddr.s6_addr, 0, sizeof(ipinfo->daddr.s6_addr));
-+ memset(ipinfo->dmsk.s6_addr, 0, sizeof(ipinfo->dmsk.s6_addr));
- }
-
- #define OPT_SOURCE 0x01
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch
deleted file mode 100644
index 9585fd20e3..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0005-Add-noflush-command-line-support-for-ebtables-restor.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 15d3ab8a4a167dc44396b003d2ec01841949972f Mon Sep 17 00:00:00 2001
-From: Sanket Shah <sanket.shah@cyberoam.com>
-Date: Wed, 31 Jul 2013 21:40:08 +0200
-Subject: [PATCH 05/10] Add --noflush command line support for ebtables-restore
-
----
- ebtables-restore.c | 29 +++++++++++++++++++++++++----
- 1 file changed, 25 insertions(+), 4 deletions(-)
-
-diff --git a/ebtables-restore.c b/ebtables-restore.c
-index ea02960..bb4d0cf 100644
---- a/ebtables-restore.c
-+++ b/ebtables-restore.c
-@@ -22,13 +22,25 @@
- #include <string.h>
- #include <errno.h>
- #include <unistd.h>
-+#include <getopt.h>
- #include "include/ebtables_u.h"
-
-+static const struct option options[] = {
-+ {.name = "noflush", .has_arg = 0, .val = 'n'},
-+ { 0 }
-+};
-+
- static struct ebt_u_replace replace[3];
- void ebt_early_init_once();
-
- #define OPT_KERNELDATA 0x800 /* Also defined in ebtables.c */
-
-+static void print_usage()
-+{
-+ fprintf(stderr, "Usage: ebtables-restore [ --noflush ]\n");
-+ exit(1);
-+}
-+
- static void copy_table_names()
- {
- strcpy(replace[0].name, "filter");
-@@ -41,11 +53,20 @@ static void copy_table_names()
- int main(int argc_, char *argv_[])
- {
- char *argv[EBTD_ARGC_MAX], cmdline[EBTD_CMDLINE_MAXLN];
-- int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace;
-+ int i, offset, quotemode = 0, argc, table_nr = -1, line = 0, whitespace, c, flush = 1;
- char ebtables_str[] = "ebtables";
-
-- if (argc_ != 1)
-- ebtrest_print_error("options are not supported");
-+ while ((c = getopt_long(argc_, argv_, "n", options, NULL)) != -1) {
-+ switch(c) {
-+ case 'n':
-+ flush = 0;
-+ break;
-+ default:
-+ print_usage();
-+ break;
-+ }
-+ }
-+
- ebt_silent = 0;
- copy_table_names();
- ebt_early_init_once();
-@@ -68,7 +89,7 @@ int main(int argc_, char *argv_[])
- ebtrest_print_error("table '%s' was not recognized", cmdline+1);
- table_nr = i;
- replace[table_nr].command = 11;
-- ebt_get_kernel_table(&replace[table_nr], 1);
-+ ebt_get_kernel_table(&replace[table_nr], flush);
- replace[table_nr].command = 0;
- replace[table_nr].flags = OPT_KERNELDATA; /* Prevent do_command from initialising replace */
- continue;
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch
deleted file mode 100644
index 21f8e588d4..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 85a0f6d77a9d5c0e7ef7948395f0f6b1612dc987 Mon Sep 17 00:00:00 2001
-From: Bart De Schuymer <bdschuym@pandora.be>
-Date: Mon, 14 Apr 2014 22:04:55 +0200
-Subject: [PATCH 06/10] don't print IPv6 mask if it's all ones (based on patch
- by Mariusz Mazur <mmazur at axeos.com>)
-
----
- extensions/ebt_ip6.c | 4 ++--
- include/ebtables_u.h | 1 +
- useful_functions.c | 13 +++++++++++++
- 3 files changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c
-index bbdc4ae..e3e0956 100644
---- a/extensions/ebt_ip6.c
-+++ b/extensions/ebt_ip6.c
-@@ -449,14 +449,14 @@ static void print(const struct ebt_u_entry *entry,
- if (ipinfo->invflags & EBT_IP6_SOURCE)
- printf("! ");
- printf("%s", ebt_ip6_to_numeric(&ipinfo->saddr));
-- printf("/%s ", ebt_ip6_to_numeric(&ipinfo->smsk));
-+ printf("%s ", ebt_ip6_mask_to_string(&ipinfo->smsk));
- }
- if (ipinfo->bitmask & EBT_IP6_DEST) {
- printf("--ip6-dst ");
- if (ipinfo->invflags & EBT_IP6_DEST)
- printf("! ");
- printf("%s", ebt_ip6_to_numeric(&ipinfo->daddr));
-- printf("/%s ", ebt_ip6_to_numeric(&ipinfo->dmsk));
-+ printf("%s ", ebt_ip6_mask_to_string(&ipinfo->dmsk));
- }
- if (ipinfo->bitmask & EBT_IP6_TCLASS) {
- printf("--ip6-tclass ");
-diff --git a/include/ebtables_u.h b/include/ebtables_u.h
-index ab615c1..35a5bcc 100644
---- a/include/ebtables_u.h
-+++ b/include/ebtables_u.h
-@@ -303,6 +303,7 @@ char *ebt_mask_to_dotted(uint32_t mask);
- void ebt_parse_ip6_address(char *address, struct in6_addr *addr,
- struct in6_addr *msk);
- char *ebt_ip6_to_numeric(const struct in6_addr *addrp);
-+char *ebt_ip6_mask_to_string(const struct in6_addr *msk);
-
-
- int do_command(int argc, char *argv[], int exec_style,
-diff --git a/useful_functions.c b/useful_functions.c
-index d20b68e..d14cbe9 100644
---- a/useful_functions.c
-+++ b/useful_functions.c
-@@ -411,3 +411,16 @@ char *ebt_ip6_to_numeric(const struct in6_addr *addrp)
- static char buf[50+1];
- return (char *)inet_ntop(AF_INET6, addrp, buf, sizeof(buf));
- }
-+
-+char *ebt_ip6_mask_to_string(const struct in6_addr *msk)
-+{
-+ /* /0000:0000:0000:0000:0000:000.000.000.000
-+ * /0000:0000:0000:0000:0000:0000:0000:0000 */
-+ static char buf[51+1];
-+ if (msk->s6_addr32[0] == 0xFFFFFFFFL && msk->s6_addr32[1] == 0xFFFFFFFFL &&
-+ msk->s6_addr32[2] == 0xFFFFFFFFL && msk->s6_addr32[3] == 0xFFFFFFFFL)
-+ *buf = '\0';
-+ else
-+ sprintf(buf, "/%s", ebt_ip6_to_numeric(msk));
-+ return buf;
-+}
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch
deleted file mode 100644
index 6fbe7df4ca..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0007-extensions-Use-stdint-types.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From a60c7d4a6d05387aceb8ae9c38390d0f9bae84a2 Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sat, 16 May 2015 12:22:39 +0200
-Subject: [PATCH 07/10] extensions: Use stdint types
-
-Signed-off-by: Felix Janda <felix.janda@posteo.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- extensions/ebt_ip6.c | 4 ++--
- extensions/ebt_limit.c | 10 +++++-----
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/extensions/ebt_ip6.c b/extensions/ebt_ip6.c
-index e3e0956..dd48547 100644
---- a/extensions/ebt_ip6.c
-+++ b/extensions/ebt_ip6.c
-@@ -53,8 +53,8 @@ static const struct option opts[] =
-
- struct icmpv6_names {
- const char *name;
-- u_int8_t type;
-- u_int8_t code_min, code_max;
-+ uint8_t type;
-+ uint8_t code_min, code_max;
- };
-
- static const struct icmpv6_names icmpv6_codes[] = {
-diff --git a/extensions/ebt_limit.c b/extensions/ebt_limit.c
-index ee40e5c..d189a09 100644
---- a/extensions/ebt_limit.c
-+++ b/extensions/ebt_limit.c
-@@ -59,11 +59,11 @@ static void print_help(void)
- " default %u\n", EBT_LIMIT_BURST);
- }
-
--static int parse_rate(const char *rate, u_int32_t *val)
-+static int parse_rate(const char *rate, uint32_t *val)
- {
- const char *delim;
-- u_int32_t r;
-- u_int32_t mult = 1; /* Seconds by default. */
-+ uint32_t r;
-+ uint32_t mult = 1; /* Seconds by default. */
-
- delim = strchr(rate, '/');
- if (delim) {
-@@ -151,7 +151,7 @@ static void final_check(const struct ebt_u_entry *entry,
- struct rates
- {
- const char *name;
-- u_int32_t mult;
-+ uint32_t mult;
- };
-
- static struct rates g_rates[] =
-@@ -162,7 +162,7 @@ static struct rates g_rates[] =
- { "sec", EBT_LIMIT_SCALE }
- };
-
--static void print_rate(u_int32_t period)
-+static void print_rate(uint32_t period)
- {
- unsigned int i;
-
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch
deleted file mode 100644
index df3f521437..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 6ed23c8c2bc5efc3956e7bb6155afc8f45e6ae1a Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sat, 16 May 2015 12:31:58 +0200
-Subject: [PATCH 08/10] ethernetdb.h: Remove C++ specific compiler hint macro
- _THROW
-
-Fixes compilation with musl libc
-
-Signed-off-by: Felix Janda <felix.janda@posteo.de>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
- include/ethernetdb.h | 11 +++++------
- 1 file changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/include/ethernetdb.h b/include/ethernetdb.h
-index 46d8bfd..1683abe 100644
---- a/include/ethernetdb.h
-+++ b/include/ethernetdb.h
-@@ -38,21 +38,20 @@ struct ethertypeent {
-
- /* Open ethertype data base files and mark them as staying open even
- after a later search if STAY_OPEN is non-zero. */
--extern void setethertypeent(int __stay_open) __THROW;
-+extern void setethertypeent(int __stay_open);
-
- /* Close ethertype data base files and clear `stay open' flag. */
--extern void endethertypeent(void) __THROW;
-+extern void endethertypeent(void);
-
- /* Get next entry from ethertype data base file. Open data base if
- necessary. */
--extern struct ethertypeent *getethertypeent(void) __THROW;
-+extern struct ethertypeent *getethertypeent(void);
-
- /* Return entry from ethertype data base for network with NAME. */
--extern struct ethertypeent *getethertypebyname(__const char *__name)
-- __THROW;
-+extern struct ethertypeent *getethertypebyname(__const char *__name);
-
- /* Return entry from ethertype data base which number is PROTO. */
--extern struct ethertypeent *getethertypebynumber(int __ethertype) __THROW;
-+extern struct ethertypeent *getethertypebynumber(int __ethertype);
-
-
- #endif /* ethernetdb.h */
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch
deleted file mode 100644
index 248582c188..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From e6b367c0c2668341c47242d099f4d2048ae575ef Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alin=20N=C4=83stac?= <alin.nastac@gmail.com>
-Date: Thu, 22 Oct 2015 16:41:03 +0200
-Subject: [PATCH 09/10] ebtables: Allow RETURN target rules in user defined
- chains
-
-During loop checking ebtables marks entries with '1 << NF_BR_NUMHOOKS' if
-they're called from a base chain rather than a user defined chain.
-
-This can be used by ebtables targets that can encode a special return
-value to bail out if e.g. RETURN is used from a base chain.
-
-Unfortunately, this is broken, since the '1 << NF_BR_NUMHOOKS' is also
-copied to called user-defined-chains (i.e., a user defined chain can no
-longer be distinguished from a base chain):
-
-root@OpenWrt:~# ebtables -N foo
-root@OpenWrt:~# ebtables -A OUTPUT -j foo
-root@OpenWrt:~# ebtables -A foo -j mark --mark-or 3 --mark-target RETURN
---mark-target RETURN not allowed on base chain.
-
-This works if -A OUTPUT -j foo is omitted, but will still appear
-if we try to call foo from OUTPUT afterwards.
-
-After this patch we still reject
-'-A OUTPUT -j mark .. --mark-target RETURN'.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
- libebtc.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libebtc.c b/libebtc.c
-index 17ba8f2..74830ec 100644
---- a/libebtc.c
-+++ b/libebtc.c
-@@ -1102,7 +1102,7 @@ void ebt_check_for_loops(struct ebt_u_replace *replace)
- /* check if we've dealt with this chain already */
- if (entries2->hook_mask & (1<<i))
- goto letscontinue;
-- entries2->hook_mask |= entries->hook_mask;
-+ entries2->hook_mask |= entries->hook_mask & ~(1 << NF_BR_NUMHOOKS);
- /* Jump to the chain, make sure we know how to get back */
- stack[sp].chain_nr = chain_nr;
- stack[sp].n = j;
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch
deleted file mode 100644
index a6ef9cd099..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/0010-Adjust-header-include-sequence.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-From b7cee37734007fced7a4d5ed586c3a9e5ad92878 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 26 Mar 2017 13:12:21 -0700
-Subject: [PATCH 10/10] Adjust header include sequence
-
-This fixes the build with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- extensions/ebt_among.c | 2 +-
- extensions/ebt_arpreply.c | 2 +-
- extensions/ebt_nat.c | 2 +-
- include/linux/if_ether.h | 126 ----------------------------------------------
- useful_functions.c | 4 +-
- 5 files changed, 5 insertions(+), 131 deletions(-)
- delete mode 100644 include/linux/if_ether.h
-
-diff --git a/extensions/ebt_among.c b/extensions/ebt_among.c
-index f97d07e..b096847 100644
---- a/extensions/ebt_among.c
-+++ b/extensions/ebt_among.c
-@@ -12,8 +12,8 @@
- #include <getopt.h>
- #include <ctype.h>
- #include <unistd.h>
--#include "../include/ebtables_u.h"
- #include <netinet/ether.h>
-+#include "../include/ebtables_u.h"
- #include "../include/ethernetdb.h"
- #include <linux/if_ether.h>
- #include <linux/netfilter_bridge/ebt_among.h>
-diff --git a/extensions/ebt_arpreply.c b/extensions/ebt_arpreply.c
-index c3757f3..c5102a4 100644
---- a/extensions/ebt_arpreply.c
-+++ b/extensions/ebt_arpreply.c
-@@ -11,8 +11,8 @@
- #include <stdlib.h>
- #include <string.h>
- #include <getopt.h>
--#include "../include/ebtables_u.h"
- #include <netinet/ether.h>
-+#include "../include/ebtables_u.h"
- #include <linux/netfilter_bridge/ebt_arpreply.h>
-
- static int mac_supplied;
-diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c
-index e6afbf8..8d318d1 100644
---- a/extensions/ebt_nat.c
-+++ b/extensions/ebt_nat.c
-@@ -10,8 +10,8 @@
- #include <stdlib.h>
- #include <string.h>
- #include <getopt.h>
--#include "../include/ebtables_u.h"
- #include <netinet/ether.h>
-+#include "../include/ebtables_u.h"
- #include <linux/netfilter_bridge/ebt_nat.h>
-
- static int to_source_supplied, to_dest_supplied;
-diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h
-deleted file mode 100644
-index 28a15ff..0000000
---- a/include/linux/if_ether.h
-+++ /dev/null
-@@ -1,126 +0,0 @@
--/*
-- * INET An implementation of the TCP/IP protocol suite for the LINUX
-- * operating system. INET is implemented using the BSD Socket
-- * interface as the means of communication with the user level.
-- *
-- * Global definitions for the Ethernet IEEE 802.3 interface.
-- *
-- * Version: @(#)if_ether.h 1.0.1a 02/08/94
-- *
-- * Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
-- * Donald Becker, <becker@super.org>
-- * Alan Cox, <alan@lxorguk.ukuu.org.uk>
-- * Steve Whitehouse, <gw7rrm@eeshack3.swan.ac.uk>
-- *
-- * 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.
-- */
--
--#ifndef _LINUX_IF_ETHER_H
--#define _LINUX_IF_ETHER_H
--
--#include <linux/types.h>
--
--/*
-- * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
-- * and FCS/CRC (frame check sequence).
-- */
--
--#define ETH_ALEN 6 /* Octets in one ethernet addr */
--#define ETH_HLEN 14 /* Total octets in header. */
--#define ETH_ZLEN 60 /* Min. octets in frame sans FCS */
--#define ETH_DATA_LEN 1500 /* Max. octets in payload */
--#define ETH_FRAME_LEN 1514 /* Max. octets in frame sans FCS */
--#define ETH_FCS_LEN 4 /* Octets in the FCS */
--
--/*
-- * These are the defined Ethernet Protocol ID's.
-- */
--
--#define ETH_P_LOOP 0x0060 /* Ethernet Loopback packet */
--#define ETH_P_PUP 0x0200 /* Xerox PUP packet */
--#define ETH_P_PUPAT 0x0201 /* Xerox PUP Addr Trans packet */
--#define ETH_P_IP 0x0800 /* Internet Protocol packet */
--#define ETH_P_X25 0x0805 /* CCITT X.25 */
--#define ETH_P_ARP 0x0806 /* Address Resolution packet */
--#define ETH_P_BPQ 0x08FF /* G8BPQ AX.25 Ethernet Packet [ NOT AN OFFICIALLY REGISTERED ID ] */
--#define ETH_P_IEEEPUP 0x0a00 /* Xerox IEEE802.3 PUP packet */
--#define ETH_P_IEEEPUPAT 0x0a01 /* Xerox IEEE802.3 PUP Addr Trans packet */
--#define ETH_P_DEC 0x6000 /* DEC Assigned proto */
--#define ETH_P_DNA_DL 0x6001 /* DEC DNA Dump/Load */
--#define ETH_P_DNA_RC 0x6002 /* DEC DNA Remote Console */
--#define ETH_P_DNA_RT 0x6003 /* DEC DNA Routing */
--#define ETH_P_LAT 0x6004 /* DEC LAT */
--#define ETH_P_DIAG 0x6005 /* DEC Diagnostics */
--#define ETH_P_CUST 0x6006 /* DEC Customer use */
--#define ETH_P_SCA 0x6007 /* DEC Systems Comms Arch */
--#define ETH_P_TEB 0x6558 /* Trans Ether Bridging */
--#define ETH_P_RARP 0x8035 /* Reverse Addr Res packet */
--#define ETH_P_ATALK 0x809B /* Appletalk DDP */
--#define ETH_P_AARP 0x80F3 /* Appletalk AARP */
--#define ETH_P_8021Q 0x8100 /* 802.1Q VLAN Extended Header */
--#define ETH_P_IPX 0x8137 /* IPX over DIX */
--#define ETH_P_IPV6 0x86DD /* IPv6 over bluebook */
--#define ETH_P_PAUSE 0x8808 /* IEEE Pause frames. See 802.3 31B */
--#define ETH_P_SLOW 0x8809 /* Slow Protocol. See 802.3ad 43B */
--#define ETH_P_WCCP 0x883E /* Web-cache coordination protocol
-- * defined in draft-wilson-wrec-wccp-v2-00.txt */
--#define ETH_P_PPP_DISC 0x8863 /* PPPoE discovery messages */
--#define ETH_P_PPP_SES 0x8864 /* PPPoE session messages */
--#define ETH_P_MPLS_UC 0x8847 /* MPLS Unicast traffic */
--#define ETH_P_MPLS_MC 0x8848 /* MPLS Multicast traffic */
--#define ETH_P_ATMMPOA 0x884c /* MultiProtocol Over ATM */
--#define ETH_P_LINK_CTL 0x886c /* HPNA, wlan link local tunnel */
--#define ETH_P_ATMFATE 0x8884 /* Frame-based ATM Transport
-- * over Ethernet
-- */
--#define ETH_P_PAE 0x888E /* Port Access Entity (IEEE 802.1X) */
--#define ETH_P_AOE 0x88A2 /* ATA over Ethernet */
--#define ETH_P_TIPC 0x88CA /* TIPC */
--#define ETH_P_1588 0x88F7 /* IEEE 1588 Timesync */
--#define ETH_P_FCOE 0x8906 /* Fibre Channel over Ethernet */
--#define ETH_P_FIP 0x8914 /* FCoE Initialization Protocol */
--#define ETH_P_EDSA 0xDADA /* Ethertype DSA [ NOT AN OFFICIALLY REGISTERED ID ] */
--
--/*
-- * Non DIX types. Won't clash for 1500 types.
-- */
--
--#define ETH_P_802_3 0x0001 /* Dummy type for 802.3 frames */
--#define ETH_P_AX25 0x0002 /* Dummy protocol id for AX.25 */
--#define ETH_P_ALL 0x0003 /* Every packet (be careful!!!) */
--#define ETH_P_802_2 0x0004 /* 802.2 frames */
--#define ETH_P_SNAP 0x0005 /* Internal only */
--#define ETH_P_DDCMP 0x0006 /* DEC DDCMP: Internal only */
--#define ETH_P_WAN_PPP 0x0007 /* Dummy type for WAN PPP frames*/
--#define ETH_P_PPP_MP 0x0008 /* Dummy type for PPP MP frames */
--#define ETH_P_LOCALTALK 0x0009 /* Localtalk pseudo type */
--#define ETH_P_CAN 0x000C /* Controller Area Network */
--#define ETH_P_PPPTALK 0x0010 /* Dummy type for Atalk over PPP*/
--#define ETH_P_TR_802_2 0x0011 /* 802.2 frames */
--#define ETH_P_MOBITEX 0x0015 /* Mobitex (kaz@cafe.net) */
--#define ETH_P_CONTROL 0x0016 /* Card specific control frames */
--#define ETH_P_IRDA 0x0017 /* Linux-IrDA */
--#define ETH_P_ECONET 0x0018 /* Acorn Econet */
--#define ETH_P_HDLC 0x0019 /* HDLC frames */
--#define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */
--#define ETH_P_DSA 0x001B /* Distributed Switch Arch. */
--#define ETH_P_TRAILER 0x001C /* Trailer switch tagging */
--#define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */
--#define ETH_P_IEEE802154 0x00F6 /* IEEE802.15.4 frame */
--#define ETH_P_CAIF 0x00F7 /* ST-Ericsson CAIF protocol */
--
--/*
-- * This is an Ethernet frame header.
-- */
--
--struct ethhdr {
-- unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
-- unsigned char h_source[ETH_ALEN]; /* source ether addr */
-- __be16 h_proto; /* packet type ID field */
--} __attribute__((packed));
--
--
--#endif /* _LINUX_IF_ETHER_H */
-diff --git a/useful_functions.c b/useful_functions.c
-index d14cbe9..c304f4d 100644
---- a/useful_functions.c
-+++ b/useful_functions.c
-@@ -22,8 +22,6 @@
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--#include "include/ebtables_u.h"
--#include "include/ethernetdb.h"
- #include <stdio.h>
- #include <netinet/ether.h>
- #include <string.h>
-@@ -33,6 +31,8 @@
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
-+#include "include/ebtables_u.h"
-+#include "include/ethernetdb.h"
-
- const unsigned char mac_type_unicast[ETH_ALEN] = {0,0,0,0,0,0};
- const unsigned char msk_type_unicast[ETH_ALEN] = {1,0,0,0,0,0};
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch
deleted file mode 100644
index c260403eaf..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/01debian_defaultconfig.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-#! /bin/sh /usr/share/dpatch/dpatch-run
-## debian_defaultconfig.dpatch by <hesso@pool.math.tu-berlin.de>
-##
-## DP: Debian enhancements to the ebtables "sysconfig" default settings.
-
-@DPATCH@
-
---- ebtables-2.0.8.1.orig/ebtables-config
-+++ ebtables-2.0.8.1/ebtables-config
-@@ -1,17 +1,3 @@
--# Save (and possibly restore) in text format.
--# Value: yes|no, default: yes
--# Save the firewall rules in text format to __SYSCONFIG__/ebtables
--# If EBTABLES_BINARY_FORMAT="no" then restoring the firewall rules
--# is done using this text format.
--EBTABLES_TEXT_FORMAT="yes"
--
--# Save (and restore) in binary format.
--# Value: yes|no, default: yes
--# Save (and restore) the firewall rules in binary format to (and from)
--# __SYSCONFIG__/ebtables.<chain>. Enabling this option will make
--# firewall initialisation a lot faster.
--EBTABLES_BINARY_FORMAT="yes"
--
- # Unload modules on restart and stop
- # Value: yes|no, default: yes
- # This option has to be 'yes' to get to a sane state for a firewall
-@@ -19,6 +5,12 @@
- # modules.
- EBTABLES_MODULES_UNLOAD="yes"
-
-+# Load firewall rules on system startup.
-+# Value: yes|no, default: no
-+# Restores the ebtables rulesets from the last saved state when the
-+# system boots up.
-+EBTABLES_LOAD_ON_START="no"
-+
- # Save current firewall rules on stop.
- # Value: yes|no, default: no
- # Saves all firewall rules if firewall gets stopped
-@@ -35,3 +27,9 @@
- # Save rule counters when saving a kernel table to a file. If the
- # rule counters were saved, they will be restored when restoring the table.
- EBTABLES_SAVE_COUNTER="no"
-+
-+# Backup suffix for ruleset save files.
-+# Value: <string>, default: "~"
-+# Keep one backup level of saved rules.
-+# Set this variable to the empty string to disable backups.
-+EBTABLES_BACKUP_SUFFIX="~"
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save
deleted file mode 100755
index 2d7fc4ed7c..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables-save
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-
-EBTABLES="/sbin/ebtables"
-
-[ -x "$EBTABLES" ] || exit 1
-
-echo "# Generated by ebtables-save v1.0 on $(date)"
-
-cnt=""
-[ "x$EBTABLES_SAVE_COUNTER" = "xyes" ] && cnt="--Lc"
-
-for table_name in $(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//); do
- table=$($EBTABLES -t $table_name -L $cnt)
- [ $? -eq 0 ] || { echo "$table"; exit -1; }
-
- chain=""
- rules=""
- while read line; do
- [ -z "$line" ] && continue
-
- case "$line" in
- Bridge\ table:\ *)
- echo "*${line:14}"
- ;;
- Bridge\ chain:\ *)
- chain="${line:14}"
- chain="${chain%%,*}"
- policy="${line##*policy: }"
- echo ":$chain $policy"
- ;;
- *)
- if [ "$cnt" = "--Lc" ]; then
- line=${line/, pcnt \=/ -c}
- line=${line/-- bcnt \=/}
- fi
- rules="$rules-A $chain $line\n"
- ;;
- esac
- done <<EOF
-$table
-EOF
- echo -e $rules
-done
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common
deleted file mode 100644
index 1ae18fed3d..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.common
+++ /dev/null
@@ -1,163 +0,0 @@
-#!/bin/sh
-
-[ -x /sbin/ebtables ] || exit 1
-
-EBTABLES_DUMPFILE_STEM=/etc/ebtables/dump
-
-RETVAL=0
-prog="ebtables"
-desc="Ethernet bridge filtering"
-umask 0077
-
-#default configuration
-EBTABLES_MODULES_UNLOAD="yes"
-EBTABLES_LOAD_ON_START="no"
-EBTABLES_SAVE_ON_STOP="no"
-EBTABLES_SAVE_ON_RESTART="no"
-EBTABLES_SAVE_COUNTER="no"
-EBTABLES_BACKUP_SUFFIX="~"
-
-config=/etc/default/$prog
-[ -f "$config" ] && . "$config"
-
-get_supported_tables() {
- EBTABLES_SUPPORTED_TABLES=
- /sbin/ebtables -t filter -L 2>&1 1>/dev/null | grep -q permission
- if [ $? -eq 0 ]; then
- echo "Error: insufficient privileges to access the ebtables rulesets."
- exit 1
- fi
- for table in filter nat broute; do
- /sbin/ebtables -t $table -L &> /dev/null
- if [ $? -eq 0 ]; then
- EBTABLES_SUPPORTED_TABLES="${EBTABLES_SUPPORTED_TABLES} $table"
- fi
- done
-}
-
-load() {
- RETVAL=0
- get_supported_tables
- echo -n "Restoring ebtables rulesets: "
- for table in $EBTABLES_SUPPORTED_TABLES; do
- echo -n "$table "
- if [ -s ${EBTABLES_DUMPFILE_STEM}.$table ]; then
- /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-commit
- RET=$?
- if [ $RET -ne 0 ]; then
- echo -n "(failed) "
- RETVAL=$RET
- fi
- else
- echo -n "(no saved state) "
- fi
- done
- if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
- echo -n "no kernel support. "
- else
- echo -n "done. "
- fi
- if [ $RETVAL -eq 0 ]; then
- echo "ok"
- else
- echo "fail"
- fi
-}
-
-clear_rules() {
- RETVAL=0
- get_supported_tables
- echo -n "Clearing ebtables rulesets: "
- for table in $EBTABLES_SUPPORTED_TABLES; do
- echo -n "$table "
- /sbin/ebtables -t $table --init-table
- done
-
- if [ "$EBTABLES_MODULES_UNLOAD" = "yes" ]; then
- for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -d' ' -f1) ebtables; do
- rmmod $mod 2> /dev/null
- done
- fi
- if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
- echo -n "no kernel support. "
- else
- echo -n "done. "
- fi
- if [ $RETVAL -eq 0 ]; then
- echo "ok"
- else
- echo "fail"
- fi
-}
-
-save() {
- RETVAL=0
- get_supported_tables
- echo -n "Saving ebtables rulesets: "
- for table in $EBTABLES_SUPPORTED_TABLES; do
- echo -n "$table "
- [ -n "$EBTABLES_BACKUP_SUFFIX" ] && [ -s ${EBTABLES_DUMPFILE_STEM}.$table ] && \
- mv ${EBTABLES_DUMPFILE_STEM}.$table ${EBTABLES_DUMPFILE_STEM}.$table$EBTABLES_BACKUP_SUFFIX
- /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-save
- RET=$?
- if [ $RET -ne 0 ]; then
- echo -n "(failed) "
- RETVAL=$RET
- else
- if [ "$EBTABLES_SAVE_COUNTER" = "no" ]; then
- /sbin/ebtables -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table -Z
- fi
- fi
- done
- if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
- echo -n "no kernel support. "
- else
- echo -n "done. "
- fi
- if [ $RETVAL -eq 0 ]; then
- echo "ok"
- else
- echo "fail"
- fi
-}
-
-case "$1" in
- start)
- [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
- ;;
- stop)
- [ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save
- clear_rules
- ;;
- restart|reload|force-reload)
- [ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save
- clear_rules
- [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
- ;;
- load)
- load
- ;;
- save)
- save
- ;;
- status)
- get_supported_tables
- if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
- echo "No kernel support for ebtables."
- RETVAL=1
- else
- echo -n "Ebtables support available, number of installed rules: "
- for table in $EBTABLES_SUPPORTED_TABLES; do
- COUNT=$(( $(/sbin/ebtables -t $table -L | sed -e "/^Bridge chain/! d" -e "s/^.*entries: //" -e "s/,.*$/ +/") 0 ))
- echo -n "$table($COUNT) "
- done
- echo ok
- RETVAL=0
- fi
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|reload|force-reload|load|save|status}" >&2
- RETVAL=1
-esac
-
-exit $RETVAL
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init
deleted file mode 100755
index c9a77a29e8..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.init
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/sh
-#
-# init script for the Ethernet Bridge filter tables
-#
-# Written by Dag Wieers <dag@wieers.com>
-# Modified by Rok Papez <rok.papez@arnes.si>
-# Bart De Schuymer <bdschuym@pandora.be>
-# Adapted to Debian by Jan Christoph Nordholz <hesso@pool.math.tu-berlin.de>
-# Adapted to OpenEmbedded by Roman I Khimov <khimov@altell.ru>
-#
-# chkconfig: - 15 85
-# description: Ethernet Bridge filtering tables
-#
-### BEGIN INIT INFO
-# Provides: ebtables
-# Required-Start:
-# Required-Stop:
-# Should-Start: $local_fs
-# Should-Stop: $local_fs
-# Default-Start: S
-# Default-Stop: 0 6
-# Short-Description: ebtables ruleset management
-# Description: Saves and restores the state of the ebtables rulesets.
-### END INIT INFO
-
-/usr/sbin/ebtables.common $1
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch
deleted file mode 100644
index bcd9bed238..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/installnonroot.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/Makefile b/Makefile
-index c1106a4..7ea6b7a 100644
---- a/Makefile
-+++ b/Makefile
-@@ -157,31 +157,31 @@ tmp3:=$(shell printf $(PIPE) | sed 's/\//\\\//g')
- scripts: ebtables-save ebtables.sysv ebtables-config
- cat ebtables-save | sed 's/__EXEC_PATH__/$(tmp1)/g' > ebtables-save_
- mkdir -p $(DESTDIR)$(BINDIR)
-- install -m 0755 -o root -g root ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
-+ install -m 0755 ebtables-save_ $(DESTDIR)$(BINDIR)/ebtables-save
- cat ebtables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables.sysv_
- if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi
-- if test -d $(DESTDIR)$(INITDIR); then install -m 0755 -o root -g root ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi
-+ if test -d $(DESTDIR)$(INITDIR); then install -m 0755 ebtables.sysv_ $(DESTDIR)$(INITDIR)/ebtables; fi
- cat ebtables-config | sed 's/__SYSCONFIG__/$(tmp2)/g' > ebtables-config_
- if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(SYSCONFIGDIR); fi
-- if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 -o root -g root ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi
-+ if test -d $(DESTDIR)$(SYSCONFIGDIR); then install -m 0600 ebtables-config_ $(DESTDIR)$(SYSCONFIGDIR)/ebtables-config; fi
- rm -f ebtables-save_ ebtables.sysv_ ebtables-config_
-
- tmp4:=$(shell printf $(LOCKFILE) | sed 's/\//\\\//g')
- $(MANDIR)/man8/ebtables.8: ebtables.8
- mkdir -p $(DESTDIR)$(@D)
- sed -e 's/$$(VERSION)/$(PROGVERSION)/' -e 's/$$(DATE)/$(PROGDATE)/' -e 's/$$(LOCKFILE)/$(tmp4)/' ebtables.8 > ebtables.8_
-- install -m 0644 -o root -g root ebtables.8_ $(DESTDIR)$@
-+ install -m 0644 ebtables.8_ $(DESTDIR)$@
- rm -f ebtables.8_
-
- $(DESTDIR)$(ETHERTYPESFILE): ethertypes
- mkdir -p $(@D)
-- install -m 0644 -o root -g root $< $@
-+ install -m 0644 $< $@
-
- .PHONY: exec
- exec: ebtables ebtables-restore
- mkdir -p $(DESTDIR)$(BINDIR)
-- install -m 0755 -o root -g root $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME)
-- install -m 0755 -o root -g root ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore
-+ install -m 0755 $(PROGNAME) $(DESTDIR)$(BINDIR)/$(PROGNAME)
-+ install -m 0755 ebtables-restore $(DESTDIR)$(BINDIR)/ebtables-restore
-
- .PHONY: install
- install: $(MANDIR)/man8/ebtables.8 $(DESTDIR)$(ETHERTYPESFILE) exec scripts
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch
deleted file mode 100644
index 336119d6ba..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/no-as-needed.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-link ebtables with --no-as-needed and adjust the link order to fix runtime crash
-
-Program terminated with signal 11, Segmentation fault.
-#0 0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
-(gdb) bt
-#0 0x00007ffaa837fb53 in ebt_initialize_entry () from /lib64/ebtables/libebtc.so
-#1 0x00007ffaa83824dc in do_command () from /lib64/ebtables/libebtc.so
-#2 0x000000000040065c in ?? ()
-#3 0x00007ffaa7fed755 in __libc_start_main () from /lib64/libc.so.6
-#4 0x0000000000400691 in ?? ()
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: ebtables-v2.0.10-4/Makefile
-===================================================================
---- ebtables-v2.0.10-4.orig/Makefile 2011-12-15 12:02:47.000000000 -0800
-+++ ebtables-v2.0.10-4/Makefile 2012-12-17 22:09:45.065973753 -0800
-@@ -90,7 +90,7 @@
- $(CC) -shared $(LDFLAGS) -Wl,-soname,libebtc.so -o libebtc.so -lc $(OBJECTS2)
-
- ebtables: $(OBJECTS) ebtables-standalone.o libebtc.so
-- $(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -lebtc $(EXT_LIBSI) \
-+ $(CC) $(CFLAGS) $(CFLAGS_SH_LIB) $(LDFLAGS) -o $@ ebtables-standalone.o -I$(KERNEL_INCLUDES) -L. -Lextensions -Wl,--no-as-needed $(EXT_LIBSI) -lebtc \
- -Wl,-rpath,$(LIBDIR)
-
- ebtablesu: ebtablesu.c
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch
new file mode 100644
index 0000000000..f2dbb552ea
--- /dev/null
+++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch
@@ -0,0 +1,34 @@
+From a822e8dbca017e426a4c1c3ca835d0d03cbb4a4d Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Thu, 31 Dec 2020 16:09:56 +0800
+Subject: [PATCH] Makefile.am: do not install /etc/ethertypes
+
+The /etc/ethertypes is provided by netbase since 6.0[1].
+Do not instal the file in ebtables, otherwise there would be a conflict:
+Error: Transaction test error:
+ file /etc/ethertypes conflicts between attempted installs of netbase-1:6.2-r0.corei7_64 and ebtables-2.0.10+4-r4.corei7_64
+
+[1] https://salsa.debian.org/md/netbase/-/commit/316680c6a2c3641b6abc76b3eebf88781f609d35)
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ Makefile.am | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index b879941..2237002 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -26,7 +26,6 @@ AM_CFLAGS = ${regular_CFLAGS}
+
+ sbin_PROGRAMS = ebtables-legacy ebtablesd ebtablesu ebtables-legacy-restore
+ EXTRA_PROGRAMS = static examples/ulog/test_ulog
+-sysconf_DATA = ethertypes
+ sbin_SCRIPTS = ebtables-legacy-save
+ man8_MANS = ebtables-legacy.8
+ lib_LTLIBRARIES = libebtc.la
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..dd8ad969c0
--- /dev/null
+++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0010-Adjust-header-include-sequence.patch
@@ -0,0 +1,86 @@
+From b7cee37734007fced7a4d5ed586c3a9e5ad92878 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 26 Mar 2017 13:12:21 -0700
+Subject: [PATCH 10/10] Adjust header include sequence
+
+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 +-
+ useful_functions.c | 4 ++--
+ 4 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/extensions/ebt_among.c b/extensions/ebt_among.c
+index 30c098c..af73bd9 100644
+--- a/extensions/ebt_among.c
++++ b/extensions/ebt_among.c
+@@ -12,8 +12,8 @@
+ #include <getopt.h>
+ #include <ctype.h>
+ #include <unistd.h>
+-#include "../include/ebtables_u.h"
+ #include <netinet/ether.h>
++#include "../include/ebtables_u.h"
+ #include "../include/ethernetdb.h"
+ #include <linux/if_ether.h>
+ #include <linux/netfilter_bridge/ebt_among.h>
+diff --git a/extensions/ebt_arpreply.c b/extensions/ebt_arpreply.c
+index 399868b..7b6b5ae 100644
+--- a/extensions/ebt_arpreply.c
++++ b/extensions/ebt_arpreply.c
+@@ -11,8 +11,8 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <getopt.h>
+-#include "../include/ebtables_u.h"
+ #include <netinet/ether.h>
++#include "../include/ebtables_u.h"
+ #include <linux/netfilter_bridge/ebt_arpreply.h>
+
+ static int mac_supplied;
+diff --git a/extensions/ebt_nat.c b/extensions/ebt_nat.c
+index fe7e987..1899df3 100644
+--- a/extensions/ebt_nat.c
++++ b/extensions/ebt_nat.c
+@@ -10,8 +10,8 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <getopt.h>
+-#include "../include/ebtables_u.h"
+ #include <netinet/ether.h>
++#include "../include/ebtables_u.h"
+ #include <linux/netfilter_bridge/ebt_nat.h>
+
+ static int to_source_supplied, to_dest_supplied;
+diff --git a/useful_functions.c b/useful_functions.c
+index 133ae2f..c7adc66 100644
+--- a/useful_functions.c
++++ b/useful_functions.c
+@@ -22,8 +22,6 @@
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+-#include "include/ebtables_u.h"
+-#include "include/ethernetdb.h"
+ #include <errno.h>
+ #include <inttypes.h>
+ #include <limits.h>
+@@ -36,6 +34,8 @@
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
++#include "include/ebtables_u.h"
++#include "include/ethernetdb.h"
+
+
+ const unsigned char mac_type_unicast[ETH_ALEN] = {0,0,0,0,0,0};
+--
+2.25.1
+
+
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables-legacy-save b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables-legacy-save
new file mode 100644
index 0000000000..2133600f77
--- /dev/null
+++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables-legacy-save
@@ -0,0 +1,43 @@
+#!/bin/bash
+
+EBTABLES="/usr/sbin/ebtables-legacy"
+
+[ -x "$EBTABLES" ] || exit 1
+
+echo "# Generated by ebtables-save v1.0 on $(date)"
+
+cnt=""
+[ "x$EBTABLES_SAVE_COUNTER" = "xyes" ] && cnt="--Lc"
+
+for table_name in $(grep -E '^ebtable_' /proc/modules | cut -f1 -d' ' | sed s/ebtable_//); do
+ table=$($EBTABLES -t $table_name -L $cnt)
+ [ $? -eq 0 ] || { echo "$table"; exit -1; }
+
+ chain=""
+ rules=""
+ while read line; do
+ [ -z "$line" ] && continue
+
+ case "$line" in
+ Bridge\ table:\ *)
+ echo "*${line:14}"
+ ;;
+ Bridge\ chain:\ *)
+ chain="${line:14}"
+ chain="${chain%%,*}"
+ policy="${line##*policy: }"
+ echo ":$chain $policy"
+ ;;
+ *)
+ if [ "$cnt" = "--Lc" ]; then
+ line=${line/, pcnt \=/ -c}
+ line=${line/-- bcnt \=/}
+ fi
+ rules="$rules-A $chain $line\n"
+ ;;
+ esac
+ done <<EOF
+$table
+EOF
+ echo -e $rules
+done
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.common b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.common
new file mode 100644
index 0000000000..d948422e99
--- /dev/null
+++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.common
@@ -0,0 +1,163 @@
+#!/bin/sh
+
+[ -x /usr/sbin/ebtables-legacy ] || exit 1
+
+EBTABLES_DUMPFILE_STEM=/etc/ebtables/dump
+
+RETVAL=0
+prog="ebtables"
+desc="Ethernet bridge filtering"
+umask 0077
+
+#default configuration
+EBTABLES_MODULES_UNLOAD="yes"
+EBTABLES_LOAD_ON_START="no"
+EBTABLES_SAVE_ON_STOP="no"
+EBTABLES_SAVE_ON_RESTART="no"
+EBTABLES_SAVE_COUNTER="no"
+EBTABLES_BACKUP_SUFFIX="~"
+
+config=/etc/default/$prog
+[ -f "$config" ] && . "$config"
+
+get_supported_tables() {
+ EBTABLES_SUPPORTED_TABLES=
+ /usr/sbin/ebtables-legacy -t filter -L 2>&1 1>/dev/null | grep -q permission
+ if [ $? -eq 0 ]; then
+ echo "Error: insufficient privileges to access the ebtables rulesets."
+ exit 1
+ fi
+ for table in filter nat broute; do
+ /usr/sbin/ebtables-legacy -t $table -L &> /dev/null
+ if [ $? -eq 0 ]; then
+ EBTABLES_SUPPORTED_TABLES="${EBTABLES_SUPPORTED_TABLES} $table"
+ fi
+ done
+}
+
+load() {
+ RETVAL=0
+ get_supported_tables
+ echo -n "Restoring ebtables rulesets: "
+ for table in $EBTABLES_SUPPORTED_TABLES; do
+ echo -n "$table "
+ if [ -s ${EBTABLES_DUMPFILE_STEM}.$table ]; then
+ /usr/sbin/ebtables-legacy -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-commit
+ RET=$?
+ if [ $RET -ne 0 ]; then
+ echo -n "(failed) "
+ RETVAL=$RET
+ fi
+ else
+ echo -n "(no saved state) "
+ fi
+ done
+ if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
+ echo -n "no kernel support. "
+ else
+ echo -n "done. "
+ fi
+ if [ $RETVAL -eq 0 ]; then
+ echo "ok"
+ else
+ echo "fail"
+ fi
+}
+
+clear_rules() {
+ RETVAL=0
+ get_supported_tables
+ echo -n "Clearing ebtables rulesets: "
+ for table in $EBTABLES_SUPPORTED_TABLES; do
+ echo -n "$table "
+ /usr/sbin/ebtables-legacy -t $table --init-table
+ done
+
+ if [ "$EBTABLES_MODULES_UNLOAD" = "yes" ]; then
+ for mod in $(grep -E '^(ebt|ebtable)_' /proc/modules | cut -d' ' -f1) ebtables; do
+ rmmod $mod 2> /dev/null
+ done
+ fi
+ if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
+ echo -n "no kernel support. "
+ else
+ echo -n "done. "
+ fi
+ if [ $RETVAL -eq 0 ]; then
+ echo "ok"
+ else
+ echo "fail"
+ fi
+}
+
+save() {
+ RETVAL=0
+ get_supported_tables
+ echo -n "Saving ebtables rulesets: "
+ for table in $EBTABLES_SUPPORTED_TABLES; do
+ echo -n "$table "
+ [ -n "$EBTABLES_BACKUP_SUFFIX" ] && [ -s ${EBTABLES_DUMPFILE_STEM}.$table ] && \
+ mv ${EBTABLES_DUMPFILE_STEM}.$table ${EBTABLES_DUMPFILE_STEM}.$table$EBTABLES_BACKUP_SUFFIX
+ /usr/sbin/ebtables-legacy -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table --atomic-save
+ RET=$?
+ if [ $RET -ne 0 ]; then
+ echo -n "(failed) "
+ RETVAL=$RET
+ else
+ if [ "$EBTABLES_SAVE_COUNTER" = "no" ]; then
+ /usr/sbin/ebtables-legacy -t $table --atomic-file ${EBTABLES_DUMPFILE_STEM}.$table -Z
+ fi
+ fi
+ done
+ if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
+ echo -n "no kernel support. "
+ else
+ echo -n "done. "
+ fi
+ if [ $RETVAL -eq 0 ]; then
+ echo "ok"
+ else
+ echo "fail"
+ fi
+}
+
+case "$1" in
+ start)
+ [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
+ ;;
+ stop)
+ [ "$EBTABLES_SAVE_ON_STOP" = "yes" ] && save
+ clear_rules
+ ;;
+ restart|reload|force-reload)
+ [ "$EBTABLES_SAVE_ON_RESTART" = "yes" ] && save
+ clear_rules
+ [ "$EBTABLES_LOAD_ON_START" = "yes" ] && load
+ ;;
+ load)
+ load
+ ;;
+ save)
+ save
+ ;;
+ status)
+ get_supported_tables
+ if [ -z "$EBTABLES_SUPPORTED_TABLES" ]; then
+ echo "No kernel support for ebtables."
+ RETVAL=1
+ else
+ echo -n "Ebtables support available, number of installed rules: "
+ for table in $EBTABLES_SUPPORTED_TABLES; do
+ COUNT=$(( $(/usr/sbin/ebtables-legacy -t $table -L | sed -e "/^Bridge chain/! d" -e "s/^.*entries: //" -e "s/,.*$/ +/") 0 ))
+ echo -n "$table($COUNT) "
+ done
+ echo ok
+ RETVAL=0
+ fi
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|reload|force-reload|load|save|status}" >&2
+ RETVAL=1
+esac
+
+exit $RETVAL
diff --git a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.service
index 3abd1fe3e2..3abd1fe3e2 100644
--- a/meta-networking/recipes-filter/ebtables/ebtables-2.0.10-4/ebtables.service
+++ b/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/ebtables.service
diff --git a/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb b/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
deleted file mode 100644
index f05bd615d5..0000000000
--- a/meta-networking/recipes-filter/ebtables/ebtables_2.0.10-4.bb
+++ /dev/null
@@ -1,112 +0,0 @@
-SUMMARY = "Filtering tool for a Linux-based bridging firewall"
-HOMEPAGE = "http://sourceforge.net/projects/ebtables/"
-DESCRIPTION = "Utility for basic Ethernet frame filtering on a Linux bridge, \
- advanced logging, MAC DNAT/SNAT and brouting."
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=53b4a999993871a28ab1488fdbd2e73e"
-SECTION = "net"
-PR = "r4"
-
-RDEPENDS_${PN} += "bash"
-
-RRECOMMENDS_${PN} += "kernel-module-ebtables \
- "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/ebtables/ebtables-v${PV}.tar.gz \
- file://ebtables-save \
- file://installnonroot.patch \
- file://01debian_defaultconfig.patch \
- file://ebtables.init \
- file://ebtables.common \
- file://ebtables.service \
- file://no-as-needed.patch \
- file://0001-add-RARP-and-update-iana-url.patch \
- file://0002-fix-compilation-warning.patch \
- file://0003-add-info-about-Wl-no-as-needed.patch \
- file://0004-workaround-for-kernel-regression-bug-IPv6-source-des.patch \
- file://0005-Add-noflush-command-line-support-for-ebtables-restor.patch \
- file://0006-don-t-print-IPv6-mask-if-it-s-all-ones-based-on-patc.patch \
- file://0007-extensions-Use-stdint-types.patch \
- file://0008-ethernetdb.h-Remove-C-specific-compiler-hint-macro-_.patch \
- file://0009-ebtables-Allow-RETURN-target-rules-in-user-defined-c.patch \
- "
-
-SRC_URI_append_libc-musl = " file://0010-Adjust-header-include-sequence.patch"
-
-SRC_URI[md5sum] = "506742a3d44b9925955425a659c1a8d0"
-SRC_URI[sha256sum] = "dc6f7b484f207dc712bfca81645f45120cb6aee3380e77a1771e9c34a9a4455d"
-
-# It is using '-' but not '.' as delimiter for the version in the releases page,
-# which causes the version comparison unmatched.
-#UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ebtables/files/ebtables/"
-#UPSTREAM_CHECK_REGEX = "ebtables-(?P<pver>\d+(\-\d+)+)"
-
-RECIPE_UPSTREAM_VERSION = "2.0.10-4"
-RECIPE_UPSTREAM_DATE = "Dec 15, 2011"
-CHECK_DATE = "May 25, 2018"
-
-S = "${WORKDIR}/ebtables-v${PV}"
-
-inherit update-rc.d systemd
-
-python __anonymous () {
- import re
-
- karch = d.getVar('TARGET_ARCH')
- multilib = d.getVar('MLPREFIX')
-
- if multilib and ( karch == 'powerpc64' or karch == 'arm' ):
- searchstr = "lib.?32"
- reg = re.compile(searchstr)
- if reg.search(multilib):
- d.appendVar('CFLAGS' ,' -DKERNEL_64_USERSPACE_32 -DEBT_MIN_ALIGN=8')
-}
-
-EXTRA_OEMAKE = " \
- BINDIR=${base_sbindir} \
- MANDIR=${mandir} \
- ETHERTYPESPATH=${sysconfdir} \
- INITDIR=${sysconfdir}/init.d \
- SYSCONFIGDIR=${sysconfdir}/default \
- LIBDIR=${base_libdir}/ebtables \
- 'CC=${CC}' \
- 'CFLAGS=${CFLAGS}' \
- 'LDFLAGS=${LDFLAGS} -Wl,--no-as-needed' \
- 'LD=${LD}' \
-"
-
-do_install () {
- install -d ${D}${sbindir}
- install -m 0755 ${WORKDIR}/ebtables.common ${D}${sbindir}/ebtables.common
- # Fix hardcoded paths in scripts
- sed -i 's!/sbin/!${base_sbindir}/!g' ${D}${sbindir}/ebtables.common
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sbindir}/ebtables.common
-
- install -d ${D}${sysconfdir}/init.d
- install -d ${D}${sysconfdir}/default
- install -d ${D}${sysconfdir}/ebtables
- oe_runmake DESTDIR='${D}' install
- install -m 0755 ${WORKDIR}/ebtables.init ${D}/${sysconfdir}/init.d/ebtables
- mv ${D}${sysconfdir}/default/ebtables-config ${D}${sysconfdir}/default/ebtables
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/ebtables
-
- # Replace upstream ebtables-save perl script with Fedora bash based rewrite
- # http://pkgs.fedoraproject.org/cgit/rpms/ebtables.git/tree/ebtables-save
- install -m 0755 ${WORKDIR}/ebtables-save ${D}${base_sbindir}/ebtables-save
- sed -i 's!/sbin/!${base_sbindir}/!g' ${D}${base_sbindir}/ebtables-save
-
- # Install systemd service files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/ebtables.service ${D}${systemd_unitdir}/system
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/ebtables.service
-}
-
-CONFFILES_${PN} += "${sysconfdir}/default/ebtables"
-
-INITSCRIPT_NAME = "ebtables"
-INITSCRIPT_PARAMS = "start 41 S . stop 41 6 ."
-
-SYSTEMD_SERVICE_${PN} = "ebtables.service"
-
-FILES_${PN}-dbg += "${base_libdir}/ebtables/.debug"
-FILES_${PN} += "${base_libdir}/ebtables/*.so"
diff --git a/meta-networking/recipes-filter/ebtables/ebtables_2.0.11.bb b/meta-networking/recipes-filter/ebtables/ebtables_2.0.11.bb
new file mode 100644
index 0000000000..d522b514f6
--- /dev/null
+++ b/meta-networking/recipes-filter/ebtables/ebtables_2.0.11.bb
@@ -0,0 +1,53 @@
+SUMMARY = "Filtering tool for a Linux-based bridging firewall"
+HOMEPAGE = "http://sourceforge.net/projects/ebtables/"
+DESCRIPTION = "Utility for basic Ethernet frame filtering on a Linux bridge, \
+ advanced logging, MAC DNAT/SNAT and brouting."
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=53b4a999993871a28ab1488fdbd2e73e"
+SECTION = "net"
+
+RDEPENDS:${PN} += "bash"
+
+RRECOMMENDS:${PN} += "kernel-module-ebtables \
+ "
+
+SRC_URI = "http://ftp.netfilter.org/pub/ebtables/ebtables-${PV}.tar.gz \
+ file://0001-Makefile.am-do-not-install-etc-ethertypes.patch \
+ file://ebtables-legacy-save \
+ file://ebtables.common \
+ file://ebtables.service \
+ "
+
+SRC_URI:append:libc-musl = " file://0010-Adjust-header-include-sequence.patch"
+
+SRC_URI[md5sum] = "071c8b0a59241667a0044fb040d4fc72"
+SRC_URI[sha256sum] = "b71f654784a726329f88b412ef7b96b4e5d786ed2bd28193ed7b4c0d677dfd2a"
+
+inherit systemd autotools
+
+do_install:append () {
+ # Replace upstream ebtables-save perl script with Fedora bash based rewrite
+ # http://pkgs.fedoraproject.org/cgit/rpms/ebtables.git/tree/ebtables-save
+ rm -f ${D}${sbindir}/ebtables-legacy-save
+ install -m 0755 ${WORKDIR}/ebtables-legacy-save ${D}${sbindir}/ebtables-legacy-save
+
+ # Install systemd service files
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/ebtables.service ${D}${systemd_unitdir}/system
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/ebtables.service
+ install -m 0755 ${WORKDIR}/ebtables.common ${D}${sbindir}/ebtables.common
+ fi
+
+ install -d ${D}${base_sbindir}
+ ln -sf ${sbindir}/ebtables-legacy ${D}${base_sbindir}/ebtables
+}
+
+do_configure:prepend () {
+ ( cd ${S}; ./autogen.sh )
+}
+
+FILES:${PN}-dbg += "${base_libdir}/ebtables/.debug"
+FILES:${PN} += "${base_libdir}/ebtables/*.so"
+
+SYSTEMD_SERVICE:${PN} = "ebtables.service"
diff --git a/meta-networking/recipes-filter/ipset/ipset_7.15.bb b/meta-networking/recipes-filter/ipset/ipset_7.15.bb
new file mode 100644
index 0000000000..0e928a30f8
--- /dev/null
+++ b/meta-networking/recipes-filter/ipset/ipset_7.15.bb
@@ -0,0 +1,21 @@
+# 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/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch b/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch
deleted file mode 100644
index 76d2d5d287..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/files/0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 32af64e1811c74292891dc4dc8455736f7d33ccf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 30 Mar 2017 13:26:56 -0700
-Subject: [PATCH] Correct typo in the location of internal.h in #include
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libnetfilter_queue.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
-index 211a8ba..065d618 100644
---- a/src/libnetfilter_queue.c
-+++ b/src/libnetfilter_queue.c
-@@ -32,7 +32,7 @@
-
- #include <libnfnetlink/libnfnetlink.h>
- #include <libnetfilter_queue/libnetfilter_queue.h>
--#include "src/internal.h"
-+#include "internal.h"
-
- /**
- * \mainpage
---
-2.12.1
-
diff --git a/meta-networking/recipes-filter/libnetfilter/files/0001-conntrack-fix-build-with-kernel-5.15-and-musl.patch b/meta-networking/recipes-filter/libnetfilter/files/0001-conntrack-fix-build-with-kernel-5.15-and-musl.patch
new file mode 100644
index 0000000000..a02940af3d
--- /dev/null
+++ b/meta-networking/recipes-filter/libnetfilter/files/0001-conntrack-fix-build-with-kernel-5.15-and-musl.patch
@@ -0,0 +1,61 @@
+From 21ee35dde73aec5eba35290587d479218c6dd824 Mon Sep 17 00:00:00 2001
+From: Robert Marko <robimarko@gmail.com>
+Date: Thu, 24 Feb 2022 15:01:11 +0100
+Subject: [PATCH] conntrack: fix build with kernel 5.15 and musl
+
+Currently, with kernel 5.15 headers and musl building is failing with
+redefinition errors due to a conflict between the kernel and musl headers.
+
+Musl is able to suppres the conflicting kernel header definitions if they
+are included after the standard libc ones, however since ICMP definitions
+were moved into a separate internal header to avoid duplication this has
+stopped working and is breaking the builds.
+
+It seems that the issue is that <netinet/in.h> which contains the UAPI
+suppression defines is included in the internal.h header and not in the
+proto.h which actually includes the kernel ICMP headers and thus UAPI
+supression defines are not present.
+
+Solve this by moving the <netinet/in.h> include before the ICMP kernel
+includes in the proto.h
+
+Fixes: bc1cb4b11403 ("conntrack: Move icmp request>reply type mapping to common file")
+Signed-off-by: Robert Marko <robimarko@gmail.com>
+Signed-off-by: Florian Westphal <fw@strlen.de>
+
+Upstream-Status: Backport
+[https://git.netfilter.org/libnetfilter_conntrack/commit/?id=21ee35dde73aec5eba35290587d479218c6dd824]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ include/internal/internal.h | 1 -
+ include/internal/proto.h | 1 +
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/internal/internal.h b/include/internal/internal.h
+index 2ef8a90..7cd7c44 100644
+--- a/include/internal/internal.h
++++ b/include/internal/internal.h
+@@ -14,7 +14,6 @@
+ #include <arpa/inet.h>
+ #include <time.h>
+ #include <errno.h>
+-#include <netinet/in.h>
+
+ #include <libnfnetlink/libnfnetlink.h>
+ #include <libnetfilter_conntrack/libnetfilter_conntrack.h>
+diff --git a/include/internal/proto.h b/include/internal/proto.h
+index 40e7bfe..60a5f4e 100644
+--- a/include/internal/proto.h
++++ b/include/internal/proto.h
+@@ -2,6 +2,7 @@
+ #define _NFCT_PROTO_H_
+
+ #include <stdint.h>
++#include <netinet/in.h>
+ #include <linux/icmp.h>
+ #include <linux/icmpv6.h>
+
+--
+2.25.1
+
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/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch b/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch
deleted file mode 100644
index 946f1b71d7..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/files/0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch
+++ /dev/null
@@ -1,1229 +0,0 @@
-From 06562244ac4a1a61e1a2c6b219a517658f7349bf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 10 Apr 2017 12:09:41 -0700
-Subject: [PATCH] Declare the define visivility attribute together
-
-clang ignores the visibility attribute if its not
-defined before the definition. As a result these
-symbols become hidden and consumers of this library
-fail to link due to these missing symbols
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doxygen.cfg.in | 2 +-
- src/extra/ipv4.c | 15 +++----
- src/extra/ipv6.c | 9 ++--
- src/extra/pktbuff.c | 42 ++++++------------
- src/extra/tcp.c | 21 +++------
- src/extra/udp.c | 21 +++------
- src/internal.h | 5 +--
- src/libnetfilter_queue.c | 108 ++++++++++++++++-------------------------------
- src/nlmsg.c | 21 +++------
- 9 files changed, 82 insertions(+), 162 deletions(-)
-
-diff --git a/doxygen.cfg.in b/doxygen.cfg.in
-index a7378ca..659abee 100644
---- a/doxygen.cfg.in
-+++ b/doxygen.cfg.in
-@@ -72,7 +72,7 @@ RECURSIVE = YES
- EXCLUDE =
- EXCLUDE_SYMLINKS = NO
- EXCLUDE_PATTERNS =
--EXCLUDE_SYMBOLS = EXPORT_SYMBOL
-+EXCLUDE_SYMBOLS =
- EXAMPLE_PATH =
- EXAMPLE_PATTERNS =
- EXAMPLE_RECURSIVE = NO
-diff --git a/src/extra/ipv4.c b/src/extra/ipv4.c
-index a93d113..56d5dc7 100644
---- a/src/extra/ipv4.c
-+++ b/src/extra/ipv4.c
-@@ -32,7 +32,7 @@
- * This funcion returns NULL if the IPv4 is malformed or the protocol version
- * is not 4. On success, it returns a valid pointer to the IPv4 header.
- */
--struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb)
-+struct iphdr __EXPORTED *nfq_ip_get_hdr(struct pkt_buff *pktb)
- {
- struct iphdr *iph;
- unsigned int pktlen = pktb->tail - pktb->network_header;
-@@ -53,14 +53,13 @@ struct iphdr *nfq_ip_get_hdr(struct pkt_buff *pktb)
-
- return iph;
- }
--EXPORT_SYMBOL(nfq_ip_get_hdr);
-
- /**
- * nfq_ip_set_transport_header - set transport header
- * \param pktb: pointer to network packet buffer
- * \param iph: pointer to the IPv4 header
- */
--int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph)
-+int __EXPORTED nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph)
- {
- int doff = iph->ihl * 4;
-
-@@ -71,7 +70,6 @@ int nfq_ip_set_transport_header(struct pkt_buff *pktb, struct iphdr *iph)
- pktb->transport_header = pktb->network_header + doff;
- return 0;
- }
--EXPORT_SYMBOL(nfq_ip_set_transport_header);
-
- /**
- * nfq_ip_set_checksum - set IPv4 checksum
-@@ -80,14 +78,13 @@ EXPORT_SYMBOL(nfq_ip_set_transport_header);
- * \note Call to this function if you modified the IPv4 header to update the
- * checksum.
- */
--void nfq_ip_set_checksum(struct iphdr *iph)
-+void __EXPORTED nfq_ip_set_checksum(struct iphdr *iph)
- {
- uint32_t iph_len = iph->ihl * 4;
-
- iph->check = 0;
- iph->check = nfq_checksum(0, (uint16_t *)iph, iph_len);
- }
--EXPORT_SYMBOL(nfq_ip_set_checksum);
-
- /**
- * nfq_ip_mangle - mangle IPv4 packet buffer
-@@ -100,7 +97,7 @@ EXPORT_SYMBOL(nfq_ip_set_checksum);
- *
- * \note This function recalculates the IPv4 checksum (if needed).
- */
--int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff,
-+int __EXPORTED nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff,
- unsigned int match_offset, unsigned int match_len,
- const char *rep_buffer, unsigned int rep_len)
- {
-@@ -116,7 +113,6 @@ int nfq_ip_mangle(struct pkt_buff *pkt, unsigned int dataoff,
-
- return 1;
- }
--EXPORT_SYMBOL(nfq_ip_mangle);
-
- /**
- * nfq_pkt_snprintf_ip - print IPv4 header into buffer in iptables LOG format
-@@ -128,7 +124,7 @@ EXPORT_SYMBOL(nfq_ip_mangle);
- * case that there is enough room in the buffer. Read snprintf manpage for more
- * information to know more about this strange behaviour.
- */
--int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph)
-+int __EXPORTED nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph)
- {
- int ret;
- struct in_addr src = { iph->saddr };
-@@ -147,7 +143,6 @@ int nfq_ip_snprintf(char *buf, size_t size, const struct iphdr *iph)
-
- return ret;
- }
--EXPORT_SYMBOL(nfq_ip_snprintf);
-
- /**
- * @}
-diff --git a/src/extra/ipv6.c b/src/extra/ipv6.c
-index 7c5dc9b..6641c6b 100644
---- a/src/extra/ipv6.c
-+++ b/src/extra/ipv6.c
-@@ -33,7 +33,7 @@
- * This funcion returns NULL if an invalid header is found. On sucess, it
- * returns a valid pointer to the header.
- */
--struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb)
-+struct ip6_hdr __EXPORTED *nfq_ip6_get_hdr(struct pkt_buff *pktb)
- {
- struct ip6_hdr *ip6h;
- unsigned int pktlen = pktb->tail - pktb->network_header;
-@@ -50,7 +50,6 @@ struct ip6_hdr *nfq_ip6_get_hdr(struct pkt_buff *pktb)
-
- return ip6h;
- }
--EXPORT_SYMBOL(nfq_ip6_get_hdr);
-
- /**
- * nfq_ip6_set_transport_header - set transport header pointer for IPv6 packet
-@@ -61,7 +60,7 @@ EXPORT_SYMBOL(nfq_ip6_get_hdr);
- * This function returns 1 if the protocol has been found and the transport
- * header has been set. Otherwise, it returns 0.
- */
--int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h,
-+int __EXPORTED nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h,
- uint8_t target)
- {
- uint8_t nexthdr = ip6h->ip6_nxt;
-@@ -115,7 +114,6 @@ int nfq_ip6_set_transport_header(struct pkt_buff *pktb, struct ip6_hdr *ip6h,
- pktb->transport_header = cur;
- return cur ? 1 : 0;
- }
--EXPORT_SYMBOL(nfq_ip6_set_transport_header);
-
- /**
- * nfq_ip6_snprintf - print IPv6 header into one buffer in iptables LOG format
-@@ -124,7 +122,7 @@ EXPORT_SYMBOL(nfq_ip6_set_transport_header);
- * \param ip6_hdr: pointer to a valid IPv6 header.
- *
- */
--int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h)
-+int __EXPORTED nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h)
- {
- int ret;
- char src[INET6_ADDRSTRLEN];
-@@ -143,7 +141,6 @@ int nfq_ip6_snprintf(char *buf, size_t size, const struct ip6_hdr *ip6h)
-
- return ret;
- }
--EXPORT_SYMBOL(nfq_ip6_snprintf);
-
- /**
- * @}
-diff --git a/src/extra/pktbuff.c b/src/extra/pktbuff.c
-index 1c15a00..54d8244 100644
---- a/src/extra/pktbuff.c
-+++ b/src/extra/pktbuff.c
-@@ -40,7 +40,7 @@
- *
- * \return a pointer to a new queue handle or NULL on failure.
- */
--struct pkt_buff *
-+struct pkt_buff __EXPORTED *
- pktb_alloc(int family, void *data, size_t len, size_t extra)
- {
- struct pkt_buff *pktb;
-@@ -84,120 +84,108 @@ pktb_alloc(int family, void *data, size_t len, size_t extra)
- }
- return pktb;
- }
--EXPORT_SYMBOL(pktb_alloc);
-
- /**
- * pktb_data - return pointer to the beginning of the packet buffer
- * \param pktb Pointer to packet buffer
- */
--uint8_t *pktb_data(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_data(struct pkt_buff *pktb)
- {
- return pktb->data;
- }
--EXPORT_SYMBOL(pktb_data);
-
- /**
- * pktb_len - return length of the packet buffer
- * \param pktb Pointer to packet buffer
- */
--uint32_t pktb_len(struct pkt_buff *pktb)
-+uint32_t __EXPORTED pktb_len(struct pkt_buff *pktb)
- {
- return pktb->len;
- }
--EXPORT_SYMBOL(pktb_len);
-
- /**
- * pktb_free - release packet buffer
- * \param pktb Pointer to packet buffer
- */
--void pktb_free(struct pkt_buff *pktb)
-+void __EXPORTED pktb_free(struct pkt_buff *pktb)
- {
- free(pktb);
- }
--EXPORT_SYMBOL(pktb_free);
-
- /**
- * pktb_push - update pointer to the beginning of the packet buffer
- * \param pktb Pointer to packet buffer
- */
--void pktb_push(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_push(struct pkt_buff *pktb, unsigned int len)
- {
- pktb->data -= len;
- pktb->len += len;
- }
--EXPORT_SYMBOL(pktb_push);
-
- /**
- * pktb_pull - update pointer to the beginning of the packet buffer
- * \param pktb Pointer to packet buffer
- */
--void pktb_pull(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_pull(struct pkt_buff *pktb, unsigned int len)
- {
- pktb->data += len;
- pktb->len -= len;
- }
--EXPORT_SYMBOL(pktb_pull);
-
- /**
- * pktb_put - add extra bytes to the tail of the packet buffer
- * \param pktb Pointer to packet buffer
- */
--void pktb_put(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_put(struct pkt_buff *pktb, unsigned int len)
- {
- pktb->tail += len;
- pktb->len += len;
- }
--EXPORT_SYMBOL(pktb_put);
-
- /**
- * pktb_trim - set new length for this packet buffer
- * \param pktb Pointer to packet buffer
- */
--void pktb_trim(struct pkt_buff *pktb, unsigned int len)
-+void __EXPORTED pktb_trim(struct pkt_buff *pktb, unsigned int len)
- {
- pktb->len = len;
- }
--EXPORT_SYMBOL(pktb_trim);
-
- /**
- * pktb_tailroom - get room in bytes in the tail of the packet buffer
- * \param pktb Pointer to packet buffer
- */
--unsigned int pktb_tailroom(struct pkt_buff *pktb)
-+unsigned int __EXPORTED pktb_tailroom(struct pkt_buff *pktb)
- {
- return pktb->data_len - pktb->len;
- }
--EXPORT_SYMBOL(pktb_tailroom);
-
- /**
- * pktb_mac_header - return pointer to layer 2 header (if any)
- * \param pktb Pointer to packet buffer
- */
--uint8_t *pktb_mac_header(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_mac_header(struct pkt_buff *pktb)
- {
- return pktb->mac_header;
- }
--EXPORT_SYMBOL(pktb_mac_header);
-
- /**
- * pktb_network_header - return pointer to layer 3 header
- * \param pktb Pointer to packet buffer
- */
--uint8_t *pktb_network_header(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_network_header(struct pkt_buff *pktb)
- {
- return pktb->network_header;
- }
--EXPORT_SYMBOL(pktb_network_header);
-
- /**
- * pktb_transport_header - return pointer to layer 4 header (if any)
- * \param pktb Pointer to packet buffer
- */
--uint8_t *pktb_transport_header(struct pkt_buff *pktb)
-+uint8_t __EXPORTED *pktb_transport_header(struct pkt_buff *pktb)
- {
- return pktb->transport_header;
- }
--EXPORT_SYMBOL(pktb_transport_header);
-
- static int pktb_expand_tail(struct pkt_buff *pkt, int extra)
- {
-@@ -224,7 +212,7 @@ static int enlarge_pkt(struct pkt_buff *pkt, unsigned int extra)
- return 1;
- }
-
--int pktb_mangle(struct pkt_buff *pkt,
-+int __EXPORTED pktb_mangle(struct pkt_buff *pkt,
- unsigned int dataoff,
- unsigned int match_offset,
- unsigned int match_len,
-@@ -258,17 +246,15 @@ int pktb_mangle(struct pkt_buff *pkt,
- pkt->mangled = true;
- return 1;
- }
--EXPORT_SYMBOL(pktb_mangle);
-
- /**
- * pktb_mangled - return true if packet has been mangled
- * \param pktb Pointer to packet buffer
- */
--bool pktb_mangled(const struct pkt_buff *pkt)
-+bool __EXPORTED pktb_mangled(const struct pkt_buff *pkt)
- {
- return pkt->mangled;
- }
--EXPORT_SYMBOL(pktb_mangled);
-
- /**
- * @}
-diff --git a/src/extra/tcp.c b/src/extra/tcp.c
-index d1cd79d..8038ce5 100644
---- a/src/extra/tcp.c
-+++ b/src/extra/tcp.c
-@@ -40,7 +40,7 @@
- * \note You have to call nfq_ip_set_transport_header or
- * nfq_ip6_set_transport_header first to access the TCP header.
- */
--struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb)
-+struct tcphdr __EXPORTED *nfq_tcp_get_hdr(struct pkt_buff *pktb)
- {
- if (pktb->transport_header == NULL)
- return NULL;
-@@ -51,14 +51,13 @@ struct tcphdr *nfq_tcp_get_hdr(struct pkt_buff *pktb)
-
- return (struct tcphdr *)pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_tcp_get_hdr);
-
- /**
- * nfq_tcp_get_payload - get the TCP packet payload
- * \param tcph: pointer to the TCP header
- * \param pktb: pointer to user-space network packet buffer
- */
--void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb)
-+void __EXPORTED *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb)
- {
- unsigned int len = tcph->doff * 4;
-
-@@ -72,47 +71,43 @@ void *nfq_tcp_get_payload(struct tcphdr *tcph, struct pkt_buff *pktb)
-
- return pktb->transport_header + len;
- }
--EXPORT_SYMBOL(nfq_tcp_get_payload);
-
- /**
- * nfq_tcp_get_payload_len - get the tcp packet payload
- * \param tcph: pointer to the TCP header
- * \param pktb: pointer to user-space network packet buffer
- */
--unsigned int
-+unsigned int __EXPORTED
- nfq_tcp_get_payload_len(struct tcphdr *tcph, struct pkt_buff *pktb)
- {
- return pktb->tail - pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_tcp_get_payload_len);
-
- /**
- * nfq_tcp_set_checksum_ipv4 - computes IPv4/TCP packet checksum
- * \param tcph: pointer to the TCP header
- * \param iph: pointer to the IPv4 header
- */
--void
-+void __EXPORTED
- nfq_tcp_compute_checksum_ipv4(struct tcphdr *tcph, struct iphdr *iph)
- {
- /* checksum field in header needs to be zero for calculation. */
- tcph->check = 0;
- tcph->check = nfq_checksum_tcpudp_ipv4(iph);
- }
--EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv4);
-
- /**
- * nfq_tcp_set_checksum_ipv6 - computes IPv6/TCP packet checksum
- * \param tcph: pointer to the TCP header
- * \param iph: pointer to the IPv6 header
- */
--void
-+void __EXPORTED
- nfq_tcp_compute_checksum_ipv6(struct tcphdr *tcph, struct ip6_hdr *ip6h)
- {
- /* checksum field in header needs to be zero for calculation. */
- tcph->check = 0;
- tcph->check = nfq_checksum_tcpudp_ipv6(ip6h, tcph);
- }
--EXPORT_SYMBOL(nfq_tcp_compute_checksum_ipv6);
-
- /*
- * The union cast uses a gcc extension to avoid aliasing problems
-@@ -134,7 +129,7 @@ union tcp_word_hdr {
- * \param tcp: pointer to a valid tcp header.
- *
- */
--int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph)
-+int __EXPORTED nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph)
- {
- int ret, len = 0;
-
-@@ -177,7 +172,6 @@ int nfq_tcp_snprintf(char *buf, size_t size, const struct tcphdr *tcph)
-
- return ret;
- }
--EXPORT_SYMBOL(nfq_tcp_snprintf);
-
- /**
- * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer
-@@ -189,7 +183,7 @@ EXPORT_SYMBOL(nfq_tcp_snprintf);
- *
- * \note This function recalculates the IPv4 and TCP checksums for you.
- */
--int
-+int __EXPORTED
- nfq_tcp_mangle_ipv4(struct pkt_buff *pkt,
- unsigned int match_offset, unsigned int match_len,
- const char *rep_buffer, unsigned int rep_len)
-@@ -208,7 +202,6 @@ nfq_tcp_mangle_ipv4(struct pkt_buff *pkt,
-
- return 1;
- }
--EXPORT_SYMBOL(nfq_tcp_mangle_ipv4);
-
- /**
- * @}
-diff --git a/src/extra/udp.c b/src/extra/udp.c
-index 8c44a66..99c8faa 100644
---- a/src/extra/udp.c
-+++ b/src/extra/udp.c
-@@ -37,7 +37,7 @@
- * This function returns NULL if invalid UDP header is found. On success,
- * it returns the UDP header.
- */
--struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb)
-+struct udphdr __EXPORTED *nfq_udp_get_hdr(struct pkt_buff *pktb)
- {
- if (pktb->transport_header == NULL)
- return NULL;
-@@ -48,14 +48,13 @@ struct udphdr *nfq_udp_get_hdr(struct pkt_buff *pktb)
-
- return (struct udphdr *)pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_udp_get_hdr);
-
- /**
- * nfq_udp_get_payload - get the UDP packet payload.
- * \param udph: the pointer to the UDP header.
- * \param tail: pointer to the tail of the packet
- */
--void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb)
-+void __EXPORTED *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb)
- {
- uint16_t len = ntohs(udph->len);
-
-@@ -69,17 +68,15 @@ void *nfq_udp_get_payload(struct udphdr *udph, struct pkt_buff *pktb)
-
- return pktb->transport_header + sizeof(struct udphdr);
- }
--EXPORT_SYMBOL(nfq_udp_get_payload);
-
- /**
- * nfq_udp_get_payload_len - get the udp packet payload.
- * \param udp: the pointer to the udp header.
- */
--unsigned int nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb)
-+unsigned int __EXPORTED nfq_udp_get_payload_len(struct udphdr *udph, struct pkt_buff *pktb)
- {
- return pktb->tail - pktb->transport_header;
- }
--EXPORT_SYMBOL(nfq_udp_get_payload_len);
-
- /**
- * nfq_udp_set_checksum_ipv4 - computes a IPv4/TCP packet's segment
-@@ -91,14 +88,13 @@ EXPORT_SYMBOL(nfq_udp_get_payload_len);
- * \see nfq_pkt_compute_ip_checksum
- * \see nfq_pkt_compute_udp_checksum
- */
--void
-+void __EXPORTED
- nfq_udp_compute_checksum_ipv4(struct udphdr *udph, struct iphdr *iph)
- {
- /* checksum field in header needs to be zero for calculation. */
- udph->check = 0;
- udph->check = nfq_checksum_tcpudp_ipv4(iph);
- }
--EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4);
-
- /**
- * nfq_udp_set_checksum_ipv6 - computes a IPv6/TCP packet's segment
-@@ -110,14 +106,13 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv4);
- * \see nfq_pkt_compute_ip_checksum
- * \see nfq_pkt_compute_udp_checksum
- */
--void
-+void __EXPORTED
- nfq_udp_compute_checksum_ipv6(struct udphdr *udph, struct ip6_hdr *ip6h)
- {
- /* checksum field in header needs to be zero for calculation. */
- udph->check = 0;
- udph->check = nfq_checksum_tcpudp_ipv6(ip6h, udph);
- }
--EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6);
-
- /**
- * nfq_tcp_mangle_ipv4 - mangle TCP/IPv4 packet buffer
-@@ -129,7 +124,7 @@ EXPORT_SYMBOL(nfq_udp_compute_checksum_ipv6);
- *
- * \note This function recalculates the IPv4 and TCP checksums for you.
- */
--int
-+int __EXPORTED
- nfq_udp_mangle_ipv4(struct pkt_buff *pkt,
- unsigned int match_offset, unsigned int match_len,
- const char *rep_buffer, unsigned int rep_len)
-@@ -148,7 +143,6 @@ nfq_udp_mangle_ipv4(struct pkt_buff *pkt,
-
- return 1;
- }
--EXPORT_SYMBOL(nfq_udp_mangle_ipv4);
-
- /**
- * nfq_pkt_snprintf_udp_hdr - print udp header into one buffer in a humnan
-@@ -158,12 +152,11 @@ EXPORT_SYMBOL(nfq_udp_mangle_ipv4);
- * \param udp: pointer to a valid udp header.
- *
- */
--int nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph)
-+int __EXPORTED nfq_udp_snprintf(char *buf, size_t size, const struct udphdr *udph)
- {
- return snprintf(buf, size, "SPT=%u DPT=%u ",
- htons(udph->source), htons(udph->dest));
- }
--EXPORT_SYMBOL(nfq_udp_snprintf);
-
- /**
- * @}
-diff --git a/src/internal.h b/src/internal.h
-index 558d267..79b0752 100644
---- a/src/internal.h
-+++ b/src/internal.h
-@@ -5,10 +5,9 @@
- #include <stdint.h>
- #include <stdbool.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
-
- struct iphdr;
-diff --git a/src/libnetfilter_queue.c b/src/libnetfilter_queue.c
-index 065d618..ab0b66b 100644
---- a/src/libnetfilter_queue.c
-+++ b/src/libnetfilter_queue.c
-@@ -133,8 +133,7 @@ struct nfq_data {
- struct nfattr **data;
- };
-
--int nfq_errno;
--EXPORT_SYMBOL(nfq_errno);
-+int __EXPORTED nfq_errno;
-
- /***********************************************************************
- * low level stuff
-@@ -218,11 +217,10 @@ static int __nfq_rcv_pkt(struct nlmsghdr *nlh, struct nfattr *nfa[],
-
- /* public interface */
-
--struct nfnl_handle *nfq_nfnlh(struct nfq_handle *h)
-+struct nfnl_handle __EXPORTED *nfq_nfnlh(struct nfq_handle *h)
- {
- return h->nfnlh;
- }
--EXPORT_SYMBOL(nfq_nfnlh);
-
- /**
- *
-@@ -294,11 +292,10 @@ EXPORT_SYMBOL(nfq_nfnlh);
- * over the netlink connection associated with the given queue connection
- * handle.
- */
--int nfq_fd(struct nfq_handle *h)
-+int __EXPORTED nfq_fd(struct nfq_handle *h)
- {
- return nfnl_fd(nfq_nfnlh(h));
- }
--EXPORT_SYMBOL(nfq_fd);
- /**
- * @}
- */
-@@ -349,7 +346,7 @@ EXPORT_SYMBOL(nfq_fd);
- *
- * \return a pointer to a new queue handle or NULL on failure.
- */
--struct nfq_handle *nfq_open(void)
-+struct nfq_handle __EXPORTED *nfq_open(void)
- {
- struct nfnl_handle *nfnlh = nfnl_open();
- struct nfq_handle *qh;
-@@ -366,7 +363,6 @@ struct nfq_handle *nfq_open(void)
-
- return qh;
- }
--EXPORT_SYMBOL(nfq_open);
-
- /**
- * @}
-@@ -382,7 +378,7 @@ EXPORT_SYMBOL(nfq_open);
- *
- * \return a pointer to a new queue handle or NULL on failure.
- */
--struct nfq_handle *nfq_open_nfnl(struct nfnl_handle *nfnlh)
-+struct nfq_handle __EXPORTED *nfq_open_nfnl(struct nfnl_handle *nfnlh)
- {
- struct nfnl_callback pkt_cb = {
- .call = __nfq_rcv_pkt,
-@@ -419,7 +415,6 @@ out_free:
- free(h);
- return NULL;
- }
--EXPORT_SYMBOL(nfq_open_nfnl);
-
- /**
- * \addtogroup LibrarySetup
-@@ -438,7 +433,7 @@ EXPORT_SYMBOL(nfq_open_nfnl);
- *
- * \return 0 on success, non-zero on failure.
- */
--int nfq_close(struct nfq_handle *h)
-+int __EXPORTED nfq_close(struct nfq_handle *h)
- {
- int ret;
-
-@@ -447,7 +442,6 @@ int nfq_close(struct nfq_handle *h)
- free(h);
- return ret;
- }
--EXPORT_SYMBOL(nfq_close);
-
- /**
- * nfq_bind_pf - bind a nfqueue handler to a given protocol family
-@@ -460,11 +454,10 @@ EXPORT_SYMBOL(nfq_close);
- *
- * \return integer inferior to 0 in case of failure
- */
--int nfq_bind_pf(struct nfq_handle *h, uint16_t pf)
-+int __EXPORTED nfq_bind_pf(struct nfq_handle *h, uint16_t pf)
- {
- return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_BIND, 0, pf);
- }
--EXPORT_SYMBOL(nfq_bind_pf);
-
- /**
- * nfq_unbind_pf - unbind nfqueue handler from a protocol family
-@@ -476,11 +469,10 @@ EXPORT_SYMBOL(nfq_bind_pf);
- *
- * This call is obsolete, Linux kernels from 3.8 onwards ignore it.
- */
--int nfq_unbind_pf(struct nfq_handle *h, uint16_t pf)
-+int __EXPORTED nfq_unbind_pf(struct nfq_handle *h, uint16_t pf)
- {
- return __build_send_cfg_msg(h, NFQNL_CFG_CMD_PF_UNBIND, 0, pf);
- }
--EXPORT_SYMBOL(nfq_unbind_pf);
-
-
- /**
-@@ -524,7 +516,7 @@ typedef int nfq_callback(struct nfq_q_handle *qh,
- * The callback should return < 0 to stop processing.
- */
-
--struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h,
-+struct nfq_q_handle __EXPORTED *nfq_create_queue(struct nfq_handle *h,
- uint16_t num,
- nfq_callback *cb,
- void *data)
-@@ -555,7 +547,6 @@ struct nfq_q_handle *nfq_create_queue(struct nfq_handle *h,
- add_qh(qh);
- return qh;
- }
--EXPORT_SYMBOL(nfq_create_queue);
-
- /**
- * @}
-@@ -573,7 +564,7 @@ EXPORT_SYMBOL(nfq_create_queue);
- * Removes the binding for the specified queue handle. This call also unbind
- * from the nfqueue handler, so you don't have to call nfq_unbind_pf.
- */
--int nfq_destroy_queue(struct nfq_q_handle *qh)
-+int __EXPORTED nfq_destroy_queue(struct nfq_q_handle *qh)
- {
- int ret = __build_send_cfg_msg(qh->h, NFQNL_CFG_CMD_UNBIND, qh->id, 0);
- if (ret == 0) {
-@@ -583,7 +574,6 @@ int nfq_destroy_queue(struct nfq_q_handle *qh)
-
- return ret;
- }
--EXPORT_SYMBOL(nfq_destroy_queue);
-
- /**
- * nfq_handle_packet - handle a packet received from the nfqueue subsystem
-@@ -597,11 +587,10 @@ EXPORT_SYMBOL(nfq_destroy_queue);
- *
- * \return 0 on success, non-zero on failure.
- */
--int nfq_handle_packet(struct nfq_handle *h, char *buf, int len)
-+int __EXPORTED nfq_handle_packet(struct nfq_handle *h, char *buf, int len)
- {
- return nfnl_handle_packet(h->nfnlh, buf, len);
- }
--EXPORT_SYMBOL(nfq_handle_packet);
-
- /**
- * nfq_set_mode - set the amount of packet data that nfqueue copies to userspace
-@@ -618,7 +607,7 @@ EXPORT_SYMBOL(nfq_handle_packet);
- *
- * \return -1 on error; >=0 otherwise.
- */
--int nfq_set_mode(struct nfq_q_handle *qh,
-+int __EXPORTED nfq_set_mode(struct nfq_q_handle *qh,
- uint8_t mode, uint32_t range)
- {
- union {
-@@ -638,7 +627,6 @@ int nfq_set_mode(struct nfq_q_handle *qh,
-
- return nfnl_query(qh->h->nfnlh, &u.nmh);
- }
--EXPORT_SYMBOL(nfq_set_mode);
-
- /**
- * nfq_set_queue_flags - set flags (options) for the kernel queue
-@@ -690,7 +678,7 @@ EXPORT_SYMBOL(nfq_set_mode);
- *
- * \return -1 on error with errno set appropriately; =0 otherwise.
- */
--int nfq_set_queue_flags(struct nfq_q_handle *qh,
-+int __EXPORTED nfq_set_queue_flags(struct nfq_q_handle *qh,
- uint32_t mask, uint32_t flags)
- {
- union {
-@@ -711,7 +699,6 @@ int nfq_set_queue_flags(struct nfq_q_handle *qh,
-
- return nfnl_query(qh->h->nfnlh, &u.nmh);
- }
--EXPORT_SYMBOL(nfq_set_queue_flags);
-
- /**
- * nfq_set_queue_maxlen - Set kernel queue maximum length parameter
-@@ -724,7 +711,7 @@ EXPORT_SYMBOL(nfq_set_queue_flags);
- *
- * \return -1 on error; >=0 otherwise.
- */
--int nfq_set_queue_maxlen(struct nfq_q_handle *qh,
-+int __EXPORTED nfq_set_queue_maxlen(struct nfq_q_handle *qh,
- uint32_t queuelen)
- {
- union {
-@@ -742,7 +729,6 @@ int nfq_set_queue_maxlen(struct nfq_q_handle *qh,
-
- return nfnl_query(qh->h->nfnlh, &u.nmh);
- }
--EXPORT_SYMBOL(nfq_set_queue_maxlen);
-
- /**
- * @}
-@@ -829,14 +815,13 @@ static int __set_verdict(struct nfq_q_handle *qh, uint32_t id,
- *
- * \return -1 on error; >= 0 otherwise.
- */
--int nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict(struct nfq_q_handle *qh, uint32_t id,
- uint32_t verdict, uint32_t data_len,
- const unsigned char *buf)
- {
- return __set_verdict(qh, id, verdict, 0, 0, data_len, buf,
- NFQNL_MSG_VERDICT);
- }
--EXPORT_SYMBOL(nfq_set_verdict);
-
- /**
- * nfq_set_verdict2 - like nfq_set_verdict, but you can set the mark.
-@@ -847,14 +832,13 @@ EXPORT_SYMBOL(nfq_set_verdict);
- * \param data_len number of bytes of data pointed to by #buf
- * \param buf the buffer that contains the packet data
- */
--int nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict2(struct nfq_q_handle *qh, uint32_t id,
- uint32_t verdict, uint32_t mark,
- uint32_t data_len, const unsigned char *buf)
- {
- return __set_verdict(qh, id, verdict, htonl(mark), 1, data_len,
- buf, NFQNL_MSG_VERDICT);
- }
--EXPORT_SYMBOL(nfq_set_verdict2);
-
- /**
- * nfq_set_verdict_batch - issue verdicts on several packets at once
-@@ -868,13 +852,12 @@ EXPORT_SYMBOL(nfq_set_verdict2);
- * batch support was added in Linux 3.1.
- * These functions will fail silently on older kernels.
- */
--int nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict_batch(struct nfq_q_handle *qh, uint32_t id,
- uint32_t verdict)
- {
- return __set_verdict(qh, id, verdict, 0, 0, 0, NULL,
- NFQNL_MSG_VERDICT_BATCH);
- }
--EXPORT_SYMBOL(nfq_set_verdict_batch);
-
- /**
- * nfq_set_verdict_batch2 - like nfq_set_verdict_batch, but you can set a mark.
-@@ -883,13 +866,12 @@ EXPORT_SYMBOL(nfq_set_verdict_batch);
- * \param verdict verdict to return to netfilter (NF_ACCEPT, NF_DROP)
- * \param mark mark to put on packet
- */
--int nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict_batch2(struct nfq_q_handle *qh, uint32_t id,
- uint32_t verdict, uint32_t mark)
- {
- return __set_verdict(qh, id, verdict, htonl(mark), 1, 0,
- NULL, NFQNL_MSG_VERDICT_BATCH);
- }
--EXPORT_SYMBOL(nfq_set_verdict_batch2);
-
- /**
- * nfq_set_verdict_mark - like nfq_set_verdict, but you can set the mark.
-@@ -905,14 +887,13 @@ EXPORT_SYMBOL(nfq_set_verdict_batch2);
- * This function is deprecated since it is broken, its use is highly
- * discouraged. Please, use nfq_set_verdict2 instead.
- */
--int nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id,
-+int __EXPORTED nfq_set_verdict_mark(struct nfq_q_handle *qh, uint32_t id,
- uint32_t verdict, uint32_t mark,
- uint32_t data_len, const unsigned char *buf)
- {
- return __set_verdict(qh, id, verdict, mark, 1, data_len, buf,
- NFQNL_MSG_VERDICT);
- }
--EXPORT_SYMBOL(nfq_set_verdict_mark);
-
- /**
- * @}
-@@ -947,12 +928,11 @@ EXPORT_SYMBOL(nfq_set_verdict_mark);
- } __attribute__ ((packed));
- \endverbatim
- */
--struct nfqnl_msg_packet_hdr *nfq_get_msg_packet_hdr(struct nfq_data *nfad)
-+struct nfqnl_msg_packet_hdr __EXPORTED *nfq_get_msg_packet_hdr(struct nfq_data *nfad)
- {
- return nfnl_get_pointer_to_data(nfad->data, NFQA_PACKET_HDR,
- struct nfqnl_msg_packet_hdr);
- }
--EXPORT_SYMBOL(nfq_get_msg_packet_hdr);
-
- /**
- * nfq_get_nfmark - get the packet mark
-@@ -960,11 +940,10 @@ EXPORT_SYMBOL(nfq_get_msg_packet_hdr);
- *
- * \return the netfilter mark currently assigned to the given queued packet.
- */
--uint32_t nfq_get_nfmark(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_nfmark(struct nfq_data *nfad)
- {
- return ntohl(nfnl_get_data(nfad->data, NFQA_MARK, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_nfmark);
-
- /**
- * nfq_get_timestamp - get the packet timestamp
-@@ -975,7 +954,7 @@ EXPORT_SYMBOL(nfq_get_nfmark);
- *
- * \return 0 on success, non-zero on failure.
- */
--int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
-+int __EXPORTED nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
- {
- struct nfqnl_msg_packet_timestamp *qpt;
- qpt = nfnl_get_pointer_to_data(nfad->data, NFQA_TIMESTAMP,
-@@ -988,7 +967,6 @@ int nfq_get_timestamp(struct nfq_data *nfad, struct timeval *tv)
-
- return 0;
- }
--EXPORT_SYMBOL(nfq_get_timestamp);
-
- /**
- * nfq_get_indev - get the interface that the packet was received through
-@@ -1001,11 +979,10 @@ EXPORT_SYMBOL(nfq_get_timestamp);
- * \warning all nfq_get_dev() functions return 0 if not set, since linux
- * only allows ifindex >= 1, see net/core/dev.c:2600 (in 2.6.13.1)
- */
--uint32_t nfq_get_indev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_indev(struct nfq_data *nfad)
- {
- return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_INDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_indev);
-
- /**
- * nfq_get_physindev - get the physical interface that the packet was received
-@@ -1015,11 +992,10 @@ EXPORT_SYMBOL(nfq_get_indev);
- * If the returned index is 0, the packet was locally generated or the
- * physical input interface is no longer known (ie. POSTROUTING?).
- */
--uint32_t nfq_get_physindev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_physindev(struct nfq_data *nfad)
- {
- return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSINDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_physindev);
-
- /**
- * nfq_get_outdev - gets the interface that the packet will be routed out
-@@ -1029,11 +1005,10 @@ EXPORT_SYMBOL(nfq_get_physindev);
- * returned index is 0, the packet is destined for localhost or the output
- * interface is not yet known (ie. PREROUTING?).
- */
--uint32_t nfq_get_outdev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_outdev(struct nfq_data *nfad)
- {
- return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_OUTDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_outdev);
-
- /**
- * nfq_get_physoutdev - get the physical interface that the packet output
-@@ -1045,11 +1020,10 @@ EXPORT_SYMBOL(nfq_get_outdev);
- *
- * \return The index of physical interface that the packet output will be routed out.
- */
--uint32_t nfq_get_physoutdev(struct nfq_data *nfad)
-+uint32_t __EXPORTED nfq_get_physoutdev(struct nfq_data *nfad)
- {
- return ntohl(nfnl_get_data(nfad->data, NFQA_IFINDEX_PHYSOUTDEV, uint32_t));
- }
--EXPORT_SYMBOL(nfq_get_physoutdev);
-
- /**
- * nfq_get_indev_name - get the name of the interface the packet
-@@ -1089,13 +1063,12 @@ EXPORT_SYMBOL(nfq_get_physoutdev);
- \endverbatim
- *
- */
--int nfq_get_indev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_indev_name(struct nlif_handle *nlif_handle,
- struct nfq_data *nfad, char *name)
- {
- uint32_t ifindex = nfq_get_indev(nfad);
- return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_indev_name);
-
- /**
- * nfq_get_physindev_name - get the name of the physical interface the
-@@ -1109,13 +1082,12 @@ EXPORT_SYMBOL(nfq_get_indev_name);
- *
- * \return -1 in case of error, > 0 if it succeed.
- */
--int nfq_get_physindev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_physindev_name(struct nlif_handle *nlif_handle,
- struct nfq_data *nfad, char *name)
- {
- uint32_t ifindex = nfq_get_physindev(nfad);
- return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_physindev_name);
-
- /**
- * nfq_get_outdev_name - get the name of the physical interface the
-@@ -1129,13 +1101,12 @@ EXPORT_SYMBOL(nfq_get_physindev_name);
- *
- * \return -1 in case of error, > 0 if it succeed.
- */
--int nfq_get_outdev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_outdev_name(struct nlif_handle *nlif_handle,
- struct nfq_data *nfad, char *name)
- {
- uint32_t ifindex = nfq_get_outdev(nfad);
- return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_outdev_name);
-
- /**
- * nfq_get_physoutdev_name - get the name of the interface the
-@@ -1150,13 +1121,12 @@ EXPORT_SYMBOL(nfq_get_outdev_name);
- * \return -1 in case of error, > 0 if it succeed.
- */
-
--int nfq_get_physoutdev_name(struct nlif_handle *nlif_handle,
-+int __EXPORTED nfq_get_physoutdev_name(struct nlif_handle *nlif_handle,
- struct nfq_data *nfad, char *name)
- {
- uint32_t ifindex = nfq_get_physoutdev(nfad);
- return nlif_index2name(nlif_handle, ifindex, name);
- }
--EXPORT_SYMBOL(nfq_get_physoutdev_name);
-
- /**
- * nfq_get_packet_hw
-@@ -1180,12 +1150,11 @@ EXPORT_SYMBOL(nfq_get_physoutdev_name);
- } __attribute__ ((packed));
- \endverbatim
- */
--struct nfqnl_msg_packet_hw *nfq_get_packet_hw(struct nfq_data *nfad)
-+struct nfqnl_msg_packet_hw __EXPORTED *nfq_get_packet_hw(struct nfq_data *nfad)
- {
- return nfnl_get_pointer_to_data(nfad->data, NFQA_HWADDR,
- struct nfqnl_msg_packet_hw);
- }
--EXPORT_SYMBOL(nfq_get_packet_hw);
-
- /**
- * nfq_get_uid - get the UID of the user the packet belongs to
-@@ -1193,7 +1162,7 @@ EXPORT_SYMBOL(nfq_get_packet_hw);
- *
- * \return 1 if there is a UID available, 0 otherwise.
- */
--int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
-+int __EXPORTED nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
- {
- if (!nfnl_attr_present(nfad->data, NFQA_UID))
- return 0;
-@@ -1201,7 +1170,6 @@ int nfq_get_uid(struct nfq_data *nfad, uint32_t *uid)
- *uid = ntohl(nfnl_get_data(nfad->data, NFQA_UID, uint32_t));
- return 1;
- }
--EXPORT_SYMBOL(nfq_get_uid);
-
- /**
- * nfq_get_gid - get the GID of the user the packet belongs to
-@@ -1209,7 +1177,7 @@ EXPORT_SYMBOL(nfq_get_uid);
- *
- * \return 1 if there is a GID available, 0 otherwise.
- */
--int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
-+int __EXPORTED nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
- {
- if (!nfnl_attr_present(nfad->data, NFQA_GID))
- return 0;
-@@ -1217,7 +1185,6 @@ int nfq_get_gid(struct nfq_data *nfad, uint32_t *gid)
- *gid = ntohl(nfnl_get_data(nfad->data, NFQA_GID, uint32_t));
- return 1;
- }
--EXPORT_SYMBOL(nfq_get_gid);
-
-
- /**
-@@ -1227,7 +1194,7 @@ EXPORT_SYMBOL(nfq_get_gid);
- *
- * \return -1 on error, otherwise > 0
- */
--int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
-+int __EXPORTED nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
- {
- if (!nfnl_attr_present(nfad->data, NFQA_SECCTX))
- return -1;
-@@ -1240,7 +1207,6 @@ int nfq_get_secctx(struct nfq_data *nfad, unsigned char **secdata)
-
- return 0;
- }
--EXPORT_SYMBOL(nfq_get_secctx);
-
- /**
- * nfq_get_payload - get payload
-@@ -1253,7 +1219,7 @@ EXPORT_SYMBOL(nfq_get_secctx);
- *
- * \return -1 on error, otherwise > 0.
- */
--int nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
-+int __EXPORTED nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
- {
- *data = (unsigned char *)
- nfnl_get_pointer_to_data(nfad->data, NFQA_PAYLOAD, char);
-@@ -1262,7 +1228,6 @@ int nfq_get_payload(struct nfq_data *nfad, unsigned char **data)
-
- return -1;
- }
--EXPORT_SYMBOL(nfq_get_payload);
-
- /**
- * @}
-@@ -1307,7 +1272,7 @@ do { \
- * would have been printed into the buffer (in case that there is enough
- * room in it). See snprintf() return value for more information.
- */
--int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
-+int __EXPORTED nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
- {
- struct nfqnl_msg_packet_hdr *ph;
- struct nfqnl_msg_packet_hw *hwph;
-@@ -1460,7 +1425,6 @@ int nfq_snprintf_xml(char *buf, size_t rem, struct nfq_data *tb, int flags)
-
- return len;
- }
--EXPORT_SYMBOL(nfq_snprintf_xml);
-
- /**
- * @}
-diff --git a/src/nlmsg.c b/src/nlmsg.c
-index ba28c77..5582407 100644
---- a/src/nlmsg.c
-+++ b/src/nlmsg.c
-@@ -30,7 +30,7 @@
- * @{
- */
-
--void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict)
-+void __EXPORTED nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict)
- {
- struct nfqnl_msg_verdict_hdr vh = {
- .verdict = htonl(verdict),
-@@ -38,20 +38,17 @@ void nfq_nlmsg_verdict_put(struct nlmsghdr *nlh, int id, int verdict)
- };
- mnl_attr_put(nlh, NFQA_VERDICT_HDR, sizeof(vh), &vh);
- }
--EXPORT_SYMBOL(nfq_nlmsg_verdict_put);
-
--void nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark)
-+void __EXPORTED nfq_nlmsg_verdict_put_mark(struct nlmsghdr *nlh, uint32_t mark)
- {
- mnl_attr_put_u32(nlh, NFQA_MARK, htonl(mark));
- }
--EXPORT_SYMBOL(nfq_nlmsg_verdict_put_mark);
-
--void
-+void __EXPORTED
- nfq_nlmsg_verdict_put_pkt(struct nlmsghdr *nlh, const void *pkt, uint32_t plen)
- {
- mnl_attr_put(nlh, NFQA_PAYLOAD, plen, pkt);
- }
--EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt);
-
- /**
- * @}
-@@ -85,7 +82,7 @@ EXPORT_SYMBOL(nfq_nlmsg_verdict_put_pkt);
- * given protocol family. Both commands are ignored by Linux kernel 3.8 and
- * later versions.
- */
--void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd)
-+void __EXPORTED nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd)
- {
- struct nfqnl_msg_config_cmd command = {
- .command = cmd,
-@@ -93,9 +90,8 @@ void nfq_nlmsg_cfg_put_cmd(struct nlmsghdr *nlh, uint16_t pf, uint8_t cmd)
- };
- mnl_attr_put(nlh, NFQA_CFG_CMD, sizeof(command), &command);
- }
--EXPORT_SYMBOL(nfq_nlmsg_cfg_put_cmd);
-
--void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range)
-+void __EXPORTED nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range)
- {
- struct nfqnl_msg_config_params params = {
- .copy_range = htonl(range),
-@@ -103,13 +99,11 @@ void nfq_nlmsg_cfg_put_params(struct nlmsghdr *nlh, uint8_t mode, int range)
- };
- mnl_attr_put(nlh, NFQA_CFG_PARAMS, sizeof(params), &params);
- }
--EXPORT_SYMBOL(nfq_nlmsg_cfg_put_params);
-
--void nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen)
-+void __EXPORTED nfq_nlmsg_cfg_put_qmaxlen(struct nlmsghdr *nlh, uint32_t queue_maxlen)
- {
- mnl_attr_put_u32(nlh, NFQA_CFG_QUEUE_MAXLEN, htonl(queue_maxlen));
- }
--EXPORT_SYMBOL(nfq_nlmsg_cfg_put_qmaxlen);
-
- /**
- * @}
-@@ -179,12 +173,11 @@ static int nfq_pkt_parse_attr_cb(const struct nlattr *attr, void *data)
- * This function returns MNL_CB_ERROR if any error occurs, or MNL_CB_OK on
- * success.
- */
--int nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr)
-+int __EXPORTED nfq_nlmsg_parse(const struct nlmsghdr *nlh, struct nlattr **attr)
- {
- return mnl_attr_parse(nlh, sizeof(struct nfgenmsg),
- nfq_pkt_parse_attr_cb, attr);
- }
--EXPORT_SYMBOL(nfq_nlmsg_parse);
-
- /**
- * @}
---
-2.12.2
-
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-acct_1.0.3.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb
index 974035ccc7..d92c676fa9 100644
--- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb
+++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-acct_1.0.3.bb
@@ -2,7 +2,7 @@ SUMMARY = "libnetfilter_acct accounting infrastructure."
DESCRIPTION = "libnetfilter_acct is the userspace library providing interface to extended accounting infrastructure."
HOMEPAGE = "http://netfilter.org/projects/libnetfilter_acct/index.html"
SECTION = "libs"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
DEPENDS = "libnfnetlink libmnl"
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb
deleted file mode 100644
index e4e186bdbb..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.6.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Netfilter connection tracking library"
-DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter connection tracking state table"
-HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_conntrack/index.html"
-SECTION = "libs"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-DEPENDS = "libnfnetlink libmnl"
-
-SRC_URI = "http://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2;name=tar \
-"
-SRC_URI[tar.md5sum] = "7139c5f408dd9606ffecfd5dcda8175b"
-SRC_URI[tar.sha256sum] = "efcc08021284e75f4d96d3581c5155a11f08fd63316b1938cbcb269c87f37feb"
-
-S = "${WORKDIR}/libnetfilter_conntrack-${PV}"
-
-inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.9.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.9.bb
new file mode 100644
index 0000000000..abec84b256
--- /dev/null
+++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-conntrack_1.0.9.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Netfilter connection tracking library"
+DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter connection tracking state table"
+HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_conntrack/index.html"
+SECTION = "libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+DEPENDS = "libnfnetlink libmnl"
+
+SRC_URI = "https://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-${PV}.tar.bz2 \
+ file://0001-conntrack-fix-build-with-kernel-5.15-and-musl.patch \
+ "
+
+SRC_URI[md5sum] = "596c722733cdf30f24d4418f34f999d9"
+SRC_URI[sha256sum] = "67bd9df49fe34e8b82144f6dfb93b320f384a8ea59727e92ff8d18b5f4b579a8"
+
+S = "${WORKDIR}/libnetfilter_conntrack-${PV}"
+
+inherit autotools pkgconfig
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 92cb23d6e9..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 = "GPLv2+"
-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 ff32f3409d..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 = "GPLv2+"
-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-log_1.0.1.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb
deleted file mode 100644
index 2f627d458e..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Netfilter logging library"
-DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter log message (NFLOG)"
-HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_log/index.html"
-SECTION = "libs"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-DEPENDS = "libnfnetlink libmnl"
-SRCREV = "ba196a97e810746e5660fe3f57c87c0ed0f2b324"
-PV .= "+git${SRCPV}"
-
-SRC_URI = "git://git.netfilter.org/libnetfilter_log"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.2.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.2.bb
new file mode 100644
index 0000000000..699b096ae8
--- /dev/null
+++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-log_1.0.2.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Netfilter logging library"
+DESCRIPTION = "Userspace library providing a programming interface (API) to the Linux kernel netfilter log message (NFLOG)"
+HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_log/index.html"
+SECTION = "libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+DEPENDS = "libnfnetlink libmnl"
+SRCREV = "b0e4be94c0b8f68d4e912402b93a130063c34e17"
+
+SRC_URI = "git://git.netfilter.org/libnetfilter_log;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb b/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb
deleted file mode 100644
index 754e11d999..0000000000
--- a/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Netfilter packet queue access library"
-DESCRIPTION = "Userspace library providing a programming interface (API) to access the Linux kernel netfilter packet queue"
-HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_queue/index.html"
-SECTION = "libs"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-DEPENDS = "libnfnetlink libmnl"
-
-PV .= "+git${SRCREV}"
-SRCREV = "981025e103d887fb6a9c9bb49c74ec323108d098"
-
-SRC_URI = "git://git.netfilter.org/libnetfilter_queue \
- file://0001-Correct-typo-in-the-location-of-internal.h-in-includ.patch \
- file://0001-libnetfilter-queue-Declare-the-define-visivility-attribute-together.patch \
- "
-
-S = "${WORKDIR}/git"
-
-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
new file mode 100644
index 0000000000..301dd86cf3
--- /dev/null
+++ b/meta-networking/recipes-filter/libnetfilter/libnetfilter-queue_1.0.5.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Netfilter packet queue access library"
+DESCRIPTION = "Userspace library providing a programming interface (API) to access the Linux kernel netfilter packet queue"
+HOMEPAGE = "http://www.netfilter.org/projects/libnetfilter_queue/index.html"
+SECTION = "libs"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+DEPENDS = "libnfnetlink libmnl"
+
+SRCREV = "2ff321690b8dafeca99ee8e9cafac71e36f292b9"
+
+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 f7951ff8dd..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 = "GPLv2+"
-
-
-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-Declare-the-define-visivility-attribute-together.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch
deleted file mode 100644
index e82b23813f..0000000000
--- a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-Declare-the-define-visivility-attribute-together.patch
+++ /dev/null
@@ -1,2949 +0,0 @@
-From bd01f785da5222d0662be3182fe2650e1c12f43e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 10 Apr 2017 14:07:07 -0700
-Subject: [PATCH] Declare the define visivility attribute together
-
-clang ignores the visibility attribute if its not
-defined before the definition. As a result these
-symbols become hidden and consumers of this library
-fail to link due to these missing symbols
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doxygen.cfg.in | 2 +-
- include/utils.h | 5 +--
- src/batch.c | 21 ++++-------
- src/chain.c | 102 +++++++++++++++++---------------------------------
- src/common.c | 21 ++++-------
- src/expr.c | 51 +++++++++----------------
- src/gen.c | 39 +++++++------------
- src/object.c | 99 ++++++++++++++++--------------------------------
- src/rule.c | 114 +++++++++++++++++++-------------------------------------
- src/ruleset.c | 48 ++++++++----------------
- src/set.c | 96 ++++++++++++++++-------------------------------
- src/set_elem.c | 72 ++++++++++++-----------------------
- src/table.c | 90 +++++++++++++++-----------------------------
- src/trace.c | 27 +++++---------
- src/udata.c | 48 ++++++++----------------
- 15 files changed, 279 insertions(+), 556 deletions(-)
-
-diff --git a/doxygen.cfg.in b/doxygen.cfg.in
-index 23fcad4..e49f28d 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
-+EXCLUDE_SYMBOLS =
- EXAMPLE_PATH =
- EXAMPLE_PATTERNS =
- EXAMPLE_RECURSIVE = NO
-diff --git a/include/utils.h b/include/utils.h
-index 2f5cf34..ff8207e 100644
---- a/include/utils.h
-+++ b/include/utils.h
-@@ -9,10 +9,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 __EXPORT
- #endif
-
- #define __noreturn __attribute__((__noreturn__))
-diff --git a/src/batch.c b/src/batch.c
-index 5ee3fd7..3bedd26 100644
---- a/src/batch.c
-+++ b/src/batch.c
-@@ -57,7 +57,7 @@ static void nftnl_batch_add_page(struct nftnl_batch_page *page,
- list_add_tail(&page->head, &batch->page_list);
- }
-
--struct nftnl_batch *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size)
-+struct nftnl_batch __EXPORTED *nftnl_batch_alloc(uint32_t pg_size, uint32_t pg_overrun_size)
- {
- struct nftnl_batch *batch;
- struct nftnl_batch_page *page;
-@@ -80,9 +80,8 @@ err1:
- free(batch);
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_batch_alloc);
-
--void nftnl_batch_free(struct nftnl_batch *batch)
-+void __EXPORTED nftnl_batch_free(struct nftnl_batch *batch)
- {
- struct nftnl_batch_page *page, *next;
-
-@@ -94,9 +93,8 @@ void nftnl_batch_free(struct nftnl_batch *batch)
-
- free(batch);
- }
--EXPORT_SYMBOL(nftnl_batch_free);
-
--int nftnl_batch_update(struct nftnl_batch *batch)
-+int __EXPORTED nftnl_batch_update(struct nftnl_batch *batch)
- {
- struct nftnl_batch_page *page;
- struct nlmsghdr *last_nlh;
-@@ -119,21 +117,18 @@ int nftnl_batch_update(struct nftnl_batch *batch)
- err1:
- return -1;
- }
--EXPORT_SYMBOL(nftnl_batch_update);
-
--void *nftnl_batch_buffer(struct nftnl_batch *batch)
-+void __EXPORTED *nftnl_batch_buffer(struct nftnl_batch *batch)
- {
- return mnl_nlmsg_batch_current(batch->current_page->batch);
- }
--EXPORT_SYMBOL(nftnl_batch_buffer);
-
--uint32_t nftnl_batch_buffer_len(struct nftnl_batch *batch)
-+uint32_t __EXPORTED nftnl_batch_buffer_len(struct nftnl_batch *batch)
- {
- return mnl_nlmsg_batch_size(batch->current_page->batch);
- }
--EXPORT_SYMBOL(nftnl_batch_buffer_len);
-
--int nftnl_batch_iovec_len(struct nftnl_batch *batch)
-+int __EXPORTED nftnl_batch_iovec_len(struct nftnl_batch *batch)
- {
- int num_pages = batch->num_pages;
-
-@@ -143,9 +138,8 @@ int nftnl_batch_iovec_len(struct nftnl_batch *batch)
-
- return num_pages;
- }
--EXPORT_SYMBOL(nftnl_batch_iovec_len);
-
--void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
-+void __EXPORTED nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
- uint32_t iovlen)
- {
- struct nftnl_batch_page *page;
-@@ -160,4 +154,3 @@ void nftnl_batch_iovec(struct nftnl_batch *batch, struct iovec *iov,
- i++;
- }
- }
--EXPORT_SYMBOL(nftnl_batch_iovec);
-diff --git a/src/chain.c b/src/chain.c
-index 29860c5..362fa0d 100644
---- a/src/chain.c
-+++ b/src/chain.c
-@@ -87,13 +87,12 @@ static const char *nftnl_hooknum2str(int family, int hooknum)
- return "unknown";
- }
-
--struct nftnl_chain *nftnl_chain_alloc(void)
-+struct nftnl_chain __EXPORTED *nftnl_chain_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_chain));
- }
--EXPORT_SYMBOL(nftnl_chain_alloc);
-
--void nftnl_chain_free(const struct nftnl_chain *c)
-+void __EXPORTED nftnl_chain_free(const struct nftnl_chain *c)
- {
- if (c->flags & (1 << NFTNL_CHAIN_NAME))
- xfree(c->name);
-@@ -105,15 +104,13 @@ void nftnl_chain_free(const struct nftnl_chain *c)
- xfree(c->dev);
- xfree(c);
- }
--EXPORT_SYMBOL(nftnl_chain_free);
-
--bool nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr)
-+bool __EXPORTED nftnl_chain_is_set(const struct nftnl_chain *c, uint16_t attr)
- {
- return c->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_chain_is_set);
-
--void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
-+void __EXPORTED nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
- {
- if (!(c->flags & (1 << attr)))
- return;
-@@ -147,7 +144,6 @@ void nftnl_chain_unset(struct nftnl_chain *c, uint16_t attr)
-
- c->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_chain_unset);
-
- static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = {
- [NFTNL_CHAIN_HOOKNUM] = sizeof(uint32_t),
-@@ -159,7 +155,7 @@ static uint32_t nftnl_chain_validate[NFTNL_CHAIN_MAX + 1] = {
- [NFTNL_CHAIN_FAMILY] = sizeof(uint32_t),
- };
-
--int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr,
-+int __EXPORTED nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_CHAIN_MAX);
-@@ -226,45 +222,38 @@ int nftnl_chain_set_data(struct nftnl_chain *c, uint16_t attr,
- c->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_chain_set_data);
-
--void nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data)
-+void __EXPORTED nftnl_chain_set(struct nftnl_chain *c, uint16_t attr, const void *data)
- {
- nftnl_chain_set_data(c, attr, data, nftnl_chain_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_chain_set);
-
--void nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data)
-+void __EXPORTED nftnl_chain_set_u32(struct nftnl_chain *c, uint16_t attr, uint32_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_u32);
-
--void nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data)
-+void __EXPORTED nftnl_chain_set_s32(struct nftnl_chain *c, uint16_t attr, int32_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(int32_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_s32);
-
--void nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data)
-+void __EXPORTED nftnl_chain_set_u64(struct nftnl_chain *c, uint16_t attr, uint64_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_u64);
-
--void nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data)
-+void __EXPORTED nftnl_chain_set_u8(struct nftnl_chain *c, uint16_t attr, uint8_t data)
- {
- nftnl_chain_set_data(c, attr, &data, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_chain_set_u8);
-
--int nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_chain_set_str(struct nftnl_chain *c, uint16_t attr, const char *str)
- {
- return nftnl_chain_set_data(c, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_chain_set_str);
-
--const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
-+const void __EXPORTED *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(c->flags & (1 << attr)))
-@@ -310,22 +299,19 @@ const void *nftnl_chain_get_data(const struct nftnl_chain *c, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_chain_get_data);
-
--const void *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr)
-+const void __EXPORTED *nftnl_chain_get(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_chain_get_data(c, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_chain_get);
-
--const char *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr)
-+const char __EXPORTED *nftnl_chain_get_str(const struct nftnl_chain *c, uint16_t attr)
- {
- return nftnl_chain_get(c, attr);
- }
--EXPORT_SYMBOL(nftnl_chain_get_str);
-
--uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
-+uint32_t __EXPORTED nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const uint32_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -334,9 +320,8 @@ uint32_t nftnl_chain_get_u32(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_u32);
-
--int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
-+int32_t __EXPORTED nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const int32_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -345,9 +330,8 @@ int32_t nftnl_chain_get_s32(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_s32);
-
--uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
-+uint64_t __EXPORTED nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const uint64_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -356,9 +340,8 @@ uint64_t nftnl_chain_get_u64(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_u64);
-
--uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
-+uint8_t __EXPORTED nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
- {
- uint32_t data_len;
- const uint8_t *val = nftnl_chain_get_data(c, attr, &data_len);
-@@ -367,9 +350,8 @@ uint8_t nftnl_chain_get_u8(const struct nftnl_chain *c, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_chain_get_u8);
-
--void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c)
-+void __EXPORTED nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_chain *c)
- {
- if (c->flags & (1 << NFTNL_CHAIN_TABLE))
- mnl_attr_put_strz(nlh, NFTA_CHAIN_TABLE, c->table);
-@@ -404,7 +386,6 @@ void nftnl_chain_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_ch
- if (c->flags & (1 << NFTNL_CHAIN_TYPE))
- mnl_attr_put_strz(nlh, NFTA_CHAIN_TYPE, c->type);
- }
--EXPORT_SYMBOL(nftnl_chain_nlmsg_build_payload);
-
- static int nftnl_chain_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -529,7 +510,7 @@ static int nftnl_chain_parse_hook(struct nlattr *attr, struct nftnl_chain *c)
- return 0;
- }
-
--int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c)
-+int __EXPORTED nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c)
- {
- struct nlattr *tb[NFTA_CHAIN_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -590,7 +571,6 @@ int nftnl_chain_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_chain *c)
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_chain_nlmsg_parse);
-
- static inline int nftnl_str2hooknum(int family, const char *hook)
- {
-@@ -732,19 +712,17 @@ static int nftnl_chain_do_parse(struct nftnl_chain *c, enum nftnl_parse_type typ
- return ret;
- }
-
--int nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_chain_parse(struct nftnl_chain *c, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_chain_do_parse(c, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_chain_parse);
-
--int nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_chain_parse_file(struct nftnl_chain *c, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_chain_do_parse(c, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_chain_parse_file);
-
- static int nftnl_chain_export(char *buf, size_t size,
- const struct nftnl_chain *c, int type)
-@@ -841,13 +819,12 @@ static int nftnl_chain_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c,
-+int __EXPORTED nftnl_chain_snprintf(char *buf, size_t size, const struct nftnl_chain *c,
- uint32_t type, uint32_t flags)
- {
- return nftnl_chain_cmd_snprintf(buf, size, c, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_chain_snprintf);
-
- static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -855,19 +832,18 @@ static int nftnl_chain_do_snprintf(char *buf, size_t size, const void *c,
- return nftnl_chain_snprintf(buf, size, c, type, flags);
- }
-
--int nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type,
-+int __EXPORTED nftnl_chain_fprintf(FILE *fp, const struct nftnl_chain *c, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, c, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_chain_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_chain_fprintf);
-
- struct nftnl_chain_list {
- struct list_head list;
- };
-
--struct nftnl_chain_list *nftnl_chain_list_alloc(void)
-+struct nftnl_chain_list __EXPORTED *nftnl_chain_list_alloc(void)
- {
- struct nftnl_chain_list *list;
-
-@@ -879,9 +855,8 @@ struct nftnl_chain_list *nftnl_chain_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_chain_list_alloc);
-
--void nftnl_chain_list_free(struct nftnl_chain_list *list)
-+void __EXPORTED nftnl_chain_list_free(struct nftnl_chain_list *list)
- {
- struct nftnl_chain *r, *tmp;
-
-@@ -891,33 +866,28 @@ void nftnl_chain_list_free(struct nftnl_chain_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_free);
-
--int nftnl_chain_list_is_empty(const struct nftnl_chain_list *list)
-+int __EXPORTED nftnl_chain_list_is_empty(const struct nftnl_chain_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_is_empty);
-
--void nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list)
-+void __EXPORTED nftnl_chain_list_add(struct nftnl_chain *r, struct nftnl_chain_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_add);
-
--void nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list)
-+void __EXPORTED nftnl_chain_list_add_tail(struct nftnl_chain *r, struct nftnl_chain_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_chain_list_add_tail);
-
--void nftnl_chain_list_del(struct nftnl_chain *r)
-+void __EXPORTED nftnl_chain_list_del(struct nftnl_chain *r)
- {
- list_del(&r->head);
- }
--EXPORT_SYMBOL(nftnl_chain_list_del);
-
--int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
-+int __EXPORTED nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
- int (*cb)(struct nftnl_chain *r, void *data),
- void *data)
- {
-@@ -931,14 +901,13 @@ int nftnl_chain_list_foreach(struct nftnl_chain_list *chain_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_chain_list_foreach);
-
- struct nftnl_chain_list_iter {
- const struct nftnl_chain_list *list;
- struct nftnl_chain *cur;
- };
-
--struct nftnl_chain_list_iter *
-+struct nftnl_chain_list_iter __EXPORTED *
- nftnl_chain_list_iter_create(const struct nftnl_chain_list *l)
- {
- struct nftnl_chain_list_iter *iter;
-@@ -955,9 +924,8 @@ nftnl_chain_list_iter_create(const struct nftnl_chain_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_chain_list_iter_create);
-
--struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter)
-+struct nftnl_chain __EXPORTED *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *iter)
- {
- struct nftnl_chain *r = iter->cur;
-
-@@ -971,10 +939,8 @@ struct nftnl_chain *nftnl_chain_list_iter_next(struct nftnl_chain_list_iter *ite
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_chain_list_iter_next);
-
--void nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter)
-+void __EXPORTED nftnl_chain_list_iter_destroy(struct nftnl_chain_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_chain_list_iter_destroy);
-diff --git a/src/common.c b/src/common.c
-index a95883c..68bce2e 100644
---- a/src/common.c
-+++ b/src/common.c
-@@ -43,15 +43,14 @@ static struct nlmsghdr *__nftnl_nlmsg_build_hdr(char *buf, uint16_t type,
- return nlh;
- }
-
--struct nlmsghdr *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family,
-+struct nlmsghdr __EXPORTED *nftnl_nlmsg_build_hdr(char *buf, uint16_t type, uint16_t family,
- uint16_t flags, uint32_t seq)
- {
- return __nftnl_nlmsg_build_hdr(buf, (NFNL_SUBSYS_NFTABLES << 8) | type,
- family, flags, seq, 0);
- }
--EXPORT_SYMBOL(nftnl_nlmsg_build_hdr);
-
--struct nftnl_parse_err *nftnl_parse_err_alloc(void)
-+struct nftnl_parse_err __EXPORTED *nftnl_parse_err_alloc(void)
- {
- struct nftnl_parse_err *err;
-
-@@ -63,15 +62,13 @@ struct nftnl_parse_err *nftnl_parse_err_alloc(void)
-
- return err;
- }
--EXPORT_SYMBOL(nftnl_parse_err_alloc);
-
--void nftnl_parse_err_free(struct nftnl_parse_err *err)
-+void __EXPORTED nftnl_parse_err_free(struct nftnl_parse_err *err)
- {
- xfree(err);
- }
--EXPORT_SYMBOL(nftnl_parse_err_free);
-
--int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
-+int __EXPORTED nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
- {
- switch (err->error) {
- case NFTNL_PARSE_EBADINPUT:
-@@ -89,7 +86,6 @@ int nftnl_parse_perror(const char *msg, struct nftnl_parse_err *err)
- return fprintf(stderr, "%s: Undefined error\n", msg);
- }
- }
--EXPORT_SYMBOL(nftnl_parse_perror);
-
- int nftnl_cmd_header_snprintf(char *buf, size_t size, uint32_t cmd, uint32_t type,
- uint32_t flags)
-@@ -165,21 +161,19 @@ int nftnl_cmd_footer_fprintf(FILE *fp, uint32_t cmd, uint32_t type,
- nftnl_cmd_footer_fprintf_cb);
- }
-
--struct nlmsghdr *nftnl_batch_begin(char *buf, uint32_t seq)
-+struct nlmsghdr __EXPORTED *nftnl_batch_begin(char *buf, uint32_t seq)
- {
- return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_BEGIN, AF_UNSPEC,
- 0, seq, NFNL_SUBSYS_NFTABLES);
- }
--EXPORT_SYMBOL(nftnl_batch_begin);
-
--struct nlmsghdr *nftnl_batch_end(char *buf, uint32_t seq)
-+struct nlmsghdr __EXPORTED *nftnl_batch_end(char *buf, uint32_t seq)
- {
- return __nftnl_nlmsg_build_hdr(buf, NFNL_MSG_BATCH_END, AF_UNSPEC,
- 0, seq, NFNL_SUBSYS_NFTABLES);
- }
--EXPORT_SYMBOL(nftnl_batch_end);
-
--int nftnl_batch_is_supported(void)
-+int __EXPORTED nftnl_batch_is_supported(void)
- {
- struct mnl_socket *nl;
- struct mnl_nlmsg_batch *b;
-@@ -236,4 +230,3 @@ err:
- mnl_nlmsg_batch_stop(b);
- return -1;
- }
--EXPORT_SYMBOL(nftnl_batch_is_supported);
-diff --git a/src/expr.c b/src/expr.c
-index 10ba2c4..c7eb2b4 100644
---- a/src/expr.c
-+++ b/src/expr.c
-@@ -24,7 +24,7 @@
-
- #include <libnftnl/expr.h>
-
--struct nftnl_expr *nftnl_expr_alloc(const char *name)
-+struct nftnl_expr __EXPORTED *nftnl_expr_alloc(const char *name)
- {
- struct nftnl_expr *expr;
- struct expr_ops *ops;
-@@ -43,24 +43,21 @@ struct nftnl_expr *nftnl_expr_alloc(const char *name)
-
- return expr;
- }
--EXPORT_SYMBOL(nftnl_expr_alloc);
-
--void nftnl_expr_free(const struct nftnl_expr *expr)
-+void __EXPORTED nftnl_expr_free(const struct nftnl_expr *expr)
- {
- if (expr->ops->free)
- expr->ops->free(expr);
-
- xfree(expr);
- }
--EXPORT_SYMBOL(nftnl_expr_free);
-
--bool nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type)
-+bool __EXPORTED nftnl_expr_is_set(const struct nftnl_expr *expr, uint16_t type)
- {
- return expr->flags & (1 << type);
- }
--EXPORT_SYMBOL(nftnl_expr_is_set);
-
--int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
-+int __EXPORTED nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
- const void *data, uint32_t data_len)
- {
- switch(type) {
-@@ -73,43 +70,37 @@ int nftnl_expr_set(struct nftnl_expr *expr, uint16_t type,
- expr->flags |= (1 << type);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_expr_set);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u8(struct nftnl_expr *expr, uint16_t type, uint8_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u8);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u16(struct nftnl_expr *expr, uint16_t type, uint16_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint16_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u16);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u32(struct nftnl_expr *expr, uint16_t type, uint32_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u32);
-
--void
-+void __EXPORTED
- nftnl_expr_set_u64(struct nftnl_expr *expr, uint16_t type, uint64_t data)
- {
- nftnl_expr_set(expr, type, &data, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_expr_set_u64);
-
--int nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str)
-+int __EXPORTED nftnl_expr_set_str(struct nftnl_expr *expr, uint16_t type, const char *str)
- {
- return nftnl_expr_set(expr, type, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_expr_set_str);
-
--const void *nftnl_expr_get(const struct nftnl_expr *expr,
-+const void __EXPORTED *nftnl_expr_get(const struct nftnl_expr *expr,
- uint16_t type, uint32_t *data_len)
- {
- const void *ret;
-@@ -129,9 +120,8 @@ const void *nftnl_expr_get(const struct nftnl_expr *expr,
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_expr_get);
-
--uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
-+uint8_t __EXPORTED nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -145,9 +135,8 @@ uint8_t nftnl_expr_get_u8(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint8_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u8);
-
--uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
-+uint16_t __EXPORTED nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -161,9 +150,8 @@ uint16_t nftnl_expr_get_u16(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint16_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u16);
-
--uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
-+uint32_t __EXPORTED nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -177,9 +165,8 @@ uint32_t nftnl_expr_get_u32(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint32_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u32);
-
--uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
-+uint64_t __EXPORTED nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
- {
- const void *data;
- uint32_t data_len;
-@@ -193,17 +180,15 @@ uint64_t nftnl_expr_get_u64(const struct nftnl_expr *expr, uint16_t type)
-
- return *((uint64_t *)data);
- }
--EXPORT_SYMBOL(nftnl_expr_get_u64);
-
--const char *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type)
-+const char __EXPORTED *nftnl_expr_get_str(const struct nftnl_expr *expr, uint16_t type)
- {
- uint32_t data_len;
-
- return (const char *)nftnl_expr_get(expr, type, &data_len);
- }
--EXPORT_SYMBOL(nftnl_expr_get_str);
-
--bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2)
-+bool __EXPORTED nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2)
- {
- if (e1->flags != e2->flags ||
- strcmp(e1->ops->name, e2->ops->name) != 0)
-@@ -211,7 +196,6 @@ bool nftnl_expr_cmp(const struct nftnl_expr *e1, const struct nftnl_expr *e2)
-
- return e1->ops->cmp(e1, e2);
- }
--EXPORT_SYMBOL(nftnl_expr_cmp);
-
- void nftnl_expr_build_payload(struct nlmsghdr *nlh, struct nftnl_expr *expr)
- {
-@@ -275,7 +259,7 @@ err1:
- return NULL;
- }
-
--int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
-+int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
- uint32_t type, uint32_t flags)
- {
- int ret;
-@@ -289,4 +273,3 @@ int nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_expr *expr,
-
- return offset;
- }
--EXPORT_SYMBOL(nftnl_expr_snprintf);
-diff --git a/src/gen.c b/src/gen.c
-index 213562e..8b45caa 100644
---- a/src/gen.c
-+++ b/src/gen.c
-@@ -29,25 +29,22 @@ struct nftnl_gen {
- uint32_t flags;
- };
-
--struct nftnl_gen *nftnl_gen_alloc(void)
-+struct nftnl_gen __EXPORTED *nftnl_gen_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_gen));
- }
--EXPORT_SYMBOL(nftnl_gen_alloc);
-
--void nftnl_gen_free(const struct nftnl_gen *gen)
-+void __EXPORTED nftnl_gen_free(const struct nftnl_gen *gen)
- {
- xfree(gen);
- }
--EXPORT_SYMBOL(nftnl_gen_free);
-
--bool nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr)
-+bool __EXPORTED nftnl_gen_is_set(const struct nftnl_gen *gen, uint16_t attr)
- {
- return gen->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_gen_is_set);
-
--void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
-+void __EXPORTED nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
- {
- if (!(gen->flags & (1 << attr)))
- return;
-@@ -58,13 +55,12 @@ void nftnl_gen_unset(struct nftnl_gen *gen, uint16_t attr)
- }
- gen->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_gen_unset);
-
- static uint32_t nftnl_gen_validate[NFTNL_GEN_MAX + 1] = {
- [NFTNL_GEN_ID] = sizeof(uint32_t),
- };
-
--int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr,
-+int __EXPORTED nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_GEN_MAX);
-@@ -78,21 +74,18 @@ int nftnl_gen_set_data(struct nftnl_gen *gen, uint16_t attr,
- gen->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_gen_set_data);
-
--int nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data)
-+int __EXPORTED nftnl_gen_set(struct nftnl_gen *gen, uint16_t attr, const void *data)
- {
- return nftnl_gen_set_data(gen, attr, data, nftnl_gen_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_gen_set);
-
--void nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_gen_set_u32(struct nftnl_gen *gen, uint16_t attr, uint32_t val)
- {
- nftnl_gen_set_data(gen, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_gen_set_u32);
-
--const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
-+const void __EXPORTED *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(gen->flags & (1 << attr)))
-@@ -105,21 +98,18 @@ const void *nftnl_gen_get_data(const struct nftnl_gen *gen, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_gen_get_data);
-
--const void *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr)
-+const void __EXPORTED *nftnl_gen_get(const struct nftnl_gen *gen, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_gen_get_data(gen, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_gen_get);
-
--uint32_t nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr)
-+uint32_t __EXPORTED nftnl_gen_get_u32(const struct nftnl_gen *gen, uint16_t attr)
- {
- const void *ret = nftnl_gen_get(gen, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_gen_get_u32);
-
- static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -140,7 +130,7 @@ static int nftnl_gen_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen)
-+int __EXPORTED nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen)
- {
- struct nlattr *tb[NFTA_GEN_MAX + 1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -154,7 +144,6 @@ int nftnl_gen_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_gen *gen)
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_gen_nlmsg_parse);
-
- static int nftnl_gen_snprintf_default(char *buf, size_t size,
- const struct nftnl_gen *gen)
-@@ -186,13 +175,12 @@ static int nftnl_gen_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen,
-+int __EXPORTED nftnl_gen_snprintf(char *buf, size_t size, const struct nftnl_gen *gen,
- uint32_t type, uint32_t flags)
- {;
- return nftnl_gen_cmd_snprintf(buf, size, gen, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_gen_snprintf);
-
- static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -200,10 +188,9 @@ static int nftnl_gen_do_snprintf(char *buf, size_t size, const void *gen,
- return nftnl_gen_snprintf(buf, size, gen, type, flags);
- }
-
--int nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type,
-+int __EXPORTED nftnl_gen_fprintf(FILE *fp, const struct nftnl_gen *gen, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, gen, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_gen_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_gen_fprintf);
-diff --git a/src/object.c b/src/object.c
-index e1a5ac4..d409c6d 100644
---- a/src/object.c
-+++ b/src/object.c
-@@ -39,13 +39,12 @@ static struct obj_ops *nftnl_obj_ops_lookup(uint32_t type)
- return obj_ops[type];
- }
-
--struct nftnl_obj *nftnl_obj_alloc(void)
-+struct nftnl_obj __EXPORTED *nftnl_obj_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_obj));
- }
--EXPORT_SYMBOL(nftnl_obj_alloc);
-
--void nftnl_obj_free(const struct nftnl_obj *obj)
-+void __EXPORTED nftnl_obj_free(const struct nftnl_obj *obj)
- {
- if (obj->flags & (1 << NFTNL_OBJ_TABLE))
- xfree(obj->table);
-@@ -54,20 +53,18 @@ void nftnl_obj_free(const struct nftnl_obj *obj)
-
- xfree(obj);
- }
--EXPORT_SYMBOL(nftnl_obj_free);
-
--bool nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr)
-+bool __EXPORTED nftnl_obj_is_set(const struct nftnl_obj *obj, uint16_t attr)
- {
- return obj->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_obj_is_set);
-
- static uint32_t nftnl_obj_validate[NFTNL_OBJ_MAX + 1] = {
- [NFTNL_OBJ_FAMILY] = sizeof(uint32_t),
- [NFTNL_OBJ_USE] = sizeof(uint32_t),
- };
-
--void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr,
-+void __EXPORTED nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- if (attr < NFTNL_OBJ_MAX)
-@@ -100,45 +97,38 @@ void nftnl_obj_set_data(struct nftnl_obj *obj, uint16_t attr,
- }
- obj->flags |= (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_obj_set_data);
-
--void nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data)
-+void __EXPORTED nftnl_obj_set(struct nftnl_obj *obj, uint16_t attr, const void *data)
- {
- nftnl_obj_set_data(obj, attr, data, nftnl_obj_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_obj_set);
-
--void nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val)
-+void __EXPORTED nftnl_obj_set_u8(struct nftnl_obj *obj, uint16_t attr, uint8_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u8);
-
--void nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val)
-+void __EXPORTED nftnl_obj_set_u16(struct nftnl_obj *obj, uint16_t attr, uint16_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint16_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u16);
-
--void nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_obj_set_u32(struct nftnl_obj *obj, uint16_t attr, uint32_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u32);
-
--void nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_obj_set_u64(struct nftnl_obj *obj, uint16_t attr, uint64_t val)
- {
- nftnl_obj_set_data(obj, attr, &val, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_obj_set_u64);
-
--void nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str)
-+void __EXPORTED nftnl_obj_set_str(struct nftnl_obj *obj, uint16_t attr, const char *str)
- {
- nftnl_obj_set_data(obj, attr, str, 0);
- }
--EXPORT_SYMBOL(nftnl_obj_set_str);
-
--const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr,
-+const void __EXPORTED *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(obj->flags & (1 << attr)))
-@@ -168,50 +158,43 @@ const void *nftnl_obj_get_data(struct nftnl_obj *obj, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_obj_get_data);
-
--const void *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr)
-+const void __EXPORTED *nftnl_obj_get(struct nftnl_obj *obj, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_obj_get_data(obj, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_obj_get);
-
--uint8_t nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr)
-+uint8_t __EXPORTED nftnl_obj_get_u8(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint8_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u8);
-
--uint16_t nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr)
-+uint16_t __EXPORTED nftnl_obj_get_u16(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint16_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u16);
-
--uint32_t nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr)
-+uint32_t __EXPORTED nftnl_obj_get_u32(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u32);
-
--uint64_t nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr)
-+uint64_t __EXPORTED nftnl_obj_get_u64(struct nftnl_obj *obj, uint16_t attr)
- {
- const void *ret = nftnl_obj_get(obj, attr);
- return ret == NULL ? 0 : *((uint64_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_obj_get_u64);
-
--const char *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr)
-+const char __EXPORTED *nftnl_obj_get_str(struct nftnl_obj *obj, uint16_t attr)
- {
- return nftnl_obj_get(obj, attr);
- }
--EXPORT_SYMBOL(nftnl_obj_get_str);
-
--void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh,
-+void __EXPORTED nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh,
- const struct nftnl_obj *obj)
- {
- if (obj->flags & (1 << NFTNL_OBJ_TABLE))
-@@ -228,7 +211,6 @@ void nftnl_obj_nlmsg_build_payload(struct nlmsghdr *nlh,
- mnl_attr_nest_end(nlh, nest);
- }
- }
--EXPORT_SYMBOL(nftnl_obj_nlmsg_build_payload);
-
- static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -258,7 +240,7 @@ static int nftnl_obj_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj)
-+int __EXPORTED nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj)
- {
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
- struct nlattr *tb[NFTA_OBJ_MAX + 1] = {};
-@@ -299,7 +281,6 @@ int nftnl_obj_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_obj *obj)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_obj_nlmsg_parse);
-
- #ifdef JSON_PARSING
- static int nftnl_jansson_parse_obj(struct nftnl_obj *t, json_t *tree,
-@@ -377,19 +358,17 @@ static int nftnl_obj_do_parse(struct nftnl_obj *obj, enum nftnl_parse_type type,
- return ret;
- }
-
--int nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_obj_parse(struct nftnl_obj *obj, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_obj_do_parse(obj, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_obj_parse);
-
--int nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_obj_parse_file(struct nftnl_obj *obj, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_obj_do_parse(obj, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_obj_parse_file);
-
- static int nftnl_obj_export(char *buf, size_t size,
- const struct nftnl_obj *obj,
-@@ -469,13 +448,12 @@ static int nftnl_obj_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj,
-+int __EXPORTED nftnl_obj_snprintf(char *buf, size_t size, const struct nftnl_obj *obj,
- uint32_t type, uint32_t flags)
- {
- return nftnl_obj_cmd_snprintf(buf, size, obj, nftnl_flag2cmd(flags),
- type, flags);
- }
--EXPORT_SYMBOL(nftnl_obj_snprintf);
-
- static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -483,19 +461,18 @@ static int nftnl_obj_do_snprintf(char *buf, size_t size, const void *obj,
- return nftnl_obj_snprintf(buf, size, obj, type, flags);
- }
-
--int nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type,
-+int __EXPORTED nftnl_obj_fprintf(FILE *fp, const struct nftnl_obj *obj, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, obj, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_obj_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_obj_fprintf);
-
- struct nftnl_obj_list {
- struct list_head list;
- };
-
--struct nftnl_obj_list *nftnl_obj_list_alloc(void)
-+struct nftnl_obj_list __EXPORTED *nftnl_obj_list_alloc(void)
- {
- struct nftnl_obj_list *list;
-
-@@ -507,9 +484,8 @@ struct nftnl_obj_list *nftnl_obj_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_obj_list_alloc);
-
--void nftnl_obj_list_free(struct nftnl_obj_list *list)
-+void __EXPORTED nftnl_obj_list_free(struct nftnl_obj_list *list)
- {
- struct nftnl_obj *r, *tmp;
-
-@@ -519,34 +495,29 @@ void nftnl_obj_list_free(struct nftnl_obj_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_free);
-
--int nftnl_obj_list_is_empty(struct nftnl_obj_list *list)
-+int __EXPORTED nftnl_obj_list_is_empty(struct nftnl_obj_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_is_empty);
-
--void nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list)
-+void __EXPORTED nftnl_obj_list_add(struct nftnl_obj *r, struct nftnl_obj_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_add);
-
--void nftnl_obj_list_add_tail(struct nftnl_obj *r,
-+void __EXPORTED nftnl_obj_list_add_tail(struct nftnl_obj *r,
- struct nftnl_obj_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_obj_list_add_tail);
-
--void nftnl_obj_list_del(struct nftnl_obj *t)
-+void __EXPORTED nftnl_obj_list_del(struct nftnl_obj *t)
- {
- list_del(&t->head);
- }
--EXPORT_SYMBOL(nftnl_obj_list_del);
-
--int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list,
-+int __EXPORTED nftnl_obj_list_foreach(struct nftnl_obj_list *table_list,
- int (*cb)(struct nftnl_obj *t, void *data),
- void *data)
- {
-@@ -560,14 +531,13 @@ int nftnl_obj_list_foreach(struct nftnl_obj_list *table_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_obj_list_foreach);
-
- struct nftnl_obj_list_iter {
- struct nftnl_obj_list *list;
- struct nftnl_obj *cur;
- };
-
--struct nftnl_obj_list_iter *
-+struct nftnl_obj_list_iter __EXPORTED *
- nftnl_obj_list_iter_create(struct nftnl_obj_list *l)
- {
- struct nftnl_obj_list_iter *iter;
-@@ -584,9 +554,8 @@ nftnl_obj_list_iter_create(struct nftnl_obj_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_obj_list_iter_create);
-
--struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter)
-+struct nftnl_obj __EXPORTED *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter)
- {
- struct nftnl_obj *r = iter->cur;
-
-@@ -600,10 +569,8 @@ struct nftnl_obj *nftnl_obj_list_iter_next(struct nftnl_obj_list_iter *iter)
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_obj_list_iter_next);
-
--void nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter)
-+void __EXPORTED nftnl_obj_list_iter_destroy(struct nftnl_obj_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_obj_list_iter_destroy);
-diff --git a/src/rule.c b/src/rule.c
-index 6c22141..ad8609f 100644
---- a/src/rule.c
-+++ b/src/rule.c
-@@ -52,7 +52,7 @@ struct nftnl_rule {
- struct list_head expr_list;
- };
-
--struct nftnl_rule *nftnl_rule_alloc(void)
-+struct nftnl_rule __EXPORTED *nftnl_rule_alloc(void)
- {
- struct nftnl_rule *r;
-
-@@ -64,9 +64,8 @@ struct nftnl_rule *nftnl_rule_alloc(void)
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_rule_alloc);
-
--void nftnl_rule_free(const struct nftnl_rule *r)
-+void __EXPORTED nftnl_rule_free(const struct nftnl_rule *r)
- {
- struct nftnl_expr *e, *tmp;
-
-@@ -82,15 +81,13 @@ void nftnl_rule_free(const struct nftnl_rule *r)
-
- xfree(r);
- }
--EXPORT_SYMBOL(nftnl_rule_free);
-
--bool nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr)
-+bool __EXPORTED nftnl_rule_is_set(const struct nftnl_rule *r, uint16_t attr)
- {
- return r->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_rule_is_set);
-
--void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
-+void __EXPORTED nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
- {
- if (!(r->flags & (1 << attr)))
- return;
-@@ -116,7 +113,6 @@ void nftnl_rule_unset(struct nftnl_rule *r, uint16_t attr)
-
- r->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_rule_unset);
-
- static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = {
- [NFTNL_RULE_HANDLE] = sizeof(uint64_t),
-@@ -127,7 +123,7 @@ static uint32_t nftnl_rule_validate[NFTNL_RULE_MAX + 1] = {
- [NFTNL_RULE_ID] = sizeof(uint32_t),
- };
-
--int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr,
-+int __EXPORTED nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_RULE_MAX);
-@@ -183,33 +179,28 @@ int nftnl_rule_set_data(struct nftnl_rule *r, uint16_t attr,
- r->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_rule_set_data);
-
--int nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data)
-+int __EXPORTED nftnl_rule_set(struct nftnl_rule *r, uint16_t attr, const void *data)
- {
- return nftnl_rule_set_data(r, attr, data, nftnl_rule_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_rule_set);
-
--void nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_rule_set_u32(struct nftnl_rule *r, uint16_t attr, uint32_t val)
- {
- nftnl_rule_set_data(r, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_rule_set_u32);
-
--void nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_rule_set_u64(struct nftnl_rule *r, uint16_t attr, uint64_t val)
- {
- nftnl_rule_set_data(r, attr, &val, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_rule_set_u64);
-
--int nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_rule_set_str(struct nftnl_rule *r, uint16_t attr, const char *str)
- {
- return nftnl_rule_set_data(r, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_rule_set_str);
-
--const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
-+const void __EXPORTED *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(r->flags & (1 << attr)))
-@@ -246,22 +237,19 @@ const void *nftnl_rule_get_data(const struct nftnl_rule *r, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_rule_get_data);
-
--const void *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr)
-+const void __EXPORTED *nftnl_rule_get(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_rule_get_data(r, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_rule_get);
-
--const char *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr)
-+const char __EXPORTED *nftnl_rule_get_str(const struct nftnl_rule *r, uint16_t attr)
- {
- return nftnl_rule_get(r, attr);
- }
--EXPORT_SYMBOL(nftnl_rule_get_str);
-
--uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
-+uint32_t __EXPORTED nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- const uint32_t *val = nftnl_rule_get_data(r, attr, &data_len);
-@@ -270,9 +258,8 @@ uint32_t nftnl_rule_get_u32(const struct nftnl_rule *r, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_rule_get_u32);
-
--uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
-+uint64_t __EXPORTED nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- const uint64_t *val = nftnl_rule_get_data(r, attr, &data_len);
-@@ -281,9 +268,8 @@ uint64_t nftnl_rule_get_u64(const struct nftnl_rule *r, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_rule_get_u64);
-
--uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
-+uint8_t __EXPORTED nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
- {
- uint32_t data_len;
- const uint8_t *val = nftnl_rule_get_data(r, attr, &data_len);
-@@ -292,9 +278,8 @@ uint8_t nftnl_rule_get_u8(const struct nftnl_rule *r, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_rule_get_u8);
-
--void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
-+void __EXPORTED nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
- {
- struct nftnl_expr *expr;
- struct nlattr *nest, *nest2;
-@@ -335,13 +320,11 @@ void nftnl_rule_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_rule *r)
- if (r->flags & (1 << NFTNL_RULE_ID))
- mnl_attr_put_u32(nlh, NFTA_RULE_ID, htonl(r->id));
- }
--EXPORT_SYMBOL(nftnl_rule_nlmsg_build_payload);
-
--void nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr)
-+void __EXPORTED nftnl_rule_add_expr(struct nftnl_rule *r, struct nftnl_expr *expr)
- {
- list_add_tail(&expr->head, &r->expr_list);
- }
--EXPORT_SYMBOL(nftnl_rule_add_expr);
-
- static int nftnl_rule_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -441,7 +424,7 @@ static int nftnl_rule_parse_compat(struct nlattr *nest, struct nftnl_rule *r)
- return 0;
- }
-
--int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r)
-+int __EXPORTED nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r)
- {
- struct nlattr *tb[NFTA_RULE_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -510,7 +493,6 @@ int nftnl_rule_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_rule *r)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_rule_nlmsg_parse);
-
- #ifdef JSON_PARSING
- int nftnl_jansson_parse_rule(struct nftnl_rule *r, json_t *tree,
-@@ -658,19 +640,17 @@ static int nftnl_rule_do_parse(struct nftnl_rule *r, enum nftnl_parse_type type,
-
- return ret;
- }
--int nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_rule_parse(struct nftnl_rule *r, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_rule_do_parse(r, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_rule_parse);
-
--int nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_rule_parse_file(struct nftnl_rule *r, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_rule_do_parse(r, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_rule_parse_file);
-
- static int nftnl_rule_export(char *buf, size_t size,
- const struct nftnl_rule *r,
-@@ -819,13 +799,12 @@ static int nftnl_rule_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r,
-+int __EXPORTED nftnl_rule_snprintf(char *buf, size_t size, const struct nftnl_rule *r,
- uint32_t type, uint32_t flags)
- {
- return nftnl_rule_cmd_snprintf(buf, size, r, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_rule_snprintf);
-
- static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -833,15 +812,14 @@ static int nftnl_rule_do_snprintf(char *buf, size_t size, const void *r,
- return nftnl_rule_snprintf(buf, size, r, type, flags);
- }
-
--int nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type,
-+int __EXPORTED nftnl_rule_fprintf(FILE *fp, const struct nftnl_rule *r, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, r, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_rule_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_rule_fprintf);
-
--int nftnl_expr_foreach(struct nftnl_rule *r,
-+int __EXPORTED nftnl_expr_foreach(struct nftnl_rule *r,
- int (*cb)(struct nftnl_expr *e, void *data),
- void *data)
- {
-@@ -855,7 +833,6 @@ int nftnl_expr_foreach(struct nftnl_rule *r,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_expr_foreach);
-
- struct nftnl_expr_iter {
- const struct nftnl_rule *r;
-@@ -873,7 +850,7 @@ static void nftnl_expr_iter_init(const struct nftnl_rule *r,
- head);
- }
-
--struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r)
-+struct nftnl_expr_iter __EXPORTED *nftnl_expr_iter_create(const struct nftnl_rule *r)
- {
- struct nftnl_expr_iter *iter;
-
-@@ -885,9 +862,8 @@ struct nftnl_expr_iter *nftnl_expr_iter_create(const struct nftnl_rule *r)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_expr_iter_create);
-
--struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
-+struct nftnl_expr __EXPORTED *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
- {
- struct nftnl_expr *expr = iter->cur;
-
-@@ -901,15 +877,13 @@ struct nftnl_expr *nftnl_expr_iter_next(struct nftnl_expr_iter *iter)
-
- return expr;
- }
--EXPORT_SYMBOL(nftnl_expr_iter_next);
-
--void nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter)
-+void __EXPORTED nftnl_expr_iter_destroy(struct nftnl_expr_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_expr_iter_destroy);
-
--bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2)
-+bool __EXPORTED nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2)
- {
- struct nftnl_expr_iter it1, it2;
- struct nftnl_expr *e1, *e2;
-@@ -938,13 +912,12 @@ bool nftnl_rule_cmp(const struct nftnl_rule *r1, const struct nftnl_rule *r2)
-
- return eq;
- }
--EXPORT_SYMBOL(nftnl_rule_cmp);
-
- struct nftnl_rule_list {
- struct list_head list;
- };
-
--struct nftnl_rule_list *nftnl_rule_list_alloc(void)
-+struct nftnl_rule_list __EXPORTED *nftnl_rule_list_alloc(void)
- {
- struct nftnl_rule_list *list;
-
-@@ -956,9 +929,8 @@ struct nftnl_rule_list *nftnl_rule_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_rule_list_alloc);
-
--void nftnl_rule_list_free(struct nftnl_rule_list *list)
-+void __EXPORTED nftnl_rule_list_free(struct nftnl_rule_list *list)
- {
- struct nftnl_rule *r, *tmp;
-
-@@ -968,33 +940,28 @@ void nftnl_rule_list_free(struct nftnl_rule_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_free);
-
--int nftnl_rule_list_is_empty(const struct nftnl_rule_list *list)
-+int __EXPORTED nftnl_rule_list_is_empty(const struct nftnl_rule_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_is_empty);
-
--void nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list)
-+void __EXPORTED nftnl_rule_list_add(struct nftnl_rule *r, struct nftnl_rule_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_add);
-
--void nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list)
-+void __EXPORTED nftnl_rule_list_add_tail(struct nftnl_rule *r, struct nftnl_rule_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_rule_list_add_tail);
-
--void nftnl_rule_list_del(struct nftnl_rule *r)
-+void __EXPORTED nftnl_rule_list_del(struct nftnl_rule *r)
- {
- list_del(&r->head);
- }
--EXPORT_SYMBOL(nftnl_rule_list_del);
-
--int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
-+int __EXPORTED nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
- int (*cb)(struct nftnl_rule *r, void *data),
- void *data)
- {
-@@ -1008,14 +975,13 @@ int nftnl_rule_list_foreach(struct nftnl_rule_list *rule_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_rule_list_foreach);
-
- struct nftnl_rule_list_iter {
- const struct nftnl_rule_list *list;
- struct nftnl_rule *cur;
- };
-
--struct nftnl_rule_list_iter *
-+struct nftnl_rule_list_iter __EXPORTED *
- nftnl_rule_list_iter_create(const struct nftnl_rule_list *l)
- {
- struct nftnl_rule_list_iter *iter;
-@@ -1032,15 +998,13 @@ nftnl_rule_list_iter_create(const struct nftnl_rule_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_create);
-
--struct nftnl_rule *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter)
-+struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_cur(struct nftnl_rule_list_iter *iter)
- {
- return iter->cur;
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_cur);
-
--struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
-+struct nftnl_rule __EXPORTED *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
- {
- struct nftnl_rule *r = iter->cur;
-
-@@ -1054,10 +1018,8 @@ struct nftnl_rule *nftnl_rule_list_iter_next(struct nftnl_rule_list_iter *iter)
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_next);
-
--void nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter)
-+void __EXPORTED nftnl_rule_list_iter_destroy(const struct nftnl_rule_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_rule_list_iter_destroy);
-diff --git a/src/ruleset.c b/src/ruleset.c
-index 6ef2956..10d48f6 100644
---- a/src/ruleset.c
-+++ b/src/ruleset.c
-@@ -55,13 +55,12 @@ struct nftnl_parse_ctx {
- uint16_t flags;
- };
-
--struct nftnl_ruleset *nftnl_ruleset_alloc(void)
-+struct nftnl_ruleset __EXPORTED *nftnl_ruleset_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_ruleset));
- }
--EXPORT_SYMBOL(nftnl_ruleset_alloc);
-
--void nftnl_ruleset_free(const struct nftnl_ruleset *r)
-+void __EXPORTED nftnl_ruleset_free(const struct nftnl_ruleset *r)
- {
- if (r->flags & (1 << NFTNL_RULESET_TABLELIST))
- nftnl_table_list_free(r->table_list);
-@@ -73,15 +72,13 @@ void nftnl_ruleset_free(const struct nftnl_ruleset *r)
- nftnl_rule_list_free(r->rule_list);
- xfree(r);
- }
--EXPORT_SYMBOL(nftnl_ruleset_free);
-
--bool nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr)
-+bool __EXPORTED nftnl_ruleset_is_set(const struct nftnl_ruleset *r, uint16_t attr)
- {
- return r->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_is_set);
-
--void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
-+void __EXPORTED nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
- {
- if (!(r->flags & (1 << attr)))
- return;
-@@ -102,9 +99,8 @@ void nftnl_ruleset_unset(struct nftnl_ruleset *r, uint16_t attr)
- }
- r->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_unset);
-
--void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
-+void __EXPORTED nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
- {
- switch (attr) {
- case NFTNL_RULESET_TABLELIST:
-@@ -128,9 +124,8 @@ void nftnl_ruleset_set(struct nftnl_ruleset *r, uint16_t attr, void *data)
- }
- r->flags |= (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_set);
-
--void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
-+void __EXPORTED *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
- {
- if (!(r->flags & (1 << attr)))
- return NULL;
-@@ -148,9 +143,8 @@ void *nftnl_ruleset_get(const struct nftnl_ruleset *r, uint16_t attr)
- return NULL;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_get);
-
--void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
-+void __EXPORTED nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
- {
- switch (ctx->type) {
- case NFTNL_RULESET_TABLE:
-@@ -171,15 +165,13 @@ void nftnl_ruleset_ctx_free(const struct nftnl_parse_ctx *ctx)
- break;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_free);
-
--bool nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr)
-+bool __EXPORTED nftnl_ruleset_ctx_is_set(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- {
- return ctx->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_is_set);
-
--void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
-+void __EXPORTED *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- {
- if (!(ctx->flags & (1 << attr)))
- return NULL;
-@@ -203,14 +195,12 @@ void *nftnl_ruleset_ctx_get(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- return NULL;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_get);
-
--uint32_t nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr)
-+uint32_t __EXPORTED nftnl_ruleset_ctx_get_u32(const struct nftnl_parse_ctx *ctx, uint16_t attr)
- {
- const void *ret = nftnl_ruleset_ctx_get(ctx, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_ruleset_ctx_get_u32);
-
- #if defined(JSON_PARSING)
- static void nftnl_ruleset_ctx_set(struct nftnl_parse_ctx *ctx, uint16_t attr,
-@@ -593,22 +583,20 @@ nftnl_ruleset_do_parse(enum nftnl_parse_type type, const void *data,
- return ret;
- }
-
--int nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp,
-+int __EXPORTED nftnl_ruleset_parse_file_cb(enum nftnl_parse_type type, FILE *fp,
- struct nftnl_parse_err *err, void *data,
- int (*cb)(const struct nftnl_parse_ctx *ctx))
- {
- return nftnl_ruleset_do_parse(type, fp, err, NFTNL_PARSE_FILE, data, cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse_file_cb);
-
--int nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer,
-+int __EXPORTED nftnl_ruleset_parse_buffer_cb(enum nftnl_parse_type type, const char *buffer,
- struct nftnl_parse_err *err, void *data,
- int (*cb)(const struct nftnl_parse_ctx *ctx))
- {
- return nftnl_ruleset_do_parse(type, buffer, err, NFTNL_PARSE_BUFFER, data,
- cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse_buffer_cb);
-
- static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx)
- {
-@@ -671,19 +659,17 @@ static int nftnl_ruleset_cb(const struct nftnl_parse_ctx *ctx)
- return 0;
- }
-
--int nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_ruleset_parse(struct nftnl_ruleset *r, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_ruleset_parse_buffer_cb(type, data, err, r, nftnl_ruleset_cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse);
-
--int nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_ruleset_parse_file(struct nftnl_ruleset *rs, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_ruleset_parse_file_cb(type, fp, err, rs, nftnl_ruleset_cb);
- }
--EXPORT_SYMBOL(nftnl_ruleset_parse_file);
-
- static const char *nftnl_ruleset_o_opentag(uint32_t type)
- {
-@@ -928,7 +914,7 @@ static int nftnl_ruleset_cmd_snprintf(char *buf, size_t size,
- }
- }
-
--int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r,
-+int __EXPORTED nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r,
- uint32_t type, uint32_t flags)
- {
- switch (type) {
-@@ -943,7 +929,6 @@ int nftnl_ruleset_snprintf(char *buf, size_t size, const struct nftnl_ruleset *r
- return -1;
- }
- }
--EXPORT_SYMBOL(nftnl_ruleset_snprintf);
-
- static int nftnl_ruleset_fprintf_tables(FILE *fp, const struct nftnl_ruleset *rs,
- uint32_t type, uint32_t flags)
-@@ -1157,10 +1142,9 @@ static int nftnl_ruleset_cmd_fprintf(FILE *fp, const struct nftnl_ruleset *rs,
- return len;
- }
-
--int nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type,
-+int __EXPORTED nftnl_ruleset_fprintf(FILE *fp, const struct nftnl_ruleset *rs, uint32_t type,
- uint32_t flags)
- {
- return nftnl_ruleset_cmd_fprintf(fp, rs, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_ruleset_fprintf);
-diff --git a/src/set.c b/src/set.c
-index cce5e63..33a6794 100644
---- a/src/set.c
-+++ b/src/set.c
-@@ -27,7 +27,7 @@
- #include <libnftnl/set.h>
- #include <libnftnl/expr.h>
-
--struct nftnl_set *nftnl_set_alloc(void)
-+struct nftnl_set __EXPORTED *nftnl_set_alloc(void)
- {
- struct nftnl_set *s;
-
-@@ -38,9 +38,8 @@ struct nftnl_set *nftnl_set_alloc(void)
- INIT_LIST_HEAD(&s->element_list);
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_alloc);
-
--void nftnl_set_free(const struct nftnl_set *s)
-+void __EXPORTED nftnl_set_free(const struct nftnl_set *s)
- {
- struct nftnl_set_elem *elem, *tmp;
-
-@@ -55,15 +54,13 @@ void nftnl_set_free(const struct nftnl_set *s)
- }
- xfree(s);
- }
--EXPORT_SYMBOL(nftnl_set_free);
-
--bool nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr)
-+bool __EXPORTED nftnl_set_is_set(const struct nftnl_set *s, uint16_t attr)
- {
- return s->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_is_set);
-
--void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
-+void __EXPORTED nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
- {
- if (!(s->flags & (1 << attr)))
- return;
-@@ -97,7 +94,6 @@ void nftnl_set_unset(struct nftnl_set *s, uint16_t attr)
-
- s->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_unset);
-
- static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = {
- [NFTNL_SET_FLAGS] = sizeof(uint32_t),
-@@ -113,7 +109,7 @@ static uint32_t nftnl_set_validate[NFTNL_SET_MAX + 1] = {
- [NFTNL_SET_GC_INTERVAL] = sizeof(uint32_t),
- };
-
--int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data,
-+int __EXPORTED nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data,
- uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_SET_MAX);
-@@ -186,33 +182,28 @@ int nftnl_set_set_data(struct nftnl_set *s, uint16_t attr, const void *data,
- s->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_set_data);
-
--int nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data)
-+int __EXPORTED nftnl_set_set(struct nftnl_set *s, uint16_t attr, const void *data)
- {
- return nftnl_set_set_data(s, attr, data, nftnl_set_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_set_set);
-
--void nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_set_set_u32(struct nftnl_set *s, uint16_t attr, uint32_t val)
- {
- nftnl_set_set(s, attr, &val);
- }
--EXPORT_SYMBOL(nftnl_set_set_u32);
-
--void nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_set_set_u64(struct nftnl_set *s, uint16_t attr, uint64_t val)
- {
- nftnl_set_set(s, attr, &val);
- }
--EXPORT_SYMBOL(nftnl_set_set_u64);
-
--int nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_set_set_str(struct nftnl_set *s, uint16_t attr, const char *str)
- {
- return nftnl_set_set_data(s, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_set_set_str);
-
--const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
-+const void __EXPORTED *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(s->flags & (1 << attr)))
-@@ -267,22 +258,19 @@ const void *nftnl_set_get_data(const struct nftnl_set *s, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_set_get_data);
-
--const void *nftnl_set_get(const struct nftnl_set *s, uint16_t attr)
-+const void __EXPORTED *nftnl_set_get(const struct nftnl_set *s, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_set_get_data(s, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_set_get);
-
--const char *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr)
-+const char __EXPORTED *nftnl_set_get_str(const struct nftnl_set *s, uint16_t attr)
- {
- return nftnl_set_get(s, attr);
- }
--EXPORT_SYMBOL(nftnl_set_get_str);
-
--uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
-+uint32_t __EXPORTED nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
- {
- uint32_t data_len;
- const uint32_t *val = nftnl_set_get_data(s, attr, &data_len);
-@@ -291,9 +279,8 @@ uint32_t nftnl_set_get_u32(const struct nftnl_set *s, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_set_get_u32);
-
--uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
-+uint64_t __EXPORTED nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
- {
- uint32_t data_len;
- const uint64_t *val = nftnl_set_get_data(s, attr, &data_len);
-@@ -302,7 +289,6 @@ uint64_t nftnl_set_get_u64(const struct nftnl_set *s, uint16_t attr)
-
- return val ? *val : 0;
- }
--EXPORT_SYMBOL(nftnl_set_get_u64);
-
- struct nftnl_set *nftnl_set_clone(const struct nftnl_set *set)
- {
-@@ -351,7 +337,7 @@ nftnl_set_nlmsg_build_desc_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- mnl_attr_nest_end(nlh, nest);
- }
-
--void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
-+void __EXPORTED nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- if (s->flags & (1 << NFTNL_SET_TABLE))
- mnl_attr_put_strz(nlh, NFTA_SET_TABLE, s->table);
-@@ -383,7 +369,6 @@ void nftnl_set_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- if (s->flags & (1 << NFTNL_SET_USERDATA))
- mnl_attr_put(nlh, NFTA_SET_USERDATA, s->user.len, s->user.data);
- }
--EXPORT_SYMBOL(nftnl_set_nlmsg_build_payload);
-
- static int nftnl_set_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -463,7 +448,7 @@ static int nftnl_set_desc_parse(struct nftnl_set *s,
- return 0;
- }
-
--int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-+int __EXPORTED nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- struct nlattr *tb[NFTA_SET_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -546,7 +531,6 @@ int nftnl_set_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_nlmsg_parse);
-
- #ifdef JSON_PARSING
- static int nftnl_jansson_parse_set_info(struct nftnl_set *s, json_t *tree,
-@@ -718,19 +702,17 @@ static int nftnl_set_do_parse(struct nftnl_set *s, enum nftnl_parse_type type,
-
- return ret;
- }
--int nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_parse(struct nftnl_set *s, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_set_do_parse(s, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_set_parse);
-
--int nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_parse_file(struct nftnl_set *s, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_set_do_parse(s, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_set_parse_file);
-
- static int nftnl_set_snprintf_json(char *buf, size_t size,
- const struct nftnl_set *s,
-@@ -918,13 +900,12 @@ static int nftnl_set_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s,
-+int __EXPORTED nftnl_set_snprintf(char *buf, size_t size, const struct nftnl_set *s,
- uint32_t type, uint32_t flags)
- {
- return nftnl_set_cmd_snprintf(buf, size, s, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_set_snprintf);
-
- static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -932,25 +913,23 @@ static int nftnl_set_do_snprintf(char *buf, size_t size, const void *s,
- return nftnl_set_snprintf(buf, size, s, type, flags);
- }
-
--int nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type,
-+int __EXPORTED nftnl_set_fprintf(FILE *fp, const struct nftnl_set *s, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, s, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_set_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_set_fprintf);
-
--void nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem)
-+void __EXPORTED nftnl_set_elem_add(struct nftnl_set *s, struct nftnl_set_elem *elem)
- {
- list_add_tail(&elem->head, &s->element_list);
- }
--EXPORT_SYMBOL(nftnl_set_elem_add);
-
- struct nftnl_set_list {
- struct list_head list;
- };
-
--struct nftnl_set_list *nftnl_set_list_alloc(void)
-+struct nftnl_set_list __EXPORTED *nftnl_set_list_alloc(void)
- {
- struct nftnl_set_list *list;
-
-@@ -962,9 +941,8 @@ struct nftnl_set_list *nftnl_set_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_set_list_alloc);
-
--void nftnl_set_list_free(struct nftnl_set_list *list)
-+void __EXPORTED nftnl_set_list_free(struct nftnl_set_list *list)
- {
- struct nftnl_set *s, *tmp;
-
-@@ -974,33 +952,28 @@ void nftnl_set_list_free(struct nftnl_set_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_set_list_free);
-
--int nftnl_set_list_is_empty(const struct nftnl_set_list *list)
-+int __EXPORTED nftnl_set_list_is_empty(const struct nftnl_set_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_set_list_is_empty);
-
--void nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list)
-+void __EXPORTED nftnl_set_list_add(struct nftnl_set *s, struct nftnl_set_list *list)
- {
- list_add(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_set_list_add);
-
--void nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list)
-+void __EXPORTED nftnl_set_list_add_tail(struct nftnl_set *s, struct nftnl_set_list *list)
- {
- list_add_tail(&s->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_set_list_add_tail);
-
--void nftnl_set_list_del(struct nftnl_set *s)
-+void __EXPORTED nftnl_set_list_del(struct nftnl_set *s)
- {
- list_del(&s->head);
- }
--EXPORT_SYMBOL(nftnl_set_list_del);
-
--int nftnl_set_list_foreach(struct nftnl_set_list *set_list,
-+int __EXPORTED nftnl_set_list_foreach(struct nftnl_set_list *set_list,
- int (*cb)(struct nftnl_set *t, void *data), void *data)
- {
- struct nftnl_set *cur, *tmp;
-@@ -1013,14 +986,13 @@ int nftnl_set_list_foreach(struct nftnl_set_list *set_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_list_foreach);
-
- struct nftnl_set_list_iter {
- const struct nftnl_set_list *list;
- struct nftnl_set *cur;
- };
-
--struct nftnl_set_list_iter *
-+struct nftnl_set_list_iter __EXPORTED *
- nftnl_set_list_iter_create(const struct nftnl_set_list *l)
- {
- struct nftnl_set_list_iter *iter;
-@@ -1037,16 +1009,14 @@ nftnl_set_list_iter_create(const struct nftnl_set_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_create);
-
--struct nftnl_set *
-+struct nftnl_set __EXPORTED *
- nftnl_set_list_iter_cur(const struct nftnl_set_list_iter *iter)
- {
- return iter->cur;
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_cur);
-
--struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
-+struct nftnl_set __EXPORTED *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
- {
- struct nftnl_set *s = iter->cur;
-
-@@ -1060,13 +1030,11 @@ struct nftnl_set *nftnl_set_list_iter_next(struct nftnl_set_list_iter *iter)
-
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_next);
-
--void nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter)
-+void __EXPORTED nftnl_set_list_iter_destroy(const struct nftnl_set_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_set_list_iter_destroy);
-
- static struct nftnl_set *nftnl_set_lookup(const char *this_set_name,
- struct nftnl_set_list *set_list)
-diff --git a/src/set_elem.c b/src/set_elem.c
-index 433b896..bd1e895 100644
---- a/src/set_elem.c
-+++ b/src/set_elem.c
-@@ -27,7 +27,7 @@
- #include <libnftnl/rule.h>
- #include <libnftnl/expr.h>
-
--struct nftnl_set_elem *nftnl_set_elem_alloc(void)
-+struct nftnl_set_elem __EXPORTED *nftnl_set_elem_alloc(void)
- {
- struct nftnl_set_elem *s;
-
-@@ -37,9 +37,8 @@ struct nftnl_set_elem *nftnl_set_elem_alloc(void)
-
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_elem_alloc);
-
--void nftnl_set_elem_free(struct nftnl_set_elem *s)
-+void __EXPORTED nftnl_set_elem_free(struct nftnl_set_elem *s)
- {
- if (s->flags & (1 << NFTNL_SET_ELEM_CHAIN))
- xfree(s->data.chain);
-@@ -55,15 +54,13 @@ void nftnl_set_elem_free(struct nftnl_set_elem *s)
-
- xfree(s);
- }
--EXPORT_SYMBOL(nftnl_set_elem_free);
-
--bool nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr)
-+bool __EXPORTED nftnl_set_elem_is_set(const struct nftnl_set_elem *s, uint16_t attr)
- {
- return s->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_elem_is_set);
-
--void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
-+void __EXPORTED nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
- {
- if (!(s->flags & (1 << attr)))
- return;
-@@ -94,9 +91,8 @@ void nftnl_set_elem_unset(struct nftnl_set_elem *s, uint16_t attr)
-
- s->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_set_elem_unset);
-
--int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
-+int __EXPORTED nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- switch(attr) {
-@@ -147,27 +143,23 @@ int nftnl_set_elem_set(struct nftnl_set_elem *s, uint16_t attr,
- s->flags |= (1 << attr);
- return -1;
- }
--EXPORT_SYMBOL(nftnl_set_elem_set);
-
--void nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_set_elem_set_u32(struct nftnl_set_elem *s, uint16_t attr, uint32_t val)
- {
- nftnl_set_elem_set(s, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_set_elem_set_u32);
-
--void nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val)
-+void __EXPORTED nftnl_set_elem_set_u64(struct nftnl_set_elem *s, uint16_t attr, uint64_t val)
- {
- nftnl_set_elem_set(s, attr, &val, sizeof(uint64_t));
- }
--EXPORT_SYMBOL(nftnl_set_elem_set_u64);
-
--int nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_set_elem_set_str(struct nftnl_set_elem *s, uint16_t attr, const char *str)
- {
- return nftnl_set_elem_set(s, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_set_elem_set_str);
-
--const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len)
-+const void __EXPORTED *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t *data_len)
- {
- if (!(s->flags & (1 << attr)))
- return NULL;
-@@ -205,31 +197,27 @@ const void *nftnl_set_elem_get(struct nftnl_set_elem *s, uint16_t attr, uint32_t
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_set_elem_get);
-
--const char *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr)
-+const char __EXPORTED *nftnl_set_elem_get_str(struct nftnl_set_elem *s, uint16_t attr)
- {
- uint32_t size;
-
- return nftnl_set_elem_get(s, attr, &size);
- }
--EXPORT_SYMBOL(nftnl_set_elem_get_str);
-
--uint32_t nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr)
-+uint32_t __EXPORTED nftnl_set_elem_get_u32(struct nftnl_set_elem *s, uint16_t attr)
- {
- uint32_t size;
- uint32_t val = *((uint32_t *)nftnl_set_elem_get(s, attr, &size));
- return val;
- }
--EXPORT_SYMBOL(nftnl_set_elem_get_u32);
-
--uint64_t nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr)
-+uint64_t __EXPORTED nftnl_set_elem_get_u64(struct nftnl_set_elem *s, uint16_t attr)
- {
- uint32_t size;
- uint64_t val = *((uint64_t *)nftnl_set_elem_get(s, attr, &size));
- return val;
- }
--EXPORT_SYMBOL(nftnl_set_elem_get_u64);
-
- struct nftnl_set_elem *nftnl_set_elem_clone(struct nftnl_set_elem *elem)
- {
-@@ -315,7 +303,7 @@ static struct nlattr *nftnl_set_elem_build(struct nlmsghdr *nlh,
- return nest2;
- }
-
--void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
-+void __EXPORTED nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- struct nftnl_set_elem *elem;
- struct nlattr *nest1;
-@@ -332,7 +320,6 @@ void nftnl_set_elems_nlmsg_build_payload(struct nlmsghdr *nlh, struct nftnl_set
-
- mnl_attr_nest_end(nlh, nest1);
- }
--EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload);
-
- static int nftnl_set_elem_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -503,7 +490,7 @@ static int nftnl_set_elems_parse(struct nftnl_set *s, const struct nlattr *nest)
- return ret;
- }
-
--int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-+int __EXPORTED nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
- {
- struct nlattr *tb[NFTA_SET_ELEM_LIST_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -546,7 +533,6 @@ int nftnl_set_elems_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_set *s)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_elems_nlmsg_parse);
-
- static int nftnl_set_elem_json_parse(struct nftnl_set_elem *e, const void *json,
- struct nftnl_parse_err *err,
-@@ -587,19 +573,17 @@ nftnl_set_elem_do_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
-
- return ret;
- }
--int nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_elem_parse(struct nftnl_set_elem *e, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_set_elem_do_parse(e, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_set_elem_parse);
-
--int nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_set_elem_parse_file(struct nftnl_set_elem *e, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_set_elem_do_parse(e, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_set_elem_parse_file);
-
- static int nftnl_set_elem_snprintf_json(char *buf, size_t size,
- const struct nftnl_set_elem *e,
-@@ -719,14 +703,13 @@ static int nftnl_set_elem_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_set_elem_snprintf(char *buf, size_t size,
-+int __EXPORTED nftnl_set_elem_snprintf(char *buf, size_t size,
- const struct nftnl_set_elem *e,
- uint32_t type, uint32_t flags)
- {
- return nftnl_set_elem_cmd_snprintf(buf, size, e, nftnl_flag2cmd(flags),
- type, flags);
- }
--EXPORT_SYMBOL(nftnl_set_elem_snprintf);
-
- static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e,
- uint32_t cmd, uint32_t type,
-@@ -735,15 +718,14 @@ static int nftnl_set_elem_do_snprintf(char *buf, size_t size, const void *e,
- return nftnl_set_elem_snprintf(buf, size, e, type, flags);
- }
-
--int nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type,
-+int __EXPORTED nftnl_set_elem_fprintf(FILE *fp, struct nftnl_set_elem *se, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, se, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_set_elem_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_set_elem_fprintf);
-
--int nftnl_set_elem_foreach(struct nftnl_set *s,
-+int __EXPORTED nftnl_set_elem_foreach(struct nftnl_set *s,
- int (*cb)(struct nftnl_set_elem *e, void *data),
- void *data)
- {
-@@ -757,7 +739,6 @@ int nftnl_set_elem_foreach(struct nftnl_set *s,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_set_elem_foreach);
-
- struct nftnl_set_elems_iter {
- const struct nftnl_set *set;
-@@ -765,7 +746,7 @@ struct nftnl_set_elems_iter {
- struct nftnl_set_elem *cur;
- };
-
--struct nftnl_set_elems_iter *
-+struct nftnl_set_elems_iter __EXPORTED *
- nftnl_set_elems_iter_create(const struct nftnl_set *s)
- {
- struct nftnl_set_elems_iter *iter;
-@@ -784,16 +765,14 @@ nftnl_set_elems_iter_create(const struct nftnl_set *s)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_create);
-
--struct nftnl_set_elem *
-+struct nftnl_set_elem __EXPORTED *
- nftnl_set_elems_iter_cur(const struct nftnl_set_elems_iter *iter)
- {
- return iter->cur;
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_cur);
-
--struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter)
-+struct nftnl_set_elem __EXPORTED *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *iter)
- {
- struct nftnl_set_elem *s = iter->cur;
-
-@@ -806,13 +785,11 @@ struct nftnl_set_elem *nftnl_set_elems_iter_next(struct nftnl_set_elems_iter *it
-
- return s;
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_next);
-
--void nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter)
-+void __EXPORTED nftnl_set_elems_iter_destroy(struct nftnl_set_elems_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_set_elems_iter_destroy);
-
- static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh,
- const struct nlattr *from,
-@@ -831,7 +808,7 @@ static bool nftnl_attr_nest_overflow(struct nlmsghdr *nlh,
- return false;
- }
-
--int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
-+int __EXPORTED nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
- struct nftnl_set_elems_iter *iter)
- {
- struct nftnl_set_elem *elem;
-@@ -861,4 +838,3 @@ int nftnl_set_elems_nlmsg_build_payload_iter(struct nlmsghdr *nlh,
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_set_elems_nlmsg_build_payload_iter);
-diff --git a/src/table.c b/src/table.c
-index a7d5a8f..0e99f3c 100644
---- a/src/table.c
-+++ b/src/table.c
-@@ -36,28 +36,25 @@ struct nftnl_table {
- uint32_t flags;
- };
-
--struct nftnl_table *nftnl_table_alloc(void)
-+struct nftnl_table __EXPORTED *nftnl_table_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_table));
- }
--EXPORT_SYMBOL(nftnl_table_alloc);
-
--void nftnl_table_free(const struct nftnl_table *t)
-+void __EXPORTED nftnl_table_free(const struct nftnl_table *t)
- {
- if (t->flags & (1 << NFTNL_TABLE_NAME))
- xfree(t->name);
-
- xfree(t);
- }
--EXPORT_SYMBOL(nftnl_table_free);
-
--bool nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr)
-+bool __EXPORTED nftnl_table_is_set(const struct nftnl_table *t, uint16_t attr)
- {
- return t->flags & (1 << attr);
- }
--EXPORT_SYMBOL(nftnl_table_is_set);
-
--void nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
-+void __EXPORTED nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
- {
- if (!(t->flags & (1 << attr)))
- return;
-@@ -74,14 +71,13 @@ void nftnl_table_unset(struct nftnl_table *t, uint16_t attr)
- }
- t->flags &= ~(1 << attr);
- }
--EXPORT_SYMBOL(nftnl_table_unset);
-
- static uint32_t nftnl_table_validate[NFTNL_TABLE_MAX + 1] = {
- [NFTNL_TABLE_FLAGS] = sizeof(uint32_t),
- [NFTNL_TABLE_FAMILY] = sizeof(uint32_t),
- };
-
--int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr,
-+int __EXPORTED nftnl_table_set_data(struct nftnl_table *t, uint16_t attr,
- const void *data, uint32_t data_len)
- {
- nftnl_assert_attr_exists(attr, NFTNL_TABLE_MAX);
-@@ -109,33 +105,28 @@ int nftnl_table_set_data(struct nftnl_table *t, uint16_t attr,
- t->flags |= (1 << attr);
- return 0;
- }
--EXPORT_SYMBOL(nftnl_table_set_data);
-
--void nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data)
-+void __EXPORTED nftnl_table_set(struct nftnl_table *t, uint16_t attr, const void *data)
- {
- nftnl_table_set_data(t, attr, data, nftnl_table_validate[attr]);
- }
--EXPORT_SYMBOL(nftnl_table_set);
-
--void nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val)
-+void __EXPORTED nftnl_table_set_u32(struct nftnl_table *t, uint16_t attr, uint32_t val)
- {
- nftnl_table_set_data(t, attr, &val, sizeof(uint32_t));
- }
--EXPORT_SYMBOL(nftnl_table_set_u32);
-
--void nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val)
-+void __EXPORTED nftnl_table_set_u8(struct nftnl_table *t, uint16_t attr, uint8_t val)
- {
- nftnl_table_set_data(t, attr, &val, sizeof(uint8_t));
- }
--EXPORT_SYMBOL(nftnl_table_set_u8);
-
--int nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str)
-+int __EXPORTED nftnl_table_set_str(struct nftnl_table *t, uint16_t attr, const char *str)
- {
- return nftnl_table_set_data(t, attr, str, strlen(str) + 1);
- }
--EXPORT_SYMBOL(nftnl_table_set_str);
-
--const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
-+const void __EXPORTED *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
- uint32_t *data_len)
- {
- if (!(t->flags & (1 << attr)))
-@@ -157,43 +148,37 @@ const void *nftnl_table_get_data(const struct nftnl_table *t, uint16_t attr,
- }
- return NULL;
- }
--EXPORT_SYMBOL(nftnl_table_get_data);
-
--const void *nftnl_table_get(const struct nftnl_table *t, uint16_t attr)
-+const void __EXPORTED *nftnl_table_get(const struct nftnl_table *t, uint16_t attr)
- {
- uint32_t data_len;
- return nftnl_table_get_data(t, attr, &data_len);
- }
--EXPORT_SYMBOL(nftnl_table_get);
-
--uint32_t nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr)
-+uint32_t __EXPORTED nftnl_table_get_u32(const struct nftnl_table *t, uint16_t attr)
- {
- const void *ret = nftnl_table_get(t, attr);
- return ret == NULL ? 0 : *((uint32_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_table_get_u32);
-
--uint8_t nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr)
-+uint8_t __EXPORTED nftnl_table_get_u8(const struct nftnl_table *t, uint16_t attr)
- {
- const void *ret = nftnl_table_get(t, attr);
- return ret == NULL ? 0 : *((uint8_t *)ret);
- }
--EXPORT_SYMBOL(nftnl_table_get_u8);
-
--const char *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr)
-+const char __EXPORTED *nftnl_table_get_str(const struct nftnl_table *t, uint16_t attr)
- {
- return nftnl_table_get(t, attr);
- }
--EXPORT_SYMBOL(nftnl_table_get_str);
-
--void nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t)
-+void __EXPORTED nftnl_table_nlmsg_build_payload(struct nlmsghdr *nlh, const struct nftnl_table *t)
- {
- if (t->flags & (1 << NFTNL_TABLE_NAME))
- mnl_attr_put_strz(nlh, NFTA_TABLE_NAME, t->name);
- if (t->flags & (1 << NFTNL_TABLE_FLAGS))
- mnl_attr_put_u32(nlh, NFTA_TABLE_FLAGS, htonl(t->table_flags));
- }
--EXPORT_SYMBOL(nftnl_table_nlmsg_build_payload);
-
- static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data)
- {
-@@ -219,7 +204,7 @@ static int nftnl_table_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t)
-+int __EXPORTED nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t)
- {
- struct nlattr *tb[NFTA_TABLE_MAX+1] = {};
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
-@@ -249,7 +234,6 @@ int nftnl_table_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_table *t)
-
- return 0;
- }
--EXPORT_SYMBOL(nftnl_table_nlmsg_parse);
-
- #ifdef JSON_PARSING
- int nftnl_jansson_parse_table(struct nftnl_table *t, json_t *tree,
-@@ -330,19 +314,17 @@ static int nftnl_table_do_parse(struct nftnl_table *t, enum nftnl_parse_type typ
- return ret;
- }
-
--int nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_table_parse(struct nftnl_table *t, enum nftnl_parse_type type,
- const char *data, struct nftnl_parse_err *err)
- {
- return nftnl_table_do_parse(t, type, data, err, NFTNL_PARSE_BUFFER);
- }
--EXPORT_SYMBOL(nftnl_table_parse);
-
--int nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type,
-+int __EXPORTED nftnl_table_parse_file(struct nftnl_table *t, enum nftnl_parse_type type,
- FILE *fp, struct nftnl_parse_err *err)
- {
- return nftnl_table_do_parse(t, type, fp, err, NFTNL_PARSE_FILE);
- }
--EXPORT_SYMBOL(nftnl_table_parse_file);
-
- static int nftnl_table_export(char *buf, size_t size,
- const struct nftnl_table *t, int type)
-@@ -400,13 +382,12 @@ static int nftnl_table_cmd_snprintf(char *buf, size_t size,
- return offset;
- }
-
--int nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t,
-+int __EXPORTED nftnl_table_snprintf(char *buf, size_t size, const struct nftnl_table *t,
- uint32_t type, uint32_t flags)
- {
- return nftnl_table_cmd_snprintf(buf, size, t, nftnl_flag2cmd(flags), type,
- flags);
- }
--EXPORT_SYMBOL(nftnl_table_snprintf);
-
- static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t,
- uint32_t cmd, uint32_t type, uint32_t flags)
-@@ -414,19 +395,18 @@ static int nftnl_table_do_snprintf(char *buf, size_t size, const void *t,
- return nftnl_table_snprintf(buf, size, t, type, flags);
- }
-
--int nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type,
-+int __EXPORTED nftnl_table_fprintf(FILE *fp, const struct nftnl_table *t, uint32_t type,
- uint32_t flags)
- {
- return nftnl_fprintf(fp, t, NFTNL_CMD_UNSPEC, type, flags,
- nftnl_table_do_snprintf);
- }
--EXPORT_SYMBOL(nftnl_table_fprintf);
-
- struct nftnl_table_list {
- struct list_head list;
- };
-
--struct nftnl_table_list *nftnl_table_list_alloc(void)
-+struct nftnl_table_list __EXPORTED *nftnl_table_list_alloc(void)
- {
- struct nftnl_table_list *list;
-
-@@ -438,9 +418,8 @@ struct nftnl_table_list *nftnl_table_list_alloc(void)
-
- return list;
- }
--EXPORT_SYMBOL(nftnl_table_list_alloc);
-
--void nftnl_table_list_free(struct nftnl_table_list *list)
-+void __EXPORTED nftnl_table_list_free(struct nftnl_table_list *list)
- {
- struct nftnl_table *r, *tmp;
-
-@@ -450,33 +429,28 @@ void nftnl_table_list_free(struct nftnl_table_list *list)
- }
- xfree(list);
- }
--EXPORT_SYMBOL(nftnl_table_list_free);
-
--int nftnl_table_list_is_empty(const struct nftnl_table_list *list)
-+int __EXPORTED nftnl_table_list_is_empty(const struct nftnl_table_list *list)
- {
- return list_empty(&list->list);
- }
--EXPORT_SYMBOL(nftnl_table_list_is_empty);
-
--void nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list)
-+void __EXPORTED nftnl_table_list_add(struct nftnl_table *r, struct nftnl_table_list *list)
- {
- list_add(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_table_list_add);
-
--void nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list)
-+void __EXPORTED nftnl_table_list_add_tail(struct nftnl_table *r, struct nftnl_table_list *list)
- {
- list_add_tail(&r->head, &list->list);
- }
--EXPORT_SYMBOL(nftnl_table_list_add_tail);
-
--void nftnl_table_list_del(struct nftnl_table *t)
-+void __EXPORTED nftnl_table_list_del(struct nftnl_table *t)
- {
- list_del(&t->head);
- }
--EXPORT_SYMBOL(nftnl_table_list_del);
-
--int nftnl_table_list_foreach(struct nftnl_table_list *table_list,
-+int __EXPORTED nftnl_table_list_foreach(struct nftnl_table_list *table_list,
- int (*cb)(struct nftnl_table *t, void *data),
- void *data)
- {
-@@ -490,14 +464,13 @@ int nftnl_table_list_foreach(struct nftnl_table_list *table_list,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_table_list_foreach);
-
- struct nftnl_table_list_iter {
- const struct nftnl_table_list *list;
- struct nftnl_table *cur;
- };
-
--struct nftnl_table_list_iter *
-+struct nftnl_table_list_iter __EXPORTED *
- nftnl_table_list_iter_create(const struct nftnl_table_list *l)
- {
- struct nftnl_table_list_iter *iter;
-@@ -514,9 +487,8 @@ nftnl_table_list_iter_create(const struct nftnl_table_list *l)
-
- return iter;
- }
--EXPORT_SYMBOL(nftnl_table_list_iter_create);
-
--struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter)
-+struct nftnl_table __EXPORTED *nftnl_table_list_iter_next(struct nftnl_table_list_iter *iter)
- {
- struct nftnl_table *r = iter->cur;
-
-@@ -530,10 +502,8 @@ struct nftnl_table *nftnl_table_list_iter_next(struct nftnl_table_list_iter *ite
-
- return r;
- }
--EXPORT_SYMBOL(nftnl_table_list_iter_next);
-
--void nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter)
-+void __EXPORTED nftnl_table_list_iter_destroy(const struct nftnl_table_list_iter *iter)
- {
- xfree(iter);
- }
--EXPORT_SYMBOL(nftnl_table_list_iter_destroy);
-diff --git a/src/trace.c b/src/trace.c
-index bd05d3c..4739ef9 100644
---- a/src/trace.c
-+++ b/src/trace.c
-@@ -52,14 +52,12 @@ struct nftnl_trace {
- uint32_t flags;
- };
-
--EXPORT_SYMBOL(nftnl_trace_alloc);
--struct nftnl_trace *nftnl_trace_alloc(void)
-+struct nftnl_trace __EXPORTED *nftnl_trace_alloc(void)
- {
- return calloc(1, sizeof(struct nftnl_trace));
- }
-
--EXPORT_SYMBOL(nftnl_trace_free);
--void nftnl_trace_free(const struct nftnl_trace *t)
-+void __EXPORTED nftnl_trace_free(const struct nftnl_trace *t)
- {
- xfree(t->chain);
- xfree(t->table);
-@@ -70,8 +68,7 @@ void nftnl_trace_free(const struct nftnl_trace *t)
- xfree(t);
- }
-
--EXPORT_SYMBOL(nftnl_trace_is_set);
--bool nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr)
-+bool __EXPORTED nftnl_trace_is_set(const struct nftnl_trace *t, uint16_t attr)
- {
- return t->flags & (1 << attr);
- }
-@@ -130,8 +127,7 @@ static int nftnl_trace_parse_attr_cb(const struct nlattr *attr, void *data)
- return MNL_CB_OK;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_data);
--const void *nftnl_trace_get_data(const struct nftnl_trace *trace,
-+const void __EXPORTED *nftnl_trace_get_data(const struct nftnl_trace *trace,
- uint16_t type, uint32_t *data_len)
- {
- enum nftnl_trace_attr attr = type;
-@@ -201,8 +197,7 @@ const void *nftnl_trace_get_data(const struct nftnl_trace *trace,
- return NULL;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_str);
--const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type)
-+const char __EXPORTED *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type)
- {
- if (!nftnl_trace_is_set(trace, type))
- return NULL;
-@@ -216,8 +211,7 @@ const char *nftnl_trace_get_str(const struct nftnl_trace *trace, uint16_t type)
- return NULL;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_u16);
--uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type)
-+uint16_t __EXPORTED nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type)
- {
- const uint16_t *d;
- uint32_t dlen;
-@@ -229,8 +223,7 @@ uint16_t nftnl_trace_get_u16(const struct nftnl_trace *trace, uint16_t type)
- return 0;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_u32);
--uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type)
-+uint32_t __EXPORTED nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type)
- {
- const uint32_t *d;
- uint32_t dlen;
-@@ -242,8 +235,7 @@ uint32_t nftnl_trace_get_u32(const struct nftnl_trace *trace, uint16_t type)
- return 0;
- }
-
--EXPORT_SYMBOL(nftnl_trace_get_u64);
--uint64_t nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type)
-+uint64_t __EXPORTED nftnl_trace_get_u64(const struct nftnl_trace *trace, uint16_t type)
- {
- const uint64_t *d;
- uint32_t dlen;
-@@ -323,9 +315,8 @@ static int nftnl_trace_parse_verdict(const struct nlattr *attr,
- }
- return 0;
- }
--EXPORT_SYMBOL(nftnl_trace_nlmsg_parse);
-
--int nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t)
-+int __EXPORTED nftnl_trace_nlmsg_parse(const struct nlmsghdr *nlh, struct nftnl_trace *t)
- {
- struct nfgenmsg *nfg = mnl_nlmsg_get_payload(nlh);
- struct nlattr *tb[NFTA_TRACE_MAX+1] = {};
-diff --git a/src/udata.c b/src/udata.c
-index d679dd0..7e2de0f 100644
---- a/src/udata.c
-+++ b/src/udata.c
-@@ -16,7 +16,7 @@
- #include <stdint.h>
- #include <string.h>
-
--struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size)
-+struct nftnl_udata_buf __EXPORTED *nftnl_udata_buf_alloc(uint32_t data_size)
- {
- struct nftnl_udata_buf *buf;
-
-@@ -28,47 +28,40 @@ struct nftnl_udata_buf *nftnl_udata_buf_alloc(uint32_t data_size)
-
- return buf;
- }
--EXPORT_SYMBOL(nftnl_udata_buf_alloc);
-
--void nftnl_udata_buf_free(const struct nftnl_udata_buf *buf)
-+void __EXPORTED nftnl_udata_buf_free(const struct nftnl_udata_buf *buf)
- {
- xfree(buf);
- }
--EXPORT_SYMBOL(nftnl_udata_buf_free);
-
--uint32_t nftnl_udata_buf_len(const struct nftnl_udata_buf *buf)
-+uint32_t __EXPORTED nftnl_udata_buf_len(const struct nftnl_udata_buf *buf)
- {
- return (uint32_t)(buf->end - buf->data);
- }
--EXPORT_SYMBOL(nftnl_udata_buf_len);
-
--void *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf)
-+void __EXPORTED *nftnl_udata_buf_data(const struct nftnl_udata_buf *buf)
- {
- return (void *)buf->data;
- }
--EXPORT_SYMBOL(nftnl_udata_buf_data);
-
--void nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data,
-+void __EXPORTED nftnl_udata_buf_put(struct nftnl_udata_buf *buf, const void *data,
- uint32_t len)
- {
- memcpy(buf->data, data, len <= buf->size ? len : buf->size);
- buf->end = buf->data + len;
- }
--EXPORT_SYMBOL(nftnl_udata_buf_put);
-
--struct nftnl_udata *nftnl_udata_start(const struct nftnl_udata_buf *buf)
-+struct nftnl_udata __EXPORTED *nftnl_udata_start(const struct nftnl_udata_buf *buf)
- {
- return (struct nftnl_udata *)buf->data;
- }
--EXPORT_SYMBOL(nftnl_udata_start);
-
--struct nftnl_udata *nftnl_udata_end(const struct nftnl_udata_buf *buf)
-+struct nftnl_udata __EXPORTED *nftnl_udata_end(const struct nftnl_udata_buf *buf)
- {
- return (struct nftnl_udata *)buf->end;
- }
--EXPORT_SYMBOL(nftnl_udata_end);
-
--bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len,
-+bool __EXPORTED nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len,
- const void *value)
- {
- struct nftnl_udata *attr;
-@@ -85,55 +78,47 @@ bool nftnl_udata_put(struct nftnl_udata_buf *buf, uint8_t type, uint32_t len,
-
- return true;
- }
--EXPORT_SYMBOL(nftnl_udata_put);
-
--bool nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type,
-+bool __EXPORTED nftnl_udata_put_strz(struct nftnl_udata_buf *buf, uint8_t type,
- const char *strz)
- {
- return nftnl_udata_put(buf, type, strlen(strz) + 1, strz);
- }
--EXPORT_SYMBOL(nftnl_udata_put_strz);
-
--bool nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type,
-+bool __EXPORTED nftnl_udata_put_u32(struct nftnl_udata_buf *buf, uint8_t type,
- uint32_t data)
- {
- return nftnl_udata_put(buf, type, sizeof(data), &data);
- }
--EXPORT_SYMBOL(nftnl_udata_put_u32);
-
--uint8_t nftnl_udata_type(const struct nftnl_udata *attr)
-+uint8_t __EXPORTED nftnl_udata_type(const struct nftnl_udata *attr)
- {
- return attr->type;
- }
--EXPORT_SYMBOL(nftnl_udata_type);
-
--uint8_t nftnl_udata_len(const struct nftnl_udata *attr)
-+uint8_t __EXPORTED nftnl_udata_len(const struct nftnl_udata *attr)
- {
- return attr->len;
- }
--EXPORT_SYMBOL(nftnl_udata_len);
-
--void *nftnl_udata_get(const struct nftnl_udata *attr)
-+void __EXPORTED *nftnl_udata_get(const struct nftnl_udata *attr)
- {
- return (void *)attr->value;
- }
--EXPORT_SYMBOL(nftnl_udata_get);
-
--uint32_t nftnl_udata_get_u32(const struct nftnl_udata *attr)
-+uint32_t __EXPORTED nftnl_udata_get_u32(const struct nftnl_udata *attr)
- {
- uint32_t *data = (uint32_t *)attr->value;
-
- return *data;
- }
--EXPORT_SYMBOL(nftnl_udata_get_u32);
-
--struct nftnl_udata *nftnl_udata_next(const struct nftnl_udata *attr)
-+struct nftnl_udata __EXPORTED *nftnl_udata_next(const struct nftnl_udata *attr)
- {
- return (struct nftnl_udata *)&attr->value[attr->len];
- }
--EXPORT_SYMBOL(nftnl_udata_next);
-
--int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb,
-+int __EXPORTED nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb,
- void *cb_data)
- {
- int ret = 0;
-@@ -147,4 +132,3 @@ int nftnl_udata_parse(const void *data, uint32_t data_len, nftnl_udata_cb_t cb,
-
- return ret;
- }
--EXPORT_SYMBOL(nftnl_udata_parse);
---
-2.11.0 (Apple Git-81)
-
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
deleted file mode 100644
index 06e68177ce..0000000000
--- a/meta-networking/recipes-filter/libnftnl/libnftnl/0001-avoid-naming-local-function-as-one-of-printf-family.patch
+++ /dev/null
@@ -1,514 +0,0 @@
-From f840cc0da571d98beb17855c177e9986bd096b72 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Apr 2017 11:46:09 -0700
-Subject: [PATCH] avoid naming local function as one of printf family
-
-Fixes build issues with clang
-error: no member named '__builtin___snprintf_chk' in 'struct expr_ops'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/expr_ops.h | 2 +-
- include/obj.h | 2 +-
- src/buffer.c | 2 +-
- src/expr.c | 4 ++--
- src/expr/bitwise.c | 2 +-
- src/expr/byteorder.c | 2 +-
- src/expr/cmp.c | 2 +-
- src/expr/counter.c | 2 +-
- src/expr/ct.c | 2 +-
- src/expr/dup.c | 2 +-
- src/expr/dynset.c | 2 +-
- src/expr/exthdr.c | 2 +-
- src/expr/fib.c | 2 +-
- src/expr/fwd.c | 2 +-
- src/expr/hash.c | 2 +-
- src/expr/immediate.c | 2 +-
- src/expr/limit.c | 2 +-
- src/expr/log.c | 2 +-
- src/expr/lookup.c | 2 +-
- src/expr/masq.c | 2 +-
- src/expr/match.c | 2 +-
- src/expr/meta.c | 2 +-
- src/expr/nat.c | 2 +-
- src/expr/numgen.c | 2 +-
- src/expr/objref.c | 2 +-
- src/expr/payload.c | 2 +-
- src/expr/queue.c | 2 +-
- src/expr/quota.c | 2 +-
- src/expr/range.c | 2 +-
- src/expr/redir.c | 2 +-
- src/expr/reject.c | 2 +-
- src/expr/rt.c | 2 +-
- src/expr/target.c | 2 +-
- src/obj/counter.c | 2 +-
- src/obj/ct_helper.c | 2 +-
- src/obj/quota.c | 2 +-
- src/object.c | 4 ++--
- 37 files changed, 39 insertions(+), 39 deletions(-)
-
-diff --git a/include/expr_ops.h b/include/expr_ops.h
-index e639390..c4fe050 100644
---- a/include/expr_ops.h
-+++ b/include/expr_ops.h
-@@ -18,7 +18,7 @@ struct expr_ops {
- const void *(*get)(const struct nftnl_expr *e, uint16_t type, uint32_t *data_len);
- int (*parse)(struct nftnl_expr *e, struct nlattr *attr);
- void (*build)(struct nlmsghdr *nlh, const struct nftnl_expr *e);
-- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
-+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_expr *e);
- int (*json_parse)(struct nftnl_expr *e, json_t *data,
- struct nftnl_parse_err *err);
- };
-diff --git a/include/obj.h b/include/obj.h
-index d90919f..772caff 100644
---- a/include/obj.h
-+++ b/include/obj.h
-@@ -47,7 +47,7 @@ struct obj_ops {
- const void *(*get)(const struct nftnl_obj *e, uint16_t type, uint32_t *data_len);
- int (*parse)(struct nftnl_obj *e, struct nlattr *attr);
- void (*build)(struct nlmsghdr *nlh, const struct nftnl_obj *e);
-- int (*snprintf)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
-+ int (*snprintf_)(char *buf, size_t len, uint32_t type, uint32_t flags, const struct nftnl_obj *e);
- int (*json_parse)(struct nftnl_obj *e, json_t *data,
- struct nftnl_parse_err *err);
- };
-diff --git a/src/buffer.c b/src/buffer.c
-index f9d5a83..db656e2 100644
---- a/src/buffer.c
-+++ b/src/buffer.c
-@@ -206,7 +206,7 @@ int nftnl_buf_expr(struct nftnl_buf *b, int type, uint32_t flags,
- case NFTNL_OUTPUT_JSON:
- nftnl_buf_put(b, "{");
- nftnl_buf_str(b, type, expr->ops->name, TYPE);
-- ret = expr->ops->snprintf(b->buf + b->off, b->len, type, flags,
-+ ret = expr->ops->snprintf_(b->buf + b->off, b->len, type, flags,
- expr);
- if (ret > 0)
- nftnl_buf_update(b, ret);
-diff --git a/src/expr.c b/src/expr.c
-index c7eb2b4..24f8f8c 100644
---- a/src/expr.c
-+++ b/src/expr.c
-@@ -265,10 +265,10 @@ int __EXPORTED nftnl_expr_snprintf(char *buf, size_t size, const struct nftnl_ex
- int ret;
- unsigned int offset = 0, len = size;
-
-- if (!expr->ops->snprintf)
-+ if (!expr->ops->snprintf_)
- return 0;
-
-- ret = expr->ops->snprintf(buf+offset, len, type, flags, expr);
-+ ret = expr->ops->snprintf_(buf+offset, len, type, flags, expr);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
- return offset;
-diff --git a/src/expr/bitwise.c b/src/expr/bitwise.c
-index 0febc9d..9b48e79 100644
---- a/src/expr/bitwise.c
-+++ b/src/expr/bitwise.c
-@@ -299,6 +299,6 @@ struct expr_ops expr_ops_bitwise = {
- .get = nftnl_expr_bitwise_get,
- .parse = nftnl_expr_bitwise_parse,
- .build = nftnl_expr_bitwise_build,
-- .snprintf = nftnl_expr_bitwise_snprintf,
-+ .snprintf_ = nftnl_expr_bitwise_snprintf,
- .json_parse = nftnl_expr_bitwise_json_parse,
- };
-diff --git a/src/expr/byteorder.c b/src/expr/byteorder.c
-index 3805307..079582f 100644
---- a/src/expr/byteorder.c
-+++ b/src/expr/byteorder.c
-@@ -314,6 +314,6 @@ struct expr_ops expr_ops_byteorder = {
- .get = nftnl_expr_byteorder_get,
- .parse = nftnl_expr_byteorder_parse,
- .build = nftnl_expr_byteorder_build,
-- .snprintf = nftnl_expr_byteorder_snprintf,
-+ .snprintf_ = nftnl_expr_byteorder_snprintf,
- .json_parse = nftnl_expr_byteorder_json_parse,
- };
-diff --git a/src/expr/cmp.c b/src/expr/cmp.c
-index 353e907..99b497c 100644
---- a/src/expr/cmp.c
-+++ b/src/expr/cmp.c
-@@ -284,6 +284,6 @@ struct expr_ops expr_ops_cmp = {
- .get = nftnl_expr_cmp_get,
- .parse = nftnl_expr_cmp_parse,
- .build = nftnl_expr_cmp_build,
-- .snprintf = nftnl_expr_cmp_snprintf,
-+ .snprintf_ = nftnl_expr_cmp_snprintf,
- .json_parse = nftnl_expr_cmp_json_parse,
- };
-diff --git a/src/expr/counter.c b/src/expr/counter.c
-index 21901e8..9fd7655 100644
---- a/src/expr/counter.c
-+++ b/src/expr/counter.c
-@@ -200,6 +200,6 @@ struct expr_ops expr_ops_counter = {
- .get = nftnl_expr_counter_get,
- .parse = nftnl_expr_counter_parse,
- .build = nftnl_expr_counter_build,
-- .snprintf = nftnl_expr_counter_snprintf,
-+ .snprintf_ = nftnl_expr_counter_snprintf,
- .json_parse = nftnl_expr_counter_json_parse,
- };
-diff --git a/src/expr/ct.c b/src/expr/ct.c
-index cdd08e9..6ce5478 100644
---- a/src/expr/ct.c
-+++ b/src/expr/ct.c
-@@ -356,6 +356,6 @@ struct expr_ops expr_ops_ct = {
- .get = nftnl_expr_ct_get,
- .parse = nftnl_expr_ct_parse,
- .build = nftnl_expr_ct_build,
-- .snprintf = nftnl_expr_ct_snprintf,
-+ .snprintf_ = nftnl_expr_ct_snprintf,
- .json_parse = nftnl_expr_ct_json_parse,
- };
-diff --git a/src/expr/dup.c b/src/expr/dup.c
-index 9aa332b..2f491d8 100644
---- a/src/expr/dup.c
-+++ b/src/expr/dup.c
-@@ -206,6 +206,6 @@ struct expr_ops expr_ops_dup = {
- .get = nftnl_expr_dup_get,
- .parse = nftnl_expr_dup_parse,
- .build = nftnl_expr_dup_build,
-- .snprintf = nftnl_expr_dup_snprintf,
-+ .snprintf_ = nftnl_expr_dup_snprintf,
- .json_parse = nftnl_expr_dup_json_parse,
- };
-diff --git a/src/expr/dynset.c b/src/expr/dynset.c
-index f7b99ea..758f07c 100644
---- a/src/expr/dynset.c
-+++ b/src/expr/dynset.c
-@@ -368,6 +368,6 @@ struct expr_ops expr_ops_dynset = {
- .get = nftnl_expr_dynset_get,
- .parse = nftnl_expr_dynset_parse,
- .build = nftnl_expr_dynset_build,
-- .snprintf = nftnl_expr_dynset_snprintf,
-+ .snprintf_ = nftnl_expr_dynset_snprintf,
- .json_parse = nftnl_expr_dynset_json_parse,
- };
-diff --git a/src/expr/exthdr.c b/src/expr/exthdr.c
-index d4f1665..a834782 100644
---- a/src/expr/exthdr.c
-+++ b/src/expr/exthdr.c
-@@ -356,6 +356,6 @@ struct expr_ops expr_ops_exthdr = {
- .get = nftnl_expr_exthdr_get,
- .parse = nftnl_expr_exthdr_parse,
- .build = nftnl_expr_exthdr_build,
-- .snprintf = nftnl_expr_exthdr_snprintf,
-+ .snprintf_ = nftnl_expr_exthdr_snprintf,
- .json_parse = nftnl_expr_exthdr_json_parse,
- };
-diff --git a/src/expr/fib.c b/src/expr/fib.c
-index f3be081..3c353b2 100644
---- a/src/expr/fib.c
-+++ b/src/expr/fib.c
-@@ -272,6 +272,6 @@ struct expr_ops expr_ops_fib = {
- .get = nftnl_expr_fib_get,
- .parse = nftnl_expr_fib_parse,
- .build = nftnl_expr_fib_build,
-- .snprintf = nftnl_expr_fib_snprintf,
-+ .snprintf_ = nftnl_expr_fib_snprintf,
- .json_parse = nftnl_expr_fib_json_parse,
- };
-diff --git a/src/expr/fwd.c b/src/expr/fwd.c
-index c30d494..f6e41f1 100644
---- a/src/expr/fwd.c
-+++ b/src/expr/fwd.c
-@@ -180,6 +180,6 @@ struct expr_ops expr_ops_fwd = {
- .get = nftnl_expr_fwd_get,
- .parse = nftnl_expr_fwd_parse,
- .build = nftnl_expr_fwd_build,
-- .snprintf = nftnl_expr_fwd_snprintf,
-+ .snprintf_ = nftnl_expr_fwd_snprintf,
- .json_parse = nftnl_expr_fwd_json_parse,
- };
-diff --git a/src/expr/hash.c b/src/expr/hash.c
-index d870510..5acb66a 100644
---- a/src/expr/hash.c
-+++ b/src/expr/hash.c
-@@ -332,6 +332,6 @@ struct expr_ops expr_ops_hash = {
- .get = nftnl_expr_hash_get,
- .parse = nftnl_expr_hash_parse,
- .build = nftnl_expr_hash_build,
-- .snprintf = nftnl_expr_hash_snprintf,
-+ .snprintf_ = nftnl_expr_hash_snprintf,
- .json_parse = nftnl_expr_hash_json_parse,
- };
-diff --git a/src/expr/immediate.c b/src/expr/immediate.c
-index 0b188cc..94bd6da 100644
---- a/src/expr/immediate.c
-+++ b/src/expr/immediate.c
-@@ -316,6 +316,6 @@ struct expr_ops expr_ops_immediate = {
- .get = nftnl_expr_immediate_get,
- .parse = nftnl_expr_immediate_parse,
- .build = nftnl_expr_immediate_build,
-- .snprintf = nftnl_expr_immediate_snprintf,
-+ .snprintf_ = nftnl_expr_immediate_snprintf,
- .json_parse = nftnl_expr_immediate_json_parse,
- };
-diff --git a/src/expr/limit.c b/src/expr/limit.c
-index 856ab18..e71fc2f 100644
---- a/src/expr/limit.c
-+++ b/src/expr/limit.c
-@@ -285,6 +285,6 @@ struct expr_ops expr_ops_limit = {
- .get = nftnl_expr_limit_get,
- .parse = nftnl_expr_limit_parse,
- .build = nftnl_expr_limit_build,
-- .snprintf = nftnl_expr_limit_snprintf,
-+ .snprintf_ = nftnl_expr_limit_snprintf,
- .json_parse = nftnl_expr_limit_json_parse,
- };
-diff --git a/src/expr/log.c b/src/expr/log.c
-index b642255..71dd83a 100644
---- a/src/expr/log.c
-+++ b/src/expr/log.c
-@@ -352,6 +352,6 @@ struct expr_ops expr_ops_log = {
- .get = nftnl_expr_log_get,
- .parse = nftnl_expr_log_parse,
- .build = nftnl_expr_log_build,
-- .snprintf = nftnl_expr_log_snprintf,
-+ .snprintf_ = nftnl_expr_log_snprintf,
- .json_parse = nftnl_expr_log_json_parse,
- };
-diff --git a/src/expr/lookup.c b/src/expr/lookup.c
-index 861815f..6049913 100644
---- a/src/expr/lookup.c
-+++ b/src/expr/lookup.c
-@@ -293,6 +293,6 @@ struct expr_ops expr_ops_lookup = {
- .get = nftnl_expr_lookup_get,
- .parse = nftnl_expr_lookup_parse,
- .build = nftnl_expr_lookup_build,
-- .snprintf = nftnl_expr_lookup_snprintf,
-+ .snprintf_ = nftnl_expr_lookup_snprintf,
- .json_parse = nftnl_expr_lookup_json_parse,
- };
-diff --git a/src/expr/masq.c b/src/expr/masq.c
-index 7c235d3..adec325 100644
---- a/src/expr/masq.c
-+++ b/src/expr/masq.c
-@@ -228,6 +228,6 @@ struct expr_ops expr_ops_masq = {
- .get = nftnl_expr_masq_get,
- .parse = nftnl_expr_masq_parse,
- .build = nftnl_expr_masq_build,
-- .snprintf = nftnl_expr_masq_snprintf,
-+ .snprintf_ = nftnl_expr_masq_snprintf,
- .json_parse = nftnl_expr_masq_json_parse,
- };
-diff --git a/src/expr/match.c b/src/expr/match.c
-index dd09e1e..f0d8868 100644
---- a/src/expr/match.c
-+++ b/src/expr/match.c
-@@ -249,6 +249,6 @@ struct expr_ops expr_ops_match = {
- .get = nftnl_expr_match_get,
- .parse = nftnl_expr_match_parse,
- .build = nftnl_expr_match_build,
-- .snprintf = nftnl_expr_match_snprintf,
-+ .snprintf_ = nftnl_expr_match_snprintf,
- .json_parse = nftnl_expr_match_json_parse,
- };
-diff --git a/src/expr/meta.c b/src/expr/meta.c
-index 2c75841..907a677 100644
---- a/src/expr/meta.c
-+++ b/src/expr/meta.c
-@@ -290,6 +290,6 @@ struct expr_ops expr_ops_meta = {
- .get = nftnl_expr_meta_get,
- .parse = nftnl_expr_meta_parse,
- .build = nftnl_expr_meta_build,
-- .snprintf = nftnl_expr_meta_snprintf,
-+ .snprintf_ = nftnl_expr_meta_snprintf,
- .json_parse = nftnl_expr_meta_json_parse,
- };
-diff --git a/src/expr/nat.c b/src/expr/nat.c
-index 29bc3a2..d476283 100644
---- a/src/expr/nat.c
-+++ b/src/expr/nat.c
-@@ -383,6 +383,6 @@ struct expr_ops expr_ops_nat = {
- .get = nftnl_expr_nat_get,
- .parse = nftnl_expr_nat_parse,
- .build = nftnl_expr_nat_build,
-- .snprintf = nftnl_expr_nat_snprintf,
-+ .snprintf_ = nftnl_expr_nat_snprintf,
- .json_parse = nftnl_expr_nat_json_parse,
- };
-diff --git a/src/expr/numgen.c b/src/expr/numgen.c
-index a15f03a..28ef741 100644
---- a/src/expr/numgen.c
-+++ b/src/expr/numgen.c
-@@ -264,6 +264,6 @@ struct expr_ops expr_ops_ng = {
- .get = nftnl_expr_ng_get,
- .parse = nftnl_expr_ng_parse,
- .build = nftnl_expr_ng_build,
-- .snprintf = nftnl_expr_ng_snprintf,
-+ .snprintf_ = nftnl_expr_ng_snprintf,
- .json_parse = nftnl_expr_ng_json_parse,
- };
-diff --git a/src/expr/objref.c b/src/expr/objref.c
-index 4cfa3cb..c394290 100644
---- a/src/expr/objref.c
-+++ b/src/expr/objref.c
-@@ -278,6 +278,6 @@ struct expr_ops expr_ops_objref = {
- .get = nftnl_expr_objref_get,
- .parse = nftnl_expr_objref_parse,
- .build = nftnl_expr_objref_build,
-- .snprintf = nftnl_expr_objref_snprintf,
-+ .snprintf_ = nftnl_expr_objref_snprintf,
- .json_parse = nftnl_expr_objref_json_parse,
- };
-diff --git a/src/expr/payload.c b/src/expr/payload.c
-index 91e1587..894ac08 100644
---- a/src/expr/payload.c
-+++ b/src/expr/payload.c
-@@ -348,6 +348,6 @@ struct expr_ops expr_ops_payload = {
- .get = nftnl_expr_payload_get,
- .parse = nftnl_expr_payload_parse,
- .build = nftnl_expr_payload_build,
-- .snprintf = nftnl_expr_payload_snprintf,
-+ .snprintf_ = nftnl_expr_payload_snprintf,
- .json_parse = nftnl_expr_payload_json_parse,
- };
-diff --git a/src/expr/queue.c b/src/expr/queue.c
-index 8a9deda..389af83 100644
---- a/src/expr/queue.c
-+++ b/src/expr/queue.c
-@@ -276,6 +276,6 @@ struct expr_ops expr_ops_queue = {
- .get = nftnl_expr_queue_get,
- .parse = nftnl_expr_queue_parse,
- .build = nftnl_expr_queue_build,
-- .snprintf = nftnl_expr_queue_snprintf,
-+ .snprintf_ = nftnl_expr_queue_snprintf,
- .json_parse = nftnl_expr_queue_json_parse,
- };
-diff --git a/src/expr/quota.c b/src/expr/quota.c
-index 667e6e1..ff5d182 100644
---- a/src/expr/quota.c
-+++ b/src/expr/quota.c
-@@ -203,6 +203,6 @@ struct expr_ops expr_ops_quota = {
- .get = nftnl_expr_quota_get,
- .parse = nftnl_expr_quota_parse,
- .build = nftnl_expr_quota_build,
-- .snprintf = nftnl_expr_quota_snprintf,
-+ .snprintf_ = nftnl_expr_quota_snprintf,
- .json_parse = nftnl_expr_quota_json_parse,
- };
-diff --git a/src/expr/range.c b/src/expr/range.c
-index 8c8ce12..34d422b 100644
---- a/src/expr/range.c
-+++ b/src/expr/range.c
-@@ -283,6 +283,6 @@ struct expr_ops expr_ops_range = {
- .get = nftnl_expr_range_get,
- .parse = nftnl_expr_range_parse,
- .build = nftnl_expr_range_build,
-- .snprintf = nftnl_expr_range_snprintf,
-+ .snprintf_ = nftnl_expr_range_snprintf,
- .json_parse = nftnl_expr_range_json_parse,
- };
-diff --git a/src/expr/redir.c b/src/expr/redir.c
-index 43538d5..8a21f93 100644
---- a/src/expr/redir.c
-+++ b/src/expr/redir.c
-@@ -242,6 +242,6 @@ struct expr_ops expr_ops_redir = {
- .get = nftnl_expr_redir_get,
- .parse = nftnl_expr_redir_parse,
- .build = nftnl_expr_redir_build,
-- .snprintf = nftnl_expr_redir_snprintf,
-+ .snprintf_ = nftnl_expr_redir_snprintf,
- .json_parse = nftnl_expr_redir_json_parse,
- };
-diff --git a/src/expr/reject.c b/src/expr/reject.c
-index 11d8b20..b10e729 100644
---- a/src/expr/reject.c
-+++ b/src/expr/reject.c
-@@ -200,6 +200,6 @@ struct expr_ops expr_ops_reject = {
- .get = nftnl_expr_reject_get,
- .parse = nftnl_expr_reject_parse,
- .build = nftnl_expr_reject_build,
-- .snprintf = nftnl_expr_reject_snprintf,
-+ .snprintf_ = nftnl_expr_reject_snprintf,
- .json_parse = nftnl_expr_reject_json_parse,
- };
-diff --git a/src/expr/rt.c b/src/expr/rt.c
-index 5088e66..9f44b29 100644
---- a/src/expr/rt.c
-+++ b/src/expr/rt.c
-@@ -238,6 +238,6 @@ struct expr_ops expr_ops_rt = {
- .get = nftnl_expr_rt_get,
- .parse = nftnl_expr_rt_parse,
- .build = nftnl_expr_rt_build,
-- .snprintf = nftnl_expr_rt_snprintf,
-+ .snprintf_ = nftnl_expr_rt_snprintf,
- .json_parse = nftnl_expr_rt_json_parse,
- };
-diff --git a/src/expr/target.c b/src/expr/target.c
-index ed4bf7d..2ef4078 100644
---- a/src/expr/target.c
-+++ b/src/expr/target.c
-@@ -249,6 +249,6 @@ struct expr_ops expr_ops_target = {
- .get = nftnl_expr_target_get,
- .parse = nftnl_expr_target_parse,
- .build = nftnl_expr_target_build,
-- .snprintf = nftnl_expr_target_snprintf,
-+ .snprintf_ = nftnl_expr_target_snprintf,
- .json_parse = nftnl_expr_target_json_parse,
- };
-diff --git a/src/obj/counter.c b/src/obj/counter.c
-index beadc93..8c4cc25 100644
---- a/src/obj/counter.c
-+++ b/src/obj/counter.c
-@@ -179,6 +179,6 @@ struct obj_ops obj_ops_counter = {
- .get = nftnl_obj_counter_get,
- .parse = nftnl_obj_counter_parse,
- .build = nftnl_obj_counter_build,
-- .snprintf = nftnl_obj_counter_snprintf,
-+ .snprintf_ = nftnl_obj_counter_snprintf,
- .json_parse = nftnl_obj_counter_json_parse,
- };
-diff --git a/src/obj/ct_helper.c b/src/obj/ct_helper.c
-index d6d3111..4c7c88b 100644
---- a/src/obj/ct_helper.c
-+++ b/src/obj/ct_helper.c
-@@ -205,6 +205,6 @@ struct obj_ops obj_ops_ct_helper = {
- .get = nftnl_obj_ct_helper_get,
- .parse = nftnl_obj_ct_helper_parse,
- .build = nftnl_obj_ct_helper_build,
-- .snprintf = nftnl_obj_ct_helper_snprintf,
-+ .snprintf_ = nftnl_obj_ct_helper_snprintf,
- .json_parse = nftnl_obj_quota_json_parse,
- };
-diff --git a/src/obj/quota.c b/src/obj/quota.c
-index d5757b2..e959ff8 100644
---- a/src/obj/quota.c
-+++ b/src/obj/quota.c
-@@ -200,6 +200,6 @@ struct obj_ops obj_ops_quota = {
- .get = nftnl_obj_quota_get,
- .parse = nftnl_obj_quota_parse,
- .build = nftnl_obj_quota_build,
-- .snprintf = nftnl_obj_quota_snprintf,
-+ .snprintf_ = nftnl_obj_quota_snprintf,
- .json_parse = nftnl_obj_quota_json_parse,
- };
-diff --git a/src/object.c b/src/object.c
-index d409c6d..b938c97 100644
---- a/src/object.c
-+++ b/src/object.c
-@@ -389,7 +389,7 @@ static int nftnl_obj_export(char *buf, size_t size,
- nftnl_buf_u32(&b, type, obj->use, USE);
-
- if (obj->ops)
-- ret = obj->ops->snprintf(buf + b.len, size - b.len, type,
-+ ret = obj->ops->snprintf_(buf + b.len, size - b.len, type,
- flags, obj);
-
- b.len += ret;
-@@ -410,7 +410,7 @@ static int nftnl_obj_snprintf_dflt(char *buf, size_t size,
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
-
- if (obj->ops) {
-- ret = obj->ops->snprintf(buf + offset, offset, type, flags, obj);
-+ ret = obj->ops->snprintf_(buf + offset, offset, type, flags, obj);
- SNPRINTF_BUFFER_SIZE(ret, size, len, offset);
- }
- ret = snprintf(buf + offset, offset, "]");
---
-2.12.2
-
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
new file mode 100644
index 0000000000..abeca6579c
--- /dev/null
+++ b/meta-networking/recipes-filter/libnftnl/libnftnl/0001-configure.ac-Add-serial-tests.patch
@@ -0,0 +1,33 @@
+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
+
+ptest needs buildtest-TESTS and runtest-TESTS targets.
+serial-tests is required to generate those targets.
+
+Upstream-Status: Inappropriate (default automake behavior incompatible with ptest)
+
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+---
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+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-xz
+- 1.6 subdir-objects])
++ 1.6 subdir-objects serial-tests])
++
++AM_EXTRA_RECURSIVE_TARGETS([buildtest-TESTS])
+
+ dnl kernel style compile messages
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+--
+2.25.1
+
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl/run-ptest b/meta-networking/recipes-filter/libnftnl/libnftnl/run-ptest
new file mode 100644
index 0000000000..133cf92d02
--- /dev/null
+++ b/meta-networking/recipes-filter/libnftnl/libnftnl/run-ptest
@@ -0,0 +1,2 @@
+#!/bin/sh
+make -C tests -k runtest-TESTS
diff --git a/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb b/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb
deleted file mode 100644
index ca01c0a611..0000000000
--- a/meta-networking/recipes-filter/libnftnl/libnftnl_1.0.7.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Library for low-level interaction with nftables Netlink's API over libmnl"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=79808397c3355f163c012616125c9e26"
-SECTION = "libs"
-DEPENDS = "libmnl"
-PV .= "+git${SRCPV}"
-SRCREV = "4b89c0cb0883f638ff1abbc2ff47c43cdc26aac5"
-SRC_URI = "git://git.netfilter.org/libnftnl \
- file://0001-Declare-the-define-visivility-attribute-together.patch \
- file://0001-avoid-naming-local-function-as-one-of-printf-family.patch \
- "
-SRC_URI[md5sum] = "82183867168eb6644926c48b991b8aac"
-SRC_URI[sha256sum] = "9bb66ecbc64b8508249402f0093829f44177770ad99f6042b86b3a467d963982"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
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 8177ebcc2a..9b938beae3 100644
--- a/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
+++ b/meta-networking/recipes-filter/nfacct/nfacct_1.0.2.bb
@@ -1,12 +1,12 @@
SUMMARY = "nfacct is the command line tool to create/retrieve/delete accounting objects"
HOMEPAGE = "http://netfilter.org/projects/nfacct/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-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/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch b/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch
deleted file mode 100644
index 86a3d53dfd..0000000000
--- a/meta-networking/recipes-filter/nftables/files/0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-From 0011985554e269e1cc8f8e5b41eb9dcd795ebe8c Mon Sep 17 00:00:00 2001
-From: Arturo Borrero Gonzalez <arturo@debian.org>
-Date: Wed, 25 Jan 2017 12:51:08 +0100
-Subject: [PATCH] payload: explicit network ctx assignment for icmp/icmp6 in
- special families
-
-In the inet, bridge and netdev families, we can add rules like these:
-
-% nft add rule inet t c ip protocol icmp icmp type echo-request
-% nft add rule inet t c ip6 nexthdr icmpv6 icmpv6 type echo-request
-
-However, when we print the ruleset:
-
-% nft list ruleset
-table inet t {
- chain c {
- icmpv6 type echo-request
- icmp type echo-request
- }
-}
-
-These rules we obtain can't be added again:
-
-% nft add rule inet t c icmp type echo-request
-<cmdline>:1:19-27: Error: conflicting protocols specified: inet-service vs. icmp
-add rule inet t c icmp type echo-request
- ^^^^^^^^^
-
-% nft add rule inet t c icmpv6 type echo-request
-<cmdline>:1:19-29: Error: conflicting protocols specified: inet-service vs. icmpv6
-add rule inet t c icmpv6 type echo-request
- ^^^^^^^^^^^
-
-Since I wouldn't expect an IP packet carrying ICMPv6, or IPv6 packet
-carrying ICMP, if the link layer is inet, the network layer protocol context
-can be safely update to 'ip' or 'ip6'.
-
-Moreover, nft currently generates a 'meta nfproto ipvX' depedency when
-using icmp or icmp6 in the inet family, and similar in netdev and bridge
-families.
-
-While at it, a bit of code factorization is introduced.
-
-Fixes: https://bugzilla.netfilter.org/show_bug.cgi?id=1073
-Signed-off-by: Arturo Borrero Gonzalez <arturo@debian.org>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 70 ++++++++++++++++---------------------
- tests/py/any/icmpX.t.netdev | 8 +++++
- tests/py/any/icmpX.t.netdev.payload | 36 +++++++++++++++++++
- tests/py/bridge/icmpX.t | 8 +++++
- tests/py/bridge/icmpX.t.payload | 36 +++++++++++++++++++
- tests/py/inet/icmpX.t | 8 +++++
- tests/py/inet/icmpX.t.payload | 36 +++++++++++++++++++
- 7 files changed, 162 insertions(+), 40 deletions(-)
- create mode 100644 tests/py/any/icmpX.t.netdev
- create mode 100644 tests/py/any/icmpX.t.netdev.payload
- create mode 100644 tests/py/bridge/icmpX.t
- create mode 100644 tests/py/bridge/icmpX.t.payload
- create mode 100644 tests/py/inet/icmpX.t
- create mode 100644 tests/py/inet/icmpX.t.payload
-
-diff --git a/src/payload.c b/src/payload.c
-index af533b2..74f8254 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -223,6 +223,34 @@ static int payload_add_dependency(struct eval_ctx *ctx,
- return 0;
- }
-
-+static const struct proto_desc *
-+payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr)
-+{
-+ switch (expr->payload.base) {
-+ case PROTO_BASE_LL_HDR:
-+ switch (ctx->pctx.family) {
-+ case NFPROTO_INET:
-+ return &proto_inet;
-+ case NFPROTO_BRIDGE:
-+ return &proto_eth;
-+ case NFPROTO_NETDEV:
-+ return &proto_netdev;
-+ default:
-+ break;
-+ }
-+ break;
-+ case PROTO_BASE_TRANSPORT_HDR:
-+ if (expr->payload.desc == &proto_icmp)
-+ return &proto_ip;
-+ if (expr->payload.desc == &proto_icmp6)
-+ return &proto_ip6;
-+ return &proto_inet_service;
-+ default:
-+ break;
-+ }
-+ return NULL;
-+}
-+
- /**
- * payload_gen_dependency - generate match expression on payload dependency
- *
-@@ -276,46 +304,8 @@ int payload_gen_dependency(struct eval_ctx *ctx, const struct expr *expr,
-
- desc = ctx->pctx.protocol[expr->payload.base - 1].desc;
- /* Special case for mixed IPv4/IPv6 and bridge tables */
-- if (desc == NULL) {
-- switch (ctx->pctx.family) {
-- case NFPROTO_INET:
-- switch (expr->payload.base) {
-- case PROTO_BASE_LL_HDR:
-- desc = &proto_inet;
-- break;
-- case PROTO_BASE_TRANSPORT_HDR:
-- desc = &proto_inet_service;
-- break;
-- default:
-- break;
-- }
-- break;
-- case NFPROTO_BRIDGE:
-- switch (expr->payload.base) {
-- case PROTO_BASE_LL_HDR:
-- desc = &proto_eth;
-- break;
-- case PROTO_BASE_TRANSPORT_HDR:
-- desc = &proto_inet_service;
-- break;
-- default:
-- break;
-- }
-- break;
-- case NFPROTO_NETDEV:
-- switch (expr->payload.base) {
-- case PROTO_BASE_LL_HDR:
-- desc = &proto_netdev;
-- break;
-- case PROTO_BASE_TRANSPORT_HDR:
-- desc = &proto_inet_service;
-- break;
-- default:
-- break;
-- }
-- break;
-- }
-- }
-+ if (desc == NULL)
-+ desc = payload_gen_special_dependency(ctx, expr);
-
- if (desc == NULL)
- return expr_error(ctx->msgs, expr,
-diff --git a/tests/py/any/icmpX.t.netdev b/tests/py/any/icmpX.t.netdev
-new file mode 100644
-index 0000000..a327ce6
---- /dev/null
-+++ b/tests/py/any/icmpX.t.netdev
-@@ -0,0 +1,8 @@
-+:ingress;type filter hook ingress device lo priority 0
-+
-+*netdev;test-netdev;ingress
-+
-+ip protocol icmp icmp type echo-request;ok;icmp type echo-request
-+icmp type echo-request;ok
-+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request
-+icmpv6 type echo-request;ok
-diff --git a/tests/py/any/icmpX.t.netdev.payload b/tests/py/any/icmpX.t.netdev.payload
-new file mode 100644
-index 0000000..8b8107c
---- /dev/null
-+++ b/tests/py/any/icmpX.t.netdev.payload
-@@ -0,0 +1,36 @@
-+# ip protocol icmp icmp type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# icmp type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# ip6 nexthdr icmpv6 icmpv6 type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-+# icmpv6 type echo-request
-+netdev test-netdev ingress
-+ [ meta load protocol => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-diff --git a/tests/py/bridge/icmpX.t b/tests/py/bridge/icmpX.t
-new file mode 100644
-index 0000000..8c0a597
---- /dev/null
-+++ b/tests/py/bridge/icmpX.t
-@@ -0,0 +1,8 @@
-+:input;type filter hook input priority 0
-+
-+*bridge;test-bridge;input
-+
-+ip protocol icmp icmp type echo-request;ok;icmp type echo-request
-+icmp type echo-request;ok
-+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request
-+icmpv6 type echo-request;ok
-diff --git a/tests/py/bridge/icmpX.t.payload b/tests/py/bridge/icmpX.t.payload
-new file mode 100644
-index 0000000..19efdd8
---- /dev/null
-+++ b/tests/py/bridge/icmpX.t.payload
-@@ -0,0 +1,36 @@
-+# ip protocol icmp icmp type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# icmp type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# ip6 nexthdr icmpv6 icmpv6 type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-+# icmpv6 type echo-request
-+bridge test-bridge input
-+ [ payload load 2b @ link header + 12 => reg 1 ]
-+ [ cmp eq reg 1 0x0000dd86 ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-diff --git a/tests/py/inet/icmpX.t b/tests/py/inet/icmpX.t
-new file mode 100644
-index 0000000..1b467a1
---- /dev/null
-+++ b/tests/py/inet/icmpX.t
-@@ -0,0 +1,8 @@
-+:input;type filter hook input priority 0
-+
-+*inet;test-inet;input
-+
-+ip protocol icmp icmp type echo-request;ok;icmp type echo-request
-+icmp type echo-request;ok
-+ip6 nexthdr icmpv6 icmpv6 type echo-request;ok;icmpv6 type echo-request
-+icmpv6 type echo-request;ok
-diff --git a/tests/py/inet/icmpX.t.payload b/tests/py/inet/icmpX.t.payload
-new file mode 100644
-index 0000000..81ca774
---- /dev/null
-+++ b/tests/py/inet/icmpX.t.payload
-@@ -0,0 +1,36 @@
-+# ip protocol icmp icmp type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x00000002 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# icmp type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x00000002 ]
-+ [ payload load 1b @ network header + 9 => reg 1 ]
-+ [ cmp eq reg 1 0x00000001 ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000008 ]
-+
-+# ip6 nexthdr icmpv6 icmpv6 type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x0000000a ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
-+# icmpv6 type echo-request
-+inet test-inet input
-+ [ meta load nfproto => reg 1 ]
-+ [ cmp eq reg 1 0x0000000a ]
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000080 ]
-+
---
-2.11.0
-
diff --git a/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch b/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch
deleted file mode 100644
index 4d9e9d11a4..0000000000
--- a/meta-networking/recipes-filter/nftables/files/0002-proto-Add-some-exotic-ICMPv6-types.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 9ade8fb75f8963375b45b3f2973b8bb7aa66ad76 Mon Sep 17 00:00:00 2001
-From: Phil Sutter <phil@nwl.cc>
-Date: Thu, 16 Mar 2017 13:43:20 +0100
-Subject: [PATCH] proto: Add some exotic ICMPv6 types
-
-This adds support for matching on inverse ND messages as defined by
-RFC3122 (not implemented in Linux) and MLDv2 as defined by RFC3810.
-
-Note that ICMPV6_MLD2_REPORT macro is defined in linux/icmpv6.h but
-including that header leads to conflicts with symbols defined in
-netinet/icmp6.h.
-
-In addition to the above, "mld-listener-done" is introduced as an alias
-for "mld-listener-reduction".
-
-Signed-off-by: Phil Sutter <phil@nwl.cc>
-Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/proto.c | 8 ++++++++
- tests/py/ip6/icmpv6.t | 8 ++++++--
- tests/py/ip6/icmpv6.t.payload.ip6 | 34 +++++++++++++++++++++++++++++++++-
- 3 files changed, 47 insertions(+), 3 deletions(-)
-
-diff --git a/src/proto.c b/src/proto.c
-index fb96530..79e9dbf 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -632,6 +632,10 @@ const struct proto_desc proto_ip = {
-
- #include <netinet/icmp6.h>
-
-+#define IND_NEIGHBOR_SOLICIT 141
-+#define IND_NEIGHBOR_ADVERT 142
-+#define ICMPV6_MLD2_REPORT 143
-+
- static const struct symbol_table icmp6_type_tbl = {
- .base = BASE_DECIMAL,
- .symbols = {
-@@ -643,6 +647,7 @@ static const struct symbol_table icmp6_type_tbl = {
- SYMBOL("echo-reply", ICMP6_ECHO_REPLY),
- SYMBOL("mld-listener-query", MLD_LISTENER_QUERY),
- SYMBOL("mld-listener-report", MLD_LISTENER_REPORT),
-+ SYMBOL("mld-listener-done", MLD_LISTENER_REDUCTION),
- SYMBOL("mld-listener-reduction", MLD_LISTENER_REDUCTION),
- SYMBOL("nd-router-solicit", ND_ROUTER_SOLICIT),
- SYMBOL("nd-router-advert", ND_ROUTER_ADVERT),
-@@ -650,6 +655,9 @@ static const struct symbol_table icmp6_type_tbl = {
- SYMBOL("nd-neighbor-advert", ND_NEIGHBOR_ADVERT),
- SYMBOL("nd-redirect", ND_REDIRECT),
- SYMBOL("router-renumbering", ICMP6_ROUTER_RENUMBERING),
-+ SYMBOL("ind-neighbor-solicit", IND_NEIGHBOR_SOLICIT),
-+ SYMBOL("ind-neighbor-advert", IND_NEIGHBOR_ADVERT),
-+ SYMBOL("mld2-listener-report", ICMPV6_MLD2_REPORT),
- SYMBOL_LIST_END
- },
- };
-diff --git a/tests/py/ip6/icmpv6.t b/tests/py/ip6/icmpv6.t
-index afbd451..a898fe3 100644
---- a/tests/py/ip6/icmpv6.t
-+++ b/tests/py/ip6/icmpv6.t
-@@ -11,7 +11,8 @@ icmpv6 type echo-request accept;ok
- icmpv6 type echo-reply accept;ok
- icmpv6 type mld-listener-query accept;ok
- icmpv6 type mld-listener-report accept;ok
--icmpv6 type mld-listener-reduction accept;ok
-+icmpv6 type mld-listener-done accept;ok
-+icmpv6 type mld-listener-reduction accept;ok;icmpv6 type mld-listener-done accept
- icmpv6 type nd-router-solicit accept;ok
- icmpv6 type nd-router-advert accept;ok
- icmpv6 type nd-neighbor-solicit accept;ok
-@@ -19,8 +20,11 @@ icmpv6 type nd-neighbor-advert accept;ok
- icmpv6 type nd-redirect accept;ok
- icmpv6 type parameter-problem accept;ok
- icmpv6 type router-renumbering accept;ok
-+icmpv6 type ind-neighbor-solicit accept;ok
-+icmpv6 type ind-neighbor-advert accept;ok
-+icmpv6 type mld2-listener-report accept;ok
- icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept;ok
--icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept;ok
-+icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept;ok
- icmpv6 type {mld-listener-query, time-exceeded, nd-router-advert} accept;ok
- icmpv6 type != {mld-listener-query, time-exceeded, nd-router-advert} accept;ok
-
-diff --git a/tests/py/ip6/icmpv6.t.payload.ip6 b/tests/py/ip6/icmpv6.t.payload.ip6
-index 9fe2496..30f58ca 100644
---- a/tests/py/ip6/icmpv6.t.payload.ip6
-+++ b/tests/py/ip6/icmpv6.t.payload.ip6
-@@ -54,6 +54,14 @@ ip6 test-ip6 input
- [ cmp eq reg 1 0x00000083 ]
- [ immediate reg 0 accept ]
-
-+# icmpv6 type mld-listener-done accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000084 ]
-+ [ immediate reg 0 accept ]
-+
- # icmpv6 type mld-listener-reduction accept
- ip6 test-ip6 input
- [ payload load 1b @ network header + 6 => reg 1 ]
-@@ -118,6 +126,30 @@ ip6 test-ip6 input
- [ cmp eq reg 1 0x0000008a ]
- [ immediate reg 0 accept ]
-
-+# icmpv6 type ind-neighbor-solicit accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x0000008d ]
-+ [ immediate reg 0 accept ]
-+
-+# icmpv6 type ind-neighbor-advert accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x0000008e ]
-+ [ immediate reg 0 accept ]
-+
-+# icmpv6 type mld2-listener-report accept
-+ip6 test-ip6 input
-+ [ payload load 1b @ network header + 6 => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x0000008f ]
-+ [ immediate reg 0 accept ]
-+
- # icmpv6 type {destination-unreachable, time-exceeded, nd-router-solicit} accept
- __set%d test-ip6 3
- __set%d test-ip6 0
-@@ -129,7 +161,7 @@ ip6 test-ip6 input
- [ lookup reg 1 set __set%d ]
- [ immediate reg 0 accept ]
-
--# icmpv6 type {router-renumbering, mld-listener-reduction, time-exceeded, nd-router-solicit} accept
-+# icmpv6 type {router-renumbering, mld-listener-done, time-exceeded, nd-router-solicit} accept
- __set%d test-ip6 3
- __set%d test-ip6 0
- element 0000008a : 0 [end] element 00000084 : 0 [end] element 00000003 : 0 [end] element 00000085 : 0 [end]
---
-2.11.0
-
diff --git a/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch b/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch
deleted file mode 100644
index 50cac300e8..0000000000
--- a/meta-networking/recipes-filter/nftables/files/0003-payload-split-ll-proto-dependency-into-helper.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 8d8cfe5ad6ca460a5262fb15fdbef3601058c784 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Thu, 18 May 2017 13:30:54 +0200
-Subject: [PATCH 1/4] payload: split ll proto dependency into helper
-
-will be re-used in folloup patch for icmp/icmpv6 depenency
-handling.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 29 ++++++++++++++++++-----------
- 1 file changed, 18 insertions(+), 11 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 55128fe..31e5a02 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -224,21 +224,28 @@ static int payload_add_dependency(struct eval_ctx *ctx,
- }
-
- static const struct proto_desc *
-+payload_get_get_ll_hdr(const struct eval_ctx *ctx)
-+{
-+ switch (ctx->pctx.family) {
-+ case NFPROTO_INET:
-+ return &proto_inet;
-+ case NFPROTO_BRIDGE:
-+ return &proto_eth;
-+ case NFPROTO_NETDEV:
-+ return &proto_netdev;
-+ default:
-+ break;
-+ }
-+
-+ return NULL;
-+}
-+
-+static const struct proto_desc *
- payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr)
- {
- switch (expr->payload.base) {
- case PROTO_BASE_LL_HDR:
-- switch (ctx->pctx.family) {
-- case NFPROTO_INET:
-- return &proto_inet;
-- case NFPROTO_BRIDGE:
-- return &proto_eth;
-- case NFPROTO_NETDEV:
-- return &proto_netdev;
-- default:
-- break;
-- }
-- break;
-+ return payload_get_get_ll_hdr(ctx);
- case PROTO_BASE_TRANSPORT_HDR:
- if (expr->payload.desc == &proto_icmp)
- return &proto_ip;
---
-2.11.0
-
diff --git a/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch b/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch
deleted file mode 100644
index 180edb3504..0000000000
--- a/meta-networking/recipes-filter/nftables/files/0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 9a1f2bbf3cd2417e0c10d18578e224abe2071d68 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Tue, 21 Mar 2017 19:47:22 +0100
-Subject: [PATCH 2/4] src: allow update of net base w. meta l4proto icmpv6
-
-nft add rule ip6 f i meta l4proto ipv6-icmp icmpv6 type nd-router-advert
-<cmdline>:1:50-60: Error: conflicting protocols specified: unknown vs. icmpv6
-
-add icmpv6 to nexthdr list so base gets updated correctly.
-
-Reported-by: Thomas Woerner <twoerner@redhat.com>
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/proto.c | 1 +
- tests/py/any/meta.t | 1 +
- tests/py/any/meta.t.payload | 7 +++++++
- 3 files changed, 9 insertions(+)
-
-diff --git a/src/proto.c b/src/proto.c
-index 79e9dbf..fcdfbe7 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = {
- PROTO_LINK(IPPROTO_TCP, &proto_tcp),
- PROTO_LINK(IPPROTO_DCCP, &proto_dccp),
- PROTO_LINK(IPPROTO_SCTP, &proto_sctp),
-+ PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6),
- },
- .templates = {
- [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8),
-diff --git a/tests/py/any/meta.t b/tests/py/any/meta.t
-index c3ac0a4..2ff942f 100644
---- a/tests/py/any/meta.t
-+++ b/tests/py/any/meta.t
-@@ -38,6 +38,7 @@ meta l4proto { 33, 55, 67, 88};ok;meta l4proto { 33, 55, 67, 88}
- meta l4proto != { 33, 55, 67, 88};ok
- meta l4proto { 33-55};ok
- meta l4proto != { 33-55};ok
-+meta l4proto ipv6-icmp icmpv6 type nd-router-advert;ok;icmpv6 type nd-router-advert
-
- meta priority root;ok
- meta priority none;ok
-diff --git a/tests/py/any/meta.t.payload b/tests/py/any/meta.t.payload
-index e432656..871f1ad 100644
---- a/tests/py/any/meta.t.payload
-+++ b/tests/py/any/meta.t.payload
-@@ -187,6 +187,13 @@ ip test-ip4 input
- [ byteorder reg 1 = hton(reg 1, 2, 1) ]
- [ lookup reg 1 set __set%d 0x1 ]
-
-+# meta l4proto ipv6-icmp icmpv6 type nd-router-advert
-+ip test-ip4 input
-+ [ meta load l4proto => reg 1 ]
-+ [ cmp eq reg 1 0x0000003a ]
-+ [ payload load 1b @ transport header + 0 => reg 1 ]
-+ [ cmp eq reg 1 0x00000086 ]
-+
- # meta mark 0x4
- ip test-ip4 input
- [ meta load mark => reg 1 ]
---
-2.11.0
-
diff --git a/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch b/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch
deleted file mode 100644
index f600ae05c0..0000000000
--- a/meta-networking/recipes-filter/nftables/files/0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 2366ed9ffcb4f5f5341f10f0a1d1a4688d37ad87 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Wed, 22 Mar 2017 15:08:48 +0100
-Subject: [PATCH 3/4] src: ipv6: switch implicit dependencies to meta l4proto
-
-when using rule like
-
-ip6 filter input tcp dport 22
-nft generates:
- [ payload load 1b @ network header + 6 => reg 1 ]
- [ cmp eq reg 1 0x00000006 ]
- [ payload load 2b @ transport header + 2 => reg 1 ]
- [ cmp eq reg 1 0x00001600 ]
-
-which is: ip6 filter input ip6 nexthdr tcp dport 22
-IOW, such a rule won't match if e.g. a fragment header is in place.
-
-This changes ip6_proto to use 'meta l4proto' which is the protocol header
-found by exthdr walk.
-
-A side effect is that for bridge we get a shorter dependency chain as it
-no longer needs to prepend 'ether proto ipv6' for old 'ip6 nexthdr' dep.
-
-Only problem:
-
-ip6 nexthdr tcp tcp dport 22
-will now inject a (useless) meta l4 dependency as ip6 nexthdr is no
-longer flagged as EXPR_F_PROTOCOL, to avoid this add a small helper
-that skips the unneded meta dependency in that case.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 19 ++++++++++++++++++-
- src/proto.c | 2 +-
- 2 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 31e5a02..38db15e 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -117,6 +117,23 @@ static const struct expr_ops payload_expr_ops = {
- .pctx_update = payload_expr_pctx_update,
- };
-
-+/*
-+ * ipv6 is special case, we normally use 'meta l4proto' to fetch the last
-+ * l4 header of the ipv6 extension header chain so we will also match
-+ * tcp after a fragmentation header, for instance.
-+ *
-+ * If user specifically asks for nexthdr x, treat is as a full
-+ * dependency rather than injecting another (useless) meta l4 one.
-+ */
-+static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type)
-+{
-+ if (type == desc->protocol_key ||
-+ (desc == &proto_ip6 && type == IP6HDR_NEXTHDR))
-+ return true;
-+
-+ return false;
-+}
-+
- struct expr *payload_expr_alloc(const struct location *loc,
- const struct proto_desc *desc,
- unsigned int type)
-@@ -129,7 +146,7 @@ struct expr *payload_expr_alloc(const struct location *loc,
- if (desc != NULL) {
- tmpl = &desc->templates[type];
- base = desc->base;
-- if (type == desc->protocol_key)
-+ if (proto_key_is_protocol(desc, type))
- flags = EXPR_F_PROTOCOL;
- } else {
- tmpl = &proto_unknown_template;
-diff --git a/src/proto.c b/src/proto.c
-index fcdfbe7..3b20a5f 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -707,7 +707,6 @@ const struct proto_desc proto_icmp6 = {
- const struct proto_desc proto_ip6 = {
- .name = "ip6",
- .base = PROTO_BASE_NETWORK_HDR,
-- .protocol_key = IP6HDR_NEXTHDR,
- .protocols = {
- PROTO_LINK(IPPROTO_ESP, &proto_esp),
- PROTO_LINK(IPPROTO_AH, &proto_ah),
-@@ -720,6 +719,7 @@ const struct proto_desc proto_ip6 = {
- PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6),
- },
- .templates = {
-+ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8),
- [IP6HDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4),
- [IP6HDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 4, 6),
- [IP6HDR_ECN] = HDR_BITFIELD("ecn", &ecn_type, 10, 2),
---
-2.11.0
-
diff --git a/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch b/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch
deleted file mode 100644
index 00076d7cef..0000000000
--- a/meta-networking/recipes-filter/nftables/files/0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From f21a7a4849b50c30341ec571813bd7fe37040ad3 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Thu, 18 May 2017 13:30:54 +0200
-Subject: [PATCH 4/4] payload: enforce ip/ip6 protocol depending on icmp or
- icmpv6
-
-After some discussion with Pablo we agreed to treat icmp/icmpv6 specially.
-
-in the case of a rule like 'tcp dport 22' the inet, bridge and netdev
-families only care about the lower layer protocol.
-
-In the icmpv6 case however we'd like to also enforce an ipv6 protocol check
-(and ipv4 check in icmp case).
-
-This extends payload_gen_special_dependency() to consider this.
-With this patch:
-
-add rule $pf filter input meta l4proto icmpv6
-add rule $pf filter input meta l4proto icmpv6 icmpv6 type echo-request
-add rule $pf filter input icmpv6 type echo-request
-
-will work in all tables and all families.
-For inet/bridge/netdev, an ipv6 protocol dependency is added; this will
-not match ipv4 packets with ip->protocol == icmpv6, EXCEPT in the case
-of the ip family.
-
-Its still possible to match icmpv6-in-ipv4 in inet/bridge/netdev with an
-explicit dependency:
-
-add rule inet f i ip protocol ipv6-icmp meta l4proto ipv6-icmp icmpv6 type ...
-
-Implicit dependencies won't get removed at the moment, so
- bridge ... icmp type echo-request
-will be shown as
- ether type ip meta l4proto 1 icmp type echo-request
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 27 +++++++++++++++++++++++----
- 1 file changed, 23 insertions(+), 4 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 38db15e..8796ee5 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -264,10 +264,29 @@ payload_gen_special_dependency(struct eval_ctx *ctx, const struct expr *expr)
- case PROTO_BASE_LL_HDR:
- return payload_get_get_ll_hdr(ctx);
- case PROTO_BASE_TRANSPORT_HDR:
-- if (expr->payload.desc == &proto_icmp)
-- return &proto_ip;
-- if (expr->payload.desc == &proto_icmp6)
-- return &proto_ip6;
-+ if (expr->payload.desc == &proto_icmp ||
-+ expr->payload.desc == &proto_icmp6) {
-+ const struct proto_desc *desc, *desc_upper;
-+ struct stmt *nstmt;
-+
-+ desc = ctx->pctx.protocol[PROTO_BASE_LL_HDR].desc;
-+ if (!desc) {
-+ desc = payload_get_get_ll_hdr(ctx);
-+ if (!desc)
-+ break;
-+ }
-+
-+ desc_upper = &proto_ip6;
-+ if (expr->payload.desc == &proto_icmp)
-+ desc_upper = &proto_ip;
-+
-+ if (payload_add_dependency(ctx, desc, desc_upper,
-+ expr, &nstmt) < 0)
-+ return NULL;
-+
-+ list_add_tail(&nstmt->list, &ctx->stmt->list);
-+ return desc_upper;
-+ }
- return &proto_inet_service;
- default:
- break;
---
-2.11.0
-
diff --git a/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch b/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch
deleted file mode 100644
index 5b72437d27..0000000000
--- a/meta-networking/recipes-filter/nftables/files/0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 0825c57d571bb7121e7048e198b9b023f7e7f358 Mon Sep 17 00:00:00 2001
-From: Florian Westphal <fw@strlen.de>
-Date: Sun, 7 May 2017 03:53:30 +0200
-Subject: [PATCH] src: ip: switch implicit dependencies to meta l4proto too
-
-after ip6 nexthdr also switch ip to meta l4proto instead of ip protocol.
-
-While its needed for ipv6 (due to extension headers) this isn't needed
-for ip but it has the advantage that
-
-tcp dport 22
-
-produces same expressions for ip/ip6/inet families.
-
-Signed-off-by: Florian Westphal <fw@strlen.de>
----
-Upstream-Status: Backport
-Signed-off-by: André Draszik <adraszik@tycoint.com>
- src/payload.c | 17 +++++++++++------
- src/proto.c | 3 ++-
- 2 files changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/src/payload.c b/src/payload.c
-index 8796ee5..11b6df3 100644
---- a/src/payload.c
-+++ b/src/payload.c
-@@ -118,17 +118,22 @@ static const struct expr_ops payload_expr_ops = {
- };
-
- /*
-- * ipv6 is special case, we normally use 'meta l4proto' to fetch the last
-- * l4 header of the ipv6 extension header chain so we will also match
-+ * We normally use 'meta l4proto' to fetch the last l4 header of the
-+ * ipv6 extension header chain so we will also match
- * tcp after a fragmentation header, for instance.
-+ * For consistency we also use meta l4proto for ipv4.
- *
-- * If user specifically asks for nexthdr x, treat is as a full
-- * dependency rather than injecting another (useless) meta l4 one.
-+ * If user specifically asks for nexthdr x, don't add another (useless)
-+ * meta dependency.
- */
- static bool proto_key_is_protocol(const struct proto_desc *desc, unsigned int type)
- {
-- if (type == desc->protocol_key ||
-- (desc == &proto_ip6 && type == IP6HDR_NEXTHDR))
-+ if (type == desc->protocol_key)
-+ return true;
-+
-+ if (desc == &proto_ip6 && type == IP6HDR_NEXTHDR)
-+ return true;
-+ if (desc == &proto_ip && type == IPHDR_PROTOCOL)
- return true;
-
- return false;
-diff --git a/src/proto.c b/src/proto.c
-index 3b20a5f..2afedf7 100644
---- a/src/proto.c
-+++ b/src/proto.c
-@@ -587,7 +587,6 @@ const struct proto_desc proto_ip = {
- .name = "ip",
- .base = PROTO_BASE_NETWORK_HDR,
- .checksum_key = IPHDR_CHECKSUM,
-- .protocol_key = IPHDR_PROTOCOL,
- .protocols = {
- PROTO_LINK(IPPROTO_ICMP, &proto_icmp),
- PROTO_LINK(IPPROTO_ESP, &proto_esp),
-@@ -600,6 +599,7 @@ const struct proto_desc proto_ip = {
- PROTO_LINK(IPPROTO_SCTP, &proto_sctp),
- },
- .templates = {
-+ [0] = PROTO_META_TEMPLATE("l4proto", &inet_protocol_type, NFT_META_L4PROTO, 8),
- [IPHDR_VERSION] = HDR_BITFIELD("version", &integer_type, 0, 4),
- [IPHDR_HDRLENGTH] = HDR_BITFIELD("hdrlength", &integer_type, 4, 4),
- [IPHDR_DSCP] = HDR_BITFIELD("dscp", &dscp_type, 8, 6),
-@@ -779,6 +779,7 @@ const struct proto_desc proto_inet_service = {
- PROTO_LINK(IPPROTO_TCP, &proto_tcp),
- PROTO_LINK(IPPROTO_DCCP, &proto_dccp),
- PROTO_LINK(IPPROTO_SCTP, &proto_sctp),
-+ PROTO_LINK(IPPROTO_ICMP, &proto_icmp),
- PROTO_LINK(IPPROTO_ICMPV6, &proto_icmp6),
- },
- .templates = {
---
-2.11.0
-
diff --git a/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch b/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch
deleted file mode 100644
index 8dce90a754..0000000000
--- a/meta-networking/recipes-filter/nftables/files/fix-to-generate-ntf.8.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-[PATCH] disable to make ntf.8 man
-
-Upstream-Status: Pending
-
-$DB2MAN do not support the xinclude parameter whether it is
-docbook2x-man or other, so disable to make ntf.8 man
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- doc/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index a92de7f..537c36b 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -1,5 +1,5 @@
- if BUILD_MAN
--man_MANS = nft.8
-+#man_MANS = nft.8
- endif
-
- if BUILD_PDF
---
-1.9.1
-
diff --git a/meta-networking/recipes-filter/nftables/nftables/run-ptest b/meta-networking/recipes-filter/nftables/nftables/run-ptest
new file mode 100644
index 0000000000..27d780ace0
--- /dev/null
+++ b/meta-networking/recipes-filter/nftables/nftables/run-ptest
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+NFTABLESLIB=@libdir@/nftables
+cd ${NFTABLESLIB}/ptest
+
+LOG="${NFTABLESLIB}/ptest/nftables_ptest_$(date +%Y%m%d-%H%M%S).log"
+tests/shell/run-tests.sh -v | sed -e '/OK/ s/^/PASS: / ; /FAILED/ s/^/FAIL: /' | sed "s,\x1B\[[0-9;]*[a-zA-Z],,g" | tee -a ${LOG}
+
+passed=`grep PASS: ${LOG}|wc -l`
+failed=`grep FAIL: ${LOG}|wc -l`
+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_0.7.bb b/meta-networking/recipes-filter/nftables/nftables_0.7.bb
deleted file mode 100644
index 0ea79953be..0000000000
--- a/meta-networking/recipes-filter/nftables/nftables_0.7.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Netfilter Tables userspace utillites"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d1a78fdd879a263a5e0b42d1fc565e79"
-SECTION = "net"
-
-DEPENDS = "libmnl libnftnl readline gmp"
-RRECOMMENDS_${PN} += "kernel-module-nf-tables \
- "
-
-SRC_URI = "http://www.netfilter.org/projects/nftables/files/${BP}.tar.bz2 \
- file://fix-to-generate-ntf.8.patch \
- \
- file://0001-payload-explicit-network-ctx-assignment-for-icmp-icm.patch \
- file://0002-proto-Add-some-exotic-ICMPv6-types.patch \
- \
- file://0003-payload-split-ll-proto-dependency-into-helper.patch \
- file://0004-src-allow-update-of-net-base-w.-meta-l4proto-icmpv6.patch \
- file://0005-src-ipv6-switch-implicit-dependencies-to-meta-l4prot.patch \
- file://0006-payload-enforce-ip-ip6-protocol-depending-on-icmp-or.patch \
- file://0007-src-ip-switch-implicit-dependencies-to-meta-l4proto-.patch \
- "
-SRC_URI[md5sum] = "4c005e76a15a029afaba71d7db21d065"
-SRC_URI[sha256sum] = "fe639239d801ce5890397f6f4391c58a934bfc27d8b7d5ef922692de5ec4ed43"
-
-ASNEEDED = ""
-
-inherit autotools pkgconfig
diff --git a/meta-networking/recipes-filter/nftables/nftables_1.0.7.bb b/meta-networking/recipes-filter/nftables/nftables_1.0.7.bb
new file mode 100644
index 0000000000..8380bbd73d
--- /dev/null
+++ b/meta-networking/recipes-filter/nftables/nftables_1.0.7.bb
@@ -0,0 +1,80 @@
+SUMMARY = "Netfilter Tables userspace utillites"
+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://run-ptest \
+ "
+SRC_URI[sha256sum] = "c12ac941fff9adaedf17367d5ce213789b98a0d314277bc22b3d71e10891f412"
+
+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"
+
+# Disable the python via autoconf so we can build it separately via setuptools3
+EXTRA_OECONF = "--disable-python \
+ ${@bb.utils.contains_any('PACKAGECONFIG', 'editline linenoise readline', '', '--without-cli', d)}"
+
+SETUPTOOLS_SETUP_PATH = "${S}/py"
+
+inherit ${@bb.utils.contains('PACKAGECONFIG', 'python', 'setuptools3', '', d)}
+
+RRECOMMENDS:${PN} += "kernel-module-nf-tables"
+
+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 make iproute2 iputils-ping procps python3-core python3-ctypes python3-json python3-misc sed 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
+ # handle multilib
+ sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
+}
diff --git a/meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.init b/meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.init
new file mode 100644
index 0000000000..05d284e725
--- /dev/null
+++ b/meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.init
@@ -0,0 +1,180 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: ulogd2 ulogd
+# Required-Start: $local_fs
+# Should-Start:
+# Required-Stop: $local_fs
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Userspace logging daemon for netfilter/iptables
+### END INIT INFO
+
+# The definition of actions: (From LSB 3.1.0)
+# start start the service
+# stop stop the service
+# restart stop and restart the service if the service is already running,
+# otherwise start the service
+# try-restart restart the service if the service is already running
+# reload cause the configuration of the service to be reloaded without
+# actually stopping and restarting the service
+# force-reload cause the configuration to be reloaded if the service supports
+# this, otherwise restart the service if it is running
+# status print the current status of the service
+
+# The start, stop, restart, force-reload, and status actions shall be supported
+# by all init scripts; the reload and the try-restart actions are optional
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+DESC="Userspace logging daemon for netfilter/iptables"
+NAME="ulogd"
+DAEMON=/usr/sbin/$NAME
+DAEMON_ARGS="-d"
+PIDFILE=/var/run/$NAME.pid
+
+. /etc/init.d/functions || exit 1
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+#
+# Function that starts the daemon/service
+#
+do_start() {
+ local status pid
+
+ status=0
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "$DESC already running ($pid)."
+ exit 1
+ ;;
+ *)
+ echo "Starting $DESC ..."
+ exec $DAEMON $DAEMON_ARGS >/dev/null 2>&1 || status=$?
+ echo "ERROR: Failed to start $DESC."
+ exit $status
+ ;;
+ esac
+
+ # Add code here, if necessary, that waits for the process to be ready
+ # to handle requests from services started subsequently which depend
+ # on this one. As a last resort, sleep for some time.
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop() {
+ local pid status
+
+ status=0
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ # Exit when fail to stop, the kill would complain when fail
+ kill -s 15 $pid >/dev/null && rm -f $PIDFILE && \
+ echo "Stopped $DESC ($pid)." || exit $?
+ ;;
+ *)
+ echo "$DESC is not running; none killed." >&2
+ ;;
+ esac
+
+ # Wait for children to finish too if this is a daemon that forks
+ # and if the daemon is only ever run from this initscript.
+ # If the above conditions are not satisfied then add some other code
+ # that waits for the process to drop all resources that could be
+ # needed by services started subsequently. A last resort is to
+ # sleep for some time.
+ return $status
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ local pid status
+
+ status=0
+ # If the daemon can reload its configuration without
+ # restarting (for example, when it is sent a SIGHUP),
+ # then implement that here.
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "Reloading $DESC ..."
+ kill -s 1 $pid || exit $?
+ ;;
+ *)
+ echo "$DESC is not running; none reloaded." >&2
+ ;;
+ esac
+ exit $status
+}
+
+
+#
+# Function that shows the daemon/service status
+#
+status_of_proc () {
+ local pid status
+
+ status=0
+ # pidof output null when no program is running, so no "2>/dev/null".
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "$DESC is running ($pid)."
+ exit 0
+ ;;
+ *)
+ echo "$DESC is not running." >&2
+ exit $status
+ ;;
+ esac
+}
+
+case "$1" in
+start)
+ do_start
+ ;;
+stop)
+ do_stop || exit $?
+ ;;
+status)
+ status_of_proc
+ ;;
+restart)
+ # Always start the service regardless the status of do_stop
+ do_stop
+ do_start
+ ;;
+try-restart|force-reload)
+ # force-reload is the same as reload or try-restart according
+ # to its definition, the reload is not implemented here, so
+ # force-reload is the alias of try-restart here, but it should
+ # be the alias of reload if reload is implemented.
+ #
+ # Only start the service when do_stop succeeds
+ do_stop && do_start
+ ;;
+reload)
+ # If the "reload" action is implemented properly, then let the
+ # force-reload be the alias of reload, and remove it from
+ # try-restart|force-reload)
+ #
+ do_reload
+ ;;
+*)
+ echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
diff --git a/meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.service b/meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.service
new file mode 100644
index 0000000000..cf62962a95
--- /dev/null
+++ b/meta-networking/recipes-filter/ulogd2/ulogd2/ulogd.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Netfilter Ulogd daemon
+Before=network-pre.target
+Wants=network-pre.target
+
+[Service]
+ExecStart=@SBINDIR@/ulogd
+ExecReload=kill -HUP ${MAINPID}
+
+[Install]
+WantedBy=multi-user.target
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..19bd32ccd4
--- /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${SRCPV}"
+
+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/0001-use-pkg-config-for-gcrypt-instead.patch b/meta-networking/recipes-irc/weechat/weechat/0001-use-pkg-config-for-gcrypt-instead.patch
new file mode 100644
index 0000000000..4a33dd7204
--- /dev/null
+++ b/meta-networking/recipes-irc/weechat/weechat/0001-use-pkg-config-for-gcrypt-instead.patch
@@ -0,0 +1,37 @@
+From dc6b11f4cc6035b4701e1d7f7c91b2f45757e7a2 Mon Sep 17 00:00:00 2001
+From: Alejandro Enedino Hernandez Samaniego
+ <alejandro@enedino.org>
+Date: Wed, 26 Feb 2020 13:55:16 -0800
+Subject: [PATCH] use pkg-config for gcrypt instead
+
+Signed-off-by: Alejandro Enedino Hernandez Samaniego <alejandro@enedino.org>
+
+Upstream-Status: Inappropriate [oe-specific]
+
+---
+ cmake/FindGCRYPT.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: weechat-2.7.1/cmake/FindGCRYPT.cmake
+===================================================================
+--- weechat-2.7.1.orig/cmake/FindGCRYPT.cmake
++++ weechat-2.7.1/cmake/FindGCRYPT.cmake
+@@ -27,15 +27,15 @@
+ # GCRYPT_LDFLAGS = ldflags to use to compile
+ #
+
+-find_program(LIBGCRYPT_CONFIG_EXECUTABLE NAMES libgcrypt-config)
++find_program(LIBGCRYPT_CONFIG_EXECUTABLE NAMES pkg-config)
+
+ set(GCRYPT_LDFLAGS)
+ set(GCRYPT_CFLAGS)
+
+ if(LIBGCRYPT_CONFIG_EXECUTABLE)
+
+- execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --libs RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+- execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} --cflags RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
++ execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} libgcrypt --libs RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_LDFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
++ execute_process(COMMAND ${LIBGCRYPT_CONFIG_EXECUTABLE} libgcrypt --cflags RESULT_VARIABLE _return_VALUE OUTPUT_VARIABLE GCRYPT_CFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET)
+
+ if(NOT DEFINED ${GCRYPT_CFLAGS})
+ set(GCRYPT_CFLAGS " ")
diff --git a/meta-networking/recipes-irc/weechat/weechat_4.0.2.bb b/meta-networking/recipes-irc/weechat/weechat_4.0.2.bb
new file mode 100644
index 0000000000..8f1e06f390
--- /dev/null
+++ b/meta-networking/recipes-irc/weechat/weechat_4.0.2.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] = "0e648ee0d024c8099425ee60d41b272924ec8e19800ee8f1441090708834023c"
+
+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/znc/znc_1.8.2.bb b/meta-networking/recipes-irc/znc/znc_1.8.2.bb
new file mode 100644
index 0000000000..1517384eca
--- /dev/null
+++ b/meta-networking/recipes-irc/znc/znc_1.8.2.bb
@@ -0,0 +1,32 @@
+SUMMARY = "ZNC, an advanced IRC bouncer"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "openssl zlib icu"
+
+SRC_URI = "git://github.com/znc/znc.git;name=znc;branch=master;protocol=https \
+ git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket;branch=master;protocol=https \
+ "
+SRCREV_znc = "bf253640d33d03331310778e001fb6f5aba2989e"
+SRCREV_Csocket = "e8d9e0bb248c521c2c7fa01e1c6a116d929c41b4"
+
+# This constructs a composite revision based on multiple SRCREV's.
+#
+SRCREV_FORMAT = "znc_Csocket"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+# ZNC has a custom autogen.sh that states that this command is needed *and* expected to fail
+do_configure:prepend() {
+ automake --add-missing || true
+}
+
+do_install:append() {
+ sed -i -e 's|${DEBUG_PREFIX_MAP}||g; s|--sysroot=${STAGING_DIR_TARGET}||g' ${D}${libdir}/pkgconfig/*.pc
+}
diff --git a/meta-networking/recipes-irc/znc/znc_git.bb b/meta-networking/recipes-irc/znc/znc_git.bb
deleted file mode 100644
index c2d71563a1..0000000000
--- a/meta-networking/recipes-irc/znc/znc_git.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "ZNC, an advanced IRC bouncer"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS = "openssl zlib icu"
-
-PV = "1.6.0"
-
-SRC_URI = "git://github.com/znc/znc.git;name=znc \
- git://github.com/jimloco/Csocket.git;destsuffix=git/third_party/Csocket;name=Csocket \
- "
-SRCREV_znc = "f47e8465efa4e1cd948b9caae93ac401b4355df8"
-SRCREV_Csocket = "07b4437396122650e5b8fb3d014e820a5decf4ee"
-
-# This constructs a composite revision based on multiple SRCREV's.
-#
-SRCREV_FORMAT = "znc_Csocket"
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep pkgconfig
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-# ZNC has a custom autogen.sh that states that this command is needed *and* expected to fail
-do_configure_prepend() {
- automake --add-missing || true
-}
-
-do_install_append() {
- sed -i 's/-fdebug-prefix-map[^ ]*//g; s#${STAGING_DIR_TARGET}##g' ${D}${libdir}/pkgconfig/*.pc
-}
diff --git a/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20171221.bb b/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20171221.bb
deleted file mode 100644
index 2c69c58f8b..0000000000
--- a/meta-networking/recipes-kernel/wireguard/wireguard-module_0.0.20171221.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-require wireguard.inc
-
-inherit module kernel-module-split
-
-DEPENDS = "virtual/kernel libmnl"
-
-# This module requires Linux 3.10 higher and several networking related
-# configuration options. For exact kernel requirements visit:
-# https://www.wireguard.io/install/#kernel-requirements
-
-EXTRA_OEMAKE_append = " \
- KERNELDIR=${STAGING_KERNEL_DIR} \
- "
-
-MAKE_TARGETS = "module"
-
-RRECOMMENDS_${PN} = "kernel-module-xt-hashlimit"
-MODULE_NAME = "wireguard"
-
-# Kernel module packages MUST begin with 'kernel-module-', otherwise
-# multilib image generation can fail.
-#
-# The following line is only necessary if the recipe name does not begin
-# with kernel-module-.
-PKG_${PN} = "kernel-module-${MODULE_NAME}"
-
-module_do_install() {
- install -d ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}
- install -m 0644 ${MODULE_NAME}.ko \
- ${D}/lib/modules/${KERNEL_VERSION}/kernel/${MODULE_NAME}/${MODULE_NAME}.ko
-}
diff --git a/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20220627.bb b/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20220627.bb
new file mode 100644
index 0000000000..d80bdd87ab
--- /dev/null
+++ b/meta-networking/recipes-kernel/wireguard/wireguard-module_1.0.20220627.bb
@@ -0,0 +1,30 @@
+require wireguard.inc
+
+SRCREV = "18fbcd68a35a892527345dc5679d0b2d860ee004"
+
+SRC_URI = "git://git.zx2c4.com/wireguard-linux-compat;protocol=https;branch=master"
+
+inherit module kernel-module-split
+
+DEPENDS = "virtual/kernel libmnl"
+
+# This module requires Linux 3.10 higher and several networking related
+# configuration options. For exact kernel requirements visit:
+# https://www.wireguard.io/install/#kernel-requirements
+
+EXTRA_OEMAKE:append = " \
+ KERNELDIR=${STAGING_KERNEL_DIR} \
+ "
+
+MAKE_TARGETS = "module"
+MODULES_INSTALL_TARGET = "module-install"
+
+RRECOMMENDS:${PN} = "kernel-module-xt-hashlimit"
+MODULE_NAME = "wireguard"
+
+
+# WireGuard has been merged into Linux kernel >= 5.6 and therefore this compatibility module is no longer required.
+# OE-core post dunfell has moved to use kernel 5.8 which now means we cant build this module in world builds
+# for reference machines e.g. qemu
+EXCLUDE_FROM_WORLD = "1"
+
diff --git a/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20171221.bb b/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20171221.bb
deleted file mode 100644
index c4ddbcb0e9..0000000000
--- a/meta-networking/recipes-kernel/wireguard/wireguard-tools_0.0.20171221.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-require wireguard.inc
-
-inherit bash-completion systemd pkgconfig
-
-DEPENDS = "wireguard-module libmnl"
-
-do_compile_prepend () {
- cd ${S}/tools
-}
-
-do_install () {
- cd ${S}/tools
- oe_runmake DESTDIR="${D}" PREFIX="${prefix}" SYSCONFDIR="${sysconfdir}" \
- SYSTEMDUNITDIR="${systemd_unitdir}" \
- WITH_SYSTEMDUNITS=${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'yes', '', d)} \
- WITH_BASHCOMPLETION=yes \
- WITH_WGQUICK=yes \
- install
-}
-
-FILES_${PN} = " \
- ${sysconfdir} \
- ${systemd_unitdir} \
- ${bindir} \
-"
-
-RDEPENDS_${PN} = "wireguard-module bash"
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
new file mode 100644
index 0000000000..20435338c3
--- /dev/null
+++ b/meta-networking/recipes-kernel/wireguard/wireguard-tools_1.0.20210914.bb
@@ -0,0 +1,34 @@
+require wireguard.inc
+
+SRCREV = "3ba6527130c502144e7388b900138bca6260f4e8"
+SRC_URI = "git://git.zx2c4.com/wireguard-tools;branch=master"
+
+inherit bash-completion systemd pkgconfig
+
+DEPENDS += "libmnl"
+
+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 \
+ install
+}
+
+PACKAGES += "${PN}-wg-quick"
+
+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-kernel/wireguard/wireguard.inc b/meta-networking/recipes-kernel/wireguard/wireguard.inc
index 6bd581a686..6fac24e3bd 100644
--- a/meta-networking/recipes-kernel/wireguard/wireguard.inc
+++ b/meta-networking/recipes-kernel/wireguard/wireguard.inc
@@ -6,12 +6,8 @@ TLS-based solutions like OpenVPN, while being more secure, more performant, \
and easier to use."
SECTION = "networking"
HOMEPAGE = "https://www.wireguard.io/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://../COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRC_URI = "https://git.zx2c4.com/WireGuard/snapshot/WireGuard-${PV}.tar.xz"
-SRC_URI[md5sum] = "39bb99fe11356423fb1ab45ae2d938bb"
-SRC_URI[sha256sum] = "2b97697e9b271ba8836a04120a287b824648124f21d5309170ec51c1f86ac5ed"
-
-S = "${WORKDIR}/WireGuard-${PV}/src/"
+S = "${WORKDIR}/git/src"
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
index 8376603ead..2cd639ee92 100644
--- 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
@@ -10,6 +10,8 @@ ftp.c:1091:2: error: unknown type name 'u_long'; did you mean 'long'?
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
ftp/ftp.c | 1 +
1 file changed, 1 insertion(+)
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
index 5a47fd9175..5db004865f 100644
--- 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
@@ -1,7 +1,6 @@
This adds ARG_MAX define to be _SC_ARG_MAX
-Upstream-Status: Inappropriate.
-Most distros have their own verion for this fix.
+Upstream-Status: Inappropriate [Most distros have their own verion for this fix]
Signed-off-by: Armin Kuster <akuster808@gmail.com>
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
index 394a69e629..31fdd9e4d8 100644
--- a/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-ftp/netkit-ftp_0.17.bb
@@ -1,22 +1,21 @@
DESCRIPTION = "netkit-ft includes the ftp client."
SECTION = "net"
HOMEPAGE="ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
-LICENSE = "BSD"
+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 \
+ ${DEBIAN_MIRROR}/main/n/netkit-ftp/netkit-ftp_${PV}-34.debian.tar.xz;name=patch34 \
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"
+SRC_URI[patch34.sha256sum] = "716b984bc6926ed98345fa4e68adcee2efcf08d0f7315d6be8ad6de76f255748"
+
+inherit autotools-brokensep update-alternatives
-inherit autotools-brokensep
+CLEANBROKEN = "1"
do_configure () {
./configure --prefix=${prefix}
@@ -39,9 +38,13 @@ do_install () {
}
PACKAGES = "${PN} ${PN}-doc ${BPN}-dbg"
-FILES_${PN} = "${bindir}/*"
-FILES_${PN}-doc = "${mandir}"
-FILES_${PN}-dbg = "${prefix}/src/debug \
+FILES:${PN} = "${bindir}/*"
+FILES:${PN}-doc = "${mandir}"
+FILES:${PN}-dbg = "${prefix}/src/debug \
${bindir}/.debug"
-RDEPENDS_${PN} = "readline"
+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
index 8bd77d2e47..508db6aadf 100644
--- 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
@@ -7,6 +7,8 @@ Fixes build with hardening flags
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
rpcgen/rpc_hout.c | 2 +-
rpcgen/rpc_tblout.c | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch
index d54cea9fdc..83bcc4b490 100644
--- a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch
+++ b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc/gcc4.patch
@@ -2,9 +2,9 @@ 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
+Upstream-Status: Backport
-Signed-off-By: Armin Kuster <akuster808@gmail.com>
+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
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
index ebe867d776..cb05645ee8 100644
--- a/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-rpc/netkit-rpc_0.17.bb
@@ -11,6 +11,9 @@ SRC_URI = "http://sources.openembedded.org/${BPN}-${PV}.tar.gz \
"
SRC_URI[md5sum] = "67212720482ea1aea9182a98653a9642"
SRC_URI[sha256sum] = "421d63b414162237a72867061f1bd3e3752a0d962cd5d30b5e933ddad8a14d3b"
+
+inherit update-alternatives
+
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
LIBS += "-ltirpc"
@@ -42,3 +45,7 @@ do_install () {
'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
new file mode 100644
index 0000000000..285667b869
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/CVE-2019-7282-and-CVE-2019-7283.patch
@@ -0,0 +1,35 @@
+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/fixup_wait3_api_change.patch b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh/fixup_wait3_api_change.patch
index cd6df62fb3..c6e2e60624 100644
--- 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
@@ -8,7 +8,7 @@ https://sourceware.org/ml/libc-alpha/2016-02/msg00342.html
Upstream-Status: Inappropriate [ no upstream maintaner ]
-Signed-off-by Armin Kuster <akuster@mvista.com>
+Signed-off-by: Armin Kuster <akuster@mvista.com>
Index: netkit-rsh-0.17/rlogin/rlogin.c
===================================================================
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
index efd060f365..7afd70859f 100644
--- 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
@@ -1,6 +1,6 @@
make rexec support ipv6
-Upstream-status: Pending
+Upstream-Status: Pending
rexec equals rexec_af(... ,AF_INET) which only support ipv4,
use rexec_af(..., AF_UNSPEC) to support both ipv6 and ipv4.
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
index c12ee9b465..ab0b9b64bc 100644
--- 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
@@ -8,7 +8,7 @@ Most distos have there own verison of this fix. This was derived by
-- Colin Watson <cjwatson@ubuntu.com> Tue, 13 Sep 2011 10:07:08 +0100
-signed-off-by: Armin Kuster <akuster808@gmail.com>
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
Index: netkit-rsh-0.17/rsh/Makefile
===================================================================
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
index 3990f7b527..5ea553e871 100644
--- a/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-rsh/netkit-rsh_0.17.bb
@@ -2,7 +2,7 @@ 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"
+DEPENDS = "xinetd libgcrypt virtual/crypt"
LIC_FILES_CHKSUM = "file://rsh/rsh.c;endline=32;md5=487b3c637bdc181d32b2a8543d41b606"
@@ -16,6 +16,7 @@ SRC_URI = "${DEBIAN_MIRROR}/main/n/netkit-rsh/netkit-rsh_${PV}.orig.tar.gz;name=
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"
@@ -30,15 +31,17 @@ PAM_SRC_URI = "file://rexec.pam \
"
SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)}"
-inherit pkgconfig
+inherit pkgconfig update-alternatives
CFLAGS += " -D_GNU_SOURCE -Wno-deprecated-declarations"
LDFLAGS += " -L${STAGING_LIBDIR} -lutil -lcrypt"
PACKAGECONFIG ??= ""
-PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
+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
@@ -79,15 +82,15 @@ do_install () {
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 \
+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:${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"
@@ -95,8 +98,8 @@ 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"
+RCONFLICTS:${PN}-server += "inetutils-rshd"
+RPROVIDES:${PN}-server = "rshd"
-RDEPENDS_${PN}-server = "xinetd"
-RDEPENDS_${PN}-server += "tcp-wrappers"
+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
index 55926468d9..3655a57162 100644
--- 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
@@ -13,21 +13,69 @@ Upstream-Status: Pending
rup/rup.c | 2 +-
4 files changed, 4 insertions(+), 13 deletions(-)
-diff --git a/configure b/configure
-index 85f6ca6..2d2d4b7 100755
--- a/configure
+++ b/configure
-@@ -147,7 +147,7 @@ else
+@@ -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=
+-LDFLAGS=
-LIBS=
-+LIBS="-ltirpc"
++LIBS="$LIBS -ltirpc"
rm -f __conftest*
-diff --git a/rpc.rusersd/rusers_proc.c b/rpc.rusersd/rusers_proc.c
-index 9ae6306..f9e237c 100644
+@@ -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[] =
@@ -44,8 +92,6 @@ index 9ae6306..f9e237c 100644
void rusers_service(struct svc_req *rqstp, SVCXPRT *transp);
-diff --git a/rpc.rusersd/rusersd.c b/rpc.rusersd/rusersd.c
-index 762be9b..dd355ac 100644
--- a/rpc.rusersd/rusersd.c
+++ b/rpc.rusersd/rusersd.c
@@ -38,11 +38,7 @@ char rusersd_rcsid[] =
@@ -61,11 +107,9 @@ index 762be9b..dd355ac 100644
#include "../version.h"
-diff --git a/rup/rup.c b/rup/rup.c
-index e5669ff..887f89d 100644
--- a/rup/rup.c
+++ b/rup/rup.c
-@@ -48,7 +48,7 @@ char rcsid[] = "$Id: rup.c,v 1.8 2000/07/22 19:51:40 dholland Exp $";
+@@ -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
@@ -74,6 +118,3 @@ index e5669ff..887f89d 100644
#include "../version.h"
---
-2.17.0
-
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
index 113f89b7f5..c45cbcd925 100644
--- a/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-rusers/netkit-rusers_0.17.bb
@@ -2,9 +2,9 @@ DESCRIPTION = "netkit-rusers includes rusers - Displays who is logged in to mach
rusersd - Logged in users server"
HOMEPAGE = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit"
SECTION = "net"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://rusers/rusers.c;beginline=2;endline=3;md5=f4fc634a4ce8c569911196b72b10770e"
-DEPENDS = " tcp-wrappers libtirpc rpcbind"
+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 \
@@ -17,16 +17,12 @@ SRC_URI[archive.sha256sum] = "f00138651865ad2dcfec5dedda0cda403cb80c4ab68efcc3bb
SRC_URI[patch8.md5sum] = "1ff498113e0f920d92088092e5570bdc"
SRC_URI[patch8.sha256sum] = "14882dbdda4e37baa84d55b54b46c7e063a20fc9e04d1be1a2807643cd0f3067"
-inherit autotools-brokensep
-
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LIBS += "-ltirpc"
+
+EXTRA_OEMAKE = "RUSERSX=${STAGING_INCDIR}/rpcsvc/rusers.x"
do_configure () {
- ./configure --prefix=${prefix}
- echo "LDFLAGS=${LDFLAGS}" >> MCONFIG
- echo "USE_GLIBC=1" >> MCONFIG
- echo "LIBS=${LIBS}" >> MCONFIG
+ ./configure --prefix=${prefix} --installroot=${D} --with-c-compiler="${CC}"
}
do_install () {
@@ -62,14 +58,15 @@ EOF
install rusersd.conf ${D}/${sysconfdir}/xinetd.d/rusersd
}
-
-INSANE_SKIP_${PN} = "already-stripped"
-
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 \
+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"
+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/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
index 717b4d73f4..349a1351fe 100644
--- 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
@@ -12,8 +12,6 @@ Upstream-Status: Pending
rwhod/rwhod.c | 5 +++--
3 files changed, 5 insertions(+), 2 deletions(-)
-diff --git a/ruptime/ruptime.c b/ruptime/ruptime.c
-index 1d4f7b6..f1f043c 100644
--- a/ruptime/ruptime.c
+++ b/ruptime/ruptime.c
@@ -53,6 +53,7 @@ char ruptime_rcsid[] =
@@ -24,11 +22,9 @@ index 1d4f7b6..f1f043c 100644
struct hs {
char hs_hostname[MAXHOSTNAMELEN];
-diff --git a/rwho/rwho.c b/rwho/rwho.c
-index 63919ac..71aec9e 100644
--- a/rwho/rwho.c
+++ b/rwho/rwho.c
-@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/08/01 20:44:18 dholland Exp $";
+@@ -49,6 +49,7 @@ char rcsid[] = "$Id: rwho.c,v 1.7 1999/0
#include <assert.h>
#include <stdio.h>
#include <time.h>
@@ -36,8 +32,6 @@ index 63919ac..71aec9e 100644
#include <protocols/rwhod.h>
#include "../version.h"
-diff --git a/rwhod/rwhod.c b/rwhod/rwhod.c
-index 54498d0..40cabcf 100644
--- a/rwhod/rwhod.c
+++ b/rwhod/rwhod.c
@@ -76,6 +76,7 @@ char rcsid[] =
@@ -66,6 +60,13 @@ index 54498d0..40cabcf 100644
/*
* Taken from:
*
---
-2.14.1
-
+--- 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_0.17.bb b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
index 5685f03d62..51168f958e 100644
--- a/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-rwho/netkit-rwho_0.17.bb
@@ -1,11 +1,11 @@
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"
+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;name=patch13 \
+ ${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 \
@@ -20,13 +20,37 @@ inherit autotools-brokensep useradd update-rc.d update-alternatives
CFLAGS += " -D_GNU_SOURCE"
-debian_do_patch() {
- cd ${S}
- while read line; do patch -p1 < ${WORKDIR}/debian/patches/$line; done < ${WORKDIR}/debian/patches/series
+# 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('debian_do_patch', d)
+ bb.build.exec_func('netkit_do_patch', d)
bb.build.exec_func('patch_do_patch', d)
}
@@ -58,12 +82,11 @@ do_install () {
mkdir -p -m 755 ${D}${localstatedir}/spool/rwho
chown -R rwhod ${D}${localstatedir}/spool/rwho
}
-
-pkg_postinst_${PN}-server() {
+pkg_postinst_ontarget:${PN}-server() {
${sysconfdir}/init.d/rwhod start
}
-pkg_postrm_${PN}-server() {
+pkg_postrm:${PN}-server() {
${sysconfdir}/init.d/rwhod stop
}
@@ -71,15 +94,15 @@ 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 \
+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"
+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 \
+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-Drop-using-register-keyword.patch b/meta-networking/recipes-netkit/netkit-telnet/files/0001-Drop-using-register-keyword.patch
new file mode 100644
index 0000000000..f508711d34
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-telnet/files/0001-Drop-using-register-keyword.patch
@@ -0,0 +1,457 @@
+From af89f36fbeb5f6a078b349eed8fc4ad6fbfdf5d1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 16 Jan 2023 15:26:12 -0800
+Subject: [PATCH] Drop using register keyword
+
+Its gone since c++17
+
+Fixes
+error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
+| register char c;
+| ^~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ telnet/commands.cc | 14 +++++++-------
+ telnet/defines.h | 1 +
+ telnet/sys_bsd.cc | 2 +-
+ telnet/telnet.cc | 18 +++++++++---------
+ telnet/terminal.cc | 4 ++--
+ telnet/tn3270.cc | 4 ++--
+ telnet/tn3270.o | Bin 4008 -> 4008 bytes
+ telnet/utilities.cc | 6 +++---
+ telnetd/setproctitle.c | 6 +++---
+ telnetd/slc.c | 4 ++--
+ telnetd/state.c | 12 ++++++------
+ telnetd/sys_term.c | 4 ++--
+ telnetd/telnetd.c | 4 ++--
+ telnetd/termstat.c | 4 ++--
+ telnetd/utility.c | 16 ++++++++--------
+ 15 files changed, 50 insertions(+), 49 deletions(-)
+
+--- a/telnet/commands.cc
++++ b/telnet/commands.cc
+@@ -192,8 +192,8 @@ static int margc;
+ static const char *margv[20];
+
+ static void makeargv(void) {
+- register char *cp, *cp2, c;
+- register const char **argp = margv;
++ char *cp, *cp2, c;
++ const char **argp = margv;
+
+ margc = 0;
+ cp = line;
+@@ -204,7 +204,7 @@ static void makeargv(void) {
+ cp++;
+ }
+ while ((c = *cp)!=0) {
+- register int inquote = 0;
++ int inquote = 0;
+ while (isspace(c))
+ c = *++cp;
+ if (c == '\0')
+@@ -281,7 +281,7 @@ static const char *control(cc_t c)
+ * was to assign "c" to an unsigned int variable...
+ * Arggg....
+ */
+- register unsigned int uic = (unsigned int)c;
++ unsigned int uic = (unsigned int)c;
+
+ if (uic == 0x7f)
+ return ("^?");
+@@ -479,7 +479,7 @@ int send_tncmd(int (*func)(int, int), co
+ long opt;
+
+ if (isprefix(name, "help") || isprefix(name, "?")) {
+- register int col, len;
++ int col, len;
+
+ printf("Usage: send %s <option>\n", cmd);
+ printf("Valid options are:\n\t");
+@@ -2212,8 +2212,8 @@ static unsigned long sourceroute(char *a
+ static char lsr[44];
+ char *cp, *cp2, *lsrp, *lsrep;
+ struct in_addr sin_addr;
+- register struct hostent *host = 0;
+- register char c;
++ struct hostent *host = 0;
++ char c;
+
+ /*
+ * Verify the arguments, and make sure we have
+--- a/telnet/defines.h
++++ b/telnet/defines.h
+@@ -52,3 +52,4 @@
+ #define CONTROL(x) ((x)&0x1f) /* CTRL(x) is not portable */
+
+ #define MODE_OUT8 0x8000 /* binary mode sans -opost */
++
+--- a/telnet/sys_bsd.cc
++++ b/telnet/sys_bsd.cc
+@@ -285,7 +285,7 @@ void sys_telnet_init(void) {
+ int process_rings(int netin, int netout, int netex, int ttyin, int ttyout,
+ int poll /* If 0, then block until something to do */)
+ {
+- register int c, maxfd;
++ int c, maxfd;
+ /* One wants to be a bit careful about setting returnValue
+ * to one, since a one implies we did some useful work,
+ * and therefore probably won't be called to block next
+--- a/telnet/telnet.cc
++++ b/telnet/telnet.cc
+@@ -864,7 +864,7 @@ struct spc {
+ static int slc_mode = SLC_EXPORT;
+
+ void slc_init(void) {
+- register struct spc *spcp;
++ struct spc *spcp;
+
+ localchars = 1;
+ for (spcp = spc_data; spcp < &spc_data[NSLC+1]; spcp++) {
+@@ -944,7 +944,7 @@ void slc_import(int def) {
+ }
+
+ void slc_export(void) {
+- register struct spc *spcp;
++ struct spc *spcp;
+
+ TerminalDefaultChars();
+
+@@ -966,8 +966,8 @@ void slc_export(void) {
+ }
+
+ void slc(unsigned char *cp, int len) {
+- register struct spc *spcp;
+- register int func,level;
++ struct spc *spcp;
++ int func,level;
+
+ slc_start_reply();
+
+@@ -1032,7 +1032,7 @@ void slc(unsigned char *cp, int len) {
+ }
+
+ void slc_check(void) {
+- register struct spc *spcp;
++ struct spc *spcp;
+
+ slc_start_reply();
+ for (spcp = &spc_data[1]; spcp < &spc_data[NSLC+1]; spcp++) {
+@@ -1080,7 +1080,7 @@ void slc_add_reply(int func, int flags,
+ }
+
+ void slc_end_reply(void) {
+- register int len;
++ int len;
+
+ *slc_replyp++ = IAC;
+ *slc_replyp++ = SE;
+@@ -1200,7 +1200,7 @@ void env_opt_add(const char *ep) {
+ tp = opt_replyp + (vp ? strlen(vp) * 2 : 0) + strlen(ep) * 2 + 6;
+ if (tp > opt_replyend)
+ {
+- register int len;
++ int len;
+ 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);
+@@ -1236,7 +1236,7 @@ void env_opt_add(const char *ep) {
+ }
+
+ void env_opt_end(int emptyok) {
+- register int len;
++ int len;
+
+ len = opt_replyp - opt_reply + 2;
+ if (emptyok || len > 6) {
+@@ -1874,7 +1874,7 @@ static unsigned char *nextitem(unsigned
+
+ static void netclear(void) {
+ #if 0 /* XXX */
+- register char *thisitem, *next;
++ char *thisitem, *next;
+ char *good;
+ #define wewant(p) ((nfrontp > p) && (*p == IAC) && \
+ (p[1] != EC) && (p[1] != EL))
+--- a/telnet/terminal.cc
++++ b/telnet/terminal.cc
+@@ -569,8 +569,8 @@ struct termspeeds {
+ };
+
+ void TerminalSpeeds(long *ispeed, long *ospeed) {
+- register struct termspeeds *tp;
+- register long in, out;
++ struct termspeeds *tp;
++ long in, out;
+
+ out = cfgetospeed(&old_tc);
+ in = cfgetispeed(&old_tc);
+--- a/telnet/tn3270.cc
++++ b/telnet/tn3270.cc
+@@ -103,7 +103,7 @@ void init_3270(void) {
+ * done: is this the last of a logical block
+ */
+ int DataToNetwork(char *buffer, int count, int done) {
+- register int loop, c;
++ int loop, c;
+ int origCount;
+
+ origCount = count;
+@@ -179,7 +179,7 @@ void outputPurge(void) {
+ * count: how much to send
+ */
+ int DataToTerminal(char *buffer, int count) {
+- register int c;
++ int c;
+ int origCount;
+
+ origCount = count;
+--- a/telnet/utilities.cc
++++ b/telnet/utilities.cc
+@@ -252,7 +252,7 @@ void optionstatus(void) {
+ /* pointer: where suboption data sits */
+ /* length: length of suboption data */
+ void printsub(int direction, unsigned char *pointer, int length) {
+- register int i = 0;
++ int i = 0;
+
+ extern int want_status_response;
+
+@@ -262,7 +262,7 @@ void printsub(int direction, unsigned ch
+ fprintf(NetTrace, "%s IAC SB ",
+ (direction == '<')? "RCVD":"SENT");
+ if (length >= 3) {
+- register int j;
++ int j;
+
+ i = pointer[length-2];
+ j = pointer[length-1];
+@@ -577,7 +577,7 @@ void printsub(int direction, unsigned ch
+ fprintf(NetTrace, "INFO ");
+ env_common:
+ {
+- register int noquote = 2;
++ int noquote = 2;
+ for (i = 2; i < length; i++ ) {
+ switch (pointer[i]) {
+ case ENV_VAR:
+--- a/telnetd/setproctitle.c
++++ b/telnetd/setproctitle.c
+@@ -76,7 +76,7 @@ static char Argv0[128]; /* program nam
+ void
+ initsetproctitle(int argc, char **argv, char **envp)
+ {
+- register int i;
++ int i;
+ char *tmp;
+
+ /*
+@@ -111,8 +111,8 @@ initsetproctitle(int argc, char **argv,
+ void
+ setproctitle(const char *fmt, ...)
+ {
+- register char *p;
+- register int i=0;
++ char *p;
++ int i=0;
+ static char buf[2048];
+ va_list ap;
+
+--- a/telnetd/slc.c
++++ b/telnetd/slc.c
+@@ -196,7 +196,7 @@ int end_slc(unsigned char **bufp) {
+ * Figure out what to do about the client's slc
+ */
+ void process_slc(unsigned char func, unsigned char flag, cc_t val) {
+- register int hislevel, mylevel, ack;
++ int hislevel, mylevel, ack;
+
+ /*
+ * Ensure that we know something about this function
+@@ -260,7 +260,7 @@ void process_slc(unsigned char func, uns
+ * Compare client's request with what we are capable of supporting.
+ */
+ void change_slc(char func, char flag, cc_t val) {
+- register int hislevel, mylevel;
++ int hislevel, mylevel;
+
+ hislevel = flag & SLC_LEVELBITS;
+ mylevel = slctab[func].defset.flag & SLC_LEVELBITS;
+--- a/telnetd/state.c
++++ b/telnetd/state.c
+@@ -79,7 +79,7 @@ unsigned char subbuffer[512], *subpointe
+ #define TS_DONT 8 /* dont " */
+
+ void telrcv(void) {
+- register int c;
++ int c;
+ static int state = TS_DATA;
+
+ while (ncc > 0) {
+@@ -1081,7 +1081,7 @@ void suboption(void) {
+
+ #ifdef LINEMODE
+ case TELOPT_LINEMODE: {
+- register int request;
++ int request;
+
+ if (his_state_is_wont(TELOPT_LINEMODE)) /* Ignore if option disabled */
+ break;
+@@ -1158,8 +1158,8 @@ void suboption(void) {
+ } /* end of case TELOPT_XDISPLOC */
+
+ case TELOPT_ENVIRON: {
+- register int c;
+- register char *cp, *varp, *valp;
++ int c;
++ char *cp, *varp, *valp;
+
+ if (SB_EOF())
+ return;
+@@ -1299,8 +1299,8 @@ static void doclientstat(void) {
+
+ void send_status(void) {
+ unsigned char statusbuf[256];
+- register unsigned char *ncp;
+- register unsigned char i;
++ unsigned char *ncp;
++ unsigned char i;
+
+ ncp = statusbuf;
+
+--- a/telnetd/sys_term.c
++++ b/telnetd/sys_term.c
+@@ -413,7 +413,7 @@ extern int def_tspeed, def_rspeed;
+
+ static int getptyslave(void) {
+ #if 0
+- register int t = -1;
++ int t = -1;
+
+ # ifdef LINEMODE
+ int waslm;
+@@ -505,7 +505,7 @@ static int getptyslave(void) {
+ * making sure that we have a clean tty.
+ */
+ static int cleanopen(char *lyne) {
+- register int t;
++ int t;
+
+ /*
+ * Make sure that other people can't open the
+--- a/telnetd/telnetd.c
++++ b/telnetd/telnetd.c
+@@ -93,7 +93,7 @@ main(int argc, char *argv[], char *env[]
+ struct sockaddr_in from;
+ int on = 1;
+ socklen_t fromlen;
+- register int ch;
++ int ch;
+
+ #if defined(HAS_IPPROTO_IP) && defined(IP_TOS)
+ int tos = -1;
+@@ -837,7 +837,7 @@ void telnet(int f, int p)
+
+ #ifdef TIOCNOTTY
+ {
+- register int t;
++ int t;
+ t = open(_PATH_TTY, O_RDWR);
+ if (t >= 0) {
+ (void) ioctl(t, TIOCNOTTY, (char *)0);
+--- a/telnetd/termstat.c
++++ b/telnetd/termstat.c
+@@ -347,7 +347,7 @@ done:
+ * at a time, and if using kludge linemode, then only linemode may be
+ * affected.
+ */
+-void clientstat(register int code, register int parm1, register int parm2)
++void clientstat(int code, register int parm1, register int parm2)
+ {
+ /*
+ * Get a copy of terminal characteristics.
+@@ -419,7 +419,7 @@ void clientstat(register int code, regis
+
+ case LM_MODE:
+ {
+- register int ack, changed;
++ int ack, changed;
+
+ /*
+ * Client has sent along a mode mask. If it agrees with
+--- a/telnetd/utility.c
++++ b/telnetd/utility.c
+@@ -189,7 +189,7 @@ nextitem(char *current, const char *endp
+ return current+3 <= endp ? current+3 : NULL;
+ case SB: /* loop forever looking for the SE */
+ {
+- register char *look = current+2;
++ char *look = current+2;
+
+ while (look < endp) {
+ if ((*look++&0xff) == IAC) {
+@@ -224,7 +224,7 @@ nextitem(char *current, const char *endp
+ */
+ void netclear(void)
+ {
+- register char *thisitem, *next;
++ char *thisitem, *next;
+ char *good;
+ #define wewant(p) ((nfrontp > p) && ((*p&0xff) == IAC) && \
+ (nfrontp > p+1 && (((*(p+1)&0xff) != EC) && ((*(p+1)&0xff) != EL))))
+@@ -354,7 +354,7 @@ netflush(void)
+ * ptr - A pointer to a character string to write
+ * len - How many bytes to write
+ */
+-void writenet(register unsigned char *ptr, register int len)
++void writenet(unsigned char *ptr, register int len)
+ {
+ /* flush buffer if no room for new data) */
+ if ((&netobuf[BUFSIZ] - nfrontp) < len) {
+@@ -589,7 +589,7 @@ printoption(const char *fmt, int option)
+ void
+ printsub(char direction, unsigned char *pointer, int length)
+ {
+- register int i = -1;
++ int i = -1;
+ #ifdef AUTHENTICATE
+ char buf[512];
+ #endif
+@@ -601,7 +601,7 @@ printsub(char direction, unsigned char *
+ netoprintf("td: %s suboption ",
+ direction == '<' ? "recv" : "send");
+ if (length >= 3) {
+- register int j;
++ int j;
+
+ i = pointer[length-2];
+ j = pointer[length-1];
+@@ -817,7 +817,7 @@ printsub(char direction, unsigned char *
+
+ case TELOPT_STATUS: {
+ const char *cp;
+- register int j, k;
++ int j, k;
+
+ netoprintf("STATUS");
+
+@@ -914,7 +914,7 @@ printsub(char direction, unsigned char *
+ netoprintf("INFO ");
+ env_common:
+ {
+- register int noquote = 2;
++ int noquote = 2;
+ for (i = 2; i < length; i++ ) {
+ switch (pointer[i]) {
+ case ENV_VAR:
+@@ -1125,7 +1125,7 @@ printsub(char direction, unsigned char *
+ void
+ printdata(const char *tag, const char *ptr, int cnt)
+ {
+- register int i;
++ int i;
+ char xbuf[30];
+
+ while (cnt) {
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
index 945785d3ce..afcc66dada 100644
--- 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
@@ -47,6 +47,8 @@ in upstream.
Signed-off-by: Seiichi Ishitsuka <ishitsuka.sc@ncos.nec.co.jp>
---
+Upstream-Status: Pending
+
telnetd/ext.h | 1 +
telnetd/sys_term.c | 17 ++++++++++++++++-
telnetd/telnetd.c | 2 +-
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
index f2f1b12e28..755b882b67 100644
--- 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
@@ -7,6 +7,8 @@ Fixes build with hardening flags
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
+Upstream-Status: Pending
+
telnet/utilities.cc | 6 +++---
telnetd/utility.c | 6 +++---
2 files changed, 6 insertions(+), 6 deletions(-)
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
new file mode 100644
index 0000000000..8f983e40ab
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-telnet/files/0001-telnetd-utility.c-Fix-buffer-overflow-in-netoprintf.patch
@@ -0,0 +1,56 @@
+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
new file mode 100644
index 0000000000..a5e634caab
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-telnet/files/0001-utility-Include-time.h-form-time-and-strftime-protot.patch
@@ -0,0 +1,27 @@
+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
new file mode 100644
index 0000000000..d21c602746
--- /dev/null
+++ b/meta-networking/recipes-netkit/netkit-telnet/files/CVE-2020-10188.patch
@@ -0,0 +1,112 @@
+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
index 7fff8cffc4..34a6479790 100644
--- 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
@@ -5,7 +5,7 @@ Subject: [PATCH 1/2] To aviod buffer overflow in telnet
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-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
index b9a98f1d6f..9ac75439da 100644
--- 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
@@ -6,7 +6,7 @@ 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
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
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
index 9fe3d6e51c..e28eeae491 100644
--- a/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-telnet/netkit-telnet_0.17.bb
@@ -2,16 +2,20 @@ 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"
+LICENSE = "BSD-4-Clause"
LIC_FILES_CHKSUM = "file://telnet/telnet.cc;beginline=2;endline=3;md5=780868e7b566313e70cb701560ca95ef"
-SRC_URI = "ftp://ftp.uk.linux.org/pub/linux/Networking/netkit/${BP}.tar.gz \
+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 \
+ file://0001-Drop-using-register-keyword.patch \
"
UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/n/netkit-telnet/"
@@ -53,9 +57,17 @@ do_install () {
inherit update-alternatives
ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN} = "telnet"
+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/*"
+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_0.17.bb b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
index 92c13e850c..8de3e4a34c 100644
--- a/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
+++ b/meta-networking/recipes-netkit/netkit-tftp/netkit-tftp_0.17.bb
@@ -16,7 +16,7 @@ SRC_URI[archive.sha256sum] = "3a43c0010d4e61f412563fd83769d4667d8b8e82903526d21c
SRC_URI[patch18.md5sum] = "cb29e7a33dd85105ba6e6ec4f971e42c"
SRC_URI[patch18.sha256sum] = "092437d27b4fa88c044ef6290372fee5ce06d223607f0e22a6e527065c8930e7"
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
do_configure () {
./configure --prefix=${prefix}
@@ -46,10 +46,14 @@ do_install () {
}
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 \
+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"
+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.2.bb b/meta-networking/recipes-protocols/babeld/babeld_1.12.2.bb
new file mode 100644
index 0000000000..03db5fc0bf
--- /dev/null
+++ b/meta-networking/recipes-protocols/babeld/babeld_1.12.2.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 = "a9fba0e19ebde96cdc4edd35c5363f9e8139ab35"
+
+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.1.bb b/meta-networking/recipes-protocols/dante/dante_1.4.1.bb
deleted file mode 100644
index ffdab22cf0..0000000000
--- a/meta-networking/recipes-protocols/dante/dante_1.4.1.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SECTION = "console/utils"
-SUMMARY = "A free SOCKS server"
-DESCRIPTION = "Dante consists of a SOCKS server and a SOCKS client,\
-implementing RFC 1928 and related standards. It is a flexible product\
-that can be used to provide convenient and secure network\
-connectivity. Once installed, Dante can in most cases be made\
-transparent to clients, providing functionality somewhat similar to\
-what could be described as a non-transparent Layer 4 router."
-HOMEPAGE = "http://www.inet.no/dante/"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=221118dda731fe93a85d0ed973467249"
-
-SRC_URI = "https://www.inet.no/dante/files/dante-${PV}.tar.gz \
- "
-SRC_URI[md5sum] = "68c2ce12119e12cea11a90c7a80efa8f"
-SRC_URI[sha256sum] = "b6d232bd6fefc87d14bf97e447e4fcdeef4b28b16b048d804b50b48f261c4f53"
-
-# without --without-gssapi, config.log will contain reference to /usr/lib
-# as a consequence of GSSAPI path being set to /usr by default.
-# --with-gssapi-path=PATH specify gssapi path
-# --without-gssapi disable gssapi support
-# --enable-release build prerelease as full release
-EXTRA_OECONF += "--without-gssapi --sbindir=${bindir}"
-
-DEPENDS += "flex-native bison-native libpam"
-
-inherit autotools-brokensep distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "pam"
-
-EXTRA_AUTORECONF = "-I ${S}"
-
-PACKAGECONFIG[libwrap] = ",--disable-libwrap,tcp-wrappers,libwrap"
-PACKAGECONFIG[krb5] = ",--without-krb5,krb5"
-
-PACKAGECONFIG ??= ""
-
-do_install_append() {
- install -d ${D}${sysconfdir}
- cp ${S}/example/sock[sd].conf ${D}${sysconfdir}
-}
-
-PACKAGES =+ "${PN}-sockd ${PN}-libdsocks "
-
-FILES_${PN}-libdsocks = "${libdir}/libdsocks.so"
-FILES_${PN}-sockd = "${bindir}/sockd ${sysconfdir}/sockd.conf"
-
-INSANE_SKIP_${PN}-libdsocks = "dev-elf"
diff --git a/meta-networking/recipes-protocols/dante/dante_1.4.3.bb b/meta-networking/recipes-protocols/dante/dante_1.4.3.bb
new file mode 100644
index 0000000000..4badff8bbd
--- /dev/null
+++ b/meta-networking/recipes-protocols/dante/dante_1.4.3.bb
@@ -0,0 +1,50 @@
+SECTION = "console/utils"
+SUMMARY = "A free SOCKS server"
+DESCRIPTION = "Dante consists of a SOCKS server and a SOCKS client,\
+implementing RFC 1928 and related standards. It is a flexible product\
+that can be used to provide convenient and secure network\
+connectivity. Once installed, Dante can in most cases be made\
+transparent to clients, providing functionality somewhat similar to\
+what could be described as a non-transparent Layer 4 router."
+HOMEPAGE = "http://www.inet.no/dante/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=edd508404db7339042dfc861a3a690ad"
+
+SRC_URI = "https://www.inet.no/dante/files/dante-${PV}.tar.gz \
+ "
+SRC_URI[sha256sum] = "418a065fe1a4b8ace8fbf77c2da269a98f376e7115902e76cda7e741e4846a5d"
+
+# without --without-gssapi, config.log will contain reference to /usr/lib
+# as a consequence of GSSAPI path being set to /usr by default.
+# --with-gssapi-path=PATH specify gssapi path
+# --without-gssapi disable gssapi support
+# --enable-release build prerelease as full release
+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"
+
+REQUIRED_DISTRO_FEATURES = "pam"
+
+EXTRA_AUTORECONF = "-I ${S}"
+
+PACKAGECONFIG[libwrap] = ",--disable-libwrap,tcp-wrappers,libwrap"
+
+PACKAGECONFIG ??= ""
+
+do_install:append() {
+ install -d ${D}${sysconfdir}
+ cp ${S}/example/sock[sd].conf ${D}${sysconfdir}
+}
+
+PACKAGES =+ "${PN}-sockd ${PN}-libdsocks "
+
+FILES:${PN}-libdsocks = "${libdir}/libdsocks.so"
+FILES:${PN}-sockd = "${bindir}/sockd ${sysconfdir}/sockd.conf"
+
+INSANE_SKIP:${PN}-libdsocks = "dev-elf"
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
new file mode 100644
index 0000000000..d5e242ac21
--- /dev/null
+++ b/meta-networking/recipes-protocols/freediameter/files/0001-libfdcore-sctp.c-update-the-old-sctp-api-check.patch
@@ -0,0 +1,97 @@
+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/0001-tests-use-EXTENSIONS_DIR.patch b/meta-networking/recipes-protocols/freediameter/files/0001-tests-use-EXTENSIONS_DIR.patch
new file mode 100644
index 0000000000..4cedc21ce8
--- /dev/null
+++ b/meta-networking/recipes-protocols/freediameter/files/0001-tests-use-EXTENSIONS_DIR.patch
@@ -0,0 +1,92 @@
+From 935fcac46e2790e0e297ca855b8033895c1b8941 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 24 Aug 2022 13:45:32 +0800
+Subject: [PATCH] tests: use EXTENSIONS_DIR
+
+Use EXTENSIONS_DIR to replace BUILD_DIR as the BUILD_DIR is meanlingless
+on target and also fix buildpaths issue.
+
+Upstream-Status: Inappropriate [OE ptest specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ tests/CMakeLists.txt | 1 +
+ tests/testloadext.c | 12 ++++++------
+ tests/testmesg_stress.c | 12 ++++++------
+ 3 files changed, 13 insertions(+), 12 deletions(-)
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 8b698ce..2c83cbb 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -37,6 +37,7 @@ SET(TEST_LIST
+
+ ADD_DEFINITIONS(-DTEST_DEBUG)
+ ADD_DEFINITIONS(-DBUILD_DIR="${CMAKE_BINARY_DIR}")
++ADD_DEFINITIONS(-DEXTENSIONS_DIR="${EXTENSIONS_DIR}")
+
+ INCLUDE_DIRECTORIES( "../libfdproto" )
+ INCLUDE_DIRECTORIES( "../libfdcore" )
+diff --git a/tests/testloadext.c b/tests/testloadext.c
+index 452737f..3fffef5 100644
+--- a/tests/testloadext.c
++++ b/tests/testloadext.c
+@@ -35,9 +35,9 @@
+
+ #include "tests.h"
+
+-#ifndef BUILD_DIR
+-#error "Missing BUILD_DIR information"
+-#endif /* BUILD_DIR */
++#ifndef EXTENSIONS_DIR
++#error "Missing EXTENSIONS_DIR information"
++#endif /* EXTENSIONS_DIR */
+
+ #include <sys/types.h>
+ #include <dirent.h>
+@@ -59,9 +59,9 @@ int main(int argc, char *argv[])
+ CHECK( 0, fd_rtdisp_init() );
+
+ /* Find all extensions which have been compiled along the test */
+- TRACE_DEBUG(INFO, "Loading from: '%s'", BUILD_DIR "/extensions");
+- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
+- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
++ TRACE_DEBUG(INFO, "Loading from: '%s'", EXTENSIONS_DIR);
++ CHECK( 0, (dir = opendir (EXTENSIONS_DIR)) == NULL ? 1 : 0 );
++ pathlen = snprintf(fullname, sizeof(fullname), EXTENSIONS_DIR "/");
+
+ while ((dp = readdir (dir)) != NULL) {
+ char * dot = strrchr(dp->d_name, '.');
+diff --git a/tests/testmesg_stress.c b/tests/testmesg_stress.c
+index 310a9d2..97dfe07 100644
+--- a/tests/testmesg_stress.c
++++ b/tests/testmesg_stress.c
+@@ -38,9 +38,9 @@
+ #include <libgen.h>
+ #include <dlfcn.h>
+
+-#ifndef BUILD_DIR
+-#error "Missing BUILD_DIR information"
+-#endif /* BUILD_DIR */
++#ifndef EXTENSIONS_DIR
++#error "Missing EXTENSIONS_DIR information"
++#endif /* EXTENSIONS_DIR */
+
+
+ /* The number of times each operation is repeated to measure the average operation time */
+@@ -73,9 +73,9 @@ static void load_all_extensions(char * prefix)
+ struct fd_list ext_with_depends = FD_LIST_INITIALIZER(ext_with_depends);
+
+ /* Find all extensions which have been compiled along the test */
+- LOG_D("Loading %s*.fdx from: '%s'", BUILD_DIR "/extensions", prefix ?: "");
+- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
+- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
++ LOG_D("Loading %s*.fdx from: '%s'", EXTENSIONS_DIR, prefix ?: "");
++ CHECK( 0, (dir = opendir (EXTENSIONS_DIR)) == NULL ? 1 : 0 );
++ pathlen = snprintf(fullname, sizeof(fullname), EXTENSIONS_DIR "/");
+
+ while ((dp = readdir (dir)) != NULL) {
+ char * dot = strrchr(dp->d_name, '.');
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/freediameter/files/freediameter.service b/meta-networking/recipes-protocols/freediameter/files/freediameter.service
index 514481b431..70ed3803c6 100644
--- a/meta-networking/recipes-protocols/freediameter/files/freediameter.service
+++ b/meta-networking/recipes-protocols/freediameter/files/freediameter.service
@@ -4,7 +4,7 @@ After=network.target
[Service]
Type=simple
-PIDFile=/var/run/freediameter.pid
+PIDFile=/run/freediameter.pid
ExecStart=@BINDIR@/freeDiameterd
[Install]
diff --git a/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch b/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch
deleted file mode 100644
index ea857af7d6..0000000000
--- a/meta-networking/recipes-protocols/freediameter/files/pass-ptest-env.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-freediameter ptest cases testmesg_stress.c and testloadext.c need load
-extensions both build time and runtime. Then they search extensions with
-build directory that causes runtime failures.
-
-Pass an environment variable to define runtime extension path.
-
-Upstream-Status: Inappropriate [OE ptest specific]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
-diff -Nur freeDiameter-1.2.0.orig/tests/testloadext.c freeDiameter-1.2.0/tests/testloadext.c
---- freeDiameter-1.2.0.orig/tests/testloadext.c 2014-02-19 17:33:24.785405032 +0800
-+++ freeDiameter-1.2.0/tests/testloadext.c 2014-02-19 20:08:03.871403924 +0800
-@@ -49,7 +49,7 @@
- {
- DIR *dir;
- struct dirent *dp;
-- char fullname[512];
-+ char fullname[1024];
- int pathlen;
-
- /* First, initialize the daemon modules */
-@@ -57,11 +57,16 @@
- CHECK( 0, fd_queues_init() );
- CHECK( 0, fd_msg_init() );
- CHECK( 0, fd_rtdisp_init() );
--
-+
-+ char *ext_dir = getenv("EXTENSIONS_DIR");
-+ if (ext_dir)
-+ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir);
-+ else
-+ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
-+
- /* Find all extensions which have been compiled along the test */
-- TRACE_DEBUG(INFO, "Loading from: '%s'", BUILD_DIR "/extensions");
-- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
-- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
-+ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname);
-+ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 );
-
- while ((dp = readdir (dir)) != NULL) {
- char * dot = strrchr(dp->d_name, '.');
-diff -Nur freeDiameter-1.2.0.orig/tests/testmesg_stress.c freeDiameter-1.2.0/tests/testmesg_stress.c
---- freeDiameter-1.2.0.orig/tests/testmesg_stress.c 2014-02-19 17:33:24.785405032 +0800
-+++ freeDiameter-1.2.0/tests/testmesg_stress.c 2014-02-19 20:08:03.928403924 +0800
-@@ -67,15 +67,20 @@
- {
- DIR *dir;
- struct dirent *dp;
-- char fullname[512];
-+ char fullname[1024];
- int pathlen;
- struct fd_list all_extensions = FD_LIST_INITIALIZER(all_extensions);
- struct fd_list ext_with_depends = FD_LIST_INITIALIZER(ext_with_depends);
-
-+ char *ext_dir = getenv("EXTENSIONS_DIR");
-+ if (ext_dir)
-+ pathlen = snprintf(fullname, sizeof(fullname), "%s", ext_dir);
-+ else
-+ pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
-+
- /* Find all extensions which have been compiled along the test */
-- LOG_D("Loading %s*.fdx from: '%s'", BUILD_DIR "/extensions", prefix ?: "");
-- CHECK( 0, (dir = opendir (BUILD_DIR "/extensions")) == NULL ? 1 : 0 );
-- pathlen = snprintf(fullname, sizeof(fullname), BUILD_DIR "/extensions/");
-+ TRACE_DEBUG(INFO, "Loading from: '%s'", fullname);
-+ CHECK( 0, (dir = opendir (fullname)) == NULL ? 1 : 0 );
-
- while ((dp = readdir (dir)) != NULL) {
- char * dot = strrchr(dp->d_name, '.');
diff --git a/meta-networking/recipes-protocols/freediameter/files/run-ptest b/meta-networking/recipes-protocols/freediameter/files/run-ptest
index d0ca8d9621..3c841644b7 100644
--- a/meta-networking/recipes-protocols/freediameter/files/run-ptest
+++ b/meta-networking/recipes-protocols/freediameter/files/run-ptest
@@ -6,6 +6,5 @@ if ! lsmod | grep -q sctp && ! modprobe sctp 2>/dev/null; then
echo
fi
-export EXTENSIONS_DIR=$EXTENSIONS_DIR
cmake -E cmake_echo_color --cyan "Running tests..."
ctest --force-new-ctest-process
diff --git a/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb b/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb
deleted file mode 100644
index c556eb48e8..0000000000
--- a/meta-networking/recipes-protocols/freediameter/freediameter_1.2.1.bb
+++ /dev/null
@@ -1,138 +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"
-
-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://pass-ptest-env.patch', '', d)} \
- file://freeDiameter.conf \
- "
-
-SRC_URI[md5sum] = "61b1062aa144b5f12eed514611e6d697"
-SRC_URI[sha256sum] = "bd7f105542e9903e776aa006c6931c1f5d3d477cb59af33a9162422efa477097"
-
-S = "${WORKDIR}/${fd_pkgname}-${PV}"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=892b2ed6ae815488a08416ff7ee74a35"
-
-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} \
- -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
-
-}
-
-do_install_ptest() {
- sed -i "s#\(EXTENSIONS_DIR=\).*\$#\1${libdir}/${fd_pkgname}/#" ${D}${PTEST_PATH}/run-ptest
- mv ${D}${PTEST_PATH}-tests/* ${D}${PTEST_PATH}/
- rmdir ${D}${PTEST_PATH}-tests
- install -m 0644 ${B}/tests/CTestTestfile.cmake ${D}${PTEST_PATH}/
-}
-
-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.4.0.bb b/meta-networking/recipes-protocols/freediameter/freediameter_1.4.0.bb
new file mode 100644
index 0000000000..44fc46e3a8
--- /dev/null
+++ b/meta-networking/recipes-protocols/freediameter/freediameter_1.4.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"
+
+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/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch b/meta-networking/recipes-protocols/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch
new file mode 100644
index 0000000000..872a67c784
--- /dev/null
+++ b/meta-networking/recipes-protocols/frr/frr/0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch
@@ -0,0 +1,33 @@
+From a82d704b1ec6ece47b01d12e0e067d4b62b10894 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 9 Nov 2022 20:24:45 +0100
+Subject: [PATCH] m4/ax_python.m4: check for python-x.y-emded.pc, not
+ python-x.y.pc
+
+Only the embed version includes necessary linker flags to link
+with libpython.
+
+Upstream-Status: Backport
+[https://github.com/FRRouting/frr/commit/a82d704b1ec6ece47b01d12e0e067d4b62b10894]
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ m4/ax_python.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/ax_python.m4 b/m4/ax_python.m4
+index 91d12b99b..f5e603b96 100644
+--- a/m4/ax_python.m4
++++ b/m4/ax_python.m4
+@@ -206,7 +206,7 @@ AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+ AC_MSG_CHECKING([whether pkg-config python-${tryver} is available])
+ unset PYTHON_CFLAGS
+ unset PYTHON_LIBS
+- pkg="python-${tryver}"
++ pkg="python-${tryver}-embed"
+ pkg="${pkg%-}"
+ _PKG_CONFIG([PYTHON_CFLAGS], [cflags], [${pkg}])
+ _PKG_CONFIG([PYTHON_LIBS], [libs], [${pkg}])
+--
+2.25.1
+
diff --git a/meta-networking/recipes-protocols/frr/frr/frr.pam b/meta-networking/recipes-protocols/frr/frr/frr.pam
new file mode 100644
index 0000000000..a9ec35dd69
--- /dev/null
+++ b/meta-networking/recipes-protocols/frr/frr/frr.pam
@@ -0,0 +1,14 @@
+#
+# The PAM configuration file for the frr `vtysh' service
+#
+
+# 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
+# /etc/shadow entries.
+auth include common-auth
+
diff --git a/meta-networking/recipes-protocols/frr/frr_8.4.4.bb b/meta-networking/recipes-protocols/frr/frr_8.4.4.bb
new file mode 100644
index 0000000000..b87c3e78b0
--- /dev/null
+++ b/meta-networking/recipes-protocols/frr/frr_8.4.4.bb
@@ -0,0 +1,125 @@
+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.4 \
+ file://frr.pam \
+ file://0001-m4-ax_python.m4-check-for-python-x.y-emded.pc-not-py.patch \
+ "
+
+SRCREV = "45e36c0c00a517ad1606135b18c5753e210cfc0d"
+
+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"
+
+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"
+LDFLAGS:append:riscv32 = " -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/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch b/meta-networking/recipes-protocols/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch
deleted file mode 100644
index 863866d18e..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d3082d2c606c810aa0a39378bf1e02575af3a301 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Feb 2018 21:54:11 -0800
-Subject: [PATCH] nss_mdns: Do not include nss.h when libc != glibc
-
-Provide nss_status macro instead for non-glibc case
-where nss.h is absent
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- mDNSPosix/nss_mdns.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/mDNSPosix/nss_mdns.c b/mDNSPosix/nss_mdns.c
-index afadb3c..c469584 100755
---- a/mDNSPosix/nss_mdns.c
-+++ b/mDNSPosix/nss_mdns.c
-@@ -378,8 +378,19 @@ init_config ();
-
- #define ENTNAME hostent
- #define DATABASE "hosts"
--
-+#ifdef __GLIBC__
- #include <nss.h>
-+#else
-+enum nss_status
-+{
-+ NSS_STATUS_TRYAGAIN = -2,
-+ NSS_STATUS_UNAVAIL,
-+ NSS_STATUS_NOTFOUND,
-+ NSS_STATUS_SUCCESS,
-+ NSS_STATUS_RETURN
-+};
-+#define NETDB_INTERNAL NULL
-+#endif
- // For nss_status
- #include <netdb.h>
- // For hostent
---
-2.16.1
-
diff --git a/meta-networking/recipes-protocols/mdns/files/build.patch b/meta-networking/recipes-protocols/mdns/files/build.patch
deleted file mode 100644
index 4ab9d23bf7..0000000000
--- a/meta-networking/recipes-protocols/mdns/files/build.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-From 43b6e98c9c37afd0d914949dcff4eab81f5a995f 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
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
----
- mDNSPosix/Makefile | 54 +++++++++++++++++++++++++-----------------------------
- 1 file changed, 25 insertions(+), 29 deletions(-)
-
-diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
-index 4f98e90..8ac97ad 100755
---- a/mDNSPosix/Makefile
-+++ b/mDNSPosix/Makefile
-@@ -50,6 +50,7 @@
-
- LIBVERS = 1
-
-+POSIXDIR = ../mDNSPosix
- COREDIR = ../mDNSCore
- SHAREDDIR ?= ../mDNSShared
- JDK = /usr/jdk
-@@ -58,11 +59,11 @@ CC = @cc
- BISON = @bison
- FLEX = @flex
- ST = @strip
--LD = ld -shared
-+LD =@LD
- CP = cp
- RM = rm
- LN = ln -s -f
--CFLAGS_COMMON = -I$(COREDIR) -I$(SHAREDDIR) -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$(OBJDIR) -fwrapv -W -Wall -DPID_FILE=\"/var/run/mdnsd.pid\" -DMDNS_UDS_SERVERPATH=\"/var/run/mdnsd\"
- CFLAGS_PTHREAD =
- LINKOPTS =
- LINKOPTS_PTHREAD = -lpthread
-@@ -70,7 +71,7 @@ LDSUFFIX = so
- JAVACFLAGS_OS = -fPIC -shared -ldns_sd
-
- # Set up diverging paths for debug vs. prod builds
--DEBUG=0
-+DEBUG?=1
- ifeq ($(DEBUG),1)
- CFLAGS_DEBUG = -g -DMDNS_DEBUGMSGS=2
- OBJDIR = objects/debug
-@@ -213,7 +214,7 @@ endif
- endif
- endif
-
--CFLAGS = $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG)
-+CFLAGS_BUILD = $(CFLAGS) $(CFLAGS_COMMON) $(CFLAGS_OS) $(CFLAGS_DEBUG)
-
- #############################################################################
-
-@@ -249,8 +250,7 @@ Daemon: setup $(BUILDDIR)/mdnsd
- @echo "Responder daemon done"
-
- $(BUILDDIR)/mdnsd: $(DAEMONOBJS)
-- $(CC) -o $@ $+ $(LINKOPTS)
-- @$(STRIP) $@
-+ $(CC) -o $@ $+
-
- # libdns_sd target builds the client library
- libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
-@@ -259,22 +259,18 @@ 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) $(LINKOPTS) -o $@ $+
-- @$(STRIP) $@
-+ $(LD) -shared $(LINKOPTS) -Wl,-soname,libdns_sd.$(LDSUFFIX).1 -o $@ $+
-
--Clients: setup libdns_sd ../Clients/build/dns-sd
-+Clients: setup libdns_sd
-+ @$(MAKE) -C ../Clients DEBUG=${DEBUG}
- @echo "Clients done"
-
--../Clients/build/dns-sd:
-- @$(MAKE) -C ../Clients
--
- # nss_mdns target builds the Name Service Switch module
- nss_mdns: setup $(BUILDDIR)/$(NSSLIBFILE)
- @echo "Name Service Switch module done"
-
- $(BUILDDIR)/$(NSSLIBFILE): $(CLIENTLIBOBJS) $(OBJDIR)/nss_mdns.c.so.o
-- @$(LD) $(LINKOPTS) -o $@ $+
-- @$(STRIP) $@
-+ $(LD) -shared $(LINKOPTS) -o $@ $+
-
- #############################################################################
-
-@@ -470,55 +466,55 @@ 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)/mDNSIdentify: $(SPECIALOBJ) $(OBJDIR)/Identify.c.o
-- $(CC) $+ -o $@ $(LINKOPTS)
-+ $(CC) $+ -o $@
-
- $(OBJDIR)/Identify.c.o: $(COREDIR)/mDNS.c # Note: Identify.c textually imports mDNS.c
-
- $(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)
-
- #############################################################################
-
- # Implicit rules
- $(OBJDIR)/%.c.o: %.c
-- $(CC) $(CFLAGS) -c -o $@ $<
-+ $(CC) $(CFLAGS_BUILD) -c -o $@ $<
-
- $(OBJDIR)/%.c.o: $(COREDIR)/%.c
-- $(CC) $(CFLAGS) -c -o $@ $<
-+ $(CC) $(CFLAGS_BUILD) -c -o $@ $<
-
- $(OBJDIR)/%.c.o: $(SHAREDDIR)/%.c
-- $(CC) $(CFLAGS) -c -o $@ $<
-+ $(CC) $(CFLAGS_BUILD) -c -o $@ $<
-
- $(OBJDIR)/%.c.threadsafe.o: %.c
-- $(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
-+ $(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
-
- $(OBJDIR)/%.c.threadsafe.o: $(SHAREDDIR)/%.c
-- $(CC) $(CFLAGS) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
-+ $(CC) $(CFLAGS_BUILD) $(CFLAGS_PTHREAD) -D_REENTRANT -c -o $@ $<
-
- $(OBJDIR)/%.c.so.o: %.c
-- $(CC) $(CFLAGS) -c -fPIC -o $@ $<
-+ $(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $<
-
- $(OBJDIR)/%.c.so.o: $(SHAREDDIR)/%.c
-- $(CC) $(CFLAGS) -c -fPIC -o $@ $<
-+ $(CC) $(CFLAGS_BUILD) -c -fPIC -o $@ $<
-
- $(OBJDIR)/%.y.o: $(SHAREDDIR)/%.y
- $(BISON) -o $(OBJDIR)/$*.c -d $<
-- $(CC) $(CFLAGS) -c -o $@ $(OBJDIR)/$*.c
-+ $(CC) $(CFLAGS_BUILD) -c -o $@ $(OBJDIR)/$*.c
-
- $(OBJDIR)/%.l.o: $(SHAREDDIR)/%.l
- $(FLEX) $(FLEXFLAGS_OS) -i -o$(OBJDIR)/$*.l.c $<
-- $(CC) $(CFLAGS) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c
-+ $(CC) $(CFLAGS_BUILD) -Wno-error -c -o $@ $(OBJDIR)/$*.l.c
---
-2.9.5
-
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..91198dea73
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0001-Create-subroutine-for-cleaning-recent-interfaces.patch
@@ -0,0 +1,61 @@
+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(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index 0a7c3dfa2475..fe7242d83599 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1322,6 +1322,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; 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 *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; mdns_free(pi); }
+- }
++ CleanRecentInterfaces();
+
+ return err;
+ }
+--
+2.35.1
+
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..4a60a95728
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0001-dns-sd-Include-missing-headers.patch
@@ -0,0 +1,30 @@
+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(+)
+
+diff --git a/mDNSPosix/nss_mdns.c b/mDNSPosix/nss_mdns.c
+index afadb3c6c33b..84c312759463 100644
+--- 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
+--
+2.35.1
+
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..aa3dda8d55
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0002-Create-subroutine-for-tearing-down-an-interface.patch
@@ -0,0 +1,59 @@
+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(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index fe7242d83599..a32a880c0ce5 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1043,6 +1043,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)
+ {
+@@ -1051,13 +1064,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);
+ }
+
+ mDNSlocal int SetupIPv6Socket(int fd)
+--
+2.35.1
+
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..7f660396b4
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0002-make-Set-libdns_sd.so-soname-correctly.patch
@@ -0,0 +1,27 @@
+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(-)
+
+diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
+index 802a13dd70b6..5e74193c0e89 100755
+--- a/mDNSPosix/Makefile
++++ b/mDNSPosix/Makefile
+@@ -276,7 +276,7 @@ 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 $(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
+--
+2.35.1
+
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..d2a9995ffa
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0003-Track-interface-socket-family.patch
@@ -0,0 +1,51 @@
+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(+)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index a32a880c0ce5..9a5b4d7ea4cb 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1415,6 +1415,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 9675591b0434..dd7864cd0d5e 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
+ char * intfName;
+ PosixNetworkInterface * aliasIntf;
+ int index;
++ sa_family_t sa_family;
+ int multicastSocket4;
+ #if HAVE_IPV6
+ int multicastSocket6;
+--
+2.35.1
+
diff --git a/meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch b/meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch
new file mode 100644
index 0000000000..0ac0bb6a45
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.patch
@@ -0,0 +1,30 @@
+From 4c0954f77ba05d77192ee1519929a39fbc978321 Mon Sep 17 00:00:00 2001
+From: Alex Kiernan <alex.kiernan@gmail.com>
+Date: Mon, 5 Dec 2022 15:14:22 +0000
+Subject: [PATCH 3/6] mDNSShared: Drop MacOS specific __block qualifier
+
+Support for this extension only exists in MacOS/Clang, also it's not
+actually used here, so we can just drop it.
+
+Upstream-Status: Pending
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+ mDNSShared/uds_daemon.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mDNSShared/uds_daemon.c b/mDNSShared/uds_daemon.c
+index 9ae5f78542d6..8c006b71a4ea 100644
+--- a/mDNSShared/uds_daemon.c
++++ b/mDNSShared/uds_daemon.c
+@@ -2912,7 +2912,7 @@ exit:
+ mDNSlocal mStatus add_domain_to_browser(request_state *info, const domainname *d)
+ {
+ browser_t *b, *p;
+- __block mStatus err;
++ mStatus err;
+
+ for (p = info->u.browser.browsers; p; p = p->next)
+ {
+--
+2.35.1
+
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..a5f7f0136b
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0004-Indicate-loopback-interface-to-mDNS-core.patch
@@ -0,0 +1,58 @@
+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(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index 9a5b4d7ea4cb..02a19b438e03 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1348,7 +1348,7 @@ mDNSlocal void CleanRecentInterfaces(void)
+ // 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 *const m, struct sockaddr *intfAddr, struct
+
+ 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 *const m)
+ }
+ #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 *const m)
+ // 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.
+--
+2.35.1
+
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..a8e8dae60a
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0004-make-Separate-TLS-targets-from-libraries.patch
@@ -0,0 +1,64 @@
+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(-)
+
+diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
+index 5e74193c0e89..b4313c36b035 100755
+--- a/mDNSPosix/Makefile
++++ b/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
+
+--
+2.35.1
+
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..1aec34f243
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0005-Use-list-for-changed-interfaces.patch
@@ -0,0 +1,169 @@
+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(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index 02a19b438e03..e20adda92229 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/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 *pFD)
+ 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(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
+@@ -1691,9 +1715,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)
+@@ -1704,8 +1728,6 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
+ else
+ break; // all done!
+ }
+-
+- return result;
+ }
+
+ #else // USES_NETLINK
+@@ -1737,14 +1759,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))
+@@ -1759,12 +1780,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
+@@ -1774,7 +1793,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
+@@ -1782,17 +1802,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);
++ mdns_free(changedInterface);
++ }
+ }
+
+ // Register with either a Routing Socket or RtNetLink to listen for interface changes.
+--
+2.35.1
+
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..39e67cdf48
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0005-mDNSCore-Fix-broken-debug-parameter.patch
@@ -0,0 +1,28 @@
+From 60533a8947af714cc593bae6b20d47f3a4828589 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 5/6] mDNSCore: Fix broken debug parameter
+
+Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+---
+Upstream-Status: Pending
+
+ mDNSCore/mDNS.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mDNSCore/mDNS.c b/mDNSCore/mDNS.c
+index 66979587ee82..e0a982fa1762 100644
+--- a/mDNSCore/mDNS.c
++++ b/mDNSCore/mDNS.c
+@@ -9831,7 +9831,7 @@ mDNSlocal void mDNSCoreReceiveNoUnicastAnswers(mDNS *const m, const DNSMessage *
+ #else
+ const DNSServRef dnsserv = qptr->qDNSServer;
+ #endif
+- debugf("mDNSCoreReceiveNoUnicastAnswers making negative cache entry TTL %d for %##s (%s)", negttl, name->c, 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);
+--
+2.35.1
+
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..882d08e6c6
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0006-Handle-noisy-netlink-sockets.patch
@@ -0,0 +1,252 @@
+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(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index e20adda92229..5d52de31f79b 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1788,14 +1788,43 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
+
+ #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(int fd, void *context)
+ }
+ 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 *const m)
+ #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);
+--
+2.35.1
+
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..268e574c50
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0006-make-Add-top-level-Makefile.patch
@@ -0,0 +1,25 @@
+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
+
+diff --git a/Makefile b/Makefile
+new file mode 100644
+index 000000000000..feb6ac67ef47
+--- /dev/null
++++ b/Makefile
+@@ -0,0 +1,2 @@
++all clean:
++ cd mDNSPosix && $(MAKE) $@
+--
+2.35.1
+
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..e53b0fd3ae
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0007-Mark-deleted-interfaces-as-being-changed.patch
@@ -0,0 +1,40 @@
+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(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index 5d52de31f79b..77d982f4c50b 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1714,7 +1714,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.35.1
+
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..e689f8c267
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0008-Handle-errors-from-socket-calls.patch
@@ -0,0 +1,63 @@
+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(-)
+
+diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
+index 77d982f4c50b..cab512160afb 100644
+--- a/mDNSPosix/mDNSPosix.c
++++ b/mDNSPosix/mDNSPosix.c
+@@ -1677,7 +1677,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;
+
+@@ -1686,7 +1686,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.
+@@ -1702,7 +1705,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
+@@ -2017,6 +2022,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.35.1
+
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..74d387368c
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns/0009-remove-unneeded-headers.patch
@@ -0,0 +1,33 @@
+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(-)
+
+diff --git a/mDNSPosix/mbedtls.c b/mDNSPosix/mbedtls.c
+index a73681b..ab8f8c7 100644
+--- a/mDNSPosix/mbedtls.c
++++ b/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 {
+--
+2.34.1
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_1790.80.10.bb b/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb
new file mode 100644
index 0000000000..aff7954f50
--- /dev/null
+++ b/meta-networking/recipes-protocols/mdns/mdns_1790.80.10.bb
@@ -0,0 +1,133 @@
+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"
+
+SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https;branch=rel/mDNSResponder-1790 \
+ file://0001-dns-sd-Include-missing-headers.patch \
+ file://0002-make-Set-libdns_sd.so-soname-correctly.patch \
+ file://0003-mDNSShared-Drop-MacOS-specific-__block-qualifier.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 \
+ "
+SRCREV = "8769ab51605e465425d33d757f602ce5905ca639"
+
+# 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/mdns/mdns_765.50.9.bb b/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb
deleted file mode 100644
index 9a7152fcf0..0000000000
--- a/meta-networking/recipes-protocols/mdns/mdns_765.50.9.bb
+++ /dev/null
@@ -1,90 +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"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=31c50371921e0fb731003bbc665f29bf"
-
-RPROVIDES_${PN} += "libdns_sd.so"
-
-SRC_URI = "http://opensource.apple.com/tarballs/mDNSResponder/mDNSResponder-${PV}.tar.gz \
- file://build.patch;patchdir=.. \
- file://mdns.service \
- file://0001-nss_mdns-Do-not-include-nss.h-when-libc-glibc.patch;patchdir=.. \
- "
-
-SRC_URI[md5sum] = "4a6bc1628851002634ea3833a4dca317"
-SRC_URI[sha256sum] = "de61dd0034357aa50c60806726fb1f70fa8e953ff9cb62eccfb73efad10dba0a"
-
-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/net-snmp/net-snmp/0001-Add-noreturn-attribute-to-netsnmp_pci_error.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-noreturn-attribute-to-netsnmp_pci_error.patch
new file mode 100644
index 0000000000..6fbace75a5
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Add-noreturn-attribute-to-netsnmp_pci_error.patch
@@ -0,0 +1,32 @@
+From 5719f40db65a72624a0b0f08e546d12bf823bd1e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Jan 2023 14:38:44 -0800
+Subject: [PATCH] Add noreturn attribute to netsnmp_pci_error()
+
+Fixes build with clang16
+| mibgroup/if-mib/data_access/interface_linux.c:152:23: error: incompatible function pointer types assigning to 'void (*)(char *, ...) __attribute__((noreturn))' from 'void (char *, ...)' [-Wincompatible-function-pointer-types]
+| pci_access->error = netsnmp_pci_error;
+| ^ ~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ agent/mibgroup/if-mib/data_access/interface_linux.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/agent/mibgroup/if-mib/data_access/interface_linux.c b/agent/mibgroup/if-mib/data_access/interface_linux.c
+index c6cc54e..12eb865 100644
+--- a/agent/mibgroup/if-mib/data_access/interface_linux.c
++++ b/agent/mibgroup/if-mib/data_access/interface_linux.c
+@@ -31,7 +31,7 @@ static struct pci_access *pci_access;
+ /* Avoid letting libpci call exit(1) when no PCI bus is available. */
+ static int do_longjmp =0;
+ static jmp_buf err_buf;
+-static void
++__attribute__((noreturn)) static void
+ netsnmp_pci_error(char *msg, ...)
+ {
+ va_list args;
+--
+2.39.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch
deleted file mode 100644
index b14b76128a..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a92628a163ebf1ea62220684736300461c003875 Mon Sep 17 00:00:00 2001
-From: Niels Baggesen <nba@users.sourceforge.net>
-Date: Mon, 26 Jan 2015 20:26:06 +0100
-Subject: [PATCH] BUG#a2584: Fix snmptrap to use clientaddr from snmp.conf.
- Thanks to rizwan
-
-Upstream-Status: backport
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- snmplib/transports/snmpUDPIPv6Domain.c | 21 +++++++++++++++++++++
- 1 file changed, 21 insertions(+)
-
-Index: net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/transports/snmpUDPIPv6Domain.c
-+++ net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-@@ -286,6 +286,27 @@ netsnmp_udp6_transport(struct sockaddr_i
- return NULL;
- #endif /* NETSNMP_NO_LISTEN_SUPPORT */
- } else {
-+ char *client_socket = NULL;
-+ /*
-+ * This is a client session. If we've been given a
-+ * client address to send from, then bind to that.
-+ * Otherwise the send will use "something sensible".
-+ */
-+
-+ client_socket = netsnmp_ds_get_string(NETSNMP_DS_LIBRARY_ID,
-+ NETSNMP_DS_LIB_CLIENT_ADDR);
-+ if (client_socket) {
-+ struct sockaddr_in6 client_addr;
-+ netsnmp_sockaddr_in6_2(&client_addr, client_socket, NULL);
-+ rc = bind(t->sock, (struct sockaddr *)&client_addr,
-+ sizeof(struct sockaddr_in6));
-+ if ( rc != 0 ) {
-+ DEBUGMSGTL(("netsnmp_udp6", "failed to bind for clientaddr: %d %s\n",
-+ errno, strerror(errno)));
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ }
-+ }
- /*
- * This is a client session. Save the address in the
- * transport-specific data pointer for later use by netsnmp_udp6_send.
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch
deleted file mode 100644
index 7314ab16a5..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-Remove-U64-typedef.patch
+++ /dev/null
@@ -1,2524 +0,0 @@
-net-snmp: remove U64 typedef
-
-From git://git.code.sf.net/p/net-snmp/code
-
-Upstream-Status: Backport (unmodified)
-
-Signed-off-by: Joe Slater <joe.slater@windriver.com>
-
-From 477b4307ef12ddce3b6a9205e0bdddbfb2e0e9b6 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Sat, 20 Feb 2016 18:58:18 -0800
-Subject: [PATCH 1/1] Remove U64 typedef
-
-The U64 typedef conflicts with a typedef in a Perl header file. Hence
-remove the U64 typedef from the Net-SNMP header files. This patch does
-not modify the Net-SNMP ABI.
----
- agent/mibgroup/if-mib/ifXTable/ifXTable.c | 16 +-
- agent/mibgroup/if-mib/ifXTable/ifXTable.h | 48 +-
- .../mibgroup/if-mib/ifXTable/ifXTable_interface.c | 32 +-
- .../ip-mib/data_access/systemstats_common.c | 2 +-
- .../ipIfStatsTable/ipIfStatsTable_data_get.c | 28 +-
- .../ipIfStatsTable/ipIfStatsTable_data_get.h | 28 +-
- .../ipIfStatsTable/ipIfStatsTable_interface.c | 56 +-
- .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.c | 28 +-
- .../ip-mib/ipSystemStatsTable/ipSystemStatsTable.h | 921 ++-------------------
- .../ipSystemStatsTable_interface.c | 56 +-
- include/net-snmp/data_access/ipstats.h | 42 +-
- include/net-snmp/library/int64.h | 34 +-
- snmplib/int64.c | 38 +-
- snmplib/read_config.c | 6 +-
- testing/fulltests/unit-tests/T015int64_clib.c | 10 +-
- 15 files changed, 274 insertions(+), 1071 deletions(-)
-
-Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable.c
-+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.c
-@@ -722,7 +722,7 @@ The total number of octets received on t
- */
- int
- ifHCInOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInOctets_val_ptr)
-+ struct counter64 *ifHCInOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInOctets_val_ptr);
-@@ -779,7 +779,7 @@ The number of packets, delivered by this
- */
- int
- ifHCInUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInUcastPkts_val_ptr)
-+ struct counter64 *ifHCInUcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInUcastPkts_val_ptr);
-@@ -838,7 +838,7 @@ The number of packets, delivered by this
- */
- int
- ifHCInMulticastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInMulticastPkts_val_ptr)
-+ struct counter64 *ifHCInMulticastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInMulticastPkts_val_ptr);
-@@ -897,7 +897,7 @@ The number of packets, delivered by this
- */
- int
- ifHCInBroadcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInBroadcastPkts_val_ptr)
-+ struct counter64 *ifHCInBroadcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCInBroadcastPkts_val_ptr);
-@@ -955,7 +955,7 @@ The total number of octets transmitted o
- */
- int
- ifHCOutOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutOctets_val_ptr)
-+ struct counter64 *ifHCOutOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutOctets_val_ptr);
-@@ -1013,7 +1013,7 @@ The total number of packets that higher-
- */
- int
- ifHCOutUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutUcastPkts_val_ptr)
-+ struct counter64 *ifHCOutUcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutUcastPkts_val_ptr);
-@@ -1074,7 +1074,7 @@ The total number of packets that higher-
- */
- int
- ifHCOutMulticastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutMulticastPkts_val_ptr)
-+ struct counter64 *ifHCOutMulticastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutMulticastPkts_val_ptr);
-@@ -1134,7 +1134,7 @@ The total number of packets that higher-
- */
- int
- ifHCOutBroadcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutBroadcastPkts_val_ptr)
-+ struct counter64 *ifHCOutBroadcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ifHCOutBroadcastPkts_val_ptr);
-Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.h
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable.h
-+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable.h
-@@ -143,28 +143,28 @@ config_require(if-mib/ifXTable/ifXTable_
- u_long *
- ifOutBroadcastPkts_val_ptr);
- int ifHCInOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInOctets_val_ptr);
-+ struct counter64 *ifHCInOctets_val_ptr);
- int ifHCInUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCInUcastPkts_val_ptr);
-+ struct counter64 *ifHCInUcastPkts_val_ptr);
- int ifHCInMulticastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCInMulticastPkts_val_ptr);
- int ifHCInBroadcastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCInBroadcastPkts_val_ptr);
- int ifHCOutOctets_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutOctets_val_ptr);
-+ struct counter64 *ifHCOutOctets_val_ptr);
- int ifHCOutUcastPkts_get(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 * ifHCOutUcastPkts_val_ptr);
-+ struct counter64 *ifHCOutUcastPkts_val_ptr);
- int ifHCOutMulticastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCOutMulticastPkts_val_ptr);
- int ifHCOutBroadcastPkts_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ifHCOutBroadcastPkts_val_ptr);
- int ifLinkUpDownTrapEnable_get(ifXTable_rowreq_ctx *
- rowreq_ctx,
-@@ -284,86 +284,86 @@ config_require(if-mib/ifXTable/ifXTable_
-
- int ifHCInOctets_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInOctets_val);
-+ struct counter64 ifHCInOctets_val);
- int ifHCInOctets_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInOctets_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCInOctets_val);
-+ struct counter64 ifHCInOctets_val);
- int ifHCInOctets_undo(ifXTable_rowreq_ctx * rowreq_ctx);
-
- int ifHCInUcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInUcastPkts_val);
-+ struct counter64 ifHCInUcastPkts_val);
- int ifHCInUcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInUcastPkts_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCInUcastPkts_val);
-+ struct counter64 ifHCInUcastPkts_val);
- int ifHCInUcastPkts_undo(ifXTable_rowreq_ctx * rowreq_ctx);
-
- int ifHCInMulticastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCInMulticastPkts_val);
- int ifHCInMulticastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInMulticastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInMulticastPkts_val);
-+ struct counter64 ifHCInMulticastPkts_val);
- int ifHCInMulticastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCInBroadcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCInBroadcastPkts_val);
- int ifHCInBroadcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCInBroadcastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCInBroadcastPkts_val);
-+ struct counter64 ifHCInBroadcastPkts_val);
- int ifHCInBroadcastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCOutOctets_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutOctets_val);
-+ struct counter64 ifHCOutOctets_val);
- int ifHCOutOctets_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutOctets_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCOutOctets_val);
-+ struct counter64 ifHCOutOctets_val);
- int ifHCOutOctets_undo(ifXTable_rowreq_ctx * rowreq_ctx);
-
- int ifHCOutUcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutUcastPkts_val);
-+ struct counter64 ifHCOutUcastPkts_val);
- int ifHCOutUcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutUcastPkts_set(ifXTable_rowreq_ctx * rowreq_ctx,
-- U64 ifHCOutUcastPkts_val);
-+ struct counter64 ifHCOutUcastPkts_val);
- int ifHCOutUcastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCOutMulticastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCOutMulticastPkts_val);
- int ifHCOutMulticastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutMulticastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutMulticastPkts_val);
-+ struct counter64 ifHCOutMulticastPkts_val);
- int ifHCOutMulticastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
- int ifHCOutBroadcastPkts_check_value(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64
-+ struct counter64
- ifHCOutBroadcastPkts_val);
- int ifHCOutBroadcastPkts_undo_setup(ifXTable_rowreq_ctx *
- rowreq_ctx);
- int ifHCOutBroadcastPkts_set(ifXTable_rowreq_ctx *
- rowreq_ctx,
-- U64 ifHCOutBroadcastPkts_val);
-+ struct counter64 ifHCOutBroadcastPkts_val);
- int ifHCOutBroadcastPkts_undo(ifXTable_rowreq_ctx *
- rowreq_ctx);
-
-Index: net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
-+++ net-snmp-5.7.3/agent/mibgroup/if-mib/ifXTable/ifXTable_interface.c
-@@ -729,72 +729,72 @@ _ifXTable_get_column(ifXTable_rowreq_ctx
- * ifHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCInUcastPkts(7)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINUCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInUcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInUcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCInMulticastPkts(8)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINMULTICASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInMulticastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInMulticastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCInBroadcastPkts(9)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCINBROADCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCInBroadcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCInBroadcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutOctets(10)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutUcastPkts(11)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTUCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutUcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutUcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutMulticastPkts(12)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTMULTICASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutMulticastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutMulticastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
- * ifHCOutBroadcastPkts(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IFHCOUTBROADCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ifHCOutBroadcastPkts_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ifHCOutBroadcastPkts_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/data_access/systemstats_common.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/data_access/systemstats_common.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/data_access/systemstats_common.c
-@@ -264,7 +264,7 @@ _calculate_entries(netsnmp_systemstats_e
- && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTFRAGCREATES]
- && entry->stats.columnAvail[IPSYSTEMSTATSTABLE_HCOUTDISCARDS]) {
-
-- U64 tmp, tmp2, tmp3;
-+ struct counter64 tmp, tmp2, tmp3;
- tmp = entry->stats.HCOutRequests;
- u64Incr(&tmp, &entry->stats.HCOutForwDatagrams);
- u64Incr(&tmp, &entry->stats.HCOutFragCreates);
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.c
-@@ -270,7 +270,7 @@ The total number of input IP datagrams r
- */
- int
- ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInReceives_val_ptr)
-+ struct counter64 *ipIfStatsHCInReceives_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInReceives_val_ptr);
-@@ -395,7 +395,7 @@ The total number of octets received in i
- */
- int
- ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCInOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInOctets_val_ptr);
-@@ -862,7 +862,7 @@ The number of input datagrams for which
- */
- int
- ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInForwDatagrams_val_ptr)
-+ struct counter64 *ipIfStatsHCInForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInForwDatagrams_val_ptr);
-@@ -1267,7 +1267,7 @@ The total number of datagrams successful
- */
- int
- ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInDelivers_val_ptr)
-+ struct counter64 *ipIfStatsHCInDelivers_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInDelivers_val_ptr);
-@@ -1396,7 +1396,7 @@ The total number of IP datagrams that lo
- */
- int
- ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutRequests_val_ptr)
-+ struct counter64 *ipIfStatsHCOutRequests_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutRequests_val_ptr);
-@@ -1532,7 +1532,7 @@ The number of datagrams for which this e
- */
- int
- ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutForwDatagrams_val_ptr)
-+ struct counter64 *ipIfStatsHCOutForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutForwDatagrams_val_ptr);
-@@ -1999,7 +1999,7 @@ The total number of IP datagrams that th
- */
- int
- ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutTransmits_val_ptr)
-+ struct counter64 *ipIfStatsHCOutTransmits_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutTransmits_val_ptr);
-@@ -2123,7 +2123,7 @@ The total number of octets in IP datagra
- */
- int
- ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCOutOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutOctets_val_ptr);
-@@ -2245,7 +2245,7 @@ The number of IP multicast datagrams rec
- */
- int
- ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInMcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCInMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInMcastPkts_val_ptr);
-@@ -2372,7 +2372,7 @@ The total number of octets received in I
- */
- int
- ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInMcastOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCInMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInMcastOctets_val_ptr);
-@@ -2497,7 +2497,7 @@ The number of IP multicast datagrams tra
- */
- int
- ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutMcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCOutMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutMcastPkts_val_ptr);
-@@ -2621,7 +2621,7 @@ The total number of octets transmitted i
- */
- int
- ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutMcastOctets_val_ptr)
-+ struct counter64 *ipIfStatsHCOutMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutMcastOctets_val_ptr);
-@@ -2743,7 +2743,7 @@ The number of IP broadcast datagrams rec
- */
- int
- ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCInBcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCInBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCInBcastPkts_val_ptr);
-@@ -2865,7 +2865,7 @@ The number of IP broadcast datagrams tra
- */
- int
- ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipIfStatsHCOutBcastPkts_val_ptr)
-+ struct counter64 *ipIfStatsHCOutBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipIfStatsHCOutBcastPkts_val_ptr);
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_data_get.h
-@@ -50,7 +50,7 @@ extern "C" {
- ipIfStatsInReceives_val_ptr);
- int ipIfStatsHCInReceives_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInReceives_val_ptr);
- int ipIfStatsInOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -58,7 +58,7 @@ extern "C" {
- ipIfStatsInOctets_val_ptr);
- int ipIfStatsHCInOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInOctets_val_ptr);
- int ipIfStatsInHdrErrors_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -87,7 +87,7 @@ extern "C" {
- int
- ipIfStatsHCInForwDatagrams_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInForwDatagrams_val_ptr);
- int ipIfStatsReasmReqds_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -111,7 +111,7 @@ extern "C" {
- ipIfStatsInDelivers_val_ptr);
- int ipIfStatsHCInDelivers_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInDelivers_val_ptr);
- int ipIfStatsOutRequests_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -119,7 +119,7 @@ extern "C" {
- ipIfStatsOutRequests_val_ptr);
- int ipIfStatsHCOutRequests_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutRequests_val_ptr);
- int ipIfStatsOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx
- * rowreq_ctx,
-@@ -128,7 +128,7 @@ extern "C" {
- int
- ipIfStatsHCOutForwDatagrams_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutForwDatagrams_val_ptr);
- int ipIfStatsOutDiscards_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -156,7 +156,7 @@ extern "C" {
- ipIfStatsOutTransmits_val_ptr);
- int ipIfStatsHCOutTransmits_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutTransmits_val_ptr);
- int ipIfStatsOutOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -164,7 +164,7 @@ extern "C" {
- ipIfStatsOutOctets_val_ptr);
- int ipIfStatsHCOutOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutOctets_val_ptr);
- int ipIfStatsInMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -172,7 +172,7 @@ extern "C" {
- ipIfStatsInMcastPkts_val_ptr);
- int ipIfStatsHCInMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInMcastPkts_val_ptr);
- int ipIfStatsInMcastOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -180,7 +180,7 @@ extern "C" {
- ipIfStatsInMcastOctets_val_ptr);
- int ipIfStatsHCInMcastOctets_get(ipIfStatsTable_rowreq_ctx
- * rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInMcastOctets_val_ptr);
- int ipIfStatsOutMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -188,7 +188,7 @@ extern "C" {
- ipIfStatsOutMcastPkts_val_ptr);
- int ipIfStatsHCOutMcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutMcastPkts_val_ptr);
- int ipIfStatsOutMcastOctets_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -196,7 +196,7 @@ extern "C" {
- ipIfStatsOutMcastOctets_val_ptr);
- int ipIfStatsHCOutMcastOctets_get(ipIfStatsTable_rowreq_ctx
- * rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutMcastOctets_val_ptr);
- int ipIfStatsInBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -204,7 +204,7 @@ extern "C" {
- ipIfStatsInBcastPkts_val_ptr);
- int ipIfStatsHCInBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCInBcastPkts_val_ptr);
- int ipIfStatsOutBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-@@ -212,7 +212,7 @@ extern "C" {
- ipIfStatsOutBcastPkts_val_ptr);
- int ipIfStatsHCOutBcastPkts_get(ipIfStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipIfStatsHCOutBcastPkts_val_ptr);
- int
- ipIfStatsDiscontinuityTime_get(ipIfStatsTable_rowreq_ctx *
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipIfStatsTable/ipIfStatsTable_interface.c
-@@ -722,10 +722,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInReceives(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINRECEIVES:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInReceives_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -741,9 +741,9 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ipIfStatsHCInOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ipIfStatsHCInOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -810,10 +810,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInForwDatagrams(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -869,10 +869,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInDelivers(19)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINDELIVERS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInDelivers_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -889,10 +889,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutRequests(21)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTREQUESTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutRequests_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -909,10 +909,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutForwDatagrams(24)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -979,10 +979,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutTransmits(31)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTTRANSMITS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutTransmits_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -999,9 +999,9 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutOctets(33)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
-- rc = ipIfStatsHCOutOctets_get(rowreq_ctx, (U64 *) var->val.string);
-+ rc = ipIfStatsHCOutOctets_get(rowreq_ctx, (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1018,10 +1018,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInMcastPkts(35)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1038,10 +1038,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInMcastOctets(37)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1058,10 +1058,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutMcastPkts(39)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1078,10 +1078,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutMcastOctets(41)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1098,10 +1098,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCInBcastPkts(43)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCINBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCInBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1118,10 +1118,10 @@ _ipIfStatsTable_get_column(ipIfStatsTabl
- * ipIfStatsHCOutBcastPkts(45)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPIFSTATSHCOUTBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipIfStatsHCOutBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.c
-@@ -452,7 +452,7 @@ The total number of input IP datagrams r
- */
- int
- ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInReceives_val_ptr)
-+ struct counter64 *ipSystemStatsHCInReceives_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInReceives_val_ptr);
-@@ -579,7 +579,7 @@ The total number of octets received in i
- */
- int
- ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInOctets_val_ptr)
-+ struct counter64 *ipSystemStatsHCInOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInOctets_val_ptr);
-@@ -1058,7 +1058,7 @@ The number of input datagrams for which
- int
- ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -1474,7 +1474,7 @@ The total number of datagrams successful
- */
- int
- ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInDelivers_val_ptr)
-+ struct counter64 *ipSystemStatsHCInDelivers_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInDelivers_val_ptr);
-@@ -1602,7 +1602,7 @@ The total number of IP datagrams which l
- */
- int
- ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutRequests_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutRequests_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutRequests_val_ptr);
-@@ -1809,7 +1809,7 @@ The number of datagrams for which this e
- int
- ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutForwDatagrams_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -2288,7 +2288,7 @@ The total number of IP datagrams that th
- */
- int
- ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutTransmits_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutTransmits_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutTransmits_val_ptr);
-@@ -2415,7 +2415,7 @@ The total number of octets in IP datagra
- */
- int
- ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutOctets_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutOctets_val_ptr);
-@@ -2539,7 +2539,7 @@ The number of IP multicast datagrams rec
- */
- int
- ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInMcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCInMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInMcastPkts_val_ptr);
-@@ -2665,7 +2665,7 @@ The total number of octets received in I
- int
- ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -2790,7 +2790,7 @@ The number of IP multicast datagrams tra
- */
- int
- ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutMcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutMcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutMcastPkts_val_ptr);
-@@ -2921,7 +2921,7 @@ The total number of octets transmitted i
- int
- ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutMcastOctets_val_ptr)
- {
- /** we should have a non-NULL pointer */
-@@ -3046,7 +3046,7 @@ The number of IP broadcast datagrams rec
- */
- int
- ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCInBcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCInBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCInBcastPkts_val_ptr);
-@@ -3170,7 +3170,7 @@ The number of IP broadcast datagrams tra
- */
- int
- ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx * rowreq_ctx,
-- U64 * ipSystemStatsHCOutBcastPkts_val_ptr)
-+ struct counter64 *ipSystemStatsHCOutBcastPkts_val_ptr)
- {
- /** we should have a non-NULL pointer */
- netsnmp_assert(NULL != ipSystemStatsHCOutBcastPkts_val_ptr);
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable.h
-@@ -144,93 +144,22 @@ config_require(ip-mib/ipSystemStatsTable
- *********************************************************************
- * function prototypes
- */
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_pre_request(ipSystemStatsTable_registration *
-+ int ipSystemStatsTable_pre_request(ipSystemStatsTable_registration *
- user_context);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_post_request(ipSystemStatsTable_registration *
-+ int ipSystemStatsTable_post_request(ipSystemStatsTable_registration *
- user_context, int rc);
-
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_rowreq_ctx_init(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsTable_rowreq_ctx_init(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- void *user_init_ctx);
- void
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
- ipSystemStatsTable_rowreq_ctx_cleanup(ipSystemStatsTable_rowreq_ctx
- * rowreq_ctx);
-
- ipSystemStatsTable_data *ipSystemStatsTable_allocate_data(void);
- void ipSystemStatsTable_release_data(ipSystemStatsTable_data
- * data);
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_rowreq_ctx
-+ ipSystemStatsTable_rowreq_ctx
- * ipSystemStatsTable_row_find_by_mib_index
- (ipSystemStatsTable_mib_index * mib_idx);
-
-@@ -265,226 +194,50 @@ config_require(ip-mib/ipSystemStatsTable
- * indexes
- */
-
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInReceives_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInReceives_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInReceives_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInReceives_val_ptr);
- int ipSystemStatsInOctets_get(ipSystemStatsTable_rowreq_ctx
- * rowreq_ctx,
- u_long *
- ipSystemStatsInOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 * ipSystemStatsHCInOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx *
-+ struct counter64 *ipSystemStatsHCInOctets_val_ptr);
-+ int ipSystemStatsInHdrErrors_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInHdrErrors_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInNoRoutes_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInAddrErrors_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInAddrErrors_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInUnknownProtos_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInUnknownProtos_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInTruncatedPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInTruncatedPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsReasmReqds_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsReasmReqds_val_ptr);
-@@ -492,690 +245,142 @@ config_require(ip-mib/ipSystemStatsTable
- * rowreq_ctx,
- u_long *
- ipSystemStatsReasmOKs_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsReasmFails_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsReasmFails_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInDiscards_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInDiscards_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInDelivers_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInDelivers_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInDelivers_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInDelivers_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutRequests_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutRequests_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutRequests_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutRequests_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutNoRoutes_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutNoRoutes_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutForwDatagrams_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutForwDatagrams_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutDiscards_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutDiscards_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragReqds_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragReqds_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragOKs_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragOKs_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragFails_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragFails_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutFragCreates_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutFragCreates_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutTransmits_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutTransmits_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutTransmits_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutMcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutMcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutMcastOctets_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutMcastOctets_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsInBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCInBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCInBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsOutBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsHCOutBcastPkts_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
-- U64 *
-+ struct counter64 *
- ipSystemStatsHCOutBcastPkts_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsDiscontinuityTime_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsDiscontinuityTime_val_ptr);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsRefreshRate_get(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long *
- ipSystemStatsRefreshRate_val_ptr);
--
--
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_indexes_set_tbl_idx(ipSystemStatsTable_mib_index
-+ int ipSystemStatsTable_indexes_set_tbl_idx(ipSystemStatsTable_mib_index
- * tbl_idx,
- u_long
- ipSystemStatsIPVersion_val);
-- int
--
--
--
--
--
--
--
--
--
--
--
--
--
--
--
-- ipSystemStatsTable_indexes_set(ipSystemStatsTable_rowreq_ctx *
-+ int ipSystemStatsTable_indexes_set(ipSystemStatsTable_rowreq_ctx *
- rowreq_ctx,
- u_long ipSystemStatsIPVersion_val);
-
--
--
- /*
- *********************************************************************
- * SET function declarations
-Index: net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
-+++ net-snmp-5.7.3/agent/mibgroup/ip-mib/ipSystemStatsTable/ipSystemStatsTable_interface.c
-@@ -674,10 +674,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInReceives(4)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINRECEIVES:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInReceives_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -694,10 +694,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInOctets(6)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -764,10 +764,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInForwDatagrams(13)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -824,10 +824,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInDelivers(19)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINDELIVERS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInDelivers_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -844,10 +844,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutRequests(21)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTREQUESTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutRequests_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -874,10 +874,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutForwDatagrams(24)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTFORWDATAGRAMS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutForwDatagrams_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -944,10 +944,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutTransmits(31)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTTRANSMITS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutTransmits_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -964,10 +964,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutOctets(33)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -984,10 +984,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInMcastPkts(35)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1004,10 +1004,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInMcastOctets(37)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1024,10 +1024,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutMcastPkts(39)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTMCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutMcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1044,10 +1044,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutMcastOctets(41)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTMCASTOCTETS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutMcastOctets_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1064,10 +1064,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCInBcastPkts(43)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCINBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCInBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-@@ -1084,10 +1084,10 @@ _ipSystemStatsTable_get_column(ipSystemS
- * ipSystemStatsHCOutBcastPkts(45)/COUNTER64/ASN_COUNTER64/U64(U64)//l/A/w/e/r/d/h
- */
- case COLUMN_IPSYSTEMSTATSHCOUTBCASTPKTS:
-- var->val_len = sizeof(U64);
-+ var->val_len = sizeof(struct counter64);
- var->type = ASN_COUNTER64;
- rc = ipSystemStatsHCOutBcastPkts_get(rowreq_ctx,
-- (U64 *) var->val.string);
-+ (struct counter64 *) var->val.string);
- break;
-
- /*
-Index: net-snmp-5.7.3/include/net-snmp/data_access/ipstats.h
-===================================================================
---- net-snmp-5.7.3.orig/include/net-snmp/data_access/ipstats.h
-+++ net-snmp-5.7.3/include/net-snmp/data_access/ipstats.h
-@@ -58,45 +58,45 @@ typedef struct netsnmp_ipstats_s {
- * other columns, when underlying OS does not provide them.
- * Always fill at least 32 bits, the table is periodically polled -> 32 bit
- * overflow shall be detected and 64 bit value should be computed automatically. */
-- U64 HCInReceives;
-- U64 HCInOctets;
-+ struct counter64 HCInReceives;
-+ struct counter64 HCInOctets;
- u_long InHdrErrors;
-- U64 HCInNoRoutes;
-+ struct counter64 HCInNoRoutes;
- u_long InAddrErrors;
- u_long InUnknownProtos;
- u_long InTruncatedPkts;
-
- /* optional, can be computed from HCInNoRoutes and HCOutForwDatagrams */
-- U64 HCInForwDatagrams;
-+ struct counter64 HCInForwDatagrams;
-
- u_long ReasmReqds;
- u_long ReasmOKs;
- u_long ReasmFails;
- u_long InDiscards;
-- U64 HCInDelivers;
-- U64 HCOutRequests;
-- U64 HCOutNoRoutes;
-- U64 HCOutForwDatagrams;
-- U64 HCOutDiscards;
-+ struct counter64 HCInDelivers;
-+ struct counter64 HCOutRequests;
-+ struct counter64 HCOutNoRoutes;
-+ struct counter64 HCOutForwDatagrams;
-+ struct counter64 HCOutDiscards;
-
- /* optional, can be computed from HCOutFragOKs + HCOutFragFails*/
-- U64 HCOutFragReqds;
-- U64 HCOutFragOKs;
-- U64 HCOutFragFails;
-- U64 HCOutFragCreates;
-+ struct counter64 HCOutFragReqds;
-+ struct counter64 HCOutFragOKs;
-+ struct counter64 HCOutFragFails;
-+ struct counter64 HCOutFragCreates;
-
- /* optional, can be computed from
- * HCOutRequests +HCOutForwDatagrams + HCOutFragCreates
- * - HCOutFragReqds - HCOutNoRoutes - HCOutDiscards */
-- U64 HCOutTransmits;
-+ struct counter64 HCOutTransmits;
-
-- U64 HCOutOctets;
-- U64 HCInMcastPkts;
-- U64 HCInMcastOctets;
-- U64 HCOutMcastPkts;
-- U64 HCOutMcastOctets;
-- U64 HCInBcastPkts;
-- U64 HCOutBcastPkts;
-+ struct counter64 HCOutOctets;
-+ struct counter64 HCInMcastPkts;
-+ struct counter64 HCInMcastOctets;
-+ struct counter64 HCOutMcastPkts;
-+ struct counter64 HCOutMcastOctets;
-+ struct counter64 HCInBcastPkts;
-+ struct counter64 HCOutBcastPkts;
-
- /* Array of available columns.*/
- int columnAvail[IPSYSTEMSTATSTABLE_LAST+1];
-Index: net-snmp-5.7.3/include/net-snmp/library/int64.h
-===================================================================
---- net-snmp-5.7.3.orig/include/net-snmp/library/int64.h
-+++ net-snmp-5.7.3/include/net-snmp/library/int64.h
-@@ -5,31 +5,29 @@
- extern "C" {
- #endif
-
-- typedef struct counter64 U64;
--
- #define I64CHARSZ 21
-
-- void divBy10(U64, U64 *, unsigned int *);
-- void multBy10(U64, U64 *);
-- void incrByU16(U64 *, unsigned int);
-- void incrByU32(U64 *, unsigned int);
-+ void divBy10(struct counter64, struct counter64 *, unsigned int *);
-+ void multBy10(struct counter64, struct counter64 *);
-+ void incrByU16(struct counter64 *, unsigned int);
-+ void incrByU32(struct counter64 *, unsigned int);
- NETSNMP_IMPORT
-- void zeroU64(U64 *);
-- int isZeroU64(const U64 *);
-+ void zeroU64(struct counter64 *);
-+ int isZeroU64(const struct counter64 *);
- NETSNMP_IMPORT
-- void printU64(char *, const U64 *);
-+ void printU64(char *, const struct counter64 *);
- NETSNMP_IMPORT
-- void printI64(char *, const U64 *);
-- int read64(U64 *, const char *);
-+ void printI64(char *, const struct counter64 *);
-+ int read64(struct counter64 *, const char *);
- NETSNMP_IMPORT
-- void u64Subtract(const U64 * pu64one, const U64 * pu64two,
-- U64 * pu64out);
-- void u64Incr(U64 * pu64out, const U64 * pu64one);
-- void u64UpdateCounter(U64 * pu64out, const U64 * pu64one,
-- const U64 * pu64two);
-- void u64Copy(U64 * pu64one, const U64 * pu64two);
-+ void u64Subtract(const struct counter64 *pu64one, const struct counter64 *pu64two,
-+ struct counter64 *pu64out);
-+ void u64Incr(struct counter64 *pu64out, const struct counter64 *pu64one);
-+ void u64UpdateCounter(struct counter64 *pu64out, const struct counter64 *pu64one,
-+ const struct counter64 *pu64two);
-+ void u64Copy(struct counter64 *pu64one, const struct counter64 *pu64two);
-
-- int netsnmp_c64_check_for_32bit_wrap(U64 *old_val, U64 *new_val,
-+ int netsnmp_c64_check_for_32bit_wrap(struct counter64 *old_val, struct counter64 *new_val,
- int adjust);
- NETSNMP_IMPORT
- int netsnmp_c64_check32_and_update(struct counter64 *prev_val,
-Index: net-snmp-5.7.3/snmplib/int64.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/int64.c
-+++ net-snmp-5.7.3/snmplib/int64.c
-@@ -33,7 +33,7 @@
- * @param[out] puR Remainder.
- */
- void
--divBy10(U64 u64, U64 * pu64Q, unsigned int *puR)
-+divBy10(struct counter64 u64, struct counter64 *pu64Q, unsigned int *puR)
- {
- unsigned long ulT;
- unsigned long ulQ;
-@@ -83,7 +83,7 @@ divBy10(U64 u64, U64 * pu64Q, unsigned i
- * @param[out] pu64P Product.
- */
- void
--multBy10(U64 u64, U64 * pu64P)
-+multBy10(struct counter64 u64, struct counter64 *pu64P)
- {
- unsigned long ulT;
- unsigned long ulP;
-@@ -130,7 +130,7 @@ multBy10(U64 u64, U64 * pu64P)
- *
- */
- void
--incrByU16(U64 * pu64, unsigned int u16)
-+incrByU16(struct counter64 *pu64, unsigned int u16)
- {
- incrByU32(pu64, u16);
- }
-@@ -143,7 +143,7 @@ incrByU16(U64 * pu64, unsigned int u16)
- *
- */
- void
--incrByU32(U64 * pu64, unsigned int u32)
-+incrByU32(struct counter64 *pu64, unsigned int u32)
- {
- uint32_t tmp;
-
-@@ -161,7 +161,7 @@ incrByU32(U64 * pu64, unsigned int u32)
- * @param[out] pu64out pu64one - pu64two.
- */
- void
--u64Subtract(const U64 * pu64one, const U64 * pu64two, U64 * pu64out)
-+u64Subtract(const struct counter64 *pu64one, const struct counter64 *pu64two, struct counter64 *pu64out)
- {
- int carry;
-
-@@ -177,7 +177,7 @@ u64Subtract(const U64 * pu64one, const U
- * @param[in,out] pu64out pu64out += pu64one.
- */
- void
--u64Incr(U64 * pu64out, const U64 * pu64one)
-+u64Incr(struct counter64 *pu64out, const struct counter64 *pu64one)
- {
- pu64out->high = (uint32_t)(pu64out->high + pu64one->high);
- incrByU32(pu64out, pu64one->low);
-@@ -191,9 +191,9 @@ u64Incr(U64 * pu64out, const U64 * pu64o
- * @param[out] pu64out pu64out += (pu64one - pu64two)
- */
- void
--u64UpdateCounter(U64 * pu64out, const U64 * pu64one, const U64 * pu64two)
-+u64UpdateCounter(struct counter64 *pu64out, const struct counter64 *pu64one, const struct counter64 *pu64two)
- {
-- U64 tmp;
-+ struct counter64 tmp;
-
- u64Subtract(pu64one, pu64two, &tmp);
- u64Incr(pu64out, &tmp);
-@@ -208,7 +208,7 @@ netsnmp_feature_child_of(u64copy, netsnm
- * @param[out] pu64one Where to store the copy - *pu64one = *pu64two.
- */
- void
--u64Copy(U64 * pu64one, const U64 * pu64two)
-+u64Copy(struct counter64 *pu64one, const struct counter64 *pu64two)
- {
- *pu64one = *pu64two;
- }
-@@ -220,7 +220,7 @@ u64Copy(U64 * pu64one, const U64 * pu64t
- * @param[in] pu64 Number to be zeroed.
- */
- void
--zeroU64(U64 * pu64)
-+zeroU64(struct counter64 *pu64)
- {
- pu64->low = 0;
- pu64->high = 0;
-@@ -232,7 +232,7 @@ zeroU64(U64 * pu64)
- * @param[in] pu64 Number to be checked.
- */
- int
--isZeroU64(const U64 * pu64)
-+isZeroU64(const struct counter64 *pu64)
- {
- return pu64->low == 0 && pu64->high == 0;
- }
-@@ -390,10 +390,10 @@ netsnmp_c64_check32_and_update(struct co
- /** Convert an unsigned 64-bit number to ASCII. */
- void
- printU64(char *buf, /* char [I64CHARSZ+1]; */
-- const U64 * pu64)
-+ const struct counter64 *pu64)
- {
-- U64 u64a;
-- U64 u64b;
-+ struct counter64 u64a;
-+ struct counter64 u64b;
-
- char aRes[I64CHARSZ + 1];
- unsigned int u;
-@@ -414,9 +414,9 @@ printU64(char *buf, /* char [I64CHARSZ+1
- /** Convert a signed 64-bit number to ASCII. */
- void
- printI64(char *buf, /* char [I64CHARSZ+1]; */
-- const U64 * pu64)
-+ const struct counter64 *pu64)
- {
-- U64 u64a;
-+ struct counter64 u64a;
-
- if (pu64->high & 0x80000000) {
- u64a.high = (uint32_t) ~pu64->high;
-@@ -429,11 +429,11 @@ printI64(char *buf, /* char [I64CHARSZ+1
- }
- }
-
--/** Convert a signed 64-bit integer from ASCII to U64. */
-+/** Convert a signed 64-bit integer from ASCII to struct counter64. */
- int
--read64(U64 * i64, const char *str)
-+read64(struct counter64 *i64, const char *str)
- {
-- U64 i64p;
-+ struct counter64 i64p;
- unsigned int u;
- int sign = 0;
- int ok = 0;
-Index: net-snmp-5.7.3/snmplib/read_config.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/read_config.c
-+++ net-snmp-5.7.3/snmplib/read_config.c
-@@ -2270,10 +2270,10 @@ read_config_read_memory(int type, char *
- return readfrom;
-
- case ASN_COUNTER64:
-- if (*len < sizeof(U64))
-+ if (*len < sizeof(struct counter64))
- return NULL;
-- *len = sizeof(U64);
-- read64((U64 *) dataptr, readfrom);
-+ *len = sizeof(struct counter64);
-+ read64((struct counter64 *) dataptr, readfrom);
- readfrom = skip_token(readfrom);
- return readfrom;
- }
-Index: net-snmp-5.7.3/testing/fulltests/unit-tests/T015int64_clib.c
-===================================================================
---- net-snmp-5.7.3.orig/testing/fulltests/unit-tests/T015int64_clib.c
-+++ net-snmp-5.7.3/testing/fulltests/unit-tests/T015int64_clib.c
-@@ -1,4 +1,4 @@
--/* HEADER Testing 64-bit integer operations (U64). */
-+/* HEADER Testing 64-bit integer operations (struct counter64). */
-
- int i, j;
- char buf[22];
-@@ -15,7 +15,7 @@ static const int64_t intval[] = {
- };
-
- for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
-- U64 a, b;
-+ struct counter64 a, b;
- a.low = (uint32_t)intval[i];
- a.high = (uint32_t)(intval[i] >> 32);
- printI64(buf, &a);
-@@ -27,7 +27,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in
-
- for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
- for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) {
-- U64 a, b;
-+ struct counter64 a, b;
- uint64_t d;
- a.low = (uint32_t)intval[i];
- a.high = (uint32_t)(intval[i] >> 32);
-@@ -43,7 +43,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in
-
- for (i = 0; i < sizeof(intval)/sizeof(intval[0]); ++i) {
- for (j = i; j < sizeof(intval)/sizeof(intval[0]); ++j) {
-- U64 a, b, c;
-+ struct counter64 a, b, c;
- uint64_t d;
- a.low = (uint32_t)intval[i];
- a.high = (uint32_t)(intval[i] >> 32);
-@@ -58,7 +58,7 @@ for (i = 0; i < sizeof(intval)/sizeof(in
- }
-
- {
-- U64 old_val, new_val;
-+ struct counter64 old_val, new_val;
- old_val.low = 7;
- old_val.high = 0;
- new_val = old_val;
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
new file mode 100644
index 0000000000..0eeddf752c
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-ac_add_search_path.m4-keep-consistent-between-32bit.patch
@@ -0,0 +1,38 @@
+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
index 44359bebee..5aea52788c 100644
--- 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
@@ -1,4 +1,4 @@
-From 261a22096c79f8e6ef7b387514a74d208e4e5945 Mon Sep 17 00:00:00 2001
+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
@@ -10,18 +10,19 @@ conftest.c:168:17: fatal error: pkg.h: No such file or directory
#include <pkg.h>
^
-Upstream-Status: pending
+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(-)
-Index: net-snmp-5.7.3/configure.d/config_os_headers
-===================================================================
---- net-snmp-5.7.3.orig/configure.d/config_os_headers
-+++ net-snmp-5.7.3/configure.d/config_os_headers
-@@ -484,8 +484,8 @@ then
+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"
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch
deleted file mode 100644
index 5866a95edb..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-config_os_libs2-Error-Fix.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From e24fcd140f3f6dd18fd836b197c6d4bb773e50e7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C3=ABl=20Carr=C3=A9?= <funman@videolan.org>
-Date: Wed, 4 Nov 2015 16:49:30 +0100
-Subject: [PATCH] config_os_libs2: Error Fix
-
-ERROR: This autoconf log indicates errors, it looked at host include
-and/or library paths while determining system capabilities.
----
- configure.d/config_os_libs2 | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.d/config_os_libs2 b/configure.d/config_os_libs2
-index 47491e2..e3647f9 100644
---- a/configure.d/config_os_libs2
-+++ b/configure.d/config_os_libs2
-@@ -226,10 +226,10 @@ if test "x$with_nl" != "xno"; then
- case $target_os in
- linux*) # Check for libnl (linux)
- netsnmp_save_CPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="-I/usr/include/libnl3 $CPPFLAGS"
-+ CPPFLAGS="$CPPFLAGS"
- NETSNMP_SEARCH_LIBS(nl_connect, nl-3,
- [AC_CHECK_HEADERS(netlink/netlink.h)
-- EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES -I/usr/include/libnl3"],
-+ EXTERNAL_MIBGROUP_INCLUDES="$EXTERNAL_MIBGROUP_INCLUDES"],
- [CPPFLAGS="$netsnmp_save_CPPFLAGS"], [], [], [LMIBLIBS])
- if test "x$ac_cv_header_netlink_netlink_h" != xyes; then
- NETSNMP_SEARCH_LIBS(nl_connect, nl, [
---
-2.5.0
-
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch
deleted file mode 100644
index b87e9eec26..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-configure-fix-check-for-enable-perl-cc-checks.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From c6304a3e4b8441ff0a6464c0f1f6c5229092fa32 Mon Sep 17 00:00:00 2001
-From: Niels Baggesen <nba@users.sourceforge.net>
-Date: Wed, 24 May 2017 16:40:03 +0800
-Subject: [PATCH 1/4] configure: fix check for --enable-perl-cc-checks
-
-This patch comes from git://git.code.sf.net/p/net-snmp/code,
-the commit is 8f431d410b803603dc809d82e0893509615d9a11.
-
-Upstream-Status: Backport
-
-Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
----
- configure.d/config_project_perl_python | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python
-index 23f8c7e..475c843 100644
---- a/configure.d/config_project_perl_python
-+++ b/configure.d/config_project_perl_python
-@@ -84,7 +84,7 @@ if test "x$install_perl" != "xno" ; then
-
- # What compiler was used to build the perl binary?
- #
-- if test "xenable_perl_cc_checks" != "xno" ; then
-+ if test "x$enable_perl_cc_checks" != "xno" ; then
- AC_MSG_CHECKING([for Perl cc])
- changequote(, )
- PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
---
-1.9.1
-
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
index 60ce80996d..a7881a8713 100644
--- 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
@@ -1,29 +1,27 @@
-From 7136d593ba96b64537069637c328bc65e1b66b2d Mon Sep 17 00:00:00 2001
+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
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
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 8e157ae..a494ec7 100644
+index 5788e1d..ea380a6 100644
--- a/agent/mibgroup/util_funcs/get_pid_from_inode.c
+++ b/agent/mibgroup/util_funcs/get_pid_from_inode.c
-@@ -5,6 +5,7 @@
+@@ -6,6 +6,7 @@
#include <net-snmp/output_api.h>
#include <ctype.h>
+#include <limits.h>
#include <stdio.h>
- #if HAVE_STDLIB_H
+ #ifdef HAVE_STDLIB_H
#include <stdlib.h>
---
-1.8.3.1
-
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch
deleted file mode 100644
index 527aa39f2a..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 1ee72102fbe722d232d74abc4660a8b134cec8d6 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Sat, 23 May 2015 07:32:53 +0200
-Subject: [PATCH] snmplib, UDPIPv6 transport: Add a missing return statement
-
-Detected by Coverity.
-
-Upstream-Status: backport
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- snmplib/transports/snmpUDPIPv6Domain.c | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/transports/snmpUDPIPv6Domain.c
-+++ net-snmp-5.7.3/snmplib/transports/snmpUDPIPv6Domain.c
-@@ -305,6 +305,7 @@ netsnmp_udp6_transport(struct sockaddr_i
- errno, strerror(errno)));
- netsnmp_socketbase_close(t);
- netsnmp_transport_free(t);
-+ return NULL;
- }
- }
- /*
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
index af242fafb2..6450c1cc92 100644
--- 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
@@ -1,7 +1,8 @@
-From d3027a227bc0f603a5b650d01f97ee1dec515be5 Mon Sep 17 00:00:00 2001
+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
@@ -9,25 +10,27 @@ 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>
+
---
-Upstream-Status: Submitted [https://sourceforge.net/p/net-snmp/patches/1317/]
- snmplib/keytools.c | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
+Upstream-Status: Pending
+
+ snmplib/keytools.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/snmplib/keytools.c b/snmplib/keytools.c
-index 0ccb3a6..880fc14 100644
+index 14a452a..fb1694b 100644
--- a/snmplib/keytools.c
+++ b/snmplib/keytools.c
-@@ -153,8 +153,7 @@ generate_Ku(const oid * hashtype, u_int hashtype_len,
+@@ -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))
-- return SNMPERR_GENERR;
+- if (!EVP_MD_CTX_init(ctx)) {
+- rval = SNMPERR_GENERR;
+- goto generate_Ku_quit;
+- }
+ EVP_MD_CTX_init(ctx);
#endif
- #ifndef NETSNMP_DISABLE_MD5
- if (ISTRANSFORM(hashtype, HMACMD5Auth)) {
---
-2.5.2
-
+ if (!EVP_DigestInit(ctx, hashfn)) {
+ rval = SNMPERR_GENERR;
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
deleted file mode 100644
index 999976d279..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0002-configure-fix-a-cc-check-issue.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 94e7e4969bc84c945dfea12d67a1e10f61973948 Mon Sep 17 00:00:00 2001
-From: Wenlin Kang <wenlin.kang@windriver.com>
-Date: Wed, 24 May 2017 16:45:34 +0800
-Subject: [PATCH 2/4] configure: fix a cc check issue.
-
-When has "." in cc value, the expression
-$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'
-can't get corretly the cc's value.
-
-Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
----
- configure.d/config_project_perl_python | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.d/config_project_perl_python b/configure.d/config_project_perl_python
-index 475c843..22d2ad3 100644
---- a/configure.d/config_project_perl_python
-+++ b/configure.d/config_project_perl_python
-@@ -87,7 +87,7 @@ if test "x$install_perl" != "xno" ; then
- if test "x$enable_perl_cc_checks" != "xno" ; then
- AC_MSG_CHECKING([for Perl cc])
- changequote(, )
-- PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\w\s\/]+).;\s*/$1/);'`
-+ PERLCC=`$myperl -V:cc | $myperl -n -e 'print if (s/^\s*cc=.([-=\.\w\s\/]+).;\s*/$1/);'`
- changequote([, ])
- if test "x$PERLCC" != "x" ; then
- AC_MSG_RESULT([$PERLCC])
---
-1.9.1
-
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch
deleted file mode 100644
index 7951234a4e..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From e57fc809ad6ae522670f3dc157aadde20d968ca7 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche@acm.org>
-Date: Wed, 24 May 2017 17:05:03 +0800
-Subject: [PATCH 3/4] CHANGES: BUG: 2712: Fix Perl module compilation
-
-Avoid that building the Net-SNMP Perl modules fails as follows:
-
-ERROR from evaluation of /sources/net-snmp-5.7.3/perl/ASN/Makefile.PL: Bizarre \ copy of HASH in list assignment at /usr/lib/perl5/site_perl/5.24.0/Carp.pm line\ 229.
-
-See also https://sourceforge.net/p/net-snmp/bugs/2712/.
-
-This patch comes from git://git.code.sf.net/p/net-snmp/code,
-the commit is 4e793461e96a2b4fd81142ab312d074d5c8841fa.
-
-Signed-off-by: Wenlin Kang <wenlin.kang@windriver.com>
----
- perl/ASN/Makefile.PL | 4 +---
- perl/Makefile.PL | 4 +---
- perl/OID/Makefile.PL | 5 +----
- perl/SNMP/Makefile.PL | 5 +----
- perl/TrapReceiver/Makefile.PL | 5 +----
- perl/agent/Makefile.PL | 5 +----
- perl/agent/Support/Makefile.PL | 5 +----
- perl/agent/default_store/Makefile.PL | 5 +----
- perl/default_store/Makefile.PL | 5 +----
- 9 files changed, 9 insertions(+), 34 deletions(-)
-
-diff --git a/perl/ASN/Makefile.PL b/perl/ASN/Makefile.PL
-index 4576781..c33d8ba 100644
---- a/perl/ASN/Makefile.PL
-+++ b/perl/ASN/Makefile.PL
-@@ -7,9 +7,7 @@ my $lib_version;
- # See lib/ExtUtils/MakeMaker.pm for details of how to influence
- # the contents of the Makefile that is written.
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/Makefile.PL b/perl/Makefile.PL
-index 31fdc40..48aba2a 100644
---- a/perl/Makefile.PL
-+++ b/perl/Makefile.PL
-@@ -3,9 +3,7 @@ use Config;
- use Getopt::Long;
- require 5;
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- sub InitMakeParams {
- $nsconfig="net-snmp-config"; # in path by default
-diff --git a/perl/OID/Makefile.PL b/perl/OID/Makefile.PL
-index 6bb1616..2589985 100644
---- a/perl/OID/Makefile.PL
-+++ b/perl/OID/Makefile.PL
-@@ -6,11 +6,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/SNMP/Makefile.PL b/perl/SNMP/Makefile.PL
-index e617cb7..8aab9a9 100644
---- a/perl/SNMP/Makefile.PL
-+++ b/perl/SNMP/Makefile.PL
-@@ -3,15 +3,12 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
- my $opts;
-
- # See lib/ExtUtils/MakeMaker.pm for details of how to influence
- # the contents of the Makefile that is written.
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/TrapReceiver/Makefile.PL b/perl/TrapReceiver/Makefile.PL
-index 874ee21..7e9e58e 100644
---- a/perl/TrapReceiver/Makefile.PL
-+++ b/perl/TrapReceiver/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/agent/Makefile.PL b/perl/agent/Makefile.PL
-index 4f7bee3..003c0d1 100644
---- a/perl/agent/Makefile.PL
-+++ b/perl/agent/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/agent/Support/Makefile.PL b/perl/agent/Support/Makefile.PL
-index 48815b6..2325e10 100644
---- a/perl/agent/Support/Makefile.PL
-+++ b/perl/agent/Support/Makefile.PL
-@@ -3,14 +3,11 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
- # See lib/ExtUtils/MakeMaker.pm for details of how to influence
- # the contents of the Makefile that is written.
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/agent/default_store/Makefile.PL b/perl/agent/default_store/Makefile.PL
-index ed6483a..31cfbee 100644
---- a/perl/agent/default_store/Makefile.PL
-+++ b/perl/agent/default_store/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
- Check_Version();
-
-diff --git a/perl/default_store/Makefile.PL b/perl/default_store/Makefile.PL
-index 7c671b8..01c8dd0 100644
---- a/perl/default_store/Makefile.PL
-+++ b/perl/default_store/Makefile.PL
-@@ -3,11 +3,8 @@ require 5;
- use Config;
- use Getopt::Long;
- my $lib_version;
--my %MakeParams = ();
-
--%MakeParams = InitMakeParams();
--
--WriteMakefile(%MakeParams);
-+WriteMakefile(InitMakeParams());
-
-
- sub InitMakeParams {
---
-1.9.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
index 2b03f9e9a2..6e224188a4 100644
--- 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
@@ -1,22 +1,23 @@
-From 4ad98ef125eb4e7d7a1a93146042002f78254d36 Mon Sep 17 00:00:00 2001
+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 4/4] configure: fix incorrect variable
+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 cfcdf73..164df05 100644
+index f1cbbf5..1545be3 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -171,7 +171,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
+@@ -173,7 +173,7 @@ OTHERCLEANTODOS=perlclean @PYTHONCLEANTARGS@ cleanfeatures perlcleanfeatures pyt
#
# override LD_RUN_PATH to avoid dependencies on the build directory
perlmodules: perlmakefiles subdirs
@@ -25,6 +26,3 @@ index cfcdf73..164df05 100644
if test $$? != 0 ; then \
exit 1 ; \
fi
---
-1.9.1
-
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/CVE-2022-44792-CVE-2022-44793.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/CVE-2022-44792-CVE-2022-44793.patch
new file mode 100644
index 0000000000..b18d4dc292
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/CVE-2022-44792-CVE-2022-44793.patch
@@ -0,0 +1,121 @@
+From d13302656d9ff0807c5defe18623adc947f43a2b Mon Sep 17 00:00:00 2001
+From: Narpat Mali <narpat.mali@windriver.com>
+Date: Wed, 8 Feb 2023 13:15:39 +0000
+Subject: [PATCH] agent: Disallow SET requests with any NULL varbind Merge pull
+ request #490 from fenner/set-null
+
+fixes: #474 and #475
+
+CVE: CVE-2022-44792, CVE-2022-44793
+
+Upstream-Status: Backport [https://github.com/net-snmp/net-snmp/commit/be804106fd0771a7d05236cff36e199af077af57]
+
+Signed-off-by: Narpat Mali <narpat.mali@windriver.com>
+---
+ agent/snmp_agent.c | 32 +++++++++++++++++++
+ apps/snmpset.c | 1 +
+ .../default/T0142snmpv2csetnull_simple | 31 ++++++++++++++++++
+ 3 files changed, 64 insertions(+)
+ create mode 100644 testing/fulltests/default/T0142snmpv2csetnull_simple
+
+diff --git a/agent/snmp_agent.c b/agent/snmp_agent.c
+index 867d0c1..3f678fe 100644
+--- a/agent/snmp_agent.c
++++ b/agent/snmp_agent.c
+@@ -3719,12 +3719,44 @@ netsnmp_handle_request(netsnmp_agent_session *asp, int status)
+ return 1;
+ }
+
++static int
++check_set_pdu_for_null_varbind(netsnmp_agent_session *asp)
++{
++ int i;
++ netsnmp_variable_list *v = NULL;
++
++ for (i = 1, v = asp->pdu->variables; v != NULL; i++, v = v->next_variable) {
++ if (v->type == ASN_NULL) {
++ /*
++ * Protect SET implementations that do not protect themselves
++ * against wrong type.
++ */
++ DEBUGMSGTL(("snmp_agent", "disallowing SET with NULL var for varbind %d\n", i));
++ asp->index = i;
++ return SNMP_ERR_WRONGTYPE;
++ }
++ }
++ return SNMP_ERR_NOERROR;
++}
++
+ int
+ handle_pdu(netsnmp_agent_session *asp)
+ {
+ int status, inclusives = 0;
+ netsnmp_variable_list *v = NULL;
+
++#ifndef NETSNMP_NO_WRITE_SUPPORT
++ /*
++ * Check for ASN_NULL in SET request
++ */
++ if (asp->pdu->command == SNMP_MSG_SET) {
++ status = check_set_pdu_for_null_varbind(asp);
++ if (status != SNMP_ERR_NOERROR) {
++ return status;
++ }
++ }
++#endif /* NETSNMP_NO_WRITE_SUPPORT */
++
+ /*
+ * for illegal requests, mark all nodes as ASN_NULL
+ */
+diff --git a/apps/snmpset.c b/apps/snmpset.c
+index 48e14bd..d542713 100644
+--- a/apps/snmpset.c
++++ b/apps/snmpset.c
+@@ -182,6 +182,7 @@ main(int argc, char *argv[])
+ case 'x':
+ case 'd':
+ case 'b':
++ case 'n': /* undocumented */
+ #ifdef NETSNMP_WITH_OPAQUE_SPECIAL_TYPES
+ case 'I':
+ case 'U':
+diff --git a/testing/fulltests/default/T0142snmpv2csetnull_simple b/testing/fulltests/default/T0142snmpv2csetnull_simple
+new file mode 100644
+index 0000000..0f1b8f3
+--- /dev/null
++++ b/testing/fulltests/default/T0142snmpv2csetnull_simple
+@@ -0,0 +1,31 @@
++#!/bin/sh
++
++. ../support/simple_eval_tools.sh
++
++HEADER SNMPv2c set of system.sysContact.0 with NULL varbind
++
++SKIPIF NETSNMP_DISABLE_SET_SUPPORT
++SKIPIF NETSNMP_NO_WRITE_SUPPORT
++SKIPIF NETSNMP_DISABLE_SNMPV2C
++SKIPIFNOT USING_MIBII_SYSTEM_MIB_MODULE
++
++#
++# Begin test
++#
++
++# standard V2C configuration: testcomunnity
++snmp_write_access='all'
++. ./Sv2cconfig
++STARTAGENT
++
++CAPTURE "snmpget -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0"
++
++CHECK ".1.3.6.1.2.1.1.4.0 = STRING:"
++
++CAPTURE "snmpset -On $SNMP_FLAGS -c testcommunity -v 2c $SNMP_TRANSPORT_SPEC:$SNMP_TEST_DEST$SNMP_SNMPD_PORT .1.3.6.1.2.1.1.4.0 n x"
++
++CHECK "Reason: wrongType"
++
++STOPAGENT
++
++FINISHED
+--
+2.34.1
+
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch
deleted file mode 100644
index 6bd0f93c4b..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/dont-return-incompletely-parsed-varbinds.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 6b93e686bdb6a908d00595608646a05527a5326b Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 21 Aug 2015 12:39:12 +0900
-Subject: [PATCH] the snmp_pdu_parse() function could leave incompletely parsed
- varBind variables in the list of variables in case the parsing of the SNMP
- PDU failed. If later processing tries to operate on the stale and
- incompletely processed varBind (e.g. when printing the variables), this can
- lead to e.g. crashes or, possibly, execution of arbitrary code
-
-Upstream-Status: Backport [net-snmp]
-
-Written-by: Robert Story
----
- snmplib/snmp_api.c | 53 ++++++++++++++++++++++++++++-------------------------
- 1 file changed, 28 insertions(+), 25 deletions(-)
-
-diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c
-index 191debf..15a2d39 100644
---- a/snmplib/snmp_api.c
-+++ b/snmplib/snmp_api.c
-@@ -4350,10 +4350,9 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- u_char type;
- u_char msg_type;
- u_char *var_val;
-- int badtype = 0;
- size_t len;
- size_t four;
-- netsnmp_variable_list *vp = NULL;
-+ netsnmp_variable_list *vp = NULL, *vplast = NULL;
- oid objid[MAX_OID_LEN];
- u_char *p;
-
-@@ -4493,31 +4492,17 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- (ASN_SEQUENCE | ASN_CONSTRUCTOR),
- "varbinds");
- if (data == NULL)
-- return -1;
-+ goto fail;
-
- /*
- * get each varBind sequence
- */
- while ((int) *length > 0) {
-- netsnmp_variable_list *vptemp;
-- vptemp = (netsnmp_variable_list *) malloc(sizeof(*vptemp));
-- if (NULL == vptemp) {
-- return -1;
-- }
-- if (NULL == vp) {
-- pdu->variables = vptemp;
-- } else {
-- vp->next_variable = vptemp;
-- }
-- vp = vptemp;
-+ vp = SNMP_MALLOC_TYPEDEF(netsnmp_variable_list);
-+ if (NULL == vp)
-+ goto fail;
-
-- vp->next_variable = NULL;
-- vp->val.string = NULL;
- vp->name_length = MAX_OID_LEN;
-- vp->name = NULL;
-- vp->index = 0;
-- vp->data = NULL;
-- vp->dataFreeHook = NULL;
- DEBUGDUMPSECTION("recv", "VarBind");
- data = snmp_parse_var_op(data, objid, &vp->name_length, &vp->type,
- &vp->val_len, &var_val, length);
-@@ -4604,7 +4589,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- vp->val.string = (u_char *) malloc(vp->val_len);
- }
- if (vp->val.string == NULL) {
-- return -1;
-+ goto fail;
- }
- p = asn_parse_string(var_val, &len, &vp->type, vp->val.string,
- &vp->val_len);
-@@ -4619,7 +4604,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- vp->val_len *= sizeof(oid);
- vp->val.objid = (oid *) malloc(vp->val_len);
- if (vp->val.objid == NULL) {
-- return -1;
-+ goto fail;
- }
- memmove(vp->val.objid, objid, vp->val_len);
- break;
-@@ -4631,7 +4616,7 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- case ASN_BIT_STR:
- vp->val.bitstring = (u_char *) malloc(vp->val_len);
- if (vp->val.bitstring == NULL) {
-- return -1;
-+ goto fail;
- }
- p = asn_parse_bitstring(var_val, &len, &vp->type,
- vp->val.bitstring, &vp->val_len);
-@@ -4640,12 +4625,30 @@ snmp_pdu_parse(netsnmp_pdu *pdu, u_char * data, size_t * length)
- break;
- default:
- snmp_log(LOG_ERR, "bad type returned (%x)\n", vp->type);
-- badtype = -1;
-+ goto fail;
- break;
- }
- DEBUGINDENTADD(-4);
-+
-+ if (NULL == vplast) {
-+ pdu->variables = vp;
-+ } else {
-+ vplast->next_variable = vp;
-+ }
-+ vplast = vp;
-+ vp = NULL;
-+
- }
-- return badtype;
-+ return 0;
-+
-+ fail:
-+ DEBUGMSGTL(("recv", "error while parsing VarBindList\n"));
-+ /** if we were parsing a var, remove it from the pdu and free it */
-+ if (vp)
-+ snmp_free_var(vp);
-+
-+ return -1;
-+
- }
-
- /*
---
-1.8.4.2
-
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
index d29be3395e..409c1e03c8 100644
--- 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
@@ -1,3 +1,8 @@
+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.
@@ -9,13 +14,17 @@ 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>
+
---
-Index: net-snmp-5.7.3/Makefile.top
-===================================================================
---- net-snmp-5.7.3.orig/Makefile.top
-+++ net-snmp-5.7.3/Makefile.top
-@@ -87,7 +87,7 @@ LIBREVISION = 3
- LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) -o
+ 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)
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-openssl-build-errors.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-openssl-build-errors.patch
deleted file mode 100644
index 53bc372267..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/fix-openssl-build-errors.patch
+++ /dev/null
@@ -1,171 +0,0 @@
-net-snmp build fails on Debian 9 with OpenSSL 1.1.0
-
-With these changes, net-snmp builds with both
-OpenSSL 1.0.x and 1.1.x.
-
-Author: Sharmila Podury <sharmila.podury@brocade.com>
-
---- a/apps/snmpusm.c
-+++ b/apps/snmpusm.c
-@@ -125,6 +125,32 @@ char *usmUserPublic_val = NULL
- int docreateandwait = 0;
-
-
-+#if OPENSSL_VERSION_NUMBER < 0x10100000L
-+
-+#include <string.h>
-+#include <openssl/engine.h>
-+
-+void DH_get0_pqg(const DH *dh,
-+ const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
-+{
-+ if (p != NULL)
-+ *p = dh->p;
-+ if (q != NULL)
-+ *q = dh->q;
-+ if (g != NULL)
-+ *g = dh->g;
-+}
-+
-+void DH_get0_key(const DH *dh, const BIGNUM **pub_key, const BIGNUM **priv_key)
-+{
-+ if (pub_key != NULL)
-+ *pub_key = dh->pub_key;
-+ if (priv_key != NULL)
-+ *priv_key = dh->priv_key;
-+}
-+
-+#endif
-+
- void
- usage(void)
- {
-@@ -190,7 +216,7 @@ get_USM_DH_key(netsnmp_variable_list *va
- oid *keyoid, size_t keyoid_len) {
- u_char *dhkeychange;
- DH *dh;
-- BIGNUM *other_pub;
-+ BIGNUM *p, *g, *pub_key, *other_pub;
- u_char *key;
- size_t key_len;
-
-@@ -205,25 +231,29 @@ get_USM_DH_key(netsnmp_variable_list *va
- dh = d2i_DHparams(NULL, &cp, dhvar->val_len);
- }
-
-- if (!dh || !dh->g || !dh->p) {
-+ if (dh)
-+ DH_get0_pqg(dh, &p, NULL, &g);
-+
-+ if (!dh || !g || !p) {
- SNMP_FREE(dhkeychange);
- return SNMPERR_GENERR;
- }
-
-- DH_generate_key(dh);
-- if (!dh->pub_key) {
-+ if (!DH_generate_key(dh)) {
- SNMP_FREE(dhkeychange);
- return SNMPERR_GENERR;
- }
-
-- if (vars->val_len != (unsigned int)BN_num_bytes(dh->pub_key)) {
-+ DH_get0_key(dh, &pub_key, NULL);
-+
-+ if (vars->val_len != (unsigned int)BN_num_bytes(pub_key)) {
- SNMP_FREE(dhkeychange);
- fprintf(stderr,"incorrect diffie-helman lengths (%lu != %d)\n",
-- (unsigned long)vars->val_len, BN_num_bytes(dh->pub_key));
-+ (unsigned long)vars->val_len, BN_num_bytes(pub_key));
- return SNMPERR_GENERR;
- }
-
-- BN_bn2bin(dh->pub_key, dhkeychange + vars->val_len);
-+ BN_bn2bin(pub_key, dhkeychange + vars->val_len);
-
- key_len = DH_size(dh);
- if (!key_len) {
---- a/configure.d/config_os_libs2
-+++ b/configure.d/config_os_libs2
-@@ -327,10 +327,16 @@ if test "x$tryopenssl" != "xno" -a "x$tr
- [[#include <openssl/evp.h>]])
-
- AC_CHECK_LIB(${CRYPTO}, EVP_MD_CTX_create,
-- AC_DEFINE([HAVE_EVP_MD_CTX_CREATE], [],
-+ AC_DEFINE([HAVE_EVP_MD_CTX_CREATE], [1],
- [Define to 1 if you have the `EVP_MD_CTX_create' function.])
-- AC_DEFINE([HAVE_EVP_MD_CTX_DESTROY], [],
-+ AC_DEFINE([HAVE_EVP_MD_CTX_DESTROY], [1],
- [Define to 1 if you have the `EVP_MD_CTX_destroy' function.]))
-+
-+ AC_CHECK_LIB(${CRYPTO}, EVP_MD_CTX_new,
-+ AC_DEFINE([HAVE_EVP_MD_CTX_NEW], [1],
-+ [Define to 1 if you have the `EVP_MD_CTX_new' function.])
-+ AC_DEFINE([HAVE_EVP_MD_CTX_FREE], [1],
-+ [Define to 1 if you have the `EVP_MD_CTX_free' function.]))
- fi
- if echo " $transport_result_list " | $GREP "DTLS" > /dev/null; then
- AC_CHECK_LIB(ssl, DTLSv1_method,
---- a/include/net-snmp/net-snmp-config.h.in
-+++ b/include/net-snmp/net-snmp-config.h.in
-@@ -164,6 +164,12 @@
- /* Define to 1 if you have the `EVP_MD_CTX_destroy' function. */
- #undef HAVE_EVP_MD_CTX_DESTROY
-
-+/* Define to 1 if you have the `EVP_MD_CTX_free' function. */
-+#undef HAVE_EVP_MD_CTX_FREE
-+
-+/* Define to 1 if you have the `EVP_MD_CTX_new' function. */
-+#undef HAVE_EVP_MD_CTX_NEW
-+
- /* Define if you have EVP_sha224/256 in openssl */
- #undef HAVE_EVP_SHA224
-
---- a/snmplib/keytools.c
-+++ b/snmplib/keytools.c
-@@ -176,7 +176,9 @@ generate_Ku(const oid * hashtype, u_int
- QUITFUN(SNMPERR_GENERR, generate_Ku_quit);
- }
-
--#ifdef HAVE_EVP_MD_CTX_CREATE
-+#ifdef HAVE_EVP_MD_CTX_NEW
-+ ctx = EVP_MD_CTX_new();
-+#elif HAVE_EVP_MD_CTX_CREATE
- ctx = EVP_MD_CTX_create();
- #else
- ctx = malloc(sizeof(*ctx));
-@@ -278,7 +280,9 @@ generate_Ku(const oid * hashtype, u_int
- memset(buf, 0, sizeof(buf));
- #ifdef NETSNMP_USE_OPENSSL
- if (ctx) {
--#ifdef HAVE_EVP_MD_CTX_DESTROY
-+#ifdef HAVE_EVP_MD_CTX_FREE
-+ EVP_MD_CTX_free(ctx);
-+#elif HAVE_EVP_MD_CTX_DESTROY
- EVP_MD_CTX_destroy(ctx);
- #else
- EVP_MD_CTX_cleanup(ctx);
---- a/snmplib/scapi.c
-+++ b/snmplib/scapi.c
-@@ -627,7 +627,9 @@ sc_hash(const oid * hashtype, size_t has
- return SNMPERR_GENERR;
-
- /** initialize the pointer */
--#ifdef HAVE_EVP_MD_CTX_CREATE
-+#ifdef HAVE_EVP_MD_CTX_NEW
-+ cptr = EVP_MD_CTX_new();
-+#elif HAVE_EVP_MD_CTX_CREATE
- cptr = EVP_MD_CTX_create();
- #else
- cptr = malloc(sizeof(*cptr));
-@@ -648,7 +650,9 @@ sc_hash(const oid * hashtype, size_t has
- /** do the final pass */
- EVP_DigestFinal(cptr, MAC, &tmp_len);
- *MAC_len = tmp_len;
--#ifdef HAVE_EVP_MD_CTX_DESTROY
-+#ifdef HAVE_EVP_MD_CTX_FREE
-+ EVP_MD_CTX_free(cptr);
-+#elif HAVE_EVP_MD_CTX_DESTROY
- EVP_MD_CTX_destroy(cptr);
- #else
- #if !defined(OLD_DES)
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
index fbd274bba4..35e93d636e 100644
--- 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
@@ -1,34 +1,36 @@
-From e47c60dc7f649959f63e56bc62355de4bdfd73f4 Mon Sep 17 00:00:00 2001
-From: Marian Florea <marian.florea@windriver.com>
-Date: Thu, 20 Jul 2017 16:55:24 +0800
+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(-)
-Index: net-snmp-5.7.3/agent/snmpd.c
-===================================================================
---- net-snmp-5.7.3.orig/agent/snmpd.c
-+++ net-snmp-5.7.3/agent/snmpd.c
-@@ -1253,6 +1253,7 @@ receive(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);
- #if HAVE_SIGHOLD
- sigrelse(SIGHUP);
-Index: net-snmp-5.7.3/snmplib/snmpv3.c
-===================================================================
---- net-snmp-5.7.3.orig/snmplib/snmpv3.c
-+++ net-snmp-5.7.3/snmplib/snmpv3.c
-@@ -984,9 +984,9 @@ init_snmpv3_post_config(int majorid, int
+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
*/
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
index 74b0c12e05..3152ce288a 100644
--- 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
@@ -1,35 +1,36 @@
-net-snmp: add knob whether nlist.h are checked
+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
+Upstream-Status: Pending
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+
---
- configure.d/config_os_headers | 2 ++
+ 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 d903f58..a05d30e 100644
+index b9c8c31..01c3376 100644
--- a/configure.d/config_os_headers
+++ b/configure.d/config_os_headers
-@@ -31,6 +31,7 @@ AC_CHECK_HEADERS([getopt.h pthread.h regex.h ] dnl
- [sys/un.h ])
+@@ -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
[
-@@ -38,6 +39,7 @@ AC_INCLUDES_DEFAULT
+@@ -44,6 +45,7 @@ AC_INCLUDES_DEFAULT
#define LIBBSD_DISABLE_DEPRECATED 1
#endif
]])
+fi
# Library:
- AC_CHECK_HEADERS([fcntl.h io.h kstat.h ] dnl
---
-1.7.9.5
-
+ AC_CHECK_HEADERS([crt_externs.h ] dnl
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch
deleted file mode 100644
index 5eed893e18..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/net-snmp-agentx-crash.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-Description: fix snmpd crash via AgentX connection
-
- taken from Fedora, net-snmp-5.7-agentx-crash.patch
-
-bz729738 - net-snmp dumps core in netsnmp_oid_find_prefix
-bz1038011 - net-snmp: snmpd crashes/hangs when AgentX subagent times-out
-
-commit f9304c83f76202db0e684269ca1af32e43cd9db4
-Author: Jan Safranek <jsafranek@users.sourceforge.net>
-Date: Tue Feb 7 14:53:44 2012 +0100
-
- CHANGES: PATCH 1633670: fixed snmpd crashing when an AgentX subagent
- disconnect in the middle of processing of a request.
-
- I fixed also the memory leak reported in the tracker comments.
-
-Upstream-Status: Backport
-
-Signed-off-by: Zhu Yanjun <yanjun.zhu@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-
----
- agent/mibgroup/agentx/master.c | 5 +++++
- agent/mibgroup/agentx/master_admin.c | 9 +++++++--
- 2 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/agent/mibgroup/agentx/master.c b/agent/mibgroup/agentx/master.c
-index c42a42a..baeebaf 100644
---- a/agent/mibgroup/agentx/master.c
-+++ b/agent/mibgroup/agentx/master.c
-@@ -219,6 +219,9 @@ agentx_got_response(int operation,
- if (!cache) {
- DEBUGMSGTL(("agentx/master", "response too late on session %8p\n",
- session));
-+ /* response is too late, free the cache */
-+ if (magic)
-+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) magic);
- return 0;
- }
- requests = cache->requests;
-@@ -606,6 +609,8 @@ agentx_master_handler(netsnmp_mib_handler *handler,
- result = snmp_async_send(ax_session, pdu, agentx_got_response, cb_data);
- if (result == 0) {
- snmp_free_pdu(pdu);
-+ if (cb_data)
-+ netsnmp_free_delegated_cache((netsnmp_delegated_cache*) cb_data);
- }
-
- return SNMP_ERR_NOERROR;
-diff --git a/agent/mibgroup/agentx/master_admin.c b/agent/mibgroup/agentx/master_admin.c
-index f16f392..b84b85e 100644
---- a/agent/mibgroup/agentx/master_admin.c
-+++ b/agent/mibgroup/agentx/master_admin.c
-@@ -133,11 +133,16 @@ close_agentx_session(netsnmp_session * session, int sessid)
- * requests, so that the delegated request will be completed and
- * further requests can be processed
- */
-- netsnmp_remove_delegated_requests_for_session(session);
-+ while (netsnmp_remove_delegated_requests_for_session(session)) {
-+ DEBUGMSGTL(("agentx/master", "Continue removing delegated reqests\n"));
-+ }
-+
- if (session->subsession != NULL) {
- netsnmp_session *subsession = session->subsession;
- for(; subsession; subsession = subsession->next) {
-- netsnmp_remove_delegated_requests_for_session(subsession);
-+ while (netsnmp_remove_delegated_requests_for_session(subsession)) {
-+ DEBUGMSGTL(("agentx/master", "Continue removing delegated subsession reqests\n"));
-+ }
- }
- }
-
---
-2.7.4
-
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
index 25eb9c96ff..c382c02d89 100644
--- 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
@@ -1,4 +1,4 @@
-From 270e952f58a7e5ddeabe5a15e3ddaaadf40017d0 Mon Sep 17 00:00:00 2001
+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
@@ -9,15 +9,16 @@ 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 16ac829..271684b 100644
+index 54fdd5c..0f7e931 100644
--- a/snmplib/scapi.c
+++ b/snmplib/scapi.c
-@@ -79,7 +79,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support)
+@@ -85,7 +85,9 @@ netsnmp_feature_child_of(usm_scapi, usm_support);
#include <openssl/hmac.h>
#include <openssl/evp.h>
#include <openssl/rand.h>
@@ -27,6 +28,3 @@ index 16ac829..271684b 100644
#ifdef HAVE_AES
#include <openssl/aes.h>
#endif
---
-2.11.0
-
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
index 8f8336a497..09ca532a7f 100644
--- 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
@@ -1,4 +1,4 @@
-From 4bb4024b395f19d36ab3569e2773ea80d8cc5261 Mon Sep 17 00:00:00 2001
+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
@@ -6,15 +6,16 @@ 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 files changed, 4 insertions(+), 0 deletions(-)
+ testing/RUNTESTS | 4 ++++
+ 1 file changed, 4 insertions(+)
-Index: net-snmp-5.7.3/testing/RUNTESTS
-===================================================================
---- net-snmp-5.7.3.orig/testing/RUNTESTS
-+++ net-snmp-5.7.3/testing/RUNTESTS
-@@ -29,13 +29,17 @@ failed_count=0
+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"
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
new file mode 100644
index 0000000000..5fbb411a5f
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/reproducibility-have-printcap.patch
@@ -0,0 +1,32 @@
+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.
+
+---
+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 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 2334217bc0..76514c202e 100755
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp/run-ptest
@@ -1,4 +1,5 @@
#!/bin/sh
-cd testing
+workdir=$(dirname `realpath $0`)
+cd ${workdir}/testing
./RUNTESTS
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch b/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch
deleted file mode 100644
index c6af8c0f33..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp/systemd-support.patch
+++ /dev/null
@@ -1,1652 +0,0 @@
-From 0cad0c6c36af2a2d589563804c9ed2b37b7085fb Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Fri, 21 Aug 2015 14:37:02 +0900
-Subject: [PATCH] ystemd support backported from the master branch as of
- 23/04/2012 (post 5.7.1, pre 5.8).
-
-The following commits have been cherry-picked:
-
-19499c3c90bf9d7b2b9e5d08baa26cc6bba28a11
-fef6cddfdb94da1a6b1fb768af62918b80f11fd3
-0641e43c694c485cbbffef0556efc4641bd3ff50
-76530a89f1c8bbd0b63acce63e10d5d4812a1a16 (conflict resolved)
-bf108d7f1354f6276fc43c129963f2c49b9fc242
-3692875172352f72cf3afd0d35f355e83d7e421b
-74412748067c685e1d8ab6ed3bcc3ca9c2774844
-86132e3f1e6ef7b4e0b96d8fa24e37c81b71b0e0
-63557cf8986a33dba1d4429b583a901361052c4f
-
-Upstream-Status: Backport
-
-Signed-off-by: Thomas Fitzsimmons <fitzsim@cisco.com>
----
- README.systemd | 41 +++
- agent/snmpd.c | 33 +-
- apps/snmptrapd.c | 32 +-
- configure.d/config_modules_lib | 8 +
- configure.d/config_project_with_enable | 9 +
- dist/snmpd.servic | 18 +
- dist/snmpd.socket | 17 +
- dist/snmptrapd.service | 16 +
- dist/snmptrapd.socket | 14 +
- include/net-snmp/library/sd-daemon.h | 290 ++++++++++++++++
- snmplib/sd-daemon.c | 532 +++++++++++++++++++++++++++++
- snmplib/transports/snmpTCPDomain.c | 43 ++-
- snmplib/transports/snmpTCPIPv6Domain.c | 46 ++-
- snmplib/transports/snmpUDPIPv4BaseDomain.c | 33 +-
- snmplib/transports/snmpUDPIPv6Domain.c | 34 +-
- snmplib/transports/snmpUnixDomain.c | 66 ++--
- win32/libsnmp/Makefile.in | 6 +
- win32/net-snmp/net-snmp-config.h | 2 +
- win32/net-snmp/net-snmp-config.h.in | 2 +
- 19 files changed, 1176 insertions(+), 66 deletions(-)
- create mode 100644 README.systemd
- create mode 100644 dist/snmpd.servic
- create mode 100644 dist/snmpd.socket
- create mode 100644 dist/snmptrapd.service
- create mode 100644 dist/snmptrapd.socket
- create mode 100644 include/net-snmp/library/sd-daemon.h
- create mode 100644 snmplib/sd-daemon.c
-
-diff --git a/README.systemd b/README.systemd
-new file mode 100644
-index 0000000..dba15d1
---- /dev/null
-+++ b/README.systemd
-@@ -0,0 +1,41 @@
-+README.systemd
-+--------------
-+Net-SNMP provides two daemons, which support systemd system manager.
-+See http://www.freedesktop.org/wiki/Software/systemd to learn how
-+systemd works. Both socket activation and notification is supported by these
-+daemons.
-+
-+To enable systemd support, the sources must be compiled with
-+--with-systemd configure option.
-+
-+snmpd - The SNMP agent
-+----------------------
-+Socket activation od snmpd daemon is implemented, but it's discouraged.
-+The reason is simple - snmpd not only listens and processes SNMP requests
-+from network, but also gathers system statistics counters, sends traps and
-+communicates with subagents. It even opens few netlink sockets.
-+
-+In other words, snmpd should run from system start to properly work.
-+This can be done in two ways:
-+1) either as snmpd service unit with 'Type=notification' and without a socket
-+ unit
-+2) or as snmpd service unit with 'Type=simple', appropriate socket socket unit
-+ and the snmpd service enabled. This way systemd creates the snmpd listening
-+ socket early during boot and passes the sockets to snmpd slightly later
-+ (but still during machine boot). This way systemd can paralelize start of
-+ services, which depend on snmpd. Admins must adjust the socket file manually,
-+ depending if the snmpd support AgentX, IPv6, SMUX etc.
-+
-+snmpd should be started with '-f' command line parameter to disable forking -
-+systemd does that for us automatically.
-+
-+
-+snmptrapd - The trap processing daemon
-+--------------------------------------
-+snmptrapd supports full socket activation and also notification (if needed).
-+Both 'Type=simple' (with appropriate socket unit) and 'Type=notify' services
-+will work. Again, '-f' parameter should be provided on snmptrapd command line.
-+
-+If integration with SNMP agent using AgentX protocol is enabled, snmptrapd should
-+start during boot and not after first SNMP trap arrives. Same rules as for snmpd
-+applies then.
-diff --git a/agent/snmpd.c b/agent/snmpd.c
-index cfc7bce..116ee5c 100644
---- a/agent/snmpd.c
-+++ b/agent/snmpd.c
-@@ -164,6 +164,10 @@ typedef long fd_mask;
-
- #endif
-
-+#ifndef NETSNMP_NO_SYSTEMD
-+#include <net-snmp/library/sd-daemon.h>
-+#endif
-+
- netsnmp_feature_want(logging_file)
- netsnmp_feature_want(logging_stdio)
- netsnmp_feature_want(logging_syslog)
-@@ -443,19 +447,29 @@ main(int argc, char *argv[])
- int agent_mode = -1;
- char *pid_file = NULL;
- char option_compatability[] = "-Le";
-+#ifndef WIN32
-+ int prepared_sockets = 0;
-+#endif
- #if HAVE_GETPID
- int fd;
- FILE *PID;
- #endif
-
- #ifndef WIN32
-+#ifndef NETSNMP_NO_SYSTEMD
-+ /* check if systemd has sockets for us and don't close them */
-+ prepared_sockets = netsnmp_sd_listen_fds(0);
-+#endif /* NETSNMP_NO_SYSTEMD */
-+
- /*
- * close all non-standard file descriptors we may have
- * inherited from the shell.
- */
-- for (i = getdtablesize() - 1; i > 2; --i) {
-- (void) close(i);
-- }
-+ if (!prepared_sockets) {
-+ for (i = getdtablesize() - 1; i > 2; --i) {
-+ (void) close(i);
-+ }
-+}
- #endif /* #WIN32 */
-
- /*
-@@ -1107,6 +1121,19 @@ main(int argc, char *argv[])
- netsnmp_addrcache_initialise();
-
- /*
-+ * Let systemd know we're up.
-+ */
-+#ifndef NETSNMP_NO_SYSTEMD
-+ netsnmp_sd_notify(1, "READY=1\n");
-+ if (prepared_sockets)
-+ /*
-+ * Clear the environment variable, we already processed all the sockets
-+ * by now.
-+ */
-+ netsnmp_sd_listen_fds(1);
-+#endif
-+
-+ /*
- * Forever monitor the dest_port for incoming PDUs.
- */
- DEBUGMSGTL(("snmpd/main", "We're up. Starting to process data.\n"));
-diff --git a/apps/snmptrapd.c b/apps/snmptrapd.c
-index bce0d47..c6a74ec 100644
---- a/apps/snmptrapd.c
-+++ b/apps/snmptrapd.c
-@@ -125,6 +125,10 @@ SOFTWARE.
-
- #include <net-snmp/net-snmp-features.h>
-
-+#ifndef NETSNMP_NO_SYSTEMD
-+#include <net-snmp/library/sd-daemon.h>
-+#endif
-+
- #ifndef BSD4_3
- #define BSD4_2
- #endif
-@@ -657,16 +661,25 @@ main(int argc, char *argv[])
- int agentx_subagent = 1;
- #endif
- netsnmp_trapd_handler *traph;
-+#ifndef WIN32
-+ int prepared_sockets = 0;
-+#endif
-
-
- #ifndef WIN32
-+#ifndef NETSNMP_NO_SYSTEMD
-+ /* check if systemd has sockets for us and don't close them */
-+ prepared_sockets = netsnmp_sd_listen_fds(0);
-+#endif
- /*
- * close all non-standard file descriptors we may have
- * inherited from the shell.
- */
-- for (i = getdtablesize() - 1; i > 2; --i) {
-- (void) close(i);
-- }
-+ if (!prepared_sockets) {
-+ for (i = getdtablesize() - 1; i > 2; --i) {
-+ (void) close(i);
-+ }
-+}
- #endif /* #WIN32 */
-
- #ifdef SIGTERM
-@@ -1318,6 +1331,19 @@ main(int argc, char *argv[])
- #endif
- #endif
-
-+ /*
-+ * Let systemd know we're up.
-+ */
-+#ifndef NETSNMP_NO_SYSTEMD
-+ netsnmp_sd_notify(1, "READY=1\n");
-+ if (prepared_sockets)
-+ /*
-+ * Clear the environment variable, we already processed all the sockets
-+ * by now.
-+ */
-+ netsnmp_sd_listen_fds(1);
-+#endif
-+
- #ifdef WIN32SERVICE
- trapd_status = SNMPTRAPD_RUNNING;
- #endif
-diff --git a/configure.d/config_modules_lib b/configure.d/config_modules_lib
-index 362ba0a..bb69daa 100644
---- a/configure.d/config_modules_lib
-+++ b/configure.d/config_modules_lib
-@@ -53,6 +53,14 @@ if test "x$PARTIALTARGETOS" = "xmingw32" -o "x$PARTIALTARGETOS" = "xmingw32msvc"
- other_ftobjs_list="$other_ftobjs_list winpipe.ft"
- fi
-
-+# Linux systemd
-+if test "x$with_systemd" == "xyes"; then
-+ other_src_list="$other_src_list sd-daemon.c"
-+ other_objs_list="$other_objs_list sd-daemon.o"
-+ other_lobjs_list="$other_lobjs_list sd-daemon.lo"
-+ other_ftobjs_list="$other_ftobjs_list sd-daemon.ft"
-+fi
-+
- AC_SUBST(other_src_list)
- AC_SUBST(other_objs_list)
- AC_SUBST(other_lobjs_list)
-diff --git a/configure.d/config_project_with_enable b/configure.d/config_project_with_enable
-index 61ba026..d782d12 100644
---- a/configure.d/config_project_with_enable
-+++ b/configure.d/config_project_with_enable
-@@ -690,6 +690,15 @@ if test "x$with_dummy_values" != "xyes"; then
- data for])
- fi
-
-+NETSNMP_ARG_WITH(systemd,
-+[ --with-systemd Provide systemd support. See README.systemd
-+ for details.])
-+# Define unless specifically suppressed (i.e., option defaults to false).
-+if test "x$with_systemd" != "xyes"; then
-+ AC_DEFINE(NETSNMP_NO_SYSTEMD, 1,
-+ [If you don't want to integrate with systemd.])
-+fi
-+
- NETSNMP_ARG_ENABLE(set-support,
- [ --disable-set-support Do not allow SNMP set requests.])
- if test "x$enable_set_support" = "xno"; then
-diff --git a/dist/snmpd.servic b/dist/snmpd.servic
-new file mode 100644
-index 0000000..31391e5
---- /dev/null
-+++ b/dist/snmpd.servic
-@@ -0,0 +1,18 @@
-+#
-+# SNMP agent service file for systemd
-+#
-+#
-+# The service should be enabled, i.e. snmpd should start during machine boot.
-+# Socket activation shall not be used. See README.systemd for details.
-+
-+[Unit]
-+Description=Simple Network Management Protocol (SNMP) daemon.
-+After=syslog.target network.target
-+
-+[Service]
-+# Type=notify is also supported. It should be set when snmpd.socket is not used.
-+Type=simple
-+ExecStart=/usr/sbin/snmpd -f
-+
-+[Install]
-+WantedBy=multi-user.target
-diff --git a/dist/snmpd.socket b/dist/snmpd.socket
-new file mode 100644
-index 0000000..7f3a2d9
---- /dev/null
-+++ b/dist/snmpd.socket
-@@ -0,0 +1,17 @@
-+[Unit]
-+Description=Socket listening for SNMP and AgentX messages
-+
-+[Socket]
-+ListenDatagram=0.0.0.0:161
-+# Uncomment other listening addresses as needed - TCP, UDP6, TCP6.
-+# It must match listening addresses/ports defined in snmpd.service
-+# or snmpd.conf.
-+# ListenStream=0.0.0.0:161
-+# ListenDatagram=[::]:161
-+# ListenStream=[::]:161
-+#
-+# Uncomment AgentX socket if snmpd.conf enables AgentX protocol.
-+# ListenStream=/var/agentx/master
-+
-+[Install]
-+WantedBy=sockets.target
-diff --git a/dist/snmptrapd.service b/dist/snmptrapd.service
-new file mode 100644
-index 0000000..e88a5b4
---- /dev/null
-+++ b/dist/snmptrapd.service
-@@ -0,0 +1,16 @@
-+#
-+# SNMP trap-processing service file for systemd
-+#
-+
-+[Unit]
-+Description=Simple Network Management Protocol (SNMP) Trap daemon.
-+After=syslog.target network.target
-+
-+[Service]
-+# Type=notify is also supported. It should be set when snmptrapd.socket is not
-+# used.
-+Type=simple
-+ExecStart=/usr/sbin/snmptrapd -f
-+
-+[Install]
-+WantedBy=multi-user.target
-diff --git a/dist/snmptrapd.socket b/dist/snmptrapd.socket
-new file mode 100644
-index 0000000..2d24fb8
---- /dev/null
-+++ b/dist/snmptrapd.socket
-@@ -0,0 +1,14 @@
-++[Unit]
-++Description=Socket listening for SNMP trap messages
-++
-++[Socket]
-++ListenDatagram=0.0.0.0:162
-++# Uncomment other listening addresses as needed - TCP, UDP6, TCP6.
-++# It must match listening addresses/ports defined in snmptrapd.service
-++# or snmptrapd.conf.
-++# ListenStream=0.0.0.0:162
-++# ListenDatagram=[::]:162
-++# ListenStream=[::]:162
-++
-++[Install]
-++WantedBy=sockets.target
-diff --git a/include/net-snmp/library/sd-daemon.h b/include/net-snmp/library/sd-daemon.h
-new file mode 100644
-index 0000000..85274c9
---- /dev/null
-+++ b/include/net-snmp/library/sd-daemon.h
-@@ -0,0 +1,290 @@
-+/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-+
-+#ifndef SNMPD_SD_DAEMON_H
-+#define SNMPD_SD_DAEMON_H
-+
-+/***
-+ Copyright 2010 Lennart Poettering
-+
-+ 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.
-+***/
-+
-+#ifdef HAVE_SYS_TYPES_H
-+#include <sys/types.h>
-+#endif
-+#ifdef HAVE_INTTYPES_H
-+#include <inttypes.h>
-+#endif
-+
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+/*
-+ Reference implementation of a few systemd related interfaces for
-+ writing daemons. These interfaces are trivial to implement. To
-+ simplify porting we provide this reference implementation.
-+ Applications are welcome to reimplement the algorithms described
-+ here if they do not want to include these two source files.
-+
-+ The following functionality is provided:
-+
-+ - Support for logging with log levels on stderr
-+ - File descriptor passing for socket-based activation
-+ - Daemon startup and status notification
-+ - Detection of systemd boots
-+
-+ You may compile this with -DDISABLE_SYSTEMD to disable systemd
-+ support. This makes all those calls NOPs that are directly related to
-+ systemd (i.e. only sd_is_xxx() will stay useful).
-+
-+ Since this is drop-in code we don't want any of our symbols to be
-+ exported in any case. Hence we declare hidden visibility for all of
-+ them.
-+
-+ You may find an up-to-date version of these source files online:
-+
-+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.h
-+ http://cgit.freedesktop.org/systemd/plain/src/sd-daemon.c
-+
-+ This should compile on non-Linux systems, too, but with the
-+ exception of the sd_is_xxx() calls all functions will become NOPs.
-+
-+ See sd-daemon(7) for more information.
-+*/
-+
-+#ifndef _sd_printf_attr_
-+#if __GNUC__ >= 4
-+#define _sd_printf_attr_(a,b) __attribute__ ((format (printf, a, b)))
-+#else
-+#define _sd_printf_attr_(a,b)
-+#endif
-+#endif
-+
-+/*
-+ Log levels for usage on stderr:
-+
-+ fprintf(stderr, SD_NOTICE "Hello World!\n");
-+
-+ This is similar to printk() usage in the kernel.
-+*/
-+#define SD_EMERG "<0>" /* system is unusable */
-+#define SD_ALERT "<1>" /* action must be taken immediately */
-+#define SD_CRIT "<2>" /* critical conditions */
-+#define SD_ERR "<3>" /* error conditions */
-+#define SD_WARNING "<4>" /* warning conditions */
-+#define SD_NOTICE "<5>" /* normal but significant condition */
-+#define SD_INFO "<6>" /* informational */
-+#define SD_DEBUG "<7>" /* debug-level messages */
-+
-+/* The first passed file descriptor is fd 3 */
-+#define SD_LISTEN_FDS_START 3
-+
-+/*
-+ Returns how many file descriptors have been passed, or a negative
-+ errno code on failure. Optionally, removes the $LISTEN_FDS and
-+ $LISTEN_PID file descriptors from the environment (recommended, but
-+ problematic in threaded environments). If r is the return value of
-+ this function you'll find the file descriptors passed as fds
-+ SD_LISTEN_FDS_START to SD_LISTEN_FDS_START+r-1. Returns a negative
-+ errno style error code on failure. This function call ensures that
-+ the FD_CLOEXEC flag is set for the passed file descriptors, to make
-+ sure they are not passed on to child processes. If FD_CLOEXEC shall
-+ not be set, the caller needs to unset it after this call for all file
-+ descriptors that are used.
-+
-+ See sd_listen_fds(3) for more information.
-+*/
-+int netsnmp_sd_listen_fds(int unset_environment);
-+
-+/*
-+ Helper call for identifying a passed file descriptor. Returns 1 if
-+ the file descriptor is a FIFO in the file system stored under the
-+ specified path, 0 otherwise. If path is NULL a path name check will
-+ not be done and the call only verifies if the file descriptor
-+ refers to a FIFO. Returns a negative errno style error code on
-+ failure.
-+
-+ See sd_is_fifo(3) for more information.
-+*/
-+int netsnmp_sd_is_fifo(int fd, const char *path);
-+
-+/*
-+ Helper call for identifying a passed file descriptor. Returns 1 if
-+ the file descriptor is a special character device on the file
-+ system stored under the specified path, 0 otherwise.
-+ If path is NULL a path name check will not be done and the call
-+ only verifies if the file descriptor refers to a special character.
-+ Returns a negative errno style error code on failure.
-+
-+ See sd_is_special(3) for more information.
-+*/
-+int netsnmp_sd_is_special(int fd, const char *path);
-+
-+/*
-+ Helper call for identifying a passed file descriptor. Returns 1 if
-+ the file descriptor is a socket of the specified family (AF_INET,
-+ ...) and type (SOCK_DGRAM, SOCK_STREAM, ...), 0 otherwise. If
-+ family is 0 a socket family check will not be done. If type is 0 a
-+ socket type check will not be done and the call only verifies if
-+ the file descriptor refers to a socket. If listening is > 0 it is
-+ verified that the socket is in listening mode. (i.e. listen() has
-+ been called) If listening is == 0 it is verified that the socket is
-+ not in listening mode. If listening is < 0 no listening mode check
-+ is done. Returns a negative errno style error code on failure.
-+
-+ See sd_is_socket(3) for more information.
-+*/
-+int netsnmp_sd_is_socket(int fd, int family, int type, int listening);
-+
-+/*
-+ Helper call for identifying a passed file descriptor. Returns 1 if
-+ the file descriptor is an Internet socket, of the specified family
-+ (either AF_INET or AF_INET6) and the specified type (SOCK_DGRAM,
-+ SOCK_STREAM, ...), 0 otherwise. If version is 0 a protocol version
-+ check is not done. If type is 0 a socket type check will not be
-+ done. If port is 0 a socket port check will not be done. The
-+ listening flag is used the same way as in sd_is_socket(). Returns a
-+ negative errno style error code on failure.
-+
-+ See sd_is_socket_inet(3) for more information.
-+*/
-+int netsnmp_sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port);
-+
-+/*
-+ Helper call for identifying a passed file descriptor. Returns 1 if
-+ the file descriptor is an AF_UNIX socket of the specified type
-+ (SOCK_DGRAM, SOCK_STREAM, ...) and path, 0 otherwise. If type is 0
-+ a socket type check will not be done. If path is NULL a socket path
-+ check will not be done. For normal AF_UNIX sockets set length to
-+ 0. For abstract namespace sockets set length to the length of the
-+ socket name (including the initial 0 byte), and pass the full
-+ socket path in path (including the initial 0 byte). The listening
-+ flag is used the same way as in sd_is_socket(). Returns a negative
-+ errno style error code on failure.
-+
-+ See sd_is_socket_unix(3) for more information.
-+*/
-+int netsnmp_sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length);
-+
-+/*
-+ Informs systemd about changed daemon state. This takes a number of
-+ newline separated environment-style variable assignments in a
-+ string. The following variables are known:
-+
-+ READY=1 Tells systemd that daemon startup is finished (only
-+ relevant for services of Type=notify). The passed
-+ argument is a boolean "1" or "0". Since there is
-+ little value in signaling non-readiness the only
-+ value daemons should send is "READY=1".
-+
-+ STATUS=... Passes a single-line status string back to systemd
-+ that describes the daemon state. This is free-from
-+ and can be used for various purposes: general state
-+ feedback, fsck-like programs could pass completion
-+ percentages and failing programs could pass a human
-+ readable error message. Example: "STATUS=Completed
-+ 66% of file system check..."
-+
-+ ERRNO=... If a daemon fails, the errno-style error code,
-+ formatted as string. Example: "ERRNO=2" for ENOENT.
-+
-+ BUSERROR=... If a daemon fails, the D-Bus error-style error
-+ code. Example: "BUSERROR=org.freedesktop.DBus.Error.TimedOut"
-+
-+ MAINPID=... The main pid of a daemon, in case systemd did not
-+ fork off the process itself. Example: "MAINPID=4711"
-+
-+ Daemons can choose to send additional variables. However, it is
-+ recommended to prefix variable names not listed above with X_.
-+
-+ Returns a negative errno-style error code on failure. Returns > 0
-+ if systemd could be notified, 0 if it couldn't possibly because
-+ systemd is not running.
-+
-+ Example: When a daemon finished starting up, it could issue this
-+ call to notify systemd about it:
-+
-+ sd_notify(0, "READY=1");
-+
-+ See sd_notifyf() for more complete examples.
-+
-+ See sd_notify(3) for more information.
-+*/
-+int netsnmp_sd_notify(int unset_environment, const char *state);
-+
-+/*
-+ Similar to sd_notify() but takes a format string.
-+
-+ Example 1: A daemon could send the following after initialization:
-+
-+ sd_notifyf(0, "READY=1\n"
-+ "STATUS=Processing requests...\n"
-+ "MAINPID=%lu",
-+ (unsigned long) getpid());
-+
-+ Example 2: A daemon could send the following shortly before
-+ exiting, on failure:
-+
-+ sd_notifyf(0, "STATUS=Failed to start up: %s\n"
-+ "ERRNO=%i",
-+ strerror(errno),
-+ errno);
-+
-+ See sd_notifyf(3) for more information.
-+*/
-+int netsnmp_sd_notifyf(int unset_environment, const char *format, ...) _sd_printf_attr_(2,3);
-+
-+/*
-+ Returns > 0 if the system was booted with systemd. Returns < 0 on
-+ error. Returns 0 if the system was not booted with systemd. Note
-+ that all of the functions above handle non-systemd boots just
-+ fine. You should NOT protect them with a call to this function. Also
-+ note that this function checks whether the system, not the user
-+ session is controlled by systemd. However the functions above work
-+ for both user and system services.
-+
-+ See sd_booted(3) for more information.
-+*/
-+int netsnmp_sd_booted(void);
-+
-+/**
-+ * Find an socket with given parameters. See man sd_is_socket_inet for
-+ * description of the arguments.
-+ *
-+ * Returns the file descriptor if it is found, 0 otherwise.
-+ */
-+int netsnmp_sd_find_inet_socket(int family, int type, int listening, int port);
-+
-+/**
-+ * Find an unix socket with given parameters. See man sd_is_socket_unix for
-+ * description of the arguments.
-+ *
-+ * Returns the file descriptor if it is found, 0 otherwise.
-+ */
-+int
-+netsnmp_sd_find_unix_socket(int type, int listening, const char *path);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif /* SNMPD_SD_DAEMON_H */
-diff --git a/snmplib/sd-daemon.c b/snmplib/sd-daemon.c
-new file mode 100644
-index 0000000..42dba29
---- /dev/null
-+++ b/snmplib/sd-daemon.c
-@@ -0,0 +1,532 @@
-+/*
-+ * Systemd integration parts.
-+ *
-+ * Most of this file is directly copied from systemd sources.
-+ * Changes:
-+ * - all functions were renamed to have netsnmp_ prefix
-+ * - includes were changed to match Net-SNMP style.
-+ * - removed gcc export macros
-+ * - removed POSIX message queues
-+ */
-+
-+#include <net-snmp/net-snmp-config.h>
-+#include <net-snmp/net-snmp-features.h>
-+#include <net-snmp/types.h>
-+#include <net-snmp/library/snmp_debug.h>
-+
-+#ifndef NETSNMP_NO_SYSTEMD
-+
-+/***
-+ Copyright 2010 Lennart Poettering
-+
-+ 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.
-+***/
-+
-+#ifndef _GNU_SOURCE
-+#define _GNU_SOURCE
-+#endif
-+
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <sys/socket.h>
-+#include <sys/un.h>
-+#include <sys/fcntl.h>
-+#include <netinet/in.h>
-+#include <stdlib.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <string.h>
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <stddef.h>
-+#include <limits.h>
-+
-+#include <net-snmp/library/sd-daemon.h>
-+
-+int netsnmp_sd_listen_fds(int unset_environment) {
-+
-+ int r, fd;
-+ const char *e;
-+ char *p = NULL;
-+ unsigned long l;
-+
-+ if (!(e = getenv("LISTEN_PID"))) {
-+ r = 0;
-+ goto finish;
-+ }
-+
-+ errno = 0;
-+ l = strtoul(e, &p, 10);
-+
-+ if (errno != 0) {
-+ r = -errno;
-+ goto finish;
-+ }
-+
-+ if (!p || *p || l <= 0) {
-+ r = -EINVAL;
-+ goto finish;
-+ }
-+
-+ /* Is this for us? */
-+ if (getpid() != (pid_t) l) {
-+ r = 0;
-+ goto finish;
-+ }
-+
-+ if (!(e = getenv("LISTEN_FDS"))) {
-+ r = 0;
-+ goto finish;
-+ }
-+
-+ errno = 0;
-+ l = strtoul(e, &p, 10);
-+
-+ if (errno != 0) {
-+ r = -errno;
-+ goto finish;
-+ }
-+
-+ if (!p || *p) {
-+ r = -EINVAL;
-+ goto finish;
-+ }
-+
-+ for (fd = SD_LISTEN_FDS_START; fd < SD_LISTEN_FDS_START + (int) l; fd ++) {
-+ int flags;
-+
-+ if ((flags = fcntl(fd, F_GETFD)) < 0) {
-+ r = -errno;
-+ goto finish;
-+ }
-+
-+ if (flags & FD_CLOEXEC)
-+ continue;
-+
-+ if (fcntl(fd, F_SETFD, flags | FD_CLOEXEC) < 0) {
-+ r = -errno;
-+ goto finish;
-+ }
-+ }
-+
-+ r = (int) l;
-+
-+finish:
-+ if (unset_environment) {
-+ unsetenv("LISTEN_PID");
-+ unsetenv("LISTEN_FDS");
-+ }
-+
-+ return r;
-+}
-+
-+int netsnmp_sd_is_fifo(int fd, const char *path) {
-+ struct stat st_fd;
-+
-+ if (fd < 0)
-+ return -EINVAL;
-+
-+ memset(&st_fd, 0, sizeof(st_fd));
-+ if (fstat(fd, &st_fd) < 0)
-+ return -errno;
-+
-+ if (!S_ISFIFO(st_fd.st_mode))
-+ return 0;
-+
-+ if (path) {
-+ struct stat st_path;
-+
-+ memset(&st_path, 0, sizeof(st_path));
-+ if (stat(path, &st_path) < 0) {
-+
-+ if (errno == ENOENT || errno == ENOTDIR)
-+ return 0;
-+
-+ return -errno;
-+ }
-+
-+ return
-+ st_path.st_dev == st_fd.st_dev &&
-+ st_path.st_ino == st_fd.st_ino;
-+ }
-+
-+ return 1;
-+}
-+
-+int netsnmp_sd_is_special(int fd, const char *path) {
-+ struct stat st_fd;
-+
-+ if (fd < 0)
-+ return -EINVAL;
-+
-+ if (fstat(fd, &st_fd) < 0)
-+ return -errno;
-+
-+ if (!S_ISREG(st_fd.st_mode) && !S_ISCHR(st_fd.st_mode))
-+ return 0;
-+
-+ if (path) {
-+ struct stat st_path;
-+
-+ if (stat(path, &st_path) < 0) {
-+
-+ if (errno == ENOENT || errno == ENOTDIR)
-+ return 0;
-+
-+ return -errno;
-+ }
-+
-+ if (S_ISREG(st_fd.st_mode) && S_ISREG(st_path.st_mode))
-+ return
-+ st_path.st_dev == st_fd.st_dev &&
-+ st_path.st_ino == st_fd.st_ino;
-+ else if (S_ISCHR(st_fd.st_mode) && S_ISCHR(st_path.st_mode))
-+ return st_path.st_rdev == st_fd.st_rdev;
-+ else
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+
-+static int sd_is_socket_internal(int fd, int type, int listening) {
-+ struct stat st_fd;
-+
-+ if (fd < 0 || type < 0)
-+ return -EINVAL;
-+
-+ if (fstat(fd, &st_fd) < 0)
-+ return -errno;
-+
-+ if (!S_ISSOCK(st_fd.st_mode))
-+ return 0;
-+
-+ if (type != 0) {
-+ int other_type = 0;
-+ socklen_t l = sizeof(other_type);
-+
-+ if (getsockopt(fd, SOL_SOCKET, SO_TYPE, &other_type, &l) < 0)
-+ return -errno;
-+
-+ if (l != sizeof(other_type))
-+ return -EINVAL;
-+
-+ if (other_type != type)
-+ return 0;
-+ }
-+
-+ if (listening >= 0) {
-+ int accepting = 0;
-+ socklen_t l = sizeof(accepting);
-+
-+ if (getsockopt(fd, SOL_SOCKET, SO_ACCEPTCONN, &accepting, &l) < 0)
-+ return -errno;
-+
-+ if (l != sizeof(accepting))
-+ return -EINVAL;
-+
-+ if (!accepting != !listening)
-+ return 0;
-+ }
-+
-+ return 1;
-+}
-+
-+union sockaddr_union {
-+ struct sockaddr sa;
-+ struct sockaddr_in in4;
-+ struct sockaddr_in6 in6;
-+ struct sockaddr_un un;
-+ struct sockaddr_storage storage;
-+};
-+
-+int netsnmp_sd_is_socket(int fd, int family, int type, int listening) {
-+ int r;
-+
-+ if (family < 0)
-+ return -EINVAL;
-+
-+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0)
-+ return r;
-+
-+ if (family > 0) {
-+ union sockaddr_union sockaddr;
-+ socklen_t l;
-+
-+ memset(&sockaddr, 0, sizeof(sockaddr));
-+ l = sizeof(sockaddr);
-+
-+ if (getsockname(fd, &sockaddr.sa, &l) < 0)
-+ return -errno;
-+
-+ if (l < sizeof(sa_family_t))
-+ return -EINVAL;
-+
-+ return sockaddr.sa.sa_family == family;
-+ }
-+
-+ return 1;
-+}
-+
-+int netsnmp_sd_is_socket_inet(int fd, int family, int type, int listening, uint16_t port) {
-+ union sockaddr_union sockaddr;
-+ socklen_t l;
-+ int r;
-+
-+ if (family != 0 && family != AF_INET && family != AF_INET6)
-+ return -EINVAL;
-+
-+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0)
-+ return r;
-+
-+ memset(&sockaddr, 0, sizeof(sockaddr));
-+ l = sizeof(sockaddr);
-+
-+ if (getsockname(fd, &sockaddr.sa, &l) < 0)
-+ return -errno;
-+
-+ if (l < sizeof(sa_family_t))
-+ return -EINVAL;
-+
-+ if (sockaddr.sa.sa_family != AF_INET &&
-+ sockaddr.sa.sa_family != AF_INET6)
-+ return 0;
-+
-+ if (family > 0)
-+ if (sockaddr.sa.sa_family != family)
-+ return 0;
-+
-+ if (port > 0) {
-+ if (sockaddr.sa.sa_family == AF_INET) {
-+ if (l < sizeof(struct sockaddr_in))
-+ return -EINVAL;
-+
-+ return htons(port) == sockaddr.in4.sin_port;
-+ } else {
-+ if (l < sizeof(struct sockaddr_in6))
-+ return -EINVAL;
-+
-+ return htons(port) == sockaddr.in6.sin6_port;
-+ }
-+ }
-+
-+ return 1;
-+}
-+
-+int netsnmp_sd_is_socket_unix(int fd, int type, int listening, const char *path, size_t length) {
-+ union sockaddr_union sockaddr;
-+ socklen_t l;
-+ int r;
-+
-+ if ((r = sd_is_socket_internal(fd, type, listening)) <= 0)
-+ return r;
-+
-+ memset(&sockaddr, 0, sizeof(sockaddr));
-+ l = sizeof(sockaddr);
-+
-+ if (getsockname(fd, &sockaddr.sa, &l) < 0)
-+ return -errno;
-+
-+ if (l < sizeof(sa_family_t))
-+ return -EINVAL;
-+
-+ if (sockaddr.sa.sa_family != AF_UNIX)
-+ return 0;
-+
-+ if (path) {
-+ if (length <= 0)
-+ length = strlen(path);
-+
-+ if (length <= 0)
-+ /* Unnamed socket */
-+ return l == offsetof(struct sockaddr_un, sun_path);
-+
-+ if (path[0])
-+ /* Normal path socket */
-+ return
-+ (l >= offsetof(struct sockaddr_un, sun_path) + length + 1) &&
-+ memcmp(path, sockaddr.un.sun_path, length+1) == 0;
-+ else
-+ /* Abstract namespace socket */
-+ return
-+ (l == offsetof(struct sockaddr_un, sun_path) + length) &&
-+ memcmp(path, sockaddr.un.sun_path, length) == 0;
-+ }
-+
-+ return 1;
-+}
-+
-+int netsnmp_sd_notify(int unset_environment, const char *state) {
-+ int fd = -1, r;
-+ struct msghdr msghdr;
-+ struct iovec iovec;
-+ union sockaddr_union sockaddr;
-+ const char *e;
-+
-+ if (!state) {
-+ r = -EINVAL;
-+ goto finish;
-+ }
-+
-+ if (!(e = getenv("NOTIFY_SOCKET")))
-+ return 0;
-+
-+ /* Must be an abstract socket, or an absolute path */
-+ if ((e[0] != '@' && e[0] != '/') || e[1] == 0) {
-+ r = -EINVAL;
-+ goto finish;
-+ }
-+
-+ if ((fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) {
-+ r = -errno;
-+ goto finish;
-+ }
-+
-+ memset(&sockaddr, 0, sizeof(sockaddr));
-+ sockaddr.sa.sa_family = AF_UNIX;
-+ strncpy(sockaddr.un.sun_path, e, sizeof(sockaddr.un.sun_path));
-+
-+ if (sockaddr.un.sun_path[0] == '@')
-+ sockaddr.un.sun_path[0] = 0;
-+
-+ memset(&iovec, 0, sizeof(iovec));
-+ iovec.iov_base = (char *)state;
-+ iovec.iov_len = strlen(state);
-+
-+ memset(&msghdr, 0, sizeof(msghdr));
-+ msghdr.msg_name = &sockaddr;
-+ msghdr.msg_namelen = offsetof(struct sockaddr_un, sun_path) + strlen(e);
-+
-+ if (msghdr.msg_namelen > sizeof(struct sockaddr_un))
-+ msghdr.msg_namelen = sizeof(struct sockaddr_un);
-+
-+ msghdr.msg_iov = &iovec;
-+ msghdr.msg_iovlen = 1;
-+
-+ if (sendmsg(fd, &msghdr, MSG_NOSIGNAL) < 0) {
-+ r = -errno;
-+ goto finish;
-+ }
-+
-+ r = 1;
-+
-+finish:
-+ if (unset_environment)
-+ unsetenv("NOTIFY_SOCKET");
-+
-+ if (fd >= 0)
-+ close(fd);
-+
-+ return r;
-+}
-+
-+int netsnmp_sd_notifyf(int unset_environment, const char *format, ...) {
-+ va_list ap;
-+ char *p = NULL;
-+ int r;
-+
-+ va_start(ap, format);
-+ r = vasprintf(&p, format, ap);
-+ va_end(ap);
-+
-+ if (r < 0 || !p)
-+ return -ENOMEM;
-+
-+ r = netsnmp_sd_notify(unset_environment, p);
-+ free(p);
-+
-+ return r;
-+}
-+
-+int netsnmp_sd_booted(void) {
-+ struct stat a, b;
-+
-+ /* We simply test whether the systemd cgroup hierarchy is
-+ * mounted */
-+
-+ if (lstat("/sys/fs/cgroup", &a) < 0)
-+ return 0;
-+
-+ if (lstat("/sys/fs/cgroup/systemd", &b) < 0)
-+ return 0;
-+
-+ return a.st_dev != b.st_dev;
-+}
-+
-+/* End of original sd-daemon.c from systemd sources */
-+
-+int
-+netsnmp_sd_find_inet_socket(int family, int type, int listening, int port)
-+{
-+ int count, fd;
-+
-+ count = netsnmp_sd_listen_fds(0);
-+ if (count <= 0) {
-+ DEBUGMSGTL(("systemd:find_inet_socket", "No LISTEN_FDS found.\n"));
-+ return 0;
-+ }
-+ DEBUGMSGTL(("systemd:find_inet_socket", "LISTEN_FDS reports %d sockets.\n",
-+ count));
-+
-+ for (fd = 3; fd < 3+count; fd++) {
-+ int rc = netsnmp_sd_is_socket_inet(fd, family, type, listening, port);
-+ if (rc < 0)
-+ DEBUGMSGTL(("systemd:find_inet_socket",
-+ "sd_is_socket_inet error: %d\n", rc));
-+ if (rc > 0) {
-+ DEBUGMSGTL(("systemd:find_inet_socket",
-+ "Found the socket in LISTEN_FDS\n"));
-+ return fd;
-+ }
-+ }
-+ DEBUGMSGTL(("systemd:find_inet_socket", "Socket not found in LISTEN_FDS\n"));
-+ return 0;
-+}
-+
-+int
-+netsnmp_sd_find_unix_socket(int type, int listening, const char *path)
-+{
-+ int count, fd;
-+
-+ count = netsnmp_sd_listen_fds(0);
-+ if (count <= 0) {
-+ DEBUGMSGTL(("systemd:find_unix_socket", "No LISTEN_FDS found.\n"));
-+ return 0;
-+ }
-+ DEBUGMSGTL(("systemd:find_unix_socket", "LISTEN_FDS reports %d sockets.\n",
-+ count));
-+
-+ for (fd = 3; fd < 3+count; fd++) {
-+ int rc = netsnmp_sd_is_socket_unix(fd, type, listening, path, 0);
-+ if (rc < 0)
-+ DEBUGMSGTL(("systemd:find_unix_socket",
-+ "netsnmp_sd_is_socket_unix error: %d\n", rc));
-+ if (rc > 0) {
-+ DEBUGMSGTL(("systemd:find_unix_socket",
-+ "Found the socket in LISTEN_FDS\n"));
-+ return fd;
-+ }
-+ }
-+ DEBUGMSGTL(("systemd:find_unix_socket", "Socket not found in LISTEN_FDS\n"));
-+ return 0;
-+}
-+
-+#endif /* ! NETSNMP_NO_SYSTEMD */
-diff --git a/snmplib/transports/snmpTCPDomain.c b/snmplib/transports/snmpTCPDomain.c
-index 7feb028..a41b926 100644
---- a/snmplib/transports/snmpTCPDomain.c
-+++ b/snmplib/transports/snmpTCPDomain.c
-@@ -43,6 +43,10 @@
- #include <net-snmp/library/snmpTCPBaseDomain.h>
- #include <net-snmp/library/tools.h>
-
-+#ifndef NETSNMP_NO_SYSTEMD
-+#include <net-snmp/library/sd-daemon.h>
-+#endif
-+
- /*
- * needs to be in sync with the definitions in snmplib/snmpUDPDomain.c
- * and perl/agent/agent.xs
-@@ -149,6 +153,7 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local)
- netsnmp_transport *t = NULL;
- netsnmp_udp_addr_pair *addr_pair = NULL;
- int rc = 0;
-+ int socket_initialized = 0;
-
- #ifdef NETSNMP_NO_LISTEN_SUPPORT
- if (local)
-@@ -178,7 +183,19 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local)
- t->domain_length =
- sizeof(netsnmp_snmpTCPDomain) / sizeof(netsnmp_snmpTCPDomain[0]);
-
-- t->sock = socket(PF_INET, SOCK_STREAM, 0);
-+#ifndef NETSNMP_NO_SYSTEMD
-+ /*
-+ * Maybe the socket was already provided by systemd...
-+ */
-+ if (local) {
-+ t->sock = netsnmp_sd_find_inet_socket(PF_INET, SOCK_STREAM, 1,
-+ ntohs(addr->sin_port));
-+ if (t->sock)
-+ socket_initialized = 1;
-+ }
-+#endif
-+ if (!socket_initialized)
-+ t->sock = socket(PF_INET, SOCK_STREAM, 0);
- if (t->sock < 0) {
- netsnmp_transport_free(t);
- return NULL;
-@@ -215,11 +232,13 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local)
- setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt,
- sizeof(opt));
-
-- rc = bind(t->sock, (struct sockaddr *)addr, sizeof(struct sockaddr));
-- if (rc != 0) {
-- netsnmp_socketbase_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
-+ if (!socket_initialized) {
-+ rc = bind(t->sock, (struct sockaddr *)addr, sizeof(struct sockaddr));
-+ if (rc != 0) {
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
- }
-
- /*
-@@ -236,11 +255,13 @@ netsnmp_tcp_transport(struct sockaddr_in *addr, int local)
- * Now sit here and wait for connections to arrive.
- */
-
-- rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-- if (rc != 0) {
-- netsnmp_socketbase_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
-+ if (!socket_initialized) {
-+ rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-+ if (rc != 0) {
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
- }
-
- /*
-diff --git a/snmplib/transports/snmpTCPIPv6Domain.c b/snmplib/transports/snmpTCPIPv6Domain.c
-index d2e0a2d..22de6d4 100644
---- a/snmplib/transports/snmpTCPIPv6Domain.c
-+++ b/snmplib/transports/snmpTCPIPv6Domain.c
-@@ -49,6 +49,10 @@
- #include <net-snmp/library/snmpTCPBaseDomain.h>
- #include <net-snmp/library/tools.h>
-
-+#ifndef NETSNMP_NO_SYSTEMD
-+#include <net-snmp/library/sd-daemon.h>
-+#endif
-+
- #include "inet_ntop.h"
-
- oid netsnmp_TCPIPv6Domain[] = { TRANSPORT_DOMAIN_TCP_IPV6 };
-@@ -140,6 +144,8 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local)
- {
- netsnmp_transport *t = NULL;
- int rc = 0;
-+ char *str = NULL;
-+ int socket_initialized = 0;
-
- #ifdef NETSNMP_NO_LISTEN_SUPPORT
- if (local)
-@@ -174,7 +180,19 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local)
- t->domain = netsnmp_TCPIPv6Domain;
- t->domain_length = sizeof(netsnmp_TCPIPv6Domain) / sizeof(oid);
-
-- t->sock = socket(PF_INET6, SOCK_STREAM, 0);
-+#ifndef NETSNMP_NO_SYSTEMD
-+ /*
-+ * Maybe the socket was already provided by systemd...
-+ */
-+ if (local) {
-+ t->sock = netsnmp_sd_find_inet_socket(PF_INET6, SOCK_STREAM, 1,
-+ ntohs(addr->sin6_port));
-+ if (t->sock)
-+ socket_initialized = 1;
-+ }
-+#endif
-+ if (!socket_initialized)
-+ t->sock = socket(PF_INET6, SOCK_STREAM, 0);
- if (t->sock < 0) {
- netsnmp_transport_free(t);
- return NULL;
-@@ -220,12 +238,14 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local)
-
- setsockopt(t->sock, SOL_SOCKET, SO_REUSEADDR, (void *)&opt, sizeof(opt));
-
-- rc = bind(t->sock, (struct sockaddr *) addr,
-- sizeof(struct sockaddr_in6));
-- if (rc != 0) {
-- netsnmp_socketbase_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
-+ if (!socket_initialized) {
-+ rc = bind(t->sock, (struct sockaddr *) addr,
-+ sizeof(struct sockaddr_in6));
-+ if (rc != 0) {
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
- }
-
- /*
-@@ -242,11 +262,13 @@ netsnmp_tcp6_transport(struct sockaddr_in6 *addr, int local)
- * Now sit here and wait for connections to arrive.
- */
-
-- rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-- if (rc != 0) {
-- netsnmp_socketbase_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
-+ if (!socket_initialized) {
-+ rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-+ if (rc != 0) {
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
- }
-
- /*
-diff --git a/snmplib/transports/snmpUDPIPv4BaseDomain.c b/snmplib/transports/snmpUDPIPv4BaseDomain.c
-index 8c0fb05..00e5bbc 100644
---- a/snmplib/transports/snmpUDPIPv4BaseDomain.c
-+++ b/snmplib/transports/snmpUDPIPv4BaseDomain.c
-@@ -40,6 +40,10 @@
-
- #include <net-snmp/library/snmpSocketBaseDomain.h>
-
-+#ifndef NETSNMP_NO_SYSTEMD
-+#include <net-snmp/library/sd-daemon.h>
-+#endif
-+
- #if defined(HAVE_IP_PKTINFO) || defined(HAVE_IP_RECVDSTADDR)
- int netsnmp_udpipv4_recvfrom(int s, void *buf, int len, struct sockaddr *from,
- socklen_t *fromlen, struct sockaddr *dstip,
-@@ -64,6 +68,7 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local)
- char *client_socket = NULL;
- netsnmp_indexed_addr_pair addr_pair;
- socklen_t local_addr_len;
-+ int socket_initialized = 0;
-
- #ifdef NETSNMP_NO_LISTEN_SUPPORT
- if (local)
-@@ -88,7 +93,19 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local)
- free(str);
- }
-
-- t->sock = socket(PF_INET, SOCK_DGRAM, 0);
-+#ifndef NETSNMP_NO_SYSTEMD
-+ /*
-+ * Maybe the socket was already provided by systemd...
-+ */
-+ if (local) {
-+ t->sock = netsnmp_sd_find_inet_socket(PF_INET, SOCK_DGRAM, -1,
-+ ntohs(addr->sin_port));
-+ if (t->sock)
-+ socket_initialized = 1;
-+ }
-+#endif
-+ if (!socket_initialized)
-+ t->sock = socket(PF_INET, SOCK_DGRAM, 0);
- DEBUGMSGTL(("UDPBase", "openned socket %d as local=%d\n", t->sock, local));
- if (t->sock < 0) {
- netsnmp_transport_free(t);
-@@ -151,12 +168,14 @@ netsnmp_udpipv4base_transport(struct sockaddr_in *addr, int local)
- }
- }
- #endif /* !defined(WIN32) */
-- rc = bind(t->sock, (struct sockaddr *) addr,
-- sizeof(struct sockaddr));
-- if (rc != 0) {
-- netsnmp_socketbase_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
-+ if (!socket_initialized) {
-+ rc = bind(t->sock, (struct sockaddr *) addr,
-+ sizeof(struct sockaddr));
-+ if (rc != 0) {
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
- }
- t->data = NULL;
- t->data_length = 0;
-diff --git a/snmplib/transports/snmpUDPIPv6Domain.c b/snmplib/transports/snmpUDPIPv6Domain.c
-index 18de876..fd2ced4 100644
---- a/snmplib/transports/snmpUDPIPv6Domain.c
-+++ b/snmplib/transports/snmpUDPIPv6Domain.c
-@@ -67,6 +67,10 @@ static const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT;
- #include <net-snmp/library/snmpSocketBaseDomain.h>
- #include <net-snmp/library/tools.h>
-
-+#ifndef NETSNMP_NO_SYSTEMD
-+#include <net-snmp/library/sd-daemon.h>
-+#endif
-+
- #include "inet_ntop.h"
- #include "inet_pton.h"
-
-@@ -190,6 +194,8 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local)
- {
- netsnmp_transport *t = NULL;
- int rc = 0;
-+ char *str = NULL;
-+ int socket_initialized = 0;
-
- #ifdef NETSNMP_NO_LISTEN_SUPPORT
- if (local)
-@@ -217,7 +223,19 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local)
- t->domain_length =
- sizeof(netsnmp_UDPIPv6Domain) / sizeof(netsnmp_UDPIPv6Domain[0]);
-
-- t->sock = socket(PF_INET6, SOCK_DGRAM, 0);
-+#ifndef NETSNMP_NO_SYSTEMD
-+ /*
-+ * Maybe the socket was already provided by systemd...
-+ */
-+ if (local) {
-+ t->sock = netsnmp_sd_find_inet_socket(PF_INET6, SOCK_DGRAM, -1,
-+ ntohs(addr->sin6_port));
-+ if (t->sock)
-+ socket_initialized = 1;
-+ }
-+#endif
-+ if (!socket_initialized)
-+ t->sock = socket(PF_INET6, SOCK_DGRAM, 0);
- if (t->sock < 0) {
- netsnmp_transport_free(t);
- return NULL;
-@@ -243,12 +261,14 @@ netsnmp_udp6_transport(struct sockaddr_in6 *addr, int local)
- }
- #endif
-
-- rc = bind(t->sock, (struct sockaddr *) addr,
-- sizeof(struct sockaddr_in6));
-- if (rc != 0) {
-- netsnmp_socketbase_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
-+ if (!socket_initialized) {
-+ rc = bind(t->sock, (struct sockaddr *) addr,
-+ sizeof(struct sockaddr_in6));
-+ if (rc != 0) {
-+ netsnmp_socketbase_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
- }
- t->local = (unsigned char*)malloc(18);
- if (t->local == NULL) {
-diff --git a/snmplib/transports/snmpUnixDomain.c b/snmplib/transports/snmpUnixDomain.c
-index 47dffc1..8f34c37 100644
---- a/snmplib/transports/snmpUnixDomain.c
-+++ b/snmplib/transports/snmpUnixDomain.c
-@@ -37,6 +37,10 @@
- #include <net-snmp/library/system.h> /* mkdirhier */
- #include <net-snmp/library/tools.h>
-
-+#ifndef NETSNMP_NO_SYSTEMD
-+#include <net-snmp/library/sd-daemon.h>
-+#endif
-+
- netsnmp_feature_child_of(transport_unix_socket_all, transport_all)
- netsnmp_feature_child_of(unix_socket_paths, transport_unix_socket_all)
-
-@@ -295,6 +299,8 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local)
- netsnmp_transport *t = NULL;
- sockaddr_un_pair *sup = NULL;
- int rc = 0;
-+ char *string = NULL;
-+ int socket_initialized = 0;
-
- #ifdef NETSNMP_NO_LISTEN_SUPPORT
- /* SPECIAL CIRCUMSTANCE: We still want AgentX to be able to operate,
-@@ -333,7 +339,18 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local)
- t->data_length = sizeof(sockaddr_un_pair);
- sup = (sockaddr_un_pair *) t->data;
-
-- t->sock = socket(PF_UNIX, SOCK_STREAM, 0);
-+#ifndef NETSNMP_NO_SYSTEMD
-+ /*
-+ * Maybe the socket was already provided by systemd...
-+ */
-+ if (local) {
-+ t->sock = netsnmp_sd_find_unix_socket(SOCK_STREAM, 1, addr->sun_path);
-+ if (t->sock)
-+ socket_initialized = 1;
-+ }
-+#endif
-+ if (!socket_initialized)
-+ t->sock = socket(PF_UNIX, SOCK_STREAM, 0);
- if (t->sock < 0) {
- netsnmp_transport_free(t);
- return NULL;
-@@ -357,25 +374,26 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local)
-
- t->flags |= NETSNMP_TRANSPORT_FLAG_LISTEN;
-
-- unlink(addr->sun_path);
-- rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
--
-- if (rc != 0 && errno == ENOENT && create_path) {
-- rc = mkdirhier(addr->sun_path, create_mode, 1);
-+ if (!socket_initialized) {
-+ unlink(addr->sun_path);
-+ rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
-+ if (rc != 0 && errno == ENOENT && create_path) {
-+ rc = mkdirhier(addr->sun_path, create_mode, 1);
-+ if (rc != 0) {
-+ netsnmp_unix_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
-+ rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
-+ }
- if (rc != 0) {
-+ DEBUGMSGTL(("netsnmp_unix_transport",
-+ "couldn't bind \"%s\", errno %d (%s)\n",
-+ addr->sun_path, errno, strerror(errno)));
- netsnmp_unix_close(t);
- netsnmp_transport_free(t);
- return NULL;
- }
-- rc = bind(t->sock, (struct sockaddr *) addr, SUN_LEN(addr));
-- }
-- if (rc != 0) {
-- DEBUGMSGTL(("netsnmp_unix_transport",
-- "couldn't bind \"%s\", errno %d (%s)\n",
-- addr->sun_path, errno, strerror(errno)));
-- netsnmp_unix_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
- }
-
- /*
-@@ -391,14 +409,16 @@ netsnmp_unix_transport(struct sockaddr_un *addr, int local)
- * Now sit here and listen for connections to arrive.
- */
-
-- rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-- if (rc != 0) {
-- DEBUGMSGTL(("netsnmp_unix_transport",
-- "couldn't listen to \"%s\", errno %d (%s)\n",
-- addr->sun_path, errno, strerror(errno)));
-- netsnmp_unix_close(t);
-- netsnmp_transport_free(t);
-- return NULL;
-+ if (!socket_initialized) {
-+ rc = listen(t->sock, NETSNMP_STREAM_QUEUE_LEN);
-+ if (rc != 0) {
-+ DEBUGMSGTL(("netsnmp_unix_transport",
-+ "couldn't listen to \"%s\", errno %d (%s)\n",
-+ addr->sun_path, errno, strerror(errno)));
-+ netsnmp_unix_close(t);
-+ netsnmp_transport_free(t);
-+ return NULL;
-+ }
- }
-
- } else {
-diff --git a/win32/libsnmp/Makefile.in b/win32/libsnmp/Makefile.in
-index 98d83c8..b228d20 100644
---- a/win32/libsnmp/Makefile.in
-+++ b/win32/libsnmp/Makefile.in
-@@ -42,6 +42,7 @@ LIB32_OBJS= \
- "$(INTDIR)\read_config.obj" \
- "$(INTDIR)\readdir.obj" \
- "$(INTDIR)\scapi.obj" \
-+ "$(INTDIR)\sd-daemon.obj" \
- "$(INTDIR)\snmp-tc.obj" \
- "$(INTDIR)\snmp.obj" \
- "$(INTDIR)\snmpCallbackDomain.obj" \
-@@ -138,6 +139,11 @@ SOURCE=..\..\snmplib\asn1.c
- "$(INTDIR)\asn1.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-+SOURCE=..\..\snmplib\sd-daemon.c
-+
-+"$(INTDIR)\sd-daemon.obj" : $(SOURCE) "$(INTDIR)"
-+ $(CPP) $(CPP_PROJ) $(SOURCE)
-+
-
- SOURCE=..\..\snmplib\callback.c
-
-diff --git a/win32/net-snmp/net-snmp-config.h b/win32/net-snmp/net-snmp-config.h
-index 1608563..7aec547 100644
---- a/win32/net-snmp/net-snmp-config.h
-+++ b/win32/net-snmp/net-snmp-config.h
-@@ -1717,6 +1717,8 @@ enum {
- #define DMALLOC_FUNC_CHECK
- #endif
-
-++#define NETSNMP_NO_SYSTEMD
-++
- /* #undef NETSNMP_ENABLE_LOCAL_SMUX */
-
- /* define if agentx transport is to use domain sockets only */
-diff --git a/win32/net-snmp/net-snmp-config.h.in b/win32/net-snmp/net-snmp-config.h.in
-index 9693730..96ec3d9 100644
---- a/win32/net-snmp/net-snmp-config.h.in
-+++ b/win32/net-snmp/net-snmp-config.h.in
-@@ -1717,6 +1717,8 @@ enum {
- #define DMALLOC_FUNC_CHECK
- #endif
-
-+#define NETSNMP_NO_SYSTEMD
-+
- /* #undef NETSNMP_ENABLE_LOCAL_SMUX */
-
- /* define if agentx transport is to use domain sockets only */
---
-1.8.4.2
-
diff --git a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
deleted file mode 100644
index 5c827bb86a..0000000000
--- a/meta-networking/recipes-protocols/net-snmp/net-snmp_5.7.3.bb
+++ /dev/null
@@ -1,248 +0,0 @@
-SUMMARY = "Various tools relating to the Simple Network Management Protocol"
-HOMEPAGE = "http://www.net-snmp.org/"
-SECTION = "net"
-LICENSE = "BSD"
-
-LIC_FILES_CHKSUM = "file://README;beginline=3;endline=8;md5=7f7f00ba639ac8e8deb5a622ea24634e"
-
-DEPENDS = "openssl libnl pciutils"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/net-snmp/net-snmp-${PV}.zip \
- file://init \
- file://snmpd.conf \
- file://snmptrapd.conf \
- file://systemd-support.patch \
- 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://dont-return-incompletely-parsed-varbinds.patch \
- file://0001-config_os_headers-Error-Fix.patch \
- file://0001-config_os_libs2-Error-Fix.patch \
- file://0001-snmplib-keytools.c-Don-t-check-for-return-from-EVP_M.patch \
- file://net-snmp-agentx-crash.patch \
- file://0001-get_pid_from_inode-Include-limit.h.patch \
- file://0001-BUG-a2584-Fix-snmptrap-to-use-clientaddr-from-snmp.c.patch \
- file://0001-snmplib-UDPIPv6-transport-Add-a-missing-return-state.patch \
- file://0001-configure-fix-check-for-enable-perl-cc-checks.patch \
- file://0002-configure-fix-a-cc-check-issue.patch \
- file://0003-CHANGES-BUG-2712-Fix-Perl-module-compilation.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://0001-Remove-U64-typedef.patch \
- file://fix-openssl-build-errors.patch \
- "
-SRC_URI[md5sum] = "9f682bd70c717efdd9f15b686d07baee"
-SRC_URI[sha256sum] = "e8dfc79b6539b71a6ff335746ce63d2da2239062ad41872fff4354cafed07a3e"
-
-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
-
-EXTRA_OEMAKE = "INSTALL_PREFIX=${D} OTHERLDFLAGS='${LDFLAGS}' HOST_CPPFLAGS='${BUILD_CPPFLAGS}'"
-
-PARALLEL_MAKE = ""
-CCACHE = ""
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[elfutils] = "--with-elf, --without-elf, elfutils"
-PACKAGECONFIG[libnl] = "--with-nl, --without-nl, libnl"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,,"
-
-PACKAGECONFIG[perl] = "--enable-embedded-perl --with-perl-modules=yes, --disable-embedded-perl --with-perl-modules=no,\
- perl, perl perl-lib"
-
-EXTRA_OECONF = "--enable-shared \
- --disable-manuals \
- --with-defaults \
- --with-install-prefix=${D} \
- --with-persistent-directory=${localstatedir}/lib/net-snmp \
- ${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', '--with-endianness=little', '--with-endianness=big', d)} \
-"
-
-# net-snmp needs to have mib-modules=smux enabled to enable quagga to support snmp
-EXTRA_OECONF += "--with-mib-modules=smux"
-
-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 \
-"
-export PERLPROG="${bindir}/env perl"
-PERLPROG_append = "${@bb.utils.contains('PACKAGECONFIG', 'perl', ' -I${WORKDIR}', '', d)}"
-
-HAS_PERL = "${@bb.utils.contains('PACKAGECONFIG', 'perl', '1', '0', d)}"
-
-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() {
- if [ "${HAS_PERL}" = "1" ]; then
- 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" \
- -i ${B}/net-snmp-config
- fi
-}
-
-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@\([^ ]*-fdebug-prefix-map=[^ ]*\)\1*@@g" \
- -e "s@\([^ ]*--sysroot=[^ ]*\)\1*@@g" \
- -e "s@\([^ ]*--with-libtool-sysroot=[^ ]*\)\1*@@g" \
- -e "s@\([^ ]*--with-install-prefix=[^ ]*\)\1*@@g" \
- -i ${D}${bindir}/net-snmp-config
-
- if [ "${HAS_PERL}" = "1" ]; then
- sed -e "s@^NSC_INCLUDEDIR=.*@NSC_INCLUDEDIR=\$\{includedir\}@g" \
- -e "s@^NSC_LIBDIR=-L.*@NSC_LIBDIR=-L\$\{libdir\}@g" \
- -i ${D}${bindir}/net-snmp-config
- 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@-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"
-
-# perl module
-PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'perl', '${PN}-perl-modules', '', d)}"
-
-ALLOW_EMPTY_${PN} = "1"
-ALLOW_EMPTY_${PN}-server = "1"
-
-FILES_${PN}-perl-modules = "${libdir}/perl/*"
-
-FILES_${PN}-libs = "${libdir}/lib*${SOLIBS}"
-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} = ""
-FILES_${PN}-client = "${bindir}/* ${datadir}/snmp/"
-FILES_${PN}-dbg += "${libdir}/.debug/ ${sbindir}/.debug/ ${bindir}/.debug/"
-FILES_${PN}-dev += "${bindir}/mib2c ${bindir}/mib2c-update"
-
-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 ."
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemd', '--without-systemd', d)}"
-
-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"
-RDEPENDS_${PN}-server += "net-snmp-server-snmpd net-snmp-server-snmptrapd"
-RDEPENDS_${PN}-client += "net-snmp-mibs net-snmp-libs"
-RDEPENDS_${PN}-libs += "libpci"
-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"
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
new file mode 100644
index 0000000000..f40fb8bbd6
--- /dev/null
+++ b/meta-networking/recipes-protocols/net-snmp/net-snmp_5.9.3.bb
@@ -0,0 +1,294 @@
+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 \
+ file://0001-Add-noreturn-attribute-to-netsnmp_pci_error.patch \
+ file://CVE-2022-44792-CVE-2022-44793.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/nopoll/nopoll_0.4.2.b297.bb b/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb
deleted file mode 100644
index 1d77891d47..0000000000
--- a/meta-networking/recipes-protocols/nopoll/nopoll_0.4.2.b297.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "OpenSource WebSocket Toolkit"
-DESCRIPTION = "noPoll is a OpenSource WebSocket implementation (RFC 6455), \
-written in ansi C, that allows building pure WebSocket solutions or to \
-provide WebSocket support to existing TCP oriented applications.\
-\
-noPoll provides support for WebSocket (ws://) and TLS (secure) WebSocket (wss://),\
-allowing message based (handler notified) programming or stream oriented access."
-
-HOMEPAGE = "http://www.aspl.es/nopoll/"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f0504124678c1b3158146e0630229298 \
- "
-DEPENDS = "openssl"
-SRC_URI = "http://www.aspl.es/nopoll/downloads/nopoll-${PV}.tar.gz \
- "
-SRC_URI[md5sum] = "8c411cd0f3c0479aed28c4cf7b114fbb"
-SRC_URI[sha256sum] = "f5fbf8aaa16a77b0f265d8c847eb06cb3e68f2b1a50737466dae81181618654c"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--disable-nopoll-doc"
-
-LDFLAGS += "-lpthread"
diff --git a/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb b/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb
new file mode 100644
index 0000000000..816e513a15
--- /dev/null
+++ b/meta-networking/recipes-protocols/nopoll/nopoll_0.4.6.b400.bb
@@ -0,0 +1,23 @@
+SUMMARY = "OpenSource WebSocket Toolkit"
+DESCRIPTION = "noPoll is a OpenSource WebSocket implementation (RFC 6455), \
+written in ansi C, that allows building pure WebSocket solutions or to \
+provide WebSocket support to existing TCP oriented applications.\
+\
+noPoll provides support for WebSocket (ws://) and TLS (secure) WebSocket (wss://),\
+allowing message based (handler notified) programming or stream oriented access."
+
+HOMEPAGE = "http://www.aspl.es/nopoll/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f0504124678c1b3158146e0630229298 \
+ "
+DEPENDS = "openssl"
+SRC_URI = "http://www.aspl.es/nopoll/downloads/nopoll-${PV}.tar.gz \
+ "
+SRC_URI[md5sum] = "8d333f158b5d5a8975a6149e6ef8db63"
+SRC_URI[sha256sum] = "7f1b20f1d0525f30cdd2a4fc386d328b4cf98c6d11cef51fe62cd9491ba19ad9"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += "--disable-nopoll-doc"
+
+LDFLAGS += "-lpthread"
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..a84290218d
--- /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: Pending
+
+ 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.6.bb b/meta-networking/recipes-protocols/opcua/open62541_1.3.6.bb
new file mode 100644
index 0000000000..c7437eb9ed
--- /dev/null
+++ b/meta-networking/recipes-protocols/opcua/open62541_1.3.6.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 = "1b7e2b5d669661c568fda5577ee92011a029cf75"
+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
index cccbfa19a6..7062d21462 100644
--- a/meta-networking/recipes-protocols/openflow/openflow.inc
+++ b/meta-networking/recipes-protocols/openflow/openflow.inc
@@ -7,15 +7,20 @@ control and forwarding planes of a software-defined networking architecture.\
HOMEPAGE = "http://www.openflow.org"
SECTION = "net"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=e870c934e2c3d6ccf085fd7cf0a1e2e2"
-SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git"
+SRC_URI = "git://gitosis.stanford.edu/openflow.git;protocol=git;branch=master"
+
+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"
DEPENDS = "virtual/libc"
-PACKAGECONFIG ??= "openssl"
+PACKAGECONFIG ??= ""
PACKAGECONFIG[openssl] = "--enable-ssl,--disable-ssl, openssl openssl-native, libssl"
EXTRA_OECONF += " \
@@ -27,11 +32,29 @@ S = "${WORKDIR}/git"
inherit autotools-brokensep pkgconfig
-do_configure_prepend() {
+do_configure:prepend() {
./boot.sh
}
-do_install_append() {
+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/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-generate-not-static-get_dh-functions.patch b/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch
new file mode 100644
index 0000000000..4acae80fa7
--- /dev/null
+++ b/meta-networking/recipes-protocols/openflow/openflow/0001-generate-not-static-get_dh-functions.patch
@@ -0,0 +1,33 @@
+From 0fe6770b617af7e400abc6f8652c1417d4c3575e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 8 Sep 2018 22:49:15 -0700
+Subject: [PATCH] generate not static get_dh* functions
+
+Fixes build with OpenSSL 1.1.x
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/automake.mk | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/lib/automake.mk b/lib/automake.mk
+index bfbeb94..b53909a 100644
+--- a/lib/automake.mk
++++ b/lib/automake.mk
+@@ -113,8 +113,9 @@ lib/dhparams.c: lib/dh1024.pem lib/dh2048.pem lib/dh4096.pem
+ (echo '#include "lib/dhparams.h"' && \
+ openssl dhparam -C -in $(srcdir)/lib/dh1024.pem -noout && \
+ openssl dhparam -C -in $(srcdir)/lib/dh2048.pem -noout && \
+- openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) \
+- | sed 's/\(get_dh[0-9]*\)()/\1(void)/' > lib/dhparams.c.tmp
++ openssl dhparam -C -in $(srcdir)/lib/dh4096.pem -noout) | \
++ sed -e 's/\(get_dh[0-9]*\)()/\1(void)/' \
++ -e 's/static DH \*get_dh/DH \*get_dh/' > lib/dhparams.c.tmp
+ mv lib/dhparams.c.tmp lib/dhparams.c
+ endif
+
+--
+2.18.0
+
diff --git a/meta-networking/recipes-protocols/openflow/openflow/0001-socket-util-Include-sys-stat.h-for-fchmod.patch b/meta-networking/recipes-protocols/openflow/openflow/0001-socket-util-Include-sys-stat.h-for-fchmod.patch
new file mode 100644
index 0000000000..97e3422166
--- /dev/null
+++ b/meta-networking/recipes-protocols/openflow/openflow/0001-socket-util-Include-sys-stat.h-for-fchmod.patch
@@ -0,0 +1,23 @@
+From b875c6e264eaf7350ad4e4ebf427692d8fd3cd72 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 12:58:53 -0700
+Subject: [PATCH] socket-util: Include sys/stat.h for fchmod
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/socket-util.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/socket-util.c b/lib/socket-util.c
+index c7b5d6d..5b3d602 100644
+--- a/lib/socket-util.c
++++ b/lib/socket-util.c
+@@ -42,6 +42,7 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <sys/resource.h>
++#include <sys/stat.h>
+ #include <sys/un.h>
+ #include <unistd.h>
+ #include "fatal-signal.h"
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_git.bb b/meta-networking/recipes-protocols/openflow/openflow_git.bb
index eceb45e94f..1ac5dd4105 100644
--- a/meta-networking/recipes-protocols/openflow/openflow_git.bb
+++ b/meta-networking/recipes-protocols/openflow/openflow_git.bb
@@ -3,7 +3,8 @@ include ${BPN}.inc
SRCREV = "c84f33f09d5dbcfc9b489f64cb30475bf36f653a"
PV = "1.0+git${SRCPV}"
-SRC_URI += "\
- file://0001-Check-and-use-strlcpy-from-libc-before-defining-own.patch \
+SRC_URI += "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 \
"
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-l2tp_rpc_server.c-Add-missing-prototype-for-l2tp_api.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_rpc_server.c-Add-missing-prototype-for-l2tp_api.patch
new file mode 100644
index 0000000000..d9aed8804a
--- /dev/null
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-l2tp_rpc_server.c-Add-missing-prototype-for-l2tp_api.patch
@@ -0,0 +1,28 @@
+From ded84ed583e9b0617bc35ab1798032d18b873144 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 23:30:02 -0700
+Subject: [PATCH] l2tp_rpc_server.c: Add missing prototype for
+ l2tp_api_rpc_check_request
+
+Upstream-Status: Inappropriate [no upstream]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile b/Makefile
+index 0815b31..2fa5b2f 100644
+--- a/Makefile
++++ b/Makefile
+@@ -236,6 +236,7 @@ endif
+ -$(RM) $@ $@.tmp
+ $(RPCGEN) $(RPCGENFLAGS) -m -o $@.tmp $<
+ cat $@.tmp | sed -e 's/switch (rqstp->rq_proc) {/if (l2tp_api_rpc_check_request(transp) < 0) return; switch (rqstp->rq_proc) {/' > $@
++ sed -i '21i int l2tp_api_rpc_check_request(SVCXPRT *xprt);' $@
+
+ %_client.c: %.x
+ -$(RM) $@
+--
+2.37.2
+
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-lex-yacc-Add-missing-function-prototypes.patch b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-lex-yacc-Add-missing-function-prototypes.patch
new file mode 100644
index 0000000000..8c21a742e0
--- /dev/null
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/0001-lex-yacc-Add-missing-function-prototypes.patch
@@ -0,0 +1,45 @@
+From 2bfdd02d288de92ff118bf41b54c135a6a318c19 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 23:42:11 -0700
+Subject: [PATCH] lex/yacc: Add missing function prototypes
+
+Fixes build with clang15
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ l2tp_config_parse.y | 3 +++
+ l2tp_config_token.l | 3 +++
+ 2 files changed, 6 insertions(+)
+
+diff --git a/l2tp_config_parse.y b/l2tp_config_parse.y
+index 4baf1e0..15392d0 100644
+--- a/l2tp_config_parse.y
++++ b/l2tp_config_parse.y
+@@ -29,6 +29,9 @@ static struct l2tp_api_session_msg_data session;
+
+ extern void l2tp_log(int level, char *fmt, ...);
+ extern void yyfatal(const char *s);
++extern const char *l2tp_strerror(int error);
++extern int yylex (void);
++extern void yyerror(const char *s);
+
+ %}
+
+diff --git a/l2tp_config_token.l b/l2tp_config_token.l
+index 9016af6..43b8f0a 100644
+--- a/l2tp_config_token.l
++++ b/l2tp_config_token.l
+@@ -15,6 +15,9 @@
+ #include "l2tp_config_types.h"
+ #include "l2tp_config_parse.h"
+
++extern void l2tp_log(int level, char *fmt, ...);
++extern const char *l2tp_strerror(int error);
++
+ void yyfatal(const char *s);
+ void yyerror(const char *s);
+
+--
+2.37.2
+
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 3f8bcaa483..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
@@ -4,7 +4,12 @@ Date: Tue, 28 Mar 2017 18:09:58 -0700
Subject: [PATCH 2/2] user ipv6 structures
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(-)
@@ -18,8 +23,8 @@ index 9d6f60a..f0946fd 100644
if ((!l2tp_opt_remote_rpc) &&
- ((xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_LOOPBACK)) &&
- (xprt->xp_raddr.sin_addr.s_addr != htonl(INADDR_ANY)))) {
-+ ((xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_LOOPBACK)) &&
-+ (xprt->xp_raddr.sin6_addr.s6_addr != htonl(INADDR_ANY)))) {
++ ((memcmp(&xprt->xp_raddr.sin6_addr, &in6addr_loopback, sizeof(struct in6_addr)) != 0) &&
++ (memcmp(&xprt->xp_raddr.sin6_addr, &in6addr_any, sizeof(struct in6_addr)) != 0))) {
+ char straddr[INET6_ADDRSTRLEN];
+ inet_ntop(AF_INET6, &xprt->xp_raddr.sin6_addr, straddr, sizeof(straddr));
if (l2tp_opt_trace_flags & L2TP_DEBUG_API) {
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/openl2tp/openl2tp/openl2tpd.service b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service
index 7b3faf6725..d02d0ff7ec 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp/openl2tpd.service
@@ -5,7 +5,7 @@ Requires=rpcbind.service
[Service]
Type=forking
-PIDFile=@STATEDIR@/run/openl2tpd.pid
+PIDFile=/run/openl2tpd.pid
EnvironmentFile=@SYSCONFDIR@/default/openl2tpd
ExecStartPre=@BASE_BINDIR@/sh -c "@BASE_SBINDIR@/modprobe -sq l2tp_ppp || @BASE_SBINDIR@/modprobe -sq pppol2tp"
ExecStart=@SBINDIR@/openl2tpd $OPENL2TPDARGS
diff --git a/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb b/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
index e51a101a0d..183c0066df 100644
--- a/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
+++ b/meta-networking/recipes-protocols/openl2tp/openl2tp_1.8.bb
@@ -9,16 +9,16 @@ HOMEPAGE = "http://www.openl2tp.org/"
SECTION = "net"
# cli and usl use license LGPL-2.1
-LICENSE = "GPL-2.0 & LGPL-2.1"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=e9d9259cbbf00945adc25a470c1d3585 \
file://LICENSE;md5=f8970abd5ea9be701a0deedf5afd77a5 \
file://cli/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \
file://usl/LICENSE;md5=9c1387a3c5213aa40671438af3e00793 \
"
-DEPENDS = "popt flex readline rpcsvc-proto-native"
+DEPENDS = "popt flex readline rpcsvc-proto-native bison-native"
-SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BP}.tar.gz \
file://Makefile-modify-CFLAGS-to-aviod-build-error.patch \
file://openl2tp-simplify-gcc-warning-hack.patch \
file://Makefile-obey-LDFLAGS.patch \
@@ -35,13 +35,15 @@ SRC_URI = "ftp://ftp.openl2tp.org/releases/${BP}/${BP}.tar.gz \
file://run-ptest \
file://fix_linux_4.15_compile.patch \
file://0002-user-ipv6-structures.patch \
+ file://0001-l2tp_rpc_server.c-Add-missing-prototype-for-l2tp_api.patch \
+ file://0001-lex-yacc-Add-missing-function-prototypes.patch \
"
SRC_URI[md5sum] = "e3d08dedfb9e6a9a1e24f6766f6dadd0"
SRC_URI[sha256sum] = "1c97704d4b963a87fbc0e741668d4530933991515ae9ab0dffd11b5444f4860f"
inherit autotools-brokensep pkgconfig systemd ptest
-SYSTEMD_SERVICE_${PN} = "openl2tpd.service"
+SYSTEMD_SERVICE:${PN} = "openl2tpd.service"
SYSTEMD_AUTO_ENABLE = "disable"
DEPENDS += "libtirpc"
@@ -52,7 +54,7 @@ LDFLAGS += "-ltirpc"
PARALLEL_MAKE = ""
EXTRA_OEMAKE = 'CFLAGS="${CFLAGS} -Wno-unused-but-set-variable" CPPFLAGS="${CPPFLAGS}" OPT_CFLAGS="${CFLAGS}"'
-do_compile_prepend() {
+do_compile:prepend() {
sed -i -e "s:SYS_LIBDIR=.*:SYS_LIBDIR=${libdir}:g" \
-e 's:$(CROSS_COMPILE)as:${AS}:g' \
-e 's:$(CROSS_COMPILE)ld:${LD}:g' \
@@ -65,7 +67,7 @@ do_compile_prepend() {
${S}/Makefile
}
-do_install_append () {
+do_install:append () {
install -d ${D}${sysconfdir}/init.d
install -d ${D}${sysconfdir}/default
install -m 0755 ${S}/etc/rc.d/init.d/openl2tpd ${D}${sysconfdir}/init.d/openl2tpd
@@ -91,4 +93,4 @@ do_install_ptest () {
done
}
-RDEPENDS_${PN} = "ppp ppp-l2tp bash"
+RDEPENDS:${PN} = "ppp ppp-l2tp bash"
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
new file mode 100644
index 0000000000..04ceb6b572
--- /dev/null
+++ b/meta-networking/recipes-protocols/openlldp/files/0001-Fix-musl-libc-build-issue.patch
@@ -0,0 +1,28 @@
+From a64e52f9b58519aa2b8a1073fa6c04da04933428 Mon Sep 17 00:00:00 2001
+From: Jonathan Richardson <jonathan.richardson@broadcom.com>
+Date: Wed, 26 Feb 2020 12:16:38 -0800
+Subject: [PATCH] Fix musl libc build issue
+
+clif.h should include sys/types.h for the definition of pid_t. It fails
+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/include/clif.h b/include/clif.h
+index 648eedf..92f4fd8 100644
+--- a/include/clif.h
++++ b/include/clif.h
+@@ -32,6 +32,7 @@
+ #ifndef CLIF_H
+ #define CLIF_H
+
++#include <sys/types.h>
+ #include <sys/un.h>
+ #include "clif_sock.h"
+
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
new file mode 100644
index 0000000000..f1a3ac3ad2
--- /dev/null
+++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-include-path-to-generated-version.h.patch
@@ -0,0 +1,31 @@
+From eb14aa66dc0384071af401cced8c02993b55502e Mon Sep 17 00:00:00 2001
+From: Jonathan Richardson <jonathan.richardson@broadcom.com>
+Date: Wed, 26 Feb 2020 15:54:51 -0800
+Subject: [PATCH] autotools: Add include path to generated version.h
+
+When the build dir isn't the same as source dir it fails to compile
+because the generated version.h from AC_CONFIG_FILES is always in build
+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/Makefile.am b/Makefile.am
+index 0fb9bb0..2952019 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -14,6 +14,9 @@ endif
+ AM_CPPFLAGS = -I${srcdir}/include -DSYSCONFDIR="\"${sysconfdir}\"" \
+ -D_FORTIFY_SOURCE=2
+
++# Required for the generated version.h when build dir is not the same as srcdir.
++AM_CPPFLAGS += -I${top_builddir}/include
++
+ ACLOCAL_AMFLAGS = -I m4
+
+ parse_cli.o: CFLAGS+=-U_FORTIFY_SOURCE -Wno-error
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
new file mode 100644
index 0000000000..98ecd38642
--- /dev/null
+++ b/meta-networking/recipes-protocols/openlldp/files/0001-autotools-Add-option-to-disable-installation-of-syst.patch
@@ -0,0 +1,59 @@
+From dc3f2250908587710f109c80ddf8a94f0bc40b82 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
+ files
+
+Add option to configure.ac to enable or disable install of systemd conf
+files. If --with-systemdsystemunitdir is passed to configure then the
+files will be installed to the provided directory. If the option isn't
+provided then the value is determined from the systemd pkgconfig file,
+if found in PKG_CONFIG_PATH.
+
+This change is required because Makefile.am always installed the files
+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
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -138,8 +138,9 @@ install-data-hook: installdirs-local
+ pkgconfigdir = ${libdir}/pkgconfig
+ pkgconfig_DATA = lldpad.pc liblldp_clif.pc
+
+-systemdsystemunitdir = $(prefix)/lib/systemd/system
++if HAVE_SYSTEMD
+ dist_systemdsystemunit_DATA = lldpad.service lldpad.socket
++endif
+
+ 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
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,6 +95,15 @@ AC_TYPE_UINT16_T
+ AC_TYPE_UINT32_T
+ AC_TYPE_UINT8_T
+
++# Support for systemd unit files.
++AC_ARG_WITH([systemdsystemunitdir],
++ AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
++ [], [with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
++if test "x$with_systemdsystemunitdir" != xno; then
++ AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])
++fi
++AM_CONDITIONAL(HAVE_SYSTEMD, [test -n "$with_systemdsystemunitdir" -a "x$with_systemdsystemunitdir" != xno ])
++
+ AC_CONFIG_FILES([Makefile include/version.h lldpad.spec lldpad.pc liblldp_clif.pc])
+ AC_CONFIG_MACRO_DIR([m4])
+ AC_OUTPUT
diff --git a/meta-networking/recipes-protocols/openlldp/files/0004-clif-Include-string.h-for-mem-function-prototypes.patch b/meta-networking/recipes-protocols/openlldp/files/0004-clif-Include-string.h-for-mem-function-prototypes.patch
new file mode 100644
index 0000000000..b6d9cf7707
--- /dev/null
+++ b/meta-networking/recipes-protocols/openlldp/files/0004-clif-Include-string.h-for-mem-function-prototypes.patch
@@ -0,0 +1,23 @@
+From d88aae2230683517b6d5b62cced51da81317a722 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 22:37:14 -0700
+Subject: [PATCH] clif: Include string.h for mem* function prototypes
+
+Upstream-Status: Submitted [https://github.com/intel/openlldp/pull/86]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ clif.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/clif.c b/clif.c
+index cad6f75..0758a7e 100644
+--- a/clif.c
++++ b/clif.c
+@@ -32,6 +32,7 @@
+
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
diff --git a/meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.bb b/meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.bb
new file mode 100644
index 0000000000..812f4fbcf0
--- /dev/null
+++ b/meta-networking/recipes-protocols/openlldp/openlldp_1.1.0.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 = "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/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch b/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch
deleted file mode 100644
index 804bf12349..0000000000
--- a/meta-networking/recipes-protocols/pptp-linux/pptp-linux/0001-include-missing-sys-types.h.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f6c4d2468ae0dadd2f35680d61b98b2a59077328 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 7 Jul 2017 10:31:03 -0700
-Subject: [PATCH] include missing sys/types.h
-
-Fixes errors seen on musl
-pqueue.h:21:3: error: unknown type name 'u_int32_t'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- pqueue.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/pqueue.h b/pqueue.h
-index c37ba7b..ae4cc6a 100644
---- a/pqueue.h
-+++ b/pqueue.h
-@@ -3,6 +3,7 @@
-
- #include <time.h>
- #include <sys/time.h>
-+#include <sys/types.h>
-
- /* wait this many seconds for missing packets before forgetting about them */
- #define DEFAULT_PACKET_TIMEOUT 0.3
---
-2.13.2
-
diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb
new file mode 100644
index 0000000000..0d26c338b9
--- /dev/null
+++ b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.10.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Client for Microsoft PPTP VPNs"
+DESCRIPTION = "PPTP Client is a Linux, FreeBSD, NetBSD \
+ and OpenBSD client for the proprietary Microsoft Point-to-Point \
+ Tunneling Protocol, PPTP. Allows connection to a PPTP based \
+ Virtual Private Network (VPN) as used by employers and some \
+ cable and ADSL internet service providers."
+HOMEPAGE = "http://pptpclient.sourceforge.net"
+SECTION = "net"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit perlnative
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \
+ file://options.pptp \
+ "
+
+SRC_URI[md5sum] = "8d25341352fdae5ad5b36b9f18254908"
+SRC_URI[sha256sum] = "82492db8e487ce73b182ee7f444251d20c44f5c26d6e96c553ec7093aefb5af4"
+
+S = "${WORKDIR}/pptp-${PV}"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+do_install() {
+ install -d ${D}${sbindir} ${D}${sysconfdir}/ppp ${D}${mandir}/man8
+ install -m 555 pptp ${D}${sbindir}
+ install -m 644 pptp.8 ${D}${mandir}/man8
+ install -m 644 ${WORKDIR}/options.pptp ${D}${sysconfdir}/ppp
+}
+
+RDEPENDS:${PN} = "ppp"
diff --git a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb b/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb
deleted file mode 100644
index 10c9170fb1..0000000000
--- a/meta-networking/recipes-protocols/pptp-linux/pptp-linux_1.9.0.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Client for Microsoft PPTP VPNs"
-DESCRIPTION = "PPTP Client is a Linux, FreeBSD, NetBSD \
- and OpenBSD client for the proprietary Microsoft Point-to-Point \
- Tunneling Protocol, PPTP. Allows connection to a PPTP based \
- Virtual Private Network (VPN) as used by employers and some \
- cable and ADSL internet service providers."
-HOMEPAGE = "http://pptpclient.sourceforge.net"
-SECTION = "net"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/sourceforge/pptpclient/pptp-${PV}.tar.gz \
- file://options.pptp \
- file://0001-include-missing-sys-types.h.patch \
- "
-
-SRC_URI[md5sum] = "b2117b377f65294a9786f80f0235d308"
-SRC_URI[sha256sum] = "0b1e8cbfc578d3f5ab12ee87c5c2c60419abfe9cc445690a8a19c320b11c9201"
-
-S = "${WORKDIR}/pptp-${PV}"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-do_install() {
- install -d ${D}${sbindir} ${D}${sysconfdir}/ppp ${D}${mandir}/man8
- install -m 555 pptp ${D}${sbindir}
- install -m 644 pptp.8 ${D}${mandir}/man8
- install -m 644 ${WORKDIR}/options.pptp ${D}${sysconfdir}/ppp
-}
-
-RDEPENDS_${PN} = "ppp"
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 76f9f61e73..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/bgpd.service
+++ /dev/null
@@ -1,16 +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
-PIDFile=@localstatedir@/run/quagga/bgpd.pid
-ExecStart=@SBINDIR@/bgpd -d $bgpd_options -f @SYSCONFDIR@/quagga/bgpd.conf
-ExecStopPost=@base_bindir@/rm -rf @localstatedir@/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 a2e493b423..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ospf6d.service
+++ /dev/null
@@ -1,16 +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
-PIDFile=@localstatedir@/run/quagga/ospf6d.pid
-ExecStart=@SBINDIR@/ospf6d -d $ospf6d_options -f @SYSCONFDIR@/quagga/ospf6d.conf
-ExecStopPost=@base_bindir@/rm -rf @localstatedir@/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 0c62cbce58..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ospfd.service
+++ /dev/null
@@ -1,16 +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
-PIDFile=@localstatedir@/run/quagga/ospfd.pid
-ExecStart=@SBINDIR@/ospfd -d $ospfd_options -f @SYSCONFDIR@/quagga/ospfd.conf
-ExecStopPost=@base_bindir@/rm -rf @localstatedir@/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 1d20389e8b..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ripd.service
+++ /dev/null
@@ -1,16 +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
-PIDFile=@localstatedir@/run/quagga/ripd.pid
-ExecStart=@SBINDIR@/ripd -d $ripd_options -f @SYSCONFDIR@/quagga/ripd.conf
-ExecStopPost=@base_bindir@/rm -rf @localstatedir@/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 0355ad12a4..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/ripngd.service
+++ /dev/null
@@ -1,16 +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
-PIDFile=@localstatedir@/run/quagga/ripngd.pid
-ExecStart=@SBINDIR@/ripngd -d $ripngd_options -f @SYSCONFDIR@/quagga/ripngd.conf
-ExecStopPost=@base_bindir@/rm -rf @localstatedir@/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 e4fb6c808d..0000000000
--- a/meta-networking/recipes-protocols/quagga/files/zebra.service
+++ /dev/null
@@ -1,17 +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
-PIDFile=@localstatedir@/run/quagga/zebra.pid
-ExecStartPre=@BASE_SBINDIR@/ip route flush proto zebra
-ExecStart=@SBINDIR@/zebra -d $zebra_options -f @SYSCONFDIR@/quagga/zebra.conf
-ExecStopPost=@base_bindir@/rm -rf @localstatedir@/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 dfd6aa7eb1..0000000000
--- a/meta-networking/recipes-protocols/quagga/quagga.inc
+++ /dev/null
@@ -1,232 +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 & LGPL-2.0"
-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 = "${SAVANNAH_GNU_MIRROR}/quagga/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
-
-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/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/volatiles.03_quagga
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${sbindir}:${base_bindir}:${bindir}!' ${D}${sysconfdir}/init.d/*
-
- # 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}${sysconfdir}/tmpfiles.d
- echo "d /var/run/quagga 0755 quagga quagga -" \
- > ${D}${sysconfdir}/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"
-
-# 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
-}
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 a7697a1ae9..0000000000
--- a/meta-networking/recipes-protocols/quagga/quagga_1.2.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require quagga.inc
-
-SRC_URI[md5sum] = "eced21b054d71c9e1b7c6ac43286a166"
-SRC_URI[sha256sum] = "e364c082c3309910e1eb7b068bf39ee298e2f2f3f31a6431a5c115193bd653d3"
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 95faa65b1e..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,25 +5,26 @@ 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"
+LICENSE = "BSD-3-Clause & BSD-2-Clause & HPND"
LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3e47566c9271b786693d8a08792dbf41"
inherit autotools-brokensep
+DEPENDS += "virtual/crypt"
+
EXTRA_OECONF += "--disable-static"
-do_configure_prepend () {
+do_configure:prepend () {
export CONFIG_SITE=./config-site.${P}
}
-do_compile_prepend() {
+do_compile:prepend() {
for m in `find . -name "Makefile"` ; do
sed -i -e 's:^program_transform_name =.*:program_transform_name =:g' ${m}
done
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.in-Error-fix.patch
deleted file mode 100644
index bbd516fde9..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/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-3.12/configure.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch
deleted file mode 100644
index be892803e6..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/configure.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From c96dda04ec024bdef2a15d374e5f8242e041cad4 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Fri, 18 Jul 2014 08:25:16 +0000
-
----
- configure.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index ac1a7e4..11b9f31 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1,4 +1,4 @@
--AC_INIT(src/pppoe.c)
--AM_INIT_AUTOMAKE([rp-pppoe], [3.8])
-+AC_INIT([rp-pppoe], [3.8])
-+AM_INIT_AUTOMAKE([foreign])
- AC_CONFIG_SUBDIRS(src)
- AC_OUTPUT(Makefile)
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/dont-swallow-errors.patch
deleted file mode 100644
index 8a857888b3..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/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.12/pppoe-src-restrictions.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch
deleted file mode 100644
index 03697ff1f6..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-src-restrictions.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From a6a85ec5c85cbd3c86743b6e2fa391198869bff8 Mon Sep 17 00:00:00 2001
-From: Tom Rini <tom_rini@mentor.com>
-Date: Wed, 27 Jul 2011 03:46:52 +0000
-Subject: [PATCH] rp-pppoe: Port from oe.dev
-
-Relax restrictions on the PPPoE src address, as per debian bug
-293811:
-
- http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=293811
-
-Upstream-Status: Inappropriate [Backport from Debian]
-
----
- src/discovery.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/discovery.c b/src/discovery.c
-index 7ee259d..5213a37 100644
---- a/src/discovery.c
-+++ b/src/discovery.c
-@@ -472,8 +472,8 @@ waitForPADO(PPPoEConnection *conn, int timeout)
- if (!packetIsForMe(conn, &packet)) continue;
-
- if (packet.code == CODE_PADO) {
-- if (NOT_UNICAST(packet.ethHdr.h_source)) {
-- printErr("Ignoring PADO packet from non-unicast MAC address");
-+ if (BROADCAST(packet.ethHdr.h_source)) {
-+ printErr("Ignoring broadcast PADO packet");
- continue;
- }
- #ifdef PLUGIN
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/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-3.12/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-3.12/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-3.12/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.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch
new file mode 100644
index 0000000000..c486716b97
--- /dev/null
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/configure.patch
@@ -0,0 +1,21 @@
+From c96dda04ec024bdef2a15d374e5f8242e041cad4 Mon Sep 17 00:00:00 2001
+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/configure.in b/configure.in
+index ac1a7e4..11b9f31 100644
+--- a/configure.in
++++ b/configure.in
+@@ -1,4 +1,4 @@
+-AC_INIT(src/pppoe.c)
+-AM_INIT_AUTOMAKE([rp-pppoe], [3.8])
++AC_INIT([rp-pppoe], [3.8])
++AM_INIT_AUTOMAKE([foreign])
+ AC_CONFIG_SUBDIRS(src)
+ AC_OUTPUT(Makefile)
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/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-3.12/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-3.12/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-3.12/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-3.12/pppoe-server.default b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.default
index 996d57f3cf..996d57f3cf 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.default
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.default
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.init
index 21afe0be39..21afe0be39 100755
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.init
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.init
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.service
index 41e0b9e851..41e0b9e851 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/pppoe-server.service
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/pppoe-server.service
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/top-autoconf.patch
index f64da4fa2f..f64da4fa2f 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/top-autoconf.patch
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/top-autoconf.patch
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/update-config.patch
index c759e09aa0..c759e09aa0 100644
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe-3.12/update-config.patch
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe/update-config.patch
diff --git a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb
deleted file mode 100644
index fbe015f5e8..0000000000
--- a/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.12.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "A user-mode PPPoE client and server suite for Linux"
-HOMEPAGE = "http://www.roaringpenguin.com/products/pppoe"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=a194eaefae2be54ee3221339b10d0581"
-
-PR = "r10"
-
-SRC_URI = "http://www.roaringpenguin.com/files/download/${BP}.tar.gz \
- file://top-autoconf.patch \
- file://configure_in_cross.patch \
- file://pppoe-src-restrictions.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] = "216eb52b69062b92a64ee37fd71f4b66"
-SRC_URI[sha256sum] = "00794e04031546b0e9b8cf286f2a6d1ccfc4a621b2a3abb2d7ef2a7ab7cc86c2"
-
-inherit autotools-brokensep update-rc.d systemd
-
-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..c19f7d847f
--- /dev/null
+++ b/meta-networking/recipes-protocols/rp-pppoe/rp-pppoe_3.15.bb
@@ -0,0 +1,78 @@
+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 = "r11"
+
+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/tsocks/tsocks_1.8beta5.bb b/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb
index b2757f6ddc..8099fa5c6e 100644
--- a/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb
+++ b/meta-networking/recipes-protocols/tsocks/tsocks_1.8beta5.bb
@@ -6,7 +6,7 @@ make to establish network connections and negotating them through a \
SOCKS server as necessary."
HOMEPAGE = "http://sourceforge.net/projects/tsocks/"
SECTION = "net"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760"
SRC_URI = "http://downloads.sourceforge.net/tsocks/tsocks-${PV}.tar.gz \
@@ -18,11 +18,14 @@ SRC_URI[sha256sum] = "849d7ef5af80d03e76cc05ed9fb8fa2bcc2b724b51ebfd1b6be11c7863
inherit autotools-brokensep
+LIBS:append:libc-musl = " -lssp_nonshared"
+LIBS:append:libc-glibc = " -lc_nonshared"
+
S = "${WORKDIR}/tsocks-1.8"
-FILES_${PN} = "${libdir}/* ${bindir}/tsocks"
-FILES_${PN}-dev = ""
-INSANE_SKIP_${PN} = "dev-so"
+FILES:${PN} = "${libdir}/* ${bindir}/tsocks"
+FILES:${PN}-dev = ""
+INSANE_SKIP:${PN} = "dev-so"
-EXTRA_OEMAKE = "SHCC='${CC} -fPIC ${LDFLAGS}'"
+EXTRA_OEMAKE = "SHCC='${CC} -fPIC ${LDFLAGS}' LIBS='${LIBS}'"
diff --git a/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch b/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch
deleted file mode 100644
index b932ebbb4f..0000000000
--- a/meta-networking/recipes-protocols/usrsctp/usrsctp/0001-Use-foreign-switch-for-automake.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 748bc693cf24baf42e459e12f152349e392b6737 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 20 Dec 2016 21:32:11 -0800
-Subject: [PATCH] Use foreign switch for automake
-
-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/configure.ac b/configure.ac
-index 64cc9994..19ccd4a3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -29,7 +29,7 @@ dnl SUCH DAMAGE.
- dnl
-
- AC_INIT([libusrsctp], [0.9.3.0])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
-
- AC_PROG_CC
- AC_PROG_LIBTOOL
---
-2.11.0
-
diff --git a/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb b/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
index 3ec746684b..dcfa7406d2 100644
--- a/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
+++ b/meta-networking/recipes-protocols/usrsctp/usrsctp_git.bb
@@ -2,13 +2,14 @@ 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 = "dbfc1b8c4cf1a46a4d8987ba542d5ff06bdaf14c"
+SRCREV = "a10cd498d964508c0e6ec6bd2be9dd4afcbb4d86"
SRC_URI = "git://github.com/sctplab/usrsctp;protocol=https;branch=master \
- file://0001-Use-foreign-switch-for-automake.patch \
"
S = "${WORKDIR}/git"
+UPSTREAM_CHECK_COMMITS = "1"
+
inherit autotools pkgconfig
DEPENDS += "openssl"
@@ -22,3 +23,5 @@ PACKAGECONFIG[inet] = "--enable-inet,--disable-inet,"
PACKAGECONFIG[inet6] = "--enable-inet6,--disable-inet6,"
EXTRA_OECONF += "--disable-debug"
+
+CVE_VERSION = "0.9.3.0"
diff --git a/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc b/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc
deleted file mode 100644
index d037c7cfc6..0000000000
--- a/meta-networking/recipes-protocols/xl2tpd/xl2tpd.inc
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Xelerance version of the Layer 2 Tunneling Protocol (L2TP) daemon"
-HOMEPAGE = "http://www.xelerance.com/software/xl2tpd/"
-SECTION = "net"
-DEPENDS = "ppp virtual/kernel"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "git://github.com/xelerance/xl2tpd.git \
-"
-
-S = "${WORKDIR}/git"
-
-inherit update-rc.d
-
-do_compile () {
- oe_runmake CFLAGS="${CFLAGS} -DLINUX" LDFLAGS="${LDFLAGS}" PREFIX="${prefix}" KERNELSRC=${STAGING_KERNEL_DIR} all
-}
-
-do_install () {
- oe_runmake PREFIX="${D}${prefix}" install
-
- install -d ${D}${sysconfdir}/init.d
- touch ${D}${sysconfdir}/xl2tpd.conf
- install -m 0755 debian/xl2tpd.init ${D}${sysconfdir}/init.d/xl2tpd
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/xl2tpd
-
- install -d ${D}${sysconfdir}/default
- install -m 0644 debian/xl2tpd.default ${D}${sysconfdir}/default/xl2tpd
-}
-
-CONFFILES_${PN} += "${sysconfdir}/xl2tpd.conf ${sysconfdir}/default/xl2tpd"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME_${PN} = "xl2tpd"
-
diff --git a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.16.bb b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.16.bb
new file mode 100644
index 0000000000..08bab4a338
--- /dev/null
+++ b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.16.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Xelerance version of the Layer 2 Tunneling Protocol (L2TP) daemon"
+HOMEPAGE = "http://www.xelerance.com/software/xl2tpd/"
+SECTION = "net"
+DEPENDS = "ppp virtual/kernel"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://github.com/xelerance/xl2tpd.git;branch=master;protocol=https"
+SRCREV = "1ef2a025981223c1e16fc833bef226c86ff8c295"
+
+UPSTREAM_CHECK_URI = "https://github.com/xelerance/xl2tpd/releases"
+
+S = "${WORKDIR}/git"
+
+inherit update-rc.d
+
+do_compile () {
+ oe_runmake CFLAGS="${CFLAGS} -DLINUX" LDFLAGS="${LDFLAGS}" PREFIX="${prefix}" KERNELSRC=${STAGING_KERNEL_DIR} all
+}
+
+do_install () {
+ oe_runmake PREFIX="${D}${prefix}" install
+
+ install -d ${D}${sysconfdir}/init.d
+ touch ${D}${sysconfdir}/xl2tpd.conf
+ install -m 0755 debian/xl2tpd.init ${D}${sysconfdir}/init.d/xl2tpd
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
+ sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/xl2tpd
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/xl2tpd
+
+ install -d ${D}${sysconfdir}/default
+ install -m 0644 debian/xl2tpd.default ${D}${sysconfdir}/default/xl2tpd
+}
+
+CONFFILES:${PN} += "${sysconfdir}/xl2tpd.conf ${sysconfdir}/default/xl2tpd"
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME:${PN} = "xl2tpd"
diff --git a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb
deleted file mode 100644
index df2ec52c65..0000000000
--- a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_1.3.6.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require xl2tpd.inc
-
-# The SRCREV corresponds to v1.3.6.
-# Adding tag=v1.3.6 to the SRC_URI will force access to the upstream repo.
-#
-SRCREV = "5619e1771048e74b729804e8602f409af0f3faea"
-
diff --git a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb b/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb
deleted file mode 100644
index 88ae5d6f8b..0000000000
--- a/meta-networking/recipes-protocols/xl2tpd/xl2tpd_git.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require xl2tpd.inc
-
-# This is v1.3.6 plus some commits. There is no tag for this commit.
-#
-PV = "1.3.9+git${SRCPV}"
-
-SRCREV = "f114c10ac532051badeca0132b144a2f1596f047"
-
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 753d832982..0b9e05b324 100644
--- a/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
+++ b/meta-networking/recipes-protocols/zeroconf/zeroconf_0.9.bb
@@ -9,7 +9,7 @@ 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 = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4 \
file://zeroconf.c;beginline=1;endline=13;md5=a5bada96e1e34b08eb7446b28e2630b2"
SECTION = "net"
@@ -27,6 +27,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
new file mode 100644
index 0000000000..34d59b1aa6
--- /dev/null
+++ b/meta-networking/recipes-support/aoetools/aoetools/reproducible-build.patch
@@ -0,0 +1,14 @@
+Upstream-Status: Pending
+
+--- a/Makefile
++++ b/Makefile
+@@ -40,7 +40,8 @@ NPERSHELF=16
+ CONF_SCRIPTS = aoe-discover aoe-interfaces aoe-mkshelf aoe-revalidate aoe-flush aoe-stat
+ PROGS = aoeping aoecfg aoe-sancheck
+ COMMANDS := ${CONF_SCRIPTS} aoe-mkdevs aoe-version coraid-update ${PROGS}
+-CFLAGS = -Wall -O -g
++# We could still override this on the command line.
++CFLAGS += -Wall -O -g
+ SANCHECKLIBS = -lpthread
+
+ AOE_PING_OBJ = aoeping.o linux.o
diff --git a/meta-networking/recipes-support/aoetools/aoetools_36.bb b/meta-networking/recipes-support/aoetools/aoetools_36.bb
index 9b73b442ab..9c9e5ca7ad 100644
--- a/meta-networking/recipes-support/aoetools/aoetools_36.bb
+++ b/meta-networking/recipes-support/aoetools/aoetools_36.bb
@@ -6,13 +6,14 @@ The vblade program (storage target) exports a blockdevice using AoE. \
"
HOMEPAGE = "http://sourceforge.net/projects/${BPN}"
SECTION = "admin"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-RRECOMMENDS_${PN} = "kernel-module-aoe"
+RRECOMMENDS:${PN} = "kernel-module-aoe"
SRC_URI = "http://sourceforge.net/projects/${BPN}/files/${BPN}/${BPN}-${PV}.tar.gz \
file://aoe-stat-no-bashism.patch \
file://makefile-add-ldflags.patch \
+ file://reproducible-build.patch \
"
SRC_URI[md5sum] = "bff30daa988a65f69d4448ce4726a6db"
SRC_URI[sha256sum] = "fb5e2cd0de7644cc1ec04ee3aeb43211cf7445a0c19e13d6b3ed5a8fbdf215ff"
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 e8be45e6b6..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,24 +8,19 @@ which OE uses to pass tweaks
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- Makefile | 15 +++++++--------
- extensions/Makefile | 5 ++++-
- 2 files changed, 11 insertions(+), 9 deletions(-)
+Upstream-Status: Pending
+
+ Makefile | 10 ++++------
+ extensions/Makefile | 4 ++++
+ 2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile
-index 7bead0d..336db6b 100644
+index 62ebdf2..cd06813 100644
--- a/Makefile
+++ b/Makefile
-@@ -7,15 +7,13 @@ LIBDIR:=$(PREFIX)/lib
- BINDIR:=$(PREFIX)/sbin
- MANDIR:=$(PREFIX)/man
- man8dir=$(MANDIR)/man8
--INITDIR:=/etc/rc.d/init.d
-+INITDIR:=/etc/init.d
- SYSCONFIGDIR:=/etc/sysconfig
- DESTDIR:=
+@@ -12,9 +12,7 @@ DESTDIR:=
- MANS = arptables.8 arptables-save.8 arptables-restore.8
+ MANS = arptables-legacy.8 arptables-save.8 arptables-restore.8
-COPT_FLAGS:=-O2
-CFLAGS:=$(COPT_FLAGS) -Wall -Wunused -I$(KERNEL_DIR)/include/ -Iinclude/ -DARPTABLES_VERSION=\"$(ARPTABLES_VERSION)\" #-g -DDEBUG #-pg # -DARPTC_DEBUG
@@ -34,8 +29,8 @@ index 7bead0d..336db6b 100644
ifndef ARPT_LIBDIR
ARPT_LIBDIR:=$(LIBDIR)/arptables
endif
-@@ -25,13 +23,13 @@ include extensions/Makefile
- all: arptables libarptc/libarptc.a
+@@ -24,13 +22,13 @@ include extensions/Makefile
+ all: arptables-legacy libarptc/libarptc.a
arptables.o: arptables.c
- $(CC) $(CFLAGS) -c -o $@ $<
@@ -51,29 +46,18 @@ index 7bead0d..336db6b 100644
libarptc/libarptc.a: libarptc/libarptc.o
$(AR) rcs $@ $<
-@@ -53,7 +51,8 @@ scripts: arptables-save arptables-restore arptables.sysv
- install -m 0755 arptables-restore_ $(DESTDIR)$(BINDIR)/arptables-restore
- cat arptables.sysv | sed 's/__EXEC_PATH__/$(tmp1)/g' | sed 's/__SYSCONFIG__/$(tmp2)/g' > arptables.sysv_
- if [ "$(DESTDIR)" != "" ]; then mkdir -p $(DESTDIR)$(INITDIR); fi
-- if test -d $(DESTDIR)$(INITDIR); then install -m 0755 arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables; fi
-+ install -d $(DESTDIR)$(INITDIR)
-+ install -m 0755 arptables.sysv_ $(DESTDIR)$(INITDIR)/arptables
- rm -f arptables-save_ arptables-restore_ arptables.sysv_
-
- .PHONY: install-man
diff --git a/extensions/Makefile b/extensions/Makefile
-index 0189cc9..b046425 100644
+index 0189cc9..e8af782 100644
--- a/extensions/Makefile
+++ b/extensions/Makefile
-@@ -4,4 +4,7 @@ EXT_FUNC+=standard mangle CLASSIFY MARK
- EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o)
+@@ -5,3 +5,7 @@ EXT_OBJS+=$(foreach T,$(EXT_FUNC), extensions/arpt_$(T).o)
extensions/ebt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h
-- $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $<
+ $(CC) $(CFLAGS) $(PROGSPECS) -c -o $@ $<
+ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $<
+
+extensions/arpt_%.o: extensions/arpt_%.c include/arptables.h include/arptables_common.h
+ $(CC) $(CFLAGS) $(ARPCFLAGS) $(PROGSPECS) -c -o $@ $<
--
-2.12.1
+2.17.1
diff --git a/meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch b/meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch
deleted file mode 100644
index 24956c4ca9..0000000000
--- a/meta-networking/recipes-support/arptables/arptables/arptables-init-busybox.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-Index: arptables-v0.0.3-4/arptables.sysv
-===================================================================
---- arptables-v0.0.3-4.orig/arptables.sysv 2010-03-22 16:28:03.000000000 +0300
-+++ arptables-v0.0.3-4/arptables.sysv 2010-03-22 16:27:51.000000000 +0300
-@@ -12,10 +12,10 @@
- # config: __SYSCONFIG__/arptables
-
- source /etc/init.d/functions
--source /etc/sysconfig/network
-+# source /etc/sysconfig/network
-
- # Check that networking is up.
--[ ${NETWORKING} = "no" ] && exit 0
-+# [ ${NETWORKING} = "no" ] && exit 0
-
- [ -x __EXEC_PATH__/arptables ] || exit 1
- [ -x __EXEC_PATH__/arptables-save ] || exit 1
-@@ -28,32 +28,30 @@
- desc="Arp filtering"
-
- start() {
-- echo -n $"Starting $desc ($prog): "
-+ echo -n "Starting $desc ($prog): "
- __EXEC_PATH__/arptables-restore < __SYSCONFIG__/arptables || RETVAL=1
-
- if [ $RETVAL -eq 0 ]; then
-- success "$prog startup"
-- rm -f /var/lock/subsys/$prog
-+ echo "$prog ok"
-+ touch /var/lock/subsys/$prog
- else
-- failure "$prog startup"
-+ echo "$prog failed"
- fi
-
-- echo
- return $RETVAL
- }
-
- stop() {
-- echo -n $"Stopping $desc ($prog): "
-+ echo -n "Stopping $desc ($prog): "
- __EXEC_PATH__/arptables-restore < /dev/null || RETVAL=1
-
- if [ $RETVAL -eq 0 ]; then
-- success "$prog shutdown"
-- rm -f %{_localstatedir}/lock/subsys/$prog
-+ echo "$prog stopped"
-+ rm -f /var/lock/subsys/$prog
- else
-- failure "$prog shutdown"
-+ echo "$prog failed to stop"
- fi
-
-- echo
- return $RETVAL
- }
-
-@@ -63,15 +61,14 @@
- }
-
- save() {
-- echo -n $"Saving $desc ($prog): "
-+ echo -n "Saving $desc ($prog): "
- __EXEC_PATH__/arptables-save > __SYSCONFIG__/arptables || RETVAL=1
-
- if [ $RETVAL -eq 0 ]; then
-- success "$prog saved"
-+ echo "$prog saved"
- else
-- failure "$prog saved"
-+ echo "$prog is not saved"
- fi
-- echo
- }
-
- case "$1" in
diff --git a/meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch b/meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch
deleted file mode 100644
index f332658bcd..0000000000
--- a/meta-networking/recipes-support/arptables/arptables/arptables-remove-bashism.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From cd312bc0e3686404428878d23b8888cba09a20e1 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Thu, 18 Sep 2014 19:46:58 -0700
-Subject: [PATCH] arptables.sysv: remove bashism
-
-Use "." to replace of "source", and change /bin/bash to /bin/sh, the
-echo $"foo" works well in busybox.
-
-Upstream-Status: Pending
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- arptables.sysv | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arptables.sysv b/arptables.sysv
-index 7a90bd2..7710376 100644
---- a/arptables.sysv
-+++ b/arptables.sysv
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # init script for arptables
- #
-@@ -11,7 +11,7 @@
- #
- # config: __SYSCONFIG__/arptables
-
--source /etc/init.d/functions
-+. /etc/init.d/functions
- # source /etc/sysconfig/network
-
- # Check that networking is up.
---
-1.7.9.5
-
diff --git a/meta-networking/recipes-support/arptables/arptables_git.bb b/meta-networking/recipes-support/arptables/arptables_git.bb
index cec1d1f77e..898b69682d 100644
--- a/meta-networking/recipes-support/arptables/arptables_git.bb
+++ b/meta-networking/recipes-support/arptables/arptables_git.bb
@@ -1,23 +1,21 @@
SUMMARY = "Administration tool for arp packet filtering"
SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
-SRCREV = "f4ab8f63f11a72f14687a6646d04ae1bae3fa45f"
-PV = "0.0.4+git${SRCPV}"
+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}"
SRC_URI = " \
- git://git.netfilter.org/arptables \
+ git://git.netfilter.org/arptables;branch=master \
file://0001-Use-ARPCFLAGS-for-package-specific-compiler-flags.patch \
- file://arptables-init-busybox.patch \
file://arptables-arpt-get-target-fix.patch \
- file://arptables-remove-bashism.patch \
file://arptables.service \
"
SRC_URI[arptables.md5sum] = "1d4ab05761f063b0751645d8f2b8f8e5"
SRC_URI[arptables.sha256sum] = "e529fd465c67d69ad335299a043516e6b38cdcd337a5ed21718413e96073f928"
S = "${WORKDIR}/git"
-SYSTEMD_SERVICE_${PN} = "arptables.service"
+SYSTEMD_SERVICE:${PN} = "arptables.service"
inherit systemd
@@ -31,7 +29,7 @@ do_install() {
fi
}
-RDEPENDS_${PN} += "perl"
+RDEPENDS:${PN} += "perl"
# the install target is not multi-job safe, but it doesn't do much
# so we just install serially
diff --git a/meta-networking/recipes-support/bmon/bmon_4.0.bb b/meta-networking/recipes-support/bmon/bmon_4.0.bb
new file mode 100644
index 0000000000..c974d54fe8
--- /dev/null
+++ b/meta-networking/recipes-support/bmon/bmon_4.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Portable Bandwidth Monitor and rate estimator"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+# only works with libnl-0.5.0
+DEPENDS = "libnl libconfuse ncurses"
+
+SRCREV = "1b3f11bde315e221474f7d066ce4efb4ff4d39e3"
+SRC_URI = "git://github.com/tgraf/bmon.git;branch=master;protocol=https"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-include-missing-kernel-header.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-include-missing-kernel-header.patch
new file mode 100644
index 0000000000..dbd6b18c42
--- /dev/null
+++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0001-include-missing-kernel-header.patch
@@ -0,0 +1,33 @@
+From 203801ae47399569868aa468988e711ba3ddfa92 Mon Sep 17 00:00:00 2001
+From: Joe MacDonald <joe_macdonald@mentor.com>
+Date: Mon, 30 Oct 2017 13:18:20 -0400
+Subject: [PATCH] include missing kernel header
+
+Fixes errors like
+
+| /b/kraj/jlinux-next/poky/build/tmp-eglibc/sysroots/re-64b/usr/include/linux/if_bridge.h:172:20: error: field 'ip6' has incomplete type
+| In file included from ../libbridge/libbridge.h:24:0,
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+---
+ libbridge/libbridge.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
+index 962f316..422ec33 100644
+--- a/libbridge/libbridge.h
++++ b/libbridge/libbridge.h
+@@ -24,6 +24,7 @@
+ #include <sys/time.h>
+ #include <netinet/in.h>
+
++#include <linux/in6.h>
+ #include <linux/if.h>
+ #include <linux/if_bridge.h>
+
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-build-don-t-ignore-CFLAGS-from-environment.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-build-don-t-ignore-CFLAGS-from-environment.patch
new file mode 100644
index 0000000000..5ec563b6b1
--- /dev/null
+++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0002-build-don-t-ignore-CFLAGS-from-environment.patch
@@ -0,0 +1,40 @@
+From 0c1a66fc62cc321d307c94f962031283142eea69 Mon Sep 17 00:00:00 2001
+From: Joe MacDonald <joe_macdonald@mentor.com>
+Date: Mon, 30 Oct 2017 13:37:48 -0400
+Subject: [PATCH] build: don't ignore CFLAGS from environment
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We need to take them into account so as to behave nicely towards
+build environments which expect to be able to set them, e.g. for
+optimisation flags, or debug options.
+
+Therefore they need to be added to the compiler command line of
+every source file, and in addition, the same CFLAGS that were
+used during compilation must also always be used during linking!
+
+Upstream-Status: Pending
+
+Signed-off-by: André Draszik <git@andred.net>
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+---
+ brctl/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/brctl/Makefile.in b/brctl/Makefile.in
+index e1956d6..eff260c 100644
+--- a/brctl/Makefile.in
++++ b/brctl/Makefile.in
+@@ -34,7 +34,7 @@ install: $(PROGRAMS)
+ $(INSTALL) -m 755 $(PROGRAMS) $(DESTDIR)$(sbindir)
+
+ brctl: $(brctl_OBJECTS) ../libbridge/libbridge.a
+- $(CC) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
++ $(CC) $(CFLAGS) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
+
+ %.o: %.c brctl.h
+ $(CC) $(CFLAGS) $(INCLUDE) -c $<
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch
new file mode 100644
index 0000000000..586ebfec68
--- /dev/null
+++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch
@@ -0,0 +1,51 @@
+From 99264c688ff98d8f0f237cba6c7098eb4d5a12a7 Mon Sep 17 00:00:00 2001
+From: Joe MacDonald <joe_macdonald@mentor.com>
+Date: Mon, 30 Oct 2017 13:48:33 -0400
+Subject: [PATCH] libbridge: Modifying the AR to cross toolchain
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The Makefile uses the host “ar” tool when it should be using the ar from
+the target toolchain.
+
+Upstream-Status: Pending
+
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
+---
+ configure.ac | 4 ++++
+ libbridge/Makefile.in | 2 +-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 66817bb..bcc6946 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,6 +12,10 @@ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
++AN_MAKEVAR([AR], [AC_PROG_AR])
++AN_PROGRAM([ar], [AC_PROG_AR])
++AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
++AC_PROG_AR
+
+ dnl Checks for header files.
+ AC_HEADER_STDC
+diff --git a/libbridge/Makefile.in b/libbridge/Makefile.in
+index 7932bfe..bd55e9b 100644
+--- a/libbridge/Makefile.in
++++ b/libbridge/Makefile.in
+@@ -1,7 +1,7 @@
+
+ KERNEL_HEADERS=-I@KERNEL_HEADERS@
+
+-AR=ar
++AR=@AR@
+ RANLIB=@RANLIB@
+
+ CC=@CC@
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-cleanup-includes.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-cleanup-includes.patch
new file mode 100644
index 0000000000..eb5c53d9ed
--- /dev/null
+++ b/meta-networking/recipes-support/bridge-utils/bridge-utils/0004-cleanup-includes.patch
@@ -0,0 +1,149 @@
+From 1763c5b7f8f72d651d62337029c3bdfb269491e4 Mon Sep 17 00:00:00 2001
+From: Stephen Hemminger <sthemmin@microsoft.com>
+Date: Fri, 7 Jan 2022 08:44:19 -0800
+Subject: [PATCH] cleanup includes
+
+Use IWYU to only include necessary headers.
+Should resolve build issues for distros that need limits.h
+to find PATH_MAX.
+
+Upstream-Status: Backport
+[https://git.kernel.org/pub/scm/network/bridge/bridge-utils.git/commit/?h=main&id=1763c5b7f8f72d651d62337029c3bdfb269491e4]
+
+Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ brctl/brctl.c | 1 -
+ brctl/brctl_cmd.c | 3 ++-
+ brctl/brctl_disp.c | 1 -
+ libbridge/libbridge_devif.c | 5 ++++-
+ libbridge/libbridge_if.c | 5 +----
+ libbridge/libbridge_init.c | 4 +++-
+ libbridge/libbridge_misc.c | 5 +----
+ 7 files changed, 11 insertions(+), 13 deletions(-)
+
+diff --git a/brctl/brctl.c b/brctl/brctl.c
+index 8855234..d2fa005 100644
+--- a/brctl/brctl.c
++++ b/brctl/brctl.c
+@@ -17,7 +17,6 @@
+ */
+
+ #include <stdio.h>
+-#include <stdlib.h>
+ #include <string.h>
+ #include <errno.h>
+ #include <getopt.h>
+diff --git a/brctl/brctl_cmd.c b/brctl/brctl_cmd.c
+index 81f7dfa..4167503 100644
+--- a/brctl/brctl_cmd.c
++++ b/brctl/brctl_cmd.c
+@@ -18,10 +18,11 @@
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <stdint.h>
+ #include <string.h>
+ #include <sys/time.h>
+ #include <errno.h>
+-#include <asm/param.h>
++
+ #include "libbridge.h"
+ #include "brctl.h"
+
+diff --git a/brctl/brctl_disp.c b/brctl/brctl_disp.c
+index 3e81241..f6bf2af 100644
+--- a/brctl/brctl_disp.c
++++ b/brctl/brctl_disp.c
+@@ -17,7 +17,6 @@
+ */
+
+ #include <stdio.h>
+-#include <stdlib.h>
+ #include <string.h>
+ #include <sys/time.h>
+
+diff --git a/libbridge/libbridge_devif.c b/libbridge/libbridge_devif.c
+index 8b7d954..3aac0f9 100644
+--- a/libbridge/libbridge_devif.c
++++ b/libbridge/libbridge_devif.c
+@@ -18,12 +18,15 @@
+
+
+ #include <stdio.h>
+-#include <stdlib.h>
+ #include <unistd.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <dirent.h>
+ #include <fcntl.h>
++#include <limits.h>
++
++#include <sys/ioctl.h>
++#include <linux/sockios.h>
+
+ #include "libbridge.h"
+ #include "libbridge_private.h"
+diff --git a/libbridge/libbridge_if.c b/libbridge/libbridge_if.c
+index 5f3aed1..96dda30 100644
+--- a/libbridge/libbridge_if.c
++++ b/libbridge/libbridge_if.c
+@@ -16,12 +16,9 @@
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+-#include <stdio.h>
+-#include <stdlib.h>
+ #include <errno.h>
+-#include <string.h>
+-#include <fcntl.h>
+ #include <sys/ioctl.h>
++#include <linux/sockios.h>
+
+ #include "libbridge.h"
+ #include "libbridge_private.h"
+diff --git a/libbridge/libbridge_init.c b/libbridge/libbridge_init.c
+index c914971..d572895 100644
+--- a/libbridge/libbridge_init.c
++++ b/libbridge/libbridge_init.c
+@@ -16,14 +16,16 @@
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
++#include <limits.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <errno.h>
+ #include <string.h>
+ #include <dirent.h>
+-#include <sys/types.h>
+ #include <sys/stat.h>
++#include <sys/ioctl.h>
++#include <linux/sockios.h>
+
+ #include "libbridge.h"
+ #include "libbridge_private.h"
+diff --git a/libbridge/libbridge_misc.c b/libbridge/libbridge_misc.c
+index 9379e93..5b146fd 100644
+--- a/libbridge/libbridge_misc.c
++++ b/libbridge/libbridge_misc.c
+@@ -16,14 +16,11 @@
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+-#include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+-#include <sys/time.h>
+ #include <asm/param.h>
+-#include "libbridge.h"
+-#include "libbridge_private.h"
+
++#include "libbridge.h"
+
+ static const char *state_names[5] = {
+ [BR_STATE_DISABLED] = "disabled",
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch
deleted file mode 100644
index 0a72c6b2c4..0000000000
--- a/meta-networking/recipes-support/bridge-utils/bridge-utils/0005-build-don-t-ignore-CFLAGS-from-environment.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 9d63838d12c772dfe33371e2bb8b8191625539f2 Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Mon, 30 Oct 2017 13:37:48 -0400
-Subject: [PATCH] build: don't ignore CFLAGS from environment
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-We need to take them into account so as to behave nicely towards
-build environments which expect to be able to set them, e.g. for
-optimisation flags, or debug options.
-
-Therefore they need to be added to the compiler command line of
-every source file, and in addition, the same CFLAGS that were
-used during compilation must also always be used during linking!
-
-Upstream-Status: Pending
-
-Signed-off-by: André Draszik <git@andred.net>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- brctl/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/brctl/Makefile.in b/brctl/Makefile.in
-index e1956d6..eff260c 100644
---- a/brctl/Makefile.in
-+++ b/brctl/Makefile.in
-@@ -34,7 +34,7 @@ install: $(PROGRAMS)
- $(INSTALL) -m 755 $(PROGRAMS) $(DESTDIR)$(sbindir)
-
- brctl: $(brctl_OBJECTS) ../libbridge/libbridge.a
-- $(CC) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
-+ $(CC) $(CFLAGS) $(LDFLAGS) $(brctl_OBJECTS) $(LIBS) -o brctl
-
- %.o: %.c brctl.h
- $(CC) $(CFLAGS) $(INCLUDE) -c $<
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch
deleted file mode 100644
index 3f65761f54..0000000000
--- a/meta-networking/recipes-support/bridge-utils/bridge-utils/0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From c924f66743c054d7ebafef90ca1bbebc96732357 Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Mon, 30 Oct 2017 13:48:33 -0400
-Subject: [PATCH] libbridge: Modifying the AR to cross toolchain
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The Makefile uses the host “ar” tool when it should be using the ar from
-the target toolchain.
-
-Upstream-Status: Pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- configure.ac | 1 +
- libbridge/Makefile.in | 2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8b2e2ea..8426b7c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -12,6 +12,10 @@ dnl Checks for programs.
- AC_PROG_CC
- AC_PROG_INSTALL
- AC_PROG_RANLIB
-+AN_MAKEVAR([AR], [AC_PROG_AR])
-+AN_PROGRAM([ar], [AC_PROG_AR])
-+AC_DEFUN([AC_PROG_AR], [AC_CHECK_TOOL(AR, ar, :)])
-+AC_PROG_AR
-
- dnl Checks for header files.
- AC_HEADER_STDC
-diff --git a/libbridge/Makefile.in b/libbridge/Makefile.in
-index 7932bfe..bd55e9b 100644
---- a/libbridge/Makefile.in
-+++ b/libbridge/Makefile.in
-@@ -1,7 +1,7 @@
-
- KERNEL_HEADERS=-I@KERNEL_HEADERS@
-
--AR=ar
-+AR=@AR@
- RANLIB=@RANLIB@
-
- CC=@CC@
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch b/meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch
deleted file mode 100644
index 8a23a3070c..0000000000
--- a/meta-networking/recipes-support/bridge-utils/bridge-utils/kernel-headers.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 824f838cc9c7b8a44174358446993d61be7bbb3f Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe_macdonald@mentor.com>
-Date: Mon, 30 Oct 2017 13:18:20 -0400
-Subject: [PATCH] include missing kernel header
-
-Fixes errors like
-
-| /b/kraj/jlinux-next/poky/build/tmp-eglibc/sysroots/re-64b/usr/include/linux/if_bridge.h:172:20: error: field 'ip6' has incomplete type
-| In file included from ../libbridge/libbridge.h:24:0,
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Joe MacDonald <joe_macdonald@mentor.com>
----
- libbridge/libbridge.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libbridge/libbridge.h b/libbridge/libbridge.h
-index c038b92..fd09306 100644
---- a/libbridge/libbridge.h
-+++ b/libbridge/libbridge.h
-@@ -24,6 +24,7 @@
- #include <sys/time.h>
- #include <netinet/in.h>
-
-+#include <linux/in6.h>
- #include <linux/if.h>
- #include <linux/if_bridge.h>
-
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils_1.6.bb b/meta-networking/recipes-support/bridge-utils/bridge-utils_1.6.bb
deleted file mode 100644
index 1c87c48bfa..0000000000
--- a/meta-networking/recipes-support/bridge-utils/bridge-utils_1.6.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Tools for ethernet bridging"
-HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge"
-SECTION = "net"
-LICENSE = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=f9d20a453221a1b7e32ae84694da2c37"
-
-SRCREV = "42c1aefc303fdf891fbb099ea51f00dca83ab606"
-
-SRC_URI = "\
- git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git \
- file://kernel-headers.patch \
- file://0005-build-don-t-ignore-CFLAGS-from-environment.patch \
- file://0006-libbridge-Modifying-the-AR-to-cross-toolchain.patch \
-"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "sysfsutils"
-
-inherit autotools-brokensep update-alternatives
-
-ALTERNATIVE_${PN} = "brctl"
-ALTERNATIVE_PRIORITY[brctl] = "100"
-ALTERNATIVE_LINK_NAME[brctl] = "${sbindir}/brctl"
-
-EXTRA_OECONF = "--with-linux-headers=${STAGING_INCDIR}"
-
-do_install_append () {
- install -d ${D}/${datadir}/bridge-utils
- install -d ${D}/${sysconfdir}/network/if-pre-up.d
- install -d ${D}/${sysconfdir}/network/if-post-down.d
-}
-
-RRECOMMENDS_${PN} = "kernel-module-bridge"
diff --git a/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.1.bb b/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.1.bb
new file mode 100644
index 0000000000..cf0fc1c33d
--- /dev/null
+++ b/meta-networking/recipes-support/bridge-utils/bridge-utils_1.7.1.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Tools for ethernet bridging"
+HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bridge"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=f9d20a453221a1b7e32ae84694da2c37"
+
+SRCREV = "75d949b9fae9718201422f0bd3d1103e67dd597c"
+
+SRC_URI = "\
+ git://git.kernel.org/pub/scm/network/bridge/bridge-utils.git;branch=main \
+ file://0001-include-missing-kernel-header.patch \
+ file://0002-build-don-t-ignore-CFLAGS-from-environment.patch \
+ file://0003-libbridge-Modifying-the-AR-to-cross-toolchain.patch \
+ file://0004-cleanup-includes.patch \
+"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "sysfsutils"
+
+inherit autotools-brokensep update-alternatives
+
+ALTERNATIVE:${PN} = "brctl"
+ALTERNATIVE_PRIORITY[brctl] = "100"
+ALTERNATIVE_LINK_NAME[brctl] = "${sbindir}/brctl"
+
+EXTRA_OECONF = "--with-linux-headers=${STAGING_INCDIR}"
+
+do_install:append () {
+ install -d ${D}/${datadir}/bridge-utils
+ install -d ${D}/${sysconfdir}/network/if-pre-up.d
+ install -d ${D}/${sysconfdir}/network/if-post-down.d
+}
+
+RRECOMMENDS:${PN} = "kernel-module-bridge"
diff --git a/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch b/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
deleted file mode 100644
index 5dd4c7d772..0000000000
--- a/meta-networking/recipes-support/c-ares/c-ares/cmake-install-libcares.pc.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 7e1ae687916fd5878ee755afbdea6b10494e0b92 Mon Sep 17 00:00:00 2001
-From: Alexey Firago <alexey_firago@mentor.com>
-Date: Wed, 26 Jul 2017 23:21:25 +0300
-Subject: [PATCH] cmake: Install libcares.pc
-
-Prepare and install libcares.pc file during cmake build, so libraries
-using pkg-config to find libcares will not fail.
-
-Signed-off-by: Alexey Firago <alexey_firago@mentor.com>
----
- CMakeLists.txt | 21 +++++++++++++++++++++
- libcares.pc.cmakein | 20 ++++++++++++++++++++
- 2 files changed, 41 insertions(+)
- create mode 100644 libcares.pc.cmakein
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 364b6c7..0016b67 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -173,21 +173,29 @@ ADD_DEFINITIONS(${SYSFLAGS})
-
-
- # Tell C-Ares about libraries to depend on
-+# Also pass these libraries to pkg-config file
-+SET(CARES_PRIVATE_LIBS_LIST)
- IF (HAVE_LIBRESOLV)
- LIST (APPEND CARES_DEPENDENT_LIBS resolv)
-+ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lresolv")
- ENDIF ()
- IF (HAVE_LIBNSL)
- LIST (APPEND CARES_DEPENDENT_LIBS nsl)
-+ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lnsl")
- ENDIF ()
- IF (HAVE_LIBSOCKET)
- LIST (APPEND CARES_DEPENDENT_LIBS socket)
-+ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lsocket")
- ENDIF ()
- IF (HAVE_LIBRT)
- LIST (APPEND CARES_DEPENDENT_LIBS rt)
-+ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lrt")
- ENDIF ()
- IF (WIN32)
- LIST (APPEND CARES_DEPENDENT_LIBS ws2_32)
-+ LIST (APPEND CARES_PRIVATE_LIBS_LIST "-lws2_32")
- ENDIF ()
-+string (REPLACE ";" " " CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS_LIST}")
-
-
- # When checking for symbols, we need to make sure we set the proper
-@@ -489,6 +497,13 @@ CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h)
- # Write ares_config.h configuration file. This is used only for the build.
- CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h)
-
-+# Pass required CFLAGS to pkg-config in case of static library
-+IF (CARES_STATIC)
-+ SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB")
-+ENDIF()
-+
-+# Write ares_config.h configuration file. This is used only for the build.
-+CONFIGURE_FILE (libcares.pc.cmakein ${PROJECT_BINARY_DIR}/libcares.pc @ONLY)
-
- # TRANSFORM_MAKEFILE_INC
- #
-@@ -625,6 +640,12 @@ IF (CARES_INSTALL)
- INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" DESTINATION ${CMAKECONFIG_INSTALL_DIR})
- ENDIF ()
-
-+# pkg-config file
-+IF (CARES_INSTALL)
-+ SET (PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
-+ INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" DESTINATION ${PKGCONFIG_INSTALL_DIR})
-+ENDIF ()
-+
- # Legacy chain-building variables (provided for compatibility with old code).
- # Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares).
- SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND")
-diff --git a/libcares.pc.cmakein b/libcares.pc.cmakein
-new file mode 100644
-index 0000000..f29fede
---- /dev/null
-+++ b/libcares.pc.cmakein
-@@ -0,0 +1,20 @@
-+#***************************************************************************
-+# Project ___ __ _ _ __ ___ ___
-+# / __|____ / _` | '__/ _ \/ __|
-+# | (_|_____| (_| | | | __/\__ \
-+# \___| \__,_|_| \___||___/
-+#
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=@CMAKE_INSTALL_PREFIX@
-+libdir=@CMAKE_INSTALL_FULL_LIBDIR@
-+includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@
-+
-+Name: c-ares
-+URL: http://daniel.haxx.se/projects/c-ares/
-+Description: asynchronous DNS lookup library
-+Version: @VERSION@
-+Requires:
-+Requires.private:
-+Cflags: -I${includedir} @CPPFLAG_CARES_STATICLIB@
-+Libs: -L${libdir} -lcares
-+Libs.private: @CARES_PRIVATE_LIBS@
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb b/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb
deleted file mode 100644
index 3c0ce16100..0000000000
--- a/meta-networking/recipes-support/c-ares/c-ares_1.13.0.bb
+++ /dev/null
@@ -1,26 +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=f4b026880834eb01c035c5e5cb47ccac"
-
-PV = "1.13.0+gitr${SRCPV}"
-
-SRC_URI = "\
- git://github.com/c-ares/c-ares.git \
- file://cmake-install-libcares.pc.patch \
-"
-SRCREV = "3be1924221e1326df520f8498d704a5c4c8d0cce"
-
-UPSTREAM_CHECK_GITTAGREGEX = "cares-(?P<pver>\d+_(\d_?)+)"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-PACKAGES =+ "${PN}-utils"
-
-FILES_${PN}-utils = "${bindir}"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-support/celt051/celt051_git.bb b/meta-networking/recipes-support/celt051/celt051_git.bb
index 116800522a..62682cfce3 100644
--- a/meta-networking/recipes-support/celt051/celt051_git.bb
+++ b/meta-networking/recipes-support/celt051/celt051_git.bb
@@ -9,14 +9,14 @@ with high quality. Unlike these formats CELT imposes very little delay \
on the signal, even less than is typical for speech centric formats \
like Speex, GSM, or G.729."
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=375f60ab360d17f0172737036ff155b2"
PV = "0.5.1.3+git${SRCPV}"
SRCREV = "5555aae843f57241d005e330b9cb65602d56db0f"
-SRC_URI = "git://git.xiph.org/celt.git;branch=compat-v0.5.1;protocol=https \
+SRC_URI = "git://gitlab.xiph.org/xiph/celt.git;branch=compat-v0.5.1;protocol=https \
file://0001-configure.ac-make-tools-support-optional.patch \
file://0001-tests-Include-entcode.c-into-test-sources-to-provide.patch \
"
@@ -25,7 +25,7 @@ S = "${WORKDIR}/git"
inherit pkgconfig autotools-brokensep
-PACKAGECONFIG_class-native = ""
+PACKAGECONFIG:class-native = ""
PACKAGECONFIG ??= ""
PACKAGECONFIG[ogg] = "--enable-tools,--disable-tools,libogg,"
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
new file mode 100644
index 0000000000..5e2bc64af3
--- /dev/null
+++ b/meta-networking/recipes-support/chrony/chrony/0001-Fix-compilation-with-musl.patch
@@ -0,0 +1,31 @@
+From 11ec10cdb5ab4b94c5999e018a9c854419997761 Mon Sep 17 00:00:00 2001
+From: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
+Date: Wed, 10 Apr 2019 03:18:17 +0200
+Subject: [PATCH] Fix compilation with musl
+
+Fixes:
+../hash_intmd5.c:58: undefined reference to `MIN'
+
+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/hash_intmd5.c b/hash_intmd5.c
+index 49da1cf..47efe4c 100644
+--- a/hash_intmd5.c
++++ b/hash_intmd5.c
+@@ -33,6 +33,8 @@
+
+ #include "md5.c"
+
++#include <sys/param.h>
++
+ static MD5_CTX ctx;
+
+ int
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch b/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
index 9f943cdce5..82c0e1b68b 100644
--- a/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
+++ b/meta-networking/recipes-support/chrony/chrony/arm_eabi.patch
@@ -1,64 +1,82 @@
-From 9ca48a6fef1da1bb0dd67ab94256c7e240da1834 Mon Sep 17 00:00:00 2001
+From 28b9f115e36e2133301b02fa02ad71a8efbed9b9 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
+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
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- sys_linux.c | 19 +++++++++++++------
- 1 file changed, 13 insertions(+), 6 deletions(-)
+ sys_linux.c | 15 +++++++++------
+ 1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/sys_linux.c b/sys_linux.c
-index f4b532d..d05fa24 100644
+index f2baab1..14a9241 100644
--- a/sys_linux.c
+++ b/sys_linux.c
-@@ -482,14 +482,14 @@ SYS_Linux_EnableSystemCallFilter(int level)
- const int syscalls[] = {
- /* Clock */
- SCMP_SYS(adjtimex), SCMP_SYS(clock_gettime), SCMP_SYS(gettimeofday),
-- SCMP_SYS(settimeofday), SCMP_SYS(time),
-+ SCMP_SYS(settimeofday),
+@@ -484,7 +484,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+ #endif
+ SCMP_SYS(gettimeofday),
+ SCMP_SYS(settimeofday),
+- SCMP_SYS(time),
+
/* Process */
- SCMP_SYS(clone), SCMP_SYS(exit), SCMP_SYS(exit_group), SCMP_SYS(getpid),
-- SCMP_SYS(getrlimit), SCMP_SYS(rt_sigaction), SCMP_SYS(rt_sigreturn),
-+ SCMP_SYS(rt_sigaction), SCMP_SYS(rt_sigreturn),
- SCMP_SYS(rt_sigprocmask), SCMP_SYS(set_tid_address), SCMP_SYS(sigreturn),
- SCMP_SYS(wait4),
+ SCMP_SYS(clone),
+@@ -494,7 +493,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)
/* Memory */
-- SCMP_SYS(brk), SCMP_SYS(madvise), SCMP_SYS(mmap), SCMP_SYS(mmap2),
-+ SCMP_SYS(brk), SCMP_SYS(madvise), SCMP_SYS(mmap2),
- SCMP_SYS(mprotect), SCMP_SYS(mremap), SCMP_SYS(munmap), SCMP_SYS(shmdt),
- /* Filesystem */
- SCMP_SYS(access), SCMP_SYS(chmod), SCMP_SYS(chown), SCMP_SYS(chown32),
-@@ -500,14 +500,21 @@ SYS_Linux_EnableSystemCallFilter(int level)
- SCMP_SYS(bind), SCMP_SYS(connect), SCMP_SYS(getsockname), SCMP_SYS(getsockopt),
- SCMP_SYS(recvfrom), SCMP_SYS(recvmmsg), SCMP_SYS(recvmsg),
- SCMP_SYS(sendmmsg), SCMP_SYS(sendmsg), SCMP_SYS(sendto),
+ SCMP_SYS(brk),
+ SCMP_SYS(madvise),
+- SCMP_SYS(mmap),
+ SCMP_SYS(mmap2),
+ SCMP_SYS(mprotect),
+ SCMP_SYS(mremap),
+@@ -571,8 +568,6 @@ SYS_Linux_EnableSystemCallFilter(int level, SYS_ProcessContext context)
+ SCMP_SYS(sendmsg),
+ SCMP_SYS(sendto),
+ SCMP_SYS(shutdown),
- /* TODO: check socketcall arguments */
- SCMP_SYS(socketcall),
+
/* General I/O */
- SCMP_SYS(_newselect), SCMP_SYS(close), SCMP_SYS(open), SCMP_SYS(openat), SCMP_SYS(pipe),
-- SCMP_SYS(poll), SCMP_SYS(read), SCMP_SYS(futex), SCMP_SYS(select),
-+ SCMP_SYS(poll), SCMP_SYS(read), SCMP_SYS(futex),
- SCMP_SYS(set_robust_list), SCMP_SYS(write),
- /* Miscellaneous */
- SCMP_SYS(getrandom), SCMP_SYS(sysinfo), SCMP_SYS(uname),
-+ /* not always available */
+ SCMP_SYS(_newselect),
+@@ -596,7 +591,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(getrandom),
+ SCMP_SYS(sysinfo),
+ SCMP_SYS(uname),
++ /* not always available */
+#if ! defined(__ARM_EABI__)
+ SCMP_SYS(time),
+ SCMP_SYS(getrlimit),
@@ -69,4 +87,4 @@ index f4b532d..d05fa24 100644
+#endif
};
- const int socket_domains[] = {
+ const int denied_any[] = {
diff --git a/meta-networking/recipes-support/chrony/chrony/chrony.conf b/meta-networking/recipes-support/chrony/chrony/chrony.conf
index 8d226d31a5..d11e2d4069 100644
--- a/meta-networking/recipes-support/chrony/chrony/chrony.conf
+++ b/meta-networking/recipes-support/chrony/chrony/chrony.conf
@@ -1,3 +1,6 @@
+# Load config files matching the /etc/chrony/conf.d/*.conf pattern.
+confdir /etc/chrony/conf.d
+
# Use public NTP servers from the pool.ntp.org project.
# Please consider joining the pool project if possible by running your own
# server(s).
@@ -17,6 +20,10 @@ pool 0.openembedded.pool.ntp.org iburst
# gpios = <&ps7_gpio_0 56 0>;
# };
+# Load source files matching the /etc/chrony/sources.d/*.sources pattern.
+# These can be reloaded using 'chronyc reload sources'.
+sourcedir /etc/chrony/sources.d
+
# In first three updates step the system clock instead of slew
# if the adjustment is larger than 1 second.
makestep 1.0 3
diff --git a/meta-networking/recipes-support/chrony/chrony/chronyd b/meta-networking/recipes-support/chrony/chrony/chronyd
index 04f1b681c4..8c7c167b3c 100644
--- a/meta-networking/recipes-support/chrony/chrony/chronyd
+++ b/meta-networking/recipes-support/chrony/chrony/chronyd
@@ -15,7 +15,7 @@
PATH=/sbin:/bin:/usr/bin:/usr/sbin
DAEMON=/usr/sbin/chronyd
-PIDFILE=/var/run/chronyd.pid
+PIDFILE=/run/chrony/chronyd.pid
test -x $DAEMON -a -r /etc/chrony.conf || exit 0
diff --git a/meta-networking/recipes-support/chrony/chrony_3.3.bb b/meta-networking/recipes-support/chrony/chrony_3.3.bb
deleted file mode 100644
index 2586370fa7..0000000000
--- a/meta-networking/recipes-support/chrony/chrony_3.3.bb
+++ /dev/null
@@ -1,134 +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 = "GPLv2"
-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[md5sum] = "81ab62cf5d60b4b3fa8cd2c1b267ffd9"
-SRC_URI[sha256sum] = "0d1fb2d5875032f2d5a86f3770374c87ee4c941916f64171e81f7684f2a73128"
-
-DEPENDS = "pps-tools"
-
-# Note: Despite being built via './configure; make; make install',
-# chrony does not use GNU Autotools.
-inherit update-rc.d systemd
-
-# 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] = ",--disable-privdrop,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} \
- ${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}
-
- # 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
-
- # Log files
- install -d ${D}${localstatedir}/log/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
-}
-
-FILES_${PN} = "${sbindir}/chronyd ${sysconfdir} ${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.3.bb b/meta-networking/recipes-support/chrony/chrony_4.3.bb
new file mode 100644
index 0000000000..420cc78ca4
--- /dev/null
+++ b/meta-networking/recipes-support/chrony/chrony_4.3.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] = "9d0da889a865f089a5a21610ffb6713e3c9438ce303a63b49c2fb6eaff5b8804"
+
+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/cifs/cifs-utils_7.0.bb b/meta-networking/recipes-support/cifs/cifs-utils_7.0.bb
new file mode 100644
index 0000000000..c78bbae7b8
--- /dev/null
+++ b/meta-networking/recipes-support/cifs/cifs-utils_7.0.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "A a package of utilities for doing and managing mounts of the Linux CIFS filesystem."
+HOMEPAGE = "http://wiki.samba.org/index.php/LinuxCIFS_utils"
+SECTION = "otherosfs"
+LICENSE = "GPL-3.0-only & LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRCREV = "316522036133d44ed02cd39ed2748e2b59c85b30"
+SRC_URI = "git://git.samba.org/cifs-utils.git;branch=master"
+
+S = "${WORKDIR}/git"
+DEPENDS += "libtalloc"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[cap] = "--with-libcap,--without-libcap,libcap"
+# when enabled, it creates ${bindir}/cifscreds and --ignore-fail-on-non-empty in do_install:append is needed
+PACKAGECONFIG[cifscreds] = "--enable-cifscreds,--disable-cifscreds,keyutils"
+# when enabled, it creates ${sbindir}/cifs.upcall and --ignore-fail-on-non-empty in do_install:append is needed
+PACKAGECONFIG[cifsupcall] = "--enable-cifsupcall,--disable-cifsupcall,krb5 libtalloc keyutils"
+PACKAGECONFIG[cifsidmap] = "--enable-cifsidmap,--disable-cifsidmap,keyutils samba"
+PACKAGECONFIG[cifsacl] = "--enable-cifsacl,--disable-cifsacl,samba"
+PACKAGECONFIG[pam] = "--enable-pam --with-pamdir=${base_libdir}/security,--disable-pam,libpam keyutils"
+
+inherit autotools pkgconfig
+
+do_configure:prepend() {
+ # want installed to /usr/sbin rather than /sbin to be DISTRO_FEATURES usrmerge compliant
+ # must override ROOTSBINDIR (default '/sbin'),
+ # setting --exec-prefix or --prefix in EXTRA_OECONF does not work
+ if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','true','false',d)}; then
+ export ROOTSBINDIR=${sbindir}
+ fi
+}
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','false','true',d)}; then
+ # Remove empty /usr/bin and /usr/sbin directories since the mount helper
+ # is installed to /sbin
+ rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${sbindir}
+ fi
+}
+
+FILES:${PN} += "${base_libdir}/security"
+FILES:${PN}-dbg += "${base_libdir}/security/.debug"
+RRECOMMENDS:${PN} = "kernel-module-cifs"
diff --git a/meta-networking/recipes-support/cifs/cifs-utils_git.bb b/meta-networking/recipes-support/cifs/cifs-utils_git.bb
deleted file mode 100644
index 198e3ef987..0000000000
--- a/meta-networking/recipes-support/cifs/cifs-utils_git.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-DESCRIPTION = "A a package of utilities for doing and managing mounts of the Linux CIFS filesystem."
-HOMEPAGE = "http://wiki.samba.org/index.php/LinuxCIFS_utils"
-SECTION = "otherosfs"
-LICENSE = "GPLv3 & LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-PV = "6.7"
-
-SRCREV = "8101a07871f185c7044fa2ca221b282ab4607c8b"
-SRC_URI = "git://git.samba.org/cifs-utils.git \
- file://0001-mount.cifs-Remove-data_blob.h-include.patch \
- "
-
-S = "${WORKDIR}/git"
-DEPENDS += "libtalloc"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[cap] = "--with-libcap,--without-libcap,libcap"
-# when enabled, it creates ${bindir}/cifscreds and --ignore-fail-on-non-empty in do_install_append is needed
-PACKAGECONFIG[cifscreds] = "--enable-cifscreds,--disable-cifscreds,keyutils"
-# when enabled, it creates ${sbindir}/cifs.upcall and --ignore-fail-on-non-empty in do_install_append is needed
-PACKAGECONFIG[cifsupcall] = "--enable-cifsupcall,--disable-cifsupcall,krb5 libtalloc keyutils"
-PACKAGECONFIG[cifsidmap] = "--enable-cifsidmap,--disable-cifsidmap,keyutils samba"
-PACKAGECONFIG[cifsacl] = "--enable-cifsacl,--disable-cifsacl,samba"
-PACKAGECONFIG[pam] = "--enable-pam --with-pamdir=${base_libdir}/security,--disable-pam,libpam keyutils"
-
-inherit autotools pkgconfig
-
-do_install_append() {
- # Remove empty /usr/bin and /usr/sbin directories since the mount helper
- # is installed to /sbin
- rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${sbindir}
-}
-
-FILES_${PN} += "${base_libdir}/security"
-FILES_${PN}-dbg += "${base_libdir}/security/.debug"
-RRECOMMENDS_${PN} = "kernel-module-cifs"
diff --git a/meta-networking/recipes-support/cifs/files/0001-mount.cifs-Remove-data_blob.h-include.patch b/meta-networking/recipes-support/cifs/files/0001-mount.cifs-Remove-data_blob.h-include.patch
deleted file mode 100644
index 07f2a57264..0000000000
--- a/meta-networking/recipes-support/cifs/files/0001-mount.cifs-Remove-data_blob.h-include.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-Upstream-Status: Backport
-Signed-off-by: S. Lockwood-Childs <sjl@vctlabs.com>
-
-From 272d523a57a4e8791d625a479128613be5e401f5 Mon Sep 17 00:00:00 2001
-From: Thomas Witt <pyromaniac@exherbo.org>
-Date: Wed, 15 Mar 2017 20:20:44 +0000
-Subject: [PATCH] mount.cifs: Remove data_blob.h include
-
-data_blob.h includes talloc.h from libtalloc, but that is only marked as
-a dependency for cifs.upcall. No symbols from that header are used by
-cifs.mount, so remove it to avoid the libtalloc dependency
-
-Signed-off-by: Thomas Witt <pyromaniac@exherbo.org>
----
- mount.cifs.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/mount.cifs.c b/mount.cifs.c
-index 13b71ef..2612feb 100644
---- a/mount.cifs.c
-+++ b/mount.cifs.c
-@@ -61,7 +61,6 @@
- #include "mount.h"
- #include "util.h"
- #include "resolve_host.h"
--#include "data_blob.h"
-
- #ifndef MS_MOVE
- #define MS_MOVE 8192
---
-1.9.4
-
diff --git a/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb b/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb
index 31875ea50f..62daf3279d 100644
--- a/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb
+++ b/meta-networking/recipes-support/cim-schema/cim-schema-docs_2.40.0.bb
@@ -4,22 +4,17 @@ SECTION = "doc"
LICENSE = "DMTF"
-SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-Doc.zip \
+SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-Doc.zip;subdir=${BP} \
file://LICENSE \
"
SRC_URI[md5sum] = "3d01940bc1085c6c42184c25fb61f739"
SRC_URI[sha256sum] = "3174cf0f8657b19d80dc59e184778d8e553da424728cb2966fe9d5428dd84267"
LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=eecc6f71a56ff3caf17f15bf7aeac7b4"
-do_unpack() {
- unzip -q ${DL_DIR}/cim_schema_${PV}Final-Doc.zip -d ${S}
- cp -f ${FILE_DIRNAME}/files/LICENSE ${WORKDIR}/
-}
-
do_install() {
install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV}-docs
cp -R --no-dereference --preserve=mode,links -v ${S}/* ${D}${datadir}/doc/cim-schema-${PV}-docs
}
-FILES_${PN} = "${datadir}/doc/*"
-FILES_${PN}-doc = ""
+FILES:${PN} = "${datadir}/doc/*"
+FILES:${PN}-doc = ""
diff --git a/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.50.0.bb b/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.50.0.bb
index 90ea882b73..7d51bc1c91 100644
--- a/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.50.0.bb
+++ b/meta-networking/recipes-support/cim-schema/cim-schema-exper_2.50.0.bb
@@ -2,7 +2,7 @@ require cim-schema.inc
LICENSE = "DMTF"
-RCONFLICTS_${PN} = "cim-schema-final"
+RCONFLICTS:${PN} = "cim-schema-final"
SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2500/cim_schema_${PV}Experimental-MOFs.zip;subdir=${BPN}-${PV} \
file://LICENSE \
@@ -25,5 +25,5 @@ do_install() {
ln -s cim_schema_${PV}.mof ${D}${datadir}/mof/cim-current/CIM_Schema.mof
}
-FILES_${PN} = "${datadir}/mof/* ${datadir}/doc/*"
-FILES_${PN}-doc = ""
+FILES:${PN} = "${datadir}/mof/* ${datadir}/doc/*"
+FILES:${PN}-doc = ""
diff --git a/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb b/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb
index a14de46db6..32bd8acbb9 100644
--- a/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb
+++ b/meta-networking/recipes-support/cim-schema/cim-schema-final_2.40.0.bb
@@ -2,20 +2,15 @@ require cim-schema.inc
LICENSE = "DMTF"
-RCONFLICTS_${PN} = "cim-schema-exper"
+RCONFLICTS:${PN} = "cim-schema-exper"
-SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-MOFs.zip \
+SRC_URI = "http://dmtf.org/sites/default/files/cim/cim_schema_v2400/cim_schema_${PV}Final-MOFs.zip;subdir=${BP} \
file://LICENSE \
"
SRC_URI[md5sum] = "a9bdf17c7374e3b5b7adeaac4842c4ad"
SRC_URI[sha256sum] = "dbfa3064ea427acd71a4bebbc172ca2dc44b0b09a6d83b0945b9ffa988a9058a"
LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=eecc6f71a56ff3caf17f15bf7aeac7b4"
-do_unpack() {
- unzip -q ${DL_DIR}/cim_schema_${PV}Final-MOFs.zip -d ${S}
- cp -f ${FILE_DIRNAME}/files/LICENSE ${WORKDIR}/
-}
-
do_install() {
install -d -m 0755 ${D}${datadir}/mof/cimv${PV}/
install -d -m 0755 ${D}${datadir}/doc/cim-schema-${PV}
@@ -30,5 +25,5 @@ do_install() {
ln -s cim_schema_${PV}.mof ${D}${datadir}/mof/cim-current/CIM_Schema.mof
}
-FILES_${PN} = "${datadir}/mof/* ${datadir}/doc/*"
-FILES_${PN}-doc = ""
+FILES:${PN} = "${datadir}/mof/* ${datadir}/doc/*"
+FILES:${PN}-doc = ""
diff --git a/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE b/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE
deleted file mode 100644
index 54a28120ee..0000000000
--- a/meta-networking/recipes-support/cim-schema/cim-schema/files/LICENSE
+++ /dev/null
@@ -1,34 +0,0 @@
-// Copyright 1998-2008 Distributed Management Task Force, Inc. (DMTF).
-// All rights reserved.
-// DMTF is a not-for-profit association of industry members dedicated
-// to promoting enterprise and systems management and interoperability.
-// DMTF specifications and documents may be reproduced by
-// members and non-members, provided that correct attribution is given.
-// As DMTF specifications may be revised from time to time,
-// the particular version and release date should always be noted.
-//
-// Implementation of certain elements of this standard or proposed
-// standard may be subject to third party patent rights, including
-// provisional patent rights (herein "patent rights"). DMTF makes
-// no representations to users of the standard as to the existence
-// of such rights, and is not responsible to recognize, disclose, or
-// identify any or all such third party patent right, owners or
-// claimants, nor for any incomplete or inaccurate identification or
-// disclosure of such rights, owners or claimants. DMTF shall have no
-// liability to any party, in any manner or circumstance, under any
-// legal theory whatsoever, for failure to recognize, disclose, or
-// identify any such third party patent rights, or for such party's
-// reliance on the standard or incorporation thereof in its product,
-// protocols or testing procedures. DMTF shall have no liability to
-// any party implementing such standard, whether such implementation
-// is foreseeable or not, nor to any patent owner or claimant, and shall
-// have no liability or responsibility for costs or losses incurred if
-// a standard is withdrawn or modified after publication, and shall be
-// indemnified and held harmless by any party implementing the
-// standard from any and all claims of infringement by a patent owner
-// for such implementations.
-//
-// For information about patents held by third-parties which have
-// notified the DMTF that, in their opinion, such patent may relate to
-// or impact implementations of DMTF standards, visit
-// http://www.dmtf.org/about/policies/disclosures.php.
diff --git a/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch b/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch
deleted file mode 100644
index c9195b4f45..0000000000
--- a/meta-networking/recipes-support/ctdb/ctdb/01-support-cross-compile-for-linux-os.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-support cross-compile for linux-os.
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
-diff -Nurp ctdb-2.5.1.orig/configure ctdb-2.5.1/configure
---- ctdb-2.5.1.orig/configure 2015-05-07 16:24:28.545000238 +0900
-+++ ctdb-2.5.1/configure 2015-05-07 16:28:20.894000244 +0900
-@@ -10692,10 +10692,16 @@ if test x"$libreplace_cv_HAVE_GETADDRINF
- # see bug 5910, use our replacements if we detect
- # a broken system.
- if test "$cross_compiling" = yes; then :
-+ case "$target_os" in
-+ *linux*)
-+ ;;
-+ *)
- { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
- $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
- as_fn_error $? "cannot run test program while cross compiling
- See \`config.log' for more details" "$LINENO" 5; }
-+ ;;
-+ esac
- else
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
- /* end confdefs.h. */
diff --git a/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch b/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch
deleted file mode 100644
index 1294fe41b5..0000000000
--- a/meta-networking/recipes-support/ctdb/ctdb/02-link-rep_snprintf-for-ltdbtool.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-link rep_snprintf from lib/replace/snprintf.o for ltdbtool
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
-Index: ctdb-2.5.6/Makefile.in
-===================================================================
---- ctdb-2.5.6.orig/Makefile.in
-+++ ctdb-2.5.6/Makefile.in
-@@ -176,7 +176,7 @@ bin/ctdb: $(CTDB_CLIENT_OBJ) tools/ctdb.
- @echo Linking $@
- $(WRAPPER) $(CC) $(CFLAGS) -o $@ tools/ctdb.o tools/ctdb_vacuum.o $(CTDB_CLIENT_OBJ) $(LIB_FLAGS)
-
--bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ)
-+bin/ltdbtool: tools/ltdbtool.o $(TDB_OBJ) lib/replace/snprintf.o
- @echo Linking $@
- $(WRAPPER) $(CC) $(CFLAGS) -o $@ $+ $(LIB_FLAGS)
-
diff --git a/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch b/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch
deleted file mode 100644
index a7e987b85f..0000000000
--- a/meta-networking/recipes-support/ctdb/ctdb/service-ensure-the-PID-directory-is-created.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f02ff7383f1cc0c118732352ccbae476c7b3b3ba Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Tue, 17 Nov 2015 16:17:00 -0500
-Subject: [PATCH] service: ensure the PID directory is created
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- config/ctdb.service | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/config/ctdb.service b/config/ctdb.service
-index ea37c30..8537105 100644
---- a/config/ctdb.service
-+++ b/config/ctdb.service
-@@ -5,6 +5,7 @@ After=network.target
- [Service]
- Type=forking
- LimitCORE=infinity
-+RuntimeDirectory=/run/ctdb
- PIDFile=/run/ctdb/ctdbd.pid
- ExecStart=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid start
- ExecStop=/usr/sbin/ctdbd_wrapper /run/ctdb/ctdbd.pid stop
---
-2.1.4
-
diff --git a/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb b/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb
deleted file mode 100644
index df1a19e7a2..0000000000
--- a/meta-networking/recipes-support/ctdb/ctdb_2.5.6.bb
+++ /dev/null
@@ -1,57 +0,0 @@
-DESCRIPTION = "CTDB is a cluster implementation of the TDB database \
-used by Samba and other projects to store temporary data. If an \
-application is already using TDB for temporary data it is very easy \
-to convert that application to be cluster aware and use CTDB instead."
-HOMEPAGE = "https://ctdb.samba.org/"
-LICENSE = "GPL-2.0+ & LGPL-3.0+ & GPL-3.0+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://${COREBASE}/meta/files/common-licenses/LGPL-3.0;md5=bfccfe952269fff2b407dd11f2f3083b \
- file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
- "
-
-SRC_URI = "https://ftp.samba.org/pub/${BPN}/${BP}.tar.gz \
- file://01-support-cross-compile-for-linux-os.patch \
- file://02-link-rep_snprintf-for-ltdbtool.patch \
- file://service-ensure-the-PID-directory-is-created.patch \
- "
-
-SRC_URI[md5sum] = "efc50109f90a4c790124c35e4ba234ad"
-SRC_URI[sha256sum] = "fc1cdd7efcc91afc629f21408281bba5da107b9c17e74bdee2f28a532d14f874"
-
-inherit autotools-brokensep pkgconfig systemd
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libtdb] = "--without-included-tdb,--with-included-tdb,libtdb"
-
-PARALLEL_MAKE = ""
-
-DEPENDS += "popt libtevent libtalloc libldb libtirpc"
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDFLAGS += "-ltirpc"
-
-# ctdbd_wrapper requires pgrep, hence procps
-RDEPENDS_${PN} += "procps"
-
-do_configure() {
- gnu-configize --force ${S}
- oe_runconf
-}
-
-do_install_append() {
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/config/ctdb.service ${D}${systemd_unitdir}/system
- sed -i -e 's,/usr/sbin/,${sbindir}/,' ${D}${systemd_unitdir}/system/ctdb.service
- sed -i -e 's,\([=\ ]\)/run/,\1${localstatedir}/run/,' ${D}${systemd_unitdir}/system/ctdb.service
-
- rm -r ${D}/${localstatedir}/run
-}
-
-# The systemd service is disabled by default, as the service will fail to
-# start without /etc/ctdb/nodes. If the user supplies this, they can re-enable
-# the service.
-SYSTEMD_AUTO_ENABLE = "disable"
-SYSTEMD_SERVICE_${PN} = "ctdb.service"
-
-# onnode is a shell script with bashisms and bash #!
-RDEPENDS_${PN} += "bash"
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 340f57dc7e..131f1873a2 100644
--- a/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
+++ b/meta-networking/recipes-support/curlpp/curlpp_0.8.1.bb
@@ -2,12 +2,13 @@ SUMMARY = "C++ library for client-side URL transfers"
HOMEPAGE = "http://www.curlpp.org/"
SECTION = "libdevel"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+LIC_FILES_CHKSUM = "file://doc/LICENSE;md5=fd0c9adf285a69aa3b4faf34384e1029"
DEPENDS = "curl"
-DEPENDS_class-native = "curl-native"
+DEPENDS:class-native = "curl-native"
-SRC_URI = "git://github.com/jpbarrette/curlpp.git"
+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"
@@ -15,19 +16,11 @@ S = "${WORKDIR}/git"
inherit cmake pkgconfig binconfig
-do_install_append () {
- sed -i 's,${STAGING_DIR_TARGET},,g' ${D}${libdir}/pkgconfig/curlpp.pc
-}
-
-PACKAGES =+ "libcurlpp libcurlpp-dev libcurlpp-staticdev"
-
-FILES_lib${BPN} = "${libdir}/lib*.so.*"
-
-FILES_lib${BPN}-dev = "${includedir} \
- ${libdir}/pkgconfig \
- ${bindir}/*-config \
-"
-
-FILES_lib${BPN}-staticdev = "${libdir}/lib*.a"
-
BBCLASSEXTEND = "native nativesdk"
+
+do_install:append() {
+ sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
+ -i ${D}${libdir}/pkgconfig/*.pc
+}
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc b/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
deleted file mode 100644
index 4f4bbf144a..0000000000
--- a/meta-networking/recipes-support/dnsmasq/dnsmasq.inc
+++ /dev/null
@@ -1,83 +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 = "GPLv2 | GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
- 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 \
-"
-
-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 -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
index 0991dd8b95..f8697699ac 100644
--- a/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
+++ b/meta-networking/recipes-support/dnsmasq/dnsmasq/lua.patch
@@ -1,12 +1,14 @@
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]
+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>
---
+Upstream-Status: Pending
+
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
@@ -14,7 +16,7 @@ diff --git a/Makefile b/Makefile
index 73ea23e..ed3eeb9 100644
--- a/Makefile
+++ b/Makefile
-@@ -59,8 +59,8 @@ idn2_cflags = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_LIBIDN2 $(PKG_CONFI
+@@ -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`
@@ -22,9 +24,10 @@ index 73ea23e..ed3eeb9 100644
-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`
- nettle_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC $(PKG_CONFIG) --libs nettle hogweed`
- gmp_libs = `echo $(COPTS) | $(top)/bld/pkg-wrapper HAVE_DNSSEC NO_GMP --copy -lgmp`
+ 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.78.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
deleted file mode 100644
index 4d1dc6e69e..0000000000
--- a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.78.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require dnsmasq.inc
-
-SRC_URI += "\
- file://lua.patch \
-"
-
-SRC_URI[dnsmasq-2.78.md5sum] = "3bb97f264c73853f802bf70610150788"
-SRC_URI[dnsmasq-2.78.sha256sum] = "c92e5d78aa6353354d02aabf74590d08980bb1385d8a00b80ef9bc80430aa1dc"
diff --git a/meta-networking/recipes-support/dnsmasq/dnsmasq_2.89.bb b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.89.bb
new file mode 100644
index 0000000000..684eb44320
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/dnsmasq_2.89.bb
@@ -0,0 +1,131 @@
+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://lua.patch \
+ file://init \
+ file://dnsmasq.conf \
+ file://dnsmasq-resolvconf.service \
+ file://dnsmasq-noresolvconf.service \
+ file://dnsmasq-resolved.conf \
+ file://CVE-2023-28450.patch \
+"
+SRC_URI[sha256sum] = "8651373d000cae23776256e83dcaa6723dee72c06a39362700344e0c12c4e7e4"
+
+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/dnsmasq/files/CVE-2023-28450.patch b/meta-networking/recipes-support/dnsmasq/files/CVE-2023-28450.patch
new file mode 100644
index 0000000000..129c9043e8
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/files/CVE-2023-28450.patch
@@ -0,0 +1,48 @@
+From eb92fb32b746f2104b0f370b5b295bb8dd4bd5e5 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Tue, 7 Mar 2023 22:07:46 +0000
+Subject: [PATCH] Set the default maximum DNS UDP packet size to 1232.
+
+http://www.dnsflagday.net/2020/ refers.
+
+Thanks to Xiang Li for the prompt.
+
+CVE: CVE-2023-28450
+Upstream-Status: Backport [https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=eb92fb32b746f2104b0f370b5b295bb8dd4bd5e5]
+
+Signed-off-by: Peter Marko <peter.marko@siemens.com>
+---
+ man/dnsmasq.8 | 3 ++-
+ src/config.h | 2 +-
+ 2 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/man/dnsmasq.8 b/man/dnsmasq.8
+index 41e2e04..5acb935 100644
+--- a/man/dnsmasq.8
++++ b/man/dnsmasq.8
+@@ -183,7 +183,8 @@ to zero completely disables DNS function, leaving only DHCP and/or TFTP.
+ .TP
+ .B \-P, --edns-packet-max=<size>
+ Specify the largest EDNS.0 UDP packet which is supported by the DNS
+-forwarder. Defaults to 4096, which is the RFC5625-recommended size.
++forwarder. Defaults to 1232, which is the recommended size following the
++DNS flag day in 2020. Only increase if you know what you are doing.
+ .TP
+ .B \-Q, --query-port=<query_port>
+ Send outbound DNS queries from, and listen for their replies on, the
+diff --git a/src/config.h b/src/config.h
+index 1e7b30f..37b374e 100644
+--- a/src/config.h
++++ b/src/config.h
+@@ -19,7 +19,7 @@
+ #define CHILD_LIFETIME 150 /* secs 'till terminated (RFC1035 suggests > 120s) */
+ #define TCP_MAX_QUERIES 100 /* Maximum number of queries per incoming TCP connection */
+ #define TCP_BACKLOG 32 /* kernel backlog limit for TCP connections */
+-#define EDNS_PKTSZ 4096 /* default max EDNS.0 UDP packet from RFC5625 */
++#define EDNS_PKTSZ 1232 /* default max EDNS.0 UDP packet from from /dnsflagday.net/2020 */
+ #define SAFE_PKTSZ 1232 /* "go anywhere" UDP packet size, see https://dnsflagday.net/2020/ */
+ #define KEYBLOCK_LEN 40 /* choose to minimise fragmentation when storing DNSSEC keys */
+ #define DNSSEC_WORK 50 /* Max number of queries to validate one question */
+--
+2.20.1
+
diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service
index 2980f7def6..ef2f3f7e41 100644
--- a/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service
+++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolvconf.service
@@ -8,7 +8,7 @@ PIDFile=/run/dnsmasq.pid
ExecStartPre=/usr/bin/dnsmasq --test
ExecStart=/usr/bin/dnsmasq -x /run/dnsmasq.pid -7 /etc/dnsmasq.d --local-service
ExecStartPost=/usr/bin/dnsmasq-resolvconf-helper start
-ExecStopPre=/usr/bin/dnsmasq-resolvconf-helper stop
+ExecStop=/usr/bin/dnsmasq-resolvconf-helper stop
ExecStop=/bin/kill $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolved.conf b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolved.conf
new file mode 100644
index 0000000000..33f4649637
--- /dev/null
+++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq-resolved.conf
@@ -0,0 +1,3 @@
+# Avoid conflicts between dnsmasq and systemd-resolved about port 53
+[Resolve]
+DNSStubListener=no
diff --git a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
index 9e5ab9f81b..2897b90300 100755
--- a/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
+++ b/meta-networking/recipes-support/dnsmasq/files/dnsmasq.conf
@@ -2,7 +2,7 @@
#
# Format is one option per line, legal options are the same
# as the long options legal on the command line. See
-# "/usr/sbin/dnsmasq --help" or "man 8 dnsmasq" for details.
+# "/usr/bin/dnsmasq --help" or "man 8 dnsmasq" for details.
# Listen on this specific port instead of the standard DNS port
# (53). Setting this to zero completely disables DNS function,
diff --git a/meta-networking/recipes-support/dnsmasq/files/init b/meta-networking/recipes-support/dnsmasq/files/init
index 51c95dfedd..43c286f9c7 100644
--- a/meta-networking/recipes-support/dnsmasq/files/init
+++ b/meta-networking/recipes-support/dnsmasq/files/init
@@ -16,7 +16,7 @@ fi
DNSMASQ_CONF="/etc/dnsmasq.conf"
test "/etc/dnsmasq.d/*" != '/etc/dnsmasq.d/*' && DNSMASQ_CONF="${DNSMASQ_CONF} /etc/dnsmasq.d/*"
-test -z "${PIDFILE}" && PIFILE="/run/dnsmasq.pid"
+test -z "${PIDFILE}" && PIDFILE="/run/dnsmasq.pid"
if [ -z "$IGNORE_RESOLVCONF" ]
then
diff --git a/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb b/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb
deleted file mode 100644
index ca59bd2170..0000000000
--- a/meta-networking/recipes-support/dnssec-conf/dnssec-conf_2.02.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "DNSSEC and DLV configuration and priming tool"
-DESCRIPTION = "\
-DNSSEC configuration and priming tool. Keys are required until the root \
-is signed, as well as for local unpublished DNSSEC keys to be preloaded \
-into the recursive nameserver. These DNSSEC configuration files can be \
-directly included in the bind or unbound nameserver configuration files. \
-dnssec-conf includes a commandline configuration client for Bind and \
-Unbound, known DNSSEC keys, URL's to official publication pages of keys, \
-and harvested keys, as well a script to harvest DNSKEY's from DNS. \
-See also: system-config-dnssec"
-HOMEPAGE = "https://github.com/xelerance/dnssec-conf"
-SECTION = "net"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0636e73ff0215e8d672dc4c32c317bb3"
-DEPENDS += "xmlto-native docbook-xml-dtd4-native \
- docbook-xsl-stylesheets-native libxslt-native"
-
-SRC_URI = "git://github.com/xelerance/dnssec-conf.git"
-SRCREV = "8e799683736b4a7b5e5e78f98fba0a6f48393537"
-
-S = "${WORKDIR}/git"
-
-do_install () {
- rm -rf ${D}
- make PREFIX=${prefix} DESTDIR=${D} ETCDIR=${D}${sysconfdir} install
- # We no longer ship trust anchors. Most of these are in the DLV Registry now.
- # and it prevents the problem of shipping outdated trust anchors.
- # For DLV, we ship the ISC DLV Registry key
- rm -rf ${D}${sysconfdir}/pki/dnssec-keys/harvest/*
- rm -rf ${D}${sysconfdir}/pki/dnssec-keys/production/reverse/*
- install -d -m 0755 ${D}${sysconfdir}/sysconfig
- install -m 0644 packaging/fedora/dnssec.sysconfig ${D}${sysconfdir}/sysconfig/dnssec
-}
-
-RDEPENDS_${PN} = "python"
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 f86235076e..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,62 +5,69 @@ 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>
+
+Signed-off-by: Wang Mingyu <wangmy@cn.fujitsu.com>
---
- configure.ac | 15 +++++----------
- 1 file changed, 5 insertions(+), 10 deletions(-)
+ m4/glibc.m4 | 6 ++----
+ m4/ioloop.m4 | 9 +++------
+ 2 files changed, 5 insertions(+), 10 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 3b32614..94ec002 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -519,13 +519,10 @@ have_ioloop=no
-
- if test "$ioloop" = "best" || test "$ioloop" = "epoll"; then
- AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[
+diff --git a/m4/glibc.m4 b/m4/glibc.m4
+index 5d722aa..ce088d3 100644
+--- a/m4/glibc.m4
++++ b/m4/glibc.m4
+@@ -17,7 +17,7 @@ AC_DEFUN([DOVECOT_GLIBC], [
+ dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it.
+ dnl * It may also be broken in AIX.
+ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
- AC_TRY_RUN([
+ AC_TRY_LINK([
- #include <sys/epoll.h>
--
-- int main()
-- {
-- return epoll_create(5) < 1;
+ #define _XOPEN_SOURCE 600
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -26,7 +26,7 @@ AC_DEFUN([DOVECOT_GLIBC], [
+ #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7)
+ possibly broken posix_fallocate
+ #endif
+- int main() {
++ ], [
+ int fd = creat("conftest.temp", 0600);
+ int ret;
+ if (fd == -1) {
+@@ -35,8 +35,6 @@ AC_DEFUN([DOVECOT_GLIBC], [
+ }
+ ret = posix_fallocate(fd, 1024, 1024) < 0 ? 1 : 0;
+ unlink("conftest.temp");
+- return ret;
- }
-+ ], [
-+ epoll_create(5) < 1;
], [
- i_cv_epoll_works=yes
+ i_cv_posix_fallocate_works=yes
], [
-@@ -653,7 +650,7 @@ fi
- dnl * Old glibcs have broken posix_fallocate(). Make sure not to use it.
- dnl * It may also be broken in AIX.
- AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
-- AC_TRY_RUN([
-+ AC_TRY_LINK([
- #define _XOPEN_SOURCE 600
- #include <stdio.h>
- #include <stdlib.h>
-@@ -662,7 +659,7 @@ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
- #if defined(__GLIBC__) && (__GLIBC__ < 2 || __GLIBC_MINOR__ < 7)
- possibly broken posix_fallocate
- #endif
-- int main() {
-+ ], [
- int fd = creat("conftest.temp", 0600);
- int ret;
- if (fd == -1) {
-@@ -671,8 +668,6 @@ AC_CACHE_CHECK([whether posix_fallocate() works],i_cv_posix_fallocate_works,[
- }
- ret = posix_fallocate(fd, 1024, 1024) < 0 ? 1 : 0;
- unlink("conftest.temp");
-- return ret;
-- }
- ], [
- i_cv_posix_fallocate_works=yes
- ], [
+diff --git a/m4/ioloop.m4 b/m4/ioloop.m4
+index 0f7dde0..f40fd62 100644
+--- a/m4/ioloop.m4
++++ b/m4/ioloop.m4
+@@ -4,13 +4,10 @@ AC_DEFUN([DOVECOT_IOLOOP], [
+
+ if test "$ioloop" = "best" || test "$ioloop" = "epoll"; then
+ AC_CACHE_CHECK([whether we can use epoll],i_cv_epoll_works,[
+- AC_TRY_RUN([
++ AC_TRY_LINK([
+ #include <sys/epoll.h>
+-
+- int main()
+- {
+- return epoll_create(5) < 1;
+- }
++ ], [
++ epoll_create(5) < 1;
+ ], [
+ i_cv_epoll_works=yes
+ ], [
--
-1.8.4.2
+2.25.1
diff --git a/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch b/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch
deleted file mode 100644
index 65ae9bf910..0000000000
--- a/meta-networking/recipes-support/dovecot/dovecot/0001-doveadm-Fix-parallel-build.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From be9b3809b86fe593dbb16f0b981b3d315a27b799 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 22 Oct 2017 22:10:41 -0700
-Subject: [PATCH] doveadm: Fix parallel build
-
-Sometimes dovetail build fails with errors like
-
-doveadm-util.o: file not recognized: File truncated
-collect2: error: ld returned 1 exit status
-make[4]: *** [Makefile:812: test-doveadm-util] Error 1
-
-This is partial backport from
-
-https://github.com/dovecot/core/commit/b200bc3875fa06d42c8619865cc306c3297fcacc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/doveadm/Makefile.am | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/doveadm/Makefile.am b/src/doveadm/Makefile.am
-index c644646..6ae9144 100644
---- a/src/doveadm/Makefile.am
-+++ b/src/doveadm/Makefile.am
-@@ -180,8 +180,8 @@ test_libs = \
- ../lib/liblib.la
- test_deps = $(noinst_LTLIBRARIES) $(test_libs)
-
--test_doveadm_util_SOURCES = test-doveadm-util.c
--test_doveadm_util_LDADD = doveadm-util.o $(test_libs) $(MODULE_LIBS)
-+test_doveadm_util_SOURCES = doveadm-util.c test-doveadm-util.c
-+test_doveadm_util_LDADD = $(test_libs) $(MODULE_LIBS)
- test_doveadm_util_DEPENDENCIES = $(test_deps)
-
- check: check-am check-test
---
-2.14.2
-
diff --git a/meta-networking/recipes-support/dovecot/dovecot/0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch b/meta-networking/recipes-support/dovecot/dovecot/0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch
new file mode 100644
index 0000000000..ec7a26a329
--- /dev/null
+++ b/meta-networking/recipes-support/dovecot/dovecot/0001-m4-Check-for-libunwind-instead-of-libunwind-generic.patch
@@ -0,0 +1,30 @@
+From 6c0ff65f782ad38130b18e4ecb1538d9a8633684 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 29 May 2021 14:32:17 -0700
+Subject: [PATCH] m4: Check for libunwind instead of libunwind-generic
+
+libunwind-generic is specific to nongnu libunwind, when using llvm
+libunwind this fails, so poking for libunwind make it generic
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/want_unwind.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/want_unwind.m4 b/m4/want_unwind.m4
+index cadb62b..5517314 100644
+--- a/m4/want_unwind.m4
++++ b/m4/want_unwind.m4
+@@ -2,7 +2,7 @@ AC_DEFUN([DOVECOT_WANT_UNWIND], [
+ have_libunwind=no
+ AS_IF([test "$want_libunwind" != "no"], [
+ PKG_CHECK_EXISTS([libunwind], [
+- PKG_CHECK_MODULES([LIBUNWIND], [libunwind-generic],[
++ PKG_CHECK_MODULES([LIBUNWIND], [libunwind],[
+ have_libunwind=yes
+ AC_DEFINE([HAVE_LIBUNWIND],,[Define this if you have libunwind])
+ ])
+--
+2.31.1
+
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
new file mode 100644
index 0000000000..af69c82f0f
--- /dev/null
+++ b/meta-networking/recipes-support/dovecot/dovecot/0001-not-check-pandoc.patch
@@ -0,0 +1,28 @@
+From 8c7d143ff28441c8b74b0f518dd2281239aede3d Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@cn.fujitsu.com>
+Date: Fri, 15 Jan 2021 11:10:22 +0900
+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/m4/dovecot.m4 b/m4/dovecot.m4
+index 2b5d895..ece8489 100644
+--- a/m4/dovecot.m4
++++ b/m4/dovecot.m4
+@@ -447,7 +447,7 @@ AC_DEFUN([DC_PANDOC], [
+ dnl Optional tool for making documentation
+ AC_CHECK_PROGS(PANDOC, [pandoc], [true])
+
+- AS_IF([test "$PANDOC" = "true"], [
++ AS_IF([test "$PANDOC" = "false"], [
+ AS_IF([test ! -e README], [
+ AC_MSG_ERROR([Cannot produce documentation without pandoc - disable with PANDOC=false ./configure])
+ ])
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb b/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb
deleted file mode 100644
index 882d5d5543..0000000000
--- a/meta-networking/recipes-support/dovecot/dovecot_2.2.33.bb
+++ /dev/null
@@ -1,69 +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 = "LGPLv2.1 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a981379bd0f1c362f8d1d21515e5b30b"
-
-SRC_URI = "http://dovecot.org/releases/2.2/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-doveadm-Fix-parallel-build.patch \
- "
-
-SRC_URI[md5sum] = "d61d1e923a22f9062cc9f47696882666"
-SRC_URI[sha256sum] = "e9483d68a7698d701bc06124fcf6e1b1f16380c2986c7ec0cf4e1475b9d0c218"
-
-DEPENDS = "openssl xz zlib bzip2 libcap icu libtirpc"
-CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDFLAGS += "-ltirpc"
-
-inherit autotools pkgconfig systemd useradd
-
-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"
-
-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"
diff --git a/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb b/meta-networking/recipes-support/dovecot/dovecot_2.3.20.bb
new file mode 100644
index 0000000000..e41dd93f5d
--- /dev/null
+++ b/meta-networking/recipes-support/dovecot/dovecot_2.3.20.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] = "caa832eb968148abdf35ee9d0f534b779fa732c0ce4a913d9ab8c3469b218552"
+
+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-Makefile.in-fix-permission-bits-for-drbd.service.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch
deleted file mode 100644
index 90dd1f8618..0000000000
--- a/meta-networking/recipes-support/drbd/drbd-utils/0001-Makefile.in-fix-permission-bits-for-drbd.service.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream-Status: Pending
-
-Subject: Makefile.in: fix permission bits for drbd.service
-
-Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
----
- scripts/Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/Makefile.in b/scripts/Makefile.in
-index 402b93b..4a45407 100644
---- a/scripts/Makefile.in
-+++ b/scripts/Makefile.in
-@@ -65,7 +65,7 @@ endif
- # yes, debian apparently allows installing both types from the same package
- ifneq ($(initscripttype),sysv) # "systemd" or "both"
- install -d $(DESTDIR)$(systemdunitdir)
-- install -m 755 drbd.service $(DESTDIR)$(systemdunitdir)/
-+ install -m 644 drbd.service $(DESTDIR)$(systemdunitdir)/
- install -d $(DESTDIR)/lib/drbd/
- install -m 755 drbd $(DESTDIR)/lib/drbd/
- install -d $(DESTDIR)$(tmpfilesdir)/
---
-1.9.1
-
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
new file mode 100644
index 0000000000..4e1f68be09
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-drbd-utils-support-usrmerge.patch
@@ -0,0 +1,204 @@
+From 69011c7227ad1aaf08d5ab28e46f85dac951c597 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]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+ configure.ac | 2 +-
+ scripts/Makefile.in | 10 +++++-----
+ scripts/drbd-demote-or-escalate@.service | 2 +-
+ scripts/drbd-promote@.service | 4 ++--
+ scripts/drbd-wait-promotable@.service | 2 +-
+ scripts/drbd.service | 6 +++---
+ scripts/drbd@.service | 6 +++---
+ scripts/ocf.ra@.service | 4 ++--
+ user/v83/Makefile.in | 14 +++++++-------
+ user/v84/Makefile.in | 14 +++++++-------
+ 10 files changed, 32 insertions(+), 32 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index ae575586..3d7deeae 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -180,7 +180,7 @@ AC_ARG_WITH(tmpfilesdir,
+ AC_SUBST(tmpfilesdir)
+
+ # set default early
+-default_udevdir=/lib/udev
++default_udevdir=${prefix}/lib/udev
+ if test x"$with_udev" = x || \
+ 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
+--- a/scripts/Makefile.in
++++ b/scripts/Makefile.in
+@@ -88,11 +88,11 @@ ifeq ($(subst both,systemd,$(initscripttype)),systemd)
+ install -d $(DESTDIR)$(systemdunitdir)
+ install -m 644 drbd.service $(DESTDIR)$(systemdunitdir)/
+ install -m 644 $(SYSTEMD_TEMPLATES) $(DESTDIR)$(systemdunitdir)/
+- install -d $(DESTDIR)/lib/drbd/scripts
+- install -m 755 drbd $(DESTDIR)/lib/drbd/scripts
+- install -m 755 drbd-service-shim.sh $(DESTDIR)/lib/drbd/scripts
+- install -m 755 drbd-wait-promotable.sh $(DESTDIR)/lib/drbd/scripts
+- install -m 755 ocf.ra.wrapper.sh $(DESTDIR)/lib/drbd/scripts
++ install -d $(DESTDIR)/${nonarch_libdir}/drbd/scripts
++ install -m 755 drbd $(DESTDIR)/${nonarch_libdir}/drbd/scripts
++ install -m 755 drbd-service-shim.sh $(DESTDIR)/${nonarch_libdir}/drbd/scripts
++ install -m 755 drbd-wait-promotable.sh $(DESTDIR)/${nonarch_libdir}/drbd/scripts
++ install -m 755 ocf.ra.wrapper.sh $(DESTDIR)/${nonarch_libdir}/drbd/scripts
+ install -d $(DESTDIR)$(tmpfilesdir)/
+ install -m 444 drbd.tmpfiles.conf $(DESTDIR)$(tmpfilesdir)/drbd.conf
+ endif
+diff --git a/scripts/drbd-demote-or-escalate@.service b/scripts/drbd-demote-or-escalate@.service
+index 20932238..8b5ce4a2 100644
+--- a/scripts/drbd-demote-or-escalate@.service
++++ b/scripts/drbd-demote-or-escalate@.service
+@@ -28,5 +28,5 @@ TimeoutSec=60
+ # "Type=forking" would be an option to have it retry a number of times,
+ # and then only escalate to FailureAction if that did not help.
+ Type=oneshot
+-ExecStart=/lib/drbd/scripts/drbd-service-shim.sh secondary-or-escalate %I
++ExecStart=@nonarch_libdir@/drbd/scripts/drbd-service-shim.sh secondary-or-escalate %I
+ ExecStopPost=-/bin/journalctl --sync
+diff --git a/scripts/drbd-promote@.service b/scripts/drbd-promote@.service
+index 71345d9b..678e0703 100644
+--- a/scripts/drbd-promote@.service
++++ b/scripts/drbd-promote@.service
+@@ -24,5 +24,5 @@ RemainAfterExit=yes
+ # (ab)using systemd features
+ # if we cannot configure and promote, that's a condition, not a failure
+ # See the comment above wrt. FailureAction vs OnFailure
+-ExecCondition=/lib/drbd/scripts/drbd-service-shim.sh primary %I
+-ExecStop=/lib/drbd/scripts/drbd-service-shim.sh secondary %I
++ExecCondition=@nonarch_libdir@/drbd/scripts/drbd-service-shim.sh primary %I
++ExecStop=@nonarch_libdir@/drbd/scripts/drbd-service-shim.sh secondary %I
+diff --git a/scripts/drbd-wait-promotable@.service b/scripts/drbd-wait-promotable@.service
+index 81c3789f..3416abc6 100644
+--- a/scripts/drbd-wait-promotable@.service
++++ b/scripts/drbd-wait-promotable@.service
+@@ -10,7 +10,7 @@ Type=oneshot
+
+ # on first start, wait for access to "good data"
+ # let systemd handle timeouts
+-ExecStart=/lib/drbd/scripts/drbd-wait-promotable.sh %I
++ExecStart=@nonarch_libdir@/drbd/scripts/drbd-wait-promotable.sh %I
+ RemainAfterExit=yes
+
+ [Install]
+diff --git a/scripts/drbd.service b/scripts/drbd.service
+index 96c599e7..c81e95a6 100644
+--- a/scripts/drbd.service
++++ b/scripts/drbd.service
+@@ -12,11 +12,11 @@ RemainAfterExit=yes
+ # A check for INIT_VERSION already exists, just set it to something.
+ Environment=INIT_VERSION=systemd
+
+-ExecStart=/lib/drbd/scripts/drbd start
+-ExecStop=/lib/drbd/scripts/drbd stop
++ExecStart=@nonarch_libdir@/drbd/scripts/drbd start
++ExecStop=@nonarch_libdir@/drbd/scripts/drbd stop
+
+ # Re-adjust everything on reload
+-ExecReload=/lib/drbd/scripts/drbd reload
++ExecReload=@nonarch_libdir@/drbd/scripts/drbd reload
+
+ [Install]
+ WantedBy=multi-user.target
+diff --git a/scripts/drbd@.service b/scripts/drbd@.service
+index 76514c5b..e2e500ba 100644
+--- a/scripts/drbd@.service
++++ b/scripts/drbd@.service
+@@ -35,8 +35,8 @@ RemainAfterExit=yes
+
+ # depends... do we want this as ExecCondition or as ExecStart
+ # failed start is "failed", failed condition is just "not startable yet"
+-ExecStart=/lib/drbd/scripts/drbd-service-shim.sh adjust %I
+-ExecReload=/lib/drbd/scripts/drbd-service-shim.sh adjust %I
++ExecStart=@nonarch_libdir@/drbd/scripts/drbd-service-shim.sh adjust %I
++ExecReload=@nonarch_libdir@/drbd/scripts/drbd-service-shim.sh adjust %I
+
+ # can only succeed, if you first stop all depending services
+-ExecStopPost=/lib/drbd/scripts/drbd-service-shim.sh down %I
++ExecStopPost=@nonarch_libdir@/drbd/scripts/drbd-service-shim.sh down %I
+diff --git a/scripts/ocf.ra@.service b/scripts/ocf.ra@.service
+index 9c2268a6..1666c482 100644
+--- a/scripts/ocf.ra@.service
++++ b/scripts/ocf.ra@.service
+@@ -22,5 +22,5 @@ Environment=monitor_inverval=30
+ # Only the first argument is used by the wrapper,
+ # the %n is just to identify which is which in the process list.
+ # All parameterization is done via Environment= in per instance override.conf
+-ExecStart=/lib/drbd/scripts/ocf.ra.wrapper.sh start-and-monitor %n
+-ExecStopPost=/lib/drbd/scripts/ocf.ra.wrapper.sh stop %n
++ExecStart=@nonarch_libdir@/drbd/scripts/ocf.ra.wrapper.sh start-and-monitor %n
++ExecStopPost=@nonarch_libdir@/drbd/scripts/ocf.ra.wrapper.sh stop %n
+diff --git a/user/v83/Makefile.in b/user/v83/Makefile.in
+index 08cfe574..4c4971b6 100644
+--- a/user/v83/Makefile.in
++++ b/user/v83/Makefile.in
+@@ -96,19 +96,19 @@ install:
+ ifeq ($(WITH_83_SUPPORT),yes)
+ install -d $(DESTDIR)$(localstatedir)/lib/drbd
+ install -d $(DESTDIR)$(localstatedir)/lock
+- install -d $(DESTDIR)/lib/drbd/
++ install -d $(DESTDIR)/${nonarch_libdir}/drbd/
+ if getent group haclient > /dev/null 2> /dev/null ; then \
+- install -g haclient -m 4750 drbdsetup-83 $(DESTDIR)/lib/drbd/ ; \
+- install -m 755 drbdadm-83 $(DESTDIR)/lib/drbd/ ; \
++ install -g haclient -m 4750 drbdsetup-83 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
++ install -m 755 drbdadm-83 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
+ else \
+- install -m 755 drbdsetup-83 $(DESTDIR)/lib/drbd/ ; \
+- install -m 755 drbdadm-83 $(DESTDIR)/lib/drbd/ ; \
++ install -m 755 drbdsetup-83 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
++ install -m 755 drbdadm-83 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
+ fi
+ endif
+
+ uninstall:
+- rm -f $(DESTDIR)/lib/drbd/drbdsetup-83
+- rm -f $(DESTDIR)/lib/drbd/drbdadm-83
++ rm -f $(DESTDIR)/${nonarch_libdir}/drbd/drbdsetup-83
++ rm -f $(DESTDIR)/${nonarch_libdir}/drbd/drbdadm-83
+
+ .PHONY: install uninstall clean distclean
+ ../../configure:
+diff --git a/user/v84/Makefile.in b/user/v84/Makefile.in
+index 0fcefc5f..81f7d5ec 100644
+--- a/user/v84/Makefile.in
++++ b/user/v84/Makefile.in
+@@ -110,19 +110,19 @@ ifeq ($(WITH_84_SUPPORT),yes)
+ install -d $(DESTDIR)$(localstatedir)/lib/drbd
+ install -d $(DESTDIR)$(localstatedir)/run/drbd
+ install -d $(DESTDIR)$(localstatedir)/lock
+- install -d $(DESTDIR)/lib/drbd/
++ install -d $(DESTDIR)/${nonarch_libdir}/drbd/
+ if getent group haclient > /dev/null 2> /dev/null ; then \
+- install -g haclient -m 4750 drbdsetup-84 $(DESTDIR)/lib/drbd/ ; \
+- install -m 755 drbdadm-84 $(DESTDIR)/lib/drbd/ ; \
++ install -g haclient -m 4750 drbdsetup-84 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
++ install -m 755 drbdadm-84 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
+ else \
+- install -m 755 drbdsetup-84 $(DESTDIR)/lib/drbd/ ; \
+- install -m 755 drbdadm-84 $(DESTDIR)/lib/drbd/ ; \
++ install -m 755 drbdsetup-84 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
++ install -m 755 drbdadm-84 $(DESTDIR)/${nonarch_libdir}/drbd/ ; \
+ fi
+ endif
+
+ uninstall:
+- rm -f $(DESTDIR)/lib/drbd/drbdsetup-84
+- rm -f $(DESTDIR)/lib/drbd/drbdadm-84
++ rm -f $(DESTDIR)/${nonarch_libdir}/drbd/drbdsetup-84
++ rm -f $(DESTDIR)/${nonarch_libdir}/drbd/drbdadm-84
+
+ 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
new file mode 100644
index 0000000000..0bf4b2fce1
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-drbdmon-add-LDFLAGS-when-linking.patch
@@ -0,0 +1,31 @@
+From a61b9ff2d2cb7387a5cd347b2201535ee45a46ee 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
+
+Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com>
+---
+Upstream-Status: Pending
+
+ user/drbdmon/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/user/drbdmon/Makefile.in
++++ b/user/drbdmon/Makefile.in
+@@ -1,6 +1,6 @@
+ CXXFLAGS=-std=c++11 -I. -I../shared -Icppdsaext/src -Wall -Werror -pedantic-errors -fPIC -O2 \
+ -Wsign-compare -Wpointer-arith -Wswitch-default -Wswitch-enum -Wtype-limits \
+--Wmissing-declarations -Wshadow
++-Wmissing-declarations -Wshadow -Wno-defaulted-function-deleted -Wno-unused-private-field
+ CXX = @CXX@
+ LIBS = @LIBS@
+
+@@ -51,7 +51,7 @@ $(dsaext-obj): $(basename $(dsaext-obj))
+ $(integerparse-obj): $(basename $(integerparse-obj)).cpp $(basename $(integerparse-obj)).h
+
+ drbdmon: $(ls-obj)
+- $(CXX) -o $@ $(CPPFLAGS) $(CXXFLAGS) $^ $(LIBS)
++ $(CXX) -o $@ $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $^ $(LIBS)
+
+ # do not try to rebuild Makefile itself
+ Makefile: ;
diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0001-replace-off64_t-with-off_t.patch b/meta-networking/recipes-support/drbd/drbd-utils/0001-replace-off64_t-with-off_t.patch
new file mode 100644
index 0000000000..2841d0feaf
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0001-replace-off64_t-with-off_t.patch
@@ -0,0 +1,48 @@
+From 5adae6737e919d957a08df437951ccb6996f9882 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 21 Dec 2022 19:16:03 -0800
+Subject: [PATCH 1/2] replace off64_t with off_t
+
+off_t is already 64-bits when _FILE_OFFSET_BITS=64
+using off_t also makes it portable on musl systems
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ user/v9/drbdadm_main.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/user/v9/drbdadm_main.c b/user/v9/drbdadm_main.c
+index 91e9507d..2030946c 100644
+--- a/user/v9/drbdadm_main.c
++++ b/user/v9/drbdadm_main.c
+@@ -1264,11 +1264,11 @@ static int adm_resource(const struct cfg_ctx *ctx)
+ return ex;
+ }
+
+-static off64_t read_drbd_dev_size(int minor)
++static off_t read_drbd_dev_size(int minor)
+ {
+ char *path;
+ FILE *file;
+- off64_t val;
++ off_t val;
+ int r;
+
+ m_asprintf(&path, "/sys/block/drbd%d/size", minor);
+@@ -1289,9 +1289,9 @@ int adm_resize(const struct cfg_ctx *ctx)
+ char *argv[MAX_ARGS];
+ struct d_option *opt;
+ bool is_resize = !strcmp(ctx->cmd->name, "resize");
+- off64_t old_size = -1;
+- off64_t target_size = 0;
+- off64_t new_size;
++ off_t old_size = -1;
++ off_t target_size = 0;
++ off_t new_size;
+ int argc = 0;
+ int silent;
+ int ex;
+--
+2.39.0
+
diff --git a/meta-networking/recipes-support/drbd/drbd-utils/0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch b/meta-networking/recipes-support/drbd/drbd-utils/0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch
new file mode 100644
index 0000000000..45f7d6d415
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils/0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch
@@ -0,0 +1,96 @@
+From b70e5bf5bfa5fa2c2fffe08bcf300da1d3583602 Mon Sep 17 00:00:00 2001
+From: Lars Ellenberg <lars.ellenberg@linbit.com>
+Date: Wed, 9 Nov 2022 11:01:54 +0100
+Subject: [PATCH 2/2] drbdadm: drop use of GLOB_MAGCHAR, use strchr heuristic only
+
+Fixup for
+2022-09-05 4a1b5900 drbdadm: allow files from an expanded include glob to vanish
+
+When using the `include` statement, if the glob did not match any file,
+there is nothing to do, silently ignore. Unless it was no glob, but a literal,
+which we would expect to exist.
+
+Also, there is a race between expanding a glob and accessing the file.
+That also should not happen for literals, though.
+
+Since we still had the heuristic anyways, because apparently |GLOB_MAGCHAR
+does not happen for GLOB_NOMATCH returns, and there exist non-GNU libc that
+don't (and likely won't) implement that extension, just forget about
+(gl_flags & GLOB_MAGCHAR) but use the incomplete strchr heuristic only.
+
+Sourced From Alpine: https://git.alpinelinux.org/aports/tree/main/drbd-utils/drop_use_of_GLOB_MAGCHAR.patch
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ user/v9/drbdadm_parser.c | 35 ++++++++++++++++++++---------------
+ 1 file changed, 20 insertions(+), 15 deletions(-)
+
+diff --git a/user/v9/drbdadm_parser.c b/user/v9/drbdadm_parser.c
+index b2f6ed8a..9a0a775d 100644
+--- a/user/v9/drbdadm_parser.c
++++ b/user/v9/drbdadm_parser.c
+@@ -1947,14 +1947,29 @@ void include_stmt(char *str)
+ size_t i;
+ int r;
+
+- cwd = pushd_to_current_config_file_unless_stdin();
+-
+- /* """
++ /*
++ * If the glob did not match any file,
++ * there is nothing to do, silently ignore.
++ * Unless it was no glob, but a literal,
++ * which we would expect to exist.
++ *
++ * """
+ * As a GNU extension, pglob->gl_flags is set to the
+ * flags specified, ored with GLOB_MAGCHAR if any
+ * metacharacters were found.
+ * """
++ *
++ * But apparently |GLOB_MAGCHAR does not happen for GLOB_NOMATCH returns,
++ * at least not consistently :-(
++ * Also, there exist non-GNU libc
++ * So we have this incomplete strchr heuristic anyways.
+ */
++ bool contains_glob_magic_char =
++ strchr(str, '*') ||
++ strchr(str, '?') ||
++ strchr(str, '[');
++
++ cwd = pushd_to_current_config_file_unless_stdin();
+ r = glob(str, 0, NULL, &glob_buf);
+ if (r == 0) {
+ for (i=0; i<glob_buf.gl_pathc; i++) {
+@@ -1965,7 +1980,7 @@ void include_stmt(char *str)
+ if (f) {
+ include_file(f, strdup(glob_buf.gl_pathv[i]));
+ fclose(f);
+- } else if (errno == ENOENT && glob_buf.gl_flags & GLOB_MAGCHAR) {
++ } else if (errno == ENOENT && contains_glob_magic_char) {
+ /* Noisily ignore race between glob expansion
+ * and actual open. */
+ err("%s:%d: include file vanished after glob expansion '%s'.\n",
+@@ -1979,17 +1994,7 @@ void include_stmt(char *str)
+ }
+ globfree(&glob_buf);
+ } else if (r == GLOB_NOMATCH) {
+- /*
+- * If the glob did not match any file,
+- * there is nothing to do, silently ignore.
+- * Unless it was no glob, but a literal,
+- * which we would expect to exist.
+- * Apparently |GLOB_MAGCHAR does not happen for GLOB_NOMATCH returns,
+- * at least not consistently :-(
+- * So we have this strchr heuristic anyways.
+- */
+- /* if (!(glob_buf.gl_flags & GLOB_MAGCHAR)) { */
+- if (!strchr(str, '?') && !strchr(str, '*') && !strchr(str, '[')) {
++ if (!contains_glob_magic_char) {
+ err("%s:%d: Failed to open include file '%s'.\n",
+ config_save, line, str);
+ config_valid = 0;
+--
+2.39.0
+
diff --git a/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb b/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb
deleted file mode 100644
index 90c920447b..0000000000
--- a/meta-networking/recipes-support/drbd/drbd-utils_8.9.6.bb
+++ /dev/null
@@ -1,48 +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 = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
-
-SRC_URI = "http://www.linbit.com/downloads/drbd/utils/archive/${BP}.tar.gz \
- file://0001-Makefile.in-fix-permission-bits-for-drbd.service.patch \
- "
-SRC_URI[md5sum] = "76ed6d3190cd77b00890f3365353124b"
-SRC_URI[sha256sum] = "297b77c9b3f88de2e7dae459234f2753ea4fc2805282b2d276e35cf51e292913"
-
-UPSTREAM_CHECK_URI = "http://www.linbit.com/downloads/drbd/utils/"
-
-SYSTEMD_SERVICE_${PN} = "drbd.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-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\
- "
-
-do_install_append() {
- # don't install empty /var/lock to avoid conflict with base-files
- rm -rf ${D}${localstatedir}/lock
-}
-
-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"
-FILES_${PN}-dbg += "${nonarch_base_libdir}/drbd/.debug"
diff --git a/meta-networking/recipes-support/drbd/drbd-utils_9.22.0.bb b/meta-networking/recipes-support/drbd/drbd-utils_9.22.0.bb
new file mode 100644
index 0000000000..89bf529165
--- /dev/null
+++ b/meta-networking/recipes-support/drbd/drbd-utils_9.22.0.bb
@@ -0,0 +1,74 @@
+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=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 \
+ file://0001-replace-off64_t-with-off_t.patch \
+ ${@bb.utils.contains('DISTRO_FEATURES','usrmerge','file://0001-drbd-utils-support-usrmerge.patch','',d)} \
+ "
+SRC_URI:append:libc-musl = " file://0002-drbdadm-drop-use-of-GLOB_MAGCHAR-use-strchr-heuristi.patch "
+SRCREV_drbd-utils = "409097fe02187f83790b88ac3e0d94f3c167adab"
+SRCREV_drbd-headers = "9a0f151fa0085f57910a2dcbbd658d6069554f62"
+
+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_9.0.8-1.bb b/meta-networking/recipes-support/drbd/drbd_9.0.8-1.bb
deleted file mode 100644
index fa4d10b4c1..0000000000
--- a/meta-networking/recipes-support/drbd/drbd_9.0.8-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 = "GPLv2"
-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[md5sum] = "c1dd58043f46e9926b579aa65d4ea980"
-SRC_URI[sha256sum] = "87f72d46db9bad926415b3ab9f5f1397de8c581d2e2ec1addbdd5ce2604e6123"
-inherit module
-
-EXTRA_OEMAKE += "KDIR='${STAGING_KERNEL_DIR}'"
-
-do_install () {
- oe_runmake install DESTDIR="${D}"
-}
-
-PNBLACKLIST[drbd] = "implicit declaration of function 'setup_timer'; 4.15 head file issue?"
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/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch b/meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch
new file mode 100644
index 0000000000..18bffe55b2
--- /dev/null
+++ b/meta-networking/recipes-support/esmtp/esmtp/0001-Fix-libESMTP-dependency-check.patch
@@ -0,0 +1,46 @@
+From 63dbf8a9f04b34474021e8f0bf239b7446f10a7f Mon Sep 17 00:00:00 2001
+From: Jiaqing Zhao <jiaqing.zhao@linux.intel.com>
+Date: Thu, 3 Mar 2022 09:01:23 +0000
+Subject: [PATCH] Fix libESMTP dependency check
+
+Since libesmtp-1.1.0, libesmtp-config is removed, use pkg-config to
+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/configure.ac b/configure.ac
+index 64b19b4..83346a8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -11,6 +11,8 @@ AC_PROG_CC
+
+ AC_HEADER_STDC
+
++PKG_PROG_PKG_CONFIG
++
+ dnl getopt needs this
+ AC_C_CONST
+
+@@ -30,11 +32,11 @@ then
+ AC_CHECK_HEADER(libesmtp.h, ,[AC_MSG_ERROR([libesmtp.h not found in $with_libesmtp])])
+ fi
+ AC_MSG_CHECKING(for libESMTP)
+-if libesmtp-config --version > /dev/null 2>&1
++if $PKG_CONFIG --exists 'libesmtp-1.0'
+ then
+ AC_MSG_RESULT(yes)
+- CFLAGS="$CFLAGS `libesmtp-config --cflags`"
+- LIBS="$LIBS `libesmtp-config --libs`"
++ CFLAGS="$CFLAGS `$PKG_CONFIG --cflags 'libesmtp-1.0'`"
++ LIBS="$LIBS `$PKG_CONFIG --libs 'libesmtp-1.0'`"
+ else
+ AC_MSG_RESULT(no)
+ AC_MSG_ERROR(libESMTP library not found)
+--
+2.32.0
+
diff --git a/meta-networking/recipes-support/esmtp/esmtp_1.2.bb b/meta-networking/recipes-support/esmtp/esmtp_1.2.bb
index 2da73e7756..e60e1edd1f 100644
--- a/meta-networking/recipes-support/esmtp/esmtp_1.2.bb
+++ b/meta-networking/recipes-support/esmtp/esmtp_1.2.bb
@@ -8,23 +8,31 @@ SECTION = "net"
DEPENDS = "libesmtp"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BPN}-${PV}.tar.bz2"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${PV}/${BPN}-${PV}.tar.bz2 \
+ file://0001-Fix-libESMTP-dependency-check.patch \
+ "
# Have to set this or we get -L/lib in LDFLAGS
EXTRA_OECONF = "--with-libesmtp=${STAGING_EXECPREFIXDIR}"
-inherit autotools update-alternatives
-
-ALTERNATIVE_${PN} = "sendmail"
+inherit autotools update-alternatives pkgconfig
+ALTERNATIVE:${PN} = "sendmail mailq newaliases"
+# /usr/lib/sendmial is required by LSB core test
+ALTERNATIVE:${PN}:linuxstdbase = "sendmail mailq newaliases usr-lib-sendmail"
+ALTERNATIVE_TARGET[mailq] = "${bindir}/mailq"
+ALTERNATIVE_TARGET[newaliases] = "${bindir}/newaliases"
ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
ALTERNATIVE_TARGET[sendmail] = "${bindir}/esmtp"
+ALTERNATIVE_LINK_NAME[usr-lib-sendmail] = "/usr/lib/sendmail"
+ALTERNATIVE_TARGET[usr-lib-sendmail] = "${bindir}/esmtp"
+
ALTERNATIVE_PRIORITY = "10"
-ALTERNATIVE_${PN}-doc += "mailq.1 newaliases.1 sendmail.1"
+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"
@@ -32,14 +40,9 @@ ALTERNATIVE_LINK_NAME[sendmail.1] = "${mandir}/man1/sendmail.1"
SRC_URI[md5sum] = "79a9c1f9023d53f35bb82bf446150a72"
SRC_URI[sha256sum] = "a0d26931bf731f97514da266d079d8bc7d73c65b3499ed080576ab606b21c0ce"
-do_install_append() {
+do_install:append() {
# only one file /usr/lib/sendmail in ${D}${libdir}
rm -rf ${D}${libdir}
}
-pkg_postinst_${PN}_linuxstdbase () {
- # /usr/lib/sendmial is required by LSB core test
- [ ! -L $D/usr/lib/sendmail ] && ln -sf ${sbindir}/sendmail $D/usr/lib/
-}
-
-FILES_${PN} += "${libdir}/"
+FILES:${PN} += "${libdir}/"
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
new file mode 100644
index 0000000000..723d7c8f78
--- /dev/null
+++ b/meta-networking/recipes-support/ettercap/ettercap_0.8.3.1.bb
@@ -0,0 +1,47 @@
+SUMMARY = "A suite for man in the middle attacks"
+HOMEPAGE = "https://github.com/Ettercap/ettercap"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit cmake
+
+DEPENDS += "ethtool \
+ geoip \
+ librepo \
+ libnet \
+ libpcap \
+ libpcre \
+ ncurses \
+ openssl \
+ zlib \
+ bison-native \
+ flex-native \
+ "
+
+RDEPENDS:${PN} += "bash ethtool libgcc"
+
+SRC_URI = "gitsm://github.com/Ettercap/ettercap;branch=master;protocol=https \
+ file://0001-sslstrip-Enhance-the-libcurl-version-check-to-consid.patch"
+
+SRCREV = "7281fbddb7da7478beb1d21e3cb105fff3778b31"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = " \
+ -DCMAKE_SKIP_RPATH=TRUE \
+ -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"
+# Replaces default encoding set (ISO-8859-1) with UTF-8 in ettercap
+# configuration file installed by the package.
+# It ensures that all characters are properly decoded and avoids
+# any fatal errors while running in text mode (-T).
+do_install:append() {
+ sed -i 's@utf8_encoding.*@utf8_encoding = "UTF-8"@g' \
+ ${D}/etc/ettercap/etter.conf
+}
diff --git a/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb b/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
deleted file mode 100644
index 1d78288c88..0000000000
--- a/meta-networking/recipes-support/fetchmail/fetchmail_6.3.26.bb
+++ /dev/null
@@ -1,19 +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 = "GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbb509e0303f5ded1cbfc0cc8705f28c"
-
-DEPENDS = "openssl"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "61b66faad044afa26e142bb1791aa2b3"
-SRC_URI[sha256sum] = "79b4c54cdbaf02c1a9a691d9948fcb1a77a1591a813e904283a8b614b757e850"
-
-inherit autotools gettext python-dir pythonnative
-
-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.37.bb b/meta-networking/recipes-support/fetchmail/fetchmail_6.4.37.bb
new file mode 100644
index 0000000000..4560ef84c3
--- /dev/null
+++ b/meta-networking/recipes-support/fetchmail/fetchmail_6.4.37.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] = "4a182e5d893e9abe6ac37ae71e542651fce6d606234fc735c2aaae18657e69ea"
+
+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
new file mode 100644
index 0000000000..9965d2ec57
--- /dev/null
+++ b/meta-networking/recipes-support/fping/fping/0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch
@@ -0,0 +1,42 @@
+From c3f476a763412be51b4df0e748af04d4150a2c71 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 15:41:51 -0700
+Subject: [PATCH] fping: Initialize msghdr struct in a portable way
+
+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]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/fping.c | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/src/fping.c b/src/fping.c
+index e26b216..81a61d9 100644
+--- a/src/fping.c
++++ b/src/fping.c
+@@ -1951,15 +1951,13 @@ int receive_packet(int64_t wait_time,
+ reply_buf,
+ reply_buf_len
+ };
+- struct msghdr recv_msghdr = {
+- reply_src_addr,
+- reply_src_addr_len,
+- &msg_iov,
+- 1,
+- &msg_control,
+- sizeof(msg_control),
+- 0
+- };
++ struct msghdr recv_msghdr = {0};
++ recv_msghdr.msg_name = reply_src_addr;
++ recv_msghdr.msg_namelen = reply_src_addr_len;
++ recv_msghdr.msg_iov = &msg_iov;
++ recv_msghdr.msg_iovlen = 1;
++ recv_msghdr.msg_control = &msg_control;
++ recv_msghdr.msg_controllen = sizeof(msg_control);
+ #if HAVE_SO_TIMESTAMPNS
+ struct cmsghdr* cmsg;
+ #endif
diff --git a/meta-networking/recipes-support/fping/fping_3.5.bb b/meta-networking/recipes-support/fping/fping_3.5.bb
deleted file mode 100644
index 82e3bf0730..0000000000
--- a/meta-networking/recipes-support/fping/fping_3.5.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "sends ICMP ECHO_REQUEST packets to network hosts"
-DESCRIPTION = "fping is a ping like program which uses the Internet Control \
-Message Protocol (ICMP) echo request to determine if a target host is \
-responding. fping differs from ping in that you can specify any number of \
-targets on the command line, or specify a file containing the lists of \
-targets to ping. Instead of sending to one target until it times out or \
-replies, fping will send out a ping packet and move on to the next target \
-in a round-robin fashion."
-HOMEPAGE = "http://www.fping.org/"
-SECTION = "net"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=09d77789fe32be35acde9637a5ee39b1"
-
-SRC_URI = "http://www.fping.org/dist/fping-${PV}.tar.gz"
-SRC_URI[md5sum] = "2e17cb655aa4eb59b5a4a38a89e746ed"
-SRC_URI[sha256sum] = "09b8960e235341bae6000085d38106357eae656a79e0119bd27e816c9003656a"
-
-S = "${WORKDIR}/fping-${PV}"
-
-inherit autotools
-
-EXTRA_OECONF = "--enable-ipv4"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-networking/recipes-support/fping/fping_5.1.bb b/meta-networking/recipes-support/fping/fping_5.1.bb
new file mode 100644
index 0000000000..0682eafa09
--- /dev/null
+++ b/meta-networking/recipes-support/fping/fping_5.1.bb
@@ -0,0 +1,29 @@
+SUMMARY = "sends ICMP ECHO_REQUEST packets to network hosts"
+DESCRIPTION = "fping is a ping like program which uses the Internet Control \
+Message Protocol (ICMP) echo request to determine if a target host is \
+responding. fping differs from ping in that you can specify any number of \
+targets on the command line, or specify a file containing the lists of \
+targets to ping. Instead of sending to one target until it times out or \
+replies, fping will send out a ping packet and move on to the next target \
+in a round-robin fashion."
+HOMEPAGE = "http://www.fping.org/"
+BUGTRACKER = "https://github.com/schweikert/fping/issues"
+SECTION = "net"
+
+LICENSE = "fping"
+NO_GENERIC_LICENSE[fping] = "COPYING"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c6170fbadddfcd74f011515291d96901"
+
+SRC_URI = "http://www.fping.org/dist/fping-${PV}.tar.gz \
+ file://0001-fping-Initialize-msghdr-struct-in-a-portable-way.patch \
+ "
+SRC_URI[sha256sum] = "1ee5268c063d76646af2b4426052e7d81a42b657e6a77d8e7d3d2e60fd7409fe"
+
+S = "${WORKDIR}/fping-${PV}"
+
+inherit autotools
+
+EXTRA_OECONF = "--enable-ipv4"
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-networking/recipes-support/fwknop/fwknop/0001-Fix-compilation-with-GCC-s-fno-common-flag-fixes-305.patch b/meta-networking/recipes-support/fwknop/fwknop/0001-Fix-compilation-with-GCC-s-fno-common-flag-fixes-305.patch
new file mode 100644
index 0000000000..e696ac4ead
--- /dev/null
+++ b/meta-networking/recipes-support/fwknop/fwknop/0001-Fix-compilation-with-GCC-s-fno-common-flag-fixes-305.patch
@@ -0,0 +1,27 @@
+From 5aea816f27a71e6c88ad50e7326fa6584eeb7ad9 Mon Sep 17 00:00:00 2001
+From: Francois Marier <francois@debian.org>
+Date: Fri, 24 Jul 2020 21:22:47 -0700
+Subject: [PATCH] Fix compilation with GCC's -fno-common flag (fixes #305)
+
+Upstream-Status: Submitted [https://github.com/mrash/fwknop/pull/319]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ client/log_msg.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/client/log_msg.h b/client/log_msg.h
+index cc17716..3dda161 100644
+--- a/client/log_msg.h
++++ b/client/log_msg.h
+@@ -38,7 +38,7 @@ enum
+ LOG_VERBOSITY_INFO, /*!< Constant to define a INFO message */
+ LOG_VERBOSITY_DEBUG, /*!< Constant to define a DEBUG message */
+ LOG_LAST_VERBOSITY
+-} log_level_t;
++};
+
+ #define LOG_DEFAULT_VERBOSITY LOG_VERBOSITY_NORMAL /*!< Default verbosity to use */
+
+--
+2.28.0
+
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
new file mode 100644
index 0000000000..a1f56cdf16
--- /dev/null
+++ b/meta-networking/recipes-support/fwknop/fwknop_2.6.10.bb
@@ -0,0 +1,30 @@
+SUMMARY = "fwknop - Single Packet Authorization"
+HOMEPAGE = "http://www.cipherdyne.org/fwknop/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
+ "
+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[sha256sum] = "f6c09bec97ed8e474a98ae14f9f53e1bcdda33393f20667b6af3fb6bb894ca77"
+
+DEPENDS = "libpcap gpgme"
+
+EXTRA_OECONF = " --with-iptables=${sbindir}/iptables"
+
+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
+}
+
+PACKAGES =+ "${PN}-client ${PN}-daemon"
+
+FILES:${PN}-client = "${bindir}/fwknop"
+FILES:${PN}-daemon = "${sbindir}/fwknopd \
+ ${sysconfdir}/fwknop/access.conf \
+ ${sysconfdir}/fwknop/fwknopd.conf"
+
diff --git a/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb b/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb
deleted file mode 100644
index 0fd5f6fed5..0000000000
--- a/meta-networking/recipes-support/fwknop/fwknop_2.6.9.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "fwknop - Single Packet Authorization"
-HOMEPAGE = "http://www.cipherdyne.org/fwknop/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
- "
-inherit autotools-brokensep
-
-SRC_URI = "http://www.cipherdyne.org/${BPN}/download/${BPN}-${PV}.tar.bz2 \
- "
-
-SRC_URI[md5sum] = "e2c49e9674888a028bd443a55c3aaa22"
-SRC_URI[sha256sum] = "5bf47fe1fd30e862d29464f762c0b8bf89b5e298665c37624d6707826da956d4"
-
-DEPENDS = "libpcap gpgme"
-
-EXTRA_OECONF = " --with-iptables=/usr/sbin/iptables \
- "
-
-do_configure () {
- 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"
-
-FILES_${PN}-client = "${bindir}/fwknop"
-FILES_${PN}-daemon = "${sbindir}/fwknopd \
- ${sysconfdir}/fwknop/access.conf \
- ${sysconfdir}/fwknop/fwknopd.conf"
-
diff --git a/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb b/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
index ed5c3a9799..d8288f9b49 100644
--- a/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
+++ b/meta-networking/recipes-support/geoip/geoip-perl_1.51.bb
@@ -6,12 +6,12 @@ SUMMARY = "GeoIP perl API library to access location database"
DESCRIPTION = "perl library for country/city/organization to IP address or hostname mapping"
HOMEPAGE = "http://www.maxmind.com/app/ip-location"
SECTION = "libdevel"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e4f3ea6e9b28af88dc0321190a1f8250"
S = "${WORKDIR}/git"
SRCREV = "4cdfdc38eca237c19c22a8b90490446ce6d970fa"
-SRC_URI = "git://github.com/maxmind/geoip-api-perl.git;protocol=https; \
+SRC_URI = "git://github.com/maxmind/geoip-api-perl.git;branch=main;protocol=https \
file://run-ptest \
"
@@ -31,5 +31,5 @@ do_install_ptest () {
install ${S}/t/data/* ${D}${PTEST_PATH}/t/data
}
-FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Geo/IP/.debug"
+FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Geo/IP/.debug"
diff --git a/meta-networking/recipes-support/geoip/geoip_1.6.11.bb b/meta-networking/recipes-support/geoip/geoip_1.6.11.bb
deleted file mode 100644
index 3527d0cba7..0000000000
--- a/meta-networking/recipes-support/geoip/geoip_1.6.11.bb
+++ /dev/null
@@ -1,90 +0,0 @@
-SUMMARY = "C library for country/city/organization to IP address or hostname mapping"
-DESCRIPTION = "GeoIP is a C library that enables the user to find the country that any IP \
-address or hostname originates from. It uses a file based database that is \
-accurate as of March 2003. This database simply contains IP blocks as keys, and \
-countries as values. This database should be more complete and accurate than \
-using reverse DNS lookups."
-
-HOMEPAGE = "http://dev.maxmind.com/geoip/"
-SECTION = "libdevel"
-
-SRC_URI = "git://github.com/maxmind/geoip-api-c.git \
- http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz;apply=no;name=GeoIP-dat \
- http://geolite.maxmind.com/download/geoip/database/GeoIPv6.dat.gz;apply=no;name=GeoIPv6-dat \
- http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz;apply=no;name=GeoLiteCity-dat \
- http://geolite.maxmind.com/download/geoip/database/GeoLiteCityv6-beta/GeoLiteCityv6.dat.gz;apply=no;name=GeoLiteCityv6-dat \
- file://run-ptest \
-"
-SRCREV = "3169a8a88808c8df862e0b0355f99c738cce9f7e"
-
-SRC_URI[GeoIP-dat.md5sum] = "37c84ead332dda0362a5ac7b049b72d4"
-SRC_URI[GeoIP-dat.sha256sum] = "79ff1099e96c2dc1c2539c9a18aaa13a9afd085cae477df60d95f1644d42bc07"
-
-SRC_URI[GeoIPv6-dat.md5sum] = "e75b84a4044e81d6d4484e33816bc762"
-SRC_URI[GeoIPv6-dat.sha256sum] = "a009b0f21968d2868e6dd19d14f3c3b8cd60ae84a4bfc2970df34d771a04811e"
-
-SRC_URI[GeoLiteCity-dat.md5sum] = "4b6588d0bfe1af22e267ac90aa97f769"
-SRC_URI[GeoLiteCity-dat.sha256sum] = "8a6467033a528f68b1a97de24d9d0ce86c8e8e83683820e16e433ddbd3f712f7"
-
-SRC_URI[GeoLiteCityv6-dat.md5sum] = "ad0cb42518af7f752499425dca0952bb"
-SRC_URI[GeoLiteCityv6-dat.sha256sum] = "eda67f4204ba9fa5204a53cdb629167cca9394c712f5378bc723a8c29c0b440f"
-
-LICENSE = "LGPL-2.1"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad \
- file://LICENSE;md5=0388276749a542b0d611601fa7c1dcc8 "
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-EXTRA_OECONF = "--disable-static \
- --disable-dependency-tracking "
-
-do_install() {
- make DESTDIR=${D} install
- install -d ${D}/${datadir}/GeoIP
- install ${WORKDIR}/GeoIP.dat ${D}/${datadir}/GeoIP/
- install ${WORKDIR}/GeoIPv6.dat ${D}/${datadir}/GeoIP/
- install ${WORKDIR}/GeoLiteCity.dat ${D}/${datadir}/GeoIP/
- install ${WORKDIR}/GeoLiteCityv6.dat ${D}/${datadir}/GeoIP/
- ln -s GeoLiteCity.dat ${D}${datadir}/GeoIP/GeoIPCity.dat
-}
-
-PACKAGES =+ "${PN}-database"
-FILES_${PN}-database = ""
-FILES_${PN}-database += "${datadir}/GeoIP/*"
-
-# We cannot do much looking up without databases.
-#
-RDEPENDS_${PN} += "${PN}-database"
-
-inherit ptest
-
-do_configure_ptest() {
- sed -i -e "s/noinst_PROGRAMS = /test_PROGRAMS = /g" \
- -e 's:SRCDIR=\\"$(top_srcdir)\\":SRCDIR=\\"$(testdir)\\":' \
- ${S}/test/Makefile.am
-
- if ! grep "^testdir = " ${S}/test/Makefile.am ; then
- sed -e '/EXTRA_PROGRAMS = /itestdir = ${PTEST_PATH}/tests' \
- -i ${S}/test/Makefile.am
- fi
-
- sed -i -e "s:/usr/local/share:/usr/share:g" \
- ${S}/test/benchmark.c
-
- sed -i -e 's:"../data/:"/usr/share/GeoIP/:g' \
- ${S}/test/test-geoip-city.c \
- ${S}/test/test-geoip-isp.c \
- ${S}/test/test-geoip-asnum.c \
- ${S}/test/test-geoip-netspeed.c \
- ${S}/test/test-geoip-org.c \
- ${S}/test/test-geoip-region.c
-}
-
-
-do_install_ptest() {
- oe_runmake -C test DESTDIR=${D} install-testPROGRAMS
- install ${S}/test/*.txt ${D}${PTEST_PATH}/tests
-}
diff --git a/meta-networking/recipes-support/geoip/geoip_1.6.12.bb b/meta-networking/recipes-support/geoip/geoip_1.6.12.bb
new file mode 100644
index 0000000000..429cd69d6d
--- /dev/null
+++ b/meta-networking/recipes-support/geoip/geoip_1.6.12.bb
@@ -0,0 +1,92 @@
+SUMMARY = "C library for country/city/organization to IP address or hostname mapping"
+DESCRIPTION = "GeoIP is a C library that enables the user to find the country that any IP \
+address or hostname originates from. It uses a file based database that is \
+accurate as of March 2003. This database simply contains IP blocks as keys, and \
+countries as values. This database should be more complete and accurate than \
+using reverse DNS lookups."
+
+HOMEPAGE = "http://dev.maxmind.com/geoip/"
+SECTION = "libdevel"
+
+GEOIP_DATABASE_VERSION = "20181205"
+
+SRC_URI = "git://github.com/maxmind/geoip-api-c.git;branch=main;protocol=https \
+ http://sources.openembedded.org/GeoIP.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIP-dat; \
+ http://sources.openembedded.org/GeoIPv6.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoIPv6-dat; \
+ http://sources.openembedded.org/GeoLiteCity.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoLiteCity-dat; \
+ http://sources.openembedded.org/GeoLiteCityv6.dat.${GEOIP_DATABASE_VERSION}.gz;apply=no;name=GeoLiteCityv6-dat; \
+ file://run-ptest \
+"
+SRCREV = "4b526e7331ca1d692b74a0509ddcc725622ed31a"
+
+SRC_URI[GeoIP-dat.md5sum] = "d538e57ad9268fdc7955c6cf9a37c4a9"
+SRC_URI[GeoIP-dat.sha256sum] = "b9c05eb8bfcf90a6ddfdc6815caf40a8db2710f0ce3dd48fbd6c24d485ae0449"
+
+SRC_URI[GeoIPv6-dat.md5sum] = "52d6aa0aac1adbfa5eb7fa4742197c11"
+SRC_URI[GeoIPv6.sha256sum] = "416ac92fcc35a21d5efbb32e5c88e609c37aec1aa1af6247d088b8da1af6e9bf"
+
+SRC_URI[GeoLiteCity-dat.md5sum] = "d700c137232f8e077ac8db8577f699d9"
+SRC_URI[GeoLiteCity-dat.sha256sum] = "90db2e52195e3d1bcdb2c2789209006d09de5c742812dbd9a1b36c12675ec4cd"
+
+SRC_URI[GeoLiteCityv6-dat.md5sum] = "6734ccdc644fc0ba76eb276dce73d005"
+SRC_URI[GeoLiteCityv6-dat.sha256sum] = "c95a9d2643b7f53d7abeed2114388870e13fbbad4653f450a49efa7e4b86aca4"
+
+LICENSE = "LGPL-2.1-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad \
+ file://LICENSE;md5=0388276749a542b0d611601fa7c1dcc8 "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-static \
+ --disable-dependency-tracking "
+
+do_install() {
+ make DESTDIR=${D} install
+ install -d ${D}/${datadir}/GeoIP
+ install ${WORKDIR}/GeoIP.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoIP.dat
+ install ${WORKDIR}/GeoIPv6.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoIPv6.dat
+ install ${WORKDIR}/GeoLiteCity.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoLiteCity.dat
+ install ${WORKDIR}/GeoLiteCityv6.dat.${GEOIP_DATABASE_VERSION} ${D}/${datadir}/GeoIP/GeoLiteCityv6.dat
+ ln -s GeoLiteCity.dat ${D}${datadir}/GeoIP/GeoIPCity.dat
+}
+
+PACKAGES =+ "${PN}-database"
+FILES:${PN}-database = ""
+FILES:${PN}-database += "${datadir}/GeoIP/*"
+
+# We cannot do much looking up without databases.
+#
+RDEPENDS:${PN} += "${PN}-database"
+
+inherit ptest
+
+do_configure_ptest() {
+ sed -i -e "s/noinst_PROGRAMS = /test_PROGRAMS = /g" \
+ -e 's:SRCDIR=\\"$(top_srcdir)\\":SRCDIR=\\"$(testdir)\\":' \
+ ${S}/test/Makefile.am
+
+ if ! grep "^testdir = " ${S}/test/Makefile.am ; then
+ sed -e '/EXTRA_PROGRAMS = /itestdir = ${PTEST_PATH}/tests' \
+ -i ${S}/test/Makefile.am
+ fi
+
+ sed -i -e "s:/usr/local/share:/usr/share:g" \
+ ${S}/test/benchmark.c
+
+ sed -i -e 's:"../data/:"/usr/share/GeoIP/:g' \
+ ${S}/test/test-geoip-city.c \
+ ${S}/test/test-geoip-isp.c \
+ ${S}/test/test-geoip-asnum.c \
+ ${S}/test/test-geoip-netspeed.c \
+ ${S}/test/test-geoip-org.c \
+ ${S}/test/test-geoip-region.c
+}
+
+
+do_install_ptest() {
+ oe_runmake -C test DESTDIR=${D} install-testPROGRAMS
+ install ${S}/test/*.txt ${D}${PTEST_PATH}/tests
+}
diff --git a/meta-networking/recipes-support/geoip/geoipupdate_2.5.0.bb b/meta-networking/recipes-support/geoip/geoipupdate_2.5.0.bb
index f4eb2b799d..9a0292eacc 100644
--- a/meta-networking/recipes-support/geoip/geoipupdate_2.5.0.bb
+++ b/meta-networking/recipes-support/geoip/geoipupdate_2.5.0.bb
@@ -13,19 +13,19 @@ SRC_URI = "https://github.com/maxmind/geoipupdate/releases/download/v2.5.0/geoip
SRC_URI[md5sum] = "28f633c49ec87ab01ad3c0fb0228a696"
SRC_URI[sha256sum] = "5119fd0e338cd083e886228b26679c64bcbaade8a815be092aecf865a610ab26"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "\
file://ChangeLog.md;md5=11d2e31df0de2be3ccc3e2286c4dafcb \
"
-FILES_${PN} = "/usr/share/GeoIP \
+FILES:${PN} = "/usr/share/GeoIP \
/etc/GeoIP.conf \
/etc/cron.d/geoipupdate.cron \
/usr/bin/geoipupdate \
"
inherit autotools
-do_install_append() {
+do_install:append() {
install -d ${D}/${sysconfdir}
install -d ${D}/${sysconfdir}/cron.d
install ${WORKDIR}/GeoIP.conf ${D}/${sysconfdir}/
diff --git a/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch b/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch
deleted file mode 100644
index 0ee44c1621..0000000000
--- a/meta-networking/recipes-support/htpdate/htpdate/0001-Make-environment-variables-assignments-to-be-weak.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 04603f52d793f964653e6a985944400fe4fa87ee Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jun 2018 17:50:20 -0700
-Subject: [PATCH] Make environment variables assignments to be weak
-
-So that OE can override them for cross builds
-
-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 1c80c09..884126c 100644
---- a/Makefile
-+++ b/Makefile
-@@ -2,11 +2,11 @@ prefix = $(DESTDIR)/usr
- bindir = ${prefix}/bin
- mandir = ${prefix}/share/man
-
--CC = gcc
-+CC ?= gcc
- CFLAGS += -Wall -std=c99 -pedantic -O2
-
--INSTALL = /usr/bin/install -c
--STRIP = /usr/bin/strip -s
-+INSTALL ?= /usr/bin/install -c
-+STRIP ?= /usr/bin/strip -s
-
- all: htpdate
-
diff --git a/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch b/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch
deleted file mode 100644
index cca8c6c364..0000000000
--- a/meta-networking/recipes-support/htpdate/htpdate/0001-Replace-ntp_adjtime-with-adjtimex.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 75646a2d2df14fdbc4a01e222a779afac94861d1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 14 Jun 2018 20:11:08 -0700
-Subject: [PATCH] Replace ntp_adjtime with adjtimex.
-
-ntp_adjtime in glibc is an alias to adjtimex and
-musl does not provide ntp_adjtime at all
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- htpdate.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/htpdate.c b/htpdate.c
-index 4171efe..ff0bf8d 100644
---- a/htpdate.c
-+++ b/htpdate.c
-@@ -391,7 +391,7 @@ static int htpdate_adjtimex( double drift ) {
-
- /* Read current kernel frequency */
- tmx.modes = 0;
-- ntp_adjtime(&tmx);
-+ adjtimex(&tmx);
-
- /* Calculate new frequency */
- freq = (long)(65536e6 * drift);
-@@ -406,7 +406,7 @@ static int htpdate_adjtimex( double drift ) {
-
- /* Become root */
- swuid(0);
-- return( ntp_adjtime(&tmx) );
-+ return( adjtimex(&tmx) );
-
- }
-
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb b/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb
deleted file mode 100644
index eb6787846b..0000000000
--- a/meta-networking/recipes-support/htpdate/htpdate_1.2.0.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (C) 2018 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-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 = "http://www.vervest.org/htp/"
-
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://htpdate.c;beginline=26;endline=30;md5=d7018a4d2c5a6eab392709a05e5e168a"
-
-SRC_URI = "http://www.vervest.org/htp/archive/c/htpdate-${PV}.tar.xz \
- file://0001-Make-environment-variables-assignments-to-be-weak.patch \
- file://0001-Replace-ntp_adjtime-with-adjtimex.patch \
- "
-SRC_URI[md5sum] = "9d5ca69be06edf5d535b52b5f790da4e"
-SRC_URI[sha256sum] = "22b2cf3ec45b0eedecddd3ad2a3d754ac57942ae7dcbac410d254935f0bdbc03"
-
-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
new file mode 100644
index 0000000000..d4f76850d3
--- /dev/null
+++ b/meta-networking/recipes-support/http-parser/http-parser_2.9.4.bb
@@ -0,0 +1,32 @@
+SUMMARY = "HTTP request/response parser for C"
+DESCRIPTION = "This is a parser for HTTP messages written in C. It parses \
+ both requests and responses. The parser is designed to be used \
+ in performance HTTP applications. It does not make any \
+ syscalls nor allocations, it does not buffer data, it can be \
+ 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"
+LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=9bfa835d048c194ab30487af8d7b3778"
+
+SRC_URI = "git://github.com/nodejs/http-parser.git;branch=master;protocol=https"
+SRCREV = "2343fd6b5214b2ded2cdcf76de2bf60903bb90cd"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "PLATFORM=linux"
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ oe_runmake library package
+}
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIBDIR=${libdir}
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/ifenslave/ifenslave_2.13.bb b/meta-networking/recipes-support/ifenslave/ifenslave_2.13.bb
new file mode 100644
index 0000000000..663685a3aa
--- /dev/null
+++ b/meta-networking/recipes-support/ifenslave/ifenslave_2.13.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 = "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.9.bb b/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb
deleted file mode 100644
index ea28b34aa9..0000000000
--- a/meta-networking/recipes-support/ifenslave/ifenslave_2.9.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Configure network interfaces for parallel routing"
-HOMEPAGE = "http://www.linuxfoundation.org/collaborate/workgroups/networking/bonding"
-SECTION = "net"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=acc89812938cf9ad6b1debc37cea0253"
-
-
-SRCREV = "42bfbb9beb924672ca86b86e9679ac3d6b87d992"
-SRC_URI = "git://anonscm.debian.org/collab-maint/ifenslave.git"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${S}/ifenslave ${D}${sbindir}/
-
- 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
- install -m 0644 -D ${S}/debian/ifenslave.8 ${D}${mandir}/man8/ifenslave.8
-}
-
-FILES_${PN}-doc_remove = "${mandir}"
-FILES_${PN} += "${mandir}/man8/ifenslave.8"
-
-RDEPENDS_${PN} = "man"
diff --git a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch
new file mode 100644
index 0000000000..3bd87ff457
--- /dev/null
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.8_typo.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Pending
+
+Description: Correct typo: s/ommited/omitted/
+Author: Michael Shuler <michael@pbandjelly.org>
+Index: ifmetric/man/ifmetric.8
+===================================================================
+--- ifmetric.orig/man/ifmetric.8
++++ ifmetric/man/ifmetric.8
+@@ -9,7 +9,7 @@ ifmetric is a Linux tool for setting the
+
+ ifmetric uses the Linux NETLINK interface to manipulate the routes. Because of that it is compatible with routes created with the new iproute2 utility.
+ .SH OPTIONS
+-You should specify the interface name as first parameter. The second parameter should be the new metric. If ommited the metric 0 (highest) is used.
++You should specify the interface name as first parameter. The second parameter should be the new metric. If omitted the metric 0 (highest) is used.
+ .SH RETURN VALUES
+ \fI0\f1 Success
+
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
new file mode 100644
index 0000000000..a6d1828d22
--- /dev/null
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_netlink-invalid-arg.patch
@@ -0,0 +1,18 @@
+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
+Index: ifmetric/src/nlrequest.c
+===================================================================
+--- a/src/ifmetric.c
++++ b/src/ifmetric.c
+@@ -97,6 +97,8 @@
+ l = NLMSG_PAYLOAD(n, sizeof(struct rtmsg));
+ a = RTM_RTA(r);
+
++ r->rtm_flags &= ~(RTNH_F_DEAD | RTNH_F_LINKDOWN);
++
+ while(RTA_OK(a, l)) {
+ switch(a->rta_type) {
+ case RTA_PRIORITY:
diff --git a/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch
new file mode 100644
index 0000000000..19290a59dd
--- /dev/null
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/ifmetric.c_typo.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Pending
+
+Description: Correct spelling-error-in-binary s/Recieved/Received/
+Author: Michael Shuler <michael@pbandjelly.org>
+Index: ifmetric/src/ifmetric.c
+===================================================================
+--- ifmetric.orig/src/ifmetric.c 2013-09-04 18:37:59.000000000 -0500
++++ ifmetric/src/ifmetric.c 2013-09-04 19:08:38.539750778 -0500
+@@ -38,7 +38,7 @@
+ case RTA_OIF:
+
+ if (RTA_PAYLOAD(a) != sizeof(int)) {
+- fprintf(stderr, "NETLINK: Recieved corrupt RTA_OIF payload.\n");
++ fprintf(stderr, "NETLINK: Received corrupt RTA_OIF payload.\n");
+ return -1;
+ }
+
+@@ -102,7 +102,7 @@
+ case RTA_PRIORITY:
+
+ if (RTA_PAYLOAD(a) != sizeof(int)) {
+- fprintf(stderr, "NETLINK: Recieved corrupt RTA_PRIORITY payload.\n");
++ fprintf(stderr, "NETLINK: Received corrupt RTA_PRIORITY payload.\n");
+ return NULL;
+ }
+
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
new file mode 100644
index 0000000000..89851517bf
--- /dev/null
+++ b/meta-networking/recipes-support/ifmetric/ifmetric/nlrequest.c_packet-too-small_fix.patch
@@ -0,0 +1,18 @@
+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
+Index: ifmetric/src/nlrequest.c
+===================================================================
+--- ifmetric.orig/src/nlrequest.c 2013-09-05 14:10:42.000000000 -0500
++++ ifmetric/src/nlrequest.c 2013-09-05 14:19:06.573420862 -0500
+@@ -44,7 +44,7 @@
+
+ for (;;) {
+ int bytes;
+- char replybuf[2048];
++ char replybuf[4096];
+ struct nlmsghdr *p = (struct nlmsghdr *) replybuf;
+
+ if ((bytes = recv(s, &replybuf, sizeof(replybuf), 0)) < 0) {
diff --git a/meta-networking/recipes-support/ifmetric/ifmetric_0.3.bb b/meta-networking/recipes-support/ifmetric/ifmetric_0.3.bb
new file mode 100644
index 0000000000..1e57a48970
--- /dev/null
+++ b/meta-networking/recipes-support/ifmetric/ifmetric_0.3.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Set routing metrics for a network interface"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://0pointer.de/lennart/projects/ifmetric/ifmetric-${PV}.tar.gz \
+ file://ifmetric.8_typo.patch \
+ file://ifmetric.c_netlink-invalid-arg.patch \
+ file://ifmetric.c_typo.patch \
+ file://nlrequest.c_packet-too-small_fix.patch"
+SRC_URI[md5sum] = "74aa3f5ee8aca16a87e124ddcc64fa36"
+SRC_URI[sha256sum] = "0fa8510a4e34e555f136f9df81d26618313f2d69a4880c0fb5967f19502f1aec"
+
+inherit autotools
+
+# disable lynx support for now
+EXTRA_OECONF = "--disable-lynx"
diff --git a/meta-networking/recipes-support/iftop/iftop/iftop-1.0-gcc10.patch b/meta-networking/recipes-support/iftop/iftop/iftop-1.0-gcc10.patch
new file mode 100644
index 0000000000..28391a57cf
--- /dev/null
+++ b/meta-networking/recipes-support/iftop/iftop/iftop-1.0-gcc10.patch
@@ -0,0 +1,68 @@
+Patch by Robert Scheck <robert@fedoraproject.org> for iftop <= 1.0pre4 to avoid a
+GCC 10 related build failure due to global variables in a header file with omitted
+"extern" declaration, see also: https://gcc.gnu.org/gcc-10/porting_to.html
+
+Example build failure output:
+/usr/bin/ld: ui_common.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:36: multiple definition of `screen_list'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:36: first defined here
+/usr/bin/ld: ui_common.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peaktotal'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: ui_common.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peakrecv'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: ui_common.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peaksent'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: ui_common.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:37: multiple definition of `totals'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:37: first defined here
+/usr/bin/ld: ui_common.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:40: multiple definition of `screen_hash'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:40: first defined here
+/usr/bin/ld: ui_common.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:41: multiple definition of `service_hash'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:41: first defined here
+/usr/bin/ld: ui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:36: multiple definition of `screen_list'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:36: first defined here
+/usr/bin/ld: ui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peaksent'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: ui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peakrecv'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: ui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peaktotal'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: ui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:37: multiple definition of `totals'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:37: first defined here
+/usr/bin/ld: ui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:40: multiple definition of `screen_hash'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:40: first defined here
+/usr/bin/ld: ui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:41: multiple definition of `service_hash'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:41: first defined here
+/usr/bin/ld: tui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:36: multiple definition of `screen_list'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:36: first defined here
+/usr/bin/ld: tui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:37: multiple definition of `totals'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:37: first defined here
+/usr/bin/ld: tui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peaksent'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: tui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peakrecv'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: tui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: multiple definition of `peaktotal'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:38: first defined here
+/usr/bin/ld: tui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:40: multiple definition of `screen_hash'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:40: first defined here
+/usr/bin/ld: tui.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:41: multiple definition of `service_hash'; iftop.o:/builddir/build/BUILD/iftop-1.0pre4/ui_common.h:41: first defined here
+collect2: error: ld returned 1 exit status
+
+Patch from https://src.fedoraproject.org/rpms/iftop/raw/master/f/iftop-1.0-gcc10.patch
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/ui_common.h
++++ b/ui_common.h
+@@ -33,12 +33,12 @@ typedef struct host_pair_line_tag {
+
+ extern options_t options;
+
+-sorted_list_type screen_list;
+-host_pair_line totals;
+-int peaksent, peakrecv, peaktotal;
++extern sorted_list_type screen_list;
++extern host_pair_line totals;
++extern int peaksent, peakrecv, peaktotal;
+ extern history_type history_totals;
+-hash_type* screen_hash;
+-hash_type* service_hash;
++extern hash_type* screen_hash;
++extern hash_type* service_hash;
+
+ void analyse_data(void);
+ void screen_list_init(void);
+--- a/ui_common.c
++++ b/ui_common.c
+@@ -24,6 +24,12 @@ int history_divs[HISTORY_DIVISIONS] = {1
+ char* unit_bits[UNIT_DIVISIONS] = { "b", "Kb", "Mb", "Gb"};
+ char* unit_bytes[UNIT_DIVISIONS] = { "B", "KB", "MB", "GB"};
+
++sorted_list_type screen_list;
++host_pair_line totals;
++int peaksent, peakrecv, peaktotal;
++hash_type* screen_hash;
++hash_type* service_hash;
++
+ extern hash_type* history;
+ extern int history_pos;
+ extern int history_len;
diff --git a/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb b/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb
index 0c8e494c19..517d781281 100644
--- a/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb
+++ b/meta-networking/recipes-support/iftop/iftop_1.0pre4.bb
@@ -3,10 +3,12 @@ HOMEPAGE = "http://www.ex-parrot.com/pdw/iftop/"
SECTION = "net"
DEPENDS = "libpcap ncurses"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=76498170798db0f4f0fb685a225f702f"
-SRC_URI = "http://www.ex-parrot.com/pdw/iftop/download/iftop-${PV}.tar.gz"
+SRC_URI = "http://www.ex-parrot.com/pdw/iftop/download/iftop-${PV}.tar.gz \
+ file://iftop-1.0-gcc10.patch \
+ "
SRC_URI[md5sum] = "7e6decb4958e8a4890cccac335239f24"
SRC_URI[sha256sum] = "f733eeea371a7577f8fe353d86dd88d16f5b2a2e702bd96f5ffb2c197d9b4f97"
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 38d306475e..0000000000
--- a/meta-networking/recipes-support/ipcalc/ipcalc/0001-Makefile-pass-extra-linker-flags.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From fd80c0599083013a1b583feba5d7473f52b35938 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 8beff8f..047f02a 100644
---- a/Makefile
-+++ b/Makefile
-@@ -8,7 +8,7 @@ LIBS?=
- VERSION=0.2.2
- CC?=gcc
- CFLAGS?=-O2 -g -Wall
--LDFLAGS=$(LIBS)
-+LDFLAGS+=$(LIBS)
-
- ifeq ($(USE_GEOIP),yes)
- ifeq ($(USE_DYN_GEOIP),yes)
---
-2.15.1
-
diff --git a/meta-networking/recipes-support/ipcalc/ipcalc_0.2.2.bb b/meta-networking/recipes-support/ipcalc/ipcalc_0.2.2.bb
deleted file mode 100644
index b45642404c..0000000000
--- a/meta-networking/recipes-support/ipcalc/ipcalc_0.2.2.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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-SRCREV = "8348808a7869ca8f25a5b5deeaa418c2f6d52758"
-SRC_URI = "\
- git://github.com/nmav/ipcalc.git;protocol=https; \
- 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/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch
deleted file mode 100644
index 11a9103935..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Disable-gcc8-specific-warnings.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 282d492e4cab7b4d9c7321f4c0c55b615948e280 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 11 May 2018 14:09:17 -0700
-Subject: [PATCH] Disable gcc8 specific warnings
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libipsec/ipsec_dump_policy.c | 5 +++++
- src/libipsec/pfkey_dump.c | 5 +++++
- src/racoon/isakmp.c | 11 ++++++++++-
- 3 files changed, 20 insertions(+), 1 deletion(-)
-
-diff --git a/src/libipsec/ipsec_dump_policy.c b/src/libipsec/ipsec_dump_policy.c
-index 4d0eb77..c3fc842 100644
---- a/src/libipsec/ipsec_dump_policy.c
-+++ b/src/libipsec/ipsec_dump_policy.c
-@@ -275,6 +275,10 @@ ipsec_dump_policy1(policy, delimiter, withports)
- return buf;
- }
-
-+#pragma GCC diagnostic push
-+#if defined(__GNUC__) && (__GNUC__ >= 8)
-+#pragma GCC diagnostic ignored "-Wformat-truncation"
-+#endif
- static char *
- ipsec_dump_ipsecrequest(buf, len, xisr, bound, withports)
- char *buf;
-@@ -419,3 +423,4 @@ set_address(buf, len, sa, withports)
-
- return buf;
- }
-+#pragma GCC diagnostic pop
-diff --git a/src/libipsec/pfkey_dump.c b/src/libipsec/pfkey_dump.c
-index 4627ebc..451e535 100644
---- a/src/libipsec/pfkey_dump.c
-+++ b/src/libipsec/pfkey_dump.c
-@@ -691,6 +691,10 @@ str_ipport(sa)
- /*
- * set "/prefix[port number]" to buffer.
- */
-+#pragma GCC diagnostic push
-+#if defined(__GNUC__) && (__GNUC__ >= 8)
-+#pragma GCC diagnostic ignored "-Wformat-truncation"
-+#endif
- static char *
- str_prefport(family, pref, port, ulp)
- u_int family, pref, port, ulp;
-@@ -735,6 +739,7 @@ str_prefport(family, pref, port, ulp)
-
- return buf;
- }
-+#pragma GCC diagnostic pop
-
- static void
- str_upperspec(ulp, p1, p2)
-diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c
-index 7ff53a3..4addf24 100644
---- a/src/racoon/isakmp.c
-+++ b/src/racoon/isakmp.c
-@@ -3124,7 +3124,12 @@ script_hook(iph1, script)
- #endif
-
- /* local address */
-+#pragma GCC diagnostic push
-+#if defined(__GNUC__) && (__GNUC__ >= 8)
-+#pragma GCC diagnostic ignored "-Wstringop-truncation"
-+#endif
- GETNAMEINFO(iph1->local, addrstr, portstr);
-+#pragma GCC diagnostic pop
-
- if (script_env_append(&envp, &envc, "LOCAL_ADDR", addrstr) != 0) {
- plog(LLV_ERROR, LOCATION, NULL, "Cannot set LOCAL_ADDR\n");
-@@ -3138,8 +3143,12 @@ script_hook(iph1, script)
-
- /* Peer address */
- if (iph1->remote != NULL) {
-+#pragma GCC diagnostic push
-+#if defined(__GNUC__) && (__GNUC__ >= 8)
-+#pragma GCC diagnostic ignored "-Wstringop-truncation"
-+#endif
- GETNAMEINFO(iph1->remote, addrstr, portstr);
--
-+#pragma GCC diagnostic pop
- if (script_env_append(&envp, &envc,
- "REMOTE_ADDR", addrstr) != 0) {
- plog(LLV_ERROR, LOCATION, NULL,
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch
deleted file mode 100644
index 5c09147450..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-build-with-clang.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From 9135ca401186fb14e5e5110bbb04d1ccc480360a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 15 Nov 2016 04:15:44 +0000
-Subject: [PATCH] Fix build with clang
-
-Fixes for following errors found by clang
-
-src/racoon/eaytest.c:316:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true
- [-Werror,-Wtautological-pointer-compare]
- if (dnstr_w1 != NULL) {
- ^~~~~~~~ ~~~~
-src/racoon/eaytest.c:326:6: error: comparison of array 'dnstr_w1' not equal to a null pointer is always true
- [-Werror,-Wtautological-pointer-compare]
- if (dnstr_w1 != NULL) {
- ^~~~~~~~ ~~~~
-
-src/racoon/isakmp.c:1134:11: error: promoted type 'int' of K&R function parameter is not compatible with the
- parameter type 'u_int8_t' (aka 'unsigned char') declared in a previous prototype [-Werror,-Wknr-promoted-parameter]
- u_int8_t etype;
- ^
-src/racoon/isakmp.c:184:48: note: previous declaration is here
- struct sockaddr *, struct sockaddr *, u_int8_t));
- ^
- 1 error generated.
-
-src/racoon/racoonctl.c:1457:15: error: incompatible pointer types passing 'struct evt_async *' to parameter of type
- 'caddr_t' (aka 'char *') [-Werror,-Wincompatible-pointer-types]
- print_cfg(ec, len);
- ^~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/racoon/eaytest.c | 4 ++--
- src/racoon/isakmp.c | 10 +++++-----
- src/racoon/racoonctl.c | 7 +++----
- 3 files changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/src/racoon/eaytest.c b/src/racoon/eaytest.c
-index 1474bdc..d609e4f 100644
---- a/src/racoon/eaytest.c
-+++ b/src/racoon/eaytest.c
-@@ -313,7 +313,7 @@ certtest(ac, av)
-
- printf("exact match: succeed.\n");
-
-- if (dnstr_w1 != NULL) {
-+ if (dnstr_w1[0] != '\0') {
- asn1dn = eay_str2asn1dn(dnstr_w1, strlen(dnstr_w1));
- if (asn1dn == NULL || asn1dn->l == asn1dn0.l)
- errx(1, "asn1dn length wrong for wildcard 1\n");
-@@ -323,7 +323,7 @@ certtest(ac, av)
- printf("wildcard 1 match: succeed.\n");
- }
-
-- if (dnstr_w1 != NULL) {
-+ if (dnstr_w1[0] != '\0') {
- asn1dn = eay_str2asn1dn(dnstr_w2, strlen(dnstr_w2));
- if (asn1dn == NULL || asn1dn->l == asn1dn0.l)
- errx(1, "asn1dn length wrong for wildcard 2\n");
-diff --git a/src/racoon/isakmp.c b/src/racoon/isakmp.c
-index 2672f7a..da7ebe8 100644
---- a/src/racoon/isakmp.c
-+++ b/src/racoon/isakmp.c
-@@ -567,7 +567,7 @@ isakmp_main(msg, remote, local)
-
- /* it must be responder's 1st exchange. */
- if (isakmp_ph1begin_r(msg, remote, local,
-- isakmp->etype) < 0)
-+ (u_int8_t)isakmp->etype) < 0)
- return -1;
- break;
-
-@@ -1128,10 +1128,10 @@ isakmp_ph1begin_i(rmconf, remote, local)
-
- /* new negotiation of phase 1 for responder */
- static int
--isakmp_ph1begin_r(msg, remote, local, etype)
-- vchar_t *msg;
-- struct sockaddr *remote, *local;
-- u_int8_t etype;
-+isakmp_ph1begin_r(vchar_t *msg,
-+ struct sockaddr *remote,
-+ struct sockaddr *local,
-+ u_int8_t etype)
- {
- struct isakmp *isakmp = (struct isakmp *)msg->v;
- struct ph1handle *iph1;
-diff --git a/src/racoon/racoonctl.c b/src/racoon/racoonctl.c
-index da28ecd..bbf068e 100644
---- a/src/racoon/racoonctl.c
-+++ b/src/racoon/racoonctl.c
-@@ -1299,9 +1299,8 @@ print_evt(evtdump)
- * Print ISAKMP mode config info (IP and banner)
- */
- void
--print_cfg(buf, len)
-- caddr_t buf;
-- int len;
-+print_cfg(caddr_t buf,
-+ int len)
- {
- struct evt_async *evtdump = (struct evt_async *)buf;
- struct isakmp_data *attr;
-@@ -1454,7 +1453,7 @@ handle_recv(combuf)
- else if (evt_quit_event == ec->ec_type) {
- switch (ec->ec_type) {
- case EVT_PHASE1_MODE_CFG:
-- print_cfg(ec, len);
-+ print_cfg((caddr_t)ec, len);
- break;
- default:
- print_evt(ec);
---
-1.9.1
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch
deleted file mode 100644
index 630ecdb5f4..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-Fix-header-issues-found-with-musl-libc.patch
+++ /dev/null
@@ -1,249 +0,0 @@
-From 7d9585be093c9cb2428b373c0b0088bb778942d0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 20 Mar 2017 21:37:47 -0700
-Subject: [PATCH] Fix header issues found with musl libc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/libipsec/ipsec_strerror.h | 3 +++
- src/libipsec/libpfkey.h | 4 +++-
- src/racoon/admin.c | 2 +-
- src/racoon/backupsa.c | 6 +++---
- src/racoon/cftoken.l | 4 ++++
- src/racoon/logger.h | 3 +++
- src/racoon/misc.h | 3 +++
- src/racoon/missing/crypto/sha2/sha2.h | 3 +++
- src/racoon/netdb_dnssec.h | 3 +++
- src/racoon/pfkey.c | 1 -
- src/racoon/plog.h | 2 ++
- src/racoon/str2val.h | 3 +++
- src/racoon/vmbuf.h | 3 +++
- src/setkey/extern.h | 3 ++-
- src/setkey/setkey.c | 1 -
- 15 files changed, 36 insertions(+), 8 deletions(-)
-
-diff --git a/src/libipsec/ipsec_strerror.h b/src/libipsec/ipsec_strerror.h
-index 2b4264f..dac66a1 100644
---- a/src/libipsec/ipsec_strerror.h
-+++ b/src/libipsec/ipsec_strerror.h
-@@ -34,6 +34,9 @@
- #ifndef _IPSEC_STRERROR_H
- #define _IPSEC_STRERROR_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- extern int __ipsec_errcode;
- extern void __ipsec_set_strerror __P((const char *));
-
-diff --git a/src/libipsec/libpfkey.h b/src/libipsec/libpfkey.h
-index 61d2f2a..f7991b7 100644
---- a/src/libipsec/libpfkey.h
-+++ b/src/libipsec/libpfkey.h
-@@ -34,6 +34,9 @@
- #ifndef _LIBPFKEY_H
- #define _LIBPFKEY_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- #ifndef KAME_LIBPFKEY_H
- #define KAME_LIBPFKEY_H
-
-@@ -43,7 +46,6 @@
-
- #define PRIORITY_OFFSET_POSITIVE_MAX 0x3fffffff
- #define PRIORITY_OFFSET_NEGATIVE_MAX 0x40000000
--
- struct sadb_msg;
- extern void pfkey_sadump __P((struct sadb_msg *));
- extern void pfkey_sadump_withports __P((struct sadb_msg *));
-diff --git a/src/racoon/admin.c b/src/racoon/admin.c
-index 4b1875b..03ea3f8 100644
---- a/src/racoon/admin.c
-+++ b/src/racoon/admin.c
-@@ -36,7 +36,6 @@
- #include <sys/types.h>
- #include <sys/param.h>
- #include <sys/socket.h>
--#include <sys/signal.h>
- #include <sys/stat.h>
- #include <sys/un.h>
-
-@@ -46,6 +45,7 @@
- #include PATH_IPSEC_H
-
-
-+#include <signal.h>
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
-diff --git a/src/racoon/backupsa.c b/src/racoon/backupsa.c
-index 82d74ca..95307ca 100644
---- a/src/racoon/backupsa.c
-+++ b/src/racoon/backupsa.c
-@@ -276,9 +276,9 @@ do { \
- GETNEXTNUM(sa_args.a_keylen, strtoul);
- GETNEXTNUM(sa_args.flags, strtoul);
- GETNEXTNUM(sa_args.l_alloc, strtoul);
-- GETNEXTNUM(sa_args.l_bytes, strtouq);
-- GETNEXTNUM(sa_args.l_addtime, strtouq);
-- GETNEXTNUM(sa_args.l_usetime, strtouq);
-+ GETNEXTNUM(sa_args.l_bytes, strtoull);
-+ GETNEXTNUM(sa_args.l_addtime, strtoull);
-+ GETNEXTNUM(sa_args.l_usetime, strtoull);
- GETNEXTNUM(sa_args.seq, strtoul);
-
- #undef GETNEXTNUM
-diff --git a/src/racoon/cftoken.l b/src/racoon/cftoken.l
-index 1701922..787f4a9 100644
---- a/src/racoon/cftoken.l
-+++ b/src/racoon/cftoken.l
-@@ -77,6 +77,10 @@
-
- #include "cfparse.h"
-
-+#ifndef GLOB_TILDE
-+#define GLOB_TILDE 0
-+#endif
-+
- int yyerrorcount = 0;
-
- #if defined(YIPS_DEBUG)
-diff --git a/src/racoon/logger.h b/src/racoon/logger.h
-index 3fd3e94..67af5f0 100644
---- a/src/racoon/logger.h
-+++ b/src/racoon/logger.h
-@@ -34,6 +34,9 @@
- #ifndef _LOGGER_H
- #define _LOGGER_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- struct log {
- int head;
- int siz;
-diff --git a/src/racoon/misc.h b/src/racoon/misc.h
-index 3e758d9..30d9825 100644
---- a/src/racoon/misc.h
-+++ b/src/racoon/misc.h
-@@ -34,6 +34,9 @@
- #ifndef _MISC_H
- #define _MISC_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- #define BIT2STR(b) bit2str(b, sizeof(b)<<3)
-
- #ifdef HAVE_FUNC_MACRO
-diff --git a/src/racoon/missing/crypto/sha2/sha2.h b/src/racoon/missing/crypto/sha2/sha2.h
-index 42bcc2a..c043dfe 100644
---- a/src/racoon/missing/crypto/sha2/sha2.h
-+++ b/src/racoon/missing/crypto/sha2/sha2.h
-@@ -40,6 +40,9 @@
- #ifndef __SHA2_H__
- #define __SHA2_H__
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- #ifdef __cplusplus
- extern "C" {
- #endif
-diff --git a/src/racoon/netdb_dnssec.h b/src/racoon/netdb_dnssec.h
-index a11209d..98fd813 100644
---- a/src/racoon/netdb_dnssec.h
-+++ b/src/racoon/netdb_dnssec.h
-@@ -34,6 +34,9 @@
- #ifndef _NETDB_DNSSEC_H
- #define _NETDB_DNSSEC_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- #ifndef T_CERT
- #define T_CERT 37 /* defined by RFC2538 section 2 */
- #endif
-diff --git a/src/racoon/pfkey.c b/src/racoon/pfkey.c
-index 8f26c19..a06c30e 100644
---- a/src/racoon/pfkey.c
-+++ b/src/racoon/pfkey.c
-@@ -59,7 +59,6 @@
- #include <sys/param.h>
- #include <sys/socket.h>
- #include <sys/queue.h>
--#include <sys/sysctl.h>
-
- #include <net/route.h>
- #include <net/pfkeyv2.h>
-diff --git a/src/racoon/plog.h b/src/racoon/plog.h
-index ed43c8b..920c850 100644
---- a/src/racoon/plog.h
-+++ b/src/racoon/plog.h
-@@ -34,6 +34,8 @@
- #ifndef _PLOG_H
- #define _PLOG_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
- #ifdef HAVE_STDARG_H
- #include <stdarg.h>
- #else
-diff --git a/src/racoon/str2val.h b/src/racoon/str2val.h
-index 4a7cec1..d3d698e 100644
---- a/src/racoon/str2val.h
-+++ b/src/racoon/str2val.h
-@@ -34,6 +34,9 @@
- #ifndef _STR2VAL_H
- #define _STR2VAL_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- extern caddr_t val2str __P((const char *, size_t));
- extern char *str2val __P((const char *, int, size_t *));
-
-diff --git a/src/racoon/vmbuf.h b/src/racoon/vmbuf.h
-index 3f2f4ea..8287a00 100644
---- a/src/racoon/vmbuf.h
-+++ b/src/racoon/vmbuf.h
-@@ -34,6 +34,9 @@
- #ifndef _VMBUF_H
- #define _VMBUF_H
-
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-+
- /*
- * bp v
- * v v
-diff --git a/src/setkey/extern.h b/src/setkey/extern.h
-index 6f439fa..a1d9d14 100644
---- a/src/setkey/extern.h
-+++ b/src/setkey/extern.h
-@@ -1,6 +1,7 @@
- /* $NetBSD: extern.h,v 1.5 2009/03/06 11:45:03 tteras Exp $ */
-
--
-+#undef __P
-+#define __P(protos) protos /* ANSI C prototypes */
-
- void parse_init __P((void));
- int parse __P((FILE **));
-diff --git a/src/setkey/setkey.c b/src/setkey/setkey.c
-index c400faa..51f8b75 100644
---- a/src/setkey/setkey.c
-+++ b/src/setkey/setkey.c
-@@ -40,7 +40,6 @@
- #include <sys/socket.h>
- #include <sys/time.h>
- #include <sys/stat.h>
--#include <sys/sysctl.h>
- #include <err.h>
- #include <netinet/in.h>
- #include <net/pfkeyv2.h>
---
-2.12.0
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch
deleted file mode 100644
index d5602c03db..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 738a9857be9c92ad2f70be88ccee238e3154a936 Mon Sep 17 00:00:00 2001
-From: Joe MacDonald <joe.macdonald@windriver.com>
-Date: Wed, 2 Oct 2013 14:20:37 -0400
-Subject: [PATCH] racoon/pfkey: avoid potential null-pointer dereference
-
-Building with -Werror=maybe-uninitialized revealed that 'remote' from
-pk_recvmigrate() could be used with uninitialized data in
-migrate_sp_ike_addresses(). Ensure it is always at a minimum assigned
-NULL.
-
-Upstream-Status: Pending
-
-Signed-off-by: Joe MacDonald <joe.macdonald@windriver.com>
----
- src/racoon/pfkey.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/racoon/pfkey.c b/src/racoon/pfkey.c
-index d00b166..e0dc1db 100644
---- a/src/racoon/pfkey.c
-+++ b/src/racoon/pfkey.c
-@@ -3352,7 +3352,7 @@ pk_recvmigrate(mhp)
- struct sockaddr *old_saddr, *new_saddr;
- struct sockaddr *old_daddr, *new_daddr;
- struct sockaddr *old_local, *old_remote;
-- struct sockaddr *local, *remote;
-+ struct sockaddr *local, *remote = NULL;
- struct sadb_x_kmaddress *kmaddr;
- struct sadb_x_policy *xpl;
- struct sadb_x_ipsecrequest *xisr_list;
---
-1.7.9.5
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch
deleted file mode 100644
index 13e9d73fc4..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-Don-t-link-against-libfl.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From e48b9097dce7bc2bfbb9e9c542124d3b5cebab39 Mon Sep 17 00:00:00 2001
-From: Paul Barker <paul@paulbarker.me.uk>
-Date: Wed, 5 Mar 2014 13:39:14 +0000
-Subject: [PATCH] Don't link against libfl
-
-We can remove all references to yywrap by adding "%option noyywrap" statements
-to each flex source file that doesn't override yywrap. After this, we no longer
-need to link against libfl and so no longer get errors about undefined
-references to yylex.
-
-Signed-off-by: Paul Barker <paul@paulbarker.me.uk>
-Upstream-status: Submitted 2014-03-11
- see http://sourceforge.net/p/ipsec-tools/mailman/ipsec-tools-devel/thread/CANyK_8ewmxGA3vBVJW6s1APXPmxPR%2BDFWZ61EL8pCt288aKQ6w%40mail.gmail.com/#msg32088797
----
- src/libipsec/Makefile.am | 1 -
- src/racoon/Makefile.am | 2 +-
- src/racoon/cftoken.l | 2 ++
- src/setkey/Makefile.am | 1 -
- src/setkey/token.l | 2 ++
- 5 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/src/libipsec/Makefile.am b/src/libipsec/Makefile.am
-index 6a4e3b3..df1e106 100644
---- a/src/libipsec/Makefile.am
-+++ b/src/libipsec/Makefile.am
-@@ -26,7 +26,6 @@ libipsec_la_SOURCES = \
- # version is current:revision:age.
- # See: http://www.gnu.org/manual/libtool-1.4.2/html_chapter/libtool_6.html#SEC32
- libipsec_la_LDFLAGS = -version-info 0:1:0
--libipsec_la_LIBADD = $(LEXLIB)
-
- noinst_HEADERS = ipsec_strerror.h
-
-diff --git a/src/racoon/Makefile.am b/src/racoon/Makefile.am
-index dbaded9..0662957 100644
---- a/src/racoon/Makefile.am
-+++ b/src/racoon/Makefile.am
-@@ -38,7 +38,7 @@ racoon_SOURCES = \
- cftoken.l cfparse.y prsa_tok.l prsa_par.y
- EXTRA_racoon_SOURCES = isakmp_xauth.c isakmp_cfg.c isakmp_unity.c throttle.c \
- isakmp_frag.c nattraversal.c security.c $(MISSING_ALGOS)
--racoon_LDADD = $(CRYPTOBJS) $(HYBRID_OBJS) $(NATT_OBJS) $(FRAG_OBJS) $(LEXLIB) \
-+racoon_LDADD = $(CRYPTOBJS) $(HYBRID_OBJS) $(NATT_OBJS) $(FRAG_OBJS) \
- $(SECCTX_OBJS) vmbuf.o sockmisc.o misc.o ../libipsec/libipsec.la
- racoon_DEPENDENCIES = \
- $(CRYPTOBJS) $(HYBRID_OBJS) $(NATT_OBJS) $(FRAG_OBJS) $(SECCTX_OBJS) \
-diff --git a/src/racoon/cftoken.l b/src/racoon/cftoken.l
-index 490242c..1701922 100644
---- a/src/racoon/cftoken.l
-+++ b/src/racoon/cftoken.l
-@@ -106,6 +106,8 @@ static int incstackp = 0;
- static int yy_first_time = 1;
- %}
-
-+%option noyywrap
-+
- /* common seciton */
- nl \n
- ws [ \t]+
-diff --git a/src/setkey/Makefile.am b/src/setkey/Makefile.am
-index 746c1f1..389e6cf 100644
---- a/src/setkey/Makefile.am
-+++ b/src/setkey/Makefile.am
-@@ -13,7 +13,6 @@ setkey_SOURCES = \
-
- setkey_LDFLAGS = ../libipsec/libipsec.la
- setkey_DEPENDENCIES = ../libipsec/libipsec.la
--setkey_LDADD = $(LEXLIB)
-
- noinst_HEADERS = vchar.h extern.h
- man8_MANS = setkey.8
-diff --git a/src/setkey/token.l b/src/setkey/token.l
-index ad3d843..eb23b76 100644
---- a/src/setkey/token.l
-+++ b/src/setkey/token.l
-@@ -88,6 +88,8 @@
- #endif
- %}
-
-+%option noyywrap
-+
- /* common section */
- nl \n
- ws [ \t]+
---
-1.9.0
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch
deleted file mode 100644
index e9dd84aaa9..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/0002-cfparse-clear-memory-equal-to-size-of-array.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From a5c59f6a1479947d33dba5191724cc5fc88a614b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 22 Apr 2017 10:39:57 -0700
-Subject: [PATCH 2/2] cfparse: clear memory equal to size of array
-
-Fixes compiler error
-cfparse.y: In function 'set_isakmp_proposal':
-cfparse.y:2567:3: error: 'memset' used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/racoon/cfparse.y | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/racoon/cfparse.y b/src/racoon/cfparse.y
-index 0d9bd67..5d9c67b 100644
---- a/src/racoon/cfparse.y
-+++ b/src/racoon/cfparse.y
-@@ -2564,7 +2564,7 @@ set_isakmp_proposal(rmconf)
- plog(LLV_DEBUG2, LOCATION, NULL,
- "encklen=%d\n", s->encklen);
-
-- memset(types, 0, ARRAYLEN(types));
-+ memset(types, 0, sizeof(types));
- types[algclass_isakmp_enc] = s->algclass[algclass_isakmp_enc];
- types[algclass_isakmp_hash] = s->algclass[algclass_isakmp_hash];
- types[algclass_isakmp_dh] = s->algclass[algclass_isakmp_dh];
---
-2.12.2
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch
deleted file mode 100644
index 8d270a62b9..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: ipsec-tools-0.8.1/configure.ac
-===================================================================
---- ipsec-tools-0.8.1.orig/configure.ac 2013-01-08 12:43:29.000000000 +0000
-+++ ipsec-tools-0.8.1/configure.ac 2014-07-18 07:51:30.045555880 +0000
-@@ -6,7 +6,7 @@
- AC_CONFIG_SRCDIR([configure.ac])
- AC_CONFIG_HEADERS(config.h)
-
--AM_INIT_AUTOMAKE(dist-bzip2)
-+AM_INIT_AUTOMAKE([foreign dist-bzip2])
-
- AC_ENABLE_SHARED(no)
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch
deleted file mode 100644
index 5286376ac6..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2015-4047.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-[PATCH] fix CVE-2015-4047
-
-Upstream-Status: Backport
-
-http://www.openwall.com/lists/oss-security/2015/05/20/1
-
-racoon/gssapi.c in IPsec-Tools 0.8.2 allows remote attackers to cause
-a denial of service (NULL pointer dereference and IKE daemon crash) via
-a series of crafted UDP requests.
-
-https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-4047
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- src/racoon/gssapi.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/racoon/gssapi.c b/src/racoon/gssapi.c
-index e64b201..1ad3b42 100644
---- a/src/racoon/gssapi.c
-+++ b/src/racoon/gssapi.c
-@@ -192,6 +192,11 @@ gssapi_init(struct ph1handle *iph1)
- gss_name_t princ, canon_princ;
- OM_uint32 maj_stat, min_stat;
-
-+ if (iph1->rmconf == NULL) {
-+ plog(LLV_ERROR, LOCATION, NULL, "no remote config\n");
-+ return -1;
-+ }
-+
- gps = racoon_calloc(1, sizeof (struct gssapi_ph1_state));
- if (gps == NULL) {
- plog(LLV_ERROR, LOCATION, NULL, "racoon_calloc failed\n");
---
-1.9.1
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch
deleted file mode 100644
index bd07965543..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/fix-CVE-2016-10396.patch
+++ /dev/null
@@ -1,207 +0,0 @@
-Upstream-Status: Backport [https://anonscm.debian.org/cgit/pkg-ipsec-tools/pkg-ipsec-tools.git/plain/debian/patches/CVE-2016-10396.patch?id=62ac12648a4eb7c5ba5dba0f81998d1acf310d8b]
-
-Fix CVE-2016-10396.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-Description: Fix remotely exploitable DoS. http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-10396
-Source: vendor; https://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=51682
-Bug-debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=867986
-
-Index: pkg-ipsec-tools/src/racoon/isakmp_frag.c
-===================================================================
---- pkg-ipsec-tools.orig/src/racoon/isakmp_frag.c
-+++ pkg-ipsec-tools/src/racoon/isakmp_frag.c
-@@ -1,4 +1,4 @@
--/* $NetBSD: isakmp_frag.c,v 1.5 2009/04/22 11:24:20 tteras Exp $ */
-+/* $NetBSD: isakmp_frag.c,v 1.5.36.1 2017/04/21 16:50:42 bouyer Exp $ */
-
- /* Id: isakmp_frag.c,v 1.4 2004/11/13 17:31:36 manubsd Exp */
-
-@@ -173,6 +173,43 @@ vendorid_frag_cap(gen)
- return ntohl(hp[MD5_DIGEST_LENGTH / sizeof(*hp)]);
- }
-
-+static int
-+isakmp_frag_insert(struct ph1handle *iph1, struct isakmp_frag_item *item)
-+{
-+ struct isakmp_frag_item *pitem = NULL;
-+ struct isakmp_frag_item *citem = iph1->frag_chain;
-+
-+ /* no frag yet, just insert at beginning of list */
-+ if (iph1->frag_chain == NULL) {
-+ iph1->frag_chain = item;
-+ return 0;
-+ }
-+
-+ do {
-+ /* duplicate fragment number, abort (CVE-2016-10396) */
-+ if (citem->frag_num == item->frag_num)
-+ return -1;
-+
-+ /* need to insert before current item */
-+ if (citem->frag_num > item->frag_num) {
-+ if (pitem != NULL)
-+ pitem->frag_next = item;
-+ else
-+ /* insert at the beginning of the list */
-+ iph1->frag_chain = item;
-+ item->frag_next = citem;
-+ return 0;
-+ }
-+
-+ pitem = citem;
-+ citem = citem->frag_next;
-+ } while (citem != NULL);
-+
-+ /* we reached the end of the list, insert */
-+ pitem->frag_next = item;
-+ return 0;
-+}
-+
- int
- isakmp_frag_extract(iph1, msg)
- struct ph1handle *iph1;
-@@ -224,39 +261,43 @@ isakmp_frag_extract(iph1, msg)
- item->frag_next = NULL;
- item->frag_packet = buf;
-
-- /* Look for the last frag while inserting the new item in the chain */
-- if (item->frag_last)
-- last_frag = item->frag_num;
-+ /* Check for the last frag before inserting the new item in the chain */
-+ if (item->frag_last) {
-+ /* if we have the last fragment, indices must match */
-+ if (iph1->frag_last_index != 0 &&
-+ item->frag_last != iph1->frag_last_index) {
-+ plog(LLV_ERROR, LOCATION, NULL,
-+ "Repeated last fragment index mismatch\n");
-+ racoon_free(item);
-+ vfree(buf);
-+ return -1;
-+ }
-
-- if (iph1->frag_chain == NULL) {
-- iph1->frag_chain = item;
-- } else {
-- struct isakmp_frag_item *current;
-+ last_frag = iph1->frag_last_index = item->frag_num;
-+ }
-
-- current = iph1->frag_chain;
-- while (current->frag_next) {
-- if (current->frag_last)
-- last_frag = item->frag_num;
-- current = current->frag_next;
-- }
-- current->frag_next = item;
-+ /* insert fragment into chain */
-+ if (isakmp_frag_insert(iph1, item) == -1) {
-+ plog(LLV_ERROR, LOCATION, NULL,
-+ "Repeated fragment index mismatch\n");
-+ racoon_free(item);
-+ vfree(buf);
-+ return -1;
- }
-
-- /* If we saw the last frag, check if the chain is complete */
-+ /* If we saw the last frag, check if the chain is complete
-+ * we have a sorted list now, so just walk through */
- if (last_frag != 0) {
-+ item = iph1->frag_chain;
- for (i = 1; i <= last_frag; i++) {
-- item = iph1->frag_chain;
-- do {
-- if (item->frag_num == i)
-- break;
-- item = item->frag_next;
-- } while (item != NULL);
--
-+ if (item->frag_num != i)
-+ break;
-+ item = item->frag_next;
- if (item == NULL) /* Not found */
- break;
- }
-
-- if (item != NULL) /* It is complete */
-+ if (i > last_frag) /* It is complete */
- return 1;
- }
-
-@@ -291,15 +332,9 @@ isakmp_frag_reassembly(iph1)
- }
- data = buf->v;
-
-+ item = iph1->frag_chain;
- for (i = 1; i <= frag_count; i++) {
-- item = iph1->frag_chain;
-- do {
-- if (item->frag_num == i)
-- break;
-- item = item->frag_next;
-- } while (item != NULL);
--
-- if (item == NULL) {
-+ if (item->frag_num != i) {
- plog(LLV_ERROR, LOCATION, NULL,
- "Missing fragment #%d\n", i);
- vfree(buf);
-@@ -308,6 +343,7 @@ isakmp_frag_reassembly(iph1)
- }
- memcpy(data, item->frag_packet->v, item->frag_packet->l);
- data += item->frag_packet->l;
-+ item = item->frag_next;
- }
-
- out:
-Index: pkg-ipsec-tools/src/racoon/isakmp_inf.c
-===================================================================
---- pkg-ipsec-tools.orig/src/racoon/isakmp_inf.c
-+++ pkg-ipsec-tools/src/racoon/isakmp_inf.c
-@@ -720,6 +720,7 @@ isakmp_info_send_nx(isakmp, remote, loca
- #endif
- #ifdef ENABLE_FRAG
- iph1->frag = 0;
-+ iph1->frag_last_index = 0;
- iph1->frag_chain = NULL;
- #endif
-
-Index: pkg-ipsec-tools/src/racoon/isakmp.c
-===================================================================
---- pkg-ipsec-tools.orig/src/racoon/isakmp.c
-+++ pkg-ipsec-tools/src/racoon/isakmp.c
-@@ -1072,6 +1072,7 @@ isakmp_ph1begin_i(rmconf, remote, local)
- iph1->frag = 1;
- else
- iph1->frag = 0;
-+ iph1->frag_last_index = 0;
- iph1->frag_chain = NULL;
- #endif
- iph1->approval = NULL;
-@@ -1176,6 +1177,7 @@ isakmp_ph1begin_r(msg, remote, local, et
- #endif
- #ifdef ENABLE_FRAG
- iph1->frag = 0;
-+ iph1->frag_last_index = 0;
- iph1->frag_chain = NULL;
- #endif
- iph1->approval = NULL;
-Index: pkg-ipsec-tools/src/racoon/handler.h
-===================================================================
---- pkg-ipsec-tools.orig/src/racoon/handler.h
-+++ pkg-ipsec-tools/src/racoon/handler.h
-@@ -1,4 +1,4 @@
--/* $NetBSD: handler.h,v 1.25 2010/11/17 10:40:41 tteras Exp $ */
-+/* $NetBSD: handler.h,v 1.26 2017/01/24 19:23:56 christos Exp $ */
-
- /* Id: handler.h,v 1.19 2006/02/25 08:25:12 manubsd Exp */
-
-@@ -141,6 +141,7 @@ struct ph1handle {
- #endif
- #ifdef ENABLE_FRAG
- int frag; /* IKE phase 1 fragmentation */
-+ int frag_last_index;
- struct isakmp_frag_item *frag_chain; /* Received fragments */
- #endif
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch
deleted file mode 100644
index 36efc49179..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/glibc-2.20.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-squahes below warning
- warning: #warning "_BSD_SOURCE and _SVID_SOURCE are deprecated, use _DEFAULT_SOURCE"
-
-Seen with glibc 2.20
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-Index: ipsec-tools-0.8.2/src/include-glibc/glibc-bugs.h
-===================================================================
---- ipsec-tools-0.8.2.orig/src/include-glibc/glibc-bugs.h 2006-09-09 09:22:08.000000000 -0700
-+++ ipsec-tools-0.8.2/src/include-glibc/glibc-bugs.h 2014-09-03 22:27:22.551563888 -0700
-@@ -4,7 +4,11 @@
- #define __GLIBC_BUGS_H__ 1
-
- #define _XOPEN_SOURCE 500
-+/* Legacy feature macro.*/
- #define _BSD_SOURCE
-+/* New feature macro that provides everything _BSD_SOURCE and
-+ * _SVID_SOURCE provided and possibly more. */
-+#define _DEFAULT_SOURCE
-
- #include <features.h>
- #include <sys/types.h>
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch
deleted file mode 100644
index e82db087c5..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-Resend-UPDATE-message-when-received-EINTR-message.patch
+++ /dev/null
@@ -1,220 +0,0 @@
-racoon: Resend UPDATE message when received EINTR message
-
-Upstream-Status: Pending
-
-While kernel is processing the UPDATE message which is sent from racoon,
-it maybe interrupted by system signal and if this case happens,
-kernel responds with an EINTR message to racoon and kernel fails to
-establish the corresponding SA.
-Fix this problem by resend the UPDATE message when EINTR(Interrupted
-system call) error happens.
-
-Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com>
----
---- a/src/libipsec/libpfkey.h
-+++ b/src/libipsec/libpfkey.h
-@@ -92,6 +92,12 @@
- u_int16_t ctxstrlen; /* length of security context string */
- };
-
-+struct update_msg_info {
-+ struct sadb_msg *update_msg;
-+ int so;
-+ int len;
-+};
-+
- /* The options built into libipsec */
- extern int libipsec_opt;
- #define LIBIPSEC_OPT_NATT 0x01
---- a/src/libipsec/pfkey.c
-+++ b/src/libipsec/pfkey.c
-@@ -1219,7 +1219,8 @@
- }
- #endif
-
--
-+struct update_msg_info update_msg_send = {NULL, 0, 0};
-+
- /* sending SADB_ADD or SADB_UPDATE message to the kernel */
- static int
- pfkey_send_x1(struct pfkey_send_sa_args *sa_parms)
-@@ -1483,10 +1484,24 @@
-
- /* send message */
- len = pfkey_send(sa_parms->so, newmsg, len);
-- free(newmsg);
-
-- if (len < 0)
-- return -1;
-+ if (newmsg->sadb_msg_type == SADB_UPDATE) {
-+ if (update_msg_send.update_msg)
-+ free(update_msg_send.update_msg);
-+ update_msg_send.update_msg = newmsg;
-+ update_msg_send.so = sa_parms->so;
-+ update_msg_send.len = len;
-+
-+ if (len < 0) {
-+ free(update_msg_send.update_msg);
-+ update_msg_send.update_msg = NULL;
-+ return -1;
-+ }
-+ } else {
-+ free(newmsg);
-+ if (len < 0)
-+ return -1;
-+ }
-
- __ipsec_errcode = EIPSEC_NO_ERROR;
- return len;
---- a/src/racoon/session.c
-+++ b/src/racoon/session.c
-@@ -100,6 +100,8 @@
-
- #include "sainfo.h"
-
-+extern struct update_msg_info update_msg_send;
-+
- struct fd_monitor {
- int (*callback)(void *ctx, int fd);
- void *ctx;
-@@ -348,6 +350,11 @@
- close_sockets();
- backupsa_clean();
-
-+ if (update_msg_send.update_msg) {
-+ free(update_msg_send.update_msg);
-+ update_msg_send.update_msg = NULL;
-+ }
-+
- plog(LLV_INFO, LOCATION, NULL, "racoon process %d shutdown\n", getpid());
-
- exit(0);
---- a/src/racoon/pfkey.c
-+++ b/src/racoon/pfkey.c
-@@ -103,10 +103,12 @@
- #include "crypto_openssl.h"
- #include "grabmyaddr.h"
-+#include "../libipsec/libpfkey.h"
-
- #if defined(SADB_X_EALG_RIJNDAELCBC) && !defined(SADB_X_EALG_AESCBC)
- #define SADB_X_EALG_AESCBC SADB_X_EALG_RIJNDAELCBC
- #endif
-
-+extern struct update_msg_info update_msg_send;
- /* prototype */
- static u_int ipsecdoi2pfkey_aalg __P((u_int));
- static u_int ipsecdoi2pfkey_ealg __P((u_int));
-@@ -253,6 +255,13 @@
- s_pfkey_type(msg->sadb_msg_type),
- strerror(msg->sadb_msg_errno));
-
-+ if (msg->sadb_msg_errno == EINTR &&
-+ update_msg_send.update_msg) {
-+ plog(LLV_DEBUG, LOCATION, NULL,
-+ "pfkey update resend\n");
-+ send(update_msg_send.so, (void *)update_msg_send.update_msg, (socklen_t)update_msg_send.len, 0);
-+ }
-+
- goto end;
- }
-
-@@ -498,6 +507,11 @@
- {
- flushsp();
-
-+ if (update_msg_send.update_msg) {
-+ free(update_msg_send.update_msg);
-+ update_msg_send.update_msg = NULL;
-+ }
-+
- if (pfkey_send_spddump(lcconf->sock_pfkey) < 0) {
- plog(LLV_ERROR, LOCATION, NULL,
- "libipsec sending spddump failed: %s\n",
-@@ -1295,6 +1309,8 @@
- return 0;
- }
-
-+int update_received = 0;
-+
- static int
- pk_recvupdate(mhp)
- caddr_t *mhp;
-@@ -1307,6 +1323,13 @@
- int incomplete = 0;
- struct saproto *pr;
-
-+ update_received = 1;
-+
-+ if (update_msg_send.update_msg) {
-+ free(update_msg_send.update_msg);
-+ update_msg_send.update_msg = NULL;
-+ }
-+
- /* ignore this message because of local test mode. */
- if (f_local)
- return 0;
-@@ -4163,3 +4186,8 @@
-
- return buf;
- }
-+
-+int receive_from_isakmp()
-+{
-+ return pfkey_handler(NULL, lcconf->sock_pfkey);
-+}
---- a/src/racoon/pfkey.h
-+++ b/src/racoon/pfkey.h
-@@ -71,5 +71,6 @@
- extern u_int32_t pk_getseq __P((void));
- extern const char *sadbsecas2str
- __P((struct sockaddr *, struct sockaddr *, int, u_int32_t, int));
-+extern int receive_from_isakmp __P((void));
-
- #endif /* _PFKEY_H */
---- a/src/racoon/isakmp_quick.c
-+++ b/src/racoon/isakmp_quick.c
-@@ -774,6 +774,8 @@
- return error;
- }
-
-+extern int update_received;
-+
- /*
- * send to responder
- * HDR*, HASH(3)
-@@ -892,6 +894,11 @@
- }
- plog(LLV_DEBUG, LOCATION, NULL, "pfkey update sent.\n");
-
-+ while (!update_received)
-+ receive_from_isakmp();
-+
-+ update_received = 0;
-+
- /* Do ADD for responder */
- if (pk_sendadd(iph2) < 0) {
- plog(LLV_ERROR, LOCATION, NULL, "pfkey add failed.\n");
-@@ -1035,6 +1042,11 @@
- }
- plog(LLV_DEBUG, LOCATION, NULL, "pfkey update sent.\n");
-
-+ while (!update_received)
-+ receive_from_isakmp();
-+
-+ update_received = 0;
-+
- /* Do ADD for responder */
- if (pk_sendadd(iph2) < 0) {
- plog(LLV_ERROR, LOCATION, NULL, "pfkey add failed.\n");
-@@ -1989,6 +2001,11 @@
- }
- plog(LLV_DEBUG, LOCATION, NULL, "pfkey update sent.\n");
-
-+ while (!update_received)
-+ receive_from_isakmp();
-+
-+ update_received = 0;
-+
- /* Do ADD for responder */
- if (pk_sendadd(iph2) < 0) {
- plog(LLV_ERROR, LOCATION, NULL, "pfkey add failed.\n");
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch
deleted file mode 100644
index e272bc20fa..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-ivm.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Subject: [PATCH] ipsec-tools: racoon: check several invalid ivm
-
-Upstream-Status: Pending
-
-Add checking for invalid ivm, or it will crash racoon.
-
-Signed-off-by: Ming Liu <ming.liu@windriver.com>
----
- isakmp_cfg.c | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff -urpN a/src/racoon/isakmp_cfg.c b/src/racoon/isakmp_cfg.c
---- a/src/racoon/isakmp_cfg.c
-+++ b/src/racoon/isakmp_cfg.c
-@@ -171,6 +171,11 @@ isakmp_cfg_r(iph1, msg)
- iph1->mode_cfg->last_msgid != packet->msgid )
- iph1->mode_cfg->ivm =
- isakmp_cfg_newiv(iph1, packet->msgid);
-+ if(iph1->mode_cfg->ivm == NULL) {
-+ plog(LLV_ERROR, LOCATION, NULL,
-+ "failed to create new IV\n");
-+ return;
-+ }
- ivm = iph1->mode_cfg->ivm;
-
- dmsg = oakley_do_decrypt(iph1, msg, ivm->iv, ivm->ive);
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch
deleted file mode 100644
index de1bdb4077..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon-check-invalid-pointers.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Subject: [PATCH] ipsec-tools: racoon: check several invalid pointers
-
-Upstream-Status: Pending
-
-Add checking for invalid pointers, or it will crash racoon.
-
-Signed-off-by: Ming Liu <ming.liu@windriver.com>
----
- ipsec_doi.c | 5 +++--
- isakmp_cfg.c | 7 +++++++
- isakmp_quick.c | 6 ++++--
- 3 files changed, 14 insertions(+), 4 deletions(-)
-
-diff -urpN a/src/racoon/ipsec_doi.c b/src/racoon/ipsec_doi.c
---- a/src/racoon/ipsec_doi.c
-+++ b/src/racoon/ipsec_doi.c
-@@ -3374,8 +3374,9 @@ ipsecdoi_chkcmpids( idt, ids, exact )
-
- /* handle wildcard IDs */
-
-- if (idt == NULL || ids == NULL)
-- {
-+ if (idt == NULL || ids == NULL ||
-+ idt->v == NULL || idt->l == 0 ||
-+ ids->v == NULL || ids->l == 0) {
- if( !exact )
- {
- plog(LLV_DEBUG, LOCATION, NULL,
-diff -urpN a/src/racoon/isakmp_cfg.c b/src/racoon/isakmp_cfg.c
---- a/src/racoon/isakmp_cfg.c
-+++ b/src/racoon/isakmp_cfg.c
-@@ -1138,6 +1138,13 @@ isakmp_cfg_newiv(iph1, msgid)
- return NULL;
- }
-
-+ if (iph1->ivm == NULL || iph1->ivm->iv == NULL ||
-+ iph1->ivm->iv->v == NULL || iph1->ivm->iv->l == 0) {
-+ plog(LLV_ERROR, LOCATION, NULL,
-+ "isakmp_cfg_newiv called with invalid IV management\n");
-+ return NULL;
-+ }
-+
- if (ics->ivm != NULL)
- oakley_delivm(ics->ivm);
-
-diff -urpN a/src/racoon/isakmp_quick.c b/src/racoon/isakmp_quick.c
---- a/src/racoon/isakmp_quick.c
-+++ b/src/racoon/isakmp_quick.c
-@@ -2243,8 +2243,10 @@ get_proposal_r(iph2)
- int error = ISAKMP_INTERNAL_ERROR;
-
- /* check the existence of ID payload */
-- if ((iph2->id_p != NULL && iph2->id == NULL)
-- || (iph2->id_p == NULL && iph2->id != NULL)) {
-+ if ((iph2->id_p != NULL &&
-+ (iph2->id == NULL || iph2->id->v == NULL || iph2->id->l == 0)) ||
-+ (iph2->id != NULL &&
-+ (iph2->id_p == NULL || iph2->id_p->v == NULL || iph2->id_p->l == 0))) {
- plog(LLV_ERROR, LOCATION, NULL,
- "Both IDs wasn't found in payload.\n");
- return ISAKMP_NTYPE_INVALID_ID_INFORMATION;
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf
deleted file mode 100644
index 6b507508b1..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf
+++ /dev/null
@@ -1,8 +0,0 @@
-# Defaults for racoon service
-# sourced by racoon.service
-# installed at /etc/default/racoon by the maintainer scripts
-#
-# This is a POSIX shell fragment
-#
-# Arguments to pass to racoon
-RACOON_ARGS=""
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample
deleted file mode 100644
index 2948a4a35b..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.conf.sample
+++ /dev/null
@@ -1,40 +0,0 @@
-#
-# NOTE: This file will not be used if you use racoon-tool(8) to manage your
-# IPsec connections. racoon-tool will process racoon-tool.conf(5) and
-# generate a configuration (/var/lib/racoon/racoon.conf) and use it, instead
-# of this file.
-#
-# Simple racoon.conf
-#
-#
-# Please look in /usr/share/doc/racoon/examples for
-# examples that come with the source.
-#
-# Please read racoon.conf(5) for details, and alsoread setkey(8).
-#
-#
-# Also read the Linux IPSEC Howto up at
-# http://www.ipsec-howto.org/t1.html
-#
-log notify;
-path pre_shared_key "/etc/racoon/psk.txt";
-path certificate "/etc/racoon/certs";
-
-#remote 172.31.1.1 {
-# exchange_mode main,aggressive;
-# proposal {
-# encryption_algorithm 3des;
-# hash_algorithm sha1;
-# authentication_method pre_shared_key;
-# dh_group modp1024;
-# }
-# generate_policy off;
-#}
-#
-#sainfo address 192.168.203.10[any] any address 192.168.22.0/24[any] any {
-# pfs_group modp768;
-# encryption_algorithm 3des;
-# authentication_algorithm hmac_md5;
-# compression_algorithm deflate;
-#}
-
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service b/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service
deleted file mode 100644
index a10e770279..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools/racoon.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Racoon IKEv1 key management daemon for IPSEC
-After=syslog.target network.target
-
-[Service]
-Type=forking
-EnvironmentFile=-@SYSCONFDIR@/default/racoon
-ExecStart=@SBINDIR@/racoon $RACOON_ARGS
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb b/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
deleted file mode 100644
index 020903d82f..0000000000
--- a/meta-networking/recipes-support/ipsec-tools/ipsec-tools_0.8.2.bb
+++ /dev/null
@@ -1,97 +0,0 @@
-DESCRIPTION = "IPsec-Tools is a port of KAME's IPsec utilities to the \
-Linux-2.6 IPsec implementation."
-HOMEPAGE = "http://ipsec-tools.sourceforge.net/"
-SECTION = "net"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://src/libipsec/pfkey.c;beginline=6;endline=31;md5=bc9b7ff40beff19fe6bc6aef26bd2b24"
-
-DEPENDS = "virtual/kernel openssl readline flex-native bison-native"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRC_URI = "http://ftp.netbsd.org/pub/NetBSD/misc/ipsec-tools/0.8/ipsec-tools-${PV}.tar.bz2 \
- file://0002-Don-t-link-against-libfl.patch \
- file://configure.patch \
- file://0001-racoon-pfkey-avoid-potential-null-pointer-dereferenc.patch \
- file://racoon-check-invalid-pointers.patch \
- file://racoon-check-invalid-ivm.patch \
- file://glibc-2.20.patch \
- file://racoon-Resend-UPDATE-message-when-received-EINTR-message.patch \
- file://racoon.conf.sample \
- file://racoon.conf \
- file://racoon.service \
- file://fix-CVE-2015-4047.patch \
- file://0001-Fix-build-with-clang.patch \
- file://0001-Fix-header-issues-found-with-musl-libc.patch \
- file://0002-cfparse-clear-memory-equal-to-size-of-array.patch \
- file://fix-CVE-2016-10396.patch \
- file://0001-Disable-gcc8-specific-warnings.patch \
- "
-SRC_URI[md5sum] = "d53ec14a0a3ece64e09e5e34b3350b41"
-SRC_URI[sha256sum] = "8eb6b38716e2f3a8a72f1f549c9444c2bc28d52c9536792690564c74fe722f2d"
-
-inherit autotools systemd
-
-# Options:
-# --enable-adminport enable admin port
-# --enable-rc5 enable RC5 encryption (patented)
-# --enable-idea enable IDEA encryption (patented)
-# --enable-gssapi enable GSS-API authentication
-# --enable-hybrid enable hybrid, both mode-cfg and xauth support
-# --enable-frag enable IKE fragmentation payload support
-# --enable-stats enable statistics logging function
-# --enable-dpd enable dead peer detection
-# --enable-samode-unspec enable to use unspecified a mode of SA
-# --disable-ipv6 disable ipv6 support
-# --enable-natt enable NAT-Traversal (yes/no/kernel)
-# --enable-natt-versions=list list of supported NAT-T versions delimited by coma.
-# --with-kernel-headers=/lib/modules/<uname>/build/include
-# where your Linux Kernel headers are installed
-# --with-readline support readline input (yes by default)
-# --with-flex use directiory (default: no)
-# --with-flexlib=<LIB> specify flex library.
-# --with-openssl=DIR specify OpenSSL directory
-# --with-libradius=DIR specify libradius path (like/usr/pkg)
-# --with-libpam=DIR specify libpam path (like/usr/pkg)
-#
-# Note: if you give it the actual kernel headers it won't build, it actually
-# needs to point at the linux-libc-headers version of the kernel headers.
-#
-EXTRA_OECONF = "--with-kernel-headers=${STAGING_INCDIR} \
- --with-readline \
- --with-openssl=${STAGING_LIBDIR}/.. \
- --without-libradius \
- --disable-security-context \
- --enable-shared \
- --enable-dpd \
- --enable-natt=yes \
- --sysconfdir=${sysconfdir}/racoon \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', '--enable-ipv6=yes', '', d)}"
-
-# See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=530527
-CFLAGS += "-fno-strict-aliasing"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam,"
-PACKAGECONFIG[selinux] = "--enable-security-context,--disable-security-context,libselinux,"
-
-SYSTEMD_SERVICE_${PN} = "racoon.service"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/racoon
- install -m 0644 ${WORKDIR}/racoon.conf.sample ${D}${sysconfdir}/racoon/racoon.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/racoon.service ${D}${systemd_unitdir}/system
-
- sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/racoon.service
- sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/racoon.service
-
- install -d ${D}${sysconfdir}/default/
- install -m 0644 ${WORKDIR}/racoon.conf ${D}${sysconfdir}/default/racoon
- fi
-}
-
-FILES_${PN} += "${sysconfdir}/racoon/racoon.conf \
- ${sysconfdir}/default/racoon"
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-Modify-the-Makefile-for-cross-compile.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
index 7c3dfe4a84..d7b0267d56 100644
--- a/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/0001-Modify-the-Makefile-for-cross-compile.patch
@@ -1,18 +1,22 @@
-From 58292175115bae7a4c3600d3022e59ea57213025 Mon Sep 17 00:00:00 2001
-From: Jianchuan Wang <jianchuan.wang@windriver.com>
-Date: Mon, 12 Jan 2015 15:53:23 +0800
+From 801224257015788d3aff026bf2ae1cd8531d4fcc Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 25 Jul 2018 13:12:04 +0800
Subject: [PATCH] Modify the Makefile for cross compile.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
+
+update to version 1.29
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- Makefile | 23 ++++++-----------------
+ Makefile | 9 ++++-----
libipvs/Makefile | 3 +--
- 2 files changed, 7 insertions(+), 19 deletions(-)
+ 2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
-index e4e03cc..461c021 100644
+index 91a2991..906086d 100644
--- a/Makefile
+++ b/Makefile
@@ -35,10 +35,9 @@ ARCH = $(shell uname -m)
@@ -23,57 +27,29 @@ index e4e03cc..461c021 100644
INCLUDE =
SBIN = $(BUILD_ROOT)/sbin
-MANDIR = usr/man
-+MANDIR = usr/share/man
++MANDIR = usr/share/man
MAN = $(BUILD_ROOT)/$(MANDIR)/man8
INIT = $(BUILD_ROOT)/etc/rc.d/init.d
MKDIR = mkdir
-@@ -62,17 +61,7 @@ RPMBUILD = $(shell \
- echo "/bin/rpm"; \
- fi )
-
--ifeq (,$(FORCE_GETOPT))
--LIB_SEARCH = /lib64 /usr/lib64 /usr/local/lib64 /lib /usr/lib /usr/local/lib
--POPT_LIB = $(shell for i in $(LIB_SEARCH); do \
-- if [ -f $$i/libpopt.a ]; then \
-- if nm $$i/libpopt.a | fgrep -q poptGetContext; then \
-- echo "-lpopt"; \
-- break; \
-- fi; \
-- fi; \
--done)
--endif
-+POPT_LIB = -lpopt
-
- ifneq (,$(POPT_LIB))
- POPT_DEFINE = -DHAVE_POPT
-@@ -81,7 +70,7 @@ endif
- OBJS = ipvsadm.o config_stream.o dynamic_array.o
- LIBS = $(POPT_LIB)
- ifneq (0,$(HAVE_NL))
--LIBS += -lnl
-+LIBS += -lnl-3 -lnl-genl-3
- endif
- DEFINES = -DVERSION=\"$(VERSION)\" -DSCHEDULERS=\"$(SCHEDULERS)\" \
- -DPE_LIST=\"$(PE_LIST)\" $(POPT_DEFINE)
-@@ -91,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \
+@@ -81,13 +80,13 @@ DEFINES += $(shell if [ ! -f ../ip_vs.h ]; then \
.PHONY = all clean install dist distclean rpm rpms
-all: libs ipvsadm
-+all: ipvsadm
++all: ipvsadm
libs:
make -C libipvs
-ipvsadm: $(OBJS) $(STATIC_LIBS)
- $(CC) $(CFLAGS) -o $@ $^ $(LIBS)
-+ipvsadm: $(OBJS) libs
++ipvsadm: $(OBJS) libs
+ $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS)
install: all
if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
diff --git a/libipvs/Makefile b/libipvs/Makefile
-index a527a7f..b7300ec 100644
+index f845c8b..dafab30 100644
--- a/libipvs/Makefile
+++ b/libipvs/Makefile
@@ -1,6 +1,5 @@
@@ -83,7 +59,7 @@ index a527a7f..b7300ec 100644
CFLAGS = -Wall -Wunused -Wstrict-prototypes -g -fPIC
ifneq (0,$(HAVE_NL))
CFLAGS += -DLIBIPVS_USE_NL
-@@ -18,7 +17,7 @@ SHARED_LIB = libipvs.so
+@@ -30,7 +29,7 @@ SHARED_LIB = libipvs.so
all: $(STATIC_LIB) $(SHARED_LIB)
$(STATIC_LIB): libipvs.o ip_vs_nl_policy.o
@@ -93,5 +69,5 @@ index a527a7f..b7300ec 100644
$(SHARED_LIB): libipvs.o ip_vs_nl_policy.o
$(CC) -shared -Wl,-soname,$@ -o $@ $^
--
-1.9.1
+2.7.4
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/0002-Replace-nl_handle-to-nl_sock.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch
deleted file mode 100644
index 7896d6d1ea..0000000000
--- a/meta-networking/recipes-support/ipvsadm/ipvsadm/0002-Replace-nl_handle-to-nl_sock.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 2686213259b15df9cf1d969c5a14d62f14cfbaae Mon Sep 17 00:00:00 2001
-From: Jianchuan Wang <jianchuan.wang@windriver.com>
-Date: Thu, 8 Jan 2015 17:37:11 +0800
-Subject: [PATCH 2/2] Replace nl_handle to nl_sock.
-
-The nl_handle was replace with nl_sock in the libnl-3.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Jianchuan Wang <jianchuan.wang@windriver.com>
----
- libipvs/libipvs.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/libipvs/libipvs.c b/libipvs/libipvs.c
-index a157e18..21a9bfa 100644
---- a/libipvs/libipvs.c
-+++ b/libipvs/libipvs.c
-@@ -32,7 +32,7 @@ static void* ipvs_func = NULL;
- struct ip_vs_getinfo ipvs_info;
-
- #ifdef LIBIPVS_USE_NL
--static struct nl_handle *sock = NULL;
-+static struct nl_sock *sock = NULL;
- static int family, try_nl = 1;
- #endif
-
-@@ -73,7 +73,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
- {
- int err = EINVAL;
-
-- sock = nl_handle_alloc();
-+ sock = nl_socket_alloc();
- if (!sock) {
- nlmsg_free(msg);
- return -1;
-@@ -88,7 +88,7 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
-
- /* To test connections and set the family */
- if (msg == NULL) {
-- nl_handle_destroy(sock);
-+ nl_socket_free(sock);
- sock = NULL;
- return 0;
- }
-@@ -104,12 +104,12 @@ int ipvs_nl_send_message(struct nl_msg *msg, nl_recvmsg_msg_cb_t func, void *arg
-
- nlmsg_free(msg);
-
-- nl_handle_destroy(sock);
-+ nl_socket_free(sock);
-
- return 0;
-
- fail_genl:
-- nl_handle_destroy(sock);
-+ nl_socket_free(sock);
- sock = NULL;
- nlmsg_free(msg);
- errno = err;
---
-1.8.3.1
-
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch b/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch
index 1bf1eed4c3..a2c5235c37 100644
--- a/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm/makefile-add-ldflags.patch
@@ -1,19 +1,33 @@
-Add LDFLAGS variable to Makefile, make sure the extra linker flags can be passed.
+From 8aff1e965ec17262f3a5b376f7eb3e053d81905c Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 18:18:05 +0800
+Subject: [PATCH] Add LDFLAGS variable to Makefile, make sure the extra linker
+ flags can be passed.
Upstream-Status: Pending
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+Update to version 1.29
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
diff --git a/Makefile b/Makefile
-index 461c021..8bc9cde 100644
+index f29bbae..81beb5a 100644
--- a/Makefile
+++ b/Makefile
@@ -86,7 +86,7 @@ libs:
make -C libipvs
- ipvsadm: $(OBJS) libs
+ ipvsadm: $(OBJS) libs
- $(CC) $(CFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS)
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(STATIC_LIBS) $(LIBS)
install: all
if [ ! -d $(SBIN) ]; then $(MKDIR) -p $(SBIN); fi
+--
+2.7.4
+
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
deleted file mode 100644
index 2ac2b4836b..0000000000
--- a/meta-networking/recipes-support/ipvsadm/ipvsadm_1.26.bb
+++ /dev/null
@@ -1,39 +0,0 @@
-SUMMARY = "Linux Virtual Server administration Utility"
-HOMEPAGE = "http://www.linux-vs.org/software/index.html"
-DESCRIPTION = "Ipvsadm is used to set up, maintain or inspect the virtual server \
-table in the Linux kernel. The Linux Virtual Server can be used to \
-build scalable network services based on a cluster of two or more nodes. \
-The active node of the cluster redirects service requests to a \
-collection of server hosts that will actually perform the services. \
-Supported features include two protocols (TCP and UDP), three packet-forwarding \
-methods (NAT, tunneling, and direct routing), and eight load balancing algorithms \
-(round robin, weighted round robin, least-connec-tion, weighted least-connection, \
-locality-based least-connection, locality-based least-connection with replication, \
-destination-hashing, and source-hashing)."
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=a54cba37b64924aa5008881607942892"
-
-DEPENDS += "libnl popt"
-
-SRC_URI = "http://www.linuxvirtualserver.org/software/kernel-2.6/${BP}.tar.gz \
- file://0001-Modify-the-Makefile-for-cross-compile.patch \
- file://0002-Replace-nl_handle-to-nl_sock.patch \
- file://0003-ipvsadm-remove-dependency-on-bash.patch \
- file://makefile-add-ldflags.patch \
-"
-
-SRC_URI[md5sum] = "eac3ba3f62cd4dea2da353aeddd353a8"
-SRC_URI[sha256sum] = "6d6c46fecb1c532a892616b4445c73b71730e8790d5630f60269fd9cbee0eb2d"
-
-UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/ipvsadm"
-
-do_compile() {
- oe_runmake \
- CC="${CC} -I${STAGING_INCDIR} -I${STAGING_INCDIR}/libnl3 -L${STAGING_LIBDIR}" \
- all
-}
-
-do_install() {
- oe_runmake 'BUILD_ROOT=${D}' install
-}
diff --git a/meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb
new file mode 100644
index 0000000000..442e231ad4
--- /dev/null
+++ b/meta-networking/recipes-support/ipvsadm/ipvsadm_1.31.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Linux Virtual Server administration Utility"
+HOMEPAGE = "http://www.linux-vs.org/software/index.html"
+DESCRIPTION = "Ipvsadm is used to set up, maintain or inspect the virtual server \
+table in the Linux kernel. The Linux Virtual Server can be used to \
+build scalable network services based on a cluster of two or more nodes. \
+The active node of the cluster redirects service requests to a \
+collection of server hosts that will actually perform the services. \
+Supported features include two protocols (TCP and UDP), three packet-forwarding \
+methods (NAT, tunneling, and direct routing), and eight load balancing algorithms \
+(round robin, weighted round robin, least-connec-tion, weighted least-connection, \
+locality-based least-connection, locality-based least-connection with replication, \
+destination-hashing, and source-hashing)."
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://README;beginline=40;endline=56;md5=b4e40069f15598d0e3fe2aa177e5ec77"
+
+DEPENDS += "libnl popt"
+
+SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/utils/kernel/ipvsadm/${BP}.tar.xz \
+ 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"
+SRC_URI[sha256sum] = "1a0a5e25b5a1226435d2fb76341656f83a710183aebb0d204db39c0ec3bedfdb"
+
+UPSTREAM_CHECK_URI = "${KERNELORG_MIRROR}/linux/utils/kernel/ipvsadm"
+
+EXTRA_OEMAKE += "CCFLAGS='${CFLAGS}'"
+
+do_compile() {
+ oe_runmake all
+}
+
+do_install() {
+ sed -i -e "s;SBIN\t\t= \$(BUILD_ROOT)/sbin;SBIN\t\t= \$(BUILD_ROOT)$base_sbindir;" \
+ -e "s;INIT\t\t= \$(BUILD_ROOT)/etc/rc.d/init.d;INIT\t\t= \$(BUILD_ROOT)${sysconfdir}/init.d;" \
+ ${S}/Makefile
+ oe_runmake 'BUILD_ROOT=${D}' install
+}
+
+inherit pkgconfig
diff --git a/meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb b/meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb
new file mode 100644
index 0000000000..b8d0536eb3
--- /dev/null
+++ b/meta-networking/recipes-support/libconfuse/libconfuse_3.3.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "libConfuse is a configuration file parser library"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=42fa47330d4051cd219f7d99d023de3a"
+
+SRCREV = "a42aebf13db33afd575da6e63f55163d371f776d"
+SRC_URI = "git://github.com/libconfuse/libconfuse.git;branch=master;protocol=https"
+
+inherit autotools-brokensep pkgconfig gettext
+
+S = "${WORKDIR}/git"
+
+do_configure:prepend(){
+ (cd ${S} && ${S}/autogen.sh)
+}
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
new file mode 100644
index 0000000000..64938a4820
--- /dev/null
+++ b/meta-networking/recipes-support/libesmtp/libesmtp/0001-Add-build-option-for-NTLM-support.patch
@@ -0,0 +1,85 @@
+From 1c304e7886a08fb56485e41614ff3f8685afb59d Mon Sep 17 00:00:00 2001
+From: Jiaqing Zhao <jiaqing.zhao@intel.com>
+Date: Tue, 8 Mar 2022 15:05:32 +0000
+Subject: [PATCH] Add build option for NTLM support
+
+Currently, NTLM plugin is built by default when openssl is available
+and STARTTLS is enabled. But in libesmtp 1.0.6, there is a separate
+build option. This commits adds the 'ntlm' option back. It's also
+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]
+Signed-off-by: Jiaqing Zhao <jiaqing.zhao@intel.com>
+---
+ meson.build | 13 ++++++++++---
+ meson_options.txt | 1 +
+ ntlm/meson.build | 2 +-
+ 3 files changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 11d6ed8..d2a0e06 100644
+--- a/meson.build
++++ b/meson.build
+@@ -61,6 +61,7 @@ add_project_arguments(cc.get_supported_arguments(cflags), language: 'c')
+ ################################################################################
+ dldep = cc.find_library('dl')
+ ssldep = dependency('openssl', version : '>=1.1.0', required : get_option('tls'))
++ntlmdep = dependency('openssl', version : '>=1.1.0', required : get_option('ntlm'))
+ threaddep = dependency('threads', required : get_option('pthreads'))
+
+ #XXX add test for libbind9.so
+@@ -69,6 +70,7 @@ lwresdep = cc.find_library('lwres', required : get_option('lwres'))
+ deps = [
+ dldep,
+ ssldep,
++ ntlmdep,
+ threaddep,
+ lwresdep,
+ ]
+@@ -237,8 +239,12 @@ include_dir = include_directories('.')
+ subdir('login')
+ subdir('plain')
+ subdir('crammd5')
+-if ssldep.found()
+- subdir('ntlm')
++if ntlmdep.found()
++ if cc.has_header('openssl/md4.h') and cc.has_function('MD4_Init', dependencies : ntlmdep)
++ subdir('ntlm')
++ else
++ error('MD4 is not supported in current openssl, unable to build NTLM plugin')
++ endif
+ endif
+
+ ################################################################################
+@@ -264,4 +270,5 @@ summary({'current:revision:age': libesmtp_cra,
+ 'STARTTLS': ssldep.found(),
+ 'CHUNKING': get_option('bdat'),
+ 'ETRN': get_option('etrn'),
+- 'XUSR': get_option('xusr')})
++ 'XUSR': get_option('xusr'),
++ 'NTLM': ntlmdep.found()})
+diff --git a/meson_options.txt b/meson_options.txt
+index 8375e2c..158f38f 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -5,3 +5,4 @@ option('lwres', type : 'feature', value : 'disabled', description : 'use lwres l
+ option('bdat', type : 'boolean', value : 'true', description : 'enable SMTP BDAT extension')
+ option('etrn', type : 'boolean', value : 'true', description : 'enable SMTP ETRN extension')
+ option('xusr', type : 'boolean', value : 'true', description : 'enable sendmail XUSR extension')
++option('ntlm', type : 'feature', value : 'disabled', description : 'build with support for NTLM authentication')
+diff --git a/ntlm/meson.build b/ntlm/meson.build
+index e0eef58..11d7f58 100644
+--- a/ntlm/meson.build
++++ b/ntlm/meson.build
+@@ -5,7 +5,7 @@ sasl_ntlm_sources = [
+ 'ntlmstruct.c',
+ ]
+
+-ntlm_deps = [ ssldep, ]
++ntlm_deps = [ ntlmdep, ]
+
+ sasl_ntlm = shared_module('ntlm', sasl_ntlm_sources,
+ name_prefix : 'sasl-',
diff --git a/meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch b/meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch
deleted file mode 100644
index 90c4ce75e1..0000000000
--- a/meta-networking/recipes-support/libesmtp/libesmtp/include-topdir.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff -Nurp libesmtp-1.0.6.org/crammd5/Makefile.am libesmtp-1.0.6/crammd5/Makefile.am
---- libesmtp-1.0.6.org/crammd5/Makefile.am 2010-08-08 23:45:57.000000000 +0800
-+++ libesmtp-1.0.6/crammd5/Makefile.am 2014-11-17 11:17:21.663624295 +0800
-@@ -2,7 +2,7 @@
-
- libdir = @plugindir@
-
--INCLUDES = -I@srcdir@
-+INCLUDES = -I@srcdir@ -I@srcdir@/../
- AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-
- lib_LTLIBRARIES = sasl-cram-md5.la
-diff -Nurp libesmtp-1.0.6.org/login/Makefile.am libesmtp-1.0.6/login/Makefile.am
---- libesmtp-1.0.6.org/login/Makefile.am 2010-08-08 23:45:56.000000000 +0800
-+++ libesmtp-1.0.6/login/Makefile.am 2014-11-17 11:17:54.339623018 +0800
-@@ -2,7 +2,7 @@
-
- libdir = @plugindir@
-
--INCLUDES = -I@srcdir@
-+INCLUDES = -I@srcdir@ -I@srcdir@/../
-
- lib_LTLIBRARIES = sasl-login.la
- AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-diff -Nurp libesmtp-1.0.6.org/ntlm/Makefile.am libesmtp-1.0.6/ntlm/Makefile.am
---- libesmtp-1.0.6.org/ntlm/Makefile.am 2010-08-08 23:45:56.000000000 +0800
-+++ libesmtp-1.0.6/ntlm/Makefile.am 2014-11-17 11:18:10.551622385 +0800
-@@ -2,7 +2,7 @@
-
- libdir = @plugindir@
-
--INCLUDES = -I@srcdir@
-+INCLUDES = -I@srcdir@ -I@srcdir@/../
- AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-
- lib_LTLIBRARIES = sasl-ntlm.la
-diff -Nurp libesmtp-1.0.6.org/plain/Makefile.am libesmtp-1.0.6/plain/Makefile.am
---- libesmtp-1.0.6.org/plain/Makefile.am 2010-08-08 23:45:54.000000000 +0800
-+++ libesmtp-1.0.6/plain/Makefile.am 2014-11-17 11:18:33.355621494 +0800
-@@ -2,7 +2,7 @@
-
- libdir = @plugindir@
-
--INCLUDES = -I@srcdir@
-+INCLUDES = -I@srcdir@ -I@srcdir@/../
- AM_CFLAGS = @CFLAGS@ @EXTRA_CFLAGS@
-
- lib_LTLIBRARIES = sasl-plain.la
diff --git a/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch b/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch
deleted file mode 100644
index d0d203eadb..0000000000
--- a/meta-networking/recipes-support/libesmtp/libesmtp/snprintf.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Use HAVE_WORKING_SNPRINTF to check for snprintf()
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: libesmtp-1.0.6/missing.h
-===================================================================
---- libesmtp-1.0.6.orig/missing.h
-+++ libesmtp-1.0.6/missing.h
-@@ -43,7 +43,7 @@ int strncasecmp (const char *a, const ch
- void *memrchr (const void *a, int c, size_t len);
- #endif
-
--#ifndef HAVE_SNPRINTF
-+#ifndef HAVE_WORKING_SNPRINTF
- #include <sys/types.h>
- int snprintf(char *s, size_t n, const char *format, ...);
- #endif
diff --git a/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb b/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb
deleted file mode 100644
index 71c5d940b7..0000000000
--- a/meta-networking/recipes-support/libesmtp/libesmtp_1.0.6.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "SMTP client library"
-DESCRIPTION = "LibESMTP is a library to manage posting \
-(or submission of) electronic mail using SMTP to a \
-preconfigured Mail Transport Agent (MTA) such as Exim or PostFix."
-HOMEPAGE = "http://www.stafford.uklinux.net/libesmtp/"
-LICENSE = "LGPLv2+"
-SECTION = "libs"
-
-DEPENDS = "openssl"
-
-SRC_URI = "http://www.stafford.uklinux.net/libesmtp/libesmtp-${PV}.tar.bz2 \
- file://include-topdir.patch \
- file://snprintf.patch \
- "
-SRC_URI[md5sum] = "bf3915e627fd8f35524a8fdfeed979c8"
-SRC_URI[sha256sum] = "d0a61a5c52d99fa7ce7d00ed0a07e341dbda67101dbed1ab0cdae3f37db4eb0b"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://COPYING.LIB;md5=e3eda01d9815f8d24aae2dbd89b68b06"
-
-inherit autotools binconfig
-
-EXTRA_OECONF = " \
- --with-auth-plugin-dir=${libdir}/esmtp-plugins \
- --enable-pthreads \
- --enable-debug \
- --enable-etrn \
- --disable-isoc \
- --disable-more-warnings \
- --disable-static \
-"
-
-FILES_${PN} = "${libdir}/lib*${SOLIBS} \
- ${libdir}/esmtp-plugins/*${SOLIBSDEV}"
-
-FILES_${PN}-dev += "${libdir}/esmtp-plugins/*.la"
-FILES_${PN}-static += "${libdir}/esmtp-plugins/*.a"
-FILES_${PN}-dbg += "${libdir}/esmtp-plugins/.debug/"
diff --git a/meta-networking/recipes-support/libesmtp/libesmtp_1.1.0.bb b/meta-networking/recipes-support/libesmtp/libesmtp_1.1.0.bb
new file mode 100644
index 0000000000..3d0764a3b9
--- /dev/null
+++ b/meta-networking/recipes-support/libesmtp/libesmtp_1.1.0.bb
@@ -0,0 +1,40 @@
+SUMMARY = "SMTP client library"
+DESCRIPTION = "LibESMTP is a library to manage posting \
+(or submission of) electronic mail using SMTP to a \
+preconfigured Mail Transport Agent (MTA) such as Exim or PostFix."
+HOMEPAGE = "https://libesmtp.github.io/"
+LICENSE = "LGPL-2.0-or-later"
+SECTION = "libs"
+
+DEPENDS = "openssl"
+
+SRC_URI = "git://github.com/libesmtp/libESMTP.git;branch=master;protocol=https \
+ file://0001-Add-build-option-for-NTLM-support.patch"
+SRCREV = "1d0af244310a66943ab400be56b15a9087f181eb"
+
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1803fa9c2c3ce8cb06b4861d75310742 \
+ file://COPYING.GPL;md5=393a5ca445f6965873eca0259a17f833"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = " \
+ -Dpthreads=enabled \
+ -Dtls=enabled \
+ -Dxdg=false \
+ -Dlwres=disabled \
+ -Dbdat=true \
+ -Detrn=true \
+ -Dxusr=true \
+ -Dntlm=disabled \
+"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_configure:prepend:libc-glibc() {
+ sed -i -e "s/conf.set('HAVE_WORKING_STRERROR_R', 0)/conf.set('HAVE_WORKING_STRERROR_R', 1)/g" ${S}/meson.build
+}
+
+FILES:${PN} = "${libdir}/lib*${SOLIBS} \
+ ${libdir}/esmtp-plugins-6.2.0/*${SOLIBSDEV}"
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
new file mode 100644
index 0000000000..e215242371
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb/0001-do-not-import-target-module-while-cross-compile.patch
@@ -0,0 +1,71 @@
+From 69c409195ede704ed7e9298ed4942cc70a52e099 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
+
+Some modules such as dynamic library maybe cann't be imported
+while cross compile, we just check whether does the module exist.
+
+Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
+
+update to version 4.10.5, and switch to python3
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ buildtools/wafsamba/samba_bundled.py | 27 +++++++++++++++++++--------
+ 1 file changed, 19 insertions(+), 8 deletions(-)
+
+diff --git a/buildtools/wafsamba/samba_bundled.py b/buildtools/wafsamba/samba_bundled.py
+index 7d2d855..01dcb56 100644
+--- a/buildtools/wafsamba/samba_bundled.py
++++ b/buildtools/wafsamba/samba_bundled.py
+@@ -4,6 +4,7 @@ import sys
+ from waflib import Build, Options, Logs
+ from waflib.Configure import conf
+ from wafsamba import samba_utils
++import importlib.util, os
+
+ def PRIVATE_NAME(bld, name):
+ '''possibly rename a library to include a bundled extension'''
+@@ -241,17 +242,27 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, libname, modulename, minversion='0.0.0'):
+ # versions
+ minversion = minimum_library_version(conf, libname, minversion)
+
+- try:
+- m = __import__(modulename)
+- except ImportError:
+- found = False
+- else:
++ # Find module in PYTHONPATH
++ spec = importlib.util._find_spec_from_path(modulename, [os.environ["PYTHONPATH"]])
++ if spec:
+ try:
+- version = m.__version__
+- except AttributeError:
++ module = importlib.util.module_from_spec(spec)
++ spec.loader.load_module(module)
++ except ImportError:
+ found = False
++
++ if conf.env.CROSS_COMPILE:
++ # Some modules such as dynamic library maybe cann't be imported
++ # while cross compile, we just check whether the module exist
++ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (spec.name))
++ found = True
+ else:
+- found = tuplize_version(version) >= tuplize_version(minversion)
++ try:
++ version = module.__version__
++ except AttributeError:
++ found = False
++ else:
++ found = tuplize_version(version) >= tuplize_version(minversion)
+ if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
+ Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
+ sys.exit(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
new file mode 100644
index 0000000000..4b74a877b3
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb/0002-ldb-Add-configure-options-for-packages.patch
@@ -0,0 +1,173 @@
+From acd3985f9c428882f1b731a6f9ce5cb1a4a3a02c 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
+
+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>
+
+upgrade to version 1.5.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+Rebase to 2.3.0
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ lib/replace/wscript | 90 +++++++++++++++++++++++++++++++++++----------
+ wscript | 8 ++++
+ 2 files changed, 78 insertions(+), 20 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 5c2b750..a38baae 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')
+@@ -38,12 +73,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('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 +161,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')
+@@ -436,20 +485,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 03076e6..5365408 100644
+--- a/wscript
++++ b/wscript
+@@ -40,6 +40,14 @@ def options(opt):
+ help='disable new LMDB backend for LDB',
+ action='store_true', dest='without_ldb_lmdb', 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/tdb')
+--
+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..acd521e69f
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb/0003-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,59 @@
+From d9f4d5bbd3e58ca7fd7cbc4ab7656fe27bf4c346 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 a23bd01..af202e0 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] = 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/avoid-openldap-unless-wanted.patch b/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
index 8ab094fa7e..87909c952a 100644
--- a/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
+++ b/meta-networking/recipes-support/libldb/libldb/avoid-openldap-unless-wanted.patch
@@ -1,6 +1,21 @@
---- a/wscript 2015-11-18 12:43:33.000000000 +0100
-+++ b/wscript 2015-11-18 12:46:25.000000000 +0100
-@@ -58,9 +58,7 @@
+From cc86b8bdd45ca30bdf65a3b8b0960b27aeb34522 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 7f14847..092da2d 100644
+--- a/wscript
++++ b/wscript
+@@ -154,9 +154,7 @@ def configure(conf):
if conf.env.standalone_ldb:
conf.CHECK_XSLTPROC_MANPAGES()
@@ -11,3 +26,6 @@
# 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/cmocka-fix-musl-libc-conflicting-types-error.patch b/meta-networking/recipes-support/libldb/libldb/cmocka-fix-musl-libc-conflicting-types-error.patch
new file mode 100644
index 0000000000..8e756d8d3a
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb/cmocka-fix-musl-libc-conflicting-types-error.patch
@@ -0,0 +1,45 @@
+From a37eb0a46669592e32ed4e004abb2698ee4f90c5 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] cmocka: 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 e6861c8..238201d 100644
+--- a/third_party/cmocka/cmocka.h
++++ b/third_party/cmocka/cmocka.h
+@@ -111,7 +111,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;
+@@ -135,9 +135,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.25.1
+
diff --git a/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch b/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
deleted file mode 100755
index fdd312c0ad..0000000000
--- a/meta-networking/recipes-support/libldb/libldb/do-not-import-target-module-while-cross-compile.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Some modules such as dynamic library maybe cann't be imported while cross compile,
-we just check whether does the module exist.
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
-Index: ldb-1.1.26/buildtools/wafsamba/samba_bundled.py
-===================================================================
---- ldb-1.1.26.orig/buildtools/wafsamba/samba_bundled.py
-+++ ldb-1.1.26/buildtools/wafsamba/samba_bundled.py
-@@ -2,6 +2,7 @@
-
- import sys
- import Build, Options, Logs
-+import imp, os
- from Configure import conf
- from samba_utils import TO_LIST
-
-@@ -230,17 +231,32 @@ def CHECK_BUNDLED_SYSTEM_PYTHON(conf, li
- # versions
- minversion = minimum_library_version(conf, libname, minversion)
-
-- try:
-- m = __import__(modulename)
-- except ImportError:
-- found = False
-- else:
-+ # Find module in PYTHONPATH
-+ stuff = imp.find_module(modulename, [os.environ["PYTHONPATH"]])
-+ if stuff:
- try:
-- version = m.__version__
-- except AttributeError:
-+ m = imp.load_module(modulename, stuff[0], stuff[1], stuff[2])
-+ except ImportError:
- found = False
-+
-+ if conf.env.CROSS_COMPILE:
-+ # Some modules such as dynamic library maybe cann't be imported
-+ # while cross compile, we just check whether the module exist
-+ Logs.warn('Cross module[%s] has been found, but can not be loaded.' % (stuff[1]))
-+ found = True
- else:
-- found = tuplize_version(version) >= tuplize_version(minversion)
-+ try:
-+ version = m.__version__
-+ except AttributeError:
-+ found = False
-+ else:
-+ found = tuplize_version(version) >= tuplize_version(minversion)
-+ finally:
-+ if stuff[0]:
-+ stuff[0].close()
-+ else:
-+ found = False
-+
- if not found and not conf.LIB_MAY_BE_BUNDLED(libname):
- Logs.error('ERROR: Python module %s of version %s not found, and bundling disabled' % (libname, minversion))
- sys.exit(1)
diff --git a/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch b/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch
deleted file mode 100644
index ffe253b63c..0000000000
--- a/meta-networking/recipes-support/libldb/libldb/options-1.3.1.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From a4da3ab4d76013aaa731d43d52ccca1ebd37c395 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 21 Sep 2016 10:06:39 +0800
-Subject: [PATCH 1/1] ldb: 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>
----
- lib/replace/system/wscript_configure | 6 ++-
- lib/replace/wscript | 94 +++++++++++++++++++++++++++---------
- wscript | 7 +++
- 3 files changed, 83 insertions(+), 24 deletions(-)
-
-diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure
-index 2035474..10f9ae7 100644
---- a/lib/replace/system/wscript_configure
-+++ b/lib/replace/system/wscript_configure
-@@ -1,6 +1,10 @@
- #!/usr/bin/env python
-
--conf.CHECK_HEADERS('sys/capability.h')
-+import Options
-+
-+if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
-
- # solaris varients of getXXent_r
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 2f94d49..68b2d3a 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -23,6 +23,41 @@ def set_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')
-@@ -32,12 +67,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('libaio.h 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 sys/fs/vx/quota.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')
-@@ -73,7 +121,9 @@ def configure(conf):
-
- conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.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')
-@@ -266,22 +316,20 @@ def configure(conf):
-
- conf.CHECK_FUNCS('prctl dirname basename')
-
-- 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('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;
-@@ -632,7 +680,7 @@ removeea setea
- # look for a method of finding the list of network interfaces
- for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
- bsd_for_strlcpy = ''
-- if strlcpy_in_bsd:
-+ if Options.options.enable_libbsd:
- bsd_for_strlcpy = ' bsd'
- if conf.CHECK_CODE('''
- #define %s 1
-diff --git a/wscript b/wscript
-index 8ae5be3..a178cc4 100644
---- a/wscript
-+++ b/wscript
-@@ -31,6 +31,13 @@ def set_options(opt):
- opt.RECURSE('lib/replace')
- opt.tool_options('python') # options for disabling pyc or pyo compilation
-
-+ 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/tdb')
- conf.RECURSE('lib/tevent')
---
-2.16.2
-
diff --git a/meta-networking/recipes-support/libldb/libldb_1.3.1.bb b/meta-networking/recipes-support/libldb/libldb_1.3.1.bb
deleted file mode 100644
index 7e14cde35f..0000000000
--- a/meta-networking/recipes-support/libldb/libldb_1.3.1.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://ldb.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0+ & LGPL-2.1+ & GPL-3.0+"
-
-DEPENDS += "libtdb libtalloc libtevent popt"
-RDEPENDS_pyldb += "python"
-
-SRC_URI = "http://samba.org/ftp/ldb/ldb-${PV}.tar.gz \
- file://do-not-import-target-module-while-cross-compile.patch \
- file://options-1.3.1.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"
-
-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[md5sum] = "e5233f202bca27f6ce8474fb8ae65983"
-SRC_URI[sha256sum] = "b19f2c9f55ae0f46aa5ebaea0bf1a47ec1ac135e1d78af0f6318cf50bf62cbd2"
-
-inherit waf-samba
-
-S = "${WORKDIR}/ldb-${PV}"
-
-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"
diff --git a/meta-networking/recipes-support/libldb/libldb_2.7.2.bb b/meta-networking/recipes-support/libldb/libldb_2.7.2.bb
new file mode 100644
index 0000000000..daf0f73b89
--- /dev/null
+++ b/meta-networking/recipes-support/libldb/libldb_2.7.2.bb
@@ -0,0 +1,83 @@
+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"
+RDEPENDS:pyldb += "python3"
+
+export PYTHONHASHSEED="1"
+
+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 \
+ "
+
+SRC_URI:append:libc-musl = " file://cmocka-fix-musl-libc-conflicting-types-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://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] = "26ee72d647854e662d99643eb2b2d341655abf31f4990838d6650fb5cf9209c8"
+
+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/libmaxminddb/libmaxminddb_1.4.3.bb b/meta-networking/recipes-support/libmaxminddb/libmaxminddb_1.4.3.bb
new file mode 100644
index 0000000000..204148e638
--- /dev/null
+++ b/meta-networking/recipes-support/libmaxminddb/libmaxminddb_1.4.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "C library for the MaxMind DB file format"
+DESCRIPTION = "The libmaxminddb library provides a C library for reading MaxMind DB files, \
+ncluding the GeoIP2 databases from MaxMind. This is a custom binary \
+format designed to facilitate fast lookups of IP addresses while allowing \
+for great flexibility in the type of data associated with an address."
+
+HOMEPAGE = "https://github.com/maxmind/libmaxminddb"
+SECTION = "libs"
+LICENSE = " Apache-2.0"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
+SRC_URI = "https://github.com/maxmind/libmaxminddb/releases/download/${PV}/${BPN}-${PV}.tar.gz \
+"
+SRC_URI[sha256sum] = "a5fdf6c7b4880fdc7620f8ace5bd5cbe9f65650c9493034b5b9fc7d83551a439"
+
+inherit autotools-brokensep
+
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/libmemcached/libmemcached.inc b/meta-networking/recipes-support/libmemcached/libmemcached.inc
index e86f832f8d..319ab29ce7 100644
--- a/meta-networking/recipes-support/libmemcached/libmemcached.inc
+++ b/meta-networking/recipes-support/libmemcached/libmemcached.inc
@@ -1,11 +1,13 @@
DESCRIPTION = "open source C/C++ client library and tools for the memcached server"
DEPENDS = "libevent util-linux"
SECTION = "libdevel"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=865490941c91ba790f0ea78dec93bd60"
SRC_URI = "http://launchpad.net/libmemcached/1.0/${PV}/+download/libmemcached-${PV}.tar.gz"
+UPSTREAM_CHECK_URI = "https://launchpad.net/libmemcached"
+
TARGET_LDFLAGS += "-luuid"
TARGET_CFLAGS += "-D__USE_GNU -D_GNU_SOURCE"
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..026a348992
--- /dev/null
+++ b/meta-networking/recipes-support/libtalloc/libtalloc/0001-talloc-Add-configure-options-for-packages.patch
@@ -0,0 +1,172 @@
+From 888bfe48236b4ce382dc3aa49791cadb70a1fbe4 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 827d74f..0348715 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')
+@@ -35,12 +70,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')
+@@ -110,8 +158,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')
+@@ -431,20 +480,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 3089663..fdf9510 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/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..058ac34f81
--- /dev/null
+++ b/meta-networking/recipes-support/libtalloc/libtalloc/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,57 @@
+From 6580e8191c219909d50c991662310e668973722d 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 a23bd01..af202e0 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] = 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 a3ee9ccd97..fe8d10d6f4 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,20 +1,36 @@
---- a/lib/replace/wscript 2015-11-13 16:04:04.000000000 +0100
-+++ b/lib/replace/wscript 2015-11-13 16:23:20.000000000 +0100
-@@ -636,8 +636,6 @@
+From e18370c204056de799064d8ac72a656eb3745f95 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: Pending
+
+ lib/replace/wscript | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 0348715..a8554d9 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -967,8 +967,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'
- if not bld.CONFIG_SET('HAVE_GETXATTR') or bld.CONFIG_SET('XATTR_ADDITIONAL_OPTIONS'):
- REPLACE_SOURCE += ' xattr.c'
- bld.SAMBA_LIBRARY('replace',
- source=REPLACE_SOURCE,
-@@ -648,7 +646,7 @@
- # at the moment:
+ if not bld.CONFIG_SET('HAVE_CLOSEFROM'):
+ REPLACE_SOURCE += ' closefrom.c'
+@@ -983,7 +981,7 @@ def build(bld):
# hide_symbols=bld.BUILTIN_LIBRARY('replace'),
private_library=True,
-- deps='crypt dl nsl socket rt attr' + extra_libs)
-+ deps='crypt dl nsl socket rt ' + extra_libs)
+ provide_builtin_linking=True,
+- deps='dl attr' + extra_libs)
++ deps='dl' + extra_libs)
- bld.SAMBA_SUBSYSTEM('replace-test',
- source='''test/testsuite.c test/strptime.c
+ 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.1.10.patch b/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch
deleted file mode 100644
index 63f21e7757..0000000000
--- a/meta-networking/recipes-support/libtalloc/libtalloc/options-2.1.10.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From efc1b02144f23fdf84dbc5ff15307815e0f2a425 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 14 Sep 2016 11:11:35 +0800
-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>
-
----
- lib/replace/system/wscript_configure | 6 ++-
- lib/replace/wscript | 85 ++++++++++++++++++++++++++++--------
- wscript | 7 ++-
- 3 files changed, 79 insertions(+), 19 deletions(-)
-
-Index: talloc-2.1.11/lib/replace/system/wscript_configure
-===================================================================
---- talloc-2.1.11.orig/lib/replace/system/wscript_configure
-+++ talloc-2.1.11/lib/replace/system/wscript_configure
-@@ -1,6 +1,10 @@
- #!/usr/bin/env python
-
--conf.CHECK_HEADERS('sys/capability.h')
-+import Options
-+
-+if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
-
- # solaris varients of getXXent_r
-Index: talloc-2.1.11/lib/replace/wscript
-===================================================================
---- talloc-2.1.11.orig/lib/replace/wscript
-+++ talloc-2.1.11/lib/replace/wscript
-@@ -23,6 +23,41 @@ def set_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')
-@@ -32,12 +67,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('libaio.h 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 sys/fs/vx/quota.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')
-@@ -73,7 +121,9 @@ def configure(conf):
-
- conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.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')
-@@ -267,21 +317,21 @@ def configure(conf):
- conf.CHECK_FUNCS('prctl dirname basename')
-
- 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',
-+ 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')
-+ 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 not conf.CHECK_FUNCS('closefrom'):
-+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-
- conf.CHECK_CODE('''
- struct ucred cred;
-Index: talloc-2.1.11/wscript
-===================================================================
---- talloc-2.1.11.orig/wscript
-+++ talloc-2.1.11/wscript
-@@ -32,7 +32,12 @@ def set_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')
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb b/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb
deleted file mode 100644
index 848cf4d99b..0000000000
--- a/meta-networking/recipes-support/libtalloc/libtalloc_2.1.11.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://talloc.samba.org"
-SECTION = "libs"
-LICENSE = "LGPL-3.0+ & GPL-3.0+"
-LIC_FILES_CHKSUM = "file://talloc.h;beginline=3;endline=27;md5=a301712782cad6dd6d5228bfa7825249 \
- file://pytalloc.h;beginline=1;endline=18;md5=2c498cc6f2263672483237b20f46b43d"
-
-
-SRC_URI = "https://samba.org/ftp/talloc/talloc-${PV}.tar.gz \
- file://options-2.1.10.patch \
-"
-SRC_URI[md5sum] = "452596f904ca2b10322bdaabf147a721"
-SRC_URI[sha256sum] = "639eb35556a0af999123c4d883e79be05ff9f00ab4f9e4ac2e5775f9c5eeeed3"
-
-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}"
-
-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-dbg pytalloc-dev"
-
-FILES_pytalloc = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/* \
- ${libdir}/libpytalloc-util.so.2 \
- ${libdir}/libpytalloc-util.so.2.1.1 \
- "
-FILES_pytalloc-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug \
- ${libdir}/.debug/libpytalloc-util.so.2.1.1"
-FILES_pytalloc-dev = "${libdir}/libpytalloc-util.so"
-RDEPENDS_pytalloc = "python"
diff --git a/meta-networking/recipes-support/libtalloc/libtalloc_2.4.0.bb b/meta-networking/recipes-support/libtalloc/libtalloc_2.4.0.bb
new file mode 100644
index 0000000000..f8fef9f825
--- /dev/null
+++ b/meta-networking/recipes-support/libtalloc/libtalloc_2.4.0.bb
@@ -0,0 +1,55 @@
+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"
+
+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 \
+"
+SRC_URI[sha256sum] = "6df36862c42466ef88f360444513870ef46934f9016c84383cc4008a7d0c46ba"
+
+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/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..93a85e8545
--- /dev/null
+++ b/meta-networking/recipes-support/libtdb/libtdb/0001-tdb-Add-configure-options-for-packages.patch
@@ -0,0 +1,171 @@
+From d3b1d23e01e323b9610843ab6bef096512f6c244 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 | 92 ++++++++++++++++++++++++++++++++++-----------
+ wscript | 6 +++
+ 2 files changed, 77 insertions(+), 21 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 827d74f..70cde6f 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')
+@@ -35,12 +70,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')
+@@ -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')
+@@ -431,20 +480,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 71ada31..10b16a7 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.25.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..6bd118b536
--- /dev/null
+++ b/meta-networking/recipes-support/libtdb/libtdb/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,42 @@
+From 10b4546edb194ede7a5e8bb5e4c9f5fdc67984eb 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 a23bd01..af202e0 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] = 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/do-not-check-xsltproc-manpages.patch b/meta-networking/recipes-support/libtdb/libtdb/do-not-check-xsltproc-manpages.patch
deleted file mode 100644
index bcc45c9fc3..0000000000
--- a/meta-networking/recipes-support/libtdb/libtdb/do-not-check-xsltproc-manpages.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Don't check manpages for xsltproc.
-
-Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
-
---- tdb-1.3.0.orig/wscript 2015-04-22 09:52:32.366000222 +0900
-+++ tdb-1.3.0/wscript 2015-04-22 09:51:57.720000205 +0900
-@@ -90,7 +90,7 @@ def configure(conf):
- not conf.env.disable_tdb_mutex_locking):
- conf.define('USE_TDB_MUTEX_LOCKING', 1)
-
-- conf.CHECK_XSLTPROC_MANPAGES()
-+ conf.find_program('xsltproc', var='XSLTPROC')
-
- if not conf.env.disable_python:
- # also disable if we don't have the python libs installed
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 272921e568..0000000000
--- a/meta-networking/recipes-support/libtdb/libtdb/tdb-Add-configure-options-for-packages.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From 24911f36bcb00412e5dc4cd11fda139e09d58798 Mon Sep 17 00:00:00 2001
-From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
-Date: Tue, 1 Aug 2017 03:12:09 +0900
-Subject: [PATCH] From 10ac5e5fdda44adcc2a159b6f9a2d51a51361057 Mon Sep 17
- 00:00:00 2001 From: Jackie Huang <jackie.huang@windriver.com> Date: Wed, 21
- Sep 2016 10:46:19 +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 for libtdb_1.3.14.
-
-Signed-off-by: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
----
- lib/replace/system/wscript_configure | 6 ++-
- lib/replace/wscript | 85 ++++++++++++++++++++++++++++--------
- wscript | 7 ++-
- 3 files changed, 79 insertions(+), 19 deletions(-)
-
-diff --git a/lib/replace/system/wscript_configure b/lib/replace/system/wscript_configure
-index 2035474..10f9ae7 100644
---- a/lib/replace/system/wscript_configure
-+++ b/lib/replace/system/wscript_configure
-@@ -1,6 +1,10 @@
- #!/usr/bin/env python
-
--conf.CHECK_HEADERS('sys/capability.h')
-+import Options
-+
-+if Options.options.enable_libcap:
-+ conf.CHECK_HEADERS('sys/capability.h')
-+
- conf.CHECK_FUNCS('getpwnam_r getpwuid_r getpwent_r')
-
- # solaris varients of getXXent_r
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 7c50e1d..15df5c3 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -23,6 +23,41 @@ def set_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')
-@@ -32,12 +67,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('libaio.h 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 sys/fs/vx/quota.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')
-@@ -73,7 +121,9 @@ def configure(conf):
-
- conf.CHECK_CODE('', headers='rpc/rpc.h rpcsvc/yp_prot.h', define='HAVE_RPCSVC_YP_PROT_H')
-
-- conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.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')
-@@ -251,17 +301,18 @@ def configure(conf):
-
- conf.CHECK_FUNCS('prctl dirname basename')
-
-- # 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')
-+ 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 1c9655a..8c20d3b 100644
---- a/wscript
-+++ b/wscript
-@@ -62,7 +62,12 @@ def set_options(opt):
- help=("Disable the use of pthread robust mutexes"),
- 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.3.15.bb b/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb
deleted file mode 100644
index 302a306b34..0000000000
--- a/meta-networking/recipes-support/libtdb/libtdb_1.3.15.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "The tdb library"
-HOMEPAGE = "http://tdb.samba.org/"
-SECTION = "libs"
-LICENSE = "LGPL-3.0+ & GPL-3.0+"
-
-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://do-not-check-xsltproc-manpages.patch \
- file://tdb-Add-configure-options-for-packages.patch \
-"
-
-SRC_URI[md5sum] = "60ece3996acc8d85b6f713199da971a6"
-SRC_URI[sha256sum] = "b4a1bf3833601bd9f10aff363cb750860aef9ce5b4617989239923192f946728"
-
-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
-
-EXTRA_OECONF += "--disable-rpath \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- "
-
-PACKAGES += "tdb-tools python-tdb python-tdb-dbg"
-
-FILES_${PN} = "${libdir}/*.so.*"
-FILES_tdb-tools = "${bindir}/*"
-FILES_python-tdb = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-FILES_python-tdb-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug/*"
-RDEPENDS_python-tdb = "python"
diff --git a/meta-networking/recipes-support/libtdb/libtdb_1.4.8.bb b/meta-networking/recipes-support/libtdb/libtdb_1.4.8.bb
new file mode 100644
index 0000000000..5dc87bd91a
--- /dev/null
+++ b/meta-networking/recipes-support/libtdb/libtdb_1.4.8.bb
@@ -0,0 +1,53 @@
+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"
+
+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 \
+"
+
+SRC_URI[sha256sum] = "8434c9c857d13ce3fa8466f75601f25c3693676b36919f159e0ad6121baf5ce8"
+
+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 \
+ --disable-rpath-install \
+ --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..cb66adba9c
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent/0001-Add-configure-options-for-packages.patch
@@ -0,0 +1,172 @@
+From d9fd1c52d1646254944bfee37be611e04d4daddb 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>
+
+Update patch to version 0.14.1
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ lib/replace/wscript | 85 +++++++++++++++++++++++++++++++++++----------
+ wscript | 6 ++++
+ 2 files changed, 73 insertions(+), 18 deletions(-)
+
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 5c2b750..28835ac 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')
+@@ -38,12 +73,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')
++
++ 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('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 +163,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')
+@@ -436,20 +487,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 0f6e92f..5a54f3a 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.34.1
+
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..ba3f4ca7a6
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent/0002-Fix-pyext_PATTERN-for-cross-compilation.patch
@@ -0,0 +1,42 @@
+From da1dc659fd351ff6283f843eeba5e0b3f7b2d584 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 a23bd01..af202e0 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] = 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 35890335a3..e15f14ab78 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,8 +1,19 @@
+From 82dc31b72e77f263574645092ba1597a8f1152e7 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: Pending
+
+ lib/replace/wscript | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 079761d..07e0104 100644
+index 21a746a..6be3276 100644
--- a/lib/replace/wscript
+++ b/lib/replace/wscript
-@@ -793,8 +793,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'
@@ -11,12 +22,15 @@ index 079761d..07e0104 100644
if not bld.CONFIG_SET('HAVE_CLOSEFROM'):
REPLACE_SOURCE += ' closefrom.c'
-@@ -808,7 +806,7 @@ def build(bld):
- # at the moment:
+@@ -984,7 +982,7 @@ def build(bld):
# hide_symbols=bld.BUILTIN_LIBRARY('replace'),
private_library=True,
-- deps='crypt dl nsl socket rt attr' + extra_libs)
-+ deps='crypt dl nsl socket rt ' + extra_libs)
+ provide_builtin_linking=True,
+- deps='dl attr' + extra_libs)
++ deps='dl' + extra_libs)
- replace_test_cflags="-Wno-format-zero-length"
+ replace_test_cflags = ''
if bld.CONFIG_SET('HAVE_WNO_FORMAT_TRUNCATION'):
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/libtevent/libtevent/cmocka-fix-musl-libc-conflicting-types-error.patch b/meta-networking/recipes-support/libtevent/libtevent/cmocka-fix-musl-libc-conflicting-types-error.patch
new file mode 100644
index 0000000000..5795ff3bd1
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent/cmocka-fix-musl-libc-conflicting-types-error.patch
@@ -0,0 +1,45 @@
+From 1d4dedab5039bb671f44566d8573ee3532ba7176 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] cmocka: 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 e6861c8..238201d 100644
+--- a/third_party/cmocka/cmocka.h
++++ b/third_party/cmocka/cmocka.h
+@@ -111,7 +111,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;
+@@ -135,9 +135,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.25.1
+
diff --git a/meta-networking/recipes-support/libtevent/libtevent/options-0.9.36.patch b/meta-networking/recipes-support/libtevent/libtevent/options-0.9.36.patch
deleted file mode 100644
index 363c5867cc..0000000000
--- a/meta-networking/recipes-support/libtevent/libtevent/options-0.9.36.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From c3e2e4f89cf37b27609fd02ad67eb02d0015cc1e Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 21 Sep 2016 09:57:49 +0800
-Subject: [PATCH 1/1] tevent: 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>
----
- lib/replace/wscript | 89 ++++++++++++++++++++++++++++++++++++++++-------------
- wscript | 7 ++++-
- 2 files changed, 73 insertions(+), 23 deletions(-)
-
-diff --git a/lib/replace/wscript b/lib/replace/wscript
-index 2c638b7..079761d 100644
---- a/lib/replace/wscript
-+++ b/lib/replace/wscript
-@@ -23,6 +23,41 @@ def set_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')
-@@ -32,12 +67,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('libaio.h 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 sys/fs/vx/quota.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')
-@@ -101,7 +149,8 @@ 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 valgrind/memcheck.h')
-+ if Options.options.enable_valgrind:
-+ conf.CHECK_HEADERS('valgrind.h valgrind/valgrind.h valgrind/memcheck.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')
-@@ -294,22 +343,18 @@ def configure(conf):
-
- conf.CHECK_FUNCS('prctl dirname basename')
-
-- 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 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')
-+ if not conf.CHECK_FUNCS('closefrom'):
-+ conf.CHECK_FUNCS_IN('closefrom', 'bsd', headers='bsd/unistd.h')
-
- conf.CHECK_CODE('''
- struct ucred cred;
-@@ -660,7 +705,7 @@ removeea setea
- # look for a method of finding the list of network interfaces
- for method in ['HAVE_IFACE_GETIFADDRS', 'HAVE_IFACE_AIX', 'HAVE_IFACE_IFCONF', 'HAVE_IFACE_IFREQ']:
- bsd_for_strlcpy = ''
-- if strlcpy_in_bsd:
-+ if Options.options.enable_libbsd:
- bsd_for_strlcpy = ' bsd'
- if conf.CHECK_CODE('''
- #define %s 1
-diff --git a/wscript b/wscript
-index 94d190f..742f779 100644
---- a/wscript
-+++ b/wscript
-@@ -22,7 +22,12 @@ def set_options(opt):
- opt.PRIVATE_EXTENSION_DEFAULT('tevent', noextension='tevent')
- 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.16.2
-
diff --git a/meta-networking/recipes-support/libtevent/libtevent_0.14.1.bb b/meta-networking/recipes-support/libtevent/libtevent_0.14.1.bb
new file mode 100644
index 0000000000..b34c186ca5
--- /dev/null
+++ b/meta-networking/recipes-support/libtevent/libtevent_0.14.1.bb
@@ -0,0 +1,68 @@
+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"
+RDEPENDS:python3-tevent = "python3"
+
+export PYTHONHASHSEED="1"
+
+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 \
+ "
+
+SRC_URI:append:libc-musl = " file://cmocka-fix-musl-libc-conflicting-types-error.patch"
+
+LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=47386b7c539bf2706b7ce52dc9341681"
+
+SRC_URI[sha256sum] = "ef85fcaa80ffd2351036ba4b347630fef2a1ac3da964a7f1820466bad03cd00d"
+
+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[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 \
+ --disable-rpath-install \
+ --bundled-libraries=cmocka \
+ --builtin-libraries=replace \
+ --with-libiconv=${STAGING_DIR_HOST}${prefix}\
+ --without-gettext \
+ "
+
+do_install:append() {
+ install -Dm 0755 ${B}/bin/test_tevent_trace ${D}${bindir}/test_tevent_trace
+ install -Dm 0755 ${B}/bin/test_tevent_tag ${D}${bindir}/test_tevent_tag
+ install -Dm 0755 ${B}/bin/replace_testsuite ${D}${bindir}/replace_testsuite
+}
+
+PACKAGES += "python3-tevent"
+
+RPROVIDES:${PN}-dbg += "python3-tevent-dbg"
+
+FILES:${PN} += "${libdir}/tevent/*"
+FILES:${PN}-ptest += "${bindir}/replace_testsuite \
+ ${bindir}/test_tevent_tag \
+ ${bindir}/test_tevent_trace \
+ ${libdir}/libcmocka-tevent.so"
+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.9.36.bb b/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb
deleted file mode 100644
index c91b221b1e..0000000000
--- a/meta-networking/recipes-support/libtevent/libtevent_0.9.36.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Hierarchical, reference counted memory pool system with destructors"
-HOMEPAGE = "http://tevent.samba.org"
-SECTION = "libs"
-LICENSE = "LGPLv3+"
-
-DEPENDS += "libtalloc libtirpc"
-RDEPENDS_python-tevent = "python"
-
-SRC_URI = "https://samba.org/ftp/tevent/tevent-${PV}.tar.gz \
- file://options-0.9.36.patch \
-"
-LIC_FILES_CHKSUM = "file://tevent.h;endline=26;md5=4e458d658cb25e21efc16f720e78b85a"
-
-SRC_URI[md5sum] = "87d67bca75b231814435c47bec0aff8a"
-SRC_URI[sha256sum] = "bd2b6be3fd1601ed7f176e99111e322c57d58e425cc149ee80c7dd4fed263b4c"
-
-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}/tevent-${PV}"
-
-EXTRA_OECONF += "--disable-rpath \
- --bundled-libraries=NONE \
- --builtin-libraries=replace \
- --with-libiconv=${STAGING_DIR_HOST}${prefix}\
- --without-gettext \
- "
-
-PACKAGES += "python-tevent python-tevent-dbg"
-
-FILES_python-tevent = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-FILES_python-tevent-dbg = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0001-IFNAMSIZ-is-defined-in-net-if.h.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-IFNAMSIZ-is-defined-in-net-if.h.patch
new file mode 100644
index 0000000000..a7c7093e09
--- /dev/null
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-IFNAMSIZ-is-defined-in-net-if.h.patch
@@ -0,0 +1,48 @@
+From 29b37e45577c0921846c1709a190f08a3b032666 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Mar 2019 09:08:38 -0800
+Subject: [PATCH] IFNAMSIZ is defined in net/if.h
+
+Fixes
+/mnt/a/yoe/build/tmp/work/qemuriscv64-yoe-linux-musl/linux-atm/2.5.2-r0/recipe-sysroot/usr/include/linux/if_arp.h:121:16: error: 'IFNAMSIZ' undeclared here (not in a function)
+| char arp_dev[IFNAMSIZ];
+| ^~~~~~~~
+In file included from ../../../linux-atm-2.5.2/src/arpd/itf.c:17:
+/mnt/a/yoe/build/tmp/work/qemuriscv64-yoe-linux-musl/linux-atm/2.5.2-r0/recipe-sysroot/usr/include/linux/if_arp.h:121:16: error: 'IFNAMSIZ' undeclared here (not in a function)
+| char arp_dev[IFNAMSIZ];
+| ^~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/arpd/arp.c | 1 +
+ src/arpd/itf.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/arpd/arp.c b/src/arpd/arp.c
+index 92d3787..ff1574c 100644
+--- a/src/arpd/arp.c
++++ b/src/arpd/arp.c
+@@ -17,6 +17,7 @@
+ #include <netinet/in.h> /* for ntohs, etc. */
+ #define _LINUX_NETDEVICE_H /* very crude hack for glibc2 */
+ #include <linux/types.h>
++#include <net/if.h>
+ #include <linux/if_arp.h>
+ #include <linux/if_ether.h>
+ #include <atm.h>
+diff --git a/src/arpd/itf.c b/src/arpd/itf.c
+index 92f0951..d285e3b 100644
+--- a/src/arpd/itf.c
++++ b/src/arpd/itf.c
+@@ -14,6 +14,7 @@
+ #include <sys/socket.h>
+ #define _LINUX_NETDEVICE_H /* glibc2 */
+ #include <linux/types.h>
++#include <net/if.h>
+ #include <linux/if_arp.h>
+
+ #include "atmd.h"
+--
+2.21.0
+
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0001-configure-Check-for-symbol-from-libresolv-instead-of.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-configure-Check-for-symbol-from-libresolv-instead-of.patch
new file mode 100644
index 0000000000..abae366d28
--- /dev/null
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-configure-Check-for-symbol-from-libresolv-instead-of.patch
@@ -0,0 +1,28 @@
+From a2a2e1b7a3f4f90e32912b5ba9b79e1a02275775 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 11:17:13 -0700
+Subject: [PATCH] configure: Check for symbol from libresolv instead of main
+
+This checks will fail with modern autoconf and compilers
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/configure.in
++++ b/configure.in
+@@ -45,12 +45,7 @@ AC_CHECK_HEADER(linux/atmsap.h, ,
+ )
+
+ dnl Check for libraries
+-dnl libresolv is required
+-AC_CHECK_LIB(resolv, main, ,
+- AC_MSG_ERROR([*** Unable to find libresolv!!!])
+-)
+
+-dnl We don't want libresolv everywhere, just with libatm
+ LIBS=""
+
+ INCLUDES="-I\$(top_srcdir)/src/include"
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/0001-include-string-h-from-memcpy-and-strcpy-function-pro.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-include-string-h-from-memcpy-and-strcpy-function-pro.patch
new file mode 100644
index 0000000000..81c5efd173
--- /dev/null
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-include-string-h-from-memcpy-and-strcpy-function-pro.patch
@@ -0,0 +1,87 @@
+From 5217cb7c829cf87771096c4ce41fd4648dca47cb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 16:36:21 -0700
+Subject: [PATCH] include string,h from memcpy and strcpy function prototype
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/led/address.c | 1 +
+ src/led/display.c | 1 +
+ src/lib/unix.c | 1 +
+ src/maint/hediag.c | 1 +
+ src/sigd/kernel.c | 1 +
+ src/sigd/policy.c | 1 +
+ 6 files changed, 6 insertions(+)
+
+diff --git a/src/led/address.c b/src/led/address.c
+index 574e881..b5c5fbb 100644
+--- a/src/led/address.c
++++ b/src/led/address.c
+@@ -31,6 +31,7 @@
+ #endif
+
+ #include <sys/ioctl.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <errno.h>
+
+diff --git a/src/led/display.c b/src/led/display.c
+index d78a15d..b835e89 100644
+--- a/src/led/display.c
++++ b/src/led/display.c
+@@ -5,6 +5,7 @@
+ #if HAVE_CONFIG_H
+ #include <config.h>
+ #endif
++#include <string.h>
+
+ #include <atm.h>
+ #include <atmd.h>
+diff --git a/src/lib/unix.c b/src/lib/unix.c
+index 34aa465..d5bef54 100644
+--- a/src/lib/unix.c
++++ b/src/lib/unix.c
+@@ -8,6 +8,7 @@
+
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <errno.h>
+ #include <sys/types.h>
+diff --git a/src/maint/hediag.c b/src/maint/hediag.c
+index 8a4312a..a4f792f 100644
+--- a/src/maint/hediag.c
++++ b/src/maint/hediag.c
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h>
+ #include <unistd.h>
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+diff --git a/src/sigd/kernel.c b/src/sigd/kernel.c
+index 9ee74b1..2491626 100644
+--- a/src/sigd/kernel.c
++++ b/src/sigd/kernel.c
+@@ -8,6 +8,7 @@
+
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <errno.h>
+ #include <assert.h>
+
+diff --git a/src/sigd/policy.c b/src/sigd/policy.c
+index 2cfb42d..87223a7 100644
+--- a/src/sigd/policy.c
++++ b/src/sigd/policy.c
+@@ -6,6 +6,7 @@
+ #include <config.h>
+ #endif
+
++#include <string.h>
+ #include <atm.h>
+ #include <atmd.h>
+
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0001-make-Add-PREFIX-knob.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-make-Add-PREFIX-knob.patch
new file mode 100644
index 0000000000..9c83ef0af4
--- /dev/null
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-make-Add-PREFIX-knob.patch
@@ -0,0 +1,31 @@
+From 94cb952207e44a5c29578c9c56912190a5422876 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 23 Apr 2022 09:41:51 -0700
+Subject: [PATCH] make: Add PREFIX knob
+
+This will be used to pass appropriate root prefix which is different
+when using usrmerge
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/extra/Makefile.am | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/src/extra/Makefile.am
++++ b/src/extra/Makefile.am
+@@ -8,10 +8,10 @@ BUILT_SOURCES = pca200e.bin pca200e_ecd.
+ CLEANFILES = pca200e.bin pca200e_ecd.bin2 sba200e_ecd.bin2
+
+ install-exec-hook:
+- $(MKDIR_P) $(DESTDIR)/lib/firmware
+- $(INSTALL_DATA) $(builddir)/pca200e.bin $(DESTDIR)/lib/firmware
+- $(INSTALL_DATA) $(builddir)/pca200e_ecd.bin2 $(DESTDIR)/lib/firmware
+- $(INSTALL_DATA) $(builddir)/sba200e_ecd.bin2 $(DESTDIR)/lib/firmware
++ $(MKDIR_P) $(DESTDIR)$(ROOTPREFIX)/lib/firmware
++ $(INSTALL_DATA) $(builddir)/pca200e.bin $(DESTDIR)$(ROOTPREFIX)/lib/firmware
++ $(INSTALL_DATA) $(builddir)/pca200e_ecd.bin2 $(DESTDIR)$(ROOTPREFIX)/lib/firmware
++ $(INSTALL_DATA) $(builddir)/sba200e_ecd.bin2 $(DESTDIR)$(ROOTPREFIX)/lib/firmware
+
+ %.bin %.bin2: %.data
+ objcopy -Iihex $< -Obinary $@.gz
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0001-saaldump-atmdump-Include-linux-sockios.h-for-SIOCGST.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0001-saaldump-atmdump-Include-linux-sockios.h-for-SIOCGST.patch
new file mode 100644
index 0000000000..a54869db89
--- /dev/null
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/0001-saaldump-atmdump-Include-linux-sockios.h-for-SIOCGST.patch
@@ -0,0 +1,59 @@
+From 4456e13880803a300e4b6f263ad22a37481b5df5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Aug 2019 09:33:43 -0700
+Subject: [PATCH] saaldump,atmdump: Include linux/sockios.h for SIOCGSTAMP
+
+In linux kernel commit 0768e17073dc527ccd18ed5f96ce85f9985e9115
+the asm-generic/sockios.h header no longer defines SIOCGSTAMP.
+Instead it provides only SIOCGSTAMP_OLD.
+
+The linux/sockios.h header now defines SIOCGSTAMP using either
+SIOCGSTAMP_OLD or SIOCGSTAMP_NEW as appropriate. This linux only
+header file is not pulled so we get a build failure.
+
+Fixes
+../../../linux-atm-2.5.2/src/maint/atmdump.c:142:18: error: use of undeclared identifier 'SIOCGSTAMP'
+ if (ioctl(s,SIOCGSTAMP,&stamp) < 0) {
+ ^
+1 error generated.
+make[3]: *** [Makefile:623: atmdump.o] Error 1
+make[3]: *** Waiting for unfinished jobs....
+../../../linux-atm-2.5.2/src/maint/saaldump.c:169:14: error: use of undeclared identifier 'SIOCGSTAMP'
+ if (ioctl(s,SIOCGSTAMP,&stamp) < 0) {
+ ^
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/maint/atmdump.c | 2 +-
+ src/maint/saaldump.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/maint/atmdump.c b/src/maint/atmdump.c
+index 8b17826..9e4853b 100644
+--- a/src/maint/atmdump.c
++++ b/src/maint/atmdump.c
+@@ -5,7 +5,7 @@
+ #if HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+-
++#include <linux/sockios.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+diff --git a/src/maint/saaldump.c b/src/maint/saaldump.c
+index 83bdde9..69429a8 100644
+--- a/src/maint/saaldump.c
++++ b/src/maint/saaldump.c
+@@ -5,7 +5,7 @@
+ #if HAVE_CONFIG_H
+ #include <config.h>
+ #endif
+-
++#include <linux/sockios.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+--
+2.23.0
+
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch b/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch
deleted file mode 100644
index ce061231ca..0000000000
--- a/meta-networking/recipes-support/linux-atm/linux-atm/0002-sigd-Replace-on_exit-API-with-atexit.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 27fa80dc8045e71c30dd2abea835206d5c8f6c71 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Jun 2017 16:18:56 -0700
-Subject: [PATCH 2/3] sigd: Replace on_exit() API with atexit()
-
-on_exit is not universally available
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/sigd/atmsigd.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/sigd/atmsigd.c b/src/sigd/atmsigd.c
-index 52e41c7..b766606 100644
---- a/src/sigd/atmsigd.c
-+++ b/src/sigd/atmsigd.c
-@@ -517,7 +517,7 @@ int main(int argc,char **argv)
- exit(0);
- }
- }
-- (void) on_exit(trace_on_exit,NULL);
-+ atexit(trace_on_exit);
- poll_loop();
- close_all();
- for (sig = entities; sig; sig = sig->next) stop_saal(&sig->saal);
---
-2.13.1
-
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/linux-atm/linux-atm/musl-no-on_exit.patch b/meta-networking/recipes-support/linux-atm/linux-atm/musl-no-on_exit.patch
new file mode 100644
index 0000000000..25211d7c10
--- /dev/null
+++ b/meta-networking/recipes-support/linux-atm/linux-atm/musl-no-on_exit.patch
@@ -0,0 +1,37 @@
+Description: musl lacks on_exit
+Author: Adrian Bunk <bunk@stusta.de>
+
+Only prints a trace on nonzero exit(),
+so can safely be disabled in musl builds.
+
+Signed-off-by: Adrian Bunk <bunk@stusta.de>
+Upstream-Status: Inappropriate [musl specific]
+
+--- linux-atm-2.5.1.orig/src/sigd/atmsigd.c
++++ linux-atm-2.5.1/src/sigd/atmsigd.c
+@@ -283,6 +283,7 @@ static void setup_signals(void)
+ /* ------------------------------- main ... ------------------------------- */
+
+
++#if 0
+ static void trace_on_exit(int status,void *dummy)
+ {
+ char path[PATH_MAX+1];
+@@ -300,6 +301,7 @@ static void trace_on_exit(int status,voi
+ dump_trace(file,"Message trace (after error exit)");
+ if (file != stderr) (void) fclose(file);
+ }
++#endif
+
+
+ static void manual_override(void)
+@@ -517,7 +519,9 @@ int main(int argc,char **argv)
+ exit(0);
+ }
+ }
++#if 0
+ (void) on_exit(trace_on_exit,NULL);
++#endif
+ poll_loop();
+ close_all();
+ for (sig = entities; sig; sig = sig->next) stop_saal(&sig->saal);
diff --git a/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
index 9fce4fba63..86b9112ba2 100644
--- a/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
+++ b/meta-networking/recipes-support/linux-atm/linux-atm_2.5.2.bb
@@ -1,22 +1,25 @@
SUMMARY = "Drivers and tools to support ATM networking under Linux"
HOMEPAGE = "http://linux-atm.sourceforge.net/"
SECTION = "libs"
-LICENSE = "GPL-2.0 & LGPL-2.0"
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
-DEPENDS = "virtual/kernel flex flex-native"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
+DEPENDS = "flex flex-native"
SRC_URI = "http://nchc.dl.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
file://link-with-ldflags.patch \
file://install-from-buildir.patch \
file://0001-fix-compile-error-with-linux-kernel-v4.8.patch \
file://0001-ttcp-Add-printf-format-string.patch \
- file://0002-sigd-Replace-on_exit-API-with-atexit.patch \
file://0003-mpoad-Drop-old-hack-to-compile-with-very-old-glibc.patch \
-"
+ file://0001-IFNAMSIZ-is-defined-in-net-if.h.patch \
+ file://0001-saaldump-atmdump-Include-linux-sockios.h-for-SIOCGST.patch \
+ file://0001-make-Add-PREFIX-knob.patch \
+ file://0001-include-string-h-from-memcpy-and-strcpy-function-pro.patch \
+ file://0001-configure-Check-for-symbol-from-libresolv-instead-of.patch \
+ "
+
+SRC_URI:append:libc-musl = " file://musl-no-on_exit.patch"
-SRC_URI[md5sum] = "d49499368c3cf15f73a05d9bce8824a8"
SRC_URI[sha256sum] = "9645481a2b16476b59220aa2d6bc5bc41043f291326c9b37581018fbd16dd53a"
LIC_FILES_CHKSUM = "\
@@ -26,7 +29,6 @@ file://COPYING.LGPL;md5=6e29c688d912da12b66b73e32b03d812"
inherit autotools pkgconfig
-# The firmware is explicitly put under /lib when installed.
-#
+EXTRA_OEMAKE += "ROOTPREFIX=${root_prefix}"
-FILES_${PN} += "/lib/firmware"
+FILES:${PN} += "${nonarch_base_libdir}/firmware"
diff --git a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb
deleted file mode 100644
index 121cc9945e..0000000000
--- a/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.17.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-SUMMARY = "The Linux Kernel Stream Control Transmission Protocol (lksctp) project"
-HOMEPAGE = "http://lksctp.org"
-SECTION = "net"
-LICENSE = "LGPLv2.1 & GPLv2"
-
-LIC_FILES_CHKSUM = " \
- file://COPYING.lib;md5=0a1b79af951c42a9c8573533fbba9a92 \
- file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \
-"
-
-SRCREV = "736b91d340e3f2519714f2930ed63b164d363511"
-
-PV .= "+git${SRCPV}"
-LK_REL = "1.0.17"
-
-SRC_URI = " \
- git://github.com/sctp/lksctp-tools.git \
- file://run-ptest \
- file://v4test.sh \
- file://v6test.sh \
-"
-
-S = "${WORKDIR}/git"
-
-BBCLASSEXTEND = "native"
-
-inherit autotools pkgconfig binconfig ptest
-
-do_install_ptest () {
- install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH}
- install -m 0755 ${WORKDIR}/v6test.sh ${D}${PTEST_PATH}
- for testcase in `find ${B}/src/apps/.libs ${B}/src/func_tests/.libs -maxdepth 1 -type f -executable`; do
- install $testcase ${D}${PTEST_PATH}
- done
-}
-
-SOLIBVERSION="${LK_REL}"
-SOLIBMAJORVERSION="1"
-
-PACKAGES =+ "${PN}-withsctp ${PN}-utils"
-
-FILES_${PN} = " \
- ${libdir}/libsctp.so.${SOLIBVERSION} \
- ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \
-"
-
-FILES_${PN}-withsctp = " \
- ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBVERSION} \
- ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \
-"
-
-FILES_${PN}-dev += " \
- ${libdir}/libsctp.so \
- ${libdir}/lksctp-tools/libwithsctp.so \
- ${datadir}/lksctp-tools/*.c \
- ${datadir}/lksctp-tools/*.h \
-"
-
-FILES_${PN}-utils = "${bindir}/*"
-
-RRECOMMENDS_${PN}-utils += "kernel-module-sctp"
-RRECOMMENDS_${PN}-ptest += "kernel-module-sctp"
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
new file mode 100644
index 0000000000..4a9d2f54d9
--- /dev/null
+++ b/meta-networking/recipes-support/lksctp-tools/lksctp-tools_1.0.19.bb
@@ -0,0 +1,63 @@
+SUMMARY = "The Linux Kernel Stream Control Transmission Protocol (lksctp) project"
+HOMEPAGE = "http://lksctp.org"
+SECTION = "net"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+
+LIC_FILES_CHKSUM = " \
+ file://COPYING.lib;md5=0a1b79af951c42a9c8573533fbba9a92 \
+ file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e \
+"
+
+SRCREV = "05b50d379ff0037de4957bb2a1befcce88b70225"
+
+PV .= "+git${SRCPV}"
+LK_REL = "1.0.19"
+
+SRC_URI = " \
+ git://github.com/sctp/lksctp-tools.git;branch=master;protocol=https \
+ file://run-ptest \
+ file://v4test.sh \
+ file://v6test.sh \
+"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
+
+inherit autotools-brokensep pkgconfig binconfig ptest
+
+do_install_ptest () {
+ install -m 0755 ${WORKDIR}/v4test.sh ${D}${PTEST_PATH}
+ install -m 0755 ${WORKDIR}/v6test.sh ${D}${PTEST_PATH}
+ for testcase in `find ${B}/src/apps/.libs ${B}/src/func_tests/.libs -maxdepth 1 -type f -executable`; do
+ install $testcase ${D}${PTEST_PATH}
+ done
+}
+
+SOLIBVERSION="${LK_REL}"
+SOLIBMAJORVERSION="1"
+
+PACKAGES =+ "${PN}-withsctp ${PN}-utils"
+
+FILES:${PN} = " \
+ ${libdir}/libsctp.so.${SOLIBVERSION} \
+ ${libdir}/libsctp.so.${SOLIBMAJORVERSION} \
+"
+
+FILES:${PN}-withsctp = " \
+ ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBVERSION} \
+ ${libdir}/lksctp-tools/libwithsctp.so.${SOLIBMAJORVERSION} \
+"
+
+FILES:${PN}-dev += " \
+ ${libdir}/libsctp.so \
+ ${libdir}/lksctp-tools/libwithsctp.so \
+ ${datadir}/lksctp-tools/*.c \
+ ${datadir}/lksctp-tools/*.h \
+"
+
+FILES:${PN}-utils = "${bindir}/*"
+
+RRECOMMENDS:${PN} += "kernel-module-sctp"
+RRECOMMENDS:${PN}-utils += "kernel-module-sctp"
+RRECOMMENDS:${PN}-ptest += "kernel-module-sctp"
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 b70c43f156..baaff1f219 100644
--- a/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
+++ b/meta-networking/recipes-support/lowpan-tools/lowpan-tools_git.bb
@@ -2,13 +2,13 @@ SUMMARY = "Utilities for managing the Linux LoWPAN stack"
DESCRIPTION = "This is a set of utils to manage the Linux LoWPAN stack. \
The LoWPAN stack aims for IEEE 802.15.4-2003 (and for lesser extent IEEE 802.15.4-2006) compatibility."
SECTION = "net"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "flex-native bison-native libnl python"
PV = "0.3.1+git${SRCPV}"
-SRC_URI = "git://github.com/linux-wpan/lowpan-tools \
+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 \
file://0001-addrdb-coord-config-parse.y-add-missing-time.h-inclu.patch \
@@ -21,17 +21,19 @@ SRCREV = "1c2d8674cc6f4b1166a066e8822e295c105ae7a2"
S = "${WORKDIR}/git"
-inherit autotools python-dir pkgconfig
+inherit autotools python3-dir pkgconfig
CACHED_CONFIGUREVARS += "am_cv_python_pythondir=${PYTHON_SITEPACKAGES_DIR}/lowpan-tools"
CFLAGS += "-Wno-initializer-overrides"
-do_install_append() {
+do_install:append() {
rmdir ${D}${localstatedir}/run
}
-FILES_${PN}-dbg += "${libexecdir}/lowpan-tools/.debug/"
+FILES:${PN}-dbg += "${libexecdir}/lowpan-tools/.debug/"
PACKAGES =+ "${PN}-python"
-FILES_${PN}-python = "${libdir}/python*"
+FILES:${PN}-python = "${libdir}/python*"
+
+SKIP_RECIPE[lowpan-tools] ?= "WARNING these tools are deprecated! Use wpan-tools instead"
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
new file mode 100644
index 0000000000..5231015701
--- /dev/null
+++ b/meta-networking/recipes-support/macchanger/macchanger/0001-Fix-musl-build.patch
@@ -0,0 +1,33 @@
+From 12d1cc9da14b0cd0265bca3c4289a335ddf2e357 Mon Sep 17 00:00:00 2001
+From: Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>
+Date: Mon, 8 Apr 2019 21:00:20 +0200
+Subject: [PATCH] Fix musl build
+
+Fixes compilation error on musl:
+| ../macchanger-1.7.0/src/netinfo.c:116:26: error: expected ';' before 'epa'
+| req.ifr_data = (caddr_t)epa;
+
+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/src/netinfo.c b/src/netinfo.c
+index 3525123..1aa3293 100644
+--- a/src/netinfo.c
++++ b/src/netinfo.c
+@@ -28,6 +28,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/ioctl.h>
++#include <sys/types.h>
+
+ #include <linux/ethtool.h>
+ #include <linux/sockios.h>
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb b/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb
deleted file mode 100644
index a90177f19a..0000000000
--- a/meta-networking/recipes-support/macchanger/macchanger_1.5.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Tool to view/change network interface MAC addresses"
-DESCRIPTION = "A GNU/Linux utility for viewing/manipulating the MAC address of network interfaces."
-HOMEPAGE = "http://www.alobbs.com/macchanger"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-SECTION = "net"
-
-SRC_URI = "${GNU_MIRROR}/macchanger/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "79b7cdaeca3d8ebafa764c4b0dd03ab7"
-SRC_URI[sha256sum] = "d44bfa27cb29c5a718627cb3ef3aa42eb5130426545eb2031120826cd73fa8fe"
-
-FILES_${PN} = " \
- ${bindir}/${BPN} \
- ${datadir}/${BPN}/wireless.list \
- ${datadir}/${BPN}/OUI.list \
-"
-
-FILES_${PN}-doc = " \
- ${datadir}/info \
- ${datadir}/man \
-"
-
-inherit autotools
diff --git a/meta-networking/recipes-support/macchanger/macchanger_1.7.0.bb b/meta-networking/recipes-support/macchanger/macchanger_1.7.0.bb
new file mode 100644
index 0000000000..f965c0db1b
--- /dev/null
+++ b/meta-networking/recipes-support/macchanger/macchanger_1.7.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Tool to view/change network interface MAC addresses"
+DESCRIPTION = "A GNU/Linux utility for viewing/manipulating the MAC address of network interfaces."
+HOMEPAGE = "https://github.com/alobbs/macchanger"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "net"
+
+SRC_URI = "https://github.com/alobbs/macchanger/releases/download/${PV}/${BPN}-${PV}.tar.gz \
+ file://0001-Fix-musl-build.patch \
+"
+SRC_URI[md5sum] = "ca56f16142914337391dac91603eb332"
+SRC_URI[sha256sum] = "dae2717c270fd5f62d790dbf80c19793c651b1b26b62c101b82d5fdf25a845bf"
+
+FILES:${PN} = " \
+ ${bindir}/${BPN} \
+ ${datadir}/${BPN}/wireless.list \
+ ${datadir}/${BPN}/OUI.list \
+"
+
+FILES:${PN}-doc = " \
+ ${datadir}/info \
+ ${datadir}/man \
+"
+
+inherit autotools
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/mdio-tools/mdio-netlink_1.2.0.bb b/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb
new file mode 100644
index 0000000000..b50d33f908
--- /dev/null
+++ b/meta-networking/recipes-support/mdio-tools/mdio-netlink_1.2.0.bb
@@ -0,0 +1,13 @@
+require mdio-tools.inc
+
+DEPENDS += "virtual/kernel libmnl"
+# This module requires Linux 5.6 higher
+
+S = "${WORKDIR}/git/kernel"
+
+inherit module
+
+EXTRA_OEMAKE = "KDIR=${STAGING_KERNEL_DIR}"
+MODULES_INSTALL_TARGET = "install"
+
+RPROVIDES:${PN} += "kernel-module-mdio-netlink"
diff --git a/meta-networking/recipes-support/mdio-tools/mdio-tools.inc b/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
new file mode 100644
index 0000000000..46d0c1b4f1
--- /dev/null
+++ b/meta-networking/recipes-support/mdio-tools/mdio-tools.inc
@@ -0,0 +1,8 @@
+DESCRIPTION = "A low-level debug tool for communicating with devices attached to an MDIO bus"
+SECTION = "networking"
+HOMEPAGE = "https://github.com/wkz/mdio-tools"
+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 = "0dbfca13a094d20d736153c63161cf11b9ccf2d3"
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
new file mode 100644
index 0000000000..cd4df3da05
--- /dev/null
+++ b/meta-networking/recipes-support/mdio-tools/mdio-tools_1.2.0.bb
@@ -0,0 +1,9 @@
+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/memcached/memcached/0001-Fix-function-protypes.patch b/meta-networking/recipes-support/memcached/memcached/0001-Fix-function-protypes.patch
new file mode 100644
index 0000000000..15ef54f80e
--- /dev/null
+++ b/meta-networking/recipes-support/memcached/memcached/0001-Fix-function-protypes.patch
@@ -0,0 +1,110 @@
+From 6021d3d60e64d9174f41515d2d962df9b5d7645e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 17:15:28 -0700
+Subject: [PATCH] Fix function protypes
+
+clang-15+ has started diagnosing them as errors
+
+thread.c:925:18: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes]
+| void STATS_UNLOCK() {
+| ^
+| void
+
+Upstream-Status: Submitted [https://github.com/memcached/memcached/pull/928]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ assoc.c | 4 ++--
+ memcached.c | 4 ++--
+ slabs.c | 2 +-
+ testapp.c | 2 +-
+ thread.c | 4 ++--
+ 5 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/assoc.c b/assoc.c
+index bc68695..01063a9 100644
+--- a/assoc.c
++++ b/assoc.c
+@@ -261,7 +261,7 @@ static void *assoc_maintenance_thread(void *arg) {
+
+ static pthread_t maintenance_tid;
+
+-int start_assoc_maintenance_thread() {
++int start_assoc_maintenance_thread(void) {
+ int ret;
+ char *env = getenv("MEMCACHED_HASH_BULK_MOVE");
+ if (env != NULL) {
+@@ -279,7 +279,7 @@ int start_assoc_maintenance_thread() {
+ return 0;
+ }
+
+-void stop_assoc_maintenance_thread() {
++void stop_assoc_maintenance_thread(void) {
+ mutex_lock(&maintenance_lock);
+ do_run_maintenance_thread = 0;
+ pthread_cond_signal(&maintenance_cond);
+diff --git a/memcached.c b/memcached.c
+index 7871fe8..4d3b54a 100644
+--- a/memcached.c
++++ b/memcached.c
+@@ -84,7 +84,7 @@ static int try_read_command_udp(conn *c);
+ static enum try_read_result try_read_network(conn *c);
+ static enum try_read_result try_read_udp(conn *c);
+
+-static int start_conn_timeout_thread();
++static int start_conn_timeout_thread(void);
+
+ /* stats */
+ static void stats_init(void);
+@@ -374,7 +374,7 @@ static void *conn_timeout_thread(void *arg) {
+ return NULL;
+ }
+
+-static int start_conn_timeout_thread() {
++static int start_conn_timeout_thread(void) {
+ int ret;
+
+ if (settings.idle_timeout == 0)
+diff --git a/slabs.c b/slabs.c
+index 3c78d8a..0dadd35 100644
+--- a/slabs.c
++++ b/slabs.c
+@@ -638,7 +638,7 @@ static void *memory_allocate(size_t size) {
+ }
+
+ /* Must only be used if all pages are item_size_max */
+-static void memory_release() {
++static void memory_release(void) {
+ void *p = NULL;
+ if (mem_base != NULL)
+ return;
+diff --git a/testapp.c b/testapp.c
+index 5face54..387a847 100644
+--- a/testapp.c
++++ b/testapp.c
+@@ -80,7 +80,7 @@ static struct conn *con = NULL;
+ static bool allow_closed_read = false;
+ static bool enable_ssl = false;
+
+-static void close_conn() {
++static void close_conn(void) {
+ if (con == NULL) return;
+ #ifdef TLS
+ if (con->ssl) {
+diff --git a/thread.c b/thread.c
+index d5ed052..f5efdc3 100644
+--- a/thread.c
++++ b/thread.c
+@@ -918,11 +918,11 @@ enum store_item_type store_item(item *item, int comm, conn* c) {
+
+ /******************************* GLOBAL STATS ******************************/
+
+-void STATS_LOCK() {
++void STATS_LOCK(void) {
+ pthread_mutex_lock(&stats_lock);
+ }
+
+-void STATS_UNLOCK() {
++void STATS_UNLOCK(void) {
+ pthread_mutex_unlock(&stats_lock);
+ }
+
diff --git a/meta-networking/recipes-support/memcached/memcached/memcached-add-hugetlbfs-check.patch b/meta-networking/recipes-support/memcached/memcached/memcached-add-hugetlbfs-check.patch
index 544b840fea..45428ed234 100644
--- a/meta-networking/recipes-support/memcached/memcached/memcached-add-hugetlbfs-check.patch
+++ b/meta-networking/recipes-support/memcached/memcached/memcached-add-hugetlbfs-check.patch
@@ -9,24 +9,19 @@ Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
configure.ac | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
-diff --git a/configure.ac b/configure.ac
-index 7f22f21..21691b9 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -314,7 +314,12 @@ fi
- dnl ----------------------------------------------------------------------------
+@@ -488,8 +488,12 @@ if test "x$enable_static" = "xyes"; then
+ fi
- AC_SEARCH_LIBS(umem_cache_create, umem)
--AC_SEARCH_LIBS(gethugepagesizes, hugetlbfs)
+ dnl ----------------------------------------------------------------------------
+AC_ARG_ENABLE(hugetlbfs,
+ [AS_HELP_STRING([--enable-hugetlbfs],[Enable hugetlbfs])])
-+
+
+-AC_SEARCH_LIBS(gethugepagesizes, hugetlbfs)
+if test "x$enable_hugetlbfs" = "xyes"; then
+ AC_SEARCH_LIBS(gethugepagesizes, hugetlbfs)
+fi
AC_HEADER_STDBOOL
AH_BOTTOM([#if HAVE_STDBOOL_H
---
-1.8.3.4
-
diff --git a/meta-networking/recipes-support/memcached/memcached_1.5.7.bb b/meta-networking/recipes-support/memcached/memcached_1.5.7.bb
deleted file mode 100644
index 0703e7c59a..0000000000
--- a/meta-networking/recipes-support/memcached/memcached_1.5.7.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "A high-performance memory object caching system"
-DESCRIPTION = "\
- memcached optimizes specific high-load serving applications that are designed \
- to take advantage of its versatile no-locking memory access system. Clients \
- are available in several different programming languages, to suit the needs \
- of the specific application. Traditionally this has been used in mod_perl \
- apps to avoid storing large chunks of data in Apache memory, and to share \
- this burden across several machines."
-SECTION = "web"
-HOMEPAGE = "http://memcached.org/"
-LICENSE = "BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=7e5ded7363d335e1bb18013ca08046ff"
-
-inherit autotools
-
-DEPENDS += "libevent"
-RDEPENDS_${PN} += "perl perl-module-posix perl-module-autoloader \
- perl-module-tie-hash bash \
- "
-
-SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \
- file://memcached-add-hugetlbfs-check.patch \
- "
-SRC_URI[md5sum] = "07feaa900181c66753f9b060f40f24aa"
-SRC_URI[sha256sum] = "5bb706a8fc7ae7461a6788eaddd85e4a4e84e952d3a80c21926342c2838f4e46"
-
-# set the same COMPATIBLE_HOST as libhugetlbfs
-COMPATIBLE_HOST = '(i.86|x86_64|powerpc|powerpc64|arm).*-linux'
-
-python __anonymous () {
- endianness = d.getVar('SITEINFO_ENDIANNESS')
- if endianness == 'le':
- d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=little")
- else:
- d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=big")
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[hugetlbfs] = "--enable-hugetlbfs, --disable-hugetlbfs, libhugetlbfs"
-
-inherit update-rc.d
-
-INITSCRIPT_NAME = "memcached"
-INITSCRIPT_PARAMS = "defaults"
-
-do_install_append() {
- install -D -m 755 ${S}/scripts/memcached-init ${D}${sysconfdir}/init.d/memcached
- mkdir -p ${D}/usr/share/memcached/scripts
- install -m 755 ${S}/scripts/memcached-tool ${D}/usr/share/memcached/scripts
- install -m 755 ${S}/scripts/start-memcached ${D}/usr/share/memcached/scripts
-}
diff --git a/meta-networking/recipes-support/memcached/memcached_1.6.17.bb b/meta-networking/recipes-support/memcached/memcached_1.6.17.bb
new file mode 100644
index 0000000000..270ad5486d
--- /dev/null
+++ b/meta-networking/recipes-support/memcached/memcached_1.6.17.bb
@@ -0,0 +1,55 @@
+SUMMARY = "A high-performance memory object caching system"
+DESCRIPTION = "\
+ memcached optimizes specific high-load serving applications that are designed \
+ to take advantage of its versatile no-locking memory access system. Clients \
+ are available in several different programming languages, to suit the needs \
+ of the specific application. Traditionally this has been used in mod_perl \
+ apps to avoid storing large chunks of data in Apache memory, and to share \
+ this burden across several machines."
+SECTION = "web"
+HOMEPAGE = "http://memcached.org/"
+LICENSE = "BSD-3-Clause"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=7e5ded7363d335e1bb18013ca08046ff"
+
+inherit autotools pkgconfig
+
+DEPENDS += "libevent"
+RDEPENDS:${PN} += "perl perl-module-posix perl-module-autoloader \
+ perl-module-tie-hash bash \
+ "
+
+SRC_URI = "http://www.memcached.org/files/${BP}.tar.gz \
+ file://memcached-add-hugetlbfs-check.patch \
+ file://0001-Fix-function-protypes.patch \
+ "
+SRC_URI[sha256sum] = "2055e373613d8fc21529aff9f0adce3e23b9ce01ba0478d30e7941d9f2bd1224"
+
+# set the same COMPATIBLE_HOST as libhugetlbfs
+COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64|aarch64|arm).*-linux*"
+
+# assoc.c:83:9: error: variable 'depth' set but not used [-Werror,-Wunused-but-set-variable]
+CFLAGS:append:toolchain-clang = " -Wno-error=unused-but-set-variable"
+
+python __anonymous () {
+ endianness = d.getVar('SITEINFO_ENDIANNESS')
+ if endianness == 'le':
+ d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=little")
+ else:
+ d.appendVar('EXTRA_OECONF', " ac_cv_c_endian=big")
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[hugetlbfs] = "--enable-hugetlbfs, --disable-hugetlbfs, libhugetlbfs"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "memcached"
+INITSCRIPT_PARAMS = "defaults"
+
+do_install:append() {
+ install -D -m 755 ${S}/scripts/memcached-init ${D}${sysconfdir}/init.d/memcached
+ mkdir -p ${D}/usr/share/memcached/scripts
+ install -m 755 ${S}/scripts/memcached-tool ${D}/usr/share/memcached/scripts
+ install -m 755 ${S}/scripts/start-memcached ${D}/usr/share/memcached/scripts
+}
diff --git a/meta-networking/recipes-support/mtr/mtr_0.87.bb b/meta-networking/recipes-support/mtr/mtr_0.87.bb
deleted file mode 100644
index 9d3275e2d2..0000000000
--- a/meta-networking/recipes-support/mtr/mtr_0.87.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Combined traceroute and ping utility"
-DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool."
-HOMEPAGE = "http://www.bitwizard.nl/mtr/"
-SECTION = "net"
-DEPENDS = "ncurses"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://ui/mtr.c;beginline=5;endline=16;md5=af1fafbbfa1bfd48af839f4bb3221106"
-
-PV .= "+git${SRCPV}"
-
-SRCREV = "e6d0a7e93129e8023654ebf58dfa8135d1b1af56"
-SRC_URI = "git://github.com/traviscross/mtr"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--without-gtk"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-
-PACKAGES += "${PN}-bash-completions"
-
-FILES_${PN}-bash-completions = "${datadir}/bash-completion/"
diff --git a/meta-networking/recipes-support/mtr/mtr_0.95.bb b/meta-networking/recipes-support/mtr/mtr_0.95.bb
new file mode 100644
index 0000000000..92f9c4bfc0
--- /dev/null
+++ b/meta-networking/recipes-support/mtr/mtr_0.95.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Combined traceroute and ping utility"
+DESCRIPTION = "mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool."
+HOMEPAGE = "http://www.bitwizard.nl/mtr/"
+SECTION = "net"
+DEPENDS = "ncurses"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://ui/mtr.c;beginline=5;endline=16;md5=00a894a39d53726a27386534d1c4e468"
+
+SRCREV = "852e5617fbf331cf292723702161f0ac9afe257c"
+SRC_URI = "git://github.com/traviscross/mtr;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--without-gtk"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+PACKAGES += "${PN}-bash-completions"
+
+FILES:${PN}-bash-completions = "${datadir}/bash-completion/"
diff --git a/meta-networking/recipes-support/nbd/nbd_3.11.bb b/meta-networking/recipes-support/nbd/nbd_3.11.bb
deleted file mode 100644
index 2ad75bda6b..0000000000
--- a/meta-networking/recipes-support/nbd/nbd_3.11.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Network Block Device"
-HOMEPAGE = "http://nbd.sourceforge.net"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "glib-2.0"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "73d11644a28b9f335292cdb3bdc4b74b"
-SRC_URI[sha256sum] = "14420f74cb16dc609a9302ed1efd653064bed7a8357e9d73daabc33608e3f2a0"
-
-inherit autotools pkgconfig
-
-PACKAGES = "${PN}-client ${PN}-server ${PN}-dbg ${PN}-trdump ${PN}-doc"
-
-FILES_${PN}-client = "${sbindir}/${BPN}-client"
-FILES_${PN}-server = "${bindir}/${BPN}-server"
-FILES_${PN}-trdump = "${bindir}/${BPN}-trdump"
diff --git a/meta-networking/recipes-support/nbd/nbd_3.24.bb b/meta-networking/recipes-support/nbd/nbd_3.24.bb
new file mode 100644
index 0000000000..da9f829523
--- /dev/null
+++ b/meta-networking/recipes-support/nbd/nbd_3.24.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Network Block Device"
+HOMEPAGE = "http://nbd.sourceforge.net"
+SECTION = "net"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "autoconf-archive bison-native glib-2.0 libnl"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.xz"
+SRC_URI[md5sum] = "a6d9e7bbc311a2ed07ef84a58b82b5dd"
+SRC_URI[sha256sum] = "6877156d23a7b33f75eee89d2f5c2c91c542afc3cdcb636dea5a88539a58d10c"
+
+inherit autotools pkgconfig
+
+PACKAGES = "${PN}-client ${PN}-dbg ${PN}-doc ${PN}-server ${PN}-trdump ${PN}-trplay"
+
+FILES:${PN}-client = "${sbindir}/${BPN}-client"
+FILES:${PN}-server = "${bindir}/${BPN}-server"
+FILES:${PN}-trdump = "${bindir}/${BPN}-trdump"
+FILES:${PN}-trplay = "${bindir}/${BPN}-trplay"
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_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-Depend-on-haveuint128.h-for-umult64.c.patch b/meta-networking/recipes-support/ncp/libowfat/0001-Depend-on-haveuint128.h-for-umult64.c.patch
new file mode 100644
index 0000000000..6226e2c038
--- /dev/null
+++ b/meta-networking/recipes-support/ncp/libowfat/0001-Depend-on-haveuint128.h-for-umult64.c.patch
@@ -0,0 +1,44 @@
+From 7f6a104a682d59f28f7df889129f4467cc45e912 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 6 Nov 2019 19:55:42 -0800
+Subject: [PATCH] Depend on haveuint128.h for umult64.c
+
+This fixes parallel build issue e.g.
+mult/umult64.c:9:10: fatal error: 'haveuint128.h' file not found
+ ^~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ GNUmakefile | 1 +
+ Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/GNUmakefile b/GNUmakefile
+index 3f3193d..751ca60 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -126,6 +126,7 @@ $(CDB_OBJS): cdb.h uint32.h
+ $(CRITBIT_OBJS): critbit.h
+
+ mult64.o: haveuint128.h
++umult64.o: haveuint128.h
+
+
+ iob_addbuf.o iob_addfile.o iob_new.o iob_reset.o iob_send.o: iob_internal.h iob.h
+diff --git a/Makefile b/Makefile
+index 0d08da4..02df6c6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -430,7 +430,7 @@ range_str4inbuf.o: mult/range_str4inbuf.c rangecheck.h
+ range_strinbuf.o: mult/range_strinbuf.c rangecheck.h
+ umult16.o: mult/umult16.c uint16.h
+ umult32.o: mult/umult32.c uint32.h
+-umult64.o: mult/umult64.c uint64.h
++umult64.o: mult/umult64.c uint64.h haveuint128.h
+ open_append.o: open/open_append.c open.h
+ open_excl.o: open/open_excl.c open.h
+ open_read.o: open/open_read.c open.h
+--
+2.24.0
+
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
new file mode 100644
index 0000000000..880d80b106
--- /dev/null
+++ b/meta-networking/recipes-support/ncp/libowfat/0001-replace-__pure__-with-compiler-attribute-pure.patch
@@ -0,0 +1,562 @@
+From 408e7dfaf2eb735804f62728de679972867c30d5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 3 May 2021 13:53:10 -0700
+Subject: [PATCH] replace __pure__ with compiler attribute 'pure'
+
+Remove defining __deprecated__
+
+Upstream-Status: Inappropriate [Untested with dietlibc]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ byte.h | 22 ++++++----
+ critbit.h | 12 ++++--
+ fmt.h | 100 +++++++++++++++++++++++---------------------
+ str.h | 22 ++++++----
+ stralloc.h | 20 +++++----
+ 5 files changed, 103 insertions(+), 73 deletions(-)
+
+--- a/byte.h
++++ b/byte.h
+@@ -2,6 +2,16 @@
+ #ifndef BYTE_H
+ #define BYTE_H
+
++#ifndef __has_attribute
++ #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
++#endif
++
+ /* for size_t: */
+ #include <stddef.h>
+
+@@ -9,17 +19,13 @@
+ extern "C" {
+ #endif
+
+-#ifndef __pure__
+-#define __pure__
+-#endif
+-
+ /* byte_chr returns the smallest integer i between 0 and len-1
+ * inclusive such that one[i] equals needle, or len if not found. */
+-size_t byte_chr(const void* haystack, size_t len, char needle) __pure__;
++size_t byte_chr(const void* haystack, size_t len, char needle) __PURE;
+
+ /* byte_rchr returns the largest integer i between 0 and len-1 inclusive
+ * such that one[i] equals needle, or len if not found. */
+-size_t byte_rchr(const void* haystack,size_t len,char needle) __pure__;
++size_t byte_rchr(const void* haystack,size_t len,char needle) __PURE;
+
+ /* byte_copy copies in[0] to out[0], in[1] to out[1], ... and in[len-1]
+ * to out[len-1]. */
+@@ -34,14 +40,14 @@ void byte_copyr(void* out, size_t len, c
+ * than, equal to, or greater than the string b[0], b[1], ...,
+ * b[len-1]. When the strings are different, byte_diff does not read
+ * bytes past the first difference. */
+-int byte_diff(const void* a, size_t len, const void* b) __pure__;
++int byte_diff(const void* a, size_t len, const void* b) __PURE;
+
+ /* byte_zero sets the bytes out[0], out[1], ..., out[len-1] to 0 */
+ void byte_zero(void* out, size_t len);
+
+ #define byte_equal(s,n,t) (!byte_diff((s),(n),(t)))
+
+-int byte_equal_notimingattack(const void* a, size_t len,const void* b) __pure__;
++int byte_equal_notimingattack(const void* a, size_t len,const void* b) __PURE;
+
+ #if defined(__i386__) || defined(__x86_64__)
+ #define UNALIGNED_ACCESS_OK
+--- a/critbit.h
++++ b/critbit.h
+@@ -8,15 +8,21 @@ extern "C" {
+ /* for __pure__ if we are compiling under dietlibc */
+ #include <stddef.h>
+
+-#ifndef __pure__
+-#define __pure__
++#ifndef __has_attribute
++ #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
+ #endif
+
+ typedef struct {
+ void *root;
+ } critbit0_tree;
+
+-int critbit0_contains(critbit0_tree *t, const char *u) __pure__;
++int critbit0_contains(critbit0_tree *t, const char *u) __PURE;
+ int critbit0_insert(critbit0_tree *t, const char *u);
+ int critbit0_delete(critbit0_tree *t, const char *u);
+ void critbit0_clear(critbit0_tree *t);
+--- a/fmt.h
++++ b/fmt.h
+@@ -2,6 +2,16 @@
+ #ifndef FMT_H
+ #define FMT_H
+
++#ifndef __has_attribute
++ #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
++#endif
++
+ /* for size_t: */
+ #include <stddef.h>
+ /* for uint32_t */
+@@ -15,10 +25,6 @@
+ extern "C" {
+ #endif
+
+-#ifndef __pure__
+-#define __pure__
+-#endif
+-
+ #define FMT_LONG 41 /* enough space to hold -2^127 in decimal, plus \0 */
+ #define FMT_ULONG 40 /* enough space to hold 2^128 - 1 in decimal, plus \0 */
+ #define FMT_8LONG 44 /* enough space to hold 2^128 - 1 in octal, plus \0 */
+@@ -46,31 +52,31 @@ extern "C" {
+ /* convert signed src integer -23 to ASCII '-','2','3', return number of
+ * bytes of value in output format (3 in this example).
+ * If dest is not NULL, write result to dest */
+-size_t fmt_long(char *dest,signed long src) __pure__;
++size_t fmt_long(char *dest,signed long src) __PURE;
+
+ /* convert unsigned src integer 23 to ASCII '2','3', return number of
+ * bytes of value in output format (2 in this example).
+ * If dest is not NULL, write result to dest */
+-size_t fmt_ulong(char *dest,unsigned long src) __pure__;
++size_t fmt_ulong(char *dest,unsigned long src) __PURE;
+
+ /* convert unsigned src integer 0x23 to ASCII '2','3', return number of
+ * bytes of value in output format (2 in this example).
+ * If dest is not NULL, write result to dest */
+-size_t fmt_xlong(char *dest,unsigned long src) __pure__;
++size_t fmt_xlong(char *dest,unsigned long src) __PURE;
+
+ /* convert unsigned src integer 023 to ASCII '2','3', return number of
+ * bytes of value in output format (2 in this example).
+ * If dest is not NULL, write result to dest */
+-size_t fmt_8long(char *dest,unsigned long src) __pure__;
++size_t fmt_8long(char *dest,unsigned long src) __PURE;
+
+ /* like fmt_long but for long long */
+-size_t fmt_longlong(char *dest,signed long long src) __pure__;
++size_t fmt_longlong(char *dest,signed long long src) __PURE;
+
+ /* like fmt_ulong but for unsigned long long */
+-size_t fmt_ulonglong(char *dest,unsigned long long src) __pure__;
++size_t fmt_ulonglong(char *dest,unsigned long long src) __PURE;
+
+ /* like fmt_xlong but for unsigned long long */
+-size_t fmt_xlonglong(char *dest,unsigned long long src) __pure__;
++size_t fmt_xlonglong(char *dest,unsigned long long src) __PURE;
+
+ #define fmt_uint(dest,src) fmt_ulong(dest,src)
+ #define fmt_int(dest,src) fmt_long(dest,src)
+@@ -81,22 +87,22 @@ size_t fmt_xlonglong(char *dest,unsigned
+ * Does not truncate! */
+ /* fmt_ulong0(buf,23,4) -> '0','0','2','3' return 4 */
+ /* fmt_ulong0(buf,234,2) -> '2','3','4', return 3 */
+-size_t fmt_ulong0(char *,unsigned long src,size_t padto) __pure__;
++size_t fmt_ulong0(char *,unsigned long src,size_t padto) __PURE;
+
+ #define fmt_uint0(buf,src,padto) fmt_ulong0(buf,src,padto)
+
+ /* convert src double 1.7 to ASCII '1','.','7', return length.
+ * If dest is not NULL, write result to dest */
+-size_t fmt_double(char *dest, double d,int max,int prec) __pure__;
++size_t fmt_double(char *dest, double d,int max,int prec) __PURE;
+
+ /* if src is negative, write '-' and return 1.
+ * if src is positive, write '+' and return 1.
+ * otherwise return 0 */
+-size_t fmt_plusminus(char *dest,int src) __pure__;
++size_t fmt_plusminus(char *dest,int src) __PURE;
+
+ /* if src is negative, write '-' and return 1.
+ * otherwise return 0. */
+-size_t fmt_minus(char *dest,int src) __pure__;
++size_t fmt_minus(char *dest,int src) __PURE;
+
+ /* copy str to dest until \0 byte, return number of copied bytes. */
+ /* fmt_str(NULL,str) == strlen(str) */
+@@ -108,11 +114,11 @@ size_t fmt_minus(char *dest,int src) __p
+ * This is more efficient because strcat needs to scan the string to
+ * find the end and append.
+ */
+-size_t fmt_str(char *dest,const char *src) __pure__;
++size_t fmt_str(char *dest,const char *src) __PURE;
+
+ /* copy str to dest until \0 byte or limit bytes copied.
+ * return number of copied bytes. */
+-size_t fmt_strn(char *dest,const char *src,size_t limit) __pure__;
++size_t fmt_strn(char *dest,const char *src,size_t limit) __PURE;
+
+ /* copy n bytes from src to dest, return n */
+ static inline size_t fmt_copybytes(char* dest,const char* src,size_t n) {
+@@ -124,56 +130,56 @@ static inline size_t fmt_copybytes(char*
+ * write padlen-srclen spaces, if that is >= 0. Then copy srclen
+ * characters from src. Truncate only if total length is larger than
+ * maxlen. Return number of characters written. */
+-size_t fmt_pad(char* dest,const char* src,size_t srclen,size_t padlen,size_t maxlen) __pure__;
++size_t fmt_pad(char* dest,const char* src,size_t srclen,size_t padlen,size_t maxlen) __PURE;
+
+ /* "foo" -> "foo "
+ * append padlen-srclen spaces after dest, if that is >= 0. Truncate
+ * only if total length is larger than maxlen. Return number of
+ * characters written. */
+-size_t fmt_fill(char* dest,size_t srclen,size_t padlen,size_t maxlen) __pure__;
++size_t fmt_fill(char* dest,size_t srclen,size_t padlen,size_t maxlen) __PURE;
+
+ /* 1 -> "1", 4900 -> "4.9k", 2300000 -> "2.3M" */
+-size_t fmt_human(char* dest,unsigned long long l) __pure__;
++size_t fmt_human(char* dest,unsigned long long l) __PURE;
+
+ /* 1 -> "1", 4900 -> "4.8k", 2300000 -> "2.2M" */
+-size_t fmt_humank(char* dest,unsigned long long l) __pure__;
++size_t fmt_humank(char* dest,unsigned long long l) __PURE;
+
+ /* "Sun, 06 Nov 1994 08:49:37 GMT" */
+ size_t fmt_httpdate(char* dest,time_t t); /* not marked pure because it calls gmtime */
+
+ /* "2014-05-27T19:22:16.247Z" */
+-size_t fmt_iso8601(char* dest,time_t t) __pure__;
++size_t fmt_iso8601(char* dest,time_t t) __PURE;
+
+ #define FMT_UTF8 5
+ #define FMT_ASN1LENGTH 17 /* enough space to hold 2^128-1 */
+ #define FMT_ASN1TAG 19 /* enough space to hold 2^128-1 */
+
+ /* some variable length encodings for integers */
+-size_t fmt_utf8(char* dest,uint32_t n) __pure__; /* can store 0-0x7fffffff */
+-size_t fmt_asn1derlength(char* dest,unsigned long long l) __pure__; /* 0-0x7f: 1 byte, above that 1+bytes_needed bytes */
+-size_t fmt_asn1dertag(char* dest,unsigned long long l) __pure__; /* 1 byte for each 7 bits; upper bit = more bytes coming */
++size_t fmt_utf8(char* dest,uint32_t n) __PURE; /* can store 0-0x7fffffff */
++size_t fmt_asn1derlength(char* dest,unsigned long long l) __PURE; /* 0-0x7f: 1 byte, above that 1+bytes_needed bytes */
++size_t fmt_asn1dertag(char* dest,unsigned long long l) __PURE; /* 1 byte for each 7 bits; upper bit = more bytes coming */
+
+ /* Google Protocol Buffers, https://developers.google.com/protocol-buffers/docs/encoding */
+-size_t fmt_varint(char* dest,unsigned long long l) __pure__; /* protocol buffers encoding; like asn1dertag but little endian */
+-size_t fmt_pb_tag(char* dest,size_t fieldno,unsigned char type) __pure__; /* protocol buffer tag */
+-size_t fmt_pb_type0_int(char* dest,unsigned long long l) __pure__; /* protocol buffers encoding: type 0 bool/enum/int32/uint32/int64/uint64 */
+-size_t fmt_pb_type0_sint(char* dest,signed long long l) __pure__;/* protocol buffers encoding: type 0 sint32/sint64 */
+-size_t fmt_pb_type1_double(char* dest,double d) __pure__; /* protocol buffers encoding: double (64-bit little endian blob) */
+-size_t fmt_pb_type1_fixed64(char* dest,uint64_t l) __pure__; /* protocol buffers encoding: 64-bit little endian blob */
++size_t fmt_varint(char* dest,unsigned long long l) __PURE; /* protocol buffers encoding; like asn1dertag but little endian */
++size_t fmt_pb_tag(char* dest,size_t fieldno,unsigned char type) __PURE; /* protocol buffer tag */
++size_t fmt_pb_type0_int(char* dest,unsigned long long l) __PURE; /* protocol buffers encoding: type 0 bool/enum/int32/uint32/int64/uint64 */
++size_t fmt_pb_type0_sint(char* dest,signed long long l) __PURE;/* protocol buffers encoding: type 0 sint32/sint64 */
++size_t fmt_pb_type1_double(char* dest,double d) __PURE; /* protocol buffers encoding: double (64-bit little endian blob) */
++size_t fmt_pb_type1_fixed64(char* dest,uint64_t l) __PURE; /* protocol buffers encoding: 64-bit little endian blob */
+
+ /* fmt_pb_type2_string can return 0 if (s,l) is clearly invalid */
+-size_t fmt_pb_type2_string(char* dest,const char* s,size_t l) __pure__; /* protocol buffers encoding: varint length + blob */
+-size_t fmt_pb_type5_float(char* dest,float f) __pure__; /* protocol buffers encoding: float (32-bit little endian blob) */
+-size_t fmt_pb_type5_fixed32(char* dest,uint32_t l) __pure__; /* protocol buffers encoding: 32-bit little endian blob */
+-
+-size_t fmt_pb_int(char* dest,size_t fieldno,unsigned long long l) __pure__;
+-size_t fmt_pb_sint(char* dest,size_t fieldno,signed long long l) __pure__;
+-size_t fmt_pb_double(char* dest,size_t fieldno,double d) __pure__;
+-size_t fmt_pb_float(char* dest,size_t fieldno,float f) __pure__;
+-size_t fmt_pb_string(char* dest,size_t fieldno,const char* s,size_t l) __pure__;
++size_t fmt_pb_type2_string(char* dest,const char* s,size_t l) __PURE; /* protocol buffers encoding: varint length + blob */
++size_t fmt_pb_type5_float(char* dest,float f) __PURE; /* protocol buffers encoding: float (32-bit little endian blob) */
++size_t fmt_pb_type5_fixed32(char* dest,uint32_t l) __PURE; /* protocol buffers encoding: 32-bit little endian blob */
++
++size_t fmt_pb_int(char* dest,size_t fieldno,unsigned long long l) __PURE;
++size_t fmt_pb_sint(char* dest,size_t fieldno,signed long long l) __PURE;
++size_t fmt_pb_double(char* dest,size_t fieldno,double d) __PURE;
++size_t fmt_pb_float(char* dest,size_t fieldno,float f) __PURE;
++size_t fmt_pb_string(char* dest,size_t fieldno,const char* s,size_t l) __PURE;
+
+ /* fmt_netstring can return 0 if (src,len) is clearly invalid */
+-size_t fmt_netstring(char* dest,const char* src,size_t len) __pure__;
++size_t fmt_netstring(char* dest,const char* src,size_t len) __PURE;
+
+ /* Marshaling helper functions.
+ * Escape one character, no matter if it needs escaping or not.
+@@ -185,27 +191,27 @@ size_t fmt_netstring(char* dest,const ch
+ * unicode codepoint) may be limited to 0x7f, 0xff or 0x10ffff. */
+
+ /* XML escaping: '&' -> '&amp;', '<' -> '&lt;', 'ö' -> '&#xf6;' */
+-size_t fmt_escapecharxml(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharxml(char* dest,uint32_t ch) __PURE;
+ /* HTML escaping is the same as XML escaping. */
+-size_t fmt_escapecharhtml(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharhtml(char* dest,uint32_t ch) __PURE;
+
+ /* JSON escaping: '\' -> '\\', '"' -> '\"', 'ö' -> '\u00f6' */
+-size_t fmt_escapecharjson(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharjson(char* dest,uint32_t ch) __PURE;
+
+ /* MIME quoted-printable escaping: 'ö' -> '=f6', characters > 0xff not supported */
+-size_t fmt_escapecharquotedprintable(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharquotedprintable(char* dest,uint32_t ch) __PURE;
+
+ /* MIME quoted-printable escaping with UTF-8: 'ö' -> '=c3=b6', characters > 0x7fffffff not supported */
+-size_t fmt_escapecharquotedprintableutf8(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharquotedprintableutf8(char* dest,uint32_t ch) __PURE;
+
+ /* C99 style escaping: '\' -> '\\', newline -> '\n', 0xc2 -> '\302' */
+-size_t fmt_escapecharc(char* dest,uint32_t ch) __pure__;
++size_t fmt_escapecharc(char* dest,uint32_t ch) __PURE;
+
+ /* internal functions, may be independently useful */
+ char fmt_tohex(char c) __attribute__((__const__));
+
+ #define fmt_strm(b,...) fmt_strm_internal(b,__VA_ARGS__,(char*)0)
+-size_t fmt_strm_internal(char* dest,...) __pure__;
++size_t fmt_strm_internal(char* dest,...) __PURE;
+
+ #ifndef MAX_ALLOCA
+ #define MAX_ALLOCA 100000
+--- a/str.h
++++ b/str.h
+@@ -8,8 +8,14 @@
+ extern "C" {
+ #endif
+
+-#ifndef __pure__
+-#define __pure__
++#ifndef __has_attribute
++ #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
+ #endif
+
+ /* str_copy copies leading bytes from in to out until \0.
+@@ -21,7 +27,7 @@ size_t str_copy(char *out,const char *in
+ * equal to, or greater than the string b[0], b[1], ..., b[m-1]=='\0'.
+ * If the strings are different, str_diff does not read bytes past the
+ * first difference. */
+-int str_diff(const char *a,const char *b) __pure__;
++int str_diff(const char *a,const char *b) __PURE;
+
+ /* str_diffn returns negative, 0, or positive, depending on whether the
+ * string a[0], a[1], ..., a[n]=='\0' is lexicographically smaller than,
+@@ -29,24 +35,24 @@ int str_diff(const char *a,const char *b
+ * If the strings are different, str_diffn does not read bytes past the
+ * first difference. The strings will be considered equal if the first
+ * limit characters match. */
+-int str_diffn(const char *a,const char *b,size_t limit) __pure__;
++int str_diffn(const char *a,const char *b,size_t limit) __PURE;
+
+ #ifdef __dietlibc__
+ #include <string.h>
+ #define str_len(foo) strlen(foo)
+ #else
+ /* str_len returns the index of \0 in s */
+-size_t str_len(const char *s) __pure__;
++size_t str_len(const char *s) __PURE;
+ #endif
+
+ /* str_chr returns the index of the first occurance of needle or \0 in haystack */
+-size_t str_chr(const char *haystack,char needle) __pure__;
++size_t str_chr(const char *haystack,char needle) __PURE;
+
+ /* str_rchr returns the index of the last occurance of needle or \0 in haystack */
+-size_t str_rchr(const char *haystack,char needle) __pure__;
++size_t str_rchr(const char *haystack,char needle) __PURE;
+
+ /* str_start returns 1 if the b is a prefix of a, 0 otherwise */
+-int str_start(const char *a,const char *b) __pure__;
++int str_start(const char *a,const char *b) __PURE;
+
+ /* convenience shortcut to test for string equality */
+ #define str_equal(s,t) (!str_diff((s),(t)))
+--- a/stralloc.h
++++ b/stralloc.h
+@@ -2,16 +2,22 @@
+ #ifndef STRALLOC_H
+ #define STRALLOC_H
+
++#ifndef __has_attribute
++ #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
++#endif
++
+ #include <stddef.h>
+
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
+
+-#ifndef __pure__
+-#define __pure__
+-#endif
+-
+ /* stralloc is the internal data structure all functions are working on.
+ * s is the string.
+ * len is the used length of the string.
+@@ -101,17 +107,17 @@ static inline int stralloc_APPEND(strall
+ /* stralloc_starts returns 1 if the \0-terminated string in "in", without
+ * the terminating \0, is a prefix of the string stored in sa. Otherwise
+ * it returns 0. sa must already be allocated. */
+-int stralloc_starts(stralloc* sa,const char* in) __pure__;
++int stralloc_starts(stralloc* sa,const char* in) __PURE;
+
+ /* stralloc_diff returns negative, 0, or positive, depending on whether
+ * a is lexicographically smaller than, equal to, or greater than the
+ * string b. */
+-int stralloc_diff(const stralloc* a,const stralloc* b) __pure__;
++int stralloc_diff(const stralloc* a,const stralloc* b) __PURE;
+
+ /* stralloc_diffs returns negative, 0, or positive, depending on whether
+ * a is lexicographically smaller than, equal to, or greater than the
+ * string b[0], b[1], ..., b[n]=='\0'. */
+-int stralloc_diffs(const stralloc* a,const char* b) __pure__;
++int stralloc_diffs(const stralloc* a,const char* b) __PURE;
+
+ #define stralloc_equal(a,b) (!stralloc_diff((a),(b)))
+ #define stralloc_equals(a,b) (!stralloc_diffs((a),(b)))
+--- a/scan.h
++++ b/scan.h
+@@ -15,8 +15,14 @@
+ extern "C" {
+ #endif
+
+-#ifndef __pure__
+-#define __pure__
++#ifndef __has_attribute
++ #define __has_attribute(x) 0
++#endif
++
++#if __has_attribute(pure)
++#define __PURE __attribute__ ((pure))
++#else
++#define __PURE
+ #endif
+
+ /* This file declared functions used to decode / scan / unmarshal
+@@ -84,18 +90,18 @@ size_t scan_double(const char *in, doubl
+ size_t scan_plusminus(const char *src,signed int *dest);
+
+ /* return the highest integer n<=limit so that isspace(in[i]) for all 0<=i<=n */
+-size_t scan_whitenskip(const char *in,size_t limit) __pure__;
++size_t scan_whitenskip(const char *in,size_t limit) __PURE;
+
+ /* return the highest integer n<=limit so that !isspace(in[i]) for all 0<=i<=n */
+-size_t scan_nonwhitenskip(const char *in,size_t limit) __pure__;
++size_t scan_nonwhitenskip(const char *in,size_t limit) __PURE;
+
+ /* return the highest integer n<=limit so that in[i] is element of
+ * charset (ASCIIZ string) for all 0<=i<=n */
+-size_t scan_charsetnskip(const char *in,const char *charset,size_t limit) __pure__;
++size_t scan_charsetnskip(const char *in,const char *charset,size_t limit) __PURE;
+
+ /* return the highest integer n<=limit so that in[i] is not element of
+ * charset (ASCIIZ string) for all 0<=i<=n */
+-size_t scan_noncharsetnskip(const char *in,const char *charset,size_t limit) __pure__;
++size_t scan_noncharsetnskip(const char *in,const char *charset,size_t limit) __PURE;
+
+ /* try to parse ASCII GMT date; does not understand time zones. */
+ /* example dates:
+@@ -103,17 +109,17 @@ size_t scan_noncharsetnskip(const char *
+ * "Sunday, 06-Nov-94 08:49:37 GMT"
+ * "Sun Nov 6 08:49:37 1994"
+ */
+-size_t scan_httpdate(const char *in,time_t *t) __pure__;
++size_t scan_httpdate(const char *in,time_t *t) __PURE;
+
+ /* try to parse ASCII ISO-8601 date; does not understand time zones. */
+ /* example date: "2014-05-27T19:22:16Z" */
+-size_t scan_iso8601(const char* in,struct timespec* t) __pure__;
++size_t scan_iso8601(const char* in,struct timespec* t) __PURE;
+
+ /* some variable length encodings for integers */
+-size_t scan_utf8(const char* in,size_t len,uint32_t* n) __pure__;
+-size_t scan_utf8_sem(const char* in,size_t len,uint32_t* n) __pure__;
+-size_t scan_asn1derlength(const char* in,size_t len,unsigned long long* n) __pure__;
+-size_t scan_asn1dertag(const char* in,size_t len,unsigned long long* n) __pure__;
++size_t scan_utf8(const char* in,size_t len,uint32_t* n) __PURE;
++size_t scan_utf8_sem(const char* in,size_t len,uint32_t* n) __PURE;
++size_t scan_asn1derlength(const char* in,size_t len,unsigned long long* n) __PURE;
++size_t scan_asn1dertag(const char* in,size_t len,unsigned long long* n) __PURE;
+
+ /* Google protocol buffers */
+ /* A protocol buffer is a sequence of (tag,value).
+@@ -121,16 +127,16 @@ size_t scan_asn1dertag(const char* in,si
+ * which field in your struct is being sent. Integers must have type
+ * 0, double type 1, strings type 2 and floats type 5. However, you
+ * have to check this yourself.
+- */
+-size_t scan_varint(const char* in,size_t len, unsigned long long* n) __pure__; /* internal */
+-size_t scan_pb_tag(const char* in,size_t len, size_t* fieldno,unsigned char* type) __pure__;
++ */
++size_t scan_varint(const char* in,size_t len, unsigned long long* n) __PURE; /* internal */
++size_t scan_pb_tag(const char* in,size_t len, size_t* fieldno,unsigned char* type) __PURE;
+
+ /* Then, depending on the field number, validate the type and call the
+ * corresponding of these functions to parse the value */
+-size_t scan_pb_type0_int(const char* in,size_t len,unsigned long long* l) __pure__;
+-size_t scan_pb_type0_sint(const char* in,size_t len,signed long long* l) __pure__;
+-size_t scan_pb_type1_double(const char* in,size_t len,double* d) __pure__;
+-size_t scan_pb_type1_fixed64(const char* in,size_t len,uint64_t* b) __pure__;
++size_t scan_pb_type0_int(const char* in,size_t len,unsigned long long* l) __PURE;
++size_t scan_pb_type0_sint(const char* in,size_t len,signed long long* l) __PURE;
++size_t scan_pb_type1_double(const char* in,size_t len,double* d) __PURE;
++size_t scan_pb_type1_fixed64(const char* in,size_t len,uint64_t* b) __PURE;
+ /* NOTE: scan_pb_type2_stringlen only parses the length of the string,
+ * not the string itself. It will return the number of bytes parsed in
+ * the length, then set slen to the value of the length integer it just
+@@ -141,9 +147,9 @@ size_t scan_pb_type1_fixed64(const char*
+ * parsing early without having to read and allocate memory for the rest
+ * (potentially gigabytes) of the data announced by one unreasonable
+ * string length value. */
+-size_t scan_pb_type2_stringlen(const char* in,size_t len,const char** string, size_t* slen) __pure__;
+-size_t scan_pb_type5_float(const char* in,size_t len,float* f) __pure__;
+-size_t scan_pb_type5_fixed32(const char* in,size_t len,uint32_t* b) __pure__;
++size_t scan_pb_type2_stringlen(const char* in,size_t len,const char** string, size_t* slen) __PURE;
++size_t scan_pb_type5_float(const char* in,size_t len,float* f) __PURE;
++size_t scan_pb_type5_fixed32(const char* in,size_t len,uint32_t* b) __PURE;
+
+ /* parse a netstring, input buffer is in (len bytes).
+ * if parsing is successful:
+@@ -153,7 +159,7 @@ size_t scan_pb_type5_fixed32(const char*
+ * return 0
+ * Note: *dest will point inside the input buffer!
+ */
+-size_t scan_netstring(const char* in,size_t len,char** dest,size_t* slen) __pure__;
++size_t scan_netstring(const char* in,size_t len,char** dest,size_t* slen) __PURE;
+
+ /* internal function that might be useful independently */
+ /* convert from hex ASCII, return 0 to 15 for success or -1 for failure */
+--- a/scan/scan_httpdate.c
++++ b/scan/scan_httpdate.c
+@@ -1,5 +1,4 @@
+ #define _GNU_SOURCE
+-#define __deprecated__
+ #include "scan.h"
+ #include "byte.h"
+ #include "case.h"
+--- a/scan/scan_iso8601.c
++++ b/scan/scan_iso8601.c
+@@ -1,5 +1,4 @@
+ #define _GNU_SOURCE
+-#define __deprecated__
+ #include "scan.h"
+ #include "byte.h"
+ #include "case.h"
diff --git a/meta-networking/recipes-support/ncp/libowfat_0.31.bb b/meta-networking/recipes-support/ncp/libowfat_0.31.bb
deleted file mode 100644
index 4b072f7e7d..0000000000
--- a/meta-networking/recipes-support/ncp/libowfat_0.31.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "reimplement libdjb"
-DESCRIPTION = "libowfat is a library of general purpose APIs extracted from Dan \
-Bernstein's software (libdjb), reimplemented and covered by the GNU \
-General Public License Version 2 (no later versions)."
-HOMEPAGE = "http://www.fefe.de/libowfat"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-SRC_URI = "https://www.fefe.de/${BPN}/${BP}.tar.xz"
-SRC_URI[md5sum] = "120798fab86cfd72dc6b12284d248dd0"
-SRC_URI[sha256sum] = "d1e4ac1cfccbb7dc51d77d96398e6302d229ba7538158826c84cb4254c7e8a12"
-
-EXTRA_OEMAKE = "\
- DIET= \
- CC='${BUILD_CC} ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}' \
- CCC='${CC}' CFLAGS='${CFLAGS} -I.' CFLAGS_OPT='${CFLAGS} -I.' \
-"
-
-do_install() {
- make install \
- DESTDIR=${D} \
- INCLUDEDIR=${includedir}/${BPN} \
- LIBDIR=${libdir} \
- MAN3DIR=${mandir}/man3
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/ncp/libowfat_0.32.bb b/meta-networking/recipes-support/ncp/libowfat_0.32.bb
new file mode 100644
index 0000000000..94f36f904a
--- /dev/null
+++ b/meta-networking/recipes-support/ncp/libowfat_0.32.bb
@@ -0,0 +1,32 @@
+SUMMARY = "reimplement libdjb"
+DESCRIPTION = "libowfat is a library of general purpose APIs extracted from Dan \
+Bernstein's software (libdjb), reimplemented and covered by the GNU \
+General Public License Version 2 (no later versions)."
+HOMEPAGE = "http://www.fefe.de/libowfat"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
+
+SRC_URI = "https://www.fefe.de/${BPN}/${BP}.tar.xz \
+ file://0001-Depend-on-haveuint128.h-for-umult64.c.patch \
+ file://0001-replace-__pure__-with-compiler-attribute-pure.patch \
+ "
+SRC_URI[md5sum] = "ee015ccf45cb2bc61c942642038c2bdc"
+SRC_URI[sha256sum] = "f4b9b3d9922dc25bc93adedf9e9ff8ddbebaf623f14c8e7a5f2301bfef7998c1"
+
+EXTRA_OEMAKE = "\
+ DIET= \
+ CC='${BUILD_CC} ${BUILD_CPPFLAGS} ${BUILD_CFLAGS} ${BUILD_LDFLAGS}' \
+ CCC='${CC}' CFLAGS='${CFLAGS} -I.' CFLAGS_OPT='${CFLAGS} -I.' \
+"
+
+do_install() {
+ make install \
+ DESTDIR=${D} \
+ INCLUDEDIR=${includedir} \
+ LIBDIR=${libdir} \
+ MAN3DIR=${mandir}/man3
+}
+
+ALLOW_EMPTY:${PN} = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb
index f42223b1f8..516beede5f 100644
--- a/meta-networking/recipes-support/ncp/ncp_1.2.4.bb
+++ b/meta-networking/recipes-support/ncp/ncp_1.2.4.bb
@@ -3,8 +3,8 @@ DESCRIPTION = "ncp is a utility for copying files in a LAN. It has absolutely no
security or integrity checking, no throttling, no features, except \
one: you don't have to type the coordinates of your peer."
HOMEPAGE = "http://www.fefe.de/ncp"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
DEPENDS = "libowfat"
SRC_URI = "https://dl.fefe.de/${BP}.tar.bz2"
diff --git a/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch b/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch
deleted file mode 100644
index dc58b5b79e..0000000000
--- a/meta-networking/recipes-support/ndisc6/ndisc6/0001-replace-VLAIS-with-malloc-free-pair.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 3a7d5396e633e6c02a4583be7faf3d79d0d33748 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Aug 2017 11:14:41 -0700
-Subject: [PATCH 1/2] replace VLAIS with malloc/free pair
-
-Makes it compatible with non-gnu compilers
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/trace-icmp.c | 7 +++++--
- src/trace-tcp.c | 14 ++++++++++----
- src/trace-udp.c | 7 +++++--
- 3 files changed, 20 insertions(+), 8 deletions(-)
-
-diff --git a/src/trace-icmp.c b/src/trace-icmp.c
-index 842938e..c76cb54 100644
---- a/src/trace-icmp.c
-+++ b/src/trace-icmp.c
-@@ -43,16 +43,19 @@ send_echo_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
- struct
- {
- struct icmp6_hdr ih;
-- uint8_t payload[plen - sizeof (struct icmp6_hdr)];
-+ uint8_t *payload;
- } packet;
- memset (&packet, 0, plen);
-+ packet.payload = malloc(plen - sizeof (struct icmp6_hdr));
-
- packet.ih.icmp6_type = ICMP6_ECHO_REQUEST;
- packet.ih.icmp6_id = htons (getpid ());
- packet.ih.icmp6_seq = htons ((ttl << 8) | (n & 0xff));
- (void)port;
-
-- return send_payload (fd, &packet.ih, plen, ttl);
-+ ssize_t ret = send_payload (fd, &packet.ih, plen, ttl);
-+ free(packet.payload);
-+ return ret;
- }
-
-
-diff --git a/src/trace-tcp.c b/src/trace-tcp.c
-index 940f918..62d22ff 100644
---- a/src/trace-tcp.c
-+++ b/src/trace-tcp.c
-@@ -54,10 +54,11 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
- struct
- {
- struct tcphdr th;
-- uint8_t payload[plen - sizeof (struct tcphdr)];
-+ uint8_t *payload;
- } packet;
-
- memset (&packet, 0, sizeof (packet));
-+ packet.payload = malloc(plen - sizeof (struct tcphdr));
- packet.th.th_sport = sport;
- packet.th.th_dport = port;
- packet.th.th_seq = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ());
-@@ -65,7 +66,9 @@ send_syn_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
- packet.th.th_flags = TH_SYN | (ecn ? (TH_ECE | TH_CWR) : 0);
- packet.th.th_win = htons (TCP_WINDOW);
-
-- return send_payload (fd, &packet, plen, ttl);
-+ ssize_t ret = send_payload (fd, &packet, plen, ttl);
-+ free(packet.payload);
-+ return ret;
- }
-
-
-@@ -131,10 +134,11 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
- struct
- {
- struct tcphdr th;
-- uint8_t payload[plen - sizeof (struct tcphdr)];
-+ uint8_t *payload;
- } packet;
-
- memset (&packet, 0, sizeof (packet));
-+ packet.payload = malloc(plen - sizeof (struct tcphdr));
- packet.th.th_sport = sport;
- packet.th.th_dport = port;
- packet.th.th_ack = htonl ((ttl << 24) | (n << 16) | (uint16_t)getpid ());
-@@ -142,7 +146,9 @@ send_ack_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
- packet.th.th_flags = TH_ACK;
- packet.th.th_win = htons (TCP_WINDOW);
-
-- return send_payload (fd, &packet, plen, ttl);
-+ ssize_t ret = send_payload (fd, &packet, plen, ttl);
-+ free(packet.payload);
-+ return ret;
- }
-
-
-diff --git a/src/trace-udp.c b/src/trace-udp.c
-index 4adde6b..a6cbb07 100644
---- a/src/trace-udp.c
-+++ b/src/trace-udp.c
-@@ -46,9 +46,10 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
- struct
- {
- struct udphdr uh;
-- uint8_t payload[plen - sizeof (struct udphdr)];
-+ uint8_t *payload;
- } packet;
- memset (&packet, 0, plen);
-+ packet.payload = malloc(plen - sizeof (struct udphdr));
-
- (void)n;
- packet.uh.uh_sport = sport;
-@@ -61,7 +62,9 @@ send_udp_probe (int fd, unsigned ttl, unsigned n, size_t plen, uint16_t port)
- /*if (plen > sizeof (struct udphdr))
- packet.payload[0] = (uint8_t)ttl;*/
-
-- return send_payload (fd, &packet, plen, ttl);
-+ ssize_t ret = send_payload (fd, &packet, plen, ttl);
-+ free(packet.payload);
-+ return ret;
- }
-
-
---
-2.14.1
-
diff --git a/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch b/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch
deleted file mode 100644
index 3cc2ba80c2..0000000000
--- a/meta-networking/recipes-support/ndisc6/ndisc6/0002-Do-not-undef-_GNU_SOURCE.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2a50154fbce38fd36be7e14f5cd4a8b03c65c72f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Aug 2017 11:15:37 -0700
-Subject: [PATCH 2/2] Do not undef _GNU_SOURCE
-
-There are functions from tcp.h which are under _GNU_SOURCE
-in musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/trace-tcp.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/trace-tcp.c b/src/trace-tcp.c
-index 62d22ff..380008e 100644
---- a/src/trace-tcp.c
-+++ b/src/trace-tcp.c
-@@ -21,7 +21,6 @@
- # include <config.h>
- #endif
-
--#undef _GNU_SOURCE
- #define _DEFAULT_SOURCE 1
-
- #include <string.h>
---
-2.14.1
-
diff --git a/meta-networking/recipes-support/ndisc6/ndisc6_1.0.7.bb b/meta-networking/recipes-support/ndisc6/ndisc6_1.0.7.bb
new file mode 100644
index 0000000000..a5b9bd08b2
--- /dev/null
+++ b/meta-networking/recipes-support/ndisc6/ndisc6_1.0.7.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 = "c308ba5370d66acc44d411f12d59af61d522b91a"
+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_git.bb b/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
deleted file mode 100644
index cebc1d9cd8..0000000000
--- a/meta-networking/recipes-support/ndisc6/ndisc6_git.bb
+++ /dev/null
@@ -1,76 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-PV = "1.0.4+git${SRCPV}"
-SRCREV = "4c794b5512d23c649def1f94a684225dcbb6ac3e"
-SRC_URI = "git://git.remlab.net/git/ndisc6.git;protocol=http \
- file://0001-replace-VLAIS-with-malloc-free-pair.patch \
- file://0002-Do-not-undef-_GNU_SOURCE.patch \
- file://0001-autogen-Do-not-symlink-gettext.h-from-build-host.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools gettext
-
-EXTRA_OECONF += "PERL=${USRBINPATH}/perl"
-
-LDFLAGS += "-fuse-ld=gold"
-LDFLAGS_remove_riscv64 = "-fuse-ld=gold"
-
-TOOLCHAIN = "gcc"
-
-USE_NLS = "yes"
-
-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."
-DESCRITPION_${PN}-tcpspray6 = "Performs bandwidth measurements of TCP \
-sessions between the local system and a remote echo server in either IPv6 \
-or IPv4."
-
-DESCRITPION_${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-openbsd/0001-bundle-own-base64-encode-decode-functions.patch b/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch
index 0966b65808..929f63f4a9 100644
--- a/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch
+++ b/meta-networking/recipes-support/netcat/netcat-openbsd/0001-bundle-own-base64-encode-decode-functions.patch
@@ -1,40 +1,47 @@
-From ccd166b73eaae4dd1e1785c63ceb9b303568ed46 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 21 Mar 2017 11:30:49 -0700
+From 3da48ec13a44b71ca51adbc803b42c1b29a43f57 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 24 Jul 2018 14:03:51 +0800
Subject: [PATCH] bundle own base64 encode/decode functions
Not all libc implementations provide it.
as an aside libresolv is no longer needed
+Upstream-Status: Pending
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+Update to version 1.190-2
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
Makefile | 4 +-
base64.c | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- netcat.c | 2 +
+ netcat.c | 3 +
socks.c | 3 +
- 4 files changed, 320 insertions(+), 2 deletions(-)
+ 4 files changed, 321 insertions(+), 2 deletions(-)
create mode 100644 base64.c
-Index: netcat-openbsd-1.105/Makefile
-===================================================================
---- netcat-openbsd-1.105.orig/Makefile
-+++ netcat-openbsd-1.105/Makefile
-@@ -1,9 +1,9 @@
- # $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $
+diff --git a/Makefile b/Makefile
+index 8247cfd..b8d8547 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,10 +1,10 @@
+ # $OpenBSD: Makefile,v 1.7 2015/09/11 21:07:01 beck Exp $
PROG= nc
-SRCS= netcat.c atomicio.c socks.c
+SRCS= netcat.c atomicio.c socks.c base64.c
--LIBS= `pkg-config --libs libbsd` -lresolv
-+LIBS= `pkg-config --libs libbsd`
+ PKG_CONFIG ?= pkg-config
+-LIBS= `$(PKG_CONFIG) --libs libbsd` -lresolv
++LIBS= `$(PKG_CONFIG) --libs libbsd`
OBJS= $(SRCS:.c=.o)
CFLAGS= -g -O2
LDFLAGS= -Wl,--no-add-needed
-Index: netcat-openbsd-1.105/base64.c
-===================================================================
+diff --git a/base64.c b/base64.c
+new file mode 100644
+index 0000000..b0ee6c2
--- /dev/null
-+++ netcat-openbsd-1.105/base64.c
++++ b/base64.c
@@ -0,0 +1,313 @@
+/*
+ * Copyright (c) 1996-1999 by Internet Software Consortium.
@@ -349,31 +356,34 @@ Index: netcat-openbsd-1.105/base64.c
+
+ return (tarindex);
+}
-Index: netcat-openbsd-1.105/netcat.c
-===================================================================
---- netcat-openbsd-1.105.orig/netcat.c
-+++ netcat-openbsd-1.105/netcat.c
-@@ -169,6 +169,9 @@ static int connect_with_timeout(int fd,
- socklen_t salen, int ctimeout);
+diff --git a/netcat.c b/netcat.c
+index a0fb51b..9c4ed23 100644
+--- a/netcat.c
++++ b/netcat.c
+@@ -240,6 +240,9 @@ static int connect_with_timeout(int fd, const struct sockaddr *sa,
+
static void quit();
-+int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
-+int b64_pton(char const *src, u_char *target, size_t targsize);
++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
++int b64_pton(char const *src, u_char *target, size_t targsize);
+
int
main(int argc, char *argv[])
{
-Index: netcat-openbsd-1.105/socks.c
-===================================================================
---- netcat-openbsd-1.105.orig/socks.c
-+++ netcat-openbsd-1.105/socks.c
+diff --git a/socks.c b/socks.c
+index 9068f39..c576f6b 100644
+--- a/socks.c
++++ b/socks.c
@@ -53,6 +53,9 @@
#define SOCKS_DOMAIN 3
#define SOCKS_IPV6 4
-+int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
-+int b64_pton(char const *src, u_char *target, size_t targsize);
++int b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize);
++int b64_pton(char const *src, u_char *target, size_t targsize);
+
int remote_connect(const char *, const char *, struct addrinfo);
int socks_connect(const char *, const char *, struct addrinfo,
const char *, const char *, struct addrinfo, int,
+--
+2.7.4
+
diff --git a/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb b/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb
deleted file mode 100644
index 9d7420f8c2..0000000000
--- a/meta-networking/recipes-support/netcat/netcat-openbsd_1.105.bb
+++ /dev/null
@@ -1,56 +0,0 @@
-require netcat.inc
-SUMMARY = "OpenBSD Netcat"
-HOMEPAGE = "http://ftp.debian.org"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee6bbaacb5db5f2973818f0902c3ae6f"
-
-DEPENDS += "glib-2.0 libbsd"
-do_patch[depends] = "quilt-native:do_populate_sysroot"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \
- ${DEBIAN_MIRROR}/main/n/netcat-openbsd/netcat-openbsd_${PV}-7.debian.tar.gz;name=netcat-patch;subdir=${BP} \
- file://0001-bundle-own-base64-encode-decode-functions.patch \
- "
-
-SRC_URI[netcat.md5sum] = "7e67b22f1ad41a1b7effbb59ff28fca1"
-SRC_URI[netcat.sha256sum] = "40653fe66c1516876b61b07e093d826e2a5463c5d994f1b7e6ce328f3edb211e"
-SRC_URI[netcat-patch.md5sum] = "e914f8eb7eda5c75c679dd77787ac76b"
-SRC_URI[netcat-patch.sha256sum] = "eee759327ffea293e81d0dde67921b7fcfcad279ffd7a2c9d037bbc8f882b363"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE += "'LDFLAGS=${LDFLAGS}'"
-
-do_configure[noexec] = "1"
-
-netcat_do_patch() {
- cd ${S}
- quilt pop -a || true
- if [ -d ${S}/.pc-netcat ]; then
- rm -rf ${S}/.pc
- mv ${S}/.pc-netcat ${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-netcat
-}
-
-do_unpack[cleandirs] += "${S}"
-
-python do_patch() {
- bb.build.exec_func('netcat_do_patch', d)
- bb.build.exec_func('patch_do_patch', d)
-}
-
-do_compile() {
- cd ${S}
- pkgrel=4
- oe_runmake CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\""
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 755 ${S}/nc ${D}${bindir}/nc.${BPN}
-}
-ALTERNATIVE_PRIORITY = "60"
diff --git a/meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb b/meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb
new file mode 100644
index 0000000000..20ad43a4d5
--- /dev/null
+++ b/meta-networking/recipes-support/netcat/netcat-openbsd_1.195.bb
@@ -0,0 +1,56 @@
+require netcat.inc
+SUMMARY = "OpenBSD Netcat"
+HOMEPAGE = "http://ftp.debian.org"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=f39e60ae4ea9fdb559c833be2e59de99"
+
+DEPENDS += "glib-2.0 libbsd"
+do_patch[depends] = "quilt-native:do_populate_sysroot"
+
+SRC_URI = "http://snapshot.debian.org/archive/debian/20181022T085404Z/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}.orig.tar.gz;name=netcat \
+ http://snapshot.debian.org/archive/debian/20181022T085404Z/pool/main/n/netcat-openbsd/netcat-openbsd_${PV}-1.debian.tar.xz;name=netcat-patch;subdir=${BP} \
+ file://0001-bundle-own-base64-encode-decode-functions.patch \
+ "
+
+SRC_URI[netcat.md5sum] = "219d5e49c45658e229a3bda63063a986"
+SRC_URI[netcat.sha256sum] = "0e283b2a214313c69447cd962c528ac19afb3ddfe606b25de6d179f187cde4c3"
+SRC_URI[netcat-patch.md5sum] = "7eba241989dbef6caa78ec4bc8e35151"
+SRC_URI[netcat-patch.sha256sum] = "c6736fcbab5254cbbc52278993a951da1126e42800a297c27db297e332e2017e"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE += "'LDFLAGS=${LDFLAGS}'"
+
+do_configure[noexec] = "1"
+
+netcat_do_patch() {
+ cd ${S}
+ quilt pop -a || true
+ if [ -d ${S}/.pc-netcat ]; then
+ rm -rf ${S}/.pc
+ mv ${S}/.pc-netcat ${S}/.pc
+ QUILT_PATCHES=${S}/debian/patches quilt pop -a
+ rm -rf ${S}/.pc
+ fi
+ QUILT_PATCHES=${S}/debian/patches quilt push -a
+ mv ${S}/.pc ${S}/.pc-netcat
+}
+
+do_unpack[cleandirs] += "${S}"
+
+python do_patch() {
+ bb.build.exec_func('netcat_do_patch', d)
+ bb.build.exec_func('patch_do_patch', d)
+}
+
+do_compile() {
+ cd ${S}
+ pkgrel=4
+ oe_runmake CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"${pkgrel}\\\"\""
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${S}/nc ${D}${bindir}/nc.${BPN}
+}
+ALTERNATIVE_PRIORITY = "60"
diff --git a/meta-networking/recipes-support/netcat/netcat.inc b/meta-networking/recipes-support/netcat/netcat.inc
index 15441645b0..9a8775b6c8 100644
--- a/meta-networking/recipes-support/netcat/netcat.inc
+++ b/meta-networking/recipes-support/netcat/netcat.inc
@@ -11,5 +11,5 @@ capabilities."
SECTION = "net"
inherit update-alternatives gettext pkgconfig
-ALTERNATIVE_${PN} = "nc"
+ALTERNATIVE:${PN} = "nc"
diff --git a/meta-networking/recipes-support/netcat/netcat/gettext.patch b/meta-networking/recipes-support/netcat/netcat/gettext.patch
new file mode 100644
index 0000000000..f2e5f99270
--- /dev/null
+++ b/meta-networking/recipes-support/netcat/netcat/gettext.patch
@@ -0,0 +1,16 @@
+Fix build with gettext 0.20.x
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -49,7 +49,7 @@ AC_SUBST(all_libraries)
+ dnl I18n support
+ ALL_LINGUAS="it sk"
+ AM_GNU_GETTEXT([external], need-ngettext)
+-AM_INTL_SUBDIR
++#AM_INTL_SUBDIR
+
+ dnl find resolver functions and the socket library on some broken OS
+ AC_LBL_LIBRARY_NET
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 d961af542c..54a4ea0b33 100644
--- a/meta-networking/recipes-support/netcat/netcat_0.7.1.bb
+++ b/meta-networking/recipes-support/netcat/netcat_0.7.1.bb
@@ -1,5 +1,5 @@
require netcat.inc
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
PR = "r3"
@@ -8,6 +8,7 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/netcat/netcat-${PV}.tar.bz2 \
file://obsolete_autoconf_macros.patch \
file://netcat-locale_h.patch \
file://make-netcat_flag_count_work.patch \
+ file://gettext.patch \
"
SRC_URI[md5sum] = "0a29eff1736ddb5effd0b1ec1f6fe0ef"
@@ -15,7 +16,9 @@ SRC_URI[sha256sum] = "b55af0bbdf5acc02d1eb6ab18da2acd77a400bafd074489003f3df0967
inherit autotools
-do_install_append() {
+CVE_PRODUCT = "netcat_project:netcat"
+
+do_install:append() {
install -d ${D}${bindir}
mv ${D}${bindir}/nc ${D}${bindir}/nc.${BPN}
}
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 a4a9c91c6c..f60bb9f104 100644
--- a/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
+++ b/meta-networking/recipes-support/netcf/netcf_0.2.8.bb
@@ -2,32 +2,34 @@ SUMMARY = "netcf"
DESCRIPTION = "netcf is a cross-platform network configuration library."
HOMEPAGE = "https://pagure.io/netcf"
SECTION = "libs"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=fb919cc88dbe06ec0b0bd50e001ccf1f"
SRCREV = "2c5d4255857531bc09d91dcd02e86545f29004d4"
PV .= "+git${SRCPV}"
-SRC_URI = "git://pagure.io/netcf.git;protocol=https \
+SRC_URI = "git://pagure.io/netcf.git;protocol=https;branch=master \
"
UPSTREAM_CHECK_GITTAGREGEX = "release-(?P<pver>(\d+(\.\d+)+))"
-DEPENDS += "augeas libnl libxslt libxml2 gnulib"
+DEPENDS += "augeas libnl libxslt libxml2"
+
+do_configure[depends] += "${MLPREFIX}gnulib:do_populate_sysroot"
S = "${WORKDIR}/git"
-inherit gettext autotools pkgconfig systemd
+inherit gettext autotools perlnative pkgconfig systemd
-EXTRA_OECONF_append_class-target = " --with-driver=redhat"
+EXTRA_OECONF:append:class-target = " --with-driver=redhat"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
PACKAGECONFIG[systemd] = "--with-sysinit=systemd,--with-sysinit=initscripts,"
EXTRA_AUTORECONF += "-I ${S}/gnulib/m4"
-do_configure_prepend() {
+do_configure:prepend() {
currdir=`pwd`
cd ${S}
@@ -47,7 +49,7 @@ do_configure_prepend() {
cd $currdir
}
-do_install_append() {
+do_install:append() {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
install -d ${D}${systemd_unitdir}/system
if [ -d "${D}${libdir}/systemd/system" ]; then
@@ -65,9 +67,9 @@ do_install_append() {
fi
}
-FILES_${PN} += " \
+FILES:${PN} += " \
${libdir} \
${nonarch_libdir} \
"
-SYSTEMD_SERVICE_${PN} = "netcf-transaction.service"
+SYSTEMD_SERVICE:${PN} = "netcf-transaction.service"
diff --git a/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch b/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch
new file mode 100644
index 0000000000..515737c8e5
--- /dev/null
+++ b/meta-networking/recipes-support/netperf/files/0001-netlib.c-Move-including-sched.h-out-og-function.patch
@@ -0,0 +1,50 @@
+From 51a092ebb36dcc6180ceb93a9777258e826d9990 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 26 Sep 2018 18:11:10 -0700
+Subject: [PATCH] netlib.c: Move including sched.h out og function
+
+The shutdown_control() has this code where system headers are being
+included inside function body and this results in compile errors on musl
+especially when sched.h is included because sched.h defines a macro
+which defines a static function. This means it ends up being a static
+function inside another function and compiler calls it out
+
+In function 'bind_to_specific_processor':
+|
+/mnt/a/yoe/build/tmp/work/i586-yoe-linux-musl/netperf/2.7.0+git999-r0/recipe-sysroot/usr/include/sched.h:102:1:
+error: invalid storage class for function '__CPU_AND_S'
+| __CPU_op_func_S(AND, &)
+| ^~~~~~~~~~~~~~~
+
+Moving the definition out of function definition fixes the problem
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/netlib.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/netlib.c b/src/netlib.c
+index 9258424..60b032d 100644
+--- a/src/netlib.c
++++ b/src/netlib.c
+@@ -2262,6 +2262,10 @@ shutdown_control()
+
+ }
+
++#if HAVE_SCHED_SETAFFINITY
++#include <sched.h>
++#endif
++
+ /*
+ bind_to_specific_processor will bind the calling process to the
+ processor in "processor" It has lots of ugly ifdefs to deal with
+@@ -2308,7 +2312,6 @@ bind_to_specific_processor(int processor_affinity, int use_cpu_map)
+ value will not tell you if you are bound vs unbound. */
+ bindprocessor(BINDPROCESS,getpid(),(cpu_t)mapped_affinity);
+ #elif HAVE_SCHED_SETAFFINITY
+-#include <sched.h>
+ /* in theory this should cover systems with more CPUs than bits in a
+ long, without having to specify __USE_GNU. we "cheat" by taking
+ defines from /usr/include/bits/sched.h, which we ass-u-me is
diff --git a/meta-networking/recipes-support/netperf/files/0001-nettest_omni-Remove-duplicate-variable-definitions.patch b/meta-networking/recipes-support/netperf/files/0001-nettest_omni-Remove-duplicate-variable-definitions.patch
new file mode 100644
index 0000000000..08376417ba
--- /dev/null
+++ b/meta-networking/recipes-support/netperf/files/0001-nettest_omni-Remove-duplicate-variable-definitions.patch
@@ -0,0 +1,37 @@
+From 6dd5b2b1f3ae3479647e2ef66e390d031066defe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Aug 2020 09:57:23 -0700
+Subject: [PATCH] nettest_omni: Remove duplicate variable definitions
+
+These defines are already defined in nettest_bsd.c and exported by
+nettest_bsd.h this should fix build with -fno-common
+
+Upstream-Status: Submitted [https://github.com/HewlettPackard/netperf/pull/46]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nettest_omni.c | 8 --------
+ 1 file changed, 8 deletions(-)
+
+diff --git a/src/nettest_omni.c b/src/nettest_omni.c
+index 852eeb1..862088a 100644
+--- a/src/nettest_omni.c
++++ b/src/nettest_omni.c
+@@ -458,14 +458,6 @@ static int client_port_max = 65535;
+
+ /* different options for the sockets */
+
+-int
+- loc_nodelay, /* don't/do use NODELAY locally */
+- rem_nodelay, /* don't/do use NODELAY remotely */
+- loc_sndavoid, /* avoid send copies locally */
+- loc_rcvavoid, /* avoid recv copies locally */
+- rem_sndavoid, /* avoid send copies remotely */
+- rem_rcvavoid; /* avoid recv_copies remotely */
+-
+ extern int
+ loc_tcpcork,
+ rem_tcpcork,
+--
+2.28.0
+
diff --git a/meta-networking/recipes-support/netperf/files/netserver.service b/meta-networking/recipes-support/netperf/files/netserver.service
new file mode 100644
index 0000000000..0876a0d223
--- /dev/null
+++ b/meta-networking/recipes-support/netperf/files/netserver.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Netperf Benchmark Server
+After=network.target
+
+[Service]
+ExecStart=/usr/sbin/netserver -D
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/netperf/files/netserver_permissions.patch b/meta-networking/recipes-support/netperf/files/netserver_permissions.patch
new file mode 100644
index 0000000000..55316363e0
--- /dev/null
+++ b/meta-networking/recipes-support/netperf/files/netserver_permissions.patch
@@ -0,0 +1,29 @@
+From 78c9ae7d9a6735575bc72dd28a19b2bc3a251981 Mon Sep 17 00:00:00 2001
+From: Andrew Elble <aweits@rit.edu>
+Date: Mon, 8 Oct 2018 14:31:20 -0400
+Subject: [PATCH] netserver: don't change permissions on /dev/null
+
+the (now default) suppress_debug=1 changes permissions on /dev/null
+to 0644. Don't do this.
+
+Upstream-Status: Pending [https://github.com/HewlettPackard/netperf/pull/27/commits/78c9ae7d9a6735575bc72dd28a19b2bc3a251981]
+Signed-off-by: Ashish Sharma <asharma@mvista.com>
+
+---
+ src/netserver.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/netserver.c b/src/netserver.c
+index 00c8d23..86a1c45 100644
+--- a/src/netserver.c
++++ b/src/netserver.c
+@@ -278,7 +278,8 @@ open_debug_file()
+
+ #if !defined(WIN32)
+
+- chmod(FileName,0644);
++ if (!suppress_debug)
++ chmod(FileName,0644);
+
+ /* redirect stdin to "/dev/null" */
+ rd_null_fp = fopen(NETPERF_NULL,"r");
diff --git a/meta-networking/recipes-support/netperf/netperf_git.bb b/meta-networking/recipes-support/netperf/netperf_git.bb
index f0e0f9cf1f..4074f0cd07 100644
--- a/meta-networking/recipes-support/netperf/netperf_git.bb
+++ b/meta-networking/recipes-support/netperf/netperf_git.bb
@@ -2,44 +2,51 @@ SUMMARY = "A networking benchmarking tool"
DESCRIPTION = "Network performance benchmark including tests for TCP, UDP, sockets, ATM and more."
SECTION = "net"
HOMEPAGE = "http://www.netperf.org/"
-LICENSE = "netperf"
-LICENSE_FLAGS = "non-commercial"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a0ab17253e7a3f318da85382c7d5d5d6"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e661ab33a2a71ad6652c178dedf8aaa2"
PV = "2.7.0+git${SRCPV}"
-SRC_URI="git://github.com/HewlettPackard/netperf.git \
- file://cpu_set.patch \
- file://vfork.patch \
- file://init"
+SRC_URI = "git://github.com/HewlettPackard/netperf.git;branch=master;protocol=https \
+ file://cpu_set.patch \
+ file://vfork.patch \
+ file://init \
+ file://netserver.service \
+ file://0001-netlib.c-Move-including-sched.h-out-og-function.patch \
+ file://0001-nettest_omni-Remove-duplicate-variable-definitions.patch \
+ file://netserver_permissions.patch \
+ "
-SRCREV = "f482bab49fcedee46fc5b755da127f608325cd13"
+SRCREV = "3bc455b23f901dae377ca0a558e1e32aa56b31c4"
S = "${WORKDIR}/git"
-inherit update-rc.d autotools
+inherit update-rc.d autotools texinfo systemd
# cpu_set.patch plus _GNU_SOURCE makes src/netlib.c compile with CPU_ macros
-CFLAGS_append = " -DDO_UNIX -DDO_IPV6 -D_GNU_SOURCE"
+CFLAGS:append = " -DDO_UNIX -DDO_IPV6 -D_GNU_SOURCE"
# set the "_FILE_OFFSET_BITS" preprocessor symbol to 64 to support files
# larger than 2GB
-CFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'largefile', \
- ' -D_FILE_OFFSET_BITS=64', '', d)}"
+CFLAGS:append = " -D_FILE_OFFSET_BITS=64"
PACKAGECONFIG ??= ""
PACKAGECONFIG[sctp] = "--enable-sctp,--disable-sctp,lksctp-tools,"
+PACKAGECONFIG[intervals] = "--enable-intervals,--disable-intervals,,"
+PACKAGECONFIG[histogram] = "--enable-histogram,--disable-histogram,,"
# autotools.bbclass attends to include m4 files with path depth <= 2 by
# "find ${S} -maxdepth 2 -name \*.m4", so move m4 files from m4/m4.
-do_configure_prepend() {
+do_configure:prepend() {
test -d ${S}/m4/m4 && mv -f ${S}/m4/m4 ${S}/m4-files
}
do_install() {
sed -e 's#/usr/sbin/#${sbindir}/#g' -i ${WORKDIR}/init
-
- install -d ${D}${sbindir} ${D}${bindir} ${D}${sysconfdir}/init.d
+ install -d ${D}${sbindir} ${D}${bindir} ${D}${sysconfdir}/init.d ${D}${systemd_system_unitdir}
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ sed -e 's#/usr/sbin/#${sbindir}/#g' ${WORKDIR}/netserver.service > ${D}${systemd_system_unitdir}/netserver.service
+ fi
install -m 4755 src/netperf ${D}${bindir}
install -m 4755 src/netserver ${D}${sbindir}
install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/netperf
@@ -60,7 +67,8 @@ do_install() {
install -m 0644 ${S}/doc/netperf_old.ps ${D}${docdir}/netperf
}
-RRECOMMENDS_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'sctp', 'kernel-module-sctp', '', d)}"
+RRECOMMENDS:${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'sctp', 'kernel-module-sctp', '', d)}"
INITSCRIPT_NAME="netperf"
INITSCRIPT_PARAMS="defaults"
+SYSTEMD_SERVICE:${PN} = "netserver.service"
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
new file mode 100644
index 0000000000..490990d29d
--- /dev/null
+++ b/meta-networking/recipes-support/netsniff-ng/files/0001-Cmds-automatically-create-folder.patch
@@ -0,0 +1,28 @@
+From 7c00d75d16da18a9998fc4cca28d3c953dd54ceb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Cl=C3=A9ment=20P=C3=A9ron?= <peron.clem@gmail.com>
+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/Cmds b/Cmds
+index e590b38..3df23b8 100644
+--- a/Cmds
++++ b/Cmds
+@@ -44,7 +44,8 @@ ifeq ("$(origin PREFIX)", "$(filter $(origin PREFIX), file command line)")
+ INSTX = echo -e " INST\t$(1)" && install -d $(2) && \
+ install -C $(1) $(2)/$(shell basename $(1))
+ else
+- INSTX = echo -e " INST\t$(1)" && install -C $(1) $(2)/$(shell basename $(1))
++ INSTX = echo -e " INST\t$(1)" && install -d $(2) && \
++ install -C $(1) $(2)/$(shell basename $(1))
+ endif
+
+ MKDIR = echo -e " MKDIR\t$(1)" && mkdir -p $(1)
+--
+2.32.0
+
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
new file mode 100644
index 0000000000..004330e1b4
--- /dev/null
+++ b/meta-networking/recipes-support/netsniff-ng/netsniff-ng_0.6.8.bb
@@ -0,0 +1,36 @@
+DESCRIPTION = "Netsniff-ng is a fast zero-copy analyzer, pcap capturing and replaying tool"
+HOMEPAGE = "http://netsniff-ng.org"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9dd40dfb621eed702c0775577fbb7011"
+DEPENDS = "libpcap"
+
+SRCREV = "be3e706f00295024ebc199e70177343fdaebbc9e"
+SRC_URI = " \
+ git://github.com/netsniff-ng/netsniff-ng.git;protocol=https;branch=master \
+ file://0001-Cmds-automatically-create-folder.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE += " TERM='' "
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[zlib] = ",--disable-zlib,zlib,"
+PACKAGECONFIG[libnl] = ",--disable-libnl,libnl,"
+PACKAGECONFIG[geoip] = ",--disable-geoip,geoip,"
+
+do_configure() {
+ ./configure --prefix=${prefix}
+}
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} netsniff-ng_install
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/nghttp2/nghttp2_1.26.0.bb b/meta-networking/recipes-support/nghttp2/nghttp2_1.26.0.bb
deleted file mode 100644
index 3ccd486be1..0000000000
--- a/meta-networking/recipes-support/nghttp2/nghttp2_1.26.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "HTTP/2 C Library and tools"
-HOMEPAGE = "https://nghttp2.org/"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=764abdf30b2eadd37ce47dcbce0ea1ec"
-
-SRC_URI = "https://github.com/nghttp2/nghttp2/releases/download/v${PV}/nghttp2-${PV}.tar.bz2"
-SRC_URI[md5sum] = "926f07ad3b50f38f7d8935ced04716cf"
-SRC_URI[sha256sum] = "0df4229f4123b5aa96e834ebcfdffe954e93d986f0252fd10123d50c6f010983"
-
-DEPENDS = "libxml2 openssl zlib jansson cunit c-ares"
-
-inherit cmake pythonnative python-dir
diff --git a/meta-networking/recipes-support/nis/nis.inc b/meta-networking/recipes-support/nis/nis.inc
index 200eaf74d4..56b7ab0d69 100644
--- a/meta-networking/recipes-support/nis/nis.inc
+++ b/meta-networking/recipes-support/nis/nis.inc
@@ -6,7 +6,7 @@
DESCRIPTION = "NIS Server and Tools"
HOMEPAGE = "http://www.linux-nis.org/nis/"
SECTION = "net"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
inherit autotools gettext pkgconfig
@@ -20,12 +20,3 @@ inherit autotools gettext pkgconfig
do_install() {
oe_runmake 'DESTDIR=${D}' install-strip
}
-
-# An attempt to build on uclibc will fail, causing annoyance,
-# so force the package to be skipped here (this will cause a
-# 'nothing provides' error)
-python () {
- os = d.getVar("TARGET_OS", True)
- if os == "linux-uclibc":
- raise bb.parse.SkipRecipe("NIS functionality requires rpcsvc/yp.h, uClibC does not provide this")
-}
diff --git a/meta-networking/recipes-support/nis/yp-tools_2.14.bb b/meta-networking/recipes-support/nis/yp-tools_2.14.bb
index 8c6837bac9..8b7ed6fa28 100644
--- a/meta-networking/recipes-support/nis/yp-tools_2.14.bb
+++ b/meta-networking/recipes-support/nis/yp-tools_2.14.bb
@@ -20,15 +20,15 @@ SRC_URI[md5sum] = "ba1f121c17e3ad65368be173b977cd13"
SRC_URI[sha256sum] = "d01f70fadc643a55107a0edc47c6be99d0306bcc4f66df56f65e74238b0124c9"
inherit systemd
-SYSTEMD_SERVICE_${PN} = "domainname.service"
+SYSTEMD_SERVICE:${PN} = "domainname.service"
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true"
-do_install_append() {
+do_install:append() {
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/domainname.service ${D}${systemd_unitdir}/system
}
diff --git a/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb b/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
index 4e27e32d48..d2535487b4 100644
--- a/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
+++ b/meta-networking/recipes-support/nis/yp-tools_4.2.3.bb
@@ -14,34 +14,34 @@ and ypdomainname. \
# v4.2.3
SRCREV = "1bfda29c342a81b97cb1995ffd9e8da5de63e7ab"
-SRC_URI = "git://github.com/thkukuk/yp-tools \
+SRC_URI = "git://github.com/thkukuk/yp-tools;branch=master;protocol=https \
file://domainname.service \
"
S = "${WORKDIR}/git"
-DEPENDS = "libtirpc libnsl2"
+DEPENDS = "libtirpc libnsl2 virtual/crypt"
inherit autotools systemd
-SYSTEMD_SERVICE_${PN} = "domainname.service"
+SYSTEMD_SERVICE:${PN} = "domainname.service"
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
CACHED_CONFIGUREVARS += "ac_cv_prog_STRIP=/bin/true"
EXTRA_OECONF = " \
--disable-rpath --disable-domainname \
"
-CFLAGS_append_libc-musl = " -Wno-error=cpp"
+CFLAGS:append:libc-musl = " -Wno-error=cpp"
-FILES_${PN} += " ${libdir}/yp-nis/*.so.*.* ${libdir}/yp-nis/pkgconfig/"
-FILES_${PN}-dbg += " ${libdir}/yp-nis/.debug"
-FILES_${PN}-dev += " ${libdir}/yp-nis/*.so ${libdir}/yp-nis/*.so.[12] ${libdir}/yp-nis/*.la"
-FILES_${PN}-staticdev += " ${libdir}/yp-nis/*.a"
+FILES:${PN} += " ${libdir}/yp-nis/*.so.*.* ${libdir}/yp-nis/pkgconfig/"
+FILES:${PN}-dbg += " ${libdir}/yp-nis/.debug"
+FILES:${PN}-dev += " ${libdir}/yp-nis/*.so ${libdir}/yp-nis/*.so.[12] ${libdir}/yp-nis/*.la"
+FILES:${PN}-staticdev += " ${libdir}/yp-nis/*.a"
-do_install_append() {
+do_install:append() {
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/domainname.service ${D}${systemd_unitdir}/system
}
diff --git a/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb b/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb
deleted file mode 100644
index 9822f455ec..0000000000
--- a/meta-networking/recipes-support/nis/ypbind-mt_2.4.bb
+++ /dev/null
@@ -1,62 +0,0 @@
-# This package builds the NIS ypbind daemon
-# The source package is utils/net/NIS/ypbind-mt
-#
-require nis.inc
-
-DESCRIPTION = " \
-Multithreaded NIS bind service (ypbind-mt). \
-ypbind-mt is a complete new implementation of a NIS \
-binding daemon for Linux. It has the following \
-features. Supports ypbind protocol V1 and V2. \
-Uses threads for better response. Supports multiple \
-domain bindings. Supports /var/yp/binding/* file \
-for Linux libc 4/5 and glibc 2.x. Supports a list \
-of known secure NIS server (/etc/yp.conf) Binds to \
-the server which answered as first. \
-\
-This is the final IPv4-only version of ypbind-mt. \
-"
-HOMEPAGE = "http://www.linux-nis.org/nis/ypbind-mt/index.html"
-DEPENDS = " \
- yp-tools \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
- "
-DEPENDS_append_libc-musl = " bsd-headers nss"
-RDEPENDS_${PN} += "yp-tools"
-
-# ypbind-mt now provides all the functionality of ypbind
-# and is used in place of it.
-PROVIDES += "ypbind"
-
-SRC_URI = "http://www.linux-nis.org/download/ypbind-mt/${BP}.tar.bz2 \
- file://ypbind.init \
- file://ypbind.service \
- file://0001-dns_hosts-Fix-build-with-musl.patch \
- "
-SRC_URI[md5sum] = "1aeccd0d11c064d5d59c56941bca682b"
-SRC_URI[sha256sum] = "a2e1fa8fc992a12b289c229e00e38c20d59070c3bcf08babf40c692515c340e0"
-
-inherit systemd update-rc.d
-
-SYSTEMD_SERVICE_${PN} = "ypbind.service"
-INITSCRIPT_NAME = "ypbind"
-INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ."
-
-CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true"
-
-CFLAGS_append_libc-musl = " -I${STAGING_INCDIR}/nss3"
-
-do_install_append () {
- install -d ${D}${sysconfdir}/init.d
- install -d ${D}${sysconfdir}/rcS.d
-
- install -m 0755 ${WORKDIR}/ypbind.init ${D}${sysconfdir}/init.d/ypbind
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system
-}
-
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
diff --git a/meta-networking/recipes-support/nis/ypbind-mt_2.7.2.bb b/meta-networking/recipes-support/nis/ypbind-mt_2.7.2.bb
new file mode 100644
index 0000000000..a95062bc8b
--- /dev/null
+++ b/meta-networking/recipes-support/nis/ypbind-mt_2.7.2.bb
@@ -0,0 +1,63 @@
+# This package builds the NIS ypbind daemon
+# The source package is utils/net/NIS/ypbind-mt
+#
+require nis.inc
+
+DESCRIPTION = " \
+Multithreaded NIS bind service (ypbind-mt). \
+ypbind-mt is a complete new implementation of a NIS \
+binding daemon for Linux. It has the following \
+features. Supports ypbind protocol V1 and V2. \
+Uses threads for better response. Supports multiple \
+domain bindings. Supports /var/yp/binding/* file \
+for Linux libc 4/5 and glibc 2.x. Supports a list \
+of known secure NIS server (/etc/yp.conf) Binds to \
+the server which answered as first. \
+\
+This is the final IPv4-only version of ypbind-mt. \
+"
+HOMEPAGE = "https://github.com/thkukuk/ypbind-mt/"
+DEPENDS = " \
+ yp-tools \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+ "
+DEPENDS:append:libc-musl = " bsd-headers nss"
+RDEPENDS:${PN} += "yp-tools"
+
+# ypbind-mt now provides all the functionality of ypbind
+# and is used in place of it.
+PROVIDES += "ypbind"
+
+SRC_URI = "https://github.com/thkukuk/ypbind-mt/releases/download/v${PV}/${BPN}-${PV}.tar.xz \
+ file://0001-dns_hosts-Fix-build-with-musl.patch \
+ file://ypbind.init \
+ file://ypbind.service \
+ "
+SRC_URI[sha256sum] = "064f2f185673c5493df83f6400b799f3a359de56118b6ba37c4327111f2fcd8b"
+
+inherit systemd update-rc.d
+
+SYSTEMD_SERVICE:${PN} = "ypbind.service"
+INITSCRIPT_NAME = "ypbind"
+INITSCRIPT_PARAMS = "start 44 3 5 . stop 70 0 1 2 6 ."
+
+CACHED_CONFIGUREVARS = "ac_cv_prog_STRIP=/bin/true"
+
+CFLAGS:append = " -I${STAGING_INCDIR}/nss3 -I${STAGING_INCDIR}/nspr"
+
+do_install:append () {
+ install -d ${D}${sysconfdir}/init.d
+ install -d ${D}${sysconfdir}/rcS.d
+
+ install -m 0755 ${WORKDIR}/ypbind.init ${D}${sysconfdir}/init.d/ypbind
+
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/ypbind.service ${D}${systemd_unitdir}/system
+}
+
+# uses glibc internal APIs e.g. _hostalias
+COMPATIBLE_HOST:libc-musl = "null"
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
diff --git a/meta-networking/recipes-support/ntimed/ntimed_git.bb b/meta-networking/recipes-support/ntimed/ntimed_git.bb
index a749b16593..9badfd75d1 100644
--- a/meta-networking/recipes-support/ntimed/ntimed_git.bb
+++ b/meta-networking/recipes-support/ntimed/ntimed_git.bb
@@ -8,7 +8,7 @@ SECTION = "net"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://main.c;beginline=2;endline=24;md5=89db8e76f2951f3fad167e7aa9718a44"
-SRC_URI = "git://github.com/bsdphk/Ntimed \
+SRC_URI = "git://github.com/bsdphk/Ntimed;branch=master;protocol=https \
file://use-ldflags.patch"
PV = "0.0+git${SRCPV}"
@@ -17,7 +17,7 @@ SRCREV = "db0abbb4c80f2ecef6bc5d9639bca5bea28532a2"
S = "${WORKDIR}/git"
# use adjtimex on musl
-CFLAGS_append_libc-musl = " -Dntp_adjtime=adjtimex"
+CFLAGS:append:libc-musl = " -Dntp_adjtime=adjtimex"
EXTRA_OEMAKE = "\
'CC=${CC}' \
@@ -33,8 +33,8 @@ do_install () {
install -D -m 0755 ntimed-client ${D}${sbindir}/ntimed-client
}
-ALLOW_EMPTY_${PN} = "1"
-RDEPENDS_${PN} += "ntimed-client"
+ALLOW_EMPTY:${PN} = "1"
+RDEPENDS:${PN} += "ntimed-client"
PACKAGE_BEFORE_PN += "ntimed-client"
-FILES_ntimed-client = "${sbindir}/ntimed-client"
+FILES:ntimed-client = "${sbindir}/ntimed-client"
diff --git a/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch b/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch
deleted file mode 100644
index 81ffeec21b..0000000000
--- a/meta-networking/recipes-support/ntop/ntop/0001-nDPI-Include-sys-types.h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 6543f3e2d5fe214e2fc6c050289bf1ae73b18724 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Aug 2017 13:56:24 -0700
-Subject: [PATCH] nDPI: Include sys/types.h
-
-Needed for uint_t types
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- nDPI/src/include/ipq_api.h | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: ntop-5.0.1/nDPI/src/include/ipq_api.h
-===================================================================
---- ntop-5.0.1.orig/nDPI/src/include/ipq_api.h
-+++ ntop-5.0.1/nDPI/src/include/ipq_api.h
-@@ -24,6 +24,7 @@
- #ifndef __IPOQUE_API_INCLUDE_FILE__
- #define __IPOQUE_API_INCLUDE_FILE__
-
-+#include <sys/types.h>
-
- #if defined(HAVE_NTOP) && defined(WIN32)
- #include <winsock2.h>
diff --git a/meta-networking/recipes-support/ntop/ntop/ntop.service b/meta-networking/recipes-support/ntop/ntop/ntop.service
deleted file mode 100644
index 1ead2a0c5f..0000000000
--- a/meta-networking/recipes-support/ntop/ntop/ntop.service
+++ /dev/null
@@ -1,15 +0,0 @@
-[Unit]
-Description=A network traffic probe similar to the UNIX top command
-Requires=network.target
-
-ConditionPathExists=@SYSCONFDIR@/ntop.conf
-After=syslog.target network.target
-
-[Service]
-Type=oneshot
-RemainAfterExit=yes
-ExecStart=@LIBEXECDIR@/ntop-helper start
-ExecStop=@LIBEXECDIR@/ntop-helper stop
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch b/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch
deleted file mode 100644
index 392cb082b7..0000000000
--- a/meta-networking/recipes-support/ntop/ntop/ntop_configure_in.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-1)add --with-pcap-config option to use libpcap's pcap-config
-2)add AC_CHECK_LIB if user didn't specify PCAP_ROOT and pcap-config
- put it before host check to make cross-compiling easier.
- pcap doesn't need extra include and libs so it is fine.
-3)remove old rrd configure code but use pkg-config to config rrd
- rrdtool should have the pkg-config file installed.
-4)fix python-config
-5)change AC_TRY_RUN to AC_COMPILE_IFELSE for pthread_rwlock_t checking
-6)fix a net-snmp-config bug
-
-Upstream-Status: Pending
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
-diff --git a/configure.in b/configure.in
-index 0c7c0a5..cad40be 100644
---- a/configure.in
-+++ b/configure.in
-@@ -230,14 +230,14 @@ dnl>
- AC_ARG_WITH(void,
- [ +-External-source-locations:-------------------------------------------------+])
-
--AC_ARG_WITH( rrd-home,
-- [ --with-rrd-home=DIR Usually /usr/local/rrdtool-1.2.x],
-- RRD_HOME="$withval",
-- RRD_HOME=/usr/local/rrdtool-1.2.19)
- AC_ARG_WITH( pcap-root,
- [ --with-pcap-root=DIR LBNL pcap located in DIR],
- PCAP_ROOT="$withval",
- PCAP_ROOT=)
-+AC_ARG_WITH( pcap-config,
-+ [ --with-pcap-config=path/pcap-config where to find pcap-config],
-+ PCAP_CONFIG="$withval",
-+ PCAP_CONFIG=)
- AC_ARG_WITH( gdbm-root,
- [ --with-gdbm-root=DIR gdbm located in DIR],
- GDBM_DIRECTORY="$withval",
-@@ -556,6 +556,7 @@ if test ".${PCAPRING_DIR}" != .; then
- else
-
- TMP_ROOT=${HOME}/PF_RING/userland/libpcap/
-+FOUND_PCAP=1
- if test ".${PCAP_ROOT}" == . &&
- test -d ${TMP_ROOT} &&
- test -r ${TMP_ROOT}/libpcap.a; then
-@@ -563,6 +564,18 @@ if test ".${PCAP_ROOT}" == . &&
- CORELIBS="${CORELIBS} -L${TMP_ROOT} -L${HOME}/PF_RING/userland/lib -lpfring -lpcap "
- INCS="${INCS} -I ${PCAP_ROOT}"
- AC_MSG_RESULT([found in $PCAP_ROOT])
-+elif test -n "${PCAP_CONFIG}" && test -x "${PCAP_CONFIG}"; then
-+ CORELIBS="${CORELIBS} $(${PCAP_CONFIG} --libs)"
-+ INCS="${INCS} $(${PCAP_CONFIG} --cflags)"
-+ AC_DEFINE_UNQUOTED(HAVE_LIBPCAP, 1, [have libpcap ])
-+ AC_MSG_RESULT([found pcap-config: $PCAP_CONFIG, libs:$(${PCAP_CONFIG} --libs) cflags:$(${PCAP_CONFIG} --cflags)])
-+else
-+ AC_CHECK_LIB(pcap, pcap_lookupdev, ,
-+ [FOUND_PCAP=])
-+fi
-+
-+if test -n "$FOUND_PCAP"; then
-+ :
- elif test ".${PCAP_ROOT}" != .; then
- if test -d $PCAP_ROOT &&
- test -r $PCAP_ROOT/lib/libpcap.a &&
-@@ -880,44 +893,11 @@ AC_CHECK_LIB([z], [zlibVersion], [], [
- exit -1
- ])
-
--# RRD
--if test -d "$RRD_HOME"; then
-- AC_MSG_RESULT(checking for RRD home... yes)
--else
-- RRD_HOME=/usr/local/rrdtool
-- if test -d "$RRD_HOME"; then
-- AC_MSG_RESULT(Checking rrdtool in $RRD_HOME)
-- else
-- RRD_HOME=/usr/local
-- fi
--fi
--
--RRD_LIB="-L${RRD_HOME}/lib -lrrd_th"
--
--if test -f "$RRD_HOME/lib/librrd_th.so"; then
-- AC_MSG_RESULT(checking for rrdtool... yes)
--else
-- if test -f "$RRD_HOME/lib/librrd_th.dylib"; then # OSX
-- AC_MSG_RESULT(checking for rrdtool... yes)
-- else
-- if test -f "$RRD_HOME/lib/librrd_th.a"; then
-- AC_MSG_RESULT(checking for rrdtool... yes)
-- else
-- AC_CHECK_LIB([rrd_th], [main])
-- if test ".${ac_cv_lib_rrd_th_main}" != ".yes"; then
-- AC_MSG_ERROR(Unable to find RRD at $RRD_HOME: please use --with-rrd-home=DIR);
-- AC_MSG_ERROR(RRD source can be downloaded from http://www.rrdtool.org/);
-- else
-- RRD_LIB=
-- fi
-- fi
-- fi
--fi
--
--RRD_INC=
--if test -d "${RRD_HOME}/include"; then
-- RRD_INC="-I${RRD_HOME}/include"
--fi
-+PKG_CHECK_MODULES( [RRD], [librrd] )
-+AC_SUBST(RRD_CFLAGS)
-+AC_SUBST(RRD_LIBS)
-+RRD_INC=$RRD_FLAGS
-+RRD_LIB=$RRD_LIBS
-
- dnl> The failed recheck stuff below is courtesy of Chris Turbeville [turbo@verio.net]
- dnl> Chris developed this for Solaris 9, confirming work I had done earlier for FreeBSD
-@@ -1041,7 +1021,7 @@ AC_CHECK_HEADERS([sched.h sys/sched.h])
- AC_CHECK_HEADERS([pthread.h])
-
- AC_MSG_CHECKING([if r/w locks are supported])
--AC_TRY_RUN([
-+AC_COMPILE_IFELSE([
- #include <pthread.h>
-
- int main()
-@@ -1443,15 +1423,15 @@ dnl> NET-SNMP
- dnl>
- if test ".${ac_disable_snmp}" != ".yes"; then
- AC_CHECK_TOOL(NETSNMP, net-snmp-config)
-- if test "x$ac_cv_prog_ac_ct_NETSNMP" = "xnet-snmp-config"; then
-+ if test -n "$NETSNMP"; then
- AC_DEFINE_UNQUOTED(HAVE_SNMP, 1, [SNMP is supported])
-- SNMPLIBS="`net-snmp-config --libs`"
-+ SNMPLIBS="`$NETSNMP --libs`"
- SNMPLIBS="`echo ${SNMPLIBS}|sed -e s,'-R../lib',,g`"
- echo "net-snmp libs: ${SNMPLIBS}"
- LIBS="${LIBS} ${SNMPLIBS}"
- dnl remove unecessary path
- LIBS=`echo ${LIBS}|sed -e s,'-R../lib',,g`
-- INCS="${INCS} `net-snmp-config --cflags`"
-+ INCS="${INCS} `$NETSNMP --cflags`"
- else
- AC_MSG_RESULT(NETSNMP is not present: SNMP support is disabled)
- fi
-@@ -1464,10 +1444,9 @@ SAVED_LIBS=$LIBS
- dnl>
- dnl> PYTHON
- dnl>
-- AC_CHECK_TOOL(PYTHON, python-config)
-- PYTHON_CONFIG=""
-+ AC_CHECK_TOOL(PYTHON_CONFIG, python-config)
-
-- if test "x$ac_cv_prog_ac_ct_PYTHON" != "xpython-config"; then
-+ if test -z "$PYTHON_CONFIG"; then
- if test -f "/etc/debian_version"; then
- AC_MSG_RESULT(Please install python-dev and rerun configure)
- exit 1
-@@ -1481,8 +1460,6 @@ dnl>
- PYTHON_CONFIG="python-config"
- fi
- fi
-- else
-- PYTHON_CONFIG="python-config"
- fi
-
- if test "x$PYTHON_CONFIG" != "x"; then
diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch b/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch
deleted file mode 100644
index 269138df93..0000000000
--- a/meta-networking/recipes-support/ntop/ntop/ntop_configure_in_net_snmp_config_exist.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Check net-snmp-config's existence in case user specified the
-ac_cv_prog_NETSNMP to avoid HAVE_SNMP defined if the specified
-net-snmp-config doesn't exist.
-
-Upstream-Status: Inappropriate [Embedded specific]
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
-diff --git a/configure.in b/configure.in
-index 6f3e88f..8ddf017 100755
---- a/configure.in
-+++ b/configure.in
-@@ -1423,7 +1423,7 @@ dnl> NET-SNMP
- dnl>
- if test ".${ac_disable_snmp}" != ".yes"; then
- AC_CHECK_TOOL(NETSNMP, net-snmp-config)
-- if test -n "$NETSNMP"; then
-+ if test -n "$NETSNMP" -a -e "$NETSNMP"; then
- AC_DEFINE_UNQUOTED(HAVE_SNMP, 1, [SNMP is supported])
- SNMPLIBS="`$NETSNMP --libs`"
- SNMPLIBS="`echo ${SNMPLIBS}|sed -e s,'-R../lib',,g`"
diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_init.patch b/meta-networking/recipes-support/ntop/ntop/ntop_init.patch
deleted file mode 100644
index e7684c1b4c..0000000000
--- a/meta-networking/recipes-support/ntop/ntop/ntop_init.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-Modify ntop.init to WRLinux 5.0 style.
-
-Fix a small problem that when ntop not running,
-/etc/init.d/ntop stop will return 1
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
- packages/RedHat/ntop.init | 102 +++++++++-----------------------------------
- 1 files changed, 21 insertions(+), 81 deletions(-)
-
-diff --git a/packages/RedHat/ntop.init b/packages/RedHat/ntop.init
-index 40d49f1..a189c59 100755
---- a/packages/RedHat/ntop.init
-+++ b/packages/RedHat/ntop.init
-@@ -10,19 +10,9 @@
- # You have set the admin password - read docs/1STRUN.txt
- # You have created /etc/ntop.conf with appropriate parameters.
-
--# To identify an interface to ntop, use the following flags
--# in /etc/sysconfig/network-scripts/ifcfg-ethx
--
--# NTOP="yes" <--- means for ntop to use this interface
--# NTOPCONFIG="yes" <--- means for ntop to configure this interface
--
- # Note that if you give a -i parameter in either /etc/ntop.conf or
- # the command line, the scan is NOT performed.
-
--# However, when it comes to the configuration step, with NTOPCONFIG="yes"
--# the interface is configured regardless of how the interface list was
--# specified.
--
- #
- # -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
- #
-@@ -107,11 +97,7 @@ ntopusesyslog="local3"
- invoked=$0
-
- # Source function library.
--. /etc/rc.d/init.d/functions
--
--# Source networking configuration.
--. /etc/sysconfig/network
--
-+. /etc/init.d/functions
-
- # Basic sanity checks...
- if ! [ -x $prog ]; then
-@@ -124,16 +110,6 @@ if ! [ -x $prog ]; then
- exit 1
- fi
-
--if [ ${NETWORKING} = "no" ]; then
-- echo ""
-- echo "ERROR -"
-- echo " Networking is not up!"
-- echo ""
-- echo "Aborting..."
-- echo ""
-- exit 1
--fi
--
- if ! [ -f ${conf} ]; then
- echo ""
- echo "ERROR -"
-@@ -180,8 +156,8 @@ fi
- if [ "${debug}" = "y" ]; then echo "DEBUG: parm file temp is ${parmfile}"; fi
-
- cmd=`echo \
-- @${conf} \
- -i tbd \
-+ @${conf} \
- $extra $@`
-
- echo ${cmd} | awk ' \
-@@ -305,42 +281,6 @@ logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Configuration
-
- # Build list of interfaces, e.g eth0 eth1 eth1:1
- # (Yeah, we'll have to convert that to eth0,eth1,eth1:1 later
--if [ ".${ntopinterface}" = ".tbd" ]; then
--
-- ntopinterface=""
-- iflist=`ip link show | \
-- awk '/^[0-9]*:\ eth/ { printf("%s ", substr($2, 1, length($2)-1)) }'`
-- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Scanning all interfaces $iflist"
-- if [ "${debug}" = "y" ]; then echo "DEBUG: Interface candidates are ${iflist}"; fi
--
-- for eth in $iflist; do
--
-- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp]=['\"]?[Yy][Ee][Ss]['\"]?" \
-- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
-- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntop=yes, skipping"
-- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth not ntop=yes"; fi
-- continue
-- fi
--
-- ntopinterface="${ntopinterface} $eth"
--
-- ip=`ip addr show $eth | \
-- awk '/inet/ { printf("%s", substr($2, 1, index($2, "/")-1)) }'`
--
-- if [ ".$ip" = "." ]; then
-- is="is unnumbered interface"
-- else
-- is="has IP address $ip"
-- fi
-- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is ntop=yes, ${is}"
-- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth ntop=yes, ${is}"; fi
--
-- done
--
--else
-- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Skipping interface scan - list in parms"
--fi
--
- if [ "x${ntopinterface}" = "x" ]; then
- ntopinterface="none"
- fi
-@@ -462,12 +402,6 @@ config_interfaces () {
- if="${if},${eth}"
- fi
-
-- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \
-- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
-- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping"
-- continue
-- fi
--
- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Configuring $eth"
- if [ "${debug}" = "y" ]; then echo "DEBUG: Configuring $eth"; fi
-
-@@ -527,7 +461,7 @@ start () {
- show_extra
- config_interfaces
-
-- cmd=`echo $prog \
-+ cmd=`echo \
- @${conf} \
- -i $if \
- $extra $@`
-@@ -541,7 +475,7 @@ start () {
- if [ ".${ldlibpath}" != "." ]; then
- export LD_LIBRARY_PATH="${ldlibpath}"
- fi
-- daemon ${cmd}
-+ start-stop-daemon --start --quiet --exec $prog -- ${cmd}
- RETVAL=$?
-
- [ $RETVAL = 0 ] && touch /var/lock/subsys/${name}${instance}
-@@ -551,6 +485,7 @@ start () {
- stop () {
- # stop daemon
-
-+ NOT_RUNNING=1
- RETVAL=1
- echo -n $"Stopping ${name}${instance}: "
- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Stopping: ${name}${instance}"
-@@ -563,13 +498,14 @@ stop () {
- if [ $rc = 0 ]; then
- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${pid}"
- if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${pid}"; fi
-- kill -s SIGTERM ${pid}
-+ kill -TERM ${pid} 2>&1 > /dev/null
- RETVAL=$?
- rm -f ${ntopdbfilepath}/ntop.pid
- else
- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find process ${pid} ... will kill by name"
- if [ "${debug}" = "y" ]; then echo "Unable to find process ${pid} ... will kill by name"; fi
- fi
-+ NOT_RUNNING=0
- else
-
- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unable to find ${ntopdbfilepath}/ntop.pid file ... will kill by name"
-@@ -577,15 +513,16 @@ stop () {
-
- fi
-
-- echo
--
- if [ $RETVAL != 0 ]; then
- pids=`ps axf | grep '\/usr\/bin\/ntop' | awk '{ printf(" %s", $1) }; END { print "" }'`
-- if [ "${pids}" != " " ]; then
-+ if [ "${pids}" != "" ]; then
- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Sending SIGTERM to ${prog}...${pids}"
- if [ "${debug}" = "y" ]; then echo "Sending SIGTERM to ${prog}...${pids}"; fi
-- kill -INT ${pids}
-+ kill -TERM ${pids} > /dev/null 2>&1
- RETVAL=$?
-+ NOT_RUNNING=0
-+ else
-+ NOT_RUNNING=1
- fi
- fi
-
-@@ -597,13 +534,9 @@ stop () {
- if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring interfaces"; fi
-
- for eth in ${ntopinterface}; do
-- if ! LANG=C egrep -L "^[Nn][Tt][Oo][Pp][Cc].*=['\"]?[Yy][Ee][Ss]['\"]?" \
-- /etc/sysconfig/network-scripts/ifcfg-$eth > /dev/null ; then
-- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - $eth is not ntopconfigure=yes, skipping"
-- if [ "${debug}" = "y" ]; then echo "DEBUG: $eth is not ntopconfigure=yes"; fi
-- continue
-+ if [ "$eth" = "none" ]; then
-+ continue
- fi
--
- logger -p ${ntopusesyslog} -t ${name}${instance} -- "INITD - Unconfiguring $eth"
- if [ "${debug}" = "y" ]; then echo "DEBUG: Unconfiguring $eth"; fi
-
-@@ -623,6 +556,13 @@ stop () {
- if [ "${debug}" = "y" ]; then echo "DEBUG: Interfaces are unconfigured"; fi
- fi
-
-+ if [ $NOT_RUNNING -eq 1 -o $RETVAL -eq 0 ]; then
-+ echo " [ OK ]"
-+ RETVAL=0
-+ else
-+ echo " [ FAILED ]"
-+ fi
-+
- return $RETVAL
- }
-
---
-1.7.5.4
-
diff --git a/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch b/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch
deleted file mode 100644
index 9f57ca4255..0000000000
--- a/meta-networking/recipes-support/ntop/ntop/ntop_webInterface.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-change osName to version as it prints out "ntop Version".
-
-Upstream-Status: Pending
-
-Signed-off-by: Yao Zhao <yao.zhao@windriver.com>
----
-diff --git a/webInterface.c b/webInterface.c
-index 5622e69..8cb7a67 100644
---- a/webInterface.c
-+++ b/webInterface.c
-@@ -5816,7 +5816,7 @@ static void printNtopConfigInfoData(int textPrintFlag, UserPref *pref) {
- printInfoSectionTitle(textPrintFlag, "Basic Information");
-
- safe_snprintf(__FILE__, __LINE__, formatBuf, sizeof(formatBuf), "%s (%d bit)",
-- osName, sizeof(long) == 8 ? 64 : 32);
-+ version, sizeof(long) == 8 ? 64 : 32);
- printFeatureConfigInfo(textPrintFlag, "ntop Version", formatBuf);
-
- #ifndef WIN32
diff --git a/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch b/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch
deleted file mode 100644
index 2b001c13e8..0000000000
--- a/meta-networking/recipes-support/ntop/ntop/use-static-inline.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-[PATCH] replace 'inline' with 'static inline' for gcc 5.x
-
-gcc 5.x defaults to -std=gnu11 instead of -std=gnu89 which change
-the semantics for inline functions and the standalone 'inline'
-causes error with "gcc5 -g -o0"
-
-Replace inline with static inline to be compatible with both gcc 4
-and 5.
-
-Upstream-status: Pending
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- nDPI/src/lib/protocols/ssl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/nDPI/src/lib/protocols/ssl.c b/nDPI/src/lib/protocols/ssl.c
-index 245b8c3..72beda9 100644
---- a/nDPI/src/lib/protocols/ssl.c
-+++ b/nDPI/src/lib/protocols/ssl.c
-@@ -39,7 +39,7 @@ static void ipoque_int_ssl_add_connection(struct ipoque_detection_module_struct
-
- #ifdef HAVE_NTOP
- #ifndef WIN32
--inline int min(int a, int b) { return(a < b ? a : b); }
-+static inline int min(int a, int b) { return(a < b ? a : b); }
- #endif
-
- static void stripCertificateTrailer(char *buffer, int buffer_len) {
---
-1.9.1
-
diff --git a/meta-networking/recipes-support/ntop/ntop_5.0.1.bb b/meta-networking/recipes-support/ntop/ntop_5.0.1.bb
deleted file mode 100644
index 4e0dd1edce..0000000000
--- a/meta-networking/recipes-support/ntop/ntop_5.0.1.bb
+++ /dev/null
@@ -1,139 +0,0 @@
-SUMMARY = "ntop is network top"
-DESCRIPTION = "ntop is a network traffic probe that shows the network usage, \
-similar to what the popular top Unix command does."
-
-SECTION = "console/network"
-
-LICENSE = "GPLv2+ & GPLv3 & OpenSSL"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://LICENSE-OpenSSL.txt;md5=a409f902e447ddd889cffa0c70e7c7c2 \
- "
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/ntop/ntop-${PV}.tar.gz \
- file://ntop_configure_in.patch \
- file://ntop_init.patch \
- file://ntop_webInterface.patch \
- file://ntop_configure_in_net_snmp_config_exist.patch \
- file://ntop.service \
- file://use-static-inline.patch \
- file://0001-nDPI-Include-sys-types.h.patch \
- "
-SRC_URI[md5sum] = "01710b6925a8a5ffe1a41b8b512ebd69"
-SRC_URI[sha256sum] = "7e8e84cb14d2173beaca4d4cb991a14d84a4bef84ec37b2276bc363f45c52ef8"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/ntop/files/ntop/Stable"
-
-inherit autotools-brokensep useradd pythonnative pkgconfig systemd
-
-DEPENDS = "geoip rrdtool python zlib libpcap gdbm"
-
-PACKAGECONFIG ??= "openssl snmp plugins"
-PACKAGECONFIG[openssl] = "--with-ssl, --without-ssl, openssl, openssl"
-PACKAGECONFIG[snmp] = "--enable-snmp=yes NETSNMP=${STAGING_BINDIR_CROSS}/net-snmp-config, \
---disable-snmp,net-snmp,"
-PACKAGECONFIG[plugins] = "--enable-plugins=yes, --disable-plugins, ,"
-
-EXTRA_OECONF += "ac_cv_file_aclocal_m4=yes ac_cv_file_depcomp=no"
-
-do_configure() {
- cp ${STAGING_DATADIR_NATIVE}/aclocal/libtool.m4 libtool.m4.in
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/nDPI
- install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/nDPI
- cat acinclude.m4.in acinclude.m4.ntop libtool.m4.in > acinclude.m4
- cp 3rd_party/* ./
-
- # config nDPI
- cd nDPI
- ./configure ${CONFIGUREOPTS} --with-pic
- cd ..
-
- sed -i -e 's:^CFG_DBFILE_DIR=$localstatedir/ntop:CFG_DBFILE_DIR=$localstatedir/lib/ntop:' ${S}/configure.in
-
- # fix the CFLAGS, CPPFLAGS, LDFLAGS, remove the host include
- sed -i \
- -e 's:\(^CFLAGS="\$.*\) -I/usr/local/include -I/opt/local/include":\1":' \
- -e 's:\(^CPPFLAGS="\$.*\) -I/usr/local/include -I/opt/local/include":\1":' \
- -e 's:\(^LDFLAGS="\$.*\) -L/usr/local/lib -L/opt/local/lib":\1":' \
- ${S}/configure.in
-
- # replace the DISTRO RELEASE in configure.in which are host's
- # with our release, although those doesn't affect functionality
- sed -i -e \
- '/DEFINEOS="LINUX"/{N;s/DISTRO=.*/DISTRO="${DISTRO}"/;N;s/RELEASE=.*/RELEASE="${DISTRO_VERSION}"/;}' \
- ${S}/configure.in
-
- # osName in original configure.in should be ${TARGET_SYS}
- # which will show in ntop's "show configuration"
- sed -i -e \
- 's:^osName=.*:osName=${TARGET_SYS}:' \
- ${S}/configure.in
-
- # rename configureextra to configureextra_rename to avoid
- # configure.in to guess host OS and pull in more configure, non needed
- # which will cause some cross-compiling failure on specific host
- # e.g. SUSE(SLED...)
- test ! -f configureextra || mv -f configureextra configureextra_rename
-
- # make sure configure finds python includdirs/libs with these envs
- export BUILD_SYS=${BUILD_SYS} HOST_SYS=${HOST_SYS} \
- STAGING_INCDIR=${STAGING_INCDIR} \
- STAGING_LIBDIR=${STAGING_LIBDIR}
-
- autotools_do_configure
-}
-
-do_compile_prepend() {
- cd nDPI
- oe_runmake
- cd ..
-}
-
-do_install_append() {
- # remove the empty dirs
- rm -rf ${D}${libdir}/plugins
-
- install -D -m 0755 ${S}/packages/RedHat/ntop.init \
- ${D}${sysconfdir}/init.d/ntop
- install -D -m 0644 ${S}/packages/RedHat/ntop.conf.sample \
- ${D}${sysconfdir}/ntop.conf
-
- # change ntop dir in ntop.conf
- # don't use the -P as the ntop.init didn't support it
- sed -i -e "s:^--db-file-path /usr/share/ntop:--db-file-path /var/lib/ntop:" \
- -e "s:^#? -P /var/ntop:#? -P /var/lib/ntop:" \
- ${D}${sysconfdir}/ntop.conf
-
- # For systemd
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -D -m 0755 ${S}/packages/RedHat/ntop.init ${D}${libexecdir}/ntop-helper
- install -D -m 0644 ${WORKDIR}/ntop.service ${D}${systemd_system_unitdir}/ntop.service
- sed -i -e 's,@LIBEXECDIR@,${libexecdir},g' \
- -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- ${D}${systemd_system_unitdir}/ntop.service
- fi
-
- # Fix host-user-contaminated issue
- chown -R root:root ${D}
-
- chown -R ntop.ntop ${D}${datadir}/ntop
- chown -R ntop:ntop ${D}${localstatedir}/lib/ntop
-}
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "-M -g ntop -r -d ${localstatedir}/lib/ntop \
--s /usr/sbin/nologin -c 'ntop' ntop"
-GROUPADD_PARAM_${PN} = "-r ntop"
-
-SYSTEMD_SERVICE_${PN} = "ntop.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-FILES_${PN}_append = "${libdir}/ntop/plugins ${libdir}/libntop-*.so \
- ${libdir}/libntopreport-*.so ${libdir}/lib*-${PV}.so"
-FILES_${PN}-dev = "${includedir} ${libdir}/libntop.so \
- ${libdir}/libntopreport.so \
- ${libdir}/libnetflowPlugin.so ${libdir}/libsflowPlugin.so \
- ${libdir}/librrdPlugin.so \
- ${libdir}/*.a ${libdir}/libntopreport.a ${libdir}/*.la"
-
diff --git a/meta-networking/recipes-support/ntopng/files/0001-Makefile.in-don-t-use-the-internal-lua.patch b/meta-networking/recipes-support/ntopng/files/0001-Makefile.in-don-t-use-the-internal-lua.patch
new file mode 100644
index 0000000000..bb5bcfbd63
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/0001-Makefile.in-don-t-use-the-internal-lua.patch
@@ -0,0 +1,39 @@
+From 52953ab99c727a19e88243dda2702d6814f7974d Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 4 Nov 2020 08:55:10 +0000
+Subject: [PATCH] Makefile.in: don't use the internal lua
+
+ntopng depends on lua and it will compile the lua under
+third-party sub dir of source tree, but this one supports
+cross-compiling badly, so use the one under RECIPE_SYSROOT.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index d737e74..a611b16 100755
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -36,7 +36,6 @@ MONGOOSE_INC=-I$(MONGOOSE_HOME)
+ LUA_PLATFORM=generic
+ LUA_HOME=${PWD}/third-party/lua-5.4.3
+ LUA_INC=-I$(LUA_HOME)/src
+-LUA_LIB=$(LUA_HOME)/src/liblua.a
+
+ ifeq ($(OS),Linux)
+ LUA_PLATFORM=linux
+@@ -102,7 +101,6 @@ RPM_PKG = $(TARGET)-$(NTOPNG_VERSION)-@REVISION@.$(PLATFORM).rpm
+ RPM_DATA_PKG = $(TARGET)-data-$(NTOPNG_VERSION)-@REVISION@.noarch.rpm
+ ######
+
+-LIB_TARGETS = $(LUA_LIB)
+
+ ifneq ($(HAS_ZEROMQ), 0)
+ LIB_TARGETS += $(ZEROMQ_LIB)
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/ntopng/files/0001-autogen.sh-generate-configure.ac-only.patch b/meta-networking/recipes-support/ntopng/files/0001-autogen.sh-generate-configure.ac-only.patch
new file mode 100644
index 0000000000..8d62147b9e
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/0001-autogen.sh-generate-configure.ac-only.patch
@@ -0,0 +1,36 @@
+From 22f0bec462763f1b0b92daa33133e274d3b45f4f Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 5 Nov 2020 00:05:21 -0800
+Subject: [PATCH] autogen.sh: generate configure.ac only
+
+The autogen.sh should only generate configure.ac and the
+logic used to generate configure script should follow the
+autotools.bbclass in oe. Otherwise there may comes below
+do_configure error:
+ | checking whether we are cross compiling... configure: error: in `/path/tmp/work/core2-64-poky-linux/ndpi/3.4-r0/git':
+ | configure: error: cannot run C compiled programs.
+ | If you meant to cross compile, use `--host'.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ autogen.sh | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index 73f8d0ebe..15ff0aa84 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -73,8 +73,3 @@ cat configure.seed | sed \
+ > configure.ac
+
+ rm -f config.h config.h.in *~ #*
+-
+-echo "Wait please..."
+-autoreconf -if
+-echo ""
+-echo "Now run ./configure"
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/ntopng/files/0001-autogen.sh-not-generate-configure.patch b/meta-networking/recipes-support/ntopng/files/0001-autogen.sh-not-generate-configure.patch
new file mode 100644
index 0000000000..d5c7f5f1cc
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/0001-autogen.sh-not-generate-configure.patch
@@ -0,0 +1,35 @@
+From d482bcc8fca90afc95ac3cbe848a3c9d7ad81ddc Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 4 Nov 2020 23:37:44 -0800
+Subject: [PATCH] autogen.sh: not generate configure
+
+Only use autogen.sh to generate configure.ac.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
+refresh patch to 4.0
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ autogen.sh | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/autogen.sh b/autogen.sh
+index 0aa7507..36e0423 100755
+--- a/autogen.sh
++++ b/autogen.sh
+@@ -33,10 +33,3 @@ if test -z $PKG_CONFIG; then
+ echo "pkg-config is missing: please install it (apt-get install pkg-config) and try again"
+ exit
+ fi
+-
+-autoreconf -ivf
+-
+-echo "./configure $@"
+-chmod +x configure
+-./configure $@
+-
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-Allow-dynamic-linking-against-ndpi-3.patch b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-Allow-dynamic-linking-against-ndpi-3.patch
new file mode 100644
index 0000000000..c645110f22
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-Allow-dynamic-linking-against-ndpi-3.patch
@@ -0,0 +1,39 @@
+From a913b85f720f41bf7e5819c0dc4acc252467a8a4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Feb 2022 14:25:07 -0800
+Subject: [PATCH] configure.ac.in: Allow dynamic linking against ndpi 3.0
+
+Linking statically is problematic since NDPI_LIBS is '-lndpi -lm'
+and when we use -Bstatic it also brings in -lm to use libm.a and on some
+architectures ( x86 ) which this does not work and results in missing symbols
+
+Fixes
+ipe-sysroot/usr/lib/libm.a(e_logf.o): in function `logf_ifunc_selector':
+/usr/src/debug/glibc/2.35-r0/git/math/../sysdeps/i386/i686/multiarch/ifunc-sse2.h:30: undefined reference to `_dl_x86_cpu_features'
+
+Upstream-Status: Submitted [https://github.com/ntop/ntopng/pull/6318]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac.in | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac.in b/configure.ac.in
+index 7f4c0f893..c3299fda2 100644
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -193,10 +193,8 @@ if test -d /usr/local/include/ndpi ; then :
+ fi
+
+ PKG_CHECK_MODULES([NDPI], [libndpi >= 2.0], [
+- NDPI_INC=`echo $NDPI_CFLAGS | sed -e "s/[ ]*$//"`
+- # Use static libndpi library as building against the dynamic library fails
+- NDPI_LIB="-Wl,-Bstatic $NDPI_LIBS -Wl,-Bdynamic"
+- #NDPI_LIB="$NDPI_LIBS"
++ NDPI_INC="$NDPI_CFLAGS"
++ NDPI_LIB="$NDPI_LIBS"
+ NDPI_LIB_DEP=
+ ], [
+ AC_MSG_CHECKING(for nDPI source)
+--
+2.35.1
+
diff --git a/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-configure-error.patch b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-configure-error.patch
new file mode 100644
index 0000000000..d4908e3227
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-configure-error.patch
@@ -0,0 +1,42 @@
+From 29797dd037009d38e4976249ed21b2076240751e Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 4 Nov 2020 04:36:46 +0000
+Subject: [PATCH] configure.ac.in: fix configure error
+
+fix the below error:
+configure: error: cannot run test program while cross compiling
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ configure.ac.in | 13 +------------
+ 1 file changed, 1 insertion(+), 12 deletions(-)
+
+diff --git a/configure.ac.in b/configure.ac.in
+index a321f9bbf..03f9a31b0 100644
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -642,18 +642,7 @@ if test x$radcli = xtrue; then
+ fi
+ fi
+
+-AC_CACHE_CHECK([if pthread rwlocks are supported], [my_cv_rw_locks_supported], [
+- AC_TRY_RUN([
+- #include <pthread.h>
+-
+- int main() {
+- pthread_rwlock_t t;
+- return 0;
+- }
+-]
+-, [my_cv_rw_locks_supported=yes], [my_cv_rw_locks_supported=no])
+-]
+-)
++AC_CACHE_CHECK([if pthread rwlocks are supported], [my_cv_rw_locks_supported])
+
+ if test "$my_cv_rw_locks_supported" = yes; then
+ AC_DEFINE_UNQUOTED(HAVE_RW_LOCK, 1, [pthread rwlocks supported])
+--
+2.26.2
+
diff --git a/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-host-contamination.patch b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-host-contamination.patch
new file mode 100644
index 0000000000..5e1440b3d6
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-fix-host-contamination.patch
@@ -0,0 +1,82 @@
+From d9458227ddb4bbb8c63c607202a6854886d66090 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 4 Nov 2020 06:28:28 +0000
+Subject: [PATCH] configure.ac.in: fix host contamination
+
+Fix below error:
+This autoconf log indicates errors, it looked at host include and/or
+library paths while determining system capabilities.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ configure.ac.in | 43 +++----------------------------------------
+ 1 file changed, 3 insertions(+), 40 deletions(-)
+
+diff --git a/configure.ac.in b/configure.ac.in
+index 1d6380c..beffc6c 100644
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -167,31 +167,6 @@ fi
+ #
+ REVISION=`git log --pretty=oneline | wc -l`
+
+-if test -d "/usr/local/include"; then
+- CFLAGS="${CFLAGS} -I/usr/local/include"
+- CPPFLAGS="${CPPFLAGS} -I/usr/local/include"
+-fi
+-
+-if test -d "/usr/local/lib"; then
+- LIBS="${LIBS} -L/usr/local/lib"
+-fi
+-
+-if test -d /opt/local/include; then :
+- CFLAGS="${CFLAGS} -I/opt/local/include"
+- CPPFLAGS="${CPPFLAGS} -I/opt/local/include"
+-fi
+-
+-if test -d /opt/local/lib; then :
+- LIBS="${LIBS} -L/opt/local/lib"
+-fi
+-
+-if [ test -f /usr/bin/lsb_release ]; then
+- CODENAME=`/usr/bin/lsb_release -c|cut -f 2`
+- if [[ $CODENAME == "wheezy" ]]; then :
+- CPPFLAGS="${CPPFLAGS} -DOLD_NETFILTER_INTERFACE=1"
+- fi
+-fi
+-
+ SHORT_MACHINE=`uname -m | cut -b1-3`
+
+ GIT_RELEASE="@GIT_RELEASE@"
+@@ -300,23 +275,11 @@ fi
+ pkg-config --exists libssl
+ if test "$?" -ne 1; then
+ AC_DEFINE_UNQUOTED(NO_SSL_DL, 1, [has openssl])
+- SSL_INC="`pkg-config --cflags libssl` -I/usr/include/openssl"
++ SSL_INC="`pkg-config --cflags libssl`"
+ SSL_LIB="`pkg-config --libs libssl` -lssl -lcrypto"
+ else
+- dnl Workaround for MacOS Brew
+- if test -d "/usr/local/opt/openssl/lib"; then
+- AC_DEFINE_UNQUOTED(NO_SSL_DL, 1, [has openssl])
+- SSL_INC="-I/usr/local/opt/openssl/include"
+- SSL_LIB="-L/usr/local/opt/openssl/lib -lssl -lcrypto"
+- dnl Workaround for FreeBSD
+- elif test -f "/usr/lib/libssl.so"; then
+- AC_DEFINE_UNQUOTED(NO_SSL_DL, 1, [has openssl])
+- SSL_INC="-I/usr/include"
+- SSL_LIB="-L/usr/lib -lssl -lcrypto"
+- else
+- echo "Please install openssl-dev(el) package prerequisite"
+- exit -1
+- fi
++ echo "Please install openssl-dev(el) package prerequisite"
++ exit -1
+ fi
+
+ AC_CHECK_LIB([gcrypt], [gcry_cipher_checktag], [LIBS="${LIBS} -lgcrypt"])
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-not-check-clang-on-host.patch b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-not-check-clang-on-host.patch
new file mode 100644
index 0000000000..ffb106723c
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/0001-configure.ac.in-not-check-clang-on-host.patch
@@ -0,0 +1,44 @@
+From 5867be19e53a3cc09730b83282c83bdd26147cc3 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 9 Nov 2020 04:05:25 +0000
+Subject: [PATCH] configure.ac.in: not check clang on host
+
+Don't check clang on host to avoid host contamination.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ configure.ac.in | 16 ----------------
+ 1 file changed, 16 deletions(-)
+
+diff --git a/configure.ac.in b/configure.ac.in
+index 55bd49678..94bc0bc48 100644
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -90,22 +90,6 @@ if test $SYSTEM = "FreeBSD" || test $SYSTEM = "Darwin"; then
+ CFLAGS="-fno-color-diagnostics $CFLAGS"
+ fi
+ fi
+-else
+- if test $SYSTEM = "Linux"; then
+- if [ test -f /usr/bin/clang++ ]; then
+- CC=clang
+- CXX=clang++
+- AC_MSG_RESULT(Using clang++ compiler)
+- fi
+-
+- if [ test -f /etc/redhat-release ]; then
+- OS=`cat /etc/redhat-release`
+- else
+- if [ test -f /usr/bin/lsb_release ]; then
+- OS=`/usr/bin/lsb_release -d|cut -d ':' -f 2`
+- fi
+- fi
+- fi
+ fi
+
+ dnl> Remove spaces
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/ntopng/files/ntopng.service b/meta-networking/recipes-support/ntopng/files/ntopng.service
new file mode 100644
index 0000000000..66912fbefa
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/files/ntopng.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=ntopng - High-Speed Web-based Traffic Analysis and Flow Collection Tool
+After=network.target
+
+[Service]
+Type=forking
+StandardOutput=syslog
+StandardError=inherit
+ExecStart=/usr/bin/ntopng -e -w 3000
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/ntopng/ndpi_4.2.bb b/meta-networking/recipes-support/ntopng/ndpi_4.2.bb
new file mode 100644
index 0000000000..13c3398c2b
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/ndpi_4.2.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A library for deep-packet inspection."
+DESCRIPTION = "nDPI is an open source LGPLv3 library for deep-packet \
+inspection. Based on OpenDPI it includes ntop extensions"
+
+SECTION = "libdevel"
+DEPENDS = "libpcap json-c"
+RDEPENDS:${PN} += " libpcap"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
+
+SRCREV = "8b5c6af71b562549f8416b31803daae223e09f46"
+SRC_URI = "git://github.com/ntop/nDPI.git;branch=4.2-stable;protocol=https \
+ file://0001-autogen.sh-not-generate-configure.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig
+
+CPPFLAGS += "${SELECTED_OPTIMIZATION}"
+
+do_configure:prepend() {
+ ${S}/autogen.sh
+}
+
+EXTRA_OEMAKE = " \
+ libdir=${libdir} \
+"
diff --git a/meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb b/meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb
new file mode 100644
index 0000000000..110ca36866
--- /dev/null
+++ b/meta-networking/recipes-support/ntopng/ntopng_5.2.1.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Web-based Traffic and Security Network Traffic Monitoring"
+DESCRIPTION = "ntopng is a web-based network traffic monitoring application \
+released under GPLv3. It is the new incarnation of the original \
+ntop written in 1998, and now revamped in terms of performance, \
+usability, and features."
+
+SECTION = "console/network"
+
+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"
+
+SRCREV = "d3ce78948e8d81dc1e2c5298ce556f9f2247aac1"
+SRC_URI = "git://github.com/ntop/ntopng.git;protocol=https;branch=5.2-stable \
+ file://0001-configure.ac.in-fix-configure-error.patch \
+ file://0001-configure.ac.in-fix-host-contamination.patch \
+ file://0001-Makefile.in-don-t-use-the-internal-lua.patch \
+ file://0001-autogen.sh-generate-configure.ac-only.patch \
+ file://0001-configure.ac.in-not-check-clang-on-host.patch \
+ file://0001-configure.ac.in-Allow-dynamic-linking-against-ndpi-3.patch \
+ file://ntopng.service \
+ "
+
+S = "${WORKDIR}/git"
+
+# don't use the lua under thirdparty as it supports cross compiling badly
+export LUA_LIB = "${STAGING_LIBDIR}/liblua.a"
+
+LDFLAGS:append:mipsarch = " -latomic"
+LDFLAGS:append:powerpc = " -latomic"
+LDFLAGS:append:riscv32 = " -latomic"
+inherit autotools-brokensep gettext pkgconfig systemd
+
+do_install:append() {
+ install -d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${WORKDIR}/ntopng.service ${D}${systemd_unitdir}/system
+}
+
+FILES:${PN} += "\
+ ${systemd_unitdir}/system/ntopng.service"
+
+FILES:${PN}-doc += "\
+ /usr/man/man8/ntopng.8"
+
+do_configure:prepend() {
+ ${S}/autogen.sh
+}
+
+SYSTEMD_SERVICE:${PN} = "ntopng.service"
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
new file mode 100644
index 0000000000..d61a6e70b8
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp/0001-libntp-Do-not-use-PTHREAD_STACK_MIN-on-glibc.patch
@@ -0,0 +1,33 @@
+From 082a504cfcc046c3d8adaae1164268bc94e5108a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 31 Jul 2021 10:51:41 -0700
+Subject: [PATCH] libntp: Do not use PTHREAD_STACK_MIN on glibc
+
+In glibc 2.34+ PTHREAD_STACK_MIN is not a compile-time constant which
+could mean different stack sizes at runtime on different architectures
+and it also causes compile failure. Default glibc thread stack size
+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 c1fe5c2..21db4a0 100644
+--- a/libntp/work_thread.c
++++ b/libntp/work_thread.c
+@@ -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.34.1
+
diff --git a/meta-networking/recipes-support/ntp/ntp/0001-sntp-Fix-types-in-check-for-pthread_detach.patch b/meta-networking/recipes-support/ntp/ntp/0001-sntp-Fix-types-in-check-for-pthread_detach.patch
new file mode 100644
index 0000000000..ca15470ace
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp/0001-sntp-Fix-types-in-check-for-pthread_detach.patch
@@ -0,0 +1,33 @@
+From 864f43ae09d18b1114d5c894e836698743e4e44c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Sep 2022 21:36:35 -0700
+Subject: [PATCH] sntp: Fix types in check for pthread_detach
+
+New compilers are stricter and flag assigning NULL to pthread_t as error
+therefore using a pthread_t variable constructed from -1
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sntp/m4/openldap-thread-check.m4 | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/sntp/m4/openldap-thread-check.m4 b/sntp/m4/openldap-thread-check.m4
+index 7768a5c..b9e54ad 100644
+--- a/sntp/m4/openldap-thread-check.m4
++++ b/sntp/m4/openldap-thread-check.m4
+@@ -262,10 +262,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-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
new file mode 100644
index 0000000000..24019e974b
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp/0001-test-Fix-build-with-new-compiler-defaults-to-fno-com.patch
@@ -0,0 +1,56 @@
+From 778f3cddc20930185a917fa3f8ffe1ef2b0b0ea0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 31 Jul 2021 13:27:16 -0700
+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 +-
+ 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
+--- a/sntp/tests/run-packetHandling.c
++++ b/sntp/tests/run-packetHandling.c
+@@ -64,7 +64,7 @@ void resetTest(void)
+ setUp();
+ }
+
+-char const *progname;
++extern char const *progname;
+
+
+ //=======MAIN=====
+diff --git a/sntp/tests/run-t-log.c b/sntp/tests/run-t-log.c
+index 268bf41..cd835bc 100644
+--- a/sntp/tests/run-t-log.c
++++ b/sntp/tests/run-t-log.c
+@@ -50,7 +50,7 @@ void resetTest(void)
+ setUp();
+ }
+
+-char const *progname;
++extern char const *progname;
+
+
+ //=======MAIN=====
+diff --git a/sntp/tests/run-utilities.c b/sntp/tests/run-utilities.c
+index f717882..98d9bf1 100644
+--- a/sntp/tests/run-utilities.c
++++ b/sntp/tests/run-utilities.c
+@@ -58,7 +58,7 @@ void resetTest(void)
+ setUp();
+ }
+
+-char const *progname;
++extern char const *progname;
+
+
+ //=======MAIN=====
+--
+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/ntp.conf b/meta-networking/recipes-support/ntp/ntp/ntp.conf
index 676e186453..b59003092b 100644
--- a/meta-networking/recipes-support/ntp/ntp/ntp.conf
+++ b/meta-networking/recipes-support/ntp/ntp/ntp.conf
@@ -14,4 +14,8 @@ driftfile /var/lib/ntp/drift
server 127.127.1.0
fudge 127.127.1.0 stratum 14
# Defining a default security setting
-restrict default
+restrict -4 default notrap nomodify nopeer noquery
+restrict -6 default notrap nomodify nopeer noquery
+
+restrict 127.0.0.1 # allow local host
+restrict ::1 # allow local host
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 17b64d1335..0000000000
--- a/meta-networking/recipes-support/ntp/ntp/ntpdate
+++ /dev/null
@@ -1,54 +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
-
-) &
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
new file mode 100644
index 0000000000..036c61a78f
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp/reproducibility-fixed-path-to-posix-shell.patch
@@ -0,0 +1,28 @@
+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`
+- test -x "$POSIX_SHELL" && break
+- POSIX_SHELL=/usr/xpg4/bin/sh
+- test -x "$POSIX_SHELL" && break
+ 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.8p11.bb b/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb
deleted file mode 100644
index c698fa0494..0000000000
--- a/meta-networking/recipes-support/ntp/ntp_4.2.8p11.bb
+++ /dev/null
@@ -1,172 +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=e877a1d567a6a58996d2b66e3e387003"
-
-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://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[md5sum] = "00950ca2855579541896513e78295361"
-SRC_URI[sha256sum] = "f14a39f753688252d683ff907035ffff106ba8d3db21309b742e09b5c3cd278e"
-
-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 ${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 require libgcc for execution
-RDEPENDS_${PN} += "libgcc"
-# Handle move from bin to utils package
-RPROVIDES_${PN}-utils = "${PN}-bin"
-RREPLACES_${PN}-utils = "${PN}-bin"
-RCONFLICTS_${PN}-utils = "${PN}-bin"
-
-SYSTEMD_PACKAGES = "${PN} ntpdate sntp"
-SYSTEMD_SERVICE_${PN} = "ntpd.service"
-SYSTEMD_SERVICE_ntpdate = "ntpdate.service"
-SYSTEMD_SERVICE_sntp = "sntp.service"
-
-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 ${libdir} \
- ${NTP_USER_HOME} \
- ${systemd_unitdir}/ntp-units.d/60-ntpd.list ${libexecdir}\
-"
-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 \
- "
-
-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..e80ea4c149
--- /dev/null
+++ b/meta-networking/recipes-support/ntp/ntp_4.2.8p17.bb
@@ -0,0 +1,177 @@
+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"
+
+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-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/volatiles.ntpsec b/meta-networking/recipes-support/ntpsec/ntpsec/volatiles.ntpsec
new file mode 100644
index 0000000000..b5f93568cd
--- /dev/null
+++ b/meta-networking/recipes-support/ntpsec/ntpsec/volatiles.ntpsec
@@ -0,0 +1,3 @@
+d ntp ntp 0755 @NTP_USER_HOME@ none
+d ntp ntp 0755 /var/log/ntpstats none
+f ntp ntp 0644 /var/log/ntpd.log none
diff --git a/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2.bb b/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2.bb
new file mode 100644
index 0000000000..d11ada67ee
--- /dev/null
+++ b/meta-networking/recipes-support/ntpsec/ntpsec_1.2.2.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] = "2f2848760b915dfe185b9217f777738b36ceeb78a7fc208b7e74e039dec22df5"
+
+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}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
+
+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/nuttcp/nuttcp/nuttcp.socket b/meta-networking/recipes-support/nuttcp/nuttcp/nuttcp.socket
new file mode 100644
index 0000000000..a8ae74fb88
--- /dev/null
+++ b/meta-networking/recipes-support/nuttcp/nuttcp/nuttcp.socket
@@ -0,0 +1,9 @@
+[Unit]
+Description=Network Performance Testing Server Activation Socket
+
+[Socket]
+ListenStream=5000
+Accept=true
+
+[Install]
+WantedBy=sockets.target
diff --git a/meta-networking/recipes-support/nuttcp/nuttcp/nuttcp@.service b/meta-networking/recipes-support/nuttcp/nuttcp/nuttcp@.service
new file mode 100644
index 0000000000..b778e8552b
--- /dev/null
+++ b/meta-networking/recipes-support/nuttcp/nuttcp/nuttcp@.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Network Performance Testing Server
+After=local-fs.target
+
+[Service]
+User=nobody
+ExecStart=/usr/bin/nuttcp -S
+StandardInput=socket
diff --git a/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb b/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb
deleted file mode 100644
index 9430add487..0000000000
--- a/meta-networking/recipes-support/nuttcp/nuttcp_7.2.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (C) 2013 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "network performance measurement tool"
-DESCRIPTION = "nuttcp is a network performance measurement tool intended for use by network \
-and system managers. Its most basic usage is to determine the raw TCP (or UDP) \
-network layer throughput by transferring memory buffers from a source system \
-across an interconnecting network to a destination system, either transferring \
-data for a specified time interval, or alternatively transferring a specified \
-number of bytes."
-HOMEPAGE = "http://www.nuttcp.net/Welcome%20Page.html"
-LICENSE = "GPL-2.0"
-SECTION = "net"
-LIC_FILES_CHKSUM = "file://${BP}.c;beginline=4;endline=30;md5=ae7045c3c3616092e07d87f04ba0d960"
-
-SRC_URI = "http://nuttcp.net/${BPN}/beta/${BP}.c"
-SRC_URI[md5sum] = "1ebf4a08bad2a295a8155f02995e8754"
-SRC_URI[sha256sum] = "c6e33810ccce67260f8d5d627f60e429d44f532365c58ed5673d035e2a59c4db"
-
-S = "${WORKDIR}"
-
-do_compile () {
- ${CC} ${CFLAGS} ${LDFLAGS} -o nuttcp nuttcp-${PV}.c
-}
-
-do_install () {
- install -d ${D}${bindir}
- install -m 0755 nuttcp ${D}${bindir}
-}
diff --git a/meta-networking/recipes-support/nuttcp/nuttcp_8.2.2.bb b/meta-networking/recipes-support/nuttcp/nuttcp_8.2.2.bb
new file mode 100644
index 0000000000..115b51e96c
--- /dev/null
+++ b/meta-networking/recipes-support/nuttcp/nuttcp_8.2.2.bb
@@ -0,0 +1,38 @@
+SUMMARY = "network performance measurement tool"
+DESCRIPTION = "nuttcp is a network performance measurement tool intended for use by network \
+and system managers. Its most basic usage is to determine the raw TCP (or UDP) \
+network layer throughput by transferring memory buffers from a source system \
+across an interconnecting network to a destination system, either transferring \
+data for a specified time interval, or alternatively transferring a specified \
+number of bytes."
+HOMEPAGE = "http://www.nuttcp.net/Welcome%20Page.html"
+LICENSE = "GPL-2.0-only"
+SECTION = "net"
+LIC_FILES_CHKSUM = "file://${BP}.c;beginline=4;endline=30;md5=496a7c0bb83c07ff528d226bf85e05c5"
+
+UPSTREAM_CHECK_URI = "https://www.nuttcp.net/nuttcp/beta/"
+
+SRC_URI = "http://nuttcp.net/${BPN}/beta/${BP}.c \
+ file://nuttcp@.service \
+ file://nuttcp.socket"
+SRC_URI[md5sum] = "d3c92c4d2f261221193c3726c1b9a42f"
+SRC_URI[sha256sum] = "8c5595bcd27c2fd66831be74c390df078cfb1870aa427f2511ac2586d236c8a1"
+
+S = "${WORKDIR}"
+
+do_compile () {
+ ${CC} ${CFLAGS} ${LDFLAGS} -o nuttcp nuttcp-${PV}.c
+}
+
+do_install () {
+ install -d ${D}${bindir}
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0755 nuttcp ${D}${bindir}
+ install -m 0644 ${WORKDIR}/nuttcp@.service ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/nuttcp.socket ${D}${systemd_system_unitdir}
+}
+
+FILES:${PN} += " \
+ ${bindir} \
+ ${systemd_system_unitdir} \
+"
diff --git a/meta-networking/recipes-support/open-isns/files/0001-isnsd.socket-use-run-instead-of-var-run.patch b/meta-networking/recipes-support/open-isns/files/0001-isnsd.socket-use-run-instead-of-var-run.patch
new file mode 100644
index 0000000000..1dde1cae88
--- /dev/null
+++ b/meta-networking/recipes-support/open-isns/files/0001-isnsd.socket-use-run-instead-of-var-run.patch
@@ -0,0 +1,26 @@
+From 9413921d5af5e5e38541f97fee0f1aa40024a3ed Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Tue, 20 Oct 2020 13:21:57 +0800
+Subject: [PATCH] isnsd.socket: use /run instead of /var/run
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ isnsd.socket | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/isnsd.socket b/isnsd.socket
+index 652cd46..7dfcf51 100644
+--- a/isnsd.socket
++++ b/isnsd.socket
+@@ -1,5 +1,5 @@
+ [Socket]
+-ListenStream=/var/run/isnsctl
++ListenStream=/run/isnsctl
+ PassCredentials=true
+
+ [Socket]
+--
+2.17.1
+
diff --git a/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch b/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
deleted file mode 100644
index 825e2bf6ab..0000000000
--- a/meta-networking/recipes-support/open-isns/open-isns/0001-util.h-endian.h-is-available-on-musl-on-linux.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e0d86318227a23f00cf0f6639a6685bb9f5771a1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Dec 2017 09:42:19 -0800
-Subject: [PATCH] util.h: endian.h is available on musl on linux
-
-just checking for glibc alone is not enough since
-it excludes musl, therefore check for platform
-being linux as well
-
-Fixes build issues
-
-include/libisns/util.h:114:12: fatal error: sys/endian.h: No such file or directory
- # include <sys/endian.h>
- ^~~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- include/libisns/util.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/libisns/util.h b/include/libisns/util.h
-index 9a2bd13..6cc1a1b 100644
---- a/include/libisns/util.h
-+++ b/include/libisns/util.h
-@@ -100,7 +100,7 @@ enum {
- * There's no htonll yet
- */
- #ifndef htonll
--# ifdef __GLIBC__
-+# if defined(__GLIBC__) || defined(__linux__)
- # include <endian.h>
- # include <byteswap.h>
- # if __BYTE_ORDER == __BIG_ENDIAN
---
-2.15.1
-
diff --git a/meta-networking/recipes-support/open-isns/open-isns_0.102.bb b/meta-networking/recipes-support/open-isns/open-isns_0.102.bb
new file mode 100644
index 0000000000..24c520901d
--- /dev/null
+++ b/meta-networking/recipes-support/open-isns/open-isns_0.102.bb
@@ -0,0 +1,40 @@
+# Copyright (C) 2016 Joe MacDonald <joe_macdonald@mentor.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "iSNS daemon and utility programs"
+DESCRIPTION = "This is a partial implementation of RFC4171, the Internet \
+Storage Name Service (iSNS). The distribution includes the iSNS server, \
+supporting persisten storage of registrations, isnsadm, a command line \
+utility for managing nodes, and isnsdd, a corresponding discovery daemon."
+HOMEPAGE = "http://github.com/gonzoleeman/open-isns/"
+LICENSE = "GPL-2.0-or-later & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
+SECTION = "net"
+
+DEPENDS = "openssl"
+
+SRC_URI = "git://github.com/open-iscsi/open-isns;branch=master;protocol=https \
+ file://0001-isnsd.socket-use-run-instead-of-var-run.patch \
+ "
+
+SRCREV = "c0e6d9fedc5a7041260de477fe1a8455fa074113"
+
+S = "${WORKDIR}/git"
+
+inherit systemd autotools-brokensep update-rc.d
+
+EXTRA_OECONF = " --prefix=${prefix} --enable-shared"
+EXTRA_OEMAKE += "SYSTEMDDIR=${D}${systemd_unitdir}/system"
+
+do_install:append () {
+ oe_runmake INCDIR=${D}${includedir}/libisns/ install_hdrs
+ oe_runmake LIBDIR=${D}${libdir} install_lib
+
+ install -D -m 755 ${S}/etc/openisns.init ${D}${sysconfdir}/init.d/openisns
+ sed -i 's|daemon isnsd|start-stop-daemon --start --quiet --oknodo --exec ${sbindir}/isnsd --|' \
+ ${D}${sysconfdir}/init.d/openisns
+}
+
+FILES:${PN} += "${libdir} ${systemd_unitdir}"
+
+INITSCRIPT_NAME = "openisns"
diff --git a/meta-networking/recipes-support/open-isns/open-isns_0.97.bb b/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
deleted file mode 100644
index abfa7510e5..0000000000
--- a/meta-networking/recipes-support/open-isns/open-isns_0.97.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (C) 2016 Joe MacDonald <joe_macdonald@mentor.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "iSNS daemon and utility programs"
-DESCRIPTION = "This is a partial implementation of RFC4171, the Internet \
-Storage Name Service (iSNS). The distribution includes the iSNS server, \
-supporting persisten storage of registrations, isnsadm, a command line \
-utility for managing nodes, and isnsdd, a corresponding discovery daemon."
-HOMEPAGE = "http://github.com/gonzoleeman/open-isns/"
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
-SECTION = "net"
-
-DEPENDS = "openssl"
-
-SRC_URI = "git://github.com/open-iscsi/open-isns \
- file://0001-util.h-endian.h-is-available-on-musl-on-linux.patch \
- "
-
-SRCREV ?= "09954404e948e41eb0fce8e28836018b4ce3d20d"
-
-S = "${WORKDIR}/git"
-
-inherit systemd autotools-brokensep update-rc.d
-
-EXTRA_OECONF = " --prefix=${prefix} --enable-shared"
-EXTRA_OEMAKE += "SYSTEMDDIR=${D}${systemd_unitdir}/system"
-
-do_install_append () {
- oe_runmake INCDIR=${D}${includedir}/libisns/ install_hdrs
- oe_runmake LIBDIR=${D}${libdir} install_lib
-
- install -D -m 755 ${S}/etc/openisns.init ${D}${sysconfdir}/init.d/openisns
- sed -i 's|daemon isnsd|start-stop-daemon --start --quiet --oknodo --exec ${sbindir}/isnsd --|' \
- ${D}${sysconfdir}/init.d/openisns
-}
-
-FILES_${PN} += "${libdir} ${systemd_unitdir}"
-
-INITSCRIPT_NAME = "openisns"
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
new file mode 100644
index 0000000000..4a97c26185
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-Add-resolv_compat.h-for-musl-builds.patch
@@ -0,0 +1,72 @@
+From c1ee0b0a0a05379d0e6475dfceaaf41876192640 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
+
+musl doesn't implement res_ninit, so it needs to be defined
+independently for musl builds. This patch is based on the one at
+https://gitweb.gentoo.org/proj/musl.git/tree/dev-qt/qtwebengine/files/qtwebengine-5.7.0-musl-resolver.patch?id=7f4100326793d55d45d0f5bb6178827ce6173513
+
+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 +++++++++++++++++++++++
+ 2 files changed, 34 insertions(+)
+ 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 c56b73cfe..8ae3b2f74 100644
+--- a/open-vm-tools/lib/nicInfo/nicInfoPosix.c
++++ b/open-vm-tools/lib/nicInfo/nicInfoPosix.c
+@@ -70,6 +70,10 @@
+ # include <net/if.h>
+ #endif
+
++#if !defined(__GLIBC__)
++#include "resolv_compat.h"
++#endif
++
+ /*
+ * resolver(3) and IPv6:
+ *
+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 000000000..d768464b9
+--- /dev/null
++++ b/open-vm-tools/lib/nicInfo/resolv_compat.h
+@@ -0,0 +1,30 @@
++#if !defined(__GLIBC__)
++/***************************************************************************
++ * resolv_compat.h
++ *
++ * Mimick GLIBC's res_ninit() and res_nclose() for musl libc
++ * Note: res_init() is actually deprecated according to
++ * http://docs.oracle.com/cd/E36784_01/html/E36875/res-nclose-3resolv.html
++ **************************************************************************/
++#include <string.h>
++
++static inline int res_ninit(res_state statp)
++{
++ int rc = res_init();
++ if (statp != &_res) {
++ memcpy(statp, &_res, sizeof(*statp));
++ }
++ return rc;
++}
++
++static inline int res_nclose(res_state statp)
++{
++ if (!statp)
++ return -1;
++ if (statp != &_res) {
++ memset(statp, 0, sizeof(*statp));
++ }
++ return 0;
++}
++#endif
++
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..3aa21e3ec3
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
@@ -0,0 +1,41 @@
+From c953564b9f029b31381a2c630b47133ffe6a33e7 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
+
+The dnet-config tool doesn't know about cross-compilation, so it injects
+-I/usr/include into the path, causing compiler errors. So instead find dnet via
+-ldnet.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+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 3c058135a..124781f99 100644
+--- a/open-vm-tools/configure.ac
++++ b/open-vm-tools/configure.ac
+@@ -1227,7 +1227,7 @@ if test "$with_dnet" = "yes"; then
+ AC_VMW_CHECK_LIB([dnet],
+ [DNET],
+ [],
+- [dnet-config],
++ [],
+ [],
+ [dnet.h],
+ [intf_open],
+@@ -1237,7 +1237,7 @@ if test "$with_dnet" = "yes"; then
+
+ if test $have_dnet = "no"; then
+ AC_MSG_ERROR(
+- [dnet-config was not found on your PATH. Please configure without dnet or install dnet - http://libdnet.sourceforge.net])
++ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
+ fi
+ fi
+
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-timeSync-Portable-way-to-print-64bit-time_t.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-timeSync-Portable-way-to-print-64bit-time_t.patch
new file mode 100644
index 0000000000..4a4fae116a
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/0001-timeSync-Portable-way-to-print-64bit-time_t.patch
@@ -0,0 +1,54 @@
+From dcb5d3e5d47b1e01fdcde575badc51825d4f4681 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.39.0
+
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..c6af3d5ff7
--- /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 6384b37cdef4ea868c3cee27bb627e4cfbab7b50 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>
+---
+Upstream-Status: Pending
+
+ 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 124781f99..05f37f275 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/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..4b6e089ace
--- /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 6be6cda5aea42b951212ec5f8a72778b1ef9c2da 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>
+---
+Upstream-Status: Pending
+
+ 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 63c4e65f0..87d419a7b 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/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..9fe0126d30
--- /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,143 @@
+From 9d22fba096cd77101fc45420c918ec748d2cc31b 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>
+---
+Upstream-Status: Pending
+
+ 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 05f37f275..9a0c63cf6 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 1bb86f483..41c670cfc 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 de57a4a90..c56b73cfe 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..ec9aa7d2ed
--- /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 2bc09bc7d933bc3d91c687e1cc2befdaa38d2c86 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>
+---
+Upstream-Status: Pending
+
+ 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 34f3125d2..cebf4dd8d 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/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..e83fb36214
--- /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 dbe0943011c24d48de3df5a95f4e4606be0ef250 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>
+---
+Upstream-Status: Pending
+
+ 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 9a0c63cf6..5845490f6 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/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..7eac04ab56
--- /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 8c7f5895ed1f98bfc4101f8cfb93af3d13fd6bce 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>
+---
+Upstream-Status: Pending
+
+ 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 2bf97b549..b285c59c6 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..d9000b4f13
--- /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 0c695d910b3e136e116cdbe0bfc6231dfac255a1 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>
+---
+Upstream-Status: Pending
+
+ 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 b285c59c6..5c528820d 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 98f5b3f06..b436f0c7e 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 dad848093..b61a2561f 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 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 8b1fe759d..f22fcd402 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/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..9800194920
--- /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 921621a098f242953117747f5852d7e3136ae6c4 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>
+---
+Upstream-Status: Pending
+
+ 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..d3c9149f77
--- /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 b44d1d4e4ba77f1d9cf7de73a3bd210d02b5ff36 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
+
+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>
+---
+Upstream-Status: Pending
+
+ 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 87d419a7b..f5cc80b76 100644
+--- a/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
++++ b/open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
+@@ -5301,8 +5301,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/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..98eecebcfb
--- /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,34 @@
+From 39a59ab7efe98c880c783b2ccf43e5a137d2b222 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/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..c7e62da7ee
--- /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 859c21b9a21c53d936301b05044d0c649d6cf32b 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 f5cc80b76..5a79d6451 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;
+--
+2.25.1
+
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..83687460bf
--- /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,36 @@
+From 7f7e00ce582d72013cb54278548d3320e032b0dc 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.25.1
+
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools/CVE-2023-20867.patch b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/CVE-2023-20867.patch
new file mode 100644
index 0000000000..170dddf688
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/CVE-2023-20867.patch
@@ -0,0 +1,163 @@
+From 3028cdd4c0b2461b904cbe5a5868c8e591aa0941 Mon Sep 17 00:00:00 2001
+From: John Wolfe <jwolfe@vmware.com>
+Date: Mon, 8 May 2023 19:04:57 -0700
+Subject: [PATCH] Remove some dead code.
+
+Address CVE-2023-20867.
+Remove some authentication types which were deprecated long
+ago and are no longer in use. These are dead code.
+
+CVE: CVE-2023-20867
+
+Upstream-Status: Backport
+[https://github.com/vmware/open-vm-tools/blob/CVE-2023-20867.patch/2023-20867-Remove-some-dead-code.patch]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ open-vm-tools/services/plugins/vix/vixTools.c | 102 --------------------------
+ 1 file changed, 102 deletions(-)
+
+diff --git a/open-vm-tools/services/plugins/vix/vixTools.c b/open-vm-tools/services/plugins/vix/vixTools.c
+index 9f376a7..85c5ba7 100644
+--- a/open-vm-tools/services/plugins/vix/vixTools.c
++++ b/open-vm-tools/services/plugins/vix/vixTools.c
+@@ -254,8 +254,6 @@ char *gImpersonatedUsername = NULL;
+ #define VIX_TOOLS_CONFIG_API_AUTHENTICATION "Authentication"
+ #define VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS "InfrastructureAgents"
+
+-#define VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT TRUE
+-
+ /*
+ * The switch that controls all APIs
+ */
+@@ -730,9 +728,6 @@ VixError GuestAuthSAMLAuthenticateAndImpersonate(
+
+ void GuestAuthUnimpersonate();
+
+-static Bool VixToolsCheckIfAuthenticationTypeEnabled(GKeyFile *confDictRef,
+- const char *typeName);
+-
+ #if SUPPORT_VGAUTH
+
+ VGAuthError TheVGAuthContext(VGAuthContext **ctx);
+@@ -8013,29 +8008,6 @@ VixToolsImpersonateUser(VixCommandRequestHeader *requestMsg, // IN
+ userToken);
+ break;
+ }
+- case VIX_USER_CREDENTIAL_ROOT:
+- {
+- if ((requestMsg->requestFlags & VIX_REQUESTMSG_HAS_HASHED_SHARED_SECRET) &&
+- !VixToolsCheckIfAuthenticationTypeEnabled(gConfDictRef,
+- VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS)) {
+- /*
+- * Don't accept hashed shared secret if disabled.
+- */
+- g_message("%s: Requested authentication type has been disabled.\n",
+- __FUNCTION__);
+- err = VIX_E_GUEST_AUTHTYPE_DISABLED;
+- goto done;
+- }
+- }
+- // fall through
+-
+- case VIX_USER_CREDENTIAL_CONSOLE_USER:
+- err = VixToolsImpersonateUserImplEx(NULL,
+- credentialType,
+- NULL,
+- loadUserProfile,
+- userToken);
+- break;
+ case VIX_USER_CREDENTIAL_NAME_PASSWORD:
+ case VIX_USER_CREDENTIAL_NAME_PASSWORD_OBFUSCATED:
+ case VIX_USER_CREDENTIAL_NAMED_INTERACTIVE_USER:
+@@ -8205,36 +8177,6 @@ VixToolsImpersonateUserImplEx(char const *credentialTypeStr, // IN
+ }
+
+ /*
+- * If the VMX asks to be root, then we allow them.
+- * The VMX will make sure that only it will pass this value in,
+- * and only when the VM and host are configured to allow this.
+- */
+- if ((VIX_USER_CREDENTIAL_ROOT == credentialType)
+- && (thisProcessRunsAsRoot)) {
+- *userToken = PROCESS_CREATOR_USER_TOKEN;
+-
+- gImpersonatedUsername = Util_SafeStrdup("_ROOT_");
+- err = VIX_OK;
+- goto quit;
+- }
+-
+- /*
+- * If the VMX asks to be root, then we allow them.
+- * The VMX will make sure that only it will pass this value in,
+- * and only when the VM and host are configured to allow this.
+- *
+- * XXX This has been deprecated XXX
+- */
+- if ((VIX_USER_CREDENTIAL_CONSOLE_USER == credentialType)
+- && ((allowConsoleUserOps) || !(thisProcessRunsAsRoot))) {
+- *userToken = PROCESS_CREATOR_USER_TOKEN;
+-
+- gImpersonatedUsername = Util_SafeStrdup("_CONSOLE_USER_NAME_");
+- err = VIX_OK;
+- goto quit;
+- }
+-
+- /*
+ * If the VMX asks us to run commands in the context of the current
+ * user, make sure that the user who requested the command is the
+ * same as the current user.
+@@ -10917,50 +10859,6 @@ VixToolsCheckIfVixCommandEnabled(int opcode, // IN
+ /*
+ *-----------------------------------------------------------------------------
+ *
+- * VixToolsCheckIfAuthenticationTypeEnabled --
+- *
+- * Checks to see if a given authentication type has been
+- * disabled via the tools configuration.
+- *
+- * Return value:
+- * TRUE if enabled, FALSE otherwise.
+- *
+- * Side effects:
+- * None
+- *
+- *-----------------------------------------------------------------------------
+- */
+-
+-static Bool
+-VixToolsCheckIfAuthenticationTypeEnabled(GKeyFile *confDictRef, // IN
+- const char *typeName) // IN
+-{
+- char authnDisabledName[64]; // Authentication.<AuthenticationType>.disabled
+- gboolean disabled;
+-
+- Str_Snprintf(authnDisabledName, sizeof(authnDisabledName),
+- VIX_TOOLS_CONFIG_API_AUTHENTICATION ".%s.disabled",
+- typeName);
+-
+- ASSERT(confDictRef != NULL);
+-
+- /*
+- * XXX Skip doing the strcmp() to verify the auth type since we only
+- * have the one typeName (VIX_TOOLS_CONFIG_AUTHTYPE_AGENTS), and default
+- * it to VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT.
+- */
+- disabled = VMTools_ConfigGetBoolean(confDictRef,
+- VIX_TOOLS_CONFIG_API_GROUPNAME,
+- authnDisabledName,
+- VIX_TOOLS_CONFIG_INFRA_AGENT_DISABLED_DEFAULT);
+-
+- return !disabled;
+-}
+-
+-
+-/*
+- *-----------------------------------------------------------------------------
+- *
+ * VixTools_ProcessVixCommand --
+ *
+ *
+--
+2.6.2
+
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/tools.conf
index f6cae70cc5..f6cae70cc5 100644
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/tools.conf
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/tools.conf
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init
index 38280464a7..38280464a7 100644
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.init
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service
index d30e38055c..d30e38055c 100644
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools/vmtoolsd.service
diff --git a/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb b/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
new file mode 100644
index 0000000000..e12e4be7f8
--- /dev/null
+++ b/meta-networking/recipes-support/open-vm-tools/open-vm-tools_12.1.5.bb
@@ -0,0 +1,121 @@
+# 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.1.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://0001-timeSync-Portable-way-to-print-64bit-time_t.patch;patchdir=.. \
+ file://CVE-2023-20867.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 = "30339ef6ded308f0147fe80f89b9bca3ace1aef9"
+
+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"
+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/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch b/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch
deleted file mode 100644
index 25057fbce5..0000000000
--- a/meta-networking/recipes-support/openipmi/files/0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch
+++ /dev/null
@@ -1,618 +0,0 @@
-From 8b51a6bf5a4829d8add535a098c0c06a049a9958 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 22:50:57 -0700
-Subject: [PATCH] lanserv: Rename struct parameter printf for namespace
- collision
-
-This comes to fore when we use hardening flags where printf
-is treated as macro and gets replaced with printf_chk
-
-Fixes errors like
-
-error: no member named '__printf_chk' in 'struct emu_out_s'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lanserv/OpenIPMI/serv.h | 2 +-
- lanserv/emu_cmd.c | 132 ++++++++++++++++++++++++------------------------
- lanserv/ipmi_sim.c | 10 ++--
- 3 files changed, 72 insertions(+), 72 deletions(-)
-
-diff --git a/lanserv/OpenIPMI/serv.h b/lanserv/OpenIPMI/serv.h
-index d12d63a..8555c85 100644
---- a/lanserv/OpenIPMI/serv.h
-+++ b/lanserv/OpenIPMI/serv.h
-@@ -522,7 +522,7 @@ uint8_t ipmb_checksum(uint8_t *data, int size, uint8_t start);
- typedef struct emu_data_s emu_data_t;
- typedef struct emu_out_s
- {
-- void (*printf)(struct emu_out_s *out, char *format, ...);
-+ void (*eprintf)(struct emu_out_s *out, char *format, ...);
- void *data;
- } emu_out_t;
-
-diff --git a/lanserv/emu_cmd.c b/lanserv/emu_cmd.c
-index ca44032..54b6f7b 100644
---- a/lanserv/emu_cmd.c
-+++ b/lanserv/emu_cmd.c
-@@ -76,7 +76,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr,
- if (empty_ok)
- return ENOSPC;
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (str[0] == '\'') {
-@@ -86,7 +86,7 @@ emu_get_uchar(emu_out_t *out, char **toks, unsigned char *val, char *errstr,
- *val = strtoul(str, &tmpstr, 0);
- if (*tmpstr != '\0') {
- if (errstr)
-- out->printf(out, "**Invalid %s given\n", errstr);
-+ out->eprintf(out, "**Invalid %s given\n", errstr);
- return EINVAL;
- }
-
-@@ -108,7 +108,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks,
- if (empty_ok)
- return ENOSPC;
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (str[0] == '\'') {
-@@ -131,7 +131,7 @@ emu_get_uchar_with_vals(emu_out_t *out, char **toks,
- *val = strtoul(str, &tmpstr, 0);
- if (*tmpstr != '\0') {
- if (errstr)
-- out->printf(out, "**Invalid %s given\n", errstr);
-+ out->eprintf(out, "**Invalid %s given\n", errstr);
- return EINVAL;
- }
- out:
-@@ -150,12 +150,12 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr,
- if (empty_ok)
- return ENOSPC;
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (strlen(str) != size) {
- if (errstr)
-- out->printf(out, "**invalid number of bits in %s\n", errstr);
-+ out->eprintf(out, "**invalid number of bits in %s\n", errstr);
- return EINVAL;
- }
- *val = 0;
-@@ -166,7 +166,7 @@ emu_get_bitmask(emu_out_t *out, char **toks, uint16_t *val, char *errstr,
- *val |= 1 << i;
- } else {
- if (errstr)
-- out->printf(out, "**Invalid bit value '%c' in %s\n", str[j],
-+ out->eprintf(out, "**Invalid bit value '%c' in %s\n", str[j],
- errstr);
- return EINVAL;
- }
-@@ -184,13 +184,13 @@ emu_get_uint(emu_out_t *out, char **toks, unsigned int *val, char *errstr)
- str = mystrtok(NULL, " \t\n", toks);
- if (!str) {
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- *val = strtoul(str, &tmpstr, 0);
- if (*tmpstr != '\0') {
- if (errstr)
-- out->printf(out, "**Invalid %s given\n", errstr);
-+ out->eprintf(out, "**Invalid %s given\n", errstr);
- return EINVAL;
- }
-
-@@ -206,7 +206,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
-
- if (!tok) {
- if (errstr)
-- out->printf(out, "**No %s given\n", errstr);
-+ out->eprintf(out, "**No %s given\n", errstr);
- return EINVAL;
- }
- if (*tok == '"') {
-@@ -215,7 +215,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
- tok++;
- end = strlen(tok) - 1;
- if (tok[end] != '"') {
-- out->printf(out, "**ASCII %s doesn't end in '\"'", errstr);
-+ out->eprintf(out, "**ASCII %s doesn't end in '\"'", errstr);
- return EINVAL;
- }
- if (end > (len - 1))
-@@ -228,7 +228,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
- char c[3];
- /* HEX pw */
- if (strlen(tok) != 32) {
-- out->printf(out, "**HEX %s not 32 HEX characters long", errstr);
-+ out->eprintf(out, "**HEX %s not 32 HEX characters long", errstr);
- return EINVAL;
- }
- c[2] = '\0';
-@@ -239,7 +239,7 @@ emu_get_bytes(emu_out_t *out, char **tokptr, unsigned char *data, char *errstr,
- tok++;
- data[i] = strtoul(c, &end, 16);
- if (*end != '\0') {
-- out->printf(out, "**Invalid HEX character in %s", errstr);
-+ out->eprintf(out, "**Invalid HEX character in %s", errstr);
- return -1;
- }
- }
-@@ -263,12 +263,12 @@ read_command_file(emu_out_t *out, emu_data_t *emu, const char *command_file)
-
- buffer = malloc(INPUT_BUFFER_SIZE);
- if (!buffer) {
-- out->printf(out, "Could not allocate buffer memory\n");
-+ out->eprintf(out, "Could not allocate buffer memory\n");
- rv = ENOMEM;
- goto out;
- }
- while (fgets(buffer+pos, INPUT_BUFFER_SIZE-pos, f)) {
-- out->printf(out, "%s", buffer+pos);
-+ out->eprintf(out, "%s", buffer+pos);
- if (buffer[pos] == '#')
- continue;
- pos = strlen(buffer);
-@@ -318,7 +318,7 @@ sel_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_enable_sel(mc, max_records, flags);
- if (rv)
-- out->printf(out, "**Unable to enable sel, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to enable sel, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -343,9 +343,9 @@ sel_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_add_to_sel(mc, record_type, data, &r);
- if (rv)
-- out->printf(out, "**Unable to add to sel, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sel, error 0x%x\n", rv);
- else
-- out->printf(out, "Added record %d\n", r);
-+ out->eprintf(out, "Added record %d\n", r);
- return rv;
- }
-
-@@ -361,14 +361,14 @@ main_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (rv == ENOSPC)
- break;
- if (rv) {
-- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i);
-+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i);
- return rv;
- }
- }
-
- rv = ipmi_mc_add_main_sdr(mc, data, i);
- if (rv)
-- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -389,14 +389,14 @@ device_sdr_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (rv == ENOSPC)
- break;
- if (rv) {
-- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i);
-+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i);
- return rv;
- }
- }
-
- rv = ipmi_mc_add_device_sdr(mc, lun, data, i);
- if (rv)
-- out->printf(out, "**Unable to add to sdr, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sdr, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -439,7 +439,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- while (tok) {
- if (strcmp(tok, "poll") == 0) {
- if (handler) {
-- out->printf(out, "**poll given twice in sensor\n", tok);
-+ out->eprintf(out, "**poll given twice in sensor\n", tok);
- return -1;
- }
-
-@@ -449,27 +449,27 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- tok = mystrtok(NULL, " \t\n", toks);
- if (!tok) {
-- out->printf(out, "**No polled sensor handler given\n", tok);
-+ out->eprintf(out, "**No polled sensor handler given\n", tok);
- return -1;
- }
-
- handler = ipmi_sensor_find_handler(tok);
- if (!handler) {
-- out->printf(out, "**Invalid sensor handler: %s\n", tok);
-+ out->eprintf(out, "**Invalid sensor handler: %s\n", tok);
- return -1;
- }
-
- rv = handler->init(mc, lun, num, toks, handler->cb_data, &rcb_data,
- &errstr);
- if (rv) {
-- out->printf(out, "**Error initializing sensor handler: %s\n",
-+ out->eprintf(out, "**Error initializing sensor handler: %s\n",
- errstr);
- return rv;
- }
- } else if (strcmp(tok, "event-only") == 0) {
- event_only = 1;
- } else {
-- out->printf(out, "**Unknown sensor option: %s\n", tok);
-+ out->eprintf(out, "**Unknown sensor option: %s\n", tok);
- return -1;
- }
-
-@@ -477,7 +477,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- }
-
- if (handler && event_only) {
-- out->printf(out, "**An event-only sensor cannot be polled\n");
-+ out->eprintf(out, "**An event-only sensor cannot be polled\n");
- return -1;
- }
-
-@@ -488,7 +488,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (!rv && handler->postinit) {
- rv = handler->postinit(rcb_data, &errstr);
- if (rv) {
-- out->printf(out, "**Error in sensor handler postinit: %s\n",
-+ out->eprintf(out, "**Error in sensor handler postinit: %s\n",
- errstr);
- }
- }
-@@ -496,7 +496,7 @@ sensor_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- rv = ipmi_mc_add_sensor(mc, lun, num, type, code, event_only);
- }
- if (rv)
-- out->printf(out, "**Unable to add to sensor, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add to sensor, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -532,7 +532,7 @@ sensor_set_bit(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_sensor_set_bit(mc, lun, num, bit, value, gen_event);
- if (rv)
-- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -563,7 +563,7 @@ sensor_set_bit_clr_rest(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **
-
- rv = ipmi_mc_sensor_set_bit_clr_rest(mc, lun, num, bit, gen_event);
- if (rv)
-- out->printf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor bit, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -594,7 +594,7 @@ sensor_set_value(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_sensor_set_value(mc, lun, num, value, gen_event);
- if (rv)
-- out->printf(out, "**Unable to set sensor value, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor value, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -637,7 +637,7 @@ sensor_set_hysteresis(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **to
- rv = ipmi_mc_sensor_set_hysteresis(mc, lun, num, support, positive,
- negative);
- if (rv)
-- out->printf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor hysteresis, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -682,7 +682,7 @@ sensor_set_threshold(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **tok
- rv = ipmi_mc_sensor_set_threshold(mc, lun, num, support,
- enabled, 1, thresholds);
- if (rv)
-- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -759,7 +759,7 @@ sensor_set_event_support(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char *
- assert_support, deassert_support,
- assert_enabled, deassert_enabled);
- if (rv)
-- out->printf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set sensor thresholds, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -819,7 +819,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- else if (strcmp("persist_sdr", tok) == 0)
- flags |= IPMI_MC_PERSIST_SDR;
- else {
-- out->printf(out, "**Invalid MC flag: %s\n", tok);
-+ out->eprintf(out, "**Invalid MC flag: %s\n", tok);
- return -1;
- }
- }
-@@ -833,7 +833,7 @@ mc_add(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- device_revision, major_fw_rev, minor_fw_rev,
- device_support, mfg_id, product_id, flags);
- if (rv)
-- out->printf(out, "**Unable to add the MC, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add the MC, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -890,7 +890,7 @@ mc_set_power(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_set_power(mc, power, gen_int);
- if (rv)
-- out->printf(out, "**Unable to set power, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set power, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -916,7 +916,7 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- tok = mystrtok(NULL, " \t\n", toks);
- if (!tok) {
-- out->printf(out, "**No FRU data type given");
-+ out->eprintf(out, "**No FRU data type given");
- return -1;
- }
- if (strcmp(tok, "file") == 0) {
-@@ -929,13 +929,13 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = get_delim_str(toks, &frufn, &errstr);
- if (rv) {
-- out->printf(out, "**Error with FRU filename: %d", strerror(rv));
-+ out->eprintf(out, "**Error with FRU filename: %d", strerror(rv));
- return rv;
- }
- rv = ipmi_mc_add_fru_file(mc, devid, length, file_offset,
- (void *) frufn);
- if (rv)
-- out->printf(out, "**Unable to add FRU file, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add FRU file, error 0x%x\n", rv);
-
- } else if (strcmp(tok, "data") == 0) {
- for (i=0; i<length; i++) {
-@@ -943,14 +943,14 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- if (rv == ENOSPC)
- break;
- if (rv) {
-- out->printf(out, "**Error 0x%x in data byte %d\n", rv, i);
-+ out->eprintf(out, "**Error 0x%x in data byte %d\n", rv, i);
- return rv;
- }
- }
-
- rv = emu_get_uchar(out, toks, &data[i], "data byte", 1);
- if (rv != ENOSPC) {
-- out->printf(out, "**Error: input data too long for FRU\n", rv, i);
-+ out->eprintf(out, "**Error: input data too long for FRU\n", rv, i);
- return EINVAL;
- }
-
-@@ -958,9 +958,9 @@ mc_add_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_add_fru_data(mc, devid, length, NULL, data);
- if (rv)
-- out->printf(out, "**Unable to add FRU data, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to add FRU data, error 0x%x\n", rv);
- } else {
-- out->printf(out, "**FRU type not given, need file or data\n");
-+ out->eprintf(out, "**FRU type not given, need file or data\n");
- rv = EINVAL;
- }
- return rv;
-@@ -981,28 +981,28 @@ mc_dump_fru_data(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_get_fru_data_len(mc, devid, &length);
- if (rv) {
-- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
- goto out;
- }
-
- data = malloc(length);
- if (!data) {
-- out->printf(out, "**Unable to dump FRU data, out of memory\n", rv);
-+ out->eprintf(out, "**Unable to dump FRU data, out of memory\n", rv);
- goto out;
- }
-
- rv = ipmi_mc_get_fru_data(mc, devid, length, data);
- if (rv) {
-- out->printf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to dump FRU data, error 0x%x\n", rv);
- goto out;
- }
-
- for (i=0; i<length; i++) {
- if ((i > 0) && ((i % 8) == 0))
-- out->printf(out, "\n");
-- out->printf(out, " 0x%2.2x", data[i]);
-+ out->eprintf(out, "\n");
-+ out->eprintf(out, " 0x%2.2x", data[i]);
- }
-- out->printf(out, "\n");
-+ out->eprintf(out, "\n");
-
- out:
- if (data)
-@@ -1021,7 +1021,7 @@ mc_setbmc(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- return rv;
- rv = ipmi_emu_set_bmc_mc(emu, ipmb);
- if (rv)
-- out->printf(out, "**Invalid IPMB address\n");
-+ out->eprintf(out, "**Invalid IPMB address\n");
- return rv;
- }
-
-@@ -1032,7 +1032,7 @@ atca_enable(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_emu_atca_enable(emu);
- if (rv)
-- out->printf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to enable ATCA mode, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -1056,7 +1056,7 @@ atca_set_site(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_emu_atca_set_site(emu, hw_address, site_type, site_number);
- if (rv)
-- out->printf(out, "**Unable to set site type, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set site type, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -1072,7 +1072,7 @@ mc_set_num_leds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- rv = ipmi_mc_set_num_leds(mc, count);
- if (rv)
-- out->printf(out, "**Unable to set number of LEDs, error 0x%x\n", rv);
-+ out->eprintf(out, "**Unable to set number of LEDs, error 0x%x\n", rv);
- return rv;
- }
-
-@@ -1085,7 +1085,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- err = get_delim_str(toks, &filename, &errstr);
- if (err) {
-- out->printf(out, "Could not get include filename: %s\n", errstr);
-+ out->eprintf(out, "Could not get include filename: %s\n", errstr);
- return err;
- }
-
-@@ -1097,7 +1097,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- {
- char *nf = malloc(strlen(BASE_CONF_STR) + strlen(filename) + 2);
- if (!nf) {
-- out->printf(out, "Out of memory in include\n", errstr);
-+ out->eprintf(out, "Out of memory in include\n", errstr);
- goto out_err;
- }
- strcpy(nf, BASE_CONF_STR);
-@@ -1107,7 +1107,7 @@ read_cmds(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- filename = nf;
- err = read_command_file(out, emu, filename);
- if (err) {
-- out->printf(out, "Could not read include file %s\n", filename);
-+ out->eprintf(out, "Could not read include file %s\n", filename);
- }
- }
-
-@@ -1147,7 +1147,7 @@ debug_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- } else if (strcmp(tok, "sol") == 0) {
- level |= DEBUG_SOL;
- } else {
-- out->printf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n",
-+ out->eprintf(out, "Invalid debug level '%s', options are 'raw' and 'msg'\n",
- tok);
- return EINVAL;
- }
-@@ -1168,7 +1168,7 @@ persist_cmd(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
- } else if (strcmp(tok, "off") == 0) {
- persist_enable = 0;
- } else {
-- out->printf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n",
-+ out->eprintf(out, "Invalid persist vale '%s', options are 'on' and 'off'\n",
- tok);
- return EINVAL;
- }
-@@ -1194,18 +1194,18 @@ do_define(emu_out_t *out, emu_data_t *emu, lmc_data_t *mc, char **toks)
-
- name = mystrtok(NULL, " \t\n", toks);
- if (!name) {
-- out->printf(out, "No variable name given for define\n");
-+ out->eprintf(out, "No variable name given for define\n");
- return EINVAL;
- }
- err = get_delim_str(toks, &value, &errstr);
- if (err) {
-- out->printf(out, "Could not get variable %s value: %s\n", name, errstr);
-+ out->eprintf(out, "Could not get variable %s value: %s\n", name, errstr);
- return err;
- }
- err = add_variable(name, value);
- if (err) {
- free(value);
-- out->printf(out, "Out of memory setting variable %s\n", name);
-+ out->eprintf(out, "Out of memory setting variable %s\n", name);
- return err;
- }
- return 0;
-@@ -1301,7 +1301,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str)
- return rv;
- rv = ipmi_emu_get_mc_by_addr(emu, ipmb, &mc);
- if (rv) {
-- out->printf(out, "**Invalid MC address\n");
-+ out->eprintf(out, "**Invalid MC address\n");
- return rv;
- }
- }
-@@ -1312,7 +1312,7 @@ ipmi_emu_cmd(emu_out_t *out, emu_data_t *emu, char *cmd_str)
- }
- }
-
-- out->printf(out, "**Unknown command: %s\n", cmd);
-+ out->eprintf(out, "**Unknown command: %s\n", cmd);
-
- out:
- return rv;
-diff --git a/lanserv/ipmi_sim.c b/lanserv/ipmi_sim.c
-index 9472cce..30c4f27 100644
---- a/lanserv/ipmi_sim.c
-+++ b/lanserv/ipmi_sim.c
-@@ -607,8 +607,8 @@ isim_log(sys_data_t *sys, int logtype, msg_t *msg, const char *format,
-
- con = data->consoles;
- while (con) {
-- con->out.printf(&con->out, "%s", str);
-- con->out.printf(&con->out, "\n");
-+ con->out.eprintf(&con->out, "%s", str);
-+ con->out.eprintf(&con->out, "\n");
- con = con->next;
- }
- #if HAVE_SYSLOG
-@@ -956,7 +956,7 @@ console_bind_ready(int fd, void *cb_data, os_hnd_fd_id_t *id)
- newcon->shutdown_on_close = 0;
- newcon->telnet = 1;
- newcon->tn_pos = 0;
-- newcon->out.printf = emu_printf;
-+ newcon->out.eprintf = emu_printf;
- newcon->out.data = newcon;
-
- setsockopt(rv, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof(val));
-@@ -1463,10 +1463,10 @@ main(int argc, const char *argv[])
- stdio_console.telnet = 0;
- stdio_console.tn_pos = 0;
- if (nostdio) {
-- stdio_console.out.printf = dummy_printf;
-+ stdio_console.out.eprintf = dummy_printf;
- stdio_console.out.data = &stdio_console;
- } else {
-- stdio_console.out.printf = emu_printf;
-+ stdio_console.out.eprintf = emu_printf;
- stdio_console.out.data = &stdio_console;
- }
- stdio_console.next = NULL;
---
-2.14.1
-
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
new file mode 100644
index 0000000000..00956fb117
--- /dev/null
+++ b/meta-networking/recipes-support/openipmi/files/0001-m4-ax_python_devel.m4-do-not-check-for-distutils.patch
@@ -0,0 +1,41 @@
+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/do-not-install-pyc-and-pyo.patch b/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
deleted file mode 100644
index d4e02be450..0000000000
--- a/meta-networking/recipes-support/openipmi/files/do-not-install-pyc-and-pyo.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Do not install pyc and pyo for python module
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- swig/python/Makefile.am | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/swig/python/Makefile.am b/swig/python/Makefile.am
-index da95a81..97a62bf 100644
---- a/swig/python/Makefile.am
-+++ b/swig/python/Makefile.am
-@@ -33,8 +33,6 @@ CLEANFILES = OpenIPMI_wrap.c OpenIPMI.py OpenIPMI.pyo OpenIPMI.pyc
- install-exec-local: _OpenIPMI.la OpenIPMI.py OpenIPMI.pyc OpenIPMI.pyo
- $(INSTALL) -d $(DESTDIR)$(PYTHON_INSTALL_DIR)
- $(INSTALL_DATA) OpenIPMI.py "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
-- $(INSTALL_DATA) OpenIPMI.pyc "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
-- $(INSTALL_DATA) OpenIPMI.pyo "$(DESTDIR)$(PYTHON_INSTALL_DIR)"
- if test "x$(PYTHON_GUI_DIR)" = "xopenipmigui"; then \
- $(INSTALL) -d $(DESTDIR)$(bindir); \
- $(INSTALL_SCRIPT) $(srcdir)/openipmigui.py "$(DESTDIR)$(bindir)/openipmigui";\
---
-1.9.1
-
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 449142fcfa..2434884248 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,18 +1,23 @@
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date: Thu Jun 7 16:00:13 2012 -0400
+From 7854c60c92243adb14ea89e16fc226d2e47dd4f9 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
- This patch fixes the error during the install stage when
- creating a symbolic link for opeipmish in openipmi/cmdlang
-
- Upstream-Status: Pending
-
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
+This patch fixes the error during the install stage when
+creating a symbolic link for opeipmish in openipmi/cmdlang
-Index: OpenIPMI-2.0.24/cmdlang/Makefile.am
-===================================================================
---- OpenIPMI-2.0.24.orig/cmdlang/Makefile.am
-+++ OpenIPMI-2.0.24/cmdlang/Makefile.am
-@@ -35,6 +35,7 @@ openipmish_LDADD = libOpenIPMIcmdlang.l
+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
+--- a/cmdlang/Makefile.am
++++ b/cmdlang/Makefile.am
+@@ -35,6 +35,7 @@ openipmish_LDADD = libOpenIPMIcmdlang.la \
# compatability.
install-data-local:
rm -f $(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 082511a67b..61b39995a6 100644
--- a/meta-networking/recipes-support/openipmi/files/include_sys_types.patch
+++ b/meta-networking/recipes-support/openipmi/files/include_sys_types.patch
@@ -1,12 +1,25 @@
+From 4f41e090e33a00117a27f0c77b6338fb8b495f37 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
+
include sys/types.h for u_int32_t
ui.c:340:5: error: unknown type name 'u_int32_t'; did you mean 'uint32_t'?
u_int32_t addr;
^~~~~~~~~
-Index: OpenIPMI-2.0.24/ui/ui.c
-===================================================================
---- OpenIPMI-2.0.24.orig/ui/ui.c
-+++ OpenIPMI-2.0.24/ui/ui.c
+
+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
+--- a/ui/ui.c
++++ b/ui/ui.c
@@ -42,6 +42,7 @@
#include <fcntl.h>
#include <time.h>
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 51a398ba53..c4559c97b7 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,3 +1,6 @@
+From 6542ebe7a0d37dee8e9afb856feb8f6c3d334632 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
The functions success/failure/warning defined in /etc/init.d/functions
@@ -12,7 +15,7 @@ Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/ipmi.init b/ipmi.init
-index 2ebcd94..d8161c5 100644
+index ea10b11..aac9f83 100644
--- a/ipmi.init
+++ b/ipmi.init
@@ -45,17 +45,17 @@ elif [ -r /etc/init.d/functions ]; then
@@ -36,6 +39,4 @@ index 2ebcd94..d8161c5 100644
echo
;;
*)
---
-1.9.1
diff --git a/meta-networking/recipes-support/openipmi/files/openipmi-helper b/meta-networking/recipes-support/openipmi/files/openipmi-helper
index 4cebfb9c6a..4cebfb9c6a 100755..100644
--- a/meta-networking/recipes-support/openipmi/files/openipmi-helper
+++ b/meta-networking/recipes-support/openipmi/files/openipmi-helper
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 1fa68f9bac..858adc50a8 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,16 +1,19 @@
-Author: Aws Ismail <aws.ismail@windriver.com>
-Date: Thu Jun 7 12:28:34 2012 -0400
+From a6ffa3939a3ab2ad6a8d277cd8292b7dad6469c6 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
- This patch was carried over from WRL4.3 (openipmi v2.0.16)
-
- It was updated for openipmi v2.0.19
-
- Disable making openipmigui man page since we don't need it
-
- Upstream-Status: Pending
-
- Signed-off-by: Aws Ismail <aws.ismail@windriver.com>
- Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+This patch was carried over from WRL4.3 (openipmi v2.0.16)
+It was updated for openipmi v2.0.19
+Disable making openipmigui man page since we don't need it
+
+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/man/Makefile.am b/man/Makefile.am
index 632f55b..5ce79f5 100644
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
index 83485a9e60..1aea32eaec 100644
--- 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
@@ -1,4 +1,4 @@
-From aa0dc0783a6ff5fb56c914b640836223e3c192bb Mon Sep 17 00:00:00 2001
+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
@@ -7,44 +7,43 @@ Upstream-Status: Inappropriate [ cross compile specific ]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
- cmdlang/Makefile.am | 2 +-
- glib/Makefile.am | 4 ++--
- tcl/Makefile.am | 2 +-
- unix/Makefile.am | 4 ++--
- 4 files changed, 6 insertions(+), 6 deletions(-)
+ cmdlang/Makefile.am | 2 +-
+ unix/Makefile.am | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
-Index: OpenIPMI-2.0.24/cmdlang/Makefile.am
-===================================================================
---- OpenIPMI-2.0.24.orig/cmdlang/Makefile.am
-+++ OpenIPMI-2.0.24/cmdlang/Makefile.am
-@@ -15,8 +15,7 @@ libOpenIPMIcmdlang_la_SOURCES = cmdlang.
- libOpenIPMIcmdlang_la_LIBADD = -lm \
+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)
-+libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION)
+ libOpenIPMIcmdlang_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION) \
+- -L$(libdir) -no-undefined
++ -no-undefined
bin_PROGRAMS = openipmish
-Index: OpenIPMI-2.0.24/unix/Makefile.am
-===================================================================
---- OpenIPMI-2.0.24.orig/unix/Makefile.am
-+++ OpenIPMI-2.0.24/unix/Makefile.am
-@@ -10,14 +10,12 @@ lib_LTLIBRARIES = libOpenIPMIposix.la li
- libOpenIPMIpthread_la_SOURCES = posix_thread_os_hnd.c selector.c
+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)
-+libOpenIPMIpthread_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION)
+ 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)
-+libOpenIPMIposix_la_LDFLAGS = -rdynamic -version-info $(LD_VERSION)
+ 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.24.bb b/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb
deleted file mode 100644
index a4f63c5f4d..0000000000
--- a/meta-networking/recipes-support/openipmi/openipmi_2.0.24.bb
+++ /dev/null
@@ -1,110 +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 \
- python \
- swig-native \
- "
-
-LICENSE = "GPLv2 & LGPLv2.1 & BSD"
-
-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://do-not-install-pyc-and-pyo.patch \
- file://include_sys_types.patch \
- file://openipmi-helper \
- file://ipmi.service \
- file://0001-lanserv-Rename-struct-parameter-printf-for-namespace.patch \
- "
-
-S = "${WORKDIR}/OpenIPMI-${PV}"
-SRC_URI[md5sum] = "58f9542cbfcb5fe250b77cf88345e1ec"
-SRC_URI[sha256sum] = "bca39a27071278a8b74610181ede8df51e155e5e9031bc8eaa3699d1720292b4"
-
-inherit autotools-brokensep pkgconfig pythonnative perlnative update-rc.d systemd
-
-EXTRA_OECONF = "--disable-static \
- --with-perl='${STAGING_BINDIR_NATIVE}/perl-native/perl' \
- --with-python='${STAGING_BINDIR_NATIVE}/python-native/python' \
- --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"
-
-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_INSTALL_DIR/s:^PERL_INSTALL_DIR = .*:PERL_INSTALL_DIR = ${libdir}/perl/vendor_perl/$perl_ver:g" $i
- done
-}
-
-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.32.bb b/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb
new file mode 100644
index 0000000000..18f4deca16
--- /dev/null
+++ b/meta-networking/recipes-support/openipmi/openipmi_2.0.32.bb
@@ -0,0 +1,119 @@
+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/openvpn/openvpn/0001-configure.ac-eliminate-build-path-from-openvpn-versi.patch b/meta-networking/recipes-support/openvpn/openvpn/0001-configure.ac-eliminate-build-path-from-openvpn-versi.patch
new file mode 100644
index 0000000000..03b454d625
--- /dev/null
+++ b/meta-networking/recipes-support/openvpn/openvpn/0001-configure.ac-eliminate-build-path-from-openvpn-versi.patch
@@ -0,0 +1,48 @@
+From ea179d83b0aa62719d90748cd1fb260f40055f15 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Mon, 13 Jun 2022 22:44:28 +0800
+Subject: [PATCH] configure.ac: eliminate build path from openvpn --version
+ option
+
+Before the patch:
+$ openvpn --version
+OpenVPN 2.5.7 x86_64-poky-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL]
+[snip]
+Compile time defines: enable_async_push=no enable_comp_stub=no
+[snip]
+with_crypto_library=openssl with_gnu_ld=yes
+with_libtool_sysroot=/buildarea/build/tmp/work/core2-64-poky-linux/openvpn/2.5.7-r0/recipe-sysroot
+with_mem_check=no with_openssl_engine=auto
+
+After the patch:
+$ openvpn --version
+OpenVPN 2.5.7 x86_64-poky-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL]
+[snip]
+Compile time defines: enable_async_push=no enable_comp_stub=no
+[snip]
+with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no
+with_openssl_engine=auto
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 2f5f6bc..eddcbc5 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1377,7 +1377,7 @@ if test "${enable_async_push}" = "yes"; then
+ esac
+ fi
+
+-CONFIGURE_DEFINES="`set | grep '^enable_.*=' ; set | grep '^with_.*='`"
++CONFIGURE_DEFINES="`set | grep '^enable_.*=' ; set | grep '^with_.*=' | grep -v 'libtool_sysroot'`"
+ AC_DEFINE_UNQUOTED([CONFIGURE_DEFINES], ["`echo ${CONFIGURE_DEFINES}`"], [Configuration settings])
+
+ TAP_WIN_COMPONENT_ID="PRODUCT_TAP_WIN_COMPONENT_ID"
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/openvpn/openvpn/openvpn b/meta-networking/recipes-support/openvpn/openvpn/openvpn
index a3cd6a2f49..e5af4b2301 100755..100644
--- a/meta-networking/recipes-support/openvpn/openvpn/openvpn
+++ b/meta-networking/recipes-support/openvpn/openvpn/openvpn
@@ -4,6 +4,7 @@
# <rob@mars.org>, edited by iwj and cs
# Modified for openvpn by Alberto Gonzalez Iniesta <agi@agi.as>
# Modified for restarting / starting / stopping single tunnels by Richard Mueller <mueller@teamix.net>
+# Modified for respecting pid file on service start by Fabian Klemp <fabian.klemp@axino-group.com>
test $DEBIAN_SCRIPT_DEBUG && set -v -x
@@ -14,10 +15,17 @@ test -d $CONFIG_DIR || exit 0
start_vpn () {
modprobe tun >/dev/null 2>&1 || true
- $DAEMON --daemon --writepid /var/run/openvpn.$NAME.pid \
- --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || echo -n " FAILED->"
+ start-stop-daemon --start --quiet --pidfile /var/run/openvpn.$NAME.pid \
+ --exec $DAEMON -- \
+ --daemon --writepid /var/run/openvpn.$NAME.pid \
+ --config $CONFIG_DIR/$NAME.conf --cd $CONFIG_DIR || rc="$?"
+ case $rc in
+ 1) echo -n " ALREADY STARTED->";;
+ 3) echo -n " FAILED->";;
+ esac
echo -n " $NAME"
}
+
stop_vpn () {
kill `cat $PIDFILE` || true
rm $PIDFILE
diff --git a/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf b/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf
deleted file mode 100644
index 1205806d52..0000000000
--- a/meta-networking/recipes-support/openvpn/openvpn/openvpn-volatile.conf
+++ /dev/null
@@ -1 +0,0 @@
-d @LOCALSTATEDIR@/run/openvpn 0755 root root -
diff --git a/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service b/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service
deleted file mode 100644
index 358dcb791a..0000000000
--- a/meta-networking/recipes-support/openvpn/openvpn/openvpn@.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=OpenVPN Robust And Highly Flexible Tunneling Application On %I
-After=syslog.target network.target
-
-[Service]
-PrivateTmp=true
-Type=forking
-PIDFile=/var/run/openvpn/%i.pid
-ExecStart=/usr/sbin/openvpn --daemon --writepid /var/run/openvpn/%i.pid --cd /etc/openvpn/ --config %i.conf
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb b/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb
deleted file mode 100644
index 4cad998693..0000000000
--- a/meta-networking/recipes-support/openvpn/openvpn_2.4.4.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-SUMMARY = "A full-featured SSL VPN solution via tun device."
-HOMEPAGE = "http://openvpn.sourceforge.net"
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e9b64491ec98eb6c6493ac5e4118f107"
-DEPENDS = "lzo openssl iproute2 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-inherit autotools systemd
-
-SRC_URI = "http://swupdate.openvpn.org/community/releases/${BP}.tar.gz \
- file://openvpn \
- file://openvpn@.service \
- file://openvpn-volatile.conf"
-
-SRC_URI[md5sum] = "705a79d005558d94fa1e2b74e4413e97"
-SRC_URI[sha256sum] = "1ae883d9522c9fa6d189e5e4aaa058a93edd3d0b897e3c2664107c4785099fc3"
-
-SYSTEMD_SERVICE_${PN} += "openvpn@loopback-server.service openvpn@loopback-client.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-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"
-
-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/sample
- install -m 755 ${S}/sample/sample-config-files/loopback-server ${D}${sysconfdir}/openvpn/sample/loopback-server.conf
- install -m 755 ${S}/sample/sample-config-files/loopback-client ${D}${sysconfdir}/openvpn/sample/loopback-client.conf
- install -dm 755 ${D}${sysconfdir}/openvpn/sample/sample-keys
- install -m 644 ${S}/sample/sample-keys/* ${D}${sysconfdir}/openvpn/sample/sample-keys
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-server.service
- install -m 644 ${WORKDIR}/openvpn@.service ${D}/${systemd_unitdir}/system/openvpn@loopback-client.service
-
- install -d ${D}/${localstatedir}
- install -d ${D}/${localstatedir}/lib
- install -d -m 710 ${D}/${localstatedir}/lib/openvpn
-
- install -d ${D}${sysconfdir}/tmpfiles.d
- install -m 0644 ${WORKDIR}/openvpn-volatile.conf ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
- sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/tmpfiles.d/openvpn.conf
- fi
-}
-
-PACKAGES =+ " ${PN}-sample "
-
-RRECOMMENDS_${PN} = "kernel-module-tun"
-
-FILES_${PN}-dbg += "${libdir}/openvpn/plugins/.debug"
-FILES_${PN} += "${systemd_unitdir}/system/openvpn@.service \
- ${sysconfdir}/tmpfiles.d \
- "
-FILES_${PN}-sample += "${systemd_unitdir}/system/openvpn@loopback-server.service \
- ${systemd_unitdir}/system/openvpn@loopback-client.service \
- ${sysconfdir}/openvpn/sample/"
diff --git a/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb b/meta-networking/recipes-support/openvpn/openvpn_2.6.3.bb
new file mode 100644
index 0000000000..a5fc158749
--- /dev/null
+++ b/meta-networking/recipes-support/openvpn/openvpn_2.6.3.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=3170e982baae61dbb8de963317d1ac94"
+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] = "13b207a376d8880507c74ff78aabc3778a9da47c89f1e247dcee3c7237138ff6"
+
+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/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
new file mode 100644
index 0000000000..26f8afe4d6
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2/0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch
@@ -0,0 +1,33 @@
+From 5d335b5ddd052f047759cae0e9b94ec49f9f3884 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Mon, 20 Mar 2023 02:03:04 +0000
+Subject: [PATCH] pgpool2: Fix unknown type name 'fd_set' error with musl.
+
+| read.c: In function 'read_until_ready_for_query':
+| read.c:53:24: error: storage size of 'timeoutval' isn't known
+| 53 | struct timeval timeoutval;
+| | ^~~~~~~~~~
+| read.c:54:9: error: unknown type name 'fd_set'
+| 54 | fd_set readmask;
+| | ^~~~~~
+
+Upstream-Status: Inappropriate [embedded specific]
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ src/tools/pgproto/read.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/tools/pgproto/read.c b/src/tools/pgproto/read.c
+index c7fb548..4efe641 100644
+--- a/src/tools/pgproto/read.c
++++ b/src/tools/pgproto/read.c
+@@ -19,6 +19,7 @@
+ #include "../../include/config.h"
+ #include "pgproto/pgproto.h"
+ #include <unistd.h>
++#include <sys/select.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+--
+2.34.1
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.4.1.bb b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
new file mode 100644
index 0000000000..efb563b81a
--- /dev/null
+++ b/meta-networking/recipes-support/pgpool2/pgpool2_4.4.1.bb
@@ -0,0 +1,53 @@
+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://0001-pgpool2-Fix-unknown-type-name-fd_set-error-with-musl.patch \
+ file://pgpool.sysconfig \
+ file://pgpool.service \
+ "
+SRC_URI[sha256sum] = "4b379bbba8e178128a1cee4a5bd1ae116dedb3da6121b728c18f0f54c881f328"
+
+S = "${WORKDIR}/pgpool-II-${PV}"
+
+inherit autotools 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 \
+ "
+B = "${S}"
+CFLAGS:append = " -fcommon "
+
+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 4ed3ed1e40..c2c4335910 100644
--- a/meta-networking/recipes-support/phytool/phytool.bb
+++ b/meta-networking/recipes-support/phytool/phytool.bb
@@ -1,10 +1,10 @@
SUMMARY = "PHY interface tool for Linux"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
-PV = "1.0.1+git${SRCPV}"
-SRCREV = "3149bfdb4f513e2f0da0a7d0bc5d0873578696f2"
-SRC_URI = "git://github.com/wkz/phytool.git"
+PV = "2+git${SRCPV}"
+SRCREV = "8882328c08ba2efb13c049812098f1d0cb8adf0c"
+SRC_URI = "git://github.com/wkz/phytool.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
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 2faa7cb1ce..2b622ae6d0 100644
--- a/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
+++ b/meta-networking/recipes-support/pimd/pimd_2.3.2.bb
@@ -10,11 +10,15 @@ SRC_URI = "ftp://ftp.troglobit.com/pimd/${BP}.tar.gz \
SRC_URI[md5sum] = "a3c03e40540980b2c06e265a17988e60"
SRC_URI[sha256sum] = "c77a9812751f114490a28a6839b16aac8b020c8d9fd6aa22bf3880c054e19f1d"
-EXTRA_OECONF_append_libc-musl = " --embedded-libc"
+EXTRA_OECONF:append:libc-musl = " --embedded-libc"
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
do_configure() {
oe_runconf
}
+ALTERNATIVE_PRIORITY = "100"
+
+ALTERNATIVE:${PN} = "pimd"
+ALTERNATIVE_LINK_NAME[pimd] = "${sbindir}/pimd"
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch
deleted file mode 100644
index 4b595613fa..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core/0001-Remove-man-files-which-cant-be-built.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 5a8a2f81ef8650f06d1d9d268add612ab46025f1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Jun 2018 22:57:04 -0700
-Subject: [PATCH] Remove man files which cant be built
-
-Remove need for pandoc-prebuilt during cross build
-
-Fixes errors
-
-| CMake Error at libibumad/man/cmake_install.cmake:105 (file):
-| file INSTALL cannot find
-| "/mnt/a/oe/build/tmp/work/core2-64-bec-linux-musl/rdma-core/18.1-r0/git/buildlib/pandoc-prebuilt/41bbb0bed7a781be59e8c0dcd8b7278af2ce6882".
-| Call Stack (most recent call first):
-| cmake_install.cmake:48 (include)
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libibumad/man/CMakeLists.txt | 1 -
- libibverbs/man/CMakeLists.txt | 15 ---------------
- providers/mlx5/man/CMakeLists.txt | 1 -
- 3 files changed, 17 deletions(-)
-
-diff --git a/libibumad/man/CMakeLists.txt b/libibumad/man/CMakeLists.txt
-index 185584a0..ac45a4e9 100644
---- a/libibumad/man/CMakeLists.txt
-+++ b/libibumad/man/CMakeLists.txt
-@@ -15,7 +15,6 @@ rdma_man_pages(
- umad_get_mad_addr.3
- umad_get_pkey.3
- umad_get_port.3
-- umad_init.3.md
- umad_open_port.3
- umad_poll.3
- umad_recv.3
-diff --git a/libibverbs/man/CMakeLists.txt b/libibverbs/man/CMakeLists.txt
-index 86dd49de..b54675be 100644
---- a/libibverbs/man/CMakeLists.txt
-+++ b/libibverbs/man/CMakeLists.txt
-@@ -5,7 +5,6 @@ rdma_man_pages(
- ibv_alloc_pd.3
- ibv_alloc_td.3
- ibv_asyncwatch.1
-- ibv_attach_mcast.3.md
- ibv_bind_mw.3
- ibv_create_ah.3
- ibv_create_ah_from_wc.3
-@@ -14,7 +13,6 @@ rdma_man_pages(
- ibv_create_cq_ex.3
- ibv_modify_cq.3
- ibv_create_flow.3
-- ibv_create_flow_action.3.md
- ibv_create_qp.3
- ibv_create_qp_ex.3
- ibv_create_rwq_ind_table.3
-@@ -23,15 +21,9 @@ rdma_man_pages(
- ibv_create_wq.3
- ibv_devices.1
- ibv_devinfo.1
-- ibv_event_type_str.3.md
-- ibv_fork_init.3.md
- ibv_get_async_event.3
- ibv_get_cq_event.3
-- ibv_get_device_guid.3.md
- ibv_get_device_list.3
-- ibv_get_device_name.3.md
-- ibv_get_srq_num.3.md
-- ibv_inc_rkey.3.md
- ibv_modify_qp.3
- ibv_modify_qp_rate_limit.3
- ibv_modify_srq.3
-@@ -46,19 +38,12 @@ rdma_man_pages(
- ibv_post_srq_recv.3
- ibv_query_device.3
- ibv_query_device_ex.3
-- ibv_query_gid.3.md
-- ibv_query_pkey.3.md
- ibv_query_port.3
- ibv_query_qp.3
- ibv_query_rt_values_ex.3
- ibv_query_srq.3
-- ibv_rate_to_mbps.3.md
-- ibv_rate_to_mult.3.md
- ibv_rc_pingpong.1
- ibv_reg_mr.3
-- ibv_req_notify_cq.3.md
-- ibv_rereg_mr.3.md
-- ibv_resize_cq.3.md
- ibv_srq_pingpong.1
- ibv_uc_pingpong.1
- ibv_ud_pingpong.1
-diff --git a/providers/mlx5/man/CMakeLists.txt b/providers/mlx5/man/CMakeLists.txt
-index cdc7115e..876b6fcf 100644
---- a/providers/mlx5/man/CMakeLists.txt
-+++ b/providers/mlx5/man/CMakeLists.txt
-@@ -1,5 +1,4 @@
- rdma_man_pages(
-- mlx5dv_flow_action_esp.3.md
- mlx5dv_get_clock_info.3
- mlx5dv_init_obj.3
- mlx5dv_query_device.3
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch
deleted file mode 100644
index b04c9b7230..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core/0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From f2df1db11f3a9580774300e703b6f53dbcdb28ef Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 8 Jun 2018 20:17:57 -0700
-Subject: [PATCH] S_IFSOCK is defined in both glibc/musl
-
-Fixes
-
-preload.c:1183:46: error: '__S_IFSOCK' undeclared (first use in this function); did you mean 'S_IFSOCK'?
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- librdmacm/preload.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/librdmacm/preload.c b/librdmacm/preload.c
-index 0f2aa250..d46beb1b 100644
---- a/librdmacm/preload.c
-+++ b/librdmacm/preload.c
-@@ -1180,7 +1180,7 @@ int __fxstat(int ver, int socket, struct stat *buf)
- if (fd_get(socket, &fd) == fd_rsocket) {
- ret = real.fxstat(ver, socket, buf);
- if (!ret)
-- buf->st_mode = (buf->st_mode & ~S_IFMT) | __S_IFSOCK;
-+ buf->st_mode = (buf->st_mode & ~S_IFMT) | S_IFSOCK;
- } else {
- ret = real.fxstat(ver, fd, buf);
- }
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..03ba872616
--- /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,33 @@
+From 92747aab189aa3cee954ab31ee019205f8984155 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 9b7462861..c4d82fb49 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -226,7 +226,10 @@ else()
+ set(CYTHON_EXECUTABLE "")
+ 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()
+--
+2.40.1
+
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch
deleted file mode 100644
index aa335244b6..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core/0001-include-endian.h-for-htole32-and-friends.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 65b9a47c07be4611b4fbbcafff1993186bcb0537 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Jun 2018 19:15:52 -0700
-Subject: [PATCH 1/2] include endian.h for htole32 and friends
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- providers/hns/hns_roce_u.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/providers/hns/hns_roce_u.h b/providers/hns/hns_roce_u.h
-index bd66c6e7..b07424db 100644
---- a/providers/hns/hns_roce_u.h
-+++ b/providers/hns/hns_roce_u.h
-@@ -34,6 +34,7 @@
- #define _HNS_ROCE_U_H
-
- #include <stddef.h>
-+#include <endian.h>
- #include <util/compiler.h>
-
- #include <infiniband/driver.h>
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch
deleted file mode 100644
index 347f964e94..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core/0002-Remove-unused-include-for-execinfo.h.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 3d9cae15c69c0b3260a024ad5d6802a8d85515a2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Jun 2018 19:18:24 -0700
-Subject: [PATCH 2/2] Remove unused include for execinfo.h
-
-Fixes build on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- providers/qedr/qelr_verbs.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/providers/qedr/qelr_verbs.c b/providers/qedr/qelr_verbs.c
-index e3b01f28..2ee1c832 100644
---- a/providers/qedr/qelr_verbs.c
-+++ b/providers/qedr/qelr_verbs.c
-@@ -54,7 +54,6 @@
-
- #include <stdio.h>
- #include <stdlib.h>
--#include <execinfo.h>
-
- #define QELR_SQE_ELEMENT_SIZE (sizeof(struct rdma_sq_sge))
- #define QELR_RQE_ELEMENT_SIZE (sizeof(struct rdma_rq_sge))
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch b/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch
deleted file mode 100644
index e887f222b0..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core/0002-neigh.c-Do-not-include-net-if_packet.h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 82486f7e1ee2aa07a5c12cb357834993aa8c1d20 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 8 Jun 2018 20:19:13 -0700
-Subject: [PATCH] neigh.c: Do not include net/if_packet.h
-
-This header is glibc specific
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libibverbs/neigh.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/libibverbs/neigh.c b/libibverbs/neigh.c
-index 21177db0..cfc593a0 100644
---- a/libibverbs/neigh.c
-+++ b/libibverbs/neigh.c
-@@ -2,7 +2,6 @@
- */
-
- #include "config.h"
--#include <net/if_packet.h>
- #include <linux/netlink.h>
- #include <linux/rtnetlink.h>
- #include <endian.h>
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb b/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb
deleted file mode 100644
index 6ad864d1e8..0000000000
--- a/meta-networking/recipes-support/rdma-core/rdma-core_18.1.bb
+++ /dev/null
@@ -1,30 +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=stable-v18 \
- file://0001-S_IFSOCK-is-defined-in-both-glibc-musl.patch \
- file://0002-neigh.c-Do-not-include-net-if_packet.h.patch \
- file://0001-include-endian.h-for-htole32-and-friends.patch \
- file://0002-Remove-unused-include-for-execinfo.h.patch \
- file://0001-Remove-man-files-which-cant-be-built.patch \
- "
-SRCREV = "7844b3fbe5120623d63b29ecb43eb83a61129658"
-S = "${WORKDIR}/git"
-
-#Default Dual License https://github.com/linux-rdma/rdma-core/blob/master/COPYING.md
-LICENSE = "BSD-2-Clause | GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.BSD_FB;md5=0ec18bae1a9df92c8d6ae01f94a289ae \
- file://COPYING.GPL2;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-
-FILES_SOLIBSDEV = ""
-FILES_${PN} += "${libdir}/*"
-INSANE_SKIP_${PN} += "dev-so"
-
-inherit cmake
-
-OECMAKE_FIND_ROOT_PATH_MODE_PROGRAM = "BOTH"
diff --git a/meta-networking/recipes-support/rdma-core/rdma-core_46.0.bb b/meta-networking/recipes-support/rdma-core/rdma-core_46.0.bb
new file mode 100644
index 0000000000..a6927f566d
--- /dev/null
+++ b/meta-networking/recipes-support/rdma-core/rdma-core_46.0.bb
@@ -0,0 +1,44 @@
+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"
+SRCREV = "f2789cbd394c5839e8942d585a494ab72fd97e39"
+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/files/0001-Fix-build-with-format-string-checks.patch b/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch
index f8eb3ae67a..8ca26b51bb 100644
--- a/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch
+++ b/meta-networking/recipes-support/ruli/files/0001-Fix-build-with-format-string-checks.patch
@@ -15,11 +15,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
src/ruli_addr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/ruli_addr.c b/src/ruli_addr.c
-index 00d5d0d..f1eabae 100644
--- a/src/ruli_addr.c
+++ b/src/ruli_addr.c
-@@ -415,7 +415,7 @@ int ruli_in_print(FILE *out, const _ruli_addr *addr, int family)
+@@ -415,7 +415,7 @@ int ruli_in_print(FILE *out, const _ruli
{
switch (family) {
case PF_INET:
@@ -28,6 +26,25 @@ index 00d5d0d..f1eabae 100644
case PF_INET6:
return ruli_inet6_print(out, &addr->ipv6);
---
-2.13.1
-
+--- a/sample/getaddrinfo.c
++++ b/sample/getaddrinfo.c
+@@ -174,7 +174,7 @@ static void solve(const char *fullname)
+
+ for (ai = ai_res; ai; ai = ai->ai_next) {
+
+- printf(fullname);
++ printf("%s", fullname);
+
+ switch (ai->ai_family) {
+ case PF_INET:
+--- a/sample/ruli-getaddrinfo.c
++++ b/sample/ruli-getaddrinfo.c
+@@ -176,7 +176,7 @@ static void solve(const char *fullname)
+
+ for (ai = ai_res; ai; ai = ai->ai_next) {
+
+- printf(fullname);
++ printf("%s", fullname);
+
+ switch (ai->ai_family) {
+ case PF_INET:
diff --git a/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch b/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch
new file mode 100644
index 0000000000..c3ca07a390
--- /dev/null
+++ b/meta-networking/recipes-support/ruli/files/0001-Make-space-for-flags-from-environment.patch
@@ -0,0 +1,95 @@
+From bb19a2c7e5b3142d70d3e13c2d8a92a63f2b840a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Nov 2019 22:12:52 -0800
+Subject: [PATCH] Make space for flags from environment
+
+Add force option to ln cmd, so do_install can be rerun in same directory
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sample/Makefile | 20 ++++++++++----------
+ src/Makefile | 8 ++++----
+ 2 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/sample/Makefile b/sample/Makefile
+index 15cafd9..d83641f 100644
+--- a/sample/Makefile
++++ b/sample/Makefile
+@@ -35,9 +35,9 @@ ifeq ($(PLATFORM),SunOS)
+ SOLARIS_LIBS = -lresolv -lnsl -lsocket
+ endif
+
+-CC = gcc
+-CFLAGS = -O2 -pipe -Wall -g -I../src -I$(OOP_INCLUDE_DIR)
+-LDFLAGS = -L../src -L$(OOP_LIB_DIR) $(SOLARIS_LDFLAGS)
++CC ?= gcc
++CFLAGS += -O2 -pipe -Wall -g -I../src -I$(OOP_INCLUDE_DIR)
++LDFLAGS += -L../src -L$(OOP_LIB_DIR) $(SOLARIS_LDFLAGS)
+ UNRULI_LINK = $(CC) $(ARCH) $(LDFLAGS) -o $@ $^ $(SOLARIS_LIBS)
+ LINK = $(UNRULI_LINK) -lruli -loop
+
+@@ -65,13 +65,13 @@ install: $(TARGETS)
+ mkdir -p $(INSTALL_BIN_DIR) $(INSTALL_MAN1_DIR)
+ cp $(TARGETS) $(INSTALL_BIN_DIR)
+ cp ../doc/man/*.1 $(INSTALL_MAN1_DIR)
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 smtpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 httpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 sync_srvsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 sync_smtpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 sync_httpsearch.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 ruli-getaddrinfo.1
+- cd $(INSTALL_MAN_DIR)/man1 && ln -s srvsearch.1 getaddrinfo.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 smtpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 httpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 sync_srvsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 sync_smtpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 sync_httpsearch.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 ruli-getaddrinfo.1
++ cd $(INSTALL_MAN_DIR)/man1 && ln -sf srvsearch.1 getaddrinfo.1
+
+ %.o: %.c
+ $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c $<
+diff --git a/src/Makefile b/src/Makefile
+index 9b56b5e..39a5ea1 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -45,7 +45,7 @@ endif
+
+ WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \
+ -Wcast-align -Wwrite-strings -Wredundant-decls
+-CC = gcc
++CC ?= gcc
+
+ # gcc-specific options (not valid for g++)
+ ifeq ($(CC),gcc)
+@@ -58,7 +58,7 @@ SHARED = -fPIC
+ FLAGS = $(DEBUG) -O2 -pipe -Wall -g -shared -D_REENTRANT \
+ $(DEFINE_SOLARIS) -I. -I$(OOP_INCLUDE_DIR)
+ SOFT_CFLAGS = $(WARN) $(FLAGS)
+-CFLAGS = $(WARN) -Werror $(FLAGS)
++CFLAGS += $(WARN) -Werror $(FLAGS)
+ LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \
+ ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \
+ ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \
+@@ -66,7 +66,7 @@ LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \
+ ruli_getaddrinfo.o
+ SHAREDOBJ = $(LIBOBJ:%.o=%.os)
+ SONAME = libruli.so.4
+-LDFLAGS = -L$(OOP_LIB_DIR)
++LDFLAGS += -L$(OOP_LIB_DIR)
+
+ COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c
+ SHARED_COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(SHARED) $(CFLAGS) -o $@ -c
+@@ -95,7 +95,7 @@ install: ruli
+ cp $(SONAME) libruli.a $(INSTALL_LIB_DIR)
+ cp *.h $(INSTALL_INCLUDE_DIR)
+ cp ../doc/man/*.3 $(INSTALL_MAN3_DIR)
+- cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so
++ cd $(INSTALL_LIB_DIR) && ln -sf $(SONAME) libruli.so
+ @echo
+ @echo "REMINDER:"
+ @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:"
+--
+2.24.0
+
diff --git a/meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch b/meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch
new file mode 100644
index 0000000000..213006a677
--- /dev/null
+++ b/meta-networking/recipes-support/ruli/files/0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch
@@ -0,0 +1,35 @@
+From 895ae26e36c4498677ad0b2695a6e5af05548a29 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Nov 2019 22:02:43 -0800
+Subject: [PATCH] ruli_srv: Mark prev_addr_list_size as unused
+
+This ensures that compiler does not trip on building it
+
+ruli_srv.c:157:20: error: variable 'prev_addr_list_size' set but not used [-Werror=unused-but-set-variable]
+| int prev_addr_list_size;
+| ^~~~~~~~~~~~~~~~~~~
+cc1: all warnings being treated as errors
+
+Upstream-Status: Inappropriate [Workaround]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/ruli_srv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ruli_srv.c b/src/ruli_srv.c
+index 45c70c7..ff82349 100644
+--- a/src/ruli_srv.c
++++ b/src/ruli_srv.c
+@@ -154,7 +154,7 @@ static void *on_walk_answer(ruli_host_t *host_qry, void *qry_arg)
+ walk_t *walk_qry = (walk_t *) qry_arg;
+ ruli_srv_t *srv_qry = walk_qry->srv_query;
+ ruli_srv_entry_t *srv_entry;
+- int prev_addr_list_size;
++ __attribute__((unused)) int prev_addr_list_size;
+
+ assert(ruli_host_answer_code(host_qry) != RULI_SRV_CODE_VOID);
+
+--
+2.24.0
+
diff --git a/meta-networking/recipes-support/ruli/files/Makefile.patch b/meta-networking/recipes-support/ruli/files/Makefile.patch
deleted file mode 100644
index 60789a3d56..0000000000
--- a/meta-networking/recipes-support/ruli/files/Makefile.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-diff -Naur patch.org/ruli-0.36/Makefile patch.new/ruli-0.36/Makefile
---- ruli-0.36/Makefile 2015-09-10 15:14:13.952262350 -0400
-+++ ruli-0.36/Makefile 2015-09-10 15:14:38.628261620 -0400
-@@ -7,17 +7,17 @@
- .PHONY: default
- default:
- $(MAKE) -C src
-- $(MAKE) -C sample
-+# $(MAKE) -C sample
-
- .PHONY: clean
- clean:
- $(MAKE) -C src clean
-- $(MAKE) -C sample clean
-+# $(MAKE) -C sample clean
-
- .PHONY: install
- install:
- $(MAKE) -C src install
-- $(MAKE) -C sample install
-+# $(MAKE) -C sample install
-
- .PHONY: dpkg
- dpkg:
-
-=====================================================================
-
-diff -Naur patch.org/git/src/Makefile patch.new/git/src/Makefile
---- ruli-0.36/src/Makefile 2005-06-13 12:34:53.000000000 -0400
-+++ ruli-0.36/src/Makefile 2015-09-11 09:46:06.290287347 -0400
-@@ -18,9 +18,9 @@
- #
- # Debian packaging likes this: OOP_BASE_DIR = /usr
- #
--OOP_BASE_DIR = /usr/local/oop
--OOP_INCLUDE_DIR = $(OOP_BASE_DIR)/include
--OOP_LIB_DIR = $(OOP_BASE_DIR)/lib
-+#OOP_BASE_DIR = /usr/local/oop
-+OOP_INCLUDE_DIR = ${PKG_CONFIG_SYSROOT_DIR}/$(includedir)/
-+#OOP_LIB_DIR = $(OOP_BASE_DIR)/lib
-
- #
- # INSTALL_BASE_DIR indicates where RULI
-@@ -30,11 +30,11 @@
- #
- # Debian packaging likes this: INSTALL_BASE_DIR = $(DESTDIR)/usr
- #
--INSTALL_BASE_DIR = ../install/ruli
--INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include
--INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib
--INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man
--INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3
-+#INSTALL_BASE_DIR = ../install/ruli
-+#INSTALL_INCLUDE_DIR = $(INSTALL_BASE_DIR)/include
-+#INSTALL_LIB_DIR = $(INSTALL_BASE_DIR)/lib
-+#INSTALL_MAN_DIR = $(INSTALL_BASE_DIR)/share/man
-+#INSTALL_MAN3_DIR = $(INSTALL_MAN_DIR)/man3
-
- # SunOS, Linux
- PLATFORM=$(shell uname)
-@@ -45,7 +45,7 @@
-
- WARN = -pedantic -ansi -Wshadow -Wpointer-arith -Wcast-qual \
- -Wcast-align -Wwrite-strings -Wredundant-decls
--CC = gcc
-+#CC = gcc
-
- # gcc-specific options (not valid for g++)
- ifeq ($(CC),gcc)
-@@ -58,7 +58,7 @@
- FLAGS = $(DEBUG) -O2 -pipe -Wall -g -shared -D_REENTRANT \
- $(DEFINE_SOLARIS) -I. -I$(OOP_INCLUDE_DIR)
- SOFT_CFLAGS = $(WARN) $(FLAGS)
--CFLAGS = $(WARN) -Werror $(FLAGS)
-+CFLAGS = $(WARN) $(FLAGS)
- LIBOBJ = ruli_isaac.o ruli_mem.o ruli_rand.o ruli_util.o ruli_list.o \
- ruli_addr.o ruli_sock.o ruli_txt.o ruli_msg.o ruli_fsm.o \
- ruli_res.o ruli_parse.o ruli_host.o ruli_srv.o ruli_conf.o \
-@@ -66,7 +66,7 @@
- ruli_getaddrinfo.o
- SHAREDOBJ = $(LIBOBJ:%.o=%.os)
- SONAME = libruli.so.4
--LDFLAGS = -L$(OOP_LIB_DIR)
-+#LDFLAGS = -L$(OOP_LIB_DIR)
-
- COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(CFLAGS) -c
- SHARED_COMPILE = $(CC) $(ARCH) $(CPPFLAGS) $(SHARED) $(CFLAGS) -o $@ -c
-@@ -89,19 +89,19 @@
- strip: ruli
- strip $(SONAME) libruli.a
-
--.PHONY: install
--install: ruli
-- mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR)
-- cp $(SONAME) libruli.a $(INSTALL_LIB_DIR)
-- cp *.h $(INSTALL_INCLUDE_DIR)
-- cp ../doc/man/*.3 $(INSTALL_MAN3_DIR)
-- cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so
-- @echo
-- @echo "REMINDER:"
-- @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:"
-- @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf"
-- @echo "# ldconfig"
-- @echo
-+#.PHONY: install
-+#install: ruli
-+# mkdir -p $(INSTALL_LIB_DIR) $(INSTALL_INCLUDE_DIR) $(INSTALL_MAN3_DIR)
-+# cp $(SONAME) libruli.a $(INSTALL_LIB_DIR)
-+# cp *.h $(INSTALL_INCLUDE_DIR)
-+# cp ../doc/man/*.3 $(INSTALL_MAN3_DIR)
-+# cd $(INSTALL_LIB_DIR) && ln -s $(SONAME) libruli.so
-+# @echo
-+# @echo "REMINDER:"
-+# @echo "Add $(INSTALL_LIB_DIR) to your dynamic loader path:"
-+# @echo "# echo $(INSTALL_LIB_DIR) >> /etc/ld.so.conf"
-+# @echo "# ldconfig"
-+# @echo
-
- .PHONY: ruli
- ruli: $(SONAME) libruli.a
-
-
diff --git a/meta-networking/recipes-support/ruli/files/float-conversion.patch b/meta-networking/recipes-support/ruli/files/float-conversion.patch
new file mode 100644
index 0000000000..999f23fc6a
--- /dev/null
+++ b/meta-networking/recipes-support/ruli/files/float-conversion.patch
@@ -0,0 +1,19 @@
+clarify type conversion
+
+fixes
+| ruli_rand.c:54:47: error: implicit conversion from 'unsigned int' to 'float' changes value from 4294967295 to 4294967296 [-Werror,-Wimplicit-int-float-conversion]
+|
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/ruli_rand.c
++++ b/src/ruli_rand.c
+@@ -51,7 +51,7 @@ int ruli_rand_next(ruli_rand_t *rand_ctx
+
+ u = isaac_rand(&rand_ctx->isaac_ctx);
+
+- r = (int) ((float) (1.0 + max - min) * u / ISAAC_UB4MAXVAL + min);
++ r = (int) ((float) (1.0 + max - min) * u / (float) (ISAAC_UB4MAXVAL + min));
+
+ assert(min <= r);
+ assert(r <= max);
diff --git a/meta-networking/recipes-support/ruli/ruli_0.36.bb b/meta-networking/recipes-support/ruli/ruli_0.36.bb
index 885796d2a5..178906b7b5 100644
--- a/meta-networking/recipes-support/ruli/ruli_0.36.bb
+++ b/meta-networking/recipes-support/ruli/ruli_0.36.bb
@@ -2,24 +2,33 @@ SUMMARY = "RULI stands for Resolver User Layer Interface It's a library built on
HOMEPAGE = "http://www.nongnu.org/ruli/"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
DEPENDS = "liboop"
SRC_URI = "http://download.savannah.gnu.org/releases/ruli/ruli_${PV}.orig.tar.gz \
- file://Makefile.patch \
file://0001-Fix-build-with-format-string-checks.patch \
file://0001-src-ruli_addr.c-Add-missing-format-string.patch \
+ file://0001-ruli_srv-Mark-prev_addr_list_size-as-unused.patch \
+ file://0001-Make-space-for-flags-from-environment.patch \
+ file://float-conversion.patch \
"
SRC_URI[md5sum] = "e73fbfdeadddb68a703a70cea5271468"
SRC_URI[sha256sum] = "11d32def5b514748fbd9ea8c88049ae99e1bb358efc74eb91a4d268a3999dbfa"
-do_install1() {
- install -d ${D}${includedir}/ruli
- install -d ${D}${libdir}
- install -m 0644 ${S}/src/ruli*.h ${D}${includedir}/ruli
- install -m 0644 ${S}/src/libruli.so ${D}${libdir}
- install -m 0644 ${S}/src/libruli.so.4 ${D}${libdir}
+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}'
+
+do_configure() {
+ touch configure-stamp
+}
+
+do_install() {
+ oe_runmake install
}
+
+PACKAGES =+ "${PN}-bin"
diff --git a/meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb b/meta-networking/recipes-support/smcroute/smcroute_2.0.0.bb
deleted file mode 100644
index 9b6fc2f38a..0000000000
--- a/meta-networking/recipes-support/smcroute/smcroute_2.0.0.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 = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-
-SRCREV = "d6280e64b27d5a4bd7f37dac36b455f4ae5f9ab3"
-SRC_URI = "git://github.com/troglobit/smcroute.git;branch=master;protocol=git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
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/spice/spice-gtk_0.42.bb b/meta-networking/recipes-support/spice/spice-gtk_0.42.bb
new file mode 100644
index 0000000000..27504392a6
--- /dev/null
+++ b/meta-networking/recipes-support/spice/spice-gtk_0.42.bb
@@ -0,0 +1,60 @@
+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"
+
+inherit meson pkgconfig vala gobject-introspection features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+GIR_MESON_ENABLE_FLAG = 'enabled'
+GIR_MESON_DISABLE_FLAG = 'disabled'
+
+PACKAGECONFIG ??= "${@bb.utils.contains('GI_DATA_ENABLED', 'True', 'vapi', '', d)}"
+PACKAGECONFIG[vapi] = "-Dvapi=enabled,-Dvapi=disabled"
+
+EXTRA_OEMESON = "-Dpie=true"
+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-protocol_0.14.4.bb b/meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb
new file mode 100644
index 0000000000..9ce019ed86
--- /dev/null
+++ b/meta-networking/recipes-support/spice/spice-protocol_0.14.4.bb
@@ -0,0 +1,19 @@
+#
+# Copyright (C) 2013 Wind River Systems, Inc.
+#
+
+SUMMARY = "Simple Protocol for Independent Computing Environments (protocol definition"
+HOMEPAGE = "https://spice-space.org"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b37311cb5604f3e5cc2fb0fd23527e95"
+
+SRCREV = "6f453a775d87087c6ba59fc180c1a1e466631a47"
+
+SRC_URI = "git://gitlab.freedesktop.org/spice/spice-protocol.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-networking/recipes-support/spice/spice-protocol_git.bb b/meta-networking/recipes-support/spice/spice-protocol_git.bb
deleted file mode 100644
index 30d0a76752..0000000000
--- a/meta-networking/recipes-support/spice/spice-protocol_git.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-#
-# Copyright (C) 2013 Wind River Systems, Inc.
-#
-
-SUMMARY = "Simple Protocol for Independent Computing Environments"
-DESCRIPTION = "SPICE (the Simple Protocol for Independent Computing \
-Environments) is a remote-display system built for virtual \
-environments which allows users to view a computing 'desktop' \
-environment - not only on its computer-server machine, but also from \
-anywhere on the Internet and using a wide variety of machine \
-architectures."
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b37311cb5604f3e5cc2fb0fd23527e95"
-
-PV = "0.12.13+git${SRCPV}"
-
-SRCREV = "87441524f4e7b79658e42bd8f1f6c3e3c8649aa5"
-
-SRC_URI = " \
- git://anongit.freedesktop.org/spice/spice-protocol \
-"
-
-S = "${WORKDIR}/git"
-
-inherit autotools gettext pkgconfig
-
-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
index 505b7c890b..e63cbe3b72 100644
--- 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
@@ -14,21 +14,19 @@ Upstream-Status: Pending
server/red-client.c | 6 +++---
2 files changed, 6 insertions(+), 5 deletions(-)
-diff --git a/server/red-channel.c b/server/red-channel.c
-index 1b38f04d..11dc667b 100644
--- a/server/red-channel.c
+++ b/server/red-channel.c
-@@ -192,7 +192,7 @@ red_channel_constructed(GObject *object)
+@@ -204,7 +204,7 @@ red_channel_constructed(GObject *object)
{
RedChannel *self = RED_CHANNEL(object);
-- red_channel_debug(self, "thread_id 0x%lx", self->priv->thread_id);
-+ red_channel_debug(self, "thread_id 0x%lx", (unsigned long)self->priv->thread_id);
+- 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);
-@@ -475,7 +475,8 @@ void red_channel_remove_client(RedChannel *channel, RedChannelClient *rcc)
- red_channel_warning(channel, "channel->thread_id (0x%lx) != pthread_self (0x%lx)."
+@@ -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());
@@ -37,12 +35,10 @@ index 1b38f04d..11dc667b 100644
}
spice_return_if_fail(channel);
link = g_list_find(channel->priv->clients, rcc);
-diff --git a/server/red-client.c b/server/red-client.c
-index ddfc5400..76986640 100644
--- a/server/red-client.c
+++ b/server/red-client.c
-@@ -180,7 +180,7 @@ void red_client_migrate(RedClient *client)
- spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)."
+@@ -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());
@@ -50,8 +46,8 @@ index ddfc5400..76986640 100644
}
FOREACH_CHANNEL_CLIENT(client, rcc) {
if (red_channel_client_is_connected(rcc)) {
-@@ -199,8 +199,8 @@ void red_client_destroy(RedClient *client)
- spice_warning("client->thread_id (0x%lx) != pthread_self (0x%lx)."
+@@ -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,
@@ -61,6 +57,3 @@ index ddfc5400..76986640 100644
}
red_client_set_disconnecting(client);
FOREACH_CHANNEL_CLIENT(client, rcc) {
---
-2.17.1
-
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
new file mode 100644
index 0000000000..d04bee95fa
--- /dev/null
+++ b/meta-networking/recipes-support/spice/spice/0001-Fix-compile-errors-on-Linux-32bit-system.patch
@@ -0,0 +1,96 @@
+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-build-allow-separated-src-and-build-dirs.patch b/meta-networking/recipes-support/spice/spice/0001-build-allow-separated-src-and-build-dirs.patch
deleted file mode 100644
index 8d246cc7f3..0000000000
--- a/meta-networking/recipes-support/spice/spice/0001-build-allow-separated-src-and-build-dirs.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 812a1a099cc48edcf1280fc329bf5330237f3cc2 Mon Sep 17 00:00:00 2001
-From: Mark Asselstine <mark.asselstine@windriver.com>
-Date: Thu, 1 May 2014 12:09:16 -0400
-Subject: [PATCH] build: allow separated src and build dirs
-
-We need to expland the list of include dirs to include the build dir since
-generated files will be created there instead of in the src dir.
-
-We also don't want to force using $srcdir for generated files as this will
-allow them to be created in the build dir. We account for the slight
-deviation in the generated files with expanded include paths.
-
-Signed-off-by: Mark Asselstine <mark.asselstine@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 483dbfdf..7d990aaa 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -138,7 +138,7 @@ dnl =========================================================================
- dnl Check deps
-
- AC_CONFIG_SUBDIRS([spice-common])
--COMMON_CFLAGS='-I ${top_srcdir}/spice-common/ -I ${top_builddir}/spice-common/'
-+COMMON_CFLAGS='-I ${top_srcdir}/spice-common/ -I ${top_srcdir}/spice-common/common/ -I ${top_srcdir}/spice-common/spice-protocol/ -I ${top_builddir}/spice-common/'
- COMMON_CFLAGS="$COMMON_CFLAGS -DG_LOG_DOMAIN=\\\"Spice\\\""
- AC_SUBST(COMMON_CFLAGS)
-
---
-2.14.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
new file mode 100644
index 0000000000..2d05143dbf
--- /dev/null
+++ b/meta-networking/recipes-support/spice/spice/0001-configure.ac-explicitly-link-to-jpeg-lib.patch
@@ -0,0 +1,48 @@
+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 38b8bf306a..5732f509b1 100644
--- a/meta-networking/recipes-support/spice/spice_git.bb
+++ b/meta-networking/recipes-support/spice/spice_git.bb
@@ -10,37 +10,39 @@ environment - not only on its computer-server machine, but also from \
anywhere on the Internet and using a wide variety of machine \
architectures."
-LICENSE = "BSD & LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-PV = "0.14.0+git${SRCPV}"
+PV = "0.14.2+git${SRCPV}"
-SRCREV_spice = "f1050bfc76c9c4146257e087baf74e0b62d7d218"
-SRCREV_spice-common = "95743f40a2da39e0a19859c305e69e2c99d39e42"
+SRCREV_spice = "7cbd70b931db76c69c89c2d9d5d704f67381a81b"
+SRCREV_spice-common = "4fc4c2db36c7f07b906e9a326a9d3dc0ae6a2671"
SRCREV_FORMAT = "spice_spice-common"
SRC_URI = " \
- git://anongit.freedesktop.org/spice/spice;name=spice \
- git://anongit.freedesktop.org/spice/spice-common;destsuffix=git/spice-common;name=spice-common \
+ 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 \
-"
-FOO = "\
- file://0001-build-allow-separated-src-and-build-dirs.patch \
+ file://0001-Fix-compile-errors-on-Linux-32bit-system.patch \
+ file://0001-configure.ac-explicitly-link-to-jpeg-lib.patch \
"
S = "${WORKDIR}/git"
-inherit autotools gettext pythonnative python-dir pkgconfig
+CVE_STATUS[CVE-2018-10893] = "fixed-version: patched already, caused by inaccurate CPE in the NVD database."
+
+inherit autotools gettext python3native python3-dir pkgconfig
-DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python-pyparsing-native python-six-native glib-2.0-native"
-DEPENDS_append_class-nativesdk = "nativesdk-openssl"
+DEPENDS += "spice-protocol jpeg pixman alsa-lib glib-2.0 python3-pyparsing-native python3-six-native glib-2.0-native"
+DEPENDS:append:class-nativesdk = " nativesdk-openssl"
-export PYTHON="${STAGING_BINDIR_NATIVE}/python-native/python"
-export PYTHONPATH="${PKG_CONFIG_SYSROOT_DIR}${libdir}/python2.7/site-packages"
+export PYTHON="${STAGING_BINDIR_NATIVE}/python3-native/python3"
-PACKAGECONFIG_class-native = ""
-PACKAGECONFIG_class-nativesdk = ""
+CFLAGS:append = " -Wno-error"
+
+PACKAGECONFIG:class-native = ""
+PACKAGECONFIG:class-nativesdk = ""
PACKAGECONFIG ?= "sasl"
PACKAGECONFIG[celt051] = "--enable-celt051,--disable-celt051,celt051"
@@ -52,6 +54,8 @@ PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus,"
PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,,"
PACKAGECONFIG[xinerama] = "--enable-xinerama,--disable-xinerama,libxinerama,"
-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.9.0.bb b/meta-networking/recipes-support/spice/usbredir_0.9.0.bb
new file mode 100644
index 0000000000..452491023e
--- /dev/null
+++ b/meta-networking/recipes-support/spice/usbredir_0.9.0.bb
@@ -0,0 +1,20 @@
+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/spice/usbredir_git.bb b/meta-networking/recipes-support/spice/usbredir_git.bb
deleted file mode 100644
index 3fea7528e5..0000000000
--- a/meta-networking/recipes-support/spice/usbredir_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "usbredir libraries and utilities"
-
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4b54a1fd55a448865a0b32d41598759d \
-"
-
-DEPENDS = "libusb1"
-
-SRCREV = "39aa3c69f61bba28856a3eef3fe4ab37a3968e88"
-PV = "0.7.1+git${SRCPV}"
-
-SRC_URI = " \
- git://anongit.freedesktop.org/spice/usbredir \
-"
-
-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-ssmtp-Correct-the-null-pointer-assignment-to-char-po.patch b/meta-networking/recipes-support/ssmtp/ssmtp/0001-ssmtp-Correct-the-null-pointer-assignment-to-char-po.patch
new file mode 100644
index 0000000000..c7468fe17f
--- /dev/null
+++ b/meta-networking/recipes-support/ssmtp/ssmtp/0001-ssmtp-Correct-the-null-pointer-assignment-to-char-po.patch
@@ -0,0 +1,51 @@
+From 58cfb4f86b7fbf19eb643dfba87fdd890b3d4a4a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Aug 2022 19:27:31 -0700
+Subject: [PATCH] ssmtp: Correct the null pointer assignment to char pointers
+
+Fixes
+error: incompatible integer to pointer conversion initializing 'char *' with an expression of type 'char' [-Wint-conversion]
+| char *from = (char)NULL; /* Use this as the From: address */
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ssmtp.c | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/ssmtp.c b/ssmtp.c
+index a74ba4e..0a719ac 100644
+--- a/ssmtp.c
++++ b/ssmtp.c
+@@ -55,21 +55,21 @@ bool_t use_oldauth = False; /* use old AUTH LOGIN username style */
+
+ #define ARPADATE_LENGTH 32 /* Current date in RFC format */
+ char arpadate[ARPADATE_LENGTH];
+-char *auth_user = (char)NULL;
+-char *auth_pass = (char)NULL;
+-char *auth_method = (char)NULL; /* Mechanism for SMTP authentication */
+-char *mail_domain = (char)NULL;
+-char *from = (char)NULL; /* Use this as the From: address */
++char *auth_user = NULL;
++char *auth_pass = NULL;
++char *auth_method = NULL; /* Mechanism for SMTP authentication */
++char *mail_domain = NULL;
++char *from = NULL; /* Use this as the From: address */
+ char *hostname;
+ char *mailhost = "mailhub";
+-char *minus_f = (char)NULL;
+-char *minus_F = (char)NULL;
++char *minus_f = NULL;
++char *minus_F = NULL;
+ char *gecos;
+-char *prog = (char)NULL;
++char *prog = NULL;
+ char *root = NULL;
+ char *tls_cert = "/etc/ssl/certs/ssmtp.pem"; /* Default Certificate */
+-char *uad = (char)NULL;
+-char *config_file = (char)NULL; /* alternate configuration file */
++char *uad = NULL;
++char *config_file = NULL; /* alternate configuration file */
+
+ headers_t headers, *ht;
+
diff --git a/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
index 07e3ffed42..05d2bb18ff 100644
--- a/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
+++ b/meta-networking/recipes-support/ssmtp/ssmtp_2.64.bb
@@ -1,18 +1,19 @@
SUMMARY = "extremely simple MTA to get mail off the system to a mail hub"
HOMEPAGE = "http://packages.qa.debian.org/s/ssmtp.html"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=0c56db0143f4f80c369ee3af7425af6e"
SRC_URI = "${DEBIAN_MIRROR}/main/s/${BPN}/${BPN}_${PV}.orig.tar.bz2 \
file://ssmtp-bug584162-fix.patch \
file://build-ouside_srcdir.patch \
file://use-DESTDIR.patch \
-"
+ file://0001-ssmtp-Correct-the-null-pointer-assignment-to-char-po.patch \
+ "
SRC_URI[md5sum] = "65b4e0df4934a6cd08c506cabcbe584f"
SRC_URI[sha256sum] = "22c37dc90c871e8e052b2cab0ad219d010fa938608cd66b21c8f3c759046fa36"
-inherit autotools
+inherit autotools update-alternatives
PACKAGECONFIG ?= "ssl ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
@@ -25,7 +26,7 @@ EXTRA_OEMAKE = "GEN_CONFIG='/bin/true'"
LDFLAGS += "${@bb.utils.contains('PACKAGECONFIG', 'ssl', '-lssl -lcrypto', '', d)}"
-do_install_append () {
+do_install:append () {
install -d ${D}${mandir}/
mv ${D}${exec_prefix}/man/* ${D}${mandir}/
rmdir ${D}${exec_prefix}/man
@@ -33,3 +34,10 @@ do_install_append () {
ln -s ssmtp ${D}${sbindir}/newaliases
ln -s ssmtp ${D}${sbindir}/mailq
}
+
+ALTERNATIVE_PRIORITY_${PN} = "100"
+
+ALTERNATIVE:${PN} = "mailq newaliases sendmail"
+ALTERNATIVE_LINK_NAME[sendmail] = "${sbindir}/sendmail"
+ALTERNATIVE_LINK_NAME[newaliases] = "${sbindir}/newaliases"
+ALTERNATIVE_LINK_NAME[mailq] = "${sbindir}/mailq"
diff --git a/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch b/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch
deleted file mode 100644
index 00178c84a4..0000000000
--- a/meta-networking/recipes-support/strongswan/files/0001-memory.h-Include-stdint.h-for-uintptr_t.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 33a53dc13fd924949a582109b45fedd8d0bed59b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 07:42:11 -0700
-Subject: [PATCH] memory.h: Include stdint.h for uintptr_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/libstrongswan/utils/utils/memory.h | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/libstrongswan/utils/utils/memory.h b/src/libstrongswan/utils/utils/memory.h
-index e840330..8a356a8 100644
---- a/src/libstrongswan/utils/utils/memory.h
-+++ b/src/libstrongswan/utils/utils/memory.h
-@@ -22,6 +22,8 @@
- #ifndef MEMORY_H_
- #define MEMORY_H_
-
-+#include <stdint.h>
-+
- /**
- * Helper function that compares two binary blobs for equality
- */
diff --git a/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch b/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch
deleted file mode 100644
index be660d1fd8..0000000000
--- a/meta-networking/recipes-support/strongswan/files/fix-funtion-parameter.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 9f97479373f3fceedc471074b81486d77a49618d Mon Sep 17 00:00:00 2001
-From: "Roy.Li" <rongqing.li@windriver.com>
-Date: Tue, 4 Mar 2014 14:38:42 +0800
-Subject: [PATCH] fix the function parameter
-
-Upstream-Status: pending
-
-Original openssl_diffie_hellman_create has three parameters, but
-it is reassigned a function pointer which has one parameter, and
-is called with one parameter, which will lead to segment fault
-on PPC, Now we simply correct the number of parameters.
-
- #0 0x484d4aa0 in __GI_raise (sig=6)
- at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
- #1 0x484d9930 in __GI_abort () at abort.c:91
- #2 0x10002064 in segv_handler (signal=11) at charon.c:224
- #3 <signal handler called>
- #4 0x48d89630 in openssl_diffie_hellman_create (group=MODP_1024_BIT, g=...,
- p=<error reading variable: Cannot access memory at address 0x0>)
- at openssl_diffie_hellman.c:143
- #5 0x482c54f8 in create_dh (this=0x11ac6e68, group=MODP_1024_BIT)
- at crypto/crypto_factory.c:358
- #6 0x48375884 in create_dh (this=<optimized out>, group=<optimized out>)
- at sa/keymat.c:132
- #7 0x483843b8 in process_payloads (this=0x51400a78, message=<optimized
- out>)
- at sa/tasks/ike_init.c:200
- #8 0x483844d0 in process_r (this=0x51400a78, message=0x51500778)
- at sa/tasks/ike_init.c:319
- #9 0x48374c9c in process_request (message=0x51500778, this=0x51400d20)
- at sa/task_manager.c:870
- #10 process_message (this=0x51400d20, msg=0x51500778) at
- sa/task_manager.c:925
- #11 0x4836c378 in process_message (this=0x514005f0, message=0x51500778)
- at sa/ike_sa.c:1317
- #12 0x48362270 in execute (this=0x515008d0)
- at processing/jobs/process_message_job.c:74
-
-Signed-off-by: Roy.Li <rongqing.li@windriver.com>
-
----
- src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c | 8 +++++++-
- src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h | 4 +++-
- src/libstrongswan/plugins/openssl/openssl_plugin.c | 1 +
- 3 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
-index 8e9c118..a73b038 100644
---- a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
-+++ b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.c
-@@ -192,7 +192,7 @@ METHOD(diffie_hellman_t, destroy, void,
- /*
- * Described in header.
- */
--openssl_diffie_hellman_t *openssl_diffie_hellman_create(
-+openssl_diffie_hellman_t *openssl_diffie_hellman_create_custom(
- diffie_hellman_group_t group, ...)
- {
- private_openssl_diffie_hellman_t *this;
-@@ -255,5 +255,11 @@ openssl_diffie_hellman_t *openssl_diffie_hellman_create(
- DBG2(DBG_LIB, "size of DH secret exponent: %d bits", BN_num_bits(privkey));
- return &this->public;
- }
-+openssl_diffie_hellman_t *openssl_diffie_hellman_create( diffie_hellman_group_t group)
-+{
-+ chunk_t g;
-+ chunk_t p;
-+ openssl_diffie_hellman_create_custom(group, g, p);
-+}
-
- #endif /* OPENSSL_NO_DH */
-diff --git a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h
-index 5de5520..22586e0 100644
---- a/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h
-+++ b/src/libstrongswan/plugins/openssl/openssl_diffie_hellman.h
-@@ -43,8 +43,10 @@ struct openssl_diffie_hellman_t {
- * @param ... expects generator and prime as chunk_t if MODP_CUSTOM
- * @return openssl_diffie_hellman_t object, NULL if not supported
- */
--openssl_diffie_hellman_t *openssl_diffie_hellman_create(
-+openssl_diffie_hellman_t *openssl_diffie_hellman_create_custom(
- diffie_hellman_group_t group, ...);
-+openssl_diffie_hellman_t *openssl_diffie_hellman_create(
-+ diffie_hellman_group_t group);
-
- #endif /** OPENSSL_DIFFIE_HELLMAN_H_ @}*/
-
-diff --git a/src/libstrongswan/plugins/openssl/openssl_plugin.c b/src/libstrongswan/plugins/openssl/openssl_plugin.c
-index 8b0a7c5..114d575 100644
---- a/src/libstrongswan/plugins/openssl/openssl_plugin.c
-+++ b/src/libstrongswan/plugins/openssl/openssl_plugin.c
-@@ -609,6 +609,7 @@ METHOD(plugin_t, get_features, int,
- PLUGIN_PROVIDE(DH, MODP_1024_BIT),
- PLUGIN_PROVIDE(DH, MODP_1024_160),
- PLUGIN_PROVIDE(DH, MODP_768_BIT),
-+ PLUGIN_REGISTER(DH, openssl_diffie_hellman_create_custom),
- PLUGIN_PROVIDE(DH, MODP_CUSTOM),
- #endif
- #ifndef OPENSSL_NO_RSA
diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb b/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb
deleted file mode 100644
index 6570dbe5c1..0000000000
--- a/meta-networking/recipes-support/strongswan/strongswan_5.6.2.bb
+++ /dev/null
@@ -1,134 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gmp openssl flex-native flex bison-native"
-
-SRC_URI = "http://download.strongswan.org/strongswan-${PV}.tar.bz2 \
- file://fix-funtion-parameter.patch \
- file://0001-memory.h-Include-stdint.h-for-uintptr_t.patch \
- "
-
-SRC_URI[md5sum] = "46aa3aa18fbc4bd528f9a0345ce79913"
-SRC_URI[sha256sum] = "e0a60a30ebf3c534c223559e1686497a21ded709a5d605c5123c2f52bcc22e92"
-
-UPSTREAM_CHECK_REGEX = "strongswan-(?P<pver>\d+(\.\d+)+)\.tar"
-
-EXTRA_OECONF = " \
- --without-lib-prefix \
-"
-
-EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}"
-
-
-PACKAGECONFIG ??= "charon curl gmp openssl stroke sqlite3 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ldap', d)} \
-"
-PACKAGECONFIG[aesni] = "--enable-aesni,--disable-aesni,,${PN}-plugin-aesni"
-PACKAGECONFIG[charon] = "--enable-charon,--disable-charon,"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,${PN}-plugin-curl"
-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"
-
-# requires swanctl
-PACKAGECONFIG[systemd-charon] = "--enable-systemd,--disable-systemd,systemd,"
-
-inherit autotools systemd pkgconfig
-
-RRECOMMENDS_${PN} = "kernel-module-ipsec"
-
-FILES_${PN} += "${libdir}/ipsec/lib*${SOLIBS}"
-FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/ipsec/.debug ${libexecdir}/ipsec/.debug"
-FILES_${PN}-dev += "${libdir}/ipsec/lib*${SOLIBSDEV} ${libdir}/ipsec/*.la"
-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"
-
-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', True)
- oldfiles = d.getVar('CONFFILES_' + pkg, True)
- 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, 'libstrongswan-(.*)\.so', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True)
- do_split_packages(d, sysconfdir, '(.*)\.conf', '${PN}-plugin-%s', 'strongSwan %s plugin', prepend=True, hook=add_plugin_conf)
-
- split_dbg_packages = do_split_packages(d, dbglibdir, '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, '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, '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', True)
- 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-hmac \
- ${PN}-plugin-kernel-netlink \
- ${PN}-plugin-md5 \
- ${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 \
- ${PN}-plugin-curve25519 \
- "
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'swanctl', '${BPN}-swanctl.service', '${BPN}.service', d)}"
diff --git a/meta-networking/recipes-support/strongswan/strongswan_5.9.11.bb b/meta-networking/recipes-support/strongswan/strongswan_5.9.11.bb
new file mode 100644
index 0000000000..fb1bea2d87
--- /dev/null
+++ b/meta-networking/recipes-support/strongswan/strongswan_5.9.11.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] = "ddf53f1f26ad26979d5f55e8da95bd389552f5de3682e35593f9a70b2584ed2d"
+
+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/stunnel/stunnel/fix-openssl-no-des.patch b/meta-networking/recipes-support/stunnel/stunnel/fix-openssl-no-des.patch
index 209b0dd409..0840cbbd8b 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
@@ -1,3 +1,8 @@
+From 7ff4eba20b5c4fc7365e5ee0dfb775ed29bdd5ce Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 1 Nov 2017 09:23:41 -0400
+Subject: [PATCH] stunnel: fix compile error when openssl disable des support
+
Upstream-Status: Pending
When openssl disable des support with configure option 'no-des', it doesn't
@@ -6,12 +11,17 @@ 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 f7d38b0..bf485af 100644
+index bc37eb5..03ee3e5 100644
--- a/src/common.h
+++ b/src/common.h
-@@ -471,7 +471,9 @@ extern char *sys_errlist[];
+@@ -486,7 +486,9 @@ extern char *sys_errlist[];
#ifndef OPENSSL_NO_MD4
#include <openssl/md4.h>
#endif /* !defined(OPENSSL_NO_MD4) */
@@ -22,19 +32,19 @@ index f7d38b0..bf485af 100644
#include <openssl/dh.h>
#if OPENSSL_VERSION_NUMBER<0x10100000L
diff --git a/src/protocol.c b/src/protocol.c
-index 587df09..8198eb6 100644
+index 804f115..d9b2b50 100644
--- a/src/protocol.c
+++ b/src/protocol.c
-@@ -66,7 +66,7 @@ NOEXPORT char *imap_server(CLI *, SERVICE_OPTIONS *, const PHASE);
- NOEXPORT char *nntp_client(CLI *, SERVICE_OPTIONS *, const PHASE);
+@@ -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);
-#ifndef OPENSSL_NO_MD4
+#if !defined(OPENSSL_NO_MD4) && !defined(OPENSSL_NO_DES)
NOEXPORT void ntlm(CLI *, SERVICE_OPTIONS *);
- NOEXPORT char *ntlm1();
+ NOEXPORT char *ntlm1(void);
NOEXPORT char *ntlm3(char *, char *, char *, char *);
-@@ -1175,7 +1175,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+@@ -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")) {
@@ -43,7 +53,7 @@ index 587df09..8198eb6 100644
ntlm(c, opt);
#else
s_log(LOG_ERR, "NTLM authentication is not available");
-@@ -1216,7 +1216,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
+@@ -1395,7 +1395,7 @@ NOEXPORT char *connect_client(CLI *c, SERVICE_OPTIONS *opt, const PHASE phase) {
return NULL;
}
diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.35.bb b/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
deleted file mode 100644
index 427c8dd7b1..0000000000
--- a/meta-networking/recipes-support/stunnel/stunnel_5.35.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Program for providing universal TLS/SSL tunneling service"
-HOMEPAGE = "http://www.stunnel.org/"
-DESCRIPTION = "SSL encryption wrapper between remote client and local (inetd-startable) or remote server."
-SECTION = "net"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=866cdc7459d91e092b174388fab8d283"
-DEPENDS = "openssl zlib tcp-wrappers"
-
-RDEPENDS_${PN} += "perl"
-
-SRC_URI = "ftp://ftp.stunnel.org/stunnel/archive/5.x/${BP}.tar.gz \
- file://fix-openssl-no-des.patch \
-"
-
-SRC_URI[md5sum] = "9079f5fafbccaf88b7d92b227d78249a"
-SRC_URI[sha256sum] = "ffa386ae4c825f35f35157c285e7402a6d58779ad8c3822f74a9d355b54aba1d"
-
-inherit autotools
-
-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'"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-systemd,--disable-systemd,systemd"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-networking/recipes-support/stunnel/stunnel_5.69.bb b/meta-networking/recipes-support/stunnel/stunnel_5.69.bb
new file mode 100644
index 0000000000..8161529735
--- /dev/null
+++ b/meta-networking/recipes-support/stunnel/stunnel_5.69.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=b4988f33f70b383b3011c4ede0a679ce"
+
+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] = "1ff7d9f30884c75b98c8a0a4e1534fa79adcada2322635e6787337b4e38fdb81"
+
+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/add-ptest.patch b/meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch
index b71435a043..c46de4b963 100644
--- a/meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch
+++ b/meta-networking/recipes-support/tcpdump/tcpdump/add-ptest.patch
@@ -1,21 +1,28 @@
-From 8ee1ab1ac89557d48ac1ab7ddcc3c51be9b734ad Mon Sep 17 00:00:00 2001
-From: "Hongjun.Yang" <hongjun.yang@windriver.com>
-Date: Wed, 22 Oct 2014 10:02:48 +0800
+From 5f0f70192b0e20336e642b02ca9662ba2fef66cf Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Fri, 19 Feb 2021 15:21:18 -0500
Subject: [PATCH] Add ptest for tcpdump
Upstream-Status: Pending
Signed-off-by: Hongjun.Yang <hongjun.yang@windriver.com>
+Signed-off-by: Peiran Hong <peiran.hong@windriver.com>
+remove perl script not required by ptest causing QA problems
+
+reference upstream issue/commit:
+https://github.com/the-tcpdump-group/tcpdump/issues/26
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
---
- Makefile.in | 10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
+ Makefile.in | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index 0941f0e..3ce40c6 100644
+index ea1ef1d0..e7987bd8 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -437,9 +437,17 @@ distclean:
+@@ -445,9 +445,18 @@ distclean:
tests/failure-outputs.txt
rm -rf autom4te.cache tests/DIFF tests/NEW
@@ -23,14 +30,18 @@ index 0941f0e..3ce40c6 100644
+buildtest-TESTS: tcpdump
+
+runtest-PTEST:
- (cd tests && ./TESTrun.sh)
+ $(srcdir)/tests/TESTrun
+install-ptest:
+ cp -r tests $(DESTDIR)
++ rm $(DESTDIR)/tests/setkey2esp-secrets.pl
+ cp -r config.h $(DESTDIR)
+ install -m 0755 Makefile $(DESTDIR)
-+ ln -sf /usr/sbin/tcpdump $(DESTDIR)/tcpdump
++ ln -s /usr/bin/tcpdump $(DESTDIR)/tcpdump
+
extags: $(TAGFILES)
ctags $(TAGFILES)
+--
+2.29.2
+
diff --git a/meta-networking/recipes-support/tcpdump/tcpdump/run-ptest b/meta-networking/recipes-support/tcpdump/tcpdump/run-ptest
index c03a8b8ef3..2bfb2267da 100755
--- a/meta-networking/recipes-support/tcpdump/tcpdump/run-ptest
+++ b/meta-networking/recipes-support/tcpdump/tcpdump/run-ptest
@@ -1,5 +1,5 @@
#!/bin/sh
make -k runtest-PTEST | sed -e '/: passed/ s/^/PASS: /g' \
- -e '/: failed/ s/^/FAIL: /g' \
+ -e '/: TEST FAILED.*/ s/^/FAIL: /g' \
-e 's/: passed//g' \
- -e 's/: failed//g'
+ -e 's/: TEST FAILED.*//g'
diff --git a/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch b/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch
deleted file mode 100644
index 8cefadf284..0000000000
--- a/meta-networking/recipes-support/tcpdump/tcpdump/unnecessary-to-check-libpcap.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 741d77e42fc4af49804f7ee43b7237e01633cbcd Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Tue, 8 Jul 2014 13:20:47 +0800
-Subject: [PATCH] unnecessary to check libpcap
-
-Upstream-Status: Pending
-
-since the check of libpcap did not consider the cross-compile, lead to the
-below error:
- This autoconf log indicates errors, it looked at host include and/or
- library paths while determining system capabilities.
-
-In fact, the libpcap has been added into the tcpdump's DEPENDS, not need to
-check if libpcap existed.
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-
----
- configure.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.in b/configure.in
-index b2305a5..b3b5dbf 100644
---- a/configure.in
-+++ b/configure.in
-@@ -418,7 +418,7 @@ dnl Some platforms may need -lnsl for getrpcbynumber.
- AC_SEARCH_LIBS(getrpcbynumber, nsl,
- AC_DEFINE(HAVE_GETRPCBYNUMBER, 1, [define if you have getrpcbynumber()]))
-
--AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
-+#AC_LBL_LIBPCAP(V_PCAPDEP, V_INCLS)
-
- #
- # Check for these after AC_LBL_LIBPCAP, so we link with the appropriate
diff --git a/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb b/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
deleted file mode 100644
index d38540e34d..0000000000
--- a/meta-networking/recipes-support/tcpdump/tcpdump_4.9.2.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "A sophisticated network protocol analyzer"
-HOMEPAGE = "http://www.tcpdump.org/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1d4b0366557951c84a94fabe3529f867"
-SECTION = "net"
-DEPENDS = "libpcap"
-
-SRC_URI = " \
- http://www.tcpdump.org/release/${BP}.tar.gz \
- file://unnecessary-to-check-libpcap.patch \
- file://add-ptest.patch \
- file://run-ptest \
-"
-
-SRC_URI[md5sum] = "9bbc1ee33dab61302411b02dd0515576"
-SRC_URI[sha256sum] = "798b3536a29832ce0cbb07fafb1ce5097c95e308a6f592d14052e1ef1505fe79"
-
-export LIBS=" -lpcap"
-
-inherit autotools-brokensep ptest
-CACHED_CONFIGUREVARS = "ac_cv_linux_vers=${ac_cv_linux_vers=2}"
-
-PACKAGECONFIG ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-crypto=yes, --without-openssl --without-crypto, openssl"
-PACKAGECONFIG[smi] = "--with-smi, --without-smi,libsmi"
-PACKAGECONFIG[libcap-ng] = "--with-cap-ng=yes,--with-cap-ng=no,libcap-ng"
-
-EXTRA_AUTORECONF += " -I m4"
-
-do_configure_prepend() {
- mkdir -p ${S}/m4
- if [ -f aclocal.m4 ]; then
- mv aclocal.m4 ${S}/m4
- fi
- # AC_CHECK_LIB(dlpi.. was looking to host /lib
- sed -i 's:-L/lib::g' ./configure.in
-}
-do_configure_append() {
- sed -i 's:-L/usr/lib::' ./Makefile
- sed -i 's:-Wl,-rpath,${STAGING_LIBDIR}::' ./Makefile
- sed -i 's:-I/usr/include::' ./Makefile
-}
-
-do_install_append() {
- # tcpdump 4.0.0 installs a copy to /usr/sbin/tcpdump.4.0.0
- rm -f ${D}${sbindir}/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/tcpslice-1.2a3-time.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
deleted file mode 100644
index 386b7f83ac..0000000000
--- a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-
---- tcpslice-1.2a3.orig/search.c 2000-09-10 10:52:40.000000000 +0200
-+++ tcpslice-1.2a3/search.c 2006-07-28 14:56:55.000000000 +0200
-@@ -53,7 +53,7 @@
- /* Size of a packet header in bytes; easier than typing the sizeof() all
- * the time ...
- */
--#define PACKET_HDR_LEN (sizeof( struct pcap_pkthdr ))
-+#define PACKET_HDR_LEN (sizeof( struct pcap_sf_pkthdr ))
-
- extern int snaplen;
-
-@@ -111,16 +111,24 @@
- static void
- extract_header( pcap_t *p, u_char *buf, struct pcap_pkthdr *hdr )
- {
-- memcpy((char *) hdr, (char *) buf, sizeof(struct pcap_pkthdr));
-+ struct pcap_sf_pkthdr hdri;
-+
-+ memcpy((char *) &hdri, (char *) buf, sizeof(struct pcap_sf_pkthdr));
-
- if ( pcap_is_swapped( p ) )
- {
-- hdr->ts.tv_sec = SWAPLONG(hdr->ts.tv_sec);
-- hdr->ts.tv_usec = SWAPLONG(hdr->ts.tv_usec);
-- hdr->len = SWAPLONG(hdr->len);
-- hdr->caplen = SWAPLONG(hdr->caplen);
-+ hdr->ts.tv_sec = SWAPLONG(hdri.ts.tv_sec);
-+ hdr->ts.tv_usec = SWAPLONG(hdri.ts.tv_usec);
-+ hdr->len = SWAPLONG(hdri.len);
-+ hdr->caplen = SWAPLONG(hdri.caplen);
-+ }
-+ else
-+ {
-+ hdr->ts.tv_sec = hdri.ts.tv_sec;
-+ hdr->ts.tv_usec = hdri.ts.tv_usec;
-+ hdr->len = hdri.len;
-+ hdr->caplen = hdri.caplen;
- }
--
- /*
- * From bpf/libpcap/savefile.c:
- *
---- tcpslice-1.2a3.orig/tcpslice.h 1995-11-02 00:40:53.000000000 +0100
-+++ tcpslice-1.2a3/tcpslice.h 2006-07-28 14:56:55.000000000 +0200
-@@ -20,6 +20,26 @@
- */
-
-
-+#include <time.h>
-+/* #include <net/bpf.h> */
-+
-+/*
-+ * This is a timeval as stored in disk in a dumpfile.
-+ * It has to use the same types everywhere, independent of the actual
-+ * `struct timeval'
-+ */
-+
-+struct pcap_timeval {
-+ bpf_int32 tv_sec; /* seconds */
-+ bpf_int32 tv_usec; /* microseconds */
-+};
-+
-+struct pcap_sf_pkthdr {
-+ struct pcap_timeval ts; /* time stamp */
-+ bpf_u_int32 caplen; /* length of portion present */
-+ bpf_u_int32 len; /* length this packet (off wire) */
-+};
-+
- time_t gwtm2secs( struct tm *tm );
-
- int sf_find_end( struct pcap *p, struct timeval *first_timestamp,
diff --git a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
deleted file mode 100644
index 0a7359311d..0000000000
--- a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-diff -ur tcpdump-3.8.1/tcpslice/tcpslice.c tcpdump-3.8.1.new/tcpslice/tcpslice.c
---- tcpslice/tcpslice.c 2004-01-15 17:35:53.000000000 +0100
-+++ tcpslice/tcpslice.c 2004-01-15 16:12:57.000000000 +0100
-@@ -35,7 +35,7 @@
- #include <sys/file.h>
- #include <sys/stat.h>
-
--#include <net/bpf.h>
-+/* #include <net/bpf.h> */
-
- #include <ctype.h>
- #ifdef HAVE_FCNTL_H
diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
deleted file mode 100644
index e65739a5c7..0000000000
--- a/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
+++ /dev/null
@@ -1,36 +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 = "ftp://ftp.ee.lbl.gov/${BP}.tar.gz \
- file://tcpslice-1.2a3-time.patch \
- file://tcpslice-CVS.20010207-bpf.patch \
- "
-SRC_URI[md5sum] = "e329cbeb7e589f132d92c3447c477190"
-SRC_URI[sha256sum] = "4096e8debc898cfaa16b5306f1c42f8d18b19e30e60da8d4deb781c8f684c840"
-
-inherit autotools-brokensep
-
-DEPENDS += "libpcap"
-
-# We do not want to autoreconf. We must specify srcdir as ".".
-# We have to set the ac_cv_* cache variables as well as pass the normal
-# cross-compilation options to configure!
-#
-do_configure () {
- oe_runconf \
- --srcdir="." \
- ac_cv_build=${BUILD_SYS} \
- ac_cv_host=${HOST_SYS} \
- ac_cv_target=${HOST_SYS}
-}
-
-do_install () {
- mkdir -p ${D}/usr/sbin
- install -c -m 555 tcpslice ${D}/usr/sbin
-}
-
diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.6.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.6.bb
new file mode 100644
index 0000000000..7128a23cd2
--- /dev/null
+++ b/meta-networking/recipes-support/tcpdump/tcpslice_1.6.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] = "60d23f00d4c485fef2dda9b12c2018af958df3a511238c45374733bbc1231920"
+
+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-libopts.m4-set-POSIX_SHELL-to-bin-sh.patch b/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-libopts.m4-set-POSIX_SHELL-to-bin-sh.patch
new file mode 100644
index 0000000000..448455fffb
--- /dev/null
+++ b/meta-networking/recipes-support/tcpreplay/tcpreplay/0001-libopts.m4-set-POSIX_SHELL-to-bin-sh.patch
@@ -0,0 +1,45 @@
+From 769e96b60f631e8c208fd7f72900d0bb17760f88 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Tue, 30 Aug 2022 09:54:11 +0800
+Subject: [PATCH] libopts.m4: set POSIX_SHELL to /bin/sh
+
+POSIX_SHELL is specified a host tool path as it searches path on build
+host using `which` when configure. Set it to a fixed path '/bin/sh'.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ m4/libopts.m4 | 16 +---------------
+ 1 file changed, 1 insertion(+), 15 deletions(-)
+
+diff --git a/m4/libopts.m4 b/m4/libopts.m4
+index cfbd477..c8047eb 100644
+--- a/m4/libopts.m4
++++ b/m4/libopts.m4
+@@ -111,21 +111,7 @@ AC_DEFUN([INVOKE_LIBOPTS_MACROS_FIRST],[
+ AC_CHECK_FUNCS([mmap canonicalize_file_name snprintf strdup strchr \
+ strrchr strsignal fchmod fstat chmod])
+ AC_PROG_SED
+- [while :
+- do
+- POSIX_SHELL=`which bash`
+- test -x "$POSIX_SHELL" && break
+- POSIX_SHELL=`which dash`
+- test -x "$POSIX_SHELL" && break
+- POSIX_SHELL=/usr/xpg4/bin/sh
+- test -x "$POSIX_SHELL" && break
+- POSIX_SHELL=`/bin/sh -c '
+- exec 2>/dev/null
+- if ! true ; then exit 1 ; fi
+- echo /bin/sh'`
+- test -x "$POSIX_SHELL" && break
+- ]AC_MSG_ERROR([cannot locate a working POSIX shell])[
+- done]
++ POSIX_SHELL='/bin/sh'
+ AC_DEFINE_UNQUOTED([POSIX_SHELL], ["${POSIX_SHELL}"],
+ [define to a working POSIX compliant shell])
+ AC_SUBST([POSIX_SHELL])
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb b/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb
deleted file mode 100644
index 681ef02bb4..0000000000
--- a/meta-networking/recipes-support/tcpreplay/tcpreplay_4.2.6.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Use previously captured traffic to test network devices"
-
-HOMEPAGE = "http://tcpreplay.synfin.net/"
-SECTION = "net"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://docs/LICENSE;md5=890b830b22fd632e9ffd996df20338f8"
-
-SRC_URI = "https://github.com/appneta/tcpreplay/releases/download/v${PV}/tcpreplay-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "3e65d5b872e441c6a0038191a3dc7ce9"
-SRC_URI[sha256sum] = "043756c532dab93e2be33a517ef46b1341f7239278a1045ae670041dd8a4531d"
-
-DEPENDS = "libpcap"
-
-EXTRA_OECONF += "--with-libpcap=${STAGING_DIR_HOST}/usr"
-
-inherit siteinfo autotools-brokensep
-
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..c7d14e2ab6
--- /dev/null
+++ b/meta-networking/recipes-support/tcpreplay/tcpreplay_4.4.4.bb
@@ -0,0 +1,26 @@
+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] = "44f18fb6d3470ecaf77a51b901a119dae16da5be4d4140ffbb2785e37ad6d4bf"
+
+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/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 01d0236be5..faefd1d4ea 100644
--- a/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/disable-documentation.patch
@@ -1,19 +1,50 @@
---- a/configure.ac 2016-01-01 17:42:27.000000000 +0100
-+++ b/configure.ac 2017-04-20 14:03:37.238254471 +0200
-@@ -284,24 +284,12 @@
+From b71eb384522b5ce4629dee6e8be257fb4880fef3 Mon Sep 17 00:00:00 2001
+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/Makefile.am b/Makefile.am
+index 4a3ead6..a12cb98 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,7 +2,6 @@ SUBDIRS = \
+ src \
+ data \
+ etc \
+- docs \
+ m4macros \
+ tests \
+ scripts
+diff --git a/configure.ac b/configure.ac
+index 3849383..9f3a633 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -179,18 +179,6 @@ AC_SUBST(CPPFLAGS)
AC_SUBST(LIBS)
AC_SUBST(ADDITIONAL_OBJECTS)
--# Check for asciidoc
--AC_PATH_PROG(A2X, a2x, no)
--AM_CONDITIONAL(HAVE_A2X, test "x$A2X" != "xno")
--if test x"$A2X" = x"no"; then
-- AC_MSG_ERROR([Test for asciidoc failed. See the file 'INSTALL' for help.])
+-if test x"$manpage_support_enabled" = x"yes"; then
+-AC_PATH_PROG(POD2MAN, pod2man, no)
+-
+-if test "x$POD2MAN" = "xno" && \
+- ! test -e docs/man5/tinyproxy.conf.5 -a -e docs/man8/tinyproxy.8 ; then
+-AC_MSG_ERROR([
+- manpage generation requested, but neither pod2man
+- nor pre-generated manpages found.
+- Use --disable-manpage-support if you want to compile anyway.])
-fi
+-fi #manpage_support_enabled
-
- AC_CONFIG_FILES([
- Makefile
- src/Makefile
+ AM_CONDITIONAL(HAVE_POD2MAN, test "x$POD2MAN" != "x" -a "x$POD2MAN" != "xno")
+
+ AC_PATH_PROG(GPERF, gperf, no)
+@@ -216,11 +204,6 @@ src/Makefile
data/Makefile
data/templates/Makefile
etc/Makefile
@@ -25,13 +56,6 @@
m4macros/Makefile
tests/Makefile
tests/scripts/Makefile
---- a/Makefile.am 2016-01-01 17:42:27.000000000 +0100
-+++ b/Makefile.am 2017-04-20 14:03:53.842822997 +0200
-@@ -2,7 +2,6 @@
- src \
- data \
- etc \
-- docs \
- m4macros \
- tests
-
+--
+2.25.1
+
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.conf b/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.conf
new file mode 100644
index 0000000000..4ca18efa56
--- /dev/null
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.conf
@@ -0,0 +1,330 @@
+##
+## tinyproxy.conf -- tinyproxy daemon configuration file
+##
+## This example tinyproxy.conf file contains example settings
+## with explanations in comments. For decriptions of all
+## parameters, see the tinproxy.conf(5) manual page.
+##
+
+#
+# User/Group: This allows you to set the user and group that will be
+# used for tinyproxy after the initial binding to the port has been done
+# as the root user. Either the user or group name or the UID or GID
+# number may be used.
+#
+User tinyproxy
+Group nogroup
+
+#
+# Port: Specify the port which tinyproxy will listen on. Please note
+# that should you choose to run on a port lower than 1024 you will need
+# to start tinyproxy using root.
+#
+Port 8888
+
+#
+# Listen: If you have multiple interfaces this allows you to bind to
+# only one. If this is commented out, tinyproxy will bind to all
+# interfaces present.
+#
+#Listen 192.168.0.1
+
+#
+# Bind: This allows you to specify which interface will be used for
+# outgoing connections. This is useful for multi-home'd machines where
+# you want all traffic to appear outgoing from one particular interface.
+#
+#Bind 192.168.0.1
+
+#
+# BindSame: If enabled, tinyproxy will bind the outgoing connection to the
+# ip address of the incoming connection.
+#
+#BindSame yes
+
+#
+# Timeout: The maximum number of seconds of inactivity a connection is
+# allowed to have before it is closed by tinyproxy.
+#
+Timeout 600
+
+#
+# ErrorFile: Defines the HTML file to send when a given HTTP error
+# occurs. You will probably need to customize the location to your
+# particular install. The usual locations to check are:
+# /usr/local/share/tinyproxy
+# /usr/share/tinyproxy
+# /etc/tinyproxy
+#
+#ErrorFile 404 "/usr/share/tinyproxy/404.html"
+#ErrorFile 400 "/usr/share/tinyproxy/400.html"
+#ErrorFile 503 "/usr/share/tinyproxy/503.html"
+#ErrorFile 403 "/usr/share/tinyproxy/403.html"
+#ErrorFile 408 "/usr/share/tinyproxy/408.html"
+
+#
+# DefaultErrorFile: The HTML file that gets sent if there is no
+# HTML file defined with an ErrorFile keyword for the HTTP error
+# that has occured.
+#
+DefaultErrorFile "/usr/share/tinyproxy/default.html"
+
+#
+# StatHost: This configures the host name or IP address that is treated
+# as the stat host: Whenever a request for this host is received,
+# Tinyproxy will return an internal statistics page instead of
+# forwarding the request to that host. The default value of StatHost is
+# tinyproxy.stats.
+#
+#StatHost "tinyproxy.stats"
+#
+
+#
+# StatFile: The HTML file that gets sent when a request is made
+# for the stathost. If this file doesn't exist a basic page is
+# hardcoded in tinyproxy.
+#
+StatFile "/usr/share/tinyproxy/stats.html"
+
+#
+# LogFile: Allows you to specify the location where information should
+# be logged to. If you would prefer to log to syslog, then disable this
+# and enable the Syslog directive. These directives are mutually
+# exclusive.
+#
+#LogFile "/var/log/tinyproxy/tinyproxy.log"
+
+#
+# Syslog: Tell tinyproxy to use syslog instead of a logfile. This
+# option must not be enabled if the Logfile directive is being used.
+# These two directives are mutually exclusive.
+#
+#Syslog On
+
+#
+# LogLevel:
+#
+# Set the logging level. Allowed settings are:
+# Critical (least verbose)
+# Error
+# Warning
+# Notice
+# Connect (to log connections without Info's noise)
+# Info (most verbose)
+#
+# The LogLevel logs from the set level and above. For example, if the
+# LogLevel was set to Warning, then all log messages from Warning to
+# Critical would be output, but Notice and below would be suppressed.
+#
+LogLevel Info
+
+#
+# PidFile: Write the PID of the main tinyproxy thread to this file so it
+# can be used for signalling purposes.
+#
+PidFile "/var/run/tinyproxy/tinyproxy.pid"
+
+#
+# XTinyproxy: Tell Tinyproxy to include the X-Tinyproxy header, which
+# contains the client's IP address.
+#
+#XTinyproxy Yes
+
+#
+# Upstream:
+#
+# Turns on upstream proxy support.
+#
+# The upstream rules allow you to selectively route upstream connections
+# based on the host/domain of the site being accessed.
+#
+# For example:
+# # connection to test domain goes through testproxy
+# upstream testproxy:8008 ".test.domain.invalid"
+# upstream testproxy:8008 ".our_testbed.example.com"
+# upstream testproxy:8008 "192.168.128.0/255.255.254.0"
+#
+# # no upstream proxy for internal websites and unqualified hosts
+# no upstream ".internal.example.com"
+# no upstream "www.example.com"
+# no upstream "10.0.0.0/8"
+# no upstream "192.168.0.0/255.255.254.0"
+# no upstream "."
+#
+# # connection to these boxes go through their DMZ firewalls
+# upstream cust1_firewall:8008 "testbed_for_cust1"
+# upstream cust2_firewall:8008 "testbed_for_cust2"
+#
+# # default upstream is internet firewall
+# upstream firewall.internal.example.com:80
+#
+# The LAST matching rule wins the route decision. As you can see, you
+# can use a host, or a domain:
+# name matches host exactly
+# .name matches any host in domain "name"
+# . matches any host with no domain (in 'empty' domain)
+# IP/bits matches network/mask
+# IP/mask matches network/mask
+#
+#Upstream some.remote.proxy:port
+
+#
+# MaxClients: This is the absolute highest number of threads which will
+# be created. In other words, only MaxClients number of clients can be
+# connected at the same time.
+#
+MaxClients 100
+
+#
+# MinSpareServers/MaxSpareServers: These settings set the upper and
+# lower limit for the number of spare servers which should be available.
+#
+# If the number of spare servers falls below MinSpareServers then new
+# server processes will be spawned. If the number of servers exceeds
+# MaxSpareServers then the extras will be killed off.
+#
+MinSpareServers 5
+MaxSpareServers 20
+
+#
+# StartServers: The number of servers to start initially.
+#
+StartServers 10
+
+#
+# MaxRequestsPerChild: The number of connections a thread will handle
+# before it is killed. In practise this should be set to 0, which
+# disables thread reaping. If you do notice problems with memory
+# leakage, then set this to something like 10000.
+#
+MaxRequestsPerChild 0
+
+#
+# Allow: Customization of authorization controls. If there are any
+# access control keywords then the default action is to DENY. Otherwise,
+# the default action is ALLOW.
+#
+# The order of the controls are important. All incoming connections are
+# tested against the controls based on order.
+#
+Allow 127.0.0.1
+
+#
+# AddHeader: Adds the specified headers to outgoing HTTP requests that
+# Tinyproxy makes. Note that this option will not work for HTTPS
+# traffic, as Tinyproxy has no control over what headers are exchanged.
+#
+#AddHeader "X-My-Header" "Powered by Tinyproxy"
+
+#
+# ViaProxyName: The "Via" header is required by the HTTP RFC, but using
+# the real host name is a security concern. If the following directive
+# is enabled, the string supplied will be used as the host name in the
+# Via header; otherwise, the server's host name will be used.
+#
+ViaProxyName "tinyproxy"
+
+#
+# DisableViaHeader: When this is set to yes, Tinyproxy does NOT add
+# the Via header to the requests. This virtually puts Tinyproxy into
+# stealth mode. Note that RFC 2616 requires proxies to set the Via
+# header, so by enabling this option, you break compliance.
+# Don't disable the Via header unless you know what you are doing...
+#
+#DisableViaHeader Yes
+
+#
+# Filter: This allows you to specify the location of the filter file.
+#
+#Filter "/etc/filter"
+
+#
+# FilterURLs: Filter based on URLs rather than domains.
+#
+#FilterURLs On
+
+#
+# FilterExtended: Use POSIX Extended regular expressions rather than
+# basic.
+#
+#FilterExtended On
+
+#
+# FilterCaseSensitive: Use case sensitive regular expressions.
+#
+#FilterCaseSensitive On
+
+#
+# FilterDefaultDeny: Change the default policy of the filtering system.
+# If this directive is commented out, or is set to "No" then the default
+# policy is to allow everything which is not specifically denied by the
+# filter file.
+#
+# However, by setting this directive to "Yes" the default policy becomes
+# to deny everything which is _not_ specifically allowed by the filter
+# file.
+#
+#FilterDefaultDeny Yes
+
+#
+# Anonymous: If an Anonymous keyword is present, then anonymous proxying
+# is enabled. The headers listed are allowed through, while all others
+# are denied. If no Anonymous keyword is present, then all headers are
+# allowed through. You must include quotes around the headers.
+#
+# Most sites require cookies to be enabled for them to work correctly, so
+# you will need to allow Cookies through if you access those sites.
+#
+#Anonymous "Host"
+#Anonymous "Authorization"
+#Anonymous "Cookie"
+
+#
+# ConnectPort: This is a list of ports allowed by tinyproxy when the
+# CONNECT method is used. To disable the CONNECT method altogether, set
+# the value to 0. If no ConnectPort line is found, all ports are
+# allowed (which is not very secure.)
+#
+# The following two ports are used by SSL.
+#
+ConnectPort 443
+ConnectPort 563
+
+#
+# Configure one or more ReversePath directives to enable reverse proxy
+# support. With reverse proxying it's possible to make a number of
+# sites appear as if they were part of a single site.
+#
+# If you uncomment the following two directives and run tinyproxy
+# on your own computer at port 8888, you can access Google using
+# http://localhost:8888/google/ and Wired News using
+# http://localhost:8888/wired/news/. Neither will actually work
+# until you uncomment ReverseMagic as they use absolute linking.
+#
+#ReversePath "/google/" "http://www.google.com/"
+#ReversePath "/wired/" "http://www.wired.com/"
+
+#
+# When using tinyproxy as a reverse proxy, it is STRONGLY recommended
+# that the normal proxy is turned off by uncommenting the next directive.
+#
+#ReverseOnly Yes
+
+#
+# Use a cookie to track reverse proxy mappings. If you need to reverse
+# proxy sites which have absolute links you must uncomment this.
+#
+#ReverseMagic Yes
+
+#
+# The URL that's used to access this reverse proxy. The URL is used to
+# rewrite HTTP redirects so that they won't escape the proxy. If you
+# have a chain of reverse proxies, you'll need to put the outermost
+# URL here (the address which the end user types into his/her browser).
+#
+# If not set then no rewriting occurs.
+#
+#ReverseBaseURL "http://localhost:8888/"
+
+
+
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service b/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service
index ea079f9556..78df437f68 100644
--- a/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy/tinyproxy.service
@@ -3,12 +3,12 @@ Description=Tinyproxy, Lightweight http(s) proxy daemon
RequiresMountsFor=/var
[Service]
-Group=tinyproxy
ExecStartPre=/bin/mkdir -p /var/log/tinyproxy
-ExecStartPre=/bin/chown -R nobody.tinyproxy /var/log/tinyproxy
+ExecStartPre=/bin/chown -R tinyproxy.nogroup /var/log/tinyproxy
ExecStartPre=/bin/mkdir -p /var/run/tinyproxy
-ExecStartPre=/bin/chown -R nobody.tinyproxy /var/run/tinyproxy
-ExecStart=/usr/sbin/tinyproxy -d
+ExecStartPre=/bin/chown -R tinyproxy.nogroup /var/run/tinyproxy
+ExecStart=/usr/bin/tinyproxy -d
+PIDFile=/var/run/tinyproxy/tinyproxy.pid
[Install]
WantedBy=multi-user.target
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb
new file mode 100644
index 0000000000..999deff4de
--- /dev/null
+++ b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.11.1.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Lightweight http(s) proxy daemon"
+HOMEPAGE = "https://tinyproxy.github.io/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+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"
+
+UPSTREAM_CHECK_URI = "https://github.com/tinyproxy/tinyproxy/releases"
+
+EXTRA_OECONF += " \
+ --enable-filter \
+ --enable-transparent \
+ --enable-reverse \
+ --enable-upstream \
+ --enable-xtinyproxy \
+ "
+
+inherit autotools systemd useradd
+
+#User specific
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --home /dev/null \
+ --no-user-group --gid nogroup tinyproxy"
+
+SYSTEMD_PACKAGES += "${BPN}"
+SYSTEMD_SERVICE:${PN} = "tinyproxy.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "enable"
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/tinyproxy.service ${D}${systemd_system_unitdir}
+ fi
+ install -m 0644 ${WORKDIR}/tinyproxy.conf ${D}${sysconfdir}/tinyproxy.conf
+}
diff --git a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb b/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb
deleted file mode 100644
index 98192dc99f..0000000000
--- a/meta-networking/recipes-support/tinyproxy/tinyproxy_1.8.4.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Lightweight http(s) proxy daemon"
-HOMEPAGE = "https://tinyproxy.github.io/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/releases/download/${PV}/${BP}.tar.gz \
- file://disable-documentation.patch \
- file://tinyproxy.service"
-
-SRC_URI[md5sum] = "3b60f7d08e0821ed1a3e2cf1e5778cac"
-SRC_URI[sha256sum] = "8234c879a129feee61efa98bac14a1a3e46e5cf08f01696a216940872aa70faf"
-
-EXTRA_OECONF += " \
- --enable-filter \
- --enable-transparent \
- --disable-regexcheck \
- --enable-reverse \
- --enable-upstream \
- --enable-xtinyproxy \
- "
-
-inherit autotools systemd useradd
-
-#User specific
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --home /dev/null \
- --no-user-group --gid nogroup tinypoxy"
-
-SYSTEMD_PACKAGES += "${BPN}"
-SYSTEMD_SERVICE_${PN} = "tinyproxy.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
-
-do_install_append() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${WORKDIR}/tinyproxy.service ${D}${systemd_system_unitdir}
- fi
-}
diff --git a/meta-networking/recipes-support/tnftp/tnftp/0001-libedit-Include-missing-header-stdc-predef.h.patch b/meta-networking/recipes-support/tnftp/tnftp/0001-libedit-Include-missing-header-stdc-predef.h.patch
new file mode 100644
index 0000000000..07a3c739b8
--- /dev/null
+++ b/meta-networking/recipes-support/tnftp/tnftp/0001-libedit-Include-missing-header-stdc-predef.h.patch
@@ -0,0 +1,31 @@
+From 9f2797d1ab8557b44a1f8d6d4d0b6de368d55e80 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Jan 2022 09:22:59 -0800
+Subject: [PATCH] libedit: Include missing header stdc-predef.h
+
+__STDC_ISO_10646__ is defined in stdc-predef.h instead of expecting
+every other file including this header, add it here
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libedit/chartype.h | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/libedit/chartype.h b/libedit/chartype.h
+index 319be30..2d3e20c 100644
+--- a/libedit/chartype.h
++++ b/libedit/chartype.h
+@@ -30,6 +30,9 @@
+ #ifndef _h_chartype_f
+ #define _h_chartype_f
+
++/* for __STDC_ISO_10646__ */
++#include <stdc-predef.h>
++
+ /* Ideally we should also test the value of the define to see if it
+ * supports non-BMP code points without requiring UTF-16, but nothing
+ * seems to actually advertise this properly, despite Unicode 3.1 having
+--
+2.34.1
+
diff --git a/meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch b/meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch
deleted file mode 100644
index 1bda576bc2..0000000000
--- a/meta-networking/recipes-support/tnftp/tnftp/tnftp-autotools.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-[PATCH] Update configure.ac and Makefile.am to resolve warnings/errors
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- configure.ac | 2 ++
- libnetbsd/Makefile.am | 2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index a96d2ab..b3b3069 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -71,9 +71,11 @@ AH_TEMPLATE([WITH_SSL],
- #
- # Checks for programs.
- #
-+AM_PROG_AR()
- AC_PROG_CC()
- AC_PROG_AWK()
- AC_PROG_LIBTOOL()
-+AM_PROG_CC_C_O()
-
- #
- # Checks for tool features.
-diff --git a/libnetbsd/Makefile.am b/libnetbsd/Makefile.am
-index 3e5c3ce..39bb12d 100644
---- a/libnetbsd/Makefile.am
-+++ b/libnetbsd/Makefile.am
-@@ -5,7 +5,7 @@ noinst_LTLIBRARIES = libnetbsd.la
- libnetbsd_la_SOURCES =
-
-
--CPPFLAGS = \
-+AM_CPPFLAGS = \
- -I$(srcdir) \
- -I$(top_srcdir) \
- -I$(top_builddir)
---
-1.7.10.4
-
diff --git a/meta-networking/recipes-support/tnftp/tnftp_20151004.bb b/meta-networking/recipes-support/tnftp/tnftp_20151004.bb
deleted file mode 100644
index 83ad11b0e9..0000000000
--- a/meta-networking/recipes-support/tnftp/tnftp_20151004.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://tnftp-autotools.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=6d6796cb166a9bb050958241dad9479e"
-SRC_URI[md5sum] = "a49fbe752318d5a7893f900046ea00d5"
-SRC_URI[sha256sum] = "c94a8a49d3f4aec1965feea831d4d5bf6f90c65fd8381ee0863d11a5029a43a0"
-
-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_20210827.bb b/meta-networking/recipes-support/tnftp/tnftp_20210827.bb
new file mode 100644
index 0000000000..a6ba671e70
--- /dev/null
+++ b/meta-networking/recipes-support/tnftp/tnftp_20210827.bb
@@ -0,0 +1,39 @@
+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[ftp] = "${bindir}/ftp"
+ALTERNATIVE_TARGET[ftp] = "${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/traceroute/traceroute/filter-out-the-patches-from-subdirs.patch b/meta-networking/recipes-support/traceroute/traceroute/filter-out-the-patches-from-subdirs.patch
deleted file mode 100644
index 2c030b55dd..0000000000
--- a/meta-networking/recipes-support/traceroute/traceroute/filter-out-the-patches-from-subdirs.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From e273e0ebc753645555909bcc4874c72458b17891 Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Fri, 17 Jan 2014 03:17:44 -0500
-Subject: [PATCH] Make.rules: filter-out the patches from subdirs
-
-The $(subdirs) contains all the dirs under the ${B}, and this one:
-
-do_unpack[cleandirs] = "${S}/patches"
-
-will create a "patches" dir, then there will be compile errors, filter
-out the patches will fix the problem.
-
-Note: poky doesn't have this problem since it separates the ${S} and
-${B}
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- Make.rules | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Make.rules b/Make.rules
-index b077cd5..0bfce2d 100644
---- a/Make.rules
-+++ b/Make.rules
-@@ -97,7 +97,7 @@ endif
- subdirs := $(filter-out $(SKIPDIRS), $(subdirs))
- endif
-
--install install-%: subdirs := $(filter-out $(SKIPINSTALL), $(subdirs))
-+install install-%: subdirs := $(filter-out $(SKIPINSTALL) patches, $(subdirs))
-
-
- override MAKE += srcdir=$(srcdir) subdirs="$(subdirs)" shared=$(shared)
-@@ -106,7 +106,7 @@ override MAKE += srcdir=$(srcdir) subdirs="$(subdirs)" shared=$(shared)
- INCLUDEDIRS := $(filter $(INCLUDEDIRS), $(subdirs))
- LIBDIRS := $(filter $(LIBDIRS), $(subdirs))
- MODDIRS := $(filter $(MODDIRS), $(subdirs))
--EXEDIRS := $(filter-out $(INCLUDEDIRS) $(LIBDIRS) $(MODDIRS), $(subdirs))
-+EXEDIRS := $(filter-out $(INCLUDEDIRS) $(LIBDIRS) $(MODDIRS) patches, $(subdirs))
- MODUSERS := $(filter $(MODUSERS), $(subdirs))
- SBINUSERS := $(filter $(SBINUSERS), $(subdirs))
-
---
-1.7.10.4
-
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 8f17d3fdbe..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+ & LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c"
-
-inherit update-alternatives
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/traceroute/traceroute/${BP}/${BP}.tar.gz \
- file://filter-out-the-patches-from-subdirs.patch \
-"
-
-SRC_URI[md5sum] = "84d329d67abc3fb83fc8cb12aeaddaba"
-SRC_URI[sha256sum] = "3669d22a34d3f38ed50caba18cd525ba55c5c00d5465f2d20d7472e5d81603b6"
-
-EXTRA_OEMAKE = "VPATH=${STAGING_LIBDIR}"
-
-do_compile() {
- export LDFLAGS="${TARGET_LDFLAGS} -L${S}/libsupp"
- 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 = "60"
-ALTERNATIVE_${PN} = "traceroute"
-ALTERNATIVE_LINK_NAME[traceroute] = "${bindir}/traceroute"
diff --git a/meta-networking/recipes-support/traceroute/traceroute_2.1.2.bb b/meta-networking/recipes-support/traceroute/traceroute_2.1.2.bb
new file mode 100644
index 0000000000..51b581a4c6
--- /dev/null
+++ b/meta-networking/recipes-support/traceroute/traceroute_2.1.2.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] = "507c268f2977b4e218ce73e7ebed45ba0d970a8ca4995dd9cbb1ffe8e99b5b1f"
+
+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/tunctl/tunctl.inc b/meta-networking/recipes-support/tunctl/tunctl.inc
index 1c11823dd5..07e6dc217d 100644
--- a/meta-networking/recipes-support/tunctl/tunctl.inc
+++ b/meta-networking/recipes-support/tunctl/tunctl.inc
@@ -1,6 +1,6 @@
SUMMARY = "Tool for controlling the Linux TUN/TAP driver"
SECTION = "net"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://tunctl.c;beginline=1;endline=4;md5=ff3a09996bc5fff6bc5d4e0b4c28f999"
SRC_URI = "${SOURCEFORGE_MIRROR}/tunctl/tunctl-${PV}.tar.gz \
diff --git a/meta-networking/recipes-support/uftp/uftp_4.9.3.bb b/meta-networking/recipes-support/uftp/uftp_4.9.3.bb
deleted file mode 100644
index 1166f9a8db..0000000000
--- a/meta-networking/recipes-support/uftp/uftp_4.9.3.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 = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/uftp-multicast/source-tar/uftp-${PV}.tar.gz"
-SRC_URI[md5sum] = "231d6ba7820d89a712fe7d727ab0f8e6"
-SRC_URI[sha256sum] = "9e9215af0315257c6cc4f40fbc6161057e861be1fff10a38a5564f699e99c78f"
-
-DEPENDS = "openssl"
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
diff --git a/meta-networking/recipes-support/uftp/uftp_5.0.1.bb b/meta-networking/recipes-support/uftp/uftp_5.0.1.bb
new file mode 100644
index 0000000000..6d5cf4b628
--- /dev/null
+++ b/meta-networking/recipes-support/uftp/uftp_5.0.1.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] = "f0435fbc8e9ffa125e05600cb6c7fc933d7d587f5bae41b257267be4f2ce0e61"
+
+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
new file mode 100644
index 0000000000..7bcf972612
--- /dev/null
+++ b/meta-networking/recipes-support/unbound/unbound/0001-contrib-add-yocto-compatible-init-script.patch
@@ -0,0 +1,80 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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.17.1.bb b/meta-networking/recipes-support/unbound/unbound_1.17.1.bb
new file mode 100644
index 0000000000..ff3d879ea9
--- /dev/null
+++ b/meta-networking/recipes-support/unbound/unbound_1.17.1.bb
@@ -0,0 +1,48 @@
+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=master \
+ file://0001-contrib-add-yocto-compatible-init-script.patch \
+"
+SRCREV = "90831af981221bbce1cd7b15055562336760e484"
+
+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 ${D}${sysconfdir}/init.d/unbound
+}
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
+INITSCRIPT_NAME = "unbound"
+INITSCRIPT_PARAMS = "defaults"
diff --git a/meta-networking/recipes-support/vnstat/vnstat_2.6.bb b/meta-networking/recipes-support/vnstat/vnstat_2.6.bb
new file mode 100644
index 0000000000..cf3f41c5a1
--- /dev/null
+++ b/meta-networking/recipes-support/vnstat/vnstat_2.6.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "vnStat is a console-based network traffic monitor for Linux and BSD that keeps a log of network traffic for the selected interface(s)."
+HOMEPAGE = "https://humdi.net/vnstat/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+SECTION = "net"
+DEPENDS = "gd sqlite3"
+
+SRC_URI = "https://github.com/vergoh/vnstat/releases/download/v${PV}/${BPN}-${PV}.tar.gz"
+SRC_URI[md5sum] = "fe2928a81243cc8a532a357f97221736"
+SRC_URI[sha256sum] = "89276e0a7281943edb554b874078278ad947dc312938a2451e03eb80679f7ff7"
+
+inherit autotools pkgconfig systemd
+
+EXTRA_OECONF = "--disable-extra-paths"
+
+do_install:append() {
+ install -Dm644 ${S}/examples/systemd/vnstat.service "${D}${systemd_system_unitdir}/vnstat.service"
+}
+
+PARALLEL_MAKEINST = ""
+
+SYSTEMD_SERVICE:${PN} = "vnstat.service"
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
deleted file mode 100644
index 2a9ea74cd0..0000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 1dd07113f2a7489444a8990a95be42e035f8e9df Mon Sep 17 00:00:00 2001
-From: Kurt Roeckx <kroeckx@debian.org>
-Date: Tue, 1 Nov 2016 12:57:35 +0100
-Subject: [PATCH] Fix issue #599
-Forwarded: https://github.com/zaphoyd/websocketpp/pull/600
-
----
- websocketpp/transport/asio/security/tls.hpp | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
-index 7b32db8..a8aafec 100644
---- a/websocketpp/transport/asio/security/tls.hpp
-+++ b/websocketpp/transport/asio/security/tls.hpp
-@@ -355,13 +355,9 @@ protected:
- template <typename ErrorCodeType>
- lib::error_code translate_ec(ErrorCodeType ec) {
- if (ec.category() == lib::asio::error::get_ssl_category()) {
-- if (ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ) {
-- return make_error_code(transport::error::tls_short_read);
-- } else {
- // We know it is a TLS related error, but otherwise don't know
- // more. Pass through as TLS generic.
- return make_error_code(transport::error::tls_error);
-- }
- } else {
- // We don't know any more information about this error so pass
- // through
---
-2.7.4
-
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
deleted file mode 100644
index 530c960ce5..0000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4 Mon Sep 17 00:00:00 2001
-From: Peter Thorson <git@zaphoyd.com>
-Date: Sun, 11 Jun 2017 16:13:25 -0500
-Subject: [PATCH] minor adjustments to recent extension negotiation related
- fixes, refactor a bit more extension negotiation code to be simpler
-
----
- websocketpp/impl/connection_impl.hpp | 6 +--
- websocketpp/processors/hybi13.hpp | 92 ++++++++++++++++++------------------
- 2 files changed, 49 insertions(+), 49 deletions(-)
-
-Index: websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
-===================================================================
---- websocketpp-0.7.0.orig/websocketpp/impl/connection_impl.hpp
-+++ websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
-@@ -1222,17 +1222,17 @@
- std::pair<lib::error_code,std::string> neg_results;
- neg_results = m_processor->negotiate_extensions(m_request);
-
-- if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
-+ if (neg_results.first == processor::error::make_error_code(processor::error::extension_parse_error)) {
- // There was a fatal error in extension parsing that should result in
- // a failed connection attempt.
-- m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
-+ m_elog.write(log::elevel::info, "Bad request: " + neg_results.first.message());
- m_response.set_status(http::status_code::bad_request);
- return neg_results.first;
- } else if (neg_results.first) {
- // There was a fatal error in extension processing that is probably our
- // fault. Consider extension negotiation to have failed and continue as
- // if extensions were not supported
-- m_alog.write(log::alevel::info,
-+ m_elog.write(log::elevel::info,
- "Extension negotiation failed: " + neg_results.first.message());
- } else {
- // extension negotiation succeeded, set response header accordingly
-Index: websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
-===================================================================
---- websocketpp-0.7.0.orig/websocketpp/processors/hybi13.hpp
-+++ websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
-@@ -97,11 +97,6 @@
- /**
- * This exists mostly because the code for requests and responses is
- * identical and I can't have virtual template methods.
-- *
-- * NOTE: this method makes assumptions that the permessage-deflate
-- * extension is the only one supported. If additional extensions are
-- * ever supported it should be reviewed carefully. Most cases where
-- * that assumption is made are explicitly noted.
- */
- template <typename header_type>
- err_str_pair negotiate_extensions_helper(header_type const & header) {
-@@ -130,55 +125,60 @@
-
- http::parameter_list::const_iterator it;
-
-+ // look through the list of extension requests to find the first
-+ // one that we can accept.
- if (m_permessage_deflate.is_implemented()) {
- err_str_pair neg_ret;
- for (it = p.begin(); it != p.end(); ++it) {
-- // look through each extension, if the key is permessage-deflate
-- if (it->first == "permessage-deflate") {
-- // if we have already successfully negotiated this extension
-- // then skip any other requests to negotiate the same one
-- // with different parameters
-- if (m_permessage_deflate.is_enabled()) {
-- continue;
-- }
--
--
-- neg_ret = m_permessage_deflate.negotiate(it->second);
--
-- if (neg_ret.first) {
-- // Figure out if this is an error that should halt all
-- // extension negotiations or simply cause negotiation of
-- // this specific extension to fail.
-- //std::cout << "permessage-compress negotiation failed: "
-- // << neg_ret.first.message() << std::endl;
-- } else {
-- // Note: this list will need commas if WebSocket++ ever
-- // supports more than one extension
--
-- // Actually try to initialize the extension before we
-- // deem negotiation complete
-- ret.first = m_permessage_deflate.init(base::m_server);
-- if (!ret.first) {
--
-- // TODO: support multiple extensions.
-- // right now, because there is only one extension
-- // supported, it failing to negotiate means we are
-- // done with all negotiating. In the future if more
-- // extensions are supported a better solution will
-- // be needed here.
-- break;
-- } else {
-- ret.second += neg_ret.second;
--
-- // continue looking for more extensions
-- continue;
-- }
--
-- }
-+ // not a permessage-deflate extension request, ignore
-+ if (it->first != "permessage-deflate") {
-+ continue;
-+ }
-+
-+ // if we have already successfully negotiated this extension
-+ // then skip any other requests to negotiate the same one
-+ // with different parameters
-+ if (m_permessage_deflate.is_enabled()) {
-+ continue;
-+ }
-+
-+ // attempt to negotiate this offer
-+ neg_ret = m_permessage_deflate.negotiate(it->second);
-+
-+ if (neg_ret.first) {
-+ // negotiation offer failed. Do nothing. We will continue
-+ // searching for a permessage-deflate config that succeeds
-+ continue;
-+ }
-+
-+ // Negotiation tentatively succeeded
-+
-+ // Actually try to initialize the extension before we
-+ // deem negotiation complete
-+ lib::error_code ec = m_permessage_deflate.init(base::m_server);
-+
-+ if (ec) {
-+ // Negotiation succeeded but initialization failed this is
-+ // an error that should stop negotiation of permessage
-+ // deflate. Return the reason for the init failure
-+
-+ ret.first = ec;
-+ break;
-+ } else {
-+ // Successfully initialized, push the negotiated response into
-+ // the reply and stop looking for additional permessage-deflate
-+ // extensions
-+ ret.second += neg_ret.second;
-+ break;
- }
- }
- }
-
-+ // support for future extensions would go here. Should check the value of
-+ // ret.first before continuing. Might need to consider whether failure of
-+ // negotiation of an earlier extension should stop negotiation of subsequent
-+ // ones
-+
- return ret;
- }
-
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
deleted file mode 100644
index 94bfeb2fd4..0000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
+++ /dev/null
@@ -1,600 +0,0 @@
-## Description: add some description
-## Origin/Author: add some origin or author
-## Bug: bug URL
-From 9ddb300d874a30db35e3ad58f188944bef0bf31b Mon Sep 17 00:00:00 2001
-From: Peter Thorson <git@zaphoyd.com>
-Date: Sun, 11 Jun 2017 15:24:43 -0500
-Subject: [PATCH] Update permessage-deflate support to reflect that zlib
- doesn't support a 256 bit window. Improve extension negotiation error
- checking and documentation. fixes #596 fixes #653
-
----
- changelog.md | 8 ++
- test/extension/permessage_deflate.cpp | 153 +++++++++++++++++----
- .../extensions/permessage_deflate/enabled.hpp | 94 ++++++++++---
- websocketpp/impl/connection_impl.hpp | 10 +-
- websocketpp/processors/hybi13.hpp | 28 +++-
- 5 files changed, 247 insertions(+), 46 deletions(-)
-
-diff --git a/changelog.md b/changelog.md
-index bba753cb..de98edd2 100644
-#--- a/changelog.md
-#+++ b/changelog.md
-#@@ -17,6 +17,14 @@ HEAD
-# - Compatibility: Update `telemetry_client` to use a slightly more cross platform
-# method of sleeping. Should work on windows now. Thank you Meir Yanovich for
-# reporting.
-#+- Compatibility: Updated permessage-deflate support to reflect that the zlib
-#+ library does not actually support a sliding window size of 256 bits.
-#+ WebSocket++ will no longer negotiate 256 bit deflate windows. If the user
-#+ of the library tries to request a 256 bit window a 512 bit window will be
-#+ specified instead (This was the previous behavior). #596 #653 Thank you
-#+ Vinnie Falco and Gianfranco Costamagna for reporting.
-#+- Compatibility: Better error handling and logging in cases where extension
-#+ requests parse correctly but negotiation fails.
-# - Bug: Store loggers in shared pointers to avoid crashes related to connections
-# trying to write logs entries after their respective endpoint has been
-# deallocated. Thank you Thalhammer for reporting and Jupp Müller for the
-diff --git a/test/extension/permessage_deflate.cpp b/test/extension/permessage_deflate.cpp
-index 4cd3e7b6..805afcc3 100644
---- a/test/extension/permessage_deflate.cpp
-+++ b/test/extension/permessage_deflate.cpp
-@@ -186,15 +186,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_invalid ) {
-
- BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_valid ) {
- ext_vars v;
-+
-+ // confirm that a request for a value of 8 is interpreted as 9
- v.attr["server_max_window_bits"] = "8";
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-
-+ v.attr["server_max_window_bits"] = "9";
- v.esp = v.exts.negotiate(v.attr);
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-
-- v.attr["server_max_window_bits"] = "15";
-
-+ v.attr["server_max_window_bits"] = "15";
- v.esp = v.exts.negotiate(v.attr);
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-@@ -213,7 +220,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_server_max_window_bits ) {
-
- BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
- ext_vars v;
-- v.attr["server_max_window_bits"] = "8";
-+ v.attr["server_max_window_bits"] = "9";
-
- v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::decline);
- v.esp = v.exts.negotiate(v.attr);
-@@ -223,7 +230,7 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept_8 ) {
- ext_vars v;
- v.attr["server_max_window_bits"] = "8";
-
-@@ -232,10 +239,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
-+ ext_vars v;
-+ v.attr["server_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::accept);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest_8 ) {
- ext_vars v;
- v.attr["server_max_window_bits"] = "8";
-
-@@ -244,10 +263,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
-+ ext_vars v;
-+ v.attr["server_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::largest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest_8 ) {
- ext_vars v;
- v.attr["server_max_window_bits"] = "8";
-
-@@ -256,7 +287,19 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
-+ ext_vars v;
-+ v.attr["server_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::smallest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
-
- // Negotiate server_max_window_bits
-@@ -292,7 +335,13 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_valid ) {
- v.esp = v.exts.negotiate(v.attr);
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+
-+ v.attr["client_max_window_bits"] = "9";
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-
- v.attr["client_max_window_bits"] = "15";
- v.esp = v.exts.negotiate(v.attr);
-@@ -311,7 +360,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_client_max_window_bits ) {
- BOOST_CHECK_EQUAL(v.ec,pmde::make_error_code(pmde::invalid_max_window_bits));
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -323,7 +372,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(9,pmd_mode::decline);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -332,10 +393,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::accept);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -344,10 +417,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::largest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -356,7 +441,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::smallest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
-
-
-@@ -507,7 +604,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
- std::string compress_out;
- std::string decompress_out;
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -520,7 +618,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
- BOOST_AUTO_TEST_CASE( compress_data_multiple ) {
- ext_vars v;
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- for (int i = 0; i < 2; i++) {
- std::string compress_in = "Hello";
-@@ -545,11 +644,12 @@ BOOST_AUTO_TEST_CASE( compress_data_large ) {
-
- websocketpp::http::attribute_list alist;
-
-- alist["server_max_window_bits"] = "8";
-- v.exts.set_server_max_window_bits(8,websocketpp::extensions::permessage_deflate::mode::smallest);
-+ alist["server_max_window_bits"] = "9";
-+ v.exts.set_server_max_window_bits(9,websocketpp::extensions::permessage_deflate::mode::smallest);
-
- v.exts.negotiate(alist);
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -573,7 +673,8 @@ BOOST_AUTO_TEST_CASE( compress_data_no_context_takeover ) {
- v.exts.enable_server_no_context_takeover();
-
- v.exts.negotiate(alist);
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out1);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -609,7 +710,8 @@ BOOST_AUTO_TEST_CASE( compress_empty ) {
- std::string compress_out;
- std::string decompress_out;
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -640,7 +742,8 @@ BOOST_AUTO_TEST_CASE( decompress_data ) {
- std::string out;
- std::string reference = "Hello";
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.decompress(in,11,out);
-
-diff --git a/websocketpp/extensions/permessage_deflate/enabled.hpp b/websocketpp/extensions/permessage_deflate/enabled.hpp
-index 1581f14c..f20a1b1d 100644
---- a/websocketpp/extensions/permessage_deflate/enabled.hpp
-+++ b/websocketpp/extensions/permessage_deflate/enabled.hpp
-@@ -46,7 +46,7 @@
- namespace websocketpp {
- namespace extensions {
-
--/// Implementation of the draft permessage-deflate WebSocket extension
-+/// Implementation of RFC 7692, the permessage-deflate WebSocket extension
- /**
- * ### permessage-deflate interface
- *
-@@ -174,18 +174,30 @@ namespace websocketpp {
- namespace extensions {
- namespace permessage_deflate {
-
--/// Default value for server_max_window_bits as defined by draft 17
-+/// Default value for server_max_window_bits as defined by RFC 7692
- static uint8_t const default_server_max_window_bits = 15;
--/// Minimum value for server_max_window_bits as defined by draft 17
-+/// Minimum value for server_max_window_bits as defined by RFC 7692
-+/**
-+ * NOTE: A value of 8 is not actually supported by zlib, the deflate
-+ * library that WebSocket++ uses. To preserve backwards compatibility
-+ * with RFC 7692 and previous versions of the library a value of 8
-+ * is accepted by the library but will always be negotiated as 9.
-+ */
- static uint8_t const min_server_max_window_bits = 8;
--/// Maximum value for server_max_window_bits as defined by draft 17
-+/// Maximum value for server_max_window_bits as defined by RFC 7692
- static uint8_t const max_server_max_window_bits = 15;
-
--/// Default value for client_max_window_bits as defined by draft 17
-+/// Default value for client_max_window_bits as defined by RFC 7692
- static uint8_t const default_client_max_window_bits = 15;
--/// Minimum value for client_max_window_bits as defined by draft 17
-+/// Minimum value for client_max_window_bits as defined by RFC 7692
-+/**
-+ * NOTE: A value of 8 is not actually supported by zlib, the deflate
-+ * library that WebSocket++ uses. To preserve backwards compatibility
-+ * with RFC 7692 and previous versions of the library a value of 8
-+ * is accepted by the library but will always be negotiated as 9.
-+ */
- static uint8_t const min_client_max_window_bits = 8;
--/// Maximum value for client_max_window_bits as defined by draft 17
-+/// Maximum value for client_max_window_bits as defined by RFC 7692
- static uint8_t const max_client_max_window_bits = 15;
-
- namespace mode {
-@@ -372,7 +384,7 @@ class enabled {
- /**
- * The bits setting is the base 2 logarithm of the maximum window size that
- * the server must use to compress outgoing messages. The permitted range
-- * is 8 to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB
-+ * is 9 to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB
- * window. The default setting is 15.
- *
- * Mode Options:
-@@ -386,6 +398,14 @@ class enabled {
- * adjusted by the server. A server may unilaterally set this value without
- * client support.
- *
-+ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
-+ * Prior to version 0.8.0 a value of 8 was also allowed by this library.
-+ * zlib, the deflate compression library that WebSocket++ uses has always
-+ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9
-+ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
-+ * continues to perform the 8->9 conversion for backwards compatibility
-+ * purposes but this should be considered deprecated functionality.
-+ *
- * @param bits The size to request for the outgoing window size
- * @param mode The mode to use for negotiating this parameter
- * @return A status code
-@@ -394,6 +414,12 @@ class enabled {
- if (bits < min_server_max_window_bits || bits > max_server_max_window_bits) {
- return error::make_error_code(error::invalid_max_window_bits);
- }
-+
-+ // See note in doc comment above about what is happening here
-+ if (bits == 8) {
-+ bits = 9;
-+ }
-+
- m_server_max_window_bits = bits;
- m_server_max_window_bits_mode = mode;
-
-@@ -403,8 +429,8 @@ class enabled {
- /// Limit client LZ77 sliding window size
- /**
- * The bits setting is the base 2 logarithm of the window size that the
-- * client must use to compress outgoing messages. The permitted range is 8
-- * to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB window.
-+ * client must use to compress outgoing messages. The permitted range is 9
-+ * to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB window.
- * The default setting is 15.
- *
- * Mode Options:
-@@ -417,6 +443,14 @@ class enabled {
- * outgoing window size unilaterally. A server may only limit the client's
- * window size if the remote client supports that feature.
- *
-+ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
-+ * Prior to version 0.8.0 a value of 8 was also allowed by this library.
-+ * zlib, the deflate compression library that WebSocket++ uses has always
-+ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9
-+ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
-+ * continues to perform the 8->9 conversion for backwards compatibility
-+ * purposes but this should be considered deprecated functionality.
-+ *
- * @param bits The size to request for the outgoing window size
- * @param mode The mode to use for negotiating this parameter
- * @return A status code
-@@ -425,6 +459,12 @@ class enabled {
- if (bits < min_client_max_window_bits || bits > max_client_max_window_bits) {
- return error::make_error_code(error::invalid_max_window_bits);
- }
-+
-+ // See note in doc comment above about what is happening here
-+ if (bits == 8) {
-+ bits = 9;
-+ }
-+
- m_client_max_window_bits = bits;
- m_client_max_window_bits_mode = mode;
-
-@@ -642,11 +682,17 @@ class enabled {
- * client requested that we use.
- *
- * options:
-- * - decline (refuse to use the attribute)
-- * - accept (use whatever the client says)
-- * - largest (use largest possible value)
-+ * - decline (ignore value, offer our default instead)
-+ * - accept (use the value requested by the client)
-+ * - largest (use largest value acceptable to both)
- * - smallest (use smallest possible value)
- *
-+ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
-+ * be requested for negotiation by an older client/server, if the result of
-+ * the negotiation would be to send a value of 8, a value of 9 is offered
-+ * instead. This ensures that WebSocket++ will only ever negotiate connections
-+ * with compression settings explicitly supported by zlib.
-+ *
- * @param [in] value The value of the attribute from the offer
- * @param [out] ec A reference to the error code to return errors via
- */
-@@ -678,6 +724,11 @@ class enabled {
- ec = make_error_code(error::invalid_mode);
- m_server_max_window_bits = default_server_max_window_bits;
- }
-+
-+ // See note in doc comment
-+ if (m_server_max_window_bits == 8) {
-+ m_server_max_window_bits = 9;
-+ }
- }
-
- /// Negotiate client_max_window_bits attribute
-@@ -687,11 +738,17 @@ class enabled {
- * negotiation mode.
- *
- * options:
-- * - decline (refuse to use the attribute)
-- * - accept (use whatever the client says)
-- * - largest (use largest possible value)
-+ * - decline (ignore value, offer our default instead)
-+ * - accept (use the value requested by the client)
-+ * - largest (use largest value acceptable to both)
- * - smallest (use smallest possible value)
- *
-+ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
-+ * be requested for negotiation by an older client/server, if the result of
-+ * the negotiation would be to send a value of 8, a value of 9 is offered
-+ * instead. This ensures that WebSocket++ will only ever negotiate connections
-+ * with compression settings explicitly supported by zlib.
-+ *
- * @param [in] value The value of the attribute from the offer
- * @param [out] ec A reference to the error code to return errors via
- */
-@@ -727,6 +784,11 @@ class enabled {
- ec = make_error_code(error::invalid_mode);
- m_client_max_window_bits = default_client_max_window_bits;
- }
-+
-+ // See note in doc comment
-+ if (m_client_max_window_bits == 8) {
-+ m_client_max_window_bits = 9;
-+ }
- }
-
- bool m_enabled;
-diff --git a/websocketpp/impl/connection_impl.hpp b/websocketpp/impl/connection_impl.hpp
-index 105911db..ae55c338 100644
---- a/websocketpp/impl/connection_impl.hpp
-+++ b/websocketpp/impl/connection_impl.hpp
-@@ -1222,12 +1222,18 @@ lib::error_code connection<config>::process_handshake_request() {
- std::pair<lib::error_code,std::string> neg_results;
- neg_results = m_processor->negotiate_extensions(m_request);
-
-- if (neg_results.first) {
-+ if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
- // There was a fatal error in extension parsing that should result in
- // a failed connection attempt.
-- m_alog.write(log::alevel::devel, "Bad request: " + neg_results.first.message());
-+ m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
- m_response.set_status(http::status_code::bad_request);
- return neg_results.first;
-+ } else if (neg_results.first) {
-+ // There was a fatal error in extension processing that is probably our
-+ // fault. Consider extension negotiation to have failed and continue as
-+ // if extensions were not supported
-+ m_alog.write(log::alevel::info,
-+ "Extension negotiation failed: " + neg_results.first.message());
- } else {
- // extension negotiation succeeded, set response header accordingly
- // we don't send an empty extensions header because it breaks many
-diff --git a/websocketpp/processors/hybi13.hpp b/websocketpp/processors/hybi13.hpp
-index 79486654..a95bc649 100644
---- a/websocketpp/processors/hybi13.hpp
-+++ b/websocketpp/processors/hybi13.hpp
-@@ -97,6 +97,11 @@ class hybi13 : public processor<config> {
- /**
- * This exists mostly because the code for requests and responses is
- * identical and I can't have virtual template methods.
-+ *
-+ * NOTE: this method makes assumptions that the permessage-deflate
-+ * extension is the only one supported. If additional extensions are
-+ * ever supported it should be reviewed carefully. Most cases where
-+ * that assumption is made are explicitly noted.
- */
- template <typename header_type>
- err_str_pair negotiate_extensions_helper(header_type const & header) {
-@@ -149,9 +154,26 @@ class hybi13 : public processor<config> {
- } else {
- // Note: this list will need commas if WebSocket++ ever
- // supports more than one extension
-- ret.second += neg_ret.second;
-- m_permessage_deflate.init(base::m_server);
-- continue;
-+
-+ // Actually try to initialize the extension before we
-+ // deem negotiation complete
-+ ret.first = m_permessage_deflate.init(base::m_server);
-+ if (!ret.first) {
-+
-+ // TODO: support multiple extensions.
-+ // right now, because there is only one extension
-+ // supported, it failing to negotiate means we are
-+ // done with all negotiating. In the future if more
-+ // extensions are supported a better solution will
-+ // be needed here.
-+ break;
-+ } else {
-+ ret.second += neg_ret.second;
-+
-+ // continue looking for more extensions
-+ continue;
-+ }
-+
- }
- }
- }
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
deleted file mode 100644
index 342981d4db..0000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Description: Disable failing test_transport_asio_timers.
-Because of "address already in use" error
-/«PKGBUILDDIR»/test/transport/asio/timers.cpp(129): error in "tls_handshake_timeout": check ec == make_error_code(tls_handshake_timeout) failed [websocketpp.transport.asio.socket:8 != websocketpp.transport.asio.socket:5]
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-
---- websocketpp-0.7.0.orig/test/transport/CMakeLists.txt
-+++ websocketpp-0.7.0/test/transport/CMakeLists.txt
-@@ -1,24 +1,24 @@
- if (OPENSSL_FOUND)
-
--# Test transport integration
--file (GLOB SOURCE integration.cpp)
--
--init_target (test_transport)
--build_test (${TARGET_NAME} ${SOURCE})
--link_boost ()
--link_openssl()
--final_target ()
--set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
--
--# Test transport asio timers
--file (GLOB SOURCE asio/timers.cpp)
--
--init_target (test_transport_asio_timers)
--build_test (${TARGET_NAME} ${SOURCE})
--link_boost ()
--link_openssl()
--final_target ()
--set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-+## Test transport integration
-+#file (GLOB SOURCE integration.cpp)
-+#
-+#init_target (test_transport)
-+#build_test (${TARGET_NAME} ${SOURCE})
-+#link_boost ()
-+#link_openssl()
-+#final_target ()
-+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-+#
-+## Test transport asio timers
-+#file (GLOB SOURCE asio/timers.cpp)
-+#
-+#init_target (test_transport_asio_timers)
-+#build_test (${TARGET_NAME} ${SOURCE})
-+#link_boost ()
-+#link_openssl()
-+#final_target ()
-+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-
- # Test transport asio security
- file (GLOB SOURCE asio/security.cpp)
diff --git a/meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb b/meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb
deleted file mode 100644
index 65fc974b6c..0000000000
--- a/meta-networking/recipes-support/websocketpp/websocketpp_0.7.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "C++/Boost Asio based websocket client/server library."
-SECTION = "libs/network"
-HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
-DEPENDS = "openssl boost zlib"
-
-SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
-
-# tag 0.7.0
-SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
-
-SRC_URI += "file://0001-Fix-issue-599.patch \
- file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
- file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
- file://disable-tests.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit cmake
diff --git a/meta-networking/recipes-support/wireshark/README b/meta-networking/recipes-support/wireshark/README
index 63b5b72631..f5e4d04777 100644
--- a/meta-networking/recipes-support/wireshark/README
+++ b/meta-networking/recipes-support/wireshark/README
@@ -14,12 +14,12 @@ Adding the wireshark to your build
========================================
via local.conf
-IMAGE_INSTALL_append = " wireshark"
+IMAGE_INSTALL:append = " wireshark"
Adding the wireshark to your graphical build
========================================
via local.conf
-IMAGE_INSTALL_append = " wireshark"
+IMAGE_INSTALL:append = " wireshark"
and one of:
diff --git a/meta-networking/recipes-support/wireshark/files/0001-CMake-Fix-a-try_run-test-when-cross-compiling.patch b/meta-networking/recipes-support/wireshark/files/0001-CMake-Fix-a-try_run-test-when-cross-compiling.patch
new file mode 100644
index 0000000000..0d51ce1b8f
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/files/0001-CMake-Fix-a-try_run-test-when-cross-compiling.patch
@@ -0,0 +1,66 @@
+From b4f29807225cf3744c2f4f971902fbdd7486fc19 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jo=C3=A3o=20Valverde?= <j@v6e.pt>
+Date: Fri, 26 May 2023 13:29:23 +0100
+Subject: [PATCH] CMake: Fix a try_run() test when cross-compiling
+
+Upstream-Status: Backport
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+---
+ ConfigureChecks.cmake | 36 ++++++++++++++++++++----------------
+ 1 file changed, 20 insertions(+), 16 deletions(-)
+
+diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
+index dd8268e077..d8bca54115 100644
+--- a/ConfigureChecks.cmake
++++ b/ConfigureChecks.cmake
+@@ -122,26 +122,30 @@ check_type_size("ssize_t" SSIZE_T)
+ # Check if the libc vsnprintf() conforms to C99. If this fails we may
+ # need to fall-back on GLib I/O.
+ #
+-check_c_source_runs("
+- #include <stdio.h>
+- int main(void)
+- {
+- /* Check that snprintf() and vsnprintf() don't return
+- * -1 if the buffer is too small. C99 says this value
+- * is the length that would be written not including
+- * the nul byte. */
+- char buf[3];
+- return snprintf(buf, sizeof(buf), \"%s\", \"ABCDEF\") > 0 ? 0 : 1;
+- }"
+- HAVE_C99_VSNPRINTF
+-)
+-if (NOT HAVE_C99_VSNPRINTF)
+- message(FATAL_ERROR
++# If cross-compiling we can't check so just assume this requirement is met.
++#
++if(NOT CMAKE_CROSSCOMPILING)
++ check_c_source_runs("
++ #include <stdio.h>
++ int main(void)
++ {
++ /* Check that snprintf() and vsnprintf() don't return
++ * -1 if the buffer is too small. C99 says this value
++ * is the length that would be written not including
++ * the nul byte. */
++ char buf[3];
++ return snprintf(buf, sizeof(buf), \"%s\", \"ABCDEF\") > 0 ? 0 : 1;
++ }"
++ HAVE_C99_VSNPRINTF
++ )
++ if (NOT HAVE_C99_VSNPRINTF)
++ message(FATAL_ERROR
+ "Building Wireshark requires a C99 compliant vsnprintf() and this \
+ target does not meet that requirement. Compiling for ${CMAKE_SYSTEM} \
+ using ${CMAKE_C_COMPILER_ID}. Please report this issue to the Wireshark \
+ developers at wireshark-dev@wireshark.org."
+- )
++ )
++ endif()
+ endif()
+
+ #
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..6ad8a62c28
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/files/0001-wireshark-src-improve-reproducibility.patch
@@ -0,0 +1,28 @@
+From 0a9ab056ce7582033a21d6bc541ece520bf2b0b6 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
+
+Cut absolute path for filename in generated code
+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(-)
+
+Index: wireshark-4.0.6/tools/ncp2222.py
+===================================================================
+--- wireshark-4.0.6.orig/tools/ncp2222.py
++++ wireshark-4.0.6/tools/ncp2222.py
+@@ -5891,7 +5891,7 @@ def produce_code():
+
+ print("/*")
+ print(" * Do not modify this file. Changes will be overwritten.")
+- print(" * Generated automatically from %s" % (sys.argv[0]))
++ print(" * Generated automatically from %s" % (os.path.basename(sys.argv[0])))
+ print(" */\n")
+
+ print("""
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
new file mode 100644
index 0000000000..069b5793d9
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/files/0002-flex-Remove-line-directives.patch
@@ -0,0 +1,46 @@
+From 3e571e24c730f747d18ed02ba7451e9e00480fc7 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
+
+Append --noline option to flex to not
+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
+--- a/cmake/modules/FindLEX.cmake
++++ b/cmake/modules/FindLEX.cmake
+@@ -32,11 +32,19 @@ MACRO(ADD_LEX_FILES _source _generated)
+ SET(_outc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.c)
+ SET(_outh ${CMAKE_CURRENT_BINARY_DIR}/${_basename}_lex.h)
+
+- ADD_CUSTOM_COMMAND(
+- OUTPUT ${_outc} ${_outh}
+- COMMAND ${LEX_EXECUTABLE} -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}
++ DEPENDS ${_in}
++ )
++ ELSE ()
++ ADD_CUSTOM_COMMAND(
++ OUTPUT ${_outc} ${_outh}
++ COMMAND ${LEX_EXECUTABLE} -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/0004-lemon-Remove-line-directives.patch b/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
new file mode 100644
index 0000000000..134633f668
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/files/0004-lemon-Remove-line-directives.patch
@@ -0,0 +1,74 @@
+From 17f05a8d02c589e4867906f70381e63e46a67870 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
+
+In case of reproducible build remove #line
+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(-)
+
+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/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch b/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch
deleted file mode 100644
index e65ef9b10c..0000000000
--- a/meta-networking/recipes-support/wireshark/wireshark/0001-Add-libm-to-link-for-fmod-API.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 1a6a5d2bcb1adec9ba138c2ebee7bbc994620aff Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 12 Jun 2018 23:23:44 -0700
-Subject: [PATCH] Add libm to link for fmod() API
-
-fixes
-ld: CMakeFiles/tshark.dir/ui/cli/tap-comparestat.c.o: undefined reference to symbol 'fmod@@GLIBC_2.2.5'
-| /mnt/a/oe/build/tmp/work/core2-64-bec-linux/wireshark/1_2.6.1-r0/recipe-sysroot/lib/libm.so.6: error adding symbols: DSO missing from command line
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 7950e85..acee140 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -2494,6 +2494,7 @@ if(BUILD_tshark)
- ${LIBEPAN_LIBS}
- ${APPLE_CORE_FOUNDATION_LIBRARY}
- ${APPLE_SYSTEM_CONFIGURATION_LIBRARY}
-+ m
- )
- set(tshark_FILES
- capture_opts.c
---
-2.17.1
-
diff --git a/meta-networking/recipes-support/wireshark/wireshark_2.6.1.bb b/meta-networking/recipes-support/wireshark/wireshark_2.6.1.bb
deleted file mode 100644
index 91c5e96bb0..0000000000
--- a/meta-networking/recipes-support/wireshark/wireshark_2.6.1.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-DESCRIPTION = "wireshark - a popular network protocol analyzer"
-HOMEPAGE = "http://www.wireshark.org"
-SECTION = "net"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6e271234ba1a13c6e512e76b94ac2f77"
-
-DEPENDS = "pcre expat glib-2.0 glib-2.0-native libgcrypt libgpg-error libxml2"
-
-DEPENDS_append_class-target = " wireshark-native chrpath-replacement-native "
-
-SRC_URI = "https://1.as.dl.wireshark.org/src/${BP}.tar.xz \
- file://0001-Add-libm-to-link-for-fmod-API.patch \
- "
-
-UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
-
-SRC_URI[md5sum] = "b0e9e5fe22e96d9fdfad18f750fa8f55"
-SRC_URI[sha256sum] = "ab6e5bbc3464c956347b8671ce8397950ad5daff3bf9964c967d495f4ddbcd88"
-
-PE = "1"
-
-inherit cmake pkgconfig pythonnative perlnative upstream-version-is-even
-
-ARM_INSTRUCTION_SET = "arm"
-
-PACKAGECONFIG ?= "libpcap gnutls libnl libcap sbc"
-PACKAGECONFIG_append_class-target = " ${@bb.utils.contains("DISTRO_FEATURES", "x11", " gtk3 graphics ", "", d)}"
-
-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[gtk2] = "-DENABLE_GTK=ON,-DENABLE_GTK=OFF, gtk+"
-PACKAGECONFIG[gtk3] = "-DENABLE_GTK3=ON,-DENABLE_GTK3=OFF, gtk+3"
-PACKAGECONFIG[qt5] = "-DENABLE_QT5=ON,-DENABLE_QT5=OFF -DBUILD_wireshark=OFF, qtbase"
-PACKAGECONFIG[graphics] = ",-DENABLE_GTK=OFF,"
-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"
-
-# these next two options require addional layers
-PACKAGECONFIG[c-ares] = "-DENABLE_CARES=ON,-DENABLE_CARES=OFF, c-ares"
-
-EXTRA_OECMAKE += "-DBUILD_wireshark=ON \
- -DENABLE_NETLINK=ON \
- -DBUILD_mmdbresolve=OFF \
- -DBUILD_randpktdump=OFF \
- -DBUILD_androiddump=OFF \
- -DBUILD_dcerpcidl2wrs=OFF \
- -DM_INCLUDE_DIR=${includedir} \
- -DM_LIBRARY=${libdir} \
- "
-do_install_append_class-native() {
- install -d ${D}${bindir}
- for f in make-dissectors lemon make-taps
- 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
-}
-
-FILES_${PN} += "${datadir}*"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-networking/recipes-support/wireshark/wireshark_4.0.7.bb b/meta-networking/recipes-support/wireshark/wireshark_4.0.7.bb
new file mode 100644
index 0000000000..d7df76a692
--- /dev/null
+++ b/meta-networking/recipes-support/wireshark/wireshark_4.0.7.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"
+
+DEPENDS:append:class-target = " wireshark-native chrpath-replacement-native "
+
+SRC_URI = "https://1.eu.dl.wireshark.org/src/wireshark-${PV}.tar.xz \
+ file://0001-CMake-Fix-a-try_run-test-when-cross-compiling.patch \
+ file://0001-wireshark-src-improve-reproducibility.patch \
+ file://0002-flex-Remove-line-directives.patch \
+ file://0004-lemon-Remove-line-directives.patch \
+ "
+
+UPSTREAM_CHECK_URI = "https://1.as.dl.wireshark.org/src"
+
+SRC_URI[sha256sum] = "a79f7b04cbff823e30452abf4bcb86773d8583eb62d5f71f16c09f019f8a8777"
+
+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-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb b/meta-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb
new file mode 100644
index 0000000000..6b83cbd522
--- /dev/null
+++ b/meta-networking/recipes-support/wpan-tools/wpan-tools_0.9.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Userspace tools for Linux IEEE 802.15.4 stack"
+HOMEPAGE = "http://wpan.cakelab.org/releases/"
+DESCRIPTION = "This is a set of utils to manage the Linux WPAN stack via \
+netlink interface. This requires recent kernel with nl802154 interface."
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4cfd939b1d7e6aba9fcefb7f6e2fd45d"
+
+DEPENDS = "libnl"
+
+SRC_URI = "git://github.com/linux-wpan/wpan-tools;branch=master;protocol=https"
+SRCREV = "a316ca2caa746d60817400e5bf646c2820f09273"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-networking/recipes-support/wpan-tools/wpan-tools_git.bb b/meta-networking/recipes-support/wpan-tools/wpan-tools_git.bb
deleted file mode 100644
index b6d2f69235..0000000000
--- a/meta-networking/recipes-support/wpan-tools/wpan-tools_git.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Userspace tools for Linux IEEE 802.15.4 stack"
-HOMEPAGE = "http://wpan.cakelab.org/releases/"
-DESCRIPTION = "This is a set of utils to manage the Linux WPAN stack via \
-netlink interface. This requires recent kernel with nl802154 interface."
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4cfd939b1d7e6aba9fcefb7f6e2fd45d"
-
-DEPENDS = "libnl"
-
-PV = "0.8+git${SRCPV}"
-SRC_URI = "git://github.com/linux-wpan/wpan-tools \
- "
-SRCREV = "3f473f5136f89773997cb4fff2d8ed647734e2f5"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-networking/site/endian-big b/meta-networking/site/endian-big
deleted file mode 100644
index 3a968e3267..0000000000
--- a/meta-networking/site/endian-big
+++ /dev/null
@@ -1,2 +0,0 @@
-# rp-pppoe
-rpppoe_cv_pack_bitfields=${rpppoe_cv_pack_bitfields=normal}
diff --git a/meta-networking/site/endian-little b/meta-networking/site/endian-little
deleted file mode 100644
index 0bcd966ea8..0000000000
--- a/meta-networking/site/endian-little
+++ /dev/null
@@ -1,2 +0,0 @@
-# rp-pppoe
-rpppoe_cv_pack_bitfields=${rpppoe_cv_pack_bitfields=rev}
diff --git a/meta-oe/README b/meta-oe/README
deleted file mode 100644
index db5697dd90..0000000000
--- a/meta-oe/README
+++ /dev/null
@@ -1,22 +0,0 @@
-meta-oe
-=======
-
-This layer depends on:
-
-URI: git://github.com/openembedded/openembedded-core.git
-branch: master
-revision: HEAD
-
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject'
-
-When sending single patches, please use something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-oe][PATCH'
-
-You are encouraged to fork the mirror on GitHub https://github.com/openembedded/openembedded-core
-to share your patches, this is preferred for patch sets consisting of more than one patch.
-
-Other services like gitorious, repo.or.cz or self-hosted setups are of course accepted as well,
-'git fetch <remote>' works the same on all of them. We recommend GitHub because it is free, easy
-to use, has been proven to be reliable and has a really good web GUI.
-
-Main layer maintainer: Armin Kuster <akuster808@gmail.com>
diff --git a/meta-oe/README.md b/meta-oe/README.md
new file mode 100644
index 0000000000..676a2c8925
--- /dev/null
+++ b/meta-oe/README.md
@@ -0,0 +1,31 @@
+meta-oe
+=======
+
+This layer depends on:
+
+URI: git://github.com/openembedded/openembedded-core.git
+branch: master
+
+luajit recipe requires host compiler to be able to generate 32bit code when target is 32bit
+e.g. arm, so ensure that $CC -m32 is functional on build host, if building this recipe, needed
+packages to fullfit this might have different names on different host distributions
+e.g. on archlinux based distributions install prerequisites like below
+
+pacman -S lib32-gcc-libs lib32-glibc
+
+Ubuntu
+sudo apt-get install gcc-multilib linux-libc-dev:i386
+
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject'
+
+When sending single patches, please use something like:
+'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix="meta-oe][PATCH"'
+
+You are encouraged to fork the mirror on GitHub https://github.com/openembedded/meta-openembedded
+to share your patches, this is preferred for patch sets consisting of more than one patch.
+
+Other services like GitLab, repo.or.cz or self-hosted setups are of course accepted as well,
+'git fetch <remote>' works the same on all of them. We recommend GitHub because it is free, easy
+to use, has been proven to be reliable and has a really good web GUI.
+
+layer maintainer: Khem Raj <raj.khem@gmail.com>
diff --git a/meta-oe/classes/breakpad.bbclass b/meta-oe/classes/breakpad.bbclass
index 36f11ff480..96b8f42e97 100644
--- a/meta-oe/classes/breakpad.bbclass
+++ b/meta-oe/classes/breakpad.bbclass
@@ -25,9 +25,12 @@ PACKAGE_PREPROCESS_FUNCS += "breakpad_package_preprocess"
breakpad_package_preprocess () {
mkdir -p ${PKGD}/usr/share/breakpad-syms
find ${D} -name ${BREAKPAD_BIN} -exec sh -c "dump_syms {} > ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}.sym" \;
+ HASH=$(head -n1 ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}.sym | rev | cut -d ' ' -f2 | rev)
+ mkdir -p ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}/${HASH}
+ mv ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}.sym ${PKGD}/usr/share/breakpad-syms/${BREAKPAD_BIN}/${HASH}
}
PACKAGES =+ "${PN}-breakpad"
-FILES_${PN}-breakpad = "/usr/share/breakpad-syms"
+FILES:${PN}-breakpad = "/usr/share/breakpad-syms"
diff --git a/meta-oe/classes/dos2unix.bbclass b/meta-oe/classes/dos2unix.bbclass
deleted file mode 100644
index 1bad998dde..0000000000
--- a/meta-oe/classes/dos2unix.bbclass
+++ /dev/null
@@ -1,14 +0,0 @@
-# Class for use to convert all CRLF line terminators to LF
-# provided that some projects are being developed/maintained
-# on Windows so they have different line terminators(CRLF) vs
-# on Linux(LF), which can cause annoying patching errors during
-# git push/checkout processes.
-
-do_convert_crlf_to_lf[depends] += "dos2unix-native:do_populate_sysroot"
-
-# Convert CRLF line terminators to LF
-do_convert_crlf_to_lf () {
- find ${S} -type f -exec dos2unix {} \;
-}
-
-addtask convert_crlf_to_lf after do_unpack before do_patch
diff --git a/meta-oe/classes/gitpkgv.bbclass b/meta-oe/classes/gitpkgv.bbclass
index 2d9680a35c..cb2cea26be 100644
--- a/meta-oe/classes/gitpkgv.bbclass
+++ b/meta-oe/classes/gitpkgv.bbclass
@@ -7,8 +7,8 @@
# NN equals the total number of revs up to SRCREV
# GITHASH is SRCREV's (full) hash
#
-# - GITPKGVTAG which is the output of 'git describe' allowing for
-# automatic versioning
+# - GITPKGVTAG which is the output of 'git describe --tags --exact-match'
+# allowing for automatic versioning
#
# gitpkgv.bbclass assumes the git repository has been cloned, and
# contains SRCREV. So ${GITPKGV} and ${GITPKGVTAG} should never be
@@ -40,17 +40,23 @@
GITPKGV = "${@get_git_pkgv(d, False)}"
GITPKGVTAG = "${@get_git_pkgv(d, True)}"
-def gitpkgv_drop_tag_prefix(version):
+# This regexp is used to drop unwanted parts of the found tags. Any matching
+# groups will be concatenated to yield the final version.
+GITPKGV_TAG_REGEXP ??= "v(\d.*)"
+
+def gitpkgv_drop_tag_prefix(d, version):
import re
- if re.match("v\d", version):
- return version[1:]
+
+ m = re.match(d.getVar('GITPKGV_TAG_REGEXP'), version)
+ if m:
+ return ''.join(group for group in m.groups() if group)
else:
return 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)
@@ -87,10 +93,8 @@ def get_git_pkgv(d, use_tags):
if not os.path.exists(rev_file) or os.path.getsize(rev_file)==0:
commits = bb.fetch2.runfetchcmd(
- "cd %(repodir)s && "
- "git rev-list %(rev)s -- 2> /dev/null "
- "| wc -l" % vars,
- d, quiet=True).strip().lstrip('0')
+ "git --git-dir=%(repodir)s rev-list %(rev)s -- 2>/dev/null | wc -l"
+ % vars, d, quiet=True).strip().lstrip('0')
if commits != "":
oe.path.remove(rev_file, recurse=False)
@@ -105,10 +109,9 @@ def get_git_pkgv(d, use_tags):
if use_tags:
try:
output = bb.fetch2.runfetchcmd(
- "cd %(repodir)s && "
- "git describe %(rev)s 2>/dev/null" % vars,
- d, quiet=True).strip()
- ver = gitpkgv_drop_tag_prefix(output)
+ "git --git-dir=%(repodir)s describe %(rev)s --tags --exact-match 2>/dev/null"
+ % vars, d, quiet=True).strip()
+ ver = gitpkgv_drop_tag_prefix(d, output)
except Exception:
ver = "0.0-%s-g%s" % (commits, vars['rev'][:7])
else:
diff --git a/meta-oe/classes/gitver.bbclass b/meta-oe/classes/gitver.bbclass
index 07f44c34b4..cab850c7ac 100644
--- a/meta-oe/classes/gitver.bbclass
+++ b/meta-oe/classes/gitver.bbclass
@@ -48,7 +48,7 @@ def get_git_hash(d):
srcdir = d.getVar("EXTERNALSRC") or d.getVar("S")
gitdir = os.path.abspath(os.path.join(srcdir, ".git"))
try:
- rev = gitrev_run("git rev-list HEAD -1")
+ rev = gitrev_run("git rev-list HEAD -1", gitdir)
return rev[:7]
except Exception as exc:
bb.fatal(str(exc))
diff --git a/meta-oe/classes/gpe.bbclass b/meta-oe/classes/gpe.bbclass
index 9fc136590a..a9b1cd5a90 100644
--- a/meta-oe/classes/gpe.bbclass
+++ b/meta-oe/classes/gpe.bbclass
@@ -1,7 +1,7 @@
-DEPENDS_prepend = "virtual/libintl intltool-native "
+DEPENDS:prepend = "virtual/libintl intltool-native "
GPE_TARBALL_SUFFIX ?= "gz"
SRC_URI = "${GPE_MIRROR}/${BP}.tar.${GPE_TARBALL_SUFFIX}"
-FILES_${PN} += "${datadir}/gpe ${datadir}/application-registry"
+FILES:${PN} += "${datadir}/gpe ${datadir}/application-registry"
SECTION ?= "gpe"
inherit gettext
diff --git a/meta-oe/classes/image_types_sparse.bbclass b/meta-oe/classes/image_types_sparse.bbclass
new file mode 100644
index 0000000000..69e24cbb79
--- /dev/null
+++ b/meta-oe/classes/image_types_sparse.bbclass
@@ -0,0 +1,16 @@
+inherit image_types
+
+# This sets the granularity of the sparse image conversion. Chunk sizes will be
+# specified in units of this value. Setting this value smaller than the
+# underlying image's block size will not result in any further space saving.
+# However, there is no loss in correctness if this value is larger or smaller
+# than optimal. This value should be a power of two.
+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_DEPENDS_sparse = "android-tools-native"
diff --git a/meta-oe/classes/itstool.bbclass b/meta-oe/classes/itstool.bbclass
new file mode 100644
index 0000000000..962461f205
--- /dev/null
+++ b/meta-oe/classes/itstool.bbclass
@@ -0,0 +1,5 @@
+# helper class to prepare correct environment for native itstool
+
+inherit python3native
+
+DEPENDS:append = " itstool-native"
diff --git a/meta-oe/classes/scancode.bbclass b/meta-oe/classes/scancode.bbclass
index 701660f578..e0f0dbca40 100644
--- a/meta-oe/classes/scancode.bbclass
+++ b/meta-oe/classes/scancode.bbclass
@@ -3,18 +3,18 @@
# For more informaiton https://github.com/nexB/scancode-toolkit
SCANCODE_FORMAT ?= "html-app"
-EXT = "${@'html' if d.getVar('SCANCODE_FORMAT', True) == 'html-app' else 'json'}"
+EXT = "${@'html' if d.getVar('SCANCODE_FORMAT') == 'html-app' else 'json'}"
SCANCODE_TOOLKIT = "${@get_scancode_toolkit(d)}"
SCANCODE_TAG = "v2.2.1"
SCANCODE_GIT_LOCATION ?= "https://github.com/nexB/scancode-toolkit.git"
SCANCODE_SRC_LOCATION ?= "${DL_DIR}/scancode"
def get_scancode_toolkit(d):
- lf = bb.utils.lockfile(d.getVar('SCANCODE_SRC_LOCATION', True) + ".lock")
- if (not os.path.exists(d.getVar('SCANCODE_SRC_LOCATION', True))):
- os.system("git clone %s %s -b %s" % (d.getVar('SCANCODE_GIT_LOCATION', True), d.getVar('SCANCODE_SRC_LOCATION', True), d.getVar('SCANCODE_TAG', True)))
+ lf = bb.utils.lockfile(d.getVar('SCANCODE_SRC_LOCATION') + ".lock")
+ if (not os.path.exists(d.getVar('SCANCODE_SRC_LOCATION'))):
+ os.system("git clone %s %s -b %s" % (d.getVar('SCANCODE_GIT_LOCATION'), d.getVar('SCANCODE_SRC_LOCATION'), d.getVar('SCANCODE_TAG')))
bb.utils.unlockfile(lf)
- return (d.getVar('SCANCODE_SRC_LOCATION', True))
+ return (d.getVar('SCANCODE_SRC_LOCATION'))
do_scancode() {
mkdir -p ${DEPLOY_DIR_IMAGE}/scancode
diff --git a/meta-oe/classes/signing.bbclass b/meta-oe/classes/signing.bbclass
new file mode 100644
index 0000000000..5c74a319e4
--- /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 a HSM (Hardware Security Module). While files are easy to
+# use, it's hard to verify that no copies of the private 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> <pem>
+#
+# Import a public key from DER file to a role. To be used with SoftHSM.
+signing_import_pubkey_from_pem() {
+ 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 rsa \
+ -passin "file:${IMPORT_PASS_FILE}" \
+ -in "${pem}" -inform pem -pubout -outform der
+ else
+ openssl rsa \
+ -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> <pem>
+#
+# 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 rsa \
+ -passin "file:${IMPORT_PASS_FILE}" \
+ -in "${pem}" -inform pem -outform der
+ else
+ openssl rsa \
+ -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() {
+ 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)
+}
+
+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"
diff --git a/meta-oe/classes/socorro-syms.bbclass b/meta-oe/classes/socorro-syms.bbclass
index cc435aba1e..b9a5ffc881 100644
--- a/meta-oe/classes/socorro-syms.bbclass
+++ b/meta-oe/classes/socorro-syms.bbclass
@@ -16,7 +16,7 @@ inherit breakpad
PACKAGE_PREPROCESS_FUNCS += "symbol_file_preprocess"
PACKAGES =+ "${PN}-socorro-syms"
-FILES_${PN}-socorro-syms = "/usr/share/socorro-syms"
+FILES:${PN}-socorro-syms = "/usr/share/socorro-syms"
python symbol_file_preprocess() {
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..77dace08a0
--- /dev/null
+++ b/meta-oe/conf/include/ptest-packagelists-meta-oe.inc
@@ -0,0 +1,66 @@
+#
+# 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 \
+ fmt \
+ function2 \
+ fwupd \
+ gcab \
+ jq \
+ leveldb \
+ libcereal \
+ libee \
+ libio-pty-perl \
+ libmanette \
+ libssh \
+ libtinyxml2 \
+ libxml++-5.0 \
+ libxmlb \
+ libyang \
+ lmdb \
+ minicoredumper \
+ neon \
+ nodejs \
+ onig \
+ poco \
+ protobuf \
+ sdbus-c++ \
+ uthash \
+ xmlsec1 \
+ zeromq \
+"
+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"
+PTESTS_FAST_META_OE:remove:riscv32 = "nodejs"
+
+PTESTS_SLOW_META_OE = "\
+ fftw \
+ libusb-compat \
+ rsyslog \
+"
+
+PTESTS_PROBLEMS_META_OE ="\
+ jemalloc \
+ kernel-selftest \
+ keyutils \
+ libdbi-perl \
+ libgpiod \
+ libjcat \
+ libteam \
+ libxml++ \
+ oprofile \
+ ostree \
+ psqlodbc \
+ pv \
+"
diff --git a/meta-oe/conf/layer.conf b/meta-oe/conf/layer.conf
index 1a43575304..923b722b3c 100644
--- a/meta-oe/conf/layer.conf
+++ b/meta-oe/conf/layer.conf
@@ -5,7 +5,7 @@
# Therefore if you want a given layer to be considered high priority
# for the .inc and .conf etc. then consider it adding at the beginning
# of BBPATH. For bblayers bitbake will use BBFILES_PRIORITY to resolve
-# the recipe contention so the order of directories in BBFILES does
+# the recipe contention so the order of directories in BBFILES does
# not matter.
# We have a conf and classes directory, append to BBPATH
@@ -21,7 +21,22 @@ BBFILE_PATTERN_openembedded-layer := "^${LAYERDIR}/"
# choosing carefully how this layer interacts with all of the
# other layers.
-BBFILE_PRIORITY_openembedded-layer = "6"
+BBFILE_PRIORITY_openembedded-layer = "5"
+
+# only activates content when identified layers are present,
+# to ensure yocto compatibility check pass
+BBFILES_DYNAMIC += " \
+ meta-python:${LAYERDIR}/dynamic-layers/meta-python/recipes-*/*/*.bb \
+ meta-python:${LAYERDIR}/dynamic-layers/meta-python/recipes-*/*/*.bbappend \
+ networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/recipes-*/*/*.bb \
+ networking-layer:${LAYERDIR}/dynamic-layers/networking-layer/recipes-*/*/*.bbappend \
+ gnome-layer:${LAYERDIR}/dynamic-layers/gnome-layer/recipes-*/*/*.bb \
+ 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
# cause compatibility issues with other layers
@@ -29,12 +44,18 @@ LAYERVERSION_openembedded-layer = "1"
LAYERDEPENDS_openembedded-layer = "core"
-LAYERSERIES_COMPAT_openembedded-layer = "sumo"
+LAYERSERIES_COMPAT_openembedded-layer = "mickledore"
LICENSE_PATH += "${LAYERDIR}/licenses"
+PREFERRED_RPROVIDER_libdevmapper = "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 += " \
- mplayer-common \
fbset-modes \
gpsd-machine-conf \
distro-feed-configs \
@@ -47,8 +68,13 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
usb-modeswitch-data->usb-modeswitch \
lmsensors->lmsensors-config \
phoronix-test-suite->bash \
- phoronix-test-suite->python \
+ phoronix-test-suite->python3 \
phoronix-test-suite->php \
+ phoronix-test-suite->lsb-release \
+ phoronix-test-suite->util-linux \
+ phoronix-test-suite->busybox \
+ phoronix-test-suite->shared-mime-info \
+ phoronix-test-suite->desktop-file-utils \
"
# ttf.inc inherits fontcache which adds fontconfig-utils to RDEPENDS
@@ -61,13 +87,17 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
ttf-gentium->fontconfig \
ttf-hunkyfonts->fontconfig \
ttf-inconsolata->fontconfig \
+ ttf-ipa->fontconfig \
ttf-liberation->fontconfig \
ttf-liberation-sans-narrow->fontconfig \
ttf-lklug->fontconfig \
ttf-lohit->fontconfig \
+ ttf-noto-emoji->fontconfig \
ttf-pt-sans->fontconfig \
+ ttf-roboto->fontconfig \
ttf-mplus->fontconfig \
ttf-sazanami->fontconfig \
+ ttf-takao->fontconfig \
ttf-tlwg->fontconfig \
ttf-ubuntu-font-family->fontconfig \
ttf-vlgothic->fontconfig \
@@ -76,4 +106,9 @@ SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
source-han-sans-jp-fonts->fontconfig \
source-han-sans-kr-fonts->fontconfig \
source-han-sans-tw-fonts->fontconfig \
+ source-code-pro-fonts->fontconfig \
"
+
+DEFAULT_TEST_SUITES:pn-meta-oe-ptest-image = " ${PTESTTESTSUITE}"
+
+NON_MULTILIB_RECIPES:append = " crash pahole"
diff --git a/meta-oe/dynamic-layers/gnome-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend b/meta-oe/dynamic-layers/gnome-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
new file mode 100644
index 0000000000..f15b36184d
--- /dev/null
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -0,0 +1,3 @@
+RDEPENDS:packagegroup-meta-oe-graphics +="\
+ openbox-xdgmenu \
+"
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
new file mode 100644
index 0000000000..8ab5386dc1
--- /dev/null
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/7_6.diff
@@ -0,0 +1,13 @@
+=== 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
+@@ -235,7 +235,7 @@
+ }
+
+ g_printf("<item label=\"%s\">\n", g_strjoinv("&amp;", g_strsplit(name,"&",0))),
+- g_printf("<action name=\"Execute\"><execute>%s</execute></action>\n", exec),
++ g_printf("<action name=\"Execute\"><command>%s</command></action>\n", exec),
+ g_printf("</item>\n");
+
+ g_free(name);
+
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
new file mode 100644
index 0000000000..03b357263f
--- /dev/null
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/fix-menu-generation.patch
@@ -0,0 +1,27 @@
+Index: openbox-xdgmenu-0.3/openbox-xdgmenu.c
+===================================================================
+--- openbox-xdgmenu-0.3.orig/openbox-xdgmenu.c
++++ openbox-xdgmenu-0.3/openbox-xdgmenu.c
+@@ -197,7 +197,7 @@ void process_entry(GMenuTreeEntry *entry
+ {
+ GDesktopAppInfo *appinfo = gmenu_tree_entry_get_app_info (entry);
+ char *name = g_strdup (g_app_info_get_name(G_APP_INFO(appinfo)));
+- char *exec = g_strdup (g_app_info_get_executable(G_APP_INFO(appinfo)));
++ char *exec = g_strdup (g_app_info_get_commandline(G_APP_INFO(appinfo)));
+ int i;
+
+ for (i = 0; i < strlen(exec) - 1; i++) {
+@@ -217,8 +217,11 @@ void process_entry(GMenuTreeEntry *entry
+ }
+ }
+
+- g_printf("<item label=\"%s\">\n", g_strjoinv("&amp;", g_strsplit(name,"&",0))),
+- g_printf("<action name=\"Execute\"><command>%s</command></action>\n", exec),
++ g_printf("<item label=\"%s\">\n", g_strjoinv("&amp;", g_strsplit(name,"&",0)));
++ g_printf("<action name=\"Execute\"><command>%s%s</command></action>\n",
++ g_desktop_app_info_get_boolean(appinfo, G_KEY_FILE_DESKTOP_KEY_TERMINAL) ?
++ "x-terminal-emulator -e " : "",
++ exec);
+ g_printf("</item>\n");
+
+ g_free(name);
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
new file mode 100644
index 0000000000..3fcc319164
--- /dev/null
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu/port-gnome-menus3.patch
@@ -0,0 +1,184 @@
+Index: openbox-xdgmenu-0.3/openbox-xdgmenu.c
+===================================================================
+--- openbox-xdgmenu-0.3.orig/openbox-xdgmenu.c
++++ openbox-xdgmenu-0.3/openbox-xdgmenu.c
+@@ -32,7 +32,7 @@
+ #include <string.h>
+ #include <glib.h>
+ #include <glib/gprintf.h>
+-#include <gnome-menus/gmenu-tree.h>
++#include <gnome-menus-3.0/gmenu-tree.h>
+
+ /*=============================================================================
+ * Declarations
+@@ -42,7 +42,6 @@ static void process_directory(GMenuTreeD
+ static void process_entry(GMenuTreeEntry *entry);
+ static void process_separator(GMenuTreeSeparator *entry);
+
+-gboolean option_show_amount_of_entries = 0;
+ gboolean option_do_not_use_categories = 0;
+
+ /*=============================================================================
+@@ -61,11 +60,6 @@ int main (int argc, char **argv)
+ g_free (xdgfile);
+ return 0;
+ }
+- else if ((strcmp (argv[i], "--show-amount") == 0) ||
+- (strcmp (argv[i], "-a") == 0))
+- {
+- option_show_amount_of_entries = 1;
+- }
+ else if ((strcmp (argv[i], "--plain") == 0) ||
+ (strcmp (argv[i], "-p") == 0))
+ {
+@@ -93,16 +87,15 @@ int main (int argc, char **argv)
+ return 1;
+ }
+
+- FILE * file;
+- if (!(file = fopen(xdgfile, "r")))
++ GMenuTree *menuTree = gmenu_tree_new (xdgfile, GMENU_TREE_FLAGS_NONE );
++
++ GError *error = NULL;
++ if (!gmenu_tree_load_sync(menuTree, &error))
+ {
+- g_printf ("Could not read file \"%s\".\n", xdgfile);
+- g_free (xdgfile);
+- return 2;
++ g_printerr ("Failed to load tree: %s\n", error->message);
++ g_clear_error (&error);
++ return 3;
+ }
+- fclose(file);
+-
+- GMenuTree *menuTree = gmenu_tree_lookup (xdgfile, GMENU_TREE_FLAGS_NONE );
+
+ GMenuTreeDirectory *rootDirectory = gmenu_tree_get_root_directory(menuTree);
+
+@@ -129,11 +122,10 @@ void show_help()
+ g_printf (" openbox-xdgmenu [options] <Xdg menu file>\n");
+ g_printf ("\n");
+ g_printf ("Options:\n");
+- g_printf (" -a: Show the amount of items in each category next to its name.\n");
+ g_printf (" -p: Do not use categories.\n");
+ g_printf ("\n");
+ g_printf ("For example:\n");
+- g_printf (" openbox-xdgmenu \"/etc/xdg/menus/applications.menu\"\n\n");
++ g_printf (" openbox-xdgmenu \"gnome-applications.menu\"\n\n");
+ }
+
+ /*=============================================================================
+@@ -141,72 +133,61 @@ void show_help()
+ */
+ void process_directory(GMenuTreeDirectory *directory, gboolean isRoot)
+ {
+- int hasSeparator = 0;
++ GMenuTreeSeparator *separator = NULL;
+ int hasMenu = 0;
+ GMenuTreeItemType entryType;
+- GSList *entryList = gmenu_tree_directory_get_contents (directory);
+- GSList *l;
+-
+- if (option_do_not_use_categories == 00 && isRoot == 0 &&
+- g_slist_length(entryList) > 0)
++ GMenuTreeIter *iter = gmenu_tree_directory_iter (directory);
++ GMenuTreeItemType next_type;
++
++ while ((next_type = gmenu_tree_iter_next (iter)) != GMENU_TREE_ITEM_INVALID)
+ {
+- hasMenu = 1;
+-
+- if (option_show_amount_of_entries == 1)
++ if (option_do_not_use_categories == 00 && isRoot == 0 && hasMenu == 0)
+ {
++ hasMenu = 1;
++
+ g_printf(
+- "<menu id=\"xdg-menu-%s\" label=\"%s (%d)\">\n",
+- g_strjoinv("&amp;", g_strsplit(gmenu_tree_directory_get_name(directory),"&",0)),
+- g_strjoinv("&amp;", g_strsplit(gmenu_tree_directory_get_name(directory),"&",0)),
+- g_slist_length(entryList));
++ "<menu id=\"xdg-menu-%s\" label=\"%s\">\n",
++ g_strjoinv("&amp;", g_strsplit(gmenu_tree_directory_get_name(directory),"&",0)),
++ g_strjoinv("&amp;", g_strsplit(gmenu_tree_directory_get_name(directory),"&",0)));
+ }
+- else
+- {
+- g_printf(
+- "<menu id=\"xdg-menu-%s\" label=\"%s\">\n",
+- g_strjoinv("&amp;", g_strsplit(gmenu_tree_directory_get_name(directory),"&",0)),
+- g_strjoinv("&amp;", g_strsplit(gmenu_tree_directory_get_name(directory),"&",0)));
+- }
+- }
+
+- for (l = entryList; l; l = l->next)
+- {
+- GMenuTreeItem *item = l->data;
+-
+- entryType = gmenu_tree_item_get_type (GMENU_TREE_ITEM(item));
+-
+- switch (entryType)
++ switch (next_type)
+ {
++ case GMENU_TREE_ITEM_INVALID:
++ break;
+ case GMENU_TREE_ITEM_DIRECTORY:
+- if (hasSeparator)
++ if (separator != NULL)
+ {
+- process_separator(GMENU_TREE_SEPARATOR(item));
+- hasSeparator = 0;
++ process_separator(separator);
++ gmenu_tree_item_unref (separator);
++ separator = NULL;
+ }
+- process_directory(GMENU_TREE_DIRECTORY(item), 0);
++ process_directory(gmenu_tree_iter_get_directory(iter), 0);
+ break;
+ case GMENU_TREE_ITEM_ENTRY:
+- if (hasSeparator)
++ if (separator != NULL)
+ {
+- process_separator(GMENU_TREE_SEPARATOR(item));
+- hasSeparator = 0;
++ process_separator(separator);
++ gmenu_tree_item_unref (separator);
++ separator = NULL;
+ }
+- process_entry(GMENU_TREE_ENTRY(item));
++ process_entry(gmenu_tree_iter_get_entry(iter));
+ break;
+ case GMENU_TREE_ITEM_SEPARATOR:
+- hasSeparator = 1;
++ separator = gmenu_tree_iter_get_separator(iter);
+ break;
+ }
+-
+- gmenu_tree_item_unref (item);
+ }
+
+ if (hasMenu == 1)
+ {
+ g_printf("</menu>\n");
+ }
++
++ if (separator != NULL)
++ gmenu_tree_item_unref (separator);
+
+- g_slist_free (entryList);
++ gmenu_tree_iter_unref (iter);
+ }
+
+ /*=============================================================================
+@@ -214,8 +195,9 @@ void process_directory(GMenuTreeDirector
+ */
+ void process_entry(GMenuTreeEntry *entry)
+ {
+- char *name = g_strdup (gmenu_tree_entry_get_name(entry));
+- char *exec = g_strdup (gmenu_tree_entry_get_exec(entry));
++ GDesktopAppInfo *appinfo = gmenu_tree_entry_get_app_info (entry);
++ char *name = g_strdup (g_app_info_get_name(G_APP_INFO(appinfo)));
++ char *exec = g_strdup (g_app_info_get_executable(G_APP_INFO(appinfo)));
+ int i;
+
+ for (i = 0; i < strlen(exec) - 1; i++) {
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
new file mode 100644
index 0000000000..90d6880905
--- /dev/null
+++ b/meta-oe/dynamic-layers/gnome-layer/recipes-graphics/openbox/openbox-xdgmenu_0.3.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Openbox configuration tool"
+AUTHOR = "Siegfried Gevatter"
+HOMEPAGE = "https://launchpad.net/openbox-xdgmenu/"
+SECTION = "x11/wm"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
+DEPENDS = " \
+ gnome-menus \
+ glib-2.0 \
+"
+PV = "0.3"
+
+SRC_URI = " \
+ http://launchpad.net/openbox-xdgmenu/trunk/0.3/+download/openbox-xdgmenu-0.3.tar.gz \
+ file://7_6.diff;striplevel=0 \
+ file://port-gnome-menus3.patch \
+ file://fix-menu-generation.patch \
+"
+SRC_URI[sha256sum] = "824e099928aab2fb628f0fa4870ef7bba10b95581e47c2d8fa216709a0f399b3"
+
+inherit pkgconfig features_check
+# depends on openbox, which is X11-only
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OEMAKE = " \
+ CC='${CC}' \
+ CFLAGS='${CPPFLAGS} ${CFLAGS} `pkg-config --cflags glib-2.0 libgnome-menu-3.0` -DGMENU_I_KNOW_THIS_IS_UNSTABLE' \
+ LDFLAGS='${LDFLAGS} `pkg-config --libs glib-2.0 libgnome-menu-3.0`' \
+"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 openbox-xdgmenu ${D}${bindir}
+}
+
+RDEPENDS:${PN} += "virtual-x-terminal-emulator"
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
new file mode 100644
index 0000000000..8ccdc27a8e
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-bsp/rwmem/rwmem_1.2.bb
@@ -0,0 +1,35 @@
+SUMMARY = "A small tool to read/write memory"
+DESCRIPTION = "rwmem is a small tool for reading and writing device registers. \
+rwmem supports two modes: mmap mode and i2c mode. \
+\
+In mmap mode rwmem accesses a file by memory mapping it. \
+Using /dev/mem as the memory mapped file makes rwmem access memory and \
+can thus be used to access devices which have memory mapped registers. \
+\
+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 += "fmt libinih"
+
+PV .= "+git${SRCPV}"
+
+SRCREV = "8416326777b2aada0706539b8f9f6acefa476b16"
+
+SRC_URI = "git://github.com/tomba/rwmem.git;protocol=https;name=rwmem;branch=master \
+ file://0001-include-missing-cstdint.patch"
+
+S = "${WORKDIR}/git"
+
+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:append() {
+ install -D -m 0644 ${B}/librwmem/librwmem.a ${D}${libdir}/librwmem.a
+}
+
+FILES:${PN} += "${libdir}/python3.11/site-packages/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
new file mode 100644
index 0000000000..0e38f7d8ec
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -0,0 +1,40 @@
+From 50a48a7bd8d65a165ce2aac4ba0c1e02bded04aa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Nov 2019 12:21:31 -0800
+Subject: [PATCH] Fix build on 32bit arches with 64bit time_t
+
+time element is deprecated on new input_event structure in kernel's
+input.h [1]
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/devinput.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/plugins/devinput.c b/plugins/devinput.c
+index d4d733a..feb4a61 100644
+--- a/plugins/devinput.c
++++ b/plugins/devinput.c
+@@ -34,6 +34,11 @@
+ #include <linux/uinput.h>
+ #include <sys/stat.h>
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ #ifndef EV_SYN
+ /* previous name */
+ #define EV_SYN EV_RST
+@@ -459,7 +464,7 @@ char* devinput_rec(struct ir_remote* remotes)
+ return 0;
+ }
+
+- log_trace("time %ld.%06ld type %d code %d value %d", event.time.tv_sec, event.time.tv_usec, event.type,
++ log_trace("time %ld.%06ld type %d code %d value %d", event.input_event_sec, event.input_event_usec, event.type,
+ event.code, event.value);
+
+ value = (unsigned)event.value;
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..089ed23c73
--- /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,55 @@
+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>
+---
+ 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..e58a93b6f6
--- /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: Inappropriates [ 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/0001-mplay-Fix-build-with-musl.patch b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-mplay-Fix-build-with-musl.patch
new file mode 100644
index 0000000000..48cf7a355c
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/0001-mplay-Fix-build-with-musl.patch
@@ -0,0 +1,44 @@
+From e9e9027d7a324e1ce5e0cb06d4eb51847262a09d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 28 Aug 2022 12:26:52 -0700
+Subject: [PATCH] mplay: Fix build with musl
+
+pthread_t is an opaque type, therefore typecast it to avoid warnings on
+musl
+
+Fixes
+mplay.c:200:12: error: incompatible integer to pointer conversion initializing 'pthread_t' (aka 'struct __pthread *') with an expression of type 'int' [-Wint-conversion]
+| .tid = -1
+| ^~
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lirc/git/merge-requests/47/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/mplay.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/plugins/mplay.c b/plugins/mplay.c
+index d6d9619..5b9eb4b 100644
+--- a/plugins/mplay.c
++++ b/plugins/mplay.c
+@@ -197,7 +197,7 @@ static struct {
+ .latest_button = MPLAY_CODE_ERROR,
+ .fd = -1,
+ .pipefd = { -1, -1 },
+- .tid = -1
++ .tid = (pthread_t)-1
+ };
+
+ /**
+@@ -788,7 +788,7 @@ int mplayfamily_deinit(void)
+ return 0;
+ }
+ pthread_join(mplayfamily_local_data.tid, NULL);
+- mplayfamily_local_data.tid = -1;
++ mplayfamily_local_data.tid = (pthread_t)-1;
+ }
+ if (mplayfamily_local_data.pipefd[0] != -1) {
+ close(mplayfamily_local_data.pipefd[0]);
+--
+2.37.2
+
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
new file mode 100644
index 0000000000..41353dbbdc
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/fix_build_errors.patch
@@ -0,0 +1,30 @@
+diff --git a/configure.ac b/configure.ac
+index 58347d8..8c7fca2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -77,15 +77,10 @@ AC_TYPE_UINT64_T
+
+ dnl AC_TYPE_GETGROUPS seems broken on recent MacOS, so:
+ AC_MSG_CHECKING([Figure out if getgrouplist() needs gid_t or int])
+-oldcflags="$CFLAGS"
+-export CFLAGS=-Werror
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <unistd.h>
+-#include <grp.h>
+- ]], [[
+-gid_t groups[32]; int ngroups; const char* user = "root";
+-getgrouplist(user, 1, groups, &ngroups);
+- ]])],[
++int getgroups(int gidsetsize, gid_t grouplist[]);
++ ]], [[ ]])],[
+ AC_MSG_RESULT(gid_t)
+ AC_DEFINE(GETGROUPS_T,[gid_t])
+ ],[
+@@ -93,7 +88,6 @@ getgrouplist(user, 1, groups, &ngroups);
+ AC_DEFINE(GETGROUPS_T,[int])
+ ]
+ )
+-export CFLAGS="$oldcflags"
+
+ dnl Checks for library functions.
+ AC_CHECK_FUNCS(gethostname gettimeofday mkfifo select socket strdup \
diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc.tmpfiles
index 0b80e2e479..0b80e2e479 100644
--- a/meta-oe/recipes-connectivity/lirc/lirc/lirc.tmpfiles
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc.tmpfiles
diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc_options.conf
index d8ddedd8fa..d8ddedd8fa 100644
--- a/meta-oe/recipes-connectivity/lirc/lirc/lirc_options.conf
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lirc_options.conf
diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.conf
index 29b03c72a0..29b03c72a0 100644
--- a/meta-oe/recipes-connectivity/lirc/lirc/lircd.conf
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.conf
diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircd.init b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.init
index 8b124af6f2..8b124af6f2 100644
--- a/meta-oe/recipes-connectivity/lirc/lirc/lircd.init
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.init
diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircd.service b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service
index c8661368bb..c8661368bb 100644
--- a/meta-oe/recipes-connectivity/lirc/lirc/lircd.service
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircd.service
diff --git a/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircexec.init
index 3a8c1a306e..3a8c1a306e 100644
--- a/meta-oe/recipes-connectivity/lirc/lirc/lircexec.init
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/lirc/lirc/lircexec.init
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..3d474305d7
--- /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 ${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/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
new file mode 100644
index 0000000000..b8c48d5403
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-Makefile-do-not-use-Werror.patch
@@ -0,0 +1,26 @@
+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 97973ce..78273ff 100644
+--- a/Makefile
++++ b/Makefile
+@@ -8,7 +8,6 @@ BUILDFLAGS = \
+ -DSBINDIR=\"$(SBINDIR)\" \
+ -I${CURDIR}/include \
+ -Wall \
+- -Werror \
+ $(NULL)
+
+ TESTFLAGS = \
+--
+2.34.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
new file mode 100644
index 0000000000..8779c251a5
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan/0001-don-t-fail-if-GLOB_BRACE-is-not-defined.patch
@@ -0,0 +1,30 @@
+From e0df1f07d1707d5daf0358cc60b30f06121f7e60 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
+
+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
+--- a/src/util.c
++++ b/src/util.c
+@@ -32,6 +32,12 @@
+ #include "names.h"
+ #include "yaml-helpers.h"
+
++/* Don't fail if the standard library
++ * doesn't provide brace expansion */
++#ifndef GLOB_BRACE
++#define GLOB_BRACE 0
++#endif
++
+ NETPLAN_ABI GHashTable*
+ wifi_frequency_24;
+
+--
+2.25.1
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.106.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.106.bb
new file mode 100644
index 0000000000..8c1eaa5503
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/netplan/netplan_0.106.bb
@@ -0,0 +1,67 @@
+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 = "15ce044d1df27b5057556d84d0d14beef8dd4e4d"
+PV = "0.106"
+
+SRC_URI = "git://github.com/CanonicalLtd/netplan.git;branch=main;protocol=https \
+ file://0001-Makefile-do-not-use-Werror.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 python3-dbus python3-rich"
+
+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/thingsboard-gateway/thingsboard-gateway/bacnet.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/bacnet.json
new file mode 100644
index 0000000000..e36a2165d1
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/bacnet.json
@@ -0,0 +1,58 @@
+{
+ "general": {
+ "objectName": "TB_gateway",
+ "address": "192.168.188.181:1052",
+ "objectIdentifier": 599,
+ "maxApduLengthAccepted": 1024,
+ "segmentationSupported": "segmentedBoth",
+ "vendorIdentifier": 15
+ },
+ "devices": [
+ {
+ "deviceName": "BACnet Device ${objectName}",
+ "deviceType": "default",
+ "address": "192.168.188.181:10520",
+ "pollPeriod": 10000,
+ "attributes": [
+ {
+ "key": "temperature",
+ "type": "string",
+ "objectId": "analogOutput:1",
+ "propertyId": "presentValue"
+ }
+ ],
+ "timeseries": [
+ {
+ "key": "state",
+ "type": "bool",
+ "objectId": "binaryValue:1",
+ "propertyId": "presentValue"
+ }
+ ],
+ "attributeUpdates": [
+ {
+ "key": "brightness",
+ "requestType": "writeProperty",
+ "objectId": "analogOutput:1",
+ "propertyId": "presentValue"
+ }
+ ],
+ "serverSideRpc": [
+ {
+ "method": "set_state",
+ "requestType": "writeProperty",
+ "requestTimeout": 10000,
+ "objectId": "binaryOutput:1",
+ "propertyId": "presentValue"
+ },
+ {
+ "method": "get_state",
+ "requestType": "readProperty",
+ "requestTimeout": 10000,
+ "objectId": "binaryOutput:1",
+ "propertyId": "presentValue"
+ }
+ ]
+ }
+ ]
+ } \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/ble.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/ble.json
new file mode 100755
index 0000000000..2a5da3f41d
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/ble.json
@@ -0,0 +1,53 @@
+{
+ "name": "BLE Connector",
+ "rescanIntervalSeconds": 100,
+ "checkIntervalSeconds": 100,
+ "scanTimeSeconds": 5,
+ "passiveScanMode": true,
+ "devices": [
+ {
+ "name": "Temperature and humidity sensor",
+ "MACAddress": "4C:65:A8:DF:85:C0",
+ "addrType": "public",
+ "telemetry": [
+ {
+ "key": "temperature",
+ "method": "notify",
+ "characteristicUUID": "226CAA55-6476-4566-7562-66734470666D",
+ "byteFrom": 2,
+ "byteTo": 6
+ },
+ {
+ "key": "humidity",
+ "method": "notify",
+ "characteristicUUID": "226CAA55-6476-4566-7562-66734470666D",
+ "byteFrom": 9,
+ "byteTo": 13
+ }
+ ],
+ "attributes": [
+ {
+ "key": "name",
+ "characteristicUUID": "00002A00-0000-1000-8000-00805F9B34FB",
+ "method": "read",
+ "byteFrom": 0,
+ "byteTo": -1
+ }
+ ],
+ "attributeUpdates": [
+ {
+ "attributeOnThingsBoard": "sharedName",
+ "characteristicUUID": "00002A00-0000-1000-8000-00805F9B34FB"
+ }
+ ],
+ "serverSideRpc": [
+ {
+ "methodRPC": "rpcMethod1",
+ "withResponse": true,
+ "characteristicUUID": "00002A00-0000-1000-8000-00805F9B34FB",
+ "methodProcessing": "read"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/can.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/can.json
new file mode 100644
index 0000000000..b5cec0045a
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/can.json
@@ -0,0 +1,89 @@
+{
+ "interface": "socketcan",
+ "channel": "vcan0",
+ "backend": {
+ "fd": true
+ },
+ "reconnectPeriod": 5,
+ "devices": [
+ {
+ "name": "Car",
+ "sendDataOnlyOnChange": false,
+ "enableUnknownRpc": true,
+ "strictEval": false,
+ "attributes": [
+ {
+ "key": "isDriverDoorOpened",
+ "nodeId": 41,
+ "command": "2:2:big:8717",
+ "value": "4:1:int",
+ "expression": "bool(value & 0b00000100)",
+ "polling": {
+ "type": "once",
+ "dataInHex": "AB CD AB CD"
+ }
+ }
+ ],
+ "timeseries": [
+ {
+ "key": "rpm",
+ "nodeId": 1918,
+ "isExtendedId": true,
+ "command": "2:2:big:48059",
+ "value": "4:2:big:int",
+ "expression": "value / 4",
+ "polling": {
+ "type": "always",
+ "period": 5,
+ "dataInHex": "aaaa bbbb aaaa bbbb"
+ }
+ },
+ {
+ "key": "milliage",
+ "nodeId": 1918,
+ "isExtendedId": true,
+ "value": "4:2:little:int",
+ "expression": "value * 10",
+ "polling": {
+ "type": "always",
+ "period": 30,
+ "dataInHex": "aa bb cc dd ee ff aa bb"
+ }
+ }
+ ],
+ "attributeUpdates": [
+ {
+ "attributeOnThingsBoard": "softwareVersion",
+ "nodeId": 64,
+ "isExtendedId": true,
+ "dataLength": 4,
+ "dataExpression": "value + 5",
+ "dataByteorder": "little"
+ }
+ ],
+ "serverSideRpc": [
+ {
+ "method": "sendSameData",
+ "nodeId": 4,
+ "isExtendedId": true,
+ "isFd": true,
+ "bitrateSwitch": true,
+ "dataInHex": "aa bb cc dd ee ff aa bb aa bb cc d ee ff"
+ },
+ {
+ "method": "setLightLevel",
+ "nodeId": 5,
+ "dataLength": 2,
+ "dataByteorder": "little",
+ "dataBefore": "00AA"
+ },
+ {
+ "method": "setSpeed",
+ "nodeId": 16,
+ "dataAfter": "0102",
+ "dataExpression": "userSpeed if maxAllowedSpeed > userSpeed else maxAllowedSpeed"
+ }
+ ]
+ }
+ ]
+ } \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/custom_serial.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/custom_serial.json
new file mode 100755
index 0000000000..0aee5cb765
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/custom_serial.json
@@ -0,0 +1,33 @@
+{
+ "name": "Custom serial connector",
+ "devices": [
+ {
+ "name": "CustomSerialDevice1",
+ "type": "default",
+ "port": "/dev/ttyUSB0",
+ "baudrate": 9600,
+ "converter": "CustomSerialUplinkConverter",
+ "telemetry": [
+ {
+ "type": "byte",
+ "key": "humidity",
+ "untilDelimiter": "\r"
+ }
+ ],
+ "attributes":[
+ {
+ "key": "SerialNumber",
+ "type": "string",
+ "fromByte": 4,
+ "toByte": -1
+ }
+ ],
+ "attributeUpdates": [
+ {
+ "attributeOnThingsBoard": "attr1",
+ "stringToDevice": "value = ${attr1}\n"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/logs.conf b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/logs.conf
new file mode 100755
index 0000000000..d66c2b84a8
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/logs.conf
@@ -0,0 +1,77 @@
+[loggers]
+keys=root, service, connector, converter, tb_connection, storage, extension
+[handlers]
+keys=consoleHandler, serviceHandler, connectorHandler, converterHandler, tb_connectionHandler, storageHandler, extensionHandler
+[formatters]
+keys=LogFormatter
+[logger_root]
+level=ERROR
+handlers=consoleHandler
+[logger_connector]
+level=INFO
+handlers=connectorHandler
+formatter=LogFormatter
+qualname=connector
+[logger_storage]
+level=INFO
+handlers=storageHandler
+formatter=LogFormatter
+qualname=storage
+[logger_tb_connection]
+level=INFO
+handlers=tb_connectionHandler
+formatter=LogFormatter
+qualname=tb_connection
+[logger_service]
+level=INFO
+handlers=serviceHandler
+formatter=LogFormatter
+qualname=service
+[logger_converter]
+level=INFO
+handlers=converterHandler
+formatter=LogFormatter
+qualname=converter
+[logger_extension]
+level=INFO
+handlers=connectorHandler
+formatter=LogFormatter
+qualname=extension
+[handler_consoleHandler]
+class=StreamHandler
+level=INFO
+formatter=LogFormatter
+args=(sys.stdout,)
+[handler_connectorHandler]
+level=INFO
+class=logging.handlers.TimedRotatingFileHandler
+formatter=LogFormatter
+args=("./logs/connector.log", "d", 1, 7,)
+[handler_storageHandler]
+level=INFO
+class=logging.handlers.TimedRotatingFileHandler
+formatter=LogFormatter
+args=("./logs/storage.log", "d", 1, 7,)
+[handler_serviceHandler]
+level=INFO
+class=logging.handlers.TimedRotatingFileHandler
+formatter=LogFormatter
+args=("./logs/service.log", "d", 1, 7,)
+[handler_converterHandler]
+level=INFO
+class=logging.handlers.TimedRotatingFileHandler
+formatter=LogFormatter
+args=("./logs/converter.log", "d", 1, 3,)
+[handler_extensionHandler]
+level=INFO
+class=logging.handlers.TimedRotatingFileHandler
+formatter=LogFormatter
+args=("./logs/extension.log", "d", 1, 3,)
+[handler_tb_connectionHandler]
+level=INFO
+class=logging.handlers.TimedRotatingFileHandler
+formatter=LogFormatter
+args=("./logs/tb_connection.log", "d", 1, 3,)
+[formatter_LogFormatter]
+format="%(asctime)s - %(levelname)s - [%(filename)s] - %(module)s - %(lineno)d - %(message)s"
+datefmt="%Y-%m-%d %H:%M:%S" \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus.json
new file mode 100755
index 0000000000..479d8aa4d0
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus.json
@@ -0,0 +1,169 @@
+{
+ "server": {
+ "type": "tcp",
+ "host": "127.0.0.1",
+ "port": 5020,
+ "timeout": 35,
+ "method": "socket",
+ "byteOrder": "BIG",
+ "devices": [
+ {
+ "unitId": 1,
+ "deviceName": "Temp Sensor",
+ "attributesPollPeriod": 5000,
+ "timeseriesPollPeriod": 5000,
+ "sendDataOnlyOnChange": true,
+ "attributes": [
+ {
+ "tag": "string_read",
+ "type": "string",
+ "functionCode": 4,
+ "objectsCount": 4,
+ "address": 1
+ },
+ {
+ "tag": "bits_read",
+ "type": "bits",
+ "functionCode": 4,
+ "objectsCount": 1,
+ "address": 5
+ },
+ {
+ "tag": "8int_read",
+ "type": "8int",
+ "functionCode": 4,
+ "objectsCount": 1,
+ "address": 6
+ },
+ {
+ "tag": "16int_read",
+ "type": "16int",
+ "functionCode": 4,
+ "objectsCount": 1,
+ "address": 7
+ },
+ {
+ "tag": "32int_read_divider",
+ "type": "32int",
+ "functionCode": 4,
+ "objectsCount": 2,
+ "address": 8,
+ "divider": 10
+ },
+ {
+ "tag": "8int_read_multiplier",
+ "type": "8int",
+ "functionCode": 4,
+ "objectsCount": 1,
+ "address": 10,
+ "multiplier": 10
+ },
+ {
+ "tag": "32int_read",
+ "type": "32int",
+ "functionCode": 4,
+ "objectsCount": 2,
+ "address": 11
+ },
+ {
+ "tag": "64int_read",
+ "type": "64int",
+ "functionCode": 4,
+ "objectsCount": 4,
+ "address": 13
+ }
+ ],
+ "timeseries": [
+ {
+ "tag": "8uint_read",
+ "type": "8uint",
+ "functionCode": 4,
+ "objectsCount": 1,
+ "address": 17
+ },
+ {
+ "tag": "16uint_read",
+ "type": "16uint",
+ "functionCode": 4,
+ "objectsCount": 2,
+ "address": 18
+ },
+ {
+ "tag": "32uint_read",
+ "type": "32uint",
+ "functionCode": 4,
+ "objectsCount": 4,
+ "address": 20
+ },
+ {
+ "tag": "64uint_read",
+ "type": "64uint",
+ "functionCode": 4,
+ "objectsCount": 1,
+ "address": 24
+ },
+ {
+ "tag": "16float_read",
+ "type": "16float",
+ "functionCode": 4,
+ "objectsCount": 1,
+ "address": 25
+ },
+ {
+ "tag": "32float_read",
+ "type": "32float",
+ "functionCode": 4,
+ "objectsCount": 2,
+ "address": 26
+ },
+ {
+ "tag": "64float_read",
+ "type": "64float",
+ "functionCode": 4,
+ "objectsCount": 4,
+ "address": 28
+ }
+ ],
+ "attributeUpdates": [
+ {
+ "tag": "shared_attribute_write",
+ "type": "32int",
+ "functionCode": 6,
+ "objectsCount": 2,
+ "address": 29
+ }
+ ],
+ "rpc": [
+ {
+ "tag": "setValue",
+ "type": "bits",
+ "functionCode": 5,
+ "objectsCount": 1,
+ "address": 31
+ },
+ {
+ "tag": "getValue",
+ "type": "bits",
+ "functionCode": 1,
+ "objectsCount": 1,
+ "address": 31
+ },
+ {
+ "tag": "setCPUFanSpeed",
+ "type": "32int",
+ "functionCode": 16,
+ "objectsCount": 2,
+ "address": 33
+ },
+ {
+ "tag":"getCPULoad",
+ "type": "32int",
+ "functionCode": 4,
+ "objectsCount": 2,
+ "address": 35
+ }
+ ]
+ }
+ ]
+ }
+}
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus_serial.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus_serial.json
new file mode 100755
index 0000000000..19b38e3f7b
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/modbus_serial.json
@@ -0,0 +1,29 @@
+{
+ "server": {
+ "name": "Modbus Default Server",
+ "type": "serial",
+ "method": "rtu",
+ "port": "/dev/ttyUSB0",
+ "baudrate": 19200,
+ "timeout": 35,
+ "devices": [
+ {
+ "unitId": 1,
+ "deviceName": "Temp Sensor",
+ "attributesPollPeriod": 5000,
+ "timeseriesPollPeriod": 5000,
+ "sendDataOnlyOnChange": true,
+ "attributes": [
+ {
+ "byteOrder": "BIG",
+ "tag": "test",
+ "type": "long",
+ "functionCode": 4,
+ "registerCount": 1,
+ "address": 4
+ }
+ ]
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/mqtt.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/mqtt.json
new file mode 100755
index 0000000000..6b78a7cec9
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/mqtt.json
@@ -0,0 +1,132 @@
+{
+ "broker": {
+ "name":"Default Local Broker",
+ "host":"127.0.0.1",
+ "port":1883,
+ "clientId": "ThingsBoard_gateway",
+ "security": {
+ "type": "basic",
+ "username": "user",
+ "password": "password"
+ }
+ },
+ "mapping": [
+ {
+ "topicFilter": "/sensor/data",
+ "converter": {
+ "type": "json",
+ "deviceNameJsonExpression": "${serialNumber}",
+ "deviceTypeJsonExpression": "${sensorType}",
+ "timeout": 60000,
+ "attributes": [
+ {
+ "type": "string",
+ "key": "model",
+ "value": "${sensorModel}"
+ },
+ {
+ "type": "string",
+ "key": "${sensorModel}",
+ "value": "on"
+ }
+ ],
+ "timeseries": [
+ {
+ "type": "double",
+ "key": "temperature",
+ "value": "${temp}"
+ },
+ {
+ "type": "double",
+ "key": "humidity",
+ "value": "${hum}"
+ }
+ ]
+ }
+ },
+ {
+ "topicFilter": "/sensor/+/data",
+ "converter": {
+ "type": "json",
+ "deviceNameTopicExpression": "(?<=sensor\/)(.*?)(?=\/data)",
+ "deviceTypeTopicExpression": "Thermometer",
+ "timeout": 60000,
+ "attributes": [
+ {
+ "type": "string",
+ "key": "model",
+ "value": "${sensorModel}"
+ }
+ ],
+ "timeseries": [
+ {
+ "type": "double",
+ "key": "temperature",
+ "value": "${temp}"
+ },
+ {
+ "type": "double",
+ "key": "humidity",
+ "value": "${hum}"
+ }
+ ]
+ }
+ },
+ {
+ "topicFilter": "/custom/sensors/+",
+ "converter": {
+ "type": "custom",
+ "extension": "CustomMqttUplinkConverter",
+ "extension-config": {
+ "temperatureBytes" : 2,
+ "humidityBytes" : 2,
+ "batteryLevelBytes" : 1
+ }
+ }
+ }
+ ],
+ "connectRequests": [
+ {
+ "topicFilter": "sensor/connect",
+ "deviceNameJsonExpression": "${SerialNumber}"
+ },
+ {
+ "topicFilter": "sensor/+/connect",
+ "deviceNameTopicExpression": "(?<=sensor\/)(.*?)(?=\/connect)"
+ }
+ ],
+ "disconnectRequests": [
+ {
+ "topicFilter": "sensor/disconnect",
+ "deviceNameJsonExpression": "${SerialNumber}"
+ },
+ {
+ "topicFilter": "sensor/+/disconnect",
+ "deviceNameTopicExpression": "(?<=sensor\/)(.*?)(?=\/disconnect)"
+ }
+ ],
+ "attributeUpdates": [
+ {
+ "deviceNameFilter": "SmartMeter.*",
+ "attributeFilter": "uploadFrequency",
+ "topicExpression": "sensor/${deviceName}/${attributeKey}",
+ "valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}"
+ }
+ ],
+ "serverSideRpc": [
+ {
+ "deviceNameFilter": ".*",
+ "methodFilter": "echo",
+ "requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
+ "responseTopicExpression": "sensor/${deviceName}/response/${methodName}/${requestId}",
+ "responseTimeout": 10000,
+ "valueExpression": "${params}"
+ },
+ {
+ "deviceNameFilter": ".*",
+ "methodFilter": "no-reply",
+ "requestTopicExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
+ "valueExpression": "${params}"
+ }
+ ]
+} \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/odbc.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/odbc.json
new file mode 100644
index 0000000000..c93992a262
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/odbc.json
@@ -0,0 +1,54 @@
+{
+ "connection": {
+ "str": "Driver={PostgreSQL};Server=localhost;Port=5432;Database=thingsboard;Uid=postgres;Pwd=postgres;",
+ "attributes": {
+ "autocommit": true,
+ "timeout": 0
+ },
+ "encoding": "utf-8",
+ "decoding": {
+ "char": "utf-8",
+ "wchar": "utf-8",
+ "metadata": "utf-16le"
+ },
+ "reconnect": true,
+ "reconnectPeriod": 60
+ },
+ "pyodbc": {
+ "pooling": false
+ },
+ "polling": {
+ "query": "SELECT bool_v, str_v, dbl_v, long_v, entity_id, ts FROM ts_kv WHERE ts > ? ORDER BY ts ASC LIMIT 10",
+ "period": 10,
+ "iterator": {
+ "column": "ts",
+ "query": "SELECT MIN(ts) - 1 FROM ts_kv",
+ "persistent": false
+ }
+ },
+ "mapping": {
+ "device": {
+ "type": "postgres",
+ "name": "'ODBC ' + entity_id"
+ },
+ "sendDataOnlyOnChange": false,
+ "attributes": "*",
+ "timeseries": [
+ {
+ "name": "value",
+ "value": "[i for i in [str_v, long_v, dbl_v,bool_v] if i is not None][0]"
+ }
+ ]
+ },
+ "serverSideRpc": {
+ "enableUnknownRpc": false,
+ "overrideRpcConfig": true,
+ "methods": [
+ "procedureOne",
+ {
+ "name": "procedureTwo",
+ "args": [ "One", 2, 3.0 ]
+ }
+ ]
+ }
+ } \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/opcua.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/opcua.json
new file mode 100755
index 0000000000..1deed7d524
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/opcua.json
@@ -0,0 +1,49 @@
+{
+ "server": {
+ "name": "OPC-UA Default Server",
+ "url": "localhost:4840/freeopcua/server/",
+ "timeoutInMillis": 5000,
+ "scanPeriodInMillis": 5000,
+ "disableSubscriptions":false,
+ "subCheckPeriodInMillis": 100,
+ "showMap": false,
+ "security": "Basic128Rsa15",
+ "identity": {
+ "type": "anonymous"
+ },
+ "mapping": [
+ {
+ "deviceNodePattern": "Root\\.Objects\\.Device1",
+ "deviceNamePattern": "Device ${Root\\.Objects\\.Device1\\.serialNumber}",
+ "attributes": [
+ {
+ "key": "temperature °C",
+ "path": "${ns=2;i=5}"
+ }
+ ],
+ "timeseries": [
+ {
+ "key": "humidity",
+ "path": "${Root\\.Objects\\.Device1\\.TemperatureAndHumiditySensor\\.Humidity}"
+ },
+ {
+ "key": "batteryLevel",
+ "path": "${Battery\\.batteryLevel}"
+ }
+ ],
+ "rpc_methods": [
+ {
+ "method": "multiply",
+ "arguments": [2, 4]
+ }
+ ],
+ "attributes_updates": [
+ {
+ "attributeOnThingsBoard": "deviceName",
+ "attributeOnDevice": "Root\\.Objects\\.Device1\\.serialNumber"
+ }
+ ]
+ }
+ ]
+ }
+} \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/request.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/request.json
new file mode 100644
index 0000000000..43237a7dc0
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/request.json
@@ -0,0 +1,146 @@
+"job": "leader"
+},
+"allowRedirects": true,
+"timeout": 0.5,
+"scanPeriod": 5,
+"converter": {
+ "type": "json",
+ "deviceNameJsonExpression": "SD8500",
+ "deviceTypeJsonExpression": "SD",
+ "attributes": [
+ {
+ "key": "serialNumber",
+ "type": "string",
+ "value": "${serial}"
+ }
+ ],
+ "telemetry": [
+ {
+ "key": "Maintainer",
+ "type": "string",
+ "value": "${Developer}"
+ }
+ ]
+}
+},
+{
+"url": "get_info",
+"httpMethod": "GET",
+"httpHeaders": {
+ "ACCEPT": "application/json"
+},
+"allowRedirects": true,
+"timeout": 0.5,
+"scanPeriod": 100,
+"converter": {
+ "type": "custom",
+ "deviceNameJsonExpression": "SD8500",
+ "deviceTypeJsonExpression": "SD",
+ "extension": "CustomRequestUplinkConverter",
+ "extension-config": [
+ {
+ "key": "Totaliser",
+ "type": "float",
+ "fromByte": 0,
+ "toByte": 4,
+ "byteorder": "big",
+ "signed": true,
+ "multiplier": 1
+ },
+ {
+ "key": "Flow",
+ "type": "int",
+ "fromByte": 4,
+ "toByte": 6,
+ "byteorder": "big",
+ "signed": true,
+ "multiplier": 0.01
+ },
+ {
+ "key": "Temperature",
+ "type": "int",
+ "fromByte": 8,
+ "toByte": 10,
+ "byteorder": "big",
+ "signed": true,
+ "multiplier": 0.01
+ },
+ {
+ "key": "Pressure",
+ "type": "int",
+ "fromByte": 12,
+ "toByte": 14,
+ "byteorder": "big",
+ "signed": true,
+ "multiplier": 0.01
+ },
+ {
+ "key": "deviceStatus",
+ "type": "int",
+ "byteAddress": 15,
+ "fromBit": 4,
+ "toBit": 8,
+ "byteorder": "big",
+ "signed": false
+ },
+ {
+ "key": "OUT2",
+ "type": "int",
+ "byteAddress": 15,
+ "fromBit": 1,
+ "toBit": 2,
+ "byteorder": "big"
+ },
+ {
+ "key": "OUT1",
+ "type": "int",
+ "byteAddress": 15,
+ "fromBit": 0,
+ "toBit": 1,
+ "byteorder": "big"
+ }
+ ]
+}
+}
+],
+"attributeUpdates": [
+{
+ "httpMethod": "POST",
+ "httpHeaders": {
+ "CONTENT-TYPE": "application/json"
+ },
+ "timeout": 0.5,
+ "tries": 3,
+ "allowRedirects": true,
+ "deviceNameFilter": "SD.*",
+ "attributeFilter": "send_data",
+ "requestUrlExpression": "sensor/${deviceName}/${attributeKey}",
+ "valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}"
+}
+],
+"serverSideRpc": [
+{
+"deviceNameFilter": ".*",
+"methodFilter": "echo",
+"requestUrlExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
+"responseTimeout": 1,
+"httpMethod": "GET",
+"valueExpression": "${params}",
+"timeout": 0.5,
+"tries": 3,
+"httpHeaders": {
+ "Content-Type": "application/json"
+}
+},
+{
+"deviceNameFilter": ".*",
+"methodFilter": "no-reply",
+"requestUrlExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
+"httpMethod": "POST",
+"valueExpression": "${params}",
+"httpHeaders": {
+ "Content-Type": "application/json"
+}
+}
+]
+} \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/rest.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/rest.json
new file mode 100644
index 0000000000..be6c6ff18e
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/rest.json
@@ -0,0 +1,152 @@
+{
+ "host": "127.0.0.1",
+ "port": "5000",
+ "mapping":[
+ {
+ "endpoint": "/device1",
+ "HTTPMethods": [
+ "POST"
+ ],
+ "security":
+ {
+ "type": "basic",
+ "username": "user",
+ "password": "passwd"
+ },
+ "converter": {
+ "type": "json",
+ "deviceNameExpression": "Device ${name}",
+ "deviceTypeExpression": "default",
+ "attributes": [
+ {
+ "type": "string",
+ "key": "model",
+ "value": "${sensorModel}"
+ }
+ ],
+ "timeseries": [
+ {
+ "type": "double",
+ "key": "${sensorModel}",
+ "value": "${temp}"
+ },
+ {
+ "type": "double",
+ "key": "humidity",
+ "value": "${hum}"
+ }
+ ]
+ }
+ },
+ {
+ "endpoint": "/anon1",
+ "HTTPMethods": [
+ "GET",
+ "POST"
+ ],
+ "security":
+ {
+ "type": "anonymous"
+ },
+ "converter": {
+ "type": "json",
+ "deviceNameExpression": "Device 2",
+ "deviceTypeExpression": "default",
+ "attributes": [
+ {
+ "type": "string",
+ "key": "model",
+ "value": "Model2"
+ }
+ ],
+ "timeseries": [
+ {
+ "type": "double",
+ "key": "temperature",
+ "value": "${temp}"
+ },
+ {
+ "type": "double",
+ "key": "humidity",
+ "value": "${hum}"
+ }
+ ]
+ }
+ },
+ {
+ "endpoint": "/anon2",
+ "HTTPMethods": [
+ "POST"
+ ],
+ "security":
+ {
+ "type": "anonymous"
+ },
+ "converter": {
+ "type": "custom",
+ "deviceNameExpression": "SuperAnonDevice",
+ "deviceTypeExpression": "default",
+ "extension": "CustomRestUplinkConverter",
+ "extension-config": [
+ {
+ "key": "Totaliser",
+ "datatype": "float",
+ "fromByte": 0,
+ "toByte": 4,
+ "byteorder": "big",
+ "signed": true,
+ "multiplier": 1
+ }]
+ }
+ }
+ ],
+ "attributeUpdates": [
+ {
+ "HTTPMethod": "POST",
+ "SSLVerify": false,
+ "httpHeaders": {
+ "CONTENT-TYPE": "application/json"
+ },
+ "security": {
+ "type": "basic",
+ "username": "user",
+ "password": "passwd"
+ },
+ "timeout": 0.5,
+ "tries": 3,
+ "allowRedirects": true,
+ "deviceNameFilter": ".*REST$",
+ "attributeFilter": "data",
+ "requestUrlExpression": "sensor/${deviceName}/${attributeKey}",
+ "valueExpression": "{\"${attributeKey}\":\"${attributeValue}\"}"
+ }
+ ],
+ "serverSideRpc": [
+ {
+ "deviceNameFilter": ".*",
+ "methodFilter": "echo",
+ "requestUrlExpression": "http://127.0.0.1:5001/${deviceName}",
+ "responseTimeout": 1,
+ "HTTPMethod": "GET",
+ "valueExpression": "${params}",
+ "timeout": 0.5,
+ "tries": 3,
+ "httpHeaders": {
+ "Content-Type": "application/json"
+ },
+ "security": {
+ "type": "anonymous"
+ }
+ },
+ {
+ "deviceNameFilter": ".*",
+ "methodFilter": "no-reply",
+ "requestUrlExpression": "sensor/${deviceName}/request/${methodName}/${requestId}",
+ "HTTPMethod": "POST",
+ "valueExpression": "${params}",
+ "httpHeaders": {
+ "Content-Type": "application/json"
+ }
+ }
+ ]
+ } \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/snmp.json b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/snmp.json
new file mode 100644
index 0000000000..b4ddb42645
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/snmp.json
@@ -0,0 +1,138 @@
+{
+ "devices": [
+ {
+ "deviceName": "SNMP router",
+ "deviceType": "snmp",
+ "ip": "snmp.live.gambitcommunications.com",
+ "port": 161,
+ "pollPeriod": 5000,
+ "community": "public",
+ "attributes": [
+ {
+ "key": "ReceivedFromGet",
+ "method": "get",
+ "oid": "1.3.6.1.2.1.1.1.0",
+ "timeout": 6
+ },
+ {
+ "key": "ReceivedFromMultiGet",
+ "method": "multiget",
+ "oid": [
+ "1.3.6.1.2.1.1.1.0",
+ "1.3.6.1.2.1.1.2.0"
+ ],
+ "timeout": 6
+ },
+ {
+ "key": "ReceivedFromGetNext",
+ "method": "getnext",
+ "oid": "1.3.6.1.2.1.1.1.0",
+ "timeout": 6
+ },
+ {
+ "key": "ReceivedFromMultiWalk",
+ "method": "multiwalk",
+ "oid": [
+ "1.3.6.1.2.1.1.1.0",
+ "1.3.6.0.1.2.1"
+ ]
+ },
+ {
+ "key": "ReceivedFromBulkWalk",
+ "method": "bulkwalk",
+ "oid": [
+ "1.3.6.1.2.1.1.1.0",
+ "1.3.6.1.2.1.1.2.0"
+ ]
+ },
+ {
+ "key": "ReceivedFromBulkGet",
+ "method": "bulkget",
+ "scalarOid": [
+ "1.3.6.1.2.1.1.1.0",
+ "1.3.6.1.2.1.1.2.0"
+ ],
+ "repeatingOid": [
+ "1.3.6.1.2.1.1.1.0",
+ "1.3.6.1.2.1.1.2.0"
+ ],
+ "maxListSize": 10
+ }
+ ],
+ "telemetry": [
+ {
+ "key": "ReceivedFromWalk",
+ "community": "private",
+ "method": "walk",
+ "oid": "1.3.6.1.2.1.1.1.0"
+ },
+ {
+ "key": "ReceivedFromTable",
+ "method": "table",
+ "oid": "1.3.6.1.2.1.1"
+ }
+ ],
+ "attributeUpdateRequests": [
+ {
+ "attributeFilter": "dataToSet",
+ "method": "set",
+ "oid": "1.3.6.1.2.1.1.1.0"
+ },
+ {
+ "attributeFilter": "dataToMultiSet",
+ "method": "multiset",
+ "mappings": {
+ "1.2.3": "10",
+ "2.3.4": "${attribute}"
+ }
+ }
+ ],
+ "serverSideRpcRequests": [
+ {
+ "requestFilter": "setData",
+ "method": "set",
+ "oid": "1.3.6.1.2.1.1.1.0"
+ },
+ {
+ "requestFilter": "multiSetData",
+ "method": "multiset"
+ },
+ {
+ "requestFilter": "getData",
+ "method": "get",
+ "oid": "1.3.6.1.2.1.1.1.0"
+ },
+ {
+ "requestFilter": "runBulkWalk",
+ "method": "bulkwalk",
+ "oid": [
+ "1.3.6.1.2.1.1.1.0",
+ "1.3.6.1.2.1.1.2.0"
+ ]
+ }
+ ]
+ },
+ {
+ "deviceName": "SNMP router",
+ "deviceType": "snmp",
+ "ip": "127.0.0.1",
+ "pollPeriod": 5000,
+ "community": "public",
+ "converter": "CustomSNMPConverter",
+ "attributes": [
+ {
+ "key": "ReceivedFromGetWithCustomConverter",
+ "method": "get",
+ "oid": "1.3.6.1.2.1.1.1.0"
+ }
+ ],
+ "telemetry": [
+ {
+ "key": "ReceivedFromTableWithCustomConverter",
+ "method": "table",
+ "oid": "1.3.6.1.2.1.1.1.0"
+ }
+ ]
+ }
+ ]
+ } \ No newline at end of file
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/tb_gateway.yaml b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/tb_gateway.yaml
new file mode 100755
index 0000000000..e3eb8f1fc7
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/tb_gateway.yaml
@@ -0,0 +1,66 @@
+thingsboard:
+ host: demo.thingsboard.io
+ port: 1883
+ remoteConfiguration: false
+ security:
+ accessToken: PUT_YOUR_GW_ACCESS_TOKEN_HERE
+storage:
+ type: memory
+ read_records_count: 100
+ max_records_count: 100000
+# type: file
+# data_folder_path: ./data/
+# max_file_count: 10
+# max_read_records_count: 10
+# max_records_per_file: 10000
+connectors:
+ -
+ name: MQTT Broker Connector
+ type: mqtt
+ configuration: mqtt.json
+
+# -
+# name: Modbus Connector
+# type: modbus
+# configuration: modbus.json
+#
+# -
+# name: Modbus Connector
+# type: modbus
+# configuration: modbus_serial.json
+#
+# -
+# name: OPC-UA Connector
+# type: opcua
+# configuration: opcua.json
+#
+# -
+# name: BLE Connector
+# type: ble
+# configuration: ble.json
+#
+# -
+# name: REQUEST Connector
+# type: request
+# configuration: request.json
+#
+# -
+# name: CAN Connector
+# type: can
+# configuration: can.json
+#
+# -
+# name: BACnet Connector
+# type: bacnet
+# configuration: bacnet.json
+#
+# -
+# name: ODBC Connector
+# type: odbc
+# configuration: odbc.json
+#
+# -
+# name: Custom Serial Connector
+# type: serial
+# configuration: custom_serial.json
+# class: CustomSerialConnector
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/thingsboard-gateway.service b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/thingsboard-gateway.service
new file mode 100644
index 0000000000..5dd352a553
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway/thingsboard-gateway.service
@@ -0,0 +1,13 @@
+[Unit]
+Description = Systemd service for Thingsboard Gateway
+After = network.target
+
+[Service]
+ExecStart = /usr/bin/python3 /usr/bin/thingsboard-gateway
+ExecStop = /bin/kill -INT $MAINPID
+ExecReload = /bin/kill -TERM $MAINPID
+Restart = always
+Type = simple
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.3.bb b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.3.bb
new file mode 100644
index 0000000000..0987522ac8
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-connectivity/thingsboard-gateway/thingsboard-gateway_3.3.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] = "4d27661113c54e3b0998328f15ca7fd9e4837d1975c7c213595cb940f4b11484"
+
+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
new file mode 100644
index 0000000000..c3d4cbc500
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -0,0 +1,24 @@
+RDEPENDS:packagegroup-meta-oe-devtools += "\
+ python3-distutils-extra \
+ rwmem \
+ mongodb \
+"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:riscv64 = "mongodb"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:riscv32 = "mongodb"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:mipsarch = "mongodb"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:powerpc = "mongodb"
+
+RDEPENDS:packagegroup-meta-oe-connectivity += "\
+ lirc \
+"
+
+RDEPENDS:packagegroup-meta-oe-extended += "\
+ lcdproc \
+ mozjs-102 \
+"
+RDEPENDS:packagegroup-meta-oe-support += "\
+ nvmetcli \
+ smem \
+"
+RDEPENDS:packagegroup-meta-oe-extended:remove:libc-musl = "lcdproc"
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch
new file mode 100644
index 0000000000..f5c2cf2179
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Fix-compilation-with-fno-common.patch
@@ -0,0 +1,448 @@
+From 3690dc5f567906c45f057509305fbaa021b33adb Mon Sep 17 00:00:00 2001
+From: Yichao Yu <yyc1992@gmail.com>
+Date: Tue, 15 Sep 2020 12:35:46 -0700
+Subject: [PATCH] Fix compilation with -fno-common.
+
+Making all other archs consistent with IA64 which should not have this problem.
+Also move the FIXME to the correct place.
+
+Also add some minimum comments about this...
+
+Upstream-Status: Backport [https://github.com/libunwind/libunwind/pull/166/commits/29e17d8d2ccbca07c423e3089a6d5ae8a1c9cb6e]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/third_party/unwind/dist/src/aarch64/Ginit.c | 15 +++++++--------
+ src/third_party/unwind/dist/src/arm/Ginit.c | 15 +++++++--------
+ .../src/coredump/_UPT_get_dyn_info_list_addr.c | 5 +++++
+ src/third_party/unwind/dist/src/hppa/Ginit.c | 15 +++++++--------
+ src/third_party/unwind/dist/src/ia64/Ginit.c | 1 +
+ .../unwind/dist/src/mi/Gfind_dynamic_proc_info.c | 1 +
+ src/third_party/unwind/dist/src/mips/Ginit.c | 15 +++++++--------
+ src/third_party/unwind/dist/src/ppc32/Ginit.c | 11 +++++++----
+ src/third_party/unwind/dist/src/ppc64/Ginit.c | 11 +++++++----
+ .../dist/src/ptrace/_UPT_get_dyn_info_list_addr.c | 5 +++++
+ src/third_party/unwind/dist/src/s390x/Ginit.c | 15 +++++++--------
+ src/third_party/unwind/dist/src/sh/Ginit.c | 15 +++++++--------
+ src/third_party/unwind/dist/src/tilegx/Ginit.c | 15 +++++++--------
+ src/third_party/unwind/dist/src/x86/Ginit.c | 15 +++++++--------
+ src/third_party/unwind/dist/src/x86_64/Ginit.c | 15 +++++++--------
+ 15 files changed, 89 insertions(+), 80 deletions(-)
+
+diff --git a/src/third_party/unwind/dist/src/aarch64/Ginit.c b/src/third_party/unwind/dist/src/aarch64/Ginit.c
+index dec235c829..35389762f2 100644
+--- a/src/third_party/unwind/dist/src/aarch64/Ginit.c
++++ b/src/third_party/unwind/dist/src/aarch64/Ginit.c
+@@ -61,13 +61,6 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -78,7 +71,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/arm/Ginit.c b/src/third_party/unwind/dist/src/arm/Ginit.c
+index 2720d063a2..0bac0d72da 100644
+--- a/src/third_party/unwind/dist/src/arm/Ginit.c
++++ b/src/third_party/unwind/dist/src/arm/Ginit.c
+@@ -57,18 +57,17 @@ tdep_uc_addr (unw_tdep_context_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c b/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c
+index 0d11905566..739ed0569b 100644
+--- a/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c
++++ b/src/third_party/unwind/dist/src/coredump/_UPT_get_dyn_info_list_addr.c
+@@ -74,6 +74,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+
+ #else
+
++/* XXX fix me: there is currently no way to locate the dyn-info list
++ by a remote unwinder. On ia64, this is done via a special
++ unwind-table entry. Perhaps something similar can be done with
++ DWARF2 unwind info. */
++
+ static inline int
+ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+ int *countp)
+diff --git a/src/third_party/unwind/dist/src/hppa/Ginit.c b/src/third_party/unwind/dist/src/hppa/Ginit.c
+index 461e4b93da..265455a68c 100644
+--- a/src/third_party/unwind/dist/src/hppa/Ginit.c
++++ b/src/third_party/unwind/dist/src/hppa/Ginit.c
+@@ -64,13 +64,6 @@ _Uhppa_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -81,7 +74,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/ia64/Ginit.c b/src/third_party/unwind/dist/src/ia64/Ginit.c
+index b09a2ad57c..8601bb3ca8 100644
+--- a/src/third_party/unwind/dist/src/ia64/Ginit.c
++++ b/src/third_party/unwind/dist/src/ia64/Ginit.c
+@@ -68,6 +68,7 @@ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ if (!_U_dyn_info_list_addr)
+ return -UNW_ENOINFO;
+ #endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+diff --git a/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c b/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c
+index 98d3501286..2e7c62e5e8 100644
+--- a/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c
++++ b/src/third_party/unwind/dist/src/mi/Gfind_dynamic_proc_info.c
+@@ -49,6 +49,7 @@ local_find_proc_info (unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
+ return -UNW_ENOINFO;
+ #endif
+
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
+ list = (unw_dyn_info_list_t *) (uintptr_t) _U_dyn_info_list_addr ();
+ for (di = list->first; di; di = di->next)
+ if (ip >= di->start_ip && ip < di->end_ip)
+diff --git a/src/third_party/unwind/dist/src/mips/Ginit.c b/src/third_party/unwind/dist/src/mips/Ginit.c
+index 3df170c754..bf7a8f5a8f 100644
+--- a/src/third_party/unwind/dist/src/mips/Ginit.c
++++ b/src/third_party/unwind/dist/src/mips/Ginit.c
+@@ -69,13 +69,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -86,7 +79,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/ppc32/Ginit.c b/src/third_party/unwind/dist/src/ppc32/Ginit.c
+index ba302448a3..7b45455807 100644
+--- a/src/third_party/unwind/dist/src/ppc32/Ginit.c
++++ b/src/third_party/unwind/dist/src/ppc32/Ginit.c
+@@ -91,9 +91,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -104,7 +101,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/ppc64/Ginit.c b/src/third_party/unwind/dist/src/ppc64/Ginit.c
+index 4c88cd6e77..7bfb395a79 100644
+--- a/src/third_party/unwind/dist/src/ppc64/Ginit.c
++++ b/src/third_party/unwind/dist/src/ppc64/Ginit.c
+@@ -95,9 +95,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -108,7 +105,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c b/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c
+index cc5ed04418..16671d453e 100644
+--- a/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c
++++ b/src/third_party/unwind/dist/src/ptrace/_UPT_get_dyn_info_list_addr.c
+@@ -71,6 +71,11 @@ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+
+ #else
+
++/* XXX fix me: there is currently no way to locate the dyn-info list
++ by a remote unwinder. On ia64, this is done via a special
++ unwind-table entry. Perhaps something similar can be done with
++ DWARF2 unwind info. */
++
+ static inline int
+ get_list_addr (unw_addr_space_t as, unw_word_t *dil_addr, void *arg,
+ int *countp)
+diff --git a/src/third_party/unwind/dist/src/s390x/Ginit.c b/src/third_party/unwind/dist/src/s390x/Ginit.c
+index f0886ac933..db01743c06 100644
+--- a/src/third_party/unwind/dist/src/s390x/Ginit.c
++++ b/src/third_party/unwind/dist/src/s390x/Ginit.c
+@@ -50,8 +50,6 @@ static struct unw_addr_space local_addr_space;
+
+ unw_addr_space_t unw_local_addr_space = &local_addr_space;
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+ static inline void *
+ uc_addr (ucontext_t *uc, int reg)
+ {
+@@ -75,11 +73,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -90,7 +83,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/sh/Ginit.c b/src/third_party/unwind/dist/src/sh/Ginit.c
+index 52988a721e..9fe96d2bd4 100644
+--- a/src/third_party/unwind/dist/src/sh/Ginit.c
++++ b/src/third_party/unwind/dist/src/sh/Ginit.c
+@@ -58,13 +58,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -75,7 +68,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/tilegx/Ginit.c b/src/third_party/unwind/dist/src/tilegx/Ginit.c
+index 7564a558be..925e641324 100644
+--- a/src/third_party/unwind/dist/src/tilegx/Ginit.c
++++ b/src/third_party/unwind/dist/src/tilegx/Ginit.c
+@@ -64,13 +64,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -81,7 +74,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) (intptr_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/x86/Ginit.c b/src/third_party/unwind/dist/src/x86/Ginit.c
+index f6b8dc27d4..3cec74a216 100644
+--- a/src/third_party/unwind/dist/src/x86/Ginit.c
++++ b/src/third_party/unwind/dist/src/x86/Ginit.c
+@@ -54,13 +54,6 @@ tdep_uc_addr (ucontext_t *uc, int reg)
+
+ # endif /* UNW_LOCAL_ONLY */
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -71,7 +64,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+diff --git a/src/third_party/unwind/dist/src/x86_64/Ginit.c b/src/third_party/unwind/dist/src/x86_64/Ginit.c
+index 6161da6401..5c4e4269a6 100644
+--- a/src/third_party/unwind/dist/src/x86_64/Ginit.c
++++ b/src/third_party/unwind/dist/src/x86_64/Ginit.c
+@@ -49,13 +49,6 @@ static struct unw_addr_space local_addr_space;
+
+ unw_addr_space_t unw_local_addr_space = &local_addr_space;
+
+-HIDDEN unw_dyn_info_list_t _U_dyn_info_list;
+-
+-/* XXX fix me: there is currently no way to locate the dyn-info list
+- by a remote unwinder. On ia64, this is done via a special
+- unwind-table entry. Perhaps something similar can be done with
+- DWARF2 unwind info. */
+-
+ static void
+ put_unwind_info (unw_addr_space_t as, unw_proc_info_t *proc_info, void *arg)
+ {
+@@ -66,7 +59,13 @@ static int
+ get_dyn_info_list_addr (unw_addr_space_t as, unw_word_t *dyn_info_list_addr,
+ void *arg)
+ {
+- *dyn_info_list_addr = (unw_word_t) &_U_dyn_info_list;
++#ifndef UNW_LOCAL_ONLY
++# pragma weak _U_dyn_info_list_addr
++ if (!_U_dyn_info_list_addr)
++ return -UNW_ENOINFO;
++#endif
++ // Access the `_U_dyn_info_list` from `LOCAL_ONLY` library, i.e. libunwind.so.
++ *dyn_info_list_addr = _U_dyn_info_list_addr ();
+ return 0;
+ }
+
+--
+2.28.0
+
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
new file mode 100644
index 0000000000..e636adc556
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
@@ -0,0 +1,35 @@
+From 97914aeab52b4d0ea0ab9e5ff985a1c5cddb0fa1 Mon Sep 17 00:00:00 2001
+From: Vincent Prince <vincent.prince.fr@gmail.com>
+Date: Mon, 16 Sep 2019 13:41:39 +0200
+Subject: [PATCH 06/10] IntelRDFPMathLib20U1: Check for __DEFINED_wchar_t
+
+This is defined by musl if wchar_t is already defined
+
+avoids errors like
+
+src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h:46:15: error: typedef redefinition with different types
+ ('int' vs 'unsigned int')
+typedef int wchar_t;
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+---
+ src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+index 56775bc..be96a85 100755
+--- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
++++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
+@@ -43,7 +43,7 @@
+
+ #if 0 // MongoDB Modification -- just `#include <stddef.h>`
+ // Fix system header issue on Sun solaris and define required type by ourselves
+-#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__)
++#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) && !defined(__DEFINED_wchar_t)
+ typedef int wchar_t;
+ #endif
+ #else
+--
+2.7.4
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch
new file mode 100644
index 0000000000..5337fcdbfd
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Mark-one-of-strerror_r-implementation-glibc-specific.patch
@@ -0,0 +1,31 @@
+From ca004968b8d2149f72d4edcfe029489a8c5e10ca Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Sep 2019 12:31:31 -0700
+Subject: [PATCH] Mark one of strerror_r implementation glibc specific
+
+glibc has two incompatible strerror_r definitions, one of them is
+specific to glibc, mark this one so
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/errno_util.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mongo/util/errno_util.cpp b/src/mongo/util/errno_util.cpp
+index 564c0071ea..4f7e1d3a38 100644
+--- a/src/mongo/util/errno_util.cpp
++++ b/src/mongo/util/errno_util.cpp
+@@ -61,7 +61,7 @@ std::string errnoWithDescription(int errNumber) {
+ char buf[kBuflen];
+ char* msg{nullptr};
+
+-#if defined(__GNUC__) && defined(_GNU_SOURCE) && \
++#if defined(__GNUC__) && defined(_GNU_SOURCE) && defined(__GLIBC__) && \
+ (!defined(__ANDROID_API__) || !(__ANDROID_API__ <= 22)) && !defined(EMSCRIPTEN)
+ msg = strerror_r(errNumber, buf, kBuflen);
+ #elif defined(_WIN32)
+--
+2.23.0
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch
new file mode 100644
index 0000000000..3d949c8730
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Support-deprecated-resolver-functions.patch
@@ -0,0 +1,33 @@
+From 8d035e84c2edb44461ef4df9cdef0a6dfce0a1d7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 24 Aug 2018 12:56:22 -0700
+Subject: [PATCH 07/10] Support deprecated resolver functions
+
+Needed for musl libc
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/dns_query_posix-impl.h | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/mongo/util/dns_query_posix-impl.h b/src/mongo/util/dns_query_posix-impl.h
+index a5e3629..fb29d2d 100644
+--- a/src/mongo/util/dns_query_posix-impl.h
++++ b/src/mongo/util/dns_query_posix-impl.h
+@@ -54,6 +54,12 @@
+
+ #include <boost/noncopyable.hpp>
+
++#ifndef res_ninit
++#define res_nclose(arg)
++#define res_ninit(arg) res_init()
++#define res_nsearch(sta, nam, clas, typ, ans, alen) res_search(nam, clas, typ, ans, alen)
++#endif
++
+ namespace mongo {
+ namespace dns {
+ // The anonymous namespace is safe, in this header, as it is not really a header. It is only used
+--
+2.7.4
+
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
new file mode 100644
index 0000000000..b8a325295d
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
@@ -0,0 +1,55 @@
+From 8295bb6a60896fed54d6450bca091aea4eea4fb2 Mon Sep 17 00:00:00 2001
+From: Vincent Prince <vincent.prince.fr@gmail.com>
+Date: Mon, 16 Sep 2019 13:21:44 +0200
+Subject: [PATCH 01/10] Tell scons to use build settings from environment
+ variables
+
+Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com>
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+---
+ SConstruct | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 89c044ab78..2044c0ddb8 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -593,6 +593,7 @@ def variable_arch_converter(val):
+ 'amd64': 'x86_64',
+ 'emt64': 'x86_64',
+ 'x86': 'i386',
++ 'aarch64': 'arm64',
+ }
+ val = val.lower()
+
+@@ -723,7 +724,8 @@ env_vars.Add(
+ )
+
+ env_vars.Add('CC',
+- help='Select the C compiler to use')
++ help='Select the C compiler to use',
++ default=os.getenv('CC'))
+
+ env_vars.Add('CCFLAGS',
+ help='Sets flags for the C and C++ compiler',
+@@ -743,7 +745,8 @@ env_vars.Add('CPPPATH',
+ converter=variable_shlex_converter)
+
+ env_vars.Add('CXX',
+- help='Select the C++ compiler to use')
++ help='Select the C++ compiler to use',
++ default=os.getenv('CXX'))
+
+ env_vars.Add('CXXFLAGS',
+ help='Sets flags for the C++ compiler',
+@@ -1127,6 +1130,7 @@ if get_option('build-tools') == 'next' or get_option('ninja') == 'next':
+ SCons.Tool.DefaultToolpath.insert(0, os.path.abspath('site_scons/site_tools/next'))
+
+ env = Environment(variables=env_vars, **envDict)
++env.PrependENVPath('PATH', os.getenv('PATH'))
+
+ # Only print the spinner if stdout is a tty
+ if sys.stdout.isatty():
+--
+2.24.0
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-The-std-lib-unary-binary_function-base-classes-are-d.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-The-std-lib-unary-binary_function-base-classes-are-d.patch
new file mode 100644
index 0000000000..4594bec81a
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-The-std-lib-unary-binary_function-base-classes-are-d.patch
@@ -0,0 +1,40 @@
+From f9b55f5a1fab85bf73c95e6372779d6f50f75e84 Mon Sep 17 00:00:00 2001
+From: jzmaddock <john@johnmaddock.co.uk>
+Date: Mon, 11 Jul 2022 18:26:07 +0100
+Subject: [PATCH] The std lib unary/binary_function base classes are
+ deprecated/removed from libcpp15. Fixes
+ https://github.com/boostorg/container_hash/issues/24.
+
+Upstream-Status: Backport [https://github.com/boostorg/config/pull/440/commits/f0af4a9184457939b89110795ae2d293582c5f66]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/third_party/boost-1.70.0/boost/config/stdlib/libcpp.hpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+--- a/src/third_party/boost-1.70.0/boost/config/stdlib/libcpp.hpp
++++ b/src/third_party/boost-1.70.0/boost/config/stdlib/libcpp.hpp
+@@ -140,4 +140,13 @@
+ # define BOOST_NO_CXX14_HDR_SHARED_MUTEX
+ #endif
+
++#if _LIBCPP_VERSION >= 15000
++//
++// Unary function is now deprecated in C++11 and later:
++//
++#if __cplusplus >= 201103L
++#define BOOST_NO_CXX98_FUNCTION_BASE
++#endif
++#endif
++
+ // --- end ---
+--- a/src/third_party/boost-1.70.0/boost/container_hash/hash.hpp
++++ b/src/third_party/boost-1.70.0/boost/container_hash/hash.hpp
+@@ -118,7 +118,7 @@ namespace boost
+ {
+ namespace hash_detail
+ {
+-#if defined(_HAS_AUTO_PTR_ETC) && !_HAS_AUTO_PTR_ETC
++#if defined(BOOST_NO_CXX98_FUNCTION_BASE)
+ template <typename T>
+ struct hash_base
+ {
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
new file mode 100644
index 0000000000..8d82be1b57
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
@@ -0,0 +1,41 @@
+From 6332823f9fdcb571305b716330e67d0b38810868 Mon Sep 17 00:00:00 2001
+From: Vincent Prince <vincent.prince.fr@gmail.com>
+Date: Mon, 16 Sep 2019 13:30:13 +0200
+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>
+---
+ src/mongo/util/processinfo_linux.cpp | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp
+index a968c54727..0d8b8874e2 100644
+--- a/src/mongo/util/processinfo_linux.cpp
++++ b/src/mongo/util/processinfo_linux.cpp
+@@ -44,10 +44,10 @@
+ #include <unistd.h>
+ #ifdef __BIONIC__
+ #include <android/api-level.h>
+-#elif __UCLIBC__
+-#include <features.h>
+-#else
++#elif defined(__GLIBC__) && !defined(__UCLIBC__)
+ #include <gnu/libc-version.h>
++#else
++#include <features.h>
+ #endif
+
+ #include <boost/filesystem.hpp>
+@@ -617,7 +617,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
+ std::stringstream ss;
+ ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__;
+ bExtra.append("libcVersion", ss.str());
+-#else
++#elif defined(__GLIBC__)
+ bExtra.append("libcVersion", gnu_get_libc_version());
+ #endif
+ if (!verSig.empty())
+--
+2.24.0
+
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
new file mode 100644
index 0000000000..958e09c3dc
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
@@ -0,0 +1,67 @@
+From 4e7f15346682482bc2071c7209dec97507d3bc4c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 10:03:37 -0700
+Subject: [PATCH 02/10] Use long long instead of int64_t
+
+Fixes
+error: call to member function 'appendNumber' is ambiguous
+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>
+---
+ src/mongo/util/procparser.cpp | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/mongo/util/procparser.cpp b/src/mongo/util/procparser.cpp
+index 24b9d1e2c9..0f274cfff6 100644
+--- a/src/mongo/util/procparser.cpp
++++ b/src/mongo/util/procparser.cpp
+@@ -261,7 +261,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
+
+ StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
+
+- uint64_t value;
++ long long value;
+
+ if (!NumberParser{}(stringValue, &value).isOK()) {
+ value = 0;
+@@ -273,7 +273,7 @@ Status parseProcStat(const std::vector<StringData>& keys,
+ } else {
+ StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
+
+- uint64_t value;
++ long long value;
+
+ if (!NumberParser{}(stringValue, &value).isOK()) {
+ value = 0;
+@@ -366,7 +366,7 @@ Status parseProcMemInfo(const std::vector<StringData>& keys,
+
+ StringData stringValue((*partIt).begin(), (*partIt).end());
+
+- uint64_t value;
++ long long value;
+
+ if (!NumberParser{}(stringValue, &value).isOK()) {
+ value = 0;
+@@ -522,7 +522,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+ StringData data,
+ BSONObjBuilder* builder) {
+ bool foundKeys = false;
+- std::vector<uint64_t> stats;
++ std::vector<long long> stats;
+ stats.reserve(kDiskFieldCount);
+
+ using string_split_iterator = boost::split_iterator<StringData::const_iterator>;
+@@ -597,7 +597,7 @@ Status parseProcDiskStats(const std::vector<StringData>& disks,
+
+ StringData stringValue((*partIt).begin(), (*partIt).end());
+
+- uint64_t value;
++ long long value;
+
+ if (!NumberParser{}(stringValue, &value).isOK()) {
+ value = 0;
+--
+2.24.0
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-add-explict-static_cast-size_t-to-maxMemoryUsageByte.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-add-explict-static_cast-size_t-to-maxMemoryUsageByte.patch
new file mode 100644
index 0000000000..de05624429
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-add-explict-static_cast-size_t-to-maxMemoryUsageByte.patch
@@ -0,0 +1,38 @@
+From ad37ee80b32a1f740a3197105174d74dff11e4e8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Apr 2022 13:56:32 -0700
+Subject: [PATCH] add explict static_cast<size_t> to maxMemoryUsageBytes
+
+Fixes
+src/mongo/db/pipeline/document_source_group.cpp:377:22: error: non-constant-expression cannot be narrowed from type 'long long' to 'size_t' (aka 'unsigned int') in initializer list [-Wc++11-narrowing]
+ maxMemoryUsageBytes ? *maxMemoryUsageBytes
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+src/mongo/db/pipeline/document_source_group.cpp:377:22: note: insert an explicit cast to silence this issue
+ maxMemoryUsageBytes ? *maxMemoryUsageBytes
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/db/pipeline/document_source_group.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/mongo/db/pipeline/document_source_group.cpp b/src/mongo/db/pipeline/document_source_group.cpp
+index 4a7b48d6cd2..9a6076c6041 100644
+--- a/src/mongo/db/pipeline/document_source_group.cpp
++++ b/src/mongo/db/pipeline/document_source_group.cpp
+@@ -374,8 +374,8 @@ DocumentSourceGroup::DocumentSourceGroup(const intrusive_ptr<ExpressionContext>&
+ _usedDisk(false),
+ _doingMerge(false),
+ _memoryTracker{pExpCtx->allowDiskUse && !pExpCtx->inMongos,
+- maxMemoryUsageBytes ? *maxMemoryUsageBytes
+- : internalDocumentSourceGroupMaxMemoryBytes.load()},
++ static_cast<size_t>(maxMemoryUsageBytes ? *maxMemoryUsageBytes
++ : internalDocumentSourceGroupMaxMemoryBytes.load())},
+ // We spill to disk in debug mode, regardless of allowDiskUse, to stress the system.
+ _file(!pExpCtx->inMongos && (pExpCtx->allowDiskUse || kDebugBuild)
+ ? std::make_shared<Sorter<Value, Value>::File>(pExpCtx->tempDir + "/" +
+--
+2.35.2
+
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
new file mode 100644
index 0000000000..e726933f56
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-asio-Dont-use-experimental-with-clang.patch
@@ -0,0 +1,29 @@
+From 097e8a66930cfa28ac8bfa35f62d0a9ee3b74488 Mon Sep 17 00:00:00 2001
+From: Vincent Prince <vincent.prince.fr@gmail.com>
+Date: Mon, 16 Sep 2019 13:46:52 +0200
+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>
+---
+ src/third_party/asio-master/asio/include/asio/detail/string_view.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp b/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp
+index f09cebc..fa307b5 100644
+--- a/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp
++++ b/src/third_party/asio-master/asio/include/asio/detail/string_view.hpp
+@@ -33,8 +33,8 @@ namespace asio {
+ using std::basic_string_view;
+ using std::string_view;
+ #elif defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
+-using std::experimental::basic_string_view;
+-using std::experimental::string_view;
++using std::basic_string_view;
++using std::string_view;
+ #endif // defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
+
+ } // namespace asio
+--
+2.7.4
+
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..1373d1a794
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-free_mon-Include-missing-cstdint.patch
@@ -0,0 +1,26 @@
+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>
+---
+ 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-include-needed-c-header.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-include-needed-c-header.patch
new file mode 100644
index 0000000000..581c2390ec
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-include-needed-c-header.patch
@@ -0,0 +1,29 @@
+From 383b1dda4800c2514cb31446cd7478692d7d26cf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 3 Mar 2021 12:43:16 -0800
+Subject: [PATCH] include needed c++ header
+
+Fixes
+plan_stats.h:214:10: error: 'optional' in namespace 'std' does not name a template type
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/db/exec/plan_stats.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/mongo/db/exec/plan_stats.h b/src/mongo/db/exec/plan_stats.h
+index ea75f673b8..0cc9b4636d 100644
+--- a/src/mongo/db/exec/plan_stats.h
++++ b/src/mongo/db/exec/plan_stats.h
+@@ -31,6 +31,7 @@
+
+ #include <cstdint>
+ #include <cstdlib>
++#include <optional>
+ #include <string>
+ #include <vector>
+
+--
+2.30.1
+
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
new file mode 100644
index 0000000000..52c9df9b1b
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-server-Adjust-the-cache-alignment-assumptions.patch
@@ -0,0 +1,37 @@
+From 5c9e0d0fc9188bab0ae09c9c33df01938b0c1b6c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 14 Apr 2022 09:25:33 -0700
+Subject: [PATCH] server: Adjust the cache alignment assumptions
+
+aarch64 has 256 for hardware_destructive_interference_size and gcc 12
+has added a warning to complain about mismatches which results in
+static_assert failures
+
+In file included from src/mongo/s/commands/cluster_find_cmd.cpp:39:
+src/mongo/db/stats/counters.h:185:47: error: static assertion failed: cache line spill
+ 185 | static_assert(sizeof(decltype(_together)) <= stdx::hardware_constructive_interference_size,
+ | ~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The structure need to ensure true sharing for both the elements
+so align it to hardware_constructive_interference_size instead
+
+Upstream-Status: Inappropriate [https://jira.mongodb.org/browse/SERVER-65664]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/db/stats/counters.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/src/mongo/db/stats/counters.h
++++ b/src/mongo/db/stats/counters.h
+@@ -182,8 +182,8 @@ private:
+ AtomicWord<long long> requests{0};
+ };
+ CacheAligned<Together> _together{};
+- static_assert(sizeof(decltype(_together)) <= stdx::hardware_constructive_interference_size,
+- "cache line spill");
++ static_assert(sizeof(Together) <= stdx::hardware_constructive_interference_size,
++ "cache line spill");
+
+ CacheAligned<AtomicWord<long long>> _logicalBytesOut{0};
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch
new file mode 100644
index 0000000000..a92883516c
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0001-stacktrace-Define-ARCH_BITS-for-x86.patch
@@ -0,0 +1,29 @@
+From efd79bda1b85a5a4398a71e5ea2bc00ee4b0ea46 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Sep 2020 18:20:27 -0700
+Subject: [PATCH] stacktrace: Define ARCH_BITS for x86
+
+stacktrace_somap.cpp:92:33: error: 'ELFCLASSARCH_BITS' was not declared in this scope
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/util/stacktrace_somap.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/mongo/util/stacktrace_somap.cpp b/src/mongo/util/stacktrace_somap.cpp
+index f7ba66a142..2231948ce8 100644
+--- a/src/mongo/util/stacktrace_somap.cpp
++++ b/src/mongo/util/stacktrace_somap.cpp
+@@ -83,7 +83,7 @@ void addUnameToSoMap(BSONObjBuilder* soMap) {
+ #define ARCH_BITS __ELF_NATIVE_CLASS
+ #elif defined(__x86_64__) || defined(__aarch64__)
+ #define ARCH_BITS 64
+-#elif defined(__arm__)
++#elif defined(__i386__) || defined(__arm__)
+ #define ARCH_BITS 32
+ #else
+ #error Unknown target architecture.
+--
+2.28.0
+
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
new file mode 100644
index 0000000000..57f4168f5a
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
@@ -0,0 +1,36 @@
+From 28f34191eef1e70c24d2f81b66e4dd40dbefcd35 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 2 Sep 2017 12:42:30 -0700
+Subject: [PATCH 04/10] Add a definition for the macro __ELF_NATIVE_CLASS
+
+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>
+---
+ src/mongo/util/stacktrace_posix.cpp | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/src/mongo/util/stacktrace_posix.cpp b/src/mongo/util/stacktrace_posix.cpp
+index 531e21bdc2..fa611499e4 100644
+--- a/src/mongo/util/stacktrace_posix.cpp
++++ b/src/mongo/util/stacktrace_posix.cpp
+@@ -42,6 +42,15 @@
+ #include <iostream>
+ #include <string>
+
++#if !defined(__GLIBC__)
++#if defined __x86_64__ && !defined __ILP32__
++# define __WORDSIZE 64
++#else
++# define __WORDSIZE 32
++#endif
++#define __ELF_NATIVE_CLASS __WORDSIZE
++#endif
++
+ #include "mongo/base/init.h"
+ #include "mongo/bson/json.h"
+ #include "mongo/config.h"
+--
+2.24.0
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch
new file mode 100644
index 0000000000..59066b2600
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0002-Fix-default-stack-size-to-256K.patch
@@ -0,0 +1,39 @@
+From ffe6045b190b735601cd209d3e7ac121604c5a4e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 24 Aug 2018 13:07:01 -0700
+Subject: [PATCH 08/10] Fix default stack size to 256K
+
+On musl default stack size is ~80K which is too low
+for mongodb
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/mongo/platform/stack_locator_pthread_getattr_np.cpp | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/mongo/platform/stack_locator_pthread_getattr_np.cpp b/src/mongo/platform/stack_locator_pthread_getattr_np.cpp
+index 4f3044c..68e47e3 100644
+--- a/src/mongo/platform/stack_locator_pthread_getattr_np.cpp
++++ b/src/mongo/platform/stack_locator_pthread_getattr_np.cpp
+@@ -36,6 +36,16 @@
+ #include "mongo/util/assert_util.h"
+ #include "mongo/util/scopeguard.h"
+
++__attribute__((constructor))
++static void set_default_stack_size(void)
++{
++ pthread_attr_t attr;
++ invariant(pthread_attr_init(&attr) == 0);
++ invariant(pthread_attr_setstacksize(&attr, 256*1024) == 0);
++ pthread_setattr_default_np(&attr);
++ invariant(pthread_attr_destroy(&attr) == 0);
++}
++
+ namespace mongo {
+
+ StackLocator::StackLocator() {
+--
+2.7.4
+
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
new file mode 100644
index 0000000000..910ef0b5f4
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/0003-Fix-unknown-prefix-env.patch
@@ -0,0 +1,19 @@
+Index: git/SConstruct
+===================================================================
+--- git.orig/SConstruct
++++ git/SConstruct
+@@ -977,6 +977,14 @@ env_vars.Add('WINDOWS_OPENSSL_BIN',
+ help='Sets the path to the openssl binaries for packaging',
+ default='c:/openssl/bin')
+
++env_vars.Add('PREFIX',
++ help='installation prefix')
++
++env_vars.Add('prefix',
++ help='installation prefix')
++
++
++
+ # -- Validate user provided options --
+
+ # A dummy environment that should *only* have the variables we have set. In practice it has
diff --git a/meta-oe/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 e871f2ba90..2cea9bc31f 100644
--- a/meta-oe/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
@@ -1,7 +1,7 @@
-From a1c77702926eb8546ff96b00b5b994f7478dabae Mon Sep 17 00:00:00 2001
+From cc95a8878fa581b164dee8fb1f07b05b9d919ef0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Sep 2017 13:13:15 -0700
-Subject: [PATCH 4/4] wiredtiger: Disable strtouq on musl
+Subject: [PATCH 09/10] wiredtiger: Disable strtouq on musl
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
@@ -9,10 +9,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
-index 1122e1e319..fdfd48687b 100644
+index 82e9994..0399a67 100644
--- a/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
+++ b/src/third_party/wiredtiger/build_linux/wiredtiger_config.h
-@@ -101,7 +101,7 @@
+@@ -104,7 +104,7 @@
#define HAVE_STRING_H 1
/* Define to 1 if you have the `strtouq' function. */
@@ -22,5 +22,5 @@ index 1122e1e319..fdfd48687b 100644
/* Define to 1 if you have the `sync_file_range' function. */
/* #undef HAVE_SYNC_FILE_RANGE */
--
-2.14.1
+2.7.4
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
new file mode 100644
index 0000000000..e4ae30776b
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/1296.patch
@@ -0,0 +1,56 @@
+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
+Subject: [PATCH] ssl_manager.cpp: fix build with gcc 7 and -fpermissive
+
+Change prototype of DERToken::parse function from
+parse(ConstDataRange cdr, size_t* outLength);
+to parse(ConstDataRange cdr, uint64_t* outLength);
+
+Otherwise, we got the following error:
+
+src/mongo/util/net/ssl_manager.cpp: In static member function 'static mongo::StatusWith<mongo::{anonymous}::DERToken> mongo::{anonymous}::DERToken::parse(mongo::ConstDataRange, size_t*)':
+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) ||
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Signed-off-by: Vincent Prince <vincent.prince.fr@gmail.com>
+---
+ src/mongo/util/net/ssl_manager.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/mongo/util/net/ssl_manager.cpp b/src/mongo/util/net/ssl_manager.cpp
+index 455a1662a5..e8497bc0d1 100644
+--- a/src/mongo/util/net/ssl_manager.cpp
++++ b/src/mongo/util/net/ssl_manager.cpp
+@@ -810,7 +810,7 @@ public:
+ *
+ * Returns a DERToken which consists of the (tag, length, value) tuple.
+ */
+- static StatusWith<DERToken> parse(ConstDataRange cdr, size_t* outLength);
++ static StatusWith<DERToken> parse(ConstDataRange cdr, uint64_t* outLength);
+
+ private:
+ DERType _type{DERType::EndOfContent};
+@@ -827,7 +827,7 @@ struct DataType::Handler<DERToken> {
+ size_t length,
+ size_t* advanced,
+ std::ptrdiff_t debug_offset) {
+- size_t outLength;
++ uint64_t outLength;
+
+ auto swPair = DERToken::parse(ConstDataRange(ptr, length), &outLength);
+
+@@ -889,7 +889,7 @@ StatusWith<DERInteger> readDERInt(ConstDataRangeCursor& cdc) {
+ }
+
+
+-StatusWith<DERToken> DERToken::parse(ConstDataRange cdr, size_t* outLength) {
++StatusWith<DERToken> DERToken::parse(ConstDataRange cdr, uint64_t* outLength) {
+ const size_t kTagLength = 1;
+ const size_t kTagLengthAndInitialLengthByteLength = kTagLength + 1;
+
+--
+2.24.0
+
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
new file mode 100644
index 0000000000..f08177d7b4
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/PTHREAD_STACK_MIN.patch
@@ -0,0 +1,19 @@
+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
new file mode 100644
index 0000000000..1a7bf0fc52
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/arm64-support.patch
@@ -0,0 +1,54 @@
+From 298d958148f1fb2bb7725fed15c68c09677c14c9 Mon Sep 17 00:00:00 2001
+From: Vincent Prince <vincent.prince.fr@gmail.com>
+Date: Mon, 16 Sep 2019 13:37:10 +0200
+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>
+---
+ SConstruct | 1 +
+ src/third_party/IntelRDFPMathLib20U1/SConscript | 2 +-
+ src/third_party/wiredtiger/SConscript | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/SConstruct b/SConstruct
+index 448939bdd0..abfd816f3e 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1228,6 +1228,7 @@ if endian == "auto":
+ processor_macros = {
+ 'arm' : { 'endian': 'little', 'defines': ('__arm__',) },
+ 'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
++ 'arm64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
+ 'i386' : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')},
+ 'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)},
+ 's390x' : { 'endian': 'big', 'defines': ('__s390x__',)},
+diff --git a/src/third_party/IntelRDFPMathLib20U1/SConscript b/src/third_party/IntelRDFPMathLib20U1/SConscript
+index 58e1b7ba65..bffe83b462 100644
+--- a/src/third_party/IntelRDFPMathLib20U1/SConscript
++++ b/src/third_party/IntelRDFPMathLib20U1/SConscript
+@@ -309,7 +309,7 @@ if processor == 'i386' or processor == 'emscripten':
+ elif processor == 'arm':
+ cpp_defines['IA32'] = '1'
+ cpp_defines['ia32'] = '1'
+-elif processor == "aarch64":
++elif processor == "aarch64" or processor == 'arm64':
+ cpp_defines['efi2'] = '1'
+ cpp_defines['EFI2'] = '1'
+ # Using 64 bit little endian
+diff --git a/src/third_party/wiredtiger/SConscript b/src/third_party/wiredtiger/SConscript
+index d6bd665e23..2f1e656a19 100644
+--- a/src/third_party/wiredtiger/SConscript
++++ b/src/third_party/wiredtiger/SConscript
+@@ -152,7 +152,7 @@ condition_map = {
+ 'POSIX_HOST' : not env.TargetOSIs('windows'),
+ 'WINDOWS_HOST' : env.TargetOSIs('windows'),
+
+- 'ARM64_HOST' : env['TARGET_ARCH'] == 'aarch64',
++ 'ARM64_HOST' : env['TARGET_ARCH'] in ('aarch64', 'arm64'),
+ 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le',
+ 'X86_HOST' : env['TARGET_ARCH'] == 'x86_64',
+ 'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x',
+--
+2.24.0
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/disable_runtime_check.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/disable_runtime_check.patch
new file mode 100644
index 0000000000..78ebba8fb7
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/disable_runtime_check.patch
@@ -0,0 +1,17 @@
+Lets use cached result for this otherwise runtime test, on qemuppc64
+when this test is run using gcc11, it returns 1, since we dont worry
+about older compilers here, we can cache the result and use it here
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/SConstruct
++++ b/SConstruct
+@@ -3904,7 +3904,7 @@ def doConfigure(myenv):
+
+ conf.AddTest('CheckAltivecVbpermqOutput', CheckAltivecVbpermqOutput)
+
+- outputIndex = next((idx for idx in [0,1] if conf.CheckAltivecVbpermqOutput(idx)), None)
++ outputIndex = 1
+ if outputIndex is not None:
+ conf.env.SetConfigHeaderDefine("MONGO_CONFIG_ALTIVEC_VEC_VBPERMQ_OUTPUT_INDEX", outputIndex)
+ else:
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/ppc64_ARCH_BITS.patch b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/ppc64_ARCH_BITS.patch
new file mode 100644
index 0000000000..471d5629a1
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb/ppc64_ARCH_BITS.patch
@@ -0,0 +1,18 @@
+Subject: [PATCH] stacktrace: Define ARCH_BITS for ppc64
+
+src/mongo/util/stacktrace_somap.cpp:89:2: error: #error Unknown target architecture.
+stacktrace_somap.cpp:92:33: error: 'ELFCLASSARCH_BITS' was not declared in this scope
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/mongo/util/stacktrace_somap.cpp
++++ b/src/mongo/util/stacktrace_somap.cpp
+@@ -81,7 +81,7 @@ void addUnameToSoMap(BSONObjBuilder* soM
+
+ #if defined(__ELF_NATIVE_CLASS) // determine ARCH_BITS
+ #define ARCH_BITS __ELF_NATIVE_CLASS
+-#elif defined(__x86_64__) || defined(__aarch64__)
++#elif defined(__x86_64__) || defined(__aarch64__) || defined(__powerpc64__)
+ #define ARCH_BITS 64
+ #elif defined(__i386__) || defined(__arm__)
+ #define ARCH_BITS 32
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
new file mode 100644
index 0000000000..0ce58b13c4
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-dbs/mongodb/mongodb_git.bb
@@ -0,0 +1,144 @@
+SUMMARY = "mongodb"
+LICENSE = "SSPL-1 & Apache-2.0 & Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE-Community.txt;md5=3a865f27f11f43ecbe542d9ea387dcf1 \
+ file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+DEPENDS = "openssl libpcap zlib boost curl python3 \
+ python3-setuptools-native \
+ python3-pyyaml-native python3-cheetah-native \
+ python3-psutil-native python3-regex-native \
+ "
+
+inherit scons dos2unix siteinfo python3native systemd useradd
+
+PV = "4.4.19"
+#v4.4.18
+SRCREV = "9a996e0ad993148b9650dc402e6d3b1804ad3b8a"
+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 \
+ file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
+ file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \
+ file://arm64-support.patch \
+ file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
+ file://0001-Support-deprecated-resolver-functions.patch \
+ file://0003-Fix-unknown-prefix-env.patch \
+ file://1296.patch \
+ file://0001-Fix-compilation-with-fno-common.patch \
+ file://0001-stacktrace-Define-ARCH_BITS-for-x86.patch \
+ 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 \
+ "
+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 = "\
+ file://0001-asio-Dont-use-experimental-with-clang.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+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'
+
+PACKAGECONFIG ??= "tcmalloc system-pcre"
+# gperftools compilation fails for arm below v7 because of missing support of
+# dmb operation. So we use system-allocator instead of tcmalloc
+PACKAGECONFIG:remove:armv6 = "tcmalloc"
+PACKAGECONFIG:remove:libc-musl = "tcmalloc"
+PACKAGECONFIG:remove:riscv64 = "tcmalloc"
+PACKAGECONFIG:remove:riscv32 = "tcmalloc"
+
+PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools,"
+PACKAGECONFIG[shell] = ",--js-engine=none,,"
+PACKAGECONFIG[system-pcre] = "--use-system-pcre,,libpcre,"
+
+MONGO_ARCH ?= "${HOST_ARCH}"
+MONGO_ARCH:powerpc64le = "ppc64le"
+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}' \
+ TARGET_ARCH=${MONGO_ARCH} \
+ MONGO_VERSION=${PV} \
+ OBJCOPY=${OBJCOPY} \
+ --ssl \
+ --disable-warnings-as-errors \
+ --use-system-zlib \
+ --nostrip \
+ --endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
+ --wiredtiger='${WIREDTIGER}' \
+ --separate-debug \
+ ${PACKAGECONFIG_CONFARGS}"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --no-create-home --home-dir /var/run/${BPN} --shell /bin/false --user-group ${BPN}"
+
+scons_do_compile() {
+ ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} install-core ||
+ die "scons build execution failed."
+}
+
+scons_do_install() {
+ # install binaries
+ install -d ${D}${bindir}
+ for i in mongod mongos mongo; do
+ if [ -f ${B}/build/*/mongo/$i ]; then
+ install -m 0755 ${B}/build/*/mongo/$i ${D}${bindir}
+ else
+ bbnote "$i does not exist"
+ fi
+ done
+
+ # install config
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${S}/debian/mongod.conf ${D}${sysconfdir}
+
+ # install systemd service
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${S}/debian/mongod.service ${D}${systemd_system_unitdir}
+
+ # install mongo data folder
+ install -m 755 -d ${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
+ install -d ${D}${nonarch_libdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/${BPN} 0755 ${BPN} ${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 ${BPN} ${BPN} 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+ fi
+}
+
+CONFFILES:${PN} = "${sysconfdir}/mongod.conf"
+
+SYSTEMD_SERVICE:${PN} = "mongod.service"
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb/0001-CMakeLists.txt-allow-to-set-PYTHON_INSTDIR-from-outs.patch b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb/0001-CMakeLists.txt-allow-to-set-PYTHON_INSTDIR-from-outs.patch
new file mode 100644
index 0000000000..474f0f1584
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb/0001-CMakeLists.txt-allow-to-set-PYTHON_INSTDIR-from-outs.patch
@@ -0,0 +1,67 @@
+From 30c79d1b49839a15c05a0d0ca7e54787cd7988c6 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Thu, 4 May 2023 07:17:57 +0000
+Subject: [PATCH] CMakeLists.txt: allow to set PYTHON_INSTDIR from outside
+
+CMakeLists.txt used:
+
+find_package(Python REQUIRED COMPONENTS Interpreter)
+execute_process(
+ COMMAND ${Python_EXECUTABLE} -c
+ "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
+ OUTPUT_VARIABLE PYTHON_INSTDIR
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+)
+
+but with python3native this returns:
+
+nanopb/0.4.7-r0/git $ ../recipe-sysroot-native/usr/bin/python3-native/python3 -c "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
+lib/python3.11/site-packages
+
+which doesn't respect target libdir which might be lib64 with multilib and with python3targetconfig
+it also doesn't work right because of the long relative path:
+
+nanopb/0.4.7-r0/build $ ../recipe-sysroot-native/usr/bin/python3-native/python3 -c "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
+../../../../../../../../../../../../usr/lib64/python3.11/site-packages
+
+CMake Error at cmake_install.cmake:46 (file):
+ file cannot create directory:
+ /OE/lge/build/starfish/nanbield/BUILD/work/o22-starfish-linux/nanopb/0.4.7-r0/image/usr/../../../../../../../../../../../../usr/lib64/python3.11/site-packages/proto.
+ Maybe need administrative privileges.
+
+Let CMake variable to be passed from the recipe to avoid this as we're already using
+${D}${PYTHON_SITEPACKAGES_DIR} in do_install:append anyway.
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Pending
+---
+ CMakeLists.txt | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8d241c5..7d3f993 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,13 +39,15 @@ if(NOT DEFINED CMAKE_INSTALL_CMAKEDIR)
+ set(CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/nanopb")
+ endif()
+
+-find_package(Python REQUIRED COMPONENTS Interpreter)
+-execute_process(
+- COMMAND ${Python_EXECUTABLE} -c
+- "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
+- OUTPUT_VARIABLE PYTHON_INSTDIR
+- OUTPUT_STRIP_TRAILING_WHITESPACE
+-)
++if(NOT DEFINED PYTHON_INSTDIR)
++ find_package(Python REQUIRED COMPONENTS Interpreter)
++ execute_process(
++ COMMAND ${Python_EXECUTABLE} -c
++ "import os.path, sys, sysconfig; print(os.path.relpath(sysconfig.get_path('purelib'), start=sys.prefix))"
++ OUTPUT_VARIABLE PYTHON_INSTDIR
++ OUTPUT_STRIP_TRAILING_WHITESPACE
++ )
++endif()
+
+ if(nanopb_BUILD_GENERATOR)
+ set(generator_protos nanopb)
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.7.bb b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.7.bb
new file mode 100644
index 0000000000..9ad558146c
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-devtools/nanopb/nanopb_0.4.7.bb
@@ -0,0 +1,33 @@
+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 \
+ file://0001-CMakeLists.txt-allow-to-set-PYTHON_INSTDIR-from-outs.patch \
+"
+SRCREV = "b97aa657a706d3ba4a9a6ccca7043c9d6fe41cba"
+
+S = "${WORKDIR}/git"
+
+inherit cmake python3native
+
+EXTRA_OECMAKE += "-DPYTHON_INSTDIR=${PYTHON_SITEPACKAGES_DIR}"
+
+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_git.bb b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
new file mode 100644
index 0000000000..4cae4947f2
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-extended/lcdproc/lcdproc_git.bb
@@ -0,0 +1,101 @@
+DESCRIPTION = "LCDproc is a client/server suite to drive all kinds of LCD (-like) devices. The client \
+shipped with this package can be used to acquire various kinds of system stats."
+SUMMARY = "Drivers for character-based LCD displays"
+HOMEPAGE = "http://lcdproc.org"
+SECTION = "utils"
+LICENSE = "GPL-2.0-or-later"
+DEPENDS = "ncurses lirc"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760 \
+ file://README.md;beginline=107;md5=5db392f043253a2d64b1737068ce6b58"
+
+PV = "0.5.9+git${SRCPV}"
+SRCREV = "0e2ce9b9c46c47363436f9ee730f7c71bf455f0f"
+SRC_URI = "git://github.com/lcdproc/lcdproc;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig update-rc.d
+
+LCD_DRIVERS ?= "all,!irman,!svga${SERIALVFD}"
+SERIALVFD ?= ""
+SERIALVFD:libc-musl = ",!serialVFD"
+SERIALVFD:libc-musl:x86 = ""
+SERIALVFD:libc-musl:x86-64 = ""
+
+LCD_DEFAULT_DRIVER ?= "curses"
+
+PACKAGECONFIG ??= "usb"
+PACKAGECONFIG[usb] = "--enable-libusb,--disable-libusb,virtual/libusb0"
+PACKAGECONFIG[ftdi] = "--enable-libftdi,--disable-libftdi,libftdi"
+PACKAGECONFIG[g15] = ",,libg15 g15daemon libg15render,"
+PACKAGECONFIG[hid] = "--enable-libhid,--disable-libhid,libhid"
+PACKAGECONFIG[png] = "--enable-libpng,--disable-libpng,libpng"
+
+LCD_DRIVERS:append = "${@bb.utils.contains('PACKAGECONFIG', 'g15', '', ',!g15', d)}"
+
+EXTRA_OECONF = "--enable-drivers='${LCD_DRIVERS}'"
+
+do_install () {
+ # binaries
+ install -D -m 0755 server/LCDd ${D}${sbindir}/LCDd
+ install -D -m 0755 clients/lcdproc/lcdproc ${D}${bindir}/lcdproc
+
+ # init scripts
+ install -d ${D}${sysconfdir}/init.d
+ # so far, not fixed :-( and now even uglier :-((
+ cat scripts/init-LCDd.debian | sed -e s'/--oknodo//' -e 's/ -s -f / -s 1 -f 1 /' -e 's/force-reload/force-restart/' -e 's/sleep 1/sleep 4/' > ${D}${sysconfdir}/init.d/lcdd
+ chmod 0755 ${D}${sysconfdir}/init.d/lcdd
+ install -m 0755 scripts/init-lcdproc.debian ${D}${sysconfdir}/init.d/lcdproc
+ sed -i s'/--oknodo//' ${D}${sysconfdir}/init.d/lcdproc
+
+ # configuration files
+ install -m 0644 ${S}/LCDd.conf ${D}${sysconfdir}/LCDd.conf
+ sed -i 's!^DriverPath=.*!DriverPath=${libdir}/lcdproc/!' ${D}${sysconfdir}/LCDd.conf
+ sed -i 's!^Driver=.*!Driver=${LCD_DEFAULT_DRIVER}!' ${D}${sysconfdir}/LCDd.conf
+ install -m 0644 ${S}/clients/lcdproc/lcdproc.conf ${D}${sysconfdir}/lcdproc.conf
+
+ # driver library files
+ install -d ${D}${libdir}/lcdproc
+ for i in server/drivers/*.so; do
+ install -m 0644 $i ${D}${libdir}/lcdproc/
+ done
+ # binaries
+ install -D -m 0755 clients/lcdvc/lcdvc ${D}${sbindir}/lcdvc
+
+ # configuration files
+ install -D -m 0644 ${S}/clients/lcdvc/lcdvc.conf ${D}${sysconfdir}/lcdvc.conf
+}
+
+PACKAGES =+ "lcdd lcdvc"
+
+RRECOMMENDS:${PN} = "lcdd"
+
+FILES:lcdd = "${sysconfdir}/LCDd.conf \
+ ${sbindir}/LCDd \
+ ${sysconfdir}/init.d/lcdd"
+
+CONFFILES:lcdd = "${sysconfdir}/LCDd.conf"
+CONFFILES:${PN} = "${sysconfdir}/lcdproc.conf"
+CONFFILES:lcdvc = "${sysconfdir}/lcdvc.conf"
+FILES:lcdvc = "${sysconfdir}/lcdvc.conf ${sbindir}/lcdvc"
+
+# Driver packages
+
+# USB / no USB trickery
+
+RCONFLICTS:lcdd-driver-hd47780nousb = "lcdd-driver-hd44780"
+RCONFLICTS:lcdd-driver-hd47780 = "lcdd-driver-hd44780nousb"
+
+INITSCRIPT_PACKAGES = "lcdd lcdproc"
+INITSCRIPT_NAME:lcdd = "lcdd"
+INITSCRIPT_NAME:lcdproc = "lcdproc"
+INITSCRIPT_PARAMS:lcdd = "defaults 70 21"
+INITSCRIPT_PARAMS:lcdproc = "defaults 71 20"
+
+python populate_packages:prepend() {
+ plugindir = d.expand('${libdir}/lcdproc')
+ do_split_packages(d, plugindir, r'(.*)\.so$', 'lcdd-driver-%s', 'LCDd driver for %s', prepend=True)
+}
+
+PACKAGES_DYNAMIC += "^lcdd-driver-.*"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-support/nvmetcli/nvmetcli_0.7.bb b/meta-oe/dynamic-layers/meta-python/recipes-support/nvmetcli/nvmetcli_0.7.bb
new file mode 100644
index 0000000000..ec483321b6
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-support/nvmetcli/nvmetcli_0.7.bb
@@ -0,0 +1,39 @@
+SUMMARY = "NVM-Express target user space configuration utility."
+DESCRIPTION = "This package contains the command line interface to the NVMe \
+over Fabrics nvmet in the Linux kernel. It allows configuring the nvmet \
+interactively as well as saving / restoring the configuration to / from a json \
+file."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1dece7821bf3fd70fe1309eaa37d52a2"
+
+inherit systemd setuptools3
+
+# nvmet service will start and stop the NVMe Target configuration on boot and
+# shutdown from a saved NVMe Target configuration in the /etc/nvmet/config.json
+# file. This file is not installed by default since the configuration will vary
+# on real systems. Example configuration files are provided by including the
+# nvmetcli-examples package.
+SYSTEMD_SERVICE:${PN} = "nvmet.service"
+
+SYSTEMD_AUTO_ENABLE ?= "disable"
+
+RDEPENDS:${PN} += "python3 python3-six python3-pyparsing python3-configshell-fb"
+
+SRCREV = "0a6b088db2dc2e5de11e6f23f1e890e4b54fee64"
+SRC_URI = "git://git.infradead.org/users/hch/nvmetcli.git;branch=master"
+
+S = "${WORKDIR}/git"
+
+do_install:append() {
+ # Install example configuration scripts.
+ install -d ${D}${datadir}/nvmet
+ cp -fr ${S}/examples ${D}${datadir}/nvmet/
+
+ # Install systemd service file.
+ install -d ${D}${systemd_unitdir}/system
+ cp -fr ${S}/nvmet.service ${D}${systemd_unitdir}/system
+}
+
+# Examples package contains example json files used to configure nvmet.
+PACKAGES += "${PN}-examples"
+FILES:${PN}-examples = "${datadir}/nvmet/examples/*"
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch b/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch
new file mode 100644
index 0000000000..5c1be5a0a2
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem/0001-smem-fix-support-for-source-option-python3.patch
@@ -0,0 +1,53 @@
+From 3ff78f1f00973393d1a7ee4e467a2bacf1c807f3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Wed, 5 Feb 2020 16:14:21 +0000
+Subject: [PATCH] smem: fix support for --source option (python3)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Using --source doesn't work without this patch:
+Traceback (most recent call last):
+ File "./smem", line 727, in <module>
+ showpids()
+ File "./smem", line 299, in showpids
+ showtable(pt.keys(), fields, columns.split(), options.sort or 'pss')
+ File "./smem", line 519, in showtable
+ mt = totalmem()
+ File "./smem", line 118, in totalmem
+ _totalmem = memory()['memtotal']
+ File "./smem", line 193, in memory
+ m = f.match(l)
+TypeError: cannot use a string pattern on a bytes-like object
+
+python3's tarfile returns bytes, whereas all of the rest of
+the code assumes str.
+
+Fix the tarfile usage to convert to str before returning the
+results.
+
+Signed-off-by: André Draszik <git@andred.net>
+Upstream-Status: Inappropriate [upstream wants to support python2 & python3]
+---
+ smem | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/smem b/smem
+index 46a3189..54d40dd 100755
+--- a/smem
++++ b/smem
+@@ -90,9 +90,9 @@ class tardata(procdata):
+ d,f = ti.name.split('/')
+ yield d
+ def _read(self, f):
+- return self.tar.extractfile(f).read()
++ return self.tar.extractfile(f).read().decode()
+ def _readlines(self, f):
+- return self.tar.extractfile(f).readlines()
++ return [l.decode() for l in self.tar.extractfile(f).readlines()]
+ def piduser(self, p):
+ t = self.tar.getmember("%d" % p)
+ if t.uname:
+--
+2.23.0.rc1
+
diff --git a/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb b/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb
new file mode 100644
index 0000000000..9f85532064
--- /dev/null
+++ b/meta-oe/dynamic-layers/meta-python/recipes-support/smem/smem_1.5.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Report application memory usage in a meaningful way"
+DESCRIPTION = "smem is a tool that can give numerous reports on memory usage on Linux \
+systems. Unlike existing tools, smem can report proportional set size (PSS), \
+which is a more meaningful representation of the amount of memory used by \
+libraries and applications in a virtual memory system."
+HOMEPAGE = "http://www.selenic.com/smem/"
+SECTION = "Applications/System"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+HG_CHANGESET = "98273ce331bb"
+SRC_URI = "https://selenic.com/repo/${BPN}/archive/${HG_CHANGESET}.tar.bz2;downloadfilename=${BP}.tar.bz2 \
+ file://0001-smem-fix-support-for-source-option-python3.patch"
+SRC_URI[md5sum] = "51c3989779360f42b42ef46b2831be3a"
+SRC_URI[sha256sum] = "161131c686a6d9962a0e96912526dd46308e022d62e3f8acaed5a56fda8e08ce"
+
+UPSTREAM_CHECK_URI = "https://selenic.com/repo/smem/tags"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/${BPN}-${HG_CHANGESET}"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap
+}
+
+do_install() {
+ install -d ${D}/${bindir}/
+ install -d ${D}/${mandir}/man8
+ install -m 0755 ${S}/smem ${D}${bindir}/
+ sed -i -e '1s,#!.*python.*,#!${USRBINPATH}/env python3,' ${D}${bindir}/smem
+ install -m 0755 ${S}/smemcap ${D}${bindir}/
+ install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/
+}
+
+RDEPENDS:${PN} = "python3-core python3-compression"
+RRECOMMENDS:${PN} = "python3-matplotlib python3-numpy"
+
+PACKAGE_BEFORE_PN = "smemcap"
+
+FILES:smemcap = "${bindir}/smemcap"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/dynamic-layers/networking-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend b/meta-oe/dynamic-layers/networking-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
new file mode 100644
index 0000000000..b71b7e4f8a
--- /dev/null
+++ b/meta-oe/dynamic-layers/networking-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -0,0 +1,2 @@
+RDEPENDS:packagegroup-meta-oe-support:append:x86 = "${@bb.utils.contains('BBFILE_COLLECTIONS', 'filesystems-layer', ' open-vm-tools', '', d)}"
+RDEPENDS:packagegroup-meta-oe-support:append:x86-64 = "${@bb.utils.contains('BBFILE_COLLECTIONS', 'filesystems-layer', ' open-vm-tools', '', d)}"
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
new file mode 100644
index 0000000000..8cb8d22a2d
--- /dev/null
+++ b/meta-oe/dynamic-layers/perl-layer/recipes-core/packagegroups/packagegroup-meta-oe.bbappend
@@ -0,0 +1 @@
+RDEPENDS:packagegroup-meta-oe-support += "debsums rasdaemon"
diff --git a/meta-oe/recipes-support/debsums/debsums_2.2.2.bb b/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb
index 13f20eb944..252db1994e 100644
--- a/meta-oe/recipes-support/debsums/debsums_2.2.2.bb
+++ b/meta-oe/dynamic-layers/perl-layer/recipes-support/debsums/debsums_2.2.2.bb
@@ -1,13 +1,13 @@
SUMMARY = "Miscellaneous utilities specific to Debian"
-SUMMARY_${PN}-cron = "Cron scripts to control automatic debsum checking"
+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 \
+DESCRIPTION:${PN}-cron = "Cron scripts to control automatic system integrity \
checking via debsums."
SECTION = "base"
-LICENSE = "GPLv2"
+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"
@@ -20,6 +20,8 @@ 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}
@@ -42,7 +44,7 @@ do_install() {
PACKAGES =+ "${PN}-cron"
-RDEPENDS_${PN} = "dpkg dpkg-perl libfile-fnmatch-perl perl \
+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 \
@@ -51,4 +53,4 @@ RDEPENDS_${PN} = "dpkg dpkg-perl libfile-fnmatch-perl perl \
perl-module-file-temp perl-module-getopt-long \
perl-module-posix"
-FILES_${PN}-cron = "${sysconfdir}/cron.*"
+FILES:${PN}-cron = "${sysconfdir}/cron.*"
diff --git a/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/init b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/init
new file mode 100644
index 0000000000..216677e73e
--- /dev/null
+++ b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/init
@@ -0,0 +1,43 @@
+#! /bin/sh
+# /etc/init.d/rasdaemon: start rasdaemon service
+
+. /etc/init.d/functions
+
+# Defaults
+PIDFILE=/var/run/rasdaemon.pid
+BINFILE=/usr/sbin/rasdaemon
+SCRIPTNAME=/etc/init.d/rasdaemon
+
+[ -x $BINFILE ] || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting RASdaemon services: "
+ if [ ! -f "$PIDFILE" ]; then
+ start-stop-daemon --start --quiet --exec $BINFILE -- --enable &> /dev/null
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $BINFILE -- --record
+ pidof $BINFILE > $PIDFILE
+ fi
+ [ -f $PIDFILE ] && echo "done." || echo "fail."
+ ;;
+ stop)
+ echo -n "Stopping RASdaemon services: "
+ if [ -f "$PIDFILE" ] ; then
+ start-stop-daemon --stop --quiet --pidfile $PIDFILE --exec $BINFILE -- --disable &> /dev/null
+ killproc $BINFILE
+ rm $PIDFILE
+ fi
+ [ ! -f $PIDFILE ] && echo "done." || echo "fail."
+ ;;
+ restart)
+ $0 stop
+ sleep 1
+ $0 start
+ ;;
+ status)
+ status $BINFILE
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|status}"
+ exit 1
+esac
diff --git a/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/rasdaemon.service b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/rasdaemon.service
new file mode 100644
index 0000000000..4fbf23142a
--- /dev/null
+++ b/meta-oe/dynamic-layers/perl-layer/recipes-support/rasdaemon/files/rasdaemon.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=RAS daemon to log the RAS events
+After=syslog.target
+
+[Service]
+ExecStart=/usr/sbin/rasdaemon -f -r
+ExecStartPost=/usr/sbin/rasdaemon --enable
+ExecStop=/usr/sbin/rasdaemon --disable
+Restart=on-abort
+
+[Install]
+WantedBy=multi-user.target
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..dcf27d805e
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/0001-Fixes-for-yocto-build.patch
@@ -0,0 +1,162 @@
+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>
+
+---
+ 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..2b95ad2b0a
--- /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,366 @@
+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>
+
+---
+ 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,3 +1,4 @@
++include rules_yocto.mk
+ include /usr/share/dpkg/architecture.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
+@@ -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..7ea040c68a
--- /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,126 @@
+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>
+
+---
+ 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..83fe4475c3
--- /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,48 @@
+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>
+
+---
+ 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..3fbdcd4bac
--- /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,23 @@
+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>
+
+---
+ 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..4669f89d07
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Add-riscv64-support.patch
@@ -0,0 +1,651 @@
+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
+---
+ 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..c07e93660f
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Added-missing-headers.patch
@@ -0,0 +1,44 @@
+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..8d1408a48e
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Nonnull.patch
@@ -0,0 +1,20 @@
+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..b32d5f6f54
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/Vector-cast.patch
@@ -0,0 +1,14 @@
+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..49d3ecefbb
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/add-missing-headers.patch
@@ -0,0 +1,41 @@
+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..b926eddcdf
--- /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,13 @@
+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..ce1d4e52eb
--- /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,26 @@
+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..600471f126
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/external/libunwind/user_pt_regs.patch
@@ -0,0 +1,24 @@
+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..e0b4275579
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-attribute-issue-with-gcc.patch
@@ -0,0 +1,17 @@
+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..98a5078244
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-build-on-non-x86.patch
@@ -0,0 +1,24 @@
+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..7fd228bff6
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-gettid-exception-declaration.patch
@@ -0,0 +1,24 @@
+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..e41a3576ae
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/fix-standard-namespace-errors.patch
@@ -0,0 +1,22 @@
+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..2a332eb689
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/hard-code-build-number.patch
@@ -0,0 +1,44 @@
+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..1663aae465
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/libusb-header-path.patch
@@ -0,0 +1,16 @@
+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..006564b024
--- /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,18 @@
+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..e6933ef145
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/simg_dump-python3.patch
@@ -0,0 +1,62 @@
+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
+
+---
+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..ea3711dfa2
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stdatomic.patch
@@ -0,0 +1,64 @@
+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..d2426a781d
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/stub-out-fastdeploy.patch
@@ -0,0 +1,93 @@
+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..4669f89d07
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Add-riscv64-support.patch
@@ -0,0 +1,651 @@
+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
+---
+ 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..c07e93660f
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Added-missing-headers.patch
@@ -0,0 +1,44 @@
+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..8d1408a48e
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Nonnull.patch
@@ -0,0 +1,20 @@
+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..b32d5f6f54
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/Vector-cast.patch
@@ -0,0 +1,14 @@
+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..49d3ecefbb
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/add-missing-headers.patch
@@ -0,0 +1,41 @@
+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..e0b4275579
--- /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,17 @@
+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..98a5078244
--- /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,24 @@
+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..7fd228bff6
--- /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,24 @@
+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..e41a3576ae
--- /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,22 @@
+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..2a332eb689
--- /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,44 @@
+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..1663aae465
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/libusb-header-path.patch
@@ -0,0 +1,16 @@
+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..006564b024
--- /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,18 @@
+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..e6933ef145
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/simg_dump-python3.patch
@@ -0,0 +1,62 @@
+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
+
+---
+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..ea3711dfa2
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stdatomic.patch
@@ -0,0 +1,64 @@
+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..d2426a781d
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/system/core/stub-out-fastdeploy.patch
@@ -0,0 +1,93 @@
+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..6b07f17bfc
--- /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,16 @@
+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..6b07f17bfc
--- /dev/null
+++ b/meta-oe/dynamic-layers/selinux/recipes-devtool/android-tools/android-tools/debian/throw-exception-on-unknown-os.patch
@@ -0,0 +1,16 @@
+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..caf55ed6d8
--- /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;nobranch=1 \
+"
+
+# 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/lib/oeqa/selftest/cases/meta_oe_sources.py b/meta-oe/lib/oeqa/selftest/cases/meta_oe_sources.py
new file mode 100644
index 0000000000..c5a9a27946
--- /dev/null
+++ b/meta-oe/lib/oeqa/selftest/cases/meta_oe_sources.py
@@ -0,0 +1,31 @@
+import os
+import re
+import glob as g
+import shutil
+import tempfile
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars
+
+
+class MetaOESourceMirroring(OESelftestTestCase):
+ # Can we download everything from the OpenEmbedded Sources Mirror over http only
+ def test_oe_source_mirror(self):
+ self.write_config("""
+BB_ALLOWED_NETWORKS = " sources.openembedded.org"
+MIRRORS = ""
+DL_DIR = "${TMPDIR}/test_oe_downloads"
+PREMIRRORS = "\\
+ bzr://.*/.* http://sources.openembedded.org/ \\n \\
+ cvs://.*/.* http://sources.openembedded.org/ \\n \\
+ git://.*/.* http://sources.openembedded.org/ \\n \\
+ gitsm://.*/.* http://sources.openembedded.org/ \\n \\
+ hg://.*/.* http://sources.openembedded.org/ \\n \\
+ osc://.*/.* http://sources.openembedded.org/ \\n \\
+ p4://.*/.* http://sources.openembedded.org/ \\n \\
+ svn://.*/.* http://sources.openembedded.org/ \\n \\
+ ftp://.*/.* http://sources.openembedded.org/ \\n \\
+ http://.*/.* http://sources.openembedded.org/ \\n \\
+ https://.*/.* http://sources.openembedded.org/ \\n"
+ """)
+
+ bitbake("world --runall fetch")
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/licenses/ACE-TAO-CIAO b/meta-oe/licenses/ACE-TAO-CIAO
new file mode 100644
index 0000000000..67fc56322e
--- /dev/null
+++ b/meta-oe/licenses/ACE-TAO-CIAO
@@ -0,0 +1,111 @@
+
+ _________________________________________________________________
+
+ Copyright and Licensing Information for ACE(TM), TAO(TM), CIAO(TM),
+ DAnCE(TM), and CoSMIC(TM)
+
+ [1]ACE(TM), [2]TAO(TM), [3]CIAO(TM), DAnCE(TM), and [4]CoSMIC(TM)
+ (henceforth referred to as "DOC software") are copyrighted by
+ [5]Douglas C. Schmidt and his [6]research group at [7]Washington
+ University, [8]University of California, Irvine, and [9]Vanderbilt
+ University, Copyright (c) 1993-2018, all rights reserved. Since DOC
+ software is open-source, freely available software, you are free to
+ use, modify, copy, and distribute--perpetually and irrevocably--the
+ DOC software source code and object code produced from the source, as
+ well as copy and distribute modified versions of this software. You
+ must, however, include this copyright statement along with any code
+ built using DOC software that you release. No copyright statement
+ needs to be provided if you just ship binary executables of your
+ software products.
+
+ You can use DOC software in commercial and/or binary software releases
+ and are under no obligation to redistribute any of your source code
+ that is built using DOC software. Note, however, that you may not
+ misappropriate the DOC software code, such as copyrighting it yourself
+ or claiming authorship of the DOC software code, in a way that will
+ prevent DOC software from being distributed freely using an
+ open-source development model. You needn't inform anyone that you're
+ using DOC software in your software, though we encourage you to let
+ [10]us know so we can promote your project in the [11]DOC software
+ success stories.
+
+ The [12]ACE, [13]TAO, [14]CIAO, [15]DAnCE, and [16]CoSMIC web sites
+ are maintained by the [17]DOC Group at the [18]Institute for Software
+ Integrated Systems (ISIS) and the [19]Center for Distributed Object
+ Computing of Washington University, St. Louis for the development of
+ open-source software as part of the open-source software community.
+ Submissions are provided by the submitter ``as is'' with no warranties
+ whatsoever, including any warranty of merchantability, noninfringement
+ of third party intellectual property, or fitness for any particular
+ purpose. In no event shall the submitter be liable for any direct,
+ indirect, special, exemplary, punitive, or consequential damages,
+ including without limitation, lost profits, even if advised of the
+ possibility of such damages. Likewise, DOC software is provided as is
+ with no warranties of any kind, including the warranties of design,
+ merchantability, and fitness for a particular purpose,
+ noninfringement, or arising from a course of dealing, usage or trade
+ practice. Washington University, UC Irvine, Vanderbilt University,
+ their employees, and students shall have no liability with respect to
+ the infringement of copyrights, trade secrets or any patents by DOC
+ software or any part thereof. Moreover, in no event will Washington
+ University, UC Irvine, or Vanderbilt University, their employees, or
+ students be liable for any lost revenue or profits or other special,
+ indirect and consequential damages.
+
+ DOC software is provided with no support and without any obligation on
+ the part of Washington University, UC Irvine, Vanderbilt University,
+ their employees, or students to assist in its use, correction,
+ modification, or enhancement. A [20]number of companies around the
+ world provide commercial support for DOC software, however. DOC
+ software is Y2K-compliant, as long as the underlying OS platform is
+ Y2K-compliant. Likewise, DOC software is compliant with the new US
+ daylight savings rule passed by Congress as "The Energy Policy Act of
+ 2005," which established new daylight savings times (DST) rules for
+ the United States that expand DST as of March 2007. Since DOC software
+ obtains time/date and calendaring information from operating systems
+ users will not be affected by the new DST rules as long as they
+ upgrade their operating systems accordingly.
+
+ The names ACE(TM), TAO(TM), CIAO(TM), DAnCE(TM), CoSMIC(TM),
+ Washington University, UC Irvine, and Vanderbilt University, may not
+ be used to endorse or promote products or services derived from this
+ source without express written permission from Washington University,
+ UC Irvine, or Vanderbilt University. This license grants no permission
+ to call products or services derived from this source ACE(TM),
+ TAO(TM), CIAO(TM), DAnCE(TM), or CoSMIC(TM), nor does it grant
+ permission for the name Washington University, UC Irvine, or
+ Vanderbilt University to appear in their names.
+
+ If you have any suggestions, additions, comments, or questions, please
+ let [21]me know.
+
+ [22]Douglas C. Schmidt
+ _________________________________________________________________
+
+ Back to the [23]ACE home page.
+
+References
+
+ 1. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
+ 2. http://www.dre.vanderbilt.edu/~schmidt/TAO.html
+ 3. http://www.dre.vanderbilt.edu/CIAO/
+ 4. http://www.dre.vanderbilt.edu/cosmic/
+ 5. http://www.dre.vanderbilt.edu/~schmidt/
+ 6. http://www.dre.vanderbilt.edu/~schmidt/ACE-members.html
+ 7. http://www.wustl.edu/
+ 8. http://www.uci.edu/
+ 9. http://www.vanderbilt.edu/
+ 10. mailto:doc_group@cs.wustl.edu
+ 11. http://www.dre.vanderbilt.edu/~schmidt/ACE-users.html
+ 12. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
+ 13. http://www.dre.vanderbilt.edu/~schmidt/TAO.html
+ 14. http://www.dre.vanderbilt.edu/CIAO/
+ 15. http://www.dre.vanderbilt.edu/~schmidt/DOC_ROOT/DAnCE/
+ 16. http://www.dre.vanderbilt.edu/cosmic/
+ 17. http://www.dre.vanderbilt.edu/
+ 18. http://www.isis.vanderbilt.edu/
+ 19. http://www.cs.wustl.edu/~schmidt/doc-center.html
+ 20. http://www.dre.vanderbilt.edu/~schmidt/commercial-support.html
+ 21. mailto:d.schmidt@vanderbilt.edu
+ 22. http://www.dre.vanderbilt.edu/~schmidt/
+ 23. http://www.dre.vanderbilt.edu/~schmidt/ACE.html
diff --git a/meta-oe/licenses/Arphic-Public-License b/meta-oe/licenses/Arphic-Public-License
new file mode 100644
index 0000000000..c1aba41d3f
--- /dev/null
+++ b/meta-oe/licenses/Arphic-Public-License
@@ -0,0 +1,58 @@
+ARPHIC PUBLIC LICENSE
+
+Copyright (C) 1999 Arphic Technology Co., Ltd.
+11Fl. No.168, Yung Chi Rd., Taipei, 110 Taiwan
+All rights reserved except as specified below.
+
+Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is forbidden.
+
+Preamble
+
+ The licenses for most software are designed to take away your freedom to share and change it. By contrast, the ARPHIC PUBLIC LICENSE specifically permits and encourages you to use this software, provided that you give the recipients all the rights that we gave you and make sure they can get the modifications of this software.
+
+Legal Terms
+
+0. Definitions:
+ Throughout this License, "Font" means the TrueType fonts "AR PL Mingti2L Big5", "AR PL KaitiM Big5" (BIG-5 character set) and "AR PL SungtiL GB", "AR PL KaitiM GB" (GB character set) which are originally distributed by Arphic, and the derivatives of those fonts created through any modification including modifying glyph, reordering glyph, converting format, changing font name, or adding/deleting some characters in/from glyph table.
+
+ "PL" means "Public License".
+
+ "Copyright Holder" means whoever is named in the copyright or copyrights for the Font.
+
+ "You" means the licensee, or person copying, redistributing or modifying the Font.
+
+ "Freely Available" means that you have the freedom to copy or modify the Font as well as redistribute copies of the Font under the same conditions you received, not price. If you wish, you can charge for this service.
+
+1. Copying & Distribution
+ You may copy and distribute verbatim copies of this Font in any medium, without restriction, provided that you retain this license file (ARPHICPL.TXT) unaltered in all copies.
+
+2. Modification
+ You may otherwise modify your copy of this Font in any way, including modifying glyph, reordering glyph, converting format, changing font name, or adding/deleting some characters in/from glyph table, and copy and distribute such modifications under the terms of Section 1 above, provided that the following conditions are met:
+
+ a) You must insert a prominent notice in each modified file stating how and when you changed that file.
+
+ b) You must make such modifications Freely Available as a whole to all third parties under the terms of this License, such as by offering access to copy the modifications from a designated place, or distributing the modifications on a medium customarily used for software interchange.
+
+ c) If the modified fonts normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the Font under these conditions, and telling the user how to view a copy of this License.
+
+ These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Font, and can be reasonably considered independent and separate works in themselves, then this License and its terms, do not apply to those sections when you distribute them as separate works. Therefore, mere aggregation of another work not based on the Font with the Font on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
+
+3. Condition Subsequent
+ You may not copy, modify, sublicense, or distribute the Font except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Font will automatically retroactively void your rights under this License. However, parties who have received copies or rights from you under this License will keep their licenses valid so long as such parties remain in full compliance.
+
+4. Acceptance
+ You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to copy, modify, sublicense or distribute the Font. These actions are prohibited by law if you do not accept this License. Therefore, by copying, modifying, sublicensing or distributing the Font, you indicate your acceptance of this License and all its terms and conditions.
+
+5. Automatic Receipt
+ Each time you redistribute the Font, the recipient automatically receives a license from the original licensor to copy, distribute or modify the Font subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
+
+6. Contradiction
+ If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Font at all. For example, if a patent license would not permit royalty-free redistribution of the Font by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Font.
+
+ If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
+
+7. NO WARRANTY
+ BECAUSE THE FONT IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE FONT, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS OR OTHER PARTIES PROVIDE THE FONT "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE FONT IS WITH YOU. SHOULD THE FONT PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+8. DAMAGES WAIVER
+ UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, IN NO EVENT WILL ANY COPYRIGHTT HOLDERS, OR OTHER PARTIES WHO MAY COPY, MODIFY OR REDISTRIBUTE THE FONT AS PERMITTED ABOVE, BE LIABLE TO YOU FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, INCIDENTAL, SPECIAL OR EXEMPLARY DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE FONT (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; OR BUSINESS INTERRUPTION), EVEN IF SUCH HOLDERS OR OTHER PARTIES HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
diff --git a/meta-oe/licenses/Bellcore b/meta-oe/licenses/Bellcore
new file mode 100644
index 0000000000..6bbbf94e6f
--- /dev/null
+++ b/meta-oe/licenses/Bellcore
@@ -0,0 +1,13 @@
+Copyright: (c) 1991 Bell Communications Research, Inc. (Bellcore)
+License: Bellcore
+ Permission to use, copy, modify, and distribute this material
+ for any purpose and without fee is hereby granted, provided
+ that the above copyright notice and this permission notice
+ appear in all copies, and that the name of Bellcore not be
+ used in advertising or publicity pertaining to this
+ material without the specific, prior written permission
+ of an authorized representative of Bellcore. BELLCORE
+ MAKES NO REPRESENTATIONS ABOUT THE ACCURACY OR SUITABILITY
+ OF THIS MATERIAL FOR ANY PURPOSE. IT IS PROVIDED "AS IS",
+ WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES.
+
diff --git a/meta-oe/licenses/HDF5 b/meta-oe/licenses/HDF5
new file mode 100644
index 0000000000..10481dd107
--- /dev/null
+++ b/meta-oe/licenses/HDF5
@@ -0,0 +1,92 @@
+Copyright Notice and License Terms for
+HDF5 (Hierarchical Data Format 5) Software Library and Utilities
+-----------------------------------------------------------------------------
+
+HDF5 (Hierarchical Data Format 5) Software Library and Utilities
+Copyright (c) 2006-2018, The HDF Group.
+
+NCSA HDF5 (Hierarchical Data Format 5) Software Library and Utilities
+Copyright (c) 1998-2006, The Board of Trustees of the University of Illinois.
+
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted for any purpose (including commercial purposes)
+provided that the following conditions are met:
+
+1. Redistributions of source code must retain the above copyright notice,
+ this list of conditions, and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright notice,
+ this list of conditions, and the following disclaimer in the documentation
+ and/or materials provided with the distribution.
+
+3. Neither the name of The HDF Group, the name of the University, nor the
+ name of any Contributor may be used to endorse or promote products derived
+ from this software without specific prior written permission from
+ The HDF Group, the University, or the Contributor, respectively.
+
+DISCLAIMER:
+THIS SOFTWARE IS PROVIDED BY THE HDF GROUP AND THE CONTRIBUTORS
+"AS IS" WITH NO WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED. IN NO EVENT SHALL THE HDF GROUP OR THE CONTRIBUTORS BE LIABLE FOR ANY DAMAGES SUFFERED BY THE USERS ARISING OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+You are under no obligation whatsoever to provide any bug fixes, patches, or upgrades to the features, functionality or performance of the source code ("Enhancements") to anyone; however, if you choose to make your Enhancements available either publicly, or directly to The HDF Group, without imposing a separate written license agreement for such Enhancements, then you hereby grant the following license: a non-exclusive, royalty-free perpetual license to install, use, modify, prepare derivative works, incorporate into other computer software, distribute, and sublicense such enhancements or derivative works thereof, in binary and source code form.
+
+-----------------------------------------------------------------------------
+-----------------------------------------------------------------------------
+
+Limited portions of HDF5 were developed by Lawrence Berkeley National
+Laboratory (LBNL). LBNL's Copyright Notice and Licensing Terms can be
+found here: COPYING_LBNL_HDF5 file in this directory or at
+http://support.hdfgroup.org/ftp/HDF5/releases/COPYING_LBNL_HDF5.
+
+-----------------------------------------------------------------------------
+-----------------------------------------------------------------------------
+
+Contributors: National Center for Supercomputing Applications (NCSA) at
+the University of Illinois, Fortner Software, Unidata Program Center (netCDF), The Independent JPEG Group (JPEG), Jean-loup Gailly and Mark Adler (gzip), and Digital Equipment Corporation (DEC).
+
+-----------------------------------------------------------------------------
+
+Portions of HDF5 were developed with support from the Lawrence Berkeley
+National Laboratory (LBNL) and the United States Department of Energy
+under Prime Contract No. DE-AC02-05CH11231.
+
+-----------------------------------------------------------------------------
+
+Portions of HDF5 were developed with support from the University of
+California, Lawrence Livermore National Laboratory (UC LLNL).
+The following statement applies to those portions of the product and must
+be retained in any redistribution of source code, binaries, documentation,
+and/or accompanying materials:
+
+ This work was partially produced at the University of California,
+ Lawrence Livermore National Laboratory (UC LLNL) under contract
+ no. W-7405-ENG-48 (Contract 48) between the U.S. Department of Energy
+ (DOE) and The Regents of the University of California (University)
+ for the operation of UC LLNL.
+
+ DISCLAIMER:
+ This work was prepared as an account of work sponsored by an agency of
+ the United States Government. Neither the United States Government nor
+ the University of California nor any of their employees, makes any
+ warranty, express or implied, or assumes any liability or responsibility
+ for the accuracy, completeness, or usefulness of any information,
+ apparatus, product, or process disclosed, or represents that its use
+ would not infringe privately- owned rights. Reference herein to any
+ specific commercial products, process, or service by trade name,
+ trademark, manufacturer, or otherwise, does not necessarily constitute
+ or imply its endorsement, recommendation, or favoring by the United
+ States Government or the University of California. The views and
+ opinions of authors expressed herein do not necessarily state or reflect
+ those of the United States Government or the University of California,
+ and shall not be used for advertising or product endorsement purposes.
+
+-----------------------------------------------------------------------------
+
+HDF5 is available with the SZIP compression library but SZIP is not part
+of HDF5 and has separate copyright and license terms. See SZIP Compression
+in HDF Products (www.hdfgroup.org/doc_resource/SZIP/) for further details.
+
+-----------------------------------------------------------------------------
+
diff --git a/meta-oe/licenses/Khronos b/meta-oe/licenses/Khronos
new file mode 100644
index 0000000000..7afedf6cf9
--- /dev/null
+++ b/meta-oe/licenses/Khronos
@@ -0,0 +1,35 @@
+Copyright (c) 2016 The Khronos Group Inc.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software source and associated documentation files (the "Materials"),
+to deal in the Materials without restriction, including without limitation
+the rights to use, copy, modify, compile, merge, publish, distribute,
+sublicense, and/or sell copies of the Materials, and to permit persons to
+whom the Materials are furnished to do so, subject the following terms and
+conditions:
+
+All modifications to the Materials used to create a binary that is
+distributed to third parties shall be provided to Khronos with an
+unrestricted license to use for the purposes of implementing bug fixes and
+enhancements to the Materials;
+
+If the binary is used as part of an OpenCL(TM) implementation, whether binary
+is distributed together with or separately to that implementation, then
+recipient must become an OpenCL Adopter and follow the published OpenCL
+conformance process for that implementation, details at:
+http://www.khronos.org/conformance/;
+
+The above copyright notice, the OpenCL trademark license, and this permission
+notice shall be included in all copies or substantial portions of the
+Materials.
+
+THE MATERIALS ARE 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 MATERIALS OR THE USE OR OTHER DEALINGS IN
+THE MATERIALS.
+
+OpenCL is a trademark of Apple Inc. used under license by Khronos.
+
diff --git a/meta-oe/licenses/MINPACK b/meta-oe/licenses/MINPACK
new file mode 100644
index 0000000000..132cc3f33f
--- /dev/null
+++ b/meta-oe/licenses/MINPACK
@@ -0,0 +1,51 @@
+Minpack Copyright Notice (1999) University of Chicago. All rights reserved
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the
+following conditions are met:
+
+1. Redistributions of source code must retain the above
+copyright notice, this list of conditions and the following
+disclaimer.
+
+2. 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.
+
+3. The end-user documentation included with the
+redistribution, if any, must include the following
+acknowledgment:
+
+ "This product includes software developed by the
+ University of Chicago, as Operator of Argonne National
+ Laboratory.
+
+Alternately, this acknowledgment may appear in the software
+itself, if and wherever such third-party acknowledgments
+normally appear.
+
+4. WARRANTY DISCLAIMER. THE SOFTWARE IS SUPPLIED "AS IS"
+WITHOUT WARRANTY OF ANY KIND. THE COPYRIGHT HOLDER, THE
+UNITED STATES, THE UNITED STATES DEPARTMENT OF ENERGY, AND
+THEIR EMPLOYEES: (1) DISCLAIM ANY WARRANTIES, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED WARRANTIES
+OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE
+OR NON-INFRINGEMENT, (2) DO NOT ASSUME ANY LEGAL LIABILITY
+OR RESPONSIBILITY FOR THE ACCURACY, COMPLETENESS, OR
+USEFULNESS OF THE SOFTWARE, (3) DO NOT REPRESENT THAT USE OF
+THE SOFTWARE WOULD NOT INFRINGE PRIVATELY OWNED RIGHTS, (4)
+DO NOT WARRANT THAT THE SOFTWARE WILL FUNCTION
+UNINTERRUPTED, THAT IT IS ERROR-FREE OR THAT ANY ERRORS WILL
+BE CORRECTED.
+
+5. LIMITATION OF LIABILITY. IN NO EVENT WILL THE COPYRIGHT
+HOLDER, THE UNITED STATES, THE UNITED STATES DEPARTMENT OF
+ENERGY, OR THEIR EMPLOYEES: BE LIABLE FOR ANY INDIRECT,
+INCIDENTAL, CONSEQUENTIAL, SPECIAL OR PUNITIVE DAMAGES OF
+ANY KIND OR NATURE, INCLUDING BUT NOT LIMITED TO LOSS OF
+PROFITS OR LOSS OF DATA, FOR ANY REASON WHATSOEVER, WHETHER
+SUCH LIABILITY IS ASSERTED ON THE BASIS OF CONTRACT, TORT
+(INCLUDING NEGLIGENCE OR STRICT LIABILITY), OR OTHERWISE,
+EVEN IF ANY OF SAID PARTIES HAS BEEN WARNED OF THE
+POSSIBILITY OF SUCH LOSS OR DAMAGES.
diff --git a/meta-oe/licenses/OFL-1.0 b/meta-oe/licenses/OFL-1.0
new file mode 100644
index 0000000000..2a36aea25d
--- /dev/null
+++ b/meta-oe/licenses/OFL-1.0
@@ -0,0 +1,99 @@
+This Font Software is Copyright (c) 2003-2005, SIL International (http://scripts.sil.org/).
+All Rights Reserved.
+
+"Gentium" is a Reserved Font Name for this Font Software.
+"SIL" is a Reserved Font Name for this Font Software.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.0.
+No modification of the license is permitted, only verbatim copy is allowed.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.0 - 22 November 2005
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of cooperative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide an open
+framework in which fonts may be shared and improved in partnership with
+others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and sold with any software provided that the font
+names of derivative works are changed. The fonts and derivatives,
+however, cannot be released under any other type of license.
+
+DEFINITIONS
+"Font Software" refers to any and all of the following:
+ - font files
+ - data files
+ - source code
+ - build scripts
+ - documentation
+
+"Reserved Font Name" refers to the Font Software name as seen by
+users and any other names as specified after the copyright statement.
+
+"Standard Version" refers to the collection of Font Software
+components as distributed by the Copyright Holder.
+
+"Modified Version" refers to any derivative font software made by
+adding to, deleting, or substituting -- in part or in whole --
+any of the components of the Standard Version, by changing formats
+or by porting the Font Software to a new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Standard or Modified Versions, may be sold by itself.
+
+2) Standard or Modified Versions of the Font Software may be bundled,
+redistributed and sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s), in part or in whole, unless explicit written permission is
+granted by the Copyright Holder. This restriction applies to all
+references stored in the Font Software, such as the font menu name and
+other font description fields, which are used to differentiate the
+font from others.
+
+4) The name(s) of the Copyright Holder or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed using this license, and may not be distributed
+under any other license.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/meta-oe/licenses/SSPL-1 b/meta-oe/licenses/SSPL-1
new file mode 100644
index 0000000000..4e1383df1e
--- /dev/null
+++ b/meta-oe/licenses/SSPL-1
@@ -0,0 +1,557 @@
+ Server Side Public License
+ VERSION 1, OCTOBER 16, 2018
+
+ Copyright © 2018 MongoDB, Inc.
+
+ Everyone is permitted to copy and distribute verbatim copies of this
+ license document, but changing it is not allowed.
+
+ TERMS AND CONDITIONS
+
+ 0. Definitions.
+
+ “This License” refers to Server Side Public License.
+
+ “Copyright” also means copyright-like laws that apply to other kinds of
+ works, such as semiconductor masks.
+
+ “The Program” refers to any copyrightable work licensed under this
+ License. Each licensee is addressed as “you”. “Licensees” and
+ “recipients” may be individuals or organizations.
+
+ To “modify” a work means to copy from or adapt all or part of the work in
+ a fashion requiring copyright permission, other than the making of an
+ exact copy. The resulting work is called a “modified version” of the
+ earlier work or a work “based on” the earlier work.
+
+ A “covered work” means either the unmodified Program or a work based on
+ the Program.
+
+ To “propagate” a work means to do anything with it that, without
+ permission, would make you directly or secondarily liable for
+ infringement under applicable copyright law, except executing it on a
+ computer or modifying a private copy. Propagation includes copying,
+ distribution (with or without modification), making available to the
+ public, and in some countries other activities as well.
+
+ To “convey” a work means any kind of propagation that enables other
+ parties to make or receive copies. Mere interaction with a user through a
+ computer network, with no transfer of a copy, is not conveying.
+
+ An interactive user interface displays “Appropriate Legal Notices” to the
+ extent that it includes a convenient and prominently visible feature that
+ (1) displays an appropriate copyright notice, and (2) tells the user that
+ there is no warranty for the work (except to the extent that warranties
+ are provided), that licensees may convey the work under this License, and
+ how to view a copy of this License. If the interface presents a list of
+ user commands or options, such as a menu, a prominent item in the list
+ meets this criterion.
+
+ 1. Source Code.
+
+ The “source code” for a work means the preferred form of the work for
+ making modifications to it. “Object code” means any non-source form of a
+ work.
+
+ A “Standard Interface” means an interface that either is an official
+ standard defined by a recognized standards body, or, in the case of
+ interfaces specified for a particular programming language, one that is
+ widely used among developers working in that language. The “System
+ Libraries” of an executable work include anything, other than the work as
+ a whole, that (a) is included in the normal form of packaging a Major
+ Component, but which is not part of that Major Component, and (b) serves
+ only to enable use of the work with that Major Component, or to implement
+ a Standard Interface for which an implementation is available to the
+ public in source code form. A “Major Component”, in this context, means a
+ major essential component (kernel, window system, and so on) of the
+ specific operating system (if any) on which the executable work runs, or
+ a compiler used to produce the work, or an object code interpreter used
+ to run it.
+
+ The “Corresponding Source” for a work in object code form means all the
+ source code needed to generate, install, and (for an executable work) run
+ the object code and to modify the work, including scripts to control
+ those activities. However, it does not include the work's System
+ Libraries, or general-purpose tools or generally available free programs
+ which are used unmodified in performing those activities but which are
+ not part of the work. For example, Corresponding Source includes
+ interface definition files associated with source files for the work, and
+ the source code for shared libraries and dynamically linked subprograms
+ that the work is specifically designed to require, such as by intimate
+ data communication or control flow between those subprograms and other
+ parts of the work.
+
+ The Corresponding Source need not include anything that users can
+ regenerate automatically from other parts of the Corresponding Source.
+
+ The Corresponding Source for a work in source code form is that same work.
+
+ 2. Basic Permissions.
+
+ All rights granted under this License are granted for the term of
+ copyright on the Program, and are irrevocable provided the stated
+ conditions are met. This License explicitly affirms your unlimited
+ permission to run the unmodified Program, subject to section 13. The
+ output from running a covered work is covered by this License only if the
+ output, given its content, constitutes a covered work. This License
+ acknowledges your rights of fair use or other equivalent, as provided by
+ copyright law. Subject to section 13, you may make, run and propagate
+ covered works that you do not convey, without conditions so long as your
+ license otherwise remains in force. You may convey covered works to
+ others for the sole purpose of having them make modifications exclusively
+ for you, or provide you with facilities for running those works, provided
+ that you comply with the terms of this License in conveying all
+ material for which you do not control copyright. Those thus making or
+ running the covered works for you must do so exclusively on your
+ behalf, under your direction and control, on terms that prohibit them
+ from making any copies of your copyrighted material outside their
+ relationship with you.
+
+ Conveying under any other circumstances is permitted solely under the
+ conditions stated below. Sublicensing is not allowed; section 10 makes it
+ unnecessary.
+
+ 3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+ No covered work shall be deemed part of an effective technological
+ measure under any applicable law fulfilling obligations under article 11
+ of the WIPO copyright treaty adopted on 20 December 1996, or similar laws
+ prohibiting or restricting circumvention of such measures.
+
+ When you convey a covered work, you waive any legal power to forbid
+ circumvention of technological measures to the extent such circumvention is
+ effected by exercising rights under this License with respect to the
+ covered work, and you disclaim any intention to limit operation or
+ modification of the work as a means of enforcing, against the work's users,
+ your or third parties' legal rights to forbid circumvention of
+ technological measures.
+
+ 4. Conveying Verbatim Copies.
+
+ You may convey verbatim copies of the Program's source code as you
+ receive it, in any medium, provided that you conspicuously and
+ appropriately publish on each copy an appropriate copyright notice; keep
+ intact all notices stating that this License and any non-permissive terms
+ added in accord with section 7 apply to the code; keep intact all notices
+ of the absence of any warranty; and give all recipients a copy of this
+ License along with the Program. You may charge any price or no price for
+ each copy that you convey, and you may offer support or warranty
+ protection for a fee.
+
+ 5. Conveying Modified Source Versions.
+
+ You may convey a work based on the Program, or the modifications to
+ produce it from the Program, in the form of source code under the terms
+ of section 4, provided that you also meet all of these conditions:
+
+ a) The work must carry prominent notices stating that you modified it,
+ and giving a relevant date.
+
+ b) The work must carry prominent notices stating that it is released
+ under this License and any conditions added under section 7. This
+ requirement modifies the requirement in section 4 to “keep intact all
+ notices”.
+
+ c) You must license the entire work, as a whole, under this License to
+ anyone who comes into possession of a copy. This License will therefore
+ apply, along with any applicable section 7 additional terms, to the
+ whole of the work, and all its parts, regardless of how they are
+ packaged. This License gives no permission to license the work in any
+ other way, but it does not invalidate such permission if you have
+ separately received it.
+
+ d) If the work has interactive user interfaces, each must display
+ Appropriate Legal Notices; however, if the Program has interactive
+ interfaces that do not display Appropriate Legal Notices, your work
+ need not make them do so.
+
+ A compilation of a covered work with other separate and independent
+ works, which are not by their nature extensions of the covered work, and
+ which are not combined with it such as to form a larger program, in or on
+ a volume of a storage or distribution medium, is called an “aggregate” if
+ the compilation and its resulting copyright are not used to limit the
+ access or legal rights of the compilation's users beyond what the
+ individual works permit. Inclusion of a covered work in an aggregate does
+ not cause this License to apply to the other parts of the aggregate.
+
+ 6. Conveying Non-Source Forms.
+
+ You may convey a covered work in object code form under the terms of
+ sections 4 and 5, provided that you also convey the machine-readable
+ Corresponding Source under the terms of this License, in one of these
+ ways:
+
+ a) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by the
+ Corresponding Source fixed on a durable physical medium customarily
+ used for software interchange.
+
+ b) Convey the object code in, or embodied in, a physical product
+ (including a physical distribution medium), accompanied by a written
+ offer, valid for at least three years and valid for as long as you
+ offer spare parts or customer support for that product model, to give
+ anyone who possesses the object code either (1) a copy of the
+ Corresponding Source for all the software in the product that is
+ covered by this License, on a durable physical medium customarily used
+ for software interchange, for a price no more than your reasonable cost
+ of physically performing this conveying of source, or (2) access to
+ copy the Corresponding Source from a network server at no charge.
+
+ c) Convey individual copies of the object code with a copy of the
+ written offer to provide the Corresponding Source. This alternative is
+ allowed only occasionally and noncommercially, and only if you received
+ the object code with such an offer, in accord with subsection 6b.
+
+ d) Convey the object code by offering access from a designated place
+ (gratis or for a charge), and offer equivalent access to the
+ Corresponding Source in the same way through the same place at no
+ further charge. You need not require recipients to copy the
+ Corresponding Source along with the object code. If the place to copy
+ the object code is a network server, the Corresponding Source may be on
+ a different server (operated by you or a third party) that supports
+ equivalent copying facilities, provided you maintain clear directions
+ next to the object code saying where to find the Corresponding Source.
+ Regardless of what server hosts the Corresponding Source, you remain
+ obligated to ensure that it is available for as long as needed to
+ satisfy these requirements.
+
+ e) Convey the object code using peer-to-peer transmission, provided you
+ inform other peers where the object code and Corresponding Source of
+ the work are being offered to the general public at no charge under
+ subsection 6d.
+
+ A separable portion of the object code, whose source code is excluded
+ from the Corresponding Source as a System Library, need not be included
+ in conveying the object code work.
+
+ A “User Product” is either (1) a “consumer product”, which means any
+ tangible personal property which is normally used for personal, family,
+ or household purposes, or (2) anything designed or sold for incorporation
+ into a dwelling. In determining whether a product is a consumer product,
+ doubtful cases shall be resolved in favor of coverage. For a particular
+ product received by a particular user, “normally used” refers to a
+ typical or common use of that class of product, regardless of the status
+ of the particular user or of the way in which the particular user
+ actually uses, or expects or is expected to use, the product. A product
+ is a consumer product regardless of whether the product has substantial
+ commercial, industrial or non-consumer uses, unless such uses represent
+ the only significant mode of use of the product.
+
+ “Installation Information” for a User Product means any methods,
+ procedures, authorization keys, or other information required to install
+ and execute modified versions of a covered work in that User Product from
+ a modified version of its Corresponding Source. The information must
+ suffice to ensure that the continued functioning of the modified object
+ code is in no case prevented or interfered with solely because
+ modification has been made.
+
+ If you convey an object code work under this section in, or with, or
+ specifically for use in, a User Product, and the conveying occurs as part
+ of a transaction in which the right of possession and use of the User
+ Product is transferred to the recipient in perpetuity or for a fixed term
+ (regardless of how the transaction is characterized), the Corresponding
+ Source conveyed under this section must be accompanied by the
+ Installation Information. But this requirement does not apply if neither
+ you nor any third party retains the ability to install modified object
+ code on the User Product (for example, the work has been installed in
+ ROM).
+
+ The requirement to provide Installation Information does not include a
+ requirement to continue to provide support service, warranty, or updates
+ for a work that has been modified or installed by the recipient, or for
+ the User Product in which it has been modified or installed. Access
+ to a network may be denied when the modification itself materially
+ and adversely affects the operation of the network or violates the
+ rules and protocols for communication across the network.
+
+ Corresponding Source conveyed, and Installation Information provided, in
+ accord with this section must be in a format that is publicly documented
+ (and with an implementation available to the public in source code form),
+ and must require no special password or key for unpacking, reading or
+ copying.
+
+ 7. Additional Terms.
+
+ “Additional permissions” are terms that supplement the terms of this
+ License by making exceptions from one or more of its conditions.
+ Additional permissions that are applicable to the entire Program shall be
+ treated as though they were included in this License, to the extent that
+ they are valid under applicable law. If additional permissions apply only
+ to part of the Program, that part may be used separately under those
+ permissions, but the entire Program remains governed by this License
+ without regard to the additional permissions. When you convey a copy of
+ a covered work, you may at your option remove any additional permissions
+ from that copy, or from any part of it. (Additional permissions may be
+ written to require their own removal in certain cases when you modify the
+ work.) You may place additional permissions on material, added by you to
+ a covered work, for which you have or can give appropriate copyright
+ permission.
+
+ Notwithstanding any other provision of this License, for material you add
+ to a covered work, you may (if authorized by the copyright holders of
+ that material) supplement the terms of this License with terms:
+
+ a) Disclaiming warranty or limiting liability differently from the
+ terms of sections 15 and 16 of this License; or
+
+ b) Requiring preservation of specified reasonable legal notices or
+ author attributions in that material or in the Appropriate Legal
+ Notices displayed by works containing it; or
+
+ c) Prohibiting misrepresentation of the origin of that material, or
+ requiring that modified versions of such material be marked in
+ reasonable ways as different from the original version; or
+
+ d) Limiting the use for publicity purposes of names of licensors or
+ authors of the material; or
+
+ e) Declining to grant rights under trademark law for use of some trade
+ names, trademarks, or service marks; or
+
+ f) Requiring indemnification of licensors and authors of that material
+ by anyone who conveys the material (or modified versions of it) with
+ contractual assumptions of liability to the recipient, for any
+ liability that these contractual assumptions directly impose on those
+ licensors and authors.
+
+ All other non-permissive additional terms are considered “further
+ restrictions” within the meaning of section 10. If the Program as you
+ received it, or any part of it, contains a notice stating that it is
+ governed by this License along with a term that is a further restriction,
+ you may remove that term. If a license document contains a further
+ restriction but permits relicensing or conveying under this License, you
+ may add to a covered work material governed by the terms of that license
+ document, provided that the further restriction does not survive such
+ relicensing or conveying.
+
+ If you add terms to a covered work in accord with this section, you must
+ place, in the relevant source files, a statement of the additional terms
+ that apply to those files, or a notice indicating where to find the
+ applicable terms. Additional terms, permissive or non-permissive, may be
+ stated in the form of a separately written license, or stated as
+ exceptions; the above requirements apply either way.
+
+ 8. Termination.
+
+ You may not propagate or modify a covered work except as expressly
+ provided under this License. Any attempt otherwise to propagate or modify
+ it is void, and will automatically terminate your rights under this
+ License (including any patent licenses granted under the third paragraph
+ of section 11).
+
+ However, if you cease all violation of this License, then your license
+ from a particular copyright holder is reinstated (a) provisionally,
+ unless and until the copyright holder explicitly and finally terminates
+ your license, and (b) permanently, if the copyright holder fails to
+ notify you of the violation by some reasonable means prior to 60 days
+ after the cessation.
+
+ Moreover, your license from a particular copyright holder is reinstated
+ permanently if the copyright holder notifies you of the violation by some
+ reasonable means, this is the first time you have received notice of
+ violation of this License (for any work) from that copyright holder, and
+ you cure the violation prior to 30 days after your receipt of the notice.
+
+ Termination of your rights under this section does not terminate the
+ licenses of parties who have received copies or rights from you under
+ this License. If your rights have been terminated and not permanently
+ reinstated, you do not qualify to receive new licenses for the same
+ material under section 10.
+
+ 9. Acceptance Not Required for Having Copies.
+
+ You are not required to accept this License in order to receive or run a
+ copy of the Program. Ancillary propagation of a covered work occurring
+ solely as a consequence of using peer-to-peer transmission to receive a
+ copy likewise does not require acceptance. However, nothing other than
+ this License grants you permission to propagate or modify any covered
+ work. These actions infringe copyright if you do not accept this License.
+ Therefore, by modifying or propagating a covered work, you indicate your
+ acceptance of this License to do so.
+
+ 10. Automatic Licensing of Downstream Recipients.
+
+ Each time you convey a covered work, the recipient automatically receives
+ a license from the original licensors, to run, modify and propagate that
+ work, subject to this License. You are not responsible for enforcing
+ compliance by third parties with this License.
+
+ An “entity transaction” is a transaction transferring control of an
+ organization, or substantially all assets of one, or subdividing an
+ organization, or merging organizations. If propagation of a covered work
+ results from an entity transaction, each party to that transaction who
+ receives a copy of the work also receives whatever licenses to the work
+ the party's predecessor in interest had or could give under the previous
+ paragraph, plus a right to possession of the Corresponding Source of the
+ work from the predecessor in interest, if the predecessor has it or can
+ get it with reasonable efforts.
+
+ You may not impose any further restrictions on the exercise of the rights
+ granted or affirmed under this License. For example, you may not impose a
+ license fee, royalty, or other charge for exercise of rights granted
+ under this License, and you may not initiate litigation (including a
+ cross-claim or counterclaim in a lawsuit) alleging that any patent claim
+ is infringed by making, using, selling, offering for sale, or importing
+ the Program or any portion of it.
+
+ 11. Patents.
+
+ A “contributor” is a copyright holder who authorizes use under this
+ License of the Program or a work on which the Program is based. The work
+ thus licensed is called the contributor's “contributor version”.
+
+ A contributor's “essential patent claims” are all patent claims owned or
+ controlled by the contributor, whether already acquired or hereafter
+ acquired, that would be infringed by some manner, permitted by this
+ License, of making, using, or selling its contributor version, but do not
+ include claims that would be infringed only as a consequence of further
+ modification of the contributor version. For purposes of this definition,
+ “control” includes the right to grant patent sublicenses in a manner
+ consistent with the requirements of this License.
+
+ Each contributor grants you a non-exclusive, worldwide, royalty-free
+ patent license under the contributor's essential patent claims, to make,
+ use, sell, offer for sale, import and otherwise run, modify and propagate
+ the contents of its contributor version.
+
+ In the following three paragraphs, a “patent license” is any express
+ agreement or commitment, however denominated, not to enforce a patent
+ (such as an express permission to practice a patent or covenant not to
+ sue for patent infringement). To “grant” such a patent license to a party
+ means to make such an agreement or commitment not to enforce a patent
+ against the party.
+
+ If you convey a covered work, knowingly relying on a patent license, and
+ the Corresponding Source of the work is not available for anyone to copy,
+ free of charge and under the terms of this License, through a publicly
+ available network server or other readily accessible means, then you must
+ either (1) cause the Corresponding Source to be so available, or (2)
+ arrange to deprive yourself of the benefit of the patent license for this
+ particular work, or (3) arrange, in a manner consistent with the
+ requirements of this License, to extend the patent license to downstream
+ recipients. “Knowingly relying” means you have actual knowledge that, but
+ for the patent license, your conveying the covered work in a country, or
+ your recipient's use of the covered work in a country, would infringe
+ one or more identifiable patents in that country that you have reason
+ to believe are valid.
+
+ If, pursuant to or in connection with a single transaction or
+ arrangement, you convey, or propagate by procuring conveyance of, a
+ covered work, and grant a patent license to some of the parties receiving
+ the covered work authorizing them to use, propagate, modify or convey a
+ specific copy of the covered work, then the patent license you grant is
+ automatically extended to all recipients of the covered work and works
+ based on it.
+
+ A patent license is “discriminatory” if it does not include within the
+ scope of its coverage, prohibits the exercise of, or is conditioned on
+ the non-exercise of one or more of the rights that are specifically
+ granted under this License. You may not convey a covered work if you are
+ a party to an arrangement with a third party that is in the business of
+ distributing software, under which you make payment to the third party
+ based on the extent of your activity of conveying the work, and under
+ which the third party grants, to any of the parties who would receive the
+ covered work from you, a discriminatory patent license (a) in connection
+ with copies of the covered work conveyed by you (or copies made from
+ those copies), or (b) primarily for and in connection with specific
+ products or compilations that contain the covered work, unless you
+ entered into that arrangement, or that patent license was granted, prior
+ to 28 March 2007.
+
+ Nothing in this License shall be construed as excluding or limiting any
+ implied license or other defenses to infringement that may otherwise be
+ available to you under applicable patent law.
+
+ 12. No Surrender of Others' Freedom.
+
+ If conditions are imposed on you (whether by court order, agreement or
+ otherwise) that contradict the conditions of this License, they do not
+ excuse you from the conditions of this License. If you cannot use,
+ propagate or convey a covered work so as to satisfy simultaneously your
+ obligations under this License and any other pertinent obligations, then
+ as a consequence you may not use, propagate or convey it at all. For
+ example, if you agree to terms that obligate you to collect a royalty for
+ further conveying from those to whom you convey the Program, the only way
+ you could satisfy both those terms and this License would be to refrain
+ entirely from conveying the Program.
+
+ 13. Offering the Program as a Service.
+
+ If you make the functionality of the Program or a modified version
+ available to third parties as a service, you must make the Service Source
+ Code available via network download to everyone at no charge, under the
+ terms of this License. Making the functionality of the Program or
+ modified version available to third parties as a service includes,
+ without limitation, enabling third parties to interact with the
+ functionality of the Program or modified version remotely through a
+ computer network, offering a service the value of which entirely or
+ primarily derives from the value of the Program or modified version, or
+ offering a service that accomplishes for users the primary purpose of the
+ Program or modified version.
+
+ “Service Source Code” means the Corresponding Source for the Program or
+ the modified version, and the Corresponding Source for all programs that
+ you use to make the Program or modified version available as a service,
+ including, without limitation, management software, user interfaces,
+ application program interfaces, automation software, monitoring software,
+ backup software, storage software and hosting software, all such that a
+ user could run an instance of the service using the Service Source Code
+ you make available.
+
+ 14. Revised Versions of this License.
+
+ MongoDB, Inc. may publish revised and/or new versions of the Server Side
+ Public License from time to time. Such new versions will be similar in
+ spirit to the present version, but may differ in detail to address new
+ problems or concerns.
+
+ Each version is given a distinguishing version number. If the Program
+ specifies that a certain numbered version of the Server Side Public
+ License “or any later version” applies to it, you have the option of
+ following the terms and conditions either of that numbered version or of
+ any later version published by MongoDB, Inc. If the Program does not
+ specify a version number of the Server Side Public License, you may
+ choose any version ever published by MongoDB, Inc.
+
+ If the Program specifies that a proxy can decide which future versions of
+ the Server Side Public License can be used, that proxy's public statement
+ of acceptance of a version permanently authorizes you to choose that
+ version for the Program.
+
+ Later license versions may give you additional or different permissions.
+ However, no additional obligations are imposed on any author or copyright
+ holder as a result of your choosing to follow a later version.
+
+ 15. Disclaimer of Warranty.
+
+ THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+ APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+ HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY
+ OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+ THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+ IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. Limitation of Liability.
+
+ IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+ WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+ THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING
+ ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF
+ THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO
+ LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU
+ OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+ POSSIBILITY OF SUCH DAMAGES.
+
+ 17. Interpretation of Sections 15 and 16.
+
+ If the disclaimer of warranty and limitation of liability provided above
+ cannot be given local legal effect according to their terms, reviewing
+ courts shall apply local law that most closely approximates an absolute
+ waiver of all civil liability in connection with the Program, unless a
+ warranty or assumption of liability accompanies a copy of the Program in
+ return for a fee.
+
+ END OF TERMS AND CONDITIONS
diff --git a/meta-oe/licenses/rateconv b/meta-oe/licenses/rateconv
new file mode 100644
index 0000000000..a0f5683a05
--- /dev/null
+++ b/meta-oe/licenses/rateconv
@@ -0,0 +1,27 @@
+Authors: Markus Mummert
+
+Copyright (c) 1992, 1995 by Markus Mummert
+
+License:
+ Redistribution and use of this software, modifcation and inclusion
+ into other forms of software are permitted provided that the following
+ conditions are met:
+
+ 1. Redistributions of this software must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+ 2. If this software is redistributed in a modified condition
+ it must reveal clearly that it has been modified.
+
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+
diff --git a/meta-oe/licenses/read-edid b/meta-oe/licenses/read-edid
new file mode 100644
index 0000000000..2eb2c60cd6
--- /dev/null
+++ b/meta-oe/licenses/read-edid
@@ -0,0 +1,17 @@
+
+ * This is an unofficial license. Let's call it BSD-like, with these terms:
+ * * You are free to use this software for any purpose. I cannot guarantee
+ * anything about this software or its fitness for any purpose. I will
+ * offer support for this software as long as I am capable of doing so,
+ * but this should not be interpreted as a support contract of any kind.
+ *
+ * * You are free to modify, distribute, etc. this code under the strict
+ * condition that you email me, Matthew Kern <pyrophobicman@gmail.com>, a
+ * brief message on what you're doing. Nothing will be rejected, this is
+ * simply to keep tabs on my work, and maybe we can share ideas on EDIDs.
+ *
+ * * (C)opyright 2008-2014 Matthew Kern
+ *
+ * Please see AUTHORS for a list of the people who made this software
+ * possible. All of the current code is a rewrite of my own work, but
+ * I am still indebted to those guys for a ton of the ideas.
diff --git a/meta-oe/licenses/safec b/meta-oe/licenses/safec
new file mode 100644
index 0000000000..2bf1e6374c
--- /dev/null
+++ b/meta-oe/licenses/safec
@@ -0,0 +1,26 @@
+Safe C Library
+
+Copyright (C) 2012, 2013 Cisco Systems
+Copyright (C) 2017 Reini Urban
+All rights reserved.
+
+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.
diff --git a/meta-oe/licenses/ttf-mplus b/meta-oe/licenses/ttf-mplus
new file mode 100644
index 0000000000..c9cdca3fe6
--- /dev/null
+++ b/meta-oe/licenses/ttf-mplus
@@ -0,0 +1,16 @@
+M+ FONTS Copyright (C) 2002-2009 M+ FONTS PROJECT
+
+-
+
+LICENSE_E
+
+
+
+
+These fonts are free softwares.
+Unlimited permission is granted to use, copy, and distribute it, with
+or without modification, either commercially and noncommercially.
+THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.
+
+
+http://mplus-fonts.sourceforge.jp/mplus-outline-fonts/
diff --git a/meta-oe/licenses/vim b/meta-oe/licenses/vim
deleted file mode 100644
index 4aa818eb24..0000000000
--- a/meta-oe/licenses/vim
+++ /dev/null
@@ -1,81 +0,0 @@
-VIM LICENSE
-
-I) There are no restrictions on distributing unmodified copies of Vim except
- that they must include this license text. You can also distribute
- unmodified parts of Vim, likewise unrestricted except that they must
- include this license text. You are also allowed to include executables
- that you made from the unmodified Vim sources, plus your own usage
- examples and Vim scripts.
-
-II) It is allowed to distribute a modified (or extended) version of Vim,
- including executables and/or source code, when the following four
- conditions are met:
- 1) This license text must be included unmodified.
- 2) The modified Vim must be distributed in one of the following five ways:
- a) If you make changes to Vim yourself, you must clearly describe in
- the distribution how to contact you. When the maintainer asks you
- (in any way) for a copy of the modified Vim you distributed, you
- must make your changes, including source code, available to the
- maintainer without fee. The maintainer reserves the right to
- include your changes in the official version of Vim. What the
- maintainer will do with your changes and under what license they
- will be distributed is negotiable. If there has been no negotiation
- then this license, or a later version, also applies to your changes.
- The current maintainer is Bram Moolenaar <Bram@vim.org>. If this
- changes it will be announced in appropriate places (most likely
- vim.sf.net, www.vim.org and/or comp.editors). When it is completely
- impossible to contact the maintainer, the obligation to send him
- your changes ceases. Once the maintainer has confirmed that he has
- received your changes they will not have to be sent again.
- b) If you have received a modified Vim that was distributed as
- mentioned under a) you are allowed to further distribute it
- unmodified, as mentioned at I). If you make additional changes the
- text under a) applies to those changes.
- c) Provide all the changes, including source code, with every copy of
- the modified Vim you distribute. This may be done in the form of a
- context diff. You can choose what license to use for new code you
- add. The changes and their license must not restrict others from
- making their own changes to the official version of Vim.
- d) When you have a modified Vim which includes changes as mentioned
- under c), you can distribute it without the source code for the
- changes if the following three conditions are met:
- - The license that applies to the changes permits you to distribute
- the changes to the Vim maintainer without fee or restriction, and
- permits the Vim maintainer to include the changes in the official
- version of Vim without fee or restriction.
- - You keep the changes for at least three years after last
- distributing the corresponding modified Vim. When the maintainer
- or someone who you distributed the modified Vim to asks you (in
- any way) for the changes within this period, you must make them
- available to him.
- - You clearly describe in the distribution how to contact you. This
- contact information must remain valid for at least three years
- after last distributing the corresponding modified Vim, or as long
- as possible.
- e) When the GNU General Public License (GPL) applies to the changes,
- you can distribute the modified Vim under the GNU GPL version 2 or
- any later version.
- 3) A message must be added, at least in the output of the ":version"
- command and in the intro screen, such that the user of the modified Vim
- is able to see that it was modified. When distributing as mentioned
- under 2)e) adding the message is only required for as far as this does
- not conflict with the license used for the changes.
- 4) The contact information as required under 2)a) and 2)d) must not be
- removed or changed, except that the person himself can make
- corrections.
-
-III) If you distribute a modified version of Vim, you are encouraged to use
- the Vim license for your changes and make them available to the
- maintainer, including the source code. The preferred way to do this is
- by e-mail or by uploading the files to a server and e-mailing the URL.
- If the number of changes is small (e.g., a modified Makefile) e-mailing a
- context diff will do. The e-mail address to be used is
- <maintainer@vim.org>
-
-IV) It is not allowed to remove this license from the distribution of the Vim
- sources, parts of it or from a modified version. You may use this
- license for previous Vim releases instead of the license that they came
- with, at your option.
-
-===
-Read more about this license at http://vimdoc.sourceforge.net/htmldoc/uganda.html#license
diff --git a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb b/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb
deleted file mode 100644
index 8888b22678..0000000000
--- a/meta-oe/recipes-benchmark/analyze-suspend/analyze-suspend_git.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Analyze Suspend"
-DESCRIPTION = "analyze-suspend is a tool for system developers to visualize \
-the activity between suspend and resume, allowing them to identify \
-inefficiencies and bottlenecks."
-HOMEPAGE = "https://01.org/suspendresume"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
-
-# Apart from the listed RDEPENDS, analyze-suspend depends on some features
-# provided by the kernel. These options are:
-# - CONFIG_PM_DEBUG=y
-# - CONFIG_PM_SLEEP_DEBUG=y
-# - CONFIG_FTRACE=y
-# - CONFIG_FUNCTION_TRACER=y
-# - CONFIG_FUNCTION_GRAPH_TRACER=y
-
-RDEPENDS_${PN} += "python-core python-datetime python-stringold"
-
-PV = "3.2+gitr${SRCPV}"
-SRCREV = "c669e002a2e7504f21e277ad248fa81033926391"
-SRC_URI = "git://github.com/01org/suspendresume.git;protocol=https"
-S = "${WORKDIR}/git"
-
-do_install() {
- install -Dm 0755 analyze_suspend.py ${D}${bindir}/analyze_suspend.py
- install -Dm 0644 README ${D}${docdir}/analyze-suspend/README
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb b/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
deleted file mode 100644
index 2c1217e347..0000000000
--- a/meta-oe/recipes-benchmark/bonnie/bonnie++_1.03e.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Tests large file IO and creation/deletion of small files"
-HOMEPAGE = "http://www.coker.com.au/bonnie++/"
-SECTION = "benchmark/tests"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://copyright.txt;md5=cd4dde95a6b9d122f0a9150ae9cc3ee0"
-
-SRC_URI = "http://www.coker.com.au/bonnie++/${BPN}-${PV}.tgz \
- file://gcc-4.3-fixes.patch \
-"
-SRC_URI[md5sum] = "750aa5b5051263a99c6c195888c74968"
-SRC_URI[sha256sum] = "cb3866116634bf65760b6806be4afa7e24a1cad6f145c876df8721f01ba2e2cb"
-
-inherit autotools-brokensep
-
-SCRIPTS = "bon_csv2html bon_csv2txt"
-EXES = "bonnie++ zcav"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install () {
- install -d ${D}/${bindir}
- install -d ${D}/${sbindir}
- install -m 0755 ${EXES} ${D}/${sbindir}
- install -m 0755 ${SCRIPTS} ${D}/${bindir}
-}
-
-PACKAGES =+ "bonnie-scripts"
-
-FILES_${PN} = "${sbindir}"
-FILES_bonnie-scripts = "${bindir}"
-
-RDEPENDS_bonnie-scripts += "perl"
diff --git a/meta-oe/recipes-benchmark/bonnie/bonnie++_1.04.bb b/meta-oe/recipes-benchmark/bonnie/bonnie++_1.04.bb
new file mode 100644
index 0000000000..c305aadd02
--- /dev/null
+++ b/meta-oe/recipes-benchmark/bonnie/bonnie++_1.04.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Tests large file IO and creation/deletion of small files"
+HOMEPAGE = "http://www.coker.com.au/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 \
+"
+SRC_URI[md5sum] = "1414aab86e2db1b4691bd4be82031012"
+SRC_URI[sha256sum] = "507bd2ce5360c7c98b91b0fdc2bed5c9320b5c9699f7d4a3d1c86b256896c15e"
+
+inherit autotools-brokensep
+
+SCRIPTS = "bon_csv2html bon_csv2txt"
+EXES = "bonnie++ zcav"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+ install -d ${D}/${bindir}
+ install -d ${D}/${sbindir}
+ install -m 0755 ${EXES} ${D}/${sbindir}
+ install -m 0755 ${SCRIPTS} ${D}/${bindir}
+}
+
+PACKAGES =+ "bonnie-scripts"
+
+FILES:${PN} = "${sbindir}"
+FILES:bonnie-scripts = "${bindir}"
+
+RDEPENDS:bonnie-scripts += "perl"
diff --git a/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch b/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
deleted file mode 100644
index 67f1b74948..0000000000
--- a/meta-oe/recipes-benchmark/bonnie/files/gcc-4.3-fixes.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Includes string.h to one of the source file.
-
-Upstream-Status: Inappropriate [not author.]
----
- zcav.cpp | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: bonnie++-1.03a/zcav.cpp
-===================================================================
---- bonnie++-1.03a.orig/zcav.cpp
-+++ bonnie++-1.03a/zcav.cpp
-@@ -15,6 +15,7 @@ using namespace std;
- #else
- #include <vector.h>
- #endif
-+#include <string.h>
-
- // Read the specified number of megabytes of data from the fd and return the
- // amount of time elapsed in seconds.
diff --git a/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0001-cpuburn-a8.S-Remove-.func-.endfunc.patch b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0001-cpuburn-a8.S-Remove-.func-.endfunc.patch
new file mode 100644
index 0000000000..82f12fe811
--- /dev/null
+++ b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0001-cpuburn-a8.S-Remove-.func-.endfunc.patch
@@ -0,0 +1,69 @@
+From 064a63860bf9ee4bf54facb76ca66f9f957d4797 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Jan 2019 11:12:38 -0800
+Subject: [PATCH] cpuburn*.S: Remove .func/.endfunc
+
+These are needed to generate stabs debug info which we dont use
+and are silently ignored by gnu assembler when unused, clang assembler
+however barfs, so remove them
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ cpuburn-a7.S | 2 --
+ cpuburn-a8.S | 2 --
+ cpuburn-a9.S | 2 --
+ 3 files changed, 6 deletions(-)
+
+diff --git a/cpuburn-a7.S b/cpuburn-a7.S
+index 74e925a..c1e308c 100644
+--- a/cpuburn-a7.S
++++ b/cpuburn-a7.S
+@@ -42,7 +42,6 @@
+
+ .global main
+
+-.func main
+ .type main, %function
+ main:
+ push {r4-r12, lr}
+@@ -88,4 +87,3 @@ main:
+
+ mov r0, #0
+ pop {r4-r12, pc}
+-.endfunc
+diff --git a/cpuburn-a8.S b/cpuburn-a8.S
+index c6f93a6..a42f5a5 100644
+--- a/cpuburn-a8.S
++++ b/cpuburn-a8.S
+@@ -46,7 +46,6 @@
+ /* 16 seems to be a good choice */
+ #define STEP 16
+
+-.func main
+ .thumb_func
+ main:
+ mov lr, pc
+@@ -70,4 +69,3 @@ main:
+ subs lr, lr, #(STEP * 4)
+ .endr
+ bne 0b
+-.endfunc
+diff --git a/cpuburn-a9.S b/cpuburn-a9.S
+index 0338b00..a1ccae5 100644
+--- a/cpuburn-a9.S
++++ b/cpuburn-a9.S
+@@ -48,7 +48,6 @@
+ /* 64 seems to be a good choice */
+ #define STEP 64
+
+-.func main
+ .type main, %function
+ main:
+
+@@ -94,4 +93,3 @@ main:
+ subsne lr, lr, #(STEP * 4)
+ .endr
+ bne 0b
+-.endfunc
diff --git a/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0002-burn.S-Add.patch b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0002-burn.S-Add.patch
new file mode 100644
index 0000000000..eb68c9ce9b
--- /dev/null
+++ b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0002-burn.S-Add.patch
@@ -0,0 +1,47 @@
+From c2adcca93a0075665a8195caad49b89785886e8e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Jan 2019 12:02:22 -0800
+Subject: [PATCH] burn.S: Add
+
+This is originally from
+https://hardwarebug.org/files/burn.S
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ burn.S | 26 ++++++++++++++++++++++++++
+ 1 file changed, 26 insertions(+)
+ create mode 100644 burn.S
+
+diff --git a/burn.S b/burn.S
+new file mode 100644
+index 0000000..c372c87
+--- /dev/null
++++ b/burn.S
+@@ -0,0 +1,26 @@
++ .arch armv7-a
++ .fpu neon
++
++ .text
++
++ .global main
++ .type main, STT_FUNC
++ .func main
++main:
++ bic sp, sp, #15
++1:
++ vld1.8 {q8}, [sp,:128]
++ smuad r6, r4, r5
++ veor q9, q0, q1
++ add lr, r4, r5
++ ldr ip, [sp]
++ vext.8 q10, q3, q4, #1
++ eor r5, r4, r5
++ vadd.i32 q11, q0, q1
++ smusd r6, r4, r5
++ ldr r2, [sp]
++ vext.8 q12, q1, q2, #3
++ ssub8 lr, r4, r5
++ vmul.u16 q13, q0, q4
++ b 1b
++.endfunc
diff --git a/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0003-burn.S-Remove-.func-.endfunc.patch b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0003-burn.S-Remove-.func-.endfunc.patch
new file mode 100644
index 0000000000..f351b62c73
--- /dev/null
+++ b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm/0003-burn.S-Remove-.func-.endfunc.patch
@@ -0,0 +1,31 @@
+From 078df5b25d75578bb0448ca53514c23debe6d920 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Jan 2019 12:03:11 -0800
+Subject: [PATCH] burn.S: Remove .func/.endfunc
+
+These are useless on Linux systems where we use dwarf debug info instead
+of stabs
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ burn.S | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/burn.S b/burn.S
+index c372c87..4458f51 100644
+--- a/burn.S
++++ b/burn.S
+@@ -5,7 +5,6 @@
+
+ .global main
+ .type main, STT_FUNC
+- .func main
+ main:
+ bic sp, sp, #15
+ 1:
+@@ -23,4 +22,3 @@ main:
+ ssub8 lr, r4, r5
+ vmul.u16 q13, q0, q4
+ b 1b
+-.endfunc
diff --git a/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
new file mode 100644
index 0000000000..7969af6c37
--- /dev/null
+++ b/meta-oe/recipes-benchmark/cpuburn/cpuburn-arm_git.bb
@@ -0,0 +1,52 @@
+SUMMARY = "A collection of cpuburn programs tuned for different ARM hardware"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://cpuburn-a53.S;beginline=1;endline=22;md5=3b7ccd70144c16d3fe14ac491c2d4a87"
+
+RPROVIDES:${PN} = "cpuburn-neon"
+PROVIDES += "cpuburn-neon"
+
+SRCREV = "ad7e646700d14b81413297bda02fb7fe96613c3f"
+
+PV = "1.0+git${SRCPV}"
+
+SRC_URI = "git://github.com/ssvb/cpuburn-arm.git;branch=master;protocol=https \
+ file://0001-cpuburn-a8.S-Remove-.func-.endfunc.patch \
+ file://0002-burn.S-Add.patch \
+ file://0003-burn.S-Remove-.func-.endfunc.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+
+ # If the arch is set to ARM 64-bit - we only produce and ship burn-a53 version.
+ # In case of ARM 32-bit - we would build all variants, since burn-a53 supports both
+ # 32 and 64-bit builds
+ if ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'true', 'false', d)}; then
+ ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53
+ else
+ ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn
+ ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a7.S -o burn-a7
+ ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-a8
+ ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a9.S -o burn-a9
+ ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a53.S -o burn-a53
+ ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-krait.S -o burn-krait
+ fi
+}
+
+do_install() {
+ install -d ${D}${bindir}
+
+ if ${@bb.utils.contains('TUNE_FEATURES', 'aarch64', 'true', 'false', d)}; then
+ install -m 0755 burn-a53 ${D}${bindir}
+ else
+ for f in burn burn-a7 burn-a8 burn-a9 burn-a53 burn-krait; do
+ install -m 0755 $f ${D}${bindir}/$f
+ done
+ fi
+}
+
+COMPATIBLE_MACHINE ?= "(^$)"
+COMPATIBLE_MACHINE:armv7a = "(.*)"
+COMPATIBLE_MACHINE:armv7ve = "(.*)"
+COMPATIBLE_MACHINE:aarch64 = "(.*)"
diff --git a/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb b/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb
deleted file mode 100644
index 14e3fc4f38..0000000000
--- a/meta-oe/recipes-benchmark/cpuburn/cpuburn-neon_20140626.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "CPU burn app that loads the NEON coprocessor fully"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://burn.S;md5=823abc72c2cd448e87df9bc5355a4456"
-
-DL_DIR_append = "/${PN}-${PV}"
-
-# Ensure to make this available for machine which has neon
-COMPATIBLE_MACHINE = "(${@bb.utils.contains("TUNE_FEATURES", "neon", "${MACHINE}", "Invalid!", d)})"
-
-SRC_URI = "http://hardwarebug.org/files/burn.S;name=mru \
- https://raw.githubusercontent.com/ssvb/cpuburn-arm/dd5c5ba58d2b0b23cfab4a286f9d3f5510000f20/cpuburn-a8.S;name=ssvb"
-
-SRC_URI[mru.md5sum] = "823abc72c2cd448e87df9bc5355a4456"
-SRC_URI[mru.sha256sum] = "01d9fc04f83740c513c25401dcc89c11b2a5a6013e70bfca42b7b02129f88cd2"
-SRC_URI[ssvb.md5sum] = "ba0ef2939a3b3b487523448c67544e94"
-SRC_URI[ssvb.sha256sum] = "ce42ebdc71c876a33d9f7534355ef76cefa0d00ddb19ad69cf05a266c861d08d"
-
-S = "${WORKDIR}"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} burn.S -o burn
- ${CC} ${CFLAGS} ${LDFLAGS} cpuburn-a8.S -o burn-neona8
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${S}/burn ${D}${bindir}/burn-neon
- install -m 0755 ${S}/burn-neona8 ${D}${bindir}/
-}
-
diff --git a/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb b/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
index 1915e4c2eb..32f51fee49 100644
--- a/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
+++ b/meta-oe/recipes-benchmark/dbench/dbench_4.0.bb
@@ -1,8 +1,8 @@
SUMMARY = "The dbench (disk) and tbench (TCP) benchmarks"
-SUMMARY_dbench = "Filesystem load benchmark"
-SUMMARY_tbench = "TCP load benchmark"
+SUMMARY:dbench = "Filesystem load benchmark"
+SUMMARY:tbench = "TCP load benchmark"
HOMEPAGE = "http://samba.org/ftp/tridge/dbench/"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS = "popt"
@@ -14,12 +14,13 @@ SRC_URI = "\
inherit autotools
-PACKAGES =+ "tbench tbench-dbg"
+PACKAGES =+ "tbench"
+
+RPROVIDES:${PN}-dbg += "tbench-dbg"
TARGET_CC_ARCH += "${LDFLAGS}"
-FILES_tbench = "${bindir}/tbench* ${prefix}/share/client.txt"
-FILES_tbench-dbg += "${bindir}/.debug/tbench*"
+FILES:tbench = "${bindir}/tbench* ${prefix}/share/client.txt"
SRC_URI[md5sum] = "1fe56ff71b9a416f8889d7150ac54da4"
SRC_URI[sha256sum] = "6001893f34e68a3cfeb5d424e1f2bfef005df96a22d86f35dc770c5bccf3aa8a"
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/dhrystone/dhrystone_2.1.bb b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb
index 17e8c700ca..d809a564e9 100644
--- a/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb
+++ b/meta-oe/recipes-benchmark/dhrystone/dhrystone_2.1.bb
@@ -22,5 +22,6 @@ do_install() {
# Prevent procedure merging as required by dhrystone.c:
CFLAGS += "-fno-lto"
+CFLAGS:append:toolchain-clang = " -Wno-error=implicit-function-declaration -Wno-error=deprecated-non-prototype -Wno-error=implicit-int"
LDFLAGS += "-fno-lto"
diff --git a/meta-oe/recipes-benchmark/fio/fio_2.9.bb b/meta-oe/recipes-benchmark/fio/fio_2.9.bb
deleted file mode 100644
index 67b513fa0b..0000000000
--- a/meta-oe/recipes-benchmark/fio/fio_2.9.bb
+++ /dev/null
@@ -1,41 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-
-DEPENDS = "libaio zlib"
-
-PACKAGECONFIG_NUMA = "numa"
-# ARM does not currently support NUMA
-PACKAGECONFIG_NUMA_arm = ""
-
-PACKAGECONFIG ??= "${PACKAGECONFIG_NUMA}"
-PACKAGECONFIG[numa] = ",--disable-numa,numactl"
-
-# rev for v2.9
-SRCREV = "fe8d0f4c54f0c308c9a02a4e3c2f5084e8bf5461"
-SRC_URI = "git://git.kernel.dk/fio.git"
-
-S = "${WORKDIR}/git"
-
-# avoids build breaks when using no-static-libs.inc
-DISABLE_STATIC = ""
-
-EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}'"
-
-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.32.bb b/meta-oe/recipes-benchmark/fio/fio_3.32.bb
new file mode 100644
index 0000000000..90e28340c6
--- /dev/null
+++ b/meta-oe/recipes-benchmark/fio/fio_3.32.bb
@@ -0,0 +1,44 @@
+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/glmark2/files/0001-Fix-clang-warnings.patch b/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch
deleted file mode 100644
index cdf09faec8..0000000000
--- a/meta-oe/recipes-benchmark/glmark2/files/0001-Fix-clang-warnings.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 35e9f80518d666db5f9c62e8072ffbc307b4af4f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 26 Aug 2017 08:30:01 -0700
-Subject: [PATCH] Fix clang warnings
-
-../src/native-state-drm.cpp:334:20: error: cannot pass object of non-trivial type 'std::__cxx11::basic_string<char>' through variadic function; call will abort at runtime [-Wnon-pod-varargs]
- dev_path);
- ^
-1 error generated.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/native-state-drm.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/native-state-drm.cpp b/src/native-state-drm.cpp
-index dc2b323..62566ee 100644
---- a/src/native-state-drm.cpp
-+++ b/src/native-state-drm.cpp
-@@ -331,7 +331,7 @@ static int open_using_udev_scan()
- if (!valid_fd(fd)) {
- // %m is GLIBC specific... Maybe use strerror here...
- Log::error("Tried to use '%s' but failed.\nReason : %m",
-- dev_path);
-+ dev_path.c_str());
- }
- else
- Log::debug("Success!\n");
---
-2.14.1
-
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
new file mode 100644
index 0000000000..9d652e10ad
--- /dev/null
+++ b/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch
@@ -0,0 +1,125 @@
+From 56e4959f0bc3e442c813d78e8ab6b3bf64b4ac66 Mon Sep 17 00:00:00 2001
+From: OpenEmbedded <oe.patch@oe>
+Date: Wed, 2 Dec 2020 20:27:42 +0000
+Subject: [PATCH] fix dispmanx build
+
+For when the user is building "--with-flavors dispmanx-glesv2", fixes a bunch
+of "redeclared as different kind of symbol" problems.
+
+This patch is almost entirely from:
+ https://github.com/glmark2/glmark2/commit/3b1a0f78d03ae126b78ee52a7c434809115e5993
+
+Which was created by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
+
+See:
+ https://github.com/glmark2/glmark2/issues/80
+
+My contribution is to tweak the wscript to link all the required libraries.
+
+Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/135]
+Signed-off-by: Trevor Woerner <twoerner@gmail.com>
+---
+ src/native-state-dispmanx.cpp | 22 +++++++++++++++++-----
+ src/native-state-dispmanx.h | 7 +++----
+ wscript | 2 +-
+ 3 files changed, 21 insertions(+), 10 deletions(-)
+
+diff --git a/src/native-state-dispmanx.cpp b/src/native-state-dispmanx.cpp
+index 2117386..49f74e7 100644
+--- a/src/native-state-dispmanx.cpp
++++ b/src/native-state-dispmanx.cpp
+@@ -23,13 +23,25 @@
+ #include "native-state-dispmanx.h"
+ #include "log.h"
+
++#include "EGL/egl.h"
++
+ #include <cstring>
+ #include <csignal>
+
++struct NativeStateDispmanx::Private
++{
++ Private()
++ {
++ memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window));
++ }
++
++ EGL_DISPMANX_WINDOW_T egl_dispmanx_window;
++};
++
+ NativeStateDispmanx::NativeStateDispmanx()
++ : priv{std::make_unique<Private>()}
+ {
+ memset(&properties_, 0, sizeof(properties_));
+- memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window));
+ }
+
+ NativeStateDispmanx::~NativeStateDispmanx()
+@@ -99,9 +111,9 @@ NativeStateDispmanx::create_window(WindowProperties const& properties)
+ 0 /*clamp*/,
+ DISPMANX_NO_ROTATE);
+
+- egl_dispmanx_window.element = dispmanx_element;
+- egl_dispmanx_window.width = dst_rect.width;
+- egl_dispmanx_window.height = dst_rect.height;
++ priv->egl_dispmanx_window.element = dispmanx_element;
++ priv->egl_dispmanx_window.width = dst_rect.width;
++ priv->egl_dispmanx_window.height = dst_rect.height;
+ vc_dispmanx_update_submit_sync(dispmanx_update);
+
+ return true;
+@@ -111,7 +123,7 @@ void*
+ NativeStateDispmanx::window(WindowProperties &properties)
+ {
+ properties = properties_;
+- return &egl_dispmanx_window;
++ return &priv->egl_dispmanx_window;
+ }
+
+ void
+diff --git a/src/native-state-dispmanx.h b/src/native-state-dispmanx.h
+index a6ed3d4..794b2d3 100644
+--- a/src/native-state-dispmanx.h
++++ b/src/native-state-dispmanx.h
+@@ -24,10 +24,8 @@
+ #define GLMARK2_NATIVE_STATE_DISPMANX_H_
+
+ #include <vector>
++#include <memory>
+ #include "bcm_host.h"
+-#include "GLES/gl.h"
+-#include "EGL/egl.h"
+-#include "EGL/eglext.h"
+
+ #include "native-state.h"
+
+@@ -46,11 +44,12 @@ public:
+ void flip();
+
+ private:
++ struct Private;
+ DISPMANX_DISPLAY_HANDLE_T dispmanx_display;
+ DISPMANX_UPDATE_HANDLE_T dispmanx_update;
+ DISPMANX_ELEMENT_HANDLE_T dispmanx_element;
+- EGL_DISPMANX_WINDOW_T egl_dispmanx_window;
+ WindowProperties properties_;
++ std::unique_ptr<Private> priv;
+ };
+
+ #endif /* GLMARK2_NATIVE_STATE_DISPMANX_H_ */
+diff --git a/wscript b/wscript
+index e09fa78..6c3869c 100644
+--- a/wscript
++++ b/wscript
+@@ -205,7 +205,7 @@ def configure_linux(ctx):
+
+ ctx.check_cxx(lib = 'brcmGLESv2', uselib_store = 'glesv2', libpath='/opt/vc/lib')
+ ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2'], uselib_store = 'egl', libpath='/opt/vc/lib')
+- ctx.check_cxx(lib = ['bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib')
++ ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2', 'vchostif', 'bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib')
+
+ # Check optional packages
+ opt_pkgs = [('x11', 'x11', None, list_contains(ctx.options.flavors, 'x11')),
+--
+2.28.0.497.g54e85e7af1
+
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
new file mode 100644
index 0000000000..05a074cf55
--- /dev/null
+++ b/meta-oe/recipes-benchmark/glmark2/files/0002-run-dispmanx-fullscreen.patch
@@ -0,0 +1,32 @@
+From 110ef8357ebaf24bc3995e631ec809a2f84c3b87 Mon Sep 17 00:00:00 2001
+From: Trevor Woerner <twoerner@gmail.com>
+Date: Thu, 3 Dec 2020 07:16:58 -0500
+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]
+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 d1077fe..d717cd4 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -202,6 +202,11 @@ main(int argc, char *argv[])
+ Options::size = std::pair<int,int>(800, 600);
+ }
+
++#if GLMARK2_USE_DISPMANX
++ /* dispmanx can only run fullscreen */
++ Options::size = std::pair<int,int>(-1, -1);
++#endif
++
+ // Create the canvas
+ #if GLMARK2_USE_EGL
+ GLStateEGL gl_state;
+--
+2.25.1
diff --git a/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch b/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch
deleted file mode 100644
index 7de05ee583..0000000000
--- a/meta-oe/recipes-benchmark/glmark2/files/Fix-configure-for-sqrt-check.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 9fb298c398f88a63d71432be1410d52fae089063 Mon Sep 17 00:00:00 2001
-From: Tom Hochstein <tom.hochstein@nxp.com>
-Date: Mon, 8 Aug 2016 11:39:54 -0500
-
----
- wscript | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/wscript b/wscript
-index ca843f4..eb4a26a 100644
---- a/wscript
-+++ b/wscript
-@@ -84,7 +84,7 @@ def configure(ctx):
- ctx.check_cc(lib = lib, uselib_store = uselib)
-
- # Check required functions
-- req_funcs = [('memset', 'string.h', []) ,('sqrt', 'math.h', ['m'])]
-+ req_funcs = [('memset', 'string.h', [])]
- for func, header, uselib in req_funcs:
- ctx.check_cc(function_name = func, header_name = header,
- uselib = uselib, mandatory = True)
diff --git a/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch b/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
deleted file mode 100644
index 72b8debe56..0000000000
--- a/meta-oe/recipes-benchmark/glmark2/files/build-Check-packages-to-be-used-by-the-enabled-flavo.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Otavio Salvador <otavio@ossystems.com.br>
-Subject: [PATCH] build: Check packages to be used by the enabled flavors
-Organization: O.S. Systems Software LTDA.
-
-The packages shouldn't be dynamically detected otherwise the build
-predictability is lost. We now have all packages as mandatory but
-dependent of the flavors which use them.
-
-Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/8]
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- wscript | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/wscript b/wscript
-index cab62a3..e7eaed0 100644
---- a/wscript
-+++ b/wscript
-@@ -121,13 +121,17 @@ def configure(ctx):
- ('mirclient','mirclient', '0.13', list_contains(ctx.options.flavors, 'mir')),
- ('wayland-client','wayland-client', None, list_contains(ctx.options.flavors, 'wayland')),
- ('wayland-egl','wayland-egl', None, list_contains(ctx.options.flavors, 'wayland'))]
-- for (pkg, uselib, atleast, mandatory) in opt_pkgs:
-+ for (pkg, uselib, atleast, check) in opt_pkgs:
-+ # Check packages required by the flavors
-+ if not check:
-+ continue
-+
- if atleast is None:
- ctx.check_cfg(package = pkg, uselib_store = uselib,
-- args = '--cflags --libs', mandatory = mandatory)
-+ args = '--cflags --libs', mandatory = True)
- else:
- ctx.check_cfg(package = pkg, uselib_store = uselib, atleast_version=atleast,
-- args = '--cflags --libs', mandatory = mandatory)
-+ args = '--cflags --libs', mandatory = True)
-
-
- # Prepend CXX flags so that they can be overriden by the
---
-2.4.6
-
diff --git a/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
index b72ced06ad..a2d5b152f2 100644
--- a/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
+++ b/meta-oe/recipes-benchmark/glmark2/glmark2_git.bb
@@ -1,45 +1,44 @@
SUMMARY = "OpenGL (ES) 2.0 benchmark"
DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \
It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0."
-HOMEPAGE = "https://launchpad.net/glmark2"
-BUGTRACKER = "https://bugs.launchpad.net/glmark2"
+HOMEPAGE = "https://github.com/glmark2/glmark2"
+BUGTRACKER = "https://github.com/glmark2/glmark2/issues"
-LICENSE = "GPLv3+ & SGIv1"
+LICENSE = "GPL-3.0-or-later & SGI-1"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
DEPENDS = "libpng jpeg udev"
+DEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native wayland-protocols', '', d)}"
-PV = "2017.07+${SRCPV}"
+PV = "2023.01"
-COMPATIBLE_HOST_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '.*-linux*', 'null', d)}"
-
-SRC_URI = "git://github.com/glmark2/glmark2.git;protocol=https \
- file://build-Check-packages-to-be-used-by-the-enabled-flavo.patch \
- file://Fix-configure-for-sqrt-check.patch \
- file://0001-Fix-clang-warnings.patch \
- "
-SRCREV = "ed20c633f1926d1dd78e3e89043c85a81302cbe6"
+SRC_URI = " \
+ git://github.com/glmark2/glmark2.git;protocol=https;branch=master \
+ file://0001-fix-dispmanx-build.patch \
+ file://0002-run-dispmanx-fullscreen.patch \
+"
+SRCREV = "42e3d8fe3aa88743ef90348138f643f7b04a9237"
S = "${WORKDIR}/git"
-inherit waf pkgconfig distro_features_check
-
-REQUIRED_DISTRO_FEATURES += "opengl"
+inherit meson pkgconfig features_check
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gl x11-gles2', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gl wayland-gles2', '', d)} \
- drm-gl drm-gles2"
+ANY_OF_DISTRO_FEATURES = "opengl dispmanx"
-# Enable C++11 features
-CXXFLAGS += "-std=c++11"
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gles2', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gles2', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'dispmanx', 'dispmanx', '', d)} \
+ drm-gles2 \
+ "
PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
-PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm"
-PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm"
+PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm virtual/libgbm"
+PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm virtual/libgbm"
PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
+PACKAGECONFIG[dispmanx] = ",,virtual/libgles2 virtual/libx11"
python __anonymous() {
packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
@@ -56,7 +55,9 @@ python __anonymous() {
flavors.append("drm-glesv2")
if "drm-gl" in packageconfig:
flavors.append("drm-gl")
+ if "dispmanx" in packageconfig:
+ flavors = ["dispmanx-glesv2"]
if flavors:
- d.appendVar("EXTRA_OECONF", " --with-flavors=%s" % ",".join(flavors))
+ d.appendVar("EXTRA_OEMESON", " -Dflavors=%s" % ",".join(flavors))
}
diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3/0001-let-system-headers-provide-pread64.patch b/meta-oe/recipes-benchmark/iozone3/iozone3/0001-let-system-headers-provide-pread64.patch
new file mode 100644
index 0000000000..a61a56a71d
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iozone3/iozone3/0001-let-system-headers-provide-pread64.patch
@@ -0,0 +1,34 @@
+From 64389a67b93a53b9fb7e9e20e905a5ee4613606b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 15 Jan 2020 17:10:42 -0800
+Subject: [PATCH] let system headers provide pread64()
+
+The signature does not match with system headers anyway
+
+Fixes
+
+iozone.c:1270:9: error: redeclaration of 'pread64' must have the 'overloadable' attribute ssize_t pread64(); ^ /mnt/b/yoe/build/tmp/work/core2-64-yoe-linux/iozone3/488-r0/recipe-sysroot/usr/include/bits/unistd.h:83:1: note: previous overload of function is here pread64 (int __fd, void *const __clang_pass_object_size0 __buf, ^
+1 error generated.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ iozone.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/iozone.c b/iozone.c
+index 090dd5f..fdea400 100644
+--- a/iozone.c
++++ b/iozone.c
+@@ -1267,7 +1267,6 @@ int pit_gettimeofday();
+ #ifdef HAVE_ANSIC_C
+ #if defined (HAVE_PREAD) && defined(_LARGEFILE64_SOURCE)
+ ssize_t pwrite64();
+-ssize_t pread64();
+ #endif
+ #if !defined(linux)
+ char *getenv();
+--
+2.25.0
+
diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch b/meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch
index d5622ed2cf..48069ff141 100644
--- a/meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch
+++ b/meta-oe/recipes-benchmark/iozone3/iozone3/parallelism.patch
@@ -10,20 +10,24 @@ Only fixed linux targets for now
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
+---
+ current/makefile | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
-
---- current/makefile.org 2016-12-06 02:19:10.367911020 +0000
-+++ current/makefile 2016-12-06 02:21:38.767911020 +0000
-@@ -167,7 +167,7 @@
+diff --git current/makefile current/makefile
+index 3a54701..7071427 100644
+--- current/makefile
++++ current/makefile
+@@ -171,7 +171,7 @@ hpux_no_ansi: iozone_hpux_no.o libbif.o
#
# GNU 'C' compiler Linux build with threads, largefiles, async I/O
#
-linux: iozone_linux.o libasync.o libbif.o fileop_linux.o pit_server.o
+linux: iozone_linux.o fileop_linux.o pit_server.o
- $(CC) -O3 $(LDFLAGS) iozone_linux.o libasync.o libbif.o -lpthread \
+ $(CC) -O3 $(CFLAGS) iozone_linux.o libasync.o libbif.o -lpthread \
-lrt -o iozone
- $(CC) -O3 -Dlinux fileop_linux.o -o fileop
-@@ -176,7 +176,7 @@
+ $(CC) -O3 $(CFLAGS) -Dlinux fileop_linux.o -o fileop
+@@ -180,7 +180,7 @@ linux: iozone_linux.o libasync.o libbif.o fileop_linux.o pit_server.o
#
# GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O
#
@@ -32,7 +36,7 @@ Upstream-Status: Pending
$(CC) -O3 $(LDFLAGS) iozone_linux-powerpc.o libasync.o \
libbif.o -lpthread -lrt -o iozone
$(CC) -O3 -Dlinux fileop_linux-ppc.o -o fileop
-@@ -184,7 +184,7 @@
+@@ -188,7 +188,7 @@ linux-powerpc: iozone_linux-powerpc.o libbif.o libasync.o fileop_linux-ppc.o pi
#
# GNU 'C' compiler Linux build for sparc chip with threads, largefiles, async I/O
#
@@ -41,7 +45,7 @@ Upstream-Status: Pending
$(CC) -O3 $(LDFLAGS) iozone_linux-sparc.o libasync.o libbif.o \
-lpthread -lrt -o iozone
$(CC) -O3 -Dlinux fileop_linux.o -o fileop
-@@ -193,7 +193,7 @@
+@@ -197,7 +197,7 @@ linux-sparc: iozone_linux-sparc.o libbif.o libasync.o fileop_linux.o pit_server
#
# GNU 'C' compiler Linux build with threads, largefiles, async I/O
#
@@ -50,7 +54,7 @@ Upstream-Status: Pending
$(CC) -O3 $(LDFLAGS) iozone_linux-ia64.o libbif.o libasync.o \
-lrt -lpthread -o iozone
$(CC) -O3 -Dlinux fileop_linux-ia64.o -o fileop
-@@ -202,7 +202,7 @@
+@@ -206,7 +206,7 @@ linux-ia64: iozone_linux-ia64.o libbif.o libasync.o fileop_linux-ia64.o pit_ser
#
# GNU 'C' compiler Linux build for powerpc chip with threads, largefiles, async I/O
#
@@ -59,7 +63,7 @@ Upstream-Status: Pending
$(CC) -O3 -Dunix -DHAVE_ANSIC_C -DSHARED_MEM -DASYNC_IO \
-D_LARGEFILE64_SOURCE -Dlinux \
iozone_linux-powerpc64.o libasync.o libbif.o -lpthread \
-@@ -213,7 +213,7 @@
+@@ -217,7 +217,7 @@ linux-powerpc64: iozone_linux-powerpc64.o libbif.o libasync.o fileop_linux-ppc6
#
# GNU 'C' compiler Linux build with threads, largefiles, async I/O
#
@@ -68,7 +72,7 @@ Upstream-Status: Pending
$(CC) -O3 $(LDFLAGS) iozone_linux-arm.o libbif.o libasync.o \
-lrt -lpthread -o iozone
$(CC) -O3 -Dlinux fileop_linux-arm.o -o fileop
-@@ -222,7 +222,7 @@
+@@ -249,7 +249,7 @@ endif
#
# GNU 'C' compiler Linux build with threads, largefiles, async I/O
#
@@ -77,7 +81,7 @@ Upstream-Status: Pending
$(CC) -O3 $(LDFLAGS) iozone_linux-AMD64.o libbif.o libasync.o \
-lrt -lpthread -o iozone
$(CC) -O3 -Dlinux fileop_linux-AMD64.o -o fileop
-@@ -231,7 +231,7 @@
+@@ -258,7 +258,7 @@ linux-AMD64: iozone_linux-AMD64.o libbif.o libasync.o fileop_linux-AMD64.o pit_
#
# GNU 'C' compiler Linux build with S/390, threads, largfiles, async I/O
#
@@ -86,7 +90,7 @@ Upstream-Status: Pending
$(CC) -O2 $(LDFLAGS) -lpthread -lrt iozone_linux-s390.o \
libbif.o libasync.o -o iozone
$(CC) -O3 -Dlinux fileop_linux-s390.o -o fileop
-@@ -240,7 +240,7 @@
+@@ -267,7 +267,7 @@ linux-S390: iozone_linux-s390.o libbif.o libasync.o fileop_linux-s390.o pit_serv
#
# GNU 'C' compiler Linux build with S/390, threads, largfiles, async I/O
#
@@ -95,3 +99,6 @@ Upstream-Status: Pending
$(CC) -O2 $(LDFLAGS) -lpthread -lrt iozone_linux-s390x.o \
libbif.o libasync.o -o iozone
$(CC) -O3 -Dlinux fileop_linux-s390x.o -o fileop
+--
+2.25.1
+
diff --git a/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb b/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb
deleted file mode 100644
index 191b934259..0000000000
--- a/meta-oe/recipes-benchmark/iozone3/iozone3_465.bb
+++ /dev/null
@@ -1,119 +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=260;endline=266;md5=77f9ee51e45b57a7e7519c4fa0b4f00b \
-"
-SRC_URI = "http://www.iozone.org/src/current/${BPN}_${PV}.tar \
- file://parallelism.patch \
- file://copyright.txt \
-"
-SRC_URI[md5sum] = "c924e5e46fb1cf8145f420e8e57eb954"
-SRC_URI[sha256sum] = "2e3d72916e7d7340a7c505fc0c3d28553fcc5ff2daf41d811368e55bd4e6a293"
-
-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_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..3b6df0b301
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iozone3/iozone3_506.bb
@@ -0,0 +1,120 @@
+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[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
new file mode 100644
index 0000000000..dc3b85f8ef
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf2/iperf2/0001-Detect-bool-definition-considering-stdbool.h-being-p.patch
@@ -0,0 +1,60 @@
+From 6df092a4153c6c37cfaddcabf2cd25a910a7f6e1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 2 Sep 2019 15:40:52 -0700
+Subject: [PATCH] Detect bool definition considering stdbool.h being present
+
+This helps in defining the value correctly on different platforms e.g.
+clang/libc++ depends on the definition coming from stdbool.h
+current builds fail to compile therefore
+
+TMPDIR/work/cortexa7t2hf-neon-vfpv4-yoe-linux-gnueabi/iperf2/2.0.13-r0/recipe-sysroot/usr/include/c++/v1/type_traits:742:29: error: redefinition of '__libcpp_is_integral<int>'
+template <> struct __libcpp_is_integral<int> : public true_type {};
+ ^~~~~~~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ m4/dast.m4 | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+--- a/m4/dast.m4
++++ b/m4/dast.m4
+@@ -11,7 +11,12 @@ AH_TEMPLATE([false])
+
+ AC_DEFUN(DAST_CHECK_BOOL, [
+
+-AC_CHECK_SIZEOF(bool)
++if test "$ac_cv_header_stdbool_h" = yes; then
++ AC_CHECK_SIZEOF(bool,,[#include <stdbool.h>])
++else
++ AC_CHECK_SIZEOF(bool)
++fi
++
+ if test "$ac_cv_sizeof_bool" = 0 ; then
+ AC_DEFINE(bool, int)
+ fi
+--- a/configure.ac
++++ b/configure.ac
+@@ -113,7 +113,7 @@ AC_SEARCH_LIBS([socket], [socket], [],
+
+ dnl Checks for header files.
+ AC_HEADER_STDC
+-AC_CHECK_HEADERS([arpa/inet.h libintl.h net/ethernet.h net/if.h linux/ip.h linux/udp.h linux/if_packet.h linux/filter.h netdb.h netinet/in.h stdlib.h string.h strings.h sys/socket.h sys/time.h syslog.h unistd.h signal.h ifaddrs.h])
++AC_CHECK_HEADERS([arpa/inet.h libintl.h net/ethernet.h net/if.h linux/ip.h linux/udp.h linux/if_packet.h linux/filter.h netdb.h netinet/in.h stdbool.h stdlib.h string.h strings.h sys/socket.h sys/time.h syslog.h unistd.h signal.h ifaddrs.h])
+
+ dnl ===================================================================
+ dnl Checks for typedefs, structures
+--- a/include/util.h
++++ b/include/util.h
+@@ -56,7 +56,9 @@
+ #ifdef HAVE_CONFIG_H
+ #include "config.h"
+ #endif
+-
++#ifdef HAVE_STDBOOL_H
++# include <stdbool.h>
++#endif
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
diff --git a/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.10.bb b/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.10.bb
deleted file mode 100644
index 1322d07883..0000000000
--- a/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.10.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics"
-HOMEPAGE = "https://sourceforge.net/projects/iperf2/"
-SECTION = "console/network"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e136a7b2560d80bcbf0d9b3e1356ecff"
-
-SRC_URI = " ${SOURCEFORGE_MIRROR}/iperf2/iperf-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "097cf0754bc1afa165975c06a91e6906"
-SRC_URI[sha256sum] = "7fe4348dcca313b74e0aa9c34a8ccd713b84a5615b8578f4aa94cedce9891ef2"
-
-S = "${WORKDIR}/iperf-${PV}"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
diff --git a/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.13.bb b/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.13.bb
new file mode 100644
index 0000000000..86e5fef530
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf2/iperf2_2.0.13.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "Iperf is a tool to measure maximum TCP bandwidth, allowing the tuning of various parameters and UDP characteristics"
+HOMEPAGE = "https://sourceforge.net/projects/iperf2/"
+SECTION = "console/network"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e136a7b2560d80bcbf0d9b3e1356ecff"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/iperf-${PV}.tar.gz \
+ file://0001-Detect-bool-definition-considering-stdbool.h-being-p.patch \
+"
+
+SRC_URI[md5sum] = "31ea1c6d5cbf80b16ff3abe4288dad5e"
+SRC_URI[sha256sum] = "c88adec966096a81136dda91b4bd19c27aae06df4d45a7f547a8e50d723778ad"
+
+S = "${WORKDIR}/iperf-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--exec-prefix=${STAGING_DIR_HOST}${layout_exec_prefix}"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'ipv6', 'ipv6', '', d)}"
+PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
+
+CVE_PRODUCT = "iperf_project:iperf"
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
new file mode 100644
index 0000000000..09e3d9ca9c
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf3/iperf3/0001-configure.ac-check-for-CPP-prog.patch
@@ -0,0 +1,29 @@
+From 4801363fbff12bf1019aaf90142981702cecff92 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
+
+Absence of check for CPP_PROG causes following build errors:
+| checking TCP_CONGESTION socket option... ../git/configure: line 14427: CPP: command not found
+| ../git/configure: line 14553: ac_fn_c_try_cpp: command not found
+| ../git/configure: line 14553: ac_fn_c_try_cpp: command not found
+
+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
+--- a/configure.ac
++++ b/configure.ac
+@@ -48,6 +48,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
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 06eb41ac0e..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
@@ -1,31 +1,32 @@
-From 6db0e28f906bc3784019dfb5bb011237a8034fda Mon Sep 17 00:00:00 2001
+From 155ae12f7809e387a379703d8c09f227e430336d Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 14 Jul 2017 13:00:16 -0700
-Subject: [PATCH 2/2] Remove -pg from profile_CFLAGS
+Subject: [PATCH] Remove -pg from profile_CFLAGS
musl fails to link with missing gcrt1.o
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/src/Makefile.am b/src/Makefile.am
-index 23b0c72..6268145 100644
+index 11d3e17..4058cff 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -49,9 +49,9 @@ iperf3_LDFLAGS = -g
+@@ -58,9 +58,9 @@ if ENABLE_PROFILING
iperf3_profile_SOURCES = main.c \
- $(libiperf_la_SOURCES)
+ $(libiperf_la_SOURCES)
-iperf3_profile_CFLAGS = -pg -g
+iperf3_profile_CFLAGS = -g
iperf3_profile_LDADD = libiperf.la
-iperf3_profile_LDFLAGS = -pg -g
+iperf3_profile_LDFLAGS = -g
+ endif
# Specify the sources and various flags for the test cases
- t_timer_SOURCES = t_timer.c
---
-2.13.3
-
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch b/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch
deleted file mode 100644
index 06c394e5c5..0000000000
--- a/meta-oe/recipes-benchmark/iperf3/iperf3/automake-foreign.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Pass the 'foreign' option to automake to enable iperf3 to build.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Chunrong Guo <b40290@freescale.com>
-
---- a/configure.ac 2015-10-19 02:49:30.471867352 -0500
-+++ b/configure.ac 2015-10-19 02:46:36.207873572 -0500
-@@ -33,7 +33,7 @@
-
-
- # Initialize the automake system
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
- AM_MAINTAINER_MODE
- AM_CONFIG_HEADER(src/iperf_config.h)
-
diff --git a/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb
new file mode 100644
index 0000000000..d181eb3b02
--- /dev/null
+++ b/meta-oe/recipes-benchmark/iperf3/iperf3_3.14.bb
@@ -0,0 +1,34 @@
+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=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 = "a0be85934144bc04712a6695b14ea6e45c379e1d"
+
+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.2.bb b/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
deleted file mode 100644
index 2ed08110f4..0000000000
--- a/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb
+++ /dev/null
@@ -1,33 +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"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d098223e44bdd19585315ee75cd9d2d7"
-
-DEPENDS = "openssl"
-
-SRC_URI = "git://github.com/esnet/iperf.git \
- file://automake-foreign.patch \
- file://0002-Remove-pg-from-profile_CFLAGS.patch \
- "
-
-SRCREV = "88d907f7fb58bfab5d086c5da60c922e1c582c92"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-PACKAGECONFIG[lksctp] = "ac_cv_header_netinet_sctp_h=yes,ac_cv_header_netinet_sctp_h=no,lksctp-tools"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-EXTRA_OECONF = "--with-openssl=${RECIPE_SYSROOT}"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-benchmark/libc-bench/libc-bench/0001-build-Do-not-override-ldflags-from-environment.patch b/meta-oe/recipes-benchmark/libc-bench/libc-bench/0001-build-Do-not-override-ldflags-from-environment.patch
new file mode 100644
index 0000000000..060b418fcd
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libc-bench/libc-bench/0001-build-Do-not-override-ldflags-from-environment.patch
@@ -0,0 +1,30 @@
+From 419dac71dd524a39ad2333e91334b4650e277a78 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 25 Jun 2021 09:43:00 -0700
+Subject: [PATCH] build: Do not override ldflags from environment
+
+bitbake passed LDFLAGS contain important information e.g. which compiler
+runtime to link etc. Therefore append -static to LDFLAGS instead
+
+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 efda5c0..a867876 100644
+--- a/Makefile
++++ b/Makefile
+@@ -3,7 +3,7 @@ SRCS = $(sort $(wildcard *.c))
+ OBJS = $(SRCS:.c=.o)
+
+ CFLAGS = -Os -D_XOPEN_SOURCE=700
+-LDFLAGS = -static
++LDFLAGS += -static
+ LIBS = -lpthread -lrt -lpthread
+
+
+--
+2.32.0
+
diff --git a/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb b/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb
deleted file mode 100644
index f534c73b54..0000000000
--- a/meta-oe/recipes-benchmark/libc-bench/libc-bench_20110206.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Tests to compare standard functions of different libc implementations"
-DESCRIPTION = "libc-bench is a set of time- and memory-efficiency tests to compare \
-implementations of various C/POSIX standard library functions."
-HOMEPAGE = "http://www.etalabs.net/libc-bench.html"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://Makefile;md5=e12f113da27dfe9cfb6c2c537da8d8df"
-
-SRC_URI = "http://www.etalabs.net/releases/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "f763de90f95fe68e4e03e5b6f49698ac"
-SRC_URI[sha256sum] = "6825260aa5f15f4fbc7957ec578e9c859cbbe210e025ec74c4a0d05677523794"
-
-do_install () {
- install -d ${D}${bindir}
- install -m 0755 ${B}/libc-bench ${D}${bindir}
-}
diff --git a/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb b/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
new file mode 100644
index 0000000000..17bbb9b6ce
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libc-bench/libc-bench_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Tests to compare standard functions of different libc implementations"
+DESCRIPTION = "libc-bench is a set of time- and memory-efficiency tests to compare \
+implementations of various C/POSIX standard library functions."
+HOMEPAGE = "http://www.etalabs.net/libc-bench.html"
+SECTION = "console/utils"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=9a825c63897c53f487ef900598c31527"
+
+SRCREV = "b6b2ce5f9f87a09b14499cb00c600c601f022634"
+PV = "20110206+git${SRCPV}"
+
+SRC_URI = "git://git.musl-libc.org/libc-bench;branch=master \
+ file://0001-build-Do-not-override-ldflags-from-environment.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/libc-bench ${D}${bindir}
+}
+
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch
new file mode 100644
index 0000000000..0787ef27d2
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch
@@ -0,0 +1,210 @@
+From 0a163f60b4a316c4b6f1726a71c84755f3bd85e7 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <martin.jansa@lge.com>
+Date: Wed, 16 Sep 2020 04:36:04 -0700
+Subject: [PATCH] Revert "ld.hugetlbfs: fix -Ttext-segment argument on AArch64"
+
+This reverts commit 852dcc963ce44861ed7c4e225aa92ff2b5b43579.
+
+* works around
+ ERROR: libhugetlbfs-1_2.23-r0 do_populate_sysroot: Fatal errors occurred in subprocesses:
+ Command '['arm-oe-linux-gnueabi-strip', '--remove-section=.comment', '--remove-section=.note', 'libhugetlbfs/1_2.23-r0/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw']' returned non-zero exit status 1.
+ Subprocess output:arm-oe-linux-gnueabi-strip:
+ libhugetlbfs/1_2.23-r0/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/stmuFa58: error: PHDR segment not covered by LOAD segment
+ arm-oe-linux-gnueabi-strip: libhugetlbfs/1_2.23-r0/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/stmuFa58[.interp]: file format not recognized
+
+I don't see anything suspicious in the build (the same cmdline as in 2.22
+version), but it uses
+
+libhugetlbfs/1_2.22-r0-old/temp/log.do_compile:arm-oe-linux-gnueabi-gcc
+ -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1
+-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now
+-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security
+-Werror=format-security -Werror=return-type
+--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.22-r0/recipe-sysroot
+-I.. -O2 -Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c
+libhugetlbfs/1_2.22-r0-old/temp/log.do_compile:arm-oe-linux-gnueabi-gcc
+ -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1
+-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now
+-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security
+-Werror=format-security -Werror=return-type
+--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.22-r0/recipe-sysroot
+-B./obj32 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now
+-ldl -L../obj32 -o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl
+-lhugetlbfs_privutils -Wl,--hugetlbfs-align obj32/linkhuge_rw.o
+obj32/testutils.o
+libhugetlbfs/1_2.23-r0-new/temp/log.do_compile:arm-oe-linux-gnueabi-gcc
+ -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1
+-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now
+-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security
+-Werror=format-security -Werror=return-type
+--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.23-r0/recipe-sysroot
+-I.. -O2 -Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c
+libhugetlbfs/1_2.23-r0-new/temp/log.do_compile:arm-oe-linux-gnueabi-gcc
+ -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 -Wl,-O1
+-Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now
+-fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security
+-Werror=format-security -Werror=return-type
+--sysroot=/jenkins/mjansa/build/ros/oe-melodic-gatesgarth/libhugetlbfs/1_2.23-r0/recipe-sysroot
+-B./obj32 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,relro,-z,now
+-ldl -L../obj32 -o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl
+-lhugetlbfs_privutils -Wl,--hugetlbfs-align obj32/linkhuge_rw.o
+obj32/testutils.o
+
+And the git log between 2.22 and 2.23 is also very short and looks
+reasonable.
+https://github.com/libhugetlbfs/libhugetlbfs/compare/2.22...2.23
+
+When checking with readelf -l it also shows the error about PHDR segment:
+arm-oe-linux-gnueabi-readelf -l
+./1_2.22-r0-old/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw
+
+Elf file type is DYN (Shared object file)
+Entry point 0x201105
+There are 10 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ PHDR 0x000034 0x00200034 0x00200034 0x00140 0x00140 R 0x4
+ INTERP 0x000174 0x00200174 0x00200174 0x0001d 0x0001d R 0x1
+ [Requesting program interpreter: /usr/lib/ld-linux-armhf.so.3]
+ LOAD 0x000000 0x00200000 0x00200000 0x1222c 0x1222c R E 0x200000
+ LOAD 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x102e0 0x202ec RW 0x200000
+ DYNAMIC 0x1ffdf8 0x005ffdf8 0x005ffdf8 0x00128 0x00128 RW 0x4
+ NOTE 0x000194 0x00200194 0x00200194 0x00044 0x00044 R 0x4
+ GNU_EH_FRAME 0x012224 0x00212224 0x00212224 0x00008 0x00008 R 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
+ EXIDX 0x001c5c 0x00201c5c 0x00201c5c 0x00008 0x00008 R 0x4
+ GNU_RELRO 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x00210 0x00210 RW 0x4
+
+ Section to Segment mapping:
+ Segment Sections...
+ 00
+ 01 .interp
+ 02 .interp .note.ABI-tag .note.gnu.build-id .dynsym .dynstr
+.gnu.hash .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text
+.fini .ARM.extab .ARM.exidx .rodata .eh_frame .eh_frame_hdr
+ 03 .fini_array .init_array .dynamic .got .data .bss
+ 04 .dynamic
+ 05 .note.ABI-tag .note.gnu.build-id
+ 06 .eh_frame_hdr
+ 07
+ 08 .ARM.extab .ARM.exidx
+ 09 .fini_array .init_array .dynamic .got
+
+arm-oe-linux-gnueabi-readelf -l
+./1_2.23-r0-new/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw
+
+Elf file type is DYN (Shared object file)
+Entry point 0x31cd1
+There are 10 program headers, starting at offset 52
+
+Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+ PHDR 0x000000 0x00000000 0x00000000 0x00000 0x00000 R 0
+readelf: Error: the PHDR segment is not covered by a LOAD segment
+ INTERP 0x030d40 0x00030d40 0x00030d40 0x0001d 0x0001d R 0x1
+ [Requesting program interpreter: /usr/lib/ld-linux-armhf.so.3]
+ LOAD 0x030d40 0x00030d40 0x00030d40 0x120b8 0x120b8 R E 0x200000
+ LOAD 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x102e0 0x202ec RW 0x200000
+ DYNAMIC 0x1ffdf8 0x003ffdf8 0x003ffdf8 0x00128 0x00128 RW 0x4
+ NOTE 0x030d60 0x00030d60 0x00030d60 0x00044 0x00044 R 0x4
+ GNU_EH_FRAME 0x042df0 0x00042df0 0x00042df0 0x00008 0x00008 R 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
+ EXIDX 0x032828 0x00032828 0x00032828 0x00008 0x00008 R 0x4
+ GNU_RELRO 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x00210 0x00210 RW 0x4
+
+ Section to Segment mapping:
+ Segment Sections...
+ 00
+ 01 .interp
+ 02 .interp .note.ABI-tag .note.gnu.build-id .dynsym .dynstr
+.gnu.hash .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text
+.fini .ARM.extab .ARM.exidx .rodata .eh_frame .eh_frame_hdr
+ 03 .fini_array .init_array .dynamic .got .data .bss
+ 04 .dynamic
+ 05 .note.ABI-tag .note.gnu.build-id
+ 06 .eh_frame_hdr
+ 07
+ 08 .ARM.extab .ARM.exidx
+ 09 .fini_array .init_array .dynamic .got
+
+And the diff between these 2:
+
+1_2.22-r0-old/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw.readelf
+1_2.23-r0-new/sysroot-destdir/usr/lib/libhugetlbfs/tests/obj32/linkhuge_rw.readelf
+ Elf file type is DYN (Shared object file)
+-Entry point 0x201105
++Entry point 0x31cd1
+ There are 10 program headers, starting at offset 52
+
+ Program Headers:
+ Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
+- PHDR 0x000034 0x00200034 0x00200034 0x00140 0x00140 R 0x4
+- INTERP 0x000174 0x00200174 0x00200174 0x0001d 0x0001d R 0x1
++ PHDR 0x000000 0x00000000 0x00000000 0x00000 0x00000 R 0
++readelf: Error: the PHDR segment is not covered by a LOAD segment
++ INTERP 0x030d40 0x00030d40 0x00030d40 0x0001d 0x0001d R 0x1
+ [Requesting program interpreter: /usr/lib/ld-linux-armhf.so.3]
+- LOAD 0x000000 0x00200000 0x00200000 0x1222c 0x1222c R E 0x200000
+- LOAD 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x102e0 0x202ec RW 0x200000
+- DYNAMIC 0x1ffdf8 0x005ffdf8 0x005ffdf8 0x00128 0x00128 RW 0x4
+- NOTE 0x000194 0x00200194 0x00200194 0x00044 0x00044 R 0x4
+- GNU_EH_FRAME 0x012224 0x00212224 0x00212224 0x00008 0x00008 R 0x4
++ LOAD 0x030d40 0x00030d40 0x00030d40 0x120b8 0x120b8 R E 0x200000
++ LOAD 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x102e0 0x202ec RW 0x200000
++ DYNAMIC 0x1ffdf8 0x003ffdf8 0x003ffdf8 0x00128 0x00128 RW 0x4
++ NOTE 0x030d60 0x00030d60 0x00030d60 0x00044 0x00044 R 0x4
++ GNU_EH_FRAME 0x042df0 0x00042df0 0x00042df0 0x00008 0x00008 R 0x4
+ GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
+- EXIDX 0x001c5c 0x00201c5c 0x00201c5c 0x00008 0x00008 R 0x4
+- GNU_RELRO 0x1ffdf0 0x005ffdf0 0x005ffdf0 0x00210 0x00210 RW 0x4
++ EXIDX 0x032828 0x00032828 0x00032828 0x00008 0x00008 R 0x4
++ GNU_RELRO 0x1ffdf0 0x003ffdf0 0x003ffdf0 0x00210 0x00210 RW 0x4
+
+ Section to Segment mapping:
+
+Revert fixes this build issue, but I still don't see why it fails this way.
+
+Upstream-Status: Pending
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+# Please enter the commit message for your changes. Lines starting
+# with '#' will be ignored, and an empty message aborts the commit.
+#
+# Date: Wed Sep 16 13:43:09 2020 +0200
+#
+# On branch jansa/master
+# Changes to be committed:
+# new file: meta-oe/recipes-benchmark/libhugetlbfs/files/0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch
+# modified: meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+#
+# Untracked files:
+# counts.txt
+# diff
+# log.svn
+# log.svn2
+# wip/
+#
+---
+ ld.hugetlbfs | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/ld.hugetlbfs b/ld.hugetlbfs
+index 5e4e497..6ee8238 100755
+--- a/ld.hugetlbfs
++++ b/ld.hugetlbfs
+@@ -130,9 +130,7 @@ if [ "$HTLB_ALIGN" == "slice" ]; then
+ # targeting the ARM platform one needs to explicitly set the text segment offset
+ # otherwise it will be NULL.
+ case "$EMU" in
+- armelf*_linux_eabi|aarch64elf*|aarch64linux*)
+- printf -v TEXTADDR "%x" "$SLICE_SIZE"
+- HTLBOPTS="$HTLBOPTS -Ttext-segment=$TEXTADDR" ;;
++ armelf*_linux_eabi|aarch64elf*|aarch64linux*) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;;
+ elf_i386) HTLBOPTS="$HTLBOPTS -Ttext-segment=0x08000000" ;;
+ elf64ppc|elf64lppc)
+ if [ "$MMU_TYPE" == "Hash" ] ; then
+--
+2.17.1
+
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch
new file mode 100644
index 0000000000..e45f283b38
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-huge_page_setup_helper-use-python3-interpreter.patch
@@ -0,0 +1,29 @@
+From b77c61de4d88d2c6e5d31f4f5a5877cc4c61272e Mon Sep 17 00:00:00 2001
+From: Andrey Zhizhikin <andrey.z@gmail.com>
+Date: Mon, 27 Jan 2020 17:27:55 +0000
+Subject: [PATCH] huge_page_setup_helper: use python3 interpreter
+
+Setup helper script is already prepared to be used with python3, use the
+interpreter explicitly. This removes dependency to python2 and will not
+fail the QA check.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
+---
+ huge_page_setup_helper.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/huge_page_setup_helper.py b/huge_page_setup_helper.py
+index a9ba2bf..7ba0c92 100755
+--- a/huge_page_setup_helper.py
++++ b/huge_page_setup_helper.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/env python3
+
+ #
+ # Tool to set up Linux large page support with minimal effort
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..914b0514f8
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-include-stddef.h-for-ptrdiff_t.patch
@@ -0,0 +1,25 @@
+From 351d1de09dd80049b7a2cb02c5750635d0389873 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:25:57 -0700
+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/morecore.c b/morecore.c
+index 6563bbd..0eef782 100644
+--- a/morecore.c
++++ b/morecore.c
+@@ -19,6 +19,7 @@
+
+ #define _GNU_SOURCE
+
++#include <stddef.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <malloc.h>
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
index 3082d7ef5f..83934abef8 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch
@@ -1,4 +1,4 @@
-From a85fc43243f8bfad12d306a4a0e230fb8b3e828a Mon Sep 17 00:00:00 2001
+From 0077532b07e268347cb8557be6d70148d5f0e840 Mon Sep 17 00:00:00 2001
From: Ting Liu <b28495@freescale.com>
Date: Wed, 21 Aug 2013 15:44:57 +0800
Subject: [PATCH] run_test.py: not use hard coded path ../obj/hugeadm
@@ -9,15 +9,21 @@ After 'make install', we can use hugeadm utility under DESTDIR.
Upstream-Status: Submitted
Signed-off-by: Ting Liu <b28495@freescale.com>
+
+Update for 2.22.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+Update to work for python3
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- tests/run_tests.py | 12 +++++++++++-
- 1 files changed, 11 insertions(+), 1 deletions(-)
+ tests/run_tests.py | 12 +++++++++++-
+ 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/tests/run_tests.py b/tests/run_tests.py
-index d9a6b35..a9bab8f 100755
+index 018264d..0aabcd1 100755
--- a/tests/run_tests.py
+++ b/tests/run_tests.py
-@@ -232,9 +232,19 @@ def get_pagesizes():
+@@ -245,9 +245,19 @@ def get_pagesizes():
Use libhugetlbfs' hugeadm utility to get a list of page sizes that have
active mount points and at least one huge page allocated to the pool.
"""
@@ -33,11 +39,11 @@ index d9a6b35..a9bab8f 100755
+ return sizes
+ except OSError:
+ return sizes
-+ out = p.stdout.read().strip()
++ out = p.stdout.read().decode().strip()
+
- if rc != 0 or out == "": return sizes
+ if rc != 0 or out == "":
+ return sizes
- for size in out.split("\n"): sizes.add(int(size))
--
-1.7.3.4
+2.7.4
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-makefile-Append-CPPFLAGS-rather-then-override.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-makefile-Append-CPPFLAGS-rather-then-override.patch
new file mode 100644
index 0000000000..78a4cb0fc2
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0001-tests-makefile-Append-CPPFLAGS-rather-then-override.patch
@@ -0,0 +1,31 @@
+From b6dba773491bbb7b4664dacdd87a12af860f1bd8 Mon Sep 17 00:00:00 2001
+From: Oleksiy Obitotskyy <oobitots@cisco.com>
+Date: Thu, 28 Jan 2021 05:43:33 -0800
+Subject: [PATCH] tests/makefile: Append CPPFLAGS rather then override
+
+CPPFLAGS overrided and we could miss some options needed.
+
+Upstream-Status: Submitted
+Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
+---
+ tests/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/Makefile b/tests/Makefile
+index 0ca3716..d262932 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -33,8 +33,8 @@ HELPERS = get_hugetlbfs_path compare_kvers
+ HELPER_LIBS = libheapshrink.so
+ BADTOOLCHAIN = bad-toolchain.sh
+
+-CFLAGS = -O2 -Wall -g
+-CPPFLAGS = -I..
++CFLAGS += -O2 -Wall -g
++CPPFLAGS += -I..
+ STATIC_LIBHUGE = -Wl,--whole-archive -lhugetlbfs -Wl,--no-whole-archive
+ STATIC_LDLIBS = -Wl,--no-as-needed -lpthread
+ LDLIBS = $(STATIC_LDLIBS) -ldl -lhugetlbfs_privutils
+--
+2.26.2.Cisco
+
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
new file mode 100644
index 0000000000..7ad6c43eb1
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0002-Mark-glibc-specific-code-so.patch
@@ -0,0 +1,39 @@
+From 0f548286848c70aa325c6748d80e8651389b4938 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:32:59 -0700
+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/morecore.c b/morecore.c
+index 0eef782..d48509c 100644
+--- a/morecore.c
++++ b/morecore.c
+@@ -364,6 +364,7 @@ void hugetlbfs_setup_morecore(void)
+
+ INFO("setup_morecore(): heapaddr = 0x%lx\n", heapaddr);
+
++#ifdef __GLIBC__
+ heaptop = heapbase = (void *)heapaddr;
+ if (__hugetlb_opts.thp_morecore)
+ __morecore = &thp_morecore;
+@@ -371,7 +372,6 @@ void hugetlbfs_setup_morecore(void)
+ __morecore = &hugetlbfs_morecore;
+
+ /* Set some allocator options more appropriate for hugepages */
+-
+ if (__hugetlb_opts.shrink_ok)
+ mallopt(M_TRIM_THRESHOLD, hpage_size + hpage_size / 2);
+ else
+@@ -381,4 +381,5 @@ void hugetlbfs_setup_morecore(void)
+ * This doesn't appear to prohibit malloc() from falling back
+ * to mmap() if we run out of hugepages. */
+ mallopt(M_MMAP_MAX, 0);
++#endif
+ }
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
new file mode 100644
index 0000000000..858a8e511a
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch
@@ -0,0 +1,48 @@
+From 9ff04d7acc700387e3837f8ab11a41efea5ee8b0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:44:26 -0700
+Subject: [PATCH] alloc.c: Avoid sysconf(_SC_LEVEL2_CACHE_LINESIZE) on linux
+
+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/alloc.c b/alloc.c
+index bce9464..cf7eb40 100644
+--- a/alloc.c
++++ b/alloc.c
+@@ -245,6 +245,19 @@ void free_huge_pages(void *ptr)
+ __free_huge_pages(ptr, 1);
+ }
+
++static size_t get_cacheline_size() {
++#if defined(__linux__)
++ FILE * fp = fopen("/sys/devices/system/cpu/cpu0/cache/index0/coherency_line_size", "r");
++ unsigned int line_size = 0;
++ if (fp) {
++ fscanf(fp, "%d", &line_size);
++ fclose(fp);
++ }
++ return line_size;
++#else
++ return sysconf(_SC_LEVEL2_CACHE_LINESIZE);
++#endif
++}
+ /*
+ * Offset the buffer using bytes wasted due to alignment to avoid using the
+ * same cache lines for the start of every buffer returned by
+@@ -261,7 +274,7 @@ void *cachecolor(void *buf, size_t len, size_t color_bytes)
+
+ /* Lookup our cacheline size once */
+ if (cacheline_size == 0) {
+- cacheline_size = sysconf(_SC_LEVEL2_CACHE_LINESIZE);
++ cacheline_size = get_cacheline_size();
+ linemod = time(NULL);
+ }
+
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
new file mode 100644
index 0000000000..c3f7b3e479
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0004-shm.c-Mark-glibc-specific-changes-so.patch
@@ -0,0 +1,30 @@
+From 9ce323432a7f4d99f617970c7e35b607b9bbf843 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:48:04 -0700
+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/shm.c b/shm.c
+index 1f82cab..9447b63 100644
+--- a/shm.c
++++ b/shm.c
+@@ -48,10 +48,11 @@
+ * system shmget() may be performed without worry as there is no dynamic
+ * call chain.
+ */
++#ifdef __GLIBC__
+ extern void *dlsym (void *__restrict __handle, __const char *__restrict __name)
+ __attribute__((weak)) __THROW __nonnull ((2));
+ extern char *dlerror (void) __attribute__((weak)) __THROW;
+-
++#endif
+
+ /* call syscall shmget through the generic syscall mechanism */
+ static int syscall_shmget(key_t key, size_t size, int shmflg)
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
new file mode 100644
index 0000000000..8bd1633392
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0005-Include-dirent.h-for-ino_t.patch
@@ -0,0 +1,33 @@
+From bb8c370aaaf25b1fe1fbf984e73177018026cb91 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:51:02 -0700
+Subject: [PATCH] Include dirent.h for ino_t
+
+Fixes
+error: unknown type name 'ino_t'; did you mean 'int'?
+
+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/tests/hugetests.h b/tests/hugetests.h
+index bc4e16a..fbe4dc0 100644
+--- a/tests/hugetests.h
++++ b/tests/hugetests.h
+@@ -22,6 +22,7 @@
+
+ #include <errno.h>
+ #include <string.h>
++#include <dirent.h>
+ #include <unistd.h>
+
+ #include "libhugetlbfs_privutils.h"
+--
+2.7.4
+
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
new file mode 100644
index 0000000000..e4f8030961
--- /dev/null
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/0006-include-limits.h-for-PATH_MAX.patch
@@ -0,0 +1,42 @@
+From 5f64aa8c47c2d3a155a97e262f89cc47394a69eb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Jun 2018 19:58:53 -0700
+Subject: [PATCH] include limits.h for PATH_MAX
+
+Fixes
+
+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/hugeadm.c b/hugeadm.c
+index fe4211d..8db274c 100644
+--- a/hugeadm.c
++++ b/hugeadm.c
+@@ -33,6 +33,7 @@
+ #include <grp.h>
+ #include <pwd.h>
+ #include <fcntl.h>
++#include <limits.h>
+
+ #include <sys/stat.h>
+ #include <sys/types.h>
+diff --git a/tests/gethugepagesizes.c b/tests/gethugepagesizes.c
+index 9551b38..2645e3f 100644
+--- a/tests/gethugepagesizes.c
++++ b/tests/gethugepagesizes.c
+@@ -29,6 +29,7 @@
+ #include <fcntl.h>
+ #include <stdarg.h>
+ #include <hugetlbfs.h>
++#include <limits.h>
+
+ #include "hugetests.h"
+
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch
deleted file mode 100644
index ce6974d7c1..0000000000
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/Force-text-segment-alignment-to-0x08000000-for-i386-.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 3c6f8d0e3c0694f79244ec6ad5ad9ba3ca26bc0a Mon Sep 17 00:00:00 2001
-From: Yang Shi <yang.shi@linaro.org>
-Date: Mon, 7 Dec 2015 14:12:13 -0800
-Subject: [PATCH] Force text segment alignment to 0x08000000 for i386 with gold
- linker
-
-Upstream-Status: Backport
-
-When build libhugetlbfs tests with gold linker for i386, the below error occurs:
-
-i586-oe-linux-gcc -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu
--Wl,--as-needed
---sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86 -I..
--O2
--Wall -g -o obj32/linkhuge_rw.o -c linkhuge_rw.c
-| i586-oe-linux-gcc -m32 -march=i586 -Wl,-O1 -Wl,--hash-style=gnu
--Wl,--as-needed
---sysroot=/home/jenkins/oe/world/shr-core/tmp-glibc/sysroots/qemux86
--B./obj32
--Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,-z,noexecstack -ldl
--L../obj32
--o obj32/linkhuge_rw -Wl,--no-as-needed -lpthread -ldl -lhugetlbfs_privutils
--Wl,--hugetlbfs-align obj32/linkhuge_rw.o obj32/testutils.o
-| i586-oe-linux-ld: internal error in do_write, at
-/home/jenkins/oe/world/shr-core/tmp-glibc/work/x86_64-oe-linux/binutils-cross-i586/2.25-r0/git/gold/output.cc:464
-| collect2: error: ld returned 1 exit status
-
-But, it works well with GNU linker. --hugetlbfs-align flag passes
-"-zcommon-page-size=$SLICE_SIZE -zmax-page-size=$SLICE_SIZE", that are supported by gold linker too.
-But, it looks gold linker deal with them in a different way from gnu linker for i586.
-
-The readelf shows the below result with GNU linker:
-
-Elf file type is EXEC (Executable file)
-Entry point 0x8048fbd
-There are 8 program headers, starting at offset 52
-
-Program Headers:
- Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
- PHDR 0x000034 0x08000034 0x08000034 0x00100 0x00100 R E 0x4
- INTERP 0x048134 0x08048134 0x08048134 0x00013 0x00013 R 0x1
- [Requesting program interpreter: /lib/ld-linux.so.2]
- LOAD 0x000000 0x08000000 0x08000000 0x5a5bc 0x5a5bc R E 0x400000
- LOAD 0x05a5bc 0x0845a5bc 0x0845a5bc 0x1028c 0x202cc RW 0x400000
- DYNAMIC 0x05a5d0 0x0845a5d0 0x0845a5d0 0x000e8 0x000e8 RW 0x4
- NOTE 0x048148 0x08048148 0x08048148 0x00044 0x00044 R 0x4
- GNU_EH_FRAME 0x059e5c 0x08059e5c 0x08059e5c 0x0009c 0x0009c R 0x4
- GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
-
-"--relax" linker option doesn't solve this problem.
-Forced textsegment alignment to 0x08000000 with gold linker, the build will pass and
-readelf shows the same result with GNU linker:
-
-Elf file type is EXEC (Executable file)
-Entry point 0x8048fbd
-There are 8 program headers, starting at offset 52
-
-Program Headers:
- Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
- PHDR 0x000034 0x08000034 0x08000034 0x00100 0x00100 R E 0x4
- INTERP 0x048134 0x08048134 0x08048134 0x00013 0x00013 R 0x1
- [Requesting program interpreter: /lib/ld-linux.so.2]
- LOAD 0x000000 0x08000000 0x08000000 0x5a5bc 0x5a5bc R E 0x400000
- LOAD 0x05a5bc 0x0845a5bc 0x0845a5bc 0x1028c 0x202cc RW 0x400000
- DYNAMIC 0x05a5d0 0x0845a5d0 0x0845a5d0 0x000e8 0x000e8 RW 0x4
- NOTE 0x048148 0x08048148 0x08048148 0x00044 0x00044 R 0x4
- GNU_EH_FRAME 0x059e5c 0x08059e5c 0x08059e5c 0x0009c 0x0009c R 0x4
- GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RW 0x10
-
-The fix just have impact on hugelink_rw test case, which needs --hugetlbfs-align flag.
-
-Signed-off-by: Yang Shi <yang.shi@linaro.org>
-Signed-off-by: Eric B Munson <emunson@mgebm.net>
----
- ld.hugetlbfs | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/ld.hugetlbfs b/ld.hugetlbfs
-index 4417442..32bc6fb 100755
---- a/ld.hugetlbfs
-+++ b/ld.hugetlbfs
-@@ -98,6 +98,7 @@ if [ "$HTLB_ALIGN" == "slice" ]; then
- # otherwise it will be NULL.
- case "$EMU" in
- armelf*_linux_eabi) HTLBOPTS="$HTLBOPTS -Ttext-segment=$SLICE_SIZE" ;;
-+ elf_i386) HTLBOPTS="$HTLBOPTS -Ttext-segment=0x08000000" ;;
- esac
- fi
-
---
-2.0.2
-
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
index b3fd843128..f95e9e85a4 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-avoid-search-host-library-path-for-cros.patch
@@ -1,19 +1,20 @@
-From 0a2877400a086e9d6ddd32a80462b7a931921dc2 Mon Sep 17 00:00:00 2001
+From 82a4f60ab24dff121f5f9d3bbcd9a8a28bb7caef Mon Sep 17 00:00:00 2001
From: Chunrong Guo <B40290@freescale.com>
Date: Sun, 8 Sep 2013 23:21:49 -0500
-Subject: [PATCH] libhugetlbfs: avoid search host library path for cross
+Subject: [PATCH] libhugetlbfs: avoid search host library path for cross
compilation
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Chunrong Guo <B40290@freescale.com>
+
---
- ldscripts/elf32ppclinux.xB | 2 +-
- ldscripts/elf32ppclinux.xBDT | 2 +-
- ldscripts/elf64ppc.xB | 2 +-
- ldscripts/elf64ppc.xBDT | 2 +-
- ldscripts/elf_x86_64.xB | 2 +-
- ldscripts/elf_x86_64.xBDT | 2 +-
+ ldscripts/elf32ppclinux.xB | 2 +-
+ ldscripts/elf32ppclinux.xBDT | 2 +-
+ ldscripts/elf64ppc.xB | 2 +-
+ ldscripts/elf64ppc.xBDT | 2 +-
+ ldscripts/elf_x86_64.xB | 2 +-
+ ldscripts/elf_x86_64.xBDT | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/ldscripts/elf32ppclinux.xB b/ldscripts/elf32ppclinux.xB
@@ -94,6 +95,3 @@ index 1855202..c62d245 100644
INPUT(-lhugetlbfs);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
---
-1.7.9.7
-
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
index 15664884bf..7cc180a4b7 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/libhugetlbfs-elf_i386-avoid-search-host-library-path.patch
@@ -1,14 +1,16 @@
-From 889e52753d30179ba4ac940023cb4ed561436ab8 Mon Sep 17 00:00:00 2001
+From b5887693d90c430291b644c2f5713b5fdd1777ce Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
Date: Tue, 4 Nov 2014 00:49:11 -0800
-Subject: [PATCH] libhugetlbfs/elf_i386: avoid search host library path for cross compilation
+Subject: [PATCH] libhugetlbfs/elf_i386: avoid search host library path for
+ cross compilation
Upstream-Status: Inappropriate [cross compile specific]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
- ldscripts/elf_i386.xB | 1 -
- ldscripts/elf_i386.xBDT | 1 -
+ ldscripts/elf_i386.xB | 1 -
+ ldscripts/elf_i386.xBDT | 1 -
2 files changed, 2 deletions(-)
diff --git a/ldscripts/elf_i386.xB b/ldscripts/elf_i386.xB
@@ -35,6 +37,3 @@ index d72aebe..3bac1b1 100644
INPUT(-lhugetlbfs);
/* Do we need any of these for elf?
__DYNAMIC = 0; */
---
-1.7.9.5
-
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
index 07a99719b0..a13c5389fb 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch
@@ -1,17 +1,20 @@
-From 355c014573de7f95202cc7c819f81f0f230e4a1a Mon Sep 17 00:00:00 2001
+From 183a4dafe141197de5840f2e48c266ef209307aa Mon Sep 17 00:00:00 2001
From: Ting Liu <b28495@freescale.com>
Date: Mon, 18 Jun 2012 16:37:05 +0800
Subject: [PATCH] skip checking LIB32 and LIB64 if they point to the same place
Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Ting Liu <b28495@freescale.com>
+
---
+ Makefile | 1 -
+ 1 file changed, 1 deletion(-)
diff --git a/Makefile b/Makefile
-index 91502e1..bfb3414 100644
+index 51e41f0..373df3c 100644
--- a/Makefile
+++ b/Makefile
-@@ -167,7 +167,6 @@ REALLIB32 = $(realpath $(PREFIX)/$(LIB32))
+@@ -177,7 +177,6 @@ REALLIB32 = $(realpath $(PREFIX)/$(LIB32))
REALLIB64 = $(realpath $(PREFIX)/$(LIB64))
ifneq ($(realpath $(PREFIX)),)
ifeq ($(REALLIB32),$(REALLIB64))
@@ -19,5 +22,3 @@ index 91502e1..bfb3414 100644
endif
endif
---
-1.9.2
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch b/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
index 249f6e1e23..b8b2f8e6fb 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/files/tests-Makefile-install-static-4G-edge-testcases.patch
@@ -1,12 +1,23 @@
+From f1ad8ff887f16daee8d06eca3df0f2541bfdaac0 Mon Sep 17 00:00:00 2001
+From: Ting Liu <b28495@freescale.com>
+Date: Mon, 23 Sep 2013 08:00:55 +0000
+Subject: [PATCH] libhugetlbfs: add recipe
+
Upstream-Status: Submitted
TESTS_64 is empty, install will fail due to missing file operand
Signed-off-by: Ting Liu <b28495@freescale.com>
---- a/tests/Makefileold 2013-10-12 02:32:55.262391998 -0500
-+++ b/tests/Makefile 2013-10-12 02:33:45.929394722 -0500
-@@ -292,7 +292,7 @@
+---
+ tests/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Makefile b/tests/Makefile
+index 073df96..0ca3716 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -295,7 +295,7 @@ obj64/install:
$(INSTALL) -m 755 wrapper-utils.sh $(DESTDIR)$(INST_TESTSDIR64)/obj64
$(INSTALL) -m 755 $(HELPERS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
$(INSTALL) -m 755 $(HELPER_LIBS:%=obj64/%) $(DESTDIR)$(INST_TESTSDIR64)/obj64
diff --git a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
index ee1b9d0507..80af9873b1 100644
--- a/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
+++ b/meta-oe/recipes-benchmark/libhugetlbfs/libhugetlbfs_git.bb
@@ -1,24 +1,32 @@
SUMMARY = "A library which provides easy access to huge pages of memory"
HOMEPAGE = "https://github.com/libhugetlbfs/libhugetlbfs"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
-DEPENDS = "sysfsutils perl"
-RDEPENDS_${PN} += "bash perl python python-io python-lang python-subprocess python-resource ${PN}-perl"
-RDEPENDS_${PN}-tests += "bash"
+DEPENDS = "sysfsutils"
+RDEPENDS:${PN} += "bash python3-core"
+RDEPENDS:${PN}-tests += "bash python3-core"
-PV = "2.20"
+PV = "2.23"
PE = "1"
-SRCREV = "e44180072b796c0e28e53c4d01ef6279caaa2a99"
+SRCREV = "6b126a4d7da9490fa40fe7e1b962edcb939feddc"
SRC_URI = " \
- git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https \
+ git://github.com/libhugetlbfs/libhugetlbfs.git;protocol=https;branch=master \
file://skip-checking-LIB32-and-LIB64-if-they-point-to-the-s.patch \
file://libhugetlbfs-avoid-search-host-library-path-for-cros.patch \
file://tests-Makefile-install-static-4G-edge-testcases.patch \
file://0001-run_test.py-not-use-hard-coded-path-.-obj-hugeadm.patch \
file://libhugetlbfs-elf_i386-avoid-search-host-library-path.patch \
- file://Force-text-segment-alignment-to-0x08000000-for-i386-.patch \
+ file://0001-include-stddef.h-for-ptrdiff_t.patch \
+ file://0002-Mark-glibc-specific-code-so.patch \
+ file://0003-alloc.c-Avoid-sysconf-_SC_LEVEL2_CACHE_LINESIZE-on-l.patch \
+ file://0004-shm.c-Mark-glibc-specific-changes-so.patch \
+ file://0005-Include-dirent.h-for-ino_t.patch \
+ file://0006-include-limits.h-for-PATH_MAX.patch \
+ file://0001-huge_page_setup_helper-use-python3-interpreter.patch \
+ file://0001-Revert-ld.hugetlbfs-fix-Ttext-segment-argument-on-AA.patch \
+ file://0001-tests-makefile-Append-CPPFLAGS-rather-then-override.patch \
"
UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
@@ -29,8 +37,9 @@ COMPATIBLE_HOST = "(i.86|x86_64|powerpc|powerpc64|aarch64|arm).*-linux*"
LIBARGS = "LIB32=${baselib} LIB64=${baselib}"
LIBHUGETLBFS_ARCH = "${TARGET_ARCH}"
-LIBHUGETLBFS_ARCH_powerpc = "ppc"
-LIBHUGETLBFS_ARCH_powerpc64 = "ppc64"
+LIBHUGETLBFS_ARCH:powerpc = "ppc"
+LIBHUGETLBFS_ARCH:powerpc64 = "ppc64"
+LIBHUGETLBFS_ARCH:powerpc64le = "ppc64le"
EXTRA_OEMAKE = "'ARCH=${LIBHUGETLBFS_ARCH}' 'OPT=${CFLAGS}' 'CC=${CC}' ${LIBARGS} BUILDTYPE=NATIVEONLY V=2"
PARALLEL_MAKE = ""
CFLAGS += "-fexpensive-optimizations -frename-registers -fomit-frame-pointer -g0"
@@ -45,14 +54,6 @@ do_configure() {
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'ld-is-gold', d)}" ]; then
sed -i 's/CUSTOM_LDSCRIPTS = yes/CUSTOM_LDSCRIPTS = no/' Makefile
fi
-
- # fixup perl module directory hardcoded to perl5
- sed -i 's/perl5/perl/g' Makefile
-
- # fixup to install perl module under $(LIBDIR)/perl/${@get_perl_version(d)}/TLBC
- # to avoid below error
- # Can't locate TLBC/OpCollect.pm in @INC
- sed -i '/^PMDIR/ s:perl:perl/${@get_perl_version(d)}:g' Makefile
}
do_install() {
@@ -63,14 +64,16 @@ do_install() {
}
-PACKAGES =+ "${PN}-perl ${PN}-tests "
-FILES_${PN} += "${libdir}/*.so"
-FILES_${PN}-dev = "${includedir}"
-FILES_${PN}-dbg += "${libdir}/libhugetlbfs/tests/obj32/.debug ${libdir}/libhugetlbfs/tests/obj64/.debug"
-FILES_${PN}-perl = "${libdir}/perl"
-FILES_${PN}-tests += "${libdir}/libhugetlbfs/tests"
+PACKAGES =+ "${PN}-tests "
+FILES:${PN} += "${libdir}/*.so"
+FILES:${PN}-dev = "${includedir}"
+FILES:${PN}-dbg += "${libdir}/libhugetlbfs/tests/obj32/.debug ${libdir}/libhugetlbfs/tests/obj64/.debug"
+FILES:${PN}-tests += "${libdir}/libhugetlbfs/tests"
-INSANE_SKIP_${PN} = "dev-so"
+INSANE_SKIP:${PN} = "dev-so"
INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
+
+# see https://github.com/libhugetlbfs/libhugetlbfs/issues/52
+SKIP_RECIPE[libhugetlbfs] ?= "Needs porting to glibc 2.34+"
diff --git a/meta-oe/recipes-benchmark/linpack/linpack/0001-linpack-Define-DP-only-when-SP-is-not-defined.patch b/meta-oe/recipes-benchmark/linpack/linpack/0001-linpack-Define-DP-only-when-SP-is-not-defined.patch
new file mode 100644
index 0000000000..4eb18e38ca
--- /dev/null
+++ b/meta-oe/recipes-benchmark/linpack/linpack/0001-linpack-Define-DP-only-when-SP-is-not-defined.patch
@@ -0,0 +1,32 @@
+From f092d4be22acd09e791187b8e9bff6d312721ce4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 10 Nov 2021 11:36:31 -0800
+Subject: [PATCH] linpack: Define DP only when SP is not defined
+
+This helps compiling two versions ( SP/FP ) of the benchmark just by
+passing -DSP on compile cmdline
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ linpacknew.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/linpacknew.c b/linpacknew.c
+index 17b2824..c656082 100644
+--- a/linpacknew.c
++++ b/linpacknew.c
+@@ -28,7 +28,9 @@
+ #include <time.h>
+ #include <float.h>
+
++#ifndef SP
+ #define DP
++#endif
+
+ #ifdef SP
+ #define ZERO 0.0
+--
+2.33.1
+
diff --git a/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb b/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
index aed95cdaa4..603004ddd5 100644
--- a/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
+++ b/meta-oe/recipes-benchmark/linpack/linpack_1.0.bb
@@ -4,17 +4,21 @@ SUMMARY = "LINPACK is a software library for performing numerical linear algebra
LICENSE = "PD"
LIC_FILES_CHKSUM ="file://${WORKDIR}/linpacknew.c;beginline=1;endline=23;md5=aa025e3bc44190c71e4c5e3b084fed87"
-SRC_URI = "http://www.netlib.org/benchmark/linpackc.new;downloadfilename=linpacknew.c"
+SRC_URI = "http://www.netlib.org/benchmark/linpackc.new;downloadfilename=linpacknew.c \
+ file://0001-linpack-Define-DP-only-when-SP-is-not-defined.patch \
+ "
SRC_URI[md5sum] = "1c5d0b6a31264685d2e651c920e3cdf4"
SRC_URI[sha256sum] = "a63f2ec86512959f1fd926bfafb85905b2d7b7402942ffae3af374d48745e97e"
S = "${WORKDIR}"
do_compile () {
- ${CC} ${CFLAGS} ${LDFLAGS} -o linpack linpacknew.c -lm
+ ${CC} ${CFLAGS} ${LDFLAGS} -DDP -o linpack_dp linpacknew.c -lm
+ ${CC} ${CFLAGS} ${LDFLAGS} -DSP -o linpack_sp linpacknew.c -lm
}
do_install () {
- install -Dm 0755 linpack ${D}${bindir}/linpack
+ install -Dm 0755 linpack_dp ${D}${bindir}/linpack_dp
+ install -Dm 0755 linpack_sp ${D}${bindir}/linpack_sp
}
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch
deleted file mode 100644
index d7169495fa..0000000000
--- a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/0001-Check-for-musl-define-guard-before-redefining-sockle.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From ac1657e11cbb0545bdf4d1124def8c013958ed7e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Jul 2017 18:08:51 -0700
-Subject: [PATCH] Check for musl define guard before redefining socklen_t
-
-musl uses __DEFINED_socklen_t so check for that as well
-along with HAVE_socklen_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/bench.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/bench.h b/src/bench.h
-index 597d068..2ebdf5a 100644
---- a/src/bench.h
-+++ b/src/bench.h
-@@ -77,7 +77,7 @@ typedef long long int64;
- #endif /* HAVE_int64_t */
- #endif /* HAVE_int64 */
-
--#ifndef HAVE_socklen_t
-+#if !defined(HAVE_socklen_t) && !defined(__DEFINED_socklen_t)
- typedef int socklen_t;
- #endif
-
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch b/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
deleted file mode 100644
index c6e9465ac3..0000000000
--- a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/use-base_libdir-instead-of-hardcoded-lib.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 73fdc58ca4eb9e2f24d854b3af3a4e5daac5a33e Mon Sep 17 00:00:00 2001
-From: Ting Liu <b28495@freescale.com>
-Date: Fri, 22 Nov 2013 15:20:08 +0800
-Subject: [PATCH] use base_libdir instead of hardcoded /lib
-
-Upstream Status: Inappropriate [configuration]
-
-Signed-off-by: Ting Liu <b28495@freescale.com>
-
----
- src/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index c7a8c79..c7e4e3c 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -143,10 +143,10 @@ install-target:
- if [ ! -d $(BASE) ]; then mkdir $(BASE); fi
- if [ ! -d $(BASE)/bin ]; then mkdir $(BASE)/bin; fi
- if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
-- if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
-+ if [ ! -d $(BASE)$(base_libdir) ]; then mkdir $(BASE)$(base_libdir); fi
- cp $(EXES) $(BASE)/bin
- cp $(INCS) $(BASE)/include
-- cp $O/lmbench.a $(BASE)/lib/libmbench.a
-+ cp $O/lmbench.a $(BASE)$(base_libdir)
- cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
-
-
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-bench.h-Fix-typo-in-specifying-string.h.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-bench.h-Fix-typo-in-specifying-string.h.patch
new file mode 100644
index 0000000000..e9220ecbdd
--- /dev/null
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-bench.h-Fix-typo-in-specifying-string.h.patch
@@ -0,0 +1,27 @@
+From 4bbedd25e74adb5cb181a9ae589adb2052ade630 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 23:34:48 -0700
+Subject: [PATCH] bench.h: Fix typo in specifying string.h
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/bench.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bench.h b/src/bench.h
+index 2ebdf5a..750bebf 100644
+--- a/src/bench.h
++++ b/src/bench.h
+@@ -21,7 +21,7 @@ typedef unsigned char bool_t;
+ #include <signal.h>
+ #include <errno.h>
+ #ifndef WIN32
+-#include <strings.h>
++#include <string.h>
+ #endif
+ #include <sys/types.h>
+ #ifndef WIN32
+--
+2.37.3
+
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
new file mode 100644
index 0000000000..9014f80ab6
--- /dev/null
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch
@@ -0,0 +1,32 @@
+From 9bf2b363c5173c03adecf366f116415dbc559017 Mon Sep 17 00:00:00 2001
+From: Yanfei Xu <yanfei.xu@windriver.com>
+Date: Tue, 23 Feb 2021 10:54:26 +0800
+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/doc/lat_unix_connect.8 b/doc/lat_unix_connect.8
+index b42e9a4..5ab1a51 100644
+--- a/doc/lat_unix_connect.8
++++ b/doc/lat_unix_connect.8
+@@ -25,9 +25,9 @@ is a client/server program that measures interprocess
+ connection latencies. The benchmark times the creation and connection of
+ an AF_UNIX socket to a local server.
+ .LP
+-.B lat_connect
+-has three forms of usage: as a server (-s), as a client (lat_connect),
+-and as a shutdown (lat_connect -S).
++.B lat_unix_connect
++has three forms of usage: as a server (-s), as a client (lat_unix_connect),
++and as a shutdown (lat_unix_connect -S).
+ .SH OUTPUT
+ The reported time is in microseconds per connection.
+ Output format is like so
+--
+2.27.0
+
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
new file mode 100644
index 0000000000..b960a7d19f
--- /dev/null
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-doc-Fix-typos-in-manual-pages.patch
@@ -0,0 +1,102 @@
+From a8d86a2d994a008dab3c3ecad65528c0e5fc2cba Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Fri, 22 Jan 2021 11:22:48 +0800
+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 +-
+ doc/lat_http.8 | 6 +++---
+ doc/lat_select.8 | 2 +-
+ doc/lat_sig.8 | 2 +-
+ 6 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/doc/bw_mem.8 b/doc/bw_mem.8
+index 33df417..9e84d73 100644
+--- a/doc/bw_mem.8
++++ b/doc/bw_mem.8
+@@ -3,7 +3,7 @@
+ .SH NAME
+ bw_mem \- time memory bandwidth
+ .SH SYNOPSIS
+-.B bw_mem_cp
++.B bw_mem
+ [
+ .I "-P <parallelism>"
+ ]
+diff --git a/doc/lat_fcntl.8 b/doc/lat_fcntl.8
+index cf3c93e..2e501d6 100644
+--- a/doc/lat_fcntl.8
++++ b/doc/lat_fcntl.8
+@@ -3,7 +3,7 @@
+ .SH NAME
+ lat_fcntl \- fcntl file locking benchmark
+ .SH SYNOPSIS
+-.B lat_ctx
++.B lat_fcntl
+ [
+ .I "-P <parallelism>"
+ ]
+diff --git a/doc/lat_fifo.8 b/doc/lat_fifo.8
+index 65e5a08..90bc900 100644
+--- a/doc/lat_fifo.8
++++ b/doc/lat_fifo.8
+@@ -3,7 +3,7 @@
+ .SH NAME
+ lat_fifo \- FIFO benchmark
+ .SH SYNOPSIS
+-.B lat_ctx
++.B lat_fifo
+ [
+ .I "-P <parallelism>"
+ ]
+diff --git a/doc/lat_http.8 b/doc/lat_http.8
+index a4bb459..99c5d4a 100644
+--- a/doc/lat_http.8
++++ b/doc/lat_http.8
+@@ -1,9 +1,9 @@
+ .\" $Id$
+-.TH LAT_FCNTL 8 "$Date$" "(c)1994-2000 Carl Staelin and Larry McVoy" "LMBENCH"
++.TH LAT_HTTP 8 "$Date$" "(c)1994-2000 Carl Staelin and Larry McVoy" "LMBENCH"
+ .SH NAME
+-lat_fcntl \- fcntl file locking benchmark
++lat_http \- http GET request latency
+ .SH SYNOPSIS
+-.B lat_ctx
++.B lat_http
+ [
+ .I "-d"
+ ]
+diff --git a/doc/lat_select.8 b/doc/lat_select.8
+index 03f83bf..e13499f 100644
+--- a/doc/lat_select.8
++++ b/doc/lat_select.8
+@@ -3,7 +3,7 @@
+ .SH NAME
+ lat_select \- select benchmark
+ .SH SYNOPSIS
+-.B lat_ctx
++.B lat_select
+ [
+ .I "-P <parallelism>"
+ ]
+diff --git a/doc/lat_sig.8 b/doc/lat_sig.8
+index 91baf78..19a8838 100644
+--- a/doc/lat_sig.8
++++ b/doc/lat_sig.8
+@@ -3,7 +3,7 @@
+ .SH NAME
+ lat_sig \- select benchmark
+ .SH SYNOPSIS
+-.B lat_ctx
++.B lat_sig
+ [
+ .I "-P <parallelism>"
+ ]
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..b46c5fae76
--- /dev/null
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lat_fifo-Fix-cleanup-sequence.patch
@@ -0,0 +1,44 @@
+From 78912c0ac5e090095a2f2bd6226e02cce949e72e Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Fri, 22 Jan 2021 10:03:38 +0000
+Subject: [PATCH] lat_fifo: Fix cleanup sequence
+
+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/src/lat_fifo.c b/src/lat_fifo.c
+index c625161..85bb9d1 100644
+--- a/src/lat_fifo.c
++++ b/src/lat_fifo.c
+@@ -120,16 +120,16 @@ cleanup(iter_t iterations, void * cookie)
+
+ if (iterations) return;
+
+- unlink(state->filename1);
+- unlink(state->filename2);
+- close(state->wr);
+- close(state->rd);
+-
+ if (state->pid > 0) {
+- kill(state->pid, 15);
++ kill(state->pid, SIGKILL);
+ waitpid(state->pid, NULL, 0);
+ state->pid = 0;
+ }
++
++ unlink(state->filename1);
++ unlink(state->filename2);
++ close(state->wr);
++ close(state->rd);
+ }
+
+ void
+--
+2.29.2
+
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/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-3.0-a9/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
new file mode 100644
index 0000000000..7b713a3243
--- /dev/null
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-lmbench-Point-webpage-lm-to-target-directory.patch
@@ -0,0 +1,79 @@
+From 353e8a62bf3cb5f1b9504efa16b8b974e93cac49 Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Fri, 22 Jan 2021 10:58:41 +0800
+Subject: [PATCH] lmbench: Point webpage-lm to target directory
+
+As webpage-lm.tar has been copied to ${datadir}\lmbench.
+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/scripts/lmbench b/scripts/lmbench
+index 7a52cb1..82e36b6 100755
+--- a/scripts/lmbench
++++ b/scripts/lmbench
+@@ -167,7 +167,7 @@ if [ X$BENCHMARK_OS = XYES -o X$BENCHMARK_UNIX = XYES ]; then
+ lat_unix -P $SYNC_MAX
+ fi
+ if [ X$BENCHMARK_OS = XYES -o X$BENCHMARK_PROC = XYES ]; then
+- cp hello /tmp/hello
++ cp `which hello` /tmp/hello
+ for i in fork exec shell
+ do lat_proc -P $SYNC_MAX $i
+ done
+@@ -237,14 +237,14 @@ fi
+
+ date >> ${OUTPUT}
+ echo Local networking >> ${OUTPUT}
+-if [ ! -d ../../src/webpage-lm ]
+-then (cd ../../src && tar xf webpage-lm.tar)
++if [ ! -d /usr/share/lmbench/webpage-lm ]
++then (cd /usr/share/lmbench && tar xf webpage-lm.tar)
+ sync
+ sleep 1
+ fi
+ SERVERS="lat_udp lat_tcp lat_rpc lat_connect bw_tcp"
+ for server in $SERVERS; do $server -s; done
+-DOCROOT=../../src/webpage-lm lmhttp 8008 &
++DOCROOT=/usr/share/lmbench/webpage-lm lmhttp 8008 &
+ sleep 2;
+
+ if [ X$BENCHMARK_OS = XYES -o X$BENCHMARK_UDP = XYES ]; then
+@@ -280,15 +280,15 @@ bw_tcp -S localhost
+
+ if [ X$BENCHMARK_OS = XYES -o X$BENCHMARK_HTTP = XYES ]; then
+ # I want a hot cache number
+- lat_http localhost 8008 < ../../src/webpage-lm/URLS > /dev/null 2>&1
+- lat_http localhost 8008 < ../../src/webpage-lm/URLS
++ lat_http localhost 8008 < /usr/share/lmbench/webpage-lm/URLS > /dev/null 2>&1
++ lat_http localhost 8008 < /usr/share/lmbench/webpage-lm/URLS
+ fi
+ lat_http -S localhost 8008
+
+ for remote in $REMOTE
+ do
+ echo Networking to $remote >> ${OUTPUT}
+- $RCP $SERVERS lmhttp ../../src/webpage-lm.tar ${remote}:/tmp
++ $RCP $SERVERS lmhttp /usr/share/lmbench/webpage-lm.tar ${remote}:/tmp
+ for server in $SERVERS
+ do $RSH $remote -n /tmp/$server -s &
+ done
+@@ -327,8 +327,8 @@ do
+
+ if [ X$BENCHMARK_OS = XYES -o X$BENCHMARK_HTTP = XYES ]; then
+ # I want a hot cache number
+- lat_http $remote 8008 < ../../src/webpage-lm/URLS > /dev/null 2>&1
+- lat_http $remote 8008 < ../../src/webpage-lm/URLS
++ lat_http $remote 8008 < /usr/share/lmbench/webpage-lm/URLS > /dev/null 2>&1
++ lat_http $remote 8008 < /usr/share/lmbench/webpage-lm/URLS
+ fi
+ lat_http -S $remote 8008
+
+--
+2.17.1
+
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-scripts-build-Fix-the-tests-to-build-with-clang15.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-scripts-build-Fix-the-tests-to-build-with-clang15.patch
new file mode 100644
index 0000000000..f07cef6b38
--- /dev/null
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-scripts-build-Fix-the-tests-to-build-with-clang15.patch
@@ -0,0 +1,239 @@
+From bcc6816b92ecf409357865589069a82883d589f7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Sep 2022 22:53:51 -0700
+Subject: [PATCH] scripts/build: Fix the tests to build with clang15
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ scripts/build | 50 +++++++++++++++++++++++++-------------------------
+ 1 file changed, 25 insertions(+), 25 deletions(-)
+
+--- a/scripts/build
++++ b/scripts/build
+@@ -21,7 +21,7 @@ trap 'rm -f ${BASE}$$.s ${BASE}$$.c ${BA
+ LDLIBS="$LDLIBS -lm"
+
+ # check for HP-UX's ANSI compiler
+-echo "main(int ac, char *av[]) { int i; }" > ${BASE}$$.c
++echo "int main(int ac, char *av[]) { int i; }" > ${BASE}$$.c
+ if ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c 1>${NULL} 2>${NULL}
+ then
+ true;
+@@ -39,7 +39,7 @@ arch=`echo $OS | awk -F- '{print $1;}'`
+ if [ "X$CC" = "Xcc" -a "X$arch" = "Xia64" ]
+ then
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+- echo "main(int ac, char *av[])" >> ${BASE}$$.c
++ echo "int main(int ac, char *av[])" >> ${BASE}$$.c
+ echo "{ long* p = (long*)malloc(sizeof(long));" >> ${BASE}$$.c
+ echo "*p = 0; exit((int)*p); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} +DD64 -o ${BASE}$$ ${BASE}$$.c 1>${NULL} 2>${NULL} \
+@@ -51,14 +51,14 @@ fi
+
+ # check for bcopy (optionally set the SYS5 flag)
+ echo "#include <string.h>" > ${BASE}$$.c
+-echo "main() { char a[256], b[256]; bcopy(a, b, 256); }" >> ${BASE}$$.c
++echo "int main() { char a[256], b[256]; bcopy(a, b, 256); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ || CFLAGS="${CFLAGS} -DSYS5"
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+
+ # check for valloc
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+-echo "main() { char* buf = valloc(123); }" >> ${BASE}$$.c
++echo "int main() { char* buf = valloc(123); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ || CFLAGS="${CFLAGS} -Dvalloc=malloc"
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -67,7 +67,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+ echo "#include <unistd.h>" >> ${BASE}$$.c
+-echo "main() { off64_t off; }" >> ${BASE}$$.c
++echo "int main() { off64_t off; }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_off64_t"
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -76,7 +76,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+ echo "#include <unistd.h>" >> ${BASE}$$.c
+-echo "main() { int fd = 0; off64_t off = 0; off = lseek64(fd, off, SEEK_SET); }" >> ${BASE}$$.c
++echo "int main() { int fd = 0; off64_t off = 0; off = lseek64(fd, off, SEEK_SET); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_lseek64"
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -88,7 +88,7 @@ echo "#include <sys/resource.h>" >> ${BA
+ echo "#ifndef RUSAGE_SELF" >> ${BASE}$$.c
+ echo "#define RUSAGE_SELF 0" >> ${BASE}$$.c
+ echo "#endif /* RUSAGE_SELF */" >> ${BASE}$$.c
+-echo "main() { struct rusage ru; getrusage(RUSAGE_SELF, &ru); }" >> ${BASE}$$.c
++echo "int main() { struct rusage ru; getrusage(RUSAGE_SELF, &ru); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DRUSAGE"
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -125,24 +125,24 @@ fi
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+
+ # check for -lrpc (cygwin/Windows)
+-echo "extern int pmap_set(); main() { pmap_set(); }" >${BASE}$$.c
++echo "extern int pmap_set(void); int main() { pmap_set(); }" >${BASE}$$.c
+ if ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL}; then
+ true;
+-else
+- ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} -lrpc 1>${NULL} 2>${NULL} \
+- && LDLIBS="${LDLIBS} -lrpc"
++elif ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} -lrpc 1>${NULL} 2>${NULL}; then
++ LDLIBS="${LDLIBS} -lrpc"
++else ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} -ltirpc 1>${NULL} 2>${NULL} && LDLIBS="${LDLIBS} -ltirpc"
+ fi
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+
+ # check for OSs that have S_IFFIFO instead of S_IFIFO
+ echo "#include <sys/stat.h>" > ${BASE}$$.c
+-echo "main() { return (S_IFIFO); }" >> ${BASE}$$.c
++echo "int main() { return (S_IFIFO); }" >> ${BASE}$$.c
+ if ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL}; then
+ true;
+ else
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ echo "#include <sys/stat.h>" > ${BASE}$$.c
+- echo "main() { return (S_IFFIFO); }" >> ${BASE}$$.c
++ echo "int main() { return (S_IFFIFO); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ || CFLAGS="${CFLAGS} -DS_IFIFO=S_IFFIFO"
+ fi
+@@ -151,7 +151,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ # check that we have uint
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+-echo "main() { uint i = 0; return (i); }" >> ${BASE}$$.c
++echo "int main() { uint i = 0; return (i); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_uint=1";
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -161,7 +161,7 @@ HAVE_uint64=0
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+ echo "#include <rpc/types.h>" >> ${BASE}$$.c
+-echo "main() { uint64 i = 0; return (int)(i); }" >> ${BASE}$$.c
++echo "int main() { uint64 i = 0; return (int)(i); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_uint64=1" && HAVE_uint64=1;
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -170,7 +170,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ if [ ${HAVE_uint64} = 0 ]; then
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+- echo "main() { uint64_t i = 0; return (int)(i); }" >> ${BASE}$$.c
++ echo "int main() { uint64_t i = 0; return (int)(i); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_uint64_t=1";
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -181,7 +181,7 @@ HAVE_int64=0
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+ echo "#include <rpc/types.h>" >> ${BASE}$$.c
+-echo "main() { int64 i = 0; return (int)(i); }" >> ${BASE}$$.c
++echo "int main() { int64 i = 0; return (int)(i); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_int64=1" && HAVE_int64=1;
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -190,7 +190,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ if [ ${HAVE_int64} = 0 ]; then
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+- echo "main() { int64_t i = 0; return (int)(i); }" >> ${BASE}$$.c
++ echo "int main() { int64_t i = 0; return (int)(i); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_int64_t=1";
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -209,7 +209,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+ echo "#include <sys/socket.h>" >> ${BASE}$$.c
+-echo "main() { int s; struct sockaddr dest; socklen_t len; getsockname(s, &dest, &len); }" >> ${BASE}$$.c
++echo "int main() { int s; struct sockaddr dest; socklen_t len; getsockname(s, &dest, &len); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_socklen_t"
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -217,7 +217,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ # check that we have drand48 and srand48
+ HAVE_RANDOM=0
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+-echo "main() { srand48(973); return (int)(1.0E9 * drand48()); }" >> ${BASE}$$.c
++echo "int main() { srand48(973); return (int)(1.0E9 * drand48()); }" >> ${BASE}$$.c
+ if ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL}; then
+ CFLAGS="${CFLAGS} -DHAVE_DRAND48"
+ HAVE_RANDOM=1
+@@ -226,7 +226,7 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+
+ if [ ${HAVE_RANDOM} -eq 0 ]; then
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+- echo "main() { srand(973); return (10 * rand()) / RAND_MAX; }" >> ${BASE}$$.c
++ echo "int main() { srand(973); return (10 * rand()) / RAND_MAX; }" >> ${BASE}$$.c
+ if ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL}; then
+ CFLAGS="${CFLAGS} -DHAVE_RAND"
+ HAVE_RANDOM=1
+@@ -236,7 +236,7 @@ fi
+
+ if [ ${HAVE_RANDOM} -eq 0 ]; then
+ echo "#include <stdlib.h>" > ${BASE}$$.c
+- echo "main() { srandom(973); return (10 * random()) / RAND_MAX; }" >> ${BASE}$$.c
++ echo "int main() { srandom(973); return (10 * random()) / RAND_MAX; }" >> ${BASE}$$.c
+ if ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL}; then
+ CFLAGS="${CFLAGS} -DHAVE_RANDOM"
+ HAVE_RANDOM=1
+@@ -247,7 +247,7 @@ fi
+ # check that we have sysmp
+ echo "#include <sys/types.h>" > ${BASE}$$.c
+ echo "#include <sys/sysmp.h>" >> ${BASE}$$.c
+-echo "main() { return (int)sysmp(MP_NPROCS); }" >> ${BASE}$$.c
++echo "int main() { return (int)sysmp(MP_NPROCS); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_SYSMP=1";
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -257,7 +257,7 @@ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <unistd.h>" >> ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+ echo "#include <sys/processor.h>" >> ${BASE}$$.c
+-echo "main() { return bindprocessor(BINDPROCESS, getpid(), 0); }" >> ${BASE}$$.c
++echo "int main() { return bindprocessor(BINDPROCESS, getpid(), 0); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_BINDPROCESSOR=1";
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -267,16 +267,17 @@ echo "#include <stdlib.h>" > ${BASE}$$.c
+ echo "#include <sys/types.h>" >> ${BASE}$$.c
+ echo "#include <sys/processor.h>" >> ${BASE}$$.c
+ echo "#include <sys/procset.h>" >> ${BASE}$$.c
+-echo "main() { return processor(P_PID, P_MYPID, 0, NULL); }" >> ${BASE}$$.c
++echo "int main() { return processor(P_PID, P_MYPID, 0, NULL); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_BINDPROCESSOR=1";
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+
+ # check that we have sched_setaffinity
+-echo "#include <stdlib.h>" > ${BASE}$$.c
++echo "#define _GNU_SOURCE" > ${BASE}$$.c
++echo "#include <stdlib.h>" >> ${BASE}$$.c
+ echo "#include <unistd.h>" >> ${BASE}$$.c
+ echo "#include <sched.h>" >> ${BASE}$$.c
+-echo "main() { unsigned long mask = 1; return sched_setaffinity(0, sizeof(unsigned long), &mask); }" >> ${BASE}$$.c
++echo "int main() { unsigned long mask = 1; return sched_setaffinity(0, sizeof(unsigned long), &mask); }" >> ${BASE}$$.c
+ ${CC} ${CFLAGS} -o ${BASE}$$ ${BASE}$$.c ${LDLIBS} 1>${NULL} 2>${NULL} \
+ && CFLAGS="${CFLAGS} -DHAVE_SCHED_SETAFFINITY=1";
+ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+@@ -285,4 +286,4 @@ rm -f ${BASE}$$ ${BASE}$$.o ${BASE}$$.c
+ if [ ! -d ${BINDIR} ]; then mkdir -p ${BINDIR}; fi
+
+ # now go ahead and build everything!
+-${MAKE} OS="${OS}" CC="${CC}" CFLAGS="${CFLAGS}" LDLIBS="${LDLIBS}" O="${BINDIR}" $*
++${MAKE} OS="${OS}" CC="${CC}" CFLAGS="${CFLAGS}" LDLIBS="${LDLIBS}" O="${BINDIR}" ${EXTRA_OEMAKE} $*
+--- a/src/lib_sched.c
++++ b/src/lib_sched.c
+@@ -1,3 +1,4 @@
++#define _GNU_SOURCE
+ #include "bench.h"
+
+ /* #define _DEBUG */
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench/0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch
new file mode 100644
index 0000000000..04cef960fc
--- /dev/null
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch
@@ -0,0 +1,34 @@
+From ea683a0dbaa30a0bf101adb09a1a2531c7112c62 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Mon, 27 Aug 2018 11:02:45 +0800
+Subject: [PATCH] src/Makefile: use libdir instead of hardcoded /lib
+
+use libdir instead of hardcoded /lib
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ src/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 4678d54..b73ddb6 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -141,10 +141,10 @@ install-target:
+ if [ ! -d $(BASE) ]; then mkdir $(BASE); fi
+ if [ ! -d $(BASE)/bin ]; then mkdir $(BASE)/bin; fi
+ if [ ! -d $(BASE)/include ]; then mkdir $(BASE)/include; fi
+- if [ ! -d $(BASE)/lib ]; then mkdir $(BASE)/lib; fi
++ if [ ! -d $(DESTDIR)$(libdir) ]; then mkdir $(DESTDIR)$(libdir); fi
+ cp $(EXES) $(BASE)/bin
+ cp $(INCS) $(BASE)/include
+- cp $O/lmbench.a $(BASE)/lib/libmbench.a
++ cp $O/lmbench.a $(DESTDIR)$(libdir)/libmbench.a
+ cd ../doc; env MAKEFLAGS="$(MAKEFLAGS)" make CC="${CC}" OS="${OS}" BASE="$(BASE)" install
+
+
+--
+2.7.4
+
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/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 353d80b3b7..096726cc23 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/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(-)
@@ -22,7 +24,7 @@ index 34a1371..3786741 100755
trap 'rm -f ${BASE}$$.s ${BASE}$$.c ${BASE}$$.o ${BASE}$$; exit 1' 1 2 15
-LDLIBS=-lm
-+LDLIBS+=-lm
++LDLIBS="$LDLIBS -lm"
# check for HP-UX's ANSI compiler
echo "main(int ac, char *av[]) { int i; }" > ${BASE}$$.c
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/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-3.0-a9/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-run b/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run
index e904c75e43..2716bf935b 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/lmbench-run
@@ -4,7 +4,6 @@
# Javier Fernandez-Sanguino.
# Distributed under the GPL
SHAREDIR=/usr/share/lmbench/
-BINDIR=/usr/lib/lmbench/
SCRIPTSDIR=$SHAREDIR/scripts
RESULTSDIR=$SHAREDIR/results
CONFIG=/var/lib/lmbench/config/`$SCRIPTSDIR/config`
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/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-3.0-a9/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/obey-ranlib.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/obey-ranlib.patch
index fa5e6dbda3..fa5e6dbda3 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/obey-ranlib.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/obey-ranlib.patch
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/update-config-script.patch
index 44bc7bbcde..44bc7bbcde 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-config-script.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/update-config-script.patch
diff --git a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch b/meta-oe/recipes-benchmark/lmbench/lmbench/update-results-script.patch
index 31c4aecbbe..31c4aecbbe 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench-3.0-a9/update-results-script.patch
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench/update-results-script.patch
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 593b62f013..03018bb526 100644
--- a/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
+++ b/meta-oe/recipes-benchmark/lmbench/lmbench_3.0-a9.bb
@@ -1,15 +1,14 @@
SUMMARY = "Tools for performance analysis"
HOMEPAGE = "http://lmbench.sourceforge.net/"
SECTION = "console/utils"
-LICENSE = "GPLv2 & GPL-2.0-with-lmbench-restriction"
+LICENSE = "GPL-2.0-only & GPL-2.0-with-lmbench-restriction"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
file://COPYING-2;md5=8e9aee2ccc75d61d107e43794a25cdf9"
-inherit autotools-brokensep
+inherit autotools-brokensep update-alternatives
DEPENDS += "libtirpc"
CFLAGS += "-I${STAGING_INCDIR}/tirpc"
-LDLIBS += " -ltirpc "
PR = "r2"
@@ -19,13 +18,18 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/lmbench/lmbench-${PV}.tgz \
file://update-results-script.patch \
file://obey-ranlib.patch \
file://update-config-script.patch \
- file://use-base_libdir-instead-of-hardcoded-lib.patch \
file://lmbench_result_html_report.patch \
file://fix-lmbench-memory-check-failure.patch \
file://0001-avoid-gcc-optimize-away-the-loops.patch \
file://0001-lat_http.c-Add-printf-format.patch \
- file://0001-Check-for-musl-define-guard-before-redefining-sockle.patch \
file://0002-build-Adjust-CFLAGS-LDFLAGS-to-append-values-passed-.patch \
+ file://0001-src-Makefile-use-libdir-instead-of-hardcoded-lib.patch \
+ file://0001-lmbench-Point-webpage-lm-to-target-directory.patch \
+ file://0001-doc-Fix-typos-in-manual-pages.patch \
+ file://0001-lat_fifo-Fix-cleanup-sequence.patch \
+ file://0001-doc-Fix-typos-in-lat_unix_connect-manual-page.patch \
+ file://0001-bench.h-Fix-typo-in-specifying-string.h.patch \
+ file://0001-scripts-build-Fix-the-tests-to-build-with-clang15.patch \
"
SRC_URI[md5sum] = "b3351a3294db66a72e2864a199d37cbf"
SRC_URI[sha256sum] = "cbd5777d15f44eab7666dcac418054c3c09df99826961a397d9acf43d8a2a551"
@@ -33,8 +37,11 @@ SRC_URI[sha256sum] = "cbd5777d15f44eab7666dcac418054c3c09df99826961a397d9acf43d8
UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/lmbench/files/development/"
UPSTREAM_CHECK_REGEX = "lmbench-(?P<pver>\d+(\.\d+)+-[a-z]+\d+)"
+export OS = "${TARGET_SYS}"
+export TARGET = "${TARGET_OS}"
+
EXTRA_OEMAKE = 'CC="${CC}" AR="${AR}" RANLIB="${RANLIB}" CFLAGS="${CFLAGS}" \
- LDFLAGS="${LDFLAGS}" LDLIBS="${LDLIBS}" LD="${LD}" OS="${TARGET_SYS}" \
+ LDFLAGS="${LDFLAGS}" LD="${LD}" OS="${TARGET_SYS}" \
TARGET="${TARGET_OS}" BASE="${prefix}" MANDIR="${mandir}"'
do_configure() {
@@ -49,12 +56,12 @@ do_compile () {
CFLAGS="${CFLAGS} -DHAVE_uint"
fi
install -d ${S}/bin/${TARGET_SYS}
- oe_runmake -C src
+ ${S}/scripts/build
}
do_install () {
install -d ${D}${sysconfdir}/default/volatiles \
- ${D}${bindir} ${D}${mandir} ${D}${libdir}/lmbench \
+ ${D}${bindir} ${D}${mandir} \
${D}${datadir}/lmbench/scripts
echo "d root root 0755 ${localstatedir}/run/${BPN} none" \
@@ -66,18 +73,20 @@ do_install () {
fi
oe_runmake BASE="${D}${prefix}" MANDIR="${D}${mandir}" \
+ DESTDIR="${D}" \
-C src install
mv ${D}${bindir}/line ${D}${bindir}/lm_line
install -m 0755 ${WORKDIR}/lmbench-run ${D}${bindir}/
+ install -m 0755 ${S}/bin/${TARGET_SYS}/cache ${D}${bindir}/
sed -i -e 's,^SHAREDIR=.*$,SHAREDIR=${datadir}/${BPN},;' \
- -e 's,^BINDIR=.*$,BINDIR=${libdir}/${BPN},;' \
-e 's,^CONFIG=.*$,CONFIG=`$SCRIPTSDIR/config`,;' \
${D}${bindir}/lmbench-run
install -m 0755 ${S}/scripts/lmbench ${D}${bindir}
install -m 0755 ${S}/scripts/* ${D}${datadir}/lmbench/scripts
+ install -m 0644 ${S}/src/webpage-lm.tar ${D}${datadir}/lmbench
}
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
if [ -z "$D" ]; then
if command -v systemd-tmpfiles >/dev/null; then
systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/lmbench.conf
@@ -87,5 +96,9 @@ pkg_postinst_${PN} () {
fi
}
-RDEPENDS_${PN} = "perl"
-FILES_${PN} += "${datadir}/lmbench ${libdir}/lmbench"
+RDEPENDS:${PN} = "perl"
+FILES:${PN} += "${datadir}/lmbench"
+
+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/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.3.0.bb b/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.bb
deleted file mode 100644
index 0964c04874..0000000000
--- a/meta-oe/recipes-benchmark/memtester/memtester_4.3.0.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 = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "http://pyropus.ca/software/memtester/old-versions/${BP}.tar.gz"
-SRC_URI += "file://Makefile.patch"
-
-SRC_URI[md5sum] = "598f41b7308e1f736164bca3ab84ddbe"
-SRC_URI[sha256sum] = "f9dfe2fd737c38fad6535bbab327da9a21f7ce4ea6f18c7b3339adef6bf5fd88"
-
-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/nbench-byte/nbench-byte_2.2.3.bb b/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
index 22bb0416ae..b4d55be1b0 100644
--- a/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
+++ b/meta-oe/recipes-benchmark/nbench-byte/nbench-byte_2.2.3.bb
@@ -7,7 +7,7 @@ LICENSE = "nbench-byte"
LIC_FILES_CHKSUM = "file://README;beginline=57;endline=66;md5=020ef579f8fa5746b7e307a54707834f"
SECTION = "console/utils"
-SRC_URI = "https://fossies.org/linux/misc/${BP}.tar.gz \
+SRC_URI = "https://fossies.org/linux/misc/old/${BP}.tar.gz \
file://nbench_32bits.patch \
file://Makefile-add-more-dependencies-to-pointer.h.patch"
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
new file mode 100644
index 0000000000..8de3314b3c
--- /dev/null
+++ b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_10.8.4.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Phoronix Test Suite"
+DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \
+and quantitative benchmarks in a clean, reproducible, and easy-to-use manner."
+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 \
+ file://CVE-2022-40704.patch \
+ "
+
+SRC_URI[sha256sum] = "1f2092d536c0a3193efc53e4a50f3cee65c0ef1a78d31e5404f1c663fff7b7f4"
+
+S = "${WORKDIR}/phoronix-test-suite"
+
+inherit systemd allarch mime mime-xdg
+
+do_install() {
+ DESTDIR=${D} ./install-sh ${exec_prefix}
+
+ if [ "${systemd_unitdir}" != "/usr/lib/systemd" ]; then
+ install -d ${D}/${systemd_unitdir}/system/
+ mv ${D}/usr/lib/systemd/system/* ${D}/${systemd_unitdir}/system/
+ rm -rf ${D}/usr/lib/
+ fi
+}
+
+# It is not advisable to enable these services by default since they can cause
+# continual target reboots if they encounter network problems.
+#
+SYSTEMD_AUTO_ENABLE = "disable"
+SYSTEMD_SERVICE:${PN} = "phoromatic-client.service phoromatic-server.service"
+
+RDEPENDS:${PN} += "bash python3-core php-cli util-linux-lscpu os-release lsb-release"
+
+FILES:${PN} += " \
+ ${datadir}/phoronix-test-suite \
+ ${datadir}/appdata/phoronix-test-suite.appdata.xml \
+ ${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \
+ ${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \
+ ${datadir}/mime/packages/openbenchmarking-mime.xml \
+ ${systemd_unitdir}/* \
+"
diff --git a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb b/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb
deleted file mode 100644
index 1f90a71256..0000000000
--- a/meta-oe/recipes-benchmark/phoronix-test-suite/phoronix-test-suite_7.8.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Phoronix Test Suite"
-DESCRIPTION = "The Phoronix Test Suite is designed to carry out both qualitative \
-and quantitative benchmarks in a clean, reproducible, and easy-to-use manner."
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-SECTION = "console/tests"
-
-SRC_URI = "http://www.phoronix-test-suite.com/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "850843bd9252823e7e24bc0849773000"
-SRC_URI[sha256sum] = "cd6c869841f28e4ac1e8a5e4cda05fafce9a523a6b4f0f3a47805efd30494d88"
-
-S = "${WORKDIR}/phoronix-test-suite"
-
-inherit systemd allarch
-
-do_install() {
- DESTDIR=${D} ./install-sh ${exec_prefix}
-
- if [ "${systemd_unitdir}" != "/usr/lib/systemd" ]; then
- install -d ${D}/${systemd_unitdir}/system/
- mv ${D}/usr/lib/systemd/system/* ${D}/${systemd_unitdir}/system/
- rm -rf ${D}/usr/lib/
- fi
-}
-
-# It is not advisable to enable these services by default since they can cause
-# continual target reboots if they encounter network problems.
-#
-SYSTEMD_AUTO_ENABLE = "disable"
-SYSTEMD_SERVICE_${PN} = "phoromatic-client.service phoromatic-server.service"
-
-RDEPENDS_${PN} += "bash python php-cli"
-
-FILES_${PN} += " \
- ${datadir}/phoronix-test-suite \
- ${datadir}/appdata/phoronix-test-suite.appdata.xml \
- ${datadir}/icons/hicolor/48x48/apps/phoronix-test-suite.png \
- ${datadir}/icons/hicolor/64x64/mimetypes/application-x-openbenchmarking.png \
- ${datadir}/mime/packages/openbenchmarking-mime.xml \
- ${systemd_unitdir}/* \
-"
diff --git a/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb b/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
new file mode 100644
index 0000000000..9722323478
--- /dev/null
+++ b/meta-oe/recipes-benchmark/qperf/qperf_0.4.11.bb
@@ -0,0 +1,19 @@
+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"
+
+inherit autotools-brokensep
+
+SRCREV = "c706363815a38ff2c5cbc07b73e2cfaaa59bae0f"
+SRC_URI = "git://github.com/linux-rdma/qperf.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+do_configure() {
+ ./cleanup
+ ./autogen.sh
+ oe_runconf
+}
diff --git a/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb b/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb
new file mode 100644
index 0000000000..629b123042
--- /dev/null
+++ b/meta-oe/recipes-benchmark/s-suite/s-suite_git.bb
@@ -0,0 +1,33 @@
+SUMMARY = "Small collection of benchmarks for storage I/O"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b529aaa6a0c50f15d29f89609b5c22f3"
+
+SRCREV = "f97f1ae321d1fb8111a2c638075702ed2512ff07"
+PV = "3.6"
+SRC_URI = "git://github.com/Algodev-github/S.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+# installing in /opt/S-suite since the package has
+# dependencies to the directory structure.
+do_install() {
+ install -d ${D}/opt/S-suite
+ for i in $(find ${S}/* -type d); do
+ install -d ${D}/opt/S-suite/$(basename $i)
+ install -m0755 -p ${S}/$(basename $i)/* ${D}/opt/S-suite/$(basename $i)
+ done
+
+ install -m0755 ${S}/def_config.sh ${D}/opt/S-suite
+ install -m0755 ${S}/config_params.sh ${D}/opt/S-suite
+ install -m0755 ${S}/create_config.sh ${D}/opt/S-suite
+ install -m0755 ${S}/process_config.sh ${D}/opt/S-suite
+}
+
+RDEPENDS:${PN} = "bash bc coreutils gawk g++ gcc fio libaio libaio-dev sysstat \
+ git"
+
+FILES:${PN} = "/opt/S-suite/"
+
+# added to INSANE_SKIP since s-suite have an runtime
+# dependency (RDEPENDS) on libaio-dev.
+INSANE_SKIP:${PN} += "dev-deps"
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest/0001-configure-Add-with-cpu.patch b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0001-configure-Add-with-cpu.patch
new file mode 100644
index 0000000000..41fb456c6c
--- /dev/null
+++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0001-configure-Add-with-cpu.patch
@@ -0,0 +1,37 @@
+From 73049e5a9e3698cc6d51471d70ac5e06bed803cc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Dec 2022 10:24:48 -0800
+Subject: [PATCH] configure: Add --with-cpu
+
+Some cross build systems e.g. yocto may use architectures different from cross compiler target tuple
+arm-yoe-gnueabi but build for armv7a, AC_CANONICAL_HOST will fail in
+this case even though target will be armv7a it will detect it as arm and
+disable armv7a specific optimization paths. This option provides the
+needed knob so it can be set explicitly e.g. --with-cpu=armv7a etc. if needed.
+
+Upstream-Status: Submitted [https://github.com/stressapptest/stressapptest/pull/100]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index c839c87..403728c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -11,7 +11,14 @@ else
+ AC_MSG_NOTICE([Compiling with dynamically linked libraries.])
+ fi
+
+-AC_CANONICAL_HOST
++AC_ARG_WITH(cpu, [ --with-cpu define host cpu])
++
++if test -z "$with_cpu"
++then
++ AC_CANONICAL_HOST
++else
++ host_cpu=$with_cpu
++fi
+ # Checking for target cpu and setting custom configuration
+ # for the different platforms
+ AS_CASE(["$host_cpu"],
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch
new file mode 100644
index 0000000000..48ff3ef93b
--- /dev/null
+++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0002-Replace-lfs64-functions-and-defines.patch
@@ -0,0 +1,103 @@
+From 9ab360fd018d267fe174713d7e14454408b26043 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Dec 2022 10:33:01 -0800
+Subject: [PATCH] Replace lfs64 functions and defines
+
+AC_SYS_LARGEFILE is already in use in configure.ac which detects
+enabling lfs64 functions as needed, it will define _FILE_OFFSET_BITS=64
+which should make lseek same as lseek64 since off_t is 64bit on most of
+current 32bit linux platforms
+
+Upstream-Status: Submitted [https://github.com/stressapptest/stressapptest/pull/100]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/os.cc | 18 ++++++------------
+ src/worker.cc | 6 +++---
+ 2 files changed, 9 insertions(+), 15 deletions(-)
+
+diff --git a/src/os.cc b/src/os.cc
+index 1928e0a..faa6068 100644
+--- a/src/os.cc
++++ b/src/os.cc
+@@ -142,7 +142,7 @@ int OsLayer::AddressMode() {
+ uint64 OsLayer::VirtualToPhysical(void *vaddr) {
+ uint64 frame, paddr, pfnmask, pagemask;
+ int pagesize = sysconf(_SC_PAGESIZE);
+- off64_t off = ((uintptr_t)vaddr) / pagesize * 8;
++ off_t off = ((uintptr_t)vaddr) / pagesize * 8;
+ int fd = open(kPagemapPath, O_RDONLY);
+
+ /*
+@@ -154,7 +154,7 @@ uint64 OsLayer::VirtualToPhysical(void *vaddr) {
+ if (fd < 0)
+ return 0;
+
+- if (lseek64(fd, off, SEEK_SET) != off || read(fd, &frame, 8) != 8) {
++ if (lseek(fd, off, SEEK_SET) != off || read(fd, &frame, 8) != 8) {
+ int err = errno;
+ string errtxt = ErrorString(err);
+ logprintf(0, "Process Error: failed to access %s with errno %d (%s)\n",
+@@ -607,9 +607,9 @@ bool OsLayer::AllocateTestMem(int64 length, uint64 paddr_base) {
+ dynamic_mapped_shmem_ = true;
+ } else {
+ // Do a full mapping here otherwise.
+- shmaddr = mmap64(NULL, length, PROT_READ | PROT_WRITE,
+- MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
+- shm_object, 0);
++ shmaddr = mmap(NULL, length, PROT_READ | PROT_WRITE,
++ MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
++ shm_object, 0);
+ if (shmaddr == reinterpret_cast<void*>(-1)) {
+ int err = errno;
+ string errtxt = ErrorString(err);
+@@ -704,18 +704,12 @@ void *OsLayer::PrepareTestMem(uint64 offset, uint64 length) {
+ if (dynamic_mapped_shmem_) {
+ // TODO(nsanders): Check if we can support MAP_NONBLOCK,
+ // and evaluate performance hit from not using it.
+-#ifdef HAVE_MMAP64
+- void * mapping = mmap64(NULL, length, PROT_READ | PROT_WRITE,
+- MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
+- shmid_, offset);
+-#else
+ void * mapping = mmap(NULL, length, PROT_READ | PROT_WRITE,
+ MAP_SHARED | MAP_NORESERVE | MAP_LOCKED | MAP_POPULATE,
+ shmid_, offset);
+-#endif
+ if (mapping == MAP_FAILED) {
+ string errtxt = ErrorString(errno);
+- logprintf(0, "Process Error: PrepareTestMem mmap64(%llx, %llx) failed. "
++ logprintf(0, "Process Error: PrepareTestMem mmap(%llx, %llx) failed. "
+ "error: %s.\n",
+ offset, length, errtxt.c_str());
+ sat_assert(0);
+diff --git a/src/worker.cc b/src/worker.cc
+index 745a816..41e93a0 100644
+--- a/src/worker.cc
++++ b/src/worker.cc
+@@ -1705,7 +1705,7 @@ bool FileThread::WritePages(int fd) {
+ int strict = sat_->strict();
+
+ // Start fresh at beginning of file for each batch of pages.
+- lseek64(fd, 0, SEEK_SET);
++ lseek(fd, 0, SEEK_SET);
+ for (int i = 0; i < sat_->disk_pages(); i++) {
+ struct page_entry src;
+ if (!GetValidPage(&src))
+@@ -1943,7 +1943,7 @@ bool FileThread::ReadPages(int fd) {
+ bool result = true;
+
+ // Read our data back out of the file, into it's new location.
+- lseek64(fd, 0, SEEK_SET);
++ lseek(fd, 0, SEEK_SET);
+ for (int i = 0; i < sat_->disk_pages(); i++) {
+ struct page_entry dst;
+ if (!GetEmptyPage(&dst))
+@@ -3153,7 +3153,7 @@ bool DiskThread::ValidateBlockOnDisk(int fd, BlockData *block) {
+
+ // Read block from disk and time the read. If it takes longer than the
+ // threshold, complain.
+- if (lseek64(fd, address * kSectorSize, SEEK_SET) == -1) {
++ if (lseek(fd, address * kSectorSize, SEEK_SET) == -1) {
+ logprintf(0, "Process Error: Unable to seek to sector %lld in "
+ "DiskThread::ValidateSectorsOnDisk on disk %s "
+ "(thread %d).\n", address, device_name_.c_str(), thread_num_);
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest/0003-configure-Check-for-pthread_rwlockattr_setkind_np-be.patch b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0003-configure-Check-for-pthread_rwlockattr_setkind_np-be.patch
new file mode 100644
index 0000000000..b21a534d94
--- /dev/null
+++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest/0003-configure-Check-for-pthread_rwlockattr_setkind_np-be.patch
@@ -0,0 +1,43 @@
+From d64a282b57352dde5f5b007947c005e504dc9a6b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 17 Dec 2022 10:46:31 -0800
+Subject: [PATCH] configure: Check for pthread_rwlockattr_setkind_np before use
+
+musl does not implement this therefore detect this non-posix API before
+using it
+
+Upstream-Status: Submitted [https://github.com/stressapptest/stressapptest/pull/100]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 +
+ src/worker.cc | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 403728c..47968cb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -157,6 +157,7 @@ AC_FUNC_STRERROR_R
+ AC_FUNC_VPRINTF
+ AC_CHECK_FUNCS([ftruncate gettimeofday memset munmap select socket strtol strtoull])
+ AC_CHECK_FUNCS([mmap64 posix_memalign rand_r sched_getaffinity])
++AC_CHECK_FUNCS([pthread_rwlockattr_setkind_np])
+
+ AC_CONFIG_FILES([Makefile src/Makefile])
+ AC_OUTPUT
+diff --git a/src/worker.cc b/src/worker.cc
+index 41e93a0..c4abc87 100644
+--- a/src/worker.cc
++++ b/src/worker.cc
+@@ -133,9 +133,11 @@ void WorkerStatus::Initialize() {
+
+ pthread_rwlockattr_t attrs;
+ sat_assert(0 == pthread_rwlockattr_init(&attrs));
++#ifdef HAVE_PTHREAD_RWLOCKATTR_SETKIND_NP
+ // Avoid writer lock starvation.
+ sat_assert(0 == pthread_rwlockattr_setkind_np(
+ &attrs, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP));
++#endif
+ sat_assert(0 == pthread_rwlock_init(&status_rwlock_, &attrs));
+
+ #ifdef HAVE_PTHREAD_BARRIERS
diff --git a/meta-oe/recipes-benchmark/stressapptest/stressapptest/libcplusplus-compat.patch b/meta-oe/recipes-benchmark/stressapptest/stressapptest/libcplusplus-compat.patch
new file mode 100644
index 0000000000..8754e40697
--- /dev/null
+++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest/libcplusplus-compat.patch
@@ -0,0 +1,28 @@
+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: Submitted [https://github.com/stressapptest/stressapptest/pull/100]
+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
new file mode 100644
index 0000000000..19261657ac
--- /dev/null
+++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest/read_sysfs_for_cachesize.patch
@@ -0,0 +1,72 @@
+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: Submitted [https://github.com/stressapptest/stressapptest/pull/100]
+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.9.bb b/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb
new file mode 100644
index 0000000000..02144c558a
--- /dev/null
+++ b/meta-oe/recipes-benchmark/stressapptest/stressapptest_1.0.9.bb
@@ -0,0 +1,31 @@
+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 = "9146a8bfe3e3daefa95f7a61b75183e5fc64af2c"
+
+PV .= "+1.0.10git${SRCPV}"
+
+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 \
+ file://libcplusplus-compat.patch \
+ file://read_sysfs_for_cachesize.patch \
+ file://0001-configure-Add-with-cpu.patch \
+ file://0002-Replace-lfs64-functions-and-defines.patch \
+ file://0003-configure-Check-for-pthread_rwlockattr_setkind_np-be.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
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 708c71f4ff..0000000000
--- a/meta-oe/recipes-benchmark/sysbench/sysbench_0.4.12.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "System performance benchmark"
-HOMEPAGE = "http://github.com/akopytov/sysbench"
-SECTION = "console/tests"
-LICENSE = "GPLv2"
-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"
-
-SRC_URI[md5sum] = "3a6d54fdd3fe002328e4458206392b9d"
-SRC_URI[sha256sum] = "83fa7464193e012c91254e595a89894d8e35b4a38324b52a5974777e3823ea9e"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)}"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
-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..945e2c3274
--- /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 libaio 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"
+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
new file mode 100644
index 0000000000..d69c52bee9
--- /dev/null
+++ b/meta-oe/recipes-benchmark/tinymembench/tinymembench/0001-asm-Delete-.func-.endfunc-directives.patch
@@ -0,0 +1,446 @@
+From b0a64ddebb517a1678c44d9baf24d8bbe39d02cd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Jan 2019 13:15:07 -0800
+Subject: [PATCH] asm: Delete .func/.endfunc directives
+
+These are useful only with stabs debug format, which is not used on
+linux systems, gas ignores them silently, but clang assembler does not
+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 ++---
+ x86-sse2.S | 21 ++++++++++-----------
+ 4 files changed, 13 insertions(+), 51 deletions(-)
+
+diff --git a/aarch64-asm.S b/aarch64-asm.S
+index 842b9e2..165c8ac 100644
+--- a/aarch64-asm.S
++++ b/aarch64-asm.S
+@@ -31,8 +31,7 @@
+
+ .macro asm_function function_name
+ .global \function_name
+- .type \function_name,%function
+-.func \function_name
++ .type \function_name,%function
+ \function_name:
+ DST .req x0
+ SRC .req x1
+@@ -54,7 +53,6 @@ asm_function aligned_block_copy_ldpstp_x_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_copy_ldpstp_q_aarch64
+ 0:
+@@ -67,7 +65,6 @@ asm_function aligned_block_copy_ldpstp_q_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_copy_ldpstp_q_pf32_l2strm_aarch64
+ 0:
+@@ -82,7 +79,6 @@ asm_function aligned_block_copy_ldpstp_q_pf32_l2strm_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_copy_ldpstp_q_pf64_l2strm_aarch64
+ 0:
+@@ -96,7 +92,6 @@ asm_function aligned_block_copy_ldpstp_q_pf64_l2strm_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_copy_ldpstp_q_pf32_l1keep_aarch64
+ 0:
+@@ -111,7 +106,6 @@ asm_function aligned_block_copy_ldpstp_q_pf32_l1keep_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_copy_ldpstp_q_pf64_l1keep_aarch64
+ 0:
+@@ -125,7 +119,6 @@ asm_function aligned_block_copy_ldpstp_q_pf64_l1keep_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_fill_stp_x_aarch64
+ 0:
+@@ -137,7 +130,6 @@ asm_function aligned_block_fill_stp_x_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_fill_stp_q_aarch64
+ 0:
+@@ -147,7 +139,6 @@ asm_function aligned_block_fill_stp_q_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_fill_stnp_x_aarch64
+ 0:
+@@ -159,7 +150,6 @@ asm_function aligned_block_fill_stnp_x_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_fill_stnp_q_aarch64
+ 0:
+@@ -169,7 +159,6 @@ asm_function aligned_block_fill_stnp_q_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ asm_function aligned_block_copy_ld1st1_aarch64
+ 0:
+@@ -180,6 +169,5 @@ asm_function aligned_block_copy_ld1st1_aarch64
+ subs SIZE, SIZE, #64
+ bgt 0b
+ ret
+-.endfunc
+
+ #endif
+diff --git a/arm-neon.S b/arm-neon.S
+index 4db78ce..9631d82 100644
+--- a/arm-neon.S
++++ b/arm-neon.S
+@@ -32,7 +32,6 @@
+
+ .macro asm_function function_name
+ .global \function_name
+-.func \function_name
+ \function_name:
+ DST .req r0
+ SRC .req r1
+@@ -66,7 +65,6 @@ asm_function aligned_block_read_neon
+ vpadd.u32 d31, d31, d31
+ vmov.u32 r0, d31[0]
+ bx lr
+-.endfunc
+
+ /* Actually this calculates a sum of 32-bit values */
+ asm_function aligned_block_read_pf32_neon
+@@ -97,7 +95,6 @@ asm_function aligned_block_read_pf32_neon
+ vpadd.u32 d31, d31, d31
+ vmov.u32 r0, d31[0]
+ bx lr
+-.endfunc
+
+ /* Actually this calculates a sum of 32-bit values */
+ asm_function aligned_block_read_pf64_neon
+@@ -127,7 +124,6 @@ asm_function aligned_block_read_pf64_neon
+ vpadd.u32 d31, d31, d31
+ vmov.u32 r0, d31[0]
+ bx lr
+-.endfunc
+
+ /* Actually this calculates a sum of 32-bit values */
+ asm_function aligned_block_read2_neon
+@@ -156,7 +152,6 @@ asm_function aligned_block_read2_neon
+ vpadd.u32 d31, d31, d31
+ vmov.u32 r0, d31[0]
+ bx lr
+-.endfunc
+
+ /* Actually this calculates a sum of 32-bit values */
+ asm_function aligned_block_read2_pf32_neon
+@@ -187,7 +182,6 @@ asm_function aligned_block_read2_pf32_neon
+ vpadd.u32 d31, d31, d31
+ vmov.u32 r0, d31[0]
+ bx lr
+-.endfunc
+
+ /* Actually this calculates a sum of 32-bit values */
+ asm_function aligned_block_read2_pf64_neon
+@@ -217,7 +211,6 @@ asm_function aligned_block_read2_pf64_neon
+ vpadd.u32 d31, d31, d31
+ vmov.u32 r0, d31[0]
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_neon
+ 0:
+@@ -226,7 +219,6 @@ asm_function aligned_block_copy_neon
+ subs SIZE, SIZE, #32
+ bgt 0b
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_unrolled_neon
+ vpush {d8-d15}
+@@ -244,7 +236,6 @@ asm_function aligned_block_copy_unrolled_neon
+ bgt 0b
+ vpop {d8-d15}
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_pf32_neon
+ 0:
+@@ -254,7 +245,6 @@ asm_function aligned_block_copy_pf32_neon
+ subs SIZE, SIZE, #32
+ bgt 0b
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_unrolled_pf32_neon
+ vpush {d8-d15}
+@@ -280,7 +270,6 @@ asm_function aligned_block_copy_unrolled_pf32_neon
+ bgt 0b
+ vpop {d8-d15}
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_pf64_neon
+ 0:
+@@ -292,7 +281,6 @@ asm_function aligned_block_copy_pf64_neon
+ subs SIZE, SIZE, #64
+ bgt 0b
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_unrolled_pf64_neon
+ vpush {d8-d15}
+@@ -314,7 +302,6 @@ asm_function aligned_block_copy_unrolled_pf64_neon
+ bgt 0b
+ vpop {d8-d15}
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_backwards_neon
+ add SRC, SRC, SIZE
+@@ -328,7 +315,6 @@ asm_function aligned_block_copy_backwards_neon
+ subs SIZE, SIZE, #32
+ bgt 0b
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_backwards_pf32_neon
+ add SRC, SRC, SIZE
+@@ -343,7 +329,6 @@ asm_function aligned_block_copy_backwards_pf32_neon
+ subs SIZE, SIZE, #32
+ bgt 0b
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_copy_backwards_pf64_neon
+ add SRC, SRC, SIZE
+@@ -360,7 +345,6 @@ asm_function aligned_block_copy_backwards_pf64_neon
+ subs SIZE, SIZE, #64
+ bgt 0b
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_fill_neon
+ vld1.8 {d0, d1, d2, d3}, [SRC]!
+@@ -370,7 +354,6 @@ asm_function aligned_block_fill_neon
+ subs SIZE, SIZE, #64
+ bgt 0b
+ bx lr
+-.endfunc
+
+ asm_function aligned_block_fill_backwards_neon
+ add SRC, SRC, SIZE
+@@ -383,7 +366,6 @@ asm_function aligned_block_fill_backwards_neon
+ subs SIZE, SIZE, #32
+ bgt 0b
+ bx lr
+-.endfunc
+
+ /* some code for older ARM processors */
+
+@@ -398,7 +380,6 @@ asm_function aligned_block_fill_stm4_armv4
+ subs SIZE, SIZE, #64
+ bgt 0b
+ pop {r4-r12, pc}
+-.endfunc
+
+ asm_function aligned_block_fill_stm8_armv4
+ push {r4-r12, lr}
+@@ -409,7 +390,6 @@ asm_function aligned_block_fill_stm8_armv4
+ subs SIZE, SIZE, #64
+ bgt 0b
+ pop {r4-r12, pc}
+-.endfunc
+
+ asm_function aligned_block_fill_strd_armv5te
+ push {r4-r12, lr}
+@@ -426,7 +406,6 @@ asm_function aligned_block_fill_strd_armv5te
+ subs SIZE, SIZE, #64
+ bgt 0b
+ pop {r4-r12, pc}
+-.endfunc
+
+ asm_function aligned_block_copy_incr_armv5te
+ push {r4-r12, lr}
+@@ -442,7 +421,6 @@ asm_function aligned_block_copy_incr_armv5te
+ stmia DST!, {r8-r11}
+ bgt 0b
+ pop {r4-r12, pc}
+-.endfunc
+
+ asm_function aligned_block_copy_wrap_armv5te
+ push {r4-r12, lr}
+@@ -458,7 +436,6 @@ asm_function aligned_block_copy_wrap_armv5te
+ stmia DST!, {r8-r11}
+ bgt 0b
+ pop {r4-r12, pc}
+-.endfunc
+
+ asm_function aligned_block_copy_vfp
+ push {r4-r12, lr}
+@@ -470,6 +447,5 @@ asm_function aligned_block_copy_vfp
+ bgt 0b
+ vpop {d8-d15}
+ pop {r4-r12, pc}
+-.endfunc
+
+ #endif
+diff --git a/mips-32.S b/mips-32.S
+index 17b2b7f..4f7ddae 100644
+--- a/mips-32.S
++++ b/mips-32.S
+@@ -32,7 +32,6 @@
+ .macro asm_function function_name
+ .global \function_name
+ .type \function_name, @function
+- .func \function_name
+ \function_name:
+ .endm
+
+@@ -93,7 +92,7 @@ asm_function aligned_block_fill_pf32_mips32
+ 2:
+ jr $ra
+ nop
+-.endfunc
++
+
+ /*
+ * void aligned_block_copy_pf32_mips32(int64_t *dst, int64_t *src, int size)
+@@ -178,6 +177,6 @@ asm_function aligned_block_copy_pf32_mips32
+ lw $s7, 28($sp)
+ jr $ra
+ addi $sp, $sp, 32
+-.endfunc
++
+
+ #endif
+diff --git a/x86-sse2.S b/x86-sse2.S
+index d8840e4..409031b 100644
+--- a/x86-sse2.S
++++ b/x86-sse2.S
+@@ -30,7 +30,6 @@
+
+ .macro asm_function_helper function_name
+ .global \function_name
+-.func \function_name
+ \function_name:
+ #ifdef __amd64__
+ #ifdef _WIN64
+@@ -90,7 +89,7 @@ asm_function aligned_block_copy_movsb
+ pop3 edi esi ecx
+ #endif
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_copy_movsd
+ 0:
+@@ -110,7 +109,7 @@ asm_function aligned_block_copy_movsd
+ pop3 edi esi ecx
+ #endif
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_copy_sse2
+ 0:
+@@ -127,7 +126,7 @@ asm_function aligned_block_copy_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_copy_nt_sse2
+ 0:
+@@ -144,7 +143,7 @@ asm_function aligned_block_copy_nt_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_copy_pf32_sse2
+ 0:
+@@ -163,7 +162,7 @@ asm_function aligned_block_copy_pf32_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_copy_nt_pf32_sse2
+ 0:
+@@ -182,7 +181,7 @@ asm_function aligned_block_copy_nt_pf32_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_copy_pf64_sse2
+ 0:
+@@ -200,7 +199,7 @@ asm_function aligned_block_copy_pf64_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_copy_nt_pf64_sse2
+ 0:
+@@ -218,7 +217,7 @@ asm_function aligned_block_copy_nt_pf64_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_fill_sse2
+ movdqa xmm0, [SRC + 0]
+@@ -231,7 +230,7 @@ asm_function aligned_block_fill_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ asm_function aligned_block_fill_nt_sse2
+ movdqa xmm0, [SRC + 0]
+@@ -244,7 +243,7 @@ asm_function aligned_block_fill_nt_sse2
+ sub SIZE, 64
+ jg 0b
+ ret
+-.endfunc
++
+
+ /*****************************************************************************/
+
diff --git a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
index 8cb59da737..025aacf251 100644
--- a/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
+++ b/meta-oe/recipes-benchmark/tinymembench/tinymembench_git.bb
@@ -6,10 +6,12 @@ HOMEPAGE = "https://github.com/ssvb/tinymembench/wiki"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://main.c;endline=22;md5=879b9bbb60851454885b5fa47eb6b345"
-PV = "0.4.0+git${SRCPV}"
+PV = "0.4.9+git${SRCPV}"
-SRCREV = "2c789849709d837b4bd114c11ed2d9bdc65afbc6"
-SRC_URI = "git://github.com/ssvb/tinymembench.git"
+SRCREV = "a2cf6d7e382e3aea1eb39173174d9fa28cad15f3"
+SRC_URI = "git://github.com/ssvb/tinymembench.git;branch=master;protocol=https \
+ file://0001-asm-Delete-.func-.endfunc-directives.patch \
+ "
S = "${WORKDIR}/git"
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 427ce67d61..5efddfcc93 100644
--- a/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
+++ b/meta-oe/recipes-benchmark/tiobench/tiobench_0.3.3.bb
@@ -1,6 +1,6 @@
SUMMARY = "Threaded I/O tester"
HOMEPAGE = "http://sourceforge.net/projects/tiobench/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
PR = "r1"
@@ -21,7 +21,7 @@ do_install() {
oe_runmake install
}
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
perl \
perl-module-exporter-heavy \
perl-module-getopt-long \
diff --git a/meta-oe/recipes-bsp/acpitool/acpitool_0.5.1.bb b/meta-oe/recipes-bsp/acpitool/acpitool_0.5.1.bb
index bc9669d0f3..b392581ecb 100644
--- a/meta-oe/recipes-bsp/acpitool/acpitool_0.5.1.bb
+++ b/meta-oe/recipes-bsp/acpitool/acpitool_0.5.1.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Acpitool is a Linux ACPI client. It simply reads /proc/acpi or /sys/class entries \
and presents the output in a meaningfull, human-readable format."
HOMEPAGE = "http://freeunix.dyndns.org:8088/site2/acpitool.shtml"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "http://nchc.dl.sourceforge.net/project/${BPN}/${BPN}/${PV}/${BP}.tar.bz2 \
diff --git a/meta-oe/recipes-bsp/con2fbmap/con2fbmap/0001-con2fbmap-Add-missing-include-on-string.h.patch b/meta-oe/recipes-bsp/con2fbmap/con2fbmap/0001-con2fbmap-Add-missing-include-on-string.h.patch
new file mode 100644
index 0000000000..d1b75f1c54
--- /dev/null
+++ b/meta-oe/recipes-bsp/con2fbmap/con2fbmap/0001-con2fbmap-Add-missing-include-on-string.h.patch
@@ -0,0 +1,28 @@
+From 0a948d8d91b789e9c9b60136fada75b1d464af63 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 18:31:27 -0700
+Subject: [PATCH] con2fbmap: Add missing include on string.h
+
+strerror() is from string.h therefore include it to fix -Wimplicit-function-declaration
+warnings
+
+Upstream-Status: Submitted [https://gitlab.com/pibox/con2fbmap/-/merge_requests/1]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/con2fbmap.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/con2fbmap.c b/src/con2fbmap.c
+index 7831931..7a2e870 100644
+--- a/src/con2fbmap.c
++++ b/src/con2fbmap.c
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h> /* for strerror */
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <sys/ioctl.h>
+--
+2.37.3
+
diff --git a/meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb b/meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb
new file mode 100644
index 0000000000..302a61e8a8
--- /dev/null
+++ b/meta-oe/recipes-bsp/con2fbmap/con2fbmap_git.bb
@@ -0,0 +1,19 @@
+# Copyright (C) 2020 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Simple utility for swapping an fbtft-based device as the console."
+HOMEPAGE = "https://gitlab.com/pibox/con2fbmap"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+SECTION = "console/utils"
+DEPENDS = ""
+
+SRCREV = "61ed2f28b294b1ebeb767df8cb5fcd391709c8e2"
+SRC_URI = "git://gitlab.com/pibox/con2fbmap.git;protocol=https;branch=master \
+ file://0001-con2fbmap-Add-missing-include-on-string.h.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
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 88fcc0200f..1304ba9e03 100644
--- a/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
+++ b/meta-oe/recipes-bsp/cpufrequtils/cpufrequtils_008.bb
@@ -4,17 +4,17 @@ inherit gettext
DEPENDS = "libtool-cross"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRCREV = "a2f0c39d5f21596bb9f5223e895c0ff210b265d0"
# SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/cpufreq/cpufrequtils.git
-SRC_URI = "git://github.com/emagii/cpufrequtils.git \
+SRC_URI = "git://github.com/emagii/cpufrequtils.git;branch=master;protocol=https \
file://0001-dont-unset-cflags.patch \
"
-EXTRA_OEMAKE_append = " ${@['', 'NLS=false']['${USE_NLS}' == 'no']} "
+EXTRA_OEMAKE:append = " ${@['', 'NLS=false']['${USE_NLS}' == 'no']} "
PR = "r5"
@@ -22,7 +22,7 @@ S = "${WORKDIR}/git"
TARGET_CC_ARCH += "${LDFLAGS}"
-EXTRA_OEMAKE = "V=1 CROSS=${TARGET_PREFIX} LIBTOOL='${HOST_SYS}-libtool --tag cc' STRIPCMD=echo 'CP=cp'"
+EXTRA_OEMAKE = "V=1 CROSS=${TARGET_PREFIX} STRIPCMD=echo 'CP=cp'"
do_compile() {
oe_runmake
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 2c0914d30a..455859ec86 100644
--- a/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
+++ b/meta-oe/recipes-bsp/edac-utils/edac-utils_git.bb
@@ -1,17 +1,21 @@
SUMMARY = "Userspace helper for Linux kernel EDAC drivers"
HOMEPAGE = "https://github.com/grondo/edac-utils"
+DESCRIPTION = "EDAC (Error Detection and Correction) is a set of Linux kernel \
+modules that handle reporting of hardware-related errors. Currently \
+these modules mainly handle detection of ECC memory errors for many \
+x86 and x86-64 chipsets and PCI bus parity errors."
SECTION = "Applications/System"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = " sysfsutils"
-SRCREV = "f9aa96205f610de39a79ff43c7478b7ef02e3138"
+SRCREV = "1c57818ecee186aa47af0342149577df5302c022"
PV = "0.18+git${SRCPV}"
S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/grondo/edac-utils \
+SRC_URI = "git://github.com/grondo/edac-utils;branch=master;protocol=https \
file://make-init-script-be-able-to-automatically-load-EDAC-.patch \
file://add-restart-to-initscript.patch \
file://edac.service \
@@ -19,29 +23,34 @@ SRC_URI = "git://github.com/grondo/edac-utils \
inherit autotools-brokensep systemd
-do_configure_prepend () {
+do_configure:prepend () {
touch ${S}/ChangeLog
${S}/bootstrap
}
-RDEPENDS_${PN}_x86 = "dmidecode"
-RDEPENDS_${PN}_x86-64 = "dmidecode"
-RDEPENDS_${PN}_arm = "dmidecode"
-RDEPENDS_${PN}_aarch64 = "dmidecode"
-RDEPENDS_${PN}_powerpc = "dmidecode"
-RDEPENDS_${PN}_powerpc64 = "dmidecode"
-RDEPENDS_${PN}_append = " \
- perl-module-file-basename perl-module-file-find perl-module-getopt-long perl-module-posix \
+RDEPENDS:${PN}:x86 = "dmidecode"
+RDEPENDS:${PN}:x86-64 = "dmidecode"
+RDEPENDS:${PN}:arm = "dmidecode"
+RDEPENDS:${PN}:aarch64 = "dmidecode"
+RDEPENDS:${PN}:powerpc = "dmidecode"
+RDEPENDS:${PN}:powerpc64 = "dmidecode"
+RDEPENDS:${PN}:powerpc64le = "dmidecode"
+RDEPENDS:${PN}:append = " \
+ perl \
+ perl-module-file-basename \
+ perl-module-file-find \
+ perl-module-getopt-long \
+ perl-module-posix \
perl-module-overload \
perl-module-overloading \
perl-module-file-glob \
"
-do_install_append() {
+do_install:append() {
install -d ${D}${systemd_unitdir}/system
install -m 644 ${WORKDIR}/edac.service ${D}/${systemd_unitdir}/system
sed -i -e 's,@SBINDIR@,${sbindir},g' ${D}/${systemd_unitdir}/system/edac.service
}
-SYSTEMD_SERVICE_${PN} = "edac.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+SYSTEMD_SERVICE:${PN} = "edac.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
diff --git a/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb b/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb
deleted file mode 100644
index 9cc62a9591..0000000000
--- a/meta-oe/recipes-bsp/efibootmgr/efibootmgr_0.15.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Linux user-space application to modify the EFI Boot Manager."
-SUMMARY = "EFI Boot Manager"
-HOMEPAGE = "https://github.com/rhinstaller/efibootmgr"
-SECTION = "base"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-DEPENDS = "pciutils zlib efivar"
-
-COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-
-SRCREV = "5c14da22802576a99ebb854f7aa174f796f7b031"
-SRC_URI = "git://github.com/rhinstaller/efibootmgr.git;protocol=https \
- "
-S = "${WORKDIR}/git"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE = "'EFIDIR=/' 'CC=${CC}' 'CFLAGS=${CFLAGS} -I${S}/src/include `pkg-config --cflags efivar`'"
-
-CFLAGS_append_toolchain-clang = " -Wno-error"
-do_install () {
- install -D -p -m0755 ${B}/src/efibootmgr ${D}/${sbindir}/efibootmgr
-}
-
-CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch b/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
deleted file mode 100644
index b4ce132a25..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d65c325dd8681edf2ee3332eeb0a547229c7ffb5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 24 Aug 2017 15:54:47 -0700
-Subject: [PATCH] efivar-dp.h: Add -Wunknown-attributes when using clang
-
-change !dp check to a comparision against NULL to silent clang warning
-nonnull parameter 'dp' will evaluate to 'true' on first encounter
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/include/efivar/efivar-dp.h | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/src/include/efivar/efivar-dp.h b/src/include/efivar/efivar-dp.h
-index 3a509b7..c140e8d 100644
---- a/src/include/efivar/efivar-dp.h
-+++ b/src/include/efivar/efivar-dp.h
-@@ -783,9 +783,14 @@ extern int efidp_append_instance(const_efidp dp, const_efidp dpi, efidp *out);
- * though older or other compilers might just ignore that attribute if they
- * don't support it. Ugh.
- */
-+#pragma GCC diagnostic push
- #if defined(__GNUC__) && __GNUC__ >= 6
- #pragma GCC diagnostic ignored "-Wnonnull-compare"
- #endif
-+#if defined(__clang__)
-+#pragma GCC diagnostic ignored "-Wunknown-attributes"
-+#pragma GCC diagnostic ignored "-Wpointer-bool-conversion"
-+#endif
-
- static inline int16_t
- __attribute__((__artificial__))
diff --git a/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch b/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
deleted file mode 100644
index 251e50c902..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/0001-efivar-fix-for-cross-compile.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a9115d9e6f0f62d6bb735ce3698858d1f89f8d73 Mon Sep 17 00:00:00 2001
-From: Kai Kang <kai.kang@windriver.com>
-Date: Fri, 25 Sep 2015 18:14:31 +0800
-Subject: [PATCH] efivar: fix for cross compile
-
-It builds and calls elf file makeguids to generate a header file which
-doesn't work for cross compile. Fix it.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-Upstream-Status: Pending
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- src/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 0c16597..dcc7fc8 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -40,8 +40,8 @@ abicheck : $(patsubst %.so,%.abicheck,$(LIBTARGETS))
- ./guid-symbols.c : include/efivar/efivar-guids.h
- ./guids.bin : include/efivar/efivar-guids.h
- ./names.bin : include/efivar/efivar-guids.h
--include/efivar/efivar-guids.h : makeguids guids.txt
-- ./makeguids guids.txt guids.bin names.bin \
-+include/efivar/efivar-guids.h : guids.txt
-+ makeguids guids.txt guids.bin names.bin \
- guid-symbols.c include/efivar/efivar-guids.h
-
- makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT
diff --git a/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch b/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
deleted file mode 100644
index 2a6eb065f3..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From dd4291265b7b3d7d7ffa1d8adf32781ae25dbfeb Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 00:29:42 -0700
-Subject: [PATCH] makeguids: Do not use __bswap_constant_{16|32} macros
-
-not available on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/makeguids.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/makeguids.c b/src/makeguids.c
-index da2f5f7..daf821a 100644
---- a/src/makeguids.c
-+++ b/src/makeguids.c
-@@ -155,13 +155,13 @@ main(int argc, char *argv[])
- #if BYTE_ORDER == BIG_ENDIAN\n\
- #define cpu_to_be32(n) (n)\n\
- #define cpu_to_be16(n) (n)\n\
--#define cpu_to_le32(n) (__bswap_constant_32(n))\n\
--#define cpu_to_le16(n) (__bswap_constant_16(n))\n\
-+#define cpu_to_le32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
-+#define cpu_to_le16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
- #else\n\
- #define cpu_to_le32(n) (n)\n\
- #define cpu_to_le16(n) (n)\n\
--#define cpu_to_be32(n) (__bswap_constant_32(n))\n\
--#define cpu_to_be16(n) (__bswap_constant_16(n))\n\
-+#define cpu_to_be32(n) ((uint32_t) ((n)>>24 | (n)>>8&0xff00 | (n)<<8&0xff0000 | (n)<<24))\n\
-+#define cpu_to_be16(n) ((uint16_t) ((n)<<8 | (n)>>8))\n\
- #endif\n\
- """);
-
diff --git a/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch b/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
deleted file mode 100644
index 83105fe0d1..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/0003-efivar-fix-for-cross-compile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From dea4a55714249b2734a36701120fd22c91c64ec2 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sat, 7 May 2016 02:06:47 -0400
-Subject: [PATCH] Makefile: fix efivar.pc not found
-
-It fixes efivar.pc not found:
-...
-| install -d -m 755 efivar/0.23-r0/image/usr/lib/pkgconfig/
-| install -m 644 efivar.pc efivar/0.23-r0/image/usr/lib/pkgconfig/
-; install -m 644 efiboot.pc efivar/0.23-r0/image/usr/lib/pkgconfig/
-;
-| install: cannot stat 'efivar.pc': No such file or directory
-| install: cannot stat 'efiboot.pc': No such file or directory
-| make[1]: *** [install] Error 1
-| make[1]: Leaving directory `efivar/0.23-r0/git/src'
-| make: *** [install] Error 2
-| ERROR: oe_runmake failed
-...
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- src/Makefile | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index dcc7fc8..691aa8a 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -94,7 +94,9 @@ install : all
- ln -fs $(x).1.$(VERSION) $(DESTDIR)$(libdir)/$(x) ;\
- )
- $(INSTALL) -d -m 755 $(DESTDIR)$(PCDIR)
-- $(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(x) $(DESTDIR)$(PCDIR) ;)
-+ $(foreach x, $(PCTARGETS), $(INSTALL) -m 644 $(TOPDIR)/src/$(x).in $(DESTDIR)$(PCDIR)/$(x) ;\
-+ sed -i -e "s:@@LIBDIR@@:$(libdir):g" -e "s:@@VERSION@@:$(VERSION):g" \
-+ $(DESTDIR)$(PCDIR)/$(x); )
- $(INSTALL) -d -m 755 $(DESTDIR)$(includedir)/efivar
- $(foreach x, $(wildcard $(TOPDIR)/src/include/efivar/*.h), $(INSTALL) -m 644 $(x) $(DESTDIR)$(includedir)/efivar/$(notdir $(x));)
- $(INSTALL) -d -m 755 $(DESTDIR)$(bindir)
diff --git a/meta-oe/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch b/meta-oe/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch
deleted file mode 100644
index 96d0c6b3b2..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/0004-fix-unknow-option-for-gold-linker.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From b3d35e7dd27a755df5acbe050837885914dbb28b Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 10 May 2016 11:34:50 -0400
-Subject: [PATCH] fix unknow option for gold linker
-
-- Revert the following patch, since oe-core work with gcc 5
-...
-commit 3055a3797f16693dfdd855fa68bc57fd900dc408
-Author: Peter Jones <pjones@redhat.com>
-Date: Mon Feb 15 14:15:40 2016 -0500
-
- Make gcc.specs work with gcc 6 / binutils 2.26
-
- Apparently binutils 2.26 gets real picky about "ld -PIC" vs "ld -fPIC".
-
- Signed-off-by: Peter Jones <pjones@redhat.com>
-...
-
-- Remove unknown option '--add-needed'
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- gcc.specs | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: git/gcc.specs
-===================================================================
---- git.orig/gcc.specs
-+++ git/gcc.specs
-@@ -14,4 +14,4 @@
- + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now}
-
- *link:
--+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}
-++ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}
diff --git a/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch b/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
deleted file mode 100644
index f88af1fe17..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/allow-multi-definitions-for-native.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c801dcb03d42eb533a9bead0b397d7ce4fc5a6fe Mon Sep 17 00:00:00 2001
-From: Kai Kang <kai.kang@windriver.com>
-Date: Wed, 10 Aug 2016 17:49:50 +0800
-Subject: [PATCH] allow multi definitions for native
-
-Upstream-Status: Pending
-
-It fails to create .so file when build efivar-native:
-
-| lib.o:(*IND*+0x0): multiple definition of `efi_set_variable'
-| lib.o:lib.c:(.text+0xa0): first defined here
-
-Add link option '-z muldefs' to fix it.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
----
- Make.rules | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Make.rules b/Make.rules
-index 88b9aa7..799332f 100644
---- a/Make.rules
-+++ b/Make.rules
-@@ -20,6 +20,7 @@ include $(TOPDIR)/Make.version
- $(CCLD) $(ccldflags) $(CPPFLAGS) $(SOFLAGS) \
- -Wl,-soname,$@.1 \
- -Wl,--version-script=$(MAP) \
-+ -Wl,-z,muldefs \
- -o $@ $^ $(LDLIBS)
-
- %.abixml : %.so
diff --git a/meta-oe/recipes-bsp/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch b/meta-oe/recipes-bsp/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
deleted file mode 100644
index dbc9a5755e..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/fix-compile-failure-with-host-gcc-4.6.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 3edce6a0019bcb90febc1f654b5b2e2bad5c59bd Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 26 May 2016 21:50:01 -0400
-Subject: [PATCH] fix compile failure with older host gcc (<=4.6)
-
-While host gcc version is 4.6.3 in ubuntu 1204, it
-did not recognize -std=gnu11 and -Wmaybe-uninitialized.
-
-While host gcc version is 4.4.7 in centos6, it
-did not recognize -std=gnu11, -Wmaybe-uninitialized,
-and -flto.
-
-For native build, use -std=gnu99 to replace -std=gnu11,
-and directly remove -Wmaybe-uninitialized and -flto.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-
----
- gcc.specs | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gcc.specs b/gcc.specs
-index 45d43d1..f1c6944 100644
---- a/gcc.specs
-+++ b/gcc.specs
-@@ -2,13 +2,13 @@
- + -D_GNU_SOURCE
-
- *efivar_cpp_options:
-- -Werror -Wall -std=gnu11 -Wextra
-+ -Werror -Wall -std=gnu99 -Wextra
-
- *cpp_options:
- + %(efivar_cpp_options)
-
- *cc1_options:
--+ %(efivar_cpp_options) -Wmaybe-uninitialized -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
-++ %(efivar_cpp_options) -fno-merge-constants -fvisibility=hidden %{!r:%{!fpie:%{!fPIE:%{!fpic:%{!fPIC:%{!fno-pic:-fPIE}}}}}}
-
- *self_spec:
- + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now}
diff --git a/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch b/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch
deleted file mode 100644
index 5864ac63e4..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar/musl-strndupa.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 8000b9afc858472912aace985004b44f8eb467e0 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 18 Aug 2017 09:49:49 -0700
-Subject: [PATCH] support musl
-
-Upstream-Status: Pending
----
- src/linux.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/linux.c b/src/linux.c
-index 34ed479..1304f2b 100644
---- a/src/linux.c
-+++ b/src/linux.c
-@@ -40,6 +40,10 @@
- #include <efivar.h>
- #include <efiboot.h>
-
-+#if !defined(__GLIBC__)
-+#define strndupa(x,s) strncpy(alloca(strlen(x)+1),x,s)
-+#endif
-+
- #include "dp.h"
- #include "linux.h"
- #include "util.h"
diff --git a/meta-oe/recipes-bsp/efivar/efivar_0.31.bb b/meta-oe/recipes-bsp/efivar/efivar_0.31.bb
deleted file mode 100644
index 9d4cdc97be..0000000000
--- a/meta-oe/recipes-bsp/efivar/efivar_0.31.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "Tools to manipulate UEFI variables"
-DESCRIPTION = "efivar provides a simple command line interface to the UEFI variable facility"
-HOMEPAGE = "https://github.com/rhinstaller/efivar"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6626bb1e20189cfa95f2c508ba286393"
-
-DEPENDS = "popt"
-DEPENDS_append_class-target = " efivar-native"
-
-inherit pkgconfig
-
-COMPATIBLE_HOST = "(i.86|x86_64|arm|aarch64).*-linux"
-
-SRCREV = "11324799c68193116e1dd5f94b416591bd324f90"
-SRC_URI = "git://github.com/rhinstaller/efivar.git \
- file://allow-multi-definitions-for-native.patch \
- file://0001-makeguids-Do-not-use-__bswap_constant_-16-32-macros.patch \
- file://musl-strndupa.patch \
- file://0001-efivar-dp.h-Add-Wunknown-attributes-when-using-clang.patch \
- "
-SRC_URI_append_class-target = " file://0001-efivar-fix-for-cross-compile.patch \
- file://0003-efivar-fix-for-cross-compile.patch \
- ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', 'file://0004-fix-unknow-option-for-gold-linker.patch', '', d)} \
- "
-SRC_URI_append_class-native = " file://fix-compile-failure-with-host-gcc-4.6.patch \
- "
-
-S = "${WORKDIR}/git"
-
-# Setting CROSS_COMPILE breaks pkgconfig, so just set AR
-EXTRA_OEMAKE = "AR=${TARGET_PREFIX}gcc-ar"
-
-do_compile_prepend() {
- sed -i -e s:-Werror::g ${S}/gcc.specs
-}
-
-do_compile_class-native() {
- oe_runmake -C src makeguids
-}
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
-
-do_install_class-native() {
- install -D -m 0755 ${B}/src/makeguids ${D}${bindir}/makeguids
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-bsp/firmwared/firmwared/firmwared.service b/meta-oe/recipes-bsp/firmwared/firmwared/firmwared.service
new file mode 100644
index 0000000000..c2106a2516
--- /dev/null
+++ b/meta-oe/recipes-bsp/firmwared/firmwared/firmwared.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Linux Firmware Loader Daemon
+
+[Service]
+Type=simple
+ExecStart=@BINDIR@/firmwared -d /lib/firmware
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-bsp/firmwared/firmwared_git.bb b/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
new file mode 100644
index 0000000000..e8b491a435
--- /dev/null
+++ b/meta-oe/recipes-bsp/firmwared/firmwared_git.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Linux Firmware Loader Daemon"
+DESCRIPTION = "The Linux Firmware Loader Daemon monitors the kernel for \
+firmware requests and uploads the firmware blobs it has via the sysfs \
+interface."
+HOMEPAGE = "https://github.com/teg/firmwared"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE-APACHE;md5=7b486c2338d225a1405d979ed2c15ce8 \
+ file://COPYING;md5=daa868b8e1ae17d03228a1145b4060da"
+
+SRC_URI = "git://github.com/teg/firmwared.git;branch=master;protocol=https \
+ file://firmwared.service"
+
+PV = "0+git${SRCPV}"
+SRCREV = "2e6b5db43d63a5c0283a4cae9a6a20b7ad107a04"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "glib-2.0 systemd"
+
+inherit pkgconfig autotools systemd features_check
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SYSTEMD_SERVICE:${PN} = "firmwared.service"
+
+do_configure:prepend() {
+ ${S}/autogen.sh
+}
+
+do_install:append() {
+ install -d ${D}${systemd_system_unitdir}
+ install -m 0644 ${WORKDIR}/firmwared.service ${D}${systemd_system_unitdir}
+ sed -i -e 's,@BINDIR@,${bindir},g' ${D}${systemd_system_unitdir}/firmwared.service
+}
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch b/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch
deleted file mode 100644
index df8028627a..0000000000
--- a/meta-oe/recipes-bsp/flashrom/flashrom/0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e5f68189ab3602b1042cc8423fd6a3a23abd5455 Mon Sep 17 00:00:00 2001
-From: Alex James <theracermaster@gmail.com>
-Date: Sat, 14 Apr 2018 22:59:57 -0500
-Subject: [PATCH] ch341a_spi: Avoid deprecated libusb functions
-
-libusb 1.0.22 marked libusb_set_debug as deprecated. For such versions
-of libusb, use libusb_set_option instead.
-
-Change-Id: Ib71ebe812316eaf49136979a942a946ef9e4d487
-Signed-off-by: Alex James <theracermaster@gmail.com>
-Reviewed-on: https://review.coreboot.org/25681
-Tested-by: Nico Huber <nico.h@gmx.de>
-Reviewed-by: David Hendricks <david.hendricks@gmail.com>
----
-Upstream-Status: Backport
- ch341a_spi.c | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/ch341a_spi.c b/ch341a_spi.c
-index 6eb2804..d880510 100644
---- a/ch341a_spi.c
-+++ b/ch341a_spi.c
-@@ -444,7 +444,12 @@ int ch341a_spi_init(void)
- return -1;
- }
-
-- libusb_set_debug(NULL, 3); // Enable information, warning and error messages (only).
-+ /* Enable information, warning, and error messages (only). */
-+#if LIBUSB_API_VERSION < 0x01000106
-+ libusb_set_debug(NULL, 3);
-+#else
-+ libusb_set_option(NULL, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_INFO);
-+#endif
-
- uint16_t vid = devs_ch341a_spi[0].vendor_id;
- uint16_t pid = devs_ch341a_spi[0].device_id;
---
-2.17.0
-
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom/0001-flashrom-Mark-RISCV-as-non-memory-mapped-I-O-archite.patch b/meta-oe/recipes-bsp/flashrom/flashrom/0001-flashrom-Mark-RISCV-as-non-memory-mapped-I-O-archite.patch
new file mode 100644
index 0000000000..e481c5a161
--- /dev/null
+++ b/meta-oe/recipes-bsp/flashrom/flashrom/0001-flashrom-Mark-RISCV-as-non-memory-mapped-I-O-archite.patch
@@ -0,0 +1,44 @@
+From 2c777126765b4095bf481d5cfe4a21470374d940 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Mar 2021 15:12:09 -0700
+Subject: [PATCH] flashrom: Mark RISCV as non memory-mapped I/O architecture
+
+Upstream-Status: Submitted [https://review.coreboot.org/c/flashrom/+/51960]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Change-Id: I55c4e8529d36f0850dd56441c3fb8602c5d889fd
+---
+ Makefile | 2 +-
+ hwaccess.h | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 6d37d55..203e04b 100644
+--- a/Makefile
++++ b/Makefile
+@@ -559,7 +559,7 @@ endif
+ # Disable all drivers needing raw access (memory, PCI, port I/O) on
+ # architectures with unknown raw access properties.
+ # Right now those architectures are alpha hppa m68k sh s390
+-ifneq ($(ARCH),$(filter $(ARCH),x86 mips ppc arm sparc arc))
++ifneq ($(ARCH),$(filter $(ARCH),x86 mips ppc arm sparc arc riscv))
+ ifeq ($(CONFIG_RAYER_SPI), yes)
+ UNSUPPORTED_FEATURES += CONFIG_RAYER_SPI=yes
+ else
+diff --git a/hwaccess.h b/hwaccess.h
+index 5602c15..e79988a 100644
+--- a/hwaccess.h
++++ b/hwaccess.h
+@@ -295,6 +295,10 @@ int libpayload_wrmsr(int addr, msr_t msr);
+
+ /* Non memory mapped I/O is not supported on ARC. */
+
++#elif IS_RISCV
++
++/* Non memory mapped I/O is not supported on RISCV. */
++
+ #else
+
+ #error Unknown architecture, please check if it supports PCI port IO.
+--
+2.31.1
+
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom/0001-hwaccess-use-__asm__-as-is-done-elsewhere.patch b/meta-oe/recipes-bsp/flashrom/flashrom/0001-hwaccess-use-__asm__-as-is-done-elsewhere.patch
new file mode 100644
index 0000000000..f3316aa264
--- /dev/null
+++ b/meta-oe/recipes-bsp/flashrom/flashrom/0001-hwaccess-use-__asm__-as-is-done-elsewhere.patch
@@ -0,0 +1,52 @@
+From 3334dd4e9fc34c79c3925c3c24869939d8955f21 Mon Sep 17 00:00:00 2001
+From: Rosen Penev <rosenp@gmail.com>
+Date: Sat, 18 Jul 2020 12:16:00 -0700
+Subject: [PATCH] hwaccess: use __asm__ as is done elsewhere
+
+Fixes compilation under powerpc platform. Made the change for the SPARC
+platform as well.
+
+../hwaccess.c: In function 'sync_primitive':
+../hwaccess.c:74:2: warning: implicit declaration of function 'asm'
+ [-Wimplicit-function-declaration]
+ 74 | asm("eieio" : : : "memory");
+ | ^~~
+../hwaccess.c:74:13: error: expected ')' before ':' token
+ 74 | asm("eieio" : : : "memory");
+
+Upstream-Status: Submitted [https://github.com/flashrom/flashrom/pull/155]
+Signed-off-by: Rosen Penev <rosenp@gmail.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ hwaccess.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/hwaccess.c b/hwaccess.c
+index 48ccb34..2a39989 100644
+--- a/hwaccess.c
++++ b/hwaccess.c
+@@ -71,18 +71,18 @@ static inline void sync_primitive(void)
+ * See also https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/memory-barriers.txt
+ */
+ #if IS_PPC // cf. http://lxr.free-electrons.com/source/arch/powerpc/include/asm/barrier.h
+- asm("eieio" : : : "memory");
++ __asm__ ("eieio" : : : "memory");
+ #elif IS_SPARC
+ #if defined(__sparc_v9__) || defined(__sparcv9)
+ /* Sparc V9 CPUs support three different memory orderings that range from x86-like TSO to PowerPC-like
+ * RMO. The modes can be switched at runtime thus to make sure we maintain the right order of access we
+ * use the strongest hardware memory barriers that exist on Sparc V9. */
+- asm volatile ("membar #Sync" ::: "memory");
++ __asm__ volatile ("membar #Sync" ::: "memory");
+ #elif defined(__sparc_v8__) || defined(__sparcv8)
+ /* On SPARC V8 there is no RMO just PSO and that does not apply to I/O accesses... but if V8 code is run
+ * on V9 CPUs it might apply... or not... we issue a write barrier anyway. That's the most suitable
+ * operation in the V8 instruction set anyway. If you know better then please tell us. */
+- asm volatile ("stbar");
++ __asm__ volatile ("stbar");
+ #else
+ #error Unknown and/or unsupported SPARC instruction set version detected.
+ #endif
+--
+2.32.0
+
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch b/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch
deleted file mode 100644
index 7ba69a9176..0000000000
--- a/meta-oe/recipes-bsp/flashrom/flashrom/0001-platform-Add-riscv-to-known-platforms.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From d2a28dcdbd1051d2f48320e2eda3393581fe0519 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Mar 2018 23:08:29 -0700
-Subject: [PATCH] platform: Add riscv to known platforms
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted [https://review.coreboot.org/#/c/flashrom/+/25260/]
- platform.h | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/platform.h b/platform.h
-index b2fdcd0..2cadbb3 100644
---- a/platform.h
-+++ b/platform.h
-@@ -69,6 +69,9 @@
- #elif defined (__m68k__)
- #define __FLASHROM_ARCH__ "m68k"
- #define IS_M68K 1
-+#elif defined (__riscv)
-+ #define __FLASHROM_ARCH__ "riscv"
-+ #define IS_RISCV 1
- #elif defined (__sh__)
- #define __FLASHROM_ARCH__ "sh"
- #define IS_SH 1
-@@ -77,7 +80,7 @@
- #define IS_S390 1
- #endif
-
--#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM || IS_SPARC || IS_ALPHA || IS_HPPA || IS_M68K || IS_SH || IS_S390)
-+#if !(IS_X86 || IS_MIPS || IS_PPC || IS_ARM || IS_SPARC || IS_ALPHA || IS_HPPA || IS_M68K || IS_RISCV || IS_SH || IS_S390)
- #error Unknown architecture
- #endif
-
---
-2.16.2
-
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom/meson-fixes.patch b/meta-oe/recipes-bsp/flashrom/flashrom/meson-fixes.patch
new file mode 100644
index 0000000000..e45236ee07
--- /dev/null
+++ b/meta-oe/recipes-bsp/flashrom/flashrom/meson-fixes.patch
@@ -0,0 +1,68 @@
+Add a ftdi option alongside USB and PCI to control the external dependency, and
+ensure that the build is successful in all combinations of options.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/meson.build b/meson.build
+index 375089c..0df9d69 100644
+--- a/meson.build
++++ b/meson.build
+@@ -91,6 +91,8 @@ else
+ config_digilent_spi = false
+ config_developerbox_spi = false
+ config_pickit2_spi = false
++ config_stlinkv3_spi = false
++ config_usbblaster_spi = false
+ endif
+
+ # some programmers require libpci
+@@ -118,6 +120,21 @@ else
+ config_satasii = false
+ endif
+
++# some programmers require libftdi
++if get_option('ftdi')
++ deps += dependency('libftdi1')
++else
++ config_ft2232_spi = false
++ config_usbblaster_spi = false
++endif
++
++if not (target_machine.cpu_family() == 'x86' or target_machine.cpu_family() == 'x86_64')
++ config_satamv = false
++ config_nic3com = false
++ config_rayer_spi = false
++ config_nicrealtek = false
++endif
++
+ # set defines for configured programmers
+ if config_atahpt
+ srcs += 'atahpt.c'
+@@ -163,7 +180,6 @@ endif
+ if config_ft2232_spi
+ srcs += 'ft2232_spi.c'
+ cargs += '-DCONFIG_FT2232_SPI=1'
+- deps += dependency('libftdi1')
+ cargs += '-DHAVE_FT232H=1'
+ endif
+ if config_gfxnvidia
+@@ -216,6 +232,7 @@ endif
+ if config_nicintel
+ srcs += 'nicintel.c'
+ cargs += '-DCONFIG_NICINTEL=1'
++ need_raw_access = true
+ endif
+ if config_nicintel_eeprom
+ srcs += 'nicintel_eeprom.c'
+diff --git a/meson_options.txt b/meson_options.txt
+index ea87311..b6b842d 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,5 +1,6 @@
+ option('pciutils', type : 'boolean', value : true, description : 'use pciutils')
+ option('usb', type : 'boolean', value : true, description : 'use libusb1')
++option('ftdi', type : 'boolean', value : true, description : 'use libftdi')
+
+ option('config_atahpt', type : 'boolean', value : false, description : 'Highpoint (HPT) ATA/RAID controllers')
+ option('config_atapromise', type : 'boolean', value : false, description : 'Promise ATA controller')
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch b/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch
deleted file mode 100644
index 46a01529f7..0000000000
--- a/meta-oe/recipes-bsp/flashrom/flashrom/sst26.patch
+++ /dev/null
@@ -1,198 +0,0 @@
---- flashrom-0.9.9.orig/chipdrivers.h
-+++ flashrom-0.9.9/chipdrivers.h
-@@ -103,6 +103,7 @@
- int spi_prettyprint_status_register_sst25(struct flashctx *flash);
- int spi_prettyprint_status_register_sst25vf016(struct flashctx *flash);
- int spi_prettyprint_status_register_sst25vf040b(struct flashctx *flash);
-+int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash);
-
- /* sfdp.c */
- int probe_spi_sfdp(struct flashctx *flash);
---- flashrom-0.9.9.orig/flashchips.c
-+++ flashrom-0.9.9/flashchips.c
-@@ -12564,6 +12564,120 @@
-
- {
- .vendor = "SST",
-+ .name = "SST26VF016B(A)",
-+ .bustype = BUS_SPI,
-+ .manufacture_id = SST_ID,
-+ .model_id = SST_SST26VF016B,
-+ .total_size = 2048,
-+ .page_size = 256,
-+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
-+ .tested = TEST_OK_PREW,
-+ .probe = probe_spi_rdid,
-+ .probe_timing = TIMING_ZERO,
-+ .block_erasers =
-+ {
-+ {
-+ .eraseblocks = { {4 * 1024, 512} },
-+ .block_erase = spi_block_erase_20,
-+ }, {
-+ .eraseblocks = {
-+ {8 * 1024, 4},
-+ {32 * 1024, 1},
-+ {64 * 1024, 30},
-+ {32 * 1024, 1},
-+ {8 * 1024, 4},
-+ },
-+ .block_erase = spi_block_erase_d8,
-+ }, {
-+ .eraseblocks = { {2 * 1024 * 1024, 1} },
-+ .block_erase = spi_block_erase_c7,
-+ },
-+ },
-+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */
-+ .unlock = spi_disable_blockprotect_sst26_global_unprotect,
-+ .write = spi_chip_write_256, /* Multi I/O supported */
-+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
-+ .voltage = {2700, 3600},
-+ },
-+ {
-+ .vendor = "SST",
-+ .name = "SST26VF032B(A)",
-+ .bustype = BUS_SPI,
-+ .manufacture_id = SST_ID,
-+ .model_id = SST_SST26VF032B,
-+ .total_size = 4096,
-+ .page_size = 256,
-+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
-+ .tested = TEST_UNTESTED,
-+ .probe = probe_spi_rdid,
-+ .probe_timing = TIMING_ZERO,
-+ .block_erasers =
-+ {
-+ {
-+ .eraseblocks = { {4 * 1024, 1024} },
-+ .block_erase = spi_block_erase_20,
-+ }, {
-+ .eraseblocks = {
-+ {8 * 1024, 4},
-+ {32 * 1024, 1},
-+ {64 * 1024, 62},
-+ {32 * 1024, 1},
-+ {8 * 1024, 4},
-+ },
-+ .block_erase = spi_block_erase_d8,
-+ }, {
-+ .eraseblocks = { {4 * 1024 * 1024, 1} },
-+ .block_erase = spi_block_erase_c7,
-+ },
-+ },
-+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */
-+ .unlock = spi_disable_blockprotect_sst26_global_unprotect,
-+ .write = spi_chip_write_256, /* Multi I/O supported */
-+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
-+ .voltage = {2700, 3600},
-+ },
-+
-+
-+ {
-+ .vendor = "SST",
-+ .name = "SST26VF064B(A)",
-+ .bustype = BUS_SPI,
-+ .manufacture_id = SST_ID,
-+ .model_id = SST_SST26VF064B,
-+ .total_size = 8192,
-+ .page_size = 256,
-+ .feature_bits = FEATURE_WRSR_WREN | FEATURE_OTP,
-+ .tested = TEST_OK_PREW,
-+ .probe = probe_spi_rdid,
-+ .probe_timing = TIMING_ZERO,
-+ .block_erasers =
-+ {
-+ {
-+ .eraseblocks = { {4 * 1024, 2048} },
-+ .block_erase = spi_block_erase_20,
-+ }, {
-+ .eraseblocks = {
-+ {8 * 1024, 4},
-+ {32 * 1024, 1},
-+ {64 * 1024, 126},
-+ {32 * 1024, 1},
-+ {8 * 1024, 4},
-+ },
-+ .block_erase = spi_block_erase_d8,
-+ }, {
-+ .eraseblocks = { {8 * 1024 * 1024, 1} },
-+ .block_erase = spi_block_erase_c7,
-+ },
-+ },
-+ .printlock = spi_prettyprint_status_register_plain, /* TODO: improve */
-+ .unlock = spi_disable_blockprotect_sst26_global_unprotect,
-+ .write = spi_chip_write_256, /* Multi I/O supported */
-+ .read = spi_chip_read, /* Fast read (0x0B) and multi I/O supported */
-+ .voltage = {2700, 3600},
-+ },
-+
-+ {
-+ .vendor = "SST",
- .name = "SST25WF512",
- .bustype = BUS_SPI,
- .manufacture_id = SST_ID,
---- flashrom-0.9.9.orig/flashchips.h
-+++ flashrom-0.9.9/flashchips.h
-@@ -697,6 +697,8 @@
- #define SST_SST25VF064C 0x254B
- #define SST_SST26VF016 0x2601
- #define SST_SST26VF032 0x2602
-+#define SST_SST26VF016B 0x2641
-+#define SST_SST26VF032B 0x2642
- #define SST_SST26VF064B 0x2643
- #define SST_SST27SF512 0xA4
- #define SST_SST27SF010 0xA5
---- flashrom-0.9.9.orig/linux_spi.c
-+++ flashrom-0.9.9/linux_spi.c
-@@ -141,6 +141,16 @@
- return 0;
- }
-
-+static void print_hex(const char *msg, const void *buf, size_t len)
-+{
-+ size_t i;
-+ msg_pspew("%s:\n", msg);
-+ for (i = 0; i < len; i++) {
-+ msg_pspew(" %02x", ((uint8_t *)buf)[i]);
-+ }
-+ msg_pspew("\n");
-+}
-+
- static int linux_spi_send_command(struct flashctx *flash, unsigned int writecnt,
- unsigned int readcnt,
- const unsigned char *txbuf,
-@@ -172,10 +182,12 @@
- else
- iocontrol_code = SPI_IOC_MESSAGE(2);
-
-+ print_hex("Write", txbuf, writecnt);
- if (ioctl(fd, iocontrol_code, msg) == -1) {
- msg_cerr("%s: ioctl: %s\n", __func__, strerror(errno));
- return -1;
- }
-+ if (readcnt) print_hex("Got", rxbuf, readcnt);
- return 0;
- }
-
---- flashrom-0.9.9.orig/spi25_statusreg.c
-+++ flashrom-0.9.9/spi25_statusreg.c
-@@ -196,6 +196,19 @@
- return spi_disable_blockprotect_generic(flash, 0x3C, 0, 0, 0xFF);
- }
-
-+int spi_disable_blockprotect_sst26_global_unprotect(struct flashctx *flash)
-+{
-+ int result = spi_write_enable(flash);
-+ if (result)
-+ return result;
-+
-+ static const unsigned char cmd[] = { 0x98 }; /* ULBPR */
-+ result = spi_send_command(flash, sizeof(cmd), 0, cmd, NULL);
-+ if (result)
-+ msg_cerr("ULBPR failed\n");
-+ return result;
-+}
-+
- /* A common block protection disable that tries to unset the status register bits masked by 0x0C (BP0-1) and
- * protected/locked by bit #7. Useful when bits 4-5 may be non-0). */
- int spi_disable_blockprotect_bp1_srwd(struct flashctx *flash)
diff --git a/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb b/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
deleted file mode 100644
index 1c17246681..0000000000
--- a/meta-oe/recipes-bsp/flashrom/flashrom_1.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "flashrom is a utility for identifying, reading, writing, verifying and erasing flash chips"
-LICENSE = "GPLv2"
-HOMEPAGE = "http://flashrom.org"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "pciutils libusb libusb-compat"
-
-SRC_URI = "https://download.flashrom.org/releases/flashrom-${PV}.tar.bz2 \
- file://sst26.patch \
- file://0001-platform-Add-riscv-to-known-platforms.patch \
- file://0001-ch341a_spi-Avoid-deprecated-libusb-functions.patch \
- "
-SRC_URI[md5sum] = "42d999990c735d88653627cefcc13b9a"
-SRC_URI[sha256sum] = "3702fa215ba5fb5af8e54c852d239899cfa1389194c1e51cb2a170c4dc9dee64"
-
-inherit pkgconfig
-
-do_install() {
- oe_runmake PREFIX=${prefix} DESTDIR=${D} install
-}
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/fwupd/fwupd-efi/cc.patch b/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch
new file mode 100644
index 0000000000..6fd2eca941
--- /dev/null
+++ b/meta-oe/recipes-bsp/fwupd/fwupd-efi/cc.patch
@@ -0,0 +1,53 @@
+Change the efi-cc argument to take an array, so that we can pass compiler flags
+such as --sysroot.
+
+In the long term changing the fwupd-efi build to use the standard Meson
+CC/LD/etc would be the preferred fix.
+
+Upstream-Status: Inappropriate [better fix in progress]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/efi/generate_sbat.py b/efi/generate_sbat.py
+index e42b365..4831a48 100755
+--- a/efi/generate_sbat.py
++++ b/efi/generate_sbat.py
+@@ -7,6 +7,7 @@
+ #
+ # pylint: disable=missing-docstring, invalid-name
+
++import shlex
+ import subprocess
+ import sys
+ import argparse
+@@ -19,7 +20,7 @@ def _generate_sbat(args):
+ FWUPD_URL = "https://github.com/fwupd/fwupd-efi"
+
+ subprocess.run(
+- [args.cc, "-x", "c", "-c", "-o", args.outfile, "/dev/null"], check=True
++ shlex.split(args.cc) + ["-x", "c", "-c", "-o", args.outfile, "/dev/null"], check=True
+ )
+
+ # not specified
+diff --git a/efi/meson.build b/efi/meson.build
+index 68ea4aa..dcf0d43 100644
+--- a/efi/meson.build
++++ b/efi/meson.build
+@@ -187,7 +187,7 @@ o_file5 = custom_target('fwup-sbat.o',
+ command : [
+ generate_sbat,
+ '@OUTPUT@',
+- '--cc', efi_cc,
++ '--cc', ' '.join(efi_cc),
+ '--objcopy', objcopy,
+ '--project-name', meson.project_name(),
+ '--project-version', meson.project_version(),
+diff --git a/meson_options.txt b/meson_options.txt
+index d869cd2..17ef7fb 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,4 +1,4 @@
+-option('efi-cc', type : 'string', value : 'gcc', description : 'the compiler to use for EFI modules')
++option('efi-cc', type : 'array', value : ['gcc'], description : 'the compiler to use for EFI modules')
+ option('efi-ld', type : 'string', value : 'ld', description : 'the linker to use for EFI modules')
+ option('efi-libdir', type : 'string', description : 'path to the EFI lib directory')
+ option('efi-ldsdir', type : 'string', description : 'path to the EFI lds directory')
diff --git a/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.3.bb b/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.3.bb
new file mode 100644
index 0000000000..b53cabeaeb
--- /dev/null
+++ b/meta-oe/recipes-bsp/fwupd/fwupd-efi_1.3.bb
@@ -0,0 +1,33 @@
+SUMMARY = "EFI executable for fwupd"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://github.com/fwupd/fwupd-efi;protocol=https;branch=main \
+ file://cc.patch"
+SRCREV = "36ce593f58e391cca43fd388824496ff98d83480"
+S = "${WORKDIR}/git"
+
+DEPENDS = "gnu-efi"
+
+COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
+
+inherit meson
+
+# These should be configured as needed
+SBAT_DISTRO_ID ?= "${DISTRO}"
+SBAT_DISTRO_SUMMARY ?= "${DISTRO_NAME}"
+SBAT_DISTRO_URL ?= ""
+
+EXTRA_OEMESON += "-Defi-cc="${@meson_array('CC', d)}" \
+ -Defi-ld='${HOST_PREFIX}ld' \
+ -Defi-includedir=${STAGING_INCDIR}/efi \
+ -Defi-libdir=${STAGING_LIBDIR} \
+ -Defi_sbat_distro_id='${SBAT_DISTRO_ID}' \
+ -Defi_sbat_distro_summary='${SBAT_DISTRO_SUMMARY}' \
+ -Defi_sbat_distro_url='${SBAT_DISTRO_URL}' \
+ -Defi_sbat_distro_pkgname='${PN}' \
+ -Defi_sbat_distro_version='${PV}'\
+ "
+
+# The compile assumes GCC at present
+TOOLCHAIN = "gcc"
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/run-ptest b/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest
new file mode 100755
index 0000000000..dbc0fc32a2
--- /dev/null
+++ b/meta-oe/recipes-bsp/fwupd/fwupd/run-ptest
@@ -0,0 +1,6 @@
+#! /bin/sh
+
+# Don't run all of the fwupd tests, as fwupd/fwupdmgr.test needs a custom
+# /etc/fwupd/daemon.conf with DisabledPlugins unset.
+
+gnome-desktop-testing-runner fwupd/fwupd.test
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/irda-utils/irda-utils-0.9.18/init b/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/init
new file mode 100755
index 0000000000..6f29e9c6ed
--- /dev/null
+++ b/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/init
@@ -0,0 +1,78 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: irda
+# Required-Start: $network $remote_fs
+# Required-Stop: $network $remote_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Infrared port support
+### END INIT INFO
+
+NAME="irattach"
+test -x "$IRDA_DAEMON" || IRDA_DAEMON=/usr/sbin/irattach
+test -z "$IRATTACH_PID" && IRATTACH_PID=/var/run/irattach.pid
+
+# Source function library.
+. /etc/init.d/functions
+
+module_id() {
+ awk 'BEGIN { FS=": " } /Hardware/ { print $2 } ' </proc/cpuinfo
+}
+
+if [ ! -f /etc/sysconfig/irda ]; then
+ case `module_id` in
+ "HP iPAQ H2200" | "HP iPAQ HX4700" | "HTC Universal")
+ IRDA=yes
+ DEVICE=/dev/ttyS2
+ DONGLE=
+ DISCOVERY=
+ ;;
+ *)
+ IRDA=yes
+ DEVICE=/dev/ttyS1
+ DONGLE=
+ DISCOVERY=
+ ;;
+ esac
+else
+ . /etc/sysconfig/irda
+fi
+
+# Check that irda is up.
+[ ${IRDA} = "no" ] && exit 0
+
+[ -f /usr/sbin/irattach ] || exit 0
+
+ARGS=
+if [ $DONGLE ]; then
+ ARGS="$ARGS -d $DONGLE"
+fi
+if [ "$DISCOVERY" = "yes" ];then
+ ARGS="$ARGS -s"
+fi
+
+case "$1" in
+ start)
+ echo -n "Starting IrDA: $NAME"
+ start-stop-daemon --start --quiet --exec "$IRDA_DAEMON" ${DEVICE} ${ARGS} --pidfile "$IRATTACH_PID"
+ sleep 1
+ [ -f /var/run/irattach.pid ] && echo " done" || echo " fail"
+ ;;
+ stop)
+ echo "Stopping IrDA: $NAME"
+ start-stop-daemon --stop --quiet --exec "$IRDA_DAEMON" --pidfile "$IRATTACH_PID"
+ ;;
+ restart|force-reload)
+ $0 stop
+ $0 start
+ ;;
+ status)
+ status irattach
+ exit $?
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ echo "Usage: $N {start|stop|restart|force-reload|status}" >&2
+ exit 1
+ ;;
+esac
diff --git a/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/ldflags.patch b/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/ldflags.patch
new file mode 100644
index 0000000000..b246de8f5f
--- /dev/null
+++ b/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/ldflags.patch
@@ -0,0 +1,87 @@
+Obey LDFLAGS
+
+Signed-off-by: Christopher Larson <chris_larson@mentor.com>
+Upstream-Status: Pending
+
+Index: irda-utils-0.9.18/findchip/Makefile
+===================================================================
+--- irda-utils-0.9.18.orig/findchip/Makefile
++++ irda-utils-0.9.18/findchip/Makefile
+@@ -65,5 +65,5 @@ install: findchip
+
+ gfindchip: gfindchip.c
+ $(prn_cc)
+- $(ECMD))$(CC) $(CFLAGS) `gtk-config --cflags` $< -o $@ `gtk-config --libs`
++ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) `gtk-config --cflags` $< -o $@ `gtk-config --libs`
+
+Index: irda-utils-0.9.18/irattach/Makefile
+===================================================================
+--- irda-utils-0.9.18.orig/irattach/Makefile
++++ irda-utils-0.9.18/irattach/Makefile
+@@ -49,13 +49,13 @@ all: $(TARGETS)
+
+ irattach: irattach.o util.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) irattach.o util.o -o $@
++ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) irattach.o util.o -o $@
+
+
+
+ dongle_attach: dongle_attach.o
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) dongle_attach.o -o $@
++ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) dongle_attach.o -o $@
+
+
+ install: $(TARGETS)
+Index: irda-utils-0.9.18/irdadump/Makefile
+===================================================================
+--- irda-utils-0.9.18.orig/irdadump/Makefile
++++ irda-utils-0.9.18/irdadump/Makefile
+@@ -40,7 +40,7 @@ lib_irdadump.a: $(LIBIRDADUMP_OBJS)
+
+ irdadump: $(IRDADUMP_OBJS) $(LIBIRDADUMP_TARGET)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) `pkg-config --libs glib-2.0` -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET)
++ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) `pkg-config --libs glib-2.0` -o $(IRDADUMP_TARGET) $< $(LIBIRDADUMP_TARGET)
+
+
+ .c.o:
+Index: irda-utils-0.9.18/irdaping/Makefile
+===================================================================
+--- irda-utils-0.9.18.orig/irdaping/Makefile
++++ irda-utils-0.9.18/irdaping/Makefile
+@@ -56,7 +56,7 @@ all: $(TARGETS)
+
+ irdaping: $(OBJS)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) $(OBJS) -o $@
++ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@
+
+
+ .c.o:
+Index: irda-utils-0.9.18/irnetd/Makefile
+===================================================================
+--- irda-utils-0.9.18.orig/irnetd/Makefile
++++ irda-utils-0.9.18/irnetd/Makefile
+@@ -50,7 +50,7 @@ all: $(TARGETS)
+
+ irnetd: $(OBJS)
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) $(OBJS) -o $@
++ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) -o $@
+
+
+ install: irnetd
+Index: irda-utils-0.9.18/psion/Makefile
+===================================================================
+--- irda-utils-0.9.18.orig/psion/Makefile
++++ irda-utils-0.9.18/psion/Makefile
+@@ -25,4 +25,4 @@ install: $(PSION_TARGETS)
+ CFLAGS += -g -I../include -Wall -Wstrict-prototypes $(RPM_OPT_FLAGS)
+ irpsion5:
+ $(prn_cc_o)
+- $(ECMD)$(CC) $(CFLAGS) $(PSION_SRC) -o $@
+\ No newline at end of file
++ $(ECMD)$(CC) $(CFLAGS) $(LDFLAGS) $(PSION_SRC) -o $@
+\ No newline at end of file
diff --git a/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/musl.patch b/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/musl.patch
new file mode 100644
index 0000000000..97eb975023
--- /dev/null
+++ b/meta-oe/recipes-bsp/irda-utils/irda-utils-0.9.18/musl.patch
@@ -0,0 +1,29 @@
+Replace use of <net/if_packet.h> with <linux/if_packet.h>.
+
+kernel headers <linux/if_packet.h> already provides the
+needed definitions, moreover not all libc implementations
+provide if_packet.h e.g. musl
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+Index: irda-utils-0.9.18/irdaping/irdaping.c
+===================================================================
+--- irda-utils-0.9.18.orig/irdaping/irdaping.c
++++ irda-utils-0.9.18/irdaping/irdaping.c
+@@ -33,7 +33,6 @@
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <net/if.h> /* For struct ifreq */
+-#include <net/if_packet.h> /* For struct sockaddr_pkt */
+ #include <net/if_arp.h> /* For ARPHRD_IRDA */
+ #include <netinet/if_ether.h> /* For ETH_P_ALL */
+ #include <netinet/in.h> /* For htons */
+@@ -46,6 +45,7 @@
+ #include <asm/byteorder.h> /* __cpu_to_le32 and co. */
+
+ #include <linux/types.h> /* For __u8 and co. */
++#include <linux/if_packet.h> /* For struct sockaddr_pkt */
+ #include <irda.h>
+
+ #ifndef AF_IRDA
diff --git a/meta-oe/recipes-bsp/irda-utils/irda-utils_0.9.18.bb b/meta-oe/recipes-bsp/irda-utils/irda-utils_0.9.18.bb
new file mode 100644
index 0000000000..fa1bb928ca
--- /dev/null
+++ b/meta-oe/recipes-bsp/irda-utils/irda-utils_0.9.18.bb
@@ -0,0 +1,64 @@
+SUMMARY = "Common files for IrDA"
+DESCRIPTION = "Provides common files needed to use IrDA. \
+IrDA allows communication over Infrared with other devices \
+such as phones and laptops."
+HOMEPAGE = "http://irda.sourceforge.net/"
+BUGTRACKER = "http://sourceforge.net/p/irda/bugs/"
+SECTION = "base"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://irdadump/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://smcinit/COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
+ file://man/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://irdadump/irdadump.c;beginline=1;endline=24;md5=d78b9dce3cd78c2220250c9c7a2be178"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/irda/irda-utils-${PV}.tar.gz \
+ file://ldflags.patch \
+ file://musl.patch \
+ file://init"
+
+SRC_URI[md5sum] = "84dc12aa4c3f61fccb8d8919bf4079bb"
+SRC_URI[sha256sum] = "61980551e46b2eaa9e17ad31cbc1a638074611fc33bff34163d10c7a67a9fdc6"
+
+inherit update-rc.d
+
+RRECOMMENDS:${PN} = "\
+ kernel-module-pxaficp-ir \
+ kernel-module-irda \
+ kernel-module-ircomm \
+ kernel-module-ircomm-tty \
+ kernel-module-irlan \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ppp', 'kernel-module-irnet', '',d)} \
+ kernel-module-irport \
+ kernel-module-irtty \
+ kernel-module-irtty-sir \
+ kernel-module-sir-dev \
+ ${@bb.utils.contains('COMBINED_FEATURES', 'usbhost', 'kernel-module-ir-usb', '',d)} "
+
+EXTRA_OEMAKE = "\
+ 'CC=${CC}' \
+ 'LD=${LD}' \
+ 'CFLAGS=${CFLAGS}' \
+ 'LDFLAGS=${LDFLAGS}' \
+ 'SYS_INCLUDES=' \
+ 'V=1' \
+"
+
+INITSCRIPT_NAME = "irattach"
+INITSCRIPT_PARAMS = "defaults 20"
+
+TARGETS ??= "irattach irdaping"
+do_compile () {
+ for t in ${TARGETS}; do
+ oe_runmake -C $t
+ done
+}
+
+do_install () {
+ install -d ${D}${sbindir}
+ for t in ${TARGETS}; do
+ oe_runmake -C $t ROOT="${D}" install
+ done
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/${INITSCRIPT_NAME}
+}
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
new file mode 100644
index 0000000000..09f4993a25
--- /dev/null
+++ b/meta-oe/recipes-bsp/ledmon/ledmon/0001-Don-t-build-with-Werror-to-fix-compile-error.patch
@@ -0,0 +1,30 @@
+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/0002-include-sys-select.h-and-sys-types.h.patch b/meta-oe/recipes-bsp/ledmon/ledmon/0002-include-sys-select.h-and-sys-types.h.patch
new file mode 100644
index 0000000000..75bf2b4f5e
--- /dev/null
+++ b/meta-oe/recipes-bsp/ledmon/ledmon/0002-include-sys-select.h-and-sys-types.h.patch
@@ -0,0 +1,43 @@
+From 2ee8796db5019341b774bcb4f7d0944d89e1845b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Apr 2019 21:26:55 -0700
+Subject: [PATCH 2/2] include sys/select.h and sys/types.h
+
+sys/select.h is needed to provide fd_set definition
+sys/types.h is needed for ssize_t
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/dellssd.c | 1 +
+ src/utils.h | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/dellssd.c b/src/dellssd.c
+index 7b8d431..e97fe45 100644
+--- a/src/dellssd.c
++++ b/src/dellssd.c
+@@ -27,6 +27,7 @@
+ #include <unistd.h>
+
+ #include <sys/ioctl.h>
++#include <sys/select.h>
+ #include <linux/ipmi.h>
+
+ #if _HAVE_DMALLOC_H
+diff --git a/src/utils.h b/src/utils.h
+index 720447a..c106529 100644
+--- a/src/utils.h
++++ b/src/utils.h
+@@ -21,6 +21,7 @@
+ #define _UTILS_H_INCLUDED_
+
+ #include <getopt.h>
++#include <sys/types.h>
+ #include "config_file.h"
+ #include "stdlib.h"
+ #include "stdint.h"
+--
+2.21.0
+
diff --git a/meta-oe/recipes-bsp/ledmon/ledmon_git.bb b/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
new file mode 100644
index 0000000000..dbfd1e7bc0
--- /dev/null
+++ b/meta-oe/recipes-bsp/ledmon/ledmon_git.bb
@@ -0,0 +1,41 @@
+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-config_1.0.bb b/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
index b0091d6574..25ab44f75e 100644
--- a/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
+++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors-config_1.0.bb
@@ -1,7 +1,7 @@
SUMMARY = "lm_sensors configuration files"
DESCRIPTION = "Hardware health monitoring configuration files"
HOMEPAGE = "http://www.lm-sensors.org/"
-LICENSE = "MIT-X"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PACKAGE_ARCH = "${MACHINE_ARCH}"
@@ -14,7 +14,10 @@ SRC_URI = "file://fancontrol \
"
S = "${WORKDIR}"
-RDEPENDS_${PN}-dev = ""
+PACKAGECONFIG ??= "sensord"
+PACKAGECONFIG[sensord] = ",,"
+
+RDEPENDS:${PN}-dev = ""
do_install() {
# Install fancontrol configuration file
@@ -25,39 +28,41 @@ do_install() {
install -d ${D}${sysconfdir}/sensors.d
install -m 0644 ${WORKDIR}/sensors.conf ${D}${sysconfdir}/sensors.d
- # Install sensord configuration file
- install -m 0644 ${WORKDIR}/sensord.conf ${D}${sysconfdir}
+ if ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+ # Install sensord configuration file
+ install -m 0644 ${WORKDIR}/sensord.conf ${D}${sysconfdir}
- # Install sensord.cgi script and create world-writable
- # web-accessible sensord directory
- install -d ${D}/www/pages/cgi-bin
- install -m 0755 ${WORKDIR}/sensord.cgi ${D}/www/pages/cgi-bin
- install -d -m a=rwxs ${D}/www/pages/sensord
+ # Install sensord.cgi script and create world-writable
+ # web-accessible sensord directory
+ install -d ${D}/www/pages/cgi-bin
+ install -m 0755 ${WORKDIR}/sensord.cgi ${D}/www/pages/cgi-bin
+ install -d -m a=rwxs ${D}/www/pages/sensord
+ fi
}
# libsensors configuration
PACKAGES =+ "${PN}-libsensors"
# sensord logging daemon configuration
-PACKAGES =+ "${PN}-sensord"
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)}"
# fancontrol script configuration
PACKAGES =+ "${PN}-fancontrol"
# sensord web cgi support
-PACKAGES =+ "${PN}-cgi"
-RRECOMMENDS_${PN}-cgi = "lighttpd lighttpd-module-cgi"
-RDEPENDS_${PN}-cgi = "${PN}-sensord rrdtool"
-FILES_${PN}-cgi = "/www/*"
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-cgi', '', d)}"
+RRECOMMENDS:${PN}-cgi = "lighttpd lighttpd-module-cgi"
+RDEPENDS:${PN}-cgi = "${PN}-sensord rrdtool"
+FILES:${PN}-cgi = "/www/*"
# libsensors configuration file
-FILES_${PN}-libsensors = "${sysconfdir}/sensors.d/sensors.conf"
+FILES:${PN}-libsensors = "${sysconfdir}/sensors.d/sensors.conf"
# sensord logging daemon configuration files
-FILES_${PN}-sensord = "\
+FILES:${PN}-sensord = "\
${sysconfdir}/sensord.conf \
${sysconfdir}/sysconfig/sensord \
"
# fancontrol script configuration file
-FILES_${PN}-fancontrol = "${sysconfdir}/fancontrol"
+FILES:${PN}-fancontrol = "${sysconfdir}/fancontrol"
diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-Change-PIDFile-path-from-var-run-to-run.patch b/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-Change-PIDFile-path-from-var-run-to-run.patch
new file mode 100644
index 0000000000..c34db695ff
--- /dev/null
+++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-Change-PIDFile-path-from-var-run-to-run.patch
@@ -0,0 +1,44 @@
+From 25f4f8793730ef3d170f1f2bd729a82fd61a4784 Mon Sep 17 00:00:00 2001
+From: puneetse <22071208+puneetse@users.noreply.github.com>
+Date: Wed, 11 Mar 2020 09:36:51 -0700
+Subject: [PATCH] Change PIDFile path from /var/run to /run
+
+/var/run is considered a legacy directory by systemd 239+ and having it in unit files causes a warning to be emitted to the journal.
+
+Upstream-Status: Backport [25f4f8793730ef3d170f1f2bd729a82fd61a4784]
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ prog/init/fancontrol.service | 2 +-
+ prog/init/sensord.service | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/prog/init/fancontrol.service b/prog/init/fancontrol.service
+index 3ac1ed02..43293141 100644
+--- a/prog/init/fancontrol.service
++++ b/prog/init/fancontrol.service
+@@ -5,7 +5,7 @@ After=lm_sensors.service
+
+ [Service]
+ Type=simple
+-PIDFile=/var/run/fancontrol.pid
++PIDFile=/run/fancontrol.pid
+ ExecStart=/usr/sbin/fancontrol
+
+ [Install]
+diff --git a/prog/init/sensord.service b/prog/init/sensord.service
+index 2448beeb..af2f0ae9 100644
+--- a/prog/init/sensord.service
++++ b/prog/init/sensord.service
+@@ -5,7 +5,7 @@ After=lm_sensors.service
+ [Service]
+ EnvironmentFile=/etc/sysconfig/sensord
+ Type=forking
+-PIDFile=/var/run/sensord.pid
++PIDFile=/run/sensord.pid
+ ExecStart=/usr/sbin/sensord -i $INTERVAL -l $LOG_INTERVAL -f daemon
+
+ [Install]
+--
+2.17.1
+
diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch b/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch
deleted file mode 100644
index abf6e752af..0000000000
--- a/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-lmsensors-sensors-detect-print-a-special-message-whe.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From c4428260e7685ebaf5c26c6ecaae5a56849853e8 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Tue, 6 Sep 2016 14:04:29 +0800
-Subject: [PATCH] lmsensors: sensors-detect: print a special message when there
- isn't enough cpu info
-
-When running sensors-detect, if there isn't enough information in
-/proc/cpuinfo for this arch (e.g. ppc64), "Use of uninitialized value
-in concatenation (.) or string at /usr/sbin/sensors-detect line 2867"
-and incomplete "# Processor: (//)" will be printed.
-Here print out a prompt for such a case.
-
-Upstream-Status: Pending
-
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- prog/detect/sensors-detect | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/prog/detect/sensors-detect b/prog/detect/sensors-detect
-index 3c2b44f..5f62405 100755
---- a/prog/detect/sensors-detect
-+++ b/prog/detect/sensors-detect
-@@ -2864,7 +2864,12 @@ sub initialize_cpu_list
- sub print_cpu_info
- {
- my $cpu = $cpu[0];
-- print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n";
-+ if ( $cpu->{'model name'} && $cpu->{'cpu family'} && $cpu->{model} && $cpu->{stepping} ) {
-+ print "# Processor: $cpu->{'model name'} ($cpu->{'cpu family'}/$cpu->{model}/$cpu->{stepping})\n";
-+ }
-+ else {
-+ print "# Processor: There isn't enough cpu info for this arch!!!\n";
-+ }
- }
-
- # @i2c_adapters is a list of references to hashes, one hash per I2C/SMBus
---
-1.9.1
-
diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch b/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
deleted file mode 100644
index fb3878dc39..0000000000
--- a/meta-oe/recipes-bsp/lm_sensors/lmsensors/0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 727524453f115ddc05109e9bbb3d0e60a7db9185 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 15:05:50 -0700
-Subject: [PATCH] prog: Do not limit sys/io.h header include to just glibc
-
-musl provides it too.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- prog/dump/isadump.c | 6 ------
- prog/dump/isaset.c | 6 ------
- prog/dump/superio.c | 5 -----
- prog/dump/util.c | 5 -----
- 4 files changed, 22 deletions(-)
-
-diff --git a/prog/dump/isadump.c b/prog/dump/isadump.c
-index e0e6f00..8794537 100644
---- a/prog/dump/isadump.c
-+++ b/prog/dump/isadump.c
-@@ -36,13 +36,7 @@
- #include "util.h"
- #include "superio.h"
-
--
--/* To keep glibc2 happy */
--#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
- #include <sys/io.h>
--#else
--#include <asm/io.h>
--#endif
-
- #ifdef __powerpc__
- unsigned long isa_io_base = 0; /* XXX for now */
-diff --git a/prog/dump/isaset.c b/prog/dump/isaset.c
-index e743755..85a4f64 100644
---- a/prog/dump/isaset.c
-+++ b/prog/dump/isaset.c
-@@ -32,13 +32,7 @@
- #include <string.h>
- #include "util.h"
-
--
--/* To keep glibc2 happy */
--#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
- #include <sys/io.h>
--#else
--#include <asm/io.h>
--#endif
-
- #ifdef __powerpc__
- unsigned long isa_io_base = 0; /* XXX for now */
-diff --git a/prog/dump/superio.c b/prog/dump/superio.c
-index 64ef27b..906fe55 100644
---- a/prog/dump/superio.c
-+++ b/prog/dump/superio.c
-@@ -20,12 +20,7 @@
- */
-
- #include <stdlib.h>
--
--#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
- #include <sys/io.h>
--#else
--#include <asm/io.h>
--#endif
-
- #include "superio.h"
-
-diff --git a/prog/dump/util.c b/prog/dump/util.c
-index 874c1b9..197fa64 100644
---- a/prog/dump/util.c
-+++ b/prog/dump/util.c
-@@ -11,12 +11,7 @@
- #include <stdio.h>
- #include "util.h"
-
--/* To keep glibc2 happy */
--#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ >= 0
- #include <sys/io.h>
--#else
--#include <asm/io.h>
--#endif
-
- /* Return 1 if we should continue, 0 if we should abort */
- int user_ack(int def)
---
-2.13.3
-
diff --git a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
deleted file mode 100644
index f2354690ba..0000000000
--- a/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.4.0.bb
+++ /dev/null
@@ -1,148 +0,0 @@
-SUMMARY = "lm_sensors"
-DESCRIPTION = "Hardware health monitoring applications"
-HOMEPAGE = "http://www.lm-sensors.org/"
-LICENSE = "GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
- file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "sysfsutils virtual/libiconv bison-native flex-native rrdtool"
-
-SRC_URI = "https://github.com/groeck/lm-sensors/archive/V3-4-0.tar.gz \
- file://fancontrol.init \
- file://sensord.init \
- file://0001-lmsensors-sensors-detect-print-a-special-message-whe.patch \
- file://0001-prog-Do-not-limit-sys-io.h-header-include-to-just-gl.patch \
-"
-SRC_URI[md5sum] = "1e9f117cbfa11be1955adc96df71eadb"
-SRC_URI[sha256sum] = "e334c1c2b06f7290e3e66bdae330a5d36054701ffd47a5dde7a06f9a7402cb4e"
-
-# It is using '-' but not '.' as delimiter for the version in the releases page,
-# which causes the version comparison unmatched.
-#UPSTREAM_CHECK_URI = "https://github.com/groeck/lm-sensors/releases"
-
-RECIPE_UPSTREAM_VERSION = "3.4.0"
-RECIPE_UPSTREAM_DATE = "Jun 25, 2015"
-CHECK_DATE = "May 28, 2018"
-
-inherit update-rc.d systemd
-
-RDEPENDS_${PN}-dev = ""
-
-INITSCRIPT_PACKAGES = "${PN}-fancontrol ${PN}-sensord"
-INITSCRIPT_NAME_${PN}-fancontrol = "fancontrol"
-INITSCRIPT_NAME_${PN}-sensord = "sensord"
-INITSCRIPT_PARAMS_${PN}-fancontrol = "defaults 66"
-INITSCRIPT_PARAMS_${PN}-sensord = "defaults 67"
-
-SYSTEMD_PACKAGES = "${PN}-sensord"
-SYSTEMD_SERVICE_${PN}-sensord = "sensord.service lm_sensors.service fancontrol.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-S = "${WORKDIR}/lm-sensors-3-4-0"
-
-EXTRA_OEMAKE = 'EXLDFLAGS="${LDFLAGS}" \
- MACHINE=${TARGET_ARCH} PREFIX=${prefix} MANDIR=${mandir} \
- LIBDIR=${libdir} \
- CC="${CC}" AR="${AR}"'
-
-do_compile() {
- sed -i -e 's:^# \(PROG_EXTRA\):\1:' ${S}/Makefile
- # Respect LDFLAGS
- sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' ${S}/Makefile
- sed -i -e 's/\$(LIBSHSONAME) -o/$(LIBSHSONAME) \$(LDFLAGS) -o/g' \
- ${S}/lib/Module.mk
- oe_runmake user PROG_EXTRA="sensors sensord"
-}
-
-do_install() {
- oe_runmake user_install DESTDIR=${D}
- install -m 0755 ${S}/prog/sensord/sensord ${D}${sbindir}
- install -m 0644 ${S}/prog/sensord/sensord.8 ${D}${mandir}/man8
-
- # Install directory
- install -d ${D}${sysconfdir}/init.d
-
- # Install fancontrol init script
- install -m 0755 ${WORKDIR}/fancontrol.init \
- ${D}${sysconfdir}/init.d/fancontrol
-
- # Install sensord init script
- install -m 0755 ${WORKDIR}/sensord.init ${D}${sysconfdir}/init.d/sensord
-
- # Insall sensord service script
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/prog/init/*.service ${D}${systemd_unitdir}/system
- fi
-}
-
-# libsensors packages
-PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dbg ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${PN}-libsensors-doc"
-
-# sensors command packages
-PACKAGES =+ "${PN}-sensors ${PN}-sensors-dbg ${PN}-sensors-doc"
-
-# sensord logging daemon
-PACKAGES =+ "${PN}-sensord ${PN}-sensord-dbg ${PN}-sensord-doc"
-
-# fancontrol script
-PACKAGES =+ "${PN}-fancontrol ${PN}-fancontrol-doc"
-
-# sensors-detect script
-PACKAGES =+ "${PN}-sensorsdetect ${PN}-sensorsdetect-doc"
-
-# sensors-conf-convert script
-PACKAGES =+ "${PN}-sensorsconfconvert ${PN}-sensorsconfconvert-doc"
-
-# pwmconfig script
-PACKAGES =+ "${PN}-pwmconfig ${PN}-pwmconfig-doc"
-
-# isadump and isaset helper program
-PACKAGES =+ "${PN}-isatools ${PN}-isatools-dbg ${PN}-isatools-doc"
-
-# libsensors files
-FILES_${PN}-libsensors = "${libdir}/libsensors.so.* ${sysconfdir}/sensors3.conf ${sysconfdir}/sensors.d"
-FILES_${PN}-libsensors-dbg = "${libdir}/.debug ${prefix}/src/debug"
-FILES_${PN}-libsensors-dev = "${libdir}/libsensors.so ${includedir}"
-FILES_${PN}-libsensors-staticdev = "${libdir}/libsensors.a"
-FILES_${PN}-libsensors-doc = "${mandir}/man3"
-RRECOMMENDS_${PN}-libsensors = "lmsensors-config-libsensors"
-
-# sensors command files
-FILES_${PN}-sensors = "${bindir}/sensors"
-FILES_${PN}-sensors-dbg = "${bindir}/.debug/sensors"
-FILES_${PN}-sensors-doc = "${mandir}/man1 ${mandir}/man5"
-RDEPENDS_${PN}-sensors = "${PN}-libsensors"
-
-# sensord logging daemon
-FILES_${PN}-sensord = "${sbindir}/sensord ${sysconfdir}/init.d/sensord ${systemd_unitdir}/system/sensord.service"
-FILES_${PN}-sensord-dbg = "${bindir}/.debug/sensord"
-FILES_${PN}-sensord-doc = "${mandir}/man8/sensord.8"
-RDEPENDS_${PN}-sensord = "${PN}-sensors rrdtool"
-RRECOMMENDS_${PN}-sensord = "lmsensors-config-sensord"
-
-# fancontrol script files
-FILES_${PN}-fancontrol = "${sbindir}/fancontrol ${sysconfdir}/init.d/fancontrol"
-FILES_${PN}-fancontrol-doc = "${mandir}/man8/fancontrol.8"
-RDEPENDS_${PN}-fancontrol = "bash"
-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"
-
-# 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"
-
-# pwmconfig script files
-FILES_${PN}-pwmconfig = "${sbindir}/pwmconfig"
-FILES_${PN}-pwmconfig-doc = "${mandir}/man8/pwmconfig.8"
-RDEPENDS_${PN}-pwmconfig = "${PN}-fancontrol"
-
-# isadump and isaset helper program files
-FILES_${PN}-isatools = "${sbindir}/isa*"
-FILES_${PN}-isatools-dbg = "${sbindir}/.debug/isa*"
-FILES_${PN}-isatools-doc = "${mandir}/man8/isa*"
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
new file mode 100644
index 0000000000..aba5ab5878
--- /dev/null
+++ b/meta-oe/recipes-bsp/lm_sensors/lmsensors_3.6.0.bb
@@ -0,0 +1,169 @@
+SUMMARY = "Hardware health monitoring applications"
+HOMEPAGE = "https://hwmon.wiki.kernel.org/"
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = " \
+ bison-native \
+ flex-native \
+ virtual/libiconv \
+"
+
+SRC_URI = "git://github.com/lm-sensors/lm-sensors.git;protocol=https;branch=master \
+ file://fancontrol.init \
+ file://sensord.init \
+ file://0001-Change-PIDFile-path-from-var-run-to-run.patch \
+"
+SRCREV = "1667b850a1ce38151dae17156276f981be6fb557"
+
+inherit update-rc.d systemd
+
+RDEPENDS:${PN}-dev = ""
+
+PACKAGECONFIG ??= "sensord"
+PACKAGECONFIG[sensord] = "sensord,,rrdtool"
+
+INITSCRIPT_PACKAGES = "\
+ ${PN}-fancontrol \
+ ${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)} \
+ "
+INITSCRIPT_NAME:${PN}-fancontrol = "fancontrol"
+INITSCRIPT_NAME:${PN}-sensord = "sensord"
+INITSCRIPT_PARAMS:${PN}-fancontrol = "defaults 66"
+INITSCRIPT_PARAMS:${PN}-sensord = "defaults 67"
+
+SYSTEMD_PACKAGES = "\
+ ${PN} \
+ ${PN}-fancontrol \
+ ${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)} \
+ "
+SYSTEMD_SERVICE:${PN} = "lm_sensors.service"
+SYSTEMD_SERVICE:${PN}-fancontrol = "fancontrol.service"
+SYSTEMD_SERVICE:${PN}-sensord = "sensord.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = 'EXLDFLAGS="${LDFLAGS}" \
+ MACHINE=${TARGET_ARCH} PREFIX=${prefix} MANDIR=${mandir} \
+ LIBDIR=${libdir} \
+ CC="${CC}" AR="${AR}"'
+
+do_compile() {
+ sed -i -e 's:^# \(PROG_EXTRA\):\1:' ${S}/Makefile
+ # Respect LDFLAGS
+ sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' ${S}/Makefile
+ sed -i -e 's/\$(LIBSHSONAME) -o/$(LIBSHSONAME) \$(LDFLAGS) -o/g' \
+ ${S}/lib/Module.mk
+ oe_runmake user PROG_EXTRA="sensors ${PACKAGECONFIG_CONFARGS}"
+}
+
+do_install() {
+ oe_runmake user_install DESTDIR=${D}
+ if ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+ install -m 0755 ${S}/prog/sensord/sensord ${D}${sbindir}
+ install -m 0644 ${S}/prog/sensord/sensord.8 ${D}${mandir}/man8
+ fi
+
+ # Install directory
+ install -d ${D}${INIT_D_DIR}
+
+ # Install fancontrol init script
+ install -m 0755 ${WORKDIR}/fancontrol.init ${D}${INIT_D_DIR}/fancontrol
+
+ if ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+ # Install sensord init script
+ install -m 0755 ${WORKDIR}/sensord.init ${D}${INIT_D_DIR}/sensord
+ fi
+
+ # Insall sensord service script
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/prog/init/*.service ${D}${systemd_unitdir}/system
+ if ! ${@bb.utils.contains('PACKAGECONFIG', 'sensord', 'true', 'false', d)}; then
+ rm ${D}${systemd_system_unitdir}/sensord.service
+ fi
+}
+
+RPROVIDES:${PN}-dbg += "${PN}-libsensors-dbg ${PN}-sensors-dbg ${PN}-sensord-dbg ${PN}-isatools-dbg"
+
+ALLOW_EMPTY:${PN} = "1"
+RDEPENDS:${PN} += " \
+ ${PN}-libsensors \
+ ${PN}-sensors \
+ ${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord', '', d)} \
+ ${PN}-fancontrol \
+ ${PN}-sensorsdetect \
+ ${PN}-sensorsconfconvert \
+ ${PN}-pwmconfig \
+ ${@bb.utils.contains('MACHINE_FEATURES', 'x86', '${PN}-isatools', '', d)} \
+"
+
+# libsensors packages
+PACKAGES =+ "${PN}-libsensors ${PN}-libsensors-dev ${PN}-libsensors-staticdev ${PN}-libsensors-doc"
+
+# sensors command packages
+PACKAGES =+ "${PN}-sensors ${PN}-sensors-doc"
+
+# sensord logging daemon
+PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'sensord', '${PN}-sensord ${PN}-sensord-doc', '', d)}"
+
+# fancontrol script
+PACKAGES =+ "${PN}-fancontrol ${PN}-fancontrol-doc"
+
+# sensors-detect script
+PACKAGES =+ "${PN}-sensorsdetect ${PN}-sensorsdetect-doc"
+
+# sensors-conf-convert script
+PACKAGES =+ "${PN}-sensorsconfconvert ${PN}-sensorsconfconvert-doc"
+
+# pwmconfig script
+PACKAGES =+ "${PN}-pwmconfig ${PN}-pwmconfig-doc"
+
+# isadump and isaset helper program
+PACKAGES =+ "${PN}-isatools ${PN}-isatools-doc"
+
+
+# libsensors files
+FILES:${PN}-libsensors = "${libdir}/libsensors.so.* ${sysconfdir}/sensors3.conf ${sysconfdir}/sensors.d"
+FILES:${PN}-libsensors-dev = "${libdir}/libsensors.so ${includedir}"
+FILES:${PN}-libsensors-staticdev = "${libdir}/libsensors.a"
+FILES:${PN}-libsensors-doc = "${mandir}/man3"
+RRECOMMENDS:${PN}-libsensors = "lmsensors-config-libsensors"
+
+# sensors command files
+FILES:${PN}-sensors = "${bindir}/sensors"
+FILES:${PN}-sensors-doc = "${mandir}/man1 ${mandir}/man5"
+RDEPENDS:${PN}-sensors = "${PN}-libsensors"
+
+# sensord logging daemon
+FILES:${PN}-sensord = "${sbindir}/sensord ${INIT_D_DIR}/sensord ${systemd_system_unitdir}/sensord.service"
+FILES:${PN}-sensord-doc = "${mandir}/man8/sensord.8"
+RDEPENDS:${PN}-sensord = "${PN}-sensors rrdtool"
+RRECOMMENDS:${PN}-sensord = "lmsensors-config-sensord"
+
+# fancontrol script files
+FILES:${PN}-fancontrol = "${sbindir}/fancontrol ${INIT_D_DIR}/fancontrol"
+FILES:${PN}-fancontrol-doc = "${mandir}/man8/fancontrol.8"
+RDEPENDS:${PN}-fancontrol = "bash"
+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-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-module-strict perl-module-vars"
+
+# pwmconfig script files
+FILES:${PN}-pwmconfig = "${sbindir}/pwmconfig"
+FILES:${PN}-pwmconfig-doc = "${mandir}/man8/pwmconfig.8"
+RDEPENDS:${PN}-pwmconfig = "${PN}-fancontrol bash"
+
+# isadump and isaset helper program files
+FILES:${PN}-isatools = "${sbindir}/isa*"
+FILES:${PN}-isatools-doc = "${mandir}/man8/isa*"
diff --git a/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb b/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb
deleted file mode 100644
index 4b8cbaf099..0000000000
--- a/meta-oe/recipes-bsp/lssci/lsscsi_0.28.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "The lsscsi command lists information about SCSI devices in Linux"
-HOMEPAGE = "http://sg.danny.cz/scsi/lsscsi.html"
-LICENSE = "GPLv2"
-SECTION = "base"
-LIC_FILES_CHKSUM="file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "http://sg.danny.cz/scsi/${BP}.tgz"
-
-SRC_URI[md5sum] = "4a39e3b09cd422e2cae3edbaf56b3176"
-SRC_URI[sha256sum] = "025d009a1af42bc5b2fca664c44c9ecdfd754356e4a44f5c6aced2420afadd50"
-
-inherit autotools
diff --git a/meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.bb b/meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.bb
new file mode 100644
index 0000000000..9e6eb7b724
--- /dev/null
+++ b/meta-oe/recipes-bsp/lsscsi/lsscsi_0.32.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] = "0a800e9e94dca2ab702d65d72777ae8cae078e3d74d0bcbed64ba0849e8029a1"
+
+inherit autotools
+
+S = "${WORKDIR}/lsscsi-${PV}"
diff --git a/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.5.bb b/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.5.bb
new file mode 100644
index 0000000000..dd273e24d0
--- /dev/null
+++ b/meta-oe/recipes-bsp/nvme-cli/nvme-cli_2.5.bb
@@ -0,0 +1,31 @@
+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 & 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 = "d6c07e0de9be777009ebb9ab7475bee1ae3e0e95"
+
+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/lex_sys_types.patch b/meta-oe/recipes-bsp/pcmciautils/pcmciautils/lex_sys_types.patch
new file mode 100644
index 0000000000..d4c2bed15c
--- /dev/null
+++ b/meta-oe/recipes-bsp/pcmciautils/pcmciautils/lex_sys_types.patch
@@ -0,0 +1,21 @@
+Include sys/types.h for u_long definition
+
+Fix errors like
+In file included from src/lex_config.l:34:0:
+src/yacc_config.y:45:5: error: unknown type name 'u_long'
+ u_long num;
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+Index: pcmciautils-018/src/lex_config.l
+===================================================================
+--- pcmciautils-018.orig/src/lex_config.l
++++ pcmciautils-018/src/lex_config.l
+@@ -22,6 +22,7 @@
+ #include <unistd.h>
+ #include <string.h>
+ #include <syslog.h>
++#include <sys/types.h>
+
+ #ifdef HAS_WORDEXP
+ #include <wordexp.h>
diff --git a/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_fix.patch b/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_fix.patch
new file mode 100644
index 0000000000..7b0ce21194
--- /dev/null
+++ b/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_fix.patch
@@ -0,0 +1,101 @@
+Upstream-Status: Inappropriate [configuration]
+
+Hardcoded paths are bad...
+This lets us use the install from OE's native sysroot
+rebase the patch to 018, removing hardcoded path for true
+as well. Removing of -D in install invocation is a little
+questionable, is it some GNU extention?
+
+-Khem Raj <raj.khem@gmail.com>
+
+Index: pcmciautils-018/Makefile
+===================================================================
+--- pcmciautils-018.orig/Makefile
++++ pcmciautils-018/Makefile
+@@ -76,7 +76,7 @@ sbindir = ${exec_prefix}/sbin
+ mandir = ${prefix}/usr/share/man
+ udevdir = ${prefix}/lib/udev
+
+-INSTALL = /usr/bin/install -c
++INSTALL = install -c
+ INSTALL_PROGRAM = ${INSTALL}
+ INSTALL_DATA = ${INSTALL} -m 644
+ INSTALL_SCRIPT = ${INSTALL_PROGRAM}
+@@ -180,7 +180,7 @@ endif
+ # if DEBUG is enabled, then we do not strip or optimize
+ ifeq ($(strip $(DEBUG)),true)
+ CFLAGS += -O1 -g -DDEBUG -D_GNU_SOURCE
+- STRIPCMD = /bin/true -Since_we_are_debugging
++ STRIPCMD = true -Since_we_are_debugging
+ else
+ CFLAGS += $(OPTIMIZATION) -fomit-frame-pointer -D_GNU_SOURCE
+ STRIPCMD = $(STRIP) -s --remove-section=.note --remove-section=.comment
+@@ -273,30 +273,32 @@ clean:
+
+ install-hotplug:
+ $(INSTALL) -d $(DESTDIR)$(hotplugdir)
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.agent
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia.rc $(DESTDIR)$(hotplugdir)/pcmcia.rc
++ $(INSTALL_PROGRAM) hotplug/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.agent
++ $(INSTALL_PROGRAM) hotplug/pcmcia.rc $(DESTDIR)$(hotplugdir)/pcmcia.rc
+
+ uninstall-hotplug:
+ - rm -f $(DESTDIR)$(hotplugdir)/pcmcia.agent $(DESTDIR)$(hotplugdir)/pcmcia.rc
+
+ install-socket-hotplug:
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent
+- $(INSTALL_PROGRAM) -D hotplug/pcmcia_socket.rc $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc
++ $(INSTALL_PROGRAM) hotplug/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent
++ $(INSTALL_PROGRAM) hotplug/pcmcia_socket.rc $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc
+
+ uninstall-socket-hotplug:
+ - rm -f $(DESTDIR)$(hotplugdir)/pcmcia_socket.agent $(DESTDIR)$(hotplugdir)/pcmcia_socket.rc
+
+ install-socket-tools:
+- $(INSTALL_PROGRAM) -D $(PCMCIA_SOCKET_STARTUP) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_SOCKET_STARTUP)
++ $(INSTALL) -d $(DESTDIR)$(udevhelperdir)
++ $(INSTALL_PROGRAM) $(PCMCIA_SOCKET_STARTUP) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_SOCKET_STARTUP)
+
+ uninstall-socket-tools:
+ - rm -f $(DESTDIR)$(udevhelperdir)/$(PCMCIA_SOCKET_STARTUP)
+
+ install-tools:
+ $(INSTALL) -d $(DESTDIR)$(sbindir)
+- $(INSTALL_PROGRAM) -D $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(PCCARDCTL)
++ $(INSTALL) -d $(DESTDIR)$(udevhelperdir)
++ $(INSTALL_PROGRAM) $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(PCCARDCTL)
+ $(SYMLINK) $(PCCARDCTL) $(DESTDIR)$(sbindir)/$(LSPCMCIA)
+- $(INSTALL_PROGRAM) -D $(PCMCIA_CHECK_BROKEN_CIS) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_CHECK_BROKEN_CIS)
++ $(INSTALL_PROGRAM) $(PCMCIA_CHECK_BROKEN_CIS) $(DESTDIR)$(udevhelperdir)/$(PCMCIA_CHECK_BROKEN_CIS)
+
+ uninstall-tools:
+ - rm -f $(DESTDIR)$(sbindir)/$(PCCARDCTL)
+@@ -305,22 +307,24 @@ uninstall-tools:
+
+ install-config:
+ $(INSTALL) -d $(DESTDIR)$(pcmciaconfdir)
+- $(INSTALL_DATA) -D config/config.opts $(DESTDIR)$(pcmciaconfdir)/config.opts
++ $(INSTALL_DATA) config/config.opts $(DESTDIR)$(pcmciaconfdir)/config.opts
+ if [ -f config/config.opts.$(ARCH) ]; then \
+- $(INSTALL_DATA) -D config/config.opts.$(ARCH) $(DESTDIR)$(pcmciaconfdir)/config.opts; \
++ $(INSTALL_DATA) config/config.opts.$(ARCH) $(DESTDIR)$(pcmciaconfdir)/config.opts; \
+ fi
+
+ uninstall-config:
+ # - rm -f $(DESTDIR)$(pcmciaconfdir)/config.opts
+
+ install-udev:
+- $(INSTALL_DATA) -D $(UDEV_RULES_FILE) $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules
++ $(INSTALL) -d $(DESTDIR)$(udevrulesdir)
++ $(INSTALL_DATA) $(UDEV_RULES_FILE) $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules
+
+ uninstall-udev:
+ - rm -f $(DESTDIR)$(udevrulesdir)/60-pcmcia.rules
+
+ install-man:
+- $(INSTALL_DATA) -D man/man8/pccardctl.8 $(DESTDIR)$(mandir)/man8/pccardctl.8
++ $(INSTALL) -d $(DESTDIR)$(mandir)/man8
++ $(INSTALL_DATA) man/man8/pccardctl.8 $(DESTDIR)$(mandir)/man8/pccardctl.8
+ $(SYMLINK) pccardctl.8 $(DESTDIR)$(mandir)/man8/lspcmcia.8
+
+ uninstall-man:
diff --git a/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_race.patch b/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_race.patch
new file mode 100644
index 0000000000..4c5eba7951
--- /dev/null
+++ b/meta-oe/recipes-bsp/pcmciautils/pcmciautils/makefile_race.patch
@@ -0,0 +1,29 @@
+"make src/lex_config.o"
+
+results in:
+
+src/lex_config.l:35:25: fatal error: yacc_config.h: No such file or directory
+
+so add missing dependency through a missing rule. Also remove a rule which
+doesn't appear to do anything.
+
+RP
+2016/1/31
+
+Upstream-Status: Pending
+
+Index: pcmciautils-018/Makefile
+===================================================================
+--- pcmciautils-018.orig/Makefile
++++ pcmciautils-018/Makefile
+@@ -246,8 +246,8 @@ $(PCMCIA_SOCKET_STARTUP): $(LIBC) src/st
+ $(QUIET) $(LD) $(LDFLAGS) -o $@ $(CRT0) src/startup.o src/yacc_config.o src/lex_config.o $(LIB_OBJS) $(ARCH_LIB_OBJS)
+ $(QUIET) $(STRIPCMD) $@
+
+-yacc_config.o lex_config.o: %.o: %.c
+- $(CC) -c -MD -O -pipe $(CPPFLAGS) $<
++src/lex_config.o : src/lex_config.c src/yacc_config.h ccdv
++ $(QUIET) $(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+ debugtools: ccdv $(CBDUMP) $(CISDUMP)
+
diff --git a/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb b/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
new file mode 100644
index 0000000000..42dfcd1e5b
--- /dev/null
+++ b/meta-oe/recipes-bsp/pcmciautils/pcmciautils_018.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Linux kernel userland utilities for the PCMCIA subsystem"
+HOMEPAGE = "https://www.kernel.org/pub/linux/utils/kernel/pcmcia/"
+SECTION = "kernel/userland"
+
+LICENSE = "GPL-2.0-only"
+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 \
+ file://makefile_race.patch \
+ file://lex_sys_types.patch \
+"
+
+SRC_URI[md5sum] = "885431c3cefb76ffdad8cb985134e996"
+SRC_URI[sha256sum] = "57c27be8f04ef4d535bcfa988567316cc57659fe69068327486dab53791e6558"
+
+inherit pkgconfig
+
+export HOSTCC = "${BUILD_CC}"
+export etcdir = "${sysconfdir}"
+export sbindir = "${base_sbindir}"
+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'"
+
+do_install () {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+CONFFILES:${PN} += "${sysconfdir}/pcmcia/config.opts"
diff --git a/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb b/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb
index fcfd0386d9..9b72ffefe4 100644
--- a/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb
+++ b/meta-oe/recipes-bsp/pointercal/pointercal_0.0.bb
@@ -17,6 +17,8 @@ do_install() {
fi
}
-ALLOW_EMPTY_${PN} = "1"
+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.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
new file mode 100644
index 0000000000..c820e46522
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ace/files/ace_config.patch
@@ -0,0 +1,13 @@
+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
+@@ -0,0 +1,1 @@
++#include "ace/config-linux.h"
+diff -ruN ACE_wrappers1/include/makeinclude/platform_macros.GNU ACE_wrappers/include/makeinclude/platform_macros.GNU
+--- ACE_wrappers1/include/makeinclude/platform_macros.GNU 1970-01-01 02:00:00.000000000 +0200
++++ ACE_wrappers/include/makeinclude/platform_macros.GNU 2018-10-31 15:11:18.265392460 +0200
+@@ -0,0 +1,2 @@
++INSTALL_PREFIX = $(D)$(exec_prefix)
++include $(ACE_ROOT)/include/makeinclude/platform_linux.GNU
diff --git a/meta-oe/recipes-connectivity/ace/files/no_sysctl.patch b/meta-oe/recipes-connectivity/ace/files/no_sysctl.patch
new file mode 100644
index 0000000000..278893114c
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ace/files/no_sysctl.patch
@@ -0,0 +1,22 @@
+glibc >= 2.32 has removed sys/sysctl.h see
+
+https://sourceware.org/git/?p=glibc.git;a=commit;h=076f09afbac1aa57756faa7a8feadb7936a724e4
+
+This check therefore ensures that its only used on linux when glibc has support for it
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/ace/config-linux.h
++++ b/ace/config-linux.h
+@@ -20,6 +20,10 @@
+
+ #include "ace/config-linux-common.h"
+
++#if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 32)
++# define ACE_LACKS_SYS_SYSCTL_H
++#endif
++
+ #define ACE_HAS_BYTESEX_H
+
+ #if (defined _XOPEN_SOURCE && (_XOPEN_SOURCE - 0) >= 500)
diff --git a/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb b/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
deleted file mode 100644
index 44411751e0..0000000000
--- a/meta-oe/recipes-connectivity/gammu/gammu_1.32.0.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-SUMMARY = "GNU All Mobile Managment Utilities"
-SECTION = "console/network"
-DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev unixodbc"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf"
-HOMEPAGE = "http://www.gammu.org/"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}.tar.bz2 \
- file://gammurc \
- file://gammu-smsdrc \
-"
-
-SRC_URI[md5sum] = "8ea16c6b3cc48097a8e62311fe0e25b9"
-SRC_URI[sha256sum] = "de67caa102aa4c8fbed5300e5a0262e40411c4cc79f4379a8d34eed797968fc3"
-
-inherit distutils cmake gettext
-
-do_install_append() {
- # these files seem to only be used by symbian and trigger QA warnings
- rm -rf ${D}/usr/share/gammu
- #install default configuration files
- install -d ${D}${sysconfdir}
- install -m 0644 ${WORKDIR}/gammurc ${D}${sysconfdir}/gammurc
- install -m 0644 ${WORKDIR}/gammu-smsdrc ${D}${sysconfdir}/gammu-smsdrc
-}
-
-EXTRA_OECONF = " \
- --enable-shared \
- --enable-backup \
- --enable-protection \
-"
-
-EXTRA_OECMAKE = " \
- -DWITH_CURL=OFF \
- -DWITH_BLUETOOTH=OFF \
- -DWITH_NOKIA_SUPPORT=OFF \
- -DWITH_IRDA=OFF \
- -DWITH_PYTHON=OFF \
- -DWITH_MySQL=ON \
- -DWITH_Postgres=OFF \
-"
-
-PACKAGES =+ "${PN}-smsd libgammu libgsmsd python-${PN}"
-
-FILES_${PN} = "${bindir}/gammu ${bindir}/jadmaker ${sysconfdir}/bash_completion.d/gammu \
- ${bindir}/gammu-detect ${sysconfdir}/gammurc"
-CONFFILES_${PN} = "${sysconfdir}/gammurc"
-FILES_${PN}-smsd = "${bindir}/gammu-smsd* ${sysconfdir}/gammu-smsdrc"
-CONFFILES_${PN}-smsd = "${sysconfdir}/gammu-smsdrc"
-FILES_${PN}-dev += "${bindir}/gammu-config ${libdir}/*.so"
-FILES_${PN}-dbg += "${bindir}/.debug ${libdir}/.debug ${PYTHON_SITEPACKAGES_DIR}/gammu/.debug"
-FILES_libgammu = "${libdir}/libGammu.so.*"
-FILES_libgsmsd = "${libdir}/libgsmsd.so.*"
-FILES_python-${PN} = "${PYTHON_SITEPACKAGES_DIR}/gammu/*.??"
-
-RDEPENDS_${PN} += "bash"
-RDEPENDS_${PN}-dev += "bash"
-
-# Fails to build with thumb-1 (qemuarm)
-# gammu-1.32.0/libgammu/service/sms/gsmems.c:542:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
-# | }
-# | ^
-# | Please submit a full bug report,
-# | with preprocessed source if appropriate.
-# | See <http://gcc.gnu.org/bugs.html> for instructions.
-# | make[2]: *** [libgammu/CMakeFiles/libGammu.dir/service/sms/gsmems.o] Error 1
-# | make[2]: *** Waiting for unfinished jobs....
-ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb b/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb
new file mode 100644
index 0000000000..aa52f62572
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gammu/gammu_1.42.0.bb
@@ -0,0 +1,68 @@
+SUMMARY = "GNU All Mobile Managment Utilities"
+SECTION = "console/network"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+HOMEPAGE = "https://wammu.eu/"
+
+SRC_URI = "https://dl.cihar.com/${BPN}/releases/${BP}.tar.xz \
+ file://gammurc \
+ file://gammu-smsdrc \
+"
+
+SRC_URI[sha256sum] = "d8f152314d7e4d3d643610d742845e0a016ce97c234ad4b1151574e1b09651ee"
+
+UPSTREAM_CHECK_URI = "https://dl.cihar.com/${BPN}/releases"
+
+DEPENDS = "cmake-native virtual/libiconv libdbi mysql5 glib-2.0 udev libgudev unixodbc"
+
+inherit cmake gettext
+
+do_install:append() {
+ # these files seem to only be used by symbian and trigger QA warnings
+ rm -rf ${D}/usr/share/gammu
+ #install default configuration files
+ install -d ${D}${sysconfdir}
+ install -m 0644 ${WORKDIR}/gammurc ${D}${sysconfdir}/gammurc
+ install -m 0644 ${WORKDIR}/gammu-smsdrc ${D}${sysconfdir}/gammu-smsdrc
+}
+
+EXTRA_OECONF = " \
+ --enable-shared \
+ --enable-backup \
+ --enable-protection \
+"
+
+EXTRA_OECMAKE = " \
+ -DWITH_CURL=OFF \
+ -DWITH_BLUETOOTH=OFF \
+ -DWITH_NOKIA_SUPPORT=OFF \
+ -DWITH_IRDA=OFF \
+ -DWITH_MySQL=ON \
+ -DWITH_Postgres=OFF \
+"
+
+PACKAGES =+ "${PN}-smsd libgammu libgsmsd"
+
+FILES:${PN} = "${bindir}/gammu ${bindir}/jadmaker ${sysconfdir}/bash_completion.d/gammu \
+ ${bindir}/gammu-detect ${sysconfdir}/gammurc"
+CONFFILES:${PN} = "${sysconfdir}/gammurc"
+FILES:${PN}-smsd = "${bindir}/gammu-smsd* ${sysconfdir}/gammu-smsdrc"
+CONFFILES:${PN}-smsd = "${sysconfdir}/gammu-smsdrc"
+FILES:${PN}-dev += "${bindir}/gammu-config ${libdir}/*.so"
+FILES:${PN}-dbg += "${bindir}/.debug ${libdir}/.debug"
+FILES:libgammu = "${libdir}/libGammu.so.*"
+FILES:libgsmsd = "${libdir}/libgsmsd.so.*"
+
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN}-dev += "bash"
+
+# Fails to build with thumb-1 (qemuarm)
+# gammu-1.32.0/libgammu/service/sms/gsmems.c:542:1: internal compiler error: in patch_jump_insn, at cfgrtl.c:1275
+# | }
+# | ^
+# | Please submit a full bug report,
+# | with preprocessed source if appropriate.
+# | See <http://gcc.gnu.org/bugs.html> for instructions.
+# | make[2]: *** [libgammu/CMakeFiles/libGammu.dir/service/sms/gsmems.o] Error 1
+# | make[2]: *** Waiting for unfinished jobs....
+ARM_INSTRUCTION_SET = "arm"
diff --git a/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch b/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch
new file mode 100644
index 0000000000..23fe4441dc
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gammu/python3-gammu/0001-setup.py-StrictVersion-packaging.version.patch
@@ -0,0 +1,49 @@
+From 96e8f0b2d13e890d9ffff8673f18dcc94290efb2 Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Thu, 13 Jan 2022 20:06:33 -0600
+Subject: [PATCH] setup.py: StrictVersion -> packaging.version.*
+
+distutils is deprecated in Python 3.10 and will be removed in Python
+3.12 [1]
+
+The recommended replacement for distutils.version is to use
+packaging.version
+
+StrictVersion can be replaced by packaging.version.Version and helpers
+like packaging.version.parse()
+
+[1] https://www.python.org/dev/peps/pep-0632/
+[2] https://packaging.pypa.io/en/latest/version.html
+
+Upstream-Status: Submitted [https://github.com/gammu/python-gammu/pull/67]
+
+Signed-off-by: Tim Orling <tim.orling@konsulko.com>
+---
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index a458181..bffb09d 100755
+--- a/setup.py
++++ b/setup.py
+@@ -30,7 +30,7 @@ import os
+ import platform
+ import subprocess
+ import sys
+-from distutils.version import StrictVersion
++from packaging.version import parse, Version
+
+ from setuptools import Extension, setup
+
+@@ -112,9 +112,9 @@ class GammuConfig:
+ with open(self.config_path(self.path)) as handle:
+ for line in handle:
+ if line.startswith("#define GAMMU_VERSION "):
+- version = line.split('"')[1]
++ version = parse(line.split('"')[1])
+
+- if version is None or StrictVersion(version) < StrictVersion(GAMMU_REQUIRED):
++ if version is None or version < parse(GAMMU_REQUIRED):
+ print("Too old Gammu version, please upgrade!")
+ sys.exit(100)
+
diff --git a/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb b/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb
new file mode 100644
index 0000000000..1fdb76eeb4
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gammu/python3-gammu_3.2.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Gammu bindings for Python"
+DESCRIPTION ="Python bindings for the Gammu library."
+HOMEPAGE = "https://wammu.eu/python-gammu/"
+BUGRACKER = "https://github.com/gammu/python-gammu/issues"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+PYPI_PACKAGE = "python-gammu"
+
+inherit pypi setuptools3 pkgconfig
+
+SRC_URI += "file://0001-setup.py-StrictVersion-packaging.version.patch"
+SRC_URI[sha256sum] = "49fc70f01bc192c43ff3ec815e082df5261ea4c8d36a695e977734c4eb4df868"
+
+S = "${WORKDIR}/python-gammu-${PV}"
+
+DEPENDS += "gammu python3-packaging-native"
+
+RDEPENDS:${PN} += "python3-asyncio python3-core python3-threading"
+
+RRECOMMENDS:${PN} += "gammu"
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
new file mode 100644
index 0000000000..7319280ca4
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gattlib/files/dbus-avoid-strange-chars-from-the-build-dir.patch
@@ -0,0 +1,72 @@
+From 87df05c3f83c563af76ab00567e7a1ab7a6ebc88 Mon Sep 17 00:00:00 2001
+From: Peter Rosin <peda@axentia.se>
+Date: Sat, 9 Nov 2019 15:42:03 +0100
+Subject: [PATCH] dbus: avoid 'strange' chars from the build dir in #defines
+
+gdbus-codegen uses include guards with the full path dir, and if there
+are "bad" characters, such as '+', this fails miserably. E.g. Yocto has a
+tendency to build in directories named from the Yocto package version and
+that package version containing a '+' are not uncommon, and even the
+standard in certain scenarios such as when using ${SRCPV}.
+
+Avoid the problem of the full path "leaking" into the source by avoiding
+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/dbus/CMakeLists.txt b/dbus/CMakeLists.txt
+index f5096ce10ecd..013c32239e12 100644
+--- a/dbus/CMakeLists.txt
++++ b/dbus/CMakeLists.txt
+@@ -43,37 +43,37 @@ else()
+ endif()
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1.c
+- COMMAND gdbus-codegen --interface-prefix org.bluez.Adapter1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml
++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Adapter1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-adaptater1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Adapter1.xml
+ COMMENT "Generate D-Bus 'org.bluez.Adapter1.xml'"
+ )
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1.c
+- COMMAND gdbus-codegen --interface-prefix org.bluez.Device1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml
++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Device1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-device1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Device1.xml
+ COMMENT "Generate D-Bus 'org.bluez.Device1.xml'"
+ )
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1.c
+- COMMAND gdbus-codegen --interface-prefix org.bluez.GattService1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml
++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.GattService1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattservice1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattService1.xml
+ COMMENT "Generate D-Bus 'org.bluez.GattService1.xml'"
+ )
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1.c
+- COMMAND gdbus-codegen --interface-prefix org.bluez.Characteristic1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml
++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Characteristic1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattcharacteristic1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattCharacteristic1.xml
+ COMMENT "Generate D-Bus 'org.bluez.GattCharacteristic1.xml'"
+ )
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1.c
+- COMMAND gdbus-codegen --interface-prefix org.bluez.Descriptor1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml
++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Descriptor1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-gattdescriptor1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.GattDescriptor1.xml
+ COMMENT "Generate D-Bus 'org.bluez.GattDescriptor1.xml'"
+ )
+
+ add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1.c
+- COMMAND gdbus-codegen --interface-prefix org.bluez.Battery1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml
++ COMMAND gdbus-codegen --pragma-once --interface-prefix org.bluez.Battery1. --generate-c-code ${CMAKE_CURRENT_BINARY_DIR}/org-bluez-battery1 ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${DBUS_BLUEZ_API}/org.bluez.Battery1.xml
+ COMMENT "Generate D-Bus 'org.bluez.Battery1.xml'"
+ )
+--
+2.11.0
+
diff --git a/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
new file mode 100644
index 0000000000..aec41edf7a
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
@@ -0,0 +1,39 @@
+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=a87ee154f005a6f035b8b34ac2191f3b"
+
+DEPENDS = "bluez5 glib-2.0"
+DEPENDS += "glib-2.0-native"
+
+PV = "0.2+git${SRCPV}"
+
+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 = "33a8a275928b186381bb0aea0f9778e330e57ec3"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG[examples] = "-DGATTLIB_BUILD_EXAMPLES=ON,-DGATTLIB_BUILD_EXAMPLES=OFF"
+
+# Set this to force use of DBus API if Bluez version is older than 5.42
+PACKAGECONFIG[force-dbus] = "-DGATTLIB_FORCE_DBUS=TRUE,-DGATTLIB_FORCE_DBUS=FALSE"
+
+EXTRA_OECMAKE += "-DGATTLIB_PYTHON_INTERFACE=OFF"
+EXTRA_OECMAKE += "-DGATTLIB_BUILD_DOCS=OFF"
+
+inherit pkgconfig cmake
+
+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/gensio_2.6.7.bb b/meta-oe/recipes-connectivity/gensio/gensio_2.6.7.bb
new file mode 100644
index 0000000000..c3ba96ff60
--- /dev/null
+++ b/meta-oe/recipes-connectivity/gensio/gensio_2.6.7.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 = "266277aeb39dc2db33e577335236f89ed7ca5918"
+
+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/hostapd/hostapd/0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch
deleted file mode 100644
index 5535a3c5a1..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From 044ae35c5694c39a4aca2a33502cc3897e88f79e Mon Sep 17 00:00:00 2001
-From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-Date: Fri, 14 Jul 2017 15:15:35 +0200
-Subject: [PATCH 1/7] hostapd: Avoid key reinstallation in FT handshake
-
-Do not reinstall TK to the driver during Reassociation Response frame
-processing if the first attempt of setting the TK succeeded. This avoids
-issues related to clearing the TX/RX PN that could result in reusing
-same PN values for transmitted frames (e.g., due to CCM nonce reuse and
-also hitting replay protection on the receiver) and accepting replayed
-frames on RX side.
-
-This issue was introduced by the commit
-0e84c25434e6a1f283c7b4e62e483729085b78d2 ('FT: Fix PTK configuration in
-authenticator') which allowed wpa_ft_install_ptk() to be called multiple
-times with the same PTK. While the second configuration attempt is
-needed with some drivers, it must be done only if the first attempt
-failed.
-
-Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-
-Upstream-Status: Backport
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- src/ap/ieee802_11.c | 16 +++++++++++++---
- src/ap/wpa_auth.c | 11 +++++++++++
- src/ap/wpa_auth.h | 3 ++-
- src/ap/wpa_auth_ft.c | 10 ++++++++++
- src/ap/wpa_auth_i.h | 1 +
- 5 files changed, 37 insertions(+), 4 deletions(-)
-
-diff --git a/src/ap/ieee802_11.c b/src/ap/ieee802_11.c
-index 4e04169..333035f 100644
---- a/src/ap/ieee802_11.c
-+++ b/src/ap/ieee802_11.c
-@@ -1841,6 +1841,7 @@ static int add_associated_sta(struct hostapd_data *hapd,
- {
- struct ieee80211_ht_capabilities ht_cap;
- struct ieee80211_vht_capabilities vht_cap;
-+ int set = 1;
-
- /*
- * Remove the STA entry to ensure the STA PS state gets cleared and
-@@ -1848,9 +1849,18 @@ static int add_associated_sta(struct hostapd_data *hapd,
- * FT-over-the-DS, where a station re-associates back to the same AP but
- * skips the authentication flow, or if working with a driver that
- * does not support full AP client state.
-+ *
-+ * Skip this if the STA has already completed FT reassociation and the
-+ * TK has been configured since the TX/RX PN must not be reset to 0 for
-+ * the same key.
- */
-- if (!sta->added_unassoc)
-+ if (!sta->added_unassoc &&
-+ (!(sta->flags & WLAN_STA_AUTHORIZED) ||
-+ !wpa_auth_sta_ft_tk_already_set(sta->wpa_sm))) {
- hostapd_drv_sta_remove(hapd, sta->addr);
-+ wpa_auth_sm_event(sta->wpa_sm, WPA_DRV_STA_REMOVED);
-+ set = 0;
-+ }
-
- #ifdef CONFIG_IEEE80211N
- if (sta->flags & WLAN_STA_HT)
-@@ -1873,11 +1883,11 @@ static int add_associated_sta(struct hostapd_data *hapd,
- sta->flags & WLAN_STA_VHT ? &vht_cap : NULL,
- sta->flags | WLAN_STA_ASSOC, sta->qosinfo,
- sta->vht_opmode, sta->p2p_ie ? 1 : 0,
-- sta->added_unassoc)) {
-+ set)) {
- hostapd_logger(hapd, sta->addr,
- HOSTAPD_MODULE_IEEE80211, HOSTAPD_LEVEL_NOTICE,
- "Could not %s STA to kernel driver",
-- sta->added_unassoc ? "set" : "add");
-+ set ? "set" : "add");
-
- if (sta->added_unassoc) {
- hostapd_drv_sta_remove(hapd, sta->addr);
-diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
-index 3587086..707971d 100644
---- a/src/ap/wpa_auth.c
-+++ b/src/ap/wpa_auth.c
-@@ -1745,6 +1745,9 @@ int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event)
- #else /* CONFIG_IEEE80211R */
- break;
- #endif /* CONFIG_IEEE80211R */
-+ case WPA_DRV_STA_REMOVED:
-+ sm->tk_already_set = FALSE;
-+ return 0;
- }
-
- #ifdef CONFIG_IEEE80211R
-@@ -3250,6 +3253,14 @@ int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm)
- }
-
-
-+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm)
-+{
-+ if (!sm || !wpa_key_mgmt_ft(sm->wpa_key_mgmt))
-+ return 0;
-+ return sm->tk_already_set;
-+}
-+
-+
- int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
- struct rsn_pmksa_cache_entry *entry)
- {
-diff --git a/src/ap/wpa_auth.h b/src/ap/wpa_auth.h
-index 0de8d97..97461b0 100644
---- a/src/ap/wpa_auth.h
-+++ b/src/ap/wpa_auth.h
-@@ -267,7 +267,7 @@ void wpa_receive(struct wpa_authenticator *wpa_auth,
- u8 *data, size_t data_len);
- enum wpa_event {
- WPA_AUTH, WPA_ASSOC, WPA_DISASSOC, WPA_DEAUTH, WPA_REAUTH,
-- WPA_REAUTH_EAPOL, WPA_ASSOC_FT
-+ WPA_REAUTH_EAPOL, WPA_ASSOC_FT, WPA_DRV_STA_REMOVED
- };
- void wpa_remove_ptk(struct wpa_state_machine *sm);
- int wpa_auth_sm_event(struct wpa_state_machine *sm, enum wpa_event event);
-@@ -280,6 +280,7 @@ int wpa_auth_pairwise_set(struct wpa_state_machine *sm);
- int wpa_auth_get_pairwise(struct wpa_state_machine *sm);
- int wpa_auth_sta_key_mgmt(struct wpa_state_machine *sm);
- int wpa_auth_sta_wpa_version(struct wpa_state_machine *sm);
-+int wpa_auth_sta_ft_tk_already_set(struct wpa_state_machine *sm);
- int wpa_auth_sta_clear_pmksa(struct wpa_state_machine *sm,
- struct rsn_pmksa_cache_entry *entry);
- struct rsn_pmksa_cache_entry *
-diff --git a/src/ap/wpa_auth_ft.c b/src/ap/wpa_auth_ft.c
-index 42242a5..e63b99a 100644
---- a/src/ap/wpa_auth_ft.c
-+++ b/src/ap/wpa_auth_ft.c
-@@ -780,6 +780,14 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
- return;
- }
-
-+ if (sm->tk_already_set) {
-+ /* Must avoid TK reconfiguration to prevent clearing of TX/RX
-+ * PN in the driver */
-+ wpa_printf(MSG_DEBUG,
-+ "FT: Do not re-install same PTK to the driver");
-+ return;
-+ }
-+
- /* FIX: add STA entry to kernel/driver here? The set_key will fail
- * most likely without this.. At the moment, STA entry is added only
- * after association has been completed. This function will be called
-@@ -792,6 +800,7 @@ void wpa_ft_install_ptk(struct wpa_state_machine *sm)
-
- /* FIX: MLME-SetProtection.Request(TA, Tx_Rx) */
- sm->pairwise_set = TRUE;
-+ sm->tk_already_set = TRUE;
- }
-
-
-@@ -898,6 +907,7 @@ static int wpa_ft_process_auth_req(struct wpa_state_machine *sm,
-
- sm->pairwise = pairwise;
- sm->PTK_valid = TRUE;
-+ sm->tk_already_set = FALSE;
- wpa_ft_install_ptk(sm);
-
- buflen = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
-diff --git a/src/ap/wpa_auth_i.h b/src/ap/wpa_auth_i.h
-index 72b7eb3..7fd8f05 100644
---- a/src/ap/wpa_auth_i.h
-+++ b/src/ap/wpa_auth_i.h
-@@ -65,6 +65,7 @@ struct wpa_state_machine {
- struct wpa_ptk PTK;
- Boolean PTK_valid;
- Boolean pairwise_set;
-+ Boolean tk_already_set;
- int keycount;
- Boolean Pair;
- struct wpa_key_replay_counter {
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch
deleted file mode 100644
index 4e57bcaa5a..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch
+++ /dev/null
@@ -1,253 +0,0 @@
-From c623cc973de525f7411dffe438e957ba86ef4733 Mon Sep 17 00:00:00 2001
-From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-Date: Wed, 12 Jul 2017 16:03:24 +0200
-Subject: [PATCH 2/7] Prevent reinstallation of an already in-use group key
-
-Track the current GTK and IGTK that is in use and when receiving a
-(possibly retransmitted) Group Message 1 or WNM-Sleep Mode Response, do
-not install the given key if it is already in use. This prevents an
-attacker from trying to trick the client into resetting or lowering the
-sequence counter associated to the group key.
-
-Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-
-Upstream-Status: Backport
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- src/common/wpa_common.h | 11 +++++
- src/rsn_supp/wpa.c | 116 ++++++++++++++++++++++++++++++------------------
- src/rsn_supp/wpa_i.h | 4 ++
- 3 files changed, 87 insertions(+), 44 deletions(-)
-
-diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
-index af1d0f0..d200285 100644
---- a/src/common/wpa_common.h
-+++ b/src/common/wpa_common.h
-@@ -217,6 +217,17 @@ struct wpa_ptk {
- size_t tk_len;
- };
-
-+struct wpa_gtk {
-+ u8 gtk[WPA_GTK_MAX_LEN];
-+ size_t gtk_len;
-+};
-+
-+#ifdef CONFIG_IEEE80211W
-+struct wpa_igtk {
-+ u8 igtk[WPA_IGTK_MAX_LEN];
-+ size_t igtk_len;
-+};
-+#endif /* CONFIG_IEEE80211W */
-
- /* WPA IE version 1
- * 00-50-f2:1 (OUI:OUI type)
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 3c47879..95bd7be 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -714,6 +714,15 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- const u8 *_gtk = gd->gtk;
- u8 gtk_buf[32];
-
-+ /* Detect possible key reinstallation */
-+ if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
-+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
-+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
-+ "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
-+ gd->keyidx, gd->tx, gd->gtk_len);
-+ return 0;
-+ }
-+
- wpa_hexdump_key(MSG_DEBUG, "WPA: Group Key", gd->gtk, gd->gtk_len);
- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- "WPA: Installing GTK to the driver (keyidx=%d tx=%d len=%d)",
-@@ -748,6 +757,9 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- }
- os_memset(gtk_buf, 0, sizeof(gtk_buf));
-
-+ sm->gtk.gtk_len = gd->gtk_len;
-+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
-+
- return 0;
- }
-
-@@ -854,6 +866,48 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
- }
-
-
-+#ifdef CONFIG_IEEE80211W
-+static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
-+ const struct wpa_igtk_kde *igtk)
-+{
-+ size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
-+ u16 keyidx = WPA_GET_LE16(igtk->keyid);
-+
-+ /* Detect possible key reinstallation */
-+ if (sm->igtk.igtk_len == len &&
-+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
-+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
-+ "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
-+ keyidx);
-+ return 0;
-+ }
-+
-+ wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
-+ "WPA: IGTK keyid %d pn %02x%02x%02x%02x%02x%02x",
-+ keyidx, MAC2STR(igtk->pn));
-+ wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK", igtk->igtk, len);
-+ if (keyidx > 4095) {
-+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-+ "WPA: Invalid IGTK KeyID %d", keyidx);
-+ return -1;
-+ }
-+ if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
-+ broadcast_ether_addr,
-+ keyidx, 0, igtk->pn, sizeof(igtk->pn),
-+ igtk->igtk, len) < 0) {
-+ wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-+ "WPA: Failed to configure IGTK to the driver");
-+ return -1;
-+ }
-+
-+ sm->igtk.igtk_len = len;
-+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
-+
-+ return 0;
-+}
-+#endif /* CONFIG_IEEE80211W */
-+
-+
- static int ieee80211w_set_keys(struct wpa_sm *sm,
- struct wpa_eapol_ie_parse *ie)
- {
-@@ -864,30 +918,14 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
- if (ie->igtk) {
- size_t len;
- const struct wpa_igtk_kde *igtk;
-- u16 keyidx;
-+
- len = wpa_cipher_key_len(sm->mgmt_group_cipher);
- if (ie->igtk_len != WPA_IGTK_KDE_PREFIX_LEN + len)
- return -1;
-+
- igtk = (const struct wpa_igtk_kde *) ie->igtk;
-- keyidx = WPA_GET_LE16(igtk->keyid);
-- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG, "WPA: IGTK keyid %d "
-- "pn %02x%02x%02x%02x%02x%02x",
-- keyidx, MAC2STR(igtk->pn));
-- wpa_hexdump_key(MSG_DEBUG, "WPA: IGTK",
-- igtk->igtk, len);
-- if (keyidx > 4095) {
-- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-- "WPA: Invalid IGTK KeyID %d", keyidx);
-- return -1;
-- }
-- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
-- broadcast_ether_addr,
-- keyidx, 0, igtk->pn, sizeof(igtk->pn),
-- igtk->igtk, len) < 0) {
-- wpa_msg(sm->ctx->msg_ctx, MSG_WARNING,
-- "WPA: Failed to configure IGTK to the driver");
-+ if (wpa_supplicant_install_igtk(sm, igtk) < 0)
- return -1;
-- }
- }
-
- return 0;
-@@ -2307,7 +2345,7 @@ void wpa_sm_deinit(struct wpa_sm *sm)
- */
- void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- {
-- int clear_ptk = 1;
-+ int clear_keys = 1;
-
- if (sm == NULL)
- return;
-@@ -2333,11 +2371,11 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- /* Prepare for the next transition */
- wpa_ft_prepare_auth_request(sm, NULL);
-
-- clear_ptk = 0;
-+ clear_keys = 0;
- }
- #endif /* CONFIG_IEEE80211R */
-
-- if (clear_ptk) {
-+ if (clear_keys) {
- /*
- * IEEE 802.11, 8.4.10: Delete PTK SA on (re)association if
- * this is not part of a Fast BSS Transition.
-@@ -2347,6 +2385,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- os_memset(&sm->ptk, 0, sizeof(sm->ptk));
- sm->tptk_set = 0;
- os_memset(&sm->tptk, 0, sizeof(sm->tptk));
-+ os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+#ifdef CONFIG_IEEE80211W
-+ os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+#endif /* CONFIG_IEEE80211W */
- }
-
- #ifdef CONFIG_TDLS
-@@ -2877,6 +2919,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
- os_memset(sm->pmk, 0, sizeof(sm->pmk));
- os_memset(&sm->ptk, 0, sizeof(sm->ptk));
- os_memset(&sm->tptk, 0, sizeof(sm->tptk));
-+ os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+#ifdef CONFIG_IEEE80211W
-+ os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+#endif /* CONFIG_IEEE80211W */
- #ifdef CONFIG_IEEE80211R
- os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
- os_memset(sm->pmk_r0, 0, sizeof(sm->pmk_r0));
-@@ -2949,29 +2995,11 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
- os_memset(&gd, 0, sizeof(gd));
- #ifdef CONFIG_IEEE80211W
- } else if (subelem_id == WNM_SLEEP_SUBELEM_IGTK) {
-- struct wpa_igtk_kde igd;
-- u16 keyidx;
--
-- os_memset(&igd, 0, sizeof(igd));
-- keylen = wpa_cipher_key_len(sm->mgmt_group_cipher);
-- os_memcpy(igd.keyid, buf + 2, 2);
-- os_memcpy(igd.pn, buf + 4, 6);
--
-- keyidx = WPA_GET_LE16(igd.keyid);
-- os_memcpy(igd.igtk, buf + 10, keylen);
--
-- wpa_hexdump_key(MSG_DEBUG, "Install IGTK (WNM SLEEP)",
-- igd.igtk, keylen);
-- if (wpa_sm_set_key(sm, wpa_cipher_to_alg(sm->mgmt_group_cipher),
-- broadcast_ether_addr,
-- keyidx, 0, igd.pn, sizeof(igd.pn),
-- igd.igtk, keylen) < 0) {
-- wpa_printf(MSG_DEBUG, "Failed to install the IGTK in "
-- "WNM mode");
-- os_memset(&igd, 0, sizeof(igd));
-+ const struct wpa_igtk_kde *igtk;
-+
-+ igtk = (const struct wpa_igtk_kde *) (buf + 2);
-+ if (wpa_supplicant_install_igtk(sm, igtk) < 0)
- return -1;
-- }
-- os_memset(&igd, 0, sizeof(igd));
- #endif /* CONFIG_IEEE80211W */
- } else {
- wpa_printf(MSG_DEBUG, "Unknown element id");
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index f653ba6..afc9e37 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -31,6 +31,10 @@ struct wpa_sm {
- u8 rx_replay_counter[WPA_REPLAY_COUNTER_LEN];
- int rx_replay_counter_set;
- u8 request_counter[WPA_REPLAY_COUNTER_LEN];
-+ struct wpa_gtk gtk;
-+#ifdef CONFIG_IEEE80211W
-+ struct wpa_igtk igtk;
-+#endif /* CONFIG_IEEE80211W */
-
- struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
-
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch
deleted file mode 100644
index e39bbf63d5..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From a6caab8060ab60876e233306f5c586451169eba1 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Sun, 1 Oct 2017 12:12:24 +0300
-Subject: [PATCH 3/7] Extend protection of GTK/IGTK reinstallation of WNM-Sleep
- Mode cases
-
-This extends the protection to track last configured GTK/IGTK value
-separately from EAPOL-Key frames and WNM-Sleep Mode frames to cover a
-corner case where these two different mechanisms may get used when the
-GTK/IGTK has changed and tracking a single value is not sufficient to
-detect a possible key reconfiguration.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
-
-Upstream-Status: Backport
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- src/rsn_supp/wpa.c | 53 +++++++++++++++++++++++++++++++++++++---------------
- src/rsn_supp/wpa_i.h | 2 ++
- 2 files changed, 40 insertions(+), 15 deletions(-)
-
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 95bd7be..7a2c68d 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -709,14 +709,17 @@ struct wpa_gtk_data {
-
- static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- const struct wpa_gtk_data *gd,
-- const u8 *key_rsc)
-+ const u8 *key_rsc, int wnm_sleep)
- {
- const u8 *_gtk = gd->gtk;
- u8 gtk_buf[32];
-
- /* Detect possible key reinstallation */
-- if (sm->gtk.gtk_len == (size_t) gd->gtk_len &&
-- os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) {
-+ if ((sm->gtk.gtk_len == (size_t) gd->gtk_len &&
-+ os_memcmp(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len) == 0) ||
-+ (sm->gtk_wnm_sleep.gtk_len == (size_t) gd->gtk_len &&
-+ os_memcmp(sm->gtk_wnm_sleep.gtk, gd->gtk,
-+ sm->gtk_wnm_sleep.gtk_len) == 0)) {
- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- "WPA: Not reinstalling already in-use GTK to the driver (keyidx=%d tx=%d len=%d)",
- gd->keyidx, gd->tx, gd->gtk_len);
-@@ -757,8 +760,14 @@ static int wpa_supplicant_install_gtk(struct wpa_sm *sm,
- }
- os_memset(gtk_buf, 0, sizeof(gtk_buf));
-
-- sm->gtk.gtk_len = gd->gtk_len;
-- os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
-+ if (wnm_sleep) {
-+ sm->gtk_wnm_sleep.gtk_len = gd->gtk_len;
-+ os_memcpy(sm->gtk_wnm_sleep.gtk, gd->gtk,
-+ sm->gtk_wnm_sleep.gtk_len);
-+ } else {
-+ sm->gtk.gtk_len = gd->gtk_len;
-+ os_memcpy(sm->gtk.gtk, gd->gtk, sm->gtk.gtk_len);
-+ }
-
- return 0;
- }
-@@ -852,7 +861,7 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
- (wpa_supplicant_check_group_cipher(sm, sm->group_cipher,
- gtk_len, gtk_len,
- &gd.key_rsc_len, &gd.alg) ||
-- wpa_supplicant_install_gtk(sm, &gd, key_rsc))) {
-+ wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0))) {
- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- "RSN: Failed to install GTK");
- os_memset(&gd, 0, sizeof(gd));
-@@ -868,14 +877,18 @@ static int wpa_supplicant_pairwise_gtk(struct wpa_sm *sm,
-
- #ifdef CONFIG_IEEE80211W
- static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
-- const struct wpa_igtk_kde *igtk)
-+ const struct wpa_igtk_kde *igtk,
-+ int wnm_sleep)
- {
- size_t len = wpa_cipher_key_len(sm->mgmt_group_cipher);
- u16 keyidx = WPA_GET_LE16(igtk->keyid);
-
- /* Detect possible key reinstallation */
-- if (sm->igtk.igtk_len == len &&
-- os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) {
-+ if ((sm->igtk.igtk_len == len &&
-+ os_memcmp(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len) == 0) ||
-+ (sm->igtk_wnm_sleep.igtk_len == len &&
-+ os_memcmp(sm->igtk_wnm_sleep.igtk, igtk->igtk,
-+ sm->igtk_wnm_sleep.igtk_len) == 0)) {
- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- "WPA: Not reinstalling already in-use IGTK to the driver (keyidx=%d)",
- keyidx);
-@@ -900,8 +913,14 @@ static int wpa_supplicant_install_igtk(struct wpa_sm *sm,
- return -1;
- }
-
-- sm->igtk.igtk_len = len;
-- os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
-+ if (wnm_sleep) {
-+ sm->igtk_wnm_sleep.igtk_len = len;
-+ os_memcpy(sm->igtk_wnm_sleep.igtk, igtk->igtk,
-+ sm->igtk_wnm_sleep.igtk_len);
-+ } else {
-+ sm->igtk.igtk_len = len;
-+ os_memcpy(sm->igtk.igtk, igtk->igtk, sm->igtk.igtk_len);
-+ }
-
- return 0;
- }
-@@ -924,7 +943,7 @@ static int ieee80211w_set_keys(struct wpa_sm *sm,
- return -1;
-
- igtk = (const struct wpa_igtk_kde *) ie->igtk;
-- if (wpa_supplicant_install_igtk(sm, igtk) < 0)
-+ if (wpa_supplicant_install_igtk(sm, igtk, 0) < 0)
- return -1;
- }
-
-@@ -1574,7 +1593,7 @@ static void wpa_supplicant_process_1_of_2(struct wpa_sm *sm,
- if (wpa_supplicant_rsc_relaxation(sm, key->key_rsc))
- key_rsc = null_rsc;
-
-- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc) ||
-+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 0) ||
- wpa_supplicant_send_2_of_2(sm, key, ver, key_info) < 0)
- goto failed;
- os_memset(&gd, 0, sizeof(gd));
-@@ -2386,8 +2405,10 @@ void wpa_sm_notify_assoc(struct wpa_sm *sm, const u8 *bssid)
- sm->tptk_set = 0;
- os_memset(&sm->tptk, 0, sizeof(sm->tptk));
- os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
- #ifdef CONFIG_IEEE80211W
- os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
- #endif /* CONFIG_IEEE80211W */
- }
-
-@@ -2920,8 +2941,10 @@ void wpa_sm_drop_sa(struct wpa_sm *sm)
- os_memset(&sm->ptk, 0, sizeof(sm->ptk));
- os_memset(&sm->tptk, 0, sizeof(sm->tptk));
- os_memset(&sm->gtk, 0, sizeof(sm->gtk));
-+ os_memset(&sm->gtk_wnm_sleep, 0, sizeof(sm->gtk_wnm_sleep));
- #ifdef CONFIG_IEEE80211W
- os_memset(&sm->igtk, 0, sizeof(sm->igtk));
-+ os_memset(&sm->igtk_wnm_sleep, 0, sizeof(sm->igtk_wnm_sleep));
- #endif /* CONFIG_IEEE80211W */
- #ifdef CONFIG_IEEE80211R
- os_memset(sm->xxkey, 0, sizeof(sm->xxkey));
-@@ -2986,7 +3009,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
-
- wpa_hexdump_key(MSG_DEBUG, "Install GTK (WNM SLEEP)",
- gd.gtk, gd.gtk_len);
-- if (wpa_supplicant_install_gtk(sm, &gd, key_rsc)) {
-+ if (wpa_supplicant_install_gtk(sm, &gd, key_rsc, 1)) {
- os_memset(&gd, 0, sizeof(gd));
- wpa_printf(MSG_DEBUG, "Failed to install the GTK in "
- "WNM mode");
-@@ -2998,7 +3021,7 @@ int wpa_wnmsleep_install_key(struct wpa_sm *sm, u8 subelem_id, u8 *buf)
- const struct wpa_igtk_kde *igtk;
-
- igtk = (const struct wpa_igtk_kde *) (buf + 2);
-- if (wpa_supplicant_install_igtk(sm, igtk) < 0)
-+ if (wpa_supplicant_install_igtk(sm, igtk, 1) < 0)
- return -1;
- #endif /* CONFIG_IEEE80211W */
- } else {
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index afc9e37..9a54631 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -32,8 +32,10 @@ struct wpa_sm {
- int rx_replay_counter_set;
- u8 request_counter[WPA_REPLAY_COUNTER_LEN];
- struct wpa_gtk gtk;
-+ struct wpa_gtk gtk_wnm_sleep;
- #ifdef CONFIG_IEEE80211W
- struct wpa_igtk igtk;
-+ struct wpa_igtk igtk_wnm_sleep;
- #endif /* CONFIG_IEEE80211W */
-
- struct eapol_sm *eapol; /* EAPOL state machine from upper level code */
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/0004-Prevent-installation-of-an-all-zero-TK.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/0004-Prevent-installation-of-an-all-zero-TK.patch
deleted file mode 100644
index 510362510e..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/0004-Prevent-installation-of-an-all-zero-TK.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From abf941647f2dc33b0b59612f525e1b292331cc9f Mon Sep 17 00:00:00 2001
-From: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-Date: Fri, 29 Sep 2017 04:22:51 +0200
-Subject: [PATCH 4/7] Prevent installation of an all-zero TK
-
-Properly track whether a PTK has already been installed to the driver
-and the TK part cleared from memory. This prevents an attacker from
-trying to trick the client into installing an all-zero TK.
-
-This fixes the earlier fix in commit
-ad00d64e7d8827b3cebd665a0ceb08adabf15e1e ('Fix TK configuration to the
-driver in EAPOL-Key 3/4 retry case') which did not take into account
-possibility of an extra message 1/4 showing up between retries of
-message 3/4.
-
-Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@cs.kuleuven.be>
-
-Upstream-Status: Backport
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- src/common/wpa_common.h | 1 +
- src/rsn_supp/wpa.c | 5 ++---
- src/rsn_supp/wpa_i.h | 1 -
- 3 files changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/src/common/wpa_common.h b/src/common/wpa_common.h
-index d200285..1021ccb 100644
---- a/src/common/wpa_common.h
-+++ b/src/common/wpa_common.h
-@@ -215,6 +215,7 @@ struct wpa_ptk {
- size_t kck_len;
- size_t kek_len;
- size_t tk_len;
-+ int installed; /* 1 if key has already been installed to driver */
- };
-
- struct wpa_gtk {
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 7a2c68d..0550a41 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -510,7 +510,6 @@ static void wpa_supplicant_process_1_of_4(struct wpa_sm *sm,
- os_memset(buf, 0, sizeof(buf));
- }
- sm->tptk_set = 1;
-- sm->tk_to_set = 1;
-
- kde = sm->assoc_wpa_ie;
- kde_len = sm->assoc_wpa_ie_len;
-@@ -615,7 +614,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
- enum wpa_alg alg;
- const u8 *key_rsc;
-
-- if (!sm->tk_to_set) {
-+ if (sm->ptk.installed) {
- wpa_dbg(sm->ctx->msg_ctx, MSG_DEBUG,
- "WPA: Do not re-install same PTK to the driver");
- return 0;
-@@ -659,7 +658,7 @@ static int wpa_supplicant_install_ptk(struct wpa_sm *sm,
-
- /* TK is not needed anymore in supplicant */
- os_memset(sm->ptk.tk, 0, WPA_TK_MAX_LEN);
-- sm->tk_to_set = 0;
-+ sm->ptk.installed = 1;
-
- if (sm->wpa_ptk_rekey) {
- eloop_cancel_timeout(wpa_sm_rekey_ptk, sm, NULL);
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index 9a54631..41f371f 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -24,7 +24,6 @@ struct wpa_sm {
- struct wpa_ptk ptk, tptk;
- int ptk_set, tptk_set;
- unsigned int msg_3_of_4_ok:1;
-- unsigned int tk_to_set:1;
- u8 snonce[WPA_NONCE_LEN];
- u8 anonce[WPA_NONCE_LEN]; /* ANonce from the last 1/4 msg */
- int renew_snonce;
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch
deleted file mode 100644
index b0e1df3140..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 804b9d72808cddd822e7dcec4d60f40c1aceda82 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Sun, 1 Oct 2017 12:32:57 +0300
-Subject: [PATCH 5/7] Fix PTK rekeying to generate a new ANonce
-
-The Authenticator state machine path for PTK rekeying ended up bypassing
-the AUTHENTICATION2 state where a new ANonce is generated when going
-directly to the PTKSTART state since there is no need to try to
-determine the PMK again in such a case. This is far from ideal since the
-new PTK would depend on a new nonce only from the supplicant.
-
-Fix this by generating a new ANonce when moving to the PTKSTART state
-for the purpose of starting new 4-way handshake to rekey PTK.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
-
-Upstream-Status: Backport
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- src/ap/wpa_auth.c | 24 +++++++++++++++++++++---
- 1 file changed, 21 insertions(+), 3 deletions(-)
-
-diff --git a/src/ap/wpa_auth.c b/src/ap/wpa_auth.c
-index 707971d..bf10cc1 100644
---- a/src/ap/wpa_auth.c
-+++ b/src/ap/wpa_auth.c
-@@ -1901,6 +1901,21 @@ SM_STATE(WPA_PTK, AUTHENTICATION2)
- }
-
-
-+static int wpa_auth_sm_ptk_update(struct wpa_state_machine *sm)
-+{
-+ if (random_get_bytes(sm->ANonce, WPA_NONCE_LEN)) {
-+ wpa_printf(MSG_ERROR,
-+ "WPA: Failed to get random data for ANonce");
-+ sm->Disconnect = TRUE;
-+ return -1;
-+ }
-+ wpa_hexdump(MSG_DEBUG, "WPA: Assign new ANonce", sm->ANonce,
-+ WPA_NONCE_LEN);
-+ sm->TimeoutCtr = 0;
-+ return 0;
-+}
-+
-+
- SM_STATE(WPA_PTK, INITPMK)
- {
- u8 msk[2 * PMK_LEN];
-@@ -2458,9 +2473,12 @@ SM_STEP(WPA_PTK)
- SM_ENTER(WPA_PTK, AUTHENTICATION);
- else if (sm->ReAuthenticationRequest)
- SM_ENTER(WPA_PTK, AUTHENTICATION2);
-- else if (sm->PTKRequest)
-- SM_ENTER(WPA_PTK, PTKSTART);
-- else switch (sm->wpa_ptk_state) {
-+ else if (sm->PTKRequest) {
-+ if (wpa_auth_sm_ptk_update(sm) < 0)
-+ SM_ENTER(WPA_PTK, DISCONNECTED);
-+ else
-+ SM_ENTER(WPA_PTK, PTKSTART);
-+ } else switch (sm->wpa_ptk_state) {
- case WPA_PTK_INITIALIZE:
- break;
- case WPA_PTK_DISCONNECT:
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/0006-TDLS-Reject-TPK-TK-reconfiguration.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/0006-TDLS-Reject-TPK-TK-reconfiguration.patch
deleted file mode 100644
index 72c7d51e10..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/0006-TDLS-Reject-TPK-TK-reconfiguration.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 7fd26db2d8147ed662db192c41d7bc15752a601d Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Fri, 22 Sep 2017 11:03:15 +0300
-Subject: [PATCH 6/7] TDLS: Reject TPK-TK reconfiguration
-
-Do not try to reconfigure the same TPK-TK to the driver after it has
-been successfully configured. This is an explicit check to avoid issues
-related to resetting the TX/RX packet number. There was already a check
-for this for TPK M2 (retries of that message are ignored completely), so
-that behavior does not get modified.
-
-For TPK M3, the TPK-TK could have been reconfigured, but that was
-followed by immediate teardown of the link due to an issue in updating
-the STA entry. Furthermore, for TDLS with any real security (i.e.,
-ignoring open/WEP), the TPK message exchange is protected on the AP path
-and simple replay attacks are not feasible.
-
-As an additional corner case, make sure the local nonce gets updated if
-the peer uses a very unlikely "random nonce" of all zeros.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
-
-Upstream-Status: Backport
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- src/rsn_supp/tdls.c | 38 ++++++++++++++++++++++++++++++++++++--
- 1 file changed, 36 insertions(+), 2 deletions(-)
-
-diff --git a/src/rsn_supp/tdls.c b/src/rsn_supp/tdls.c
-index e424168..9eb9738 100644
---- a/src/rsn_supp/tdls.c
-+++ b/src/rsn_supp/tdls.c
-@@ -112,6 +112,7 @@ struct wpa_tdls_peer {
- u8 tk[16]; /* TPK-TK; assuming only CCMP will be used */
- } tpk;
- int tpk_set;
-+ int tk_set; /* TPK-TK configured to the driver */
- int tpk_success;
- int tpk_in_progress;
-
-@@ -192,6 +193,20 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
- u8 rsc[6];
- enum wpa_alg alg;
-
-+ if (peer->tk_set) {
-+ /*
-+ * This same TPK-TK has already been configured to the driver
-+ * and this new configuration attempt (likely due to an
-+ * unexpected retransmitted frame) would result in clearing
-+ * the TX/RX sequence number which can break security, so must
-+ * not allow that to happen.
-+ */
-+ wpa_printf(MSG_INFO, "TDLS: TPK-TK for the peer " MACSTR
-+ " has already been configured to the driver - do not reconfigure",
-+ MAC2STR(peer->addr));
-+ return -1;
-+ }
-+
- os_memset(rsc, 0, 6);
-
- switch (peer->cipher) {
-@@ -209,12 +224,15 @@ static int wpa_tdls_set_key(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
- return -1;
- }
-
-+ wpa_printf(MSG_DEBUG, "TDLS: Configure pairwise key for peer " MACSTR,
-+ MAC2STR(peer->addr));
- if (wpa_sm_set_key(sm, alg, peer->addr, -1, 1,
- rsc, sizeof(rsc), peer->tpk.tk, key_len) < 0) {
- wpa_printf(MSG_WARNING, "TDLS: Failed to set TPK to the "
- "driver");
- return -1;
- }
-+ peer->tk_set = 1;
- return 0;
- }
-
-@@ -696,7 +714,7 @@ static void wpa_tdls_peer_clear(struct wpa_sm *sm, struct wpa_tdls_peer *peer)
- peer->cipher = 0;
- peer->qos_info = 0;
- peer->wmm_capable = 0;
-- peer->tpk_set = peer->tpk_success = 0;
-+ peer->tk_set = peer->tpk_set = peer->tpk_success = 0;
- peer->chan_switch_enabled = 0;
- os_memset(&peer->tpk, 0, sizeof(peer->tpk));
- os_memset(peer->inonce, 0, WPA_NONCE_LEN);
-@@ -1159,6 +1177,7 @@ skip_rsnie:
- wpa_tdls_peer_free(sm, peer);
- return -1;
- }
-+ peer->tk_set = 0; /* A new nonce results in a new TK */
- wpa_hexdump(MSG_DEBUG, "TDLS: Initiator Nonce for TPK handshake",
- peer->inonce, WPA_NONCE_LEN);
- os_memcpy(ftie->Snonce, peer->inonce, WPA_NONCE_LEN);
-@@ -1751,6 +1770,19 @@ static int wpa_tdls_addset_peer(struct wpa_sm *sm, struct wpa_tdls_peer *peer,
- }
-
-
-+static int tdls_nonce_set(const u8 *nonce)
-+{
-+ int i;
-+
-+ for (i = 0; i < WPA_NONCE_LEN; i++) {
-+ if (nonce[i])
-+ return 1;
-+ }
-+
-+ return 0;
-+}
-+
-+
- static int wpa_tdls_process_tpk_m1(struct wpa_sm *sm, const u8 *src_addr,
- const u8 *buf, size_t len)
- {
-@@ -2004,7 +2036,8 @@ skip_rsn:
- peer->rsnie_i_len = kde.rsn_ie_len;
- peer->cipher = cipher;
-
-- if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0) {
-+ if (os_memcmp(peer->inonce, ftie->Snonce, WPA_NONCE_LEN) != 0 ||
-+ !tdls_nonce_set(peer->inonce)) {
- /*
- * There is no point in updating the RNonce for every obtained
- * TPK M1 frame (e.g., retransmission due to timeout) with the
-@@ -2020,6 +2053,7 @@ skip_rsn:
- "TDLS: Failed to get random data for responder nonce");
- goto error;
- }
-+ peer->tk_set = 0; /* A new nonce results in a new TK */
- }
-
- #if 0
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch b/meta-oe/recipes-connectivity/hostapd/hostapd/0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch
deleted file mode 100644
index d0978c7978..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From a42eb67c42f845faf266b0633d52e17f2a82f511 Mon Sep 17 00:00:00 2001
-From: Jouni Malinen <j@w1.fi>
-Date: Fri, 22 Sep 2017 12:06:37 +0300
-Subject: [PATCH 7/7] FT: Do not allow multiple Reassociation Response frames
-
-The driver is expected to not report a second association event without
-the station having explicitly request a new association. As such, this
-case should not be reachable. However, since reconfiguring the same
-pairwise or group keys to the driver could result in nonce reuse issues,
-be extra careful here and do an additional state check to avoid this
-even if the local driver ends up somehow accepting an unexpected
-Reassociation Response frame.
-
-Signed-off-by: Jouni Malinen <j@w1.fi>
-
-Upstream-Status: Backport
-Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
----
- src/rsn_supp/wpa.c | 3 +++
- src/rsn_supp/wpa_ft.c | 8 ++++++++
- src/rsn_supp/wpa_i.h | 1 +
- 3 files changed, 12 insertions(+)
-
-diff --git a/src/rsn_supp/wpa.c b/src/rsn_supp/wpa.c
-index 0550a41..2a53c6f 100644
---- a/src/rsn_supp/wpa.c
-+++ b/src/rsn_supp/wpa.c
-@@ -2440,6 +2440,9 @@ void wpa_sm_notify_disassoc(struct wpa_sm *sm)
- #ifdef CONFIG_TDLS
- wpa_tdls_disassoc(sm);
- #endif /* CONFIG_TDLS */
-+#ifdef CONFIG_IEEE80211R
-+ sm->ft_reassoc_completed = 0;
-+#endif /* CONFIG_IEEE80211R */
-
- /* Keys are not needed in the WPA state machine anymore */
- wpa_sm_drop_sa(sm);
-diff --git a/src/rsn_supp/wpa_ft.c b/src/rsn_supp/wpa_ft.c
-index 205793e..d45bb45 100644
---- a/src/rsn_supp/wpa_ft.c
-+++ b/src/rsn_supp/wpa_ft.c
-@@ -153,6 +153,7 @@ static u8 * wpa_ft_gen_req_ies(struct wpa_sm *sm, size_t *len,
- u16 capab;
-
- sm->ft_completed = 0;
-+ sm->ft_reassoc_completed = 0;
-
- buf_len = 2 + sizeof(struct rsn_mdie) + 2 + sizeof(struct rsn_ftie) +
- 2 + sm->r0kh_id_len + ric_ies_len + 100;
-@@ -681,6 +682,11 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
- return -1;
- }
-
-+ if (sm->ft_reassoc_completed) {
-+ wpa_printf(MSG_DEBUG, "FT: Reassociation has already been completed for this FT protocol instance - ignore unexpected retransmission");
-+ return 0;
-+ }
-+
- if (wpa_ft_parse_ies(ies, ies_len, &parse) < 0) {
- wpa_printf(MSG_DEBUG, "FT: Failed to parse IEs");
- return -1;
-@@ -781,6 +787,8 @@ int wpa_ft_validate_reassoc_resp(struct wpa_sm *sm, const u8 *ies,
- return -1;
- }
-
-+ sm->ft_reassoc_completed = 1;
-+
- if (wpa_ft_process_gtk_subelem(sm, parse.gtk, parse.gtk_len) < 0)
- return -1;
-
-diff --git a/src/rsn_supp/wpa_i.h b/src/rsn_supp/wpa_i.h
-index 41f371f..56f88dc 100644
---- a/src/rsn_supp/wpa_i.h
-+++ b/src/rsn_supp/wpa_i.h
-@@ -128,6 +128,7 @@ struct wpa_sm {
- size_t r0kh_id_len;
- u8 r1kh_id[FT_R1KH_ID_LEN];
- int ft_completed;
-+ int ft_reassoc_completed;
- int over_the_ds_in_progress;
- u8 target_ap[ETH_ALEN]; /* over-the-DS target AP */
- int set_ptk_after_assoc;
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig b/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig
index 2789640170..a62bec4034 100644
--- a/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig
+++ b/meta-oe/recipes-connectivity/hostapd/hostapd/defconfig
@@ -139,6 +139,9 @@ CONFIG_DRIVER_RADIUS_ACL=y
# IEEE 802.11n (High Throughput) support
CONFIG_IEEE80211N=y
+# IEEE 802.11ac (Very High Throughput) support
+CONFIG_IEEE80211AC=y
+
# Remove debugging code that is printing out debug messages to stdout.
# This can be used to reduce the size of the hostapd considerably if debugging
# code is not needed.
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb b/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb
new file mode 100644
index 0000000000..dbdc5c1bdf
--- /dev/null
+++ b/meta-oe/recipes-connectivity/hostapd/hostapd_2.10.bb
@@ -0,0 +1,51 @@
+SUMMARY = "User space daemon for extended IEEE 802.11 management"
+HOMEPAGE = "http://w1.fi/hostapd/"
+SECTION = "kernel/userland"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://hostapd/README;md5=c905478466c90f1cefc0df987c40e172"
+
+DEPENDS = "libnl openssl"
+
+SRC_URI = " \
+ http://w1.fi/releases/hostapd-${PV}.tar.gz \
+ file://defconfig \
+ file://init \
+ file://hostapd.service \
+"
+
+
+SRC_URI[sha256sum] = "206e7c799b678572c2e3d12030238784bc4a9f82323b0156b4c9466f1498915d"
+
+S = "${WORKDIR}/hostapd-${PV}"
+B = "${WORKDIR}/hostapd-${PV}/hostapd"
+
+inherit update-rc.d systemd pkgconfig features_check
+
+CONFLICT_DISTRO_FEATURES = "openssl-no-weak-ciphers"
+
+INITSCRIPT_NAME = "hostapd"
+
+SYSTEMD_SERVICE:${PN} = "hostapd.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
+
+do_configure:append() {
+ install -m 0644 ${WORKDIR}/defconfig ${B}/.config
+}
+
+do_compile() {
+ export CFLAGS="-MMD -O2 -Wall -g"
+ export EXTRA_CFLAGS="${CFLAGS}"
+ make V=1
+}
+
+do_install() {
+ install -d ${D}${sbindir} ${D}${sysconfdir}/init.d ${D}${systemd_unitdir}/system/
+ install -m 0644 ${B}/hostapd.conf ${D}${sysconfdir}
+ install -m 0755 ${B}/hostapd ${D}${sbindir}
+ install -m 0755 ${B}/hostapd_cli ${D}${sbindir}
+ install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hostapd
+ install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system/
+ sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/hostapd.service
+}
+
+CONFFILES:${PN} += "${sysconfdir}/hostapd.conf"
diff --git a/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb b/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
deleted file mode 100644
index 250add8753..0000000000
--- a/meta-oe/recipes-connectivity/hostapd/hostapd_2.6.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "User space daemon for extended IEEE 802.11 management"
-HOMEPAGE = "http://w1.fi/hostapd/"
-SECTION = "kernel/userland"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://hostapd/README;md5=8aa4e8c78b59b12016c4cb2d0a8db350"
-
-DEPENDS = "libnl openssl"
-
-SRC_URI = " \
- http://w1.fi/releases/hostapd-${PV}.tar.gz \
- file://defconfig \
- file://init \
- file://hostapd.service \
- file://0001-hostapd-Avoid-key-reinstallation-in-FT-handshake.patch \
- file://0002-Prevent-reinstallation-of-an-already-in-use-group-ke.patch \
- file://0003-Extend-protection-of-GTK-IGTK-reinstallation-of-WNM-.patch \
- file://0004-Prevent-installation-of-an-all-zero-TK.patch \
- file://0005-Fix-PTK-rekeying-to-generate-a-new-ANonce.patch \
- file://0006-TDLS-Reject-TPK-TK-reconfiguration.patch \
- file://0007-FT-Do-not-allow-multiple-Reassociation-Response-fram.patch \
-"
-
-SRC_URI[md5sum] = "eaa56dce9bd8f1d195eb62596eab34c7"
-SRC_URI[sha256sum] = "01526b90c1d23bec4b0f052039cc4456c2fd19347b4d830d1d58a0a6aea7117d"
-
-S = "${WORKDIR}/hostapd-${PV}"
-B = "${WORKDIR}/hostapd-${PV}/hostapd"
-
-inherit update-rc.d systemd pkgconfig distro_features_check
-
-CONFLICT_DISTRO_FEATURES = "openssl-no-weak-ciphers"
-
-INITSCRIPT_NAME = "hostapd"
-
-SYSTEMD_SERVICE_${PN} = "hostapd.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
-
-do_configure_append() {
- install -m 0644 ${WORKDIR}/defconfig ${B}/.config
-}
-
-do_compile() {
- export CFLAGS="-MMD -O2 -Wall -g"
- export EXTRA_CFLAGS="${CFLAGS}"
- make V=1
-}
-
-do_install() {
- install -d ${D}${sbindir} ${D}${sysconfdir}/init.d ${D}${systemd_unitdir}/system/
- install -m 0644 ${B}/hostapd.conf ${D}${sysconfdir}
- install -m 0755 ${B}/hostapd ${D}${sbindir}
- install -m 0755 ${B}/hostapd_cli ${D}${sbindir}
- install -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/hostapd
- install -m 0644 ${WORKDIR}/hostapd.service ${D}${systemd_unitdir}/system/
- sed -i -e 's,@SBINDIR@,${sbindir},g' -e 's,@SYSCONFDIR@,${sysconfdir},g' ${D}${systemd_unitdir}/system/hostapd.service
-}
-
-CONFFILES_${PN} += "${sysconfdir}/hostapd.conf"
diff --git a/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch b/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch
new file mode 100644
index 0000000000..77de9e6c52
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ifplugd/ifplugd/0001-src-interface.h-Make-declarations-as-extern.patch
@@ -0,0 +1,31 @@
+From b990146a149e1729c12e4541a67e32ed1dd6e578 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 19:41:08 -0700
+Subject: [PATCH] src/interface.h: Make declarations as extern
+
+Fixed build with -fno-common
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/interface.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/interface.h b/src/interface.h
+index d223b1f..fd4a5f4 100644
+--- a/src/interface.h
++++ b/src/interface.h
+@@ -21,8 +21,8 @@
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+
+-int interface_auto_up;
+-int interface_do_message;
++extern int interface_auto_up;
++extern int interface_do_message;
+
+ typedef enum { IFSTATUS_UP, IFSTATUS_DOWN, IFSTATUS_ERR } interface_status_t;
+
+--
+2.28.0
+
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
new file mode 100644
index 0000000000..7dc0067304
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ifplugd/ifplugd/Fix-build-with-musl.patch
@@ -0,0 +1,31 @@
+From 3f2fc79385398f213a9bd3c99616d749d699f2bb Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Thu, 14 Mar 2019 19:26:14 -0300
+Subject: [PATCH] Fix build with musl
+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(-)
+
+--- a/src/ethtool-local.h
++++ b/src/ethtool-local.h
+@@ -20,11 +20,11 @@
+ * along with ifplugd; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+ */
+-
++#include <stdint.h>
+ typedef unsigned long long u64;
+-typedef __uint32_t u32;
+-typedef __uint16_t u16;
+-typedef __uint8_t u8;
++typedef uint32_t u32;
++typedef uint16_t u16;
++typedef uint8_t u8;
+
+ #include "ethtool-kernel.h"
+
diff --git a/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb b/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb
new file mode 100644
index 0000000000..62651bc308
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ifplugd/ifplugd_0.28.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "ifplugd is a Linux daemon which will automatically configure your ethernet device \
+when a cable is plugged in and automatically unconfigure it if the cable is pulled."
+HOMEPAGE = "http://0pointer.de/lennart/projects/ifplugd/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "libdaemon"
+
+SRC_URI = "http://0pointer.de/lennart/projects/ifplugd/ifplugd-${PV}.tar.gz \
+ file://0001-src-interface.h-Make-declarations-as-extern.patch \
+ "
+
+SRC_URI:append:libc-musl = " file://Fix-build-with-musl.patch"
+
+SRC_URI[md5sum] = "df6f4bab52f46ffd6eb1f5912d4ccee3"
+SRC_URI[sha256sum] = "474754ac4ab32d738cbf2a4a3e87ee0a2c71b9048a38bdcd7df1e4f9fd6541f0"
+
+inherit autotools update-rc.d pkgconfig
+
+EXTRA_OECONF = "--disable-lynx --with-initdir=${sysconfdir}/init.d"
+
+INITSCRIPT_NAME = "ifplugd"
+INITSCRIPT_PARAMS = "defaults"
+
+CONFFILES:${PN} = "${sysconfdir}/ifplugd/ifplugd.conf"
+
+RDEPENDS:${PN} += "bash"
diff --git a/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb b/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb
deleted file mode 100644
index 10b04bb524..0000000000
--- a/meta-oe/recipes-connectivity/irssi/irssi_1.0.4.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "ncurses IRC client"
-DESCRIPTION = "Irssi is an ncurses IRC client"
-LICENSE = "GPLv2"
-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[md5sum] = "46d4ac2a7ab472e5dc800e5d7bd9a879"
-SRC_URI[sha256sum] = "b85c07dbafe178213eccdc69f5f8f0ac024dea01c67244668f91ec1c06b986ca"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--with-textui \
- --with-proxy \
- --with-bot \
- --with-perl=no \
- --enable-true-color"
diff --git a/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb b/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.bb
new file mode 100644
index 0000000000..455561f613
--- /dev/null
+++ b/meta-oe/recipes-connectivity/irssi/irssi_1.4.2.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] = "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/iwd/iwd/0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch b/meta-oe/recipes-connectivity/iwd/iwd/0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch
new file mode 100644
index 0000000000..9ed73104ee
--- /dev/null
+++ b/meta-oe/recipes-connectivity/iwd/iwd/0001-build-Use-abs_top_srcdir-instead-of-abs_srcdir-for-e.patch
@@ -0,0 +1,37 @@
+From b0b51d762f45ff9d320b96bd0acb89313148a446 Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@fujitsu.com>
+Date: Wed, 12 May 2021 14:28:24 +0900
+Subject: [PATCH] build: Use abs_top_srcdir instead of abs_srcdir for ell sources
+
+this makes it build when build dir is outside of sources dir
+
+Upstream-Status: Submitted [https://lists.01.org/hyperkitty/list/iwd@lists.01.org/message/SYX6Z7SUQHU7UWM6ECZTTJ6SPODIS6KB/]
+---
+ Makefile.am | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 68035e4..e3f7990 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -628,7 +628,7 @@ ell/shared: Makefile
+ $(AM_V_at)$(MKDIR_P) ell
+ $(AM_V_GEN)for f in $(ell_shared) ; do \
+ if [ ! -f $$f ] ; then \
+- $(LN_S) -t ell -f $(abs_srcdir)/../ell/$$f ; \
++ $(LN_S) -t ell -f $(abs_top_srcdir)/ell/$$f ; \
+ fi \
+ done > $@
+
+@@ -636,7 +636,7 @@ ell/internal: Makefile
+ $(AM_V_at)$(MKDIR_P) ell
+ $(AM_V_GEN)for f in $(ell_headers) $(ell_sources) ; do \
+ if [ ! -f $$f ] ; then \
+- $(LN_S) -t ell -f $(abs_srcdir)/../ell/$$f ; \
++ $(LN_S) -t ell -f $(abs_top_srcdir)/ell/$$f ; \
+ fi \
+ done > $@
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-connectivity/iwd/iwd_2.7.bb b/meta-oe/recipes-connectivity/iwd/iwd_2.7.bb
new file mode 100644
index 0000000000..f4e70890a9
--- /dev/null
+++ b/meta-oe/recipes-connectivity/iwd/iwd_2.7.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] = "289ff47a76fb854e7789c45c5e3e0f15de4adc5fd2e82e47ab08e3564d8961d9"
+
+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-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch b/meta-oe/recipes-connectivity/krb5/krb5/0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch
new file mode 100644
index 0000000000..9d0b066b10
--- /dev/null
+++ b/meta-oe/recipes-connectivity/krb5/krb5/0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch
@@ -0,0 +1,40 @@
+From 0aa127afa52fd265a4f1bbded1623201390ae96a Mon Sep 17 00:00:00 2001
+From: Julien Rische <jrische@redhat.com>
+Date: Thu, 17 Nov 2022 15:01:24 +0100
+Subject: [PATCH] Fix aclocal.m4 syntax error for autoconf 2.72
+
+An incorrect closure inside KRB5_AC_INET6 is innocuous with autoconf
+versions up to 2.71, but will cause an error at configure time with
+the forthcoming autoconf 2.72.
+
+[ghudson@mit.edu: added more context to commit message]
+
+ticket: 9077 (new)
+tags: pullup
+target_version: 1.20-next
+target_version: 1.19-next
+
+Upstream-Status: Backport [https://github.com/krb5/krb5/commit/d864d740d019fdf2c640460f2aa2760c7fa4d5e9]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/aclocal.m4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/aclocal.m4 b/src/aclocal.m4
+index 9920476..3d66a87 100644
+--- a/src/aclocal.m4
++++ b/src/aclocal.m4
+@@ -409,8 +409,8 @@ else
+ [[struct sockaddr_in6 in;
+ AF_INET6;
+ IN6_IS_ADDR_LINKLOCAL(&in.sin6_addr);]])],
+- [krb5_cv_inet6=yes], [krb5_cv_inet6=no])])
+-fi
++ [krb5_cv_inet6=yes], [krb5_cv_inet6=no])
++fi])
+ AC_MSG_RESULT($krb5_cv_inet6)
+ if test "$krb5_cv_inet6" = no && test "$ac_cv_func_inet_ntop" = yes; then
+ AC_MSG_CHECKING(for IPv6 compile-time support with -DINET6)
+--
+2.40.0
+
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_1.16.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
deleted file mode 100644
index 6eedd2a22d..0000000000
--- a/meta-oe/recipes-connectivity/krb5/krb5_1.16.bb
+++ /dev/null
@@ -1,188 +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=59b8da652f07186b44782a8454574f30"
-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 \
-"
-SRC_URI[md5sum] = "23c5e9f07642db4a67f7a5b6168b1319"
-SRC_URI[sha256sum] = "faeb125f83b0fb4cdb2f99f088140631bb47d975982de0956d18c85842969e08"
-
-CVE_PRODUCT = "kerberos"
-
-S = "${WORKDIR}/${BP}/src"
-
-PACKAGECONFIG ??= ""
-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"
-
-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
-}
-
-PACKAGES =+ "${PN}-admin-server \
- ${PN}-gss-samples \
- ${PN}-k5tls \
- ${PN}-kdc \
- ${PN}-kdc-ldap \
- ${PN}-kpropd \
- ${PN}-otp \
- ${PN}-pkinit \
- ${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}-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.20.1.bb b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
new file mode 100644
index 0000000000..10fff11c25
--- /dev/null
+++ b/meta-oe/recipes-connectivity/krb5/krb5_1.20.1.bb
@@ -0,0 +1,202 @@
+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=1d31018dba5a0ef195eb426a1e61f02e"
+
+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://0001-Fix-aclocal.m4-syntax-error-for-autoconf-2.72.patch;striplevel=2 \
+ 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[md5sum] = "73f5780e7b587ccd8b8cfc10c965a686"
+SRC_URI[sha256sum] = "704aed49b19eb5a7178b34b2873620ec299db08752d6a8574f95d41879ab8851"
+
+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
+}
+
+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"
+
+inherit multilib_script
+MULTILIB_SCRIPTS = "${PN}-user:${bindir}/krb5-config"
diff --git a/meta-oe/recipes-connectivity/libev/libev_4.24.bb b/meta-oe/recipes-connectivity/libev/libev_4.24.bb
deleted file mode 100644
index a5838d3686..0000000000
--- a/meta-oe/recipes-connectivity/libev/libev_4.24.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A full-featured and high-performance event loop that is loosely \
-modelled after libevent."
-HOMEPAGE = "http://software.schmorp.de/pkg/libev.html"
-LICENSE = "BSD-2-Clause | GPL-2.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d6ad416afd040c90698edcdf1cbee347"
-
-SRC_URI = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "94459a5a22db041dec6f98424d6efe54"
-SRC_URI[sha256sum] = "973593d3479abdf657674a55afe5f78624b0e440614e2b8cb3a07f16d4d7f821"
-
-inherit autotools
-
-EXTRA_OECONF += "--with-pic"
-
-do_install_append() {
- # Avoid conflicting with libevent. The provided compatibility layer is
- # still basic so drop it for now.
- rm ${D}${includedir}/event.h
-}
diff --git a/meta-oe/recipes-connectivity/libev/libev_4.33.bb b/meta-oe/recipes-connectivity/libev/libev_4.33.bb
new file mode 100644
index 0000000000..346e78b1de
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libev/libev_4.33.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A full-featured and high-performance event loop that is loosely \
+modelled after libevent."
+HOMEPAGE = "http://software.schmorp.de/pkg/libev.html"
+LICENSE = "BSD-2-Clause | GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d6ad416afd040c90698edcdf1cbee347"
+
+SRC_URI = "http://dist.schmorp.de/libev/Attic/${BP}.tar.gz"
+SRC_URI[md5sum] = "a3433f23583167081bf4acdd5b01b34f"
+SRC_URI[sha256sum] = "507eb7b8d1015fbec5b935f34ebed15bf346bed04a11ab82b8eee848c4205aea"
+
+inherit autotools
+
+EXTRA_OECONF += "--with-pic"
+
+do_install:append() {
+ # Avoid conflicting with libevent. The provided compatibility layer is
+ # still basic so drop it for now.
+ rm ${D}${includedir}/event.h
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb b/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb
new file mode 100644
index 0000000000..b63aabdc0c
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libimobiledevice-glue/libimobiledevice-glue_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Library with common code used by the libraries and tools around the libimobiledevice project"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=6ab17b41640564434dda85c06b7124f7 \
+"
+
+HOMEPAGE = "http://www.libimobiledevice.org/"
+
+DEPENDS = "libplist"
+
+PV = "1.0.0+git${SRCPV}"
+
+SRCREV = "114098d30e783fbb3def5c9b49427a86621cfcb1"
+SRC_URI = "git://github.com/libimobiledevice/libimobiledevice-glue;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch b/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch
deleted file mode 100644
index 679a8b597a..0000000000
--- a/meta-oe/recipes-connectivity/libimobiledevice/files/configure-fix-largefile.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Fix configure error in large file checks on 64-bit architectures
-
- configure:17888: checking for native large file support
- configure:17891: error: in `/home/jenkins/oe/shr-core-branches/shr-core/tmp-eglibc/work/core2-64-oe-linux/libimobiledevice/1.1.4-r0/libimobiledevice-1.1.4':
- configure:17893: error: cannot run test program while cross compiling
-
-configure.ac was using AC_SYS_LARGEFILE macro as is typical, but then
-there was an extra runtime check added beyond that:
-check if off_t is 8 bytes (64 bits) long.
-If that runtime check passed, _FILE_OFFSET_BITS was defined as 64.
-
-Runtime checks need to go away for cross compiling, and luckily this extra
-check was not serving any useful purpose. Note that off_t was *already*
-64 bits, *without* setting _FILE_OFFSET_BITS, which makes _FILE_OFFSET_BITS
-unneeded for large file support.
-
-If AC_SYS_LARGEFILE macro sets ac_cv_sys_file_offset_bits=no,
-just leave _FILE_OFFSET_BITS undefined!
-
---- libimobiledevice-1.1.4/configure.ac.old 2015-07-15 01:38:50.900143927 -0700
-+++ libimobiledevice-1.1.4/configure.ac 2015-07-15 01:39:13.300144430 -0700
-@@ -174,16 +174,6 @@
- if test "$enable_largefile" != no; then
- if test "$ac_cv_sys_file_offset_bits" != 'no'; then
- LFS_CFLAGS="$LFS_CFLAGS -D_FILE_OFFSET_BITS=$ac_cv_sys_file_offset_bits"
-- else
-- AC_MSG_CHECKING(for native large file support)
-- AC_RUN_IFELSE([AC_LANG_SOURCE([#include <unistd.h>
-- int main (int argc, char **argv)
-- {
-- exit(!(sizeof(off_t) == 8));
-- }])],
-- [ac_cv_sys_file_offset_bits=64; AC_DEFINE(_FILE_OFFSET_BITS,64)
-- AC_MSG_RESULT(yes)],
-- [AC_MSG_RESULT(no)])
- fi
- if test "$ac_cv_sys_large_files" != 'no'; then
- LFS_CFLAGS="$LFS_CFLAGS -D_LARGE_FILES=1"
diff --git a/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch b/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch
deleted file mode 100644
index 9a7895fd41..0000000000
--- a/meta-oe/recipes-connectivity/libimobiledevice/files/inline-without-definition.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fix link error with gcc 5 toolchains
-
- afc.c:258: error: undefined reference to 'debug_buffer'
- collect2: error: ld returned 1 exit status
-
-debug.h header was declaring things inline without providing a definition.
-Files that included this header then failed to link against the corresponding
-external symbol in debug.c, because the linker took the 'inline' keyword
-seriously rather than ignoring it.
-
---- libimobiledevice-1.1.4/src/debug.h.orig 2015-10-03 16:24:08.758740386 -0700
-+++ libimobiledevice-1.1.4/src/debug.h 2015-10-03 16:24:22.706740355 -0700
-@@ -44,14 +44,14 @@
- #define debug_plist(a)
- #endif
-
--LIBIMOBILEDEVICE_INTERNAL inline void debug_info_real(const char *func,
-+LIBIMOBILEDEVICE_INTERNAL void debug_info_real(const char *func,
- const char *file,
- int line,
- const char *format, ...);
-
--LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer(const char *data, const int length);
--LIBIMOBILEDEVICE_INTERNAL inline void debug_buffer_to_file(const char *file, const char *data, const int length);
--LIBIMOBILEDEVICE_INTERNAL inline void debug_plist_real(const char *func,
-+LIBIMOBILEDEVICE_INTERNAL void debug_buffer(const char *data, const int length);
-+LIBIMOBILEDEVICE_INTERNAL void debug_buffer_to_file(const char *file, const char *data, const int length);
-+LIBIMOBILEDEVICE_INTERNAL void debug_plist_real(const char *func,
- const char *file,
- int line,
- plist_t plist);
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.1.4.bb b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb
deleted file mode 100644
index 32aca96fd0..0000000000
--- a/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_1.1.4.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "A protocol library to access an iPhone or iPod Touch in Linux"
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7 \
-"
-
-HOMEPAGE ="http://www.libimobiledevice.org/"
-
-DEPENDS = "libplist usbmuxd libtasn1 gnutls libgcrypt"
-
-SRC_URI = " \
- http://www.libimobiledevice.org/downloads/libimobiledevice-${PV}.tar.bz2 \
- file://configure-fix-largefile.patch \
- file://inline-without-definition.patch \
-"
-
-SRC_URI[md5sum] = "3f28cbc6a2e30d34685049c0abde5183"
-SRC_URI[sha256sum] = "67499cfaa6172f566ee6b0783605acffe484fb7ddc3b09881ab7ac58667ee5b8"
-
-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
new file mode 100644
index 0000000000..1a0590c57b
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libimobiledevice/libimobiledevice_git.bb
@@ -0,0 +1,22 @@
+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 libimobiledevice-glue openssl"
+
+PV = "1.3.0+git${SRCPV}"
+
+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
+
+EXTRA_OECONF = " --without-cython "
+
+CFLAGS += "-D_GNU_SOURCE"
diff --git a/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb b/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb
new file mode 100644
index 0000000000..2400195975
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libirecovery/libirecovery_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "The libirecovery library allows communication with iBoot/iBSS of iOS devices via USB"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=23c2a5e0106b99d75238986559bb5fc6 \
+"
+
+HOMEPAGE = "http://www.libimobiledevice.org/"
+
+DEPENDS = "libimobiledevice-glue libusb1 readline"
+
+PV = "1.1.0"
+
+SRCREV = "98c9f7055ec1f2e09fac69ef1413a8757113b838"
+SRC_URI = "git://github.com/libimobiledevice/libirecovery;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch b/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch
deleted file mode 100644
index 92e657c00a..0000000000
--- a/meta-oe/recipes-connectivity/libmbim/libmbim/clang.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-Check for clang compiler since we need to disable
-unused-function warning for clang, at same time
-pass werror when checking for compiler options if
-werror is enabled so spurious options do not get
-enabled. Only the ones that are supported by given
-compiler are accepted.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: libmbim-1.14.0/m4/compiler-warnings.m4
-===================================================================
---- libmbim-1.14.0.orig/m4/compiler-warnings.m4
-+++ libmbim-1.14.0/m4/compiler-warnings.m4
-@@ -2,10 +2,30 @@ AC_DEFUN([LIBMBIM_COMPILER_WARNINGS],
- [AC_ARG_ENABLE(more-warnings,
- AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]),
- set_more_warnings="$enableval",set_more_warnings=error)
-+
-+# Clang throws a lot of warnings when it does not understand a flag. Disable
-+# this warning for now so other warnings are visible.
-+AC_MSG_CHECKING([if compiling with clang])
-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
-+#ifndef __clang__
-+ not clang
-+#endif
-+ ]])],
-+ [CLANG=yes],
-+ [CLANG=no]
-+)
-+AC_MSG_RESULT([$CLANG])
-+AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function])
-+CFLAGS="$CFLAGS $CLANG_FLAGS"
-+LDFLAGS="$LDFLAGS $CLANG_FLAGS"
-+
- AC_MSG_CHECKING(for more warnings)
- if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
- AC_MSG_RESULT(yes)
- CFLAGS="-Wall -std=gnu89 $CFLAGS"
-+ if test "x$set_more_warnings" = xerror; then
-+ WERROR="-Werror"
-+ fi
-
- for option in -Wmissing-declarations -Wmissing-prototypes \
- -Wdeclaration-after-statement -Wstrict-prototypes \
-@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_war
- -Wmissing-include-dirs -Waggregate-return \
- -Wformat-security; do
- SAVE_CFLAGS="$CFLAGS"
-- CFLAGS="$CFLAGS $option"
-+ CFLAGS="$CFLAGS $option $WERROR"
- AC_MSG_CHECKING([whether gcc understands $option])
- AC_TRY_COMPILE([], [],
- has_option=yes,
- has_option=no,)
- if test $has_option = no; then
- CFLAGS="$SAVE_CFLAGS"
-+ else
-+ CFLAGS="$SAVE_CFLAGS $option"
- fi
- AC_MSG_RESULT($has_option)
- unset has_option
- unset SAVE_CFLAGS
- done
-+ CFLAGS="$CFLAGS $WERROR"
- unset option
-- if test "x$set_more_warnings" = xerror; then
-- CFLAGS="$CFLAGS -Werror"
-- fi
-+ unset WERROR
- else
- AC_MSG_RESULT(no)
- fi
diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb
deleted file mode 100644
index 5260c0f14e..0000000000
--- a/meta-oe/recipes-connectivity/libmbim/libmbim_1.16.0.bb
+++ /dev/null
@@ -1,18 +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 = "GPLv2 & LGPLv2.1"
-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
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
- file://clang.patch \
-"
-SRC_URI[md5sum] = "76ea4d8381989919b1d9b91c818fed80"
-SRC_URI[sha256sum] = "c8ca50beeddd4b43309df5b698917268303bf176cea58fe4fe53d5bf0e93fac2"
diff --git a/meta-oe/recipes-connectivity/libmbim/libmbim_1.28.4.bb b/meta-oe/recipes-connectivity/libmbim/libmbim_1.28.4.bb
new file mode 100644
index 0000000000..a35d9898ec
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libmbim/libmbim_1.28.4.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
+
+SRCREV = "7f1c7907c4654ba5c619a635cef5475ca161d027"
+SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libmbim.git;protocol=https;branch=mbim-1-28"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMESON = " \
+ -Dgtk_doc=false \
+ -Dman=false \
+"
diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules b/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules
deleted file mode 100644
index 4cd27c762c..0000000000
--- a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/69-libmtp.rules
+++ /dev/null
@@ -1,999 +0,0 @@
-# UDEV-style hotplug map for libmtp
-# Put this file in /etc/udev/rules.d
-
-ACTION!="add", GOTO="libmtp_rules_end"
-ENV{MAJOR}!="?*", GOTO="libmtp_rules_end"
-SUBSYSTEM=="usb", GOTO="libmtp_usb_rules"
-GOTO="libmtp_rules_end"
-
-LABEL="libmtp_usb_rules"
-
-# Some sensitive devices we surely don't wanna probe
-# Color instruments
-ATTR{idVendor}=="0670", GOTO="libmtp_rules_end"
-ATTR{idVendor}=="0765", GOTO="libmtp_rules_end"
-ATTR{idVendor}=="085c", GOTO="libmtp_rules_end"
-ATTR{idVendor}=="0971", GOTO="libmtp_rules_end"
-# Canon scanners that look like MTP devices (PID 0x22nn)
-ATTR{idVendor}=="04a9", ATTR{idProduct}=="22*", GOTO="libmtp_rules_end"
-# Canon digital camera (EOS 3D) that looks like MTP device (PID 0x3113)
-ATTR{idVendor}=="04a9", ATTR{idProduct}=="3113", GOTO="libmtp_rules_end"
-# Sensitive Atheros devices that look like MTP devices
-ATTR{idVendor}=="0cf3", GOTO="libmtp_rules_end"
-# Sensitive Atmel JTAG programmers
-ATTR{idVendor}=="03eb", GOTO="libmtp_rules_end"
-# Creative ZEN Vision
-ATTR{idVendor}=="041e", ATTR{idProduct}=="411f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative Portable Media Center
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4123", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Xtra (MTP mode)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4128", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Dell DJ (2nd generation)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="412f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Micro (MTP mode)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4130", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Touch (MTP mode)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4131", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Dell Dell Pocket DJ (MTP mode)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN MicroPhoto (alternate version)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4133", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Sleek (MTP mode)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4137", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN MicroPhoto
-ATTR{idVendor}=="041e", ATTR{idProduct}=="413c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Sleek Photo
-ATTR{idVendor}=="041e", ATTR{idProduct}=="413d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Vision:M
-ATTR{idVendor}=="041e", ATTR{idProduct}=="413e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN V
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4150", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Vision:M (DVP-HD0004)
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4151", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN V Plus
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4152", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Vision W
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4153", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4157", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN V 2GB
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4158", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN Mozaic
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN X-Fi
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4162", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Creative ZEN X-Fi 3
-ATTR{idVendor}=="041e", ATTR{idProduct}=="4169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# ZiiLABS Zii EGG
-ATTR{idVendor}=="041e", ATTR{idProduct}=="6000", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-900
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="0409", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung I550W Phone
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="04a4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung Jet S8000
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="4f1f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YH-920 (501d)
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="501d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YH-920 (5022)
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5022", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YH-925GS
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5024", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YH-820
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="502e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YH-925(-GS)
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="502f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YH-J70J
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5033", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-Z5
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="503c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-T7J
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5047", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-U2J (YP-U2JXB/XAA)
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5054", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-F2J
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5057", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-K5
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="505a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-U3
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="507d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-T9
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="507f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-K3
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5081", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-P2
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5083", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-T10
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="508a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-S5
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="508b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-S3
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5091", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-U4
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5093", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-R1
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="510f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-Q1
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5115", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-M1
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5118", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-P3
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="511a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-Q2
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="511d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-U5
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5121", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-R0
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5125", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-Q3
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5130", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YP-Z3
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5137", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="5a0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung M7600 Beat/GT-S8300T/SGH-F490/S8300
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6642", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung X830 Mobile Phone
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6702", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung U600 Mobile Phone
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6709", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung F250 Mobile Phone
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6727", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung Juke (SCH-U470)
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6734", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung GT-B2700
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6752", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung SAMSUNG Trance
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6763", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung GT-S8500
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6819", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung Galaxy models (MTP+ADB)
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung Galaxy Y
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="685e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung Galaxy models (MTP)
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung Galaxy models Kies mode
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="6877", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung Vibrant SGH-T959/Captivate/Media player mode
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="68a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung GT-B2710/Xcover 271
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="68af", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Samsung GT-S5230
-ATTR{idVendor}=="04e8", ATTR{idProduct}=="e20c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Microsoft/Intel Bandon Portable Media Center
-ATTR{idVendor}=="045e", ATTR{idProduct}=="00c9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Microsoft Windows Phone
-ATTR{idVendor}=="045e", ATTR{idProduct}=="04ec", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Microsoft Windows MTP Simulator
-ATTR{idVendor}=="045e", ATTR{idProduct}=="0622", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Microsoft Zune HD
-ATTR{idVendor}=="045e", ATTR{idProduct}=="063e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Microsoft Kin 1
-ATTR{idVendor}=="045e", ATTR{idProduct}=="0640", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Microsoft/Sharp/nVidia Kin TwoM
-ATTR{idVendor}=="045e", ATTR{idProduct}=="0641", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Microsoft Zune
-ATTR{idVendor}=="045e", ATTR{idProduct}=="0710", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# JVC Alneo XA-HD500
-ATTR{idVendor}=="04f1", ATTR{idProduct}=="6105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips HDD6320/00 or HDD6330/17
-ATTR{idVendor}=="0471", ATTR{idProduct}=="014b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips HDD14XX,HDD1620 or HDD1630/17
-ATTR{idVendor}=="0471", ATTR{idProduct}=="014c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips HDD085/00 or HDD082/17
-ATTR{idVendor}=="0471", ATTR{idProduct}=="014d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear SA9200
-ATTR{idVendor}=="0471", ATTR{idProduct}=="014f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips SA1115/55
-ATTR{idVendor}=="0471", ATTR{idProduct}=="0164", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear Audio
-ATTR{idVendor}=="0471", ATTR{idProduct}=="0165", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips Shoqbox
-ATTR{idVendor}=="0471", ATTR{idProduct}=="0172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips PSA610
-ATTR{idVendor}=="0471", ATTR{idProduct}=="0181", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips HDD6320
-ATTR{idVendor}=="0471", ATTR{idProduct}=="01eb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045
-ATTR{idVendor}=="0471", ATTR{idProduct}=="084e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear SA5145
-ATTR{idVendor}=="0471", ATTR{idProduct}=="0857", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear SA6125/SA6145/SA6185
-ATTR{idVendor}=="0471", ATTR{idProduct}=="2002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear SA3345
-ATTR{idVendor}=="0471", ATTR{idProduct}=="2004", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips SA5285
-ATTR{idVendor}=="0471", ATTR{idProduct}=="2022", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear ViBE SA1VBE04
-ATTR{idVendor}=="0471", ATTR{idProduct}=="2075", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear Muse
-ATTR{idVendor}=="0471", ATTR{idProduct}=="2077", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear ViBE SA1VBE04/08
-ATTR{idVendor}=="0471", ATTR{idProduct}=="207b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear Aria
-ATTR{idVendor}=="0471", ATTR{idProduct}=="207c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear SA1VBE08KX/78
-ATTR{idVendor}=="0471", ATTR{idProduct}=="208e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear VIBE SA2VBE[08|16]K/02
-ATTR{idVendor}=="0471", ATTR{idProduct}=="20b7", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear Ariaz
-ATTR{idVendor}=="0471", ATTR{idProduct}=="20b9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips GoGear Vibe/02
-ATTR{idVendor}=="0471", ATTR{idProduct}=="20e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Philips PSA235
-ATTR{idVendor}=="0471", ATTR{idProduct}=="7e01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A500 (ID1)
-ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A500 (ID2)
-ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A501
-ATTR{idVendor}=="0502", ATTR{idProduct}=="3344", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A100 (ID1)
-ATTR{idVendor}=="0502", ATTR{idProduct}=="3348", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A100 (ID2)
-ATTR{idVendor}=="0502", ATTR{idProduct}=="3349", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A700
-ATTR{idVendor}=="0502", ATTR{idProduct}=="3378", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A200 (ID1)
-ATTR{idVendor}=="0502", ATTR{idProduct}=="337c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A200 (ID2)
-ATTR{idVendor}=="0502", ATTR{idProduct}=="337d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer Iconia TAB A510
-ATTR{idVendor}=="0502", ATTR{idProduct}=="338a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Acer E350 Liquid Gallant Duo
-ATTR{idVendor}=="0502", ATTR{idProduct}=="33c3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa m230/m240
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7400", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa m200-tcc (MTP mode)
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7401", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa c150
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7410", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa e200/e250/e260/e270/e280
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7420", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa e260/e280 v2
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7422", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa m240/m250
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7430", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Clip
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7432", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Clip v2
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7434", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa c240/c250
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7450", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa c250 v2
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7452", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Express
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7460", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Connect
-ATTR{idVendor}=="0781", ATTR{idProduct}=="7480", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa View
-ATTR{idVendor}=="0781", ATTR{idProduct}=="74b0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Fuze
-ATTR{idVendor}=="0781", ATTR{idProduct}=="74c0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Fuze v2
-ATTR{idVendor}=="0781", ATTR{idProduct}=="74c2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Clip+
-ATTR{idVendor}=="0781", ATTR{idProduct}=="74d0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Fuze+
-ATTR{idVendor}=="0781", ATTR{idProduct}=="74e0", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SanDisk Sansa Clip Zip
-ATTR{idVendor}=="0781", ATTR{idProduct}=="74e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver H300 Series MTP
-ATTR{idVendor}=="1006", ATTR{idProduct}=="3004", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver Portable Media Center
-ATTR{idVendor}=="1006", ATTR{idProduct}=="4002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver Portable Media Center
-ATTR{idVendor}=="1006", ATTR{idProduct}=="4003", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T7 Volcano
-ATTR{idVendor}=="1042", ATTR{idProduct}=="1143", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver iFP-880
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1008", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T10
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1113", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T20 FM
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1114", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T20
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1115", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver U10
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1116", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T10a
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1117", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T20
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1118", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T30
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1119", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T10 2GB
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1120", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver N12
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1122", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver Clix2
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1126", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver Clix
-ATTR{idVendor}=="4102", ATTR{idProduct}=="112a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver X20
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T60
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1134", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver E100
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1141", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver E100 v2/Lplayer
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1142", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver Spinn
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1147", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver E50
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1151", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver T5
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1153", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver E30
-ATTR{idVendor}=="4102", ATTR{idProduct}=="1167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver H10 20GB
-ATTR{idVendor}=="4102", ATTR{idProduct}=="2101", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver H10 5GB
-ATTR{idVendor}=="4102", ATTR{idProduct}=="2102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# iRiver H10 5.6GB
-ATTR{idVendor}=="4102", ATTR{idProduct}=="2105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Dell, Inc DJ Itty
-ATTR{idVendor}=="413c", ATTR{idProduct}=="4500", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Dell, Inc Dell Streak 7
-ATTR{idVendor}=="413c", ATTR{idProduct}=="b10b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat MEGF-40
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0009", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat
-ATTR{idVendor}=="0930", ATTR{idProduct}=="000c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat P20
-ATTR{idVendor}=="0930", ATTR{idProduct}=="000f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat S
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat P10
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0011", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat V30
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0014", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat U
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0016", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat MEU202
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0018", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat T
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0019", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat MEU201
-ATTR{idVendor}=="0930", ATTR{idProduct}=="001a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Gigabeat MET401
-ATTR{idVendor}=="0930", ATTR{idProduct}=="001d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Excite AT300
-ATTR{idVendor}=="0930", ATTR{idProduct}=="0963", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Toshiba Thrive AT100/AT105
-ATTR{idVendor}=="0930", ATTR{idProduct}=="7100", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos Gmini XS100
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1207", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos XS202 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1208", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 104 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="120a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 204 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="120c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 404 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1301", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 404CAM (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1303", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 504 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1307", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 604 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1309", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 604WIFI (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="130b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 704 mobile dvr
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="130d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 704TV (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="130f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 405 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1311", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 605 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1313", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 605F (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1315", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 705 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1319", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos TV+ (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="131b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 105 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="131d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 405HDD (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1321", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 5 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1331", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 5 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1333", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 7 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1335", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos SPOD (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1341", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 5S IT (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1351", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 5H IT (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1357", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos Arnova Childpad
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1458", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 8o G9 (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1508", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 8o G9 Turbo (MTP mode)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1509", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 80G9
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1518", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 101 G9
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1528", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 101 G9 (v2)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1529", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 101 G9 Turbo 250 HD
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1538", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 101 G9 Turbo
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1539", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 70it2 (mode 1)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1568", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Archos 70it2 (mode 2)
-ATTR{idVendor}=="0e79", ATTR{idProduct}=="1569", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Dunlop MP3 player 1GB / EGOMAN MD223AFD
-ATTR{idVendor}=="10d6", ATTR{idProduct}=="2200", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Memorex or iRiver MMP 8585/8586 or iRiver E200
-ATTR{idVendor}=="10d6", ATTR{idProduct}=="2300", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sirius Stiletto
-ATTR{idVendor}=="18f6", ATTR{idProduct}=="0102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sirius Stiletto 2
-ATTR{idVendor}=="18f6", ATTR{idProduct}=="0110", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Canon Ixus Digital 700 (PTP/MTP mode)
-ATTR{idVendor}=="04a9", ATTR{idProduct}=="30f2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Canon PowerShot A640 (PTP/MTP mode)
-ATTR{idVendor}=="04a9", ATTR{idProduct}=="3139", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Canon PowerShot SX20IS (PTP/MTP mode)
-ATTR{idVendor}=="04a9", ATTR{idProduct}=="31e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N81 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="000a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 6120c Classic Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="002e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N96 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0039", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 6500c Classic Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="003c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 3110c Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="005f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 3109c Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0065", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5310 XpressMusic
-ATTR{idVendor}=="0421", ATTR{idProduct}=="006c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N95 Mobile Phone 8GB
-ATTR{idVendor}=="0421", ATTR{idProduct}=="006e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N82 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0074", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N78 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0079", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 6220 Classic
-ATTR{idVendor}=="0421", ATTR{idProduct}=="008d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N85 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0092", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 6210 Navigator
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0098", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E71
-ATTR{idVendor}=="0421", ATTR{idProduct}=="00e4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E66
-ATTR{idVendor}=="0421", ATTR{idProduct}=="00e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5320 XpressMusic
-ATTR{idVendor}=="0421", ATTR{idProduct}=="00ea", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5800 XpressMusic
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0154", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5800 XpressMusic v2
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0155", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5800 XpressMusic v3
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0159", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E63
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0179", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N79
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0186", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E71x
-ATTR{idVendor}=="0421", ATTR{idProduct}=="01a1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E52
-ATTR{idVendor}=="0421", ATTR{idProduct}=="01cf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 3710
-ATTR{idVendor}=="0421", ATTR{idProduct}=="01ee", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N97-1
-ATTR{idVendor}=="0421", ATTR{idProduct}=="01f4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N97
-ATTR{idVendor}=="0421", ATTR{idProduct}=="01f5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5130 XpressMusic
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0209", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E72
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0221", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5530
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0229", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N97 mini
-ATTR{idVendor}=="0421", ATTR{idProduct}=="026b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia X6
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0274", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 6600i
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0297", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 2710
-ATTR{idVendor}=="0421", ATTR{idProduct}=="02c1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5230
-ATTR{idVendor}=="0421", ATTR{idProduct}=="02e2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N8
-ATTR{idVendor}=="0421", ATTR{idProduct}=="02fe", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N8 (Ovi mode)
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0302", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E7
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0334", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia E7 (Ovi mode)
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0335", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia C7
-ATTR{idVendor}=="0421", ATTR{idProduct}=="03c1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia C7 (ID2)
-ATTR{idVendor}=="0421", ATTR{idProduct}=="03cd", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N950
-ATTR{idVendor}=="0421", ATTR{idProduct}=="03d2", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 3250 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0462", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N93 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0478", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5500 Sport Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="047e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N91 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="0485", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5700 XpressMusic Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04b4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5300 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04ba", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5200 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04be", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N73 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04d1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N75 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04e1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N93i Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04e5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N95 Mobile Phone
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04ef", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N80 Internet Edition (Media Player)
-ATTR{idVendor}=="0421", ATTR{idProduct}=="04f1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia N9
-ATTR{idVendor}=="0421", ATTR{idProduct}=="051a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia 5530 Xpressmusic
-ATTR{idVendor}=="05c6", ATTR{idProduct}=="0229", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nokia/Verizon 6205 Balboa/Verizon Music Phone
-ATTR{idVendor}=="05c6", ATTR{idProduct}=="3196", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Logik LOG DAX MP3 and DAB Player
-ATTR{idVendor}=="13d1", ATTR{idProduct}=="7002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Technika MP-709
-ATTR{idVendor}=="13d1", ATTR{idProduct}=="7017", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Thomson EM28 Series
-ATTR{idVendor}=="069b", ATTR{idProduct}=="0774", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Thomson / RCA Opal / Lyra MC4002
-ATTR{idVendor}=="069b", ATTR{idProduct}=="0777", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Thomson Lyra MC5104B (M51 Series)
-ATTR{idVendor}=="069b", ATTR{idProduct}=="077c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Thomson RCA H106
-ATTR{idVendor}=="069b", ATTR{idProduct}=="301a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Thomson scenium E308
-ATTR{idVendor}=="069b", ATTR{idProduct}=="3028", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Thomson / RCA Lyra HC308A
-ATTR{idVendor}=="069b", ATTR{idProduct}=="3035", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# FOMA F903iX HIGH-SPEED
-ATTR{idVendor}=="04c5", ATTR{idProduct}=="1140", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# NormSoft, Inc. Pocket Tunes
-ATTR{idVendor}=="1703", ATTR{idProduct}=="0001", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# NormSoft, Inc. Pocket Tunes 4
-ATTR{idVendor}=="1703", ATTR{idProduct}=="0002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# TrekStor Vibez 8/12GB
-ATTR{idVendor}=="066f", ATTR{idProduct}=="842a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Medion MD8333
-ATTR{idVendor}=="066f", ATTR{idProduct}=="8550", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Medion MD8333
-ATTR{idVendor}=="066f", ATTR{idProduct}=="8588", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Medion MD99000 (P9514)/Olivetti Olipad 110
-ATTR{idVendor}=="0408", ATTR{idProduct}=="b009", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Medion Lifetab P9514
-ATTR{idVendor}=="0408", ATTR{idProduct}=="b00a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Maxfield G-Flash NG 1GB
-ATTR{idVendor}=="066f", ATTR{idProduct}=="846c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SigmaTel Inc. MTPMSCN Audio Player
-ATTR{idVendor}=="066f", ATTR{idProduct}=="a010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# TrekStor i.Beat Sweez FM
-ATTR{idVendor}=="0402", ATTR{idProduct}=="0611", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# TrekStor i.Beat Organix 2.0
-ATTR{idVendor}=="1e68", ATTR{idProduct}=="0002", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Disney MixMax
-ATTR{idVendor}=="0aa6", ATTR{idProduct}=="6021", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Tevion MD 81488
-ATTR{idVendor}=="0aa6", ATTR{idProduct}=="3011", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# MyMusix PD-6070
-ATTR{idVendor}=="0aa6", ATTR{idProduct}=="9601", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio U3 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0701", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio 6 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0711", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio 7 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0751", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio U5 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0761", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio D2 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0801", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio D2+ FW 2.x (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0861", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio D2+ DAB FW 4.x (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0871", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio D2+ FW 3.x (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0881", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio D2+ DMB FW 1.x (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0891", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio S9 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0901", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio 9 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0911", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio J3 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0921", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio X7 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0931", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio C2 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0941", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Cowon iAudio 10 (MTP mode)
-ATTR{idVendor}=="0e21", ATTR{idProduct}=="0952", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Insignia NS-DV45
-ATTR{idVendor}=="19ff", ATTR{idProduct}=="0303", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Insignia Sport Player
-ATTR{idVendor}=="19ff", ATTR{idProduct}=="0307", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Insignia Pilot 4GB
-ATTR{idVendor}=="19ff", ATTR{idProduct}=="0309", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. T54
-ATTR{idVendor}=="043e", ATTR{idProduct}=="7040", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. UP3
-ATTR{idVendor}=="043e", ATTR{idProduct}=="70b1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. VX8550 V CAST Mobile Phone
-ATTR{idVendor}=="1004", ATTR{idProduct}=="6010", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. KC910 Renoir Mobile Phone
-ATTR{idVendor}=="1004", ATTR{idProduct}=="608f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. GR-500 Music Player
-ATTR{idVendor}=="1004", ATTR{idProduct}=="611b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. KM900
-ATTR{idVendor}=="1004", ATTR{idProduct}=="6132", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. LG8575
-ATTR{idVendor}=="1004", ATTR{idProduct}=="619a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. V909 G-Slate
-ATTR{idVendor}=="1004", ATTR{idProduct}=="61f9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# LG Electronics Inc. LG-E617G/P700
-ATTR{idVendor}=="1004", ATTR{idProduct}=="631c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-A815/NWZ-A818
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0325", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-S516
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0326", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-S615F/NWZ-S616F/NWZ-S618F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0327", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-S716F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="035a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-A826/NWZ-A828/NWZ-A829
-ATTR{idVendor}=="054c", ATTR{idProduct}=="035b", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-A726/NWZ-A728/NWZ-A768
-ATTR{idVendor}=="054c", ATTR{idProduct}=="035c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-B135
-ATTR{idVendor}=="054c", ATTR{idProduct}=="036e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-E436F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0385", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-W202
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0388", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-S739F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="038c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-S638F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="038e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-X1050B/NWZ-X1060B
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0397", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-X1051/NWZ-X1061
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0398", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-B142F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="03d8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-E344
-ATTR{idVendor}=="054c", ATTR{idProduct}=="03fc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-E445
-ATTR{idVendor}=="054c", ATTR{idProduct}=="03fd", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-S545
-ATTR{idVendor}=="054c", ATTR{idProduct}=="03fe", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-A845
-ATTR{idVendor}=="054c", ATTR{idProduct}=="0404", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-W252B
-ATTR{idVendor}=="054c", ATTR{idProduct}=="04bb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-B153F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="04be", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-E354
-ATTR{idVendor}=="054c", ATTR{idProduct}=="04cb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-S754
-ATTR{idVendor}=="054c", ATTR{idProduct}=="04cc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony NWZ-B163F
-ATTR{idVendor}=="054c", ATTR{idProduct}=="059a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Walkman NWZ-E464
-ATTR{idVendor}=="054c", ATTR{idProduct}=="05a6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony NWZ-S765
-ATTR{idVendor}=="054c", ATTR{idProduct}=="05a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Sony Tablet S
-ATTR{idVendor}=="054c", ATTR{idProduct}=="05b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony Sony Tablet S1
-ATTR{idVendor}=="054c", ATTR{idProduct}=="05b4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Sony DCR-SR75
-ATTR{idVendor}=="054c", ATTR{idProduct}=="1294", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson K850i
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0075", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W910
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0076", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W890i
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W760i
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00c6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson C902
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00d4", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson C702
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00d9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W980
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00da", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson C905
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00ef", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W595
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00f3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W902
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00f5", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson T700
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="00fb", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W705/W715
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0105", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W995
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0112", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson U5
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0133", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson U8i
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="013a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson j10i2 (Elm)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0144", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson j108i (Cedar)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="014e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson W302
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="10c8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson j10i (Elm)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="d144", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson K550i
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="e000", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson LT15i (Xperia arc S)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="014f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson MT11i Xperia Neo
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0156", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson MK16i Xperia
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="015a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson ST18a Xperia Ray
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson SK17i Xperia Mini Pro
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0166", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson ST15i Xperia Mini
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson ST17i Xperia Active
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT26i Xperia S
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY WT19i Live Walkman
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="016d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY ST21i Xperia Tipo
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY ST15i Xperia U
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT22i Xperia P
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT26w Xperia Acro S
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="0176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson ST17i Xperia Active (MTP+UMS mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="4168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT26i Xperia S (MTP+UMS mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="4169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY ST21i Xperia Tipo (MTP+UMS mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="4170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY ST25i Xperia U (MTP+UMS mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="4171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT22i Xperia P (MTP+UMS mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="4172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT26w Xperia Acro S (MTP+UMS mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="4176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson LT15i Xperia Arc (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="514f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson MT11i Xperia Neo (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5156", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson ST17i Xperia Active (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5168", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT26i Xperia S (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5169", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson MK16i Xperia (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="515a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson ST18i Xperia Ray (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5161", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson SK17i Xperia Mini Pro (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5166", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson ST15i Xperia Mini (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5167", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SonyEricsson SK17i Xperia Mini Pro (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="516d", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY ST21i Xperia Tipo (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5170", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY ST25i Xperia U (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5171", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT22i Xperia P (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5172", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY LT26w Xperia Acro S (MTP+ADB mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="5176", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY MT27i Xperia Sola (MTP+UMS+? mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="a173", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# SONY ST27i Xperia Go (MTP+UMS+? mode)
-ATTR{idVendor}=="0fce", ATTR{idProduct}=="a17e", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola V3m/V750 verizon
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="2a65", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Xoom 2 Media Edition (ID2)
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="41cf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Droid X/MB525 (Defy)
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="41d6", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Milestone / Verizon Droid
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="41dc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola DROID2
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="42a7", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Xoom 2 Media Edition
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="4311", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola XT912/XT928
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="4362", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola DROID4
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="437f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola IdeaPad K1
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="4811", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola A1200
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="60ca", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola MTP Test Command Interface
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="6413", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola RAZR2 V8/U9/Z6
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="6415", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Xoom (Factory test)
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Xoom (MTP)
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Xoom (MTP+ADB)
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Motorola Milestone X2
-ATTR{idVendor}=="22b8", ATTR{idProduct}=="70ca", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Sony) S1
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="05b3", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Barnes & Noble) Nook Color
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="2d02", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Asus) TF101 Transformer
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Samsung) Nexus S
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e21", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Asus) Nexus 7 (MTP)
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Asus) Nexus 7 (MTP+ADB)
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Motorola) Xoom (MZ604)
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="70a8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Toshiba) Thrive 7/AT105
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="7102", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Lenovo) Ideapad K1
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="740a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for Medion) MD99000 (P9514)
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="b00a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for LG Electronics) P990/Optimus (Cyanogen)
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="d109", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Google Inc (for LG Electronics) P990/Optimus
-ATTR{idVendor}=="18d1", ATTR{idProduct}=="d10a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Kenwood Media Keg HD10GB7 Sport Player
-ATTR{idVendor}=="0b28", ATTR{idProduct}=="100c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Micro-Star International P610/Model MS-5557
-ATTR{idVendor}=="0db0", ATTR{idProduct}=="5572", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# FOMA D905i
-ATTR{idVendor}=="06d3", ATTR{idProduct}=="21ba", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Haier Ibiza Rhapsody
-ATTR{idVendor}=="1302", ATTR{idProduct}=="1016", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Haier Ibiza Rhapsody
-ATTR{idVendor}=="1302", ATTR{idProduct}=="1017", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Panasonic P905i
-ATTR{idVendor}=="04da", ATTR{idProduct}=="2145", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Panasonic P906i
-ATTR{idVendor}=="04da", ATTR{idProduct}=="2158", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Polaroid Freescape/MPU-433158
-ATTR{idVendor}=="0546", ATTR{idProduct}=="2035", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Pioneer XMP3
-ATTR{idVendor}=="08e4", ATTR{idProduct}=="0148", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Slacker Inc. Slacker Portable Media Player
-ATTR{idVendor}=="1bdc", ATTR{idProduct}=="fabf", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Conceptronic CMTD2
-ATTR{idVendor}=="1e53", ATTR{idProduct}=="0005", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# O2 Sistemas ZoltarTV
-ATTR{idVendor}=="1e53", ATTR{idProduct}=="0006", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Wyplay Wyplayer
-ATTR{idVendor}=="1e53", ATTR{idProduct}=="0007", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Perception Digital, Ltd Gigaware GX400
-ATTR{idVendor}=="0aa6", ATTR{idProduct}=="9702", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# RIM BlackBerry Storm/9650
-ATTR{idVendor}=="0fca", ATTR{idProduct}=="8007", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Nextar MA715A-8R
-ATTR{idVendor}=="0402", ATTR{idProduct}=="5668", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Coby COBY MP705
-ATTR{idVendor}=="1e74", ATTR{idProduct}=="6512", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple iPhone
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1290", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple iPod Touch 1st Gen
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1291", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple iPhone 3G
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1292", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple iPod Touch 2nd Gen
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1293", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple iPhone 3GS
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1294", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple 0x1296
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1296", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple 0x1297
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1297", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple 0x1298
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1298", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple iPod Touch 3rd Gen
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="1299", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Apple iPad
-ATTR{idVendor}=="05ac", ATTR{idProduct}=="129a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Curitel Communications, Inc. Verizon Wireless Device
-ATTR{idVendor}=="106c", ATTR{idProduct}=="3215", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Pantech Crux
-ATTR{idVendor}=="106c", ATTR{idProduct}=="f003", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF300 Transformer
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c80", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF300 Transformer (USB debug mode)
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c81", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF700 Transformer
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4c90", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF201 Transformer Prime (keyboard dock)
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d00", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF201 Transformer Prime (tablet only)
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TFXXX Transformer Prime (unknown version)
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4d04", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF101 Eeepad Slider
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e01", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF101 Eeepad Transformer
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e0f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Asus TF101 Eeepad Transformer (debug mode)
-ATTR{idVendor}=="0b05", ATTR{idProduct}=="4e1f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Lenovo K1
-ATTR{idVendor}=="17ef", ATTR{idProduct}=="740a", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Lenovo ThinkPad Tablet
-ATTR{idVendor}=="17ef", ATTR{idProduct}=="741c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Lenovo P700
-ATTR{idVendor}=="17ef", ATTR{idProduct}=="7497", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Lenovo Lifetab S9512
-ATTR{idVendor}=="17ef", ATTR{idProduct}=="74cc", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Huawei Honor U8860
-ATTR{idVendor}=="12d1", ATTR{idProduct}=="1051", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Huawei Mediapad (mode 0)
-ATTR{idVendor}=="12d1", ATTR{idProduct}=="360f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Huawei Mediapad (mode 1)
-ATTR{idVendor}=="12d1", ATTR{idProduct}=="361f", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# ZTE V55 ID 1
-ATTR{idVendor}=="19d2", ATTR{idProduct}=="0244", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# ZTE V55 ID 2
-ATTR{idVendor}=="19d2", ATTR{idProduct}=="0245", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# HTC Zopo ZP100 (ID1)
-ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c02", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# HTC EVO 4G LTE
-ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0c93", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# HTC EVO 4G LTE (second ID)
-ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0ca8", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Hewlett-Packard HP Touchpad
-ATTR{idVendor}=="0bb4", ATTR{idProduct}=="685c", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Hewlett-Packard HP Touchpad (debug mode)
-ATTR{idVendor}=="0bb4", ATTR{idProduct}=="6860", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# HTC Zopo ZP100 (ID2)
-ATTR{idVendor}=="0bb4", ATTR{idProduct}=="2008", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# NEC FOMA N01A
-ATTR{idVendor}=="0409", ATTR{idProduct}=="0242", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# nVidia CM9-Adam
-ATTR{idVendor}=="0955", ATTR{idProduct}=="70a9", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Vizio VTAB1008
-ATTR{idVendor}=="0489", ATTR{idProduct}=="e040", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Various Viewpia DR/bq Kepler
-ATTR{idVendor}=="2207", ATTR{idProduct}=="0001", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-# Isabella Her Prototype
-ATTR{idVendor}=="0b20", ATTR{idProduct}=="ddee", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-
-# Autoprobe vendor-specific, communication and PTP devices
-ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
-
-LABEL="libmtp_rules_end"
diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch b/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch
deleted file mode 100644
index 38b45c2a93..0000000000
--- a/meta-oe/recipes-connectivity/libmtp/libmtp-1.1.5/glibc-2.20.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-
-Include config.h so we get the defines available for subsequent
-include files
-
-Fixes errors like
-
-| In file included from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/sysroots/beaglebone/usr/include/string.h:634:0,
-| from /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.c:36:
-| /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.h:29:7: error: expected identifier or '(' before '__extension
-__'
-| char *strndup (const char *s, size_t n);
-| ^
-| /home/ubuntu/work/upstream/openembedded-core/build/tmp-glibc/work/cortexa8t2hf-vfp-neon-oe-linux-gnueabi/libmtp/1.1.5-r0/libmtp-1.1.5/src/util.c:111:7: error: expected identifier or '(' before '__extensio
-n__'
-| char *strndup (const char *s, size_t n)
-| ^
-| make[2]: *** [libmtp_la-util.lo] Error 1
-
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Upstream-Status: Pending
-
-Index: libmtp-1.1.5/src/util.c
-===================================================================
---- libmtp-1.1.5.orig/src/util.c 2011-01-10 05:37:21.000000000 -0800
-+++ libmtp-1.1.5/src/util.c 2014-09-03 23:50:44.703563888 -0700
-@@ -22,6 +22,8 @@
- * Boston, MA 02111-1307, USA.
- */
-
-+#include "config.h"
-+
- /* MSVC does not have these */
- #ifndef _MSC_VER
- #include <sys/time.h>
diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp/0001-Use-native-mtp-hotplug.patch b/meta-oe/recipes-connectivity/libmtp/libmtp/0001-Use-native-mtp-hotplug.patch
new file mode 100644
index 0000000000..83c58061f7
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libmtp/libmtp/0001-Use-native-mtp-hotplug.patch
@@ -0,0 +1,43 @@
+From 4e8eab047a43e48bd541f2887104299fcfb99b0d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 27 Nov 2018 12:03:20 +0100
+Subject: [PATCH] Use native mtp-hotplug
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Makefile.am | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 7b7e06b..083e1c6 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -16,16 +16,16 @@ hwdb_DATA=69-libmtp.hwdb
+ noinst_DATA=libmtp.usermap libmtp.fdi
+
+ libmtp.usermap: util/mtp-hotplug
+- util/mtp-hotplug > libmtp.usermap
++ mtp-hotplug > libmtp.usermap
+
+ @UDEV_RULES@: util/mtp-hotplug
+- util/mtp-hotplug -u -p"@UDEV@" @UDEV_GROUP@ @UDEV_MODE@ > @UDEV_RULES@
++ mtp-hotplug -u -p"@UDEV@" @UDEV_GROUP@ @UDEV_MODE@ > @UDEV_RULES@
+
+ libmtp.fdi: util/mtp-hotplug
+- util/mtp-hotplug -H > libmtp.fdi
++ mtp-hotplug -H > libmtp.fdi
+
+ $(hwdb_DATA): util/mtp-hotplug
+- util/mtp-hotplug -w > $(hwdb_DATA)
++ mtp-hotplug -w > $(hwdb_DATA)
+
+ CLEANFILES = libmtp.usermap @UDEV_RULES@ libmtp.fdi libmtp.hwdb
+ endif
+--
+2.14.5
+
diff --git a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.bb
new file mode 100644
index 0000000000..41fc46c31e
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.20.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] = "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.5.bb b/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb
deleted file mode 100644
index 798b1707d7..0000000000
--- a/meta-oe/recipes-connectivity/libmtp/libmtp_1.1.5.bb
+++ /dev/null
@@ -1,58 +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+"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=0448d3676bc0de00406af227d341a4d1 \
- file://src/ptp.c;beginline=3;endline=22;md5=dafe6cfd1782f56471bb94ab06624c1f \
- file://examples/albums.c;beginline=5;endline=21;md5=84f4e55dfec49e898b7f68a828c15620 \
-"
-
-DEPENDS += "libusb1 gettext-native"
-
-SCM_URI = "git://git.code.sf.net/p/libmtp/code"
-SRC_URI = "\
- ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
- file://69-libmtp.rules \
- file://glibc-2.20.patch \
-"
-SRC_URI[md5sum] = "f80e45c0e6e5798c434bb1c26a7b602d"
-SRC_URI[sha256sum] = "787679171baf8b3cf2fcc03196c705ab4d7cbc969bd71f9d3696be1ce7f1c63a"
-
-# Currently we use a pregenerated rules file produced by mtp-hotplug, rather
-# than having to depend upon libmtp-native or run mtp-hotplug in a postinst.
-do_unpack[vardeps] += "skip_udev_rules_generation"
-do_unpack[postfuncs] += "skip_udev_rules_generation"
-
-skip_udev_rules_generation () {
- sed -i -e '/^noinst_DATA=/,/util\/mtp-hotplug -H/d' ${S}/Makefile.am
- cp ${WORKDIR}/69-libmtp.rules ${S}/
-}
-
-inherit autotools pkgconfig lib_package
-
-EXTRA_OECONF += "--disable-rpath"
-
-PACKAGECONFIG ?= "\
- ${@bb.utils.contains('DISTRO_FEATURES', 'largefile$', 'largefile', '', d)} \
-"
-PACKAGECONFIG[doxygen] = "--enable-doxygen,--disable-doxygen"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile"
-PACKAGECONFIG[mtpz] = "--enable-mtpz,--disable-mtpz,libgcrypt"
-
-PACKAGES =+ "libmtp-common libmtp-runtime"
-
-RDEPENDS_${PN} += "libmtp-common"
-RRECOMMENDS_${PN} += "libmtp-runtime ${PN}-bin"
-FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug/*"
-FILES_libmtp-common = "${nonarch_base_libdir}/udev/rules.d/*"
-SUMMARY_libmtp-common = "The udev rules file for MTP devices"
-FILES_libmtp-runtime = "${nonarch_base_libdir}/udev/mtp-probe"
-DEPENDS_libmtp-runtime = "libmtp-common"
-SUMMARY_libmtp-runtime = "mtp-probe, used for the MTP udev rules"
-DESCRIPTION_libmtp-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/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch b/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch
deleted file mode 100644
index 15aa94e2cc..0000000000
--- a/meta-oe/recipes-connectivity/libndp/libndp/0001-include-sys-select.h-for-fd_-definitions.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 94e9a082d76414f82794b0c9817d0c24e3868275 Mon Sep 17 00:00:00 2001
-From: Kylie McClain <somasis@exherbo.org>
-Date: Sat, 21 May 2016 21:24:36 -0400
-Subject: [PATCH] ndptool: Fix compilation on musl libc
-
-FD_ZERO, fd_set, etc are defined within sys/select.h on musl.
-
-Signed-off-by: Kylie McClain <somasis@exherbo.org>
-Signed-off-by: Jiri Pirko <jiri@mellanox.com>
----
- utils/ndptool.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/utils/ndptool.c b/utils/ndptool.c
-index 1d96f4c..96479fa 100644
---- a/utils/ndptool.c
-+++ b/utils/ndptool.c
-@@ -28,6 +28,7 @@
- #include <arpa/inet.h>
- #include <errno.h>
- #include <ndp.h>
-+#include <sys/select.h>
-
- enum verbosity_level {
- VERB1,
diff --git a/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb b/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
deleted file mode 100644
index 5148798abe..0000000000
--- a/meta-oe/recipes-connectivity/libndp/libndp_1.6.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Library for IPv6 Neighbor Discovery Protocol"
-HOMEPAGE = "http://libndp.org/"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-SRC_URI = "git://github.com/jpirko/libndp \
- file://0001-include-sys-select.h-for-fd_-definitions.patch \
- "
-# tag for v1.6
-SRCREV = "2f721c4ff519f38f46695a60d9f9d88f35bf3c1d"
-S = "${WORKDIR}/git"
-
-inherit autotools
diff --git a/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb b/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb
new file mode 100644
index 0000000000..4d4d3e51cd
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libndp/libndp_1.8.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Library for IPv6 Neighbor Discovery Protocol"
+HOMEPAGE = "http://libndp.org/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://github.com/jpirko/libndp;branch=master;protocol=https \
+ "
+# tag for v1.8
+SRCREV = "009ce9cd9b950ffa1f4f94c9436027b936850d0c"
+S = "${WORKDIR}/git"
+
+inherit autotools
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/0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-.patch b/meta-oe/recipes-connectivity/libnet/libnet/0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-.patch
new file mode 100644
index 0000000000..a32414bdf6
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libnet/libnet/0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-.patch
@@ -0,0 +1,33 @@
+From a1659e261888bdbed51803132d52d9a6c6803c8a Mon Sep 17 00:00:00 2001
+From: Joachim Nilsson <troglobit@gmail.com>
+Date: Sat, 19 Oct 2019 12:26:26 +0200
+Subject: [PATCH] Use standard int64_t instead of __int64_t for mingw cross
+ build
+
+Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
+---
+Upstream-Status: Pending
+
+ include/libnet/libnet-structures.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/include/libnet/libnet-structures.h b/include/libnet/libnet-structures.h
+index 6084caa..34fffc6 100644
+--- a/include/libnet/libnet-structures.h
++++ b/include/libnet/libnet-structures.h
+@@ -49,9 +49,9 @@ struct libnet_port_list_chain
+ /* libnet statistics structure */
+ struct libnet_stats
+ {
+- __int64_t packets_sent; /* packets sent */
+- __int64_t packet_errors; /* packets errors */
+- __int64_t bytes_written; /* bytes written */
++ int64_t packets_sent; /* packets sent */
++ int64_t packet_errors; /* packets errors */
++ int64_t bytes_written; /* bytes written */
+ };
+
+
+--
+2.25.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 c9913444d6..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"
-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.2.bb b/meta-oe/recipes-connectivity/libnet/libnet_1.2.bb
new file mode 100644
index 0000000000..eaa0a0445d
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libnet/libnet_1.2.bb
@@ -0,0 +1,21 @@
+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 \
+ file://0001-Use-standard-int64_t-instead-of-__int64_t-for-mingw-.patch"
+
+SRC_URI[sha256sum] = "1e9e9054d688b059bcbaf878d8c4fbf69bfc0c9386cd4e7779fbb53339050d2e"
+SRCREV = "deeeeaeb84f8bc5d2299913d4ccf53d0d4c26966"
+
+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..55595104aa
--- /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 4fb0fe7..8e5a0e4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -6,11 +6,11 @@ project(libnfs
+
+ set(SOVERSION 11.1.0 CACHE STRING "" FORCE)
+
+-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 "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "Installation directory for pkgconfig (.pc) files")
+-set(INSTALL_CMAKE_DIR "${CMAKE_INSTALL_PREFIX}/lib/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_5.0.2.bb b/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb
new file mode 100644
index 0000000000..e0df18a50c
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libnfs/libnfs_5.0.2.bb
@@ -0,0 +1,12 @@
+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 \
+"
+SRCREV = "40348f45d6beb8a8f50b6b63414a98fc1a061b7d"
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch b/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch
deleted file mode 100644
index 7a3429b9d0..0000000000
--- a/meta-oe/recipes-connectivity/libqmi/libqmi/0001-Detect-clang.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 4cfb728804157e8f3c69e11ba4df449d8f76388f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 20 Oct 2016 04:42:26 +0000
-Subject: [PATCH] Detect clang
-
-Check for clang compiler since we need to disable
-unused-function warning for clang, at same time
-pass werror when checking for compiler options if
-werror is enabled so spurious options do not get
-enabled. Only the ones that are supported by given
-compiler are accepted.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
----
- m4/compiler-warnings.m4 | 29 +++++++++++++++++++++++++----
- 1 file changed, 25 insertions(+), 4 deletions(-)
-
-diff --git a/m4/compiler-warnings.m4 b/m4/compiler-warnings.m4
-index de4a8b0..e4ba718 100644
---- a/m4/compiler-warnings.m4
-+++ b/m4/compiler-warnings.m4
-@@ -2,10 +2,30 @@ AC_DEFUN([LIBQMI_COMPILER_WARNINGS],
- [AC_ARG_ENABLE(more-warnings,
- AS_HELP_STRING([--enable-more-warnings], [Possible values: no/yes/error]),
- set_more_warnings="$enableval",set_more_warnings=error)
-+
-+# Clang throws a lot of warnings when it does not understand a flag. Disable
-+# this warning for now so other warnings are visible.
-+AC_MSG_CHECKING([if compiling with clang])
-+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [[
-+#ifndef __clang__
-+ not clang
-+#endif
-+ ]])],
-+ [CLANG=yes],
-+ [CLANG=no]
-+)
-+AC_MSG_RESULT([$CLANG])
-+AS_IF([test "x$CLANG" = "xyes"], [CLANG_FLAGS=-Wno-error=unused-function])
-+CFLAGS="$CFLAGS $CLANG_FLAGS"
-+LDFLAGS="$LDFLAGS $CLANG_FLAGS"
-+
- AC_MSG_CHECKING(for more warnings)
- if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
- AC_MSG_RESULT(yes)
- CFLAGS="-Wall -std=gnu89 $CFLAGS"
-+ if test "x$set_more_warnings" = xerror; then
-+ WERROR="-Werror"
-+ fi
-
- for option in -Wmissing-declarations -Wmissing-prototypes \
- -Wdeclaration-after-statement -Wstrict-prototypes \
-@@ -17,22 +37,23 @@ if test "$GCC" = "yes" -a "$set_more_warnings" != "no"; then
- -Wmissing-include-dirs -Waggregate-return \
- -Wformat-security -Wtype-limits; do
- SAVE_CFLAGS="$CFLAGS"
-- CFLAGS="$CFLAGS $option"
-+ CFLAGS="$CFLAGS $option $WERROR"
- AC_MSG_CHECKING([whether gcc understands $option])
- AC_TRY_COMPILE([], [],
- has_option=yes,
- has_option=no,)
- if test $has_option = no; then
- CFLAGS="$SAVE_CFLAGS"
-+ else
-+ CFLAGS="$SAVE_CFLAGS $option"
- fi
- AC_MSG_RESULT($has_option)
- unset has_option
- unset SAVE_CFLAGS
- done
-+ CFLAGS="$CFLAGS $WERROR"
- unset option
-- if test "x$set_more_warnings" = xerror; then
-- CFLAGS="$CFLAGS -Werror"
-- fi
-+ unset WERROR
- else
- AC_MSG_RESULT(no)
- fi
---
-1.9.1
-
diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
deleted file mode 100644
index 9301cbd5ee..0000000000
--- a/meta-oe/recipes-connectivity/libqmi/libqmi_1.20.0.bb
+++ /dev/null
@@ -1,18 +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 = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-DEPENDS = "glib-2.0 libgudev libmbim glib-2.0-native"
-
-inherit autotools pkgconfig bash-completion
-
-SRC_URI = "http://www.freedesktop.org/software/${BPN}/${BPN}-${PV}.tar.xz \
- file://0001-Detect-clang.patch \
- "
-SRC_URI[md5sum] = "797e365521df76b77b067e6317618b41"
-SRC_URI[sha256sum] = "21428cd3749c56246565123f707fee51238651a22c60bdc85ebce97388626eb4"
diff --git a/meta-oe/recipes-connectivity/libqmi/libqmi_1.32.4.bb b/meta-oe/recipes-connectivity/libqmi/libqmi_1.32.4.bb
new file mode 100644
index 0000000000..7b7a3b2350
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libqmi/libqmi_1.32.4.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
+
+SRCREV = "6e248aceb66f53b467b343bca1c467a8211dd30d"
+SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libqmi.git;protocol=https;branch=qmi-1-32"
+
+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
new file mode 100644
index 0000000000..7bac3117cd
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libqrtr-glib/libqrtr-glib_git.bb
@@ -0,0 +1,21 @@
+SUMMARY = "library to use and manage the QRTR bus"
+DESCRIPTION = "libqrtr-glib is a glib-based library to use and manage the QRTR (Qualcomm IPC Router) bus"
+HOMEPAGE = "https://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://LICENSES/LGPL-2.1-or-later.txt;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/libqrtr-glib.git;protocol=https;branch=qrtr-1-2"
+
+PV = "1.2.2+git${SRCPV}"
+SRCREV = "8991f0e93713ebf4da48ae4f23940ead42f64c8c"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gobject-introspection
+
+DEPENDS = "glib-2.0"
+
+EXTRA_OEMESON = " \
+ -Dgtk_doc=false \
+"
diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch
deleted file mode 100644
index 4d0979710c..0000000000
--- a/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c9859a38a58996b8767a30e14febc03845f66f95 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Jul 2017 13:10:53 -0700
-Subject: [PATCH] Define 64bit atomic helpers for ppc 32-bit
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/atomic64.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/atomic64.c b/src/atomic64.c
-index f841b39b..35c7c9d8 100644
---- a/src/atomic64.c
-+++ b/src/atomic64.c
-@@ -18,10 +18,10 @@
- #include <stdbool.h>
-
- /*
-- * only need these on MIPS, since it lacks hardware 64-bit atomics,
-+ * only need these on MIPS & PPC32, since it lacks hardware 64-bit atomics,
- * unlike x86 and ARM.
- */
--#if defined(__mips__) || defined(__mipsel__)
-+#if defined(__mips__) || defined(__mipsel__) || defined(__powerpc__)
-
- static void __spin_lock(volatile int *lock) {
- while (__sync_lock_test_and_set(lock, 1))
---
-2.13.2
-
diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch b/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch
deleted file mode 100644
index 84e0772a79..0000000000
--- a/meta-oe/recipes-connectivity/libtorrent/libtorrent/0001-implement-64bit-atomic-for-mips.patch
+++ /dev/null
@@ -1,263 +0,0 @@
-From d7b6df5808e7bef5930b61a82e880699a9f9e208 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 29 Jun 2017 15:39:19 -0700
-Subject: [PATCH] implement 64bit atomic for mips
-
-GCC does not provide 64bit atomics for mips32
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/Makefile.am | 1 +
- src/atomic64.c | 228 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 229 insertions(+)
- create mode 100644 src/atomic64.c
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 99aaace0..cbbbbee9 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -27,6 +27,7 @@ libtorrent_la_LIBADD = \
- utils/libsub_utils.la
-
- libtorrent_la_SOURCES = \
-+ atomic64.c \
- globals.cc \
- globals.h \
- manager.cc \
-diff --git a/src/atomic64.c b/src/atomic64.c
-new file mode 100644
-index 00000000..f841b39b
---- /dev/null
-+++ b/src/atomic64.c
-@@ -0,0 +1,228 @@
-+/*===----- atomic64.c - Support functions for 64-bit atomic operations.-----===
-+ *
-+ * The LLVM Compiler Infrastructure
-+ *
-+ * This file is dual licensed under the MIT and the University of Illinois Open
-+ * Source Licenses. See LICENSE.TXT for details.
-+ *
-+ *===-----------------------------------------------------------------------===
-+ *
-+ * atomic64.c defines a set of functions for performing atomic accesses on
-+ * 64-bit memory locations. It also implements spinlock synchronization
-+ * operations.
-+ *
-+ *===-----------------------------------------------------------------------===
-+ */
-+
-+#include <stdint.h>
-+#include <stdbool.h>
-+
-+/*
-+ * only need these on MIPS, since it lacks hardware 64-bit atomics,
-+ * unlike x86 and ARM.
-+ */
-+#if defined(__mips__) || defined(__mipsel__)
-+
-+static void __spin_lock(volatile int *lock) {
-+ while (__sync_lock_test_and_set(lock, 1))
-+ while (*lock) {}
-+}
-+
-+static void __spin_unlock(volatile int *lock) {
-+ __sync_lock_release(lock);
-+}
-+
-+/*
-+ * Make sure the lock is on its own cache line to prevent false sharing.
-+ * Put it inside a struct that is aligned and padded to the typical MIPS
-+ * cacheline which is 32 bytes.
-+ */
-+static struct {
-+ int lock;
-+ char pad[32 - sizeof(int)];
-+} __attribute__((aligned (32))) lock = { 0 };
-+
-+
-+uint64_t __sync_fetch_and_add_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret + val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_sub_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret - val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_and_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret & val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_or_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret | val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_fetch_and_xor_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = ret ^ val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_add_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr + val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_sub_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr - val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_and_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr & val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_or_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr | val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_xor_and_fetch_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr ^ val;
-+ *ptr = ret;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+bool __sync_bool_compare_and_swap_8(volatile uint64_t *ptr,
-+ uint64_t oldval, uint64_t newval) {
-+ bool ret = false;
-+
-+ __spin_lock(&lock.lock);
-+
-+ if (*ptr == oldval) {
-+ *ptr = newval;
-+ ret = true;
-+ }
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_val_compare_and_swap_8(volatile uint64_t *ptr,
-+ uint64_t oldval, uint64_t newval) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ if (ret == oldval)
-+ *ptr = newval;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+uint64_t __sync_lock_test_and_set_8(volatile uint64_t *ptr, uint64_t val) {
-+ uint64_t ret;
-+
-+ __spin_lock(&lock.lock);
-+
-+ ret = *ptr;
-+ *ptr = val;
-+
-+ __spin_unlock(&lock.lock);
-+
-+ return ret;
-+}
-+
-+void __sync_lock_release_8(volatile uint64_t *ptr) {
-+ __spin_lock(&lock.lock);
-+
-+ *ptr = 0;
-+
-+ __spin_unlock(&lock.lock);
-+}
-+
-+#endif
---
-2.13.2
-
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 79d4f29fab..0000000000
--- a/meta-oe/recipes-connectivity/libtorrent/libtorrent/don-t-run-code-while-configuring-package.patch
+++ /dev/null
@@ -1,94 +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: libtorrent-0.13.3/scripts/checks.m4
-===================================================================
---- libtorrent-0.13.3.orig/scripts/checks.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/checks.m4 2013-02-10 15:28:37.414445524 +0200
-@@ -95,40 +95,6 @@
-
- AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
- AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
--
-- AC_RUN_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], [
-Index: libtorrent-0.13.3/scripts/common.m4
-===================================================================
---- libtorrent-0.13.3.orig/scripts/common.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/common.m4 2013-02-10 15:27:55.874446741 +0200
-@@ -222,38 +222,10 @@
-
- AC_DEFUN([TORRENT_CHECK_EXECINFO], [
- AC_MSG_CHECKING(for execinfo.h)
--
-- AC_RUN_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_RUN_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)
-- ])
- ])
-
-
diff --git a/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
index 92e65289a9..fec05571d1 100644
--- a/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
+++ b/meta-oe/recipes-connectivity/libtorrent/libtorrent_git.bb
@@ -1,26 +1,30 @@
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"
+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 \
- file://don-t-run-code-while-configuring-package.patch \
- file://0001-implement-64bit-atomic-for-mips.patch \
- file://0001-Define-64bit-atomic-helpers-for-ppc-32-bit.patch \
- "
-SRCREV = "c167c5a9e0bcf0df23ae5efd91396aae0e37eb87"
+SRC_URI = "git://github.com/rakshasa/libtorrent;branch=master;protocol=https"
+SRCREV = "e60f222241319aaae482789517ad00ae9344bd13"
-PV = "0.13.6+git${SRCPV}"
+CVE_STATUS[CVE-2009-1760] = "backported-patch: patched in our product"
+
+PV = "0.13.8+git${SRCPV}"
S = "${WORKDIR}/git"
+
+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/libuv/libuv_1.20.3.bb b/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb
deleted file mode 100644
index a11ff9d2c4..0000000000
--- a/meta-oe/recipes-connectivity/libuv/libuv_1.20.3.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A multi-platform support library with a focus on asynchronous I/O"
-HOMEPAGE = "https://github.com/libuv/libuv"
-BUGTRACKER = "https://github.com/libuv/libuv/issues"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a68902a430e32200263d182d44924d47"
-
-S = "${WORKDIR}/git"
-SRCREV = "8cfd67e59195251dff793ee47c185c9d6a8f3818"
-BRANCH = "v1.x"
-SRC_URI = "git://github.com/libuv/libuv.git;protocol=https;branch=${BRANCH};"
-
-inherit autotools
-
-do_configure() {
- ${S}/autogen.sh || bbnote "${PN} failed to autogen.sh"
- oe_runconf
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets/0001-Fix-Werror-enum-int-mismatch-in-lws_tls_server_abort.patch b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets/0001-Fix-Werror-enum-int-mismatch-in-lws_tls_server_abort.patch
new file mode 100644
index 0000000000..41d004d9ff
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets/0001-Fix-Werror-enum-int-mismatch-in-lws_tls_server_abort.patch
@@ -0,0 +1,32 @@
+From 722e44cb5b74cae206f47a6dc0d985eba8ed1b2e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 26 Jan 2023 17:17:49 -0800
+Subject: [PATCH] Fix -Werror=enum-int-mismatch in
+ lws_tls_server_abort_connection()
+
+GCC 13 is findinf this function signature mismatch.
+
+../git/lib/tls/openssl/openssl-server.c:713:1: error: conflicting types for 'lws_tls_server_abort_connection' due to enum/integer mismatch; have 'int(struct lws *)' [-Werror=enum-int-mismatch]
+
+Upstream-Status: Submitted [https://github.com/warmcat/libwebsockets/pull/2824]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/tls/openssl/openssl-server.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/tls/openssl/openssl-server.c b/lib/tls/openssl/openssl-server.c
+index f2e77324f..43d65e030 100644
+--- a/lib/tls/openssl/openssl-server.c
++++ b/lib/tls/openssl/openssl-server.c
+@@ -699,7 +699,7 @@ lws_tls_server_new_nonblocking(struct lws *wsi, lws_sockfd_type accept_fd)
+ return 0;
+ }
+
+-int
++enum lws_ssl_capable_status
+ lws_tls_server_abort_connection(struct lws *wsi)
+ {
+ if (wsi->tls.use_ssl)
+--
+2.39.1
+
diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb
deleted file mode 100644
index f38414862a..0000000000
--- a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_3.0.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Canonical libwebsockets.org websocket library"
-HOMEPAGE = "https://libwebsockets.org/"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4ce87f3facb6f911c142c8bef9bfb380"
-
-DEPENDS = "zlib"
-
-S = "${WORKDIR}/git"
-SRCREV = "eaa935a80adb38b5cc4d09ce06ec987b87dcddfa"
-SRC_URI = "git://github.com/warmcat/libwebsockets.git;protocol=https;"
-
-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[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[testapps] = "-DLWS_WITHOUT_TESTAPPS=OFF,-DLWS_WITHOUT_TESTAPPS=ON,"
-
-PACKAGES =+ "${PN}-testapps"
-
-FILES_${PN}-testapps += "${datadir}/libwebsockets-test-server/*"
diff --git a/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb
new file mode 100644
index 0000000000..5e6069fb81
--- /dev/null
+++ b/meta-oe/recipes-connectivity/libwebsockets/libwebsockets_4.3.2.bb
@@ -0,0 +1,63 @@
+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 \
+ file://0001-Fix-Werror-enum-int-mismatch-in-lws_tls_server_abort.patch"
+
+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"
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
new file mode 100644
index 0000000000..60f2079d37
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-include-string.h-for-strncpy.patch
@@ -0,0 +1,27 @@
+From d49b4fb8063ecd89617587e5ea566cc9da9393ef Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 19:09:18 -0700
+Subject: [PATCH] include string.h for strncpy()
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ interface.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/interface.c b/interface.c
+index 65bdff0..5228db9 100644
+--- a/interface.c
++++ b/interface.c
+@@ -5,6 +5,7 @@
+ * @note SPDX-License-Identifier: GPL-2.0+
+ */
+ #include <stdlib.h>
++#include <string.h>
+ #include "interface.h"
+
+ struct interface {
+--
+2.37.3
+
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-makefile-use-conditional-assignment-for-KBUILD_OUTPU.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-makefile-use-conditional-assignment-for-KBUILD_OUTPU.patch
new file mode 100644
index 0000000000..fb51906521
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0001-makefile-use-conditional-assignment-for-KBUILD_OUTPU.patch
@@ -0,0 +1,42 @@
+From dfd38cb29c0768692f886d3ab9158bd2b3132582 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 22 Nov 2022 15:20:48 +0800
+Subject: [PATCH] makefile: use conditional assignment for KBUILD_OUTPUT
+
+Refer [1],from make 4.4, all variables that are marked as export will
+also be passed to the shell started by the shell function. use "=" will
+make KBUILD_OUTPUT always empty for shell function, use "?=" to make
+"export KBUILD_OUTPUT" in enrironment can work.
+
+[snip of 4.4 NEWS]
+* WARNING: Backward-incompatibility!
+ Previously makefile variables marked as export were not exported to commands
+ started by the $(shell ...) function. Now, all exported variables are
+ exported to $(shell ...).
+[snip]
+
+[1] https://git.savannah.gnu.org/cgit/make.git/tree/NEWS?h=4.4&id=ed493f6c9116cc217b99c2cfa6a95f15803235a2#n74
+
+Upstream-Status: Submitted [linuxptp-devel@lists.sourceforge.net]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/makefile b/makefile
+index 529d8a0..3db60fa 100644
+--- a/makefile
++++ b/makefile
+@@ -15,7 +15,7 @@
+ # with this program; if not, write to the Free Software Foundation, Inc.,
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+-KBUILD_OUTPUT =
++KBUILD_OUTPUT ?=
+
+ DEBUG =
+ CC ?= $(CROSS_COMPILE)gcc
+--
+2.25.1
+
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch
deleted file mode 100644
index 96163f6542..0000000000
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0003-include-missing-time.h-for-time_t.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b36cafdbcbe2193f5b669e703c608e19e23f80a3 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 11:16:42 -0700
-Subject: [PATCH 3/4] include missing time.h for time_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- util.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/util.h b/util.h
-index e912f19..3c634c1 100644
---- a/util.h
-+++ b/util.h
-@@ -22,7 +22,7 @@
-
- #include "ddt.h"
- #include "ether.h"
--
-+#include <time.h>
- /**
- * Table of human readable strings, one for each port state.
- */
---
-2.13.3
-
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch
deleted file mode 100644
index e699275148..0000000000
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3cd28aa771934d9165ff0d7e19932cde65de3e52 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 11:16:57 -0700
-Subject: [PATCH 4/4] Adjust include header sequence to avoid duplicate
- definitions on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- raw.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/raw.c b/raw.c
-index f51c829..494ea7f 100644
---- a/raw.c
-+++ b/raw.c
-@@ -18,8 +18,6 @@
- */
- #include <errno.h>
- #include <fcntl.h>
--#include <linux/filter.h>
--#include <linux/if_ether.h>
- #include <net/ethernet.h>
- #include <net/if.h>
- #include <netinet/in.h>
-@@ -32,6 +30,8 @@
- #include <sys/types.h>
- #include <unistd.h>
-
-+#include <linux/filter.h>
-+#include <linux/if_ether.h>
- #include <linux/errqueue.h>
- #include <linux/net_tstamp.h>
- #include <linux/sockios.h>
---
-2.13.3
-
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
new file mode 100644
index 0000000000..876088649e
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp/Use-cross-cpp-in-incdefs.patch
@@ -0,0 +1,26 @@
+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
index b1d96ae5a7..55ce4c9a90 100644
--- 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
@@ -22,8 +22,8 @@ index 22e7d0d..809cc8f 100644
+CC ?= $(CROSS_COMPILE)gcc
VER = -DVER=$(version)
CFLAGS = -Wall $(VER) $(incdefs) $(DEBUG) $(EXTRA_CFLAGS)
- LDLIBS = -lm -lrt $(EXTRA_LDFLAGS)
-@@ -35,7 +35,7 @@ incdefs := $(shell $(srcdir)/incdefs.sh)
+ LDLIBS = -lm -lrt -pthread $(EXTRA_LDFLAGS)
+@@ -43,7 +43,7 @@ incdefs := $(shell $(srcdir)/incdefs.sh)
version := $(shell $(srcdir)/version.sh $(srcdir))
VPATH = $(srcdir)
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch b/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch
deleted file mode 100644
index 02dbb23465..0000000000
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp/no-incdefs-using-host-headers.patch
+++ /dev/null
@@ -1,29 +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: no incdefs using host headers
-
-Avoid using host headers via incdefs.sh shell script.
-
-Signed-off-by: Marcel Ziswiler <marcel.ziswiler@toradex.com>
----
-
- makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/makefile b/makefile
-index 8cdbd15..85174b8 100644
---- a/makefile
-+++ b/makefile
-@@ -33,7 +33,7 @@ OBJECTS = $(OBJ) hwstamp_ctl.o phc2sys.o phc_ctl.o pmc.o pmc_common.o \
- SRC = $(OBJECTS:.o=.c)
- DEPEND = $(OBJECTS:.o=.d)
- srcdir := $(dir $(lastword $(MAKEFILE_LIST)))
--incdefs := $(shell $(srcdir)/incdefs.sh)
-+#incdefs := $(shell $(srcdir)/incdefs.sh)
- version := $(shell $(srcdir)/version.sh $(srcdir))
- VPATH = $(srcdir)
-
---
-2.9.3
-
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb
deleted file mode 100644
index c7b8b2933c..0000000000
--- a/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
- file://build-Allow-CC-and-prefix-to-be-overriden.patch \
- file://no-incdefs-using-host-headers.patch \
- file://0003-include-missing-time.h-for-time_t.patch \
- file://0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch \
- "
-
-SRC_URI[md5sum] = "5688cdfe57932273e1dbf35b3b97b9a0"
-SRC_URI[sha256sum] = "fa8e00f6ec73cefa7bb313dce7f60dfe5eb9e2bde3353594e9ac18edc93e5165"
-
-EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \
- EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'"
-
-do_install () {
- install -d ${D}/${bindir}
- install -p ${S}/ptp4l ${D}/${bindir}
- install -p ${S}/pmc ${D}/${bindir}
- install -p ${S}/phc2sys ${D}/${bindir}
- install -p ${S}/hwstamp_ctl ${D}/${bindir}
-}
diff --git a/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb b/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb
new file mode 100644
index 0000000000..5903cb38ca
--- /dev/null
+++ b/meta-oe/recipes-connectivity/linuxptp/linuxptp_3.1.1.bb
@@ -0,0 +1,33 @@
+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 \
+ file://0001-makefile-use-conditional-assignment-for-KBUILD_OUTPU.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/lirc/lirc/pollfd.patch b/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch
deleted file mode 100644
index 4feea80346..0000000000
--- a/meta-oe/recipes-connectivity/lirc/lirc/pollfd.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-Index: lirc-0.9.4d/daemons/lircrcd.cpp
-===================================================================
---- lirc-0.9.4d.orig/daemons/lircrcd.cpp
-+++ lirc-0.9.4d/daemons/lircrcd.cpp
-@@ -29,10 +29,12 @@
- #include <sys/un.h>
- #include <sys/stat.h>
- #include <sys/types.h>
-+#include <poll.h>
- #include <syslog.h>
-
- #include "lirc_client.h"
- #include "lirc/lirc_log.h"
-+#include "lirc/curl_poll.h"
-
- #define MAX_CLIENTS 100
- #define WHITE_SPACE " \t"
-Index: lirc-0.9.4d/lib/curl_poll.c
-===================================================================
---- lirc-0.9.4d.orig/lib/curl_poll.c
-+++ lirc-0.9.4d/lib/curl_poll.c
-@@ -36,6 +36,7 @@
- #include <stdlib.h>
- #include <sys/time.h>
- #include <sys/types.h>
-+#include <sys/poll.h>
-
- #include "lirc_log.h"
- #include "curl_poll.h"
-@@ -67,7 +68,7 @@ static const logchannel_t logchannel = L
-
- #ifdef HAVE_POLL_FINE
-
--int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
-+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms)
- {
- return poll(ufds, nfds, timeout_ms);
- }
-@@ -112,7 +113,7 @@ static int verify_sock(int s)
- }
-
-
--int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
-+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms)
- {
- struct timeval pending_tv;
- struct timeval* ptimeout;
-Index: lirc-0.9.4d/lib/curl_poll.h
-===================================================================
---- lirc-0.9.4d.orig/lib/curl_poll.h
-+++ lirc-0.9.4d/lib/curl_poll.h
-@@ -1,5 +1,5 @@
--#ifndef _POLL_H
--#define _POLL_H
-+#ifndef _LIB_CURL_POLL_H
-+#define _LIB_CURL_POLL_H
- /***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
-@@ -29,13 +29,9 @@
- extern "C" {
- #endif
-
--#ifdef HAVE_SYS_POLL_H
--#include <sys/poll.h>
--#else
- #include <poll.h>
--#endif
-
--int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms);
-+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms);
-
- #ifdef __cplusplus
- }
-Index: lirc-0.9.4d/lib/lirc/curl_poll.h
-===================================================================
---- lirc-0.9.4d.orig/lib/lirc/curl_poll.h
-+++ lirc-0.9.4d/lib/lirc/curl_poll.h
-@@ -1,5 +1,5 @@
--#ifndef _POLL_H
--#define _POLL_H
-+#ifndef _LIRC_CURL_POLL_H
-+#define _LIRC_CURL_POLL_H
- /***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
-@@ -29,13 +29,9 @@
- extern "C" {
- #endif
-
--#ifdef HAVE_SYS_POLL_H
--#include <sys/poll.h>
--#else
- #include <poll.h>
--#endif
-
--int curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms);
-+int curl_poll(struct pollfd *ufds, unsigned int nfds, int timeout_ms);
-
- #ifdef __cplusplus
- }
diff --git a/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb b/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb
deleted file mode 100644
index b13163debb..0000000000
--- a/meta-oe/recipes-connectivity/lirc/lirc_0.9.4d.bb
+++ /dev/null
@@ -1,87 +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 = "GPLv2"
-DEPENDS = "libxslt-native alsa-lib libftdi libusb1 libusb-compat jack portaudio-v19"
-
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://prdownloads.sourceforge.net/lirc/lirc-${PV}.tar.bz2 \
- file://pollfd.patch \
- file://lircd.service \
- file://lircd.init \
- file://lircexec.init \
- file://lircd.conf \
- file://lirc_options.conf \
- file://lirc.tmpfiles \
-"
-SRC_URI[md5sum] = "0d11679cbdd94a5a6da00a8e7231b4bf"
-SRC_URI[sha256sum] = "c68f18c35b489b865c0a741d119b136e8702191538cd3551b977a7af6c4e41ab"
-
-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
-
-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"'
-do_install_append() {
- install -m 0755 -d ${D}${sysconfdir}
- install -m 0755 -d ${D}${sysconfdir}/lirc
- install -m 0755 -d ${D}${systemd_unitdir}/system
- install -m 0755 -d ${D}${libdir}/tmpfiles.d
- install -m 0644 ${WORKDIR}/lircd.conf ${D}${sysconfdir}/lirc/
- install -m 0644 ${WORKDIR}/lirc_options.conf ${D}${sysconfdir}/lirc/
- 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
- 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"
-RDEPENDS_${PN}-exec = "${PN}"
-RDEPENDS_${PN}-python = "python"
-
-RRECOMMENDS_lirc = "${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 += "${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/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
index 20f388e890..0fc87abd09 100644
--- 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
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
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#
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
index b6c9422e8c..921aded943 100644
--- 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
@@ -1,3 +1,5 @@
+Upstream-Status: Pending
+
--- 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 @@
diff --git a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb
index 4f1430b9ec..7b5eecf54d 100644
--- a/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb
+++ b/meta-oe/recipes-connectivity/loudmouth/loudmouth_1.4.3.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Loudmouth is a lightweight and easy-to-use C library for programming with the Jabber protocol."
HOMEPAGE = "http://www.loudmouth-project.org/"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=c4f38aef94828f6b280e00d1173be689"
DEPENDS = "glib-2.0 libcheck openssl libidn"
diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager/0001-Add-configure-check-for-canonicalize_file_name-befor.patch b/meta-oe/recipes-connectivity/modemmanager/modemmanager/0001-Add-configure-check-for-canonicalize_file_name-befor.patch
deleted file mode 100644
index f3cf3d639b..0000000000
--- a/meta-oe/recipes-connectivity/modemmanager/modemmanager/0001-Add-configure-check-for-canonicalize_file_name-befor.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 07f1eda630517816bfa900e811963745a149e57c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 8 Jun 2018 20:38:30 -0700
-Subject: [PATCH] Add configure check for canonicalize_file_name() before use
-
-Define canonicalize_file_name API if not provided by system C library
-musl e.g. does not provide this API
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure.ac | 2 ++
- src/kerneldevice/mm-kernel-device-generic.c | 18 ++++++++++++++++++
- 2 files changed, 20 insertions(+)
-
-Index: ModemManager-1.7.991/configure.ac
-===================================================================
---- ModemManager-1.7.991.orig/configure.ac
-+++ ModemManager-1.7.991/configure.ac
-@@ -72,6 +72,8 @@ AC_SUBST(MM_GLIB_LT_CURRENT)
- AC_SUBST(MM_GLIB_LT_REVISION)
- AC_SUBST(MM_GLIB_LT_AGE)
-
-+AC_CHECK_FUNCS([canonicalize_file_name])
-+
- dnl-----------------------------------------------------------------------------
- dnl Documentation
- dnl
-Index: ModemManager-1.7.991/src/kerneldevice/mm-kernel-device-generic.c
-===================================================================
---- ModemManager-1.7.991.orig/src/kerneldevice/mm-kernel-device-generic.c
-+++ ModemManager-1.7.991/src/kerneldevice/mm-kernel-device-generic.c
-@@ -21,6 +21,7 @@
- #define _LIBMM_INSIDE_MM
- #include <libmm-glib.h>
-
-+#include "config.h"
- #include "mm-kernel-device-generic.h"
- #include "mm-kernel-device-generic-rules.h"
- #include "mm-log.h"
-@@ -100,6 +101,24 @@ read_sysfs_property_as_string (const gch
- return contents;
- }
-
-+#ifndef HAVE_CANONICALIZE_FILE_NAME
-+#include <limits.h>
-+#include <string.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+static char * canonicalize_file_name(const char *path)
-+{
-+ char buf[PATH_MAX] = { };
-+
-+ snprintf(buf, sizeof(buf) - 1, "%s", path);
-+
-+ if (!realpath(path, buf))
-+ return NULL;
-+
-+ return strdup(buf);
-+}
-+#endif
-+
- /*****************************************************************************/
- /* Load contents */
-
diff --git a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.20.6.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.20.6.bb
new file mode 100644
index 0000000000..ba82d21508
--- /dev/null
+++ b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.20.6.bb
@@ -0,0 +1,56 @@
+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 = "6aa0ff583d04aea88b4da7a1c20049f57062dab6"
+SRC_URI = "git://gitlab.freedesktop.org/mobile-broadband/ModemManager.git;protocol=https;branch=mm-1-20"
+
+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.7.991.bb b/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.7.991.bb
deleted file mode 100644
index 26b56d17d0..0000000000
--- a/meta-oe/recipes-connectivity/modemmanager/modemmanager_1.7.991.bb
+++ /dev/null
@@ -1,52 +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 & LGPL-2.1"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://COPYING.LIB;md5=4fbd65380cdd255951079008b364516c \
-"
-
-inherit gnomebase gettext systemd vala gobject-introspection bash-completion
-
-DEPENDS = "glib-2.0 libgudev dbus-glib intltool-native"
-
-SRC_URI = "http://www.freedesktop.org/software/ModemManager/ModemManager-${PV}.tar.xz \
- file://0001-Add-configure-check-for-canonicalize_file_name-befor.patch \
- "
-
-SRC_URI[md5sum] = "4efe6a240cef212bf8855c95424e7c7f"
-SRC_URI[sha256sum] = "4e366243bd4983f2e6efe35cb901cf5da51939307b5d6299fe622a9fcf411745"
-
-S = "${WORKDIR}/ModemManager-${PV}"
-
-PACKAGECONFIG ??= "mbim qmi polkit \
- ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
-"
-
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,,"
-PACKAGECONFIG[polkit] = "--with-polkit=yes,--with-polkit=no,polkit"
-# Support WWAN modems and devices which speak the Mobile Interface Broadband Model (MBIM) protocol.
-PACKAGECONFIG[mbim] = "--with-mbim,--with-mbim=no,libmbim"
-# Support WWAN modems and devices which speak the Qualcomm MSM Interface (QMI) protocol.
-PACKAGECONFIG[qmi] = "--with-qmi,--without-qmi,libqmi"
-
-FILES_${PN} += " \
- ${datadir}/icons \
- ${datadir}/polkit-1 \
- ${datadir}/dbus-1 \
- ${libdir}/ModemManager \
- ${systemd_unitdir}/system \
-"
-
-FILES_${PN}-dev += " \
- ${libdir}/ModemManager/*.la \
-"
-
-FILES_${PN}-staticdev += " \
- ${libdir}/ModemManager/*.a \
-"
-
-FILES_${PN}-dbg += "${libdir}/ModemManager/.debug"
-
-SYSTEMD_SERVICE_${PN} = "ModemManager.service"
diff --git a/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb b/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb
deleted file mode 100644
index 9fc8435ee6..0000000000
--- a/meta-oe/recipes-connectivity/mosh/mosh_1.3.0.bb
+++ /dev/null
@@ -1,46 +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 = "GPLv3+"
-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"
-SRC_URI[md5sum] = "d961276995936953bf2d5a794068b076"
-SRC_URI[sha256sum] = "320e12f461e55d71566597976bd9440ba6c5265fa68fbf614c6f1c8401f93376"
-
-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 ${NEEDED_PERL_MODULES}"
-
-# 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..2869e06336
--- /dev/null
+++ b/meta-oe/recipes-connectivity/mosh/mosh_1.4.0.bb
@@ -0,0 +1,45 @@
+# 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 = "https://mosh.org/${BP}.tar.gz"
+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"
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 715b02352e..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
@@ -1,18 +1,16 @@
DESCRIPTION = "obex-data-server is a D-Bus service providing high-level OBEX client and server side functionality"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "gtk+ dbus-glib dbus-glib-native imagemagick openobex"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
+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 distro_features_check autotools-brokensep pkgconfig
+inherit features_check autotools-brokensep pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
-FILES_${PN} += "${datadir}/dbus-1/"
+FILES:${PN} += "${datadir}/dbus-1/"
diff --git a/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb b/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
index 3fb8cb1901..7348274948 100644
--- a/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
+++ b/meta-oe/recipes-connectivity/obex/openobex_1.7.2.bb
@@ -2,13 +2,13 @@ DESCRIPTION = "The Openobex project is an open source implementation of the \
Object Exchange (OBEX) protocol."
HOMEPAGE = "http://openobex.triq.net"
SECTION = "libs"
-LICENSE = "GPLv2 & LGPLv2.1"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a \
file://COPYING.LIB;md5=a6f89e2100d9b6cdffcea4f398e37343 \
"
DEPENDS = "virtual/libusb0"
-DEPENDS_append_class-target = " ${@bb.utils.contains('DISTRO_FEATURES','bluez5','bluez5','bluez4',d)}"
+DEPENDS:append:class-target = " bluez5"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}/${PV}/${BP}-Source.tar.gz \
"
@@ -24,14 +24,14 @@ EXTRA_OECMAKE += "-DBUILD_DOCUMENTATION=OFF"
ASNEEDED = ""
-do_install_append () {
+do_install:append () {
rmdir ${D}${bindir}
}
PACKAGES =+ "openobex-apps"
-FILES_${PN}-apps = "${bindir}/*"
-FILES_${PN} += "${libdir}/lib*.so.*"
-FILES_${PN}-dev += "${bindir}/openobex-config"
-DEBIAN_NOAUTONAME_${PN}-apps = "1"
+FILES:${PN}-apps = "${bindir}/*"
+FILES:${PN} += "${libdir}/lib*.so.*"
+FILES:${PN}-dev += "${bindir}/openobex-config"
+DEBIAN_NOAUTONAME:${PN}-apps = "1"
BBCLASSEXTEND = "native"
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/obexftp/obexftp_0.24.2.bb b/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb
index b4a914d929..f7a98fb61e 100644
--- a/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb
+++ b/meta-oe/recipes-connectivity/obexftp/obexftp_0.24.2.bb
@@ -1,5 +1,5 @@
DESCRIPTION = "A tool for transfer files to/from any OBEX enabled device"
-LICENSE = "GPLv2 & PD & LGPLv2.1"
+LICENSE = "GPL-2.0-only & PD & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LGPL-2.1.txt;md5=4fbd65380cdd255951079008b364516c \
file://GPL-2.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://License.txt;md5=fcbddc3c1debed80dd80da2d3e5f0dc1 \
@@ -23,7 +23,7 @@ PACKAGECONFIG ?= ""
PACKAGECONFIG[fuse] = "-DENABLE_FUSE=ON,-DENABLE_FUSE=OFF,fuse"
PACKAGECONFIG[swig] = "-DENABLE_SWIG=ON,-DENABLE_SWIG=OFF,swig"
-DEPENDS_remove_class-native = "fuse-native"
+DEPENDS:remove:class-native = "fuse-native"
S = "${WORKDIR}/${BP}-Source"
@@ -32,11 +32,11 @@ EXTRA_OECMAKE += "-DCMAKE_SKIP_RPATH=ON \
-DENABLE_RUBY=OFF -DENABLE_TCL=OFF \
"
-do_compile_class-native () {
+do_compile:class-native () {
oe_runmake crctable
}
-do_install_class-native () {
+do_install:class-native () {
install -D -m 0755 ${B}/bfb/crctable ${D}${bindir}/crctable
}
diff --git a/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
index f2a16dcf71..f976ca109c 100644
--- a/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
+++ b/meta-oe/recipes-connectivity/packagegroups/packagegroup-tools-bluetooth.bb
@@ -6,19 +6,12 @@ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SUMMARY = "Set of Bluetooth related tools for inclusion in images"
-DESCRIPTION = "Includes bluetooth specific tools for this version of BlueZ.\
-These tools are used at runtime. \
-Supports BlueZ4 and BlueZ5."
+DESCRIPTION = "Includes bluetooth specific tools for BlueZ.\
+These tools are used at runtime."
inherit packagegroup
-inherit bluetooth
-RDEPENDS_bluez4 = " \
- obexftp \
- ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'libasound-module-bluez', '', d)} \
-"
-
-RDEPENDS_bluez5 = " \
+RDEPENDS:${PN} = " \
bluez5-noinst-tools \
bluez5-obex \
bluez5-testtools \
@@ -31,7 +24,3 @@ RDEPENDS_bluez5 = " \
pulseaudio-module-loopback', \
'', d)} \
"
-
-# Install bluez4 tools or bluez5 tools depending on what is specified in the distro.
-# Otherwise install nothing.
-RDEPENDS_${PN} = "${RDEPENDS_${BLUEZ}}"
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.2.0.bb b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb
deleted file mode 100644
index fec380ce6f..0000000000
--- a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.2.0.bb
+++ /dev/null
@@ -1,35 +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.c;protocol=http"
-
-SRCREV = "e8d34da24ad807f5e698b327d67591fd4b4bfa7e"
-
-DEPENDS = "openssl"
-
-S = "${WORKDIR}/git"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- install -d ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3a ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3as ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3c ${D}${libdir}
- oe_libinstall -C build/output -so libpaho-mqtt3cs ${D}${libdir}
- install -d ${D}${includedir}
- install -m 644 src/MQTTAsync.h ${D}${includedir}
- install -m 644 src/MQTTClient.h ${D}${includedir}
- install -m 644 src/MQTTClientPersistence.h ${D}${includedir}
-}
-
diff --git a/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.bb b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.bb
new file mode 100644
index 0000000000..4decb098c7
--- /dev/null
+++ b/meta-oe/recipes-connectivity/paho-mqtt-c/paho-mqtt-c_1.3.12.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 = "4157a27d39f1dd5b95750ecb6acd1481432785d8"
+
+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
new file mode 100644
index 0000000000..2436b36f2d
--- /dev/null
+++ b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp/0001-cmake-Use-CMAKE_INSTALL_LIBDIR-and-CMAKE_INSTALL_BIN.patch
@@ -0,0 +1,51 @@
+From 2a0dd2b300242230faa92cf8e26ccd70231bc9ef Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 19 Mar 2022 23:37:58 -0700
+Subject: [PATCH] cmake: Use CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_BINDIR
+
+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(-)
+
+diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt
+index a9f8908..7eadc60 100644
+--- a/cmake/CMakeLists.txt
++++ b/cmake/CMakeLists.txt
+@@ -11,7 +11,7 @@ export(EXPORT ${package_name}
+ FILE "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Targets.cmake"
+ NAMESPACE ${package_name}::)
+
+-install(EXPORT ${package_name} DESTINATION lib/cmake/${package_name}
++install(EXPORT ${package_name} DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${package_name}
+ FILE ${package_name}Targets.cmake
+ NAMESPACE ${package_name}::)
+
+@@ -19,4 +19,4 @@ install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/${package_name}Config.cmake"
+ FindPahoMqttC.cmake
+ "${CMAKE_CURRENT_BINARY_DIR}/${package_name}ConfigVersion.cmake"
+- 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
+--- a/src/samples/CMakeLists.txt
++++ b/src/samples/CMakeLists.txt
+@@ -103,7 +103,7 @@ endif()
+
+ ## install binaries
+ install(TARGETS ${INSTALL_TARGETS} EXPORT PahoMqttCppSamples
+- RUNTIME DESTINATION bin
+- LIBRARY DESTINATION lib
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ )
+
+--
+2.35.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
new file mode 100644
index 0000000000..bb5aa69077
--- /dev/null
+++ b/meta-oe/recipes-connectivity/paho-mqtt-cpp/paho-mqtt-cpp_1.2.0.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-1.0 | EDL-1.0"
+
+LIC_FILES_CHKSUM = " \
+ file://src/mqtt/message.h;beginline=9;endline=18;md5=5eec304e6066523386c222963ceeb6ff \
+ file://edl-v10;md5=3adfcc70f5aeb7a44f3f9b495aa1fbf3 \
+ file://epl-v10;md5=659c8e92a40b6df1d9e3dccf5ae45a08 \
+"
+
+SRC_URI = "git://github.com/eclipse/paho.mqtt.cpp;protocol=https;branch=master \
+ 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/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch
deleted file mode 100644
index 8bb7e5a188..0000000000
--- a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils/0001-Include-limits.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From f7ad9a4471cee2324f216a0d82ba8097ec746c56 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 11:48:12 -0700
-Subject: [PATCH] Include limits.h for PATH_MAX
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/pnstat.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/pnstat.c b/src/pnstat.c
-index 661a5bc..76068e6 100644
---- a/src/pnstat.c
-+++ b/src/pnstat.c
-@@ -35,6 +35,7 @@
- #include <dirent.h>
- #include <unistd.h>
- #include <netinet/tcp.h>
-+#include <limits.h>
-
- struct fd
- {
---
-2.13.3
-
diff --git a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb b/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb
deleted file mode 100644
index 3c599950fe..0000000000
--- a/meta-oe/recipes-connectivity/phonet-utils/phonet-utils_git.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "This small package provides a few command line tools for Linux Phonet"
-HOMEPAGE = ""
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "git://gitorious.org/meego-cellular/phonet-utils.git;branch=master \
- file://0001-Include-limits.h-for-PATH_MAX.patch \
- "
-PR = "r2"
-S = "${WORKDIR}/git"
-SRCREV = "4acfa720fd37d178a048fc2be17180137d4a70ea"
-PV = "0.0.0+gitr${SRCPV}"
-
-inherit autotools-brokensep
-
-FILES_${PN} += "${base_libdir}/udev/rules.d/85-phonet-utils.rules"
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.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/rabbitmq-c/rabbitmq-c_0.7.0.bb b/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb
deleted file mode 100644
index e9846fdea5..0000000000
--- a/meta-oe/recipes-connectivity/rabbitmq-c/rabbitmq-c_0.7.0.bb
+++ /dev/null
@@ -1,18 +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"
-SRCREV = "4dde30ce8d984edda540349f57eb7995a87ba9de"
-
-S = "${WORKDIR}/git"
-
-DEPENDS = "popt openssl"
-
-EXTRA_OECONF = "--disable-examples --enable-tools --disable-docs"
-
-inherit autotools 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/rfkill/rfkill_0.5.bb b/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb
deleted file mode 100644
index 3e644760ce..0000000000
--- a/meta-oe/recipes-connectivity/rfkill/rfkill_0.5.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Radio enable/disable command line utility"
-HOMEPAGE = "http://linuxwireless.org/en/users/Documentation/rfkill"
-SECTION = "base"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c6036d0eb7edbfced28c4160e5d3fa94"
-
-SRC_URI = "http://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.bz2 \
- file://0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch \
- file://dont.call.git.rev-parse.on.parent.dir.patch"
-
-SRC_URI[md5sum] = "b957713a6cfbcd8ac0e94420aeddcf1a"
-SRC_URI[sha256sum] = "3e160cca504a53679f2b3254f31c53a4fb38a021bc50fed8eb57a436d33dfa07"
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- oe_runmake DESTDIR=${D} install
-}
-
-inherit update-alternatives
-
-ALTERNATIVE_${PN} = "rfkill"
-ALTERNATIVE_PRIORITY = "60"
-ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill"
-
diff --git a/meta-oe/recipes-connectivity/rfkill/rfkill_1.0.bb b/meta-oe/recipes-connectivity/rfkill/rfkill_1.0.bb
new file mode 100644
index 0000000000..c9c0738abe
--- /dev/null
+++ b/meta-oe/recipes-connectivity/rfkill/rfkill_1.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Radio enable/disable command line utility"
+HOMEPAGE = "http://linuxwireless.org/en/users/Documentation/rfkill"
+SECTION = "base"
+LICENSE = "0BSD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c6036d0eb7edbfced28c4160e5d3fa94"
+
+SRC_URI = "http://www.kernel.org/pub/software/network/${BPN}/${BP}.tar.xz \
+ file://0001-rfkill-makefile-don-t-use-t-the-OE-install-wrapper-d.patch \
+ file://dont.call.git.rev-parse.on.parent.dir.patch"
+
+SRC_URI[sha256sum] = "dffc631c611520478b8a286f57c67a35e8cb5802d376c6ca13b057365432389c"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
+
+inherit update-alternatives
+
+ALTERNATIVE:${PN} = "rfkill"
+ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_LINK_NAME[rfkill] = "${sbindir}/rfkill"
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 79d4f29fab..0000000000
--- a/meta-oe/recipes-connectivity/rtorrent/rtorrent/don-t-run-code-while-configuring-package.patch
+++ /dev/null
@@ -1,94 +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: libtorrent-0.13.3/scripts/checks.m4
-===================================================================
---- libtorrent-0.13.3.orig/scripts/checks.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/checks.m4 2013-02-10 15:28:37.414445524 +0200
-@@ -95,40 +95,6 @@
-
- AC_DEFUN([TORRENT_CHECK_KQUEUE_SOCKET_ONLY], [
- AC_MSG_CHECKING(whether kqueue supports pipes and ptys)
--
-- AC_RUN_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], [
-Index: libtorrent-0.13.3/scripts/common.m4
-===================================================================
---- libtorrent-0.13.3.orig/scripts/common.m4 2012-05-14 14:17:04.000000000 +0300
-+++ libtorrent-0.13.3/scripts/common.m4 2013-02-10 15:27:55.874446741 +0200
-@@ -222,38 +222,10 @@
-
- AC_DEFUN([TORRENT_CHECK_EXECINFO], [
- AC_MSG_CHECKING(for execinfo.h)
--
-- AC_RUN_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_RUN_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)
-- ])
- ])
-
-
diff --git a/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
index c731cf7079..d5411b19b2 100644
--- a/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
+++ b/meta-oe/recipes-connectivity/rtorrent/rtorrent_git.bb
@@ -1,16 +1,14 @@
SUMMARY = "Torrent client"
HOMEPAGE = "http://libtorrent.rakshasa.no/"
-LICENSE = "GPL-2.0"
+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 \
- file://don-t-run-code-while-configuring-package.patch \
-"
-SRCREV = "226e670decf92e7adaa845a6982aca4f164ea740"
+SRC_URI = "git://github.com/rakshasa/rtorrent;branch=master;protocol=https"
+SRCREV = "d067bd802e44f0e6a747aabcc311ada2175fd550"
-PV = "0.9.6+git${SRCPV}"
+PV = "0.9.8+git${SRCPV}"
S = "${WORKDIR}/git"
@@ -20,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/ser2net_3.4.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
deleted file mode 100644
index 708650fb9b..0000000000
--- a/meta-oe/recipes-connectivity/ser2net/ser2net_3.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A serial to network proxy"
-SECTION = "console/network"
-HOMEPAGE = "http://sourceforge.net/projects/ser2net/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bae3019b4c6dc4138c217864bd04331f"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/ser2net/ser2net/ser2net-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "562274d783534276a9feac913b7d8c4e"
-SRC_URI[sha256sum] = "d846066e27c3072565990745d030357aa0c278f96b7d1d4f59023347c1db8824"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.13.bb b/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.13.bb
new file mode 100644
index 0000000000..a4c244d447
--- /dev/null
+++ b/meta-oe/recipes-connectivity/ser2net/ser2net_4.3.13.bb
@@ -0,0 +1,18 @@
+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"
+
+SRC_URI[sha256sum] = "ed8b98448d535111d9a593b067601a8b53e2874814d706b2421a9490a660d265"
+
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/ser2net/files/ser2net"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch b/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch
new file mode 100644
index 0000000000..c714f74916
--- /dev/null
+++ b/meta-oe/recipes-connectivity/smstools3/smstools3/0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch
@@ -0,0 +1,606 @@
+From 77532d2e99252e3e07afa0f918bb8c9d73798f39 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 16:56:22 -0700
+Subject: [PATCH] Make extern declarations to avoid duplicate var definitions
+
+gcc-10+ defaults to -fno-common which flags these errors about mulitple
+definitions since the variables are defined in header files which are
+included from multiple sources, this patch ensures that extern
+declaration is added appropriately
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/blacklist.c | 2 +-
+ src/blacklist.h | 2 +-
+ src/charset.c | 2 +-
+ src/charshift.c | 2 +-
+ src/logging.c | 2 +-
+ src/logging.h | 4 +-
+ src/modeminit.c | 6 +-
+ src/smsd_cfg.c | 2 +
+ src/smsd_cfg.h | 274 ++++++++++++++++++++++++------------------------
+ src/stats.h | 22 ++--
+ src/whitelist.c | 2 +-
+ src/whitelist.h | 2 +-
+ 12 files changed, 164 insertions(+), 158 deletions(-)
+
+diff --git a/src/blacklist.c b/src/blacklist.c
+index 7440cca..0c00dd9 100755
+--- a/src/blacklist.c
++++ b/src/blacklist.c
+@@ -17,11 +17,11 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
++#include "smsd_cfg.h"
+ #include "blacklist.h"
+ #include "extras.h"
+ #include "logging.h"
+ #include "alarm.h"
+-#include "smsd_cfg.h"
+
+ int inblacklist(char* msisdn)
+ {
+diff --git a/src/blacklist.h b/src/blacklist.h
+index 4f99050..61fd294 100755
+--- a/src/blacklist.h
++++ b/src/blacklist.h
+@@ -15,7 +15,7 @@ Either version 2 of the License, or (at your option) any later version.
+ #ifndef BLACK_H
+ #define BLACK_H
+
+-char blacklist[256]; // Filename of the black-list
++EXTERN char blacklist[256]; // Filename of the black-list
+
+ int inblacklist(char* msisdn);
+
+diff --git a/src/charset.c b/src/charset.c
+index cd7c997..1716d70 100755
+--- a/src/charset.c
++++ b/src/charset.c
+@@ -19,9 +19,9 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <syslog.h>
+ #include <ctype.h>
+
++#include "smsd_cfg.h"
+ #include "charset.h"
+ #include "logging.h"
+-#include "smsd_cfg.h"
+ #include "pdu.h"
+ #include "extras.h"
+ #include "charshift.h"
+diff --git a/src/charshift.c b/src/charshift.c
+index 48ba340..2d7b26c 100755
+--- a/src/charshift.c
++++ b/src/charshift.c
+@@ -25,8 +25,8 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <stdio.h>
+ #include <stdarg.h>
+
+-#include "logging.h"
+ #include "smsd_cfg.h"
++#include "logging.h"
+ #include "pdu.h"
+ #include "charset.h"
+ #include "extras.h"
+diff --git a/src/logging.c b/src/logging.c
+index 6ee2c4e..4af341f 100755
+--- a/src/logging.c
++++ b/src/logging.c
+@@ -12,6 +12,7 @@ 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.
+ */
+
++#include "smsd_cfg.h"
+ #include "logging.h"
+ #include "extras.h"
+ #include <stdio.h>
+@@ -22,7 +23,6 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <time.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+-#include "smsd_cfg.h"
+ #include "stats.h"
+
+ int Filehandle = -1;
+diff --git a/src/logging.h b/src/logging.h
+index 4f27906..4550234 100755
+--- a/src/logging.h
++++ b/src/logging.h
+@@ -18,7 +18,7 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <time.h>
+
+ // 3.1.16beta2: Moved logch() and prch() from charset.c to logging.c:
+-char logch_buffer[8192];
++EXTERN char logch_buffer[8192];
+
+ #ifdef __GNUC__
+ void logch(char* format, ...) __attribute__ ((format(printf, 1, 2)));
+@@ -30,7 +30,7 @@ char prch(char ch);
+
+ // 3.1.16beta: changed type:
+ //int trouble_logging_started;
+-time_t trouble_logging_started;
++EXTERN time_t trouble_logging_started;
+
+ int change_loglevel(int new_level);
+ void restore_loglevel();
+diff --git a/src/modeminit.c b/src/modeminit.c
+index 42ff6b4..0d05fe9 100755
+--- a/src/modeminit.c
++++ b/src/modeminit.c
+@@ -19,8 +19,6 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <regex.h>
+ #include <ctype.h>
+ #include <time.h>
+-#include "logging.h"
+-#include "alarm.h"
+
+ #ifdef SOLARIS
+ #include <sys/filio.h>
+@@ -42,9 +40,11 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <netdb.h>
+ #endif
+
++#include "smsd_cfg.h"
++#include "logging.h"
++#include "alarm.h"
+ #include "extras.h"
+ #include "modeminit.h"
+-#include "smsd_cfg.h"
+ #include "version.h"
+ #include "pdu.h"
+ #include "stats.h"
+diff --git a/src/smsd_cfg.c b/src/smsd_cfg.c
+index 35c1198..32472b4 100755
+--- a/src/smsd_cfg.c
++++ b/src/smsd_cfg.c
+@@ -26,6 +26,8 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <ctype.h>
+ #include <grp.h>
+
++#define EXTERN
++
+ #include "extras.h"
+ #include "cfgfile.h"
+ #include "smsd_cfg.h"
+diff --git a/src/smsd_cfg.h b/src/smsd_cfg.h
+index 8ae208d..d6ece37 100755
+--- a/src/smsd_cfg.h
++++ b/src/smsd_cfg.h
+@@ -15,6 +15,10 @@ Either version 2 of the License, or (at your option) any later version.
+ #ifndef SMSD_CFG_H
+ #define SMSD_CFG_H
+
++#ifndef EXTERN
++#define EXTERN extern
++#endif
++
+ #include <limits.h>
+ #include <sys/types.h>
+ #include <time.h>
+@@ -126,17 +130,17 @@ Either version 2 of the License, or (at your option) any later version.
+ #define ALPHABET_UNKNOWN 4
+ #define ALPHABET_DEFAULT 0
+
+-char process_title[32]; // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks.
+-int process_id; // -1 for main task, all modems have numbers starting with 0.
++EXTERN char process_title[32]; // smsd for main task, NOTIFIER or CHILD, name of a modem for other tasks.
++EXTERN int process_id; // -1 for main task, all modems have numbers starting with 0.
+ // This is the same as device, can be used like devices[process_id] if IS_MODEM_PROCESS.
+
+-time_t process_start_time;
++EXTERN time_t process_start_time;
+
+-int modem_handle; // Handle for modem.
++EXTERN int modem_handle; // Handle for modem.
+
+-int put_command_timeouts;
+-unsigned long long put_command_sent; // 3.1.16beta.
+-char tmpdir[PATH_MAX]; // 3.1.16beta.
++EXTERN int put_command_timeouts;
++EXTERN unsigned long long put_command_sent; // 3.1.16beta.
++EXTERN char tmpdir[PATH_MAX]; // 3.1.16beta.
+
+ typedef struct
+ {
+@@ -284,204 +288,204 @@ typedef struct
+
+ // NOTE for regular run intervals: effective value is at least delaytime.
+
+-char configfile[PATH_MAX]; // Path to config file
+-char d_spool[PATH_MAX]; // Spool directory
+-char d_failed[PATH_MAX]; // Failed spool directory
+-char d_failed_copy[PATH_MAX]; // 3.1.17.
+-char d_incoming[PATH_MAX]; // Incoming spool directory
+-char d_incoming_copy[PATH_MAX]; // 3.1.16beta2.
+-char d_report[PATH_MAX]; // Incoming report spool directory
+-char d_report_copy[PATH_MAX]; // 3.1.17.
+-char d_phonecalls[PATH_MAX]; // Incoming phonecalls data directory
+-char d_saved[PATH_MAX]; // Directory for smsd's internal use, concatenation storage files etc.
+-char d_sent[PATH_MAX]; // Sent spool directory
+-char d_sent_copy[PATH_MAX]; // 3.1.17.
+-char d_checked[PATH_MAX]; // Spool directory for checked messages (only used when no provider queues used)
+-char eventhandler[PATH_MAX]; // Global event handler program or script
+-char alarmhandler[PATH_MAX]; // Global alarm handler program or script
+-char checkhandler[PATH_MAX]; // Handler that checks if the sms file is valid.
+-int alarmlevel; // Alarm Level (9=highest). Verbosity of alarm handler.
+-char logfile[PATH_MAX]; // Name or Handle of Log File
+-int loglevel; // Log Level (9=highest). Verbosity of log file.
+-_queue queues[NUMBER_OF_MODEMS]; // Queues
+-_device devices[NUMBER_OF_MODEMS]; // Modem devices
+-int delaytime; // sleep-time after workless
+-int delaytime_mainprocess; // sleep-time after workless, main process. If -1, delaytime is used.
+-int blocktime; // sleep-time after multiple errors
+-int blockafter; // Block modem after n errors
+-int errorsleeptime; // sleep-time after each error
+-int autosplit; // Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH
+-int receive_before_send; // if 1 smsd tries to receive one message before sending
+-int store_received_pdu; // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all
+-int store_sent_pdu; // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all
+-int validity_period; // Validity period for messages.
+-int decode_unicode_text; // 1 if unicode text is decoded internally.
+-int internal_combine; // 1 if multipart message is combined internally.
+-int internal_combine_binary; // 1 if multipart binary message is combined internally. Defaults to internal_combine.
+-int keep_filename; // 0 if unique filename is created to each directory when a message file is moved.
+-int store_original_filename; // 1 if an original filename is saved to message file when it's moved from
++EXTERN char configfile[PATH_MAX]; // Path to config file
++EXTERN char d_spool[PATH_MAX]; // Spool directory
++EXTERN char d_failed[PATH_MAX]; // Failed spool directory
++EXTERN char d_failed_copy[PATH_MAX]; // 3.1.17.
++EXTERN char d_incoming[PATH_MAX]; // Incoming spool directory
++EXTERN char d_incoming_copy[PATH_MAX]; // 3.1.16beta2.
++EXTERN char d_report[PATH_MAX]; // Incoming report spool directory
++EXTERN char d_report_copy[PATH_MAX]; // 3.1.17.
++EXTERN char d_phonecalls[PATH_MAX]; // Incoming phonecalls data directory
++EXTERN char d_saved[PATH_MAX]; // Directory for smsd's internal use, concatenation storage files etc.
++EXTERN char d_sent[PATH_MAX]; // Sent spool directory
++EXTERN char d_sent_copy[PATH_MAX]; // 3.1.17.
++EXTERN char d_checked[PATH_MAX]; // Spool directory for checked messages (only used when no provider queues used)
++EXTERN char eventhandler[PATH_MAX]; // Global event handler program or script
++EXTERN char alarmhandler[PATH_MAX]; // Global alarm handler program or script
++EXTERN char checkhandler[PATH_MAX]; // Handler that checks if the sms file is valid.
++EXTERN int alarmlevel; // Alarm Level (9=highest). Verbosity of alarm handler.
++EXTERN char logfile[PATH_MAX]; // Name or Handle of Log File
++EXTERN int loglevel; // Log Level (9=highest). Verbosity of log file.
++EXTERN _queue queues[NUMBER_OF_MODEMS]; // Queues
++EXTERN _device devices[NUMBER_OF_MODEMS]; // Modem devices
++EXTERN int delaytime; // sleep-time after workless
++EXTERN int delaytime_mainprocess; // sleep-time after workless, main process. If -1, delaytime is used.
++EXTERN int blocktime; // sleep-time after multiple errors
++EXTERN int blockafter; // Block modem after n errors
++EXTERN int errorsleeptime; // sleep-time after each error
++EXTERN int autosplit; // Splitting of large text messages 0=no, 1=yes 2=number with text, 3=number with UDH
++EXTERN int receive_before_send; // if 1 smsd tries to receive one message before sending
++EXTERN int store_received_pdu; // 0=no, 1=unsupported pdu's only, 2=unsupported and 8bit/unicode, 3=all
++EXTERN int store_sent_pdu; // 0=no, 1=failed pdu's only, 2=failed and 8bit/unicode, 3=all
++EXTERN int validity_period; // Validity period for messages.
++EXTERN int decode_unicode_text; // 1 if unicode text is decoded internally.
++EXTERN int internal_combine; // 1 if multipart message is combined internally.
++EXTERN int internal_combine_binary; // 1 if multipart binary message is combined internally. Defaults to internal_combine.
++EXTERN int keep_filename; // 0 if unique filename is created to each directory when a message file is moved.
++EXTERN int store_original_filename; // 1 if an original filename is saved to message file when it's moved from
+ // outgoing directory to spooler. Works together with keep_filename.
+-int date_filename; // 1 or 2 if YYYYMMDD is included to the filename of incoming message.
+-char regular_run[PATH_MAX]; // Script/program which is run regularly.
+-int regular_run_interval; // Number of seconds between running a regular_run script/progdam.
+-char admin_to[SIZE_TO]; // Destination number for administrative messages.
+-int filename_preview; // Number of chars of message text to concatenate to filename.
+-int incoming_utf8; // 1 if incoming files are saved using UTF-8 character set.
+-int outgoing_utf8; // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM.
+-int log_charconv; // 1 if character set conversion is logged.
+-int log_single_lines; // 1 if linefeeds are removed from the modem response to be logged.
+-int executable_check; // 0 if eventhandler and other executables are NOT checked during the startup checking.
+-int keep_messages; // For testing purposes: messages are not deleted and smsd stops after first run.
+-char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages.
+-int ic_purge_hours; // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes
+-int ic_purge_minutes; // and if there is message parts older than defined, they are handled or deleted.
+-int ic_purge_read; // 1 = message parts are stored as single messages. 0 = parts are just deleted.
+-int ic_purge_interval; //
+-char shell[PATH_MAX]; // Shell used to run eventhandler, defaults to /bin/sh
+-char adminmessage_device[32]; // Name of device used to send administrative messages of mainspooler.
+-int smart_logging; // 1 = if loglevel is less than 7, degug log is written is there has been any errors.
+-int status_signal_quality; // 1 = signal quality is written to status file.
+-int status_include_counters; // 1 = succeeded, failed and received counters are included in the status line.
+-int status_include_uptime; // 3.1.16beta: 1 = include started & uptime line in the status file.
+-int hangup_incoming_call; // 1 = if detected unexpected input contains RING and we want to end call.
+-int max_continuous_sending; // Defines when sending is breaked to do check/do other tasks. Time in minutes.
+-int voicecall_hangup_ath; // If ATH is used instead of AT+CHUP.
++EXTERN int date_filename; // 1 or 2 if YYYYMMDD is included to the filename of incoming message.
++EXTERN char regular_run[PATH_MAX]; // Script/program which is run regularly.
++EXTERN int regular_run_interval; // Number of seconds between running a regular_run script/progdam.
++EXTERN char admin_to[SIZE_TO]; // Destination number for administrative messages.
++EXTERN int filename_preview; // Number of chars of message text to concatenate to filename.
++EXTERN int incoming_utf8; // 1 if incoming files are saved using UTF-8 character set.
++EXTERN int outgoing_utf8; // 1 if outgoing files are automatically converted from UTF-8 to ISO and GSM.
++EXTERN int log_charconv; // 1 if character set conversion is logged.
++EXTERN int log_single_lines; // 1 if linefeeds are removed from the modem response to be logged.
++EXTERN int executable_check; // 0 if eventhandler and other executables are NOT checked during the startup checking.
++EXTERN int keep_messages; // For testing purposes: messages are not deleted and smsd stops after first run.
++EXTERN char priviledged_numbers[SIZE_PRIVILEDGED_NUMBERS]; // Priviledged numbers in incoming messages.
++EXTERN int ic_purge_hours; // If internal_combine is used, concatenation storage is checked every ic_purge_interval minutes
++EXTERN int ic_purge_minutes; // and if there is message parts older than defined, they are handled or deleted.
++EXTERN int ic_purge_read; // 1 = message parts are stored as single messages. 0 = parts are just deleted.
++EXTERN int ic_purge_interval; //
++EXTERN char shell[PATH_MAX]; // Shell used to run eventhandler, defaults to /bin/sh
++EXTERN char adminmessage_device[32]; // Name of device used to send administrative messages of mainspooler.
++EXTERN int smart_logging; // 1 = if loglevel is less than 7, degug log is written is there has been any errors.
++EXTERN int status_signal_quality; // 1 = signal quality is written to status file.
++EXTERN int status_include_counters; // 1 = succeeded, failed and received counters are included in the status line.
++EXTERN int status_include_uptime; // 3.1.16beta: 1 = include started & uptime line in the status file.
++EXTERN int hangup_incoming_call; // 1 = if detected unexpected input contains RING and we want to end call.
++EXTERN int max_continuous_sending; // Defines when sending is breaked to do check/do other tasks. Time in minutes.
++EXTERN int voicecall_hangup_ath; // If ATH is used instead of AT+CHUP.
+
+ // 3.1.5:
+-int trust_outgoing; // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling.
++EXTERN int trust_outgoing; // 1 = it's _sure_ that files are created by rename AND permissions are correct. Speeds up spooling.
+
+ // 3.1.5:
+-int ignore_outgoing_priority; // 1 = Priority: high header is not checked. Speeds up spooling.
++EXTERN int ignore_outgoing_priority; // 1 = Priority: high header is not checked. Speeds up spooling.
+
+ // 3.1.7:
+-int ignore_exec_output; // 1 = stdout and stderr of eventhandlers is _not_ checked.
++EXTERN int ignore_exec_output; // 1 = stdout and stderr of eventhandlers is _not_ checked.
+
+ // 3.1.7:
+-mode_t conf_umask; // File mode creation mask for smsd and modem processes.
++EXTERN mode_t conf_umask; // File mode creation mask for smsd and modem processes.
+
+ // 3.1.7:
+-int trim_text; // 1 = trailing whitespaces are removed from text:
++EXTERN int trim_text; // 1 = trailing whitespaces are removed from text:
+
+ // 3.1.7:
+-int use_linux_ps_trick; // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc.
++EXTERN int use_linux_ps_trick; // 1 = change argv[0] to "smsd: MAINPROCESS", "smsd: GSM1" etc.
+
+ // 3.1.7:
+-int log_unmodified;
++EXTERN int log_unmodified;
+
+ // 3.1.7:
+-char suspend_filename[PATH_MAX];
++EXTERN char suspend_filename[PATH_MAX];
+
+ // 3.1.9:
+-int spool_directory_order;
++EXTERN int spool_directory_order;
+
+ // 3.1.9: 1 if read_from_modem is logged.
+-int log_read_from_modem;
++EXTERN int log_read_from_modem;
+
+ // 3.1.16beta2: log_read_timing for performance tuning.
+-int log_read_timing;
++EXTERN int log_read_timing;
+
+ // 3.1.16beta:
+-int log_response_time;
++EXTERN int log_response_time;
+
+ // 3.1.16beta2:
+-int default_alphabet;
++EXTERN int default_alphabet;
+
+ // 3.1.17: Child process for the mainprocess:
+-char mainprocess_child[PATH_MAX];
+-char mainprocess_child_args[PATH_MAX];
++EXTERN char mainprocess_child[PATH_MAX];
++EXTERN char mainprocess_child_args[PATH_MAX];
+
+ // 3.1.17: Notifier for the mainprocess:
+-int mainprocess_notifier;
++EXTERN int mainprocess_notifier;
+
+ // 3.1.17: If *_copy was made, evenhandler can use it instead of original file:
+-int eventhandler_use_copy;
++EXTERN int eventhandler_use_copy;
+
+ // 3.1.17: This defines how long to sleep while looping:
+-int sleeptime_mainprocess;
++EXTERN int sleeptime_mainprocess;
+
+ // 3.1.17: Defines how often PID is checked to detect if another smsd is running:
+-int check_pid_interval;
++EXTERN int check_pid_interval;
+
+ // 3.1.18: start script/program for mainprocess:
+-char mainprocess_start[PATH_MAX];
+-char mainprocess_start_args[PATH_MAX];
++EXTERN char mainprocess_start[PATH_MAX];
++EXTERN char mainprocess_start_args[PATH_MAX];
+
+-int message_count; // Counter for sent messages. Multipart message is one message.
++EXTERN int message_count; // Counter for sent messages. Multipart message is one message.
+
+-volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received.
+-volatile sig_atomic_t terminate; // To terminate when SIGTERM is received.
++EXTERN volatile sig_atomic_t break_workless_delay; // To break the delay when SIGCONT is received.
++EXTERN volatile sig_atomic_t terminate; // To terminate when SIGTERM is received.
+
+-char username[65]; // user and group name which are used to run.
+-char groupname[65]; // (max length is just a guess)
++EXTERN char username[65]; // user and group name which are used to run.
++EXTERN char groupname[65]; // (max length is just a guess)
+
+-char infofile[PATH_MAX]; // Hepler file for stopping the smsd smoothly.
+-char pidfile[PATH_MAX]; // File where a process id is stored.
++EXTERN char infofile[PATH_MAX]; // Hepler file for stopping the smsd smoothly.
++EXTERN char pidfile[PATH_MAX]; // File where a process id is stored.
+
+ // Command line arguments:
+-char arg_username[65];
+-char arg_groupname[65];
+-char arg_infofile[PATH_MAX];
+-char arg_pidfile[PATH_MAX];
+-char arg_logfile[PATH_MAX];
+-int arg_terminal;
++EXTERN char arg_username[65];
++EXTERN char arg_groupname[65];
++EXTERN char arg_infofile[PATH_MAX];
++EXTERN char arg_pidfile[PATH_MAX];
++EXTERN char arg_logfile[PATH_MAX];
++EXTERN int arg_terminal;
+ // 3.1.7:
+-char arg_7bit_packed[512];
+-int do_encode_decode_arg_7bit_packed;
++EXTERN char arg_7bit_packed[512];
++EXTERN int do_encode_decode_arg_7bit_packed;
+
+-int terminal; // 1 if smsd is communicating with terminal.
+-pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes.
+-char run_info[PATH_MAX]; // Information about external script/program execution.
++EXTERN int terminal; // 1 if smsd is communicating with terminal.
++EXTERN pid_t device_pids[NUMBER_OF_MODEMS]; // Pid's of modem processes.
++EXTERN char run_info[PATH_MAX]; // Information about external script/program execution.
+
+-char communicate[32]; // Device name for terminal communication mode.
++EXTERN char communicate[32]; // Device name for terminal communication mode.
+
+-char international_prefixes[PATH_MAX +1];
+-char national_prefixes[PATH_MAX +1];
++EXTERN char international_prefixes[PATH_MAX +1];
++EXTERN char national_prefixes[PATH_MAX +1];
+
+ // Storage for startup errors:
+-char *startup_err_str;
+-int startup_err_count;
++EXTERN char *startup_err_str;
++EXTERN int startup_err_count;
+
+ // Storage for PDU's:
+-char *incoming_pdu_store;
+-char *outgoing_pdu_store;
+-char *routed_pdu_store;
++EXTERN char *incoming_pdu_store;
++EXTERN char *outgoing_pdu_store;
++EXTERN char *routed_pdu_store;
+
+ // Storage for getfile errors:
+-char *getfile_err_store;
++EXTERN char *getfile_err_store;
+
+ // Text buffer for error messages:
+-char tb[SIZE_TB];
++EXTERN char tb[SIZE_TB];
+
+ // Buffer for SIM memory checking:
+-char *check_memory_buffer;
+-size_t check_memory_buffer_size;
++EXTERN char *check_memory_buffer;
++EXTERN size_t check_memory_buffer_size;
+
+-int os_cygwin; // 1 if we are on Cygwin.
++EXTERN int os_cygwin; // 1 if we are on Cygwin.
+
+-char language_file[PATH_MAX]; // File name of translated headers.
+-char yes_chars[SIZE_HEADER]; // Characters which mean "yes" in the yesno() question.
+-char no_chars[SIZE_HEADER]; // See details inside read_translation() function.
+-char yes_word[SIZE_HEADER]; // "yes" printed as an output.
+-char no_word[SIZE_HEADER]; // "no"
+-char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports).
+-char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps
+-char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename
+-int translate_incoming; // 0 if incoming message headers are NOT transtaled.
++EXTERN char language_file[PATH_MAX]; // File name of translated headers.
++EXTERN char yes_chars[SIZE_HEADER]; // Characters which mean "yes" in the yesno() question.
++EXTERN char no_chars[SIZE_HEADER]; // See details inside read_translation() function.
++EXTERN char yes_word[SIZE_HEADER]; // "yes" printed as an output.
++EXTERN char no_word[SIZE_HEADER]; // "no"
++EXTERN char datetime_format[SIZE_HEADER]; // strftime format string for time stamps (not inside status reports).
++EXTERN char logtime_format[SIZE_HEADER]; // 3.1.7: strftime format string for logging time stamps
++EXTERN char date_filename_format[SIZE_HEADER]; // 3.1.7: strftime format string for date_filename
++EXTERN int translate_incoming; // 0 if incoming message headers are NOT transtaled.
+
+ // 3.1.14:
+-int logtime_us;
+-int logtime_ms;
++EXTERN int logtime_us;
++EXTERN int logtime_ms;
+
+ // 3.1.14:
+-int shell_test;
++EXTERN int shell_test;
+
+ // Next two are for debugging purposes:
+-int enable_smsd_debug;
+-char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file.
++EXTERN int enable_smsd_debug;
++EXTERN char smsd_debug[SIZE_SMSD_DEBUG]; // Header of an outgoing message file.
+
+ // 3.1.20: Alt keys in communication mode:
+ #define COMMUNICATE_A_KEY_COUNT 10
+-char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256];
++EXTERN char communicate_a_keys[COMMUNICATE_A_KEY_COUNT][256];
+
+ /* initialize all variable with default values */
+
+diff --git a/src/stats.h b/src/stats.h
+index bd5cdc9..a614af1 100755
+--- a/src/stats.h
++++ b/src/stats.h
+@@ -33,17 +33,17 @@ typedef struct
+ int ber;
+ } _stats;
+
+-_stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!)
+-int rejected_counter; // Statistic counter, rejected SM, number does not fit into any queue
+-time_t start_time; // Start time of smsd, allows statistic functions
+-int printstatus; // if 1 smsd outputs status on stdout
+-time_t last_stats; // time when the last stats file was created
+-char d_stats[PATH_MAX]; // path to statistic files
+-int stats_interval; // time between statistic files in seconds.
+-int stats_no_zeroes; // Suppress files that contain only zeroes
+-int status_interval; // time between updating status file in seconds
+-
+-char *shared_buffer;
++EXTERN _stats* statistics[NUMBER_OF_MODEMS]; // Statistic data (shared memory!)
++EXTERN int rejected_counter; // Statistic counter, rejected SM, number does not fit into any queue
++EXTERN time_t start_time; // Start time of smsd, allows statistic functions
++EXTERN int printstatus; // if 1 smsd outputs status on stdout
++EXTERN time_t last_stats; // time when the last stats file was created
++EXTERN char d_stats[PATH_MAX]; // path to statistic files
++EXTERN int stats_interval; // time between statistic files in seconds.
++EXTERN int stats_no_zeroes; // Suppress files that contain only zeroes
++EXTERN int status_interval; // time between updating status file in seconds
++
++EXTERN char *shared_buffer;
+
+ /* Creates shared memory variables for statistic data */
+
+diff --git a/src/whitelist.c b/src/whitelist.c
+index 4ee7a69..3d90bf4 100755
+--- a/src/whitelist.c
++++ b/src/whitelist.c
+@@ -17,11 +17,11 @@ Either version 2 of the License, or (at your option) any later version.
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
++#include "smsd_cfg.h"
+ #include "whitelist.h"
+ #include "extras.h"
+ #include "logging.h"
+ #include "alarm.h"
+-#include "smsd_cfg.h"
+
+ /* Used with >= 3.1x */
+ int inwhitelist_q(char* msisdn, char *queuename)
+diff --git a/src/whitelist.h b/src/whitelist.h
+index 88aea86..3f904f4 100755
+--- a/src/whitelist.h
++++ b/src/whitelist.h
+@@ -15,7 +15,7 @@ Either version 2 of the License, or (at your option) any later version.
+ #ifndef WHITE_H
+ #define WHITE_H
+
+-char whitelist[256]; // Filename of the white-list
++EXTERN char whitelist[256]; // Filename of the white-list
+
+ /* Used with >= 3.1x */
+ int inwhitelist_q(char* msisdn, char *queuename);
+--
+2.28.0
+
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/smstools3/smstools3_3.1.21.bb b/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
index 6e6413b4bc..9e54968633 100644
--- a/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
+++ b/meta-oe/recipes-connectivity/smstools3/smstools3_3.1.21.bb
@@ -1,13 +1,15 @@
SUMMARY = "SMS Gateway software"
DESCRIPTION = "The SMS Server Tools 3 is a SMS Gateway software which can send and receive short messages through GSM modems and mobile phones."
SECTION = "console/network"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=4d21efa1bb2a186360dde4035f860682"
HOMEPAGE = "http://smstools3.kekekasvi.com"
SRC_URI = "http://smstools3.kekekasvi.com/packages/${BP}.tar.gz \
file://sms_binpath.patch \
- file://scripts_no_bash.patch"
+ file://scripts_no_bash.patch \
+ file://0001-Make-extern-declarations-to-avoid-duplicate-var-defi.patch \
+ "
SRC_URI[md5sum] = "6a9f038fb38a49cc3a4f8f14a88fb8af"
SRC_URI[sha256sum] = "a26ba4c02b16f6cf13177bffca6c9230dc5fefaeba8e3030cd4e4905f6a92084"
diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb
deleted file mode 100644
index 01c6e3781e..0000000000
--- a/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.0.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Telepathy Framework glib-base helper library"
-DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection managers"
-HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
-DEPENDS = "glib-2.0 dbus hostpython-runtime-native dbus-native dbus-glib libxslt-native"
-LICENSE = "LGPLv2.1+"
-
-SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BP}.tar.gz"
-SRC_URI[md5sum] = "93c429e37750b25dcf8de86bb514664f"
-SRC_URI[sha256sum] = "ae0002134991217f42e503c43dea7817853afc18863b913744d51ffa029818cf"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e"
-
-inherit autotools pkgconfig gettext gobject-introspection
-
-FILES_${PN} += "${datadir}/telepathy \
- ${datadir}/dbus-1"
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
new file mode 100644
index 0000000000..1891eae40d
--- /dev/null
+++ b/meta-oe/recipes-connectivity/telepathy/telepathy-glib_0.24.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Telepathy Framework glib-base helper library"
+DESCRIPTION = "Telepathy Framework: GLib-based helper library for connection managers"
+HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
+DEPENDS = "glib-2.0 dbus hostpython-runtime-native dbus-native dbus-glib libxslt-native"
+LICENSE = "LGPL-2.1-or-later"
+
+SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-glib/${BP}.tar.gz"
+SRC_URI[md5sum] = "cbeb0a24acc26e7f095be281c324da69"
+SRC_URI[sha256sum] = "9e0df1d8f857e0270cf0b32e2d1ca5a24aa7282873361785d573f72ad7f7d5eb"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=e413d83db6ee8f2c8e6055719096a48e"
+
+inherit autotools pkgconfig gettext gobject-introspection vala
+
+# Respect GI_DATA_ENABLED value when enabling vala-bindings:
+# configure: error: GObject-Introspection must be enabled for Vala bindings
+EXTRA_OECONF = "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '--enable-vala-bindings', '--disable-vala-bindings', d)}"
+
+FILES:${PN} += "${datadir}/telepathy \
+ ${datadir}/dbus-1"
diff --git a/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb b/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
index ca09f6daf3..039cfc3a89 100644
--- a/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
+++ b/meta-oe/recipes-connectivity/telepathy/telepathy-idle_0.2.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "Telepathy IRC connection manager"
DESCRIPTION = "Telepathy implementation of the Internet Relay Chat protocols."
HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
DEPENDS = "glib-2.0 dbus telepathy-glib openssl libxslt-native"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://src/idle.c;beginline=1;endline=19;md5=b06b1e2594423111a1a7910b0eefc7f9"
@@ -11,7 +11,12 @@ SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz
SRC_URI[md5sum] = "92a2de5198284cbd3c430b0d1a971a86"
SRC_URI[sha256sum] = "3013ad4b38d14ee630b8cc8ada5e95ccaa849b9a6fe15d2eaf6d0717d76f2fab"
-inherit autotools pkgconfig pythonnative
+inherit autotools pkgconfig ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)}
-FILES_${PN} += "${datadir}/telepathy \
+FILES:${PN} += "${datadir}/telepathy \
${datadir}/dbus-1"
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch
deleted file mode 100644
index fcc2f08214..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-Forcibly-disable-check-for-Qt5.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b3da0d8677b7e8467367a303c18551c56ed20e15 Mon Sep 17 00:00:00 2001
-From: Philip Balister <philip@balister.org>
-Date: Tue, 12 Apr 2016 17:30:15 -0400
-Subject: [PATCH] Forcibly disable check for Qt5.
-
-Signed-off-by: Philip Balister <philip@balister.org>
----
- build/cmake/DefineOptions.cmake | 3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/build/cmake/DefineOptions.cmake b/build/cmake/DefineOptions.cmake
-index 62e240f..f8b4493 100644
---- a/build/cmake/DefineOptions.cmake
-+++ b/build/cmake/DefineOptions.cmake
-@@ -52,9 +52,6 @@ CMAKE_DEPENDENT_OPTION(WITH_LIBEVENT "Build with libevent support" ON
- find_package(Qt4 QUIET COMPONENTS QtCore QtNetwork)
- CMAKE_DEPENDENT_OPTION(WITH_QT4 "Build with Qt4 support" ON
- "QT4_FOUND" OFF)
--find_package(Qt5 QUIET COMPONENTS Core Network)
--CMAKE_DEPENDENT_OPTION(WITH_QT5 "Build with Qt5 support" ON
-- "Qt5_FOUND" OFF)
- if(${WITH_QT4} AND ${WITH_QT5} AND ${CMAKE_MAJOR_VERSION} LESS 3)
- # cmake < 3.0.0 causes conflict when building both Qt4 and Qt5
- set(WITH_QT4 OFF)
---
-2.5.5
-
diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch
deleted file mode 100644
index 7cc8d17393..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From bc577820ad25795543b31f123e309cdaebc7d6c6 Mon Sep 17 00:00:00 2001
-From: Cody P Schafer <dev@codyps.com>
-Date: Mon, 16 May 2016 15:21:10 -0400
-Subject: [PATCH 1/2] THRIFT-3828 In cmake avoid use of both quoted paths and
- SYSTEM with include_directories()
-
-This allows us to avoid issues where there are no paths to be added to
-the include path (include_directories() errors when given an empty
-string).
-
-Specifically, gcc-6 requires that libraries stop passing paths like
-'/usr/include' (or they will get libstdc++ build errors), so these paths
-will be empty more often in the future.
----
- lib/cpp/CMakeLists.txt | 8 ++++----
- lib/cpp/test/CMakeLists.txt | 2 +-
- test/cpp/CMakeLists.txt | 6 +++---
- tutorial/cpp/CMakeLists.txt | 2 +-
- 4 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/lib/cpp/CMakeLists.txt b/lib/cpp/CMakeLists.txt
-index 4c7caeb..a716ac3 100755
---- a/lib/cpp/CMakeLists.txt
-+++ b/lib/cpp/CMakeLists.txt
-@@ -24,7 +24,7 @@ else()
- find_package(Boost 1.53.0 REQUIRED)
- endif()
-
--include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
-+include_directories(${Boost_INCLUDE_DIRS})
- include_directories(src)
-
- # SYSLIBS contains libraries that need to be linked to all lib targets
-@@ -104,7 +104,7 @@ if(OPENSSL_FOUND AND WITH_OPENSSL)
- src/thrift/transport/TSSLSocket.cpp
- src/thrift/transport/TSSLServerSocket.cpp
- )
-- include_directories(SYSTEM "${OPENSSL_INCLUDE_DIR}")
-+ include_directories(${OPENSSL_INCLUDE_DIR})
- list(APPEND SYSLIBS "${OPENSSL_LIBRARIES}")
- endif()
-
-@@ -162,7 +162,7 @@ TARGET_LINK_LIBRARIES_THRIFT(thrift ${SYSLIBS})
-
- if(WITH_LIBEVENT)
- find_package(Libevent REQUIRED) # Libevent comes with CMake support form upstream
-- include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS})
-+ include_directories(${LIBEVENT_INCLUDE_DIRS})
-
- ADD_LIBRARY_THRIFT(thriftnb ${thriftcppnb_SOURCES})
- TARGET_LINK_LIBRARIES_THRIFT(thriftnb ${SYSLIBS} ${LIBEVENT_LIBRARIES})
-@@ -171,7 +171,7 @@ endif()
-
- if(WITH_ZLIB)
- find_package(ZLIB REQUIRED)
-- include_directories(SYSTEM ${ZLIB_INCLUDE_DIRS})
-+ include_directories(${ZLIB_INCLUDE_DIRS})
-
- ADD_LIBRARY_THRIFT(thriftz ${thriftcppz_SOURCES})
- TARGET_LINK_LIBRARIES_THRIFT(thriftz ${SYSLIBS} ${ZLIB_LIBRARIES})
-diff --git a/lib/cpp/test/CMakeLists.txt b/lib/cpp/test/CMakeLists.txt
-index 5de9fc4..c956c38 100644
---- a/lib/cpp/test/CMakeLists.txt
-+++ b/lib/cpp/test/CMakeLists.txt
-@@ -20,7 +20,7 @@
- # Find required packages
- set(Boost_USE_STATIC_LIBS ON) # Force the use of static boost test framework
- find_package(Boost 1.53.0 REQUIRED COMPONENTS chrono filesystem system thread unit_test_framework)
--include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
-+include_directories(${Boost_INCLUDE_DIRS})
-
- #Make sure gen-cpp files can be included
- include_directories("${CMAKE_CURRENT_BINARY_DIR}")
-diff --git a/test/cpp/CMakeLists.txt b/test/cpp/CMakeLists.txt
-index 2d75f2e..b1409de 100755
---- a/test/cpp/CMakeLists.txt
-+++ b/test/cpp/CMakeLists.txt
-@@ -22,13 +22,13 @@ include(ThriftMacros)
-
- set(Boost_USE_STATIC_LIBS ON)
- find_package(Boost 1.53.0 REQUIRED COMPONENTS program_options system filesystem)
--include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
-+include_directories(${Boost_INCLUDE_DIRS})
-
- find_package(OpenSSL REQUIRED)
--include_directories(SYSTEM "${OPENSSL_INCLUDE_DIR}")
-+include_directories(${OPENSSL_INCLUDE_DIR})
-
- find_package(Libevent REQUIRED) # Libevent comes with CMake support from upstream
--include_directories(SYSTEM ${LIBEVENT_INCLUDE_DIRS})
-+include_directories(${LIBEVENT_INCLUDE_DIRS})
-
- #Make sure gen-cpp files can be included
- include_directories("${CMAKE_CURRENT_BINARY_DIR}")
-diff --git a/tutorial/cpp/CMakeLists.txt b/tutorial/cpp/CMakeLists.txt
-index 2b0c143..5ecae17 100644
---- a/tutorial/cpp/CMakeLists.txt
-+++ b/tutorial/cpp/CMakeLists.txt
-@@ -18,7 +18,7 @@
- #
-
- find_package(Boost 1.53.0 REQUIRED)
--include_directories(SYSTEM "${Boost_INCLUDE_DIRS}")
-+include_directories(${Boost_INCLUDE_DIRS})
-
- #Make sure gen-cpp files can be included
- include_directories("${CMAKE_CURRENT_BINARY_DIR}")
---
-2.9.3
-
diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch
deleted file mode 100644
index f13adbb6bc..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From f6cad0580e5391c37af7f60adddb71bf1a403dc4 Mon Sep 17 00:00:00 2001
-From: Cody P Schafer <dev@codyps.com>
-Date: Fri, 9 Sep 2016 15:50:26 -0400
-Subject: [PATCH 2/2] THRIFT-3831 in test/cpp explicitly use `signed char`
-
-`char`'s signed-ness is implimentation dependent, and in the case where
-`char` was not signed, we previously recieved errors like
-
- thrift/0.9.3-r0/git/test/cpp/src/TestClient.cpp:404:15: error: narrowing conversion of '-127' from 'int' to 'char' inside { } [-Wnarrowing]
-
-(This example from gcc-6 on arm)
----
- test/cpp/src/TestClient.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/test/cpp/src/TestClient.cpp b/test/cpp/src/TestClient.cpp
-index e709899..4a961f8 100644
---- a/test/cpp/src/TestClient.cpp
-+++ b/test/cpp/src/TestClient.cpp
-@@ -383,7 +383,7 @@ int main(int argc, char** argv) {
- * BINARY TEST
- */
- printf("testBinary([-128..127]) = {");
-- const char bin_data[256]
-+ const signed char bin_data[256]
- = {-128, -127, -126, -125, -124, -123, -122, -121, -120, -119, -118, -117, -116, -115, -114,
- -113, -112, -111, -110, -109, -108, -107, -106, -105, -104, -103, -102, -101, -100, -99,
- -98, -97, -96, -95, -94, -93, -92, -91, -90, -89, -88, -87, -86, -85, -84,
-@@ -404,7 +404,7 @@ int main(int argc, char** argv) {
- 127};
- try {
- string bin_result;
-- testClient.testBinary(bin_result, string(bin_data, 256));
-+ testClient.testBinary(bin_result, string(reinterpret_cast<const char *>(bin_data), 256));
- if (bin_result.size() != 256) {
- printf("}\n*** FAILED ***\n");
- printf("invalid length: %lu\n", bin_result.size());
---
-2.9.3
-
diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch
deleted file mode 100644
index 44764359ce..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-index 68e475d..19132ff 100644
---- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-+++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-@@ -39,6 +39,7 @@
- #include <thrift/transport/PlatformSocket.h>
-
- #define OPENSSL_VERSION_NO_THREAD_ID 0x10000000L
-+#define OPENSSL_VERSION_WITH_TLSv1_1_AND_TLSv1_2 0x10100000L
-
- using namespace std;
- using namespace apache::thrift::concurrency;
-@@ -148,10 +149,15 @@ SSLContext::SSLContext(const SSLProtocol& protocol) {
- ctx_ = SSL_CTX_new(SSLv3_method());
- } else if (protocol == TLSv1_0) {
- ctx_ = SSL_CTX_new(TLSv1_method());
-+#if (OPENSSL_VERSION_NUMBER >= OPENSSL_VERSION_WITH_TLSv1_1_AND_TLSv1_2)
- } else if (protocol == TLSv1_1) {
- ctx_ = SSL_CTX_new(TLSv1_1_method());
- } else if (protocol == TLSv1_2) {
- ctx_ = SSL_CTX_new(TLSv1_2_method());
-+#else
-+ //Support for this versions will end on 2016-12-31
-+ //https://www.openssl.org/about/releasestrat.html
-+#endif
- } else {
- /// UNKNOWN PROTOCOL!
- throw TSSLException("SSL_CTX_new: Unknown protocol");
diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch
deleted file mode 100644
index 8d71056675..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From cc4f32db13ddc62fbd1e316127c5a60f4080a2d3 Mon Sep 17 00:00:00 2001
-From: "James E. King, III" <jim.king@simplivity.com>
-Date: Thu, 29 Sep 2016 15:04:09 -0400
-Subject: [PATCH] THRIFT-3878: fix interop with newer OpenSSL libraries
-
----
- lib/cpp/src/thrift/transport/TSSLSocket.cpp | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-index 517151f714..1efb9f7a47 100644
---- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-+++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-@@ -108,7 +108,12 @@ void initializeOpenSSL() {
- SSL_library_init();
- SSL_load_error_strings();
- // static locking
-+ // newer versions of OpenSSL changed CRYPTO_num_locks - see THRIFT-3878
-+#ifdef CRYPTO_num_locks
-+ mutexes = boost::shared_array<Mutex>(new Mutex[CRYPTO_num_locks()]);
-+#else
- mutexes = boost::shared_array<Mutex>(new Mutex[ ::CRYPTO_num_locks()]);
-+#endif
- if (mutexes == NULL) {
- throw TTransportException(TTransportException::INTERNAL_ERROR,
- "initializeOpenSSL() failed, "
diff --git a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch b/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch
deleted file mode 100644
index 9c18171f1e..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift-0.9.3/0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 53dc6e255bec2e4cd8bae85d14bec1cf28310d3f Mon Sep 17 00:00:00 2001
-From: Nobuaki Sukegawa <nsuke@apache.org>
-Date: Sun, 13 Mar 2016 08:55:38 +0900
-Subject: [PATCH] THRIFT-3736 C++ library build fails if OpenSSL does not
- surrpot SSLv3
-
----
- lib/cpp/src/thrift/transport/TSSLSocket.cpp | 2 ++
- lib/cpp/test/SecurityTest.cpp | 8 ++++++++
- 2 files changed, 10 insertions(+)
-
-diff --git a/lib/cpp/src/thrift/transport/TSSLSocket.cpp b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-index bd13160260..517151f714 100644
---- a/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-+++ b/lib/cpp/src/thrift/transport/TSSLSocket.cpp
-@@ -151,8 +151,10 @@ static char uppercase(char c);
- SSLContext::SSLContext(const SSLProtocol& protocol) {
- if (protocol == SSLTLS) {
- ctx_ = SSL_CTX_new(SSLv23_method());
-+#ifndef OPENSSL_NO_SSL3
- } else if (protocol == SSLv3) {
- ctx_ = SSL_CTX_new(SSLv3_method());
-+#endif
- } else if (protocol == TLSv1_0) {
- ctx_ = SSL_CTX_new(TLSv1_method());
- } else if (protocol == TLSv1_1) {
-diff --git a/lib/cpp/test/SecurityTest.cpp b/lib/cpp/test/SecurityTest.cpp
-index 9968e2c478..23650d6280 100644
---- a/lib/cpp/test/SecurityTest.cpp
-+++ b/lib/cpp/test/SecurityTest.cpp
-@@ -240,6 +240,14 @@ BOOST_AUTO_TEST_CASE(ssl_security_matrix)
- continue;
- }
-
-+#ifdef OPENSSL_NO_SSL3
-+ if (si == 2 || ci == 2)
-+ {
-+ // Skip all SSLv3 cases - protocol not supported
-+ continue;
-+ }
-+#endif
-+
- boost::mutex::scoped_lock lock(mMutex);
-
- BOOST_TEST_MESSAGE(boost::format("TEST: Server = %1%, Client = %2%")
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
new file mode 100644
index 0000000000..bbfc6c8069
--- /dev/null
+++ b/meta-oe/recipes-connectivity/thrift/thrift/0001-DefineInstallationPaths.cmake-Define-libdir-in-terms.patch
@@ -0,0 +1,42 @@
+From a07e56e1a2e70a9b81eb0a65f345cf45a7a93a81 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Dec 2019 21:56:23 -0800
+Subject: [PATCH] DefineInstallationPaths.cmake: Define libdir in terms of
+ LIB_SUFFIX
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ build/cmake/DefineInstallationPaths.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/build/cmake/DefineInstallationPaths.cmake
++++ b/build/cmake/DefineInstallationPaths.cmake
+@@ -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)")
+-set(CMAKE_INSTALL_DIR "lib/cmake" CACHE PATH "The subdirectory to install cmake config files (default: cmake)")
+-set(PKGCONFIG_INSTALL_DIR "lib/pkgconfig" CACHE PATH "The subdirectory to install pkgconfig config files (default: lib/pkgconfig)")
++set(CMAKE_INSTALL_DIR "lib${LIB_SUFFIX}/cmake" CACHE PATH "The subdirectory to install cmake config files (default: cmake)")
++set(PKGCONFIG_INSTALL_DIR "lib${LIB_SUFFIX}/pkgconfig" CACHE PATH "The subdirectory to install pkgconfig config files (default: lib/pkgconfig)")
+ set(DOC_INSTALL_DIR "share/doc" CACHE PATH "The subdirectory to install documentation files (default: share/doc)")
+ set(prefix "${CMAKE_INSTALL_PREFIX}")
+ set(exec_prefix "${CMAKE_INSTALL_PREFIX}/bin")
+-set(libdir "${CMAKE_INSTALL_PREFIX}/lib")
++set(libdir "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
+ set(includedir "${CMAKE_INSTALL_PREFIX}/include")
+ set(cmakedir "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DIR}")
+--- a/build/cmake/DefineCMakeDefaults.cmake
++++ b/build/cmake/DefineCMakeDefaults.cmake
+@@ -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.
+-set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
+-set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIB_SUFFIX})
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib${LIB_SUFFIX})
+ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
+
+ #
diff --git a/meta-oe/recipes-connectivity/thrift/thrift_0.18.1.bb b/meta-oe/recipes-connectivity/thrift/thrift_0.18.1.bb
new file mode 100644
index 0000000000..ea5a3972dc
--- /dev/null
+++ b/meta-oe/recipes-connectivity/thrift/thrift_0.18.1.bb
@@ -0,0 +1,65 @@
+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] = "04c6f10e5d788ca78e13ee2ef0d2152c7b070c0af55483d6b942e29cff296726"
+
+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.9.3.bb b/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
deleted file mode 100644
index 7ab74026bb..0000000000
--- a/meta-oe/recipes-connectivity/thrift/thrift_0.9.3.bb
+++ /dev/null
@@ -1,67 +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=e4ed21f679b2aafef26eac82ab0c2cbf \
- file://NOTICE;md5=115f49498b66b494b0472658f2bfe80b"
-
-DEPENDS = "thrift-native boost flex-native bison-native openssl"
-
-SRC_URI = "http://mirror.switch.ch/mirror/apache/dist/thrift/${PV}/${BPN}-${PV}.tar.gz \
- file://0001-Forcibly-disable-check-for-Qt5.patch \
- file://0001-THRIFT-3828-In-cmake-avoid-use-of-both-quoted-paths-.patch \
- file://0002-THRIFT-3831-in-test-cpp-explicitly-use-signed-char.patch \
- file://0004-THRIFT-3207-enable-build-with-OpenSSL-1.1.0-series.patch \
- file://0005-THRIFT-3878-Compile-error-in-TSSLSocket.cpp-with-new.patch \
- file://0006-THRIFT-3736-C++-library-build-fails-if-OpenSSL-does-.patch \
-"
-
-SRC_URI[md5sum] = "88d667a8ae870d5adeca8cb7d6795442"
-SRC_URI[sha256sum] = "b0740a070ac09adde04d43e852ce4c320564a292f26521c46b78e0641564969e"
-
-BBCLASSEXTEND = "native nativesdk"
-
-inherit pkgconfig cmake pythonnative
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-export BUILD_SYS
-export HOST_SYS
-
-EXTRA_OECMAKE = " \
- -DBUILD_LIBRARIES=ON \
- -DBUILD_COMPILER=ON \
- -DBUILD_TESTING=OFF \
- -DBUILD_EXAMPLES=OFF \
- -DBUILD_TUTORIALS=OFF \
- -DWITH_CPP=ON \
- -DWITH_JAVA=OFF \
- -DWITH_STATIC_LIB=ON \
- -DWITH_SHARED_LIB=ON \
- -DWITH_OPENSSL=ON \
- -DWITH_QT4=OFF \
- -DWITH_QT5=OFF \
-"
-
-PACKAGECONFIG ??= "libevent glib python"
-PACKAGECONFIG[libevent] = "-DWITH_LIBEVENT=ON,-DWITH_LIBEVENT=OFF,libevent,"
-PACKAGECONFIG[python] = "-DWITH_PYTHON=ON,-DWITH_PYTHON=OFF,python,"
-PACKAGECONFIG[glib] = "-DWITH_C_GLIB=ON,-DWITH_C_GLIB=OFF,glib-2.0 ,"
-
-do_install_append () {
- ln -sf thrift ${D}/${bindir}/thrift-compiler
-}
-
-LEAD_SONAME = "libthrift.so.${PV}"
-
-# thrift packages
-PACKAGE_BEFORE_PN = "${PN}-compiler lib${BPN}"
-FILES_lib${BPN} = "${libdir}/*.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/transmission/files/transmission-daemon b/meta-oe/recipes-connectivity/transmission/files/transmission-daemon
new file mode 100644
index 0000000000..d1ffff58b0
--- /dev/null
+++ b/meta-oe/recipes-connectivity/transmission/files/transmission-daemon
@@ -0,0 +1,163 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: transmission-daemon
+# Required-Start: networking
+# Required-Stop: networking
+# Default-Start: 2 3 5
+# Default-Stop: 0 1 6
+# Short-Description: Start the transmission BitTorrent daemon client.
+### END INIT INFO
+
+# Original Author: Lennart A. JÃŒtte, based on Rob Howell's script
+# Modified by Maarten Van Coile & others (on IRC)
+
+# Do NOT "set -e"
+
+#
+# ----- CONFIGURATION -----
+#
+# For the default location Transmission uses, visit:
+# http://trac.transmissionbt.com/wiki/ConfigFiles
+# For a guide on how set the preferences, visit:
+# http://trac.transmissionbt.com/wiki/EditConfigFiles
+# For the available environement variables, visit:
+# http://trac.transmissionbt.com/wiki/EnvironmentVariables
+#
+# The name of the user that should run Transmission.
+# It's RECOMENDED to run Transmission in it's own user,
+# by default, this is set to 'transmission'.
+# For the sake of security you shouldn't set a password
+# on this user
+USERNAME=transmission
+
+
+# ----- *ADVANCED* CONFIGURATION -----
+# Only change these options if you know what you are doing!
+#
+# The folder where Transmission stores the config & web files.
+# ONLY change this you have it at a non-default location
+#TRANSMISSION_HOME="/var/config/transmission-daemon"
+#TRANSMISSION_WEB_HOME="/usr/share/transmission/web"
+#
+# The arguments passed on to transmission-daemon.
+# ONLY change this you need to, otherwise use the
+# settings file as per above.
+#TRANSMISSION_ARGS=""
+
+
+# ----- END OF CONFIGURATION -----
+#
+# PATH should only include /usr/* if it runs after the mountnfs.sh script.
+PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+DESC="bittorrent client"
+NAME=transmission-daemon
+DAEMON=$(which $NAME)
+PIDFILE=/var/run/$NAME.pid
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+# Load the VERBOSE setting and other rcS variables
+[ -f /etc/default/rcS ] && . /etc/default/rcS
+
+#
+# Function that starts the daemon/service
+#
+
+do_start()
+{
+ # Export the configuration/web directory, if set
+ if [ -n "$TRANSMISSION_HOME" ]; then
+ export TRANSMISSION_HOME
+ fi
+ if [ -n "$TRANSMISSION_WEB_HOME" ]; then
+ export TRANSMISSION_WEB_HOME
+ fi
+
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
+ --exec $DAEMON --background --test -- -f $TRANSMISSION_ARGS > /dev/null \
+ || return 1
+ start-stop-daemon --chuid $USERNAME --start --pidfile $PIDFILE --make-pidfile \
+ --exec $DAEMON --background -- -f $TRANSMISSION_ARGS \
+ || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --quiet --retry=TERM/10/KILL/5 --pidfile $PIDFILE --exec $DAEMON
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+
+ # Wait for children to finish too if this is a daemon that forks
+ # and if the daemon is only ever run from this initscript.
+ # If the above conditions are not satisfied then add some other code
+ # that waits for the process to drop all resources that could be
+ # needed by services started subsequently. A last resort is to
+ # sleep for some time.
+
+ start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
+ [ "$?" = 2 ] && return 2
+
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f $PIDFILE
+
+ return "$RETVAL"
+}
+
+case "$1" in
+ start)
+ echo "Starting $DESC" "$NAME..."
+ do_start
+ case "$?" in
+ 0|1) echo " Starting $DESC $NAME succeeded" ;;
+ *) echo " Starting $DESC $NAME failed" ;;
+ esac
+ ;;
+ stop)
+ echo "Stopping $DESC $NAME..."
+ do_stop
+ case "$?" in
+ 0|1) echo " Stopping $DESC $NAME succeeded" ;;
+ *) echo " Stopping $DESC $NAME failed" ;;
+ esac
+ ;;
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented then remove the
+ # 'force-reload' alias
+ #
+ echo "Restarting $DESC $NAME..."
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0|1) echo " Restarting $DESC $NAME succeeded" ;;
+ *) echo " Restarting $DESC $NAME failed: couldn't start $NAME" ;;
+ esac
+ ;;
+ *)
+ echo " Restarting $DESC $NAME failed: couldn't stop $NAME" ;;
+ esac
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
diff --git a/meta-oe/recipes-connectivity/transmission/transmission_git.bb b/meta-oe/recipes-connectivity/transmission/transmission_git.bb
new file mode 100644
index 0000000000..735db1441e
--- /dev/null
+++ b/meta-oe/recipes-connectivity/transmission/transmission_git.bb
@@ -0,0 +1,76 @@
+DESCRIPTION = "Transmission is a fast, easy, and free BitTorrent client"
+SECTION = "network"
+HOMEPAGE = "https://transmissionbt.com/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=73f535ddffcf2a0d3af4f381f84f9b33"
+
+DEPENDS = "curl libevent gnutls openssl libtool intltool-native glib-2.0-native"
+RDEPENDS:${PN}-web = "${PN}"
+
+SRC_URI = " \
+ gitsm://github.com/transmission/transmission;branch=master;protocol=https \
+ file://transmission-daemon \
+"
+
+# Transmission release 3.00
+SRCREV = "bb6b5a062ee594dfd4b7a12a6b6e860c43849bfd"
+PV = "3.00"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep gettext update-rc.d pkgconfig systemd mime-xdg
+
+PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+
+PACKAGECONFIG[gtk] = " --with-gtk,--without-gtk,gtk+3,"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd,"
+
+# Weak default values for transmission user and group
+# Change them in bbappend if needed
+TRANSMISSION_USER ??= "root"
+TRANSMISSION_GROUP ??= "root"
+
+# Configure aborts with:
+# config.status: error: po/Makefile.in.in was not created by intltoolize.
+do_configure() {
+ sed -i /AM_GLIB_GNU_GETTEXT/d ${S}/configure.ac
+ cd ${S}
+ ./update-version-h.sh
+ intltoolize --copy --force --automake
+ aclocal
+ libtoolize --automake --copy --force
+ autoconf
+ automake -a
+ oe_runconf
+}
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ sed -i '/USERNAME=/c\USERNAME=${TRANSMISSION_USER}' ${WORKDIR}/transmission-daemon
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0744 ${WORKDIR}/transmission-daemon ${D}${sysconfdir}/init.d/
+ chown ${TRANSMISSION_USER}:${TRANSMISSION_GROUP} ${D}${sysconfdir}/init.d/transmission-daemon
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ sed -i '/User=/c\User=${TRANSMISSION_USER}' ${S}/daemon/transmission-daemon.service
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/daemon/transmission-daemon.service ${D}${systemd_unitdir}/system
+ fi
+}
+
+PACKAGES += "${PN}-gtk ${PN}-client ${PN}-web"
+
+FILES:${PN}-client = "${bindir}/transmission-remote ${bindir}/transmission-cli ${bindir}/transmission-create ${bindir}/transmission-show ${bindir}/transmission-edit"
+FILES:${PN}-gtk += "${bindir}/transmission-gtk ${datadir}/icons ${datadir}/applications ${datadir}/pixmaps"
+FILES:${PN}-web = "${datadir}/transmission/web"
+FILES:${PN} = "${bindir}/transmission-daemon ${sysconfdir}/init.d/transmission-daemon ${datadir}/appdata"
+
+SYSTEMD_SERVICE:${PN} = "transmission-daemon.service"
+
+# Script transmission-daemon following the guidelines in:
+# https://trac.transmissionbt.com/wiki/Scripts/initd
+INITSCRIPT_PACKAGES = "transmission-daemon"
+INITSCRIPT_NAME = "transmission-daemon"
+INITSCRIPT_PARAMS = "start 99 5 3 2 . stop 10 0 1 6 ."
diff --git a/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch b/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch
deleted file mode 100644
index 8e5f4da362..0000000000
--- a/meta-oe/recipes-connectivity/umip/files/0001-Add-format-string-to-fprintf-call.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a0ad5128d14b022239445e251cf4a9826e86aa96 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 07:48:31 -0700
-Subject: [PATCH] Add format string to fprintf() call
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/vt.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/vt.c b/src/vt.c
-index 795d393..a533d3d 100644
---- a/src/vt.c
-+++ b/src/vt.c
-@@ -499,7 +499,7 @@ static int vt_cmd_dump_candidates(const struct vt_handle *vh,
- }
- llen += cmdlen;
-
-- ret = fprintf(vh->vh_stream, e->cmd);
-+ ret = fprintf(vh->vh_stream, "%s", e->cmd);
- if (ret < 0)
- return ret;
-
---
-2.13.2
-
diff --git a/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch b/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
deleted file mode 100644
index 8192056d13..0000000000
--- a/meta-oe/recipes-connectivity/umip/files/0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From f567740cf64978ac9db014c786b6d0267b244f33 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Mar 2018 22:30:30 -0800
-Subject: [PATCH 1/2] replace SIGCLD with SIGCHLD and include sys/types.h
-
-Fixes
-main.c:129:10: error: 'SIGCLD' undeclared (first use in this function); did you mean 'SIGCHLD'?
- signal(SIGCLD, sig_child);
- ^~~~~~
- SIGCHLD
-
-main.c:125:2: warning: implicit declaration of function 'umask' [-Wimplicit-function-declaration]
- umask(0);
- ^~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/main.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/main.c b/src/main.c
-index 3cf4072..cd34196 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -31,6 +31,7 @@
- #include <sys/ioctl.h>
- #include <sys/wait.h>
- #include <sys/param.h>
-+#include <sys/types.h>
- #include <pthread.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -126,9 +127,9 @@ static void daemon_start(int ignsigcld)
-
- if (ignsigcld) {
- #ifdef SIGTSTP
-- signal(SIGCLD, sig_child);
-+ signal(SIGCHLD, sig_child);
- #else
-- signal(SIGCLD, SIG_IGN);
-+ signal(SIGCHLD, SIG_IGN);
- #endif
- }
- }
---
-2.16.2
-
diff --git a/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch b/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
deleted file mode 100644
index 90d12da149..0000000000
--- a/meta-oe/recipes-connectivity/umip/files/0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 19b6cf8099e1974b5fc39086fc54103b0cbc2658 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Mar 2018 23:01:25 -0800
-Subject: [PATCH 2/2] replace PTHREAD_MUTEX_FAST_NP with PTHREAD_MUTEX_NORMAL
-
-PTHREAD_MUTEX_FAST_NP is not available on non-posix systems
-e.g. musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/ha.c | 2 +-
- src/icmp6.c | 2 +-
- src/mh.c | 2 +-
- src/mn.c | 2 +-
- src/movement.c | 2 +-
- src/mpdisc_ha.c | 2 +-
- src/mpdisc_mn.c | 2 +-
- src/tqueue.c | 2 +-
- src/tunnelctl.c | 2 +-
- 9 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/src/ha.c b/src/ha.c
-index fbdcff0..b2f811e 100644
---- a/src/ha.c
-+++ b/src/ha.c
-@@ -1246,7 +1246,7 @@ int ha_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&bu_worker_mutex, &mattrs) ||
- pthread_cond_init(&cond, NULL))
- return -1;
-diff --git a/src/icmp6.c b/src/icmp6.c
-index 3695135..6460634 100644
---- a/src/icmp6.c
-+++ b/src/icmp6.c
-@@ -243,7 +243,7 @@ int icmp6_init(void)
- return -1;
- /* create ICMP listener thread */
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&icmp6_sock.send_mutex, &mattrs) ||
- pthread_rwlock_init(&handler_lock, NULL) ||
- pthread_create(&icmp6_listener, NULL, icmp6_listen, NULL))
-diff --git a/src/mh.c b/src/mh.c
-index 60e345e..7928f4c 100644
---- a/src/mh.c
-+++ b/src/mh.c
-@@ -204,7 +204,7 @@ int mh_init(void)
- return -1;
-
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mh_sock.send_mutex, &mattrs) ||
- pthread_rwlock_init(&handler_lock, NULL) ||
- pthread_create(&mh_listener, NULL, mh_listen, NULL))
-diff --git a/src/mn.c b/src/mn.c
-index 092cfcb..8f7f448 100644
---- a/src/mn.c
-+++ b/src/mn.c
-@@ -1478,7 +1478,7 @@ static struct home_addr_info *hai_copy(struct home_addr_info *conf_hai)
- if (hai != NULL) {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
-
- memcpy(hai, conf_hai, sizeof(struct home_addr_info));
-
-diff --git a/src/movement.c b/src/movement.c
-index d985937..6400448 100644
---- a/src/movement.c
-+++ b/src/movement.c
-@@ -2013,7 +2013,7 @@ int md_init(void)
- int val;
-
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&iface_lock, &mattrs))
- return -1;
-
-diff --git a/src/mpdisc_ha.c b/src/mpdisc_ha.c
-index 40ba05f..fd7a90d 100644
---- a/src/mpdisc_ha.c
-+++ b/src/mpdisc_ha.c
-@@ -559,7 +559,7 @@ int mpd_ha_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mpa_lock, &mattrs) ||
- pthread_rwlock_init(&prefix_lock, NULL) ||
- hash_init(&mpa_hash, DOUBLE_ADDR, MPA_BUCKETS) < 0)
-diff --git a/src/mpdisc_mn.c b/src/mpdisc_mn.c
-index 4873bd6..ada02bd 100644
---- a/src/mpdisc_mn.c
-+++ b/src/mpdisc_mn.c
-@@ -267,7 +267,7 @@ int mpd_mn_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mps_lock, &mattrs))
- return -1;
- if (hash_init(&mps_hash, DOUBLE_ADDR, MPS_BUCKETS) < 0)
-diff --git a/src/tqueue.c b/src/tqueue.c
-index 2f7aa0b..9c185b8 100644
---- a/src/tqueue.c
-+++ b/src/tqueue.c
-@@ -65,7 +65,7 @@ int taskqueue_init(void)
- {
- pthread_mutexattr_t mattrs;
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&mutex, &mattrs) ||
- pthread_cond_init(&cond, NULL) ||
- pthread_create(&tq_runner, NULL, runner, NULL))
-diff --git a/src/tunnelctl.c b/src/tunnelctl.c
-index 23fc20b..813b8ec 100644
---- a/src/tunnelctl.c
-+++ b/src/tunnelctl.c
-@@ -433,7 +433,7 @@ int tunnelctl_init(void)
- return -1;
-
- pthread_mutexattr_init(&mattrs);
-- pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_FAST_NP);
-+ pthread_mutexattr_settype(&mattrs, PTHREAD_MUTEX_NORMAL);
- if (pthread_mutex_init(&tnl_lock, &mattrs))
- return -1;
-
---
-2.16.2
-
diff --git a/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch b/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch
deleted file mode 100644
index dbf0082640..0000000000
--- a/meta-oe/recipes-connectivity/umip/files/add-dependency-to-support-parallel-compilation.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-When "make -j10", the compilation will fail,
-because scan.c has included gram.h, but gram.h was produced
-after scan.c was compiled
-
-So add this dependency to ensure that gram.h is produced
-before scan.c is produced.
-
-Upstream-Status: Inappropriate [upstream is not active]
-
-Signed-off-by: Roy.Li <RongQing.Li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- src/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -81,3 +81,5 @@ CLEANFILES = gram.c gram.h \
-
- DISTCLEANFILES = $(BUILT_SOURCES)
- MAINTAINERCLEANFILES = Makefile.in
-+
-+scan.c: gram.h
diff --git a/meta-oe/recipes-connectivity/umip/files/mip6d b/meta-oe/recipes-connectivity/umip/files/mip6d
deleted file mode 100755
index ebd70a6cca..0000000000
--- a/meta-oe/recipes-connectivity/umip/files/mip6d
+++ /dev/null
@@ -1,112 +0,0 @@
-#!/bin/sh
-#
-# mip6d Start script for the Mobile IPv6 daemon
-#
-# chkconfig: - 55 25
-# description: The mobile IPv6 daemon allows nodes to remain \
-# reachable while moving around in the IPv6 Internet.
-# processname: mip6d
-# config: /etc/mip6d.conf
-# config: /etc/sysconfig/mip6d
-#
-### BEGIN INIT INFO
-# Provides: mipv6-daemon
-# Required-Start: $local_fs $remote_fs $network $named
-# Required-Stop: $local_fs $remote_fs $network
-# Should-Start: $syslog
-# Should-Stop: $network $syslog
-# Default-Start:
-# Default-Stop: 0 1 6
-# Short-Description: Start and stop Mobile IPV6 daemon
-# Description: The mobile IPv6 daemon allows nodes to remain
-# reachable while moving around in the IPv6 Internet.
-### END INIT INFO
-
-# Source function library.
-. /etc/init.d/functions
-
-if [ -f /etc/sysconfig/mip6d ]; then
- . /etc/sysconfig/mip6d
-fi
-
-mip6d=/usr/sbin/mip6d
-prog="mip6d"
-lockfile=/var/lock/subsys/$prog
-
-start() {
- [ -x $mip6d ] || exit 5
- echo -n $"Starting $prog: "
- start-stop-daemon -S -x ${mip6d} && success || failure
- retval=$?
- echo
- [ $retval -eq 0 ] && touch ${lockfile}
- return $retval
-}
-
-stop() {
- echo -n $"Stopping $prog: "
- start-stop-daemon -K -x $mip6d
- retval=$?
- echo
- [ $retval -eq 0 ] && rm -f ${lockfile}
- return $retval
-}
-
-restart() {
- stop
- start
-}
-
-reload()
-{
- echo -n $"Reloading $prog configuration: "
- killproc $mip6d -HUP
- retval=$?
- echo
- return $retval
-}
-
-force_reload() {
- restart
-}
-
-rh_status() {
- status $prog
-}
-
-rh_status_q() {
- rh_status > /dev/null 2>&1
-}
-
-case "$1" in
- start)
- rh_status_q && exit 0
- $1
- ;;
- stop)
- rh_status_q || exit 0
- $1
- ;;
- restart)
- $1
- ;;
- reload)
- rh_status_q || exit 7
- $1
- ;;
- force-reload)
- force_reload
- ;;
- status)
- rh_status
- ;;
- condrestart|try-restart)
- rh_status_q || exit 0
- restart
- ;;
- *)
- echo $"Usage: $prog {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
- exit 2
-esac
-
-exit $?
diff --git a/meta-oe/recipes-connectivity/umip/files/mip6d.service b/meta-oe/recipes-connectivity/umip/files/mip6d.service
deleted file mode 100644
index 2b5a5b9f1d..0000000000
--- a/meta-oe/recipes-connectivity/umip/files/mip6d.service
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=MIPL Mobile IPv6
-After=network.target
-
-[Service]
-EnvironmentFile=-@SYSCONFDIR@/sysconfig/mip6d
-ExecStart=@SBINDIR@/mip6d $ARGS
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-oe/recipes-connectivity/umip/umip_1.0.bb b/meta-oe/recipes-connectivity/umip/umip_1.0.bb
deleted file mode 100644
index 0c120bfd84..0000000000
--- a/meta-oe/recipes-connectivity/umip/umip_1.0.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Mobile IPv6 and NEMO for Linux"
-DESCRIPTION = "UMIP is an open source implementation of Mobile IPv6 and NEMO \
-Basic Support for Linux. It is released under the GPLv2 license. It supports \
-the following IETF RFC: RFC6275 (Mobile IPv6), RFC3963 (NEMO), RFC3776 and \
-RFC4877 (IPsec and IKEv2)."
-HOMEPAGE = "http://umip.org/"
-SECTION = "System Environment/Base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=073dc31ccb2ebed70db54f1e8aeb4c33"
-DEPENDS = "rpm indent-native"
-
-SRC_URI = "git://github.com/jlanza/umip \
- file://add-dependency-to-support-parallel-compilation.patch \
- file://mip6d \
- file://mip6d.service \
- file://0001-Add-format-string-to-fprintf-call.patch \
- file://0001-replace-SIGCLD-with-SIGCHLD-and-include-sys-types.h.patch \
- file://0002-replace-PTHREAD_MUTEX_FAST_NP-with-PTHREAD_MUTEX_NOR.patch \
- "
-SRCREV = "7d67209cd1bba2dd0e183a0fa07eeef07964dd14"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF = "--enable-vt"
-
-inherit autotools-brokensep systemd update-rc.d
-
-INITSCRIPT_NAME = "mip6d"
-INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ."
-
-SYSTEMD_SERVICE_${PN} = "mip6d.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_install_append() {
- install -D -m 0755 ${WORKDIR}/mip6d ${D}${sysconfdir}/init.d/mip6d
- install -D -m 0644 ${WORKDIR}/mip6d.service ${D}${systemd_system_unitdir}/mip6d.service
- sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
- -e 's,@SBINDIR@,${sbindir},g' \
- ${D}${systemd_system_unitdir}/mip6d.service
-}
-
-RRECOMMENDS_${PN} = "kernel-module-mip6 kernel-module-ipv6"
diff --git a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
index 4365aa4bc6..1492234495 100644
--- a/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
+++ b/meta-oe/recipes-connectivity/usbmuxd/usbmuxd_git.bb
@@ -1,24 +1,23 @@
DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
-LICENSE = "GPLv3 & GPLv2 & LGPLv2.1"
+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 \
- file://COPYING.LGPLv2.1;md5=6ab17b41640564434dda85c06b7124f7"
+ file://COPYING.GPLv3;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "udev libusb1"
+DEPENDS = "udev libusb1 libplist libimobiledevice-glue"
-inherit cmake pkgconfig gitpkgv
+inherit autotools pkgconfig gitpkgv systemd
PKGV = "${GITPKGVTAG}"
+PV = "1.1.2+git${SRCPV}"
-SRCREV = "919587580c5e77f3936f3432115d2e10c7bac7c5"
-SRC_URI = "git://git.sukimashita.com/usbmuxd.git;protocol=http"
+SRCREV = "01c94c77f59404924f1c46d99c4e5e0c7817281b"
+SRC_URI = "git://github.com/libimobiledevice/usbmuxd;protocol=https;branch=master"
S = "${WORKDIR}/git"
-FILES_${PN} += "${base_libdir}/udev/rules.d/"
+EXTRA_OECONF += "--without-preflight"
-# fix usbmuxd installing files to /usr/lib64 on 64bit hosts:
-EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+FILES:${PN} += "${base_libdir}/udev/rules.d/"
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[plist] = "-DWANT_PLIST=1,-DWANT_PLIST=0,libplist"
+SYSTEMD_SERVICE:${PN} = "usbmuxd.service"
diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch
new file mode 100644
index 0000000000..9ee4a51f99
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-Use-toolchain-from-environment-variables.patch
@@ -0,0 +1,92 @@
+From 6b822b36739222d0c864249992b5d28e3ff4d948 Mon Sep 17 00:00:00 2001
+From: Adrian Friedli <adrian.friedli@husqvarnagroup.com>
+Date: Mon, 3 Sep 2018 17:58:27 +0200
+Subject: [PATCH] Use toolchain from environment variables
+
+Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/42]
+Signed-off-by: Adrian Friedli <adrian.friedli@husqvarnagroup.com>
+Signed-off-by: Ankit Navik <ankit.tarot@gmail.com>
+---
+ Makefile.inc | 7 ++++---
+ WTGService/Makefile | 2 +-
+ console_src/Makefile | 2 +-
+ lib/Makefile | 6 +++---
+ 4 files changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index b0edf5a..0094bdf 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -13,14 +13,15 @@
+ # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
+ # USE OR PERFORMANCE OF THIS SOFTWARE.
+ #
+-CC = gcc
++CC ?= gcc
++AR ?= ar
+ LIB=lib
+ DUT=dut
+ CA=ca
+ UCC=ucc
+ CON=console_src
+ WTG=WTGService
+-MAKE=make
++MAKE?=make
+
+ # This is for WMM-PS
+ #for Ext TG
+@@ -46,7 +47,7 @@ CFLAGS = -g -O2 -D_REENTRANT -Wall -I../inc
+
+ DUTLIBS = ../lib/libwfa_dut.a -lpthread
+ CALIBS = ../lib/libwfa_ca.a -lpthread
+-RANLIB = ranlib
++RANLIB ?= ranlib
+
+ LIBWFA_NAME_DUT = libwfa_dut.a
+ LIBWFA_NAME_CA = libwfa_ca.a
+diff --git a/WTGService/Makefile b/WTGService/Makefile
+index 5312eb6..4855771 100644
+--- a/WTGService/Makefile
++++ b/WTGService/Makefile
+@@ -13,7 +13,7 @@
+ # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE
+ # USE OR PERFORMANCE OF THIS SOFTWARE.
+ #
+-CC=gcc
++CC?=gcc
+ CFLAGS= -Wall
+ LIB=-lpthread
+
+diff --git a/console_src/Makefile b/console_src/Makefile
+index 8282283..d1098eb 100644
+--- a/console_src/Makefile
++++ b/console_src/Makefile
+@@ -14,7 +14,7 @@
+ # USE OR PERFORMANCE OF THIS SOFTWARE.
+ #
+
+-CC = gcc
++CC ?= gcc
+ CFLAGS = -g -DWFA_DEBUG -pthread
+
+ TARGETS = wfa_con
+diff --git a/lib/Makefile b/lib/Makefile
+index ffcef94..299b8d6 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -17,9 +17,9 @@
+ include ../Makefile.inc
+
+ all: ${LIB_OBJS}
+- ar crv ${LIBWFA_NAME} $?
+- ar crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT}
+- ar crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA}
++ $(AR) crv ${LIBWFA_NAME} $?
++ $(AR) crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT}
++ $(AR) crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA}
+ ${RANLIB} ${LIBWFA_NAME} ${LIBWFA_NAME_DUT} ${LIBWFA_NAME_CA}
+
+ wfa_tg.o: wfa_tg.c ../inc/wfa_agt.h ../inc/wfa_types.h ../inc/wfa_rsp.h ../inc/wfa_tlv.h ../inc/wfa_tg.h
+--
+2.7.4
+
diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-wfa_cmdproc-Store-return-value-into-location.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-wfa_cmdproc-Store-return-value-into-location.patch
new file mode 100644
index 0000000000..074f0fe7bb
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0001-wfa_cmdproc-Store-return-value-into-location.patch
@@ -0,0 +1,32 @@
+From 2b7d6cf62296ff4e25e5ad909aa39a257bf9ff78 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 19:37:35 -0700
+Subject: [PATCH] wfa_cmdproc: Store return value into location
+
+Fixes
+| wfa_cmdproc.c:100:20: error: incompatible integer to pointer conversion assigning to 'int *' from 'int' [-Wint-conversion]
+| paramValue = atoi(str);
+| ^ ~~~~~~~~~
+
+Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/57]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/wfa_cmdproc.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/wfa_cmdproc.c b/lib/wfa_cmdproc.c
+index 9f5fd16..49a3f16 100644
+--- a/lib/wfa_cmdproc.c
++++ b/lib/wfa_cmdproc.c
+@@ -97,7 +97,7 @@ int getParamValueInt(char *pcmdStr, char *pParam, int *paramValue)
+ if(strcasecmp(pcmdStr, pParam) == 0)
+ {
+ str = strtok_r(NULL, ",", &pcmdStr);
+- paramValue = atoi(str);
++ *paramValue = atoi(str);
+ return 0;
+ }
+ return -1;
+--
+2.37.3
+
diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch
new file mode 100644
index 0000000000..20fb6473f8
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch
@@ -0,0 +1,45 @@
+From 451b162c903a1ef070a75dc18171620f3beef7b3 Mon Sep 17 00:00:00 2001
+From: Ankit Navik <ankit.tarot@gmail.com>
+Date: Tue, 25 Dec 2018 00:36:59 +0530
+Subject: [PATCH 2/3] Add missing include, removes unnedded stuff and add non
+ glibc rpc
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Reto Schneider <code@reto-schneider.ch>
+Signed-off-by: Ankit Navik <ankit.tarot@gmail.com>
+---
+ Makefile | 2 +-
+ inc/wfa_tg.h | 3 +++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index 2c41a17..5c4ad8c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -15,7 +15,7 @@
+ #
+ include Makefile.inc
+
+-DIRS= ${LIB} ${DUT} ${CA} ${TC} ${WTG} ${CON}
++DIRS= ${LIB} ${DUT} ${CA} ${TC}
+
+ all:
+ for i in ${DIRS}; do \
+diff --git a/inc/wfa_tg.h b/inc/wfa_tg.h
+index 799bf9f..a1804dd 100644
+--- a/inc/wfa_tg.h
++++ b/inc/wfa_tg.h
+@@ -24,6 +24,9 @@
+ #ifndef _WFA_TG_H
+ #define _WFA_TG_H
+
++#ifndef _WINDOWS
++#include <pthread.h>
++#endif
+ #include <sys/time.h>
+
+ /* maximum number of streams to support */
+--
+2.7.4
+
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
new file mode 100644
index 0000000000..cfa46ff496
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch
@@ -0,0 +1,60 @@
+From fc7b7106dd0d8d123f20cbd8d408637fbc315e17 Mon Sep 17 00:00:00 2001
+From: Ankit Navik <ankit.tarot@gmail.com>
+Date: Tue, 25 Dec 2018 01:12:32 +0530
+Subject: [PATCH 3/3] fix path to /usr/sbin for script and make script for
+ generic shell
+
+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 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/lib/wfa_cs.c b/lib/wfa_cs.c
+index 6b1f5a2..2a18533 100644
+--- a/lib/wfa_cs.c
++++ b/lib/wfa_cs.c
+@@ -319,7 +319,7 @@ int wfaStaGetIpConfig(int len, BYTE *caCmdBuf, int *respLen, BYTE *respBuf)
+ /*
+ * check a script file (the current implementation specific)
+ */
+- ret = access("/usr/local/sbin/getipconfig.sh", F_OK);
++ ret = access("/usr/sbin/getipconfig.sh", F_OK);
+ if(ret == -1)
+ {
+ ipconfigResp->status = STATUS_ERROR;
+@@ -2115,7 +2115,7 @@ int wfaStaPresetParams(int len, BYTE *caCmdBuf, int *respLen, BYTE *respBuf)
+ st = remove("/tmp/processid.txt");
+ }
+
+- sprintf(cmdStr, "/usr/local/sbin/findprocess.sh %s /tmp/processid.txt\n", "wpa_supplicant");
++ sprintf(cmdStr, "/usr/sbin/findprocess.sh %s /tmp/processid.txt\n", "wpa_supplicant");
+ st = system(cmdStr);
+
+ tmpfd = fopen("/tmp/processid.txt", "r+");
+diff --git a/scripts/dev_send_frame b/scripts/dev_send_frame
+index 9e6afd3..3c37d61 100644
+--- a/scripts/dev_send_frame
++++ b/scripts/dev_send_frame
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env sh
+
+ #
+ # Copyright (c) 2016 Wi-Fi Alliance
+diff --git a/scripts/sta_reset_parm b/scripts/sta_reset_parm
+index 2aff1f1..2c1c31e 100644
+--- a/scripts/sta_reset_parm
++++ b/scripts/sta_reset_parm
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/usr/bin/env sh
+
+ #
+ # Copyright (c) 2016 Wi-Fi Alliance
+--
+2.7.4
+
diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch
new file mode 100644
index 0000000000..40af48970f
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/0004-run-ranlib-per-library-and-use-AR.patch
@@ -0,0 +1,38 @@
+From cca2f9901fb4fdcdd49066fe434eae512964143f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Feb 2019 07:59:47 -0800
+Subject: [PATCH 4/4] run ranlib per library and use AR
+
+Use AR variable to invoke archiver instead of hardcoding, helps cross
+compile
+
+compiler ranlib e.g. llvm-ranlib fails to operate on multiple archives
+on single invocation
+
+fixes errors like
+arm-yoe-linux-musleabi-llvm-ranlib: error: Exactly one archive should be specified.
+
+Upstream-Status: Submitted [https://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT/pull/47]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/Makefile | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/lib/Makefile b/lib/Makefile
+index 299b8d6..5fca322 100644
+--- a/lib/Makefile
++++ b/lib/Makefile
+@@ -20,7 +20,9 @@ all: ${LIB_OBJS}
+ $(AR) crv ${LIBWFA_NAME} $?
+ $(AR) crv ${LIBWFA_NAME_DUT} ${LIB_OBJS_DUT}
+ $(AR) crv ${LIBWFA_NAME_CA} ${LIB_OBJS_CA}
+- ${RANLIB} ${LIBWFA_NAME} ${LIBWFA_NAME_DUT} ${LIBWFA_NAME_CA}
++ ${RANLIB} ${LIBWFA_NAME}
++ ${RANLIB} ${LIBWFA_NAME_DUT}
++ ${RANLIB} ${LIBWFA_NAME_CA}
+
+ wfa_tg.o: wfa_tg.c ../inc/wfa_agt.h ../inc/wfa_types.h ../inc/wfa_rsp.h ../inc/wfa_tlv.h ../inc/wfa_tg.h
+
+--
+2.20.1
+
diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch b/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch
new file mode 100644
index 0000000000..fc5e2e99c5
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/files/fno-common.patch
@@ -0,0 +1,29 @@
+Mark extern variables with 'extern' keyword
+
+This ensures that compilers with -fno-common does not generate multiple definitions
+
+Upstream-Status: Pending
+Signedd-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/lib/wfa_cs.c
++++ b/lib/wfa_cs.c
+@@ -71,7 +71,7 @@ int wfaExecuteCLI(char *CLI);
+
+ /* Since the two definitions are used all over the CA function */
+ char gCmdStr[WFA_CMD_STR_SZ];
+-dutCmdResponse_t gGenericResp;
++extern dutCmdResponse_t gGenericResp;
+ int wfaTGSetPrio(int sockfd, int tgClass);
+ void create_apts_msg(int msg, unsigned int txbuf[],int id);
+
+--- a/lib/wfa_thr.c
++++ b/lib/wfa_thr.c
+@@ -41,7 +41,7 @@
+ /*
+ * external global thread sync variables
+ */
+-tgWMM_t wmm_thr[WFA_THREADS_NUM];
++extern tgWMM_t wmm_thr[WFA_THREADS_NUM];
+ extern int resetsnd;
+ extern int resetrcv;
+ extern int newCmdOn;
diff --git a/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb b/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb
new file mode 100644
index 0000000000..eda01ca388
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wifi-test-suite/wifi-test-suite_10.10.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Wi-Fi Test Suite Linux Control Agent"
+DESCRIPTION = "Wi-Fi Test Suite is a software platform originally developed \
+by Wi-Fi Alliance, the global non-profit industry association that brings you \
+Wi-Fi, to support certification program development and device certification."
+HOMEPAGE = "https://www.wi-fi.org/certification/wi-fi-test-suite"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=0542427ed5c315ca34aa09ae7a85ed32"
+SECTION = "test"
+
+S = "${WORKDIR}/git"
+SRCREV = "12e85fbeca8ca21a632d18e55089a8a7606d64aa"
+SRC_URI = "git://github.com/Wi-FiTestSuite/Wi-FiTestSuite-Linux-DUT.git;branch=master;protocol=https \
+ file://0001-Use-toolchain-from-environment-variables.patch \
+ file://0002-Add-missing-include-removes-unnedded-stuff-and-add-n.patch \
+ file://0003-fix-path-to-usr-sbin-for-script-and-make-script-for-.patch \
+ file://0004-run-ranlib-per-library-and-use-AR.patch \
+ file://fno-common.patch \
+ file://0001-wfa_cmdproc-Store-return-value-into-location.patch \
+"
+
+# to avoid host path QA error
+CFLAGS += "-I${STAGING_INCDIR}/tirpc"
+# Fix GNU HASH error
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+ install -d ${D}${libdir}
+ install -m 0644 ${S}/lib/libwfa.a ${D}${libdir}
+ install -m 0644 ${S}/lib/libwfa_ca.a ${D}${libdir}
+ install -m 0644 ${S}/lib/libwfa_dut.a ${D}${libdir}
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/dut/wfa_dut ${D}${sbindir}
+ install -m 0755 ${S}/ca/wfa_ca ${D}${sbindir}
+ install -m 0755 ${S}/scripts/*.sh ${D}${sbindir}
+ install -m 0755 ${S}/scripts/arp_neigh_loop ${D}${sbindir}
+ install -m 0755 ${S}/scripts/dev_send_frame ${D}${sbindir}
+ install -m 0755 ${S}/scripts/sta_reset_parm ${D}${sbindir}
+}
+
+RDEPENDS:${PN} = "wpa-supplicant"
diff --git a/meta-oe/recipes-connectivity/wvdial/wvdial/musl-support.patch b/meta-oe/recipes-connectivity/wvdial/wvdial/musl-support.patch
new file mode 100644
index 0000000000..b5ad4823a0
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wvdial/wvdial/musl-support.patch
@@ -0,0 +1,25 @@
+Drop support for glibc < 2.10, in master we are at 2.28
+in process get it working with musl as well.
+
+Upstream-Status: Inappropriate [No upstream]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/wvmodemscan.cc
++++ b/wvmodemscan.cc
+@@ -495,16 +495,8 @@ static int fileselect(const struct diren
+ // (no internal ISDN support) || !strncmp(e->d_name, "ttyI", 4);
+ }
+
+-#if defined(__GLIBC__) && __GLIBC_PREREQ(2, 10)
+ static int filesort(const dirent **e1, const dirent **e2)
+-#else
+-static int filesort(const void *_e1, const void *_e2)
+-#endif
+ {
+-#if !(defined(__GLIBC__) && __GLIBC_PREREQ(2, 10))
+- dirent const * const *e1 = (dirent const * const *)_e1;
+- dirent const * const *e2 = (dirent const * const *)_e2;
+-#endif
+ const char *p1, *p2;
+ int diff;
+
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/wvdial_1.61.bb b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
index 3a71fb9790..99e3ccacac 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
+++ b/meta-oe/recipes-connectivity/wvdial/wvdial_1.61.bb
@@ -1,28 +1,27 @@
HOMEPAGE = "http://www.alumnit.ca/wiki/?WvDial"
DESCRIPTION = "WvDial is a program that makes it easy to connect your Linux workstation to the Internet."
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
inherit pkgconfig
DEPENDS = "wvstreams"
-RDEPENDS_${PN} = "ppp"
+RDEPENDS:${PN} = "ppp"
-SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.bz2 \
+SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${BPN}/${BP}.tar.bz2 \
file://typo_pon.wvdial.1.patch \
+ file://musl-support.patch \
"
-
SRC_URI[md5sum] = "37e9a2d664effe4efd44c0e1a20136de"
SRC_URI[sha256sum] = "99906d9560cbdbc97e1855e7b0a7169f1e11983be3ac539140423f09debced82"
+COMPATIBLE_HOST:libc-musl = "null"
EXTRA_OEMAKE = ""
export WVLINK="${LD}"
PARALLEL_MAKE = ""
-BUILD_CPPFLAGS += "-I${STAGING_INCDIR}/wvstreams"
-
do_configure() {
sed -i 's/LDFLAGS+=-luniconf/LIBS+=-luniconf/' ${S}/Makefile
}
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-Fix-narrowing-conversion-error.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Fix-narrowing-conversion-error.patch
new file mode 100644
index 0000000000..fc9abd8e63
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Fix-narrowing-conversion-error.patch
@@ -0,0 +1,29 @@
+From c86c524f951f6e973473bfee76fd5366368b2cbc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Dec 2019 09:32:41 -0800
+Subject: [PATCH] Fix narrowing conversion error
+
+xplc/moduleloader.cc: In static member function 'static Module* Module::loadModule(const char*)': xplc/moduleloader.cc:67:14: error: narrowing conversion of '-1' from 'int' to 'unsigned int' [-Wnarrowing] 67 | case (int)-1: | ^
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ xplc/moduleloader.cc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xplc/moduleloader.cc b/xplc/moduleloader.cc
+index 02dd9a4..c53f5d2 100644
+--- a/xplc/moduleloader.cc
++++ b/xplc/moduleloader.cc
+@@ -62,7 +62,7 @@ Module* Module::loadModule(const char* modulename) {
+ return NULL;
+ }
+
+- switch(moduleinfo->version_major) {
++ switch((int)moduleinfo->version_major) {
+ #ifdef UNSTABLE
+ case -1:
+ /* nothing to do */
+--
+2.24.1
+
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch
new file mode 100644
index 0000000000..19a2e26f2a
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/0001-Forward-port-to-OpenSSL-1.1.x.patch
@@ -0,0 +1,557 @@
+From 0c35749891bf834c1f3c1c4c330266bd2f4733cc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 9 Sep 2018 10:40:09 -0700
+Subject: [PATCH] Forward port to OpenSSL 1.1.x
+
+* import patch from debian
+https://sources.debian.org/src/wvstreams/4.6.1-14/debian/patches/wvstreams_openssl1.1.patch
+Author: Reiner Herrmann <reiner@reiner-h.de>
+
+Upstream-Status: Submitted [https://github.com/apenwarr/wvstreams/pull/2]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ crypto/wvcrl.cc | 38 +++++++++++++-------------------------
+ crypto/wvdiffiehellman.cc | 30 +++++++++++++++++++-----------
+ crypto/wvdigest.cc | 16 ++++++++--------
+ crypto/wvocsp.cc | 35 +++++++++--------------------------
+ crypto/wvx509.cc | 31 ++++++++++++++++---------------
+ crypto/wvx509mgr.cc | 27 ++++++++++++++++-----------
+ include/wvdiffiehellman.h | 2 +-
+ include/wvdigest.h | 14 ++++++--------
+ include/wvtripledes.h | 10 +++++-----
+ 9 files changed, 93 insertions(+), 110 deletions(-)
+
+diff --git a/crypto/wvcrl.cc b/crypto/wvcrl.cc
+index fa00c76..880ad85 100644
+--- a/crypto/wvcrl.cc
++++ b/crypto/wvcrl.cc
+@@ -357,31 +357,19 @@ bool WvCRL::isrevoked(WvStringParm serial_number) const
+ ASN1_INTEGER *serial = serial_to_int(serial_number);
+ if (serial)
+ {
+- X509_REVOKED mayberevoked;
+- mayberevoked.serialNumber = serial;
+- if (crl->crl->revoked)
+- {
+- int idx = sk_X509_REVOKED_find(crl->crl->revoked,
+- &mayberevoked);
+- ASN1_INTEGER_free(serial);
+- if (idx >= 0)
+- {
+- debug("Certificate is revoked.\n");
+- return true;
+- }
+- else
+- {
+- debug("Certificate is not revoked.\n");
+- return false;
+- }
+- }
+- else
+- {
+- ASN1_INTEGER_free(serial);
+- debug("CRL does not have revoked list.\n");
+- return false;
+- }
+-
++ X509_REVOKED *revoked_entry = NULL;
++ int idx = X509_CRL_get0_by_serial(crl, &revoked_entry, serial);
++ ASN1_INTEGER_free(serial);
++ if (idx >= 1 || revoked_entry)
++ {
++ debug("Certificate is revoked.\n");
++ return true;
++ }
++ else
++ {
++ debug("Certificate is not revoked.\n");
++ return false;
++ }
+ }
+ else
+ debug(WvLog::Warning, "Can't convert serial number to ASN1 format. "
+diff --git a/crypto/wvdiffiehellman.cc b/crypto/wvdiffiehellman.cc
+index 7c0bf32..15cd104 100644
+--- a/crypto/wvdiffiehellman.cc
++++ b/crypto/wvdiffiehellman.cc
+@@ -39,24 +39,25 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen,
+ {
+ int problems;
+ int check;
+- {
++
+ info = DH_new();
+- info->p = BN_bin2bn(_key, _keylen, NULL);
++ BIGNUM *p = BN_bin2bn(_key, _keylen, NULL);
+ // info->p->top = 0;
+ // info->p->dmax = _keylen * 8 / BN_BITS2;
+ // info->p->neg = 0;
+ // info->p->flags = 0;
+
+- info->g = BN_new();
+- BN_set_word(info->g, generator);
++ BIGNUM *g = BN_new();
++ BN_set_word(g, generator);
+ // info->g->d = &generator;
+ // info->g->top = 0;
+ // info->g->dmax = 1;
+ // info->g->neg = 0;
+ // info->g->flags = 0;
+- }
+
+- check = BN_mod_word(info->p, 24);
++ DH_set0_pqg(info, p, NULL, g);
++
++ check = BN_mod_word(p, 24);
+ DH_check(info, &problems);
+ if (problems & DH_CHECK_P_NOT_PRIME)
+ log(WvLog::Error, "Using a composite number for authentication.\n");
+@@ -64,7 +65,7 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen,
+ log(WvLog::Error,"Using an unsafe prime number for authentication.\n");
+ if (problems & DH_NOT_SUITABLE_GENERATOR)
+ log(WvLog::Error, "Can you just use 2 instead of %s (%s)!!\n",
+- BN_bn2hex(info->g), check);
++ BN_bn2hex(g), check);
+ if (problems & DH_UNABLE_TO_CHECK_GENERATOR)
+ log(WvLog::Notice, "Using a strange argument for diffie-hellman.\n");
+ DH_generate_key(info);
+@@ -72,18 +73,23 @@ WvDiffieHellman::WvDiffieHellman(const unsigned char *_key, int _keylen,
+
+ int WvDiffieHellman::pub_key_len()
+ {
+- return BN_num_bytes(info->pub_key);
++ const BIGNUM *pub_key = NULL;
++ DH_get0_key(info, &pub_key, NULL);
++ return BN_num_bytes(pub_key);
+ }
+
+ int WvDiffieHellman::get_public_value(WvBuf &outbuf, int len)
+ {
+- int key_len = BN_num_bytes(info->pub_key);
++ const BIGNUM *pub_key = NULL;
++ DH_get0_key(info, &pub_key, NULL);
++
++ int key_len = BN_num_bytes(pub_key);
+ if (key_len < len)
+ len = key_len;
+
+ // alloca is stack allocated, don't free it.
+ unsigned char *foo = (unsigned char*)alloca(key_len);
+- BN_bn2bin(info->pub_key, foo);
++ BN_bn2bin(pub_key, foo);
+ outbuf.put(foo, len);
+
+ return len;
+@@ -91,8 +97,10 @@ int WvDiffieHellman::get_public_value(WvBuf &outbuf, int len)
+
+ bool WvDiffieHellman::create_secret(WvBuf &inbuf, size_t in_len, WvBuf& outbuf)
+ {
++ const BIGNUM *pub_key = NULL;
++ DH_get0_key(info, &pub_key, NULL);
+ unsigned char *foo = (unsigned char *)alloca(DH_size(info));
+- log("My public value\n%s\nYour public value\n%s\n",BN_bn2hex(info->pub_key),
++ log("My public value\n%s\nYour public value\n%s\n",BN_bn2hex(pub_key),
+ hexdump_buffer(inbuf.peek(0, in_len), in_len, false));
+ int len = DH_compute_key (foo, BN_bin2bn(inbuf.get(in_len), in_len, NULL),
+ info);
+diff --git a/crypto/wvdigest.cc b/crypto/wvdigest.cc
+index 150edee..73ebb5d 100644
+--- a/crypto/wvdigest.cc
++++ b/crypto/wvdigest.cc
+@@ -13,10 +13,10 @@
+
+ /***** WvEVPMDDigest *****/
+
+-WvEVPMDDigest::WvEVPMDDigest(const env_md_st *_evpmd) :
++WvEVPMDDigest::WvEVPMDDigest(const EVP_MD*_evpmd) :
+ evpmd(_evpmd), active(false)
+ {
+- evpctx = new EVP_MD_CTX;
++ evpctx = EVP_MD_CTX_new();
+ _reset();
+ }
+
+@@ -24,7 +24,7 @@ WvEVPMDDigest::WvEVPMDDigest(const env_md_st *_evpmd) :
+ WvEVPMDDigest::~WvEVPMDDigest()
+ {
+ cleanup();
+- delete evpctx;
++ EVP_MD_CTX_free(evpctx);
+ }
+
+
+@@ -60,7 +60,7 @@ bool WvEVPMDDigest::_reset()
+ // the typecast is necessary for API compatibility with different
+ // versions of openssl. None of them *actually* change the contents of
+ // the pointer.
+- EVP_DigestInit(evpctx, (env_md_st *)evpmd);
++ EVP_DigestInit(evpctx, evpmd);
+ active = true;
+ return true;
+ }
+@@ -79,7 +79,7 @@ void WvEVPMDDigest::cleanup()
+
+ size_t WvEVPMDDigest::digestsize() const
+ {
+- return EVP_MD_size((env_md_st *)evpmd);
++ return EVP_MD_size(evpmd);
+ }
+
+
+@@ -104,14 +104,14 @@ WvHMACDigest::WvHMACDigest(WvEVPMDDigest *_digest,
+ {
+ key = new unsigned char[keysize];
+ memcpy(key, _key, keysize);
+- hmacctx = new HMAC_CTX;
++ hmacctx = HMAC_CTX_new();
+ _reset();
+ }
+
+ WvHMACDigest::~WvHMACDigest()
+ {
+ cleanup();
+- delete hmacctx;
++ HMAC_CTX_free(hmacctx);
+ deletev key;
+ delete digest;
+ }
+@@ -145,7 +145,7 @@ bool WvHMACDigest::_finish(WvBuf &outbuf)
+ bool WvHMACDigest::_reset()
+ {
+ cleanup();
+- HMAC_Init(hmacctx, key, keysize, (env_md_st *)digest->getevpmd());
++ HMAC_Init(hmacctx, key, keysize, digest->getevpmd());
+ active = true;
+ return true;
+ }
+diff --git a/crypto/wvocsp.cc b/crypto/wvocsp.cc
+index ddb2de4..7d5da07 100644
+--- a/crypto/wvocsp.cc
++++ b/crypto/wvocsp.cc
+@@ -118,9 +118,10 @@ bool WvOCSPResp::check_nonce(const WvOCSPReq &req) const
+
+ bool WvOCSPResp::signedbycert(const WvX509 &cert) const
+ {
+- EVP_PKEY *skey = X509_get_pubkey(cert.cert);
+- int i = OCSP_BASICRESP_verify(bs, skey, 0);
+- EVP_PKEY_free(skey);
++ STACK_OF(X509) *sk = sk_X509_new_null();
++ sk_X509_push(sk, cert.cert);
++ int i = OCSP_basic_verify(bs, sk, NULL, OCSP_NOVERIFY);
++ sk_X509_free(sk);
+
+ if(i > 0)
+ return true;
+@@ -131,33 +132,15 @@ bool WvOCSPResp::signedbycert(const WvX509 &cert) const
+
+ WvX509 WvOCSPResp::get_signing_cert() const
+ {
+- if (!bs || !sk_X509_num(bs->certs))
++ const STACK_OF(X509) *certs = OCSP_resp_get0_certs(bs);
++ if (!bs || !sk_X509_num(certs))
+ return WvX509();
+
+- // note: the following bit of code is taken almost verbatim from
+- // ocsp_vfy.c in OpenSSL 0.9.8. Copyright and attribution should
+- // properly belong to them
+-
+- OCSP_RESPID *id = bs->tbsResponseData->responderId;
+-
+- if (id->type == V_OCSP_RESPID_NAME)
+- {
+- X509 *x = X509_find_by_subject(bs->certs, id->value.byName);
+- if (x)
+- return WvX509(X509_dup(x));
++ X509 *signer = NULL;
++ if (OCSP_resp_get0_signer(bs, &signer, NULL) == 1) {
++ return WvX509(X509_dup(signer));
+ }
+
+- if (id->value.byKey->length != SHA_DIGEST_LENGTH) return NULL;
+- unsigned char tmphash[SHA_DIGEST_LENGTH];
+- unsigned char *keyhash = id->value.byKey->data;
+- for (int i = 0; i < sk_X509_num(bs->certs); i++)
+- {
+- X509 *x = sk_X509_value(bs->certs, i);
+- X509_pubkey_digest(x, EVP_sha1(), tmphash, NULL);
+- if(!memcmp(keyhash, tmphash, SHA_DIGEST_LENGTH))
+- return WvX509(X509_dup(x));
+- }
+-
+ return WvX509();
+ }
+
+diff --git a/crypto/wvx509.cc b/crypto/wvx509.cc
+index e4925ce..984156c 100644
+--- a/crypto/wvx509.cc
++++ b/crypto/wvx509.cc
+@@ -974,7 +974,7 @@ static void add_aia(WvStringParm type, WvString identifier,
+ sk_ACCESS_DESCRIPTION_push(ainfo, acc);
+ acc->method = OBJ_txt2obj(type.cstr(), 0);
+ acc->location->type = GEN_URI;
+- acc->location->d.ia5 = M_ASN1_IA5STRING_new();
++ acc->location->d.ia5 = ASN1_IA5STRING_new();
+ unsigned char *cident
+ = reinterpret_cast<unsigned char *>(identifier.edit());
+ ASN1_STRING_set(acc->location->d.ia5, cident, identifier.len());
+@@ -1059,7 +1059,7 @@ void WvX509::set_crl_urls(WvStringList &urls)
+ GENERAL_NAMES *uris = GENERAL_NAMES_new();
+ GENERAL_NAME *uri = GENERAL_NAME_new();
+ uri->type = GEN_URI;
+- uri->d.ia5 = M_ASN1_IA5STRING_new();
++ uri->d.ia5 = ASN1_IA5STRING_new();
+ unsigned char *cident
+ = reinterpret_cast<unsigned char *>(i().edit());
+ ASN1_STRING_set(uri->d.ia5, cident, i().len());
+@@ -1162,10 +1162,11 @@ WvString WvX509::get_extension(int nid) const
+ #else
+ X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
+ #endif
++ ASN1_OCTET_STRING *ext_data_str = X509_EXTENSION_get_data(ext);
+ if (!method)
+ {
+ WvDynBuf buf;
+- buf.put(ext->value->data, ext->value->length);
++ buf.put(ext_data_str->data, ext_data_str->length);
+ retval = buf.getstr();
+ }
+ else
+@@ -1176,21 +1177,21 @@ WvString WvX509::get_extension(int nid) const
+ // even though it's const (at least as of version 0.9.8e).
+ // gah.
+ #if OPENSSL_VERSION_NUMBER >= 0x0090800fL
+- const unsigned char * ext_value_data = ext->value->data;
++ const unsigned char * ext_value_data = ext_data_str->data;
+ #else
+ unsigned char *ext_value_data = ext->value->data;
+ #endif
+ if (method->it)
+ {
+ ext_data = ASN1_item_d2i(NULL, &ext_value_data,
+- ext->value->length,
++ ext_data_str->length,
+ ASN1_ITEM_ptr(method->it));
+ TRACE("Applied generic conversion!\n");
+ }
+ else
+ {
+ ext_data = method->d2i(NULL, &ext_value_data,
+- ext->value->length);
++ ext_data_str->length);
+ TRACE("Applied method specific conversion!\n");
+ }
+
+@@ -1325,13 +1326,13 @@ bool WvX509::verify(WvBuf &original, WvStringParm signature) const
+ return false;
+
+ /* Verify the signature */
+- EVP_MD_CTX sig_ctx;
+- EVP_VerifyInit(&sig_ctx, EVP_sha1());
+- EVP_VerifyUpdate(&sig_ctx, original.peek(0, original.used()),
++ EVP_MD_CTX *sig_ctx = EVP_MD_CTX_new();
++ EVP_VerifyInit(sig_ctx, EVP_sha1());
++ EVP_VerifyUpdate(sig_ctx, original.peek(0, original.used()),
+ original.used());
+- int sig_err = EVP_VerifyFinal(&sig_ctx, sig_buf, sig_size, pk);
++ int sig_err = EVP_VerifyFinal(sig_ctx, sig_buf, sig_size, pk);
+ EVP_PKEY_free(pk);
+- EVP_MD_CTX_cleanup(&sig_ctx); // Again, not my fault...
++ EVP_MD_CTX_free(sig_ctx); // Again, not my fault...
+ if (sig_err != 1)
+ {
+ debug("Verify failed!\n");
+@@ -1450,19 +1451,19 @@ void WvX509::set_ski()
+ {
+ CHECK_CERT_EXISTS_SET("ski");
+
+- ASN1_OCTET_STRING *oct = M_ASN1_OCTET_STRING_new();
+- ASN1_BIT_STRING *pk = cert->cert_info->key->public_key;
++ ASN1_OCTET_STRING *oct = ASN1_OCTET_STRING_new();
++ ASN1_BIT_STRING *pk = X509_get0_pubkey_bitstr(cert);
+ unsigned char pkey_dig[EVP_MAX_MD_SIZE];
+ unsigned int diglen;
+
+ EVP_Digest(pk->data, pk->length, pkey_dig, &diglen, EVP_sha1(), NULL);
+
+- M_ASN1_OCTET_STRING_set(oct, pkey_dig, diglen);
++ ASN1_OCTET_STRING_set(oct, pkey_dig, diglen);
+ X509_EXTENSION *ext = X509V3_EXT_i2d(NID_subject_key_identifier, 0,
+ oct);
+ X509_add_ext(cert, ext, -1);
+ X509_EXTENSION_free(ext);
+- M_ASN1_OCTET_STRING_free(oct);
++ ASN1_OCTET_STRING_free(oct);
+ }
+
+
+diff --git a/crypto/wvx509mgr.cc b/crypto/wvx509mgr.cc
+index f249eec..156d3a4 100644
+--- a/crypto/wvx509mgr.cc
++++ b/crypto/wvx509mgr.cc
+@@ -350,6 +350,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const
+ return false;
+ }
+
++ uint32_t ex_flags = X509_get_extension_flags(cert);
++ uint32_t ex_kusage = X509_get_key_usage(cert);
+ if (cert == unsignedcert.cert)
+ {
+ debug("Self Signing!\n");
+@@ -362,8 +364,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const
+ return false;
+ }
+ #endif
+- else if (!((cert->ex_flags & EXFLAG_KUSAGE) &&
+- (cert->ex_kusage & KU_KEY_CERT_SIGN)))
++ else if (!((ex_flags & EXFLAG_KUSAGE) &&
++ (ex_kusage & KU_KEY_CERT_SIGN)))
+ {
+ debug("This Certificate is not allowed to sign certificates!\n");
+ return false;
+@@ -390,6 +392,8 @@ bool WvX509Mgr::signcert(WvX509 &unsignedcert) const
+
+ bool WvX509Mgr::signcrl(WvCRL &crl) const
+ {
++ uint32_t ex_flags = X509_get_extension_flags(cert);
++ uint32_t ex_kusage = X509_get_key_usage(cert);
+ if (!isok() || !crl.isok())
+ {
+ debug(WvLog::Warning, "Asked to sign CRL, but certificate or CRL (or "
+@@ -403,12 +407,12 @@ bool WvX509Mgr::signcrl(WvCRL &crl) const
+ "CRLs!\n");
+ return false;
+ }
+- else if (!((cert->ex_flags & EXFLAG_KUSAGE) &&
+- (cert->ex_kusage & KU_CRL_SIGN)))
++ else if (!((ex_flags & EXFLAG_KUSAGE) &&
++ (ex_kusage & KU_CRL_SIGN)))
+ {
+ debug("Certificate not allowed to sign CRLs! (%s %s)\n",
+- (cert->ex_flags & EXFLAG_KUSAGE),
+- (cert->ex_kusage & KU_CRL_SIGN));
++ (ex_flags & EXFLAG_KUSAGE),
++ (ex_kusage & KU_CRL_SIGN));
+ return false;
+ }
+ #endif
+@@ -454,7 +458,6 @@ WvString WvX509Mgr::sign(WvBuf &data) const
+ {
+ assert(rsa);
+
+- EVP_MD_CTX sig_ctx;
+ unsigned char sig_buf[4096];
+
+ EVP_PKEY *pk = EVP_PKEY_new();
+@@ -467,20 +470,22 @@ WvString WvX509Mgr::sign(WvBuf &data) const
+ return WvString::null;
+ }
+
+- EVP_SignInit(&sig_ctx, EVP_sha1());
+- EVP_SignUpdate(&sig_ctx, data.peek(0, data.used()), data.used());
++ EVP_MD_CTX *sig_ctx = EVP_MD_CTX_new();
++ EVP_SignInit(sig_ctx, EVP_sha1());
++ EVP_SignUpdate(sig_ctx, data.peek(0, data.used()), data.used());
+ unsigned int sig_len = sizeof(sig_buf);
+- int sig_err = EVP_SignFinal(&sig_ctx, sig_buf,
++ int sig_err = EVP_SignFinal(sig_ctx, sig_buf,
+ &sig_len, pk);
+ if (sig_err != 1)
+ {
+ debug("Error while signing.\n");
+ EVP_PKEY_free(pk);
++ EVP_MD_CTX_free(sig_ctx);
+ return WvString::null;
+ }
+
+ EVP_PKEY_free(pk);
+- EVP_MD_CTX_cleanup(&sig_ctx); // this isn't my fault ://
++ EVP_MD_CTX_free(sig_ctx); // this isn't my fault ://
+ WvDynBuf buf;
+ buf.put(sig_buf, sig_len);
+ debug("Signature size: %s\n", buf.used());
+diff --git a/include/wvdiffiehellman.h b/include/wvdiffiehellman.h
+index af75ffa..a2d001f 100644
+--- a/include/wvdiffiehellman.h
++++ b/include/wvdiffiehellman.h
+@@ -27,7 +27,7 @@ public:
+ bool create_secret(WvBuf &inbuf, size_t in_len, WvBuf& outbuf);
+
+ protected:
+- struct dh_st *info;
++ DH *info;
+ BN_ULONG generator;
+
+ private:
+diff --git a/include/wvdigest.h b/include/wvdigest.h
+index fdc39bd..f2eed40 100644
+--- a/include/wvdigest.h
++++ b/include/wvdigest.h
+@@ -9,10 +9,8 @@
+
+ #include "wvencoder.h"
+ #include <stdint.h>
++#include <openssl/evp.h>
+
+-struct env_md_st;
+-struct env_md_ctx_st;
+-struct hmac_ctx_st;
+
+ /**
+ * Superclass for all message digests.
+@@ -45,8 +43,8 @@ public:
+ class WvEVPMDDigest : public WvDigest
+ {
+ friend class WvHMACDigest;
+- const env_md_st *evpmd;
+- env_md_ctx_st *evpctx;
++ const EVP_MD *evpmd;
++ EVP_MD_CTX *evpctx;
+ bool active;
+
+ public:
+@@ -54,13 +52,13 @@ public:
+ virtual size_t digestsize() const;
+
+ protected:
+- WvEVPMDDigest(const env_md_st *_evpmd);
++ WvEVPMDDigest(const EVP_MD *_evpmd);
+ virtual bool _encode(WvBuf &inbuf, WvBuf &outbuf,
+ bool flush); // consumes input
+ virtual bool _finish(WvBuf &outbuf); // outputs digest
+ virtual bool _reset(); // supported: resets digest value
+
+- const env_md_st *getevpmd()
++ const EVP_MD *getevpmd()
+ { return evpmd; }
+
+ private:
+@@ -104,7 +102,7 @@ class WvHMACDigest : public WvDigest
+ WvEVPMDDigest *digest;
+ unsigned char *key;
+ size_t keysize;
+- hmac_ctx_st *hmacctx;
++ HMAC_CTX *hmacctx;
+ bool active;
+
+ public:
+diff --git a/include/wvtripledes.h b/include/wvtripledes.h
+index 185fe8a..a442e7a 100644
+--- a/include/wvtripledes.h
++++ b/include/wvtripledes.h
+@@ -70,11 +70,11 @@ protected:
+
+ private:
+ Mode mode;
+- des_cblock key;
+- des_key_schedule deskey1;
+- des_key_schedule deskey2;
+- des_key_schedule deskey3;
+- des_cblock ivec; // initialization vector
++ DES_cblock key;
++ DES_key_schedule deskey1;
++ DES_key_schedule deskey2;
++ DES_key_schedule deskey3;
++ DES_cblock ivec; // initialization vector
+ int ivecoff; // current offset into initvec
+ };
+
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/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch b/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch
deleted file mode 100644
index 232db9e63b..0000000000
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 0e054339c1422168a7f4a9dcf090268053a33b1f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 20 Jul 2017 21:05:37 -0700
-Subject: [PATCH 2/5] wvtask: Dont use ucontext on non-glibc systems
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- utils/wvtask.cc | 24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-diff --git a/utils/wvtask.cc b/utils/wvtask.cc
-index cdcd544..c0bff7d 100644
---- a/utils/wvtask.cc
-+++ b/utils/wvtask.cc
-@@ -199,7 +199,9 @@ WvTaskMan::WvTaskMan()
- stacktop = (char *)alloca(0);
-
- context_return = 0;
-+#ifdef __GLIBC__
- assert(getcontext(&get_stack_return) == 0);
-+#endif
- if (context_return == 0)
- {
- // initial setup - start the stackmaster() task (never returns!)
-@@ -265,13 +267,17 @@ int WvTaskMan::run(WvTask &task, int val)
- state = &old_task->mystate;
-
- context_return = 0;
-+#ifdef __GLIBC__
- assert(getcontext(state) == 0);
-+#endif
- int newval = context_return;
- if (newval == 0)
- {
- // saved the state, now run the task.
- context_return = val;
-+#ifdef __GLIBC__
- setcontext(&task.mystate);
-+#endif
- return -1;
- }
- else
-@@ -319,13 +325,17 @@ int WvTaskMan::yield(int val)
- #endif
-
- context_return = 0;
-+#ifdef __GLIBC__
- assert(getcontext(&current_task->mystate) == 0);
-+#endif
- int newval = context_return;
- if (newval == 0)
- {
- // saved the task state; now yield to the toplevel.
- context_return = val;
-+#ifdef __GLIBC__
- setcontext(&toplevel);
-+#endif
- return -1;
- }
- else
-@@ -341,7 +351,9 @@ int WvTaskMan::yield(int val)
- void WvTaskMan::get_stack(WvTask &task, size_t size)
- {
- context_return = 0;
-+#ifdef __GLIBC__
- assert(getcontext(&get_stack_return) == 0);
-+#endif
- if (context_return == 0)
- {
- assert(magic_number == -WVTASK_MAGIC);
-@@ -371,7 +383,9 @@ void WvTaskMan::get_stack(WvTask &task, size_t size)
- // initial setup
- stack_target = &task;
- context_return = size/1024 + (size%1024 > 0);
-+#ifdef __GLIBC__
- setcontext(&stackmaster_task);
-+#endif
- }
- else
- {
-@@ -409,7 +423,9 @@ void WvTaskMan::_stackmaster()
- assert(magic_number == -WVTASK_MAGIC);
-
- context_return = 0;
-+#ifdef __GLIBC__
- assert(getcontext(&stackmaster_task) == 0);
-+#endif
- val = context_return;
- if (val == 0)
- {
-@@ -419,7 +435,9 @@ void WvTaskMan::_stackmaster()
- // all current stack allocations) and go back to get_stack
- // (or the constructor, if that's what called us)
- context_return = 1;
-+#ifdef __GLIBC__
- setcontext(&get_stack_return);
-+#endif
- }
- else
- {
-@@ -474,7 +492,9 @@ void WvTaskMan::do_task()
-
- // back here from longjmp; someone wants stack space.
- context_return = 0;
-+#ifdef __GLIBC__
- assert(getcontext(&task->mystate) == 0);
-+#endif
- if (context_return == 0)
- {
- // done the setjmp; that means the target task now has
-@@ -510,7 +530,9 @@ void WvTaskMan::do_task()
- }
- else
- {
-+#ifdef __GLIBC__
- assert(getcontext(&task->func_call) == 0);
-+#endif
- task->func_call.uc_stack.ss_size = task->stacksize;
- task->func_call.uc_stack.ss_sp = task->stack;
- task->func_call.uc_stack.ss_flags = 0;
-@@ -521,9 +543,11 @@ void WvTaskMan::do_task()
- (void (*)(void))call_func, 1, task);
-
- context_return = 0;
-+#ifdef __GLIBC__
- assert(getcontext(&task->func_return) == 0);
- if (context_return == 0)
- setcontext(&task->func_call);
-+#endif
- }
-
- // the task's function terminated.
---
-2.13.3
-
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 8e4fd03298..6b31f2e10f 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/05_gcc.diff
@@ -1,16 +1,5 @@
-Index: wvstreams-4.6.1/crypto/wvx509.cc
-===================================================================
---- wvstreams-4.6.1.orig/crypto/wvx509.cc 2011-05-20 00:02:38.119136584 +0200
-+++ wvstreams-4.6.1/crypto/wvx509.cc 2011-05-20 00:02:26.035136589 +0200
-@@ -1157,7 +1157,7 @@
-
- if (ext)
- {
-- X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
-+ X509V3_EXT_METHOD *method = (X509V3_EXT_METHOD *)X509V3_EXT_get(ext);
- if (!method)
- {
- WvDynBuf buf;
+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
new file mode 100644
index 0000000000..7e372d391d
--- /dev/null
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams/openssl-buildfix.patch
@@ -0,0 +1,18 @@
+Upstream-Status: Pending
+
+Index: wvstreams-4.6.1/crypto/wvx509.cc
+===================================================================
+--- wvstreams-4.6.1.orig/crypto/wvx509.cc
++++ wvstreams-4.6.1/crypto/wvx509.cc
+@@ -1157,7 +1157,11 @@ WvString WvX509::get_extension(int nid)
+
+ if (ext)
+ {
++#if OPENSSL_VERSION_NUMBER >= 0x10000000L
++ const X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++#else
+ X509V3_EXT_METHOD *method = X509V3_EXT_get(ext);
++#endif
+ if (!method)
+ {
+ WvDynBuf buf;
diff --git a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
index e3d5e7d20b..3453f3e964 100644
--- a/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
+++ b/meta-oe/recipes-connectivity/wvdial/wvstreams_4.6.1.bb
@@ -1,13 +1,13 @@
HOMEPAGE = "http://alumnit.ca/wiki/index.php?page=WvStreams"
SUMMARY = "WvStreams is a network programming library in C++"
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=55ca817ccb7d5b5b66355690e9abc605"
-DEPENDS = "zlib openssl (>= 0.9.8) dbus readline"
-DEPENDS_append_libc-musl = " argp-standalone libexecinfo"
+DEPENDS = "zlib openssl (>= 0.9.8) dbus readline boost"
+DEPENDS:append:libc-musl = " argp-standalone libexecinfo"
-SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
+SRC_URI = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/${BPN}/${BP}.tar.gz \
file://04_signed_request.diff \
file://05_gcc.diff \
file://06_gcc-4.7.diff \
@@ -15,42 +15,44 @@ SRC_URI = "http://${BPN}.googlecode.com/files/${BP}.tar.gz \
file://gcc-6.patch \
file://argp.patch \
file://0001-Check-for-limits.h-during-configure.patch \
- file://0002-wvtask-Dont-use-ucontext-on-non-glibc-systems.patch \
file://0003-wvtask-Check-for-HAVE_LIBC_STACK_END-only-on-glibc-s.patch \
file://0004-wvcrash-Replace-use-of-basename-API.patch \
file://0005-check-for-libexecinfo-during-configure.patch \
file://0001-build-fix-parallel-make.patch \
file://0002-wvrules.mk-Use-_DEFAULT_SOURCE.patch \
+ file://openssl-buildfix.patch \
+ file://0001-Forward-port-to-OpenSSL-1.1.x.patch \
+ file://0001-Fix-narrowing-conversion-error.patch \
"
SRC_URI[md5sum] = "2760dac31a43d452a19a3147bfde571c"
SRC_URI[sha256sum] = "8403f5fbf83aa9ac0c6ce15d97fd85607488152aa84e007b7d0621b8ebc07633"
+COMPATIBLE_HOST:libc-musl = "null"
+
inherit autotools-brokensep pkgconfig
-TARGET_CFLAGS_append = " -fno-tree-dce -fno-optimize-sibling-calls"
+TARGET_CFLAGS:append = " -fno-tree-dce -fno-optimize-sibling-calls"
-LDFLAGS_append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib"
+LDFLAGS:append = " -Wl,-rpath-link,${CROSS_DIR}/${TARGET_SYS}/lib"
EXTRA_OECONF = " --without-tcl --without-qt --without-pam --without-valgrind"
-PACKAGES_prepend = "libuniconf libuniconf-dbg "
-PACKAGES_prepend = "uniconfd uniconfd-dbg "
-PACKAGES_prepend = "libwvstreams-base libwvstreams-base-dbg "
-PACKAGES_prepend = "libwvstreams-extras libwvstreams-extras-dbg "
-PACKAGES_prepend = "${PN}-valgrind "
+PACKAGES:prepend = "libuniconf "
+PACKAGES:prepend = "uniconfd "
+PACKAGES:prepend = "libwvstreams-base "
+PACKAGES:prepend = "libwvstreams-extras "
+PACKAGES:prepend = "${PN}-valgrind "
+
+RPROVIDES:${PN}-dbg += "libuniconf-dbg uniconfd-dbg libwvstreams-base-dbg libwvstreams-extras-dbg"
-FILES_libuniconf = "${libdir}/libuniconf.so.*"
-FILES_libuniconf-dbg = "${libdir}/.debug/libuniconf.so.*"
+FILES:libuniconf = "${libdir}/libuniconf.so.*"
-FILES_uniconfd = "${sbindir}/uniconfd ${sysconfdir}/uniconf.conf ${localstatedir}/uniconf"
-FILES_uniconfd-dbg = "${sbindir}/.debug/uniconfd"
+FILES:uniconfd = "${sbindir}/uniconfd ${sysconfdir}/uniconf.conf ${localstatedir}/uniconf"
-FILES_libwvstreams-base = "${libdir}/libwvutils.so.*"
-FILES_libwvstreams-base-dbg = "${libdir}/.debug/libwvutils.so.*"
+FILES:libwvstreams-base = "${libdir}/libwvutils.so.*"
-FILES_libwvstreams-extras = "${libdir}/libwvbase.so.* ${libdir}/libwvstreams.so.*"
-FILES_libwvstreams-extras-dbg = "${libdir}/.debug/libwvbase.so.* ${libdir}/.debug/libwvstreams.so.*"
+FILES:libwvstreams-extras = "${libdir}/libwvbase.so.* ${libdir}/libwvstreams.so.*"
-FILES_${PN}-valgrind = "${libdir}/valgrind/wvstreams.supp"
-RDEPENDS_${PN} += "perl"
+FILES:${PN}-valgrind = "${libdir}/valgrind/wvstreams.supp"
+RDEPENDS:${PN} += "perl"
diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch
index af14a1a56c..97339d3ff9 100644
--- a/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch
+++ b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-Fix-configure.ac.patch
@@ -1,5 +1,7 @@
uname can not get version of kernel correctly while cross compile
+Upstream-Status: Inappropriate [configuration]
+
Signed-off-by: Bian Naimeng <biannm@cn.fujitsu.com>
---
configure.ac | 2 +-
diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/0001-initialize-msghdr-portably.patch b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-initialize-msghdr-portably.patch
new file mode 100644
index 0000000000..a7a1dc1986
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zabbix/zabbix/0001-initialize-msghdr-portably.patch
@@ -0,0 +1,52 @@
+From 37b662cf44e14b33e93759d4b129d23095b41372 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 23:55:02 -0700
+Subject: [PATCH] initialize msghdr portably
+
+on linux we have musl as an option for system C library and current
+initialization assumes the structure to be same as glibc, therefore
+initialize the elements of structure instead, so it can work on both
+glibc and musl.
+
+Fixes
+net.c:115:79: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
+ struct msghdr s_msg = { (void *)&s_sa, sizeof(struct sockaddr_nl), s_io, 1, NULL, 0, 0};
+ ^~~~
+
+Upstream-Status: Submitted [https://github.com/zabbix/zabbix/pull/77]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libs/zbxsysinfo/linux/net.c | 12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+diff --git a/src/libs/zbxsysinfo/linux/net.c b/src/libs/zbxsysinfo/linux/net.c
+index 1425a3604d..98f03de0dd 100644
+--- a/src/libs/zbxsysinfo/linux/net.c
++++ b/src/libs/zbxsysinfo/linux/net.c
+@@ -114,13 +114,21 @@ static int find_tcp_port_by_state_nl(unsigned short port, int state, int *found)
+
+ struct sockaddr_nl s_sa = { AF_NETLINK, 0, 0, 0 };
+ struct iovec s_io[1] = { { &request, sizeof(request) } };
+- struct msghdr s_msg = { (void *)&s_sa, sizeof(struct sockaddr_nl), s_io, 1, NULL, 0, 0};
++ struct msghdr s_msg = { 0 };
++ s_msg.msg_name = (void *)&s_sa;
++ s_msg.msg_namelen = sizeof(struct sockaddr_nl);
++ s_msg.msg_iov = s_io;
++ s_msg.msg_iovlen = 1;
+
+ char buffer[BUFSIZ] = { 0 };
+
+ struct sockaddr_nl r_sa = { AF_NETLINK, 0, 0, 0 };
+ struct iovec r_io[1] = { { buffer, BUFSIZ } };
+- struct msghdr r_msg = { (void *)&r_sa, sizeof(struct sockaddr_nl), r_io, 1, NULL, 0, 0};
++ struct msghdr r_msg = { 0 };
++ r_msg.msg_name = (void *)&r_sa;
++ r_msg.msg_namelen = sizeof(struct sockaddr_nl);
++ r_msg.msg_iov = r_io;
++ r_msg.msg_iovlen = 1;
+
+ struct nlmsghdr *r_hdr;
+
+--
+2.37.3
+
diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service b/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service
index b18a96f8b6..56e5064281 100644
--- a/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service
+++ b/meta-oe/recipes-connectivity/zabbix/zabbix/zabbix-agent.service
@@ -3,9 +3,8 @@ Description=Zabbix Monitor Agent
After=syslog.target network.target
[Service]
-Type=oneshot
-ExecStart=@SBINDIR@/zabbix_agentd
-RemainAfterExit=yes
+Type=simple
+ExecStart=@SBINDIR@/zabbix_agentd -f
User=zabbix
[Install]
diff --git a/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb b/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb
deleted file mode 100644
index bab5a6ae6b..0000000000
--- a/meta-oe/recipes-connectivity/zabbix/zabbix_3.0.9.bb
+++ /dev/null
@@ -1,75 +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 = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=300e938ad303147fede2294ed78fe02e"
-DEPENDS = "openldap virtual/libiconv"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
-SRC_URI = "http://jaist.dl.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/${PV}/${BPN}-${PV}.tar.gz \
- file://0001-Fix-configure.ac.patch \
- file://zabbix-agent.service \
-"
-
-SRC_URI[md5sum] = "489d21b464277c0d412155c7e5611a8f"
-SRC_URI[sha256sum] = "4445f26c025009681c29c9b350aa6c4ee7b124ddcaf1609ae36c55997bcb8cf2"
-
-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-jabber \
- --with-unixodbc \
- --with-ssh2 \
- --with-sqlite3 \
-"
-CFLAGS_append = " -lldap -llber"
-
-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..948d312bde
--- /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"
+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 4920bce8c8..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 = "6aa3ab686e916cb0e62df7fa7d12e0b13ae9fae6"
-PV = "4.2.3+git${SRCPV}"
-
-SRC_URI = "git://github.com/zeromq/cppzmq.git"
-
-S = "${WORKDIR}/git"
-
-do_install () {
- install -d ${D}/usr/include
- install -m 0755 ${S}/zmq.hpp ${D}/usr/include/
-}
-
-PACKAGES = "${PN}-dev"
-
-RDEPENDS_${PN}-dev = "zeromq-dev"
diff --git a/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb b/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb
new file mode 100644
index 0000000000..86fde7ccfb
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeromq/czmq_4.2.1.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "High-level C binding for 0MQ"
+HOMEPAGE = "http://czmq.zeromq.org/"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9741c346eef56131163e13b9db1241b3"
+DEPENDS = "zeromq"
+
+SRC_URI = "https://github.com/zeromq/czmq/releases/download/v${PV}/czmq-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "471e9ec120fc66a2fe2aae14359e3cfa"
+SRC_URI[sha256sum] = "5d720a204c2a58645d6f7643af15d563a712dad98c9d32c1ed913377daa6ac39"
+
+UPSTREAM_CHECK_URI = "https://github.com/zeromq/${BPN}/releases"
+
+inherit cmake pkgconfig
+
+PACKAGES = "lib${BPN} lib${BPN}-dev lib${BPN}-staticdev ${PN} ${PN}-dbg"
+
+FILES:${PN} = "${bindir}/*"
+FILES:lib${BPN} = "${libdir}/*.so.*"
+FILES:lib${BPN}-dev = "${libdir}/*.so ${libdir}/pkgconfig ${includedir} ${datadir}/cmake"
+FILES:lib${BPN}-staticdev = "${libdir}/lib*.a"
+
+RDEPENDS:lib${BPN}-dev = "zeromq-dev"
+
+PACKAGECONFIG ??= "lz4 uuid curl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[curl] = "-DCZMQ_WITH_LIBCURL=ON,-DCZMQ_WITH_LIBCURL=OFF,curl"
+PACKAGECONFIG[httpd] = "-DCZMQ_WITH_LIBMICROHTTPD=ON,-DCZMQ_WITH_LIBMICROHTTPD=OFF,libmicrohttpd"
+PACKAGECONFIG[lz4] = "-DCZMQ_WITH_LZ4=ON,-DCZMQ_WITH_LZ4=OFF,lz4"
+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}/.
+}
diff --git a/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch b/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch
new file mode 100644
index 0000000000..3b0300c8aa
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeromq/files/0001-CMakeLists-txt-Avoid-host-specific-path-to-libsodium.patch
@@ -0,0 +1,46 @@
+From 24ad50286a87833329213dc0b0e68c21aeeee95f Mon Sep 17 00:00:00 2001
+From: Niko Mauno <niko.mauno@vaisala.com>
+Date: Wed, 22 Apr 2020 09:00:00 +0300
+Subject: [PATCH] CMakeLists.txt: Avoid host-specific path to libsodium
+
+Avoid propagating full build host specific path to generated
+ZeroMQTargets.cmake when building with libsodium, which changes the
+content in generated ZeroMQTargets.cmake files followingly:
+
+ -INTERFACE_LINK_LIBRARIES "-lpthread;/build/host/specific/path/to/zeromq/4.3.2-r0/recipe-sysroot/usr/lib/libsodium.so;-lrt"
+ +INTERFACE_LINK_LIBRARIES "-lpthread;-lsodium;-lrt"
+
+This change mitigates an issue stemming from reuse of build artifacts
+where the path to libsodium.so does not match exactly between two
+different build hosts.
+
+Upstream-Status: Pending
+
+Signed-off-by: Niko Mauno <niko.mauno@vaisala.com>
+
+---
+ CMakeLists.txt | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e92141d..d0775c1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1428,7 +1428,7 @@ if(BUILD_SHARED)
+ endif()
+
+ if(SODIUM_FOUND)
+- target_link_libraries(libzmq ${SODIUM_LIBRARIES})
++ target_link_libraries(libzmq -lsodium)
+ # On Solaris, libsodium depends on libssp
+ if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+ target_link_libraries(libzmq ssp)
+@@ -1473,7 +1473,7 @@ if(BUILD_STATIC)
+ endif()
+
+ if(SODIUM_FOUND)
+- target_link_libraries(libzmq-static ${SODIUM_LIBRARIES})
++ target_link_libraries(libzmq-static -lsodium)
+ # On Solaris, libsodium depends on libssp
+ if(${CMAKE_SYSTEM_NAME} MATCHES "SunOS")
+ target_link_libraries(libzmq-static ssp)
diff --git a/meta-oe/recipes-connectivity/zeromq/files/0001-src-secure_allocator.hpp-define-missing-rebind-type.patch b/meta-oe/recipes-connectivity/zeromq/files/0001-src-secure_allocator.hpp-define-missing-rebind-type.patch
new file mode 100644
index 0000000000..d32190818b
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeromq/files/0001-src-secure_allocator.hpp-define-missing-rebind-type.patch
@@ -0,0 +1,64 @@
+From 66e72389cc90625ed74e8ba1ea3a65234bdb06b5 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Tue, 20 Dec 2022 21:45:16 +0000
+Subject: [PATCH] src/secure_allocator.hpp: define missing 'rebind' type
+
+`gcc-13` added an assert to standard headers to make sure custom
+allocators have intended implementation of rebind type instead
+of inherited rebind. gcc change:
+ https://gcc.gnu.org/git/?p=gcc.git;a=commitdiff;h=64c986b49558a7
+
+Without the fix build fails on this week's `gcc-13` as:
+
+ [ 92%] Building CXX object tests/CMakeFiles/test_security_curve.dir/test_security_curve.cpp.o
+ In file included from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:34,
+ from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_uninitialized.h:64,
+ from /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/memory:69,
+ from tests/../src/secure_allocator.hpp:42,
+ from tests/../src/curve_client_tools.hpp:49,
+ from tests/test_security_curve.cpp:53:
+ /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h: In instantiation of 'struct std::__allocator_traits_base::__rebind<zmq::secure_allocator_t<unsigned char>, unsigned char, void>':
+ /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:94:11: required by substitution of 'template<class _Alloc, class _Up> using std::__alloc_rebind = typename std::__allocator_traits_base::__rebind<_Alloc, _Up>::type [with _Alloc = zmq::secure_allocator_t<unsigned char>; _Up = unsigned char]'
+ /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:228:8: required by substitution of 'template<class _Alloc> template<class _Tp> using std::allocator_traits< <template-parameter-1-1> >::rebind_alloc = std::__alloc_rebind<_Alloc, _Tp> [with _Tp = unsigned char; _Alloc = zmq::secure_allocator_t<unsigned char>]'
+ /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/ext/alloc_traits.h:126:65: required from 'struct __gnu_cxx::__alloc_traits<zmq::secure_allocator_t<unsigned char>, unsigned char>::rebind<unsigned char>'
+ /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:88:21: required from 'struct std::_Vector_base<unsigned char, zmq::secure_allocator_t<unsigned char> >'
+ /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/stl_vector.h:423:11: required from 'class std::vector<unsigned char, zmq::secure_allocator_t<unsigned char> >'
+ tests/../src/curve_client_tools.hpp:64:76: required from here
+ /<<NIX>>/gcc-13.0.0/include/c++/13.0.0/bits/alloc_traits.h:70:31: error: static assertion failed: allocator_traits<A>::rebind_alloc<A::value_type> must be A
+ 70 | _Tp>::value,
+ | ^~~~~
+
+The change adds trivial `rebind` definition with expected return type
+and satisfies conversion requirements.
+
+Upstream-Status: Backport [https://github.com/zeromq/libzmq/commit/438d5d88]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/secure_allocator.hpp | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/src/secure_allocator.hpp b/src/secure_allocator.hpp
+index 0d37e7ed..5b8de9e2 100644
+--- a/src/secure_allocator.hpp
++++ b/src/secure_allocator.hpp
+@@ -95,6 +95,17 @@ bool operator!= (const secure_allocator_t<T> &, const secure_allocator_t<U> &)
+ #else
+ template <typename T> struct secure_allocator_t : std::allocator<T>
+ {
++ secure_allocator_t () ZMQ_DEFAULT;
++
++ template <class U>
++ secure_allocator_t (const secure_allocator_t<U> &) ZMQ_NOEXCEPT
++ {
++ }
++
++ template <class U> struct rebind
++ {
++ typedef secure_allocator_t<U> other;
++ };
+ };
+ #endif
+ }
+--
+2.39.1
+
diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb
deleted file mode 100644
index 356348b43f..0000000000
--- a/meta-oe/recipes-connectivity/zeromq/zeromq_4.2.5.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework"
-HOMEPAGE = "http://www.zeromq.org"
-LICENSE = "LGPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=d5311495d952062e0e4fbba39cbf3de1"
-
-PACKAGECONFIG ??= "libsodium"
-PACKAGECONFIG[libsodium] = "--with-libsodium, --without-libsodium, libsodium"
-
-SRC_URI = "http://github.com/zeromq/libzmq/releases/download/v${PV}/zeromq-${PV}.tar.gz \
- file://run-ptest \
-"
-SRC_URI[md5sum] = "a1c95b34384257e986842f4d006957b8"
-SRC_URI[sha256sum] = "cc9090ba35713d59bb2f7d7965f877036c49c5558ea0c290b0dcc6f2a17e489f"
-
-S = "${WORKDIR}/zeromq-${PV}"
-
-#Uncomment to choose polling system manually. valid values are kqueue, epoll, devpoll, poll or select
-#EXTRA_OECONF += "--with-poller=kqueue"
-#CFLAGS_append = " -O0"
-#CXXFLAGS_append = " -O0"
-
-inherit autotools ptest pkgconfig
-
-do_compile_ptest () {
- echo 'buildtest-TESTS: $(check_PROGRAMS)' >> ${B}/Makefile
- oe_runmake buildtest-TESTS
-}
-
-do_install_ptest () {
- install -d ${D}${PTEST_PATH}/tests
- install -m 0755 ${B}/tests/.libs/test_* ${D}${PTEST_PATH}/tests
-}
diff --git a/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb b/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb
new file mode 100644
index 0000000000..cd319b5d3a
--- /dev/null
+++ b/meta-oe/recipes-connectivity/zeromq/zeromq_4.3.4.bb
@@ -0,0 +1,30 @@
+DESCRIPTION = "ZeroMQ looks like an embeddable networking library but acts like a concurrency framework"
+HOMEPAGE = "http://www.zeromq.org"
+LICENSE = "LGPL-3.0-with-zeromq-exception"
+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://0001-src-secure_allocator.hpp-define-missing-rebind-type.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-core/basu/basu_0.2.1.bb b/meta-oe/recipes-core/basu/basu_0.2.1.bb
new file mode 100644
index 0000000000..500408e11e
--- /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"
+SRCREV = "684a41d68cfbb05e38aacb60a8548e21ddfbecdb"
+
+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.4.0.bb b/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.4.0.bb
new file mode 100644
index 0000000000..6294827b18
--- /dev/null
+++ b/meta-oe/recipes-core/dbus-cxx/dbus-cxx_2.4.0.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 = "ebac3df5beeb4337f65968ae5b265927abb792af"
+
+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/dbus-broker/0001-Comment-rst2man-related-stuff.patch b/meta-oe/recipes-core/dbus/dbus-broker/0001-Comment-rst2man-related-stuff.patch
deleted file mode 100644
index f10c49e7c3..0000000000
--- a/meta-oe/recipes-core/dbus/dbus-broker/0001-Comment-rst2man-related-stuff.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a92fd7da3a262e21c0970a3908eb0b4502819a01 Mon Sep 17 00:00:00 2001
-From: Yang Lyu <yangl@axis.com>
-Date: Fri, 23 Feb 2018 16:31:49 +0100
-Subject: [PATCH] Comment rst2man related stuff
-
----
- meson.build | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index 56d38e4..3c3b109 100644
---- a/meson.build
-+++ b/meson.build
-@@ -15,7 +15,7 @@ add_project_arguments('-DBINDIR="' + join_paths(get_option('prefix'), get_option
- cc = meson.get_compiler('c')
- conf = configuration_data()
- mod_pkgconfig = import('pkgconfig')
--prog_rst2man = find_program('rst2man', 'rst2man.py')
-+#prog_rst2man = find_program('rst2man', 'rst2man.py')
-
- sub_cdvar = subproject('c-dvar', version: '>=1')
- sub_clist = subproject('c-list', version: '>=3')
-@@ -56,7 +56,7 @@ endif
-
- conf.set('bindir', join_paths(get_option('prefix'), get_option('bindir')))
-
--subdir('docs')
-+#subdir('docs')
- subdir('src')
-
- if use_launcher
---
-2.1.4
-
diff --git a/meta-oe/recipes-core/dbus/dbus-broker/0002-Correct-including-directory-for-conf.patch b/meta-oe/recipes-core/dbus/dbus-broker/0002-Correct-including-directory-for-conf.patch
deleted file mode 100644
index 4909dea125..0000000000
--- a/meta-oe/recipes-core/dbus/dbus-broker/0002-Correct-including-directory-for-conf.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 4b79f603b948709906c108796087de7b5643f61a Mon Sep 17 00:00:00 2001
-From: Yang Lyu <yangl@axis.com>
-Date: Mon, 26 Feb 2018 12:48:34 +0100
-Subject: [PATCH] Correct including directory for conf
-
----
- src/launch/config.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/launch/config.c b/src/launch/config.c
-index 6a68699..579471b 100644
---- a/src/launch/config.c
-+++ b/src/launch/config.c
-@@ -1022,7 +1022,7 @@ static void config_parser_end_fn(void *userdata, const XML_Char *name) {
- state->file,
- state->current->include.selinux_root_relative ?
- bus_selinux_policy_root() :
-- state->file->path,
-+ NULL,
- state->current->cdata);
- if (r) {
- state->error = error_trace(r);
---
-2.1.4
-
diff --git a/meta-oe/recipes-core/dbus/dbus-broker_32.bb b/meta-oe/recipes-core/dbus/dbus-broker_32.bb
new file mode 100644
index 0000000000..900b5e3ac8
--- /dev/null
+++ b/meta-oe/recipes-core/dbus/dbus-broker_32.bb
@@ -0,0 +1,32 @@
+SUMMARY = "dbus broker"
+DESCRIPTION = "Drop-in replacement for dbus-daemon."
+
+SECTION = "base"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8"
+
+SRC_URI = "https://github.com/bus1/dbus-broker/releases/download/v${PV}/dbus-broker-${PV}.tar.xz"
+SRC_URI[sha256sum] = "bea7f653e7251063c5f427e9e3f93562d38a0d8667ae6d49fb56f113605985de"
+
+UPSTREAM_CHECK_URI = "https://github.com/bus1/${BPN}/releases"
+
+inherit meson pkgconfig systemd features_check
+
+DEPENDS = "expat systemd"
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'libselinux (>= 3.2)', '', d)}"
+DEPENDS += " ${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'audit (>= 3.0)', '', d)}"
+
+RDEPENDS:${PN} += "dbus-common"
+
+REQUIRED_DISTRO_FEATURES = "systemd"
+
+SYSTEMD_SERVICE:${PN} = "${BPN}.service"
+
+FILES:${PN} += "${systemd_system_unitdir}"
+FILES:${PN} += "${systemd_user_unitdir}"
+FILES:${PN} += "${nonarch_libdir}/systemd/catalog"
+
+EXTRA_OEMESON += " -Dselinux=${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'true', 'false', d)}"
+EXTRA_OEMESON += " -Daudit=${@bb.utils.contains('DISTRO_FEATURES', 'selinux', 'true', 'false', d)}"
+
diff --git a/meta-oe/recipes-core/dbus/dbus-broker_git.bb b/meta-oe/recipes-core/dbus/dbus-broker_git.bb
deleted file mode 100644
index b62bccf2c9..0000000000
--- a/meta-oe/recipes-core/dbus/dbus-broker_git.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "dbus broker"
-DESCRIPTION = "Drop-in replacement for dbus-daemon."
-
-SECTION = "base"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7b486c2338d225a1405d979ed2c15ce8"
-
-DEPENDS = "dbus glib-2.0 expat"
-
-PV = "9+git${SRCPV}"
-SRCREV = "ccd06b284892182af569e69046262331150e3536"
-
-SRC_URI = "git://github.com/bus1/dbus-broker;protocol=git"
-SRC_URI += "file://0001-Comment-rst2man-related-stuff.patch"
-SRC_URI += "file://0002-Correct-including-directory-for-conf.patch"
-
-S = "${WORKDIR}/git"
-
-inherit meson pkgconfig systemd distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-
-FILES_${PN} += "${systemd_system_unitdir}"
-FILES_${PN} += "${systemd_user_unitdir}"
-
-RDEPENDS_${PN} = "dbus"
-
-BBCLASSEXTEND = "native"
-
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 2c4ca057f2..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(-)
@@ -21,7 +23,7 @@ index 009e4fd..f3f0d80 100644
if (!dbus_conn)
- return;
-+ DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
++ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
if (verbose)
g_print ("New message from server: type='%d' path='%s' iface='%s'"
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 42cd032c22..d096cd618e 100644
--- a/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
+++ b/meta-oe/recipes-core/dbus/dbus-daemon-proxy_git.bb
@@ -1,12 +1,12 @@
SUMMARY = "dbus forwarding daemon"
-LICENSE = "LGPLv2.1+"
+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"
-SRC_URI = "git://github.com/alban/dbus-daemon-proxy \
+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 \
"
S = "${WORKDIR}/git"
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/dbus/libdbus-c++_0.9.0.bb b/meta-oe/recipes-core/dbus/libdbus-c++_0.9.0.bb
index a6d8b86ee0..8e8f544e8e 100644
--- a/meta-oe/recipes-core/dbus/libdbus-c++_0.9.0.bb
+++ b/meta-oe/recipes-core/dbus/libdbus-c++_0.9.0.bb
@@ -2,7 +2,7 @@ SUMMARY = "DBus-C++ Library"
DESCRIPTION = "DBus-c++ attempts to provide a C++ API for D-BUS. The library has a glib and an Ecore mainloop integration. It also offers an optional own main loop."
HOMEPAGE = "http://dbus-cplusplus.sourceforge.net"
SECTION = "base"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
DEPENDS = "dbus expat glib-2.0 libpcre"
@@ -25,6 +25,6 @@ LDFLAGS += "-pthread"
PACKAGE_BEFORE_PN = "${PN}-tools"
-FILES_${PN}-tools = "${bindir}"
+FILES:${PN}-tools = "${bindir}"
BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch b/meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch
deleted file mode 100644
index abd7ff4166..0000000000
--- a/meta-oe/recipes-core/eggdbus/eggdbus/gtk-doc.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: eggdbus-0.6/docs/eggdbus/Makefile.am
-===================================================================
---- eggdbus-0.6.orig/docs/eggdbus/Makefile.am
-+++ eggdbus-0.6/docs/eggdbus/Makefile.am
-@@ -87,11 +87,7 @@ HTML_IMAGES = \
- # Extra options to supply to gtkdoc-fixref
- FIXXREF_OPTIONS=
-
--if ENABLE_GTK_DOC
--include $(top_srcdir)/gtk-doc.make
--else
- CLEANFILES =
--endif
-
- CLEANFILES += *~ \
- eggdbus-scan.* \
-Index: eggdbus-0.6/docs/tests/Makefile.am
-===================================================================
---- eggdbus-0.6.orig/docs/tests/Makefile.am
-+++ eggdbus-0.6/docs/tests/Makefile.am
-@@ -65,11 +65,7 @@ HTML_IMAGES = \
- # Extra options to supply to gtkdoc-fixref
- FIXXREF_OPTIONS=
-
--if ENABLE_GTK_DOC
--include $(top_srcdir)/gtk-doc.make
--else
- CLEANFILES =
--endif
-
- CLEANFILES += *~ \
- tests-scan.* \
diff --git a/meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch b/meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch
deleted file mode 100644
index a605a34c8e..0000000000
--- a/meta-oe/recipes-core/eggdbus/eggdbus/marshal.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-Index: eggdbus-0.6/src/eggdbus/Makefile.am
-===================================================================
---- eggdbus-0.6.orig/src/eggdbus/Makefile.am
-+++ eggdbus-0.6/src/eggdbus/Makefile.am
-@@ -130,7 +130,7 @@ BUILT_SOURCES = \
- $(NULL)
-
- eggdbus-built-sources.stamp : eggdbus-binding-tool Makefile.am org.freedesktop.DBus.xml org.freedesktop.DBus.Peer.xml org.freedesktop.DBus.Properties.xml org.freedesktop.DBus.Introspectable.xml eggdbus-glib-genmarshal
-- EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool \
-+ EGG_DBUS_GENMARSHAL=eggdbus-glib-genmarshal eggdbus-binding-tool \
- --namespace EggDBus \
- --dbus-namespace org.freedesktop.DBus \
- --interfaces-only \
-Index: eggdbus-0.6/src/tests/Makefile.am
-===================================================================
---- eggdbus-0.6.orig/src/tests/Makefile.am
-+++ eggdbus-0.6/src/tests/Makefile.am
-@@ -25,7 +25,7 @@ BUILT_SOURCES = \
- $(NULL)
-
- test-built-sources.stamp : Makefile.am $(top_builddir)/src/eggdbus/eggdbus-binding-tool com.example.Frob.xml com.example.Tweak.xml com.example.Twiddle.xml
-- EGG_DBUS_GENMARSHAL=$(top_builddir)/src/eggdbus/eggdbus-glib-genmarshal $(top_builddir)/src/eggdbus/eggdbus-binding-tool \
-+ EGG_DBUS_GENMARSHAL=eggdbus-glib-genmarshal eggdbus-binding-tool \
- --namespace "Test" \
- --dbus-namespace "com.example" \
- --include-header testtypes.h \
diff --git a/meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb b/meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb
deleted file mode 100644
index cc28ec77cd..0000000000
--- a/meta-oe/recipes-core/eggdbus/eggdbus_0.6.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "An alternative to dbug-glib."
-DESCRIPTION = "An alternative to dbus-glib. It is designed specifically to \
-make it comfortable to work with very large and potentially \
-complex D-Bus services like e.g. DeviceKit-disks"
-
-HOMEPAGE = "http://cgit.freedesktop.org/~david/eggdbus"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=155db86cdbafa7532b41f390409283eb \
- file://src/eggdbus/eggdbus.h;md5=6b312aef57ed8d738b3f131ad037d6c2"
-
-DEPENDS = "dbus glib-2.0 dbus-glib eggdbus-native"
-DEPENDS_class-native = "dbus-native glib-2.0-native dbus-glib-native"
-
-SRC_URI = "http://cgit.freedesktop.org/~david/${BPN}/snapshot/${BPN}-${PV}.tar.bz2 \
- file://gtk-doc.patch \
-"
-SRC_URI_append_class-target = "file://marshal.patch"
-SRC_URI[md5sum] = "0a111faa54dfba2cf432c2c8e8a76e06"
-SRC_URI[sha256sum] = "3ad26e271c1a879bafcd181e065fe0ed53b542299a773c3188c9edb25b895ed1"
-
-inherit autotools gtk-doc
-
-EXTRA_OECONF = " --disable-man-pages "
-
-BBCLASSEXTEND = "native"
-
-PARALLEL_MAKE = ""
-
-do_configure_prepend() {
- # Create ChangeLog to walk around automake error.
- # " Makefile.am: error: required file './ChangeLog' not found "
- touch ${S}/ChangeLog
-}
diff --git a/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch b/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch
deleted file mode 100644
index a172a93ca5..0000000000
--- a/meta-oe/recipes-core/ell/ell/0001-ell-fix-build-with-musl-libc.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4f8c68757b05d12392cd1a8aed174cb8e56f80e3 Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Thu, 5 Apr 2018 17:19:44 +0300
-Subject: [PATCH] ell: fix build with musl libc
-
-musl libc doesn't implement TEMP_FAILURE_RETRY. Use the
-TEMP_FAILURE_RETRY from glibc to fix build.
-
-Upstream-Status: Submitted [https://lists.01.org/pipermail/ell/2018-April/001209.html]
-
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- ell/dbus.h | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/ell/dbus.h b/ell/dbus.h
-index a7c08d2..3ff5e0f 100644
---- a/ell/dbus.h
-+++ b/ell/dbus.h
-@@ -28,6 +28,16 @@
- #include <stddef.h>
- #include <stdarg.h>
-
-+/* taken from glibc unistd.h for musl support */
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(expression) \
-+ (__extension__ \
-+ ({ long int __result; \
-+ do __result = (long int) (expression); \
-+ while (__result == -1L && errno == EINTR); \
-+ __result; }))
-+#endif
-+
- #ifdef __cplusplus
- extern "C" {
- #endif
---
-2.4.0
-
diff --git a/meta-oe/recipes-core/ell/ell_0.4.bb b/meta-oe/recipes-core/ell/ell_0.4.bb
deleted file mode 100644
index 1524bd6b91..0000000000
--- a/meta-oe/recipes-core/ell/ell_0.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Embedded Linux Library"
-DESCRIPTION = "ELL is a DBUS library which provides DBUS bindings."
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fb504b67c50331fc78734fed90fb0e09"
-SECTION = "libs"
-
-inherit autotools pkgconfig
-
-S = "${WORKDIR}/git"
-SRCREV = "b4aea06fabb2af1af01f861f8f394c75950b6d47"
-SRC_URI = "git://git.kernel.org/pub/scm/libs/ell/ell.git \
- file://0001-ell-fix-build-with-musl-libc.patch \
- "
-
-do_configure_prepend () {
- mkdir ${S}/build-aux
-}
-
-DEPENDS = "dbus"
diff --git a/meta-oe/recipes-core/emlog/emlog.inc b/meta-oe/recipes-core/emlog/emlog.inc
new file mode 100644
index 0000000000..0972aff32c
--- /dev/null
+++ b/meta-oe/recipes-core/emlog/emlog.inc
@@ -0,0 +1,13 @@
+DESCRIPTION = "emlog is a Linux kernel module that makes it easy to access the \
+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=https;branch=master"
+SRCREV = "a9bbf324fde131ff4cf064e32674086c4ced4dca"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE += " \
+ CFLAGS='${TARGET_CFLAGS}' \
+"
diff --git a/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch b/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch
new file mode 100644
index 0000000000..beba528b33
--- /dev/null
+++ b/meta-oe/recipes-core/emlog/emlog/0001-Remove-modules_clean-from-clean-target.patch
@@ -0,0 +1,33 @@
+From fd0a4ee201b5c7b24da79dcd346ac121978951a0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 29 Mar 2020 19:58:36 -0700
+Subject: [PATCH] Remove modules_clean from clean target
+
+This is needed when building applications (w/o module)
+Since OE will run 'make clean' before reconfiguring, this
+will try to run module_clean and will wrongly try to look for removing
+modules from /lib/modules
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+
+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 c60863f..fc897d5 100644
+--- a/Makefile
++++ b/Makefile
+@@ -23,7 +23,7 @@ all: modules nbcat mkemlog
+
+ install: modules_install nbcat_install mkemlog_install
+
+-clean: modules_clean nbcat_clean mkemlog_clean
++clean: nbcat_clean mkemlog_clean
+
+ modules:
+ $(MAKE) -C $(KDIR) M=$(CURDIR) modules
+--
+2.26.0
+
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
new file mode 100644
index 0000000000..4c5a191ac4
--- /dev/null
+++ b/meta-oe/recipes-core/emlog/emlog/Drop-use-of-error-h.patch
@@ -0,0 +1,115 @@
+From 41de28a92297f4cb0c5a8d7356cde9190176947b Mon Sep 17 00:00:00 2001
+From: Fabio Berton <fabio.berton@ossystems.com.br>
+Date: Thu, 14 Mar 2019 19:54:27 -0300
+Subject: [PATCH] Drop use of error.h
+Organization: O.S. Systems Software LTDA.
+
+The error.h does not work with musl and this project being embedded
+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/mkemlog.c b/mkemlog.c
+index e3354ed..7bcdfce 100644
+--- a/mkemlog.c
++++ b/mkemlog.c
+@@ -21,7 +21,6 @@
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <stdlib.h>
+-#include <error.h>
+ #include <errno.h>
+
+ #define EMLOG_DEVICE "/dev/emlog"
+@@ -40,16 +39,16 @@ int main(int argc, char** argv) {
+ FILE *max_size_file = NULL;
+ uid_t uid = -1;
+ if (argc < 2 || argc > 5) {
+- error(1 ,0, USAGE);
++ fprintf(stderr, USAGE);
+ }
+ file = argv[1];
+
+ max_size_file = fopen("/sys/module/emlog/parameters/emlog_max_size", "r");
+ if (max_size_file == NULL)
+- error(1, errno, "Emlog module not loaded\n");
++ fprintf(stderr, "Emlog module not loaded\n");
+ rc = fscanf(max_size_file, "%d", &emlog_max_size);
+ if (rc != 1)
+- error(1, errno, "Unable to get emlog max size\n");
++ fprintf(stderr, "Unable to get emlog max size\n");
+ fclose(max_size_file);
+ max_size_file = NULL;
+ if (argc > 2 ) {
+@@ -57,13 +56,13 @@ int main(int argc, char** argv) {
+ number = argv[2];
+ size_of_buffer = strtol(number, &end_of_number, 10);
+ if (errno) {
+- error(1, errno, "Invalid size provided\n" USAGE);
++ fprintf(stderr, "Invalid size provided\n" USAGE);
+ }
+ if (end_of_number == number) {
+- error(1, 0, "Invalid size provided\n" USAGE);
++ fprintf(stderr, "Invalid size provided\n" USAGE);
+ }
+ if (size_of_buffer < 1 || size_of_buffer > emlog_max_size) {
+- error(1, 0, "Invalid size provided must be a value between 1 and %d\n" USAGE, emlog_max_size);
++ fprintf(stderr, "Invalid size provided must be a value between 1 and %d\n" USAGE, emlog_max_size);
+ }
+ }
+ if (argc > 3 ) {
+@@ -71,10 +70,10 @@ int main(int argc, char** argv) {
+ number = argv[3];
+ mode = strtol(number, &end_of_number, 8);
+ if (errno) {
+- error(1, errno, "Invalid mode provided\n" USAGE);
++ fprintf(stderr, "Invalid mode provided\n" USAGE);
+ }
+ if (end_of_number == number || S_IFMT & mode) {
+- error(1, 0, "Invalid mode provided\n" USAGE);
++ fprintf(stderr, "Invalid mode provided\n" USAGE);
+ }
+ }
+ if (argc > 4 ) {
+@@ -82,27 +81,27 @@ int main(int argc, char** argv) {
+ number = argv[4];
+ uid = strtol(number, &end_of_number, 10);
+ if (errno) {
+- error(1, errno, "Invalid uid provided\n" USAGE);
++ fprintf(stderr, "Invalid uid provided\n" USAGE);
+ }
+ if (end_of_number == number) {
+- error(1, 0, "Invalid uid provided\n" USAGE);
++ fprintf(stderr, "Invalid uid provided\n" USAGE);
+ }
+ }
+ rc = stat(EMLOG_DEVICE, &emlog_stat);
+ if (rc == -1) {
+- error(1, errno, "stat: " EMLOG_DEVICE);
++ fprintf(stderr, "stat: " EMLOG_DEVICE);
+ }
+ if (!S_ISCHR(emlog_stat.st_mode)) {
+- error(1, 0, EMLOG_DEVICE " is not a valid emlog device\n");
++ fprintf(stderr, EMLOG_DEVICE " is not a valid emlog device\n");
+ }
+ rc = mknod(file, mode | S_IFCHR, makedev(major(emlog_stat.st_rdev),size_of_buffer));
+ if (rc == -1) {
+- error(1, errno, "mknod: %s", file);
++ fprintf(stderr, "mknod: %s", file);
+ }
+ if (uid != -1) {
+ rc = chown(file, uid, -1);
+ if (rc == -1) {
+- error(1, errno, "chown: %s", file);
++ fprintf(stderr, "chown: %s", file);
+ }
+ }
+ printf("Log device %s created with buffer size of %d KiB\n", file, size_of_buffer);
+--
+2.20.1
diff --git a/meta-oe/recipes-core/emlog/emlog/emlog.initd b/meta-oe/recipes-core/emlog/emlog/emlog.initd
new file mode 100644
index 0000000000..361cf8029e
--- /dev/null
+++ b/meta-oe/recipes-core/emlog/emlog/emlog.initd
@@ -0,0 +1,25 @@
+#!/bin/sh
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+[ -r /etc/default/emlog ] && . /etc/default/emlog
+
+do_start() {
+ :
+}
+
+do_stop() {
+ nbcat /dev/emlog > /data/emlog
+}
+
+case "$1" in
+ start)
+ do_start || exit $?
+ ;;
+ stop)
+ do_stop || exit $?
+ ;;
+ *)
+ echo "Usage: $0 {stop}" >&2
+ exit 3
+ ;;
+esac
diff --git a/meta-oe/recipes-core/emlog/emlog_git.bb b/meta-oe/recipes-core/emlog/emlog_git.bb
new file mode 100644
index 0000000000..03c895f667
--- /dev/null
+++ b/meta-oe/recipes-core/emlog/emlog_git.bb
@@ -0,0 +1,35 @@
+require ${BPN}.inc
+
+SRC_URI += "file://${BPN}.initd \
+ file://0001-Remove-modules_clean-from-clean-target.patch \
+ "
+
+SRC_URI:append:libc-musl = " file://Drop-use-of-error-h.patch"
+
+inherit update-rc.d
+
+INITSCRIPT_NAME = "${BPN}"
+
+
+
+do_compile() {
+ oe_runmake nbcat
+ oe_runmake mkemlog
+}
+
+do_install() {
+ install -Dm 0755 ${WORKDIR}/${BPN}.initd ${D}${sysconfdir}/init.d/${BPN}
+ install -Dm 0755 ${S}/nbcat ${D}${bindir}/nbcat
+ install -Dm 0755 ${S}/mkemlog ${D}${bindir}/mkemlog
+}
+
+RRECOMMENDS:${PN} += "kernel-module-emlog"
+
+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 \
+"
diff --git a/meta-oe/recipes-core/emlog/kernel-module-emlog_git.bb b/meta-oe/recipes-core/emlog/kernel-module-emlog_git.bb
new file mode 100644
index 0000000000..a554a4c947
--- /dev/null
+++ b/meta-oe/recipes-core/emlog/kernel-module-emlog_git.bb
@@ -0,0 +1,10 @@
+require emlog.inc
+
+inherit module
+
+EXTRA_OEMAKE += " \
+ KDIR=${STAGING_KERNEL_DIR} \
+ KVER=${KERNEL_VERSION} \
+"
+
+MAKE_TARGETS = "modules"
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..ad7a3a7ed4
--- /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${SRCPV}"
+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/glib-2.0/glibmm-2.68_2.74.0.bb b/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.74.0.bb
new file mode 100644
index 0000000000..83ceb64581
--- /dev/null
+++ b/meta-oe/recipes-core/glib-2.0/glibmm-2.68_2.74.0.bb
@@ -0,0 +1,33 @@
+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] = "2b472696cbac79db8e405724118ec945219c5b9b18af63dc8cfb7f1d89b0f1fa"
+
+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/0001-Glib-Threads-Private-Fix-gobj.patch b/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch
deleted file mode 100644
index 7899022f11..0000000000
--- a/meta-oe/recipes-core/glib-2.0/glibmm/0001-Glib-Threads-Private-Fix-gobj.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 838fe84c2ddcc9af51c34f751defbf3dd0ba8a06 Mon Sep 17 00:00:00 2001
-From: Kjell Ahlstedt <kjellahlstedt@gmail.com>
-Date: Wed, 20 Dec 2017 20:00:32 +0100
-Subject: [PATCH] Glib::Threads::Private: Fix gobj()
-
-Bug 791711
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Backport [https://github.com/GNOME/glibmm/commit/37d57ae9572b7d74aa385a30313eceae7f2d3fce]
- glib/glibmm/threads.h | 2 +-
- glib/src/threads.hg | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/glib/glibmm/threads.h b/glib/glibmm/threads.h
-index f7e2b82a..2c0cbe8c 100644
---- a/glib/glibmm/threads.h
-+++ b/glib/glibmm/threads.h
-@@ -657,7 +657,7 @@ public:
- */
- inline void replace(T* data);
-
-- GPrivate* gobj() { return gobject_; }
-+ GPrivate* gobj() { return &gobject_; }
-
- private:
- GPrivate gobject_;
-diff --git a/glib/src/threads.hg b/glib/src/threads.hg
-index 86d7a17b..c82a6130 100644
---- a/glib/src/threads.hg
-+++ b/glib/src/threads.hg
-@@ -628,7 +628,7 @@ public:
- */
- inline void replace(T* data);
-
-- GPrivate* gobj() { return gobject_; }
-+ GPrivate* gobj() { return &gobject_; }
-
- private:
- GPrivate gobject_;
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 d32fe78d32..0000000000
--- a/meta-oe/recipes-core/glib-2.0/glibmm/remove-examples.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f48a69fd11b2eda6c43ff046c202cbc4dcd4e92d Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Tue, 12 Jul 2011 11:46:37 +0200
-
----
- Makefile.am | 7 +------
- configure.ac | 1 -
- 2 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index a0df8af..c3d5e06 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 c20e778..74203be 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_Net2013/glibmm/glibmm.rc
diff --git a/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb b/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb
deleted file mode 100644
index 4706432ab7..0000000000
--- a/meta-oe/recipes-core/glib-2.0/glibmm_2.54.1.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "C++ bindings for the glib library"
-HOMEPAGE = "http://www.gtkmm.org/"
-SECTION = "libs"
-LICENSE = "LGPLv2.1 & GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=42dfffebc56fec7527aac53b7a89d1d8 \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "mm-common glib-2.0 libsigc++-2.0 glib-2.0-native"
-inherit autotools pkgconfig
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-SRC_URI = " \
- ftp://ftp.gnome.org/pub/GNOME/sources/glibmm/${SHRT_VER}/glibmm-${PV}.tar.xz \
- file://remove-examples.patch \
- file://0001-Glib-Threads-Private-Fix-gobj.patch \
-"
-SRC_URI[md5sum] = "dee5ebe309f5976c3dacfcf5c43a062b"
-SRC_URI[sha256sum] = "7cc28c732b04d70ed34f0c923543129083cfb90580ea4a2b4be5b38802bf6a4a"
-
-do_install_append() {
- install -d ${D}${datadir}/glibmm-2.4
- install -d ${D}${datadir}/aclocal
-
- install -m 0644 glib/glibmmconfig.h ${D}${datadir}/glibmm-2.4/
- install -m 0644 scripts/glibmm_check_perl.m4 ${D}${datadir}/aclocal/ || true
-
- 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"
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
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
new file mode 100644
index 0000000000..a6dc8ff20c
--- /dev/null
+++ b/meta-oe/recipes-core/glib-2.0/glibmm_2.66.2.bb
@@ -0,0 +1,31 @@
+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++-2.0 glib-2.0-native"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase
+
+SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
+
+SRC_URI[archive.sha256sum] = "b2a4cd7b9ae987794cbb5a1becc10cecb65182b9bb841868625d6bbb123edb1d"
+
+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-base.bb b/meta-oe/recipes-core/images/meta-oe-image-base.bb
new file mode 100644
index 0000000000..df92f16705
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-image-base.bb
@@ -0,0 +1,7 @@
+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.bb b/meta-oe/recipes-core/images/meta-oe-image.bb
new file mode 100644
index 0000000000..1565549059
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-image.bb
@@ -0,0 +1,5 @@
+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-all-image.bb b/meta-oe/recipes-core/images/meta-oe-ptest-all-image.bb
new file mode 100644
index 0000000000..0ea03dd2e3
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-ptest-all-image.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}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-oe-ptest-image-'+x+':do_testimage' for x in d.getVar('PTESTS_META_OE').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-oe-ptest-image-'+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-ptest-fast-image.bb b/meta-oe/recipes-core/images/meta-oe-ptest-fast-image.bb
new file mode 100644
index 0000000000..f56e841ff1
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-ptest-fast-image.bb
@@ -0,0 +1,6 @@
+require meta-oe-ptest-all-image.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-ptest-image.bb b/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
new file mode 100644
index 0000000000..951d91f821
--- /dev/null
+++ b/meta-oe/recipes-core/images/meta-oe-ptest-image.bb
@@ -0,0 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-oe.inc
+
+require meta-oe-image-base.bb
+
+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}"
+
+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"
+
+# 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/libnfc/libnfc_git.bb b/meta-oe/recipes-core/libnfc/libnfc_git.bb
new file mode 100644
index 0000000000..9733749628
--- /dev/null
+++ b/meta-oe/recipes-core/libnfc/libnfc_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Platform independent Near Field Communication (NFC) library"
+DESCRIPTION = "libnfc is a library which allows userspace application access \
+to NFC devices."
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
+SECTION = "libs"
+
+inherit autotools pkgconfig
+
+PV = "1.8.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+SRCREV = "f02ff51449240102c27a97173dc495e8e7789046"
+SRC_URI = "git://github.com/nfc-tools/libnfc.git;branch=master;protocol=https"
+
+CFLAGS:append:libc-musl = " -D_GNU_SOURCE"
+DEPENDS = "libusb"
diff --git a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb
deleted file mode 100644
index 53bd5de109..0000000000
--- a/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A library for loose coupling of C++ method calls"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-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[md5sum] = "70bcbde2c900e4925d6ef4bf50954195"
-SRC_URI[sha256sum] = "f843d6346260bfcb4426259e314512b99e296e8ca241d771d21ac64f28298d81"
-
-S = "${WORKDIR}/libsigc++-${PV}"
-
-inherit autotools
-
-EXTRA_AUTORECONF = "--exclude=autoheader"
-
-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.10.7.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.7.bb
new file mode 100644
index 0000000000..84494b8ac4
--- /dev/null
+++ b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-2.0_2.10.7.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.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++-3_3.2.0.bb b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.2.0.bb
new file mode 100644
index 0000000000..9318a30544
--- /dev/null
+++ b/meta-oe/recipes-core/libsigc++-2.0/libsigc++-3_3.2.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.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/libxml/libxml++-5.0_5.0.1.bb b/meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb
new file mode 100644
index 0000000000..c0f0b2e130
--- /dev/null
+++ b/meta-oe/recipes-core/libxml/libxml++-5.0_5.0.1.bb
@@ -0,0 +1,20 @@
+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}/libxml++/${SHRT_VER}/libxml++-${PV}.tar.xz \
+"
+SRC_URI[sha256sum] = "15c38307a964fa6199f4da6683a599eb7e63cc89198545b36349b87cf9aa0098"
+
+S = "${WORKDIR}/libxml++-${PV}"
+DEPENDS = "libxml2 glibmm"
+
+inherit meson pkgconfig ptest
+
+FILES:${PN}-doc += "${datadir}/devhelp"
+FILES:${PN}-dev += "${libdir}/libxml++-${SHRT_VER}/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
index 0d1a5186a6..2172c147c3 100644
--- a/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
+++ b/meta-oe/recipes-core/libxml/libxml++/libxml++_ptest.patch
@@ -1,20 +1,18 @@
-Index: libxml++-2.40.1/Makefile.am
-===================================================================
---- libxml++-2.40.1.orig/Makefile.am
-+++ libxml++-2.40.1/Makefile.am
-@@ -24,5 +24,8 @@ dist_noinst_SCRIPTS = autogen.sh
-
- DISTCLEANFILES = MSVC_Net2010/libxml++/libxml++config.h
+Upstream-Status: Pending
+
+--- 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
-Index: libxml++-2.40.1/examples/Makefile.am
-===================================================================
---- libxml++-2.40.1.orig/examples/Makefile.am
-+++ libxml++-2.40.1/examples/Makefile.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)
@@ -51,10 +49,10 @@ Index: libxml++-2.40.1/examples/Makefile.am
@@ -154,10 +173,10 @@ dist_noinst_DATA = \
# file are located in different directories.
dom_read_write/make_check.sh: Makefile
- echo '# Generated and used by "make check"' >$@
-- echo 'dom_read_write/dom_read_write "$(srcdir)/dom_read_write/example.xml" dom_read_write/example_output.xml >/dev/null' >>$@
-+ echo 'cd dom_read_write && .libs/dom_read_write "example.xml" example_output.xml >/dev/null' >>$@
- chmod +x $@
+ $(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
diff --git a/meta-oe/recipes-core/libxml/libxml++_2.40.1.bb b/meta-oe/recipes-core/libxml/libxml++_2.40.1.bb
deleted file mode 100644
index c001c184cb..0000000000
--- a/meta-oe/recipes-core/libxml/libxml++_2.40.1.bb
+++ /dev/null
@@ -1,28 +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+"
-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[md5sum] = "377a87bea899f2b4ff62df2418c3d8a6"
-SRC_URI[sha256sum] = "4ad4abdd3258874f61c2e2a41d08e9930677976d303653cd1670d3e9f35463e9"
-
-DEPENDS = "libxml2 glibmm"
-
-inherit autotools pkgconfig ptest
-
-do_compile_ptest() {
- oe_runmake -C examples buildtest
-}
-
-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/libxml/libxml++_2.42.1.bb b/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb
new file mode 100644
index 0000000000..7347e30f34
--- /dev/null
+++ b/meta-oe/recipes-core/libxml/libxml++_2.42.1.bb
@@ -0,0 +1,35 @@
+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/0001-Fix-arguments-in-GLib.DBusSignalCallback-for-Vala-0..patch b/meta-oe/recipes-core/mdbus2/mdbus2/0001-Fix-arguments-in-GLib.DBusSignalCallback-for-Vala-0..patch
new file mode 100644
index 0000000000..65df09b1bc
--- /dev/null
+++ b/meta-oe/recipes-core/mdbus2/mdbus2/0001-Fix-arguments-in-GLib.DBusSignalCallback-for-Vala-0..patch
@@ -0,0 +1,27 @@
+From 01a3a35631ba3996f7e912def66b4053a4f21df9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 3 Nov 2020 10:52:17 -0800
+Subject: [PATCH] Fix arguments in GLib.DBusSignalCallback for Vala 0.50
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/main.vala | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/main.vala b/src/main.vala
+index 6d7132b0..b3183217 100644
+--- a/src/main.vala
++++ b/src/main.vala
+@@ -403,7 +403,7 @@ class Commands : Object
+ return false;
+ }
+
+- public void signalHandler( GLib.DBusConnection conn, string sender, string path, string iface, string name, Variant params )
++ public void signalHandler( GLib.DBusConnection conn, string? sender, string path, string iface, string name, Variant params )
+ {
+ var line = "[SIGNAL] %s.%s %s %s\n%s".printf(
+ iface,
+--
+2.29.2
+
diff --git a/meta-oe/recipes-core/mdbus2/mdbus2_git.bb b/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
new file mode 100644
index 0000000000..c6db78b4ab
--- /dev/null
+++ b/meta-oe/recipes-core/mdbus2/mdbus2_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Mickey's DBus Introspection and Interaction Utility V2"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
+
+DEPENDS = "readline"
+
+PV = "2.3.3+git${SRCPV}"
+
+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"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig vala
+
+EXTRA_OECONF += "--enable-vala"
diff --git a/meta-oe/recipes-core/meta/distro-feed-configs.bb b/meta-oe/recipes-core/meta/distro-feed-configs.bb
index 2a8de54d24..a87de45832 100644
--- a/meta-oe/recipes-core/meta/distro-feed-configs.bb
+++ b/meta-oe/recipes-core/meta/distro-feed-configs.bb
@@ -28,6 +28,6 @@ PACKAGE_ARCH = "${MACHINE_ARCH}"
# confs = [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in archs ]
# return " ".join( confs )
#
-#CONFFILES_${PN} += '${@distro_feed_configs(d)}'
+#CONFFILES:${PN} += '${@distro_feed_configs(d)}'
-CONFFILES_${PN} += '${@ " ".join( [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in "all ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".split() ] ) }'
+CONFFILES:${PN} += '${@ " ".join( [ ( "${sysconfdir}/opkg/%s-feed.conf" % feed ) for feed in "all ${PACKAGE_EXTRA_ARCHS} ${MACHINE_ARCH}".split() ] ) }'
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
new file mode 100644
index 0000000000..4866a5fbe0
--- /dev/null
+++ b/meta-oe/recipes-core/mm-common/mm-common/0001-meson.build-do-not-ask-for-python-installation-versi.patch
@@ -0,0 +1,45 @@
+From af4069263487399be82ee53d48b1edda7f8e594e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 4 Nov 2019 19:19:47 +0100
+Subject: [PATCH] meson.build: do not ask for python installation / version
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Even by adding python3-setuptools-native the following error is not fixed so
+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]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
+rebase for 1.0.4
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+
+---
+ meson.build | 7 +------
+ 1 file changed, 1 insertion(+), 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 8a18c36..34fd546 100644
+--- a/meson.build
++++ b/meson.build
+@@ -7,12 +7,7 @@ project('mm-common',
+ # and meson.add_install_script(python3, ...)
+ )
+
+-python3 = import('python').find_installation()
+-python_version = python3.language_version()
+-python_version_req = '>= 3.5'
+-if not python_version.version_compare(python_version_req)
+- error('Requires Python @0@, found @1@.'.format(python_version_req, python_version))
+-endif
++python3 = import('python3').find_python()
+
+ # Use these instead of meson.source_root() and meson.build_root().
+ # source_root() and build_root() are not useful, if this is a subproject.
+--
+2.25.1
+
diff --git a/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb b/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb
deleted file mode 100644
index 591caa75d9..0000000000
--- a/meta-oe/recipes-core/mm-common/mm-common_0.9.11.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-inherit gnomebase
-
-SRC_URI[archive.md5sum] = "d6f2a43589480d2315672da0b5839b56"
-SRC_URI[archive.sha256sum] = "20d1e7466ca4c83c92e29f9e8dfcc8e5721fdf1337f53157bed97be3b73b32a8"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-BBCLASSEXTEND = "native"
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
new file mode 100644
index 0000000000..1ffdcfd045
--- /dev/null
+++ b/meta-oe/recipes-core/mm-common/mm-common_1.0.4.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Common GNOME build files for C++ bindings"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase
+
+# All the recipe does is stage python and shell script, some autotools files; nothing is compiled.
+inherit allarch
+
+SRC_URI[archive.sha256sum] = "e954c09b4309a7ef93e13b69260acdc5738c907477eb381b78bb1e414ee6dbd8"
+SRC_URI += "file://0001-meson.build-do-not-ask-for-python-installation-versi.patch"
+
+BBCLASSEXTEND = "native"
+
+# These files aren't very usefull on target image, package them all in nnPN-dev
+FILES:${PN} = ""
+
+FILES:${PN}-dev += " \
+ ${datadir}/${BPN}/build \
+ ${datadir}/${BPN}/doctags \
+ ${datadir}/${BPN}/doctool \
+ ${bindir}/mm-common-get \
+ ${bindir}/mm-common-prepare \
+"
+# ${PN} package is empty, remove the default dependency on it
+RDEPENDS:${PN}-dev = ""
diff --git a/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb b/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
new file mode 100644
index 0000000000..163a74ebe3
--- /dev/null
+++ b/meta-oe/recipes-core/musl-rpmatch/musl-rpmatch_git.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Implementation of rpmatch(3) for musl libc."
+LICENSE = "BSD-3-Clause"
+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}"
+SRCREV = "46267b154987d3e1f25d3a75423faa62bb5ee342"
+
+inherit autotools
+
+S = "${WORKDIR}/git"
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
new file mode 100644
index 0000000000..486d6c07be
--- /dev/null
+++ b/meta-oe/recipes-core/ndctl/ndctl/0001-build-set-HAVE_STATEMENT_EXPR-var.patch
@@ -0,0 +1,60 @@
+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-meson-Use-pkg-config-to-detect-iniparser.patch b/meta-oe/recipes-core/ndctl/ndctl/0001-meson-Use-pkg-config-to-detect-iniparser.patch
new file mode 100644
index 0000000000..ee172c3a69
--- /dev/null
+++ b/meta-oe/recipes-core/ndctl/ndctl/0001-meson-Use-pkg-config-to-detect-iniparser.patch
@@ -0,0 +1,41 @@
+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
new file mode 100644
index 0000000000..fe2612ce94
--- /dev/null
+++ b/meta-oe/recipes-core/ndctl/ndctl/0001-util-Correct-path-to-iniparser.h.patch
@@ -0,0 +1,28 @@
+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
new file mode 100644
index 0000000000..da649d578b
--- /dev/null
+++ b/meta-oe/recipes-core/ndctl/ndctl_v73.bb
@@ -0,0 +1,36 @@
+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/opencl/ocl-icd_2.3.1.bb b/meta-oe/recipes-core/opencl/ocl-icd_2.3.1.bb
new file mode 100644
index 0000000000..b1980e3682
--- /dev/null
+++ b/meta-oe/recipes-core/opencl/ocl-icd_2.3.1.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 = "1165deedb2ae741cd76e60986f7c2cb5023059d9"
+
+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
new file mode 100644
index 0000000000..8a712602cc
--- /dev/null
+++ b/meta-oe/recipes-core/opencl/opencl-clhpp_git.bb
@@ -0,0 +1,23 @@
+SUMMARY = "OpenCL API C++ bindings"
+DESCRIPTION = "OpenCL API C++ bindings from Khronos"
+
+SRC_URI = "git://github.com/KhronosGroup/OpenCL-CLHPP.git;protocol=https;branch=main"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+PV = "2.0.16+git${SRCPV}"
+SRCREV = "1df82b9749739f2681081092ae163bb0f0d40f66"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = " \
+ -DBUILD_DOCS=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ -DBUILD_TESTS=OFF \
+ "
+
+# Headers only so PN is empty
+RDEPENDS:${PN}-dev = ""
diff --git a/meta-oe/recipes-core/opencl/opencl-headers_04.17.bb b/meta-oe/recipes-core/opencl/opencl-headers_04.17.bb
new file mode 100644
index 0000000000..6ffaf68ea2
--- /dev/null
+++ b/meta-oe/recipes-core/opencl/opencl-headers_04.17.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 = "4fdcfb0ae675f2f63a9add9552e0af62c2b4ed30"
+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-icd-loader_git.bb b/meta-oe/recipes-core/opencl/opencl-icd-loader_git.bb
new file mode 100644
index 0000000000..fc04cb55f2
--- /dev/null
+++ b/meta-oe/recipes-core/opencl/opencl-icd-loader_git.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"
+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 b12183b3a4..422b4d49df 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-basic.bb
@@ -2,14 +2,11 @@
# Please communicate your use cases and suggestions to the mailinglist(s)
SUMMARY = "Basic task to get a device online"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r13"
PACKAGE_ARCH = "${MACHINE_ARCH}"
inherit packagegroup
-inherit bluetooth
# Poke extra recomendations into the list using your machine.conf
#
@@ -29,7 +26,7 @@ TASK_BASIC_SSHDAEMON ?= "dropbear openssh-sftp openssh-sftp-server"
#
# Util-linux (u)mount is included because the busybox one can't handle /etc/mtab being symlinked to /proc/mounts
#
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
${TASK_BASIC_SSHDAEMON} \
avahi-daemon avahi-utils \
"
@@ -40,13 +37,13 @@ RDEPENDS_${PN} = "\
# 2) Distro features: packages associated with those
# 3) Nice to have: packages that are nice to have, but aren't strictly needed
#
-RRECOMMENDS_${PN} = "\
+RRECOMMENDS:${PN} = "\
${MACHINE_EXTRA_RRECOMMENDS} \
${@bb.utils.contains("MACHINE_FEATURES", "usbhost", "usbutils", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "alsa", "alsa-utils-alsamixer", "", d)} \
${@bb.utils.contains("MACHINE_FEATURES", "usbgadget", "kernel-module-g-ether kernel-module-g-serial kernel-module-g-mass-storage", "", d)} \
\
- ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "${BLUEZ}", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth", "bluez5", "", d)} \
${@bb.utils.contains("DISTRO_FEATURES", "wifi", "iw wpa-supplicant", "", d)} \
\
tzdata \
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb b/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
index 3ae7a49fe5..7e2873cf66 100644
--- a/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-boot.bb
@@ -1,6 +1,4 @@
SUMMARY = "Basic task to get a device booting"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r58"
@@ -19,7 +17,7 @@ DEPENDS = "virtual/kernel"
#
# minimal set of packages - needed to boot
#
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
base-files \
base-passwd \
busybox \
@@ -28,7 +26,7 @@ RDEPENDS_${PN} = "\
${MACHINE_ESSENTIAL_EXTRA_RDEPENDS} \
"
-RRECOMMENDS_${PN} = "\
+RRECOMMENDS:${PN} = "\
kernel \
${MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS} \
"
diff --git a/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
new file mode 100644
index 0000000000..0a88f37acf
--- /dev/null
+++ b/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -0,0 +1,1009 @@
+SUMMARY = "Meta-oe ptest packagegroups"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = "\
+ packagegroup-meta-oe \
+ packagegroup-meta-oe-benchmarks \
+ packagegroup-meta-oe-connectivity \
+ packagegroup-meta-oe-connectivity-python2 \
+ packagegroup-meta-oe-core \
+ packagegroup-meta-oe-crypto \
+ packagegroup-meta-oe-bsp \
+ packagegroup-meta-oe-dbs \
+ packagegroup-meta-oe-dbs-python2 \
+ packagegroup-meta-oe-devtools \
+ packagegroup-meta-oe-extended \
+ packagegroup-meta-oe-extended-python2 \
+ packagegroup-meta-oe-kernel \
+ packagegroup-meta-oe-multimedia \
+ packagegroup-meta-oe-navigation \
+ packagegroup-meta-oe-printing \
+ packagegroup-meta-oe-shells \
+ packagegroup-meta-oe-security \
+ packagegroup-meta-oe-support \
+ packagegroup-meta-oe-support-python2 \
+ packagegroup-meta-oe-test \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-gnome", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-graphics", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-meta-oe-ptest-packages", "", d)} \
+"
+#PACKAGES += "packagegroup-meta-oe-fortran-packages"
+
+RDEPENDS:packagegroup-meta-oe = "\
+ packagegroup-meta-oe-benchmarks \
+ packagegroup-meta-oe-bsp \
+ packagegroup-meta-oe-connectivity \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "packagegroup-meta-oe-connectivity-python2", "", d)} \
+ packagegroup-meta-oe-core \
+ packagegroup-meta-oe-crypto \
+ packagegroup-meta-oe-dbs \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "packagegroup-meta-oe-dbs-python2", "", d)} \
+ packagegroup-meta-oe-devtools \
+ packagegroup-meta-oe-extended \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "packagegroup-meta-oe-extended-python2", "", d)} \
+ packagegroup-meta-oe-kernel \
+ packagegroup-meta-oe-multimedia \
+ packagegroup-meta-oe-navigation \
+ packagegroup-meta-oe-printing \
+ packagegroup-meta-oe-security \
+ packagegroup-meta-oe-shells \
+ packagegroup-meta-oe-support \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "packagegroup-meta-oe-support-python2", "", d)} \
+ packagegroup-meta-oe-test \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-gnome", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "packagegroup-meta-oe-graphics", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-meta-oe-ptest-packages", "", d)} \
+"
+
+RDEPENDS:packagegroup-meta-oe-benchmarks = "\
+ bonnie++ \
+ dbench \
+ dhrystone \
+ fio \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 wayland opengl", "glmark2", "", d)} \
+ iozone3 \
+ iperf2 \
+ iperf3 \
+ libc-bench \
+ linpack \
+ lmbench \
+ mbw \
+ memtester \
+ nbench-byte \
+ phoronix-test-suite \
+ qperf \
+ s-suite \
+ stressapptest \
+ tinymembench \
+ tiobench \
+ whetstone \
+"
+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"
+RDEPENDS:packagegroup-meta-oe-benchmarks:remove:mips64el = "tinymembench"
+RDEPENDS:packagegroup-meta-oe-benchmarks:remove:riscv64 = "libhugetlbfs"
+RDEPENDS:packagegroup-meta-oe-benchmarks:remove:riscv32 = "libhugetlbfs"
+
+RDEPENDS:packagegroup-meta-oe-bsp ="\
+ acpitool \
+ cpufrequtils \
+ edac-utils \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "firmwared", "", d)} \
+ flashrom \
+ fwupd \
+ fwupd-efi \
+ irda-utils \
+ lmsensors-config-cgi \
+ lmsensors-config-fancontrol \
+ lmsensors-config-sensord \
+ lmsensors \
+ lsscsi \
+ nvme-cli \
+ pcmciautils \
+ pointercal \
+"
+RDEPENDS:packagegroup-meta-oe-bsp:append:x86 = " ledmon"
+RDEPENDS:packagegroup-meta-oe-bsp:append:x86-64 = " ledmon"
+
+RDEPENDS:packagegroup-meta-oe-bsp:remove:libc-musl = "ledmon"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:mipsarch = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc64 = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:powerpc64le = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:riscv64 = "efivar efibootmgr fwupd fwupd-efi"
+RDEPENDS:packagegroup-meta-oe-bsp:remove:riscv32 = "efivar efibootmgr fwupd fwupd-efi"
+
+RDEPENDS:packagegroup-meta-oe-connectivity ="\
+ cyrus-sasl \
+ gammu \
+ gattlib \
+ gensio \
+ hostapd \
+ ifplugd \
+ irssi \
+ iwd \
+ krb5 \
+ libev \
+ libimobiledevice \
+ libmbim \
+ libmtp \
+ libndp \
+ libnet \
+ libqmi \
+ libtorrent \
+ libuv \
+ libwebsockets \
+ linuxptp \
+ loudmouth \
+ modemmanager \
+ mosh \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "obex-data-server", "", d)} \
+ openobex \
+ obexftp \
+ packagegroup-tools-bluetooth \
+ paho-mqtt-c \
+ paho-mqtt-cpp \
+ rabbitmq-c \
+ rfkill \
+ rtorrent \
+ ser2net \
+ smstools3 \
+ telepathy-glib \
+ thrift \
+ usbmuxd \
+ wifi-test-suite \
+ zabbix \
+ czmq \
+ zeromq \
+"
+
+RDEPENDS:packagegroup-meta-oe-connectivity:append:libc-glibc = " wvstreams wvdial"
+
+RDEPENDS:packagegroup-meta-oe-connectivity-python2 = "\
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "telepathy-idle", "", d)} \
+"
+
+# dracut needs dracut
+RDEPENDS:packagegroup-meta-oe-core = "\
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "dbus-broker", "", d)} \
+ dbus-daemon-proxy \
+ libdbus-c++ \
+ emlog \
+ kernel-module-emlog \
+ glibmm \
+ libnfc \
+ libsigc++-2.0 \
+ libsigc++-3 \
+ libxml++ \
+ mdbus2 \
+ distro-feed-configs \
+ mm-common \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "ndctl", "", d)} \
+ pim435 \
+ proxy-libintl \
+ safec \
+ sdbus-c++-tools \
+ sdbus-c++ \
+ toybox \
+ usleep \
+ dbus-cxx \
+"
+RDEPENDS:packagegroup-meta-oe-core:append:libc-glibc = " ${@bb.utils.contains("DISTRO_FEATURES", "x11 opengl", "glfw", "", d)}"
+RDEPENDS:packagegroup-meta-oe-core:remove:riscv64 = "safec"
+RDEPENDS:packagegroup-meta-oe-core:remove:riscv32 = "safec"
+
+RDEPENDS:packagegroup-meta-oe-crypto ="\
+ botan \
+ cryptsetup \
+ fsverity-utils \
+ libkcapi \
+ libmcrypt \
+ libsodium \
+ pkcs11-helper \
+"
+RDEPENDS:packagegroup-meta-oe-crypto:remove:riscv32 = "botan"
+
+RDEPENDS:packagegroup-meta-oe-dbs ="\
+ influxdb \
+ leveldb \
+ libdbi \
+ lmdb \
+ mariadb \
+ postgresql \
+ psqlodbc \
+ rocksdb \
+ soci \
+"
+RDEPENDS:packagegroup-meta-oe-dbs:remove:libc-musl:powerpc = "rocksdb"
+
+RDEPENDS:packagegroup-meta-oe-dbs-python2 ="\
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', 'mysql-python', '', d), "", d)} \
+"
+
+RDEPENDS:packagegroup-meta-oe-devtools ="\
+ abseil-cpp \
+ apitrace \
+ breakpad \
+ android-tools-conf \
+ android-tools \
+ concurrencykit \
+ cgdb \
+ ctags \
+ debootstrap \
+ cjson \
+ cloc \
+ icon-slicer \
+ cscope \
+ dmalloc \
+ ${@bb.utils.contains("PACKAGE_CLASSES", "package_rpm", "dnf-plugin-tui", "", d)} \
+ doxygen \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geany-plugins geany", "", d)} \
+ jemalloc \
+ lemon \
+ flatbuffers \
+ heaptrack \
+ libparse-yapp-perl \
+ libubox \
+ ltrace \
+ luajit \
+ mcpp \
+ memstat \
+ giflib \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "glade", "", d)} \
+ grpc \
+ guider \
+ php \
+ iptraf-ng \
+ jq \
+ json-spirit \
+ serialcheck \
+ tclap \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "tk", "", d)} \
+ uw-imap \
+ jsoncpp \
+ jsonrpc \
+ yajl \
+ yajl \
+ kconfig-frontends \
+ libgee \
+ libsombok3 \
+ lshw \
+ luaposix \
+ capnproto-compiler \
+ mpich \
+ msgpack-c \
+ msgpack-cpp \
+ mercurial \
+ nodejs \
+ openocd \
+ pax-utils \
+ ipc-run \
+ libdbd-mysql-perl \
+ libdbi-perl \
+ libdev-checklib-perl \
+ libio-pty-perl \
+ libjson-perl \
+ libperlio-gzip-perl \
+ ply \
+ protobuf-c \
+ protobuf \
+ pugixml \
+ python3-distutils-extra \
+ python3-pycups \
+ rapidjson \
+ squashfs-tools-ng \
+ uftrace \
+ valijson \
+ libxerces-c \
+ xerces-c-samples \
+ xmlrpc-c \
+ yasm \
+ json-schema-validator \
+ poke \
+"
+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"
+RDEPENDS:packagegroup-meta-oe-devtools:append:riscv64 = " pcimem"
+RDEPENDS:packagegroup-meta-oe-devtools:append:arm = " pcimem"
+RDEPENDS:packagegroup-meta-oe-devtools:append:aarch64 = " pahole pcimem"
+RDEPENDS:packagegroup-meta-oe-devtools:append:libc-musl = " musl-nscd"
+
+RDEPENDS:packagegroup-meta-oe-devtools:remove:arm = "concurrencykit"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:armv5 = "uftrace nodejs"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:mipsarch = "concurrencykit lshw ply uftrace"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:mips64 = "luajit nodejs"
+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: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"
+RDEPENDS:packagegroup-meta-oe-devtools:remove:x86 = "ply"
+
+RDEPENDS:packagegroup-meta-oe-extended ="\
+ bitwise \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 wayland opengl", "boinc-client", "", d)} \
+ brotli \
+ byacc \
+ cmatrix \
+ cmpi-bindings \
+ collectd \
+ ddrescue \
+ dialog \
+ duktape \
+ enscript \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gnuplot", "", d)} \
+ dlt-daemon \
+ docopt.cpp \
+ iotop \
+ dumb-init \
+ konkretcmpi \
+ figlet \
+ libcec \
+ libdivecomputer \
+ fluentbit \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "libgxim", "", d)} \
+ liblognorm \
+ libmodbus \
+ haveged \
+ hexedit \
+ hiredis \
+ hplip \
+ hwloc \
+ libleak \
+ libuio \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "libwmf", "", d)} \
+ libyang \
+ lprng \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "icewm", "", d)} \
+ md5deep \
+ indent \
+ jansson \
+ nana \
+ nicstat \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "openwsman", "", d)} \
+ p7zip \
+ isomd5sum \
+ jpnevulator \
+ ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "polkit-group-rule-datetime polkit-group-rule-network polkit", "", d)} \
+ rarpd \
+ redis \
+ libfastjson \
+ librelp \
+ sblim-cmpi-devel \
+ sblim-sfc-common \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "sblim-sfcb ", "", d)} \
+ sblim-sfcc \
+ libblockdev \
+ sgpio \
+ smartmontools \
+ can-utils \
+ canutils \
+ libsocketcan \
+ libconfig \
+ linuxconsole \
+ uml-utilities \
+ libidn \
+ libqb \
+ wipe \
+ libzip \
+ zram \
+ libplist \
+ libusbmuxd \
+ liblockfile \
+ liblogging \
+ libpwquality \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "libreport", "", d)} \
+ libserialport \
+ libstatgrab \
+ lockfile-progs \
+ logwatch \
+ mraa \
+ ostree \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pam-plugin-ccreds pam-plugin-ldapdb pam-ssh-agent-auth", "", d)} \
+ pegtl \
+ libfile-fnmatch-perl \
+ rrdtool \
+ sanlock \
+ scsirastools \
+ sedutil \
+ libsigrok \
+ libsigrokdecode \
+ s-nail \
+ sigrok-cli \
+ snappy \
+ tipcutils \
+ tiptop \
+ tmate \
+ tmux \
+ triggerhappy \
+ upm \
+ vlock \
+ volume-key \
+ wxwidgets \
+ zlog \
+ zstd \
+ zsync-curl \
+ redis-plus-plus \
+"
+RDEPENDS:packagegroup-meta-oe-extended:append:libc-musl = " libexecinfo"
+RDEPENDS:packagegroup-meta-oe-extended:append:x86-64 = " pmdk libx86-1"
+RDEPENDS:packagegroup-meta-oe-extended:append:x86 = " libx86-1"
+
+RDEPENDS:packagegroup-meta-oe-extended:remove:libc-musl = "sysdig"
+RDEPENDS:packagegroup-meta-oe-extended:remove:mipsarch = "upm mraa minifi-cpp tiptop"
+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 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)} \
+"
+
+RDEPENDS:packagegroup-meta-oe-gnome ="\
+ atkmm \
+ gcab \
+ gnome-common \
+ gmime \
+ libjcat \
+ gtk+ \
+ gtkmm3 \
+ gtkmm \
+ ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "libpeas", "", d)} \
+ pyxdg \
+ vte9 \
+ gnome-theme-adwaita \
+ libxmlb \
+"
+
+RDEPENDS:packagegroup-meta-oe-graphics ="\
+ cairomm \
+ directfb-examples \
+ directfb \
+ fbgrab \
+ dietsplash \
+ ${@bb.utils.contains("PACKAGE_CLASSES", "package_rpm", "dnfdragora", "", d)} \
+ fontforge \
+ fbida \
+ feh \
+ ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "freeglut", "", d)} \
+ ftgl \
+ fvwm \
+ gtkperf \
+ gphoto2 \
+ imlib2 \
+ libgphoto2 \
+ graphviz \
+ gtkwave \
+ jasper \
+ libforms \
+ lxdm \
+ numlockx \
+ nyancat \
+ obconf \
+ openbox \
+ packagegroup-fonts-truetype \
+ qrencode \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "st", "", d)} \
+ leptonica \
+ libvncserver \
+ libmng \
+ libsdl-gfx \
+ libsdl-image \
+ libsdl-mixer \
+ libsdl-net \
+ libsdl-ttf \
+ libsdl2-image \
+ libsdl2-mixer \
+ libsdl2-net \
+ ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "libsdl2-ttf", "", d)} \
+ libsdl \
+ ${@bb.utils.contains("DISTRO_FEATURES", "wayland", "lv-drivers lvgl lv-lib-png", "", d)} \
+ ttf-arphic-uming \
+ ttf-droid-sans ttf-droid-sans-mono ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif \
+ ttf-abyssinica \
+ source-han-sans-cn-fonts \
+ source-han-sans-jp-fonts \
+ source-han-sans-kr-fonts \
+ source-han-sans-tw-fonts \
+ source-code-pro-fonts \
+ ttf-dejavu-sans \
+ ttf-dejavu-sans-condensed \
+ ttf-dejavu-sans-mono \
+ ttf-dejavu-serif \
+ ttf-dejavu-serif-condensed \
+ ttf-dejavu-mathtexgyre \
+ ttf-dejavu-common \
+ ttf-gentium \
+ ttf-hunky-sans \
+ ttf-hunky-serif \
+ ttf-ipag ttf-ipagp ttf-ipamp ttf-ipam \
+ ttf-lohit \
+ ttf-inconsolata \
+ ttf-liberation-sans-narrow \
+ ttf-liberation-mono \
+ ttf-liberation-sans \
+ ttf-liberation-serif \
+ ttf-lklug \
+ ttf-noto-emoji-color \
+ ttf-noto-emoji-regular \
+ ttf-sazanami-gothic \
+ ttf-sazanami-mincho \
+ ttf-takao-pgothic ttf-takao-gothic ttf-takao-pmincho ttf-takao-mincho \
+ ttf-tlwg \
+ ttf-roboto \
+ ttf-wqy-zenhei \
+ ttf-pt-sans \
+ ttf-vlgothic \
+ ttf-ubuntu-mono \
+ ttf-ubuntu-sans \
+ libyui-ncurses \
+ libyui \
+ x11vnc \
+ terminus-font-consolefonts \
+ terminus-font-pcf \
+ xdotool \
+ xkbevd \
+ bdftopcf \
+ iceauth \
+ sessreg \
+ xgamma \
+ setxkbmap \
+ xkbutils \
+ twm \
+ xclock \
+ xfontsel \
+ xkbprint \
+ xlsatoms \
+ xlsclients \
+ xlsfonts \
+ xmag \
+ xmessage \
+ xrdb \
+ xrefresh \
+ xsetroot \
+ xstdcmap \
+ xterm \
+ xwd \
+ xwud \
+ xorg-sgml-doctools \
+ xf86-input-tslib \
+ xf86-input-void \
+ xf86-video-armsoc \
+ xf86-video-ati \
+ font-adobe-100dpi \
+ font-adobe-utopia-100dpi \
+ font-bh-100dpi \
+ font-bh-lucidatypewriter-100dpi \
+ font-bitstream-100dpi \
+ font-cursor-misc \
+ font-misc-misc \
+ xorg-fonts-100dpi \
+ libxaw6 \
+ libxpresent \
+ xcb-util-cursor \
+ xserver-common \
+ openjpeg \
+ pangomm \
+ spirv-shader-generator \
+ spirv-tools \
+ stalonetray \
+ surf \
+ tesseract-lang \
+ tesseract \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 pam", "tigervnc", "", d)} \
+ tslib \
+ unclutter-xfixes \
+ libvdpau \
+ xcursorgen \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 pam", "xscreensaver", "", d)} \
+ yad \
+ parallel-deqp-runner \
+ ${@bb.utils.contains("DISTRO_FEATURES", "opengl", "opengl-es-cts", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "opengl vulkan", "vulkan-cts", "", d)} \
+"
+RDEPENDS:packagegroup-meta-oe-graphics:append:x86 = " renderdoc xf86-video-nouveau xf86-video-mga"
+RDEPENDS:packagegroup-meta-oe-graphics:append:x86-64 = " renderdoc xf86-video-nouveau xf86-video-mga"
+RDEPENDS:packagegroup-meta-oe-graphics:append:arm = " renderdoc"
+RDEPENDS:packagegroup-meta-oe-graphics:append:aarch64 = " renderdoc"
+
+RDEPENDS:packagegroup-meta-oe-graphics:remove:libc-musl = "renderdoc"
+
+RDEPENDS:packagegroup-meta-oe-kernel ="\
+ agent-proxy \
+ crash \
+ cpupower \
+ ipmitool \
+ broadcom-bt-firmware \
+ kernel-selftest \
+ minicoredumper \
+ oprofile \
+ spidev-test \
+ trace-cmd \
+ 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 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: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:riscv32 = "crash makedumpfile oprofile"
+
+RDEPENDS:packagegroup-meta-oe-multimedia ="\
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faad2", "", d)} \
+ dirsplit \
+ genisoimage \
+ icedax \
+ wodim \
+ id3lib \
+ audiofile \
+ a2jmidid \
+ jack-server \
+ jack-utils \
+ libass \
+ libcdio-paranoia \
+ libcdio \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "libmad", "", d)} \
+ libmms \
+ libdvdread \
+ libopus \
+ live555-examples \
+ live555-mediaserver \
+ libmikmod \
+ libmodplug \
+ sound-theme-freedesktop \
+ yavta \
+ v4l-utils \
+ wavpack \
+ libvpx \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "xsp", "", d)} \
+ ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "mpv", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "pavucontrol", "", d)} \
+ libopusenc \
+"
+
+RDEPENDS:packagegroup-meta-oe-navigation ="\
+ geos \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluz4", "gpsd-machine-conf gpsd", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "orrery", "", d)} \
+ geoclue \
+ libspatialite \
+ proj \
+"
+
+RDEPENDS:packagegroup-meta-oe-printing ="\
+ cups-filters \
+ gutenprint \
+ qpdf \
+"
+
+RDEPENDS:packagegroup-meta-oe-security ="\
+ keyutils \
+ nmap \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "passwdqc", "", d)} \
+ softhsm \
+ tomoyo-tools \
+ auditd \
+"
+
+RDEPENDS:packagegroup-meta-oe-shells ="\
+ dash \
+ mksh \
+ tcsh \
+ zsh \
+"
+
+RDEPENDS:packagegroup-meta-oe-support ="\
+ anthy \
+ atop \
+ ace-cloud-editor \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "driverctl", "", d)} \
+ frame \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "geis", "", d)} \
+ grail \
+ asio \
+ augeas \
+ avro-c \
+ bdwgc \
+ c-ares \
+ cmark \
+ ${@bb.utils.contains("DISTRO_FEATURES", "polkit gobject-introspection-data", "colord", "", d)} \
+ consolation \
+ cpprest \
+ ctapi-common \
+ dfu-util \
+ dhex \
+ digitemp \
+ dool \
+ espeak \
+ evemu-tools \
+ exiv2 \
+ libnice \
+ c-periphery \
+ fmt \
+ function2 \
+ gd \
+ gflags \
+ glog \
+ gperftools \
+ gpm \
+ gsoap \
+ hdf5 \
+ hstr \
+ htop \
+ hunspell-dictionaries \
+ hunspell \
+ hwdata \
+ iksemel \
+ gengetopt \
+ googlebenchmark \
+ imagemagick \
+ iniparser \
+ inotify-tools \
+ joe \
+ lcms \
+ lcov \
+ imapfilter \
+ libbytesize \
+ libcyusbserial \
+ libestr \
+ libfann \
+ libftdi \
+ libjs-jquery-globalize \
+ libjs-jquery-cookie \
+ ccid \
+ zchunk \
+ libgpiod \
+ libmanette \
+ ckermit \
+ libcereal \
+ daemontools \
+ libiio \
+ devmem2 \
+ libgit2 \
+ libharu \
+ eject \
+ enca \
+ epeg \
+ libmxml \
+ fbset-modes \
+ fbset \
+ liboop \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "fltk", "", d)} \
+ freerdp \
+ libgusb \
+ emacs \
+ libp11 \
+ libraw1394 \
+ gradm \
+ gsl \
+ librsync \
+ hddtemp \
+ hidapi \
+ libsoc \
+ libmimetic \
+ libinih \
+ libtar \
+ libteam \
+ libusb-compat \
+ libatasmart \
+ libcanberra \
+ libssh \
+ libssh2 \
+ libee \
+ libusbgx-config \
+ libusbgx \
+ lockdev \
+ logwarn \
+ libjs-sizzle \
+ liblinebreak \
+ mailcap \
+ liboauth \
+ mg \
+ monit \
+ mscgen \
+ libsmi \
+ remmina \
+ neon \
+ nmon \
+ libjs-jquery-icheck \
+ libtinyxml \
+ libusbg \
+ libutempter \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "links-x11", "links", d)} \
+ log4c \
+ log4cpp \
+ nspr \
+ libdevmapper \
+ lvm2 \
+ nss \
+ mbuffer \
+ onig \
+ mime-support \
+ minini \
+ multipath-tools \
+ numactl \
+ clinfo \
+ opencv \
+ opensc \
+ openct \
+ openldap \
+ wbxml2 \
+ p910nd \
+ libtinyxml2 \
+ picocom \
+ funyahoo-plusplus \
+ icyque \
+ libotr \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "pidgin-otr", "", d)} \
+ pidgin \
+ purple-skypeweb \
+ pidgin-sipe \
+ pngcheck \
+ poco \
+ poppler-data \
+ poppler \
+ portaudio-v19 \
+ procmail \
+ pxaregs \
+ pv \
+ rsnapshot \
+ pps-tools \
+ raptor2 \
+ rdfind \
+ re2 \
+ sdparm \
+ serial-forward \
+ read-edid \
+ spitools \
+ libsass \
+ sassc \
+ smarty \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "synergy", "", d)} \
+ syslog-ng \
+ system-config-keyboard \
+ tbb \
+ satyr \
+ pcp \
+ pcsc-lite \
+ pcsc-tools \
+ sharutils \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "toscoterm", "", d)} \
+ sg3-utils \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "uim", "", d)} \
+ uchardet \
+ srecord \
+ ssiapi \
+ tree \
+ utouch-evemu \
+ utouch-frame \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "utouch-mtview", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "polkit", "udisks2", "", d)} \
+ stm32flash \
+ tokyocabinet \
+ xmlstarlet \
+ thin-provisioning-tools \
+ uhubctl \
+ zile \
+ unixodbc \
+ daemonize \
+ upower \
+ unicode-ucd \
+ xdelta3 \
+ uriparser \
+ nano \
+ xdg-user-dirs \
+ xmlsec1 \
+ usb-modeswitch-data \
+ usb-modeswitch \
+ liburing \
+ zbar \
+ 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: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"
+
+RDEPENDS:packagegroup-meta-oe-support-python2 ="\
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', 'lio-utils', '', d), "", d)} \
+"
+
+RDEPENDS:packagegroup-meta-oe-support:remove:arm ="numactl"
+RDEPENDS:packagegroup-meta-oe-support:remove:mipsarch = "gperftools"
+RDEPENDS:packagegroup-meta-oe-support:remove:riscv64 = "gperftools uim"
+RDEPENDS:packagegroup-meta-oe-support:remove:riscv32 = "gperftools uim"
+RDEPENDS:packagegroup-meta-oe-support:remove:powerpc = "libcereal ssiapi tbb"
+RDEPENDS:packagegroup-meta-oe-support:remove:powerpc64le = "libcereal ssiapi"
+RDEPENDS:packagegroup-meta-oe-support:remove:libc-musl = "pcp"
+RDEPENDS:packagegroup-meta-oe-support:remove:libc-musl:powerpc = "gsl"
+
+RDEPENDS:packagegroup-meta-oe-test ="\
+ bats \
+ cmocka \
+ cppunit \
+ cpputest \
+ cukinia \
+ cunit \
+ cxxtest \
+ evtest \
+ fb-test \
+ fwts \
+ googletest \
+ pm-qa \
+ testfloat \
+"
+RDEPENDS:packagegroup-meta-oe-test:remove:libc-musl = "pm-qa"
+RDEPENDS:packagegroup-meta-oe-test:remove:arm = "fwts"
+RDEPENDS:packagegroup-meta-oe-test:remove:mipsarch = "fwts"
+RDEPENDS:packagegroup-meta-oe-test:remove:powerpc = "fwts"
+RDEPENDS:packagegroup-meta-oe-test:remove:riscv64 = "fwts"
+RDEPENDS:packagegroup-meta-oe-test:remove:riscv32 = "fwts"
+
+RDEPENDS:packagegroup-meta-oe-ptest-packages = "\
+ zeromq-ptest \
+ leveldb-ptest \
+ psqlodbc-ptest \
+ protobuf-ptest \
+ rsyslog-ptest \
+ oprofile-ptest \
+ libteam-ptest \
+ uthash-ptest \
+ 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"
+
+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 = "\
+ lapack \
+ octave \
+ suitesparse \
+"
+# library-only or headers-only packages
+# They wont be built as part of images but might be interesting to include
+# with dev-pkgs images
+#
+# 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
+
+# rsyslog conflicts with syslog-ng so its not included here
+
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-oe/recipes-core/pim435/pim435_git.bb b/meta-oe/recipes-core/pim435/pim435_git.bb
new file mode 100644
index 0000000000..80e3cc6298
--- /dev/null
+++ b/meta-oe/recipes-core/pim435/pim435_git.bb
@@ -0,0 +1,22 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+HOMEPAGE = "https://booting.oniroproject.org/distro/components/pim435"
+SUMMARY = "A userspace driver application for PIM435 written in C"
+DESCRIPTION = "A userspace driver application for PIM435 (Pimoroni LED matrix) \
+written in C"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSES/MIT.txt;md5=7dda4e90ded66ab88b86f76169f28663"
+
+SRC_URI = "git://gitlab.eclipse.org/eclipse/oniro-blueprints/core/pim435;protocol=https;branch=main"
+SRCREV = "445ed623ec8d3ecbb1d566900b4ef3fb3031d689"
+S = "${WORKDIR}/git"
+
+DEPENDS = "i2c-tools"
+
+EXTRA_OEMAKE += "DESTDIR=${D}"
+
+do_install() {
+ oe_runmake install
+}
diff --git a/meta-oe/recipes-core/plymouth/files/0001-Fix-daemon-install-ignoring-configured-runstatedir.patch b/meta-oe/recipes-core/plymouth/files/0001-Fix-daemon-install-ignoring-configured-runstatedir.patch
new file mode 100644
index 0000000000..e04917e305
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/files/0001-Fix-daemon-install-ignoring-configured-runstatedir.patch
@@ -0,0 +1,30 @@
+From 4c90a66fb7fd9dbb861c5a888fc828f3795fe540 Mon Sep 17 00:00:00 2001
+From: Ben Brown <ben@demerara.io>
+Date: Tue, 19 Jul 2022 16:12:12 +0100
+Subject: [PATCH] Fix daemon install ignoring configured runstatedir
+
+Upstream-Status: Backport
+
+Signed-off-by: Ben Brown <ben@demerara.io>
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+
+---
+ src/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index ad3655d..abd7a4c 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -37,7 +37,7 @@ escrow_PROGRAMS = plymouthd-fd-escrow
+
+ plymouthd_fd_escrow_SOURCES = plymouthd-fd-escrow.c
+
+-plymouthdrundir = $(localstatedir)/run/plymouth
++plymouthdrundir = $(plymouthruntimedir)
+ plymouthdspooldir = $(localstatedir)/spool/plymouth
+ plymouthdtimedir = $(localstatedir)/lib/plymouth
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-core/plymouth/files/0001-Use-standard-runstatedir-vs-custom-flag.patch b/meta-oe/recipes-core/plymouth/files/0001-Use-standard-runstatedir-vs-custom-flag.patch
new file mode 100644
index 0000000000..e351098f35
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/files/0001-Use-standard-runstatedir-vs-custom-flag.patch
@@ -0,0 +1,50 @@
+From 97012d2c38b84fffb32867fb5eeac64a93455626 Mon Sep 17 00:00:00 2001
+From: Ben Brown <ben@demerara.io>
+Date: Tue, 19 Jul 2022 16:10:24 +0100
+Subject: [PATCH] Use standard runstatedir vs custom flag
+
+Upstream-Status: Backport
+
+---
+ configure.ac | 11 ++---------
+ 1 file changed, 2 insertions(+), 9 deletions(-)
+
+Signed-off-by: Ben Brown <ben@demerara.io>
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+
+diff --git a/configure.ac b/configure.ac
+index 608ad02..34a2f2c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -140,9 +140,7 @@ if test x$enable_systemd_integration = xyes; then
+ AC_SUBST(SYSTEMD_UNIT_DIR)
+ fi
+
+-AC_ARG_WITH([runtimedir],
+- AC_HELP_STRING([--with-runtimedir=DIR], [runtime data dir [LOCALSTATEDIR/run]]),
+- [plymouthruntimedir=${withval}/plymouth], [plymouthruntimedir=""])
++AC_ARG_WITH([runtimedir], [], [AC_MSG_ERROR([--with-runtimedir is obsolete, use --runstatedir instead])], [])
+
+ AC_ARG_WITH(system-root-install, AS_HELP_STRING([--with-system-root-install],[Install client in /bin and daemon in /sbin]),with_system_root_install=${withval},with_system_root_install=no)
+ AM_CONDITIONAL(WITH_SYSTEM_ROOT_INSTALL, [test "$with_system_root_install" = yes])
+@@ -150,16 +148,11 @@ AM_CONDITIONAL(WITH_SYSTEM_ROOT_INSTALL, [test "$with_system_root_install" = ye
+ if test x$with_system_root_install = xyes; then
+ plymouthclientdir=/bin
+ plymouthdaemondir=/sbin
+- if (test -z "${plymouthruntimedir}"); then
+- plymouthruntimedir=/run/plymouth
+- fi
+ else
+ plymouthclientdir=$bindir
+ plymouthdaemondir=$sbindir
+- if (test -z "${plymouthruntimedir}"); then
+- plymouthruntimedir=$localstatedir/run/plymouth
+- fi
+ fi
++plymouthruntimedir=$runstatedir/plymouth
+ AC_SUBST(plymouthclientdir)
+ AC_SUBST(plymouthdaemondir)
+ AC_SUBST(plymouthruntimedir)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-core/plymouth/files/0001-plymouth-Add-the-retain-splash-option.patch b/meta-oe/recipes-core/plymouth/files/0001-plymouth-Add-the-retain-splash-option.patch
new file mode 100644
index 0000000000..58838500bf
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/files/0001-plymouth-Add-the-retain-splash-option.patch
@@ -0,0 +1,35 @@
+From f270f80d4c36a22a0f7b8de8fb6b1abef6f7b183 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Tue, 15 Feb 2022 16:23:10 +0800
+Subject: [PATCH] plymouth : Add the retain-splash option
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+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]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ systemd-units/plymouth-quit.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/systemd-units/plymouth-quit.service.in b/systemd-units/plymouth-quit.service.in
+index ed9f9b9..147e9ee 100644
+--- a/systemd-units/plymouth-quit.service.in
++++ b/systemd-units/plymouth-quit.service.in
+@@ -3,7 +3,7 @@ Description=Terminate Plymouth Boot Screen
+ After=rc-local.service plymouth-start.service systemd-user-sessions.service
+
+ [Service]
+-ExecStart=-@PLYMOUTH_CLIENT_DIR@/plymouth quit
++ExecStart=-@PLYMOUTH_CLIENT_DIR@/plymouth quit --retain-splash
+ Type=oneshot
+ RemainAfterExit=yes
+ TimeoutSec=20
+--
+2.17.1
+
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/files/0001-plymouth-start-service-in-add-related-kernel-paramet.patch
new file mode 100644
index 0000000000..7ba1034e93
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/files/0001-plymouth-start-service-in-add-related-kernel-paramet.patch
@@ -0,0 +1,31 @@
+From 658eac007d14d836cb002a5675487bac63d50324 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 7 Feb 2022 03:22:12 +0000
+Subject: [PATCH] plymouth-start.service.in: add related kernel parameter
+
+Add extra kernel parameter to make the plymouth splash screen
+display during boot.
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/plymouth/plymouth/-/merge_requests/156]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ systemd-units/plymouth-start.service.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/systemd-units/plymouth-start.service.in b/systemd-units/plymouth-start.service.in
+index 830a62d..c20aabe 100644
+--- a/systemd-units/plymouth-start.service.in
++++ b/systemd-units/plymouth-start.service.in
+@@ -9,7 +9,7 @@ ConditionVirtualization=!container
+ IgnoreOnIsolate=true
+
+ [Service]
+-ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=boot --pid-file=@plymouthruntimedir@/pid --attach-to-session
++ExecStart=@PLYMOUTH_DAEMON_DIR@/plymouthd --mode=boot --kernel-command-line="splash plymouth.ignore-serial-consoles" --pid-file=@plymouthruntimedir@/pid --attach-to-session
+ ExecStartPost=-@PLYMOUTH_CLIENT_DIR@/plymouth show-splash
+ Type=forking
+ RemainAfterExit=yes
+--
+2.31.1
+
diff --git a/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb b/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
deleted file mode 100644
index 7e8d6e32ab..0000000000
--- a/meta-oe/recipes-core/plymouth/plymouth_0.9.2.bb
+++ /dev/null
@@ -1,66 +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 = "GPLv2+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "libcap libpng cairo dbus udev"
-PROVIDES = "virtual/psplash"
-RPROVIDES_${PN} = "virtual-psplash virtual-psplash-support"
-
-SRC_URI = " \
- http://www.freedesktop.org/software/plymouth/releases/${BPN}-${PV}.tar.bz2 \
- file://0001-Make-full-path-to-systemd-tty-ask-password-agent-con.patch \
-"
-SRC_URI[md5sum] = "ff420994deb7ea203df678df92e7ab7d"
-SRC_URI[sha256sum] = "2f0ce82042cf9c7eadd2517a1f74c8a85fa8699781d9f294a06eade29fbed57f"
-
-EXTRA_OECONF += " --enable-shared --disable-static --disable-gtk --disable-documentation \
- --with-logo=${LOGO} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--enable-systemd-integration --with-system-root-install --with-systemd-tty-ask-password-agent=${base_bindir}/systemd-tty-ask-password-agent', '', 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
-
-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_22.02.122.bb b/meta-oe/recipes-core/plymouth/plymouth_22.02.122.bb
new file mode 100644
index 0000000000..469914cd47
--- /dev/null
+++ b/meta-oe/recipes-core/plymouth/plymouth_22.02.122.bb
@@ -0,0 +1,73 @@
+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-Use-standard-runstatedir-vs-custom-flag.patch \
+ file://0001-Fix-daemon-install-ignoring-configured-runstatedir.patch \
+"
+
+SRC_URI[sha256sum] = "100551442221033ce868c447ad6c74d831d209c18ae232b98ae0207e34eadaeb"
+
+LOGO ??= "${datadir}/plymouth/bizcom.png"
+RUNSTATEDIR ??= "${localstatedir}/run"
+
+EXTRA_OECONF = "--runstatedir=${RUNSTATEDIR}"
+
+PACKAGECONFIG ??= "initrd logo pango udev ${@bb.utils.filter('DISTRO_FEATURES', 'systemd usrmerge', d)}"
+PACKAGECONFIG:append:x86 = " drm"
+PACKAGECONFIG:append:x86-64 = " drm"
+
+PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
+PACKAGECONFIG[documentation] = "--enable-documentation,--disable-documentation"
+PACKAGECONFIG[initrd] = ",,"
+PACKAGECONFIG[gtk] = "--enable-gtk,--disable-gtk,gtk+3"
+PACKAGECONFIG[logo] = "--with-logo=${LOGO},--without-logo"
+PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
+PACKAGECONFIG[systemd] = "--enable-systemd-integration --with-systemd-tty-ask-password-agent=${base_bindir}/systemd-tty-ask-password-agent,--disable-systemd-integration,systemd"
+PACKAGECONFIG[udev] = "--with-udev,--without-udev,udev"
+PACKAGECONFIG[upstart-monitoring] = "--enable-upstart-monitoring,--disable-upstart-monitoring,ncurses dbus"
+PACKAGECONFIG[usrmerge] = "--without-system-root-install,--with-system-root-install"
+
+inherit autotools pkgconfig systemd gettext
+
+do_install:append() {
+ # Remove /var/run from package as plymouth will populate it on startup
+ rm -fr ${D}${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/*"
+FILES:${PN}-dbg += "${libdir}/plymouth/renderers/.debug"
+
+DEPENDS = "libcap libpng"
+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 f11ae7e4d2..00b87bbd8b 100644
--- a/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb
+++ b/meta-oe/recipes-core/proxy-libintl/proxy-libintl_20100902.bb
@@ -1,24 +1,24 @@
SUMMARY = "Proxy libintl"
HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/"
SECTION = "libs"
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://src/proxy-libintl/COPYING.LIB.txt;md5=bc400bc21422f9a92e76ec2c5167ca2e"
PR = "r1"
PROVIDES = "virtual/libintl"
SRC_URI = " \
- http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/${PN}-dev_${PV}_win32.zip \
+ http://ftp.gnome.org/pub/GNOME/binaries/win32/dependencies/${BPN}-dev_${PV}_win32.zip \
"
SRC_URI[md5sum] = "aef407c2b97ee829383aadd867c61d1e"
SRC_URI[sha256sum] = "291ac350cc5eb4a01b0d651ca99fae64cee8a1c06b2005277fab5a4356f9ae91"
S = "${WORKDIR}"
PACKAGES = "${PN} ${PN}-dev"
-FILES_${PN}-dev = "${includedir}/libintl.h ${libdir}/libintl.a"
-INSANE_SKIP_${PN}-dev = "staticdev"
-ALLOW_EMPTY_${PN} = "1"
-CFLAGS_append = " -fPIC -Wall -I ../../include ${@['-DSTUB_ONLY', ''][d.getVar('USE_NLS') != 'no']}"
+FILES:${PN}-dev = "${includedir}/libintl.h ${libdir}/libintl.a"
+INSANE_SKIP:${PN}-dev = "staticdev"
+ALLOW_EMPTY:${PN} = "1"
+CFLAGS:append = " -fPIC -Wall -I ../../include ${@['-DSTUB_ONLY', ''][d.getVar('USE_NLS') != 'no']}"
TARGET_CC_ARCH += "${LDFLAGS}"
do_compile() {
diff --git a/meta-oe/recipes-core/safec/safec/0001-strpbrk_s-Remove-unused-variable-len.patch b/meta-oe/recipes-core/safec/safec/0001-strpbrk_s-Remove-unused-variable-len.patch
new file mode 100644
index 0000000000..4fd36ab8ab
--- /dev/null
+++ b/meta-oe/recipes-core/safec/safec/0001-strpbrk_s-Remove-unused-variable-len.patch
@@ -0,0 +1,42 @@
+From b1d7cc6495c541cdd99399b4d1a835997376dcbf Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 Aug 2022 23:42:33 -0700
+Subject: [PATCH] strpbrk_s: Remove unused variable len
+
+Fixes
+error: variable 'len' set but not used [-Werror,-Wunused-but-set-variable]
+
+Upstream-Status: Submitted [https://github.com/rurban/safeclib/pull/123]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/extstr/strpbrk_s.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/src/extstr/strpbrk_s.c b/src/extstr/strpbrk_s.c
+index 5bb7a0f8..2cf8a8be 100644
+--- a/src/extstr/strpbrk_s.c
++++ b/src/extstr/strpbrk_s.c
+@@ -79,7 +79,6 @@ EXPORT errno_t _strpbrk_s_chk(char *dest, rsize_t dmax, char *src, rsize_t slen,
+ #endif
+ {
+ char *ps;
+- rsize_t len;
+
+ CHK_SRC_NULL("strpbrk_s", firstp)
+ *firstp = NULL;
+@@ -121,7 +120,6 @@ EXPORT errno_t _strpbrk_s_chk(char *dest, rsize_t dmax, char *src, rsize_t slen,
+ while (*dest && dmax) {
+
+ ps = src;
+- len = slen;
+ while (*ps) {
+
+ /* check for a match with the substring */
+@@ -130,7 +128,6 @@ EXPORT errno_t _strpbrk_s_chk(char *dest, rsize_t dmax, char *src, rsize_t slen,
+ return RCNEGATE(EOK);
+ }
+ ps++;
+- len--;
+ }
+ dest++;
+ dmax--;
diff --git a/meta-oe/recipes-core/safec/safec_3.7.1.bb b/meta-oe/recipes-core/safec/safec_3.7.1.bb
new file mode 100644
index 0000000000..9dd6f1c7cc
--- /dev/null
+++ b/meta-oe/recipes-core/safec/safec_3.7.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Safe C Library"
+
+LICENSE = "safec"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6d0eb7dfc57806a006fcbc4e389cf164"
+SECTION = "lib"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
+SRCREV = "f9add9245b97c7bda6e28cceb0ee37fb7e254fd8"
+SRC_URI = "git://github.com/rurban/safeclib.git;branch=master;protocol=https \
+ file://0001-strpbrk_s-Remove-unused-variable-len.patch \
+ "
+
+COMPATIBLE_HOST = '(x86_64|i.86|powerpc|powerpc64|arm|aarch64|mips).*-linux'
+
+PACKAGES =+ "${PN}-check"
+
+FILES:${PN}-check += "${bindir}/check_for_unsafe_apis"
+
+RDEPENDS:${PN}-check += "perl"
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
new file mode 100755
index 0000000000..f6ade0c7e4
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-1.2.0/run-ptest
@@ -0,0 +1,15 @@
+#!/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++-libsystemd/0001-Adjust-for-musl-headers.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch
new file mode 100644
index 0000000000..2363679c98
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-Adjust-for-musl-headers.patch
@@ -0,0 +1,453 @@
+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-dirent-util-Remove-asserts-on-dirent64-dirent.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-dirent-util-Remove-asserts-on-dirent64-dirent.patch
new file mode 100644
index 0000000000..517886c727
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0001-dirent-util-Remove-asserts-on-dirent64-dirent.patch
@@ -0,0 +1,38 @@
+From 19cc68d4a89b59889be442d2997ff030cdc3de73 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 20 Dec 2022 20:11:17 -0800
+Subject: [PATCH] dirent-util: Remove asserts on dirent64 == dirent
+
+We already have assert_cc(_FILE_OFFSET_BITS == 64) which ensures that 64bit LFS functions are same as their original counterparts
+
+Upstream-Status: Submitted [https://github.com/systemd/systemd/pull/25809]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/basic/dirent-util.h | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/src/basic/dirent-util.h b/src/basic/dirent-util.h
+index 04bc53003f..4cb317184d 100644
+--- a/src/basic/dirent-util.h
++++ b/src/basic/dirent-util.h
+@@ -35,17 +35,6 @@ struct dirent *readdir_no_dot(DIR *dirp);
+ /* Only if 64bit off_t is enabled struct dirent + struct dirent64 are actually the same. We require this, and
+ * we want them to be interchangeable to make getdents64() work, hence verify that. */
+ assert_cc(_FILE_OFFSET_BITS == 64);
+-assert_cc(sizeof(struct dirent) == sizeof(struct dirent64));
+-assert_cc(offsetof(struct dirent, d_ino) == offsetof(struct dirent64, d_ino));
+-assert_cc(sizeof_field(struct dirent, d_ino) == sizeof_field(struct dirent64, d_ino));
+-assert_cc(offsetof(struct dirent, d_off) == offsetof(struct dirent64, d_off));
+-assert_cc(sizeof_field(struct dirent, d_off) == sizeof_field(struct dirent64, d_off));
+-assert_cc(offsetof(struct dirent, d_reclen) == offsetof(struct dirent64, d_reclen));
+-assert_cc(sizeof_field(struct dirent, d_reclen) == sizeof_field(struct dirent64, d_reclen));
+-assert_cc(offsetof(struct dirent, d_type) == offsetof(struct dirent64, d_type));
+-assert_cc(sizeof_field(struct dirent, d_type) == sizeof_field(struct dirent64, d_type));
+-assert_cc(offsetof(struct dirent, d_name) == offsetof(struct dirent64, d_name));
+-assert_cc(sizeof_field(struct dirent, d_name) == sizeof_field(struct dirent64, d_name));
+
+ #define FOREACH_DIRENT_IN_BUFFER(de, buf, sz) \
+ for (void *_end = (uint8_t*) ({ (de) = (buf); }) + (sz); \
+--
+2.39.0
+
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
new file mode 100644
index 0000000000..7dfa1a0df2
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-Add-sys-stat.h-for-S_IFDIR.patch
@@ -0,0 +1,29 @@
+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-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
new file mode 100644
index 0000000000..5027682df2
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0002-don-t-use-glibc-specific-qsort_r.patch
@@ -0,0 +1,157 @@
+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
new file mode 100644
index 0000000000..f3edc7d82b
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
@@ -0,0 +1,68 @@
+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/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
new file mode 100644
index 0000000000..d93f630752
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0004-add-fallback-parse_printf_format-implementation.patch
@@ -0,0 +1,419 @@
+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/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
new file mode 100644
index 0000000000..005ef022fd
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -0,0 +1,602 @@
+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/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
new file mode 100644
index 0000000000..846c01bd4f
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -0,0 +1,147 @@
+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/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
new file mode 100644
index 0000000000..57e18a5808
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0008-add-missing-FTW_-macros-for-musl.patch
@@ -0,0 +1,64 @@
+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/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
new file mode 100644
index 0000000000..0fc320420e
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
@@ -0,0 +1,43 @@
+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
new file mode 100644
index 0000000000..029f413aa8
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
@@ -0,0 +1,98 @@
+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/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
new file mode 100644
index 0000000000..327084bae9
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
@@ -0,0 +1,37 @@
+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-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
new file mode 100644
index 0000000000..0026a7b72a
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -0,0 +1,93 @@
+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
new file mode 100644
index 0000000000..612a535d3c
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -0,0 +1,30 @@
+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/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
new file mode 100644
index 0000000000..baf4903803
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -0,0 +1,37 @@
+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/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
new file mode 100644
index 0000000000..878914b307
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -0,0 +1,56 @@
+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/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
new file mode 100644
index 0000000000..e6507c5f89
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
@@ -0,0 +1,33 @@
+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/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
new file mode 100644
index 0000000000..eeff693bc4
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
@@ -0,0 +1,28 @@
+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
new file mode 100644
index 0000000000..5ca5386289
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -0,0 +1,30 @@
+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/0019-Handle-missing-LOCK_EX.patch b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch
new file mode 100644
index 0000000000..d51ac4265a
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0019-Handle-missing-LOCK_EX.patch
@@ -0,0 +1,24 @@
+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/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
new file mode 100644
index 0000000000..1ba5c1292b
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
@@ -0,0 +1,36 @@
+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/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
new file mode 100644
index 0000000000..dfab8fbbdf
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0021-test-json.c-define-M_PIl.patch
@@ -0,0 +1,29 @@
+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-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
new file mode 100644
index 0000000000..d389e1d9f9
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0022-do-not-disable-buffer-in-writing-files.patch
@@ -0,0 +1,420 @@
+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
new file mode 100644
index 0000000000..e001ed59e8
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0025-Handle-__cpu_mask-usage.patch
@@ -0,0 +1,58 @@
+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
new file mode 100644
index 0000000000..2d06ab84a2
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0026-Handle-missing-gshadow.patch
@@ -0,0 +1,165 @@
+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
new file mode 100644
index 0000000000..700a04a264
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/0028-missing_syscall.h-Define-MIPS-ABI-defines-for-musl.patch
@@ -0,0 +1,32 @@
+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
new file mode 100644
index 0000000000..4f42308471
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd/static-libsystemd-pkgconfig.patch
@@ -0,0 +1,11 @@
+Upstream-Status: Pending
+
+--- a/src/libsystemd/libsystemd.pc.in
++++ b/src/libsystemd/libsystemd.pc.in
+@@ -16,5 +16,5 @@ Name: systemd
+ Description: systemd Library
+ URL: {{PROJECT_URL}}
+ Version: {{PROJECT_VERSION}}
+-Libs: -L${libdir} -lsystemd
++Libs: -L${libdir} -lsystemd -lrt -lmount -lcap
+ Cflags: -I${includedir}
diff --git a/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.9.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.9.bb
new file mode 100644
index 0000000000..14e927d075
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-libsystemd_250.9.bb
@@ -0,0 +1,79 @@
+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 = "1d5e0e9910500f3c3584485f77bfc35e601036e3"
+SRCBRANCH = "v250-stable"
+SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=https;branch=${SRCBRANCH} \
+ file://static-libsystemd-pkgconfig.patch \
+ file://0001-dirent-util-Remove-asserts-on-dirent64-dirent.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://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++-tools_1.2.0.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.2.0.bb
new file mode 100644
index 0000000000..27b965ac11
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++-tools_1.2.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 = "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++_1.2.0.bb b/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.2.0.bb
new file mode 100644
index 0000000000..2fb975ced6
--- /dev/null
+++ b/meta-oe/recipes-core/sdbus-c++/sdbus-c++_1.2.0.bb
@@ -0,0 +1,47 @@
+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"
+
+# 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/inittab b/meta-oe/recipes-core/toybox/toybox-inittab/inittab
new file mode 100644
index 0000000000..ffb2f17a66
--- /dev/null
+++ b/meta-oe/recipes-core/toybox/toybox-inittab/inittab
@@ -0,0 +1,26 @@
+# STARTUP
+::sysinit:/bin/mount -t proc proc /proc
+::sysinit:/bin/mount -t sysfs sysfs /sys
+::sysinit:/bin/mount -t devtmpfs devtmpfs /dev
+::sysinit:/bin/mount -o remount,rw /
+::sysinit:/bin/mkdir -p /dev/pts
+::sysinit:/bin/mount -t devpts devpts /dev/pts
+::sysinit:/bin/mount -a
+
+::sysinit:/bin/ln -sf /proc/self/fd /dev/fd
+::sysinit:/bin/ln -sf /proc/self/fd/0 /dev/stdin
+::sysinit:/bin/ln -sf /proc/self/fd/1 /dev/stdout
+::sysinit:/bin/ln -sf /proc/self/fd/2 /dev/stderr
+
+::sysinit:/bin/hostname -F /etc/hostname
+
+::sysinit:/etc/init.d/rcS
+
+# REBOOT
+::ctrlaltdel:/sbin/reboot
+::shutdown:/etc/init.d/rcK
+::shutdown:/bin/umount -a -r
+
+# RESTART INIT
+::restart:/sbin/init
+
diff --git a/meta-oe/recipes-core/toybox/toybox-inittab/rcK b/meta-oe/recipes-core/toybox/toybox-inittab/rcK
new file mode 100644
index 0000000000..617d3c0c3f
--- /dev/null
+++ b/meta-oe/recipes-core/toybox/toybox-inittab/rcK
@@ -0,0 +1,26 @@
+#!/bin/sh
+
+# Stop all init scripts in /etc/rc6.d
+# executing them in numerical order.
+#
+for i in /etc/rc6.d/K??*; do
+
+ # Ignore dangling symlinks (if any).
+ [ ! -f "$i" ] && continue
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set stop
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i stop
+ ;;
+ esac
+done
+
diff --git a/meta-oe/recipes-core/toybox/toybox-inittab/rcS b/meta-oe/recipes-core/toybox/toybox-inittab/rcS
new file mode 100644
index 0000000000..b8e29855d4
--- /dev/null
+++ b/meta-oe/recipes-core/toybox/toybox-inittab/rcS
@@ -0,0 +1,27 @@
+#!/bin/sh
+
+# Start all init scripts in /etc/rcS.d and /etc/rc5.d
+# executing them in numerical order.
+#
+
+for i in /etc/rcS.d/S??* /etc/rc5.d/S??* ;do
+
+ # Ignore dangling symlinks (if any).
+ [ ! -f "$i" ] && continue
+
+ case "$i" in
+ *.sh)
+ # Source shell script for speed.
+ (
+ trap - INT QUIT TSTP
+ set start
+ . $i
+ )
+ ;;
+ *)
+ # No sh extension, so fork subprocess.
+ $i start
+ ;;
+ esac
+done
+
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
new file mode 100644
index 0000000000..603f365cf3
--- /dev/null
+++ b/meta-oe/recipes-core/toybox/toybox-inittab_0.8.2.bb
@@ -0,0 +1,64 @@
+SUMMARY = "Toybox Inittab Configuration"
+LICENSE = "0BSD"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/0BSD;md5=f667a3c3830a55a17ec3067709f4526c"
+
+# Unpack to ${S}/orig
+#
+SRC_URI = "\
+ file://inittab;subdir=${BP}/orig \
+ file://rcK;subdir=${BP}/orig \
+ file://rcS;subdir=${BP}/orig \
+"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+RCONFLICTS:${PN} = "\
+ busybox-inittab \
+ sysvinit-inittab \
+"
+
+# Just being sure.
+B = "${S}"
+
+# most users may want to have getty enabled by default
+PACKAGECONFIG ??= "getty"
+
+PACKAGECONFIG[getty] = "\
+ enable_getty \
+"
+
+do_patch[noexec] = "1"
+
+do_configure() {
+ # copy over files now to have a fresh start on each config
+ cp orig/* .
+
+ for config in ${PACKAGECONFIG_CONFARGS}; do
+ 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)
+ name=$(echo ${param} | cut -d' ' -f2)
+ echo "$name::respawn:${base_sbindir}/getty ${param}" >> ${S}/inittab
+ done
+ fi
+ done
+}
+
+do_compile[noexec] = "1"
+
+do_install() {
+ install -d ${D}${sysconfdir}
+ install -D -m 0644 ${S}/inittab ${D}${sysconfdir}/inittab
+
+ install -d ${D}${sysconfdir}/init.d
+ install -D -m 0744 ${S}/rcK ${D}${sysconfdir}/init.d/rcK
+ install -D -m 0744 ${S}/rcS ${D}${sysconfdir}/init.d/rcS
+}
+
+FILES:${PN} = "\
+ ${sysconfdir}/inittab \
+ ${sysconfdir}/init.d/rcK \
+ ${sysconfdir}/init.d/rcS \
+"
+
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
new file mode 100644
index 0000000000..8976b3748b
--- /dev/null
+++ b/meta-oe/recipes-core/toybox/toybox/0001-portability-Fix-timer_settime_wrap-for-32bit-systems.patch
@@ -0,0 +1,37 @@
+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.7.5.bb b/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
deleted file mode 100644
index 347c2856f4..0000000000
--- a/meta-oe/recipes-core/toybox/toybox_0.7.5.bb
+++ /dev/null
@@ -1,71 +0,0 @@
-SUMMARY = "Toybox combines common utilities together into a single executable."
-HOMEPAGE = "http://www.landley.net/toybox/"
-DEPENDS = "attr"
-
-LICENSE = "BSD-0-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f0b8b3dd6431bcaa245da0a08bd0d511"
-
-SRC_URI = "http://www.landley.net/toybox/downloads/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "a8bb502a1be941f06dd2644fff25f547"
-SRC_URI[sha256sum] = "3ada450ac1eab1dfc352fee915ea6129b9a4349c1885f1394b61bd2d89a46c04"
-
-SECTION = "base"
-
-TOYBOX_BIN = "generated/unstripped/toybox"
-
-EXTRA_OEMAKE = 'HOSTCC="${BUILD_CC}" CPUS=${@oe.utils.cpu_count()}'
-
-do_configure() {
- 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
-}
-
-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
-}
-
-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}
-}
-
-inherit update-alternatives
-
-# 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 = "/bin/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
new file mode 100644
index 0000000000..6836b14682
--- /dev/null
+++ b/meta-oe/recipes-core/toybox/toybox_0.8.8.bb
@@ -0,0 +1,115 @@
+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.0.bb
index 9e9c7ed8c4..a529032aad 100644
--- a/meta-oe/recipes-core/usleep/usleep_1.0.bb
+++ b/meta-oe/recipes-core/usleep/usleep_1.0.bb
@@ -1,6 +1,6 @@
SUMMARY = "A user tool to support sleeping some number of microseconds"
SECTION = "base"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
S = "${WORKDIR}"
@@ -22,3 +22,12 @@ do_install() {
install -m 0755 ${WORKDIR}/usleep ${D}${base_bindir}
install -m 0644 ${WORKDIR}/usleep.1 ${D}${mandir}/man1
}
+
+inherit update-alternatives
+
+ALTERNATIVE:${PN} = "usleep"
+ALTERNATIVE_PRIORITY = "80"
+ALTERNATIVE_LINK_NAME[usleep] = "${base_bindir}/usleep"
+
+ALTERNATIVE:${PN}-doc = "usleep.1"
+ALTERNATIVE_LINK_NAME[usleep.1] = "${mandir}/man1/usleep.1"
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..39269d7a0f
--- /dev/null
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils-crates.inc
@@ -0,0 +1,556 @@
+# Autogenerated with 'bitbake -c update_crates uutils-coreutils'
+
+# from Cargo.lock
+SRC_URI += " \
+ crate://crates.io/adler/1.0.2 \
+ crate://crates.io/ahash/0.7.6 \
+ crate://crates.io/aho-corasick/0.7.19 \
+ crate://crates.io/aho-corasick/1.0.1 \
+ crate://crates.io/android-tzdata/0.1.1 \
+ crate://crates.io/android_system_properties/0.1.5 \
+ crate://crates.io/anstream/0.3.2 \
+ 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/1.0.1 \
+ crate://crates.io/arrayref/0.3.6 \
+ crate://crates.io/arrayvec/0.7.2 \
+ 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/blake2b_simd/1.0.1 \
+ crate://crates.io/blake3/1.4.0 \
+ crate://crates.io/block-buffer/0.10.3 \
+ crate://crates.io/bstr/1.6.0 \
+ crate://crates.io/bumpalo/3.11.1 \
+ crate://crates.io/bytecount/0.6.3 \
+ crate://crates.io/byteorder/1.4.3 \
+ 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/chrono/0.4.26 \
+ crate://crates.io/clang-sys/1.4.0 \
+ crate://crates.io/clap/4.3.0 \
+ crate://crates.io/clap_builder/4.3.0 \
+ crate://crates.io/clap_complete/4.3.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.7 \
+ crate://crates.io/const-random/0.1.15 \
+ crate://crates.io/const-random-macro/0.1.15 \
+ crate://crates.io/constant_time_eq/0.2.4 \
+ 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.5.7 \
+ crate://crates.io/cpp_common/0.5.7 \
+ crate://crates.io/cpp_macros/0.5.7 \
+ crate://crates.io/cpufeatures/0.2.5 \
+ crate://crates.io/crc32fast/1.3.2 \
+ crate://crates.io/crossbeam-channel/0.5.8 \
+ crate://crates.io/crossbeam-deque/0.8.2 \
+ crate://crates.io/crossbeam-epoch/0.9.14 \
+ crate://crates.io/crossbeam-utils/0.8.15 \
+ crate://crates.io/crossterm/0.26.1 \
+ crate://crates.io/crossterm_winapi/0.9.0 \
+ crate://crates.io/crunchy/0.2.2 \
+ crate://crates.io/crypto-common/0.1.6 \
+ crate://crates.io/ctrlc/3.4.0 \
+ crate://crates.io/custom_derive/0.1.7 \
+ crate://crates.io/data-encoding/2.4.0 \
+ crate://crates.io/data-encoding-macro/0.1.13 \
+ crate://crates.io/data-encoding-macro-internal/0.1.11 \
+ 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.2 \
+ 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.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/exacl/0.10.0 \
+ crate://crates.io/fastrand/1.8.0 \
+ crate://crates.io/file_diff/1.0.0 \
+ crate://crates.io/filetime/0.2.20 \
+ 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/1.2.0 \
+ crate://crates.io/fundu-core/0.2.0 \
+ crate://crates.io/futures/0.3.25 \
+ crate://crates.io/futures-channel/0.3.25 \
+ crate://crates.io/futures-core/0.3.25 \
+ crate://crates.io/futures-executor/0.3.25 \
+ crate://crates.io/futures-io/0.3.25 \
+ crate://crates.io/futures-macro/0.3.25 \
+ crate://crates.io/futures-sink/0.3.25 \
+ crate://crates.io/futures-task/0.3.25 \
+ crate://crates.io/futures-timer/3.0.2 \
+ crate://crates.io/futures-util/0.3.25 \
+ 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.2.1 \
+ crate://crates.io/hashbrown/0.12.3 \
+ 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/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.11 \
+ crate://crates.io/is-terminal/0.4.7 \
+ crate://crates.io/itertools/0.11.0 \
+ crate://crates.io/itoa/1.0.4 \
+ crate://crates.io/js-sys/0.3.60 \
+ 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.147 \
+ crate://crates.io/libloading/0.7.4 \
+ crate://crates.io/libm/0.2.7 \
+ crate://crates.io/linux-raw-sys/0.1.4 \
+ crate://crates.io/linux-raw-sys/0.3.8 \
+ crate://crates.io/lock_api/0.4.9 \
+ crate://crates.io/log/0.4.17 \
+ crate://crates.io/lscolors/0.14.0 \
+ crate://crates.io/match_cfg/0.1.0 \
+ crate://crates.io/md-5/0.10.5 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/memmap2/0.7.0 \
+ crate://crates.io/memoffset/0.8.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/miniz_oxide/0.5.4 \
+ crate://crates.io/mio/0.8.6 \
+ crate://crates.io/nix/0.26.2 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/notify/6.0.1 \
+ crate://crates.io/nu-ansi-term/0.47.0 \
+ 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.16.0 \
+ crate://crates.io/num_threads/0.1.6 \
+ crate://crates.io/number_prefix/0.4.0 \
+ crate://crates.io/once_cell/1.18.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.7 \
+ crate://crates.io/parse_datetime/0.4.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-macro-hack/0.5.20+deprecated \
+ crate://crates.io/proc-macro2/1.0.63 \
+ crate://crates.io/procfs/0.15.1 \
+ 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.7.0 \
+ crate://crates.io/rayon-core/1.11.0 \
+ crate://crates.io/redox_syscall/0.2.16 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/reference-counted-singleton/0.1.2 \
+ crate://crates.io/regex/1.9.1 \
+ crate://crates.io/regex-automata/0.3.1 \
+ crate://crates.io/regex-syntax/0.7.3 \
+ crate://crates.io/relative-path/1.8.0 \
+ crate://crates.io/rlimit/0.10.0 \
+ crate://crates.io/roff/0.2.1 \
+ crate://crates.io/rstest/0.18.1 \
+ crate://crates.io/rstest_macros/0.18.1 \
+ 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.36.14 \
+ crate://crates.io/rustix/0.37.19 \
+ crate://crates.io/same-file/1.0.6 \
+ crate://crates.io/scopeguard/1.1.0 \
+ crate://crates.io/self_cell/1.0.1 \
+ 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.147 \
+ crate://crates.io/sha1/0.10.5 \
+ crate://crates.io/sha2/0.10.7 \
+ crate://crates.io/sha3/0.10.8 \
+ crate://crates.io/shlex/1.1.0 \
+ crate://crates.io/signal-hook/0.3.15 \
+ 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.11.0 \
+ crate://crates.io/smawk/0.3.1 \
+ crate://crates.io/socket2/0.5.3 \
+ crate://crates.io/static_assertions/1.1.0 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/subtle/2.4.1 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.23 \
+ crate://crates.io/tempfile/3.6.0 \
+ crate://crates.io/term_grid/0.1.7 \
+ crate://crates.io/terminal_size/0.2.6 \
+ crate://crates.io/textwrap/0.16.0 \
+ 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.4 \
+ crate://crates.io/unicode-segmentation/1.10.1 \
+ crate://crates.io/unicode-width/0.1.10 \
+ 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.2.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/0.2.83 \
+ crate://crates.io/wasm-bindgen-backend/0.2.83 \
+ crate://crates.io/wasm-bindgen-macro/0.2.83 \
+ crate://crates.io/wasm-bindgen-macro-support/0.2.83 \
+ crate://crates.io/wasm-bindgen-shared/0.2.83 \
+ crate://crates.io/which/4.3.0 \
+ crate://crates.io/wild/2.1.0 \
+ 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.45.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.42.2 \
+ crate://crates.io/windows-targets/0.48.0 \
+ crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.42.2 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.42.2 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.42.2 \
+ crate://crates.io/windows_i686_msvc/0.48.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_gnullvm/0.42.2 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.42.2 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/xattr/1.0.0 \
+ 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[ahash-0.7.6.sha256sum] = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
+SRC_URI[aho-corasick-0.7.19.sha256sum] = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e"
+SRC_URI[aho-corasick-1.0.1.sha256sum] = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+SRC_URI[android-tzdata-0.1.1.sha256sum] = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+SRC_URI[android_system_properties-0.1.5.sha256sum] = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+SRC_URI[anstream-0.3.2.sha256sum] = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163"
+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-1.0.1.sha256sum] = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188"
+SRC_URI[arrayref-0.3.6.sha256sum] = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+SRC_URI[arrayvec-0.7.2.sha256sum] = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
+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[blake2b_simd-1.0.1.sha256sum] = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc"
+SRC_URI[blake3-1.4.0.sha256sum] = "729b71f35bd3fa1a4c86b85d32c8b9069ea7fe14f7a53cfabb65f62d4265b888"
+SRC_URI[block-buffer-0.10.3.sha256sum] = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
+SRC_URI[bstr-1.6.0.sha256sum] = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05"
+SRC_URI[bumpalo-3.11.1.sha256sum] = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba"
+SRC_URI[bytecount-0.6.3.sha256sum] = "2c676a478f63e9fa2dd5368a42f28bba0d6c560b775f38583c8bbaa7fcd67c9c"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+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[chrono-0.4.26.sha256sum] = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5"
+SRC_URI[clang-sys-1.4.0.sha256sum] = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3"
+SRC_URI[clap-4.3.0.sha256sum] = "93aae7a4192245f70fe75dd9157fc7b4a5bf53e88d30bd4396f7d8f9284d5acc"
+SRC_URI[clap_builder-4.3.0.sha256sum] = "4f423e341edefb78c9caba2d9c7f7687d0e72e89df3ce3394554754393ac3990"
+SRC_URI[clap_complete-4.3.0.sha256sum] = "a04ddfaacc3bc9e6ea67d024575fafc2a813027cf374b8f24f7bc233c6b6be12"
+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.7.sha256sum] = "c926e00cc70edefdc64d3a5ff31cc65bb97a3460097762bd23afb4d8145fccf8"
+SRC_URI[const-random-0.1.15.sha256sum] = "368a7a772ead6ce7e1de82bfb04c485f3db8ec744f72925af5735e29a22cc18e"
+SRC_URI[const-random-macro-0.1.15.sha256sum] = "9d7d6ab3c3a2282db210df5f02c4dab6e0a7057af0fb7ebd4070f30fe05c0ddb"
+SRC_URI[constant_time_eq-0.2.4.sha256sum] = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279"
+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.7.sha256sum] = "dec5e86d4f6547f0218ad923d9508244a71ef83b763196e6698b4f70f3595185"
+SRC_URI[cpp_build-0.5.7.sha256sum] = "16f4d303b8ec35fb3afd7e963e2c898117f1e49930becb703e4a7ac528ad2dd0"
+SRC_URI[cpp_common-0.5.7.sha256sum] = "76071bb9c8c4dd2b5eb209907deab7b031323cf1be3dfdc6ec5d37f4f187d8a1"
+SRC_URI[cpp_macros-0.5.7.sha256sum] = "7fdaa01904c12a8989dbfa110b41ef27efc432ac9934f691b9732f01cb64dc01"
+SRC_URI[cpufeatures-0.2.5.sha256sum] = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[crossbeam-channel-0.5.8.sha256sum] = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200"
+SRC_URI[crossbeam-deque-0.8.2.sha256sum] = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc"
+SRC_URI[crossbeam-epoch-0.9.14.sha256sum] = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695"
+SRC_URI[crossbeam-utils-0.8.15.sha256sum] = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b"
+SRC_URI[crossterm-0.26.1.sha256sum] = "a84cda67535339806297f1b331d6dd6320470d2a0fe65381e79ee9e156dd3d13"
+SRC_URI[crossterm_winapi-0.9.0.sha256sum] = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c"
+SRC_URI[crunchy-0.2.2.sha256sum] = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+SRC_URI[crypto-common-0.1.6.sha256sum] = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+SRC_URI[ctrlc-3.4.0.sha256sum] = "2a011bbe2c35ce9c1f143b7af6f94f29a167beb4cd1d29e6740ce836f723120e"
+SRC_URI[custom_derive-0.1.7.sha256sum] = "ef8ae57c4978a2acd8b869ce6b9ca1dfe817bff704c220209fdef2c0b75a01b9"
+SRC_URI[data-encoding-2.4.0.sha256sum] = "c2e66c9d817f1720209181c316d28635c050fa304f9c79e47a520882661b7308"
+SRC_URI[data-encoding-macro-0.1.13.sha256sum] = "c904b33cc60130e1aeea4956ab803d08a3f4a0ca82d64ed757afac3891f2bb99"
+SRC_URI[data-encoding-macro-internal-0.1.11.sha256sum] = "8fdf3fce3ce863539ec1d7fd1b6dcc3c645663376b43ed376bbf887733e4f772"
+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.2.sha256sum] = "8f332aa79f9e9de741ac013237294ef42ce2e9c6394dc7d766725812f1238812"
+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.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[exacl-0.10.0.sha256sum] = "1cfeb22a59deb24c3262c43ffcafd1eb807180f371f9fcc99098d181b5d639be"
+SRC_URI[fastrand-1.8.0.sha256sum] = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
+SRC_URI[file_diff-1.0.0.sha256sum] = "31a7a908b8f32538a2143e59a6e4e2508988832d5d4d6f7c156b3cbc762643a5"
+SRC_URI[filetime-0.2.20.sha256sum] = "8a3de6e8d11b22ff9edc6d916f890800597d60f8b2da1caf2955c274638d6412"
+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-1.2.0.sha256sum] = "34804ed59f10b3a630c79822ebf7370b562b7281028369e9baa40547c17f8bdc"
+SRC_URI[fundu-core-0.2.0.sha256sum] = "71a99190954ca83bade03ba054799b17a158ea948a6855c6bb8121adb6b49d9f"
+SRC_URI[futures-0.3.25.sha256sum] = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0"
+SRC_URI[futures-channel-0.3.25.sha256sum] = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed"
+SRC_URI[futures-core-0.3.25.sha256sum] = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac"
+SRC_URI[futures-executor-0.3.25.sha256sum] = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2"
+SRC_URI[futures-io-0.3.25.sha256sum] = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb"
+SRC_URI[futures-macro-0.3.25.sha256sum] = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d"
+SRC_URI[futures-sink-0.3.25.sha256sum] = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9"
+SRC_URI[futures-task-0.3.25.sha256sum] = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea"
+SRC_URI[futures-timer-3.0.2.sha256sum] = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c"
+SRC_URI[futures-util-0.3.25.sha256sum] = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6"
+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.2.1.sha256sum] = "02b4af3693f1b705df946e9fe5631932443781d0aabb423b62fcd4d73f6d2fd0"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+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[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.11.sha256sum] = "eae7b9aee968036d54dce06cebaefd919e4472e753296daccd6d344e3e2df0c2"
+SRC_URI[is-terminal-0.4.7.sha256sum] = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f"
+SRC_URI[itertools-0.11.0.sha256sum] = "b1c173a5686ce8bfa551b3563d0c2170bf24ca44da99c7ca4bfdab5418c3fe57"
+SRC_URI[itoa-1.0.4.sha256sum] = "4217ad341ebadf8d8e724e264f13e593e0648f5b3e94b3896a5df283be015ecc"
+SRC_URI[js-sys-0.3.60.sha256sum] = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47"
+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.147.sha256sum] = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+SRC_URI[libloading-0.7.4.sha256sum] = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+SRC_URI[libm-0.2.7.sha256sum] = "f7012b1bbb0719e1097c47611d3898568c546d597c2e74d66f6087edd5233ff4"
+SRC_URI[linux-raw-sys-0.1.4.sha256sum] = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
+SRC_URI[linux-raw-sys-0.3.8.sha256sum] = "ef53942eb7bf7ff43a617b3e2c1c4a5ecf5944a7c1bc12d7ee39bbb15e5c1519"
+SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[lscolors-0.14.0.sha256sum] = "18a9df1d1fb6d9e92fa043e9eb9a3ecf6892c7b542bae5137cd1e419e40aa8bf"
+SRC_URI[match_cfg-0.1.0.sha256sum] = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4"
+SRC_URI[md-5-0.10.5.sha256sum] = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[memmap2-0.7.0.sha256sum] = "180d4b35be83d33392d1d1bfbd2ae1eca7ff5de1a94d3fc87faaa99a069e7cbd"
+SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.5.4.sha256sum] = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34"
+SRC_URI[mio-0.8.6.sha256sum] = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9"
+SRC_URI[nix-0.26.2.sha256sum] = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[notify-6.0.1.sha256sum] = "5738a2795d57ea20abec2d6d76c6081186709c0024187cd5977265eda6598b51"
+SRC_URI[nu-ansi-term-0.47.0.sha256sum] = "1df031e117bca634c262e9bd3173776844b6c17a90b3741c9163663b4385af76"
+SRC_URI[num-bigint-0.4.3.sha256sum] = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f"
+SRC_URI[num-integer-0.1.45.sha256sum] = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.16.0.sha256sum] = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+SRC_URI[num_threads-0.1.6.sha256sum] = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
+SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+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.7.sha256sum] = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
+SRC_URI[parse_datetime-0.4.0.sha256sum] = "fecceaede7767a9a98058687a321bc91742eff7670167a34104afb30fc8757df"
+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-macro-hack-0.5.20+deprecated.sha256sum] = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068"
+SRC_URI[proc-macro2-1.0.63.sha256sum] = "7b368fba921b0dce7e60f5e04ec15e565b3303972b42bcfde1d0713b881959eb"
+SRC_URI[procfs-0.15.1.sha256sum] = "943ca7f9f29bab5844ecd8fdb3992c5969b6622bb9609b9502fef9b4310e3f1f"
+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.7.0.sha256sum] = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b"
+SRC_URI[rayon-core-1.11.0.sha256sum] = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[reference-counted-singleton-0.1.2.sha256sum] = "f1bfbf25d7eb88ddcbb1ec3d755d0634da8f7657b2cb8b74089121409ab8228f"
+SRC_URI[regex-1.9.1.sha256sum] = "b2eae68fc220f7cf2532e4494aded17545fce192d59cd996e0fe7887f4ceb575"
+SRC_URI[regex-automata-0.3.1.sha256sum] = "e9aaecc05d5c4b5f7da074b9a0d1a0867e71fd36e7fc0482d8bcfe8e8fc56290"
+SRC_URI[regex-syntax-0.7.3.sha256sum] = "2ab07dc67230e4a4718e70fd5c20055a4334b121f1f9db8fe63ef39ce9b8c846"
+SRC_URI[relative-path-1.8.0.sha256sum] = "4bf2521270932c3c7bed1a59151222bd7643c79310f2916f01925e1e16255698"
+SRC_URI[rlimit-0.10.0.sha256sum] = "9b5b8be0bc0ef630d24f8fa836b3a3463479b2343b29f9a8fa905c71a8c7b69b"
+SRC_URI[roff-0.2.1.sha256sum] = "b833d8d034ea094b1ea68aa6d5c740e0d04bad9d16568d08ba6f76823a114316"
+SRC_URI[rstest-0.18.1.sha256sum] = "2b96577ca10cb3eade7b337eb46520108a67ca2818a24d0b63f41fd62bc9651c"
+SRC_URI[rstest_macros-0.18.1.sha256sum] = "225e674cf31712b8bb15fdbca3ec0c1b9d825c5a24407ff2b7e005fb6a29ba03"
+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.36.14.sha256sum] = "14e4d67015953998ad0eb82887a0eb0129e18a7e2f3b7b0f6c422fddcd503d62"
+SRC_URI[rustix-0.37.19.sha256sum] = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d"
+SRC_URI[same-file-1.0.6.sha256sum] = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+SRC_URI[scopeguard-1.1.0.sha256sum] = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+SRC_URI[self_cell-1.0.1.sha256sum] = "4c309e515543e67811222dbc9e3dd7e1056279b782e1dacffe4242b718734fb6"
+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.147.sha256sum] = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965"
+SRC_URI[sha1-0.10.5.sha256sum] = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3"
+SRC_URI[sha2-0.10.7.sha256sum] = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8"
+SRC_URI[sha3-0.10.8.sha256sum] = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60"
+SRC_URI[shlex-1.1.0.sha256sum] = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+SRC_URI[signal-hook-0.3.15.sha256sum] = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9"
+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.11.0.sha256sum] = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9"
+SRC_URI[smawk-0.3.1.sha256sum] = "f67ad224767faa3c7d8b6d91985b78e70a1324408abcb1cfcc2be4c06bc06043"
+SRC_URI[socket2-0.5.3.sha256sum] = "2538b18701741680e0322a2302176d3253a35388e2e62f172f64f4f16605f877"
+SRC_URI[static_assertions-1.1.0.sha256sum] = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[subtle-2.4.1.sha256sum] = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.23.sha256sum] = "59fb7d6d8281a51045d62b8eb3a7d1ce347b76f312af50cd3dc0af39c87c1737"
+SRC_URI[tempfile-3.6.0.sha256sum] = "31c0432476357e58790aaa47a8efb0c5138f137343f3b5f23bd36a27e3b0a6d6"
+SRC_URI[term_grid-0.1.7.sha256sum] = "230d3e804faaed5a39b08319efb797783df2fd9671b39b7596490cb486d702cf"
+SRC_URI[terminal_size-0.2.6.sha256sum] = "8e6bf6f19e9f8ed8d4048dc22981458ebcf406d67e94cd422e5ecd73d63b3237"
+SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+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.4.sha256sum] = "c5faade31a542b8b35855fff6e8def199853b2da8da256da52f52f1316ee3137"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+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.2.2.sha256sum] = "422ee0de9031b5b948b97a8fc04e3aa35230001a722ddd27943e0be31564ce4c"
+SRC_URI[version_check-0.9.4.sha256sum] = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
+SRC_URI[walkdir-2.3.2.sha256sum] = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56"
+SRC_URI[wasi-0.11.0+wasi-snapshot-preview1.sha256sum] = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+SRC_URI[wasm-bindgen-0.2.83.sha256sum] = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268"
+SRC_URI[wasm-bindgen-backend-0.2.83.sha256sum] = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142"
+SRC_URI[wasm-bindgen-macro-0.2.83.sha256sum] = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810"
+SRC_URI[wasm-bindgen-macro-support-0.2.83.sha256sum] = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c"
+SRC_URI[wasm-bindgen-shared-0.2.83.sha256sum] = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f"
+SRC_URI[which-4.3.0.sha256sum] = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b"
+SRC_URI[wild-2.1.0.sha256sum] = "05b116685a6be0c52f5a103334cbff26db643826c7b3735fc0a3ba9871310a74"
+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.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+SRC_URI[windows-targets-0.48.0.sha256sum] = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+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_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[xattr-1.0.0.sha256sum] = "ea263437ca03c1522846a4ddafbca2542d0ad5ed9b784909d4b27b76f62bc34a"
+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
new file mode 100644
index 0000000000..973b722ba3
--- /dev/null
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils.inc
@@ -0,0 +1,56 @@
+# 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.20.bb b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb
new file mode 100644
index 0000000000..0614416690
--- /dev/null
+++ b/meta-oe/recipes-core/uutils-coreutils/uutils-coreutils_0.0.20.bb
@@ -0,0 +1,19 @@
+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=41f7469eaacac62c67d5664fff2c062d"
+
+inherit cargo cargo-update-recipe-crates
+
+SRC_URI += "git://github.com/uutils/coreutils.git;protocol=https;nobranch=1"
+
+# 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 = "8093d81dac0fb87ff3984ba9fe22ab171e630443"
+S = "${WORKDIR}/git"
+
+require ${BPN}-crates.inc
+
+include uutils-coreutils.inc
diff --git a/meta-oe/recipes-crypto/botan/botan_2.19.3.bb b/meta-oe/recipes-crypto/botan/botan_2.19.3.bb
new file mode 100644
index 0000000000..8d9d423ce7
--- /dev/null
+++ b/meta-oe/recipes-crypto/botan/botan_2.19.3.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=f4ce98476c07c34e1793daa036960fad"
+SECTION = "libs"
+
+SRC_URI = "https://botan.randombit.net/releases/Botan-${PV}.tar.xz"
+SRC_URI[sha256sum] = "dae047f399c5a47f087db5d3d9d9e8f11ae4985d14c928d71da1aff801802d55"
+
+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/cryptsetup/cryptsetup_1.7.4.bb b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb
deleted file mode 100644
index c13b764f79..0000000000
--- a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_1.7.4.bb
+++ /dev/null
@@ -1,36 +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 = "http://code.google.com/p/cryptsetup/"
-SECTION = "console"
-LICENSE = "GPL-2.0-with-OpenSSL-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32107dd283b1dfeb66c9b3e6be312326"
-
-DEPENDS = "util-linux libdevmapper popt libgcrypt"
-
-SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/v1.7/${BP}.tar.xz"
-SRC_URI[md5sum] = "058ed35c5b776032c2a036838f9e22a7"
-SRC_URI[sha256sum] = "7ccf893ef79a38fb92d61f03c17b964982119f5319cdaa85a1335b8558cca016"
-
-inherit autotools gettext pkgconfig
-
-# Use openssl because libgcrypt drops root privileges
-# if libgcrypt is linked with libcap support
-PACKAGECONFIG ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-crypto_backend=openssl,,openssl"
-PACKAGECONFIG[gcrypt] = "--with-crypto_backend=gcrypt,,libgcrypt"
-
-RRECOMMENDS_${PN} = "kernel-module-aes-generic \
- kernel-module-dm-crypt \
- kernel-module-md5 \
- kernel-module-cbc \
- kernel-module-sha256-generic \
- kernel-module-xts \
-"
-
-EXTRA_OECONF = "--enable-static"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.6.1.bb b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.6.1.bb
new file mode 100644
index 0000000000..2935221400
--- /dev/null
+++ b/meta-oe/recipes-crypto/cryptsetup/cryptsetup_2.6.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] = "410ded65a1072ab9c8e41added37b9729c087fef4d2db02bb4ef529ad6da4693"
+
+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
new file mode 100644
index 0000000000..1c2c6e21e0
--- /dev/null
+++ b/meta-oe/recipes-crypto/fsverity-utils/fsverity-utils_1.5.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Userspace utilities for fs-verity"
+DESCRIPTION = "fs-verity is a Linux kernel feature that does transparent \
+on-demand integrity/authenticity verification of the contents of read-only \
+files, using a hidden Merkle tree (hash tree) associated with the file. The \
+mechanism is similar to dm-verity, but implemented at the file level rather \
+than at the block device level."
+HOMEPAGE = "https://www.kernel.org/doc/html/latest/filesystems/fsverity.html"
+SECTION = "console"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=bc974d217b525ea216a336adb73e1220"
+
+SRCREV = "20e87c13075a8e5660a8d69fd6c93d4f7c5f01a5"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/fsverity-utils.git;branch=master"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "openssl"
+
+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"
+
+do_install() {
+ oe_runmake install DESTDIR=${D}
+}
+
+PACKAGES =+ "libfsverity"
+FILES:libfsverity = "${libdir}/libfsverity*${SOLIBS}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb b/meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb
new file mode 100644
index 0000000000..3be8c76b54
--- /dev/null
+++ b/meta-oe/recipes-crypto/libkcapi/libkcapi_1.4.0.bb
@@ -0,0 +1,32 @@
+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/libmcrypt/libmcrypt_2.5.8.bb b/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
index be413a1c71..a3d09c7cbd 100644
--- a/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
+++ b/meta-oe/recipes-crypto/libmcrypt/libmcrypt_2.5.8.bb
@@ -1,6 +1,6 @@
SUMMARY = "Replacement for the old crypt() package and crypt(1) command, with extensions"
HOMEPAGE = "http://mcrypt.sourceforge.net/"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff"
DEPENDS = "libtool"
@@ -13,3 +13,18 @@ UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/mcrypt/files/Libmcrypt/"
UPSTREAM_CHECK_REGEX = "Libmcrypt/(?P<pver>\d+(\.\d+)+)/"
inherit autotools-brokensep gettext binconfig
+
+CFLAGS += "-Wno-error=implicit-int"
+
+do_configure() {
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}
+ aclocal
+ libtoolize --automake --copy --force
+ autoconf
+ autoheader
+ automake -a
+ oe_runconf
+}
+
+CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.16.bb b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.16.bb
deleted file mode 100644
index 57f38fec24..0000000000
--- a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.16.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=7f5ecba1fa793fc1f3c8f32d6cb5a37b"
-
-SRC_URI = "https://download.libsodium.org/libsodium/releases/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "37b18839e57e7a62834231395c8e962b"
-SRC_URI[sha256sum] = "eeadc7e1e1bcef09680fb4837d448fbdf57224978f865ac1c16745868fbd0533"
-
-inherit autotools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb
new file mode 100644
index 0000000000..53b3ddc26f
--- /dev/null
+++ b/meta-oe/recipes-crypto/libsodium/libsodium_1.0.18.bb
@@ -0,0 +1,13 @@
+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/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
new file mode 100644
index 0000000000..5479007d92
--- /dev/null
+++ b/meta-oe/recipes-crypto/libtomcrypt/libtomcrypt_1.18.2.bb
@@ -0,0 +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"
+
+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 install
+}
diff --git a/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb b/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb
deleted file mode 100644
index db71bd03b7..0000000000
--- a/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.11.bb
+++ /dev/null
@@ -1,29 +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 = "http://www.opensc-project.org/pkcs11-helper/"
-SECTION = "Development/Libraries"
-
-LICENSE = "GPLv2 & BSD"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=4948810631bcac142af53d32df5b6ee1 \
- file://COPYING.GPL;md5=8a71d0475d08eee76d8b6d0c6dbec543 \
- file://COPYING.BSD;md5=f79f90ea7a106796af80b5d05f1f8da1 \
-"
-SRC_URI = "git://github.com/OpenSC/${BPN}.git"
-SRC_URI[md5sum] = "9f62af9f475901b89355266141306673"
-SRC_URI[sha256sum] = "494ec59c93e7c56c528f335d9353849e2e7c94a6b1b41c89604694e738113386"
-
-S = "${WORKDIR}/git"
-SRCREV = "e7adf8f35be232a4f04c53b4ac409be52792093e"
-
-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.29.0.bb b/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.29.0.bb
new file mode 100644
index 0000000000..d17ac1e7e1
--- /dev/null
+++ b/meta-oe/recipes-crypto/pkcs11-helper/pkcs11-helper_1.29.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 = "f23911037d9790a3f3a3447a78d31a6362358e21"
+PV .= "+1.30.0+git${SRCPV}"
+
+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-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch b/meta-oe/recipes-dbs/influxdb/influxdb/0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch
new file mode 100644
index 0000000000..e31c7be1ec
--- /dev/null
+++ b/meta-oe/recipes-dbs/influxdb/influxdb/0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch
@@ -0,0 +1,39 @@
+From 4ca405e9763fd0ba747ef00edd30648b66992fbb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Nov 2021 15:14:39 -0800
+Subject: [PATCH] Use v2.1.2 xxhash to fix build with go 1.17
+
+Fixes
+| # github.com/cespare/xxhash
+| asm: xxhash_amd64.s:120: when dynamic linking, R15 is clobbered by a global variable access and is used here: 000
+92 (/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux/influxdb/1.8.10-r0/build/pkg/mod/github.com/cespare/xxhash@
+v1.1.0/xxhash_amd64.s:120) ADDQ R15, AX
+| asm: assembly failed
+
+Upstream-Status: Backport [https://github.com/cespare/xxhash/commit/e7a6b52374f7e2abfb8abb27249d53a1997b09a7]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ go.mod | 3 ++-
+ go.sum | 2 ++
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+--- a/go.mod
++++ b/go.mod
+@@ -55,3 +55,5 @@ require (
+ gonum.org/v1/gonum v0.6.0 // indirect
+ google.golang.org/grpc v1.26.0
+ )
++
++replace github.com/cespare/xxhash => github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56
+--- a/go.sum
++++ b/go.sum
+@@ -188,6 +188,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dA
+ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
+ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
++github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56 h1:hCQ0jTkNInQ7PpNeGlSV9s+QMi6nUyyMuz37Bg3TduE=
++github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+ github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
+ github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
+ github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
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
new file mode 100644
index 0000000000..b05fd3666b
--- /dev/null
+++ b/meta-oe/recipes-dbs/influxdb/influxdb/0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch
@@ -0,0 +1,31 @@
+From f3713628fac72e45223013dcf8e37ac65d17d886 Mon Sep 17 00:00:00 2001
+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: Inappropriate [OE-Specific needed on mips]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ go.mod | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/go.mod
++++ b/go.mod
+@@ -56,4 +56,5 @@ require (
+ google.golang.org/grpc v1.26.0
+ )
+
++replace github.com/pkg/term => github.com/kraj/term v0.0.0-20210111231523-7c42fcb0e627
+ replace github.com/cespare/xxhash => github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56
+--- a/go.sum
++++ b/go.sum
+@@ -188,6 +188,8 @@ github.com/kr/pretty v0.1.0/go.mod h1:dA
+ github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
+ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
+ github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
++github.com/kraj/term v0.0.0-20210111231523-7c42fcb0e627 h1:3/XXm86KqrOZEJvEmFlzl3NTFA99n5Pd/cSXl60LmuA=
++github.com/kraj/term v0.0.0-20210111231523-7c42fcb0e627/go.mod h1:BYR4E+NOQrH+NhXE71KuBNmyR1lQ+yDvP+O3IIHO5bM=
+ github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56 h1:hCQ0jTkNInQ7PpNeGlSV9s+QMi6nUyyMuz37Bg3TduE=
+ github.com/kraj/xxhash v1.1.1-0.20211201014032-8254a11eab56/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+ github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb/influxdb b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb
new file mode 100755
index 0000000000..ffb29c3ae6
--- /dev/null
+++ b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb
@@ -0,0 +1,235 @@
+#!/bin/bash
+### BEGIN INIT INFO
+# Provides: influxd
+# Required-Start: $all
+# Required-Stop: $remote_fs $syslog
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Start the InfluxDB process
+### END INIT INFO
+set -x
+# If you modify this, please make sure to also edit influxdb.service
+
+# Command-line options that can be set in /etc/default/influxdb. These will override
+# any config file values.
+DEFAULT=/etc/default/influxdb
+
+# Daemon options
+INFLUXD_OPTS=
+
+# Process name ( For display )
+NAME=influxdb
+
+# User and group
+USER=influxdb
+GROUP=influxdb
+
+# Check for sudo or root privileges before continuing
+if [ "$UID" != "0" ]; then
+ echo "You must be root to run this script"
+ exit 1
+fi
+
+# Daemon name, where is the actual executable If the daemon is not
+# there, then exit.
+DAEMON=/usr/bin/influxd
+if [ ! -x $DAEMON ]; then
+ echo "Executable $DAEMON does not exist!"
+ exit 5
+fi
+
+# Configuration file
+CONFIG=/etc/influxdb/influxdb.conf
+
+# PID file for the daemon
+PIDFILE=/var/run/influxdb/influxd.pid
+PIDDIR=`dirname $PIDFILE`
+if [ ! -d "$PIDDIR" ]; then
+ mkdir -p $PIDDIR
+ chown $USER:$GROUP $PIDDIR
+fi
+
+# Max open files
+OPEN_FILE_LIMIT=65536
+
+if [ -r /lib/lsb/init-functions ]; then
+ source /lib/lsb/init-functions
+fi
+
+# Logging
+if [ -z "$STDOUT" ]; then
+ STDOUT=/var/log/influxdb/influxd.log
+fi
+
+if [ ! -f "$STDOUT" ]; then
+ mkdir -p $(dirname $STDOUT)
+fi
+
+if [ -z "$STDERR" ]; then
+ STDERR=/var/log/influxdb/influxd.log
+fi
+
+if [ ! -f "$STDERR" ]; then
+ mkdir -p $(dirname $STDERR)
+fi
+
+# Override init script variables with DEFAULT values
+if [ -r $DEFAULT ]; then
+ source $DEFAULT
+fi
+
+function log_failure_msg() {
+ echo "$@" "[ FAILED ]"
+}
+
+function log_success_msg() {
+ echo "$@" "[ OK ]"
+}
+
+function start() {
+ # Check if config file exist
+ if [ ! -r $CONFIG ]; then
+ log_failure_msg "config file $CONFIG doesn't exist (or you don't have permission to view)"
+ exit 4
+ fi
+
+ # Check that the PID file exists, and check the actual status of process
+ if [ -f $PIDFILE ]; then
+ PID="$(cat $PIDFILE)"
+ if kill -0 "$PID" &>/dev/null; then
+ # Process is already up
+ log_success_msg "$NAME process is already running"
+ return 0
+ fi
+ else
+ su -s /bin/sh -c "touch $PIDFILE" $USER &>/dev/null
+ if [ $? -ne 0 ]; then
+ log_failure_msg "$PIDFILE not writable, check permissions"
+ exit 5
+ fi
+ fi
+
+ # Bump the file limits, before launching the daemon. These will
+ # carry over to launched processes.
+ ulimit -n $OPEN_FILE_LIMIT
+ if [ $? -ne 0 ]; then
+ log_failure_msg "Unable to set ulimit to $OPEN_FILE_LIMIT"
+ exit 1
+ fi
+
+ # Launch process
+ echo "Starting $NAME..."
+ if command -v start-stop-daemon &>/dev/null; then
+ start-stop-daemon \
+ --background \
+ --chuid $USER:$GROUP \
+ --start \
+ --quiet \
+ --pidfile $PIDFILE \
+ --exec $DAEMON \
+ -- \
+ -config $CONFIG \
+ $INFLUXD_OPTS >>$STDOUT 2>>$STDERR
+ else
+ local CMD="$DAEMON -config $CONFIG $INFLUXD_OPTS >>$STDOUT 2>>$STDERR &"
+ su -s /bin/sh -c "$CMD" $USER
+ fi
+
+ # Sleep to verify process is still up
+ sleep 1
+ echo $(pidof influxd) > $PIDFILE
+ if [ -f $PIDFILE ]; then
+ # PIDFILE exists
+ PID="$(cat $PIDFILE)"
+ if kill -0 "$PID" &>/dev/null; then
+ # PID up, service running
+ log_success_msg "$NAME process was started"
+ return 0
+ fi
+ fi
+ log_failure_msg "$NAME process was unable to start"
+ exit 1
+}
+
+function stop() {
+ # Stop the daemon.
+ if [ -f $PIDFILE ]; then
+ local PID="$(cat $PIDFILE)"
+ if kill -0 $PID &>/dev/null; then
+ echo "Stopping $NAME..."
+ # Process still up, send SIGTERM and remove PIDFILE
+ kill -s TERM $PID &>/dev/null && rm -f "$PIDFILE" &>/dev/null
+ n=0
+ while true; do
+ # Enter loop to ensure process is stopped
+ kill -0 $PID &>/dev/null
+ if [ "$?" != "0" ]; then
+ # Process stopped, break from loop
+ log_success_msg "$NAME process was stopped"
+ return 0
+ fi
+
+ # Process still up after signal, sleep and wait
+ sleep 1
+ n=$(expr $n + 1)
+ if [ $n -eq 30 ]; then
+ # After 30 seconds, send SIGKILL
+ echo "Timeout exceeded, sending SIGKILL..."
+ kill -s KILL $PID &>/dev/null
+ elif [ $? -eq 40 ]; then
+ # After 40 seconds, error out
+ log_failure_msg "could not stop $NAME process"
+ exit 1
+ fi
+ done
+ fi
+ fi
+ log_success_msg "$NAME process already stopped"
+}
+
+function restart() {
+ # Restart the daemon.
+ stop
+ start
+}
+
+function status() {
+ # Check the status of the process.
+ if [ -f $PIDFILE ]; then
+ PID="$(cat $PIDFILE)"
+ if kill -0 $PID &>/dev/null; then
+ log_success_msg "$NAME process is running"
+ exit 0
+ fi
+ fi
+ log_failure_msg "$NAME process is not running"
+ exit 1
+}
+
+case $1 in
+ start)
+ start
+ ;;
+
+ stop)
+ stop
+ ;;
+
+ restart)
+ restart
+ ;;
+
+ status)
+ status
+ ;;
+
+ version)
+ $DAEMON version
+ ;;
+
+ *)
+ # For invalid arguments, print the usage message.
+ echo "Usage: $0 {start|stop|restart|status|version}"
+ exit 2
+ ;;
+esac
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf
new file mode 100644
index 0000000000..21c0926f2d
--- /dev/null
+++ b/meta-oe/recipes-dbs/influxdb/influxdb/influxdb.conf
@@ -0,0 +1,586 @@
+### Welcome to the InfluxDB configuration file.
+
+# The values in this file override the default values used by the system if
+# a config option is not specified. The commented out lines are the configuration
+# field and the default value used. Uncommenting a line and changing the value
+# will change the value used at runtime when the process is restarted.
+
+# Once every 24 hours InfluxDB will report usage data to usage.influxdata.com
+# The data includes a random ID, os, arch, version, the number of series and other
+# usage data. No data from user databases is ever transmitted.
+# Change this option to true to disable reporting.
+# reporting-disabled = false
+
+# Bind address to use for the RPC service for backup and restore.
+# bind-address = "127.0.0.1:8088"
+
+###
+### [meta]
+###
+### Controls the parameters for the Raft consensus group that stores metadata
+### about the InfluxDB cluster.
+###
+
+[meta]
+ # Where the metadata/raft database is stored
+ dir = "/var/lib/influxdb/meta"
+
+ # Automatically create a default retention policy when creating a database.
+ # retention-autocreate = true
+
+ # If log messages are printed for the meta service
+ # logging-enabled = true
+
+###
+### [data]
+###
+### Controls where the actual shard data for InfluxDB lives and how it is
+### flushed from the WAL. "dir" may need to be changed to a suitable place
+### for your system, but the WAL settings are an advanced configuration. The
+### defaults should work for most systems.
+###
+
+[data]
+ # The directory where the TSM storage engine stores TSM files.
+ dir = "/var/lib/influxdb/data"
+
+ # The directory where the TSM storage engine stores WAL files.
+ wal-dir = "/var/lib/influxdb/wal"
+
+ # The amount of time that a write will wait before fsyncing. A duration
+ # greater than 0 can be used to batch up multiple fsync calls. This is useful for slower
+ # disks or when WAL write contention is seen. A value of 0s fsyncs every write to the WAL.
+ # Values in the range of 0-100ms are recommended for non-SSD disks.
+ # wal-fsync-delay = "0s"
+
+
+ # The type of shard index to use for new shards. The default is an in-memory index that is
+ # recreated at startup. A value of "tsi1" will use a disk based index that supports higher
+ # cardinality datasets.
+ # index-version = "inmem"
+
+ # Trace logging provides more verbose output around the tsm engine. Turning
+ # this on can provide more useful output for debugging tsm engine issues.
+ # trace-logging-enabled = false
+
+ # Whether queries should be logged before execution. Very useful for troubleshooting, but will
+ # log any sensitive data contained within a query.
+ # query-log-enabled = true
+
+ # Validates incoming writes to ensure keys only have valid unicode characters.
+ # This setting will incur a small overhead because every key must be checked.
+ # validate-keys = false
+
+ # Settings for the TSM engine
+
+ # CacheMaxMemorySize is the maximum size a shard's cache can
+ # reach before it starts rejecting writes.
+ # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
+ # Values without a size suffix are in bytes.
+ # cache-max-memory-size = "1g"
+
+ # CacheSnapshotMemorySize is the size at which the engine will
+ # snapshot the cache and write it to a TSM file, freeing up memory
+ # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
+ # Values without a size suffix are in bytes.
+ # cache-snapshot-memory-size = "25m"
+
+ # CacheSnapshotWriteColdDuration is the length of time at
+ # which the engine will snapshot the cache and write it to
+ # a new TSM file if the shard hasn't received writes or deletes
+ # cache-snapshot-write-cold-duration = "10m"
+
+ # CompactFullWriteColdDuration is the duration at which the engine
+ # will compact all TSM files in a shard if it hasn't received a
+ # write or delete
+ # compact-full-write-cold-duration = "4h"
+
+ # The maximum number of concurrent full and level compactions that can run at one time. A
+ # value of 0 results in 50% of runtime.GOMAXPROCS(0) used at runtime. Any number greater
+ # than 0 limits compactions to that value. This setting does not apply
+ # to cache snapshotting.
+ # max-concurrent-compactions = 0
+
+ # CompactThroughput is the rate limit in bytes per second that we
+ # will allow TSM compactions to write to disk. Note that short bursts are allowed
+ # to happen at a possibly larger value, set by CompactThroughputBurst
+ # compact-throughput = "48m"
+
+ # CompactThroughputBurst is the rate limit in bytes per second that we
+ # will allow TSM compactions to write to disk.
+ # compact-throughput-burst = "48m"
+
+ # If true, then the mmap advise value MADV_WILLNEED will be provided to the kernel with respect to
+ # TSM files. This setting has been found to be problematic on some kernels, and defaults to off.
+ # It might help users who have slow disks in some cases.
+ # tsm-use-madv-willneed = false
+
+ # Settings for the inmem index
+
+ # The maximum series allowed per database before writes are dropped. This limit can prevent
+ # high cardinality issues at the database level. This limit can be disabled by setting it to
+ # 0.
+ # max-series-per-database = 1000000
+
+ # The maximum number of tag values per tag that are allowed before writes are dropped. This limit
+ # can prevent high cardinality tag values from being written to a measurement. This limit can be
+ # disabled by setting it to 0.
+ # max-values-per-tag = 100000
+
+ # Settings for the tsi1 index
+
+ # The threshold, in bytes, when an index write-ahead log file will compact
+ # into an index file. Lower sizes will cause log files to be compacted more
+ # quickly and result in lower heap usage at the expense of write throughput.
+ # Higher sizes will be compacted less frequently, store more series in-memory,
+ # and provide higher write throughput.
+ # Valid size suffixes are k, m, or g (case insensitive, 1024 = 1k).
+ # Values without a size suffix are in bytes.
+ # max-index-log-file-size = "1m"
+
+ # The size of the internal cache used in the TSI index to store previously
+ # calculated series results. Cached results will be returned quickly from the cache rather
+ # than needing to be recalculated when a subsequent query with a matching tag key/value
+ # predicate is executed. Setting this value to 0 will disable the cache, which may
+ # lead to query performance issues.
+ # This value should only be increased if it is known that the set of regularly used
+ # tag key/value predicates across all measurements for a database is larger than 100. An
+ # increase in cache size may lead to an increase in heap usage.
+ series-id-set-cache-size = 100
+
+###
+### [coordinator]
+###
+### Controls the clustering service configuration.
+###
+
+[coordinator]
+ # The default time a write request will wait until a "timeout" error is returned to the caller.
+ # write-timeout = "10s"
+
+ # The maximum number of concurrent queries allowed to be executing at one time. If a query is
+ # executed and exceeds this limit, an error is returned to the caller. This limit can be disabled
+ # by setting it to 0.
+ # max-concurrent-queries = 0
+
+ # The maximum time a query will is allowed to execute before being killed by the system. This limit
+ # can help prevent run away queries. Setting the value to 0 disables the limit.
+ # query-timeout = "0s"
+
+ # The time threshold when a query will be logged as a slow query. This limit can be set to help
+ # discover slow or resource intensive queries. Setting the value to 0 disables the slow query logging.
+ # log-queries-after = "0s"
+
+ # The maximum number of points a SELECT can process. A value of 0 will make
+ # the maximum point count unlimited. This will only be checked every second so queries will not
+ # be aborted immediately when hitting the limit.
+ # max-select-point = 0
+
+ # The maximum number of series a SELECT can run. A value of 0 will make the maximum series
+ # count unlimited.
+ # max-select-series = 0
+
+ # The maximum number of group by time bucket a SELECT can create. A value of zero will max the maximum
+ # number of buckets unlimited.
+ # max-select-buckets = 0
+
+###
+### [retention]
+###
+### Controls the enforcement of retention policies for evicting old data.
+###
+
+[retention]
+ # Determines whether retention policy enforcement enabled.
+ # enabled = true
+
+ # The interval of time when retention policy enforcement checks run.
+ # check-interval = "30m"
+
+###
+### [shard-precreation]
+###
+### Controls the precreation of shards, so they are available before data arrives.
+### Only shards that, after creation, will have both a start- and end-time in the
+### future, will ever be created. Shards are never precreated that would be wholly
+### or partially in the past.
+
+[shard-precreation]
+ # Determines whether shard pre-creation service is enabled.
+ # enabled = true
+
+ # The interval of time when the check to pre-create new shards runs.
+ # check-interval = "10m"
+
+ # The default period ahead of the endtime of a shard group that its successor
+ # group is created.
+ # advance-period = "30m"
+
+###
+### Controls the system self-monitoring, statistics and diagnostics.
+###
+### The internal database for monitoring data is created automatically if
+### if it does not already exist. The target retention within this database
+### is called 'monitor' and is also created with a retention period of 7 days
+### and a replication factor of 1, if it does not exist. In all cases the
+### this retention policy is configured as the default for the database.
+
+[monitor]
+ # Whether to record statistics internally.
+ # store-enabled = true
+
+ # The destination database for recorded statistics
+ # store-database = "_internal"
+
+ # The interval at which to record statistics
+ # store-interval = "10s"
+
+###
+### [http]
+###
+### Controls how the HTTP endpoints are configured. These are the primary
+### mechanism for getting data into and out of InfluxDB.
+###
+
+[http]
+ # Determines whether HTTP endpoint is enabled.
+ # enabled = true
+
+ # Determines whether the Flux query endpoint is enabled.
+ # flux-enabled = false
+
+ # Determines whether the Flux query logging is enabled.
+ # flux-log-enabled = false
+
+ # The bind address used by the HTTP service.
+ # bind-address = ":8086"
+
+ # Determines whether user authentication is enabled over HTTP/HTTPS.
+ # auth-enabled = false
+
+ # The default realm sent back when issuing a basic auth challenge.
+ # realm = "InfluxDB"
+
+ # Determines whether HTTP request logging is enabled.
+ # log-enabled = true
+
+ # Determines whether the HTTP write request logs should be suppressed when the log is enabled.
+ # suppress-write-log = false
+
+ # When HTTP request logging is enabled, this option specifies the path where
+ # log entries should be written. If unspecified, the default is to write to stderr, which
+ # intermingles HTTP logs with internal InfluxDB logging.
+ #
+ # If influxd is unable to access the specified path, it will log an error and fall back to writing
+ # the request log to stderr.
+ # access-log-path = ""
+
+ # Filters which requests should be logged. Each filter is of the pattern NNN, NNX, or NXX where N is
+ # a number and X is a wildcard for any number. To filter all 5xx responses, use the string 5xx.
+ # If multiple filters are used, then only one has to match. The default is to have no filters which
+ # will cause every request to be printed.
+ # access-log-status-filters = []
+
+ # Determines whether detailed write logging is enabled.
+ # write-tracing = false
+
+ # Determines whether the pprof endpoint is enabled. This endpoint is used for
+ # troubleshooting and monitoring.
+ # pprof-enabled = true
+
+ # Enables authentication on pprof endpoints. Users will need admin permissions
+ # to access the pprof endpoints when this setting is enabled. This setting has
+ # no effect if either auth-enabled or pprof-enabled are set to false.
+ # pprof-auth-enabled = false
+
+ # Enables a pprof endpoint that binds to localhost:6060 immediately on startup.
+ # This is only needed to debug startup issues.
+ # debug-pprof-enabled = false
+
+ # Enables authentication on the /ping, /metrics, and deprecated /status
+ # endpoints. This setting has no effect if auth-enabled is set to false.
+ # ping-auth-enabled = false
+
+ # Determines whether HTTPS is enabled.
+ # https-enabled = false
+
+ # The SSL certificate to use when HTTPS is enabled.
+ # https-certificate = "/etc/ssl/influxdb.pem"
+
+ # Use a separate private key location.
+ # https-private-key = ""
+
+ # The JWT auth shared secret to validate requests using JSON web tokens.
+ # shared-secret = ""
+
+ # The default chunk size for result sets that should be chunked.
+ # max-row-limit = 0
+
+ # The maximum number of HTTP connections that may be open at once. New connections that
+ # would exceed this limit are dropped. Setting this value to 0 disables the limit.
+ # max-connection-limit = 0
+
+ # Enable http service over unix domain socket
+ # unix-socket-enabled = false
+
+ # The path of the unix domain socket.
+ # bind-socket = "/var/run/influxdb.sock"
+
+ # The maximum size of a client request body, in bytes. Setting this value to 0 disables the limit.
+ # max-body-size = 25000000
+
+ # The maximum number of writes processed concurrently.
+ # Setting this to 0 disables the limit.
+ # max-concurrent-write-limit = 0
+
+ # The maximum number of writes queued for processing.
+ # Setting this to 0 disables the limit.
+ # max-enqueued-write-limit = 0
+
+ # The maximum duration for a write to wait in the queue to be processed.
+ # Setting this to 0 or setting max-concurrent-write-limit to 0 disables the limit.
+ # enqueued-write-timeout = 0
+
+###
+### [logging]
+###
+### Controls how the logger emits logs to the output.
+###
+
+[logging]
+ # Determines which log encoder to use for logs. Available options
+ # are auto, logfmt, and json. auto will use a more a more user-friendly
+ # output format if the output terminal is a TTY, but the format is not as
+ # easily machine-readable. When the output is a non-TTY, auto will use
+ # logfmt.
+ # format = "auto"
+
+ # Determines which level of logs will be emitted. The available levels
+ # are error, warn, info, and debug. Logs that are equal to or above the
+ # specified level will be emitted.
+ # level = "info"
+
+ # Suppresses the logo output that is printed when the program is started.
+ # The logo is always suppressed if STDOUT is not a TTY.
+ # suppress-logo = false
+
+###
+### [subscriber]
+###
+### Controls the subscriptions, which can be used to fork a copy of all data
+### received by the InfluxDB host.
+###
+
+[subscriber]
+ # Determines whether the subscriber service is enabled.
+ # enabled = true
+
+ # The default timeout for HTTP writes to subscribers.
+ # http-timeout = "30s"
+
+ # Allows insecure HTTPS connections to subscribers. This is useful when testing with self-
+ # signed certificates.
+ # insecure-skip-verify = false
+
+ # The path to the PEM encoded CA certs file. If the empty string, the default system certs will be used
+ # ca-certs = ""
+
+ # The number of writer goroutines processing the write channel.
+ # write-concurrency = 40
+
+ # The number of in-flight writes buffered in the write channel.
+ # write-buffer-size = 1000
+
+
+###
+### [[graphite]]
+###
+### Controls one or many listeners for Graphite data.
+###
+
+[[graphite]]
+ # Determines whether the graphite endpoint is enabled.
+ # enabled = false
+ # database = "graphite"
+ # retention-policy = ""
+ # bind-address = ":2003"
+ # protocol = "tcp"
+ # consistency-level = "one"
+
+ # These next lines control how batching works. You should have this enabled
+ # otherwise you could get dropped metrics or poor performance. Batching
+ # will buffer points in memory if you have many coming in.
+
+ # Flush if this many points get buffered
+ # batch-size = 5000
+
+ # number of batches that may be pending in memory
+ # batch-pending = 10
+
+ # Flush at least this often even if we haven't hit buffer limit
+ # batch-timeout = "1s"
+
+ # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
+ # udp-read-buffer = 0
+
+ ### This string joins multiple matching 'measurement' values providing more control over the final measurement name.
+ # separator = "."
+
+ ### Default tags that will be added to all metrics. These can be overridden at the template level
+ ### or by tags extracted from metric
+ # tags = ["region=us-east", "zone=1c"]
+
+ ### Each template line requires a template pattern. It can have an optional
+ ### filter before the template and separated by spaces. It can also have optional extra
+ ### tags following the template. Multiple tags should be separated by commas and no spaces
+ ### similar to the line protocol format. There can be only one default template.
+ # templates = [
+ # "*.app env.service.resource.measurement",
+ # # Default template
+ # "server.*",
+ # ]
+
+###
+### [collectd]
+###
+### Controls one or many listeners for collectd data.
+###
+
+[[collectd]]
+ # enabled = false
+ # bind-address = ":25826"
+ # database = "collectd"
+ # retention-policy = ""
+ #
+ # The collectd service supports either scanning a directory for multiple types
+ # db files, or specifying a single db file.
+ # typesdb = "/usr/local/share/collectd"
+ #
+ # security-level = "none"
+ # auth-file = "/etc/collectd/auth_file"
+
+ # These next lines control how batching works. You should have this enabled
+ # otherwise you could get dropped metrics or poor performance. Batching
+ # will buffer points in memory if you have many coming in.
+
+ # Flush if this many points get buffered
+ # batch-size = 5000
+
+ # Number of batches that may be pending in memory
+ # batch-pending = 10
+
+ # Flush at least this often even if we haven't hit buffer limit
+ # batch-timeout = "10s"
+
+ # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
+ # read-buffer = 0
+
+ # Multi-value plugins can be handled two ways.
+ # "split" will parse and store the multi-value plugin data into separate measurements
+ # "join" will parse and store the multi-value plugin as a single multi-value measurement.
+ # "split" is the default behavior for backward compatibility with previous versions of influxdb.
+ # parse-multivalue-plugin = "split"
+###
+### [opentsdb]
+###
+### Controls one or many listeners for OpenTSDB data.
+###
+
+[[opentsdb]]
+ # enabled = false
+ # bind-address = ":4242"
+ # database = "opentsdb"
+ # retention-policy = ""
+ # consistency-level = "one"
+ # tls-enabled = false
+ # certificate= "/etc/ssl/influxdb.pem"
+
+ # Log an error for every malformed point.
+ # log-point-errors = true
+
+ # These next lines control how batching works. You should have this enabled
+ # otherwise you could get dropped metrics or poor performance. Only points
+ # metrics received over the telnet protocol undergo batching.
+
+ # Flush if this many points get buffered
+ # batch-size = 1000
+
+ # Number of batches that may be pending in memory
+ # batch-pending = 5
+
+ # Flush at least this often even if we haven't hit buffer limit
+ # batch-timeout = "1s"
+
+###
+### [[udp]]
+###
+### Controls the listeners for InfluxDB line protocol data via UDP.
+###
+
+[[udp]]
+ # enabled = false
+ # bind-address = ":8089"
+ # database = "udp"
+ # retention-policy = ""
+
+ # InfluxDB precision for timestamps on received points ("" or "n", "u", "ms", "s", "m", "h")
+ # precision = ""
+
+ # These next lines control how batching works. You should have this enabled
+ # otherwise you could get dropped metrics or poor performance. Batching
+ # will buffer points in memory if you have many coming in.
+
+ # Flush if this many points get buffered
+ # batch-size = 5000
+
+ # Number of batches that may be pending in memory
+ # batch-pending = 10
+
+ # Will flush at least this often even if we haven't hit buffer limit
+ # batch-timeout = "1s"
+
+ # UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
+ # read-buffer = 0
+
+###
+### [continuous_queries]
+###
+### Controls how continuous queries are run within InfluxDB.
+###
+
+[continuous_queries]
+ # Determines whether the continuous query service is enabled.
+ # enabled = true
+
+ # Controls whether queries are logged when executed by the CQ service.
+ # log-enabled = true
+
+ # Controls whether queries are logged to the self-monitoring data store.
+ # query-stats-enabled = false
+
+ # interval for how often continuous queries will be checked if they need to run
+ # run-interval = "1s"
+
+###
+### [tls]
+###
+### Global configuration settings for TLS in InfluxDB.
+###
+
+[tls]
+ # Determines the available set of cipher suites. See https://golang.org/pkg/crypto/tls/#pkg-constants
+ # for a list of available ciphers, which depends on the version of Go (use the query
+ # SHOW DIAGNOSTICS to see the version of Go used to build InfluxDB). If not specified, uses
+ # the default settings from Go's crypto/tls package.
+ # ciphers = [
+ # "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
+ # "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
+ # ]
+
+ # Minimum version of the tls protocol that will be negotiated. If not specified, uses the
+ # default settings from Go's crypto/tls package.
+ # min-version = "tls1.2"
+
+ # Maximum version of the tls protocol that will be negotiated. If not specified, uses the
+ # default settings from Go's crypto/tls package.
+ # max-version = "tls1.3"
diff --git a/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb b/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
new file mode 100644
index 0000000000..50995c09b6
--- /dev/null
+++ b/meta-oe/recipes-dbs/influxdb/influxdb_1.8.10.bb
@@ -0,0 +1,70 @@
+DESCRIPTION = "InfluxDB is a time series database designed to handle high write and query loads."
+HOMEPAGE = "https://www.influxdata.com/products/influxdb-overview/"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=f39a8d10930fb37bd59adabb3b9d0bd6"
+
+RDEPENDS:${PN} = "bash"
+RDEPENDS:${PN}-dev = "bash"
+
+GO_IMPORT = "github.com/influxdata/influxdb"
+
+GO_INSTALL = "\
+ ${GO_IMPORT}/cmd/influx \
+ ${GO_IMPORT}/cmd/influxd \
+"
+
+SRC_URI = "\
+ git://${GO_IMPORT};protocol=https;branch=1.8;destsuffix=${BPN}-${PV}/src/${GO_IMPORT} \
+ file://0001-Use-v2.1.2-xxhash-to-fix-build-with-go-1.17.patch;patchdir=src/${GO_IMPORT} \
+ file://influxdb \
+ file://influxdb.conf \
+"
+
+SRC_URI:append:mipsarch = " file://0001-patch-term-module-for-mips-ispeed-ospeed-termios-abs.patch;patchdir=src/${GO_IMPORT}"
+
+SRCREV = "688e697c51fd5353725da078555adbeff0363d01"
+
+inherit go-mod pkgconfig systemd update-rc.d useradd
+
+# 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
+do_compile[network] = "1"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system -d /var/lib/influxdb -m -s /bin/nologin influxdb"
+
+do_install:prepend() {
+ rm ${B}/src/${GO_IMPORT}/build.py
+ rm ${B}/src/${GO_IMPORT}/build.sh
+ rm ${B}/src/${GO_IMPORT}/Dockerfile*
+ sed -i -e "s#usr/bin/sh#bin/sh#g" ${B}/src/${GO_IMPORT}/scripts/ci/run_perftest.sh
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/influxdb
+ install -m 0644 ${WORKDIR}/influxdb.conf ${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
+
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'sysvinit', d)}" ] ; then
+ install -d ${D}${sysconfdir}/logrotate.d
+ install -m 0644 ${S}/src/${GO_IMPORT}/scripts/logrotate ${D}${sysconfdir}/logrotate.d/influxdb
+ fi
+
+ 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
+ fi
+
+ # TODO chown
+}
+
+INITSCRIPT_PACKAGES = "${PN}"
+INITSCRIPT_NAME = "influxdb"
+INITSCRIPT_PARAMS = "defaults"
+
+SYSTEMD_SERVICE:${PN} = "influxdb.service"
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch
deleted file mode 100644
index 3135d4d5ac..0000000000
--- a/meta-oe/recipes-dbs/leveldb/leveldb/0001-Makefile-Fix-parallel-build.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c85978e77725ef233543370d24e23f853f449170 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 21 Sep 2017 17:47:02 -0700
-Subject: [PATCH] Makefile: Fix parallel build
-
-Sometimes mkdir $(SHARED_OUTDIR)/db races with compiler which is
-creating .o file in the same directory $(SHARED_OUTDIR)/db/db_bench.o
-
-Fixes error like
-
-| mkdir out-static
-| mkdir out-shared/db
-| Assembler messages:
-| Fatal error: can't create out-shared/db/db_bench.o: No such file or directory
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index f7cc7d7..51a0bcd 100644
---- a/Makefile
-+++ b/Makefile
-@@ -386,6 +386,7 @@ $(STATIC_OUTDIR)/write_batch_test:db/write_batch_test.cc $(STATIC_LIBOBJECTS) $(
- $(STATIC_OUTDIR)/memenv_test:$(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS)
- $(XCRUN) $(CXX) $(LDFLAGS) $(STATIC_OUTDIR)/helpers/memenv/memenv_test.o $(STATIC_OUTDIR)/libmemenv.a $(STATIC_OUTDIR)/libleveldb.a $(TESTHARNESS) -o $@ $(LIBS)
-
-+$(SHARED_OUTDIR)/db/db_bench.o: | $(SHARED_OUTDIR)/db
- $(SHARED_OUTDIR)/db_bench:$(SHARED_OUTDIR)/db/db_bench.o $(SHARED_LIBS) $(TESTUTIL)
- $(XCRUN) $(CXX) $(LDFLAGS) $(CXXFLAGS) $(PLATFORM_SHARED_CFLAGS) $(SHARED_OUTDIR)/db/db_bench.o $(TESTUTIL) $(SHARED_OUTDIR)/$(SHARED_LIB3) -o $@ $(LIBS)
-
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
deleted file mode 100644
index 8f93cb325b..0000000000
--- a/meta-oe/recipes-dbs/leveldb/leveldb/0001-build_detect_platform-Check-for-__SSE4_2__.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 5fd0918df2bb30e8f3edb2ee895d178edbf26f40 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 4 Sep 2017 22:38:03 -0700
-Subject: [PATCH 1/2] build_detect_platform: Check for __SSE4_2__
-
-just using -msse4.2 is not enough, especially with clang
-where it may accept -msse4.2 even during cross compiling
-for say arm, however the difference is that builtin defines
-wont be defined.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- build_detect_platform | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: git/build_detect_platform
-===================================================================
---- git.orig/build_detect_platform
-+++ git/build_detect_platform
-@@ -224,13 +224,13 @@ EOF
- rm -f $CXXOUTPUT 2>/dev/null
-
- # Test if gcc SSE 4.2 is supported
-- $CXX $CXXFLAGS -x c++ - -o $CXXOUTPUT -msse4.2 2>/dev/null <<EOF
-+ $CXX $CXXFLAGS -Werror -x c++ - -o $CXXOUTPUT -msse4.2 -dD -E 2>/dev/null <<EOF
- int main() {}
- EOF
-+ eval fgrep __SSE4_2__ $CXXOUTPUT >/dev/null 2>&1
- if [ "$?" = 0 ]; then
- PLATFORM_SSEFLAGS="-msse4.2"
- fi
--
- rm -f $CXXOUTPUT 2>/dev/null
- fi
-
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch b/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch
deleted file mode 100644
index fc708b23ad..0000000000
--- a/meta-oe/recipes-dbs/leveldb/leveldb/0002-makefile-build-SHARED_MEMENVLIB.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 1ed8cec1fcf666904bb3ebd29fc85e235b72d122 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 4 Sep 2017 22:40:49 -0700
-Subject: [PATCH 2/2] makefile: build SHARED_MEMENVLIB
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- Makefile | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index f7cc7d7..cb42278 100644
---- a/Makefile
-+++ b/Makefile
-@@ -126,12 +126,12 @@ SHARED_VERSION_MINOR = 20
- SHARED_LIB1 = libleveldb.$(PLATFORM_SHARED_EXT)
- SHARED_LIB2 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR)
- SHARED_LIB3 = $(SHARED_LIB1).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
--SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3)
-+SHARED_LIBS = $(SHARED_OUTDIR)/$(SHARED_LIB1) $(SHARED_OUTDIR)/$(SHARED_LIB2) $(SHARED_OUTDIR)/$(SHARED_LIB3) $(SHARED_MEMENVLIB)
- $(SHARED_OUTDIR)/$(SHARED_LIB1): $(SHARED_OUTDIR)/$(SHARED_LIB3)
- ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB1)
- $(SHARED_OUTDIR)/$(SHARED_LIB2): $(SHARED_OUTDIR)/$(SHARED_LIB3)
- ln -fs $(SHARED_LIB3) $(SHARED_OUTDIR)/$(SHARED_LIB2)
--SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.a
-+SHARED_MEMENVLIB = $(SHARED_OUTDIR)/libmemenv.$(PLATFORM_SHARED_EXT).$(SHARED_VERSION_MAJOR).$(SHARED_VERSION_MINOR)
- endif
-
- $(SHARED_OUTDIR)/$(SHARED_LIB3): $(SHARED_LIBOBJECTS)
-@@ -294,7 +294,7 @@ endif
-
- $(SHARED_MEMENVLIB):$(SHARED_MEMENVOBJECTS)
- rm -f $@
-- $(AR) -rs $@ $(SHARED_MEMENVOBJECTS)
-+ $(CXX) $(LDFLAGS) $(PLATFORM_SHARED_LDFLAGS)$(basename $(notdir $(SHARED_MEMENVLIB))) $(SHARED_MEMENVOBJECTS) -o $(SHARED_MEMENVLIB) $(LIBS)
-
- $(STATIC_OUTDIR)/db_bench:db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL)
- $(CXX) $(LDFLAGS) $(CXXFLAGS) db/db_bench.cc $(STATIC_LIBOBJECTS) $(TESTUTIL) -o $@ $(LIBS)
---
-2.14.1
-
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest b/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest
new file mode 100644
index 0000000000..9ae70c1284
--- /dev/null
+++ b/meta-oe/recipes-dbs/leveldb/leveldb/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+for test in *_test; do
+ if ./${test}; then
+ echo "PASS: ${test}"
+ else
+ echo "FAIL: ${test}"
+ fi
+done
+
diff --git a/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb b/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb
new file mode 100644
index 0000000000..6afc45ab7e
--- /dev/null
+++ b/meta-oe/recipes-dbs/leveldb/leveldb_1.22.bb
@@ -0,0 +1,33 @@
+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_git.bb b/meta-oe/recipes-dbs/leveldb/leveldb_git.bb
deleted file mode 100644
index 8fec89c6f1..0000000000
--- a/meta-oe/recipes-dbs/leveldb/leveldb_git.bb
+++ /dev/null
@@ -1,37 +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 = "http://leveldb.googlecode.com"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=92d1b128950b11ba8495b64938fc164d"
-
-SRCREV = "a53934a3ae1244679f812d998a4f16f2c7f309a6"
-PV = "1.20+git${SRCPV}"
-
-SRC_URI = "git://github.com/google/${BPN}.git \
- file://0001-build_detect_platform-Check-for-__SSE4_2__.patch \
- file://0002-makefile-build-SHARED_MEMENVLIB.patch \
- file://0001-Makefile-Fix-parallel-build.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit utils
-
-do_compile() {
- # do not use oe_runmake. oe_runmake pass to make compilation arguments and override
- # leveldb makefile variable CFLAGS and broke leveldb build.
- CFLAGS="${CFLAGS}" make ${PARALLEL_MAKE}|| die
-}
-
-do_install() {
- install -d ${D}${libdir} ${D}${bindir} ${D}${includedir}/leveldb
- oe_libinstall -C ${B}/out-shared libleveldb ${D}${libdir}
- oe_libinstall -C ${S}/out-static libleveldb ${D}${libdir}
- oe_libinstall -C ${S}/out-static libmemenv ${D}${libdir}
- install -m 0755 ${B}/out-shared/db_bench ${D}${bindir}
- install -m 0755 ${B}/out-static/*_test ${D}${bindir}
- install -m 644 ${S}/include/leveldb/*.h ${D}${includedir}/leveldb/
-}
-
-PACKAGES =+ "${PN}-ptest"
-FILES_${PN}-ptest = "${bindir}"
diff --git a/meta-oe/recipes-dbs/libdbi/libdbi.inc b/meta-oe/recipes-dbs/libdbi/libdbi.inc
index cea2838e36..0aba91b5db 100644
--- a/meta-oe/recipes-dbs/libdbi/libdbi.inc
+++ b/meta-oe/recipes-dbs/libdbi/libdbi.inc
@@ -4,7 +4,7 @@
DESCRIPTION = "Database Independent Abstraction Layer for C"
HOMEPAGE = "http://libdbi.sourceforge.net/"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
SECTION = "libs"
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
new file mode 100644
index 0000000000..3017bcede1
--- /dev/null
+++ b/meta-oe/recipes-dbs/lmdb/files/0001-Makefile-use-libprefix-instead-of-libdir.patch
@@ -0,0 +1,35 @@
+From 4a11d4d03ef66729d302cc122fa0c693299a7776 Mon Sep 17 00:00:00 2001
+From: Sakib Sajal <sakib.sajal@windriver.com>
+Date: Wed, 18 Aug 2021 10:49:38 -0400
+Subject: [PATCH] Makefile: use libprefix instead of libdir
+
+libdir expands to "$(exec_prefix)/lib" where "lib" is hardcoded.
+This is a problem for builds that enable MULTILIB since libraries
+are to be installed in "lib64" directory. Hence allow the directory
+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/Makefile b/Makefile
+index f254511..1ec74e6 100644
+--- a/Makefile
++++ b/Makefile
+@@ -46,11 +46,11 @@ all: $(ILIBS) $(PROGS)
+
+ install: $(ILIBS) $(IPROGS) $(IHDRS)
+ mkdir -p $(DESTDIR)$(bindir)
+- mkdir -p $(DESTDIR)$(libdir)
++ mkdir -p $(DESTDIR)$(libprefix)
+ mkdir -p $(DESTDIR)$(includedir)
+ mkdir -p $(DESTDIR)$(mandir)/man1
+ for f in $(IPROGS); do cp $$f $(DESTDIR)$(bindir); done
+- for f in $(ILIBS); do cp $$f $(DESTDIR)$(libdir); done
++ for f in $(ILIBS); do cp $$f $(DESTDIR)$(libprefix); done
+ for f in $(IHDRS); do cp $$f $(DESTDIR)$(includedir); done
+ for f in $(IDOCS); do cp $$f $(DESTDIR)$(mandir)/man1; done
+
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
new file mode 100644
index 0000000000..3dde46573f
--- /dev/null
+++ b/meta-oe/recipes-dbs/lmdb/files/0001-make-set-soname-on-liblmdb.patch
@@ -0,0 +1,24 @@
+From b4d418bf3f78748d84e3cfb110833443eef34284 Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@cold-front.org>
+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/libraries/liblmdb/Makefile b/libraries/liblmdb/Makefile
+index 1ec74e6..ea08cd6 100644
+--- a/libraries/liblmdb/Makefile
++++ b/libraries/liblmdb/Makefile
+@@ -66,7 +66,7 @@ liblmdb.a: mdb.o midl.o
+
+ liblmdb$(SOEXT): mdb.lo midl.lo
+ # $(CC) $(LDFLAGS) -pthread -shared -Wl,-Bsymbolic -o $@ mdb.o midl.o $(SOLIBS)
+- $(CC) $(LDFLAGS) -pthread -shared -o $@ mdb.lo midl.lo $(SOLIBS)
++ $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,$@ -o $@ mdb.lo midl.lo $(SOLIBS)
+
+ mdb_stat: mdb_stat.o liblmdb.a
+ mdb_copy: mdb_copy.o liblmdb.a
diff --git a/meta-oe/recipes-dbs/lmdb/files/run-ptest b/meta-oe/recipes-dbs/lmdb/files/run-ptest
new file mode 100644
index 0000000000..a6a7549b9e
--- /dev/null
+++ b/meta-oe/recipes-dbs/lmdb/files/run-ptest
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+cd tests
+
+retval=0
+for t in mtest*
+do
+ mkdir testdb
+ ./$t > /dev/null && ./mdb_stat testdb > /dev/null
+ if [ $? -ne 0 ]; then
+ echo "FAIL: $t"
+ retval=$(( ${retval} + 1))
+ else
+ echo "PASS: $t"
+ fi
+ rm -rf testdb
+done
+
+if [ $retval -eq 0 ] ; then
+ echo "PASS: lmdb"
+else
+ echo "FAIL: lmdb"
+fi
+
+exit $retval \ No newline at end of file
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/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
deleted file mode 100644
index 5da34480e7..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From fbfceebce2121831904f2f7115252dd03b413a6d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Sep 2017 18:52:53 -0700
-Subject: [PATCH] IntelRDFPMathLib20U1: Check for __DEFINED_wchar_t
-
-This is defined by musl if wchar_t is already defined
-
-avoids errors like
-
-src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h:46:15: error: typedef redefinition with different types
- ('int' vs 'unsigned int')
-typedef int wchar_t;
-
-Signed-off-by: Khem Raj <raj.khem@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/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
-index 2b3f76db86..cc80305775 100755
---- a/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
-+++ b/src/third_party/IntelRDFPMathLib20U1/LIBRARY/src/bid_functions.h
-@@ -42,7 +42,7 @@
- #include <ctype.h>
-
- // Fix system header issue on Sun solaris and define required type by ourselves
--#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__)
-+#if !defined(_WCHAR_T) && !defined(_WCHAR_T_DEFINED) && !defined(__QNX__) && !defined(__DEFINED_wchar_t)
- typedef int wchar_t;
- #endif
-
---
-2.14.1
-
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
deleted file mode 100644
index aa01e954f7..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Tell-scons-to-use-build-settings-from-environment-va.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 53368d3f4adc09dd84234a9af31771bcd8ca2757 Mon Sep 17 00:00:00 2001
-From: Sven Ebenfeld <sven.ebenfeld@gmail.com>
-Date: Fri, 15 Jan 2016 22:41:28 +0100
-Subject: [PATCH] Tell scons to use build settings from environment variables
-
-Signed-off-by: Sven Ebenfeld <sven.ebenfeld@gmail.com>
----
- SConstruct | 8 ++++++--
- src/mongo/util/SConscript | 2 ++
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
-Index: git/SConstruct
-===================================================================
---- git.orig/SConstruct
-+++ git/SConstruct
-@@ -548,6 +548,7 @@ def variable_arch_converter(val):
- 'amd64': 'x86_64',
- 'emt64': 'x86_64',
- 'x86': 'i386',
-+ 'aarch64': 'arm64',
- }
- val = val.lower()
-
-@@ -627,7 +628,8 @@ env_vars.Add(
- )
-
- env_vars.Add('CC',
-- help='Select the C compiler to use')
-+ help='Select the C compiler to use',
-+ default=os.getenv('CC'))
-
- env_vars.Add('CCFLAGS',
- help='Sets flags for the C and C++ compiler',
-@@ -647,7 +649,8 @@ env_vars.Add('CPPPATH',
- converter=variable_shlex_converter)
-
- env_vars.Add('CXX',
-- help='Select the C++ compiler to use')
-+ help='Select the C++ compiler to use',
-+ default=os.getenv('CXX'))
-
- env_vars.Add('CXXFLAGS',
- help='Sets flags for the C++ compiler',
-@@ -895,6 +898,7 @@ envDict = dict(BUILD_ROOT=buildDir,
- )
-
- env = Environment(variables=env_vars, **envDict)
-+env.PrependENVPath('PATH', os.getenv('PATH'))
- del envDict
-
- env.AddMethod(env_os_is_wrapper, 'TargetOSIs')
-Index: git/src/mongo/util/SConscript
-===================================================================
---- git.orig/src/mongo/util/SConscript
-+++ git/src/mongo/util/SConscript
-@@ -274,6 +274,8 @@ if env['MONGO_ALLOCATOR'] == 'tcmalloc':
- 'MONGO_HAVE_GPERFTOOLS_SIZE_CLASS_STATS'
- ]
- )
-+ if not use_system_version_of_library('valgrind'):
-+ tcmspEnv.InjectThirdPartyIncludePaths('valgrind')
-
- if not use_system_version_of_library('valgrind'):
- # Include valgrind since tcmalloc disables itself while running under valgrind
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
deleted file mode 100644
index f8c419d8a3..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 3eed8388b49d5d3cbc2db74fee1b017eb4b40d0a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 2 Sep 2017 10:06:24 -0700
-Subject: [PATCH] Use __GLIBC__ to control use of gnu_get_libc_version
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
- src/mongo/util/processinfo_linux.cpp | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/src/mongo/util/processinfo_linux.cpp b/src/mongo/util/processinfo_linux.cpp
-index 910015215e..bf8c1ffd15 100644
---- a/src/mongo/util/processinfo_linux.cpp
-+++ b/src/mongo/util/processinfo_linux.cpp
-@@ -40,7 +40,7 @@
- #include <sys/mman.h>
- #include <sys/utsname.h>
- #include <unistd.h>
--#ifdef __UCLIBC__
-+#ifndef __GLIBC__
- #include <features.h>
- #else
- #include <gnu/libc-version.h>
-@@ -451,11 +451,13 @@ double ProcessInfo::getSystemMemoryPressurePercentage() {
- }
-
- void ProcessInfo::getExtraInfo(BSONObjBuilder& info) {
-+#if defined(__GLIBC__)
- LinuxProc p(_pid);
- if (p._maj_flt <= std::numeric_limits<long long>::max())
- info.appendNumber("page_faults", static_cast<long long>(p._maj_flt));
- else
- info.appendNumber("page_faults", static_cast<double>(p._maj_flt));
-+#endif
- }
-
- /**
-@@ -491,7 +493,7 @@ void ProcessInfo::SystemInfo::collectSystemInfo() {
- stringstream ss;
- ss << "uClibc-" << __UCLIBC_MAJOR__ << "." << __UCLIBC_MINOR__ << "." << __UCLIBC_SUBLEVEL__;
- bExtra.append("libcVersion", ss.str());
--#else
-+#elif defined(__GLIBC__)
- bExtra.append("libcVersion", gnu_get_libc_version());
- #endif
- if (!verSig.empty())
---
-2.14.1
-
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
deleted file mode 100644
index 389b302c3c..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-long-long-instead-of-int64_t.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From a4951489d649c2b609cbb80f6cfb49fdcad8bd43 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 2 Sep 2017 10:03:37 -0700
-Subject: [PATCH] Use long long instead of int64_t
-
-Fixes
-error: call to member function 'appendNumber' is ambiguous
-since this function expects long long as parameter and not int64_t
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
- src/mongo/util/procparser.cpp | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-Index: git/src/mongo/util/procparser.cpp
-===================================================================
---- git.orig/src/mongo/util/procparser.cpp
-+++ git/src/mongo/util/procparser.cpp
-@@ -260,7 +260,7 @@ Status parseProcStat(const std::vector<S
-
- StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
-
-- uint64_t value;
-+ long long value;
-
- if (!parseNumberFromString(stringValue, &value).isOK()) {
- value = 0;
-@@ -272,7 +272,7 @@ Status parseProcStat(const std::vector<S
- } else {
- StringData stringValue((*partIt).begin(), (*partIt).end() - (*partIt).begin());
-
-- uint64_t value;
-+ long long value;
-
- if (!parseNumberFromString(stringValue, &value).isOK()) {
- value = 0;
-@@ -365,7 +365,7 @@ Status parseProcMemInfo(const std::vecto
-
- StringData stringValue((*partIt).begin(), (*partIt).end());
-
-- uint64_t value;
-+ long long value;
-
- if (!parseNumberFromString(stringValue, &value).isOK()) {
- value = 0;
-@@ -426,7 +426,7 @@ Status parseProcDiskStats(const std::vec
- StringData data,
- BSONObjBuilder* builder) {
- bool foundKeys = false;
-- std::vector<uint64_t> stats;
-+ std::vector<long long> stats;
- stats.reserve(kDiskFieldCount);
-
- using string_split_iterator = boost::split_iterator<StringData::const_iterator>;
-@@ -501,7 +501,7 @@ Status parseProcDiskStats(const std::vec
-
- StringData stringValue((*partIt).begin(), (*partIt).end());
-
-- uint64_t value;
-+ long long value;
-
- if (!parseNumberFromString(stringValue, &value).isOK()) {
- value = 0;
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
deleted file mode 100644
index 0334d994e4..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0001-Use-strerror_r-only-on-glibc-systems.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a4dfc92ff342e59596ab64267a8d4f22f173c23b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 2 Sep 2017 12:40:41 -0700
-Subject: [PATCH 1/4] Use strerror_r only on glibc systems
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/mongo/util/log.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/mongo/util/log.cpp b/src/mongo/util/log.cpp
-index 1957eb4791..ddf3908818 100644
---- a/src/mongo/util/log.cpp
-+++ b/src/mongo/util/log.cpp
-@@ -101,7 +101,7 @@ string errnoWithDescription(int errNumber) {
- char buf[kBuflen];
- char* msg{nullptr};
-
--#if defined(__GNUC__) && defined(_GNU_SOURCE)
-+#if defined(__GNUC__) && defined(_GNU_SOURCE) && defined(__GLIBC__)
- msg = strerror_r(errNumber, buf, kBuflen);
- #elif defined(_WIN32)
-
---
-2.14.1
-
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
deleted file mode 100644
index 098306f500..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From df7ef16afcc6ab55daa686e4f15c16e3d1280337 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 2 Sep 2017 12:42:30 -0700
-Subject: [PATCH 2/4] Add a definition for the macro __ELF_NATIVE_CLASS
-
-It depends on the native arch's word size.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/mongo/util/stacktrace_posix.cpp | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/src/mongo/util/stacktrace_posix.cpp b/src/mongo/util/stacktrace_posix.cpp
-index 53ab85f56f..7c458e7ef2 100644
---- a/src/mongo/util/stacktrace_posix.cpp
-+++ b/src/mongo/util/stacktrace_posix.cpp
-@@ -37,6 +37,15 @@
- #include <string>
- #include <sys/utsname.h>
-
-+#if !defined(__GLIBC__)
-+#if defined __x86_64__ && !defined __ILP32__
-+# define __WORDSIZE 64
-+#else
-+# define __WORDSIZE 32
-+#endif
-+#define __ELF_NATIVE_CLASS __WORDSIZE
-+#endif
-+
- #include "mongo/base/init.h"
- #include "mongo/config.h"
- #include "mongo/db/jsobj.h"
---
-2.14.1
-
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
deleted file mode 100644
index dc488ad7ea..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 5759878e5d278f11a1063e8fccd1e6b7b54caadf Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 2 Aug 2017 16:25:37 -0700
-Subject: [PATCH 2/2] d_state.cpp: Add missing dependenncy on
- local_sharding_info
-
-Fixes
-| src/mongo/s/d_state.cpp:81: error: undefined reference to 'mongo::enableLocalShardingInfo(mongo::ServiceContext*, std::function<bool (mongo::OperationContext*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)>)'
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/mongo/s/SConscript | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: git/src/mongo/s/SConscript
-===================================================================
---- git.orig/src/mongo/s/SConscript
-+++ git/src/mongo/s/SConscript
-@@ -317,5 +317,6 @@ env.Library(
- "$BUILD_DIR/mongo/db/s/sharding",
- "$BUILD_DIR/mongo/executor/network_interface_factory",
- "$BUILD_DIR/mongo/s/client/shard_local",
-+ "$BUILD_DIR/mongo/s/local_sharding_info",
- ],
- )
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch b/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
deleted file mode 100644
index 1591f94c96..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/0003-Conditionalize-glibc-specific-strerror_r.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 458f80f482a201b427a1c92235804d0c3f98fd51 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 2 Sep 2017 13:01:11 -0700
-Subject: [PATCH 3/4] Conditionalize glibc specific strerror_r
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- .../asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp | 11 ++++-------
- 1 file changed, 4 insertions(+), 7 deletions(-)
-
-diff --git a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
-index 4e7badb14a..0eeae884e2 100644
---- a/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
-+++ b/src/third_party/asio-asio-1-11-0/asio/include/asio/impl/error_code.ipp
-@@ -97,17 +97,14 @@ public:
- #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
- using namespace std;
- return strerror(value);
--#elif defined(__MACH__) && defined(__APPLE__) \
-- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
-- || defined(_AIX) || defined(__hpux) || defined(__osf__) \
-- || defined(__ANDROID__)
-+#elif defined(__GLIBC__) && defined(_GNU_SOURCE)
-+ char buf[256] = "";
-+ return strerror_r(value, buf, sizeof(buf));
-+#else
- char buf[256] = "";
- using namespace std;
- strerror_r(value, buf, sizeof(buf));
- return buf;
--#else
-- char buf[256] = "";
-- return strerror_r(value, buf, sizeof(buf));
- #endif
- #endif // defined(ASIO_WINDOWS)
- }
---
-2.14.1
-
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch b/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
deleted file mode 100644
index 9046bb2f45..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/arm64-support.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Add alises for arm64 which is same as aarch64
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: git/SConstruct
-===================================================================
---- git.orig/SConstruct
-+++ git/SConstruct
-@@ -990,6 +990,7 @@ elif endian == "big":
- processor_macros = {
- 'arm' : { 'endian': 'little', 'defines': ('__arm__',) },
- 'aarch64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
-+ 'arm64' : { 'endian': 'little', 'defines': ('__arm64__', '__aarch64__')},
- 'i386' : { 'endian': 'little', 'defines': ('__i386', '_M_IX86')},
- 'ppc64le' : { 'endian': 'little', 'defines': ('__powerpc64__',)},
- 's390x' : { 'endian': 'big', 'defines': ('__s390x__',)},
-Index: git/src/third_party/IntelRDFPMathLib20U1/SConscript
-===================================================================
---- git.orig/src/third_party/IntelRDFPMathLib20U1/SConscript
-+++ git/src/third_party/IntelRDFPMathLib20U1/SConscript
-@@ -301,7 +301,7 @@ if processor == 'i386':
- elif processor == 'arm':
- cpp_defines['IA32'] = '1'
- cpp_defines['ia32'] = '1'
--elif processor == "aarch64":
-+elif processor == "aarch64" or processor == 'arm64':
- cpp_defines['efi2'] = '1'
- cpp_defines['EFI2'] = '1'
- # Using 64 bit little endian
-Index: git/src/third_party/wiredtiger/SConscript
-===================================================================
---- git.orig/src/third_party/wiredtiger/SConscript
-+++ git/src/third_party/wiredtiger/SConscript
-@@ -139,7 +139,7 @@ condition_map = {
- 'POSIX_HOST' : not env.TargetOSIs('windows'),
- 'WINDOWS_HOST' : env.TargetOSIs('windows'),
-
-- 'ARM64_HOST' : env['TARGET_ARCH'] == 'aarch64',
-+ 'ARM64_HOST' : env['TARGET_ARCH'] in ('aarch64', 'arm64'),
- 'POWERPC_HOST' : env['TARGET_ARCH'] == 'ppc64le',
- 'X86_HOST' : env['TARGET_ARCH'] == 'x86_64',
- 'ZSERIES_HOST' : env['TARGET_ARCH'] == 's390x',
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch b/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
deleted file mode 100644
index 5c5c20ce34..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb/disable-hw-crc32-on-arm64-s390x.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-imported from debian
-
-Upstream-Status: Pending
-Index: git/src/third_party/wiredtiger/SConscript
-===================================================================
---- git.orig/src/third_party/wiredtiger/SConscript
-+++ git/src/third_party/wiredtiger/SConscript
-@@ -169,7 +169,9 @@ if useSnappy:
- # If not available at runtime, we fall back to software in some cases.
- #
- # On zSeries we may disable because SLES 11 kernel doe not support the instructions.
--if not (env['TARGET_ARCH'] == 's390x' and get_option("use-s390x-crc32") == "off"):
-+# Debian: disable hardware-assisted crc32 on s390x and arm64, as at least the
-+# buildd's do not support the instructions.
-+if env['TARGET_ARCH'] not in ('s390x', 'arm64', 'aarch64'):
- env.Append(CPPDEFINES=["HAVE_CRC32_HARDWARE"])
-
- wtlib = env.Library(
-Index: git/src/third_party/wiredtiger/dist/filelist
-===================================================================
---- git.orig/src/third_party/wiredtiger/dist/filelist
-+++ git/src/third_party/wiredtiger/dist/filelist
-@@ -54,7 +54,6 @@ src/checksum/power8/crc32_wrapper.c POWE
- src/checksum/software/checksum.c
- src/checksum/x86/crc32-x86.c X86_HOST
- src/checksum/zseries/crc32-s390x.c ZSERIES_HOST
--src/checksum/zseries/crc32le-vx.sx ZSERIES_HOST
- src/config/config.c
- src/config/config_api.c
- src/config/config_check.c
-Index: git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
-===================================================================
---- git.orig/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
-+++ git/src/third_party/wiredtiger/src/checksum/zseries/crc32-s390x.c
-@@ -78,6 +78,7 @@ unsigned int __wt_crc32c_le(unsigned int
- return crc; \
- }
-
-+#if defined(HAVE_CRC32_HARDWARE)
- /* Main CRC-32 functions */
- DEFINE_CRC32_VX(__wt_crc32c_le_vx, __wt_crc32c_le_vgfm_16, __wt_crc32c_le)
-
-@@ -90,6 +91,7 @@ __wt_checksum_hw(const void *chunk, size
- {
- return (~__wt_crc32c_le_vx(0xffffffff, chunk, len));
- }
-+#endif
-
- #endif
-
diff --git a/meta-oe/recipes-dbs/mongodb/mongodb_git.bb b/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
deleted file mode 100644
index bb3ff3b403..0000000000
--- a/meta-oe/recipes-dbs/mongodb/mongodb_git.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-SUMMARY = "mongodb"
-LICENSE = "AGPL-3.0 & Apache-2.0 & Zlib"
-LIC_FILES_CHKSUM = "file://GNU-AGPL-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788 \
- file://APACHE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS = "openssl libpcre libpcap zlib python boost"
-
-inherit scons dos2unix siteinfo
-
-PV = "3.4.13+git${SRCPV}"
-SRCREV = "fbdef2ccc53e0fcc9afb570063633d992b2aae42"
-SRC_URI = "git://github.com/mongodb/mongo.git;branch=v3.4 \
- file://0001-Tell-scons-to-use-build-settings-from-environment-va.patch \
- file://0002-d_state.cpp-Add-missing-dependenncy-on-local_shardin.patch \
- file://0001-Use-long-long-instead-of-int64_t.patch \
- file://0001-Use-__GLIBC__-to-control-use-of-gnu_get_libc_version.patch \
- file://0001-Use-strerror_r-only-on-glibc-systems.patch \
- file://0002-Add-a-definition-for-the-macro-__ELF_NATIVE_CLASS.patch \
- file://0003-Conditionalize-glibc-specific-strerror_r.patch \
- file://arm64-support.patch \
- file://0001-IntelRDFPMathLib20U1-Check-for-__DEFINED_wchar_t.patch \
- file://disable-hw-crc32-on-arm64-s390x.patch \
- "
-SRC_URI_append_libc-musl ="\
- file://0004-wiredtiger-Disable-strtouq-on-musl.patch \
- "
-S = "${WORKDIR}/git"
-
-# Wiredtiger supports only 64-bit platforms
-PACKAGECONFIG_x86-64 ??= "tcmalloc wiredtiger"
-PACKAGECONFIG_aarch64 ??= "tcmalloc wiredtiger"
-PACKAGECONFIG ??= "tcmalloc"
-# gperftools compilation fails for arm below v7 because of missing support of
-# dmb operation. So we use system-allocator instead of tcmalloc
-PACKAGECONFIG_remove_armv6 = "tcmalloc"
-PACKAGECONFIG_remove_libc-musl = "tcmalloc"
-
-#std::current_exception is undefined for arm < v6
-COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
-COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
-COMPATIBLE_MACHINE_armv7a = "(!.*armv7a).*"
-COMPATIBLE_MACHINE_armv7ve = "(!.*armv7ve).*"
-COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
-COMPATIBLE_MACHINE_powerpc = "(!.*ppc).*"
-
-PACKAGECONFIG[tcmalloc] = "--use-system-tcmalloc,--allocator=system,gperftools,"
-PACKAGECONFIG[wiredtiger] = "--wiredtiger=on,--wiredtiger=off,,"
-
-EXTRA_OESCONS = "--prefix=${D}${prefix} \
- LIBPATH=${STAGING_LIBDIR} \
- LINKFLAGS='${LDFLAGS}' \
- CXXFLAGS='${CXXFLAGS}' \
- TARGET_ARCH=${TARGET_ARCH} \
- --ssl \
- --disable-warnings-as-errors \
- --use-system-pcre \
- --use-system-zlib \
- --js-engine=none \
- --nostrip \
- --endian=${@oe.utils.conditional('SITEINFO_ENDIANNESS', 'le', 'little', 'big', d)} \
- ${PACKAGECONFIG_CONFARGS} \
- mongod mongos"
-
-do_configure_prepend() {
- # tests use hex floats, not supported in plain C++
- sed -e 's|-std=c++11|-std=gnu++11|g' -i ${S}/SConstruct
-}
-scons_do_compile() {
- ${STAGING_BINDIR_NATIVE}/scons ${PARALLEL_MAKE} ${EXTRA_OESCONS} || \
- die "scons build execution failed."
-}
-
-scons_do_install() {
- ${STAGING_BINDIR_NATIVE}/scons install ${EXTRA_OESCONS}|| \
- die "scons install execution failed."
-}
diff --git a/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.4.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.4.bb
new file mode 100644
index 0000000000..578357b480
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb-native_10.11.4.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_5.5.60.bb b/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.60.bb
deleted file mode 100644
index 4ce960d7da..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb-native_5.5.60.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require mariadb.inc
-inherit native
-
-PROVIDES += "mysql5-native"
-DEPENDS = "ncurses-native zlib-native bison-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 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 3afd392af5..2fb0bd7be5 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb.inc
+++ b/meta-oe/recipes-dbs/mysql/mariadb.inc
@@ -1,25 +1,31 @@
SUMMARY = "A robust, scalable, and reliable SQL server"
HOMEPAGE = "http://mariadb.org"
SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b1becf0cfa3366e0f4d854d1d264f311"
-SRC_URI = "https://downloads.mariadb.org/f/${BP}/source/${BP}.tar.gz \
- file://fix-cmake-module-path.patch \
- file://remove-bad-path.patch \
- file://fix-mysqlclient-r-version.patch \
+SRC_URI = "https://archive.mariadb.org/${BP}/source/${BP}.tar.gz \
file://my.cnf \
file://mysqld.service \
file://install_db.service \
file://install_db \
file://mysql-systemd-start \
file://configure.cmake-fix-valgrind.patch \
- file://fix-a-building-failure.patch \
- file://change-cc-to-cc-version.patch \
- file://0001-disable-ucontext-on-musl.patch \
+ file://support-files-CMakeLists.txt-fix-do_populate_sysroot.patch \
+ file://fix-arm-atomic.patch \
+ file://0001-Fix-library-LZ4-lookup.patch \
+ file://0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch \
+ file://0001-aio_linux-Check-if-syscall-exists-before-using-it.patch \
+ 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 \
"
-SRC_URI[md5sum] = "afbadcf2980ad5aa205084dd401f1b7f"
-SRC_URI[sha256sum] = "4d3d444555416028ce39d3fb4cdc9cf6a658fcd4b0d2d0c45a73f9bf01d07929"
+SRC_URI:append:libc-musl = " file://ppc-remove-glibc-dep.patch"
+SRC_URI[sha256sum] = "ce8dac125568cc5f40da74c17212767c92d8faed81066580b526a485a591127d"
UPSTREAM_CHECK_URI = "https://github.com/MariaDB/server/releases"
@@ -27,45 +33,56 @@ S = "${WORKDIR}/mariadb-${PV}"
BINCONFIG_GLOB = "mysql_config"
-inherit cmake gettext binconfig update-rc.d useradd systemd
+inherit cmake gettext binconfig update-rc.d useradd systemd multilib_script pkgconfig
+
+MULTILIB_SCRIPTS = "${PN}-server:${bindir}/mariadbd-safe \
+ ${PN}-setupdb:${bindir}/mariadb-install-db"
INITSCRIPT_PACKAGES = "${PN}-server ${PN}-setupdb"
-INITSCRIPT_NAME_${PN}-server = "mysqld"
-INITSCRIPT_PARAMS_${PN}-server ?= "start 45 5 . stop 45 0 6 1 ."
+INITSCRIPT_NAME:${PN}-server = "mysqld"
+INITSCRIPT_PARAMS:${PN}-server ?= "start 45 5 . stop 45 0 6 1 ."
-USERADD_PACKAGES = "${PN}-server"
-USERADD_PARAM_${PN}-server = "--system --home-dir /var/mysql -g mysql --shell /bin/false mysql"
-GROUPADD_PARAM_${PN}-server = "--system mysql"
+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"
+INITSCRIPT_NAME:${PN}-setupdb = "install_db"
+INITSCRIPT_PARAMS:${PN}-setupdb ?= "defaults 44 44"
SYSTEMD_PACKAGES = "${PN}-server ${PN}-setupdb"
-SYSTEMD_SERVICE_${PN}-server = "mysqld.service"
-SYSTEMD_AUTO_ENABLE_${PN}-server ?= "disable"
-
-SYSTEMD_SERVICE_${PN}-setupdb = "install_db.service"
-SYSTEMD_AUTO_ENABLE_${PN}-setupdb ?= "enable"
-ALLOW_EMPTY_${PN}-setupdb ?= "1"
-FILES_${PN}-setupdb = "${sysconfdir}/init.d/install_db"
-
+SYSTEMD_SERVICE:${PN}-server = "mysqld.service"
+SYSTEMD_AUTO_ENABLE:${PN}-server ?= "disable"
+
+SYSTEMD_SERVICE:${PN}-setupdb = "install_db.service"
+SYSTEMD_AUTO_ENABLE:${PN}-setupdb ?= "enable"
+ALLOW_EMPTY:${PN}-setupdb ?= "1"
+FILES:${PN}-setupdb = "${sysconfdir}/init.d/install_db \
+ ${bindir}/mariadb-install-db \
+ ${bindir}/my_print_defaults \
+ ${bindir}/mysql_install_db \
+ ${bindir}/mysql-systemd-start \
+ "
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} lz4 openssl"
EXTRA_OEMAKE = "'GEN_LEX_HASH=${STAGING_BINDIR_NATIVE}/gen_lex_hash'"
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} setupdb"
-PACKAGECONFIG_class-native = ""
+PACKAGECONFIG:class-native = ""
PACKAGECONFIG[pam] = ",-DWITHOUT_AUTH_PAM=TRUE,libpam"
PACKAGECONFIG[valgrind] = "-DWITH_VALGRIND=TRUE,-DWITH_VALGRIND=FALSE,valgrind"
-PACKAGECONFIG[libedit] = "-DLIBEDIT_INTERFACE=TRUE,-DLIBEDIT_INTERFACE=FALSE,libedit"
PACKAGECONFIG[krb5] = ", ,krb5"
-PACKAGECONFIG[setupdb] = ", ,,${PN}-setupdb"
+PACKAGECONFIG[lz4] = ", ,lz4"
+PACKAGECONFIG[openssl] = "-DWITH_SSL='system',-DWITH_SSL='bundled',openssl"
# MariaDB doesn't link properly with gold
# https://mariadb.atlassian.net/browse/MDEV-5982
TARGET_CFLAGS += "-fuse-ld=bfd"
+LDFLAGS += " -pthread"
BUILD_CFLAGS += "-fuse-ld=bfd"
BUILD_CXXFLAGS += "-fuse-ld=bfd"
+LDFLAGS:x86:toolchain-clang = "-latomic"
+
EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
-DWITH_JEMALLOC=no \
-DWITHOUT_TOKUDB=TRUE \
@@ -74,6 +91,7 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
-DNROFF=FALSE \
-DENABLE_DTRACE=FALSE \
-DWITH_PIC=ON \
+ -DWITH_PCRE=system \
-DINSTALL_LAYOUT=RPM \
-DINSTALL_DOCDIR:PATH=${datadir}/doc/${BPN} \
-DINSTALL_LIBDIR:PATH=${baselib} \
@@ -81,16 +99,23 @@ EXTRA_OECMAKE = "-DWITH_EMBEDDED_SERVER=ON \
-DINSTALL_SYSCONFDIR:PATH=${sysconfdir} \
-DMYSQL_DATADIR:PATH=/var/mysql \
-DCAT_EXECUTABLE=`which cat` \
+ -DSTACK_DIRECTION=1 \
-DCMAKE_AR:FILEPATH=${AR}"
+
# With Ninja it fails with:
# make: *** No rule to make target `install'. Stop.
OECMAKE_GENERATOR = "Unix Makefiles"
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
+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() {
+do_configure:append() {
# handle distros with different values of ${libexecdir}
libexecdir2=`echo ${libexecdir} | sed -e 's+/usr/++g'`
sed -i -e "s:/libexec:/$libexecdir2:g" ${S}/scripts/mysql_install_db.sh
@@ -98,19 +123,19 @@ do_configure_append() {
sed -i -e "s:/libexec:/$libexecdir2:g" ${S}/scripts/mysqld_safe.sh
}
-do_generate_toolchain_file_append_class-native () {
+do_generate_toolchain_file:append:class-native () {
# If these are set cmake will assume we're cross-compiling, which will
# result in certain things we want being disabled
sed -i "/set( CMAKE_SYSTEM_NAME/d" ${WORKDIR}/toolchain.cmake
sed -i "/set( CMAKE_SYSTEM_PROCESSOR/d" ${WORKDIR}/toolchain.cmake
}
-do_compile_prepend_class-target () {
+
+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
@@ -120,6 +145,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"
@@ -148,151 +174,186 @@ do_install() {
sed -i -e 's,@BINDIR@,${bindir},g' -e 's,@PREFIX@,${prefix},g' ${D}${systemd_unitdir}/system/mysqld.service \
${D}${systemd_unitdir}/system/install_db.service
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "f /var/log/mysqld.err 0640 mysql mysql -" \
- > ${D}${sysconfdir}/tmpfiles.d/99-mysqld.conf
- fi
install -d ${D}${bindir}
install -m 755 ${WORKDIR}/mysql-systemd-start ${D}${bindir}
install -d ${D}${datadir}/doc/${PN}
if [ -f ${D}${datadir}/doc/README ]; then
mv ${D}${datadir}/doc/README ${D}${datadir}/doc/${PN}/
fi
+
+ # mini-benchmark used for Gitlab-CI to run on every commit to catch
+ # if there are severe performance regressions.
+ # remove it to avoid introducing bash dependency
+ if [ -f ${D}${datadir}/mysql/mini-benchmark ]; then
+ rm -rf ${D}${datadir}/mysql/mini-benchmark
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
+ pam_so=$(find ${D} -name pam_user_map.so)
+ if [ x"${pam_so}" != x ]; then
+ pam_dir=$(dirname ${pam_so})
+ mv ${pam_dir} ${D}/${libdir}
+ rmdir --ignore-fail-on-non-empty ${pam_dir%security}
+ fi
+ fi
}
-PACKAGES = "${PN}-dbg ${PN} \
- libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-staticdev libmysqlclient-r-dbg \
- libmysqlclient libmysqlclient-dev libmysqlclient-staticdev libmysqlclient-dbg \
- libmysqld libmysqld-dev ${PN}-client ${PN}-server ${PN}-setupdb ${PN}-leftovers"
-CONFFILES_${PN}-server += "${sysconfdir}/my.cnf ${sysconfdir}/my.cnf.d/server.cnf"
-CONFFILES_${PN}-client += "${sysconfdir}/my.cnf.d/mysql-clients.cnf"
-CONFFILES_libmysqlclient += "${sysconfdir}/my.cnf.d/client.cnf"
+PACKAGES = "${PN}-dbg ${PN}-setupdb ${PN} \
+ libmysqlclient-r libmysqlclient-r-dev libmysqlclient-r-staticdev \
+ libmysqlclient libmysqlclient-dev libmysqlclient-staticdev \
+ libmysqld libmysqld-dev ${PN}-client ${PN}-server ${PN}-leftovers"
+CONFFILES:${PN}-server += "${sysconfdir}/my.cnf ${sysconfdir}/my.cnf.d/server.cnf"
+CONFFILES:${PN}-client += "${sysconfdir}/my.cnf.d/mysql-clients.cnf"
+CONFFILES:libmysqlclient += "${sysconfdir}/my.cnf.d/client.cnf"
-FILES_${PN} = " "
-RDEPENDS_${PN} = "${PN}-client ${PN}-server"
-ALLOW_EMPTY_${PN} = "1"
+RPROVIDES:${PN}-dbg += "libmysqlclient-r-dbg libmysqlclient-dbg"
-RDEPENDS_${PN}-client = "perl perl-module-getopt-long perl-module-file-temp \
+FILES:${PN} = " "
+RDEPENDS:${PN} = "${PN}-client ${PN}-server"
+ALLOW_EMPTY:${PN} = "1"
+
+RDEPENDS:${PN}-client = "perl perl-module-getopt-long perl-module-file-temp \
perl-module-fcntl perl-module-sys-hostname perl-module-ipc-open3 \
perl-module-exporter"
-RDEPENDS_${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \
+RDEPENDS:${PN}-server = "perl perl-module-getopt-long perl-module-data-dumper \
perl-module-file-basename perl-module-file-path perl-module-sys-hostname \
perl-module-file-copy perl-module-file-temp perl-module-posix \
- ${PN}-client libdbi-perl libdbd-mysql-perl"
-RDEPENDS_${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \
+ ${PN}-client ${PN}-setupdb libdbi-perl libdbd-mysql-perl lzo"
+RDEPENDS:${PN}-leftovers = "perl perl-module-cwd perl-module-benchmark perl-module-getopt-long \
perl-module-posix perl-module-data-dumper perl-module-sigtrap perl-module-threads \
perl-module-threads-shared perl-module-io-socket perl-module-sys-hostname perl-module-file-copy \
perl-module-file-spec perl-module-file-find perl-module-file-basename perl-module-file-path \
perl-module-constant perl-module-lib perl-module-file-temp perl-module-file-spec-functions \
- perl-module-io-socket-inet perl-module-io-select"
-RDEPENDS_${PN}-setupdb = "coreutils"
+ perl-module-io-socket-inet perl-module-io-select bash"
+RDEPENDS:${PN}-setupdb = "coreutils"
# Allow old code to link to the backward compatible library
-RDEPENDS_libmysqlclient-dev = "libmysqlclient-r-dev"
+RDEPENDS:libmysqlclient-dev = "libmysqlclient-r-dev"
+
+PACKAGE_PREPROCESS_FUNCS += "src_package_preprocess"
+src_package_preprocess () {
+ # Trim build paths from comments in generated sources to ensure reproducibility
+ sed -i -e "s,${S}/sql/,,g" \
+ -e "s,${B}/sql/,,g" \
+ ${B}/sql/yy_oracle.hh \
+ ${B}/sql/yy_mariadb.cc \
+ ${B}/sql/yy_mariadb.hh \
+ ${B}/sql/yy_oracle.cc
+}
-FILES_libmysqlclient = "\
+FILES:libmysqlclient = "\
${libdir}/libmysqlclient.so.* \
+ ${libdir}/libmariadb.so.* \
${sysconfdir}/my.cnf.d/client.cnf"
-FILES_libmysqlclient-dev = " \
+FILES:libmysqlclient-dev = " \
${includedir}/mysql/ \
${libdir}/libmysqlclient.so \
+ ${libdir}/libmariadb.so \
${sysconfdir}/aclocal \
${bindir}/mysql_config"
-FILES_libmysqlclient-staticdev = "\
+FILES:libmysqlclient-staticdev = "\
${libdir}/*.a"
-FILES_libmysqlclient-dbg = "${libdir}/plugin/.debug/ \
- ${datadir}/mysql-test/lib/My/SafeProcess/.debug/my_safe_process"
# Avoid warnings about ha_xtradb.so.0.0.0 and ha_innodb_plugin.so.0.0.0
# which are intentionally non-PIC on 32-bit x86 (see e.g.
# storage/xtradb/plug.in in the source)
-INSANE_SKIP_libmysqlclient_append_x86 = " textrel"
+INSANE_SKIP:libmysqlclient:append:x86 = " textrel"
-FILES_libmysqlclient-r = "${libdir}/libmysqlclient_r.so.*"
-FILES_libmysqlclient-r-dev = "\
+FILES:libmysqlclient-r = "${libdir}/libmysqlclient_r.so.*"
+FILES:libmysqlclient-r-dev = "\
${libdir}/libmysqlclient_r.so"
-FILES_libmysqlclient-r-staticdev = "${libdir}/libmysqlclient_r.a"
-FILES_libmysqlclient-r-dbg = "${libdir}/plugin/.debuglibmysqlclient_r.so.*"
+FILES:libmysqlclient-r-staticdev = "${libdir}/libmysqlclient_r.a"
-FILES_libmysqld = "\
- ${libdir}/libmysqld.so.*"
-FILES_libmysqld-dev = "\
- ${libdir}/libmysqld.so"
+FILES:libmysqld = "\
+ ${libdir}/libmysqld.so.* \
+ ${libdir}/libmariadbd.so.*"
+FILES:libmysqld-dev = "\
+ ${libdir}/libmysqld.so \
+ ${libdir}/libmariadbd.so"
-FILES_${PN}-client = "\
+FILES:${PN}-client = "\
${bindir}/myisam_ftdump \
${bindir}/mysql \
+ ${bindir}/mariadb \
${bindir}/mysql_client_test \
+ ${bindir}/mariadb-client-test \
${bindir}/mysql_client_test_embedded \
+ ${bindir}/mariadb-client-test-embedded \
${bindir}/mysql_find_rows \
+ ${bindir}/mariadb-find-rows \
${bindir}/mysql_fix_extensions \
+ ${bindir}/mariadb-fix-extensions \
${bindir}/mysql_waitpid \
+ ${bindir}/mariadb-waitpid \
${bindir}/mysqlaccess \
+ ${bindir}/mariadb-access \
${bindir}/mysqladmin \
- ${bindir}/mysqlbug \
+ ${bindir}/mariadb-admin \
${bindir}/mysqlcheck \
+ ${bindir}/mariadb-check \
${bindir}/mysqldump \
+ ${bindir}/mariadb-dump \
${bindir}/mysqldumpslow \
+ ${bindir}/mariadb-dumpslow \
${bindir}/mysqlimport \
+ ${bindir}/mariadb-import \
${bindir}/mysqlshow \
+ ${bindir}/mariadb-show \
${bindir}/mysqlslap \
+ ${bindir}/mariadb-slap \
${bindir}/mysqltest_embedded \
+ ${bindir}/mariadb-test-embedded \
${libexecdir}/mysqlmanager \
${sysconfdir}/my.cnf.d/mysql-clients.cnf"
-FILES_${PN}-server = "\
- ${bindir}/comp_err \
- ${bindir}/isamchk \
- ${bindir}/isamlog \
+FILES:${PN}-server = "\
${bindir}/msql2mysql \
${bindir}/my_print_defaults \
${bindir}/myisamchk \
${bindir}/myisamlog \
${bindir}/myisampack \
${bindir}/mysql_convert_table_format \
- ${bindir}/mysql_fix_privilege_tables \
+ ${bindir}/mariadb-convert-table-format \
${bindir}/mysql_install_db \
${bindir}/mysql_secure_installation \
+ ${bindir}/mariadb-secure-installation \
${bindir}/mysql_setpermission \
+ ${bindir}/mariadb-setpermission \
${bindir}/mysql-systemd-start \
${bindir}/mysql_tzinfo_to_sql \
+ ${bindir}/mariadb-tzinfo-to-sql \
${bindir}/mysql_upgrade \
+ ${bindir}/mariadb-upgrade \
${bindir}/mysql_plugin \
- ${bindir}/mysql_zap \
+ ${bindir}/mariadb-plugin \
${bindir}/mysqlbinlog \
+ ${bindir}/mariadb-binlog \
${bindir}/mysqld_multi \
+ ${bindir}/mariadbd-multi \
+ ${bindir}/mariadbd-safe \
${bindir}/mysqld_safe \
${bindir}/mysqld_safe_helper \
+ ${bindir}/mariadbd-safe-helper \
${bindir}/mysqlhotcopy \
+ ${bindir}/mariadb-hotcopy \
${bindir}/mysqltest \
- ${bindir}/ndb_delete_all \
- ${bindir}/ndb_desc \
- ${bindir}/ndb_drop_index \
- ${bindir}/ndb_drop_table \
- ${bindir}/ndb_mgm \
- ${bindir}/ndb_restore \
- ${bindir}/ndb_select_all \
- ${bindir}/ndb_select_count \
- ${bindir}/ndb_show_tables \
- ${bindir}/ndb_waiter \
- ${bindir}/pack_isam \
+ ${bindir}/mariadb-test \
${bindir}/perror \
${bindir}/replace \
${bindir}/resolve_stack_dump \
${bindir}/resolveip \
${libexecdir}/mysqld \
${sbindir}/mysqld \
- ${sbindir}/ndb_cpcd \
- ${sbindir}/ndbd \
- ${sbindir}/ndb_mgmd \
+ ${sbindir}/mariadbd \
${libdir}/plugin/*.so \
+ ${libdir}/security/*.so \
+ ${libdir}/plugin/auth_pam_tool_dir/auth_pam_tool \
${datadir}/mysql/ \
${localstatedir}/mysql/ \
${sysconfdir}/init.d/mysqld \
${sysconfdir}/my.cnf \
${sysconfdir}/my.cnf.d/server.cnf \
+ ${sysconfdir}/security/user_map.conf \
${sysconfdir}/tmpfiles.d"
-DESCRIPTION_${PN}-leftovers = "unpackaged and probably unneeded files for ${PN}"
-FILES_${PN}-leftovers = "/"
+DESCRIPTION:${PN}-leftovers = "unpackaged and probably unneeded files for ${PN}"
+FILES:${PN}-leftovers = "/"
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..12fbd75976
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Add-missing-includes-cstdint-and-cstdio.patch
@@ -0,0 +1,70 @@
+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 +
+ 4 files changed, 4 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"
+--
+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
new file mode 100644
index 0000000000..d8671b76b0
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-Fix-library-LZ4-lookup.patch
@@ -0,0 +1,33 @@
+From f15fbdf1244ca9ce01c5507660a86d685ed88bcf Mon Sep 17 00:00:00 2001
+From: Sumit Garg <sumit.garg@linaro.org>
+Date: Mon, 21 Mar 2022 15:08:40 +0800
+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/cmake/FindLZ4.cmake b/cmake/FindLZ4.cmake
+index eebd859..094241c 100644
+--- a/cmake/FindLZ4.cmake
++++ b/cmake/FindLZ4.cmake
+@@ -1,5 +1,10 @@
+-find_path(LZ4_INCLUDE_DIRS NAMES lz4.h)
+-find_library(LZ4_LIBRARIES NAMES lz4)
++find_path(LZ4_INCLUDE_DIR
++ NAMES lz4.h
++ NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
++
++find_library(LZ4_LIBRARIES
++ NAMES lz4
++ NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH)
+
+ if(LZ4_INCLUDE_DIRS AND EXISTS "${LZ4_INCLUDE_DIRS}/lz4.h")
+ file(STRINGS "${LZ4_INCLUDE_DIRS}/lz4.h" LZ4_H REGEX "^#define LZ4_VERSION_[MR]")
+--
+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
new file mode 100644
index 0000000000..aba9b9d966
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-aio_linux-Check-if-syscall-exists-before-using-it.patch
@@ -0,0 +1,45 @@
+From 0a3222338efc108c831fbdd719a47d35f4b0adcd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Aug 2021 06:49:25 +0000
+Subject: [PATCH] aio_linux: Check if syscall exists before using it
+
+Return -ENOSYS if not implememented, fixes build on arches like RISCV32
+Fixes
+tpool/aio_linux.cc:63:20: error: '__NR_io_getevents' was not declared in this scope; did you mean 'io_getevents'?
+ 63 | int ret= syscall(__NR_io_getevents, reinterpret_cast<long>(ctx),
+ | ^~~~~~~~~~~~~~~~~
+ | io_getevents
+
+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/tpool/aio_linux.cc b/tpool/aio_linux.cc
+index 4abc213..da75411 100644
+--- a/tpool/aio_linux.cc
++++ b/tpool/aio_linux.cc
+@@ -58,6 +58,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111 - 1301 USA*/
+ */
+ static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev)
+ {
++#ifdef __NR_io_getevents
+ int saved_errno= errno;
+ int ret= syscall(__NR_io_getevents, reinterpret_cast<long>(ctx),
+ min_nr, nr, ev, 0);
+@@ -67,6 +68,9 @@ static int my_getevents(io_context_t ctx, long min_nr, long nr, io_event *ev)
+ errno= saved_errno;
+ }
+ return ret;
++#else
++ return -ENOSYS;
++#endif
+ }
+
+
+--
+2.29.2
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch
deleted file mode 100644
index 60e9199f95..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/0001-disable-ucontext-on-musl.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5bc3e7ef9700d12054e0125a126f1bb093f01ef9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 26 Mar 2017 14:30:33 -0700
-Subject: [PATCH] disable ucontext on musl
-
-musl does not have *contex() APIs even though it has ucontext.h header
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- include/my_context.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/my_context.h b/include/my_context.h
-index dd44103..9b28c17 100644
---- a/include/my_context.h
-+++ b/include/my_context.h
-@@ -31,7 +31,7 @@
- #define MY_CONTEXT_USE_X86_64_GCC_ASM
- #elif defined(__GNUC__) && __GNUC__ >= 3 && defined(__i386__)
- #define MY_CONTEXT_USE_I386_GCC_ASM
--#elif defined(HAVE_UCONTEXT_H)
-+#elif defined(__GLIBC__) && defined(HAVE_UCONTEXT_H)
- #define MY_CONTEXT_USE_UCONTEXT
- #else
- #define MY_CONTEXT_DISABLE
---
-2.12.1
-
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch b/meta-oe/recipes-dbs/mysql/mariadb/0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch
new file mode 100644
index 0000000000..0a2eed44f4
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/0001-innobase-Define-__NR_futex-if-it-does-not-exist.patch
@@ -0,0 +1,37 @@
+From d611f78198dee64bb6a05933d200b544e2510b76 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 14 Nov 2020 14:37:13 -0800
+Subject: [PATCH] innobase: Define __NR_futex if it does not exist
+
+__NR_futex is not defines by newer architectures e.g. arc, riscv32 as
+they only have 64bit variant of time_t. Glibc defines SYS_futex interface based
+on
+__NR_futex, since this is used in applications, such applications start
+to fail to build for these newer architectures. This patch defines a
+fallback to alias __NR_futex to __NR_futex_tim64 so SYS_futex keeps
+working
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ storage/innobase/log/log0sync.cc | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/storage/innobase/log/log0sync.cc b/storage/innobase/log/log0sync.cc
+index 7799e605..4fab8f74 100644
+--- a/storage/innobase/log/log0sync.cc
++++ b/storage/innobase/log/log0sync.cc
+@@ -66,6 +66,9 @@ Note that if write operation is very fast, a) or b) can be fine as alternative.
+ #ifdef __linux__
+ #include <linux/futex.h>
+ #include <sys/syscall.h>
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++# define SYS_futex SYS_futex_time64
++#endif
+ #endif
+
+ #include <atomic>
+--
+2.29.2
+
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/change-cc-to-cc-version.patch b/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch
deleted file mode 100644
index 02bda24f7b..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/change-cc-to-cc-version.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-mariadb: replace the CC with CC_VERSION and CXX with CXX_VERSION
-
-mysqlbug.sh is a bug report script. It makes a report with the build information,
-including gcc version. The CC is the local path of gcc, which is useless for bug
-report, and the path may expose private information, so change it to CC_VERSION.
-
-Upstream-Status: Pending
-
-Signed-off-by: Yue Tao <Yue.Tao@windriver.com>
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-================================
-diff --git a/scripts/mysqlbug.sh.old b/scripts/mysqlbug.sh
-index e9df210..d4b8d53 100644
---- a/scripts/mysqlbug.sh.old
-+++ b/scripts/mysqlbug.sh
-@@ -24,8 +24,8 @@ VERSION="@VERSION@@MYSQL_SERVER_SUFFIX@"
- COMPILATION_COMMENT="@COMPILATION_COMMENT@"
- BUGmysql="maria-developers@lists.launchpad.net"
- # This is set by configure
--COMP_CALL_INFO="CC='@SAVE_CC@' CFLAGS='@SAVE_CFLAGS@' CXX='@SAVE_CXX@' CXXFLAGS='@SAVE_CXXFLAGS@' LDFLAGS='@SAVE_LDFLAGS@' ASFLAGS='@SAVE_ASFLAGS@'"
--COMP_RUN_INFO="CC='@CC@' CFLAGS='@CFLAGS@' CXX='@CXX@' CXXFLAGS='@CXXFLAGS@' LDFLAGS='@LDFLAGS@' ASFLAGS='@ASFLAGS@'"
-+COMP_CALL_INFO="CC='@CC_VERSION@' CFLAGS='@SAVE_CFLAGS@' CXX='@CXX_VERSION@' CXXFLAGS='@SAVE_CXXFLAGS@' LDFLAGS='@SAVE_LDFLAGS@' ASFLAGS='@SAVE_ASFLAGS@'"
-+COMP_RUN_INFO="CC='@CC_VERSION@' CFLAGS='@CFLAGS@' CXX='@CXX_VERSION@' CXXFLAGS='@CXXFLAGS@' LDFLAGS='@LDFLAGS@' ASFLAGS='@ASFLAGS@'"
- CONFIGURE_LINE="@CONF_COMMAND@"
-
- LIBC_INFO=""
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch b/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch
index e97def6021..ac94279585 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch
+++ b/meta-oe/recipes-dbs/mysql/mariadb/configure.cmake-fix-valgrind.patch
@@ -1,6 +1,6 @@
-From 5effba0d7d47071a3f1bca56823190d5a95bb1a6 Mon Sep 17 00:00:00 2001
+From 24e2b0edc2612acefcc48414bb6f0aeb086061a9 Mon Sep 17 00:00:00 2001
From: Jackie Huang <jackie.huang@windriver.com>
-Date: Wed, 12 Nov 2014 03:09:10 -0500
+Date: Tue, 26 Feb 2019 23:57:06 -0800
Subject: [PATCH] configure.cmake: fix valgrind
Check valgrind headers only if WITH_VALGRIND is set.
@@ -15,27 +15,26 @@ PACKAGECONFIG to decide if valgrind is needed or not.
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
---
- configure.cmake | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ configure.cmake | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/configure.cmake b/configure.cmake
-index 0bd7bbe..51a098f 100644
+index 3cfc4b31..d017b3b3 100644
--- a/configure.cmake
+++ b/configure.cmake
-@@ -1047,10 +1047,10 @@ MARK_AS_ADVANCED(WITH_ATOMIC_LOCKS MY_ATOMIC_MODE_RWLOCK MY_ATOMIC_MODE_DUMMY)
+@@ -930,10 +930,9 @@ HAVE_GCC_C11_ATOMICS)
IF(WITH_VALGRIND)
SET(HAVE_valgrind 1)
-+ CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h"
-+ HAVE_VALGRIND)
- ENDIF()
-
+-ENDIF()
+-
-CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h"
-- HAVE_VALGRIND)
++ CHECK_INCLUDE_FILES("valgrind/memcheck.h;valgrind/valgrind.h"
+ HAVE_VALGRIND_MEMCHECK_H)
++ENDIF()
#--------------------------------------------------------------------
# Check for IPv6 support
---
-2.0.0
-
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/fix-a-building-failure.patch b/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch
deleted file mode 100644
index 0c4e10237c..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/fix-a-building-failure.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-[PATCH] fix a building failure
-
-Upstream-Status: Inappropriate [configuration]
-
-building failed since native does not generate import_executables.cmake
-In fact, our building system will export the needed commands
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- CMakeLists.txt | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index c1ce1c5..83b3a7e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -350,11 +350,6 @@ MYSQL_CHECK_READLINE()
-
- CHECK_JEMALLOC()
-
--IF(CMAKE_CROSSCOMPILING)
-- SET(IMPORT_EXECUTABLES "IMPORTFILE-NOTFOUND" CACHE FILEPATH "Path to import_executables.cmake from a native build")
-- INCLUDE(${IMPORT_EXECUTABLES})
--ENDIF()
--
- #
- # Setup maintainer mode options by the end. Platform checks are
- # not run with the warning options as to not perturb fragile checks
---
-1.9.1
-
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch b/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch
new file mode 100644
index 0000000000..05b0cf8ff7
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/fix-arm-atomic.patch
@@ -0,0 +1,34 @@
+From f447aca534d1a12809eeb146e8220d305cc3884d Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 9 Apr 2020 14:07:19 +0800
+Subject: [PATCH] build_rocksdb.cmake: fix atomic support on arm
+
+Check to link with libatomic to enable C11 atomics support
+to fix below build error on arm:
+| /build/tmp/work/armv5e-wrs-linux-gnueabi/mariadb/10.3.13-r0/recipe-sysroot-native/usr/bin/arm-wrs-linux-gnueabi/../../libexec/arm-wrs-linux-gnueabi/gcc/arm-wrs-linux-gnueabi/8.3.0/ld.bfd: librocksdblib.a(env_posix.cc.o): in function `std::__atomic_base<unsigned long long>::store(unsigned long long, std::memory_order)':
+| /usr/include/c++/8.3.0/bits/atomic_base.h:374: undefined reference to `__atomic_store_8'
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ storage/rocksdb/build_rocksdb.cmake | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/storage/rocksdb/build_rocksdb.cmake b/storage/rocksdb/build_rocksdb.cmake
+index d7895b0..3bcd52a 100644
+--- a/storage/rocksdb/build_rocksdb.cmake
++++ b/storage/rocksdb/build_rocksdb.cmake
+@@ -470,6 +470,9 @@ list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/build_version.cc)
+
+ ADD_CONVENIENCE_LIBRARY(rocksdblib ${SOURCES})
+ target_link_libraries(rocksdblib ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
++IF (HAVE_GCC_C11_ATOMICS_WITH_LIBATOMIC)
++ TARGET_LINK_LIBRARIES(rocksdblib atomic)
++ENDIF()
+ IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+ set_target_properties(rocksdblib PROPERTIES COMPILE_FLAGS "-fPIC -fno-builtin-memcmp -Wno-error")
+ endif()
+--
+2.7.4
+
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch b/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch
deleted file mode 100644
index 8d9f558d05..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/fix-cmake-module-path.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Avoid CMAKE_MODULE_PATH being overwritten
-
-OE-Core's setting of CMAKE_MODULE_PATH stomps on MariaDB's value unless
-we set it after setting the project name.
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
-Upstream-Status: Inappropriate [working around OE-Core bug]
-
---- mariadb/CMakeLists.txt 2014-07-17 11:01:07.676353047 +0100
-+++ mariadb/CMakeLists.txt 2014-07-17 11:01:31.299353107 +0100
-@@ -28,8 +28,6 @@
-
- MESSAGE(STATUS "Running cmake version ${CMAKE_VERSION}")
-
--SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
--
- # Distinguish between community and non-community builds, with the
- # default being a community build. This does not impact the feature
- # set that will be compiled in; it's merely provided as a hint to
-@@ -77,6 +75,8 @@
- ENDIF()
- PROJECT(${MYSQL_PROJECT_NAME})
-
-+SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
-+
- IF(BUILD_CONFIG)
- INCLUDE(
- ${CMAKE_SOURCE_DIR}/cmake/build_configurations/${BUILD_CONFIG}.cmake)
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch b/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch
deleted file mode 100644
index a519e42921..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/fix-mysqlclient-r-version.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 6db2a606196fb38a6d106dc409eee1cb9a40a440 Mon Sep 17 00:00:00 2001
-From: Tor Didriksen <tor.didriksen@oracle.com>
-Date: Mon, 24 Jun 2013 17:15:35 +0200
-Subject: [PATCH] Bug#16809055 MYSQL 5.6 AND 5.7 STILL USE LIBMYSQLCLIENT.SO.18
-
-With this patch, the libmysql/ directory contains:
-libmysqlclient.a
-libmysqlclient_r.a -> libmysqlclient.a
-libmysqlclient_r.so -> libmysqlclient.so*
-libmysqlclient_r.so.18 -> libmysqlclient.so.18*
-libmysqlclient_r.so.18.1.0 -> libmysqlclient.so.18.1.0*
-libmysqlclient.so -> libmysqlclient.so.18*
-libmysqlclient.so.18 -> libmysqlclient.so.18.1.0*
-libmysqlclient.so.18.1.0*
-
-This fixes libmysqlclient_r symlinks pointing to the unversioned
-libmysqlclient.so symlink (leading to package QA errors since the
-libmysqlclient-r package ends up depending on libmysqlclient-dev).
-
-Borrowed from MySQL 5.6 tree at https://github.com/percona/mysql/
-
-Upstream-Status: Pending
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
----
- cmake/install_macros.cmake | 25 +++++++++++++++----------
- libmysql/CMakeLists.txt | 34 +++++++++++++++++++++++++++-------
- 2 files changed, 42 insertions(+), 17 deletions(-)
-
-diff --git a/cmake/install_macros.cmake b/cmake/install_macros.cmake
-index b8efdf8..a0d0e68 100644
---- a/cmake/install_macros.cmake
-+++ b/cmake/install_macros.cmake
-@@ -1,4 +1,4 @@
--# Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
-+# Copyright (c) 2009, 2013, Oracle and/or its affiliates. All rights reserved.
- #
- # 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
-@@ -167,28 +167,33 @@ ENDFUNCTION()
-
-
- # Install symbolic link to CMake target.
--# the link is created in the same directory as target
--# and extension will be the same as for target file.
--MACRO(INSTALL_SYMLINK linkname target destination component)
-+# We do 'cd path; ln -s target_name link_name'
-+# We also add an INSTALL target for "${path}/${link_name}"
-+MACRO(INSTALL_SYMLINK target target_name link_name destination component)
- IF(UNIX)
- GET_TARGET_PROPERTY(location ${target} LOCATION)
- GET_FILENAME_COMPONENT(path ${location} PATH)
-- GET_FILENAME_COMPONENT(name ${location} NAME)
-- SET(output ${path}/${linkname})
-+ MESSAGE(STATUS "target ${target}")
-+ MESSAGE(STATUS "link_name ${link_name}")
-+ MESSAGE(STATUS "target_name ${target_name}")
-+ MESSAGE(STATUS "path ${path}")
-+ MESSAGE(STATUS "")
-+
-+ SET(output ${path}/${link_name})
- ADD_CUSTOM_COMMAND(
- OUTPUT ${output}
- COMMAND ${CMAKE_COMMAND} ARGS -E remove -f ${output}
- COMMAND ${CMAKE_COMMAND} ARGS -E create_symlink
-- ${name}
-- ${linkname}
-+ ${target_name}
-+ ${link_name}
- WORKING_DIRECTORY ${path}
- DEPENDS ${target}
- )
-
-- ADD_CUSTOM_TARGET(symlink_${linkname}
-+ ADD_CUSTOM_TARGET(symlink_${link_name}
- ALL
- DEPENDS ${output})
-- SET_TARGET_PROPERTIES(symlink_${linkname} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
-+ SET_TARGET_PROPERTIES(symlink_${link_name} PROPERTIES CLEAN_DIRECT_OUTPUT 1)
- IF(CMAKE_GENERATOR MATCHES "Xcode")
- # For Xcode, replace project config with install config
- STRING(REPLACE "${CMAKE_CFG_INTDIR}"
-diff --git a/libmysql/CMakeLists.txt b/libmysql/CMakeLists.txt
-index be5760f..96286ff 100644
---- a/libmysql/CMakeLists.txt
-+++ b/libmysql/CMakeLists.txt
-@@ -433,6 +433,12 @@ IF(MSVC)
- INSTALL_DEBUG_TARGET(clientlib DESTINATION ${INSTALL_LIBDIR}/debug)
- ENDIF()
-
-+MACRO(GET_TARGET_NAME target out_name)
-+ GET_TARGET_PROPERTY(location ${target} LOCATION)
-+ GET_FILENAME_COMPONENT(name ${location} NAME)
-+ SET(${out_name} ${name})
-+ENDMACRO()
-+
- IF(UNIX)
- MACRO(GET_VERSIONED_LIBNAME LIBNAME EXTENSION VERSION OUTNAME)
- SET(DOT_VERSION ".${VERSION}")
-@@ -445,7 +451,13 @@ IF(UNIX)
- SET(${OUTNAME} ${LIBNAME}${EXTENSION}${DOT_VERSION})
- ENDIF()
- ENDMACRO()
-- INSTALL_SYMLINK(${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a mysqlclient ${INSTALL_LIBDIR} Development)
-+ENDIF()
-+
-+IF(UNIX)
-+ GET_TARGET_NAME(mysqlclient lib_name)
-+ INSTALL_SYMLINK(mysqlclient
-+ ${lib_name} ${CMAKE_STATIC_LIBRARY_PREFIX}mysqlclient_r.a
-+ ${INSTALL_LIBDIR} Development)
- ENDIF()
-
- IF(NOT DISABLE_SHARED)
-@@ -456,10 +468,9 @@ IF(NOT DISABLE_SHARED)
- # libtool compatability
- IF(CMAKE_SYSTEM_NAME MATCHES "FreeBSD" OR APPLE)
- SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}")
-- ELSEIF(CMAKE_SYSTEM_NAME MATCHES "HP-UX")
-- SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0")
- ELSE()
-- SET(OS_SHARED_LIB_VERSION "${SHARED_LIB_MAJOR_VERSION}.0.0")
-+ SET(OS_SHARED_LIB_VERSION
-+ "${SHARED_LIB_MAJOR_VERSION}.${SHARED_LIB_MINOR_VERSION}.0")
- ENDIF()
- # Name of shared library is mysqlclient on Unix
- SET_TARGET_PROPERTIES(libmysql PROPERTIES
-@@ -482,8 +493,13 @@ IF(NOT DISABLE_SHARED)
- "${CMAKE_SHARED_LIBRARY_SUFFIX}"
- ""
- linkname)
-- INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries)
-- SET(OS_SHARED_LIB_SYMLINKS "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}")
-+ GET_TARGET_NAME(libmysql lib_name)
-+ GET_FILENAME_COMPONENT(lib_name_we ${lib_name} NAME_WE)
-+ INSTALL_SYMLINK(libmysql
-+ ${lib_name} ${linkname}
-+ ${INSTALL_LIBDIR} SharedLibraries)
-+ SET(OS_SHARED_LIB_SYMLINKS
-+ "${SHARED_LIB_MAJOR_VERSION}" "${OS_SHARED_LIB_VERSION}")
- LIST(REMOVE_DUPLICATES OS_SHARED_LIB_SYMLINKS)
- FOREACH(ver ${OS_SHARED_LIB_SYMLINKS})
- GET_VERSIONED_LIBNAME(
-@@ -491,7 +507,11 @@ IF(NOT DISABLE_SHARED)
- "${CMAKE_SHARED_LIBRARY_SUFFIX}"
- "${ver}"
- linkname)
-- INSTALL_SYMLINK(${linkname} libmysql ${INSTALL_LIBDIR} SharedLibraries)
-+ GET_VERSIONED_LIBNAME(
-+ ${lib_name_we} "${CMAKE_SHARED_LIBRARY_SUFFIX}" "${ver}" lib_name_ver)
-+ INSTALL_SYMLINK(libmysql
-+ ${lib_name_ver} ${linkname}
-+ ${INSTALL_LIBDIR} SharedLibraries)
- ENDFOREACH()
- ENDIF()
- ENDIF()
---
-2.0.3
-
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
new file mode 100644
index 0000000000..6aa6c84882
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/mm_malloc.patch
@@ -0,0 +1,13 @@
+Upstream-Status: Pending
+
+--- a/storage/rocksdb/rocksdb/port/jemalloc_helper.h
++++ b/storage/rocksdb/rocksdb/port/jemalloc_helper.h
+@@ -5,7 +5,7 @@
+
+ #pragma once
+
+-#if defined(__clang__)
++#if defined(__clang__) && defined(__GLIBC__)
+ // glibc's `posix_memalign()` declaration specifies `throw()` while clang's
+ // declaration does not. There is a hack in clang to make its re-declaration
+ // compatible with glibc's if they are declared consecutively. That hack breaks
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/my.cnf b/meta-oe/recipes-dbs/mysql/mariadb/my.cnf
index dc4c172e54..75db46a559 100644
--- a/meta-oe/recipes-dbs/mysql/mariadb/my.cnf
+++ b/meta-oe/recipes-dbs/mysql/mariadb/my.cnf
@@ -10,7 +10,7 @@ user = mysql
port = 3306
socket = /var/lib/mysql/mysql.sock
pid-file = /var/lib/mysql/mysqld.pid
-log-error = /var/log/mysqld.err
+log-error = /var/log/mysqld.log
basedir = /usr
datadir = /var/lib/mysql
skip-external-locking
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
new file mode 100644
index 0000000000..3787b74ad1
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/ppc-remove-glibc-dep.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Pending
+
+Remove glibc specific function dependencies
+
+Sourced from: https://git.alpinelinux.org/aports/tree/main/mariadb/ppc-remove-glibc-dep.patch
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+diff --git a/include/my_cpu.h b/include/my_cpu.h
+index f2e26fca..94599b74 100644
+--- a/include/my_cpu.h
++++ b/include/my_cpu.h
+@@ -24,17 +24,16 @@
+ */
+
+ #ifdef _ARCH_PWR8
+-#include <sys/platform/ppc.h>
+ /* Very low priority */
+-#define HMT_very_low() __ppc_set_ppr_very_low()
++#define HMT_very_low() asm volatile("or 31,31,31")
+ /* Low priority */
+-#define HMT_low() __ppc_set_ppr_low()
++#define HMT_low() asm volatile ("or 1,1,1")
+ /* Medium low priority */
+-#define HMT_medium_low() __ppc_set_ppr_med_low()
++#define HMT_medium_low() asm volatile ("or 6,6,6")
+ /* Medium priority */
+-#define HMT_medium() __ppc_set_ppr_med()
++#define HMT_medium() asm volatile ("or 2,2,2")
+ /* Medium high priority */
+-#define HMT_medium_high() __ppc_set_ppr_med_high()
++#define HMT_medium_high() asm volatile("or 5,5,5")
+ /* High priority */
+ #define HMT_high() asm volatile("or 3,3,3")
+ #else
+@@ -72,7 +71,7 @@ static inline void MY_RELAX_CPU(void)
+ __asm__ __volatile__ ("pause");
+ #endif
+ #elif defined(_ARCH_PWR8)
+- __ppc_get_timebase();
++ __builtin_ppc_get_timebase();
+ #elif defined __GNUC__ && (defined __arm__ || defined __aarch64__)
+ /* Mainly, prevent the compiler from optimizing away delay loops */
+ __asm__ __volatile__ ("":::"memory");
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch b/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch
deleted file mode 100644
index ff26b0b86c..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb/remove-bad-path.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Remove host path from include directories
-
-Naturally this breaks cross-compilation if present.
-
-Upstream-Status: Pending
-
-Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
-
---- mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:37:04.529327998 +0100
-+++ mariadb-5.5.38/storage/tokudb/ft-index/CMakeLists.txt 2014-07-17 14:43:56.991337895 +0100
-@@ -39,7 +39,6 @@
-
- ## default includes and libraries
- include_directories(SYSTEM
-- /usr/local/include
- ${ZLIB_INCLUDE_DIRS}
- )
-
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/ssize_t.patch b/meta-oe/recipes-dbs/mysql/mariadb/ssize_t.patch
new file mode 100644
index 0000000000..4e499d4137
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/ssize_t.patch
@@ -0,0 +1,15 @@
+ssize_t comes from sys/types.h therefore include it
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/wsrep-lib/include/wsrep/gtid.hpp
++++ b/wsrep-lib/include/wsrep/gtid.hpp
+@@ -25,7 +25,7 @@
+ #include "compiler.hpp"
+
+ #include <iosfwd>
+-
++#include <sys/types.h>
+ /**
+ * Minimum number of bytes guaratneed to store GTID string representation,
+ * terminating '\0' not included (36 + 1 + 20).
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
new file mode 100644
index 0000000000..233d9e6af6
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/support-files-CMakeLists.txt-fix-do_populate_sysroot.patch
@@ -0,0 +1,34 @@
+From 4ac5b555d058d4d489f25a3806a787b7b2465d09 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 27 Feb 2019 22:41:26 -0800
+Subject: [PATCH] support-files/CMakeLists.txt: fix do_populate_sysroot issue
+
+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]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+
+---
+ support-files/CMakeLists.txt | 7 -------
+ 1 file changed, 7 deletions(-)
+
+diff --git a/support-files/CMakeLists.txt b/support-files/CMakeLists.txt
+index b5767432..56733de1 100644
+--- a/support-files/CMakeLists.txt
++++ b/support-files/CMakeLists.txt
+@@ -165,12 +165,5 @@ IF(UNIX)
+ INSTALL(FILES rpm/enable_encryption.preset DESTINATION ${INSTALL_SYSCONF2DIR}
+ COMPONENT IniFiles)
+ ENDIF()
+-
+- # This is for SuSE:
+- INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E create_symlink
+- ${INSTALL_SYSCONFDIR}/init.d/mysql
+- ${INSTALL_SBINDIR}/rcmysql
+- WORKING_DIRECTORY \$ENV{DESTDIR}${prefix})"
+- COMPONENT SupportFiles)
+ ENDIF(INSTALL_SYSCONFDIR)
+ ENDIF()
diff --git a/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch b/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch
new file mode 100644
index 0000000000..3244ab8da2
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb/sys_futex.patch
@@ -0,0 +1,23 @@
+Use SYS_futex for syscall
+
+glibc defines SYS_futex and on newer 32bit CPUs like RISCV-32, arc there
+is no 32bit time_t therefore define SYS_futex in terms of SYS_futex_time64
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/storage/innobase/sync/srw_lock.cc
++++ b/storage/innobase/sync/srw_lock.cc
+@@ -210,6 +210,12 @@ void ssux_lock_low::wake() { WakeByAddre
+ # ifdef __linux__
+ # include <linux/futex.h>
+ # include <sys/syscall.h>
++/** Newer 32bit CPUs eg. RISCV-32 are defaulting to 64bit time_t from get go and
++ therefore do not define __NR_futex */
++# if !defined(SYS_futex) && defined(SYS_futex_time64)
++# define SYS_futex SYS_futex_time64
++# endif
++
+ # define SRW_FUTEX(a,op,n) \
+ syscall(SYS_futex, a, FUTEX_ ## op ## _PRIVATE, n, nullptr, nullptr, 0)
+ # elif defined __OpenBSD__
diff --git a/meta-oe/recipes-dbs/mysql/mariadb_10.11.4.bb b/meta-oe/recipes-dbs/mysql/mariadb_10.11.4.bb
new file mode 100644
index 0000000000..87faabfa27
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mariadb_10.11.4.bb
@@ -0,0 +1,26 @@
+require mariadb.inc
+
+DEPENDS += "mariadb-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/mysql/mariadb_5.5.60.bb b/meta-oe/recipes-dbs/mysql/mariadb_5.5.60.bb
deleted file mode 100644
index d7895732a6..0000000000
--- a/meta-oe/recipes-dbs/mysql/mariadb_5.5.60.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-require mariadb.inc
-
-EXTRA_OECMAKE += "-DSTACK_DIRECTION=-1"
-
-DEPENDS += "mariadb-native ncurses zlib readline libaio libevent"
-
-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/mysql/mysql-python/0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch b/meta-oe/recipes-dbs/mysql/mysql-python/0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch
new file mode 100644
index 0000000000..173241ea5c
--- /dev/null
+++ b/meta-oe/recipes-dbs/mysql/mysql-python/0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch
@@ -0,0 +1,34 @@
+From 45436592aa64308b2ab46f84c6107c6d7de0a3ec Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 6 Mar 2019 00:16:17 -0800
+Subject: [PATCH] _mysql.c: fix compilation with MariaDB 10.3.13
+
+Use standard API function MYSQL_OPT_RECONNECT
+instead of direct modification of internal structures
+which does not work for MariaDB.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ _mysql.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+--- a/_mysql.c
++++ b/_mysql.c
+@@ -2002,7 +2002,14 @@ _mysql_ConnectionObject_ping(
+ int r, reconnect = -1;
+ if (!PyArg_ParseTuple(args, "|I", &reconnect)) return NULL;
+ check_connection(self);
+- if ( reconnect != -1 ) self->connection.reconnect = reconnect;
++ if ( reconnect != -1 ) {
++#if MYSQL_VERSION_ID >= 50013
++ my_bool recon = reconnect;
++ mysql_options(&self->connection, MYSQL_OPT_RECONNECT, &recon);
++#else
++ self->connection.reconnect = reconnect;
++#endif
++ }
+ Py_BEGIN_ALLOW_THREADS
+ r = mysql_ping(&(self->connection));
+ Py_END_ALLOW_THREADS
diff --git a/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb b/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
index ac0df4f066..15f6b6fb9a 100644
--- a/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
+++ b/meta-oe/recipes-dbs/mysql/mysql-python_1.2.5.bb
@@ -1,17 +1,26 @@
SUMMARY = "Python interface to MySQL"
HOMEPAGE = "https://github.com/farcepest/MySQLdb1"
SECTION = "devel/python"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://GPL-2.0;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "mysql5"
SRCNAME = "MySQL-python"
-SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.zip"
+SRC_URI = "https://pypi.python.org/packages/source/M/${SRCNAME}/${SRCNAME}-${PV}.zip \
+ file://0001-_mysql.c-fix-compilation-with-MariaDB-with-10.3.13.patch \
+"
SRC_URI[md5sum] = "654f75b302db6ed8dc5a898c625e030c"
SRC_URI[sha256sum] = "811040b647e5d5686f84db415efd697e6250008b112b6909ba77ac059e140c74"
S = "${WORKDIR}/${SRCNAME}-${PV}"
-inherit setuptools
+SKIP_RECIPE[mysql-python] ?= "${@bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', '', 'python2 is out of support for long time, read https://www.python.org/doc/sunset-python-2/ https://python3statement.org/ and if you really have to temporarily use this, then set I_SWEAR_TO_MIGRATE_TO_PYTHON3 to "yes"', d)}"
+
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "setuptools", "", d)}
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
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
new file mode 100644
index 0000000000..7a4ba9897c
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0001-Add-support-for-RISC-V.patch
@@ -0,0 +1,44 @@
+From 780fd27ea6f7f2c446c46a7a5e26d94106c67efd 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.
+
+The architecture is sufficiently similar to aarch64 that simply
+extending the existing aarch64 macro works.
+---
+Upstream-Status: Pending
+
+ src/include/storage/s_lock.h | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/include/storage/s_lock.h b/src/include/storage/s_lock.h
+index 4d3ffc7..22e27bf 100644
+--- a/src/include/storage/s_lock.h
++++ b/src/include/storage/s_lock.h
+@@ -317,11 +317,12 @@ tas(volatile slock_t *lock)
+
+ /*
+ * On ARM and ARM64, we use __sync_lock_test_and_set(int *, int) if available.
++ * On RISC-V, the same.
+ *
+ * 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)
+ #ifdef HAVE_GCC__SYNC_INT32_TAS
+ #define HAS_TEST_AND_SET
+
+@@ -355,8 +356,7 @@ spin_delay(void)
+
+ #endif /* __aarch64__ || __aarch64 */
+ #endif /* HAVE_GCC__SYNC_INT32_TAS */
+-#endif /* __arm__ || __arm || __aarch64__ || __aarch64 */
+-
++#endif /* __arm__ || __arm || __aarch64__ || __aarch64 || __riscv */
+
+ /* S/390 and S/390x Linux (32- and 64-bit zSeries) */
+ #if defined(__s390__) || defined(__s390x__)
+--
+2.34.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
new file mode 100644
index 0000000000..02f4c9e513
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0001-Improve-reproducibility.patch
@@ -0,0 +1,41 @@
+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-Use-pkg-config-for-libxml2-detection.patch b/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
deleted file mode 100644
index ce2a60cabf..0000000000
--- a/meta-oe/recipes-dbs/postgresql/files/0001-Use-pkg-config-for-libxml2-detection.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d52e330be895bb8c5f0fb3e2884766acbd942a85 Mon Sep 17 00:00:00 2001
-From: Philip Balister <philip@balister.org>
-Date: Tue, 1 Jul 2014 09:40:44 -0400
-Subject: [PATCH] Use pkg-config for libxml2 detection.
-
-Upstream-Status: Inappropriate [configuration]
-
-xml2-config does not work. Use pkgconfig to set CPPFLAGS and LIBS.
-
-Signed-off-by: Philip Balister <philip@balister.org>
----
- configure.in | 15 ++-------------
- 1 file changed, 2 insertions(+), 13 deletions(-)
-
-Index: postgresql-9.4.15/configure.in
-===================================================================
---- postgresql-9.4.15.orig/configure.in
-+++ postgresql-9.4.15/configure.in
-@@ -759,19 +759,8 @@ PGAC_ARG_BOOL(with, libxml, no, [build w
- [AC_DEFINE([USE_LIBXML], 1, [Define to 1 to build with XML support. (--with-libxml)])])
-
- if test "$with_libxml" = yes ; then
-- AC_CHECK_PROGS(XML2_CONFIG, xml2-config)
-- if test -n "$XML2_CONFIG"; then
-- for pgac_option in `$XML2_CONFIG --cflags`; do
-- case $pgac_option in
-- -I*|-D*) CPPFLAGS="$CPPFLAGS $pgac_option";;
-- esac
-- done
-- for pgac_option in `$XML2_CONFIG --libs`; do
-- case $pgac_option in
-- -L*) LDFLAGS="$LDFLAGS $pgac_option";;
-- esac
-- done
-- fi
-+ CPPFLAGS="$CPPFLAGS `pkg-config --short-errors --print-errors --cflags "libxml-2.0" 2>&1`"
-+ LIBS="`pkg-config --short-errors --print-errors --libs "libxml-2.0" 2>&1` $LIBS"
- fi
-
- AC_SUBST(with_libxml)
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
new file mode 100644
index 0000000000..52ca276da6
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0001-config_info.c-not-expose-build-info.patch
@@ -0,0 +1,119 @@
+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
new file mode 100644
index 0000000000..3c8187d1a2
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0001-configure.ac-bypass-autoconf-2.69-version-check.patch
@@ -0,0 +1,30 @@
+From 5f9dedc91a0a9710033fa155ea759f765ce5b58b 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 998ff31..912e490 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -19,10 +19,6 @@ m4_pattern_forbid(^PGAC_)dnl to catch undefined macros
+
+ AC_INIT([PostgreSQL], [15.3], [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-2022, 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/0001-postgresql-fix-ptest-failure-of-sysviews.patch b/meta-oe/recipes-dbs/postgresql/files/0001-postgresql-fix-ptest-failure-of-sysviews.patch
new file mode 100644
index 0000000000..4db36d26fd
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/files/0001-postgresql-fix-ptest-failure-of-sysviews.patch
@@ -0,0 +1,42 @@
+From 9f81377dddfe32d950844d7053020a36b40fce08 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] 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(-)
+
+--- a/src/test/regress/expected/sysviews.out
++++ b/src/test/regress/expected/sysviews.out
+@@ -29,7 +29,7 @@ select name, ident, parent, level, total
+ (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
+--- a/src/test/regress/sql/sysviews.sql
++++ b/src/test/regress/sql/sysviews.sql
+@@ -18,7 +18,7 @@ select name, ident, parent, level, total
+ 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;
diff --git a/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch b/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
index 971510943d..fa46912eef 100644
--- a/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
+++ b/meta-oe/recipes-dbs/postgresql/files/not-check-libperl.patch
@@ -1,4 +1,7 @@
-[PATCH] not check libperl under cross compiling
+From 56b830edecff1cac5f8a8a956e7a7eeef2aa7c17 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Tue, 27 Nov 2018 13:25:15 +0800
+Subject: [PATCH] not check libperl under cross compiling
Upstream-Status: Inappropriate [configuration]
@@ -6,23 +9,29 @@ libperl ldflags returned by PGAC_CHECK_PERL_EMBED_LDFLAGS are native,
can not be used to check target library.
postpresql has the dependency on perl, so not need to check libperl
-again, like in postgresql-9.2.4
+again, like in postgresql-9.2.4
Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+update patch to version 11.1
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
- configure.in | 2 +-
+ configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-Index: postgresql-9.4.15/configure.in
-===================================================================
---- postgresql-9.4.15.orig/configure.in
-+++ postgresql-9.4.15/configure.in
-@@ -1879,7 +1879,7 @@ if test "$with_tcl" = yes; then
+diff --git a/configure.ac b/configure.ac
+index fba79ee..7170f26 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2261,7 +2261,7 @@ Use --without-tcl to disable building PL/Tcl.])
fi
# check for <perl.h>
-if test "$with_perl" = yes; then
+if test "$with_perl" = yes && test "$cross_compiling" = no; then
ac_save_CPPFLAGS=$CPPFLAGS
- CPPFLAGS="$CPPFLAGS -I$perl_archlibexp/CORE"
+ CPPFLAGS="$CPPFLAGS $perl_includespec"
AC_CHECK_HEADER(perl.h, [], [AC_MSG_ERROR([header file <perl.h> is required for Perl])],
+--
+2.34.1
+
diff --git a/meta-oe/recipes-dbs/postgresql/files/postgresql-bashprofile b/meta-oe/recipes-dbs/postgresql/files/postgresql-profile
index 1c931f37fd..1c931f37fd 100644
--- a/meta-oe/recipes-dbs/postgresql/files/postgresql-bashprofile
+++ b/meta-oe/recipes-dbs/postgresql/files/postgresql-profile
diff --git a/meta-oe/recipes-dbs/postgresql/files/postgresql.init b/meta-oe/recipes-dbs/postgresql/files/postgresql.init
index 4a4f0cd168..1791e68b58 100644
--- a/meta-oe/recipes-dbs/postgresql/files/postgresql.init
+++ b/meta-oe/recipes-dbs/postgresql/files/postgresql.init
@@ -14,8 +14,8 @@
# PGVERSION is the full package version, e.g., 8.4.0
# Note: the specfile inserts the correct value during package build
PGVERSION=9.2.4
-# PGMAJORVERSION is major version, e.g., 8.4 (this should match PG_VERSION)
-PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\.[0-9]*\).*$/\1/'`
+# PGMAJORVERSION is major version, e.g., 10 (this should match PG_VERSION)
+PGMAJORVERSION=`echo "$PGVERSION" | sed 's/^\([0-9]*\).*$/\1/'`
# Source function library.
. /etc/init.d/functions
diff --git a/meta-oe/recipes-dbs/postgresql/postgresql.inc b/meta-oe/recipes-dbs/postgresql/postgresql.inc
index 1301060ee5..15ecdeeb2e 100644
--- a/meta-oe/recipes-dbs/postgresql/postgresql.inc
+++ b/meta-oe/recipes-dbs/postgresql/postgresql.inc
@@ -18,18 +18,17 @@ DESCRIPTION = "\
this package if you're installing the postgresql-server package. \
"
HOMEPAGE = "http://www.postgresql.com"
-LICENSE = "BSD"
-DEPENDS = "libnsl2 zlib readline tzcode-native"
+LICENSE = "0BSD"
+DEPENDS = "libnsl2 readline tzcode-native"
ARM_INSTRUCTION_SET = "arm"
-SRC_URI = "http://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \
+SRC_URI = "https://ftp.postgresql.org/pub/source/v${PV}/${BP}.tar.bz2 \
file://postgresql.init \
- file://postgresql-bashprofile \
+ file://postgresql-profile \
file://postgresql.pam \
file://postgresql-setup \
file://postgresql.service \
- file://0001-Use-pkg-config-for-libxml2-detection.patch \
"
LEAD_SONAME = "libpq.so"
@@ -37,15 +36,14 @@ LEAD_SONAME = "libpq.so"
# LDFLAGS for shared libraries
export LDFLAGS_SL = "${LDFLAGS}"
-inherit autotools pkgconfig perlnative pythonnative useradd update-rc.d systemd gettext
+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"
-SYSTEMD_SERVICE_${PN} = "postgresql.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+SYSTEMD_SERVICE:${PN} = "postgresql.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
-DEPENDS_append = " ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd-systemctl-native', '', d)}"
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd sysvinit', 'true', 'false', d)}; then
if [ -n "$D" ]; then
OPTS="--root=$D"
@@ -54,39 +52,53 @@ pkg_postinst_${PN} () {
fi
}
-enable_pam = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)}"
-PACKAGECONFIG ??= "${enable_pam} openssl python uuid libxml tcl nls libxml perl"
-PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
-PACKAGECONFIG[openssl] = "--with-openssl,--without-openssl,openssl,"
-PACKAGECONFIG[python] = "--with-python,--without-python,python,python"
-PACKAGECONFIG[uuid] = "--with-ossp-uuid,--without-ossp-uuid,ossp-uuid,"
+PACKAGECONFIG ??= " \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'pam systemd', d)} \
+ openssl python uuid libxml tcl perl zlib \
+"
PACKAGECONFIG[tcl] = "--with-tcl --with-tclconfig=${STAGING_BINDIR_CROSS},--without-tcl,tcl tcl-native,"
-PACKAGECONFIG[nls] = "--enable-nls,--disable-nls,,"
-PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2"
PACKAGECONFIG[perl] = "--with-perl,--without-perl,perl,perl"
+PACKAGECONFIG[python] = "--with-python,--without-python,python3,python3"
+PACKAGECONFIG[gssapi] = "--with-gssapi,--without-gssapi,krb5"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam"
+PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap"
+PACKAGECONFIG[systemd] = "--with-systemd,--without-systemd,systemd systemd-systemctl-native"
+PACKAGECONFIG[uuid] = "--with-uuid=e2fs,--without-uuid,util-linux"
+PACKAGECONFIG[libxml] = "--with-libxml,--without-libxml,libxml2,libxml2"
+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"
EXTRA_OECONF += "--enable-thread-safety --disable-rpath \
--datadir=${datadir}/${BPN} \
--sysconfdir=${sysconfdir}/${BPN} \
"
-EXTRA_OECONF_sh4 += "--disable-spinlocks"
-EXTRA_OECONF_aarch64 += "--disable-spinlocks"
+EXTRA_OECONF:sh4 += "--disable-spinlocks"
-PACKAGES_DYNAMIC += "^${PN}-plperl ^${PN}-plperl-dbg \
- ^${PN}-pltcl ^${PN}-pltcl-dbg \
- ^${PN}-plpython ^${PN}-plpython-dbg \
+DEBUG_OPTIMIZATION:remove:mips = " -Og"
+DEBUG_OPTIMIZATION:append:mips = " -O"
+BUILD_OPTIMIZATION:remove:mips = " -Og"
+BUILD_OPTIMIZATION:append:mips = " -O"
+
+DEBUG_OPTIMIZATION:remove:mipsel = " -Og"
+DEBUG_OPTIMIZATION:append:mipsel = " -O"
+BUILD_OPTIMIZATION:remove:mipsel = " -Og"
+BUILD_OPTIMIZATION:append:mipsel = " -O"
+
+PACKAGES_DYNAMIC += "^${PN}-plperl \
+ ^${PN}-pltcl \
+ ^${PN}-plpython \
"
-python populate_packages_prepend() {
+python populate_packages:prepend() {
- def fill_more(name, dbg=True):
+ def fill_more(name):
if name is None or name.strip() == "":
return
fpack=d.getVar('PACKAGES', False) or ""
fpack="${PN}-" + name + " " + fpack
- if dbg:
- fpack="${PN}-" + name + "-dbg" + " " + fpack
d.setVar('PACKAGES', fpack)
conf=(d.getVar('PACKAGECONFIG') or "").split()
@@ -108,11 +120,15 @@ python populate_packages_prepend() {
}
+# This will make native perl use target settings (for include dirs etc.)
+export PERLCONFIGTARGET = "${@is_target(d)}"
+export PERL_ARCHLIB = "${STAGING_LIBDIR}${PERL_OWN_DIR}/perl5/${@get_perl_version(d)}/${@get_perl_arch(d)}"
+
do_configure() {
# do_configure
autotools_do_configure
- # do_configure_append
+ # do_configure:append
# workaround perl package related bugs
sed -i -e "s:-L/usr/local/lib:-L=/usr/local/lib:g" \
${B}/src/Makefile.global
@@ -121,7 +137,7 @@ do_configure() {
BLIBNA="\${STAGING_BASE_LIBDIR_NATIVE}"
sed -i -e "/^perl_archlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \
${B}/src/Makefile.global
- sed -i -e "/^perl_privlibexp/s:${LIBPNA}:${STAGING_LIBDIR}:g" \
+ sed -i -e "/^perl_privlibexp/s:${libdir}:${STAGING_LIBDIR}:g" \
${B}/src/Makefile.global
# remove the rpath, replace with correct lib path
sed -i \
@@ -148,7 +164,7 @@ do_configure() {
fi
}
-do_compile_append() {
+do_compile:append() {
oe_runmake -C contrib all
}
@@ -156,17 +172,18 @@ do_compile_append() {
usernum = "28"
groupnum = "28"
USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "-M -g postgres -o -r -d ${localstatedir}/lib/${BPN} \
- -s /bin/bash -c 'PostgreSQL Server' -u ${usernum} postgres"
-GROUPADD_PARAM_${PN} = "-g ${groupnum} -o -r postgres"
+USERADD_PARAM:${PN} = "-M -g postgres -o -r -d ${localstatedir}/lib/${BPN} \
+ -s /bin/sh -c 'PostgreSQL Server' -u ${usernum} postgres"
+GROUPADD_PARAM:${PN} = "-g ${groupnum} -o -r postgres"
INITSCRIPT_PACKAGES = "${PN}"
INITSCRIPT_NAME = "${BPN}-server"
INITSCRIPT_PARAMS = "start 64 . stop 36 0 1 2 3 4 5 6 ."
-do_install_append() {
+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
@@ -184,12 +201,12 @@ do_install_append() {
install -m 0755 ${WORKDIR}/${BPN}-setup ${D}${bindir}/${BPN}-setup
install -d -m 700 ${D}${localstatedir}/lib/${BPN}/data
install -d -m 700 ${D}${localstatedir}/lib/${BPN}/backups
- install -m 644 ${WORKDIR}/${BPN}-bashprofile ${D}${localstatedir}/lib/${BPN}/.bash_profile
+ install -m 644 ${WORKDIR}/${BPN}-profile ${D}${localstatedir}/lib/${BPN}/.profile
chown -R postgres:postgres ${D}${localstatedir}/lib/${BPN}
# multiple server config directory
install -d -m 700 ${D}${sysconfdir}/default/${BPN}
- if [ "${@d.getVar('enable_pam')}" = "pam" ]; then
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
install -d ${D}${sysconfdir}/pam.d
install -m 644 ${WORKDIR}/postgresql.pam ${D}${sysconfdir}/pam.d/postgresql
fi
@@ -199,22 +216,40 @@ do_install_append() {
install -m 0644 ${WORKDIR}/postgresql.service ${D}${systemd_unitdir}/system
sed -i -e 's,@BINDIR@,${bindir},g' \
${D}${systemd_unitdir}/system/postgresql.service
+ # Remove the build path
+ if [ -f ${D}${libdir}/${BPN}/pgxs/src/Makefile.global ]; then
+ sed -i -e 's#${RECIPE_SYSROOT}##g' \
+ -e 's#${RECIPE_SYSROOT_NATIVE}##g' \
+ -e 's#${WORKDIR}##g' \
+ -e 's#${TMPDIR}##g' \
+ ${D}${libdir}/${BPN}/pgxs/src/Makefile.global
+ fi
}
SSTATE_SCAN_FILES += "Makefile.global"
-SSTATE_SCAN_FILES_remove = "*_config"
+SSTATE_SCAN_FILES:remove = "*_config"
PACKAGES =+ "${PN}-client ${PN}-server-dev ${PN}-timezone \
- libecpg-compat-dbg libecpg-compat libecpg-compat-dev \
- libecpg-dbg libecpg libecpg-dev libecpg-staticdev libecpg-doc \
- libpq-dbg libpq libpq-dev libpq-staticdev \
- libpgtypes-dbg libpgtypes libpgtypes-staticdev libpgtypes-dev \
- ${PN}-contrib ${PN}-contrib-dbg \
+ libecpg-compat libecpg-compat-dev \
+ libecpg libecpg-dev libecpg-staticdev libecpg-doc \
+ libpq libpq-dev libpq-staticdev \
+ libpgtypes libpgtypes-staticdev libpgtypes-dev \
+ ${PN}-contrib \
"
-FILES_${PN} += "${sysconfdir}/init.d/${BPN}-server \
+RPROVIDES:${PN}-dbg += "libecpg-compat-dbg \
+ libecpg-dbg \
+ libpq-dbg \
+ libpgtypes-dbg \
+ ${PN}-contrib-dbg \
+ ${PN}-pltcl-dbg \
+ ${PN}-plpython-dbg \
+ ${PN}-plperl-dbg \
+ "
+
+FILES:${PN} += "${sysconfdir}/init.d/${BPN}-server \
${localstatedir}/lib/${BPN}/data ${localstatedir}/lib/${BPN}/backups \
- ${localstatedir}/lib/${BPN}/.bash_profile ${sysconfdir}/default/${BPN} \
+ ${localstatedir}/lib/${BPN}/.profile ${sysconfdir}/default/${BPN} \
${libdir}/${BPN}/dict_snowball.so ${libdir}/${BPN}/plpgsql.so \
${libdir}/${BPN}/euc2004_sjis2004.so \
${libdir}/${BPN}/libpqwalreceiver.so \
@@ -224,19 +259,10 @@ FILES_${PN} += "${sysconfdir}/init.d/${BPN}-server \
else ''} \
"
-FILES_${PN}-dbg += " ${libdir}/${BPN}/.debug/dict_snowball.so \
- ${libdir}/${BPN}/.debug/plpgsql.so \
- ${libdir}/${BPN}/.debug/euc2004_sjis2004.so \
- ${libdir}/${BPN}/.debug/libpqwalreceiver.so \
- ${libdir}/${BPN}/.debug/*_and_*.so \
-"
-
-FILES_${PN}-client = "${bindir}/clusterdb \
+FILES:${PN}-client = "${bindir}/clusterdb \
${bindir}/createdb \
- ${bindir}/createlang \
${bindir}/createuser \
${bindir}/dropdb \
- ${bindir}/droplang \
${bindir}/dropuser \
${bindir}/pg_dump \
${bindir}/pg_dumpall \
@@ -247,7 +273,7 @@ FILES_${PN}-client = "${bindir}/clusterdb \
${bindir}/vacuumlo \
${datadir}/${BPN}/psqlrc.sample \
"
-FILES_${PN}-client-doc = "${mandir}/man1/clusterdb.* \
+FILES:${PN}-client-doc = "${mandir}/man1/clusterdb.* \
${mandir}/man1/createdb.* ${mandir}/man1/createlang.* \
${mandir}/man1/createuser.* ${mandir}/man1/dropdb.* \
${mandir}/man1/droplang.* ${mandir}/man1/dropuser.* \
@@ -256,49 +282,47 @@ FILES_${PN}-client-doc = "${mandir}/man1/clusterdb.* \
${mandir}/man1/reindexdb.* ${mandir}/man1/vacuumdb.* \
${mandir}/man7/* \
"
-FILES_${PN}-doc += "${docdir}/${BPN}/html ${libdir}/${BPN}/tutorial/ \
+FILES:${PN}-doc += "${docdir}/${BPN}/html ${libdir}/${BPN}/tutorial/ \
${mandir}/man1/initdb.* ${mandir}/man1/pg_controldata.* \
${mandir}/man1/pg_ctl.* ${mandir}/man1/pg_resetxlog.* \
${mandir}/man1/postgres.* ${mandir}/man1/postmaster.* \
"
-FILES_${PN}-timezone = "${datadir}/${BPN}/timezone \
+FILES:${PN}-timezone = "${datadir}/${BPN}/timezone \
${datadir}/${BPN}/timezonesets \
"
-RDEPENDS_${PN} += "${PN}-timezone"
-FILES_${PN}-server-dev = "${includedir}/${BPN}/server"
+RDEPENDS:${PN} += "${PN}-timezone"
+FILES:${PN}-server-dev = "${includedir}/${BPN}/server \
+ ${libdir}/${BPN}/pgxs \
+"
-FILES_libecpg = "${libdir}/libecpg*${SOLIBS}"
-FILES_libecpg-dbg = "${libdir}/.debug/libecpg*"
-FILES_libecpg-dev = "${libdir}/libecpg*${SOLIBSDEV} \
+FILES:libecpg = "${libdir}/libecpg*${SOLIBS}"
+FILES:libecpg-dev = "${libdir}/libecpg*${SOLIBSDEV} \
${libdir}/libpgtypes*${SOLIBSDEV} \
${includedir}/ecpg*.h ${includedir}/${BPN}/ecpg*.h \
${includedir}/pgtypes*.h ${includedir}/${BPN}/informix \
${includedir}/sql3types.h ${includedir}/sqlca.h \
"
-FILES_libecpg-doc = "${mandir}/man1/ecpg.*"
-FILES_libecpg-staticdev = "${libdir}/libecpg*.a"
-SECTION_libecpg-staticdev = "devel"
-RDEPENDS_libecpg-staticdev = "libecpg-dev (= ${EXTENDPKGV})"
-
-FILES_libpq = "${libdir}/libpq*${SOLIBS}"
-FILES_libpq-dbg = "${libdir}/.debug/libpq* ${libdir}/${BPN}/pgxs/src/test/regress/.debug/*"
-FILES_libpq-dev = "${libdir}/libpq*${SOLIBSDEV} \
+FILES:libecpg-doc = "${mandir}/man1/ecpg.*"
+FILES:libecpg-staticdev = "${libdir}/libecpg*.a"
+SECTION:libecpg-staticdev = "devel"
+RDEPENDS:libecpg-staticdev = "libecpg-dev (= ${EXTENDPKGV})"
+
+FILES:libpq = "${libdir}/libpq*${SOLIBS}"
+FILES:libpq-dev = "${libdir}/libpq*${SOLIBSDEV} \
${includedir} \
"
-FILES_libpq-staticdev = "${libdir}/libpq*.a ${libdir}/libpgport.a"
-SECTION_libpq-staticdev = "devel"
-RDEPENDS_libpq-staticdev = "libpq-dev (= ${EXTENDPKGV})"
-
-FILES_libecpg-compat = "${libdir}/libecpg_compat*${SOLIBS}"
-FILES_libecpg-compat-dbg = "${libdir}/.debug/libecpg_compat*"
-FILES_libecpg-compat-dev = "${libdir}/libecpg_compat*${SOLIBS}"
-FILES_libpgtypes = "${libdir}/libpgtypes*${SOLIBS}"
-FILES_libpgtypes-dbg = "${libdir}/.debug/libpgtypes*"
-FILES_libpgtypes-staticdev = "${libdir}/libpgtypes*.a"
-FILES_libpgtypes-dev = "${libdir}/libpgtypes*${SOLIBS} ${includedir}/pgtypes*.h"
-
-FILES_${PN}-contrib = " ${bindir}/oid2name ${bindir}/pg_standby \
- ${bindir}/pgbench ${bindir}/vacuumlo \
+FILES:libpq-staticdev = "${libdir}/libpq*.a ${libdir}/libpgport.a"
+SECTION:libpq-staticdev = "devel"
+RDEPENDS:libpq-staticdev = "libpq-dev (= ${EXTENDPKGV})"
+
+FILES:libecpg-compat = "${libdir}/libecpg_compat*${SOLIBS}"
+FILES:libecpg-compat-dev = "${libdir}/libecpg_compat*${SOLIBS}"
+FILES:libpgtypes = "${libdir}/libpgtypes*${SOLIBS}"
+FILES:libpgtypes-staticdev = "${libdir}/libpgtypes*.a"
+FILES:libpgtypes-dev = "${libdir}/libpgtypes*${SOLIBS} ${includedir}/pgtypes*.h"
+
+FILES:${PN}-contrib = " ${bindir}/oid2name ${bindir}/pg_standby \
+ ${bindir}/pgbench \
${S}/contrib/spi/*.example \
${libdir}/${BPN}/_int.so ${libdir}/${BPN}/adminpack.so \
${libdir}/${BPN}/autoinc.so ${libdir}/${BPN}/auto_explain.so \
@@ -320,65 +344,32 @@ FILES_${PN}-contrib = " ${bindir}/oid2name ${bindir}/pg_standby \
${libdir}/${BPN}/sslinfo.so \
${libdir}/${BPN}/tablefunc.so \
${libdir}/${BPN}/test_parser.so ${libdir}/${BPN}/timetravel.so \
- ${libdir}/${BPN}/tsearch2.so ${libdir}/${BPN}/uuid-ossp.so \
+ ${libdir}/${BPN}/uuid-ossp.so \
${libdir}/${BPN}/pgxml.so ${libdir}/${BPN}/passwordcheck.so \
${libdir}/${BPN}/pg_upgrade_support.so ${libdir}/${BPN}/.so \
${libdir}/${BPN}/unaccent.so \
"
-FILES_${PN}-contrib-dbg = " \
- ${libdir}/${BPN}/.debug/_int.so ${libdir}/${BPN}/.debug/adminpack.so \
- ${libdir}/${BPN}/.debug/autoinc.so ${libdir}/${BPN}/.debug/auto_explain.so \
- ${libdir}/${BPN}/.debug/auth_delay.so ${libdir}/${BPN}/.debug/btree_gin.so \
- ${libdir}/${BPN}/.debug/btree_gist.so ${libdir}/${BPN}/.debug/.so \
- ${libdir}/${BPN}/.debug/chkpass.so ${libdir}/${BPN}/.debug/citext.so \
- ${libdir}/${BPN}/.debug/cube.so ${libdir}/${BPN}/.debug/dblink.so \
- ${libdir}/${BPN}/.debug/dict_int.so ${libdir}/${BPN}/.debug/dict_xsyn.so \
- ${libdir}/${BPN}/.debug/dummy_seclabel.so \
- ${libdir}/${BPN}/.debug/earthdistance.so \
- ${libdir}/${BPN}/.debug/file_fdw.so ${libdir}/${BPN}/.debug/fuzzystrmatch.so \
- ${libdir}/${BPN}/.debug/hstore.so ${libdir}/${BPN}/.debug/insert_username.so \
- ${libdir}/${BPN}/.debug/isn.so ${libdir}/${BPN}/.debug/lo.so \
- ${libdir}/${BPN}/.debug/ltree.so ${libdir}/${BPN}/.debug/moddatetime.so \
- ${libdir}/${BPN}/.debug/pageinspect.so \
- ${libdir}/${BPN}/.debug/pg_buffercache.so \
- ${libdir}/${BPN}/.debug/pg_freespacemap.so \
- ${libdir}/${BPN}/.debug/pg_trgm.so \
- ${libdir}/${BPN}/.debug/pgcrypto.so ${libdir}/${BPN}/.debug/pgrowlocks.so \
- ${libdir}/${BPN}/.debug/pgstattuple.so \
- ${libdir}/${BPN}/.debug/pg_stat_statements.so \
- ${libdir}/${BPN}/.debug/refint.so ${libdir}/${BPN}/.debug/seg.so \
- ${libdir}/${BPN}/.debug/sslinfo.so \
- ${libdir}/${BPN}/.debug/tablefunc.so \
- ${libdir}/${BPN}/.debug/test_parser.so ${libdir}/${BPN}/.debug/timetravel.so \
- ${libdir}/${BPN}/.debug/tsearch2.so ${libdir}/${BPN}/.debug/uuid-ossp.so \
- ${libdir}/${BPN}/.debug/pgxml.so ${libdir}/${BPN}/.debug/passwordcheck.so \
- ${libdir}/${BPN}/.debug/pg_upgrade_support.so \
- ${libdir}/${BPN}/.debug/unaccent.so \
-"
-DESCRIPTION_${PN}-contrib = "The postgresql-contrib package contains \
+DESCRIPTION:${PN}-contrib = "The postgresql-contrib package contains \
contributed packages that are included in the PostgreSQL distribution."
-FILES_${PN}-pltcl = "${libdir}/${BPN}/pltcl.so ${bindir}/pltcl_delmod \
+FILES:${PN}-pltcl = "${libdir}/${BPN}/pltcl.so ${bindir}/pltcl_delmod \
${binddir}/pltcl_listmod ${bindir}/pltcl_loadmod \
${datadir}/${BPN}/unknown.pltcl"
-FILES_${PN}-pltcl-dbg = "${libdir}/${BPN}/.debug/pltcl.so"
-SUMMARY_${PN}-pltcl = "The Tcl procedural language for PostgreSQL"
-DESCRIPTION_${PN}-pltcl = "PostgreSQL is an advanced Object-Relational \
+SUMMARY:${PN}-pltcl = "The Tcl procedural language for PostgreSQL"
+DESCRIPTION:${PN}-pltcl = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-pltcl package contains the PL/Tcl \
procedural language for the backend."
-FILES_${PN}-plperl = "${libdir}/${BPN}/plperl.so"
-FILES_${PN}-plperl-dbg = "${libdir}/${BPN}/.debug/plperl.so"
-SUMMARY_${PN}-plperl = "The Perl procedural language for PostgreSQL"
-DESCRIPTION_${PN}-plperl = "PostgreSQL is an advanced Object-Relational \
+FILES:${PN}-plperl = "${libdir}/${BPN}/plperl.so"
+SUMMARY:${PN}-plperl = "The Perl procedural language for PostgreSQL"
+DESCRIPTION:${PN}-plperl = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-plperl package contains the \
PL/Perl procedural language for the backend."
# In version 8, it will be plpython.so
# In version 9, it might be plpython{2,3}.so depending on python2 or 3
-FILES_${PN}-plpython = "${libdir}/${BPN}/plpython*.so"
-FILES_${PN}-plpython-dbg = "${libdir}/${BPN}/.debug/plpython*.so"
-SUMMARY_${PN}-plpython = "The Python procedural language for PostgreSQL"
-DESCRIPTION_${PN}-plpython = "PostgreSQL is an advanced Object-Relational \
+FILES:${PN}-plpython = "${libdir}/${BPN}/plpython*.so"
+SUMMARY:${PN}-plpython = "The Python procedural language for PostgreSQL"
+DESCRIPTION:${PN}-plpython = "PostgreSQL is an advanced Object-Relational \
database management system. The postgresql-plpython package contains \
the PL/Python procedural language for the backend."
diff --git a/meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb b/meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb
new file mode 100644
index 0000000000..e1d49895f0
--- /dev/null
+++ b/meta-oe/recipes-dbs/postgresql/postgresql_15.3.bb
@@ -0,0 +1,16 @@
+require postgresql.inc
+
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=c31f662bb2bfb3b4187fe9a53e0ffe7c"
+
+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://0001-config_info.c-not-expose-build-info.patch \
+ file://0001-postgresql-fix-ptest-failure-of-sysviews.patch \
+"
+
+SRC_URI[sha256sum] = "ffc7d4891f00ffbf5c3f4eab7fbbced8460b8c0ee63c5a5167133b9e6599d932"
+
+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/postgresql/postgresql_9.4.17.bb b/meta-oe/recipes-dbs/postgresql/postgresql_9.4.17.bb
deleted file mode 100644
index 8a01d8604b..0000000000
--- a/meta-oe/recipes-dbs/postgresql/postgresql_9.4.17.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require postgresql.inc
-
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=6dc95e63aa4d72502ff8193dfe2ddd38"
-
-SRC_URI += "\
- file://not-check-libperl.patch \
-"
-SRC_URI[md5sum] = "0a08f4078f5e4a54e764f63ad38a6de3"
-SRC_URI[sha256sum] = "7a320cd335052b840d209dc9688f09965763351c590e3cc7bf577591179fd7c6"
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 7eda038756..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
@@ -1,26 +1,27 @@
-[PATCH] do not use the hardcode libdir
+From 8f3ed8df4721991958a5becf75a69493d67e7514 Mon Sep 17 00:00:00 2001
+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>
+
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
-index 9b88d4c..df5ad7a 100644
+index 00b359e..ba50e6f 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -140,7 +140,7 @@ if test "$with_libpq" != yes; then
+@@ -114,7 +114,7 @@ if test "$with_libpq" != yes; then
if test -d "$with_libpq"; then
- PATH="$PATH:$with_libpq/bin"
- CPPFLAGS="$CPPFLAGS -I$with_libpq/include"
+ PATH="$with_libpq/bin:$PATH"
+ CPPFLAGS="$CPPFLAGS -I$with_libpq/include -I$with_libpq/include/postgresql/internal"
- LDFLAGS="$LDFLAGS -L$with_libpq/lib"
+ LDFLAGS="$LDFLAGS -L$with_libpq/${base_libdir}"
else
if test -x "$with_libpq"; then
PG_CONFIG=$with_libpq
---
-2.8.1
-
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 a8f14e7689..30e67b7dfb 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
@@ -1,3 +1,6 @@
+From 96896b88776d0080609ec830cf9538d2babe665a Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 5 Sep 2017 10:24:10 +0800
Subject: [PATCH] psqlodbc: fixes for ptest support
* Fix the LIBODBC since we don't use ODBC_CONFIG.
@@ -9,27 +12,28 @@ Subject: [PATCH] psqlodbc: fixes for ptest support
Upstream-Status: Inappropriate [OE ptest specific]
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
test/Makefile.in | 2 +-
test/odbcini-gen.sh | 8 ++++----
- test/runsuite.c | 26 +++++++++++++-------------
- 3 files changed, 18 insertions(+), 18 deletions(-)
+ test/runsuite.c | 20 ++++++++++----------
+ 3 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/test/Makefile.in b/test/Makefile.in
-index 8710616..fcb470e 100644
+index 3f9a9af..09406ae 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
-@@ -18,7 +18,7 @@ CFLAGS = @CFLAGS@
+@@ -19,7 +19,7 @@ CPPFLAGS = @CPPFLAGS@ -I.. # config.h
ODBC_CONFIG = @ODBC_CONFIG@
PROVE = @PROVE@
--LIBODBC := $(shell $(ODBC_CONFIG) --libs)
+-LIBODBC = @LIBODBC@
+LIBODBC = -lodbc
all: $(TESTBINS) runsuite reset-db
diff --git a/test/odbcini-gen.sh b/test/odbcini-gen.sh
-index d2c2c87..6068d9d 100755
+index 2eaba35..6555cdb 100755
--- a/test/odbcini-gen.sh
+++ b/test/odbcini-gen.sh
@@ -6,7 +6,7 @@
@@ -41,7 +45,7 @@ index d2c2c87..6068d9d 100755
driver=${drvr}.so
if test ! -e $driver ; then
driver=${drvr}.dll
-@@ -33,10 +33,10 @@ Driver = psqlodbc test driver
+@@ -52,10 +52,10 @@ Driver = PostgreSQL Unicode
Trace = No
TraceFile =
Database = contrib_regression
@@ -56,10 +60,10 @@ index d2c2c87..6068d9d 100755
RowVersioning = No
ShowSystemTables = No
diff --git a/test/runsuite.c b/test/runsuite.c
-index 583cf35..fd2a90e 100644
+index 3be5732..cd842dc 100644
--- a/test/runsuite.c
+++ b/test/runsuite.c
-@@ -51,7 +51,7 @@ bailout(const char *fmt, ...)
+@@ -55,7 +55,7 @@ bailout(const char *fmt, ...)
/* Given a test program's name, get the test name */
void
@@ -68,7 +72,7 @@ index 583cf35..fd2a90e 100644
{
const char *basename;
#ifdef WIN32
-@@ -65,7 +65,7 @@ parse_argument(const char *in, char *testname, char *binname)
+@@ -69,7 +69,7 @@ parse_argument(const char *in, char *testname, char *binname)
if (strchr(in, DIR_SEP) == NULL)
{
strcpy(testname, in);
@@ -77,7 +81,7 @@ index 583cf35..fd2a90e 100644
return;
}
-@@ -127,7 +127,7 @@ int main(int argc, char **argv)
+@@ -131,7 +131,7 @@ int main(int argc, char **argv)
failures = 0;
for (i = 1, j = 1; i <= numtests; i++, j++)
{
@@ -86,7 +90,7 @@ index 583cf35..fd2a90e 100644
if (runtest(binname, testname, i, inputdir) != 0)
failures++;
}
-@@ -157,29 +157,29 @@ runtest(const char *binname, const char *testname, int testno, const char *input
+@@ -161,29 +161,29 @@ runtest(const char *binname, const char *testname, int testno, const char *input
#ifndef WIN32
snprintf(cmdline, sizeof(cmdline),
"ODBCSYSINI=. ODBCINSTINI=./odbcinst.ini ODBCINI=./odbc.ini "
@@ -123,26 +127,3 @@ index 583cf35..fd2a90e 100644
ret = 0;
}
fflush(stdout);
-@@ -196,7 +196,7 @@ rundiff(const char *testname, const char *inputdir)
- char *result;
- size_t result_len;
-
-- snprintf(filename, sizeof(filename), "results/%s.out", testname);
-+ snprintf(filename, sizeof(filename), "%s/results/%s.out", inputdir, testname);
- result = slurpfile(filename, &result_len);
-
- outputno = 0;
-@@ -244,8 +244,8 @@ rundiff(const char *testname, const char *inputdir)
- * files and print the smallest diff?
- */
- snprintf(cmdline, sizeof(cmdline),
-- "diff -c %s/expected/%s.out results/%s.out >> regression.diffs",
-- inputdir, testname, testname);
-+ "diff -c %s/expected/%s.out %s/results/%s.out >> regression.diffs",
-+ inputdir, testname, inputdir, testname);
- if (system(cmdline) == -1)
- printf("# diff failed\n");
-
---
-2.8.2
-
diff --git a/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch b/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
index 1d988182e7..9131d70be6 100644
--- a/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
+++ b/meta-oe/recipes-dbs/psqlodbc/files/psqlodbc-remove-some-checks-for-cross-compiling.patch
@@ -1,3 +1,6 @@
+From 8ca6b0c72b6b933642ec7c4ebb83734244fec46f Mon Sep 17 00:00:00 2001
+From: "Song.Li" <Song.Li@windriver.com>
+Date: Tue, 5 Sep 2017 10:24:10 +0800
Subject: [PATCH] remove some checks for cross-compiling
some lib check is not suitable for
@@ -8,15 +11,16 @@ Upstream-Status: Inappropriate [not a real bug,just for cross-compiling]
Signed-off-by: Song.Li <Song.Li@windriver.com>
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+
---
- configure.ac | 66 +++++++-----------------------------------------------------
- 1 file changed, 7 insertions(+), 59 deletions(-)
+ configure.ac | 80 +++++-----------------------------------------------
+ 1 file changed, 7 insertions(+), 73 deletions(-)
diff --git a/configure.ac b/configure.ac
-index df5ad7a..b72bd4c 100644
+index 7f79563..00b359e 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -46,57 +46,19 @@ AC_ARG_WITH(iodbc, [ --with-iodbc[[=DIR]] [[default=no]] DIR is the iODBC bas
+@@ -57,71 +57,20 @@ AC_ARG_WITH(iodbc, [ --with-iodbc[[=DIR]] [[default=no]] DIR is the iODBC bas
if test "$with_iodbc" != no; then
with_unixodbc=no
AC_DEFINE(WITH_IODBC, 1, [Define to 1 to build with iODBC support])
@@ -34,6 +38,7 @@ index df5ad7a..b72bd4c 100644
- fi
fi
+ wo_odbc_config=__without_odbc_config
if test "$with_unixodbc" != no; then
AC_DEFINE(WITH_UNIXODBC, 1,
[Define to 1 to build with unixODBC support])
@@ -42,7 +47,9 @@ index df5ad7a..b72bd4c 100644
- else
- ODBC_CONFIG=$with_unixodbc
- fi
-- if test ! -x "${ODBC_CONFIG}/bin/odbc_config"; then
+- if test "${ODBC_CONFIG}" = "${wo_odbc_config}"; then
+- :
+- elif test ! -x "${ODBC_CONFIG}/bin/odbc_config"; then
- if test ! -x "${ODBC_CONFIG}"; then
- AC_MSG_ERROR([odbc_config not found (required for unixODBC build)])
- fi
@@ -62,22 +69,33 @@ index df5ad7a..b72bd4c 100644
- # Linking libiodoc is rather problematic
- [ODBC_LIBDIR=`${ODBC_CONFIG} --libs | sed -e "s/^\(-L\|.*[ \t]-L\)\([^ \n\r\f\t]*\).*$/-L\2/"`]
- LDFLAGS="$LDFLAGS ${ODBC_LIBDIR}"
+- LIBODBC=`${ODBC_CONFIG} --libs` # for regression test
+- elif test "${ODBC_CONFIG}" = "${wo_odbc_config}"; then
+- ODBC_INCLUDE=/usr/include
+- CPPFLAGS="$CPPFLAGS -I${ODBC_INCLUDE}"
+- ODBC_LIBDiR=""
+- LIBODBC="-lodbc" # for regression test
- else
- ODBC_INCLUDE=`${ODBC_CONFIG} --include-prefix`
- CPPFLAGS="$CPPFLAGS -I${ODBC_INCLUDE}"
-- # Linking libodoc is rather problematic
+- # Linking libodbc is rather problematic
- ODBC_LIBDIR=`${ODBC_CONFIG} --lib-prefix`
-- LDFLAGS="$LDFLAGS -L${ODBC_LIBDIR}"
+- if test "${ODBC_LIBDIR}" != ""; then
+- LDFLAGS="$LDFLAGS -L${ODBC_LIBDIR}"
+- fi
+- LIBODBC=`${ODBC_CONFIG} --libs` # for regression test
- fi
- AC_MSG_NOTICE([using $ODBC_INCLUDE $ODBC_LIBDIR])
+- AC_MSG_NOTICE([using $LIBODBC for regression test])
-fi
+-AC_SUBST(LIBODBC)
+ODBC_LIBS="-lodbcinst"
+LIBS="$LIBS ${ODBC_LIBS}"
+AC_MSG_NOTICE([using $ODBC_INCLUDE $ODBC_LIBS])
#
# SQLCOLATTRIBUTE_SQLLEN check
-@@ -176,18 +138,10 @@ PGAC_ARG_BOOL(enable, pthreads, yes,
+@@ -190,19 +139,10 @@ PGAC_ARG_BOOL(enable, pthreads, yes,
# Find libpq headers and libraries
#
@@ -87,8 +105,9 @@ index df5ad7a..b72bd4c 100644
-
-if test -n "$PG_CONFIG"; then
- pg_includedir=`"$PG_CONFIG" --includedir`
+- pg_pkg_includedir=`"$PG_CONFIG" --pkgincludedir`
- pg_libdir=`"$PG_CONFIG" --libdir`
-- CPPFLAGS="$CPPFLAGS -I$pg_includedir"
+- CPPFLAGS="$CPPFLAGS -I$pg_includedir -I$pg_pkg_includedir/internal"
- LDFLAGS="$LDFLAGS -L$pg_libdir"
-fi
-
@@ -100,7 +119,7 @@ index df5ad7a..b72bd4c 100644
# 1. Programs
-@@ -211,12 +165,6 @@ if test "$with_iodbc" != no; then
+@@ -226,12 +166,6 @@ if test "$with_iodbc" != no; then
[AC_MSG_ERROR([iODBC library "iodbcinst" not found])])
fi
@@ -113,6 +132,3 @@ index df5ad7a..b72bd4c 100644
AC_CHECK_LIB(pq, PQsetSingleRowMode, [],
[AC_MSG_ERROR([libpq library version >= 9.2 is required])])
---
-2.8.1
-
diff --git a/meta-oe/recipes-dbs/psqlodbc/psqlodbc.inc b/meta-oe/recipes-dbs/psqlodbc/psqlodbc.inc
deleted file mode 100644
index 5337b45695..0000000000
--- a/meta-oe/recipes-dbs/psqlodbc/psqlodbc.inc
+++ /dev/null
@@ -1,50 +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/"
-
-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 \
- --disable-unicode \
- 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_09.05.0300.bb b/meta-oe/recipes-dbs/psqlodbc/psqlodbc_09.05.0300.bb
deleted file mode 100644
index 6e1c8ab4a0..0000000000
--- a/meta-oe/recipes-dbs/psqlodbc/psqlodbc_09.05.0300.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-require ${PN}.inc
-
-LICENSE = "LGPLv2"
-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[md5sum] = "4c6e0b22187d7bb1c998ffac89e50f6b"
-SRC_URI[sha256sum] = "9521f328bf28aaaf5c8488dc89792b614f9d6271742c0baf9bb41c97537764a8"
diff --git a/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb b/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.00.0000.bb
new file mode 100644
index 0000000000..be79caef0b
--- /dev/null
+++ b/meta-oe/recipes-dbs/psqlodbc/psqlodbc_15.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] = "ca57d6349532ea7fb4fae17bbfc107abe5a155ca2f43446315f9e23764b3f8ec"
+
+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/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch
new file mode 100644
index 0000000000..a177ce28b9
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-Add-missing-includes-cstdint-and-cstdio.patch
@@ -0,0 +1,70 @@
+From 6e376601c990abaa5e261d1311f92acb3b370b8f 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: Backport [https://github.com/facebook/rocksdb/commit/88edfbfb5e1cac228f7cc31fbec24bb637fe54b1]
+Signed-off-by: Khem Raj <raj.khem@gmail.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 +
+ tpool/aio_linux.cc | 1 +
+ 6 files changed, 6 insertions(+)
+
+--- a/db/compaction/compaction_iteration_stats.h
++++ b/db/compaction/compaction_iteration_stats.h
+@@ -7,6 +7,7 @@
+
+ #include <cstdint>
+
++#include <cstdint>
+ #include "rocksdb/rocksdb_namespace.h"
+
+ namespace ROCKSDB_NAMESPACE {
+--- a/include/rocksdb/utilities/checkpoint.h
++++ b/include/rocksdb/utilities/checkpoint.h
+@@ -8,6 +8,7 @@
+ #pragma once
+ #ifndef ROCKSDB_LITE
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/table/block_based/data_block_hash_index.h
++++ b/table/block_based/data_block_hash_index.h
+@@ -5,6 +5,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/util/slice.cc
++++ b/util/slice.cc
+@@ -12,6 +12,7 @@
+ #include <stdio.h>
+
+ #include <algorithm>
++#include <cstdint>
+
+ #include "rocksdb/convenience.h"
+ #include "rocksdb/slice_transform.h"
+--- a/util/string_util.h
++++ b/util/string_util.h
+@@ -6,6 +6,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <sstream>
+ #include <string>
+ #include <unordered_map>
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
new file mode 100644
index 0000000000..0fe9c12766
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Add-check-for-atomic-support.patch
@@ -0,0 +1,114 @@
+From cf168ae0b7bceab8432d096719b331f18428fe39 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
+
+Detect if libatomic should be linked in or compiler and platform can
+provide the needed atomic instrinsics, this helps build on certain
+platforms like mips or clang/i386
+
+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_exchange_8'
+| /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_or_8'
+| /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_compare_exchange_8'
+| /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_sub_8'
+| /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_load_8'
+| /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_store_8'
+| /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 +++
+ cmake/modules/CheckAtomic.cmake | 69 +++++++++++++++++++++++++++++++++
+ 2 files changed, 74 insertions(+)
+ create mode 100644 cmake/modules/CheckAtomic.cmake
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1057,7 +1057,12 @@ set(ROCKSDB_SHARED_LIB rocksdb-shared${A
+ if(WIN32)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} shlwapi.lib rpcrt4.lib)
+ else()
++ # check if linking against libatomic is necessary
++ include(CheckAtomic)
+ set(SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
++ if(HAVE_CXX_ATOMIC_WITH_LIB OR HAVE_CXX_ATOMICS64_WITH_LIB)
++ set(SYSTEM_LIBS ${SYSTEM_LIBS} atomic)
++ endif()
+ endif()
+
+ set(ROCKSDB_PLUGIN_EXTERNS "")
+--- /dev/null
++++ b/cmake/modules/CheckAtomic.cmake
+@@ -0,0 +1,69 @@
++# Checks if atomic operations are supported natively or if linking against
++# libatomic is needed.
++
++# Check inspired by LLVMs cmake/modules/CheckAtomic.cmake
++
++INCLUDE(CheckCXXSourceCompiles)
++INCLUDE(CheckLibraryExists)
++
++function(check_working_cxx_atomics varname)
++ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
++ set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -std=c++11")
++ CHECK_CXX_SOURCE_COMPILES("
++#include <atomic>
++std::atomic<int> x;
++int main() {
++ return x;
++}
++" ${varname})
++ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
++endfunction(check_working_cxx_atomics)
++
++function(check_working_cxx_atomics64 varname)
++ set(OLD_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS})
++ set(CMAKE_REQUIRED_FLAGS "-std=c++11 ${CMAKE_REQUIRED_FLAGS}")
++ CHECK_CXX_SOURCE_COMPILES("
++#include <atomic>
++#include <cstdint>
++std::atomic<uint64_t> x (0);
++std::atomic<double> y (0);
++int main() {
++ uint64_t i = x.load(std::memory_order_relaxed);
++ return int(y);
++}
++" ${varname})
++ set(CMAKE_REQUIRED_FLAGS ${OLD_CMAKE_REQUIRED_FLAGS})
++endfunction(check_working_cxx_atomics64)
++
++# Check if atomics work without libatomic
++check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITHOUT_LIB)
++
++if(NOT HAVE_CXX_ATOMICS_WITHOUT_LIB)
++ check_library_exists(atomic __atomic_fetch_add_4 "" HAVE_LIBATOMIC)
++ if( HAVE_LIBATOMIC )
++ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
++ check_working_cxx_atomics(HAVE_CXX_ATOMICS_WITH_LIB)
++ if (NOT HAVE_CXX_ATOMICS_WITH_LIB)
++ message(FATAL_ERROR "Host compiler must support std::atomic!")
++ endif()
++ else()
++ message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.")
++ endif()
++endif()
++
++# Check if 64bit atomics work without libatomic
++check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITHOUT_LIB)
++
++if(NOT HAVE_CXX_ATOMICS64_WITHOUT_LIB)
++ check_library_exists(atomic __atomic_load_8 "" HAVE_CXX_LIBATOMICS64)
++ if(HAVE_CXX_LIBATOMICS64)
++ list(APPEND CMAKE_REQUIRED_LIBRARIES "atomic")
++ check_working_cxx_atomics64(HAVE_CXX_ATOMICS64_WITH_LIB)
++ if (NOT HAVE_CXX_ATOMICS64_WITH_LIB)
++ message(FATAL_ERROR "Host compiler must support std::atomic!")
++ endif()
++ else()
++ message(FATAL_ERROR "Host compiler appears to require libatomic, but cannot find it.")
++ endif()
++endif()
++
diff --git a/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch
new file mode 100644
index 0000000000..e521854439
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.patch
@@ -0,0 +1,33 @@
+From cedc84a8db468d0b6652e78a8a6667e655586b53 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 dbef059028..981545a4e0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -290,7 +290,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.39.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
new file mode 100644
index 0000000000..706e0868e5
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-cmake-Use-exported-target-for-bz2.patch
@@ -0,0 +1,29 @@
+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
+@@ -154,12 +154,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
new file mode 100644
index 0000000000..c98623360f
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/0001-replace-old-sync-with-new-atomic-builtin-equivalents.patch
@@ -0,0 +1,61 @@
+From 114c42fba3fc86119710e8dd1bb2b7a9e39e3064 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
+
+Helps compiling with gcc on newer arches e.g. riscv32 where these
+__sync* builtins are not implemented atleast for 64bit values
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ .../range/range_tree/lib/portability/toku_atomic.h | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- 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>
+ __attribute__((always_inline)) static inline T toku_sync_fetch_and_add(T *addr,
+ U diff) {
+ paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
+- return __sync_fetch_and_add(addr, diff);
++ return __atomic_fetch_add(addr, diff, 5);
+ }
+ template <typename T, typename U>
+ __attribute__((always_inline)) static inline T toku_sync_add_and_fetch(T *addr,
+ U diff) {
+ paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
+- return __sync_add_and_fetch(addr, diff);
++ return __atomic_add_fetch(addr, diff, 5);
+ }
+ template <typename T, typename U>
+ __attribute__((always_inline)) static inline T toku_sync_fetch_and_sub(T *addr,
+ U diff) {
+ paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
+- return __sync_fetch_and_sub(addr, diff);
++ return __atomic_fetch_sub(addr, diff, 5);
+ }
+ template <typename T, typename U>
+ __attribute__((always_inline)) static inline T toku_sync_sub_and_fetch(T *addr,
+ U diff) {
+ paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
+- return __sync_sub_and_fetch(addr, diff);
++ return __atomic_sub_fetch(addr, diff, 5);
+ }
+ template <typename T, typename U, typename V>
+ __attribute__((always_inline)) static inline T toku_sync_val_compare_and_swap(
+ T *addr, U oldval, V newval) {
+ paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
+- return __sync_val_compare_and_swap(addr, oldval, newval);
++ return __atomic_compare_exchange(addr, oldval, newval);
+ }
+ template <typename T, typename U, typename V>
+ __attribute__((always_inline)) static inline bool
+ toku_sync_bool_compare_and_swap(T *addr, U oldval, V newval) {
+ paranoid_invariant(!crosses_boundary(addr, sizeof *addr));
+- return __sync_bool_compare_and_swap(addr, oldval, newval);
++ return static_cast<bool>(__atomic_compare_exchange(addr, oldval, newval));
+ }
+
+ // in case you include this but not toku_portability.h
diff --git a/meta-oe/recipes-dbs/rocksdb/files/arm.patch b/meta-oe/recipes-dbs/rocksdb/files/arm.patch
new file mode 100644
index 0000000000..3066aa8279
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/arm.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..cea70352d1
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/mips.patch
@@ -0,0 +1,20 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..273b8fe2ed
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/files/ppc64.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Pending
+
+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/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch b/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch
deleted file mode 100644
index be498974af..0000000000
--- a/meta-oe/recipes-dbs/rocksdb/rocksdb/0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-From 8d65d70b54d1d306a0a0b00e036bc8ddd39d8ec1 Mon Sep 17 00:00:00 2001
-From: "przemyslaw.skibinski@percona.com" <przemyslaw.skibinski@percona.com>
-Date: Fri, 20 Apr 2018 13:28:05 -0700
-Subject: [PATCH] Fix GitHub issue #3716: gcc-8 warnings
-
-Summary:
-Fix the following gcc-8 warnings:
-- conflicting C language linkage declaration [-Werror]
-- writing to an object with no trivial copy-assignment [-Werror=class-memaccess]
-- array subscript -1 is below array bounds [-Werror=array-bounds]
-
-Solves https://github.com/facebook/rocksdb/issues/3716
-Closes https://github.com/facebook/rocksdb/pull/3736
-
-Differential Revision: D7684161
-
-Pulled By: yiwu-arbug
-
-fbshipit-source-id: 47c0423d26b74add251f1d3595211eee1e41e54a
----
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Backport [https://github.com/facebook/rocksdb/commit/dee95a1afc6c63515e7d94dec33acdb79638b6d7.patch]
-
- db/c.cc | 77 ++++++++++++++-------------------------
- memtable/inlineskiplist.h | 12 +++---
- 2 files changed, 33 insertions(+), 56 deletions(-)
-
-diff --git a/db/c.cc b/db/c.cc
-index 064103ed4..0d485d096 100644
---- a/db/c.cc
-+++ b/db/c.cc
-@@ -1388,23 +1388,24 @@ void rocksdb_writebatch_put_log_data(
- b->rep.PutLogData(Slice(blob, len));
- }
-
-+class H : public WriteBatch::Handler {
-+ public:
-+ void* state_;
-+ void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
-+ void (*deleted_)(void*, const char* k, size_t klen);
-+ virtual void Put(const Slice& key, const Slice& value) override {
-+ (*put_)(state_, key.data(), key.size(), value.data(), value.size());
-+ }
-+ virtual void Delete(const Slice& key) override {
-+ (*deleted_)(state_, key.data(), key.size());
-+ }
-+};
-+
- void rocksdb_writebatch_iterate(
- rocksdb_writebatch_t* b,
- void* state,
- void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
- void (*deleted)(void*, const char* k, size_t klen)) {
-- class H : public WriteBatch::Handler {
-- public:
-- void* state_;
-- void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
-- void (*deleted_)(void*, const char* k, size_t klen);
-- virtual void Put(const Slice& key, const Slice& value) override {
-- (*put_)(state_, key.data(), key.size(), value.data(), value.size());
-- }
-- virtual void Delete(const Slice& key) override {
-- (*deleted_)(state_, key.data(), key.size());
-- }
-- };
- H handler;
- handler.state_ = state;
- handler.put_ = put;
-@@ -1649,18 +1650,6 @@ void rocksdb_writebatch_wi_iterate(
- void* state,
- void (*put)(void*, const char* k, size_t klen, const char* v, size_t vlen),
- void (*deleted)(void*, const char* k, size_t klen)) {
-- class H : public WriteBatch::Handler {
-- public:
-- void* state_;
-- void (*put_)(void*, const char* k, size_t klen, const char* v, size_t vlen);
-- void (*deleted_)(void*, const char* k, size_t klen);
-- virtual void Put(const Slice& key, const Slice& value) override {
-- (*put_)(state_, key.data(), key.size(), value.data(), value.size());
-- }
-- virtual void Delete(const Slice& key) override {
-- (*deleted_)(state_, key.data(), key.size());
-- }
-- };
- H handler;
- handler.state_ = state;
- handler.put_ = put;
-@@ -3109,20 +3098,21 @@ void rocksdb_slicetransform_destroy(rocksdb_slicetransform_t* st) {
- delete st;
- }
-
-+struct Wrapper : public rocksdb_slicetransform_t {
-+ const SliceTransform* rep_;
-+ ~Wrapper() { delete rep_; }
-+ const char* Name() const override { return rep_->Name(); }
-+ Slice Transform(const Slice& src) const override {
-+ return rep_->Transform(src);
-+ }
-+ bool InDomain(const Slice& src) const override {
-+ return rep_->InDomain(src);
-+ }
-+ bool InRange(const Slice& src) const override { return rep_->InRange(src); }
-+ static void DoNothing(void*) { }
-+};
-+
- rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t prefixLen) {
-- struct Wrapper : public rocksdb_slicetransform_t {
-- const SliceTransform* rep_;
-- ~Wrapper() { delete rep_; }
-- const char* Name() const override { return rep_->Name(); }
-- Slice Transform(const Slice& src) const override {
-- return rep_->Transform(src);
-- }
-- bool InDomain(const Slice& src) const override {
-- return rep_->InDomain(src);
-- }
-- bool InRange(const Slice& src) const override { return rep_->InRange(src); }
-- static void DoNothing(void*) { }
-- };
- Wrapper* wrapper = new Wrapper;
- wrapper->rep_ = rocksdb::NewFixedPrefixTransform(prefixLen);
- wrapper->state_ = nullptr;
-@@ -3131,19 +3121,6 @@ rocksdb_slicetransform_t* rocksdb_slicetransform_create_fixed_prefix(size_t pref
- }
-
- rocksdb_slicetransform_t* rocksdb_slicetransform_create_noop() {
-- struct Wrapper : public rocksdb_slicetransform_t {
-- const SliceTransform* rep_;
-- ~Wrapper() { delete rep_; }
-- const char* Name() const override { return rep_->Name(); }
-- Slice Transform(const Slice& src) const override {
-- return rep_->Transform(src);
-- }
-- bool InDomain(const Slice& src) const override {
-- return rep_->InDomain(src);
-- }
-- bool InRange(const Slice& src) const override { return rep_->InRange(src); }
-- static void DoNothing(void*) { }
-- };
- Wrapper* wrapper = new Wrapper;
- wrapper->rep_ = rocksdb::NewNoopTransform();
- wrapper->state_ = nullptr;
-diff --git a/memtable/inlineskiplist.h b/memtable/inlineskiplist.h
-index 702a7336d..eadda1dc1 100644
---- a/memtable/inlineskiplist.h
-+++ b/memtable/inlineskiplist.h
-@@ -280,7 +280,7 @@ struct InlineSkipList<Comparator>::Node {
- // next_[0]. This is used for passing data from AllocateKey to Insert.
- void StashHeight(const int height) {
- assert(sizeof(int) <= sizeof(next_[0]));
-- memcpy(&next_[0], &height, sizeof(int));
-+ memcpy(static_cast<void*>(&next_[0]), &height, sizeof(int));
- }
-
- // Retrieves the value passed to StashHeight. Undefined after a call
-@@ -300,30 +300,30 @@ struct InlineSkipList<Comparator>::Node {
- assert(n >= 0);
- // Use an 'acquire load' so that we observe a fully initialized
- // version of the returned Node.
-- return (next_[-n].load(std::memory_order_acquire));
-+ return ((&next_[0] - n)->load(std::memory_order_acquire));
- }
-
- void SetNext(int n, Node* x) {
- assert(n >= 0);
- // Use a 'release store' so that anybody who reads through this
- // pointer observes a fully initialized version of the inserted node.
-- next_[-n].store(x, std::memory_order_release);
-+ (&next_[0] - n)->store(x, std::memory_order_release);
- }
-
- bool CASNext(int n, Node* expected, Node* x) {
- assert(n >= 0);
-- return next_[-n].compare_exchange_strong(expected, x);
-+ return (&next_[0] - n)->compare_exchange_strong(expected, x);
- }
-
- // No-barrier variants that can be safely used in a few locations.
- Node* NoBarrier_Next(int n) {
- assert(n >= 0);
-- return next_[-n].load(std::memory_order_relaxed);
-+ return (&next_[0] - n)->load(std::memory_order_relaxed);
- }
-
- void NoBarrier_SetNext(int n, Node* x) {
- assert(n >= 0);
-- next_[-n].store(x, std::memory_order_relaxed);
-+ (&next_[0] - n)->store(x, std::memory_order_relaxed);
- }
-
- // Insert node after prev on specific level.
---
-2.17.0
-
diff --git a/meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.bb
new file mode 100644
index 0000000000..8faaee40f6
--- /dev/null
+++ b/meta-oe/recipes-dbs/rocksdb/rocksdb_7.9.2.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 = "444b3f4845dd01b0d127c4b420fdd3b50ad56682"
+SRCBRANCH = "7.9.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://0001-Add-missing-includes-cstdint-and-cstdio.patch \
+ file://0001-cmake-Do-not-add-msse4.2-mpclmul-on-clang.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_git.bb b/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
deleted file mode 100644
index 594d1a9c77..0000000000
--- a/meta-oe/recipes-dbs/rocksdb/rocksdb_git.bb
+++ /dev/null
@@ -1,32 +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) & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.Apache;md5=3b83ef96387f14655fc854ddc3c6bd57 \
- file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://LICENSE.leveldb;md5=fb04ff57a14f308f2eed4a9b87d45837"
-
-SRCREV = "c60df9d9e7629fe208a9b848293a5599f83d5e77"
-SRCBRANCH = "5.13.fb"
-PV = "5.13.1"
-
-SRC_URI = "git://github.com/facebook/${BPN}.git;branch=${SRCBRANCH} \
- file://0001-Fix-GitHub-issue-3716-gcc-8-warnings.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ??= "bzip2 zlib lz4"
-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[lite] = "-DROCKSDB_LITE=ON,-DROCKSDB_LITE=OFF"
-
-# Tools and tests currently don't compile on armv5 so we disable them
-EXTRA_OECMAKE = "\
- -DPORTABLE=ON \
- -DWITH_TESTS=OFF \
- -DWITH_TOOLS=OFF \
-"
diff --git a/meta-oe/recipes-dbs/soci/soci/0001-Do-not-use-std-shuffle-with-clang-15.patch b/meta-oe/recipes-dbs/soci/soci/0001-Do-not-use-std-shuffle-with-clang-15.patch
new file mode 100644
index 0000000000..eb29627c6d
--- /dev/null
+++ b/meta-oe/recipes-dbs/soci/soci/0001-Do-not-use-std-shuffle-with-clang-15.patch
@@ -0,0 +1,32 @@
+From e5f72c656829402c6f70e7416039bc18f0c26485 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Aug 2022 22:17:14 -0700
+Subject: [PATCH] Do not use std::shuffle with clang 15
+
+This fails to compile although its preferred approach for c++11 and
+newer
+
+See
+https://github.com/SOCI/soci/issues/984
+
+Upstream-Status: Inappropriate [Workaround]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/SociConfig.cmake | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cmake/SociConfig.cmake b/cmake/SociConfig.cmake
+index 492e1837..f24fd9a6 100644
+--- a/cmake/SociConfig.cmake
++++ b/cmake/SociConfig.cmake
+@@ -94,6 +94,7 @@ else()
+ set(SOCI_CXX11 ON)
+ set(SOCI_CXX_VERSION_FLAGS "-std=c++11")
+ add_definitions(-DCATCH_CONFIG_CPP11_NO_IS_ENUM)
++ add_definitions(-DCATCH_CONFIG_CPP11_NO_SHUFFLE)
+
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SOCI_GCC_CLANG_COMMON_FLAGS} ${SOCI_CXX_VERSION_FLAGS}")
+
+--
+2.37.3
+
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_3.2.3.bb b/meta-oe/recipes-dbs/soci/soci_3.2.3.bb
deleted file mode 100644
index 3f22d38181..0000000000
--- a/meta-oe/recipes-dbs/soci/soci_3.2.3.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-DESCRIPTION = "The C++ Database Access Library"
-HOMEPAGE = "http://soci.sourceforge.net"
-LICENSE = "BSL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
-SECTION = "libs"
-DEPENDS = "boost"
-
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BP}/${BP}.tar.gz \
- file://soci_libdir.patch \
- "
-SRC_URI[md5sum] = "acfbccf176cd20e06833a8037a2d3699"
-SRC_URI[sha256sum] = "2c659db0f4f7b424bbcffe195c03c293a1dbf676189a27b077fb2aab4d53a610"
-
-TESTCONFIG = '-DSOCI_TEST_EMPTY_CONNSTR="dummy" -DSOCI_TEST_SQLITE3_CONNSTR="test.db" \
- -DSOCI_TEST_POSTGRESQL_CONNSTR:STRING="dbname=soci_test" \
- -DSOCI_TEST_MYSQL_CONNSTR:STRING="db=soci_test user=oe password=oe"'
-
-OBASEDIR ?= "/opt/oracle"
-OINCDIR = "rdbms/public"
-OLIBDIR = "lib"
-
-PACKAGECONFIG[sqlite3] = "-DSOCI_SQLITE3=ON,-DSOCI_SQLITE3=OFF,sqlite3,"
-PACKAGECONFIG[mysql] = "-DSOCI_MYSQL=ON,-DSOCI_MYSQL=OFF,mariadb,"
-PACKAGECONFIG[postgresql] = "-DSOCI_POSTGRESQL=ON,-DSOCI_POSTGRESQL=OFF,postgresql,"
-PACKAGECONFIG[odbc] = "-DSOCI_ODBC=ON,-DSOCI_ODBC=OFF,,"
-PACKAGECONFIG[empty] = "-DSOCI_EMPTY=ON,-DSOCI_EMPTY=OFF,,"
-PACKAGECONFIG[oracle] = "-DWITH_ORACLE=ON --with-oracle-include=${OINCDIR} --with-oracle-lib=${OLIBDIR},-DWITH_ORACLE=OFF,,"
-PACKAGECONFIG[ptest] = "${TESTCONFIG},,,"
-
-# enable your backend by default we enable 'empty'
-PACKAGECONFIG ??= "empty"
-
-# Take the flags added by PACKAGECONFIG and pass them to cmake.
-EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}"
-DISABLE_STATIC = ""
-
-inherit dos2unix cmake
-
-PACKAGES += "${PN}-sqlite3 ${PN}-mysql ${PN}-postgresql ${PN}-odbc ${PN}-oracle"
-
-FILES_${PN}-sqlite3 = "${libdir}/lib${BPN}_sqlite3.so.*"
-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.*"
diff --git a/meta-oe/recipes-dbs/soci/soci_4.0.3.bb b/meta-oe/recipes-dbs/soci/soci_4.0.3.bb
new file mode 100644
index 0000000000..71ab80c48a
--- /dev/null
+++ b/meta-oe/recipes-dbs/soci/soci_4.0.3.bb
@@ -0,0 +1,45 @@
+DESCRIPTION = "The C++ Database Access Library"
+HOMEPAGE = "http://soci.sourceforge.net"
+LICENSE = "BSL-1.0"
+LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+SECTION = "libs"
+DEPENDS = "boost"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${BP}/${BP}.tar.gz \
+ file://0001-Do-not-use-std-shuffle-with-clang-15.patch \
+ "
+SRC_URI[sha256sum] = "615e5f7e4b52007f3a3b4050a99aadf6346b56b5098eb08b3a650836083c6a33"
+
+TESTCONFIG = '-DSOCI_TEST_EMPTY_CONNSTR="dummy" -DSOCI_TEST_SQLITE3_CONNSTR="test.db" \
+ -DSOCI_TEST_POSTGRESQL_CONNSTR:STRING="dbname=soci_test" \
+ -DSOCI_TEST_MYSQL_CONNSTR:STRING="db=soci_test user=oe password=oe"'
+
+OBASEDIR ?= "/opt/oracle"
+OINCDIR = "rdbms/public"
+OLIBDIR = "lib"
+
+PACKAGECONFIG[sqlite3] = "-DSOCI_SQLITE3=ON,-DSOCI_SQLITE3=OFF,sqlite3,"
+PACKAGECONFIG[mysql] = "-DSOCI_MYSQL=ON,-DSOCI_MYSQL=OFF,mariadb,"
+PACKAGECONFIG[postgresql] = "-DSOCI_POSTGRESQL=ON,-DSOCI_POSTGRESQL=OFF,postgresql,"
+PACKAGECONFIG[odbc] = "-DSOCI_ODBC=ON,-DSOCI_ODBC=OFF,,"
+PACKAGECONFIG[empty] = "-DSOCI_EMPTY=ON,-DSOCI_EMPTY=OFF,,"
+PACKAGECONFIG[oracle] = "-DWITH_ORACLE=ON --with-oracle-include=${OINCDIR} --with-oracle-lib=${OLIBDIR},-DWITH_ORACLE=OFF,,"
+PACKAGECONFIG[firebird] = "-DWITH_FIREBIRD=ON,-DWITH_FIREBIRD=OFF,,"
+PACKAGECONFIG[ptest] = "${TESTCONFIG},,,"
+
+# enable your backend by default we enable 'empty'
+PACKAGECONFIG ??= "empty"
+
+# Take the flags added by PACKAGECONFIG and pass them to cmake.
+EXTRA_OECMAKE = "${EXTRA_OECONF} -DSOCI_LIBDIR=${libdir}"
+DISABLE_STATIC = ""
+
+inherit dos2unix cmake
+
+PACKAGES += "${PN}-sqlite3 ${PN}-mysql ${PN}-postgresql ${PN}-odbc ${PN}-oracle"
+
+FILES:${PN}-sqlite3 = "${libdir}/lib${BPN}_sqlite3.so.*"
+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.*"
diff --git a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch b/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch
deleted file mode 100644
index c5d7c0c81a..0000000000
--- a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/0001-shell.c-Fix-format-not-a-string-literal-warning.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 443980ddc82fb40e2e1f9544f2be169bd23dd246 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 17 Jun 2017 16:49:24 -0700
-Subject: [PATCH] shell.c: Fix format not a string literal warning
-
-src/shell.c:695:20: error: format not a string literal and no format arguments [-Werror=format-security]
-| fprintf(stderr,zHelp);
-| ^~~~~
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/shell.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/shell.c b/src/shell.c
-index bb46c49..3c6fe0f 100644
---- a/src/shell.c
-+++ b/src/shell.c
-@@ -692,7 +692,7 @@ static int do_meta_command(char *zLine, struct callback_data *p){
- }else
-
- if( c=='h' && strncmp(azArg[0], "help", n)==0 ){
-- fprintf(stderr,zHelp);
-+ fprintf(stderr, "%s", zHelp);
- }else
-
- if( c=='i' && strncmp(azArg[0], "indices", n)==0 && nArg>1 ){
---
-2.13.1
-
diff --git a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch b/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
deleted file mode 100644
index 914422f1df..0000000000
--- a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_build_dynamic.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -urN sqlite-2.8.17.orig/main.mk sqlite-2.8.17/main.mk
---- sqlite-2.8.17.orig/main.mk 2005-04-23 22:43:23.000000000 +0000
-+++ sqlite-2.8.17/main.mk 2009-04-02 20:10:36.000000000 +0000
-@@ -139,7 +139,7 @@
- # This is the default Makefile target. The objects listed here
- # are what get build when you type just "make" with no arguments.
- #
--all: sqlite.h config.h libsqlite.a sqlite$(EXE)
-+all: sqlite.h config.h libsqlite.so sqlite$(EXE)
-
- # Generate the file "last_change" which contains the date of change
- # of the most recently modified source code file
-@@ -148,13 +148,12 @@
- cat $(SRC) | grep '$$Id: ' | sort +4 | tail -1 \
- | awk '{print $$5,$$6}' >last_change
-
--libsqlite.a: $(LIBOBJ)
-- $(AR) libsqlite.a $(LIBOBJ)
-- $(RANLIB) libsqlite.a
--
--sqlite$(EXE): $(TOP)/src/shell.c libsqlite.a sqlite.h
-- $(TCCX) $(READLINE_FLAGS) -o sqlite$(EXE) $(TOP)/src/shell.c \
-- libsqlite.a $(LIBREADLINE) $(THREADLIB)
-+libsqlite.so: $(LIBOBJ)
-+ $(CC) $(LDFLAGS) -shared -o libsqlite.so -Wl,-soname,libsqlite.so.0 $(LIBOBJ)
-+
-+sqlite$(EXE): $(TOP)/src/shell.c libsqlite.so sqlite.h
-+ $(TCCX) $(LDFLAGS) $(READLINE_FLAGS) -o sqlite$(EXE) $(TOP)/src/shell.c \
-+ -lsqlite $(LIBREADLINE) $(THREADLIB)
-
- sqlite_analyzer$(EXE): $(TOP)/src/tclsqlite.c libsqlite.a $(TESTSRC) \
- $(TOP)/tool/spaceanal.tcl
diff --git a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch b/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
deleted file mode 100644
index b84b6486ef..0000000000
--- a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/mainmk_no_tcl.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff -bur sqlite-2.8.17~orig/main.mk sqlite-2.8.17/main.mk
---- sqlite-2.8.17~orig/main.mk 2006-02-13 04:09:33.000000000 -0600
-+++ sqlite-2.8.17/main.mk 2006-02-13 04:15:42.000000000 -0600
-@@ -58,7 +58,7 @@
- expr.o func.o hash.o insert.o \
- main.o opcodes.o os.o pager.o parse.o pragma.o printf.o random.o \
- select.o table.o tokenize.o trigger.o update.o util.o \
-- vacuum.o vdbe.o vdbeaux.o where.o tclsqlite.o
-+ vacuum.o vdbe.o vdbeaux.o where.o
-
- # All of the source code files.
- #
-@@ -91,7 +91,6 @@
- $(TOP)/src/sqlite.h.in \
- $(TOP)/src/sqliteInt.h \
- $(TOP)/src/table.c \
-- $(TOP)/src/tclsqlite.c \
- $(TOP)/src/tokenize.c \
- $(TOP)/src/trigger.c \
- $(TOP)/src/update.c \
diff --git a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/sqlite.pc b/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/sqlite.pc
deleted file mode 100644
index 6bc742eecb..0000000000
--- a/meta-oe/recipes-dbs/sqlite/sqlite-2.8.17/sqlite.pc
+++ /dev/null
@@ -1,12 +0,0 @@
-# Package Information for pkg-config
-
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: SQLite
-Description: SQL database engine
-Version: 2.8.17
-Libs: -L${libdir} -lsqlite
-Cflags: -I${includedir}
diff --git a/meta-oe/recipes-dbs/sqlite/sqlite_2.8.17.bb b/meta-oe/recipes-dbs/sqlite/sqlite_2.8.17.bb
deleted file mode 100644
index 501c0e3e77..0000000000
--- a/meta-oe/recipes-dbs/sqlite/sqlite_2.8.17.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "An Embeddable SQL Database Engine"
-HOMEPAGE = "http://www.sqlite.org/"
-SECTION = "libs"
-DEPENDS = "readline ncurses"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=10;md5=e98469a8efa024a38ad5b2e4b92f4a96"
-
-PR = "r7"
-
-SRC_URI = "http://www.hwaci.com/sw/sqlite/sqlite-${PV}.tar.gz \
- file://mainmk_build_dynamic.patch \
- file://mainmk_no_tcl.patch \
- file://sqlite.pc \
- file://0001-shell.c-Fix-format-not-a-string-literal-warning.patch \
- "
-
-SOURCES = "attach.o auth.o btree.o btree_rb.o build.o copy.o date.o delete.o \
- expr.o func.o hash.o insert.o main.o opcodes.o os.o pager.o \
- parse.o pragma.o printf.o random.o select.o table.o tokenize.o \
- trigger.o update.o util.o vacuum.o vdbe.o vdbeaux.o where.o"
-
-inherit autotools pkgconfig
-
-do_configure() {
- echo "main.mk is patched, no need to configure"
- # make pkgconfig.bbclass pick this up
- cp ${WORKDIR}/sqlite.pc ${S}
-}
-
-do_compile() {
- oe_runmake -f ${S}/Makefile.linux-gcc \
- TOP="${S}" \
- BCC="${BUILD_CC}" \
- TCC="${CC}" \
- OPTS="-fPIC -D'INTPTR_TYPE=int'" \
- TCL_FLAGS= LIBTCL= \
- READLINE_FLAGS="-DHAVE_READLINE=1 -I${STAGING_INCDIR}" \
- LIBREADLINE="-L. -L${STAGING_LIBDIR} -lreadline -lncurses"
-}
-
-do_install() {
- install -d ${D}${libdir} ${D}${bindir}
- install sqlite ${D}${bindir}
- install -m 0755 libsqlite.so ${D}${libdir}/libsqlite.so.0.8.6
- ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so
- ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so.0
- ln -sf libsqlite.so.0.8.6 ${D}${libdir}/libsqlite.so.0.8
- install -d ${D}${includedir}
- install -m 0644 sqlite.h ${D}${includedir}/sqlite.h
- install -d ${D}${libdir}/pkgconfig
- install -m 0644 ${S}/sqlite.pc ${D}${libdir}/pkgconfig/sqlite.pc
-}
-
-PACKAGES += "${PN}-bin"
-FILES_${PN}-bin = "${bindir}/*"
-FILES_${PN} = "${libdir}/*.so.*"
-
-SRC_URI[md5sum] = "838dbac20b56d2c4292e98848505a05b"
-SRC_URI[sha256sum] = "3f35ebfb67867fb5b583a03e480f900206af637efe7179b32294a6a0cf806f37"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
new file mode 100644
index 0000000000..5242b29e06
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-absl-always-use-asm-sgidefs.h.patch
@@ -0,0 +1,39 @@
+From 738549dea7a4e6c462a79962c414eaa450c2cffd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 9 Apr 2020 13:06:27 -0700
+Subject: [PATCH 1/3] absl: always use <asm/sgidefs.h>
+
+Fixes mips/musl build, since sgidefs.h is not present on all C libraries
+but on linux asm/sgidefs.h is there and contains same definitions, using
+that makes it portable.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ absl/base/internal/direct_mmap.h | 6 +-----
+ 1 file changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/absl/base/internal/direct_mmap.h b/absl/base/internal/direct_mmap.h
+index e492bb0..c8a4fba 100644
+--- a/absl/base/internal/direct_mmap.h
++++ b/absl/base/internal/direct_mmap.h
+@@ -41,13 +41,9 @@
+
+ #ifdef __mips__
+ // Include definitions of the ABI currently in use.
+-#if defined(__BIONIC__) || !defined(__GLIBC__)
+-// Android doesn't have sgidefs.h, but does have asm/sgidefs.h, which has the
++// bionic/musl C libs don't have sgidefs.h, but do have asm/sgidefs.h, which has the
+ // definitions we need.
+ #include <asm/sgidefs.h>
+-#else
+-#include <sgidefs.h>
+-#endif // __BIONIC__ || !__GLIBC__
+ #endif // __mips__
+
+ // SYS_mmap and SYS_munmap are not defined in Android.
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-direct_mmap-Use-off_t-on-linux.patch b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-direct_mmap-Use-off_t-on-linux.patch
new file mode 100644
index 0000000000..49df528d7e
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0001-direct_mmap-Use-off_t-on-linux.patch
@@ -0,0 +1,42 @@
+From 45fdade6c0415ec5af3f9312e6311a4ccc682a7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Dec 2022 18:24:21 -0800
+Subject: [PATCH] direct_mmap: Use off_t on linux
+
+off64_t is not provided without defining _LARGEFILE64_SOURCE on musl
+this define is not defined automatically like glibc where it gets
+defined when _GNU_SOURCE is defined. Using off_t makes it portable
+across musl/glibc and for using 64bit off_t on glibc 32bit systems
+-D_FILE_OFFSET_BITS=64 can be defined during build via CXXFLAGS
+
+Upstream-Status: Submitted [https://github.com/abseil/abseil-cpp/pull/1349]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ absl/base/internal/direct_mmap.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/absl/base/internal/direct_mmap.h b/absl/base/internal/direct_mmap.h
+index 815b8d23..fdf88f0b 100644
+--- a/absl/base/internal/direct_mmap.h
++++ b/absl/base/internal/direct_mmap.h
+@@ -72,7 +72,7 @@ namespace base_internal {
+ // Platform specific logic extracted from
+ // https://chromium.googlesource.com/linux-syscall-support/+/master/linux_syscall_support.h
+ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+- off64_t offset) noexcept {
++ off_t offset) noexcept {
+ #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
+ defined(__m68k__) || defined(__sh__) || \
+ (defined(__hppa__) && !defined(__LP64__)) || \
+@@ -102,7 +102,7 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+ #else
+ return reinterpret_cast<void*>(
+ syscall(SYS_mmap2, start, length, prot, flags, fd,
+- static_cast<off_t>(offset / pagesize)));
++ offset / pagesize));
+ #endif
+ #elif defined(__s390x__)
+ // On s390x, mmap() arguments are passed in memory.
+--
+2.39.0
+
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
new file mode 100644
index 0000000000..b92a487523
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0002-Remove-maes-option-from-cross-compilation.patch
@@ -0,0 +1,39 @@
+From d25cf3b9aa873595a19e197cc29ab46c0093bff1 Mon Sep 17 00:00:00 2001
+From: Sinan Kaya <sinan.kaya@microsoft.com>
+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/absl/copts/GENERATED_AbseilCopts.cmake b/absl/copts/GENERATED_AbseilCopts.cmake
+index a4ab1aa2041e..23b9253c1f00 100644
+--- a/absl/copts/GENERATED_AbseilCopts.cmake
++++ b/absl/copts/GENERATED_AbseilCopts.cmake
+@@ -158,7 +158,3 @@ list(APPEND ABSL_RANDOM_HWAES_ARM64_FLAGS
+ list(APPEND ABSL_RANDOM_HWAES_MSVC_X64_FLAGS
+ )
+
+-list(APPEND ABSL_RANDOM_HWAES_X64_FLAGS
+- "-maes"
+- "-msse4.1"
+-)
+diff --git a/absl/copts/GENERATED_copts.bzl b/absl/copts/GENERATED_copts.bzl
+index a6efc98e11d4..1e847f769501 100644
+--- a/absl/copts/GENERATED_copts.bzl
++++ b/absl/copts/GENERATED_copts.bzl
+@@ -159,7 +159,3 @@ ABSL_RANDOM_HWAES_ARM64_FLAGS = [
+ ABSL_RANDOM_HWAES_MSVC_X64_FLAGS = [
+ ]
+
+-ABSL_RANDOM_HWAES_X64_FLAGS = [
+- "-maes",
+- "-msse4.1",
+-]
+--
+2.36.1
+
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
new file mode 100644
index 0000000000..1a80a428b7
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/0003-Remove-neon-option-from-cross-compilation.patch
@@ -0,0 +1,49 @@
+From fb24c3e3539b5743d398a429a302a3886186f261 Mon Sep 17 00:00:00 2001
+From: Jonas Gorski <jonas.gorski@bisdn.de>
+Date: Thu, 16 Jun 2022 11:46:31 +0000
+Subject: [PATCH 3/3] Remove neon option from cross compilation
+
+Not every arm platform supports neon instructions, so do not enforce
+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/absl/copts/GENERATED_AbseilCopts.cmake b/absl/copts/GENERATED_AbseilCopts.cmake
+index 23b9253c1f00..5d112a97f3e4 100644
+--- a/absl/copts/GENERATED_AbseilCopts.cmake
++++ b/absl/copts/GENERATED_AbseilCopts.cmake
+@@ -147,10 +147,6 @@ list(APPEND ABSL_MSVC_TEST_FLAGS
+ "/DNOMINMAX"
+ )
+
+-list(APPEND ABSL_RANDOM_HWAES_ARM32_FLAGS
+- "-mfpu=neon"
+-)
+-
+ list(APPEND ABSL_RANDOM_HWAES_ARM64_FLAGS
+ "-march=armv8-a+crypto"
+ )
+diff --git a/absl/copts/GENERATED_copts.bzl b/absl/copts/GENERATED_copts.bzl
+index 1e847f769501..3e10db204faf 100644
+--- a/absl/copts/GENERATED_copts.bzl
++++ b/absl/copts/GENERATED_copts.bzl
+@@ -148,10 +148,6 @@ ABSL_MSVC_TEST_FLAGS = [
+ "/DNOMINMAX",
+ ]
+
+-ABSL_RANDOM_HWAES_ARM32_FLAGS = [
+- "-mfpu=neon",
+-]
+-
+ ABSL_RANDOM_HWAES_ARM64_FLAGS = [
+ "-march=armv8-a+crypto",
+ ]
+--
+2.36.1
+
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
new file mode 100644
index 0000000000..f2ebd9f08c
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp/abseil-ppc-fixes.patch
@@ -0,0 +1,81 @@
+Upstream-Status: Pending
+
+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)
+3) powerpc stacktrace implementation has ppc64 assumptions (fixed)
+4) examine_stack.cpp makes glibc assumptions on powerpc (fixed)
+
+Sourced from void linux
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/absl/base/internal/unscaledcycleclock.cc
++++ b/absl/base/internal/unscaledcycleclock.cc
+@@ -20,7 +20,7 @@
+ #include <intrin.h>
+ #endif
+
+-#if defined(__powerpc__) || defined(__ppc__)
++#if (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
+ #ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
+ #elif defined(__FreeBSD__)
+@@ -58,7 +58,7 @@ double UnscaledCycleClock::Frequency() {
+ return base_internal::NominalCPUFrequency();
+ }
+
+-#elif defined(__powerpc__) || defined(__ppc__)
++#elif (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
+
+ int64_t UnscaledCycleClock::Now() {
+ #ifdef __GLIBC__
+--- 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__) || \
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
++ defined(__riscv) || \
+ defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
+--- a/absl/debugging/internal/examine_stack.cc
++++ b/absl/debugging/internal/examine_stack.cc
+@@ -33,6 +33,10 @@
+ #include <csignal>
+ #include <cstdio>
+
++#if defined(__powerpc__)
++#include <asm/ptrace.h>
++#endif
++
+ #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) {
+ return reinterpret_cast<void*>(context->uc_mcontext.pc);
+ #elif defined(__powerpc64__)
+ return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
+-#elif defined(__powerpc__)
++#elif defined(__powerpc__) && defined(__GLIBC__)
+ return reinterpret_cast<void*>(context->uc_mcontext.uc_regs->gregs[32]);
++#elif defined(__powerpc__)
++ return reinterpret_cast<void*>((context->uc_regs)->gregs[32]);
+ #elif defined(__riscv)
+ return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
+ #elif defined(__s390__) && !defined(__s390x__)
+--- a/absl/debugging/internal/stacktrace_config.h
++++ b/absl/debugging/internal/stacktrace_config.h
+@@ -60,7 +60,7 @@
+ #elif defined(__i386__) || defined(__x86_64__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_x86-inl.inc"
+-#elif defined(__ppc__) || defined(__PPC__)
++#elif (defined(__ppc__) || defined(__PPC__)) && defined(__GLIBC__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_powerpc-inl.inc"
+ #elif defined(__aarch64__)
diff --git a/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
new file mode 100644
index 0000000000..dd7ce4aee4
--- /dev/null
+++ b/meta-oe/recipes-devtools/abseil-cpp/abseil-cpp_git.bb
@@ -0,0 +1,36 @@
+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 = "20230125.3"
+SRCREV = "c2435f8342c2d0ed8101cb43adfd605fdc52dca2"
+BRANCH = "lts_2023_01_25"
+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 \
+ file://0001-direct_mmap-Use-off_t-on-linux.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 \
+ -DABSL_ENABLE_INSTALL=ON \
+ "
+
+BBCLASSEXTEND = "native nativesdk"
+
+FILES:${PN}-dev += "${includedir} ${libdir}/cmake ${libdir}/pkgconfig"
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/10-adbd-configfs.conf
new file mode 100644
index 0000000000..ddf155a907
--- /dev/null
+++ b/meta-oe/recipes-devtools/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/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-cleanup b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-cleanup
new file mode 100644
index 0000000000..f27d77df51
--- /dev/null
+++ b/meta-oe/recipes-devtools/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 -n "" > 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/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-setup b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-setup
new file mode 100644
index 0000000000..dbd7115151
--- /dev/null
+++ b/meta-oe/recipes-devtools/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 -n 0x18d1 > idVendor
+echo -n 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/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
new file mode 100644
index 0000000000..76b5e29624
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs/android-gadget-start
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+set -e
+
+sleep 10
+
+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-conf-configfs_1.0.bb b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs_1.0.bb
new file mode 100644
index 0000000000..3f9d49a2d2
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools-conf-configfs_1.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "Different utilities from Android - corressponding 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/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup b/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup
index f7d9973722..26cf30eddd 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup
+++ b/meta-oe/recipes-devtools/android-tools/android-tools-conf/android-gadget-setup
@@ -1,11 +1,23 @@
#!/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
@@ -17,7 +29,7 @@ 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_usbid_usb/android0/idVendor
+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
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb b/meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb
index af98f92f05..34b1a9bdd2 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb
+++ b/meta-oe/recipes-devtools/android-tools/android-tools-conf_1.0.bb
@@ -11,3 +11,10 @@ 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/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch b/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
deleted file mode 100644
index 680d21f3ac..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/0001-add-base64-implementation.patch
+++ /dev/null
@@ -1,351 +0,0 @@
-From bbeb72f11c64f190b23abbed5f44311bd021bdc9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 15 Sep 2017 15:46:38 -0700
-Subject: [PATCH 1/2] add base64 implementation
-
-musl needs it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- system/core/adb/adb_auth_client.c | 2 +-
- system/core/adb/base64.c | 315 ++++++++++++++++++++++++++++++++++++++
- 2 files changed, 316 insertions(+), 1 deletion(-)
- create mode 100644 system/core/adb/base64.c
-
-diff --git a/system/core/adb/adb_auth_client.c b/system/core/adb/adb_auth_client.c
-index 55e9dca..104b413 100644
---- a/system/core/adb/adb_auth_client.c
-+++ b/system/core/adb/adb_auth_client.c
-@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list)
- if (sep)
- *sep = '\0';
-
-- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
-+ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
- if (ret != sizeof(key->key)) {
- D("%s: Invalid base64 data ret=%d\n", file, ret);
- free(key);
-diff --git a/system/core/adb/base64.c b/system/core/adb/base64.c
-new file mode 100644
-index 0000000..95da284
---- /dev/null
-+++ b/system/core/adb/base64.c
-@@ -0,0 +1,315 @@
-+/*
-+ * Copyright (c) 1996-1999 by Internet Software Consortium.
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
-+ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
-+ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
-+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
-+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
-+ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
-+ * SOFTWARE.
-+ */
-+
-+/*
-+ * Portions Copyright (c) 1995 by International Business Machines, Inc.
-+ *
-+ * International Business Machines, Inc. (hereinafter called IBM) grants
-+ * permission under its copyrights to use, copy, modify, and distribute this
-+ * Software with or without fee, provided that the above copyright notice and
-+ * all paragraphs of this notice appear in all copies, and that the name of IBM
-+ * not be used in connection with the marketing of any product incorporating
-+ * the Software or modifications thereof, without specific, written prior
-+ * permission.
-+ *
-+ * To the extent it has a right to do so, IBM grants an immunity from suit
-+ * under its patents, if any, for the use, sale or manufacture of products to
-+ * the extent that such products are used for performing Domain Name System
-+ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
-+ * granted for any product per se or for any other function of any product.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
-+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-+ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
-+ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
-+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
-+ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
-+ */
-+
-+#if !defined(LINT) && !defined(CODECENTER)
-+static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $";
-+#endif /* not lint */
-+
-+#include <sys/types.h>
-+#include <sys/param.h>
-+#include <sys/socket.h>
-+
-+#include <netinet/in.h>
-+#include <arpa/inet.h>
-+#include <arpa/nameser.h>
-+
-+#include <ctype.h>
-+#include <resolv.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <stdint.h>
-+#include <string.h>
-+
-+#define Assert(Cond) if (!(Cond)) abort()
-+
-+static const char Base64[] =
-+ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
-+static const char Pad64 = '=';
-+
-+/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
-+ The following encoding technique is taken from RFC 1521 by Borenstein
-+ and Freed. It is reproduced here in a slightly edited form for
-+ convenience.
-+
-+ A 65-character subset of US-ASCII is used, enabling 6 bits to be
-+ represented per printable character. (The extra 65th character, "=",
-+ is used to signify a special processing function.)
-+
-+ The encoding process represents 24-bit groups of input bits as output
-+ strings of 4 encoded characters. Proceeding from left to right, a
-+ 24-bit input group is formed by concatenating 3 8-bit input groups.
-+ These 24 bits are then treated as 4 concatenated 6-bit groups, each
-+ of which is translated into a single digit in the base64 alphabet.
-+
-+ Each 6-bit group is used as an index into an array of 64 printable
-+ characters. The character referenced by the index is placed in the
-+ output string.
-+
-+ Table 1: The Base64 Alphabet
-+
-+ Value Encoding Value Encoding Value Encoding Value Encoding
-+ 0 A 17 R 34 i 51 z
-+ 1 B 18 S 35 j 52 0
-+ 2 C 19 T 36 k 53 1
-+ 3 D 20 U 37 l 54 2
-+ 4 E 21 V 38 m 55 3
-+ 5 F 22 W 39 n 56 4
-+ 6 G 23 X 40 o 57 5
-+ 7 H 24 Y 41 p 58 6
-+ 8 I 25 Z 42 q 59 7
-+ 9 J 26 a 43 r 60 8
-+ 10 K 27 b 44 s 61 9
-+ 11 L 28 c 45 t 62 +
-+ 12 M 29 d 46 u 63 /
-+ 13 N 30 e 47 v
-+ 14 O 31 f 48 w (pad) =
-+ 15 P 32 g 49 x
-+ 16 Q 33 h 50 y
-+
-+ Special processing is performed if fewer than 24 bits are available
-+ at the end of the data being encoded. A full encoding quantum is
-+ always completed at the end of a quantity. When fewer than 24 input
-+ bits are available in an input group, zero bits are added (on the
-+ right) to form an integral number of 6-bit groups. Padding at the
-+ end of the data is performed using the '=' character.
-+
-+ Since all base64 input is an integral number of octets, only the
-+ -------------------------------------------------
-+ following cases can arise:
-+
-+ (1) the final quantum of encoding input is an integral
-+ multiple of 24 bits; here, the final unit of encoded
-+ output will be an integral multiple of 4 characters
-+ with no "=" padding,
-+ (2) the final quantum of encoding input is exactly 8 bits;
-+ here, the final unit of encoded output will be two
-+ characters followed by two "=" padding characters, or
-+ (3) the final quantum of encoding input is exactly 16 bits;
-+ here, the final unit of encoded output will be three
-+ characters followed by one "=" padding character.
-+ */
-+
-+int
-+b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize)
-+{
-+ size_t datalength = 0;
-+ uint8_t input[3];
-+ uint8_t output[4];
-+ size_t i;
-+
-+ while (2 < srclength) {
-+ input[0] = *src++;
-+ input[1] = *src++;
-+ input[2] = *src++;
-+ srclength -= 3;
-+
-+ output[0] = input[0] >> 2;
-+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-+ output[3] = input[2] & 0x3f;
-+ Assert(output[0] < 64);
-+ Assert(output[1] < 64);
-+ Assert(output[2] < 64);
-+ Assert(output[3] < 64);
-+
-+ if (datalength + 4 > targsize)
-+ return (-1);
-+ target[datalength++] = Base64[output[0]];
-+ target[datalength++] = Base64[output[1]];
-+ target[datalength++] = Base64[output[2]];
-+ target[datalength++] = Base64[output[3]];
-+ }
-+
-+ /* Now we worry about padding. */
-+ if (0 != srclength) {
-+ /* Get what's left. */
-+ input[0] = input[1] = input[2] = '\0';
-+ for (i = 0; i < srclength; i++)
-+ input[i] = *src++;
-+
-+ output[0] = input[0] >> 2;
-+ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
-+ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
-+ Assert(output[0] < 64);
-+ Assert(output[1] < 64);
-+ Assert(output[2] < 64);
-+
-+ if (datalength + 4 > targsize)
-+ return (-1);
-+ target[datalength++] = Base64[output[0]];
-+ target[datalength++] = Base64[output[1]];
-+ if (srclength == 1)
-+ target[datalength++] = Pad64;
-+ else
-+ target[datalength++] = Base64[output[2]];
-+ target[datalength++] = Pad64;
-+ }
-+ if (datalength >= targsize)
-+ return (-1);
-+ target[datalength] = '\0'; /* Returned value doesn't count \0. */
-+ return (datalength);
-+}
-+
-+/* skips all whitespace anywhere.
-+ converts characters, four at a time, starting at (or after)
-+ src from base - 64 numbers into three 8 bit bytes in the target area.
-+ it returns the number of data bytes stored at the target, or -1 on error.
-+ */
-+
-+int b64_pton(const char* src, uint8_t* target, size_t targsize)
-+{
-+ int tarindex, state, ch;
-+ char *pos;
-+
-+ state = 0;
-+ tarindex = 0;
-+
-+ while ((ch = *src++) != '\0') {
-+ if (isspace(ch)) /* Skip whitespace anywhere. */
-+ continue;
-+
-+ if (ch == Pad64)
-+ break;
-+
-+ pos = strchr(Base64, ch);
-+ if (pos == 0) /* A non-base64 character. */
-+ return (-1);
-+
-+ switch (state) {
-+ case 0:
-+ if (target) {
-+ if ((size_t)tarindex >= targsize)
-+ return (-1);
-+ target[tarindex] = (pos - Base64) << 2;
-+ }
-+ state = 1;
-+ break;
-+ case 1:
-+ if (target) {
-+ if ((size_t)tarindex + 1 >= targsize)
-+ return (-1);
-+ target[tarindex] |= (pos - Base64) >> 4;
-+ target[tarindex+1] = ((pos - Base64) & 0x0f)
-+ << 4 ;
-+ }
-+ tarindex++;
-+ state = 2;
-+ break;
-+ case 2:
-+ if (target) {
-+ if ((size_t)tarindex + 1 >= targsize)
-+ return (-1);
-+ target[tarindex] |= (pos - Base64) >> 2;
-+ target[tarindex+1] = ((pos - Base64) & 0x03)
-+ << 6;
-+ }
-+ tarindex++;
-+ state = 3;
-+ break;
-+ case 3:
-+ if (target) {
-+ if ((size_t)tarindex >= targsize)
-+ return (-1);
-+ target[tarindex] |= (pos - Base64);
-+ }
-+ tarindex++;
-+ state = 0;
-+ break;
-+ default:
-+ abort();
-+ }
-+ }
-+
-+ /*
-+ * We are done decoding Base-64 chars. Let's see if we ended
-+ * on a byte boundary, and/or with erroneous trailing characters.
-+ */
-+
-+ if (ch == Pad64) { /* We got a pad char. */
-+ ch = *src++; /* Skip it, get next. */
-+ switch (state) {
-+ case 0: /* Invalid = in first position */
-+ case 1: /* Invalid = in second position */
-+ return (-1);
-+
-+ case 2: /* Valid, means one byte of info */
-+ /* Skip any number of spaces. */
-+ for ((void)NULL; ch != '\0'; ch = *src++)
-+ if (!isspace(ch))
-+ break;
-+ /* Make sure there is another trailing = sign. */
-+ if (ch != Pad64)
-+ return (-1);
-+ ch = *src++; /* Skip the = */
-+ /* Fall through to "single trailing =" case. */
-+ /* FALLTHROUGH */
-+
-+ case 3: /* Valid, means two bytes of info */
-+ /*
-+ * We know this char is an =. Is there anything but
-+ * whitespace after it?
-+ */
-+ for ((void)NULL; ch != '\0'; ch = *src++)
-+ if (!isspace(ch))
-+ return (-1);
-+
-+ /*
-+ * Now make sure for cases 2 and 3 that the "extra"
-+ * bits that slopped past the last full byte were
-+ * zeros. If we don't check them, they become a
-+ * subliminal channel.
-+ */
-+ if (target && target[tarindex] != 0)
-+ return (-1);
-+ }
-+ } else {
-+ /*
-+ * We ended by seeing the end of the string. Make sure we
-+ * have no partial bytes lying around.
-+ */
-+ if (state != 0)
-+ return (-1);
-+ }
-+
-+ return (tarindex);
-+}
-+
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch b/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
deleted file mode 100644
index c7aebb6411..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/0002-adb-Musl-fixes.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From f8653ed0ede4aa781ab758fcd44fdc05ffbe0b0a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 15 Sep 2017 15:50:57 -0700
-Subject: [PATCH 2/2] adb: Musl fixes
-
-__nonnull is gcc specific
-include sys/types.h for size_t
-Do not redefine close() and lseek()
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- system/core/adb/adb.h | 2 ++
- system/core/adb/disable_verity_service.c | 13 ++++++++-----
- system/core/adb/framebuffer_service.c | 7 ++++---
- system/core/adb/sysdeps.h | 12 ++++++------
- 4 files changed, 20 insertions(+), 14 deletions(-)
-
-diff --git a/system/core/adb/adb.h b/system/core/adb/adb.h
-index 44e5981..bcdc49f 100644
---- a/system/core/adb/adb.h
-+++ b/system/core/adb/adb.h
-@@ -18,7 +18,9 @@
- #define __ADB_H
-
- #include <limits.h>
-+#include <sys/types.h>
-
-+#include "fdevent.h"
- #include "adb_trace.h"
- #include "transport.h" /* readx(), writex() */
-
-diff --git a/system/core/adb/disable_verity_service.c b/system/core/adb/disable_verity_service.c
-index ed3da52..29fa3d6 100644
---- a/system/core/adb/disable_verity_service.c
-+++ b/system/core/adb/disable_verity_service.c
-@@ -14,25 +14,28 @@
- * limitations under the License.
- */
-
--#include "sysdeps.h"
-
- #define TRACE_TAG TRACE_ADB
- #include "adb.h"
-+#include "sysdeps.h"
-+#include "cutils/properties.h"
-+#include "ext4_sb.h"
-+#include <fs_mgr.h>
-
- #include <stdio.h>
- #include <stdarg.h>
- #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>
-
- #define FSTAB_PREFIX "/fstab."
- struct fstab *fstab;
-
--__attribute__((__format__(printf, 2, 3))) __nonnull((2))
-+__attribute__((__format__(printf, 2, 3))) __attribute__((nonnull((2))))
- static void write_console(int fd, const char* format, ...)
- {
- char buffer[256];
-diff --git a/system/core/adb/framebuffer_service.c b/system/core/adb/framebuffer_service.c
-index 8cbe840..8f0ccfb 100644
---- a/system/core/adb/framebuffer_service.c
-+++ b/system/core/adb/framebuffer_service.c
-@@ -14,6 +14,10 @@
- * limitations under the License.
- */
-
-+#include "fdevent.h"
-+#include "adb.h"
-+#include "sysdeps.h"
-+
- #include <stdlib.h>
- #include <stdio.h>
- #include <unistd.h>
-@@ -23,9 +27,6 @@
- #include <sys/types.h>
- #include <sys/wait.h>
-
--#include "fdevent.h"
--#include "adb.h"
--
- #include <linux/fb.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
-diff --git a/system/core/adb/sysdeps.h b/system/core/adb/sysdeps.h
-index cc1f839..ea39ac3 100644
---- a/system/core/adb/sysdeps.h
-+++ b/system/core/adb/sysdeps.h
-@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd)
- {
- return close(fd);
- }
--#undef close
--#define close ____xxx_close
-+//#undef close
-+//#define close ____xxx_close
-
- static __inline__ int unix_read(int fd, void* buf, size_t len)
- {
-@@ -369,8 +369,8 @@ static __inline__ int adb_close(int fd)
- {
- return close(fd);
- }
--#undef close
--#define close ____xxx_close
-+//#undef close
-+//#define close ____xxx_close
-
-
- 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)
- {
- return lseek(fd, pos, where);
- }
--#undef lseek
--#define lseek ___xxx_lseek
-+//#undef lseek
-+//#define lseek ___xxx_lseek
-
- static __inline__ int adb_unlink(const char* path)
- {
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service b/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service
index 88ed6871d3..ddf8d7f74e 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/android-tools-adbd.service
@@ -1,12 +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
+ExecStartPre=-/usr/bin/android-gadget-setup adb
ExecStart=/usr/bin/adbd
-StandardOutput=null
[Install]
WantedBy=basic.target
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
new file mode 100644
index 0000000000..c091fd404b
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/build/0001-Riscv-Add-risc-v-Android-config-header.patch
@@ -0,0 +1,361 @@
+From 82dce13ea7b5b31c63851bd67f66072413917e73 Mon Sep 17 00:00:00 2001
+From: Chenxi Mao <maochenxi@eswin.com>
+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/core/combo/include/arch/linux-riscv64/AndroidConfig.h b/core/combo/include/arch/linux-riscv64/AndroidConfig.h
+new file mode 100644
+index 0000000000..bcbda8f87f
+--- /dev/null
++++ b/core/combo/include/arch/linux-riscv64/AndroidConfig.h
+@@ -0,0 +1,340 @@
++/*
++ * Copyright (C) 2013 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.
++ */
++
++/*
++ * Android config -- "android-aarch64". Used for ARM aarch64 device builds.
++ */
++#ifndef _ANDROID_CONFIG_H
++#define _ANDROID_CONFIG_H
++
++/*
++ * ===========================================================================
++ * !!! IMPORTANT !!!
++ * ===========================================================================
++ *
++ * This file is included by ALL C/C++ source files. Don't put anything in
++ * here unless you are absolutely certain it can't go anywhere else.
++ *
++ * Any C++ stuff must be wrapped with "#ifdef __cplusplus". Do not use "//"
++ * comments.
++ */
++
++/*
++ * Threading model. Choose one:
++ *
++ * HAVE_PTHREADS - use the pthreads library.
++ * HAVE_WIN32_THREADS - use Win32 thread primitives.
++ * -- combine HAVE_CREATETHREAD, HAVE_CREATEMUTEX, and HAVE__BEGINTHREADEX
++ */
++#define HAVE_PTHREADS
++
++/*
++ * Do we have pthread_setname_np()?
++ *
++ * (HAVE_PTHREAD_SETNAME_NP is used by WebKit to enable a function with
++ * the same name but different parameters, so we can't use that here.)
++ */
++#define HAVE_ANDROID_PTHREAD_SETNAME_NP
++
++/*
++ * Do we have the futex syscall?
++ */
++#define HAVE_FUTEX
++
++/*
++ * Process creation model. Choose one:
++ *
++ * HAVE_FORKEXEC - use fork() and exec()
++ * HAVE_WIN32_PROC - use CreateProcess()
++ */
++#define HAVE_FORKEXEC
++
++/*
++ * Process out-of-memory adjustment. Set if running on Linux,
++ * where we can write to /proc/<pid>/oom_adj to modify the out-of-memory
++ * badness adjustment.
++ */
++#define HAVE_OOM_ADJ
++
++/*
++ * IPC model. Choose one:
++ *
++ * HAVE_SYSV_IPC - use the classic SysV IPC mechanisms (semget, shmget).
++ * HAVE_MACOSX_IPC - use Macintosh IPC mechanisms (sem_open, mmap).
++ * HAVE_WIN32_IPC - use Win32 IPC (CreateSemaphore, CreateFileMapping).
++ * HAVE_ANDROID_IPC - use Android versions (?, mmap).
++ */
++#define HAVE_ANDROID_IPC
++
++/*
++ * Memory-mapping model. Choose one:
++ *
++ * HAVE_POSIX_FILEMAP - use the Posix sys/mmap.h
++ * HAVE_WIN32_FILEMAP - use Win32 filemaps
++ */
++#define HAVE_POSIX_FILEMAP
++
++/*
++ * Define this if you have <termio.h>
++ */
++#define HAVE_TERMIO_H 1
++
++/*
++ * Define this if you have <sys/sendfile.h>
++ */
++#define HAVE_SYS_SENDFILE_H 1
++
++/*
++ * Define this if you build against MSVCRT.DLL
++ */
++/* #define HAVE_MS_C_RUNTIME */
++
++/*
++ * Define this if you have sys/uio.h
++ */
++#define HAVE_SYS_UIO_H 1
++
++/*
++ * Define this if your platforms implements symbolic links
++ * in its filesystems
++ */
++#define HAVE_SYMLINKS
++
++/*
++ * Define this if we have localtime_r().
++ */
++/* #define HAVE_LOCALTIME_R 1 */
++
++/*
++ * Define this if we have gethostbyname_r().
++ */
++/* #define HAVE_GETHOSTBYNAME_R */
++
++/*
++ * Define this if we have ioctl().
++ */
++#define HAVE_IOCTL
++
++/*
++ * Define this if we want to use WinSock.
++ */
++/* #define HAVE_WINSOCK */
++
++/*
++ * Define this if have clock_gettime() and friends
++ */
++#define HAVE_POSIX_CLOCKS
++
++/*
++ * Define this if we have linux style epoll()
++ */
++#define HAVE_EPOLL
++
++/*
++ * Endianness of the target machine. Choose one:
++ *
++ * HAVE_ENDIAN_H -- have endian.h header we can include.
++ * HAVE_LITTLE_ENDIAN -- we are little endian.
++ * HAVE_BIG_ENDIAN -- we are big endian.
++ */
++#define HAVE_ENDIAN_H
++#define HAVE_LITTLE_ENDIAN
++
++#define _FILE_OFFSET_BITS 64
++/* #define _LARGEFILE_SOURCE 1 */
++
++/*
++ * Define if platform has off64_t (and lseek64 and other xxx64 functions)
++ */
++#define HAVE_OFF64_T
++
++/*
++ * Defined if we have the backtrace() call for retrieving a stack trace.
++ * Needed for CallStack to operate; if not defined, CallStack is
++ * non-functional.
++ */
++#define HAVE_BACKTRACE 0
++
++/*
++ * Defined if we have the cxxabi.h header for demangling C++ symbols. If
++ * not defined, stack crawls will be displayed with raw mangled symbols
++ */
++#define HAVE_CXXABI 0
++
++/*
++ * Defined if we have the gettid() system call.
++ */
++#define HAVE_GETTID
++
++/*
++ * Defined if we have the sched_setscheduler() call
++ */
++#define HAVE_SCHED_SETSCHEDULER
++
++/*
++ * Add any extra platform-specific defines here.
++ */
++#ifndef __linux__
++#define __linux__
++#endif
++
++/*
++ * Define if we have <malloc.h> header
++ */
++#define HAVE_MALLOC_H
++
++/*
++ * Define if we're running on *our* linux on device or emulator.
++ */
++#define HAVE_ANDROID_OS 1
++
++/*
++ * Define if we have Linux-style non-filesystem Unix Domain Sockets
++ */
++#define HAVE_LINUX_LOCAL_SOCKET_NAMESPACE 1
++
++/*
++ * Define if we have Linux's inotify in <sys/inotify.h>.
++ */
++#define HAVE_INOTIFY 1
++
++/*
++ * Define if we have madvise() in <sys/mman.h>
++ */
++#define HAVE_MADVISE 1
++
++/*
++ * Define if tm struct has tm_gmtoff field
++ */
++#define HAVE_TM_GMTOFF 1
++
++/*
++ * Define if dirent struct has d_type field
++ */
++#define HAVE_DIRENT_D_TYPE 1
++
++/*
++ * Define if libc includes Android system properties implementation.
++ */
++#define HAVE_LIBC_SYSTEM_PROPERTIES 1
++
++/*
++ * Define if system provides a system property server (should be
++ * mutually exclusive with HAVE_LIBC_SYSTEM_PROPERTIES).
++ */
++/* #define HAVE_SYSTEM_PROPERTY_SERVER */
++
++/*
++ * What CPU architecture does this platform use?
++ */
++#define ARCH_AARCH64
++
++/*
++ * Define if the size of enums is as short as possible,
++ */
++/* #define HAVE_SHORT_ENUMS */
++
++/*
++ * sprintf() format string for shared library naming.
++ */
++#define OS_SHARED_LIB_FORMAT_STR "lib%s.so"
++
++/*
++ * type for the third argument to mincore().
++ */
++#define MINCORE_POINTER_TYPE unsigned char *
++
++/*
++ * The default path separator for the platform
++ */
++#define OS_PATH_SEPARATOR '/'
++
++/*
++ * Is the filesystem case sensitive?
++ */
++#define OS_CASE_SENSITIVE
++
++/*
++ * Define if <sys/socket.h> exists.
++ */
++#define HAVE_SYS_SOCKET_H 1
++
++/*
++ * Define if the strlcpy() function exists on the system.
++ */
++#define HAVE_STRLCPY 1
++
++/*
++ * Define if the open_memstream() function exists on the system.
++ */
++/* #define HAVE_OPEN_MEMSTREAM 1 */
++
++/*
++ * Define if the BSD funopen() function exists on the system.
++ */
++#define HAVE_FUNOPEN 1
++
++/*
++ * Define if prctl() exists
++ */
++#define HAVE_PRCTL 1
++
++/*
++ * Define if writev() exists
++ */
++#define HAVE_WRITEV 1
++
++/*
++ * Define if <stdint.h> exists.
++ */
++#define HAVE_STDINT_H 1
++
++/*
++ * Define if <stdbool.h> exists.
++ */
++#define HAVE_STDBOOL_H 1
++
++/*
++ * Define if <sched.h> exists.
++ */
++#define HAVE_SCHED_H 1
++
++/*
++ * Define if pread() exists
++ */
++#define HAVE_PREAD 1
++
++/*
++ * Define if we have st_mtim in struct stat
++ */
++#define HAVE_STAT_ST_MTIM 1
++
++/*
++ * Define if printf() supports %zd for size_t arguments
++ */
++#define HAVE_PRINTF_ZD 1
++
++/*
++ * Define to 1 if <stdlib.h> provides qsort_r() with a BSD style function prototype.
++ */
++#define HAVE_BSD_QSORT_R 0
++
++/*
++ * Define to 1 if <stdlib.h> provides qsort_r() with a GNU style function prototype.
++ */
++#define HAVE_GNU_QSORT_R 0
++
++#endif /* _ANDROID_CONFIG_H */
+--
+2.17.1
+
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch
new file mode 100644
index 0000000000..7d20c50680
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-adb-remove-selinux-extensions.patch
@@ -0,0 +1,44 @@
+From 7b7200727413ca4a9bb132221c543ec033dffafa Mon Sep 17 00:00:00 2001
+From: Sergio Schvezov <sergio.schvezov@canonical.com>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] adb: remove selinux extensions
+
+* drop useless includes of Android SELINUX extensions
+* avoids having to clone another module
+* this should be sent upstream
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ adb/file_sync_service.c | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/adb/file_sync_service.c b/adb/file_sync_service.c
+index 7933858516..3cbd0cd863 100644
+--- a/adb/file_sync_service.c
++++ b/adb/file_sync_service.c
+@@ -26,7 +26,6 @@
+
+ #include <errno.h>
+ #include <private/android_filesystem_config.h>
+-#include <selinux/android.h>
+ #include "sysdeps.h"
+
+ #define TRACE_TAG TRACE_SYNC
+@@ -73,7 +72,6 @@ static int mkdirs(char *name)
+ *x = '/';
+ return ret;
+ }
+- selinux_android_restorecon(name, 0);
+ }
+ *x++ = '/';
+ }
+@@ -251,7 +249,6 @@ static int handle_send_file(int s, char *path, uid_t uid,
+ if(fd >= 0) {
+ struct utimbuf u;
+ adb_close(fd);
+- selinux_android_restorecon(path, 0);
+ u.actime = timestamp;
+ u.modtime = timestamp;
+ utime(path, &u);
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-memory.h-Always-define-strlcpy-for-glibc-based-syste.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-memory.h-Always-define-strlcpy-for-glibc-based-syste.patch
new file mode 100644
index 0000000000..82e97152be
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0001-memory.h-Always-define-strlcpy-for-glibc-based-syste.patch
@@ -0,0 +1,35 @@
+From db3a3714be07c8ab51b9ae7b035e4afe9f39c645 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Sep 2022 13:20:22 -0700
+Subject: [PATCH] memory.h: Always define strlcpy for glibc based systems
+
+android-config.h file includes on compiler cmdline sets HAVE_STRLCPY
+unconditionally, since bionic supports it, its no big deal on android
+and also no problem when using musl since implementation exists for musl
+too, but glibc does not provide this. So either we include libbsd or use
+the implementation provided by android-tools here. We are currently
+using the in tree implementation for systems which do not provide it
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/cutils/memory.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/cutils/memory.h b/include/cutils/memory.h
+index e725cdd032..9e99353c58 100644
+--- a/include/cutils/memory.h
++++ b/include/cutils/memory.h
+@@ -30,7 +30,7 @@ void android_memset16(uint16_t* dst, uint16_t value, size_t size);
+ /* size is given in bytes and must be multiple of 4 */
+ void android_memset32(uint32_t* dst, uint32_t value, size_t size);
+
+-#if !HAVE_STRLCPY
++#if !HAVE_STRLCPY || defined(__GLIBC__)
+ /* Declaration of strlcpy() for platforms that don't already have it. */
+ size_t strlcpy(char *dst, const char *src, size_t size);
+ #endif
+--
+2.37.3
+
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch
new file mode 100644
index 0000000000..3627110ad8
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0002-adb-Use-local-sockets-where-appropriate.patch
@@ -0,0 +1,70 @@
+From d855f042ca09a358cebe2d3c1d29d512afd7ebb8 Mon Sep 17 00:00:00 2001
+From: Hilko Bengen <bengen@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] adb: Use local sockets where appropriate
+
+Upstream-Status: Inappropriate
+---
+ adb/adb.c | 6 +++++-
+ adb/adb_client.c | 5 +++--
+ adb/transport_local.c | 3 ++-
+ 3 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/adb/adb.c b/adb/adb.c
+index 10a1e0da26..027edd9359 100644
+--- a/adb/adb.c
++++ b/adb/adb.c
+@@ -1230,7 +1230,11 @@ int launch_server(int server_port)
+ */
+ void build_local_name(char* target_str, size_t target_size, int server_port)
+ {
+- snprintf(target_str, target_size, "tcp:%d", server_port);
++ if (gListenAll > 0) {
++ snprintf(target_str, target_size, "tcp:%d", server_port);
++ } else {
++ snprintf(target_str, target_size, "local:%d", server_port);
++ }
+ }
+
+ #if !ADB_HOST
+diff --git a/adb/adb_client.c b/adb/adb_client.c
+index eb1720d22c..a383faefe3 100644
+--- a/adb/adb_client.c
++++ b/adb/adb_client.c
+@@ -185,12 +185,12 @@ int _adb_connect(const char *service)
+ strcpy(__adb_error, "service name too long");
+ return -1;
+ }
+- snprintf(tmp, sizeof tmp, "%04x", len);
++ snprintf(tmp, sizeof tmp, "%d", __adb_server_port);
+
+ if (__adb_server_name)
+ fd = socket_network_client(__adb_server_name, __adb_server_port, SOCK_STREAM);
+ else
+- fd = socket_loopback_client(__adb_server_port, SOCK_STREAM);
++ fd = socket_local_client(tmp, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
+
+ if(fd < 0) {
+ strcpy(__adb_error, "cannot connect to daemon");
+@@ -201,6 +201,7 @@ int _adb_connect(const char *service)
+ return -1;
+ }
+
++ snprintf(tmp, sizeof tmp, "%04x", len);
+ if(writex(fd, tmp, 4) || writex(fd, service, len)) {
+ strcpy(__adb_error, "write failure during connection");
+ adb_close(fd);
+diff --git a/adb/transport_local.c b/adb/transport_local.c
+index 948cc15812..71582a8c88 100644
+--- a/adb/transport_local.c
++++ b/adb/transport_local.c
+@@ -121,7 +121,8 @@ int local_connect_arbitrary_ports(int console_port, int adb_port)
+ }
+ #endif
+ if (fd < 0) {
+- fd = socket_loopback_client(adb_port, SOCK_STREAM);
++ snprintf(buf, sizeof buf, "%d", adb_port);
++ fd = socket_local_client(buf, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
+ }
+
+ if (fd >= 0) {
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch
new file mode 100644
index 0000000000..cf1d9cbc3d
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0003-adb-define-shell-command.patch
@@ -0,0 +1,29 @@
+From 4421c2e19946dcd651fd8ac022b96627fc526149 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] adb: define shell command
+
+we intend to run on Linux system so the shell is always /bin/sh,
+for the host or the target.
+
+Upstream-Status: Inappropriate
+---
+ adb/services.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/adb/services.c b/adb/services.c
+index 21b08dc201..d44b0c5068 100644
+--- a/adb/services.c
++++ b/adb/services.c
+@@ -299,11 +299,7 @@ static int create_subproc_raw(const char *cmd, const char *arg0, const char *arg
+ }
+ #endif /* !ABD_HOST */
+
+-#if ADB_HOST
+ #define SHELL_COMMAND "/bin/sh"
+-#else
+-#define SHELL_COMMAND "/system/bin/sh"
+-#endif
+
+ #if !ADB_HOST
+ static void subproc_waiter_service(int fd, void *cookie)
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
new file mode 100644
index 0000000000..7f03cd2beb
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0004-adb-Fix-build-on-big-endian-systems.patch
@@ -0,0 +1,47 @@
+From 548b8ca62c64a16305929e2eaf3d546d48de9c25 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Tue, 21 Feb 2017 19:46:24 +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>
+---
+Upstream-Status: Pending
+
+ adb/usb_linux_client.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/adb/usb_linux_client.c b/adb/usb_linux_client.c
+index 8426e0ea14..6e8b5bbbd2 100644
+--- a/adb/usb_linux_client.c
++++ b/adb/usb_linux_client.c
+@@ -34,8 +34,15 @@
+ #define MAX_PACKET_SIZE_FS 64
+ #define MAX_PACKET_SIZE_HS 512
+
+-#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
+
+ struct usb_handle
+ {
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
new file mode 100644
index 0000000000..4827ffe042
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0005-adb-add-base64-implementation.patch
@@ -0,0 +1,350 @@
+From 753bcb5971401b82fb2e6197d31c9e386f6d0392 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:46:38 -0700
+Subject: [PATCH] adb: add base64 implementation
+
+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(-)
+ create mode 100644 adb/base64.c
+
+diff --git a/adb/adb_auth_client.c b/adb/adb_auth_client.c
+index 55e9dcad19..104b413b8b 100644
+--- a/adb/adb_auth_client.c
++++ b/adb/adb_auth_client.c
+@@ -75,7 +75,7 @@ static void read_keys(const char *file, struct listnode *list)
+ if (sep)
+ *sep = '\0';
+
+- ret = __b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
++ ret = b64_pton(buf, (u_char *)&key->key, sizeof(key->key) + 4);
+ if (ret != sizeof(key->key)) {
+ D("%s: Invalid base64 data ret=%d\n", file, ret);
+ free(key);
+diff --git a/adb/base64.c b/adb/base64.c
+new file mode 100644
+index 0000000000..95da284d0d
+--- /dev/null
++++ b/adb/base64.c
+@@ -0,0 +1,315 @@
++/*
++ * Copyright (c) 1996-1999 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#if !defined(LINT) && !defined(CODECENTER)
++static const char rcsid[] = "$BINDId: base64.c,v 8.7 1999/10/13 16:39:33 vixie Exp $";
++#endif /* not lint */
++
++#include <sys/types.h>
++#include <sys/param.h>
++#include <sys/socket.h>
++
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <arpa/nameser.h>
++
++#include <ctype.h>
++#include <resolv.h>
++#include <stdio.h>
++#include <stdlib.h>
++#include <stdint.h>
++#include <string.h>
++
++#define Assert(Cond) if (!(Cond)) abort()
++
++static const char Base64[] =
++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++ The following encoding technique is taken from RFC 1521 by Borenstein
++ and Freed. It is reproduced here in a slightly edited form for
++ convenience.
++
++ A 65-character subset of US-ASCII is used, enabling 6 bits to be
++ represented per printable character. (The extra 65th character, "=",
++ is used to signify a special processing function.)
++
++ The encoding process represents 24-bit groups of input bits as output
++ strings of 4 encoded characters. Proceeding from left to right, a
++ 24-bit input group is formed by concatenating 3 8-bit input groups.
++ These 24 bits are then treated as 4 concatenated 6-bit groups, each
++ of which is translated into a single digit in the base64 alphabet.
++
++ Each 6-bit group is used as an index into an array of 64 printable
++ characters. The character referenced by the index is placed in the
++ output string.
++
++ Table 1: The Base64 Alphabet
++
++ Value Encoding Value Encoding Value Encoding Value Encoding
++ 0 A 17 R 34 i 51 z
++ 1 B 18 S 35 j 52 0
++ 2 C 19 T 36 k 53 1
++ 3 D 20 U 37 l 54 2
++ 4 E 21 V 38 m 55 3
++ 5 F 22 W 39 n 56 4
++ 6 G 23 X 40 o 57 5
++ 7 H 24 Y 41 p 58 6
++ 8 I 25 Z 42 q 59 7
++ 9 J 26 a 43 r 60 8
++ 10 K 27 b 44 s 61 9
++ 11 L 28 c 45 t 62 +
++ 12 M 29 d 46 u 63 /
++ 13 N 30 e 47 v
++ 14 O 31 f 48 w (pad) =
++ 15 P 32 g 49 x
++ 16 Q 33 h 50 y
++
++ Special processing is performed if fewer than 24 bits are available
++ at the end of the data being encoded. A full encoding quantum is
++ always completed at the end of a quantity. When fewer than 24 input
++ bits are available in an input group, zero bits are added (on the
++ right) to form an integral number of 6-bit groups. Padding at the
++ end of the data is performed using the '=' character.
++
++ Since all base64 input is an integral number of octets, only the
++ -------------------------------------------------
++ following cases can arise:
++
++ (1) the final quantum of encoding input is an integral
++ multiple of 24 bits; here, the final unit of encoded
++ output will be an integral multiple of 4 characters
++ with no "=" padding,
++ (2) the final quantum of encoding input is exactly 8 bits;
++ here, the final unit of encoded output will be two
++ characters followed by two "=" padding characters, or
++ (3) the final quantum of encoding input is exactly 16 bits;
++ here, the final unit of encoded output will be three
++ characters followed by one "=" padding character.
++ */
++
++int
++b64_ntop(const uint8_t* src, size_t srclength, char* target, size_t targsize)
++{
++ size_t datalength = 0;
++ uint8_t input[3];
++ uint8_t output[4];
++ size_t i;
++
++ while (2 < srclength) {
++ input[0] = *src++;
++ input[1] = *src++;
++ input[2] = *src++;
++ srclength -= 3;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ output[3] = input[2] & 0x3f;
++ Assert(output[0] < 64);
++ Assert(output[1] < 64);
++ Assert(output[2] < 64);
++ Assert(output[3] < 64);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Base64[output[3]];
++ }
++
++ /* Now we worry about padding. */
++ if (0 != srclength) {
++ /* Get what's left. */
++ input[0] = input[1] = input[2] = '\0';
++ for (i = 0; i < srclength; i++)
++ input[i] = *src++;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ Assert(output[0] < 64);
++ Assert(output[1] < 64);
++ Assert(output[2] < 64);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ if (srclength == 1)
++ target[datalength++] = Pad64;
++ else
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Pad64;
++ }
++ if (datalength >= targsize)
++ return (-1);
++ target[datalength] = '\0'; /* Returned value doesn't count \0. */
++ return (datalength);
++}
++
++/* skips all whitespace anywhere.
++ converts characters, four at a time, starting at (or after)
++ src from base - 64 numbers into three 8 bit bytes in the target area.
++ it returns the number of data bytes stored at the target, or -1 on error.
++ */
++
++int b64_pton(const char* src, uint8_t* target, size_t targsize)
++{
++ int tarindex, state, ch;
++ char *pos;
++
++ state = 0;
++ tarindex = 0;
++
++ while ((ch = *src++) != '\0') {
++ if (isspace(ch)) /* Skip whitespace anywhere. */
++ continue;
++
++ if (ch == Pad64)
++ break;
++
++ pos = strchr(Base64, ch);
++ if (pos == 0) /* A non-base64 character. */
++ return (-1);
++
++ switch (state) {
++ case 0:
++ if (target) {
++ if ((size_t)tarindex >= targsize)
++ return (-1);
++ target[tarindex] = (pos - Base64) << 2;
++ }
++ state = 1;
++ break;
++ case 1:
++ if (target) {
++ if ((size_t)tarindex + 1 >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 4;
++ target[tarindex+1] = ((pos - Base64) & 0x0f)
++ << 4 ;
++ }
++ tarindex++;
++ state = 2;
++ break;
++ case 2:
++ if (target) {
++ if ((size_t)tarindex + 1 >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 2;
++ target[tarindex+1] = ((pos - Base64) & 0x03)
++ << 6;
++ }
++ tarindex++;
++ state = 3;
++ break;
++ case 3:
++ if (target) {
++ if ((size_t)tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64);
++ }
++ tarindex++;
++ state = 0;
++ break;
++ default:
++ abort();
++ }
++ }
++
++ /*
++ * We are done decoding Base-64 chars. Let's see if we ended
++ * on a byte boundary, and/or with erroneous trailing characters.
++ */
++
++ if (ch == Pad64) { /* We got a pad char. */
++ ch = *src++; /* Skip it, get next. */
++ switch (state) {
++ case 0: /* Invalid = in first position */
++ case 1: /* Invalid = in second position */
++ return (-1);
++
++ case 2: /* Valid, means one byte of info */
++ /* Skip any number of spaces. */
++ for ((void)NULL; ch != '\0'; ch = *src++)
++ if (!isspace(ch))
++ break;
++ /* Make sure there is another trailing = sign. */
++ if (ch != Pad64)
++ return (-1);
++ ch = *src++; /* Skip the = */
++ /* Fall through to "single trailing =" case. */
++ /* FALLTHROUGH */
++
++ case 3: /* Valid, means two bytes of info */
++ /*
++ * We know this char is an =. Is there anything but
++ * whitespace after it?
++ */
++ for ((void)NULL; ch != '\0'; ch = *src++)
++ if (!isspace(ch))
++ return (-1);
++
++ /*
++ * Now make sure for cases 2 and 3 that the "extra"
++ * bits that slopped past the last full byte were
++ * zeros. If we don't check them, they become a
++ * subliminal channel.
++ */
++ if (target && target[tarindex] != 0)
++ return (-1);
++ }
++ } else {
++ /*
++ * We ended by seeing the end of the string. Make sure we
++ * have no partial bytes lying around.
++ */
++ if (state != 0)
++ return (-1);
++ }
++
++ return (tarindex);
++}
++
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
new file mode 100644
index 0000000000..182b1eb29e
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0006-adb-Musl-fixes.patch
@@ -0,0 +1,130 @@
+From 62d957a1271c88ec08d67984fbe31601f0bd41a9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 15 Sep 2017 15:50:57 -0700
+Subject: [PATCH] adb: Musl fixes
+
+__nonnull is gcc specific
+include sys/types.h for size_t
+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(-)
+
+--- a/adb/adb.h
++++ b/adb/adb.h
+@@ -18,7 +18,9 @@
+ #define __ADB_H
+
+ #include <limits.h>
++#include <sys/types.h>
+
++#include "fdevent.h"
+ #include "adb_trace.h"
+ #include "transport.h" /* readx(), writex() */
+
+--- a/adb/disable_verity_service.c
++++ b/adb/disable_verity_service.c
+@@ -14,25 +14,32 @@
+ * limitations under the License.
+ */
+
+-#include "sysdeps.h"
+
+ #define TRACE_TAG TRACE_ADB
+ #include "adb.h"
++#include "sysdeps.h"
++#include "cutils/properties.h"
++#include "ext4_sb.h"
++#include <fs_mgr.h>
+
+ #include <stdio.h>
+ #include <stdarg.h>
+ #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <inttypes.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;
+
+-__attribute__((__format__(printf, 2, 3))) __nonnull((2))
++__attribute__((__format__(printf, 2, 3))) __attribute__((nonnull((2))))
+ static void write_console(int fd, const char* format, ...)
+ {
+ char buffer[256];
+--- a/adb/framebuffer_service.c
++++ b/adb/framebuffer_service.c
+@@ -14,6 +14,10 @@
+ * limitations under the License.
+ */
+
++#include "fdevent.h"
++#include "adb.h"
++#include "sysdeps.h"
++
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+@@ -23,9 +27,6 @@
+ #include <sys/types.h>
+ #include <sys/wait.h>
+
+-#include "fdevent.h"
+-#include "adb.h"
+-
+ #include <linux/fb.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+--- a/adb/sysdeps.h
++++ b/adb/sysdeps.h
+@@ -123,8 +123,8 @@ static __inline__ int unix_close(int fd
+ {
+ return close(fd);
+ }
+-#undef close
+-#define close ____xxx_close
++//#undef close
++//#define close ____xxx_close
+
+ static __inline__ int unix_read(int fd, void* buf, size_t len)
+ {
+@@ -369,8 +369,8 @@ static __inline__ int adb_close(int fd)
+ {
+ return close(fd);
+ }
+-#undef close
+-#define close ____xxx_close
++//#undef close
++//#define close ____xxx_close
+
+
+ static __inline__ int adb_read(int fd, void* buf, size_t len)
+@@ -392,8 +392,8 @@ static __inline__ int adb_lseek(int f
+ {
+ return lseek(fd, pos, where);
+ }
+-#undef lseek
+-#define lseek ___xxx_lseek
++//#undef lseek
++//#define lseek ___xxx_lseek
+
+ static __inline__ int adb_unlink(const char* path)
+ {
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
new file mode 100644
index 0000000000..64fbce4cbe
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch
@@ -0,0 +1,26 @@
+From de393bba41c8feff932c77d6c30233945f380d42 Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Sat, 11 Aug 2018 13:23:37 +0000
+Subject: [PATCH] adb: usb_linux.c: fix build with glibc-2.28
+
+* include sysmacros for major, minor
+
+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/adb/usb_linux.c b/adb/usb_linux.c
+index f16bdd0361..c8a7732441 100644
+--- a/adb/usb_linux.c
++++ b/adb/usb_linux.c
+@@ -22,6 +22,7 @@
+ #include <sys/ioctl.h>
+ #include <sys/types.h>
+ #include <sys/time.h>
++#include <sys/sysmacros.h>
+ #include <dirent.h>
+ #include <fcntl.h>
+ #include <errno.h>
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
new file mode 100644
index 0000000000..ad21b5aaa6
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0008-adb-Allow-adbd-to-be-ran-as-root.patch
@@ -0,0 +1,23 @@
+From 3a788e9168c9b9eac66c4fa479413f4a95c61be4 Mon Sep 17 00:00:00 2001
+From: Florent Revest <revestflo@gmail.com>
+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/adb/adb.c b/adb/adb.c
+index 027edd9359..e0f7ecde45 100644
+--- a/adb/adb.c
++++ b/adb/adb.c
+@@ -1271,6 +1271,7 @@ static int should_drop_privileges() {
+ int secure = 0;
+ char value[PROPERTY_VALUE_MAX];
+
++ return 0;
+ /* run adbd in secure mode if ro.secure is set and
+ ** we are not in the emulator
+ */
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
new file mode 100644
index 0000000000..a4dc6e1e35
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
@@ -0,0 +1,110 @@
+From dd195778a9930b7967b21a3b8eb390b70253dbad Mon Sep 17 00:00:00 2001
+From: David Ng <dave@codeaurora.org>
+Date: Fri, 27 Jul 2012 17:15:03 -0700
+Subject: [PATCH] mkbootimg: Add --dt parameter to specify DT image
+
+New optional --dt parameter to specify a kernel device
+tree image.
+
+Upstream-Status: Inappropriate
+---
+ mkbootimg/bootimg.h | 7 +++++--
+ mkbootimg/mkbootimg.c | 21 +++++++++++++++++++++
+ 2 files changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/mkbootimg/bootimg.h b/mkbootimg/bootimg.h
+index 9171d85a7b..308c537d6b 100644
+--- a/mkbootimg/bootimg.h
++++ b/mkbootimg/bootimg.h
+@@ -41,8 +41,8 @@ struct boot_img_hdr
+
+ unsigned tags_addr; /* physical addr for kernel tags */
+ unsigned page_size; /* flash page size we assume */
+- unsigned unused[2]; /* future expansion: should be 0 */
+-
++ unsigned dt_size; /* device tree in bytes */
++ unsigned unused; /* future expansion: should be 0 */
+ unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */
+
+ unsigned char cmdline[BOOT_ARGS_SIZE];
+@@ -64,10 +64,13 @@ struct boot_img_hdr
+ ** +-----------------+
+ ** | second stage | o pages
+ ** +-----------------+
++** | device tree | p pages
++** +-----------------+
+ **
+ ** n = (kernel_size + page_size - 1) / page_size
+ ** m = (ramdisk_size + page_size - 1) / page_size
+ ** o = (second_size + page_size - 1) / page_size
++** p = (dt_size + page_size - 1) / page_size
+ **
+ ** 0. all entities are page_size aligned in flash
+ ** 1. kernel and ramdisk are required (size != 0)
+diff --git a/mkbootimg/mkbootimg.c b/mkbootimg/mkbootimg.c
+index fc92b4dc30..658052cdf2 100644
+--- a/mkbootimg/mkbootimg.c
++++ b/mkbootimg/mkbootimg.c
+@@ -65,6 +65,7 @@ int usage(void)
+ " [ --board <boardname> ]\n"
+ " [ --base <address> ]\n"
+ " [ --pagesize <pagesize> ]\n"
++ " [ --dt <filename> ]\n"
+ " -o|--output <filename>\n"
+ );
+ return 1;
+@@ -105,6 +106,8 @@ int main(int argc, char **argv)
+ char *cmdline = "";
+ char *bootimg = 0;
+ char *board = "";
++ char *dt_fn = 0;
++ void *dt_data = 0;
+ unsigned pagesize = 2048;
+ int fd;
+ SHA_CTX ctx;
+@@ -158,6 +161,8 @@ int main(int argc, char **argv)
+ fprintf(stderr,"error: unsupported page size %d\n", pagesize);
+ return -1;
+ }
++ } else if(!strcmp(arg, "--dt")) {
++ dt_fn = val;
+ } else {
+ return usage();
+ }
+@@ -232,6 +237,14 @@ int main(int argc, char **argv)
+ }
+ }
+
++ if(dt_fn) {
++ dt_data = load_file(dt_fn, &hdr.dt_size);
++ if (dt_data == 0) {
++ fprintf(stderr,"error: could not load device tree image '%s'\n", dt_fn);
++ return 1;
++ }
++ }
++
+ /* put a hash of the contents in the header so boot images can be
+ * differentiated based on their first 2k.
+ */
+@@ -242,6 +255,10 @@ int main(int argc, char **argv)
+ SHA_update(&ctx, &hdr.ramdisk_size, sizeof(hdr.ramdisk_size));
+ SHA_update(&ctx, second_data, hdr.second_size);
+ SHA_update(&ctx, &hdr.second_size, sizeof(hdr.second_size));
++ if(dt_data) {
++ SHA_update(&ctx, dt_data, hdr.dt_size);
++ SHA_update(&ctx, &hdr.dt_size, sizeof(hdr.dt_size));
++ }
+ sha = SHA_final(&ctx);
+ memcpy(hdr.id, sha,
+ SHA_DIGEST_SIZE > sizeof(hdr.id) ? sizeof(hdr.id) : SHA_DIGEST_SIZE);
+@@ -266,6 +283,10 @@ int main(int argc, char **argv)
+ if(write_padding(fd, pagesize, hdr.second_size)) goto fail;
+ }
+
++ if(dt_data) {
++ if(write(fd, dt_data, hdr.dt_size) != (ssize_t) hdr.dt_size) goto fail;
++ if(write_padding(fd, pagesize, hdr.dt_size)) goto fail;
++ }
+ return 0;
+
+ fail:
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch
new file mode 100644
index 0000000000..2c607ff67c
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0010-Use-linux-capability.h-on-linux-systems-too.patch
@@ -0,0 +1,23 @@
+From ef743c9c3c7452ae904a5c343ee2b759ab3a87cb Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Lo=C3=AFc=20Minier?= <loic.minier@ubuntu.com>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] Use linux/capability.h on linux systems too
+
+Upstream-Status: Inappropriate
+---
+ include/private/android_filesystem_config.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/private/android_filesystem_config.h b/include/private/android_filesystem_config.h
+index 2f528b95c8..3e0b00928e 100644
+--- a/include/private/android_filesystem_config.h
++++ b/include/private/android_filesystem_config.h
+@@ -27,7 +27,7 @@
+ #include <sys/types.h>
+ #include <stdint.h>
+
+-#ifdef HAVE_ANDROID_OS
++#if defined(HAVE_ANDROID_OS) || defined(__linux__)
+ #include <linux/capability.h>
+ #else
+ #include "android_filesystem_capability.h"
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch
new file mode 100644
index 0000000000..5b18f461a3
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0011-Remove-bionic-specific-calls.patch
@@ -0,0 +1,64 @@
+From 9eff8799831961c0edf6e37e5d4cbf43baa7c748 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] Remove bionic specific calls
+
+Upstream-Status: Inappropriate
+---
+ include/cutils/properties.h | 1 -
+ libcutils/properties.c | 2 +-
+ liblog/logd_write.c | 5 +++++
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/include/cutils/properties.h b/include/cutils/properties.h
+index 798db8b36f..7d01f28d6e 100644
+--- a/include/cutils/properties.h
++++ b/include/cutils/properties.h
+@@ -19,7 +19,6 @@
+
+ #include <sys/cdefs.h>
+ #include <stddef.h>
+-#include <sys/system_properties.h>
+ #include <stdint.h>
+
+ #ifdef __cplusplus
+diff --git a/libcutils/properties.c b/libcutils/properties.c
+index b283658aa4..4151e7882c 100644
+--- a/libcutils/properties.c
++++ b/libcutils/properties.c
+@@ -104,10 +104,10 @@ int32_t property_get_int32(const char *key, int32_t default_value) {
+ return (int32_t)property_get_imax(key, INT32_MIN, INT32_MAX, default_value);
+ }
+
++#undef HAVE_LIBC_SYSTEM_PROPERTIES
+ #ifdef HAVE_LIBC_SYSTEM_PROPERTIES
+
+ #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
+-#include <sys/_system_properties.h>
+
+ int property_set(const char *key, const char *value)
+ {
+diff --git a/liblog/logd_write.c b/liblog/logd_write.c
+index b2668cedb7..f5a44fe901 100644
+--- a/liblog/logd_write.c
++++ b/liblog/logd_write.c
+@@ -23,6 +23,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/stat.h>
++#include <sys/syscall.h>
+ #include <sys/types.h>
+ #if (FAKE_LOG_DEVICE == 0)
+ #include <sys/socket.h>
+@@ -205,7 +206,11 @@ static int __write_to_log_kernel(log_id_t log_id, struct iovec *vec, size_t nr)
+ realtime_ts.tv_nsec = ts.tv_nsec;
+
+ log_id_buf = log_id;
++#ifdef __BIONIC__
+ tid = gettid();
++#else
++ tid = (pid_t) syscall(__NR_gettid);
++#endif
+
+ newVec[0].iov_base = (unsigned char *) &log_id_buf;
+ newVec[0].iov_len = sizeof_log_id_t;
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch
new file mode 100644
index 0000000000..b0feb65921
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch
@@ -0,0 +1,50 @@
+From cd4525d760c6f88c9bf85f7bf488da79cd0d3264 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] Fix implicit declaration of stlcat/strlcopy functions
+
+Upstream-Status: Inappropriate
+---
+ adb/adb.c | 1 +
+ fs_mgr/fs_mgr_fstab.c | 2 +-
+ include/cutils/sockets.h | 2 +-
+ 3 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/adb/adb.c b/adb/adb.c
+index e0f7ecde45..aaefd9b401 100644
+--- a/adb/adb.c
++++ b/adb/adb.c
+@@ -41,6 +41,7 @@
+ #include <sys/prctl.h>
+ #include <getopt.h>
+ #include <selinux/selinux.h>
++#include <grp.h>
+ #else
+ #include "usb_vendors.h"
+ #endif
+diff --git a/fs_mgr/fs_mgr_fstab.c b/fs_mgr/fs_mgr_fstab.c
+index edd9591164..9ddb4643b5 100644
+--- a/fs_mgr/fs_mgr_fstab.c
++++ b/fs_mgr/fs_mgr_fstab.c
+@@ -17,7 +17,7 @@
+ #include <ctype.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <bsd/string.h>
+ #include <sys/mount.h>
+
+ #include "fs_mgr_priv.h"
+diff --git a/include/cutils/sockets.h b/include/cutils/sockets.h
+index daf43ec944..d3270c69e7 100644
+--- a/include/cutils/sockets.h
++++ b/include/cutils/sockets.h
+@@ -19,7 +19,7 @@
+
+ #include <errno.h>
+ #include <stdlib.h>
+-#include <string.h>
++#include <bsd/string.h>
+ #include <stdbool.h>
+
+ #ifdef HAVE_WINSOCK
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
new file mode 100644
index 0000000000..5138556d63
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0013-adb-Support-riscv64.patch
@@ -0,0 +1,191 @@
+From 48ddf4fb999931942c359350fb31cd557514e1c6 Mon Sep 17 00:00:00 2001
+From: Chenxi Mao <maochenxi@eswin.com>
+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(+)
+ create mode 100644 include/cutils/atomic-riscv64.h
+
+diff --git a/include/cutils/atomic-inline.h b/include/cutils/atomic-inline.h
+index a31e913579..b5dc38209c 100644
+--- a/include/cutils/atomic-inline.h
++++ b/include/cutils/atomic-inline.h
+@@ -55,6 +55,8 @@ extern "C" {
+ #include <cutils/atomic-mips64.h>
+ #elif defined(__mips__)
+ #include <cutils/atomic-mips.h>
++#elif defined(__riscv) && __riscv_xlen == 64
++#include <cutils/atomic-riscv64.h>
+ #else
+ #error atomic operations are unsupported
+ #endif
+diff --git a/include/cutils/atomic-riscv64.h b/include/cutils/atomic-riscv64.h
+new file mode 100644
+index 0000000000..2664db5a86
+--- /dev/null
++++ b/include/cutils/atomic-riscv64.h
+@@ -0,0 +1,156 @@
++/*
++ * 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.
++ */
++
++#ifndef ANDROID_CUTILS_ATOMIC_RISCV64_H
++#define ANDROID_CUTILS_ATOMIC_RISCV64_H
++
++#include <stdint.h>
++
++#ifndef ANDROID_ATOMIC_INLINE
++#define ANDROID_ATOMIC_INLINE inline __attribute__((always_inline))
++#endif
++
++/*
++ TODOAArch64: Revisit the below functions and check for potential
++ optimizations using assembly code or otherwise.
++*/
++
++extern ANDROID_ATOMIC_INLINE
++void android_compiler_barrier(void)
++{
++ __asm__ __volatile__ ("" : : : "memory");
++}
++
++extern ANDROID_ATOMIC_INLINE
++void android_memory_barrier(void)
++{
++ __asm__ __volatile__ ("fence rw,rw" : : : "memory");
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_acquire_load(volatile const int32_t *ptr)
++{
++ int32_t value = *ptr;
++ android_memory_barrier();
++ return value;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_release_load(volatile const int32_t *ptr)
++{
++ android_memory_barrier();
++ return *ptr;
++}
++
++extern ANDROID_ATOMIC_INLINE
++void android_atomic_acquire_store(int32_t value, volatile int32_t *ptr)
++{
++ *ptr = value;
++ android_memory_barrier();
++}
++
++extern ANDROID_ATOMIC_INLINE
++void android_atomic_release_store(int32_t value, volatile int32_t *ptr)
++{
++ android_memory_barrier();
++ *ptr = value;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int android_atomic_cas(int32_t old_value, int32_t new_value,
++ volatile int32_t *ptr)
++{
++ return __sync_val_compare_and_swap(ptr, old_value, new_value) != old_value;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int android_atomic_acquire_cas(int32_t old_value, int32_t new_value,
++ volatile int32_t *ptr)
++{
++ int status = android_atomic_cas(old_value, new_value, ptr);
++ android_memory_barrier();
++ return status;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int android_atomic_release_cas(int32_t old_value, int32_t new_value,
++ volatile int32_t *ptr)
++{
++ android_memory_barrier();
++ return android_atomic_cas(old_value, new_value, ptr);
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_add(int32_t increment, volatile int32_t *ptr)
++{
++ int32_t prev, status;
++ android_memory_barrier();
++ do {
++ prev = *ptr;
++ status = android_atomic_cas(prev, prev + increment, ptr);
++ } while (__builtin_expect(status != 0, 0));
++ return prev;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_inc(volatile int32_t *addr)
++{
++ return android_atomic_add(1, addr);
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_dec(volatile int32_t *addr)
++{
++ return android_atomic_add(-1, addr);
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_and(int32_t value, volatile int32_t *ptr)
++{
++ int32_t prev, status;
++ android_memory_barrier();
++ do {
++ prev = *ptr;
++ status = android_atomic_cas(prev, prev & value, ptr);
++ } while (__builtin_expect(status != 0, 0));
++ return prev;
++}
++
++extern ANDROID_ATOMIC_INLINE
++int32_t android_atomic_or(int32_t value, volatile int32_t *ptr)
++{
++ int32_t prev, status;
++ android_memory_barrier();
++ do {
++ prev = *ptr;
++ status = android_atomic_cas(prev, prev | value, ptr);
++ } while (__builtin_expect(status != 0, 0));
++ return prev;
++}
++
++#endif /* ANDROID_CUTILS_ATOMIC_RISCV_H */
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..cf23f3c251
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0014-add-u3-ss-descriptor-support-for-adb.patch
@@ -0,0 +1,344 @@
+From dae9a11f3a158357966399aef97c48b5f16934d9 Mon Sep 17 00:00:00 2001
+From: Jiacheng Liu <jiacheng.liu@mediatek.com>
+Date: Sat, 24 Jul 2021 11:01:18 +0800
+Subject: [PATCH] android-tools: adb: add u3 ss descriptor support
+
+Porting u3 Superspeed descriptor support to open-embedded android-tools package.
+This patch origins from the the patch in android project [1], but has been
+modified for backporting to android-tools_5.1.1.r37.
+
+[1] https://android.googlesource.com/platform/system/core/+/d6ee9f26a5163af4121f4380264fcbd4e6851a17%5E%21
+
+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/adb/usb_linux_client.c b/adb/usb_linux_client.c
+index 6e8b5bb..884e85e 100644
+--- a/adb/usb_linux_client.c
++++ b/adb/usb_linux_client.c
+@@ -31,8 +31,10 @@
+ #define TRACE_TAG TRACE_USB
+ #include "adb.h"
+
++#define USB_EXT_PROP_UNICODE 1
+ #define MAX_PACKET_SIZE_FS 64
+ #define MAX_PACKET_SIZE_HS 512
++#define MAX_PACKET_SIZE_SS 1024
+
+ #if __BYTE_ORDER == __LITTLE_ENDIAN
+ # define cpu_to_le16(x) (x)
+@@ -62,74 +64,185 @@ struct usb_handle
+ int bulk_in; /* "in" from the host's perspective => sink for adbd */
+ };
+
+-static const struct {
+- struct usb_functionfs_descs_head header;
+- struct {
+- struct usb_interface_descriptor intf;
+- struct usb_endpoint_descriptor_no_audio source;
+- struct usb_endpoint_descriptor_no_audio sink;
+- } __attribute__((packed)) fs_descs, hs_descs;
+-} __attribute__((packed)) descriptors = {
+- .header = {
+- .magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC),
+- .length = cpu_to_le32(sizeof(descriptors)),
+- .fs_count = 3,
+- .hs_count = 3,
++struct func_desc {
++ struct usb_interface_descriptor intf;
++ struct usb_endpoint_descriptor_no_audio source;
++ struct usb_endpoint_descriptor_no_audio sink;
++} __attribute__((packed));
++
++struct ss_func_desc {
++ struct usb_interface_descriptor intf;
++ struct usb_endpoint_descriptor_no_audio source;
++ struct usb_ss_ep_comp_descriptor source_comp;
++ struct usb_endpoint_descriptor_no_audio sink;
++ struct usb_ss_ep_comp_descriptor sink_comp;
++} __attribute__((packed));
++
++struct desc_v1 {
++ struct usb_functionfs_descs_head_v1 {
++ __le32 magic;
++ __le32 length;
++ __le32 fs_count;
++ __le32 hs_count;
++ } __attribute__((packed)) header;
++ struct func_desc fs_descs, hs_descs;
++} __attribute__((packed));
++
++struct usb_os_desc_ext_prop {
++ uint32_t dwSize;
++ uint32_t dwPropertyDataType;
++
++ // Property name and value are transmitted as UTF-16, but the kernel only
++ // accepts ASCII values and performs the conversion for us.
++ uint16_t wPropertyNameLength;
++ char bPropertyName[20];
++
++ uint32_t dwPropertyDataLength;
++ char bProperty[39];
++} __attribute__((packed)) os_desc_guid = {
++ .dwSize = sizeof(struct usb_os_desc_ext_prop),
++ .dwPropertyDataType = cpu_to_le32(USB_EXT_PROP_UNICODE),
++ .wPropertyNameLength = cpu_to_le16(20),
++ .bPropertyName = "DeviceInterfaceGUID",
++ .dwPropertyDataLength = cpu_to_le32(39),
++ .bProperty = "{F72FE0D4-CBCB-407D-8814-9ED673D0DD6B}",
++};
++
++struct usb_ext_prop_values {
++ struct usb_os_desc_ext_prop guid;
++} __attribute__((packed));
++
++struct desc_v2 {
++ struct usb_functionfs_descs_head_v2 header;
++ // The rest of the structure depends on the flags in the header.
++ __le32 fs_count;
++ __le32 hs_count;
++ __le32 ss_count;
++ __le32 os_count;
++ struct func_desc fs_descs, hs_descs;
++ struct ss_func_desc ss_descs;
++ struct usb_os_desc_header os_header;
++ struct usb_ext_compat_desc os_desc;
++ struct usb_os_desc_header os_prop_header;
++ struct usb_ext_prop_values os_prop_values;
++} __attribute__((packed));
++
++static struct func_desc fs_descriptors = {
++ .intf = {
++ .bLength = sizeof(fs_descriptors.intf),
++ .bDescriptorType = USB_DT_INTERFACE,
++ .bInterfaceNumber = 0,
++ .bNumEndpoints = 2,
++ .bInterfaceClass = ADB_CLASS,
++ .bInterfaceSubClass = ADB_SUBCLASS,
++ .bInterfaceProtocol = ADB_PROTOCOL,
++ .iInterface = 1, /* first string from the provided table */
++ },
++ .source = {
++ .bLength = sizeof(fs_descriptors.source),
++ .bDescriptorType = USB_DT_ENDPOINT,
++ .bEndpointAddress = 1 | USB_DIR_OUT,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++ .wMaxPacketSize = MAX_PACKET_SIZE_FS,
++ },
++ .sink = {
++ .bLength = sizeof(fs_descriptors.sink),
++ .bDescriptorType = USB_DT_ENDPOINT,
++ .bEndpointAddress = 2 | USB_DIR_IN,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++ .wMaxPacketSize = MAX_PACKET_SIZE_FS,
++ },
++};
++
++static struct func_desc hs_descriptors = {
++ .intf = {
++ .bLength = sizeof(hs_descriptors.intf),
++ .bDescriptorType = USB_DT_INTERFACE,
++ .bInterfaceNumber = 0,
++ .bNumEndpoints = 2,
++ .bInterfaceClass = ADB_CLASS,
++ .bInterfaceSubClass = ADB_SUBCLASS,
++ .bInterfaceProtocol = ADB_PROTOCOL,
++ .iInterface = 1, /* first string from the provided table */
++ },
++ .source = {
++ .bLength = sizeof(hs_descriptors.source),
++ .bDescriptorType = USB_DT_ENDPOINT,
++ .bEndpointAddress = 1 | USB_DIR_OUT,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++ .wMaxPacketSize = MAX_PACKET_SIZE_HS,
++ },
++ .sink = {
++ .bLength = sizeof(hs_descriptors.sink),
++ .bDescriptorType = USB_DT_ENDPOINT,
++ .bEndpointAddress = 2 | USB_DIR_IN,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++ .wMaxPacketSize = MAX_PACKET_SIZE_HS,
++ },
++};
++
++static struct ss_func_desc ss_descriptors = {
++ .intf = {
++ .bLength = sizeof(ss_descriptors.intf),
++ .bDescriptorType = USB_DT_INTERFACE,
++ .bInterfaceNumber = 0,
++ .bNumEndpoints = 2,
++ .bInterfaceClass = ADB_CLASS,
++ .bInterfaceSubClass = ADB_SUBCLASS,
++ .bInterfaceProtocol = ADB_PROTOCOL,
++ .iInterface = 1, /* first string from the provided table */
++ },
++ .source = {
++ .bLength = sizeof(ss_descriptors.source),
++ .bDescriptorType = USB_DT_ENDPOINT,
++ .bEndpointAddress = 1 | USB_DIR_OUT,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++ .wMaxPacketSize = MAX_PACKET_SIZE_SS,
++ },
++ .source_comp = {
++ .bLength = sizeof(ss_descriptors.source_comp),
++ .bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
++ .bMaxBurst = 4,
+ },
+- .fs_descs = {
+- .intf = {
+- .bLength = sizeof(descriptors.fs_descs.intf),
+- .bDescriptorType = USB_DT_INTERFACE,
+- .bInterfaceNumber = 0,
+- .bNumEndpoints = 2,
+- .bInterfaceClass = ADB_CLASS,
+- .bInterfaceSubClass = ADB_SUBCLASS,
+- .bInterfaceProtocol = ADB_PROTOCOL,
+- .iInterface = 1, /* first string from the provided table */
+- },
+- .source = {
+- .bLength = sizeof(descriptors.fs_descs.source),
+- .bDescriptorType = USB_DT_ENDPOINT,
+- .bEndpointAddress = 1 | USB_DIR_OUT,
+- .bmAttributes = USB_ENDPOINT_XFER_BULK,
+- .wMaxPacketSize = MAX_PACKET_SIZE_FS,
+- },
+- .sink = {
+- .bLength = sizeof(descriptors.fs_descs.sink),
+- .bDescriptorType = USB_DT_ENDPOINT,
+- .bEndpointAddress = 2 | USB_DIR_IN,
+- .bmAttributes = USB_ENDPOINT_XFER_BULK,
+- .wMaxPacketSize = MAX_PACKET_SIZE_FS,
+- },
++ .sink = {
++ .bLength = sizeof(ss_descriptors.sink),
++ .bDescriptorType = USB_DT_ENDPOINT,
++ .bEndpointAddress = 2 | USB_DIR_IN,
++ .bmAttributes = USB_ENDPOINT_XFER_BULK,
++ .wMaxPacketSize = MAX_PACKET_SIZE_SS,
+ },
+- .hs_descs = {
+- .intf = {
+- .bLength = sizeof(descriptors.hs_descs.intf),
+- .bDescriptorType = USB_DT_INTERFACE,
+- .bInterfaceNumber = 0,
+- .bNumEndpoints = 2,
+- .bInterfaceClass = ADB_CLASS,
+- .bInterfaceSubClass = ADB_SUBCLASS,
+- .bInterfaceProtocol = ADB_PROTOCOL,
+- .iInterface = 1, /* first string from the provided table */
+- },
+- .source = {
+- .bLength = sizeof(descriptors.hs_descs.source),
+- .bDescriptorType = USB_DT_ENDPOINT,
+- .bEndpointAddress = 1 | USB_DIR_OUT,
+- .bmAttributes = USB_ENDPOINT_XFER_BULK,
+- .wMaxPacketSize = MAX_PACKET_SIZE_HS,
+- },
+- .sink = {
+- .bLength = sizeof(descriptors.hs_descs.sink),
+- .bDescriptorType = USB_DT_ENDPOINT,
+- .bEndpointAddress = 2 | USB_DIR_IN,
+- .bmAttributes = USB_ENDPOINT_XFER_BULK,
+- .wMaxPacketSize = MAX_PACKET_SIZE_HS,
+- },
++ .sink_comp = {
++ .bLength = sizeof(ss_descriptors.sink_comp),
++ .bDescriptorType = USB_DT_SS_ENDPOINT_COMP,
++ .bMaxBurst = 4,
+ },
+ };
+
++struct usb_ext_compat_desc os_desc_compat = {
++ .bFirstInterfaceNumber = 0,
++ .Reserved1 = cpu_to_le32(1),
++ .CompatibleID = { 'W', 'I', 'N', 'U', 'S', 'B', '\0', '\0'},
++ .SubCompatibleID = {0},
++ .Reserved2 = {0},
++};
++
++static struct usb_os_desc_header os_desc_header = {
++ .interface = cpu_to_le32(0),
++ .dwLength = cpu_to_le32(sizeof(os_desc_header) + sizeof(os_desc_compat)),
++ .bcdVersion = cpu_to_le32(1),
++ .wIndex = cpu_to_le32(4),
++ .bCount = cpu_to_le32(1),
++ .Reserved = cpu_to_le32(0),
++};
++
++static struct usb_os_desc_header os_prop_header = {
++ .interface = cpu_to_le32(0),
++ .dwLength = cpu_to_le32(sizeof(os_desc_header) + sizeof(struct usb_ext_prop_values)),
++ .bcdVersion = cpu_to_le32(1),
++ .wIndex = cpu_to_le32(5),
++ .wCount = cpu_to_le16(1),
++};
++
+ #define STR_INTERFACE_ "ADB Interface"
+
+ static const struct {
+@@ -151,8 +264,6 @@ static const struct {
+ },
+ };
+
+-
+-
+ static void *usb_adb_open_thread(void *x)
+ {
+ struct usb_handle *usb = (struct usb_handle *)x;
+@@ -270,6 +381,24 @@ static void usb_adb_init()
+ static void init_functionfs(struct usb_handle *h)
+ {
+ ssize_t ret;
++ struct desc_v1 v1_descriptor = {};
++ struct desc_v2 v2_descriptor = {};
++
++ v2_descriptor.header.magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC_V2);
++ v2_descriptor.header.length = cpu_to_le32(sizeof(v2_descriptor));
++ v2_descriptor.header.flags = FUNCTIONFS_HAS_FS_DESC | FUNCTIONFS_HAS_HS_DESC |
++ FUNCTIONFS_HAS_SS_DESC | FUNCTIONFS_HAS_MS_OS_DESC;
++ v2_descriptor.fs_count = 3;
++ v2_descriptor.hs_count = 3;
++ v2_descriptor.ss_count = 5;
++ v2_descriptor.os_count = 2;
++ v2_descriptor.fs_descs = fs_descriptors;
++ v2_descriptor.hs_descs = hs_descriptors;
++ v2_descriptor.ss_descs = ss_descriptors;
++ v2_descriptor.os_header = os_desc_header;
++ v2_descriptor.os_desc = os_desc_compat;
++ v2_descriptor.os_prop_header = os_prop_header;
++ v2_descriptor.os_prop_values.guid = os_desc_guid;
+
+ if (h->control < 0) { // might have already done this before
+ D("OPENING %s\n", USB_FFS_ADB_EP0);
+@@ -279,10 +408,20 @@ static void init_functionfs(struct usb_handle *h)
+ goto err;
+ }
+
+- ret = adb_write(h->control, &descriptors, sizeof(descriptors));
++ ret = adb_write(h->control, &v2_descriptor, sizeof(v2_descriptor));
+ if (ret < 0) {
+- D("[ %s: write descriptors failed: errno=%d ]\n", USB_FFS_ADB_EP0, errno);
+- goto err;
++ D("[ %s: write v2_descriptor failed: errno=%d ]\n", USB_FFS_ADB_EP0, errno);
++ v1_descriptor.header.magic = cpu_to_le32(FUNCTIONFS_DESCRIPTORS_MAGIC);
++ v1_descriptor.header.length = cpu_to_le32(sizeof(v1_descriptor));
++ v1_descriptor.header.fs_count = 3;
++ v1_descriptor.header.hs_count = 3;
++ v1_descriptor.fs_descs = fs_descriptors;
++ v1_descriptor.hs_descs = hs_descriptors;
++ ret = adb_write(h->control, &v1_descriptor, sizeof(v1_descriptor));
++ if (ret < 0) {
++ D("[ %s: failed to write USB descriptors]\n", USB_FFS_ADB_EP0);
++ goto err;
++ }
+ }
+
+ ret = adb_write(h->control, &strings, sizeof(strings));
+--
+2.18.0
+
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
new file mode 100644
index 0000000000..5009c73a05
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch
@@ -0,0 +1,60 @@
+From 7b74d23ed955206a789a96bdc3288593e702afac Mon Sep 17 00:00:00 2001
+From: Sean Anderson <sean.anderson@seco.com>
+Date: Thu, 30 Dec 2021 15:16:08 -0500
+Subject: [PATCH] libsparse: Split off most of sparse_file_read_normal into a
+ helper function
+
+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]
+Signed-off-by: Sean Anderson <sean.anderson@seco.com>
+---
+ libsparse/sparse_read.c | 21 ++++++++++++++++-----
+ 1 file changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/libsparse/sparse_read.c b/libsparse/sparse_read.c
+index 8e188e9a4..ee4abd86a 100644
+--- a/libsparse/sparse_read.c
++++ b/libsparse/sparse_read.c
+@@ -353,13 +353,11 @@ static int sparse_file_read_sparse(struct sparse_file *s, int fd, bool crc)
+ return 0;
+ }
+
+-static int sparse_file_read_normal(struct sparse_file *s, int fd)
++static int do_sparse_file_read_normal(struct sparse_file *s, int fd, uint32_t* buf, int64_t offset,
++ int64_t remain)
+ {
+ int ret;
+- uint32_t *buf = malloc(s->block_size);
+- unsigned int block = 0;
+- int64_t remain = s->len;
+- int64_t offset = 0;
++ unsigned int block = offset / s->block_size;
+ unsigned int to_read;
+ unsigned int i;
+ bool sparse_block;
+@@ -403,6 +401,19 @@ static int sparse_file_read_normal(struct sparse_file *s, int fd)
+ return 0;
+ }
+
++static int sparse_file_read_normal(struct sparse_file* s, int fd)
++{
++ int ret;
++ uint32_t* buf = (uint32_t*)malloc(s->block_size);
++
++ if (!buf)
++ return -ENOMEM;
++
++ ret = do_sparse_file_read_normal(s, fd, buf, 0, s->len);
++ free(buf);
++ return ret;
++}
++
+ int sparse_file_read(struct sparse_file *s, int fd, bool sparse, bool crc)
+ {
+ if (crc && !sparse) {
+--
+2.35.1.1320.gc452695387.dirty
+
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0016-libsparse-Add-hole-mode-to-sparse_file_read.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0016-libsparse-Add-hole-mode-to-sparse_file_read.patch
new file mode 100644
index 0000000000..e5221d2b4c
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0016-libsparse-Add-hole-mode-to-sparse_file_read.patch
@@ -0,0 +1,188 @@
+From 41574b628ec4229c24dfe289af7b6978edcca4ed Mon Sep 17 00:00:00 2001
+From: Sean Anderson <sean.anderson@seco.com>
+Date: Thu, 30 Dec 2021 15:19:41 -0500
+Subject: [PATCH] libsparse: Add "hole" mode to sparse_file_read
+
+This adds support for filesystem-level sparse files. These files have
+holes which are not stored in the filesystem and when read are full of
+zeros. While these zeros may be significant in some types of files,
+other types of files may not care about the contents of holes. For
+example, most filesystem creation tools write to all the blocks they
+care about. Those blocks not written to will remain holes, and can be
+safely represented by "don't care" chunks. Using "don't care" chunks
+instead of fill chunks can result in a substantial reduction of the time
+it takes to program a sparse image.
+
+To accomplish this, we extend the existing "sparse" boolean parameter to
+be an enum of mode types. This enum represents the strategy we take when
+reading in a file. For the most part the implementation is
+straightforward. We use lseek to determine where the holes in the file
+are, and then use do_sparse_file_read_normal to create chunks for the
+data section. Note that every file has an implicit hole at its end.
+
+Change-Id: I0cfbf08886fca9a91cb753ec8734c84fcbe52c9f
+Upstream-Status: Backport [f96466b05543b984ef7315d830bab4a409228d35]
+Signed-off-by: Sean Anderson <sean.anderson@seco.com>
+---
+ libsparse/img2simg.c | 2 +-
+ libsparse/include/sparse/sparse.h | 32 +++++++++++---
+ libsparse/sparse_read.c | 71 +++++++++++++++++++++++++++++--
+ 3 files changed, 93 insertions(+), 12 deletions(-)
+
+diff --git a/libsparse/img2simg.c b/libsparse/img2simg.c
+index a0db36f45..2e171b613 100644
+--- a/libsparse/img2simg.c
++++ b/libsparse/img2simg.c
+@@ -96,7 +96,7 @@ int main(int argc, char *argv[])
+ }
+
+ sparse_file_verbose(s);
+- ret = sparse_file_read(s, in, false, false);
++ ret = sparse_file_read(s, in, SPARSE_READ_MODE_NORMAL, false);
+ if (ret) {
+ fprintf(stderr, "Failed to read file\n");
+ exit(-1);
+diff --git a/libsparse/include/sparse/sparse.h b/libsparse/include/sparse/sparse.h
+index 8b757d22a..b68aa21a8 100644
+--- a/libsparse/include/sparse/sparse.h
++++ b/libsparse/include/sparse/sparse.h
+@@ -196,23 +196,41 @@ int64_t sparse_file_len(struct sparse_file *s, bool sparse, bool crc);
+ int sparse_file_callback(struct sparse_file *s, bool sparse, bool crc,
+ int (*write)(void *priv, const void *data, int len), void *priv);
+
++/**
++ * enum sparse_read_mode - The method to use when reading in files
++ * @SPARSE_READ_MODE_NORMAL: The input is a regular file. Constant chunks of
++ * data (including holes) will be be converted to
++ * fill chunks.
++ * @SPARSE_READ_MODE_SPARSE: The input is an Android sparse file.
++ * @SPARSE_READ_MODE_HOLE: The input is a regular file. Holes will be converted
++ * to "don't care" chunks. Other constant chunks will
++ * be converted to fill chunks.
++ */
++enum sparse_read_mode {
++ SPARSE_READ_MODE_NORMAL = false,
++ SPARSE_READ_MODE_SPARSE = true,
++ SPARSE_READ_MODE_HOLE,
++};
++
+ /**
+ * sparse_file_read - read a file into a sparse file cookie
+ *
+ * @s - sparse file cookie
+ * @fd - file descriptor to read from
+- * @sparse - read a file in the Android sparse file format
++ * @mode - mode to use when reading the input file
+ * @crc - verify the crc of a file in the Android sparse file format
+ *
+- * Reads a file into a sparse file cookie. If sparse is true, the file is
+- * assumed to be in the Android sparse file format. If sparse is false, the
+- * file will be sparsed by looking for block aligned chunks of all zeros or
+- * another 32 bit value. If crc is true, the crc of the sparse file will be
+- * verified.
++ * Reads a file into a sparse file cookie. If @mode is
++ * %SPARSE_READ_MODE_SPARSE, the file is assumed to be in the Android sparse
++ * file format. If @mode is %SPARSE_READ_MODE_NORMAL, the file will be sparsed
++ * by looking for block aligned chunks of all zeros or another 32 bit value. If
++ * @mode is %SPARSE_READ_MODE_HOLE, the file will be sparsed like
++ * %SPARSE_READ_MODE_NORMAL, but holes in the file will be converted to "don't
++ * care" chunks. If crc is true, the crc of the sparse file will be verified.
+ *
+ * Returns 0 on success, negative errno on error.
+ */
+-int sparse_file_read(struct sparse_file *s, int fd, bool sparse, bool crc);
++int sparse_file_read(struct sparse_file *s, int fd, enum sparse_read_mode mode, bool crc);
+
+ /**
+ * sparse_file_import - import an existing sparse file
+diff --git a/libsparse/sparse_read.c b/libsparse/sparse_read.c
+index ee4abd86a..81f48cc13 100644
+--- a/libsparse/sparse_read.c
++++ b/libsparse/sparse_read.c
+@@ -414,16 +414,79 @@ static int sparse_file_read_normal(struct sparse_file* s, int fd)
+ return ret;
+ }
+
+-int sparse_file_read(struct sparse_file *s, int fd, bool sparse, bool crc)
++#ifdef __linux__
++static int sparse_file_read_hole(struct sparse_file* s, int fd)
+ {
+- if (crc && !sparse) {
++ int ret;
++ uint32_t* buf = (uint32_t*)malloc(s->block_size);
++ int64_t end = 0;
++ int64_t start = 0;
++
++ if (!buf) {
++ return -ENOMEM;
++ }
++
++ do {
++ start = lseek(fd, end, SEEK_DATA);
++ if (start < 0) {
++ if (errno == ENXIO)
++ /* The rest of the file is a hole */
++ break;
++
++ error("could not seek to data");
++ free(buf);
++ return -errno;
++ } else if (start > s->len) {
++ break;
++ }
++
++ end = lseek(fd, start, SEEK_HOLE);
++ if (end < 0) {
++ error("could not seek to end");
++ free(buf);
++ return -errno;
++ }
++ end = min(end, s->len);
++
++ start = ALIGN_DOWN(start, s->block_size);
++ end = ALIGN(end, s->block_size);
++ if (lseek(fd, start, SEEK_SET) < 0) {
++ free(buf);
++ return -errno;
++ }
++
++ ret = do_sparse_file_read_normal(s, fd, buf, start, end - start);
++ if (ret) {
++ free(buf);
++ return ret;
++ }
++ } while (end < s->len);
++
++ free(buf);
++ return 0;
++}
++#else
++static int sparse_file_read_hole(struct sparse_file* s __unused, int fd __unused)
++{
++ return -ENOTSUP;
++}
++#endif
++
++int sparse_file_read(struct sparse_file *s, int fd, enum sparse_read_mode mode, bool crc)
++{
++ if (crc && mode != SPARSE_READ_MODE_SPARSE) {
+ return -EINVAL;
+ }
+
+- if (sparse) {
++ switch (mode) {
++ case SPARSE_READ_MODE_SPARSE:
+ return sparse_file_read_sparse(s, fd, crc);
+- } else {
++ case SPARSE_READ_MODE_NORMAL:
+ return sparse_file_read_normal(s, fd);
++ case SPARSE_READ_MODE_HOLE:
++ return sparse_file_read_hole(s, fd);
++ default:
++ return -EINVAL;
+ }
+ }
+
+--
+2.35.1.1320.gc452695387.dirty
+
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/0017-img2simg-Add-support-for-converting-holes-to-don-t-c.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/0017-img2simg-Add-support-for-converting-holes-to-don-t-c.patch
new file mode 100644
index 0000000000..9d19f58095
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/0017-img2simg-Add-support-for-converting-holes-to-don-t-c.patch
@@ -0,0 +1,114 @@
+From 00cce57eff1a0de3b93efa5da225e9eb33d19659 Mon Sep 17 00:00:00 2001
+From: Sean Anderson <sean.anderson@seco.com>
+Date: Thu, 30 Dec 2021 15:34:28 -0500
+Subject: [PATCH] img2simg: Add support for converting holes to "don't care"
+ chunks
+
+This adds support for converting files with holes to "don't care"
+chunks. This can result in a substantial reduction in the time it takes
+to program an image if it has many holes.
+
+Generally, constants compared to argc have been reduced by one, since we
+no longer have the program name as the first argument.
+
+Change-Id: I00750edc07d6415dcc07ae0351e9397b0222b7ba
+Upstream-Status: Backport [6150b00b6025918da8c28e5c2f929ecdf480a9d6]
+Signed-off-by: Sean Anderson <sean.anderson@seco.com>
+---
+ libsparse/img2simg.c | 41 ++++++++++++++++++++++++++++++-----------
+ 1 file changed, 30 insertions(+), 11 deletions(-)
+
+diff --git a/libsparse/img2simg.c b/libsparse/img2simg.c
+index 2e171b613..c985d5449 100644
+--- a/libsparse/img2simg.c
++++ b/libsparse/img2simg.c
+@@ -40,25 +40,42 @@
+
+ void usage()
+ {
+- fprintf(stderr, "Usage: img2simg <raw_image_file> <sparse_image_file> [<block_size>]\n");
++ fprintf(stderr, "Usage: img2simg [-s] <raw_image_file> <sparse_image_file> [<block_size>]\n");
+ }
+
+ int main(int argc, char *argv[])
+ {
++ char *arg_in;
++ char *arg_out;
++ enum sparse_read_mode mode = SPARSE_READ_MODE_NORMAL;
++ int extra;
+ int in;
++ int opt;
+ int out;
+ int ret;
+ struct sparse_file *s;
+ unsigned int block_size = 4096;
+ off64_t len;
+
+- if (argc < 3 || argc > 4) {
++ while ((opt = getopt(argc, argv, "s")) != -1) {
++ switch (opt) {
++ case 's':
++ mode = SPARSE_READ_MODE_HOLE;
++ break;
++ default:
++ usage();
++ exit(-1);
++ }
++ }
++
++ extra = argc - optind;
++ if (extra < 2 || extra > 3) {
+ usage();
+ exit(-1);
+ }
+
+- if (argc == 4) {
+- block_size = atoi(argv[3]);
++ if (extra == 3) {
++ block_size = atoi(argv[optind + 2]);
+ }
+
+ if (block_size < 1024 || block_size % 4 != 0) {
+@@ -66,22 +83,24 @@ int main(int argc, char *argv[])
+ exit(-1);
+ }
+
+- if (strcmp(argv[1], "-") == 0) {
++ arg_in = argv[optind];
++ if (strcmp(arg_in, "-") == 0) {
+ in = STDIN_FILENO;
+ } else {
+- in = open(argv[1], O_RDONLY | O_BINARY);
++ in = open(arg_in, O_RDONLY | O_BINARY);
+ if (in < 0) {
+- fprintf(stderr, "Cannot open input file %s\n", argv[1]);
++ fprintf(stderr, "Cannot open input file %s\n", arg_in);
+ exit(-1);
+ }
+ }
+
+- if (strcmp(argv[2], "-") == 0) {
++ arg_out = argv[optind + 1];
++ if (strcmp(arg_out, "-") == 0) {
+ out = STDOUT_FILENO;
+ } else {
+- out = open(argv[2], O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0664);
++ out = open(arg_out, O_WRONLY | O_CREAT | O_TRUNC | O_BINARY, 0664);
+ if (out < 0) {
+- fprintf(stderr, "Cannot open output file %s\n", argv[2]);
++ fprintf(stderr, "Cannot open output file %s\n", arg_out);
+ exit(-1);
+ }
+ }
+@@ -96,7 +115,7 @@ int main(int argc, char *argv[])
+ }
+
+ sparse_file_verbose(s);
+- ret = sparse_file_read(s, in, SPARSE_READ_MODE_NORMAL, false);
++ ret = sparse_file_read(s, in, mode, false);
+ if (ret) {
+ fprintf(stderr, "Failed to read file\n");
+ exit(-1);
+--
+2.35.1.1320.gc452695387.dirty
+
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
new file mode 100644
index 0000000000..177d69a97a
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/adb_libssl_11.diff
@@ -0,0 +1,43 @@
+Description: adb: Make compatible with openssl 1.1
+ OpenSSL version 1.1 brought some API changes which broke the build here,
+ fix that by accessing rsa->n (and e) directly, using RSA_get0_key instead.
+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(-)
+
+--- a/adb/adb_auth_host.c
++++ b/adb/adb_auth_host.c
+@@ -75,6 +75,7 @@ static int RSA_to_RSAPublicKey(RSA *rsa,
+ BIGNUM* rem = BN_new();
+ BIGNUM* n = BN_new();
+ BIGNUM* n0inv = BN_new();
++ BIGNUM* e = BN_new();
+
+ if (RSA_size(rsa) != RSANUMBYTES) {
+ ret = 0;
+@@ -82,7 +83,7 @@ static int RSA_to_RSAPublicKey(RSA *rsa,
+ }
+
+ BN_set_bit(r32, 32);
+- BN_copy(n, rsa->n);
++ RSA_get0_key(rsa, &n, &e, NULL);
+ BN_set_bit(r, RSANUMWORDS * 32);
+ BN_mod_sqr(rr, r, n, ctx);
+ BN_div(NULL, rem, n, r32, ctx);
+@@ -96,7 +97,7 @@ static int RSA_to_RSAPublicKey(RSA *rsa,
+ BN_div(n, rem, n, r32, ctx);
+ pkey->n[i] = BN_get_word(rem);
+ }
+- pkey->exponent = BN_get_word(rsa->e);
++ pkey->exponent = BN_get_word(e);
+
+ out:
+ BN_free(n0inv);
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/core/b64_pton_function_decl.patch b/meta-oe/recipes-devtools/android-tools/android-tools/core/b64_pton_function_decl.patch
new file mode 100644
index 0000000000..80410f1d2b
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/core/b64_pton_function_decl.patch
@@ -0,0 +1,14 @@
+Add protoype declaration for b64_pton
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/adb/adb_auth_client.c
++++ b/adb/adb_auth_client.c
+@@ -29,6 +29,7 @@
+
+ #define TRACE_TAG TRACE_AUTH
+
++extern int b64_pton(const char* src, uint8_t* target, size_t targsize);
+
+ struct adb_public_key {
+ struct listnode node;
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch b/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch
deleted file mode 100644
index 8381967c44..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/define-shell-command.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: we intend to run on Linux system so the shell is always /bin/sh,
- for the host or the target.
-Author: Fathi Boudra <fabo@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/services.c | 4 ----
- 1 file changed, 4 deletions(-)
-
---- a/system/core/adb/services.c
-+++ b/system/core/adb/services.c
-@@ -299,11 +299,7 @@ static int create_subproc_raw(const char
- }
- #endif /* !ABD_HOST */
-
--#if ADB_HOST
- #define SHELL_COMMAND "/bin/sh"
--#else
--#define SHELL_COMMAND "/system/bin/sh"
--#endif
-
- #if !ADB_HOST
- static void subproc_waiter_service(int fd, void *cookie)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch b/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch
new file mode 100644
index 0000000000..4a19a5d65a
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/extras/0001-ext4_utils-remove-selinux-extensions.patch
@@ -0,0 +1,39 @@
+From 354604da9d152f1931e91991d3f34197fc8fc759 Mon Sep 17 00:00:00 2001
+From: Sergio Schvezov <sergio.schvezov@canonical.com>
+Date: Tue, 2 Oct 2018 16:36:54 +0000
+Subject: [PATCH] ext4_utils: remove selinux extensions
+
+* drop useless includes of Android SELINUX extensions
+* avoids having to clone another module
+* this should be sent upstream
+
+Upstream-Status: Inappropriate
+---
+ ext4_utils/make_ext4fs.c | 1 -
+ ext4_utils/make_ext4fs_main.c | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
+index 2f89ae8a0..732afbed7 100644
+--- a/ext4_utils/make_ext4fs.c
++++ b/ext4_utils/make_ext4fs.c
+@@ -62,7 +62,6 @@
+
+ #include <selinux/selinux.h>
+ #include <selinux/label.h>
+-#include <selinux/android.h>
+
+ #define O_BINARY 0
+
+diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
+index a6c5f6160..f8e7b9da9 100644
+--- a/ext4_utils/make_ext4fs_main.c
++++ b/ext4_utils/make_ext4fs_main.c
+@@ -32,7 +32,6 @@
+ #ifndef USE_MINGW
+ #include <selinux/selinux.h>
+ #include <selinux/label.h>
+-#include <selinux/android.h>
+ #else
+ struct selabel_handle;
+ #endif
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch b/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch
new file mode 100644
index 0000000000..3b50ffbf36
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch
@@ -0,0 +1,78 @@
+From b9254539811ce912bfd16dd1d185eba7a10cceff Mon Sep 17 00:00:00 2001
+From: Markus Mayer <mmayer@mmayer.net>
+Date: Wed, 7 Sep 2016 12:58:47 +0300
+Subject: [PATCH] ext4_utils: add -o argument to preserve ownership
+
+See also https://android-review.googlesource.com/#/c/100312/
+
+Upstream-Status: Inappropriate
+---
+ ext4_utils/make_ext4fs.c | 6 ++++++
+ ext4_utils/make_ext4fs_main.c | 10 ++++++++--
+ 2 files changed, 14 insertions(+), 2 deletions(-)
+
+diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
+index 732afbed7..2cbf04399 100644
+--- a/ext4_utils/make_ext4fs.c
++++ b/ext4_utils/make_ext4fs.c
+@@ -67,6 +67,8 @@
+
+ #endif
+
++int preserve_owner = 0;
++
+ /* TODO: Not implemented:
+ Allocating blocks in the same block group as the file inode
+ Hash or binary tree directories
+@@ -185,6 +187,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
+ } else {
+ dentries[i].mtime = fixed_time;
+ }
++ if (preserve_owner) {
++ dentries[i].uid = stat.st_uid;
++ dentries[i].gid = stat.st_gid;
++ }
+ uint64_t capabilities;
+ if (fs_config_func != NULL) {
+ #ifdef ANDROID
+diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
+index f8e7b9da9..e82d43277 100644
+--- a/ext4_utils/make_ext4fs_main.c
++++ b/ext4_utils/make_ext4fs_main.c
+@@ -47,13 +47,15 @@ struct selabel_handle;
+ extern struct fs_info info;
+
+
++extern int preserve_owner;
++
+ static void usage(char *path)
+ {
+ fprintf(stderr, "%s [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]\n", basename(path));
+ fprintf(stderr, " [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]\n");
+ fprintf(stderr, " [ -L <label> ] [ -f ] [ -a <android mountpoint> ]\n");
+ fprintf(stderr, " [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]\n");
+- fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -v ] [ -B <block_list_file> ]\n");
++ fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]\n");
+ fprintf(stderr, " <filename> [<directory>]\n");
+ }
+
+@@ -79,7 +81,7 @@ int main(int argc, char **argv)
+ struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
+ #endif
+
+- while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctv")) != -1) {
++ while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctov")) != -1) {
+ switch (opt) {
+ case 'l':
+ info.len = parse_num(optarg);
+@@ -142,6 +144,10 @@ int main(int argc, char **argv)
+ }
+ #endif
+ break;
++ case 'o':
++ preserve_owner = 1;
++ printf("Warning: Enabling 'preserve ownership', this is an unofficial feature!\n");
++ break;
+ case 'v':
+ verbose = 1;
+ break;
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch b/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch
deleted file mode 100644
index 8deaf3a3d7..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/fix-big-endian-build.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-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>
-
-Index: b/system/core/adb/usb_linux_client.c
-===================================================================
---- a/system/core/adb/usb_linux_client.c
-+++ b/system/core/adb/usb_linux_client.c
-@@ -34,8 +34,15 @@
- #define MAX_PACKET_SIZE_FS 64
- #define MAX_PACKET_SIZE_HS 512
-
--#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
-
- struct usb_handle
- {
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore b/meta-oe/recipes-devtools/android-tools/android-tools/gitignore
index b034c10a1e..b034c10a1e 100644
--- a/meta-oe/recipes-devtools/android-tools/android-tools/.gitignore
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/gitignore
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch b/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch
deleted file mode 100644
index 64db6168c6..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/implicit-declaration-function-strlcat-strlcopy.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Description: fix implicit declaration of stlcat/strlcopy functions.
-Author: Fathi Boudra <fabo@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/adb.c | 1 +
- system/core/fs_mgr/fs_mgr_fstab.c | 2 +-
- system/core/include/cutils/sockets.h | 2 +-
- 3 files changed, 3 insertions(+), 2 deletions(-)
-
---- a/system/core/fs_mgr/fs_mgr_fstab.c
-+++ b/system/core/fs_mgr/fs_mgr_fstab.c
-@@ -17,7 +17,7 @@
- #include <ctype.h>
- #include <stdio.h>
- #include <stdlib.h>
--#include <string.h>
-+#include <bsd/string.h>
- #include <sys/mount.h>
-
- #include "fs_mgr_priv.h"
---- a/system/core/include/cutils/sockets.h
-+++ b/system/core/include/cutils/sockets.h
-@@ -19,7 +19,7 @@
-
- #include <errno.h>
- #include <stdlib.h>
--#include <string.h>
-+#include <bsd/string.h>
- #include <stdbool.h>
-
- #ifdef HAVE_WINSOCK
---- a/system/core/adb/adb.c
-+++ b/system/core/adb/adb.c
-@@ -41,6 +41,7 @@
- #include <sys/prctl.h>
- #include <getopt.h>
- #include <selinux/selinux.h>
-+#include <grp.h>
- #else
- #include "usb_vendors.h"
- #endif
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-Remove-bionic-specific-calls.patch b/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-Remove-bionic-specific-calls.patch
new file mode 100644
index 0000000000..9de2593df8
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-Remove-bionic-specific-calls.patch
@@ -0,0 +1,25 @@
+From 36654a4484117e5f4d63a810c0d94bc9c7ee3a83 Mon Sep 17 00:00:00 2001
+From: Fathi Boudra <fabo@debian.org>
+Date: Tue, 2 Oct 2018 16:36:54 +0000
+Subject: [PATCH] Remove bionic specific calls
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ src/procattr.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/procattr.c b/src/procattr.c
+index f350808..761cf8e 100644
+--- a/src/procattr.c
++++ b/src/procattr.c
+@@ -8,7 +8,7 @@
+ #include "selinux_internal.h"
+ #include "policy.h"
+
+-#ifdef HOST
++#ifndef __BIONIC__
+ static pid_t gettid(void)
+ {
+ return syscall(__NR_gettid);
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
new file mode 100644
index 0000000000..8b5e4cf999
--- /dev/null
+++ b/meta-oe/recipes-devtools/android-tools/android-tools/libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch
@@ -0,0 +1,51 @@
+From f4f9d24860e1b5cd4f6a014f3fda7cd33ebe5be7 Mon Sep 17 00:00:00 2001
+From: Petr Lautrbach <plautrba@redhat.com>
+Date: Sat, 27 Jul 2019 08:20:20 -0700
+Subject: [PATCH] libselinux: Do not define gettid() if glibc >= 2.30 is used
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Since version 2.30 glibc implements gettid() system call wrapper, see
+https://sourceware.org/bugzilla/show_bug.cgi?id=6399
+
+Fixes:
+cc -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -I../include -D_GNU_SOURCE -DNO_ANDROID_BACKEND -c -o procattr.o procattr.c
+procattr.c:28:14: error: static declaration of ‘gettid’ follows non-static declaration
+ 28 | static pid_t gettid(void)
+ | ^~~~~~
+In file included from /usr/include/unistd.h:1170,
+ from procattr.c:2:
+/usr/include/bits/unistd_ext.h:34:16: note: previous declaration of ‘gettid’ was here
+ 34 | extern __pid_t gettid (void) __THROW;
+ | ^~~~~~
+
+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(-)
+
+--- a/src/procattr.c
++++ b/src/procattr.c
+@@ -8,12 +8,16 @@
+ #include "selinux_internal.h"
+ #include "policy.h"
+
+-#ifndef __BIONIC__
++/* Bionic and glibc >= 2.30 declare gettid() system call wrapper in unistd.h and
++ * has a definition for it */
++#if defined(__GLIBC_)
++#if !__GLIBC_PREREQ(2,30)
+ static pid_t gettid(void)
+ {
+ return syscall(__NR_gettid);
+ }
+ #endif
++#endif
+
+ static int getprocattrcon(char ** context,
+ pid_t pid, const char *attr)
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch b/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
deleted file mode 100644
index 35bb766a7f..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/mkbootimg-Add-dt-parameter-to-specify-DT-image.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From cc5e7b02a3be57709a1aed6e34be100b82a71620 Mon Sep 17 00:00:00 2001
-From: David Ng <dave@codeaurora.org>
-Date: Fri, 27 Jul 2012 17:15:03 -0700
-Subject: [PATCH 1/2] mkbootimg: Add --dt parameter to specify DT image
-
-New optional --dt parameter to specify a kernel device
-tree image.
-
-Change-Id: Ie29a11cbf4138426bfd19ae486d69a5fcbd8f442
-
-Upstream-Status: Inappropriate
----
- system/core/mkbootimg/bootimg.h | 7 +++++--
- system/core/mkbootimg/mkbootimg.c | 21 +++++++++++++++++++++
- 2 files changed, 26 insertions(+), 2 deletions(-)
-
---- a/system/core/mkbootimg/bootimg.h
-+++ b/system/core/mkbootimg/bootimg.h
-@@ -41,8 +41,8 @@ struct boot_img_hdr
-
- unsigned tags_addr; /* physical addr for kernel tags */
- unsigned page_size; /* flash page size we assume */
-- unsigned unused[2]; /* future expansion: should be 0 */
--
-+ unsigned dt_size; /* device tree in bytes */
-+ unsigned unused; /* future expansion: should be 0 */
- unsigned char name[BOOT_NAME_SIZE]; /* asciiz product name */
-
- unsigned char cmdline[BOOT_ARGS_SIZE];
-@@ -64,10 +64,13 @@ struct boot_img_hdr
- ** +-----------------+
- ** | second stage | o pages
- ** +-----------------+
-+** | device tree | p pages
-+** +-----------------+
- **
- ** n = (kernel_size + page_size - 1) / page_size
- ** m = (ramdisk_size + page_size - 1) / page_size
- ** o = (second_size + page_size - 1) / page_size
-+** p = (dt_size + page_size - 1) / page_size
- **
- ** 0. all entities are page_size aligned in flash
- ** 1. kernel and ramdisk are required (size != 0)
---- a/system/core/mkbootimg/mkbootimg.c
-+++ b/system/core/mkbootimg/mkbootimg.c
-@@ -65,6 +65,7 @@ int usage(void)
- " [ --board <boardname> ]\n"
- " [ --base <address> ]\n"
- " [ --pagesize <pagesize> ]\n"
-+ " [ --dt <filename> ]\n"
- " -o|--output <filename>\n"
- );
- return 1;
-@@ -105,6 +106,8 @@ int main(int argc, char **argv)
- char *cmdline = "";
- char *bootimg = 0;
- char *board = "";
-+ char *dt_fn = 0;
-+ void *dt_data = 0;
- unsigned pagesize = 2048;
- int fd;
- SHA_CTX ctx;
-@@ -158,6 +161,8 @@ int main(int argc, char **argv)
- fprintf(stderr,"error: unsupported page size %d\n", pagesize);
- return -1;
- }
-+ } else if(!strcmp(arg, "--dt")) {
-+ dt_fn = val;
- } else {
- return usage();
- }
-@@ -232,6 +237,14 @@ int main(int argc, char **argv)
- }
- }
-
-+ if(dt_fn) {
-+ dt_data = load_file(dt_fn, &hdr.dt_size);
-+ if (dt_data == 0) {
-+ fprintf(stderr,"error: could not load device tree image '%s'\n", dt_fn);
-+ return 1;
-+ }
-+ }
-+
- /* put a hash of the contents in the header so boot images can be
- * differentiated based on their first 2k.
- */
-@@ -242,6 +255,10 @@ int main(int argc, char **argv)
- SHA_update(&ctx, &hdr.ramdisk_size, sizeof(hdr.ramdisk_size));
- SHA_update(&ctx, second_data, hdr.second_size);
- SHA_update(&ctx, &hdr.second_size, sizeof(hdr.second_size));
-+ if(dt_data) {
-+ SHA_update(&ctx, dt_data, hdr.dt_size);
-+ SHA_update(&ctx, &hdr.dt_size, sizeof(hdr.dt_size));
-+ }
- sha = SHA_final(&ctx);
- memcpy(hdr.id, sha,
- SHA_DIGEST_SIZE > sizeof(hdr.id) ? sizeof(hdr.id) : SHA_DIGEST_SIZE);
-@@ -266,6 +283,10 @@ int main(int argc, char **argv)
- if(write_padding(fd, pagesize, hdr.second_size)) goto fail;
- }
-
-+ if(dt_data) {
-+ if(write(fd, dt_data, hdr.dt_size) != (ssize_t) hdr.dt_size) goto fail;
-+ if(write_padding(fd, pagesize, hdr.dt_size)) goto fail;
-+ }
- return 0;
-
- fail:
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch b/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
deleted file mode 100644
index 5c90397194..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/preserve-ownership.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From aa669312a380611d280d126cb509fa282080707e Mon Sep 17 00:00:00 2001
-From: Markus Mayer <mmayer@mmayer.net>
-Date: Wed, 7 Sep 2016 12:58:47 +0300
-Subject: [PATCH] android-tools: add recipe from AOSP tag android-5.1.1_r37
-
-Description: add -o argument to preserve ownership
-
-See also https://android-review.googlesource.com/#/c/100312/
-
-Upstream-Status: Inappropriate
-
----
- ext4_utils/make_ext4fs.c | 6 ++++++
- ext4_utils/make_ext4fs_main.c | 10 ++++++++--
- 2 files changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/ext4_utils/make_ext4fs.c b/ext4_utils/make_ext4fs.c
-index 2f89ae8a..cc41d623 100644
---- a/ext4_utils/make_ext4fs.c
-+++ b/ext4_utils/make_ext4fs.c
-@@ -68,6 +68,8 @@
-
- #endif
-
-+int preserve_owner = 0;
-+
- /* TODO: Not implemented:
- Allocating blocks in the same block group as the file inode
- Hash or binary tree directories
-@@ -186,6 +188,10 @@ static u32 build_directory_structure(const char *full_path, const char *dir_path
- } else {
- dentries[i].mtime = fixed_time;
- }
-+ if (preserve_owner) {
-+ dentries[i].uid = stat.st_uid;
-+ dentries[i].gid = stat.st_gid;
-+ }
- uint64_t capabilities;
- if (fs_config_func != NULL) {
- #ifdef ANDROID
-diff --git a/ext4_utils/make_ext4fs_main.c b/ext4_utils/make_ext4fs_main.c
-index a6c5f616..7af0dddf 100644
---- a/ext4_utils/make_ext4fs_main.c
-+++ b/ext4_utils/make_ext4fs_main.c
-@@ -48,13 +48,15 @@ struct selabel_handle;
- extern struct fs_info info;
-
-
-+extern int preserve_owner;
-+
- static void usage(char *path)
- {
- fprintf(stderr, "%s [ -l <len> ] [ -j <journal size> ] [ -b <block_size> ]\n", basename(path));
- fprintf(stderr, " [ -g <blocks per group> ] [ -i <inodes> ] [ -I <inode size> ]\n");
- fprintf(stderr, " [ -L <label> ] [ -f ] [ -a <android mountpoint> ]\n");
- fprintf(stderr, " [ -S file_contexts ] [ -C fs_config ] [ -T timestamp ]\n");
-- fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -v ] [ -B <block_list_file> ]\n");
-+ fprintf(stderr, " [ -z | -s ] [ -w ] [ -c ] [ -J ] [ -o ] [ -v ] [ -B <block_list_file> ]\n");
- fprintf(stderr, " <filename> [<directory>]\n");
- }
-
-@@ -80,7 +82,7 @@ int main(int argc, char **argv)
- struct selinux_opt seopts[] = { { SELABEL_OPT_PATH, "" } };
- #endif
-
-- while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctv")) != -1) {
-+ while ((opt = getopt(argc, argv, "l:j:b:g:i:I:L:a:S:T:C:B:fwzJsctov")) != -1) {
- switch (opt) {
- case 'l':
- info.len = parse_num(optarg);
-@@ -143,6 +145,10 @@ int main(int argc, char **argv)
- }
- #endif
- break;
-+ case 'o':
-+ preserve_owner = 1;
-+ printf("Warning: Enabling 'preserve ownership', this is an unofficial feature!\n");
-+ break;
- case 'v':
- verbose = 1;
- break;
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/remove-bionic-android.patch b/meta-oe/recipes-devtools/android-tools/android-tools/remove-bionic-android.patch
deleted file mode 100644
index e933724cfd..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/remove-bionic-android.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-Description: remove bionic specific calls
-Author: Fathi Boudra <fabo@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/include/cutils/properties.h | 1 -
- system/core/libcutils/properties.c | 2 +-
- system/core/liblog/logd_write.c | 5 +++++
- 3 files changed, 6 insertions(+), 2 deletions(-)
-
---- a/system/core/include/cutils/properties.h
-+++ b/system/core/include/cutils/properties.h
-@@ -19,7 +19,6 @@
-
- #include <sys/cdefs.h>
- #include <stddef.h>
--#include <sys/system_properties.h>
- #include <stdint.h>
-
- #ifdef __cplusplus
---- a/system/core/liblog/logd_write.c
-+++ b/system/core/liblog/logd_write.c
-@@ -23,6 +23,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <sys/stat.h>
-+#include <sys/syscall.h>
- #include <sys/types.h>
- #if (FAKE_LOG_DEVICE == 0)
- #include <sys/socket.h>
-@@ -205,7 +206,11 @@ static int __write_to_log_kernel(log_id_
- realtime_ts.tv_nsec = ts.tv_nsec;
-
- log_id_buf = log_id;
-+#ifdef __BIONIC__
- tid = gettid();
-+#else
-+ tid = (pid_t) syscall(__NR_gettid);
-+#endif
-
- newVec[0].iov_base = (unsigned char *) &log_id_buf;
- newVec[0].iov_len = sizeof_log_id_t;
---- a/system/core/libcutils/properties.c
-+++ b/system/core/libcutils/properties.c
-@@ -104,10 +104,10 @@ int32_t property_get_int32(const char *k
- return (int32_t)property_get_imax(key, INT32_MIN, INT32_MAX, default_value);
- }
-
-+#undef HAVE_LIBC_SYSTEM_PROPERTIES
- #ifdef HAVE_LIBC_SYSTEM_PROPERTIES
-
- #define _REALLY_INCLUDE_SYS__SYSTEM_PROPERTIES_H_
--#include <sys/_system_properties.h>
-
- int property_set(const char *key, const char *value)
- {
---- a/external/libselinux/src/procattr.c
-+++ b/external/libselinux/src/procattr.c
-@@ -8,7 +8,7 @@
- #include "selinux_internal.h"
- #include "policy.h"
-
--#ifdef HOST
-+#ifndef __BIONIC__
- static pid_t gettid(void)
- {
- return syscall(__NR_gettid);
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/remove-selinux-android.patch b/meta-oe/recipes-devtools/android-tools/android-tools/remove-selinux-android.patch
deleted file mode 100644
index d4a37f82be..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/remove-selinux-android.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Subject: drop useless includes of Android SELINUX extensions; avoids having to clone another module; this should be sent upstream
-Author: Sergio Schvezov <sergio.schvezov@canonical.com>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/file_sync_service.c | 3 ---
- system/extras/ext4_utils/make_ext4fs.c | 1 -
- system/extras/ext4_utils/make_ext4fs_main.c | 1 -
- 3 files changed, 5 deletions(-)
-
---- a/system/extras/ext4_utils/make_ext4fs.c
-+++ b/system/extras/ext4_utils/make_ext4fs.c
-@@ -62,7 +62,6 @@
-
- #include <selinux/selinux.h>
- #include <selinux/label.h>
--#include <selinux/android.h>
-
- #define O_BINARY 0
-
---- a/system/extras/ext4_utils/make_ext4fs_main.c
-+++ b/system/extras/ext4_utils/make_ext4fs_main.c
-@@ -32,7 +32,6 @@
- #ifndef USE_MINGW
- #include <selinux/selinux.h>
- #include <selinux/label.h>
--#include <selinux/android.h>
- #else
- struct selabel_handle;
- #endif
---- a/system/core/adb/file_sync_service.c
-+++ b/system/core/adb/file_sync_service.c
-@@ -26,7 +26,6 @@
-
- #include <errno.h>
- #include <private/android_filesystem_config.h>
--#include <selinux/android.h>
- #include "sysdeps.h"
-
- #define TRACE_TAG TRACE_SYNC
-@@ -73,7 +72,6 @@ static int mkdirs(char *name)
- *x = '/';
- return ret;
- }
-- selinux_android_restorecon(name, 0);
- }
- *x++ = '/';
- }
-@@ -251,7 +249,6 @@ static int handle_send_file(int s, char
- if(fd >= 0) {
- struct utimbuf u;
- adb_close(fd);
-- selinux_android_restorecon(path, 0);
- u.actime = timestamp;
- u.modtime = timestamp;
- utime(path, &u);
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/use-capability.patch b/meta-oe/recipes-devtools/android-tools/android-tools/use-capability.patch
deleted file mode 100644
index b8ebe09dc0..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/use-capability.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Subject: use linux/capability.h on linux systems too
-Author: Loïc Minier <loic.minier@ubuntu.com>
-
-Upstream-Status: Inappropriate
----
- system/core/include/private/android_filesystem_config.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/system/core/include/private/android_filesystem_config.h
-+++ b/system/core/include/private/android_filesystem_config.h
-@@ -27,7 +27,7 @@
- #include <sys/types.h>
- #include <stdint.h>
-
--#ifdef HAVE_ANDROID_OS
-+#if defined(HAVE_ANDROID_OS) || defined(__linux__)
- #include <linux/capability.h>
- #else
- #include "android_filesystem_capability.h"
diff --git a/meta-oe/recipes-devtools/android-tools/android-tools/use-local-socket.patch b/meta-oe/recipes-devtools/android-tools/android-tools/use-local-socket.patch
deleted file mode 100644
index 7facd61b90..0000000000
--- a/meta-oe/recipes-devtools/android-tools/android-tools/use-local-socket.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Subject: adb: Use local sockets where appropriate
-Author: Hilko Bengen <bengen@debian.org>
-
-Upstream-Status: Inappropriate
----
- system/core/adb/adb.c | 6 +++++-
- system/core/adb/adb_client.c | 5 +++--
- system/core/adb/transport_local.c | 3 ++-
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
---- a/system/core/adb/adb.c
-+++ b/system/core/adb/adb.c
-@@ -1230,7 +1230,11 @@ int launch_server(int server_port)
- */
- void build_local_name(char* target_str, size_t target_size, int server_port)
- {
-- snprintf(target_str, target_size, "tcp:%d", server_port);
-+ if (gListenAll > 0) {
-+ snprintf(target_str, target_size, "tcp:%d", server_port);
-+ } else {
-+ snprintf(target_str, target_size, "local:%d", server_port);
-+ }
- }
-
- #if !ADB_HOST
---- a/system/core/adb/adb_client.c
-+++ b/system/core/adb/adb_client.c
-@@ -185,12 +185,12 @@ int _adb_connect(const char *service)
- strcpy(__adb_error, "service name too long");
- return -1;
- }
-- snprintf(tmp, sizeof tmp, "%04x", len);
-+ snprintf(tmp, sizeof tmp, "%d", __adb_server_port);
-
- if (__adb_server_name)
- fd = socket_network_client(__adb_server_name, __adb_server_port, SOCK_STREAM);
- else
-- fd = socket_loopback_client(__adb_server_port, SOCK_STREAM);
-+ fd = socket_local_client(tmp, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
-
- if(fd < 0) {
- strcpy(__adb_error, "cannot connect to daemon");
-@@ -201,6 +201,7 @@ int _adb_connect(const char *service)
- return -1;
- }
-
-+ snprintf(tmp, sizeof tmp, "%04x", len);
- if(writex(fd, tmp, 4) || writex(fd, service, len)) {
- strcpy(__adb_error, "write failure during connection");
- adb_close(fd);
---- a/system/core/adb/transport_local.c
-+++ b/system/core/adb/transport_local.c
-@@ -121,7 +121,8 @@ int local_connect_arbitrary_ports(int co
- }
- #endif
- if (fd < 0) {
-- fd = socket_loopback_client(adb_port, SOCK_STREAM);
-+ snprintf(buf, sizeof buf, "%d", adb_port);
-+ fd = socket_local_client(buf, ANDROID_SOCKET_NAMESPACE_ABSTRACT, SOCK_STREAM);
- }
-
- if (fd >= 0) {
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 780ecaa11a..9278146702 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
@@ -1,20 +1,16 @@
DESCRIPTION = "Different utilities from Android"
SECTION = "console/utils"
-LICENSE = "Apache-2.0 & GPL-2.0 & BSD-2-Clause & BSD-3-Clause"
+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;md5=801f80980d171dd6425610833a22dbe6 \
- file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378 \
+ 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 openssl zlib libcap"
+DEPENDS = "libbsd libpcre zlib libcap"
+DEPENDS:append:class-target = " openssl"
ANDROID_MIRROR = "android.googlesource.com"
-CORE_REPO = "${ANDROID_MIRROR}/platform/system/core"
-EXTRAS_REPO = "${ANDROID_MIRROR}/platform/system/extras"
-LIBHARDWARE_REPO = "${ANDROID_MIRROR}/platform/hardware/libhardware"
-LIBSELINUX_REPO = "${ANDROID_MIRROR}/platform/external/libselinux"
-BUILD_REPO = "${ANDROID_MIRROR}/platform/build"
# matches with android-5.1.1_r37
SRCREV_core = "2314b110bdebdbfd2d94c502282f9e57c849897e"
@@ -23,25 +19,40 @@ SRCREV_libhardware = "be55eb1f4d840c82ffaf7c47460df17ff5bc4d9b"
SRCREV_libselinux = "07e9e1339ad1ba608acfba9dce2d0f474b252feb"
SRCREV_build = "16e987def3d7d8f7d30805eb95cef69e52a87dbc"
+SRCREV_FORMAT = "core_extras_libhardware_libselinux_build"
SRC_URI = " \
- git://${CORE_REPO};name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
- git://${EXTRAS_REPO};name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
- git://${LIBHARDWARE_REPO};name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
- git://${LIBSELINUX_REPO};name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
- git://${BUILD_REPO};name=build;protocol=https;nobranch=1;destsuffix=git/build \
- file://remove-selinux-android.patch \
- file://use-capability.patch \
- file://use-local-socket.patch \
- file://preserve-ownership.patch;patchdir=system/extras \
- file://mkbootimg-Add-dt-parameter-to-specify-DT-image.patch \
- file://remove-bionic-android.patch \
- file://define-shell-command.patch \
- file://implicit-declaration-function-strlcat-strlcopy.patch \
- file://fix-big-endian-build.patch \
- file://0001-add-base64-implementation.patch \
- file://0002-adb-Musl-fixes.patch \
+ git://${ANDROID_MIRROR}/platform/system/core;name=core;protocol=https;nobranch=1;destsuffix=git/system/core \
+ git://${ANDROID_MIRROR}/platform/system/extras;name=extras;protocol=https;nobranch=1;destsuffix=git/system/extras \
+ git://${ANDROID_MIRROR}/platform/hardware/libhardware;name=libhardware;protocol=https;nobranch=1;destsuffix=git/hardware/libhardware \
+ git://${ANDROID_MIRROR}/platform/external/libselinux;name=libselinux;protocol=https;nobranch=1;destsuffix=git/external/libselinux \
+ git://${ANDROID_MIRROR}/platform/build;name=build;protocol=https;nobranch=1;destsuffix=git/build \
+ file://core/0001-adb-remove-selinux-extensions.patch;patchdir=system/core \
+ file://core/0002-adb-Use-local-sockets-where-appropriate.patch;patchdir=system/core \
+ file://core/0003-adb-define-shell-command.patch;patchdir=system/core \
+ file://core/0004-adb-Fix-build-on-big-endian-systems.patch;patchdir=system/core \
+ file://core/0005-adb-add-base64-implementation.patch;patchdir=system/core \
+ file://core/0006-adb-Musl-fixes.patch;patchdir=system/core \
+ file://core/0007-adb-usb_linux.c-fix-build-with-glibc-2.28.patch;patchdir=system/core \
+ file://core/0008-adb-Allow-adbd-to-be-ran-as-root.patch;patchdir=system/core \
+ file://core/0009-mkbootimg-Add-dt-parameter-to-specify-DT-image.patch;patchdir=system/core \
+ file://core/0010-Use-linux-capability.h-on-linux-systems-too.patch;patchdir=system/core \
+ file://core/0011-Remove-bionic-specific-calls.patch;patchdir=system/core \
+ file://core/0012-Fix-implicit-declaration-of-stlcat-strlcopy-function.patch;patchdir=system/core \
+ file://core/adb_libssl_11.diff;patchdir=system/core \
+ file://core/b64_pton_function_decl.patch;patchdir=system/core \
+ file://core/0013-adb-Support-riscv64.patch;patchdir=system/core \
+ file://core/0014-add-u3-ss-descriptor-support-for-adb.patch;patchdir=system/core \
+ file://core/0015-libsparse-Split-off-most-of-sparse_file_read_normal-.patch;patchdir=system/core \
+ file://core/0016-libsparse-Add-hole-mode-to-sparse_file_read.patch;patchdir=system/core \
+ file://core/0017-img2simg-Add-support-for-converting-holes-to-don-t-c.patch;patchdir=system/core \
+ file://core/0001-memory.h-Always-define-strlcpy-for-glibc-based-syste.patch;patchdir=system/core \
+ file://extras/0001-ext4_utils-remove-selinux-extensions.patch;patchdir=system/extras \
+ file://extras/0002-ext4_utils-add-o-argument-to-preserve-ownership.patch;patchdir=system/extras \
+ file://libselinux/0001-Remove-bionic-specific-calls.patch;patchdir=external/libselinux \
+ file://libselinux/0001-libselinux-Do-not-define-gettid-if-glibc-2.30-is-use.patch;patchdir=external/libselinux \
file://android-tools-adbd.service \
- file://.gitignore;subdir=git \
+ file://build/0001-Riscv-Add-risc-v-Android-config-header.patch;patchdir=build \
+ file://gitignore \
file://adb.mk;subdir=${BPN} \
file://adbd.mk;subdir=${BPN} \
file://ext4_utils.mk;subdir=${BPN} \
@@ -49,31 +60,39 @@ SRC_URI = " \
file://mkbootimg.mk;subdir=${BPN} \
"
+
S = "${WORKDIR}/git"
B = "${WORKDIR}/${BPN}"
# http://errors.yoctoproject.org/Errors/Details/133881/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
+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} = "android-tools-adbd.service"
+SYSTEMD_PACKAGES = "${PN}-adbd"
+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}"
+CC:append:class-native = " -I${STAGING_INCDIR}"
+CC:append:class-nativesdk = " -I${STAGING_INCDIR}"
TOOLS = "adb fastboot ext4_utils mkbootimg adbd"
# Adb needs sys/capability.h, which is not available for native*
-TOOLS_class-native = "fastboot ext4_utils mkbootimg"
-TOOLS_class-nativesdk = "fastboot ext4_utils mkbootimg"
+TOOLS:class-native = "fastboot ext4_utils mkbootimg"
+TOOLS:class-nativesdk = "fastboot ext4_utils mkbootimg"
do_compile() {
+ cp ${WORKDIR}/gitignore ${S}/.gitignore
+
# Setting both variables below causing our makefiles to not work with
# implicit make rules
- unset CFLAGS
+ CFLAGS="-ffile-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}"
unset CPPFLAGS
export SRCDIR=${S}
@@ -85,13 +104,19 @@ do_compile() {
aarch64)
export android_arch=linux-arm64
;;
+ riscv64)
+ export android_arch=linux-riscv64
+ ;;
mips|mipsel)
export android_arch=linux-mips
;;
+ mips64|mips64el)
+ export android_arch=linux-mips64
+ ;;
powerpc|powerpc64)
export android_arch=linux-ppc
;;
- i586|x86_64)
+ i586|i686|x86_64)
export android_arch=linux-x86
;;
esac
@@ -115,7 +140,7 @@ do_install() {
install -m0755 ${B}/ext4_utils/simg2simg ${D}${bindir}
fi
- if echo ${TOOLS} | grep -q "adb " ; then
+ if echo ${TOOLS} | grep -q "adb\>" ; then
install -d ${D}${bindir}
install -m0755 ${B}/adb/adb ${D}${bindir}
fi
@@ -140,11 +165,17 @@ do_install() {
fi
}
-PACKAGES += "${PN}-fstools"
+PACKAGES =+ "${PN}-fstools ${PN}-adbd"
-RDEPENDS_${BPN} = "${BPN}-conf bash"
+RDEPENDS:${PN}-adbd = "${PN}-conf"
+RDEPENDS:${PN}-fstools = "bash"
-FILES_${PN}-fstools = "\
+FILES:${PN}-adbd = "\
+ ${bindir}/adbd \
+ ${systemd_unitdir}/system/android-tools-adbd.service \
+"
+
+FILES:${PN}-fstools = "\
${bindir}/ext2simg \
${bindir}/ext4fixup \
${bindir}/img2simg \
@@ -156,3 +187,9 @@ FILES_${PN}-fstools = "\
"
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/recipes-devtools/apitrace/apitrace_11.1.bb b/meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb
new file mode 100644
index 0000000000..aed7977595
--- /dev/null
+++ b/meta-oe/recipes-devtools/apitrace/apitrace_11.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Tools for tracing OpenGL, Direct3D, and other graphics APIs"
+HOMEPAGE = "http://apitrace.github.io/"
+SECTION = "console/tools"
+LICENSE = "MIT & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50 \
+ file://thirdparty/snappy/COPYING;md5=f62f3080324a97b3159a7a7e61812d0c"
+
+SRCREV = "9352fc02bba106fbbeef9e8452ef34643c0d0764"
+PV .= "+11.1+git${SRCPV}"
+SRC_URI = "gitsm://github.com/${BPN}/${BPN}.git;branch=master;protocol=https \
+ "
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "zlib libpng python3-native"
+
+inherit cmake
+
+PACKAGECONFIG ??= " ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11', '', d)} "
+PACKAGECONFIG[x11] = "-DENABLE_X11=ON,-DENABLE_X11=OFF,libx11"
+
+EXTRA_OECMAKE += "\
+ -DENABLE_GUI=OFF \
+ -DENABLE_STATIC_LIBGCC=OFF \
+ -DENABLE_STATIC_LIBSTDCXX=OFF \
+ -DPython3_ROOT_DIR=/usr/bin/python3-native \
+"
+
+# Use the bundled snappy library
+EXTRA_OECMAKE += "\
+ -DENABLE_STATIC_SNAPPY=ON \
+"
+
+SECURITY_CFLAGS:toolchain-clang = ""
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
new file mode 100644
index 0000000000..21d1356f7b
--- /dev/null
+++ b/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13-native_2.13.bb
@@ -0,0 +1,67 @@
+SUMMARY = "A GNU tool that produce shell scripts to automatically configure software"
+DESCRIPTION = "Autoconf is an extensible package of M4 macros that produce shell scripts to automatically \
+configure software source code packages. Autoconf creates a configuration script for a package from a template \
+file that lists the operating system features that the package can use, in the form of M4 macro calls."
+SECTION = "devel"
+
+HOMEPAGE = "http://www.gnu.org/software/autoconf/"
+
+LICENSE = "GPL-3.0-only"
+LICENSE = "GPL-2.0-only & GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
+
+SRC_URI = " \
+ ${GNU_MIRROR}/autoconf/autoconf-${PV}.tar.gz \
+ file://0001-Add-config.guess-config.sub-install-to-destdir.patch \
+"
+
+S = "${WORKDIR}/${BPN}"
+SRC_URI[md5sum] = "9de56d4a161a723228220b0f425dc711"
+SRC_URI[sha256sum] = "f0611136bee505811e9ca11ca7ac188ef5323a8e2ef19cffd3edb3cf08fd791e"
+
+inherit texinfo native
+
+DEPENDS += "m4-native gnu-config-native"
+RDEPENDS:${PN} = "m4-native gnu-config-native"
+
+PERL = "${USRBINPATH}/perl"
+
+CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
+
+CONFIGUREOPTS = " \
+ --build=${BUILD_SYS} \
+ --host=${HOST_SYS} \
+ --target=${TARGET_SYS} \
+ --prefix=${prefix} \
+ --exec_prefix=${exec_prefix} \
+ --bindir=${bindir} \
+ --sbindir=${sbindir} \
+ --libexecdir=${libexecdir} \
+ --datadir=${datadir} \
+ --sysconfdir=${sysconfdir} \
+ --sharedstatedir=${sharedstatedir} \
+ --localstatedir=${localstatedir} \
+ --libdir=${libdir} \
+ --includedir=${includedir} \
+ --oldincludedir=${oldincludedir} \
+ --infodir=${infodir} \
+ --mandir=${mandir} \
+ --disable-silent-rules \
+"
+
+EXTRA_OECONF += "ac_cv_path_M4=m4 ac_cv_prog_TEST_EMACS=no"
+
+do_configure() {
+ ./configure ${CONFIGUREOPTS}
+}
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+
+ # avoid conflicts with standard autotools
+ ver="213"
+ for file in `find ${D}${bindir} -type f`; do
+ mv $file $file$ver
+ done
+ mv ${D}${datadir}/autoconf ${D}${datadir}/autoconf213
+}
diff --git a/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch b/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch
new file mode 100644
index 0000000000..f6e9ecb9a0
--- /dev/null
+++ b/meta-oe/recipes-devtools/autoconf-2.13/autoconf-2.13/0001-Add-config.guess-config.sub-install-to-destdir.patch
@@ -0,0 +1,67 @@
+From 3d3e23f7b14e87849405a4e109a69b76696615fc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Wed, 11 Dec 2019 23:18:19 +0100
+Subject: [PATCH] Add config.guess config.sub / install to destdir
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ Makefile.in | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index a6c94d4..4b1b708 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -137,23 +137,23 @@ installcheck: all install
+ cd testsuite && ${MAKE} AUTOCONF=${bindir}/autoconf $@
+
+ installdirs:
+- $(SHELL) ${srcdir}/mkinstalldirs $(bindir) $(infodir) $(acdatadir)
++ $(SHELL) ${srcdir}/mkinstalldirs ${DESTDIR}$(bindir) ${DESTDIR}$(infodir) ${DESTDIR}$(acdatadir)
+
+ install: all $(M4FILES) acconfig.h installdirs install-info
+ for p in $(ASCRIPTS); do \
+- $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) $$p ${DESTDIR}$(bindir)/`echo $$p|sed '$(transform)'`; \
+ done
+ for i in $(M4FROZEN); do \
+- $(INSTALL_DATA) $$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $$i ${DESTDIR}$(acdatadir)/$$i; \
+ done
+ for i in $(M4FILES) acconfig.h; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ $(INSTALL_DATA) $(srcdir)/$$i ${DESTDIR}$(acdatadir)/$$i; \
+ done
+ -if test -f autoscan; then \
+- $(INSTALL_PROGRAM) autoscan $(bindir)/`echo autoscan|sed '$(transform)'`; \
++ $(INSTALL_PROGRAM) autoscan ${DESTDIR}$(bindir)/`echo autoscan|sed '$(transform)'`; \
+ for i in acfunctions acheaders acidentifiers acprograms \
+- acmakevars; do \
+- $(INSTALL_DATA) $(srcdir)/$$i $(acdatadir)/$$i; \
++ acmakevars config.guess config.sub; do \
++ $(INSTALL_DATA) $(srcdir)/$$i ${DESTDIR}$(acdatadir)/$$i; \
+ done; \
+ else :; fi
+
+@@ -161,11 +161,11 @@ install: all $(M4FILES) acconfig.h installdirs install-info
+ install-info: info installdirs
+ if test -f autoconf.info; then \
+ for i in *.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/$$i; \
++ $(INSTALL_DATA) $$i ${DESTDIR}$(infodir)/$$i; \
+ done; \
+ else \
+ for i in $(srcdir)/*.info*; do \
+- $(INSTALL_DATA) $$i $(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
++ $(INSTALL_DATA) $$i ${DESTDIR}$(infodir)/`echo $$i | sed 's|^$(srcdir)/||'`; \
+ done; \
+ fi
+
+--
+2.21.0
+
diff --git a/meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch b/meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch
deleted file mode 100644
index 4581ef25fc..0000000000
--- a/meta-oe/recipes-devtools/bootchart/bootchart/0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 8d40b4c286e005e82fa50b66fbbbde22b7e65e15 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sun, 20 May 2012 21:35:34 +0200
-Subject: [PATCH 1/2] svg: add rudimentary support for ARM cpuinfo
-
-On ARM /proc/cpuinfo looks like this:
-
-root@beagleboneA3-0428:~# cat /proc/cpuinfo
-Processor : ARMv7 Processor rev 2 (v7l)
-BogoMIPS : 498.89
-Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3 tls
-CPU implementer : 0x41
-CPU architecture: 7
-CPU variant : 0x3
-CPU part : 0xc08
-CPU revision : 2
-
-Hardware : am335xevm
-Revision : 0000
-Serial : 0000000000000000
-
-So no real way to get the actual SoC name, TI AM3359, but a lot better than 'Unknown'
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
----
-
-Upstream-Status: submitted
-
- svg.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/svg.c b/svg.c
-index 80e0292..53724b2 100644
---- a/svg.c
-+++ b/svg.c
-@@ -178,6 +178,10 @@ void svg_title(void)
- strncpy(cpu, &buf[13], 255);
- break;
- }
-+ if (strstr(buf, "Processor")) {
-+ strncpy(cpu, &buf[12], 255);
-+ break;
-+ }
- }
- fclose(f);
- }
---
-1.7.10
-
diff --git a/meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch b/meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch
deleted file mode 100644
index f63d98aee5..0000000000
--- a/meta-oe/recipes-devtools/bootchart/bootchart/0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e3adb4c312c6ba3491b7c173559efac7a53e5abc Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sun, 20 May 2012 22:12:29 +0200
-Subject: [PATCH 2/2] svg: open /etc/os-release and use PRETTY_NAME for the
- 'Build' name
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
----
-
-Upstream-Status: Submitted
-
- svg.c | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/svg.c b/svg.c
-index 53724b2..c675d84 100644
---- a/svg.c
-+++ b/svg.c
-@@ -194,6 +194,17 @@ void svg_title(void)
- fclose(f);
- }
-
-+ f = fopen("/etc/os-release", "r");
-+ if(f) {
-+ while (fgets(buf, 255, f)) {
-+ if (strstr(buf, "PRETTY_NAME=")) {
-+ strncpy(build, &buf[12], 255);
-+ break;
-+ }
-+ }
-+ fclose(f);
-+ }
-+
- svg("<text class=\"t1\" x=\"0\" y=\"30\">Bootchart for %s - %s</text>\n",
- uts.nodename, date);
- svg("<text class=\"t2\" x=\"20\" y=\"50\">System: %s %s %s %s</text>\n",
---
-1.7.10
-
diff --git a/meta-oe/recipes-devtools/bootchart/bootchart_git.bb b/meta-oe/recipes-devtools/bootchart/bootchart_git.bb
deleted file mode 100644
index 2b75eaac9d..0000000000
--- a/meta-oe/recipes-devtools/bootchart/bootchart_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Monitors where the system spends its time at start, creating a graph of all processes, disk utilization, and wait time."
-HOMEPAGE = "http://meego.gitorious.org/meego-developer-tools/bootchart"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fcb02dc552a041dee27e4b85c7396067"
-
-PV = "1.17"
-PR = "r1"
-PE = "1"
-
-SRC_URI = "git://gitorious.org/meego-developer-tools/bootchart.git;protocol=https \
- file://0001-svg-add-rudimentary-support-for-ARM-cpuinfo.patch \
- file://0002-svg-open-etc-os-release-and-use-PRETTY_NAME-for-the-.patch \
-"
-
-SRCREV = "a2c7561d4060a9f075339bda89e793c76f2ff6dd"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
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
new file mode 100644
index 0000000000..df41b4d6c0
--- /dev/null
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.patch
@@ -0,0 +1,49 @@
+From 70441611d4e8200d9d16dfed493873b8c1bb57c5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 15 Mar 2021 11:33:38 -0700
+Subject: [PATCH] Remove HAVE_GETCONTEXT check to add local implementation
+
+On musl getcontext/setcontext APIs are implemented in libucontext which
+can be used
+
+Upstream-Status: Inappropriate [Musl Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.am | 12 ------------
+ 1 file changed, 12 deletions(-)
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -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
+-if !HAVE_GETCONTEXT
+-src_client_linux_libbreakpad_client_a_SOURCES += \
+- src/common/linux/breakpad_getcontext.S
+-endif
+
+ # 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
+-if !HAVE_GETCONTEXT
+-src_client_linux_linux_client_unittest_shlib_SOURCES += \
+- src/common/linux/breakpad_getcontext.S
+-endif
+
+ src_client_linux_linux_client_unittest_shlib_CPPFLAGS = \
+ $(AM_CPPFLAGS) $(TEST_CFLAGS)
+@@ -613,10 +605,6 @@ src_client_linux_linux_client_unittest_s
+ src/common/string_conversion.o \
+ $(TEST_LIBS) \
+ $(PTHREAD_CFLAGS) $(PTHREAD_LIBS)
+-if !HAVE_GETCONTEXT
+-src_client_linux_linux_client_unittest_shlib_SOURCES += \
+- src/common/linux/breakpad_getcontext_unittest.cc
+-endif
+ if ANDROID_HOST
+ src_client_linux_linux_client_unittest_shlib_LDFLAGS += \
+ -llog -lm
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch
deleted file mode 100644
index 07cb8a366e..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-From b90c8f3b60bfe5dbed2823620242e9d30b9eb28f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 28 Jun 2017 19:01:18 -0700
-Subject: [PATCH] Replace use of struct ucontext with ucontext_t
-
-glibc 2.26 would not expose struct ucontext anymore
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- .../linux/dump_writer_common/ucontext_reader.cc | 32 +++++++++++-----------
- .../linux/dump_writer_common/ucontext_reader.h | 14 +++++-----
- src/client/linux/handler/exception_handler.cc | 10 +++----
- src/client/linux/handler/exception_handler.h | 4 +--
- .../linux/microdump_writer/microdump_writer.cc | 2 +-
- .../linux/minidump_writer/minidump_writer.cc | 2 +-
- 6 files changed, 32 insertions(+), 32 deletions(-)
-
-diff --git a/src/client/linux/dump_writer_common/ucontext_reader.cc b/src/client/linux/dump_writer_common/ucontext_reader.cc
-index c80724dd..052ce37c 100644
---- a/src/client/linux/dump_writer_common/ucontext_reader.cc
-+++ b/src/client/linux/dump_writer_common/ucontext_reader.cc
-@@ -36,19 +36,19 @@ namespace google_breakpad {
-
- // Minidump defines register structures which are different from the raw
- // structures which we get from the kernel. These are platform specific
--// functions to juggle the ucontext and user structures into minidump format.
-+// functions to juggle the ucontext_t and user structures into minidump format.
-
- #if defined(__i386__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_ESP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_EIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -88,15 +88,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-
- #elif defined(__x86_64)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RSP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[REG_RIP];
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fpregs) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
-@@ -145,15 +145,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-
- #elif defined(__ARM_EABI__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.arm_pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- out->context_flags = MD_CONTEXT_ARM_FULL;
-
- out->iregs[0] = uc->uc_mcontext.arm_r0;
-@@ -184,15 +184,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-
- #elif defined(__aarch64__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.sp;
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs) {
- out->context_flags = MD_CONTEXT_ARM64_FULL;
-
-@@ -210,15 +210,15 @@ void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc,
-
- #elif defined(__mips__)
-
--uintptr_t UContextReader::GetStackPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetStackPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.gregs[MD_CONTEXT_MIPS_REG_SP];
- }
-
--uintptr_t UContextReader::GetInstructionPointer(const struct ucontext* uc) {
-+uintptr_t UContextReader::GetInstructionPointer(const ucontext_t* uc) {
- return uc->uc_mcontext.pc;
- }
-
--void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext *uc) {
-+void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc) {
- #if _MIPS_SIM == _ABI64
- out->context_flags = MD_CONTEXT_MIPS64_FULL;
- #elif _MIPS_SIM == _ABIO32
-diff --git a/src/client/linux/dump_writer_common/ucontext_reader.h b/src/client/linux/dump_writer_common/ucontext_reader.h
-index b6e77b4b..2de80b70 100644
---- a/src/client/linux/dump_writer_common/ucontext_reader.h
-+++ b/src/client/linux/dump_writer_common/ucontext_reader.h
-@@ -39,23 +39,23 @@
-
- namespace google_breakpad {
-
--// Wraps platform-dependent implementations of accessors to ucontext structs.
-+// Wraps platform-dependent implementations of accessors to ucontext_t structs.
- struct UContextReader {
-- static uintptr_t GetStackPointer(const struct ucontext* uc);
-+ static uintptr_t GetStackPointer(const ucontext_t* uc);
-
-- static uintptr_t GetInstructionPointer(const struct ucontext* uc);
-+ static uintptr_t GetInstructionPointer(const ucontext_t* uc);
-
-- // Juggle a arch-specific ucontext into a minidump format
-+ // Juggle a arch-specific ucontext_t into a minidump format
- // out: the minidump structure
- // info: the collection of register structures.
- #if defined(__i386__) || defined(__x86_64)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct _libc_fpstate* fp);
- #elif defined(__aarch64__)
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc,
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs);
- #else
-- static void FillCPUContext(RawContextCPU *out, const ucontext *uc);
-+ static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc);
- #endif
- };
-
-diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
-index 586d84e9..05936d28 100644
---- a/src/client/linux/handler/exception_handler.cc
-+++ b/src/client/linux/handler/exception_handler.cc
-@@ -457,9 +457,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
- // Fill in all the holes in the struct to make Valgrind happy.
- memset(&g_crash_context_, 0, sizeof(g_crash_context_));
- memcpy(&g_crash_context_.siginfo, info, sizeof(siginfo_t));
-- memcpy(&g_crash_context_.context, uc, sizeof(struct ucontext));
-+ memcpy(&g_crash_context_.context, uc, sizeof(ucontext_t));
- #if defined(__aarch64__)
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- struct fpsimd_context* fp_ptr =
- (struct fpsimd_context*)&uc_ptr->uc_mcontext.__reserved;
- if (fp_ptr->head.magic == FPSIMD_MAGIC) {
-@@ -468,9 +468,9 @@ bool ExceptionHandler::HandleSignal(int /*sig*/, siginfo_t* info, void* uc) {
- }
- #elif !defined(__ARM_EABI__) && !defined(__mips__)
- // FP state is not part of user ABI on ARM Linux.
-- // In case of MIPS Linux FP state is already part of struct ucontext
-+ // In case of MIPS Linux FP state is already part of ucontext_t
- // and 'float_state' is not a member of CrashContext.
-- struct ucontext* uc_ptr = (struct ucontext*)uc;
-+ ucontext_t* uc_ptr = (ucontext_t*)uc;
- if (uc_ptr->uc_mcontext.fpregs) {
- memcpy(&g_crash_context_.float_state, uc_ptr->uc_mcontext.fpregs,
- sizeof(g_crash_context_.float_state));
-@@ -494,7 +494,7 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
- // ExceptionHandler::HandleSignal().
- siginfo.si_code = SI_USER;
- siginfo.si_pid = getpid();
-- struct ucontext context;
-+ ucontext_t context;
- getcontext(&context);
- return HandleSignal(sig, &siginfo, &context);
- }
-diff --git a/src/client/linux/handler/exception_handler.h b/src/client/linux/handler/exception_handler.h
-index daba57e0..25598a29 100644
---- a/src/client/linux/handler/exception_handler.h
-+++ b/src/client/linux/handler/exception_handler.h
-@@ -191,11 +191,11 @@ class ExceptionHandler {
- struct CrashContext {
- siginfo_t siginfo;
- pid_t tid; // the crashing thread.
-- struct ucontext context;
-+ ucontext_t context;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- // #ifdef this out because FP state is not part of user ABI for Linux ARM.
- // In case of MIPS Linux FP state is already part of struct
-- // ucontext so 'float_state' is not required.
-+ // ucontext_t so 'float_state' is not required.
- fpstate_t float_state;
- #endif
- };
-diff --git a/src/client/linux/microdump_writer/microdump_writer.cc b/src/client/linux/microdump_writer/microdump_writer.cc
-index 3764eec2..80ad5c46 100644
---- a/src/client/linux/microdump_writer/microdump_writer.cc
-+++ b/src/client/linux/microdump_writer/microdump_writer.cc
-@@ -593,7 +593,7 @@ class MicrodumpWriter {
-
- void* Alloc(unsigned bytes) { return dumper_->allocator()->Alloc(bytes); }
-
-- const struct ucontext* const ucontext_;
-+ const ucontext_t* const ucontext_;
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_;
- #endif
-diff --git a/src/client/linux/minidump_writer/minidump_writer.cc b/src/client/linux/minidump_writer/minidump_writer.cc
-index d11ba6e5..c7161434 100644
---- a/src/client/linux/minidump_writer/minidump_writer.cc
-+++ b/src/client/linux/minidump_writer/minidump_writer.cc
-@@ -1323,7 +1323,7 @@ class MinidumpWriter {
- const int fd_; // File descriptor where the minidum should be written.
- const char* path_; // Path to the file where the minidum should be written.
-
-- const struct ucontext* const ucontext_; // also from the signal handler
-+ const ucontext_t* const ucontext_; // also from the signal handler
- #if !defined(__ARM_EABI__) && !defined(__mips__)
- const google_breakpad::fpstate_t* const float_state_; // ditto
- #endif
---
-2.13.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 33bae1a373..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,14 +10,14 @@ 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/src/client/linux/crash_generation/crash_generation_server.cc b/src/client/linux/crash_generation/crash_generation_server.cc
-index 2596afde..2faeb9e5 100644
--- a/src/client/linux/crash_generation/crash_generation_server.cc
+++ b/src/client/linux/crash_generation/crash_generation_server.cc
-@@ -230,8 +230,18 @@ CrashGenerationServer::ClientEvent(short revents)
+@@ -230,8 +230,18 @@ CrashGenerationServer::ClientEvent(short
// Walk the control payload and extract the file descriptor and validated pid.
pid_t crashing_pid = -1;
int signal_fd = -1;
@@ -28,7 +28,7 @@ index 2596afde..2faeb9e5 100644
+ #pragma clang diagnostic push
+ #pragma clang diagnostic ignored "-Wsign-compare"
+#endif
- for (struct cmsghdr *hdr = CMSG_FIRSTHDR(&msg); hdr;
+ for (struct cmsghdr* hdr = CMSG_FIRSTHDR(&msg); hdr;
hdr = CMSG_NXTHDR(&msg, hdr)) {
+#ifndef __GLIBC__
+ #pragma clang diagnostic pop
@@ -36,6 +36,3 @@ index 2596afde..2faeb9e5 100644
if (hdr->cmsg_level != SOL_SOCKET)
continue;
if (hdr->cmsg_type == SCM_RIGHTS) {
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
deleted file mode 100644
index c762754ad1..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0001-disable-calls-to-getcontext-with-musl.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 57ecf7205feedd23f901e1bb9d193787e559e433 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Tue, 23 Jan 2018 15:13:26 -0800
-Subject: [PATCH] disable calls to getcontext() with musl
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- src/client/linux/handler/exception_handler.cc | 17 +++++++++++++++++
- 1 file changed, 17 insertions(+)
-
-diff --git a/src/client/linux/handler/exception_handler.cc b/src/client/linux/handler/exception_handler.cc
-index cca023f..f3e460c 100644
---- a/src/client/linux/handler/exception_handler.cc
-+++ b/src/client/linux/handler/exception_handler.cc
-@@ -495,7 +495,19 @@ bool ExceptionHandler::SimulateSignalDelivery(int sig) {
- siginfo.si_code = SI_USER;
- siginfo.si_pid = getpid();
- ucontext_t context;
-+#if defined(__GLIBC__)
- getcontext(&context);
-+#else
-+ // Extreme hack: Allow musl builds to compile - but don't expect them to work.
-+ // Although musl provides a definition for getcontext() in ucontext.h (which
-+ // enough to build libbreakpad_client) musl does not provide a corresponding
-+ // getcontext() function, so builds will fail when attempting to link anything
-+ // with libbreakpad_client. Disabling calls to getcontext() is a temporary
-+ // hack. The real fix is probably to enable Breakpad's own implementation of
-+ // getcontext() when building for musl (it's currently only enabled when
-+ // building for Android).
-+ memset (&context, 0, sizeof(context));
-+#endif
- return HandleSignal(sig, &siginfo, &context);
- }
-
-@@ -680,9 +692,14 @@ bool ExceptionHandler::WriteMinidump() {
- sys_prctl(PR_SET_DUMPABLE, 1, 0, 0, 0);
-
- CrashContext context;
-+#if defined(__GLIBC__)
- int getcontext_result = getcontext(&context.context);
- if (getcontext_result)
- return false;
-+#else
-+ // Extreme hack - see comments above.
-+ memset (&context.context, 0, sizeof(&context.context));
-+#endif
-
- #if defined(__i386__)
- // In CPUFillFromUContext in minidumpwriter.cc the stack pointer is retrieved
---
-1.9.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 4583d601a8..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,25 +4,25 @@ 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(+)
-Index: git/src/common/linux/elf_core_dump.h
-===================================================================
---- git.orig/src/common/linux/elf_core_dump.h
-+++ git/src/common/linux/elf_core_dump.h
-@@ -33,10 +33,13 @@
+--- a/src/common/linux/elf_core_dump.h
++++ b/src/common/linux/elf_core_dump.h
+@@ -33,10 +33,14 @@
#ifndef COMMON_LINUX_ELF_CORE_DUMP_H_
#define COMMON_LINUX_ELF_CORE_DUMP_H_
+#include <config.h>
#include <elf.h>
+ #include <limits.h>
#include <link.h>
#include <stddef.h>
--
+#ifdef HAVE_SYS_REG_H
+#include <sys/reg.h>
+#endif
+
#include "common/memory_range.h"
- namespace google_breakpad {
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 2b892ad64f..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,14 +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(+)
-Index: lss/linux_syscall_support.h
-===================================================================
---- lss.orig/linux_syscall_support.h
-+++ lss/linux_syscall_support.h
-@@ -793,6 +793,9 @@ struct kernel_statfs {
+--- a/linux_syscall_support.h
++++ b/linux_syscall_support.h
+@@ -1006,6 +1006,9 @@ struct kernel_statx {
#define FUTEX_TRYLOCK_PI_PRIVATE (FUTEX_TRYLOCK_PI | FUTEX_PRIVATE_FLAG)
#endif
@@ -22,17 +22,17 @@ Index: lss/linux_syscall_support.h
#if defined(__x86_64__)
#ifndef ARCH_SET_GS
-@@ -924,6 +927,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
-@@ -1211,6 +1215,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
@@ -43,3 +43,16 @@ Index: lss/linux_syscall_support.h
/* End of x86-64 definitions */
#elif defined(__mips__)
#if _MIPS_SIM == _MIPS_SIM_ABI32
+@@ -1633,6 +1643,12 @@ struct kernel_statx {
+ #ifndef __NR_getrandom
+ #define __NR_getrandom (__NR_Linux + 313)
+ #endif
++
++#undef __NR_pread
++#define __NR_pread __NR_pread64
++#undef __NR_pwrite
++#define __NR_pwrite __NR_pwrite64
++
+ /* End of MIPS (64bit API) definitions */
+ #else
+ #ifndef __NR_setresuid
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch
deleted file mode 100644
index bc62829811..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0002-Avoid-using-basename.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 806964f852773e427fea82a7716d44ce3be4498c Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sun, 1 Feb 2015 14:27:32 +0100
-Subject: [PATCH 2/3] Avoid using basename
-
----
- src/common/linux/dump_symbols.cc | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/common/linux/dump_symbols.cc b/src/common/linux/dump_symbols.cc
-index d029ca14..6ac4a17b 100644
---- a/src/common/linux/dump_symbols.cc
-+++ b/src/common/linux/dump_symbols.cc
-@@ -881,9 +881,9 @@ const char* ElfArchitecture(const typename ElfClass::Ehdr* elf_header) {
- // last slash, or the whole filename if there are no slashes.
- string BaseFileName(const string &filename) {
- // Lots of copies! basename's behavior is less than ideal.
-- char* c_filename = strdup(filename.c_str());
-- string base = basename(c_filename);
-- free(c_filename);
-+ const char *c_filename = filename.c_str();
-+ const char *p = strrchr(c_filename, '/');
-+ string base = p ? p+1 : c_filename;
- return base;
- }
-
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch
deleted file mode 100644
index 6c097cd22e..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 0ba1b3e35e7c743b670bedc3e90001dfb868df10 Mon Sep 17 00:00:00 2001
-From: Felix Janda <felix.janda@posteo.de>
-Date: Sun, 1 Feb 2015 13:45:51 +0100
-Subject: [PATCH 2/6] Use _fpstate instead of _libc_fpstate on linux
-
-glibc defines both. musl libc only the former.
----
- src/client/linux/dump_writer_common/ucontext_reader.cc | 4 ++--
- src/client/linux/dump_writer_common/ucontext_reader.h | 2 +-
- src/client/linux/minidump_writer/minidump_writer.h | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-Index: git/src/client/linux/dump_writer_common/ucontext_reader.cc
-===================================================================
---- git.orig/src/client/linux/dump_writer_common/ucontext_reader.cc
-+++ git/src/client/linux/dump_writer_common/ucontext_reader.cc
-@@ -49,7 +49,7 @@ uintptr_t UContextReader::GetInstruction
- }
-
- void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-- const struct _libc_fpstate* fp) {
-+ const struct _fpstate* fp) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
- out->context_flags = MD_CONTEXT_X86_FULL |
-@@ -97,7 +97,7 @@ uintptr_t UContextReader::GetInstruction
- }
-
- void UContextReader::FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-- const struct _libc_fpstate* fpregs) {
-+ const struct _fpstate* fpregs) {
- const greg_t* regs = uc->uc_mcontext.gregs;
-
- out->context_flags = MD_CONTEXT_AMD64_FULL;
-Index: git/src/client/linux/dump_writer_common/ucontext_reader.h
-===================================================================
---- git.orig/src/client/linux/dump_writer_common/ucontext_reader.h
-+++ git/src/client/linux/dump_writer_common/ucontext_reader.h
-@@ -50,7 +50,7 @@ struct UContextReader {
- // info: the collection of register structures.
- #if defined(__i386__) || defined(__x86_64)
- static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
-- const struct _libc_fpstate* fp);
-+ const struct _fpstate* fp);
- #elif defined(__aarch64__)
- static void FillCPUContext(RawContextCPU *out, const ucontext_t *uc,
- const struct fpsimd_context* fpregs);
-Index: git/src/client/linux/minidump_writer/minidump_writer.h
-===================================================================
---- git.orig/src/client/linux/minidump_writer/minidump_writer.h
-+++ git/src/client/linux/minidump_writer/minidump_writer.h
-@@ -48,7 +48,7 @@ class ExceptionHandler;
- #if defined(__aarch64__)
- typedef struct fpsimd_context fpstate_t;
- #elif !defined(__ARM_EABI__) && !defined(__mips__)
--typedef struct _libc_fpstate fpstate_t;
-+typedef struct _fpstate fpstate_t;
- #endif
-
- // These entries store a list of memory regions that the client wants included
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch
deleted file mode 100644
index cfd9a9b34e..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 15582e19c2545d5ffe8ff07f957d0ed602aeca74 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 14 Sep 2017 23:15:09 -0700
-Subject: [PATCH 2/5] <sys/signal.h> is a nonportable alias for <signal.h>
-
-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 05936d28..cca023fd 100644
---- a/src/client/linux/handler/exception_handler.cc
-+++ b/src/client/linux/handler/exception_handler.cc
-@@ -78,7 +78,7 @@
- #include <sys/wait.h>
- #include <unistd.h>
-
--#include <sys/signal.h>
-+#include <signal.h>
- #include <sys/ucontext.h>
- #include <sys/user.h>
- #include <ucontext.h>
---
-2.14.1
-
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 2593ea93ea..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,16 +5,16 @@ 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 -
3 files changed, 11 insertions(+), 3 deletions(-)
-Index: git/src/common/stabs_reader.cc
-===================================================================
---- git.orig/src/common/stabs_reader.cc
-+++ git/src/common/stabs_reader.cc
-@@ -34,7 +34,9 @@
+--- a/src/common/stabs_reader.cc
++++ b/src/common/stabs_reader.cc
+@@ -38,7 +38,9 @@
#include "common/stabs_reader.h"
#include <assert.h>
@@ -24,11 +24,9 @@ Index: git/src/common/stabs_reader.cc
#include <string.h>
#include <string>
-Index: git/src/common/stabs_reader.h
-===================================================================
---- git.orig/src/common/stabs_reader.h
-+++ git/src/common/stabs_reader.h
-@@ -58,6 +58,30 @@
+--- a/src/common/stabs_reader.h
++++ b/src/common/stabs_reader.h
+@@ -54,6 +54,30 @@
#elif defined(HAVE_A_OUT_H)
#include <a.out.h>
#endif
@@ -59,11 +57,9 @@ Index: git/src/common/stabs_reader.h
#include <string>
#include <vector>
-Index: git/src/common/stabs_reader_unittest.cc
-===================================================================
---- git.orig/src/common/stabs_reader_unittest.cc
-+++ git/src/common/stabs_reader_unittest.cc
-@@ -33,7 +33,9 @@
+--- a/src/common/stabs_reader_unittest.cc
++++ b/src/common/stabs_reader_unittest.cc
+@@ -36,7 +36,9 @@
#include <assert.h>
#include <errno.h>
@@ -73,16 +69,14 @@ Index: git/src/common/stabs_reader_unittest.cc
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
- AC_HEADER_STDC
+--- a/configure.ac
++++ b/configure.ac
+@@ -61,7 +61,7 @@ fi
+
AC_SYS_LARGEFILE
AX_PTHREAD
--AC_CHECK_HEADERS([a.out.h sys/random.h])
-+AC_CHECK_HEADERS([a.out.h stab.h sys/random.h])
- AC_CHECK_FUNCS([arc4random getrandom])
-
- AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
+-AC_CHECK_HEADERS([a.out.h sys/mman.h sys/random.h])
++AC_CHECK_HEADERS([a.out.h stab.h sys/mman.h sys/random.h])
+ AC_CHECK_FUNCS([arc4random getcontext getrandom memfd_create])
+ AM_CONDITIONAL([HAVE_GETCONTEXT], [test "x$ac_cv_func_getcontext" = xyes])
+ AM_CONDITIONAL([HAVE_MEMFD_CREATE], [test "x$ac_cv_func_memfd_create" = xyes])
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 525a1555bd..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,38 +6,38 @@ 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(+)
-Index: git/src/common/dwarf/elf_reader.cc
-===================================================================
---- git.orig/src/common/dwarf/elf_reader.cc
-+++ git/src/common/dwarf/elf_reader.cc
-@@ -29,10 +29,13 @@
- #ifndef _GNU_SOURCE
- #define _GNU_SOURCE // needed for pread()
+--- a/src/common/dwarf/elf_reader.cc
++++ b/src/common/dwarf/elf_reader.cc
+@@ -34,12 +34,16 @@
+ #include <config.h> // Must come first
#endif
--
+
+#include <config.h>
- #include <sys/types.h>
- #include <sys/stat.h>
+ #include <fcntl.h>
+ #include <limits.h>
+ #include <string.h>
#include <sys/mman.h>
+ #include <sys/stat.h>
+ #include <sys/types.h>
+#ifdef HAVE_SYS_REG_H
+#include <sys/reg.h>
+#endif
#include <unistd.h>
- #include <fcntl.h>
- #include <string.h>
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -72,7 +72,7 @@ AC_ARG_ENABLE(m32,
- AC_HEADER_STDC
+
+ #include <algorithm>
+--- a/configure.ac
++++ b/configure.ac
+@@ -61,7 +61,7 @@ fi
+
AC_SYS_LARGEFILE
AX_PTHREAD
--AC_CHECK_HEADERS([a.out.h stab.h sys/random.h])
-+AC_CHECK_HEADERS([a.out.h stab.h sys/random.h sys/reg.h])
- AC_CHECK_FUNCS([arc4random getrandom])
-
- AX_CXX_COMPILE_STDCXX(11, noext, mandatory)
+-AC_CHECK_HEADERS([a.out.h stab.h sys/mman.h sys/random.h])
++AC_CHECK_HEADERS([a.out.h stab.h sys/mman.h sys/random.h sys/reg.h])
+ AC_CHECK_FUNCS([arc4random getcontext getrandom memfd_create])
+ AM_CONDITIONAL([HAVE_GETCONTEXT], [test "x$ac_cv_func_getcontext" = xyes])
+ AM_CONDITIONAL([HAVE_MEMFD_CREATE], [test "x$ac_cv_func_memfd_create" = xyes])
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch b/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch
deleted file mode 100644
index 852c1ed2ca..0000000000
--- a/meta-oe/recipes-devtools/breakpad/breakpad/0005-md2core-Replace-basename.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From bbf2b5ed5d93b227df8aea5726727b48e29f6790 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 14 Sep 2017 23:35:40 -0700
-Subject: [PATCH 5/5] md2core: Replace basename()
-
-musl does not provide it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/tools/linux/md2core/minidump-2-core.cc | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/src/tools/linux/md2core/minidump-2-core.cc b/src/tools/linux/md2core/minidump-2-core.cc
-index 6a9e28eb..52b81c22 100644
---- a/src/tools/linux/md2core/minidump-2-core.cc
-+++ b/src/tools/linux/md2core/minidump-2-core.cc
-@@ -107,6 +107,9 @@ struct Options {
-
- static void
- Usage(int argc, const char* argv[]) {
-+ const char *c_filename = argv[0];;
-+ const char *p = strrchr(c_filename, '/');
-+ const char *base = p ? p+1 : c_filename;
- fprintf(stderr,
- "Usage: %s [options] <minidump file>\n"
- "\n"
-@@ -133,7 +136,7 @@ Usage(int argc, const char* argv[]) {
- " lookups to be done in this directory rather than the filesystem\n"
- " layout as it exists in the crashing image. This path should end\n"
- " with a slash if it's a directory. e.g. /var/lib/breakpad/\n"
-- "", basename(argv[0]));
-+ "", base);
- }
-
- static void
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch b/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
index 42e073b94d..cb323fbdcb 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
+++ b/meta-oe/recipes-devtools/breakpad/breakpad/mcontext.patch
@@ -1,77 +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/dump_writer_common/thread_info.cc
-===================================================================
---- git.orig/src/client/linux/dump_writer_common/thread_info.cc
-+++ git/src/client/linux/dump_writer_common/thread_info.cc
-@@ -229,7 +229,6 @@ void ThreadInfo::FillCPUContext(RawConte
- }
-
- #elif defined(__mips__)
--
- uintptr_t ThreadInfo::GetInstructionPointer() const {
- return mcontext.pc;
- }
-@@ -263,8 +262,11 @@ void ThreadInfo::FillCPUContext(RawConte
- out->cause = 0; // Not stored in mcontext
-
- for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
-+#ifdef __GLIBC__
- out->float_save.regs[i] = mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs;
--
-+#else
-+ out->float_save.regs[i] = mcontext.fpregs[i];
-+#endif
- out->float_save.fpcsr = mcontext.fpc_csr;
- #if _MIPS_SIM == _ABIO32
- out->float_save.fir = mcontext.fpc_eir;
-Index: git/src/client/linux/dump_writer_common/ucontext_reader.cc
-===================================================================
---- git.orig/src/client/linux/dump_writer_common/ucontext_reader.cc
-+++ git/src/client/linux/dump_writer_common/ucontext_reader.cc
-@@ -247,8 +247,11 @@ void UContextReader::FillCPUContext(RawC
- out->cause = 0; // Not reported in signal context.
-
- for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i)
-+#ifdef __GLIBC__
- out->float_save.regs[i] = uc->uc_mcontext.fpregs.fp_r.fp_dregs[i];
--
-+#else
-+ out->float_save.regs[i] = uc->uc_mcontext.fpregs[i];
-+#endif
- out->float_save.fpcsr = uc->uc_mcontext.fpc_csr;
- #if _MIPS_SIM == _ABIO32
- out->float_save.fir = uc->uc_mcontext.fpc_eir; // Unused.
-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__
-Index: git/src/tools/linux/md2core/minidump-2-core.cc
-===================================================================
---- git.orig/src/tools/linux/md2core/minidump-2-core.cc
-+++ git/src/tools/linux/md2core/minidump-2-core.cc
-@@ -516,8 +516,12 @@ ParseThreadRegisters(CrashedProcess::Thr
- thread->mcontext.lo3 = rawregs->lo[2];
-
- for (int i = 0; i < MD_FLOATINGSAVEAREA_MIPS_FPR_COUNT; ++i) {
-+#ifdef __GLIBC__
- thread->mcontext.fpregs.fp_r.fp_fregs[i]._fp_fregs =
- rawregs->float_save.regs[i];
-+#else
-+ thread->mcontext.fpregs[i] = rawregs->float_save.regs[i];
-+#endif
- }
-
- thread->mcontext.fpc_csr = rawregs->float_save.fpcsr;
+ # 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 19bb560445..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,12 +1,11 @@
-Index: lss/linux_syscall_support.h
-===================================================================
---- lss.orig/linux_syscall_support.h
-+++ lss/linux_syscall_support.h
-@@ -118,21 +118,13 @@ extern "C" {
- #include <endian.h>
+Upstream-Status: Pending
+
+--- a/linux_syscall_support.h
++++ b/linux_syscall_support.h
+@@ -119,14 +119,7 @@ extern "C" {
#ifdef __mips__
--/* Include definitions of the ABI currently in use. */
+ /* Include definitions of the ABI currently in use. */
-#ifdef __ANDROID__
-/* Android doesn't have sgidefs.h, but does have asm/sgidefs.h,
- * which has the definitions we need.
@@ -18,10 +17,3 @@ Index: lss/linux_syscall_support.h
#endif
#endif
- /* The Android NDK's <sys/stat.h> #defines these macros as aliases
- * to their non-64 counterparts. To avoid naming conflict, remove them. */
--#ifdef __ANDROID__
-+#if defined(__ANDROID__) || (defined(__linux__) && !defined(__glibc__))
- /* These are restored by the corresponding #pragma pop_macro near
- * the end of this file. */
- # pragma push_macro("stat64")
diff --git a/meta-oe/recipes-devtools/breakpad/breakpad_git.bb b/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
index d9773c9a6e..3462b846d3 100644
--- a/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
+++ b/meta-oe/recipes-devtools/breakpad/breakpad_git.bb
@@ -6,52 +6,56 @@ 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=56c24a43c81c3af6fcf590851931489e"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=07aeb530115539d62cacf9942fa60cac"
SECTION = "libs"
inherit autotools
+DEPENDS += "zlib"
+DEPENDS:append:libc-musl = " libucontext"
+
BBCLASSEXTEND = "native"
-PE = "1"
+PE = "2"
-PV = "1.0+git${SRCPV}"
+PV = "1.0"
SRCREV_FORMAT = "breakpad_gtest_protobuf_lss_gyp"
-SRCREV_breakpad = "dea867e76f24e4a68395684b9d1cf24bcef82f20"
-SRCREV_gtest = "ec44c6c1675c25b9827aacd08c02433cccde7780"
+SRCREV_breakpad = "7a1a190f4f68e8a3e06788498f50a4d5520a69f3"
+#v1.10.0
+SRCREV_gtest = "e2239ee6043f73722e7aa812a459f54a28552929"
SRCREV_protobuf = "cb6dd4ef5f82e41e06179dcd57d3b1d9246ad6ac"
-SRCREV_lss = "a91633d172407f6c83dd69af11510b37afebb7f9"
+SRCREV_lss = "9719c1e1e676814c456b55f5f070eabad6709d31"
SRCREV_gyp = "324dd166b7c0b39d513026fa52d6280ac6d56770"
-SRC_URI = "git://github.com/google/breakpad;name=breakpad \
- git://github.com/google/googletest.git;destsuffix=git/src/testing/gtest;name=gtest \
- git://github.com/google/protobuf.git;destsuffix=git/src/third_party/protobuf/protobuf;name=protobuf \
- git://chromium.googlesource.com/linux-syscall-support;protocol=https;destsuffix=git/src/third_party/lss;name=lss \
- git://chromium.googlesource.com/external/gyp;protocol=https;destsuffix=git/src/tools/gyp;name=gyp \
- file://0001-Replace-use-of-struct-ucontext-with-ucontext_t.patch \
+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://0002-Avoid-using-basename.patch \
file://0003-Fix-conflict-between-musl-libc-dirent.h-and-lss.patch \
file://0001-Turn-off-sign-compare-for-musl-libc.patch \
- file://0002-sys-signal.h-is-a-nonportable-alias-for-signal.h.patch \
file://0003-Dont-include-stab.h.patch \
file://0004-elf_reader.cc-include-sys-reg.h-to-get-__WORDSIZE-on.patch \
- file://0005-md2core-Replace-basename.patch \
- file://0002-Use-_fpstate-instead-of-_libc_fpstate-on-linux.patch \
file://mcontext.patch \
- file://0001-disable-calls-to-getcontext-with-musl.patch \
+ file://0001-Remove-HAVE_GETCONTEXT-check-to-add-local-implementa.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_MACHINE_powerpc = "(!.*ppc).*"
+COMPATIBLE_HOST:powerpc = "null"
+COMPATIBLE_HOST:powerpc64 = "null"
+COMPATIBLE_HOST:powerpc64le = "null"
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
-do_install_append() {
+do_install:append() {
install -d ${D}${includedir}
install -d ${D}${includedir}/breakpad
@@ -72,7 +76,7 @@ do_install_append() {
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.h ${D}${includedir}/breakpad/common/memory.h
+ 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
@@ -99,8 +103,8 @@ do_install_append() {
PACKAGES =+ "${PN}-minidump-upload ${PN}-sym-upload"
-FILES_${PN}-minidump-upload = "${bindir}/minidump_upload"
-FILES_${PN}-sym-upload = "${bindir}/sym_upload"
+FILES:${PN}-minidump-upload = "${bindir}/minidump_upload"
+FILES:${PN}-sym-upload = "${bindir}/sym_upload"
SYSROOT_PREPROCESS_FUNCS += "breakpad_populate_sysroot"
@@ -120,4 +124,7 @@ breakpad_populate_sysroot() {
#| {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 = "arm"
+ARM_INSTRUCTION_SET:armv5 = "arm"
+ARM_INSTRUCTION_SET:armv4 = "arm"
+
+TOOLCHAIN = "gcc"
diff --git a/meta-oe/recipes-devtools/capnproto/capnproto_0.10.4.bb b/meta-oe/recipes-devtools/capnproto/capnproto_0.10.4.bb
new file mode 100644
index 0000000000..bbdc3b5970
--- /dev/null
+++ b/meta-oe/recipes-devtools/capnproto/capnproto_0.10.4.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-0.10.4;protocol=https"
+SRCREV = "a91ec65323c2577732224d0cf6f5bf1e79d3a724"
+
+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_0.6.1.bb b/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
deleted file mode 100644
index 6ca3613db3..0000000000
--- a/meta-oe/recipes-devtools/capnproto/capnproto_0.6.1.bb
+++ /dev/null
@@ -1,24 +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=0a5b5b742baf10cc1c158579eba7fb1d"
-
-SRC_URI = "git://github.com/sandstorm-io/capnproto.git;branch=release-${PV}"
-SRCREV = "c949a18da5f041a36cc218c5c4b79c7705999b4f"
-
-S = "${WORKDIR}/git/c++"
-
-inherit cmake
-
-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/remove-help2man.patch b/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch
deleted file mode 100644
index 4358629b7b..0000000000
--- a/meta-oe/recipes-devtools/cgdb/cgdb/remove-help2man.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-Disable building manpages so that make install doesn't fail due to lack of help2man
-
-Upstream-Status: Inappropriate [config]
-
-Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
----
- configure.ac | 3 ---
- doc/Makefile.am | 5 -----
- 2 files changed, 8 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index ee7eca0..1f0d924 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -134,9 +134,6 @@ dnl check that the required tools are available to generate documentation
- if test "$HAS_MAKEINFO" != "yes" ; then
- AC_MSG_ERROR([Please install makeinfo before installing])
- fi
--if test "$HAS_HELP2MAN" != "yes" ; then
-- AC_MSG_ERROR([Please install help2man])
--fi
-
- dnl Checking for log10 function in math - I would like to remove this
- AC_CHECK_LIB(m, log10)
-diff --git a/doc/Makefile.am b/doc/Makefile.am
-index 60662f6..0ae0013 100644
---- a/doc/Makefile.am
-+++ b/doc/Makefile.am
-@@ -1,15 +1,10 @@
- info_TEXINFOS = cgdb.texi
- cgdb_TEXINFOS = gpl.texi
-
--dist_man_MANS = cgdb.1
- EXTRA_DIST = cgdb.txt
-
- dist_pkgdata_DATA = cgdb.txt
-
--# generate the man page using help2man.
--cgdb.1:
-- help2man --output=$(top_srcdir)/doc/cgdb.1 $(top_builddir)/cgdb/cgdb$(EXEEXT)
--
- cgdb.txt: cgdb.texi $(srcdir)/version.texi $(cgdb_TEXINFOS)
- TEXTS = cgdb.txt
- text-am: $(TEXTS)
---
-1.9.1
-
diff --git a/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb b/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb
deleted file mode 100644
index 74019fb622..0000000000
--- a/meta-oe/recipes-devtools/cgdb/cgdb_0.6.8.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "curses-based interface to GDB"
-DESCRIPTION = "cgdb is a lightweight curses (terminal-based) interface to the GNU Debugger (GDB)."
-HOMEPAGE = "http://cgdb.github.io/"
-SECTION = "devel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "flex-native readline ncurses"
-
-inherit autotools
-
-SRC_URI = "http://cgdb.me/files/${BP}.tar.gz \
- file://remove-help2man.patch"
-SRC_URI[md5sum] = "7bd38c79bf4d794d239928fef401fca3"
-SRC_URI[sha256sum] = "be203e29be295097439ab67efe3dc8261f742c55ff3647718d67d52891f4cf41"
-
-CACHED_CONFIGUREVARS = "ac_cv_file__dev_ptmx=yes ac_cv_rl_version=6.2"
-EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR} \
- --with-ncurses=${STAGING_LIBDIR}"
-
-RDEPENDS_${PN} = "gdb"
diff --git a/meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb b/meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb
new file mode 100644
index 0000000000..922dfc7763
--- /dev/null
+++ b/meta-oe/recipes-devtools/cgdb/cgdb_0.8.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "curses-based interface to GDB"
+DESCRIPTION = "cgdb is a lightweight curses (terminal-based) interface to the GNU Debugger (GDB)."
+HOMEPAGE = "http://cgdb.github.io/"
+SECTION = "devel"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "flex-native readline ncurses"
+
+inherit autotools texinfo
+
+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"
+EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR} \
+ --with-ncurses=${STAGING_LIBDIR}"
+
+RDEPENDS:${PN} = "gdb"
diff --git a/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb b/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
new file mode 100644
index 0000000000..200f751669
--- /dev/null
+++ b/meta-oe/recipes-devtools/cjson/cjson_1.7.15.bb
@@ -0,0 +1,21 @@
+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/cloc/cloc_1.94.bb b/meta-oe/recipes-devtools/cloc/cloc_1.94.bb
new file mode 100644
index 0000000000..2f92d81001
--- /dev/null
+++ b/meta-oe/recipes-devtools/cloc/cloc_1.94.bb
@@ -0,0 +1,20 @@
+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/cloud9/cloud9/cloud9-avahi.service b/meta-oe/recipes-devtools/cloud9/cloud9/cloud9-avahi.service
deleted file mode 100644
index cb9b6e2db9..0000000000
--- a/meta-oe/recipes-devtools/cloud9/cloud9/cloud9-avahi.service
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
-<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
-
-<service-group>
- <name replace-wildcards="yes">Cloud9 IDE on %h</name>
- <service>
- <type>_http._tcp</type>
- <port>3000</port>
- </service>
-</service-group>
diff --git a/meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service b/meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service
deleted file mode 100644
index 495b131ffa..0000000000
--- a/meta-oe/recipes-devtools/cloud9/cloud9/cloud9.service
+++ /dev/null
@@ -1,11 +0,0 @@
-[Unit]
-Description=Cloud9 IDE
-ConditionPathExists=|/var/lib/cloud9
-
-[Service]
-Restart=always
-EnvironmentFile=-/etc/default/node
-ExecStart=/usr/bin/node4 /usr/share/cloud9/bin/cloud9.js -l 0.0.0.0 -w /var/lib/cloud9 -p 3000
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-oe/recipes-devtools/cloud9/cloud9/index.js b/meta-oe/recipes-devtools/cloud9/cloud9/index.js
deleted file mode 100644
index 88c9a19f0e..0000000000
--- a/meta-oe/recipes-devtools/cloud9/cloud9/index.js
+++ /dev/null
@@ -1,2 +0,0 @@
-var o3 = require('./o3.js')
-module.exports = o3.xml;
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 19767c311e..277fac9f7c 100644
--- a/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
+++ b/meta-oe/recipes-devtools/concurrencykit/concurrencykit_git.bb
@@ -3,29 +3,30 @@ safe memory reclamation mechanisms and non-blocking data structures \
designed to aid in the design and implementation of high performance \
concurrent systems."
-LICENSE = "BSD & Apache-2.0"
+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${SRCPV}"
+SRCREV = "6e8e5bec2e2f8cef2072a68579cbb07ababf3331"
LIC_FILES_CHKSUM = "file://LICENSE;md5=a0b24c1a8f9ad516a297d055b0294231"
-SRC_URI = "git://github.com/concurrencykit/ck.git \
- file://cross.patch \
-"
+SRC_URI = "git://github.com/concurrencykit/ck.git;branch=master;protocol=https \
+ 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 = "(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: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_20170122.bb b/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
deleted file mode 100644
index 7a70f75763..0000000000
--- a/meta-oe/recipes-devtools/cpuid/cpuid_20170122.bb
+++ /dev/null
@@ -1,22 +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"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.etallen.com/${BPN}/${BP}.src.tar.gz"
-SRC_URI[md5sum] = "1c46a6662626c5a6eaca626f23a5a7d7"
-SRC_URI[sha256sum] = "667612aae6704341dd10844e97c84c5c5c8700817a5937a3c293b55013bc4865"
-
-COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
-
-# The install rule from the Makefile has hardcoded paths, so we duplicate
-# the actions to accommodate different paths.
-do_install () {
- install -d -m755 ${D}/${bindir}
- install -m755 ${B}/cpuid ${D}/${bindir}/cpuid
- install -d -m755 ${D}/${mandir}
- install -m444 ${B}/cpuid.man.gz ${D}/${mandir}
-}
diff --git a/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb b/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb
new file mode 100644
index 0000000000..3218ba652a
--- /dev/null
+++ b/meta-oe/recipes-devtools/cpuid/cpuid_20211129.bb
@@ -0,0 +1,23 @@
+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/cscope/cscope_15.8b.bb b/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb
deleted file mode 100644
index 8aa5947d0d..0000000000
--- a/meta-oe/recipes-devtools/cscope/cscope_15.8b.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Cscope is a text screen based source browser"
-DESCRIPTION = "Cscope is a developer's tool for browsing source code. \
- It has an impeccable Unix pedigree, having been originally \
- developed at Bell Labs back in the days of the PDP-11. \
- Cscope was part of the official AT&T Unix distribution for \
- many years, and has been used to manage projects involving 20 \
- million lines of code!"
-
-HOMEPAGE = "http://cscope.sourceforge.net/"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d4667b67b483823043fcffa489ea343b"
-
-inherit autotools
-
-DEPENDS += "ncurses"
-
-SRC_URI = "http://downloads.sourceforge.net/project/cscope/cscope/${PV}/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "8f9409a238ee313a96f9f87fe0f3b176"
-SRC_URI[sha256sum] = "4889d091f05aa0845384b1e4965aa31d2b20911fb2c001b2cdcffbcb7212d3af"
diff --git a/meta-oe/recipes-devtools/cscope/cscope_15.9.bb b/meta-oe/recipes-devtools/cscope/cscope_15.9.bb
new file mode 100644
index 0000000000..99f3ba85de
--- /dev/null
+++ b/meta-oe/recipes-devtools/cscope/cscope_15.9.bb
@@ -0,0 +1,24 @@
+# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Cscope is a text screen based source browser"
+DESCRIPTION = "Cscope is a developer's tool for browsing source code. \
+ It has an impeccable Unix pedigree, having been originally \
+ developed at Bell Labs back in the days of the PDP-11. \
+ Cscope was part of the official AT&T Unix distribution for \
+ many years, and has been used to manage projects involving 20 \
+ million lines of code!"
+
+HOMEPAGE = "http://cscope.sourceforge.net/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d4667b67b483823043fcffa489ea343b"
+
+inherit autotools
+
+DEPENDS += "ncurses"
+
+SRC_URI = "http://downloads.sourceforge.net/project/cscope/cscope/v${PV}/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "16f3cce078b6c0e42299def4028eea6f"
+SRC_URI[sha256sum] = "c5505ae075a871a9cd8d9801859b0ff1c09782075df281c72c23e72115d9f159"
diff --git a/meta-oe/recipes-devtools/ctags/ctags_5.8.bb b/meta-oe/recipes-devtools/ctags/ctags_5.8.bb
deleted file mode 100644
index d006d83aa5..0000000000
--- a/meta-oe/recipes-devtools/ctags/ctags_5.8.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright (C) 2015 Igor Santos <igor.santos@aker.com.br>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Exuberant Ctags"
-DESCRIPTION = "Exuberant 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 = "http://ctags.sourceforge.net/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-inherit autotools-brokensep
-
-SRC_URI = "http://prdownloads.sourceforge.net/${BPN}/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "c00f82ecdcc357434731913e5b48630d"
-SRC_URI[sha256sum] = "0e44b45dcabe969e0bbbb11e30c246f81abe5d32012db37395eb57d66e9e99c7"
-
-do_install() {
- install -Dm 755 ${B}/ctags ${D}${bindir}/ctags
- install -Dm 644 ${B}/ctags.1 ${D}${mandir}/man1/ctags.1
-}
diff --git a/meta-oe/recipes-devtools/ctags/ctags_6.0.20230716.0.bb b/meta-oe/recipes-devtools/ctags/ctags_6.0.20230716.0.bb
new file mode 100644
index 0000000000..b454e7f998
--- /dev/null
+++ b/meta-oe/recipes-devtools/ctags/ctags_6.0.20230716.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 = "983cab50c0dc8603989c4bd2ca535bae821d7ecc"
+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/0001-do-not-hardcode-the-full-path-of-dpkg.patch b/meta-oe/recipes-devtools/debootstrap/debootstrap/0001-do-not-hardcode-the-full-path-of-dpkg.patch
new file mode 100644
index 0000000000..2a5f233165
--- /dev/null
+++ b/meta-oe/recipes-devtools/debootstrap/debootstrap/0001-do-not-hardcode-the-full-path-of-dpkg.patch
@@ -0,0 +1,33 @@
+From e735fb23f46f0c3c7a1144ba6b4050bfc0015a05 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Wed, 2 Jun 2021 13:34:35 +0800
+Subject: [PATCH] do not hardcode the full path of dpkg
+
+While calling debootstrap in sdk, if host does not install dpkg package,
+the full path calling will fail
+
+Do not hardcode the full path of dpkg, then then sdk's dpkg will be used.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ debootstrap | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/debootstrap b/debootstrap
+index a3cf3af..5e96c3e 100755
+--- a/debootstrap
++++ b/debootstrap
+@@ -538,7 +538,7 @@ fi
+
+ if in_path dpkg && \
+ dpkg --print-architecture >/dev/null 2>&1; then
+- HOST_ARCH=$(/usr/bin/dpkg --print-architecture)
++ HOST_ARCH=$(dpkg --print-architecture)
+ elif in_path udpkg && \
+ udpkg --print-architecture >/dev/null 2>&1; then
+ HOST_ARCH=$(/usr/bin/udpkg --print-architecture)
+--
+2.27.0
+
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap/0001-support-to-override-usr-sbin-and-usr-share.patch b/meta-oe/recipes-devtools/debootstrap/debootstrap/0001-support-to-override-usr-sbin-and-usr-share.patch
new file mode 100644
index 0000000000..12dd238108
--- /dev/null
+++ b/meta-oe/recipes-devtools/debootstrap/debootstrap/0001-support-to-override-usr-sbin-and-usr-share.patch
@@ -0,0 +1,41 @@
+From 87d0174e8d56e7458dc94f05f82ab7a67a5cf7d0 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 8 Apr 2021 14:06:05 +0800
+Subject: [PATCH 1/2] support to override /usr/sbin and /usr/share
+
+Upstream-Status: Submitted [https://salsa.debian.org/installer-team/debootstrap/-/merge_requests/55]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ Makefile | 12 +++++++-----
+ 1 file changed, 7 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 8516803..a2d8c00 100644
+--- a/Makefile
++++ b/Makefile
+@@ -5,14 +5,16 @@ all:
+
+ clean:
+
+-DSDIR=$(DESTDIR)/usr/share/debootstrap
++datadir ?= "/usr/share"
++sbindir ?= "/usr/sbin"
++DSDIR=$(DESTDIR)${datadir}/debootstrap
+ install:
+ mkdir -p $(DSDIR)/scripts
+- mkdir -p $(DESTDIR)/usr/sbin
++ mkdir -p $(DESTDIR)$(sbindir)
+
+ cp -a scripts/* $(DSDIR)/scripts/
+ install -o root -g root -m 0644 functions $(DSDIR)/
+
+- sed 's/@VERSION@/$(VERSION)/g' debootstrap >$(DESTDIR)/usr/sbin/debootstrap
+- chown root:root $(DESTDIR)/usr/sbin/debootstrap
+- chmod 0755 $(DESTDIR)/usr/sbin/debootstrap
++ sed 's/@VERSION@/$(VERSION)/g' debootstrap >$(DESTDIR)$(sbindir)/debootstrap
++ chown root:root $(DESTDIR)$(sbindir)/debootstrap
++ chmod 0755 $(DESTDIR)$(sbindir)/debootstrap
+--
+2.17.1
+
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap/0002-support-to-override-usr-bin-arch-test.patch b/meta-oe/recipes-devtools/debootstrap/debootstrap/0002-support-to-override-usr-bin-arch-test.patch
new file mode 100644
index 0000000000..69329df4ea
--- /dev/null
+++ b/meta-oe/recipes-devtools/debootstrap/debootstrap/0002-support-to-override-usr-bin-arch-test.patch
@@ -0,0 +1,47 @@
+From f0420b201f2fb5286ccf5657faa6b38cd2680e10 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 8 Apr 2021 14:08:06 +0800
+Subject: [PATCH 2/2] support to override /usr/bin/arch-test
+
+Upstream-Status: Submitted [https://salsa.debian.org/installer-team/debootstrap/-/merge_requests/55]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ debootstrap | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/debootstrap b/debootstrap
+index 9b9e58d..a3cf3af 100755
+--- a/debootstrap
++++ b/debootstrap
+@@ -51,6 +51,10 @@ INRELEASE_PATH=""
+ DEF_MIRROR="http://deb.debian.org/debian"
+ DEF_HTTPS_MIRROR="https://deb.debian.org/debian"
+
++if [ -z "$ARCH_TEST" ]; then
++ ARCH_TEST="/usr/bin/arch-test"
++fi
++
+ # set $CONTAINER
+ detect_container
+
+@@ -645,12 +649,12 @@ fi
+
+ ###########################################################################
+
+-if [ -x /usr/bin/arch-test ] && am_doing_phase second_stage; then
++if [ -x ${ARCH_TEST} ] && am_doing_phase second_stage; then
+ if doing_variant fakechroot; then
+- ret=0; arch-test "$ARCH" || ret=$?
++ ret=0; ${ARCH_TEST} "$ARCH" || ret=$?
+ # Avoid failure with old arch-test package
+- elif arch-test --version > /dev/null 2>&1; then
+- ret=0; arch-test -c "$TARGET" "$ARCH" || ret=$?
++ elif ${ARCH_TEST} --version > /dev/null 2>&1; then
++ ret=0; ${ARCH_TEST} -c "$TARGET" "$ARCH" || ret=$?
+ else
+ ret=3
+ fi
+--
+2.17.1
+
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gz b/meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gz
deleted file mode 100644
index 20eaba3ad2..0000000000
--- a/meta-oe/recipes-devtools/debootstrap/debootstrap/devices.tar.gz
+++ /dev/null
Binary files differ
diff --git a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.128.bb b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.128.bb
new file mode 100644
index 0000000000..592d997aad
--- /dev/null
+++ b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.128.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] = "09e7f8795fee894b77994213ee3a588e9d8f96ddf5f93afdec91e9a137aa7866"
+
+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.67.bb b/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
deleted file mode 100644
index 8472aca6c1..0000000000
--- a/meta-oe/recipes-devtools/debootstrap/debootstrap_1.0.67.bb
+++ /dev/null
@@ -1,35 +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"
-
-inherit pkgconfig
-
-SRC_URI = "\
- http://http.debian.net/debian/pool/main/d/debootstrap/debootstrap_1.0.67.tar.gz \
- file://devices.tar.gz;unpack=0 \
-"
-
-SRC_URI[md5sum] = "eacabfe2e45415af60b1d74c3a23418a"
-SRC_URI[sha256sum] = "0a12e0a2bbff185d47711a716b1f2734856100e8784361203e834fed0cffa51b"
-
-S = "${WORKDIR}/${BP}"
-
-# All Makefile does is creation of devices.tar.gz, which fails in OE build, we use
-# static devices.tar.gz as work around
-# | NOTE: make -j 8 -e MAKEFLAGS=
-# | rm -rf dev
-# | mkdir -p dev
-# | chown 0:0 dev
-# | chown: changing ownership of `dev': Operation not permitted
-# | make: *** [devices.tar.gz] Error 1
-# | WARNING: exit code 1 from a shell command.
-do_compile_prepend() {
- cp ${WORKDIR}/devices.tar.gz ${B}
-}
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
- chown -R root:root ${D}${datadir}/debootstrap
-}
diff --git a/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch b/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch
deleted file mode 100644
index 2eb8af7130..0000000000
--- a/meta-oe/recipes-devtools/dejagnu/dejagnu/configure.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Index: dejagnu-1.4.4/configure.in
-===================================================================
---- dejagnu-1.4.4.orig/configure.in 2014-07-18 07:05:49.997481207 +0000
-+++ dejagnu-1.4.4/configure.in 2014-07-18 07:05:50.085481210 +0000
-@@ -1,10 +1,10 @@
- dnl Process this file with autoconf to produce a configure script.
- AC_PREREQ(2.13)
--AC_INIT(runtest.exp)
-+AC_INIT(dejagnu, 1.4.4)
- dnl AC_CONFIG_AUX_DIR(..)
-
- dnl These are required by automake
--AM_INIT_AUTOMAKE(dejagnu, 1.4.4)
-+AM_INIT_AUTOMAKE([foreign])
- AM_MAINTAINER_MODE
- AC_PROG_MAKE_SET
-
-Index: dejagnu-1.4.4/example/calc/configure.in
-===================================================================
---- dejagnu-1.4.4.orig/example/calc/configure.in 2002-04-26 03:32:40.000000000 +0000
-+++ dejagnu-1.4.4/example/calc/configure.in 2014-07-18 07:11:59.085491266 +0000
-@@ -1,8 +1,8 @@
- dnl Process this file with autoconf to produce a configure script.
- AC_PREREQ(2.5)
--AC_INIT(calc.c)
-+AC_INIT(calc, 1.1)
- AM_CONFIG_HEADER(calc.h)
--AM_INIT_AUTOMAKE(calc, 1.1)
-+AM_INIT_AUTOMAKE([foreign])
-
- AC_PROG_CC
- AC_PROG_INSTALL
-Index: dejagnu-1.4.4/example/hello/configure.in
-===================================================================
---- dejagnu-1.4.4.orig/example/hello/configure.in 2002-08-31 05:46:16.000000000 +0000
-+++ dejagnu-1.4.4/example/hello/configure.in 2014-07-18 07:12:23.721491937 +0000
-@@ -25,7 +25,7 @@
- # ------------------------------------------------------------------------
-
- AC_INIT(helloworld, demo-version, philip.wilsey@ieee.org)
--AM_INIT_AUTOMAKE(helloworld, demo-version)
-+AM_INIT_AUTOMAKE([foreign])
-
- #AC_CONFIG_SRCDIR([hello.cc])
- #AC_CONFIG_HEADER([config.h])
diff --git a/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb b/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb
deleted file mode 100644
index 63726b2328..0000000000
--- a/meta-oe/recipes-devtools/dejagnu/dejagnu_1.4.4.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "GNU unit testing framework, written in Expect and Tcl"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b"
-SECTION = "devel"
-
-inherit autotools
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
- file://configure.patch"
-
-SRC_URI[md5sum] = "053f18fd5d00873de365413cab17a666"
-SRC_URI[sha256sum] = "d0fbedef20fb0843318d60551023631176b27ceb1e11de7468a971770d0e048d"
-
-BBCLASSEXTEND = "native"
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_git.bb b/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
new file mode 100644
index 0000000000..94023922a2
--- /dev/null
+++ b/meta-oe/recipes-devtools/dnf-plugin-tui/dnf-plugin-tui_git.bb
@@ -0,0 +1,47 @@
+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 = "83917a3935ac7ce1d8d96e914d96a6679319a336"
+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 \
+"
+DEPENDS:append:class-nativesdk = " file-replacement-nativesdk"
+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/files/oe-remote.repo.sample b/meta-oe/recipes-devtools/dnf-plugin-tui/files/oe-remote.repo.sample
new file mode 100644
index 0000000000..6c4502e17f
--- /dev/null
+++ b/meta-oe/recipes-devtools/dnf-plugin-tui/files/oe-remote.repo.sample
@@ -0,0 +1,5 @@
+[base]
+name=myrepo
+baseurl=http://127.0.0.1/oe_repo/
+enabled=1
+gpgcheck=0
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
new file mode 100644
index 0000000000..47c8edb497
--- /dev/null
+++ b/meta-oe/recipes-devtools/doxygen/doxygen/0001-build-don-t-look-for-Iconv.patch
@@ -0,0 +1,37 @@
+From 24650b0c7db6b213a2eaa5061b75b9f1b43f1ce9 Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Fri, 23 Nov 2018 11:44:56 +0100
+Subject: [PATCH] build: don't look for Iconv
+
+Drop the find_package() for Iconv. CMake is unable to find iconv.h in
+native build but all modern systems supply it as part of the standard
+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 doxygen must build on many architectures, this change is
+ too intrusive for upstream
+---
+ CMakeLists.txt | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 06b9696f..f30b46b8 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -117,10 +117,6 @@ if (sqlite3)
+ endif()
+ endif()
+
+-find_package(Iconv REQUIRED)
+-include_directories(${ICONV_INCLUDE_DIR})
+-
+-
+ #set(DOXYDOCS ${PROJECT_SOURCE_DIR}/doc CACHE INTERNAL "Path to doxygen docs")
+ set(DOXYDOCS ${PROJECT_BINARY_DIR}/doc)
+ set(ENV{DOXYGEN_DOCDIR} ${DOXYDOCS})
+--
+2.27.0
+
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
new file mode 100644
index 0000000000..796bc61ddc
--- /dev/null
+++ b/meta-oe/recipes-devtools/doxygen/doxygen/doxygen-native-only-check-python3.patch
@@ -0,0 +1,232 @@
+From daf686508f2ee4711d93e96e5b100e50bf161656 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Wed, 26 Aug 2020 10:52:10 +0300
+Subject: [PATCH] doxygen: Fix Python issues for doxygen-native
+
+It fails to compile doxygen-native when /usr/bin/python is a link
+to python3 on build host:
+
+| Failed to import the site module
+| Traceback (most recent call last):
+| File "/usr/lib64/python3.6/site.py", line 564, in <module>
+| main()
+| File "/usr/lib64/python3.6/site.py", line 550, in main
+| known_paths = addusersitepackages(known_paths)
+| File "/usr/lib64/python3.6/site.py", line 282, in addusersitepackages
+| user_site = getusersitepackages()
+| File "/usr/lib64/python3.6/site.py", line 258, in getusersitepackages
+| user_base = getuserbase() # this will also set USER_BASE
+| File "/usr/lib64/python3.6/site.py", line 248, in getuserbase
+| USER_BASE = get_config_var('userbase')
+| File "/usr/lib64/python3.6/sysconfig.py", line 604, in get_config_var
+| return get_config_vars().get(name)
+| File "/usr/lib64/python3.6/sysconfig.py", line 553, in get_config_vars
+| _init_posix(_CONFIG_VARS)
+| File "/usr/lib64/python3.6/sysconfig.py", line 424, in _init_posix
+| _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
+| ModuleNotFoundError: No module named '_sysconfigdata'
+
+Replace find_package PythonInterp with Python3 to fix this issue
+that it uses python3 from python3-native. And it also replaces the
+result variable PYTHON_EXECUTABLE with Python3_EXECUTABLE.
+
+This patch is only needded by doxygen-native.
+
+Updated to apply to release 1.9.1.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Co-Authored-By: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+
+---
+ CMakeLists.txt | 2 +-
+ addon/doxywizard/CMakeLists.txt | 6 +++---
+ doc/CMakeLists.txt | 6 +++---
+ examples/CMakeLists.txt | 4 ++--
+ libmscgen/CMakeLists.txt | 2 +-
+ src/CMakeLists.txt | 10 +++++-----
+ testing/CMakeLists.txt | 4 ++--
+ 7 files changed, 17 insertions(+), 17 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2455793..28f0d83 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -105,7 +105,7 @@ else ()
+ endif ()
+
+ find_program(DOT NAMES dot)
+-find_package(PythonInterp REQUIRED)
++find_package(Python3 REQUIRED)
+ find_package(FLEX REQUIRED)
+ find_package(BISON REQUIRED)
+ if (BISON_VERSION VERSION_LESS 2.7)
+diff --git a/addon/doxywizard/CMakeLists.txt b/addon/doxywizard/CMakeLists.txt
+index 63ac8e3..d37d1d0 100644
+--- a/addon/doxywizard/CMakeLists.txt
++++ b/addon/doxywizard/CMakeLists.txt
+@@ -57,7 +57,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/settings.h PROPERTIES GENERA
+
+ # generate version.cpp
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp
++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/version.py ${VERSION} > ${GENERATED_SRC_WIZARD}/version.cpp
+ DEPENDS ${PROJECT_SOURCE_DIR}/VERSION ${PROJECT_SOURCE_DIR}/src/version.py
+ OUTPUT ${GENERATED_SRC_WIZARD}/version.cpp
+ )
+@@ -65,7 +65,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/version.cpp PROPERTIES GENER
+
+ # generate configdoc.cpp
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/configgen.py -wiz ${PROJECT_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp
++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/configgen.py -wiz ${PROJECT_SOURCE_DIR}/src/config.xml > ${GENERATED_SRC_WIZARD}/configdoc.cpp
+ DEPENDS ${PROJECT_SOURCE_DIR}/src/configgen.py ${PROJECT_SOURCE_DIR}/src/config.xml
+ OUTPUT ${GENERATED_SRC_WIZARD}/configdoc.cpp
+ )
+@@ -74,7 +74,7 @@ set_source_files_properties(${GENERATED_SRC_WIZARD}/configdoc.cpp PROPERTIES GEN
+ set(LEX_FILES config_doxyw)
+ foreach(lex_file ${LEX_FILES})
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l > ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/addon/doxywizard/${lex_file}.l
+ OUTPUT ${GENERATED_SRC_WIZARD}/${lex_file}.l.h
+ )
+diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt
+index ec63ceb..49a2bda 100644
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -168,7 +168,7 @@ configure_file(${PROJECT_SOURCE_DIR}/doc/doxyindexer.1 ${PROJECT_BINARY_DIR
+
+ # doc/language.doc (see tag Doxyfile:INPUT)
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} translator.py ${PROJECT_SOURCE_DIR}
++ COMMAND ${Python3_EXECUTABLE} translator.py ${PROJECT_SOURCE_DIR}
+ DEPENDS ${PROJECT_SOURCE_DIR}/doc/maintainers.txt ${PROJECT_SOURCE_DIR}/doc/language.tpl ${PROJECT_BINARY_DIR}/doc/translator.py ${LANG_FILES}
+ OUTPUT language.doc
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc
+@@ -177,7 +177,7 @@ set_source_files_properties(language.doc PROPERTIES GENERATED 1)
+
+ # doc/config.doc (see tag Doxyfile:INPUT)
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/src/configgen.py -doc ${TOP}/src/config.xml > config.doc
+ DEPENDS ${TOP}/src/config.xml ${TOP}/src/configgen.py
+ OUTPUT config.doc
+ WORKING_DIRECTORY ${PROJECT_BINARY_DIR}/doc/
+@@ -228,7 +228,7 @@ add_custom_target(docs_chm
+ COMMAND ${CMAKE_COMMAND} -E echo " for file in files:" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
+ COMMAND ${CMAKE_COMMAND} -E echo " if file.endswith('.html') or file.endswith('.png') or file.endswith('.css') or file.endswith('.gif'):" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
+ COMMAND ${CMAKE_COMMAND} -E echo " print(os.path.join(root, file))" >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py
+- COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${PYTHON_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp
++ COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm ${Python3_EXECUTABLE} ${PROJECT_BINARY_DIR}/chm/doxygen_manual_examples_chm.py >> ${PROJECT_BINARY_DIR}/chm/doxygen_manual.hhp
+ COMMAND ${CMAKE_COMMAND} -E chdir ${PROJECT_BINARY_DIR}/chm "${HTML_HELP_COMPILER}" doxygen_manual.hhp || echo > nul
+ COMMAND ${CMAKE_COMMAND} -E rename ${PROJECT_BINARY_DIR}/chm/index.chm ${PROJECT_BINARY_DIR}/chm/doxygen_manual.chm
+ DEPENDS ${PROJECT_BINARY_DIR}/doc/language.doc ${PROJECT_BINARY_DIR}/doc/config.doc
+diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
+index 194b427..248b807 100644
+--- a/examples/CMakeLists.txt
++++ b/examples/CMakeLists.txt
+@@ -54,7 +54,7 @@ foreach (f_inp ${BASIC_EXAMPLES})
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/${f}
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/${f}
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen ${f}.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
+ DEPENDS doxygen ${f}.${f_ext} ${f}.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/${f}/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/${f}/latex/refman_doc.tex
+ )
+@@ -73,7 +73,7 @@ if (DOT)
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/html/examples/diagrams
+ COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/latex/examples/diagrams
+ COMMAND ${EXECUTABLE_OUTPUT_PATH}/doxygen diagrams.cfg
+- COMMAND ${PYTHON_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
++ COMMAND ${Python3_EXECUTABLE} ${TOP}/examples/strip_example.py < ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman.tex > ${PROJECT_BINARY_DIR}/html/examples/diagrams/latex/refman_doc.tex
+ DEPENDS doxygen diagrams_a.h diagrams_b.h diagrams_c.h diagrams_d.h diagrams_e.h diagrams.cfg ${TOP}/examples/strip_example.py
+ OUTPUT ${PROJECT_BINARY_DIR}/html/examples/diagrams/html/index.html ${PROJECT_BINARY_DIR}/latex/examples/diagrams/latex/refman_doc.tex
+ )
+diff --git a/libmscgen/CMakeLists.txt b/libmscgen/CMakeLists.txt
+index 34cf4d8..f015afc 100644
+--- a/libmscgen/CMakeLists.txt
++++ b/libmscgen/CMakeLists.txt
+@@ -7,7 +7,7 @@ include_directories(
+ set(LEX_FILES mscgen_lexer)
+ foreach(lex_file ${LEX_FILES})
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
+ DEPENDS ${PROJECT_SOURCE_DIR}/src/scan_states.py ${PROJECT_SOURCE_DIR}/libmscgen/${lex_file}.l
+ OUTPUT ${GENERATED_SRC}/${lex_file}.l.h
+ )
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 0e0c5f7..c1d3ca5 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -40,7 +40,7 @@ set_source_files_properties(${GENERATED_SRC}/settings.h PROPERTIES GENERATED 1)
+
+ # configvalues.h
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maph ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.h
+ DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
+ OUTPUT ${GENERATED_SRC}/configvalues.h
+ )
+@@ -52,7 +52,7 @@ add_custom_target(
+
+ # configvalues.cpp
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -maps ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configvalues.cpp
+ DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
+ OUTPUT ${GENERATED_SRC}/configvalues.cpp
+ )
+@@ -60,7 +60,7 @@ set_source_files_properties(${GENERATED_SRC}/configvalues.cpp PROPERTIES GENERAT
+
+ # configoptions.cpp
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/configgen.py -cpp ${CMAKE_CURRENT_LIST_DIR}/config.xml > ${GENERATED_SRC}/configoptions.cpp
+ DEPENDS ${CMAKE_CURRENT_LIST_DIR}/config.xml ${CMAKE_CURRENT_LIST_DIR}/configgen.py
+ OUTPUT ${GENERATED_SRC}/configoptions.cpp
+ )
+@@ -95,7 +95,7 @@ endif()
+ # resources.cpp
+ add_custom_command(
+ COMMENT "Generating ${GENERATED_SRC}/resources.cpp"
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${PROJECT_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py ${PROJECT_SOURCE_DIR}/templates ${GENERATED_SRC}/resources.cpp
+ DEPENDS ${RESOURCES} ${CMAKE_CURRENT_LIST_DIR}/res2cc_cmd.py
+ OUTPUT ${GENERATED_SRC}/resources.cpp
+ )
+@@ -126,7 +126,7 @@ foreach(lex_file ${LEX_FILES})
+ set(LEX_FILES_H ${LEX_FILES_H} " " ${GENERATED_SRC}/${lex_file}.l.h CACHE INTERNAL "Stores generated files")
+ set(LEX_FILES_CPP ${LEX_FILES_CPP} " " ${GENERATED_SRC}/${lex_file}.cpp CACHE INTERNAL "Stores generated files")
+ add_custom_command(
+- COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
++ COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l > ${GENERATED_SRC}/${lex_file}.l.h
+ DEPENDS ${CMAKE_CURRENT_LIST_DIR}/scan_states.py ${CMAKE_CURRENT_LIST_DIR}/${lex_file}.l
+ OUTPUT ${GENERATED_SRC}/${lex_file}.l.h
+ )
+diff --git a/testing/CMakeLists.txt b/testing/CMakeLists.txt
+index fd6912e..0af1865 100644
+--- a/testing/CMakeLists.txt
++++ b/testing/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ # run all tests sequentially (keep for backward compatibility)
+ add_custom_target(tests
+ COMMENT "Running doxygen tests..."
+- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --doxygen ${PROJECT_BINARY_DIR}/bin/doxygen --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ DEPENDS doxygen
+ )
+
+@@ -19,6 +19,6 @@ foreach(TEST_FILE ${TEST_FILES})
+ string(REGEX REPLACE "^.*/([0-9][0-9][0-9]*).*$" "\\1" TEST_ID "${TEST_FILE}")
+ # add a test target for each test
+ add_test(NAME ${TEST_NAME}
+- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
++ COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/testing/runtests.py --id ${TEST_ID} --doxygen $<TARGET_FILE:doxygen> --inputdir ${PROJECT_SOURCE_DIR}/testing --outputdir ${PROJECT_BINARY_DIR}/testing
+ )
+ endforeach()
diff --git a/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb b/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb
new file mode 100644
index 0000000000..8bd0992bd6
--- /dev/null
+++ b/meta-oe/recipes-devtools/doxygen/doxygen_1.9.3.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "Doxygen is the de facto standard tool for generating documentation from annotated C++ sources."
+HOMEPAGE = "http://www.doxygen.org/"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "flex-native bison-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.src.tar.gz \
+ file://0001-build-don-t-look-for-Iconv.patch \
+"
+SRC_URI:append:class-native = " file://doxygen-native-only-check-python3.patch"
+SRC_URI[sha256sum] = "f352dbc3221af7012b7b00935f2dfdc9fb67a97d43287d2f6c81c50449d254e0"
+
+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..1facb352cc
--- /dev/null
+++ b/meta-oe/recipes-devtools/editorconfig/editorconfig-core-c_0.12.6.bb
@@ -0,0 +1,15 @@
+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"
+
diff --git a/meta-oe/recipes-devtools/exprtk/exprtk_git.bb b/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
new file mode 100644
index 0000000000..4019f26899
--- /dev/null
+++ b/meta-oe/recipes-devtools/exprtk/exprtk_git.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Expression parser"
+HOMEPAGE = "https://github.com/ArashPartow/exprtk"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+SRCREV = "f46bffcd6966d38a09023fb37ba9335214c9b959"
+
+SRC_URI = "git://github.com/ArashPartow/exprtk.git;branch=release;protocol=https"
+
+S = "${WORKDIR}/git"
+
+# other packages commonly reference the file directly as "exprtk.hpp"
+# create symlink to allow this usage
+do_install() {
+ install -d ${D}/${includedir}
+ install -m 0644 ${S}/exprtk.hpp ${D}/${includedir}/exprtk.hpp
+}
+
+# exprtk 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/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/files/0001-correct-version-for-so-lib.patch b/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
deleted file mode 100644
index a7a42f9814..0000000000
--- a/meta-oe/recipes-devtools/flatbuffers/files/0001-correct-version-for-so-lib.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 8b44dc65d98d50b462843ac9dab6fe3fc25abe36 Mon Sep 17 00:00:00 2001
-From: Pascal Bach <pascal.bach@siemens.com>
-Date: Fri, 12 May 2017 13:54:49 +0200
-Subject: [PATCH] correct version for so lib
-
-Upstream-Status: Pending
-
----
- CMakeLists.txt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3670afe..f4fcd2c 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -172,6 +172,7 @@ endif()
- if(FLATBUFFERS_BUILD_SHAREDLIB)
- add_library(flatbuffers_shared SHARED ${FlatBuffers_Library_SRCS})
- set_target_properties(flatbuffers_shared PROPERTIES OUTPUT_NAME flatbuffers)
-+ set_target_properties(flatbuffers_shared PROPERTIES VERSION "${PV}")
- endif()
-
- function(compile_flatbuffers_schema_to_cpp SRC_FBS)
---
-2.1.4
-
diff --git a/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch b/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
deleted file mode 100644
index d736f012bb..0000000000
--- a/meta-oe/recipes-devtools/flatbuffers/files/0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From a614d8e20fa9e4fd16b699d581ddac2956c120f5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Sep 2017 10:04:02 -0700
-Subject: [PATCH 1/2] flatbuffers: Move EndianSwap template to
- flatbuffers/base.h
-
-Clang complains
-call to function 'EndianSwap' that is neither visible in the template definition nor found by argument-dependent lookup
- return EndianSwap(t);
-
-This seems to be due to limitation of two-phase lookup of dependent names in template definitions
-
-Its not being found using associated namespaces therefore
-it has to be made visible at the template definition site as well
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- include/flatbuffers/base.h | 33 +++++++++++++++++++++++++++++++++
- include/flatbuffers/flatbuffers.h | 32 --------------------------------
- 2 files changed, 33 insertions(+), 32 deletions(-)
-
-diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
-index f051755..c73fb2d 100644
---- a/include/flatbuffers/base.h
-+++ b/include/flatbuffers/base.h
-@@ -150,6 +150,39 @@ typedef uintmax_t largest_scalar_t;
- // We support aligning the contents of buffers up to this size.
- #define FLATBUFFERS_MAX_ALIGNMENT 16
-
-+template<typename T> T EndianSwap(T t) {
-+ #if defined(_MSC_VER)
-+ #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
-+ #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
-+ #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
-+ #else
-+ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
-+ // __builtin_bswap16 was missing prior to GCC 4.8.
-+ #define FLATBUFFERS_BYTESWAP16(x) \
-+ static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
-+ #else
-+ #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
-+ #endif
-+ #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
-+ #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
-+ #endif
-+ if (sizeof(T) == 1) { // Compile-time if-then's.
-+ return t;
-+ } else if (sizeof(T) == 2) {
-+ auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
-+ return *reinterpret_cast<T *>(&r);
-+ } else if (sizeof(T) == 4) {
-+ auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
-+ return *reinterpret_cast<T *>(&r);
-+ } else if (sizeof(T) == 8) {
-+ auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
-+ return *reinterpret_cast<T *>(&r);
-+ } else {
-+ assert(0);
-+ }
-+}
-+
-+
- template<typename T> T EndianScalar(T t) {
- #if FLATBUFFERS_LITTLEENDIAN
- return t;
-diff --git a/include/flatbuffers/flatbuffers.h b/include/flatbuffers/flatbuffers.h
-index 9216cf4..f749dcb 100644
---- a/include/flatbuffers/flatbuffers.h
-+++ b/include/flatbuffers/flatbuffers.h
-@@ -37,38 +37,6 @@ inline void EndianCheck() {
- (void)endiantest;
- }
-
--template<typename T> T EndianSwap(T t) {
-- #if defined(_MSC_VER)
-- #define FLATBUFFERS_BYTESWAP16 _byteswap_ushort
-- #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
-- #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
-- #else
-- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
-- // __builtin_bswap16 was missing prior to GCC 4.8.
-- #define FLATBUFFERS_BYTESWAP16(x) \
-- static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
-- #else
-- #define FLATBUFFERS_BYTESWAP16 __builtin_bswap16
-- #endif
-- #define FLATBUFFERS_BYTESWAP32 __builtin_bswap32
-- #define FLATBUFFERS_BYTESWAP64 __builtin_bswap64
-- #endif
-- if (sizeof(T) == 1) { // Compile-time if-then's.
-- return t;
-- } else if (sizeof(T) == 2) {
-- auto r = FLATBUFFERS_BYTESWAP16(*reinterpret_cast<uint16_t *>(&t));
-- return *reinterpret_cast<T *>(&r);
-- } else if (sizeof(T) == 4) {
-- auto r = FLATBUFFERS_BYTESWAP32(*reinterpret_cast<uint32_t *>(&t));
-- return *reinterpret_cast<T *>(&r);
-- } else if (sizeof(T) == 8) {
-- auto r = FLATBUFFERS_BYTESWAP64(*reinterpret_cast<uint64_t *>(&t));
-- return *reinterpret_cast<T *>(&r);
-- } else {
-- assert(0);
-- }
--}
--
- template<typename T> FLATBUFFERS_CONSTEXPR size_t AlignOf() {
- #ifdef _MSC_VER
- return __alignof(T);
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch b/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
deleted file mode 100644
index 460159f275..0000000000
--- a/meta-oe/recipes-devtools/flatbuffers/files/0002-use-__builtin_bswap16-when-building-with-clang.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 626fe5e043de25e970ebdf061b88c646fa689113 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Sep 2017 10:09:31 -0700
-Subject: [PATCH 2/2] use __builtin_bswap16 when building with clang
-
-clang pretends to be gcc 4.2.0 and therefore the code does
-not use __builtin_bswap16 but tries to synthesize it
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
- include/flatbuffers/base.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/flatbuffers/base.h b/include/flatbuffers/base.h
-index c73fb2d..13e8fac 100644
---- a/include/flatbuffers/base.h
-+++ b/include/flatbuffers/base.h
-@@ -156,7 +156,7 @@ template<typename T> T EndianSwap(T t) {
- #define FLATBUFFERS_BYTESWAP32 _byteswap_ulong
- #define FLATBUFFERS_BYTESWAP64 _byteswap_uint64
- #else
-- #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408
-+ #if defined(__GNUC__) && __GNUC__ * 100 + __GNUC_MINOR__ < 408 && !defined(__clang__)
- // __builtin_bswap16 was missing prior to GCC 4.8.
- #define FLATBUFFERS_BYTESWAP16(x) \
- static_cast<uint16_t>(__builtin_bswap32(static_cast<uint32_t>(x) << 16))
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
new file mode 100644
index 0000000000..183554e2c8
--- /dev/null
+++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Memory Efficient Serialization Library"
+HOMEPAGE = "https://github.com/google/flatbuffers"
+SECTION = "console/tools"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+require flatbuffers.inc
+
+PACKAGE_BEFORE_PN = "${PN}-compiler"
+
+DEPENDS = "flatbuffers-native"
+
+RDEPENDS:${PN}-compiler = "${PN}"
+RDEPENDS:${PN}-dev += "${PN}-compiler"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += " \
+ -DFLATBUFFERS_BUILD_TESTS=OFF \
+ -DFLATBUFFERS_BUILD_SHAREDLIB=ON \
+"
+EXTRA_OECMAKE:append:class-target = " -DFLATBUFFERS_FLATC_EXECUTABLE=${STAGING_BINDIR_NATIVE}/flatc"
+
+inherit cmake python3native
+
+FILES:${PN}-compiler = "${bindir}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc
new file mode 100644
index 0000000000..7533f7c758
--- /dev/null
+++ b/meta-oe/recipes-devtools/flatbuffers/flatbuffers.inc
@@ -0,0 +1,3 @@
+PV = "23.5.26"
+SRCREV = "0100f6a5779831fa7a651e4b67ef389a8752bd9b"
+SRC_URI = "git://github.com/google/flatbuffers.git;branch=master;protocol=https"
diff --git a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb b/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb
deleted file mode 100644
index a8df444858..0000000000
--- a/meta-oe/recipes-devtools/flatbuffers/flatbuffers_1.9.0.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Memory Efficient Serialization Library"
-HOMEPAGE = "https://github.com/google/flatbuffers"
-SECTION = "console/tools"
-LICENSE = "Apache-2.0"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler"
-
-RDEPENDS_${PN}-compiler = "${PN}"
-RDEPENDS_${PN}-dev += "${PN}-compiler"
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a873c5645c184d51e0f9b34e1d7cf559"
-
-SRCREV = "25a15950f5a24d7217689739ed8f6dac64912d62"
-
-SRC_URI = "git://github.com/google/flatbuffers.git \
- file://0001-correct-version-for-so-lib.patch \
- file://0001-flatbuffers-Move-EndianSwap-template-to-flatbuffers-.patch \
- file://0002-use-__builtin_bswap16-when-building-with-clang.patch \
- "
-
-# Make sure C++11 is used, required for example for GCC 4.9
-CXXFLAGS += "-std=c++11"
-BUILD_CXXFLAGS += "-std=c++11"
-
-EXTRA_OECMAKE += "\
- -DFLATBUFFERS_BUILD_TESTS=OFF \
- -DFLATBUFFERS_BUILD_SHAREDLIB=ON \
- -DPV=${PV} \
-"
-
-inherit cmake
-
-S = "${WORKDIR}/git"
-
-FILES_${PN}-compiler = "${bindir}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb b/meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb
new file mode 100644
index 0000000000..5d3c73fd9a
--- /dev/null
+++ b/meta-oe/recipes-devtools/flatbuffers/python3-flatbuffers.bb
@@ -0,0 +1,15 @@
+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;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+require flatbuffers.inc
+
+S = "${WORKDIR}/git/python"
+
+RDEPENDS:${PN} = "flatbuffers"
+
+inherit setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/geany/geany-plugins/0001-Use-pkg-config-to-find-gpgme.patch b/meta-oe/recipes-devtools/geany/geany-plugins/0001-Use-pkg-config-to-find-gpgme.patch
new file mode 100644
index 0000000000..9030f36d44
--- /dev/null
+++ b/meta-oe/recipes-devtools/geany/geany-plugins/0001-Use-pkg-config-to-find-gpgme.patch
@@ -0,0 +1,31 @@
+From 0c24f99ca4d4f64ea8584347ca6ae0d638d625a8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Mon, 18 Feb 2019 16:13:17 +0100
+Subject: [PATCH] Use pkg-config to find gpgme
+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>
+---
+ build/bundled/gpgme.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/bundled/gpgme.m4 b/build/bundled/gpgme.m4
+index 44bf43c..c9a8ae6 100644
+--- a/build/bundled/gpgme.m4
++++ b/build/bundled/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.20.1
+
diff --git a/meta-oe/recipes-devtools/geany/geany-plugins/0001-geany.m4-Do-not-tinker-with-pkg-config-paths.patch b/meta-oe/recipes-devtools/geany/geany-plugins/0001-geany.m4-Do-not-tinker-with-pkg-config-paths.patch
new file mode 100644
index 0000000000..cd417e0d7b
--- /dev/null
+++ b/meta-oe/recipes-devtools/geany/geany-plugins/0001-geany.m4-Do-not-tinker-with-pkg-config-paths.patch
@@ -0,0 +1,32 @@
+From b2187b45f61ce362a9d58d9081d66daddb4e577f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 20 Mar 2022 15:54:14 -0700
+Subject: [PATCH] geany.m4: Do not tinker with pkg-config paths
+
+OE sets up these paths correctly w.r.t. target sysroot
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ build/geany.m4 | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/build/geany.m4
++++ b/build/geany.m4
+@@ -32,7 +32,8 @@ AC_DEFUN([GP_CHECK_GEANY],
+ [
+ AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+
+- GP_GEANY_PKG_CONFIG_PATH_PUSH
++ dnl GP_GEANY_PKG_CONFIG_PATH_PUSH
++ AC_REQUIRE([_GP_GEANY_LIBDIR])
+
+ PKG_CHECK_MODULES([GEANY], [geany >= $1])
+ geanypluginsdir=$geany_libdir/geany
+@@ -40,5 +41,5 @@ AC_DEFUN([GP_CHECK_GEANY],
+ AC_SUBST([geanypluginsdir])
+ AC_SUBST([GEANY_VERSION])
+
+- GP_GEANY_PKG_CONFIG_PATH_POP
++ dnl GP_GEANY_PKG_CONFIG_PATH_POP
+ ])
diff --git a/meta-oe/recipes-devtools/geany/geany-plugins/0001-git-changebar-Adjust-structs-for-libgit2-1.4.x.patch b/meta-oe/recipes-devtools/geany/geany-plugins/0001-git-changebar-Adjust-structs-for-libgit2-1.4.x.patch
new file mode 100644
index 0000000000..fe2d9f54ba
--- /dev/null
+++ b/meta-oe/recipes-devtools/geany/geany-plugins/0001-git-changebar-Adjust-structs-for-libgit2-1.4.x.patch
@@ -0,0 +1,36 @@
+From 90c46235ad69a411d83a5e978492421e8e378934 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 18 Feb 2022 23:35:58 -0800
+Subject: [PATCH] git-changebar: Adjust structs for libgit2 1.4.x
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ git-changebar/src/gcb-plugin.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/git-changebar/src/gcb-plugin.c b/git-changebar/src/gcb-plugin.c
+index f8ce20c..4488b22 100644
+--- a/git-changebar/src/gcb-plugin.c
++++ b/git-changebar/src/gcb-plugin.c
+@@ -216,7 +216,7 @@ static int
+ gcb_git_buf_grow (git_buf *buf,
+ size_t target_size)
+ {
+- if (buf->asize == 0) {
++ if (buf->reserved == 0) {
+ if (target_size == 0) {
+ target_size = buf->size;
+ }
+@@ -234,7 +234,7 @@ buf_zero (git_buf *buf)
+ if (buf) {
+ buf->ptr = NULL;
+ buf->size = 0;
+- buf->asize = 0;
++ buf->reserved = 0;
+ }
+ }
+
+--
+2.35.1
+
diff --git a/meta-oe/recipes-devtools/geany/geany-plugins/0001-scope-Use-0-instead-of-NULL-for-gboolean.patch b/meta-oe/recipes-devtools/geany/geany-plugins/0001-scope-Use-0-instead-of-NULL-for-gboolean.patch
new file mode 100644
index 0000000000..bb03fa63de
--- /dev/null
+++ b/meta-oe/recipes-devtools/geany/geany-plugins/0001-scope-Use-0-instead-of-NULL-for-gboolean.patch
@@ -0,0 +1,34 @@
+From 9ee9388bc66e6cf68db96b2014dca2115f745dc9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Aug 2022 22:33:46 -0700
+Subject: [PATCH] scope: Use 0 instead of NULL for gboolean
+
+Fixes warnings with clang 15+
+
+scope/src/stack.c:168:11: error: incompatible pointer to integer conversion initializing 'gboolean' (aka 'int') with an expression of type 'void *' [-Wint-conversion]
+ gboolean entry = NULL;
+ ^ ~~~~
+1 error generated.
+
+Upstream-Status: Submitted [https://github.com/geany/geany-plugins/pull/1191]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ scope/src/stack.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/scope/src/stack.c b/scope/src/stack.c
+index b03909fe..041dd415 100644
+--- a/scope/src/stack.c
++++ b/scope/src/stack.c
+@@ -165,7 +165,7 @@ void on_stack_follow(GArray *nodes)
+ gboolean stack_entry(void)
+ {
+ GtkTreeIter iter;
+- gboolean entry = NULL;
++ gboolean entry = 0;
+
+ if (gtk_tree_selection_get_selected(selection, NULL, &iter))
+ {
+--
+2.37.3
+
diff --git a/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb b/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
deleted file mode 100644
index d8f2f894bb..0000000000
--- a/meta-oe/recipes-devtools/geany/geany-plugins_1.31.bb
+++ /dev/null
@@ -1,271 +0,0 @@
-DESCRIPTION = "A fast and lightweight IDE"
-HOMEPAGE = "http://plugins.geany.org/"
-
-LICENSE_DEFAULT = "GPLv2"
-LICENSE = "${LICENSE_DEFAULT} & BSD-2-Clause & GPLv3"
-
-python () {
- for plugin in d.getVar('PLUGINS').split():
- if 'LICENSE_%s' % plugin not in d:
- d.setVar('LICENSE_' + plugin, '${LICENSE_DEFAULT}')
-}
-
-DEPENDS = " \
- fribidi \
- geany \
- libxml2 \
- libsoup-2.4 \
- enchant \
- intltool-native \
- libassuan \
- gpgme \
- vte9 \
- libgit2 \
-"
-
-inherit distro_features_check autotools pkgconfig gtk-icon-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://plugins.geany.org/${PN}/${PN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "808f9048b77fd9704569ed2ba12a56e9"
-SRC_URI[sha256sum] = "76bd9e803db5a626b86669f08330cf95b8cc35057a1cdf65759bc00aef120e25"
-
-do_configure_prepend() {
- rm -f ${S}/build/cache/glib-gettext.m4
-}
-
-FILES_${PN} += "${datadir}/icons"
-FILES_${PN}-dev += "${libdir}/geany/*.la ${libdir}/${PN}/*/*.la"
-
-PLUGINS += "${PN}-addons"
-LIC_FILES_CHKSUM += "file://addons/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES_${PN}-addons = "${libdir}/geany/addons.so"
-RDEPENDS_${PN}-addons = "${PN}"
-
-PLUGINS += "${PN}-autoclose"
-LIC_FILES_CHKSUM += "file://autoclose/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES_${PN}-autoclose = "${libdir}/geany/autoclose.so"
-RDEPENDS_${PN}-autoclose = "${PN}"
-
-PLUGINS += "${PN}-automark"
-LIC_FILES_CHKSUM += "file://automark/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES_${PN}-automark = "${libdir}/geany/automark.so"
-RDEPENDS_${PN}-automark = "${PN}"
-
-PLUGINS += "${PN}-codenav"
-LIC_FILES_CHKSUM += "file://codenav/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES_${PN}-codenav = "${libdir}/geany/codenav.so"
-RDEPENDS_${PN}-codenav = "${PN}"
-
-PLUGINS += "${PN}-commander"
-LIC_FILES_CHKSUM += "file://commander/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE_${PN}-commander = "GPLv3"
-FILES_${PN}-commander = "${libdir}/geany/commander.so"
-RDEPENDS_${PN}-commander = "${PN}"
-
-PLUGINS += "${PN}-debugger"
-LIC_FILES_CHKSUM += "file://debugger/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES_${PN}-debugger = "${libdir}/geany/debugger.so ${datadir}/${PN}/debugger"
-RDEPENDS_${PN}-debugger = "${PN}"
-
-PLUGINS += "${PN}-defineformat"
-LIC_FILES_CHKSUM += "file://defineformat/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES_${PN}-defineformat = "${libdir}/geany/defineformat.so"
-RDEPENDS_${PN}-defineformat = "${PN}"
-
-# no gnome devhelp in some common layer
-EXTRA_OECONF += "--disable-devhelp"
-#PLUGINS += "${PN}-devhelp"
-#LIC_FILES_CHKSUM += "file://devhelp/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-#LICENSE_${PN}-devhelp = "GPLv3"
-#FILES_${PN}-devhelp = "${libdir}/geany/devhelp.so"
-#RDEPENDS_${PN}-devhelp = "${PN}"
-
-PLUGINS += "${PN}-geanyctags"
-LIC_FILES_CHKSUM += "file://geanyctags/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-geanyctags = "${libdir}/geany/geanyctags.so"
-RDEPENDS_${PN}-geanyctags = "${PN}"
-
-PLUGINS += "${PN}-geanydoc"
-LIC_FILES_CHKSUM += "file://geanydoc/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE_${PN}-geanydoc = "GPLv3"
-FILES_${PN}-geanydoc = "${libdir}/geany/geanydoc.so"
-RDEPENDS_${PN}-geanydoc = "${PN}"
-
-PLUGINS += "${PN}-geanyextrasel"
-LIC_FILES_CHKSUM += "file://geanyextrasel/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-geanyextrasel = "${libdir}/geany/geanyextrasel.so"
-RDEPENDS_${PN}-geanyextrasel = "${PN}"
-
-PLUGINS += "${PN}-geanyinsertnum"
-LIC_FILES_CHKSUM += "file://geanyinsertnum/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-geanyinsertnum = "${libdir}/geany/geanyinsertnum.so"
-RDEPENDS_${PN}-geanyinsertnum = "${PN}"
-
-PLUGINS += "${PN}-geanylatex"
-LIC_FILES_CHKSUM += "file://geanylatex/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-geanylatex = "${libdir}/geany/geanylatex.so"
-RDEPENDS_${PN}-geanylatex = "${PN}"
-
-PLUGINS += "${PN}-geanylipsum"
-LIC_FILES_CHKSUM += "file://lipsum/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES_${PN}-geanylipsum = "${libdir}/geany/lipsum.so"
-RDEPENDS_${PN}-geanylipsum = "${PN}"
-
-# no lua: max supported version is 5.2
-EXTRA_OECONF += "--disable-geanylua"
-#PLUGINS += "${PN}-geanylua"
-#LIC_FILES_CHKSUM += "file://geanylua/COPYING;md5=4325afd396febcb659c36b49533135d4"
-#FILES_${PN}-geanylua = "${libdir}/geany/geanylua.so ${libdir}/${PN}/geanylua/*.so"
-#RDEPENDS_${PN}-geanylua = "${PN}"
-
-PLUGINS += "${PN}-geanymacro"
-LIC_FILES_CHKSUM += "file://geanymacro/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-geanymacro = "${libdir}/geany/geanymacro.so"
-RDEPENDS_${PN}-geanymacro = "${PN}"
-
-PLUGINS += "${PN}-geanyminiscript"
-LIC_FILES_CHKSUM += "file://geanyminiscript/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES_${PN}-geanyminiscript = "${libdir}/geany/geanyminiscript.so"
-RDEPENDS_${PN}-geanyminiscript = "${PN}"
-
-PLUGINS += "${PN}-geanynumberedbookmarks"
-LIC_FILES_CHKSUM += "file://geanynumberedbookmarks/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-geanynumberedbookmarks = "${libdir}/geany/geanynumberedbookmarks.so"
-RDEPENDS_${PN}-geanynumberedbookmarks = "${PN}"
-
-PLUGINS += "${PN}-geanypg"
-LIC_FILES_CHKSUM += "file://geanypg/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-FILES_${PN}-geanypg = "${libdir}/geany/geanypg.so"
-RDEPENDS_${PN}-geanypg = "${PN}"
-
-PLUGINS += "${PN}-geanyprj"
-LIC_FILES_CHKSUM += "file://geanyprj/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE_${PN}-geanyprj = "GPLv3"
-FILES_${PN}-geanyprj = "${libdir}/geany/geanyprj.so"
-RDEPENDS_${PN}-geanyprj = "${PN}"
-
-# no gnome pygtk
-EXTRA_OECONF += "--disable-geanypy"
-#PLUGINS += "${PN}-geanypy"
-#LIC_FILES_CHKSUM += "file://geanypy/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-#FILES_${PN}-geanypy = "${libdir}/geany/geanypy.so"
-#RDEPENDS_${PN}-geanypy = "${PN}"
-
-PLUGINS += "${PN}-geanyvc"
-LIC_FILES_CHKSUM += "file://geanyvc/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-geanyvc = "${libdir}/geany/geanyvc.so"
-RDEPENDS_${PN}-geanyvc = "${PN}"
-
-PLUGINS += "${PN}-geniuspaste"
-LIC_FILES_CHKSUM += "file://geniuspaste/COPYING;md5=bfc203269f8862ebfc1198cdc809a95a"
-FILES_${PN}-geniuspaste = "${libdir}/geany/geniuspaste.so ${datadir}/${PN}/geniuspaste"
-RDEPENDS_${PN}-geniuspaste = "${PN}"
-
-PLUGINS += "${PN}-git-changebar"
-LIC_FILES_CHKSUM += "file://git-changebar/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-LICENSE_${PN}-git-changebar = "GPLv3"
-FILES_${PN}-git-changebar = "${libdir}/geany/git-changebar.so"
-RDEPENDS_${PN}-git-changebar = "${PN}"
-
-PLUGINS += "${PN}-keyrecord"
-LIC_FILES_CHKSUM += "file://keyrecord/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES_${PN}-keyrecord = "${libdir}/geany/keyrecord.so"
-RDEPENDS_${PN}-keyrecord = "${PN}"
-
-PLUGINS += "${PN}-lineoperations"
-LIC_FILES_CHKSUM += "file://lineoperations/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-lineoperations = "${libdir}/geany/lineoperations.so"
-RDEPENDS_${PN}-lineoperations = "${PN}"
-
-# no markdown - avoid floating dependencies
-EXTRA_OECONF += " --disable-peg-markdown"
-#PLUGINS += "${PN}-markdown"
-#LIC_FILES_CHKSUM += "file://markdown/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-#FILES_${PN}-markdown = "${libdir}/geany/markdown.so"
-#RDEPENDS_${PN}-markdown = "${PN}"
-
-PLUGINS += "${PN}-multiterm"
-LIC_FILES_CHKSUM += "file://multiterm/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-FILES_${PN}-multiterm = "${libdir}/geany/multiterm.so"
-RDEPENDS_${PN}-multiterm = "${PN}"
-
-PLUGINS += "${PN}-overview"
-LIC_FILES_CHKSUM += "file://overview/overview/overviewplugin.c;beginline=4;endline=20;md5=1aa33522916cdeb46cccac0c629da0d0"
-FILES_${PN}-overview = "${libdir}/geany/overview.so ${datadir}/${PN}/overview"
-RDEPENDS_${PN}-overview = "${PN}"
-
-PLUGINS += "${PN}-pairtaghighlighter"
-LICENSE_${PN}-pairtaghighlighter = "BSD-2-Clause"
-LIC_FILES_CHKSUM += "file://pairtaghighlighter/COPYING;md5=d6d927525a612b3a8dbebc4b2e9b47c1"
-FILES_${PN}-pairtaghighlighter = "${libdir}/geany/pairtaghighlighter.so"
-RDEPENDS_${PN}-pairtaghighlighter = "${PN}"
-
-PLUGINS += "${PN}-pohelper"
-LICENSE_${PN}-pohelper = "GPLv3"
-LIC_FILES_CHKSUM += "file://pohelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-FILES_${PN}-pohelper = "${libdir}/geany/pohelper.so"
-RDEPENDS_${PN}-pohelper = "${PN}"
-
-PLUGINS += "${PN}-pretty-printer"
-LIC_FILES_CHKSUM += "file://pretty-printer/src/PrettyPrinter.c;beginline=1;endline=17;md5=1665115c2fadb17c1b53cdb4e43b2440"
-FILES_${PN}-pretty-printer = "${libdir}/geany/pretty-printer.so"
-RDEPENDS_${PN}-pretty-printer = "${PN}"
-
-PLUGINS += "${PN}-projectorganizer"
-LIC_FILES_CHKSUM += "file://projectorganizer/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-projectorganizer = "${libdir}/geany/projectorganizer.so"
-RDEPENDS_${PN}-projectorganizer = "${PN}"
-
-PLUGINS += "${PN}-scope"
-LIC_FILES_CHKSUM += "file://scope/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-scope = "${libdir}/geany/scope.so"
-RDEPENDS_${PN}-scope = "${PN}"
-
-PLUGINS += "${PN}-sendmail"
-LIC_FILES_CHKSUM += "file://sendmail/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
-FILES_${PN}-sendmail = "${libdir}/geany/sendmail.so"
-RDEPENDS_${PN}-sendmail = "${PN}"
-
-PLUGINS += "${PN}-shiftcolumn"
-LIC_FILES_CHKSUM += "file://shiftcolumn/COPYING;md5=751419260aa954499f7abaabaa882bbe"
-FILES_${PN}-shiftcolumn = "${libdir}/geany/shiftcolumn.so"
-RDEPENDS_${PN}-shiftcolumn = "${PN}"
-
-PLUGINS += "${PN}-spellcheck"
-LIC_FILES_CHKSUM += "file://spellcheck/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES_${PN}-spellcheck = "${libdir}/geany/spellcheck.so"
-RDEPENDS_${PN}-spellcheck = "${PN}"
-
-PLUGINS += "${PN}-tableconvert"
-LIC_FILES_CHKSUM += "file://tableconvert/COPYING;md5=6753686878d090a1f3f9445661d3dfbc"
-FILES_${PN}-tableconvert = "${libdir}/geany/tableconvert.so"
-RDEPENDS_${PN}-tableconvert = "${PN}"
-
-PLUGINS += "${PN}-treebrowser"
-LIC_FILES_CHKSUM += "file://treebrowser/README;beginline=67;endline=67;md5=52f90857fd1a9672111e472dd056a0d8"
-FILES_${PN}-treebrowser = "${libdir}/geany/treebrowser.so"
-RDEPENDS_${PN}-treebrowser = "${PN}"
-
-PLUGINS += "${PN}-updatechecker"
-LIC_FILES_CHKSUM += "file://updatechecker/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES_${PN}-updatechecker = "${libdir}/geany/updatechecker.so"
-RDEPENDS_${PN}-updatechecker = "${PN}"
-
-# no webkit - lasts ages and is not properly detected
-EXTRA_OECONF += " --disable-webhelper"
-#PLUGINS += "${PN}-webhelper"
-#LIC_FILES_CHKSUM += "file://webhelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
-#LICENSE_${PN}-webhelper = "GPLv3"
-#FILES_${PN}-webhelper = "${libdir}/geany/webhelper.so"
-#RDEPENDS_${PN}-webhelper = "${PN}"
-
-PLUGINS += "${PN}-xmlsnippets"
-LIC_FILES_CHKSUM += "file://xmlsnippets/COPYING;md5=4325afd396febcb659c36b49533135d4"
-FILES_${PN}-xmlsnippets = "${libdir}/geany/xmlsnippets.so"
-RDEPENDS_${PN}-xmlsnippets = "${PN}"
-
-PACKAGES =+ "${PLUGINS}"
-RDEPENDS_${PN} = "${PLUGINS}"
-ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-oe/recipes-devtools/geany/geany-plugins_1.38.bb b/meta-oe/recipes-devtools/geany/geany-plugins_1.38.bb
new file mode 100644
index 0000000000..1ed2993bf0
--- /dev/null
+++ b/meta-oe/recipes-devtools/geany/geany-plugins_1.38.bb
@@ -0,0 +1,248 @@
+DESCRIPTION = "A fast and lightweight IDE"
+HOMEPAGE = "http://plugins.geany.org/"
+
+LICENSE_DEFAULT = "GPL-2.0-only"
+LICENSE = "${LICENSE_DEFAULT} & BSD-2-Clause & GPL-3.0-only"
+
+python () {
+ for plugin in d.getVar('PLUGINS').split():
+ if 'LICENSE:%s' % plugin not in d:
+ d.setVar('LICENSE:' + plugin, '${LICENSE_DEFAULT}')
+}
+
+DEPENDS = " \
+ vala-native \
+ fribidi \
+ geany \
+ libxml2 \
+ libsoup-2.4 \
+ enchant2 \
+ intltool-native \
+ libassuan \
+ gpgme \
+ vte \
+ libgit2 \
+"
+
+inherit features_check autotools pkgconfig gtk-icon-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = " \
+ https://plugins.geany.org/${BPN}/${BP}.tar.bz2 \
+ file://0001-Use-pkg-config-to-find-gpgme.patch \
+ file://0001-git-changebar-Adjust-structs-for-libgit2-1.4.x.patch \
+ file://0001-geany.m4-Do-not-tinker-with-pkg-config-paths.patch \
+ file://0001-scope-Use-0-instead-of-NULL-for-gboolean.patch \
+"
+SRC_URI[sha256sum] = "1c578a7ebb390aa8882f195acd3d8da3ceb73925d291b28dec90cd3e5fd20586"
+
+do_configure:prepend() {
+ rm -f ${S}/build/cache/glib-gettext.m4
+}
+
+FILES:${PN} += "${datadir}/icons"
+FILES:${PN}-dev += "${libdir}/geany/*.la ${libdir}/${BPN}/*/*.la"
+
+PLUGINS += "${PN}-addons"
+LIC_FILES_CHKSUM += "file://addons/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-addons = "${libdir}/geany/addons.so"
+
+PLUGINS += "${PN}-autoclose"
+LIC_FILES_CHKSUM += "file://autoclose/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-autoclose = "${libdir}/geany/autoclose.so"
+
+PLUGINS += "${PN}-automark"
+LIC_FILES_CHKSUM += "file://automark/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-automark = "${libdir}/geany/automark.so"
+
+PLUGINS += "${PN}-codenav"
+LIC_FILES_CHKSUM += "file://codenav/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-codenav = "${libdir}/geany/codenav.so"
+
+PLUGINS += "${PN}-commander"
+LIC_FILES_CHKSUM += "file://commander/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-commander = "GPL-3.0-only"
+FILES:${PN}-commander = "${libdir}/geany/commander.so"
+
+# | checking whether the GTK version in use is compatible with plugin Debugger... no
+EXTRA_OECONF += "--disable-debugger"
+#PLUGINS += "${PN}-debugger"
+#LIC_FILES_CHKSUM += "file://debugger/COPYING;md5=4325afd396febcb659c36b49533135d4"
+#FILES:${PN}-debugger = "${libdir}/geany/debugger.so ${datadir}/${PN}/debugger"
+
+PLUGINS += "${PN}-defineformat"
+LIC_FILES_CHKSUM += "file://defineformat/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-defineformat = "${libdir}/geany/defineformat.so"
+
+# no gnome devhelp in some common layer
+EXTRA_OECONF += "--disable-devhelp"
+#PLUGINS += "${PN}-devhelp"
+#LIC_FILES_CHKSUM += "file://devhelp/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+#LICENSE:${PN}-devhelp = "GPLv3"
+#FILES:${PN}-devhelp = "${libdir}/geany/devhelp.so"
+
+PLUGINS += "${PN}-geanyctags"
+LIC_FILES_CHKSUM += "file://geanyctags/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyctags = "${libdir}/geany/geanyctags.so"
+
+PLUGINS += "${PN}-geanydoc"
+LIC_FILES_CHKSUM += "file://geanydoc/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-geanydoc = "GPL-3.0-only"
+FILES:${PN}-geanydoc = "${libdir}/geany/geanydoc.so"
+
+PLUGINS += "${PN}-geanyextrasel"
+LIC_FILES_CHKSUM += "file://geanyextrasel/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyextrasel = "${libdir}/geany/geanyextrasel.so"
+
+PLUGINS += "${PN}-geanyinsertnum"
+LIC_FILES_CHKSUM += "file://geanyinsertnum/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyinsertnum = "${libdir}/geany/geanyinsertnum.so"
+
+# no lua: max supported version is 5.2
+EXTRA_OECONF += "--disable-geanylua"
+#PLUGINS += "${PN}-geanylua"
+#LIC_FILES_CHKSUM += "file://geanylua/COPYING;md5=4325afd396febcb659c36b49533135d4"
+#FILES:${PN}-geanylua = "${libdir}/geany/geanylua.so ${libdir}/${PN}/geanylua/*.so"
+
+PLUGINS += "${PN}-geanymacro"
+LIC_FILES_CHKSUM += "file://geanymacro/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanymacro = "${libdir}/geany/geanymacro.so"
+
+PLUGINS += "${PN}-geanyminiscript"
+LIC_FILES_CHKSUM += "file://geanyminiscript/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-geanyminiscript = "${libdir}/geany/geanyminiscript.so"
+
+PLUGINS += "${PN}-geanynumberedbookmarks"
+LIC_FILES_CHKSUM += "file://geanynumberedbookmarks/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanynumberedbookmarks = "${libdir}/geany/geanynumberedbookmarks.so"
+
+PLUGINS += "${PN}-geanypg"
+LIC_FILES_CHKSUM += "file://geanypg/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+FILES:${PN}-geanypg = "${libdir}/geany/geanypg.so"
+
+PLUGINS += "${PN}-geanyprj"
+LIC_FILES_CHKSUM += "file://geanyprj/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-geanyprj = "GPL-3.0-only"
+FILES:${PN}-geanyprj = "${libdir}/geany/geanyprj.so"
+
+#PLUGINS += "${PN}-geanypy"
+#LIC_FILES_CHKSUM += "file://geanypy/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+#FILES:${PN}-geanypy = "${libdir}/geany/geanypy.so"
+
+PLUGINS += "${PN}-geanyvc"
+LIC_FILES_CHKSUM += "file://geanyvc/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-geanyvc = "${libdir}/geany/geanyvc.so"
+
+PLUGINS += "${PN}-geniuspaste"
+LIC_FILES_CHKSUM += "file://geniuspaste/COPYING;md5=bfc203269f8862ebfc1198cdc809a95a"
+FILES:${PN}-geniuspaste = "${libdir}/geany/geniuspaste.so ${datadir}/${PN}/geniuspaste"
+
+PLUGINS += "${PN}-git-changebar"
+LIC_FILES_CHKSUM += "file://git-changebar/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+LICENSE:${PN}-git-changebar = "GPL-3.0-only"
+FILES:${PN}-git-changebar = "${datadir}/${BPN}/git-changebar ${libdir}/geany/git-changebar.so"
+
+PLUGINS += "${PN}-keyrecord"
+LIC_FILES_CHKSUM += "file://keyrecord/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-keyrecord = "${libdir}/geany/keyrecord.so"
+
+PLUGINS += "${PN}-latex"
+LIC_FILES_CHKSUM += "file://latex/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-latex = "${libdir}/geany/latex.so"
+
+PLUGINS += "${PN}-lineoperations"
+LIC_FILES_CHKSUM += "file://lineoperations/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-lineoperations = "${libdir}/geany/lineoperations.so"
+
+PLUGINS += "${PN}-lipsum"
+LIC_FILES_CHKSUM += "file://lipsum/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-lipsum = "${libdir}/geany/lipsum.so"
+
+# no markdown - avoid floating dependencies
+EXTRA_OECONF += "--disable-peg-markdown"
+#PLUGINS += "${PN}-markdown"
+#LIC_FILES_CHKSUM += "file://markdown/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+#FILES:${PN}-markdown = "${libdir}/geany/markdown.so"
+
+# | checking whether the GTK version in use is compatible with plugin multiterm... no
+EXTRA_OECONF += "--disable-multiterm"
+#PLUGINS += "${PN}-multiterm"
+#LIC_FILES_CHKSUM += "file://multiterm/COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+#FILES:${PN}-multiterm = "${libdir}/geany/multiterm.so"
+
+PLUGINS += "${PN}-overview"
+LIC_FILES_CHKSUM += "file://overview/overview/overviewplugin.c;beginline=4;endline=20;md5=1aa33522916cdeb46cccac0c629da0d0"
+FILES:${PN}-overview = "${libdir}/geany/overview.so ${datadir}/${PN}/overview"
+
+PLUGINS += "${PN}-pairtaghighlighter"
+LICENSE:${PN}-pairtaghighlighter = "BSD-2-Clause"
+LIC_FILES_CHKSUM += "file://pairtaghighlighter/COPYING;md5=d6d927525a612b3a8dbebc4b2e9b47c1"
+FILES:${PN}-pairtaghighlighter = "${libdir}/geany/pairtaghighlighter.so"
+
+PLUGINS += "${PN}-pohelper"
+LICENSE:${PN}-pohelper = "GPL-3.0-only"
+LIC_FILES_CHKSUM += "file://pohelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+FILES:${PN}-pohelper = "${datadir}/${BPN}/pohelper ${libdir}/geany/pohelper.so"
+
+PLUGINS += "${PN}-pretty-printer"
+LIC_FILES_CHKSUM += "file://pretty-printer/src/PrettyPrinter.c;beginline=1;endline=17;md5=1665115c2fadb17c1b53cdb4e43b2440"
+FILES:${PN}-pretty-printer = "${libdir}/geany/pretty-printer.so"
+
+PLUGINS += "${PN}-projectorganizer"
+LIC_FILES_CHKSUM += "file://projectorganizer/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-projectorganizer = "${libdir}/geany/projectorganizer.so"
+
+PLUGINS += "${PN}-scope"
+LIC_FILES_CHKSUM += "file://scope/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-scope = "${datadir}/${BPN}/scope ${libdir}/geany/scope.so"
+
+PLUGINS += "${PN}-sendmail"
+LIC_FILES_CHKSUM += "file://sendmail/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-sendmail = "${libdir}/geany/sendmail.so"
+
+PLUGINS += "${PN}-shiftcolumn"
+LIC_FILES_CHKSUM += "file://shiftcolumn/COPYING;md5=751419260aa954499f7abaabaa882bbe"
+FILES:${PN}-shiftcolumn = "${libdir}/geany/shiftcolumn.so"
+
+PLUGINS += "${PN}-spellcheck"
+LIC_FILES_CHKSUM += "file://spellcheck/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-spellcheck = "${libdir}/geany/spellcheck.so"
+
+PLUGINS += "${PN}-tableconvert"
+LIC_FILES_CHKSUM += "file://tableconvert/COPYING;md5=6753686878d090a1f3f9445661d3dfbc"
+FILES:${PN}-tableconvert = "${libdir}/geany/tableconvert.so"
+
+PLUGINS += "${PN}-treebrowser"
+LIC_FILES_CHKSUM += "file://treebrowser/README;beginline=67;endline=67;md5=1f17f0f2abb88e0fa0f1b342112d871c"
+FILES:${PN}-treebrowser = "${libdir}/geany/treebrowser.so"
+
+PLUGINS += "${PN}-updatechecker"
+LIC_FILES_CHKSUM += "file://updatechecker/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-updatechecker = "${libdir}/geany/updatechecker.so"
+
+PLUGINS += "${PN}-vimode"
+LIC_FILES_CHKSUM += "file://vimode/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-vimode = "${libdir}/geany/vimode.so"
+
+# no webkit - lasts ages and is not properly detected
+EXTRA_OECONF += " --disable-webhelper"
+#PLUGINS += "${PN}-webhelper"
+#LIC_FILES_CHKSUM += "file://webhelper/COPYING;md5=d32239bcb673463ab874e80d47fae504"
+#LICENSE:${PN}-webhelper = "GPLv3"
+#FILES:${PN}-webhelper = "${libdir}/geany/webhelper.so"
+
+PLUGINS += "${PN}-workbench"
+LIC_FILES_CHKSUM += "file://workbench/COPYING;md5=c107cf754550e65755c42985a5d4e9c9"
+FILES:${PN}-workbench = "${libdir}/geany/workbench.so"
+
+PLUGINS += "${PN}-xmlsnippets"
+LIC_FILES_CHKSUM += "file://xmlsnippets/COPYING;md5=4325afd396febcb659c36b49533135d4"
+FILES:${PN}-xmlsnippets = "${libdir}/geany/xmlsnippets.so"
+
+PACKAGES =+ "${PN}-common ${PLUGINS}"
+FILES:${PN}-common = "${libdir}/libgeanypluginutils${SOLIBS}"
+
+# geany-plugins is meta package for all plugins
+RDEPENDS:${PN} = "${PLUGINS}"
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-oe/recipes-devtools/geany/geany/0001-configure-Upgrade-to-a-modern-Gettext.patch b/meta-oe/recipes-devtools/geany/geany/0001-configure-Upgrade-to-a-modern-Gettext.patch
new file mode 100644
index 0000000000..b966847195
--- /dev/null
+++ b/meta-oe/recipes-devtools/geany/geany/0001-configure-Upgrade-to-a-modern-Gettext.patch
@@ -0,0 +1,22 @@
+From 51e145b43e66134aa4b33c9af0319331ec8a5bce Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 5 Feb 2021 23:15:45 -0800
+Subject: [PATCH] configure: Use AC_PROG_INTLTOOL
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -8,7 +8,7 @@ AC_CONFIG_AUX_DIR([build-aux])
+ AC_CONFIG_MACRO_DIR([m4])
+ AM_INIT_AUTOMAKE([1.11 -Wall parallel-tests subdir-objects])
+ AC_CONFIG_HEADERS([config.h])
+-
++AC_PROG_INTLTOOL
+ m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
+
+ GEANY_PREFIX
diff --git a/meta-oe/recipes-devtools/geany/geany_1.31.bb b/meta-oe/recipes-devtools/geany/geany_1.31.bb
deleted file mode 100644
index bb9d8bc298..0000000000
--- a/meta-oe/recipes-devtools/geany/geany_1.31.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "A fast and lightweight IDE"
-HOMEPAGE = "http://www.geany.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5"
-
-DEPENDS = "gtk+ libxml-parser-perl-native python3-docutils-native intltool-native"
-
-inherit distro_features_check autotools pkgconfig perlnative pythonnative gettext
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://download.geany.org/${BP}.tar.bz2"
-SRC_URI[md5sum] = "386000be6b26972c6a699939c37cda34"
-SRC_URI[sha256sum] = "30fdb906bb76c4251a8bcf83ee267db28c26ef6ab867668a782cec1164a3aba5"
-
-FILES_${PN} += "${datadir}/icons"
-
-EXTRA_OECONF = "--disable-html-docs"
diff --git a/meta-oe/recipes-devtools/geany/geany_1.38.bb b/meta-oe/recipes-devtools/geany/geany_1.38.bb
new file mode 100644
index 0000000000..d75e3b57fb
--- /dev/null
+++ b/meta-oe/recipes-devtools/geany/geany_1.38.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A fast and lightweight IDE"
+HOMEPAGE = "http://www.geany.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bd7b2c994af21d318bd2cd3b3f80c2d5"
+
+DEPENDS = "gtk+3 libxml-parser-perl-native python3-docutils-native intltool-native"
+
+inherit features_check autotools pkgconfig perlnative gettext mime-xdg
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://download.geany.org/${BP}.tar.bz2 \
+ file://0001-configure-Upgrade-to-a-modern-Gettext.patch \
+ "
+SRC_URI[sha256sum] = "abff176e4d48bea35ee53037c49c82f90b6d4c23e69aed6e4a5ca8ccd3aad546"
+
+FILES:${PN} += "${datadir}/icons"
+
+EXTRA_OECONF = "--disable-html-docs"
+
+RRECOMMENDS:${PN} += "source-code-pro-fonts"
diff --git a/meta-oe/recipes-devtools/giflib/giflib_5.1.4.bb b/meta-oe/recipes-devtools/giflib/giflib_5.1.4.bb
deleted file mode 100644
index 21fa352cdc..0000000000
--- a/meta-oe/recipes-devtools/giflib/giflib_5.1.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "shared library for GIF images"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ae11c61b04b2917be39b11f78d71519a"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/${BP}.tar.bz2"
-
-inherit autotools
-
-PACKAGES += "${PN}-utils"
-FILES_${PN} = "${libdir}/libgif.so.*"
-FILES_${PN}-utils = "${bindir}"
-
-BBCLASSEXTEND = "native"
-
-RDEPENDS_${PN}-utils = "perl"
-
-SRC_URI[md5sum] = "2c171ced93c0e83bb09e6ccad8e3ba2b"
-SRC_URI[sha256sum] = "df27ec3ff24671f80b29e6ab1c4971059c14ac3db95406884fc26574631ba8d5"
diff --git a/meta-oe/recipes-devtools/giflib/giflib_5.2.1.bb b/meta-oe/recipes-devtools/giflib/giflib_5.2.1.bb
new file mode 100644
index 0000000000..79afe9a70f
--- /dev/null
+++ b/meta-oe/recipes-devtools/giflib/giflib_5.2.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "shared library for GIF images"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ae11c61b04b2917be39b11f78d71519a"
+
+CVE_PRODUCT = "giflib_project:giflib"
+
+DEPENDS = "xmlto-native"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/giflib/${BP}.tar.gz"
+SRC_URI[sha256sum] = "31da5562f44c5f15d63340a09a4fd62b48c45620cd302f77a6d9acf0077879bd"
+
+do_install() {
+ # using autotools's default will end up in /usr/local
+ oe_runmake DESTDIR=${D} PREFIX=${prefix} LIBDIR=${libdir} install
+}
+
+PACKAGES += "${PN}-utils"
+FILES:${PN} = "${libdir}/libgif.so.*"
+FILES:${PN}-utils = "${bindir}"
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN}-utils = "perl"
diff --git a/meta-oe/recipes-devtools/glade/glade_3.20.2.bb b/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
deleted file mode 100644
index 95e1737c51..0000000000
--- a/meta-oe/recipes-devtools/glade/glade_3.20.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Glade - A User Interface Designer"
-HOMEPAGE = "http://www.gnu.org/software/gnash"
-LICENSE = "GPLv2 & LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
- file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
- file://COPYING.LGPL;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "gtk+ gtk+3 glib-2.0 libxml2 intltool-native \
- gnome-common-native \
-"
-
-
-inherit distro_features_check autotools pkgconfig gnomebase gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/glade/3.20/glade-${PV}.tar.xz \
- file://remove-yelp-help-rules-var.patch \
- "
-SRC_URI[md5sum] = "d3dd9ba33c7d7c854ab207e1ba844dda"
-SRC_URI[sha256sum] = "07d1545570951aeded20e9fdc6d3d8a56aeefe2538734568c5335be336c6abed"
-
-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"
-
diff --git a/meta-oe/recipes-devtools/glade/glade_3.22.2.bb b/meta-oe/recipes-devtools/glade/glade_3.22.2.bb
new file mode 100644
index 0000000000..28b1279390
--- /dev/null
+++ b/meta-oe/recipes-devtools/glade/glade_3.22.2.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Glade - A User Interface Designer"
+HOMEPAGE = "http://www.gnu.org/software/gnash"
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=aabe87591cb8ae0f3c68be6977bb5522 \
+ file://COPYING.GPL;md5=9ac2e7cff1ddaf48b6eab6028f23ef88 \
+ 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
+
+# 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 = "http://ftp.gnome.org/pub/GNOME/sources/glade/3.22/glade-${PV}.tar.xz \
+ file://remove-yelp-help-rules-var.patch \
+ "
+SRC_URI[md5sum] = "c074fa378c8f1ad80d20133c4ae6f42d"
+SRC_URI[sha256sum] = "edefa6eb24b4d15bd52589121dc109bc08c286157c41288deb74dd9cc3f26a21"
+
+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"
+
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
new file mode 100644
index 0000000000..b245ad8657
--- /dev/null
+++ b/meta-oe/recipes-devtools/grpc/grpc/0001-Revert-Changed-GRPCPP_ABSEIL_SYNC-to-GPR_ABSEIL_SYNC.patch
@@ -0,0 +1,62 @@
+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>
+
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..c2afd4a92e
--- /dev/null
+++ b/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-Link-with-libatomic-on-rv32-rv64.patch
@@ -0,0 +1,32 @@
+From 592a4aaba20818bcff9a1448c34b09aff9e0d2e9 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
+
+Fixes
+riscv64-yoe-linux-musl/12.0.1/ld: libgrpc.so.23.0.0: undefined reference to `__atomic_exchange_1'
+| collect2: error: ld returned 1 exit status
+
+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
+--- 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)
+ 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
+
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
new file mode 100644
index 0000000000..679bd38829
--- /dev/null
+++ b/meta-oe/recipes-devtools/grpc/grpc/0001-cmake-add-separate-export-for-plugin-targets.patch
@@ -0,0 +1,93 @@
+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.50.1.bb b/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb
new file mode 100644
index 0000000000..958992e1e3
--- /dev/null
+++ b/meta-oe/recipes-devtools/grpc/grpc_1.50.1.bb
@@ -0,0 +1,69 @@
+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 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 = "90ccf24d22b6fc909a1021ebd89fd8c838467d26"
+BRANCH = "v1.50.x"
+SRC_URI = "gitsm://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 \
+ -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.5.bb b/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.20.5.bb
new file mode 100644
index 0000000000..6b7775c1c0
--- /dev/null
+++ b/meta-oe/recipes-devtools/gst-editing-services/gst-editing-services_1.20.5.bb
@@ -0,0 +1,26 @@
+# 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] = "363f2b13675877b926b4be5259dbbeea8cc976805b40c871fc254bb8f382017d"
+
+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/guider/guider_3.9.8.bb b/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
new file mode 100644
index 0000000000..30d17c84b3
--- /dev/null
+++ b/meta-oe/recipes-devtools/guider/guider_3.9.8.bb
@@ -0,0 +1,19 @@
+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}"
+
+SRC_URI = "git://github.com/iipeace/${BPN};branch=master;protocol=https"
+SRCREV = "a502cd93b13235b7539557a91328de00b7c51bc3"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} = "python3 python3-core \
+ python3-ctypes python3-shell python3-json"
diff --git a/meta-oe/recipes-devtools/heaptrack/heaptrack/0001-libheaptrack-Replace-__pid_t-with-pid_t.patch b/meta-oe/recipes-devtools/heaptrack/heaptrack/0001-libheaptrack-Replace-__pid_t-with-pid_t.patch
new file mode 100644
index 0000000000..9681086a52
--- /dev/null
+++ b/meta-oe/recipes-devtools/heaptrack/heaptrack/0001-libheaptrack-Replace-__pid_t-with-pid_t.patch
@@ -0,0 +1,26 @@
+From 18671cd6028f996c138c6eb4282caf313f3fc605 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Nov 2020 15:25:18 -0800
+Subject: [PATCH] libheaptrack: Replace __pid_t with pid_t
+
+__pid_t is for internal libc use
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/track/libheaptrack.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/track/libheaptrack.cpp b/src/track/libheaptrack.cpp
+index e138bce..4120ecd 100644
+--- a/src/track/libheaptrack.cpp
++++ b/src/track/libheaptrack.cpp
+@@ -79,7 +79,7 @@ chrono::milliseconds elapsedTime()
+ return chrono::duration_cast<chrono::milliseconds>(clock::now() - startTime());
+ }
+
+-__pid_t gettid()
++pid_t gettid()
+ {
+ return syscall(SYS_gettid);
+ }
diff --git a/meta-oe/recipes-devtools/heaptrack/heaptrack/0001-track-Check-for-unw_set_caching_policy-before-using.patch b/meta-oe/recipes-devtools/heaptrack/heaptrack/0001-track-Check-for-unw_set_caching_policy-before-using.patch
new file mode 100644
index 0000000000..a6547eded8
--- /dev/null
+++ b/meta-oe/recipes-devtools/heaptrack/heaptrack/0001-track-Check-for-unw_set_caching_policy-before-using.patch
@@ -0,0 +1,41 @@
+From bcfc4c8d7dc70bd81367c183a68cc9ee02ab4744 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 28 May 2021 17:52:57 -0700
+Subject: [PATCH] track: Check for unw_set_caching_policy before using
+
+llvm libunwind does not implement unw_cache_* functions yet
+Include inttypes.h got PRI* macros
+
+Upstream-Status: Submitted [https://github.com/KDE/heaptrack/pull/33]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/track/trace_libunwind.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/track/trace_libunwind.cpp b/src/track/trace_libunwind.cpp
+index c76337c..96b2176 100644
+--- a/src/track/trace_libunwind.cpp
++++ b/src/track/trace_libunwind.cpp
+@@ -26,6 +26,7 @@
+
+ #define UNW_LOCAL_ONLY
+ #include <libunwind.h>
++#include <inttypes.h>
+
+ #include <stdio.h>
+
+@@ -60,9 +61,11 @@ void Trace::print()
+ void Trace::setup()
+ {
+ // configure libunwind for better speed
++#if UNW_CACHE_PER_THREAD
+ if (unw_set_caching_policy(unw_local_addr_space, UNW_CACHE_PER_THREAD)) {
+ fprintf(stderr, "WARNING: Failed to enable per-thread libunwind caching.\n");
+ }
++#endif
+ #if LIBUNWIND_HAS_UNW_SET_CACHE_SIZE
+ if (unw_set_cache_size(unw_local_addr_space, 1024, 0)) {
+ fprintf(stderr, "WARNING: Failed to set libunwind cache size.\n");
+--
+2.31.1
+
diff --git a/meta-oe/recipes-devtools/heaptrack/heaptrack/0002-heaptrack_inject-Include-dlfcn.h-for-dlopen-dlclose.patch b/meta-oe/recipes-devtools/heaptrack/heaptrack/0002-heaptrack_inject-Include-dlfcn.h-for-dlopen-dlclose.patch
new file mode 100644
index 0000000000..5fa802cb38
--- /dev/null
+++ b/meta-oe/recipes-devtools/heaptrack/heaptrack/0002-heaptrack_inject-Include-dlfcn.h-for-dlopen-dlclose.patch
@@ -0,0 +1,38 @@
+From 8ebcf5f2dd27dbeb6c81e9c40a5d17916cb243e6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Nov 2020 15:26:31 -0800
+Subject: [PATCH] heaptrack_inject: Include dlfcn.h for dlopen/dlclose
+
+Do not use __WORDSIZE which is for libc internal use
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/track/heaptrack_inject.cpp | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/track/heaptrack_inject.cpp b/src/track/heaptrack_inject.cpp
+index 325d87e..fb1c154 100644
+--- a/src/track/heaptrack_inject.cpp
++++ b/src/track/heaptrack_inject.cpp
+@@ -28,6 +28,7 @@
+ #include <link.h>
+ #include <malloc.h>
+ #include <unistd.h>
++#include <dlfcn.h>
+
+ #include <sys/mman.h>
+
+@@ -39,9 +40,10 @@
+ * @brief Experimental support for symbol overloading after runtime injection.
+ */
+
+-#if __WORDSIZE == 64
++#include <limits.h>
++#if ULONG_MAX == 0xffffffffffffffff
+ #define ELF_R_SYM(i) ELF64_R_SYM(i)
+-#elif __WORDSIZE == 32
++#elif ULONG_MAX == 0xffffffff
+ #define ELF_R_SYM(i) ELF32_R_SYM(i)
+ #else
+ #error unsupported word size
diff --git a/meta-oe/recipes-devtools/heaptrack/heaptrack/0003-heaptrack_preload-Make-noexcept-attribute-conditiona.patch b/meta-oe/recipes-devtools/heaptrack/heaptrack/0003-heaptrack_preload-Make-noexcept-attribute-conditiona.patch
new file mode 100644
index 0000000000..c3c852e39e
--- /dev/null
+++ b/meta-oe/recipes-devtools/heaptrack/heaptrack/0003-heaptrack_preload-Make-noexcept-attribute-conditiona.patch
@@ -0,0 +1,118 @@
+From b8435c6523d9377f04d5e21629f3dc68b8865016 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Nov 2020 15:31:45 -0800
+Subject: [PATCH] heaptrack_preload: Make noexcept attribute conditional
+
+musl does not define these functions with noexcept and hence compiler
+complains about them
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/track/heaptrack_preload.cpp | 26 ++++++++++++++++----------
+ 1 file changed, 16 insertions(+), 10 deletions(-)
+
+diff --git a/src/track/heaptrack_preload.cpp b/src/track/heaptrack_preload.cpp
+index 63110ce..ee85331 100644
+--- a/src/track/heaptrack_preload.cpp
++++ b/src/track/heaptrack_preload.cpp
+@@ -171,11 +171,17 @@ void init()
+ }
+ }
+
++#ifdef __GLIBC__
++#define NOEXECPT noexcept
++#else
++#define NOEXECPT
++#endif
++
+ extern "C" {
+
+ /// TODO: memalign, pvalloc, ...?
+
+-void* malloc(size_t size) noexcept
++void* malloc(size_t size) NOEXECPT
+ {
+ if (!hooks::malloc) {
+ hooks::init();
+@@ -186,7 +192,7 @@ void* malloc(size_t size) noexcept
+ return ptr;
+ }
+
+-void free(void* ptr) noexcept
++void free(void* ptr) NOEXECPT
+ {
+ if (!hooks::free) {
+ hooks::init();
+@@ -204,7 +210,7 @@ void free(void* ptr) noexcept
+ hooks::free(ptr);
+ }
+
+-void* realloc(void* ptr, size_t size) noexcept
++void* realloc(void* ptr, size_t size) NOEXECPT
+ {
+ if (!hooks::realloc) {
+ hooks::init();
+@@ -219,7 +225,7 @@ void* realloc(void* ptr, size_t size) noexcept
+ return ret;
+ }
+
+-void* calloc(size_t num, size_t size) noexcept
++void* calloc(size_t num, size_t size) NOEXECPT
+ {
+ if (!hooks::calloc) {
+ hooks::init();
+@@ -235,7 +241,7 @@ void* calloc(size_t num, size_t size) noexcept
+ }
+
+ #if HAVE_CFREE
+-void cfree(void* ptr) noexcept
++void cfree(void* ptr) NOEXECPT
+ {
+ if (!hooks::cfree) {
+ hooks::init();
+@@ -252,7 +258,7 @@ void cfree(void* ptr) noexcept
+ }
+ #endif
+
+-int posix_memalign(void** memptr, size_t alignment, size_t size) noexcept
++int posix_memalign(void** memptr, size_t alignment, size_t size) NOEXECPT
+ {
+ if (!hooks::posix_memalign) {
+ hooks::init();
+@@ -268,7 +274,7 @@ int posix_memalign(void** memptr, size_t alignment, size_t size) noexcept
+ }
+
+ #if HAVE_ALIGNED_ALLOC
+-void* aligned_alloc(size_t alignment, size_t size) noexcept
++void* aligned_alloc(size_t alignment, size_t size) NOEXECPT
+ {
+ if (!hooks::aligned_alloc) {
+ hooks::init();
+@@ -285,7 +291,7 @@ void* aligned_alloc(size_t alignment, size_t size) noexcept
+ #endif
+
+ #if HAVE_VALLOC
+-void* valloc(size_t size) noexcept
++void* valloc(size_t size) NOEXECPT
+ {
+ if (!hooks::valloc) {
+ hooks::init();
+@@ -301,7 +307,7 @@ void* valloc(size_t size) noexcept
+ }
+ #endif
+
+-void* dlopen(const char* filename, int flag) noexcept
++void* dlopen(const char* filename, int flag) NOEXECPT
+ {
+ if (!hooks::dlopen) {
+ hooks::init();
+@@ -316,7 +322,7 @@ void* dlopen(const char* filename, int flag) noexcept
+ return ret;
+ }
+
+-int dlclose(void* handle) noexcept
++int dlclose(void* handle) NOEXECPT
+ {
+ if (!hooks::dlclose) {
+ hooks::init();
diff --git a/meta-oe/recipes-devtools/heaptrack/heaptrack/0004-backtrace-Always-include-stdint.h.patch b/meta-oe/recipes-devtools/heaptrack/heaptrack/0004-backtrace-Always-include-stdint.h.patch
new file mode 100644
index 0000000000..3db03cf85d
--- /dev/null
+++ b/meta-oe/recipes-devtools/heaptrack/heaptrack/0004-backtrace-Always-include-stdint.h.patch
@@ -0,0 +1,42 @@
+From 200f71ea8c0756594ac7e079ccc686d9a20cea5c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Nov 2020 15:32:58 -0800
+Subject: [PATCH] backtrace: Always include stdint.h
+
+in OE we will always have system headers which supports C99/stdint.h
+
+Upstream-Status: Inappropriate [Unless upstream drops legacy]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ 3rdparty/libbacktrace/backtrace.h | 16 ----------------
+ 1 file changed, 16 deletions(-)
+
+diff --git a/3rdparty/libbacktrace/backtrace.h b/3rdparty/libbacktrace/backtrace.h
+index 14863cf..d0ac38f 100644
+--- a/3rdparty/libbacktrace/backtrace.h
++++ b/3rdparty/libbacktrace/backtrace.h
+@@ -36,24 +36,8 @@ POSSIBILITY OF SUCH DAMAGE. */
+ #include <stddef.h>
+ #include <stdio.h>
+
+-/* We want to get a definition for uintptr_t, but we still care about
+- systems that don't have <stdint.h>. */
+-#if defined(__GLIBC__) && __GLIBC__ >= 2
+-
+-#include <stdint.h>
+-
+-#elif defined(HAVE_STDINT_H)
+-
+ #include <stdint.h>
+
+-#else
+-
+-/* Systems that don't have <stdint.h> must provide gstdint.h, e.g.,
+- from GCC_HEADER_STDINT in configure.ac. */
+-#include "gstdint.h"
+-
+-#endif
+-
+ #ifdef __cplusplus
+ extern "C" {
+ #endif
diff --git a/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb b/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
new file mode 100644
index 0000000000..29937e26d0
--- /dev/null
+++ b/meta-oe/recipes-devtools/heaptrack/heaptrack_1.2.0.bb
@@ -0,0 +1,32 @@
+SUMMARY = "Heap memory profiler for Linux"
+DESCRIPTION = "Heaptrack traces all memory allocations and annotates these \
+events with stack traces. Dedicated analysis tools then allow you to interpret \
+the heap memory profile to find hotspots to reduce memory, leaks, allocation \
+hotspots and temporary allocations"
+HOMEPAGE = "https://phabricator.kde.org/source/heaptrack/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "zlib boost libunwind elfutils"
+
+SRC_URI = "git://github.com/KDE/heaptrack.git;protocol=https;branch=master \
+ file://0001-libheaptrack-Replace-__pid_t-with-pid_t.patch \
+ file://0002-heaptrack_inject-Include-dlfcn.h-for-dlopen-dlclose.patch \
+ file://0003-heaptrack_preload-Make-noexcept-attribute-conditiona.patch \
+ file://0004-backtrace-Always-include-stdint.h.patch \
+ file://0001-track-Check-for-unw_set_caching_policy-before-using.patch \
+ "
+
+SRCREV = "bc9e3744bcc47de978673d1e382f4125a1ab5fa8"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DHEAPTRACK_BUILD_GUI=OFF"
+
+# libunwind is not yet ported to RISCV
+COMPATIBLE_HOST:riscv32 = "null"
+COMPATIBLE_HOST:riscv64 = "null"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb b/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb
index 9768a6e716..8e7b0ba5a0 100644
--- a/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb
+++ b/meta-oe/recipes-devtools/icon-slicer/icon-slicer_0.3.bb
@@ -1,4 +1,4 @@
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "gdk-pixbuf popt"
diff --git a/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch b/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
deleted file mode 100644
index 5b9afd9616..0000000000
--- a/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-Fix-printd-formatting-strings.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 86b4d398dbb95e2437b70eba3b30e995ec9be505 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 Aug 2017 20:47:50 -0700
-Subject: [PATCH] Fix printd formatting strings
-
-Fixes
-error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/ipfilter.c | 2 +-
- src/othptab.c | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/ipfilter.c b/src/ipfilter.c
-index eb17ec7..8c76e4c 100644
---- a/src/ipfilter.c
-+++ b/src/ipfilter.c
-@@ -146,7 +146,7 @@ void gethostparams(struct hostparams *data, char *init_saddr, char *init_smask,
- snprintf(msgstr, 60,
- "Invalid protocol input at or near token \"%s\"",
- bptr);
-- tui_error(ANYKEY_MSG, msgstr);
-+ tui_error(ANYKEY_MSG, "%s", msgstr);
- doagain = 1;
- } else
- doagain = 0;
-diff --git a/src/othptab.c b/src/othptab.c
-index 142c9c2..fe395c2 100644
---- a/src/othptab.c
-+++ b/src/othptab.c
-@@ -410,7 +410,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
- break;
- }
-
-- sprintf(scratchpad, rarp_mac_addr);
-+ sprintf(scratchpad, "%s", rarp_mac_addr);
- strcat(msgstring, scratchpad);
- wattrset(table->othpwin, ARPATTR);
- break;
-@@ -485,7 +485,7 @@ void printothpentry(struct othptable *table, struct othptabent *entry,
- wattrset(table->othpwin, UNKNIPATTR);
- protptr = getprotobynumber(entry->protocol);
- if (protptr != NULL) {
-- sprintf(protname, protptr->p_aliases[0]);
-+ sprintf(protname, "%s", protptr->p_aliases[0]);
- } else {
- sprintf(protname, "IP protocol");
- unknown = 1;
---
-2.14.1
-
diff --git a/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-make-Make-CC-weak-assignment.patch b/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-make-Make-CC-weak-assignment.patch
new file mode 100644
index 0000000000..342c78f0f1
--- /dev/null
+++ b/meta-oe/recipes-devtools/iptraf/iptraf-ng/0001-make-Make-CC-weak-assignment.patch
@@ -0,0 +1,44 @@
+From 223de708552b1ab00ac1a119e82e13deed573036 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 10:22:38 -0700
+Subject: [PATCH] make: Make CC weak assignment
+
+This ensures that if environment overrrides it then its respected, this
+helps cross-compiling cases
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -18,14 +18,14 @@ VERSION-FILE: FORCE
+ @$(SHELL_PATH) ./GEN-VERSION-FILE
+ -include VERSION-FILE
+
+-CFLAGS = -g -O2 -Wall -W -Werror=format-security
+-LDFLAGS =
++CFLAGS += -g -O2 -Wall -W -Werror=format-security
++LDFLAGS ?=
+ IPTRAF_CFLAGS := -std=gnu99 -D_GNU_SOURCE
+ ALL_CFLAGS = $(CPPFLAGS) $(CFLAGS) $(IPTRAF_CFLAGS)
+ ALL_LDFLAGS = $(LDFLAGS)
+ STRIP ?= strip
+
+-prefix = $(HOME)
++prefix ?= $(HOME)
+ sbindir_relative = sbin
+ sbindir = $(prefix)/$(sbindir_relative)
+ mandir = $(prefix)/share/man
+@@ -39,7 +39,7 @@ pathsep = :
+
+ export prefix bindir sharedir sysconfdir gitwebdir localedir
+
+-CC = cc
++CC ?= cc
+ RM = rm -f
+ INSTALL = install
+ RPMBUILD = rpmbuild
diff --git a/meta-oe/recipes-devtools/iptraf/iptraf-ng/iptraf-ng-tmpfiles.conf b/meta-oe/recipes-devtools/iptraf/iptraf-ng/iptraf-ng-tmpfiles.conf
new file mode 100644
index 0000000000..ebb9d67800
--- /dev/null
+++ b/meta-oe/recipes-devtools/iptraf/iptraf-ng/iptraf-ng-tmpfiles.conf
@@ -0,0 +1,3 @@
+d /run/iptraf-ng 0755 root root -
+d /var/log/iptraf-ng 0755 root root -
+d /var/lib/iptraf-ng 0755 root root -
diff --git a/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch b/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
index 65b92dade2..8704310406 100644
--- a/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
+++ b/meta-oe/recipes-devtools/iptraf/iptraf-ng/ncurses-config.patch
@@ -2,11 +2,9 @@ Use pkg-config to search for ncurses libraries
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
-Index: iptraf-ng-1.1.4/Makefile
-===================================================================
---- iptraf-ng-1.1.4.orig/Makefile
-+++ iptraf-ng-1.1.4/Makefile
-@@ -205,8 +205,8 @@ endif
+--- a/Makefile
++++ b/Makefile
+@@ -201,8 +201,8 @@ endif
ifndef NCURSES_LDFLAGS
ifdef NEEDS_NCURSES5
@@ -17,7 +15,7 @@ Index: iptraf-ng-1.1.4/Makefile
ifndef NO_PANEL
NCURSES_LDFLAGS += -lpanel
endif
-@@ -215,8 +215,8 @@ endif
+@@ -211,8 +211,8 @@ endif
ifndef NCURSES_LDFLAGS
ifdef NEEDS_NCURSESW5
@@ -26,9 +24,9 @@ Index: iptraf-ng-1.1.4/Makefile
+ NCURSES_CFLAGS := $(shell p[k-config ncursesw --cflags 2>/dev/null)
+ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
ifndef NO_PANEL
- NCURSES_LDFLAGS += -lpanel
+ NCURSES_LDFLAGS += -lpanelw
endif
-@@ -225,8 +225,8 @@ endif
+@@ -221,8 +221,8 @@ endif
ifndef NCURSES_LDFLAGS
ifdef NEEDS_NCURSES6
@@ -39,7 +37,7 @@ Index: iptraf-ng-1.1.4/Makefile
ifndef NO_PANEL
NCURSES_LDFLAGS += -lpanel
endif
-@@ -235,8 +235,8 @@ endif
+@@ -231,8 +231,8 @@ endif
ifndef NCURSES_LDFLAGS
ifdef NEEDS_NCURSESW6
@@ -48,34 +46,45 @@ Index: iptraf-ng-1.1.4/Makefile
+ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
+ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
ifndef NO_PANEL
- NCURSES_LDFLAGS += -lpanel
+ NCURSES_LDFLAGS += -lpanelw
endif
-@@ -246,17 +246,17 @@ endif
+@@ -241,27 +241,27 @@ endif
+
# try find ncuses by autodetect
ifndef NCURSES_LDFLAGS
- ifneq ($(shell ncursesw6-config --libs 2>/dev/null),)
+- ifneq ($(shell ncursesw6-config --libs 2>/dev/null),)
- NCURSES_CFLAGS := $(shell ncursesw6-config --cflags 2>/dev/null)
- NCURSES_LDFLAGS := $(shell ncursesw6-config --libs 2>/dev/null)
++ ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanelw
+ endif
- else ifneq ($(shell ncurses6-config --libs 2>/dev/null),)
- NCURSES_CFLAGS := $(shell ncurses6-config --cflags 2>/dev/null)
- NCURSES_LDFLAGS := $(shell ncurses6-config --libs 2>/dev/null)
++ else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanel
+ endif
- else ifneq ($(shell ncursesw5-config --libs 2>/dev/null),)
- NCURSES_CFLAGS := $(shell ncursesw5-config --cflags 2>/dev/null)
- NCURSES_LDFLAGS := $(shell ncursesw5-config --libs 2>/dev/null)
++ else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
++ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
++ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanelw
+ endif
- else ifneq ($(shell ncurses5-config --libs 2>/dev/null),)
- NCURSES_CFLAGS := $(shell ncurses5-config --cflags 2>/dev/null)
- NCURSES_LDFLAGS := $(shell ncurses5-config --libs 2>/dev/null)
-+ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
-+ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
-+ else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
-+ NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
-+ NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
+ else ifneq ($(shell pkg-config ncursesw --libs 2>/dev/null),)
+ NCURSES_CFLAGS := $(shell pkg-config ncursesw --cflags 2>/dev/null)
+ NCURSES_LDFLAGS := $(shell pkg-config ncursesw --libs 2>/dev/null)
-+ else ifneq ($(shell pkg-config ncurses --libs 2>/dev/null),)
-+ NCURSES_CFLAGS := $(shell pkg-config ncurses --cflags 2>/dev/null)
-+ NCURSES_LDFLAGS := $(shell pkg-config ncurses --libs 2>/dev/null)
- endif
-
- ifneq ($(NCURSES_LDFLAGS),)
+ ifndef NO_PANEL
+ NCURSES_LDFLAGS += -lpanel
+ endif
diff --git a/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb b/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
deleted file mode 100644
index c53e66300d..0000000000
--- a/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.1.4.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "A console-based network monitoring utility"
-DESCRIPTION = "IPTraf-ng is a console-based network monitoring utility. IPTraf gathers \
-data like TCP connection packet and byte counts, interface statistics \
-and activity indicators, TCP/UDP traffic breakdowns, and LAN station \
-packet and byte counts. IPTraf-ng features include an IP traffic monitor \
-which shows TCP flag information, packet and byte counts, ICMP \
-details, OSPF packet types, and oversized IP packet warnings; \
-interface statistics showing IP, TCP, UDP, ICMP, non-IP and other IP \
-packet counts, IP checksum errors, interface activity and packet size \
-counts; a TCP and UDP service monitor showing counts of incoming and \
-outgoing packets for common TCP and UDP application ports, a LAN \
-statistics module that discovers active hosts and displays statistics \
-about their activity; TCP, UDP and other protocol display filters so \
-you can view just the traffic you want; logging; support for Ethernet, \
-FDDI, ISDN, SLIP, PPP, and loopback interfaces; and utilization of the \
-built-in raw socket interface of the Linux kernel, so it can be used \
-on a wide variety of supported network cards."
-
-HOMEPAGE = "https://fedorahosted.org/iptraf-ng/"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e2b3850593b899b1a17594ed4cc4c731"
-DEPENDS = "ncurses"
-
-SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/iptraf-ng/iptraf-ng-1.1.4.tar.gz/e0f8df3b7baf2b5106709abc4f8c029a/${BP}.tar.gz \
- file://ncurses-config.patch \
- file://0001-Fix-printd-formatting-strings.patch \
- "
-SRC_URI[md5sum] = "e0f8df3b7baf2b5106709abc4f8c029a"
-SRC_URI[sha256sum] = "16b9b05bf5d3725d86409b901696639ad46944d02de6def87b1ceae5310dd35c"
-
-inherit autotools-brokensep pkgconfig
-
-CFLAGS += "-D_GNU_SOURCE"
-
-PROVIDES = "iptraf"
-RPROVIDES_${PN} += "iptraf"
-RREPLACES_${PN} += "iptraf"
-RCONFLICTS_${PN} += "iptraf"
-
diff --git a/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.2.1.bb b/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.2.1.bb
new file mode 100644
index 0000000000..0f6bbb4d54
--- /dev/null
+++ b/meta-oe/recipes-devtools/iptraf/iptraf-ng_1.2.1.bb
@@ -0,0 +1,53 @@
+# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A console-based network monitoring utility"
+DESCRIPTION = "IPTraf-ng is a console-based network monitoring utility. IPTraf gathers \
+data like TCP connection packet and byte counts, interface statistics \
+and activity indicators, TCP/UDP traffic breakdowns, and LAN station \
+packet and byte counts. IPTraf-ng features include an IP traffic monitor \
+which shows TCP flag information, packet and byte counts, ICMP \
+details, OSPF packet types, and oversized IP packet warnings; \
+interface statistics showing IP, TCP, UDP, ICMP, non-IP and other IP \
+packet counts, IP checksum errors, interface activity and packet size \
+counts; a TCP and UDP service monitor showing counts of incoming and \
+outgoing packets for common TCP and UDP application ports, a LAN \
+statistics module that discovers active hosts and displays statistics \
+about their activity; TCP, UDP and other protocol display filters so \
+you can view just the traffic you want; logging; support for Ethernet, \
+FDDI, ISDN, SLIP, PPP, and loopback interfaces; and utilization of the \
+built-in raw socket interface of the Linux kernel, so it can be used \
+on a wide variety of supported network cards."
+
+HOMEPAGE = "https://fedorahosted.org/iptraf-ng/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e2b3850593b899b1a17594ed4cc4c731"
+DEPENDS = "ncurses"
+
+SRC_URI = "https://src.fedoraproject.org/repo/pkgs/iptraf-ng/v${PV}.tar.gz/sha512/44d36fc92cdbf379f62cb63638663c3ee610225b9c28d60ee55e62e358f398a6b0db281129327b3472e45fb553ee3dd605af09c129f2233f8839ae3dbd799384/v${PV}.tar.gz \
+ file://iptraf-ng-tmpfiles.conf \
+ file://ncurses-config.patch \
+ file://0001-make-Make-CC-weak-assignment.patch \
+ "
+SRC_URI[sha256sum] = "9f5cef584065420dea1ba32c86126aede1fa9bd25b0f8362b0f9fd9754f00870"
+
+inherit pkgconfig
+
+CFLAGS += "-D_GNU_SOURCE"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+ install -D -m 0644 -p ${S}/iptraf-ng-logrotate.conf ${D}${sysconfdir}/logrotate.d/iptraf-ng
+ install -Dm 0644 ${WORKDIR}/iptraf-ng-tmpfiles.conf ${D}${libdir}/tmpfiles.d/iptraf-ng-tmpfiles.conf
+}
+
+FILES:${PN} += "${libdir}/tmpfiles.d"
+PROVIDES = "iptraf"
+RPROVIDES:${PN} += "iptraf"
+RREPLACES:${PN} += "iptraf"
+RCONFLICTS:${PN} += "iptraf"
+
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
new file mode 100644
index 0000000000..570202e800
--- /dev/null
+++ b/meta-oe/recipes-devtools/jemalloc/files/0001-test-Disable-optimization-with-clang-for-aligned_all.patch
@@ -0,0 +1,33 @@
+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
new file mode 100644
index 0000000000..5c826a1766
--- /dev/null
+++ b/meta-oe/recipes-devtools/jemalloc/files/run-ptest
@@ -0,0 +1,48 @@
+#!/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
+ sed -e '/: pass/ s/^/PASS: /g' \
+ -e '/: skip/ s/^/SKIP: /g' \
+ -e '/: fail/ s/^/FAIL: /g' \
+ -e 's/: pass//g' \
+ -e 's/: skip//g' \
+ -e 's/: fail//g' \
+ -e '/^--- pass:/d' tests.log
+ fi
+ 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
new file mode 100644
index 0000000000..9ad83261ef
--- /dev/null
+++ b/meta-oe/recipes-devtools/jemalloc/jemalloc_5.3.0.bb
@@ -0,0 +1,54 @@
+# Copyright (C) 2021 Mingli Yu <mingli.yu@windriver.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "General-purpose scalable concurrent malloc implementation"
+
+DESCRIPTION = "jemalloc is a general purpose malloc(3) implementation that emphasizes \
+fragmentation avoidance and scalable concurrency support."
+
+HOMEPAGE = "https://github.com/jemalloc/jemalloc"
+LICENSE = "BSD-2-Clause"
+
+SECTION = "libs"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea061f8731d5e6a5761dfad951ef5f5f"
+
+SRC_URI = "git://github.com/jemalloc/jemalloc.git;branch=master;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"
+
+S = "${WORKDIR}/git"
+
+inherit autotools ptest
+
+EXTRA_AUTORECONF += "--exclude=autoheader"
+
+EXTRA_OECONF:append:libc-musl = " --with-jemalloc-prefix=je_"
+
+do_install:append() {
+ sed -i -e 's@${STAGING_DIR_HOST}@@g' \
+ -e 's@${STAGING_DIR_NATIVE}@@g' \
+ -e 's@${WORKDIR}@@g' ${D}${bindir}/jemalloc-config
+}
+
+do_compile_ptest() {
+ oe_runmake tests
+}
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ subdirs="unit integration stress "
+ for tooltest in ${subdirs}
+ do
+ 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
new file mode 100644
index 0000000000..e4d6ebb45b
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/0001-configure-Pass-_XOPEN_SOURCE-when-checking-for-strpt.patch
@@ -0,0 +1,40 @@
+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
new file mode 100644
index 0000000000..e849436578
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/0002-builtin-Replace-_BSD_SOURCE-with-_DEFAULT_SOURCE.patch
@@ -0,0 +1,32 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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/Support-without-oniguruma.patch b/meta-oe/recipes-devtools/jq/jq/Support-without-oniguruma.patch
deleted file mode 100644
index 1dfd955f0d..0000000000
--- a/meta-oe/recipes-devtools/jq/jq/Support-without-oniguruma.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 18b4b18b41f5ed396d73449ce8d6ec408d95d6b2 Mon Sep 17 00:00:00 2001
-From: David Tolnay <dtolnay@gmail.com>
-Date: Sat, 21 Nov 2015 10:05:37 -0800
-Subject: [PATCH] Support --without-oniguruma
-
-Upstream-Status: Backport
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-
----
- configure.ac | 41 ++++++++++++++++++++---------------------
- 1 file changed, 20 insertions(+), 21 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9e2c8cf..7f6be34 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -52,27 +52,26 @@ fi
- AC_ARG_WITH([oniguruma],
- [AS_HELP_STRING([--with-oniguruma=prefix],
- [try this for a non-standard install prefix of the oniguruma library])],
-- [ONIGURUMAPATHSET=1],
-- [ONIGURUMAPATHSET=0])
--
--if test $ONIGURUMAPATHSET = 1; then
-- CFLAGS="$CFLAGS -I${with_oniguruma}/include"
-- LDFLAGS="$LDFLAGS -L${with_oniguruma}/lib"
--fi
--
--# check for ONIGURUMA library
--HAVE_ONIGURUMA=0
--AC_CHECK_HEADER("oniguruma.h",
-- AC_CHECK_LIB([onig],[onig_version],[LIBS="$LIBS -lonig"; HAVE_ONIGURUMA=1;]))
--
--# handle check results
--if test $HAVE_ONIGURUMA != 1; then
-- AC_MSG_NOTICE([Oniguruma was not found.])
-- AC_MSG_NOTICE([ Try setting the location using '--with-oniguruma=PREFIX' ])
--else
-- AC_DEFINE([HAVE_ONIGURUMA],1,[Define to 1 if Oniguruma is installed])
--fi
--
-+ [],
-+ [with_oniguruma=yes])
-+
-+AS_IF([test "x$with_oniguruma" != xno], [
-+ AS_IF([test "x$with_oniguruma" != xyes], [
-+ CFLAGS="$CFLAGS -I${with_oniguruma}/include"
-+ LDFLAGS="$LDFLAGS -L${with_oniguruma}/lib"
-+ ])
-+ # check for ONIGURUMA library
-+ have_oniguruma=0
-+ AC_CHECK_HEADER("oniguruma.h",
-+ AC_CHECK_LIB([onig],[onig_version],[LIBS="$LIBS -lonig"; have_oniguruma=1;]))
-+ # handle check results
-+ AS_IF([test $have_oniguruma = 1], [
-+ AC_DEFINE([HAVE_ONIGURUMA], 1, [Define to 1 if Oniguruma is installed])
-+ ], [
-+ AC_MSG_NOTICE([Oniguruma was not found.])
-+ AC_MSG_NOTICE([Try setting the location using '--with-oniguruma=PREFIX'])
-+ ])
-+])
-
- dnl Check for valgrind
- AC_CHECK_PROGS(valgrind_cmd, valgrind)
---
-1.9.1
-
diff --git a/meta-oe/recipes-devtools/jq/jq/run-ptest b/meta-oe/recipes-devtools/jq/jq/run-ptest
new file mode 100755
index 0000000000..a813958b5a
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq/run-ptest
@@ -0,0 +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} >> ${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.5.bb b/meta-oe/recipes-devtools/jq/jq_1.5.bb
deleted file mode 100644
index 0f40815ccd..0000000000
--- a/meta-oe/recipes-devtools/jq/jq_1.5.bb
+++ /dev/null
@@ -1,30 +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=29dd0c35d7e391bb8d515eacf7592e00"
-
-SRC_URI = "https://github.com/stedolan/${BPN}/releases/download/${BP}/${BP}.tar.gz \
- file://Support-without-oniguruma.patch \
-"
-
-SRC_URI[md5sum] = "0933532b086bd8b6a41c1b162b1731f9"
-SRC_URI[sha256sum] = "c4d2bfec6436341113419debf479d833692cc5cdab7eb0326b5a4d4fbe9f493c"
-
-inherit autotools
-
-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"
-
-OE_EXTRACONF += " \
- --disable-valgrind \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/jq/jq_git.bb b/meta-oe/recipes-devtools/jq/jq_git.bb
new file mode 100644
index 0000000000..4fa98aa44f
--- /dev/null
+++ b/meta-oe/recipes-devtools/jq/jq_git.bb
@@ -0,0 +1,43 @@
+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"
+# enable if you want ptest running under valgrind
+PACKAGECONFIG[valgrind] = "--enable-valgrind,--disable-valgrind,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}
+ 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/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
new file mode 100644
index 0000000000..4b1184a394
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator/0001-cmake-Use-GNUInstallDirs.patch
@@ -0,0 +1,46 @@
+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_2.1.0.bb b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb
new file mode 100644
index 0000000000..00d26d7b34
--- /dev/null
+++ b/meta-oe/recipes-devtools/json-schema-validator/json-schema-validator_2.1.0.bb
@@ -0,0 +1,16 @@
+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/jsoncpp/jsoncpp_1.8.4.bb b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
deleted file mode 100644
index 88e3320324..0000000000
--- a/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.8.4.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "JSON C++ lib used to read and write json file."
-DESCRIPTION = "Jsoncpp is an implementation of a JSON (http://json.org) reader \
- and writer in C++. JSON (JavaScript Object Notation) is a \
- lightweight data-interchange format. It is easy for humans to \
- read and write. It is easy for machines to parse and generate."
-
-HOMEPAGE = "https://github.com/open-source-parsers/jsoncpp"
-
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fa2a23dd1dc6c139f35105379d76df2b"
-
-SRCREV = "ddabf50f72cf369bf652a95c4d9fe31a1865a781"
-SRC_URI = "git://github.com/open-source-parsers/jsoncpp"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DJSONCPP_WITH_TESTS=OFF"
diff --git a/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.5.bb b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.5.bb
new file mode 100644
index 0000000000..c54dc94666
--- /dev/null
+++ b/meta-oe/recipes-devtools/jsoncpp/jsoncpp_1.9.5.bb
@@ -0,0 +1,25 @@
+SUMMARY = "JSON C++ lib used to read and write json file."
+DESCRIPTION = "Jsoncpp is an implementation of a JSON (http://json.org) reader \
+ and writer in C++. JSON (JavaScript Object Notation) is a \
+ lightweight data-interchange format. It is easy for humans to \
+ read and write. It is easy for machines to parse and generate."
+
+HOMEPAGE = "https://github.com/open-source-parsers/jsoncpp"
+
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d73c165a0f9e86a1342f32d19ec5926"
+
+PE = "1"
+
+SRCREV = "5defb4ed1a4293b8e2bf641e16b156fb9de498cc"
+SRC_URI = "git://github.com/open-source-parsers/jsoncpp;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON -DBUILD_OBJECT_LIBS=OFF -DJSONCPP_WITH_TESTS=OFF"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch b/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch
deleted file mode 100644
index 748e4da1a6..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From ac61124df17ab76527508bbb9a3115d4d6cc1af6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 21 Nov 2016 11:26:26 -0800
-Subject: [PATCH] cmake: replace hardcoded lib/${CMAKE_LIBRARY_PATH} with
- {CMAKE_INSTALL_LIBDIR}
-
-Fixes
-| CMake Error at src/jsonrpccpp/CMakeLists.txt:207 (install):
-| install TARGETS given unknown argument "/lib".
-
-and
-
-Wrong install paths during cross compile
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/jsonrpccpp/CMakeLists.txt | 8 ++++----
- src/stubgenerator/CMakeLists.txt | 6 +++---
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/src/jsonrpccpp/CMakeLists.txt b/src/jsonrpccpp/CMakeLists.txt
-index e4a1eb5..13f9056 100644
---- a/src/jsonrpccpp/CMakeLists.txt
-+++ b/src/jsonrpccpp/CMakeLists.txt
-@@ -205,15 +205,15 @@ if (WIN32)
- endif()
-
- install(TARGETS ${ALL_LIBS}
-- LIBRARY DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH}
-- ARCHIVE DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION bin
- )
-
- #set pkg-config
- get_filename_component(FULL_PATH_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} ABSOLUTE)
- set(FULL_PATH_INCLUDEDIR "${FULL_PATH_INSTALL_PREFIX}/include")
--set(FULL_PATH_LIBDIR "${FULL_PATH_INSTALL_PREFIX}/lib/${CMAKE_LIBRARY_PATH}")
-+set(FULL_PATH_LIBDIR "${FULL_PATH_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}")
-
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/libjsonrpccpp-client.pc.cmake ${CMAKE_BINARY_DIR}/libjsonrpccpp-client.pc)
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/cmake/libjsonrpccpp-server.pc.cmake ${CMAKE_BINARY_DIR}/libjsonrpccpp-server.pc)
-@@ -223,6 +223,6 @@ INSTALL(FILES
- "${CMAKE_BINARY_DIR}/libjsonrpccpp-server.pc"
- "${CMAKE_BINARY_DIR}/libjsonrpccpp-client.pc"
- "${CMAKE_BINARY_DIR}/libjsonrpccpp-common.pc"
-- DESTINATION "lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH}/pkgconfig")
-+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
-
-
-diff --git a/src/stubgenerator/CMakeLists.txt b/src/stubgenerator/CMakeLists.txt
-index f9dbe4c..b57b0fe 100644
---- a/src/stubgenerator/CMakeLists.txt
-+++ b/src/stubgenerator/CMakeLists.txt
-@@ -58,15 +58,15 @@ CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/cmake/libjsonrpccpp-stub.pc.cmake ${CMAKE_BIN
-
- INSTALL(FILES
- "${CMAKE_BINARY_DIR}/libjsonrpccpp-stub.pc"
-- DESTINATION "lib/${CMAKE_LIBRARY_PATH}/pkgconfig")
-+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
-
- install(DIRECTORY ${CMAKE_SOURCE_DIR}/src/stubgenerator/
- DESTINATION include/jsonrpccpp/stubgen
- FILES_MATCHING PATTERN "*.h")
-
- install(TARGETS ${ALL_LIBS} jsonrpcstub
-- LIBRARY DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH}
-- ARCHIVE DESTINATION lib${LIB_SUFFIX}/${CMAKE_LIBRARY_PATH}
-+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
-+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
- RUNTIME DESTINATION bin
- )
-
---
-2.10.2
-
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorclient-Typecast-min-arguments-correctl.patch b/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorclient-Typecast-min-arguments-correctl.patch
deleted file mode 100644
index d21e97950c..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorclient-Typecast-min-arguments-correctl.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9500f12f5d827840634311d6ca972d9551211e4d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 21 Nov 2016 01:00:51 -0800
-Subject: [PATCH] filedescriptorclient: Typecast min() arguments correctly
-
-Fixes
-
-| /mnt/a/build/tmp-glibc/work/cortexa7hf-neon-vfpv4-oe-linux-gnueabi/jsonrpc/0.7.0-r0/git/src/jsonrpccp
-p/client/connectors/filedescriptorclient.cpp:47:92: note: deduced conflicting types for parameter 'co
-nst _Tp' ('unsigned int' and 'long unsigned int')
-| ssize_t byteWritten = write(outputfd, toSend.c_str(), min(toSend.size(), MAX_WRITE_SIZE));
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/jsonrpccpp/client/connectors/filedescriptorclient.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp b/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp
-index 77aac7e..6325b5c 100644
---- a/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp
-+++ b/src/jsonrpccpp/client/connectors/filedescriptorclient.cpp
-@@ -43,7 +43,7 @@ void FileDescriptorClient::SendRPCMessage(const std::string& message,
- string toSend = message;
- do
- {
-- ssize_t byteWritten = write(outputfd, toSend.c_str(), min(toSend.size(), MAX_WRITE_SIZE));
-+ ssize_t byteWritten = write(outputfd, toSend.c_str(), min((long unsigned int)toSend.size(), MAX_WRITE_SIZE));
- if (byteWritten < 1)
- throw JsonRpcException(Errors::ERROR_CLIENT_CONNECTOR,
- "Unknown error occured while writing to the output file descriptor");
---
-2.10.2
-
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorserver-Include-sys-select.h-before-oth.patch b/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorserver-Include-sys-select.h-before-oth.patch
deleted file mode 100644
index 3b9068a7d8..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-filedescriptorserver-Include-sys-select.h-before-oth.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c7aad10628949e126f50e3264b5bc7eb417347c6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 21 Nov 2016 01:25:10 -0800
-Subject: [PATCH] filedescriptorserver: Include sys/select.h before other
- headers
-
-Fixes errors e.g.
-| /mnt/a/build/tmp-glibc/work/cortexa7hf-neon-vfpv4-oe-linux-gnueabi/jsonrpc/0.7.0-r0/git/src/jsonrpccp
-p/server/connectors/filedescriptorserver.h:63:7: error: unknown type name 'fd_set'
-| fd_set read_fds;
-| ^
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/jsonrpccpp/server/connectors/filedescriptorserver.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp
-index 9d74223..8e019ca 100644
---- a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp
-+++ b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp
-@@ -7,8 +7,8 @@
- * @license See attached LICENSE.txt
- ************************************************************************/
-
--#include "filedescriptorserver.h"
- #include <sys/select.h>
-+#include "filedescriptorserver.h"
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <unistd.h>
---
-2.10.2
-
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-memset-and-family-needs-to-include-string.h.patch b/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-memset-and-family-needs-to-include-string.h.patch
deleted file mode 100644
index 21ef98bf5a..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0001-memset-and-family-needs-to-include-string.h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From f5416f1c2b2989f94163a2ae4b91c9b9fa13c620 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 31 Mar 2017 13:32:31 -0700
-Subject: [PATCH 1/2] memset() and family needs to include string.h
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp b/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp
-index 9fca57b..e63c49e 100644
---- a/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp
-+++ b/src/jsonrpccpp/server/connectors/unixdomainsocketserver.cpp
-@@ -16,7 +16,7 @@
- #include <cstdio>
- #include <fcntl.h>
- #include <unistd.h>
--#include <string>
-+#include <cstring>
-
- using namespace jsonrpc;
- using namespace std;
---
-2.12.1
-
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0002-Fix-build-problem-on-Mac.patch b/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0002-Fix-build-problem-on-Mac.patch
deleted file mode 100644
index aece45b020..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc/0002-Fix-build-problem-on-Mac.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 79050ef9607f242e0d509969b19e9390220c3411 Mon Sep 17 00:00:00 2001
-From: Yongwei Wu <wuyongwei@gmail.com>
-Date: Sat, 31 Dec 2016 11:57:11 +0800
-Subject: [PATCH 2/2] Fix build problem on Mac.
-
-__suseconds_t is not defined on Mac/BSD; use the POSIX-conformant
-suseconds_t.
----
- src/jsonrpccpp/server/connectors/filedescriptorserver.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp
-index 8e019ca..68107f2 100644
---- a/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp
-+++ b/src/jsonrpccpp/server/connectors/filedescriptorserver.cpp
-@@ -122,7 +122,7 @@ int FileDescriptorServer::WaitForRead() {
- FD_ZERO(&except_fds);
- FD_SET(inputfd, &read_fds);
- timeout.tv_sec = 0;
-- timeout.tv_usec = (__suseconds_t) (READ_TIMEOUT * 1000000);
-+ timeout.tv_usec = (suseconds_t) (READ_TIMEOUT * 1000000);
- // Wait for something to read
- return select(inputfd + 1, &read_fds, &write_fds, &except_fds, &timeout);
- }
---
-2.12.1
-
diff --git a/meta-oe/recipes-devtools/jsonrpc/jsonrpc_0.7.0.bb b/meta-oe/recipes-devtools/jsonrpc/jsonrpc_0.7.0.bb
deleted file mode 100644
index eb1ff65b63..0000000000
--- a/meta-oe/recipes-devtools/jsonrpc/jsonrpc_0.7.0.bb
+++ /dev/null
@@ -1,32 +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=ee72d601854d5d2a065cf642883c489b"
-
-PV = "0.7.0+git${SRCPV}"
-
-SRC_URI = "git://github.com/cinemast/libjson-rpc-cpp \
- file://0001-cmake-replace-hardcoded-lib-CMAKE_LIBRARY_PATH-with-.patch \
- file://0001-filedescriptorclient-Typecast-min-arguments-correctl.patch \
- file://0001-filedescriptorserver-Include-sys-select.h-before-oth.patch \
- file://0001-memset-and-family-needs-to-include-string.h.patch \
- file://0002-Fix-build-problem-on-Mac.patch \
- "
-SRCREV = "ccbdb41388bdd929828941652da816bf52a0580e"
-
-SECTION = "libs"
-
-DEPENDS = "curl jsoncpp libmicrohttpd"
-
-S = "${WORKDIR}/git"
-
-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} \
-"
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.6.0.bb b/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.6.0.bb
new file mode 100644
index 0000000000..2e06b701cc
--- /dev/null
+++ b/meta-oe/recipes-devtools/jwt-cpp/jwt-cpp_0.6.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 = "4a537e969891dde542ad8b1a4a214955a83be29f"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "openssl"
+
+inherit cmake
+
+EXTRA_OECMAKE += "-DJWT_BUILD_EXAMPLES=OFF -DJWT_CMAKE_FILES_INSTALL_DIR=${libdir}/cmake"
+
+BBCLASSEXTEND = "nativesdk"
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 df08b8b114..169500f6b4 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
@@ -7,13 +7,13 @@ the effort of keeping an up-to-date, out-of-tree, packaging of the \
kconfig infrastructure, ready for use by third-party projects. \
The kconfig-frontends package provides the kconfig parser, as well as all \
the frontends"
-HOMEPAGE = "http://ymorin.is-a-geek.org/projects/kconfig-frontends"
-LICENSE = "GPL-2.0"
+HOMEPAGE = "https://gitlab.com/ymorin/kconfig-frontends"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=9b8cf60ff39767ff04b671fca8302408"
SECTION = "devel"
-DEPENDS += "ncurses flex bison gperf-native"
-RDEPENDS_${PN} += "python3 bash"
-SRC_URI = "git://ymorin.is-a-geek.org/kconfig-frontends;branch=4.11.x \
+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"
@@ -22,11 +22,11 @@ SRCREV = "f22fce3a308be1c7790ebefc6bbedb33c5f7c86a"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
-do_configure_prepend () {
+do_configure:prepend () {
mkdir -p ${S}/scripts/.autostuff/m4
}
-do_install_append() {
+do_install:append() {
ln -s kconfig-conf ${D}${bindir}/conf
ln -s kconfig-mconf ${D}${bindir}/mconf
}
diff --git a/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb b/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb
new file mode 100644
index 0000000000..15f394e13e
--- /dev/null
+++ b/meta-oe/recipes-devtools/lapack/lapack_3.10.1.bb
@@ -0,0 +1,27 @@
+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/ldns/ldns_1.8.3.bb b/meta-oe/recipes-devtools/ldns/ldns_1.8.3.bb
new file mode 100644
index 0000000000..16816e62d8
--- /dev/null
+++ b/meta-oe/recipes-devtools/ldns/ldns_1.8.3.bb
@@ -0,0 +1,23 @@
+SUMMARY = "LDNS is a DNS library that facilitates DNS tool programming"
+HOMEPAGE = "https://nlnetlabs.nl/ldns"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34330f15b2b4abbbaaa7623f79a6a019"
+
+SRC_URI = "https://www.nlnetlabs.nl/downloads/ldns/ldns-${PV}.tar.gz"
+SRC_URI[sha256sum] = "c3f72dd1036b2907e3a56e6acf9dfb2e551256b3c1bbd9787942deeeb70e7860"
+
+DEPENDS = "openssl"
+
+inherit autotools-brokensep
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[drill] = "--with-drill,--without-drill"
+
+EXTRA_OECONF = "--with-ssl=${STAGING_EXECPREFIXDIR}"
+
+do_install:append() {
+ sed -e 's@[^ ]*-ffile-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fdebug-prefix-map=[^ "]*@@g' \
+ -e 's@[^ ]*-fmacro-prefix-map=[^ "]*@@g' \
+ -i ${D}${libdir}/pkgconfig/*.pc
+}
diff --git a/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch b/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch
deleted file mode 100644
index c95cdc9d2d..0000000000
--- a/meta-oe/recipes-devtools/libedit/libedit/stdc-predef.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-__STDC_ISO_10646__ is defined in stdc-predef.h
-therefore include it to see if its there on a platform
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: libedit-20160903-3.1/src/chartype.h
-===================================================================
---- libedit-20160903-3.1.orig/src/chartype.h
-+++ libedit-20160903-3.1/src/chartype.h
-@@ -29,6 +29,7 @@
- #ifndef _h_chartype_f
- #define _h_chartype_f
-
-+#include <stdc-predef.h>
- /* Ideally we should also test the value of the define to see if it
- * supports non-BMP code points without requiring UTF-16, but nothing
- * seems to actually advertise this properly, despite Unicode 3.1 having
diff --git a/meta-oe/recipes-devtools/libedit/libedit_20170329-3.1.bb b/meta-oe/recipes-devtools/libedit/libedit_20170329-3.1.bb
deleted file mode 100644
index fc24671124..0000000000
--- a/meta-oe/recipes-devtools/libedit/libedit_20170329-3.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "BSD replacement for libreadline"
-DESCRIPTION = "Command line editor library providing generic line editing, \
-history, and tokenization functions"
-HOMEPAGE = "http://www.thrysoee.dk/editline/"
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1e4228d0c5a9093b01aeaaeae6641533"
-
-DEPENDS = "ncurses"
-
-inherit autotools
-
-# upstream site does not allow wget's User-Agent
-FETCHCMD_wget += "-U bitbake"
-SRC_URI = "http://www.thrysoee.dk/editline/${BPN}-${PV}.tar.gz \
- file://stdc-predef.patch \
- "
-SRC_URI[md5sum] = "c57a0690e62ef523c083598730272cfd"
-SRC_URI[sha256sum] = "91f2d90fbd2a048ff6dad7131d9a39e690fd8a8fd982a353f1333dd4017dd4be"
-
-S = "${WORKDIR}/${BPN}-${PV}"
diff --git a/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.7.bb b/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.7.bb
deleted file mode 100644
index 423a9148aa..0000000000
--- a/meta-oe/recipes-devtools/libfribidi/fribidi_0.19.7.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Fribidi library for bidirectional text"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-BBCLASSEXTEND = "native"
-
-PROVIDES = "libfribidi"
-DEPENDS = "glib-2.0 libpcre"
-
-inherit autotools lib_package pkgconfig
-
-CFLAGS_append = " -DPAGE_SIZE=4096 "
-SECURITY_CFLAGS_remove_toolchain-clang = "-D_FORTIFY_SOURCE=2"
-
-SRC_URI = "http://fribidi.org/download/fribidi-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "6c7e7cfdd39c908f7ac619351c1c5c23"
-SRC_URI[sha256sum] = "08222a6212bbc2276a2d55c3bf370109ae4a35b689acbc66571ad2a670595a8e"
-
-CVE_PRODUCT = "gnu_fribidi"
diff --git a/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb b/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb
deleted file mode 100644
index 6386f1ffb7..0000000000
--- a/meta-oe/recipes-devtools/libgee/libgee_0.18.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "libgee is a collection library providing GObject-based interfaces \
-and classes for commonly used data structures."
-HOMEPAGE = "http://live.gnome.org/Libgee"
-SECTION = "libs"
-DEPENDS = "glib-2.0"
-
-BBCLASSEXTEND = "native"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
-
-PE = "1"
-
-inherit autotools vala pkgconfig gobject-introspection
-do_configure_prepend() {
- MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
- for i in ${MACROS}; do
- rm -f m4/$i
- done
-}
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/libgee/${SHRT_VER}/${BP}.tar.xz"
-SRC_URI[md5sum] = "29ea6125e653d7e60b49a9a9544abc96"
-SRC_URI[sha256sum] = "4ad99ef937d071b4883c061df40bfe233f7649d50c354cf81235f180b4244399"
diff --git a/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb b/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb
new file mode 100644
index 0000000000..f7b54b9b09
--- /dev/null
+++ b/meta-oe/recipes-devtools/libgee/libgee_0.20.6.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "libgee is a collection library providing GObject-based interfaces \
+and classes for commonly used data structures."
+HOMEPAGE = "http://live.gnome.org/Libgee"
+SECTION = "libs"
+DEPENDS = "glib-2.0"
+
+BBCLASSEXTEND = "native"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fbc093901857fcd118f065f900982c24"
+
+PE = "1"
+inherit gnomebase vala gobject-introspection
+
+do_configure:prepend() {
+ MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+ for i in ${MACROS}; do
+ rm -f m4/$i
+ done
+}
+
+SRC_URI[archive.sha256sum] = "1bf834f5e10d60cc6124d74ed3c1dd38da646787fbf7872220b8b4068e476d4d"
diff --git a/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch b/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
deleted file mode 100644
index 560c3a6d70..0000000000
--- a/meta-oe/recipes-devtools/librcf/librcf/0001-Add-CMake-build-files.patch
+++ /dev/null
@@ -1,302 +0,0 @@
-From 613297214d78ee10111e74e90e025166ebbcad9f Mon Sep 17 00:00:00 2001
-From: Peter Liu <peter.x.liu@external.atlascopco.com>
-Date: Sun, 5 Mar 2017 16:15:40 +0100
-Subject: [PATCH] Add CMake build files
-
-Upstream-Status: Pending
-
-Signed-off-by: Peter Liu <peter.x.liu@external.atlascopco.com>
----
- CMakeLists.txt | 147 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- FindLibRcf.cmake | 63 +++++++++++++++++++++++
- VERSION.cmake | 21 ++++++++
- src/CMakeLists.txt | 25 +++++++++
- 4 files changed, 256 insertions(+)
- create mode 100644 CMakeLists.txt
- create mode 100644 FindLibRcf.cmake
- create mode 100644 VERSION.cmake
- create mode 100755 src/CMakeLists.txt
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-new file mode 100644
-index 0000000..f6e24be
---- /dev/null
-+++ b/CMakeLists.txt
-@@ -0,0 +1,147 @@
-+PROJECT (librcf)
-+
-+CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
-+
-+####################################################################
-+# OPTION #
-+####################################################################
-+OPTION (LIBRCF_USE_OPENSSL "Build with OpenSSL support?" OFF)
-+OPTION (LIBRCF_OPENSSL_STATIC "Enable static linking to OpenSSL?" OFF)
-+OPTION (LIBRCF_USE_ZLIB "Build with zlib support?" OFF)
-+OPTION (LIBRCF_ZLIB_STATIC "Enable static linking to zlib?" OFF)
-+OPTION (LIBRCF_USE_SF_SERIALIZATION "Build with SF serialization support?" ON)
-+OPTION (LIBRCF_USE_BOOST_SERIALIZATION "Build with Boost.Serialization support?" OFF)
-+OPTION (LIBRCF_USE_BOOST_FILESYSTEM "Build with Boost.Filesystem support (required for file transfer support)?" OFF)
-+OPTION (LIBRCF_USE_BOOST_ASIO "Build with Boost asio support?" ON)
-+OPTION (LIBRCF_USE_PROTOBUF "Build with Protocol Buffer support?" OFF)
-+OPTION (LIBRCF_USE_JSON "Build with JSON Spirit (required for JSON-RPC support)?" OFF)
-+OPTION (LIBRCF_USE_IPV6 "Build with IPv6 support?" OFF)
-+OPTION (LIBRCF_USE_CUSTOM_ALLOCATOR "Build with custom allocator support?" OFF)
-+OPTION (LIBRCF_BUILD_DLL "Build a DLL exporting RCF?" OFF)
-+OPTION (LIBRCF_AUTO_INIT_DEINIT "Enable automatic RCF initialization and deinitialization?" OFF)
-+OPTION (LIBRCF_BUILD_STATIC_LIBS "Build the static library?" ON)
-+OPTION (LIBRCF_BUILD_SHARED_LIBS "Build the shared library?" ON)
-+OPTION (LIBRCF_BUILD_DEMOS "Build demo programs?" ON)
-+
-+####################################################################
-+# CONFIGURATION #
-+####################################################################
-+INCLUDE (${CMAKE_SOURCE_DIR}/VERSION.cmake)
-+
-+SET (LIBRCF_LIBRARIES "-lpthread -ldl -latomic")
-+INCLUDE_DIRECTORIES (${CMAKE_SOURCE_DIR}/include)
-+
-+IF (LIBRCF_USE_OPENSSL)
-+ IF (NOT OPENSSL_FOUND)
-+ FIND_PACKAGE (OpenSSL REQUIRED)
-+ ENDIF (NOT OPENSSL_FOUND)
-+ INCLUDE_DIRECTORIES (${OPENSSL_INCLUDE_DIR})
-+ ADD_DEFINITIONS (-DRCF_USE_OPENSSL)
-+ENDIF (LIBRCF_USE_OPENSSL)
-+
-+IF (LIBRCF_OPENSSL_STATIC)
-+ LIST (APPEND LIBRCF_LIBRARIES ${OPENSSL_LIBRARIES})
-+ ADD_DEFINITIONS (-DRCF_OPENSSL_STATIC)
-+ENDIF (LIBRCF_OPENSSL_STATIC)
-+
-+IF (LIBRCF_USE_ZLIB)
-+ IF (NOT ZLIB_FOUND)
-+ FIND_PACKAGE (ZLIB REQUIRED)
-+ ENDIF (NOT ZLIB_FOUND)
-+ INCLUDE_DIRECTORIES (${ZLIB_INCLUDE_DIR})
-+ ADD_DEFINITIONS (-DRCF_USE_ZLIB)
-+ENDIF (LIBRCF_USE_ZLIB)
-+
-+IF (LIBRCF_ZLIB_STATIC)
-+ LIST (APPEND LIBRCF_LIBRARIES ${ZLIB_LIBRARIES})
-+ ADD_DEFINITIONS (-DRCF_ZLIB_STATIC)
-+ENDIF (LIBRCF_ZLIB_STATIC)
-+
-+IF (LIBRCF_USE_SF_SERIALIZATION)
-+ IF (NOT Boost_SYSTEM_FOUND)
-+ FIND_PACKAGE (Boost REQUIRED COMPONENTS system)
-+ ENDIF (NOT Boost_SYSTEM_FOUND)
-+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR})
-+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_SYSTEM_LIBRARY})
-+ ADD_DEFINITIONS (-DRCF_USE_SF_SERIALIZATION)
-+ENDIF (LIBRCF_USE_SF_SERIALIZATION)
-+
-+IF (LIBRCF_USE_BOOST_SERIALIZATION)
-+ IF (NOT Boost_SERIALIZATION_FOUND)
-+ FIND_PACKAGE (Boost REQUIRED COMPONENTS serialization)
-+ ENDIF (NOT Boost_SERIALIZATION_FOUND)
-+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR})
-+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_SERIALIZATION_LIBRARY})
-+ ADD_DEFINITIONS (-DRCF_USE_BOOST_SERIALIZATION)
-+ENDIF (LIBRCF_USE_BOOST_SERIALIZATION)
-+
-+IF (LIBRCF_USE_BOOST_FILESYSTEM)
-+ IF (NOT Boost_FILESYSTEM_FOUND)
-+ FIND_PACKAGE (Boost REQUIRED COMPONENTS filesystem system)
-+ ENDIF (NOT Boost_FILESYSTEM_FOUND)
-+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR})
-+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_FILESYSTEM_LIBRARY})
-+ LIST (APPEND LIBRCF_LIBRARIES ${Boost_SYSTEM_LIBRARY})
-+ ADD_DEFINITIONS (-DRCF_USE_BOOST_FILESYSTEM)
-+ENDIF (LIBRCF_USE_BOOST_FILESYSTEM)
-+
-+IF (LIBRCF_USE_BOOST_ASIO)
-+ IF (NOT Boost_FOUND)
-+ FIND_PACKAGE (Boost REQUIRED)
-+ ENDIF (NOT Boost_FOUND)
-+ INCLUDE_DIRECTORIES (${Boost_INCLUDE_DIR})
-+ ADD_DEFINITIONS (-DRCF_USE_BOOST_ASIO)
-+ENDIF (LIBRCF_USE_BOOST_ASIO)
-+
-+IF (LIBRCF_USE_PROTOBUF)
-+ IF(NOT Protobuf_FOUND)
-+ FIND_PACKAGE (Protobuf REQUIRED)
-+ ENDIF (NOT Protobuf_FOUND)
-+ INCLUDE_DIRECTORIES (${Protobuf_INCLUDE_DIR})
-+ LIST (APPEND LIBRCF_LIBRARIES ${Protobuf_LIBRARIES})
-+ ADD_DEFINITIONS (-DRCF_USE_PROTOBUF)
-+ENDIF (LIBRCF_USE_PROTOBUF)
-+
-+IF (LIBRCF_USE_JSON)
-+ IF (NOT LibJsonSpirit_FOUND)
-+ FIND_PACKAGE (LibJsonSpirit REQUIRED)
-+ ENDIF (NOT LibJsonSpirit_FOUND)
-+ INCLUDE_DIRECTORIES (${LibJsonSpirit_INCLUDE_DIR})
-+ LIST (APPEND LIBRCF_LIBRARIES ${LibJsonSpirit_LIBRARIES})
-+ ADD_DEFINITIONS (-DRCF_USE_JSON)
-+ENDIF (LIBRCF_USE_JSON)
-+
-+IF (LIBRCF_USE_IPV6)
-+ ADD_DEFINITIONS (-DRCF_USE_IPV6)
-+ENDIF (LIBRCF_USE_IPV6)
-+
-+IF (LIBRCF_USE_CUSTOM_ALLOCATOR)
-+ ADD_DEFINITIONS (-DRCF_USE_CUSTOM_ALLOCATOR)
-+ENDIF (LIBRCF_USE_CUSTOM_ALLOCATOR)
-+
-+IF (LIBRCF_BUILD_DLL)
-+ ADD_DEFINITIONS (-DRCF_BUILD_DLL)
-+ENDIF (LIBRCF_BUILD_DLL)
-+
-+IF (LIBRCF_AUTO_INIT_DEINIT)
-+ ADD_DEFINITIONS (-DRCF_AUTO_INIT_DEINIT)
-+ENDIF (LIBRCF_AUTO_INIT_DEINIT)
-+
-+####################################################################
-+# SUBDIRECTORY #
-+####################################################################
-+ADD_SUBDIRECTORY (src)
-+
-+IF (LIBRCF_BUILD_DEMOS)
-+ # Server
-+ ADD_EXECUTABLE (RcfServer demo/Server.cpp)
-+ TARGET_LINK_LIBRARIES (RcfServer rcf ${LIBRCF_LIBRARIES})
-+ INSTALL (TARGETS RcfServer DESTINATION ${CMAKE_INSTALL_BINDIR})
-+
-+ # Client
-+ ADD_EXECUTABLE (RcfClient demo/Client.cpp)
-+ TARGET_LINK_LIBRARIES (RcfClient rcf ${LIBRCF_LIBRARIES})
-+ INSTALL (TARGETS RcfClient DESTINATION ${CMAKE_INSTALL_BINDIR})
-+ENDIF (LIBRCF_BUILD_DEMOS)
-+
-+INSTALL (FILES ${CMAKE_SOURCE_DIR}/FindLibRcf.cmake DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/Modules)
-diff --git a/FindLibRcf.cmake b/FindLibRcf.cmake
-new file mode 100644
-index 0000000..9d7d8cd
---- /dev/null
-+++ b/FindLibRcf.cmake
-@@ -0,0 +1,63 @@
-+# FindLibRcf - Find librcf headers and libraries.
-+#
-+# Sample:
-+#
-+# SET( LibRcf_USE_STATIC_LIBS OFF )
-+# FIND_PACKAGE( LibRcf REQUIRED )
-+# IF( LibRcf_FOUND )
-+# INCLUDE_DIRECTORIES( ${LibRcf_INCLUDE_DIRS} )
-+# TARGET_LINK_LIBRARIES( ... ${LibRcf_LIBRARIES} )
-+# ENDIF()
-+#
-+# Variables used by this module need to be set before calling find_package
-+#
-+# LibRcf_USE_STATIC_LIBS Can be set to ON to force the use of the static
-+# librcf libraries. Defaults to OFF.
-+#
-+# Variables provided by this module:
-+#
-+# LibRcf_FOUND Include dir, librcf libraries.
-+#
-+# LibRcf_LIBRARIES Link to these to use all the libraries you specified.
-+#
-+# LibRcf_INCLUDE_DIRS Include directories.
-+#
-+# For each component you specify in find_package(), the following (UPPER-CASE)
-+# variables are set to pick and choose components instead of just using LibRcf_LIBRARIES:
-+#
-+# LIBRCF_FOUND TRUE if librcf was found
-+# LIBRCF_LIBRARY librcf libraries
-+#
-+
-+# Support preference of static libs by adjusting CMAKE_FIND_LIBRARY_SUFFIXES
-+IF(LibRcf_USE_STATIC_LIBS)
-+ SET( _ORIG_CMAKE_FIND_LIBRARY_SUFFIXES ${CMAKE_FIND_LIBRARY_SUFFIXES})
-+ SET(CMAKE_FIND_LIBRARY_SUFFIXES .a )
-+ENDIF()
-+
-+# Look for the header files
-+UNSET(LibRcf_INCLUDE_DIRS CACHE)
-+FIND_PATH(LibRcf_INCLUDE_DIRS NAMES RCF/RcfClient.hpp)
-+
-+# Look for the core library
-+UNSET(LIBRCF_LIBRARY CACHE)
-+FIND_LIBRARY(LIBRCF_LIBRARY NAMES rcf)
-+FIND_PACKAGE_HANDLE_STANDARD_ARGS(LibRcf DEFAULT_MSG LIBRCF_LIBRARY LibRcf_INCLUDE_DIRS)
-+MARK_AS_ADVANCED(
-+ LIBRCF_FOUND
-+ LIBRCF_LIBRARY
-+)
-+
-+# Prepare return values and collectiong more components
-+SET(LibRcf_FOUND ${LIBRCF_FOUND})
-+SET(LibRcf_LIBRARIES ${LIBRCF_LIBRARY})
-+MARK_AS_ADVANCED(
-+ LibRcf_FOUND
-+ LibRcf_LIBRARIES
-+ LibRcf_INCLUDE_DIRS
-+)
-+
-+# Restore CMAKE_FIND_LIBRARY_SUFFIXES
-+IF(LibRcf_USE_STATIC_LIBS)
-+ SET(CMAKE_FIND_LIBRARY_SUFFIXES ${_ORIG_CMAKE_FIND_LIBRARY_SUFFIXES} )
-+ENDIF()
-diff --git a/VERSION.cmake b/VERSION.cmake
-new file mode 100644
-index 0000000..8b4bcdc
---- /dev/null
-+++ b/VERSION.cmake
-@@ -0,0 +1,21 @@
-+# ==================================================
-+# Versioning
-+# ==========
-+#
-+# MAJOR Major number for this branch.
-+#
-+# MINOR The most recent interface number this
-+# library implements.
-+#
-+# COMPATMINOR The latest binary compatible minor number
-+# this library implements.
-+#
-+# PATCH The implementation number of the current interface.
-+#
-+#
-+# - The package VERSION will be MAJOR.MINOR.PATCH.
-+#
-+
-+SET (LIBRCF_SOVERSION_MAJOR "2")
-+SET (LIBRCF_SOVERSION_MINOR "2")
-+SET (LIBRCF_SOVERSION_PATCH "0")
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-new file mode 100755
-index 0000000..c227901
---- /dev/null
-+++ b/src/CMakeLists.txt
-@@ -0,0 +1,25 @@
-+IF (NOT LIBRCF_BUILD_SHARED_LIBS)
-+ ADD_LIBRARY (rcf STATIC RCF/RCF.cpp)
-+ELSE (NOT LIBRCF_BUILD_SHARED_LIBS)
-+ ADD_LIBRARY (rcf SHARED RCF/RCF.cpp)
-+ TARGET_LINK_LIBRARIES (rcf ${LIBRCF_LIBRARIES})
-+ SET_TARGET_PROPERTIES (rcf PROPERTIES COMPILE_FLAGS ${CMAKE_SHARED_LIBRARY_C_FLAGS})
-+ SET_TARGET_PROPERTIES (rcf PROPERTIES VERSION ${LIBRCF_SOVERSION_MAJOR}.${LIBRCF_SOVERSION_MINOR}.${LIBRCF_SOVERSION_PATCH})
-+ENDIF (NOT LIBRCF_BUILD_SHARED_LIBS)
-+
-+SET_TARGET_PROPERTIES (rcf PROPERTIES PROJECT_LABEL "RCF Library")
-+SET_TARGET_PROPERTIES (rcf PROPERTIES OUTPUT_NAME "rcf")
-+SET_TARGET_PROPERTIES (rcf PROPERTIES SOVERSION ${LIBRCF_SOVERSION_MAJOR})
-+SET_TARGET_PROPERTIES (rcf PROPERTIES INSTALL_NAME_DIR ${CMAKE_INSTALL_LIBDIR})
-+
-+INSTALL (DIRECTORY "${CMAKE_SOURCE_DIR}/include/RCF" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+INSTALL (DIRECTORY "${CMAKE_SOURCE_DIR}/include/SF" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+INSTALL (TARGETS rcf LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+
-+IF (LIBRCF_BUILD_STATIC_LIBS AND LIBRCF_BUILD_SHARED_LIBS)
-+ ADD_LIBRARY (rcf_static STATIC RCF/RCF.cpp)
-+ SET_TARGET_PROPERTIES (rcf_static PROPERTIES PROJECT_LABEL "RCF Static Library")
-+ SET_TARGET_PROPERTIES (rcf_static PROPERTIES OUTPUT_NAME "rcf")
-+ SET_TARGET_PROPERTIES (rcf_static PROPERTIES SOVERSION ${LIBRCF_SOVERSION_MAJOR})
-+ INSTALL (TARGETS rcf_static LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
-+ENDIF (LIBRCF_BUILD_STATIC_LIBS AND LIBRCF_BUILD_SHARED_LIBS)
---
-1.9.1
-
diff --git a/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch b/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch
deleted file mode 100644
index d91accf1da..0000000000
--- a/meta-oe/recipes-devtools/librcf/librcf/0001-Check-for-__powerpc__-define.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From ac7316679e30f7013604b19aa0949a0744e91d2f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Jul 2017 13:06:30 -0700
-Subject: [PATCH] Check for __powerpc__ define
-
-Also check for gcc's internal define for ppc platform
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/RCF/ByteOrdering.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/RCF/ByteOrdering.cpp b/src/RCF/ByteOrdering.cpp
-index 278ca80..9f9c446 100755
---- a/src/RCF/ByteOrdering.cpp
-+++ b/src/RCF/ByteOrdering.cpp
-@@ -36,7 +36,7 @@ namespace RCF {
-
- const ByteOrder MachineByteOrder = BigEndian;
-
--#elif defined( __ppc__ )
-+#elif defined( __ppc__ ) || defined( __powerpc__ )
-
- const ByteOrder MachineByteOrder = BigEndian;
-
---
-2.13.2
-
diff --git a/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch b/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch
deleted file mode 100644
index e949dee40e..0000000000
--- a/meta-oe/recipes-devtools/librcf/librcf/0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d78851b6f87f2472f041102d7b3726ffc009bfad Mon Sep 17 00:00:00 2001
-From: Ming Liu <peter.x.liu@external.atlascopco.com>
-Date: Tue, 6 Jun 2017 05:54:20 +0200
-Subject: [PATCH] ClientStub.hpp: fix a clang compiling issue
-
-A error was observed with clang compiler, as follows:
-| src/RCF/RCF.cpp:49:
-| src/RCF/ClientStub.cpp:28:
-| include/RCF/Future.hpp:49:26: error: 'enrol' is a private member of 'RCF::ClientStub'
-
-it can be fixed by declaring Future as a friend class of ClientStub.
-
-Upstream-Status: Pending
-
-Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
----
- include/RCF/ClientStub.hpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/RCF/ClientStub.hpp b/include/RCF/ClientStub.hpp
-index 9882cf4..8465625 100755
---- a/include/RCF/ClientStub.hpp
-+++ b/include/RCF/ClientStub.hpp
-@@ -372,6 +372,8 @@ namespace RCF {
-
- private:
-
-+ template<typename U>
-+ friend class Future;
- friend class FutureImplBase;
-
- template<
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch b/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
deleted file mode 100644
index e08efb92f7..0000000000
--- a/meta-oe/recipes-devtools/librcf/librcf/aarch64-support.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
-===================================================================
---- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp
-+++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
-@@ -60,7 +60,7 @@ namespace RCF {
-
- const ByteOrder MachineByteOrder = LittleEndian;
-
--#elif defined(__arm__)
-+#elif defined(__arm__) || defined(__aarch64__)
-
- const ByteOrder MachineByteOrder = LittleEndian;
-
diff --git a/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch b/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch
deleted file mode 100644
index 4a327f78e1..0000000000
--- a/meta-oe/recipes-devtools/librcf/librcf/mips-support.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Index: RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
-===================================================================
---- RCF-2.2.0.0.orig/src/RCF/ByteOrdering.cpp
-+++ RCF-2.2.0.0/src/RCF/ByteOrdering.cpp
-@@ -64,6 +64,14 @@ namespace RCF {
-
- const ByteOrder MachineByteOrder = LittleEndian;
-
-+#elif defined(__mipsel__) || defined(__mips64el__)
-+
-+ const ByteOrder MachineByteOrder = LittleEndian;
-+
-+#elif defined( __mips__ ) || defined(__mips64__)
-+
-+ const ByteOrder MachineByteOrder = BigEndian;
-+
- #elif defined(__bfin__)
-
- const ByteOrder MachineByteOrder = LittleEndian;
diff --git a/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb b/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
deleted file mode 100644
index dcd47a4e69..0000000000
--- a/meta-oe/recipes-devtools/librcf/librcf_2.2.0.0.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "RCF (Remote Call Framework) is a cross-platform interprocess communication framework for C++"
-DESCRIPTION = "Unlike other communication frameworks, RCF doesn't use a separate \
-IDL (Interface Definition Language). RCF interfaces are defined directly in C++, \
-and serialization for user-defined data types likewise is implemented in C++. \
-Instead of a separate IDL compiler tool, RCF uses the C++ compiler to generate \
-client and server stubs."
-HOMEPAGE = "http://www.deltavsoft.com/"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://license.txt;md5=7586a312b9e978f9d6fac9a5780d1f84"
-
-SRC_URI = "http://www.deltavsoft.com/downloads/RCF-${PV}.tar.gz \
- file://0001-Add-CMake-build-files.patch \
- file://aarch64-support.patch \
- file://0001-ClientStub.hpp-fix-a-clang-compiling-issue.patch \
- file://mips-support.patch \
- file://0001-Check-for-__powerpc__-define.patch \
- "
-
-SRC_URI[md5sum] = "7ecb3c73f7eb66dba8790b659374f690"
-SRC_URI[sha256sum] = "bbfcc88de502c39604878c395f516b03fff4eac63eb4f7f44c07d433839712dd"
-
-S = "${WORKDIR}/RCF-${PV}"
-
-inherit cmake dos2unix
-
-PACKAGECONFIG ?= "zlib openssl sf-serialization boost-filesystem boost-asio protobuf json dll static shared demos"
-PACKAGECONFIG[zlib] = "-DLIBRCF_USE_ZLIB=ON,-DLIBRCF_USE_ZLIB=OFF,zlib,zlib"
-PACKAGECONFIG[zlib-static] = "-DLIBRCF_USE_ZLIB=ON -DLIBRCF_ZLIB_STATIC=ON,-DLIBRCF_ZLIB_STATIC=OFF,zlib,"
-PACKAGECONFIG[openssl] = "-DLIBRCF_USE_OPENSSL=ON,-DLIBRCF_USE_OPENSSL=OFF,openssl,libssl libcrypto"
-PACKAGECONFIG[openssl-static] = "-DLIBRCF_USE_OPENSSL=ON -DLIBRCF_OPENSSL_STATIC=ON,-DLIBRCF_OPENSSL_STATIC=OFF,openssl,"
-PACKAGECONFIG[sf-serialization] = "-DLIBRCF_USE_SF_SERIALIZATION=ON,-DLIBRCF_USE_SF_SERIALIZATION=OFF,boost,"
-PACKAGECONFIG[boost-serialization] = "-DLIBRCF_USE_BOOST_SERIALIZATION=ON,-DLIBRCF_USE_BOOST_SERIALIZATION=OFF,boost,"
-PACKAGECONFIG[boost-filesystem] = "-DLIBRCF_USE_BOOST_FILESYSTEM=ON,-DLIBRCF_USE_BOOST_FILESYSTEM=OFF,boost,"
-PACKAGECONFIG[boost-asio] = "-DLIBRCF_USE_BOOST_ASIO=ON,-DLIBRCF_USE_BOOST_ASIO=OFF,boost,"
-PACKAGECONFIG[protobuf] = "-DLIBRCF_USE_PROTOBUF=ON,-DLIBRCF_USE_PROTOBUF=OFF,protobuf,protobuf"
-PACKAGECONFIG[json] = "-DLIBRCF_USE_JSON=ON,-DLIBRCF_USE_JSON=OFF,json-spirit,json-spirit"
-PACKAGECONFIG[ipv6] = "-DLIBRCF_USE_IPV6=ON,-DLIBRCF_USE_IPV6=OFF,"
-PACKAGECONFIG[custom-allocator] = "-DLIBRCF_USE_CUSTOM_ALLOCATOR=ON,-DLIBRCF_USE_CUSTOM_ALLOCATOR=OFF,"
-PACKAGECONFIG[dll] = "-DLIBRCF_BUILD_DLL=ON,-DLIBRCF_BUILD_DLL=OFF,"
-PACKAGECONFIG[auto-init-deinit] = "-DLIBRCF_AUTO_INIT_DEINIT=ON,-DLIBRCF_AUTO_INIT_DEINIT=OFF,"
-PACKAGECONFIG[static] = "-DLIBRCF_BUILD_STATIC_LIBS=ON,-DLIBRCF_BUILD_STATIC_LIBS=OFF,"
-PACKAGECONFIG[shared] = "-DLIBRCF_BUILD_SHARED_LIBS=ON,-DLIBRCF_BUILD_SHARED_LIBS=OFF,"
-PACKAGECONFIG[demos] = "-DLIBRCF_BUILD_DEMOS=ON,-DLIBRCF_BUILD_DEMOS=OFF,"
-
-PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'demos', '${PN}-demos', '', d)}"
-
-FILES_${PN}-demos = "${bindir}/*"
-
-BBCLASSEXTEND = "nativesdk"
-
-PNBLACKLIST[librcf] = " error: invalid use of incomplete type 'RCF::AsioIoService {aka class boost::asio::io_service}; among others?"
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 b83e86a488..2a1234c57e 100644
--- a/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
+++ b/meta-oe/recipes-devtools/libsombok3/libsombok3_2.4.0.bb
@@ -4,10 +4,10 @@ Unicode Standard Annex #14 (UAX #14). East_Asian_Width informative \
properties defined by Annex #11 (UAX #11) may be concerned to determin \
breaking positions. This package also implements "default" Grapheme \
Cluster segmentation described in Annex #29 (UAX #29)."
-LICENSE = "Artistic-1.0 | GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=5b122a36d0f6dc55279a0ebc69f3c60b"
-SRC_URI = "git://github.com/hatukanezumi/sombok.git;protocol=https \
+SRC_URI = "git://github.com/hatukanezumi/sombok.git;protocol=https;branch=master \
file://0001-configure.ac-fix-cross-compiling-issue.patch \
"
diff --git a/meta-oe/recipes-devtools/libubox/libubox/0001-blobmsg-fix-array-out-of-bounds-GCC-10-warning.patch b/meta-oe/recipes-devtools/libubox/libubox/0001-blobmsg-fix-array-out-of-bounds-GCC-10-warning.patch
new file mode 100644
index 0000000000..4f1dd76326
--- /dev/null
+++ b/meta-oe/recipes-devtools/libubox/libubox/0001-blobmsg-fix-array-out-of-bounds-GCC-10-warning.patch
@@ -0,0 +1,42 @@
+From a12325a0cbf3bf1d66a0b0f8d85e08083bae6066 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20=C5=A0tetiar?= <ynezz@true.cz>
+Date: Wed, 25 Dec 2019 10:27:59 +0100
+Subject: [PATCH] blobmsg: fix array out of bounds GCC 10 warning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fixes following warning reported by GCC 10.0.0 20191203:
+
+ blobmsg.c:234:2: error: 'strcpy' offset 6 from the object at 'attr' is out of the bounds of referenced subobject 'name' with type 'uint8_t[0]' {aka 'unsigned char[0]'} at offset 6 [-Werror=array-bounds]
+ 234 | strcpy((char *) hdr->name, (const char *)name);
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+ In file included from blobmsg.c:16:
+ blobmsg.h:42:10: note: subobject 'name' declared here
+ 42 | uint8_t name[];
+ | ^~~~
+
+Upstream-Status: Submitted [https://gitlab.com/ynezz/openwrt-libubox/commit/3775b3aa28de8c20d96b6f02786a327423b0748a]
+Reported-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Petr Štetiar <ynezz@true.cz>
+---
+ blobmsg.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blobmsg.c b/blobmsg.c
+index a860483..b6b7535 100644
+--- a/blobmsg.c
++++ b/blobmsg.c
+@@ -195,7 +195,7 @@ blobmsg_new(struct blob_buf *buf, int type, const char *name, int payload_len, v
+ attr->id_len |= be32_to_cpu(BLOB_ATTR_EXTENDED);
+ hdr = blob_data(attr);
+ hdr->namelen = cpu_to_be16(namelen);
+- strcpy((char *) hdr->name, (const char *)name);
++ memcpy(hdr->name, name, namelen);
+ pad_end = *data = blobmsg_data(attr);
+ pad_start = (char *) &hdr->name[namelen];
+ if (pad_start < pad_end)
+--
+2.24.1
+
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 f9f4e08b71..b2898c9c7f 100644
--- a/meta-oe/recipes-devtools/libubox/libubox_git.bb
+++ b/meta-oe/recipes-devtools/libubox/libubox_git.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "C utility functions for OpenWrt"
SECTION = "libs"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "\
file://avl.c;endline=39;md5=00810155fed3d604816ec5814523d60a \
file://avl-cmp.c;endline=15;md5=1603e6094b432a5f3f320877a06f41b5 \
@@ -13,17 +13,18 @@ LIC_FILES_CHKSUM = "\
"
SRC_URI = "\
- git://git.openwrt.org/project/libubox.git \
+ git://git.openwrt.org/project/libubox.git;branch=master \
file://0001-version-libraries.patch \
file://fix-libdir.patch \
+ file://0001-blobmsg-fix-array-out-of-bounds-GCC-10-warning.patch \
"
-SRCREV = "155bf39896f126b1ba121b816922a88dc34c31e3"
+SRCREV = "07413cce72e19520af55dfcbc765484f5ab41dd9"
PV = "1.0.1+git${SRCPV}"
S = "${WORKDIR}/git"
-inherit cmake
+inherit cmake pkgconfig
DEPENDS = "json-c"
diff --git a/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb b/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb
deleted file mode 100644
index b7c8358e28..0000000000
--- a/meta-oe/recipes-devtools/log4cplus/log4cplus_1.2.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "log4cplus provides a simple C++ logging API for log management"
-SECTION = "libs"
-HOMEPAGE = "http://sourceforge.net/projects/log4cplus/"
-BUGTRACKER = "http://sourceforge.net/p/log4cplus/bugs/"
-
-LICENSE = "Apache-2.0 & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cedaa287ececcb94f9f2880d9c4ef085"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz"
-SRC_URI[md5sum] = "e250f0f431c0723f8b625323e7b6465d"
-SRC_URI[sha256sum] = "ad5ec3b62f2f0bdc7f06fa398bde61091fd2493e91059e17315b5197420dcf04"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/"
-UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch b/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
deleted file mode 100644
index 6db6ab95ee..0000000000
--- a/meta-oe/recipes-devtools/lshw/files/0001-Makefile-Fix-cross-compilation.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 62f9ed95b5d0feab426bff452be793c62a6b795a Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:49:21 +0200
-Subject: [PATCH 1/2] Makefile: Fix cross compilation
-
-Allow building on ARMv7 and ARMv8.
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/Makefile | 2 +-
- src/core/Makefile | 2 +-
- src/gui/Makefile | 4 ++--
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index b50586bc9234..654b786dd899 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -18,7 +18,7 @@ export MANDIR
- export DATADIR
- export SQLITE
-
--CXX?=c++
-+CXX?=$(CROSS_COMPILE)c++
- INCLUDES=-I./core/
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
- CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
-diff --git a/src/core/Makefile b/src/core/Makefile
-index 5bf5a69cc6a6..2bd1b94c4175 100644
---- a/src/core/Makefile
-+++ b/src/core/Makefile
-@@ -1,6 +1,6 @@
- PACKAGENAME?=lshw
-
--CXX=c++
-+CXX?=$(CROSS_COMPILE)c++
- INCLUDES=
- DEFINES=-DPREFIX=\"$(PREFIX)\" -DSBINDIR=\"$(SBINDIR)\" -DMANDIR=\"$(MANDIR)\" -DDATADIR=\"$(DATADIR)\"
- CXXFLAGS?=-g -Wall $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
-diff --git a/src/gui/Makefile b/src/gui/Makefile
-index 332ce5704819..b0f925490356 100644
---- a/src/gui/Makefile
-+++ b/src/gui/Makefile
-@@ -1,7 +1,7 @@
- PACKAGENAME?=lshw
-
--CXX?=c++
--CC?=cc
-+CXX?=$(CROSS_COMPILE)c++
-+CC?=$(CROSS_COMPILE)cc
- STRIP?=strip
- OBJCOPY?=objcopy
-
---
-2.7.4
-
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/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch b/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
deleted file mode 100644
index d3da01b403..0000000000
--- a/meta-oe/recipes-devtools/lshw/files/0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 75667f8a0ae4f1689ff03eb1768b1ee8cdfbf00d Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:49:30 +0200
-Subject: [PATCH 2/2] Makefile: Use supplied LDFLAGS to silence OE GNU_HASH QA
- warning
-
-Fix OpenEmbedded/Yocto QA warning:
-
- ERROR: lshw-02.16-r1 do_package_qa: QA Issue: No GNU_HASH in the elf binary: 'build/tmp/work/cortexa5hf-neon-poky-linux-gnueabi/lshw/02.16-r1/packages-split/lshw/usr/sbin/lshw' [ldflags]
- ERROR: lshw-02.16-r1 do_package_qa: QA run found fatal errors. Please consider fixing them.
- ERROR: lshw-02.16-r1 do_package_qa: Function failed: do_package_qa
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/Makefile b/src/Makefile
-index 654b786dd899..a441ba2bb666 100644
---- a/src/Makefile
-+++ b/src/Makefile
-@@ -25,7 +25,7 @@ CXXFLAGS=-g -Wall -g $(INCLUDES) $(DEFINES) $(RPM_OPT_FLAGS)
- ifeq ($(SQLITE), 1)
- CXXFLAGS+= -DSQLITE $(shell pkg-config --cflags sqlite3)
- endif
--LDFLAGS=-L./core/ -g
-+LDFLAGS+=-L./core/ -g
- ifneq ($(shell $(LD) --help 2| grep -- --as-needed), )
- LDFLAGS+= -Wl,--as-needed
- endif
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch b/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
deleted file mode 100644
index 34924939de..0000000000
--- a/meta-oe/recipes-devtools/lshw/files/0003-sysfs-Fix-basename-build-with-musl.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From a89f2ba8496994c8b5e28a89202df15d64c648f9 Mon Sep 17 00:00:00 2001
-From: Krzysztof Kozlowski <krzk@kernel.org>
-Date: Wed, 6 Jun 2018 12:47:02 +0200
-Subject: [PATCH] sysfs: Fix basename() build with musl
-
-musl provides only standard basename() which accepts non-const string.
-This fixes build error with musl C library:
-
- | sysfs.cc: In function 'std::__cxx11::string sysfs_getbustype(const string&)':
- | sysfs.cc:102:21: error: 'basename' was not declared in this scope
- | "/devices/" + basename(path.c_str());
- | ^~~~~~~~
-
-Upstream-Status: Submitted
-Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
----
- src/core/dasd.cc | 3 ++-
- src/core/sysfs.cc | 9 +++++----
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/src/core/dasd.cc b/src/core/dasd.cc
-index 626b8a872b0f..b27844215cc4 100644
---- a/src/core/dasd.cc
-+++ b/src/core/dasd.cc
-@@ -2,6 +2,7 @@
- #include "osutils.h"
- #include "dasd.h"
- #include <glob.h>
-+#include <libgen.h>
- #include <string.h>
- #include <fcntl.h>
- #include <unistd.h>
-@@ -42,7 +43,7 @@ bool scan_dasd(hwNode & n)
- {
- for(dev_num=0;dev_num<devices.gl_pathc;dev_num++)
- {
-- dev_name = basename(devices.gl_pathv[dev_num]);
-+ dev_name = basename(const_cast<char *>(devices.gl_pathv[dev_num]));
- for (std::vector<std::string>::iterator it = sysfs_attribs.begin(); it != sysfs_attribs.end(); ++it)
- {
- std::string attrib_fname = std::string(SYSFS_PREFIX) + dev_name + "/device/" + *it;
-diff --git a/src/core/sysfs.cc b/src/core/sysfs.cc
-index acc9d0056d5e..c56bab7b3b9f 100644
---- a/src/core/sysfs.cc
-+++ b/src/core/sysfs.cc
-@@ -7,6 +7,7 @@
- #include "version.h"
- #include "sysfs.h"
- #include "osutils.h"
-+#include <libgen.h>
- #include <limits.h>
- #include <unistd.h>
- #include <stdlib.h>
-@@ -99,7 +100,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);
-@@ -139,7 +140,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
-@@ -207,7 +208,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()));
- }
-
-
-@@ -288,7 +289,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()));
- }
-
-
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/lshw/lshw_02.18.bb b/meta-oe/recipes-devtools/lshw/lshw_02.18.bb
deleted file mode 100644
index b344fbf326..0000000000
--- a/meta-oe/recipes-devtools/lshw/lshw_02.18.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 = "GPLv2+"
-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-Makefile-Fix-cross-compilation.patch \
- file://0002-Makefile-Use-supplied-LDFLAGS-to-silence-OE-GNU_HASH.patch \
- file://0003-sysfs-Fix-basename-build-with-musl.patch \
-"
-SRC_URI[md5sum] = "8671c6d94d6324a744b7f21f1bfecfd2"
-SRC_URI[sha256sum] = "ae22ef11c934364be4fd2a0a1a7aadf4495a0251ec6979da280d342a89ca3c2f"
-
-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}
-}
diff --git a/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb b/meta-oe/recipes-devtools/lshw/lshw_02.19.2.bb
new file mode 100644
index 0000000000..f5eda17f48
--- /dev/null
+++ b/meta-oe/recipes-devtools/lshw/lshw_02.19.2.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${SRCPV}"
+SRCREV = "b4e067307906ec6f277cce5c8a882f5edd03cbbc"
+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-Bug-fix-for-data-type-length-judgment.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch
new file mode 100644
index 0000000000..98cc9ba907
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-Bug-fix-for-data-type-length-judgment.patch
@@ -0,0 +1,42 @@
+From 5226333bddb755dbefd780d31450e0238dd5d3bd Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+Date: Wed, 16 Oct 2019 08:24:23 +0900
+Subject: [PATCH] Bug fix for data type length judgment.
+
+...
+if (byte_size == sizeof(long)) {
+
+ *type = is_signed ? ARGTYPE_LONG : ARGTYPE_ULONG;
+
+ return true;
+
+}
+...
+
+If ltrace's target command has a dbg package, ltrace will look for the debug file and analyze its contents.
+Ltrace determines the type of analysis result variable. The type of the variable is longlong.
+On 32-bit systems, longlong is 8 and long is 4 (same as in).
+An error occurred because the ltrace code did not process a variable of length 8.
+
+Upstream-Status: Pending
+Signed-off-by: Wang Mingyu <wangmy.fnst@cn.fujitsu.com>
+---
+ dwarf_prototypes.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/dwarf_prototypes.c b/dwarf_prototypes.c
+index bfac177..9887d4b 100644
+--- a/dwarf_prototypes.c
++++ b/dwarf_prototypes.c
+@@ -190,7 +190,7 @@ static bool get_integer_base_type(enum arg_type *type, int byte_size,
+ return true;
+ }
+
+- if (byte_size == sizeof(long)) {
++ if (byte_size == sizeof(long long)) {
+ *type = is_signed ? ARGTYPE_LONG : ARGTYPE_ULONG;
+ return true;
+ }
+--
+2.7.4
+
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-ensure-the-struct-pointers-are-null-initilized.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ensure-the-struct-pointers-are-null-initilized.patch
new file mode 100644
index 0000000000..9def41ca60
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ensure-the-struct-pointers-are-null-initilized.patch
@@ -0,0 +1,46 @@
+From 67a8fa478a4484bc4dbfb3ac74e11be1dd5af594 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Dec 2019 19:35:48 -0800
+Subject: [PATCH] ensure the struct pointers are null initilized
+
+Do not delete if pointer is already null
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ expr.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/expr.c b/expr.c
+index 4059a32..5ffd0ad 100644
+--- a/expr.c
++++ b/expr.c
+@@ -189,10 +189,8 @@ int
+ expr_clone(struct expr_node *retp, const struct expr_node *node)
+ {
+ *retp = *node;
+-
++ struct expr_node *nlhs = 0, *nrhs = 0;
+ switch (node->kind) {
+- struct expr_node *nlhs;
+- struct expr_node *nrhs;
+
+ case EXPR_OP_ARGNO:
+ case EXPR_OP_SELF:
+@@ -236,8 +234,10 @@ expr_clone(struct expr_node *retp, const struct expr_node *node)
+ if (expr_alloc_and_clone(&nlhs, node->lhs, node->own_lhs) < 0) {
+ if (node->kind == EXPR_OP_CALL2
+ && node->u.call.own_rhs) {
+- expr_destroy(nrhs);
+- free(nrhs);
++ if (nrhs) {
++ expr_destroy(nrhs);
++ free(nrhs);
++ }
+ return -1;
+ }
+ }
+--
+2.24.1
+
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-hook-Do-not-append-int-to-std-string.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-hook-Do-not-append-int-to-std-string.patch
new file mode 100644
index 0000000000..2890373821
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-hook-Do-not-append-int-to-std-string.patch
@@ -0,0 +1,33 @@
+From 8321f8b3befbaa355cfed988fdd8494133989676 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 4 Feb 2019 00:38:16 -0800
+Subject: [PATCH] hook: Do not append int to std::string
+
+Clang find this error
+
+| ../../../git/sysdeps/linux-gnu/hooks.c:205:51: error: adding 'int' to a string does not append to the string [-Werror,-Wstring-plus
+-int]
+| || sprintf(syspath, "%s/%s", sysconfdir, FN + 1) < 0)
+| ~~~^~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/linux-gnu/hooks.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/sysdeps/linux-gnu/hooks.c
++++ b/sysdeps/linux-gnu/hooks.c
+@@ -200,9 +200,10 @@ os_get_ltrace_conf_filenames(struct vect
+ const char *sysconfdir = SYSCONFDIR;
+ if (sysconfdir != NULL && *sysconfdir != '\0') {
+ /* No +1, we skip the initial period. */
+- syspath = malloc(strlen(sysconfdir) + sizeof FN);
++ syspath = malloc(strlen(sysconfdir) + sizeof FN + 2);
++ syspath[strlen(sysconfdir) + sizeof FN + 1] = '\0';
+ if (syspath == NULL
+- || sprintf(syspath, "%s/%s", sysconfdir, FN + 1) < 0)
++ || sprintf(syspath, "%s/%s", sysconfdir, FN) < 0)
+ goto fail;
+ }
+
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch
new file mode 100644
index 0000000000..f83e0a2738
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-mips-Use-hardcodes-values-for-ABI-syscall-bases.patch
@@ -0,0 +1,50 @@
+From ed8dbe1c793f2f770fef61adc4390277f903cceb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 9 Jul 2021 01:32:42 -0700
+Subject: [PATCH] mips: Use hardcodes values for ABI syscall bases
+
+mips kernels 5.13+ have stopped exposing the UAPIs which provided these
+defines, the values are more or less static so just use the hardcoded
+values for now. Use __NR_syscalls to get number of syscalls supported
+and include asm-generic/unistd.h to get this definition
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/linux-gnu/mips/trace.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/sysdeps/linux-gnu/mips/trace.c b/sysdeps/linux-gnu/mips/trace.c
+index d54818e..e72184d 100644
+--- a/sysdeps/linux-gnu/mips/trace.c
++++ b/sysdeps/linux-gnu/mips/trace.c
+@@ -33,6 +33,7 @@
+ #include <asm/unistd.h>
+ #include <assert.h>
+ #include <asm/unistd.h>
++#include <asm-generic/unistd.h>
+
+ #include "backend.h"
+ #include "common.h"
+@@ -135,12 +136,12 @@ syscall_p(struct process *proc, int status, int *sysnum)
+ int min_syscall, max_syscall, sigreturn, rt_sigreturn;
+ struct callstack_element *top = NULL;
+ int depth = proc->callstack_depth;
+- const int syscallbase[] = {__NR_O32_Linux, __NR_N32_Linux,
+- __NR_64_Linux, __NR_O32_Linux};
+- const int syscallnum[] = {__NR_O32_Linux_syscalls,
+- __NR_N32_Linux_syscalls,
+- __NR_64_Linux_syscalls,
+- __NR_O32_Linux_syscalls};
++ const int syscallbase[] = {4000, 6000,
++ 5000, 4000};
++ const int syscallnum[] = {__NR_syscalls,
++ __NR_syscalls,
++ __NR_syscalls,
++ __NR_syscalls};
+ const int rt_sigreturn_list[] = {193, 211, 211, 193};
+ const int sigreturn_list[] = {119, -1, -1, 119};
+
+--
+2.32.0
+
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-move-fprintf-into-same-block-where-modname-and-symna.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-move-fprintf-into-same-block-where-modname-and-symna.patch
new file mode 100644
index 0000000000..54acaace1a
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-move-fprintf-into-same-block-where-modname-and-symna.patch
@@ -0,0 +1,37 @@
+From 0cad025f80cf090dc16a5b70e21477f5b08a67fd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 20 Dec 2018 11:27:45 -0800
+Subject: [PATCH] move fprintf into same block where modname and symname are
+ computed
+
+In its current state if mod turns out to be NULL then modname and
+symname will also turn out to be NULL and fprinting them as strings will
+be problematic
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ output.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/output.c b/output.c
+index b63befe..5aada7b 100644
+--- a/output.c
++++ b/output.c
+@@ -654,12 +654,11 @@ frame_callback (Dwfl_Frame *state, void *arg)
+ NULL, NULL, NULL);
+ symname = dwfl_module_addrinfo(mod, pc, &off, &sym,
+ NULL, NULL, NULL);
++ /* This mimics the output produced by libunwind below. */
++ fprintf(options.output, " > %s(%s+0x%" PRIx64 ") [%" PRIx64 "]\n",
++ modname, symname, off, pc);
+ }
+
+- /* This mimics the output produced by libunwind below. */
+- fprintf(options.output, " > %s(%s+0x%" PRIx64 ") [%" PRIx64 "]\n",
+- modname, symname, off, pc);
+-
+ /* See if we can extract the source line too and print it on
+ the next line if we can find it. */
+ if (mod != NULL) {
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
new file mode 100644
index 0000000000..35062debf2
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-Remove-unused-host_powerpc64-function.patch
@@ -0,0 +1,39 @@
+From 4517bf59838f40eb6e3f46e39adb5e5090c59df8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Jun 2021 18:14:36 -0700
+Subject: [PATCH] ppc: Remove unused host_powerpc64 function
+
+This function is dead code, remove it which avoids compiler warnings
+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/sysdeps/linux-gnu/ppc/plt.c b/sysdeps/linux-gnu/ppc/plt.c
+index 5f81889..9d1838b 100644
+--- a/sysdeps/linux-gnu/ppc/plt.c
++++ b/sysdeps/linux-gnu/ppc/plt.c
+@@ -142,16 +142,6 @@
+ #define PPC64_PLT_STUB_SIZE 4
+ #endif
+
+-static inline int
+-host_powerpc64()
+-{
+-#ifdef __powerpc64__
+- return 1;
+-#else
+- return 0;
+-#endif
+-}
+-
+ static void
+ mark_as_resolved(struct library_symbol *libsym, GElf_Addr value)
+ {
+--
+2.32.0
+
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-plt-do-not-free-symbol-libsym.patch b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-plt-do-not-free-symbol-libsym.patch
new file mode 100644
index 0000000000..4793e561c0
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/0001-ppc-plt-do-not-free-symbol-libsym.patch
@@ -0,0 +1,29 @@
+From f47672bed5905ae382e80b09dafca9a8da45aa67 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 19 Apr 2022 18:44:36 -0700
+Subject: [PATCH] ppc/plt: do not free symbol libsym
+
+delete_symbol_chain() will call free as well if sybol is non-null
+it also fixes use-after-free warnings that compiler emits
+
+Upstream-Status: Submitted [https://gitlab.com/cespedes/ltrace/-/merge_requests/2]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sysdeps/linux-gnu/ppc/plt.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/sysdeps/linux-gnu/ppc/plt.c b/sysdeps/linux-gnu/ppc/plt.c
+index 5f81889..7c1c025 100644
+--- a/sysdeps/linux-gnu/ppc/plt.c
++++ b/sysdeps/linux-gnu/ppc/plt.c
+@@ -687,7 +687,6 @@ arch_elf_add_func_entry(struct process *proc, struct ltelf *lte,
+ if (libsym == NULL
+ || library_symbol_init(libsym, addr, full_name, 1,
+ LS_TOPLT_NONE) < 0) {
+- free(libsym);
+ delete_symbol_chain(libsym);
+ libsym = NULL;
+ fprintf(stderr, "Couldn't add symbol %s"
+--
+2.36.0
+
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
new file mode 100644
index 0000000000..dcd0285db6
--- /dev/null
+++ b/meta-oe/recipes-devtools/ltrace/ltrace/add_ppc64le.patch
@@ -0,0 +1,41 @@
+Upstream-Status: Pending
+
+--- a/sysdeps/linux-gnu/ppc/ptrace.h
++++ b/sysdeps/linux-gnu/ppc/ptrace.h
+@@ -18,4 +18,5 @@
+ * 02110-1301 USA
+ */
+
++#include <asm/ptrace.h>
+ #include <sys/ptrace.h>
+--- a/sysdeps/linux-gnu/ppc/regs.c
++++ b/sysdeps/linux-gnu/ppc/regs.c
+@@ -23,11 +23,14 @@
+
+ #include "config.h"
+
++#include <string.h>
+ #include <sys/types.h>
+ #include <sys/ptrace.h>
+ #include <asm/ptrace.h>
+ #include <errno.h>
++#ifdef HAVE_ERROR_H
+ #include <error.h>
++#endif
+
+ #include "proc.h"
+ #include "common.h"
+@@ -49,8 +52,11 @@ get_instruction_pointer(struct process *
+ void
+ set_instruction_pointer(struct process *proc, void *addr)
+ {
+- if (ptrace(PTRACE_POKEUSER, proc->pid, sizeof(long)*PT_NIP, addr) != 0)
+- error(0, errno, "set_instruction_pointer");
++ if (ptrace(PTRACE_POKEUSER, proc->pid, sizeof(long)*PT_NIP, addr) != 0){
++ report_global_error("%s: set_instruction_pointer",
++ strerror(errno));
++ exit(1);
++ }
+ }
+
+ void *
diff --git a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb b/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
index abe015de2c..d690dd4f02 100644
--- a/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
+++ b/meta-oe/recipes-devtools/ltrace/ltrace_git.bb
@@ -6,7 +6,7 @@ It can also intercept and print the system calls executed by the program.\
"
HOMEPAGE = "http://ltrace.org/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
PE = "1"
@@ -14,8 +14,7 @@ PV = "7.91+git${SRCPV}"
SRCREV = "c22d359433b333937ee3d803450dc41998115685"
DEPENDS = "elfutils"
-RDEPENDS_${PN} = "elfutils"
-SRC_URI = "git://anonscm.debian.org/collab-maint/ltrace.git;branch=master \
+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 \
@@ -25,7 +24,17 @@ SRC_URI = "git://anonscm.debian.org/collab-maint/ltrace.git;branch=master \
file://0001-Add-support-for-mips64-n32-n64.patch \
file://0001-configure-Recognise-linux-musl-as-a-host-OS.patch \
file://0001-mips-plt.c-Delete-include-error.h.patch \
+ file://0001-move-fprintf-into-same-block-where-modname-and-symna.patch \
+ file://0001-hook-Do-not-append-int-to-std-string.patch \
+ file://0001-Bug-fix-for-data-type-length-judgment.patch \
+ file://0001-ensure-the-struct-pointers-are-null-initilized.patch \
+ 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"
+
S = "${WORKDIR}/git"
inherit autotools
@@ -34,6 +43,9 @@ PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
PACKAGECONFIG[unwind] = "--with-libunwind,--without-libunwind,libunwind"
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,libselinux"
-do_configure_prepend () {
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+
+do_configure:prepend () {
( cd ${S}; ./autogen.sh )
}
diff --git a/meta-oe/recipes-devtools/lua/lua/lua.pc.in b/meta-oe/recipes-devtools/lua/lua/lua.pc.in
deleted file mode 100644
index c27e86e85d..0000000000
--- a/meta-oe/recipes-devtools/lua/lua/lua.pc.in
+++ /dev/null
@@ -1,10 +0,0 @@
-prefix=/usr
-libdir=${prefix}/lib
-includedir=${prefix}/include
-
-Name: Lua
-Description: Lua language engine
-Version: @VERSION@
-Requires:
-Libs: -L${libdir} -llua -lm -ldl
-Cflags: -I${includedir}
diff --git a/meta-oe/recipes-devtools/lua/lua/run-ptest b/meta-oe/recipes-devtools/lua/lua/run-ptest
deleted file mode 100644
index 8e085e1af9..0000000000
--- a/meta-oe/recipes-devtools/lua/lua/run-ptest
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/bin/sh
-
-cd test
-lua -e"_U=true" all.lua > lua-test.tmp
-
-echo "--- test output ---"
-cat lua-test.tmp
-echo ""
-echo ""
-echo "--- ptest result ---"
-
-grep "final OK \!\!\!" lua-test.tmp > /dev/null
-if [ $? -eq 0 ]; then
- echo "PASS: lua"
-else
- echo "FAIL: lua"
-fi
-
-rm -f lua-test.tmp
diff --git a/meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch b/meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch
deleted file mode 100644
index f4cdc5d8c5..0000000000
--- a/meta-oe/recipes-devtools/lua/lua/uclibc-pthread.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: lua-5.1.4/src/Makefile
-===================================================================
---- a/src/Makefile.orig 2013-10-22 22:17:19.929103523 -0400
-+++ a/src/Makefile 2013-10-22 22:18:27.992104545 -0400
-@@ -9,7 +9,7 @@
- CC= gcc
- CFLAGS= -O2 -Wall -DLUA_COMPAT_ALL $(SYSCFLAGS) $(MYCFLAGS)
- LDFLAGS= $(SYSLDFLAGS) $(MYLDFLAGS)
--LIBS= -lm $(SYSLIBS) $(MYLIBS)
-+LIBS= -lm -lpthread $(SYSLIBS) $(MYLIBS)
-
- AR= ar rcu
- RANLIB= ranlib
diff --git a/meta-oe/recipes-devtools/lua/lua_5.3.4.bb b/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
deleted file mode 100644
index 8f4e8fe68c..0000000000
--- a/meta-oe/recipes-devtools/lua/lua_5.3.4.bb
+++ /dev/null
@@ -1,59 +0,0 @@
-DESCRIPTION = "Lua is a powerful light-weight programming language designed \
-for extending applications."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://doc/readme.html;beginline=318;endline=352;md5=60aa5cfdbd40086501778d9b6ebf29ee"
-HOMEPAGE = "http://www.lua.org/"
-
-DEPENDS = "readline"
-SRC_URI = "http://www.lua.org/ftp/lua-${PV}.tar.gz;name=tarballsrc \
- file://lua.pc.in \
- "
-SRC_URI += "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', \
- 'http://www.lua.org/tests/lua-${PV}-tests.tar.gz;name=tarballtest \
- file://run-ptest \
- ', '', d)}"
-
-SRC_URI[tarballsrc.md5sum] = "53a9c68bcc0eda58bdc2095ad5cdfc63"
-SRC_URI[tarballsrc.sha256sum] = "f681aa518233bc407e23acf0f5887c884f17436f000d453b2491a9f11a52400c"
-SRC_URI[tarballtest.md5sum] = "b14fe3748c1cb2d74e3acd1943629ba3"
-SRC_URI[tarballtest.sha256sum] = "b80771238271c72565e5a1183292ef31bd7166414cd0d43a8eb79845fa7f599f"
-
-inherit pkgconfig binconfig ptest
-
-UCLIBC_PATCHES += "file://uclibc-pthread.patch"
-SRC_URI_append_libc-uclibc = "${UCLIBC_PATCHES}"
-
-TARGET_CC_ARCH += " -fPIC ${LDFLAGS}"
-EXTRA_OEMAKE = "'CC=${CC} -fPIC' 'MYCFLAGS=${CFLAGS} -DLUA_USE_LINUX -fPIC' MYLDFLAGS='${LDFLAGS}'"
-
-do_configure_prepend() {
- sed -i -e s:/usr/local:${prefix}:g src/luaconf.h
-}
-
-do_compile () {
- oe_runmake linux
-}
-
-do_install () {
- oe_runmake \
- 'INSTALL_TOP=${D}${prefix}' \
- 'INSTALL_BIN=${D}${bindir}' \
- 'INSTALL_INC=${D}${includedir}/' \
- 'INSTALL_MAN=${D}${mandir}/man1' \
- 'INSTALL_SHARE=${D}${datadir}/lua' \
- 'INSTALL_LIB=${D}${libdir}' \
- 'INSTALL_CMOD=${D}${libdir}/lua/5.3' \
- install
- install -d ${D}${libdir}/pkgconfig
-
- sed -e s/@VERSION@/${PV}/ ${WORKDIR}/lua.pc.in > ${WORKDIR}/lua.pc
- install -m 0644 ${WORKDIR}/lua.pc ${D}${libdir}/pkgconfig/
- rmdir ${D}${datadir}/lua/5.3
- rmdir ${D}${datadir}/lua
-}
-
-do_install_ptest () {
- cp -R --no-dereference --preserve=mode,links -v ${WORKDIR}/lua-${PV}-tests ${D}${PTEST_PATH}/test
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch b/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch
index f123b3f55a..a29c8ce87c 100644
--- a/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch
+++ b/meta-oe/recipes-devtools/luajit/luajit/0001-Do-not-strip-automatically-this-leaves-the-stripping.patch
@@ -1,8 +1,7 @@
From 528009f5ca0685c95ef27f6c8957160499c0576a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 10 May 2013 10:42:45 -0700
-Subject: [PATCH] Do not strip automatically, this leaves the stripping
- busines to OE
+Subject: [PATCH] Do not strip automatically, this leaves the stripping busines to OE
Upstream-Status: Inappropriate [OE-Specific]
diff --git a/meta-oe/recipes-devtools/luajit/luajit/0001-Use-builtin-for-clear_cache.patch b/meta-oe/recipes-devtools/luajit/luajit/0001-Use-builtin-for-clear_cache.patch
new file mode 100644
index 0000000000..2c41180d91
--- /dev/null
+++ b/meta-oe/recipes-devtools/luajit/luajit/0001-Use-builtin-for-clear_cache.patch
@@ -0,0 +1,29 @@
+From ca8f7d968a212f2da64492faac4f80384a5ba395 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 11 Sep 2022 13:23:19 -0700
+Subject: [PATCH] Use builtin for clear_cache
+
+This makes it compile on mips/clang and also portable across platforms
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lj_mcode.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/lj_mcode.c b/src/lj_mcode.c
+index 163aada4..471897da 100644
+--- a/src/lj_mcode.c
++++ b/src/lj_mcode.c
+@@ -46,7 +46,7 @@ void lj_mcode_sync(void *start, void *end)
+ #elif LJ_TARGET_PPC
+ lj_vm_cachesync(start, end);
+ #elif defined(__GNUC__) || defined(__clang__)
+- __clear_cache(start, end);
++ __builtin___clear_cache(start, end);
+ #else
+ #error "Missing builtin to flush instruction cache"
+ #endif
+--
+2.37.3
+
diff --git a/meta-oe/recipes-devtools/luajit/luajit/clang.patch b/meta-oe/recipes-devtools/luajit/luajit/clang.patch
index c39ef6fd4a..807cc4417f 100644
--- a/meta-oe/recipes-devtools/luajit/luajit/clang.patch
+++ b/meta-oe/recipes-devtools/luajit/luajit/clang.patch
@@ -8,8 +8,8 @@ Index: LuaJIT-2.0.5/src/lj_arch.h
===================================================================
--- LuaJIT-2.0.5.orig/src/lj_arch.h
+++ LuaJIT-2.0.5/src/lj_arch.h
-@@ -313,7 +313,7 @@
- #error "Need at least GCC 4.2 or newer"
+@@ -436,7 +436,7 @@
+ #endif
#endif
#elif !LJ_TARGET_PS3
-#if (__GNUC__ < 4) || ((__GNUC__ == 4) && __GNUC_MINOR__ < 3)
diff --git a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb b/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
deleted file mode 100644
index 3052eb0484..0000000000
--- a/meta-oe/recipes-devtools/luajit/luajit_2.0.5.bb
+++ /dev/null
@@ -1,94 +0,0 @@
-SUMMARY = "Just-In-Time Compiler for Lua"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=10a96c93403affcc34765f4c2612bc22"
-HOMEPAGE = "http://luajit.org"
-
-PV .= "+git${SRCPV}"
-SRCREV = "02b521981a1ab919ff2cd4d9bcaee80baf77dce2"
-SRC_URI = "git://luajit.org/git/luajit-2.0.git;protocol=http \
- file://0001-Do-not-strip-automatically-this-leaves-the-stripping.patch \
- file://clang.patch \
-"
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig binconfig siteinfo
-
-BBCLASSEXTEND = "native"
-
-# http://luajit.org/install.html#cross
-# Host luajit needs to be compiled with the same pointer size
-# If you want to cross-compile to any 32 bit target on an x64 OS,
-# you need to install the multilib development package (e.g.
-# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part
-# (HOST_CC="gcc -m32").
-BUILD_CC_ARCH_append = " ${@['-m32',''][d.getVar('SITEINFO_BITS', True) != '32']}"
-
-# The lua makefiles expect the TARGET_SYS to be from uname -s
-# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD
-LUA_TARGET_OS = "Unknown"
-LUA_TARGET_OS_darwin = "Darwin"
-LUA_TARGET_OS_linux = "Linux"
-LUA_TARGET_OS_linux-gnueabi = "Linux"
-LUA_TARGET_OS_mingw32 = "Windows"
-
-# We don't want the lua buildsystem's compiler optimizations, or its
-# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply
-# to both host and target compiles
-EXTRA_OEMAKE = "\
- Q= E='@:' \
- \
- CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \
- \
- 'TARGET_SYS=${LUA_TARGET_OS}' \
- \
- 'CC=${CC}' \
- 'TARGET_AR=${AR} rcus' \
- 'TARGET_CFLAGS=${CFLAGS}' \
- 'TARGET_LDFLAGS=${LDFLAGS}' \
- 'TARGET_SHLDFLAGS=${LDFLAGS}' \
- 'HOST_CC=${BUILD_CC}' \
- 'HOST_CFLAGS=${BUILD_CFLAGS}' \
- \
- 'PREFIX=${prefix}' \
- 'MULTILIB=${baselib}' \
- 'LDCONFIG=:' \
-"
-
-do_compile () {
- oe_runmake
-}
-
-# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the
-# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those
-# expectations.
-EXTRA_OEMAKEINST = "\
- 'DESTDIR=${D}' \
- 'INSTALL_BIN=${D}${bindir}' \
- 'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \
- 'INSTALL_MAN=${D}${mandir}/man1' \
-"
-do_install () {
- oe_runmake ${EXTRA_OEMAKEINST} install
- rmdir ${D}${datadir}/lua/5.* \
- ${D}${datadir}/lua \
- ${D}${libdir}/lua/5.* \
- ${D}${libdir}/lua
-}
-
-PACKAGES += 'luajit-common'
-
-# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded
-# paths are packaged regardless of what the libdir and datadir paths are.
-FILES_${PN} += "${prefix}/${baselib} ${prefix}/share"
-FILES_${PN} += "${libdir}/libluajit-5.1.so.2 \
- ${libdir}/libluajit-5.1.so.${PV} \
-"
-FILES_${PN}-dev += "${libdir}/libluajit-5.1.a \
- ${libdir}/libluajit-5.1.so \
- ${libdir}/pkgconfig/luajit.pc \
-"
-FILES_luajit-common = "${datadir}/${BPN}-${PV}"
-
-# Aarch64 is not supported in this release
-COMPATIBLE_HOST = "^(?!aarch64).*"
diff --git a/meta-oe/recipes-devtools/luajit/luajit_git.bb b/meta-oe/recipes-devtools/luajit/luajit_git.bb
new file mode 100644
index 0000000000..06df0690ac
--- /dev/null
+++ b/meta-oe/recipes-devtools/luajit/luajit_git.bb
@@ -0,0 +1,103 @@
+SUMMARY = "Just-In-Time Compiler for Lua"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=23d6278200de9b48fd1439f80507cba8"
+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-220721"
+SRCREV = "32984282ddae666b3c94cd27538e1c78b49a1877"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig binconfig siteinfo
+
+BBCLASSEXTEND = "native"
+
+# http://luajit.org/install.html#cross
+# Host luajit needs to be compiled with the same pointer size
+# If you want to cross-compile to any 32 bit target on an x64 OS,
+# you need to install the multilib development package (e.g.
+# libc6-dev-i386 on Debian/Ubuntu) and build a 32 bit host part
+# (HOST_CC="gcc -m32").
+BUILD_CC_ARCH:append = " ${@['-m32',''][d.getVar('SITEINFO_BITS') != '32']}"
+
+# The lua makefiles expect the TARGET_SYS to be from uname -s
+# Values: Windows, Linux, Darwin, iOS, SunOS, PS3, GNU/kFreeBSD
+LUA_TARGET_OS = "Unknown"
+LUA_TARGET_OS:darwin = "Darwin"
+LUA_TARGET_OS:linux = "Linux"
+LUA_TARGET_OS:linux-gnueabi = "Linux"
+LUA_TARGET_OS:mingw32 = "Windows"
+
+# We don't want the lua buildsystem's compiler optimizations, or its
+# stripping, and we don't want it to pick up CFLAGS or LDFLAGS, as those apply
+# to both host and target compiles
+EXTRA_OEMAKE = "\
+ Q= E='@:' \
+ \
+ CCOPT= CCOPT_x86= CFLAGS= LDFLAGS= TARGET_STRIP='@:' \
+ \
+ 'TARGET_SYS=${LUA_TARGET_OS}' \
+ \
+ 'CC=${CC}' \
+ 'TARGET_AR=${AR} rcus' \
+ 'TARGET_CFLAGS=${CFLAGS}' \
+ 'TARGET_LDFLAGS=${LDFLAGS}' \
+ 'TARGET_SHLDFLAGS=${LDFLAGS}' \
+ 'HOST_CC=${BUILD_CC}' \
+ 'HOST_CFLAGS=${BUILD_CFLAGS}' \
+ \
+ 'PREFIX=${prefix}' \
+ 'MULTILIB=${baselib}' \
+ 'LDCONFIG=:' \
+"
+
+do_compile () {
+ oe_runmake
+}
+
+# There's INSTALL_LIB and INSTALL_SHARE also, but the lua binary hardcodes the
+# '/share' and '/' + LUA_MULTILIB paths, so we don't want to break those
+# expectations.
+EXTRA_OEMAKEINST = "\
+ 'DESTDIR=${D}' \
+ 'INSTALL_BIN=${D}${bindir}' \
+ 'INSTALL_INC=${D}${includedir}/luajit-$(MAJVER).$(MINVER)' \
+ 'INSTALL_MAN=${D}${mandir}/man1' \
+"
+do_install () {
+ oe_runmake ${EXTRA_OEMAKEINST} install
+ rmdir ${D}${datadir}/lua/5.* \
+ ${D}${datadir}/lua \
+ ${D}${libdir}/lua/5.* \
+ ${D}${libdir}/lua
+}
+
+PACKAGES += 'luajit-common'
+
+# See the comment for EXTRA_OEMAKEINST. This is needed to ensure the hardcoded
+# paths are packaged regardless of what the libdir and datadir paths are.
+FILES:${PN} += "${prefix}/${baselib} ${prefix}/share"
+FILES:${PN} += "${libdir}/libluajit-5.1.so.2 \
+ ${libdir}/libluajit-5.1.so.${PV} \
+"
+FILES:${PN}-dev += "${libdir}/libluajit-5.1.a \
+ ${libdir}/libluajit-5.1.so \
+ ${libdir}/pkgconfig/luajit.pc \
+"
+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"
+COMPATIBLE_HOST:powerpc64 = "null"
+COMPATIBLE_HOST:powerpc64le = "null"
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb b/meta-oe/recipes-devtools/luaposix/luaposix_35.1.bb
new file mode 100644
index 0000000000..a71bbebf70
--- /dev/null
+++ b/meta-oe/recipes-devtools/luaposix/luaposix_35.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=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/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/0001-configure-Fix-checks-for-system-headers.patch b/meta-oe/recipes-devtools/mcpp/files/0001-configure-Fix-checks-for-system-headers.patch
new file mode 100644
index 0000000000..d9bdc01ca1
--- /dev/null
+++ b/meta-oe/recipes-devtools/mcpp/files/0001-configure-Fix-checks-for-system-headers.patch
@@ -0,0 +1,44 @@
+From c1e9f2f3d086e0df3c10a2468fd7b37fd0c5038c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Sep 2022 00:02:08 -0700
+Subject: [PATCH] configure: Fix checks for system headers
+
+Define _DEFAULT_SOURCE in system.c so unistd.h can expose readlink API
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ src/system.c | 2 ++
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index cdf1eba..6fc81e6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -152,7 +152,7 @@ fi
+
+ dnl Checks for header files.
+
+-AC_CHECK_HEADERS( [unistd.h, stdint.h, inttypes.h])
++AC_CHECK_HEADERS( [unistd.h stdint.h inttypes.h])
+
+ dnl Checks for typedefs, and compiler characteristics.
+
+diff --git a/src/system.c b/src/system.c
+index 4e008fa..98631a6 100644
+--- a/src/system.c
++++ b/src/system.c
+@@ -36,6 +36,8 @@
+ * 1. specify the constants in "configed.H" or "noconfig.H",
+ * 2. append the system-dependent routines in this file.
+ */
++
++#define _DEFAULT_SOURCE
+ #if PREPROCESSED
+ #include "mcpp.H"
+ #else
+--
+2.37.3
+
diff --git a/meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch b/meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch
new file mode 100644
index 0000000000..b1e05c59d5
--- /dev/null
+++ b/meta-oe/recipes-devtools/mcpp/files/CVE-2019-14274.patch
@@ -0,0 +1,36 @@
+From ea453aca2742be6ac43ba4ce0da6f938a7e5a5d8 Mon Sep 17 00:00:00 2001
+From: He Liu <liulonnie@gmail.com>
+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/src/support.c b/src/support.c
+index c57eaef..e3357e4 100644
+--- a/src/support.c
++++ b/src/support.c
+@@ -188,7 +188,7 @@ static char * append_to_buffer(
+ size_t length
+ )
+ {
+- if (mem_buf_p->bytes_avail < length) { /* Need to allocate more memory */
++ if (mem_buf_p->bytes_avail < length + 1) { /* Need to allocate more memory */
+ size_t size = MAX( BUF_INCR_SIZE, length);
+
+ if (mem_buf_p->buffer == NULL) { /* 1st append */
+@@ -1722,6 +1722,8 @@ com_start:
+ sp -= 2;
+ while (*sp != '\n') /* Until end of line */
+ mcpp_fputc( *sp++, OUT);
++ mcpp_fputc('\n', OUT);
++ wrong_line = TRUE;
+ }
+ goto end_line;
+ default: /* Not a comment */
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch b/meta-oe/recipes-devtools/mcpp/files/ice-mcpp.patch
index 8103cf0920..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
@@ -114,37 +116,6 @@ diff -r -c -N ../mcpp-2.7.2-old/src/main.c ./src/main.c
}
int mcpp_lib_main
-diff -r -c -N ../mcpp-2.7.2-old/src/support.c ./src/support.c
-*** ../mcpp-2.7.2-old/src/support.c Tue Jun 10 06:02:33 2008
---- ./src/support.c Fri May 14 12:40:56 2010
-***************
-*** 188,194 ****
- size_t length
- )
- {
-! if (mem_buf_p->bytes_avail < length) { /* Need to allocate more memory */
- size_t size = MAX( BUF_INCR_SIZE, length);
-
- if (mem_buf_p->buffer == NULL) { /* 1st append */
---- 188,194 ----
- size_t length
- )
- {
-! if (mem_buf_p->bytes_avail < length + 1) { /* Need to allocate more memory */
- size_t size = MAX( BUF_INCR_SIZE, length);
-
- if (mem_buf_p->buffer == NULL) { /* 1st append */
-***************
-*** 1722,1727 ****
---- 1722,1729 ----
- sp -= 2;
- while (*sp != '\n') /* Until end of line */
- mcpp_fputc( *sp++, OUT);
-+ mcpp_fputc( '\n', OUT);
-+ wrong_line = TRUE;
- }
- goto end_line;
- default: /* Not a comment */
diff -r -c -N ../mcpp-2.7.2-old/src/system.c ./src/system.c
*** ../mcpp-2.7.2-old/src/system.c 2008-11-26 10:53:51.000000000 +0100
--- ./src/system.c 2011-02-21 16:18:05.678058106 +0100
diff --git a/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb b/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
index a7163a35a8..9445856730 100644
--- a/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
+++ b/meta-oe/recipes-devtools/mcpp/mcpp_2.7.2.bb
@@ -1,10 +1,12 @@
SUMMARY = "MCPP is a portable C/C++ preprocessor"
HOMEPAGE = "http://mcpp.sourceforge.net/"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=5ca370b75ec890321888a00cea9bc1d5"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
- file://ice-mcpp.patch "
+ file://ice-mcpp.patch \
+ file://0001-configure-Fix-checks-for-system-headers.patch \
+ file://CVE-2019-14274.patch"
SRC_URI[md5sum] = "512de48c87ab023a69250edc7a0c7b05"
SRC_URI[sha256sum] = "3b9b4421888519876c4fc68ade324a3bbd81ceeb7092ecdbbc2055099fcb8864"
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/memstat/memstat_1.0.bb b/meta-oe/recipes-devtools/memstat/memstat_1.0.bb
index 91a9200c34..7e0ff54dc5 100644
--- a/meta-oe/recipes-devtools/memstat/memstat_1.0.bb
+++ b/meta-oe/recipes-devtools/memstat/memstat_1.0.bb
@@ -6,7 +6,7 @@ is used and which 'old' libs are loaded. \
HOMEPAGE = "http://memstattool.sourceforge.net/"
SECTION = "devtool"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
S = "${WORKDIR}/memstattool"
@@ -19,7 +19,7 @@ SRC_URI = "http://sourceforge.net/projects/memstattool/files/memstat_${PV}.tar.g
SRC_URI[md5sum] = "2c3acc0c62b2a18f6601b84e54aa7462"
SRC_URI[sha256sum] = "245d5fc7fb87bcfd14486cd34917cae2856e799559ac568434af12c4852bce94"
-do_install_append(){
+do_install:append(){
install -d ${D}${bindir}
install -m 0755 memstat ${D}${bindir}
install -d ${D}${sysconfdir}
diff --git a/meta-oe/recipes-devtools/mercurial/mercurial_4.6.1.bb b/meta-oe/recipes-devtools/mercurial/mercurial_4.6.1.bb
deleted file mode 100644
index 13710aaea3..0000000000
--- a/meta-oe/recipes-devtools/mercurial/mercurial_4.6.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "The Mercurial distributed SCM"
-HOMEPAGE = "http://mercurial.selenic.com/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "python python-native"
-DEPENDS_class-native = "python-native"
-RDEPENDS_${PN} = "python python-modules"
-
-inherit python-dir
-
-SRC_URI = "https://www.mercurial-scm.org/release/${BP}.tar.gz"
-SRC_URI[md5sum] = "f9b2e4a3b5901ef744fa3abe4196e97e"
-SRC_URI[sha256sum] = "89fa8ecbc8aa6e48e98f9803a1683ba91367124295dba2407b28c34ca621108d"
-
-S = "${WORKDIR}/mercurial-${PV}"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OEMAKE = "STAGING_LIBDIR=${STAGING_LIBDIR} STAGING_INCDIR=${STAGING_INCDIR} \
- PREFIX=${prefix}"
-
-do_configure_append () {
- sed -i -e 's:PYTHON=python:PYTHON=${STAGING_BINDIR_NATIVE}/python-native/python:g' ${S}/Makefile
-}
-
-do_install () {
- oe_runmake -e install-bin DESTDIR=${D} PREFIX=${prefix}
-}
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
diff --git a/meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb b/meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb
new file mode 100644
index 0000000000..a415ebc1e8
--- /dev/null
+++ b/meta-oe/recipes-devtools/mercurial/mercurial_6.1.bb
@@ -0,0 +1,37 @@
+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 python3targetconfig
+
+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/mpich/mpich_3.2.bb b/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
deleted file mode 100644
index 51b313cef4..0000000000
--- a/meta-oe/recipes-devtools/mpich/mpich_3.2.bb
+++ /dev/null
@@ -1,47 +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=2106f0435056f3dd9349747a766e5816"
-
-SRC_URI = " \
- http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz \
-"
-
-SRC_URI[md5sum] = "f414cfa77099cd1fa1a5ae4e22db508a"
-SRC_URI[sha256sum] = "0778679a6b693d7b7caff37ff9d2856dc2bfc51318bf8373859bfa74253da3dc"
-
-RDEPENDS_${PN} += "bash perl libxml2"
-S = "${WORKDIR}/${BP}"
-
-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' \
-"
-
-inherit autotools-brokensep gettext
-
-do_configure_prepend() {
- for d in confdb test/mpi/confdb src/openpa/confdb src/pm/hydra/confdb src/pm/hydra/tools/topo/hwloc/hwloc/config src/pm/hydra/mpl/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
-
- autoreconf --verbose --install --force -I . -I confdb/ -I maint/
- oe_runconf
- exit
-}
-
-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.1.2.bb b/meta-oe/recipes-devtools/mpich/mpich_4.1.2.bb
new file mode 100644
index 0000000000..ac8094d118
--- /dev/null
+++ b/meta-oe/recipes-devtools/mpich/mpich_4.1.2.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=f1804c45b8b4e816e53eb1f175d810f3"
+
+SRC_URI = "http://www.mpich.org/static/downloads/${PV}/mpich-${PV}.tar.gz"
+SRC_URI[sha256sum] = "3492e98adab62b597ef0d292fb2459b6123bc80070a8aa0a30be6962075a12f0"
+
+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/0001-Fix-Werror-class-memaccess.patch b/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch
deleted file mode 100644
index b0d772d937..0000000000
--- a/meta-oe/recipes-devtools/msgpack/msgpack-c/0001-Fix-Werror-class-memaccess.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a05d92ae85024d0648f69f95307a1d3e8e51109c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 1 Apr 2018 19:55:38 -0700
-Subject: [PATCH] Fix -Werror=class-memaccess
-
-Casting to void* make gcc happy since its upset about
-object types and rightly so
-
-Fixes
-
-'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'struct msgpack::v2::object' from an array of 'const msgpack_object' {aka 'const struct msgpack_object'} [-Werror=class-memaccess]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted [https://github.com/msgpack/msgpack-c/pull/659]
-
- include/msgpack/v1/object.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/msgpack/v1/object.hpp b/include/msgpack/v1/object.hpp
-index 64da8c53..9721f705 100644
---- a/include/msgpack/v1/object.hpp
-+++ b/include/msgpack/v1/object.hpp
-@@ -661,7 +661,7 @@ inline object::object(const msgpack_object& o)
- inline void operator<< (msgpack::object& o, const msgpack_object& v)
- {
- // FIXME beter way?
-- std::memcpy(&o, &v, sizeof(v));
-+ std::memcpy(static_cast<void*>(&o), &v, sizeof(v));
- }
-
- inline object::operator msgpack_object() const
---
-2.16.3
-
diff --git a/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb b/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
deleted file mode 100644
index 690a7f444b..0000000000
--- a/meta-oe/recipes-devtools/msgpack/msgpack-c_2.1.5.bb
+++ /dev/null
@@ -1,19 +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 \
- file://0001-Fix-Werror-class-memaccess.patch \
- "
-SRCREV = "208595b2620cf6260ce3d6d4cf8543f13b206449"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
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
new file mode 100644
index 0000000000..c6a6ac4673
--- /dev/null
+++ b/meta-oe/recipes-devtools/msgpack/msgpack-c_4.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 \
+ "
+
+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-cpp_4.1.1.bb b/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.1.1.bb
new file mode 100644
index 0000000000..fd08bf85cc
--- /dev/null
+++ b/meta-oe/recipes-devtools/msgpack/msgpack-cpp_4.1.1.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] = "8115c5edcf20bc1408c798a6bdaec16c1e52b1c34859d4982a0fb03300438f0b"
+
+S = "${WORKDIR}/msgpack-cxx-${PV}"
+
+DEPENDS += "boost"
+
+inherit cmake pkgconfig
+
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb b/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb
index e4701afa87..05220c2492 100644
--- a/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb
+++ b/meta-oe/recipes-devtools/msr-tools/msr-tools_1.3.bb
@@ -1,6 +1,6 @@
SUMMARY = "utilies to read and write Intel model-specific registers"
HOMEPAGE = "https://01.org/msr-tools"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://Makefile;beginline=1;endline=11;md5=678a3928c856042424c734f4a7586e65"
SECTION = "devel"
diff --git a/meta-oe/recipes-devtools/musl/musl-nscd/0001-nsswitch.y-Replace-empty-bison-extension.patch b/meta-oe/recipes-devtools/musl/musl-nscd/0001-nsswitch.y-Replace-empty-bison-extension.patch
new file mode 100644
index 0000000000..67c8b1bcfd
--- /dev/null
+++ b/meta-oe/recipes-devtools/musl/musl-nscd/0001-nsswitch.y-Replace-empty-bison-extension.patch
@@ -0,0 +1,50 @@
+From 82e51fb8ba2640b318826ef4e17b0f5c09c8dded Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 8 Mar 2021 20:10:18 -0800
+Subject: [PATCH] nsswitch.y: Replace %empty bison extension
+
+POSIX compliant yacc do not understand %empty therefore replace it with
+/* empty */
+
+https://github.com/pikhq/musl-nscd/issues/13
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nsswitch.y | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/nsswitch.y b/src/nsswitch.y
+index 107073b..0b7c71e 100644
+--- a/src/nsswitch.y
++++ b/src/nsswitch.y
+@@ -38,7 +38,7 @@ top:
+ ;
+
+ file:
+- %empty {
++ /* empty */ {
+ list_init(&$$);
+ }
+ | file line {
+@@ -88,7 +88,7 @@ modifier:
+ ;
+
+ modifiers:
+- %empty {
++ /* empty */ {
+ memcpy($$, default_actions, sizeof($$));
+ }
+ | modifiers modifier {
+@@ -112,7 +112,7 @@ item:
+ ;
+
+ list:
+- %empty {
++ /* empty */ {
+ list_init(&$$);
+ }
+ | list item {
+--
+2.30.1
+
diff --git a/meta-oe/recipes-devtools/musl/musl-nscd_git.bb b/meta-oe/recipes-devtools/musl/musl-nscd_git.bb
new file mode 100644
index 0000000000..82e5c3bc5e
--- /dev/null
+++ b/meta-oe/recipes-devtools/musl/musl-nscd_git.bb
@@ -0,0 +1,39 @@
+# Copyright (C) 2020 Armin Kuster <akuster808@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Musl-nscd is an implementation of the NSCD protocol, suitable for use with musl and with standard NSS modules"
+HOMEPAGE = "https://github.com/pikhq/musl-nscd"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=fff9baeb9a392879d7fb25ba3a2696e4"
+SECTION = "utils"
+
+DEPENDS += "flex-native bison-native flex bison"
+
+PV = "1.1.0"
+
+SRCREV = "cddd6be6c629ca96f2d2e74ee52daf12bbef1f83"
+SRC_URI = "git://github.com/pikhq/musl-nscd;branch=master;protocol=https \
+ file://0001-nsswitch.y-Replace-empty-bison-extension.patch \
+ "
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+inherit autotools-brokensep
+
+S = "${WORKDIR}/git"
+
+do_configure () {
+ # no debug set -s flag
+ sed -i -e 's/LDFLAGS_AUTO=-s/LDFLAGS_AUTO=/' ${S}/configure
+ ${S}/configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
+}
+
+do_compile () {
+ oe_runmake
+}
+
+do_install () {
+ make DESTDIR=${D} install
+}
+
+COMPATIBLE_HOST = ".*-musl.*"
diff --git a/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb b/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
new file mode 100644
index 0000000000..b5d05d40e5
--- /dev/null
+++ b/meta-oe/recipes-devtools/nlohmann-fifo/nlohmann-fifo_git.bb
@@ -0,0 +1,29 @@
+SUMMARY = "fifo maps for c++"
+HOMEPAGE = "https://github.com/nlohmann/fifo_map"
+SECTION = "libs"
+LICENSE = "MIT"
+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}"
+
+SRCREV = "d732aaf9a315415ae8fd7eb11e3a4c1f80e42a48"
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+S = "${WORKDIR}/git"
+
+# nlohmann-fifo is a header only C++ library, so the main package will be empty.
+
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+# See https://github.com/SOCI/soci/issues/984
+CXXFLAGS:append:toolchain-clang:runtime-llvm = " -DCATCH_CONFIG_CPP11_NO_SHUFFLE"
+
+do_install() {
+ install -d ${D}${includedir}
+ install -m 0644 ${S}/src/fifo_map.hpp ${D}${includedir}
+}
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
new file mode 100644
index 0000000000..6cf27755e8
--- /dev/null
+++ b/meta-oe/recipes-devtools/nlohmann-json/nlohmann-json_3.11.2.bb
@@ -0,0 +1,30 @@
+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.
+ALLOW_EMPTY:${PN} = "1"
+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/nodejs/nodejs-oe-cache-18.16/oe-npm-cache b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.16/oe-npm-cache
new file mode 100755
index 0000000000..f596207648
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-18.16/oe-npm-cache
@@ -0,0 +1,77 @@
+#!/usr/bin/env node
+
+/// Usage: oe-npm-cache <cache-dir> <type> <key> <file-name>
+/// <type> ... meta - metainformation about package
+/// tgz - tarball
+
+const process = require("node:process");
+
+module.paths.unshift("@@libdir@@/node_modules/npm/node_modules");
+
+const cacache = require('cacache')
+const fs = require('fs')
+
+// argv[0] is 'node', argv[1] is this script
+const cache_dir = process.argv[2]
+const type = process.argv[3]
+const key = process.argv[4]
+const file = process.argv[5]
+
+const data = fs.readFileSync(file)
+
+// metadata content is highly nodejs dependent; when cache entries are not
+// found, place debug statements in 'make-fetch-happen/lib/cache/policy.js'
+// (CachePolicy::satisfies())
+const xlate = {
+ 'meta': {
+ 'key_prefix': 'make-fetch-happen:request-cache:',
+ 'metadata': function() {
+ return {
+ time: Date.now(),
+ url: key,
+ reqHeaders: {
+ 'accept': 'application/vnd.npm.install-v1+json; q=1.0, application/json; q=0.8, */*',
+ },
+ resHeaders: {
+ "content-type": "application/json",
+ "status": 200,
+ },
+ options: {
+ compress: true,
+ }
+ };
+ },
+ },
+
+ 'tgz': {
+ 'key_prefix': 'make-fetch-happen:request-cache:',
+ 'metadata': function() {
+ return {
+ time: Date.now(),
+ url: key,
+ reqHeaders: {
+ 'accept': '*/*',
+ },
+ resHeaders: {
+ "content-type": "application/octet-stream",
+ "status": 200,
+ },
+ options: {
+ compress: true,
+ },
+ };
+ },
+ },
+};
+
+const info = xlate[type];
+let opts = {}
+
+if (info.metadata) {
+ opts['metadata'] = info.metadata();
+}
+
+cacache.put(cache_dir, info.key_prefix + key, data, opts)
+ .then(integrity => {
+ console.log(`Saved content of ${key} (${file}).`);
+})
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.16.bb b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.16.bb
new file mode 100644
index 0000000000..a61dd5018f
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs-oe-cache-native_18.16.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "OE helper for manipulating npm cache"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+SRC_URI = "\
+ file://oe-npm-cache \
+"
+
+inherit native
+
+B = "${WORKDIR}/build"
+
+do_configure() {
+ sed -e 's!@@libdir@@!${libdir}!g' < '${WORKDIR}/oe-npm-cache' > '${B}/oe-npm-cache'
+}
+
+do_install() {
+ install -D -p -m 0755 ${B}/oe-npm-cache ${D}${bindir}/oe-npm-cache
+}
+
+RDEPENDS:${PN} = "nodejs-native"
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 324a4683d6..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
@@ -1,29 +1,46 @@
-From c2aff16cc196a61f4ab1cdae4a91c7926123c239 Mon Sep 17 00:00:00 2001
+From 7d94bfe53beeb2d25eb5f2ff6b1d509df7e6ab80 Mon Sep 17 00:00:00 2001
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 | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
+ Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/Makefile b/Makefile
-index 0a217bd893..e1229ad07f 100644
--- a/Makefile
+++ b/Makefile
-@@ -79,10 +79,9 @@ $(NODE_G_EXE): config.gypi out/Makefile
- $(MAKE) -C out BUILDTYPE=Debug V=$(V)
- if [ ! -r $@ -o ! -L $@ ]; then ln -fs out/Debug/$(NODE_EXE) $@; fi
-
--out/Makefile: common.gypi deps/uv/uv.gyp deps/http_parser/http_parser.gyp \
-- deps/zlib/zlib.gyp deps/v8/gypfiles/toolchain.gypi \
-- deps/v8/gypfiles/features.gypi deps/v8/src/v8.gyp node.gyp \
-- config.gypi
-+out/Makefile: common.gypi deps/http_parser/http_parser.gyp \
-+ deps/v8/gypfiles/toolchain.gypi deps/v8/gypfiles/features.gypi \
-+ deps/v8/src/v8.gyp node.gyp config.gypi
- $(PYTHON) tools/gyp_node.py -f make
+@@ -169,7 +169,7 @@ with-code-cache test-code-cache:
+ $(warning '$@' target is a noop)
- config.gypi: configure
---
-2.12.2
+ 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
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..66e10a0d00
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-Using-native-binaries.patch
@@ -0,0 +1,77 @@
+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 | 1 +
+ 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)',
+ ],
+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-liftoff-Correct-function-signatures.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
new file mode 100644
index 0000000000..c9a522d2e2
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-liftoff-Correct-function-signatures.patch
@@ -0,0 +1,85 @@
+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
+Subject: [PATCH] [liftoff] Correct function signatures
+
+Fixes builds on mips where clang reports an error
+../deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h:661:5: error: no matching member function for call to 'Move'
+ Move(tmp, src, type.value_type());
+ ^~~~
+
+Upstream-Status: Submitted [https://chromium-review.googlesource.com/c/v8/v8/+/3235674]
+
+Signed-off-by: Archana Polampalli <archana.polampalli@windriver.com>
+---
+ deps/v8/src/wasm/baseline/liftoff-assembler.h | 6 +++---
+ deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h | 2 +-
+ deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h | 2 +-
+ .../src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h | 2 +-
+ 4 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/deps/v8/src/wasm/baseline/liftoff-assembler.h b/deps/v8/src/wasm/baseline/liftoff-assembler.h
+index 22c7f73a..db4cb168 100644
+--- a/deps/v8/src/wasm/baseline/liftoff-assembler.h
++++ b/deps/v8/src/wasm/baseline/liftoff-assembler.h
+@@ -646,7 +646,7 @@ class LiftoffAssembler : public TurboAssembler {
+ void FinishCall(const ValueKindSig*, compiler::CallDescriptor*);
+
+ // Move {src} into {dst}. {src} and {dst} must be different.
+- void Move(LiftoffRegister dst, LiftoffRegister src, ValueKind);
++ void Move(LiftoffRegister dst, LiftoffRegister src, ValueKind kind);
+
+ // 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
+@@ -795,8 +795,8 @@ class LiftoffAssembler : public TurboAssembler {
+ inline void MoveStackValue(uint32_t dst_offset, uint32_t src_offset,
+ ValueKind);
+
+- inline void Move(Register dst, Register src, ValueKind);
+- inline void Move(DoubleRegister dst, DoubleRegister src, ValueKind);
++ inline void Move(Register dst, Register src, ValueKind kind);
++ inline void Move(DoubleRegister dst, DoubleRegister src, ValueKind kind);
+
+ inline void Spill(int offset, LiftoffRegister, ValueKind);
+ inline void Spill(int offset, WasmValue);
+diff --git a/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h b/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
+index c76fd2f4..0fffe231 100644
+--- a/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
++++ b/deps/v8/src/wasm/baseline/mips/liftoff-assembler-mips.h
+@@ -661,7 +661,7 @@ void LiftoffAssembler::Store(Register dst_addr, Register offset_reg,
+ pinned = pinned | LiftoffRegList{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 36413545..48207337 100644
+--- a/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
++++ b/deps/v8/src/wasm/baseline/mips64/liftoff-assembler-mips64.h
+@@ -593,7 +593,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.
+- 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/riscv64/liftoff-assembler-riscv64.h b/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
+index 642a7d2a..56ffcc2a 100644
+--- a/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
++++ b/deps/v8/src/wasm/baseline/riscv64/liftoff-assembler-riscv64.h
+@@ -589,7 +589,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.
+- Move(tmp, src, type.value_type());
++ Move(tmp, src, type.value_type().kind());
+
+ src = tmp;
+ pinned.set(tmp);
+--
+2.34.1
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
new file mode 100644
index 0000000000..a0242d8e18
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-mips-Use-32bit-cast-for-operand-on-mips32.patch
@@ -0,0 +1,34 @@
+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
new file mode 100644
index 0000000000..dd9c9015e2
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0001-ppc64-Do-not-use-mminimal-toc-with-clang.patch
@@ -0,0 +1,25 @@
+From 0976af0f3b328436ea44a74a406f311adb2ab211 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Jun 2021 19:01:31 -0700
+Subject: [PATCH] ppc64: Do not use -mminimal-toc with clang
+
+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(-)
+
+--- a/common.gypi
++++ b/common.gypi
+@@ -417,7 +417,7 @@
+ 'ldflags': [ '-m32' ],
+ }],
+ [ 'target_arch=="ppc64" and OS!="aix"', {
+- 'cflags': [ '-m64', '-mminimal-toc' ],
++ 'cflags': [ '-m64' ],
+ 'ldflags': [ '-m64' ],
+ }],
+ [ 'target_arch=="s390x"', {
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch b/meta-oe/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch
new file mode 100644
index 0000000000..97ed972cee
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/0004-v8-don-t-override-ARM-CFLAGS.patch
@@ -0,0 +1,102 @@
+From 47ee5cc5501289205d3e8e9f27ea9daf18cebac1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Sat, 9 Nov 2019 14:45:30 +0000
+Subject: [PATCH] v8: don't override ARM CFLAGS
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This overrides yocto-provided build flags with its own, e.g we get
+ arm-poky-linux-musleabi-g++ -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 \
+ ... \
+ -march=armv7-a -mfpu=neon -mfloat-abi=hard -marm
+
+Causing the latter to override the former, and compiler warnings:
+ cc1plus: warning: switch '-mcpu=cortex-a7' conflicts with '-march=armv7-a' switch
+
+Patch this out, so that yocto-provided flags take precedence.
+Note that in reality the same should probably be done for all the other
+supported architectures, too.
+
+Note that this also switches to Thumb(2) mode (in my case). No obvious
+problems have been noted during compilation or runtime.
+
+Upstream-Status: Inappropriate [oe-specific]
+Signed-off-by: André Draszik <git@andred.net>
+---
+ tools/v8_gypfiles/toolchain.gypi | 52 ++------------------------------
+ 1 file changed, 2 insertions(+), 50 deletions(-)
+
+diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi
+index 264b3e478e..0b41848145 100644
+--- a/tools/v8_gypfiles/toolchain.gypi
++++ b/tools/v8_gypfiles/toolchain.gypi
+@@ -211,31 +211,7 @@
+ 'target_conditions': [
+ ['_toolset=="host"', {
+ 'conditions': [
+- ['v8_target_arch==host_arch', {
+- # Host built with an Arm CXX compiler.
+- 'conditions': [
+- [ 'arm_version==7', {
+- 'cflags': ['-march=armv7-a',],
+- }],
+- [ 'arm_version==7 or arm_version=="default"', {
+- 'conditions': [
+- [ 'arm_fpu!="default"', {
+- 'cflags': ['-mfpu=<(arm_fpu)',],
+- }],
+- ],
+- }],
+- [ 'arm_float_abi!="default"', {
+- 'cflags': ['-mfloat-abi=<(arm_float_abi)',],
+- }],
+- [ 'arm_thumb==1', {
+- 'cflags': ['-mthumb',],
+- }],
+- [ 'arm_thumb==0', {
+- 'cflags': ['-marm',],
+- }],
+- ],
+- }, {
+- # 'v8_target_arch!=host_arch'
++ ['v8_target_arch!=host_arch', {
+ # Host not built with an Arm CXX compiler (simulator build).
+ 'conditions': [
+ [ 'arm_float_abi=="hard"', {
+@@ -254,31 +230,7 @@
+ }], # _toolset=="host"
+ ['_toolset=="target"', {
+ 'conditions': [
+- ['v8_target_arch==target_arch', {
+- # Target built with an Arm CXX compiler.
+- 'conditions': [
+- [ 'arm_version==7', {
+- 'cflags': ['-march=armv7-a',],
+- }],
+- [ 'arm_version==7 or arm_version=="default"', {
+- 'conditions': [
+- [ 'arm_fpu!="default"', {
+- 'cflags': ['-mfpu=<(arm_fpu)',],
+- }],
+- ],
+- }],
+- [ 'arm_float_abi!="default"', {
+- 'cflags': ['-mfloat-abi=<(arm_float_abi)',],
+- }],
+- [ 'arm_thumb==1', {
+- 'cflags': ['-mthumb',],
+- }],
+- [ 'arm_thumb==0', {
+- 'cflags': ['-marm',],
+- }],
+- ],
+- }, {
+- # 'v8_target_arch!=target_arch'
++ ['v8_target_arch!=target_arch', {
+ # Target not built with an Arm CXX compiler (simulator build).
+ 'conditions': [
+ [ 'arm_float_abi=="hard"', {
+--
+2.20.1
+
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch b/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
new file mode 100644
index 0000000000..529381842f
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/big-endian.patch
@@ -0,0 +1,18 @@
+
+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/libatomic.patch b/meta-oe/recipes-devtools/nodejs/nodejs/libatomic.patch
new file mode 100644
index 0000000000..cb0237309e
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/libatomic.patch
@@ -0,0 +1,21 @@
+Link mksnapshot with libatomic on x86
+
+Clang-12 on x86 emits atomic builtins
+
+Fixes
+| module-compiler.cc:(.text._ZN2v88internal4wasm12_GLOBAL__N_123ExecuteCompilationUnitsERKSt10shared_ptrINS2_22BackgroundCompileTokenEEPNS0_8CountersEiNS2_19CompileBaselineOnlyE+0x558): un
+defined reference to `__atomic_load'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/tools/v8_gypfiles/v8.gyp
++++ b/tools/v8_gypfiles/v8.gyp
+@@ -1436,6 +1436,7 @@
+ {
+ 'target_name': 'mksnapshot',
+ 'type': 'executable',
++ 'libraries': [ '-latomic' ],
+ 'dependencies': [
+ 'v8_base_without_compiler',
+ 'v8_compiler_for_mksnapshot',
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch b/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
new file mode 100644
index 0000000000..16776cb762
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/mips-less-memory.patch
@@ -0,0 +1,37 @@
+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
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Imported from debian https://salsa.debian.org/js-team/nodejs/-/blob/master-12.x/debian/patches/mips-less-memory.patch
+https://buildd.debian.org/status/fetch.php?pkg=nodejs&arch=mipsel&ver=12.17.0~dfsg-2&stamp=1591050388&raw=0
+
+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..07a8f2a99c
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+./cctest
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs/system-c-ares.patch b/meta-oe/recipes-devtools/nodejs/nodejs/system-c-ares.patch
new file mode 100644
index 0000000000..141889ad23
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs/system-c-ares.patch
@@ -0,0 +1,24 @@
+keep nodejs compatible with c-ares 1.17.1
+
+Upstream-Status: Inappropriate [c-ares specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/cares_wrap.h
++++ b/src/cares_wrap.h
+@@ -22,7 +22,15 @@
+ # include <netdb.h>
+ #endif // __POSIX__
+
+-# include <ares_nameser.h>
++#if defined(__ANDROID__) || \
++ defined(__MINGW32__) || \
++ defined(__OpenBSD__) || \
++ defined(_MSC_VER)
++
++# include <nameser.h>
++#else
++# include <arpa/nameser.h>
++#endif
+
+ namespace node {
+ namespace cares_wrap {
diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb
new file mode 100644
index 0000000000..3adb51549e
--- /dev/null
+++ b/meta-oe/recipes-devtools/nodejs/nodejs_18.16.0.bb
@@ -0,0 +1,185 @@
+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=0be148d0e7298c5c94f7501affafbce5"
+
+CVE_PRODUCT = "nodejs node.js"
+
+DEPENDS = "openssl file-replacement-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://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 \
+ 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] = "33d81a233e235a509adda4a4f2209008d04591979de6b3f0f67c1c906093f118"
+
+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} -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 \
+ --without-dtrace \
+ --without-etw \
+ --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/nodejs/nodejs_8.11.2.bb b/meta-oe/recipes-devtools/nodejs/nodejs_8.11.2.bb
deleted file mode 100644
index 4e81b03926..0000000000
--- a/meta-oe/recipes-devtools/nodejs/nodejs_8.11.2.bb
+++ /dev/null
@@ -1,90 +0,0 @@
-DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
-HOMEPAGE = "http://nodejs.org"
-LICENSE = "MIT & BSD & Artistic-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fde91d5c5bbd1e0389623e1ac018d9e8"
-
-DEPENDS = "openssl zlib"
-
-COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
-COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
-COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
-
-SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
- file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
-"
-SRC_URI[md5sum] = "56be405b63b8c6c8ecd98c002fb15e4a"
-SRC_URI[sha256sum] = "539946c0381809576bed07424a35fc1740d52f4bd56305d6278d9e76c88f4979"
-
-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|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)}"
-GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
-ARCHFLAGS ?= ""
-
-# 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 () {
- rm -rf ${S}/deps/openssl
- export LD="${CXX}"
- GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
- # $TARGET_ARCH settings don't match --dest-cpu settings
- ./configure --prefix=${prefix} --without-intl --without-snapshot --shared-openssl --shared-zlib \
- --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
- --dest-os=linux \
- ${ARCHFLAGS}
-}
-
-do_compile () {
- export LD="${CXX}"
- oe_runmake BUILDTYPE=Release
-}
-
-do_install () {
- oe_runmake install DESTDIR=${D}
-}
-
-do_install_append_class-native() {
- # use node from PATH instead of absolute path to sysroot
- # node-v0.10.25/tools/install.py is using:
- # shebang = os.path.join(node_prefix, 'bin/node')
- # update_shebang(link_path, shebang)
- # and node_prefix can be very long path to bindir in native sysroot and
- # when it exceeds 128 character shebang limit it's stripped to incorrect path
- # and npm fails to execute like in this case with 133 characters show in log.do_install:
- # updating shebang of /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/work/x86_64-linux/nodejs-native/0.10.15-r0/image/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/npm to /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/node
- # /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
- # use sed on npm-cli.js because otherwise symlink is replaced with normal file and
- # npm-cli.js continues to use old shebang
- sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
-}
-
-do_install_append_class-target() {
- sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
-}
-
-PACKAGES =+ "${PN}-npm"
-FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
-RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocess python-textutils \
- python-compiler python-misc python-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
new file mode 100644
index 0000000000..4189d4083a
--- /dev/null
+++ b/meta-oe/recipes-devtools/octave/files/fix-blas-library-integer-size.patch
@@ -0,0 +1,18 @@
+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
+@@ -762,6 +762,12 @@
+ AC_MSG_ERROR([BLAS and LAPACK libraries are required])
+ fi
+
++if ac_fn_f77_try_run "$LINENO"; then :
++ ax_blas_integer_size=8
++else
++ ax_blas_integer_size=4
++fi
++
+ case $ax_blas_integer_size in
+ 4)
+ HAVE_64_BIT_BLAS=no
diff --git a/meta-oe/recipes-devtools/octave/octave_7.2.0.bb b/meta-oe/recipes-devtools/octave/octave_7.2.0.bb
new file mode 100644
index 0000000000..eb96a624f6
--- /dev/null
+++ b/meta-oe/recipes-devtools/octave/octave_7.2.0.bb
@@ -0,0 +1,56 @@
+SUMMARY = "High-level language, primarily intended for numerical computations"
+HOMEPAGE = "http://www.gnu.org/software/octave/"
+SECTION = "math"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+# To build, add 'FORTRAN:forcevariable = ",fortran"' to your local.conf (or use
+# meta-mortsgna as distro :)
+
+DEPENDS = " \
+ gperf-native \
+ libglu \
+ lapack \
+ fftw \
+ curl \
+ freetype \
+ fontconfig \
+ texinfo \
+ pcre \
+ readline \
+ fltk \
+ hdf5 \
+ libsndfile1 \
+"
+
+inherit autotools pkgconfig texinfo gettext gtk-icon-cache mime-xdg features_check
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+SRC_URI = " \
+ ${GNU_MIRROR}/octave/${BPN}-${PV}.tar.gz \
+ file://fix-blas-library-integer-size.patch \
+"
+SRC_URI[sha256sum] = "b12cb652587d31c5c382b39ed73463c22a5259ecb2fa6b323a27da409222dacc"
+
+# Note: Qt5Help is required for gui -> qttools(-native) must be build with
+# clang in PACKAGECONFIG
+PACKAGECONFIG[gui] = "--with-qt=yes,--with-qt=no,qttools-native qttools qtbase"
+
+EXTRA_OECONF = " \
+ --disable-java \
+ --disable-docs \
+"
+
+do_compile:prepend() {
+ for folder in "liboctave/operators liboctave/numeric liboctave/array liboctave/util"; do
+ mkdir -p ${B}/${folder}
+ done
+}
+
+FILES:${PN} += "${datadir}/metainfo"
+FILES:${PN}-dev += "${libdir}/${BPN}/${PV}/lib*${SOLIBSDEV}"
+
+# fortran is not enabled by default
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-oe/recipes-devtools/openocd/openocd/0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch b/meta-oe/recipes-devtools/openocd/openocd/0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch
deleted file mode 100644
index c5b9083dca..0000000000
--- a/meta-oe/recipes-devtools/openocd/openocd/0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From b95a996bfb281104b68ec66f32ebb79db519a4a8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 31 May 2018 21:06:46 -0700
-Subject: [PATCH] Fix libusb-1.0.22 deprecated libusb_set_debug with
- libusb_set_option
-
-libusb_set_debug is deprecated in libusb >= 1.0.22 therefore replace
-with equivalent libusb_set_option() API
-
-see libusb commit for more details
-
-https://github.com/libusb/libusb/commit/539f22e2fd916558d11ab9a66f10f461c5593168
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted [http://openocd.zylin.com/#/c/4540/]
- src/jtag/drivers/xds110.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/src/jtag/drivers/xds110.c b/src/jtag/drivers/xds110.c
-index 90b699027..9bfe02ea8 100644
---- a/src/jtag/drivers/xds110.c
-+++ b/src/jtag/drivers/xds110.c
-@@ -367,8 +367,11 @@ static bool usb_connect(void)
-
- /* Set libusb to auto detach kernel and disable debug messages */
- (void)libusb_set_auto_detach_kernel_driver(dev, 1);
-+#if LIBUSB_API_VERSION >= 0x01000106
-+ libusb_set_option(ctx, LIBUSB_OPTION_LOG_LEVEL, LIBUSB_LOG_LEVEL_NONE);
-+#else
- libusb_set_debug(ctx, LIBUSB_LOG_LEVEL_NONE);
--
-+#endif
- /* Claim the debug interface on the XDS110 */
- result = libusb_claim_interface(dev, INTERFACE_DEBUG);
- } else {
---
-2.17.1
-
diff --git a/meta-oe/recipes-devtools/openocd/openocd_git.bb b/meta-oe/recipes-devtools/openocd/openocd_git.bb
index 84727bf970..d30d9c3466 100644
--- a/meta-oe/recipes-devtools/openocd/openocd_git.bb
+++ b/meta-oe/recipes-devtools/openocd/openocd_git.bb
@@ -1,25 +1,35 @@
SUMMARY = "Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testing"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=599d2d1ee7fc84c0467b3d19801db870"
DEPENDS = "libusb-compat libftdi"
-RDEPENDS_${PN} = "libusb1"
-
-SRC_URI = "git://repo.or.cz/openocd.git \
- file://0001-Fix-libusb-1.0.22-deprecated-libusb_set_debug-with-l.patch \
- "
-SRCREV = "cdf1e826eb23c29de1019ce64125f644f01b0afe"
-
-PV = "0.10+gitr${SRCPV}"
+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://github.com/msteveb/jimtcl.git;protocol=http;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 = "91bd4313444c5a949ce49d88ab487608df7d6c37"
+SRCREV_git2cl = "8373c9f74993e218a08819cbcdbab3f3564bbeba"
+SRCREV_jimtcl = "fcbb4499a6b46ef69e7a95da53e30796e20817f0"
+SRCREV_libjaylink = "9aa7a5957c07bb6e862fc1a6d3153d109c7407e4"
+
+PV = "0.12+gitr${SRCPV}"
S = "${WORKDIR}/git"
inherit pkgconfig autotools-brokensep gettext
-BBCLASSEXTEND += "nativesdk"
+BBCLASSEXTEND += "native nativesdk"
-EXTRA_OECONF = "--enable-ftdi --disable-doxygen-html "
+EXTRA_OECONF = "--enable-ftdi --enable-jtag_vpi --enable-buspirate --disable-doxygen-html --disable-werror"
do_configure() {
- ./bootstrap
+ ./bootstrap nosubmodule
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/jimtcl/autosetup
+ install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/jimtcl/autosetup
oe_runconf ${EXTRA_OECONF}
}
@@ -36,10 +46,14 @@ do_install() {
fi
}
-FILES_${PN} = " \
+FILES:${PN} = " \
${datadir}/openocd/* \
${bindir}/openocd \
"
PACKAGECONFIG[sysfsgpio] = "--enable-sysfsgpio,--disable-sysfsgpio"
-PACKAGECONFIG ??= "sysfsgpio"
+PACKAGECONFIG[remote-bitbang] = "--enable-remote-bitbang,--disable-remote-bitbang"
+PACKAGECONFIG ??= "sysfsgpio remote-bitbang"
+
+# Can't be built with ccache
+CCACHE_DISABLE = "1"
diff --git a/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb b/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
index 53fc159c8d..441ab2ec95 100644
--- a/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
+++ b/meta-oe/recipes-devtools/packagegroups/packagegroup-sdk-target.bb
@@ -1,15 +1,13 @@
SUMMARY = "Packages required for a target (on-device) SDK"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r1"
inherit packagegroup
-RPROVIDES_${PN} += "packagegroup-native-sdk"
-RREPLACES_${PN} += "packagegroup-native-sdk"
-RCONFLICTS_${PN} += "packagegroup-native-sdk"
-RDEPENDS_${PN} = "gcc-symlinks g++-symlinks cpp cpp-symlinks \
+RPROVIDES:${PN} += "packagegroup-native-sdk"
+RREPLACES:${PN} += "packagegroup-native-sdk"
+RCONFLICTS:${PN} += "packagegroup-native-sdk"
+RDEPENDS:${PN} = "gcc-symlinks g++-symlinks cpp cpp-symlinks \
binutils-symlinks \
perl-modules \
flex flex-dev \
@@ -25,4 +23,4 @@ RDEPENDS_${PN} = "gcc-symlinks g++-symlinks cpp cpp-symlinks \
pkgconfig"
# usefull, but not in oe-core/meta-oe yet: patchutils
-RRECOMMENDS_${PN} = " g77-symlinks gfortran-symlinks"
+RRECOMMENDS:${PN} = " g77-symlinks gfortran-symlinks"
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
new file mode 100644
index 0000000000..4f7dfd4cca
--- /dev/null
+++ b/meta-oe/recipes-devtools/pahole/files/0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch
@@ -0,0 +1,35 @@
+From 436163ab845c263312cf3d4717a43727cf5f0747 Mon Sep 17 00:00:00 2001
+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]
+
+---
+ ostra/ostra-cg | 2 +-
+ ostra/python/ostra.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ostra/ostra-cg b/ostra/ostra-cg
+index 52c902e..8142e67 100755
+--- a/ostra/ostra-cg
++++ b/ostra/ostra-cg
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python3
++#!/usr/bin/env python3
+ # ostra-cg - generate callgraphs from encoded trace
+ #
+ # Arnaldo Carvalho de Melo <acme@redhat.com>
+diff --git a/ostra/python/ostra.py b/ostra/python/ostra.py
+index 86fe079..9bb5ad1 100755
+--- a/ostra/python/ostra.py
++++ b/ostra/python/ostra.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python3
++#!/usr/bin/env python3
+ #
+ # Copyright (C) 2005, 2006, 2007 Arnaldo Carvalho de Melo
+ #
+--
+2.31.1
+
diff --git a/meta-oe/recipes-devtools/pahole/pahole_1.24.bb b/meta-oe/recipes-devtools/pahole/pahole_1.24.bb
new file mode 100644
index 0000000000..2bb73c3eb7
--- /dev/null
+++ b/meta-oe/recipes-devtools/pahole/pahole_1.24.bb
@@ -0,0 +1,33 @@
+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"
+
+PV .= "+1.25+git${SRCPV}"
+SRCREV = "a9498899109d3be14f17abbc322a8f55a1067bee"
+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/pax-utils/pax-utils_1.3.3.bb b/meta-oe/recipes-devtools/pax-utils/pax-utils_1.3.3.bb
new file mode 100644
index 0000000000..d512c85704
--- /dev/null
+++ b/meta-oe/recipes-devtools/pax-utils/pax-utils_1.3.3.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Security-focused ELF files checking tool"
+DESCRIPTION = "This is a small set of various PaX aware and related \
+utilities for ELF binaries. It can check ELF binary files and running \
+processes for issues that might be relevant when using ELF binaries \
+along with PaX, such as non-PIC code or executable stack and heap."
+HOMEPAGE = "http://www.gentoo.org/proj/en/hardened/pax-utils.xml"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SRC_URI = "https://dev.gentoo.org/~vapier/dist/pax-utils-${PV}.tar.xz"
+SRC_URI[sha256sum] = "eeca7fbd98bc66bead4a77000c2025d9f17ea8201b84245882406ce00b9b6b14"
+
+RDEPENDS:${PN} += "bash"
+
+export GNULIB_OVERRIDES_WINT_T = "0"
+
+do_configure:prepend() {
+ touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog ${S}/README
+}
+
+do_install() {
+ oe_runmake PREFIX=${D}${prefix} DESTDIR=${D} install
+}
+
+BBCLASSEXTEND = "native"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[libcap] = "--with-caps, --without-caps, libcap"
+PACKAGECONFIG[libseccomp] = "--with-seccomp, --without-seccomp, libseccomp"
+PACKAGECONFIG[pyelftools] = "--with-python, --without-python,, pyelftools"
+
+EXTRA_OECONF += "--enable-largefile"
diff --git a/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb b/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb
new file mode 100644
index 0000000000..85c4fa95ae
--- /dev/null
+++ b/meta-oe/recipes-devtools/pcimem/pcimem_2.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Simple program to read & write to a pci device from userspace"
+HOMEPAGE = "https://github.com/billfarrow/pcimem"
+BUGTRACKER = "https://github.com/billfarrow/pcimem/issues"
+SECTION = "devel"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+COMPATIBLE_HOST = "(x86_64|aarch64|arm|riscv64)"
+
+SRCREV = "09724edb1783a98da2b7ae53c5aaa87493aabc9b"
+SRC_URI = "git://github.com/billfarrow/pcimem.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -D -m 0755 ${B}/pcimem ${D}${bindir}/pcimem
+}
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..4ab7a93714
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/perfetto.bb
@@ -0,0 +1,153 @@
+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"
+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..de871d4f3d
--- /dev/null
+++ b/meta-oe/recipes-devtools/perfetto/perfetto.inc
@@ -0,0 +1,9 @@
+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"
+PV = "31.0"
+
+S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb b/meta-oe/recipes-devtools/perl/ipc-run_0.96.bb
deleted file mode 100644
index 08c966da9d..0000000000
--- a/meta-oe/recipes-devtools/perl/ipc-run_0.96.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+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0ebd37caf53781e8b7223e6b99b63f4e"
-DEPENDS = "perl"
-
-SRC_URI = "git://github.com/toddr/IPC-Run.git"
-SRCREV = "96066366ac8c401dff9c979d04f25dc8219ffcc1"
-
-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_20220807.0.bb b/meta-oe/recipes-devtools/perl/ipc-run_20220807.0.bb
new file mode 100644
index 0000000000..f597a8dab0
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/ipc-run_20220807.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 = "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/libconfig-general-perl_2.65.bb b/meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb
new file mode 100644
index 0000000000..ecc89d075e
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libconfig-general-perl_2.65.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Config file parser module"
+HOMEPAGE = "http://search.cpan.org/dist/Config-General/"
+LICENSE = "Artistic-2.0 | GPL-1.0-or-later"
+SECTION = "libs"
+LIC_FILES_CHKSUM = "file://README;beginline=90;endline=90;md5=53fe13727e61798809ec5c160dc93e6e"
+
+SRCNAME = "Config-General"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TL/TLINDEN/${SRCNAME}-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "4d6d5754be3a9f30906836f0cc10e554c8832e14e7a1341efb15b05d706fc58f"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+COMPATIBLE_HOST:libc-musl = "null"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
diff --git a/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb b/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
deleted file mode 100644
index bd8ba780ae..0000000000
--- a/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.043.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A Perl DBI driver for MySQL"
-DESCRIPTION = "DBD::mysql is the Perl5 Database Interface driver for \
-the MySQL database. In other words: DBD::mysql is an interface between \
-the Perl programming language and the MySQL programming API that comes \
-with the MySQL relational database management system. Most functions \
-provided by this programming API are supported. Some rarely used \
-functions are missing, mainly because no-one ever requested them. \
-"
-HOMEPAGE = "http://search.cpan.org/~michielb/DBD-mysql-4.036/lib/DBD/mysql.pm"
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-DEPENDS += "libdbi-perl-native libmysqlclient"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d0a06964340e5c0cde88b7af611f755c"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MICHIELB/DBD-mysql-${PV}.tar.gz \
-"
-
-SRC_URI[md5sum] = "4a00dd7f1c057931147c65dfc4901c36"
-SRC_URI[sha256sum] = "629f865e8317f52602b2f2efd2b688002903d2e4bbcba5427cb6188b043d6f99"
-
-S = "${WORKDIR}/DBD-mysql-${PV}"
-
-inherit cpan
diff --git a/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb b/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb
new file mode 100644
index 0000000000..fc505fe1e8
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libdbd-mysql-perl_4.050.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A Perl DBI driver for MySQL"
+DESCRIPTION = "DBD::mysql is the Perl5 Database Interface driver for \
+the MySQL database. In other words: DBD::mysql is an interface between \
+the Perl programming language and the MySQL programming API that comes \
+with the MySQL relational database management system. Most functions \
+provided by this programming API are supported. Some rarely used \
+functions are missing, mainly because no-one ever requested them. \
+"
+HOMEPAGE = "https://github.com/perl5-dbi/DBD-mysql"
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+DEPENDS += "libdev-checklib-perl-native libdbi-perl-native libmysqlclient"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d0a06964340e5c0cde88b7af611f755c"
+
+SRCREV = "9b5b70ea372f49fe9bc9e592dae3870596d1e3d6"
+SRC_URI = "git://github.com/perl5-dbi/DBD-mysql.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit cpan
diff --git a/meta-oe/recipes-devtools/perl/libdbi-perl/CVE-2014-10402.patch b/meta-oe/recipes-devtools/perl/libdbi-perl/CVE-2014-10402.patch
new file mode 100644
index 0000000000..b41bbe0a50
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libdbi-perl/CVE-2014-10402.patch
@@ -0,0 +1,56 @@
+Backport patch to fix CVE-2014-10402.
+
+CVE: CVE-2014-10402
+Upstream-Status: Backport [https://github.com/rehsack/dbi/commit/19d0fb1]
+
+Ref:
+https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=972180#12
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+
+From 19d0fb169eed475e1c053e99036b8668625cfa94 Mon Sep 17 00:00:00 2001
+From: Jens Rehsack <sno@netbsd.org>
+Date: Tue, 6 Oct 2020 10:22:17 +0200
+Subject: [PATCH] lib/DBD/File.pm: fix CVE-2014-10401
+
+Dig into the root cause of RT#99508 - which resulted in CVE-2014-10401 - and
+figure out that DBI->parse_dsn is the wrong helper to parse our attributes in
+DSN, since in DBD::dr::connect only the "dbname" remains from DSN which causes
+parse_dsn to bailout.
+
+Parsing on our own similar to parse_dsn shows the way out.
+
+Signed-off-by: Jens Rehsack <sno@netbsd.org>
+---
+ lib/DBD/File.pm | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/lib/DBD/File.pm b/lib/DBD/File.pm
+index fb14e9a..f55076f 100644
+--- a/lib/DBD/File.pm
++++ b/lib/DBD/File.pm
+@@ -109,7 +109,11 @@ sub connect
+ # We do not (yet) care about conflicting attributes here
+ # my $dbh = DBI->connect ("dbi:CSV:f_dir=test", undef, undef, { f_dir => "text" });
+ # will test here that both test and text should exist
+- if (my $attr_hash = (DBI->parse_dsn ($dbname))[3]) {
++ #
++ # Parsing on our own similar to parse_dsn to find attributes in 'dbname' parameter.
++ if ($dbname) {
++ my @attrs = split /;/ => $dbname;
++ my $attr_hash = { map { split /\s*=>?\s*|\s*,\s*/, $_} @attrs };
+ if (defined $attr_hash->{f_dir} && ! -d $attr_hash->{f_dir}) {
+ my $msg = "No such directory '$attr_hash->{f_dir}";
+ $drh->set_err (2, $msg);
+@@ -120,7 +124,6 @@ sub connect
+ if ($attr and defined $attr->{f_dir} && ! -d $attr->{f_dir}) {
+ my $msg = "No such directory '$attr->{f_dir}";
+ $drh->set_err (2, $msg);
+- $attr->{RaiseError} and croak $msg;
+ return;
+ }
+
+--
+2.17.1
+
diff --git a/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb b/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb
deleted file mode 100644
index 24a1245fc0..0000000000
--- a/meta-oe/recipes-devtools/perl/libdbi-perl_1.641.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "The Perl Database Interface"
-DESCRIPTION = "DBI is a database access Application Programming Interface \
-(API) for the Perl Language. The DBI API Specification defines a set \
-of functions, variables and conventions that provide a consistent \
-database interface independent of the actual database being used. \
-"
-HOMEPAGE = "http://search.cpan.org/dist/DBI/"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-RDEPENDS_${PN} = " perl-module-carp \
- perl-module-exporter \
- perl-module-exporter-heavy \
- perl-module-dynaloader \
-"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=10982c7148e0a012c0fd80534522f5c5"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz"
-SRC_URI[md5sum] = "e77fd37fcf77fc88fde029c1b75ded54"
-SRC_URI[sha256sum] = "5509e532cdd0e3d91eda550578deaac29e2f008a12b64576e8c261bb92e8c2c1"
-
-S = "${WORKDIR}/DBI-${PV}"
-
-inherit cpan ptest-perl
-
-do_install_prepend() {
- # test requires "-T" (taint) command line option
- rm -rf ${B}/t/pod-coverage.t
- rm -rf ${B}/t/13taint.t
- # source of test failure not obvious
- rm -rf ${B}/t/85gofer.t
- # unclear why there are several duplicates of tests in tarball
- rm -rf ${B}/t/z*.t
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb b/meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb
new file mode 100644
index 0000000000..1fee83a8fd
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libdbi-perl_1.643.bb
@@ -0,0 +1,69 @@
+SUMMARY = "The Perl Database Interface"
+DESCRIPTION = "DBI is a database access Application Programming Interface \
+(API) for the Perl Language. The DBI API Specification defines a set \
+of functions, variables and conventions that provide a consistent \
+database interface independent of the actual database being used. \
+"
+HOMEPAGE = "http://search.cpan.org/dist/DBI/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=10982c7148e0a012c0fd80534522f5c5"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-${PV}.tar.gz \
+ file://CVE-2014-10402.patch \
+ "
+SRC_URI[md5sum] = "352f80b1e23769c116082a90905d7398"
+SRC_URI[sha256sum] = "8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa"
+
+S = "${WORKDIR}/DBI-${PV}"
+
+inherit cpan ptest-perl
+
+do_install:prepend() {
+ # test requires "-T" (taint) command line option
+ rm -rf ${B}/t/pod-coverage.t
+ rm -rf ${B}/t/13taint.t
+ # source of test failure not obvious
+ rm -rf ${B}/t/85gofer.t
+ # unclear why there are several duplicates of tests in tarball
+ rm -rf ${B}/t/z*.t
+}
+
+do_install:append() {
+ sed -i "s:^#!.*:#!/usr/bin/env perl:" ${D}${bindir}/dbiproxy \
+ ${D}${bindir}/dbiprof ${D}${bindir}/dbilogstrip
+}
+
+RDEPENDS:${PN}:class-target = " \
+ perl \
+ perl-module-carp \
+ perl-module-exporter \
+ perl-module-exporter-heavy \
+ perl-module-dynaloader \
+ perl-module-io-dir \
+ perl-module-scalar-util \
+ perl-module-universal \
+"
+
+RDEPENDS:${PN}-ptest = " \
+ ${PN} \
+ perl-module-b \
+ perl-module-benchmark \
+ perl-module-cwd \
+ perl-module-data-dumper \
+ perl-module-encode \
+ perl-module-encode-byte \
+ perl-module-encode-encoding \
+ perl-module-file-copy \
+ perl-module-file-path \
+ perl-module-lib \
+ perl-module-perlio \
+ perl-module-perlio-scalar \
+ perl-module-perlio-via \
+ perl-module-sdbm-file \
+ perl-module-storable \
+ perl-module-test-more \
+ perl-module-utf8 \
+ "
+
+BBCLASSEXTEND = "native"
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
new file mode 100644
index 0000000000..f79b158114
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libdev-checklib-perl/0001-CheckLib.pm-don-t-execute-the-binary.patch
@@ -0,0 +1,46 @@
+From d111fd85b25466f7829ccee34493aa0e3b551308 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Tue, 23 Apr 2019 19:13:19 -0700
+Subject: [PATCH] CheckLib.pm: don't execute the binary
+
+Don't execute the binary in build env as the
+binary which is generated in cross compile env
+may fail when executed in build env.
+
+And it's enough to verify the libs via successully
+generate the binary which links the libs as below.
+ $ /yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot-native/usr/bin/x86_64-poky-linux/x86_64-poky-linux-gcc \
+ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security \
+ -Werror=format-security --sysroot=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot \
+ -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/perl/5.28.1-r1=/usr/src/debug/perl/5.28.1-r1 \
+ -fdebug-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/perl/5.28.1-r1=/usr/src/debug/perl/5.28.1-r1 \
+ -fdebug-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot= -fdebug-prefix-map=/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot-native= -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 assertlibEhx19yuY.c -L/yocto/builds/upgrade1/tmp/work/core2-64-poky-linux/libdbd-mysql-perl/4.050-r0/recipe-sysroot/usr/lib -lcrypto -fstack-protector-strong -o assertlibCOw_eujb
+
+Execute the binary in cross compile env as below
+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]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ lib/Devel/CheckLib.pm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/Devel/CheckLib.pm b/lib/Devel/CheckLib.pm
+index 2e5a252..5c2f0b0 100644
+--- a/lib/Devel/CheckLib.pm
++++ b/lib/Devel/CheckLib.pm
+@@ -403,7 +403,7 @@ sub assert_lib {
+ if ($execute) {
+ my $retval = system($absexefile);
+ warn "# return value: $retval\n" if $args{debug};
+- push @wrongresult, $lib if $retval != 0;
++ print "Checking the lib $lib\n" if $retval != 0;
+ }
+ push @wronganalysis, $lib
+ if $analyze_binary and !$analyze_binary->($lib, $exefile);
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.16.bb b/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.16.bb
new file mode 100644
index 0000000000..74a09e7bf8
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libdev-checklib-perl_1.16.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A Perl module that checks whether a particular C library and its headers are available"
+DESCRIPTION = "This module provides a way of checking whether a particular library \
+and its headers are available, by attempting to compile a simple program and \
+link against it."
+HOMEPAGE = "https://metacpan.org/pod/Devel::CheckLib"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;md5=7911cdbb572d25c5f2e2ea17f669efc2"
+
+SRC_URI = "https://cpan.metacpan.org/modules/by-module/Devel/Devel-CheckLib-${PV}.tar.gz \
+ file://0001-CheckLib.pm-don-t-execute-the-binary.patch \
+"
+SRC_URI[sha256sum] = "869d38c258e646dcef676609f0dd7ca90f085f56cf6fd7001b019a5d5b831fca"
+
+S = "${WORKDIR}/Devel-CheckLib-${PV}"
+
+inherit cpan
+
+do_install:append() {
+ # update interpreter on shebang line
+ # since old version env doesn't support multiple arguments, replace option
+ # '-w' with 'use warnings;'
+ sed -i -e "s:^#!.*:#!/usr/bin/env perl:" \
+ -e "/use strict;/ause warnings;" ${D}${bindir}/use-devel-checklib
+}
+
+BBCLASSEXTEND="native"
diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch b/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch
new file mode 100644
index 0000000000..13a9e3b884
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libio-pty-perl/0001-Make-function-checks-more-robust-within-shared-libs.patch
@@ -0,0 +1,54 @@
+From 1735a78561dbe139fd138caef2d44d81f5494fe7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 4 Apr 2023 12:28:11 -0700
+Subject: [PATCH] Make function checks more robust within shared libs
+
+Previous attempt to error at link like was with
+
+https://github.com/toddr/IO-Tty/commit/1747cdf9f98cfd3aada9bf6c09f9d46297e18a5e
+
+this however causes issues with newer clang where it detects
+the assignment as -Wint-conversion warning which is treated at error
+and builds with clang fail. So this is an attempt to instruct
+linker explicitly to error out if the symbol is not found during link
+time when building a shared library, this fixes both the problems
+as reported in
+
+https://github.com/toddr/IO-Tty/issues/23
+
+as well as
+
+https://github.com/toddr/IO-Tty/pull/33#issuecomment-1260147256
+
+Upstream-Status: Submitted [https://github.com/toddr/IO-Tty/pull/33]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.PL | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/Makefile.PL b/Makefile.PL
+index eaf47e0..2e8338d 100644
+--- a/Makefile.PL
++++ b/Makefile.PL
+@@ -163,7 +163,8 @@ main ()
+ #if defined (__stub_$f) || defined (__stub___$f)
+ choke me
+ #else
+-f = $f ();
++f = $f;
++f();
+ #endif
+
+ ;
+@@ -173,7 +174,7 @@ ESQ
+
+ close(TST);
+ print "Looking for $f()" . "." x (13-length($f)) . " ";
+- if (system("$cfg{'cc'} $flags $funcs{$f} functest_$f.c > functest_$f.log 2>&1")) {
++ if (system("$cfg{'cc'} $flags -Wl,--no-undefined $funcs{$f} functest_$f.c > functest_$f.log 2>&1")) {
+ print "not found.\n";
+ } else {
+ $define{"-DHAVE_\U$f"} = undef;
+--
+2.40.0
+
diff --git a/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb
deleted file mode 100644
index b1a95e5771..0000000000
--- a/meta-oe/recipes-devtools/perl/libio-pty-perl_1.12.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Perl module for pseudo tty IO"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-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[md5sum] = "11695a1a516b3bd1b90ce75ff0ce3e6d"
-SRC_URI[sha256sum] = "a2ef8770d3309178203f8c8ac25e623e63cf76e97830fd3be280ade1a555290d"
-
-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.17.bb b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb
new file mode 100644
index 0000000000..e5c1ec1c82
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libio-pty-perl_1.17.bb
@@ -0,0 +1,27 @@
+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-Make-function-checks-more-robust-within-shared-libs.patch \
+ "
+SRC_URI[sha256sum] = "a5f1a83020bc5b5dd6c1b570f48c7546e0a8f7fac10a068740b03925ad9e14e8"
+
+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/libjson-perl_4.03000.bb b/meta-oe/recipes-devtools/perl/libjson-perl_4.03000.bb
new file mode 100644
index 0000000000..88d0d26d03
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libjson-perl_4.03000.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Perl module to decode/encode json files"
+DESCRIPTION = "This package contains the JSON.pm module with friends. \
+The module implements JSON encode/decode."
+
+HOMEPAGE = "https://metacpan.org/pod/JSON"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=1171;endline=1176;md5=3be2cb8159d094768e67386c453e8bbe"
+
+DEPENDS += "perl"
+
+SRC_URI = "git://github.com/makamaka/JSON.git;protocol=https;branch=master"
+
+SRCREV = "ebbae181c5e311fa80ee4c6379b598c7a6400570"
+
+S = "${WORKDIR}/git"
+
+inherit cpan
+
+RDEPENDS:${PN} += "perl"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/perl/libparse-yapp-perl_1.21.bb b/meta-oe/recipes-devtools/perl/libparse-yapp-perl_1.21.bb
new file mode 100644
index 0000000000..be9704a313
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libparse-yapp-perl_1.21.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Perl extension for generating and using LALR parsers"
+DESCRIPTION = "Parse::Yapp (Yet Another Perl Parser compiler) is a collection \
+of modules that let you generate and use yacc like thread safe (reentrant) parsers \
+with perl object oriented interface."
+
+HOMEPAGE = "http://search.cpan.org/dist/Parse-Yapp/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://lib/Parse/Yapp.pm;beginline=508;endline=521;md5=41a4542fcde97a600c9de0d782a90256"
+
+SRC_URI = "https://www.cpan.org/authors/id/W/WB/WBRASWELL/Parse-Yapp-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "69584d5b0f0304bb2a23cffcd982c5de"
+SRC_URI[sha256sum] = "3810e998308fba2e0f4f26043035032b027ce51ce5c8a52a8b8e340ca65f13e5"
+
+S = "${WORKDIR}/Parse-Yapp-${PV}"
+
+inherit cpan
+
+do_install:append() {
+ sed -i "s:^#!.*:#!/usr/bin/env perl:" ${D}${bindir}/yapp
+}
+
+BBCLASSEXTEND = "native"
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/perl/libperlio-gzip-perl_0.20.bb b/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb
new file mode 100644
index 0000000000..11f6a1ad19
--- /dev/null
+++ b/meta-oe/recipes-devtools/perl/libperlio-gzip-perl_0.20.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Perl module to manipulate and access gzip files"
+DESCRIPTION = "This package contains the gzip.pm module with friends. \
+The module implements perlio layer for gzip."
+
+HOMEPAGE = "https://metacpan.org/pod/PerlIO::gzip"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=55;endline=61;md5=bc3da2dec1fbea59ac91172c5e0eb837"
+
+DEPENDS += "perl"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/N/NW/NWCLARK/PerlIO-gzip-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "0393eae5d0b23df6cf40ed44af7d711c"
+SRC_URI[sha256sum] = "4848679a3f201e3f3b0c5f6f9526e602af52923ffa471a2a3657db786bd3bdc5"
+
+S = "${WORKDIR}/PerlIO-gzip-${PV}"
+
+EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
+
+inherit cpan
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
+
+RDEPENDS:${PN} += "perl perl-module-perlio"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/php/php.inc b/meta-oe/recipes-devtools/php/php.inc
deleted file mode 100644
index 066b97cd26..0000000000
--- a/meta-oe/recipes-devtools/php/php.inc
+++ /dev/null
@@ -1,263 +0,0 @@
-SUMMARY = "A server-side, HTML-embedded scripting language"
-HOMEPAGE = "http://www.php.net"
-SECTION = "console/network"
-
-LICENSE = "PHP-3.0"
-
-BBCLASSEXTEND = "native"
-DEPENDS = "zlib bzip2 libxml2 virtual/libiconv php-native lemon-native \
- openssl"
-DEPENDS_class-native = "zlib-native libxml2-native"
-
-PHP_MAJOR_VERSION = "${@d.getVar('PV', True).split('.')[0]}"
-
-SRC_URI = "http://php.net/distributions/php-${PV}.tar.bz2 \
- file://0001-php-don-t-use-broken-wrapper-for-mkdir.patch \
- "
-
-SRC_URI_append_class-target = " \
- file://iconv.patch \
- file://imap-fix-autofoo.patch \
- file://php_exec_native.patch \
- file://php-fpm.conf \
- file://php-fpm-apache.conf \
- file://0001-acinclude.m4-don-t-unset-cache-variables.patch \
- file://70_mod_php${PHP_MAJOR_VERSION}.conf \
- file://php-fpm.service \
- "
-S = "${WORKDIR}/php-${PV}"
-
-inherit autotools pkgconfig pythonnative 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-wddx \
- --enable-fpm \
- --enable-zip \
- --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} \
-"
-
-CACHED_CONFIGUREVARS += "ac_cv_func_dlopen=yes 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 \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6 pam', d)} \
-"
-PACKAGECONFIG_class-native = ""
-
-PACKAGECONFIG[mysql] = "--with-mysql=${STAGING_DIR_TARGET}${prefix} \
- --with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
- --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
- ,--without-mysql --without-mysqli --without-pdo-mysql \
- ,mysql5"
-
-PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_LIBDIR}/.. \
- --with-pdo-sqlite=${STAGING_LIBDIR}/.. \
- , \
- ,sqlite3"
-PACKAGECONFIG[pgsql] = "--with-pgsql=${STAGING_DIR_TARGET}${exec_prefix},--without-pgsql,postgresql"
-PACKAGECONFIG[soap] = "--enable-libxml --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] = ",--disable-opcache"
-
-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"
-CFLAGS_append_aarch64 = " -O2"
-
-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_BINDIR_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' ${HOST_SYS}-libtool
- sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${HOST_SYS}-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}/
- if [ -d ${RECIPE_SYSROOT_NATIVE}${sysconfdir} ];then
- install -m 0644 ${RECIPE_SYSROOT_NATIVE}${sysconfdir}/pear.conf ${D}${sysconfdir}/
- fi
- rm -rf ${D}/${TMPDIR}
- 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
- sed -i 's:${STAGING_DIR_NATIVE}::g' ${D}${sysconfdir}/pear.conf
- 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
-
- TMP=`dirname ${D}/${TMPDIR}`
- while test ${TMP} != ${D}; do
- if [ -d ${TMP} ]; then
- rmdir ${TMP}
- fi
- TMP=`dirname ${TMP}`;
- done
-
- if ${@bb.utils.contains('PACKAGECONFIG', 'apache2', 'true', 'false', d)}; then
- install -d ${D}${libdir}/apache2/modules
- install -d ${D}${sysconfdir}/apache2/modules.d
- install -d ${D}${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION}
- install -m 755 libs/libphp${PHP_MAJOR_VERSION}.so ${D}${libdir}/apache2/modules
- install -m 644 ${WORKDIR}/70_mod_php${PHP_MAJOR_VERSION}.conf ${D}${sysconfdir}/apache2/modules.d
- sed -i s,lib/,${libdir}/, ${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}-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}"
-
-INITSCRIPT_PACKAGES = "${PN}-fpm"
-inherit update-rc.d
-
-FILES_${PN}-dbg =+ "${bindir}/.debug \
- ${libdir}/apache2/modules/.debug"
-FILES_${PN}-doc += "${PHP_LIBDIR}/php/doc"
-FILES_${PN}-cli = "${bindir}/php"
-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"
-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}"
-
-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/0001-Add-lpthread-to-link.patch b/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch
deleted file mode 100644
index f70e550ff6..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-Add-lpthread-to-link.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From ed0a954983d50267c2fc0bc13aba929ea0cad971 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Tue, 2 May 2017 06:34:40 +0000
-Subject: [PATCH] Add -lpthread to link
-
-When building the php-5.6.26, the following errors occured:
-
- ld: TSRM/.libs/TSRM.o: undefined reference to symbol
- 'pthread_sigmask@@GLIBC_2.2.5'
-
- error adding symbols: DSO missing from command line
-
-This is because no pthread to link, so we should add it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- configure.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/configure.in b/configure.in
-index a467dff1..9afef652 100644
---- a/configure.in
-+++ b/configure.in
-@@ -1058,7 +1058,8 @@ case $php_sapi_module in
- ;;
- esac
-
--EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS"
-+PTHREAD_LIBS="-lpthread"
-+EXTRA_LIBS="$EXTRA_LIBS $DLIBS $LIBS $PTHREAD_LIBS"
-
- dnl this has to be here to prevent the openssl crypt() from
- dnl overriding the system provided crypt().
---
-2.11.0
-
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/0001-acinclude-use-pkgconfig-for-libxml2-config.patch b/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch
deleted file mode 100644
index 51a5e43b60..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-acinclude-use-pkgconfig-for-libxml2-config.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 003c9feaae6ed5c173edcea51193e49bc94ac39a Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Tue, 17 Jun 2014 09:53:00 +0200
-Subject: [PATCH 3/8] acinclude: use pkgconfig for libxml2 config
-
-Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-Upstream-Status: pending
----
- acinclude.m4 | 63 ++++++++++++++++++++++--------------------------------------
- 1 file changed, 23 insertions(+), 40 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 206fcbf..a6c0d84 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2530,48 +2530,31 @@ dnl
- dnl Common setup macro for libxml
- dnl
- AC_DEFUN([PHP_SETUP_LIBXML], [
--AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
--[
--
-- ac_cv_php_xml2_config_path="$PHP_LIBXML_DIR/xml2-config"
--
-+PKG_CHECK_MODULES([LIBXML], [libxml-2.0 > 2.6.11], [
-+ PHP_EVAL_LIBLINE($LIBXML_LIBS, $1)
-+ PHP_EVAL_INCLINE($LIBXML_CFLAGS)
-+
-+ dnl Check that build works with given libs
-+ AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [
-+ PHP_TEST_BUILD(xmlInitParser,
-+ [
-+ php_cv_libxml_build_works=yes
-+ AC_MSG_RESULT(yes)
-+ ], [
-+ AC_MSG_RESULT(no)
-+ AC_MSG_ERROR([build test failed. Please check the config.log for details.])
-+ ], [
-+ [$]$1
-+ ])
-+ ])
-+ if test "$php_cv_libxml_build_works" = "yes"; then
-+ AC_DEFINE(HAVE_LIBXML, 1, [ ])
-+ fi
-+ $2
-+], [
-+ AC_MSG_ERROR([$LIBXML_PKG_ERRORS])
- ])
-
-- if test -x "$ac_cv_php_xml2_config_path"; then
-- XML2_CONFIG="$ac_cv_php_xml2_config_path"
-- libxml_full_version=`$XML2_CONFIG --version`
-- ac_IFS=$IFS
-- IFS="."
-- set $libxml_full_version
-- IFS=$ac_IFS
-- LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
-- if test "$LIBXML_VERSION" -ge "2006011"; then
-- LIBXML_LIBS=`$XML2_CONFIG --libs`
-- LIBXML_INCS=`$XML2_CONFIG --cflags`
-- PHP_EVAL_LIBLINE($LIBXML_LIBS, $1)
-- PHP_EVAL_INCLINE($LIBXML_INCS)
--
-- dnl Check that build works with given libs
-- AC_CACHE_CHECK(whether libxml build works, php_cv_libxml_build_works, [
-- PHP_TEST_BUILD(xmlInitParser,
-- [
-- php_cv_libxml_build_works=yes
-- ], [
-- AC_MSG_RESULT(no)
-- AC_MSG_ERROR([build test failed. Please check the config.log for details.])
-- ], [
-- [$]$1
-- ])
-- ])
-- if test "$php_cv_libxml_build_works" = "yes"; then
-- AC_DEFINE(HAVE_LIBXML, 1, [ ])
-- fi
-- $2
-- else
-- AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
-- fi
--ifelse([$3],[],,[else $3])
-- fi
- ])
-
- dnl -------------------------------------------------------------------------
---
-1.9.3
-
diff --git a/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch b/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
deleted file mode 100644
index a250cac83a..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-don-t-unset-cache-variables.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From dfebe81f946a83fe2499fc84d4f3dbdc5612276c Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Tue, 3 Apr 2018 11:35:03 +0800
-Subject: [PATCH] acinclude.m4: don't unset cache variables
-
-Unsetting prevents cache variable from being passed to configure.
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- acinclude.m4 | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index f6a55ec..d3346df 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -1890,8 +1890,6 @@ define([phpshift],[ifelse(index([$@],[,]),-1,,[substr([$@],incr(index([$@],[,]))
- dnl
- AC_DEFUN([PHP_CHECK_FUNC_LIB],[
- ifelse($2,,:,[
-- unset ac_cv_lib_$2[]_$1
-- unset ac_cv_lib_$2[]___$1
- unset found
- AC_CHECK_LIB($2, $1, [found=yes], [
- AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
-@@ -1923,8 +1921,6 @@ dnl in the default libraries and as a fall back in the specified library.
- dnl Defines HAVE_func and HAVE_library if found and adds the library to LIBS.
- dnl
- AC_DEFUN([PHP_CHECK_FUNC],[
-- unset ac_cv_func_$1
-- unset ac_cv_func___$1
- unset found
-
- AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch b/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
deleted file mode 100644
index 15329261bf..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-acinclude.m4-skip-binconfig-check-for-libxml.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From a2d146b8dd9d02f523d1e205d79792626a71dec3 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Mon, 2 Apr 2018 15:27:09 +0800
-Subject: [PATCH] acinclude.m4: skip binconfig check for libxml
-
-We want libxml flags to be picked up using pkg-config instead of the
-xml2-config file.
-
-Upstream-Status: Inappropriate [OE-specific]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
----
- acinclude.m4 | 29 -----------------------------
- 1 file changed, 29 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index d42d708..d32766a 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2525,35 +2525,6 @@ dnl
- AC_DEFUN([PHP_SETUP_LIBXML], [
- found_libxml=no
-
-- dnl First try to find xml2-config
-- AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
-- [
-- for i in $PHP_LIBXML_DIR /usr/local /usr; do
-- if test -x "$i/bin/xml2-config"; then
-- ac_cv_php_xml2_config_path="$i/bin/xml2-config"
-- break
-- fi
-- done
-- ])
--
-- if test -x "$ac_cv_php_xml2_config_path"; then
-- XML2_CONFIG="$ac_cv_php_xml2_config_path"
-- libxml_full_version=`$XML2_CONFIG --version`
-- ac_IFS=$IFS
-- IFS="."
-- set $libxml_full_version
-- IFS=$ac_IFS
-- LIBXML_VERSION=`expr [$]1 \* 1000000 + [$]2 \* 1000 + [$]3`
-- if test "$LIBXML_VERSION" -ge "2006011"; then
-- found_libxml=yes
-- LIBXML_LIBS=`$XML2_CONFIG --libs`
-- LIBXML_INCS=`$XML2_CONFIG --cflags`
-- else
-- AC_MSG_ERROR([libxml2 version 2.6.11 or greater required.])
-- fi
-- fi
--
-- dnl If xml2-config fails, try pkg-config
- if test "$found_libxml" = "no"; then
- if test -z "$PKG_CONFIG"; then
- AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
diff --git a/meta-oe/recipes-devtools/php/php/0001-ext-opcache-config.m4-enable-opcache.patch b/meta-oe/recipes-devtools/php/php/0001-ext-opcache-config.m4-enable-opcache.patch
new file mode 100644
index 0000000000..a967d64120
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0001-ext-opcache-config.m4-enable-opcache.patch
@@ -0,0 +1,251 @@
+From ca9b419f2c146061f73ee045cb0a069c18b40cd0 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 15 Dec 2021 14:00:08 +0800
+Subject: [PATCH 01/11] ext/opcache/config.m4: enable opcache
+
+We can't use AC_TRY_RUN to run programs in a cross compile
+environment. Set the variables directly instead since we know
+that we'd be running on latest enough linux kernel.
+
+Upstream-Status: Inappropriate [Configuration]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to version 8.0.12
+fix issue linking with librt
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+
+update patch to version 8.1.0
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ ext/opcache/config.m4 | 204 ++----------------------------------------
+ 1 file changed, 8 insertions(+), 196 deletions(-)
+
+diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
+index 2a83fa2..9471b5d 100644
+--- a/ext/opcache/config.m4
++++ b/ext/opcache/config.m4
+@@ -108,209 +108,21 @@ if test "$PHP_OPCACHE" != "no"; then
+ AC_CHECK_FUNCS([mprotect])
+
+ AC_MSG_CHECKING(for sysvipc shared memory support)
+- AC_RUN_IFELSE([AC_LANG_SOURCE([[
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/ipc.h>
+-#include <sys/shm.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-int main() {
+- pid_t pid;
+- int status;
+- int ipc_id;
+- char *shm;
+- struct shmid_ds shmbuf;
+-
+- ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
+- if (ipc_id == -1) {
+- return 1;
+- }
+-
+- shm = shmat(ipc_id, NULL, 0);
+- if (shm == (void *)-1) {
+- shmctl(ipc_id, IPC_RMID, NULL);
+- return 2;
+- }
+-
+- if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
+- shmdt(shm);
+- shmctl(ipc_id, IPC_RMID, NULL);
+- return 3;
+- }
+-
+- shmbuf.shm_perm.uid = getuid();
+- shmbuf.shm_perm.gid = getgid();
+- shmbuf.shm_perm.mode = 0600;
+-
+- if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
+- shmdt(shm);
+- shmctl(ipc_id, IPC_RMID, NULL);
+- return 4;
+- }
+-
+- shmctl(ipc_id, IPC_RMID, NULL);
+-
+- strcpy(shm, "hello");
+-
+- pid = fork();
+- if (pid < 0) {
+- return 5;
+- } else if (pid == 0) {
+- strcpy(shm, "bye");
+- return 6;
+- }
+- if (wait(&status) != pid) {
+- return 7;
+- }
+- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+- return 8;
+- }
+- if (strcmp(shm, "bye") != 0) {
+- return 9;
+- }
+- return 0;
+-}
+-]])],[have_shm_ipc=yes],[have_shm_ipc=no],[have_shm_ipc=no])
+- if test "$have_shm_ipc" = "yes"; then
+- AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
+- fi
++ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
++ have_shm_ipc=yes
+ AC_MSG_RESULT([$have_shm_ipc])
+
+ AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
+- AC_RUN_IFELSE([AC_LANG_SOURCE([[
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <unistd.h>
+-#include <string.h>
+-
+-#ifndef MAP_ANON
+-# ifdef MAP_ANONYMOUS
+-# define MAP_ANON MAP_ANONYMOUS
+-# endif
+-#endif
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+- pid_t pid;
+- int status;
+- char *shm;
+-
+- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
+- if (shm == MAP_FAILED) {
+- return 1;
+- }
+-
+- strcpy(shm, "hello");
+-
+- pid = fork();
+- if (pid < 0) {
+- return 5;
+- } else if (pid == 0) {
+- strcpy(shm, "bye");
+- return 6;
+- }
+- if (wait(&status) != pid) {
+- return 7;
+- }
+- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+- return 8;
+- }
+- if (strcmp(shm, "bye") != 0) {
+- return 9;
+- }
+- return 0;
+-}
+-]])],[have_shm_mmap_anon=yes],[have_shm_mmap_anon=no],[
+- case $host_alias in
+- *linux*)
+- have_shm_mmap_anon=yes
+- ;;
+- *)
+- have_shm_mmap_anon=no
+- ;;
+- esac
+-])
+- if test "$have_shm_mmap_anon" = "yes"; then
+- AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
+- fi
++ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
++ have_shm_mmap_anon=yes
+ AC_MSG_RESULT([$have_shm_mmap_anon])
+
+ PHP_CHECK_FUNC_LIB(shm_open, rt, root)
+ AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
+- AC_RUN_IFELSE([AC_LANG_SOURCE([[
+-#include <sys/types.h>
+-#include <sys/wait.h>
+-#include <sys/mman.h>
+-#include <sys/stat.h>
+-#include <fcntl.h>
+-#include <unistd.h>
+-#include <string.h>
+-#include <stdlib.h>
+-#include <stdio.h>
+-
+-#ifndef MAP_FAILED
+-# define MAP_FAILED ((void*)-1)
+-#endif
+-
+-int main() {
+- pid_t pid;
+- int status;
+- int fd;
+- char *shm;
+- char tmpname[4096];
+-
+- sprintf(tmpname,"/opcache.test.shm.%dXXXXXX", getpid());
+- if (mktemp(tmpname) == NULL) {
+- return 1;
+- }
+- fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
+- if (fd == -1) {
+- return 2;
+- }
+- if (ftruncate(fd, 4096) < 0) {
+- close(fd);
+- shm_unlink(tmpname);
+- return 3;
+- }
+-
+- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
+- if (shm == MAP_FAILED) {
+- return 4;
+- }
+- shm_unlink(tmpname);
+- close(fd);
+-
+- strcpy(shm, "hello");
+-
+- pid = fork();
+- if (pid < 0) {
+- return 5;
+- } else if (pid == 0) {
+- strcpy(shm, "bye");
+- return 6;
+- }
+- if (wait(&status) != pid) {
+- return 7;
+- }
+- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
+- return 8;
+- }
+- if (strcmp(shm, "bye") != 0) {
+- return 9;
+- }
+- return 0;
+-}
+-]])],[have_shm_mmap_posix=yes],[have_shm_mmap_posix=no],[have_shm_mmap_posix=no])
+- if test "$have_shm_mmap_posix" = "yes"; then
+- AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
+- PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
+- fi
+- AC_MSG_RESULT([$have_shm_mmap_posix])
++ AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
++ AC_MSG_RESULT([yes])
++ have_shm_mmap_posix=yes
++ PHP_CHECK_LIBRARY(rt, shm_unlink, [PHP_ADD_LIBRARY(rt,1,OPCACHE_SHARED_LIBADD)])
+
+ PHP_NEW_EXTENSION(opcache,
+ ZendAccelerator.c \
+--
+2.17.1
+
diff --git a/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch b/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch
deleted file mode 100644
index 6ab101b410..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-fix-error-caused-by-a-new-variable-is-declared-after.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 0d88d735887c6f2fa00a743c27124c7a52006a41 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Sun, 15 Apr 2018 19:17:27 -0700
-Subject: [PATCH] fix error caused by a new variable is declared after the
- label
-
-There is a build failure on mips:
-...
-|sljitNativeMIPS_common.c: In function 'sljit_has_cpu_feature':
-|sljitNativeMIPS_common.c:506:3: error: a label can only be part
-of a statement and a declaration is not a statement
-| sljit_sw fir;
-| ^~~~~~~~
-...
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
-index ee207fe..adfd342 100644
---- a/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
-+++ b/ext/pcre/pcrelib/sljit/sljitNativeMIPS_common.c
-@@ -498,12 +498,14 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil
-
- SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type)
- {
-+#if defined(__GNUC__)
-+ sljit_sw fir;
-+#endif
- switch (feature_type) {
- case SLJIT_HAS_FPU:
- #ifdef SLJIT_IS_FPU_AVAILABLE
- return SLJIT_IS_FPU_AVAILABLE;
- #elif defined(__GNUC__)
-- sljit_sw fir;
- asm ("cfc1 %0, $0" : "=r"(fir));
- return (fir >> 22) & 0x1;
- #else
---
-2.10.2
-
diff --git a/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch b/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
deleted file mode 100644
index fce9738f54..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 2842aa2a078eb1cad55540b61e7edf111395150d Mon Sep 17 00:00:00 2001
-From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-Date: Mon, 26 Feb 2018 19:30:55 +0100
-Subject: [PATCH] main/php_ini.c: build empty php_load_zend_extension_cb() when
- !HAVE_LIBDL
-
-Commit 0782a7fc6314c8bd3cbfd57f12d0479bf9cc8dc7 ("Fixed bug #74866
-extension_dir = "./ext" now use current directory for base") modified
-the php_load_zend_extension_cb() function to use php_load_shlib(), and
-pass a handle to the newly introduced zend_load_extension_handle()
-function instead of passing the extension path to
-zend_load_extension().
-
-While doing so, it introduced a call to php_load_shlib() from code
-that is built even when HAVE_LIBDL is not defined. However,
-php_load_shlib() is not implemented when HAVE_LIBDL is not defined,
-for obvious reasons.
-
-It turns out that zend_load_extension_handle() anyway doesn't do
-anything when ZEND_EXTENSIONS_SUPPORT is defined to 0, and
-ZEND_EXTENSIONS_SUPPORT is not defined when HAVE_LIBDL is not defined
-(Zend/zend_portability.h).
-
-Fixes the following build failure when building on a system that
-doesn't have libdl:
-
-main/php_ini.o: In function `php_load_zend_extension_cb':
-php_ini.c:(.text+0x478): undefined reference to `php_load_shlib'
-php_ini.c:(.text+0x4b0): undefined reference to `php_load_shlib'
-collect2: error: ld returned 1 exit status
-
-Upstream-Status: Backport [http://git.php.net/?p=php-src.git;a=commit;h=2842aa2a078eb1cad55540b61e7edf111395150d]
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- main/php_ini.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/main/php_ini.c b/main/php_ini.c
-index ba58eb1..fca263e 100644
---- a/main/php_ini.c
-+++ b/main/php_ini.c
-@@ -350,6 +350,7 @@ static void php_load_php_extension_cb(void *arg)
-
- /* {{{ php_load_zend_extension_cb
- */
-+#ifdef HAVE_LIBDL
- static void php_load_zend_extension_cb(void *arg)
- {
- char *filename = *((char **) arg);
-@@ -409,6 +410,9 @@ static void php_load_zend_extension_cb(void *arg)
- efree(libpath);
- }
- }
-+#else
-+static void php_load_zend_extension_cb(void *arg) { }
-+#endif
- /* }}} */
-
- /* {{{ php_init_config
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch b/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
deleted file mode 100644
index 0d24d34f2b..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-opcache-config.m4-enable-opcache.patch
+++ /dev/null
@@ -1,385 +0,0 @@
-From b2fb725dc404d471371731b663234e87cb0fca84 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Mon, 2 Apr 2018 17:54:52 +0800
-Subject: [PATCH] opcache/config.m4: enable opcache
-
-We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
-the variables directly instead since we know that we'd be running on latest
-enough linux kernel.
-
-Upstream-Status: Inappropriate [Configuration]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
----
- ext/opcache/config.m4 | 349 ++------------------------------------------------
- 1 file changed, 8 insertions(+), 341 deletions(-)
-
-diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
-index 7b500f0..10bb99a 100644
---- a/ext/opcache/config.m4
-+++ b/ext/opcache/config.m4
-@@ -28,353 +28,20 @@ if test "$PHP_OPCACHE" != "no"; then
-
- AC_CHECK_HEADERS([unistd.h sys/uio.h])
-
-- AC_MSG_CHECKING(for sysvipc shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/ipc.h>
--#include <sys/shm.h>
--#include <unistd.h>
--#include <string.h>
-+ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
-
--int main() {
-- pid_t pid;
-- int status;
-- int ipc_id;
-- char *shm;
-- struct shmid_ds shmbuf;
-+ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
-
-- ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
-- if (ipc_id == -1) {
-- return 1;
-- }
-+ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
-
-- shm = shmat(ipc_id, NULL, 0);
-- if (shm == (void *)-1) {
-- shmctl(ipc_id, IPC_RMID, NULL);
-- return 2;
-- }
--
-- if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
-- shmdt(shm);
-- shmctl(ipc_id, IPC_RMID, NULL);
-- return 3;
-- }
--
-- shmbuf.shm_perm.uid = getuid();
-- shmbuf.shm_perm.gid = getgid();
-- shmbuf.shm_perm.mode = 0600;
--
-- if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
-- shmdt(shm);
-- shmctl(ipc_id, IPC_RMID, NULL);
-- return 4;
-- }
--
-- shmctl(ipc_id, IPC_RMID, NULL);
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
-- AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <unistd.h>
--#include <string.h>
--
--#ifndef MAP_ANON
--# ifdef MAP_ANONYMOUS
--# define MAP_ANON MAP_ANONYMOUS
--# endif
--#endif
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- char *shm;
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
-- if (shm == MAP_FAILED) {
-- return 1;
-- }
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
-- AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
--
-- fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 1;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 2;
-- }
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
-- AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--#include <stdlib.h>
--#include <stdio.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
-- char tmpname[4096];
--
-- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
-- if (mktemp(tmpname) == NULL) {
-- return 1;
-- }
-- fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 2;
-- }
-- if (ftruncate(fd, 4096) < 0) {
-- close(fd);
-- shm_unlink(tmpname);
-- return 3;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 4;
-- }
-- shm_unlink(tmpname);
-- close(fd);
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
-+ AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
-
- AC_MSG_CHECKING(for mmap() using regular file shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--#include <stdlib.h>
--#include <stdio.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
-- char tmpname[4096];
--
-- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
-- if (mktemp(tmpname) == NULL) {
-- return 1;
-- }
-- fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 2;
-- }
-- if (ftruncate(fd, 4096) < 0) {
-- close(fd);
-- unlink(tmpname);
-- return 3;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 4;
-- }
-- unlink(tmpname);
-- close(fd);
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
--flock_type=unknown
--AC_MSG_CHECKING("whether flock struct is linux ordered")
--AC_TRY_RUN([
-- #include <fcntl.h>
-- struct flock lock = { 1, 2, 3, 4, 5 };
-- int main() {
-- if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
-- return 0;
-- }
-- return 1;
-- }
--], [
-- flock_type=linux
-- AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
-- AC_MSG_RESULT("yes")
--], AC_MSG_RESULT("no") )
-+
-+ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
-
--AC_MSG_CHECKING("whether flock struct is BSD ordered")
--AC_TRY_RUN([
-- #include <fcntl.h>
-- struct flock lock = { 1, 2, 3, 4, 5 };
-- int main() {
-- if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
-- return 0;
-- }
-- return 1;
-- }
--], [
-- flock_type=bsd
-- AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type])
-- AC_MSG_RESULT("yes")
--], AC_MSG_RESULT("no") )
-+ flock_type=linux
-+ AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
-
- if test "$flock_type" = "unknown"; then
- AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch b/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
deleted file mode 100644
index 2f7d581555..0000000000
--- a/meta-oe/recipes-devtools/php/php/0001-php-don-t-use-broken-wrapper-for-mkdir.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From ebc101e0728b9db6c687cff525e5dfc8eb0edbf3 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Thu, 3 Nov 2011 14:27:15 +0100
-Subject: [PATCH 2/8] php: don't use broken wrapper for mkdir
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
----
-
-Upstream-Status: Inappropriate
-
- Makefile.global | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.global b/Makefile.global
-index ff858c2..ae554b4 100644
---- a/Makefile.global
-+++ b/Makefile.global
-@@ -1,4 +1,4 @@
--mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
-+mkinstalldirs = mkdir -p
- INSTALL = $(top_srcdir)/build/shtool install -c
- INSTALL_DATA = $(INSTALL) -m 644
-
---
-1.9.3
-
diff --git a/meta-oe/recipes-devtools/php/php/0002-build-php.m4-don-t-unset-cache-variables.patch b/meta-oe/recipes-devtools/php/php/0002-build-php.m4-don-t-unset-cache-variables.patch
new file mode 100644
index 0000000000..6183f49c28
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0002-build-php.m4-don-t-unset-cache-variables.patch
@@ -0,0 +1,45 @@
+From 1af203e8e385d46ad3e33b1c253b1c564aa99034 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:01:55 -0500
+Subject: [PATCH 02/11] build/php.m4: don't unset cache variables
+
+Unsetting prevents cache variable from being passed to configure.
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+update this patch to 7.4.4, acinclude.m4 move to build/php.m4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ build/php.m4 | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/build/php.m4 b/build/php.m4
+index 9746ba28f3..93551d9ca7 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -1568,8 +1568,6 @@ dnl PHP_CHECK_FUNC_LIB
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC_LIB],[
+ ifelse($2,,:,[
+- unset ac_cv_lib_$2[]_$1
+- unset ac_cv_lib_$2[]___$1
+ unset found
+ AC_CHECK_LIB($2, $1, [found=yes], [
+ AC_CHECK_LIB($2, __$1, [found=yes], [found=no])
+@@ -1601,8 +1599,6 @@ dnl and as a fall back in the specified library. Defines HAVE_func and
+ dnl HAVE_library if found and adds the library to LIBS.
+ dnl
+ AC_DEFUN([PHP_CHECK_FUNC],[
+- unset ac_cv_func_$1
+- unset ac_cv_func___$1
+ unset found
+
+ AC_CHECK_FUNC($1, [found=yes],[ AC_CHECK_FUNC(__$1,[found=yes],[found=no]) ])
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/php/php/0003-php-remove-host-specific-info-from-header-file.patch b/meta-oe/recipes-devtools/php/php/0003-php-remove-host-specific-info-from-header-file.patch
new file mode 100644
index 0000000000..9637ed9516
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0003-php-remove-host-specific-info-from-header-file.patch
@@ -0,0 +1,36 @@
+From c81d0bd3491a6c6371d9df2f43956d109f984310 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:02:29 -0500
+Subject: [PATCH 03/11] php: remove host specific info from header file
+
+Based on:
+https://sources.debian.org/data/main/p/php7.3/7.3.6-1/debian/patches/
+ 0036-php-5.4.9-fixheader.patch
+
+Upstream-Status: Inappropriate [not author]
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+update patch to 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 1eafd62a44..90c94323aa 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1289,7 +1289,7 @@ PHP_REMOVE_USR_LIB(LDFLAGS)
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS $PHP_LDFLAGS"
+ EXTRA_LDFLAGS_PROGRAM="$EXTRA_LDFLAGS_PROGRAM $PHP_LDFLAGS"
+
+-UNAME=`uname -a | xargs`
++UNAME=`uname | xargs`
+ PHP_UNAME=${PHP_UNAME:-$UNAME}
+ AC_DEFINE_UNQUOTED(PHP_UNAME,"$PHP_UNAME",[uname -a output])
+ PHP_OS=`uname | xargs`
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/php/php/0004-configure.ac-don-t-include-build-libtool.m4.patch b/meta-oe/recipes-devtools/php/php/0004-configure.ac-don-t-include-build-libtool.m4.patch
new file mode 100644
index 0000000000..19a8bf8e4f
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0004-configure.ac-don-t-include-build-libtool.m4.patch
@@ -0,0 +1,33 @@
+From 41ef1121682c245b10df7de4b78c45baf9114c04 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:03:46 -0500
+Subject: [PATCH 04/11] configure.ac: don't include build/libtool.m4
+
+we delete build/libtool.m4 before do_configure,
+we will use libtool.m4 under ACLOCALDIR
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ configure.ac | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 90c94323aa..161e7c3f53 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -6,7 +6,6 @@ dnl ----------------------------------------------------------------------------
+ m4_include([build/ax_check_compile_flag.m4])
+ m4_include([build/ax_func_which_gethostbyname_r.m4])
+ m4_include([build/ax_gcc_func_attribute.m4])
+-m4_include([build/libtool.m4])
+ m4_include([build/php_cxx_compile_stdcxx.m4])
+ m4_include([build/php.m4])
+ m4_include([build/pkg.m4])
+--
+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
new file mode 100644
index 0000000000..37752ef949
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0005-pear-fix-Makefile.frag-for-Yocto.patch
@@ -0,0 +1,31 @@
+From f22958b4c1348eec3bb4c0f2cbe2d22676e0ad23 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:04:29 -0500
+Subject: [PATCH 05/11] pear: fix Makefile.frag for Yocto
+
+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/pear/Makefile.frag b/pear/Makefile.frag
+index 9408757a3a..69072f39e0 100644
+--- a/pear/Makefile.frag
++++ b/pear/Makefile.frag
+@@ -10,7 +10,7 @@ PEAR_SUFFIX = -ds a$(program_suffix)
+ PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
+
+ install-pear-installer: $(SAPI_CLI_PATH)
+- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
++ @$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
+
+ install-pear:
+ @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/php/php/0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch b/meta-oe/recipes-devtools/php/php/0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch
new file mode 100644
index 0000000000..acf2940839
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0006-ext-phar-Makefile.frag-Fix-phar-packaging.patch
@@ -0,0 +1,46 @@
+From eab5babdadea487bbbef025068c553f5ba741774 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:07:25 -0500
+Subject: [PATCH 06/11] ext/phar/Makefile.frag: Fix phar packaging
+
+Inherited from OE-Classic, with some additions to fix host paths leaking
+into the target package.
+
+Upstream-Status: Inappropriate [config]
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ ext/phar/Makefile.frag | 17 +++--------------
+ 1 file changed, 3 insertions(+), 14 deletions(-)
+
+--- a/ext/phar/Makefile.frag
++++ b/ext/phar/Makefile.frag
+@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir
+
+ PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0
+ PHP_PHARCMD_EXECUTABLE = ` \
+- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
+- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
+- if test "x$(PHP_MODULES)" != "x"; then \
+- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
+- for i in bz2 zlib phar; do \
+- if test -f "$(top_builddir)/modules/$$i.la"; then \
+- . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
+- fi; \
+- done; \
+- fi; \
+- else \
+- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
+- fi;`
+-PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
++ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
++
++PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "/usr/bin/env $(program_prefix)php$(program_suffix)$(EXEEXT)";`
+
+ $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
+ -@test -d $(builddir)/phar || mkdir $(builddir)/phar
diff --git a/meta-oe/recipes-devtools/php/php/0007-sapi-cli-config.m4-fix-build-directory.patch b/meta-oe/recipes-devtools/php/php/0007-sapi-cli-config.m4-fix-build-directory.patch
new file mode 100644
index 0000000000..9776e7f6db
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0007-sapi-cli-config.m4-fix-build-directory.patch
@@ -0,0 +1,32 @@
+From 03aa51625e0d1aa156c2f7cd71503b1f435d35a4 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:08:06 -0500
+Subject: [PATCH 07/11] sapi/cli/config.m4: fix build directory
+
+Upstream-Status: Inappropriate
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ sapi/cli/config.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
+index d17d531683..f2f87f9164 100644
+--- a/sapi/cli/config.m4
++++ b/sapi/cli/config.m4
+@@ -47,7 +47,7 @@ if test "$PHP_CLI" != "no"; then
+ esac
+
+ dnl Set executable for tests.
+- PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
++ PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php"
+ PHP_SUBST(PHP_EXECUTABLE)
+
+ dnl Expose to Makefile.
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/php/php/0008-ext-imap-config.m4-fix-include-paths.patch b/meta-oe/recipes-devtools/php/php/0008-ext-imap-config.m4-fix-include-paths.patch
new file mode 100644
index 0000000000..78bae58e00
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0008-ext-imap-config.m4-fix-include-paths.patch
@@ -0,0 +1,45 @@
+From c3c20db4415e0f6c4a601d6f9da1f3746a96b301 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:08:58 -0500
+Subject: [PATCH 08/11] ext/imap/config.m4: fix include paths
+
+Upstream-Status: Pending
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ ext/imap/config.m4 | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
+index 5086a312d0..0e938bd544 100644
+--- a/ext/imap/config.m4
++++ b/ext/imap/config.m4
+@@ -110,7 +110,7 @@ if test "$PHP_IMAP" != "no"; then
+ PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
+ AC_DEFINE(HAVE_IMAP,1,[ ])
+
+- for i in $PHP_IMAP /usr/local /usr; do
++ for i in $PHP_IMAP $PHP_IMAP/usr /usr/local /usr; do
+ IMAP_INC_CHK()
+ el[]IMAP_INC_CHK(/include/c-client)
+ el[]IMAP_INC_CHK(/include/imap)
+@@ -199,13 +199,7 @@ if test "$PHP_IMAP" != "no"; then
+ AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
+ fi
+
+- if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r "$IMAP_DIR/c-client/c-client.a" ; then
+- ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
+- elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
+- ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
+- fi
+-
+- for lib in c-client4 c-client imap; do
++ for lib in /usr/lib c-client4 c-client imap; do
+ IMAP_LIB=$lib
+ IMAP_LIB_CHK($PHP_LIBDIR)
+ IMAP_LIB_CHK(c-client)
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..b5a33cca7f
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0009-php-don-t-use-broken-wrapper-for-mkdir.patch
@@ -0,0 +1,31 @@
+From 8707720c0aea405f0e06d67354f239232cc823cc Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:10:02 -0500
+Subject: [PATCH 09/11] php: don't use broken wrapper for mkdir
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 7.4.4
+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/build/Makefile.global b/build/Makefile.global
+index 6566d052de..eb39421f2a 100644
+--- a/build/Makefile.global
++++ b/build/Makefile.global
+@@ -1,4 +1,4 @@
+-mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
++mkinstalldirs = mkdir -p
+ INSTALL = $(top_srcdir)/build/shtool install -c
+ INSTALL_DATA = $(INSTALL) -m 644
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/php/php/0010-iconv-fix-detection.patch b/meta-oe/recipes-devtools/php/php/0010-iconv-fix-detection.patch
new file mode 100644
index 0000000000..e3b8cd4707
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/0010-iconv-fix-detection.patch
@@ -0,0 +1,35 @@
+From a04aabc5b80371e579fbaffdd417627390d22722 Mon Sep 17 00:00:00 2001
+From: Claude Bing <cbing@cybernetics.com>
+Date: Tue, 9 Nov 2021 13:10:33 -0500
+Subject: [PATCH 10/11] iconv: fix detection
+
+Upstream-Status: Pending
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+update patch to version 7.4.4
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+update patch to version 8.0.12
+Signed-off-by: Claude Bing <cbing@cybernetics.com>
+---
+ build/php.m4 | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/build/php.m4 b/build/php.m4
+index 93551d9ca7..dba50825fb 100644
+--- a/build/php.m4
++++ b/build/php.m4
+@@ -1919,7 +1919,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
+ unset ICONV_DIR
+
+ dnl Check libc first if no path is provided in --with-iconv.
+- if test "$PHP_ICONV" = "yes"; then
++ dnl must check against no, not against yes as PHP_ICONV can also include a path, which implies yes
++ if test "$PHP_ICONV" != "no"; then
+ dnl Reset LIBS temporarily as it may have already been included -liconv in.
+ LIBS_save="$LIBS"
+ LIBS=
+--
+2.25.1
+
diff --git a/meta-oe/recipes-devtools/php/php/70_mod_php5.conf b/meta-oe/recipes-devtools/php/php/70_mod_php5.conf
deleted file mode 100644
index 1de6fb11ac..0000000000
--- a/meta-oe/recipes-devtools/php/php/70_mod_php5.conf
+++ /dev/null
@@ -1,12 +0,0 @@
-# vim: ft=apache sw=4 ts=4
-<IfDefine PHP5>
- # Load the module first
- <IfModule !sapi_apache2.c>
- LoadModule php5_module lib/apache2/modules/libphp5.so
- </IfModule>
-
- # Set it to handle the files
- AddHandler php5-script .php .phtml .php3 .php4 .php5
- AddType application/x-httpd-php-source .phps
- DirectoryIndex index.html index.html.var index.php index.phtml
-</IfDefine>
diff --git a/meta-oe/recipes-devtools/php/php/70_mod_php7.conf b/meta-oe/recipes-devtools/php/php/70_mod_php7.conf
deleted file mode 100644
index d206265a25..0000000000
--- a/meta-oe/recipes-devtools/php/php/70_mod_php7.conf
+++ /dev/null
@@ -1,9 +0,0 @@
-LoadModule php7_module lib/apache2/modules/libphp7.so
-
-<FilesMatch "\.ph(p[2-7]?|tml)$">
- SetHandler application/x-httpd-php
-</FilesMatch>
-
-<FilesMatch "\.phps$">
- SetHandler application/x-httpd-php-source
-</FilesMatch>
diff --git a/meta-oe/recipes-devtools/php/php/70_mod_php8.conf b/meta-oe/recipes-devtools/php/php/70_mod_php8.conf
new file mode 100644
index 0000000000..58ce408aa4
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php/70_mod_php8.conf
@@ -0,0 +1,9 @@
+LoadModule php_module lib/apache2/modules/libphp.so
+
+<FilesMatch "\.ph(p[2-8]?|tml)$">
+ SetHandler application/x-httpd-php
+</FilesMatch>
+
+<FilesMatch "\.phps$">
+ SetHandler application/x-httpd-php-source
+</FilesMatch>
diff --git a/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch b/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch
deleted file mode 100644
index 30811a74bd..0000000000
--- a/meta-oe/recipes-devtools/php/php/acinclude-xml2-config.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream-status: Unknown
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 4fd452e..206fcbf 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2532,12 +2532,9 @@ dnl
- AC_DEFUN([PHP_SETUP_LIBXML], [
- AC_CACHE_CHECK([for xml2-config path], ac_cv_php_xml2_config_path,
- [
-- for i in $PHP_LIBXML_DIR /usr/local /usr; do
-- if test -x "$i/bin/xml2-config"; then
-- ac_cv_php_xml2_config_path="$i/bin/xml2-config"
-- break
-- fi
-- done
-+
-+ ac_cv_php_xml2_config_path="$PHP_LIBXML_DIR/xml2-config"
-+
- ])
-
- if test -x "$ac_cv_php_xml2_config_path"; then
---
-1.9.3
-
diff --git a/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
deleted file mode 100644
index 3e901841be..0000000000
--- a/meta-oe/recipes-devtools/php/php/change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 3bfcc7fdd22261eaed10949714de0a90d31e10ab Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Thu, 20 Aug 2015 16:29:35 +0800
-Subject: [PATCH] [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
-
-Upstream-Status: Pending
-
-AC_TRY_RUN is not suitable for cross-compile
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-
-%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch
----
- ext/fileinfo/config.m4 | 31 ++++++-------------------------
- 1 file changed, 6 insertions(+), 25 deletions(-)
-
-diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4
-index 523b4fd..0aaa4c8 100644
---- a/ext/fileinfo/config.m4
-+++ b/ext/fileinfo/config.m4
-@@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then
- libmagic/readcdf.c libmagic/softmagic.c libmagic/der.c"
-
- AC_MSG_CHECKING([for strcasestr])
-- AC_TRY_RUN([
--#include <string.h>
--#include <strings.h>
--#include <stdlib.h>
--
--int main(void)
--{
-- char *s0, *s1, *ret;
--
-- s0 = (char *) malloc(42);
-- s1 = (char *) malloc(8);
--
-- memset(s0, 'X', 42);
-- s0[24] = 'Y';
-- s0[26] = 'Z';
-- s0[41] = '\0';
-- memset(s1, 'x', 8);
-- s1[0] = 'y';
-- s1[2] = 'Z';
-- s1[7] = '\0';
--
-- ret = strcasestr(s0, s1);
--
-- return !(NULL != ret);
--}
-+ AC_TRY_COMPILE([
-+ #include <string.h>
-+ #include <strings.h>
-+ #include <stdlib.h>
-+ ],[
-+ strcasestr(NULL, NULL);
- ],[
- dnl using the platform implementation
- AC_MSG_RESULT(yes)
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/iconv.patch b/meta-oe/recipes-devtools/php/php/iconv.patch
deleted file mode 100644
index b6e3ceb0b9..0000000000
--- a/meta-oe/recipes-devtools/php/php/iconv.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 17cc5645f3acf943a5a06465d09d0ebcfea987bd Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-status: Unknown
-
----
- acinclude.m4 | 3 ++-
- ext/iconv/config.m4 | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index d32766a..ad5166e 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2445,7 +2445,8 @@ AC_DEFUN([PHP_SETUP_ICONV], [
- dnl Check libc first if no path is provided in --with-iconv
- dnl
-
-- if test "$PHP_ICONV" = "yes"; then
-+ dnl must check against no, not against yes as PHP_ICONV can also include a path, which implies yes
-+ if test "$PHP_ICONV" != "no"; then
- dnl Reset LIBS temporarily as it may have already been included
- dnl -liconv in.
- LIBS_save="$LIBS"
-diff --git a/ext/iconv/config.m4 b/ext/iconv/config.m4
-index 6a05697..973e750 100644
---- a/ext/iconv/config.m4
-+++ b/ext/iconv/config.m4
-@@ -15,7 +15,7 @@ if test "$PHP_ICONV" != "no"; then
-
- if test "$iconv_avail" != "no"; then
- if test -z "$ICONV_DIR"; then
-- for i in /usr/local /usr; do
-+ for i in $PHP_ICONV /usr/local /usr; do
- if test -f "$i/include/iconv.h" || test -f "$i/include/giconv.h"; then
- PHP_ICONV_PREFIX="$i"
- break
diff --git a/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch b/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
deleted file mode 100644
index b5fb7d4fd7..0000000000
--- a/meta-oe/recipes-devtools/php/php/imap-fix-autofoo.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From c084c8349d1780980e232cb28b60a109e3d89438 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-status: Unknown
-
----
- acinclude.m4 | 2 +-
- ext/imap/config.m4 | 10 ++--------
- 2 files changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index ad5166e..f6a55ec 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -2350,7 +2350,7 @@ AC_DEFUN([PHP_SETUP_OPENSSL],[
- PHP_OPENSSL_DIR="/usr/local/ssl /usr/local /usr /usr/local/openssl"
- fi
-
-- for i in $PHP_OPENSSL_DIR; do
-+ for i in $PHP_OPENSSL_DIR $PHP_OPENSSL_DIR/usr; do
- if test -r $i/include/openssl/evp.h; then
- OPENSSL_INCDIR=$i/include
- fi
-diff --git a/ext/imap/config.m4 b/ext/imap/config.m4
-index badb6e2..8ff803c 100644
---- a/ext/imap/config.m4
-+++ b/ext/imap/config.m4
-@@ -109,7 +109,7 @@ if test "$PHP_IMAP" != "no"; then
- PHP_NEW_EXTENSION(imap, php_imap.c, $ext_shared)
- AC_DEFINE(HAVE_IMAP,1,[ ])
-
-- for i in $PHP_IMAP /usr/local /usr; do
-+ for i in $PHP_IMAP $PHP_IMAP/usr /usr/local /usr; do
- IMAP_INC_CHK()
- el[]IMAP_INC_CHK(/include/c-client)
- el[]IMAP_INC_CHK(/include/imap)
-@@ -198,13 +198,7 @@ if test "$PHP_IMAP" != "no"; then
- AC_MSG_ERROR(Cannot find rfc822.h. Please check your c-client installation.)
- fi
-
-- if test ! -r "$IMAP_DIR/c-client/libc-client.a" && test -r "$IMAP_DIR/c-client/c-client.a" ; then
-- ln -s "$IMAP_DIR/c-client/c-client.a" "$IMAP_DIR/c-client/libc-client.a" >/dev/null 2>&1
-- elif test ! -r "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" && test -r "$IMAP_DIR/$PHP_LIBDIR/c-client.a"; then
-- ln -s "$IMAP_DIR/$PHP_LIBDIR/c-client.a" "$IMAP_DIR/$PHP_LIBDIR/libc-client.a" >/dev/null 2>&1
-- fi
--
-- for lib in c-client4 c-client imap; do
-+ for lib in /usr/lib c-client4 c-client imap; do
- IMAP_LIB=$lib
- IMAP_LIB_CHK($PHP_LIBDIR)
- IMAP_LIB_CHK(c-client)
diff --git a/meta-oe/recipes-devtools/php/php/pear-makefile.patch b/meta-oe/recipes-devtools/php/php/pear-makefile.patch
deleted file mode 100644
index 4bc1025261..0000000000
--- a/meta-oe/recipes-devtools/php/php/pear-makefile.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From edd575a546d56bb5683aff19782b16963d61fd0b Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-status: Unknown
-
----
- pear/Makefile.frag | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pear/Makefile.frag b/pear/Makefile.frag
-index bbe8ec3..16f43e2 100644
---- a/pear/Makefile.frag
-+++ b/pear/Makefile.frag
-@@ -12,7 +12,7 @@ PEAR_SUFFIX = -ds a$(program_suffix)
- PEAR_INSTALLER_URL = https://pear.php.net/install-pear-nozlib.phar
-
- install-pear-installer: $(SAPI_CLI_PATH)
-- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
-+ @$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
-
- install-pear:
- @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
diff --git a/meta-oe/recipes-devtools/php/php/phar-makefile.patch b/meta-oe/recipes-devtools/php/php/phar-makefile.patch
deleted file mode 100644
index 336cf0d629..0000000000
--- a/meta-oe/recipes-devtools/php/php/phar-makefile.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 08962a56f69963e01892d98ca5b75de8354bd3f5 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Fix phar packaging
-
-Inherited from OE-Classic, with some additions to fix host paths leaking
-into the target package.
-
-Upstream-Status: Inappropriate [config]
-
----
- ext/phar/Makefile.frag | 17 +++--------------
- 1 file changed, 3 insertions(+), 14 deletions(-)
-
-diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
-index 0e3713f..22f7898 100644
---- a/ext/phar/Makefile.frag
-+++ b/ext/phar/Makefile.frag
-@@ -10,20 +10,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
-
- PHP_PHARCMD_SETTINGS = -n -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
- PHP_PHARCMD_EXECUTABLE = ` \
-- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
-- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
-- if test "x$(PHP_MODULES)" != "x"; then \
-- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
-- for i in bz2 zlib phar; do \
-- if test -f "$(top_builddir)/modules/$$i.la"; then \
-- . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
-- fi; \
-- done; \
-- fi; \
-- else \
-- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
-- fi;`
--PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
-+ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
-+
-+PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
-
- $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
- -@test -d $(builddir)/phar || mkdir $(builddir)/phar
diff --git a/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf b/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf
index 77cdd82a74..f7f46d205f 100644
--- a/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf
+++ b/meta-oe/recipes-devtools/php/php/php-fpm-apache.conf
@@ -1,6 +1,6 @@
# Taken from http://wiki.apache.org/httpd/PHP-FPM
-LoadModule proxy_module lib/apache2/modules/mod_proxy.so
-LoadModule proxy_fcgi_module lib/apache2/modules/mod_proxy_fcgi.so
+LoadModule proxy_module /usr/libexec/apache2/modules/mod_proxy.so
+LoadModule proxy_fcgi_module /usr/libexec/apache2/modules/mod_proxy_fcgi.so
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/usr/share/apache2/htdocs/
diff --git a/meta-oe/recipes-devtools/php/php/php-fpm.service b/meta-oe/recipes-devtools/php/php/php-fpm.service
index ac79dc931a..eec76fb563 100644
--- a/meta-oe/recipes-devtools/php/php/php-fpm.service
+++ b/meta-oe/recipes-devtools/php/php/php-fpm.service
@@ -3,7 +3,7 @@ Description=PHP-FPM
After=network.target
[Service]
Type=forking
-PIDFile=@LOCALSTATEDIR@/run/php-fpm.pid
+PIDFile=/run/php-fpm.pid
ExecStart=@SYSCONFDIR@/init.d/php-fpm start
ExecStop=@SYSCONFDIR@/init.d/php-fpm stop
[Install]
diff --git a/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch b/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
deleted file mode 100644
index 7be67ea94d..0000000000
--- a/meta-oe/recipes-devtools/php/php/php5-0001-opcache-config.m4-enable-opcache.patch
+++ /dev/null
@@ -1,387 +0,0 @@
-From fafcfac0933c17e1bf551600080eb0541186caf5 Mon Sep 17 00:00:00 2001
-From: Anuj Mittal <anuj.mittal@intel.com>
-Date: Mon, 2 Apr 2018 17:54:52 +0800
-Subject: [PATCH] opcache/config.m4: enable opcache
-
-We can't use AC_TRY_RUN to run programs in a cross compile environment. Set
-the variables directly instead since we know that we'd be running on latest
-enough linux kernel.
-
-Upstream-Status: Inappropriate [Configuration]
-
-Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-
-%% original patch: php5-0001-opcache-config.m4-enable-opcache.patch
----
- ext/opcache/config.m4 | 349 ++------------------------------------------------
- 1 file changed, 8 insertions(+), 341 deletions(-)
-
-diff --git a/ext/opcache/config.m4 b/ext/opcache/config.m4
-index 5a8b86c..6e87fa5 100644
---- a/ext/opcache/config.m4
-+++ b/ext/opcache/config.m4
-@@ -11,353 +11,20 @@ if test "$PHP_OPCACHE" != "no"; then
- AC_DEFINE(HAVE_MPROTECT, 1, [Define if you have mprotect() function])
- ])
-
-- AC_MSG_CHECKING(for sysvipc shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/ipc.h>
--#include <sys/shm.h>
--#include <unistd.h>
--#include <string.h>
-+ AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
-
--int main() {
-- pid_t pid;
-- int status;
-- int ipc_id;
-- char *shm;
-- struct shmid_ds shmbuf;
-+ AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
-
-- ipc_id = shmget(IPC_PRIVATE, 4096, (IPC_CREAT | SHM_R | SHM_W));
-- if (ipc_id == -1) {
-- return 1;
-- }
-+ AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
-
-- shm = shmat(ipc_id, NULL, 0);
-- if (shm == (void *)-1) {
-- shmctl(ipc_id, IPC_RMID, NULL);
-- return 2;
-- }
--
-- if (shmctl(ipc_id, IPC_STAT, &shmbuf) != 0) {
-- shmdt(shm);
-- shmctl(ipc_id, IPC_RMID, NULL);
-- return 3;
-- }
--
-- shmbuf.shm_perm.uid = getuid();
-- shmbuf.shm_perm.gid = getgid();
-- shmbuf.shm_perm.mode = 0600;
--
-- if (shmctl(ipc_id, IPC_SET, &shmbuf) != 0) {
-- shmdt(shm);
-- shmctl(ipc_id, IPC_RMID, NULL);
-- return 4;
-- }
--
-- shmctl(ipc_id, IPC_RMID, NULL);
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_IPC, 1, [Define if you have SysV IPC SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
-- AC_MSG_CHECKING(for mmap() using MAP_ANON shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <unistd.h>
--#include <string.h>
--
--#ifndef MAP_ANON
--# ifdef MAP_ANONYMOUS
--# define MAP_ANON MAP_ANONYMOUS
--# endif
--#endif
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- char *shm;
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANON, -1, 0);
-- if (shm == MAP_FAILED) {
-- return 1;
-- }
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_ANON, 1, [Define if you have mmap(MAP_ANON) SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
-- AC_MSG_CHECKING(for mmap() using /dev/zero shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
--
-- fd = open("/dev/zero", O_RDWR, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 1;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 2;
-- }
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_ZERO, 1, [Define if you have mmap("/dev/zero") SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
-- AC_MSG_CHECKING(for mmap() using shm_open() shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--#include <stdlib.h>
--#include <stdio.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
-- char tmpname[4096];
--
-- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
-- if (mktemp(tmpname) == NULL) {
-- return 1;
-- }
-- fd = shm_open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 2;
-- }
-- if (ftruncate(fd, 4096) < 0) {
-- close(fd);
-- shm_unlink(tmpname);
-- return 3;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 4;
-- }
-- shm_unlink(tmpname);
-- close(fd);
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
-+ AC_DEFINE(HAVE_SHM_MMAP_POSIX, 1, [Define if you have POSIX mmap() SHM support])
-
- AC_MSG_CHECKING(for mmap() using regular file shared memory support)
-- AC_TRY_RUN([
--#include <sys/types.h>
--#include <sys/wait.h>
--#include <sys/mman.h>
--#include <sys/stat.h>
--#include <fcntl.h>
--#include <unistd.h>
--#include <string.h>
--#include <stdlib.h>
--#include <stdio.h>
--
--#ifndef MAP_FAILED
--# define MAP_FAILED ((void*)-1)
--#endif
--
--int main() {
-- pid_t pid;
-- int status;
-- int fd;
-- char *shm;
-- char tmpname[4096];
--
-- sprintf(tmpname,"test.shm.%dXXXXXX", getpid());
-- if (mktemp(tmpname) == NULL) {
-- return 1;
-- }
-- fd = open(tmpname, O_RDWR | O_CREAT, S_IRUSR | S_IWUSR);
-- if (fd == -1) {
-- return 2;
-- }
-- if (ftruncate(fd, 4096) < 0) {
-- close(fd);
-- unlink(tmpname);
-- return 3;
-- }
--
-- shm = mmap(NULL, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
-- if (shm == MAP_FAILED) {
-- return 4;
-- }
-- unlink(tmpname);
-- close(fd);
--
-- strcpy(shm, "hello");
--
-- pid = fork();
-- if (pid < 0) {
-- return 5;
-- } else if (pid == 0) {
-- strcpy(shm, "bye");
-- return 6;
-- }
-- if (wait(&status) != pid) {
-- return 7;
-- }
-- if (!WIFEXITED(status) || WEXITSTATUS(status) != 6) {
-- return 8;
-- }
-- if (strcmp(shm, "bye") != 0) {
-- return 9;
-- }
-- return 0;
--}
--],dnl
-- AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
-- msg=yes,msg=no,msg=no)
-- AC_MSG_RESULT([$msg])
--
--flock_type=unknown
--AC_MSG_CHECKING("whether flock struct is linux ordered")
--AC_TRY_RUN([
-- #include <fcntl.h>
-- struct flock lock = { 1, 2, 3, 4, 5 };
-- int main() {
-- if(lock.l_type == 1 && lock.l_whence == 2 && lock.l_start == 3 && lock.l_len == 4) {
-- return 0;
-- }
-- return 1;
-- }
--], [
-- flock_type=linux
-- AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
-- AC_MSG_RESULT("yes")
--], AC_MSG_RESULT("no") )
-+
-+ AC_DEFINE(HAVE_SHM_MMAP_FILE, 1, [Define if you have mmap() SHM support])
-
--AC_MSG_CHECKING("whether flock struct is BSD ordered")
--AC_TRY_RUN([
-- #include <fcntl.h>
-- struct flock lock = { 1, 2, 3, 4, 5 };
-- int main() {
-- if(lock.l_start == 1 && lock.l_len == 2 && lock.l_type == 4 && lock.l_whence == 5) {
-- return 0;
-- }
-- return 1;
-- }
--], [
-- flock_type=bsd
-- AC_DEFINE([HAVE_FLOCK_BSD], [], [Struct flock is BSD-type])
-- AC_MSG_RESULT("yes")
--], AC_MSG_RESULT("no") )
-+ flock_type=linux
-+ AC_DEFINE([HAVE_FLOCK_LINUX], [], [Struct flock is Linux-type])
-
- if test "$flock_type" = "unknown"; then
- AC_MSG_ERROR([Don't know how to define struct flock on this system[,] set --enable-opcache=no])
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch b/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
deleted file mode 100644
index 1d21f8c56f..0000000000
--- a/meta-oe/recipes-devtools/php/php/php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 5f49987e88dfcbdb84be6e0c9025432fbd998709 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Thu, 20 Aug 2015 16:29:35 +0800
-Subject: [PATCH] config.m4: change AC_TRY_RUN to AC_TRY_LINK
-
-Upstream-Status: Pending
-
-AC_TRY_RUN is not suitable for cross-compile
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-
-%% original patch: change-AC_TRY_RUN-to-AC_TRY_LINK.patch
-
-%% original patch: php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch
----
- ext/fileinfo/config.m4 | 31 ++++++-------------------------
- 1 file changed, 6 insertions(+), 25 deletions(-)
-
-diff --git a/ext/fileinfo/config.m4 b/ext/fileinfo/config.m4
-index 7e98d62..8a8ea0e 100644
---- a/ext/fileinfo/config.m4
-+++ b/ext/fileinfo/config.m4
-@@ -14,31 +14,12 @@ if test "$PHP_FILEINFO" != "no"; then
- libmagic/readcdf.c libmagic/softmagic.c"
-
- AC_MSG_CHECKING([for strcasestr])
-- AC_TRY_RUN([
--#include <string.h>
--#include <strings.h>
--#include <stdlib.h>
--
--int main(void)
--{
-- char *s0, *s1, *ret;
--
-- s0 = (char *) malloc(42);
-- s1 = (char *) malloc(8);
--
-- memset(s0, 'X', 42);
-- s0[24] = 'Y';
-- s0[26] = 'Z';
-- s0[41] = '\0';
-- memset(s1, 'x', 8);
-- s1[0] = 'y';
-- s1[2] = 'Z';
-- s1[7] = '\0';
--
-- ret = strcasestr(s0, s1);
--
-- return !(NULL != ret);
--}
-+ AC_TRY_COMPILE([
-+ #include <string.h>
-+ #include <strings.h>
-+ #include <stdlib.h>
-+ ],[
-+ strcasestr(NULL, NULL);
- ],[
- dnl using the platform implementation
- AC_MSG_RESULT(yes)
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch b/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch
deleted file mode 100644
index cff6426ab3..0000000000
--- a/meta-oe/recipes-devtools/php/php/php5-pear-makefile.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 79725e82d5981fc94eb657f0f46a499dbfc1cc40 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-status: Unknown
-
-%% original patch: php5-pear-makefile.patch
----
- pear/Makefile.frag | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/pear/Makefile.frag b/pear/Makefile.frag
-index 00bacae..739eeca 100644
---- a/pear/Makefile.frag
-+++ b/pear/Makefile.frag
-@@ -11,7 +11,7 @@ PEAR_PREFIX = -dp a${program_prefix}
- PEAR_SUFFIX = -ds a$(program_suffix)
-
- install-pear-installer: $(SAPI_CLI_PATH)
-- @$(top_builddir)/sapi/cli/php $(PEAR_INSTALL_FLAGS) pear/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
-+ @$(PHP_NATIVE_DIR)/php $(PEAR_INSTALL_FLAGS) $(builddir)/install-pear-nozlib.phar -d "$(peardir)" -b "$(bindir)" ${PEAR_PREFIX} ${PEAR_SUFFIX}
-
- install-pear:
- @echo "Installing PEAR environment: $(INSTALL_ROOT)$(peardir)/"
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch b/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch
deleted file mode 100644
index 4e1efd40cd..0000000000
--- a/meta-oe/recipes-devtools/php/php/php5-phar-makefile.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 3ea626a8d081f56b01004b7992534d4e6b81a9cc Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Fix phar packaging
-
-Inherited from OE-Classic, with some additions to fix host paths leaking
-into the target package.
-
-Upstream-Status: Inappropriate [config]
-
-%% original patch: php5-phar-makefile.patch
----
- ext/phar/Makefile.frag | 17 +++--------------
- 1 file changed, 3 insertions(+), 14 deletions(-)
-
-diff --git a/ext/phar/Makefile.frag b/ext/phar/Makefile.frag
-index b8b1b42..1005b2d 100644
---- a/ext/phar/Makefile.frag
-+++ b/ext/phar/Makefile.frag
-@@ -5,20 +5,9 @@ pharcmd: $(builddir)/phar.php $(builddir)/phar.phar
-
- PHP_PHARCMD_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' -d phar.readonly=0 -d 'safe_mode=0'
- PHP_PHARCMD_EXECUTABLE = ` \
-- if test -x "$(top_builddir)/$(SAPI_CLI_PATH)"; then \
-- $(top_srcdir)/build/shtool echo -n -- "$(top_builddir)/$(SAPI_CLI_PATH) -n"; \
-- if test "x$(PHP_MODULES)" != "x"; then \
-- $(top_srcdir)/build/shtool echo -n -- " -d extension_dir=$(top_builddir)/modules"; \
-- for i in bz2 zlib phar; do \
-- if test -f "$(top_builddir)/modules/$$i.la"; then \
-- . $(top_builddir)/modules/$$i.la; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
-- fi; \
-- done; \
-- fi; \
-- else \
-- $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; \
-- fi;`
--PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(INSTALL_ROOT)$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
-+ $(top_srcdir)/build/shtool echo -n -- "$(PHP_EXECUTABLE)"; `
-+
-+PHP_PHARCMD_BANG = `$(top_srcdir)/build/shtool echo -n -- "$(bindir)/$(program_prefix)php$(program_suffix)$(EXEEXT)";`
-
- $(builddir)/phar/phar.inc: $(srcdir)/phar/phar.inc
- -@test -d $(builddir)/phar || mkdir $(builddir)/phar
---
-2.7.4
-
diff --git a/meta-oe/recipes-devtools/php/php/php_exec_native.patch b/meta-oe/recipes-devtools/php/php/php_exec_native.patch
deleted file mode 100644
index 6af0dc81a1..0000000000
--- a/meta-oe/recipes-devtools/php/php/php_exec_native.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From d251b5aa3d23803d016ca16818e2e1d2f2b70a02 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Wed, 2 Nov 2011 16:54:57 +0100
-Subject: [PATCH] Upstream-status: Inappriate
-
----
- sapi/cli/config.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sapi/cli/config.m4 b/sapi/cli/config.m4
-index 2168151..20a81db 100644
---- a/sapi/cli/config.m4
-+++ b/sapi/cli/config.m4
-@@ -50,7 +50,7 @@ if test "$PHP_CLI" != "no"; then
- esac
-
- dnl Set executable for tests
-- PHP_EXECUTABLE="\$(top_builddir)/\$(SAPI_CLI_PATH)"
-+ PHP_EXECUTABLE="${PHP_NATIVE_DIR}/php"
- PHP_SUBST(PHP_EXECUTABLE)
-
- dnl Expose to Makefile
diff --git a/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch b/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch
deleted file mode 100644
index 0c564cd88e..0000000000
--- a/meta-oe/recipes-devtools/php/php/pthread-check-threads-m4.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d8067ceacbf54e79c9c6b68675332c09eaa0b55d Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Mon, 8 Apr 2013 14:29:51 +0800
-Subject: [PATCH] pthread-check
-
-Enable pthreads support when cross-compiling
-
-Upstream-Status: Inapproprate [config]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- TSRM/threads.m4 | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/TSRM/threads.m4 b/TSRM/threads.m4
-index 38494ce..15d9454 100644
---- a/TSRM/threads.m4
-+++ b/TSRM/threads.m4
-@@ -86,7 +86,7 @@ int main() {
- pthreads_working=no
- ], [
- dnl For cross compiling running this test is of no use. NetWare supports pthreads
-- pthreads_working=no
-+ pthreads_working=yes
- case $host_alias in
- *netware*)
- pthreads_working=yes
---
-1.7.4.1
-
diff --git a/meta-oe/recipes-devtools/php/php_5.6.35.bb b/meta-oe/recipes-devtools/php/php_5.6.35.bb
deleted file mode 100644
index c17c0d6a25..0000000000
--- a/meta-oe/recipes-devtools/php/php_5.6.35.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b602636d46a61c0ac0432bbf5c078fe4"
-
-SRC_URI += "file://php5-change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
- file://pthread-check-threads-m4.patch \
- file://0001-Add-lpthread-to-link.patch \
- file://acinclude-xml2-config.patch \
- file://0001-acinclude-use-pkgconfig-for-libxml2-config.patch \
- "
-
-SRC_URI_append_class-target = " \
- file://php5-pear-makefile.patch \
- file://php5-phar-makefile.patch \
- file://php5-0001-opcache-config.m4-enable-opcache.patch \
- "
-
-SRC_URI[md5sum] = "905ae5f586351f3ca29d044c9484d475"
-SRC_URI[sha256sum] = "ee78a7e9ca21d8ea394d037c55effff477a49dbae31c7753c547036f5bd73b92"
-
-DEPENDS += "libmcrypt"
-EXTRA_OECONF += "--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
- "
diff --git a/meta-oe/recipes-devtools/php/php_7.2.4.bb b/meta-oe/recipes-devtools/php/php_7.2.4.bb
deleted file mode 100644
index 2fd1e66c78..0000000000
--- a/meta-oe/recipes-devtools/php/php_7.2.4.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-require php.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=67e369bc8d1f2e641236b8002039a6a2"
-
-SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
- file://0001-acinclude.m4-skip-binconfig-check-for-libxml.patch \
- file://0001-main-php_ini.c-build-empty-php_load_zend_extension_c.patch \
- file://0001-fix-error-caused-by-a-new-variable-is-declared-after.patch \
- "
-SRC_URI_append_class-target = " \
- file://pear-makefile.patch \
- file://phar-makefile.patch \
- file://0001-opcache-config.m4-enable-opcache.patch \
- "
-
-SRC_URI[md5sum] = "864c64ffd2f1686b035ef8ce6a6d8478"
-SRC_URI[sha256sum] = "11658a0d764dc94023b9fb60d4b5eb75d438ad17981efe70abb0d0d09a447ef3"
-
-PACKAGECONFIG[mysql] = "--with-mysqli=${STAGING_BINDIR_CROSS}/mysql_config \
- --with-pdo-mysql=${STAGING_BINDIR_CROSS}/mysql_config \
- ,--without-mysqli --without-pdo-mysql \
- ,mysql5"
-
-FILES_${PN}-fpm += "${sysconfdir}/php-fpm.d/www.conf.default"
diff --git a/meta-oe/recipes-devtools/php/php_8.2.8.bb b/meta-oe/recipes-devtools/php/php_8.2.8.bb
new file mode 100644
index 0000000000..407b1a7bcb
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php_8.2.8.bb
@@ -0,0 +1,296 @@
+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=5ebd5be8e2a89f634486445bd164bef0"
+
+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 \
+ 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] = "995ed4009c7917c962d31837a1a3658f36d4af4f357b673c97ffdbe6403f8517"
+
+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
+
+# 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_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
+}
+
+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 ${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}/
+}
diff --git a/meta-oe/recipes-devtools/ply/ply_git.bb b/meta-oe/recipes-devtools/ply/ply_git.bb
new file mode 100644
index 0000000000..c22dcbd12a
--- /dev/null
+++ b/meta-oe/recipes-devtools/ply/ply_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Ply: A light-weight dynamic tracer for eBPF"
+HOMEPAGE = "https://github.com/iovisor/ply"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS += "bison-native"
+
+PV = "2.3.0"
+
+SRC_URI = "git://github.com/iovisor/ply;branch=master;protocol=https"
+SRCREV = "864fac79116870df1ab7aa21e639578807e41e75"
+
+S = "${WORKDIR}/git"
+
+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/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch b/meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch
index 7ccdab0f22..3be18986fc 100644
--- a/meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch
+++ b/meta-oe/recipes-devtools/pmtools/pmtools/pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch
@@ -18,22 +18,41 @@ Signed-off-by: Kai Kang <kai.kang@windriver.com>
madt/madt.c | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
-diff --git a/madt/madt.c b/madt/madt.c
-index aed965c..8770cd5 100644
--- a/madt/madt.c
+++ b/madt/madt.c
-@@ -51,7 +51,9 @@ get_next_entry(acpi_table_entry_header * entry_header)
+@@ -34,14 +34,16 @@ typedef unsigned long long u64;
+ //#include <sys/mman.h>
+ #include <stdio.h> // fread
+ #include <stdlib.h> // malloc
++#include <string.h> // memset/memcpy
+
+ #include "./tables.c"
+
+ int verbose = 0;
+ /*
+-/* read standard input
++ * read standard input
+ * write decoded madt to standard output
+ */
++size_t
+ get_next_entry(acpi_table_entry_header * entry_header)
+ {
+ size_t retval;
+@@ -51,9 +53,11 @@ get_next_entry(acpi_table_entry_header *
return retval;
}
-u8 buffer[1024];
-+
+
+-main()
+u8 buf[1024];
+u8 *buffer = buf;
-
- main()
++int
++main(int argc, char *argv[])
{
-@@ -75,6 +77,17 @@ main()
+ size_t retval;
+ struct acpi_table_madt *madt_header;
+@@ -75,6 +79,17 @@ main()
if (verbose) printf("header.length %d\n", madt_header->header.length);
@@ -51,7 +70,7 @@ index aed965c..8770cd5 100644
acpi_table_print((void*)&(buffer[bytes_read]), 0);
bytes_read = sizeof(struct acpi_table_madt);
-@@ -118,6 +131,9 @@ done:
+@@ -118,6 +133,9 @@ done:
printf("Checksum 0x%x != 0; 0x%x in header ERROR\n", csum,
madt_header->header.checksum);
@@ -61,6 +80,3 @@ index aed965c..8770cd5 100644
return 0;
}
---
-1.8.1.2
-
diff --git a/meta-oe/recipes-devtools/pmtools/pmtools_git.bb b/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
index 8491fc904d..56d895a099 100644
--- a/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
+++ b/meta-oe/recipes-devtools/pmtools/pmtools_git.bb
@@ -1,12 +1,12 @@
DESCRIPTION = "This is a small collection of power management \
test and investigation tools"
HOMEPAGE = "http://lesswatts.org/projects/acpi"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
PV = "20130209+git${SRCPV}"
-SRC_URI = "git://github.com/anyc/pmtools.git \
+SRC_URI = "git://github.com/anyc/pmtools.git;branch=master;protocol=https \
file://pmtools-switch-to-dynamic-buffer-for-huge-ACPI-table.patch \
"
SRCREV = "3ebe0e54c54061b4c627236cbe35d820de2e1168"
@@ -18,7 +18,7 @@ S = "${WORKDIR}/git"
inherit update-alternatives
ALTERNATIVE_PRIORITY = "90"
-ALTERNATIVE_${PN} = "acpixtract"
+ALTERNATIVE:${PN} = "acpixtract acpidump"
do_configure[noexec] = "1"
do_compile() {
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
new file mode 100644
index 0000000000..a41f985eb8
--- /dev/null
+++ b/meta-oe/recipes-devtools/poke/poke/0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch
@@ -0,0 +1,45 @@
+From cef3fc90f02ef4fc49515745194bac3d81a2265b Mon Sep 17 00:00:00 2001
+From: "Jose E. Marchesi" <jose.marchesi@oracle.com>
+Date: Fri, 30 Apr 2021 13:17:05 +0200
+Subject: [PATCH] build: do not check for Tcl/Tk if --disable-gui is specified
+
+2021-04-30 Jose E. Marchesi <jemarch@gnu.org>
+
+ * configure.ac: Do not check for tcl/tk if --disable-gui is
+ specified at configure time.
+
+(cherry picked from commit 280a5e154287e43c0a40d9530a9cc658a7367a9c)
+[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/configure.ac b/configure.ac
+index c7205513..c2f0760a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -214,12 +214,15 @@ fi
+ dnl The GUI is optional, and depends on the availability of Tcl and
+ dnl Tk.
+
+-POKE_TCLTK
+-
+ AC_ARG_ENABLE([gui],
+ AS_HELP_STRING([--enable-gui],
+ [Enable the GUI (default is YES)]),
+- [gui_enabled=$enableval], [gui_enabled=$has_tcltk])
++ [gui_enabled=$enableval], [gui_enabled=yes])
++
++if test "x$gui_enabled" = "xyes"; then
++ POKE_TCLTK
++ gui_enabled=$has_tcltk
++fi
+
+ AM_CONDITIONAL([GUI], [test "x$gui_enabled" = "xyes"])
+
+--
+2.30.2
+
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
new file mode 100644
index 0000000000..660b19f514
--- /dev/null
+++ b/meta-oe/recipes-devtools/poke/poke/0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch
@@ -0,0 +1,47 @@
+From c37419e459bd5863534719fa50755174d0912e6d Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 30 Apr 2021 14:32:21 +0200
+Subject: [PATCH] jitter: jitter-config.in: avoit host poisoning while
+ cross-compiling
+
+When jitter is bundled into another project (poke), jitter-config --cppflags
+return an unsafe path "-I /usr/include".
+
+In the context of Buildroot, such configuration script woulf be "fixed"
+after installation. But jitter-config is not installed by poke since it's
+build as static library and liked to poke.
+
+For now, patch jitter-config.in instead of jitter-config.in.m4sh since
+there is an issue while converting the M4sh m4sh script ( .in.m4sh )
+into a portable shell script ( .in ) ready to be processed by aclocal
+for @-substitutions.
+
+[1] https://git.buildroot.net/buildroot/tree/package/pkg-generic.mk?h=2021.02.1#n291
+
+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/jitter/bin/jitter-config.in b/jitter/bin/jitter-config.in
+index 5e124f0..af0ac9d 100644
+--- a/jitter/bin/jitter-config.in
++++ b/jitter/bin/jitter-config.in
+@@ -998,11 +998,7 @@ while test "$#" != "0"; do
+ append_to_output cflags;;
+ --cppflags)
+ no_option_argument
+- append_to_output cppflags
+- # Append a -I argument. This is defined separately from the rest,
+- # as the installation prefix can be decided very late, at Jitter
+- # installation time.
+- output="$output -I $includedir";;
++ append_to_output cppflags;;
+ --ldadd)
+ no_option_argument
+ append_to_output ldadd;;
+--
+2.30.2
+
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
new file mode 100644
index 0000000000..ad2bf764d3
--- /dev/null
+++ b/meta-oe/recipes-devtools/poke/poke/0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch
@@ -0,0 +1,36 @@
+From 8ba76a5a7ce311f67890199c5595bc1f626495ad Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Fri, 30 Apr 2021 15:43:59 +0200
+Subject: [PATCH] configure.ac: HELP2MAN replace ':' by 'true' when
+ cross-compiling
+
+Avoid:
+/usr/bin/make ./../poke/poke
+../run \
+ : -p poke --name="The GNU extensible binary editor" \
+ ./../poke/poke -o ./poke.1
+../run: line 51: exec: :: not found
+
+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/configure.ac b/configure.ac
+index c2f0760a..93769ef9 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -74,7 +74,7 @@ gl_LIBTEXTSTYLE_OPTIONAL([0.20.5])
+ if test $cross_compiling = no; then
+ AM_MISSING_PROG(HELP2MAN, help2man)
+ else
+- HELP2MAN=:
++ HELP2MAN=true
+ fi
+
+ dnl recfix is part of the GNU recutils suite, and is used in cfg.mk to
+--
+2.30.2
+
diff --git a/meta-oe/recipes-devtools/poke/poke_1.2.bb b/meta-oe/recipes-devtools/poke/poke_1.2.bb
new file mode 100644
index 0000000000..af85d21705
--- /dev/null
+++ b/meta-oe/recipes-devtools/poke/poke_1.2.bb
@@ -0,0 +1,32 @@
+SUMMARY = "GNU poke is an extensible editor for structured binary data"
+HOMEPAGE = "https://pokology.org"
+DESCRIPTION = "GNU poke is an interactive, extensible editor for binary data. Not limited to editing basic entities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them."
+SECTION = "console/utils"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "${GNU_MIRROR}/poke/poke-${PV}.tar.gz \
+ file://0001-build-do-not-check-for-Tcl-Tk-if-disable-gui-is-spec.patch \
+ file://0002-jitter-jitter-config.in-avoit-host-poisoning-while-c.patch \
+ file://0003-configure.ac-HELP2MAN-replace-by-true-when-cross-com.patch \
+ "
+
+DEPENDS = "flex-native bison-native bdwgc readline"
+
+SRC_URI[sha256sum] = "f61cf8da5b64c01a1359373725aad1ca257f35c1c9269e4d50dd0664183ddf62"
+
+# poke does not support using out-of-tree builds
+inherit autotools-brokensep gettext pkgconfig
+
+# The automatic m4 path detection gets confused, so force the right value from
+# the poke bootstrap script.
+acpaths = "-I ./m4"
+
+EXTRA_OECONF = "--disable-gui \
+ --disable-libnbd \
+ --with-libreadline-prefix=${STAGING_INCDIR} \
+ "
+
+PACKAGECONFIG[mi] = "--enable-mi,--disable-mi,json-c"
+
+FILES:${PN} += "${datadir}/emacs/site-lisp"
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
deleted file mode 100644
index fe1e6e5faf..0000000000
--- a/meta-oe/recipes-devtools/protobuf/protobuf-c_1.3.0.bb
+++ /dev/null
@@ -1,31 +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"
-
-DEPENDS = "protobuf-native protobuf"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler"
-RDEPENDS_${PN}-compiler = "protobuf-compiler"
-RDEPENDS_${PN}-dev += "${PN}-compiler"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cb901168715f4782a2b06c3ddaefa558"
-
-PV .= "+git${SRCPV}"
-SRCREV = "dac1a65feac4ad72f612aab99f487056fbcf5c1a"
-
-SRC_URI = "git://github.com/protobuf-c/protobuf-c.git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-FILES_${PN}-compiler = "${bindir}"
-
-BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..d724287d66
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf-c_1.4.1.bb
@@ -0,0 +1,36 @@
+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/0001-Fix-build-on-mips-clang.patch b/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-build-on-mips-clang.patch
new file mode 100644
index 0000000000..9f6116c4c4
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-build-on-mips-clang.patch
@@ -0,0 +1,26 @@
+From 08e46feb6553af670754e65d94c3bb6fcd4e0cf9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 31 Oct 2021 23:39:44 -0700
+Subject: [PATCH] Fix build on mips/clang
+
+clang13 crashes on mips, until its fixed upstream disable tailcall on
+mips
+
+https://bugs.llvm.org/show_bug.cgi?id=52367
+
+Upstream-Status: Inappropriate [Clang workaround]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/google/protobuf/port_def.inc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/src/google/protobuf/port_def.inc
++++ b/src/google/protobuf/port_def.inc
+@@ -255,6 +255,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)
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
new file mode 100644
index 0000000000..2bc44c898b
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf/0001-Fix-linking-error-with-ld-gold.patch
@@ -0,0 +1,69 @@
+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
+
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..36c3c597ac
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf/0001-examples-Makefile-respect-CXX-LDFLAGS-variables-fix-.patch
@@ -0,0 +1,58 @@
+From e3fa241637ab5a7fa78c0d474802134cff75f91e Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Fri, 28 Jun 2019 13:50:52 +0000
+Subject: [PATCH] examples/Makefile: respect CXX,LDFLAGS variables, fix build
+ with gold
+
+* move pkg-config call to separate variable, so that the final version
+ of the whole command so it's shown in log.do_compile_ptest_base
+* add ../src/google/protobuf/.libs/timestamp.pb.o when linking
+ add_person_cpp otherwise it fails to link with gold:
+ i686-oe-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed add_person.cc addressbook.pb.cc -o add_person_cpp `pkg-config --cflags --libs protobuf`
+ /tmp/cccjSJQs.o:addressbook.pb.cc:scc_info_Person_addressbook_2eproto: error: undefined reference to 'scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto'
+ /tmp/cccjSJQs.o:addressbook.pb.cc:descriptor_table_addressbook_2eproto_deps: error: undefined reference to 'descriptor_table_google_2fprotobuf_2ftimestamp_2eproto'
+ collect2: error: ld returned 1 exit status
+ Makefile:43: recipe for target 'add_person_cpp' failed
+
+* and the same with list_people_cpp this time with pkg-config already through the variable:
+ i686-oe-linux-g++ -m32 -march=core2 -mtune=core2 -msse3 -mfpmath=sse --sysroot=core2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -pthread -Icore2-32-oe-linux/protobuf/3.8.0-r0/git/src -Lcore2-32-oe-linux/protobuf/3.8.0-r0/git/src/.libs -Lcore2-32-oe-linux/protobuf/3.8.0-r0/recipe-sysroot/usr/lib -lprotobuf list_people.cc addressbook.pb.cc -o list_people_cpp
+ /tmp/ccpaI5Su.o:addressbook.pb.cc:scc_info_Person_addressbook_2eproto: error: undefined reference to 'scc_info_Timestamp_google_2fprotobuf_2ftimestamp_2eproto'
+ /tmp/ccpaI5Su.o:addressbook.pb.cc:descriptor_table_addressbook_2eproto_deps: error: undefined reference to 'descriptor_table_google_2fprotobuf_2ftimestamp_2eproto'
+ collect2: error: ld returned 1 exit status
+ Makefile:49: recipe for target 'list_people_cpp' failed
+
+Upstream-Status: Pending
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+---
+ examples/Makefile | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/examples/Makefile b/examples/Makefile
+index 1c7ec8d63..85f591231 100644
+--- a/examples/Makefile
++++ b/examples/Makefile
+@@ -2,6 +2,8 @@
+
+ .PHONY: all cpp java python clean
+
++PROTOBUF := $(shell pkg-config --cflags --libs protobuf)
++
+ all: cpp java python
+
+ cpp: add_person_cpp list_people_cpp
+@@ -40,11 +42,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
+
+ 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
+
+ add_person_dart: add_person.dart protoc_middleman_dart
+
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest b/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest
index 7c3a8d1b3a..b3b2278c47 100644
--- a/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest
+++ b/meta-oe/recipes-devtools/protobuf/protobuf/run-ptest
@@ -8,7 +8,7 @@ for write_exe_full_path in ${DIR}/add_person_*; do
if [ -x "${write_exe_full_path}" ]; then
write_exe=`basename ${write_exe_full_path}`
echo "Generating new test file using ${write_exe}..."
- ${write_exe_full_path} "${TEST_FILE}"
+ printf "1234\nname\nname@example.com\n" | ${write_exe_full_path} "${TEST_FILE}"
RETVAL=$?
[ $RETVAL -eq 0 ] || exit $RETVAL
diff --git a/meta-oe/recipes-devtools/protobuf/protobuf_3.21.12.bb b/meta-oe/recipes-devtools/protobuf/protobuf_3.21.12.bb
new file mode 100644
index 0000000000..343933033b
--- /dev/null
+++ b/meta-oe/recipes-devtools/protobuf/protobuf_3.21.12.bb
@@ -0,0 +1,108 @@
+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 = "f0dc78d7e6e331b8c6bb2d5283e06aa26883ca7c"
+
+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: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 \
+"
+
+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}"
+
+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/protobuf/protobuf_3.5.1.bb b/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
deleted file mode 100644
index 1ffb79da71..0000000000
--- a/meta-oe/recipes-devtools/protobuf/protobuf_3.5.1.bb
+++ /dev/null
@@ -1,84 +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"
-
-PACKAGE_BEFORE_PN = "${PN}-compiler ${PN}-lite"
-
-DEPENDS = "zlib"
-DEPENDS_append_class-target = " protobuf-native"
-RDEPENDS_${PN}-compiler = "${PN}"
-RDEPENDS_${PN}-dev += "${PN}-compiler"
-RDEPENDS_${PN}-ptest = "bash python-protobuf"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=35953c752efc9299b184f91bef540095"
-
-SRCREV = "106ffc04be1abf3ff3399f54ccf149815b287dd9"
-
-PV = "3.5.1+git${SRCPV}"
-
-SRC_URI = "git://github.com/google/protobuf.git;branch=3.5.x \
- file://run-ptest \
- "
-
-EXTRA_OECONF += " --with-protoc=echo"
-
-inherit autotools-brokensep pkgconfig ptest
-
-S = "${WORKDIR}/git"
-TEST_SRC_DIR="examples"
-LANG_SUPPORT="cpp python"
-
-do_compile_ptest() {
- # Modify makefile to use the cross-compiler
- sed -e "s|c++|${CXX} \$(LDFLAGS)|g" -i "${S}/${TEST_SRC_DIR}/Makefile"
-
- 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"
- 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}/src/.libs|' -i "${B}/${TEST_SRC_DIR}/protobuf.pc"
- 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 "${S}/${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 "${S}/${TEST_SRC_DIR}/addressbook_pb2.py" "${D}/${PTEST_PATH}"
- cd "$olddir"
-}
-
-FILES_${PN}-compiler = "${bindir} ${libdir}/libprotoc${SOLIBS}"
-FILES_${PN}-lite = "${bindir} ${libdir}/libprotobuf-lite${SOLIBS}"
-
-MIPS_INSTRUCTION_SET = "mips"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/pugixml/pugixml_1.13.bb b/meta-oe/recipes-devtools/pugixml/pugixml_1.13.bb
new file mode 100644
index 0000000000..7df8fc43b8
--- /dev/null
+++ b/meta-oe/recipes-devtools/pugixml/pugixml_1.13.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=d11b640daff611273752ec136394347c"
+
+SRC_URI = "https://github.com/zeux/${BPN}/releases/download/v${PV}/${BP}.tar.gz"
+SRC_URI[sha256sum] = "40c0b3914ec131485640fa57e55bf1136446026b41db91c1bef678186a12abbe"
+
+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/python-cpuset_1.5.7.bb b/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
deleted file mode 100644
index 156e52a3a5..0000000000
--- a/meta-oe/recipes-devtools/python/python-cpuset_1.5.7.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Cpuset is a Python application to make using the cpusets facilities in the Linux kernel easier"
-SECTION = "devel/python"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-S = "${WORKDIR}/git"
-SRCREV = "ae629aa1dc959342745ad97406adddf63bb6dbdd"
-SRC_URI = "git://github.com/lpechacek/cpuset.git;protocol=https;"
-
-inherit distutils
-
-RDEPENDS_${PN} = "\
- python-core \
- python-re \
- python-logging \
- python-textutils \
- python-unixadmin \
- "
diff --git a/meta-oe/recipes-devtools/python/python-distutils-extra.bb b/meta-oe/recipes-devtools/python/python-distutils-extra.bb
deleted file mode 100644
index 56dd33d7ff..0000000000
--- a/meta-oe/recipes-devtools/python/python-distutils-extra.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-distutils-extra.inc
-
-inherit setuptools
-
-DISTUTILS_INSTALL_ARGS += "--install-lib=${libdir}/${PYTHON_DIR}/site-packages"
-
-RDEPENDS_${PN} = "\
- python-distutils \
-"
diff --git a/meta-oe/recipes-devtools/python/python-distutils-extra.inc b/meta-oe/recipes-devtools/python/python-distutils-extra.inc
deleted file mode 100644
index 4d87d77cdb..0000000000
--- a/meta-oe/recipes-devtools/python/python-distutils-extra.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "python-distutils extension"
-DESCRITION = "python-distutils extension integrating gettext support, themed icons and scrollkeeper based documentation"
-HOMEPAGE = "https://launchpad.net/python-distutils-extra"
-SECTION = "devel/python"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4325afd396febcb659c36b49533135d4"
-
-PV = "2.39"
-SRC_URI = "https://launchpad.net/python-distutils-extra/trunk/${PV}/+download/python-distutils-extra-${PV}.tar.gz"
-SRC_URI[md5sum] = "16e06db0ef73a35b4bff4b9eed5699b5"
-SRC_URI[sha256sum] = "723f24f4d65fc8d99b33a002fbbb3771d4cc9d664c97085bf37f3997ae8063af"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb b/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb
deleted file mode 100644
index 3ee945fc9c..0000000000
--- a/meta-oe/recipes-devtools/python/python-futures_3.2.0.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "The concurrent.futures module provides a high-level interface for asynchronously executing callables."
-SECTION = "devel/python"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=834d982f973c48b6d662b5944c5ab567"
-HOMEPAGE = "https://github.com/agronholm/pythonfutures"
-DEPENDS = "python"
-
-SRC_URI[md5sum] = "d1b299a06b96ccb59f70324716dc0016"
-SRC_URI[sha256sum] = "9ec02aa7d674acb8618afb127e27fde7fc68994c0437ad759fa094a574adb265"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch b/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
deleted file mode 100644
index 9a11442f1c..0000000000
--- a/meta-oe/recipes-devtools/python/python-pygobject/0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 5e5350d730f85957a42c6d846d347d080e7dd996 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Fri, 23 Oct 2015 12:40:34 +0300
-Subject: [PATCH] configure.ac: add sysroot path to GI_DATADIR; don't set
- introspection scanner and compiler paths
-
-Upstream-Status: Pending [review on oe-core maillist]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- configure.ac | 8 +-------
- 1 file changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 2c0cfbd..cfcb3bf 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -155,7 +155,7 @@ PKG_CHECK_MODULES(GI,
-
- GOBJECT_INTROSPECTION_CHECK(introspection_required_version)
-
--GI_DATADIR=$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
-+GI_DATADIR=$PKG_CONFIG_SYSROOT_DIR$($PKG_CONFIG --variable=gidatadir gobject-introspection-1.0)
- AC_SUBST(GI_DATADIR)
-
- if test "$enable_cairo" != no; then
---
-2.1.4
-
diff --git a/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb b/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
deleted file mode 100644
index ab65ba1dcf..0000000000
--- a/meta-oe/recipes-devtools/python/python-pygobject_3.28.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Python GObject bindings"
-HOMEPAGE = "http://www.pygtk.org/"
-SECTION = "devel/python"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
-
-inherit autotools pkgconfig gnomebase distutils-base gobject-introspection
-
-PYTHON_BASEVERSION = "2.7"
-PYTHON_PN = "python"
-
-DEPENDS += "gnome-common-native python glib-2.0"
-
-SRCNAME="pygobject"
-SRC_URI = " \
- http://ftp.gnome.org/pub/GNOME/sources/${SRCNAME}/${@gnome_verdir("${PV}")}/${SRCNAME}-${PV}.tar.xz \
- file://0001-configure.ac-add-sysroot-path-to-GI_DATADIR-don-t-se.patch \
-"
-
-SRC_URI[md5sum] = "b29d69edb63ae1f555afeb19f90b9996"
-SRC_URI[sha256sum] = "42b47b261b45aedfc77e02e3c90a01cd74d6f86c3273c1860a054d531d606e5a"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-BBCLASSEXTEND = "native"
-
-EXTRA_OECONF = "--disable-cairo --with-python=${PYTHON}"
-
-RDEPENDS_${PN} += "python-setuptools"
-RDEPENDS_${PN}_class-native = ""
-
-do_install_append() {
- # Remove files that clash with python3-pygobject; their content is same
- rm -rf ${D}${includedir}/pygobject-3.0//pygobject.h ${D}${libdir}/pkgconfig
-}
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.bb b/meta-oe/recipes-devtools/python/python3-distutils-extra.bb
deleted file mode 100644
index af242b8509..0000000000
--- a/meta-oe/recipes-devtools/python/python3-distutils-extra.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require python-distutils-extra.inc
-
-inherit setuptools3
-
-S = "${WORKDIR}/python-distutils-extra-${PV}"
-
-DISTUTILS_INSTALL_ARGS += "--install-lib=${libdir}/${PYTHON_DIR}/site-packages"
-
-RDEPENDS_${PN} = "\
- python3-setuptools \
-"
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
new file mode 100644
index 0000000000..e129c18d63
--- /dev/null
+++ b/meta-oe/recipes-devtools/python/python3-distutils-extra_2.39.bb
@@ -0,0 +1,17 @@
+SUMMARY = "python-distutils extension"
+DESCRIPTION = "python-distutils extension integrating gettext support, themed icons and scrollkeeper based documentation"
+HOMEPAGE = "https://launchpad.net/python-distutils-extra"
+SECTION = "devel/python"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4325afd396febcb659c36b49533135d4"
+
+SRC_URI = "https://launchpad.net/python-distutils-extra/trunk/${PV}/+download/python-distutils-extra-${PV}.tar.gz"
+SRC_URI[sha256sum] = "723f24f4d65fc8d99b33a002fbbb3771d4cc9d664c97085bf37f3997ae8063af"
+
+inherit setuptools3
+
+PIP_INSTALL_PACKAGE = "python_distutils_extra"
+
+S = "${WORKDIR}/python-distutils-extra-${PV}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/python/python3-pycups_2.0.1.bb b/meta-oe/recipes-devtools/python/python3-pycups_2.0.1.bb
new file mode 100644
index 0000000000..1508273009
--- /dev/null
+++ b/meta-oe/recipes-devtools/python/python3-pycups_2.0.1.bb
@@ -0,0 +1,19 @@
+# Python bindings for libcups, from the CUPS project.
+#
+# Copyright (c) Ambu A/S - All rights reserved
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+# clst@ambu.com (Claus Stovgaard)
+#
+
+DESCRIPTION = "pycups - CUPS bindings for Python"
+HOMEPAGE = "https://github.com/OpenPrinting/pycups"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+DEPENDS += "cups"
+
+# See https://pypi.org/project/pycups/ for data
+SRC_URI[sha256sum] = "57434ce5f62548eb12949ca8217f066f4eeb21a5d6ab8b13471dce350e380c90"
+
+inherit pypi python_setuptools_build_meta
diff --git a/meta-oe/recipes-devtools/rapidjson/rapidjson/remove-march-native-from-CMAKE_CXX_FLAGS.patch b/meta-oe/recipes-devtools/rapidjson/rapidjson/remove-march-native-from-CMAKE_CXX_FLAGS.patch
deleted file mode 100644
index cf3e16ea5d..0000000000
--- a/meta-oe/recipes-devtools/rapidjson/rapidjson/remove-march-native-from-CMAKE_CXX_FLAGS.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 827155e5e659b2a5065b00d701bc59b57feab2bf Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Mon, 19 Dec 2016 01:37:11 -0800
-Subject: [PATCH] remove -march=native from CMAKE_CXX_FLAGS
-
-Not appropriate when cross compiling.
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- CMakeLists.txt | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: git/CMakeLists.txt
-===================================================================
---- git.orig/CMakeLists.txt
-+++ git/CMakeLists.txt
-@@ -51,10 +51,10 @@ endif(CCACHE_FOUND)
-
- if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
- if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL "powerpc" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ppc64" OR ${CMAKE_SYSTEM_PROCESSOR} STREQUAL "ppc64le")
-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native")
-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- else()
- #FIXME: x86 is -march=native, but doesn't mean every arch is this option. To keep original project's compatibility, I leave this except POWER.
-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- endif()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror")
- set(EXTRA_CXX_FLAGS -Weffc++ -Wswitch-default -Wfloat-equal -Wconversion -Wsign-conversion)
-@@ -84,7 +84,7 @@ elseif (CMAKE_CXX_COMPILER_ID MATCHES "C
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mcpu=native")
- else()
- #FIXME: x86 is -march=native, but doesn't mean every arch is this option. To keep original project's compatibility, I leave this except POWER.
-- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
-+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- endif()
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Werror -Wno-missing-field-initializers")
- set(EXTRA_CXX_FLAGS -Weffc++ -Wswitch-default -Wfloat-equal -Wconversion -Wimplicit-fallthrough -Weverything)
diff --git a/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb b/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
index 069385d5b0..b6ff62b91c 100644
--- a/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
+++ b/meta-oe/recipes-devtools/rapidjson/rapidjson_git.bb
@@ -4,11 +4,9 @@ SECTION = "libs"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://license.txt;md5=ba04aa8f65de1396a7e59d1d746c2125"
-SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1 \
- file://remove-march-native-from-CMAKE_CXX_FLAGS.patch \
-"
+SRC_URI = "git://github.com/miloyip/rapidjson.git;nobranch=1;protocol=https"
-SRCREV = "e5635fb27feab7f6e8d7b916aa20ad799045a641"
+SRCREV = "0ccdbf364c577803e2a751f5aededce935314313"
PV = "1.1.0+git${SRCPV}"
@@ -17,9 +15,12 @@ S = "${WORKDIR}/git"
inherit cmake
EXTRA_OECMAKE += "-DRAPIDJSON_BUILD_DOC=OFF -DRAPIDJSON_BUILD_TESTS=OFF -DRAPIDJSON_BUILD_EXAMPLES=OFF"
+# the install path for cmake modules etc. is hardcoded as ${prefix}/lib in
+# CMakeLists.txt, which breaks the package split with multilib
+EXTRA_OECMAKE += "-DLIB_INSTALL_DIR=${libdir}"
# RapidJSON is a header-only C++ library, so the main package will be empty.
-RDEPENDS_${PN}-dev = ""
+ALLOW_EMPTY:${PN} = "1"
BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch b/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch
deleted file mode 100644
index f69254a292..0000000000
--- a/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Add-option-to-enable-internal-loopback.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 059d5512e840fe68e2bb37add6c9208fa9c34d15 Mon Sep 17 00:00:00 2001
-From: Sekhar Nori <nsekhar@ti.com>
-Date: Tue, 24 Feb 2015 22:16:37 +0530
-Subject: [PATCH 1/2] Add option to enable internal loopback
-
-Upstream-status: Pending
----
- serialcheck.c | 23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
-
-diff --git a/serialcheck.c b/serialcheck.c
-index 4f5b747..4100c37 100644
---- a/serialcheck.c
-+++ b/serialcheck.c
-@@ -12,6 +12,8 @@
- #include <sys/ioctl.h>
- #include <linux/serial.h>
-
-+#define TIOCM_LOOP 0x8000
-+
- #define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
- #define BUILD_BUG_ON_ZERO(e) (sizeof(struct { int:-!!(e); }))
- #define __must_be_array(a) BUILD_BUG_ON_ZERO(__same_type((a), &(a)[0]))
-@@ -40,6 +42,7 @@ struct g_opt {
- unsigned char hflow;
- unsigned char do_termios;
- unsigned char *cmp_buff;
-+ unsigned char loopback;
- };
-
- /* name, key, arg, flags, doc, group */
-@@ -51,6 +54,7 @@ static struct argp_option options[] = {
- {"mode", 'm', "M", 0, "transfer mode (d = duplex, t = send r = receive)", 0},
- {"loops", 'l', "NUM", 0, "loops to perform (0 => wait fot CTRL-C", 0},
- {"no-termios", 'n', NULL, 0, "No termios change (baud rate etc. remains unchanged)", 0},
-+ {"loopback", 'k', NULL, 0, "loopback mode", 0},
- {NULL, 0, NULL, 0, NULL, 0}
- };
-
-@@ -67,6 +71,7 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
- go->baudrate = 115200;
- go->loops = UINT_MAX;
- go->do_termios = 1;
-+ go->loopback = 0;
- break;
- case ARGP_KEY_ARG:
- ret = ARGP_ERR_UNKNOWN;
-@@ -113,6 +118,9 @@ static error_t parse_opt(int key, char *arg, struct argp_state *state)
- } else
- go->loops = num;
- break;
-+ case 'k':
-+ go->loopback = 1;
-+ break;
- default:
- ret = ARGP_ERR_UNKNOWN;
- }
-@@ -487,6 +495,21 @@ int main(int argc, char *argv[])
- die("tcflush failed: %m\n");
- }
-
-+ if (opts.loopback) {
-+ unsigned int mcr;
-+
-+ ret = ioctl(fd, TIOCMGET, &mcr);
-+ if (ret < 0)
-+ die("mcr get failed: %m\n");
-+
-+ mcr |= TIOCM_LOOP;
-+
-+ ret = ioctl(fd, TIOCMSET, &mcr);
-+ if (ret < 0)
-+ die ("mcr set failed: %m\n");
-+
-+ }
-+
- ret = fcntl(fd, F_SETFL, 0);
- if (ret)
- printf("Failed to remove nonblock mode\n");
---
-1.9.1
diff --git a/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch b/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch
deleted file mode 100644
index 2ab48345dc..0000000000
--- a/meta-oe/recipes-devtools/serialcheck/serialcheck/0001-Makefile-Change-order-of-link-flags.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From efc8a4e717ba919c869c2da1c7de2d08bc976926 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 24 Feb 2016 18:48:07 +0000
-Subject: [PATCH] Makefile: Change order of link flags
-
-This helps in injectcting LDFLAGS from env to take effect
-as it appears last on cmdline now
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- Makefile | 10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index ba2bfbb..6d13e68 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,3 +1,9 @@
--CFLAGS=-O2 -Wall -Wextra -g -Wno-sign-compare -Wno-pointer-sign
--CC=gcc
-+CFLAGS?=-O2 -Wall -Wextra -g -Wno-sign-compare -Wno-pointer-sign
-+CC?=gcc
- all: serialcheck
-+serialcheck : serialcheck.o
-+ $(CC) -o serialcheck serialcheck.o $(CFLAGS) $(LDFLAGS)
-+
-+%.o : %.c
-+ $(CC) -c $(CFLAGS) $(CPPFLAGS) $< -o $@
-+
---
-1.9.1
-
diff --git a/meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch b/meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch
deleted file mode 100644
index 1b8c95b10c..0000000000
--- a/meta-oe/recipes-devtools/serialcheck/serialcheck/0002-Restore-original-loopback-config.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From a6e5813d2f8402bf3a311c8bcda02623bfb76882 Mon Sep 17 00:00:00 2001
-From: Carlos Hernandez <ceh@ti.com>
-Date: Tue, 24 Feb 2015 16:00:34 -0500
-Subject: [PATCH 2/2] Restore original loopback config
-
-If loopback option is enabled, disable it at the end of the test.
-
-Signed-off-by: Carlos Hernandez <ceh@ti.com>
-Upstream-status: Pending
----
- serialcheck.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/serialcheck.c b/serialcheck.c
-index 4100c37..06470f7 100644
---- a/serialcheck.c
-+++ b/serialcheck.c
-@@ -427,6 +427,7 @@ int main(int argc, char *argv[])
- unsigned char *data;
- unsigned int open_mode;
- off_t data_len;
-+ unsigned int mcr;
-
- argp_parse(&argp, argc, argv, 0, NULL, &opts);
- if (!opts.file_trans)
-@@ -496,8 +497,6 @@ int main(int argc, char *argv[])
- }
-
- if (opts.loopback) {
-- unsigned int mcr;
--
- ret = ioctl(fd, TIOCMGET, &mcr);
- if (ret < 0)
- die("mcr get failed: %m\n");
-@@ -535,6 +534,12 @@ int main(int argc, char *argv[])
- ret = tcsetattr(fd, TCSAFLUSH, &old_term);
- if (ret)
- printf("tcsetattr() of old ones failed: %m\n");
-+ if (opts.loopback) {
-+ mcr &= ~(TIOCM_LOOP);
-+ ret = ioctl(fd, TIOCMSET, &mcr);
-+ }
-+ if (ret)
-+ printf("disabling loopback failed: %m\n");
-
- close(fd);
- return status;
---
-1.9.1
diff --git a/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb b/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
index cd5e0a4e5c..29abfe1af5 100644
--- a/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
+++ b/meta-oe/recipes-devtools/serialcheck/serialcheck_1.0.0.bb
@@ -1,30 +1,31 @@
SUMMARY = "Application to verify operation of serial ports"
-HOMEPAGE = "http://git.breakpoint.cc/cgit/bigeasy/serialcheck.git/"
-LICENSE = "GPLv2"
+HOMEPAGE = "https://github.com/nsekhar/serialcheck"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRC_URI = "git://git.breakpoint.cc/bigeasy/serialcheck.git \
- file://0001-Add-option-to-enable-internal-loopback.patch \
- file://0002-Restore-original-loopback-config.patch \
- file://0001-Makefile-Change-order-of-link-flags.patch \
- "
+SRC_URI = " \
+ git://github.com/nsekhar/serialcheck.git;branch=master;protocol=https \
+"
-SRCREV = "63854a2d0c0129efab132ec328a75279e013fb84"
+SRCREV = "45eb2ffa5378396e85432872833890b0a1cba872"
S = "${WORKDIR}/git"
-DEPENDS_append_libc-musl = " argp-standalone"
-EXTRA_OEMAKE = "-e MAKEFLAGS="
+inherit autotools
-CFLAGS_prepend = "-Wall -Wextra -Wno-sign-compare -Wno-pointer-sign "
-LDFLAGS_append_libc-musl = " -largp"
+DEPENDS:append:libc-musl = " argp-standalone"
+EXTRA_OEMAKE:append:libc-musl = " LIBS='-largp'"
+
+PACKAGE_BEFORE_PN += "${PN}-stats"
do_install() {
install -d ${D}${bindir}
- install ${S}/serialcheck ${D}${bindir}
+ install ${B}/serialcheck ${D}${bindir}
+ install ${B}/serialstats ${D}${bindir}
install -d ${D}${docdir}/${BP}
- install ${S}/Readme.txt ${D}${docdir}/${BP}
+ install ${S}/README ${D}${docdir}/${BP}
}
-CLEANBROKEN = "1"
+
+FILES:${PN}-stats = "${bindir}/serialstats"
BBCLASSEXTEND = "nativesdk"
diff --git a/meta-oe/recipes-devtools/sip/sip_4.19.8.bb b/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
deleted file mode 100644
index ea944b32ff..0000000000
--- a/meta-oe/recipes-devtools/sip/sip_4.19.8.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "SIP is a C++/Python Wrapper Generator"
-HOMEPAGE = "http://www.riverbankcomputing.co.uk/sip"
-SECTION = "devel"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE-GPL2;md5=e91355d8a6f8bd8f7c699d62863c7303"
-
-inherit python-dir
-
-DEPENDS = "python"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/pyqt/sip/sip-${PV}/sip-${PV}.tar.gz"
-SRC_URI[md5sum] = "0625fb20347d4ff1b5da551539be0727"
-SRC_URI[sha256sum] = "7eaf7a2ea7d4d38a56dd6d2506574464bddf7cf284c960801679942377c297bc"
-
-BBCLASSEXTEND = "native"
-
-PACKAGES += "python-sip"
-
-do_configure_prepend_class-target() {
- echo "py_platform = linux" > sip.cfg
- echo "py_inc_dir = %(sysroot)/${includedir}/python%(py_major).%(py_minor)" >> 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 --sysroot ${STAGING_DIR_HOST} CC="${CC}" CXX="${CXX}" LINK="${CXX}" STRIP="" LINK_SHLIB="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LFLAGS="${LDFLAGS}"
-}
-do_configure_prepend_class-native() {
- echo "py_platform = linux" > sip.cfg
- echo "py_inc_dir = ${includedir}/python%(py_major).%(py_minor)" >> 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 --sysroot ${STAGING_DIR_NATIVE}
-}
-do_install() {
- oe_runmake install
-}
-
-FILES_python-sip = "${libdir}/${PYTHON_DIR}/site-packages/"
-FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
diff --git a/meta-oe/recipes-devtools/sip/sip_6.7.9.bb b/meta-oe/recipes-devtools/sip/sip_6.7.9.bb
new file mode 100644
index 0000000000..f6c2457bc5
--- /dev/null
+++ b/meta-oe/recipes-devtools/sip/sip_6.7.9.bb
@@ -0,0 +1,16 @@
+# 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] = "35d51fc10f599d3696abb50f29d068ad04763df7b77808c76b74597660f99b17"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/smemstat/smemstat_0.02.12.bb b/meta-oe/recipes-devtools/smemstat/smemstat_0.02.12.bb
new file mode 100644
index 0000000000..46dc94154d
--- /dev/null
+++ b/meta-oe/recipes-devtools/smemstat/smemstat_0.02.12.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 = "72efeb08ccdb22f57054279d25e3c522e8e1d4c3"
+
+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/sqlite-orm/sqlite-orm_1.5.bb b/meta-oe/recipes-devtools/sqlite-orm/sqlite-orm_1.5.bb
new file mode 100644
index 0000000000..db90bc589e
--- /dev/null
+++ b/meta-oe/recipes-devtools/sqlite-orm/sqlite-orm_1.5.bb
@@ -0,0 +1,24 @@
+SUMMARY = "SQLite ORM light header only library for modern C++"
+HOMEPAGE = "https://github.com/fnc12/sqlite_orm"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b5bf5ee8bb16d8e19359efe11bdc3f2"
+
+inherit cmake
+
+DEPENDS += "sqlite3"
+
+SRCREV = "e8a9e9416f421303f4b8970caab26dadf8bae98b"
+SRC_URI = "git://github.com/fnc12/sqlite_orm;protocol=https;branch=master"
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += "-DSqliteOrm_BuildTests=OFF -DLIB_INSTALL_DIR=${libdir} \
+ -DCMAKE_INSTALL_DIR=${libdir}/cmake \
+ -DPKGCONFIG_INSTALL_DIR=${libdir}/pkgconfig"
+
+BBCLASSEXTEND = "native nativesdk"
+
+FILES:${PN}-dev += "${libdir}/cmake/${BPN}"
+
+# Header-only library
+RDEPENDS:${PN}-dev = ""
+RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
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
new file mode 100644
index 0000000000..c57324d89c
--- /dev/null
+++ b/meta-oe/recipes-devtools/squashfs-tools-ng/squashfs-tools-ng_1.1.4.bb
@@ -0,0 +1,33 @@
+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/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
new file mode 100644
index 0000000000..47865de858
--- /dev/null
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse/0001-Preserve-CXXFLAGS-from-environment-in-Mongoose.patch
@@ -0,0 +1,45 @@
+From 83628b471a1a79dae50bb158fca9448b668dd3a6 Mon Sep 17 00:00:00 2001
+From: Gregory Anders <greg@gpanders.com>
+Date: Wed, 21 Oct 2020 10:43:16 -0600
+Subject: [PATCH] Preserve CXXFLAGS from environment in Mongoose
+
+This allows CXXFLAGS set in the environment to also be used in the CMake
+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/Mongoose/CMakeLists.txt b/Mongoose/CMakeLists.txt
+index 7e134ab..91a7f70 100644
+--- a/Mongoose/CMakeLists.txt
++++ b/Mongoose/CMakeLists.txt
+@@ -321,14 +321,14 @@ add_test(Unit_Test_EdgeSep ./tests/mongoose_unit_test_edgesep)
+ message(STATUS "CMAKE_CXX_COMPILER: " ${BoldBlue} ${CMAKE_CXX_COMPILER_ID} ${ColourReset})
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
+ # using Clang
+- SET(CMAKE_CXX_FLAGS "-O3 -fwrapv")
++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fwrapv")
+ # Debug flags for Clang
+ SET(CMAKE_CXX_FLAGS_DEBUG "--coverage -g -fwrapv")
+ SET(CMAKE_C_FLAGS_DEBUG "--coverage -g")
+ SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "--coverage -g")
+ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ # using GCC
+- SET(CMAKE_CXX_FLAGS "-O3 -fwrapv")
++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -fwrapv")
+ # Debug flags for GCC
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.6")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+@@ -339,7 +339,7 @@ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+ SET(CMAKE_EXE_LINKER_FLAGS_DEBUG "-fprofile-arcs -ftest-coverage")
+ elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
+ # using Intel C++
+- SET(CMAKE_CXX_FLAGS "-O3 -no-prec-div -xHOST -ipo -fwrapv")
++ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -no-prec-div -xHOST -ipo -fwrapv")
+ # Debug flags for Intel
+ SET(CMAKE_CXX_FLAGS_DEBUG "-g -O0 -Wall -fwrapv")
+ SET(CMAKE_C_FLAGS_DEBUG "-g -O0 -Wall")
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
new file mode 100644
index 0000000000..d80c1a7362
--- /dev/null
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse/0002-Preserve-links-when-installing-libmetis.patch
@@ -0,0 +1,24 @@
+From 31175fb408a4f5e85e39a9aabd4a29f9d9c1fe25 Mon Sep 17 00:00:00 2001
+From: Gregory Anders <greg@gpanders.com>
+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/Makefile b/Makefile
+index 7631955..57fd022 100644
+--- a/Makefile
++++ b/Makefile
+@@ -76,7 +76,7 @@ ifeq (,$(MY_METIS_LIB))
+ @mkdir -p $(INSTALL_LIB)
+ @mkdir -p $(INSTALL_INCLUDE)
+ @mkdir -p $(INSTALL_DOC)
+- - $(CP) lib/libmetis.* $(INSTALL_LIB)
++ - $(CP) -d lib/libmetis.* $(INSTALL_LIB)
+ - $(CP) metis-5.1.0/manual/manual.pdf $(INSTALL_DOC)/METIS_manual.pdf
+ - $(CP) metis-5.1.0/README.txt $(INSTALL_DOC)/METIS_README.txt
+ # the following is needed only on the Mac, so *.dylib is hardcoded:
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
new file mode 100644
index 0000000000..fc83897a05
--- /dev/null
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse/0003-Add-version-information-to-libmetis.patch
@@ -0,0 +1,51 @@
+From 11ab355fdda93b762fcc07ac3f7c6ab1be0a5f5a Mon Sep 17 00:00:00 2001
+From: Gregory Anders <greg@gpanders.com>
+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/metis-5.1.0/Makefile b/metis-5.1.0/Makefile
+index 9cc03b9..c445d85 100644
+--- a/metis-5.1.0/Makefile
++++ b/metis-5.1.0/Makefile
+@@ -18,8 +18,11 @@ systype = $(shell uname -s)
+
+ BUILDDIR = build/$(systype)-$(cputype)
+
++VERNUM=5.1.0
++PKGNAME=metis-$(VERNUM)
++
+ # Process configuration options.
+-CONFIG_FLAGS =
++CONFIG_FLAGS = -DMETIS_VERSION=$(VERNUM)
+ ifeq ($(gklib_path), not-set)
+ gklib_path = GKlib
+ endif
+@@ -52,9 +55,6 @@ ifneq ($(cc), not-set)
+ CONFIG_FLAGS += -DCMAKE_C_COMPILER=$(cc)
+ endif
+
+-VERNUM=5.1.0
+-PKGNAME=metis-$(VERNUM)
+-
+ JOBS ?= 1
+
+ define run-config
+diff --git a/metis-5.1.0/libmetis/CMakeLists.txt b/metis-5.1.0/libmetis/CMakeLists.txt
+index 120e94d..11bde87 100644
+--- a/metis-5.1.0/libmetis/CMakeLists.txt
++++ b/metis-5.1.0/libmetis/CMakeLists.txt
+@@ -4,6 +4,7 @@ include_directories(.)
+ file(GLOB metis_sources *.c)
+ # Build libmetis.
+ add_library(metis ${METIS_LIBRARY_TYPE} ${GKlib_sources} ${metis_sources})
++set_target_properties(metis PROPERTIES VERSION ${METIS_VERSION})
+ if(UNIX)
+ target_link_libraries(metis m)
+ endif()
diff --git a/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb b/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
new file mode 100644
index 0000000000..13e6fd066c
--- /dev/null
+++ b/meta-oe/recipes-devtools/suitesparse/suitesparse_5.10.1.bb
@@ -0,0 +1,75 @@
+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=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 \
+ "
+SRCREV = "538273cfd53720a10e34a3d80d3779b607e1ac26"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "cmake-native lapack gmp mpfr chrpath-native"
+
+PROVIDES = "mongoose graphblas"
+RPROVIDES:${PN} = "mongoose graphblas"
+
+# The values of $CC, $CXX, and $LD that Bitbake uses have spaces in them which
+# causes problems when the SuiteSparse Makefiles try to pass these values on
+# 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').split()[1:])} "
+export CC := "${@d.getVar('CC').split()[0]}"
+
+CXXFLAGS:prepend := "${@" ".join(d.getVar('CXX').split()[1:])} "
+export CXX := "${@d.getVar('CXX').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} \
+ -DCMAKE_INSTALL_LIBDIR=${baselib} \
+"
+
+do_compile () {
+ oe_runmake library
+}
+
+do_install () {
+ oe_runmake prefix=${D}${prefix} INSTALL=${D}${prefix} install
+
+ # Remove runtime paths from shared libraries
+ for file in ${D}${libdir}/*.so.*; do
+ if [ ! -L "$file" ]; then
+ chrpath -d "$file"
+ fi
+ done
+}
+
+FILES:${PN} += " \
+ ${libdir}/libmongoose.so.* \
+ ${libdir}/libgraphblas.so.* \
+ ${libdir}/libmetis.so.* \
+ ${libdir}/libsuitesparseconfig.so.* \
+ ${libdir}/libamd.so.* \
+ ${libdir}/libbtf.so.* \
+ ${libdir}/libcamd.so.* \
+ ${libdir}/libccolamd.so.* \
+ ${libdir}/libcolamd.so.* \
+ ${libdir}/libcholmod.so.* \
+ ${libdir}/libcxsparse.so.* \
+ ${libdir}/libldl.so.* \
+ ${libdir}/libklu.so.* \
+ ${libdir}/libumfpack.so.* \
+ ${libdir}/librbio.so.* \
+ ${libdir}/libspqr.so.* \
+ ${libdir}/libsliplu.so.* \
+ ${bindir}/mongoose \
+"
+
+FILES:${PN}-staticdev += "${libdir}/libmongoose.a"
+FILES:${PN}-dev += "${includedir} ${libdir}/*.so"
+
+EXCLUDE_FROM_WORLD = "1"
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/tclap/files/0001-tclap-add-pkg-config-file.patch b/meta-oe/recipes-devtools/tclap/files/0001-tclap-add-pkg-config-file.patch
new file mode 100644
index 0000000000..58c9aec088
--- /dev/null
+++ b/meta-oe/recipes-devtools/tclap/files/0001-tclap-add-pkg-config-file.patch
@@ -0,0 +1,50 @@
+From 9d47d2fd45c455339759dbfe9a0d6fd24b0a0fa1 Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 24 Mar 2021 15:39:36 +0800
+Subject: [PATCH] tclap: add pkg-config file
+
+The tclap switched from autotools to CMake in 1.4.0 and drop the
+pkg-config file tclap.pc. Some projects (e.g. ima-inspect) still require
+it. So add it back.
+
+Upstream-Status: Pending
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ CMakeLists.txt | 5 +++++
+ tclap.pc.in | 7 +++++++
+ 2 files changed, 12 insertions(+)
+ create mode 100644 tclap.pc.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c2c9a26..b56eac7 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -25,6 +25,11 @@ install(FILES "${PROJECT_BINARY_DIR}/tclap/TCLAPConfig.h"
+ DESTINATION include/tclap
+ )
+
++configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tclap.pc.in
++ ${CMAKE_CURRENT_BINARY_DIR}/tclap.pc @ONLY)
++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tclap.pc
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
++
+ add_subdirectory(docs)
+ add_subdirectory(examples)
+ add_subdirectory(tests)
+diff --git a/tclap.pc.in b/tclap.pc.in
+new file mode 100644
+index 0000000..ef51c94
+--- /dev/null
++++ b/tclap.pc.in
+@@ -0,0 +1,7 @@
++prefix=@CMAKE_INSTALL_PREFIX@
++includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@
++
++Name: tclap
++Description: Templatized C++ Command Line Parser
++Version: @PROJECT_VERSION@
++Cflags: -I${includedir}
+--
+2.17.1
+
diff --git a/meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch b/meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch
deleted file mode 100644
index 358cbefdde..0000000000
--- a/meta-oe/recipes-devtools/tclap/tclap/Makefile.am-disable-docs.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From c209ed0e7ffca32fe3714bad9cc54bdb00c286bb Mon Sep 17 00:00:00 2001
-From: Ting Liu <b28495@freescale.com>
-Date: Mon, 15 Apr 2013 16:28:37 +0800
-Subject: [PATCH] Makefile.am: disable docs
-
-Upstream-Status: Inappropriate [OE specific]
-
-docs need some generating tool (for example, doxygen) from host which may
-be not available. Disable it to avoid build issue.
-
-Signed-off-by: Ting Liu <b28495@freescale.com>
----
- Makefile.am | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 0a6ebc9..6b42f41 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,7 +1,7 @@
-
- ACLOCAL_AMFLAGS = -I config
-
--SUBDIRS = include examples docs tests msc config
-+SUBDIRS = include examples tests msc config
-
- pkgconfigdir = $(libdir)/pkgconfig
- pkgconfig_DATA = $(PACKAGE).pc
---
-1.7.5
-
diff --git a/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb b/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb
deleted file mode 100644
index 3eadbe45f0..0000000000
--- a/meta-oe/recipes-devtools/tclap/tclap_1.2.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Templatized C++ Command Line Parser"
-HOMEPAGE = "http://tclap.sourceforge.net/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c8ab0ff134bcc584d0e6b5b9f8732453"
-
-SRCREV = "3627d9402e529770df9b0edf2aa8c0e0d6c6bb41"
-SRC_URI = "git://git.code.sf.net/p/tclap/code \
- file://Makefile.am-disable-docs.patch \
-"
-
-S = "${WORKDIR}/git"
-inherit autotools
-
-ALLOW_EMPTY_${PN} = "1"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/tclap/tclap_1.4.0.bb b/meta-oe/recipes-devtools/tclap/tclap_1.4.0.bb
new file mode 100644
index 0000000000..6d55c58526
--- /dev/null
+++ b/meta-oe/recipes-devtools/tclap/tclap_1.4.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Templatized C++ Command Line Parser"
+HOMEPAGE = "http://tclap.sourceforge.net/"
+DESCRIPTION = "TCLAP is a small, flexible library that provides a simple interface \
+for defining and accessing command line arguments. It was intially inspired by the \
+user friendly CLAP libary. The difference is that this library is templatized, so \
+the argument class is type independent. Type independence avoids identical-except-for-type \
+objects, such as IntArg, FloatArg, and StringArg. While the library is not strictly \
+compliant with the GNU or POSIX standards, it is close. \
+"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5c64b2e8cc50917b2744a90950faa7cd"
+
+SRCREV = "799a8b1f99818e39fee19d0601030770af1221e1"
+SRC_URI = "git://git.code.sf.net/p/tclap/code;branch=1.4 \
+ file://0001-tclap-add-pkg-config-file.patch \
+"
+
+S = "${WORKDIR}/git"
+inherit cmake
+
+ALLOW_EMPTY:${PN} = "1"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch b/meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch
deleted file mode 100644
index a0c157f5ad..0000000000
--- a/meta-oe/recipes-devtools/tcltk/tk/configure.use.fontconfig.with.xft.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/configure.in.orig 2014-05-10 14:35:39.859147385 +0000
-+++ b/configure.in 2014-05-10 14:36:20.282925184 +0000
-@@ -554,8 +554,8 @@
- dnl make sure package configurator (xft-config or pkg-config
- dnl says that xft is present.
- found_xft=yes
-- XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
-- XFT_LIBS=`pkg-config --libs xft 2>/dev/null` || found_xft="no"
-+ XFT_CFLAGS=`pkg-config --cflags xft fontconfig 2>/dev/null` || found_xft="no"
-+ XFT_LIBS=`pkg-config --libs xft fontconfig 2>/dev/null` || found_xft="no"
- AC_MSG_RESULT([$found_xft])
- dnl make sure that compiling against Xft header file doesn't bomb
- if test "$found_xft" = "yes" ; then
diff --git a/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff b/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
index 4dbd9a4f16..e13bf69b23 100644
--- a/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
+++ b/meta-oe/recipes-devtools/tcltk/tk/confsearch.diff
@@ -1,35 +1,48 @@
+From 5539442e5f5442606071afc5cf02642314ad13bb Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Wed, 17 Aug 2011 22:52:35 +0200
+Subject: [PATCH] tk 8.5.8: import from OE rev
+
Patch by Sergei Golovan allows to find tclConfig.sh in /usr/share/tcltk/tcl8.5
and tkConfig.sh in /usr/share/tcltk/tk8.5 where they are located in Debian
installation.
---- tk8.5-8.5.8.orig/unix/configure
-+++ tk8.5-8.5.8/unix/configure
-@@ -1431,7 +1431,8 @@
- `ls -d /usr/contrib/lib 2>/dev/null` \
+---
+Upstream-Status: Pending
+
+ unix/configure | 1 +
+ unix/tcl.m4 | 2 ++
+ 2 files changed, 3 insertions(+)
+
+Index: a/unix/configure
+===================================================================
+--- a/unix/configure.orig
++++ b/unix/configure
+@@ -1431,6 +1431,7 @@ echo "$as_me: error: ${with_tclconfig} d
`ls -d /usr/local/lib 2>/dev/null` \
+ `ls -d /usr/contrib/lib 2>/dev/null` \
`ls -d /usr/pkg/lib 2>/dev/null` \
-+ `ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
++ `ls -d /usr/share/tcltk/tcl8.6 2>/dev/null` \
+ `ls -d /usr/lib/tcl8.6 2>/dev/null` \
`ls -d /usr/lib 2>/dev/null` \
`ls -d /usr/lib64 2>/dev/null` \
- ; do
- if test -f "$i/tclConfig.sh" ; then
---- tk8.5-8.5.8.orig/unix/tcl.m4
-+++ tk8.5-8.5.8/unix/tcl.m4
-@@ -93,7 +93,8 @@
- `ls -d /usr/contrib/lib 2>/dev/null` \
+Index: a/unix/tcl.m4
+===================================================================
+--- a/unix/tcl.m4.orig
++++ b/unix/tcl.m4
+@@ -93,6 +93,7 @@ AC_DEFUN([SC_PATH_TCLCONFIG], [
`ls -d /usr/local/lib 2>/dev/null` \
+ `ls -d /usr/contrib/lib 2>/dev/null` \
`ls -d /usr/pkg/lib 2>/dev/null` \
-+ `ls -d /usr/share/tcltk/tcl8.5 2>/dev/null` \
++ `ls -d /usr/share/tcltk/tcl8.6 2>/dev/null` \
+ `ls -d /usr/lib/tcl8.6 2>/dev/null` \
`ls -d /usr/lib 2>/dev/null` \
`ls -d /usr/lib64 2>/dev/null` \
- ; do
- if test -f "$i/tclConfig.sh" ; then
-@@ -223,7 +224,8 @@
- `ls -d ${prefix}/lib 2>/dev/null` \
+@@ -226,6 +227,7 @@ AC_DEFUN([SC_PATH_TKCONFIG], [
`ls -d /usr/local/lib 2>/dev/null` \
`ls -d /usr/contrib/lib 2>/dev/null` \
-+ `ls -d /usr/share/tcltk/tk8.5 2>/dev/null` \
+ `ls -d /usr/pkg/lib 2>/dev/null` \
++ `ls -d /usr/share/tcltk/tcl8.6 2>/dev/null` \
+ `ls -d /usr/lib/tk8.6 2>/dev/null` \
`ls -d /usr/lib 2>/dev/null` \
`ls -d /usr/lib64 2>/dev/null` \
- ; do
- if test -f "$i/tkConfig.sh" ; then
diff --git a/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff b/meta-oe/recipes-devtools/tcltk/tk/fix-xft.diff
index d1bb7105c6..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 @@
@@ -8,8 +10,8 @@
- XFT_LIBS=`xft-config --libs 2>/dev/null` || found_xft="no"
- if test "$found_xft" = "no" ; then
found_xft=yes
- XFT_CFLAGS=`pkg-config --cflags xft 2>/dev/null` || found_xft="no"
- XFT_LIBS=`pkg-config --libs xft 2>/dev/null` || found_xft="no"
+ XFT_CFLAGS=`pkg-config --cflags xft fontconfig 2>/dev/null` || found_xft="no"
+ XFT_LIBS=`pkg-config --libs xft fontconfig 2>/dev/null` || found_xft="no"
- fi
AC_MSG_RESULT([$found_xft])
dnl make sure that compiling against Xft header file doesn't bomb
diff --git a/meta-oe/recipes-devtools/tcltk/tk/non-linux.diff b/meta-oe/recipes-devtools/tcltk/tk/non-linux.diff
deleted file mode 100644
index 7d31f9fdca..0000000000
--- a/meta-oe/recipes-devtools/tcltk/tk/non-linux.diff
+++ /dev/null
@@ -1,27 +0,0 @@
-Patch by Sergei Golovan (originally by Mike Markley and Chris Waters) fixes
-building on non-linux Debian architectures.
-
---- tk8.5-8.5.8.orig/unix/configure
-+++ tk8.5-8.5.8/unix/configure
-@@ -4447,6 +4447,9 @@
- if test "`uname -s`" = "AIX" ; then
- tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
- fi
-+ if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then
-+ tcl_cv_sys_version=NetBSD-Debian
-+ fi
- fi
- fi
-
---- tk8.5-8.5.8.orig/unix/tcl.m4
-+++ tk8.5-8.5.8/unix/tcl.m4
-@@ -962,6 +962,9 @@
- if test "`uname -s`" = "AIX" ; then
- tcl_cv_sys_version=AIX-`uname -v`.`uname -r`
- fi
-+ if test "`uname -s`" = "NetBSD" -a -f /etc/debian_version ; then
-+ tcl_cv_sys_version=NetBSD-Debian
-+ fi
- fi
- fi
- ])
diff --git a/meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff b/meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff
deleted file mode 100644
index ee38c2a1a5..0000000000
--- a/meta-oe/recipes-devtools/tcltk/tk/tklibrary.diff
+++ /dev/null
@@ -1,22 +0,0 @@
---- tk8.5-8.5.8.orig/unix/configure
-+++ tk8.5-8.5.8/unix/configure
-@@ -11070,7 +11070,7 @@
- TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
- fi
-
--TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
-+test -z "$TK_LIBRARY" && TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
- PRIVATE_INCLUDE_DIR='$(includedir)'
- HTML_DIR='$(DISTDIR)/html'
- TK_PKG_DIR='tk$(VERSION)'
---- tk8.5-8.5.8.orig/unix/configure.in
-+++ tk8.5-8.5.8/unix/configure.in
-@@ -607,7 +607,7 @@
- TCL_STUB_FLAGS="-DUSE_TCL_STUBS"
- fi
-
--TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
-+test -z "$TK_LIBRARY" && TK_LIBRARY='$(prefix)/lib/tk$(VERSION)'
- PRIVATE_INCLUDE_DIR='$(includedir)'
- HTML_DIR='$(DISTDIR)/html'
- TK_PKG_DIR='tk$(VERSION)'
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
new file mode 100644
index 0000000000..f3cab4e610
--- /dev/null
+++ b/meta-oe/recipes-devtools/tcltk/tk_8.6.10.bb
@@ -0,0 +1,95 @@
+SUMMARY = "Tool Command Language ToolKit Extension"
+HOMEPAGE = "http://tcl.sourceforge.net"
+SECTION = "devel/tcltk"
+
+# http://www.tcl.tk/software/tcltk/license.html
+LICENSE = "TCL"
+LIC_FILES_CHKSUM = "file://${S}/../license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../compat/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../doc/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../library/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../macosx/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../tests/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../unix/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../win/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+ file://${S}/../xlib/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
+"
+
+DEPENDS = "tcl virtual/libx11 libxt"
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \
+ file://confsearch.diff;striplevel=2 \
+ file://tkprivate.diff;striplevel=2 \
+ file://fix-xft.diff \
+"
+SRC_URI[md5sum] = "602a47ad9ecac7bf655ada729d140a94"
+SRC_URI[sha256sum] = "63df418a859d0a463347f95ded5cd88a3dd3aaa1ceecaeee362194bc30f3e386"
+
+S = "${WORKDIR}/${BPN}${PV}/unix"
+
+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 pkgconfig
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_OECONF = "\
+ --enable-threads \
+ --with-x \
+ --with-tcl=${STAGING_BINDIR}/crossscripts \
+ --libdir=${libdir} \
+"
+export TK_LIBRARY='${libdir}/tk${VER}'
+do_install:append() {
+ ln -sf libtk${VER}.so ${D}${libdir}/libtk${VER}.so.0
+ oe_libinstall -so libtk${VER} ${D}${libdir}
+ ln -sf wish${VER} ${D}${bindir}/wish
+
+ sed -i "s;-L${B};-L${STAGING_LIBDIR};g" tkConfig.sh
+ sed -i "s;'${WORKDIR};'${STAGING_INCDIR};g" tkConfig.sh
+ install -d ${D}${bindir_crossscripts}
+ install -m 0755 tkConfig.sh ${D}${bindir_crossscripts}
+}
+
+PACKAGECONFIG ??= "xft"
+PACKAGECONFIG[xft] = "--enable-xft,--disable-xft,xft"
+PACKAGECONFIG[xss] = "--enable-xss,--disable-xss,libxscrnsaver libxext"
+
+PACKAGES =+ "${PN}-lib"
+
+FILES:${PN}-lib = "${libdir}/libtk${VER}.so*"
+FILES:${PN} += "${libdir}/tk*"
+
+# isn't getting picked up by shlibs code
+RDEPENDS:${PN} += "tk-lib"
+RDEPENDS:${PN}:class-native = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+# Fix the path in sstate
+SSTATE_SCAN_FILES += "*Config.sh"
+
+inherit binconfig
+
+SYSROOT_DIRS += "${bindir_crossscripts}"
+
+# Fix some paths that might be used by Tcl extensions
+BINCONFIG_GLOB = "*Config.sh"
+
+# Cleanup host path from ${libdir}/tclConfig.sh and remove the
+# ${bindir_crossscripts}/tclConfig.sh from target
+PACKAGE_PREPROCESS_FUNCS += "tcl_package_preprocess"
+tcl_package_preprocess() {
+ sed -i -e "s;${DEBUG_PREFIX_MAP};;g" \
+ -e "s;-L${STAGING_LIBDIR};-L${libdir};g" \
+ -e "s;${STAGING_INCDIR};${includedir};g" \
+ -e "s;--sysroot=${RECIPE_SYSROOT};;g" \
+ ${PKGD}${libdir}/tkConfig.sh
+
+ rm -f ${PKGD}${bindir_crossscripts}/tkConfig.sh
+}
diff --git a/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb b/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
deleted file mode 100644
index 13dc4d7513..0000000000
--- a/meta-oe/recipes-devtools/tcltk/tk_8.6.8.bb
+++ /dev/null
@@ -1,79 +0,0 @@
-SUMMARY = "Tool Command Language ToolKit Extension"
-HOMEPAGE = "http://tcl.sourceforge.net"
-SECTION = "devel/tcltk"
-
-# http://www.tcl.tk/software/tcltk/license.html
-LICENSE = "tcl"
-LIC_FILES_CHKSUM = "file://../license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../compat/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../doc/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../library/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../macosx/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../tests/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../unix/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../win/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
- file://../xlib/license.terms;md5=c88f99decec11afa967ad33d314f87fe \
-"
-
-DEPENDS = "tcl virtual/libx11 libxt"
-
-SRC_URI = "\
- ${SOURCEFORGE_MIRROR}/tcl/${BPN}${PV}-src.tar.gz \
- file://confsearch.diff;striplevel=2 \
- file://non-linux.diff;striplevel=2 \
- file://tklibrary.diff;striplevel=2 \
- file://tkprivate.diff;striplevel=2 \
- file://fix-xft.diff \
- file://configure.use.fontconfig.with.xft.patch \
-"
-SRC_URI[md5sum] = "5e0faecba458ee1386078fb228d008ba"
-SRC_URI[sha256sum] = "49e7bca08dde95195a27f594f7c850b088be357a7c7096e44e1158c7a5fd7b33"
-
-S = "${WORKDIR}/${BPN}${PV}/unix"
-
-# Short version format: "8.6"
-VER = "${@os.path.splitext(d.getVar('PV'))[0]}"
-
-LDFLAGS += "-Wl,-rpath,${libdir}/tcltk/${PV}/lib"
-inherit autotools distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = "\
- --enable-threads \
- --with-x \
- --with-tcl=${STAGING_BINDIR_CROSS} \
- --libdir=${libdir} \
-"
-
-do_install_append() {
- ln -sf libtk${VER}.so ${D}${libdir}/libtk${VER}.so.0
- oe_libinstall -so libtk${VER} ${D}${libdir}
- ln -sf wish${VER} ${D}${bindir}/wish
-
- # Even after passing libdir=${libdir} at config, some incorrect dirs are still generated for the multilib build
- if [ "$libdir" != "/usr/lib" ]; then
- # Move files to correct library directory
- mv ${D}/usr/lib/tk${VER}/* ${D}/${libdir}/tk${VER}/
- # Remove unneeded/incorrect dir ('usr/lib/')
- rm -rf ${D}/usr/lib
- fi
-}
-
-PACKAGECONFIG ??= "xft"
-PACKAGECONFIG[xft] = "--enable-xft,--disable-xft,xft"
-PACKAGECONFIG[xss] = "--enable-xss,--disable-xss,libxscrnsaver libxext"
-
-PACKAGES =+ "${PN}-lib"
-
-FILES_${PN}-lib = "${libdir}/libtk${VER}.so*"
-FILES_${PN} += "${libdir}/tk*"
-
-# isn't getting picked up by shlibs code
-RDEPENDS_${PN} += "tk-lib"
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
-
-# Fix the path in sstate
-SSTATE_SCAN_FILES += "*Config.sh"
diff --git a/meta-oe/recipes-devtools/uftrace/uftrace_0.13.1.bb b/meta-oe/recipes-devtools/uftrace/uftrace_0.13.1.bb
new file mode 100644
index 0000000000..4e1edc6cef
--- /dev/null
+++ b/meta-oe/recipes-devtools/uftrace/uftrace_0.13.1.bb
@@ -0,0 +1,43 @@
+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 = "be3f46f7656bd9243b1835337b5350247b030b02"
+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.8.bb b/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
deleted file mode 100644
index 82b179521c..0000000000
--- a/meta-oe/recipes-devtools/uftrace/uftrace_0.8.bb
+++ /dev/null
@@ -1,31 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "elfutils"
-DEPENDS_append_libc-musl = " argp-standalone"
-
-inherit autotools
-
-SRCREV = "5af9ff9fa89c340617e52c8ed05798b352a7145c"
-SRC_URI = "git://github.com/namhyung/${BPN}"
-S = "${WORKDIR}/git"
-
-LDFLAGS_append_libc-musl = " -largp"
-EXTRA_OECONF = "ARCH=${TARGET_ARCH}"
-
-do_configure() {
- ${S}/configure ${EXTRA_OECONF}
-}
-
-FILES_SOLIBSDEV = ""
-FILES_${PN} += "${libdir}/*.so"
-
-COMPATIBLE_HOST = "(x86_64|aarch64|arm)"
-
-# uftrace supports armv6 and above
-COMPATIBLE_HOST_armv4 = 'null'
-COMPATIBLE_HOST_armv5 = 'null'
diff --git a/meta-oe/recipes-devtools/unattended-upgrades/files/0001-setup.py-Disable-autodection-of-modules.patch b/meta-oe/recipes-devtools/unattended-upgrades/files/0001-setup.py-Disable-autodection-of-modules.patch
new file mode 100644
index 0000000000..ec70dd6570
--- /dev/null
+++ b/meta-oe/recipes-devtools/unattended-upgrades/files/0001-setup.py-Disable-autodection-of-modules.patch
@@ -0,0 +1,28 @@
+From 8fd80ead718ffc53d7182b9df6f49974113ff8fc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 May 2022 11:23:58 -0700
+Subject: [PATCH] setup.py: Disable autodection of modules
+
+This helps to fix build with latest setuptools
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/setup.py b/setup.py
+index 932bf01..fd5a092 100755
+--- a/setup.py
++++ b/setup.py
+@@ -12,6 +12,7 @@ if __name__ == "__main__":
+ name='unattended-upgrades',
+ version='0.1',
+ scripts=['unattended-upgrade'],
++ py_modules=[],
+ data_files=[
+ ('../etc/logrotate.d/',
+ ["data/logrotate.d/unattended-upgrades"]),
+--
+2.36.1
+
diff --git a/meta-oe/recipes-devtools/unattended-upgrades/files/0001-unattended-upgrade-Remove-distro_info-usage-to-check.patch b/meta-oe/recipes-devtools/unattended-upgrades/files/0001-unattended-upgrade-Remove-distro_info-usage-to-check.patch
new file mode 100644
index 0000000000..d39427e9fd
--- /dev/null
+++ b/meta-oe/recipes-devtools/unattended-upgrades/files/0001-unattended-upgrade-Remove-distro_info-usage-to-check.patch
@@ -0,0 +1,78 @@
+From a52d763559d1017ca73d2a2933aba1c78ad354c6 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal@rzerosystems.com>
+Date: Thu, 27 Jan 2022 16:32:25 -0600
+Subject: [PATCH] unattended-upgrade: Remove distro_info usage to check devel
+ releases
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The distro-info python3 package is used to check if the release is a
+devel release and choice if continue with unattended-upgrade for now
+remove it because needs support into python3-distro-info [1].
+
+[1] https://salsa.debian.org/debian/distro-info
+
+Signed-off-by: Aníbal Limón <anibal@rzerosystems.com>
+
+Upstream-Status: Inappropriate
+---
+ unattended-upgrade | 38 --------------------------------------
+ 1 file changed, 38 deletions(-)
+
+diff --git a/unattended-upgrade b/unattended-upgrade
+index 802d4d5..3b4e83e 100755
+--- a/unattended-upgrade
++++ b/unattended-upgrade
+@@ -83,9 +83,6 @@ import apt
+ import apt_inst
+ import apt_pkg
+
+-import distro_info
+-
+-
+ # the reboot required flag file used by packages
+ REBOOT_REQUIRED_FILE = "/var/run/reboot-required"
+ KEPT_PACKAGES_FILE = "var/lib/unattended-upgrades/kept-back"
+@@ -2061,41 +2058,6 @@ def run(options, # type: Options
+ if should_stop():
+ return UnattendedUpgradesResult(False)
+
+- # check to see if want to auto-upgrade the devel release
+- if apt_pkg.config.find("Unattended-Upgrade::DevRelease") == "auto":
+- try:
+- if DISTRO_ID.lower() == 'ubuntu':
+- devel = (distro_info.UbuntuDistroInfo() .
+- devel(result="object"))
+- elif DISTRO_ID.lower() == 'debian':
+- devel = (distro_info.DebianDistroInfo() .
+- devel(result="object"))
+- else:
+- devel = (distro_info.DistroInfo(DISTRO_ID) .
+- devel(result="object"))
+- except Exception as e:
+- logging.warning("Could not figure out development release: %s" % e)
+- else:
+- if ((devel.series == DISTRO_CODENAME
+- and devel.release is not None
+- and devel.release - date.today() > DEVEL_UNTIL_RELEASE)):
+- syslog.syslog((_("Not running on this development "
+- "release before %s") %
+- (devel.release - DEVEL_UNTIL_RELEASE
+- - datetime.timedelta(days=1))))
+- logging.warning(_("Not running on this development "
+- "release before %s") %
+- (devel.release - DEVEL_UNTIL_RELEASE
+- - datetime.timedelta(days=1)))
+- return UnattendedUpgradesResult(True)
+-
+- logging.debug("Running on the development release")
+- elif "(development branch)" in DISTRO_DESC and not\
+- apt_pkg.config.find_b("Unattended-Upgrade::DevRelease", True):
+- syslog.syslog(_("Not running on the development release."))
+- logging.info(_("Not running on the development release."))
+- return UnattendedUpgradesResult(True)
+-
+ logging.info(_("Starting unattended upgrades script"))
+
+ # check and get lock
diff --git a/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.9.1.bb b/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.9.1.bb
new file mode 100644
index 0000000000..e37dbcd02f
--- /dev/null
+++ b/meta-oe/recipes-devtools/unattended-upgrades/unattended-upgrades_2.9.1.bb
@@ -0,0 +1,32 @@
+SUMMARY = "This script upgrades packages automatically and unattended."
+DESCRIPTION = "The purpose of unattended-upgrades is to keep the computer current with the latest security (and other) updates automatically."
+HOMEPAGE = "https://wiki.debian.org/UnattendedUpgrades"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe \
+ file://debian/copyright;md5=62b5f2ac0ede901fb245eefbe54c181f"
+
+SRC_URI = "git://github.com/mvo5/unattended-upgrades.git;protocol=https;branch=master \
+ file://0001-unattended-upgrade-Remove-distro_info-usage-to-check.patch \
+ file://0001-setup.py-Disable-autodection-of-modules.patch \
+ "
+
+SRCREV = "5aff8fa2b5b60b7c11bbfb39c884477e72d11d02"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3_legacy
+
+DEPENDS += "apt intltool-native python3-distutils-extra-native"
+RDEPENDS:${PN} += "apt lsb-release python3-apt python3-core python3-datetime python3-email python3-fcntl python3-io python3-logging python3-stringold python3-syslog"
+
+do_configure:prepend () {
+ install -Dm 0644 ${S}/data/50unattended-upgrades.Debian ${S}/data/50unattended-upgrades
+}
+
+do_install:append () {
+ # fix bad installation path's
+ mv -v ${D}/usr/usr/share/* ${D}/usr/share/
+ rm -r ${D}/usr/usr
+}
+
+FILES:${PN} = "${bindir} ${exec_prefix}/etc ${libdir} ${datadir} ${nonarch_libdir}"
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Define-prototype-for-safe_flock.patch b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Define-prototype-for-safe_flock.patch
new file mode 100644
index 0000000000..11f1c18d4d
--- /dev/null
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Define-prototype-for-safe_flock.patch
@@ -0,0 +1,105 @@
+From c512c877a7ca933bee980dcc1268a7319f233d59 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 00:07:47 -0700
+Subject: [PATCH] Define prototype for safe_flock
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/osdep/unix/env_unix.c | 3 +++
+ src/osdep/unix/mbx.c | 2 ++
+ src/osdep/unix/os_lnx.h | 2 ++
+ src/osdep/unix/os_slx.h | 3 +++
+ src/osdep/unix/unix.c | 4 ++++
+ 5 files changed, 14 insertions(+)
+
+diff --git a/src/osdep/unix/env_unix.c b/src/osdep/unix/env_unix.c
+index 6b2c447..cefefca 100644
+--- a/src/osdep/unix/env_unix.c
++++ b/src/osdep/unix/env_unix.c
+@@ -59,6 +59,9 @@
+ #define S_IXOTH (S_IEXEC >> 6)
+ #endif
+
++
++extern int safe_flock (int fd,int op);
++
+ /* c-client environment parameters */
+
+ static char *myUserName = NIL; /* user name */
+diff --git a/src/osdep/unix/mbx.c b/src/osdep/unix/mbx.c
+index 1ece5d8..c8a45a5 100644
+--- a/src/osdep/unix/mbx.c
++++ b/src/osdep/unix/mbx.c
+@@ -41,12 +41,14 @@ extern int errno; /* just in case */
+ #include "mail.h"
+ #include "osdep.h"
+ #include <pwd.h>
++#include <utime.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+ #include "misc.h"
+ #include "dummy.h"
+ #include "fdstring.h"
+
++extern int safe_flock (int fd,int op);
+
+ /* Build parameters */
+
+diff --git a/src/osdep/unix/os_lnx.h b/src/osdep/unix/os_lnx.h
+index b5f39ff..22c216b 100644
+--- a/src/osdep/unix/os_lnx.h
++++ b/src/osdep/unix/os_lnx.h
+@@ -57,6 +57,8 @@
+
+ #define direct dirent
+
++extern int safe_flock (int fd,int op);
++
+ #define flock safe_flock
+
+
+diff --git a/src/osdep/unix/os_slx.h b/src/osdep/unix/os_slx.h
+index b5f39ff..c9adbcd 100644
+--- a/src/osdep/unix/os_slx.h
++++ b/src/osdep/unix/os_slx.h
+@@ -46,11 +46,14 @@
+ #include <sys/types.h>
+ #include <dirent.h>
+ #include <time.h> /* for struct tm */
++#include <utime.h> /* for struct tm */
+ #include <fcntl.h>
+ #include <syslog.h>
+ #include <sys/file.h>
+
+
++extern int safe_flock (int fd,int op);
++
+ /* Linux gets this wrong */
+
+ #define setpgrp setpgid
+diff --git a/src/osdep/unix/unix.c b/src/osdep/unix/unix.c
+index be3c437..86be3f9 100644
+--- a/src/osdep/unix/unix.c
++++ b/src/osdep/unix/unix.c
+@@ -45,6 +45,7 @@ extern int errno; /* just in case */
+ #include "mail.h"
+ #include "osdep.h"
+ #include <time.h>
++#include <utime.h>
+ #include <sys/stat.h>
+ #include "unix.h"
+ #include "pseudo.h"
+@@ -52,6 +53,9 @@ extern int errno; /* just in case */
+ #include "misc.h"
+ #include "dummy.h"
+
++
++extern int safe_flock (int fd,int op);
++
+ /* UNIX I/O stream local data */
+
+ typedef struct unix_local {
+--
+2.37.3
+
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Do-not-build-mtest.patch b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Do-not-build-mtest.patch
new file mode 100644
index 0000000000..fd2f30cd14
--- /dev/null
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Do-not-build-mtest.patch
@@ -0,0 +1,38 @@
+From f92becaf97be16a28013693cd99bac92c54074f2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Sep 2022 13:54:58 -0700
+Subject: [PATCH 1/2] Do not build mtest
+
+its a test utility which is not generally used. We need to disable it
+because it uses gets() function which is not available in glibc, if we
+want to use it then port it to use something like fgets
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index cf6d405..1e2d0fb 100644
+--- a/Makefile
++++ b/Makefile
+@@ -669,7 +669,6 @@ an ua:
+ $(TOOLS)/$@ "$(LN)" src/ansilib c-client
+ $(TOOLS)/$@ "$(LN)" src/charset c-client
+ $(TOOLS)/$@ "$(LN)" src/osdep/$(SYSTEM) c-client
+- $(TOOLS)/$@ "$(LN)" src/mtest mtest
+ $(TOOLS)/$@ "$(LN)" src/ipopd ipopd
+ $(TOOLS)/$@ "$(LN)" src/imapd imapd
+ $(TOOLS)/$@ "$(LN)" src/mailutil mailutil
+@@ -706,7 +705,6 @@ rebuildclean:
+
+ bundled:
+ @echo Building bundled tools...
+- $(CD) mtest;$(MAKE)
+ $(CD) ipopd;$(MAKE)
+ $(CD) imapd;$(MAKE)
+ $(CD) mailutil;$(MAKE)
+--
+2.37.3
+
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
new file mode 100644
index 0000000000..e9c80fa3af
--- /dev/null
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap/0001-Support-OpenSSL-1.1.patch
@@ -0,0 +1,71 @@
+From 4c684542816a08b95444b8e2515f24d084e6e3c3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 4 Sep 2018 22:05:17 -0700
+Subject: [PATCH] Support OpenSSL 1.1
+
+When building with OpenSSL 1.1 and newer, use the new built-in
+ hostname verification instead of code that doesn't compile due to
+ structs having been made opaque.
+Bug-Debian: https://bugs.debian.org/828589
+
+Upstream-Status: Pending [Unknown]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/osdep/unix/ssl_unix.c | 14 +++++++++++++-
+ 1 file changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/src/osdep/unix/ssl_unix.c b/src/osdep/unix/ssl_unix.c
+index 3bfdff3..dec9467 100644
+--- a/src/osdep/unix/ssl_unix.c
++++ b/src/osdep/unix/ssl_unix.c
+@@ -227,8 +227,16 @@ static char *ssl_start_work (SSLSTREAM *stream,char *host,unsigned long flags)
+ /* disable certificate validation? */
+ if (flags & NET_NOVALIDATECERT)
+ SSL_CTX_set_verify (stream->context,SSL_VERIFY_NONE,NIL);
+- else SSL_CTX_set_verify (stream->context,SSL_VERIFY_PEER,ssl_open_verify);
++ else {
++#if OPENSSL_VERSION_NUMBER >= 0x10100000
++ X509_VERIFY_PARAM *param = SSL_CTX_get0_param(stream->context);
++ X509_VERIFY_PARAM_set_hostflags(param, X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS);
++ X509_VERIFY_PARAM_set1_host(param, host, 0);
++#endif
++
++ SSL_CTX_set_verify (stream->context,SSL_VERIFY_PEER,ssl_open_verify);
+ /* set default paths to CAs... */
++ }
+ SSL_CTX_set_default_verify_paths (stream->context);
+ /* ...unless a non-standard path desired */
+ if (s = (char *) mail_parameters (NIL,GET_SSLCAPATH,NIL))
+@@ -266,6 +274,7 @@ static char *ssl_start_work (SSLSTREAM *stream,char *host,unsigned long flags)
+ if (SSL_write (stream->con,"",0) < 0)
+ return ssl_last_error ? ssl_last_error : "SSL negotiation failed";
+ /* need to validate host names? */
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ if (!(flags & NET_NOVALIDATECERT) &&
+ (err = ssl_validate_cert (cert = SSL_get_peer_certificate (stream->con),
+ host))) {
+@@ -275,6 +284,7 @@ static char *ssl_start_work (SSLSTREAM *stream,char *host,unsigned long flags)
+ sprintf (tmp,"*%.128s: %.255s",err,cert ? cert->name : "???");
+ return ssl_last_error = cpystr (tmp);
+ }
++#endif
+ return NIL;
+ }
+
+@@ -313,6 +323,7 @@ static int ssl_open_verify (int ok,X509_STORE_CTX *ctx)
+ * Returns: NIL if validated, else string of error message
+ */
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000
+ static char *ssl_validate_cert (X509 *cert,char *host)
+ {
+ int i,n;
+@@ -342,6 +353,7 @@ static char *ssl_validate_cert (X509 *cert,char *host)
+ else ret = "Unable to locate common name in certificate";
+ return ret;
+ }
++#endif
+
+ /* Case-independent wildcard pattern match
+ * Accepts: base string
diff --git a/meta-oe/recipes-devtools/uw-imap/uw-imap/0002-tmail-Include-ctype.h-for-isdigit.patch b/meta-oe/recipes-devtools/uw-imap/uw-imap/0002-tmail-Include-ctype.h-for-isdigit.patch
new file mode 100644
index 0000000000..5778a00346
--- /dev/null
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap/0002-tmail-Include-ctype.h-for-isdigit.patch
@@ -0,0 +1,26 @@
+From fbd00d93cc07fa5da20414b355fffe628dcd37b3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Sep 2022 13:57:19 -0700
+Subject: [PATCH 2/2] tmail: Include ctype.h for isdigit
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tmail/tmail.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/tmail/tmail.c b/src/tmail/tmail.c
+index ed5fc58..a9e3645 100644
+--- a/src/tmail/tmail.c
++++ b/src/tmail/tmail.c
+@@ -26,6 +26,7 @@
+ * Last Edited: 30 October 2008
+ */
+
++#include <ctype.h> /* for isdigit */
+ #include <stdio.h>
+ #include <pwd.h>
+ #include <errno.h>
+--
+2.37.3
+
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 91003f6e93..dcb59f4ea0 100644
--- a/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
+++ b/meta-oe/recipes-devtools/uw-imap/uw-imap_2007f.bb
@@ -4,12 +4,17 @@ SECTION = "devel"
LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=a6a4ddbb7cd2999f6827ee143f6fcd97"
-DEPENDS = "openssl"
+DEPENDS = "openssl virtual/crypt"
SRC_URI = "https://fossies.org/linux/misc/old/imap-${PV}.tar.gz \
file://quote_cctype.patch \
file://imap-2007e-shared.patch \
file://imap-2007f-format-security.patch \
+ file://0001-Support-OpenSSL-1.1.patch \
+ 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"
@@ -17,10 +22,12 @@ SRC_URI[sha256sum] = "53e15a2b5c1bc80161d42e9f69792a3fa18332b7b771910131004eb520
S = "${WORKDIR}/imap-${PV}"
+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}' 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"
@@ -36,9 +43,11 @@ do_install() {
install c-client/c-client.a ${D}${libdir}/libc-client.a
}
-RPROVIDES_${PN} = "libc-client"
-RREPLACES_${PN} = "libc-client"
-RCONFLICTS_${PN} = "libc-client"
+RPROVIDES:${PN} = "libc-client"
+RREPLACES:${PN} = "libc-client"
+RCONFLICTS:${PN} = "libc-client"
+
+ALLOW_EMPTY:${PN} = "1"
-ALLOW_EMPTY_${PN} = "1"
+PARALLEL_MAKE = ""
diff --git a/meta-oe/recipes-devtools/valijson/valijson_1.0.1.bb b/meta-oe/recipes-devtools/valijson/valijson_1.0.1.bb
new file mode 100644
index 0000000000..b8e7f50b58
--- /dev/null
+++ b/meta-oe/recipes-devtools/valijson/valijson_1.0.1.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 = "f7399c1a244982632671906d17f3ea77f3ccfc67"
+
+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 64ac74723a..0000000000
--- a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.1.4.bb
+++ /dev/null
@@ -1,47 +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://apache.lauf-forum.at/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-dbg \
- libxerces-c-dev \
- xerces-c-samples \
- xerces-c-samples-dbg \
- libxerces-c-staticdev \
-"
-
-FILES_libxerces-c = "${libdir}/libxerces-c-3.1.so"
-FILES_libxerces-c-dbg = "${libdir}/.debug \
- ${prefix}/src/debug \
-"
-FILES_libxerces-c-dev = "${libdir}/lib*.la \
- ${libdir}/libxerces-c.so \
- ${libdir}/pkgconfig/xerces-c.pc \
- ${includedir}/xercesc \
-"
-FILES_xerces-c-samples = "${bindir}/*"
-FILES_xerces-c-samples-dbg = "${bindir}/.debug/"
-FILES_libxerces-c-staticdev = "${libdir}/lib*.a"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.4.bb b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.4.bb
new file mode 100644
index 0000000000..582c29379a
--- /dev/null
+++ b/meta-oe/recipes-devtools/xerces-c/xerces-c_3.2.4.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] = "74aa626fc71e729ee227602870dd29a5a01cd8c9c1c7330837a51da2eb5722cc"
+
+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/0001-fix-compile-failure-against-musl-C-library.patch b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch
deleted file mode 100644
index 234d696f19..0000000000
--- a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-fix-compile-failure-against-musl-C-library.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 950b27f8320b841490cafcb3e6e3b818c7174c0d Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 20 Jul 2017 22:32:50 -0400
-Subject: [PATCH] fix compile failure against musl C library
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- test/cpp/server_abyss.cpp | 2 +-
- tools/xmlrpc_pstream/xmlrpc_pstream.cpp | 10 +++++++---
- 2 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/test/cpp/server_abyss.cpp b/test/cpp/server_abyss.cpp
-index 2458a8f..82f91da 100644
---- a/test/cpp/server_abyss.cpp
-+++ b/test/cpp/server_abyss.cpp
-@@ -18,7 +18,7 @@
- #ifdef WIN32
- #include <winsock2.h>
- #else
-- #include <sys/unistd.h>
-+ #include <unistd.h>
- #include <sys/socket.h>
- #include <arpa/inet.h>
- #include <netinet/in.h>
-diff --git a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
-index d39e105..1fd8900 100644
---- a/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
-+++ b/tools/xmlrpc_pstream/xmlrpc_pstream.cpp
-@@ -15,11 +15,15 @@
- #include "xmlrpc-c/girerr.hpp"
- using girerr::throwf;
-
--#include <features.h> // for __BEGIN_DECLS
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-
--__BEGIN_DECLS
- #include "dumpvalue.h" /* An internal Xmlrpc-c header file ! */
--__END_DECLS
-+
-+#ifdef __cplusplus
-+}
-+#endif
-
-
- #include <xmlrpc-c/base.hpp>
---
-2.8.1
-
diff --git a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch
new file mode 100644
index 0000000000..be83b0166c
--- /dev/null
+++ b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c/0001-test-cpp-server_abyss-Fix-build-with-clang-libc.patch
@@ -0,0 +1,27 @@
+From dba3c5bf34ed530fd41ed50968825af2158f142e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 29 Jan 2019 13:31:39 -0800
+Subject: [PATCH] test/cpp/server_abyss: Fix build with clang/libc++
+
+/mnt/a/yoe/workspace/sources/xmlrpc-c/test/cpp/server_abyss.cpp:87:14: error: assigning to 'int' from incompatible type '__bind<int
+&, sockaddr *, unsigned int>'
+ rc = bind(this->fd, (struct sockaddr *)&sockAddr, sizeof(sockAddr));
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ test/cpp/server_abyss.cpp | 56 +++++++++++++++++++--------------------
+ 1 file changed, 28 insertions(+), 28 deletions(-)
+
+--- a/test/cpp/server_abyss.cpp
++++ b/test/cpp/server_abyss.cpp
+@@ -85,7 +85,7 @@ public:
+ sockAddr.sin_port = htons(portNumber);
+ sockAddr.sin_addr.s_addr = 0;
+
+- rc = bind(this->fd, (struct sockaddr *)&sockAddr, sizeof(sockAddr));
++ rc = ::bind(this->fd, (struct sockaddr *)&sockAddr, sizeof(sockAddr));
+
+ if (rc != 0) {
+ closesock(this->fd);
diff --git a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb b/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb
deleted file mode 100644
index efa58f1986..0000000000
--- a/meta-oe/recipes-devtools/xmlrpc-c/xmlrpc-c_1.31.0.bb
+++ /dev/null
@@ -1,24 +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 & MIT"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=aefbf81ba0750f02176b6f86752ea951"
-
-SRC_URI = "git://github.com/ensc/xmlrpc-c.git;branch=master \
- file://0001-fix-compile-failure-against-musl-C-library.patch \
- file://0002-fix-formatting-issues.patch \
-"
-SRCREV = "81443a9dc234cc275449dbc17867ad77ae189124"
-S = "${WORKDIR}/git"
-
-DEPENDS = "curl libxml2"
-RDEPENDS_${PN} = "curl perl"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-D_lib:STRING=${baselib}"
-
-BBCLASSEXTEND = "native"
-
-TARGET_CFLAGS += "-Wno-narrowing"
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..278db6dc84
--- /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},/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR},g' ${D}${bindir}/xmlrpc-c-config
+}
+
+BBCLASSEXTEND = "native"
+
+CLEANBROKEN = "1"
diff --git a/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb b/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb
index 8ced7b84f4..186f2c8ed0 100644
--- a/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb
+++ b/meta-oe/recipes-devtools/yajl/yajl_1.0.12.bb
@@ -10,10 +10,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=da2e9aa80962d54e7c726f232a2bd1e8"
# Use 1.0.12 tag
SRCREV = "17b1790fb9c8abbb3c0f7e083864a6a014191d56"
-SRC_URI = "git://github.com/lloyd/yajl;nobranch=1"
+SRC_URI = "git://github.com/lloyd/yajl;nobranch=1;protocol=https"
inherit cmake lib_package
S = "${WORKDIR}/git"
EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
+
+UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>1(\.\d+)+)"
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 d9a5821cbb..cf8dbb183e 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,7 @@ HOMEPAGE = "http://lloyd.github.com/yajl/"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://COPYING;md5=39af6eb42999852bdd3ea00ad120a36d"
-SRC_URI = "git://github.com/lloyd/yajl"
+SRC_URI = "git://github.com/lloyd/yajl;branch=master;protocol=https"
SRCREV = "a0ecdde0c042b9256170f2f8890dd9451a4240aa"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-devtools/yasm/yasm/0001-Do-not-use-AC_HEADER_STDC.patch b/meta-oe/recipes-devtools/yasm/yasm/0001-Do-not-use-AC_HEADER_STDC.patch
new file mode 100644
index 0000000000..bda90edb20
--- /dev/null
+++ b/meta-oe/recipes-devtools/yasm/yasm/0001-Do-not-use-AC_HEADER_STDC.patch
@@ -0,0 +1,39 @@
+From 6b1cbe8b4dcc45103d69bc7337e5eb33d1fd21f3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 3 Feb 2021 14:22:51 -0800
+Subject: [PATCH] Do not use AC_HEADER_STDC
+
+This macro is removed in autotools 2.70+ and it can be expected that C90
+headers are always available [1]
+
+Upstream-Status: Pending
+
+[1] https://www.gnu.org/software/autoconf/manual/autoconf-2.70/autoconf.html#index-AC_005fHEADER_005fSTDC
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 01b61097..2823ecd7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -101,14 +101,8 @@ AM_WITH_DMALLOC
+ #
+ # Checks for header files.
+ #
+-AC_HEADER_STDC
+ AC_CHECK_HEADERS([strings.h libgen.h unistd.h direct.h sys/stat.h])
+
+-# REQUIRE standard C headers
+-if test "$ac_cv_header_stdc" != yes; then
+- AC_MSG_ERROR([Standard (ANSI/ISO C89) header files are required.])
+-fi
+-
+ #
+ # Checks for typedefs, structures, and compiler characteristics.
+ #
+--
+2.30.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_git.bb b/meta-oe/recipes-devtools/yasm/yasm_git.bb
new file mode 100644
index 0000000000..19686ff275
--- /dev/null
+++ b/meta-oe/recipes-devtools/yasm/yasm_git.bb
@@ -0,0 +1,31 @@
+SUMMARY = "x86 (SSE) assembler supporting NASM and GAS-syntaxes"
+LICENSE = "MIT"
+HOMEPAGE = "http://www.tortall.net/projects/yasm/"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=a12d8903508fb6bfd49d8d82c6170dd9"
+
+DEPENDS += "flex-native bison-native"
+PACKAGECONFIG[docs] = ",,xmlto-native,"
+
+PV = "1.3.0+git${SRCPV}"
+# 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 \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext python3native
+
+CACHED_CONFIGUREVARS = "CCLD_FOR_BUILD='${CC_FOR_BUILD}'"
+
+BBCLASSEXTEND = "native"
+
+PARALLEL_MAKE = ""
+
+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.9.bb b/meta-oe/recipes-extended/beep/beep_1.4.9.bb
new file mode 100644
index 0000000000..ec62f31870
--- /dev/null
+++ b/meta-oe/recipes-extended/beep/beep_1.4.9.bb
@@ -0,0 +1,32 @@
+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
new file mode 100644
index 0000000000..ba7681b983
--- /dev/null
+++ b/meta-oe/recipes-extended/beep/files/0001-Do-not-use-Werror-as-it-fails-with-newer-clang-11.patch
@@ -0,0 +1,63 @@
+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/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
new file mode 100644
index 0000000000..76d12f9cd8
--- /dev/null
+++ b/meta-oe/recipes-extended/bitwise/files/0001-makefile.am-Fix-build-when-build-dir-is-not-same-as-.patch
@@ -0,0 +1,31 @@
+From 2089b514045d2de64a5d9c54e241731e85d77df2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 14 Dec 2020 22:11:59 -0800
+Subject: [PATCH] makefile.am: Fix build when build dir is not same as
+ sourcedir
+
+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/Makefile.am b/Makefile.am
+index eba85a1..da998ff 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -19,7 +19,7 @@ if COND_DEBUG
+ MAYBE_DEBUG=-g -O0
+ endif
+
+-AM_CFLAGS = $(MAYBE_COVERAGE) $(MAYBE_DEBUG) $(MAYBE_TRACE)
++AM_CFLAGS = $(MAYBE_COVERAGE) $(MAYBE_DEBUG) $(MAYBE_TRACE) -I$(srcdir)/inc
+
+ check_PROGRAMS = tests/test-shunting-yard
+ tests_test_shunting_yard_SOURCES = src/shunting-yard.c inc/shunting-yard.h \
+--
+2.29.2
+
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/0001-scripts-Do-not-check-for-files-on-build-host.patch b/meta-oe/recipes-extended/boinc/boinc-client/0001-scripts-Do-not-check-for-files-on-build-host.patch
new file mode 100644
index 0000000000..6d9e94cb8a
--- /dev/null
+++ b/meta-oe/recipes-extended/boinc/boinc-client/0001-scripts-Do-not-check-for-files-on-build-host.patch
@@ -0,0 +1,52 @@
+From 8a8305c78143438e2bd497d55188a0da3442db08 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 27 Apr 2022 09:11:38 -0700
+Subject: [PATCH] scripts: Do not check for files on build host
+
+This will result in varied behaviour depending upon what kind of host is
+used to build it. We dont want that. Instead check for these files and
+dirs in staging area and create these markers in recipe via a
+do_install_prepend to aide install piece a bit here ( systemd vs
+sysvinit ) etc.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ client/scripts/Makefile.am | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/client/scripts/Makefile.am b/client/scripts/Makefile.am
+index 2a53203d84..62a0defa93 100644
+--- a/client/scripts/Makefile.am
++++ b/client/scripts/Makefile.am
+@@ -2,21 +2,21 @@
+
+ install-exec-hook:
+ chmod +x boinc-client
+- if [ -d /etc/init.d ] ; then \
++ if [ -d $(DESTDIR)/etc/init.d ] ; then \
+ $(INSTALL) -d $(DESTDIR)$(sysconfdir)/init.d ; \
+ $(INSTALL) -b boinc-client $(DESTDIR)$(sysconfdir)/init.d/boinc-client ; \
+ fi
+- if [ -d /usr/lib/systemd/system ] ; then \
++ if [ -d $(DESTDIR)/usr/lib/systemd/system ] ; then \
+ $(INSTALL) -d $(DESTDIR)/usr/lib/systemd/system/ ; \
+ $(INSTALL_DATA) boinc-client.service $(DESTDIR)/usr/lib/systemd/system/boinc-client.service ; \
+- elif [ -d /lib/systemd/system ] ; then \
++ elif [ -d $(DESTDIR)/lib/systemd/system ] ; then \
+ $(INSTALL) -d $(DESTDIR)/lib/systemd/system/ ; \
+ $(INSTALL_DATA) boinc-client.service $(DESTDIR)/lib/systemd/system/boinc-client.service ; \
+ fi
+- if [ -d /etc/sysconfig ] ; then \
++ if [ -d $(DESTDIR)/etc/sysconfig ] ; then \
+ $(INSTALL) -d $(DESTDIR)$(sysconfdir)/sysconfig ; \
+ $(INSTALL_DATA) $(srcdir)/boinc-client.conf $(DESTDIR)$(sysconfdir)/sysconfig/boinc-client ; \
+- elif [ -d /etc/default ] ; then \
++ elif [ -d $(DESTDIR)/etc/default ] ; then \
+ $(INSTALL) -d $(DESTDIR)$(sysconfdir)/default ; \
+ $(INSTALL_DATA) $(srcdir)/boinc-client.conf $(DESTDIR)$(sysconfdir)/default/boinc-client ; \
+ else \
+--
+2.36.0
+
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch b/meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch
index ab8042f723..0431f523e5 100644
--- a/meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch
+++ b/meta-oe/recipes-extended/boinc/boinc-client/boinc-AM_CONDITIONAL.patch
@@ -1,26 +1,24 @@
-Add configure check for gtk2+ and objc++
+From 7957756a3dd16498cf7a75e1fb6675a33bc7f3dc 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] Add configure check for gtk2+ and objc++
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upstream-Status: Pending
-Index: boinc-client_release-7.6-7.6.33/configure.ac
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/configure.ac
-+++ boinc-client_release-7.6-7.6.33/configure.ac
-@@ -64,6 +64,7 @@ m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCX
+---
+ configure.ac | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index d81d795de4..7beeb34ae2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -59,6 +59,7 @@ m4_pattern_allow([AC_PROG_OBJCXX])
+ m4_ifdef([AC_PROG_OBJCXX],[AC_PROG_OBJCXX],)
dnl ------
- AC_PROG_F77
AC_PROG_CPP
+AC_PROG_OBJCXX
AC_PROG_MAKE_SET
SAH_LINKS
AC_LANG_PUSH(C)
-@@ -1081,6 +1082,8 @@ AM_CONDITIONAL(ENABLE_BOINCCRYPT, [test
- AM_CONDITIONAL(INSTALL_HEADERS, [test "${enable_install_headers}" = yes])
- AM_CONDITIONAL(HAVE_CUDA_LIB, [test "${enable_client}" = yes -a -f ./coprocs/CUDA/posix/${boinc_platform}/libcudart.so])
-
-+PKG_CHECK_MODULES([GTK2], [gtk+-2.0])
-+
- dnl ======================================================================
- dnl some more vodoo required for building portable client-binary (client, clientgui)
- dnl ======================================================================
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch b/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch
deleted file mode 100644
index 287391a522..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client/cross-compile.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-Remove rpath, its bad for cross compiling to encode
-build time rpaths
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: boinc-client_release-7.6-7.6.33/api/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/api/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/api/Makefile.am
-@@ -43,18 +43,18 @@ endif
-
- lib_LTLIBRARIES = libboinc_api.la
- libboinc_api_la_SOURCES = $(api_files)
--libboinc_api_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_api_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
-
- if BUILD_GRAPHICS_API
- lib_LTLIBRARIES += libboinc_graphics2.la
- libboinc_graphics2_la_SOURCES = $(graphics2_files)
- libboinc_graphics2_la_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/lib -I$(top_srcdir)/samples/image_libs
--libboinc_graphics2_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION) -ljpeg
-+libboinc_graphics2_la_LDFLAGS = -version-number $(LIBBOINC_VERSION) -ljpeg
- endif #BUILD_GRAPHICS_API
-
- lib_LTLIBRARIES += libboinc_opencl.la
- libboinc_opencl_la_SOURCES = $(opencl_files)
--libboinc_opencl_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_opencl_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
-
- if INSTALL_HEADERS
- ## install only headers that are meant for exporting the API !!
-Index: boinc-client_release-7.6-7.6.33/lib/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/lib/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/lib/Makefile.am
-@@ -173,7 +173,7 @@ lib_LTLIBRARIES = libboinc.la
- libboinc_la_SOURCES = $(generic_sources) $(mac_sources) $(win_sources)
- libboinc_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
- libboinc_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
--libboinc_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
-+libboinc_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
- libboinc_la_LIBADD =
-
- if ENABLE_BOINCCRYPT
-@@ -181,7 +181,7 @@ lib_LTLIBRARIES += libboinc_crypt.la
- libboinc_crypt_la_SOURCES = crypt.cpp
- libboinc_crypt_la_CFLAGS = $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CFLAGS)
- libboinc_crypt_la_CXXFLAGS = $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS) $(SSL_CXXFLAGS)
--libboinc_crypt_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -static -version-number $(LIBBOINC_VERSION)
-+libboinc_crypt_la_LDFLAGS = -static -version-number $(LIBBOINC_VERSION)
- libboinc_crypt_la_LIBADD =
- endif
-
-@@ -190,7 +190,7 @@ lib_LTLIBRARIES += libboinc_fcgi.la
- libboinc_fcgi_la_SOURCES = $(libfcgi_sources) $(mac_sources) $(win_sources)
- libboinc_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
- libboinc_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CXXFLAGS) $(PICFLAGS) $(PTHREAD_CFLAGS)
--libboinc_fcgi_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_fcgi_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
- libboinc_fcgi_la_LIBADD =
- endif
- # end of "if ENABLE_FCGI"
-Index: boinc-client_release-7.6-7.6.33/sched/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/sched/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/sched/Makefile.am
-@@ -26,7 +26,7 @@ lib_LTLIBRARIES = libsched.la
- libsched_la_SOURCES = $(libsched_sources)
- libsched_la_CFLAGS = $(AM_CPPFLAGS)
- libsched_la_CXXFLAGS = $(AM_CPPFLAGS)
--libsched_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libsched_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
- libsched_la_LIBADD= $(SSL_LIBS)
-
- ## install only headers that are meant for exporting the API !!
-@@ -48,7 +48,7 @@ lib_LTLIBRARIES += libsched_fcgi.la
- libsched_fcgi_la_SOURCES = $(libsched_sources)
- libsched_fcgi_la_CFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
- libsched_fcgi_la_CXXFLAGS = -D_USING_FCGI_ $(AM_CPPFLAGS)
--libsched_fcgi_la_LDFLAGS= -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libsched_fcgi_la_LDFLAGS= -version-number $(LIBBOINC_VERSION)
- libsched_fcgi_la_LIBADD=
-
- endif
-Index: boinc-client_release-7.6-7.6.33/zip/Makefile.am
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/zip/Makefile.am
-+++ boinc-client_release-7.6-7.6.33/zip/Makefile.am
-@@ -61,7 +61,7 @@ endif
-
- lib_LTLIBRARIES = libboinc_zip.la
- libboinc_zip_la_SOURCES = $(libboinc_zip_sources)
--libboinc_zip_la_LDFLAGS = -L$(libdir) -rpath $(libdir) -version-number $(LIBBOINC_VERSION)
-+libboinc_zip_la_LDFLAGS = -version-number $(LIBBOINC_VERSION)
- libboinc_zip_la_LIBADD =
-
- # Some OSs may not prefix libraries with lib.
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 4ae8d580d7..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client/gtk-configure.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-Check for gtk2+ only when manager is enabled
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: boinc-client_release-7.6-7.6.33/configure.ac
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/configure.ac
-+++ boinc-client_release-7.6-7.6.33/configure.ac
-@@ -1033,6 +1033,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])
-@@ -1082,7 +1087,6 @@ AM_CONDITIONAL(ENABLE_BOINCCRYPT, [test
- AM_CONDITIONAL(INSTALL_HEADERS, [test "${enable_install_headers}" = yes])
- AM_CONDITIONAL(HAVE_CUDA_LIB, [test "${enable_client}" = yes -a -f ./coprocs/CUDA/posix/${boinc_platform}/libcudart.so])
-
--PKG_CHECK_MODULES([GTK2], [gtk+-2.0])
-
- dnl ======================================================================
- dnl some more vodoo required for building portable client-binary (client, clientgui)
diff --git a/meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch b/meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch
deleted file mode 100644
index 0b057eabc8..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client/opengl_m4_check.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Do not add prefix/lib to library search path
-let sysroot take care of that
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Inappropriate[Cross-compile specific]
-
-Index: boinc-client_release-7.6-7.6.33/m4/ax_check_gl.m4
-===================================================================
---- boinc-client_release-7.6-7.6.33.orig/m4/ax_check_gl.m4
-+++ boinc-client_release-7.6-7.6.33/m4/ax_check_gl.m4
-@@ -58,7 +58,7 @@ else
- else
- ax_try_lib="${ax_lib}"
- fi
-- LIBS="-L${prefix}/lib ${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
-+ LIBS="${ax_try_lib} ${GL_LIBS} ${ax_save_LIBS}"
- AC_LINK_IFELSE(
- [AC_LANG_PROGRAM([[
- # if HAVE_WINDOWS_H && defined(_WIN32)
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/boinc/boinc-client_7.6.33.bb b/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
deleted file mode 100644
index 99b43fa3f8..0000000000
--- a/meta-oe/recipes-extended/boinc/boinc-client_7.6.33.bb
+++ /dev/null
@@ -1,79 +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 = "LGPLv2+ & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=6a6a8e020838b23406c81b19c1d46df6"
-SECTION = "applications"
-DEPENDS = "curl \
- jpeg \
- openssl \
- sqlite3 \
- virtual/libgl \
- ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'libnotify', '', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gtk+ libnotify xcb-util libxscrnsaver', '', d)} \
- nettle \
-"
-
-SRC_URI = "https://github.com/BOINC/boinc/archive/client_release/7.6/${PV}.tar.gz \
- file://boinc-AM_CONDITIONAL.patch \
- file://opengl_m4_check.patch \
- file://cross-compile.patch \
- file://gtk-configure.patch \
-"
-SRC_URI[md5sum] = "437b4b98e384b4bda4ef7056e68166ac"
-SRC_URI[sha256sum] = "c4b1c29b9655013e0ac61dddf47ad7f30f38c46159f02a9d9dc8ab854e99aa6d"
-
-inherit gettext autotools-brokensep pkgconfig distro_features_check
-
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-S = "${WORKDIR}/${BPN}_release-7.6-${PV}"
-
-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} \
-"
-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}/${TARGET_SYS}-libtool
- sed -i -e 's|^sys_lib_dlsearch_path_spec=.*|sys_lib_dlsearch_path_spec=""|g' ${B}/${TARGET_SYS}-libtool
- sed -i -e 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' ${B}/${TARGET_SYS}-libtool
-}
-
-SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
diff --git a/meta-oe/recipes-extended/brotli/brotli/838.patch b/meta-oe/recipes-extended/brotli/brotli/838.patch
new file mode 100644
index 0000000000..98b888760f
--- /dev/null
+++ b/meta-oe/recipes-extended/brotli/brotli/838.patch
@@ -0,0 +1,48 @@
+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
new file mode 100644
index 0000000000..4e2813dded
--- /dev/null
+++ b/meta-oe/recipes-extended/brotli/brotli_1.0.9.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 \
+ 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/byacc/byacc.inc b/meta-oe/recipes-extended/byacc/byacc.inc
index 5214715cd7..a3d9bfdb70 100644
--- a/meta-oe/recipes-extended/byacc/byacc.inc
+++ b/meta-oe/recipes-extended/byacc/byacc.inc
@@ -6,13 +6,13 @@ programming language."
SECTION = "devel"
LICENSE = "PD"
-SRC_URI = "ftp://ftp.invisible-island.net/byacc/byacc-${PV}.tgz \
+SRC_URI = "https://invisible-mirror.net/archives/byacc/byacc-${PV}.tgz \
file://byacc-open.patch \
file://0001-byacc-do-not-reorder-CC-and-CFLAGS.patch"
EXTRA_OECONF += "--program-transform-name='s,^,b,'"
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
inherit autotools
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 3bc0db96e6..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
@@ -10,16 +10,30 @@ Upstream-Status: Inappropriate [OE Specific]
Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+Update for 20190617.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+Update for 20191103.
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+
+Update for 20200910.
+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 | 140 -------------------------------------------------------------
- 2 files changed, 141 deletions(-)
+ configure | 259 -----------------------------------------------------
+ 2 files changed, 260 deletions(-)
diff --git a/aclocal.m4 b/aclocal.m4
-index 0d14f26..0cefa08 100644
+index 832d0c8..63b03f2 100644
--- a/aclocal.m4
+++ b/aclocal.m4
-@@ -1038,7 +1038,6 @@ CF_GCC_VERSION
+@@ -1421,7 +1421,6 @@ CF_GCC_VERSION
CF_ACVERSION_CHECK(2.52,
[AC_PROG_CC_STDC],
[CF_ANSI_CC_REQD])
@@ -28,21 +42,140 @@ index 0d14f26..0cefa08 100644
dnl ---------------------------------------------------------------------------
dnl CF_PROG_GROFF version: 3 updated: 2018/01/07 13:16:19
diff --git a/configure b/configure
-index d27ae31..077c648 100755
+index cb47b4c..c72b6e4 100755
--- a/configure
+++ b/configure
-@@ -1946,146 +1946,6 @@ esac
+@@ -2144,265 +2144,6 @@ esac
# This should have been defined by AC_PROG_CC
- : ${CC:=cc}
+ : "${CC:=cc}"
--echo "$as_me:1949: checking \$CC 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:2151: result: broken" >&5
+-echo "${ECHO_T}broken" >&6
+- { 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=
+- for cf_arg in $cf_flags
+- do
+-
+-cf_fix_cppflags=no
+-cf_new_cflags=
+-cf_new_cppflags=
+-cf_new_extra_cppflags=
+-
+-for cf_add_cflags in $cf_arg
+-do
+-case "$cf_fix_cppflags" in
+-(no)
+- case "$cf_add_cflags" in
+- (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
+- case "$cf_add_cflags" in
+- (-D*)
+- cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+-
+- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=yes
+-
+- if test "$cf_fix_cppflags" = yes ; then
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
+- continue
+- elif test "${cf_tst_cflags}" = "\"'" ; then
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
+- continue
+- fi
+- ;;
+- esac
+- case "$CPPFLAGS" in
+- (*$cf_add_cflags)
+- ;;
+- (*)
+- case "$cf_add_cflags" in
+- (-D*)
+- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
+-
+-CPPFLAGS=`echo "$CPPFLAGS" | \
+- sed -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?[ ]/ /g' \
+- -e 's/-[UD]'"$cf_tst_cppflags"'\(=[^ ]*\)\?$//g'`
+-
+- ;;
+- esac
+-
+- test -n "$cf_new_cppflags" && cf_new_cppflags="$cf_new_cppflags "
+- cf_new_cppflags="${cf_new_cppflags}$cf_add_cflags"
+-
+- ;;
+- esac
+- ;;
+- (*)
+-
+- test -n "$cf_new_cflags" && cf_new_cflags="$cf_new_cflags "
+- cf_new_cflags="${cf_new_cflags}$cf_add_cflags"
+-
+- ;;
+- esac
+- ;;
+-(yes)
+-
+- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
+- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
+-
+- cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'`
+-
+- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
+- && test -z "${cf_tst_cflags}" \
+- && cf_fix_cppflags=no
+- ;;
+-esac
+-done
+-
+-if test -n "$cf_new_cflags" ; then
+-
+- test -n "$CFLAGS" && CFLAGS="$CFLAGS "
+- CFLAGS="${CFLAGS}$cf_new_cflags"
+-
+-fi
+-
+-if test -n "$cf_new_cppflags" ; then
+-
+- test -n "$CPPFLAGS" && CPPFLAGS="$CPPFLAGS "
+- CPPFLAGS="${CPPFLAGS}$cf_new_cppflags"
+-
+-fi
+-
+-if test -n "$cf_new_extra_cppflags" ; then
+-
+- test -n "$EXTRA_CPPFLAGS" && EXTRA_CPPFLAGS="$EXTRA_CPPFLAGS "
+- EXTRA_CPPFLAGS="${EXTRA_CPPFLAGS}$cf_new_extra_cppflags"
+-
+-fi
+-
+- done
+- ;;
+-(*)
+- echo "$as_me:2261: result: ok" >&5
+-echo "${ECHO_T}ok" >&6
+- ;;
+-esac
+-
+-echo "$as_me:2266: checking \$CC variable" >&5
-echo $ECHO_N "checking \$CC variable... $ECHO_C" >&6
-case "$CC" in
-(*[\ \ ]-*)
-- echo "$as_me:1953: result: broken" >&5
+- echo "$as_me:2270: result: broken" >&5
-echo "${ECHO_T}broken" >&6
-- { echo "$as_me:1955: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&5
--echo "$as_me: WARNING: your environment misuses the CC variable to hold CFLAGS/CPPFLAGS options" >&2;}
+- { 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/[ ]*[ ]-[^ ].*//'`
- cf_flags=`echo "$CC" | ${AWK:-awk} -v prog="$cf_prog" '{ printf("%s", substr($0,1+length(prog))); }'`
@@ -59,19 +192,19 @@ index d27ae31..077c648 100755
-
-for cf_add_cflags in $cf_arg
-do
--case $cf_fix_cppflags in
+-case "$cf_fix_cppflags" in
-(no)
-- case $cf_add_cflags in
+- case "$cf_add_cflags" in
- (-undef|-nostdinc*|-I*|-D*|-U*|-E|-P|-C)
-- case $cf_add_cflags in
+- case "$cf_add_cflags" in
- (-D*)
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
+- cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^-D[^=]*='\''\"[^"]*//'`
-
- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
- && cf_fix_cppflags=yes
-
-- if test $cf_fix_cppflags = yes ; then
+- if test "$cf_fix_cppflags" = yes ; then
-
- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
@@ -90,7 +223,7 @@ index d27ae31..077c648 100755
- (*$cf_add_cflags)
- ;;
- (*)
-- case $cf_add_cflags in
+- case "$cf_add_cflags" in
- (-D*)
- cf_tst_cppflags=`echo "x$cf_add_cflags" | sed -e 's/^...//' -e 's/=.*//'`
-
@@ -120,7 +253,7 @@ index d27ae31..077c648 100755
- test -n "$cf_new_extra_cppflags" && cf_new_extra_cppflags="$cf_new_extra_cppflags "
- cf_new_extra_cppflags="${cf_new_extra_cppflags}$cf_add_cflags"
-
-- cf_tst_cflags=`echo ${cf_add_cflags} |sed -e 's/^[^"]*"'\''//'`
+- cf_tst_cflags=`echo "${cf_add_cflags}" |sed -e 's/^[^"]*"'\''//'`
-
- test "x${cf_add_cflags}" != "x${cf_tst_cflags}" \
- && test -z "${cf_tst_cflags}" \
@@ -158,26 +291,26 @@ index d27ae31..077c648 100755
- done
- test -n "$verbose" && echo " resulting CC: '$CC'" 1>&6
-
--echo "${as_me:-configure}:2072: 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}:2076: 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}:2080: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
+-echo "${as_me:-configure}:2397: testing resulting CPPFLAGS: '$CPPFLAGS' ..." 1>&5
-
- ;;
-(*)
-- echo "$as_me:2084: result: ok" >&5
+- echo "$as_me:2401: result: ok" >&5
-echo "${ECHO_T}ok" >&6
- ;;
-esac
-
- echo "$as_me:2089: 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.7.4
+2.34.1
diff --git a/meta-oe/recipes-extended/byacc/byacc_20180510.bb b/meta-oe/recipes-extended/byacc/byacc_20180510.bb
deleted file mode 100644
index f30c426409..0000000000
--- a/meta-oe/recipes-extended/byacc/byacc_20180510.bb
+++ /dev/null
@@ -1,12 +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=8b2933503c0443e041d3168dc0c65640"
-require byacc.inc
-
-SRC_URI[md5sum] = "97fdc0745e0ff0cef5c09d57d0c6752d"
-SRC_URI[sha256sum] = "d0940dbffbc7e9c9dd4985c25349c390beede84ae1d9fe86b71c0aa659a6d693"
-
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_3.10.2.bb b/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb
deleted file mode 100644
index b52e7cc082..0000000000
--- a/meta-oe/recipes-extended/cfengine/cfengine-masterfiles_3.10.2.bb
+++ /dev/null
@@ -1,36 +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"
-
-SRC_URI[md5sum] = "1247ef4e8f3cee5efa98da50c326e5a4"
-SRC_URI[sha256sum] = "5d18a8d71f451d0b5dd1f5e579452b29b99b664f2bb0827dbba9a615f2764df6"
-
-inherit autotools
-
-export EXPLICIT_VERSION="${PV}"
-
-EXTRA_OECONF = "--prefix=${datadir}/cfengine"
-
-FILES_${PN} = "${datadir}/cfengine"
-
-RDEPENDS_${PN} += "python-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/change-hard-coded-lib-path.patch b/meta-oe/recipes-extended/cfengine/cfengine/change-hard-coded-lib-path.patch
deleted file mode 100644
index 2295e415cd..0000000000
--- a/meta-oe/recipes-extended/cfengine/cfengine/change-hard-coded-lib-path.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-projlibdir use a hard coded lib path, this will cause error when build a 64bit
-target. So change it to suitable path.
-
-Signed-off-by: Song.Li <Song.Li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 38e2b9c..bc6b996 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -188,7 +188,7 @@ AS_IF([test x"$enable_fhs" = xyes], [
- fi
-
- sbindir='${exec_prefix}/bin' # /var/cfengine/bin despite being sbin_?
-- projlibdir='${exec_prefix}/lib'
-+ projlibdir='${libdir}'
- mandir='${exec_prefix}/share/man'
- ])
-
---
-1.7.1
-
diff --git a/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch b/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch
index b9526f2843..db69f951ca 100644
--- a/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch
+++ b/meta-oe/recipes-extended/cfengine/cfengine/set-path-of-default-config-file.patch
@@ -1,23 +1,38 @@
+From dc270040cb3beb5ca42f864813145c8a68594bad Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 18 Jul 2016 09:06:06 +0800
+Subject: [PATCH] cfengine: add recipe and base policy
+
Upstream-Status: Inappropriate [configuration]
Set the path of default configure file.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
---
+ misc/init.d/cfengine3.in | 12 ++++--------
+ 1 file changed, 4 insertions(+), 8 deletions(-)
+
diff --git a/misc/init.d/cfengine3.in b/misc/init.d/cfengine3.in
-index d6ae26f..1dee283 100644
+index c584817..12f5803 100644
--- a/misc/init.d/cfengine3.in
+++ b/misc/init.d/cfengine3.in
-@@ -101,11 +101,7 @@ if [ -z "$LOCKDIR" ]; then
+@@ -101,14 +101,10 @@ if [ -z "$LOCKDIR" ]; then
fi
# default control file
-if [ "$DEBIAN" = "1" ]; then
- DEFAULT=/etc/default/cfengine3
+- INIT_FUNCTIONS=/lib/lsb/init-functions
+- if [ -e "$INIT_FUNCTIONS" ]; then
+- . "$INIT_FUNCTIONS"
+- fi
-else
- DEFAULT=/etc/sysconfig/cfengine3
--fi
+DEFAULT=/etc/default/cfengine3
++INIT_FUNCTIONS=/lib/lsb/init-functions
++if [ -e "$INIT_FUNCTIONS" ]; then
++ . "$INIT_FUNCTIONS"
+ fi
if [ -f $DEFAULT ]; then
- . $DEFAULT
diff --git a/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb b/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb
deleted file mode 100644
index b86b0a1f18..0000000000
--- a/meta-oe/recipes-extended/cfengine/cfengine_3.10.2.bb
+++ /dev/null
@@ -1,73 +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"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f8b34828ab373d6b1bb4b0fc60a78494"
-
-DEPENDS = "attr tokyocabinet"
-
-SRC_URI = "https://cfengine-package-repos.s3.amazonaws.com/tarballs/${BP}.tar.gz \
- file://change-hard-coded-lib-path.patch \
- file://set-path-of-default-config-file.patch \
-"
-
-SRC_URI[md5sum] = "c16baf08189a1af6fcf2e2ff61102992"
-SRC_URI[sha256sum] = "d4fa9ac7276dba7b85d6757aab2f0929ab8d3b115cb0e7b0cf984760347429d7"
-
-inherit autotools systemd
-
-export EXPLICIT_VERSION="${PV}"
-
-SYSTEMD_SERVICE_${PN} = "cfengine3.service cf-apache.service cf-hub.service cf-postgres.service \
- cf-runalerts.service cf-consumer.service cf-execd.service \
- cf-monitord.service cf-redis-server.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
-}
-
-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
new file mode 100644
index 0000000000..a743e72520
--- /dev/null
+++ b/meta-oe/recipes-extended/cmatrix/cmatrix_2.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Terminal based 'The Matrix' screen implementation"
+AUTHOR = "Abishek V Ashok"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI = "git://github.com/abishekvashok/cmatrix.git;branch=stable;protocol=https"
+SRCREV = "adfdf1656f23e5ab3b52c7d7edf91249a4477e8d"
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+DEPENDS += "ncurses"
+
+FILES:${PN} += "${datadir}/* ${libdir}/kbd/*"
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
index b2a149b0f4..fa029da2b8 100644
--- 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
@@ -9,19 +9,14 @@ Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
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 128798b..391cef7 100644
--- a/swig/python/CMakeLists.txt
+++ b/swig/python/CMakeLists.txt
-@@ -49,7 +49,7 @@ ADD_DEFINITIONS(-DCMPI_PLATFORM_LINUX_GENERIC_GNU -DCMPI_VERSION=200)
+@@ -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}m )
++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 )
---
-2.8.1
-
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..1d8013be6f 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
@@ -5,6 +5,8 @@ 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/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
index 0d6f029e4c..5d5652a5f2 100644
--- 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
@@ -5,6 +5,8 @@ Subject: [PATCH] fix Xthe build error when python>3.0
Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
---
+Upstream-Status: Pending
+
src/target_python.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
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
new file mode 100644
index 0000000000..3b7453536b
--- /dev/null
+++ b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_1.0.1.bb
@@ -0,0 +1,42 @@
+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=https;branch=master \
+ 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_git.bb b/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
deleted file mode 100644
index 987c09fe52..0000000000
--- a/meta-oe/recipes-extended/cmpi-bindings/cmpi-bindings_git.bb
+++ /dev/null
@@ -1,40 +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"
-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 \
- 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}"
-
-# 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/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch b/meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch
new file mode 100644
index 0000000000..7948788f97
--- /dev/null
+++ b/meta-oe/recipes-extended/collectd/collectd/0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch
@@ -0,0 +1,53 @@
+From 090a17ca338a9311d682ecc5933b32bff67cf07f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 27 Jul 2019 14:20:14 -0700
+Subject: [PATCH] Remove including sys/sysctl.h on glibc based systems
+
+Glibc 2.30 has added deprecation notice and collectd detects it as
+warning [1]
+
+Fixes
+sys/sysctl.h:21:2: error: "The <sys/sysctl.h> header is deprecated and
+will be removed." [-Werror,-W#warnings]
+
+[1]
+https://sourceware.org/git/?p=glibc.git;a=commit;h=744e829637162bb7d5029632aacf341c64b86990
+
+Upstream-Status: Submitted
+[https://github.com/collectd/collectd/pull/3234]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/processes.c | 2 +-
+ src/uptime.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/processes.c b/src/processes.c
+index f83913a..9f71511 100644
+--- a/src/processes.c
++++ b/src/processes.c
+@@ -87,7 +87,7 @@
+ #if HAVE_MACH_VM_PROT_H
+ #include <mach/vm_prot.h>
+ #endif
+-#if HAVE_SYS_SYSCTL_H
++#if defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
+ #include <sys/sysctl.h>
+ #endif
+ /* #endif HAVE_THREAD_INFO */
+diff --git a/src/uptime.c b/src/uptime.c
+index 0892bda..4b15150 100644
+--- a/src/uptime.c
++++ b/src/uptime.c
+@@ -33,7 +33,7 @@
+ */
+ /* #endif HAVE_LIBKSTAT */
+
+-#elif HAVE_SYS_SYSCTL_H
++#elif defined(HAVE_SYS_SYSCTL_H) && !defined(__GLIBC__)
+ #include <sys/sysctl.h>
+ /* Using sysctl interface to retrieve the boot time on *BSD / Darwin / OS X
+ * systems */
+
+--
+2.17.1
+
diff --git a/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch b/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
deleted file mode 100644
index 5ee75cb4de..0000000000
--- a/meta-oe/recipes-extended/collectd/collectd/0001-conditionally-check-libvirt.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 385bf1c2ec57942e17ee529e57eef0dcd99904e6 Mon Sep 17 00:00:00 2001
-From: Roy Li <rongqing.li@windriver.com>
-Date: Tue, 1 Sep 2015 17:00:33 +0800
-Subject: [PATCH] [PATCH] conditionally check libvirt
-
-Upstream-Statue: Pending
-
-check if libvirt is available only when a user wants to use libvirt
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-
----
- configure.ac | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 101d6f9f..a7eca97d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -5758,11 +5758,14 @@ else
- with_libxml2="no (pkg-config doesn't know libxml-2.0)"
- fi
-
--$PKG_CONFIG --exists libvirt 2>/dev/null
--if test $? = 0; then
-- with_libvirt="yes"
--else
-- with_libvirt="no (pkg-config doesn't know libvirt)"
-+if test "x$enable_libvirt" = "xyes"; then
-+ $PKG_CONFIG --exists libvirt 2>/dev/null
-+ if test "$?" = "0"
-+ then
-+ with_libvirt="yes"
-+ else
-+ with_libvirt="no (pkg-config doesn't know libvirt)"
-+ fi
- fi
-
- if test "x$with_libxml2" = "xyes"; then
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 d2c7268005..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(+)
@@ -23,9 +25,9 @@ diff --git a/configure.ac b/configure.ac
index a7eca97d..560eb988 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -6794,6 +6794,7 @@ if test "x$enable_werror" != "xno"; then
- AM_CFLAGS="$AM_CFLAGS -Werror"
- AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
+@@ -7101,6 +7101,7 @@ if test "x$GCC" = "xyes"; then
+ AM_CXXFLAGS="$AM_CXXFLAGS -Werror"
+ fi
fi
+AX_CHECK_COMPILE_FLAG([-Werror -Werror=format-truncation],[AM_CFLAGS="$AM_CFLAGS -Wno-error=format-truncation" AM_CXXFLAGS="$AM_CXXFLAGS -Wno-error=format-truncation"])
diff --git a/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch b/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch
index be942e5ef8..1e140f9753 100644
--- a/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch
+++ b/meta-oe/recipes-extended/collectd/collectd/0001-fix-to-build-with-glibc-2.25.patch
@@ -11,8 +11,8 @@ diff --git a/src/md.c b/src/md.c
index 3725f9a..202225b 100644
--- a/src/md.c
+++ b/src/md.c
-@@ -25,6 +25,7 @@
- #include "utils_ignorelist.h"
+@@ -26,6 +26,7 @@
+ #include "utils/ignorelist/ignorelist.h"
#include <sys/ioctl.h>
+#include <sys/sysmacros.h>
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 b12690b327..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
@@ -1,4 +1,4 @@
-From d65e48b68076d5b304e6d865967003ae1fea0e6c Mon Sep 17 00:00:00 2001
+From f82f8faf9942f51e9c3c773b56574652695bef5a Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 9 May 2018 21:45:38 -0700
Subject: [PATCH] Disable new gcc8 warnings
@@ -7,17 +7,19 @@ GCC seems to be not able to detect the checks for size are
already in place
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
-Upstream-Status: Submitted [https://github.com/collectd/collectd/pull/2768]
+Upstream-Status: Pending
+
src/libcollectdclient/network_parse.c | 7 +++++++
src/write_sensu.c | 7 +++++++
2 files changed, 14 insertions(+)
diff --git a/src/libcollectdclient/network_parse.c b/src/libcollectdclient/network_parse.c
-index 2365ab0a..79e6ed96 100644
+index aa753ce..fef43a9 100644
--- a/src/libcollectdclient/network_parse.c
+++ b/src/libcollectdclient/network_parse.c
-@@ -163,6 +163,11 @@ static int parse_int(void *payload, size_t payload_size, uint64_t *out) {
+@@ -148,6 +148,11 @@ static int parse_int(void *payload, size_t payload_size, uint64_t *out) {
return 0;
}
@@ -29,7 +31,7 @@ index 2365ab0a..79e6ed96 100644
static int parse_string(void *payload, size_t payload_size, char *out,
size_t out_size) {
char *in = payload;
-@@ -175,6 +180,8 @@ static int parse_string(void *payload, size_t payload_size, char *out,
+@@ -160,6 +165,8 @@ static int parse_string(void *payload, size_t payload_size, char *out,
return 0;
}
@@ -39,22 +41,22 @@ index 2365ab0a..79e6ed96 100644
lcc_value_list_t *state) {
char buf[LCC_NAME_LEN];
diff --git a/src/write_sensu.c b/src/write_sensu.c
-index ce23e654..63e1f599 100644
+index bd7a56d..6cb59d5 100644
--- a/src/write_sensu.c
+++ b/src/write_sensu.c
-@@ -569,6 +569,11 @@ static char *sensu_value_to_json(struct sensu_host const *host, /* {{{ */
+@@ -570,6 +570,11 @@ static char *sensu_value_to_json(struct sensu_host const *host, /* {{{ */
return ret_str;
} /* }}} char *sensu_value_to_json */
+#pragma GCC diagnostic push
-+#if __GNUC__ == 8
++#if __GNUC__ > 7
+#pragma GCC diagnostic ignored "-Wstringop-overflow"
+#pragma GCC diagnostic ignored "-Wstringop-truncation"
+#endif
/*
* Uses replace_str2() implementation from
* http://creativeandcritical.net/str-replace-c/
-@@ -631,6 +636,8 @@ static char *replace_str(const char *str, const char *old, /* {{{ */
+@@ -632,6 +637,8 @@ static char *replace_str(const char *str, const char *old, /* {{{ */
return ret;
} /* }}} char *replace_str */
diff --git a/meta-oe/recipes-extended/collectd/collectd/0006-libcollectdclient-Fix-string-overflow-errors.patch b/meta-oe/recipes-extended/collectd/collectd/0006-libcollectdclient-Fix-string-overflow-errors.patch
new file mode 100644
index 0000000000..3ed652f71f
--- /dev/null
+++ b/meta-oe/recipes-extended/collectd/collectd/0006-libcollectdclient-Fix-string-overflow-errors.patch
@@ -0,0 +1,31 @@
+From 98719ea7f717750c790a1f9384ea8d0117e7f52d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 17 Dec 2018 18:15:05 -0800
+Subject: [PATCH] libcollectdclient: Fix string overflow errors
+
+Ensure that string has a space for ending null char
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libcollectdclient/network_parse.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/libcollectdclient/network_parse.c b/src/libcollectdclient/network_parse.c
+index fef43a9..6d65266 100644
+--- a/src/libcollectdclient/network_parse.c
++++ b/src/libcollectdclient/network_parse.c
+@@ -169,9 +169,9 @@ static int parse_string(void *payload, size_t payload_size, char *out,
+
+ static int parse_identifier(uint16_t type, void *payload, size_t payload_size,
+ lcc_value_list_t *state) {
+- char buf[LCC_NAME_LEN];
+-
+- if (parse_string(payload, payload_size, buf, sizeof(buf)) != 0)
++ char buf[LCC_NAME_LEN+1];
++ buf[LCC_NAME_LEN] = '\0';
++ if (parse_string(payload, payload_size, buf, LCC_NAME_LEN) != 0)
+ return EINVAL;
+
+ switch (type) {
diff --git a/meta-oe/recipes-extended/collectd/collectd/collectd.init b/meta-oe/recipes-extended/collectd/collectd/collectd.init
index 95f5f73c67..83413463d8 100644
--- a/meta-oe/recipes-extended/collectd/collectd/collectd.init
+++ b/meta-oe/recipes-extended/collectd/collectd/collectd.init
@@ -47,11 +47,11 @@ if [ -r /etc/default/$NAME ]; then
. /etc/default/$NAME
fi
-if test "$ENABLE_COREFILES" == 1; then
+if test "$ENABLE_COREFILES" = 1; then
ulimit -c unlimited
fi
-if test "$USE_COLLECTDMON" == 1; then
+if test "$USE_COLLECTDMON" = 1; then
_PIDFILE="$COLLECTDMON_PIDFILE"
else
_PIDFILE="$PIDFILE"
@@ -96,7 +96,7 @@ d_start() {
return 2
fi
- if test "$USE_COLLECTDMON" == 1; then
+ if test "$USE_COLLECTDMON" = 1; then
start-stop-daemon --start --quiet --oknodo --pidfile "$_PIDFILE" \
--exec $COLLECTDMON_DAEMON -- -P "$_PIDFILE" -- -C "$CONFIGFILE" \
|| return 2
@@ -150,7 +150,7 @@ d_stop() {
# 0 if the daemon is running
# 3 if the daemon is stopped
d_status(){
- if test "$USE_COLLECTDMON" == 1; then
+ if test "$USE_COLLECTDMON" = 1; then
status $COLLECTDMON_DAEMON
else
status $DAEMON
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
new file mode 100644
index 0000000000..5dc64588d2
--- /dev/null
+++ b/meta-oe/recipes-extended/collectd/collectd_5.12.0.bb
@@ -0,0 +1,91 @@
+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."
+LICENSE = "GPL-2.0-only & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
+
+DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
+
+SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \
+ file://collectd.init \
+ file://collectd.service \
+ file://no-gcrypt-badpath.patch \
+ file://0001-fix-to-build-with-glibc-2.25.patch \
+ file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
+ file://0005-Disable-new-gcc8-warnings.patch \
+ file://0006-libcollectdclient-Fix-string-overflow-errors.patch \
+ file://0001-Remove-including-sys-sysctl.h-on-glibc-based-systems.patch \
+ "
+SRC_URI[md5sum] = "2b23a65960bc323d065234776a542e04"
+SRC_URI[sha256sum] = "5bae043042c19c31f77eb8464e56a01a5454e0b39fa07cf7ad0f1bfc9c3a09d6"
+
+inherit autotools python3native update-rc.d pkgconfig systemd
+
+SYSTEMD_SERVICE:${PN} = "collectd.service"
+
+# Floatingpoint layout, architecture dependent
+# 'nothing', 'endianflip' or 'intswap'
+FPLAYOUT ?= "--with-fp-layout=nothing"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[openjdk] = "--with-java=${STAGING_DIR_TARGET}${libdir}/jvm,--without-java,openjdk-7"
+PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp --with-libnetsnmp=no,net-snmp"
+PACKAGECONFIG[libmemcached] = "--with-libmemcached,--without-libmemcached,libmemcached"
+PACKAGECONFIG[iptables] = "--enable-iptables,--disable-iptables,iptables"
+PACKAGECONFIG[postgresql] = "--enable-postgresql --with-libpq=yes, \
+ --disable-postgresql --with-libpq=no,postgresql"
+PACKAGECONFIG[mysql] = "--enable-mysql --with-libmysql=yes, \
+ --disable-mysql --with-libmysql=no,mysql5"
+PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
+PACKAGECONFIG[modbus] = "--enable-modbus,--disable-modbus,libmodbus"
+PACKAGECONFIG[libowcapi] = "--with-libowcapi,--without-libowcapi,owfs"
+PACKAGECONFIG[sensors] = "--enable-sensors --with-libsensors=yes, \
+ --disable-sensors --with-libsensors=no,lmsensors"
+PACKAGECONFIG[amqp] = "--enable-amqp --with-librabbitmq=yes, \
+ --disable-amqp --with-librabbitmq=no,rabbitmq-c"
+# protobuf-c, libvirt that are currently only available in meta-virtualization layer
+PACKAGECONFIG[pinba] = "--enable-pinba,--disable-pinba,protobuf-c-native protobuf-c"
+PACKAGECONFIG[libvirt] = "--enable-virt,--disable-virt,libvirt"
+PACKAGECONFIG[libesmtp] = "--with-libesmtp,--without-libesmtp,libesmtp"
+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[python] = "--enable-python,--disable-python"
+
+EXTRA_OECONF = " \
+ ${FPLAYOUT} \
+ --disable-perl --with-libperl=no --with-perl-bindings=no \
+ --with-libgcrypt=${STAGING_BINDIR_CROSS}/libgcrypt-config \
+ --disable-notify_desktop --disable-werror \
+"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/collectd.init ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/collectd
+ sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/collectd
+ install -Dm 0640 ${B}/src/collectd.conf ${D}${sysconfdir}/collectd.conf
+ # Fix configuration file to allow collectd to start up
+ sed -i 's!^#FQDNLookup[ \t]*true!FQDNLookup false!g' ${D}${sysconfdir}/collectd.conf
+
+ rmdir ${D}${localstatedir}/run ${D}${localstatedir}/log
+ rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
+ # Install systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/collectd.service ${D}${systemd_unitdir}/system
+ sed -i -e 's,@SBINDIR@,${sbindir},g' \
+ ${D}${systemd_unitdir}/system/collectd.service
+}
+
+CONFFILES:${PN} = "${sysconfdir}/collectd.conf"
+
+INITSCRIPT_NAME = "collectd"
+INITSCRIPT_PARAMS = "defaults"
+
+# threshold.so load.so are also provided by gegl
+# disk.so is also provided by libgphoto2-camlibs
+PRIVATE_LIBS = "threshold.so load.so disk.so"
diff --git a/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb b/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb
deleted file mode 100644
index df9fa233cd..0000000000
--- a/meta-oe/recipes-extended/collectd/collectd_5.8.0.bb
+++ /dev/null
@@ -1,87 +0,0 @@
-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."
-LICENSE = "GPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1bd21f19f7f0c61a7be8ecacb0e28854"
-
-DEPENDS = "rrdtool curl libpcap libxml2 yajl libgcrypt libtool lvm2"
-
-SRC_URI = "http://collectd.org/files/collectd-${PV}.tar.bz2 \
- file://collectd.init \
- file://collectd.service \
- file://no-gcrypt-badpath.patch \
- file://0001-conditionally-check-libvirt.patch \
- file://0001-fix-to-build-with-glibc-2.25.patch \
- file://0001-configure-Check-for-Wno-error-format-truncation-comp.patch \
- file://0005-Disable-new-gcc8-warnings.patch \
- "
-SRC_URI[md5sum] = "a841159323624f18bf03198e9f5aa364"
-SRC_URI[sha256sum] = "b06ff476bbf05533cb97ae6749262cc3c76c9969f032bd8496690084ddeb15c9"
-
-inherit autotools pythonnative update-rc.d pkgconfig systemd
-
-SYSTEMD_SERVICE_${PN} = "collectd.service"
-
-# Floatingpoint layout, architecture dependent
-# 'nothing', 'endianflip' or 'intswap'
-FPLAYOUT ?= "--with-fp-layout=nothing"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[openjdk] = "--with-java=${STAGING_DIR_TARGET}${libdir}/jvm,--without-java,openjdk-7"
-PACKAGECONFIG[snmp] = "--enable-snmp,--disable-snmp --with-libnetsnmp=no,net-snmp"
-PACKAGECONFIG[libmemcached] = "--with-libmemcached,--without-libmemcached,libmemcached"
-PACKAGECONFIG[iptables] = "--enable-iptables,--disable-iptables,iptables"
-PACKAGECONFIG[postgresql] = "--enable-postgresql --with-libpq=yes, \
- --disable-postgresql --with-libpq=no,postgresql"
-PACKAGECONFIG[mysql] = "--enable-mysql --with-libmysql=yes, \
- --disable-mysql --with-libmysql=no,mysql5"
-PACKAGECONFIG[dbi] = "--enable-dbi,--disable-dbi,libdbi"
-PACKAGECONFIG[modbus] = "--enable-modbus,--disable-modbus,libmodbus"
-PACKAGECONFIG[libowcapi] = "--with-libowcapi,--without-libowcapi,owfs"
-PACKAGECONFIG[sensors] = "--enable-sensors --with-libsensors=yes, \
- --disable-sensors --with-libsensors=no,lmsensors"
-PACKAGECONFIG[amqp] = "--enable-amqp --with-librabbitmq=yes, \
- --disable-amqp --with-librabbitmq=no,rabbitmq-c"
-# protobuf-c, libvirt that are currently only available in meta-virtualization layer
-PACKAGECONFIG[pinba] = "--enable-pinba,--disable-pinba,protobuf-c-native protobuf-c"
-PACKAGECONFIG[libvirt] = "--enable-virt,--disable-virt,libvirt"
-PACKAGECONFIG[libesmtp] = "--with-libesmtp,--without-libesmtp,libesmtp"
-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"
-
-EXTRA_OECONF = " \
- ${FPLAYOUT} \
- --disable-perl --with-libperl=no --with-perl-bindings=no \
- --with-libgcrypt=${STAGING_BINDIR_CROSS}/libgcrypt-config \
- --disable-notify_desktop \
-"
-
-do_install_append() {
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/collectd.init ${D}${sysconfdir}/init.d/collectd
- sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/collectd
- sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/collectd
- sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/collectd
- sed -i 's!^PATH=.*!PATH=${base_sbindir}:${base_bindir}:${sbindir}:${bindir}!' ${D}${sysconfdir}/init.d/collectd
- install -Dm 0640 ${B}/src/collectd.conf ${D}${sysconfdir}/collectd.conf
- # Fix configuration file to allow collectd to start up
- sed -i 's!^#FQDNLookup[ \t]*true!FQDNLookup false!g' ${D}${sysconfdir}/collectd.conf
-
- rmdir "${D}${localstatedir}/run"
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}"
-
- # Install systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/collectd.service ${D}${systemd_unitdir}/system
- sed -i -e 's,@SBINDIR@,${sbindir},g' \
- ${D}${systemd_unitdir}/system/collectd.service
-}
-
-CONFFILES_${PN} = "${sysconfdir}/collectd.conf"
-
-INITSCRIPT_NAME = "collectd"
-INITSCRIPT_PARAMS = "defaults"
-
-# threshold.so load.so are also provided by gegl
-# disk.so is also provided by libgphoto2-camlibs
-PRIVATE_LIBS = "threshold.so load.so disk.so"
diff --git a/meta-oe/recipes-extended/ddrescue/ddrescue_1.22.bb b/meta-oe/recipes-extended/ddrescue/ddrescue_1.22.bb
deleted file mode 100644
index 2df7db9e84..0000000000
--- a/meta-oe/recipes-extended/ddrescue/ddrescue_1.22.bb
+++ /dev/null
@@ -1,45 +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 = "GPLv2+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=76d6e300ffd8fb9d18bd9b136a9bba13 \
- file://main_common.cc;beginline=5;endline=16;md5=3ec288b2676528cd2b069364e313016f"
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.lz"
-SRC_URI[md5sum] = "49c845ed89d25b534842e40366154cb4"
-SRC_URI[sha256sum] = "09857b2e8074813ac19da5d262890f722e5f7900e521a4c60354cef95eea10a7"
-
-# 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.27.bb b/meta-oe/recipes-extended/ddrescue/ddrescue_1.27.bb
new file mode 100644
index 0000000000..7a71d02dc1
--- /dev/null
+++ b/meta-oe/recipes-extended/ddrescue/ddrescue_1.27.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] = "38c80c98c5a44f15e53663e4510097fd68d6ec20758efdf3a925037c183232eb"
+
+# 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-20171209.bb b/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb
deleted file mode 100644
index 63c65c4fcc..0000000000
--- a/meta-oe/recipes-extended/dialog/dialog_1.3-20171209.bb
+++ /dev/null
@@ -1,29 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-SRC_URI = "ftp://ftp.invisible-island.net/${BPN}/${BP}.tgz \
- "
-SRC_URI[md5sum] = "f66f28beca900b54f5fc90fdcce93508"
-SRC_URI[sha256sum] = "20139442119e2eff5c35236e8e5e313c901539008d9cccf8c8ab3851b41267e6"
-
-# hardcoded here for use in dialog-static recipe
-S = "${WORKDIR}/dialog-${PV}"
-
-inherit autotools-brokensep pkgconfig
-
-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-20210509.bb b/meta-oe/recipes-extended/dialog/dialog_1.3-20210509.bb
new file mode 100644
index 0000000000..0b1e7e6088
--- /dev/null
+++ b/meta-oe/recipes-extended/dialog/dialog_1.3-20210509.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 = "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/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
new file mode 100644
index 0000000000..181be25c7f
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0002-Don-t-execute-processes-as-a-specific-user.patch
@@ -0,0 +1,94 @@
+From bcca4c99394ba422d03a5e76f2a0023ef248824a Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@windriver.com>
+Date: Tue, 18 Nov 2014 15:47:22 +0100
+Subject: [PATCH 2/4] Don't execute processes as a specific user.
+
+Upstream-Status: Inappropriate [Configuration Specific]
+Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
+---
+ systemd/dlt-adaptor-udp.service.cmake | 1 -
+ systemd/dlt-dbus.service.cmake | 1 -
+ systemd/dlt-example-user.service.cmake | 1 -
+ systemd/dlt-receive.service.cmake | 1 -
+ systemd/dlt-system.service.cmake | 1 -
+ systemd/dlt.service.cmake | 1 -
+ 6 files changed, 6 deletions(-)
+
+diff --git a/systemd/dlt-adaptor-udp.service.cmake b/systemd/dlt-adaptor-udp.service.cmake
+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
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-adaptor-udp -a @DLT_ADAPTOR_UDP_APPID@ -c @DLT_ADAPTOR_UDP_CTID@ -p @DLT_ADAPTOR_UDP_PORT@
+ LimitCORE=infinity
+
+ [Install]
+-WantedBy=multi-user.target
+\ No newline at end of file
++WantedBy=multi-user.target
+diff --git a/systemd/dlt-dbus.service.cmake b/systemd/dlt-dbus.service.cmake
+index 9baf3e9..74a7eac 100644
+--- a/systemd/dlt-dbus.service.cmake
++++ b/systemd/dlt-dbus.service.cmake
+@@ -20,7 +20,6 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-dbus
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+diff --git a/systemd/dlt-example-user.service.cmake b/systemd/dlt-example-user.service.cmake
+index b665742..35009b0 100644
+--- a/systemd/dlt-example-user.service.cmake
++++ b/systemd/dlt-example-user.service.cmake
+@@ -21,6 +21,5 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-example-user "Hallo from GENIVI DLT example user application"
+-LimitCORE=infinity
+\ No newline at end of file
++LimitCORE=infinity
+diff --git a/systemd/dlt-receive.service.cmake b/systemd/dlt-receive.service.cmake
+index c07d447..8f88f00 100644
+--- a/systemd/dlt-receive.service.cmake
++++ b/systemd/dlt-receive.service.cmake
+@@ -22,6 +22,5 @@ Wants=dlt.service
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-receive -o /tmp/dlt_receive_log.dlt localhost
+-LimitCORE=infinity
+\ No newline at end of file
++LimitCORE=infinity
+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
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-system
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
+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)
+
+ [Service]
+ Type=simple
+-User=@DLT_USER@
+ ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-daemon
+ WatchdogSec=@DLT_WatchdogSec@
+ NotifyAccess=main
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch
new file mode 100644
index 0000000000..ce028c0c51
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/0004-Modify-systemd-config-directory.patch
@@ -0,0 +1,24 @@
+From 9a5e655cf57301008cd61d53c8a410a7f397e650 Mon Sep 17 00:00:00 2001
+From: Andrei Gherzan <andrei.gherzan@windriver.com>
+Date: Tue, 18 Nov 2014 15:51:30 +0100
+Subject: [PATCH 4/4] Modify systemd config directory
+
+Upstream-Status: Inappropriate [Configuration Specific]
+Signed-off-by: Andrei Gherzan <andrei.gherzan@windriver.com>
+---
+ systemd/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e6b44a2..0e885bf 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -201,7 +201,7 @@ if(WITH_SYSTEMD OR WITH_SYSTEMD_WATCHDOG OR WITH_SYSTEMD_JOURNAL)
+
+ set(systemd_SRCS ${PROJECT_SOURCE_DIR}/systemd/3rdparty/sd-daemon.c)
+
+- set(SYSTEMD_UNITDIR "${CMAKE_INSTALL_PREFIX}/lib/systemd/system" CACHE PATH
++ set(SYSTEMD_UNITDIR "/lib/systemd/system" CACHE PATH
+ "Set directory to install systemd unit files")
+
+ add_subdirectory(systemd)
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch
new file mode 100644
index 0000000000..52d9de2fd7
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/481.patch
@@ -0,0 +1,49 @@
+From 95476de802585629c6d89707a9247bbb0c70f6c9 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Fri, 28 Apr 2023 22:39:57 +0200
+Subject: [PATCH] Update gtest_dlt_daemon_multiple_files_logging.cpp
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fix build error due to dlt_vlog not having the correct format string with security build flags enabled
+
+[ 88%] Building CXX object tests/CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o
+cd dlt-daemon-2.18.9/obj-x86_64-linux-gnu/tests && /usr/bin/c++ -DCONFIGURATION_FILES_DIR=\"/etc\" -DDLT_DAEMON_USE_FIFO_IPC -DDLT_LIB_USE_FIFO_IPC -DDLT_NETWORK_TRACE_ENABLE -DDLT_SYSTEMD_ENABLE -DDLT_SYSTEMD_JOURNAL_ENABLE -DDLT_UNIT_TESTS -DDLT_USER_IPC_PATH=\"/tmp\" -DDLT_USE_IPv6 -DEXTENDED_FILTERING -D_GNU_SOURCE -Idlt-daemon-2.18.9 -Idlt-daemon-2.18.9/obj-x86_64-linux-gnu/include/dlt -Idlt-daemon-2.18.9/include/dlt -Idlt-daemon-2.18.9/src/shared -Idlt-daemon-2.18.9/src/core_dump_handler -Idlt-daemon-2.18.9/src/offlinelogstorage -Idlt-daemon-2.18.9/src/lib -Idlt-daemon-2.18.9/src/daemon -Idlt-daemon-2.18.9/src/console -Idlt-daemon-2.18.9/src/gateway -Idlt-daemon-2.18.9/systemd/3rdparty -g -O2 -ffile-prefix-map=dlt-daemon-2.18.9=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -isystem /include -std=gnu++0x -std=gnu++11 -Wall -Wextra -Wno-variadic-macros -Wno-strict-aliasing -DGTEST_HAS_PTHREAD=1 -MD -MT tests/CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o -MF CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o.d -o CMakeFiles/gtest_dlt_daemon_multiple_files_logging.dir/gtest_dlt_daemon_multiple_files_logging.cpp.o -c dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp
+dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp: In member function ‘virtual void t_dlt_logging_multiple_files_append_reinit_normal_Test::TestBody()’:
+dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp:106:13: error: format not a string literal and no format arguments [-Werror=format-security]
+ 106 | dlt_vlog(LOG_INFO, log1);
+ | ~~~~~~~~^~~~~~~~~~~~~~~~
+dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp:110:13: error: format not a string literal and no format arguments [-Werror=format-security]
+ 110 | dlt_vlog(LOG_INFO, log2);
+ | ~~~~~~~~^~~~~~~~~~~~~~~~
+In file included from /usr/include/string.h:535,
+ from /usr/include/gtest/internal/gtest-port.h:264,
+ from /usr/include/gtest/internal/gtest-internal.h:40,
+ from /usr/include/gtest/gtest.h:62,
+ from dlt-daemon-2.18.9/tests/gtest_dlt_daemon_multiple_files_logging.cpp:27:
+In function ‘strncpy’,
+---
+Upstream-Status: Pending
+
+ tests/gtest_dlt_daemon_multiple_files_logging.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/gtest_dlt_daemon_multiple_files_logging.cpp b/tests/gtest_dlt_daemon_multiple_files_logging.cpp
+index 2da512e1..05b58f2c 100644
+--- a/tests/gtest_dlt_daemon_multiple_files_logging.cpp
++++ b/tests/gtest_dlt_daemon_multiple_files_logging.cpp
+@@ -103,11 +103,11 @@ TEST(t_dlt_logging_multiple_files_append_reinit, normal)
+ const char* log2 = "TWO\n";
+
+ configure(path, file_name, true, file_size, max_file_size);
+- dlt_vlog(LOG_INFO, log1);
++ dlt_vlog(LOG_INFO, "%s", log1);
+ EXPECT_NO_THROW(dlt_log_free());
+
+ configure(path, file_name, true, file_size, max_file_size);
+- dlt_vlog(LOG_INFO, log2);
++ dlt_vlog(LOG_INFO, "%s", log2);
+ EXPECT_NO_THROW(dlt_log_free());
+ verify_in_one_file(path, file_name, log1, log2);
+ }
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch
new file mode 100644
index 0000000000..7c9e222b35
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/482.patch
@@ -0,0 +1,40 @@
+From b38761831670e980a58acb33d611f65255d678ac Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Fri, 28 Apr 2023 22:46:36 +0200
+Subject: [PATCH] Update CMakeLists.txt
+
+Link systemd libraries, to avoid underlinking of tests with
+-DWITH_SYSTEMD_SOCKET_ACTIVATION=ON
+
+[ 82%] Linking CXX executable gtest_dlt_daemon_gateway
+cd dlt-daemon-2.18.9/obj-x86_64-linux-gnu/tests && /usr/bin/cmake -E cmake_link_script CMakeFiles/gtest_dlt_daemon_gateway.dir/link.txt --verbose=1
+/usr/bin/c++ -g -O2 -ffile-prefix-map=dlt-daemon-2.18.9=. -flto=auto -ffat-lto-objects -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -isystem /include -std=gnu++0x -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -flto=auto -Wl,-z,relro -rdynamic CMakeFiles/gtest_dlt_daemon_gateway.dir/gtest_dlt_daemon_gateway.cpp.o CMakeFiles/gtest_dlt_daemon_gateway.dir/__/systemd/3rdparty/sd-daemon.c.o -o gtest_dlt_daemon_gateway -Wl,-rpath,dlt-daemon-2.18.9/obj-x86_64-linux-gnu/src/daemon ../src/daemon/libdlt_daemon.so /usr/lib/x86_64-linux-gnu/libgtest.a /usr/lib/x86_64-linux-gnu/libgtest_main.a -lrt /usr/lib/x86_64-linux-gnu/libgtest.a
+/usr/bin/ld: ../src/daemon/libdlt_daemon.so: undefined reference to `sd_listen_fds_with_names'
+---
+Upstream-Status: Pending
+
+ tests/CMakeLists.txt | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 579d7308..3155ca9a 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -21,8 +21,16 @@ else()
+ set(LIBRARIES socket)
+ endif()
+
++if(WITH_SYSTEMD_JOURNAL)
++ if(SYSTEMD_VERSION LESS 209)
++ set(SYSTEMD_LIBS systemd-journal systemd-id128)
++ else(SYSTEMD_VERSION LESS 209)
++ set(SYSTEMD_LIBS systemd)
++ endif(SYSTEMD_VERSION LESS 209)
++endif(WITH_SYSTEMD_JOURNAL)
++
+ set(DLT_LIBRARIES dlt ${GTEST_LIBS} ${LIBRARIES})
+-set(DLT_DAEMON_LIBRARIES dlt_daemon ${GTEST_LIBS} ${LIBRARIES})
++set(DLT_DAEMON_LIBRARIES dlt_daemon ${GTEST_LIBS} ${LIBRARIES} ${SYSTEMD_LIBS})
+ set(DLT_CONTROL_LIBRARIES dlt dlt_control_common_lib ${GTEST_LIBS})
+
+ #Receiver used for QTs. add_test() is not required
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/504.patch b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/504.patch
new file mode 100644
index 0000000000..3290d1108c
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon/504.patch
@@ -0,0 +1,34 @@
+Bug: https://bugs.debian.org/1041124
+From 3f8bc3343983697531d52918fb6cdba19593f3a8 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Sat, 15 Jul 2023 11:31:55 +0200
+Subject: [PATCH] Update CMakeLists.txt: set required std version to gnu++14
+
+New googletest 1.13.0 defaults to gnu++14, so makes this package FTBFS when building testsuite with this error:
+
+In file included from /usr/include/gtest/gtest-message.h:57,
+ from /usr/include/gtest/gtest-assertion-result.h:46,
+ from /usr/include/gtest/gtest.h:64,
+ from /build/1st/dlt-daemon-2.18.9/tests/gtest_dlt_user.cpp:27:
+/usr/include/gtest/internal/gtest-port.h:270:2: error: #error C++ versions less than C++14 are not supported.
+ 270 | #error C++ versions less than C++14 are not supported.
+ | ^~~~~
+
+Thanks Adrian Bunk <bunk@debian.org> for the report and the fix!
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 014fc3bb..b2e056db 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -213,7 +213,7 @@ endif()
+
+ add_compile_options(
+ $<$<COMPILE_LANGUAGE:C>:-std=gnu99>
+- $<$<COMPILE_LANGUAGE:CXX>:-std=gnu++11>
++ $<$<COMPILE_LANGUAGE:CXX>:-std=gnu++14>
+ -Wall
+ -Wextra
+ # -pedantic
diff --git a/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb
new file mode 100644
index 0000000000..2d6d1879a7
--- /dev/null
+++ b/meta-oe/recipes-extended/dlt-daemon/dlt-daemon_2.18.9.bb
@@ -0,0 +1,71 @@
+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://481.patch \
+ file://482.patch \
+ file://504.patch \
+ "
+SRCREV = "9a2312d3512a27620d41b9a325338b6e7b3d42de"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', ' systemd systemd-watchdog systemd-journal dlt-examples dlt-adaptor dlt-adaptor-stdin 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-stdin] = "-DWITH_DLT_ADAPTOR_STDIN=ON,-DWITH_DLT_ADAPTOR_STDIN=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
new file mode 100644
index 0000000000..28db39ac20
--- /dev/null
+++ b/meta-oe/recipes-extended/docopt.cpp/docopt.cpp_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "C++11 port of docopt command-line interface description language and parser"
+
+DESCRIPTION = "docopt is library that lets you define a command line interface with the \
+utility argument syntax that has been used by command line utilities for \
+decades (formalized in POSIX.1-2017). From the description, docopt \
+automatically generates a parser for the command line arguments."
+
+HOMEPAGE = "https://github.com/docopt/docopt.cpp"
+
+LICENSE = "MIT | BSL-1.0"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE-Boost-1.0;md5=e4224ccaecb14d942c71d31bef20d78c \
+ file://LICENSE-MIT;md5=4b242fd9ef20207e18286d73da8a6677 \
+"
+
+DEPENDS = "boost"
+SRCREV = "42ebcec9dc2c99a1b3a4542787572045763ad196"
+PV = "0.6.3+git${SRCPV}"
+
+SRC_URI = "\
+ git://github.com/docopt/docopt.cpp.git;protocol=https;branch=master \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-extended/duktape/duktape_2.7.0.bb b/meta-oe/recipes-extended/duktape/duktape_2.7.0.bb
new file mode 100644
index 0000000000..22b6c782a6
--- /dev/null
+++ b/meta-oe/recipes-extended/duktape/duktape_2.7.0.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Duktape embeddable Javascript engine"
+DESCRIPTION = "Duktape is an embeddable Javascript engine, with a focus on portability and compact footprint."
+HOMEPAGE = "https://duktape.org"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b7825df97b52f926fc71300f7880408"
+
+SRC_URI = "https://duktape.org/duktape-${PV}.tar.xz \
+ file://run-ptest \
+ "
+inherit ptest
+
+SRC_URI[sha256sum] = "90f8d2fa8b5567c6899830ddef2c03f3c27960b11aca222fa17aa7ac613c2890"
+
+EXTRA_OEMAKE = "INSTALL_PREFIX='${prefix}' DESTDIR='${D}' LIBDIR='/${baselib}'"
+
+do_compile () {
+ oe_runmake -f Makefile.sharedlibrary INSTALL_PREFIX="${prefix}" DESTDIR="${D}"
+}
+
+do_compile_ptest() {
+ oe_runmake -f Makefile.hello INSTALL_PREFIX="${prefix}" DESTDIR="${D}"
+ oe_runmake -f Makefile.eval INSTALL_PREFIX="${prefix}" DESTDIR="${D}"
+ oe_runmake -f Makefile.eventloop INSTALL_PREFIX="${prefix}" DESTDIR="${D}"
+}
+
+do_install () {
+ oe_runmake -f Makefile.sharedlibrary INSTALL_PREFIX="${prefix}" DESTDIR="${D}" install
+ # libduktaped is identical to libduktape but has an hard-coded -g build flags, remove it
+ rm -f ${D}${libdir}/libduktaped.so*
+}
+
+do_install_ptest() {
+ install -m 0755 "${WORKDIR}/duktape-2.7.0/hello" "${D}${PTEST_PATH}"
+ install -m 0755 "${WORKDIR}/duktape-2.7.0/eval" "${D}${PTEST_PATH}"
+ install -m 0755 "${WORKDIR}/duktape-2.7.0/evloop" "${D}${PTEST_PATH}"
+ install -m 0755 "${WORKDIR}/duktape-2.7.0/examples/eventloop/timer-test.js" "${D}${PTEST_PATH}"
+ install -m 0755 "${WORKDIR}/duktape-2.7.0/examples/eventloop/ecma_eventloop.js" "${D}${PTEST_PATH}"
+}
+
+RDEPENDS:${PN}-ptest += "make"
diff --git a/meta-oe/recipes-extended/duktape/files/run-ptest b/meta-oe/recipes-extended/duktape/files/run-ptest
new file mode 100644
index 0000000000..852fb15de4
--- /dev/null
+++ b/meta-oe/recipes-extended/duktape/files/run-ptest
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+./hello &> $test.output 2>&1
+out="Hello world!"
+
+if grep -i "$out" $test.output 2>&1 ; then
+ echo "PASS: Hello duktape"
+else
+ echo "FAIL: Hello duktape"
+fi
+rm -f $test.output
+
+./eval "print('Hello world!'); 123;" > out.log
+
+sed -n '2p' out.log > eval.log
+sed -n '3p' out.log >> eval.log
+
+if grep -w 'Hello world!\|123' eval.log 2>&1; then
+ echo "PASS: eval duktape"
+else
+ echo "FAIL: eval duktape"
+fi
+rm -f eval.log out.log
+
+./evloop timer-test.js > evloop.log 2>&1
+
+if grep -i "no active timers and no sockets to poll" evloop.log 2>&1; then
+ echo "PASS: evloop duktape"
+else
+ echo "FAIL: evloop duktape"
+fi
+rm -f evloop.log
diff --git a/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.0.bb b/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.0.bb
deleted file mode 100644
index e1a6d9508b..0000000000
--- a/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Simple wrapper script which proxies signals to a child"
-HOMEPAGE = "https://github.com/Yelp/dumb-init/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5940d39995ea6857d01b8227109c2e9c"
-
-SRC_URI = "https://github.com/Yelp/dumb-init/archive/v${PV}.tar.gz"
-SRC_URI[md5sum] = "4eb7f43d7823686723ff7ac1bad097cb"
-SRC_URI[sha256sum] = "74486997321bd939cad2ee6af030f481d39751bc9aa0ece84ed55f864e309a3f"
-
-EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS} ${LDFLAGS}'"
-
-do_install() {
- install -d ${D}${base_sbindir}
- install ${S}/dumb-init ${D}${base_sbindir}/
-}
diff --git a/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb b/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb
new file mode 100644
index 0000000000..310081b822
--- /dev/null
+++ b/meta-oe/recipes-extended/dumb-init/dumb-init_1.2.5.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Simple wrapper script which proxies signals to a child"
+HOMEPAGE = "https://github.com/Yelp/dumb-init/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5940d39995ea6857d01b8227109c2e9c"
+
+SRCREV = "89c1502b9d40b5cb4a844498b14d74ba1dd559bf"
+SRC_URI = "git://github.com/Yelp/dumb-init;branch=master;protocol=https"
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "CC='${CC}' CFLAGS='${CFLAGS} ${LDFLAGS}'"
+
+do_install() {
+ install -d ${D}${base_sbindir}
+ install ${S}/dumb-init ${D}${base_sbindir}/
+}
diff --git a/meta-oe/recipes-extended/enscript/enscript/0001-Fix-builds-with-recent-gettext.patch b/meta-oe/recipes-extended/enscript/enscript/0001-Fix-builds-with-recent-gettext.patch
new file mode 100644
index 0000000000..ecfafce1a7
--- /dev/null
+++ b/meta-oe/recipes-extended/enscript/enscript/0001-Fix-builds-with-recent-gettext.patch
@@ -0,0 +1,24 @@
+From 771cd2a12db8b8c9a558f1a04958df8ed614f2e0 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 20 Dec 2019 14:06:50 +0100
+Subject: [PATCH] Fix builds with recent gettext
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index dedabd6..8833ac9 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -22,7 +22,7 @@
+ # along with Enscript. If not, see <http://www.gnu.org/licenses/>.
+ #
+
+-SUBDIRS = intl compat afm afmlib lib scripts src po states docs w32
++SUBDIRS = compat afm afmlib lib scripts src po states docs w32
+
+ EXTRA_DIST = README.ESCAPES README.DOS ascii.txt \
+ asciifise.txt asciidkno.txt 88591.txt 88592.txt 88593.txt 88594.txt \
diff --git a/meta-oe/recipes-extended/enscript/enscript/0001-getopt-Include-string.h-for-strcmp-stcncmp-functions.patch b/meta-oe/recipes-extended/enscript/enscript/0001-getopt-Include-string.h-for-strcmp-stcncmp-functions.patch
new file mode 100644
index 0000000000..a080b3aef7
--- /dev/null
+++ b/meta-oe/recipes-extended/enscript/enscript/0001-getopt-Include-string.h-for-strcmp-stcncmp-functions.patch
@@ -0,0 +1,27 @@
+From faec0206611f8ea4ca6f70987866077ac8c3c6c1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 21:24:27 -0700
+Subject: [PATCH] getopt: Include string.h for strcmp/stcncmp functions
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ compat/getopt.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/compat/getopt.c b/compat/getopt.c
+index 752f28a..9b984b4 100644
+--- a/compat/getopt.c
++++ b/compat/getopt.c
+@@ -43,6 +43,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <string.h> /* strcmp */
+
+ /* Comment out all this code if we are using the GNU C Library, and are not
+ actually compiling the library itself. This code is part of the GNU C
+--
+2.37.3
+
diff --git a/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb b/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
index 2b6d14e6c1..9490ee09dc 100644
--- a/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
+++ b/meta-oe/recipes-extended/enscript/enscript_1.6.6.bb
@@ -7,12 +7,14 @@ customizing printouts."
HOMEPAGE = "http://www.gnu.org/software/enscript/"
SECTION = "console/utils"
-LICENSE = "GPLv3+"
+LICENSE = "GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
file://enscript-autoconf.patch \
-"
+ file://0001-Fix-builds-with-recent-gettext.patch \
+ file://0001-getopt-Include-string.h-for-strcmp-stcncmp-functions.patch \
+ "
inherit autotools gettext
@@ -21,4 +23,4 @@ EXTRA_OECONF += "PERL='${USRBINPATH}/env perl'"
SRC_URI[md5sum] = "3acc242b829adacabcaf28533f049afd"
SRC_URI[sha256sum] = "6d56bada6934d055b34b6c90399aa85975e66457ac5bf513427ae7fc77f5c0bb"
-RDEPENDS_${PN} = "perl"
+RDEPENDS:${PN} = "perl"
diff --git a/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.3.bb b/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.3.bb
new file mode 100644
index 0000000000..71744026da
--- /dev/null
+++ b/meta-oe/recipes-extended/etcd/etcd-cpp-apiv3_0.14.3.bb
@@ -0,0 +1,20 @@
+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"
+SRCREV = "5e2884f36276e44f683fa02fca39807716fdbc16"
+
+inherit cmake
+
+DEPENDS += "grpc protobuf cpprest grpc-native protobuf-native"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECONF += "-DCPPREST_EXCLUDE_WEBSOCKETS=ON"
+
+INSANE_SKIP:${PN}:append = " ldflags"
+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/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch b/meta-oe/recipes-extended/figlet/figlet/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch
new file mode 100644
index 0000000000..4429a474dc
--- /dev/null
+++ b/meta-oe/recipes-extended/figlet/figlet/0001-build-add-autotools-support-to-allow-easy-cross-comp.patch
@@ -0,0 +1,252 @@
+From 902b022c03ad6769abe4d7e6fde1df7a883857ef Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Date: Tue, 24 Mar 2020 14:44:54 +0100
+Subject: [PATCH] build: add autotools support to allow easy cross-compilation
+
+Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Upstream-Status: Inappropriate [upstream uses a custom Makefile and builds on
+ linux as well as Windows. I'm not sure autotools
+ would be preferred as a general solution but it
+ works well enough for yocto.]
+---
+ Makefile | 122 ---------------------------------------------------
+ Makefile.am | 67 ++++++++++++++++++++++++++++
+ configure.ac | 23 ++++++++++
+ 3 files changed, 90 insertions(+), 122 deletions(-)
+ delete mode 100644 Makefile
+ create mode 100644 Makefile.am
+ create mode 100644 configure.ac
+
+diff --git a/Makefile b/Makefile
+deleted file mode 100644
+index e92bcaf..0000000
+--- a/Makefile
++++ /dev/null
+@@ -1,122 +0,0 @@
+-# Makefile for figlet version 2.2.4 (26 Jan 2011)
+-# adapted from Makefile for figlet version 2.2.2 (05 July 2005)
+-# adapted from Makefile for figlet version 2.2 (15 Oct 1996)
+-# Copyright 1993, 1994,1995 Glenn Chappell and Ian Chai
+-# Copyright 1996, 1997, 1998, 1999, 2000, 2001 John Cowan
+-# Copyright 2002 Christiaan Keet
+-# Copyright 2011 Claudio Matsuoka
+-
+-# Please notice that to follow modern standards and ease third-party
+-# package creation, binaries are now installed under BINDIR, and DESTDIR
+-# is reserved for the installation pathname prefix.
+-#
+-# Please make sure BINDIR, MANDIR, DEFAULTFONTDIR and
+-# DEFAULTFONTFILE are defined to reflect the situation
+-# on your computer. See README for details.
+-
+-# Don't change this even if your shell is different. The only reason
+-# for changing this is if sh is not in the same place.
+-SHELL = /bin/sh
+-
+-# The C compiler and linker to use
+-CC = gcc
+-CFLAGS = -g -O2 -Wall -Wno-unused-value
+-LD = gcc
+-LDFLAGS =
+-
+-# Feature flags:
+-# define TLF_FONTS to use TOIlet TLF fonts
+-XCFLAGS = -DTLF_FONTS
+-
+-# Where to install files
+-prefix = /usr/local
+-
+-# Where the executables should be put
+-BINDIR = $(prefix)/bin
+-
+-# Where the man page should be put
+-MANDIR = $(prefix)/man
+-
+-# Where figlet will search first for fonts (the ".flf" files).
+-DEFAULTFONTDIR = $(prefix)/share/figlet
+-# Use this definition if you can't put things in $(prefix)/share/figlet
+-#DEFAULTFONTDIR = fonts
+-
+-# The filename of the font to be used if no other is specified,
+-# without suffix.(standard is recommended, but any other can be
+-# used). This font file should reside in the directory specified
+-# by DEFAULTFONTDIR.
+-DEFAULTFONTFILE = standard
+-
+-##
+-## END OF CONFIGURATION SECTION
+-##
+-
+-VERSION = 2.2.5
+-DIST = figlet-$(VERSION)
+-OBJS = figlet.o zipio.o crc.o inflate.o utf8.o
+-BINS = figlet chkfont figlist showfigfonts
+-MANUAL = figlet.6 chkfont.6 figlist.6 showfigfonts.6
+-DFILES = Makefile Makefile.tc $(MANUAL) $(OBJS:.o=.c) chkfont.c getopt.c \
+- figlist showfigfonts CHANGES FAQ README LICENSE figfont.txt \
+- crc.h inflate.h zipio.h utf8.h run-tests.sh figmagic
+-
+-.c.o:
+- $(CC) -c $(CFLAGS) $(XCFLAGS) -DDEFAULTFONTDIR=\"$(DEFAULTFONTDIR)\" \
+- -DDEFAULTFONTFILE=\"$(DEFAULTFONTFILE)\" -o $*.o $<
+-
+-all: $(BINS)
+-
+-figlet: $(OBJS)
+- $(LD) $(LDFLAGS) -o $@ $(OBJS)
+-
+-chkfont: chkfont.o
+- $(LD) $(LDFLAGS) -o $@ chkfont.o
+-
+-clean:
+- rm -f *.o *~ core figlet chkfont
+-
+-install: all
+- mkdir -p $(DESTDIR)$(BINDIR)
+- mkdir -p $(DESTDIR)$(MANDIR)/man6
+- mkdir -p $(DESTDIR)$(DEFAULTFONTDIR)
+- cp $(BINS) $(DESTDIR)$(BINDIR)
+- cp $(MANUAL) $(DESTDIR)$(MANDIR)/man6
+- cp fonts/*.flf $(DESTDIR)$(DEFAULTFONTDIR)
+- cp fonts/*.flc $(DESTDIR)$(DEFAULTFONTDIR)
+-
+-dist:
+- rm -Rf $(DIST) $(DIST).tar.gz
+- mkdir $(DIST)/
+- cp $(DFILES) $(DIST)/
+- mkdir $(DIST)/fonts
+- cp fonts/*.fl[fc] $(DIST)/fonts
+- mkdir $(DIST)/tests
+- cp tests/*txt tests/emboss.tlf $(DIST)/tests
+- tar cvf - $(DIST) | gzip -9c > $(DIST).tar.gz
+- rm -Rf $(DIST)
+- tar xf $(DIST).tar.gz
+- (cd $(DIST); make all check vercheck)
+- @rm -Rf $(DIST)
+- @echo
+- @ls -l $(DIST).tar.gz
+-
+-check:
+- @echo "Run tests in `pwd`"
+- @./run-tests.sh fonts
+- @echo
+-
+-vercheck:
+- @printf "Infocode: "; ./figlet -I1
+- @./figlet -v|sed -n '/Version/s/.*\(Version\)/\1/p'
+- @printf "README: "; head -1 < README|sed 's/.*) //'
+- @printf "FAQ: "; grep latest FAQ|sed 's/ and can.*//'
+- @grep -h "^\.TH" *.6
+-
+-$(OBJS) chkfont.o getopt.o: Makefile
+-chkfont.o: chkfont.c
+-crc.o: crc.c crc.h
+-figlet.o: figlet.c zipio.h
+-getopt.o: getopt.c
+-inflate.o: inflate.c inflate.h
+-zipio.o: zipio.c zipio.h inflate.h crc.h
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 0000000..7feb42c
+--- /dev/null
++++ b/Makefile.am
+@@ -0,0 +1,67 @@
++AM_CFLAGS = -include $(top_builddir)/config.h -Wall -Wextra -g
++
++bin_PROGRAMS = figlet chkfont
++dist_bin_SCRIPTS = figlist showfigfonts
++
++figlet_SOURCES = figlet.c zipio.c crc.c inflate.c utf8.c
++chkfont_SOURCES = chkfont.c
++
++fontdir = $(prefix)/share/figlet
++dist_font_DATA = \
++ fonts/646-ca2.flc \
++ fonts/646-fr.flc \
++ fonts/646-no.flc \
++ fonts/8859-4.flc \
++ fonts/bubble.flf \
++ fonts/lean.flf \
++ fonts/smscript.flf \
++ fonts/utf8.flc \
++ fonts/646-ca.flc \
++ fonts/646-gb.flc \
++ fonts/646-pt2.flc \
++ fonts/8859-5.flc \
++ fonts/digital.flf \
++ fonts/mini.flf \
++ fonts/smshadow.flf \
++ fonts/646-cn.flc \
++ fonts/646-hu.flc \
++ fonts/646-pt.flc \
++ fonts/8859-7.flc \
++ fonts/frango.flc \
++ fonts/mnemonic.flf \
++ fonts/smslant.flf \
++ fonts/646-cu.flc \
++ fonts/646-irv.flc \
++ fonts/646-se2.flc \
++ fonts/8859-8.flc \
++ fonts/hz.flc \
++ fonts/moscow.flc \
++ fonts/standard.flf \
++ fonts/646-de.flc \
++ fonts/646-it.flc \
++ fonts/646-se.flc \
++ fonts/8859-9.flc \
++ fonts/ilhebrew.flc \
++ fonts/script.flf \
++ fonts/term.flf \
++ fonts/646-dk.flc \
++ fonts/646-jp.flc \
++ fonts/646-yu.flc \
++ fonts/banner.flf \
++ fonts/ivrit.flf \
++ fonts/shadow.flf \
++ fonts/upper.flc \
++ fonts/646-es2.flc \
++ fonts/646-kr.flc \
++ fonts/8859-2.flc \
++ fonts/big.flf \
++ fonts/jis0201.flc \
++ fonts/slant.flf \
++ fonts/ushebrew.flc \
++ fonts/646-es.flc \
++ fonts/646-no2.flc \
++ fonts/8859-3.flc \
++ fonts/block.flf \
++ fonts/koi8r.flc \
++ fonts/small.flf \
++ fonts/uskata.flc
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 0000000..72154e2
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,23 @@
++AC_PREREQ(2.61)
++
++AC_INIT([figlet], 2.2.5)
++
++AC_CONFIG_AUX_DIR([autostuff])
++AC_CONFIG_MACRO_DIRS([m4])
++AM_INIT_AUTOMAKE([foreign subdir-objects])
++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
++
++AC_CONFIG_SRCDIR([figlet.c])
++AC_CONFIG_HEADER([config.h])
++
++AC_DEFINE([DEFAULTFONTDIR], ["/usr/share/figlet"], [Default font directory])
++AC_DEFINE([DEFAULTFONTFILE], ["standard"], [Default font])
++
++AM_PROG_AR
++AC_PROG_CC
++AC_PROG_INSTALL
++AC_HEADER_STDC
++
++AC_CONFIG_FILES([Makefile])
++
++AC_OUTPUT
+--
+2.25.0
+
diff --git a/meta-oe/recipes-extended/figlet/figlet_git.bb b/meta-oe/recipes-extended/figlet/figlet_git.bb
new file mode 100644
index 0000000000..61b050aac6
--- /dev/null
+++ b/meta-oe/recipes-extended/figlet/figlet_git.bb
@@ -0,0 +1,15 @@
+SUMMARY = "FIGlet is a program that creates large characters out of ordinary screen characters"
+HOMEPAGE = "http://www.figlet.org/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1688bcd97b27704f1afcac7336409857"
+
+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}"
+
+inherit autotools
+
+BBCLASSEXTEND = "native nativesdk"
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..c1f2cca5c6
--- /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: Pending
+
+ 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_1.15.4.bb b/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
new file mode 100644
index 0000000000..163d732a86
--- /dev/null
+++ b/meta-oe/recipes-extended/flatpak/flatpak_1.15.4.bb
@@ -0,0 +1,70 @@
+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;nobranch=1 \
+ file://0001-flatpak-pc-add-pc_sysrootdir.patch \
+"
+
+SRCREV = "e936e3100d406c50ba49f3ad6a0ecae455345ec0"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig gettext systemd gobject-introspection python3native useradd mime features_check
+
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+DEPENDS = " \
+ appstream \
+ bison-native \
+ curl \
+ dconf \
+ fuse3 \
+ gdk-pixbuf \
+ glib-2.0 \
+ gpgme \
+ json-glib \
+ libarchive \
+ libcap \
+ libxml2 \
+ libxslt-native \
+ ostree \
+ polkit \
+ python3-pyparsing-native \
+ xmlto-native \
+ zstd \
+"
+
+RDEPENDS:${PN} = " \
+ bubblewrap \
+ ca-certificates \
+ dconf \
+ flatpak-xdg-utils \
+ xdg-dbus-proxy \
+"
+
+EXTRA_OEMESON += "-Dsystem_dbus_proxy=${bindir}/xdg-dbus-proxy -Dsystem_bubblewrap=${bindir}/bwrap"
+
+GIR_MESON_OPTION = ""
+
+PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false,xauth socat-native"
+PACKAGECONFIG[xauth] = "-Dxauth=enabled,-Dxauth=disabled,xauth"
+PACKAGECONFIG[seccomp] = "-Dseccomp=enabled,-Dseccomp=disabled,libseccomp"
+
+PACKAGECONFIG ?= " \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xauth', '', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'seccomp', 'seccomp', '', 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
new file mode 100644
index 0000000000..f5a1716c07
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-CMakeLists.txt-Do-not-use-private-makefile-target.patch
@@ -0,0 +1,70 @@
+From 6a704ab7bf69cd5d6970b3a7d3ae7798b26027c1 Mon Sep 17 00:00:00 2001
+From: Paulo Neves <ptsneves@gmail.com>
+Date: Thu, 28 Jul 2022 11:28:41 +0200
+Subject: [PATCH] CMakeLists.txt Do not use private makefile $< target
+
+$< is a private detail from the Makefile generated by CMakefile and
+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 [https://github.com/fluent/fluent-bit/issues/5492]
+---
+ CMakeLists.txt | 6 +-----
+ lib/chunkio/CMakeLists.txt | 7 +------
+ lib/cmetrics/CMakeLists.txt | 7 +------
+ 3 files changed, 3 insertions(+), 17 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3dba5a8..d94b988 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -46,11 +46,7 @@ else()
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
+ endif()
+
+-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
+-else()
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
+-endif()
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
+
+ if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7l")
+ set(CMAKE_C_LINK_FLAGS "${CMAKE_C_LINK_FLAGS} -latomic")
+diff --git a/lib/chunkio/CMakeLists.txt b/lib/chunkio/CMakeLists.txt
+index bbe1f39..809ea93 100644
+--- a/lib/chunkio/CMakeLists.txt
++++ b/lib/chunkio/CMakeLists.txt
+@@ -14,12 +14,7 @@ else()
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall ")
+ endif()
+
+-# Set __FILENAME__
+-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
+-else()
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
+-endif()
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
+
+ include(cmake/macros.cmake)
+
+diff --git a/lib/cmetrics/CMakeLists.txt b/lib/cmetrics/CMakeLists.txt
+index 60e8774..e3d6149 100644
+--- a/lib/cmetrics/CMakeLists.txt
++++ b/lib/cmetrics/CMakeLists.txt
+@@ -34,12 +34,7 @@ set(CMT_VERSION_MINOR 3)
+ set(CMT_VERSION_PATCH 5)
+ set(CMT_VERSION_STR "${CMT_VERSION_MAJOR}.${CMT_VERSION_MINOR}.${CMT_VERSION_PATCH}")
+
+-# Define __FILENAME__ consistently across Operating Systems
+-if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__='\"$(subst ${CMAKE_SOURCE_DIR}/,,$(abspath $<))\"'")
+-else()
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
+-endif()
++set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D__FILENAME__=__FILE__")
+
+ # Configuration options
+ option(CMT_DEV "Enable development mode" No)
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-Use-posix-strerror_r-with-musl.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-Use-posix-strerror_r-with-musl.patch
new file mode 100644
index 0000000000..8d89e4df35
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-Use-posix-strerror_r-with-musl.patch
@@ -0,0 +1,34 @@
+From f645128082117a0152a95b3dccd869a184b7513f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 10 Aug 2022 01:23:48 -0700
+Subject: [PATCH 1/2] Use posix strerror_r with musl
+
+Default with glibc is GNU extention of strerror_r
+where as musl uses posix variant, call that out
+
+Upstream-Status: Inappropriate [Need wider porting beyond linux/musl/glibc]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/flb_network.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/flb_network.c b/src/flb_network.c
+index 992eb1d..5d7a337 100644
+--- a/src/flb_network.c
++++ b/src/flb_network.c
+@@ -506,7 +506,12 @@ static int net_connect_async(int fd,
+ }
+
+ /* Connection is broken, not much to do here */
++#ifdef __GLIBC__
+ str = strerror_r(error, so_error_buf, sizeof(so_error_buf));
++#else
++ strerror_r(error, so_error_buf, sizeof(so_error_buf));
++ str = so_error_buf;
++#endif
+ flb_error("[net] TCP connection failed: %s:%i (%s)",
+ u->tcp_host, u->tcp_port, str);
+ return -1;
+--
+2.37.1
+
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-fluent-bit-shared-Link-with-lpthread.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-fluent-bit-shared-Link-with-lpthread.patch
deleted file mode 100644
index e9eed24b32..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-fluent-bit-shared-Link-with-lpthread.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 62fa9bceb15a9d160dd5d624a6d46907c1019c5c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 8 Sep 2017 17:02:55 -0700
-Subject: [PATCH] fluent-bit-shared: Link with -lpthread
-
-This fixes a reference to pthread_atfork in libfluent-bit.so
-otherwise we get undefined reference to the symbols in binaries
-which are linked with libfluent-bit.so
-
-Fixes errors like
-arm-bec-linux-gnueabi-ld: ../../bin/hello_world: hidden symbol `pthread_atfork' in /mnt/a/oe/build/tmp/work/cortexa7t2hf-neon-vfpv4-bec-linux-gnueabi/fluentbit/0.12.1-r0/recipe-sysroot/usr/lib/libpthread_nonshared.a(pthread_atfork.oS) is referenced by DSO
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- src/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 425a246..1264e59 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -168,7 +168,7 @@ set(FLB_DEPS
- # Shared Library
- if(NOT FLB_WITHOUT_SHARED_LIB)
- add_library(fluent-bit-shared SHARED ${src})
-- target_link_libraries(fluent-bit-shared ${FLB_DEPS})
-+ target_link_libraries(fluent-bit-shared ${FLB_DEPS} -lpthread)
- set_target_properties(fluent-bit-shared
- PROPERTIES OUTPUT_NAME fluent-bit)
-
---
-2.14.1
-
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch
new file mode 100644
index 0000000000..e70664031b
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch
@@ -0,0 +1,28 @@
+From 0d22024c5defba7007e3e633753790e20209c6f6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Aug 2022 09:59:41 -0700
+Subject: [PATCH 1/5] monkey: Define _GNU_SOURCE for memmem API check
+
+This define is necessary to get this API on glibc based systems
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/monkey/mk_core/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/monkey/mk_core/CMakeLists.txt b/lib/monkey/mk_core/CMakeLists.txt
+index 0e74f8d..739fff3 100644
+--- a/lib/monkey/mk_core/CMakeLists.txt
++++ b/lib/monkey/mk_core/CMakeLists.txt
+@@ -62,6 +62,7 @@ set(src "${src}"
+ )
+
+ check_c_source_compiles("
++ #define _GNU_SOURCE
+ #include <string.h>
+ int main() {
+ char haystack[] = \"1234\";
+--
+2.37.1
+
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
new file mode 100644
index 0000000000..bdcc534964
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-chunkio-Link-with-fts-library-with-musl.patch
@@ -0,0 +1,30 @@
+From 63dbbad5978e5f5b0e7d42614999cb6b4ebcce10 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 10 Aug 2022 01:27:16 -0700
+Subject: [PATCH 2/2] chunkio: Link with fts library with musl
+
+Fixes
+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/lib/chunkio/src/CMakeLists.txt b/lib/chunkio/src/CMakeLists.txt
+index a4fc2d3..4244eb8 100644
+--- a/lib/chunkio/src/CMakeLists.txt
++++ b/lib/chunkio/src/CMakeLists.txt
+@@ -13,6 +13,7 @@ set(src
+ )
+
+ set(libs cio-crc32)
++set(libs ${libs} fts)
+
+ if(${CMAKE_SYSTEM_NAME} MATCHES "Windows")
+ set(src
+--
+2.37.1
+
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
new file mode 100644
index 0000000000..425b838b78
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-flb_info.h.in-Do-not-hardcode-compilation-directorie.patch
@@ -0,0 +1,28 @@
+From 71dab751a27a2e582b711de22873065dd28f4b65 Mon Sep 17 00:00:00 2001
+From: Paulo Neves <ptsneves@gmail.com>
+Date: Thu, 28 Jul 2022 11:42:31 +0200
+Subject: [PATCH] flb_info.h.in: Do not hardcode compilation directories
+
+Including the source dir in the header makes the header not
+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/include/fluent-bit/flb_info.h.in b/include/fluent-bit/flb_info.h.in
+index a89485c..2579afc 100644
+--- a/include/fluent-bit/flb_info.h.in
++++ b/include/fluent-bit/flb_info.h.in
+@@ -23,7 +23,7 @@
+ #define STR_HELPER(s) #s
+ #define STR(s) STR_HELPER(s)
+
+-#define FLB_SOURCE_DIR "@CMAKE_SOURCE_DIR@"
++#define FLB_SOURCE_DIR "@CMAKE_DEBUG_SRCDIR@"
+
+ /* General flags set by CMakeLists.txt */
+ @FLB_BUILD_FLAGS@
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
new file mode 100644
index 0000000000..d911420df2
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0002-mbedtls-Remove-unused-variable.patch
@@ -0,0 +1,40 @@
+From c7b969d1a2a6b61bd179214ee2516b7b6cd55b27 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Aug 2022 11:21:57 -0700
+Subject: [PATCH 2/5] mbedtls: Remove unused variable
+
+Fixes
+library/bignum.c:1395:29: error: variable 't' set but not used [-Werror,-Wunused-but-set-variable]
+
+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/lib/mbedtls-2.28.0/library/bignum.c b/lib/mbedtls-2.28.0/library/bignum.c
+index 62e7f76..9c256ae 100644
+--- a/lib/mbedtls-2.28.0/library/bignum.c
++++ b/lib/mbedtls-2.28.0/library/bignum.c
+@@ -1392,7 +1392,7 @@ void mpi_mul_hlp( size_t i,
+ 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 )
+@@ -1443,8 +1443,6 @@ void mpi_mul_hlp( size_t i,
+ }
+ #endif /* MULADDC_HUIT */
+
+- t++;
+-
+ while( c != 0 )
+ {
+ *d += c; c = ( *d < c ); d++;
+--
+2.37.1
+
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
new file mode 100644
index 0000000000..473ebaf7d4
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Disable-documentation-warning-as-error-with-.patch
@@ -0,0 +1,32 @@
+From 2d12629f768d2459b1fc8a8ca0c38024d84bc195 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Aug 2022 11:32:12 -0700
+Subject: [PATCH 3/5] mbedtls: Disable documentation warning as error with
+ clang
+
+There are shortcomings with doxygen info which clang-15+ flags, dont
+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/lib/mbedtls-2.28.0/CMakeLists.txt b/lib/mbedtls-2.28.0/CMakeLists.txt
+index b33c088..c5f886f 100644
+--- a/lib/mbedtls-2.28.0/CMakeLists.txt
++++ b/lib/mbedtls-2.28.0/CMakeLists.txt
+@@ -212,7 +212,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 -Wformat=2 -Wno-format-nonliteral")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wwrite-strings -Wpointer-arith -Wimplicit-fallthrough -Wshadow -Wvla -Wformat=2 -Wno-format-nonliteral -Wno-error=documentation")
+ set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage")
+ set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O3")
+ set(CMAKE_C_FLAGS_ASANDBG "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls")
+--
+2.37.1
+
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
new file mode 100644
index 0000000000..158857ae20
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0003-mbedtls-Do-not-overwrite-CFLAGS.patch
@@ -0,0 +1,34 @@
+From 8486b912281ae85db0c9fc05bb546f16872e114c Mon Sep 17 00:00:00 2001
+From: Paulo Neves <ptsneves@gmail.com>
+Date: Thu, 28 Jul 2022 14:37:18 +0200
+Subject: [PATCH] mbedtls: Do not overwrite CFLAGS
+
+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: 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(-)
+
+--- a/lib/mbedtls-2.28.0/CMakeLists.txt
++++ b/lib/mbedtls-2.28.0/CMakeLists.txt
+@@ -204,8 +204,6 @@ if(CMAKE_COMPILER_IS_GNU)
+ if (GCC_VERSION VERSION_GREATER 7.0 OR GCC_VERSION VERSION_EQUAL 7.0)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wformat-overflow=2 -Wformat-truncation")
+ endif()
+- set(CMAKE_C_FLAGS_RELEASE "-O2")
+- set(CMAKE_C_FLAGS_DEBUG "-O0 -g3")
+ set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage")
+ set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O3")
+ set(CMAKE_C_FLAGS_ASANDBG "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls")
+@@ -215,8 +213,6 @@ 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 -Wformat=2 -Wno-format-nonliteral")
+- set(CMAKE_C_FLAGS_RELEASE "-O2")
+- set(CMAKE_C_FLAGS_DEBUG "-O0 -g3")
+ set(CMAKE_C_FLAGS_COVERAGE "-O0 -g3 --coverage")
+ set(CMAKE_C_FLAGS_ASAN "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O3")
+ set(CMAKE_C_FLAGS_ASANDBG "-fsanitize=address -fno-common -fsanitize=undefined -fno-sanitize-recover=all -O1 -g3 -fno-omit-frame-pointer -fno-optimize-sibling-calls")
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
new file mode 100644
index 0000000000..bd4276193d
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-Use-correct-type-to-store-return-from-flb_kv_item_cr.patch
@@ -0,0 +1,45 @@
+From a797b79483940ed4adcaa5fe2c40dd0487c7c2c7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Aug 2022 11:39:08 -0700
+Subject: [PATCH 4/5] Use correct type to store return from flb_kv_item_create
+
+Fix
+error: incompatible pointer to integer conversion assigning to 'int' from 'struct flb_kv *'
+
+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/plugins/out_stackdriver/stackdriver_conf.c b/plugins/out_stackdriver/stackdriver_conf.c
+index a9a8eb0..e4f969e 100644
+--- a/plugins/out_stackdriver/stackdriver_conf.c
++++ b/plugins/out_stackdriver/stackdriver_conf.c
+@@ -176,12 +176,12 @@ static int read_credentials_file(const char *cred_file, struct flb_stackdriver *
+
+ static int parse_configuration_labels(struct flb_stackdriver *ctx)
+ {
+- int ret;
+ char *p;
+ flb_sds_t key;
+ flb_sds_t val;
+ struct mk_list *head;
+ struct flb_slist_entry *entry;
++ struct flb_kv *ret;
+ msgpack_object_kv *kv = NULL;
+
+ if (ctx->labels) {
+@@ -216,7 +216,7 @@ static int parse_configuration_labels(struct flb_stackdriver *ctx)
+ flb_sds_destroy(key);
+ flb_sds_destroy(val);
+
+- if (ret == -1) {
++ if (!ret) {
+ return -1;
+ }
+ }
+--
+2.37.1
+
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
new file mode 100644
index 0000000000..f6e3dce2f3
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0004-build-Make-systemd-init-systemd-detection-contingent.patch
@@ -0,0 +1,63 @@
+From 7a792624925d46690c1f07fe4b194b5f4c510db6 Mon Sep 17 00:00:00 2001
+From: Paulo Neves <ptsneves@gmail.com>
+Date: Tue, 2 Aug 2022 09:57:05 +0200
+Subject: [PATCH 1/1] build: Make systemd init systemd detection contingent on
+ pkgconfig
+
+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 [https://github.com/fluent/fluent-bit/pull/5818]
+
+---
+ cmake/FindJournald.cmake | 4 ++++
+ src/CMakeLists.txt | 4 ++--
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/FindJournald.cmake b/cmake/FindJournald.cmake
+index f5a3a832b..9e6657a29 100644
+--- a/cmake/FindJournald.cmake
++++ b/cmake/FindJournald.cmake
+@@ -5,6 +5,8 @@
+ # JOURNALD_INCLUDE_DIR - the Journald include directory
+ # JOURNALD_LIBRARIES - Link these to use Journald
+ # JOURNALD_DEFINITIONS - Compiler switches required for using Journald
++# SYSTEMD_UNITDIR - The systemd units' directory
++#
+ # Redistribution and use is allowed according to the terms of the BSD license.
+ # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+ #
+@@ -16,7 +18,9 @@
+ # in the FIND_PATH() and FIND_LIBRARY() calls
+ find_package(PkgConfig)
+ pkg_check_modules(PC_JOURNALD QUIET systemd)
++pkg_get_variable(PC_SYSTEMD_UNITDIR systemd "systemdsystemunitdir")
+
++set(SYSTEMD_UNITDIR ${PC_SYSTEMD_UNITDIR})
+ set(JOURNALD_FOUND ${PC_JOURNALD_FOUND})
+ set(JOURNALD_DEFINITIONS ${PC_JOURNALD_CFLAGS_OTHER})
+
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 522bbf9bd..30743d8d6 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -480,13 +480,13 @@ if(FLB_BINARY)
+ endif()
+
+ # Detect init system, install upstart, systemd or init.d script
+- if(IS_DIRECTORY /lib/systemd/system)
++ if(DEFINED SYSTEMD_UNITDIR)
+ set(FLB_SYSTEMD_SCRIPT "${PROJECT_SOURCE_DIR}/init/${FLB_OUT_NAME}.service")
+ configure_file(
+ "${PROJECT_SOURCE_DIR}/init/systemd.in"
+ ${FLB_SYSTEMD_SCRIPT}
+ )
+- install(FILES ${FLB_SYSTEMD_SCRIPT} COMPONENT binary DESTINATION /lib/systemd/system)
++ 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")
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..f023ab5732
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0005-stackdriver-Fix-return-type-mismatch.patch
@@ -0,0 +1,33 @@
+From 27f0bd5a3339612e03112e6b490900a9fabc3337 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Aug 2022 11:44:25 -0700
+Subject: [PATCH 5/5] stackdriver: Fix return type mismatch
+
+Fix
+error: incompatible integer to pointer conversion returning 'int' from a function with result type 'flb_sds_t' (aka 'char *') [-Wint-conversion]
+ return -1;
+ ^~
+
+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/plugins/out_stackdriver/stackdriver.c b/plugins/out_stackdriver/stackdriver.c
+index ae66bf2..e01755c 100644
+--- a/plugins/out_stackdriver/stackdriver.c
++++ b/plugins/out_stackdriver/stackdriver.c
+@@ -2033,7 +2033,7 @@ static flb_sds_t stackdriver_format(struct flb_stackdriver *ctx,
+ flb_sds_destroy(operation_producer);
+ msgpack_unpacked_destroy(&result);
+ msgpack_sbuffer_destroy(&mp_sbuf);
+- return -1;
++ return NULL;
+ }
+
+ /* Number of parsed labels */
+--
+2.37.1
+
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
new file mode 100644
index 0000000000..c3f2574d26
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit/0006-monkey-Fix-TLS-detection-testcase.patch
@@ -0,0 +1,36 @@
+From f88d9b82e8bd8ae38fba666b5825ffb41769f81a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 9 Aug 2022 12:25:22 -0700
+Subject: [PATCH] monkey: Fix TLS detection testcase
+
+Clang15 errors out on compiling the check and disables TLS
+
+Fixes errors like
+
+error: call to undeclared function '__tls_get_addr'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+ __tls_get_addr(0);
+ ^
+
+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/lib/monkey/CMakeLists.txt b/lib/monkey/CMakeLists.txt
+index 15e62e8..96ac2bd 100644
+--- a/lib/monkey/CMakeLists.txt
++++ b/lib/monkey/CMakeLists.txt
+@@ -178,6 +178,8 @@ endif()
+ # Use old Pthread TLS
+ if(NOT MK_PTHREAD_TLS)
+ check_c_source_compiles("
++ #include <sys/types.h>
++ extern void *__tls_get_addr(size_t *v);
+ __thread int a;
+ int main() {
+ __tls_get_addr(0);
+--
+2.37.1
+
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/jemalloc.patch b/meta-oe/recipes-extended/fluentbit/fluentbit/jemalloc.patch
deleted file mode 100644
index abaf92c052..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit/jemalloc.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Add --with-jemalloc-prefix=je_ so it compiles on musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
-Index: fluent-bit-0.12.1/CMakeLists.txt
-===================================================================
---- fluent-bit-0.12.1.orig/CMakeLists.txt
-+++ fluent-bit-0.12.1/CMakeLists.txt
-@@ -325,7 +325,7 @@ if(FLB_JEMALLOC AND ${CMAKE_SYSTEM_NAME}
- # Link to Jemalloc as an external dependency
- ExternalProject_Add(jemalloc
- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc
-- CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc/configure ${AUTOCONF_HOST_OPT} --with-lg-quantum=3 --enable-cc-silence --prefix=<INSTALL_DIR>
-+ CONFIGURE_COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/lib/jemalloc/configure --with-jemalloc-prefix=je_ ${AUTOCONF_HOST_OPT} --with-lg-quantum=3 --enable-cc-silence --prefix=<INSTALL_DIR>
- CFLAGS=-std=gnu99\ -Wall\ -pipe\ -g3\ -O3\ -funroll-loops
- BUILD_COMMAND ${MAKE}
- INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb
deleted file mode 100644
index 99f680f9ab..0000000000
--- a/meta-oe/recipes-extended/fluentbit/fluentbit_0.12.1.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Fast data collector for Embedded Linux"
-HOMEPAGE = "http://fluentbit.io"
-BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
-
-SRC_URI = "http://fluentbit.io/releases/0.12/fluent-bit-${PV}.tar.gz \
- file://jemalloc.patch \
- file://0001-fluent-bit-shared-Link-with-lpthread.patch \
- "
-SRC_URI[md5sum] = "6b4472cb7e7213a01425af9121576827"
-SRC_URI[sha256sum] = "8ec05365baea723033165687611b3bba3e67a77dce72e282e9f000f7acf9e37b"
-
-S = "${WORKDIR}/fluent-bit-${PV}"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-
-DEPENDS = "zlib"
-INSANE_SKIP_${PN}-dev += "dev-elf"
-
-inherit cmake systemd
-
-EXTRA_OECMAKE = "-DGNU_HOST=${HOST_SYS} -DFLB_ALL=ON -DFLB_TD=1"
-
-# With Ninja it fails with:
-# ninja: error: build.ninja:134: bad $-escape (literal $ must be written as $$)
-OECMAKE_GENERATOR = "Unix Makefiles"
-
-SYSTEMD_SERVICE_${PN} = "td-agent-bit.service"
-
-TARGET_CC_ARCH_append = " ${SELECTED_OPTIMIZATION}"
diff --git a/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb b/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb
new file mode 100644
index 0000000000..26238e51f1
--- /dev/null
+++ b/meta-oe/recipes-extended/fluentbit/fluentbit_1.9.7.bb
@@ -0,0 +1,92 @@
+SUMMARY = "Fast Log processor and Forwarder"
+DESCRIPTION = "Fluent Bit is a data collector, processor and \
+forwarder for Linux. It supports several input sources and \
+backends (destinations) for your data. \
+"
+
+HOMEPAGE = "http://fluentbit.io"
+BUGTRACKER = "https://github.com/fluent/fluent-bit/issues"
+
+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};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 \
+ file://0004-build-Make-systemd-init-systemd-detection-contingent.patch \
+ file://0001-monkey-Define-_GNU_SOURCE-for-memmem-API-check.patch \
+ file://0002-mbedtls-Remove-unused-variable.patch \
+ file://0003-mbedtls-Disable-documentation-warning-as-error-with-.patch \
+ 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 = "\
+ file://0001-Use-posix-strerror_r-with-musl.patch \
+ file://0002-chunkio-Link-with-fts-library-with-musl.patch \
+ "
+SRC_URI[sha256sum] = "8ca2ac081d7eee717483c06608adcb5e3d5373e182ad87dba21a23f8278c6540"
+S = "${WORKDIR}/fluent-bit-${PV}"
+
+DEPENDS = "zlib bison-native flex-native openssl"
+DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[yaml] = "-DFLB_CONFIG_YAML=On,-DFLB_CONFIG_YAML=Off,libyaml"
+PACKAGECONFIG[kafka] = "-DFLB_OUT_KAFKA=On,-DFLB_OUT_KAFKA=Off,librdkafka"
+PACKAGECONFIG[examples] = "-DFLB_EXAMPLES=On,-DFLB_EXAMPLES=Off"
+PACKAGECONFIG[jemalloc] = "-DFLB_JEMALLOC=On,-DFLB_JEMALLOC=Off,jemalloc"
+#TODO add more fluentbit options to PACKAGECONFIG[]
+
+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'
+}
+
+PACKAGECONFIG ?= "yaml"
+
+LTO = ""
+
+# Use CMake 'Unix Makefiles' generator
+OECMAKE_GENERATOR ?= "Unix Makefiles"
+
+# Fluent Bit build options
+# ========================
+
+# Host related setup
+EXTRA_OECMAKE += "-DGNU_HOST=${HOST_SYS} -DFLB_TD=1"
+
+# Disable LuaJIT and filter_lua support
+EXTRA_OECMAKE += "-DFLB_LUAJIT=Off -DFLB_FILTER_LUA=Off "
+
+# Disable Library and examples
+EXTRA_OECMAKE += "-DFLB_SHARED_LIB=Off"
+
+# Enable systemd iff systemd is in DISTRO_FEATURES
+EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES','systemd','-DFLB_SYSTEMD=On','-DFLB_SYSTEMD=Off',d)}"
+
+# Enable release builds
+EXTRA_OECMAKE += "-DFLB_RELEASE=On"
+
+# musl needs these options
+EXTRA_OECMAKE:append:libc-musl = ' -DFLB_JEMALLOC_OPTIONS="--with-jemalloc-prefix=je_ --with-lg-quantum=3" -DFLB_CORO_STACK_SIZE=24576'
+
+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"
+
+inherit cmake systemd pkgconfig
+
+SYSTEMD_SERVICE:${PN} = "td-agent-bit.service"
+
+EXTRA_OECMAKE += "-DCMAKE_DEBUG_SRCDIR=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}/"
+TARGET_CC_ARCH += " ${SELECTED_OPTIMIZATION}"
diff --git a/meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch b/meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch
index f8f1fd00f7..7a2ecdc101 100644
--- a/meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch
+++ b/meta-oe/recipes-extended/gnuplot/gnuplot/0001-reduce-build-to-conversion-tools-for-native-build.patch
@@ -21,11 +21,8 @@ index 9241ce5..b24e291 100644
## Process this file with automake to produce Makefile.in -*-Makefile-*-
AUTOMAKE_OPTIONS = foreign
--SUBDIRS = config m4 term src docs man demo tutorial share
+-SUBDIRS = config m4 term src docs man demo share
+SUBDIRS = docs
- EXTRA_DIST = BUGS Copyright FAQ.pdf GNUmakefile INSTALL INSTALL.gnu \
- Makefile.maint PATCHLEVEL PGPKEYS README RELEASE_NOTES \
---
-2.14.3
-
+ EXTRA_DIST = BUGS Copyright FAQ.pdf INSTALL INSTALL.gnu \
+ PATCHLEVEL PGPKEYS README RELEASE_NOTES \
diff --git a/meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch b/meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch
index 8e0b4a271d..5f96cdf699 100644
--- a/meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch
+++ b/meta-oe/recipes-extended/gnuplot/gnuplot/0002-do-not-build-demos.patch
@@ -14,18 +14,18 @@ Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
-index 9241ce5..b24e291 100644
+index 7e2c400..a8dbf96 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
AUTOMAKE_OPTIONS = foreign
--SUBDIRS = config m4 term src docs man demo tutorial share
-+SUBDIRS = config m4 term src docs man tutorial share
+-SUBDIRS = config m4 term src docs man demo share
++SUBDIRS = config m4 term src docs man share
- EXTRA_DIST = BUGS Copyright FAQ.pdf GNUmakefile INSTALL INSTALL.gnu \
- Makefile.maint PATCHLEVEL PGPKEYS README RELEASE_NOTES \
+ EXTRA_DIST = BUGS Copyright FAQ.pdf INSTALL INSTALL.gnu \
+ PATCHLEVEL PGPKEYS README RELEASE_NOTES \
--
-2.14.3
+2.31.1
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 a4039c3170..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
@@ -6,16 +6,24 @@ 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
+
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/docs/Makefile.am b/docs/Makefile.am
-index 3baf0c4..e82f87d 100644
+index b20918a..47406eb 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
-@@ -152,7 +152,7 @@ gnuplot-groff.ps: gnuplot.ms $(srcdir)/titlepag.ms
+@@ -156,7 +156,7 @@ gnuplot-groff.ps: gnuplot.ms $(srcdir)/titlepag.ms
### doc2xxx dependencies
gnuplot.ms: doc2ms$(EXEEXT) $(srcdir)/gnuplot.doc
@@ -24,7 +32,7 @@ index 3baf0c4..e82f87d 100644
doc2ms_SOURCES = doc2ms.c termdoc.c
doc2ms_CPPFLAGS = -DALL_TERM_DOC $(AM_CPPFLAGS)
-@@ -173,10 +173,10 @@ pdf_figures: $(GNUPLOT_EXE) $(srcdir)/plotstyles.gnu
+@@ -177,10 +177,10 @@ pdf_figures: $(GNUPLOT_EXE) $(srcdir)/plotstyles.gnu
$(AM_V_GEN)touch $@
figures.tex: allterm.h doc2tex$(EXEEXT) $(srcdir)/gnuplot.doc
@@ -37,7 +45,7 @@ index 3baf0c4..e82f87d 100644
pdf: gnuplot.pdf
pdf_nofig: nofigures.pdf
-@@ -256,7 +256,7 @@ gnuplot.ps: gnuplot.dvi
+@@ -260,7 +260,7 @@ gnuplot.ps: gnuplot.dvi
hlp: gnuplot.hlp
gnuplot.hlp: doc2hlp$(EXEEXT) $(srcdir)/gnuplot.doc
@@ -46,7 +54,7 @@ index 3baf0c4..e82f87d 100644
doc2hlp_SOURCES = doc2hlp.c termdoc.c
-@@ -264,14 +264,14 @@ doc2hlp_SOURCES = doc2hlp.c termdoc.c
+@@ -268,14 +268,14 @@ doc2hlp_SOURCES = doc2hlp.c termdoc.c
gih: gnuplot.gih
gnuplot.gih: doc2gih$(EXEEXT) $(srcdir)/gnuplot.doc
@@ -63,16 +71,16 @@ index 3baf0c4..e82f87d 100644
alldoc2gih_SOURCES = doc2gih.c termdoc.c
alldoc2gih_CPPFLAGS = -DALL_TERM_DOC $(AM_CPPFLAGS)
-@@ -286,7 +286,7 @@ $(srcdir)/windows/wgnuplot.hhk
+@@ -290,7 +290,7 @@ $(srcdir)/windows/wgnuplot.hhk
wxhelp/wgnuplot.hhc wxhelp/wgnuplot.hhk wxhelp/*.html windows/*.png
wxhelp/wgnuplot.html: doc2wxhtml$(EXEEXT) $(srcdir)/gnuplot.doc
- $(AM_V_GEN) ./doc2wxhtml$(EXEEXT) $(srcdir)/gnuplot.doc wxhelp/
+ $(AM_V_GEN) doc2wxhtml$(EXEEXT) $(srcdir)/gnuplot.doc wxhelp/
- #doc2wxhtml_SOURCES = windows/doc2html.c termdoc.c xref.c allterm.h
- #doc2wxhtml_CPPFLAGS = -DALL_TERM_DOC -DWXHELP -I../src $(AM_CPPFLAGS)
-@@ -336,7 +336,7 @@ install-info: gnuplot.info
+ doc2wxhtml_SOURCES = windows/doc2html.c termdoc.c xref.c allterm.h
+ doc2wxhtml_CPPFLAGS = -DALL_TERM_DOC -DWXHELP -I../src $(AM_CPPFLAGS)
+@@ -340,7 +340,7 @@ install-info: gnuplot.info
ipf: gnuplot.ipf
gnuplot.ipf: doc2ipf$(EXEEXT) $(srcdir)/gnuplot.doc
@@ -81,7 +89,7 @@ index 3baf0c4..e82f87d 100644
doc2ipf_SOURCES = doc2ipf.c termdoc.c xref.c
-@@ -344,7 +344,7 @@ doc2ipf_SOURCES = doc2ipf.c termdoc.c xref.c
+@@ -348,7 +348,7 @@ doc2ipf_SOURCES = doc2ipf.c termdoc.c xref.c
rtf: gnuplot.rtf
gnuplot.rtf: doc2rtf$(EXEEXT) $(srcdir)/gnuplot.doc
@@ -90,7 +98,7 @@ index 3baf0c4..e82f87d 100644
doc2rtf_SOURCES = doc2rtf.c termdoc.c xref.c
-@@ -352,13 +352,13 @@ doc2rtf_SOURCES = doc2rtf.c termdoc.c xref.c
+@@ -356,13 +356,13 @@ doc2rtf_SOURCES = doc2rtf.c termdoc.c xref.c
rnh: gnuplot.rnh
gnuplot.rnh: doc2rnh$(EXEEXT) $(srcdir)/gnuplot.doc
diff --git a/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb b/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
deleted file mode 100644
index 4cc289d3ab..0000000000
--- a/meta-oe/recipes-extended/gnuplot/gnuplot_5.2.2.bb
+++ /dev/null
@@ -1,69 +0,0 @@
-SUMMARY = "Gnuplot is a portable command-line driven graphing utility"
-DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
-(text or binary) and function plotting utility."
-HOMEPAGE = "http://www.gnuplot.info/"
-SECTION = "console/scientific"
-LICENSE = "gnuplot"
-LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
-DEPENDS = "${BPN}-native virtual/libx11 gd readline"
-
-inherit autotools distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/gnuplot/${BP}.tar.gz;name=archive \
- http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
- file://gnuplot.desktop \
- file://gnuplot.png \
-"
-SRC_URI_append_class-target = " \
- file://0002-do-not-build-demos.patch \
- file://0003-Use-native-tools-to-build-docs.patch \
- file://0004-Add-configure-option-to-find-qt5-native-tools.patch \
-"
-
-SRC_URI[archive.md5sum] = "60aedd08998160593199459dea8467fe"
-SRC_URI[archive.sha256sum] = "a416d22f02bdf3873ef82c5eb7f8e94146795811ef808e12b035ada88ef7b1a1"
-SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
-SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
-
-# for building docs (they deserve it) we need *doc2* tools native
-BBCLASSEXTEND = "native"
-DEPENDS_class-native = "readline-native"
-PACKAGECONFIG_class-native = ""
-
-SRC_URI_append_class-native = "file://0001-reduce-build-to-conversion-tools-for-native-build.patch"
-
-do_install_class-native() {
- install -d ${D}${bindir}
- install ${B}/docs/*doc* ${D}${bindir}
- rm ${D}${bindir}/*.o
-}
-
-PACKAGECONFIG ??= "cairo"
-PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo pango"
-PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua"
-PACKAGECONFIG[qt5] = "--with-qt --with-qt5nativesysroot=${STAGING_DIR_NATIVE},--without-qt,qtbase-native qtbase qtsvg qttools-native"
-
-EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR}/.. \
- --without-tutorial \
- --disable-wxwidgets"
-
-do_compile_prepend() {
- install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
-}
-
-do_install_append_class-target() {
- install -d ${D}${datadir}/applications/
- install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
- install -d ${D}${datadir}/pixmaps/
- install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
-}
-
-PACKAGES =+ "${PN}-x11-dbg ${PN}-x11"
-DESCRIPTION_${PN}-x11 = "X11 display terminal for Gnuplot."
-SECTION_${PN}-x11 = "x11/scientific"
-FILES_${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
-
-FILES_${PN} += "${datadir}/texmf"
-FILES_${PN}-x11-dbg += "${libexecdir}/gnuplot/*/.debug"
diff --git a/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.3.bb b/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.3.bb
new file mode 100644
index 0000000000..fe5e5c067d
--- /dev/null
+++ b/meta-oe/recipes-extended/gnuplot/gnuplot_5.4.3.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Gnuplot is a portable command-line driven graphing utility"
+DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
+(text or binary) and function plotting utility."
+HOMEPAGE = "http://www.gnuplot.info/"
+SECTION = "console/scientific"
+LICENSE = "gnuplot"
+LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
+DEPENDS = "${BPN}-native virtual/libx11 gd readline"
+
+inherit autotools features_check pkgconfig
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz;name=archive \
+ http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
+ file://gnuplot.desktop \
+ file://gnuplot.png \
+ "
+SRC_URI:append:class-target = " \
+ file://0002-do-not-build-demos.patch \
+ file://0003-Use-native-tools-to-build-docs.patch \
+ file://0004-Add-configure-option-to-find-qt5-native-tools.patch \
+"
+
+SRC_URI[archive.sha256sum] = "51f89bbab90f96d3543f95235368d188eb1e26eda296912256abcd3535bd4d84"
+SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"
+
+# for building docs (they deserve it) we need *doc2* tools native
+BBCLASSEXTEND = "native"
+DEPENDS:class-native = "readline-native"
+PACKAGECONFIG:class-native = ""
+
+SRC_URI:append:class-native = " file://0001-reduce-build-to-conversion-tools-for-native-build.patch"
+
+do_install:class-native() {
+ install -d ${D}${bindir}
+ install ${B}/docs/*doc* ${D}${bindir}
+ rm ${D}${bindir}/*.o
+}
+
+PACKAGECONFIG ??= "cairo"
+PACKAGECONFIG[cairo] = "--with-cairo,--without-cairo,cairo pango"
+PACKAGECONFIG[lua] = "--with-lua,--without-lua,lua"
+PACKAGECONFIG[qt5] = "--with-qt --with-qt5nativesysroot=${STAGING_DIR_NATIVE},--without-qt,qtbase-native qtbase qtsvg qttools-native"
+
+EXTRA_OECONF = " \
+ --with-readline=${STAGING_LIBDIR}/.. \
+ --disable-wxwidgets \
+ --without-libcerf \
+"
+
+do_compile:prepend() {
+ install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
+}
+
+do_install:append:class-target() {
+ install -d ${D}${datadir}/applications/
+ install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
+ install -d ${D}${datadir}/pixmaps/
+ install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
+}
+
+PACKAGES =+ "${PN}-x11"
+
+RPROVIDES:${PN}-dbg += "${PN}-x11-dbg"
+
+DESCRIPTION:${PN}-x11 = "X11 display terminal for Gnuplot."
+SECTION:${PN}-x11 = "x11/scientific"
+FILES:${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
+
+FILES:${PN} += "${datadir}/texmf"
diff --git a/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch b/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch
deleted file mode 100644
index 36fd57c9bc..0000000000
--- a/meta-oe/recipes-extended/haveged/haveged/haveged-init.d-Makefile.am-add-missing-dependency.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b04eeea777df32364df74bd63fc5b7fb05d21c8d Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Tue, 27 Mar 2018 10:21:09 +0800
-Subject: [PATCH] init.d/Makefile.am: add missing dependency
-
-install-data-hook should epend on install-exec-hook, or the
-haveged.service might be installed incorrectly when build
-with -j option.
-
-Upstream-Status: Inappropriate [no upstream mailing list]
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- init.d/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/init.d/Makefile.am b/init.d/Makefile.am
-index 5940f78..07bcdf7 100644
---- a/init.d/Makefile.am
-+++ b/init.d/Makefile.am
-@@ -33,7 +33,7 @@ if ENABLE_SYSTEMD
- install-exec-hook:
- $(do_subst) < $(srcdir)/$(src_tmpl) > haveged.service;
-
--install-data-hook:
-+install-data-hook: install-exec-hook
- if ENABLE_SYSTEMD_LOOKUP
- install -p -D -m644 haveged.service $(DESTDIR)`pkg-config --variable=systemdsystemunitdir systemd`/haveged.service;
- else
---
-2.11.0
-
diff --git a/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb b/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
new file mode 100644
index 0000000000..069fdf7bc2
--- /dev/null
+++ b/meta-oe/recipes-extended/haveged/haveged_1.9.18.bb
@@ -0,0 +1,26 @@
+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"
+LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+# v1.9.17
+SRCREV = "80ee9289569bc13efff4e0b5db3661cb513802b2"
+SRC_URI = "git://github.com/jirka-h/haveged.git;branch=master;protocol=https \
+"
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_URI = "https://github.com/jirka-h/haveged/releases"
+
+inherit autotools
+
+EXTRA_OECONF = "\
+ --enable-nistest=yes \
+ --enable-olt=yes \
+ --enable-threads=no \
+"
+
+MIPS_INSTRUCTION_SET = "mips"
diff --git a/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb b/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb
deleted file mode 100644
index bf1367391b..0000000000
--- a/meta-oe/recipes-extended/haveged/haveged_1.9.2.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-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 = "http://www.issihosts.com/haveged/index.html"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM="file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "http://www.issihosts.com/haveged/haveged-${PV}.tar.gz \
- file://haveged-init.d-Makefile.am-add-missing-dependency.patch \
-"
-
-SRC_URI[md5sum] = "fb1d8b3dcbb9d06b30eccd8aa500fd31"
-SRC_URI[sha256sum] = "f77d9adbdf421b61601fa29faa9ce3b479d910f73c66b9e364ba8642ccbfbe70"
-
-UPSTREAM_CHECK_URI = "http://www.issihosts.com/haveged/downloads.html"
-
-inherit autotools update-rc.d systemd
-
-EXTRA_OECONF = "\
- --enable-nistest=yes \
- --enable-olt=yes \
- --enable-threads=no \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-init=service.redhat --enable-initdir=${systemd_system_unitdir}, --enable-init=sysv.redhat, systemd"
-
-INITSCRIPT_PACKAGES = "${PN}"
-INITSCRIPT_NAME = "haveged"
-INITSCRIPT_PARAMS_${PN} = "defaults 9"
-
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "haveged.service"
-
-do_install_append() {
- # The exit status is 143 when the service is stopped
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- sed -i '/ExecStart/a SuccessExitStatus=143' ${D}${systemd_system_unitdir}/haveged.service
- fi
-}
-
-MIPS_INSTRUCTION_SET = "mips"
diff --git a/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb b/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
deleted file mode 100644
index 050b7da3d7..0000000000
--- a/meta-oe/recipes-extended/hexedit/hexedit_1.4.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "view and edit files in hexadecimal or in ASCII"
-HOMEPAGE = "http://rigaux.org/hexedit.html"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-DEPENDS = "ncurses"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "git://github.com/pixel/hexedit.git \
- "
-
-SRCREV = "800e4b2e6280531a84fd23ee0b48e16baeb90878"
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep
diff --git a/meta-oe/recipes-extended/hexedit/hexedit_1.6.bb b/meta-oe/recipes-extended/hexedit/hexedit_1.6.bb
new file mode 100644
index 0000000000..d2b23b41b4
--- /dev/null
+++ b/meta-oe/recipes-extended/hexedit/hexedit_1.6.bb
@@ -0,0 +1,20 @@
+SUMMARY = "view and edit files in hexadecimal or in ASCII"
+HOMEPAGE = "http://rigaux.org/hexedit.html"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-or-later"
+DEPENDS = "ncurses"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "git://github.com/pixel/hexedit.git;branch=master;protocol=https \
+ "
+
+SRCREV = "eab92dcaa34b66bc5182772afc9fda4ac8a27597"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep update-alternatives
+
+ALTERNATIVE:${PN} = "hexedit"
+ALTERNATIVE_LINK_NAME[hexedit] = "${bindir}/hexedit"
+
diff --git a/meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch b/meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch
deleted file mode 100644
index fef2bc7541..0000000000
--- a/meta-oe/recipes-extended/hiredis/files/0001-Makefile-remove-hardcoding-of-CC.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d13b918a3ff8b0ebfd1e7b18b198b4b45841d720 Mon Sep 17 00:00:00 2001
-From: Andrea Galbusera <gizero@gmail.com>
-Date: Fri, 31 Jul 2015 16:42:08 +0200
-Subject: [PATCH] Makefile: remove hardcoding of CC
-
-* upgrade previous patch to avoid wiping CFLAGS. This fixes build on arm
-platforms which previously caused and issue due to -fPIC being lost
-
-Signed-off-by: Andrea Galbusera <gizero@gmail.com>
----
- Makefile | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 8b0f0c2..66a4317 100644
---- a/Makefile
-+++ b/Makefile
-@@ -34,11 +34,6 @@ define REDIS_TEST_CONFIG
- 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')
--OPTIMIZATION?=-O3
--WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings
--DEBUG?= -g -ggdb
- REAL_CFLAGS=$(OPTIMIZATION) -fPIC $(CFLAGS) $(WARNINGS) $(DEBUG) $(ARCH)
- REAL_LDFLAGS=$(LDFLAGS) $(ARCH)
-
---
-1.9.1
-
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_0.13.1.bb b/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb
deleted file mode 100644
index fae30d771d..0000000000
--- a/meta-oe/recipes-extended/hiredis/hiredis_0.13.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "Minimalistic C client library for Redis"
-HOMEPAGE = "http://github.com/redis/hiredis"
-LICENSE = "BSD-3-Clause"
-SECTION = "libs"
-DEPENDS = "redis"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d84d659a35c666d23233e54503aaea51"
-SRC_URI = "git://github.com/redis/hiredis;protocol=git;rev=f58dd249d6ed47a7e835463c3b04722972281dbb \
- file://0001-Makefile-remove-hardcoding-of-CC.patch"
-
-S = "${WORKDIR}/git"
-
-inherit autotools-brokensep pkgconfig
-
-EXTRA_OEMAKE = "PREFIX=${prefix}"
-
-# By default INSTALL variable in Makefile is equal to 'cp -a', which preserves
-# ownership and causes host-user-contamination QA issue.
-# And PREFIX defaults to /usr/local.
-do_install_prepend() {
- export INSTALL='cp -r'
-}
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-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch b/meta-oe/recipes-extended/hplip/hplip-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch
deleted file mode 100644
index f259b5f05d..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip-3.12.6/0001-include-cups-ppd.h-for-missing-ppd-definitions.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 7ef9c040dd959105c16d4dc67e14f3bbea25e77f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Dec 2016 19:51:19 +0000
-Subject: [PATCH] include cups/ppd.h for missing ppd definitions
-
-Fixes errors spotted by clang
-
-| prnt/hpcups/HPCupsFilter.cpp:365:18: error: use of undeclared identifier 'ppdFindAttr'
-| if (((attr = ppdFindAttr(m_ppd, "hpPrinterLanguage", NULL)) == NULL) ||
-| ^
-| prnt/hpcups/HPCupsFilter.cpp:368:13: error: use of undeclared identifier 'ppdClose'
-| ppdClose(m_ppd);
-| ^
-| prnt/hpcups/HPCupsFilter.cpp:444:9: error: use of undeclared identifier 'ppdClose'
-| ppdClose(m_ppd);
-| ^
-| prnt/hpcups/HPCupsFilter.cpp:497:13: error: use of undeclared identifier 'ppdOpenFile'
-| m_ppd = ppdOpenFile(getenv("PPD"));
-| ^
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- prnt/hpcups/HPCupsFilter.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/prnt/hpcups/HPCupsFilter.h b/prnt/hpcups/HPCupsFilter.h
-index 0431a7a..eb0cad6 100644
---- a/prnt/hpcups/HPCupsFilter.h
-+++ b/prnt/hpcups/HPCupsFilter.h
-@@ -37,6 +37,7 @@
- #include "Job.h"
-
- #include "dbuscomm.h"
-+#include <cups/ppd.h>
-
- #define DBITMAPFILEHEADER 14
- #define DBITMAPINFOHEADER 40
---
-1.9.1
-
diff --git a/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch b/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch
deleted file mode 100644
index 31c005c60c..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip-3.12.6/configure.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: hplip-3.12.6/configure.in
-===================================================================
---- hplip-3.12.6.orig/configure.in 2014-07-16 20:03:51.310044196 +0000
-+++ hplip-3.12.6/configure.in 2014-07-18 07:53:31.589559192 +0000
-@@ -27,8 +27,7 @@
-
- #AC_PREREQ(2.59)
- AC_INIT([HP Linux Imaging and Printing], [3.12.6], [3.12.6], [hplip])
--#AM_INIT_AUTOMAKE([1.9 foreign])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([1.9 foreign])
- AC_DISABLE_STATIC
-
- # Checks for programs.
diff --git a/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch b/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch
deleted file mode 100644
index 7df01aab33..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip-3.12.6/cups-1.6.patch
+++ /dev/null
@@ -1,395 +0,0 @@
-Imported from gentoo:
-https://bugs.gentoo.org/show_bug.cgi?id=428672
-
-diff -Naur hplip-3.12.6_old/prnt/cupsext/cupsext.c hplip-3.12.6/prnt/cupsext/cupsext.c
---- hplip-3.12.6_old/prnt/cupsext/cupsext.c 2012-08-04 09:18:18.388330038 +0200
-+++ hplip-3.12.6/prnt/cupsext/cupsext.c 2012-08-04 09:18:27.855181327 +0200
-@@ -87,6 +87,46 @@
- #define PY_SSIZE_T_MIN INT_MIN
- #endif
-
-+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
-+#define HAVE_CUPS_1_6 1
-+#endif
-+
-+#ifndef HAVE_CUPS_1_6
-+#define ippGetCount(attr) attr->num_values
-+#define ippGetGroupTag(attr) attr->group_tag
-+#define ippGetValueTag(attr) attr->value_tag
-+#define ippGetName(attr) attr->name
-+#define ippGetBoolean(attr, element) attr->values[element].boolean
-+#define ippGetInteger(attr, element) attr->values[element].integer
-+#define ippGetStatusCode(ipp) ipp->request.status.status_code
-+#define ippGetString(attr, element, language) attr->values[element].string.text
-+
-+static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp )
-+{
-+ if (!ipp)
-+ return (NULL);
-+ return (ipp->current = ipp->attrs);
-+}
-+
-+static ipp_attribute_t * ippNextAttribute( ipp_t *ipp )
-+{
-+ if (!ipp || !ipp->current)
-+ return (NULL);
-+ return (ipp->current = ipp->current->next);
-+}
-+
-+static int ippSetOperation( ipp_t *ipp, ipp_op_t op )
-+{
-+ ipp->request.op.operation_id = op;
-+ return (1);
-+}
-+
-+static int ippSetRequestId( ipp_t *ipp, int request_id )
-+{
-+ ipp->request.any.request_id = request_id;
-+ return (1);
-+}
-+#endif
-
- int g_num_options = 0;
- cups_option_t * g_options;
-@@ -333,8 +373,8 @@
- request = ippNew();
- language = cupsLangDefault();
-
-- request->request.op.operation_id = CUPS_GET_PRINTERS;
-- request->request.any.request_id = 1;
-+ ippSetOperation( request, CUPS_GET_PRINTERS );
-+ ippSetRequestId ( request, 1);
-
- ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
- "attributes-charset", NULL, cupsLangEncoding( language ) );
-@@ -378,10 +418,10 @@
- ipp_pstate_t state;
- int i = 0;
-
-- for ( attr = response->attrs; attr != NULL; attr = attr->next )
-+ for ( attr = ippFirstAttribute( response ); attr != NULL; attr = ippNextAttribute( response ) )
- {
-- while ( attr != NULL && attr->group_tag != IPP_TAG_PRINTER )
-- attr = attr->next;
-+ while ( attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER )
-+ attr = ippNextAttribute( response );
-
- if ( attr == NULL )
- break;
-@@ -390,41 +430,41 @@
- state = IPP_PRINTER_IDLE;
- accepting = 0;
-
-- while ( attr != NULL && attr->group_tag == IPP_TAG_PRINTER )
-+ while ( attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER )
- {
-- if ( strcmp( attr->name, "printer-name" ) == 0 &&
-- attr->value_tag == IPP_TAG_NAME )
-- name = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "device-uri" ) == 0 &&
-- attr->value_tag == IPP_TAG_URI )
-- device_uri = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-uri-supported" ) == 0 &&
-- attr->value_tag == IPP_TAG_URI )
-- printer_uri = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-info" ) == 0 &&
-- attr->value_tag == IPP_TAG_TEXT )
-- info = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-location" ) == 0 &&
-- attr->value_tag == IPP_TAG_TEXT )
-- location = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-make-and-model" ) == 0 &&
-- attr->value_tag == IPP_TAG_TEXT )
-- make_model = attr->values[ 0 ].string.text;
--
-- else if ( strcmp( attr->name, "printer-state" ) == 0 &&
-- attr->value_tag == IPP_TAG_ENUM )
-- state = ( ipp_pstate_t ) attr->values[ 0 ].integer;
--
-- else if (!strcmp(attr->name, "printer-is-accepting-jobs") &&
-- attr->value_tag == IPP_TAG_BOOLEAN)
-- accepting = attr->values[ 0 ].boolean;
-+ if ( strcmp( ippGetName( attr ), "printer-name" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_NAME )
-+ name = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "device-uri" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_URI )
-+ device_uri = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-uri-supported" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_URI )
-+ printer_uri = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-info" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_TEXT )
-+ info = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-location" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_TEXT )
-+ location = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-make-and-model" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_TEXT )
-+ make_model = ippGetString( attr, 0, NULL );
-+
-+ else if ( strcmp( ippGetName( attr ), "printer-state" ) == 0 &&
-+ ippGetValueTag( attr ) == IPP_TAG_ENUM )
-+ state = ( ipp_pstate_t ) ippGetInteger( attr, 0 );
-+
-+ else if (!strcmp(ippGetName( attr ), "printer-is-accepting-jobs") &&
-+ ippGetValueTag( attr ) == IPP_TAG_BOOLEAN)
-+ accepting = ippGetBoolean( attr, 0 );
-
-- attr = attr->next;
-+ attr = ippNextAttribute( response );
- }
-
- if ( device_uri == NULL )
-@@ -522,8 +562,8 @@
- request = ippNew();
- language = cupsLangDefault();
-
-- request->request.op.operation_id = CUPS_ADD_PRINTER;
-- request->request.any.request_id = 1;
-+ ippSetOperation( request, CUPS_ADD_PRINTER );
-+ ippSetRequestId ( request, 1 );
-
- ippAddString( request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
- "attributes-charset", NULL, cupsLangEncoding( language ) );
-@@ -568,7 +608,7 @@
- }
- else
- {
-- status = response->request.status.status_code;
-+ status = ippGetStatusCode( response );
- //ippDelete( response );
- r = 1;
- }
-@@ -631,8 +671,8 @@
- */
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_DELETE_PRINTER;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, CUPS_DELETE_PRINTER );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -650,7 +690,7 @@
- */
- response = cupsDoRequest( http, request, "/admin/" );
-
-- if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) )
-+ if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) )
- {
- r = 1;
- }
-@@ -721,8 +761,8 @@
-
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_SET_DEFAULT;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, CUPS_SET_DEFAULT );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -743,7 +783,7 @@
-
- response = cupsDoRequest( http, request, "/admin/" );
-
-- if ( ( response != NULL ) && ( response->request.status.status_code <= IPP_OK_CONFLICT ) )
-+ if ( ( response != NULL ) && ( ippGetStatusCode( response ) <= IPP_OK_CONFLICT ) )
- {
- r = 1;
- }
-@@ -797,8 +837,8 @@
-
- request = ippNew();
-
-- request->request.op.operation_id = op;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, op );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -822,7 +862,7 @@
-
- response = cupsDoRequest(http, request, "/admin/");
-
-- if (( response != NULL ) && (response->request.status.status_code <= IPP_OK_CONFLICT))
-+ if (( response != NULL ) && (ippGetStatusCode( response ) <= IPP_OK_CONFLICT))
- {
- r = 1;
- }
-@@ -837,7 +877,7 @@
- if ( response != NULL )
- ippDelete( response );
-
-- return Py_BuildValue( "i", r );;
-+ return Py_BuildValue( "i", r );
- }
-
-
-@@ -1116,8 +1156,8 @@
-
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_GET_PPDS;
-- request->request.op.request_id = 1;
-+ ippSetOperation( request, CUPS_GET_PPDS );
-+ ippSetRequestId ( request, 1 );
-
- language = cupsLangDefault();
-
-@@ -1143,43 +1183,43 @@
- if ((response = cupsDoRequest(http, request, "/")) != NULL)
- {
-
-- for (attr = response->attrs; attr; attr = attr->next)
-+ for (attr = ippFirstAttribute( response ); attr; attr = ippNextAttribute( response ))
- {
- PyObject *dict;
- char *ppdname = NULL;
-
-- while (attr && attr->group_tag != IPP_TAG_PRINTER)
-- attr = attr->next;
-+ while (attr && ippGetGroupTag( attr ) != IPP_TAG_PRINTER)
-+ attr = ippNextAttribute( response );
-
- if (!attr)
- break;
-
- dict = PyDict_New ();
-
-- for (; attr && attr->group_tag == IPP_TAG_PRINTER; attr = attr->next)
-+ for (; attr && ippGetGroupTag( attr ) == IPP_TAG_PRINTER; attr = ippNextAttribute( response ))
- {
- PyObject *val = NULL;
-
-- if (!strcmp (attr->name, "ppd-name") && attr->value_tag == IPP_TAG_NAME)
-+ if (!strcmp (ippGetName( attr ), "ppd-name") && ippGetValueTag( attr ) == IPP_TAG_NAME)
- {
-- ppdname = attr->values[0].string.text;
-+ ppdname = ippGetString( attr, 0, NULL );
-
- //sprintf( buf, "print '%s'", ppdname);
- //PyRun_SimpleString( buf );
- }
-
-- else if (attr->value_tag == IPP_TAG_TEXT || attr->value_tag == IPP_TAG_NAME || attr->value_tag == IPP_TAG_KEYWORD)
-- //else if ((!strcmp (attr->name, "ppd-natural-language") && attr->value_tag == IPP_TAG_LANGUAGE) ||
-- // (!strcmp (attr->name, "ppd-make-and-model") && attr->value_tag == IPP_TAG_TEXT) ||
-- // (!strcmp (attr->name, "ppd-make") && attr->value_tag == IPP_TAG_TEXT) ||
-- // (!strcmp (attr->name, "ppd-device-id") && attr->value_tag == IPP_TAG_TEXT))
-+ else if (ippGetValueTag( attr ) == IPP_TAG_TEXT || ippGetValueTag( attr ) == IPP_TAG_NAME || ippGetValueTag( attr ) == IPP_TAG_KEYWORD)
-+ //else if ((!strcmp (ippGetName( attr ), "ppd-natural-language") && ippGetValueTag( attr ) == IPP_TAG_LANGUAGE) ||
-+ // (!strcmp (ippGetName( attr ), "ppd-make-and-model") && ippGetValueTag( attr ) == IPP_TAG_TEXT) ||
-+ // (!strcmp (ippGetName( attr ), "ppd-make") && ippGetValueTag( attr ) == IPP_TAG_TEXT) ||
-+ // (!strcmp (ippGetName( attr ), "ppd-device-id") && ippGetValueTag( attr ) == IPP_TAG_TEXT))
- {
-- val = PyObj_from_UTF8(attr->values[0].string.text);
-+ val = PyObj_from_UTF8(ippGetString( attr, 0, NULL ));
- }
-
- if (val)
- {
-- PyDict_SetItemString (dict, attr->name, val);
-+ PyDict_SetItemString (dict, ippGetName( attr ), val);
- Py_DECREF (val);
- }
- }
-diff -Naur hplip-3.12.6_old/scan/sane/hpaio.c hplip-3.12.6/scan/sane/hpaio.c
---- hplip-3.12.6_old/scan/sane/hpaio.c 2012-08-04 09:18:21.458389913 +0200
-+++ hplip-3.12.6/scan/sane/hpaio.c 2012-08-04 09:18:27.875181720 +0200
-@@ -47,6 +47,43 @@
- #define DEBUG_DECLARE_ONLY
- #include "sanei_debug.h"
-
-+#if (CUPS_VERSION_MAJOR > 1) || (CUPS_VERSION_MINOR > 5)
-+#define HAVE_CUPS_1_6 1
-+#endif
-+
-+#ifndef HAVE_CUPS_1_6
-+#define ippGetGroupTag(attr) attr->group_tag
-+#define ippGetValueTag(attr) attr->value_tag
-+#define ippGetName(attr) attr->name
-+#define ippGetString(attr, element, language) attr->values[element].string.text
-+
-+static ipp_attribute_t * ippFirstAttribute( ipp_t *ipp )
-+{
-+ if (!ipp)
-+ return (NULL);
-+ return (ipp->current = ipp->attrs);
-+}
-+
-+static ipp_attribute_t * ippNextAttribute( ipp_t *ipp )
-+{
-+ if (!ipp || !ipp->current)
-+ return (NULL);
-+ return (ipp->current = ipp->current->next);
-+}
-+
-+static int ippSetOperation( ipp_t *ipp, ipp_op_t op )
-+{
-+ ipp->request.op.operation_id = op;
-+ return (1);
-+}
-+
-+static int ippSetRequestId( ipp_t *ipp, int request_id )
-+{
-+ ipp->request.any.request_id = request_id;
-+ return (1);
-+}
-+#endif
-+
- static SANE_Device **DeviceList = NULL;
-
- static int AddDeviceList(char *uri, char *model, SANE_Device ***pd)
-@@ -186,8 +223,8 @@
- /* Assemble the IPP request */
- request = ippNew();
-
-- request->request.op.operation_id = CUPS_GET_PRINTERS;
-- request->request.any.request_id = 1;
-+ ippSetOperation( request, CUPS_GET_PRINTERS );
-+ ippSetRequestId( request, 1 );
-
- ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET, "attributes-charset", NULL, "utf-8");
- ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE, "attributes-natural-language", NULL, "en");
-@@ -197,20 +234,20 @@
- if ((response = cupsDoRequest(http, request, "/")) == NULL)
- goto bugout;
-
-- for (attr = response->attrs; attr != NULL; attr = attr->next)
-+ for (attr = ippFirstAttribute ( response ); attr != NULL; attr = ippNextAttribute( response ))
- {
- /* Skip leading attributes until we hit a printer. */
-- while (attr != NULL && attr->group_tag != IPP_TAG_PRINTER)
-- attr = attr->next;
-+ while (attr != NULL && ippGetGroupTag( attr ) != IPP_TAG_PRINTER)
-+ attr = ippNextAttribute( response );
-
- if (attr == NULL)
- break;
-
-- while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER)
-+ while (attr != NULL && ippGetGroupTag( attr ) == IPP_TAG_PRINTER)
- {
-- if (strcmp(attr->name, "device-uri") == 0 && attr->value_tag == IPP_TAG_URI && AddCupsList(attr->values[0].string.text, printer) == 0)
-+ if (strcmp(ippGetName( attr ), "device-uri") == 0 && ippGetValueTag( attr ) == IPP_TAG_URI && AddCupsList(ippGetString( attr, 0, NULL ), printer) == 0)
- cnt++;
-- attr = attr->next;
-+ attr = ippNextAttribute( response );
- }
-
- if (attr == NULL)
diff --git a/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch b/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch
deleted file mode 100644
index b347f831cb..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip-3.12.6/fix-libusb-paths.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Upstream-Status: Inappropriate [configuration]
-
-diff -rupN hplip-3.12.6_orig/configure.in hplip-3.12.6/configure.in
---- hplip-3.12.6_orig/configure.in 2012-06-18 20:44:24.000000000 +1000
-+++ hplip-3.12.6/configure.in 2012-08-16 13:40:07.259927650 +1000
-@@ -524,6 +524,8 @@ if test "$hpijs_only_build" = "no"; then
- 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
-diff -rupN hplip-3.12.6_orig/Makefile.am hplip-3.12.6/Makefile.am
---- hplip-3.12.6_orig/Makefile.am 2012-06-18 20:44:13.000000000 +1000
-+++ hplip-3.12.6/Makefile.am 2012-08-16 13:41:12.307932822 +1000
-@@ -72,7 +72,7 @@ libhpmud_la_SOURCES = io/hpmud/hpmud.c i
- io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
- io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb_libusb01.c
- else
--libhpmud_la_CFLAGS = -I/usr/include/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
-+libhpmud_la_CFLAGS = -I/$(LIBUSBINCLUDEROOT)/libusb-1.0 -DMUDNAME=\"$(MUDNAME)\" -DCONFDIR=\"$(hplip_confdir)\"
- libhpmud_la_SOURCES = io/hpmud/hpmud.c io/hpmud/mlc.c io/hpmud/model.c io/hpmud/pml.c \
- io/hpmud/hpmud.h io/hpmud/hpmudi.h io/hpmud/list.h io/hpmud/mlc.h io/hpmud/pml.h io/hpmud/dot4.c \
- io/hpmud/dot4.h io/hpmud/jd.c io/hpmud/jd.h io/hpmud/pp.c io/hpmud/pp.h io/hpmud/musb.h io/hpmud/musb.c
-@@ -286,7 +286,7 @@ hpmudext_la_LIBADD = libhpmud.la
- if LIBUSB01_BUILD
- hpmudext_la_CFLAGS = -I$(PYTHONINCLUDEDIR)
- else
--hpmudext_la_CFLAGS =-I/usr/include/libusb-1.0 -I$(PYTHONINCLUDEDIR)
-+hpmudext_la_CFLAGS =-I$(LIBUSBINCLUDEROOT)/libusb-1.0 -I$(PYTHONINCLUDEDIR)
- endif
-
- # ui (qt3)
diff --git a/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch b/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch
deleted file mode 100644
index 0e1b6c4ed3..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip-3.12.6/setup-add-sleep-after-cups-reset.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
---- hplip-3.11.10/setup.py.orig 2011-10-02 14:06:19.000000000 +1100
-+++ hplip-3.11.10/setup.py 2012-02-29 08:21:39.167999938 +1100
-@@ -573,6 +573,7 @@
-
- log.debug("Restarting CUPS...")
- status, output = utils.run(restart_cups())
-+ time.sleep(3)
- log.debug("Restart CUPS returned: exit=%d output=%s" % (status, output))
-
- cups.setPasswordPrompt("You do not have permission to add a printer.")
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/0001-common-utils-Include-string.h-for-strcasestr.patch b/meta-oe/recipes-extended/hplip/hplip/0001-common-utils-Include-string.h-for-strcasestr.patch
new file mode 100644
index 0000000000..659eca41c9
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0001-common-utils-Include-string.h-for-strcasestr.patch
@@ -0,0 +1,44 @@
+From 20984c73bea8c3df00f297176edd4f6d47c31b55 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 17:49:20 -0700
+Subject: [PATCH 1/4] common/utils: Include string.h for strcasestr
+
+Also define _GNU_SOURCE for the same
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ common/utils.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/common/utils.c
++++ b/common/utils.c
+@@ -1,9 +1,11 @@
++#define _GNU_SOURCE
+ #include "utils.h"
+ #include "string.h"
+ #include <dlfcn.h>
+ #include <sys/stat.h>
+ #include <errno.h>
+ #include <stdlib.h>
++#include <string.h> /* strcasestr */
+
+ extern int errno;
+
+--- a/protocol/hp_ipp.c
++++ b/protocol/hp_ipp.c
+@@ -18,12 +18,13 @@ Boston, MA 02110-1301, USA.
+
+ \******************************************************************************/
+
+-
++#define _GNU_SOURCE
+ #include <cups/cups.h>
+ #include <cups/language.h>
+ #include <cups/ppd.h>
+ #include <syslog.h>
+ #include <stdarg.h>
++#include <string.h> /* strcasecmp */
+ #include <sys/types.h>
+ #include <pwd.h>
+ #include <sys/stat.h>
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
new file mode 100644
index 0000000000..fa973a8d85
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0002-Add-ImageProcessor-only-when-DISBALE_IMAGEPROCESSOR_.patch
@@ -0,0 +1,48 @@
+From 3d53d02af7c45763eb33f7bbe5f9e389fbcb7e21 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 17:55:48 -0700
+Subject: [PATCH 2/4] Add ImageProcessor only when DISBALE_IMAGEPROCESSOR_BUILD
+ is not set
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.am | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 5f75759..73421b1 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -597,7 +597,11 @@ hpcups_SOURCES = prnt/hpcups/HPCupsFilter.cpp prnt/hpcups/HPCupsFilter.h prnt/hp
+ prnt/hpcups/ImageProcessor.h
+
+ hpcups_CXXFLAGS = $(APDK_ENDIAN_FLAG) $(DBUS_CFLAGS)
+-hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lImageProcessor -lcups -lcupsimage -lz $(DBUS_LIBS)
++hpcups_LDADD = -L./prnt/hpcups/ -ljpeg -ldl -lcups -lcupsimage -lz $(DBUS_LIBS)
++if !DISBALE_IMAGEPROCESSOR_BUILD
++hpcups_LDADD += "-lImageProcessor"
++endif #DISABLE_IMAGEPROCESSOR
++
+ #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
new file mode 100644
index 0000000000..bf93c222ea
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0003-pserror.c-Define-column-to-be-int-explcitly.patch
@@ -0,0 +1,23 @@
+From a27d6264671e7201b5d78bcc9200e7d946429979 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 17:57:53 -0700
+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(-)
+
+--- a/prnt/hpps/pserror.c
++++ b/prnt/hpps/pserror.c
+@@ -24,7 +24,7 @@ extern char *program ; /* Defined by mai
+ void message(int flags, char *format, ...)
+ {
+ va_list args ;
+- static column = 0 ; /* current screen column for message wrap */
++ static int column = 0 ; /* current screen column for message wrap */
+ char msgbuf[MAX_MESSAGE] ; /* buffer in which to put the message */
+ char *bufptr = msgbuf ; /* message buffer pointer */
+
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
new file mode 100644
index 0000000000..7223bf939e
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0004-Define-missing-prototype-for-functions.patch
@@ -0,0 +1,55 @@
+From 33454817880fa57b2226dd40b724e5c3d6074aca Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 17:58:33 -0700
+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(-)
+
+--- a/prnt/cupsext/cupsext.c
++++ b/prnt/cupsext/cupsext.c
+@@ -101,6 +101,11 @@ typedef int Py_ssize_t;
+ #define _STRINGIZE(x) #x
+ #define STRINGIZE(x) _STRINGIZE(x)
+
++void _releaseCupsInstance(void);
++int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file, char *model, char *info);
++int setDefaultCupsPrinter(char *pr_name);
++int delCupsPrinter(char *pr_name);
++int controlCupsPrinter(char *pr_name, int op);
+
+ //static http_t * http = NULL; /* HTTP object */
+
+--- a/protocol/hp_ipp.c
++++ b/protocol/hp_ipp.c
+@@ -22,6 +22,7 @@ Boston, MA 02110-1301, USA.
+ #include <cups/cups.h>
+ #include <cups/language.h>
+ #include <cups/ppd.h>
++#include <stdio.h>
+ #include <syslog.h>
+ #include <stdarg.h>
+ #include <string.h> /* strcasecmp */
+@@ -42,7 +43,7 @@ Boston, MA 02110-1301, USA.
+ #define STRINGIZE(x) _STRINGIZE(x)
+
+
+-http_t* acquireCupsInstance()
++http_t* acquireCupsInstance(void)
+ {
+ if ( http == NULL)
+ {
+@@ -53,7 +54,7 @@ http_t* acquireCupsInstance()
+ }
+
+
+-void _releaseCupsInstance()
++void _releaseCupsInstance(void)
+ {
+ if (http)
+ {
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
new file mode 100644
index 0000000000..ac0ff81e6f
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0005-hp_ipp.c-Add-printf-format-to-snprintf-calls.patch
@@ -0,0 +1,64 @@
+From 4b3014df3990d90d6929510f2bde073171503329 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 18:18:44 -0700
+Subject: [PATCH] hp_ipp.c: Add printf format to snprintf calls
+
+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/protocol/hp_ipp.c b/protocol/hp_ipp.c
+index 597d9b9..a027baf 100644
+--- a/protocol/hp_ipp.c
++++ b/protocol/hp_ipp.c
+@@ -112,7 +112,7 @@ int addCupsPrinter(char *name, char *device_uri, char *location, char *ppd_file,
+ }
+
+ if ( info == NULL )
+- snprintf( info,sizeof(info), name );
++ snprintf( info,sizeof(info), "%s", name );
+
+ sprintf( printer_uri, "ipp://localhost/printers/%s", name );
+
+@@ -513,27 +513,27 @@ int __parsePrinterAttributes(ipp_t *response, printer_t **printer_list)
+
+ if ( strcmp(attr_name, "printer-name") == 0 &&
+ val_tag == IPP_TAG_NAME ) {
+- snprintf(t_printer->name, sizeof(t_printer->name),ippGetString(attr, 0, NULL) );
++ snprintf(t_printer->name, sizeof(t_printer->name), "%s", ippGetString(attr, 0, NULL) );
+ }
+ else if ( strcmp(attr_name, "device-uri") == 0 &&
+ val_tag == IPP_TAG_URI ) {
+- snprintf(t_printer->device_uri,sizeof(t_printer->device_uri), ippGetString(attr, 0, NULL) );
++ snprintf(t_printer->device_uri,sizeof(t_printer->device_uri), "%s", ippGetString(attr, 0, NULL) );
+ }
+ else if ( strcmp(attr_name, "printer-uri-supported") == 0 &&
+ val_tag == IPP_TAG_URI ) {
+- snprintf(t_printer->printer_uri,sizeof(t_printer->printer_uri), ippGetString(attr, 0, NULL) );
++ snprintf(t_printer->printer_uri,sizeof(t_printer->printer_uri), "%s", ippGetString(attr, 0, NULL) );
+ }
+ else if ( strcmp(attr_name, "printer-info") == 0 &&
+ val_tag == IPP_TAG_TEXT ) {
+- snprintf(t_printer->info,sizeof(t_printer->info), ippGetString(attr, 0, NULL) );
++ snprintf(t_printer->info,sizeof(t_printer->info), "%s", ippGetString(attr, 0, NULL) );
+ }
+ else if ( strcmp(attr_name, "printer-location") == 0 &&
+ val_tag == IPP_TAG_TEXT ) {
+- snprintf(t_printer->location,sizeof(t_printer->location),ippGetString(attr, 0, NULL) );
++ snprintf(t_printer->location,sizeof(t_printer->location), "%s", ippGetString(attr, 0, NULL) );
+ }
+ else if ( strcmp(attr_name, "printer-make-and-model") == 0 &&
+ val_tag == IPP_TAG_TEXT ) {
+- snprintf(t_printer->make_model,sizeof(t_printer->make_model),ippGetString(attr, 0, NULL) );
++ snprintf(t_printer->make_model,sizeof(t_printer->make_model), "%s", ippGetString(attr, 0, NULL) );
+ }
+ else if ( strcmp(attr_name, "printer-state") == 0 &&
+ val_tag == IPP_TAG_ENUM ) {
+--
+2.37.3
+
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
new file mode 100644
index 0000000000..194deb8b81
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/0006-Workaround-patch-for-missing-Python3-transition-of-t.patch
@@ -0,0 +1,132 @@
+From: Till Kamppeter <till.kamppeter@gmail.com>
+Date: Fri, 22 Jul 2016 09:33:04 +0200
+Subject: Workaround patch for missing Python3 transition of the old
+ (pre-USB-storage) photo memory card support (pcardext) as this part builds
+ in Python3 environments but with pointer-related warnings which are fatal
+ errors for Ubuntu's build servers. The patch silences the warnings but the
+ memory card support is dropped in Python3 environments. This patch is
+ supplied by the HPLIP upstream developers and will be replaced by a more
+ 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 ++++
+ 3 files changed, 53 insertions(+), 13 deletions(-)
+
+--- a/pcard/pcardext/pcardext.c
++++ b/pcard/pcardext/pcardext.c
+@@ -20,7 +20,7 @@ pcardext - Python extension for HP photo
+ Requires:
+ Python 2.2+
+
+-Author: Don Welch
++Author: Don Welch
+
+ \*****************************************************************************/
+
+@@ -41,9 +41,37 @@ typedef int Py_ssize_t;
+
+ int verbose=0;
+
++#if PY_MAJOR_VERSION >= 3
++ #define MOD_ERROR_VAL NULL
++ #define MOD_SUCCESS_VAL(val) val
++ #define MOD_INIT(name) PyMODINIT_FUNC PyInit_##name(void)
++ #define PyInt_AS_LONG PyLong_AS_LONG
++ #define MOD_DEF(ob, name, doc, methods) \
++ static struct PyModuleDef moduledef = { \
++ PyModuleDef_HEAD_INIT, name, doc, -1, methods, }; \
++ ob = PyModule_Create(&moduledef);
++
++
++ #define PY_String_Bytes PyBytes_FromStringAndSize
++ #define PY_AsString_Bytes PyBytes_AsStringAndSize
++
++#else
++ #define MOD_ERROR_VAL
++ #define MOD_SUCCESS_VAL(val)
++ #define MOD_INIT(name) void init##name(void)
++ #define MOD_DEF(ob, name, doc, methods) \
++ ob = Py_InitModule3(name, methods, doc);
++
++ #define PY_String_Bytes PyString_FromStringAndSize
++ #define PY_AsString_Bytes PyString_AsStringAndSize
++
++#endif
++
+ PyObject * readsectorFunc = NULL;
+ PyObject * writesectorFunc = NULL;
+
++
++
+ int ReadSector(int sector, int nsector, void *buf, int size)
+ {
+ PyObject * result;
+@@ -59,9 +87,13 @@ int ReadSector(int sector, int nsector,
+ if( result )
+ {
+ Py_ssize_t len = 0;
+- PyString_AsStringAndSize( result, &result_str, &len );
++
++ //PyString_AsStringAndSize( result, &result_str, &len );
++ //PyBytes_AsStringAndSize( result, &result_str, &len );
++ PY_AsString_Bytes( result, &result_str, &len );
+
+- if( len < nsector*FAT_HARDSECT )
++
++ if( len < nsector*FAT_HARDSECT )
+ {
+ goto abort;
+ }
+@@ -208,7 +240,9 @@ PyObject * pcardext_read( PyObject * sel
+
+ if( FatReadFileExt( name, offset, len, buffer ) == len )
+ {
+- return PyString_FromStringAndSize( (char *)buffer, len );
++ // return PyString_FromStringAndSize( (char *)buffer, len );
++ return PY_String_Bytes( (char *)buffer, len );
++ // return PyBytes_FromStringAndSize( (char *)buffer, len );
+ }
+ else
+ {
+@@ -236,14 +270,15 @@ static PyMethodDef pcardext_methods[] =
+
+ static char pcardext_documentation[] = "Python extension for HP photocard services";
+
+-void initpcardext( void )
+-{
+- PyObject * mod = Py_InitModule4( "pcardext", pcardext_methods,
+- pcardext_documentation, (PyObject*)NULL,
+- PYTHON_API_VERSION );
+-
+- if (mod == NULL)
+- return;
++MOD_INIT(pcardext) {
++
++ PyObject* mod ;
++ MOD_DEF(mod, "pcardext", pcardext_documentation, pcardext_methods);
++ if (mod == NULL)
++ return MOD_ERROR_VAL;
++
++ return MOD_SUCCESS_VAL(mod);
++
+ }
+
+
+--- a/unload.py
++++ b/unload.py
+@@ -44,6 +44,11 @@ except ImportError:
+
+ # Local
+ from base.g import *
++from base.sixext import PY3
++if PY3:
++ log.error("This functionality is not spported in python3 environment.")
++ sys.exit(1)
++
+ from base import device, utils, tui, module
+ from prnt import cups
+
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
new file mode 100644
index 0000000000..e8ca8b2d6c
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/030-replace_unsafe_memcpy_with_memmove.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Pending
+
+https://bugs.launchpad.net/hplip/+bug/1672256
+
+memcpy should never be used with overlapping memory regions
+
+--- a/io/hpmud/musb.c
++++ b/io/hpmud/musb.c
+@@ -775,7 +775,7 @@ static int device_id(int fd, unsigned ch
+ len = size-1; /* leave byte for zero termination */
+ if (len > 2)
+ len -= 2;
+- memcpy(buffer, buffer+2, len); /* remove length */
++ memmove(buffer, buffer+2, len); /* remove length */
+ buffer[len]=0;
+ DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);
+
diff --git a/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch b/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
new file mode 100644
index 0000000000..93fdcf4bfd
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/050-fix-glibcisms.patch
@@ -0,0 +1,19 @@
+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
++++ b/scan/sane/OrbliteScan/LinuxCommon.h
+@@ -18,10 +18,8 @@ typedef u_int32_t UInt32;
+ typedef int32_t SInt32;
+ //typedef unsigned long UInt32;
+ //typedef signed long SInt32;
+-typedef __S64_TYPE SInt64;
+-typedef __U64_TYPE UInt64;
+-typedef __S64_TYPE int64_t;
+-typedef __U64_TYPE uint64_t;
++typedef int64_t SInt64;
++typedef uint64_t UInt64;
+
+ //typedef unsigned long ULONG;
+ //typedef void* LPVOID;
diff --git a/meta-oe/recipes-extended/hplip/hplip/600-fix.patch b/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
new file mode 100644
index 0000000000..cddc5e0065
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/600-fix.patch
@@ -0,0 +1,12 @@
+Upstream-Status: Pending
+
+--- a/configure.in
++++ b/configure.in
+@@ -254,7 +254,6 @@ if test "$class_driver" = "yes"; then
+ test `sh ./createPPD.sh -f` == 0
+ else
+ AC_MSG_RESULT(no)
+- test `sh ./createPPD.sh -q` == 0
+ fi
+ AM_CONDITIONAL(HPLIP_CLASS_DRIVER, test x$class_driver = xyes)
+
diff --git a/meta-oe/recipes-extended/hplip/hplip/configure.patch b/meta-oe/recipes-extended/hplip/hplip/configure.patch
new file mode 100644
index 0000000000..0e0fd47fa1
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/configure.patch
@@ -0,0 +1,13 @@
+Upstream-Status: Pending
+
+--- a/configure.in
++++ b/configure.in
+@@ -30,7 +30,7 @@
+ AC_INIT([HP Linux Imaging and Printing], [3.22.10], [3.22.10], [hplip])
+
+ #AM_INIT_AUTOMAKE([1.9 foreign])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AC_DISABLE_STATIC
+
+ # Checks for programs.
diff --git a/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
new file mode 100644
index 0000000000..f2cd2be60d
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/fix-libusb-paths.patch
@@ -0,0 +1,69 @@
+Don't hardcode paths to libusb, instead use pkg-config.
+
+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
+@@ -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_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
+
+ if NETWORK_BUILD
+@@ -364,9 +363,6 @@ hpmudext_la_LIBADD += libhpdiscovery.la
+ hpmudext_la_CFLAGS += -Iprotocol/discovery
+ endif
+
+-if !LIBUSB01_BUILD
+-hpmudext_la_CFLAGS +=-I/usr/include/libusb-1.0
+-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
new file mode 100644
index 0000000000..45b25c5e76
--- /dev/null
+++ b/meta-oe/recipes-extended/hplip/hplip/hplip-3.19.6-fix-return.patch
@@ -0,0 +1,22 @@
+From 2fcd0e79b21ec6dbf975ad7d1b5697a78993e2f1 Mon Sep 17 00:00:00 2001
+From: David Valleau <valleau@chromium.org>
+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(-)
+
+--- a/prnt/hpps/hppsfilter.c
++++ b/prnt/hpps/hppsfilter.c
+@@ -104,7 +104,7 @@ static void open_tempbookletfile(char *m
+ if(ptempbooklet_file == NULL)
+ {
+ fprintf(stderr, "ERROR: Unable to open temp file %s\n", temp_filename);
+- return 1;
++ return;
+ }
+ chmod(temp_filename, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
+
diff --git a/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb b/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb
deleted file mode 100644
index 1f1e80ce82..0000000000
--- a/meta-oe/recipes-extended/hplip/hplip_3.12.6.bb
+++ /dev/null
@@ -1,74 +0,0 @@
-SUMMARY = "HP Linux Imaging and Printing"
-LICENSE="GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=442bb3cbbeeb60643a87325718b8a8ee"
-
-PR = "r1"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
- file://setup-add-sleep-after-cups-reset.patch \
- file://fix-libusb-paths.patch \
- file://cups-1.6.patch \
- file://configure.patch \
- file://0001-include-cups-ppd.h-for-missing-ppd-definitions.patch \
-"
-
-DEPENDS += "cups python libusb"
-
-inherit autotools-brokensep python-dir pythonnative pkgconfig
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-EXTRA_OECONF += "\
- LIBUSBINCLUDEROOT=${STAGING_INCDIR} \
- --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 \
- --disable-foomatic-drv-install \
- --enable-foomatic-ppd-install \
- --enable-foomatic-rip-hplip-install \
- --with-cupsbackenddir=${libdir}/cups/backend \
- --with-cupsfilterdir=${libdir}/cups/filter \
-"
-
-PACKAGES += "${PN}-ppd ${PN}-cups ${PN}-backend ${PN}-filter ${PN}-hal"
-
-RDEPENDS_${PN} += " \
- python-syslog \
- python-pprint \
- python-compression \
- python-shell \
- python-xml \
- python-unixadmin \
- python-html \
- python-resource \
- python-terminal \
- python-subprocess\
-"
-RDEPENDS_${PN}-filter += "perl"
-
-# need to snag the debug file or OE will fail on backend package
-FILES_${PN}-dbg += "\
- ${libdir}/cups/backend/.debug \
- ${PYTHON_SITEPACKAGES_DIR}/.debug \
- ${libdir}/cups/filter/.debug "
-
-FILES_${PN}-dev += "${PYTHON_SITEPACKAGES_DIR}/*.la"
-FILES_${PN}-ppd = "${datadir}/ppd"
-FILES_${PN}-cups = "${datadir}/cups"
-FILES_${PN}-backend = "${libdir}/cups/backend"
-FILES_${PN}-filter = "${libdir}/cups/filter"
-FILES_${PN}-hal = "${datadir}/hal"
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/*.so"
-
-SRC_URI[md5sum] = "5303938e8630775ea6fb383af85775e5"
-SRC_URI[sha256sum] = "54578000792969adb583e75efeacb9c46ab69659ec7e9424de390613f3595775"
-
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..ed9f28e073
--- /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"
+
+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/hwloc/hwloc_1.11.5.bb b/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.bb
deleted file mode 100644
index 4fe6729ca3..0000000000
--- a/meta-oe/recipes-extended/hwloc/hwloc_1.11.5.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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3282e20dc3cec311deda3c6d4b1f990b"
-
-SRC_URI = "https://www.open-mpi.org/software/${PN}/v1.11/downloads/${BP}.tar.bz2"
-SRC_URI[md5sum] = "96c34136ff416d2b13a7821c27477bed"
-SRC_URI[sha256sum] = "95d80286dfe658a3f79e2ac90698782bb36e5504f4bac1bba2394ba14dbbad24"
-
-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.2.bb b/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.bb
new file mode 100644
index 0000000000..487b7da130
--- /dev/null
+++ b/meta-oe/recipes-extended/hwloc/hwloc_2.9.2.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] = "0a87fdf677f8b00b567d229b6320bf6b25c693edaa43e0b85268d999d6b060cf"
+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/0001-configure.ac-skip-running-test-program-when-cross-co.patch b/meta-oe/recipes-extended/icewm/icewm/0001-configure.ac-skip-running-test-program-when-cross-co.patch
new file mode 100644
index 0000000000..c5e210afcd
--- /dev/null
+++ b/meta-oe/recipes-extended/icewm/icewm/0001-configure.ac-skip-running-test-program-when-cross-co.patch
@@ -0,0 +1,54 @@
+From c2a67c1f62175ab061bc03d10dd766f968c6a097 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <naveen.kumar.saini@intel.com>
+Date: Fri, 2 Aug 2019 10:41:26 +0800
+Subject: [PATCH] configure.ac: skip running test program when cross-compiling
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -160,7 +160,7 @@ AC_CHECK_FUNCS([backtrace_symbols_fd mem
+ AC_FUNC_SELECT_ARGTYPES
+
+ AC_MSG_CHECKING([for strlcpy])
+-AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]],[[
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]],[[
+ char a[2];
+ if (strlcpy(a, "yes", 2) != 3)
+ return 1;]])],
+@@ -176,7 +176,7 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[#includ
+ ])
+
+ AC_MSG_CHECKING([for strlcat])
+-AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]],[[
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <string.h>]],[[
+ char a[4] = "no";
+ if (strlcat(a, "yes", 4) != 5)
+ return 1;]])],
+@@ -191,21 +191,6 @@ AC_RUN_IFELSE([AC_LANG_PROGRAM([[#includ
+ [Define to 1 if you have the strlcat function.])
+ ])
+
+-AC_MSG_CHECKING([for C++11 by default])
+-AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <regex>]],[[
+- if (__cplusplus < 201103L) return 1;]])],
+- [AC_MSG_RESULT([yes])],
+- [AC_MSG_RESULT([no])
+- AC_MSG_CHECKING([for C++11 when forced])
+- CXXFLAGS="$CXXFLAGS -std=c++11"
+- AC_RUN_IFELSE([AC_LANG_PROGRAM([[#include <regex>]],[[
+- if (__cplusplus < 201103L) return 1;]])],
+- [AC_MSG_RESULT([yes])],
+- [AC_MSG_RESULT([no])
+- AC_MSG_ERROR([Need C++11. Please set CXXFLAGS.])
+- ])
+- ])
+-
+ PKG_CHECK_MODULES([CORE],[fontconfig xrender xcomposite xdamage xfixes xext x11])
+ AC_SUBST([CORE_CFLAGS])
+ AC_SUBST([CORE_LIBS])
diff --git a/meta-oe/recipes-extended/icewm/icewm_2.9.9.bb b/meta-oe/recipes-extended/icewm/icewm_2.9.9.bb
new file mode 100644
index 0000000000..ecb0dbe73f
--- /dev/null
+++ b/meta-oe/recipes-extended/icewm/icewm_2.9.9.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] = "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/indent/indent/0001-Fix-builds-with-recent-gettext.patch b/meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch
new file mode 100644
index 0000000000..e9dadace02
--- /dev/null
+++ b/meta-oe/recipes-extended/indent/indent/0001-Fix-builds-with-recent-gettext.patch
@@ -0,0 +1,32 @@
+From 3349812de0598ca7722e0b7c7b7e5d48bd79bea9 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 20 Dec 2019 14:01:18 +0100
+Subject: [PATCH] Fix builds with recent gettext
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in
+ AUTOMAKE_OPTIONS = no-texinfo.tex
+
+-SUBDIRS = intl src doc po man
++SUBDIRS = src po man
+
+ BUILT_SOURCES =
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -58,7 +58,6 @@ fi
+ AC_HEADER_DIRENT
+
+ AC_OUTPUT([
+- intl/Makefile
+ po/Makefile.in
+ Makefile
+ src/Makefile
diff --git a/meta-oe/recipes-extended/indent/indent/0001-Makefile.am-remove-regression-dir.patch b/meta-oe/recipes-extended/indent/indent/0001-Makefile.am-remove-regression-dir.patch
new file mode 100644
index 0000000000..357d77d835
--- /dev/null
+++ b/meta-oe/recipes-extended/indent/indent/0001-Makefile.am-remove-regression-dir.patch
@@ -0,0 +1,67 @@
+From 27bda5ee884e79d6d0e76955124d2b0c5798d6cf Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 25 Feb 2019 00:34:17 -0800
+Subject: [PATCH] Makefile.am: remove regression dir
+
+Remove regression dir to fix below do_compile
+error:
+| Making all in regression
+| /bin/sh: line 20: cd: regression: No such file or directory
+| Makefile:451: recipe for target 'all-recursive' failed
+
+BTW, it should be safe not to cover regression dir
+as there is no Makefile.in under ${S}/regression
+and the content of ${S}/regression/Makefile as below.
+-------------------------------------
+all:
+
+install:
+
+check:
+ ./TEST
+
+distclean: clean
+
+maintainer-clean: clean
+
+distdir:
+
+clean:
+ @rm -rf output
+
+.PHONY: all install
+-------------------------------------
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.am | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index ba37a42..548fea7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in
+ AUTOMAKE_OPTIONS = no-texinfo.tex
+
+-SUBDIRS = intl src doc po man regression
++SUBDIRS = intl src doc po man
+
+ BUILT_SOURCES =
+
+@@ -13,8 +13,7 @@ EXTRA_DIST = README.md \
+ aclocal/UTIMBUF.m4 \
+ miscel/Makefile.mingw32 \
+ miscel/README.vc++ \
+- bootstrap \
+- regression
++ bootstrap
+
+ DISTCLEANFILES=config/config.cache config/config.log config.h
+
+--
+2.17.1
+
diff --git a/meta-oe/recipes-extended/indent/indent/0001-Remove-dead-paren_level-code.patch b/meta-oe/recipes-extended/indent/indent/0001-Remove-dead-paren_level-code.patch
new file mode 100644
index 0000000000..5a474cf0fc
--- /dev/null
+++ b/meta-oe/recipes-extended/indent/indent/0001-Remove-dead-paren_level-code.patch
@@ -0,0 +1,79 @@
+From 5af65ce9674a69054c9a8405e51794c6f3ca41df Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 4 Jun 2021 12:34:18 -0700
+Subject: [PATCH] Remove dead paren_level code
+
+Local variable `paren_level' in src/output.c:dump_line_code() is
+initialized to 0, then incremented with count_parens() return
+value, and then the variable is never used. Also count_parens()
+has no side effect. Thus this patch removes this useless code.
+
+Upstream-Status: Submitted [https://mail.gnu.org/archive/html/bug-indent/2011-04/msg00000.html]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/output.c | 35 -----------------------------------
+ 1 file changed, 35 deletions(-)
+
+diff --git a/src/output.c b/src/output.c
+index ee01bcc..5b92167 100644
+--- a/src/output.c
++++ b/src/output.c
+@@ -798,37 +798,6 @@ static int dump_line_label(void)
+ return cur_col;
+ }
+
+-/**
+- *
+- */
+-
+-static int count_parens(
+- const char * string)
+-{
+- int paren_level = 0;
+-
+- while (*string)
+- {
+- switch (*string)
+- {
+- case '(':
+- case '[':
+- paren_level++;
+- break;
+- case ')':
+- case ']':
+- paren_level--;
+- break;
+- default:
+- break;
+- }
+-
+- string++;
+- }
+-
+- return paren_level;
+-}
+-
+ /**
+ *
+ */
+@@ -840,8 +809,6 @@ static void dump_line_code(
+ BOOLEAN * pbreak_line,
+ int target_col_break)
+ {
+- int paren_level = 0;
+-
+ if (s_code != e_code)
+ { /* print code section, if any */
+ int i;
+@@ -928,8 +895,6 @@ static void dump_line_code(
+
+ *pcur_col = count_columns (*pcur_col, s_code, NULL_CHAR);
+
+- paren_level += count_parens(s_code);
+-
+ s_code[buf_break->offset] = c;
+
+ *pnot_truncated = 0;
+--
+2.31.1
+
diff --git a/meta-oe/recipes-extended/indent/indent/0001-src-indent.c-correct-the-check-for-locale.h.patch b/meta-oe/recipes-extended/indent/indent/0001-src-indent.c-correct-the-check-for-locale.h.patch
new file mode 100644
index 0000000000..7df7ecb387
--- /dev/null
+++ b/meta-oe/recipes-extended/indent/indent/0001-src-indent.c-correct-the-check-for-locale.h.patch
@@ -0,0 +1,40 @@
+From 75369ce004ec0f5e46a432fa1dac8cfc7ae1ef8d Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Sun, 24 Feb 2019 22:35:08 -0800
+Subject: [PATCH] src/indent.c: correct the check for locale.h
+
+Adjust to check HAVE_LC_MESSAGES or HAVE_LOCALE_H
+to determine whether include locale.h or not to
+fix below issue:
+
+| ../../indent-2.2.12/src/indent.c: In function 'main':
+| ../../indent-2.2.12/src/indent.c:1062:5: error: implicit declaration of function 'setlocale'; did you mean 'setstate'? [-Werror=implicit-function-declaration]
+| setlocale(LC_ALL, "");
+| ^~~~~~~~~
+| setstate
+| ../../indent-2.2.12/src/indent.c:1062:5: error: nested extern declaration of 'setlocale' [-Werror=nested-externs]
+| ../../indent-2.2.12/src/indent.c:1062:15: error: 'LC_ALL' undeclared (first use in this function)
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ src/indent.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/indent.c b/src/indent.c
+index 4d666e2..0c2780b 100644
+--- a/src/indent.c
++++ b/src/indent.c
+@@ -71,7 +71,7 @@
+ #include <string.h>
+ #include <ctype.h>
+ #include <stdlib.h>
+-#ifdef HAVE_LOCALE_H
++#if defined(HAVE_LC_MESSAGES) || defined(HAVE_LOCALE_H)
+ #include <locale.h>
+ #endif
+ #include "indent.h"
+--
+2.17.1
+
diff --git a/meta-oe/recipes-extended/indent/indent_2.2.10.bb b/meta-oe/recipes-extended/indent/indent_2.2.10.bb
deleted file mode 100644
index d25e8e3174..0000000000
--- a/meta-oe/recipes-extended/indent/indent_2.2.10.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A GNU program for formatting C code"
-HOMEPAGE = "http://www.gnu.org/software/indent/"
-SECTION = "Applications/Text"
-DESCRIPTION = "Indent is a GNU program for beautifying C code, so that \
-it is easier to read. Indent can also convert from one C writing style \
-to a different one. Indent understands correct C syntax and tries to handle \
-incorrect C syntax. \
-Install the indent package if you are developing applications in C and \
-you want a program to format your code."
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "virtual/gettext"
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "be35ea62705733859fbf8caf816d8959"
-SRC_URI[sha256sum] = "8a9b41be5bfcab5d8c1be74204b10ae78789fc3deabea0775fdced8677292639"
-
-inherit autotools gettext
-
-FILES_${PN}-doc += "/usr/doc/indent/indent.html"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/indent/indent_2.2.12.bb b/meta-oe/recipes-extended/indent/indent_2.2.12.bb
new file mode 100644
index 0000000000..1a7d61abc0
--- /dev/null
+++ b/meta-oe/recipes-extended/indent/indent_2.2.12.bb
@@ -0,0 +1,28 @@
+SUMMARY = "A GNU program for formatting C code"
+HOMEPAGE = "http://www.gnu.org/software/indent/"
+SECTION = "Applications/Text"
+DESCRIPTION = "Indent is a GNU program for beautifying C code, so that \
+it is easier to read. Indent can also convert from one C writing style \
+to a different one. Indent understands correct C syntax and tries to handle \
+incorrect C syntax. \
+Install the indent package if you are developing applications in C and \
+you want a program to format your code."
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "virtual/gettext"
+
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://0001-src-indent.c-correct-the-check-for-locale.h.patch \
+ file://0001-Makefile.am-remove-regression-dir.patch \
+ file://0001-Fix-builds-with-recent-gettext.patch \
+ file://0001-Remove-dead-paren_level-code.patch \
+ "
+SRC_URI[md5sum] = "4764b6ac98f6654a35da117b8e5e8e14"
+SRC_URI[sha256sum] = "e77d68c0211515459b8812118d606812e300097cfac0b4e9fb3472664263bb8b"
+
+inherit autotools gettext texinfo
+
+CFLAGS:append:class-native = " -Wno-error=unused-value"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb b/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb
new file mode 100644
index 0000000000..84ed3b052b
--- /dev/null
+++ b/meta-oe/recipes-extended/inputattach-config/inputattach-config.bb
@@ -0,0 +1,12 @@
+SUMMARY = "inputattach configuration file"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+
+SRC_URI = "file://inputattach.conf"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -Dm 0644 ${WORKDIR}/inputattach.conf ${D}${sysconfdir}/inputattach.conf
+}
diff --git a/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf b/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf
new file mode 100644
index 0000000000..86c421012b
--- /dev/null
+++ b/meta-oe/recipes-extended/inputattach-config/inputattach-config/inputattach.conf
@@ -0,0 +1,8 @@
+#
+# Configuration for inputattach
+#
+# Every line of this file are inputattach arguments, see 'inputattach --help'.
+# An inputattach instance will be started for each element.
+#
+# --microsoft /dev/ttyS0
+# --baud 9600 --w8001 /dev/ttyS1
diff --git a/meta-oe/recipes-extended/iotop/iotop_0.6.bb b/meta-oe/recipes-extended/iotop/iotop_0.6.bb
deleted file mode 100644
index 51ea32c6f3..0000000000
--- a/meta-oe/recipes-extended/iotop/iotop_0.6.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Simple top-like I/O monitor"
-DESCRIPTION = "iotop does for I/O usage what top(1) does for CPU usage. \
- It watches I/O usage information output by the Linux kernel and displays \
- a table of current I/O usage by processes on the system."
-HOMEPAGE = "http://guichaz.free.fr/iotop/"
-
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-
-SRC_URI = "http://guichaz.free.fr/iotop/files/${BP}.tar.bz2"
-SRC_URI[md5sum] = "5ef9456b26d7694abf3101a72e1e0d1d"
-SRC_URI[sha256sum] = "3adea2a24eda49bbbaeb4e6ed2042355b441dbd7161e883067a02bfc8dcef75b"
-
-UPSTREAM_CHECK_URI = "http://repo.or.cz/iotop.git/tags"
-UPSTREAM_CHECK_REGEX = "iotop-(?P<pver>\d+(\.\d+)+)"
-
-inherit distutils
-
-do_install_append() {
- rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.pyo || true
- rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/site.py || true
-}
-
-RDEPENDS_${PN} = "python-curses python-textutils \
- python-codecs python-ctypes python-pprint \
- python-shell"
diff --git a/meta-oe/recipes-extended/iotop/iotop_1.21.bb b/meta-oe/recipes-extended/iotop/iotop_1.21.bb
new file mode 100644
index 0000000000..8eebd691a7
--- /dev/null
+++ b/meta-oe/recipes-extended/iotop/iotop_1.21.bb
@@ -0,0 +1,24 @@
+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/isomd5sum/files/0001-tweak-install-prefix.patch b/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
index bcfc117245..61310ccf5b 100644
--- a/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
+++ b/meta-oe/recipes-extended/isomd5sum/files/0001-tweak-install-prefix.patch
@@ -1,7 +1,7 @@
-From cffe4767f89ea0b54b57e8bf9065a08a9c38d46e Mon Sep 17 00:00:00 2001
+From a70513ff59da3c593c76330afb445c21761c3268 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 18 Jul 2017 21:53:00 -0400
-Subject: [PATCH] tweak install prefix
+Date: Tue, 31 Jul 2018 17:14:24 +0800
+Subject: [PATCH 1/2] tweak install prefix
Upstream-Status: Inappropriate [oe specific]
@@ -11,7 +11,7 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/Makefile b/Makefile
-index df16a3b..fbdfcb4 100644
+index c98cf35..7c5907f 100644
--- a/Makefile
+++ b/Makefile
@@ -39,26 +39,26 @@ pyisomd5sum.so: $(PYOBJS)
@@ -43,7 +43,7 @@ index df16a3b..fbdfcb4 100644
- install -m 0644 libcheckisomd5.h $(DESTDIR)/usr/include/
- install -m 0644 libimplantisomd5.a $(DESTDIR)/usr/$(LIBDIR)
- install -m 0644 libcheckisomd5.a $(DESTDIR)/usr/$(LIBDIR)
-- sed "s#@VERSION@#${VERSION}#g; s#@includedir@#${DESTDIR}/usr/include#g; s#@libdir@#${DESTDIR}/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}/usr/share/pkgconfig/isomd5sum.pc
+- sed "s#@VERSION@#${VERSION}#g; s#@includedir@#/usr/include#g; s#@libdir@#/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}/usr/share/pkgconfig/isomd5sum.pc
+ install -d -m 0755 $(DESTDIR)$(includedir)
+ install -d -m 0755 $(DESTDIR)$(libdir)
+ install -d -m 0755 $(DESTDIR)${datadir}/pkgconfig
@@ -51,10 +51,10 @@ index df16a3b..fbdfcb4 100644
+ install -m 0644 libcheckisomd5.h $(DESTDIR)$(includedir)
+ install -m 0644 libimplantisomd5.a $(DESTDIR)$(libdir)
+ install -m 0644 libcheckisomd5.a $(DESTDIR)$(libdir)
-+ sed "s#@VERSION@#${VERSION}#g; s#@includedir@#${DESTDIR}/usr/include#g; s#@libdir@#${DESTDIR}/usr/${LIBDIR}#g" isomd5sum.pc.in > ${DESTDIR}${datadir}/pkgconfig/isomd5sum.pc
++ sed "s#@VERSION@#${VERSION}#g; s#@includedir@#$(includedir)#g; s#@libdir@#$(libdir)#g" isomd5sum.pc.in > ${DESTDIR}${datadir}/pkgconfig/isomd5sum.pc
clean:
rm -f *.o *.so *.pyc *.a .depend *~
--
-2.8.1
+2.7.4
diff --git a/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb
deleted file mode 100644
index 815113e674..0000000000
--- a/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.1.bb
+++ /dev/null
@@ -1,35 +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_${PN} = "openssl curl"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-SRC_URI = "git://github.com/rhinstaller/isomd5sum.git;branch=master \
- 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}-${PN} ${PYTHON_PN}-${PN}-dbg"
-
-FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}/pyisomd5sum.so"
-FILES_${PYTHON_PN}-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug/pyisomd5sum.so"
-
-SRCREV = "69dc036d20761715b734ca9cc59ecc6dc8145026"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.bb
new file mode 100644
index 0000000000..4f8ea64a26
--- /dev/null
+++ b/meta-oe/recipes-extended/isomd5sum/isomd5sum_1.2.3.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 += "${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/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.11.bb b/meta-oe/recipes-extended/jansson/jansson_2.11.bb
deleted file mode 100644
index 370fa22488..0000000000
--- a/meta-oe/recipes-extended/jansson/jansson_2.11.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Jansson is a C library for encoding, decoding and manipulating JSON data"
-HOMEPAGE = "http://www.digip.org/jansson/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8b70213ec164c7bd876ec2120ba52f61"
-
-SRC_URI = "http://www.digip.org/jansson/releases/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "7af071db9970441e1eaaf25662310e33"
-SRC_URI[sha256sum] = "6e85f42dabe49a7831dbdd6d30dca8a966956b51a9a50ed534b82afc3fa5b2f4"
-
-inherit autotools pkgconfig
-
diff --git a/meta-oe/recipes-extended/jansson/jansson_2.14.bb b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
new file mode 100644
index 0000000000..833060686a
--- /dev/null
+++ b/meta-oe/recipes-extended/jansson/jansson_2.14.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Jansson is a C library for encoding, decoding and manipulating JSON data"
+HOMEPAGE = "http://www.digip.org/jansson/"
+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 \
+ 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"
+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
new file mode 100644
index 0000000000..39d6459227
--- /dev/null
+++ b/meta-oe/recipes-extended/jpnevulator/jpnevulator_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "A handy serial sniffer"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
+
+PV = "2.3.6+git${SRCPV}"
+
+SRC_URI = "git://github.com/snarlistic/jpnevulator.git;protocol=https;branch=master"
+SRCREV = "bc1d4f6587a4a4829b5d55e3ca7ad584da6de545"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake install 'DESTDIR=${D}'
+}
+
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 0f798d2334..15a7965935 100644
--- a/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
+++ b/meta-oe/recipes-extended/konkretcmpi/konkretcmpi_0.9.2.bb
@@ -6,10 +6,10 @@ implementations for many of the provider operations."
HOMEPAGE = "https://github.com/rnovacek/konkretcmpi"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=f673270bfc350d9ce1efc8724c6c1873"
-DEPENDS_append_class-target = " swig-native sblim-cmpi-devel python"
-DEPENDS_append_class-native = " cmpi-bindings-native"
+DEPENDS:append:class-target = " swig-native sblim-cmpi-devel python3"
+DEPENDS:append:class-native = " cmpi-bindings-native"
-SRC_URI = "git://github.com/rnovacek/konkretcmpi.git \
+SRC_URI = "git://github.com/rnovacek/konkretcmpi.git;branch=master;protocol=https \
file://0001-CMakeLists.txt-fix-lib64-can-not-be-shiped-in-64bit-.patch \
file://0001-drop-including-rpath-cmake-module.patch \
"
@@ -24,15 +24,16 @@ EXTRA_OECMAKE = "-DWITH_PYTHON=ON \
${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
"
-LDFLAGS_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
-do_install_append() {
+do_install:append() {
rm -rf ${D}${datadir}
}
-PACKAGES =+ "${PN}-python ${PN}-python-dbg"
+PACKAGES =+ "${PN}-python"
-FILES_${PN}-python = "${libdir}/python2.7/site-packages/konkretmof.py* ${libdir}/python2.7/site-packages/_konkretmof.so"
-FILES_${PN}-python-dbg = "${libdir}/python2.7/site-packages/.debug/*"
+RPROVIDES:${PN}-dbg += "${PN}-python-dbg"
+
+FILES:${PN}-python = "${libdir}/python*/site-packages/konkretmof.py* ${libdir}/python*/site-packages/_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.1.0.bb b/meta-oe/recipes-extended/lastlog2/lastlog2_1.1.0.bb
new file mode 100644
index 0000000000..757af0073a
--- /dev/null
+++ b/meta-oe/recipes-extended/lastlog2/lastlog2_1.1.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 = "585153a577788c590370d20e40263b61238dfab3"
+
+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/lcdproc/lcdproc/0001-include-asm-ioctl.h-explicitly.patch b/meta-oe/recipes-extended/lcdproc/lcdproc/0001-include-asm-ioctl.h-explicitly.patch
deleted file mode 100644
index abdedad5d6..0000000000
--- a/meta-oe/recipes-extended/lcdproc/lcdproc/0001-include-asm-ioctl.h-explicitly.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b5ca64c7398d516e9845d849e8306df7ac024bc4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 11 Apr 2017 13:59:34 -0700
-Subject: [PATCH] include asm/ioctl.h explicitly
-
-Needed for _IOC* defines
-
-helps compiling with musl where this file is
-not included indirectly
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- server/drivers/hd44780-pifacecad.c | 1 +
- server/drivers/hd44780-spi.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/server/drivers/hd44780-pifacecad.c b/server/drivers/hd44780-pifacecad.c
-index 43db19c..e2798ad 100644
---- a/server/drivers/hd44780-pifacecad.c
-+++ b/server/drivers/hd44780-pifacecad.c
-@@ -54,6 +54,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
-+#include <asm/ioctl.h>
- #include <stdint.h>
- #include <linux/spi/spidev.h>
-
-diff --git a/server/drivers/hd44780-spi.c b/server/drivers/hd44780-spi.c
-index 5f94333..8a4015b 100644
---- a/server/drivers/hd44780-spi.c
-+++ b/server/drivers/hd44780-spi.c
-@@ -29,6 +29,7 @@
- #include <unistd.h>
- #include <fcntl.h>
- #include <sys/ioctl.h>
-+#include <asm/ioctl.h>
- #include <stdint.h>
- #include <linux/spi/spidev.h>
-
---
-2.12.2
-
diff --git a/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb b/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
deleted file mode 100644
index fad1d616c3..0000000000
--- a/meta-oe/recipes-extended/lcdproc/lcdproc_git.bb
+++ /dev/null
@@ -1,99 +0,0 @@
-DESCRIPTION = "LCDproc is a client/server suite to drive all kinds of LCD (-like) devices. The client \
-shipped with this package can be used to acquire various kinds of system stats."
-SUMMARY = "Drivers for character-based LCD displays"
-HOMEPAGE = "http://lcdproc.org"
-SECTION = "utils"
-LICENSE = "GPLv2+"
-DEPENDS = "ncurses lirc"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760 \
- file://README.md;beginline=107;md5=5c927ce1742d6d5cddc45b7ad6230f75"
-
-BASEPV = "0.5.9"
-PV = "${BASEPV}+git${SRCPV}"
-SRCREV = "79fa538647c3e09a87ecc86aae1abbb82e0a25c5"
-SRC_URI = "git://github.com/lcdproc/lcdproc;branch=lcdproc-${BASEPV} \
- file://0001-include-asm-ioctl.h-explicitly.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig update-rc.d
-
-LCD_DRIVERS ?= "all,!irman,!svga"
-LCD_DEFAULT_DRIVER ?= "curses"
-
-PACKAGECONFIG ??= "usb"
-PACKAGECONFIG[usb] = "--enable-libusb,--disable-libusb,virtual/libusb0"
-PACKAGECONFIG[ftdi] = "--enable-libftdi,--disable-libftdi,libftdi"
-PACKAGECONFIG[g15] = ",,libg15 g15daemon libg15render,"
-PACKAGECONFIG[hid] = "--enable-libhid,--disable-libhid,libhid"
-PACKAGECONFIG[png] = "--enable-libpng,--disable-libpng,libpng"
-
-LCD_DRIVERS_append = "${@bb.utils.contains('PACKAGECONFIG', 'g15', '', ',!g15', d)}"
-
-EXTRA_OECONF = "--enable-drivers='${LCD_DRIVERS}'"
-
-do_install () {
- # binaries
- install -D -m 0755 server/LCDd ${D}${sbindir}/LCDd
- install -D -m 0755 clients/lcdproc/lcdproc ${D}${bindir}/lcdproc
-
- # init scripts
- install -d ${D}${sysconfdir}/init.d
- # so far, not fixed :-( and now even uglier :-((
- cat scripts/init-LCDd.debian | sed -e s'/--oknodo//' -e 's/ -s -f / -s 1 -f 1 /' -e 's/force-reload/force-restart/' -e 's/sleep 1/sleep 4/' > ${D}${sysconfdir}/init.d/lcdd
- chmod 0755 ${D}${sysconfdir}/init.d/lcdd
- install -m 0755 scripts/init-lcdproc.debian ${D}${sysconfdir}/init.d/lcdproc
- sed -i s'/--oknodo//' ${D}${sysconfdir}/init.d/lcdproc
-
- # configuration files
- install -m 0644 ${S}/LCDd.conf ${D}${sysconfdir}/LCDd.conf
- sed -i 's!^DriverPath=.*!DriverPath=${libdir}/lcdproc/!' ${D}${sysconfdir}/LCDd.conf
- sed -i 's!^Driver=.*!Driver=${LCD_DEFAULT_DRIVER}!' ${D}${sysconfdir}/LCDd.conf
- install -m 0644 ${S}/clients/lcdproc/lcdproc.conf ${D}${sysconfdir}/lcdproc.conf
-
- # driver library files
- install -d ${D}${libdir}/lcdproc
- for i in server/drivers/*.so; do
- install -m 0644 $i ${D}${libdir}/lcdproc/
- done
- # binaries
- install -D -m 0755 clients/lcdvc/lcdvc ${D}${sbindir}/lcdvc
-
- # configuration files
- install -D -m 0644 ${S}/clients/lcdvc/lcdvc.conf ${D}${sysconfdir}/lcdvc.conf
-}
-
-PACKAGES =+ "lcdd lcdvc"
-
-RRECOMMENDS_${PN} = "lcdd"
-
-FILES_lcdd = "${sysconfdir}/LCDd.conf \
- ${sbindir}/LCDd \
- ${sysconfdir}/init.d/lcdd"
-
-CONFFILES_lcdd = "${sysconfdir}/LCDd.conf"
-CONFFILES_${PN} = "${sysconfdir}/lcdproc.conf"
-CONFFILES_lcdvc = "${sysconfdir}/lcdvc.conf"
-FILES_lcdvc = "${sysconfdir}/lcdvc.conf ${sbindir}/lcdvc"
-
-# Driver packages
-
-# USB / no USB trickery
-
-RCONFLICTS_lcdd-driver-hd47780nousb = "lcdd-driver-hd44780"
-RCONFLICTS_lcdd-driver-hd47780 = "lcdd-driver-hd44780nousb"
-
-INITSCRIPT_PACKAGES = "lcdd lcdproc"
-INITSCRIPT_NAME_lcdd = "lcdd"
-INITSCRIPT_NAME_lcdproc = "lcdproc"
-INITSCRIPT_PARAMS_lcdd = "defaults 70 21"
-INITSCRIPT_PARAMS_lcdproc = "defaults 71 20"
-
-python populate_packages_prepend() {
- plugindir = d.expand('${libdir}/lcdproc')
- do_split_packages(d, plugindir, '(.*)\.so$', 'lcdd-driver-%s', 'LCDd driver for %s', prepend=True)
-}
-
-PACKAGES_DYNAMIC += "^lcdd-driver-.*"
diff --git a/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb b/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
new file mode 100644
index 0000000000..609e55f4ac
--- /dev/null
+++ b/meta-oe/recipes-extended/libbacktrace/libbacktrace_git.bb
@@ -0,0 +1,30 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A C library that may be linked into a C/C++ program to produce symbolic backtraces"
+HOMEPAGE = "https://github.com/ianlancetaylor/libbacktrace"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=24b5b3feec63c4be0975e1fea5100440"
+
+DEPENDS += "libunwind"
+
+SRC_URI = "git://github.com/ianlancetaylor/libbacktrace;protocol=https;branch=master"
+
+PV = "1.0+git${SRCPV}"
+SRCREV = "4f57c999716847e45505b3df170150876b545088"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+EXTR_OECONF += "--with-system-libunwind"
+
+CFLAGS += "-fPIC"
+
+do_configure() {
+ oe_runconf
+}
+
+# libunwind does not support RISCV yet
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
diff --git a/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch b/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
deleted file mode 100644
index 745883ebe8..0000000000
--- a/meta-oe/recipes-extended/libblockdev/files/0001-fix-configure-and-compile-failures.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 86686ccbf43c5d9e8c8dc97c66ba09e522050e5e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 10:06:24 +0800
-Subject: [PATCH 1/3] fix configure and compile failures
-
-1. Fix do_configure failure
----------------------------
-|Checking header volume_key/libvolume_key.h existence and usability.
-../tmp/6tvtK.c:1:38: fatal error: volume_key/libvolume_key.h:
-No such file or directory
-| #include <volume_key/libvolume_key.h>
-|Checking header dmraid/dmraid.h existence and usability.../tmp/
-ktVJ6.c:1:27: fatal error: dmraid/dmraid.h: No such file or directory
-| #include <dmraid/dmraid.h>
----------------------------
-We explictly add volume_key and dmraid to DEPENDS, do not need
-configure to test.
-
-2. Fix config.h not found
-Add it to configure.ac
-
-3. Correct AC_DEFINE
-...
-autoheader: warning: missing template: LIBMOUNT_NEW_ERR_API
-autoheader: Use AC_DEFINE([LIBMOUNT_NEW_ERR_API], [], [Description])
-...
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d41a307..b036e04 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -9,6 +9,8 @@ AC_DISABLE_STATIC
- AM_INIT_AUTOMAKE([foreign -Wall -Werror -Wno-syntax -Wno-portability])
- AC_CONFIG_MACRO_DIR([m4])
-
-+AC_CONFIG_HEADERS([config.h])
-+
- AM_PATH_PYTHON
-
- AM_PROG_AR
-@@ -154,7 +156,6 @@ LIBBLOCKDEV_PKG_CHECK_MODULES([KMOD], [libkmod >= 19])
- AS_IF([test "x$with_crypto" != "xno"],
- [LIBBLOCKDEV_PKG_CHECK_MODULES([CRYPTSETUP], [libcryptsetup >= 1.6.7])
- LIBBLOCKDEV_PKG_CHECK_MODULES([NSS], [nss >= 3.18.0])
-- LIBBLOCKDEV_CHECK_HEADER([volume_key/libvolume_key.h], [$GLIB_CFLAGS $NSS_CFLAGS], [libvolume_key.h not available])
- ],
- [])
-
-@@ -162,10 +163,6 @@ AS_IF([test "x$with_dm" != "xno" -o "x$with_lvm" != "xno" -o "x$with_lvm_dbus" !
- [LIBBLOCKDEV_PKG_CHECK_MODULES([DEVMAPPER], [devmapper >= 1.02.93])],
- [])
-
--AS_IF([test "x$with_dm" != "xno"],
-- [LIBBLOCKDEV_CHECK_HEADER([dmraid/dmraid.h], [], [dmraid.h not available])],
-- [])
--
- AS_IF([test "x$with_part" != "xno" -o "x$with_fs" != "xno"],
- [LIBBLOCKDEV_PKG_CHECK_MODULES([PARTED], [libparted >= 3.1])]
- [])
-@@ -174,7 +171,8 @@ AS_IF([test "x$with_fs" != "xno"],
- [LIBBLOCKDEV_PKG_CHECK_MODULES([MOUNT], [mount >= 2.23.0])
- # new versions of libmount has some new functions we can use
- AS_IF([$PKG_CONFIG --atleast-version=2.30.0 mount],
-- [AC_DEFINE([LIBMOUNT_NEW_ERR_API])], [])
-+ [AC_DEFINE([LIBMOUNT_NEW_ERR_API], [1], [new versions of libmount has some new functions we can use])],
-+ [])
-
- LIBBLOCKDEV_PKG_CHECK_MODULES([BLKID], [blkid >= 2.23.0])
- # older versions of libblkid don't support BLKID_SUBLKS_BADCSUM so let's just
---
-2.14.3
-
diff --git a/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch b/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch
deleted file mode 100644
index 0719759cdb..0000000000
--- a/meta-oe/recipes-extended/libblockdev/files/0002-remove-python2-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 40dae7ea6450cb30f066da8443eabf063b5b0ad7 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 02:05:40 -0400
-Subject: [PATCH 2/3] remove python2 support
-
-Only python3 is required.
-
-Upstream-Status: Inappropriate [wr-installer specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/python/gi/overrides/Makefile.am | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/src/python/gi/overrides/Makefile.am b/src/python/gi/overrides/Makefile.am
-index a2927ac..6385502 100644
---- a/src/python/gi/overrides/Makefile.am
-+++ b/src/python/gi/overrides/Makefile.am
-@@ -1,8 +1,3 @@
--pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
--
--overridesdir = $(pylibdir)/gi/overrides
--dist_overrides_DATA = BlockDev.py
--
- if WITH_PYTHON3
- py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
- py3overridesdir = $(py3libdir)/gi/overrides
---
-1.8.3.1
-
diff --git a/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch b/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
deleted file mode 100644
index ac5b5e2beb..0000000000
--- a/meta-oe/recipes-extended/libblockdev/files/0003-remove-dmraid-while-compiling-with-with-dm.patch
+++ /dev/null
@@ -1,492 +0,0 @@
-From bda7c937ba544182a5cae2a9cf0c173e0ba268c9 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 09:47:23 +0800
-Subject: [PATCH 3/3] remove dmraid while compiling with --with-dm
-
-Fix the following failure:
-
-...
-Perhaps you should add the directory containing `dmraid.pc'
-to the PKG_CONFIG_PATH environment variable
-No package 'dmraid' found
-...
-
-...
-../../../git/src/plugins/dm.c:24:10: fatal error: dmraid/dmraid.h: No
-such file or directory
- #include <dmraid/dmraid.h>
- ^~~~~~~~~~~~~~~~~
-...
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/lib/plugin_apis/dm.api | 50 ------
- src/plugins/Makefile.am | 2 +-
- src/plugins/dm.c | 330 ------------------------------------
- src/plugins/dm.h | 5 -
- src/python/gi/overrides/BlockDev.py | 6 -
- 5 files changed, 1 insertion(+), 392 deletions(-)
-
-diff --git a/src/lib/plugin_apis/dm.api b/src/lib/plugin_apis/dm.api
-index 04fd8d8..5d30b6a 100644
---- a/src/lib/plugin_apis/dm.api
-+++ b/src/lib/plugin_apis/dm.api
-@@ -111,53 +111,3 @@ gchar* bd_dm_get_subsystem_from_name (const gchar *device_name, GError **error);
- * Tech category: %BD_DM_TECH_MAP-%BD_DM_TECH_MODE_QUERY
- */
- gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean active_only, GError **error);
--
--/**
-- * bd_dm_get_member_raid_sets:
-- * @name: (allow-none): name of the member
-- * @uuid: (allow-none): uuid of the member
-- * @major: major number of the device or -1 if not specified
-- * @minor: minor number of the device or -1 if not specified
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: (transfer full) (array zero-terminated=1): list of names of the RAID sets related to
-- * the member or %NULL in case of error
-- *
-- * One of @name, @uuid or @major:@minor has to be given.
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY
-- */
--gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error);
--
--/**
-- * bd_dm_activate_raid_set:
-- * @name: name of the DM RAID set to activate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully activate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_CREATE_ACTIVATE
-- */
--gboolean bd_dm_activate_raid_set (const gchar *name, GError **error);
--
--/**
-- * bd_dm_deactivate_raid_set:
-- * @name: name of the DM RAID set to deactivate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully deactivate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_REMOVE_DEACTIVATE
-- */
--gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error);
--
--/**
-- * bd_dm_get_raid_set_type:
-- * @name: name of the DM RAID set to get the type of
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: string representation of the @name RAID set's type
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_QUERY
-- */
--gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error);
-diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
-index b69c8f7..7575f4a 100644
---- a/src/plugins/Makefile.am
-+++ b/src/plugins/Makefile.am
-@@ -75,7 +75,7 @@ endif
-
- if WITH_DM
- libbd_dm_la_CFLAGS = $(GLIB_CFLAGS) $(DEVMAPPER_CFLAGS) $(UDEV_CFLAGS) -Wall -Wextra -Werror
--libbd_dm_la_LIBADD = $(GLIB_LIBS) $(DEVMAPPER_LIBS) $(UDEV_LIBS) -ldmraid ${builddir}/../utils/libbd_utils.la
-+libbd_dm_la_LIBADD = $(GLIB_LIBS) $(DEVMAPPER_LIBS) $(UDEV_LIBS) ${builddir}/../utils/libbd_utils.la
- libbd_dm_la_LDFLAGS = -L${srcdir}/../utils/ -version-info 2:0:0 -Wl,--no-undefined
- # Dear author of libdmdraid, VERSION really is not a good name for an enum member!
- libbd_dm_la_CPPFLAGS = -I${builddir}/../../include/ -UVERSION
-diff --git a/src/plugins/dm.c b/src/plugins/dm.c
-index 0e5466c..31ebe96 100644
---- a/src/plugins/dm.c
-+++ b/src/plugins/dm.c
-@@ -21,17 +21,11 @@
- #include <unistd.h>
- #include <blockdev/utils.h>
- #include <libdevmapper.h>
--#include <dmraid/dmraid.h>
- #include <libudev.h>
-
- #include "dm.h"
- #include "check_deps.h"
-
--/* macros taken from the pyblock/dmraid.h file plus one more*/
--#define for_each_raidset(_c, _n) list_for_each_entry(_n, LC_RS(_c), list)
--#define for_each_subset(_rs, _n) list_for_each_entry(_n, &(_rs)->sets, list)
--#define for_each_device(_rs, _d) list_for_each_entry(_d, &(_rs)->devs, devs)
--
- /**
- * SECTION: dm
- * @short_description: plugin for basic operations with device mapper
-@@ -380,327 +374,3 @@ gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean a
-
- return ret;
- }
--
--/**
-- * init_dmraid_stack: (skip)
-- *
-- * Initializes the dmraid stack by creating the library context, discovering
-- * devices, raid sets, etc.
-- */
--static struct lib_context* init_dmraid_stack (GError **error) {
-- gint rc = 0;
-- gchar *argv[] = {"blockdev.dmraid", NULL};
-- struct lib_context *lc;
--
-- /* the code for this function was cherry-picked from the pyblock code */
-- /* XXX: do this all just once, store global lc and provide a reinit
-- * function? */
--
-- /* initialize dmraid library context */
-- lc = libdmraid_init (1, (gchar **)argv);
--
-- rc = discover_devices (lc, NULL);
-- if (!rc) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to discover devices");
-- libdmraid_exit (lc);
-- return NULL;
-- }
-- discover_raid_devices (lc, NULL);
--
-- if (!count_devices (lc, RAID)) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_DEVS,
-- "No RAIDs discovered");
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- argv[0] = NULL;
-- if (!group_set (lc, argv)) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to group_set");
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- return lc;
--}
--
--/**
-- * raid_dev_matches_spec: (skip)
-- *
-- * Returns: whether the device specified by @sysname matches the spec given by @name,
-- * @uuid, @major and @minor
-- */
--static gboolean raid_dev_matches_spec (struct raid_dev *raid_dev, const gchar *name, const gchar *uuid, gint major, gint minor) {
-- gchar const *dev_name = NULL;
-- gchar const *dev_uuid;
-- gchar const *major_str;
-- gchar const *minor_str;
-- struct udev *context;
-- struct udev_device *device;
-- gboolean ret = TRUE;
--
-- /* find the second '/' to get name (the rest of the string) */
-- dev_name = strchr (raid_dev->di->path, '/');
-- if (dev_name && strlen (dev_name) > 1) {
-- dev_name++;
-- dev_name = strchr (dev_name, '/');
-- }
-- if (dev_name && strlen (dev_name) > 1) {
-- dev_name++;
-- }
-- else
-- dev_name = NULL;
--
-- /* if we don't have the name, we cannot check any match */
-- g_return_val_if_fail (dev_name, FALSE);
--
-- /* g_return_val_if_fail above checks value of dev_name and returns FALSE if
-- * it is NULL so we don't need to check it here */
-- /* coverity[var_deref_model] */
-- if (name && strcmp (dev_name, name) != 0) {
-- return FALSE;
-- }
--
-- context = udev_new ();
-- device = udev_device_new_from_subsystem_sysname (context, "block", dev_name);
-- dev_uuid = udev_device_get_property_value (device, "UUID");
-- major_str = udev_device_get_property_value (device, "MAJOR");
-- minor_str = udev_device_get_property_value (device, "MINOR");
--
-- if (uuid && (g_strcmp0 (uuid, "") != 0) && (g_strcmp0 (uuid, dev_uuid) != 0))
-- ret = FALSE;
--
-- if (major >= 0 && (atoi (major_str) != major))
-- ret = FALSE;
--
-- if (minor >= 0 && (atoi (minor_str) != minor))
-- ret = FALSE;
--
-- udev_device_unref (device);
-- udev_unref (context);
--
-- return ret;
--}
--
--/**
-- * find_raid_sets_for_dev: (skip)
-- */
--static void find_raid_sets_for_dev (const gchar *name, const gchar *uuid, gint major, gint minor, struct lib_context *lc, struct raid_set *rs, GPtrArray *ret_sets) {
-- struct raid_set *subset = NULL;
-- struct raid_dev *dev = NULL;
--
-- if (T_GROUP(rs) || !list_empty(&(rs->sets))) {
-- for_each_subset (rs, subset)
-- find_raid_sets_for_dev (name, uuid, major, minor, lc, subset, ret_sets);
-- } else {
-- for_each_device (rs, dev) {
-- if (raid_dev_matches_spec (dev, name, uuid, major, minor))
-- g_ptr_array_add (ret_sets, g_strdup (rs->name));
-- }
-- }
--}
--
--/**
-- * bd_dm_get_member_raid_sets:
-- * @name: (allow-none): name of the member
-- * @uuid: (allow-none): uuid of the member
-- * @major: major number of the device or -1 if not specified
-- * @minor: minor number of the device or -1 if not specified
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: (transfer full) (array zero-terminated=1): list of names of the RAID sets related to
-- * the member or %NULL in case of error
-- *
-- * One of @name, @uuid or @major:@minor has to be given.
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_MODE_QUERY
-- */
--gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error) {
-- guint64 i = 0;
-- struct lib_context *lc = NULL;
-- struct raid_set *rs = NULL;
-- GPtrArray *ret_sets = g_ptr_array_new ();
-- gchar **ret = NULL;
--
-- lc = init_dmraid_stack (error);
-- if (!lc)
-- /* error is already populated */
-- return NULL;
--
-- for_each_raidset (lc, rs) {
-- find_raid_sets_for_dev (name, uuid, major, minor, lc, rs, ret_sets);
-- }
--
-- /* now create the return value -- NULL-terminated array of strings */
-- ret = g_new0 (gchar*, ret_sets->len + 1);
-- for (i=0; i < ret_sets->len; i++)
-- ret[i] = (gchar*) g_ptr_array_index (ret_sets, i);
-- ret[i] = NULL;
--
-- g_ptr_array_free (ret_sets, FALSE);
--
-- libdmraid_exit (lc);
-- return ret;
--}
--
--/**
-- * find_in_raid_sets: (skip)
-- *
-- * Runs @eval_fn with @data on each set (traversing recursively) and returns the
-- * first RAID set that @eval_fn returns. Thus the @eval_fn should return %NULL
-- * on all RAID sets that don't fulfill the search criteria.
-- */
--static struct raid_set* find_in_raid_sets (struct raid_set *rs, RSEvalFunc eval_fn, gpointer data) {
-- struct raid_set *subset = NULL;
-- struct raid_set *ret = NULL;
--
-- ret = eval_fn (rs, data);
-- if (ret)
-- return ret;
--
-- if (T_GROUP(rs) || !list_empty(&(rs->sets))) {
-- for_each_subset (rs, subset) {
-- ret = find_in_raid_sets (subset, eval_fn, data);
-- if (ret)
-- return ret;
-- }
-- }
--
-- return ret;
--}
--
--static struct raid_set* rs_matches_name (struct raid_set *rs, gpointer *name_data) {
-- gchar *name = (gchar*) name_data;
--
-- if (g_strcmp0 (rs->name, name) == 0)
-- return rs;
-- else
-- return NULL;
--}
--
--static gboolean change_set_by_name (const gchar *name, enum activate_type action, GError **error) {
-- gint rc = 0;
-- struct lib_context *lc = NULL;
-- struct raid_set *iter_rs = NULL;
-- struct raid_set *match_rs = NULL;
--
-- lc = init_dmraid_stack (error);
-- if (!lc)
-- /* error is already populated */
-- return FALSE;
--
-- for_each_raidset (lc, iter_rs) {
-- match_rs = find_in_raid_sets (iter_rs, (RSEvalFunc)rs_matches_name, (gchar *)name);
-- if (match_rs)
-- break;
-- }
--
-- if (!match_rs) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_EXIST,
-- "RAID set %s doesn't exist", name);
-- libdmraid_exit (lc);
-- return FALSE;
-- }
--
-- rc = change_set (lc, action, match_rs);
-- if (!rc) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to activate the RAID set '%s'", name);
-- libdmraid_exit (lc);
-- return FALSE;
-- }
--
-- libdmraid_exit (lc);
-- return TRUE;
--}
--
--/**
-- * bd_dm_activate_raid_set:
-- * @name: name of the DM RAID set to activate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully activate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_CREATE_ACTIVATE
-- */
--gboolean bd_dm_activate_raid_set (const gchar *name, GError **error) {
-- guint64 progress_id = 0;
-- gchar *msg = NULL;
-- gboolean ret = FALSE;
--
-- msg = g_strdup_printf ("Activating DM RAID set '%s'", name);
-- progress_id = bd_utils_report_started (msg);
-- g_free (msg);
-- ret = change_set_by_name (name, A_ACTIVATE, error);
-- bd_utils_report_finished (progress_id, "Completed");
-- return ret;
--}
--
--/**
-- * bd_dm_deactivate_raid_set:
-- * @name: name of the DM RAID set to deactivate
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: whether the RAID set @name was successfully deactivate or not
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_REMOVE_DEACTIVATE
-- */
--gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error) {
-- guint64 progress_id = 0;
-- gchar *msg = NULL;
-- gboolean ret = FALSE;
--
-- msg = g_strdup_printf ("Deactivating DM RAID set '%s'", name);
-- progress_id = bd_utils_report_started (msg);
-- g_free (msg);
-- ret = change_set_by_name (name, A_DEACTIVATE, error);
-- bd_utils_report_finished (progress_id, "Completed");
-- return ret;
--}
--
--/**
-- * bd_dm_get_raid_set_type:
-- * @name: name of the DM RAID set to get the type of
-- * @error: (out): variable to store error (if any)
-- *
-- * Returns: string representation of the @name RAID set's type
-- *
-- * Tech category: %BD_DM_TECH_RAID-%BD_DM_TECH_QUERY
-- */
--gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error) {
-- struct lib_context *lc = NULL;
-- struct raid_set *iter_rs = NULL;
-- struct raid_set *match_rs = NULL;
-- const gchar *type = NULL;
--
-- lc = init_dmraid_stack (error);
-- if (!lc)
-- /* error is already populated */
-- return NULL;
--
-- for_each_raidset (lc, iter_rs) {
-- match_rs = find_in_raid_sets (iter_rs, (RSEvalFunc)rs_matches_name, (gchar *)name);
-- if (match_rs)
-- break;
-- }
--
-- if (!match_rs) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_NO_EXIST,
-- "RAID set %s doesn't exist", name);
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- type = get_set_type (lc, match_rs);
-- if (!type) {
-- g_set_error (error, BD_DM_ERROR, BD_DM_ERROR_RAID_FAIL,
-- "Failed to get RAID set's type");
-- libdmraid_exit (lc);
-- return NULL;
-- }
--
-- libdmraid_exit (lc);
-- return g_strdup (type);
--}
-diff --git a/src/plugins/dm.h b/src/plugins/dm.h
-index 0dce6ac..1ee3788 100644
---- a/src/plugins/dm.h
-+++ b/src/plugins/dm.h
-@@ -1,5 +1,4 @@
- #include <glib.h>
--#include <dmraid/dmraid.h>
-
- #ifndef BD_DM
- #define BD_DM
-@@ -48,9 +47,5 @@ gboolean bd_dm_map_exists (const gchar *map_name, gboolean live_only, gboolean a
- gchar* bd_dm_name_from_node (const gchar *dm_node, GError **error);
- gchar* bd_dm_node_from_name (const gchar *map_name, GError **error);
- gchar* bd_dm_get_subsystem_from_name (const gchar *device_name, GError **error);
--gchar** bd_dm_get_member_raid_sets (const gchar *name, const gchar *uuid, gint major, gint minor, GError **error);
--gboolean bd_dm_activate_raid_set (const gchar *name, GError **error);
--gboolean bd_dm_deactivate_raid_set (const gchar *name, GError **error);
--gchar* bd_dm_get_raid_set_type (const gchar *name, GError **error);
-
- #endif /* BD_DM */
-diff --git a/src/python/gi/overrides/BlockDev.py b/src/python/gi/overrides/BlockDev.py
-index fb3ffb4..eed0a38 100644
---- a/src/python/gi/overrides/BlockDev.py
-+++ b/src/python/gi/overrides/BlockDev.py
-@@ -233,12 +233,6 @@ def dm_create_linear(map_name, device, length, uuid=None):
- return _dm_create_linear(map_name, device, length, uuid)
- __all__.append("dm_create_linear")
-
--_dm_get_member_raid_sets = BlockDev.dm_get_member_raid_sets
--@override(BlockDev.dm_get_member_raid_sets)
--def dm_get_member_raid_sets(name=None, uuid=None, major=-1, minor=-1):
-- return _dm_get_member_raid_sets(name, uuid, major, minor)
--__all__.append("dm_get_member_raid_sets")
--
-
- _loop_setup = BlockDev.loop_setup
- @override(BlockDev.loop_setup)
---
-2.14.3
-
diff --git a/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch b/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
deleted file mode 100644
index 0b5b809122..0000000000
--- a/meta-oe/recipes-extended/libblockdev/files/0004-fix-compile-failure-against-musl-C-library.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 59fbd57acd1df25b1972a131dc6a77a4fe147729 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 10:45:02 +0800
-Subject: [PATCH] fix compile failure against musl C library
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/plugins/crypto.c | 2 +-
- src/plugins/part.c | 3 ++-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
-index b961471..2d3d251 100644
---- a/src/plugins/crypto.c
-+++ b/src/plugins/crypto.c
-@@ -22,7 +22,7 @@
- #include <libcryptsetup.h>
- #include <nss.h>
- #include <volume_key/libvolume_key.h>
--#include <sys/fcntl.h>
-+#include <fcntl.h>
- #include <sys/ioctl.h>
- #include <linux/random.h>
- #include <locale.h>
-diff --git a/src/plugins/part.c b/src/plugins/part.c
-index 6b2a690..ab490d9 100644
---- a/src/plugins/part.c
-+++ b/src/plugins/part.c
-@@ -25,6 +25,7 @@
- #include <inttypes.h>
- #include <unistd.h>
- #include <sys/file.h>
-+#include <fcntl.h>
- #include <sys/ioctl.h>
- #include <linux/fs.h>
- #include <blockdev/utils.h>
-@@ -1354,7 +1355,7 @@ static gboolean set_gpt_flags (const gchar *device, int part_num, guint64 flags,
- real_flags |= 0x4000000000000000; /* 1 << 62 */
- if (flags & BD_PART_FLAG_GPT_NO_AUTOMOUNT)
- real_flags |= 0x8000000000000000; /* 1 << 63 */
-- mask_str = g_strdup_printf ("%.16"__PRI64_PREFIX"x", real_flags);
-+ mask_str = g_strdup_printf ("%.16"__PRI64"x", real_flags);
-
- args[2] = g_strdup_printf ("%d:=:%s", part_num, mask_str);
- g_free (mask_str);
---
-2.14.3
-
diff --git a/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch b/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
deleted file mode 100644
index b214f0b05d..0000000000
--- a/meta-oe/recipes-extended/libblockdev/files/0005-fix-a-clang-compiling-issue.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 9b4a7a4d0653b627d747e00d6b3ada2990caa1d3 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 9 Aug 2017 13:57:57 +0800
-Subject: [PATCH] fix a clang compiling issue
-
-[snip]
-../../../git/src/plugins/fs.c:2617:26: error: missing field 'start'
-initializer [-Werror,-Wmissing-field-initializers]
- PedGeometry geom = {0};
- ^
-../../../git/src/plugins/fs.c:2618:30: error: missing field 'start'
-initializer [-Werror,-Wmissing-field-initializers]
- PedGeometry new_geom = {0};
-[snip]
-
-Fix typo s/enum libvk_packet_format format/enum libvk_secret secret_type/
-
-Upstream-Status: Submitted [https://github.com/storaged-project/libblockdev/pull/266]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/plugins/crypto.c | 6 +++---
- src/plugins/fs/vfat.c | 4 ++--
- src/plugins/part.c | 4 ++--
- src/utils/exec.c | 2 +-
- 4 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/src/plugins/crypto.c b/src/plugins/crypto.c
-index 563093e..b961471 100644
---- a/src/plugins/crypto.c
-+++ b/src/plugins/crypto.c
-@@ -970,7 +970,7 @@ gboolean bd_crypto_tc_open (const gchar *device, const gchar *name, const guint8
- gint ret = 0;
- guint64 progress_id = 0;
- gchar *msg = NULL;
-- struct crypt_params_tcrypt params = {0};
-+ struct crypt_params_tcrypt params = {NULL,0,NULL,0,NULL,NULL,NULL,0,0};
-
- msg = g_strdup_printf ("Started opening '%s' TrueCrypt/VeraCrypt device", device);
- progress_id = bd_utils_report_started (msg);
-@@ -1090,7 +1090,7 @@ static gchar *replace_char (gchar *str, gchar orig, gchar new) {
- return str;
- }
-
--static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libvk_ui *ui, enum libvk_packet_format format, const gchar *out_path,
-+static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libvk_ui *ui, enum libvk_secret secret_type, const gchar *out_path,
- CERTCertificate *cert, GError **error) {
- gpointer packet_data = NULL;
- gsize packet_data_size = 0;
-@@ -1099,7 +1099,7 @@ static gboolean write_escrow_data_file (struct libvk_volume *volume, struct libv
- gsize bytes_written = 0;
- GError *tmp_error = NULL;
-
-- packet_data = libvk_volume_create_packet_asymmetric_with_format (volume, &packet_data_size, format, cert,
-+ packet_data = libvk_volume_create_packet_asymmetric_with_format (volume, &packet_data_size, secret_type, cert,
- ui, LIBVK_PACKET_FORMAT_ASYMMETRIC_WRAP_SECRET_ONLY, error);
-
- if (!packet_data) {
-diff --git a/src/plugins/fs/vfat.c b/src/plugins/fs/vfat.c
-index 3ed7d4a..5ff7795 100644
---- a/src/plugins/fs/vfat.c
-+++ b/src/plugins/fs/vfat.c
-@@ -376,8 +376,8 @@ BDFSVfatInfo* bd_fs_vfat_get_info (const gchar *device, GError **error) {
- */
- gboolean bd_fs_vfat_resize (const gchar *device, guint64 new_size, GError **error) {
- PedDevice *ped_dev = NULL;
-- PedGeometry geom = {0};
-- PedGeometry new_geom = {0};
-+ PedGeometry geom = {NULL, 0, 0, 0};
-+ PedGeometry new_geom = {NULL, 0, 0, 0};
- PedFileSystem *fs = NULL;
- PedSector start = 0;
- PedSector length = 0;
-diff --git a/src/plugins/part.c b/src/plugins/part.c
-index fed8300..6b2a690 100644
---- a/src/plugins/part.c
-+++ b/src/plugins/part.c
-@@ -926,7 +926,7 @@ static PedPartition* add_part_to_disk (PedDevice *dev, PedDisk *disk, BDPartType
- return NULL;
- }
-
-- part = ped_partition_new (disk, type, NULL, geom->start, geom->end);
-+ part = ped_partition_new (disk, (PedPartitionType)type, NULL, geom->start, geom->end);
- if (!part) {
- set_parted_error (error, BD_PART_ERROR_FAIL);
- g_prefix_error (error, "Failed to create new partition on device '%s'", dev->path);
-@@ -1564,7 +1564,7 @@ gboolean bd_part_set_part_flags (const gchar *disk, const gchar *part, guint64 f
- PedPartition *ped_part = NULL;
- const gchar *part_num_str = NULL;
- gint part_num = 0;
-- guint64 i = 0;
-+ int i = 0;
- gint status = 0;
- gboolean ret = FALSE;
- guint64 progress_id = 0;
-diff --git a/src/utils/exec.c b/src/utils/exec.c
-index 11c1489..dcf87e5 100644
---- a/src/utils/exec.c
-+++ b/src/utils/exec.c
-@@ -354,7 +354,7 @@ gboolean bd_utils_exec_and_report_progress (const gchar **argv, const BDExtraArg
- GIOStatus io_status = G_IO_STATUS_NORMAL;
- guint i = 0;
- guint8 completion = 0;
-- GPollFD fds[2] = {{0}, {0}};
-+ GPollFD fds[2] = {{0,0,0}, {0,0,0}};
- gboolean out_done = FALSE;
- gboolean err_done = FALSE;
- GString *stdout_data = g_string_new (NULL);
---
-2.14.3
-
diff --git a/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb b/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb
deleted file mode 100644
index 0c954aa39b..0000000000
--- a/meta-oe/recipes-extended/libblockdev/libblockdev_2.16.bb
+++ /dev/null
@@ -1,51 +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 = "LGPLv2+"
-SECTION = "devel/lib"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
-
-inherit autotools python3native gobject-introspection
-
-DEPENDS += " \
- cryptsetup \
- nss \
- volume-key \
- libbytesize \
- btrfs-tools \
-"
-
-SRCREV = "e2e0899efe8dd3f111ff955fb6c1dc10b0bd2075"
-SRC_URI = " \
- git://github.com/rhinstaller/libblockdev;branch=master \
- file://0001-fix-configure-and-compile-failures.patch \
- file://0002-remove-python2-support.patch \
- file://0003-remove-dmraid-while-compiling-with-with-dm.patch \
- file://0005-fix-a-clang-compiling-issue.patch \
-"
-SRC_URI_append_libc-musl = " \
- file://0004-fix-compile-failure-against-musl-C-library.patch \
-"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN} += " \
- lvm2 \
-"
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
-
-PACKAGECONFIG ??= "python3 lvm dm kmod parted fs"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[lvm] = "--with-lvm, --without-lvm, multipath-tools"
-PACKAGECONFIG[dm] = "--with-dm, --without-dm"
-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"
-
-export GIR_EXTRA_LIBS_PATH="${B}/src/utils/.libs"
-
diff --git a/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb b/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb
new file mode 100644
index 0000000000..2e7412e823
--- /dev/null
+++ b/meta-oe/recipes-extended/libblockdev/libblockdev_2.28.bb
@@ -0,0 +1,43 @@
+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"
+
+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 tools"
+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,libbytesize"
+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,libbytesize"
+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"
+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.10.2.bb b/meta-oe/recipes-extended/libcbor/libcbor_0.10.2.bb
new file mode 100755
index 0000000000..3ac270e5e0
--- /dev/null
+++ b/meta-oe/recipes-extended/libcbor/libcbor_0.10.2.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 = "efa6c0886bae46bdaef9b679f61f4b9d8bc296ae"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release"
diff --git a/meta-oe/recipes-extended/libcec/files/python-install-location.patch b/meta-oe/recipes-extended/libcec/files/python-install-location.patch
deleted file mode 100644
index b6be78dd40..0000000000
--- a/meta-oe/recipes-extended/libcec/files/python-install-location.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 330fa6777d51d41eefacff8e98e4250d210fde35 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Javi=20Mart=C3=ADnez?= <javi@flamingalah.net>
-Date: Tue, 13 Dec 2016 22:31:13 +0100
-Subject: [PATCH] Improve/fix installation of Python bindings
-
-Upstream-Status: Backport
-
-dist-packages is a Debian-specific directory for distribution packages (and used in derivatives such as Ubuntu). Therefore changed to site-packages.
----
- src/libcec/cmake/CheckPlatformSupport.cmake | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
-index fcd0ef7..7661107 100644
---- a/src/libcec/cmake/CheckPlatformSupport.cmake
-+++ b/src/libcec/cmake/CheckPlatformSupport.cmake
-@@ -195,9 +195,9 @@ else()
- RENAME __init__.py)
- else()
- install(TARGETS ${SWIG_MODULE_cec_REAL_NAME}
-- DESTINATION lib/python${PYTHON_VERSION}/dist-packages/cec)
-+ DESTINATION lib/python${PYTHON_VERSION}/site-packages/cec)
- install(FILES ${CMAKE_BINARY_DIR}/src/libcec/cec.py
-- DESTINATION lib/python${PYTHON_VERSION}/dist-packages/cec
-+ DESTINATION lib/python${PYTHON_VERSION}/site-packages/cec
- RENAME __init__.py)
- endif()
- endif()
diff --git a/meta-oe/recipes-extended/libcec/libcec/0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch b/meta-oe/recipes-extended/libcec/libcec/0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch
new file mode 100644
index 0000000000..3ecbfce250
--- /dev/null
+++ b/meta-oe/recipes-extended/libcec/libcec/0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch
@@ -0,0 +1,42 @@
+From 95d4df3b713925e2c4894a2e4d50b06df861d9ef Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 18 Dec 2019 23:37:40 -0800
+Subject: [PATCH] CheckPlatformSupport.cmake: Do not hardcode lib path
+
+Using CMAKE_INSTALL_LIBDIR ensures that we can build for multilib env
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libcec/cmake/CheckPlatformSupport.cmake | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
+index 2d7102f..55e78f8 100644
+--- a/src/libcec/cmake/CheckPlatformSupport.cmake
++++ b/src/libcec/cmake/CheckPlatformSupport.cmake
+@@ -224,16 +224,16 @@ else()
+
+ if (${PYTHON_MAJOR_VERSION} EQUAL 2)
+ install(TARGETS ${SWIG_MODULE_cec_REAL_NAME}
+- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH}/cec)
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH}/cec)
+ install(FILES ${CMAKE_BINARY_DIR}/src/libcec/cec.py
+- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
++ DESTINATION l${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
+ install(FILES ${CMAKE_SOURCE_DIR}/src/libcec/cmake/__init__.py
+- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/cec)
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/cec)
+ else()
+ install(TARGETS ${SWIG_MODULE_cec_REAL_NAME}
+- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH})
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR}/${PYTHON_LIB_INSTALL_PATH})
+ install(FILES ${CMAKE_BINARY_DIR}/src/libcec/cec.py
+- DESTINATION lib/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION}/${PYTHON_PKG_DIR})
+ endif()
+ endif()
+ endif()
+--
+2.24.1
+
diff --git a/meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch b/meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch
new file mode 100644
index 0000000000..f08887b884
--- /dev/null
+++ b/meta-oe/recipes-extended/libcec/libcec/0001-Enhance-reproducibility.patch
@@ -0,0 +1,33 @@
+From 240727d3142700af779ca6f5c4677419787bca28 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 28 Apr 2020 16:15:20 -0700
+Subject: [PATCH] Enhance reproducibility
+
+SetBuildInfo.cmake groks information from build system and emits that
+into sourcecode ( header file ) which is then compiled into binary, this
+string is build system dependent, therefore can cause reproducibility
+issues, here we set static string for LIB_INFO
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libcec/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/libcec/CMakeLists.txt b/src/libcec/CMakeLists.txt
+index 19a070b..4b3c827 100644
+--- a/src/libcec/CMakeLists.txt
++++ b/src/libcec/CMakeLists.txt
+@@ -133,7 +133,7 @@ set(CEC_HEADERS devices/CECRecordingDevice.h
+ source_group("Header Files" FILES ${CEC_HEADERS})
+
+ # platform and device specific
+-include(cmake/SetBuildInfo.cmake)
++set(LIB_INFO "compiled on ${CMAKE_SYSTEM} ... ")
+ include(cmake/CheckPlatformSupport.cmake)
+
+ ## create project groups
+--
+2.26.2
+
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
new file mode 100644
index 0000000000..07277f7064
--- /dev/null
+++ b/meta-oe/recipes-extended/libcec/libcec/0001-Remove-buggy-test-confusing-host-and-target.patch
@@ -0,0 +1,33 @@
+From 8ce50bf569ec2d931735180079bbe507730626c8 Mon Sep 17 00:00:00 2001
+From: Yann Dirson <yann@blade-group.com>
+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/src/libcec/cmake/CheckPlatformSupport.cmake b/src/libcec/cmake/CheckPlatformSupport.cmake
+index 1d99bd8..31dac4f 100644
+--- a/src/libcec/cmake/CheckPlatformSupport.cmake
++++ b/src/libcec/cmake/CheckPlatformSupport.cmake
+@@ -266,14 +266,6 @@ else()
+ DESTINATION python/cec)
+ endif()
+ else()
+- if(EXISTS "/etc/os-release")
+- file(READ "/etc/os-release" OS_RELEASE)
+- string(REGEX MATCH "ID(_LIKE)?=debian" IS_DEBIAN ${OS_RELEASE})
+- if (IS_DEBIAN)
+- SET(PYTHON_PKG_DIR "dist-packages")
+- endif()
+- endif()
+-
+ if (NOT PYTHON_PKG_DIR)
+ SET(PYTHON_PKG_DIR "site-packages")
+ endif()
+--
+2.28.0
+
diff --git a/meta-oe/recipes-extended/libcec/libcec/0001-cecloader-Match-return-type-of-function-LibCecBootlo.patch b/meta-oe/recipes-extended/libcec/libcec/0001-cecloader-Match-return-type-of-function-LibCecBootlo.patch
new file mode 100644
index 0000000000..ab1ab5b8eb
--- /dev/null
+++ b/meta-oe/recipes-extended/libcec/libcec/0001-cecloader-Match-return-type-of-function-LibCecBootlo.patch
@@ -0,0 +1,41 @@
+From 2241edc8b70c2a54d109ac9c0e821889ac138d40 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 27 Jan 2022 22:49:52 -0800
+Subject: [PATCH] cecloader: Match return type of function LibCecBootloader
+
+Fixes
+include/cecloader.h:175:14: error: cannot initialize return object of type 'bool' with an rvalue of type 'nullptr_t'
+ return NULL;
+ ^~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/cecloader.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/include/cecloader.h b/include/cecloader.h
+index be76468f..550f598e 100644
+--- a/include/cecloader.h
++++ b/include/cecloader.h
+@@ -172,7 +172,7 @@ bool LibCecBootloader(const char *strLib = NULL)
+ if (!g_libCEC)
+ {
+ std::cout << dlerror() << std::endl;
+- return NULL;
++ return false;
+ }
+ }
+
+@@ -181,7 +181,7 @@ bool LibCecBootloader(const char *strLib = NULL)
+ if (!LibCecBootloader)
+ {
+ std::cout << "cannot find CECStartBootloader" << std::endl;
+- return NULL;
++ return false;
+ }
+
+ bool bReturn = LibCecBootloader();
+--
+2.35.0
+
diff --git a/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb b/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
new file mode 100644
index 0000000000..599416cb2a
--- /dev/null
+++ b/meta-oe/recipes-extended/libcec/libcec_6.0.2.bb
@@ -0,0 +1,47 @@
+SUMMARY = "USB CEC Adaptor communication Library"
+HOMEPAGE = "http://libcec.pulse-eight.com/"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b3a719e97f49e4841e90573f9b1a98ac"
+
+DEPENDS = "p8platform udev ncurses swig-native python3"
+
+DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11 libxrandr', '', d)}"
+DEPENDS:append:rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
+
+SRCREV = "29d82c80bcc62be2878a9ac080de7eb286c4beb9"
+SRC_URI = "git://github.com/Pulse-Eight/libcec.git;branch=release;protocol=https \
+ file://0001-CheckPlatformSupport.cmake-Do-not-hardcode-lib-path.patch \
+ file://0001-Enhance-reproducibility.patch \
+ file://0001-Remove-buggy-test-confusing-host-and-target.patch \
+ file://0001-cecloader-Match-return-type-of-function-LibCecBootlo.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+# default config is for RaspberryPi API, use the Linux 4.10+ API by default
+PLATFORM_CMAKE_FLAGS ?= "-DHAVE_LINUX_API=1 -DHAVE_RPI_API=0"
+EXTRA_OECMAKE += "${PLATFORM_CMAKE_FLAGS}"
+
+# Put client examples into separate packages
+PACKAGE_BEFORE_PN += "${PN}-examples-python ${PN}-examples"
+FILES:${PN}-examples-python = "${bindir}/py*"
+FILES:${PN}-examples = "${bindir}"
+# cec-client doesn't link with libcec, but uses LibCecInitialise to dlopen libcec, so do_package
+# cannot add the runtime dependency automatically
+RDEPENDS:${PN}-examples = "${PN}"
+RDEPENDS:${PN}-examples-python = "python3-${BPN} python3-core"
+
+# Create the wrapper for python3
+PACKAGES += "python3-${BPN}"
+FILES:python3-${BPN} = "${libdir}/python3* ${bindir}/py*"
+RDEPENDS:${PN} = "python3-core"
+
+# cec-client and xbmc need the .so present to work :(
+FILES:${PN} += "${libdir}/*.so"
+INSANE_SKIP:${PN} = "dev-so"
+
+# Adapter shows up as a CDC-ACM device
+RRECOMMENDS:${PN} = "kernel-module-cdc-acm"
diff --git a/meta-oe/recipes-extended/libcec/libcec_git.bb b/meta-oe/recipes-extended/libcec/libcec_git.bb
deleted file mode 100644
index cb65caad8c..0000000000
--- a/meta-oe/recipes-extended/libcec/libcec_git.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "USB CEC Adaptor communication Library"
-HOMEPAGE = "http://libcec.pulse-eight.com/"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e61fd86f9c947b430126181da2c6c715"
-
-DEPENDS = "p8platform udev lockdev ncurses swig-native python3"
-
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libx11 libxrandr', '', d)}"
-DEPENDS_append_rpi = "${@bb.utils.contains('MACHINE_FEATURES', 'vc4graphics', '', ' userland', d)}"
-
-PV = "4.0.1+gitr${SRCPV}"
-
-SRCREV = "2fc92b5f02dca702da92ccc5ed7b805b240ef5df"
-SRC_URI = "git://github.com/Pulse-Eight/libcec.git \
- file://python-install-location.patch"
-
-S = "${WORKDIR}/git"
-
-inherit cmake pkgconfig
-
-# Create the wrapper for python3
-PACKAGES += "python3-${BPN}"
-FILES_python3-${BPN} = "${libdir}/python3*"
-
-# cec-client and xbmc need the .so present to work :(
-FILES_${PN} += "${libdir}/*.so"
-INSANE_SKIP_${PN} = "dev-so"
-
-# Adapter shows up as a CDC-ACM device
-RRECOMMENDS_${PN} = "kernel-module-cdc-acm"
diff --git a/meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb b/meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb
deleted file mode 100644
index eb0a2c3ecf..0000000000
--- a/meta-oe/recipes-extended/libconfig/libconfig_1.7.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "C/C++ Configuration File Library"
-DESCRIPTION = "Library for manipulating structured configuration files"
-HOMEPAGE = "https://hyperrealm.github.io/libconfig/"
-BUGTRACKER = "https://github.com/hyperrealm/libconfig/issues"
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29"
-
-SRC_URI = "https://hyperrealm.github.io/libconfig/dist/libconfig-${PV}.tar.gz"
-
-inherit autotools-brokensep pkgconfig
-
-SRC_URI[md5sum] = "6bd98ee3a6e6b9126c82c916d7a9e690"
-SRC_URI[sha256sum] = "7c3c7a9c73ff3302084386e96f903eb62ce06953bb1666235fac74363a16fad9"
-
-FILES_${PN}_append = " \
- ${libdir}/cmake \
-"
diff --git a/meta-oe/recipes-extended/libconfig/libconfig_1.7.3.bb b/meta-oe/recipes-extended/libconfig/libconfig_1.7.3.bb
new file mode 100644
index 0000000000..6382569923
--- /dev/null
+++ b/meta-oe/recipes-extended/libconfig/libconfig_1.7.3.bb
@@ -0,0 +1,21 @@
+SUMMARY = "C/C++ Configuration File Library"
+DESCRIPTION = "Library for manipulating structured configuration files"
+HOMEPAGE = "https://hyperrealm.github.io/libconfig/"
+BUGTRACKER = "https://github.com/hyperrealm/libconfig/issues"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29"
+
+SRC_URI = "https://hyperrealm.github.io/libconfig/dist/libconfig-${PV}.tar.gz"
+
+UPSTREAM_CHECK_URI = "https://github.com/hyperrealm/libconfig/releases"
+UPSTREAM_CHECK_REGEX = "Version (?P<pver>\d+(\.\d+)+)"
+
+inherit autotools-brokensep pkgconfig
+
+SRC_URI[md5sum] = "15ec701205f91f21b1187f8b61e0d64f"
+SRC_URI[sha256sum] = "545166d6cac037744381d1e9cc5a5405094e7bfad16a411699bcff40bbb31ee7"
+
+PACKAGE_BEFORE_PN = "${PN}++"
+FILES:${PN}++ = "${libdir}/${BPN}++*${SOLIBS}"
diff --git a/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb b/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.bb
new file mode 100644
index 0000000000..b1c3371159
--- /dev/null
+++ b/meta-oe/recipes-extended/libdeflate/libdeflate_1.18.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 = "495fee110ebb48a5eb63b75fd67e42b2955871e2"
+
+inherit cmake pkgconfig
+
diff --git a/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch b/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
deleted file mode 100644
index f65d26aaea..0000000000
--- a/meta-oe/recipes-extended/libdivecomputer/files/fix-ar.patch
+++ /dev/null
@@ -1,16 +0,0 @@
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-Index: git/configure.ac
-===================================================================
---- git.orig/configure.ac
-+++ git/configure.ac
-@@ -56,6 +56,7 @@ AM_CONDITIONAL([ENABLE_EXAMPLES], [test
- # Checks for programs.
- AC_PROG_CC
- AC_PROG_CC_C99
-+AM_PROG_AR
-
- # Enable automake silent build rules.
- m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
diff --git a/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb b/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
index 6c4f4a0721..87778c6314 100644
--- a/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
+++ b/meta-oe/recipes-extended/libdivecomputer/libdivecomputer_git.bb
@@ -1,18 +1,17 @@
DESCRIPTION = "Libdivecomputer is a cross-platform and open source library for communication with dive computers from various manufacturers."
HOMEPAGE = "http://www.divesoftware.org/libdc/"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
DEPENDS = "libusb1"
inherit autotools pkgconfig
-PV = "0.4.2+gitr${SRCPV}"
+PV = "0.8.0"
-SRCREV = "5f765f91430f16932d96b3777404420aa2dd4c7c"
-SRC_URI = "git://git.libdivecomputer.org/libdivecomputer.git \
- file://fix-ar.patch \
+SRCREV = "db9371cf9f38b5a3b2f6e4fae3f92eb052d2d929"
+SRC_URI = "git://github.com/libdivecomputer/libdivecomputer.git;protocol=https;branch=master \
"
S = "${WORKDIR}/git"
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 7e4c330a19..3912e0a8d7 100644
--- a/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
+++ b/meta-oe/recipes-extended/libgxim/libgxim_0.5.0.bb
@@ -19,13 +19,13 @@ SRC_URI = "https://bitbucket.org/tagoh/libgxim/downloads/${BPN}-${PV}.tar.bz2 \
SRC_URI[md5sum] = "4bb1fa63d00eb224439d413591c29a6a"
SRC_URI[sha256sum] = "75e20d1744139644f9951b78ea3910b162d3380302315cb4b3d0640f23694c79"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "\
file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-EXTRA_OECONF = " --disable-static --disable-rebuilds --enable-compile-warnings=minimum"
-DEPENDS += "gtk+ glib-2.0 glib-2.0-native ruby-native intltool-native gnome-common-native"
+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 autoconf-archive-native"
-inherit distro_features_check autotools pkgconfig gettext
+inherit features_check autotools pkgconfig gettext
REQUIRED_DISTRO_FEATURES = "x11"
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
new file mode 100644
index 0000000000..46938bccf6
--- /dev/null
+++ b/meta-oe/recipes-extended/libidn/libidn/dont-depend-on-help2man.patch
@@ -0,0 +1,23 @@
+Upstream-Status: Inappropriate [disable feature]
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+--- 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)/.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_TEXINFOS =
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/files/0001-Fix-warnings-found-with-clang.patch b/meta-oe/recipes-extended/libimobiledevice/files/0001-Fix-warnings-found-with-clang.patch
deleted file mode 100644
index f8114a0634..0000000000
--- a/meta-oe/recipes-extended/libimobiledevice/files/0001-Fix-warnings-found-with-clang.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From ad1be542b87b3186f8ef7bee2c594daefe5bb4c8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 18 Oct 2016 21:31:40 +0000
-Subject: [PATCH] Fix warnings found with clang
-
-| /mnt/oe/openembedded-core/build/workspace/sources/libplist/src/base64.c:107:12: error: non-void function 'base64decode' should return a value [-Wreturn-type]
-| if (!buf) return;
-| ^
-| /mnt/oe/openembedded-core/build/workspace/sources/libplist/src/base64.c:109:16: error: non-void function 'base64decode' should return a value [-Wreturn-type]
-| if (len <= 0) return;
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- libcnary/node.c | 2 +-
- src/base64.c | 4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/libcnary/node.c b/libcnary/node.c
-index 1f9f669..d6f3f63 100644
---- a/libcnary/node.c
-+++ b/libcnary/node.c
-@@ -104,7 +104,7 @@ int node_detach(node_t* parent, node_t* child) {
-
- int node_insert(node_t* parent, unsigned int index, node_t* child)
- {
-- if (!parent || !child) return;
-+ if (!parent || !child) return -1;
- child->isLeaf = TRUE;
- child->isRoot = FALSE;
- child->parent = parent;
-diff --git a/src/base64.c b/src/base64.c
-index 65c6061..531a06a 100644
---- a/src/base64.c
-+++ b/src/base64.c
-@@ -104,9 +104,9 @@ static int base64decode_block(unsigned char *target, const char *data, size_t da
-
- unsigned char *base64decode(const char *buf, size_t *size)
- {
-- if (!buf) return;
-+ if (!buf) return 0;
- size_t len = strlen(buf);
-- if (len <= 0) return;
-+ if (len <= 0) return 0;
- unsigned char *outbuf = (unsigned char*)malloc((len/4)*3+3);
-
- unsigned char *line;
---
-1.9.1
-
diff --git a/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch b/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch
deleted file mode 100644
index f6ef6f4f8b..0000000000
--- a/meta-oe/recipes-extended/libimobiledevice/files/fix-parallel-make.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 335b25febd4c864ad0ac08479f5cd43fc21b7d73 Mon Sep 17 00:00:00 2001
-From: Nikias Bassen
-Date: Mon, 09 Jul 2012 21:17:15 +0000
-Subject: Fix building with parallel build makeopts
-
----
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 0bad840..155994e 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -57,6 +57,8 @@ ADD_SUBDIRECTORY( plutil )
- ADD_SUBDIRECTORY( include )
- ADD_SUBDIRECTORY( test )
-
-+ADD_DEPENDENCIES( plist libcnary )
-+
- IF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
- ADD_SUBDIRECTORY( swig )
- ENDIF ( SWIG_FOUND AND PYTHONLIBS_FOUND AND PYTHONINTERP_FOUND )
---
-cgit v0.9.0.2
diff --git a/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb b/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb
deleted file mode 100644
index f78979619f..0000000000
--- a/meta-oe/recipes-extended/libimobiledevice/libplist_1.8.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "A library to handle Apple Property List format whereas it's binary or XML"
-
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07 \
- file://COPYING.LESSER;md5=6ab17b41640564434dda85c06b7124f7"
-
-DEPENDS = "libxml2 glib-2.0 swig python"
-
-inherit cmake pkgconfig
-
-SRC_URI = "http://www.libimobiledevice.org/downloads/libplist-${PV}.tar.bz2 \
- file://fix-parallel-make.patch \
- file://0001-Fix-warnings-found-with-clang.patch \
- "
-
-SRC_URI[md5sum] = "2a9e0258847d50f9760dc3ece25f4dc6"
-SRC_URI[sha256sum] = "a418da3880308199b74766deef2a760a9b169b81a868a6a9032f7614e20500ec"
-
-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${SOLIBS}"
-FILES_${PN}++ = "${libdir}/libplist++${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..f636990f89
--- /dev/null
+++ b/meta-oe/recipes-extended/libimobiledevice/libplist_2.3.0.bb
@@ -0,0 +1,38 @@
+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"
+PR = "r1"
+
+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_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_git.bb b/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
new file mode 100644
index 0000000000..3a10b40f1f
--- /dev/null
+++ b/meta-oe/recipes-extended/libimobiledevice/libplist_git.bb
@@ -0,0 +1,39 @@
+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
+
+PV = "2.3.0"
+
+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_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/libusbmuxd_2.0.2.bb b/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb
new file mode 100644
index 0000000000..a586f49f96
--- /dev/null
+++ b/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_2.0.2.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
+
+DEPENDS = "udev libusb1 libplist"
+
+inherit autotools pkgconfig gitpkgv
+
+PKGV = "${GITPKGVTAG}"
+
+SRCREV = "ce98c346b7c1dc2a21faea4fd3f32c88e27ca2af"
+SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${base_libdir}/udev/rules.d/"
diff --git a/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb b/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb
new file mode 100644
index 0000000000..91a9b4af2c
--- /dev/null
+++ b/meta-oe/recipes-extended/libimobiledevice/libusbmuxd_git.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "This daemon is in charge of multiplexing connections over USB to an iPhone or iPod touch."
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ab17b41640564434dda85c06b7124f7"
+
+DEPENDS = "udev libusb1 libplist libimobiledevice-glue"
+
+inherit autotools pkgconfig gitpkgv
+
+PKGV = "${GITPKGVTAG}"
+PV = "2.0.2+git${SRCPV}"
+
+SRCREV = "36ffb7ab6e2a7e33bd1b56398a88895b7b8c615a"
+SRC_URI = "git://github.com/libimobiledevice/libusbmuxd;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${base_libdir}/udev/rules.d/"
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
new file mode 100644
index 0000000000..800ddd9507
--- /dev/null
+++ b/meta-oe/recipes-extended/libleak/libleak/0001-respect-environment-variables.patch
@@ -0,0 +1,26 @@
+From ea3f11a7846ad27926c6eacc0534914f4873504f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 5 Mar 2021 19:30:09 -0800
+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(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -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
++ 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/liblightmodbus/liblightmodbus/0001-cmake-Use-GNUInstallDirs-instead-of-hardcoding-lib-p.patch b/meta-oe/recipes-extended/liblightmodbus/liblightmodbus/0001-cmake-Use-GNUInstallDirs-instead-of-hardcoding-lib-p.patch
new file mode 100644
index 0000000000..321b41289d
--- /dev/null
+++ b/meta-oe/recipes-extended/liblightmodbus/liblightmodbus/0001-cmake-Use-GNUInstallDirs-instead-of-hardcoding-lib-p.patch
@@ -0,0 +1,37 @@
+From 066c49158a71ea77598c9e1ae16bba63d6ac6bb5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Dec 2019 23:41:35 -0800
+Subject: [PATCH] cmake: Use GNUInstallDirs instead of hardcoding lib path
+
+Upstream-Status: Submitted [https://github.com/Jacajack/liblightmodbus/pull/12]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index ce6cc88..bee83aa 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -242,14 +242,14 @@ if ( DEFINED AVR )
+ )
+ endif( )
+
+-
++include(GNUInstallDirs)
+ #Installation
+ install(
+ TARGETS lightmodbus
+- ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/"
++ ARCHIVE DESTINATION "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/"
+ )
+
+ #Install headers
+ install(
+ DIRECTORY "${CMAKE_SOURCE_DIR}/include/" DESTINATION "${CMAKE_INSTALL_PREFIX}/include/" FILES_MATCHING PATTERN "*.h"
+-)
+\ No newline at end of file
++)
+--
+2.24.1
+
diff --git a/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb b/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
new file mode 100644
index 0000000000..1d650ac63b
--- /dev/null
+++ b/meta-oe/recipes-extended/liblightmodbus/liblightmodbus_2.0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "A cross-platform, lightweight Modbus RTU library"
+DESCRIPTION = "liblightmodbus is a very lightweight, highly configurable, \
+ platform-independent Modbus RTU library."
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+inherit cmake pkgconfig
+
+SRC_URI = "git://github.com/Jacajack/liblightmodbus.git;protocol=https;branch=master \
+ file://0001-cmake-Use-GNUInstallDirs-instead-of-hardcoding-lib-p.patch \
+ "
+SRCREV = "59d2b405f95701e5b04326589786dbb43ce49e81"
+
+S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch b/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch
deleted file mode 100644
index ea13e11d25..0000000000
--- a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/configure.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- liblockfile-1.05/./configure.in~configure
-+++ liblockfile-1.05/./configure.in
-@@ -1,4 +1,5 @@
--AC_INIT(lockfile.c)
-+AC_INIT
-+AC_CONFIG_SRCDIR([lockfile.c])
- AC_CONFIG_HEADER(autoconf.h)
- AC_REVISION($Revision: 1.0 $)dnl
-
-@@ -111,7 +112,8 @@
- AC_SUBST(INSTALL_TARGETS)
- AC_SUBST(nfslockdir)
-
--AC_OUTPUT(\
-+AC_CONFIG_FILES([\
- ./Makefile \
- ./maillock.h \
--)
-+])
-+AC_OUTPUT
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch b/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch
deleted file mode 100644
index a9319ff1e3..0000000000
--- a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/install.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- liblockfile-1.05/Makefile.in~install
-+++ liblockfile-1.05/Makefile.in
-@@ -20,6 +20,7 @@
- includedir = @includedir@
-
- MAILGROUP = @MAILGROUP@
-+INSTGRP = $(if $(MAILGROUP),-g $(MAILGROUP))
-
- all: @TARGETS@
- install: @INSTALL_TARGETS@
-@@ -50,25 +51,27 @@
- $(CC) $(CFLAGS) -c lockfile.c -o xlockfile.o
-
- install_static: static install_common
-+ install -d $(ROOT)$(libdir)
- install -m 644 liblockfile.a $(ROOT)$(libdir)
-
- install_shared: shared install_common
-+ install -d $(ROOT)$(libdir)
- install -m 755 liblockfile.so \
- $(ROOT)$(libdir)/liblockfile.so.$(VER)
- ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
- install_common:
-+ install -d $(ROOT)$(includedir)
- install -m 644 lockfile.h maillock.h $(ROOT)$(includedir)
-- if [ "$(MAILGROUP)" != "" ]; then\
-- install -g $(MAILGROUP) -m 2755 dotlockfile $(ROOT)$(bindir);\
-- else \
-- install -g root -m 755 dotlockfile $(ROOT)$(bindir); \
-- fi
-+ install -d $(ROOT)$(bindir)
-+ install -m 755 $(INSTGRP) dotlockfile $(ROOT)$(bindir)
-+ install -d $(ROOT)$(mandir)/man1 $(ROOT)$(mandir)/man3
- install -m 644 *.1 $(ROOT)$(mandir)/man1
- install -m 644 *.3 $(ROOT)$(mandir)/man3
-
- install_nfslib: nfslib
-+ install -d $(ROOT)$(nfslockdir)
- install -m 755 nfslock.so.$(VER) $(ROOT)$(nfslockdir)
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch b/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch
deleted file mode 100644
index eb1d1478b8..0000000000
--- a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/ldflags.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- liblockfile-1.05/Makefile.in~ldflags
-+++ liblockfile-1.05/Makefile.in
-@@ -34,11 +34,11 @@
-
- liblockfile.so: liblockfile.a
- $(CC) -fPIC -shared -Wl,-soname,liblockfile.so.1 \
-- -o liblockfile.so lockfile.o -lc
-+ -o liblockfile.so lockfile.o $(LDFLAGS) -lc
-
- nfslock.so.$(VER): nfslock.o
- $(CC) -fPIC -shared -Wl,-soname,nfslock.so.0 \
-- -o nfslock.so.$(NVER) nfslock.o
-+ -o nfslock.so.$(NVER) nfslock.o $(LDFLAGS)
-
- dotlockfile: dotlockfile.o xlockfile.o
- $(CC) $(LDFLAGS) -o dotlockfile dotlockfile.o xlockfile.o
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch b/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch
deleted file mode 100644
index 27f760c832..0000000000
--- a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-install-so-to-man-dir.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Upstream-Status: Inappropriate [no upstream]
-
-The extend so file is rename from nfslock.so.$(VER) to nfslock.so.$(NVER). That
-causes file nfslock.so.0.1 is installed into manual directory. Fix it.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
-diff --git a/Makefile.in b/Makefile.in
-index a589fb8..46a57e8 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -68,7 +68,7 @@ install_common:
- install -d $(ROOT)$(bindir)
- install -m 755 $(INSTGRP) dotlockfile $(ROOT)$(bindir)
- install -d $(ROOT)$(mandir)/man1 $(ROOT)$(mandir)/man3
-- install -m 644 *.1 $(ROOT)$(mandir)/man1
-+ install -m 644 dotlockfile.1 $(ROOT)$(mandir)/man1
- install -m 644 *.3 $(ROOT)$(mandir)/man3
-
- install_nfslib: nfslib
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch b/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch
deleted file mode 100644
index ffd7a40fab..0000000000
--- a/meta-oe/recipes-extended/liblockfile/liblockfile-1.09/liblockfile-fix-nfslib-and-soname.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-Upstream-Status: Inappropriate [no upstream]
-
-* nfslib should use NVER instead of VER
-* install the missing soname library
-
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- Makefile.in | 9 ++++++---
- 1 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 836ca9b..a589fb8 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -27,7 +27,7 @@ install: @INSTALL_TARGETS@
-
- static: liblockfile.a dotlockfile
- shared: liblockfile.so dotlockfile
--nfslib: nfslock.so.$(VER)
-+nfslib: nfslock.so.$(NVER)
-
- liblockfile.a: lockfile.o
- $(AR) rv liblockfile.a lockfile.o
-@@ -36,7 +36,7 @@ liblockfile.so: liblockfile.a
- $(CC) -fPIC -shared -Wl,-soname,liblockfile.so.1 \
- -o liblockfile.so lockfile.o $(LDFLAGS) -lc
-
--nfslock.so.$(VER): nfslock.o
-+nfslock.so.$(NVER): nfslock.o
- $(CC) -fPIC -shared -Wl,-soname,nfslock.so.0 \
- -o nfslock.so.$(NVER) nfslock.o $(LDFLAGS)
-
-@@ -59,6 +59,7 @@ install_shared: shared install_common
- install -m 755 liblockfile.so \
- $(ROOT)$(libdir)/liblockfile.so.$(VER)
- ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so
-+ ln -s liblockfile.so.$(VER) $(ROOT)$(libdir)/liblockfile.so.1
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
- install_common:
-@@ -72,7 +73,9 @@ install_common:
-
- install_nfslib: nfslib
- install -d $(ROOT)$(nfslockdir)
-- install -m 755 nfslock.so.$(VER) $(ROOT)$(nfslockdir)
-+ install -m 755 nfslock.so.$(NVER) $(ROOT)$(nfslockdir)
-+ ln -sf nfslock.so.$(NVER) $(ROOT)$(libdir)/nfslock.so
-+ ln -sf nfslock.so.$(NVER) $(ROOT)$(libdir)/nfslock.so.0
- if test "$(ROOT)" = ""; then @LDCONFIG@; fi
-
- clean:
---
-1.7.9.5
-
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
new file mode 100644
index 0000000000..2533b3a008
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-add-DESTDIR.patch
@@ -0,0 +1,54 @@
+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
+
+Add DESTDIR to fix below error during do_install
+
+| install -d -m 755 -g root -p /usr/include
+| install -d -m 755 -g root -p /usr/lib
+| install -d -m 755 -g root -p /usr/bin
+| install -m 755 nfslock.so.0.1 /usr/lib
+| install -d -m 755 -g root -p /usr/share/man/man1
+| install: cannot create regular file '/usr/lib/nfslock.so.0.1': Permission denied
+| Makefile:78: recipe for target 'install_nfslib' failed
+| make: *** [install_nfslib] Error 1
+| make: *** Waiting for unfinished jobs....
+| install -d -m 755 -g root -p /usr/share/man/man3
+| install -m 644 lockfile.h maillock.h /usr/include
+| install: cannot create regular file '/usr/include/lockfile.h': Permission denied
+| install: cannot create regular file '/usr/include/maillock.h': Permission denied
+| Makefile:64: recipe for target 'install_common' failed
+| make: *** [install_common] Error 1
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 9c74b35..8cbda1d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -12,11 +12,11 @@ CC = @CC@
+
+ prefix = $(DESTDIR)@prefix@
+ exec_prefix = @exec_prefix@
+-bindir = @bindir@
+-libdir = @libdir@
+-mandir = @mandir@
+-nfslockdir = @nfslockdir@
+-includedir = @includedir@
++bindir = $(DESTDIR)@bindir@
++libdir = $(DESTDIR)@libdir@
++mandir = $(DESTDIR)@mandir@
++nfslockdir = $(DESTDIR)@nfslockdir@
++includedir = $(DESTDIR)@includedir@
+ datarootdir = @datarootdir@
+ MAILGROUP = @MAILGROUP@
+
+--
+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
new file mode 100644
index 0000000000..f99ac2bf7a
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-install-nfslock-libs.patch
@@ -0,0 +1,31 @@
+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
+
+* install the missing soname library
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Makefile.in b/Makefile.in
+index 8cbda1d..3a74811 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -88,6 +88,8 @@ install_common:
+ install_nfslib: nfslib
+ install -d -m 755 -g root -p $(nfslockdir)
+ 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
+
+ test: test-stamp
+--
+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
new file mode 100644
index 0000000000..c387db123f
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/0001-Makefile.in-redefine-LOCKPROG.patch
@@ -0,0 +1,51 @@
+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
+
+By default the LOCKPROG will be expanded as below:
+LOCKPROG="/build/tmp-glibc/work/core2-32-wrs-linux/liblockfile/1.14-r0/image/usr/bin/dotlockfile"
+
+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 | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index e447cb2..e02d75e 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -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\" \
+ -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
+
+ 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
new file mode 100644
index 0000000000..2bdf96e639
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/configure.patch
@@ -0,0 +1,37 @@
+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
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+Upstream-Status: Pending
+
+ 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
++AC_CONFIG_SRCDIR([lockfile.c])
+ AC_CONFIG_HEADER(autoconf.h)
+ AC_REVISION($Revision: 1.0 $)dnl
+
+@@ -111,7 +112,8 @@ AC_SUBST(TARGETS)
+ AC_SUBST(INSTALL_TARGETS)
+ AC_SUBST(nfslockdir)
+
+-AC_OUTPUT(\
++AC_CONFIG_FILES([\
+ ./Makefile \
+ ./maillock.h \
+-)
++])
++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
new file mode 100644
index 0000000000..046cd8e693
--- /dev/null
+++ b/meta-oe/recipes-extended/liblockfile/liblockfile/liblockfile-fix-install-so-to-man-dir.patch
@@ -0,0 +1,33 @@
+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
+
+Explicitly define dotlockfile.1 installed to man
+dir to avoid nfslock.so.0.1 is installed into man
+directory
+
+Upstream-Status: Pending
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 3a74811..e447cb2 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -82,7 +82,7 @@ install_common:
+ else \
+ install -g root -m 755 dotlockfile $(bindir); \
+ fi
+- install -m 644 *.1 $(mandir)/man1
++ install -m 644 dotlockfile.1 $(mandir)/man1
+ install -m 644 *.3 $(mandir)/man3
+
+ install_nfslib: nfslib
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb b/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
deleted file mode 100644
index 0c41afa3c0..0000000000
--- a/meta-oe/recipes-extended/liblockfile/liblockfile_1.09.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "File locking library"
-HOMEPAGE = "http://packages.qa.debian.org/libl/liblockfile.html"
-SECTION = "libs"
-LICENSE = "LGPLv2+ & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=ac284a60d48eaa4bc811cddc377fa341"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.09.orig.tar.gz \
- ${DEBIAN_MIRROR}/main/libl/liblockfile/liblockfile_1.09-6.debian.tar.bz2;name=1.09-6 \
- file://install.patch \
- file://configure.patch \
- file://ldflags.patch \
- file://liblockfile-fix-nfslib-and-soname.patch \
- file://liblockfile-fix-install-so-to-man-dir.patch \
-"
-
-SRC_URI[md5sum] = "2aa269e4405ee8235ff17d1b357c6ae8"
-SRC_URI[sha256sum] = "16979eba05396365e1d6af7100431ae9d32f9bc063930d1de66298a0695f1b7f"
-
-SRC_URI[1.09-6.md5sum] = "a2811807e63a526c07b0f60626e329a2"
-SRC_URI[1.09-6.sha256sum] = "d45eacb7c637c16d03c777c55989d98da494ae9584a0783fe6dbf0db60fa290f"
-
-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 ROOT not DESTDIR
-EXTRA_OEMAKE += "ROOT=${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/liblogging/liblogging_1.0.5.bb b/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb
deleted file mode 100644
index 64a258b01b..0000000000
--- a/meta-oe/recipes-extended/liblogging/liblogging_1.0.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "An easy to use logging library"
-DESCRIPTION = " \
-liblogging (the upstream project) is a collection of several components. \
-Namely: stdlog, journalemu, rfc3195. \
-The stdlog component of liblogging can be viewed as an enhanced version of \
-the syslog(3) API. It retains the easy semantics, but makes the API more \
-sophisticated "behind the scenes" with better support for multiple threads \
-and flexibility for different log destinations (e.g. syslog and systemd \
-journal)."
-SECTION = "libs"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=63fe03535d83726f5655072502bef1bc"
-SRC_URI = "http://download.rsyslog.com/${BPN}/${BPN}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "44b8ce2daa1bfb84c9feaf42f9925fd7"
-SRC_URI[sha256sum] = "310dc1691279b7a669d383581fe4b0babdc7bf75c9b54a24e51e60428624890b"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-man-pages"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-journal, --disable-journal, systemd"
diff --git a/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb b/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb
new file mode 100644
index 0000000000..5c1c151591
--- /dev/null
+++ b/meta-oe/recipes-extended/liblogging/liblogging_1.0.6.bb
@@ -0,0 +1,23 @@
+SUMMARY = "An easy to use logging library"
+DESCRIPTION = " \
+liblogging (the upstream project) is a collection of several components. \
+Namely: stdlog, journalemu, rfc3195. \
+The stdlog component of liblogging can be viewed as an enhanced version of \
+the syslog(3) API. It retains the easy semantics, but makes the API more \
+sophisticated "behind the scenes" with better support for multiple threads \
+and flexibility for different log destinations (e.g. syslog and systemd \
+journal)."
+SECTION = "libs"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=63fe03535d83726f5655072502bef1bc"
+SRC_URI = "http://download.rsyslog.com/${BPN}/${BPN}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "f215c7e7ac6cfd1f5dabdba08c522b29"
+SRC_URI[sha256sum] = "338c6174e5c8652eaa34f956be3451f7491a4416ab489aef63151f802b00bf93"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-man-pages"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "--enable-journal, --disable-journal, systemd"
diff --git a/meta-oe/recipes-extended/liblognorm/liblognorm.inc b/meta-oe/recipes-extended/liblognorm/liblognorm.inc
index dc8abb91f1..5a6cda6ca4 100644
--- a/meta-oe/recipes-extended/liblognorm/liblognorm.inc
+++ b/meta-oe/recipes-extended/liblognorm/liblognorm.inc
@@ -4,7 +4,7 @@ DESCRIPTION = "Briefly described, liblognorm is a tool to normalize log data."
HOMEPAGE = "http://www.liblognorm.com"
SECTION = "base"
-LICENSE = "LGPL-2.1+"
+LICENSE = "LGPL-2.1-or-later"
SRC_URI = "http://www.liblognorm.com/files/download/${BPN}-${PV}.tar.gz\
"
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus.inc b/meta-oe/recipes-extended/libmodbus/libmodbus.inc
index a01659a72d..0857cc455b 100644
--- a/meta-oe/recipes-extended/libmodbus/libmodbus.inc
+++ b/meta-oe/recipes-extended/libmodbus/libmodbus.inc
@@ -5,9 +5,12 @@ QNX and Windows."
HOMEPAGE = "http://www.libmodbus.org/"
SECTION = "libs"
-LICENSE = "LGPLv2.1+"
+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
new file mode 100644
index 0000000000..e7fbb0389f
--- /dev/null
+++ b/meta-oe/recipes-extended/libmodbus/libmodbus/Fix-float-endianness-issue-on-big-endian-arch.patch
@@ -0,0 +1,316 @@
+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
+
+---
+Upstream-Status: Pending
+
+ 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.1.4.bb b/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb
deleted file mode 100644
index d438a0abca..0000000000
--- a/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.4.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require libmodbus.inc
-
-# Use the stable branch by default
-DEFAULT_PREFERENCE = "-1"
-
-SRC_URI[md5sum] = "b1a8fd3a40d2db4de51fb0cbcb201806"
-SRC_URI[sha256sum] = "c8c862b0e9a7ba699a49bc98f62bdffdfafd53a5716c0e162696b4bf108d3637"
diff --git a/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb b/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb
new file mode 100644
index 0000000000..6c0e315d79
--- /dev/null
+++ b/meta-oe/recipes-extended/libmodbus/libmodbus_3.1.7.bb
@@ -0,0 +1,9 @@
+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-fix-musl-build.patch b/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch
new file mode 100644
index 0000000000..2cbdd6c74c
--- /dev/null
+++ b/meta-oe/recipes-extended/libpwquality/files/0001-fix-musl-build.patch
@@ -0,0 +1,72 @@
+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/add-missing-python-include-dir-for-cross.patch b/meta-oe/recipes-extended/libpwquality/files/add-missing-python-include-dir-for-cross.patch
index d12492f022..636b294073 100644
--- 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
@@ -4,7 +4,7 @@ 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]
+Upstream-Status: Inappropriate [oe-core specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
@@ -13,28 +13,23 @@ Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/python/Makefile.am b/python/Makefile.am
-index abc5cd3..e35ba71 100644
+index 1d00c0c..52816b2 100644
--- a/python/Makefile.am
+++ b/python/Makefile.am
-@@ -14,4 +14,4 @@ all-local:
- CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py build --build-lib=.
+@@ -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 install --prefix=${DESTDIR}${prefix}
-+ CFLAGS="${CFLAGS} -fno-strict-aliasing" @PYTHONBINARY@ setup.py install --prefix=${DESTDIR}${prefix} --install-lib=${DESTDIR}/${PYTHONSITEDIR}
+- 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 6457595..d3db0e5 100755
+index a741b91..6759a95 100755
--- a/python/setup.py.in
+++ b/python/setup.py.in
-@@ -6,6 +6,7 @@
-
- from distutils.core import setup, Extension
- from distutils.command.build_ext import build_ext as _build_ext
-+import os
-
- class build_ext(_build_ext):
- def genconstants(self, headerfile, outputfile):
-@@ -23,7 +24,7 @@ class build_ext(_build_ext):
+@@ -33,7 +33,7 @@ class sdist(_sdist):
pwqmodule = Extension('pwquality',
sources = ['pwquality.c'],
@@ -44,5 +39,5 @@ index 6457595..d3db0e5 100755
libraries = ['pwquality'])
--
-1.9.1
+2.17.1
diff --git a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
deleted file mode 100644
index f2d7922078..0000000000
--- a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.0.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-DESCRIPTION = "Library for password quality checking and generating random passwords"
-HOMEPAGE = "https://github.com/libpwquality/libpwquality"
-SECTION = "devel/lib"
-LICENSE = "GPLv2"
-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[md5sum] = "b8defcc7280a90e9400d6689c93a279c"
-SRC_URI[sha256sum] = "1de6ff046cf2172d265a2cb6f8da439d894f3e4e8157b056c515515232fade6b"
-
-UPSTREAM_CHECK_URI = "https://github.com/libpwquality/libpwquality/releases"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-DEPENDS = "cracklib virtual/gettext python3"
-RDEPENDS_python3-libpwquality = "${PN}"
-
-inherit autotools python3native gettext
-
-B = "${S}"
-
-export PYTHON_DIR
-export BUILD_SYS
-export HOST_SYS
-export STAGING_LIBDIR
-export STAGING_INCDIR
-
-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"
-
-PACKAGES += "python3-libpwquality python3-libpwquality-dbg"
-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"
-FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
-FILES_python3-${PN}-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
diff --git a/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
new file mode 100644
index 0000000000..b50c0f7de7
--- /dev/null
+++ b/meta-oe/recipes-extended/libpwquality/libpwquality_1.4.4.bb
@@ -0,0 +1,43 @@
+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} \
+ --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/0001-build-fix-configure-script-neglecting-re-enable-out-.patch b/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch
deleted file mode 100644
index c82f3bf017..0000000000
--- a/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 73d2aea33e32272bac693550e8a3b0e3ad89707f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
-Date: Tue, 26 Dec 2017 00:02:26 +0100
-Subject: [PATCH] build: fix configure script neglecting, re-enable out-of-tree
- builds
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-For the former, a prototype and the final code got (hm, mysteriously)
-intertwisted. For the latter, I am clearly guilty of (rare, anyway)
-testing of the out-of-tree builds only with libqb-already-system-wide
-scenario, which is rather shortsighted.
-
-Thanks Fabio and his ci.kronosnet.org project for spotting that.
-
-X-mas-present-for: Fabio M. Di Nitto <fdinitto@redhat.com>
-Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
----
-Upstream-Status: Backport
-
- configure.ac | 2 +-
- lib/Makefile.am | 4 +++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9900310..f9761cc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -710,7 +710,7 @@ if test "x${GCC}" = xyes; then
- | grep __stop___verbose | cut -d" " -f 3)
- test "${verbose_start_addr}" = "${verbose_stop_addr}" \
- && gcc_has_attribute_section_visible=no \
-- || { verbose_start_type=$(${READELF} -s backup \
-+ || { verbose_start_type=$(${READELF} -s "conftest${shrext_cmds}" \
- | sed -n '/__start___verbose/{s/^\s*//p;q}' \
- | tr -s ' ' \
- | cut -d" " -f6)
-diff --git a/lib/Makefile.am b/lib/Makefile.am
-index 6ca6b15..b035f0b 100644
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -101,7 +101,9 @@ endif
- endif
-
- qblog_script.ld: %.ld: %.ld.in
-- $(AM_V_GEN)$(CPP) -xc -I$(top_srcdir)/include -D_GNU_SOURCE -C -P $< \
-+ $(AM_V_GEN)$(CPP) -C -D_GNU_SOURCE -P \
-+ -I$(top_srcdir)/include -I$(top_builddir)/include \
-+ -xc $< \
- | sed -n "/$$(sed -n '/^[^#]/{s/[*\/]/\\&/g;p;q;}' $<)/,$$ p" \
- > $@
-
---
-2.16.2
-
diff --git a/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb b/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
deleted file mode 100644
index d857344e3f..0000000000
--- a/meta-oe/recipes-extended/libqb/libqb_1.0.3.bb
+++ /dev/null
@@ -1,33 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
-
-inherit autotools pkgconfig
-
-PV .= "+git${SRCPV}"
-
-# v1.0.3
-SRCREV = "28dff090c74b6ba8609c4797294a5afe3fe73987"
-SRC_URI = "git://github.com/ClusterLabs/${BPN}.git \
- file://0001-build-fix-configure-script-neglecting-re-enable-out-.patch \
- "
-S = "${WORKDIR}/git"
-
-# otherwise do_configure fails
-# configure:21609: checking whether linker workaround for orphan sections usable
-# configure:21639: i586-oe-linux-gcc -m32 -march=i586 --sysroot=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot -o conftest -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0=/usr/src/debug/libqb/1.0.3+gitAUTOINC+c235284b5f-r0 -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot= -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native= -pipe -pthread -D_REENTRANT -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,conftest.ld conftest.c >&5
-# WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/8.1.0/ld: error: conftest.ld: SECTIONS seen after other input files; try -T/--script
-# WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/8.1.0/ld: internal error in write_sections, at ../../gold/reloc.cc:791
-# collect2: error: ld returned 1 exit status
-EXTRA_OECONF_append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' --enable-nosection-fallback', '', d)}"
-
-CFLAGS += "-pthread -D_REENTRANT"
-do_configure_prepend() {
- ( cd ${S}
- ${S}/autogen.sh )
-}
diff --git a/meta-oe/recipes-extended/libqb/libqb_2.0.7.bb b/meta-oe/recipes-extended/libqb/libqb_2.0.7.bb
new file mode 100644
index 0000000000..9123e0a4cd
--- /dev/null
+++ b/meta-oe/recipes-extended/libqb/libqb_2.0.7.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 = "06c8641de2e1fef1fc6026709fb2109fbbb79d79"
+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 9b328a10a1..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 db32ba60ca75d288d3ac08b54256cb74d9e1581a 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/3] 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 c6ab640..fb09fc1 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.8.1
+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 146510e3cf..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,26 +1,30 @@
-From d8c49e6a15ab28f4ca94e03b2a53ed8df63346cd Mon Sep 17 00:00:00 2001
+From 276c45d0663124c9ccab0ddc8b97fb5cdc8b3867 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 26 Apr 2017 03:49:45 -0400
-Subject: [PATCH 2/3] configure.ac: remove prog test of xmlto and asciidoc
+Date: Tue, 31 Jul 2018 16:53:04 +0800
+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 ccefe50..ed48c88 100644
+index da8cf898..17ece200 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -68,24 +68,6 @@ if test -z "$PYTHON3"; then
- exit 1
- fi
+@@ -57,24 +57,6 @@ IT_PROG_INTLTOOL([0.35.0])
+
+ dnl ****** END ****************************************
-AC_PATH_PROG([ASCIIDOC], [asciidoc], [no])
-[if test "$ASCIIDOC" = "no"]
@@ -42,7 +46,7 @@ index ccefe50..ed48c88 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.8.1
+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 3ad7774647..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 0e96d9f23b2b166e7444e7c8e0a6d4b83c2eccd7 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/3] 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.8.1
+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 9839e5a9f0..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 cf3b646facc19078ed29f828e36dd2e552283518 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] 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 c06af2d..b90f49e 100644
+index 17ece200..89b463a4 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -288,14 +288,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 c06af2d..b90f49e 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.8.1
+2.25.1
diff --git a/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch b/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch
deleted file mode 100644
index 9770f077c2..0000000000
--- a/meta-oe/recipes-extended/libreport/files/0005-remove-python2-support.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 06710ab89fc7d7a82a378289aa3fcd92d33074f2 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Apr 2017 03:31:00 -0400
-Subject: [PATCH] remove python2 support
-
-We do not require python2, so remove it.
-
-Upstream-Status: Inappropriate workaround
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 15 ---------------
- src/client-python/reportclient/Makefile.am | 9 ---------
- src/report-python/Makefile.am | 19 -------------------
- 3 files changed, 43 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index eb50382..826d0fe 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -166,15 +166,6 @@ do
- done
- fi dnl end NO_MANTISBT
-
--AC_PATH_PROG([PYTHON_CONFIG], [python-config], [no])
--[if test "$PYTHON_CONFIG" = "no"]
--[then]
-- [echo "The python-config program was not found in the search path. Please ensure"]
-- [echo "that it is installed and its directory is included in the search path."]
-- [echo "Then run configure again before attempting to build libreport."]
-- [exit 1]
--[fi]
--
- AC_PATH_PROG([PYTHON3_CONFIG], [python3-config], [no])
- [if test "$PYTHON3_CONFIG" = "no"]
- [then]
-@@ -184,9 +175,6 @@ AC_PATH_PROG([PYTHON3_CONFIG], [python3-config], [no])
- [exit 1]
- [fi]
-
--PYTHON_CFLAGS=`python-config --cflags 2> /dev/null`
--PYTHON_LIBS=`python-config --libs 2> /dev/null`
--
- PYTHON3_CFLAGS=`python3-config --cflags 2> /dev/null`
- PYTHON3_LIBS=`python3-config --libs 2> /dev/null`
-
-@@ -198,9 +186,6 @@ PYTHON3_DIR=`$PYTHON3 -c "import distutils.sysconfig; \
- PYTHON3_EXECDIR=`$PYTHON3 -c "import distutils.sysconfig; \
- print(distutils.sysconfig.get_python_lib(1,0,prefix='$PYTHON3_EXEC_PREFIX'))"`
-
--AC_SUBST(PYTHON_CFLAGS)
--AC_SUBST(PYTHON_LIBS)
--
- AC_SUBST(PYTHON3_CFLAGS)
- AC_SUBST(PYTHON3_LIBS)
- AC_SUBST(python3dir, $PYTHON3_DIR)
-diff --git a/src/client-python/reportclient/Makefile.am b/src/client-python/reportclient/Makefile.am
-index 46ac42f..fb5216a 100644
---- a/src/client-python/reportclient/Makefile.am
-+++ b/src/client-python/reportclient/Makefile.am
-@@ -4,13 +4,10 @@ PYFILES = \
- dnfdebuginfo.py \
- yumdebuginfo.py
-
--py2clientdir = $(pyexecdir)/reportclient
- py3clientdir = $(py3execdir)/reportclient
-
--py2client_PYTHON = $(PYFILES)
- py3client_PYTHON = $(PYFILES)
-
--py2client_LTLIBRARIES = _reportclient.la
- py3client_LTLIBRARIES = _reportclient3.la
-
- PYEXTFILES = \
-@@ -33,12 +30,6 @@ PYEXTLDFLAGS = \
- -avoid-version \
- -Wl,-z,relro -Wl,-z,now
-
--_reportclient_la_SOURCES = $(PYEXTFILES)
--_reportclient_la_CPPFLAGS = $(PYEXTCPPFLAGS) $(PYTHON_CFLAGS)
--_reportclient_la_LDFLAGS = $(PYEXTLDFLAGS) \
-- -export-symbols-regex init_reportclient
--_reportclient_la_LIBADD = ../../lib/libreport.la
--
- _reportclient3_la_SOURCES = $(PYEXTFILES)
- _reportclient3_la_CPPFLAGS = $(PYEXTCPPFLAGS) $(PYTHON3_CFLAGS)
- _reportclient3_la_LDFLAGS = $(PYEXTLDFLAGS) \
-diff --git a/src/report-python/Makefile.am b/src/report-python/Makefile.am
-index 793cebd..241dcb7 100644
---- a/src/report-python/Makefile.am
-+++ b/src/report-python/Makefile.am
-@@ -1,12 +1,9 @@
- PYFILES = __init__.py accountmanager.py
-
--pyreportexecdir = $(pyexecdir)/report
- py3reportexecdir = $(py3execdir)/report
-
--pyreportexec_PYTHON = $(PYFILES)
- py3reportexec_PYTHON = $(PYFILES)
-
--pyreportexec_LTLIBRARIES = _pyreport.la
- py3reportexec_LTLIBRARIES = _py3report.la
-
- PYEXTFILES = \
-@@ -34,20 +31,6 @@ PYEXTLDFLAGS = \
- -avoid-version \
- -Wl,-z,relro -Wl,-z,now
-
--_pyreport_la_SOURCES = $(PYEXTFILES)
--
--_pyreport_la_CPPFLAGS = \
-- $(PYEXTCPPFLAGS) \
-- $(PYTHON_CFLAGS)
--
--_pyreport_la_LDFLAGS = \
-- $(PYEXTLDFLAGS) \
-- -export-symbols-regex init_pyreport
--
--_pyreport_la_LIBADD = \
-- ../lib/libreport.la \
-- $(PYTHON2_LIBS)
--
- _py3report_la_SOURCES = $(PYEXTFILES)
-
- _py3report_la_CPPFLAGS = \
-@@ -64,7 +47,6 @@ _py3report_la_LIBADD = \
-
- # report compat:
-
--pyreportioexecdir = $(pyexecdir)/report/io
- py3reportioexecdir = $(py3execdir)/report/io
-
- PYIOFILES = \
-@@ -73,5 +55,4 @@ PYIOFILES = \
- io/NewtIO.py \
- io/TextIO.py
-
--pyreportioexec_PYTHON = $(PYIOFILES)
- py3reportioexec_PYTHON = $(PYIOFILES)
---
-2.8.1
-
diff --git a/meta-oe/recipes-extended/libreport/libreport_2.17.8.bb b/meta-oe/recipes-extended/libreport/libreport_2.17.8.bb
new file mode 100644
index 0000000000..1f2c55c699
--- /dev/null
+++ b/meta-oe/recipes-extended/libreport/libreport_2.17.8.bb
@@ -0,0 +1,51 @@
+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 \
+"
+
+# 2.17.8
+SRCREV = "46a99a14adba7276e5697b7c613d918796792345"
+
+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/libreport/libreport_2.9.2.bb b/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
deleted file mode 100644
index edcccd1417..0000000000
--- a/meta-oe/recipes-extended/libreport/libreport_2.9.2.bb
+++ /dev/null
@@ -1,48 +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 = "GPLv2+"
-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"
-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 \
- file://0005-remove-python2-support.patch \
-"
-SRCREV = "cfff49f06d9d17e269d463ee71b3d94c8bfb0c58"
-
-UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
-
-S = "${WORKDIR}/git"
-
-inherit distro_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,"
-
-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/libserialport/libserialport_0.1.1.bb b/meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb
new file mode 100644
index 0000000000..4190338c1f
--- /dev/null
+++ b/meta-oe/recipes-extended/libserialport/libserialport_0.1.1.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "libserialport is a minimal, cross-platform shared library written in C that is intended to take care of the OS-specific details when writing software that uses serial ports."
+HOMEPAGE = "https://sigrok.org/wiki/Libserialport"
+
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+inherit autotools
+
+SRC_URI = "http://sigrok.org/download/source/libserialport/libserialport-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "b93f0325a6157198152b5bd7e8182b51"
+SRC_URI[sha256sum] = "4a2af9d9c3ff488e92fb75b4ba38b35bcf9b8a66df04773eba2a7bbf1fa7529d"
diff --git a/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb b/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb
new file mode 100644
index 0000000000..7498a57049
--- /dev/null
+++ b/meta-oe/recipes-extended/libstatgrab/libstatgrab_0.92.1.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Utilities to collect and visualise system statistics"
+HOMEPAGE = "http://www.i-scream.org/libstatgrab/"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "ncurses"
+
+PACKAGES:prepend = "statgrab statgrab-dbg saidar saidar-dbg ${PN}-mrtg "
+
+# don't use the git tag unless docbooc2x is available to build the manpages
+SRC_URI = "https://github.com/libstatgrab/libstatgrab/releases/download/LIBSTATGRAB_0_92_1/libstatgrab-${PV}.tar.gz \
+ "
+SRC_URI[sha256sum] = "5688aa4a685547d7174a8a373ea9d8ee927e766e3cc302bdee34523c2c5d6c11"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
+# Perl5 is for tests only
+EXTRA_OECONF = "--without-perl5 --with-mnttab=/proc/mounts"
+
+# use with caution - default properties are configured to trace
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[log4cplus] = "--with-log4cplus,--without-log4cplus,log4cplus"
+PACKAGECONFIG[logging] = "--enable-logging,--disable-logging,"
+
+inherit autotools pkgconfig
+
+FILES:statgrab = "${bindir}/statgrab"
+FILES:statgrab-dbg = "${bindir}/.debug/statgrab"
+FILES:saidar = "${bindir}/saidar"
+FILES:saidar-dbg = "${bindir}/.debug/saidar"
+FILES:${PN}-mrtg = "${bindir}/statgrab-make-mrtg-config ${bindir}/statgrab-make-mrtg-index"
+RDEPENDS:${PN}-mrtg:append = " perl statgrab"
diff --git a/meta-oe/recipes-extended/libuio/libuio/0001-include-fcntl.h-for-O_RDWR-define.patch b/meta-oe/recipes-extended/libuio/libuio/0001-include-fcntl.h-for-O_RDWR-define.patch
deleted file mode 100644
index 3cae5c9928..0000000000
--- a/meta-oe/recipes-extended/libuio/libuio/0001-include-fcntl.h-for-O_RDWR-define.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d39c78d322585a32f9a55c67c25a99602ce08b12 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Apr 2017 09:01:33 -0700
-Subject: [PATCH] include fcntl.h for O_RDWR define
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tools/lsuio.c | 1 +
- tools/rwuio.c | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/tools/lsuio.c b/tools/lsuio.c
-index 58eb922..4769446 100644
---- a/tools/lsuio.c
-+++ b/tools/lsuio.c
-@@ -19,6 +19,7 @@
- #include <stdio.h>
- #include <sys/types.h>
- #include <getopt.h>
-+#include <fcntl.h>
-
- #include "system.h"
- #include "uio_helper.h"
-diff --git a/tools/rwuio.c b/tools/rwuio.c
-index aef9e90..ebc71e1 100644
---- a/tools/rwuio.c
-+++ b/tools/rwuio.c
-@@ -20,6 +20,7 @@
- */
- #include <stdio.h>
- #include <stdlib.h>
-+#include <fcntl.h>
- #include <sys/types.h>
- #include <getopt.h>
-
---
-2.12.1
-
diff --git a/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch b/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch
deleted file mode 100644
index fd314bfee5..0000000000
--- a/meta-oe/recipes-extended/libuio/libuio/replace_inline_with_static-inline.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-By default, gcc-5 uses C99 inline semantics, this semantics doesn't
-generate externally visible function for inline functions. This results in
-below error, when an another translation unit (TU) tries to link with the
-inline function,
-
--- snip --
-| lsuio.o: In function `main':
-| <...>/libuio/0.2.1-r0/git/tools/lsuio.c:85: undefined reference to `uio_mmap'
-| collect2: error: ld returned 1 exit status
-| make[2]: *** [lsuio] Error 1
--- CUT --
-
-To solve this error and make libuio to compile with both 4.x and 5.x,
-
-1. We can remove 'uio_mmap' inline function definition in uio_mmap.c, and move
- that definition into uio_helper.h file (which is included by lsuio.c) and
- replace inline with "static inline". Similarly it can be done to other
- uio_single_munmap and uio_munmap inline functions
-
-2. Add 'extern' keyword in front of inline functions declaration, to make
- inlined function as externally visible function, and to link with other TUs.
-
-Going with option 1.
-
-Upstream-Status: Pending
-
-Signed-off-by: Jagadeesh Krishnanjanappa <jkrishnanjanappa@mvista.com>
-
---- git_org/src/uio_helper.h 2015-10-20 02:37:04.183075855 -0400
-+++ git/src/uio_helper.h 2015-10-20 03:34:24.659970136 -0400
-@@ -61,11 +61,11 @@ struct uio_info_t {
-
- /* function prototypes */
-
--inline char* uio_lib_name(void);
--inline char* uio_lib_version(void);
--inline int uio_lib_ifcurrent(void);
--inline int uio_lib_ifrevision(void);
--inline int uio_lib_ifage(void);
-+static inline char* uio_lib_name(void);
-+static inline char* uio_lib_version(void);
-+static inline int uio_lib_ifcurrent(void);
-+static inline int uio_lib_ifrevision(void);
-+static inline int uio_lib_ifage(void);
-
- int uio_get_mem_size(struct uio_info_t* info, int map_num);
- int uio_get_mem_addr(struct uio_info_t* info, int map_num);
-@@ -76,10 +76,30 @@ int uio_get_all_info(struct uio_info_t*
- int uio_get_device_attributes(struct uio_info_t* info);
-
- void* uio_single_mmap(struct uio_info_t* info, int map_num, int fd);
--inline void uio_mmap(struct uio_info_t* info, int fd);
-
--inline void uio_single_munmap(struct uio_info_t* info, int map_num);
--inline void uio_munmap(struct uio_info_t* info);
-+static inline void uio_mmap(struct uio_info_t* info, int fd);
-+static inline void uio_mmap(struct uio_info_t* info, int fd)
-+{
-+ int map_num;
-+ if (!fd) return;
-+ for (map_num= 0; map_num < MAX_UIO_MAPS; map_num++)
-+ uio_single_mmap(info, map_num, fd);
-+}
-+
-+static inline void uio_single_munmap(struct uio_info_t* info, int map_num);
-+static inline void uio_single_munmap(struct uio_info_t* info, int map_num)
-+{
-+ munmap(info->maps[map_num].internal_addr, info->maps[map_num].size);
-+ info->maps[map_num].mmap_result = UIO_MMAP_NOT_DONE;
-+}
-+
-+static inline void uio_munmap(struct uio_info_t* info);
-+static inline void uio_munmap(struct uio_info_t* info)
-+{
-+ int i;
-+ for (i = 0; i < MAX_UIO_MAPS; i++)
-+ uio_single_munmap(info, i);
-+}
-
- void uio_free_dev_attrs(struct uio_info_t* info);
- void uio_free_info(struct uio_info_t* info);
---- git_org/src/uio_mmap.c 2015-10-20 02:37:04.183075855 -0400
-+++ git/src/uio_mmap.c 2015-10-20 03:34:45.060003208 -0400
-@@ -22,11 +22,3 @@
- #include <stdlib.h>
-
- #include "uio_helper.h"
--
--inline void uio_mmap(struct uio_info_t* info, int fd)
--{
-- int map_num;
-- if (!fd) return;
-- for (map_num= 0; map_num < MAX_UIO_MAPS; map_num++)
-- uio_single_mmap(info, map_num, fd);
--}
---- git_org/src/uio_munmap.c 2015-10-20 02:37:04.183075855 -0400
-+++ git/src/uio_munmap.c 2015-10-20 03:34:59.636026835 -0400
-@@ -22,10 +22,3 @@
- #include <stdlib.h>
-
- #include "uio_helper.h"
--
--inline void uio_munmap(struct uio_info_t* info)
--{
-- int i;
-- for (i = 0; i < MAX_UIO_MAPS; i++)
-- uio_single_munmap(info, i);
--}
-\ No newline at end of file
---- git_org/src/uio_single_munmap.c 2015-10-20 02:37:04.183075855 -0400
-+++ git/src/uio_single_munmap.c 2015-10-20 03:52:55.005763023 -0400
-@@ -24,9 +24,3 @@
- #include <sys/mman.h>
-
- #include "uio_helper.h"
--
--inline void uio_single_munmap(struct uio_info_t* info, int map_num)
--{
-- munmap(info->maps[map_num].internal_addr, info->maps[map_num].size);
-- info->maps[map_num].mmap_result = UIO_MMAP_NOT_DONE;
--}
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 dd34c180a3..65bf9ba647 100644
--- a/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
+++ b/meta-oe/recipes-extended/libuio/libuio_0.2.1.bb
@@ -1,22 +1,19 @@
SUMMARY = "Libuio - helper library for UIO subsystem"
SECTION = "base"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-SRC_URI = "git://git.code.sf.net/p/libuio/code \
- file://replace_inline_with_static-inline.patch \
- file://0001-include-fcntl.h-for-O_RDWR-define.patch \
- "
+SRCREV = "17d96e8f9a5bce7cee5e2222855ab46a246dba51"
-inherit autotools
+SRC_URI = "git://git.code.sf.net/p/libuio/code;branch=master;protocol=https"
-SRCREV = "ed4f07ea147ac403c28105ab44d01bbf524d36f9"
+PV .= "+0.2.2+git${SRCPV}"
-PV .= "+git${SRCPV}"
+inherit autotools
S = "${WORKDIR}/git"
PACKAGES += "${PN}-tools"
-FILES_${PN} = "${libdir}"
-FILES_${PN}-tools = "${bindir}"
+FILES:${PN} = "${libdir}"
+FILES:${PN}-tools = "${bindir}"
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 2c31a21c0e..955dd5154b 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
@@ -2,17 +2,17 @@ SUMMARY = "Library for converting WMF files"
HOMEPAGE = "http://wvware.sourceforge.net/libwmf.html"
SECTION = "libs"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
PR = "r3"
-DEPENDS_class-native = "freetype-native libpng-native jpeg-native"
+DEPENDS:class-native = "freetype-native libpng-native jpeg-native"
DEPENDS = "freetype libpng jpeg expat gtk+"
BBCLASSEXTEND = "native"
-inherit distro_features_check autotools pkgconfig
+inherit features_check autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
@@ -25,8 +25,8 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/wvware/${BPN}/${PV}/${BPN}-${PV}.tar.gz;name=ta
SRC_URI[tarball.md5sum] = "d1177739bf1ceb07f57421f0cee191e0"
SRC_URI[tarball.sha256sum] = "5b345c69220545d003ad52bfd035d5d6f4f075e65204114a9e875e84895a7cf8"
-FILES_${PN}-dbg += "${libdir}/gtk-2.0/2.10.0/loaders/.debug"
-FILES_${PN}-dev += "${libdir}/gtk-2.0/2.10.0/loaders/*.la"
-FILES_${PN}-staticdev += "${libdir}/gtk-2.0/2.10.0/loaders/*.a"
-FILES_${PN} += "${libdir}/gtk-2.0/2.10.0/loaders/*.so"
+FILES:${PN}-dbg += "${libdir}/gtk-2.0/2.10.0/loaders/.debug"
+FILES:${PN}-dev += "${libdir}/gtk-2.0/2.10.0/loaders/*.la"
+FILES:${PN}-staticdev += "${libdir}/gtk-2.0/2.10.0/loaders/*.a"
+FILES:${PN} += "${libdir}/gtk-2.0/2.10.0/loaders/*.so"
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/0001-Fix-type-of-the-void-pointer-assignment.patch b/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-Fix-type-of-the-void-pointer-assignment.patch
new file mode 100644
index 0000000000..ea3c306fd7
--- /dev/null
+++ b/meta-oe/recipes-extended/libx86-1/libx86-1.1/0001-Fix-type-of-the-void-pointer-assignment.patch
@@ -0,0 +1,33 @@
+From c782e208021409e9b78acb2200abd4319072e78a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 00:28:05 -0700
+Subject: [PATCH] Fix type of the void pointer assignment
+
+Fixes build with clang
+
+x86-common.c:216:9: error: incompatible integer to pointer conversion assigning to 'void *' from 'long' [-Wint-conversion]
+ offset = mem_info.offset - REAL_MEM_BASE;
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ x86-common.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/x86-common.c b/x86-common.c
+index 137bc3c..6f737ed 100644
+--- a/x86-common.c
++++ b/x86-common.c
+@@ -213,7 +213,7 @@ void *LRMI_common_init(int high_page)
+ if (!real_mem_init(high_page))
+ return NULL;
+
+- offset = mem_info.offset - REAL_MEM_BASE;
++ offset = (void*)(mem_info.offset - REAL_MEM_BASE);
+
+ /*
+ Map the Interrupt Vectors (0x0 - 0x400) + BIOS data (0x400 - 0x502)
+--
+2.37.3
+
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 d303147259..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,13 +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/run-ptest b/meta-oe/recipes-extended/libyang/libyang/run-ptest
new file mode 100644
index 0000000000..c507afb2f5
--- /dev/null
+++ b/meta-oe/recipes-extended/libyang/libyang/run-ptest
@@ -0,0 +1,18 @@
+#!/bin/sh
+
+# cd into right directory
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+tests=$(find * -type f -name 'utest_*')
+
+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-extended/libyang/libyang_2.1.55.bb b/meta-oe/recipes-extended/libyang/libyang_2.1.55.bb
new file mode 100644
index 0000000000..bddf30bf6a
--- /dev/null
+++ b/meta-oe/recipes-extended/libyang/libyang_2.1.55.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 = "9a4e5b2ce30b9696116d6e654ee55caab5aafed8"
+
+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.0.bb b/meta-oe/recipes-extended/libzip/libzip_1.10.0.bb
new file mode 100644
index 0000000000..b500f26e25
--- /dev/null
+++ b/meta-oe/recipes-extended/libzip/libzip_1.10.0.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] = "cd2a7ac9f1fb5bfa6218272d9929955dc7237515bba6e14b5ad0e1d1e2212b43"
+
+BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-extended/linuxconsole/linuxconsole/0001-utils-Use-name-of-the-first-prerequisite-in-rule.patch b/meta-oe/recipes-extended/linuxconsole/linuxconsole/0001-utils-Use-name-of-the-first-prerequisite-in-rule.patch
new file mode 100644
index 0000000000..bbfed0fd82
--- /dev/null
+++ b/meta-oe/recipes-extended/linuxconsole/linuxconsole/0001-utils-Use-name-of-the-first-prerequisite-in-rule.patch
@@ -0,0 +1,37 @@
+From 25f54c3359a0fa34890030662e9b02e0a9745f4f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 13 Apr 2022 20:57:38 -0700
+Subject: [PATCH] utils: Use name of the first prerequisite in rule
+
+Use $< instead of $^ because the latter will specify both pre-requisite
+inputattach.c serio-ids.h files on same compiler cmdline and clang does
+not like that and errors out like below
+
+clang-14: error: cannot specify -o when generating multiple output files
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ utils/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/utils/Makefile b/utils/Makefile
+index 1fc51ab..a7434a9 100644
+--- a/utils/Makefile
++++ b/utils/Makefile
+@@ -46,10 +46,10 @@ endif
+ evdev-joystick: evdev-joystick.c
+
+ inputattach: inputattach.c serio-ids.h
+- $(CC) $(CFLAGS) $(CPPFLAGS) -funsigned-char $^ $(LDFLAGS) $(SYSTEMDFLAGS) -lm -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -funsigned-char $< $(LDFLAGS) $(SYSTEMDFLAGS) -lm -o $@
+
+ ffcfstress: ffcfstress.c bitmaskros.h
+- $(CC) $(CFLAGS) $(CPPFLAGS) -funsigned-char $^ $(LDFLAGS) -lm -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -funsigned-char $< $(LDFLAGS) -lm -o $@
+
+ ffmvforce.o: ffmvforce.c
+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $^ -o $@ `$(PKG_CONFIG) --cflags sdl2`
+--
+2.35.2
+
diff --git a/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules b/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules
new file mode 100644
index 0000000000..3e0ab40189
--- /dev/null
+++ b/meta-oe/recipes-extended/linuxconsole/linuxconsole/51-these-are-not-joysticks-rm.rules
@@ -0,0 +1,83 @@
+# /etc/udev/rules.d/51-these-are-not-joysticks-rm.rules
+#
+# This file is auto-generated. For more information:
+# https://github.com/denilsonsa/udev-joystick-blacklist
+
+SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="046d", ATTRS{idProduct}=="c30a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="04d9", ATTRS{idProduct}=="a0df", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0010", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0011", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0012", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0013", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0014", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0015", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0016", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0017", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0018", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="0019", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="00d1", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="056a", ATTRS{idProduct}=="030e", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="054f", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="1410", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3043", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="31b5", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3997", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="3f8b", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="51f4", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="5589", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7b22", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="7f2d", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="8090", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9033", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9066", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="9090", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="90c0", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f012", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f32a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f613", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="09da", ATTRS{idProduct}=="f624", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b3c", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1d57", ATTRS{idProduct}=="ad03", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="1e7d", ATTRS{idProduct}=="2e4a", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="20a0", ATTRS{idProduct}=="422d", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="001f", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", ENV{ID_INPUT_JOYSTICK}=="?*", ENV{ID_INPUT_JOYSTICK}=""
+SUBSYSTEM=="input", ATTRS{idVendor}=="2516", ATTRS{idProduct}=="0028", KERNEL=="js[0-9]*", RUN+="/bin/rm %E{DEVNAME}", ENV{ID_INPUT_JOYSTICK}=""
diff --git a/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules b/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules
new file mode 100644
index 0000000000..24b009be2c
--- /dev/null
+++ b/meta-oe/recipes-extended/linuxconsole/linuxconsole/60-joystick.rules
@@ -0,0 +1,7 @@
+# Restore any stored calibration for the device
+ACTION=="add", KERNEL=="js*", RUN+="/usr/bin/jscal-restore %E{DEVNAME}"
+
+# Set PS3 controller leds to the same value bluez will choose for it.
+# IMPORT{parent} used because $parent did not appear to be working; we
+# don't need the devpath of the js device for this so it is OK to overwrite.
+ACTION=="add", KERNEL=="js*", IMPORT{parent}="DEVPATH", ATTRS{name}=="Sony PLAYSTATION(R)3 Controller", RUN+="/lib/udev/js-set-enum-leds /sys/%E{DEVPATH}/device/leds/ $number"
diff --git a/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service b/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service
new file mode 100644
index 0000000000..2ec902c094
--- /dev/null
+++ b/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattach.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Attach serial input devices to kernel input subsystem
+After=syslog.target
+
+[Service]
+Type=forking
+ExecStart=/usr/bin/inputattachctl start
+ExecStop=/usr/bin/inputattachctl stop
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl b/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl
new file mode 100644
index 0000000000..c6da4e68fd
--- /dev/null
+++ b/meta-oe/recipes-extended/linuxconsole/linuxconsole/inputattachctl
@@ -0,0 +1,16 @@
+#!/bin/sh
+
+do_start() {
+ grep -v '^#' /etc/inputattach.conf | while read -r line; do
+ inputattach --daemon $line || exit 1
+ done
+}
+
+case "$1" in
+ start)
+ do_start
+ ;;
+ stop)
+ killall -9 inputattach || true
+ ;;
+esac
diff --git a/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.1.bb b/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.1.bb
new file mode 100644
index 0000000000..5716817e95
--- /dev/null
+++ b/meta-oe/recipes-extended/linuxconsole/linuxconsole_1.7.1.bb
@@ -0,0 +1,97 @@
+SUMMARY = "Linux Console Project"
+DESCRIPTION = "This project maintains the Linux Console tools, which include \
+utilities to test and configure joysticks, connect legacy devices to the kernel's \
+input subsystem (providing support for serial mice, touchscreens etc.), and test \
+the input event layer."
+HOMEPAGE = "https://sourceforge.net/projects/linuxconsole"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+DEPENDS = "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/linuxconsole/linuxconsoletools-${PV}.tar.bz2 \
+ file://0001-utils-Use-name-of-the-first-prerequisite-in-rule.patch \
+ file://51-these-are-not-joysticks-rm.rules \
+ file://60-joystick.rules \
+ file://inputattachctl \
+ file://inputattach.service \
+"
+
+SRC_URI[sha256sum] = "bd4d4b7e37da02fc67e47ddf20b6f1243c0a7af7b02b918d5e72138ea8727547"
+
+S = "${WORKDIR}/linuxconsoletools-${PV}"
+
+inherit systemd pkgconfig
+
+EXTRA_OEMAKE = "DESTDIR=${D} PREFIX=${prefix} -C utils"
+EXTRA_OEMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'SYSTEMD_SUPPORT=1', '', d)}"
+
+SYSTEMD_PACKAGES += "inputattach"
+SYSTEMD_SERVICE:inputattach = "inputattach.service"
+SYSTEMD_AUTO_ENABLE:inputattach = "enable"
+
+PROVIDES += "joystick"
+
+PACKAGECONFIG ??= "sdl"
+PACKAGECONFIG[sdl] = ",,libsdl2"
+
+do_compile() {
+ if ! ${@bb.utils.contains('PACKAGECONFIG', 'sdl', 'true', 'false', d)}; then
+ # drop ffmvforce so that we don't need libsdl2
+ sed '/^PROGRAMS/s/ffmvforce *//g' -i ${S}/utils/Makefile
+ fi
+ # respect nonarch_base_libdir path to keep QA check happy
+ sed 's#DESTDIR)/lib/udev#DESTDIR)/${nonarch_base_libdir}/udev#g' -i ${S}/utils/Makefile
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake install
+
+ install -Dm 0644 ${WORKDIR}/51-these-are-not-joysticks-rm.rules ${D}${nonarch_base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules
+ install -Dm 0644 ${WORKDIR}/60-joystick.rules ${D}${nonarch_base_libdir}/udev/rules.d/60-joystick.rules
+
+ install -Dm 0644 ${WORKDIR}/inputattach.service ${D}${systemd_system_unitdir}/inputattach.service
+ install -Dm 0755 ${WORKDIR}/inputattachctl ${D}${bindir}/inputattachctl
+}
+
+PACKAGES += "inputattach joystick-jscal joystick"
+
+# We won't package any file here as we are following the same packaging schema
+# Debian does and we are splitting it in 'inputattach' and 'joystick' packages.
+FILES:${PN} = ""
+
+FILES:inputattach += "\
+ ${bindir}/inputattach \
+ ${bindir}/inputattachctl \
+ ${systemd_system_unitdir}/inputattach.service \
+"
+
+FILES:joystick += "\
+ ${bindir}/evdev-joystick \
+ ${bindir}/ffcfstress \
+ ${bindir}/ffmvforce \
+ ${bindir}/ffset \
+ ${bindir}/fftest \
+ ${bindir}/jstest \
+ ${nonarch_base_libdir}/udev/rules.d/51-these-are-not-joysticks-rm.rules \
+ ${nonarch_base_libdir}/udev/js-set-enum-leds \
+ ${nonarch_base_libdir}/udev/rules.d/60-joystick.rules \
+ ${nonarch_base_libdir}/udev/rules.d/80-stelladaptor-joystick.rules \
+"
+
+FILES:joystick-jscal = " \
+ ${datadir}/joystick \
+ ${bindir}/jscal \
+ ${bindir}/jscal-restore \
+ ${bindir}/jscal-store \
+"
+
+RDEPENDS:inputattach += "inputattach-config"
+
+RDEPENDS:joystick-jscal += "\
+ bash \
+ gawk \
+"
diff --git a/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb b/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb
deleted file mode 100644
index 4354fff9a2..0000000000
--- a/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.17.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Command-line programs to safely lock and unlock files and mailboxes"
-DESCRIPTION = "\
-lockfile-progs provide a method to lock and unlock mailboxes and files \
-safely (via liblockfile)."
-HOMEPAGE = "http://packages.qa.debian.org/l/lockfile-progs.html"
-SECTION = "Applications/System"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
-DEPENDS = "liblockfile"
-
-SRC_URI = "http://ftp.de.debian.org/debian/pool/main/l/${BPN}/${BPN}_${PV}.tar.gz"
-SRC_URI[md5sum] = "64424a766fbc8cf6d613fcc14a096e14"
-SRC_URI[sha256sum] = "03fb05d25499532f497775b1747b61fa6beebf12d3bcc951e125349ae166c511"
-
-do_compile() {
- oe_runmake CFLAGS=' -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables'
-}
-
-do_install() {
- install -m 755 -d ${D}${bindir}
- install bin/* ${D}${bindir}
- install -m 755 -d ${D}${mandir}/man1
- install man/* ${D}${mandir}/man1
-}
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
new file mode 100644
index 0000000000..834687b43b
--- /dev/null
+++ b/meta-oe/recipes-extended/lockfile-progs/lockfile-progs_0.1.19.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Command-line programs to safely lock and unlock files and mailboxes"
+DESCRIPTION = "\
+lockfile-progs provide a method to lock and unlock mailboxes and files \
+safely (via liblockfile)."
+HOMEPAGE = "http://packages.qa.debian.org/l/lockfile-progs.html"
+SECTION = "Applications/System"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+DEPENDS = "liblockfile"
+
+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 ${DEBUG_PREFIX_MAP}'
+}
+
+do_install() {
+ install -m 755 -d ${D}${bindir}
+ install bin/* ${D}${bindir}
+ install -m 755 -d ${D}${mandir}/man1
+ install man/* ${D}${mandir}/man1
+}
diff --git a/meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb b/meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb
deleted file mode 100644
index aea539ef0c..0000000000
--- a/meta-oe/recipes-extended/logwatch/logwatch_7.4.3.bb
+++ /dev/null
@@ -1,58 +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=f2566bb12b16d2d80d90ebc533261aa7"
-RDEPENDS_${PN} = "perl"
-
-SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BP}/${BP}.tar.gz"
-SRC_URI[md5sum] = "22bd22841caa45f12c605abc3e0c2b09"
-SRC_URI[sha256sum] = "1dbdc48d65e150f2dbb43f1e4f4700d94166e053b1c7bbbdedf4ad670283720e"
-
-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
- mv conf/ ${D}${datadir}/logwatch/default.conf
- mv scripts/ ${D}${datadir}/logwatch/scripts
- mv 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.8.bb b/meta-oe/recipes-extended/logwatch/logwatch_7.8.bb
new file mode 100644
index 0000000000..187e794b3d
--- /dev/null
+++ b/meta-oe/recipes-extended/logwatch/logwatch_7.8.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] = "b1df31779306c2c87d595816305c89c19c382edf9ebbfce03143f567e580be42"
+
+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/lprng/lprng/0001-checkpc-Do-not-define-Mail_fd-multiple-times.patch b/meta-oe/recipes-extended/lprng/lprng/0001-checkpc-Do-not-define-Mail_fd-multiple-times.patch
new file mode 100644
index 0000000000..5748690445
--- /dev/null
+++ b/meta-oe/recipes-extended/lprng/lprng/0001-checkpc-Do-not-define-Mail_fd-multiple-times.patch
@@ -0,0 +1,34 @@
+From 6358561d5bad34f0003ebd415142d504fe53045a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 11:42:08 -0700
+Subject: [PATCH] checkpc: Do not define Mail_fd multiple times
+
+Its also defines in var.c via lp.h this is flagged when -fno-common is
+used
+
+Fixes
+TOPDIR/build/tmp/work/core2-32-yoe-linux/lprng/3.8.C-r0/recipe-sysroot-native/usr/bin/i686-yoe-linux/i686-yoe-linux-ld: vars.o:/usr/src/debug/lprng/3.8.C-r0/build/src/../../lprng-3.8.C/src/include/lp.h:72: multiple definition of `Mail_fd'; checkpc.o:/usr/src/debug/lprng/3.8.C-r0/build/src/../../lprng-3.8.C/src/common/checkpc.c:35: first defined here
+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>
+---
+ src/common/checkpc.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/common/checkpc.c b/src/common/checkpc.c
+index aa03b08..7334094 100644
+--- a/src/common/checkpc.c
++++ b/src/common/checkpc.c
+@@ -32,8 +32,6 @@ static int Remove;
+ static char *User_specified_printer;
+ static time_t Current_time;
+ static int Check_path_list( char *plist, int allow_missing );
+-int Mail_fd;
+-
+
+ /* pathnames of the spool directory (sd) and control directory (cd) */
+
+--
+2.28.0
+
diff --git a/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb b/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb
index 963c6320f2..73e4eac3dd 100644
--- a/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb
+++ b/meta-oe/recipes-extended/lprng/lprng_3.8.C.bb
@@ -1,21 +1,23 @@
SUMMARY = "An Enhanced Printer Spooler"
SECTION = "console/utils"
-LICENSE = "GPLv2 | Artistic-1.0"
+LICENSE = "GPL-2.0-only | Artistic-1.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=c6570d8d699af1883db9d0e733ac9bfb"
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+ file://0001-checkpc-Do-not-define-Mail_fd-multiple-times.patch \
+ "
SRC_URI[md5sum] = "5901bed95e61d2bea3ba3056056af432"
SRC_URI[sha256sum] = "694a1747a96385b89e93f43343bf35cee5c8c73353a83814106911c99f09de10"
inherit autotools gettext
EXTRA_OECONF = "--disable-ssl --disable-kerberos --enable-force_localhost"
-FILES_${PN}-dbg += "${libdir}/lprng/filters/.debug"
+FILES:${PN}-dbg += "${libdir}/lprng/filters/.debug"
# configure: WARNING: Program 'clear' is not found. Set environment CLEAR=no if you do not want to use it
export CLEAR = "no"
-do_install_append() {
+do_install:append() {
mv ${D}/etc/printcap.sample ${D}/etc/printcap
mv ${D}/etc/lpd/lpd.conf.sample ${D}/etc/lpd/lpd.conf
mv ${D}/etc/lpd/lpd.perms.sample ${D}/etc/lpd/lpd.perms
diff --git a/meta-oe/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch b/meta-oe/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch
deleted file mode 100644
index 77da33321d..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From: Luk Claes <luk@debian.org>
-Date: Sat, 4 Jul 2009 10:54:53 +0200
-Subject: Don't reuse weak symbol optopt to fix FTBFS on mips*
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- getopt.c | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/getopt.c b/getopt.c
-index 83ce628..82e983c 100644
---- a/getopt.c
-+++ b/getopt.c
-@@ -43,7 +43,7 @@ typedef int ssize_t;
- char *optarg;
- int optind = 1;
- int opterr = 1;
--int optopt;
-+int optoptc;
-
- static void
- error(const char *s, int c)
-@@ -69,7 +69,7 @@ error(const char *s, int c)
- *bp++ = *s++;
- while (*msg)
- *bp++ = *msg++;
-- *bp++ = optopt;
-+ *bp++ = optoptc;
- *bp++ = '\n';
- write(2, buf, bp - buf);
- ac_free(buf);
-@@ -101,13 +101,13 @@ getopt(int argc, char *const argv[], const char *optstring)
- }
- curp = &argv[optind][1];
- }
-- optopt = curp[0] & 0377;
-+ optoptc = curp[0] & 0377;
- while (optstring[0]) {
- if (optstring[0] == ':') {
- optstring++;
- continue;
- }
-- if ((optstring[0] & 0377) == optopt) {
-+ if ((optstring[0] & 0377) == optoptc) {
- if (optstring[1] == ':') {
- if (curp[1] != '\0') {
- optarg = (char *)&curp[1];
-@@ -127,7 +127,7 @@ getopt(int argc, char *const argv[], const char *optstring)
- optind++;
- optarg = 0;
- }
-- return optopt;
-+ return optoptc;
- }
- optstring++;
- }
diff --git a/meta-oe/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch b/meta-oe/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch
deleted file mode 100644
index 6bad433ea6..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From: Hilko Bengen <bengen@debian.org>
-Date: Wed, 27 Apr 2011 00:18:42 +0200
-Subject: Patched out SSL2 support since it is no longer supported by OpenSSL.
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- mailx.1 | 2 +-
- openssl.c | 4 +---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/mailx.1 b/mailx.1
-index 417ea04..a02e430 100644
---- a/mailx.1
-+++ b/mailx.1
-@@ -3575,7 +3575,7 @@ Only applicable if SSL/TLS support is built using OpenSSL.
- .TP
- .B ssl-method
- Selects a SSL/TLS protocol version;
--valid values are `ssl2', `ssl3', and `tls1'.
-+valid values are `ssl3', and `tls1'.
- If unset, the method is selected automatically,
- if possible.
- .TP
-diff --git a/openssl.c b/openssl.c
-index b4e33fc..44fe4e5 100644
---- a/openssl.c
-+++ b/openssl.c
-@@ -216,9 +216,7 @@ ssl_select_method(const char *uhp)
-
- cp = ssl_method_string(uhp);
- if (cp != NULL) {
-- if (equal(cp, "ssl2"))
-- method = SSLv2_client_method();
-- else if (equal(cp, "ssl3"))
-+ if (equal(cp, "ssl3"))
- method = SSLv3_client_method();
- else if (equal(cp, "tls1"))
- method = TLSv1_client_method();
diff --git a/meta-oe/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch b/meta-oe/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch
deleted file mode 100644
index 13b73ae593..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From: Hilko Bengen <bengen@debian.org>
-Date: Sat, 14 Apr 2012 20:22:43 +0200
-Subject: Fixed Lintian warning (warning: macro `N' not defined)
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- mailx.1 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mailx.1 b/mailx.1
-index a02e430..b0723bd 100644
---- a/mailx.1
-+++ b/mailx.1
-@@ -3781,7 +3781,7 @@ you could examine the first message by giving the command:
- .sp
- .fi
- which might cause
--.N mailx
-+.I mailx
- to respond with, for example:
- .nf
- .sp
diff --git a/meta-oe/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch b/meta-oe/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch
deleted file mode 100644
index 13b955c4b5..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0011-outof-Introduce-expandaddr-flag.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 9984ae5cb0ea0d61df1612b06952a61323c083d9 Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 11:13:38 +0100
-Subject: [PATCH 1/4] outof: Introduce expandaddr flag
-
-Document that address expansion is disabled unless the expandaddr
-binary option is set.
-
-This has been assigned CVE-2014-7844 for BSD mailx, but it is not
-a vulnerability in Heirloom mailx because this feature was documented.
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
-CVE: CVE-2014-7844
----
- mailx.1 | 14 ++++++++++++++
- names.c | 3 +++
- 2 files changed, 17 insertions(+)
-
-diff --git a/mailx.1 b/mailx.1
-index 70a7859..22a171b 100644
---- a/mailx.1
-+++ b/mailx.1
-@@ -656,6 +656,14 @@ but any reply returned to the machine
- will have the system wide alias expanded
- as all mail goes through sendmail.
- .SS "Recipient address specifications"
-+If the
-+.I expandaddr
-+option is not set (the default), recipient addresses must be names of
-+local mailboxes or Internet mail addresses.
-+.PP
-+If the
-+.I expandaddr
-+option is set, the following rules apply:
- When an address is used to name a recipient
- (in any of To, Cc, or Bcc),
- names of local mail folders
-@@ -2391,6 +2399,12 @@ and exits immediately.
- If this option is set,
- \fImailx\fR starts even with an empty mailbox.
- .TP
-+.B expandaddr
-+Causes
-+.I mailx
-+to expand message recipient addresses, as explained in the section,
-+Recipient address specifications.
-+.TP
- .B flipr
- Exchanges the
- .I Respond
-diff --git a/names.c b/names.c
-index 66e976b..c69560f 100644
---- a/names.c
-+++ b/names.c
-@@ -268,6 +268,9 @@ outof(struct name *names, FILE *fo, struct header *hp)
- FILE *fout, *fin;
- int ispipe;
-
-+ if (value("expandaddr") == NULL)
-+ return names;
-+
- top = names;
- np = names;
- time(&now);
---
-1.9.3
-
-
diff --git a/meta-oe/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch b/meta-oe/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch
deleted file mode 100644
index 8cdbfd8b03..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0012-unpack-Disable-option-processing-for-email-addresses.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From e34e2ac67b80497080ebecccec40c3b61456167d Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 11:14:06 +0100
-Subject: [PATCH 2/4] unpack: Disable option processing for email addresses
- when calling sendmail
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- extern.h | 2 +-
- names.c | 8 ++++++--
- sendout.c | 2 +-
- 3 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/extern.h b/extern.h
-index 6b85ba0..8873fe8 100644
---- a/extern.h
-+++ b/extern.h
-@@ -396,7 +396,7 @@ struct name *outof(struct name *names, FILE *fo, struct header *hp);
- int is_fileaddr(char *name);
- struct name *usermap(struct name *names);
- struct name *cat(struct name *n1, struct name *n2);
--char **unpack(struct name *np);
-+char **unpack(struct name *smopts, struct name *np);
- struct name *elide(struct name *names);
- int count(struct name *np);
- struct name *delete_alternates(struct name *np);
-diff --git a/names.c b/names.c
-index c69560f..45bbaed 100644
---- a/names.c
-+++ b/names.c
-@@ -549,7 +549,7 @@ cat(struct name *n1, struct name *n2)
- * Return an error if the name list won't fit.
- */
- char **
--unpack(struct name *np)
-+unpack(struct name *smopts, struct name *np)
- {
- char **ap, **top;
- struct name *n;
-@@ -564,7 +564,7 @@ unpack(struct name *np)
- * the terminating 0 pointer. Additional spots may be needed
- * to pass along -f to the host mailer.
- */
-- extra = 2;
-+ extra = 3 + count(smopts);
- extra++;
- metoo = value("metoo") != NULL;
- if (metoo)
-@@ -581,6 +581,10 @@ unpack(struct name *np)
- *ap++ = "-m";
- if (verbose)
- *ap++ = "-v";
-+ for (; smopts != NULL; smopts = smopts->n_flink)
-+ if ((smopts->n_type & GDEL) == 0)
-+ *ap++ = smopts->n_name;
-+ *ap++ = "--";
- for (; n != NULL; n = n->n_flink)
- if ((n->n_type & GDEL) == 0)
- *ap++ = n->n_name;
-diff --git a/sendout.c b/sendout.c
-index 7b7f2eb..c52f15d 100644
---- a/sendout.c
-+++ b/sendout.c
-@@ -835,7 +835,7 @@ start_mta(struct name *to, struct name *mailargs, FILE *input,
- #endif /* HAVE_SOCKETS */
-
- if ((smtp = value("smtp")) == NULL) {
-- args = unpack(cat(mailargs, to));
-+ args = unpack(mailargs, to);
- if (debug || value("debug")) {
- printf(catgets(catd, CATSET, 181,
- "Sendmail arguments:"));
---
-1.9.3
-
-
diff --git a/meta-oe/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch b/meta-oe/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch
deleted file mode 100644
index 5558d8639f..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0013-fio.c-Unconditionally-require-wordexp-support.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 2bae8ecf04ec2ba6bb9f0af5b80485dd0edb427d Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 12:48:25 +0100
-Subject: [PATCH 3/4] fio.c: Unconditionally require wordexp support
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
----
- fio.c | 67 +++++--------------------------------------------------------------
- 1 file changed, 5 insertions(+), 62 deletions(-)
-
-diff --git a/fio.c b/fio.c
-index 65e8f10..1529236 100644
---- a/fio.c
-+++ b/fio.c
-@@ -43,12 +43,15 @@ static char sccsid[] = "@(#)fio.c 2.76 (gritter) 9/16/09";
- #endif /* not lint */
-
- #include "rcv.h"
-+
-+#ifndef HAVE_WORDEXP
-+#error wordexp support is required
-+#endif
-+
- #include <sys/stat.h>
- #include <sys/file.h>
- #include <sys/wait.h>
--#ifdef HAVE_WORDEXP
- #include <wordexp.h>
--#endif /* HAVE_WORDEXP */
- #include <unistd.h>
-
- #if defined (USE_NSS)
-@@ -481,7 +484,6 @@ next:
- static char *
- globname(char *name)
- {
--#ifdef HAVE_WORDEXP
- wordexp_t we;
- char *cp;
- sigset_t nset;
-@@ -527,65 +529,6 @@ globname(char *name)
- }
- wordfree(&we);
- return cp;
--#else /* !HAVE_WORDEXP */
-- char xname[PATHSIZE];
-- char cmdbuf[PATHSIZE]; /* also used for file names */
-- int pid, l;
-- char *cp, *shell;
-- int pivec[2];
-- extern int wait_status;
-- struct stat sbuf;
--
-- if (pipe(pivec) < 0) {
-- perror("pipe");
-- return name;
-- }
-- snprintf(cmdbuf, sizeof cmdbuf, "echo %s", name);
-- if ((shell = value("SHELL")) == NULL)
-- shell = SHELL;
-- pid = start_command(shell, 0, -1, pivec[1], "-c", cmdbuf, NULL);
-- if (pid < 0) {
-- close(pivec[0]);
-- close(pivec[1]);
-- return NULL;
-- }
-- close(pivec[1]);
--again:
-- l = read(pivec[0], xname, sizeof xname);
-- if (l < 0) {
-- if (errno == EINTR)
-- goto again;
-- perror("read");
-- close(pivec[0]);
-- return NULL;
-- }
-- close(pivec[0]);
-- if (wait_child(pid) < 0 && WTERMSIG(wait_status) != SIGPIPE) {
-- fprintf(stderr, catgets(catd, CATSET, 81,
-- "\"%s\": Expansion failed.\n"), name);
-- return NULL;
-- }
-- if (l == 0) {
-- fprintf(stderr, catgets(catd, CATSET, 82,
-- "\"%s\": No match.\n"), name);
-- return NULL;
-- }
-- if (l == sizeof xname) {
-- fprintf(stderr, catgets(catd, CATSET, 83,
-- "\"%s\": Expansion buffer overflow.\n"), name);
-- return NULL;
-- }
-- xname[l] = 0;
-- for (cp = &xname[l-1]; *cp == '\n' && cp > xname; cp--)
-- ;
-- cp[1] = '\0';
-- if (strchr(xname, ' ') && stat(xname, &sbuf) < 0) {
-- fprintf(stderr, catgets(catd, CATSET, 84,
-- "\"%s\": Ambiguous.\n"), name);
-- return NULL;
-- }
-- return savestr(xname);
--#endif /* !HAVE_WORDEXP */
- }
-
- /*
---
-1.9.3
-
-
diff --git a/meta-oe/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch b/meta-oe/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch
deleted file mode 100644
index ae14b8acfe..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 73fefa0c1ac70043ec84f2d8b8f9f683213f168d Mon Sep 17 00:00:00 2001
-From: Florian Weimer <fweimer@redhat.com>
-Date: Mon, 17 Nov 2014 13:11:32 +0100
-Subject: [PATCH 4/4] globname: Invoke wordexp with WRDE_NOCMD (CVE-2004-2771)
-
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
-CVE: CVE-2004-2771
----
- fio.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fio.c b/fio.c
-index 1529236..774a204 100644
---- a/fio.c
-+++ b/fio.c
-@@ -497,7 +497,7 @@ globname(char *name)
- sigemptyset(&nset);
- sigaddset(&nset, SIGCHLD);
- sigprocmask(SIG_BLOCK, &nset, NULL);
-- i = wordexp(name, &we, 0);
-+ i = wordexp(name, &we, WRDE_NOCMD);
- sigprocmask(SIG_UNBLOCK, &nset, NULL);
- switch (i) {
- case 0:
---
-1.9.3
-
-
diff --git a/meta-oe/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch b/meta-oe/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch
deleted file mode 100644
index 2b5991425b..0000000000
--- a/meta-oe/recipes-extended/mailx/files/0015-usr-sbin-sendmail.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Description: Sendmail is at /usr/sbin/sendmail
- As per Debian Policy §11.6
-Author: Ryan Kavanagh <rak@debian.org>
-Origin: Debian
-Forwarded: no
----
-This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
-Index: heirloom-mailx-12.5/Makefile
-===================================================================
-This patch is taken from
-ftp://ftp.debian.org/debian/pool/main/h/heirloom-mailx/heirloom-mailx_12.5-5.debian.tar.xz
-
-Upstream-Status: Inappropriate [upstream is dead]
-
---- heirloom-mailx-12.5.orig/Makefile 2011-04-26 17:23:22.000000000 -0400
-+++ heirloom-mailx-12.5/Makefile 2015-01-27 13:20:04.733542801 -0500
-@@ -13,7 +13,7 @@
-
- MAILRC = $(SYSCONFDIR)/nail.rc
- MAILSPOOL = /var/mail
--SENDMAIL = /usr/lib/sendmail
-+SENDMAIL = /usr/sbin/sendmail
-
- DESTDIR =
-
-Index: heirloom-mailx-12.5/mailx.1
-===================================================================
---- heirloom-mailx-12.5.orig/mailx.1 2015-01-27 13:18:49.000000000 -0500
-+++ heirloom-mailx-12.5/mailx.1 2015-01-27 13:20:32.382336867 -0500
-@@ -4922,7 +4922,7 @@
- which just acts as a proxy.
- .PP
- \fIMailx\fR immediately contacts the SMTP server (or
--.IR \%/usr/lib/sendmail )
-+.IR \%/usr/sbin/sendmail )
- even when operating in
- .I disconnected
- mode.
diff --git a/meta-oe/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch b/meta-oe/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch
deleted file mode 100644
index b74fd0472e..0000000000
--- a/meta-oe/recipes-extended/mailx/files/explicitly.disable.krb5.support.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-krb5 support is autodetected from sysroot making builds undeterministic
-feel free to improve this to support explicitly enabling/disabling it
-
-Upstream-Status: Pending
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-
---- a/makeconfig 2013-07-21 15:06:11.177792334 +0200
-+++ b/makeconfig 2013-07-21 15:07:20.028793994 +0200
-@@ -424,36 +424,6 @@
- }
- !
-
--<$tmp2.c link_check gssapi 'for GSSAPI in libgss' \
-- '#define USE_GSSAPI' '-lgss' ||
-- <$tmp2.c link_check gssapi 'for GSSAPI in libgssapi_krb5' \
-- '#define USE_GSSAPI' '-lgssapi_krb5' ||
-- link_check gssapi 'for GSSAPI in libgssapi_krb5, old-style' \
-- '#define USE_GSSAPI
--#define GSSAPI_OLD_STYLE' '-lgssapi_krb5' <<\! || \
-- link_check gssapi 'for GSSAPI in libgssapi' \
-- '#define USE_GSSAPI
--#define GSSAPI_REG_INCLUDE' '-lgssapi' <<\%
--#include <gssapi/gssapi.h>
--#include <gssapi/gssapi_generic.h>
--
--int main(void)
--{
-- gss_import_name(0, 0, gss_nt_service_name, 0);
-- gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
-- return 0;
--}
--!
--#include <gssapi.h>
--
--int main(void)
--{
-- gss_import_name(0, 0, GSS_C_NT_HOSTBASED_SERVICE, 0);
-- gss_init_sec_context(0,0,0,0,0,0,0,0,0,0,0,0,0);
-- return 0;
--}
--%
--
- cat >$tmp2.c <<\!
- #include "config.h"
- #ifdef HAVE_NL_LANGINFO
diff --git a/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb b/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
deleted file mode 100644
index 0a191a00c1..0000000000
--- a/meta-oe/recipes-extended/mailx/mailx_12.5-5.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "mailx is the traditional command-line-mode mail user agent"
-
-DESCRIPTION = "Mailx is derived from Berkeley Mail and is intended provide the \
-functionality of the POSIX mailx command with additional support \
-for MIME, IMAP, POP3, SMTP, and S/MIME."
-
-HOMEPAGE = "http://heirloom.sourceforge.net/mailx.html"
-SECTION = "console/network"
-LICENSE = "BSD & MPL-1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4202a0a62910cf94f7af8a3436a2a2dd"
-
-DEPENDS = "openssl10"
-
-SRC_URI = "http://snapshot.debian.org/archive/debian/20160728T043443Z/pool/main/h/heirloom-mailx/heirloom-mailx_12.5.orig.tar.gz;name=archive \
- file://0001-Don-t-reuse-weak-symbol-optopt-to-fix-FTBFS-on-mips.patch \
- file://0002-Patched-out-SSL2-support-since-it-is-no-longer-suppo.patch \
- file://0003-Fixed-Lintian-warning-warning-macro-N-not-defined.patch \
- file://0011-outof-Introduce-expandaddr-flag.patch \
- file://0012-unpack-Disable-option-processing-for-email-addresses.patch \
- file://0013-fio.c-Unconditionally-require-wordexp-support.patch \
- file://0014-globname-Invoke-wordexp-with-WRDE_NOCMD.patch \
- file://0015-usr-sbin-sendmail.patch \
- file://explicitly.disable.krb5.support.patch \
- "
-
-SRC_URI[archive.md5sum] = "29a6033ef1412824d02eb9d9213cb1f2"
-SRC_URI[archive.sha256sum] = "015ba4209135867f37a0245d22235a392b8bbed956913286b887c2e2a9a421ad"
-
-# for this package we're mostly interested in tracking debian patches,
-# and not in the upstream version where all development has effectively stopped
-UPSTREAM_CHECK_URI = "${DEBIAN_MIRROR}/main/h/heirloom-mailx/"
-UPSTREAM_CHECK_REGEX = "(?P<pver>((\d+\.*)+)-((\d+\.*)+))\.(diff|debian\.tar)\.(gz|xz)"
-
-S = "${WORKDIR}/heirloom-mailx-12.5"
-
-inherit autotools-brokensep
-
-CFLAGS_append = " -D_BSD_SOURCE -DDEBIAN -I${S}/EXT"
-
-# "STRIP=true" means that 'true' command will be used to 'strip' files which will achieve the effect of not stripping them
-# mailx's Makefile doesn't allow a more straightforward way to avoid stripping
-EXTRA_OEMAKE = "SENDMAIL=${sbindir}/sendmail IPv6=-DHAVE_IPv6_FUNCS PREFIX=/usr UCBINSTALL=/usr/bin/install STRIP=true"
-
-# The makeconfig can't run parallelly, otherwise the checking results
-# might be incorrect and lead to errors:
-# fio.c:56:17: fatal error: ssl.h: No such file or directory
-# #include <ssl.h>
-PARALLEL_MAKE = ""
-
-# Causes gcc to get stuck and eat all available memory in qemuarm builds
-# http://errors.yoctoproject.org/Errors/Details/20488/
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
diff --git a/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch b/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch
deleted file mode 100644
index cc7cdc3364..0000000000
--- a/meta-oe/recipes-extended/md5deep/files/0001-Fix-errors-found-by-clang.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6ef69a26126ee4e69a25392fd456b8a66c51dffd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 15 Nov 2016 02:46:55 +0000
-Subject: [PATCH] Fix errors found by clang
-
-Fixes errors like
-
-../../git/src/hash.cpp:282:19: error: ordered comparison between pointer and zero ('const unsigned char *' and 'int')
- if(fdht->base>0){
- ~~~~~~~~~~^~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/hash.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/hash.cpp b/src/hash.cpp
-index 4216157..52f419b 100644
---- a/src/hash.cpp
-+++ b/src/hash.cpp
-@@ -279,7 +279,7 @@ void file_data_hasher_t::hash()
- MAP_FILE|
- #endif
- MAP_SHARED,fd,0);
-- if(fdht->base>0){
-+ if(fdht->base != (void *) -1){
- /* mmap is successful, so set the bounds.
- * if it is not successful, we default to reading the fd
- */
---
-1.9.1
-
diff --git a/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch b/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch
new file mode 100644
index 0000000000..69460b314b
--- /dev/null
+++ b/meta-oe/recipes-extended/md5deep/files/0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch
@@ -0,0 +1,128 @@
+From 7d7b60e38ca701819d4d00b38161faddce01e2ae Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Sep 2018 23:21:22 -0700
+Subject: [PATCH] Fix literal and identifier spacing as dictated by C++11
+
+Fixes clang error like below
+
+error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
+| status(" Known files not found: %"PRIu64, this->match.unused);
+
+Upstream-Status: Submitted [https://github.com/jessek/hashdeep/pull/385/commits/18a6b5d57f7a648d2b7dcc6e50ff00a1e4b05fcc]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/display.cpp | 16 ++++++++--------
+ src/files.cpp | 4 ++--
+ src/hash.cpp | 2 +-
+ src/hashlist.cpp | 4 ++--
+ src/xml.h | 2 +-
+ 5 files changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/src/display.cpp b/src/display.cpp
+index b23335d..2eddc23 100644
+--- a/src/display.cpp
++++ b/src/display.cpp
+@@ -311,7 +311,7 @@ void display::display_realtime_stats(const file_data_hasher_t *fdht, const hash_
+
+ ss << mb_read << "MB of " << fdht->stat_megs() << "MB done, ";
+ char msg[64];
+- snprintf(msg,sizeof(msg),"%02"PRIu64":%02"PRIu64":%02"PRIu64" left", hour, min, seconds);
++ snprintf(msg,sizeof(msg),"%02" PRIu64 ":%02" PRIu64 ":%02" PRIu64 " left", hour, min, seconds);
+ ss << msg;
+ }
+ ss << "\r";
+@@ -424,14 +424,14 @@ void display::display_audit_results()
+
+ if (opt_verbose) {
+ if(opt_verbose >= MORE_VERBOSE){
+- status(" Input files examined: %"PRIu64, this->match.total);
+- status(" Known files expecting: %"PRIu64, this->match.expect);
++ status(" Input files examined: %" PRIu64, this->match.total);
++ status(" Known files expecting: %" PRIu64, this->match.expect);
+ }
+- status(" Files matched: %"PRIu64, this->match.exact);
+- status("Files partially matched: %"PRIu64, this->match.partial);
+- status(" Files moved: %"PRIu64, this->match.moved);
+- status(" New files found: %"PRIu64, this->match.unknown);
+- status(" Known files not found: %"PRIu64, this->match.unused);
++ status(" Files matched: %" PRIu64, this->match.exact);
++ status("Files partially matched: %" PRIu64, this->match.partial);
++ status(" Files moved: %" PRIu64, this->match.moved);
++ status(" New files found: %" PRIu64, this->match.unknown);
++ status(" Known files not found: %" PRIu64, this->match.unused);
+ }
+ }
+
+diff --git a/src/files.cpp b/src/files.cpp
+index 89c6984..3dfd363 100644
+--- a/src/files.cpp
++++ b/src/files.cpp
+@@ -509,7 +509,7 @@ int state::parse_encase_file(const char *fn, FILE *handle,uint32_t expected_hash
+
+ // Users expect the line numbers to start at one, not zero.
+ if ((!ocb.opt_silent) || (mode_warn_only)) {
+- ocb.error("%s: No hash found in line %"PRIu32, fn, count + 1);
++ ocb.error("%s: No hash found in line %" PRIu32, fn, count + 1);
+ ocb.error("%s: %s", fn, strerror(errno));
+ return status_t::STATUS_USER_ERROR;
+ }
+@@ -542,7 +542,7 @@ int state::parse_encase_file(const char *fn, FILE *handle,uint32_t expected_hash
+ }
+
+ if (expected_hashes != count){
+- ocb.error("%s: Expecting %"PRIu32" hashes, found %"PRIu32"\n",
++ ocb.error("%s: Expecting %" PRIu32 " hashes, found %" PRIu32 "\n",
+ fn, expected_hashes, count);
+ }
+ return status_t::status_ok;
+diff --git a/src/hash.cpp b/src/hash.cpp
+index 52f419b..a4b3128 100644
+--- a/src/hash.cpp
++++ b/src/hash.cpp
+@@ -124,7 +124,7 @@ bool file_data_hasher_t::compute_hash(uint64_t request_start,uint64_t request_le
+
+ // If an error occured, display a message and see if we need to quit.
+ if ((current_read_bytes<0) || (this->handle && ferror(this->handle))){
+- ocb->error_filename(this->file_name,"error at offset %"PRIu64": %s",
++ ocb->error_filename(this->file_name,"error at offset %" PRIu64 ": %s",
+ request_start, strerror(errno));
+
+ if (file_fatal_error()){
+diff --git a/src/hashlist.cpp b/src/hashlist.cpp
+index b5b275f..eb0d45a 100644
+--- a/src/hashlist.cpp
++++ b/src/hashlist.cpp
+@@ -342,7 +342,7 @@ hashlist::load_hash_file(display *ocb,const std::string &fn)
+ file_data_t *t = new (std::nothrow) file_data_t();
+ if (NULL == t)
+ {
+- ocb->fatal_error("%s: Out of memory in line %"PRIu64,
++ ocb->fatal_error("%s: Out of memory in line %" PRIu64,
+ fn.c_str(), line_number);
+ }
+
+@@ -390,7 +390,7 @@ hashlist::load_hash_file(display *ocb,const std::string &fn)
+ if ( !algorithm_t::valid_hash(hash_column[column_number],word))
+ {
+ if (ocb)
+- ocb->error("%s: Invalid %s hash in line %"PRIu64,
++ ocb->error("%s: Invalid %s hash in line %" PRIu64,
+ fn.c_str(),
+ hashes[hash_column[column_number]].name.c_str(),
+ line_number);
+diff --git a/src/xml.h b/src/xml.h
+index bfe0c94..017dba7 100644
+--- a/src/xml.h
++++ b/src/xml.h
+@@ -100,7 +100,7 @@ public:
+ void xmlout(const std::string &tag,const std::string &value){ xmlout(tag,value,"",true); }
+ void xmlout(const std::string &tag,const int value){ xmlprintf(tag,"","%d",value); }
+ void xmloutl(const std::string &tag,const long value){ xmlprintf(tag,"","%ld",value); }
+- void xmlout(const std::string &tag,const int64_t value){ xmlprintf(tag,"","%"PRId64,value); }
++ void xmlout(const std::string &tag,const int64_t value){ xmlprintf(tag,"","%" PRId64,value); }
+ void xmlout(const std::string &tag,const double value){ xmlprintf(tag,"","%f",value); }
+ void xmlout(const std::string &tag,const struct timeval &ts){
+ xmlprintf(tag,"","%d.%06d",(int)ts.tv_sec, (int)ts.tv_usec);
+--
+2.18.0
+
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 3a4c4f4c2c..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,6 +1,10 @@
---- a/configure.ac 2014-08-22 12:22:54.290884351 +0200
-+++ b/configure.ac 2014-08-22 12:23:15.822306295 +0200
-@@ -42,18 +42,6 @@
+Upstream-Status: Pending
+
+Index: git/configure.ac
+===================================================================
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -42,18 +42,6 @@ case $host in
;;
esac
@@ -19,21 +23,3 @@
#
#
################################################################
-@@ -71,7 +59,7 @@
-
- if test $mingw = "no" ; then
- # add the warnings we don't want to do on mingw
-- $WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes -Weffc++"
-+ WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Wall -Wstrict-prototypes -Weffc++"
- fi
-
- for option in $WARNINGS_TO_TEST
-@@ -105,7 +93,7 @@
-
- if test $mingw = "no" ; then
- # add the warnings we don't want to do on mingw
-- $WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Weffc++"
-+ WARNINGS_TO_TEST="$WARNINGS_TO_TEST -Weffc++"
- fi
-
- for option in $WARNINGS_TO_TEST
diff --git a/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb b/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
deleted file mode 100644
index bb30abedd9..0000000000
--- a/meta-oe/recipes-extended/md5deep/md5deep_4.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9190f660105b9a56cdb272309bfd5491"
-# Release 4.4
-SRCREV = "cd2ed7416685a5e83eb10bb659d6e9bec01244ae"
-
-SRC_URI = "git://github.com/jessek/hashdeep.git \
- file://wrong-variable-expansion.patch \
- file://0001-Fix-errors-found-by-clang.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools
diff --git a/meta-oe/recipes-extended/md5deep/md5deep_git.bb b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
new file mode 100644
index 0000000000..3cbe785a52
--- /dev/null
+++ b/meta-oe/recipes-extended/md5deep/md5deep_git.bb
@@ -0,0 +1,19 @@
+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}"
+
+SRCREV = "877613493ff44807888ce1928129574be393cbb0"
+
+SRC_URI = "git://github.com/jessek/hashdeep.git;branch=master;protocol=https \
+ file://wrong-variable-expansion.patch \
+ file://0001-Fix-literal-and-identifier-spacing-as-dictated-by-C-.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools
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
new file mode 100644
index 0000000000..d813b37f99
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-Add-lxml2-to-linker-cmdline-of-xml-is-found.patch
@@ -0,0 +1,39 @@
+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-Add-missing-includes-cstdint-and-cstdio.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-Add-missing-includes-cstdint-and-cstdio.patch
new file mode 100644
index 0000000000..0fce8dc64f
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-Add-missing-includes-cstdint-and-cstdio.patch
@@ -0,0 +1,70 @@
+From 6e376601c990abaa5e261d1311f92acb3b370b8f 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: Backport [https://github.com/facebook/rocksdb/commit/88edfbfb5e1cac228f7cc31fbec24bb637fe54b1]
+Signed-off-by: Khem Raj <raj.khem@gmail.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 +
+ tpool/aio_linux.cc | 1 +
+ 6 files changed, 6 insertions(+)
+
+--- a/thirdparty/rocksdb/include/rocksdb/utilities/checkpoint.h
++++ b/thirdparty/rocksdb/include/rocksdb/utilities/checkpoint.h
+@@ -8,6 +8,7 @@
+ #pragma once
+ #ifndef ROCKSDB_LITE
+
++#include <cstdint>
+ #include <string>
+ #include "rocksdb/status.h"
+
+--- a/thirdparty/rocksdb/util/string_util.h
++++ b/thirdparty/rocksdb/util/string_util.h
+@@ -6,6 +6,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <sstream>
+ #include <string>
+ #include <unordered_map>
+--- a/extensions/expression-language/common/Value.h
++++ b/extensions/expression-language/common/Value.h
+@@ -15,6 +15,7 @@
+ * limitations under the License.
+ */
+
++#include <cstdint>
+ #include <string>
+ #include <sstream>
+ #include <iomanip>
+--- a/libminifi/include/utils/StringUtils.h
++++ b/libminifi/include/utils/StringUtils.h
+@@ -18,6 +18,7 @@
+ #define LIBMINIFI_INCLUDE_IO_STRINGUTILS_H_
+ #include <iostream>
+ #include <cstring>
++#include <cstdint>
+ #include <functional>
+ #ifdef WIN32
+ #include <cwctype>
+--- a/thirdparty/rocksdb/db/compaction_iteration_stats.h
++++ b/thirdparty/rocksdb/db/compaction_iteration_stats.h
+@@ -5,6 +5,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ struct CompactionIterationStats {
+ // Compaction statistics
+
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
new file mode 100644
index 0000000000..183a006e81
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-CMakeLists.txt-use-curl-local-source-tarball.patch
@@ -0,0 +1,34 @@
+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-LFS64-functions-on-linux-musl.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-LFS64-functions-on-linux-musl.patch
new file mode 100644
index 0000000000..29f5b94a04
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-Do-not-use-LFS64-functions-on-linux-musl.patch
@@ -0,0 +1,35 @@
+From 6690e7fe566445e20fec178e9e209e5f9f2fdde3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 5 Apr 2023 23:33:46 -0700
+Subject: [PATCH] Do not use LFS64 functions on linux/musl
+
+On musl, off_t is 64bit always ( even on 32bit platforms ), therefore using
+LFS64 funcitons is not needed on such platforms. Moreover, musl has stopped
+providing aliases for these functions [1] which means it wont compile on
+newer musl systems. Therefore only use it on 32bit glibc/linux platforms
+and exclude musl like cygwin or OSX
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=246f1c811448f37a44b41cd8df8d0ef9736d95f4
+
+Upstream-Status: Submitted [https://github.com/gabime/spdlog/pull/2589]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ thirdparty/spdlog-20170710/include/spdlog/details/os.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/thirdparty/spdlog-20170710/include/spdlog/details/os.h b/thirdparty/spdlog-20170710/include/spdlog/details/os.h
+index 735f60147..639b07a79 100644
+--- a/thirdparty/spdlog-20170710/include/spdlog/details/os.h
++++ b/thirdparty/spdlog-20170710/include/spdlog/details/os.h
+@@ -237,7 +237,7 @@ inline size_t filesize(FILE *f)
+ #else // unix
+ int fd = fileno(f);
+ //64 bits(but not in osx, where fstat64 is deprecated)
+-#if !defined(__FreeBSD__) && !defined(__APPLE__) && (defined(__x86_64__) || defined(__ppc64__))
++#if !defined(__FreeBSD__) && !defined(__APPLE__) && ((defined(__x86_64__) || defined(__ppc64__)) && (!defined(__linux__)))
+ struct stat64 st;
+ if (fstat64(fd, &st) == 0)
+ return static_cast<size_t>(st.st_size);
+--
+2.40.0
+
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
new file mode 100644
index 0000000000..c1c118196a
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-build-with-libc.patch
@@ -0,0 +1,36 @@
+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-Fix-the-constness-issues-around-autovector-iterator_.patch b/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch
new file mode 100644
index 0000000000..acb96f40d5
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-Fix-the-constness-issues-around-autovector-iterator_.patch
@@ -0,0 +1,63 @@
+From 787d5052a6034cc722b073c652cc610ae037f933 Mon Sep 17 00:00:00 2001
+From: Levi Tamasi <ltamasi@fb.com>
+Date: Fri, 22 Nov 2019 18:12:35 -0800
+Subject: [PATCH 1/2] Fix the constness issues around
+ autovector::iterator_impl's dereference operators (#6057)
+
+Summary:
+As described in detail in issue https://github.com/facebook/rocksdb/issues/6048, iterators' dereference operators
+(`*`, `->`, and `[]`) should return `pointer`s/`reference`s (as opposed to
+`const_pointer`s/`const_reference`s) even if the iterator itself is `const`
+to be in sync with the standard's iterator concept.
+Pull Request resolved: https://github.com/facebook/rocksdb/pull/6057
+
+Test Plan: make check
+
+Differential Revision: D18623235
+
+Pulled By: ltamasi
+
+fbshipit-source-id: 04e82d73bc0c67fb0ded018383af8dfc332050cc
+---
+ thirdparty/rocksdb/util/autovector.h | 15 ++++-----------
+ 1 file changed, 4 insertions(+), 11 deletions(-)
+
+diff --git a/thirdparty/rocksdb/util/autovector.h b/thirdparty/rocksdb/util/autovector.h
+index b5c84712..6d337908 100644
+--- a/thirdparty/rocksdb/util/autovector.h
++++ b/thirdparty/rocksdb/util/autovector.h
+@@ -120,27 +120,20 @@ class autovector {
+ }
+
+ // -- Reference
+- reference operator*() {
++ reference operator*() const {
+ assert(vect_->size() >= index_);
+ return (*vect_)[index_];
+ }
+
+- const_reference operator*() const {
+- assert(vect_->size() >= index_);
+- return (*vect_)[index_];
+- }
+-
+- pointer operator->() {
++ pointer operator->() const {
+ assert(vect_->size() >= index_);
+ return &(*vect_)[index_];
+ }
+
+- const_pointer operator->() const {
+- assert(vect_->size() >= index_);
+- return &(*vect_)[index_];
++ reference operator[](difference_type len) const {
++ return *(*this + len);
+ }
+
+-
+ // -- Logical Operators
+ bool operator==(const self_type& other) const {
+ assert(vect_ == other.vect_);
+--
+2.41.0
+
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
new file mode 100644
index 0000000000..bc480d9699
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-CMakeLists.txt-do-not-search-gcc-ar-and-gcc.patch
@@ -0,0 +1,34 @@
+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
new file mode 100644
index 0000000000..ec4e6ffc45
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-civetweb-Disable-lto.patch
@@ -0,0 +1,33 @@
+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
new file mode 100644
index 0000000000..ef26c475d8
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0001-cxxopts-Add-limits-header.patch
@@ -0,0 +1,34 @@
+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-build-with-clang-17.patch b/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-build-with-clang-17.patch
new file mode 100644
index 0000000000..7581efc763
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0002-Fix-build-with-clang-17.patch
@@ -0,0 +1,37 @@
+From a784973e500753747992a51dc0fb1caabbbb03be Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 6 Jul 2023 17:52:38 -0700
+Subject: [PATCH 2/2] Fix build with clang 17
+
+Part of https://github.com/jarro2783/cxxopts/commit/513afbc6dcfe2952cb2ffab0dae2415b11bba2d0
+
+Upstream-Status: Backport [https://github.com/jarro2783/cxxopts/commit/513afbc6dcfe2952cb2ffab0dae2415b11bba2d0]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ thirdparty/cxxopts/include/cxxopts.hpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/thirdparty/cxxopts/include/cxxopts.hpp b/thirdparty/cxxopts/include/cxxopts.hpp
+index e87416f1..bd2d81cf 100644
+--- a/thirdparty/cxxopts/include/cxxopts.hpp
++++ b/thirdparty/cxxopts/include/cxxopts.hpp
+@@ -468,14 +468,14 @@ namespace cxxopts
+ {
+ if (negative)
+ {
+- if (u > static_cast<U>(-std::numeric_limits<T>::min()))
++ if (u > static_cast<U>((std::numeric_limits<T>::min)()))
+ {
+ throw argument_incorrect_type(text);
+ }
+ }
+ else
+ {
+- if (u > static_cast<U>(std::numeric_limits<T>::max()))
++ if (u > static_cast<U>((std::numeric_limits<T>::max)()))
+ {
+ throw argument_incorrect_type(text);
+ }
+--
+2.41.0
+
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
new file mode 100644
index 0000000000..da5ee97540
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0002-cmake-LibreSSL.cmake-use-libressl-local-source-tarba.patch
@@ -0,0 +1,32 @@
+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-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
new file mode 100644
index 0000000000..a39e15b791
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/0003-cmake-BundledOSSPUUID.cmake-use-ossp-uuid-local-sour.patch
@@ -0,0 +1,34 @@
+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/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
new file mode 100644
index 0000000000..a7dc35ae57
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-avoid-BSWAP-assembly-for-ARM-v6.patch
@@ -0,0 +1,36 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..32bcfbd2b9
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-libressl-compile.patch
@@ -0,0 +1,45 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..d5b4449b82
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-minifi-compile.patch
@@ -0,0 +1,62 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..903e72e07b
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-compile.patch
@@ -0,0 +1,38 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..add1f6f2d5
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-cross-compile.patch
@@ -0,0 +1,39 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..f8ba89dc3c
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-osspuuid-musl-compile.patch
@@ -0,0 +1,27 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..0a3194da94
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/fix-rocksdb-cross-compile.patch
@@ -0,0 +1,14 @@
+Upstream-Status: Pending
+
+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
new file mode 100644
index 0000000000..059cdbcc23
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/minifi.service
@@ -0,0 +1,13 @@
+[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
new file mode 100644
index 0000000000..365dec9d44
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/remove_const_due_to_std_lock_guard.patch
@@ -0,0 +1,40 @@
+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.
+```
+---
+Upstream-Status: Pending
+
+ 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/files/systemd-volatile.conf b/meta-oe/recipes-extended/minifi-cpp/files/systemd-volatile.conf
new file mode 100644
index 0000000000..6da442da3f
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/systemd-volatile.conf
@@ -0,0 +1 @@
+d @MINIFI_LOG@ 0755 root root -
diff --git a/meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf b/meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf
new file mode 100644
index 0000000000..db149d01f9
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/files/sysvinit-volatile.conf
@@ -0,0 +1 @@
+d root root 0755 @MINIFI_LOG@ none
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
new file mode 100644
index 0000000000..0986fdec07
--- /dev/null
+++ b/meta-oe/recipes-extended/minifi-cpp/minifi-cpp_0.7.0.bb
@@ -0,0 +1,163 @@
+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://0001-Add-missing-includes-cstdint-and-cstdio.patch \
+ file://0001-Do-not-use-LFS64-functions-on-linux-musl.patch \
+ file://0001-Fix-the-constness-issues-around-autovector-iterator_.patch \
+ file://0002-Fix-build-with-clang-17.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 \
+ -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
+ -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines --file-prefix-map=${S}=/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}' \
+ "
+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
+}
+
+do_configure:append() {
+ sed -i -e 's|${WORKDIR}|<WORKDIR>|g' ${S}/libminifi/include/agent/agent_version.h
+}
+
+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..bfd313ddfe
--- /dev/null
+++ b/meta-oe/recipes-extended/minio/minio_git.bb
@@ -0,0 +1,164 @@
+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;nobranch=1;name=mc;protocol=https \
+ file://modules.txt \
+ "
+
+include src_uri.inc
+
+SRCREV_mc = "01b87ecc02ffad47dfe13c2154ac31db3e3115df"
+
+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/mml-widget/gtkmathview/0001-Fix-formatting-for-modern-c-11-compilers.patch b/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-Fix-formatting-for-modern-c-11-compilers.patch
deleted file mode 100644
index 8b0096630d..0000000000
--- a/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-Fix-formatting-for-modern-c-11-compilers.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 90411a7f5e0e9582e79f0a8ccc1e2f158615e451 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 19 May 2018 23:18:11 -0700
-Subject: [PATCH] Fix formatting for modern c++11 compilers
-
-Fixes
-error: invalid suffix on literal; C++11 requires a space between literal and identifier [-Wreserved-user-defined-literal]
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/backend/svg/SVG_RenderingContext.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/backend/svg/SVG_RenderingContext.cc b/src/backend/svg/SVG_RenderingContext.cc
-index 55d6097..0d50702 100644
---- a/src/backend/svg/SVG_RenderingContext.cc
-+++ b/src/backend/svg/SVG_RenderingContext.cc
-@@ -68,7 +68,7 @@ void
- SVG_RenderingContext::documentStart(const BoundingBox& bbox)
- {
- beginDocument(bbox);
-- metadata("Created by "PACKAGE" version "VERSION);
-+ metadata("Created by " PACKAGE " version " VERSION);
- }
-
- void
---
-2.17.0
-
diff --git a/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch b/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch
deleted file mode 100644
index c5814bfe2b..0000000000
--- a/meta-oe/recipes-extended/mml-widget/gtkmathview/0001-include-cstdio-to-get-printf-definitions.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From c92890c5e18bb6ee23bdb14074bacf306dd9428f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 5 May 2015 20:35:01 -0700
-Subject: [PATCH] include cstdio to get printf definitions
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/engine/boxml/BoxMLHOVElement.cc | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/engine/boxml/BoxMLHOVElement.cc b/src/engine/boxml/BoxMLHOVElement.cc
-index 1a2812c..96c9eea 100644
---- a/src/engine/boxml/BoxMLHOVElement.cc
-+++ b/src/engine/boxml/BoxMLHOVElement.cc
-@@ -21,7 +21,7 @@
- // <http://www.gnu.org/licenses/>.
-
- #include <config.h>
--
-+#include <cstdio>
- #include "BoxMLAttributeSignatures.hh"
- #include "BoxMLHOVElement.hh"
- #include "BoxMLHElement.hh"
---
-2.1.4
-
diff --git a/meta-oe/recipes-extended/mml-widget/gtkmathview/0002-configure.ac-header-detection-of-hash_map-is-broken-.patch b/meta-oe/recipes-extended/mml-widget/gtkmathview/0002-configure.ac-header-detection-of-hash_map-is-broken-.patch
deleted file mode 100644
index b879d6a518..0000000000
--- a/meta-oe/recipes-extended/mml-widget/gtkmathview/0002-configure.ac-header-detection-of-hash_map-is-broken-.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 9c226fbc6a42540cb492fcfcb81ff16fffb086d6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 30 Aug 2016 23:24:53 +0200
-Subject: [PATCH] configure.ac: header detection of hash_map is broken - pin to
- correct implementation
-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@googlemail.com>
----
- configure.ac | 31 ++++---------------------------
- 1 file changed, 4 insertions(+), 27 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 4f2118e..16c09d5 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -252,35 +252,12 @@ AC_SUBST(GTKMATHVIEW_SIZEOF_WCHAR_T, "$ac_cv_sizeof_wchar_t")
-
- AC_LANG_PUSH(C++)
-
--AC_CHECK_HEADERS(unordered_map,
-- [
-- AC_DEFINE(GMV_HAVE_UNORDERED_MAP,1,[Define if <unordered_map> is provided])
-- GMV_HAVE_UNORDERED_MAP_CFLAGS=-DGMV_HAVE_UNORDERED_MAP=1
-- ],
-- [
-- GMV_HAVE_UNORDERED_MAP_CFLAGS=
-- ]
--)
-+GMV_HAVE_UNORDERED_MAP_CFLAGS=
- AC_SUBST(GMV_HAVE_UNORDERED_MAP_CFLAGS)
--AC_CHECK_HEADERS(hash_map,
-- [
-- AC_DEFINE(GMV_HAVE_HASH_MAP,1,[Define if <hash_map> is provided])
-- GMV_HAVE_HASH_MAP_CFLAGS=-DGMV_HAVE_HASH_MAP=1
-- ],
-- [
-- GMV_HAVE_HASH_MAP_CFLAGS=
-- ]
--)
-+GMV_HAVE_HASH_MAP_CFLAGS=
- AC_SUBST(GMV_HAVE_HASH_MAP_CFLAGS)
--AC_CHECK_HEADERS(ext/hash_map,
-- [
-- AC_DEFINE(GMV_HAVE_EXT_HASH_MAP,1,[Define if <ext/hash_map> is provided])
-- GMV_HAVE_EXT_HASH_MAP_CFLAGS=-DGMV_HAVE_EXT_HASH_MAP=1
-- ],
-- [
-- GMV_HAVE_EXT_HASH_MAP_CFLAGS=
-- ]
--)
-+AC_DEFINE(GMV_HAVE_EXT_HASH_MAP,1,[Define if <ext/hash_map> is provided])
-+GMV_HAVE_EXT_HASH_MAP_CFLAGS=-DGMV_HAVE_EXT_HASH_MAP=1
- AC_SUBST(GMV_HAVE_EXT_HASH_MAP_CFLAGS)
-
- AC_MSG_CHECKING([whether the C++ compiler supports the standard character traits])
---
-2.5.5
-
diff --git a/meta-oe/recipes-extended/mml-widget/gtkmathview/0003-gcc-6.0-build-fixes.patch b/meta-oe/recipes-extended/mml-widget/gtkmathview/0003-gcc-6.0-build-fixes.patch
deleted file mode 100644
index 356274d17e..0000000000
--- a/meta-oe/recipes-extended/mml-widget/gtkmathview/0003-gcc-6.0-build-fixes.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From: Gert Wollny <gw.fossdev@gmail.com>
-Date: Sun, 26 Jun 2016 13:25:00 +0200
-Description: gcc 6.0 build fixes
-Bug: https://bugs.debian.org/811682
-
-Slightly adapted to our environment
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---- a/src/engine/common/View.cc
-+++ b/src/engine/common/View.cc
-@@ -291,7 +291,7 @@
- }
- }
-
-- return false;
-+ return SmartPtr<Element>();
- }
-
- bool
---- a/src/backend/common/tfm/TFM.hh
-+++ b/src/backend/common/tfm/TFM.hh
-@@ -37,7 +37,7 @@
- unsigned char face;
- const char* codingScheme;
- int designSize;
-- int checksum;
-+ unsigned int checksum;
- unsigned int nDimensions;
- unsigned int nCharacters;
- };
-@@ -52,7 +52,7 @@
- struct Kerning
- {
- UChar8 index;
-- int value;
-+ unsigned int value;
- };
-
- struct Ligature
-@@ -67,7 +67,7 @@
- UChar8 index;
- int width;
- int height;
-- int depth;
-+ unsigned int depth;
- int italicCorrection;
- unsigned char nKernings;
- const Kerning* kerning;
---- a/src/backend/common/StandardSymbolsShaper.hh
-+++ b/src/backend/common/StandardSymbolsShaper.hh
-@@ -32,20 +32,20 @@
- struct HStretchyChar
- {
- Char16 ch;
-- Char8 normal;
-- Char8 left;
-- Char8 glue;
-- Char8 right;
-+ UChar8 normal;
-+ UChar8 left;
-+ UChar8 glue;
-+ UChar8 right;
- };
-
- struct VStretchyChar
- {
- Char16 ch;
-- Char8 normal;
-- Char8 top;
-- Char8 glue;
-- Char8 middle;
-- Char8 bottom;
-+ UChar8 normal;
-+ UChar8 top;
-+ UChar8 glue;
-+ UChar8 middle;
-+ UChar8 bottom;
- };
-
- protected:
---- a/src/backend/common/StandardSymbolsShaper.cc
-+++ b/src/backend/common/StandardSymbolsShaper.cc
-@@ -29,7 +29,7 @@
- #include "ShapingContext.hh"
-
- struct GlyphMap {
-- Char8 index;
-+ UChar8 index;
- Char16 ch;
- };
-
diff --git a/meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch b/meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch
deleted file mode 100644
index 3fe632860f..0000000000
--- a/meta-oe/recipes-extended/mml-widget/gtkmathview/use_hostcxx.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Use build_cc to compile the programs to run on build host
-helps with cross compiling
-
-Upstream-Status: Inappropriate [Cross-compiled OE specific]
-
-diff --git a/src/common/mathvariants/Makefile.am b/src/common/mathvariants/Makefile.am
-index 636ccf0..ed9921d 100644
---- a/src/common/mathvariants/Makefile.am
-+++ b/src/common/mathvariants/Makefile.am
-@@ -52,7 +52,7 @@ XSLTPROC = xsltproc
- %.cc : %_gen.cc $(srcdir)/variant.top $(srcdir)/variant.bot
- cat $(srcdir)/variant.top >$@
- $(XSLTPROC) --novalid --param temp "false()" $(srcdir)/extract.xsl $(<:%_gen.cc=$(srcdir)/xml/%.xml) >>$@
-- $(CXX) -o $(@:%.cc=%) -I$(top_builddir)/auto $<
-+ $(BUILD_CXX) -o $(@:%.cc=%) -I$(top_builddir)/auto $<
- echo "Char32 " >>$@
- basename map_variant_$@ .cc | tr "-" "_" >>$@
- echo "(Char32 ch)" >>$@
diff --git a/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb b/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
deleted file mode 100644
index 9ee9e30352..0000000000
--- a/meta-oe/recipes-extended/mml-widget/gtkmathview_0.8.0.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-HOMEPAGE = "http://helm.cs.unibo.it/mml-widget/"
-DEPENDS = "t1lib gtk+ popt libxslt-native libxml2"
-
-LICENSE = "LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
-
-PR = "r3"
-SRCREV = "0bc2cfa0a47aed2c8a63abd989cb8da4dcceb2ec"
-PV = "0.8.0+git${SRCPV}"
-
-SRC_URI = "git://github.com/GNOME/gtkmathview.git \
- file://use_hostcxx.patch \
- file://0001-include-cstdio-to-get-printf-definitions.patch \
- file://0002-configure.ac-header-detection-of-hash_map-is-broken-.patch \
- file://0003-gcc-6.0-build-fixes.patch \
- file://0001-Fix-formatting-for-modern-c-11-compilers.patch \
-"
-
-S = "${WORKDIR}/git"
-
-inherit distro_features_check autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_configure_append() {
- # avoid host polution inf pkg-config files
- sed -i "s:${STAGING_DIR_HOST}::g" `find -name '*.pc'`
-}
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-102/0001-Cargo.toml-do-not-abort-on-panic.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-Cargo.toml-do-not-abort-on-panic.patch
new file mode 100644
index 0000000000..0dd936197b
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-Cargo.toml-do-not-abort-on-panic.patch
@@ -0,0 +1,32 @@
+From bb46a8a729cc4d66ad36db40c17e36a5111f19c3 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 f576534bf3..5ecc17c319 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -56,13 +56,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-102/0001-add-arm-to-list-of-mozinline.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-add-arm-to-list-of-mozinline.patch
new file mode 100644
index 0000000000..02f5e5c7e1
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-add-arm-to-list-of-mozinline.patch
@@ -0,0 +1,25 @@
+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>
+
+diff --git a/js/src/jit/GenerateAtomicOperations.py b/js/src/jit/GenerateAtomicOperations.py
+index d8a38a0..65f91ab 100644
+--- a/js/src/jit/GenerateAtomicOperations.py
++++ b/js/src/jit/GenerateAtomicOperations.py
+@@ -856,7 +856,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-102/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
new file mode 100644
index 0000000000..fe905fe4dd
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-build-do-not-use-autoconf-s-config.sub-to-canonicali.patch
@@ -0,0 +1,29 @@
+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(-)
+
+diff --git a/build/moz.configure/init.configure b/build/moz.configure/init.configure
+index 81f500a0b7..0b7a2ff60f 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -585,7 +585,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-102/0001-rewrite-cargo-host-linker-in-python3.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-rewrite-cargo-host-linker-in-python3.patch
new file mode 100644
index 0000000000..73bcffe94a
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-rewrite-cargo-host-linker-in-python3.patch
@@ -0,0 +1,54 @@
+From 8e318c4e7e732327dabf51027860de45b6fb731e 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
+
+Mozjs compile failed with this failure:
+/bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by /build/tmp-glibc/work/corei7-64-wrs-linux/mozjs/91.1.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5)
+
+Root Cause:
+cargo-host-linker has /bin/sh as it's interpreter, but cargo run the cmd
+with LD_LIBRARY_PATH set to recipe-sysroot-native. The host /bin/sh links
+libtinfo.so.5 under recipe-sysroot-native, which needs higher libc. But
+host libc is older libc. So the incompatible problem occurred.
+
+Solution:
+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 +++++++++++++++++++++---
+ 1 file changed, 21 insertions(+), 3 deletions(-)
+
+diff --git a/build/cargo-host-linker b/build/cargo-host-linker
+index cbd0472bf7..87d43ce9ec 100755
+--- a/build/cargo-host-linker
++++ b/build/cargo-host-linker
+@@ -1,3 +1,21 @@
+-#!/bin/sh
+-# See comment in cargo-linker.
+-eval ${MOZ_CARGO_WRAP_HOST_LD} ${MOZ_CARGO_WRAP_HOST_LDFLAGS} '"$@"'
++#!/usr/bin/env python3
++
++import os,sys
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LD'].strip():
++ binary=os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]
++else:
++ sys.exit(0)
++
++if os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS'].strip():
++ if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++ else:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + [os.environ['MOZ_CARGO_WRAP_HOST_LDFLAGS']] + sys.argv[1:]
++else:
++ if os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:]:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[1:] + sys.argv[1:]
++ else:
++ args=[os.environ['MOZ_CARGO_WRAP_HOST_LD'].split()[0]] + sys.argv[1:]
++
++os.execvp(binary, args)
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-102/0001-util.configure-fix-one-occasionally-reproduced-confi.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
new file mode 100644
index 0000000000..d732fdaf6f
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0001-util.configure-fix-one-occasionally-reproduced-confi.patch
@@ -0,0 +1,48 @@
+From 2a6f66f39b4e623428b6d282bd4cb72dde67c1a6 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
+ failure
+
+error:
+| checking whether the C++ compiler supports -Wno-range-loop-analysis...
+| DEBUG: Creating /tmp/conftest.jr1qrcw3.cpp with content:
+| DEBUG: | int
+| DEBUG: | main(void)
+| DEBUG: | {
+| DEBUG: |
+| DEBUG: | ;
+| DEBUG: | return 0;
+| DEBUG: | }
+| DEBUG: Executing: aarch64-wrs-linux-g++ -mcpu=cortex-a53 -march=armv8-a+crc -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/mozjs/91.1.0-r0/recipe-sysroot /tmp/conftest.jr1qrcw3.cpp -Werror -Wrange-loop-analysis -c
+| DEBUG: The command returned non-zero exit status 1.
+| DEBUG: Its error output was:
+...
+| File "/mozjs/91.1.0-r0/firefox-91.1.0/build/moz.configure/util.configure", line 239, in try_invoke_compiler
+| os.remove(path)
+| FileNotFoundError: [Errno 2] No such file or directory: '/tmp/conftest.jr1qrcw3.cpp'
+
+It should be another process that deleted this file by using
+"rm -rf conftest*" inappropriately
+
+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 80c3a34522..0ac0c6b611 100644
+--- a/build/moz.configure/util.configure
++++ b/build/moz.configure/util.configure
+@@ -216,7 +216,7 @@ def try_invoke_compiler(compiler, language, source, flags=None, onerror=None):
+ "C++": ".cpp",
+ }[language]
+
+- fd, path = mkstemp(prefix="conftest.", suffix=suffix, text=True)
++ fd, path = mkstemp(prefix="try_invoke_compiler_conftest.", suffix=suffix, text=True)
+ try:
+ source = source.encode("ascii", "replace")
+
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-102/0002-moz.configure-do-not-look-for-llvm-objdump.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0002-moz.configure-do-not-look-for-llvm-objdump.patch
new file mode 100644
index 0000000000..b3d3c1ffae
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0002-moz.configure-do-not-look-for-llvm-objdump.patch
@@ -0,0 +1,44 @@
+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
+@@ -785,15 +785,15 @@
+ return llvm_tool
+
+
+-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)
+
+
+ @depends(llvm_tool("llvm-readelf"), toolchain_prefix)
+
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-102/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
new file mode 100644
index 0000000000..202f126126
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0003-rust.configure-do-not-try-to-find-a-suitable-upstrea.patch
@@ -0,0 +1,66 @@
+From 33ff25e2b126dd4135006139641d8b7f6e4da200 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: 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 e64dc5d5ec..edf21baca6 100644
+--- a/build/moz.configure/rust.configure
++++ b/build/moz.configure/rust.configure
+@@ -471,33 +471,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
+ ):
+- rustc_target = detect_rustc_target(
+- host, compiler_info, arm_target, rust_supported_targets
+- )
+- if rustc_target != rustc_host:
+- if host.alias == rustc_target:
+- configure_host = host.alias
+- else:
+- configure_host = "{}/{}".format(host.alias, rustc_target)
+- die(
+- dedent(
+- """\
+- The rust compiler host ({rustc}) is not suitable for the configure host ({configure}).
+-
+- You can solve this by:
+- * Set your configure host to match the rust compiler host by editing your
+- mozconfig and adding "ac_add_options --host={rustc}".
+- * Or, install the rust toolchain for {configure}, if supported, by running
+- "rustup default stable-{rustc_target}"
+- """.format(
+- rustc=rustc_host,
+- configure=configure_host,
+- rustc_target=rustc_target,
+- )
+- )
+- )
+- assert_rust_compile(host, rustc_target, rustc)
+- return rustc_target
++ return rustc_host
+
+
+ @depends(
+@@ -507,11 +481,7 @@ def rust_host_triple(
+ def rust_target_triple(
+ rustc, target, compiler_info, rust_supported_targets, arm_target
+ ):
+- rustc_target = detect_rustc_target(
+- target, compiler_info, arm_target, rust_supported_targets
+- )
+- assert_rust_compile(target, rustc_target, rustc)
+- return rustc_target
++ return target.alias
+
+
+ set_config("RUST_TARGET", rust_target_triple)
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-102/0004-use-asm-sgidefs.h.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/0004-use-asm-sgidefs.h.patch
new file mode 100644
index 0000000000..ff28654b59
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/0004-use-asm-sgidefs.h.patch
@@ -0,0 +1,38 @@
+From 0ec73937b01869a701ed9b60a6a84469e035ded4 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>
+
+Build fix for MIPS with musl libc
+
+The MIPS specific header <sgidefs.h> is provided by glibc and uclibc
+but not by musl. Regardless of the libc, the kernel headers provide
+<asm/sgidefs.h> which provides the same definitions, so use that
+instead.
+
+Upstream-Status: Pending
+
+[Vincent:
+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>
+
+---
+ mfbt/RandomNum.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mfbt/RandomNum.cpp b/mfbt/RandomNum.cpp
+index 23381db0cd..7f127c0715 100644
+--- a/mfbt/RandomNum.cpp
++++ b/mfbt/RandomNum.cpp
+@@ -52,7 +52,7 @@ extern "C" BOOLEAN NTAPI RtlGenRandom(PVOID RandomBuffer,
+ # elif defined(__s390__)
+ # define GETRANDOM_NR 349
+ # elif defined(__mips__)
+-# include <sgidefs.h>
++# include <asm/sgidefs.h>
+ # if _MIPS_SIM == _MIPS_SIM_ABI32
+ # define GETRANDOM_NR 4353
+ # elif _MIPS_SIM == _MIPS_SIM_ABI64
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-102/fix-musl-build.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/fix-musl-build.patch
new file mode 100644
index 0000000000..6905282eb7
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/fix-musl-build.patch
@@ -0,0 +1,29 @@
+From 1110483c6c06adf2d03ed9154a8957defc175c80 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 8dfd75c63d..c82e580428 100644
+--- a/js/src/old-configure.in
++++ b/js/src/old-configure.in
+@@ -839,6 +839,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-102/musl-disable-stackwalk.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/musl-disable-stackwalk.patch
new file mode 100644
index 0000000000..a3ba469a41
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/musl-disable-stackwalk.patch
@@ -0,0 +1,18 @@
+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>
+--- a/mozglue/misc/StackWalk.cpp
++++ b/mozglue/misc/StackWalk.cpp
+@@ -44,7 +44,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-102/riscv32.patch b/meta-oe/recipes-extended/mozjs/mozjs-102/riscv32.patch
new file mode 100644
index 0000000000..a6a0a9edec
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102/riscv32.patch
@@ -0,0 +1,60 @@
+From 81385fe53ffde5e1636e9ace0736d914da8dbc0f 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 0b7a2ff60f..54f8325b44 100644
+--- a/build/moz.configure/init.configure
++++ b/build/moz.configure/init.configure
+@@ -524,6 +524,9 @@ def split_triplet(triplet, allow_msvc=False, 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 c71460cb20..15bef93e19 100644
+--- a/python/mozbuild/mozbuild/configure/constants.py
++++ b/python/mozbuild/mozbuild/configure/constants.py
+@@ -53,6 +53,7 @@ CPU_bitness = {
+ "mips64": 64,
+ "ppc": 32,
+ "ppc64": 64,
++ 'riscv32': 32,
+ "riscv64": 64,
+ "s390": 32,
+ "s390x": 64,
+@@ -95,6 +96,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 059cde0139..4f9986eb31 100644
+--- a/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
++++ b/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py
+@@ -1192,6 +1192,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-102_102.9.0.bb b/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb
new file mode 100644
index 0000000000..e6ff379e95
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs-102_102.9.0.bb
@@ -0,0 +1,79 @@
+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 \
+ "
+SRC_URI[sha256sum] = "31b074623f09ca821a8a7dee0b3d2df1a45f1164264d31c26b4969a4d6a21dd1"
+
+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_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
+
+inherit multilib_script multilib_header
+
+MULTILIB_SCRIPTS += " ${PN}-dev:${bindir}/js102-config"
+
+do_install:append() {
+ oe_multilib_header mozjs-102/js-config.h
+ sed -e 's@${STAGING_DIR_HOST}@@g' \
+ -i ${D}${bindir}/js102-config
+ rm -f ${D}${libdir}/libjs_static.ajs
+}
+
+PACKAGES =+ "lib${BPN}"
+FILES:lib${BPN} += "${libdir}/lib*"
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-compare-the-first-character-of-string-to-be-null-or-.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-compare-the-first-character-of-string-to-be-null-or-.patch
deleted file mode 100644
index 40d646c7df..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0001-compare-the-first-character-of-string-to-be-null-or-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From f36c9476d2816e0d3e61c9e13c22ed73883cb54a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 24 Apr 2017 12:13:43 -0700
-Subject: [PATCH] compare the first character of string to be null or not
-
-Fixes
-
-error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
-| if (value[0] == '\0')
-| ^~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- js/src/shell/jsoptparse.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/js/src/shell/jsoptparse.cpp b/js/src/shell/jsoptparse.cpp
-index b49d0a5..612aa00 100644
---- a/js/src/shell/jsoptparse.cpp
-+++ b/js/src/shell/jsoptparse.cpp
-@@ -243,7 +243,7 @@ OptionParser::extractValue(size_t argc, char **argv, size_t *i, char **value)
- char *eq = strchr(argv[*i], '=');
- if (eq) {
- *value = eq + 1;
-- if (value[0] == '\0')
-+ if (value[0][0] == '\0')
- return error("A value is required for option %.*s", eq - argv[*i], argv[*i]);
- return Okay;
- }
---
-2.12.2
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
deleted file mode 100644
index bc141d9d57..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0a61b0b98c152f10404ccbdeeac583a486638a7a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Thu, 6 Jun 2013 18:36:01 +0200
-Subject: [PATCH] js.pc.in: do not include RequiredDefines.h for depending
- packages
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-in our cross environment the would fail with:
-
-| cc1: fatal error: /usr/include/js-17.0/js/RequiredDefines.h: No such file or directory
-
-and currently it only defines __STDC_LIMIT_MACROS
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- js.pc.in | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/js.pc.in b/js.pc.in
-index 13d761d..a95a7bd 100644
---- a/js.pc.in
-+++ b/js.pc.in
-@@ -8,4 +8,4 @@ Description: The Mozilla library for JavaScript
- Version: @MOZILLA_VERSION@
- Requires.private: @NSPR_PKGCONF_CHECK@
- Libs: -L${libdir} -l@LIBRARY_NAME@
--Cflags: -include ${includedir}/@MODULE@/js/RequiredDefines.h -I${includedir}/@MODULE@
-+Cflags: -I${includedir}/@MODULE@
---
-1.7.6.5
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch
deleted file mode 100644
index de72d4f9a3..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From da3929a96d9c74e11bf37d128890e18fcb745365 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Mon, 26 Jan 2015 08:53:19 +0900
-Subject: [PATCH] mozjs17.0.0: fix the compile bug of powerpc
-
-To fix the bug as following
-
-error: cannot convert '__va_list_tag**' to '__va_list_tag (*)[1]' for
-argument '5' to 'JSBool TryArgumentFormatter(JSContext*, const char**,
-JSBool, jsval**, __va_list_tag (*)[1])'
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- jscpucfg.h | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/jscpucfg.h b/jscpucfg.h
-index dfb1c14..8683491 100644
---- a/jscpucfg.h
-+++ b/jscpucfg.h
-@@ -47,6 +47,12 @@
- #elif defined(JS_HAVE_ENDIAN_H)
- # include <endian.h>
-
-+#if defined(_POWER) || defined(__powerpc__) || \
-+ defined(__ppc__)
-+# define HAVE_VA_LIST_AS_ARRAY 1
-+# endif
-+
-+
- # if defined(__BYTE_ORDER)
- # if __BYTE_ORDER == __LITTLE_ENDIAN
- # define IS_LITTLE_ENDIAN 1
---
-1.8.4.2
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch b/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch
deleted file mode 100644
index fa413ea9f3..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0001-regenerate-configure.patch
+++ /dev/null
@@ -1,3238 +0,0 @@
-From 6440b4901c6f4bcc69686ff10806e311cc5a927b Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Tue, 3 Mar 2015 19:12:17 +0800
-Subject: [PATCH] regenerate configure with autoconf-2.13
-
-Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-Upstream-status: Inappropriate [generated file]
-
----
- js/src/configure | 838 ++++++++++++++++++++++++++-----------------------------
- 1 file changed, 389 insertions(+), 449 deletions(-)
-
-diff --git a/js/src/configure b/js/src/configure
-index cb6b41b..b05298f 100755
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -5757,6 +5757,10 @@ arm*)
- CPU_ARCH=arm
- ;;
-
-+aarch64*)
-+ CPU_ARCH=aarch64
-+ ;;
-+
- mips|mipsel)
- CPU_ARCH="mips"
- ;;
-@@ -5893,14 +5897,14 @@ no)
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$arch_flag"
- cat > conftest.$ac_ext <<EOF
--#line 5897 "configure"
-+#line 5901 "configure"
- #include "confdefs.h"
-
- int main() {
- return sizeof(__thumb2__);
- ; return 0; }
- EOF
--if { (eval echo configure:5904: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:5908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- MOZ_THUMB2=1
- else
-@@ -5972,16 +5976,16 @@ if test -n "$all_flags"; then
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$all_flags"
- echo $ac_n "checking whether the chosen combination of compiler flags ($all_flags) works""... $ac_c" 1>&6
--echo "configure:5976: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
-+echo "configure:5980: checking whether the chosen combination of compiler flags ($all_flags) works" >&5
- cat > conftest.$ac_ext <<EOF
--#line 5978 "configure"
-+#line 5982 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:5985: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:5989: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- echo "$ac_t""yes" 1>&6
- else
-@@ -6004,18 +6008,18 @@ fi
-
- if test "$CPU_ARCH" = "arm"; then
- echo $ac_n "checking for ARM SIMD support in compiler""... $ac_c" 1>&6
--echo "configure:6008: checking for ARM SIMD support in compiler" >&5
-+echo "configure:6012: checking for ARM SIMD support in compiler" >&5
- # We try to link so that this also fails when
- # building with LTO.
- cat > conftest.$ac_ext <<EOF
--#line 6012 "configure"
-+#line 6016 "configure"
- #include "confdefs.h"
-
- int main() {
- asm("uqadd8 r1, r1, r2");
- ; return 0; }
- EOF
--if { (eval echo configure:6019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:6023: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- result="yes"
- else
-@@ -6038,18 +6042,18 @@ EOF
- fi
-
- echo $ac_n "checking for ARM NEON support in compiler""... $ac_c" 1>&6
--echo "configure:6042: checking for ARM NEON support in compiler" >&5
-+echo "configure:6046: checking for ARM NEON support in compiler" >&5
- # We try to link so that this also fails when
- # building with LTO.
- cat > conftest.$ac_ext <<EOF
--#line 6046 "configure"
-+#line 6050 "configure"
- #include "confdefs.h"
-
- int main() {
- asm(".fpu neon\n vadd.i8 d0, d0, d0");
- ; return 0; }
- EOF
--if { (eval echo configure:6053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:6057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- result="yes"
- else
-@@ -6094,7 +6098,7 @@ configure_static_assert_macros='
- '
-
- echo $ac_n "checking that static assertion macros used in autoconf tests work""... $ac_c" 1>&6
--echo "configure:6098: checking that static assertion macros used in autoconf tests work" >&5
-+echo "configure:6102: checking that static assertion macros used in autoconf tests work" >&5
- if eval "test \"`echo '$''{'ac_cv_static_assertion_macros_work'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6108,14 +6112,14 @@ cross_compiling=$ac_cv_prog_cc_cross
-
- ac_cv_static_assertion_macros_work="yes"
- cat > conftest.$ac_ext <<EOF
--#line 6112 "configure"
-+#line 6116 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(1)
- ; return 0; }
- EOF
--if { (eval echo configure:6119: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6123: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -6125,14 +6129,14 @@ else
- fi
- rm -f conftest*
- cat > conftest.$ac_ext <<EOF
--#line 6129 "configure"
-+#line 6133 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(0)
- ; return 0; }
- EOF
--if { (eval echo configure:6136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_static_assertion_macros_work="no"
- else
-@@ -6148,14 +6152,14 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- cat > conftest.$ac_ext <<EOF
--#line 6152 "configure"
-+#line 6156 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(1)
- ; return 0; }
- EOF
--if { (eval echo configure:6159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6163: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -6165,14 +6169,14 @@ else
- fi
- rm -f conftest*
- cat > conftest.$ac_ext <<EOF
--#line 6169 "configure"
-+#line 6173 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(0)
- ; return 0; }
- EOF
--if { (eval echo configure:6176: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6180: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_static_assertion_macros_work="no"
- else
-@@ -6317,7 +6321,7 @@ if test "$GNU_CC"; then
- _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -Wpointer-arith -Wdeclaration-after-statement"
-
- echo $ac_n "checking whether the C compiler supports -Werror=return-type""... $ac_c" 1>&6
--echo "configure:6321: checking whether the C compiler supports -Werror=return-type" >&5
-+echo "configure:6325: checking whether the C compiler supports -Werror=return-type" >&5
- if eval "test \"`echo '$''{'ac_c_has_werror_return_type'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6333,14 +6337,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Werror=return-type"
- cat > conftest.$ac_ext <<EOF
--#line 6337 "configure"
-+#line 6341 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6348: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_werror_return_type="yes"
- else
-@@ -6368,7 +6372,7 @@ echo "$ac_t""$ac_c_has_werror_return_type" 1>&6
-
-
- echo $ac_n "checking whether the C compiler supports -Wtype-limits""... $ac_c" 1>&6
--echo "configure:6372: checking whether the C compiler supports -Wtype-limits" >&5
-+echo "configure:6376: checking whether the C compiler supports -Wtype-limits" >&5
- if eval "test \"`echo '$''{'ac_c_has_wtype_limits'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6384,14 +6388,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Wtype-limits"
- cat > conftest.$ac_ext <<EOF
--#line 6388 "configure"
-+#line 6392 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6395: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_wtype_limits="yes"
- else
-@@ -6419,7 +6423,7 @@ echo "$ac_t""$ac_c_has_wtype_limits" 1>&6
-
-
- echo $ac_n "checking whether the C compiler supports -Wempty-body""... $ac_c" 1>&6
--echo "configure:6423: checking whether the C compiler supports -Wempty-body" >&5
-+echo "configure:6427: checking whether the C compiler supports -Wempty-body" >&5
- if eval "test \"`echo '$''{'ac_c_has_wempty_body'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6435,14 +6439,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Wempty-body"
- cat > conftest.$ac_ext <<EOF
--#line 6439 "configure"
-+#line 6443 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6446: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6450: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_wempty_body="yes"
- else
-@@ -6476,7 +6480,7 @@ echo "$ac_t""$ac_c_has_wempty_body" 1>&6
- _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wno-unused"
-
- echo $ac_n "checking whether the C compiler supports -Wno-overlength-strings""... $ac_c" 1>&6
--echo "configure:6480: checking whether the C compiler supports -Wno-overlength-strings" >&5
-+echo "configure:6484: checking whether the C compiler supports -Wno-overlength-strings" >&5
- if eval "test \"`echo '$''{'ac_c_has_wno_overlength_strings'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6492,14 +6496,14 @@ cross_compiling=$ac_cv_prog_cc_cross
- _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -Werror -Woverlength-strings"
- cat > conftest.$ac_ext <<EOF
--#line 6496 "configure"
-+#line 6500 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6503: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6507: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_c_has_wno_overlength_strings="yes"
- else
-@@ -6580,7 +6584,7 @@ if test "$GNU_CXX"; then
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual"
-
- echo $ac_n "checking whether the C++ compiler supports -Werror=return-type""... $ac_c" 1>&6
--echo "configure:6584: checking whether the C++ compiler supports -Werror=return-type" >&5
-+echo "configure:6588: checking whether the C++ compiler supports -Werror=return-type" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_werror_return_type'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6596,14 +6600,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Werror=return-type"
- cat > conftest.$ac_ext <<EOF
--#line 6600 "configure"
-+#line 6604 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6607: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_werror_return_type="yes"
- else
-@@ -6631,7 +6635,7 @@ echo "$ac_t""$ac_cxx_has_werror_return_type" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wtype-limits""... $ac_c" 1>&6
--echo "configure:6635: checking whether the C++ compiler supports -Wtype-limits" >&5
-+echo "configure:6639: checking whether the C++ compiler supports -Wtype-limits" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wtype_limits'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6647,14 +6651,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wtype-limits"
- cat > conftest.$ac_ext <<EOF
--#line 6651 "configure"
-+#line 6655 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6658: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6662: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wtype_limits="yes"
- else
-@@ -6682,7 +6686,7 @@ echo "$ac_t""$ac_cxx_has_wtype_limits" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wempty-body""... $ac_c" 1>&6
--echo "configure:6686: checking whether the C++ compiler supports -Wempty-body" >&5
-+echo "configure:6690: checking whether the C++ compiler supports -Wempty-body" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wempty_body'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6698,14 +6702,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wempty-body"
- cat > conftest.$ac_ext <<EOF
--#line 6702 "configure"
-+#line 6706 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6709: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6713: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wempty_body="yes"
- else
-@@ -6741,7 +6745,7 @@ echo "$ac_t""$ac_cxx_has_wempty_body" 1>&6
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-ctor-dtor-privacy"
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-overlength-strings""... $ac_c" 1>&6
--echo "configure:6745: checking whether the C++ compiler supports -Wno-overlength-strings" >&5
-+echo "configure:6749: checking whether the C++ compiler supports -Wno-overlength-strings" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_overlength_strings'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6757,14 +6761,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Woverlength-strings"
- cat > conftest.$ac_ext <<EOF
--#line 6761 "configure"
-+#line 6765 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6768: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_overlength_strings="yes"
- else
-@@ -6792,7 +6796,7 @@ echo "$ac_t""$ac_cxx_has_wno_overlength_strings" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-invalid-offsetof""... $ac_c" 1>&6
--echo "configure:6796: checking whether the C++ compiler supports -Wno-invalid-offsetof" >&5
-+echo "configure:6800: checking whether the C++ compiler supports -Wno-invalid-offsetof" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_invalid_offsetof'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6808,14 +6812,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Winvalid-offsetof"
- cat > conftest.$ac_ext <<EOF
--#line 6812 "configure"
-+#line 6816 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6819: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6823: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_invalid_offsetof="yes"
- else
-@@ -6843,7 +6847,7 @@ echo "$ac_t""$ac_cxx_has_wno_invalid_offsetof" 1>&6
-
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-variadic-macros""... $ac_c" 1>&6
--echo "configure:6847: checking whether the C++ compiler supports -Wno-variadic-macros" >&5
-+echo "configure:6851: checking whether the C++ compiler supports -Wno-variadic-macros" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_variadic_macros'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6859,14 +6863,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wvariadic-macros"
- cat > conftest.$ac_ext <<EOF
--#line 6863 "configure"
-+#line 6867 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6870: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6874: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_variadic_macros="yes"
- else
-@@ -6918,7 +6922,7 @@ echo "$ac_t""$ac_cxx_has_wno_variadic_macros" 1>&6
- _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wno-c++0x-extensions"
-
- echo $ac_n "checking whether the C++ compiler supports -Wno-extended-offsetof""... $ac_c" 1>&6
--echo "configure:6922: checking whether the C++ compiler supports -Wno-extended-offsetof" >&5
-+echo "configure:6926: checking whether the C++ compiler supports -Wno-extended-offsetof" >&5
- if eval "test \"`echo '$''{'ac_cxx_has_wno_extended_offsetof'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6934,14 +6938,14 @@ cross_compiling=$ac_cv_prog_cxx_cross
- _SAVE_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -Werror -Wextended-offsetof"
- cat > conftest.$ac_ext <<EOF
--#line 6938 "configure"
-+#line 6942 "configure"
- #include "confdefs.h"
-
- int main() {
- return(0);
- ; return 0; }
- EOF
--if { (eval echo configure:6945: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:6949: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cxx_has_wno_extended_offsetof="yes"
- else
-@@ -6979,7 +6983,7 @@ MKSHLIB_UNFORCE_ALL=
- if test "$COMPILE_ENVIRONMENT"; then
- if test "$GNU_CC"; then
- echo $ac_n "checking whether ld has archive extraction flags""... $ac_c" 1>&6
--echo "configure:6983: checking whether ld has archive extraction flags" >&5
-+echo "configure:6987: checking whether ld has archive extraction flags" >&5
- if eval "test \"`echo '$''{'ac_cv_mkshlib_force_and_unforce'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -6996,14 +7000,14 @@ LOOP_INPUT
- LDFLAGS=$force
- LIBS=$unforce
- cat > conftest.$ac_ext <<EOF
--#line 7000 "configure"
-+#line 7004 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:7007: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:7011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_mkshlib_force_and_unforce=$line; break
- else
-@@ -7038,16 +7042,16 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
- cross_compiling=$ac_cv_prog_cc_cross
-
- echo $ac_n "checking for 64-bit OS""... $ac_c" 1>&6
--echo "configure:7042: checking for 64-bit OS" >&5
-+echo "configure:7046: checking for 64-bit OS" >&5
- cat > conftest.$ac_ext <<EOF
--#line 7044 "configure"
-+#line 7048 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(sizeof(void*) == 8)
- ; return 0; }
- EOF
--if { (eval echo configure:7051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7055: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- result="yes"
- else
-@@ -7170,7 +7174,7 @@ case "$host" in
- esac
-
- echo $ac_n "checking for Python version >= $PYTHON_VERSION but not 3.x""... $ac_c" 1>&6
--echo "configure:7174: checking for Python version >= $PYTHON_VERSION but not 3.x" >&5
-+echo "configure:7178: checking for Python version >= $PYTHON_VERSION but not 3.x" >&5
-
- $PYTHON -c "import sys; sys.exit(sys.version[:3] < sys.argv[1] or sys.version[:2] != '2.')" $PYTHON_VERSION
- _python_res=$?
-@@ -7181,7 +7185,7 @@ fi
- echo "$ac_t""yes" 1>&6
-
- echo $ac_n "checking for custom <stdint.h> implementation""... $ac_c" 1>&6
--echo "configure:7185: checking for custom <stdint.h> implementation" >&5
-+echo "configure:7189: checking for custom <stdint.h> implementation" >&5
- if test "$MOZ_CUSTOM_STDINT_H"; then
- cat >> confdefs.pytmp <<EOF
- (''' MOZ_CUSTOM_STDINT_H ''', r''' "$MOZ_CUSTOM_STDINT_H" ''')
-@@ -7249,9 +7253,9 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for IBM XLC/C++ compiler version >= 9.0.0.7""... $ac_c" 1>&6
--echo "configure:7253: checking for IBM XLC/C++ compiler version >= 9.0.0.7" >&5
-+echo "configure:7257: checking for IBM XLC/C++ compiler version >= 9.0.0.7" >&5
- cat > conftest.$ac_ext <<EOF
--#line 7255 "configure"
-+#line 7259 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -7260,7 +7264,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:7264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7268: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _BAD_COMPILER=
- else
-@@ -7298,12 +7302,12 @@ cross_compiling=$ac_cv_prog_cc_cross
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:7302: checking for $ac_hdr" >&5
-+echo "configure:7306: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 7307 "configure"
-+#line 7311 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -7311,7 +7315,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:7315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7319: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -7394,17 +7398,17 @@ EOF
- # builds.
- _SAVE_LDFLAGS=$LDFLAGS
- echo $ac_n "checking for -framework ExceptionHandling""... $ac_c" 1>&6
--echo "configure:7398: checking for -framework ExceptionHandling" >&5
-+echo "configure:7402: checking for -framework ExceptionHandling" >&5
- LDFLAGS="$LDFLAGS -framework ExceptionHandling"
- cat > conftest.$ac_ext <<EOF
--#line 7401 "configure"
-+#line 7405 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:7408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:7412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_framework_exceptionhandling="yes"
- else
-@@ -7426,18 +7430,18 @@ rm -f conftest*
- echo "Skipping -dead_strip because DTrace is enabled. See bug 403132."
- else
- echo $ac_n "checking for -dead_strip option to ld""... $ac_c" 1>&6
--echo "configure:7430: checking for -dead_strip option to ld" >&5
-+echo "configure:7434: checking for -dead_strip option to ld" >&5
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS -Wl,-dead_strip"
- cat > conftest.$ac_ext <<EOF
--#line 7434 "configure"
-+#line 7438 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:7441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:7445: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- _HAVE_DEAD_STRIP=1
- else
-@@ -7783,12 +7787,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:7787: checking for $ac_hdr" >&5
-+echo "configure:7791: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 7792 "configure"
-+#line 7796 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -7796,7 +7800,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:7800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:7804: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -7989,19 +7993,19 @@ EOF
- _DEFINES_CXXFLAGS="$_DEFINES_CXXFLAGS -Uunix -U__unix -U__unix__"
-
- echo $ac_n "checking for __declspec(dllexport)""... $ac_c" 1>&6
--echo "configure:7993: checking for __declspec(dllexport)" >&5
-+echo "configure:7997: checking for __declspec(dllexport)" >&5
- if eval "test \"`echo '$''{'ac_os2_declspec'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 7998 "configure"
-+#line 8002 "configure"
- #include "confdefs.h"
- __declspec(dllexport) void ac_os2_declspec(void) {}
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:8005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8009: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_os2_declspec="yes"
- else
-@@ -8054,14 +8058,14 @@ EOF
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="-M /usr/lib/ld/map.noexstk $LDFLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 8058 "configure"
-+#line 8062 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main() {
- printf("Hello World\n");
- ; return 0; }
- EOF
--if { (eval echo configure:8065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:8069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -8089,7 +8093,7 @@ rm -f conftest*
- CC_VERSION=`$CC -V 2>&1 | grep '^cc:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
- CXX_VERSION=`$CXX -V 2>&1 | grep '^CC:' 2>/dev/null | $AWK -F\: '{ print $2 }'`
- echo $ac_n "checking for Sun C++ compiler version >= 5.9""... $ac_c" 1>&6
--echo "configure:8093: checking for Sun C++ compiler version >= 5.9" >&5
-+echo "configure:8097: checking for Sun C++ compiler version >= 5.9" >&5
-
- ac_ext=C
- # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
-@@ -8099,7 +8103,7 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- cat > conftest.$ac_ext <<EOF
--#line 8103 "configure"
-+#line 8107 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -8108,7 +8112,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:8112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _BAD_COMPILER=
- else
-@@ -8125,7 +8129,7 @@ rm -f conftest*
- _res="yes"
- fi
- cat > conftest.$ac_ext <<EOF
--#line 8129 "configure"
-+#line 8133 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -8134,7 +8138,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:8138: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8142: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _ABOVE_SS12U1=
- else
-@@ -8535,7 +8539,7 @@ fi
-
- if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -z "$MOZ_DISABLE_ICF"; then
- echo $ac_n "checking whether the linker supports Identical Code Folding""... $ac_c" 1>&6
--echo "configure:8539: checking whether the linker supports Identical Code Folding" >&5
-+echo "configure:8543: checking whether the linker supports Identical Code Folding" >&5
- if eval "test \"`echo '$''{'LD_SUPPORTS_ICF'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -8544,7 +8548,7 @@ else
- 'int main() {return foo() - bar();}' > conftest.${ac_ext}
- # If the linker supports ICF, foo and bar symbols will have
- # the same address
-- if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,--icf=safe -ffunction-sections conftest.${ac_ext} $LIBS 1>&2'; { (eval echo configure:8548: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-+ if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS -Wl,--icf=safe -ffunction-sections conftest.${ac_ext} $LIBS 1>&2'; { (eval echo configure:8552: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
- test -s conftest${ac_exeext} &&
- objdump -t conftest${ac_exeext} | awk '{a[$6] = $1} END {if (a["foo"] && (a["foo"] != a["bar"])) { exit 1 }}'; then
- LD_SUPPORTS_ICF=yes
-@@ -8559,14 +8563,14 @@ echo "$ac_t""$LD_SUPPORTS_ICF" 1>&6
- _SAVE_LDFLAGS="$LDFLAGS -Wl,--icf=safe"
- LDFLAGS="$LDFLAGS -Wl,--icf=safe -Wl,--print-icf-sections"
- cat > conftest.$ac_ext <<EOF
--#line 8563 "configure"
-+#line 8567 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:8570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:8574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- LD_PRINT_ICF_SECTIONS=-Wl,--print-icf-sections
- else
-@@ -8584,15 +8588,15 @@ fi
-
- if test "$GNU_CC" -a "$GCC_USE_GNU_LD" -a -n "$MOZ_DEBUG_FLAGS"; then
- echo $ac_n "checking whether removing dead symbols breaks debugging""... $ac_c" 1>&6
--echo "configure:8588: checking whether removing dead symbols breaks debugging" >&5
-+echo "configure:8592: checking whether removing dead symbols breaks debugging" >&5
- if eval "test \"`echo '$''{'GC_SECTIONS_BREAKS_DEBUG_RANGES'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- echo 'int foo() {return 42;}' \
- 'int bar() {return 1;}' \
- 'int main() {return foo();}' > conftest.${ac_ext}
-- if { ac_try='${CC-cc} -o conftest.${ac_objext} $CFLAGS $MOZ_DEBUG_FLAGS -c conftest.${ac_ext} 1>&2'; { (eval echo configure:8595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-- { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS $MOZ_DEBUG_FLAGS -Wl,--gc-sections conftest.${ac_objext} $LIBS 1>&2'; { (eval echo configure:8596: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-+ if { ac_try='${CC-cc} -o conftest.${ac_objext} $CFLAGS $MOZ_DEBUG_FLAGS -c conftest.${ac_ext} 1>&2'; { (eval echo configure:8599: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
-+ { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS $MOZ_DEBUG_FLAGS -Wl,--gc-sections conftest.${ac_objext} $LIBS 1>&2'; { (eval echo configure:8600: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } &&
- test -s conftest${ac_exeext} -a -s conftest.${ac_objext}; then
- if test "`$PYTHON "$_topsrcdir"/build/autoconf/check_debug_ranges.py conftest.${ac_objext} conftest.${ac_ext}`" = \
- "`$PYTHON "$_topsrcdir"/build/autoconf/check_debug_ranges.py conftest${ac_exeext} conftest.${ac_ext}`"; then
-@@ -8615,12 +8619,12 @@ fi
-
- if test -z "$SKIP_COMPILER_CHECKS"; then
- echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
--echo "configure:8619: checking for ANSI C header files" >&5
-+echo "configure:8623: checking for ANSI C header files" >&5
- if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8624 "configure"
-+#line 8628 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- #include <stdarg.h>
-@@ -8628,7 +8632,7 @@ else
- #include <float.h>
- EOF
- ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:8632: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-+{ (eval echo configure:8636: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
- ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
- if test -z "$ac_err"; then
- rm -rf conftest*
-@@ -8645,7 +8649,7 @@ rm -f conftest*
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
- cat > conftest.$ac_ext <<EOF
--#line 8649 "configure"
-+#line 8653 "configure"
- #include "confdefs.h"
- #include <string.h>
- EOF
-@@ -8663,7 +8667,7 @@ fi
- if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
- cat > conftest.$ac_ext <<EOF
--#line 8667 "configure"
-+#line 8671 "configure"
- #include "confdefs.h"
- #include <stdlib.h>
- EOF
-@@ -8684,7 +8688,7 @@ if test "$cross_compiling" = yes; then
- :
- else
- cat > conftest.$ac_ext <<EOF
--#line 8688 "configure"
-+#line 8692 "configure"
- #include "confdefs.h"
- #include <ctype.h>
- #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-@@ -8695,7 +8699,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
- exit (0); }
-
- EOF
--if { (eval echo configure:8699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:8703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- :
- else
-@@ -8722,12 +8726,12 @@ EOF
- fi
-
- echo $ac_n "checking for working const""... $ac_c" 1>&6
--echo "configure:8726: checking for working const" >&5
-+echo "configure:8730: checking for working const" >&5
- if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8731 "configure"
-+#line 8735 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -8776,7 +8780,7 @@ ccp = (char const *const *) p;
-
- ; return 0; }
- EOF
--if { (eval echo configure:8780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8784: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_c_const=yes
- else
-@@ -8800,12 +8804,12 @@ EOF
- fi
-
- echo $ac_n "checking for mode_t""... $ac_c" 1>&6
--echo "configure:8804: checking for mode_t" >&5
-+echo "configure:8808: checking for mode_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8809 "configure"
-+#line 8813 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8836,12 +8840,12 @@ EOF
- fi
-
- echo $ac_n "checking for off_t""... $ac_c" 1>&6
--echo "configure:8840: checking for off_t" >&5
-+echo "configure:8844: checking for off_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8845 "configure"
-+#line 8849 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8872,12 +8876,12 @@ EOF
- fi
-
- echo $ac_n "checking for pid_t""... $ac_c" 1>&6
--echo "configure:8876: checking for pid_t" >&5
-+echo "configure:8880: checking for pid_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8881 "configure"
-+#line 8885 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8908,12 +8912,12 @@ EOF
- fi
-
- echo $ac_n "checking for size_t""... $ac_c" 1>&6
--echo "configure:8912: checking for size_t" >&5
-+echo "configure:8916: checking for size_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8917 "configure"
-+#line 8921 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #if STDC_HEADERS
-@@ -8951,12 +8955,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for __stdcall""... $ac_c" 1>&6
--echo "configure:8955: checking for __stdcall" >&5
-+echo "configure:8959: checking for __stdcall" >&5
- if eval "test \"`echo '$''{'ac_cv___stdcall'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 8960 "configure"
-+#line 8964 "configure"
- #include "confdefs.h"
- template <typename Method> struct foo;
- template <> struct foo<void (*)()> {};
-@@ -8965,7 +8969,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:8969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:8973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv___stdcall=true
- else
-@@ -8997,12 +9001,12 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a
- cross_compiling=$ac_cv_prog_cc_cross
-
- echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
--echo "configure:9001: checking for ssize_t" >&5
-+echo "configure:9005: checking for ssize_t" >&5
- if eval "test \"`echo '$''{'ac_cv_type_ssize_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9006 "configure"
-+#line 9010 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <sys/types.h>
-@@ -9010,7 +9014,7 @@ int main() {
- ssize_t foo = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9014: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9018: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_type_ssize_t=true
- else
-@@ -9035,12 +9039,12 @@ else
- echo "$ac_t""no" 1>&6
- fi
- echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
--echo "configure:9039: checking for st_blksize in struct stat" >&5
-+echo "configure:9043: checking for st_blksize in struct stat" >&5
- if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9044 "configure"
-+#line 9048 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -9048,7 +9052,7 @@ int main() {
- struct stat s; s.st_blksize;
- ; return 0; }
- EOF
--if { (eval echo configure:9052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9056: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_struct_st_blksize=yes
- else
-@@ -9072,12 +9076,12 @@ EOF
- fi
-
- echo $ac_n "checking for siginfo_t""... $ac_c" 1>&6
--echo "configure:9076: checking for siginfo_t" >&5
-+echo "configure:9080: checking for siginfo_t" >&5
- if eval "test \"`echo '$''{'ac_cv_siginfo_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9081 "configure"
-+#line 9085 "configure"
- #include "confdefs.h"
- #define _POSIX_C_SOURCE 199506L
- #include <signal.h>
-@@ -9085,7 +9089,7 @@ int main() {
- siginfo_t* info;
- ; return 0; }
- EOF
--if { (eval echo configure:9089: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9093: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_siginfo_t=true
- else
-@@ -9111,72 +9115,8 @@ else
- fi
-
-
--echo $ac_n "checking for the size of void*""... $ac_c" 1>&6
--echo "configure:9116: checking for the size of void*" >&5
--if eval "test \"`echo '$''{'moz_cv_size_of_JS_BYTES_PER_WORD'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
--
-- moz_cv_size_of_JS_BYTES_PER_WORD=
-- for size in 4 8; do
-- cat > conftest.$ac_ext <<EOF
--#line 9124 "configure"
--#include "confdefs.h"
--
--int main() {
--
-- int a[sizeof (void*) == $size ? 1 : -1];
-- return 0;
--
--; return 0; }
--EOF
--if { (eval echo configure:9134: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-- rm -rf conftest*
-- moz_cv_size_of_JS_BYTES_PER_WORD=$size; break
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
--fi
--rm -f conftest*
-- done
-- if test ! "$moz_cv_size_of_JS_BYTES_PER_WORD"; then
-- { echo "configure: error: No size found for void*" 1>&2; exit 1; }
-- fi
--
--fi
--
--echo "$ac_t""$moz_cv_size_of_JS_BYTES_PER_WORD" 1>&6
--cat >> confdefs.pytmp <<EOF
-- (''' JS_BYTES_PER_WORD ''', r''' $moz_cv_size_of_JS_BYTES_PER_WORD ''')
--EOF
--cat >> confdefs.h <<EOF
--#define JS_BYTES_PER_WORD $moz_cv_size_of_JS_BYTES_PER_WORD
--EOF
--
--
--if test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "4"; then
-- cat >> confdefs.pytmp <<\EOF
-- (''' JS_BITS_PER_WORD_LOG2 ''', r''' 5 ''')
--EOF
--cat >> confdefs.h <<\EOF
--#define JS_BITS_PER_WORD_LOG2 5
--EOF
--
--elif test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "8"; then
-- cat >> confdefs.pytmp <<\EOF
-- (''' JS_BITS_PER_WORD_LOG2 ''', r''' 6 ''')
--EOF
--cat >> confdefs.h <<\EOF
--#define JS_BITS_PER_WORD_LOG2 6
--EOF
--
--else
-- { echo "configure: error: Unexpected JS_BYTES_PER_WORD" 1>&2; exit 1; }
--fi
--
--
- echo $ac_n "checking for the alignment of void*""... $ac_c" 1>&6
--echo "configure:9180: checking for the alignment of void*" >&5
-+echo "configure:9120: checking for the alignment of void*" >&5
- if eval "test \"`echo '$''{'moz_cv_align_of_JS_ALIGN_OF_POINTER'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9184,7 +9124,7 @@ else
- moz_cv_align_of_JS_ALIGN_OF_POINTER=
- for align in 2 4 8 16; do
- cat > conftest.$ac_ext <<EOF
--#line 9188 "configure"
-+#line 9128 "configure"
- #include "confdefs.h"
-
- #include <stddef.h>
-@@ -9197,7 +9137,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- moz_cv_align_of_JS_ALIGN_OF_POINTER=$align; break
- else
-@@ -9223,7 +9163,7 @@ EOF
-
-
- echo $ac_n "checking for the size of double""... $ac_c" 1>&6
--echo "configure:9227: checking for the size of double" >&5
-+echo "configure:9167: checking for the size of double" >&5
- if eval "test \"`echo '$''{'moz_cv_size_of_JS_BYTES_PER_DOUBLE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9231,7 +9171,7 @@ else
- moz_cv_size_of_JS_BYTES_PER_DOUBLE=
- for size in 6 8 10 12 14; do
- cat > conftest.$ac_ext <<EOF
--#line 9235 "configure"
-+#line 9175 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -9241,7 +9181,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9185: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- moz_cv_size_of_JS_BYTES_PER_DOUBLE=$size; break
- else
-@@ -9270,12 +9210,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:9274: checking for $ac_hdr" >&5
-+echo "configure:9214: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9279 "configure"
-+#line 9219 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -9283,7 +9223,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9227: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -9326,12 +9266,12 @@ fi
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:9330: checking for $ac_hdr" >&5
-+echo "configure:9270: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9335 "configure"
-+#line 9275 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <$ac_hdr>
-@@ -9339,7 +9279,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -9382,12 +9322,12 @@ fi
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:9386: checking for $ac_hdr" >&5
-+echo "configure:9326: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9391 "configure"
-+#line 9331 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -9395,7 +9335,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:9399: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9339: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -9435,12 +9375,12 @@ EOF
- fi
-
- echo $ac_n "checking for uint""... $ac_c" 1>&6
--echo "configure:9439: checking for uint" >&5
-+echo "configure:9379: checking for uint" >&5
- if eval "test \"`echo '$''{'ac_cv_uint'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9444 "configure"
-+#line 9384 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <sys/types.h>
-@@ -9448,7 +9388,7 @@ int main() {
- uint foo = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9452: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9392: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_uint=true
- else
-@@ -9473,12 +9413,12 @@ else
- echo "$ac_t""no" 1>&6
- fi
- echo $ac_n "checking for uint_t""... $ac_c" 1>&6
--echo "configure:9477: checking for uint_t" >&5
-+echo "configure:9417: checking for uint_t" >&5
- if eval "test \"`echo '$''{'ac_cv_uint_t'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9482 "configure"
-+#line 9422 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <sys/types.h>
-@@ -9486,7 +9426,7 @@ int main() {
- uint_t foo = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9490: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9430: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_uint_t=true
- else
-@@ -9520,12 +9460,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
-
-
- echo $ac_n "checking for uname.domainname""... $ac_c" 1>&6
--echo "configure:9524: checking for uname.domainname" >&5
-+echo "configure:9464: checking for uname.domainname" >&5
- if eval "test \"`echo '$''{'ac_cv_have_uname_domainname_field'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9529 "configure"
-+#line 9469 "configure"
- #include "confdefs.h"
- #include <sys/utsname.h>
- int main() {
-@@ -9533,7 +9473,7 @@ int main() {
- (void)uname(res); if (res != 0) { domain = res->domainname; }
- ; return 0; }
- EOF
--if { (eval echo configure:9537: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9477: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_have_uname_domainname_field=true
- else
-@@ -9560,12 +9500,12 @@ else
- fi
-
- echo $ac_n "checking for uname.__domainname""... $ac_c" 1>&6
--echo "configure:9564: checking for uname.__domainname" >&5
-+echo "configure:9504: checking for uname.__domainname" >&5
- if eval "test \"`echo '$''{'ac_cv_have_uname_us_domainname_field'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9569 "configure"
-+#line 9509 "configure"
- #include "confdefs.h"
- #include <sys/utsname.h>
- int main() {
-@@ -9573,7 +9513,7 @@ int main() {
- (void)uname(res); if (res != 0) { domain = res->__domainname; }
- ; return 0; }
- EOF
--if { (eval echo configure:9577: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9517: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_have_uname_us_domainname_field=true
- else
-@@ -9609,7 +9549,7 @@ cross_compiling=$ac_cv_prog_cc_cross
-
- if test "$GNU_CC"; then
- echo $ac_n "checking for visibility(hidden) attribute""... $ac_c" 1>&6
--echo "configure:9613: checking for visibility(hidden) attribute" >&5
-+echo "configure:9553: checking for visibility(hidden) attribute" >&5
- if eval "test \"`echo '$''{'ac_cv_visibility_hidden'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9637,7 +9577,7 @@ EOF
-
-
- echo $ac_n "checking for visibility(default) attribute""... $ac_c" 1>&6
--echo "configure:9641: checking for visibility(default) attribute" >&5
-+echo "configure:9581: checking for visibility(default) attribute" >&5
- if eval "test \"`echo '$''{'ac_cv_visibility_default'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9665,7 +9605,7 @@ EOF
-
-
- echo $ac_n "checking for visibility pragma support""... $ac_c" 1>&6
--echo "configure:9669: checking for visibility pragma support" >&5
-+echo "configure:9609: checking for visibility pragma support" >&5
- if eval "test \"`echo '$''{'ac_cv_visibility_pragma'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9690,7 +9630,7 @@ fi
- echo "$ac_t""$ac_cv_visibility_pragma" 1>&6
- if test "$ac_cv_visibility_pragma" = "yes"; then
- echo $ac_n "checking For gcc visibility bug with class-level attributes (GCC bug 26905)""... $ac_c" 1>&6
--echo "configure:9694: checking For gcc visibility bug with class-level attributes (GCC bug 26905)" >&5
-+echo "configure:9634: checking For gcc visibility bug with class-level attributes (GCC bug 26905)" >&5
- if eval "test \"`echo '$''{'ac_cv_have_visibility_class_bug'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9718,7 +9658,7 @@ fi
- echo "$ac_t""$ac_cv_have_visibility_class_bug" 1>&6
-
- echo $ac_n "checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)""... $ac_c" 1>&6
--echo "configure:9722: checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)" >&5
-+echo "configure:9662: checking For x86_64 gcc visibility bug with builtins (GCC bug 20297)" >&5
- if eval "test \"`echo '$''{'ac_cv_have_visibility_builtin_bug'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -9770,7 +9710,7 @@ fi # Sun Studio on Solaris
- if test "$GNU_CC"; then
-
- echo $ac_n "checking for gcc PR49911""... $ac_c" 1>&6
--echo "configure:9774: checking for gcc PR49911" >&5
-+echo "configure:9714: checking for gcc PR49911" >&5
- ac_have_gcc_pr49911="no"
-
- ac_ext=C
-@@ -9787,7 +9727,7 @@ if test "$cross_compiling" = yes; then
- true
- else
- cat > conftest.$ac_ext <<EOF
--#line 9791 "configure"
-+#line 9731 "configure"
- #include "confdefs.h"
-
- extern "C" void abort(void);
-@@ -9828,7 +9768,7 @@ int main(void) {
- }
-
- EOF
--if { (eval echo configure:9832: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:9772: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- true
- else
-@@ -9865,12 +9805,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6
--echo "configure:9869: checking for $ac_hdr that defines DIR" >&5
-+echo "configure:9809: checking for $ac_hdr that defines DIR" >&5
- if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 9874 "configure"
-+#line 9814 "configure"
- #include "confdefs.h"
- #include <sys/types.h>
- #include <$ac_hdr>
-@@ -9878,7 +9818,7 @@ int main() {
- DIR *dirp = 0;
- ; return 0; }
- EOF
--if { (eval echo configure:9882: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9822: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_dirent_$ac_safe=yes"
- else
-@@ -9906,7 +9846,7 @@ done
- # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix.
- if test $ac_header_dirent = dirent.h; then
- echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6
--echo "configure:9910: checking for opendir in -ldir" >&5
-+echo "configure:9850: checking for opendir in -ldir" >&5
- ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -9914,7 +9854,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-ldir $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 9918 "configure"
-+#line 9858 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -9925,7 +9865,7 @@ int main() {
- opendir()
- ; return 0; }
- EOF
--if { (eval echo configure:9929: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:9869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -9947,7 +9887,7 @@ fi
-
- else
- echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
--echo "configure:9951: checking for opendir in -lx" >&5
-+echo "configure:9891: checking for opendir in -lx" >&5
- ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -9955,7 +9895,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lx $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 9959 "configure"
-+#line 9899 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -9966,7 +9906,7 @@ int main() {
- opendir()
- ; return 0; }
- EOF
--if { (eval echo configure:9970: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:9910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10000,12 +9940,12 @@ esac
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10004: checking for $ac_hdr" >&5
-+echo "configure:9944: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10009 "configure"
-+#line 9949 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10013,7 +9953,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10017: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:9957: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10048,12 +9988,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10052: checking for $ac_hdr" >&5
-+echo "configure:9992: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10057 "configure"
-+#line 9997 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10061,7 +10001,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10005: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10095,12 +10035,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10099: checking for $ac_hdr" >&5
-+echo "configure:10039: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10104 "configure"
-+#line 10044 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10108,7 +10048,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10112: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10052: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10141,12 +10081,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10145: checking for $ac_hdr" >&5
-+echo "configure:10085: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10150 "configure"
-+#line 10090 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10154,7 +10094,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10158: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10188,12 +10128,12 @@ EOF
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10192: checking for $ac_hdr" >&5
-+echo "configure:10132: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10197 "configure"
-+#line 10137 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10201,7 +10141,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10205: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10145: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10241,12 +10181,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
- NEW_H=new.h
- ac_safe=`echo "new" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for new""... $ac_c" 1>&6
--echo "configure:10245: checking for new" >&5
-+echo "configure:10185: checking for new" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10250 "configure"
-+#line 10190 "configure"
- #include "confdefs.h"
-
- #include <new>
-@@ -10254,7 +10194,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10298,12 +10238,12 @@ fi
- if test "x$enable_dtrace" = "xyes"; then
- ac_safe=`echo "sys/sdt.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for sys/sdt.h""... $ac_c" 1>&6
--echo "configure:10302: checking for sys/sdt.h" >&5
-+echo "configure:10242: checking for sys/sdt.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10307 "configure"
-+#line 10247 "configure"
- #include "confdefs.h"
-
- #include <sys/sdt.h>
-@@ -10311,7 +10251,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10255: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10353,12 +10293,12 @@ case $target in
- do
- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:10357: checking for $ac_hdr" >&5
-+echo "configure:10297: checking for $ac_hdr" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10362 "configure"
-+#line 10302 "configure"
- #include "confdefs.h"
-
- #include <$ac_hdr>
-@@ -10366,7 +10306,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10370: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10310: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10418,12 +10358,12 @@ CFLAGS="$CFLAGS $LINUX_HEADERS_INCLUDES"
-
- ac_safe=`echo "linux/perf_event.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for linux/perf_event.h""... $ac_c" 1>&6
--echo "configure:10422: checking for linux/perf_event.h" >&5
-+echo "configure:10362: checking for linux/perf_event.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10427 "configure"
-+#line 10367 "configure"
- #include "confdefs.h"
-
- #include <linux/perf_event.h>
-@@ -10431,7 +10371,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10435: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10375: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10446,19 +10386,19 @@ fi
- if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
- echo "$ac_t""yes" 1>&6
- echo $ac_n "checking for perf_event_open system call""... $ac_c" 1>&6
--echo "configure:10450: checking for perf_event_open system call" >&5
-+echo "configure:10390: checking for perf_event_open system call" >&5
- if eval "test \"`echo '$''{'ac_cv_perf_event_open'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10455 "configure"
-+#line 10395 "configure"
- #include "confdefs.h"
- #include <asm/unistd.h>
- int main() {
- return sizeof(__NR_perf_event_open);
- ; return 0; }
- EOF
--if { (eval echo configure:10462: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_perf_event_open=yes
- else
-@@ -10494,7 +10434,7 @@ case $target in
- ;;
- *)
- echo $ac_n "checking for gethostbyname_r in -lc_r""... $ac_c" 1>&6
--echo "configure:10498: checking for gethostbyname_r in -lc_r" >&5
-+echo "configure:10438: checking for gethostbyname_r in -lc_r" >&5
- ac_lib_var=`echo c_r'_'gethostbyname_r | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10502,7 +10442,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lc_r $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10506 "configure"
-+#line 10446 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10513,7 +10453,7 @@ int main() {
- gethostbyname_r()
- ; return 0; }
- EOF
--if { (eval echo configure:10517: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10554,14 +10494,14 @@ case $target in
- *)
-
- echo $ac_n "checking for library containing dlopen""... $ac_c" 1>&6
--echo "configure:10558: checking for library containing dlopen" >&5
-+echo "configure:10498: checking for library containing dlopen" >&5
- if eval "test \"`echo '$''{'ac_cv_search_dlopen'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- ac_func_search_save_LIBS="$LIBS"
- ac_cv_search_dlopen="no"
- cat > conftest.$ac_ext <<EOF
--#line 10565 "configure"
-+#line 10505 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10572,7 +10512,7 @@ int main() {
- dlopen()
- ; return 0; }
- EOF
--if { (eval echo configure:10576: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10516: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_search_dlopen="none required"
- else
-@@ -10583,7 +10523,7 @@ rm -f conftest*
- test "$ac_cv_search_dlopen" = "no" && for i in dl; do
- LIBS="-l$i $ac_func_search_save_LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10587 "configure"
-+#line 10527 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10594,7 +10534,7 @@ int main() {
- dlopen()
- ; return 0; }
- EOF
--if { (eval echo configure:10598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10538: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_search_dlopen="-l$i"
- break
-@@ -10612,12 +10552,12 @@ if test "$ac_cv_search_dlopen" != "no"; then
- test "$ac_cv_search_dlopen" = "none required" || LIBS="$ac_cv_search_dlopen $LIBS"
- ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
--echo "configure:10616: checking for dlfcn.h" >&5
-+echo "configure:10556: checking for dlfcn.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10621 "configure"
-+#line 10561 "configure"
- #include "confdefs.h"
-
- #include <dlfcn.h>
-@@ -10625,7 +10565,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:10629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:10569: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -10662,12 +10602,12 @@ CFLAGS="$CFLAGS -D_GNU_SOURCE"
- for ac_func in dladdr
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:10666: checking for $ac_func" >&5
-+echo "configure:10606: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 10671 "configure"
-+#line 10611 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -10690,7 +10630,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:10694: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -10724,7 +10664,7 @@ if test ! "$GNU_CXX"; then
- case $target in
- *-aix*)
- echo $ac_n "checking for demangle in -lC_r""... $ac_c" 1>&6
--echo "configure:10728: checking for demangle in -lC_r" >&5
-+echo "configure:10668: checking for demangle in -lC_r" >&5
- ac_lib_var=`echo C_r'_'demangle | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10732,7 +10672,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lC_r $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10736 "configure"
-+#line 10676 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10743,7 +10683,7 @@ int main() {
- demangle()
- ; return 0; }
- EOF
--if { (eval echo configure:10747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10776,7 +10716,7 @@ fi
- ;;
- *)
- echo $ac_n "checking for demangle in -lC""... $ac_c" 1>&6
--echo "configure:10780: checking for demangle in -lC" >&5
-+echo "configure:10720: checking for demangle in -lC" >&5
- ac_lib_var=`echo C'_'demangle | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10784,7 +10724,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lC $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10788 "configure"
-+#line 10728 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10795,7 +10735,7 @@ int main() {
- demangle()
- ; return 0; }
- EOF
--if { (eval echo configure:10799: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10739: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10834,7 +10774,7 @@ case $target in
- ;;
- *)
- echo $ac_n "checking for socket in -lsocket""... $ac_c" 1>&6
--echo "configure:10838: checking for socket in -lsocket" >&5
-+echo "configure:10778: checking for socket in -lsocket" >&5
- ac_lib_var=`echo socket'_'socket | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -10842,7 +10782,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lsocket $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 10846 "configure"
-+#line 10786 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -10853,7 +10793,7 @@ int main() {
- socket()
- ; return 0; }
- EOF
--if { (eval echo configure:10857: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:10797: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -10892,7 +10832,7 @@ darwin*)
- *)
-
- echo $ac_n "checking for pthread_create in -lpthreads""... $ac_c" 1>&6
--echo "configure:10896: checking for pthread_create in -lpthreads" >&5
-+echo "configure:10836: checking for pthread_create in -lpthreads" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -10915,7 +10855,7 @@ echo "
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for pthread_create in -lpthread""... $ac_c" 1>&6
--echo "configure:10919: checking for pthread_create in -lpthread" >&5
-+echo "configure:10859: checking for pthread_create in -lpthread" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -10938,7 +10878,7 @@ echo "
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for pthread_create in -lc_r""... $ac_c" 1>&6
--echo "configure:10942: checking for pthread_create in -lc_r" >&5
-+echo "configure:10882: checking for pthread_create in -lc_r" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -10961,7 +10901,7 @@ echo "
- echo "$ac_t""no" 1>&6
-
- echo $ac_n "checking for pthread_create in -lc""... $ac_c" 1>&6
--echo "configure:10965: checking for pthread_create in -lc" >&5
-+echo "configure:10905: checking for pthread_create in -lc" >&5
- echo "
- #include <pthread.h>
- #include <stdlib.h>
-@@ -11020,7 +10960,7 @@ then
- rm -f conftest*
- ac_cv_have_dash_pthread=no
- echo $ac_n "checking whether ${CC-cc} accepts -pthread""... $ac_c" 1>&6
--echo "configure:11024: checking whether ${CC-cc} accepts -pthread" >&5
-+echo "configure:10964: checking whether ${CC-cc} accepts -pthread" >&5
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthread -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
-@@ -11043,7 +10983,7 @@ echo "configure:11024: checking whether ${CC-cc} accepts -pthread" >&5
- ac_cv_have_dash_pthreads=no
- if test "$ac_cv_have_dash_pthread" = "no"; then
- echo $ac_n "checking whether ${CC-cc} accepts -pthreads""... $ac_c" 1>&6
--echo "configure:11047: checking whether ${CC-cc} accepts -pthreads" >&5
-+echo "configure:10987: checking whether ${CC-cc} accepts -pthreads" >&5
- echo 'int main() { return 0; }' | cat > conftest.c
- ${CC-cc} -pthreads -o conftest conftest.c > conftest.out 2>&1
- if test $? -eq 0; then
-@@ -11148,13 +11088,13 @@ fi
-
- if test $ac_cv_prog_gcc = yes; then
- echo $ac_n "checking whether ${CC-cc} needs -traditional""... $ac_c" 1>&6
--echo "configure:11152: checking whether ${CC-cc} needs -traditional" >&5
-+echo "configure:11092: checking whether ${CC-cc} needs -traditional" >&5
- if eval "test \"`echo '$''{'ac_cv_prog_gcc_traditional'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- ac_pattern="Autoconf.*'x'"
- cat > conftest.$ac_ext <<EOF
--#line 11158 "configure"
-+#line 11098 "configure"
- #include "confdefs.h"
- #include <sgtty.h>
- Autoconf TIOCGETP
-@@ -11172,7 +11112,7 @@ rm -f conftest*
-
- if test $ac_cv_prog_gcc_traditional = no; then
- cat > conftest.$ac_ext <<EOF
--#line 11176 "configure"
-+#line 11116 "configure"
- #include "confdefs.h"
- #include <termio.h>
- Autoconf TCGETA
-@@ -11194,7 +11134,7 @@ echo "$ac_t""$ac_cv_prog_gcc_traditional" 1>&6
- fi
-
- echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
--echo "configure:11198: checking for 8-bit clean memcmp" >&5
-+echo "configure:11138: checking for 8-bit clean memcmp" >&5
- if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11202,7 +11142,7 @@ else
- ac_cv_func_memcmp_clean=no
- else
- cat > conftest.$ac_ext <<EOF
--#line 11206 "configure"
-+#line 11146 "configure"
- #include "confdefs.h"
-
- main()
-@@ -11212,7 +11152,7 @@ main()
- }
-
- EOF
--if { (eval echo configure:11216: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_func_memcmp_clean=yes
- else
-@@ -11234,12 +11174,12 @@ for ac_func in fchmod flockfile getc_unlocked _getc_nolock getpagesize \
- stat64 statvfs statvfs64 strerror strtok_r truncate64
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:11238: checking for $ac_func" >&5
-+echo "configure:11178: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11243 "configure"
-+#line 11183 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -11262,7 +11202,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:11266: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -11291,14 +11231,14 @@ done
-
-
- cat > conftest.$ac_ext <<EOF
--#line 11295 "configure"
-+#line 11235 "configure"
- #include "confdefs.h"
- #include <windows.h>
- int main() {
- SYSTEMTIME st;FILETIME ft;SystemTimeToFileTime(&st,&ft);
- ; return 0; }
- EOF
--if { (eval echo configure:11302: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11242: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_systemtimetofiletime="yes"
- else
-@@ -11318,14 +11258,14 @@ EOF
-
- fi
- cat > conftest.$ac_ext <<EOF
--#line 11322 "configure"
-+#line 11262 "configure"
- #include "confdefs.h"
- #include <windows.h>
- int main() {
- FILETIME ft;GetSystemTimeAsFileTime(&ft);
- ; return 0; }
- EOF
--if { (eval echo configure:11329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11269: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_getsystemtimeasfiletime="yes"
- else
-@@ -11355,19 +11295,19 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for wcrtomb""... $ac_c" 1>&6
--echo "configure:11359: checking for wcrtomb" >&5
-+echo "configure:11299: checking for wcrtomb" >&5
- if eval "test \"`echo '$''{'ac_cv_have_wcrtomb'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11364 "configure"
-+#line 11304 "configure"
- #include "confdefs.h"
- #include <wchar.h>
- int main() {
- mbstate_t ps={0};wcrtomb(0,'f',&ps);
- ; return 0; }
- EOF
--if { (eval echo configure:11371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11311: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_wcrtomb="yes"
- else
-@@ -11390,19 +11330,19 @@ EOF
-
- fi
- echo $ac_n "checking for mbrtowc""... $ac_c" 1>&6
--echo "configure:11394: checking for mbrtowc" >&5
-+echo "configure:11334: checking for mbrtowc" >&5
- if eval "test \"`echo '$''{'ac_cv_have_mbrtowc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11399 "configure"
-+#line 11339 "configure"
- #include "confdefs.h"
- #include <wchar.h>
- int main() {
- mbstate_t ps={0};mbrtowc(0,0,0,&ps);
- ; return 0; }
- EOF
--if { (eval echo configure:11406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_have_mbrtowc="yes"
- else
-@@ -11434,12 +11374,12 @@ cross_compiling=$ac_cv_prog_cc_cross
- fi
-
- echo $ac_n "checking for res_ninit()""... $ac_c" 1>&6
--echo "configure:11438: checking for res_ninit()" >&5
-+echo "configure:11378: checking for res_ninit()" >&5
- if eval "test \"`echo '$''{'ac_cv_func_res_ninit'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11443 "configure"
-+#line 11383 "configure"
- #include "confdefs.h"
-
- #ifdef linux
-@@ -11451,7 +11391,7 @@ int main() {
- int foo = res_ninit(&_res);
- ; return 0; }
- EOF
--if { (eval echo configure:11455: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11395: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_func_res_ninit=yes
- else
-@@ -11484,12 +11424,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes
- cross_compiling=$ac_cv_prog_cxx_cross
-
- echo $ac_n "checking for gnu_get_libc_version()""... $ac_c" 1>&6
--echo "configure:11488: checking for gnu_get_libc_version()" >&5
-+echo "configure:11428: checking for gnu_get_libc_version()" >&5
- if eval "test \"`echo '$''{'ac_cv_func_gnu_get_libc_version'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11493 "configure"
-+#line 11433 "configure"
- #include "confdefs.h"
-
- #ifdef HAVE_GNU_LIBC_VERSION_H
-@@ -11500,7 +11440,7 @@ int main() {
- const char *glibc_version = gnu_get_libc_version();
- ; return 0; }
- EOF
--if { (eval echo configure:11504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_func_gnu_get_libc_version=yes
- else
-@@ -11534,7 +11474,7 @@ cross_compiling=$ac_cv_prog_cc_cross
-
-
- echo $ac_n "checking for an implementation of va_copy()""... $ac_c" 1>&6
--echo "configure:11538: checking for an implementation of va_copy()" >&5
-+echo "configure:11478: checking for an implementation of va_copy()" >&5
- if eval "test \"`echo '$''{'ac_cv_va_copy'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11544,7 +11484,7 @@ else
-
- else
- cat > conftest.$ac_ext <<EOF
--#line 11548 "configure"
-+#line 11488 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -11558,7 +11498,7 @@ else
- }
- int main() { f (0, 42); return 0; }
- EOF
--if { (eval echo configure:11562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11502: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_va_copy=yes
- else
-@@ -11575,7 +11515,7 @@ fi
-
- echo "$ac_t""$ac_cv_va_copy" 1>&6
- echo $ac_n "checking for an implementation of __va_copy()""... $ac_c" 1>&6
--echo "configure:11579: checking for an implementation of __va_copy()" >&5
-+echo "configure:11519: checking for an implementation of __va_copy()" >&5
- if eval "test \"`echo '$''{'ac_cv___va_copy'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11585,7 +11525,7 @@ else
-
- else
- cat > conftest.$ac_ext <<EOF
--#line 11589 "configure"
-+#line 11529 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -11599,7 +11539,7 @@ else
- }
- int main() { f (0, 42); return 0; }
- EOF
--if { (eval echo configure:11603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11543: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv___va_copy=yes
- else
-@@ -11616,7 +11556,7 @@ fi
-
- echo "$ac_t""$ac_cv___va_copy" 1>&6
- echo $ac_n "checking whether va_lists can be copied by value""... $ac_c" 1>&6
--echo "configure:11620: checking whether va_lists can be copied by value" >&5
-+echo "configure:11560: checking whether va_lists can be copied by value" >&5
- if eval "test \"`echo '$''{'ac_cv_va_val_copy'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11626,7 +11566,7 @@ else
-
- else
- cat > conftest.$ac_ext <<EOF
--#line 11630 "configure"
-+#line 11570 "configure"
- #include "confdefs.h"
-
- #include <stdarg.h>
-@@ -11640,7 +11580,7 @@ else
- }
- int main() { f (0, 42); return 0; }
- EOF
--if { (eval echo configure:11644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11584: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_va_val_copy=yes
- else
-@@ -11710,12 +11650,12 @@ ARM_ABI_PREFIX=
- if test "$GNU_CC"; then
- if test "$CPU_ARCH" = "arm" ; then
- echo $ac_n "checking for ARM EABI""... $ac_c" 1>&6
--echo "configure:11714: checking for ARM EABI" >&5
-+echo "configure:11654: checking for ARM EABI" >&5
- if eval "test \"`echo '$''{'ac_cv_gcc_arm_eabi'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11719 "configure"
-+#line 11659 "configure"
- #include "confdefs.h"
-
- int main() {
-@@ -11728,7 +11668,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:11732: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11672: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_gcc_arm_eabi="yes"
- else
-@@ -11753,12 +11693,12 @@ echo "$ac_t""$ac_cv_gcc_arm_eabi" 1>&6
- fi
-
- echo $ac_n "checking for modern C++ template specialization syntax support""... $ac_c" 1>&6
--echo "configure:11757: checking for modern C++ template specialization syntax support" >&5
-+echo "configure:11697: checking for modern C++ template specialization syntax support" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_modern_specialize_template_syntax'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11762 "configure"
-+#line 11702 "configure"
- #include "confdefs.h"
- template <class T> struct X { int a; };
- class Y {};
-@@ -11768,7 +11708,7 @@ X<int> int_x;
- X<Y> y_x;
- ; return 0; }
- EOF
--if { (eval echo configure:11772: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11712: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cpp_modern_specialize_template_syntax=yes
- else
-@@ -11786,12 +11726,12 @@ if test "$ac_cv_cpp_modern_specialize_template_syntax" = no ; then
- fi
-
- echo $ac_n "checking whether partial template specialization works""... $ac_c" 1>&6
--echo "configure:11790: checking whether partial template specialization works" >&5
-+echo "configure:11730: checking whether partial template specialization works" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_partial_specialization'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11795 "configure"
-+#line 11735 "configure"
- #include "confdefs.h"
- template <class T> class Foo {};
- template <class T> class Foo<T*> {};
-@@ -11799,7 +11739,7 @@ int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:11803: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11743: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cpp_partial_specialization=yes
- else
-@@ -11823,12 +11763,12 @@ EOF
- fi
-
- echo $ac_n "checking whether the C++ \"using\" keyword resolves ambiguity""... $ac_c" 1>&6
--echo "configure:11827: checking whether the C++ \"using\" keyword resolves ambiguity" >&5
-+echo "configure:11767: checking whether the C++ \"using\" keyword resolves ambiguity" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_ambiguity_resolving_using'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11832 "configure"
-+#line 11772 "configure"
- #include "confdefs.h"
- class X {
- public: int go(const X&) {return 3;}
-@@ -11844,7 +11784,7 @@ int main() {
- X x; Y y; y.jo(x);
- ; return 0; }
- EOF
--if { (eval echo configure:11848: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11788: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_cpp_ambiguity_resolving_using=yes
- else
-@@ -11868,7 +11808,7 @@ EOF
- fi
-
- echo $ac_n "checking for C++ dynamic_cast to void*""... $ac_c" 1>&6
--echo "configure:11872: checking for C++ dynamic_cast to void*" >&5
-+echo "configure:11812: checking for C++ dynamic_cast to void*" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_dynamic_cast_void_ptr'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -11876,7 +11816,7 @@ else
- ac_cv_cpp_dynamic_cast_void_ptr=no
- else
- cat > conftest.$ac_ext <<EOF
--#line 11880 "configure"
-+#line 11820 "configure"
- #include "confdefs.h"
- class X { int i; public: virtual ~X() { } };
- class Y { int j; public: virtual ~Y() { } };
-@@ -11892,7 +11832,7 @@ class X { int i; public: virtual ~X() { } };
- ((void*)&mdo == dynamic_cast<void*>(suby))));
- }
- EOF
--if { (eval echo configure:11896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:11836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_cpp_dynamic_cast_void_ptr=yes
- else
-@@ -11919,19 +11859,19 @@ fi
-
-
- echo $ac_n "checking whether C++ requires implementation of unused virtual methods""... $ac_c" 1>&6
--echo "configure:11923: checking whether C++ requires implementation of unused virtual methods" >&5
-+echo "configure:11863: checking whether C++ requires implementation of unused virtual methods" >&5
- if eval "test \"`echo '$''{'ac_cv_cpp_unused_required'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11928 "configure"
-+#line 11868 "configure"
- #include "confdefs.h"
- class X {private: virtual void never_called();};
- int main() {
- X x;
- ; return 0; }
- EOF
--if { (eval echo configure:11935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11875: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_cpp_unused_required=no
- else
-@@ -11957,12 +11897,12 @@ fi
-
-
- echo $ac_n "checking for trouble comparing to zero near std::operator!=()""... $ac_c" 1>&6
--echo "configure:11961: checking for trouble comparing to zero near std::operator!=()" >&5
-+echo "configure:11901: checking for trouble comparing to zero near std::operator!=()" >&5
- if eval "test \"`echo '$''{'ac_cv_trouble_comparing_to_zero'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 11966 "configure"
-+#line 11906 "configure"
- #include "confdefs.h"
- #include <algorithm>
- template <class T> class Foo {};
-@@ -11973,7 +11913,7 @@ int main() {
- Foo<int> f; return (0 != f);
- ; return 0; }
- EOF
--if { (eval echo configure:11977: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:11917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_trouble_comparing_to_zero=no
- else
-@@ -12003,19 +11943,19 @@ fi
- _SAVE_LDFLAGS=$LDFLAGS
- LDFLAGS="$LDFLAGS $DSO_PIC_CFLAGS $DSO_LDOPTS $MOZ_OPTIMIZE_LDFLAGS"
- echo $ac_n "checking for __thread keyword for TLS variables""... $ac_c" 1>&6
--echo "configure:12007: checking for __thread keyword for TLS variables" >&5
-+echo "configure:11947: checking for __thread keyword for TLS variables" >&5
- if eval "test \"`echo '$''{'ac_cv_thread_keyword'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12012 "configure"
-+#line 11952 "configure"
- #include "confdefs.h"
- __thread bool tlsIsMainThread = false;
- int main() {
- return tlsIsMainThread;
- ; return 0; }
- EOF
--if { (eval echo configure:12019: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:11959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv_thread_keyword=yes
- else
-@@ -12055,12 +11995,12 @@ fi
- MALLOC_H=
- ac_safe=`echo "malloc.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for malloc.h""... $ac_c" 1>&6
--echo "configure:12059: checking for malloc.h" >&5
-+echo "configure:11999: checking for malloc.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12064 "configure"
-+#line 12004 "configure"
- #include "confdefs.h"
-
- #include <malloc.h>
-@@ -12068,7 +12008,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12072: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -12091,12 +12031,12 @@ fi
- if test "$MALLOC_H" = ""; then
- ac_safe=`echo "malloc/malloc.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for malloc/malloc.h""... $ac_c" 1>&6
--echo "configure:12095: checking for malloc/malloc.h" >&5
-+echo "configure:12035: checking for malloc/malloc.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12100 "configure"
-+#line 12040 "configure"
- #include "confdefs.h"
-
- #include <malloc/malloc.h>
-@@ -12104,7 +12044,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12108: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12048: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -12127,12 +12067,12 @@ fi
- if test "$MALLOC_H" = ""; then
- ac_safe=`echo "sys/malloc.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for sys/malloc.h""... $ac_c" 1>&6
--echo "configure:12131: checking for sys/malloc.h" >&5
-+echo "configure:12071: checking for sys/malloc.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12136 "configure"
-+#line 12076 "configure"
- #include "confdefs.h"
-
- #include <sys/malloc.h>
-@@ -12140,7 +12080,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12084: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -12176,12 +12116,12 @@ MOZ_ALLOCATING_FUNCS="strndup posix_memalign memalign valloc"
- for ac_func in strndup posix_memalign memalign valloc
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:12180: checking for $ac_func" >&5
-+echo "configure:12120: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12185 "configure"
-+#line 12125 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -12207,7 +12147,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:12211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:12151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -12237,19 +12177,19 @@ done
-
-
- echo $ac_n "checking for __attribute__((always_inline))""... $ac_c" 1>&6
--echo "configure:12241: checking for __attribute__((always_inline))" >&5
-+echo "configure:12181: checking for __attribute__((always_inline))" >&5
- if eval "test \"`echo '$''{'ac_cv_attribute_always_inline'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12246 "configure"
-+#line 12186 "configure"
- #include "confdefs.h"
- inline void f(void) __attribute__((always_inline));
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12193: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_attribute_always_inline=yes
- else
-@@ -12264,19 +12204,19 @@ fi
- echo "$ac_t""$ac_cv_attribute_always_inline" 1>&6
-
- echo $ac_n "checking for __attribute__((malloc))""... $ac_c" 1>&6
--echo "configure:12268: checking for __attribute__((malloc))" >&5
-+echo "configure:12208: checking for __attribute__((malloc))" >&5
- if eval "test \"`echo '$''{'ac_cv_attribute_malloc'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12273 "configure"
-+#line 12213 "configure"
- #include "confdefs.h"
- void* f(int) __attribute__((malloc));
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12280: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12220: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_attribute_malloc=yes
- else
-@@ -12291,19 +12231,19 @@ fi
- echo "$ac_t""$ac_cv_attribute_malloc" 1>&6
-
- echo $ac_n "checking for __attribute__((warn_unused_result))""... $ac_c" 1>&6
--echo "configure:12295: checking for __attribute__((warn_unused_result))" >&5
-+echo "configure:12235: checking for __attribute__((warn_unused_result))" >&5
- if eval "test \"`echo '$''{'ac_cv_attribute_warn_unused'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12300 "configure"
-+#line 12240 "configure"
- #include "confdefs.h"
- int f(void) __attribute__((warn_unused_result));
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:12307: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_attribute_warn_unused=yes
- else
-@@ -12327,19 +12267,19 @@ cross_compiling=$ac_cv_prog_cc_cross
-
-
- echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
--echo "configure:12331: checking for LC_MESSAGES" >&5
-+echo "configure:12271: checking for LC_MESSAGES" >&5
- if eval "test \"`echo '$''{'ac_cv_i18n_lc_messages'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12336 "configure"
-+#line 12276 "configure"
- #include "confdefs.h"
- #include <locale.h>
- int main() {
- int category = LC_MESSAGES;
- ; return 0; }
- EOF
--if { (eval echo configure:12343: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12283: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_i18n_lc_messages=yes
- else
-@@ -12365,12 +12305,12 @@ fi
- for ac_func in localeconv
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:12369: checking for $ac_func" >&5
-+echo "configure:12309: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 12374 "configure"
-+#line 12314 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -12393,7 +12333,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:12397: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:12337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -12580,7 +12520,7 @@ fi
- # Extract the first word of "nspr-config", so it can be a program name with args.
- set dummy nspr-config; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:12584: checking for $ac_word" >&5
-+echo "configure:12524: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_NSPR_CONFIG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -12615,7 +12555,7 @@ fi
-
- min_nspr_version=$NSPR_MINVER
- echo $ac_n "checking for NSPR - version >= $min_nspr_version""... $ac_c" 1>&6
--echo "configure:12619: checking for NSPR - version >= $min_nspr_version" >&5
-+echo "configure:12559: checking for NSPR - version >= $min_nspr_version" >&5
-
- no_nspr=""
- if test "$NSPR_CONFIG" != "no"; then
-@@ -12678,7 +12618,7 @@ if test -n "$MOZ_NATIVE_NSPR"; then
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $NSPR_CFLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 12682 "configure"
-+#line 12622 "configure"
- #include "confdefs.h"
- #include "prlog.h"
- int main() {
-@@ -12687,7 +12627,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:12691: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12631: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- MOZ_NATIVE_NSPR=1
- else
-@@ -12729,7 +12669,7 @@ if test -z "$MOZ_ZLIB_LIBS$MOZ_ZLIB_CFLAGS$SKIP_LIBRARY_CHECKS"; then
- MOZ_NATIVE_ZLIB=
- else
- echo $ac_n "checking for gzread in -lz""... $ac_c" 1>&6
--echo "configure:12733: checking for gzread in -lz" >&5
-+echo "configure:12673: checking for gzread in -lz" >&5
- ac_lib_var=`echo z'_'gzread | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -12737,7 +12677,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lz $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 12741 "configure"
-+#line 12681 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -12748,7 +12688,7 @@ int main() {
- gzread()
- ; return 0; }
- EOF
--if { (eval echo configure:12752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:12692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -12772,7 +12712,7 @@ fi
- if test "$MOZ_NATIVE_ZLIB" = 1; then
- MOZZLIBNUM=`echo $MOZZLIB | awk -F. '{printf "0x%x\n", ((($1 * 16 + $2) * 16) + $3) * 16 + $4}'`
- cat > conftest.$ac_ext <<EOF
--#line 12776 "configure"
-+#line 12716 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- #include <string.h>
-@@ -12783,7 +12723,7 @@ int main() {
- #endif
- ; return 0; }
- EOF
--if { (eval echo configure:12787: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:12727: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- MOZ_NATIVE_ZLIB=1
- else
-@@ -12829,7 +12769,7 @@ if test -n "$MOZ_NATIVE_FFI"; then
- # Extract the first word of "pkg-config", so it can be a program name with args.
- set dummy pkg-config; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:12833: checking for $ac_word" >&5
-+echo "configure:12773: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -12873,19 +12813,19 @@ fi
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo $ac_n "checking for libffi > 3.0.9""... $ac_c" 1>&6
--echo "configure:12877: checking for libffi > 3.0.9" >&5
-+echo "configure:12817: checking for libffi > 3.0.9" >&5
-
- if $PKG_CONFIG --exists "libffi > 3.0.9" ; then
- echo "$ac_t""yes" 1>&6
- succeeded=yes
-
- echo $ac_n "checking MOZ_FFI_CFLAGS""... $ac_c" 1>&6
--echo "configure:12884: checking MOZ_FFI_CFLAGS" >&5
-+echo "configure:12824: checking MOZ_FFI_CFLAGS" >&5
- MOZ_FFI_CFLAGS=`$PKG_CONFIG --cflags "libffi > 3.0.9"`
- echo "$ac_t""$MOZ_FFI_CFLAGS" 1>&6
-
- echo $ac_n "checking MOZ_FFI_LIBS""... $ac_c" 1>&6
--echo "configure:12889: checking MOZ_FFI_LIBS" >&5
-+echo "configure:12829: checking MOZ_FFI_LIBS" >&5
- ## Remove evil flags like -Wl,--export-dynamic
- MOZ_FFI_LIBS="`$PKG_CONFIG --libs \"libffi > 3.0.9\" |sed s/-Wl,--export-dynamic//g`"
- echo "$ac_t""$MOZ_FFI_LIBS" 1>&6
-@@ -12921,7 +12861,7 @@ echo "configure:12889: checking MOZ_FFI_LIBS" >&5
- # Extract the first word of "pkg-config", so it can be a program name with args.
- set dummy pkg-config; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:12925: checking for $ac_word" >&5
-+echo "configure:12865: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_PKG_CONFIG'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -12965,19 +12905,19 @@ fi
- PKG_CONFIG_MIN_VERSION=0.9.0
- if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
- echo $ac_n "checking for libffi >= 3.0.9""... $ac_c" 1>&6
--echo "configure:12969: checking for libffi >= 3.0.9" >&5
-+echo "configure:12909: checking for libffi >= 3.0.9" >&5
-
- if $PKG_CONFIG --exists "libffi >= 3.0.9" ; then
- echo "$ac_t""yes" 1>&6
- succeeded=yes
-
- echo $ac_n "checking MOZ_FFI_CFLAGS""... $ac_c" 1>&6
--echo "configure:12976: checking MOZ_FFI_CFLAGS" >&5
-+echo "configure:12916: checking MOZ_FFI_CFLAGS" >&5
- MOZ_FFI_CFLAGS=`$PKG_CONFIG --cflags "libffi >= 3.0.9"`
- echo "$ac_t""$MOZ_FFI_CFLAGS" 1>&6
-
- echo $ac_n "checking MOZ_FFI_LIBS""... $ac_c" 1>&6
--echo "configure:12981: checking MOZ_FFI_LIBS" >&5
-+echo "configure:12921: checking MOZ_FFI_LIBS" >&5
- ## Remove evil flags like -Wl,--export-dynamic
- MOZ_FFI_LIBS="`$PKG_CONFIG --libs \"libffi >= 3.0.9\" |sed s/-Wl,--export-dynamic//g`"
- echo "$ac_t""$MOZ_FFI_LIBS" 1>&6
-@@ -13112,18 +13052,18 @@ MOZ_DEBUG_DISABLE_DEFS="-DNDEBUG -DTRIMMED"
-
- if test -n "$MOZ_DEBUG"; then
- echo $ac_n "checking for valid debug flags""... $ac_c" 1>&6
--echo "configure:13116: checking for valid debug flags" >&5
-+echo "configure:13056: checking for valid debug flags" >&5
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $MOZ_DEBUG_FLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 13120 "configure"
-+#line 13060 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main() {
- printf("Hello World\n");
- ; return 0; }
- EOF
--if { (eval echo configure:13127: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:13067: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _results=yes
- else
-@@ -13201,18 +13141,18 @@ fi
- if test "$COMPILE_ENVIRONMENT"; then
- if test -n "$MOZ_OPTIMIZE"; then
- echo $ac_n "checking for valid optimization flags""... $ac_c" 1>&6
--echo "configure:13205: checking for valid optimization flags" >&5
-+echo "configure:13145: checking for valid optimization flags" >&5
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $MOZ_OPTIMIZE_FLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 13209 "configure"
-+#line 13149 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main() {
- printf("Hello World\n");
- ; return 0; }
- EOF
--if { (eval echo configure:13216: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:13156: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- _results=yes
- else
-@@ -13364,7 +13304,7 @@ EOF
- fi
- else
- echo $ac_n "checking size of int *""... $ac_c" 1>&6
--echo "configure:13368: checking size of int *" >&5
-+echo "configure:13308: checking size of int *" >&5
- if eval "test \"`echo '$''{'ac_cv_sizeof_int_p'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -13372,7 +13312,7 @@ else
- ac_cv_sizeof_int_p=4
- else
- cat > conftest.$ac_ext <<EOF
--#line 13376 "configure"
-+#line 13316 "configure"
- #include "confdefs.h"
- #include <stdio.h>
- int main()
-@@ -13383,7 +13323,7 @@ int main()
- return(0);
- }
- EOF
--if { (eval echo configure:13387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
-+if { (eval echo configure:13327: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
- then
- ac_cv_sizeof_int_p=`cat conftestval`
- else
-@@ -13687,12 +13627,12 @@ fi
- if test -n "$MOZ_VALGRIND"; then
- ac_safe=`echo "valgrind/valgrind.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for valgrind/valgrind.h""... $ac_c" 1>&6
--echo "configure:13691: checking for valgrind/valgrind.h" >&5
-+echo "configure:13631: checking for valgrind/valgrind.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 13696 "configure"
-+#line 13636 "configure"
- #include "confdefs.h"
-
- #include <valgrind/valgrind.h>
-@@ -13700,7 +13640,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:13704: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:13644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -13973,7 +13913,7 @@ do
- # Extract the first word of "$ac_prog", so it can be a program name with args.
- set dummy $ac_prog; ac_word=$2
- echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:13977: checking for $ac_word" >&5
-+echo "configure:13917: checking for $ac_word" >&5
- if eval "test \"`echo '$''{'ac_cv_path_CCACHE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -14099,12 +14039,12 @@ cross_compiling=$ac_cv_prog_cxx_cross
- for ac_func in __cxa_demangle
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:14103: checking for $ac_func" >&5
-+echo "configure:14043: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14108 "configure"
-+#line 14048 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -14130,7 +14070,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:14134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -14184,12 +14124,12 @@ fi
- if test -z "$SKIP_LIBRARY_CHECKS"; then
- ac_safe=`echo "unwind.h" | sed 'y%./+-%__p_%'`
- echo $ac_n "checking for unwind.h""... $ac_c" 1>&6
--echo "configure:14188: checking for unwind.h" >&5
-+echo "configure:14128: checking for unwind.h" >&5
- if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14193 "configure"
-+#line 14133 "configure"
- #include "confdefs.h"
-
- #include <unwind.h>
-@@ -14197,7 +14137,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:14201: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14141: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- eval "ac_cv_header_$ac_safe=yes"
- else
-@@ -14214,12 +14154,12 @@ fi
- for ac_func in _Unwind_Backtrace
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:14218: checking for $ac_func" >&5
-+echo "configure:14158: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14223 "configure"
-+#line 14163 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -14242,7 +14182,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:14246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14186: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -14334,7 +14274,7 @@ if test -z "$SKIP_COMPILER_CHECKS"; then
- # Compiler Options
-
- echo $ac_n "checking for -pipe support""... $ac_c" 1>&6
--echo "configure:14338: checking for -pipe support" >&5
-+echo "configure:14278: checking for -pipe support" >&5
- if test -n "$GNU_CC" -a -n "$GNU_CXX"; then
- CFLAGS="$CFLAGS -pipe"
- CXXFLAGS="$CXXFLAGS -pipe"
-@@ -14348,16 +14288,16 @@ _SAVE_CFLAGS="$CFLAGS"
- CFLAGS="$CFLAGS -fprofile-generate -fprofile-correction"
-
- echo $ac_n "checking whether C compiler supports -fprofile-generate""... $ac_c" 1>&6
--echo "configure:14352: checking whether C compiler supports -fprofile-generate" >&5
-+echo "configure:14292: checking whether C compiler supports -fprofile-generate" >&5
- cat > conftest.$ac_ext <<EOF
--#line 14354 "configure"
-+#line 14294 "configure"
- #include "confdefs.h"
-
- int main() {
- return 0;
- ; return 0; }
- EOF
--if { (eval echo configure:14361: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- PROFILE_GEN_CFLAGS="-fprofile-generate"
- result="yes"
-@@ -14421,16 +14361,16 @@ if test "$_PEDANTIC"; then
- _SAVE_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS -pedantic ${_WARNINGS_CXXFLAGS} -Wno-long-long"
- echo $ac_n "checking whether C++ compiler has -pedantic long long bug""... $ac_c" 1>&6
--echo "configure:14425: checking whether C++ compiler has -pedantic long long bug" >&5
-+echo "configure:14365: checking whether C++ compiler has -pedantic long long bug" >&5
- cat > conftest.$ac_ext <<EOF
--#line 14427 "configure"
-+#line 14367 "configure"
- #include "confdefs.h"
- $configure_static_assert_macros
- int main() {
- CONFIGURE_STATIC_ASSERT(sizeof(long long) == 8)
- ; return 0; }
- EOF
--if { (eval echo configure:14434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14374: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- result="no"
- else
-@@ -14457,12 +14397,12 @@ fi
- _SAVE_CXXFLAGS=$CXXFLAGS
- CXXFLAGS="$CXXFLAGS ${_WARNINGS_CXXFLAGS}"
- echo $ac_n "checking for correct overload resolution with const and templates""... $ac_c" 1>&6
--echo "configure:14461: checking for correct overload resolution with const and templates" >&5
-+echo "configure:14401: checking for correct overload resolution with const and templates" >&5
- if eval "test \"`echo '$''{'ac_nscap_nonconst_opeq_bug'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14466 "configure"
-+#line 14406 "configure"
- #include "confdefs.h"
-
- template <class T>
-@@ -14492,7 +14432,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:14496: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14436: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_nscap_nonconst_opeq_bug="no"
- else
-@@ -14518,19 +14458,19 @@ EOF
- fi
-
- echo $ac_n "checking for tm_zone tm_gmtoff in struct tm""... $ac_c" 1>&6
--echo "configure:14522: checking for tm_zone tm_gmtoff in struct tm" >&5
-+echo "configure:14462: checking for tm_zone tm_gmtoff in struct tm" >&5
- if eval "test \"`echo '$''{'ac_cv_struct_tm_zone_tm_gmtoff'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 14527 "configure"
-+#line 14467 "configure"
- #include "confdefs.h"
- #include <time.h>
- int main() {
- struct tm tm; tm.tm_zone = 0; tm.tm_gmtoff = 1;
- ; return 0; }
- EOF
--if { (eval echo configure:14534: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14474: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- rm -rf conftest*
- ac_cv_struct_tm_zone_tm_gmtoff="yes"
- else
-@@ -14572,18 +14512,18 @@ cross_compiling=$ac_cv_prog_cc_cross
-
-
- echo $ac_n "checking what kind of list files are supported by the linker""... $ac_c" 1>&6
--echo "configure:14576: checking what kind of list files are supported by the linker" >&5
-+echo "configure:14516: checking what kind of list files are supported by the linker" >&5
- if eval "test \"`echo '$''{'EXPAND_LIBS_LIST_STYLE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- echo "int main() {return 0;}" > conftest.${ac_ext}
-- if { ac_try='${CC-cc} -o conftest.${OBJ_SUFFIX} -c $CFLAGS $CPPFLAGS conftest.${ac_ext} 1>&5'; { (eval echo configure:14581: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.${OBJ_SUFFIX}; then
-+ if { ac_try='${CC-cc} -o conftest.${OBJ_SUFFIX} -c $CFLAGS $CPPFLAGS conftest.${ac_ext} 1>&5'; { (eval echo configure:14521: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest.${OBJ_SUFFIX}; then
- echo "INPUT(conftest.${OBJ_SUFFIX})" > conftest.list
-- if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.list $LIBS 1>&5'; { (eval echo configure:14583: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
-+ if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS conftest.list $LIBS 1>&5'; { (eval echo configure:14523: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
- EXPAND_LIBS_LIST_STYLE=linkerscript
- else
- echo "conftest.${OBJ_SUFFIX}" > conftest.list
-- if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS @conftest.list $LIBS 1>&5'; { (eval echo configure:14587: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
-+ if { ac_try='${CC-cc} -o conftest${ac_exeext} $LDFLAGS @conftest.list $LIBS 1>&5'; { (eval echo configure:14527: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } && test -s conftest${ac_exeext}; then
- EXPAND_LIBS_LIST_STYLE=list
- else
- EXPAND_LIBS_LIST_STYLE=none
-@@ -14603,7 +14543,7 @@ LIBS_DESC_SUFFIX=desc
-
- if test "$GCC_USE_GNU_LD"; then
- echo $ac_n "checking what kind of ordering can be done with the linker""... $ac_c" 1>&6
--echo "configure:14607: checking what kind of ordering can be done with the linker" >&5
-+echo "configure:14547: checking what kind of ordering can be done with the linker" >&5
- if eval "test \"`echo '$''{'EXPAND_LIBS_ORDER_STYLE'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
-@@ -14611,14 +14551,14 @@ else
- _SAVE_LDFLAGS="$LDFLAGS"
- LDFLAGS="${LDFLAGS} -Wl,--section-ordering-file,conftest.order"
- cat > conftest.$ac_ext <<EOF
--#line 14615 "configure"
-+#line 14555 "configure"
- #include "confdefs.h"
-
- int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:14622: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14562: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- EXPAND_LIBS_ORDER_STYLE=section-ordering-file
- else
-@@ -14630,7 +14570,7 @@ fi
- rm -f conftest*
- LDFLAGS="$_SAVE_LDFLAGS"
- if test -z "$EXPAND_LIBS_ORDER_STYLE"; then
-- if { ac_try='${CC-cc} ${DSO_LDOPTS} ${LDFLAGS} -o ${DLL_PREFIX}conftest${DLL_SUFFIX} -Wl'; { (eval echo configure:14634: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
-+ if { ac_try='${CC-cc} ${DSO_LDOPTS} ${LDFLAGS} -o ${DLL_PREFIX}conftest${DLL_SUFFIX} -Wl'; { (eval echo configure:14574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; }; then
- EXPAND_LIBS_ORDER_STYLE=linkerscript
- else
- EXPAND_LIBS_ORDER_STYLE=none
-@@ -14741,7 +14681,7 @@ esac
- if test -z "$SKIP_LIBRARY_CHECKS" -a -z "$NO_EDITLINE"; then
- if test -n "$JS_WANT_READLINE"; then
- echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
--echo "configure:14745: checking for readline in -lreadline" >&5
-+echo "configure:14685: checking for readline in -lreadline" >&5
- ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
- if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
-@@ -14749,7 +14689,7 @@ else
- ac_save_LIBS="$LIBS"
- LIBS="-lreadline $LIBS"
- cat > conftest.$ac_ext <<EOF
--#line 14753 "configure"
-+#line 14693 "configure"
- #include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
- /* We use char because int might match the return type of a gcc2
-@@ -14760,7 +14700,7 @@ int main() {
- readline()
- ; return 0; }
- EOF
--if { (eval echo configure:14764: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14704: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_lib_$ac_lib_var=yes"
- else
-@@ -14990,9 +14930,9 @@ EOF
-
-
- echo $ac_n "checking for posix_fallocate""... $ac_c" 1>&6
--echo "configure:14994: checking for posix_fallocate" >&5
-+echo "configure:14934: checking for posix_fallocate" >&5
- cat > conftest.$ac_ext <<EOF
--#line 14996 "configure"
-+#line 14936 "configure"
- #include "confdefs.h"
- #define _XOPEN_SOURCE 600
- #include <fcntl.h>
-@@ -15000,7 +14940,7 @@ int main() {
- posix_fallocate(0, 0, 0);
- ; return 0; }
- EOF
--if { (eval echo configure:15004: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:14944: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- ac_cv___posix_fallocate=true
- else
-@@ -15029,7 +14969,7 @@ if test "$MOZ_X11"; then
- _SAVE_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS $XCFLAGS"
- cat > conftest.$ac_ext <<EOF
--#line 15033 "configure"
-+#line 14973 "configure"
- #include "confdefs.h"
-
- #include <stdio.h>
-@@ -15047,7 +14987,7 @@ int main() {
-
- ; return 0; }
- EOF
--if { (eval echo configure:15051: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
-+if { (eval echo configure:14991: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
- :
- else
- echo "configure: failed program was:" >&5
-@@ -15162,12 +15102,12 @@ fi
- for ac_func in setlocale
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:15166: checking for $ac_func" >&5
-+echo "configure:15106: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 15171 "configure"
-+#line 15111 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -15190,7 +15130,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:15194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:15134: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
-@@ -15220,12 +15160,12 @@ done
- for ac_func in localeconv
- do
- echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:15224: checking for $ac_func" >&5
-+echo "configure:15164: checking for $ac_func" >&5
- if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
- echo $ac_n "(cached) $ac_c" 1>&6
- else
- cat > conftest.$ac_ext <<EOF
--#line 15229 "configure"
-+#line 15169 "configure"
- #include "confdefs.h"
- /* System header to define __stub macros and hopefully few prototypes,
- which can conflict with char $ac_func(); below. */
-@@ -15248,7 +15188,7 @@ $ac_func();
-
- ; return 0; }
- EOF
--if { (eval echo configure:15252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-+if { (eval echo configure:15192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
- rm -rf conftest*
- eval "ac_cv_func_$ac_func=yes"
- else
---
-1.9.3
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch b/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch
deleted file mode 100644
index 6aeb2f6836..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From d4a15ad82292ff6d772dcc631df98754d20be31b Mon Sep 17 00:00:00 2001
-From: Colin Walters <walters@verbum.org>
-Date: Tue, 18 Mar 2014 11:46:05 -0400
-Subject: [PATCH 2/5] Move JS_BYTES_PER_WORD out of config.h
-
-Instead define it in terms of the already extant GNU C extension
-__SIZEOF_POINTER__. This avoids multiarch conflicts when 32 and 64
-bit packages of js are co-installed.
----
-
-Upstream-status: Pending
-
- js/src/configure.in | 9 ---------
- js/src/js-config.h.in | 1 -
- js/src/jstypes.h | 12 ++++++++++++
- 3 files changed, 12 insertions(+), 10 deletions(-)
-
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 15605b2..64c7606 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -2345,15 +2345,6 @@ else
- AC_MSG_RESULT(no)
- fi
-
--MOZ_SIZE_OF_TYPE(JS_BYTES_PER_WORD, void*, 4 8)
--if test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "4"; then
-- AC_DEFINE(JS_BITS_PER_WORD_LOG2, 5)
--elif test "$moz_cv_size_of_JS_BYTES_PER_WORD" -eq "8"; then
-- AC_DEFINE(JS_BITS_PER_WORD_LOG2, 6)
--else
-- AC_MSG_ERROR([Unexpected JS_BYTES_PER_WORD])
--fi
--
- MOZ_ALIGN_OF_TYPE(JS_ALIGN_OF_POINTER, void*, 2 4 8 16)
- MOZ_SIZE_OF_TYPE(JS_BYTES_PER_DOUBLE, double, 6 8 10 12 14)
-
-diff --git a/js/src/js-config.h.in b/js/src/js-config.h.in
-index 6889e00..4775420 100644
---- a/js/src/js-config.h.in
-+++ b/js/src/js-config.h.in
-@@ -56,7 +56,6 @@
- #undef JS_INT32_TYPE
- #undef JS_INT64_TYPE
- #undef JS_INTPTR_TYPE
--#undef JS_BYTES_PER_WORD
-
- /* Some mozilla code uses JS-friend APIs that depend on JS_METHODJIT being
- correct. */
-diff --git a/js/src/jstypes.h b/js/src/jstypes.h
-index d0cf183..3e7928f 100644
---- a/js/src/jstypes.h
-+++ b/js/src/jstypes.h
-@@ -24,6 +24,18 @@
- #include "mozilla/Util.h"
-
- #include "js-config.h"
-+#ifndef JS_BYTES_PER_WORD
-+#define JS_BYTES_PER_WORD __SIZEOF_POINTER__
-+#endif
-+#ifndef JS_BITS_PER_WORD_LOG2
-+#if JS_BYTES_PER_WORD == 8
-+#define JS_BITS_PER_WORD_LOG2 6
-+#elif JS_BYTES_PER_WORD == 4
-+#define JS_BITS_PER_WORD_LOG2 5
-+#else
-+#error Unhandled JS_BYTES_PER_WORD
-+#endif
-+#endif
-
- /***********************************************************************
- ** MACROS: JS_EXTERN_API
---
-1.9.3
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch b/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch
deleted file mode 100644
index 8bd35d4055..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0004-mozbug746112-no-decommit-on-large-pages.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 0128c5a9eeee0d3fc0deb9129dd20eb79338c8f4 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Mon, 2 Mar 2015 19:08:59 +0800
-Subject: [PATCH 4/5] mozbug746112-no-decommit-on-large-pages
-
----
-Upstream-status: Pending
-
- js/src/gc/Heap.h | 15 ++++++++++-----
- js/src/jsgc.cpp | 15 ++++++++++++---
- 2 files changed, 22 insertions(+), 8 deletions(-)
-
-diff --git a/js/src/gc/Heap.h b/js/src/gc/Heap.h
-index b8f8c78..1cfd269 100644
---- a/js/src/gc/Heap.h
-+++ b/js/src/gc/Heap.h
-@@ -103,26 +103,31 @@ struct Cell
- };
-
- /*
-- * Page size is 4096 by default, except for SPARC, where it is 8192.
-+ * Page size must be static to support our arena pointer optimizations, so we
-+ * are forced to support each platform with non-4096 pages as a special case.
-+ * Note: The freelist supports a maximum arena shift of 15.
- * Note: Do not use JS_CPU_SPARC here, this header is used outside JS.
- * Bug 692267: Move page size definition to gc/Memory.h and include it
- * directly once jsgc.h is no longer an installed header.
- */
- #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9))
- const size_t PageShift = 13;
-+const size_t ArenaShift = PageShift;
-+#elif defined(__powerpc__)
-+const size_t PageShift = 16;
-+const size_t ArenaShift = 12;
- #else
- const size_t PageShift = 12;
-+const size_t ArenaShift = PageShift;
- #endif
- const size_t PageSize = size_t(1) << PageShift;
-+const size_t ArenaSize = size_t(1) << ArenaShift;
-+const size_t ArenaMask = ArenaSize - 1;
-
- const size_t ChunkShift = 20;
- const size_t ChunkSize = size_t(1) << ChunkShift;
- const size_t ChunkMask = ChunkSize - 1;
-
--const size_t ArenaShift = PageShift;
--const size_t ArenaSize = PageSize;
--const size_t ArenaMask = ArenaSize - 1;
--
- /*
- * This is the maximum number of arenas we allow in the FreeCommitted state
- * before we trigger a GC_SHRINK to release free arenas to the OS.
-diff --git a/js/src/jsgc.cpp b/js/src/jsgc.cpp
-index b3caf05..a258d2d 100644
---- a/js/src/jsgc.cpp
-+++ b/js/src/jsgc.cpp
-@@ -251,6 +251,13 @@ static const int BackgroundPhaseLength[] = {
- sizeof(BackgroundPhaseStrings) / sizeof(AllocKind)
- };
-
-+/* Unused memory decommiting requires the arena size match the page size. */
-+static bool
-+DecommitEnabled()
-+{
-+ return PageSize == ArenaSize;
-+}
-+
- #ifdef DEBUG
- void
- ArenaHeader::checkSynchronizedWithFreeList() const
-@@ -742,7 +749,8 @@ Chunk::fetchNextDecommittedArena()
- decommittedArenas.unset(offset);
-
- Arena *arena = &arenas[offset];
-- MarkPagesInUse(arena, ArenaSize);
-+ if (DecommitEnabled())
-+ MarkPagesInUse(arena, ArenaSize);
- arena->aheader.setAsNotAllocated();
-
- return &arena->aheader;
-@@ -2731,7 +2739,7 @@ DecommitArenasFromAvailableList(JSRuntime *rt, Chunk **availableListHeadp)
- chunk->removeFromAvailableList();
-
- size_t arenaIndex = Chunk::arenaIndex(aheader->arenaAddress());
-- bool ok;
-+ bool ok = true;
- {
- /*
- * If the main thread waits for the decommit to finish, skip
-@@ -2741,7 +2749,8 @@ DecommitArenasFromAvailableList(JSRuntime *rt, Chunk **availableListHeadp)
- Maybe<AutoUnlockGC> maybeUnlock;
- if (!rt->isHeapBusy())
- maybeUnlock.construct(rt);
-- ok = MarkPagesUnused(aheader->getArena(), ArenaSize);
-+ if (DecommitEnabled())
-+ ok = MarkPagesUnused(aheader->getArena(), ArenaSize);
- }
-
- if (ok) {
---
-1.9.3
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch b/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch
deleted file mode 100644
index bc99ecc504..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0005-aarch64-64k-page.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 9c42920c2b635a399bd1f93833efdeb1696f17ee Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Mon, 2 Mar 2015 19:09:57 +0800
-Subject: [PATCH 5/5] aarch64-64k-page
-
----
-Upstream-status: Pending
-
- js/src/gc/Heap.h | 2 +-
- js/src/gc/Memory.cpp | 3 +++
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/js/src/gc/Heap.h b/js/src/gc/Heap.h
-index 1cfd269..f4dbcda 100644
---- a/js/src/gc/Heap.h
-+++ b/js/src/gc/Heap.h
-@@ -113,7 +113,7 @@ struct Cell
- #if defined(SOLARIS) && (defined(__sparc) || defined(__sparcv9))
- const size_t PageShift = 13;
- const size_t ArenaShift = PageShift;
--#elif defined(__powerpc__)
-+#elif defined(__powerpc__) || defined(__aarch64__)
- const size_t PageShift = 16;
- const size_t ArenaShift = 12;
- #else
-diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
-index 5b386a2..e5ad018 100644
---- a/js/src/gc/Memory.cpp
-+++ b/js/src/gc/Memory.cpp
-@@ -302,8 +302,11 @@ GetPageFaultCount()
- void
- InitMemorySubsystem()
- {
-+ /* aarch64 may have 64KB or 4KB pages */
-+#ifndef __aarch64__
- if (size_t(sysconf(_SC_PAGESIZE)) != PageSize)
- MOZ_CRASH();
-+#endif
- }
-
- void *
---
-1.9.3
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch b/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
deleted file mode 100644
index 6432e1fb7b..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/0010-fix-cross-compilation-on-i586-targets.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From a452138a1dd274bfad381a701729783360dc86fb Mon Sep 17 00:00:00 2001
-From: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
-Date: Tue, 5 Jan 2016 22:04:17 +0100
-Subject: [PATCH] fix cross compilation on i586 targets
-
-Remove offending -Wl,-rpath-link that may cause host libraries to be picked
-during linking. The patch applies a fix to configure.in. So as not to
-regenerate configure, similar fix is applied there.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Maciej Borzecki <maciej.borzecki@open-rnd.pl>
----
- js/src/configure | 2 +-
- js/src/configure.in | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/js/src/configure b/js/src/configure
-index d019b0fdba44233596541de94307010d85a8e32e..5aa40f757a3dbb7d6887175046f44212c15c2eac 100755
---- a/js/src/configure
-+++ b/js/src/configure
-@@ -5555,7 +5555,7 @@ TARGET_MD_ARCH=unix
- DIRENT_INO=d_ino
- MOZ_USER_DIR=".mozilla"
-
--MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
-+MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
-
- MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
-
-diff --git a/js/src/configure.in b/js/src/configure.in
-index 0673aca12f6d83035549ade2a4a83906bf91f0f0..39b22724f9535ac1a6dba04658c91e4ef667fc47 100644
---- a/js/src/configure.in
-+++ b/js/src/configure.in
-@@ -919,7 +919,7 @@ TARGET_MD_ARCH=unix
- DIRENT_INO=d_ino
- MOZ_USER_DIR=".mozilla"
-
--MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin -Wl,-rpath-link,$(prefix)/lib'
-+MOZ_FIX_LINK_PATHS='-Wl,-rpath-link,$(LIBXUL_DIST)/bin'
-
- MOZ_COMPONENT_NSPR_LIBS='-L$(LIBXUL_DIST)/bin $(NSPR_LIBS)'
-
---
-2.5.0
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch b/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch
deleted file mode 100644
index 83f4543193..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/Manually_mmap_heap_memory_esr17.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 1d1fa95c8ff7697e46343385a79a8f7e5c514a87 Mon Sep 17 00:00:00 2001
-From: Zheng Xu <zheng.xu@linaro.org>
-Date: Fri, 2 Sep 2016 17:40:05 +0800
-Subject: [PATCH] Bug 1143022 - Manually mmap on arm64 to ensure high 17 bits
- are clear. r=ehoogeveen
-
-There might be 48-bit VA on arm64 depending on kernel configuration.
-Manually mmap heap memory to align with the assumption made by JS engine.
-
-Change-Id: Ic5d2b2fe4b758b3c87cc0688348af7e71a991146
-
-Upstream-status: Backport
-
----
- js/src/gc/Memory.cpp | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 71 insertions(+), 2 deletions(-)
-
-diff --git a/js/src/gc/Memory.cpp b/js/src/gc/Memory.cpp
-index e5ad018..4149adf 100644
---- a/js/src/gc/Memory.cpp
-+++ b/js/src/gc/Memory.cpp
-@@ -309,6 +309,75 @@ InitMemorySubsystem()
- #endif
- }
-
-+static inline void *
-+MapMemory(size_t length, int prot, int flags, int fd, off_t offset)
-+{
-+#if defined(__ia64__)
-+ /*
-+ * The JS engine assumes that all allocated pointers have their high 17 bits clear,
-+ * which ia64's mmap doesn't support directly. However, we can emulate it by passing
-+ * mmap an "addr" parameter with those bits clear. The mmap will return that address,
-+ * or the nearest available memory above that address, providing a near-guarantee
-+ * that those bits are clear. If they are not, we return NULL below to indicate
-+ * out-of-memory.
-+ *
-+ * The addr is chosen as 0x0000070000000000, which still allows about 120TB of virtual
-+ * address space.
-+ *
-+ * See Bug 589735 for more information.
-+ */
-+ void *region = mmap((void*)0x0000070000000000, length, prot, flags, fd, offset);
-+ if (region == MAP_FAILED)
-+ return MAP_FAILED;
-+ /*
-+ * If the allocated memory doesn't have its upper 17 bits clear, consider it
-+ * as out of memory.
-+ */
-+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
-+ JS_ALWAYS_TRUE(0 == munmap(region, length));
-+ return MAP_FAILED;
-+ }
-+ return region;
-+#elif defined(__aarch64__)
-+ /*
-+ * There might be similar virtual address issue on arm64 which depends on
-+ * hardware and kernel configurations. But the work around is slightly
-+ * different due to the different mmap behavior.
-+ *
-+ * TODO: Merge with the above code block if this implementation works for
-+ * ia64 and sparc64.
-+ */
-+ const uintptr_t start = UINT64_C(0x0000070000000000);
-+ const uintptr_t end = UINT64_C(0x0000800000000000);
-+ const uintptr_t step = ChunkSize;
-+ /*
-+ * Optimization options if there are too many retries in practice:
-+ * 1. Examine /proc/self/maps to find an available address. This file is
-+ * not always available, however. In addition, even if we examine
-+ * /proc/self/maps, we may still need to retry several times due to
-+ * racing with other threads.
-+ * 2. Use a global/static variable with lock to track the addresses we have
-+ * allocated or tried.
-+ */
-+ uintptr_t hint;
-+ void* region = MAP_FAILED;
-+ for (hint = start; region == MAP_FAILED && hint + length <= end; hint += step) {
-+ region = mmap((void*)hint, length, prot, flags, fd, offset);
-+ if (region != MAP_FAILED) {
-+ if ((uintptr_t(region) + (length - 1)) & 0xffff800000000000) {
-+ if (munmap(region, length)) {
-+ MOZ_ASSERT(errno == ENOMEM);
-+ }
-+ region = MAP_FAILED;
-+ }
-+ }
-+ }
-+ return region == MAP_FAILED ? NULL : region;
-+#else
-+ return mmap(NULL, length, prot, flags, fd, offset);
-+#endif
-+}
-+
- void *
- MapAlignedPages(size_t size, size_t alignment)
- {
-@@ -322,12 +391,12 @@ MapAlignedPages(size_t size, size_t alignment)
-
- /* Special case: If we want page alignment, no further work is needed. */
- if (alignment == PageSize) {
-- return mmap(NULL, size, prot, flags, -1, 0);
-+ return MapMemory(size, prot, flags, -1, 0);
- }
-
- /* Overallocate and unmap the region's edges. */
- size_t reqSize = Min(size + 2 * alignment, 2 * size);
-- void *region = mmap(NULL, reqSize, prot, flags, -1, 0);
-+ void *region = MapMemory(reqSize, prot, flags, -1, 0);
- if (region == MAP_FAILED)
- return NULL;
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/Update-Double-Conversion.patch b/meta-oe/recipes-extended/mozjs/mozjs/Update-Double-Conversion.patch
deleted file mode 100644
index c5979c97bd..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/Update-Double-Conversion.patch
+++ /dev/null
@@ -1,1732 +0,0 @@
-From b4961d6e1d273dd9643fc3c055163d5cd3362fb7 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Fri, 1 Jun 2018 14:47:31 -0700
-Subject: [PATCH] Update double conversion
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
----
- mfbt/double-conversion/COPYING | 26 ++
- mfbt/double-conversion/bignum-dtoa.cc | 19 +-
- mfbt/double-conversion/bignum-dtoa.h | 2 +-
- mfbt/double-conversion/bignum.cc | 39 +--
- mfbt/double-conversion/bignum.h | 5 +-
- mfbt/double-conversion/cached-powers.cc | 14 +-
- mfbt/double-conversion/cached-powers.h | 2 +-
- mfbt/double-conversion/diy-fp.cc | 4 +-
- mfbt/double-conversion/diy-fp.h | 24 +-
- mfbt/double-conversion/double-conversion.cc | 293 ++++++++++++++------
- mfbt/double-conversion/double-conversion.h | 78 +++---
- mfbt/double-conversion/fast-dtoa.cc | 29 +-
- mfbt/double-conversion/fast-dtoa.h | 2 +-
- mfbt/double-conversion/fixed-dtoa.cc | 23 +-
- mfbt/double-conversion/fixed-dtoa.h | 2 +-
- mfbt/double-conversion/ieee.h | 8 +-
- mfbt/double-conversion/strtod.cc | 59 ++--
- mfbt/double-conversion/strtod.h | 2 +-
- mfbt/double-conversion/utils.h | 62 +++--
- 19 files changed, 465 insertions(+), 228 deletions(-)
- create mode 100644 mfbt/double-conversion/COPYING
-
-diff --git a/mfbt/double-conversion/COPYING b/mfbt/double-conversion/COPYING
-new file mode 100644
-index 0000000..933718a
---- /dev/null
-+++ b/mfbt/double-conversion/COPYING
-@@ -0,0 +1,26 @@
-+Copyright 2006-2011, the V8 project authors. 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.
-+ * Neither the name of Google Inc. nor the names of its
-+ contributors may be used to endorse or promote products derived
-+ from this software without specific prior written permission.
-+
-+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.
-diff --git a/mfbt/double-conversion/bignum-dtoa.cc b/mfbt/double-conversion/bignum-dtoa.cc
-index b6c2e85..06bdf55 100644
---- a/mfbt/double-conversion/bignum-dtoa.cc
-+++ b/mfbt/double-conversion/bignum-dtoa.cc
-@@ -25,12 +25,12 @@
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--#include <math.h>
-+#include <cmath>
-
--#include "bignum-dtoa.h"
-+#include <bignum-dtoa.h>
-
--#include "bignum.h"
--#include "ieee.h"
-+#include <bignum.h>
-+#include <ieee.h>
-
- namespace double_conversion {
-
-@@ -192,13 +192,13 @@ static void GenerateShortestDigits(Bignum* numerator, Bignum* denominator,
- delta_plus = delta_minus;
- }
- *length = 0;
-- while (true) {
-+ for (;;) {
- uint16_t digit;
- digit = numerator->DivideModuloIntBignum(*denominator);
- ASSERT(digit <= 9); // digit is a uint16_t and therefore always positive.
- // digit = numerator / denominator (integer division).
- // numerator = numerator % denominator.
-- buffer[(*length)++] = digit + '0';
-+ buffer[(*length)++] = static_cast<char>(digit + '0');
-
- // Can we stop already?
- // If the remainder of the division is less than the distance to the lower
-@@ -282,7 +282,7 @@ static void GenerateShortestDigits(Bignum* numerator, Bignum* denominator,
- // exponent (decimal_point), when rounding upwards.
- static void GenerateCountedDigits(int count, int* decimal_point,
- Bignum* numerator, Bignum* denominator,
-- Vector<char>(buffer), int* length) {
-+ Vector<char> buffer, int* length) {
- ASSERT(count >= 0);
- for (int i = 0; i < count - 1; ++i) {
- uint16_t digit;
-@@ -290,7 +290,7 @@ static void GenerateCountedDigits(int count, int* decimal_point,
- ASSERT(digit <= 9); // digit is a uint16_t and therefore always positive.
- // digit = numerator / denominator (integer division).
- // numerator = numerator % denominator.
-- buffer[i] = digit + '0';
-+ buffer[i] = static_cast<char>(digit + '0');
- // Prepare for next iteration.
- numerator->Times10();
- }
-@@ -300,7 +300,8 @@ static void GenerateCountedDigits(int count, int* decimal_point,
- if (Bignum::PlusCompare(*numerator, *numerator, *denominator) >= 0) {
- digit++;
- }
-- buffer[count - 1] = digit + '0';
-+ ASSERT(digit <= 10);
-+ buffer[count - 1] = static_cast<char>(digit + '0');
- // Correct bad digits (in case we had a sequence of '9's). Propagate the
- // carry until we hat a non-'9' or til we reach the first digit.
- for (int i = count - 1; i > 0; --i) {
-diff --git a/mfbt/double-conversion/bignum-dtoa.h b/mfbt/double-conversion/bignum-dtoa.h
-index 34b9619..88d936a 100644
---- a/mfbt/double-conversion/bignum-dtoa.h
-+++ b/mfbt/double-conversion/bignum-dtoa.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_BIGNUM_DTOA_H_
- #define DOUBLE_CONVERSION_BIGNUM_DTOA_H_
-
--#include "utils.h"
-+#include <utils.h>
-
- namespace double_conversion {
-
-diff --git a/mfbt/double-conversion/bignum.cc b/mfbt/double-conversion/bignum.cc
-index 747491a..4786c2e 100644
---- a/mfbt/double-conversion/bignum.cc
-+++ b/mfbt/double-conversion/bignum.cc
-@@ -25,13 +25,13 @@
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--#include "bignum.h"
--#include "utils.h"
-+#include <bignum.h>
-+#include <utils.h>
-
- namespace double_conversion {
-
- Bignum::Bignum()
-- : bigits_(bigits_buffer_, kBigitCapacity), used_digits_(0), exponent_(0) {
-+ : bigits_buffer_(), bigits_(bigits_buffer_, kBigitCapacity), used_digits_(0), exponent_(0) {
- for (int i = 0; i < kBigitCapacity; ++i) {
- bigits_[i] = 0;
- }
-@@ -40,6 +40,7 @@ Bignum::Bignum()
-
- template<typename S>
- static int BitSize(S value) {
-+ (void) value; // Mark variable as used.
- return 8 * sizeof(value);
- }
-
-@@ -103,7 +104,7 @@ void Bignum::AssignDecimalString(Vector<const char> value) {
- const int kMaxUint64DecimalDigits = 19;
- Zero();
- int length = value.length();
-- int pos = 0;
-+ unsigned int pos = 0;
- // Let's just say that each digit needs 4 bits.
- while (length >= kMaxUint64DecimalDigits) {
- uint64_t digits = ReadUInt64(value, pos, kMaxUint64DecimalDigits);
-@@ -122,9 +123,8 @@ void Bignum::AssignDecimalString(Vector<const char> value) {
- static int HexCharValue(char c) {
- if ('0' <= c && c <= '9') return c - '0';
- if ('a' <= c && c <= 'f') return 10 + c - 'a';
-- if ('A' <= c && c <= 'F') return 10 + c - 'A';
-- UNREACHABLE();
-- return 0; // To make compiler happy.
-+ ASSERT('A' <= c && c <= 'F');
-+ return 10 + c - 'A';
- }
-
-
-@@ -445,26 +445,27 @@ void Bignum::AssignPowerUInt16(uint16_t base, int power_exponent) {
- mask >>= 2;
- uint64_t this_value = base;
-
-- bool delayed_multipliciation = false;
-+ bool delayed_multiplication = false;
- const uint64_t max_32bits = 0xFFFFFFFF;
- while (mask != 0 && this_value <= max_32bits) {
- this_value = this_value * this_value;
- // Verify that there is enough space in this_value to perform the
- // multiplication. The first bit_size bits must be 0.
- if ((power_exponent & mask) != 0) {
-+ ASSERT(bit_size > 0);
- uint64_t base_bits_mask =
- ~((static_cast<uint64_t>(1) << (64 - bit_size)) - 1);
- bool high_bits_zero = (this_value & base_bits_mask) == 0;
- if (high_bits_zero) {
- this_value *= base;
- } else {
-- delayed_multipliciation = true;
-+ delayed_multiplication = true;
- }
- }
- mask >>= 1;
- }
- AssignUInt64(this_value);
-- if (delayed_multipliciation) {
-+ if (delayed_multiplication) {
- MultiplyByUInt32(base);
- }
-
-@@ -501,13 +502,14 @@ uint16_t Bignum::DivideModuloIntBignum(const Bignum& other) {
- // Start by removing multiples of 'other' until both numbers have the same
- // number of digits.
- while (BigitLength() > other.BigitLength()) {
-- // This naive approach is extremely inefficient if the this divided other
-- // might be big. This function is implemented for doubleToString where
-+ // This naive approach is extremely inefficient if `this` divided by other
-+ // is big. This function is implemented for doubleToString where
- // the result should be small (less than 10).
- ASSERT(other.bigits_[other.used_digits_ - 1] >= ((1 << kBigitSize) / 16));
-+ ASSERT(bigits_[used_digits_ - 1] < 0x10000);
- // Remove the multiples of the first digit.
- // Example this = 23 and other equals 9. -> Remove 2 multiples.
-- result += bigits_[used_digits_ - 1];
-+ result += static_cast<uint16_t>(bigits_[used_digits_ - 1]);
- SubtractTimes(other, bigits_[used_digits_ - 1]);
- }
-
-@@ -523,13 +525,15 @@ uint16_t Bignum::DivideModuloIntBignum(const Bignum& other) {
- // Shortcut for easy (and common) case.
- int quotient = this_bigit / other_bigit;
- bigits_[used_digits_ - 1] = this_bigit - other_bigit * quotient;
-- result += quotient;
-+ ASSERT(quotient < 0x10000);
-+ result += static_cast<uint16_t>(quotient);
- Clamp();
- return result;
- }
-
- int division_estimate = this_bigit / (other_bigit + 1);
-- result += division_estimate;
-+ ASSERT(division_estimate < 0x10000);
-+ result += static_cast<uint16_t>(division_estimate);
- SubtractTimes(other, division_estimate);
-
- if (other_bigit * (division_estimate + 1) > this_bigit) {
-@@ -560,8 +564,8 @@ static int SizeInHexChars(S number) {
-
- static char HexCharOfValue(int value) {
- ASSERT(0 <= value && value <= 16);
-- if (value < 10) return value + '0';
-- return value - 10 + 'A';
-+ if (value < 10) return static_cast<char>(value + '0');
-+ return static_cast<char>(value - 10 + 'A');
- }
-
-
-@@ -755,7 +759,6 @@ void Bignum::SubtractTimes(const Bignum& other, int factor) {
- Chunk difference = bigits_[i] - borrow;
- bigits_[i] = difference & kBigitMask;
- borrow = difference >> (kChunkSize - 1);
-- ++i;
- }
- Clamp();
- }
-diff --git a/mfbt/double-conversion/bignum.h b/mfbt/double-conversion/bignum.h
-index 5ec3544..4fdad0c 100644
---- a/mfbt/double-conversion/bignum.h
-+++ b/mfbt/double-conversion/bignum.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_BIGNUM_H_
- #define DOUBLE_CONVERSION_BIGNUM_H_
-
--#include "utils.h"
-+#include <utils.h>
-
- namespace double_conversion {
-
-@@ -49,7 +49,6 @@ class Bignum {
-
- void AssignPowerUInt16(uint16_t base, int exponent);
-
-- void AddUInt16(uint16_t operand);
- void AddUInt64(uint64_t operand);
- void AddBignum(const Bignum& other);
- // Precondition: this >= other.
-@@ -137,7 +136,7 @@ class Bignum {
- // The Bignum's value equals value(bigits_) * 2^(exponent_ * kBigitSize).
- int exponent_;
-
-- DISALLOW_COPY_AND_ASSIGN(Bignum);
-+ DC_DISALLOW_COPY_AND_ASSIGN(Bignum);
- };
-
- } // namespace double_conversion
-diff --git a/mfbt/double-conversion/cached-powers.cc b/mfbt/double-conversion/cached-powers.cc
-index c676429..06e819d 100644
---- a/mfbt/double-conversion/cached-powers.cc
-+++ b/mfbt/double-conversion/cached-powers.cc
-@@ -25,13 +25,13 @@
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--#include <stdarg.h>
--#include <limits.h>
--#include <math.h>
-+#include <climits>
-+#include <cmath>
-+#include <cstdarg>
-
--#include "utils.h"
-+#include <utils.h>
-
--#include "cached-powers.h"
-+#include <cached-powers.h>
-
- namespace double_conversion {
-
-@@ -131,7 +131,6 @@ static const CachedPower kCachedPowers[] = {
- {UINT64_2PART_C(0xaf87023b, 9bf0ee6b), 1066, 340},
- };
-
--static const int kCachedPowersLength = ARRAY_SIZE(kCachedPowers);
- static const int kCachedPowersOffset = 348; // -1 * the first decimal_exponent.
- static const double kD_1_LOG2_10 = 0.30102999566398114; // 1 / lg(10)
- // Difference between the decimal exponents in the table above.
-@@ -149,9 +148,10 @@ void PowersOfTenCache::GetCachedPowerForBinaryExponentRange(
- int foo = kCachedPowersOffset;
- int index =
- (foo + static_cast<int>(k) - 1) / kDecimalExponentDistance + 1;
-- ASSERT(0 <= index && index < kCachedPowersLength);
-+ ASSERT(0 <= index && index < static_cast<int>(ARRAY_SIZE(kCachedPowers)));
- CachedPower cached_power = kCachedPowers[index];
- ASSERT(min_exponent <= cached_power.binary_exponent);
-+ (void) max_exponent; // Mark variable as used.
- ASSERT(cached_power.binary_exponent <= max_exponent);
- *decimal_exponent = cached_power.decimal_exponent;
- *power = DiyFp(cached_power.significand, cached_power.binary_exponent);
-diff --git a/mfbt/double-conversion/cached-powers.h b/mfbt/double-conversion/cached-powers.h
-index 61a5061..a425d7c 100644
---- a/mfbt/double-conversion/cached-powers.h
-+++ b/mfbt/double-conversion/cached-powers.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_CACHED_POWERS_H_
- #define DOUBLE_CONVERSION_CACHED_POWERS_H_
-
--#include "diy-fp.h"
-+#include <diy-fp.h>
-
- namespace double_conversion {
-
-diff --git a/mfbt/double-conversion/diy-fp.cc b/mfbt/double-conversion/diy-fp.cc
-index ddd1891..f31cf60 100644
---- a/mfbt/double-conversion/diy-fp.cc
-+++ b/mfbt/double-conversion/diy-fp.cc
-@@ -26,8 +26,8 @@
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
--#include "diy-fp.h"
--#include "utils.h"
-+#include <diy-fp.h>
-+#include <utils.h>
-
- namespace double_conversion {
-
-diff --git a/mfbt/double-conversion/diy-fp.h b/mfbt/double-conversion/diy-fp.h
-index 9dcf8fb..80a8c4c 100644
---- a/mfbt/double-conversion/diy-fp.h
-+++ b/mfbt/double-conversion/diy-fp.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_DIY_FP_H_
- #define DOUBLE_CONVERSION_DIY_FP_H_
-
--#include "utils.h"
-+#include <utils.h>
-
- namespace double_conversion {
-
-@@ -42,7 +42,7 @@ class DiyFp {
- static const int kSignificandSize = 64;
-
- DiyFp() : f_(0), e_(0) {}
-- DiyFp(uint64_t f, int e) : f_(f), e_(e) {}
-+ DiyFp(uint64_t significand, int exponent) : f_(significand), e_(exponent) {}
-
- // this = this - other.
- // The exponents of both numbers must be the same and the significand of this
-@@ -76,22 +76,22 @@ class DiyFp {
-
- void Normalize() {
- ASSERT(f_ != 0);
-- uint64_t f = f_;
-- int e = e_;
-+ uint64_t significand = f_;
-+ int exponent = e_;
-
- // This method is mainly called for normalizing boundaries. In general
- // boundaries need to be shifted by 10 bits. We thus optimize for this case.
- const uint64_t k10MSBits = UINT64_2PART_C(0xFFC00000, 00000000);
-- while ((f & k10MSBits) == 0) {
-- f <<= 10;
-- e -= 10;
-+ while ((significand & k10MSBits) == 0) {
-+ significand <<= 10;
-+ exponent -= 10;
- }
-- while ((f & kUint64MSB) == 0) {
-- f <<= 1;
-- e--;
-+ while ((significand & kUint64MSB) == 0) {
-+ significand <<= 1;
-+ exponent--;
- }
-- f_ = f;
-- e_ = e;
-+ f_ = significand;
-+ e_ = exponent;
- }
-
- static DiyFp Normalize(const DiyFp& a) {
-diff --git a/mfbt/double-conversion/double-conversion.cc b/mfbt/double-conversion/double-conversion.cc
-index 650137b..7819267 100644
---- a/mfbt/double-conversion/double-conversion.cc
-+++ b/mfbt/double-conversion/double-conversion.cc
-@@ -25,17 +25,18 @@
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--#include <limits.h>
--#include <math.h>
-+#include <climits>
-+#include <locale>
-+#include <cmath>
-
--#include "double-conversion.h"
-+#include <double-conversion.h>
-
--#include "bignum-dtoa.h"
--#include "fast-dtoa.h"
--#include "fixed-dtoa.h"
--#include "ieee.h"
--#include "strtod.h"
--#include "utils.h"
-+#include <bignum-dtoa.h>
-+#include <fast-dtoa.h>
-+#include <fixed-dtoa.h>
-+#include <ieee.h>
-+#include <strtod.h>
-+#include <utils.h>
-
- namespace double_conversion {
-
-@@ -118,7 +119,7 @@ void DoubleToStringConverter::CreateDecimalRepresentation(
- StringBuilder* result_builder) const {
- // Create a representation that is padded with zeros if needed.
- if (decimal_point <= 0) {
-- // "0.00000decimal_rep".
-+ // "0.00000decimal_rep" or "0.000decimal_rep00".
- result_builder->AddCharacter('0');
- if (digits_after_point > 0) {
- result_builder->AddCharacter('.');
-@@ -129,7 +130,7 @@ void DoubleToStringConverter::CreateDecimalRepresentation(
- result_builder->AddPadding('0', remaining_digits);
- }
- } else if (decimal_point >= length) {
-- // "decimal_rep0000.00000" or "decimal_rep.0000"
-+ // "decimal_rep0000.00000" or "decimal_rep.0000".
- result_builder->AddSubstring(decimal_digits, length);
- result_builder->AddPadding('0', decimal_point - length);
- if (digits_after_point > 0) {
-@@ -137,7 +138,7 @@ void DoubleToStringConverter::CreateDecimalRepresentation(
- result_builder->AddPadding('0', digits_after_point);
- }
- } else {
-- // "decima.l_rep000"
-+ // "decima.l_rep000".
- ASSERT(digits_after_point > 0);
- result_builder->AddSubstring(decimal_digits, decimal_point);
- result_builder->AddCharacter('.');
-@@ -162,7 +163,7 @@ bool DoubleToStringConverter::ToShortestIeeeNumber(
- double value,
- StringBuilder* result_builder,
- DoubleToStringConverter::DtoaMode mode) const {
-- assert(mode == SHORTEST || mode == SHORTEST_SINGLE);
-+ ASSERT(mode == SHORTEST || mode == SHORTEST_SINGLE);
- if (Double(value).IsSpecial()) {
- return HandleSpecialValues(value, result_builder);
- }
-@@ -348,7 +349,6 @@ static BignumDtoaMode DtoaToBignumDtoaMode(
- case DoubleToStringConverter::PRECISION: return BIGNUM_DTOA_PRECISION;
- default:
- UNREACHABLE();
-- return BIGNUM_DTOA_SHORTEST; // To silence compiler.
- }
- }
-
-@@ -403,8 +403,8 @@ void DoubleToStringConverter::DoubleToAscii(double v,
- vector, length, point);
- break;
- default:
-- UNREACHABLE();
- fast_worked = false;
-+ UNREACHABLE();
- }
- if (fast_worked) return;
-
-@@ -415,20 +415,55 @@ void DoubleToStringConverter::DoubleToAscii(double v,
- }
-
-
--// Consumes the given substring from the iterator.
--// Returns false, if the substring does not match.
--static bool ConsumeSubString(const char** current,
-- const char* end,
-- const char* substring) {
-- ASSERT(**current == *substring);
-+namespace {
-+
-+inline char ToLower(char ch) {
-+ static const std::ctype<char>& cType =
-+ std::use_facet<std::ctype<char> >(std::locale::classic());
-+ return cType.tolower(ch);
-+}
-+
-+inline char Pass(char ch) {
-+ return ch;
-+}
-+
-+template <class Iterator, class Converter>
-+static inline bool ConsumeSubStringImpl(Iterator* current,
-+ Iterator end,
-+ const char* substring,
-+ Converter converter) {
-+ ASSERT(converter(**current) == *substring);
- for (substring++; *substring != '\0'; substring++) {
- ++*current;
-- if (*current == end || **current != *substring) return false;
-+ if (*current == end || converter(**current) != *substring) {
-+ return false;
-+ }
- }
- ++*current;
- return true;
- }
-
-+// Consumes the given substring from the iterator.
-+// Returns false, if the substring does not match.
-+template <class Iterator>
-+static bool ConsumeSubString(Iterator* current,
-+ Iterator end,
-+ const char* substring,
-+ bool allow_case_insensibility) {
-+ if (allow_case_insensibility) {
-+ return ConsumeSubStringImpl(current, end, substring, ToLower);
-+ } else {
-+ return ConsumeSubStringImpl(current, end, substring, Pass);
-+ }
-+}
-+
-+// Consumes first character of the str is equal to ch
-+inline bool ConsumeFirstCharacter(char ch,
-+ const char* str,
-+ bool case_insensibility) {
-+ return case_insensibility ? ToLower(ch) == str[0] : ch == str[0];
-+}
-+} // namespace
-
- // Maximum number of significant digits in decimal representation.
- // The longest possible double in decimal representation is
-@@ -440,10 +475,36 @@ static bool ConsumeSubString(const char** current,
- const int kMaxSignificantDigits = 772;
-
-
-+static const char kWhitespaceTable7[] = { 32, 13, 10, 9, 11, 12 };
-+static const int kWhitespaceTable7Length = ARRAY_SIZE(kWhitespaceTable7);
-+
-+
-+static const uc16 kWhitespaceTable16[] = {
-+ 160, 8232, 8233, 5760, 6158, 8192, 8193, 8194, 8195,
-+ 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8239, 8287, 12288, 65279
-+};
-+static const int kWhitespaceTable16Length = ARRAY_SIZE(kWhitespaceTable16);
-+
-+
-+static bool isWhitespace(int x) {
-+ if (x < 128) {
-+ for (int i = 0; i < kWhitespaceTable7Length; i++) {
-+ if (kWhitespaceTable7[i] == x) return true;
-+ }
-+ } else {
-+ for (int i = 0; i < kWhitespaceTable16Length; i++) {
-+ if (kWhitespaceTable16[i] == x) return true;
-+ }
-+ }
-+ return false;
-+}
-+
-+
- // Returns true if a nonspace found and false if the end has reached.
--static inline bool AdvanceToNonspace(const char** current, const char* end) {
-+template <class Iterator>
-+static inline bool AdvanceToNonspace(Iterator* current, Iterator end) {
- while (*current != end) {
-- if (**current != ' ') return true;
-+ if (!isWhitespace(**current)) return true;
- ++*current;
- }
- return false;
-@@ -462,26 +523,57 @@ static double SignedZero(bool sign) {
- }
-
-
-+// Returns true if 'c' is a decimal digit that is valid for the given radix.
-+//
-+// The function is small and could be inlined, but VS2012 emitted a warning
-+// because it constant-propagated the radix and concluded that the last
-+// condition was always true. By moving it into a separate function the
-+// compiler wouldn't warn anymore.
-+#if _MSC_VER
-+#pragma optimize("",off)
-+static bool IsDecimalDigitForRadix(int c, int radix) {
-+ return '0' <= c && c <= '9' && (c - '0') < radix;
-+}
-+#pragma optimize("",on)
-+#else
-+static bool inline IsDecimalDigitForRadix(int c, int radix) {
-+ return '0' <= c && c <= '9' && (c - '0') < radix;
-+}
-+#endif
-+// Returns true if 'c' is a character digit that is valid for the given radix.
-+// The 'a_character' should be 'a' or 'A'.
-+//
-+// The function is small and could be inlined, but VS2012 emitted a warning
-+// because it constant-propagated the radix and concluded that the first
-+// condition was always false. By moving it into a separate function the
-+// compiler wouldn't warn anymore.
-+static bool IsCharacterDigitForRadix(int c, int radix, char a_character) {
-+ return radix > 10 && c >= a_character && c < a_character + radix - 10;
-+}
-+
-+
- // Parsing integers with radix 2, 4, 8, 16, 32. Assumes current != end.
--template <int radix_log_2>
--static double RadixStringToIeee(const char* current,
-- const char* end,
-+template <int radix_log_2, class Iterator>
-+static double RadixStringToIeee(Iterator* current,
-+ Iterator end,
- bool sign,
- bool allow_trailing_junk,
- double junk_string_value,
- bool read_as_double,
-- const char** trailing_pointer) {
-- ASSERT(current != end);
-+ bool* result_is_junk) {
-+ ASSERT(*current != end);
-
- const int kDoubleSize = Double::kSignificandSize;
- const int kSingleSize = Single::kSignificandSize;
- const int kSignificandSize = read_as_double? kDoubleSize: kSingleSize;
-
-+ *result_is_junk = true;
-+
- // Skip leading 0s.
-- while (*current == '0') {
-- ++current;
-- if (current == end) {
-- *trailing_pointer = end;
-+ while (**current == '0') {
-+ ++(*current);
-+ if (*current == end) {
-+ *result_is_junk = false;
- return SignedZero(sign);
- }
- }
-@@ -492,14 +584,14 @@ static double RadixStringToIeee(const char* current,
-
- do {
- int digit;
-- if (*current >= '0' && *current <= '9' && *current < '0' + radix) {
-- digit = static_cast<char>(*current) - '0';
-- } else if (radix > 10 && *current >= 'a' && *current < 'a' + radix - 10) {
-- digit = static_cast<char>(*current) - 'a' + 10;
-- } else if (radix > 10 && *current >= 'A' && *current < 'A' + radix - 10) {
-- digit = static_cast<char>(*current) - 'A' + 10;
-+ if (IsDecimalDigitForRadix(**current, radix)) {
-+ digit = static_cast<char>(**current) - '0';
-+ } else if (IsCharacterDigitForRadix(**current, radix, 'a')) {
-+ digit = static_cast<char>(**current) - 'a' + 10;
-+ } else if (IsCharacterDigitForRadix(**current, radix, 'A')) {
-+ digit = static_cast<char>(**current) - 'A' + 10;
- } else {
-- if (allow_trailing_junk || !AdvanceToNonspace(&current, end)) {
-+ if (allow_trailing_junk || !AdvanceToNonspace(current, end)) {
- break;
- } else {
- return junk_string_value;
-@@ -523,14 +615,14 @@ static double RadixStringToIeee(const char* current,
- exponent = overflow_bits_count;
-
- bool zero_tail = true;
-- while (true) {
-- ++current;
-- if (current == end || !isDigit(*current, radix)) break;
-- zero_tail = zero_tail && *current == '0';
-+ for (;;) {
-+ ++(*current);
-+ if (*current == end || !isDigit(**current, radix)) break;
-+ zero_tail = zero_tail && **current == '0';
- exponent += radix_log_2;
- }
-
-- if (!allow_trailing_junk && AdvanceToNonspace(&current, end)) {
-+ if (!allow_trailing_junk && AdvanceToNonspace(current, end)) {
- return junk_string_value;
- }
-
-@@ -552,13 +644,13 @@ static double RadixStringToIeee(const char* current,
- }
- break;
- }
-- ++current;
-- } while (current != end);
-+ ++(*current);
-+ } while (*current != end);
-
- ASSERT(number < ((int64_t)1 << kSignificandSize));
- ASSERT(static_cast<int64_t>(static_cast<double>(number)) == number);
-
-- *trailing_pointer = current;
-+ *result_is_junk = false;
-
- if (exponent == 0) {
- if (sign) {
-@@ -572,14 +664,14 @@ static double RadixStringToIeee(const char* current,
- return Double(DiyFp(number, exponent)).value();
- }
-
--
-+template <class Iterator>
- double StringToDoubleConverter::StringToIeee(
-- const char* input,
-+ Iterator input,
- int length,
-- int* processed_characters_count,
-- bool read_as_double) {
-- const char* current = input;
-- const char* end = input + length;
-+ bool read_as_double,
-+ int* processed_characters_count) const {
-+ Iterator current = input;
-+ Iterator end = input + length;
-
- *processed_characters_count = 0;
-
-@@ -587,6 +679,8 @@ double StringToDoubleConverter::StringToIeee(
- const bool allow_leading_spaces = (flags_ & ALLOW_LEADING_SPACES) != 0;
- const bool allow_trailing_spaces = (flags_ & ALLOW_TRAILING_SPACES) != 0;
- const bool allow_spaces_after_sign = (flags_ & ALLOW_SPACES_AFTER_SIGN) != 0;
-+ const bool allow_case_insensibility = (flags_ & ALLOW_CASE_INSENSIBILITY) != 0;
-+
-
- // To make sure that iterator dereferencing is valid the following
- // convention is used:
-@@ -600,7 +694,7 @@ double StringToDoubleConverter::StringToIeee(
-
- if (allow_leading_spaces || allow_trailing_spaces) {
- if (!AdvanceToNonspace(&current, end)) {
-- *processed_characters_count = current - input;
-+ *processed_characters_count = static_cast<int>(current - input);
- return empty_string_value_;
- }
- if (!allow_leading_spaces && (input != current)) {
-@@ -626,7 +720,7 @@ double StringToDoubleConverter::StringToIeee(
- if (*current == '+' || *current == '-') {
- sign = (*current == '-');
- ++current;
-- const char* next_non_space = current;
-+ Iterator next_non_space = current;
- // Skip following spaces (if allowed).
- if (!AdvanceToNonspace(&next_non_space, end)) return junk_string_value_;
- if (!allow_spaces_after_sign && (current != next_non_space)) {
-@@ -636,8 +730,8 @@ double StringToDoubleConverter::StringToIeee(
- }
-
- if (infinity_symbol_ != NULL) {
-- if (*current == infinity_symbol_[0]) {
-- if (!ConsumeSubString(&current, end, infinity_symbol_)) {
-+ if (ConsumeFirstCharacter(*current, infinity_symbol_, allow_case_insensibility)) {
-+ if (!ConsumeSubString(&current, end, infinity_symbol_, allow_case_insensibility)) {
- return junk_string_value_;
- }
-
-@@ -649,14 +743,14 @@ double StringToDoubleConverter::StringToIeee(
- }
-
- ASSERT(buffer_pos == 0);
-- *processed_characters_count = current - input;
-+ *processed_characters_count = static_cast<int>(current - input);
- return sign ? -Double::Infinity() : Double::Infinity();
- }
- }
-
- if (nan_symbol_ != NULL) {
-- if (*current == nan_symbol_[0]) {
-- if (!ConsumeSubString(&current, end, nan_symbol_)) {
-+ if (ConsumeFirstCharacter(*current, nan_symbol_, allow_case_insensibility)) {
-+ if (!ConsumeSubString(&current, end, nan_symbol_, allow_case_insensibility)) {
- return junk_string_value_;
- }
-
-@@ -668,7 +762,7 @@ double StringToDoubleConverter::StringToIeee(
- }
-
- ASSERT(buffer_pos == 0);
-- *processed_characters_count = current - input;
-+ *processed_characters_count = static_cast<int>(current - input);
- return sign ? -Double::NaN() : Double::NaN();
- }
- }
-@@ -677,7 +771,7 @@ double StringToDoubleConverter::StringToIeee(
- if (*current == '0') {
- ++current;
- if (current == end) {
-- *processed_characters_count = current - input;
-+ *processed_characters_count = static_cast<int>(current - input);
- return SignedZero(sign);
- }
-
-@@ -690,17 +784,17 @@ double StringToDoubleConverter::StringToIeee(
- return junk_string_value_; // "0x".
- }
-
-- const char* tail_pointer = NULL;
-- double result = RadixStringToIeee<4>(current,
-+ bool result_is_junk;
-+ double result = RadixStringToIeee<4>(&current,
- end,
- sign,
- allow_trailing_junk,
- junk_string_value_,
- read_as_double,
-- &tail_pointer);
-- if (tail_pointer != NULL) {
-- if (allow_trailing_spaces) AdvanceToNonspace(&tail_pointer, end);
-- *processed_characters_count = tail_pointer - input;
-+ &result_is_junk);
-+ if (!result_is_junk) {
-+ if (allow_trailing_spaces) AdvanceToNonspace(&current, end);
-+ *processed_characters_count = static_cast<int>(current - input);
- }
- return result;
- }
-@@ -709,7 +803,7 @@ double StringToDoubleConverter::StringToIeee(
- while (*current == '0') {
- ++current;
- if (current == end) {
-- *processed_characters_count = current - input;
-+ *processed_characters_count = static_cast<int>(current - input);
- return SignedZero(sign);
- }
- }
-@@ -757,7 +851,7 @@ double StringToDoubleConverter::StringToIeee(
- while (*current == '0') {
- ++current;
- if (current == end) {
-- *processed_characters_count = current - input;
-+ *processed_characters_count = static_cast<int>(current - input);
- return SignedZero(sign);
- }
- exponent--; // Move this 0 into the exponent.
-@@ -793,20 +887,23 @@ double StringToDoubleConverter::StringToIeee(
- if (*current == 'e' || *current == 'E') {
- if (octal && !allow_trailing_junk) return junk_string_value_;
- if (octal) goto parsing_done;
-+ Iterator junk_begin = current;
- ++current;
- if (current == end) {
- if (allow_trailing_junk) {
-+ current = junk_begin;
- goto parsing_done;
- } else {
- return junk_string_value_;
- }
- }
-- char sign = '+';
-+ char exponen_sign = '+';
- if (*current == '+' || *current == '-') {
-- sign = static_cast<char>(*current);
-+ exponen_sign = static_cast<char>(*current);
- ++current;
- if (current == end) {
- if (allow_trailing_junk) {
-+ current = junk_begin;
- goto parsing_done;
- } else {
- return junk_string_value_;
-@@ -816,6 +913,7 @@ double StringToDoubleConverter::StringToIeee(
-
- if (current == end || *current < '0' || *current > '9') {
- if (allow_trailing_junk) {
-+ current = junk_begin;
- goto parsing_done;
- } else {
- return junk_string_value_;
-@@ -837,7 +935,7 @@ double StringToDoubleConverter::StringToIeee(
- ++current;
- } while (current != end && *current >= '0' && *current <= '9');
-
-- exponent += (sign == '-' ? -num : num);
-+ exponent += (exponen_sign == '-' ? -num : num);
- }
-
- if (!(allow_trailing_spaces || allow_trailing_junk) && (current != end)) {
-@@ -855,16 +953,17 @@ double StringToDoubleConverter::StringToIeee(
-
- if (octal) {
- double result;
-- const char* tail_pointer = NULL;
-- result = RadixStringToIeee<3>(buffer,
-+ bool result_is_junk;
-+ char* start = buffer;
-+ result = RadixStringToIeee<3>(&start,
- buffer + buffer_pos,
- sign,
- allow_trailing_junk,
- junk_string_value_,
- read_as_double,
-- &tail_pointer);
-- ASSERT(tail_pointer != NULL);
-- *processed_characters_count = current - input;
-+ &result_is_junk);
-+ ASSERT(!result_is_junk);
-+ *processed_characters_count = static_cast<int>(current - input);
- return result;
- }
-
-@@ -882,8 +981,42 @@ double StringToDoubleConverter::StringToIeee(
- } else {
- converted = Strtof(Vector<const char>(buffer, buffer_pos), exponent);
- }
-- *processed_characters_count = current - input;
-+ *processed_characters_count = static_cast<int>(current - input);
- return sign? -converted: converted;
- }
-
-+
-+double StringToDoubleConverter::StringToDouble(
-+ const char* buffer,
-+ int length,
-+ int* processed_characters_count) const {
-+ return StringToIeee(buffer, length, true, processed_characters_count);
-+}
-+
-+
-+double StringToDoubleConverter::StringToDouble(
-+ const uc16* buffer,
-+ int length,
-+ int* processed_characters_count) const {
-+ return StringToIeee(buffer, length, true, processed_characters_count);
-+}
-+
-+
-+float StringToDoubleConverter::StringToFloat(
-+ const char* buffer,
-+ int length,
-+ int* processed_characters_count) const {
-+ return static_cast<float>(StringToIeee(buffer, length, false,
-+ processed_characters_count));
-+}
-+
-+
-+float StringToDoubleConverter::StringToFloat(
-+ const uc16* buffer,
-+ int length,
-+ int* processed_characters_count) const {
-+ return static_cast<float>(StringToIeee(buffer, length, false,
-+ processed_characters_count));
-+}
-+
- } // namespace double_conversion
-diff --git a/mfbt/double-conversion/double-conversion.h b/mfbt/double-conversion/double-conversion.h
-index 0e7226d..e66a566 100644
---- a/mfbt/double-conversion/double-conversion.h
-+++ b/mfbt/double-conversion/double-conversion.h
-@@ -28,8 +28,7 @@
- #ifndef DOUBLE_CONVERSION_DOUBLE_CONVERSION_H_
- #define DOUBLE_CONVERSION_DOUBLE_CONVERSION_H_
-
--#include "mozilla/Types.h"
--#include "utils.h"
-+#include <utils.h>
-
- namespace double_conversion {
-
-@@ -130,7 +129,7 @@ class DoubleToStringConverter {
- }
-
- // Returns a converter following the EcmaScript specification.
-- static MFBT_API(const DoubleToStringConverter&) EcmaScriptConverter();
-+ static const DoubleToStringConverter& EcmaScriptConverter();
-
- // Computes the shortest string of digits that correctly represent the input
- // number. Depending on decimal_in_shortest_low and decimal_in_shortest_high
-@@ -198,7 +197,7 @@ class DoubleToStringConverter {
- // The last two conditions imply that the result will never contain more than
- // 1 + kMaxFixedDigitsBeforePoint + 1 + kMaxFixedDigitsAfterPoint characters
- // (one additional character for the sign, and one for the decimal point).
-- MFBT_API(bool) ToFixed(double value,
-+ bool ToFixed(double value,
- int requested_digits,
- StringBuilder* result_builder) const;
-
-@@ -230,7 +229,7 @@ class DoubleToStringConverter {
- // kMaxExponentialDigits + 8 characters (the sign, the digit before the
- // decimal point, the decimal point, the exponent character, the
- // exponent's sign, and at most 3 exponent digits).
-- MFBT_API(bool) ToExponential(double value,
-+ bool ToExponential(double value,
- int requested_digits,
- StringBuilder* result_builder) const;
-
-@@ -268,7 +267,7 @@ class DoubleToStringConverter {
- // The last condition implies that the result will never contain more than
- // kMaxPrecisionDigits + 7 characters (the sign, the decimal point, the
- // exponent character, the exponent's sign, and at most 3 exponent digits).
-- MFBT_API(bool) ToPrecision(double value,
-+ bool ToPrecision(double value,
- int precision,
- StringBuilder* result_builder) const;
-
-@@ -293,15 +292,20 @@ class DoubleToStringConverter {
- // kBase10MaximalLength.
- // Note that DoubleToAscii null-terminates its input. So the given buffer
- // should be at least kBase10MaximalLength + 1 characters long.
-- static const MFBT_DATA(int) kBase10MaximalLength = 17;
-+ static const int kBase10MaximalLength = 17;
-
-- // Converts the given double 'v' to ascii. 'v' must not be NaN, +Infinity, or
-- // -Infinity. In SHORTEST_SINGLE-mode this restriction also applies to 'v'
-- // after it has been casted to a single-precision float. That is, in this
-- // mode static_cast<float>(v) must not be NaN, +Infinity or -Infinity.
-+ // Converts the given double 'v' to digit characters. 'v' must not be NaN,
-+ // +Infinity, or -Infinity. In SHORTEST_SINGLE-mode this restriction also
-+ // applies to 'v' after it has been casted to a single-precision float. That
-+ // is, in this mode static_cast<float>(v) must not be NaN, +Infinity or
-+ // -Infinity.
- //
- // The result should be interpreted as buffer * 10^(point-length).
- //
-+ // The digits are written to the buffer in the platform's charset, which is
-+ // often UTF-8 (with ASCII-range digits) but may be another charset, such
-+ // as EBCDIC.
-+ //
- // The output depends on the given mode:
- // - SHORTEST: produce the least amount of digits for which the internal
- // identity requirement is still satisfied. If the digits are printed
-@@ -333,7 +337,7 @@ class DoubleToStringConverter {
- // terminating null-character when computing the maximal output size.
- // The given length is only used in debug mode to ensure the buffer is big
- // enough.
-- static MFBT_API(void) DoubleToAscii(double v,
-+ static void DoubleToAscii(double v,
- DtoaMode mode,
- int requested_digits,
- char* buffer,
-@@ -344,7 +348,7 @@ class DoubleToStringConverter {
-
- private:
- // Implementation for ToShortest and ToShortestSingle.
-- MFBT_API(bool) ToShortestIeeeNumber(double value,
-+ bool ToShortestIeeeNumber(double value,
- StringBuilder* result_builder,
- DtoaMode mode) const;
-
-@@ -352,15 +356,15 @@ class DoubleToStringConverter {
- // corresponding string using the configured infinity/nan-symbol.
- // If either of them is NULL or the value is not special then the
- // function returns false.
-- MFBT_API(bool) HandleSpecialValues(double value, StringBuilder* result_builder) const;
-+ bool HandleSpecialValues(double value, StringBuilder* result_builder) const;
- // Constructs an exponential representation (i.e. 1.234e56).
- // The given exponent assumes a decimal point after the first decimal digit.
-- MFBT_API(void) CreateExponentialRepresentation(const char* decimal_digits,
-+ void CreateExponentialRepresentation(const char* decimal_digits,
- int length,
- int exponent,
- StringBuilder* result_builder) const;
- // Creates a decimal representation (i.e 1234.5678).
-- MFBT_API(void) CreateDecimalRepresentation(const char* decimal_digits,
-+ void CreateDecimalRepresentation(const char* decimal_digits,
- int length,
- int decimal_point,
- int digits_after_point,
-@@ -375,7 +379,7 @@ class DoubleToStringConverter {
- const int max_leading_padding_zeroes_in_precision_mode_;
- const int max_trailing_padding_zeroes_in_precision_mode_;
-
-- DISALLOW_IMPLICIT_CONSTRUCTORS(DoubleToStringConverter);
-+ DC_DISALLOW_IMPLICIT_CONSTRUCTORS(DoubleToStringConverter);
- };
-
-
-@@ -390,7 +394,8 @@ class StringToDoubleConverter {
- ALLOW_TRAILING_JUNK = 4,
- ALLOW_LEADING_SPACES = 8,
- ALLOW_TRAILING_SPACES = 16,
-- ALLOW_SPACES_AFTER_SIGN = 32
-+ ALLOW_SPACES_AFTER_SIGN = 32,
-+ ALLOW_CASE_INSENSIBILITY = 64,
- };
-
- // Flags should be a bit-or combination of the possible Flags-enum.
-@@ -416,11 +421,14 @@ class StringToDoubleConverter {
- // junk, too.
- // - ALLOW_TRAILING_JUNK: ignore trailing characters that are not part of
- // a double literal.
-- // - ALLOW_LEADING_SPACES: skip over leading spaces.
-- // - ALLOW_TRAILING_SPACES: ignore trailing spaces.
-- // - ALLOW_SPACES_AFTER_SIGN: ignore spaces after the sign.
-+ // - ALLOW_LEADING_SPACES: skip over leading whitespace, including spaces,
-+ // new-lines, and tabs.
-+ // - ALLOW_TRAILING_SPACES: ignore trailing whitespace.
-+ // - ALLOW_SPACES_AFTER_SIGN: ignore whitespace after the sign.
- // Ex: StringToDouble("- 123.2") -> -123.2.
- // StringToDouble("+ 123.2") -> 123.2
-+ // - ALLOW_CASE_INSENSIBILITY: ignore case of characters for special values:
-+ // infinity and nan.
- //
- // empty_string_value is returned when an empty string is given as input.
- // If ALLOW_LEADING_SPACES or ALLOW_TRAILING_SPACES are set, then a string
-@@ -503,19 +511,24 @@ class StringToDoubleConverter {
- // in the 'processed_characters_count'. Trailing junk is never included.
- double StringToDouble(const char* buffer,
- int length,
-- int* processed_characters_count) {
-- return StringToIeee(buffer, length, processed_characters_count, true);
-- }
-+ int* processed_characters_count) const;
-+
-+ // Same as StringToDouble above but for 16 bit characters.
-+ double StringToDouble(const uc16* buffer,
-+ int length,
-+ int* processed_characters_count) const;
-
- // Same as StringToDouble but reads a float.
- // Note that this is not equivalent to static_cast<float>(StringToDouble(...))
- // due to potential double-rounding.
- float StringToFloat(const char* buffer,
- int length,
-- int* processed_characters_count) {
-- return static_cast<float>(StringToIeee(buffer, length,
-- processed_characters_count, false));
-- }
-+ int* processed_characters_count) const;
-+
-+ // Same as StringToFloat above but for 16 bit characters.
-+ float StringToFloat(const uc16* buffer,
-+ int length,
-+ int* processed_characters_count) const;
-
- private:
- const int flags_;
-@@ -524,12 +537,13 @@ class StringToDoubleConverter {
- const char* const infinity_symbol_;
- const char* const nan_symbol_;
-
-- double StringToIeee(const char* buffer,
-+ template <class Iterator>
-+ double StringToIeee(Iterator start_pointer,
- int length,
-- int* processed_characters_count,
-- bool read_as_double);
-+ bool read_as_double,
-+ int* processed_characters_count) const;
-
-- DISALLOW_IMPLICIT_CONSTRUCTORS(StringToDoubleConverter);
-+ DC_DISALLOW_IMPLICIT_CONSTRUCTORS(StringToDoubleConverter);
- };
-
- } // namespace double_conversion
-diff --git a/mfbt/double-conversion/fast-dtoa.cc b/mfbt/double-conversion/fast-dtoa.cc
-index 0609422..d338216 100644
---- a/mfbt/double-conversion/fast-dtoa.cc
-+++ b/mfbt/double-conversion/fast-dtoa.cc
-@@ -25,11 +25,11 @@
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--#include "fast-dtoa.h"
-+#include <fast-dtoa.h>
-
--#include "cached-powers.h"
--#include "diy-fp.h"
--#include "ieee.h"
-+#include <cached-powers.h>
-+#include <diy-fp.h>
-+#include <ieee.h>
-
- namespace double_conversion {
-
-@@ -248,10 +248,7 @@ static void BiggestPowerTen(uint32_t number,
- // Note: kPowersOf10[i] == 10^(i-1).
- exponent_plus_one_guess++;
- // We don't have any guarantees that 2^number_bits <= number.
-- // TODO(floitsch): can we change the 'while' into an 'if'? We definitely see
-- // number < (2^number_bits - 1), but I haven't encountered
-- // number < (2^number_bits - 2) yet.
-- while (number < kSmallPowersOfTen[exponent_plus_one_guess]) {
-+ if (number < kSmallPowersOfTen[exponent_plus_one_guess]) {
- exponent_plus_one_guess--;
- }
- *power = kSmallPowersOfTen[exponent_plus_one_guess];
-@@ -350,7 +347,8 @@ static bool DigitGen(DiyFp low,
- // that is smaller than integrals.
- while (*kappa > 0) {
- int digit = integrals / divisor;
-- buffer[*length] = '0' + digit;
-+ ASSERT(digit <= 9);
-+ buffer[*length] = static_cast<char>('0' + digit);
- (*length)++;
- integrals %= divisor;
- (*kappa)--;
-@@ -379,13 +377,14 @@ static bool DigitGen(DiyFp low,
- ASSERT(one.e() >= -60);
- ASSERT(fractionals < one.f());
- ASSERT(UINT64_2PART_C(0xFFFFFFFF, FFFFFFFF) / 10 >= one.f());
-- while (true) {
-+ for (;;) {
- fractionals *= 10;
- unit *= 10;
- unsafe_interval.set_f(unsafe_interval.f() * 10);
- // Integer division by one.
- int digit = static_cast<int>(fractionals >> -one.e());
-- buffer[*length] = '0' + digit;
-+ ASSERT(digit <= 9);
-+ buffer[*length] = static_cast<char>('0' + digit);
- (*length)++;
- fractionals &= one.f() - 1; // Modulo by one.
- (*kappa)--;
-@@ -459,7 +458,8 @@ static bool DigitGenCounted(DiyFp w,
- // that is smaller than 'integrals'.
- while (*kappa > 0) {
- int digit = integrals / divisor;
-- buffer[*length] = '0' + digit;
-+ ASSERT(digit <= 9);
-+ buffer[*length] = static_cast<char>('0' + digit);
- (*length)++;
- requested_digits--;
- integrals %= divisor;
-@@ -492,7 +492,8 @@ static bool DigitGenCounted(DiyFp w,
- w_error *= 10;
- // Integer division by one.
- int digit = static_cast<int>(fractionals >> -one.e());
-- buffer[*length] = '0' + digit;
-+ ASSERT(digit <= 9);
-+ buffer[*length] = static_cast<char>('0' + digit);
- (*length)++;
- requested_digits--;
- fractionals &= one.f() - 1; // Modulo by one.
-@@ -529,7 +530,7 @@ static bool Grisu3(double v,
- if (mode == FAST_DTOA_SHORTEST) {
- Double(v).NormalizedBoundaries(&boundary_minus, &boundary_plus);
- } else {
-- assert(mode == FAST_DTOA_SHORTEST_SINGLE);
-+ ASSERT(mode == FAST_DTOA_SHORTEST_SINGLE);
- float single_v = static_cast<float>(v);
- Single(single_v).NormalizedBoundaries(&boundary_minus, &boundary_plus);
- }
-diff --git a/mfbt/double-conversion/fast-dtoa.h b/mfbt/double-conversion/fast-dtoa.h
-index 5f1e8ee..9c4da92 100644
---- a/mfbt/double-conversion/fast-dtoa.h
-+++ b/mfbt/double-conversion/fast-dtoa.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_FAST_DTOA_H_
- #define DOUBLE_CONVERSION_FAST_DTOA_H_
-
--#include "utils.h"
-+#include <utils.h>
-
- namespace double_conversion {
-
-diff --git a/mfbt/double-conversion/fixed-dtoa.cc b/mfbt/double-conversion/fixed-dtoa.cc
-index d56b144..fa23529 100644
---- a/mfbt/double-conversion/fixed-dtoa.cc
-+++ b/mfbt/double-conversion/fixed-dtoa.cc
-@@ -25,10 +25,10 @@
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--#include <math.h>
-+#include <cmath>
-
--#include "fixed-dtoa.h"
--#include "ieee.h"
-+#include <fixed-dtoa.h>
-+#include <ieee.h>
-
- namespace double_conversion {
-
-@@ -98,7 +98,7 @@ class UInt128 {
- return high_bits_ == 0 && low_bits_ == 0;
- }
-
-- int BitAt(int position) {
-+ int BitAt(int position) const {
- if (position >= 64) {
- return static_cast<int>(high_bits_ >> (position - 64)) & 1;
- } else {
-@@ -133,7 +133,7 @@ static void FillDigits32(uint32_t number, Vector<char> buffer, int* length) {
- while (number != 0) {
- int digit = number % 10;
- number /= 10;
-- buffer[(*length) + number_length] = '0' + digit;
-+ buffer[(*length) + number_length] = static_cast<char>('0' + digit);
- number_length++;
- }
- // Exchange the digits.
-@@ -150,7 +150,7 @@ static void FillDigits32(uint32_t number, Vector<char> buffer, int* length) {
- }
-
-
--static void FillDigits64FixedLength(uint64_t number, int requested_length,
-+static void FillDigits64FixedLength(uint64_t number,
- Vector<char> buffer, int* length) {
- const uint32_t kTen7 = 10000000;
- // For efficiency cut the number into 3 uint32_t parts, and print those.
-@@ -253,12 +253,14 @@ static void FillFractionals(uint64_t fractionals, int exponent,
- fractionals *= 5;
- point--;
- int digit = static_cast<int>(fractionals >> point);
-- buffer[*length] = '0' + digit;
-+ ASSERT(digit <= 9);
-+ buffer[*length] = static_cast<char>('0' + digit);
- (*length)++;
- fractionals -= static_cast<uint64_t>(digit) << point;
- }
- // If the first bit after the point is set we have to round up.
-- if (((fractionals >> (point - 1)) & 1) == 1) {
-+ ASSERT(fractionals == 0 || point - 1 >= 0);
-+ if ((fractionals != 0) && ((fractionals >> (point - 1)) & 1) == 1) {
- RoundUp(buffer, length, decimal_point);
- }
- } else { // We need 128 bits.
-@@ -274,7 +276,8 @@ static void FillFractionals(uint64_t fractionals, int exponent,
- fractionals128.Multiply(5);
- point--;
- int digit = fractionals128.DivModPowerOf2(point);
-- buffer[*length] = '0' + digit;
-+ ASSERT(digit <= 9);
-+ buffer[*length] = static_cast<char>('0' + digit);
- (*length)++;
- }
- if (fractionals128.BitAt(point - 1) == 1) {
-@@ -358,7 +361,7 @@ bool FastFixedDtoa(double v,
- remainder = (dividend % divisor) << exponent;
- }
- FillDigits32(quotient, buffer, length);
-- FillDigits64FixedLength(remainder, divisor_power, buffer, length);
-+ FillDigits64FixedLength(remainder, buffer, length);
- *decimal_point = *length;
- } else if (exponent >= 0) {
- // 0 <= exponent <= 11
-diff --git a/mfbt/double-conversion/fixed-dtoa.h b/mfbt/double-conversion/fixed-dtoa.h
-index 3bdd08e..19fd2e7 100644
---- a/mfbt/double-conversion/fixed-dtoa.h
-+++ b/mfbt/double-conversion/fixed-dtoa.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_FIXED_DTOA_H_
- #define DOUBLE_CONVERSION_FIXED_DTOA_H_
-
--#include "utils.h"
-+#include <utils.h>
-
- namespace double_conversion {
-
-diff --git a/mfbt/double-conversion/ieee.h b/mfbt/double-conversion/ieee.h
-index 839dc47..8949b02 100644
---- a/mfbt/double-conversion/ieee.h
-+++ b/mfbt/double-conversion/ieee.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_DOUBLE_H_
- #define DOUBLE_CONVERSION_DOUBLE_H_
-
--#include "diy-fp.h"
-+#include <diy-fp.h>
-
- namespace double_conversion {
-
-@@ -99,7 +99,7 @@ class Double {
- }
-
- double PreviousDouble() const {
-- if (d64_ == (kInfinity | kSignMask)) return -Double::Infinity();
-+ if (d64_ == (kInfinity | kSignMask)) return -Infinity();
- if (Sign() < 0) {
- return Double(d64_ + 1).value();
- } else {
-@@ -256,6 +256,8 @@ class Double {
- return (significand & kSignificandMask) |
- (biased_exponent << kPhysicalSignificandSize);
- }
-+
-+ DC_DISALLOW_COPY_AND_ASSIGN(Double);
- };
-
- class Single {
-@@ -391,6 +393,8 @@ class Single {
- static const uint32_t kNaN = 0x7FC00000;
-
- const uint32_t d32_;
-+
-+ DC_DISALLOW_COPY_AND_ASSIGN(Single);
- };
-
- } // namespace double_conversion
-diff --git a/mfbt/double-conversion/strtod.cc b/mfbt/double-conversion/strtod.cc
-index d773f44..a9e85c1 100644
---- a/mfbt/double-conversion/strtod.cc
-+++ b/mfbt/double-conversion/strtod.cc
-@@ -25,13 +25,13 @@
- // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
--#include <stdarg.h>
--#include <limits.h>
-+#include <climits>
-+#include <cstdarg>
-
--#include "strtod.h"
--#include "bignum.h"
--#include "cached-powers.h"
--#include "ieee.h"
-+#include <bignum.h>
-+#include <cached-powers.h>
-+#include <ieee.h>
-+#include <strtod.h>
-
- namespace double_conversion {
-
-@@ -137,6 +137,7 @@ static void TrimAndCut(Vector<const char> buffer, int exponent,
- Vector<const char> right_trimmed = TrimTrailingZeros(left_trimmed);
- exponent += left_trimmed.length() - right_trimmed.length();
- if (right_trimmed.length() > kMaxSignificantDecimalDigits) {
-+ (void) space_size; // Mark variable as used.
- ASSERT(space_size >= kMaxSignificantDecimalDigits);
- CutToMaxSignificantDigits(right_trimmed, exponent,
- buffer_copy_space, updated_exponent);
-@@ -204,7 +205,7 @@ static bool DoubleStrtod(Vector<const char> trimmed,
- // Note that the ARM simulator is compiled for 32bits. It therefore exhibits
- // the same problem.
- return false;
--#endif
-+#else
- if (trimmed.length() <= kMaxExactDoubleIntegerDecimalDigits) {
- int read_digits;
- // The trimmed input fits into a double.
-@@ -242,6 +243,7 @@ static bool DoubleStrtod(Vector<const char> trimmed,
- }
- }
- return false;
-+#endif
- }
-
-
-@@ -263,7 +265,6 @@ static DiyFp AdjustmentPowerOfTen(int exponent) {
- case 7: return DiyFp(UINT64_2PART_C(0x98968000, 00000000), -40);
- default:
- UNREACHABLE();
-- return DiyFp(0, 0);
- }
- }
-
-@@ -286,7 +287,7 @@ static bool DiyFpStrtod(Vector<const char> buffer,
- const int kDenominator = 1 << kDenominatorLog;
- // Move the remaining decimals into the exponent.
- exponent += remaining_decimals;
-- int error = (remaining_decimals == 0 ? 0 : kDenominator / 2);
-+ uint64_t error = (remaining_decimals == 0 ? 0 : kDenominator / 2);
-
- int old_e = input.e();
- input.Normalize();
-@@ -471,6 +472,30 @@ double Strtod(Vector<const char> buffer, int exponent) {
- }
- }
-
-+static float SanitizedDoubletof(double d) {
-+ ASSERT(d >= 0.0);
-+ // ASAN has a sanitize check that disallows casting doubles to floats if
-+ // they are too big.
-+ // https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html#available-checks
-+ // The behavior should be covered by IEEE 754, but some projects use this
-+ // flag, so work around it.
-+ float max_finite = 3.4028234663852885981170418348451692544e+38;
-+ // The half-way point between the max-finite and infinity value.
-+ // Since infinity has an even significand everything equal or greater than
-+ // this value should become infinity.
-+ double half_max_finite_infinity =
-+ 3.40282356779733661637539395458142568448e+38;
-+ if (d >= max_finite) {
-+ if (d >= half_max_finite_infinity) {
-+ return Single::Infinity();
-+ } else {
-+ return max_finite;
-+ }
-+ } else {
-+ return static_cast<float>(d);
-+ }
-+}
-+
- float Strtof(Vector<const char> buffer, int exponent) {
- char copy_buffer[kMaxSignificantDecimalDigits];
- Vector<const char> trimmed;
-@@ -482,7 +507,7 @@ float Strtof(Vector<const char> buffer, int exponent) {
- double double_guess;
- bool is_correct = ComputeGuess(trimmed, exponent, &double_guess);
-
-- float float_guess = static_cast<float>(double_guess);
-+ float float_guess = SanitizedDoubletof(double_guess);
- if (float_guess == double_guess) {
- // This shortcut triggers for integer values.
- return float_guess;
-@@ -505,18 +530,18 @@ float Strtof(Vector<const char> buffer, int exponent) {
- double double_next = Double(double_guess).NextDouble();
- double double_previous = Double(double_guess).PreviousDouble();
-
-- float f1 = static_cast<float>(double_previous);
-+ float f1 = SanitizedDoubletof(double_previous);
- float f2 = float_guess;
-- float f3 = static_cast<float>(double_next);
-+ float f3 = SanitizedDoubletof(double_next);
- float f4;
- if (is_correct) {
- f4 = f3;
- } else {
- double double_next2 = Double(double_next).NextDouble();
-- f4 = static_cast<float>(double_next2);
-+ f4 = SanitizedDoubletof(double_next2);
- }
-- (void)f2;
-- assert(f1 <= f2 && f2 <= f3 && f3 <= f4);
-+ (void) f2; // Mark variable as used.
-+ ASSERT(f1 <= f2 && f2 <= f3 && f3 <= f4);
-
- // If the guess doesn't lie near a single-precision boundary we can simply
- // return its float-value.
-@@ -524,11 +549,11 @@ float Strtof(Vector<const char> buffer, int exponent) {
- return float_guess;
- }
-
-- assert((f1 != f2 && f2 == f3 && f3 == f4) ||
-+ ASSERT((f1 != f2 && f2 == f3 && f3 == f4) ||
- (f1 == f2 && f2 != f3 && f3 == f4) ||
- (f1 == f2 && f2 == f3 && f3 != f4));
-
-- // guess and next are the two possible canditates (in the same way that
-+ // guess and next are the two possible candidates (in the same way that
- // double_guess was the lower candidate for a double-precision guess).
- float guess = f1;
- float next = f4;
-diff --git a/mfbt/double-conversion/strtod.h b/mfbt/double-conversion/strtod.h
-index ed0293b..58c4926 100644
---- a/mfbt/double-conversion/strtod.h
-+++ b/mfbt/double-conversion/strtod.h
-@@ -28,7 +28,7 @@
- #ifndef DOUBLE_CONVERSION_STRTOD_H_
- #define DOUBLE_CONVERSION_STRTOD_H_
-
--#include "utils.h"
-+#include <utils.h>
-
- namespace double_conversion {
-
-diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
-index 0eec2d9..a748654 100644
---- a/mfbt/double-conversion/utils.h
-+++ b/mfbt/double-conversion/utils.h
-@@ -28,19 +28,34 @@
- #ifndef DOUBLE_CONVERSION_UTILS_H_
- #define DOUBLE_CONVERSION_UTILS_H_
-
--#include <stdlib.h>
--#include <string.h>
-+#include <cstdlib>
-+#include <cstring>
-
--#include <assert.h>
-+#include <cassert>
- #ifndef ASSERT
--#define ASSERT(condition) (assert(condition))
-+#define ASSERT(condition) \
-+ assert(condition);
- #endif
- #ifndef UNIMPLEMENTED
- #define UNIMPLEMENTED() (abort())
- #endif
-+#ifndef DOUBLE_CONVERSION_NO_RETURN
-+#ifdef _MSC_VER
-+#define DOUBLE_CONVERSION_NO_RETURN __declspec(noreturn)
-+#else
-+#define DOUBLE_CONVERSION_NO_RETURN __attribute__((noreturn))
-+#endif
-+#endif
- #ifndef UNREACHABLE
-+#ifdef _MSC_VER
-+void DOUBLE_CONVERSION_NO_RETURN abort_noreturn();
-+inline void abort_noreturn() { abort(); }
-+#define UNREACHABLE() (abort_noreturn())
-+#else
- #define UNREACHABLE() (abort())
- #endif
-+#endif
-+
-
- // Double operations detection based on target architecture.
- // Linux uses a 80bit wide floating point stack on x86. This induces double
-@@ -55,11 +70,18 @@
- #if defined(_M_X64) || defined(__x86_64__) || \
- defined(__ARMEL__) || defined(__avr32__) || \
- defined(__hppa__) || defined(__ia64__) || \
-- defined(__mips__) || defined(__powerpc__) || \
-+ defined(__mips__) || \
-+ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \
-+ defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \
- defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
- defined(__SH4__) || defined(__alpha__) || \
-- defined(_MIPS_ARCH_MIPS32R2)
-+ defined(_MIPS_ARCH_MIPS32R2) || \
-+ defined(__AARCH64EL__) || defined(__aarch64__) || \
-+ defined(__riscv)
- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
-+#elif defined(__mc68000__) || \
-+ defined(__pnacl__) || defined(__native_client__)
-+#undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
- #elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
- #if defined(_WIN32)
- // Windows uses a 64bit wide floating point stack.
-@@ -71,9 +93,10 @@
- #error Target architecture was not detected as supported by Double-Conversion.
- #endif
-
--
- #include "mozilla/StandardInteger.h"
-
-+typedef uint16_t uc16;
-+
- // The following macro works on both 32 and 64-bit platforms.
- // Usage: instead of writing 0x1234567890123456
- // write UINT64_2PART_C(0x12345678,90123456);
-@@ -92,8 +115,8 @@
-
- // A macro to disallow the evil copy constructor and operator= functions
- // This should be used in the private: declarations for a class
--#ifndef DISALLOW_COPY_AND_ASSIGN
--#define DISALLOW_COPY_AND_ASSIGN(TypeName) \
-+#ifndef DC_DISALLOW_COPY_AND_ASSIGN
-+#define DC_DISALLOW_COPY_AND_ASSIGN(TypeName) \
- TypeName(const TypeName&); \
- void operator=(const TypeName&)
- #endif
-@@ -104,10 +127,10 @@
- // This should be used in the private: declarations for a class
- // that wants to prevent anyone from instantiating it. This is
- // especially useful for classes containing only static methods.
--#ifndef DISALLOW_IMPLICIT_CONSTRUCTORS
--#define DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
-+#ifndef DC_DISALLOW_IMPLICIT_CONSTRUCTORS
-+#define DC_DISALLOW_IMPLICIT_CONSTRUCTORS(TypeName) \
- TypeName(); \
-- DISALLOW_COPY_AND_ASSIGN(TypeName)
-+ DC_DISALLOW_COPY_AND_ASSIGN(TypeName)
- #endif
-
- namespace double_conversion {
-@@ -139,8 +162,8 @@ template <typename T>
- class Vector {
- public:
- Vector() : start_(NULL), length_(0) {}
-- Vector(T* data, int length) : start_(data), length_(length) {
-- ASSERT(length == 0 || (length > 0 && data != NULL));
-+ Vector(T* data, int len) : start_(data), length_(len) {
-+ ASSERT(len == 0 || (len > 0 && data != NULL));
- }
-
- // Returns a vector using the same backing storage as this one,
-@@ -182,8 +205,8 @@ class Vector {
- // buffer bounds on all operations in debug mode.
- class StringBuilder {
- public:
-- StringBuilder(char* buffer, int size)
-- : buffer_(buffer, size), position_(0) { }
-+ StringBuilder(char* buffer, int buffer_size)
-+ : buffer_(buffer, buffer_size), position_(0) { }
-
- ~StringBuilder() { if (!is_finalized()) Finalize(); }
-
-@@ -249,7 +272,7 @@ class StringBuilder {
-
- bool is_finalized() const { return position_ < 0; }
-
-- DISALLOW_IMPLICIT_CONSTRUCTORS(StringBuilder);
-+ DC_DISALLOW_IMPLICIT_CONSTRUCTORS(StringBuilder);
- };
-
- // The type-based aliasing rule allows the compiler to assume that pointers of
-@@ -280,7 +303,12 @@ template <class Dest, class Source>
- inline Dest BitCast(const Source& source) {
- // Compile time assertion: sizeof(Dest) == sizeof(Source)
- // A compile error here means your Dest and Source have different sizes.
-+#if __cplusplus >= 201103L
-+ static_assert(sizeof(Dest) == sizeof(Source),
-+ "source and destination size mismatch");
-+#else
- typedef char VerifySizesAreEqual[sizeof(Dest) == sizeof(Source) ? 1 : -1];
-+#endif
-
- Dest dest;
- memmove(&dest, &source, sizeof(dest));
---
-2.17.0
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/Update-the-double-conversion-update-script.patch b/meta-oe/recipes-extended/mozjs/mozjs/Update-the-double-conversion-update-script.patch
deleted file mode 100644
index ffeac49826..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/Update-the-double-conversion-update-script.patch
+++ /dev/null
@@ -1,175 +0,0 @@
-From 1c3f6dd9bb478fea0622e8a9ba2efbf19d73e302 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Fri, 1 Jun 2018 14:46:47 -0700
-Subject: [PATCH] Update the double conversion update script
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
----
- .../add-mfbt-api-markers.patch | 94 -------------------
- .../more-architectures.patch | 30 ------
- mfbt/double-conversion/update.sh | 8 +-
- 3 files changed, 3 insertions(+), 129 deletions(-)
- delete mode 100644 mfbt/double-conversion/add-mfbt-api-markers.patch
- delete mode 100644 mfbt/double-conversion/more-architectures.patch
-
-diff --git a/mfbt/double-conversion/add-mfbt-api-markers.patch b/mfbt/double-conversion/add-mfbt-api-markers.patch
-deleted file mode 100644
-index b98ec74..0000000
---- a/mfbt/double-conversion/add-mfbt-api-markers.patch
-+++ /dev/null
-@@ -1,94 +0,0 @@
--diff --git a/mfbt/double-conversion/double-conversion.h b/mfbt/double-conversion/double-conversion.h
--index f98edae..e536a01 100644
----- a/mfbt/double-conversion/double-conversion.h
--+++ b/mfbt/double-conversion/double-conversion.h
--@@ -28,6 +28,7 @@
-- #ifndef DOUBLE_CONVERSION_DOUBLE_CONVERSION_H_
-- #define DOUBLE_CONVERSION_DOUBLE_CONVERSION_H_
--
--+#include "mozilla/Types.h"
-- #include "utils.h"
--
-- namespace double_conversion {
--@@ -129,7 +130,7 @@ class DoubleToStringConverter {
-- }
--
-- // Returns a converter following the EcmaScript specification.
--- static const DoubleToStringConverter& EcmaScriptConverter();
--+ static MFBT_API(const DoubleToStringConverter&) EcmaScriptConverter();
--
-- // Computes the shortest string of digits that correctly represent the input
-- // number. Depending on decimal_in_shortest_low and decimal_in_shortest_high
--@@ -197,7 +198,7 @@ class DoubleToStringConverter {
-- // The last two conditions imply that the result will never contain more than
-- // 1 + kMaxFixedDigitsBeforePoint + 1 + kMaxFixedDigitsAfterPoint characters
-- // (one additional character for the sign, and one for the decimal point).
--- bool ToFixed(double value,
--+ MFBT_API(bool) ToFixed(double value,
-- int requested_digits,
-- StringBuilder* result_builder) const;
--
--@@ -229,7 +230,7 @@ class DoubleToStringConverter {
-- // kMaxExponentialDigits + 8 characters (the sign, the digit before the
-- // decimal point, the decimal point, the exponent character, the
-- // exponent's sign, and at most 3 exponent digits).
--- bool ToExponential(double value,
--+ MFBT_API(bool) ToExponential(double value,
-- int requested_digits,
-- StringBuilder* result_builder) const;
--
--@@ -267,7 +268,7 @@ class DoubleToStringConverter {
-- // The last condition implies that the result will never contain more than
-- // kMaxPrecisionDigits + 7 characters (the sign, the decimal point, the
-- // exponent character, the exponent's sign, and at most 3 exponent digits).
--- bool ToPrecision(double value,
--+ MFBT_API(bool) ToPrecision(double value,
-- int precision,
-- StringBuilder* result_builder) const;
--
--@@ -292,7 +293,7 @@ class DoubleToStringConverter {
-- // kBase10MaximalLength.
-- // Note that DoubleToAscii null-terminates its input. So the given buffer
-- // should be at least kBase10MaximalLength + 1 characters long.
--- static const int kBase10MaximalLength = 17;
--+ static const MFBT_DATA(int) kBase10MaximalLength = 17;
--
-- // Converts the given double 'v' to ascii. 'v' must not be NaN, +Infinity, or
-- // -Infinity. In SHORTEST_SINGLE-mode this restriction also applies to 'v'
--@@ -332,7 +333,7 @@ class DoubleToStringConverter {
-- // terminating null-character when computing the maximal output size.
-- // The given length is only used in debug mode to ensure the buffer is big
-- // enough.
--- static void DoubleToAscii(double v,
--+ static MFBT_API(void) DoubleToAscii(double v,
-- DtoaMode mode,
-- int requested_digits,
-- char* buffer,
--@@ -343,7 +344,7 @@ class DoubleToStringConverter {
--
-- private:
-- // Implementation for ToShortest and ToShortestSingle.
--- bool ToShortestIeeeNumber(double value,
--+ MFBT_API(bool) ToShortestIeeeNumber(double value,
-- StringBuilder* result_builder,
-- DtoaMode mode) const;
--
--@@ -351,15 +352,15 @@ class DoubleToStringConverter {
-- // corresponding string using the configured infinity/nan-symbol.
-- // If either of them is NULL or the value is not special then the
-- // function returns false.
--- bool HandleSpecialValues(double value, StringBuilder* result_builder) const;
--+ MFBT_API(bool) HandleSpecialValues(double value, StringBuilder* result_builder) const;
-- // Constructs an exponential representation (i.e. 1.234e56).
-- // The given exponent assumes a decimal point after the first decimal digit.
--- void CreateExponentialRepresentation(const char* decimal_digits,
--+ MFBT_API(void) CreateExponentialRepresentation(const char* decimal_digits,
-- int length,
-- int exponent,
-- StringBuilder* result_builder) const;
-- // Creates a decimal representation (i.e 1234.5678).
--- void CreateDecimalRepresentation(const char* decimal_digits,
--+ MFBT_API(void) CreateDecimalRepresentation(const char* decimal_digits,
-- int length,
-- int decimal_point,
-- int digits_after_point,
-diff --git a/mfbt/double-conversion/more-architectures.patch b/mfbt/double-conversion/more-architectures.patch
-deleted file mode 100644
-index b8d3804..0000000
---- a/mfbt/double-conversion/more-architectures.patch
-+++ /dev/null
-@@ -1,30 +0,0 @@
--diff --git a/mfbt/double-conversion/utils.h b/mfbt/double-conversion/utils.h
----- a/mfbt/double-conversion/utils.h
--+++ b/mfbt/double-conversion/utils.h
--@@ -48,20 +48,24 @@
-- // An easy way to test if the floating-point operations are correct is to
-- // evaluate: 89255.0/1e22. If the floating-point stack is 64 bits wide then
-- // the result is equal to 89255e-22.
-- // The best way to test this, is to create a division-function and to compare
-- // the output of the division with the expected result. (Inlining must be
-- // disabled.)
-- // On Linux,x86 89255e-22 != Div_double(89255.0/1e22)
-- #if defined(_M_X64) || defined(__x86_64__) || \
--- defined(__ARMEL__) || \
--+ defined(__ARMEL__) || defined(__avr32__) || \
--+ defined(__hppa__) || defined(__ia64__) || \
--+ defined(__mips__) || defined(__powerpc__) || \
--+ defined(__sparc__) || defined(__sparc) || defined(__s390__) || \
--+ defined(__SH4__) || defined(__alpha__) || \
-- defined(_MIPS_ARCH_MIPS32R2)
-- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
---#elif defined(_M_IX86) || defined(__i386__)
--+#elif defined(_M_IX86) || defined(__i386__) || defined(__i386)
-- #if defined(_WIN32)
-- // Windows uses a 64bit wide floating point stack.
-- #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1
-- #else
-- #undef DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS
-- #endif // _WIN32
-- #else
-- #error Target architecture was not detected as supported by Double-Conversion.
-diff --git a/mfbt/double-conversion/update.sh b/mfbt/double-conversion/update.sh
-index 81add8e..9ef2e91 100755
---- a/mfbt/double-conversion/update.sh
-+++ b/mfbt/double-conversion/update.sh
-@@ -4,14 +4,12 @@
- # double-conversion source that we need.
-
- cp $1/LICENSE ./
--cp $1/README ./
-+cp $1/COPYING ./
-
- # Includes
--cp $1/src/*.h ./
-+cp $1/double-conversion/*.h ./
-
- # Source
--cp $1/src/*.cc ./
-+cp $1/double-conversion/*.cc ./
-
--patch -p3 < add-mfbt-api-markers.patch
- patch -p3 < use-StandardInteger.patch
--patch -p3 < more-architectures.patch
---
-2.17.0
-
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch b/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch
deleted file mode 100644
index 43c459042b..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/fix-the-compile-error-of-powerpc64.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-fix the compile error of powerpc64
-
-Upstream-status: Accepted
-
- fix the following error
- |error: 'jsuword' does not name a type
-
-
---- a/js/src/jsval.hold 2015-04-24 01:15:06.692970731 -0500
-+++ b/js/src/jsval.h 2015-04-24 01:15:41.792969478 -0500
-@@ -304,7 +304,6 @@
- int32_t i32;
- uint32_t u32;
- JSWhyMagic why;
-- jsuword word;
- } payload;
- } s;
- double asDouble;
diff --git a/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch b/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch
deleted file mode 100644
index abde01bcdb..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs/fix_milestone_compile_issue.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-fix the compile error do to perl update
-
-Upstream-status: Inappropriate
-
-
-Signed-of-by: Armin Kuster <akuster808@gmail.com>
-
-Index: src/config/milestone.pl
-===================================================================
---- src.orig/config/milestone.pl
-+++ src/config/milestone.pl
-@@ -55,7 +55,7 @@ $MILESTONE_FILE = "$TOPSRCDIR/config/mi
- #
- my $milestone = Moz::Milestone::getOfficialMilestone($MILESTONE_FILE);
-
--if (defined(@TEMPLATE_FILE)) {
-+if (@TEMPLATE_FILE) {
- my $TFILE;
-
- foreach $TFILE (@TEMPLATE_FILE) {
diff --git a/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb b/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
deleted file mode 100644
index c5fbab20b0..0000000000
--- a/meta-oe/recipes-extended/mozjs/mozjs_17.0.0.bb
+++ /dev/null
@@ -1,83 +0,0 @@
-SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
-HOMEPAGE = "http://www.mozilla.org/js/"
-LICENSE = "MPL-2.0"
-LIC_FILES_CHKSUM = "file://../../LICENSE;md5=815ca599c9df247a0c7f619bab123dad"
-
-SRC_URI = "http://ftp.mozilla.org/pub/mozilla.org/js/${BPN}${PV}.tar.gz \
- file://0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch \
- file://0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
- file://0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch;patchdir=../../ \
- file://0004-mozbug746112-no-decommit-on-large-pages.patch;patchdir=../../ \
- file://0005-aarch64-64k-page.patch;patchdir=../../ \
- file://0001-regenerate-configure.patch;patchdir=../../ \
- file://fix-the-compile-error-of-powerpc64.patch;patchdir=../../ \
- file://fix_milestone_compile_issue.patch \
- file://0010-fix-cross-compilation-on-i586-targets.patch;patchdir=../../ \
- file://Manually_mmap_heap_memory_esr17.patch;patchdir=../../ \
- file://0001-compare-the-first-character-of-string-to-be-null-or-.patch;patchdir=../../ \
- file://Update-the-double-conversion-update-script.patch;patchdir=../../ \
- file://Update-Double-Conversion.patch;patchdir=../../ \
- "
-
-SRC_URI[md5sum] = "20b6f8f1140ef6e47daa3b16965c9202"
-SRC_URI[sha256sum] = "321e964fe9386785d3bf80870640f2fa1c683e32fe988eeb201b04471c172fba"
-
-S = "${WORKDIR}/${BPN}${PV}/js/src"
-
-inherit autotools pkgconfig perlnative pythonnative
-
-DEPENDS += "nspr zlib"
-
-# Host specific flags need to be defined, otherwise target flags will be passed to the host
-export HOST_CFLAGS = "${BUILD_CFLAGS}"
-export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
-export HOST_LDFLAGS = "${BUILD_LDFLAGS}"
-
-# nspr's package-config is ignored so set libs manually
-EXTRA_OECONF = " \
- --target=${TARGET_SYS} \
- --host=${BUILD_SYS} \
- --build=${BUILD_SYS} \
- --prefix=${prefix} \
- --libdir=${libdir} \
- --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
- --enable-threadsafe \
- --disable-static \
-"
-EXTRA_OECONF_append_armv4 = " \
- --disable-methodjit \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = "--with-x --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--without-x,virtual/libx11"
-
-# mozjs requires autoreconf 2.13
-do_configure() {
- export HOST_CFLAGS="${BUILD_CFLAGS}"
- export HOST_CXXFLAGS="${BUILD_CPPFLAGS}"
- export HOST_LDFLAGS="${BUILD_LDFLAGS}"
- ( cd ${S}
- gnu-configize --force
- mv config.guess config.sub build/autoconf )
- ${S}/configure ${EXTRA_OECONF}
-}
-
-# patch.bbclass will try to apply the patches already present and fail, so clean them out
-do_unpack() {
- tar -xvf ${DL_DIR}/mozjs17.0.0.tar.gz -C ${WORKDIR}/
- rm -rf ${WORKDIR}/${BPN}${PV}/patches
-}
-
-
-PACKAGES =+ "lib${BPN}"
-FILES_lib${BPN} += "${libdir}/lib*.so"
-FILES_${PN}-dev += "${bindir}/js17-config"
-
-# Fails to build with thumb-1 (qemuarm)
-#| {standard input}: Assembler messages:
-#| {standard input}:2172: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r2,r1,LSR#20'
-#| {standard input}:2173: Error: unshifted register required -- `bic r2,r2,#(1<<11)'
-#| {standard input}:2174: Error: unshifted register required -- `orr r1,r1,#(1<<20)'
-#| {standard input}:2176: Error: instruction not supported in Thumb16 mode -- `subs r2,r2,#0x300'
-#| {standard input}:2178: Error: instruction not supported in Thumb16 mode -- `subs r5,r2,#52'
-ARM_INSTRUCTION_SET = "arm"
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
new file mode 100644
index 0000000000..dedb4adf9b
--- /dev/null
+++ b/meta-oe/recipes-extended/mraa/mraa/0001-cmake-Use-a-regular-expression-to-match-x86-architec.patch
@@ -0,0 +1,37 @@
+From 5de183dc436bb647361ab641d891c113e6a7dadd Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 8 Mar 2020 16:30:48 -0700
+Subject: [PATCH] cmake: Use a regular expression to match x86 architectures
+
+in OE we use i686 for qemux86 and this results in
+
+-- INFO - Target arch is i686
+CMake Error at CMakeLists.txt:191 (message):
+ Only x86, arm, mips, PERIPHERALMAN and mock platforms currently supported
+
+So using a wildcard helps in using any x86 arch
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ CMakeLists.txt | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 250d9106..fb642722 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -176,8 +176,7 @@ else ()
+ message (STATUS "INFO - Override arch is ${DETECTED_ARCH}")
+ endif()
+
+-if (DETECTED_ARCH STREQUAL "i586" OR DETECTED_ARCH STREQUAL "x86_64"
+- OR DETECTED_ARCH STREQUAL "i386")
++if (DETECTED_ARCH MATCHES "i?86" OR DETECTED_ARCH STREQUAL "x86_64")
+ set (X86PLAT ON)
+ elseif (DETECTED_ARCH MATCHES "arm.*" OR DETECTED_ARCH MATCHES "aarch64")
+ set (ARMPLAT ON)
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..d1152ed641
--- /dev/null
+++ b/meta-oe/recipes-extended/mraa/mraa/0001-include-Declare-gVERSION-global-as-extern.patch
@@ -0,0 +1,31 @@
+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_git.bb b/meta-oe/recipes-extended/mraa/mraa_git.bb
index 930c041233..f1cdf66fc2 100644
--- a/meta-oe/recipes-extended/mraa/mraa_git.bb
+++ b/meta-oe/recipes-extended/mraa/mraa_git.bb
@@ -3,12 +3,14 @@ HOMEPAGE = "https://github.com/intel-iot-devkit/mraa"
SECTION = "libs"
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4b92a3b497d7943042a6db40c088c3f2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=91e7de50a8d3cf01057f318d72460acd"
-SRCREV = "fbb7d9232067eac3f4508a37a8f7ea0c4fcebacb"
-PV = "1.9.0-git${SRCPV}"
+SRCREV = "7786c7ded5c9ce7773890d0e3dc27632898fc6b1"
+PV = "2.2.0+git${SRCPV}"
-SRC_URI = "git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
+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 \
"
S = "${WORKDIR}/git"
@@ -16,29 +18,33 @@ S = "${WORKDIR}/git"
# CMakeLists.txt checks the architecture, only x86 and ARM supported for now
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
-inherit cmake distutils3-base
+inherit cmake setuptools3-base
DEPENDS += "json-c"
-EXTRA_OECMAKE_append = " -DINSTALLTOOLS:BOOL=ON -DFIRMATA=ON -DCMAKE_SKIP_RPATH=ON"
+EXTRA_OECMAKE:append = " -DINSTALLTOOLS:BOOL=ON -DFIRMATA=ON -DCMAKE_SKIP_RPATH=ON -DPYTHON2_LIBRARY=OFF \
+ -DPYTHON3_PACKAGES_PATH:PATH=${baselib}/python${PYTHON_BASEVERSION}/site-packages \
+ -DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \
+ -DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI} \
+ "
# Prepend mraa-utils to make sure bindir ends up in there
PACKAGES =+ "${PN}-utils"
-FILES_${PN}-doc += "${datadir}/mraa/examples/"
+FILES:${PN}-doc += "${datadir}/mraa/examples/"
-FILES_${PN}-utils = "${bindir}/"
+FILES:${PN}-utils = "${bindir}/"
# override this in local.conf to get needed bindings.
-# BINDINGS_pn-mraa="python"
+# BINDINGS:pn-mraa="python"
# will result in only the python bindings being built/packaged.
# Note: 'nodejs' is disabled by default because the bindings
# generation currently fails with nodejs (>v7.x).
BINDINGS ??= "python"
# nodejs isn't available for armv4/armv5 architectures
-BINDINGS_armv4 ??= "python"
-BINDINGS_armv5 ??= "python"
+BINDINGS:armv4 ??= "python"
+BINDINGS:armv5 ??= "python"
PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
@@ -47,12 +53,14 @@ PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -DBUILDSWIGPYTHON=OFF, swig-nativ
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:${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}/"
+RDEPENDS:${PYTHON_PN}-${PN} += "${PYTHON_PN}"
-FILES_node-${PN} = "${prefix}/lib/node_modules/"
-RDEPENDS_node-${PN} += "nodejs"
+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)}"
+
+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
new file mode 100644
index 0000000000..f1712b17f5
--- /dev/null
+++ b/meta-oe/recipes-extended/nana/nana/0001-Include-stdlib.h-for-exit-and-abort-prototypes.patch
@@ -0,0 +1,52 @@
+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/change-mandir-to-DESTDIR.patch b/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch
index 653a7e44c1..54098f721d 100644
--- a/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch
+++ b/meta-oe/recipes-extended/nana/nana/change-mandir-to-DESTDIR.patch
@@ -3,7 +3,7 @@ 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
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
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
index aeb25466ca..043fd85500 100644
--- 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
@@ -7,7 +7,7 @@ this patch is from Debian to fix build errors.
"acinclude.m4:34: error: automatic de-ANSI-fication
support has been removed"
-Upstream-Status: pending
+Upstream-Status: Pending
Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
---
diff --git a/meta-oe/recipes-extended/nana/nana_2.5.bb b/meta-oe/recipes-extended/nana/nana_2.5.bb
index 19a90ff07b..c109d4f0fc 100644
--- a/meta-oe/recipes-extended/nana/nana_2.5.bb
+++ b/meta-oe/recipes-extended/nana/nana_2.5.bb
@@ -4,9 +4,10 @@ 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/${PN}/${BP}.tar.gz \
+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"
@@ -15,18 +16,18 @@ LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=16aa57f3b7fdda870cee597275bd5d11"
-inherit autotools-brokensep pkgconfig
+inherit autotools-brokensep pkgconfig texinfo
EXTRA_OEMAKE = "DESTDIR=${D}"
-do_configure_prepend_class-nativesdk() {
+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() {
+do_install:prepend() {
install -d ${D}${mandir}/man1
install -d ${D}${mandir}/man3
install -d ${D}${datadir}/info
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..e2565d6201
--- /dev/null
+++ b/meta-oe/recipes-extended/networking/mstpd_git.bb
@@ -0,0 +1,32 @@
+PR = "r1"
+PV = "0.1+git${SRCPV}"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4325afd396febcb659c36b49533135d4"
+
+SRC_URI = "git://github.com/mstpd/mstpd;branch=master;protocol=https"
+SRCREV = "181c453fc1a00573e19f14960dcc54ad84beea7c"
+S = "${WORKDIR}/git"
+
+SRC_URI:append = " \
+ file://bridge-stp \
+ file://mstpd.service \
+"
+
+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/openlmi/openlmi-tools_0.10.5.bb b/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
index 13e67cba12..df43d25ac3 100644
--- a/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
+++ b/meta-oe/recipes-extended/openlmi/openlmi-tools_0.10.5.bb
@@ -1,28 +1,28 @@
SUMMARY = "Set of CLI tools for Openlmi providers"
DESCRIPTION = "openlmi-tools is a set of command line tools for Openlmi providers."
HOMEPAGE = "http://www.openlmi.org/"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=75859989545e37968a99b631ef42722e"
SECTION = "System/Management"
-inherit setuptools
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "setuptools", "", d)}
-DEPENDS = "python-native pywbem-native python-m2crypto pywbem"
+SKIP_RECIPE[openlmi-tools] ?= "${@bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', '', 'python2 is out of support for long time, read https://www.python.org/doc/sunset-python-2/ https://python3statement.org/ and if you really have to temporarily use this, then set I_SWEAR_TO_MIGRATE_TO_PYTHON3 to "yes"', d)}"
+
+DEPENDS = "python-native python-pywbem-native python-m2crypto python-pywbem"
SRC_URI = "http://fedorahosted.org/released/${BPN}/${BP}.tar.gz \
"
SRC_URI[md5sum] = "e156246cb7b49753db82f4ddf7f03e50"
SRC_URI[sha256sum] = "292b8f5f2250655a4add8183c529b73358bc980bd4f23cfa484a940953fce9e4"
-do_compile_prepend() {
- cd cli
- sed 's/@@VERSION@@/$(VERSION)/g' setup.py.skel >setup.py
-}
-do_install_prepend() {
- cd cli
+S = "${WORKDIR}/${BP}/cli"
+
+do_configure:prepend() {
+ sed 's/@@VERSION@@/$(VERSION)/g' ${S}/setup.py.skel > ${S}/setup.py
}
python() {
- if 'meta-python' not in d.getVar('BBFILE_COLLECTIONS').split():
- raise bb.parse.SkipRecipe('Requires meta-python to be present.')
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
}
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.6.4.bb b/meta-oe/recipes-extended/openwsman/openwsman_2.6.4.bb
deleted file mode 100644
index f46a3bd25c..0000000000
--- a/meta-oe/recipes-extended/openwsman/openwsman_2.6.4.bb
+++ /dev/null
@@ -1,70 +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 distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-SRCREV = "4aff7eaf5df948b6ed74cf4f8dd721a397bfb759"
-PV = "2.6.4"
-
-SRC_URI = "git://github.com/Openwsman/openwsman.git \
- 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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d4f53d4c6cf73b9d43186ce3be6dd0ba"
-
-inherit systemd cmake pkgconfig pythonnative 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 \
- -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"
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/run-ptest b/meta-oe/recipes-extended/ostree/ostree/run-ptest
new file mode 100644
index 0000000000..963d1f6928
--- /dev/null
+++ b/meta-oe/recipes-extended/ostree/ostree/run-ptest
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+gnome-desktop-testing-runner libostree
diff --git a/meta-oe/recipes-extended/ostree/ostree_2023.5.bb b/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
new file mode 100644
index 0000000000..3028c4c92a
--- /dev/null
+++ b/meta-oe/recipes-extended/ostree/ostree_2023.5.bb
@@ -0,0 +1,220 @@
+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] = "bc593afb31fe1ac3d50419f917fafe321a0a3561d7bb2ba498a83740fe3adb14"
+
+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)} \
+ 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[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"
+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_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 \
+"
+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 (default)
+# static ostree-prepare-root
+# ostree-trivial-httpd (requires soup - note soup and curl can coexist)
+# 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 \
+ 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/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch b/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
index ae27517458..1f08d1603a 100644
--- a/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
+++ b/meta-oe/recipes-extended/p7zip/files/0001-Fix-narrowing-errors-Wc-11-narrowing.patch
@@ -1,4 +1,4 @@
-From b6b1782af4aa7f9084d32e4144738dc2535c8d6f Mon Sep 17 00:00:00 2001
+From 653674e11872465dd5edf1c1e8413ea813d7e086 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 23 Apr 2018 23:07:21 -0700
Subject: [PATCH] Fix narrowing errors -Wc++11-narrowing
@@ -17,6 +17,7 @@ also reported here https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=224930
Upstream-Status: Pending
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
---
CPP/Windows/ErrorMsg.cpp | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
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-2017-17969.patch b/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
index 177d1455f8..9ba1078071 100644
--- a/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
+++ b/meta-oe/recipes-extended/p7zip/files/CVE-2017-17969.patch
@@ -1,4 +1,7 @@
-p7zip: Fix CVE-2017-17969
+From 7f2da4f810b429ddb7afa0e252e3d02ced0eba87 Mon Sep 17 00:00:00 2001
+From: Radovan Scasny <radovan.scasny@siemens.com>
+Date: Tue, 20 Feb 2018 12:08:13 +0100
+Subject: [PATCH] p7zip: Fix CVE-2017-17969
[No upstream tracking] -- https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=888297
@@ -8,12 +11,18 @@ Compress/ShrinkDecoder.cpp: Heap-based buffer overflow
in the NCompress::NShrink::CDecoder::CodeReal method
in 7-Zip before 18.00 and p7zip allows remote attackers
to cause a denial of service (out-of-bounds write)
-or potentially execute arbitrary code via a crafted ZIP archive.
+or potentially execute arbitrary code via a crafted ZIP archive.
Upstream-Status: Backport [https://sourceforge.net/p/p7zip/bugs/_discuss/thread/0920f369/8316/attachment/CVE-2017-17969.patch]
CVE: CVE-2017-17969
Signed-off-by: Radovan Scasny <radovan.scasny@siemens.com>
+---
+ CPP/7zip/Compress/ShrinkDecoder.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/CPP/7zip/Compress/ShrinkDecoder.cpp b/CPP/7zip/Compress/ShrinkDecoder.cpp
+index 80b7e67..5bb0559 100644
--- a/CPP/7zip/Compress/ShrinkDecoder.cpp
+++ b/CPP/7zip/Compress/ShrinkDecoder.cpp
@@ -121,7 +121,12 @@ HRESULT CDecoder::CodeReal(ISequentialInStream *inStream, ISequentialOutStream *
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/files/change_numMethods_from_bool_to_unsigned.patch b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
new file mode 100644
index 0000000000..93eb0588c0
--- /dev/null
+++ b/meta-oe/recipes-extended/p7zip/files/change_numMethods_from_bool_to_unsigned.patch
@@ -0,0 +1,34 @@
+From 0820ef4b9238c1e39ae5bda32cc08cce3fd3ce89 Mon Sep 17 00:00:00 2001
+From: Nisha Parrakat <Nisha.Parrakat@kpit.com>
+Date: Wed, 26 May 2021 19:59:28 +0000
+Subject: [PATCH] fixes the below error
+
+| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp: In member function 'virtual LONG NArchive::NWim::CHandler::GetArchiveProperty(PROPID, PROPVARIANT*)':
+| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:308:11: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
+| 308 | numMethods++;
+| | ^~~~~~~~~~
+| ../../../../CPP/7zip/Archive/Wim/WimHandler.cpp:318:9: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
+| 318 | numMethods++;
+
+use unsigned instead of bool
+Signed-off-by: Nisha Parrakat <Nisha.Parrakat@kpit.com>
+
+Upstream-Status: Pending
+
+---
+ CPP/7zip/Archive/Wim/WimHandler.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CPP/7zip/Archive/Wim/WimHandler.cpp b/CPP/7zip/Archive/Wim/WimHandler.cpp
+index 27d3298..4ff5cfe 100644
+--- a/CPP/7zip/Archive/Wim/WimHandler.cpp
++++ b/CPP/7zip/Archive/Wim/WimHandler.cpp
+@@ -298,7 +298,7 @@ STDMETHODIMP CHandler::GetArchiveProperty(PROPID propID, PROPVARIANT *value)
+
+ AString res;
+
+- bool numMethods = 0;
++ unsigned numMethods = 0;
+ for (unsigned i = 0; i < ARRAY_SIZE(k_Methods); i++)
+ {
+ if (methodMask & ((UInt32)1 << i))
diff --git a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch b/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
index b0a560fe98..2636e7f6f4 100644
--- a/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
+++ b/meta-oe/recipes-extended/p7zip/files/do_not_override_compiler_and_do_not_strip.patch
@@ -1,4 +1,7 @@
-do not override compiler and do not strip
+From b2aa209dfc5e59d6329b55b9764782334b63dbe8 Mon Sep 17 00:00:00 2001
+From: Raphael Freudiger <raphael.freudiger@siemens.com>
+Date: Wed, 11 Feb 2015 09:11:47 +0100
+Subject: [PATCH] do not override compiler and do not strip
The default makefile sets the compiler to g++ or gcc. This leads to a wrong architecture when cross-compiling.
Remove the hardcoded compiler and just append the flags to CXX and CC.
@@ -7,9 +10,14 @@ Upstream-Status: Pending
Signed-off-by: Raphael Freudiger <raphael.freudiger@siemens.com>
Reviewed-By: Pascal Bach <pascal.bach@siemens.com>
-diff -Nurp p7zip_15.14.1_orig/makefile.machine p7zip_15.14.1/makefile.machine
---- p7zip_15.14.1_orig/makefile.machine 2016-03-23 20:37:47.000000000 +0100
-+++ p7zip_15.14.1/makefile.machine 2016-06-17 15:33:39.720454477 +0200
+---
+ makefile.machine | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/makefile.machine b/makefile.machine
+index 9e34c34..e9244d9 100644
+--- a/makefile.machine
++++ b/makefile.machine
@@ -2,7 +2,7 @@
# makefile for Linux (x86, PPC, alpha ...)
#
diff --git a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
index d986da9043..e795482eb6 100644
--- a/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
+++ b/meta-oe/recipes-extended/p7zip/p7zip_16.02.bb
@@ -1,6 +1,6 @@
SUMMARY = "7-zip is a commandline utility handling 7z archives."
HOMEPAGE = "http://www.7-zip.org/"
-LICENSE = "LGPL-2.1+ & unRAR"
+LICENSE = "LGPL-2.1-or-later & unRAR"
LIC_FILES_CHKSUM = "file://DOC/copying.txt;md5=4fbd65380cdd255951079008b364516c \
file://DOC/unRarLicense.txt;md5=9c87ddde469ef94aed153b0951d088de \
file://DOC/License.txt;md5=879598edf1f54dddb6930d7581357f8b"
@@ -9,6 +9,9 @@ SRC_URI = "http://downloads.sourceforge.net/p7zip/p7zip/${PV}/p7zip_${PV}_src_al
file://do_not_override_compiler_and_do_not_strip.patch \
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"
@@ -16,27 +19,26 @@ SRC_URI[sha256sum] = "5eb20ac0e2944f6cb9c2d51dd6c4518941c185347d4089ea89087ffdd6
S = "${WORKDIR}/${BPN}_${PV}"
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 ${S}/bin/* ${D}${bindir}
+do_compile:append() {
+ oe_runmake 7z
}
+FILES:${PN} += "${libdir}/* ${bindir}/7z"
+
+FILES_SOLIBSDEV = ""
+INSANE_SKIP:${PN} += "dev-so"
-# all3: to build bin/7za, bin/7z (with its plugins), bin/7zr and bin/7zCon.sfx
-EXTRA_OEMAKE_class-native = "all3"
-
-do_install_class-native() {
- install -d ${D}${bindir}
- install -d ${D}${bindir}/Codecs
- install -m 0755 ${S}/bin/7* ${D}${bindir}
- install -m 0755 ${S}/bin/Codecs/* ${D}${bindir}/Codecs
-
- # Create a shell script wrapper to execute next to 7z.so
- mv ${D}${bindir}/7z ${D}${bindir}/7z.bin
- cat > ${D}${bindir}/7z << 'EOF'
-#!/bin/sh
-exec "$(dirname "$0")"/7z.bin "$@"
-EOF
- chmod 0755 ${D}${bindir}/7z
+do_install() {
+ install -d ${D}${bindir}
+ install -d ${D}${bindir}/Codecs
+ install -d ${D}${libdir}
+ install -d ${D}${libdir}/Codecs
+ install -m 0755 ${S}/bin/7za ${D}${bindir}
+ ln -s 7za ${D}${bindir}/7z
+ install -m 0755 ${S}/bin/Codecs/* ${D}${libdir}/Codecs/
+ install -m 0755 ${S}/bin/7z.so ${D}${libdir}/lib7z.so
}
-BBCLASSEXTEND = "native"
+RPROVIDES:${PN} += "lib7z.so()(64bit) 7z lib7z.so"
+RPROVIDES:${PN}-dev += "lib7z.so()(64bit) 7z lib7z.so"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-extended/p8platform/p8platform_git.bb b/meta-oe/recipes-extended/p8platform/p8platform_git.bb
index f6347c2a4d..bb9574feb2 100644
--- a/meta-oe/recipes-extended/p8platform/p8platform_git.bb
+++ b/meta-oe/recipes-extended/p8platform/p8platform_git.bb
@@ -1,13 +1,13 @@
SUMMARY = "Platform support library used by libCEC and binary add-ons for Kodi"
HOMEPAGE = "http://libcec.pulse-eight.com/"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://src/os.h;md5=752555fa94e82005d45fd201fee5bd33"
-PV = "2.1.0"
+PV = "2.1.0.1+git${SRCPV}"
-SRC_URI = "git://github.com/Pulse-Eight/platform.git"
-SRCREV = "d7bceb64541cb046421cbcd4c98d91e9bf24822f"
+SRC_URI = "git://github.com/Pulse-Eight/platform.git;branch=master;protocol=https"
+SRCREV = "a7cd0d5780ed80a4e70480d1650749f29e8a1fb2"
S = "${WORKDIR}/git"
@@ -15,4 +15,6 @@ inherit cmake pkgconfig
EXTRA_OECMAKE += "-DCMAKE_INSTALL_LIBDIR=${libdir} -DCMAKE_INSTALL_LIBDIR_NOARCH=${libdir}"
-FILES_${PN}-dev += "${libdir}/p8-platform"
+FILES:${PN}-dev += "${libdir}/p8-platform"
+
+RDEPENDS:${PN}-dev = ""
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-configure-Check-for-function-from-libdb-during-confi.patch b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-configure-Check-for-function-from-libdb-during-confi.patch
new file mode 100644
index 0000000000..c5a42359b9
--- /dev/null
+++ b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-configure-Check-for-function-from-libdb-during-confi.patch
@@ -0,0 +1,34 @@
+From 1915754179401b6ee00f0e2ffd844596778e43a2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 12:05:02 -0700
+Subject: [PATCH] configure: Check for function from libdb during configure
+
+checking for main in AC_CHECK_LIB is not the right check to find out if
+a library exists or not, using a function provided by library is more
+appropriate and will help using newer compilers and autoconf in future
+
+Upstream-Status: Submitted [https://github.com/PADL/pam_ccreds/pull/2]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.in | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 3829d9f..3d52933 100644
+--- a/configure.in
++++ b/configure.in
+@@ -72,9 +72,9 @@ AC_CHECK_HEADERS(pam/pam_appl.h pam/pam_misc.h pam/pam_modules.h)
+
+ AC_CHECK_HEADERS(db.h)
+
+-AC_CHECK_LIB(db, main,[LIBS="-ldb $LIBS" found_db_lib=yes],,$LIBS)
++AC_CHECK_LIB(db, db_create,[LIBS="-ldb $LIBS" found_db_lib=yes],,$LIBS)
+ if test -z "$found_db_lib"; then
+- AC_CHECK_LIB(db1, main,[LIBS="-ldb1 $LIBS" found_db_lib=yes],,$LIBS)
++ AC_CHECK_LIB(db1, db_create,[LIBS="-ldb1 $LIBS" found_db_lib=yes],,$LIBS)
+ fi
+
+ AC_CHECK_LIB(pam, pam_start)
+--
+2.37.3
+
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch
deleted file mode 100644
index d7f8f5a966..0000000000
--- a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0001-make-sure-we-don-t-overflow-the-data-buffer.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 59a95494002ce57ace17d676544101e88a55265d Mon Sep 17 00:00:00 2001
-From: Nicolas Boullis <nicolas.boullis@ecp.fr>
-Date: Mon, 23 Mar 2009 10:46:44 +0100
-Subject: [PATCH 1/3] make sure we don't overflow the data buffer
-
-This patch was taken from Debian's libpam-ccreds v10-6 source:
- 0001-make-sure-we-don-t-overflow-the-data-buffer.patch
-
-Reviewed-by: Richard Leitner <richard.leitner@skidata.com>
----
- cc_db.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cc_db.c b/cc_db.c
-index c0e0488..9371c4d 100644
---- a/cc_db.c
-+++ b/cc_db.c
-@@ -199,7 +199,7 @@ int pam_cc_db_get(void *_db, const char *keyname, size_t keylength,
- return (rc == DB_NOTFOUND) ? PAM_AUTHINFO_UNAVAIL : PAM_SERVICE_ERR;
- }
-
-- if (val.size < *size) {
-+ if (val.size > *size) {
- return PAM_BUF_ERR;
- }
-
---
-2.11.0
-
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch
deleted file mode 100644
index adc464924d..0000000000
--- a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0002-add-minimum_uid-option.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 21e3ab24836c5087f3531d2d3270242cea857a79 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
-Date: Thu, 13 May 2010 12:36:26 +0200
-Subject: [PATCH 2/3] add minimum_uid option
-
-Closes: #580037
-
-This patch was taken from Debian's libpam-ccreds v10-6 source:
- 0002-add-minimum_uid-option.patch
-
-Reviewed-by: Richard Leitner <richard.leitner@skidata.com>
----
- cc_pam.c | 39 +++++++++++++++++++++++++++++++++++++++
- 1 file changed, 39 insertions(+)
-
-diff --git a/cc_pam.c b/cc_pam.c
-index d096117..56776aa 100644
---- a/cc_pam.c
-+++ b/cc_pam.c
-@@ -20,6 +20,7 @@
- #include <errno.h>
- #include <limits.h>
- #include <syslog.h>
-+#include <pwd.h>
-
- #include "cc_private.h"
-
-@@ -45,6 +46,30 @@ PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh,
- int flags, int argc, const char **argv);
- #endif
-
-+
-+/*
-+ * Given the PAM arguments and the user we're authenticating, see if we should
-+ * ignore that user because they're root or have a low-numbered UID and we
-+ * were configured to ignore such users. Returns true if we should ignore
-+ * them, false otherwise.
-+ */
-+static int
-+_pamcc_should_ignore(const char *username, int minimum_uid)
-+{
-+ struct passwd *pwd;
-+
-+ if (minimum_uid > 0) {
-+ pwd = getpwnam(username);
-+ if (pwd != NULL && pwd->pw_uid < (unsigned long) minimum_uid) {
-+ syslog(LOG_DEBUG, "ignoring low-UID user (%lu < %d)",
-+ (unsigned long) pwd->pw_uid, minimum_uid);
-+ return 1;
-+ }
-+ }
-+ return 0;
-+}
-+
-+
- static int _pam_sm_interact(pam_handle_t *pamh,
- int flags,
- const char **authtok)
-@@ -291,7 +316,9 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh,
- unsigned int sm_flags = 0, sm_action = 0;
- const char *ccredsfile = NULL;
- const char *action = NULL;
-+ const char *name = NULL;
- int (*selector)(pam_handle_t *, int, unsigned int, const char *);
-+ int minimum_uid = 0;
-
- for (i = 0; i < argc; i++) {
- if (strcmp(argv[i], "use_first_pass") == 0)
-@@ -300,6 +327,8 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh,
- sm_flags |= SM_FLAGS_TRY_FIRST_PASS;
- else if (strcmp(argv[i], "service_specific") == 0)
- sm_flags |= SM_FLAGS_SERVICE_SPECIFIC;
-+ else if (strncmp(argv[i], "minimum_uid=", sizeof("minimum_uid=") - 1) == 0)
-+ minimum_uid = atoi(argv[i] + sizeof("minimum_uid=") - 1);
- else if (strncmp(argv[i], "ccredsfile=", sizeof("ccredsfile=") - 1) == 0)
- ccredsfile = argv[i] + sizeof("ccredsfile=") - 1;
- else if (strncmp(argv[i], "action=", sizeof("action=") - 1) == 0)
-@@ -321,6 +350,16 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh,
- syslog(LOG_ERR, "pam_ccreds: invalid action \"%s\"", action);
- }
-
-+ rc = pam_get_user(pamh, &name, NULL);
-+ if (rc != PAM_SUCCESS || name == NULL) {
-+ if (rc == PAM_CONV_AGAIN)
-+ return PAM_INCOMPLETE;
-+ else
-+ return PAM_SERVICE_ERR;
-+ }
-+ if (_pamcc_should_ignore(name, minimum_uid))
-+ return PAM_USER_UNKNOWN;
-+
- switch (sm_action) {
- case SM_ACTION_VALIDATE_CCREDS:
- selector = _pam_sm_validate_cached_credentials;
---
-2.11.0
-
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-for-all-linux-targets.patch b/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-for-all-linux-targets.patch
deleted file mode 100644
index 988c374428..0000000000
--- a/meta-oe/recipes-extended/pam/pam-plugin-ccreds/0003-Set-EXTENSION_SO-for-all-linux-targets.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2b137b0364c57505a95cb498660e3b97b557540d Mon Sep 17 00:00:00 2001
-From: Richard Leitner <richard.leitner@skidata.com>
-Date: Fri, 1 Jun 2018 13:24:15 +0200
-Subject: [PATCH 3/3] Set EXTENSION_SO for all linux* targets
-
-As EXTENSION_SO gets already set for linux and linux-gnu targets we
-should set it for all linux* targets. This is done by introducing a new
-"LINUX" value for the "TARGET_OS" helper variable.
-
-Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
----
- configure.in | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 0dbdf79..3829d9f 100644
---- a/configure.in
-+++ b/configure.in
-@@ -35,7 +35,8 @@ hpux*) pam_ccreds_so_LD="/bin/ld"
- TARGET_OS="HPUX" ;;
- solaris*) pam_ccreds_so_LD="/usr/ccs/bin/ld"
- pam_ccreds_so_LDFLAGS="-B dynamic -M \$(srcdir)/exports.solaris -G -B group -lc" ;;
--linux*) pam_ccreds_so_LDFLAGS="-shared -Wl,-Bdynamic -Wl,--version-script,\$(srcdir)/exports.linux" ;;
-+linux*) pam_ccreds_so_LDFLAGS="-shared -Wl,-Bdynamic -Wl,--version-script,\$(srcdir)/exports.linux"
-+ TARGET_OS="LINUX" ;;
- *) pam_ccreds_so_LDFLAGS="-shared" ;;
- esac
-
-@@ -43,7 +44,7 @@ AC_SUBST(pam_ccreds_so_LD)
- AC_SUBST(pam_ccreds_so_LDFLAGS)
-
- AM_CONDITIONAL(USE_NATIVE_LINKER, test -n "$pam_ccreds_so_LD")
--AM_CONDITIONAL(EXTENSION_SO, test "$target_os" = "linux" -o "$target_os" = "linux-gnu")
-+AM_CONDITIONAL(EXTENSION_SO, test "$TARGET_OS" = "LINUX")
- AM_CONDITIONAL(EXTENSION_1, test "$TARGET_OS" = "HPUX")
-
- if test -z "$use_gcrypt"; then
---
-2.11.0
-
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb b/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
index 9a21d90456..81d0746f89 100644
--- a/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
+++ b/meta-oe/recipes-extended/pam/pam-plugin-ccreds_11.bb
@@ -1,22 +1,19 @@
SUMMARY = "PAM cached credentials module"
HOMEPAGE = "https://www.padl.com/OSS/pam_ccreds.html"
SECTION = "libs"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "libpam openssl db"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
-SRCREV = "376bb189ceb3a113954f1012c45be7ff09e148ba"
+SRCREV = "e2145df09469bf84878e4729b4ecd814efb797d1"
-SRC_URI = " \
- git://github.com/PADL/pam_ccreds \
- file://0001-make-sure-we-don-t-overflow-the-data-buffer.patch \
- file://0002-add-minimum_uid-option.patch \
- file://0003-Set-EXTENSION_SO-for-all-linux-targets.patch \
-"
+SRC_URI = "git://github.com/PADL/pam_ccreds;branch=master;protocol=https \
+ file://0001-configure-Check-for-function-from-libdb-during-confi.patch \
+ "
S = "${WORKDIR}/git"
@@ -24,4 +21,4 @@ inherit autotools
EXTRA_OECONF += "--libdir=${base_libdir} "
-FILES_${PN} += "${base_libdir}/security/pam*"
+FILES:${PN} += "${base_libdir}/security/pam*"
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.1.bb b/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.1.bb
new file mode 100644
index 0000000000..d5137f80af
--- /dev/null
+++ b/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "PAM searchless LDAP authentication module"
+HOMEPAGE = "https://github.com/rmbreak/pam_ldapdb"
+BUGTRACKER = "https://github.com/rmbreak/pam_ldapdb/issues"
+SECTION = "libs"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=41ab94182d94be9bb35e2a8b933f1e7d"
+
+DEPENDS = "libpam openldap"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "pam"
+
+SRCREV = "3e026863cad1fd45c760ee1bc93ef4f0606cc852"
+SRC_URI = "git://github.com/rmbreak/pam_ldapdb;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ oe_runmake install DESTDIR=${D} PAMDIR=${base_libdir}/security
+}
+
+FILES:${PN} += "${base_libdir}/security/pam_ldapdb.so"
diff --git a/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb b/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
deleted file mode 100644
index c59a259fc3..0000000000
--- a/meta-oe/recipes-extended/pam/pam-plugin-ldapdb_1.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "PAM searchless LDAP authentication module"
-HOMEPAGE = "https://github.com/rmbreak/pam_ldapdb"
-BUGTRACKER = "https://github.com/rmbreak/pam_ldapdb/issues"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=41ab94182d94be9bb35e2a8b933f1e7d"
-
-DEPENDS = "libpam openldap"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-SRC_URI = "https://github.com/rmbreak/pam_ldapdb/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz"
-SRC_URI[md5sum] = "2dd4f1370fcfe995ee0ad09611109b87"
-SRC_URI[sha256sum] = "8ed92b36523556bb5d9bf3eb33a1035e46041d4be767c8d62136930c0ca0e45b"
-
-S = "${WORKDIR}/pam_ldapdb-${PV}"
-
-do_install () {
- oe_runmake install DESTDIR=${D} PAMDIR=${base_libdir}/security
-}
-
-FILES_${PN} += "${base_libdir}/security/pam_ldapdb.so"
diff --git a/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-Adapt-to-OpenSSL-1.1.1.patch b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-Adapt-to-OpenSSL-1.1.1.patch
new file mode 100644
index 0000000000..2d75a18f15
--- /dev/null
+++ b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-Adapt-to-OpenSSL-1.1.1.patch
@@ -0,0 +1,879 @@
+From 37e233307a79a9250962dcf77b7c7e27a02a1a35 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 1 Feb 2019 22:44:10 -0800
+Subject: [PATCH] Adapt to OpenSSL 1.1.1
+
+From: Guido Falsi <mad@madpilot.net>
+https://sources.debian.org/src/pam-ssh-agent-auth/0.10.3-3/debian/patches/openssl-1.1.1-1.patch/
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ authfd.c | 50 ++++++++++++++++++++
+ bufbn.c | 4 ++
+ cipher.h | 6 ++-
+ kex.h | 9 +++-
+ key.c | 133 ++++++++++++++++++++++++++++++++++++++++++++++++++--
+ ssh-dss.c | 51 ++++++++++++++++----
+ ssh-ecdsa.c | 40 ++++++++++++----
+ ssh-rsa.c | 22 +++++++--
+ 8 files changed, 287 insertions(+), 28 deletions(-)
+
+diff --git a/authfd.c b/authfd.c
+index 212e06b..f91514d 100644
+--- a/authfd.c
++++ b/authfd.c
+@@ -367,6 +367,7 @@ ssh_get_next_identity(AuthenticationConnection *auth, char **comment, int versio
+ case 1:
+ key = pamsshagentauth_key_new(KEY_RSA1);
+ bits = pamsshagentauth_buffer_get_int(&auth->identities);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->e);
+ pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->n);
+ *comment = pamsshagentauth_buffer_get_string(&auth->identities, NULL);
+@@ -374,6 +375,15 @@ ssh_get_next_identity(AuthenticationConnection *auth, char **comment, int versio
+ if (keybits < 0 || bits != (u_int)keybits)
+ pamsshagentauth_logit("Warning: identity keysize mismatch: actual %d, announced %u",
+ BN_num_bits(key->rsa->n), bits);
++#else
++ pamsshagentauth_buffer_get_bignum(&auth->identities, RSA_get0_e(key->rsa));
++ pamsshagentauth_buffer_get_bignum(&auth->identities, RSA_get0_n(key->rsa));
++ *comment = pamsshagentauth_buffer_get_string(&auth->identities, NULL);
++ keybits = BN_num_bits(RSA_get0_n(key->rsa));
++ if (keybits < 0 || bits != (u_int)keybits)
++ pamsshagentauth_logit("Warning: identity keysize mismatch: actual %d, announced %u",
++ BN_num_bits(RSA_get0_n(key->rsa)), bits);
++#endif
+ break;
+ case 2:
+ blob = pamsshagentauth_buffer_get_string(&auth->identities, &blen);
+@@ -417,9 +427,15 @@ ssh_decrypt_challenge(AuthenticationConnection *auth,
+ }
+ pamsshagentauth_buffer_init(&buffer);
+ pamsshagentauth_buffer_put_char(&buffer, SSH_AGENTC_RSA_CHALLENGE);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ pamsshagentauth_buffer_put_int(&buffer, BN_num_bits(key->rsa->n));
+ pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->e);
+ pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->n);
++#else
++ pamsshagentauth_buffer_put_int(&buffer, BN_num_bits(RSA_get0_n(key->rsa)));
++ pamsshagentauth_buffer_put_bignum(&buffer, RSA_get0_e(key->rsa));
++ pamsshagentauth_buffer_put_bignum(&buffer, RSA_get0_n(key->rsa));
++#endif
+ pamsshagentauth_buffer_put_bignum(&buffer, challenge);
+ pamsshagentauth_buffer_append(&buffer, session_id, 16);
+ pamsshagentauth_buffer_put_int(&buffer, response_type);
+@@ -496,6 +512,7 @@ ssh_agent_sign(AuthenticationConnection *auth,
+ static void
+ ssh_encode_identity_rsa1(Buffer *b, RSA *key, const char *comment)
+ {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ pamsshagentauth_buffer_put_int(b, BN_num_bits(key->n));
+ pamsshagentauth_buffer_put_bignum(b, key->n);
+ pamsshagentauth_buffer_put_bignum(b, key->e);
+@@ -504,6 +521,16 @@ ssh_encode_identity_rsa1(Buffer *b, RSA *key, const char *comment)
+ pamsshagentauth_buffer_put_bignum(b, key->iqmp); /* ssh key->u */
+ pamsshagentauth_buffer_put_bignum(b, key->q); /* ssh key->p, SSL key->q */
+ pamsshagentauth_buffer_put_bignum(b, key->p); /* ssh key->q, SSL key->p */
++#else
++ pamsshagentauth_buffer_put_int(b, BN_num_bits(RSA_get0_n(key)));
++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_n(key));
++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_e(key));
++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_d(key));
++ /* To keep within the protocol: p < q for ssh. in SSL p > q */
++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_iqmp(key)); /* ssh key->u */
++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_q(key)); /* ssh key->p, SSL key->q */
++ pamsshagentauth_buffer_put_bignum(b, RSA_get0_p(key)); /* ssh key->q, SSL key->p */
++#endif
+ pamsshagentauth_buffer_put_cstring(b, comment);
+ }
+
+@@ -513,19 +540,36 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment)
+ pamsshagentauth_buffer_put_cstring(b, key_ssh_name(key));
+ switch (key->type) {
+ case KEY_RSA:
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->n);
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->e);
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->d);
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->iqmp);
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->p);
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->q);
++#else
++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_n(key->rsa));
++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_e(key->rsa));
++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_d(key->rsa));
++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_iqmp(key->rsa));
++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_p(key->rsa));
++ pamsshagentauth_buffer_put_bignum2(b, RSA_get0_q(key->rsa));
++#endif
+ break;
+ case KEY_DSA:
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->p);
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->q);
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->g);
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->pub_key);
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->priv_key);
++#else
++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_p(key->dsa));
++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_q(key->dsa));
++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_g(key->dsa));
++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_pub_key(key->dsa));
++ pamsshagentauth_buffer_put_bignum2(b, DSA_get0_priv_key(key->dsa));
++#endif
+ break;
+ }
+ pamsshagentauth_buffer_put_cstring(b, comment);
+@@ -605,9 +649,15 @@ ssh_remove_identity(AuthenticationConnection *auth, Key *key)
+
+ if (key->type == KEY_RSA1) {
+ pamsshagentauth_buffer_put_char(&msg, SSH_AGENTC_REMOVE_RSA_IDENTITY);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ pamsshagentauth_buffer_put_int(&msg, BN_num_bits(key->rsa->n));
+ pamsshagentauth_buffer_put_bignum(&msg, key->rsa->e);
+ pamsshagentauth_buffer_put_bignum(&msg, key->rsa->n);
++#else
++ pamsshagentauth_buffer_put_int(&msg, BN_num_bits(RSA_get0_n(key->rsa)));
++ pamsshagentauth_buffer_put_bignum(&msg, RSA_get0_e(key->rsa));
++ pamsshagentauth_buffer_put_bignum(&msg, RSA_get0_n(key->rsa));
++#endif
+ } else if (key->type == KEY_DSA || key->type == KEY_RSA) {
+ pamsshagentauth_key_to_blob(key, &blob, &blen);
+ pamsshagentauth_buffer_put_char(&msg, SSH2_AGENTC_REMOVE_IDENTITY);
+diff --git a/bufbn.c b/bufbn.c
+index 6a49c73..4ecedc1 100644
+--- a/bufbn.c
++++ b/bufbn.c
+@@ -151,7 +151,11 @@ pamsshagentauth_buffer_put_bignum2_ret(Buffer *buffer, const BIGNUM *value)
+ pamsshagentauth_buffer_put_int(buffer, 0);
+ return 0;
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (value->neg) {
++#else
++ if (BN_is_negative(value)) {
++#endif
+ pamsshagentauth_logerror("buffer_put_bignum2_ret: negative numbers not supported");
+ return (-1);
+ }
+diff --git a/cipher.h b/cipher.h
+index 49bbc16..64f59ca 100644
+--- a/cipher.h
++++ b/cipher.h
+@@ -59,15 +59,18 @@
+ #define CIPHER_DECRYPT 0
+
+ typedef struct Cipher Cipher;
+-typedef struct CipherContext CipherContext;
++// typedef struct CipherContext CipherContext;
+
+ struct Cipher;
++/*
+ struct CipherContext {
+ int plaintext;
+ EVP_CIPHER_CTX evp;
+ Cipher *cipher;
+ };
++*/
+
++/*
+ u_int cipher_mask_ssh1(int);
+ Cipher *cipher_by_name(const char *);
+ Cipher *cipher_by_number(int);
+@@ -88,4 +91,5 @@ void cipher_set_keyiv(CipherContext *, u_char *);
+ int cipher_get_keyiv_len(const CipherContext *);
+ int cipher_get_keycontext(const CipherContext *, u_char *);
+ void cipher_set_keycontext(CipherContext *, u_char *);
++*/
+ #endif /* CIPHER_H */
+diff --git a/kex.h b/kex.h
+index 8e29c90..81ca57d 100644
+--- a/kex.h
++++ b/kex.h
+@@ -70,7 +70,7 @@ enum kex_exchange {
+ #define KEX_INIT_SENT 0x0001
+
+ typedef struct Kex Kex;
+-typedef struct Mac Mac;
++// typedef struct Mac Mac;
+ typedef struct Comp Comp;
+ typedef struct Enc Enc;
+ typedef struct Newkeys Newkeys;
+@@ -84,6 +84,7 @@ struct Enc {
+ u_char *key;
+ u_char *iv;
+ };
++/*
+ struct Mac {
+ char *name;
+ int enabled;
+@@ -95,11 +96,13 @@ struct Mac {
+ HMAC_CTX evp_ctx;
+ struct umac_ctx *umac_ctx;
+ };
++*/
+ struct Comp {
+ int type;
+ int enabled;
+ char *name;
+ };
++/*
+ struct Newkeys {
+ Enc enc;
+ Mac mac;
+@@ -126,7 +129,9 @@ struct Kex {
+ int (*host_key_index)(Key *);
+ void (*kex[KEX_MAX])(Kex *);
+ };
++*/
+
++/*
+ Kex *kex_setup(char *[PROPOSAL_MAX]);
+ void kex_finish(Kex *);
+
+@@ -152,6 +157,8 @@ kexgex_hash(const EVP_MD *, char *, char *, char *, int, char *,
+ void
+ derive_ssh1_session_id(BIGNUM *, BIGNUM *, u_int8_t[8], u_int8_t[16]);
+
++*/
++
+ #if defined(DEBUG_KEX) || defined(DEBUG_KEXDH)
+ void dump_digest(char *, u_char *, int);
+ #endif
+diff --git a/key.c b/key.c
+index 107a442..aedbbb5 100644
+--- a/key.c
++++ b/key.c
+@@ -77,15 +77,21 @@ pamsshagentauth_key_new(int type)
+ case KEY_RSA:
+ if ((rsa = RSA_new()) == NULL)
+ pamsshagentauth_fatal("key_new: RSA_new failed");
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((rsa->n = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new: BN_new failed");
+ if ((rsa->e = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new: BN_new failed");
++#else
++ if (RSA_set0_key(rsa, BN_new(), BN_new(), NULL) != 1)
++ pamsshagentauth_fatal("key_new: RSA_set0_key failed");
++#endif
+ k->rsa = rsa;
+ break;
+ case KEY_DSA:
+ if ((dsa = DSA_new()) == NULL)
+ pamsshagentauth_fatal("key_new: DSA_new failed");
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((dsa->p = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new: BN_new failed");
+ if ((dsa->q = BN_new()) == NULL)
+@@ -94,6 +100,12 @@ pamsshagentauth_key_new(int type)
+ pamsshagentauth_fatal("key_new: BN_new failed");
+ if ((dsa->pub_key = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new: BN_new failed");
++#else
++ if (DSA_set0_pqg(dsa, BN_new(), BN_new(), BN_new()) != 1)
++ pamsshagentauth_fatal("key_new: DSA_set0_pqg failed");
++ if (DSA_set0_key(dsa, BN_new(), NULL) != 1)
++ pamsshagentauth_fatal("key_new: DSA_set0_key failed");
++#endif
+ k->dsa = dsa;
+ break;
+ case KEY_ECDSA:
+@@ -118,6 +130,7 @@ pamsshagentauth_key_new_private(int type)
+ switch (k->type) {
+ case KEY_RSA1:
+ case KEY_RSA:
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((k->rsa->d = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new_private: BN_new failed");
+ if ((k->rsa->iqmp = BN_new()) == NULL)
+@@ -130,14 +143,30 @@ pamsshagentauth_key_new_private(int type)
+ pamsshagentauth_fatal("key_new_private: BN_new failed");
+ if ((k->rsa->dmp1 = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new_private: BN_new failed");
++#else
++ if (RSA_set0_key(k->rsa, NULL, NULL, BN_new()) != 1)
++ pamsshagentauth_fatal("key_new: RSA_set0_key failed");
++ if (RSA_set0_crt_params(k->rsa, BN_new(), BN_new(), BN_new()) != 1)
++ pamsshagentauth_fatal("key_new: RSA_set0_crt_params failed");
++ if (RSA_set0_factors(k->rsa, BN_new(), BN_new()) != 1)
++ pamsshagentauth_fatal("key_new: RSA_set0_factors failed");
++#endif
+ break;
+ case KEY_DSA:
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((k->dsa->priv_key = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new_private: BN_new failed");
++#else
++ if (DSA_set0_key(k->dsa, NULL, BN_new()) != 1)
++ pamsshagentauth_fatal("key_new_private: DSA_set0_key failed");
++#endif
+ break;
+ case KEY_ECDSA:
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (EC_KEY_set_private_key(k->ecdsa, BN_new()) != 1)
+ pamsshagentauth_fatal("key_new_private: EC_KEY_set_private_key failed");
++#else
++#endif
+ break;
+ case KEY_ED25519:
+ RAND_bytes(k->ed25519->sk, sizeof(k->ed25519->sk));
+@@ -195,14 +224,26 @@ pamsshagentauth_key_equal(const Key *a, const Key *b)
+ case KEY_RSA1:
+ case KEY_RSA:
+ return a->rsa != NULL && b->rsa != NULL &&
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ BN_cmp(a->rsa->e, b->rsa->e) == 0 &&
+ BN_cmp(a->rsa->n, b->rsa->n) == 0;
++#else
++ BN_cmp(RSA_get0_e(a->rsa), RSA_get0_e(b->rsa)) == 0 &&
++ BN_cmp(RSA_get0_n(a->rsa), RSA_get0_n(b->rsa)) == 0;
++#endif
+ case KEY_DSA:
+ return a->dsa != NULL && b->dsa != NULL &&
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ BN_cmp(a->dsa->p, b->dsa->p) == 0 &&
+ BN_cmp(a->dsa->q, b->dsa->q) == 0 &&
+ BN_cmp(a->dsa->g, b->dsa->g) == 0 &&
+ BN_cmp(a->dsa->pub_key, b->dsa->pub_key) == 0;
++#else
++ BN_cmp(DSA_get0_p(a->dsa), DSA_get0_p(b->dsa)) == 0 &&
++ BN_cmp(DSA_get0_q(a->dsa), DSA_get0_q(b->dsa)) == 0 &&
++ BN_cmp(DSA_get0_g(a->dsa), DSA_get0_g(b->dsa)) == 0 &&
++ BN_cmp(DSA_get0_pub_key(a->dsa), DSA_get0_pub_key(b->dsa)) == 0;
++#endif
+ case KEY_ECDSA:
+ return a->ecdsa != NULL && b->ecdsa != NULL &&
+ EC_KEY_check_key(a->ecdsa) == 1 &&
+@@ -231,7 +272,7 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type,
+ u_int *dgst_raw_length)
+ {
+ const EVP_MD *md = NULL;
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ u_char *blob = NULL;
+ u_char *retval = NULL;
+ u_int len = 0;
+@@ -252,12 +293,21 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type,
+ }
+ switch (k->type) {
+ case KEY_RSA1:
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ nlen = BN_num_bytes(k->rsa->n);
+ elen = BN_num_bytes(k->rsa->e);
+ len = nlen + elen;
+ blob = pamsshagentauth_xmalloc(len);
+ BN_bn2bin(k->rsa->n, blob);
+ BN_bn2bin(k->rsa->e, blob + nlen);
++#else
++ nlen = BN_num_bytes(RSA_get0_n(k->rsa));
++ elen = BN_num_bytes(RSA_get0_e(k->rsa));
++ len = nlen + elen;
++ blob = pamsshagentauth_xmalloc(len);
++ BN_bn2bin(RSA_get0_n(k->rsa), blob);
++ BN_bn2bin(RSA_get0_e(k->rsa), blob + nlen);
++#endif
+ break;
+ case KEY_DSA:
+ case KEY_ECDSA:
+@@ -273,11 +323,14 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type,
+ }
+ if (blob != NULL) {
+ retval = pamsshagentauth_xmalloc(EVP_MAX_MD_SIZE);
+- EVP_DigestInit(&ctx, md);
+- EVP_DigestUpdate(&ctx, blob, len);
+- EVP_DigestFinal(&ctx, retval, dgst_raw_length);
++ /* XXX Errors from EVP_* functions are not hadled */
++ ctx = EVP_MD_CTX_create();
++ EVP_DigestInit(ctx, md);
++ EVP_DigestUpdate(ctx, blob, len);
++ EVP_DigestFinal(ctx, retval, dgst_raw_length);
+ memset(blob, 0, len);
+ pamsshagentauth_xfree(blob);
++ EVP_MD_CTX_destroy(ctx);
+ } else {
+ pamsshagentauth_fatal("key_fingerprint_raw: blob is null");
+ }
+@@ -457,10 +510,17 @@ pamsshagentauth_key_read(Key *ret, char **cpp)
+ return -1;
+ *cpp = cp;
+ /* Get public exponent, public modulus. */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (!read_bignum(cpp, ret->rsa->e))
+ return -1;
+ if (!read_bignum(cpp, ret->rsa->n))
+ return -1;
++#else
++ if (!read_bignum(cpp, RSA_get0_e(ret->rsa)))
++ return -1;
++ if (!read_bignum(cpp, RSA_get0_n(ret->rsa)))
++ return -1;
++#endif
+ success = 1;
+ break;
+ case KEY_UNSPEC:
+@@ -583,10 +643,17 @@ pamsshagentauth_key_write(const Key *key, FILE *f)
+
+ if (key->type == KEY_RSA1 && key->rsa != NULL) {
+ /* size of modulus 'n' */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ bits = BN_num_bits(key->rsa->n);
+ fprintf(f, "%u", bits);
+ if (write_bignum(f, key->rsa->e) &&
+ write_bignum(f, key->rsa->n)) {
++#else
++ bits = BN_num_bits(RSA_get0_n(key->rsa));
++ fprintf(f, "%u", bits);
++ if (write_bignum(f, RSA_get0_e(key->rsa)) &&
++ write_bignum(f, RSA_get0_n(key->rsa))) {
++#endif
+ success = 1;
+ } else {
+ pamsshagentauth_logerror("key_write: failed for RSA key");
+@@ -675,10 +742,17 @@ pamsshagentauth_key_size(const Key *k)
+ {
+ switch (k->type) {
+ case KEY_RSA1:
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ case KEY_RSA:
+ return BN_num_bits(k->rsa->n);
+ case KEY_DSA:
+ return BN_num_bits(k->dsa->p);
++#else
++ case KEY_RSA:
++ return BN_num_bits(RSA_get0_n(k->rsa));
++ case KEY_DSA:
++ return BN_num_bits(DSA_get0_p(k->dsa));
++#endif
+ case KEY_ECDSA:
+ {
+ int nid = EC_GROUP_get_curve_name(EC_KEY_get0_group(k->ecdsa));
+@@ -769,17 +843,29 @@ pamsshagentauth_key_from_private(const Key *k)
+ switch (k->type) {
+ case KEY_DSA:
+ n = pamsshagentauth_key_new(k->type);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((BN_copy(n->dsa->p, k->dsa->p) == NULL) ||
+ (BN_copy(n->dsa->q, k->dsa->q) == NULL) ||
+ (BN_copy(n->dsa->g, k->dsa->g) == NULL) ||
+ (BN_copy(n->dsa->pub_key, k->dsa->pub_key) == NULL))
++#else
++ if ((BN_copy(DSA_get0_p(n->dsa), DSA_get0_p(k->dsa)) == NULL) ||
++ (BN_copy(DSA_get0_q(n->dsa), DSA_get0_q(k->dsa)) == NULL) ||
++ (BN_copy(DSA_get0_g(n->dsa), DSA_get0_g(k->dsa)) == NULL) ||
++ (BN_copy(DSA_get0_pub_key(n->dsa), DSA_get0_pub_key(k->dsa)) == NULL))
++#endif
+ pamsshagentauth_fatal("key_from_private: BN_copy failed");
+ break;
+ case KEY_RSA:
+ case KEY_RSA1:
+ n = pamsshagentauth_key_new(k->type);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((BN_copy(n->rsa->n, k->rsa->n) == NULL) ||
+ (BN_copy(n->rsa->e, k->rsa->e) == NULL))
++#else
++ if ((BN_copy(RSA_get0_n(n->rsa), RSA_get0_n(k->rsa)) == NULL) ||
++ (BN_copy(RSA_get0_e(n->rsa), RSA_get0_e(k->rsa)) == NULL))
++#endif
+ pamsshagentauth_fatal("key_from_private: BN_copy failed");
+ break;
+ case KEY_ECDSA:
+@@ -881,8 +967,13 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen)
+ switch (type) {
+ case KEY_RSA:
+ key = pamsshagentauth_key_new(type);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->e) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->n) == -1) {
++#else
++ if (pamsshagentauth_buffer_get_bignum2_ret(&b, RSA_get0_e(key->rsa)) == -1 ||
++ pamsshagentauth_buffer_get_bignum2_ret(&b, RSA_get0_n(key->rsa)) == -1) {
++#endif
+ pamsshagentauth_logerror("key_from_blob: can't read rsa key");
+ pamsshagentauth_key_free(key);
+ key = NULL;
+@@ -894,10 +985,17 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen)
+ break;
+ case KEY_DSA:
+ key = pamsshagentauth_key_new(type);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->p) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->q) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->g) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->pub_key) == -1) {
++#else
++ if (pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_p(key->dsa)) == -1 ||
++ pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_q(key->dsa)) == -1 ||
++ pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_g(key->dsa)) == -1 ||
++ pamsshagentauth_buffer_get_bignum2_ret(&b, DSA_get0_pub_key(key->dsa)) == -1) {
++#endif
+ pamsshagentauth_logerror("key_from_blob: can't read dsa key");
+ pamsshagentauth_key_free(key);
+ key = NULL;
+@@ -1015,6 +1113,7 @@ pamsshagentauth_key_to_blob(const Key *key, u_char **blobp, u_int *lenp)
+ }
+ pamsshagentauth_buffer_init(&b);
+ switch (key->type) {
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ case KEY_DSA:
+ pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key));
+ pamsshagentauth_buffer_put_bignum2(&b, key->dsa->p);
+@@ -1027,6 +1126,20 @@ pamsshagentauth_key_to_blob(const Key *key, u_char **blobp, u_int *lenp)
+ pamsshagentauth_buffer_put_bignum2(&b, key->rsa->e);
+ pamsshagentauth_buffer_put_bignum2(&b, key->rsa->n);
+ break;
++#else
++ case KEY_DSA:
++ pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key));
++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_p(key->dsa));
++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_q(key->dsa));
++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_g(key->dsa));
++ pamsshagentauth_buffer_put_bignum2(&b, DSA_get0_pub_key(key->dsa));
++ break;
++ case KEY_RSA:
++ pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key));
++ pamsshagentauth_buffer_put_bignum2(&b, RSA_get0_e(key->rsa));
++ pamsshagentauth_buffer_put_bignum2(&b, RSA_get0_n(key->rsa));
++ break;
++#endif
+ case KEY_ECDSA:
+ {
+ size_t l = 0;
+@@ -1138,14 +1251,20 @@ pamsshagentauth_key_demote(const Key *k)
+ case KEY_RSA:
+ if ((pk->rsa = RSA_new()) == NULL)
+ pamsshagentauth_fatal("key_demote: RSA_new failed");
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((pk->rsa->e = BN_dup(k->rsa->e)) == NULL)
+ pamsshagentauth_fatal("key_demote: BN_dup failed");
+ if ((pk->rsa->n = BN_dup(k->rsa->n)) == NULL)
+ pamsshagentauth_fatal("key_demote: BN_dup failed");
++#else
++ if (RSA_set0_key(pk->rsa, BN_dup(RSA_get0_n(k->rsa)), BN_dup(RSA_get0_e(k->rsa)), NULL) != 1)
++ pamsshagentauth_fatal("key_demote: RSA_set0_key failed");
++#endif
+ break;
+ case KEY_DSA:
+ if ((pk->dsa = DSA_new()) == NULL)
+ pamsshagentauth_fatal("key_demote: DSA_new failed");
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((pk->dsa->p = BN_dup(k->dsa->p)) == NULL)
+ pamsshagentauth_fatal("key_demote: BN_dup failed");
+ if ((pk->dsa->q = BN_dup(k->dsa->q)) == NULL)
+@@ -1154,6 +1273,12 @@ pamsshagentauth_key_demote(const Key *k)
+ pamsshagentauth_fatal("key_demote: BN_dup failed");
+ if ((pk->dsa->pub_key = BN_dup(k->dsa->pub_key)) == NULL)
+ pamsshagentauth_fatal("key_demote: BN_dup failed");
++#else
++ if (DSA_set0_pqg(pk->dsa, BN_dup(DSA_get0_p(k->dsa)), BN_dup(DSA_get0_q(k->dsa)), BN_dup(DSA_get0_g(k->dsa))) != 1)
++ pamsshagentauth_fatal("key_demote: DSA_set0_pqg failed");
++ if (DSA_set0_key(pk->dsa, BN_dup(DSA_get0_pub_key(k->dsa)), NULL) != 1)
++ pamsshagentauth_fatal("key_demote: DSA_set0_key failed");
++#endif
+ break;
+ case KEY_ECDSA:
+ pamsshagentauth_fatal("key_demote: implement me");
+diff --git a/ssh-dss.c b/ssh-dss.c
+index 9fdaa5d..1051ae2 100644
+--- a/ssh-dss.c
++++ b/ssh-dss.c
+@@ -48,37 +48,53 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp,
+ {
+ DSA_SIG *sig;
+ const EVP_MD *evp_md = EVP_sha1();
+- EVP_MD_CTX md;
++ EVP_MD_CTX *md;
+ u_char digest[EVP_MAX_MD_SIZE], sigblob[SIGBLOB_LEN];
+ u_int rlen, slen, len, dlen;
+ Buffer b;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ const BIGNUM *r, *s;
++#endif
+
+ if (key == NULL || key->type != KEY_DSA || key->dsa == NULL) {
+ pamsshagentauth_logerror("ssh_dss_sign: no DSA key");
+ return -1;
+ }
+- EVP_DigestInit(&md, evp_md);
+- EVP_DigestUpdate(&md, data, datalen);
+- EVP_DigestFinal(&md, digest, &dlen);
++ md = EVP_MD_CTX_create();
++ EVP_DigestInit(md, evp_md);
++ EVP_DigestUpdate(md, data, datalen);
++ EVP_DigestFinal(md, digest, &dlen);
+
+ sig = DSA_do_sign(digest, dlen, key->dsa);
+ memset(digest, 'd', sizeof(digest));
++ EVP_MD_CTX_destroy(md);
+
+ if (sig == NULL) {
+ pamsshagentauth_logerror("ssh_dss_sign: sign failed");
+ return -1;
+ }
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ rlen = BN_num_bytes(sig->r);
+ slen = BN_num_bytes(sig->s);
++#else
++ DSA_SIG_get0((const DSA_SIG *)sig, (const BIGNUM **)r, (const BIGNUM **)s);
++ rlen = BN_num_bytes(r);
++ slen = BN_num_bytes(s);
++#endif
+ if (rlen > INTBLOB_LEN || slen > INTBLOB_LEN) {
+ pamsshagentauth_logerror("bad sig size %u %u", rlen, slen);
+ DSA_SIG_free(sig);
+ return -1;
+ }
+ memset(sigblob, 0, SIGBLOB_LEN);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ BN_bn2bin(sig->r, sigblob+ SIGBLOB_LEN - INTBLOB_LEN - rlen);
+ BN_bn2bin(sig->s, sigblob+ SIGBLOB_LEN - slen);
++#else
++ BN_bn2bin(r, sigblob+ SIGBLOB_LEN - INTBLOB_LEN - rlen);
++ BN_bn2bin(s, sigblob+ SIGBLOB_LEN - slen);
++#endif
+ DSA_SIG_free(sig);
+
+ if (datafellows & SSH_BUG_SIGBLOB) {
+@@ -110,11 +126,14 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ {
+ DSA_SIG *sig;
+ const EVP_MD *evp_md = EVP_sha1();
+- EVP_MD_CTX md;
++ EVP_MD_CTX *md;
+ u_char digest[EVP_MAX_MD_SIZE], *sigblob;
+ u_int len, dlen;
+ int rlen, ret;
+ Buffer b;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ BIGNUM *r, *s;
++#endif
+
+ if (key == NULL || key->type != KEY_DSA || key->dsa == NULL) {
+ pamsshagentauth_logerror("ssh_dss_verify: no DSA key");
+@@ -157,6 +176,7 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ /* parse signature */
+ if ((sig = DSA_SIG_new()) == NULL)
+ pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_new failed");
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((sig->r = BN_new()) == NULL)
+ pamsshagentauth_fatal("ssh_dss_verify: BN_new failed");
+ if ((sig->s = BN_new()) == NULL)
+@@ -164,18 +184,33 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ if ((BN_bin2bn(sigblob, INTBLOB_LEN, sig->r) == NULL) ||
+ (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, sig->s) == NULL))
+ pamsshagentauth_fatal("ssh_dss_verify: BN_bin2bn failed");
++#else
++ if ((r = BN_new()) == NULL)
++ pamsshagentauth_fatal("ssh_dss_verify: BN_new failed");
++ if ((s = BN_new()) == NULL)
++ pamsshagentauth_fatal("ssh_dss_verify: BN_new failed");
++ if (DSA_SIG_set0(sig, r, s) != 1)
++ pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_set0 failed");
++ if ((BN_bin2bn(sigblob, INTBLOB_LEN, r) == NULL) ||
++ (BN_bin2bn(sigblob+ INTBLOB_LEN, INTBLOB_LEN, s) == NULL))
++ pamsshagentauth_fatal("ssh_dss_verify: BN_bin2bn failed");
++ if (DSA_SIG_set0(sig, r, s) != 1)
++ pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_set0 failed");
++#endif
+
+ /* clean up */
+ memset(sigblob, 0, len);
+ pamsshagentauth_xfree(sigblob);
+
+ /* sha1 the data */
+- EVP_DigestInit(&md, evp_md);
+- EVP_DigestUpdate(&md, data, datalen);
+- EVP_DigestFinal(&md, digest, &dlen);
++ md = EVP_MD_CTX_create();
++ EVP_DigestInit(md, evp_md);
++ EVP_DigestUpdate(md, data, datalen);
++ EVP_DigestFinal(md, digest, &dlen);
+
+ ret = DSA_do_verify(digest, dlen, sig, key->dsa);
+ memset(digest, 'd', sizeof(digest));
++ EVP_MD_CTX_destroy(md);
+
+ DSA_SIG_free(sig);
+
+diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c
+index efa0f3d..c213959 100644
+--- a/ssh-ecdsa.c
++++ b/ssh-ecdsa.c
+@@ -41,22 +41,27 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+ {
+ ECDSA_SIG *sig;
+ const EVP_MD *evp_md = evp_from_key(key);
+- EVP_MD_CTX md;
++ EVP_MD_CTX *md;
+ u_char digest[EVP_MAX_MD_SIZE];
+ u_int len, dlen;
+ Buffer b, bb;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ BIGNUM *r, *s;
++#endif
+
+ if (key == NULL || key->type != KEY_ECDSA || key->ecdsa == NULL) {
+ pamsshagentauth_logerror("ssh_ecdsa_sign: no ECDSA key");
+ return -1;
+ }
+
+- EVP_DigestInit(&md, evp_md);
+- EVP_DigestUpdate(&md, data, datalen);
+- EVP_DigestFinal(&md, digest, &dlen);
++ md = EVP_MD_CTX_create();
++ EVP_DigestInit(md, evp_md);
++ EVP_DigestUpdate(md, data, datalen);
++ EVP_DigestFinal(md, digest, &dlen);
+
+ sig = ECDSA_do_sign(digest, dlen, key->ecdsa);
+ memset(digest, 'd', sizeof(digest));
++ EVP_MD_CTX_destroy(md);
+
+ if (sig == NULL) {
+ pamsshagentauth_logerror("ssh_ecdsa_sign: sign failed");
+@@ -64,8 +69,14 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+ }
+
+ pamsshagentauth_buffer_init(&bb);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->r) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->s) == -1) {
++#else
++ DSA_SIG_get0(sig, &r, &s);
++ if (pamsshagentauth_buffer_get_bignum2_ret(&bb, r) == -1 ||
++ pamsshagentauth_buffer_get_bignum2_ret(&bb, s) == -1) {
++#endif
+ pamsshagentauth_logerror("couldn't serialize signature");
+ ECDSA_SIG_free(sig);
+ return -1;
+@@ -94,11 +105,14 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ {
+ ECDSA_SIG *sig;
+ const EVP_MD *evp_md = evp_from_key(key);
+- EVP_MD_CTX md;
++ EVP_MD_CTX *md;
+ u_char digest[EVP_MAX_MD_SIZE], *sigblob;
+ u_int len, dlen;
+ int rlen, ret;
+ Buffer b;
++#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++ BIGNUM *r, *s;
++#endif
+
+ if (key == NULL || key->type != KEY_ECDSA || key->ecdsa == NULL) {
+ pamsshagentauth_logerror("ssh_ecdsa_sign: no ECDSA key");
+@@ -127,8 +141,14 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+
+ pamsshagentauth_buffer_init(&b);
+ pamsshagentauth_buffer_append(&b, sigblob, len);
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if ((pamsshagentauth_buffer_get_bignum2_ret(&b, sig->r) == -1) ||
+ (pamsshagentauth_buffer_get_bignum2_ret(&b, sig->s) == -1))
++#else
++ DSA_SIG_get0(sig, &r, &s);
++ if ((pamsshagentauth_buffer_get_bignum2_ret(&b, r) == -1) ||
++ (pamsshagentauth_buffer_get_bignum2_ret(&b, s) == -1))
++#endif
+ pamsshagentauth_fatal("ssh_ecdsa_verify:"
+ "pamsshagentauth_buffer_get_bignum2_ret failed");
+
+@@ -137,16 +157,18 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ pamsshagentauth_xfree(sigblob);
+
+ /* sha256 the data */
+- EVP_DigestInit(&md, evp_md);
+- EVP_DigestUpdate(&md, data, datalen);
+- EVP_DigestFinal(&md, digest, &dlen);
++ md = EVP_MD_CTX_create();
++ EVP_DigestInit(md, evp_md);
++ EVP_DigestUpdate(md, data, datalen);
++ EVP_DigestFinal(md, digest, &dlen);
+
+ ret = ECDSA_do_verify(digest, dlen, sig, key->ecdsa);
+ memset(digest, 'd', sizeof(digest));
++ EVP_MD_CTX_destroy(md);
+
+ ECDSA_SIG_free(sig);
+
+ pamsshagentauth_verbose("ssh_ecdsa_verify: signature %s",
+ ret == 1 ? "correct" : ret == 0 ? "incorrect" : "error");
+ return ret;
+-}
+\ No newline at end of file
++}
+diff --git a/ssh-rsa.c b/ssh-rsa.c
+index d05844b..9d74eb6 100644
+--- a/ssh-rsa.c
++++ b/ssh-rsa.c
+@@ -40,7 +40,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+ const u_char *data, u_int datalen)
+ {
+ const EVP_MD *evp_md;
+- EVP_MD_CTX md;
++ EVP_MD_CTX *md;
+ u_char digest[EVP_MAX_MD_SIZE], *sig;
+ u_int slen, dlen, len;
+ int ok, nid;
+@@ -55,6 +55,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+ pamsshagentauth_logerror("ssh_rsa_sign: EVP_get_digestbynid %d failed", nid);
+ return -1;
+ }
++ md = EVP_MD_CTX_create();
+ EVP_DigestInit(&md, evp_md);
+ EVP_DigestUpdate(&md, data, datalen);
+ EVP_DigestFinal(&md, digest, &dlen);
+@@ -64,6 +65,7 @@ ssh_rsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+
+ ok = RSA_sign(nid, digest, dlen, sig, &len, key->rsa);
+ memset(digest, 'd', sizeof(digest));
++ EVP_MD_CTX_destroy(md);
+
+ if (ok != 1) {
+ int ecode = ERR_get_error();
+@@ -107,7 +109,7 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ {
+ Buffer b;
+ const EVP_MD *evp_md;
+- EVP_MD_CTX md;
++ EVP_MD_CTX *md;
+ char *ktype;
+ u_char digest[EVP_MAX_MD_SIZE], *sigblob;
+ u_int len, dlen, modlen;
+@@ -117,9 +119,17 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ pamsshagentauth_logerror("ssh_rsa_verify: no RSA key");
+ return -1;
+ }
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
++#else
++ if (BN_num_bits(RSA_get0_n(key->rsa)) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
++#endif
+ pamsshagentauth_logerror("ssh_rsa_verify: RSA modulus too small: %d < minimum %d bits",
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ BN_num_bits(key->rsa->n), SSH_RSA_MINIMUM_MODULUS_SIZE);
++#else
++ BN_num_bits(RSA_get0_n(key->rsa)), SSH_RSA_MINIMUM_MODULUS_SIZE);
++#endif
+ return -1;
+ }
+ pamsshagentauth_buffer_init(&b);
+@@ -161,12 +171,14 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ pamsshagentauth_xfree(sigblob);
+ return -1;
+ }
+- EVP_DigestInit(&md, evp_md);
+- EVP_DigestUpdate(&md, data, datalen);
+- EVP_DigestFinal(&md, digest, &dlen);
++ md = EVP_MD_CTX_create();
++ EVP_DigestInit(md, evp_md);
++ EVP_DigestUpdate(md, data, datalen);
++ EVP_DigestFinal(md, digest, &dlen);
+
+ ret = openssh_RSA_verify(nid, digest, dlen, sigblob, len, key->rsa);
+ memset(digest, 'd', sizeof(digest));
++ EVP_MD_CTX_destroy(md);
+ memset(sigblob, 's', len);
+ pamsshagentauth_xfree(sigblob);
+ pamsshagentauth_verbose("ssh_rsa_verify: signature %scorrect", (ret==0) ? "in" : "");
diff --git a/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-configure-Include-stdio.h-for-printf.patch b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-configure-Include-stdio.h-for-printf.patch
new file mode 100644
index 0000000000..c9e2760a27
--- /dev/null
+++ b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0001-configure-Include-stdio.h-for-printf.patch
@@ -0,0 +1,37 @@
+From a0ae303fe0bcd81dfb1a649cc5e7a372d3bd878d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 20:44:42 -0700
+Subject: [PATCH] configure: Include stdio.h for printf
+
+Fixes test for __progname
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -2791,7 +2791,9 @@ if test "x$ac_cv_have_control_in_msghdr"
+ fi
+
+ AC_CACHE_CHECK([if libc defines __progname], ac_cv_libc_defines___progname, [
+- AC_TRY_LINK([],
++ AC_TRY_LINK([
++#include <stdio.h>
++],
+ [ extern char *__progname; printf("%s", __progname); ],
+ [ ac_cv_libc_defines___progname="yes" ],
+ [ ac_cv_libc_defines___progname="no" ]
+--- a/configure
++++ b/configure
+@@ -14838,7 +14838,7 @@ else
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+-
++#include <stdio.h>
+ int
+ main ()
+ {
diff --git a/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch
new file mode 100644
index 0000000000..b03b43fb1d
--- /dev/null
+++ b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth/0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch
@@ -0,0 +1,365 @@
+From b2ee29809a54e16567323d8fbac2d652ee58c692 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 1 Feb 2019 22:45:19 -0800
+Subject: [PATCH] Check against the correct OPENSSL_VERSION_NUMBER
+
+From: Guido Falsi <mad@madpilot.net>
+https://sources.debian.org/src/pam-ssh-agent-auth/0.10.3-3/debian/patches/openssl-1.1.1-2.patch/
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ authfd.c | 12 ++++++------
+ bufbn.c | 2 +-
+ key.c | 36 ++++++++++++++++++------------------
+ ssh-dss.c | 10 +++++-----
+ ssh-ecdsa.c | 8 ++++----
+ ssh-rsa.c | 4 ++--
+ 6 files changed, 36 insertions(+), 36 deletions(-)
+
+diff --git a/authfd.c b/authfd.c
+index f91514d..4c6cec8 100644
+--- a/authfd.c
++++ b/authfd.c
+@@ -367,7 +367,7 @@ ssh_get_next_identity(AuthenticationConnection *auth, char **comment, int versio
+ case 1:
+ key = pamsshagentauth_key_new(KEY_RSA1);
+ bits = pamsshagentauth_buffer_get_int(&auth->identities);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->e);
+ pamsshagentauth_buffer_get_bignum(&auth->identities, key->rsa->n);
+ *comment = pamsshagentauth_buffer_get_string(&auth->identities, NULL);
+@@ -427,7 +427,7 @@ ssh_decrypt_challenge(AuthenticationConnection *auth,
+ }
+ pamsshagentauth_buffer_init(&buffer);
+ pamsshagentauth_buffer_put_char(&buffer, SSH_AGENTC_RSA_CHALLENGE);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ pamsshagentauth_buffer_put_int(&buffer, BN_num_bits(key->rsa->n));
+ pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->e);
+ pamsshagentauth_buffer_put_bignum(&buffer, key->rsa->n);
+@@ -512,7 +512,7 @@ ssh_agent_sign(AuthenticationConnection *auth,
+ static void
+ ssh_encode_identity_rsa1(Buffer *b, RSA *key, const char *comment)
+ {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ pamsshagentauth_buffer_put_int(b, BN_num_bits(key->n));
+ pamsshagentauth_buffer_put_bignum(b, key->n);
+ pamsshagentauth_buffer_put_bignum(b, key->e);
+@@ -540,7 +540,7 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment)
+ pamsshagentauth_buffer_put_cstring(b, key_ssh_name(key));
+ switch (key->type) {
+ case KEY_RSA:
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->n);
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->e);
+ pamsshagentauth_buffer_put_bignum2(b, key->rsa->d);
+@@ -557,7 +557,7 @@ ssh_encode_identity_ssh2(Buffer *b, Key *key, const char *comment)
+ #endif
+ break;
+ case KEY_DSA:
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->p);
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->q);
+ pamsshagentauth_buffer_put_bignum2(b, key->dsa->g);
+@@ -649,7 +649,7 @@ ssh_remove_identity(AuthenticationConnection *auth, Key *key)
+
+ if (key->type == KEY_RSA1) {
+ pamsshagentauth_buffer_put_char(&msg, SSH_AGENTC_REMOVE_RSA_IDENTITY);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ pamsshagentauth_buffer_put_int(&msg, BN_num_bits(key->rsa->n));
+ pamsshagentauth_buffer_put_bignum(&msg, key->rsa->e);
+ pamsshagentauth_buffer_put_bignum(&msg, key->rsa->n);
+diff --git a/bufbn.c b/bufbn.c
+index 4ecedc1..b4754cc 100644
+--- a/bufbn.c
++++ b/bufbn.c
+@@ -151,7 +151,7 @@ pamsshagentauth_buffer_put_bignum2_ret(Buffer *buffer, const BIGNUM *value)
+ pamsshagentauth_buffer_put_int(buffer, 0);
+ return 0;
+ }
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if (value->neg) {
+ #else
+ if (BN_is_negative(value)) {
+diff --git a/key.c b/key.c
+index aedbbb5..dcc5fc8 100644
+--- a/key.c
++++ b/key.c
+@@ -77,7 +77,7 @@ pamsshagentauth_key_new(int type)
+ case KEY_RSA:
+ if ((rsa = RSA_new()) == NULL)
+ pamsshagentauth_fatal("key_new: RSA_new failed");
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((rsa->n = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new: BN_new failed");
+ if ((rsa->e = BN_new()) == NULL)
+@@ -91,7 +91,7 @@ pamsshagentauth_key_new(int type)
+ case KEY_DSA:
+ if ((dsa = DSA_new()) == NULL)
+ pamsshagentauth_fatal("key_new: DSA_new failed");
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((dsa->p = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new: BN_new failed");
+ if ((dsa->q = BN_new()) == NULL)
+@@ -130,7 +130,7 @@ pamsshagentauth_key_new_private(int type)
+ switch (k->type) {
+ case KEY_RSA1:
+ case KEY_RSA:
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((k->rsa->d = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new_private: BN_new failed");
+ if ((k->rsa->iqmp = BN_new()) == NULL)
+@@ -153,7 +153,7 @@ pamsshagentauth_key_new_private(int type)
+ #endif
+ break;
+ case KEY_DSA:
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((k->dsa->priv_key = BN_new()) == NULL)
+ pamsshagentauth_fatal("key_new_private: BN_new failed");
+ #else
+@@ -162,7 +162,7 @@ pamsshagentauth_key_new_private(int type)
+ #endif
+ break;
+ case KEY_ECDSA:
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if (EC_KEY_set_private_key(k->ecdsa, BN_new()) != 1)
+ pamsshagentauth_fatal("key_new_private: EC_KEY_set_private_key failed");
+ #else
+@@ -224,7 +224,7 @@ pamsshagentauth_key_equal(const Key *a, const Key *b)
+ case KEY_RSA1:
+ case KEY_RSA:
+ return a->rsa != NULL && b->rsa != NULL &&
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ BN_cmp(a->rsa->e, b->rsa->e) == 0 &&
+ BN_cmp(a->rsa->n, b->rsa->n) == 0;
+ #else
+@@ -233,7 +233,7 @@ pamsshagentauth_key_equal(const Key *a, const Key *b)
+ #endif
+ case KEY_DSA:
+ return a->dsa != NULL && b->dsa != NULL &&
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ BN_cmp(a->dsa->p, b->dsa->p) == 0 &&
+ BN_cmp(a->dsa->q, b->dsa->q) == 0 &&
+ BN_cmp(a->dsa->g, b->dsa->g) == 0 &&
+@@ -293,7 +293,7 @@ pamsshagentauth_key_fingerprint_raw(const Key *k, enum fp_type dgst_type,
+ }
+ switch (k->type) {
+ case KEY_RSA1:
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ nlen = BN_num_bytes(k->rsa->n);
+ elen = BN_num_bytes(k->rsa->e);
+ len = nlen + elen;
+@@ -510,7 +510,7 @@ pamsshagentauth_key_read(Key *ret, char **cpp)
+ return -1;
+ *cpp = cp;
+ /* Get public exponent, public modulus. */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if (!read_bignum(cpp, ret->rsa->e))
+ return -1;
+ if (!read_bignum(cpp, ret->rsa->n))
+@@ -643,7 +643,7 @@ pamsshagentauth_key_write(const Key *key, FILE *f)
+
+ if (key->type == KEY_RSA1 && key->rsa != NULL) {
+ /* size of modulus 'n' */
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ bits = BN_num_bits(key->rsa->n);
+ fprintf(f, "%u", bits);
+ if (write_bignum(f, key->rsa->e) &&
+@@ -742,7 +742,7 @@ pamsshagentauth_key_size(const Key *k)
+ {
+ switch (k->type) {
+ case KEY_RSA1:
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ case KEY_RSA:
+ return BN_num_bits(k->rsa->n);
+ case KEY_DSA:
+@@ -843,7 +843,7 @@ pamsshagentauth_key_from_private(const Key *k)
+ switch (k->type) {
+ case KEY_DSA:
+ n = pamsshagentauth_key_new(k->type);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((BN_copy(n->dsa->p, k->dsa->p) == NULL) ||
+ (BN_copy(n->dsa->q, k->dsa->q) == NULL) ||
+ (BN_copy(n->dsa->g, k->dsa->g) == NULL) ||
+@@ -859,7 +859,7 @@ pamsshagentauth_key_from_private(const Key *k)
+ case KEY_RSA:
+ case KEY_RSA1:
+ n = pamsshagentauth_key_new(k->type);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((BN_copy(n->rsa->n, k->rsa->n) == NULL) ||
+ (BN_copy(n->rsa->e, k->rsa->e) == NULL))
+ #else
+@@ -967,7 +967,7 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen)
+ switch (type) {
+ case KEY_RSA:
+ key = pamsshagentauth_key_new(type);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->e) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&b, key->rsa->n) == -1) {
+ #else
+@@ -985,7 +985,7 @@ pamsshagentauth_key_from_blob(const u_char *blob, u_int blen)
+ break;
+ case KEY_DSA:
+ key = pamsshagentauth_key_new(type);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if (pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->p) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->q) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&b, key->dsa->g) == -1 ||
+@@ -1113,7 +1113,7 @@ pamsshagentauth_key_to_blob(const Key *key, u_char **blobp, u_int *lenp)
+ }
+ pamsshagentauth_buffer_init(&b);
+ switch (key->type) {
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ case KEY_DSA:
+ pamsshagentauth_buffer_put_cstring(&b, key_ssh_name(key));
+ pamsshagentauth_buffer_put_bignum2(&b, key->dsa->p);
+@@ -1251,7 +1251,7 @@ pamsshagentauth_key_demote(const Key *k)
+ case KEY_RSA:
+ if ((pk->rsa = RSA_new()) == NULL)
+ pamsshagentauth_fatal("key_demote: RSA_new failed");
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((pk->rsa->e = BN_dup(k->rsa->e)) == NULL)
+ pamsshagentauth_fatal("key_demote: BN_dup failed");
+ if ((pk->rsa->n = BN_dup(k->rsa->n)) == NULL)
+@@ -1264,7 +1264,7 @@ pamsshagentauth_key_demote(const Key *k)
+ case KEY_DSA:
+ if ((pk->dsa = DSA_new()) == NULL)
+ pamsshagentauth_fatal("key_demote: DSA_new failed");
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((pk->dsa->p = BN_dup(k->dsa->p)) == NULL)
+ pamsshagentauth_fatal("key_demote: BN_dup failed");
+ if ((pk->dsa->q = BN_dup(k->dsa->q)) == NULL)
+diff --git a/ssh-dss.c b/ssh-dss.c
+index 1051ae2..9b96274 100644
+--- a/ssh-dss.c
++++ b/ssh-dss.c
+@@ -52,7 +52,7 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp,
+ u_char digest[EVP_MAX_MD_SIZE], sigblob[SIGBLOB_LEN];
+ u_int rlen, slen, len, dlen;
+ Buffer b;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L
+ const BIGNUM *r, *s;
+ #endif
+
+@@ -74,7 +74,7 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp,
+ return -1;
+ }
+
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ rlen = BN_num_bytes(sig->r);
+ slen = BN_num_bytes(sig->s);
+ #else
+@@ -88,7 +88,7 @@ ssh_dss_sign(const Key *key, u_char **sigp, u_int *lenp,
+ return -1;
+ }
+ memset(sigblob, 0, SIGBLOB_LEN);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ BN_bn2bin(sig->r, sigblob+ SIGBLOB_LEN - INTBLOB_LEN - rlen);
+ BN_bn2bin(sig->s, sigblob+ SIGBLOB_LEN - slen);
+ #else
+@@ -131,7 +131,7 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ u_int len, dlen;
+ int rlen, ret;
+ Buffer b;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L
+ BIGNUM *r, *s;
+ #endif
+
+@@ -176,7 +176,7 @@ ssh_dss_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ /* parse signature */
+ if ((sig = DSA_SIG_new()) == NULL)
+ pamsshagentauth_fatal("ssh_dss_verify: DSA_SIG_new failed");
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((sig->r = BN_new()) == NULL)
+ pamsshagentauth_fatal("ssh_dss_verify: BN_new failed");
+ if ((sig->s = BN_new()) == NULL)
+diff --git a/ssh-ecdsa.c b/ssh-ecdsa.c
+index c213959..5b13b30 100644
+--- a/ssh-ecdsa.c
++++ b/ssh-ecdsa.c
+@@ -45,7 +45,7 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+ u_char digest[EVP_MAX_MD_SIZE];
+ u_int len, dlen;
+ Buffer b, bb;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L
+ BIGNUM *r, *s;
+ #endif
+
+@@ -69,7 +69,7 @@ ssh_ecdsa_sign(const Key *key, u_char **sigp, u_int *lenp,
+ }
+
+ pamsshagentauth_buffer_init(&bb);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if (pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->r) == -1 ||
+ pamsshagentauth_buffer_get_bignum2_ret(&bb, sig->s) == -1) {
+ #else
+@@ -110,7 +110,7 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ u_int len, dlen;
+ int rlen, ret;
+ Buffer b;
+-#if OPENSSL_VERSION_NUMBER >= 0x10100000L
++#if OPENSSL_VERSION_NUMBER >= 0x10100005L
+ BIGNUM *r, *s;
+ #endif
+
+@@ -141,7 +141,7 @@ ssh_ecdsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+
+ pamsshagentauth_buffer_init(&b);
+ pamsshagentauth_buffer_append(&b, sigblob, len);
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if ((pamsshagentauth_buffer_get_bignum2_ret(&b, sig->r) == -1) ||
+ (pamsshagentauth_buffer_get_bignum2_ret(&b, sig->s) == -1))
+ #else
+diff --git a/ssh-rsa.c b/ssh-rsa.c
+index 9d74eb6..35f2e36 100644
+--- a/ssh-rsa.c
++++ b/ssh-rsa.c
+@@ -119,13 +119,13 @@ ssh_rsa_verify(const Key *key, const u_char *signature, u_int signaturelen,
+ pamsshagentauth_logerror("ssh_rsa_verify: no RSA key");
+ return -1;
+ }
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ if (BN_num_bits(key->rsa->n) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
+ #else
+ if (BN_num_bits(RSA_get0_n(key->rsa)) < SSH_RSA_MINIMUM_MODULUS_SIZE) {
+ #endif
+ pamsshagentauth_logerror("ssh_rsa_verify: RSA modulus too small: %d < minimum %d bits",
+-#if OPENSSL_VERSION_NUMBER < 0x10100000L
++#if OPENSSL_VERSION_NUMBER < 0x10100005L
+ BN_num_bits(key->rsa->n), SSH_RSA_MINIMUM_MODULUS_SIZE);
+ #else
+ BN_num_bits(RSA_get0_n(key->rsa)), SSH_RSA_MINIMUM_MODULUS_SIZE);
diff --git a/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
index 1638c41c88..b5bcc63339 100644
--- a/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
+++ b/meta-oe/recipes-extended/pam/pam-ssh-agent-auth_0.10.3.bb
@@ -2,29 +2,33 @@ SUMMARY = "pam-ssh-agent-auth"
DESCRIPTION = "A PAM module which permits authentication via ssh-agent."
HOMEPAGE = "http://sourceforge.net/projects/pamsshagentauth/"
SECTION = "libs"
-LICENSE = "openssl & BSD"
+LICENSE = "OpenSSL & BSD-2-Clause & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.OpenSSL;md5=8ab01146141ded59b75f8ba7811ed05a \
file://OPENSSH_LICENSE;md5=7ae09218173be1643c998a4b71027f9b \
"
-SRC_URI = "http://sourceforge.net/projects/pamsshagentauth/files/pam_ssh_agent_auth/v${PV}/pam_ssh_agent_auth-${PV}.tar.bz2"
+SRC_URI = "http://sourceforge.net/projects/pamsshagentauth/files/pam_ssh_agent_auth/v${PV}/pam_ssh_agent_auth-${PV}.tar.bz2 \
+ file://0001-Adapt-to-OpenSSL-1.1.1.patch \
+ file://0002-Check-against-the-correct-OPENSSL_VERSION_NUMBER.patch \
+ file://0001-configure-Include-stdio.h-for-printf.patch \
+ "
SRC_URI[md5sum] = "8dbe90ab3625e545036333e6f51ccf1d"
SRC_URI[sha256sum] = "3c53d358d6eaed1b211239df017c27c6f9970995d14102ae67bae16d4f47a763"
DEPENDS += "libpam openssl"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
# This gets us ssh-agent, which we are almost certain to want.
#
-RDEPENDS_${PN} += "openssh-misc"
+RDEPENDS:${PN} += "openssh-misc"
# Kind of unfortunate to have underscores in the name.
#
S = "${WORKDIR}/pam_ssh_agent_auth-${PV}"
-inherit autotools-brokensep
+inherit autotools-brokensep perlnative
# Avoid autoreconf. Override the --libexec oe_runconf specifies so that
# the module is put with the other pam modules. Because it cannot, in general,
@@ -47,5 +51,5 @@ do_compile () {
# This stuff is not any place looked at by default.
#
-FILES_${PN} += "${base_libdir}/security/pam*"
-FILES_${PN}-dbg += "${base_libdir}/security/.debug"
+FILES:${PN} += "${base_libdir}/security/pam*"
+FILES:${PN}-dbg += "${base_libdir}/security/.debug"
diff --git a/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb b/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb
new file mode 100644
index 0000000000..237828dbfc
--- /dev/null
+++ b/meta-oe/recipes-extended/pegtl/pegtl_3.2.7.bb
@@ -0,0 +1,13 @@
+DESCRIPTION="header-only library for creating parsers according to Parsing Expression Grammar"
+HOMEPAGE="https://github.com/taocpp/PEGTL"
+LICENSE="MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dccf35ef30bf912bb07b01d469965293"
+
+SRC_URI = "git://github.com/taocpp/PEGTL.git;protocol=https;branch=3.x"
+SRCREV = "cf639f7f4ee125f68e1ccfba8d99ebc0de57b9fe"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+CXXFLAGS += " -Wno-error=type-limits"
diff --git a/meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb b/meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb
index 035fe9f654..7768d17418 100644
--- a/meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb
+++ b/meta-oe/recipes-extended/perl/libfile-fnmatch-perl_0.02.bb
@@ -6,7 +6,7 @@ are nonetheless useful and familiar to a large audience of end-users."
HOMEPAGE = "http://search.cpan.org/dist/File-FnMatch/"
SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=34;endline=37;md5=54fdfac62963b7cece5583ab38f2cf0d"
diff --git a/meta-oe/recipes-extended/plocate/plocate.inc b/meta-oe/recipes-extended/plocate/plocate.inc
new file mode 100644
index 0000000000..166fc2d561
--- /dev/null
+++ b/meta-oe/recipes-extended/plocate/plocate.inc
@@ -0,0 +1,9 @@
+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"
+
+inherit meson pkgconfig
+
+DEPENDS = "zstd liburing"
diff --git a/meta-oe/recipes-extended/plocate/plocate_1.1.17.bb b/meta-oe/recipes-extended/plocate/plocate_1.1.17.bb
new file mode 100644
index 0000000000..ef36754bac
--- /dev/null
+++ b/meta-oe/recipes-extended/plocate/plocate_1.1.17.bb
@@ -0,0 +1,9 @@
+require plocate.inc
+# GPL-2.0-only
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "git://git.sesse.net/plocate;protocol=https;branch=master"
+
+SRCREV = "7e5defd4e7e075cb9226e7d2d9a80f943c482d11"
+S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-extended/pmdk/pmdk/0001-pmempool-Match-function-prototypes-of-enum_to_str_fn.patch b/meta-oe/recipes-extended/pmdk/pmdk/0001-pmempool-Match-function-prototypes-of-enum_to_str_fn.patch
new file mode 100644
index 0000000000..b16b633a3b
--- /dev/null
+++ b/meta-oe/recipes-extended/pmdk/pmdk/0001-pmempool-Match-function-prototypes-of-enum_to_str_fn.patch
@@ -0,0 +1,43 @@
+From de6425acaa50426883e85a599001ae5e927aec5b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Mar 2023 16:23:56 -0800
+Subject: [PATCH] pmempool: Match function prototypes of enum_to_str_fn
+ function pointer
+
+This is flagged by clang 16+
+common.c:844:4: error: cast from 'const char *(*)(enum chunk_type)' to 'enum_to_str_fn' (aka 'const char *(*)(int)') converts to incompatible function type [-Werror,-Wcast-function-type-strict]
+ (enum_to_str_fn)out_get_chunk_type_str);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+1 error generated.
+
+Upstream-Status: Submitted [https://github.com/pmem/pmdk/pull/5543]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/tools/pmempool/common.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tools/pmempool/common.c b/src/tools/pmempool/common.c
+index 5e7e472cc..4b7e9b95f 100644
+--- a/src/tools/pmempool/common.c
++++ b/src/tools/pmempool/common.c
+@@ -41,7 +41,7 @@
+
+ #define REQ_BUFF_SIZE 2048U
+ #define Q_BUFF_SIZE 8192
+-typedef const char *(*enum_to_str_fn)(int);
++typedef const char *(*enum_to_str_fn)(enum chunk_type);
+
+ /*
+ * pmem_pool_type -- return pool type based on first two pages.
+@@ -790,7 +790,7 @@ util_parse_enum(const char *str, int first, int max, uint64_t *bitmap,
+ enum_to_str_fn enum_to_str)
+ {
+ for (int i = first; i < max; i++) {
+- if (strcmp(str, enum_to_str(i)) == 0) {
++ if (strcmp(str, enum_to_str((enum chunk_type)i)) == 0) {
+ *bitmap |= (uint64_t)1<<i;
+ return 0;
+ }
+--
+2.39.2
+
diff --git a/meta-oe/recipes-extended/pmdk/pmdk_1.12.1.bb b/meta-oe/recipes-extended/pmdk/pmdk_1.12.1.bb
new file mode 100644
index 0000000000..5261922cdd
--- /dev/null
+++ b/meta-oe/recipes-extended/pmdk/pmdk_1.12.1.bb
@@ -0,0 +1,49 @@
+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=stable-1.12;protocol=https \
+ file://0001-pmempool-Match-function-prototypes-of-enum_to_str_fn.patch"
+SRCREV = "786098a024c6fe60e746f2cb1041bcfcd21386c9"
+
+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/files/50-org.freedesktop.udiskie.rules b/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.udiskie.rules
new file mode 100644
index 0000000000..2ffa4087a8
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/files/50-org.freedesktop.udiskie.rules
@@ -0,0 +1,24 @@
+polkit.addRule(function(action, subject) {
+ var YES = polkit.Result.YES;
+ var permission = {
+ // required for udisks1:
+ "org.freedesktop.udisks.filesystem-mount": YES,
+ "org.freedesktop.udisks.luks-unlock": YES,
+ "org.freedesktop.udisks.drive-eject": YES,
+ "org.freedesktop.udisks.drive-detach": YES,
+ // required for udisks2:
+ "org.freedesktop.udisks2.filesystem-mount": YES,
+ "org.freedesktop.udisks2.encrypted-unlock": YES,
+ "org.freedesktop.udisks2.eject-media": YES,
+ "org.freedesktop.udisks2.power-off-drive": YES,
+ // required for udisks2 if using udiskie from another seat (e.g. systemd):
+ "org.freedesktop.udisks2.filesystem-mount-other-seat": YES,
+ "org.freedesktop.udisks2.filesystem-unmount-others": YES,
+ "org.freedesktop.udisks2.encrypted-unlock-other-seat": YES,
+ "org.freedesktop.udisks2.eject-media-other-seat": YES,
+ "org.freedesktop.udisks2.power-off-drive-other-seat": YES
+ };
+ if (subject.isInGroup("plugdev")) {
+ return permission[action.id];
+ }
+});
diff --git a/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb b/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
index 934a53e5c3..8a14018a82 100644
--- a/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
+++ b/meta-oe/recipes-extended/polkit/polkit-group-rule-datetime.bb
@@ -11,4 +11,4 @@ do_install() {
}
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system datetime"
+GROUPADD_PARAM:${PN} = "--system datetime"
diff --git a/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb b/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
index 66a73eaaf4..8266fa6396 100644
--- a/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
+++ b/meta-oe/recipes-extended/polkit/polkit-group-rule-network.bb
@@ -11,4 +11,4 @@ do_install() {
}
USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system network"
+GROUPADD_PARAM:${PN} = "--system network"
diff --git a/meta-oe/recipes-extended/polkit/polkit-group-rule-udisks2.bb b/meta-oe/recipes-extended/polkit/polkit-group-rule-udisks2.bb
new file mode 100644
index 0000000000..db2ed015b4
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit-group-rule-udisks2.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Polkit rule to allow non-priviledged users mount/umount block devices via udisks2"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+require polkit-group-rule.inc
+
+# The file originates from https://github.com/coldfix/udiskie/wiki/Permissions
+SRC_URI = "file://50-org.freedesktop.udiskie.rules"
+
+RDEPENDS:${PN} += "udisks2"
+
+do_install() {
+ install -m 0755 ${WORKDIR}/50-org.freedesktop.udiskie.rules ${D}${sysconfdir}/polkit-1/rules.d
+}
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system plugdev"
diff --git a/meta-oe/recipes-extended/polkit/polkit-group-rule.inc b/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
index 40e4005423..4aeeb77d04 100644
--- a/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
+++ b/meta-oe/recipes-extended/polkit/polkit-group-rule.inc
@@ -1,10 +1,13 @@
# polkit must prepare polkitd group
DEPENDS += "polkit"
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "polkit"
+
inherit useradd
-do_install_prepend() {
+do_install:prepend() {
install -m 700 -d ${D}${sysconfdir}/polkit-1/rules.d
- chown polkitd:polkitd ${D}${sysconfdir}/polkit-1/rules.d
+ chown polkitd:root ${D}/${sysconfdir}/polkit-1/rules.d
}
-USERADD_PARAM_${PN}_prepend = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;"
+USERADD_PARAM:${PN}:prepend = "--system --no-create-home --user-group --home-dir ${sysconfdir}/polkit-1 polkitd;"
diff --git a/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch b/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch
deleted file mode 100644
index 4e3af876e5..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit/0001-make-netgroup-support-configurable.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 7d5e205aa58a10e7b1ccc2fa75b443508a5c3e18 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 20 Jan 2016 04:31:59 +0000
-Subject: [PATCH] make netgroup support configurable
-
-Disable using innetgr and *netigrent function if not available
-
-These functions are not available on all libc implementations e.g. musl
-doesnt have them.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure.ac | 2 +-
- src/polkitbackend/polkitbackendinteractiveauthority.c | 6 +++++-
- src/polkitbackend/polkitbackendjsauthority.c | 5 ++---
- 3 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 07982d1..21590b2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -158,7 +158,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 getnetgrent innetgr)
-
- if test "x$GCC" = "xyes"; then
- LDFLAGS="-Wl,--as-needed $LDFLAGS"
-diff --git a/src/polkitbackend/polkitbackendinteractiveauthority.c b/src/polkitbackend/polkitbackendinteractiveauthority.c
-index 7019356..cf39d77 100644
---- a/src/polkitbackend/polkitbackendinteractiveauthority.c
-+++ b/src/polkitbackend/polkitbackendinteractiveauthority.c
-@@ -2213,7 +2213,7 @@ get_users_in_group (PolkitIdentity *group,
- out:
- return ret;
- }
--
-+#if defined HAVE_GETNETGRENT
- static GList *
- get_users_in_net_group (PolkitIdentity *group,
- gboolean include_root)
-@@ -2270,6 +2270,8 @@ get_users_in_net_group (PolkitIdentity *group,
- return ret;
- }
-
-+#endif
-+
- /* ---------------------------------------------------------------------------------------------------- */
-
- static void
-@@ -2355,10 +2357,12 @@ authentication_agent_initiate_challenge (AuthenticationAgent *agent,
- {
- user_identities = g_list_concat (user_identities, get_users_in_group (identity, FALSE));
- }
-+#if defined HAVE_GETNETGRENT
- else if (POLKIT_IS_UNIX_NETGROUP (identity))
- {
- user_identities = g_list_concat (user_identities, get_users_in_net_group (identity, FALSE));
- }
-+#endif
- else
- {
- g_warning ("Unsupported identity");
-diff --git a/src/polkitbackend/polkitbackendjsauthority.c b/src/polkitbackend/polkitbackendjsauthority.c
-index 097dcc5..e59b3f7 100644
---- a/src/polkitbackend/polkitbackendjsauthority.c
-+++ b/src/polkitbackend/polkitbackendjsauthority.c
-@@ -1498,7 +1498,6 @@ js_polkit_spawn (JSContext *cx,
-
- /* ---------------------------------------------------------------------------------------------------- */
-
--
- static JSBool
- js_polkit_user_is_in_netgroup (JSContext *cx,
- unsigned argc,
-@@ -1518,6 +1517,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
- user = JS_EncodeString (cx, user_str);
- netgroup = JS_EncodeString (cx, netgroup_str);
-
-+#if defined HAVE_INNETGR
- if (innetgr (netgroup,
- NULL, /* host */
- user,
-@@ -1525,6 +1525,7 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
- {
- is_in_netgroup = JS_TRUE;
- }
-+#endif
-
- JS_free (cx, netgroup);
- JS_free (cx, user);
-@@ -1536,8 +1537,6 @@ js_polkit_user_is_in_netgroup (JSContext *cx,
- return ret;
- }
-
--
--
- /* ---------------------------------------------------------------------------------------------------- */
-
- typedef struct
---
-2.7.0
-
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
new file mode 100644
index 0000000000..c725c001dd
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit/0001-pkexec-local-privilege-escalation-CVE-2021-4034.patch
@@ -0,0 +1,84 @@
+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
new file mode 100644
index 0000000000..fcad872dc3
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit/0002-CVE-2021-4115-GHSL-2021-077-fix.patch
@@ -0,0 +1,88 @@
+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
new file mode 100644
index 0000000000..5b3660da2f
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit/0002-jsauthority-port-to-mozjs-91.patch
@@ -0,0 +1,38 @@
+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
new file mode 100644
index 0000000000..b8562f8ce2
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit/0003-Added-support-for-duktape-as-JS-engine.patch
@@ -0,0 +1,3459 @@
+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
new file mode 100644
index 0000000000..9e9755e44f
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit/0003-jsauthority-ensure-to-call-JS_Init-and-JS_ShutDown-e.patch
@@ -0,0 +1,63 @@
+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
new file mode 100644
index 0000000000..181aca16ca
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit/0004-Make-netgroup-support-optional.patch
@@ -0,0 +1,253 @@
+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
new file mode 100644
index 0000000000..12988ad94f
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit/0005-Make-netgroup-support-optional-duktape.patch
@@ -0,0 +1,34 @@
+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
index 74647efce4..c491abf4ac 100644
--- a/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
+++ b/meta-oe/recipes-extended/polkit/polkit/polkit-1_pam.patch
@@ -4,9 +4,18 @@ Upstream-Status:Inappropriate [configuration]
Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
---- a/configure.ac 2011-03-04 02:26:20.000000000 +0800
-+++ b/configure.ac.new 2011-07-18 10:14:12.516818852 +0800
-@@ -350,10 +350,10 @@
+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
@@ -21,3 +30,6 @@ Signed-off-by: Xiaofeng Yan <xiaofeng.yan@windriver.com>
fi
AC_SUBST(PAM_FILE_INCLUDE_AUTH)
+--
+2.7.4
+
diff --git a/meta-oe/recipes-extended/polkit/polkit_0.113.bb b/meta-oe/recipes-extended/polkit/polkit_0.113.bb
deleted file mode 100644
index f34928fe3a..0000000000
--- a/meta-oe/recipes-extended/polkit/polkit_0.113.bb
+++ /dev/null
@@ -1,51 +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 = "LGPLv2+"
-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 mozjs"
-
-inherit autotools gtk-doc pkgconfig useradd systemd gobject-introspection
-
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', \
- bb.utils.contains('DISTRO_FEATURES', 'x11', 'consolekit', '', d), d)} \
- "
-
-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"
-
-PAM_SRC_URI = "file://polkit-1_pam.patch"
-SRC_URI = "http://www.freedesktop.org/software/polkit/releases/polkit-${PV}.tar.gz \
- file://0001-make-netgroup-support-configurable.patch \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', '${PAM_SRC_URI}', '', d)} \
-"
-SRC_URI[md5sum] = "4b77776c9e4f897dcfe03b2c34198edf"
-SRC_URI[sha256sum] = "e1c095093c654951f78f8618d427faf91cf62abdefed98de40ff65eca6413c81"
-
-EXTRA_OECONF = "--with-os-type=moblin --disable-man-pages"
-
-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 \
-"
-
-FILES_${PN}-examples = "${bindir}/*example*"
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = "--system --no-create-home --user-group --home-dir ${sysconfdir}/${BPN}-1 polkitd"
-
-SYSTEMD_SERVICE_${PN} = "${BPN}.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-oe/recipes-extended/polkit/polkit_0.119.bb b/meta-oe/recipes-extended/polkit/polkit_0.119.bb
new file mode 100644
index 0000000000..c4d3d25afc
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit_0.119.bb
@@ -0,0 +1,79 @@
+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_122.bb b/meta-oe/recipes-extended/polkit/polkit_122.bb
new file mode 100644
index 0000000000..2906406261
--- /dev/null
+++ b/meta-oe/recipes-extended/polkit/polkit_122.bb
@@ -0,0 +1,49 @@
+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 = "da87c5698019897dd731bb2cbb54ebd9c9481f52"
+
+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-102,,,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
+ chown polkitd:root ${D}/${datadir}/polkit-1/rules.d
+}
+
+FILES:${PN} += "${libdir}/polkit-1 ${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
new file mode 100644
index 0000000000..88a18aa137
--- /dev/null
+++ b/meta-oe/recipes-extended/properties-cpp/properties-cpp_git.bb
@@ -0,0 +1,22 @@
+# Copyright (c) 2019 Christophe Chapuis <chris.chapuis@gmail.com>
+# Copyright (c) 2019 Herman van Hazendonk <github.com@herrie.org>
+
+SUMMARY = "A very simple convenience library for handling properties and signals in C++11."
+SECTION = "libs"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+PV = "0.0.1+git${SRCPV}"
+
+SRCREV = "45863e849b39c4921d6553e6d27e267a96ac7d77"
+SRC_URI = "git://github.com/lib-cpp/${BPN}.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+do_configure:prepend() {
+ echo " " > ${S}/tests/CMakeLists.txt
+}
+
+inherit cmake pkgconfig
+
+RDEPENDS:${PN}-dev = ""
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/rarpd/rarpd_ss981107.bb b/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
index 7c9f2df9db..7359c12544 100644
--- a/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
+++ b/meta-oe/recipes-extended/rarpd/rarpd_ss981107.bb
@@ -22,7 +22,7 @@ SRC_URI += "file://0001-rarpd.8-add-man-file.patch \
file://rarpd.service \
"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://rarpd.c;md5=199b20b172ea93121bc613a9c77b6931"
S = "${WORKDIR}/${BPN}"
@@ -45,7 +45,7 @@ do_install() {
inherit systemd
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "rarpd.service"
+SYSTEMD_SERVICE:${PN} = "rarpd.service"
SYSTEMD_AUTO_ENABLE = "disable"
-RDEPENDS_${PN} += "bash"
+RDEPENDS:${PN} += "bash"
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.10.bb b/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.10.bb
new file mode 100644
index 0000000000..2df5e09194
--- /dev/null
+++ b/meta-oe/recipes-extended/redis-plus-plus/redis-plus-plus_1.3.10.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 = "8b9ce389099608cf9bae617d79d257d2cc05e12f"
+
+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/redis-7.0.12/0001-src-Do-not-reset-FINAL_LIBS.patch b/meta-oe/recipes-extended/redis/redis-7.0.12/0001-src-Do-not-reset-FINAL_LIBS.patch
new file mode 100644
index 0000000000..e8d8b1d53f
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/0001-src-Do-not-reset-FINAL_LIBS.patch
@@ -0,0 +1,30 @@
+From e97a572d4aef099a961e43d528c0268e10d9f1e2 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
+
+This helps case where additional libraries are needed to be passed from
+environment to get it going
+
+e.g. -latomic is needed on clang/x86 to provide for 64bit atomics
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index ddabd44..5133884 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -118,7 +118,7 @@ endif
+
+ FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+ FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
+-FINAL_LIBS=-lm
++FINAL_LIBS+=-lm
+ DEBUG=-g -ggdb
+
+ # Linux ARM32 needs -latomic at linking time
diff --git a/meta-oe/recipes-extended/redis/redis-7.0.12/0006-Define-correct-gregs-for-RISCV32.patch b/meta-oe/recipes-extended/redis/redis-7.0.12/0006-Define-correct-gregs-for-RISCV32.patch
new file mode 100644
index 0000000000..385b0aeed0
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/0006-Define-correct-gregs-for-RISCV32.patch
@@ -0,0 +1,62 @@
+From b6b2c652abfa98093401b232baca8719c50cadf4 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
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.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 ebda858..90bc450 100644
+--- a/src/debug.c
++++ b/src/debug.c
+@@ -1168,7 +1168,9 @@ static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) {
+ #endif
+ #elif defined(__linux__)
+ /* Linux */
+- #if defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
++ #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__))
+ GET_SET_RETURN(uc->uc_mcontext.gregs[14], eip);
+ #elif defined(__X86_64__) || defined(__x86_64__)
+ GET_SET_RETURN(uc->uc_mcontext.gregs[16], eip);
+@@ -1350,8 +1352,28 @@ void logRegisters(ucontext_t *uc) {
+ #endif
+ /* Linux */
+ #elif defined(__linux__)
++ /* Linux RISCV32 */
++ #if defined(__riscv) && __riscv_xlen == 32
++ serverLog(LL_WARNING,
++ "\n"
++ "RA:%08lx S0:%08lx S1:%08lx S2:%08lx\n"
++ "SP:%08lx PC:%08lx A0:%08lx A1:%08lx\n"
++ "A2 :%08lx A3:%08lx A4:%08lx",
++ (unsigned long) uc->uc_mcontext.__gregs[REG_RA],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_S0],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_S1],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_S2],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_SP],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_PC],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 0],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 1],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 2],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 3],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 4]
++ );
++ logStackContent((void**)uc->uc_mcontext.__gregs[REG_SP]);
+ /* Linux x86 */
+- #if defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
++ #elif defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
+ 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-7.0.12/GNU_SOURCE-7.patch b/meta-oe/recipes-extended/redis/redis-7.0.12/GNU_SOURCE-7.patch
new file mode 100644
index 0000000000..6e07c25c6a
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/GNU_SOURCE-7.patch
@@ -0,0 +1,29 @@
+From a22512ac1cbd6de1f5646219722e49752d1f60ac Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 21 Dec 2019 12:09:51 -0800
+Subject: [PATCH] Define _GNU_SOURCE to get PTHREAD_MUTEX_INITIALIZER
+
+Fixes
+| zmalloc.c:87:37: error: 'PTHREAD_MUTEX_DEFAULT' undeclared here (not in a function)
+| 87 | pthread_mutex_t used_memory_mutex = PTHREAD_MUTEX_INITIALIZER;
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/zmalloc.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/zmalloc.c b/src/zmalloc.c
+index ba03685..322304f 100644
+--- a/src/zmalloc.c
++++ b/src/zmalloc.c
+@@ -32,6 +32,7 @@
+ #include "config.h"
+ #include "solarisfixes.h"
+
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdint.h>
diff --git a/meta-oe/recipes-extended/redis/redis-7.0.12/hiredis-use-default-CC-if-it-is-set.patch b/meta-oe/recipes-extended/redis/redis-7.0.12/hiredis-use-default-CC-if-it-is-set.patch
new file mode 100644
index 0000000000..250fdd0ff4
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/hiredis-use-default-CC-if-it-is-set.patch
@@ -0,0 +1,38 @@
+From 9da2d12c9fabfff4b4460accf887658db89687e4 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
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Instead of trying to automagically figure out CC, which breaks with OE
+as CC has spaces in it, just skip it if one was already passed in.
+
+Signed-off-by: Venture Research <tech@ventureresearch.com>
+
+Update to work with 4.0.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/deps/hiredis/Makefile b/deps/hiredis/Makefile
+index 7e41c97..54717e3 100644
+--- a/deps/hiredis/Makefile
++++ b/deps/hiredis/Makefile
+@@ -42,8 +42,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
+ DEBUG_FLAGS?= -g -ggdb
diff --git a/meta-oe/recipes-extended/redis/redis-7.0.12/init-redis-server b/meta-oe/recipes-extended/redis/redis-7.0.12/init-redis-server
new file mode 100755
index 0000000000..c5f335f57d
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/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.0.12/lua-update-Makefile-to-use-environment-build-setting.patch b/meta-oe/recipes-extended/redis/redis-7.0.12/lua-update-Makefile-to-use-environment-build-setting.patch
new file mode 100644
index 0000000000..bff07535de
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/lua-update-Makefile-to-use-environment-build-setting.patch
@@ -0,0 +1,78 @@
+From 734ab2f7879c6f94fc18ea6a10adb9bd156ba769 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
+
+OE-specific parameters, instead of overriding all of these simply use
+the ones that are already passed in. Also configure for only Linux...
+
+Signed-off-by: Venture Research <tech@ventureresearch.com>
+
+Updated to work with 3.0.x
+
+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 ++++++----------
+ 3 files changed, 6 insertions(+), 12 deletions(-)
+
+diff --git a/deps/Makefile b/deps/Makefile
+index 8592e17..1807af5 100644
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -81,7 +81,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.
+-AR=ar
+ ARFLAGS=rc
+
+ lua: .make-prerequisites
+diff --git a/deps/lua/Makefile b/deps/lua/Makefile
+index 209a132..72f4b2b 100644
+--- a/deps/lua/Makefile
++++ b/deps/lua/Makefile
+@@ -33,7 +33,6 @@ INSTALL_DATA= $(INSTALL) -m 0644
+
+ # Utilities.
+ MKDIR= mkdir -p
+-RANLIB= ranlib
+
+ # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+
+diff --git a/deps/lua/src/Makefile b/deps/lua/src/Makefile
+index f3bba2f..1555ec0 100644
+--- a/deps/lua/src/Makefile
++++ b/deps/lua/src/Makefile
+@@ -5,18 +5,14 @@
+ # == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
+
+ # Your platform. See PLATS for possible values.
+-PLAT= none
++PLAT= linux
+
+-CC?= gcc
+-CFLAGS= -O2 -Wall $(MYCFLAGS)
+-AR= ar rcu
+-RANLIB= ranlib
+-RM= rm -f
+-LIBS= -lm $(MYLIBS)
+-
+-MYCFLAGS=
++MYCFLAGS=-DLUA_USE_LINUX
+ MYLDFLAGS=
+-MYLIBS=
++MYLIBS=-Wl,-E -ldl -lreadline -lhistory -lncurses
++
++CFLAGS += $(MYCFLAGS)
++LIBS += -lm $(MYLIBS)
+
+ # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+
diff --git a/meta-oe/recipes-extended/redis/redis-7.0.12/oe-use-libc-malloc.patch b/meta-oe/recipes-extended/redis/redis-7.0.12/oe-use-libc-malloc.patch
new file mode 100644
index 0000000000..bf05fc4c50
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/oe-use-libc-malloc.patch
@@ -0,0 +1,36 @@
+From 88da6b19ecd00747769663e913aba5e9569c489d 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
+
+Hack to force libc usage as it seems the option to pass it in has been
+removed in favor of magic.
+
+Note that this of course doesn't allow tcmalloc and jemalloc, however
+jemalloc wasn't building correctly.
+
+Signed-off-by: Venture Research <tech@ventureresearch.com>
+
+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
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -13,7 +13,8 @@
+ # Just use 'make dep', but this is only needed by developers.
+
+ release_hdr := $(shell sh -c './mkreleasehdr.sh')
+-uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
++# 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
diff --git a/meta-oe/recipes-extended/redis/redis-7.0.12/redis.conf b/meta-oe/recipes-extended/redis/redis-7.0.12/redis.conf
new file mode 100644
index 0000000000..75037d6dc8
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/redis.conf
@@ -0,0 +1,1314 @@
+# Redis configuration file example.
+#
+# Note that in order to read the configuration file, Redis must be
+# started with the file path as first argument:
+#
+# ./redis-server /path/to/redis.conf
+
+# Note on units: when memory size is needed, it is possible to specify
+# it in the usual form of 1k 5GB 4M and so forth:
+#
+# 1k => 1000 bytes
+# 1kb => 1024 bytes
+# 1m => 1000000 bytes
+# 1mb => 1024*1024 bytes
+# 1g => 1000000000 bytes
+# 1gb => 1024*1024*1024 bytes
+#
+# units are case insensitive so 1GB 1Gb 1gB are all the same.
+
+################################## INCLUDES ###################################
+
+# Include one or more other config files here. This is useful if you
+# have a standard template that goes to all Redis servers but also need
+# to customize a few per-server settings. Include files can include
+# other files, so use this wisely.
+#
+# Notice option "include" won't be rewritten by command "CONFIG REWRITE"
+# from admin or Redis Sentinel. Since Redis always uses the last processed
+# line as value of a configuration directive, you'd better put includes
+# at the beginning of this file to avoid overwriting config change at runtime.
+#
+# If instead you are interested in using includes to override configuration
+# options, it is better to use include as the last line.
+#
+# include /path/to/local.conf
+# include /path/to/other.conf
+
+################################## MODULES #####################################
+
+# Load modules at startup. If the server is not able to load modules
+# it will abort. It is possible to use multiple loadmodule directives.
+#
+# loadmodule /path/to/my_module.so
+# loadmodule /path/to/other_module.so
+
+################################## NETWORK #####################################
+
+# By default, if no "bind" configuration directive is specified, Redis listens
+# for connections from all the network interfaces available on the server.
+# It is possible to listen to just one or multiple selected interfaces using
+# the "bind" configuration directive, followed by one or more IP addresses.
+#
+# Examples:
+#
+# bind 192.168.1.100 10.0.0.1
+# bind 127.0.0.1 ::1
+#
+# ~~~ WARNING ~~~ If the computer running Redis is directly exposed to the
+# internet, binding to all the interfaces is dangerous and will expose the
+# instance to everybody on the internet. So by default we uncomment the
+# following bind directive, that will force Redis to listen only into
+# the IPv4 lookback interface address (this means Redis will be able to
+# accept connections only from clients running into the same computer it
+# is running).
+#
+# IF YOU ARE SURE YOU WANT YOUR INSTANCE TO LISTEN TO ALL THE INTERFACES
+# JUST COMMENT THE FOLLOWING LINE.
+# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+bind 127.0.0.1
+
+# Protected mode is a layer of security protection, in order to avoid that
+# Redis instances left open on the internet are accessed and exploited.
+#
+# When protected mode is on and if:
+#
+# 1) The server is not binding explicitly to a set of addresses using the
+# "bind" directive.
+# 2) No password is configured.
+#
+# The server only accepts connections from clients connecting from the
+# IPv4 and IPv6 loopback addresses 127.0.0.1 and ::1, and from Unix domain
+# sockets.
+#
+# By default protected mode is enabled. You should disable it only if
+# you are sure you want clients from other hosts to connect to Redis
+# even if no authentication is configured, nor a specific set of interfaces
+# are explicitly listed using the "bind" directive.
+protected-mode yes
+
+# Accept connections on the specified port, default is 6379 (IANA #815344).
+# If port 0 is specified Redis will not listen on a TCP socket.
+port 6379
+
+# TCP listen() backlog.
+#
+# In high requests-per-second environments you need an high backlog in order
+# to avoid slow clients connections issues. Note that the Linux kernel
+# will silently truncate it to the value of /proc/sys/net/core/somaxconn so
+# make sure to raise both the value of somaxconn and tcp_max_syn_backlog
+# in order to get the desired effect.
+tcp-backlog 511
+
+# Unix socket.
+#
+# Specify the path for the Unix socket that will be used to listen for
+# incoming connections. There is no default, so Redis will not listen
+# on a unix socket when not specified.
+#
+# unixsocket /tmp/redis.sock
+# unixsocketperm 700
+
+# Close the connection after a client is idle for N seconds (0 to disable)
+timeout 0
+
+# TCP keepalive.
+#
+# If non-zero, use SO_KEEPALIVE to send TCP ACKs to clients in absence
+# of communication. This is useful for two reasons:
+#
+# 1) Detect dead peers.
+# 2) Take the connection alive from the point of view of network
+# equipment in the middle.
+#
+# On Linux, the specified value (in seconds) is the period used to send ACKs.
+# Note that to close the connection the double of the time is needed.
+# On other kernels the period depends on the kernel configuration.
+#
+# A reasonable value for this option is 300 seconds, which is the new
+# Redis default starting with Redis 3.2.1.
+tcp-keepalive 300
+
+################################# GENERAL #####################################
+
+# OE: run as a daemon.
+daemonize yes
+
+# If you run Redis from upstart or systemd, Redis can interact with your
+# supervision tree. Options:
+# supervised no - no supervision interaction
+# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
+# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
+# supervised auto - detect upstart or systemd method based on
+# UPSTART_JOB or NOTIFY_SOCKET environment variables
+# Note: these supervision methods only signal "process is ready."
+# They do not enable continuous liveness pings back to your supervisor.
+supervised no
+
+# If a pid file is specified, Redis writes it where specified at startup
+# and removes it at exit.
+#
+# When the server runs non daemonized, no pid file is created if none is
+# specified in the configuration. When the server is daemonized, the pid file
+# is used even if not specified, defaulting to "/var/run/redis.pid".
+#
+# Creating a pid file is best effort: if Redis is not able to create it
+# nothing bad happens, the server will start and run normally.
+
+# When running daemonized, Redis writes a pid file in /var/run/redis.pid by
+# default. You can specify a custom pid file location here.
+pidfile /var/run/redis.pid
+
+# Specify the server verbosity level.
+# This can be one of:
+# debug (a lot of information, useful for development/testing)
+# verbose (many rarely useful info, but not a mess like the debug level)
+# notice (moderately verbose, what you want in production probably)
+# warning (only very important / critical messages are logged)
+loglevel notice
+
+# Specify the log file name. Also the empty string can be used to force
+# Redis to log on the standard output. Note that if you use standard
+# output for logging but daemonize, logs will be sent to /dev/null
+logfile ""
+
+# To enable logging to the system logger, just set 'syslog-enabled' to yes,
+# and optionally update the other syslog parameters to suit your needs.
+syslog-enabled yes
+
+# Specify the syslog identity.
+syslog-ident redis
+
+# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
+# syslog-facility local0
+
+# Set the number of databases. The default database is DB 0, you can select
+# a different one on a per-connection basis using SELECT <dbid> where
+# dbid is a number between 0 and 'databases'-1
+databases 16
+
+# By default Redis shows an ASCII art logo only when started to log to the
+# standard output and if the standard output is a TTY. Basically this means
+# that normally a logo is displayed only in interactive sessions.
+#
+# However it is possible to force the pre-4.0 behavior and always show a
+# ASCII art logo in startup logs by setting the following option to yes.
+always-show-logo yes
+
+################################ SNAPSHOTTING ################################
+#
+# Save the DB on disk:
+#
+# save <seconds> <changes>
+#
+# Will save the DB if both the given number of seconds and the given
+# number of write operations against the DB occurred.
+#
+# In the example below the behaviour will be to save:
+# after 900 sec (15 min) if at least 1 key changed
+# after 300 sec (5 min) if at least 10 keys changed
+# after 60 sec if at least 10000 keys changed
+#
+# Note: you can disable saving completely by commenting out all "save" lines.
+#
+# It is also possible to remove all the previously configured save
+# points by adding a save directive with a single empty string argument
+# like in the following example:
+#
+# save ""
+
+#save 900 1
+#save 300 10
+#save 60 10000
+
+# OE: tune for a small embedded system with a limited # of keys.
+save 120 1
+save 60 100
+save 30 1000
+
+# By default Redis will stop accepting writes if RDB snapshots are enabled
+# (at least one save point) and the latest background save failed.
+# This will make the user aware (in a hard way) that data is not persisting
+# on disk properly, otherwise chances are that no one will notice and some
+# disaster will happen.
+#
+# If the background saving process will start working again Redis will
+# automatically allow writes again.
+#
+# However if you have setup your proper monitoring of the Redis server
+# and persistence, you may want to disable this feature so that Redis will
+# continue to work as usual even if there are problems with disk,
+# permissions, and so forth.
+stop-writes-on-bgsave-error yes
+
+# Compress string objects using LZF when dump .rdb databases?
+# For default that's set to 'yes' as it's almost always a win.
+# If you want to save some CPU in the saving child set it to 'no' but
+# the dataset will likely be bigger if you have compressible values or keys.
+rdbcompression yes
+
+# Since version 5 of RDB a CRC64 checksum is placed at the end of the file.
+# This makes the format more resistant to corruption but there is a performance
+# hit to pay (around 10%) when saving and loading RDB files, so you can disable it
+# for maximum performances.
+#
+# RDB files created with checksum disabled have a checksum of zero that will
+# tell the loading code to skip the check.
+rdbchecksum yes
+
+# The filename where to dump the DB
+dbfilename dump.rdb
+
+# The working directory.
+#
+# The DB will be written inside this directory, with the filename specified
+# above using the 'dbfilename' configuration directive.
+#
+# The Append Only File will also be created inside this directory.
+#
+# Note that you must specify a directory here, not a file name.
+dir /var/lib/redis/
+
+################################# REPLICATION #################################
+
+# Master-Slave replication. Use slaveof to make a Redis instance a copy of
+# another Redis server. A few things to understand ASAP about Redis replication.
+#
+# 1) Redis replication is asynchronous, but you can configure a master to
+# stop accepting writes if it appears to be not connected with at least
+# a given number of slaves.
+# 2) Redis slaves are able to perform a partial resynchronization with the
+# master if the replication link is lost for a relatively small amount of
+# time. You may want to configure the replication backlog size (see the next
+# sections of this file) with a sensible value depending on your needs.
+# 3) Replication is automatic and does not need user intervention. After a
+# network partition slaves automatically try to reconnect to masters
+# and resynchronize with them.
+#
+# slaveof <masterip> <masterport>
+
+# If the master is password protected (using the "requirepass" configuration
+# directive below) it is possible to tell the slave to authenticate before
+# starting the replication synchronization process, otherwise the master will
+# refuse the slave request.
+#
+# masterauth <master-password>
+
+# When a slave loses its connection with the master, or when the replication
+# is still in progress, the slave can act in two different ways:
+#
+# 1) if slave-serve-stale-data is set to 'yes' (the default) the slave will
+# still reply to client requests, possibly with out of date data, or the
+# data set may just be empty if this is the first synchronization.
+#
+# 2) if slave-serve-stale-data is set to 'no' the slave will reply with
+# an error "SYNC with master in progress" to all the kind of commands
+# but to INFO and SLAVEOF.
+#
+slave-serve-stale-data yes
+
+# You can configure a slave instance to accept writes or not. Writing against
+# a slave instance may be useful to store some ephemeral data (because data
+# written on a slave will be easily deleted after resync with the master) but
+# may also cause problems if clients are writing to it because of a
+# misconfiguration.
+#
+# Since Redis 2.6 by default slaves are read-only.
+#
+# Note: read only slaves are not designed to be exposed to untrusted clients
+# on the internet. It's just a protection layer against misuse of the instance.
+# Still a read only slave exports by default all the administrative commands
+# such as CONFIG, DEBUG, and so forth. To a limited extent you can improve
+# security of read only slaves using 'rename-command' to shadow all the
+# administrative / dangerous commands.
+slave-read-only yes
+
+# Replication SYNC strategy: disk or socket.
+#
+# -------------------------------------------------------
+# WARNING: DISKLESS REPLICATION IS EXPERIMENTAL CURRENTLY
+# -------------------------------------------------------
+#
+# New slaves and reconnecting slaves that are not able to continue the replication
+# process just receiving differences, need to do what is called a "full
+# synchronization". An RDB file is transmitted from the master to the slaves.
+# The transmission can happen in two different ways:
+#
+# 1) Disk-backed: The Redis master creates a new process that writes the RDB
+# file on disk. Later the file is transferred by the parent
+# process to the slaves incrementally.
+# 2) Diskless: The Redis master creates a new process that directly writes the
+# RDB file to slave sockets, without touching the disk at all.
+#
+# With disk-backed replication, while the RDB file is generated, more slaves
+# can be queued and served with the RDB file as soon as the current child producing
+# the RDB file finishes its work. With diskless replication instead once
+# the transfer starts, new slaves arriving will be queued and a new transfer
+# will start when the current one terminates.
+#
+# When diskless replication is used, the master waits a configurable amount of
+# time (in seconds) before starting the transfer in the hope that multiple slaves
+# will arrive and the transfer can be parallelized.
+#
+# With slow disks and fast (large bandwidth) networks, diskless replication
+# works better.
+repl-diskless-sync no
+
+# When diskless replication is enabled, it is possible to configure the delay
+# the server waits in order to spawn the child that transfers the RDB via socket
+# to the slaves.
+#
+# This is important since once the transfer starts, it is not possible to serve
+# new slaves arriving, that will be queued for the next RDB transfer, so the server
+# waits a delay in order to let more slaves arrive.
+#
+# The delay is specified in seconds, and by default is 5 seconds. To disable
+# it entirely just set it to 0 seconds and the transfer will start ASAP.
+repl-diskless-sync-delay 5
+
+# Slaves send PINGs to server in a predefined interval. It's possible to change
+# this interval with the repl_ping_slave_period option. The default value is 10
+# seconds.
+#
+# repl-ping-slave-period 10
+
+# The following option sets the replication timeout for:
+#
+# 1) Bulk transfer I/O during SYNC, from the point of view of slave.
+# 2) Master timeout from the point of view of slaves (data, pings).
+# 3) Slave timeout from the point of view of masters (REPLCONF ACK pings).
+#
+# It is important to make sure that this value is greater than the value
+# specified for repl-ping-slave-period otherwise a timeout will be detected
+# every time there is low traffic between the master and the slave.
+#
+# repl-timeout 60
+
+# Disable TCP_NODELAY on the slave socket after SYNC?
+#
+# If you select "yes" Redis will use a smaller number of TCP packets and
+# less bandwidth to send data to slaves. But this can add a delay for
+# the data to appear on the slave side, up to 40 milliseconds with
+# Linux kernels using a default configuration.
+#
+# If you select "no" the delay for data to appear on the slave side will
+# be reduced but more bandwidth will be used for replication.
+#
+# By default we optimize for low latency, but in very high traffic conditions
+# or when the master and slaves are many hops away, turning this to "yes" may
+# be a good idea.
+repl-disable-tcp-nodelay no
+
+# Set the replication backlog size. The backlog is a buffer that accumulates
+# slave data when slaves are disconnected for some time, so that when a slave
+# wants to reconnect again, often a full resync is not needed, but a partial
+# resync is enough, just passing the portion of data the slave missed while
+# disconnected.
+#
+# The bigger the replication backlog, the longer the time the slave can be
+# disconnected and later be able to perform a partial resynchronization.
+#
+# The backlog is only allocated once there is at least a slave connected.
+#
+# repl-backlog-size 1mb
+
+# After a master has no longer connected slaves for some time, the backlog
+# will be freed. The following option configures the amount of seconds that
+# need to elapse, starting from the time the last slave disconnected, for
+# the backlog buffer to be freed.
+#
+# Note that slaves never free the backlog for timeout, since they may be
+# promoted to masters later, and should be able to correctly "partially
+# resynchronize" with the slaves: hence they should always accumulate backlog.
+#
+# A value of 0 means to never release the backlog.
+#
+# repl-backlog-ttl 3600
+
+# The slave priority is an integer number published by Redis in the INFO output.
+# It is used by Redis Sentinel in order to select a slave to promote into a
+# master if the master is no longer working correctly.
+#
+# A slave with a low priority number is considered better for promotion, so
+# for instance if there are three slaves with priority 10, 100, 25 Sentinel will
+# pick the one with priority 10, that is the lowest.
+#
+# However a special priority of 0 marks the slave as not able to perform the
+# role of master, so a slave with priority of 0 will never be selected by
+# Redis Sentinel for promotion.
+#
+# By default the priority is 100.
+slave-priority 100
+
+# It is possible for a master to stop accepting writes if there are less than
+# N slaves connected, having a lag less or equal than M seconds.
+#
+# The N slaves need to be in "online" state.
+#
+# The lag in seconds, that must be <= the specified value, is calculated from
+# the last ping received from the slave, that is usually sent every second.
+#
+# This option does not GUARANTEE that N replicas will accept the write, but
+# will limit the window of exposure for lost writes in case not enough slaves
+# are available, to the specified number of seconds.
+#
+# For example to require at least 3 slaves with a lag <= 10 seconds use:
+#
+# min-slaves-to-write 3
+# min-slaves-max-lag 10
+#
+# Setting one or the other to 0 disables the feature.
+#
+# By default min-slaves-to-write is set to 0 (feature disabled) and
+# min-slaves-max-lag is set to 10.
+
+# A Redis master is able to list the address and port of the attached
+# slaves in different ways. For example the "INFO replication" section
+# offers this information, which is used, among other tools, by
+# Redis Sentinel in order to discover slave instances.
+# Another place where this info is available is in the output of the
+# "ROLE" command of a master.
+#
+# The listed IP and address normally reported by a slave is obtained
+# in the following way:
+#
+# IP: The address is auto detected by checking the peer address
+# of the socket used by the slave to connect with the master.
+#
+# Port: The port is communicated by the slave during the replication
+# handshake, and is normally the port that the slave is using to
+# list for connections.
+#
+# However when port forwarding or Network Address Translation (NAT) is
+# used, the slave may be actually reachable via different IP and port
+# pairs. The following two options can be used by a slave in order to
+# report to its master a specific set of IP and port, so that both INFO
+# and ROLE will report those values.
+#
+# There is no need to use both the options if you need to override just
+# the port or the IP address.
+#
+# slave-announce-ip 5.5.5.5
+# slave-announce-port 1234
+
+################################## SECURITY ###################################
+
+# Require clients to issue AUTH <PASSWORD> before processing any other
+# commands. This might be useful in environments in which you do not trust
+# others with access to the host running redis-server.
+#
+# This should stay commented out for backward compatibility and because most
+# people do not need auth (e.g. they run their own servers).
+#
+# Warning: since Redis is pretty fast an outside user can try up to
+# 150k passwords per second against a good box. This means that you should
+# use a very strong password otherwise it will be very easy to break.
+#
+# requirepass foobared
+
+# Command renaming.
+#
+# It is possible to change the name of dangerous commands in a shared
+# environment. For instance the CONFIG command may be renamed into something
+# hard to guess so that it will still be available for internal-use tools
+# but not available for general clients.
+#
+# Example:
+#
+# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52
+#
+# It is also possible to completely kill a command by renaming it into
+# an empty string:
+#
+# rename-command CONFIG ""
+#
+# Please note that changing the name of commands that are logged into the
+# AOF file or transmitted to slaves may cause problems.
+
+################################### CLIENTS ####################################
+
+# Set the max number of connected clients at the same time. By default
+# this limit is set to 10000 clients, however if the Redis server is not
+# able to configure the process file limit to allow for the specified limit
+# the max number of allowed clients is set to the current file limit
+# minus 32 (as Redis reserves a few file descriptors for internal uses).
+#
+# Once the limit is reached Redis will close all the new connections sending
+# an error 'max number of clients reached'.
+#
+# maxclients 10000
+
+############################## MEMORY MANAGEMENT ################################
+
+# Set a memory usage limit to the specified amount of bytes.
+# When the memory limit is reached Redis will try to remove keys
+# according to the eviction policy selected (see maxmemory-policy).
+#
+# If Redis can't remove keys according to the policy, or if the policy is
+# set to 'noeviction', Redis will start to reply with errors to commands
+# that would use more memory, like SET, LPUSH, and so on, and will continue
+# to reply to read-only commands like GET.
+#
+# This option is usually useful when using Redis as an LRU or LFU cache, or to
+# set a hard memory limit for an instance (using the 'noeviction' policy).
+#
+# WARNING: If you have slaves attached to an instance with maxmemory on,
+# the size of the output buffers needed to feed the slaves are subtracted
+# from the used memory count, so that network problems / resyncs will
+# not trigger a loop where keys are evicted, and in turn the output
+# buffer of slaves is full with DELs of keys evicted triggering the deletion
+# of more keys, and so forth until the database is completely emptied.
+#
+# In short... if you have slaves attached it is suggested that you set a lower
+# limit for maxmemory so that there is some free RAM on the system for slave
+# output buffers (but this is not needed if the policy is 'noeviction').
+#
+# maxmemory <bytes>
+
+# MAXMEMORY POLICY: how Redis will select what to remove when maxmemory
+# is reached. You can select among five behaviors:
+#
+# volatile-lru -> Evict using approximated LRU among the keys with an expire set.
+# allkeys-lru -> Evict any key using approximated LRU.
+# volatile-lfu -> Evict using approximated LFU among the keys with an expire set.
+# allkeys-lfu -> Evict any key using approximated LFU.
+# volatile-random -> Remove a random key among the ones with an expire set.
+# allkeys-random -> Remove a random key, any key.
+# volatile-ttl -> Remove the key with the nearest expire time (minor TTL)
+# noeviction -> Don't evict anything, just return an error on write operations.
+#
+# LRU means Least Recently Used
+# LFU means Least Frequently Used
+#
+# Both LRU, LFU and volatile-ttl are implemented using approximated
+# randomized algorithms.
+#
+# Note: with any of the above policies, Redis will return an error on write
+# operations, when there are no suitable keys for eviction.
+#
+# At the date of writing these commands are: set setnx setex append
+# incr decr rpush lpush rpushx lpushx linsert lset rpoplpush sadd
+# sinter sinterstore sunion sunionstore sdiff sdiffstore zadd zincrby
+# zunionstore zinterstore hset hsetnx hmset hincrby incrby decrby
+# getset mset msetnx exec sort
+#
+# The default is:
+#
+# maxmemory-policy noeviction
+
+# LRU, LFU and minimal TTL algorithms are not precise algorithms but approximated
+# algorithms (in order to save memory), so you can tune it for speed or
+# accuracy. For default Redis will check five keys and pick the one that was
+# used less recently, you can change the sample size using the following
+# configuration directive.
+#
+# The default of 5 produces good enough results. 10 Approximates very closely
+# true LRU but costs more CPU. 3 is faster but not very accurate.
+#
+# maxmemory-samples 5
+
+############################# LAZY FREEING ####################################
+
+# Redis has two primitives to delete keys. One is called DEL and is a blocking
+# deletion of the object. It means that the server stops processing new commands
+# in order to reclaim all the memory associated with an object in a synchronous
+# way. If the key deleted is associated with a small object, the time needed
+# in order to execute the DEL command is very small and comparable to most other
+# O(1) or O(log_N) commands in Redis. However if the key is associated with an
+# aggregated value containing millions of elements, the server can block for
+# a long time (even seconds) in order to complete the operation.
+#
+# For the above reasons Redis also offers non blocking deletion primitives
+# such as UNLINK (non blocking DEL) and the ASYNC option of FLUSHALL and
+# FLUSHDB commands, in order to reclaim memory in background. Those commands
+# are executed in constant time. Another thread will incrementally free the
+# object in the background as fast as possible.
+#
+# DEL, UNLINK and ASYNC option of FLUSHALL and FLUSHDB are user-controlled.
+# It's up to the design of the application to understand when it is a good
+# idea to use one or the other. However the Redis server sometimes has to
+# delete keys or flush the whole database as a side effect of other operations.
+# Specifically Redis deletes objects independently of a user call in the
+# following scenarios:
+#
+# 1) On eviction, because of the maxmemory and maxmemory policy configurations,
+# in order to make room for new data, without going over the specified
+# memory limit.
+# 2) Because of expire: when a key with an associated time to live (see the
+# EXPIRE command) must be deleted from memory.
+# 3) Because of a side effect of a command that stores data on a key that may
+# already exist. For example the RENAME command may delete the old key
+# content when it is replaced with another one. Similarly SUNIONSTORE
+# or SORT with STORE option may delete existing keys. The SET command
+# itself removes any old content of the specified key in order to replace
+# it with the specified string.
+# 4) During replication, when a slave performs a full resynchronization with
+# its master, the content of the whole database is removed in order to
+# load the RDB file just transfered.
+#
+# In all the above cases the default is to delete objects in a blocking way,
+# like if DEL was called. However you can configure each case specifically
+# in order to instead release memory in a non-blocking way like if UNLINK
+# was called, using the following configuration directives:
+
+lazyfree-lazy-eviction no
+lazyfree-lazy-expire no
+lazyfree-lazy-server-del no
+slave-lazy-flush no
+
+############################## APPEND ONLY MODE ###############################
+
+# By default Redis asynchronously dumps the dataset on disk. This mode is
+# good enough in many applications, but an issue with the Redis process or
+# a power outage may result into a few minutes of writes lost (depending on
+# the configured save points).
+#
+# The Append Only File is an alternative persistence mode that provides
+# much better durability. For instance using the default data fsync policy
+# (see later in the config file) Redis can lose just one second of writes in a
+# dramatic event like a server power outage, or a single write if something
+# wrong with the Redis process itself happens, but the operating system is
+# still running correctly.
+#
+# AOF and RDB persistence can be enabled at the same time without problems.
+# If the AOF is enabled on startup Redis will load the AOF, that is the file
+# with the better durability guarantees.
+#
+# Please check http://redis.io/topics/persistence for more information.
+
+# OE: changed default to enable this
+appendonly yes
+
+# The name of the append only file (default: "appendonly.aof")
+
+appendfilename "appendonly.aof"
+
+# The fsync() call tells the Operating System to actually write data on disk
+# instead of waiting for more data in the output buffer. Some OS will really flush
+# data on disk, some other OS will just try to do it ASAP.
+#
+# Redis supports three different modes:
+#
+# no: don't fsync, just let the OS flush the data when it wants. Faster.
+# always: fsync after every write to the append only log. Slow, Safest.
+# everysec: fsync only one time every second. Compromise.
+#
+# The default is "everysec", as that's usually the right compromise between
+# speed and data safety. It's up to you to understand if you can relax this to
+# "no" that will let the operating system flush the output buffer when
+# it wants, for better performances (but if you can live with the idea of
+# some data loss consider the default persistence mode that's snapshotting),
+# or on the contrary, use "always" that's very slow but a bit safer than
+# everysec.
+#
+# More details please check the following article:
+# http://antirez.com/post/redis-persistence-demystified.html
+#
+# If unsure, use "everysec".
+
+# appendfsync always
+appendfsync everysec
+# appendfsync no
+
+# When the AOF fsync policy is set to always or everysec, and a background
+# saving process (a background save or AOF log background rewriting) is
+# performing a lot of I/O against the disk, in some Linux configurations
+# Redis may block too long on the fsync() call. Note that there is no fix for
+# this currently, as even performing fsync in a different thread will block
+# our synchronous write(2) call.
+#
+# In order to mitigate this problem it's possible to use the following option
+# that will prevent fsync() from being called in the main process while a
+# BGSAVE or BGREWRITEAOF is in progress.
+#
+# This means that while another child is saving, the durability of Redis is
+# the same as "appendfsync none". In practical terms, this means that it is
+# possible to lose up to 30 seconds of log in the worst scenario (with the
+# default Linux settings).
+#
+# If you have latency problems turn this to "yes". Otherwise leave it as
+# "no" that is the safest pick from the point of view of durability.
+
+no-appendfsync-on-rewrite no
+
+# Automatic rewrite of the append only file.
+# Redis is able to automatically rewrite the log file implicitly calling
+# BGREWRITEAOF when the AOF log size grows by the specified percentage.
+#
+# This is how it works: Redis remembers the size of the AOF file after the
+# latest rewrite (if no rewrite has happened since the restart, the size of
+# the AOF at startup is used).
+#
+# This base size is compared to the current size. If the current size is
+# bigger than the specified percentage, the rewrite is triggered. Also
+# you need to specify a minimal size for the AOF file to be rewritten, this
+# is useful to avoid rewriting the AOF file even if the percentage increase
+# is reached but it is still pretty small.
+#
+# Specify a percentage of zero in order to disable the automatic AOF
+# rewrite feature.
+
+auto-aof-rewrite-percentage 100
+auto-aof-rewrite-min-size 64mb
+
+# An AOF file may be found to be truncated at the end during the Redis
+# startup process, when the AOF data gets loaded back into memory.
+# This may happen when the system where Redis is running
+# crashes, especially when an ext4 filesystem is mounted without the
+# data=ordered option (however this can't happen when Redis itself
+# crashes or aborts but the operating system still works correctly).
+#
+# Redis can either exit with an error when this happens, or load as much
+# data as possible (the default now) and start if the AOF file is found
+# to be truncated at the end. The following option controls this behavior.
+#
+# If aof-load-truncated is set to yes, a truncated AOF file is loaded and
+# the Redis server starts emitting a log to inform the user of the event.
+# Otherwise if the option is set to no, the server aborts with an error
+# and refuses to start. When the option is set to no, the user requires
+# to fix the AOF file using the "redis-check-aof" utility before to restart
+# the server.
+#
+# Note that if the AOF file will be found to be corrupted in the middle
+# the server will still exit with an error. This option only applies when
+# Redis will try to read more data from the AOF file but not enough bytes
+# will be found.
+aof-load-truncated yes
+
+# When rewriting the AOF file, Redis is able to use an RDB preamble in the
+# AOF file for faster rewrites and recoveries. When this option is turned
+# on the rewritten AOF file is composed of two different stanzas:
+#
+# [RDB file][AOF tail]
+#
+# When loading Redis recognizes that the AOF file starts with the "REDIS"
+# string and loads the prefixed RDB file, and continues loading the AOF
+# tail.
+#
+# This is currently turned off by default in order to avoid the surprise
+# of a format change, but will at some point be used as the default.
+aof-use-rdb-preamble no
+
+################################ LUA SCRIPTING ###############################
+
+# Max execution time of a Lua script in milliseconds.
+#
+# If the maximum execution time is reached Redis will log that a script is
+# still in execution after the maximum allowed time and will start to
+# reply to queries with an error.
+#
+# When a long running script exceeds the maximum execution time only the
+# SCRIPT KILL and SHUTDOWN NOSAVE commands are available. The first can be
+# used to stop a script that did not yet called write commands. The second
+# is the only way to shut down the server in the case a write command was
+# already issued by the script but the user doesn't want to wait for the natural
+# termination of the script.
+#
+# Set it to 0 or a negative value for unlimited execution without warnings.
+lua-time-limit 5000
+
+################################ REDIS CLUSTER ###############################
+#
+# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+# WARNING EXPERIMENTAL: Redis Cluster is considered to be stable code, however
+# in order to mark it as "mature" we need to wait for a non trivial percentage
+# of users to deploy it in production.
+# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+#
+# Normal Redis instances can't be part of a Redis Cluster; only nodes that are
+# started as cluster nodes can. In order to start a Redis instance as a
+# cluster node enable the cluster support uncommenting the following:
+#
+# cluster-enabled yes
+
+# Every cluster node has a cluster configuration file. This file is not
+# intended to be edited by hand. It is created and updated by Redis nodes.
+# Every Redis Cluster node requires a different cluster configuration file.
+# Make sure that instances running in the same system do not have
+# overlapping cluster configuration file names.
+#
+# cluster-config-file nodes-6379.conf
+
+# Cluster node timeout is the amount of milliseconds a node must be unreachable
+# for it to be considered in failure state.
+# Most other internal time limits are multiple of the node timeout.
+#
+# cluster-node-timeout 15000
+
+# A slave of a failing master will avoid to start a failover if its data
+# looks too old.
+#
+# There is no simple way for a slave to actually have an exact measure of
+# its "data age", so the following two checks are performed:
+#
+# 1) If there are multiple slaves able to failover, they exchange messages
+# in order to try to give an advantage to the slave with the best
+# replication offset (more data from the master processed).
+# Slaves will try to get their rank by offset, and apply to the start
+# of the failover a delay proportional to their rank.
+#
+# 2) Every single slave computes the time of the last interaction with
+# its master. This can be the last ping or command received (if the master
+# is still in the "connected" state), or the time that elapsed since the
+# disconnection with the master (if the replication link is currently down).
+# If the last interaction is too old, the slave will not try to failover
+# at all.
+#
+# The point "2" can be tuned by user. Specifically a slave will not perform
+# the failover if, since the last interaction with the master, the time
+# elapsed is greater than:
+#
+# (node-timeout * slave-validity-factor) + repl-ping-slave-period
+#
+# So for example if node-timeout is 30 seconds, and the slave-validity-factor
+# is 10, and assuming a default repl-ping-slave-period of 10 seconds, the
+# slave will not try to failover if it was not able to talk with the master
+# for longer than 310 seconds.
+#
+# A large slave-validity-factor may allow slaves with too old data to failover
+# a master, while a too small value may prevent the cluster from being able to
+# elect a slave at all.
+#
+# For maximum availability, it is possible to set the slave-validity-factor
+# to a value of 0, which means, that slaves will always try to failover the
+# master regardless of the last time they interacted with the master.
+# (However they'll always try to apply a delay proportional to their
+# offset rank).
+#
+# Zero is the only value able to guarantee that when all the partitions heal
+# the cluster will always be able to continue.
+#
+# cluster-slave-validity-factor 10
+
+# Cluster slaves are able to migrate to orphaned masters, that are masters
+# that are left without working slaves. This improves the cluster ability
+# to resist to failures as otherwise an orphaned master can't be failed over
+# in case of failure if it has no working slaves.
+#
+# Slaves migrate to orphaned masters only if there are still at least a
+# given number of other working slaves for their old master. This number
+# is the "migration barrier". A migration barrier of 1 means that a slave
+# will migrate only if there is at least 1 other working slave for its master
+# and so forth. It usually reflects the number of slaves you want for every
+# master in your cluster.
+#
+# Default is 1 (slaves migrate only if their masters remain with at least
+# one slave). To disable migration just set it to a very large value.
+# A value of 0 can be set but is useful only for debugging and dangerous
+# in production.
+#
+# cluster-migration-barrier 1
+
+# By default Redis Cluster nodes stop accepting queries if they detect there
+# is at least an hash slot uncovered (no available node is serving it).
+# This way if the cluster is partially down (for example a range of hash slots
+# are no longer covered) all the cluster becomes, eventually, unavailable.
+# It automatically returns available as soon as all the slots are covered again.
+#
+# However sometimes you want the subset of the cluster which is working,
+# to continue to accept queries for the part of the key space that is still
+# covered. In order to do so, just set the cluster-require-full-coverage
+# option to no.
+#
+# cluster-require-full-coverage yes
+
+# In order to setup your cluster make sure to read the documentation
+# available at http://redis.io web site.
+
+########################## CLUSTER DOCKER/NAT support ########################
+
+# In certain deployments, Redis Cluster nodes address discovery fails, because
+# addresses are NAT-ted or because ports are forwarded (the typical case is
+# Docker and other containers).
+#
+# In order to make Redis Cluster working in such environments, a static
+# configuration where each node knows its public address is needed. The
+# following two options are used for this scope, and are:
+#
+# * cluster-announce-ip
+# * cluster-announce-port
+# * cluster-announce-bus-port
+#
+# Each instruct the node about its address, client port, and cluster message
+# bus port. The information is then published in the header of the bus packets
+# so that other nodes will be able to correctly map the address of the node
+# publishing the information.
+#
+# If the above options are not used, the normal Redis Cluster auto-detection
+# will be used instead.
+#
+# Note that when remapped, the bus port may not be at the fixed offset of
+# clients port + 10000, so you can specify any port and bus-port depending
+# on how they get remapped. If the bus-port is not set, a fixed offset of
+# 10000 will be used as usually.
+#
+# Example:
+#
+# cluster-announce-ip 10.1.1.5
+# cluster-announce-port 6379
+# cluster-announce-bus-port 6380
+
+################################## SLOW LOG ###################################
+
+# The Redis Slow Log is a system to log queries that exceeded a specified
+# execution time. The execution time does not include the I/O operations
+# like talking with the client, sending the reply and so forth,
+# but just the time needed to actually execute the command (this is the only
+# stage of command execution where the thread is blocked and can not serve
+# other requests in the meantime).
+#
+# You can configure the slow log with two parameters: one tells Redis
+# what is the execution time, in microseconds, to exceed in order for the
+# command to get logged, and the other parameter is the length of the
+# slow log. When a new command is logged the oldest one is removed from the
+# queue of logged commands.
+
+# The following time is expressed in microseconds, so 1000000 is equivalent
+# to one second. Note that a negative number disables the slow log, while
+# a value of zero forces the logging of every command.
+slowlog-log-slower-than 10000
+
+# There is no limit to this length. Just be aware that it will consume memory.
+# You can reclaim memory used by the slow log with SLOWLOG RESET.
+slowlog-max-len 128
+
+################################ LATENCY MONITOR ##############################
+
+# The Redis latency monitoring subsystem samples different operations
+# at runtime in order to collect data related to possible sources of
+# latency of a Redis instance.
+#
+# Via the LATENCY command this information is available to the user that can
+# print graphs and obtain reports.
+#
+# The system only logs operations that were performed in a time equal or
+# greater than the amount of milliseconds specified via the
+# latency-monitor-threshold configuration directive. When its value is set
+# to zero, the latency monitor is turned off.
+#
+# By default latency monitoring is disabled since it is mostly not needed
+# if you don't have latency issues, and collecting data has a performance
+# impact, that while very small, can be measured under big load. Latency
+# monitoring can easily be enabled at runtime using the command
+# "CONFIG SET latency-monitor-threshold <milliseconds>" if needed.
+latency-monitor-threshold 0
+
+############################# EVENT NOTIFICATION ##############################
+
+# Redis can notify Pub/Sub clients about events happening in the key space.
+# This feature is documented at http://redis.io/topics/notifications
+#
+# For instance if keyspace events notification is enabled, and a client
+# performs a DEL operation on key "foo" stored in the Database 0, two
+# messages will be published via Pub/Sub:
+#
+# PUBLISH __keyspace@0__:foo del
+# PUBLISH __keyevent@0__:del foo
+#
+# It is possible to select the events that Redis will notify among a set
+# of classes. Every class is identified by a single character:
+#
+# K Keyspace events, published with __keyspace@<db>__ prefix.
+# E Keyevent events, published with __keyevent@<db>__ prefix.
+# g Generic commands (non-type specific) like DEL, EXPIRE, RENAME, ...
+# $ String commands
+# l List commands
+# s Set commands
+# h Hash commands
+# z Sorted set commands
+# x Expired events (events generated every time a key expires)
+# e Evicted events (events generated when a key is evicted for maxmemory)
+# A Alias for g$lshzxe, so that the "AKE" string means all the events.
+#
+# The "notify-keyspace-events" takes as argument a string that is composed
+# of zero or multiple characters. The empty string means that notifications
+# are disabled.
+#
+# Example: to enable list and generic events, from the point of view of the
+# event name, use:
+#
+# notify-keyspace-events Elg
+#
+# Example 2: to get the stream of the expired keys subscribing to channel
+# name __keyevent@0__:expired use:
+#
+# notify-keyspace-events Ex
+#
+# By default all notifications are disabled because most users don't need
+# this feature and the feature has some overhead. Note that if you don't
+# specify at least one of K or E, no events will be delivered.
+notify-keyspace-events ""
+
+############################### ADVANCED CONFIG ###############################
+
+# Hashes are encoded using a memory efficient data structure when they have a
+# small number of entries, and the biggest entry does not exceed a given
+# threshold. These thresholds can be configured using the following directives.
+hash-max-ziplist-entries 512
+hash-max-ziplist-value 64
+
+# Lists are also encoded in a special way to save a lot of space.
+# The number of entries allowed per internal list node can be specified
+# as a fixed maximum size or a maximum number of elements.
+# For a fixed maximum size, use -5 through -1, meaning:
+# -5: max size: 64 Kb <-- not recommended for normal workloads
+# -4: max size: 32 Kb <-- not recommended
+# -3: max size: 16 Kb <-- probably not recommended
+# -2: max size: 8 Kb <-- good
+# -1: max size: 4 Kb <-- good
+# Positive numbers mean store up to _exactly_ that number of elements
+# per list node.
+# The highest performing option is usually -2 (8 Kb size) or -1 (4 Kb size),
+# but if your use case is unique, adjust the settings as necessary.
+list-max-ziplist-size -2
+
+# Lists may also be compressed.
+# Compress depth is the number of quicklist ziplist nodes from *each* side of
+# the list to *exclude* from compression. The head and tail of the list
+# are always uncompressed for fast push/pop operations. Settings are:
+# 0: disable all list compression
+# 1: depth 1 means "don't start compressing until after 1 node into the list,
+# going from either the head or tail"
+# So: [head]->node->node->...->node->[tail]
+# [head], [tail] will always be uncompressed; inner nodes will compress.
+# 2: [head]->[next]->node->node->...->node->[prev]->[tail]
+# 2 here means: don't compress head or head->next or tail->prev or tail,
+# but compress all nodes between them.
+# 3: [head]->[next]->[next]->node->node->...->node->[prev]->[prev]->[tail]
+# etc.
+list-compress-depth 0
+
+# Sets have a special encoding in just one case: when a set is composed
+# of just strings that happen to be integers in radix 10 in the range
+# of 64 bit signed integers.
+# The following configuration setting sets the limit in the size of the
+# set in order to use this special memory saving encoding.
+set-max-intset-entries 512
+
+# Similarly to hashes and lists, sorted sets are also specially encoded in
+# order to save a lot of space. This encoding is only used when the length and
+# elements of a sorted set are below the following limits:
+zset-max-ziplist-entries 128
+zset-max-ziplist-value 64
+
+# HyperLogLog sparse representation bytes limit. The limit includes the
+# 16 bytes header. When an HyperLogLog using the sparse representation crosses
+# this limit, it is converted into the dense representation.
+#
+# A value greater than 16000 is totally useless, since at that point the
+# dense representation is more memory efficient.
+#
+# The suggested value is ~ 3000 in order to have the benefits of
+# the space efficient encoding without slowing down too much PFADD,
+# which is O(N) with the sparse encoding. The value can be raised to
+# ~ 10000 when CPU is not a concern, but space is, and the data set is
+# composed of many HyperLogLogs with cardinality in the 0 - 15000 range.
+hll-sparse-max-bytes 3000
+
+# Active rehashing uses 1 millisecond every 100 milliseconds of CPU time in
+# order to help rehashing the main Redis hash table (the one mapping top-level
+# keys to values). The hash table implementation Redis uses (see dict.c)
+# performs a lazy rehashing: the more operation you run into a hash table
+# that is rehashing, the more rehashing "steps" are performed, so if the
+# server is idle the rehashing is never complete and some more memory is used
+# by the hash table.
+#
+# The default is to use this millisecond 10 times every second in order to
+# actively rehash the main dictionaries, freeing memory when possible.
+#
+# If unsure:
+# use "activerehashing no" if you have hard latency requirements and it is
+# not a good thing in your environment that Redis can reply from time to time
+# to queries with 2 milliseconds delay.
+#
+# use "activerehashing yes" if you don't have such hard requirements but
+# want to free memory asap when possible.
+activerehashing yes
+
+# The client output buffer limits can be used to force disconnection of clients
+# that are not reading data from the server fast enough for some reason (a
+# common reason is that a Pub/Sub client can't consume messages as fast as the
+# publisher can produce them).
+#
+# The limit can be set differently for the three different classes of clients:
+#
+# normal -> normal clients including MONITOR clients
+# slave -> slave clients
+# pubsub -> clients subscribed to at least one pubsub channel or pattern
+#
+# The syntax of every client-output-buffer-limit directive is the following:
+#
+# client-output-buffer-limit <class> <hard limit> <soft limit> <soft seconds>
+#
+# A client is immediately disconnected once the hard limit is reached, or if
+# the soft limit is reached and remains reached for the specified number of
+# seconds (continuously).
+# So for instance if the hard limit is 32 megabytes and the soft limit is
+# 16 megabytes / 10 seconds, the client will get disconnected immediately
+# if the size of the output buffers reach 32 megabytes, but will also get
+# disconnected if the client reaches 16 megabytes and continuously overcomes
+# the limit for 10 seconds.
+#
+# By default normal clients are not limited because they don't receive data
+# without asking (in a push way), but just after a request, so only
+# asynchronous clients may create a scenario where data is requested faster
+# than it can read.
+#
+# Instead there is a default limit for pubsub and slave clients, since
+# subscribers and slaves receive data in a push fashion.
+#
+# Both the hard or the soft limit can be disabled by setting them to zero.
+client-output-buffer-limit normal 0 0 0
+client-output-buffer-limit slave 256mb 64mb 60
+client-output-buffer-limit pubsub 32mb 8mb 60
+
+# Client query buffers accumulate new commands. They are limited to a fixed
+# amount by default in order to avoid that a protocol desynchronization (for
+# instance due to a bug in the client) will lead to unbound memory usage in
+# the query buffer. However you can configure it here if you have very special
+# needs, such us huge multi/exec requests or alike.
+#
+# client-query-buffer-limit 1gb
+
+# In the Redis protocol, bulk requests, that are, elements representing single
+# strings, are normally limited ot 512 mb. However you can change this limit
+# here.
+#
+# proto-max-bulk-len 512mb
+
+# Redis calls an internal function to perform many background tasks, like
+# closing connections of clients in timeout, purging expired keys that are
+# never requested, and so forth.
+#
+# Not all tasks are performed with the same frequency, but Redis checks for
+# tasks to perform according to the specified "hz" value.
+#
+# By default "hz" is set to 10. Raising the value will use more CPU when
+# Redis is idle, but at the same time will make Redis more responsive when
+# there are many keys expiring at the same time, and timeouts may be
+# handled with more precision.
+#
+# The range is between 1 and 500, however a value over 100 is usually not
+# a good idea. Most users should use the default of 10 and raise this up to
+# 100 only in environments where very low latency is required.
+hz 10
+
+# When a child rewrites the AOF file, if the following option is enabled
+# the file will be fsync-ed every 32 MB of data generated. This is useful
+# in order to commit the file to the disk more incrementally and avoid
+# big latency spikes.
+aof-rewrite-incremental-fsync yes
+
+# Redis LFU eviction (see maxmemory setting) can be tuned. However it is a good
+# idea to start with the default settings and only change them after investigating
+# how to improve the performances and how the keys LFU change over time, which
+# is possible to inspect via the OBJECT FREQ command.
+#
+# There are two tunable parameters in the Redis LFU implementation: the
+# counter logarithm factor and the counter decay time. It is important to
+# understand what the two parameters mean before changing them.
+#
+# The LFU counter is just 8 bits per key, it's maximum value is 255, so Redis
+# uses a probabilistic increment with logarithmic behavior. Given the value
+# of the old counter, when a key is accessed, the counter is incremented in
+# this way:
+#
+# 1. A random number R between 0 and 1 is extracted.
+# 2. A probability P is calculated as 1/(old_value*lfu_log_factor+1).
+# 3. The counter is incremented only if R < P.
+#
+# The default lfu-log-factor is 10. This is a table of how the frequency
+# counter changes with a different number of accesses with different
+# logarithmic factors:
+#
+# +--------+------------+------------+------------+------------+------------+
+# | factor | 100 hits | 1000 hits | 100K hits | 1M hits | 10M hits |
+# +--------+------------+------------+------------+------------+------------+
+# | 0 | 104 | 255 | 255 | 255 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+# | 1 | 18 | 49 | 255 | 255 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+# | 10 | 10 | 18 | 142 | 255 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+# | 100 | 8 | 11 | 49 | 143 | 255 |
+# +--------+------------+------------+------------+------------+------------+
+#
+# NOTE: The above table was obtained by running the following commands:
+#
+# redis-benchmark -n 1000000 incr foo
+# redis-cli object freq foo
+#
+# NOTE 2: The counter initial value is 5 in order to give new objects a chance
+# to accumulate hits.
+#
+# The counter decay time is the time, in minutes, that must elapse in order
+# for the key counter to be divided by two (or decremented if it has a value
+# less <= 10).
+#
+# The default value for the lfu-decay-time is 1. A Special value of 0 means to
+# decay the counter every time it happens to be scanned.
+#
+# lfu-log-factor 10
+# lfu-decay-time 1
+
+########################### ACTIVE DEFRAGMENTATION #######################
+#
+# WARNING THIS FEATURE IS EXPERIMENTAL. However it was stress tested
+# even in production and manually tested by multiple engineers for some
+# time.
+#
+# What is active defragmentation?
+# -------------------------------
+#
+# Active (online) defragmentation allows a Redis server to compact the
+# spaces left between small allocations and deallocations of data in memory,
+# thus allowing to reclaim back memory.
+#
+# Fragmentation is a natural process that happens with every allocator (but
+# less so with Jemalloc, fortunately) and certain workloads. Normally a server
+# restart is needed in order to lower the fragmentation, or at least to flush
+# away all the data and create it again. However thanks to this feature
+# implemented by Oran Agra for Redis 4.0 this process can happen at runtime
+# in an "hot" way, while the server is running.
+#
+# Basically when the fragmentation is over a certain level (see the
+# configuration options below) Redis will start to create new copies of the
+# values in contiguous memory regions by exploiting certain specific Jemalloc
+# features (in order to understand if an allocation is causing fragmentation
+# and to allocate it in a better place), and at the same time, will release the
+# old copies of the data. This process, repeated incrementally for all the keys
+# will cause the fragmentation to drop back to normal values.
+#
+# Important things to understand:
+#
+# 1. This feature is disabled by default, and only works if you compiled Redis
+# to use the copy of Jemalloc we ship with the source code of Redis.
+# This is the default with Linux builds.
+#
+# 2. You never need to enable this feature if you don't have fragmentation
+# issues.
+#
+# 3. Once you experience fragmentation, you can enable this feature when
+# needed with the command "CONFIG SET activedefrag yes".
+#
+# The configuration parameters are able to fine tune the behavior of the
+# defragmentation process. If you are not sure about what they mean it is
+# a good idea to leave the defaults untouched.
+
+# Enabled active defragmentation
+# activedefrag yes
+
+# Minimum amount of fragmentation waste to start active defrag
+# active-defrag-ignore-bytes 100mb
+
+# Minimum percentage of fragmentation to start active defrag
+# active-defrag-threshold-lower 10
+
+# Maximum percentage of fragmentation at which we use maximum effort
+# active-defrag-threshold-upper 100
+
+# Minimal effort for defrag in CPU percentage
+# active-defrag-cycle-min 25
+
+# Maximal effort for defrag in CPU percentage
+# active-defrag-cycle-max 75
diff --git a/meta-oe/recipes-extended/redis/redis-7.0.12/redis.service b/meta-oe/recipes-extended/redis/redis-7.0.12/redis.service
new file mode 100644
index 0000000000..a52204cc70
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis-7.0.12/redis.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Redis In-Memory Data Store
+After=network.target
+
+[Service]
+User=redis
+Group=redis
+ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
+ExecStop=/usr/bin/redis-cli shutdown
+Restart=always
+LimitNOFILE=10032
+Type=notify
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch b/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch
new file mode 100644
index 0000000000..66ab0ee33c
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis/0001-src-Do-not-reset-FINAL_LIBS.patch
@@ -0,0 +1,30 @@
+From 97584e1eb78dc18599534b47b6670c20c63f5ee2 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
+
+This helps case where additional libraries are needed to be passed from
+environment to get it going
+
+e.g. -latomic is needed on clang/x86 to provide for 64bit atomics
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 5564351..83ccd76 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -91,7 +91,7 @@ endif
+
+ FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(REDIS_CFLAGS)
+ FINAL_LDFLAGS=$(LDFLAGS) $(REDIS_LDFLAGS) $(DEBUG)
+-FINAL_LIBS=-lm
++FINAL_LIBS+=-lm
+ DEBUG=-g -ggdb
+
+ # Linux ARM32 needs -latomic at linking time
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
new file mode 100644
index 0000000000..9d7e502717
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis/0006-Define-correct-gregs-for-RISCV32.patch
@@ -0,0 +1,62 @@
+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
+
+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>
+---
+ src/debug.c | 26 ++++++++++++++++++++++++--
+ 1 file changed, 24 insertions(+), 2 deletions(-)
+
+diff --git a/src/debug.c b/src/debug.c
+index 5318c14..8c21b47 100644
+--- a/src/debug.c
++++ b/src/debug.c
+@@ -1055,7 +1055,9 @@ static void* getAndSetMcontextEip(ucontext_t *uc, void *eip) {
+ #endif
+ #elif defined(__linux__)
+ /* Linux */
+- #if defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
++ #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__))
+ GET_SET_RETURN(uc->uc_mcontext.gregs[14], eip);
+ #elif defined(__X86_64__) || defined(__x86_64__)
+ GET_SET_RETURN(uc->uc_mcontext.gregs[16], eip);
+@@ -1222,8 +1224,28 @@ void logRegisters(ucontext_t *uc) {
+ #endif
+ /* Linux */
+ #elif defined(__linux__)
++ /* Linux RISCV32 */
++ #if defined(__riscv) && __riscv_xlen == 32
++ serverLog(LL_WARNING,
++ "\n"
++ "RA:%08lx S0:%08lx S1:%08lx S2:%08lx\n"
++ "SP:%08lx PC:%08lx A0:%08lx A1:%08lx\n"
++ "A2 :%08lx A3:%08lx A4:%08lx",
++ (unsigned long) uc->uc_mcontext.__gregs[REG_RA],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_S0],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_S1],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_S2],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_SP],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_PC],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 0],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 1],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 2],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 3],
++ (unsigned long) uc->uc_mcontext.__gregs[REG_A0 + 4]
++ );
++ logStackContent((void**)uc->uc_mcontext.__gregs[REG_SP]);
+ /* Linux x86 */
+- #if defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
++ #elif defined(__i386__) || ((defined(__X86_64__) || defined(__x86_64__)) && defined(__ILP32__))
+ 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/GNU_SOURCE.patch b/meta-oe/recipes-extended/redis/redis/GNU_SOURCE.patch
new file mode 100644
index 0000000000..20f689bd0b
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis/GNU_SOURCE.patch
@@ -0,0 +1,31 @@
+From 98d526f76049be21bf3d77158236b2189419a78e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 21 Dec 2019 12:09:51 -0800
+Subject: [PATCH] Define _GNU_SOURCE to get PTHREAD_MUTEX_INITIALIZER
+
+Fixes
+| zmalloc.c:87:37: error: 'PTHREAD_MUTEX_DEFAULT' undeclared here (not in a function)
+| 87 | pthread_mutex_t used_memory_mutex = PTHREAD_MUTEX_INITIALIZER;
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/zmalloc.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/zmalloc.c b/src/zmalloc.c
+index 1f33d09..5e182d1 100644
+--- a/src/zmalloc.c
++++ b/src/zmalloc.c
+@@ -28,6 +28,7 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
++#define _GNU_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdint.h>
+--
+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 421f306ded..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
@@ -11,20 +11,27 @@ Signed-off-by: Venture Research <tech@ventureresearch.com>
Update to work with 4.0.8
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+Reworked for 6.0.4
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
- deps/hiredis/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+Upstream-Status: Pending
+
+ deps/hiredis/Makefile | 2 --
+ 1 file changed, 2 deletions(-)
diff --git a/deps/hiredis/Makefile b/deps/hiredis/Makefile
-index 9a4de836..271c06ba 100644
+index 25ac154..569f82b 100644
--- a/deps/hiredis/Makefile
+++ b/deps/hiredis/Makefile
-@@ -36,7 +36,7 @@ endef
+@@ -42,8 +42,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')
-+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++')
+-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
+ WARNINGS=-Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers
+ DEBUG_FLAGS?= -g -ggdb
+--
+2.21.3
+
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 7e62ae1316..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
@@ -1,4 +1,4 @@
-From 394108035d350ae662a431c80131f812b5f72dff Mon Sep 17 00:00:00 2001
+From 097a2b259cb266c2c861dc74fa6f80712d6138c5 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
@@ -12,14 +12,44 @@ Updated to work with 3.0.x
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>
---
- deps/lua/src/Makefile | 18 +++++++-----------
- 1 file changed, 7 insertions(+), 11 deletions(-)
+Upstream-Status: Pending
-Index: redis-3.0.2/deps/lua/src/Makefile
-===================================================================
---- redis-3.0.2.orig/deps/lua/src/Makefile
-+++ redis-3.0.2/deps/lua/src/Makefile
+ deps/Makefile | 1 -
+ deps/lua/Makefile | 1 -
+ deps/lua/src/Makefile | 16 ++++++----------
+ 3 files changed, 6 insertions(+), 12 deletions(-)
+
+diff --git a/deps/Makefile b/deps/Makefile
+index ff16ee9..d8d64aa 100644
+--- a/deps/Makefile
++++ b/deps/Makefile
+@@ -74,7 +74,6 @@ LUA_LDFLAGS+= $(LDFLAGS)
+ # 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.
+-AR=ar
+ ARFLAGS=rc
+
+ lua: .make-prerequisites
+diff --git a/deps/lua/Makefile b/deps/lua/Makefile
+index 209a132..72f4b2b 100644
+--- a/deps/lua/Makefile
++++ b/deps/lua/Makefile
+@@ -33,7 +33,6 @@ INSTALL_DATA= $(INSTALL) -m 0644
+
+ # Utilities.
+ MKDIR= mkdir -p
+-RANLIB= ranlib
+
+ # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
+
+diff --git a/deps/lua/src/Makefile b/deps/lua/src/Makefile
+index f3bba2f..1555ec0 100644
+--- a/deps/lua/src/Makefile
++++ b/deps/lua/src/Makefile
@@ -5,18 +5,14 @@
# == CHANGE THE SETTINGS BELOW TO SUIT YOUR ENVIRONMENT =======================
@@ -45,27 +75,3 @@ Index: redis-3.0.2/deps/lua/src/Makefile
# == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
-Index: redis-3.0.2/deps/Makefile
-===================================================================
---- redis-3.0.2.orig/deps/Makefile
-+++ redis-3.0.2/deps/Makefile
-@@ -63,7 +63,6 @@ LUA_LDFLAGS+= $(LDFLAGS)
- # 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.
--AR=ar
- ARFLAGS=rcu
-
- lua: .make-prerequisites
-Index: redis-3.0.2/deps/lua/Makefile
-===================================================================
---- redis-3.0.2.orig/deps/lua/Makefile
-+++ redis-3.0.2/deps/lua/Makefile
-@@ -33,7 +33,6 @@ INSTALL_DATA= $(INSTALL) -m 0644
-
- # Utilities.
- MKDIR= mkdir -p
--RANLIB= ranlib
-
- # == END OF USER SETTINGS. NO NEED TO CHANGE ANYTHING BELOW THIS LINE =========
-
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 6745f3d0e0..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
@@ -1,4 +1,4 @@
-From f8861d2129b9e18bba137705bfa38c6bd9be1790 Mon Sep 17 00:00:00 2001
+From 1fa047162983d4a7e0576f0837a73a6027a783bd 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
@@ -6,7 +6,7 @@ Subject: [PATCH] hack to force use of libc malloc
Hack to force libc usage as it seems the option to pass it in has been
removed in favor of magic.
-Note that this of course doesn't allow tcmalloc and jemalloc, however
+Note that this of course doesn't allow tcmalloc and jemalloc, however
jemalloc wasn't building correctly.
Signed-off-by: Venture Research <tech@ventureresearch.com>
@@ -15,11 +15,13 @@ Update to work with 4.0.8
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
---
- src/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+Upstream-Status: Pending
+
+ src/Makefile | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
-index 86e0b3fe..a810180b 100644
+index ecd6929..c7f43c5 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -13,7 +13,8 @@
@@ -31,4 +33,4 @@ index 86e0b3fe..a810180b 100644
+uname_S := "USE_LIBC_MALLOC"
uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
OPTIMIZATION?=-O2
- DEPENDENCY_TARGETS=hiredis linenoise lua
+ DEPENDENCY_TARGETS=hiredis linenoise lua hdr_histogram
diff --git a/meta-oe/recipes-extended/redis/redis/remove-atomics.patch b/meta-oe/recipes-extended/redis/redis/remove-atomics.patch
deleted file mode 100644
index 23b2f2aaf0..0000000000
--- a/meta-oe/recipes-extended/redis/redis/remove-atomics.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From c486455e0691f9915018b9d8b133200a6c61a3c5 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair.francis@wdc.com>
-Date: Thu, 24 May 2018 09:58:42 -0700
-Subject: [PATCH] Remove atomics
-
-Based on this patch:
-https://github.com/patrikx3/lede-redis/blob/master/redis/patches/010-redis.patch
-
-Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
----
- deps/jemalloc/src/pages.c | 22 +---------------------
- src/atomicvar.h | 4 ++--
- 2 files changed, 3 insertions(+), 23 deletions(-)
-
-diff --git a/deps/jemalloc/src/pages.c b/deps/jemalloc/src/pages.c
-index 83a167f6..8e82c78d 100644
---- a/deps/jemalloc/src/pages.c
-+++ b/deps/jemalloc/src/pages.c
-@@ -147,27 +147,7 @@ pages_purge(void *addr, size_t size)
- {
- bool unzeroed;
-
--#ifdef _WIN32
-- VirtualAlloc(addr, size, MEM_RESET, PAGE_READWRITE);
-- unzeroed = true;
--#elif defined(JEMALLOC_HAVE_MADVISE)
--# ifdef JEMALLOC_PURGE_MADVISE_DONTNEED
--# define JEMALLOC_MADV_PURGE MADV_DONTNEED
--# define JEMALLOC_MADV_ZEROS true
--# elif defined(JEMALLOC_PURGE_MADVISE_FREE)
--# define JEMALLOC_MADV_PURGE MADV_FREE
--# define JEMALLOC_MADV_ZEROS false
--# else
--# error "No madvise(2) flag defined for purging unused dirty pages."
--# endif
-- int err = madvise(addr, size, JEMALLOC_MADV_PURGE);
-- unzeroed = (!JEMALLOC_MADV_ZEROS || err != 0);
--# undef JEMALLOC_MADV_PURGE
--# undef JEMALLOC_MADV_ZEROS
--#else
-- /* Last resort no-op. */
-- unzeroed = true;
--#endif
-+ unzeroed = false;
- return (unzeroed);
- }
-
-diff --git a/src/atomicvar.h b/src/atomicvar.h
-index 84a5bbc5..f9b563c2 100644
---- a/src/atomicvar.h
-+++ b/src/atomicvar.h
-@@ -68,7 +68,7 @@
- * is reported. */
- // #define __ATOMIC_VAR_FORCE_SYNC_MACROS
-
--#if !defined(__ATOMIC_VAR_FORCE_SYNC_MACROS) && defined(__ATOMIC_RELAXED) && !defined(__sun) && (!defined(__clang__) || !defined(__APPLE__) || __apple_build_version__ > 4210057)
-+#if defined(CONFIG_EDAC_ATOMIC_SCRUB) && !defined(__ATOMIC_VAR_FORCE_SYNC_MACROS) && defined(__ATOMIC_RELAXED) && !defined(__sun) && (!defined(__clang__) || !defined(__APPLE__) || __apple_build_version__ > 4210057)
- /* Implementation using __atomic macros. */
-
- #define atomicIncr(var,count) __atomic_add_fetch(&var,(count),__ATOMIC_RELAXED)
-@@ -82,7 +82,7 @@
- #define atomicSet(var,value) __atomic_store_n(&var,value,__ATOMIC_RELAXED)
- #define REDIS_ATOMIC_API "atomic-builtin"
-
--#elif defined(HAVE_ATOMIC)
-+#elif defined(CONFIG_EDAC_ATOMIC_SCRUB) && defined(HAVE_ATOMIC)
- /* Implementation using __sync macros. */
-
- #define atomicIncr(var,count) __sync_add_and_fetch(&var,(count))
---
-2.17.0
-
diff --git a/meta-oe/recipes-extended/redis/redis_4.0.8.bb b/meta-oe/recipes-extended/redis/redis_4.0.8.bb
deleted file mode 100644
index b6f37e9db8..0000000000
--- a/meta-oe/recipes-extended/redis/redis_4.0.8.bb
+++ /dev/null
@@ -1,56 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3c01b49fed4df1a79843688fa3f7b9d6"
-DEPENDS = ""
-
-SRC_URI = "http://download.redis.io/releases/${BP}.tar.gz \
- 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://redis.conf \
- file://init-redis-server \
- file://redis.service \
-"
-
-SRC_URI_append_mips = " file://remove-atomics.patch"
-
-SRC_URI[md5sum] = "c75b11e4177e153e4dc1d8dd3a6174e4"
-SRC_URI[sha256sum] = "ff0c38b8c156319249fec61e5018cf5b5fe63a65b61690bec798f4c998c232ad"
-
-inherit autotools-brokensep update-rc.d systemd useradd
-
-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_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.13.bb b/meta-oe/recipes-extended/redis/redis_6.2.13.bb
new file mode 100644
index 0000000000..640831c525
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis_6.2.13.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] = "89ff27c80d420456a721ccfb3beb7cc628d883c53059803513749e13214a23d1"
+
+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.12.bb b/meta-oe/recipes-extended/redis/redis_7.0.12.bb
new file mode 100644
index 0000000000..321b90dadf
--- /dev/null
+++ b/meta-oe/recipes-extended/redis/redis_7.0.12.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] = "9dd83d5b278bb2bf0e39bfeb75c3e8170024edbaf11ba13b7037b2945cf48ab7"
+
+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/rrdtool/rrdtool_1.7.0.bb b/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb
deleted file mode 100644
index ff9957480c..0000000000
--- a/meta-oe/recipes-extended/rrdtool/rrdtool_1.7.0.bb
+++ /dev/null
@@ -1,128 +0,0 @@
-SUMMARY = "High performance data logging and graphing system for time series data"
-HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=3349111ed0533471494beec99715bc9d"
-
-DEPENDS = "libpng zlib cairo pango glib-2.0 libxml2 groff-native python-setuptools-native"
-
-SRCREV = "bfc82d5242855628b826018479df00e0ec4e8360"
-PV = "1.7.0"
-
-SRC_URI = "\
- git://github.com/oetiker/rrdtool-1.x.git;branch=master;protocol=http; \
-"
-
-S = "${WORKDIR}/git"
-
-inherit cpan autotools-brokensep gettext pythonnative python-dir systemd
-
-BBCLASSEXTEND = "native"
-
-SYSTEMD_PACKAGES = "rrdcached"
-SYSTEMD_SERVICE_rrdcached = "rrdcached.socket rrdcached.service"
-
-EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
-
-PACKAGECONFIG ??= "python perl ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-PACKAGECONFIG[python] = "--enable-python=yes \
-am_cv_python_pythondir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages \
-am_cv_python_pyexecdir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages,\
---disable-python,python,"
-
-PACKAGECONFIG[perl] = \
-"--enable-perl=yes --with-perl-options='INSTALLDIRS="vendor"' \
-ac_cv_path_PERL_CC='${CC}', \
---disable-perl,perl,"
-
-PACKAGECONFIG[dbi] = "--enable-libdbi,--disable-libdbi,libdbi"
-
-PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
-
-EXTRA_OECONF = " \
- --enable-shared \
- --disable-libwrap \
- --program-prefix='' \
- rd_cv_ieee_works=yes \
- --disable-ruby \
- --disable-lua \
- --disable-tcl \
- --disable-rpath \
- --enable-nls=${USE_NLS} \
-"
-
-export STAGING_LIBDIR
-export STAGING_INCDIR
-
-# emulate cpan_do_configure
-EXTRA_OEMAKE = ' PERL5LIB="${PERL_ARCHLIB}" '
-# Avoid do_configure error on some hosts
-
-do_configure() {
- unset PERLHOSTLIB
- #fix the pkglib problem with newer automake
- #perl
- sed -i -e "s|-Wl,--rpath -Wl,\$rp||g" \
- ${S}/bindings/perl-shared/Makefile.PL
-
- #python
- sed -i -e '/PYTHON_INCLUDES="-I${/c \
- PYTHON_INCLUDES="-I=/usr/include/python${PYTHON_BASEVERSION}"' \
- ${S}/m4/acinclude.m4
- #remove the useless RPATH from the rrdtool.so
- sed -i -e 's|LD_RUN_PATH=$(libdir)||g' ${S}/bindings/Makefile.am
-
- autotools_do_configure
-
- #modify python sitepkg
- #remove the dependency of perl-shared:Makefile
- #or perl-shared/Makefile will be regenerated
- #if any code touch bindings/Makefile after below perl bindings code
- sed -i -e "s:python/setup.py install:python/setup.py install \
- --install-lib=${PYTHON_SITEPACKAGES_DIR}:" \
- -e "s:perl-shared/Makefile.PL Makefile:perl-shared/Makefile.PL:" \
- ${B}/bindings/Makefile
-
- #redo the perl bindings
- (
- cd ${S}/bindings/perl-shared;
- perl Makefile.PL INSTALLDIRS="vendor" INSTALLPRIVLIB="abc";
-
- cd ../../bindings/perl-piped;
- perl Makefile.PL INSTALLDIRS="vendor";
- )
-
- #change the interpreter in file
- sed -i -e "s|^PERL = ${STAGING_BINDIR_NATIVE}/.*|PERL = /usr/bin/perl|g" \
- ${B}/examples/Makefile
- sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" \
- ${B}/examples/*.pl
-}
-
-PACKAGES =+ "${PN}-perl ${PN}-python"
-PACKAGES =+ "rrdcached"
-
-DESCRIPTION_rrdcached = \
-"The rrdcached package contains the data caching daemon for RRDtool."
-
-FILES_rrdcached = "${bindir}/rrdcached \
- ${systemd_unitdir}/system/rrdcached.service \
- ${systemd_unitdir}/system/rrdcached.socket"
-
-FILES_${PN}-doc += "${datadir}/rrdtool/examples"
-
-DESCRIPTION_${PN}-perl = \
-"The ${PN}-perl package includes RRDtool bindings for perl."
-FILES_${PN}-perl = "${libdir}/perl/vendor_perl/*/*.pm \
- ${libdir}/perl/vendor_perl/*/auto/RRDs/RRDs.*"
-RDEPENDS_${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-time-hires \
- perl-module-io-file perl-module-ipc-open2 perl-module-io-socket"
-
-DESCRIPTION_${PN}-python = \
-"The ${PN}-python package includes RRDtool bindings for python."
-FILES_${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
-RDEPENDS_${PN}-python = "python"
-
-FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
- ${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb b/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
new file mode 100644
index 0000000000..f0c083c6db
--- /dev/null
+++ b/meta-oe/recipes-extended/rrdtool/rrdtool_1.8.0.bb
@@ -0,0 +1,131 @@
+SUMMARY = "High performance data logging and graphing system for time series data"
+HOMEPAGE = "http://oss.oetiker.ch/rrdtool/"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=39df84cfd8a5e18bf988f277f7946676"
+
+DEPENDS = "libpng zlib glib-2.0 libxml2 groff-native python3-setuptools-native"
+
+SRCREV = "3af04acd38bbc61bbdcdd931dcf234c971aa5336"
+PV = "1.8.0"
+
+SRC_URI = "\
+ git://github.com/oetiker/rrdtool-1.x.git;protocol=https;branch=master \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cpan autotools-brokensep gettext pkgconfig python3native python3-dir systemd
+
+BBCLASSEXTEND = "native"
+
+SYSTEMD_PACKAGES = "rrdcached"
+SYSTEMD_SERVICE:rrdcached = "rrdcached.socket rrdcached.service"
+
+EXTRA_AUTORECONF = "-I m4 --exclude=autopoint"
+
+PACKAGECONFIG ??= "perl graph ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[python] = "--enable-python=yes \
+am_cv_python_pythondir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages \
+am_cv_python_pyexecdir=${STAGING_LIBDIR}/python${PYTHON_BASEVERSION}/site-packages,\
+--disable-python,python,"
+
+PACKAGECONFIG[perl] = \
+"--enable-perl=yes --with-perl-options='INSTALLDIRS="vendor" CCFLAGS="${CFLAGS}" NO_PACKLIST=1 NO_PERLLOCAL=1' \
+ac_cv_path_PERL_CC='${CC}', \
+--disable-perl,perl,"
+
+PACKAGECONFIG[dbi] = "--enable-libdbi,--disable-libdbi,libdbi"
+
+PACKAGECONFIG[systemd] = "--with-systemdsystemunitdir=${systemd_unitdir}/system/,--without-systemdsystemunitdir,systemd,"
+
+PACKAGECONFIG[graph] = "--enable-rrd_graph,--disable-rrd_graph,pango cairo"
+
+EXTRA_OECONF = " \
+ --enable-shared \
+ --disable-libwrap \
+ --program-prefix='' \
+ rd_cv_ieee_works=yes \
+ --disable-ruby \
+ --disable-lua \
+ --disable-tcl \
+ --disable-rpath \
+ --enable-nls=${USE_NLS} \
+ --disable-docs \
+"
+
+export STAGING_LIBDIR
+export STAGING_INCDIR
+
+# emulate cpan_do_configure
+EXTRA_OEMAKE = ' PERL5LIB="${PERL_ARCHLIB}" '
+# Avoid do_configure error on some hosts
+
+do_configure() {
+ unset PERLHOSTLIB
+ #fix the pkglib problem with newer automake
+ #perl
+ sed -i -e "s|-Wl,--rpath -Wl,\$rp||g" \
+ ${S}/bindings/perl-shared/Makefile.PL
+
+ #python
+ sed -i -e '/PYTHON_INCLUDES="-I${/c \
+ PYTHON_INCLUDES="-I=/usr/include/python${PYTHON_BASEVERSION}"' \
+ ${S}/m4/acinclude.m4
+ #remove the useless RPATH from the rrdtool.so
+ sed -i -e 's|LD_RUN_PATH=$(libdir)||g' ${S}/bindings/Makefile.am
+
+ autotools_do_configure
+
+ #modify python sitepkg
+ #remove the dependency of perl-shared:Makefile
+ #or perl-shared/Makefile will be regenerated
+ #if any code touch bindings/Makefile after below perl bindings code
+ sed -i -e "s:python/setup.py install:python/setup.py install \
+ --install-lib=${PYTHON_SITEPACKAGES_DIR}:" \
+ -e "s:perl-shared/Makefile.PL Makefile:perl-shared/Makefile.PL:" \
+ ${B}/bindings/Makefile
+
+ #redo the perl bindings
+ (
+ cd ${S}/bindings/perl-shared;
+ perl Makefile.PL INSTALLDIRS="vendor" INSTALLPRIVLIB="abc";
+
+ cd ../../bindings/perl-piped;
+ perl Makefile.PL INSTALLDIRS="vendor";
+ )
+
+ #change the interpreter in file
+ sed -i -e "s|^PERL = ${STAGING_BINDIR_NATIVE}/.*|PERL = /usr/bin/perl|g" \
+ ${B}/examples/Makefile
+ sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" \
+ ${B}/examples/*.pl
+}
+
+PACKAGES =+ "${PN}-perl ${PN}-python"
+PACKAGES =+ "rrdcached"
+
+DESCRIPTION:rrdcached = \
+"The rrdcached package contains the data caching daemon for RRDtool."
+
+FILES:rrdcached = "${bindir}/rrdcached \
+ ${systemd_unitdir}/system/rrdcached.service \
+ ${systemd_unitdir}/system/rrdcached.socket"
+
+FILES:${PN}-doc += "${datadir}/rrdtool/examples"
+
+DESCRIPTION:${PN}-perl = \
+"The ${PN}-perl package includes RRDtool bindings for perl."
+FILES:${PN}-perl = "${libdir}/perl/vendor_perl/*/*.pm \
+ ${libdir}/perl/vendor_perl/*/auto/RRDs/RRDs.*"
+RDEPENDS:${PN}-perl = "perl perl-module-lib perl-module-getopt-long perl-module-time-hires \
+ perl-module-io-file perl-module-ipc-open2 perl-module-io-socket"
+
+DESCRIPTION:${PN}-python = \
+"The ${PN}-python package includes RRDtool bindings for python."
+FILES:${PN}-python = "${libdir}/python${PYTHON_BASEVERSION}/site-packages/*"
+RDEPENDS:${PN}-python = "python3"
+
+FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/RRDs/.debug \
+ ${libdir}/python${PYTHON_BASEVERSION}/site-packages/.debug"
diff --git a/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.4.bb b/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.4.bb
deleted file mode 100644
index 2e23d7ec6d..0000000000
--- a/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.4.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"
-
-SRCREV = "6e057a094cb225c9d80d8d6e6b1f36ca88a942dd"
-
-S = "${WORKDIR}/git"
-
-inherit autotools
diff --git a/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb b/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.bb
new file mode 100644
index 0000000000..24ad172674
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/libfastjson_0.99.9.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 = "0293afb3913f760c449348551cca4d2df59c1a00"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
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..e7b79ad03f
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/librelp_1.11.0.bb
@@ -0,0 +1,20 @@
+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 = "b421f56d9ee31a966058d23bd23c966221c91396"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+DEBUG_OPTIMIZATION:append = " -Wno-error=inline"
+
+
diff --git a/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb b/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb
deleted file mode 100644
index 28047eb542..0000000000
--- a/meta-oe/recipes-extended/rsyslog/librelp_1.2.14.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A reliable logging library"
-HOMEPAGE = "https://github.com/rsyslog/libfastjson"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1fb9c10ed9fd6826757615455ca893a9"
-
-DEPENDS = "gmp nettle libidn zlib gnutls"
-
-SRC_URI = "git://github.com/rsyslog/librelp.git;protocol=https"
-
-SRCREV = "fc512e337bfc7c92770246dbff5f482b879498b9"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch b/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
index ca88dd3f7e..6ce8b7a9c8 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/0001-Include-sys-time-h.patch
@@ -1,6 +1,6 @@
-From 9739095de6ae5f844354756ae968f5f8864eb3e3 Mon Sep 17 00:00:00 2001
+From 7baf35b88d742032a2dc456c396843e17e866f8e Mon Sep 17 00:00:00 2001
From: Ming Liu <peter.x.liu@external.atlascopco.com>
-Date: Sun, 26 Feb 2017 14:10:21 +0100
+Date: Wed, 27 Jun 2018 14:04:57 +0800
Subject: [PATCH] Include sys/time.h
struct timeval is defined in sys/time.h with a musl libc.
@@ -8,13 +8,13 @@ struct timeval is defined in sys/time.h with a musl libc.
Upstream-Status: Inappropriate [musl libc specific]
Signed-off-by: Ming Liu <peter.x.liu@external.atlascopco.com>
-
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
---
tests/msleep.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/tests/msleep.c b/tests/msleep.c
-index 26a8206..ca818be 100644
+index 98dbece..96f6950 100644
--- a/tests/msleep.c
+++ b/tests/msleep.c
@@ -26,11 +26,7 @@
@@ -26,6 +26,7 @@ index 26a8206..ca818be 100644
-#else
-#include <time.h>
-#endif
-
- int main(int argc, char *argv[])
- {
+ #if defined(HAVE_SYS_SELECT_H)
+ #include <sys/select.h>
+ #endif
+2.7.4
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
new file mode 100644
index 0000000000..c1480406fe
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/0001-tests-disable-the-check-for-inotify.patch
@@ -0,0 +1,46 @@
+From 194e199ce08acc2192f6a63420ff24d9064666e5 Mon Sep 17 00:00:00 2001
+From: Yi Fan Yu <yifan.yu@windriver.com>
+Date: Sat, 27 Mar 2021 19:18:25 -0400
+Subject: [PATCH] tests: disable the check for inotify
+
+We don't need to check inotify.h.
+Assume it is present since it is part of the linux kernel
+since 2.6.13 [1].
+
+[1](https://kernelnewbies.org/Linux_2_6_13)
+
+(it would require installing the libc headers otherwise,
+ for the test to detect /usr/include/sys/inotify.h.)
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Yi Fan Yu <yifan.yu@windriver.com>
+---
+ tests/diag.sh | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/diag.sh b/tests/diag.sh
+index 6cd60ea88..7424f48c5 100755
+--- a/tests/diag.sh
++++ b/tests/diag.sh
+@@ -2672,7 +2672,7 @@ case $1 in
+ fi
+ ;;
+ 'check-inotify') # Check for inotify/fen support
+- if [ -n "$(find /usr/include -name 'inotify.h' -print -quit)" ]; then
++ if true; then
+ echo [inotify mode]
+ elif [ -n "$(find /usr/include/sys/ -name 'port.h' -print -quit)" ]; then
+ grep -qF "PORT_SOURCE_FILE" < /usr/include/sys/port.h
+@@ -2687,7 +2687,7 @@ case $1 in
+ fi
+ ;;
+ 'check-inotify-only') # Check for ONLY inotify support
+- if [ -n "$(find /usr/include -name 'inotify.h' -print -quit)" ]; then
++ if true; then
+ echo [inotify mode]
+ else
+ echo [inotify not supported, skipping...]
+--
+2.29.2
+
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch b/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch
deleted file mode 100644
index a248f75e5b..0000000000
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog-fix-ptest-not-finish.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 07ad2a1905089b9124623324a9969e4522317110 Mon Sep 17 00:00:00 2001
-From: Jackie Huang <jackie.huang@windriver.com>
-Date: Fri, 12 Sep 2014 03:41:11 -0400
-Subject: [PATCH] rsyslog: update configure to fix ptest
-
-$MaxMessageSize doesn't work if before $IncludeConfig diag-common.conf, then
-test cases fall into infinite loop with error message:
-
-8062.511110729:4902c480: error: message received is larger than max msg size, we split it
-8062.511152265:4902c480: discarding zero-sized message
-
-Update configure to fix it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
-
----
- tests/testsuites/complex1.conf | 2 +-
- tests/testsuites/gzipwr_large.conf | 2 +-
- tests/testsuites/gzipwr_large_dynfile.conf | 2 +-
- tests/testsuites/imptcp_conndrop.conf | 2 +-
- tests/testsuites/imptcp_large.conf | 2 +-
- tests/testsuites/imtcp_conndrop.conf | 2 +-
- tests/testsuites/wr_large.conf | 2 +-
- 7 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/tests/testsuites/complex1.conf b/tests/testsuites/complex1.conf
-index 9b6a9f3..e00caa4 100644
---- a/tests/testsuites/complex1.conf
-+++ b/tests/testsuites/complex1.conf
-@@ -1,7 +1,7 @@
- # complex test case with multiple actions in gzip mode
- # rgerhards, 2009-05-22
--$MaxMessageSize 10k
- $IncludeConfig diag-common.conf
-+$MaxMessageSize 10k
-
- $MainMsgQueueTimeoutEnqueue 5000
-
-diff --git a/tests/testsuites/gzipwr_large.conf b/tests/testsuites/gzipwr_large.conf
-index 54ad3bb..e8247a9 100644
---- a/tests/testsuites/gzipwr_large.conf
-+++ b/tests/testsuites/gzipwr_large.conf
-@@ -1,7 +1,7 @@
- # simple async writing test
- # rgerhards, 2010-03-09
--$MaxMessageSize 10k
- $IncludeConfig diag-common.conf
-+$MaxMessageSize 10k
-
- $ModLoad ../plugins/imtcp/.libs/imtcp
- $MainMsgQueueTimeoutShutdown 10000
-diff --git a/tests/testsuites/gzipwr_large_dynfile.conf b/tests/testsuites/gzipwr_large_dynfile.conf
-index 3a1b255..297cb70 100644
---- a/tests/testsuites/gzipwr_large_dynfile.conf
-+++ b/tests/testsuites/gzipwr_large_dynfile.conf
-@@ -1,7 +1,7 @@
- # simple async writing test
- # rgerhards, 2010-03-09
--$MaxMessageSize 10k
- $IncludeConfig diag-common.conf
-+$MaxMessageSize 10k
-
- $ModLoad ../plugins/imtcp/.libs/imtcp
- $MainMsgQueueTimeoutShutdown 10000
-diff --git a/tests/testsuites/imptcp_conndrop.conf b/tests/testsuites/imptcp_conndrop.conf
-index 77a5d79..d9a14a8 100644
---- a/tests/testsuites/imptcp_conndrop.conf
-+++ b/tests/testsuites/imptcp_conndrop.conf
-@@ -1,7 +1,7 @@
- # simple async writing test
- # rgerhards, 2010-03-09
--$MaxMessageSize 10k
- $IncludeConfig diag-common.conf
-+$MaxMessageSize 10k
-
- $ModLoad ../plugins/imptcp/.libs/imptcp
- $MainMsgQueueTimeoutShutdown 10000
-diff --git a/tests/testsuites/imptcp_large.conf b/tests/testsuites/imptcp_large.conf
-index 77a5d79..d9a14a8 100644
---- a/tests/testsuites/imptcp_large.conf
-+++ b/tests/testsuites/imptcp_large.conf
-@@ -1,7 +1,7 @@
- # simple async writing test
- # rgerhards, 2010-03-09
--$MaxMessageSize 10k
- $IncludeConfig diag-common.conf
-+$MaxMessageSize 10k
-
- $ModLoad ../plugins/imptcp/.libs/imptcp
- $MainMsgQueueTimeoutShutdown 10000
-diff --git a/tests/testsuites/imtcp_conndrop.conf b/tests/testsuites/imtcp_conndrop.conf
-index de41bc4..7844dc7 100644
---- a/tests/testsuites/imtcp_conndrop.conf
-+++ b/tests/testsuites/imtcp_conndrop.conf
-@@ -1,7 +1,7 @@
- # simple async writing test
- # rgerhards, 2010-03-09
--$MaxMessageSize 10k
- $IncludeConfig diag-common.conf
-+$MaxMessageSize 10k
-
- $ModLoad ../plugins/imtcp/.libs/imtcp
- $MainMsgQueueTimeoutShutdown 10000
-diff --git a/tests/testsuites/wr_large.conf b/tests/testsuites/wr_large.conf
-index b64f132..b0ae264 100644
---- a/tests/testsuites/wr_large.conf
-+++ b/tests/testsuites/wr_large.conf
-@@ -1,7 +1,7 @@
- # simple async writing test
- # rgerhards, 2010-03-09
--$MaxMessageSize 10k
- $IncludeConfig diag-common.conf
-+$MaxMessageSize 10k
-
- $ModLoad ../plugins/imtcp/.libs/imtcp
- $MainMsgQueueTimeoutShutdown 10000
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf b/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
index 324ae6d82a..dbfefb7597 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.conf
@@ -84,3 +84,8 @@ $ActionQueueMaxDiskSpace 10m # 1gb space limit (use as much as possible)
# UDP Syslog Server:
#$ModLoad imudp.so # provides UDP syslog reception
#$UDPServerRun 514 # start a UDP syslog server at standard port 514
+
+#
+# Include all config files in /etc/rsyslog.d/
+#
+$IncludeConfig /etc/rsyslog.d/*.conf
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate b/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
index 94ec517b21..5f8568fce6 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.logrotate
@@ -9,7 +9,7 @@
delaycompress
compress
postrotate
- /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
+ @BINDIR@/pkill -HUP rsyslogd 2> /dev/null || true
endscript
}
@@ -34,6 +34,6 @@
delaycompress
sharedscripts
postrotate
- /bin/kill -HUP `cat /var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true
+ @BINDIR@/pkill -HUP rsyslogd 2> /dev/null || true
endscript
}
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.service b/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.service
new file mode 100644
index 0000000000..0aacff32d5
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/rsyslog.service
@@ -0,0 +1,21 @@
+[Unit]
+Description=System Logging Service
+Requires=syslog.socket
+Wants=network.target network-online.target
+After=network.target network-online.target
+Documentation=man:rsyslogd(8)
+Documentation=http://www.rsyslog.com/doc/
+
+[Service]
+Type=notify
+ExecStart=@sbindir@/rsyslogd -n -iNONE
+StandardOutput=null
+Restart=on-failure
+
+# Increase the default a bit in order to allow many simultaneous
+# files to be monitored, we might need a lot of fds.
+LimitNOFILE=16384
+
+[Install]
+WantedBy=multi-user.target
+Alias=syslog.service
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest b/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
index 3770a75065..efa9ba3ed0 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/run-ptest
@@ -1,3 +1,12 @@
#!/bin/sh
#
-make -C tests -k check-TESTS
+set -e
+set -o pipefail
+
+SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
+cd ${SCRIPTPATH}
+useradd tester || echo "user already exists"
+ln -sf /usr/sbin/logrotate /usr/bin/logrotate
+su tester -c "make -C tests -k check-TESTS"
+userdel tester
+rm -f /usr/bin/logrotate
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch b/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
index 162d239a13..0352587268 100644
--- a/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog/use-pkgconfig-to-check-libgcrypt.patch
@@ -3,7 +3,7 @@ From: Roy Li <rongqing.li@windriver.com>
Date: Wed, 18 Jun 2014 13:46:52 +0800
Subject: [PATCH] use pkgconfig to check libgcrypt
-Upstream-status: Inappropriate [configuration]
+Upstream-Status: Inappropriate [configuration]
libgcrypt does no longer provide libgcrypt-config, and provide
*.pc, so we should use pkgconfig to check
diff --git a/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb
new file mode 100644
index 0000000000..c639e81473
--- /dev/null
+++ b/meta-oe/recipes-extended/rsyslog/rsyslog_8.2306.0.bb
@@ -0,0 +1,206 @@
+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 \
+"
+
+SRC_URI[sha256sum] = "f6283efaadc609540a56e6bec88a362c966e77f29fe48e6b734bd6c1123e0be5"
+
+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,"
+# For libcap-ng, see commit log and https://github.com/rsyslog/rsyslog/issues/5091
+PACKAGECONFIG[libcap-ng] = "--enable-libcap-ng,--disable-libcap-ng,libcap-ng,"
+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.29.0.bb b/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
deleted file mode 100644
index 03f21c6190..0000000000
--- a/meta-oe/recipes-extended/rsyslog/rsyslog_8.29.0.bb
+++ /dev/null
@@ -1,153 +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 = "GPLv3 & LGPLv3 & 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://use-pkgconfig-to-check-libgcrypt.patch \
- file://run-ptest \
- file://rsyslog-fix-ptest-not-finish.patch \
-"
-
-SRC_URI_append_libc-musl = " \
- file://0001-Include-sys-time-h.patch \
-"
-
-SRC_URI[md5sum] = "3805617f65a4b4bea34606487a5255a0"
-SRC_URI[sha256sum] = "220ba30b5afb0f3ddb328613fea7aa3966b01e4d0c52d6de9ab27b0858f19738"
-
-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"
-
-# first line is default yes in configure
-PACKAGECONFIG ??= " \
- rsyslogd rsyslogrt klog inet regexp uuid libgcrypt \
- 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[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[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] = "--enable-valgrind,--disable-valgrind,valgrind,"
-
-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}
-
- # do NOT need to rebuild Makefile itself
- sed -i 's/^Makefile:.*$/Makefile:/' ${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
-
- # valgrind is not compatible with arm and mips,
- # so remove related test cases if there is no valgrind.
- if [ x${VALGRIND} = x ]; then
- sed -i '/udp-msgreduc-/d' ${D}${PTEST_PATH}/${TESTDIR}/Makefile
- fi
-
- # 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'
-}
-
-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
-}
-
-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_mips = ""
-VALGRIND_mips64 = ""
-VALGRIND_mips64n32 = ""
-VALGRIND_arm = ""
-VALGRIND_aarch64 = ""
-RDEPENDS_${PN}-ptest += "make diffutils gzip bash gawk coreutils procps"
-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
new file mode 100644
index 0000000000..9007bdbd41
--- /dev/null
+++ b/meta-oe/recipes-extended/s-nail/files/0001-make.rc-set-VAL_MTA.patch
@@ -0,0 +1,48 @@
+From da8c7a027390de7828d4272a3c8bcdbffbac25ad Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 5 May 2022 16:57:48 +0800
+Subject: [PATCH] make.rc: set VAL_MTA
+
+Some build server may provide sendmail like /usr/lib/sendmail which
+may result the VAL_MTA to be /usr/lib/sendmail, but the sendmail
+is actually /usr/sbin/sendmail on the target.
+
+Fixes:
+ # echo "invalide address email" | s-nail -s "test mail" -r test@test.com tester@test.com
+ s-nail: Cannot start /usr/lib/sendmail: executable not found (adjust *mta* variable)
+ /home/root/dead.letter 10/234
+ s-nail: ... message not sent
+
+ # which sendmail
+ /usr/sbin/sendmail
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ make.rc | 9 +--------
+ 1 file changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/make.rc b/make.rc
+index 98bd968..45ac0d4 100644
+--- a/make.rc
++++ b/make.rc
+@@ -96,14 +96,7 @@ VAL_MAIL=`\
+
+ # Path to the local MTA (Mail-Transfer-Agent).
+ # MTA aliases (aliases(5)) are optionally supported via OPT_MTA_ALIASES.
+-VAL_MTA=`\
+- if [ -x /usr/bin/sendmail ]; then \
+- echo /usr/bin/sendmail;\
+- elif [ -x /usr/lib/sendmail ]; then \
+- echo /usr/lib/sendmail;\
+- else \
+- echo /usr/sbin/sendmail;\
+- fi`
++VAL_MTA=/usr/sbin/sendmail
+
+ # Today a lot of systems no longer use sendmail(1), but a different MTA.
+ # To ensure compatibility with sendmail(1), a system called
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/s-nail/files/0001-mk-make-config.sh-not-reveal-the-build-env.patch b/meta-oe/recipes-extended/s-nail/files/0001-mk-make-config.sh-not-reveal-the-build-env.patch
new file mode 100644
index 0000000000..18ef6cae22
--- /dev/null
+++ b/meta-oe/recipes-extended/s-nail/files/0001-mk-make-config.sh-not-reveal-the-build-env.patch
@@ -0,0 +1,43 @@
+From fa93dab6393527673e642f26b6ea2c4413dd3cfe Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 27 Jul 2022 13:40:12 +0800
+Subject: [PATCH] make-config.sh: hidden the build info
+
+Use the CC as placeholder to replace the real build information which
+will be collected via src/mx/accmacvar.c and then added in the final
+binary s-nail, so hidden the build info to avoid revealing the detailed
+build info.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ mk/make-config.sh | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/mk/make-config.sh b/mk/make-config.sh
+index 2d7c619..9146004 100644
+--- a/mk/make-config.sh
++++ b/mk/make-config.sh
+@@ -3637,15 +3637,15 @@ LIBS=`squeeze_ws "${LIBS}"`
+ COMMLINE=`printf '%s\n' "${COMMLINE}" | ${sed} -e 's/.*--\(.*\)/\1/'`
+ COMMLINE=`squeeze_ws "${COMMLINE}"`
+
+-i=`printf '%s %s %s\n' "${CC}" "${CFLAGS}" "${i}"`
++i="CC"
+ printf '#define VAL_BUILD_CC "%s"\n' "$i" >> ${h}
+ i=`string_to_char_array "${i}"`
+ printf '#define VAL_BUILD_CC_ARRAY %s\n' "$i" >> ${h}
+-i=`printf '%s %s %s\n' "${CC}" "${LDFLAGS}" "${LIBS}"`
++i="CC"
+ printf '#define VAL_BUILD_LD "%s"\n' "$i" >> ${h}
+ i=`string_to_char_array "${i}"`
+ printf '#define VAL_BUILD_LD_ARRAY %s\n' "$i" >> ${h}
+-i=${COMMLINE}
++i="CC"
+ printf '#define VAL_BUILD_REST "%s"\n' "$i" >> ${h}
+ i=`string_to_char_array "${i}"`
+ printf '#define VAL_BUILD_REST_ARRAY %s\n' "$i" >> ${h}
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..41f98281f8
--- /dev/null
+++ b/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-eh-no-give-up-share-detection.patch
@@ -0,0 +1,68 @@
+From 9db4c0f6bc0dd11c77b54296fce6b8afe18f4325 Mon Sep 17 00:00:00 2001
+From: Steffen Nurpmeso <steffen@sdaoden.eu>
+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]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ include/su/code.h | 34 +++++++++-------------------------
+ 1 file changed, 9 insertions(+), 25 deletions(-)
+
+diff --git a/include/su/code.h b/include/su/code.h
+index 9683f4a..c7a2af3 100644
+--- a/include/su/code.h
++++ b/include/su/code.h
+@@ -308,29 +308,8 @@ do{\
+ # ifdef DOXYGEN
+ # define su_INLINE inline
+ # define su_SINLINE inline
+-# elif su_CC_GCC
+-# if !su_CC_VCHECK_GCC(3, 1)
+-# define su_INLINE extern __inline__
+-# define su_SINLINE static __inline__
+-# elif !defined __GNUC_GNU_INLINE__ /*4.1.3; !su_CC_VCHECK_GCC(4, 2)*/
+-# define su_INLINE extern __inline __attribute__((always_inline))
+-# define su_SINLINE static __inline __attribute__((always_inline))
+- /* gcc 8.3.0 bug: does not gracefully inline with -Os
+- * gcc 12.1.0 bug: ditto, -Og
+- * Thus: always gcc-specific! */
+-# elif 1 /*!defined __OPTIMIZE__ || \
+- !defined __STDC_VERSION__ || __STDC_VERSION__ +0 < 199901L*/
+-# define su_INLINE extern __inline __attribute__((gnu_inline))
+-# define su_SINLINE static __inline __attribute__((gnu_inline))
+-# elif !defined NDEBUG || !defined __OPTIMIZE__
+-# define su_INLINE static inline
+-# define su_SINLINE static inline
+-# else
+-# define su_INLINE inline
+-# define su_SINLINE static inline
+-# endif
+-# elif su_CC_CLANG || su_CC_PCC
+-# if defined __STDC_VERSION__ && __STDC_VERSION__ +0 >= 199901L
++# elif su_CC_CLANG || su_CC_GCC || su_CC_PCC
++# if defined __STDC_VERSION__ && __STDC_VERSION__ +0 >= 199901l
+ # if !defined NDEBUG || !defined __OPTIMIZE__
+ # define su_INLINE static inline
+ # define su_SINLINE static inline
+@@ -340,8 +319,13 @@ do{\
+ # define su_SINLINE static inline __attribute__((always_inline))
+ # endif
+ # else
+-# define su_INLINE static __inline
+-# define su_SINLINE static __inline
++# if su_CC_VCHECK_GCC(3, 1)
++# define su_INLINE static __inline __attribute__((always_inline))
++# define su_SINLINE static __inline __attribute__((always_inline))
++# else
++# define su_INLINE static __inline
++# define su_SINLINE static __inline
++# endif
+ # endif
+ # else
+ # define su_INLINE static /* TODO __attribute__((unused)) alike? */
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..37ecb0c1ff
--- /dev/null
+++ b/meta-oe/recipes-extended/s-nail/files/0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch
@@ -0,0 +1,45 @@
+From 5429b9e343c808951b1418d8626e544c9dcb28de Mon Sep 17 00:00:00 2001
+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]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ include/su/code.h | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/include/su/code.h b/include/su/code.h
+index 4d552c1..9683f4a 100644
+--- a/include/su/code.h
++++ b/include/su/code.h
+@@ -309,16 +309,17 @@ do{\
+ # define su_INLINE inline
+ # define su_SINLINE inline
+ # elif su_CC_GCC
+- /* After lots of trouble with OpenBSD/gcc 4.2.1 and SunOS/gcc 3.4.3 */
+-# if !su_CC_VCHECK_GCC(3, 2) /* Unsure: only used C++ at that time */
+-# define su_INLINE extern __inline
+-# define su_SINLINE static __inline
+-# elif !su_CC_VCHECK_GCC(4, 3)
++# if !su_CC_VCHECK_GCC(3, 1)
++# define su_INLINE extern __inline__
++# define su_SINLINE static __inline__
++# elif !defined __GNUC_GNU_INLINE__ /*4.1.3; !su_CC_VCHECK_GCC(4, 2)*/
+ # define su_INLINE extern __inline __attribute__((always_inline))
+ # define su_SINLINE static __inline __attribute__((always_inline))
+- /* xxx gcc 8.3.0 bug: does not truly inline with -Os */
+-# elif !su_CC_VCHECK_GCC(8, 3) || !defined __OPTIMIZE__ ||\
+- !defined __STDC_VERSION__ || __STDC_VERSION__ +0 < 199901L
++ /* gcc 8.3.0 bug: does not gracefully inline with -Os
++ * gcc 12.1.0 bug: ditto, -Og
++ * Thus: always gcc-specific! */
++# elif 1 /*!defined __OPTIMIZE__ || \
++ !defined __STDC_VERSION__ || __STDC_VERSION__ +0 < 199901L*/
+ # define su_INLINE extern __inline __attribute__((gnu_inline))
+ # define su_SINLINE static __inline __attribute__((gnu_inline))
+ # elif !defined NDEBUG || !defined __OPTIMIZE__
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/s-nail/files/make-errors.patch b/meta-oe/recipes-extended/s-nail/files/make-errors.patch
new file mode 100644
index 0000000000..68de68cdb8
--- /dev/null
+++ b/meta-oe/recipes-extended/s-nail/files/make-errors.patch
@@ -0,0 +1,45 @@
+Don't wrap CC in quotes as our CC has options and this breaks command lookup.
+
+Upstream-Status: Backport [https://git.sdaoden.eu/browse/s-nail.git/commit/?h=next&id=c08f3c898def715edf9164e169c3b3522f4c7a1f]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From c08f3c898def715edf9164e169c3b3522f4c7a1f Mon Sep 17 00:00:00 2001
+From: Steffen Nurpmeso <steffen@sdaoden.eu>
+Date: Tue, 1 Feb 2022 18:54:16 +0100
+Subject: [-] Remove even more bogus quotation marks (Ross Burton)..
+
+On top of (mk/su-find-command.sh: clearly define space behaviour)
+and (mx-test.sh: remove bogus quotation marks) Ross Burton
+reported some more on the ML. I looked around and hope this was it.
+---
+ mk/pcb-cc.sh | 2 +-
+ mk/su-make-errors.sh | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/mk/pcb-cc.sh b/mk/pcb-cc.sh
+index 2697c5cf..075f8988 100755
+--- a/mk/pcb-cc.sh
++++ b/mk/pcb-cc.sh
+@@ -18,7 +18,7 @@ if dowemayhave "$@"; then
+ if acmd_set CC clang || acmd_set CC gcc ||
+ acmd_set CC tcc || acmd_set CC pcc ||
+ acmd_set CC c89 || acmd_set CC c99; then
+- exec "$CC" "$@"
++ exec $CC "$@"
+ else
+ echo >&2 'boing booom tschak'
+ echo >&2 'ERROR: I cannot find a compiler!'
+diff --git a/mk/su-make-errors.sh b/mk/su-make-errors.sh
+index f5c5144e..7fede15e 100644
+--- a/mk/su-make-errors.sh
++++ b/mk/su-make-errors.sh
+@@ -157,7 +157,7 @@ compile_time() { # {{{
+ # The problem is that at least (some versions of) gcc mangle output.
+ # Ensure we get both arguments on one line.
+ # While here sort numerically.
+- "${CC}" -E "${TARGET}".c |
++ ${CC} -E "${TARGET}".c |
+ ${awk} '
+ function stripsym(sym){
+ sym = substr(sym, 2)
+--
diff --git a/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb b/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb
new file mode 100644
index 0000000000..bcdb1e4788
--- /dev/null
+++ b/meta-oe/recipes-extended/s-nail/s-nail_14.9.24.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Feature-rich BSD mail(1)"
+HOMEPAGE = "https://www.sdaoden.eu/code.html#s-mailx"
+SECTION = "console/network"
+
+LICENSE = "ISC & BSD-3-Clause & BSD-4-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=87266591c81260f10221f1f38872d023"
+
+SRC_URI = "https://ftp.sdaoden.eu/${BP}.tar.xz \
+ file://make-errors.patch \
+ file://0001-make.rc-set-VAL_MTA.patch \
+ file://0001-su_INLINE-gcc-only-GNU-specifics-after-Og.patch \
+ file://0001-su_INLINE-eh-no-give-up-share-detection.patch \
+ file://0001-mk-make-config.sh-not-reveal-the-build-env.patch \
+"
+SRC_URI[sha256sum] = "2714d6b8fb2af3b363fc7c79b76d058753716345d1b6ebcd8870ecd0e4f7ef8c"
+
+DEPENDS = "coreutils-native"
+
+B = "${WORKDIR}/build"
+
+inherit update-alternatives
+
+EXTRA_OEMAKE = "VERBOSE=yes \
+ CONFIG=minimal \
+ OPT_AUTOCC=no \
+ OPT_CROSS_BUILD=yes \
+ OBJDIR=${B} \
+ strip=true \
+ VAL_PREFIX=${prefix} \
+ VAL_BINDIR=${bindir} \
+ VAL_LIBEXECDIR=${libexecdir} \
+ VAL_MANDIR=${mandir} \
+ VAL_SYSCONFDIR=${sysconfdir}"
+
+do_configure[cleandirs] += "${B}"
+do_configure() {
+ oe_runmake -C ${S} config
+}
+
+do_compile() {
+ oe_runmake -C ${S} build
+}
+
+do_install() {
+ oe_runmake -C ${S} install DESTDIR=${D}
+}
+
+ALTERNATIVE:${PN} = "mailx"
+ALTERNATIVE_TARGET[mailx] = "${bindir}/s-nail"
diff --git a/meta-oe/recipes-extended/sanlock/sanlock/0001-add-missing-system-header-string.h.patch b/meta-oe/recipes-extended/sanlock/sanlock/0001-add-missing-system-header-string.h.patch
new file mode 100644
index 0000000000..5878847113
--- /dev/null
+++ b/meta-oe/recipes-extended/sanlock/sanlock/0001-add-missing-system-header-string.h.patch
@@ -0,0 +1,41 @@
+From 272f9838f3495f5e419f77e000762c420754c96d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 15:57:32 -0700
+Subject: [PATCH] add missing system header string.h
+
+This is needed for mem* function prototypes used in these sources
+
+Upstream-Status: Submitted [https://pagure.io/sanlock/issue/8]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/sanlock_sock.c | 1 +
+ wdmd/wdmd_sock.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/src/sanlock_sock.c b/src/sanlock_sock.c
+index b83f9ae..e206f88 100644
+--- a/src/sanlock_sock.c
++++ b/src/sanlock_sock.c
+@@ -12,6 +12,7 @@
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stddef.h>
++#include <string.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
+diff --git a/wdmd/wdmd_sock.c b/wdmd/wdmd_sock.c
+index 45d9d9b..110ce9f 100644
+--- a/wdmd/wdmd_sock.c
++++ b/wdmd/wdmd_sock.c
+@@ -12,6 +12,7 @@
+ #include <stdio.h>
+ #include <stdint.h>
+ #include <stddef.h>
++#include <string.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
+--
+2.37.3
+
diff --git a/meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch b/meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch
new file mode 100644
index 0000000000..a0b721c466
--- /dev/null
+++ b/meta-oe/recipes-extended/sanlock/sanlock/0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch
@@ -0,0 +1,51 @@
+From 78a9cffb1c760466933bbbcbae7ecb9b30a3e6a5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 21 Nov 2019 13:47:42 -0800
+Subject: [PATCH] sanlock: Replace "cp -a" with "cp -R --no-dereference
+ --preserve=mode, links"
+
+Using "cp -a" leaks UID of user running the builds
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile | 8 ++++----
+ wdmd/Makefile | 4 ++--
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/src/Makefile b/src/Makefile
+index 533dd79..2fc9ba5 100644
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -127,9 +127,9 @@ install: all
+ $(INSTALL) -c -m 755 $(LIBSO_CLIENT_TARGET) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -c -m 644 $(LIBPC_ENTIRE_TARGET) $(DESTDIR)/$(LIBDIR)/pkgconfig
+ $(INSTALL) -c -m 644 $(LIBPC_CLIENT_TARGET) $(DESTDIR)/$(LIBDIR)/pkgconfig
+- cp -a $(LIB_ENTIRE_TARGET).so $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_CLIENT_TARGET).so $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_ENTIRE_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_CLIENT_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_ENTIRE_TARGET).so $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_CLIENT_TARGET).so $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_ENTIRE_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_CLIENT_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -c -m 644 $(HEADER_TARGET) $(DESTDIR)/$(HEADIR)
+ $(INSTALL) -m 644 $(MAN_TARGET) $(DESTDIR)/$(MANDIR)/man8/
+diff --git a/wdmd/Makefile b/wdmd/Makefile
+index 5849efc..4894517 100644
+--- a/wdmd/Makefile
++++ b/wdmd/Makefile
+@@ -68,7 +68,7 @@ install: all
+ $(INSTALL) -d $(DESTDIR)/$(MANDIR)/man8
+ $(INSTALL) -c -m 755 $(CMD_TARGET) $(DESTDIR)/$(BINDIR)
+ $(INSTALL) -c -m 755 $(SHLIB_TARGET) $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_TARGET).so $(DESTDIR)/$(LIBDIR)
+- cp -a $(LIB_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_TARGET).so $(DESTDIR)/$(LIBDIR)
++ cp -R --no-dereference --preserve=mode,links $(LIB_TARGET).so.$(SOMAJOR) $(DESTDIR)/$(LIBDIR)
+ $(INSTALL) -c -m 644 $(HEADER_TARGET) $(DESTDIR)/$(HEADIR)
+ $(INSTALL) -m 644 $(MAN_TARGET) $(DESTDIR)/$(MANDIR)/man8
+--
+2.24.0
+
diff --git a/meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb b/meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb
new file mode 100644
index 0000000000..962d19574c
--- /dev/null
+++ b/meta-oe/recipes-extended/sanlock/sanlock_3.8.5.bb
@@ -0,0 +1,48 @@
+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://0001-add-missing-system-header-string.h.patch \
+ "
+SRCREV = "b820c63093c4ae85d7da4f719cf3026d7fca5d09"
+
+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-sfc-common/sblim-sfc-common_1.0.1.bb b/meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb
index 2a9b4bb883..4e90215c0e 100644
--- a/meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb
+++ b/meta-oe/recipes-extended/sblim-sfc-common/sblim-sfc-common_1.0.1.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "\
This package provides a common library for functions shared between Small Footprint CIM Broker (sblim-sfcb) \
Small Footprint CIM Client (and sblim-sfcc)."
HOMEPAGE = "http://sourceforge.net/projects/sblim/"
-LICENSE = "EPL"
+LICENSE = "EPL-1.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=f300afd598546add034364cd0a533261"
SECTION = "Development/Libraries"
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Avoid-variable-definition-in-header-files.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Avoid-variable-definition-in-header-files.patch
new file mode 100644
index 0000000000..b0b43f357c
--- /dev/null
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Avoid-variable-definition-in-header-files.patch
@@ -0,0 +1,100 @@
+From fccbb85beb89b9ca35cac87fb553ef124a6c516b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 17:26:14 -0700
+Subject: [PATCH] Avoid variable definition in header files
+
+This can cause multiple definitions to be emitted into objects and link
+fail as a result with gcc-10+ since it defaults to -fno-common, patch
+moves the definitions to source files
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ control.h | 2 +-
+ providerMgr.c | 1 +
+ providerMgr.h | 2 +-
+ sfcBroker.c | 2 +-
+ trace.c | 1 +
+ trace.h | 2 +-
+ 6 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/control.h b/control.h
+index e41e4b9..5e15363 100644
+--- a/control.h
++++ b/control.h
+@@ -28,7 +28,7 @@ int getControlUNum(char *id, unsigned int *val);
+ int getControlULong(char *id, unsigned long *val);
+ int getControlNum(char *id, long *val);
+ int getControlBool(char *id, int *val);
+-const char * sfcBrokerStart;
++extern const char * sfcBrokerStart;
+
+ #endif
+ /* MODELINES */
+diff --git a/providerMgr.c b/providerMgr.c
+index c38a7d3..ff6d38d 100644
+--- a/providerMgr.c
++++ b/providerMgr.c
+@@ -53,6 +53,7 @@
+ #define SFCB_ASM(x)
+ #endif
+
++sigset_t mask, old_mask;
+ static pthread_mutex_t resultsocketMutex = PTHREAD_MUTEX_INITIALIZER;
+
+ extern CMPIBroker *Broker;
+diff --git a/providerMgr.h b/providerMgr.h
+index 3cc7745..fbbfecd 100644
+--- a/providerMgr.h
++++ b/providerMgr.h
+@@ -398,7 +398,7 @@ BinResponseHdr **invokeProviders(BinRequestContext * binCtx, int *err,
+ BinResponseHdr *invokeProvider(BinRequestContext * ctx);
+ void freeResponseHeaders(BinResponseHdr ** resp,
+ BinRequestContext * ctx);
+-sigset_t mask, old_mask;
++extern sigset_t mask, old_mask;
+
+ #endif
+ /* MODELINES */
+diff --git a/sfcBroker.c b/sfcBroker.c
+index ca043c9..85581f5 100644
+--- a/sfcBroker.c
++++ b/sfcBroker.c
+@@ -53,7 +53,7 @@
+ #endif
+
+ int sfcBrokerPid = 0;
+-
++const char *sfcBrokerStart;
+ extern int sfcbUseSyslog;
+
+ extern void setExFlag(unsigned long f);
+diff --git a/trace.c b/trace.c
+index 438af46..23597e1 100644
+--- a/trace.c
++++ b/trace.c
+@@ -52,6 +52,7 @@ char *processName = NULL;
+ int providerProcess = 0;
+ int idleThreadId = 0;
+ int terminating = 0;
++int colorTrace;
+
+ int _sfcb_debug = 0;
+ unsigned long _sfcb_trace_mask = 0;
+diff --git a/trace.h b/trace.h
+index 2c6d8be..ea39850 100644
+--- a/trace.h
++++ b/trace.h
+@@ -130,7 +130,7 @@ typedef struct traceId {
+ #define CYAN 6
+ #define WHITE 7
+ void changeTextColor(int reset);
+-int colorTrace;
++extern int colorTrace;
+
+ #define MAX_MSG_SIZE 1024 /* max length of trace message */
+
+--
+2.28.0
+
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/0001-Replace-need-for-error.h-when-it-does-not-exist.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Replace-need-for-error.h-when-it-does-not-exist.patch
index e723050237..9bb9f44344 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/0001-Replace-need-for-error.h-when-it-does-not-exist.patch
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-Replace-need-for-error.h-when-it-does-not-exist.patch
@@ -16,8 +16,6 @@ Upstream-Status: Pending
trace.c | 4 +++-
5 files changed, 24 insertions(+), 5 deletions(-)
-diff --git a/brokerUpc.c b/brokerUpc.c
-index 17cbd9b..fe2b347 100644
--- a/brokerUpc.c
+++ b/brokerUpc.c
@@ -20,8 +20,11 @@
@@ -33,8 +31,6 @@ index 17cbd9b..fe2b347 100644
#include "support.h"
#include "native.h"
#include <sfcCommon/utilft.h>
-diff --git a/configure.ac b/configure.ac
-index ab2964e..d4915a1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -517,7 +517,7 @@ fi
@@ -46,8 +42,6 @@ index ab2964e..d4915a1 100644
AC_CHECK_HEADERS([cmpi/cmpimacs.h cmpi/cmpift.h cmpi/cmpidt.h],[],[AC_MSG_ERROR([Could not find required CPMI header.])])
# Checks for typedefs, structures, and compiler characteristics.
-diff --git a/httpAdapter.c b/httpAdapter.c
-index 2719e6c..e768972 100644
--- a/httpAdapter.c
+++ b/httpAdapter.c
@@ -71,7 +71,9 @@
@@ -61,11 +55,15 @@ index 2719e6c..e768972 100644
/* should probably go into cimRequest.h */
#define CIM_PROTOCOL_ANY 0
#define CIM_PROTOCOL_CIM_XML 1
-diff --git a/support.c b/support.c
-index c7bba8b..5b3eef1 100644
--- a/support.c
+++ b/support.c
-@@ -32,7 +32,11 @@
+@@ -27,16 +27,20 @@
+ * @sa native.h
+ */
+
++#include "config.h"
+ #include <stdio.h>
+ #include <dlfcn.h>
#include "support.h"
#include <stdio.h>
#include <stdlib.h>
@@ -77,7 +75,11 @@ index c7bba8b..5b3eef1 100644
#include <errno.h>
#include "native.h"
#include "trace.h"
-@@ -331,17 +335,25 @@ loadQualifierDeclMI(const char *provider,
+-#include "config.h"
+ #include "control.h"
+ #include <pthread.h>
+
+@@ -331,17 +335,25 @@ loadQualifierDeclMI(const char *provider
_SFCB_RETURN(NULL);
};
@@ -104,8 +106,6 @@ index c7bba8b..5b3eef1 100644
/**
* flag to ensure MM is initialized only once
*/
-diff --git a/trace.c b/trace.c
-index d7f30db..438af46 100644
--- a/trace.c
+++ b/trace.c
@@ -279,7 +279,9 @@ _sfcb_trap(int tn)
@@ -119,6 +119,3 @@ index d7f30db..438af46 100644
sigHandler *
setSignal(int sn, sigHandler * sh, int flags)
{
---
-2.14.1
-
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-configure-Check-for-function-from-respective-library.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-configure-Check-for-function-from-respective-library.patch
new file mode 100644
index 0000000000..5ee368f6ee
--- /dev/null
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-configure-Check-for-function-from-respective-library.patch
@@ -0,0 +1,72 @@
+From 366c4a1c8b7724241ad2b703e48615ca5affa32e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 12:46:07 -0700
+Subject: [PATCH] configure: Check for function from respective library in
+ AC_CHECK_LIB
+
+This helps in doing correct checks especially with newer autoconf and
+toolchain
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index d4915a1..6154514 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -332,8 +332,8 @@ if [test "$enable_tests"]; then
+ fi
+
+ if [test "$test_gcov" == "yes"]; then
+- AC_CHECK_LIB(gcc,main)
+- AC_CHECK_LIB(gcov,main)
++ AC_CHECK_LIB(gcc,_Unwind_GetIP)
++ AC_CHECK_LIB(gcov,gcov_write_summary)
+ AC_PATH_PROG(LCOV,lcov,yes,no)
+ AC_PATH_PROG(GENHTML,genhtml,yes,no)
+ if test "$LCOV" == "no" -o "$GENHTML" == "no" ; then
+@@ -400,7 +400,7 @@ fi
+
+ if test "$enable_pam" == "yes"; then
+ AC_DEFINE(HAVE_PAM,,[PAM support enabled.])
+- AC_CHECK_LIB(pam,main,[SFCB_LIBPAM=-lpam],[AC_MSG_ERROR(Could not find required pam library.)])
++ AC_CHECK_LIB(pam,pam_start,[SFCB_LIBPAM=-lpam],[AC_MSG_ERROR(Could not find required pam library.)])
+ SFCB_CONF_BASICAUTHLIB=sfcBasicPAMAuthentication
+ SFCB_CONF_DOBASICAUTH=true
+ else
+@@ -470,16 +470,16 @@ if test "$HAVE_UNZIP" = "no" ; then
+ fi
+
+ # Checks for libraries.
+-AC_CHECK_LIB(pthread,main)
+-AC_CHECK_LIB(dl,main)
+-AC_CHECK_LIB(z,main,[SFCB_LIBZ=-lz],[AC_MSG_ERROR([Could not find required libz])])
++AC_CHECK_LIB(pthread,pthread_create)
++AC_CHECK_LIB(dl,dlopen)
++AC_CHECK_LIB(z,inflate,[SFCB_LIBZ=-lz],[AC_MSG_ERROR([Could not find required libz])])
+ # Test for the newest function here to make sure it's up to date.
+ AC_CHECK_LIB(sfcUtil,invalid_uint,, \
+ [AC_MSG_ERROR([Function invalid_uint not found. Is the required version of sfcCommon installed?])])
+ if test "$enable_indications" = "yes" ; then
+ LOAD_INDICATION_PROVIDER=
+ AC_DEFINE(HAVE_INDICATIONS,1,[Indication support enabled.])
+- AC_CHECK_LIB(curl,main)
++ AC_CHECK_LIB(curl,curl_easy_init)
+ else
+ LOAD_INDICATION_PROVIDER='#'
+ fi
+@@ -487,7 +487,7 @@ fi
+ AC_SUBST(LOAD_INDICATION_PROVIDER)
+
+ if test "$enable_ssl" = "yes"; then
+- AC_CHECK_LIB(ssl,main)
++ AC_CHECK_LIB(ssl,SSL_CTX_new)
+ SFCB_CONF_HTTPS=true
+ SFCB_CONF_HTTP=false
+ else
+--
+2.37.3
+
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-missing-system-headers.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-missing-system-headers.patch
new file mode 100644
index 0000000000..c16e393f49
--- /dev/null
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/0001-include-missing-system-headers.patch
@@ -0,0 +1,151 @@
+From c5b15ae9636a3b73407372cce87eb40ea78a68ea Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 15:51:31 -0700
+Subject: [PATCH] include missing system headers
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ brokerEnc.c | 2 ++
+ brokerOs.c | 1 +
+ mlog.c | 1 +
+ mofc/backend_sfcb.c | 2 +-
+ sfcbdump.c | 1 +
+ sfcbdumpP32onI32.c | 1 +
+ sfcbsem.c | 1 +
+ trace.c | 3 ++-
+ trace.h | 3 ++-
+ 9 files changed, 12 insertions(+), 3 deletions(-)
+
+diff --git a/brokerEnc.c b/brokerEnc.c
+index 9115e71..889afcd 100644
+--- a/brokerEnc.c
++++ b/brokerEnc.c
+@@ -25,6 +25,8 @@
+ #include "constClass.h"
+ #include <sfcCommon/utilft.h>
+
++#include <string.h> /* strcasecmp */
++
+ extern const char *opGetClassNameChars(const CMPIObjectPath * cop);
+ extern const char *opGetNameSpaceChars(const CMPIObjectPath * cop);
+ extern CMPIConstClass *getConstClass(const char *ns, const char *cn);
+diff --git a/brokerOs.c b/brokerOs.c
+index 8d73a0b..b1427fd 100644
+--- a/brokerOs.c
++++ b/brokerOs.c
+@@ -22,6 +22,7 @@
+ #include <pthread.h>
+ #include "native.h"
+ #include <stdlib.h>
++#include <string.h> /* strcmp */
+
+ static char *
+ resolveFileName(const char *filename)
+diff --git a/mlog.c b/mlog.c
+index a2d9eb7..6d9cd29 100644
+--- a/mlog.c
++++ b/mlog.c
+@@ -26,6 +26,7 @@ const char *_mlog_id =
+ #include <syslog.h>
+ #include <stdarg.h>
+ #include <stdio.h>
++#include <string.h> /* strcat */
+ #include <errno.h>
+ #include <signal.h>
+ #include "trace.h" /* for setSignal() */
+diff --git a/mofc/backend_sfcb.c b/mofc/backend_sfcb.c
+index 614abcd..99d4061 100644
+--- a/mofc/backend_sfcb.c
++++ b/mofc/backend_sfcb.c
+@@ -29,7 +29,7 @@
+ #include "backend.h"
+ #include "objectpath.h"
+ #include <sys/utsname.h>
+-
++#include <string.h>
+
+ extern CMPIStatus sfcb_simpleArrayAdd(CMPIArray * array, CMPIValue * val, CMPIType type);
+ extern CMPIObjectPath *getObjectPath(char *path, char **msg);
+diff --git a/sfcbdump.c b/sfcbdump.c
+index 8a9c335..aa8559c 100644
+--- a/sfcbdump.c
++++ b/sfcbdump.c
+@@ -23,6 +23,7 @@
+ #include <errno.h>
+ #include <stddef.h>
+ #include <getopt.h>
++#include <string.h> /* strerror */
+ #include "objectImpl.h"
+
+ #define BINARY_NAME argv[0]
+diff --git a/sfcbdumpP32onI32.c b/sfcbdumpP32onI32.c
+index ccf87dc..3540751 100644
+--- a/sfcbdumpP32onI32.c
++++ b/sfcbdumpP32onI32.c
+@@ -22,6 +22,7 @@
+ #include <fcntl.h>
+ #include <errno.h>
+ #include <stddef.h>
++#include <string.h>
+ #include <getopt.h>
+ #include "objectImpl.h"
+ #include <byteswap.h>
+diff --git a/sfcbsem.c b/sfcbsem.c
+index 3f8de7f..1e6358b 100644
+--- a/sfcbsem.c
++++ b/sfcbsem.c
+@@ -21,6 +21,7 @@
+
+ /* includes */
+ #include <stdio.h>
++#include <string.h>
+ #include <getopt.h>
+ #include <errno.h>
+
+diff --git a/trace.c b/trace.c
+index 23597e1..c4f8011 100644
+--- a/trace.c
++++ b/trace.c
+@@ -25,6 +25,7 @@
+ #include "native.h"
+ #include <string.h>
+ #include <time.h>
++#include <pthread.h>
+
+ #include <sys/stat.h>
+ #include <sys/wait.h>
+@@ -50,7 +51,7 @@
+
+ char *processName = NULL;
+ int providerProcess = 0;
+-int idleThreadId = 0;
++pthread_t idleThreadId = 0;
+ int terminating = 0;
+ int colorTrace;
+
+diff --git a/trace.h b/trace.h
+index ea39850..52d408d 100644
+--- a/trace.h
++++ b/trace.h
+@@ -25,6 +25,7 @@
+
+ #include "mlog.h"
+
++#include <pthread.h>
+ extern unsigned long _sfcb_trace_mask;
+ /* use pointer indirect _sfcb_trace_mask to allow shared memory flag */
+ extern unsigned long *_ptr_sfcb_trace_mask;
+@@ -162,7 +163,7 @@ extern sigHandler *setSignal(int sn, sigHandler * sh, int flags);
+
+ extern char *processName;
+ extern int providerProcess;
+-extern int idleThreadId;
++extern pthread_t idleThreadId;
+ extern int terminating;
+
+ #endif
+--
+2.37.3
+
diff --git a/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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-1.4.9/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/sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch
new file mode 100644
index 0000000000..7279d84a5d
--- /dev/null
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch
@@ -0,0 +1,31 @@
+From ad6ca4f392bf549239b1ed3b2b372070eb127e7f Mon Sep 17 00:00:00 2001
+From: Robert Yang <liezhi.yang@windriver.com>
+Date: Wed, 11 Jul 2018 11:06:04 +0800
+Subject: [PATCH] Makefile.am: fix sfcbinst2mof_DEPENDENCIES
+
+Fixed build with automake 1.16.1:
+/path/to/i586-poky-linux/8.1.0/ld: cannot find -lsfcBrokerCore
+collect2: error: ld returned 1 exit status
+
+Upstream-Status: Pending
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+---
+ Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index 34ac319..47deed7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -360,6 +360,7 @@ sfcbproc_SOURCES=sfcbproc.c
+
+ sfcbinst2mof_SOURCES=sfcbinst2mof.c
+ sfcbinst2mof_LDADD = -lsfcFileRepository -lsfcBrokerCore
++sfcbinst2mof_DEPENDENCIES = libsfcBrokerCore.la libsfcFileRepository.la
+
+ sfcbtrace_SOURCES=sfcbtrace.c
+ sfcbtrace_LDADD = -lsfcBrokerCore
+--
+2.7.4
+
diff --git a/meta-oe/recipes-extended/sblim-sfcb/files/sfcb.service b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sfcb.service
index 5adf63c8a4..5adf63c8a4 100644
--- a/meta-oe/recipes-extended/sblim-sfcb/files/sfcb.service
+++ b/meta-oe/recipes-extended/sblim-sfcb/sblim-sfcb/sfcb.service
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 10ffaaa31b..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
@@ -11,7 +11,7 @@ LICENSE = "EPL-1.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=f300afd598546add034364cd0a533261"
DEPENDS = "curl libpam openssl sblim-sfc-common unzip-native"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "pam"
SRC_URI = "http://downloads.sourceforge.net/sblim/${BP}.tar.bz2 \
@@ -25,19 +25,26 @@ SRC_URI = "http://downloads.sourceforge.net/sblim/${BP}.tar.bz2 \
file://sblim-sfcb-1.4.9-fix-ftbfs.patch \
file://0001-include-stdint.h-system-header-for-UINT16_MAX.patch \
file://0001-Replace-need-for-error.h-when-it-does-not-exist.patch \
+ file://sblim-sfcb-1.4.9-fix-sfcbinst2mof.patch \
+ file://0001-Avoid-variable-definition-in-header-files.patch \
+ file://0001-configure-Check-for-function-from-respective-library.patch \
+ file://0001-include-missing-system-headers.patch \
"
SRC_URI[md5sum] = "28021cdabc73690a94f4f9d57254ce30"
SRC_URI[sha256sum] = "634a67b2f7ac3b386a79160eb44413d618e33e4e7fc74ae68b0240484af149dd"
+CVE_STATUS[CVE-2012-3381] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+
inherit autotools
inherit systemd
SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "sblim-sfcb.service"
+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-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 \
@@ -48,7 +55,7 @@ EXTRA_OECONF = '--enable-debug \
# make all with -j option is unsafe.
PARALLEL_MAKE = ""
-INSANE_SKIP_${PN} = "dev-so"
+INSANE_SKIP:${PN} = "dev-so"
CONFIG_SITE = "${WORKDIR}/config-site.${P}"
do_install() {
@@ -66,22 +73,16 @@ do_install() {
rm -rf ${D}${libdir}/sfcb/*.la
}
-pkg_postinst_${PN} () {
- OPTS=""
-
- if [ x"$D" != "x" ]; then
- OPTS="--root=$D"
- if type systemctl >/dev/null 2>/dev/null; then
- systemctl $OPTS ${SYSTEMD_AUTO_ENABLE} ${SYSTEMD_SERVICE}
- fi
- exit 1
- fi
+pkg_postinst:${PN} () {
+ $INTERCEPT_DIR/postinst_intercept delay_to_first_boot ${PKG} mlprefix=${MLPREFIX}
+}
+pkg_postinst_ontarget:${PN} () {
${datadir}/sfcb/genSslCert.sh ${sysconfdir}/sfcb
${bindir}/sfcbrepos -f
}
-FILES_${PN} += "${libdir}/sfcb ${datadir}/sfcb"
-FILES_${PN}-dbg += "${libdir}/sfcb/.debug"
+FILES:${PN} += "${libdir}/sfcb ${datadir}/sfcb"
+FILES:${PN}-dbg += "${libdir}/sfcb/.debug"
-RDEPENDS_${PN} = "perl bash"
+RDEPENDS:${PN} = "perl bash"
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 df55a67996..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,6 +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-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/scsirastools/scsirastools_1.6.6.bb b/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
index e202d16ebe..4fefd5169b 100644
--- a/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
+++ b/meta-oe/recipes-extended/scsirastools/scsirastools_1.6.6.bb
@@ -5,7 +5,7 @@ DESCRIPTION = "scsirastools were designed to add to the Serviceability of \
maintenance or service functions. It handles SCSI, \
Linux SW RAID, SAS, SATA, and USB devices via SCSI emulation."
HOMEPAGE = "http://scsirastools.sourceforge.net/"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING;md5=687ea108478d26152ae46eb29d9d1545"
DEPENDS += "groff-native"
@@ -20,30 +20,27 @@ SRC_URI[sha256sum] = "e7b997e75decb06a650c42c35cd63d0c94c34e39cf133c723337b0eeab
inherit autotools update-rc.d
# mdadm Makefile has CC set to gcc, hence override CC to ${CC}
-EXTRA_OEMAKE += "CC='${CC}'"
+EXTRA_OEMAKE += "CC='${CC}' CFLAGS='${CFLAGS} -D_LARGEFILE64_SOURCE=1' sbindir=${base_sbindir}"
-
-do_configure_append() {
+do_configure:append() {
oe_runmake -C mdadm.d mdadm-1.3.0
patch -p0 < ${WORKDIR}/mdadm.patch
}
INITSCRIPT_PACKAGES = "${PN}-diskmon ${PN}-raidmon"
-INITSCRIPT_NAME_${PN}-diskmon = "sgdisk"
-INITSCRIPT_PARAMS_${PN}-diskmon = "defaults 80 20"
-INITSCRIPT_NAME_${PN}-raidmon = "sgraid"
-INITSCRIPT_PARAMS_${PN}-raidmon = "defaults 80 20"
+INITSCRIPT_NAME:${PN}-diskmon = "sgdisk"
+INITSCRIPT_PARAMS:${PN}-diskmon = "defaults 80 20"
+INITSCRIPT_NAME:${PN}-raidmon = "sgraid"
+INITSCRIPT_PARAMS:${PN}-raidmon = "defaults 80 20"
-PACKAGES =+ "${PN}-diskmon ${PN}-diskmon-dbg"
-PACKAGES =+ "${PN}-raidmon ${PN}-raidmon-dbg"
+PACKAGES =+ "${PN}-diskmon"
+PACKAGES =+ "${PN}-raidmon"
-FILES_${PN}-dbg += "/usr/share/scsirastools/.debug"
+RPROVIDES:${PN}-dbg += "${PN}-diskmon-dbg ${PN}-raidmon-dbg"
-FILES_${PN}-diskmon = "${sbindir}/sgdiskmon ${sysconfdir}/init.d/sgdisk"
-FILES_${PN}-diskmon-dbg = "${sbindir}/.debug/sgdiskmon"
+FILES:${PN}-diskmon = "${sbindir}/sgdiskmon ${sysconfdir}/init.d/sgdisk"
-FILES_${PN}-raidmon = "${sbindir}/sgraidmon ${sysconfdir}/init.d/sgraid"
-FILES_${PN}-raidmon-dbg = "${sbindir}/.debug/sgraidmon"
+FILES:${PN}-raidmon = "${sbindir}/sgraidmon ${sysconfdir}/init.d/sgraid"
-RDEPENDS_${PN} += "bash"
-RDEPENDS_${PN}-diskmon += "${PN}"
-RDEPENDS_${PN}-raidmon += "${PN}"
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN}-diskmon += "${PN} bash"
+RDEPENDS:${PN}-raidmon += "${PN} bash"
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
new file mode 100644
index 0000000000..0b78d238bb
--- /dev/null
+++ b/meta-oe/recipes-extended/sedutil/files/0001-Fix-build-on-big-endian-architectures.patch
@@ -0,0 +1,43 @@
+From ff98a326d5faa585f0e15e51a558cc2c49aa8099 Mon Sep 17 00:00:00 2001
+From: Primoz Fiser <primoz.fiser@norik.com>
+Date: Fri, 23 Nov 2018 08:31:29 +0100
+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/Common/DtaEndianFixup.h b/Common/DtaEndianFixup.h
+index 58eb3ff..184fce0 100644
+--- a/Common/DtaEndianFixup.h
++++ b/Common/DtaEndianFixup.h
+@@ -31,12 +31,11 @@ along with sedutil. If not, see <http://www.gnu.org/licenses/>.
+ //TODO: add a test on the endianess of the system and define
+ // empty macros if the system is big endian
+ #pragma once
+-#ifdef __gnu_linux__
+-#include <endian.h>
+-#if __BYTE_ORDER != __LITTLE_ENDIAN
+-#error This code does not support big endian architectures
+-#endif
+-#endif
++#if defined(__BYTE_ORDER__)&&(__BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
++#define SWAP16(x) x
++#define SWAP32(x) x
++#define SWAP64(x) x
++#else
+ /** change the "endianess" of a 16bit field */
+ #define SWAP16(x) ((uint16_t) ((x & 0x00ff) << 8) | ((x & 0xff00) >> 8))
+ /** change the "endianess" of a 32bit field */
+@@ -47,3 +46,5 @@ along with sedutil. If not, see <http://www.gnu.org/licenses/>.
+ ((uint64_t) (SWAP32((x & 0x00000000ffffffff)) << 32) | \
+ ((uint64_t) (SWAP32((x >> 32))) ) \
+ )
++
++#endif
+--
+2.7.4
+
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
new file mode 100644
index 0000000000..972a33c742
--- /dev/null
+++ b/meta-oe/recipes-extended/sedutil/sedutil_git.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "A utility to manage self encrypting drives that conform \
+to the Trusted Computing Group OPAL 2.0 SSC specification."
+SUMMARY = "The Drive Trust Alliance Self Encrypting Drive Utility"
+HOMEPAGE = "https://github.com/Drive-Trust-Alliance/sedutil"
+SECTION = "console/utils"
+LICENSE = "GPL-3.0-only"
+
+LIC_FILES_CHKSUM = "file://Common/LICENSE.txt;md5=d32239bcb673463ab874e80d47fae504"
+
+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"
+
+inherit autotools-brokensep
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 63e8d36d0a..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
@@ -11,10 +11,11 @@ SRC_URI[sha256sum] = "9bf8c42acaa247efd9321bdb1fc2390022f0c554d77fbbd4a7363d990f
S = "${WORKDIR}/${BPN}"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE_GPL;md5=393a5ca445f6965873eca0259a17f833"
-do_compile_prepend() {
+EXTRA_OEMAKE = "CFLAGS='${CFLAGS}'"
+do_compile:prepend() {
oe_runmake clean
}
diff --git a/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb b/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb
new file mode 100644
index 0000000000..1e5ffdd856
--- /dev/null
+++ b/meta-oe/recipes-extended/sigrok/libsigrok_0.5.2.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "libsigrok is a shared library written in C, which provides the basic hardware access drivers for logic analyzers and other supported devices, as well as input/output file format support."
+HOMEPAGE = "http://sigrok.org/wiki/Main_Page"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "glib-2.0 libzip"
+
+PACKAGECONFIG[serialport] = "--with-libserialport,--without-libserialport,libserialport"
+PACKAGECONFIG[ftdi] = "--with-libftdi,--without-libftdi,libftdi"
+PACKAGECONFIG[usb] = "--with-libusb,--without-libusb,libusb"
+PACKAGECONFIG[cxx] = "--enable-cxx,--disable-cxx,glibmm doxygen-native"
+PACKAGECONFIG[bluez5] = "--with-libbluez,--without-libbluez,bluez5"
+PACKAGECONFIG[hidapi] = "--with-libhidapi,--without-libhidapi,hidapi"
+
+PACKAGECONFIG ??= "serialport ftdi usb"
+
+inherit autotools pkgconfig mime
+
+SRC_URI = "http://sigrok.org/download/source/libsigrok/libsigrok-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "e258d471b6d5eaa58daf927a0dc3ba67"
+SRC_URI[sha256sum] = "4d341f90b6220d3e8cb251dacf726c41165285612248f2c52d15df4590a1ce3c"
+
+FILES:${PN} += "${datadir}/*"
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
new file mode 100644
index 0000000000..a90f588d2b
--- /dev/null
+++ b/meta-oe/recipes-extended/sigrok/libsigrokdecode/0001-configure.ac-add-py-3.10-support.patch
@@ -0,0 +1,24 @@
+From a5835dfe126bfe6ed0b8197c6578960835bf1fe8 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sun, 3 Oct 2021 22:08:50 +0200
+Subject: [PATCH] configure.ac: add py 3.10/11 support
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4802f35..e0e468f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -93,7 +93,7 @@ SR_PKG_CHECK_SUMMARY([srd_pkglibs_summary])
+ # first, since usually only that variant will add "-lpython3.8".
+ # 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])
+ AS_IF([test "x$sr_have_python3" = xno],
+ [AC_MSG_ERROR([Cannot find Python 3 development headers.])])
+
diff --git a/meta-oe/recipes-extended/sigrok/libsigrokdecode/python39.patch b/meta-oe/recipes-extended/sigrok/libsigrokdecode/python39.patch
new file mode 100644
index 0000000000..f7115a1cb3
--- /dev/null
+++ b/meta-oe/recipes-extended/sigrok/libsigrokdecode/python39.patch
@@ -0,0 +1,27 @@
+From 9b0ad5177bd692f7556a4756bdbd2da81d9c34ce Mon Sep 17 00:00:00 2001
+From: =?utf8?q?Dan=20Hor=C3=A1k?= <dan@danny.cz>
+Date: Tue, 4 Aug 2020 09:19:44 +0200
+Subject: [PATCH] configure.ac: Add support for Python 3.9.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index f9958b3..2917cb3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -100,7 +100,7 @@ SR_PKG_CHECK_SUMMARY([srd_pkglibs_summary])
+ # first, since usually only that variant will add "-lpython3.8".
+ # 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.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.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.])])
+
+--
+2.24.0.rc2
+
diff --git a/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.3.bb b/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.3.bb
new file mode 100644
index 0000000000..24091bcf90
--- /dev/null
+++ b/meta-oe/recipes-extended/sigrok/libsigrokdecode_0.5.3.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "libsigrokdecode is a shared library written in C, which provides (streaming) protocol decoding functionality."
+HOMEPAGE = "http://sigrok.org/wiki/Main_Page"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "glib-2.0 python3"
+
+inherit autotools pkgconfig
+
+SRC_URI = "http://sigrok.org/download/source/libsigrokdecode/libsigrokdecode-${PV}.tar.gz \
+ file://python39.patch \
+ file://0001-configure.ac-add-py-3.10-support.patch \
+ "
+
+SRC_URI[md5sum] = "7ba4ed4ef1f06ae96979751e096c2821"
+SRC_URI[sha256sum] = "c50814aa6743cd8c4e88c84a0cdd8889d883c3be122289be90c63d7d67883fc0"
diff --git a/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.2.bb b/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.2.bb
new file mode 100644
index 0000000000..48f96cc435
--- /dev/null
+++ b/meta-oe/recipes-extended/sigrok/sigrok-cli_0.7.2.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "sigrok-cli is a command-line frontend for sigrok."
+HOMEPAGE = "http://sigrok.org/wiki/Main_Page"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+DEPENDS = "libsigrok"
+
+PACKAGECONFIG[decode] = "--with-libsigrokdecode,--without-libsigrokdecode,libsigrokdecode"
+
+PACKAGECONFIG ??= "decode"
+
+inherit autotools pkgconfig mime-xdg
+
+SRC_URI = "http://sigrok.org/download/source/sigrok-cli/sigrok-cli-${PV}.tar.gz"
+SRC_URI[md5sum] = "856fd496cd99d1091aa128405c522a36"
+SRC_URI[sha256sum] = "71d0443f36897bf565732dec206830dbea0f2789b6601cf10536b286d1140ab8"
+
+FILES:${PN} += "${datadir}/icons/hicolor"
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
new file mode 100644
index 0000000000..a6b03db72f
--- /dev/null
+++ b/meta-oe/recipes-extended/smartmontools/files/0001-configure.ac-Define-SOURCE_DATE_EPOCH-in-CPPFLAGS.patch
@@ -0,0 +1,34 @@
+From 898fd4115be5cdd848db99fe85e1d0d7f1b3fa02 Mon Sep 17 00:00:00 2001
+From: Oleksiy Obitotskyy <oobitots@cisco.com>
+Date: Mon, 22 Feb 2021 17:21:33 +0200
+Subject: [PATCH] smartmontools: Improve reproducibility
+
+Backport changes added to master smartmontools.
+https://github.com/smartmontools/smartmontools/commit/24838916b4c0e91f5c897d44fcdeedb22848f684
+
+Upstream-Status: Backport
+Signed-off-by: Oleksiy Obitotskyy <oobitots@cisco.com>
+
+---
+ ChangeLog | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/ChangeLog b/ChangeLog
+index 5f0930a..4c5a91e 100644
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -705,6 +705,14 @@ $Id: ChangeLog 5338 2022-02-28 16:34:26Z chrfranke $
+
+ Happy New Year! Update copyright year in version info.
+
++2021-02-07 Christian Franke <franke@computer.org>
++
++ Improve reproducibility if SOURCE_DATE_EPOCH if set (GH pull/89).
++ configure.ac: Define SOURCE_DATE_EPOCH in CPPFLAGS.
++ utility.cpp: Print SOURCE_DATE_EPOCH value if specified.
++ Don't include configure arguments then.
++ cppcheck.sh: Silence related 'ConfigurationNotChecked' message.
++
+ 2020-12-30 Christian Franke <franke@computer.org>
+
+ smartmontools 7.2
diff --git a/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch b/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch
deleted file mode 100644
index 91e64d2178..0000000000
--- a/meta-oe/recipes-extended/smartmontools/files/0001-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f28aa188e5b0ea85369febe657b8807b8025038b Mon Sep 17 00:00:00 2001
-From: chrfranke <authors@smartmontools.org>
-Date: Wed, 8 Nov 2017 06:15:50 +0000
-Subject: [PATCH] os_linux.cpp: Use 'realpath()' (BSD, POSIX) instead of
- 'canonicalize_file_name()' (GNU extension). This fixes build on systems with
- musl libc (#921).
-
-git-svn-id: http://svn.code.sf.net/p/smartmontools/code/trunk@4603 4ea69e1a-61f1-4043-bf83-b5c94c648137
-
-Upstream-Status: Backport [https://www.smartmontools.org/ticket/921]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- os_linux.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/os_linux.cpp b/os_linux.cpp
-index 134d5bc..935f9c7 100644
---- a/os_linux.cpp
-+++ b/os_linux.cpp
-@@ -3176,7 +3176,7 @@ static bool is_hpsa(const char * name)
- {
- char path[128];
- snprintf(path, sizeof(path), "/sys/block/%s/device", name);
-- char * syshostpath = canonicalize_file_name(path);
-+ char * syshostpath = realpath(name, (char *)0);
- if (!syshostpath)
- return false;
-
diff --git a/meta-oe/recipes-extended/smartmontools/files/smartd.service b/meta-oe/recipes-extended/smartmontools/files/smartd.service
index f3db946c81..e90a7c4def 100644
--- a/meta-oe/recipes-extended/smartmontools/files/smartd.service
+++ b/meta-oe/recipes-extended/smartmontools/files/smartd.service
@@ -6,7 +6,6 @@ After=syslog.target
EnvironmentFile=-@SYSCONFDIR@/smartmontools
ExecStart=@SBINDIR@/smartd -n $smart_opts
ExecReload=@BASE_BINDIR@/kill -HUP $MAINPID
-StandardOutput=syslog
[Install]
WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb b/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
deleted file mode 100644
index c77c10551a..0000000000
--- a/meta-oe/recipes-extended/smartmontools/smartmontools_6.6.bb
+++ /dev/null
@@ -1,53 +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 = "GPLv2"
-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-os_linux.cpp-Use-realpath-BSD-POSIX-instead-of-canon.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[md5sum] = "9ae2c6e7131cd2813edcc65cbe5f223f"
-SRC_URI[sha256sum] = "51f43d0fb064fccaf823bbe68cf0d317d0895ff895aa353b3339a3b316a53054"
-
-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 ."
-
-RDEPENDS_${PN} += "mailx"
diff --git a/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb b/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.bb
new file mode 100644
index 0000000000..1bf55bfcfd
--- /dev/null
+++ b/meta-oe/recipes-extended/smartmontools/smartmontools_7.3.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] = "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/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
new file mode 100644
index 0000000000..27357d88aa
--- /dev/null
+++ b/meta-oe/recipes-extended/snappy/snappy/0001-Add-inline-with-SNAPPY_ATTRIBUTE_ALWAYS_INLINE.patch
@@ -0,0 +1,71 @@
+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_1.1.9.bb b/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
new file mode 100644
index 0000000000..0d58345d7a
--- /dev/null
+++ b/meta-oe/recipes-extended/snappy/snappy_1.1.9.bb
@@ -0,0 +1,26 @@
+#
+# 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 3c019eb7ce..993efab395 100644
--- a/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
+++ b/meta-oe/recipes-extended/socketcan/can-isotp_git.bb
@@ -1,12 +1,19 @@
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=72d977d697c3c05830fdff00a7448931"
-SRCREV = "d1248b0f22ea8dc3b9d84a61bd35a83309bdb4b4"
+SRCREV = "beb4650660179963a8ed5b5cbf2085cc1b34f608"
PV = "1.0+git${SRCPV}"
-SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https"
+SRC_URI = "git://github.com/hartkopp/can-isotp.git;protocol=https;branch=master"
+
S = "${WORKDIR}/git"
inherit module
EXTRA_OEMAKE += "KERNELDIR=${STAGING_KERNEL_DIR}"
+
+do_install:append() {
+ install -Dm 644 ${S}/include/uapi/linux/can/isotp.h ${D}${includedir}/linux/can/isotp.h
+}
+
+EXCLUDE_FROM_WORLD = "1"
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 a2d62c3667..0000000000
--- a/meta-oe/recipes-extended/socketcan/can-utils_git.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Linux CAN network development utilities"
-DESCRIPTION = "Linux CAN network development"
-LICENSE = "GPLv2 & BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://include/linux/can.h;endline=43;md5=390a2c9a3c5e3595a069ac1436553ee7"
-
-DEPENDS = "libsocketcan"
-
-SRC_URI = "git://github.com/linux-can/${BPN}.git;protocol=git;branch=master"
-SRCREV = "4c8fb05cb4d6ddcd67299008db54af423f86fd05"
-
-PV = "0.0+gitr${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
diff --git a/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb b/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
index e1508af857..ab4710e81f 100644
--- a/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
+++ b/meta-oe/recipes-extended/socketcan/canutils_4.0.6.bb
@@ -2,19 +2,27 @@ SUMMARY = "canutils (PTX flavour)"
HOMEPAGE = "http://www.pengutronix.de"
SECTION = "console/network"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "libsocketcan"
SRCREV = "299dff7f5322bf0348dcdd60071958ebedf5f09d"
-SRC_URI = "git://git.pengutronix.de/git/tools/canutils.git;protocol=git \
+SRC_URI = "git://git.pengutronix.de/git/tools/canutils.git;protocol=git;branch=master \
file://0001-canutils-candump-Add-error-frame-s-handling.patch \
"
+inherit update-alternatives
+
S = "${WORKDIR}/git"
inherit autotools pkgconfig
# Busybox ip doesn't support can interface configuration, use the real thing
-RDEPENDS_${PN} += "iproute2"
+RDEPENDS:${PN} += "iproute2"
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE:${PN} = "candump cansend cansequence"
+ALTERNATIVE_LINK_NAME[candump] = "${bindir}/candump"
+ALTERNATIVE_LINK_NAME[cansend] = "${bindir}/cansend"
+ALTERNATIVE_LINK_NAME[cansequence] = "${bindir}/cansequence"
diff --git a/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.10.bb b/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.10.bb
deleted file mode 100644
index 60ca580168..0000000000
--- a/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.10.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Control basic functions in socketcan from userspace"
-HOMEPAGE = "http://www.pengutronix.de"
-SECTION = "libs/network"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://src/libsocketcan.c;beginline=3;endline=17;md5=97e38adced4385d8fba1ae2437cedee1"
-
-SRCREV = "51f1610160a1707f026f8c2d714a6f7aa3ca232b"
-
-SRC_URI = "git://git.pengutronix.de/git/tools/libsocketcan.git;protocol=git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb b/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
new file mode 100644
index 0000000000..9f6ef85c87
--- /dev/null
+++ b/meta-oe/recipes-extended/socketcan/libsocketcan_0.0.12.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Control basic functions in socketcan from userspace"
+HOMEPAGE = "http://www.pengutronix.de"
+SECTION = "libs/network"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://src/libsocketcan.c;beginline=3;endline=17;md5=97e38adced4385d8fba1ae2437cedee1"
+
+SRCREV = "077def398ad303043d73339112968e5112d8d7c8"
+
+SRC_URI = "git://git.pengutronix.de/git/tools/libsocketcan.git;protocol=git;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
+PACKAGECONFIG[no-error-log] = "--disable-error-log,--enable-error-log"
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/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
deleted file mode 100644
index 7d3f8a19d7..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig/0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 290703a5d21f34ea5ec23efc815a9f4df241e7e8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 23 Oct 2015 00:33:32 -0700
-Subject: [PATCH] Fix build with musl, backtrace() APIs are glibc specific
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- userspace/libsinsp/utils.cpp | 4 +++-
- userspace/libsinsp/utils.h | 2 +-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/userspace/libsinsp/utils.cpp b/userspace/libsinsp/utils.cpp
-index 8f23f9c..c496a57 100644
---- a/userspace/libsinsp/utils.cpp
-+++ b/userspace/libsinsp/utils.cpp
-@@ -21,7 +21,9 @@ along with sysdig. If not, see <http://www.gnu.org/licenses/>.
- #include <limits.h>
- #include <stdlib.h>
- #include <sys/time.h>
-+#ifdef __GLIBC__
- #include <execinfo.h>
-+#endif
- #include <unistd.h>
- #include <sys/time.h>
- #include <netdb.h>
-@@ -741,7 +743,7 @@ uint64_t sinsp_utils::get_current_time_ns()
- return tv.tv_sec * (uint64_t) 1000000000 + tv.tv_usec * 1000;
- }
-
--#ifndef _WIN32
-+#if defined(_WIN32) && defined(__GLIBC__)
- void sinsp_utils::bt(void)
- {
- static const char start[] = "BACKTRACE ------------";
-diff --git a/userspace/libsinsp/utils.h b/userspace/libsinsp/utils.h
-index 600d00b..4ab4650 100644
---- a/userspace/libsinsp/utils.h
-+++ b/userspace/libsinsp/utils.h
-@@ -79,7 +79,7 @@ public:
-
- static uint64_t get_current_time_ns();
-
--#ifndef _WIN32
-+#if not defined(_WIN32) && defined(__GLIBC__)
- //
- // Print the call stack
- //
---
-2.6.2
-
diff --git a/meta-oe/recipes-extended/sysdig/sysdig/0001-cmake-Pass-PROBE_NAME-via-CFLAGS.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-cmake-Pass-PROBE_NAME-via-CFLAGS.patch
new file mode 100644
index 0000000000..903ccdf36a
--- /dev/null
+++ b/meta-oe/recipes-extended/sysdig/sysdig/0001-cmake-Pass-PROBE_NAME-via-CFLAGS.patch
@@ -0,0 +1,29 @@
+From ed8969a233adb6bf701de96d0fd0570e5ddcc787 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 21 Mar 2022 19:35:48 -0700
+Subject: [PATCH] cmake: Pass PROBE_NAME via CFLAGS
+
+This helps compliation of driver code where its calling modprobe on the
+given kernel module via system() API
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7dceb7ae..e156c36f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -149,6 +149,7 @@ if(CMAKE_SYSTEM_NAME MATCHES "Linux")
+ if(NOT DEFINED PROBE_NAME)
+ set(PROBE_NAME "scap")
+ endif()
++ add_definitions(-DPROBE_NAME="${PROBE_NAME}")
+
+ set(DRIVERS_REPO "https://download.sysdig.com/scap-drivers")
+
+--
+2.35.1
+
diff --git a/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch b/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch
deleted file mode 100644
index 8fec0ca59f..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig/0001-libsinsp-Port-to-build-with-lua-5.2.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From c2782a6ca968190e221c25b0890600ba8cd43798 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 23 Oct 2015 00:23:15 -0700
-Subject: [PATCH] libsinsp: Port to build with lua >= 5.2
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- userspace/libsinsp/chisel.cpp | 40 +++++++++++++++++++++++++++++-----------
- 1 file changed, 29 insertions(+), 11 deletions(-)
-
-diff --git a/userspace/libsinsp/chisel.cpp b/userspace/libsinsp/chisel.cpp
-index 3cfbd8d..2db9348 100644
---- a/userspace/libsinsp/chisel.cpp
-+++ b/userspace/libsinsp/chisel.cpp
-@@ -94,7 +94,7 @@ void lua_stackdump(lua_State *L)
- // Lua callbacks
- ///////////////////////////////////////////////////////////////////////////////
- #ifdef HAS_LUA_CHISELS
--const static struct luaL_reg ll_sysdig [] =
-+const static struct luaL_Reg ll_sysdig [] =
- {
- {"set_filter", &lua_cbacks::set_global_filter},
- {"set_snaplen", &lua_cbacks::set_snaplen},
-@@ -120,7 +120,7 @@ const static struct luaL_reg ll_sysdig [] =
- {NULL,NULL}
- };
-
--const static struct luaL_reg ll_chisel [] =
-+const static struct luaL_Reg ll_chisel [] =
- {
- {"request_field", &lua_cbacks::request_field},
- {"set_filter", &lua_cbacks::set_filter},
-@@ -131,7 +131,7 @@ const static struct luaL_reg ll_chisel [] =
- {NULL,NULL}
- };
-
--const static struct luaL_reg ll_evt [] =
-+const static struct luaL_Reg ll_evt [] =
- {
- {"field", &lua_cbacks::field},
- {"get_num", &lua_cbacks::get_num},
-@@ -853,10 +853,28 @@ bool sinsp_chisel::parse_view_info(lua_State *ls, OUT chisel_desc* cd)
-
-
- #ifdef HAS_LUA_CHISELS
-+static void chisel_lua_registerlib(lua_State *L, const char *libname,
-+ const luaL_Reg *l, int ind)
-+{
-+#if LUA_VERSION_NUM >= 502
-+ if (libname)
-+ {
-+ lua_newtable(L);
-+ luaL_setfuncs(L, l, ind);
-+ lua_pushvalue(L, -1);
-+ lua_setglobal(L, libname);
-+ }
-+ else
-+ luaL_setfuncs(L, l, ind);
-+#else
-+ luaL_register(L, libname, l);
-+#endif
-+}
-+
- // Initializes a lua chisel
- bool sinsp_chisel::init_lua_chisel(chisel_desc &cd, string const &fpath)
- {
-- lua_State* ls = lua_open();
-+ lua_State* ls = luaL_newstate();
- if(ls == NULL)
- {
- return false;
-@@ -867,9 +885,9 @@ bool sinsp_chisel::init_lua_chisel(chisel_desc &cd, string const &fpath)
- //
- // Load our own lua libs
- //
-- luaL_openlib(ls, "sysdig", ll_sysdig, 0);
-- luaL_openlib(ls, "chisel", ll_chisel, 0);
-- luaL_openlib(ls, "evt", ll_evt, 0);
-+ chisel_lua_registerlib(ls, "sysdig", ll_sysdig, 0);
-+ chisel_lua_registerlib(ls, "chisel", ll_chisel, 0);
-+ chisel_lua_registerlib(ls, "evt", ll_evt, 0);
-
- //
- // Add our chisel paths to package.path
-@@ -1111,16 +1129,16 @@ void sinsp_chisel::load(string cmdstr)
- //
- // Open the script
- //
-- m_ls = lua_open();
-+ m_ls = luaL_newstate();
-
- luaL_openlibs(m_ls);
-
- //
- // Load our own lua libs
- //
-- luaL_openlib(m_ls, "sysdig", ll_sysdig, 0);
-- luaL_openlib(m_ls, "chisel", ll_chisel, 0);
-- luaL_openlib(m_ls, "evt", ll_evt, 0);
-+ chisel_lua_registerlib(m_ls, "sysdig", ll_sysdig, 0);
-+ chisel_lua_registerlib(m_ls, "chisel", ll_chisel, 0);
-+ chisel_lua_registerlib(m_ls, "evt", ll_evt, 0);
-
- //
- // Add our chisel paths to package.path
---
-2.6.2
-
diff --git a/meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb b/meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb
new file mode 100644
index 0000000000..92897cd3fc
--- /dev/null
+++ b/meta-oe/recipes-extended/sysdig/sysdig_0.28.0.bb
@@ -0,0 +1,62 @@
+SUMMARY = "A New System Troubleshooting Tool Built for the Way You Work"
+DESCRIPTION = "Sysdig is open source, system-level exploration: capture \
+system state and activity from a running Linux instance, then save, \
+filter and analyze."
+HOMEPAGE = "http://www.sysdig.org/"
+LICENSE = "Apache-2.0 & (MIT | GPL-2.0-only)"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f8fee3d59797546cffab04f3b88b2d44"
+
+inherit cmake pkgconfig
+
+#OECMAKE_GENERATOR = "Unix Makefiles"
+JIT ?= "jit"
+JIT:mipsarchn32 = ""
+JIT:mipsarchn64 = ""
+JIT:riscv64 = ""
+JIT:riscv32 = ""
+JIT:powerpc = ""
+JIT:powerpc64le = ""
+JIT:powerpc64 = ""
+
+DEPENDS += "libb64 lua${JIT} zlib c-ares grpc-native grpc curl ncurses jsoncpp \
+ tbb jq openssl elfutils protobuf protobuf-native jq-native valijson"
+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"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "\
+ -DBUILD_DRIVER=OFF \
+ -DMINIMAL_BUILD=ON \
+ -DUSE_BUNDLED_DEPS=OFF \
+ -DCREATE_TEST_TARGETS=OFF \
+ -DDIR_ETC=${sysconfdir} \
+ -DLUA_INCLUDE_DIR=${STAGING_INCDIR}/luajit-2.1 \
+ -DFALCOSECURITY_LIBS_SOURCE_DIR=${S}/falcosecurity-libs \
+ -DVALIJSON_INCLUDE=${STAGING_INCDIR}/valijson \
+"
+
+#CMAKE_VERBOSE = "VERBOSE=1"
+
+FILES:${PN} += " \
+ ${DIR_ETC}/* \
+ ${datadir}/zsh/* \
+ ${prefix}/src/* \
+"
+# Use getaddrinfo_a is a GNU extension in libsinsp
+# It should be fixed in sysdig, until then disable
+# on musl
+# Something like this https://code.videolan.org/ePirat/vlc/-/commit/01fd9fe4c7f6c5558f7345f38abf0152e17853ab is needed to fix it
+COMPATIBLE_HOST:libc-musl = "null"
+COMPATIBLE_HOST:mips = "null"
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+COMPATIBLE_HOST:powerpc = "null"
+COMPATIBLE_HOST:powerpc64le = "null"
diff --git a/meta-oe/recipes-extended/sysdig/sysdig_git.bb b/meta-oe/recipes-extended/sysdig/sysdig_git.bb
deleted file mode 100644
index 4f58281f9f..0000000000
--- a/meta-oe/recipes-extended/sysdig/sysdig_git.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "A New System Troubleshooting Tool Built for the Way You Work"
-DESCRIPTION = "Sysdig is open source, system-level exploration: capture \
-system state and activity from a running Linux instance, then save, \
-filter and analyze."
-HOMEPAGE = "http://www.sysdig.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit cmake pkgconfig
-
-OECMAKE_GENERATOR = "Unix Makefiles"
-
-DEPENDS = "luajit zlib ncurses"
-RDEPENDS_${PN} = "bash"
-
-SRC_URI = "git://github.com/draios/sysdig.git;branch=master \
- file://0001-libsinsp-Port-to-build-with-lua-5.2.patch \
- file://0001-Fix-build-with-musl-backtrace-APIs-are-glibc-specifi.patch \
- "
-SRCREV = "85d16f33a82a17f87ccdbc088749271c71d87013"
-PV = "0.1.102+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-DIR_ETC="/etc"
-EXTRA_OECMAKE = ' -DUSE_BUNDLED_LUAJIT="OFF" \
- -DUSE_BUNDLED_ZLIB="OFF" \
- -DBUILD_DRIVER="OFF" \
- -DUSE_BUNDLED_NCURSES="OFF" \
- -DDIR_ETC="${DIR_ETC}" \
- '
-
-FILES_${PN} += " \
- ${DIR_ETC}/* \
- ${datadir}/zsh/* \
- ${prefix}/src/* \
-"
-
-# luajit not supported on Aarch64
-COMPATIBLE_HOST = "^(?!aarch64).*"
-
diff --git a/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch b/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch
deleted file mode 100644
index 976e0380e4..0000000000
--- a/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/configure.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From 81c1ba940415595584a837ab1078c64855072f0c Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Mon, 21 Nov 2011 12:00:54 +0100
-Subject: [PATCH] t1lib: add 5.1.2
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
----
- configure.in | 95 ++++++++++++++++++++++++------------------------------------
- 1 file changed, 38 insertions(+), 57 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index eade4c0..e649ea9 100644
---- a/configure.in
-+++ b/configure.in
-@@ -74,9 +74,9 @@ T1LIB_PATCHLEVEL=builtin(eval, MACRO_T1LIB_LT_REVISION)
- T1LIB_VERSIONSTRING=\"MACRO_T1LIB_IDENTIFIER\"
-
-
--dnl We use this file by Andreas Zeller to check for libXaw
--builtin(include, ac-tools/ice_find_athena.m4)
--builtin(include, ac-tools/aclocal.m4)
-+#dnl We use this file by Andreas Zeller to check for libXaw
-+#builtin(include, ac-tools/ice_find_athena.m4)
-+#builtin(include, ac-tools/aclocal.m4)
-
- dnl We want these before the checks, so the checks can modify their values.
- test -z "$LDLIBS" && LDLIBS=-lm AC_SUBST(LDLIBS)
-@@ -162,6 +162,7 @@ fi
-
- dnl **** Check for underscore on external symbols ****
-
-+AH_TEMPLATE([NEED_UNDERSCORE_PREFIX], [Define if external symbols need an underscore prefix])
- AC_CACHE_CHECK("whether external symbols need an underscore prefix",
- ac_cv_c_extern_prefix,
- [saved_libs=$LIBS
-@@ -179,68 +180,48 @@ then
- AC_DEFINE(NEED_UNDERSCORE_PREFIX)
- fi
-
--dnl **** Check which ANSI integer type is 16 bit
--
--AC_CACHE_CHECK( "which ANSI integer type is 16 bit", ac_16bit_type,
-- AC_TRY_RUN([
--int main(void) {
-- if (sizeof(short)==2)
-- return(0);
-- else if (sizeof(int)==2)
-- return(1);
-- else
-- return(2);
--}], ac_16bit_type="short", ac_16bit_type="int", ac_16bit_type=))
--if test "$ac_16bit_type" = "short"
--then
-- T1_AA_TYPE16="-DT1_AA_TYPE16=short"
-- T1_INT16="short"
--else
-- T1_AA_TYPE16="-DT1_AA_TYPE16=int"
-- T1_INT16="int"
-+dnl **** Check which ANSI integer type is 16 bit
-+T1_AA_TYPE16=""
-+for type in short int; do
-+ if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x2"; then
-+ T1_AA_TYPE16="-DT1_AA_TYPE16=$type"
-+ T1_INT16="$type"
-+ break
-+ fi
-+done
-+
-+if test x"$T1_AA_TYPE16" = "x"; then
-+ AC_MSG_ERROR("Unable to determine which integer type is 16 bit.")
- fi
-
--
- dnl **** Check which ANSI integer type is 32 bit
--
--AC_CACHE_CHECK( "which ANSI integer type is 32 bit", ac_32bit_type,
-- AC_TRY_RUN([
--int main(void) {
-- if (sizeof(int)==4)
-- return(0);
-- else if (sizeof(long)==4)
-- return(1);
-- else
-- return(2);
--}], ac_32bit_type="int", ac_32bit_type="long", ac_32bit_type=))
--if test "$ac_32bit_type" = "int"
--then
-- T1_AA_TYPE32="-DT1_AA_TYPE32=int"
-- T1_INT32="int"
--else
-- T1_AA_TYPE32="-DT1_AA_TYPE32=long"
-- T1_INT32="long"
-+T1_AA_TYPE32=""
-+for type in int long; do
-+ if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x4"; then
-+ T1_AA_TYPE32="-DT1_AA_TYPE32=$type"
-+ T1_INT32="$type"
-+ break
-+ fi
-+done
-+
-+if test x"$T1_AA_TYPE32" = "x"; then
-+ AC_MSG_ERROR("Unable to determine which integer type is 32 bit.")
- fi
-
--
- dnl **** Check which ANSI integer type is 64 bit
--
--AC_CACHE_CHECK( "which ANSI integer type is 64 bit", ac_64bit_type,
-- AC_TRY_RUN([
--int main(void) {
-- if (sizeof(long)==8)
-- return(0);
-- else
-- return(1);
--}], ac_64bit_type="long", ac_64bit_type="<none>"))
--if test "$ac_64bit_type" = "long"
--then
-- T1_AA_TYPE64="-DT1_AA_TYPE64=long"
--else
-- T1_AA_TYPE64=
-+T1_AA_TYPE64=""
-+for type in long long_long; do
-+ if test x"`eval echo \\$ac_cv_sizeof_$type`" = "x8"; then
-+ AC_MSG_WARN("$type is 64 bit")
-+ T1_AA_TYPE64="-DT1_AA_TYPE64=\"`echo $type|tr '_' ' '`\""
-+ break
-+ fi
-+done
-+
-+if test x"$T1_AA_TYPE64" = "x"; then
-+ AC_MSG_ERROR("Unable to determine which integer type is 64 bit.")
- fi
-
--
- CFLAGS="${CFLAGS} -DT1LIB_IDENT=\"\\\"${T1LIB_IDENTIFIER}\\\"\" -DGLOBAL_CONFIG_DIR=\"\\\"${T1LIB_DATA_DIR}\\\"\""
-
- dnl **** Check for functions and header files ****
diff --git a/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch b/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch
deleted file mode 100644
index bc2476bfc1..0000000000
--- a/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/format_security.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From cea83003de3ffebde92becd1e599fe3b28f0a7c4 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 6 Mar 2017 23:13:36 -0800
-Subject: [PATCH] t1lib: Fix printf format string errors
-
-Fix printf formats to use format qualifiers
-fixes
-
-error: format string is not a string literal (potentially insecure) [-Werror,-Wformat-security]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
-
----
- lib/t1lib/t1subset.c | 2 +-
- lib/type1/objects.c | 2 +-
- lib/type1/objects.h | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/lib/t1lib/t1subset.c b/lib/t1lib/t1subset.c
-index da427b2..e76974f 100644
---- a/lib/t1lib/t1subset.c
-+++ b/lib/t1lib/t1subset.c
-@@ -759,7 +759,7 @@ char *T1_SubsetFont( int FontID,
- tr_len);
- T1_PrintLog( "T1_SubsetFont()", err_warn_msg_buf,
- T1LOG_DEBUG);
-- l+=sprintf( &(trailerbuf[l]), linebuf); /* contains the PostScript trailer */
-+ l+=sprintf( &(trailerbuf[l]), "%s", linebuf); /* contains the PostScript trailer */
- }
-
- /* compute size of output file */
-diff --git a/lib/type1/objects.c b/lib/type1/objects.c
-index c413a0f..f828e6a 100644
---- a/lib/type1/objects.c
-+++ b/lib/type1/objects.c
-@@ -957,7 +957,7 @@ struct xobject *TypeErr(name, obj, expect, ret) /* non-ANSI avoids overly strict
-
- sprintf(typemsg, "Wrong object type in %s; expected %s, found %s.\n",
- name, TypeFmt(expect), TypeFmt(obj->type));
-- IfTrace0(TRUE,typemsg);
-+ IfTrace1(TRUE, "%s", typemsg);
-
- ObjectPostMortem(obj);
-
-diff --git a/lib/type1/objects.h b/lib/type1/objects.h
-index 13cbae7..3a1d337 100644
---- a/lib/type1/objects.h
-+++ b/lib/type1/objects.h
-@@ -214,7 +214,7 @@ struct xobject {
- /*SHARED*/
- /* NDW: personally, I want to see status and error messages! */
- #define IfTrace0(condition,model) \
-- {if (condition) printf(model);}
-+ {if (condition) fputs(model,stdout);}
- #define IfTrace1(condition,model,arg0) \
- {if (condition) printf(model,arg0);}
- #define IfTrace2(condition,model,arg0,arg1) \
diff --git a/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch b/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch
deleted file mode 100644
index da54f87abb..0000000000
--- a/meta-oe/recipes-extended/t1lib/t1lib-5.1.2/libtool.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From bab41f5e1fc1fc809da1371e6a0222e0eb21e5f0 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Mon, 21 Nov 2011 12:00:54 +0100
-Subject: [PATCH] t1lib: add 5.1.2
-
-#
-# Patch managed by http://www.holgerschurig.de/patcher.html
-#
-
----
- Makefile.in | 5 +++--
- examples/Makefile.in | 5 +++--
- lib/Makefile.in | 6 ++++--
- lib/t1lib/Makefile.in | 6 ++++--
- lib/type1/Makefile.in | 6 ++++--
- type1afm/Makefile.in | 6 ++++--
- xglyph/Makefile.in | 6 ++++--
- 7 files changed, 26 insertions(+), 14 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 29c3468..396c020 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -18,7 +18,8 @@
- # Last modified: 2005-05-01
- #
-
--SHELL = /bin/sh
-+SHELL = @SHELL@
-+LIBTOOL = @LIBTOOL@
- CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
-@@ -149,7 +150,7 @@ distclean: clean
- $(RM) examples/Makefile
- $(RM) xglyph/Makefile
- $(RM) doc/Makefile
-- $(RM) libtool
-+ $(RM) $(LIBTOOL)
-
-
- # The following two targets are for building and cleaning the python-
-diff --git a/examples/Makefile.in b/examples/Makefile.in
-index b301db5..7a6a514 100644
---- a/examples/Makefile.in
-+++ b/examples/Makefile.in
-@@ -14,9 +14,10 @@
- # Last modified: 2001-04-01
- #
-
-+top_builddir = @top_builddir@
-
--LIBTOOL = ../libtool
--SHELL = /bin/sh
-+LIBTOOL = @LIBTOOL@
-+SHELL = @SHELL@
- CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
-diff --git a/lib/Makefile.in b/lib/Makefile.in
-index 89e5e86..6e0f960 100644
---- a/lib/Makefile.in
-+++ b/lib/Makefile.in
-@@ -15,8 +15,10 @@
- #
- # Contributions by H.Kakugawa to use libtool!
-
--LIBTOOL = ../libtool
--SHELL = /bin/sh
-+top_builddir = @top_builddir@
-+
-+LIBTOOL = @LIBTOOL@
-+SHELL = @SHELL@
- CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
-diff --git a/lib/t1lib/Makefile.in b/lib/t1lib/Makefile.in
-index a6c2478..32434b3 100644
---- a/lib/t1lib/Makefile.in
-+++ b/lib/t1lib/Makefile.in
-@@ -14,8 +14,10 @@
- #
- # Modified by H.Kakugawa to use libtool
-
--LIBTOOL = ../../libtool
--SHELL = /bin/sh
-+top_builddir = @top_builddir@
-+
-+LIBTOOL = @LIBTOOL@
-+SHELL = @SHELL@
- CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
-diff --git a/lib/type1/Makefile.in b/lib/type1/Makefile.in
-index 241f124..42efa94 100644
---- a/lib/type1/Makefile.in
-+++ b/lib/type1/Makefile.in
-@@ -14,8 +14,10 @@
- #
- # Modified by H.Kakugawa to use libtool
-
--LIBTOOL = ../../libtool
--SHELL = /bin/sh
-+top_builddir = @top_builddir@
-+
-+LIBTOOL = @LIBTOOL@
-+SHELL = @SHELL@
- CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
-diff --git a/type1afm/Makefile.in b/type1afm/Makefile.in
-index 61611e1..9b51406 100644
---- a/type1afm/Makefile.in
-+++ b/type1afm/Makefile.in
-@@ -15,8 +15,10 @@
- #
- # Modified by H.Kakugawa to use libtool
-
--LIBTOOL = ../libtool
--SHELL = /bin/sh
-+top_builddir = @top_builddir@
-+
-+LIBTOOL = @LIBTOOL@
-+SHELL = @SHELL@
- CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
-diff --git a/xglyph/Makefile.in b/xglyph/Makefile.in
-index 8da9b63..741334c 100644
---- a/xglyph/Makefile.in
-+++ b/xglyph/Makefile.in
-@@ -15,8 +15,10 @@
- #
- # Modified by H.Kakugawa to use libtool
-
--LIBTOOL = ../libtool
--SHELL = /bin/sh
-+top_builddir = @top_builddir@
-+
-+LIBTOOL = @LIBTOOL@
-+SHELL = @SHELL@
- CC = @CC@
- CPP = @CPP@
- CFLAGS = @CFLAGS@
diff --git a/meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb b/meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb
deleted file mode 100644
index 826dbda858..0000000000
--- a/meta-oe/recipes-extended/t1lib/t1lib_5.1.2.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "A Type1 Font Rastering Library"
-SECTION = "libs"
-DEPENDS = "virtual/libx11 libxaw"
-
-LICENSE = "LGPLv2 & GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8ca43cbc842c2336e835926c2166c28b \
- file://LGPL;md5=6e29c688d912da12b66b73e32b03d812 \
-"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/t/t1lib/t1lib_${PV}.orig.tar.gz \
- file://configure.patch \
- file://libtool.patch \
- file://format_security.patch"
-SRC_URI[md5sum] = "a5629b56b93134377718009df1435f3c"
-SRC_URI[sha256sum] = "821328b5054f7890a0d0cd2f52825270705df3641dbd476d58d17e56ed957b59"
-
-inherit autotools-brokensep distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# Fix GNU_HASH problem
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-EXTRA_OECONF = "--with-x --without-athena"
-EXTRA_OEMAKE = "without_doc"
-
-FILES_${PN} += " ${datadir}/t1lib/t1lib.config"
-FILES_${PN}-doc = "${datadir}/t1lib/doc/t1lib_doc.pdf"
-
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/0001-test-ptts-Set-recv-buffer-size-too-max-to-receive-as.patch b/meta-oe/recipes-extended/tipcutils/tipcutils/0001-test-ptts-Set-recv-buffer-size-too-max-to-receive-as.patch
new file mode 100644
index 0000000000..39f899cf1b
--- /dev/null
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils/0001-test-ptts-Set-recv-buffer-size-too-max-to-receive-as.patch
@@ -0,0 +1,66 @@
+From 4e4c8c7a1cca2125e2bf2a67cbab0bdbd78fdb86 Mon Sep 17 00:00:00 2001
+From: He Zhe <zhe.he@windriver.com>
+Date: Tue, 30 Jul 2019 13:24:22 +0800
+Subject: [PATCH] ptts: Set recv buffer size too max to receive as many
+ packets as possible
+
+Flooding multicast may make the rcv buffer overrun and is considered
+premature messages later and thus cause the following error.
+
+"Ignoring premature msg 16, currently handling 12"
+
+This patch sets SO_RCVBUF the of socket to max int value to receive as many
+packets as possible, and give a hint to user when possible overrun occurs. Note
+that the value of SO_RCVBUF will be limited up to min(INT_MAX/2,
+sysctl_rmem_max) in kernel.
+
+Signed-off-by: He Zhe <zhe.he@windriver.com>
+
+Upstream-Status: Backport
+
+Signed-off-by: Li Zhou <li.zhou@windriver.com>
+---
+ ptts/tipc_ts_server.c | 18 ++++++++++++++++--
+ 1 file changed, 16 insertions(+), 2 deletions(-)
+
+diff --git a/ptts/tipc_ts_server.c b/ptts/tipc_ts_server.c
+index a286daa..3a2f96f 100644
+--- a/ptts/tipc_ts_server.c
++++ b/ptts/tipc_ts_server.c
+@@ -641,8 +641,9 @@ void server_mcast
+ if (rc < 0)
+ err("multicast message not received");
+ if (msgno != *(int*) buf) {
+- dbg1("Ignoring premature msg %u, currently handling %u\n",
+- *(int*)buf, msgno);
++ dbg1("Ignoring premature msg %u, currently handling %u\n"
++ "You can enlarge /proc/sys/net/core/rmem_max and try again\n",
++ *(int*)buf, msgno);
+ continue;
+ }
+ rc = recvfrom(sd[i], buf, expected_szs[numSubTest],
+@@ -687,8 +688,21 @@ void server_test_multicast(void)
+ FD_ZERO(&readfds);
+
+ for (i = 0; i < TIPC_MCAST_SOCKETS; i++) {
++ int optval = (int)(~0U >> 1);
++ socklen_t optlen = sizeof(optval);
++ int rc = 0;
++
+ sd[i] = createSocketTIPC (SOCK_RDM);
+ FD_SET(sd[i], &readfds);
++
++ /*
++ * Flooding multicast may make the rcv buffer overrun and considered premature msg later.
++ * Set SO_RCVBUF to max int value to receive as many packets as possible.
++ * Note that it will be limited up to min(INT_MAX/2, sysctl_rmem_max) in kernel.
++ */
++ rc = setsockopt(sd[i], SOL_SOCKET, SO_RCVBUF, (const char*)&optval, optlen);
++ if(rc != 0)
++ printf("Failed to set SO_RCVBUF of %d: %s\n", sd[i], strerror(errno));
+ }
+
+ server_bindMulticast( 0, 99, sd[0]);
+--
+2.17.1
+
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 54ed043f4e..fc64ec0fcb 100644
--- a/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
+++ b/meta-oe/recipes-extended/tipcutils/tipcutils_git.bb
@@ -1,32 +1,29 @@
SUMMARY = "Transparent Inter-Process Communication protocol"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://tipclog/tipc.h;endline=35;md5=985b6ea8735818511d276c1b466cce98"
-SRC_URI = "git://git.code.sf.net/p/tipc/tipcutils \
+SRC_URI = "git://git.code.sf.net/p/tipc/tipcutils;branch=master \
file://0001-include-sys-select.h-for-FD_-definitions.patch \
file://0002-replace-non-standard-uint-with-unsigned-int.patch \
file://0001-multicast_blast-tipcc-Fix-struct-type-for-TIPC_GROUP.patch \
+ file://0001-test-ptts-Set-recv-buffer-size-too-max-to-receive-as.patch \
"
SRCREV = "7ab2211b87414ba240b0b2e4af219c1057c9cf9a"
PV = "2.2.0+git${SRCPV}"
-DEPENDS="virtual/kernel"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-
inherit autotools pkgconfig
DEPENDS += "libdaemon"
-RDEPENDS_${PN} = "iproute2-tipc"
+RDEPENDS:${PN} = "iproute2-tipc"
S = "${WORKDIR}/git"
-do_configure_prepend() {
+do_configure:prepend() {
( cd ${S}; ${S}/bootstrap )
}
-do_install_append() {
+do_install:append() {
demos="benchmark hello_world topology_subscr_demo connection_demo \
multicast_demo stream_demo"
for i in $demos;do
@@ -47,6 +44,6 @@ do_install_append() {
}
PACKAGES += "${PN}-demos"
-FILES_${PN}-dbg += "/opt/tipcutils/demos/*/.debug /opt/tipcutils/ptts/.debug"
-FILES_${PN}-demos = "/opt/tipcutils/*"
+FILES:${PN}-dbg += "/opt/tipcutils/demos/*/.debug /opt/tipcutils/ptts/.debug"
+FILES:${PN}-demos = "/opt/tipcutils/*"
diff --git a/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch b/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch
new file mode 100644
index 0000000000..6d5e293c7f
--- /dev/null
+++ b/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch
@@ -0,0 +1,31 @@
+From 42e99eb6c727df7c9d49586803a4bf9933a9796b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 10:52:42 -0700
+Subject: [PATCH] Fix a lot of -Werror=format-security errors with mvwprintw
+
+In all these places a non-constant is used as a format string which
+compiler complains about. Fix by using "%s" as format.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/helpwin.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/helpwin.c b/src/helpwin.c
+index 0d660f9..1623d9c 100644
+--- a/src/helpwin.c
++++ b/src/helpwin.c
+@@ -61,7 +61,7 @@ void show_help_win(WINDOW* win, screen_t* screen)
+ wattroff(win, A_REVERSE);
+
+ /* screen description */
+- mvwprintw(win, 2, 1, screen->desc);
++ mvwprintw(win, 2, 1, "%s", screen->desc);
+
+ /* max size of column headers */
+ for(i = 0; i < n; i++) {
+--
+2.33.1
+
diff --git a/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-build-when-S-B.patch b/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-build-when-S-B.patch
new file mode 100644
index 0000000000..51756b891e
--- /dev/null
+++ b/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-build-when-S-B.patch
@@ -0,0 +1,28 @@
+From ad907b1aff217fe3b431ae052025ba8ba6cacc01 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 20 Jun 2018 23:14:58 -0700
+Subject: [PATCH] Fix build when S != B
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 4392c06..2c5cae4 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -69,7 +69,7 @@ install:
+ $(INSTALL) -d $(DESTDIR)$(bindir)
+ $(INSTALL) -m 0755 tiptop $(DESTDIR)$(bindir)
+ $(INSTALL) -d $(DESTDIR)$(man1dir)
+- $(INSTALL) -m 0644 tiptop.1 $(DESTDIR)$(man1dir)
++ $(INSTALL) -m 0644 $(srcdir)/tiptop.1 $(DESTDIR)$(man1dir)
+ ln $(DESTDIR)$(bindir)/tiptop $(DESTDIR)$(bindir)/ptiptop
+ ln $(DESTDIR)$(man1dir)/tiptop.1 $(DESTDIR)$(man1dir)/ptiptop.1
+
+--
+2.17.1
+
diff --git a/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch b/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch
new file mode 100644
index 0000000000..ae676ae449
--- /dev/null
+++ b/meta-oe/recipes-extended/tiptop/tiptop/0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch
@@ -0,0 +1,28 @@
+From 848983a30dc99248ec45632bfc31718716a86e9d Mon Sep 17 00:00:00 2001
+From: Tomasz Buchert <tomasz@debian.org>
+Date: Fri, 7 Jul 2017 21:15:58 +0200
+Subject: [PATCH] Fix parallel build problems (by Adrian Bunk)
+
+Taken from debian
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 32ab563..1993c9b 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -59,8 +59,9 @@ lex.yy.c: calc.lex
+ lex.yy.o: lex.yy.c
+ $(CC) $(CFLAGS) -I$(srcdir) -c lex.yy.c
+
++y.tab.c: y.tab.h
+
+-y.tab.c y.tab.h: calc.y
++y.tab.h: calc.y
+ $(YACC) -d $(srcdir)/calc.y
+
+ y.tab.o: y.tab.c
diff --git a/meta-oe/recipes-extended/tiptop/tiptop/0002-fix-reproducibility-of-build-process.patch b/meta-oe/recipes-extended/tiptop/tiptop/0002-fix-reproducibility-of-build-process.patch
new file mode 100644
index 0000000000..cecb70bc99
--- /dev/null
+++ b/meta-oe/recipes-extended/tiptop/tiptop/0002-fix-reproducibility-of-build-process.patch
@@ -0,0 +1,32 @@
+From 89dd9d8705408dccd5c5e47d22eba6fd6ec22b50 Mon Sep 17 00:00:00 2001
+From: Tomasz Buchert <tomasz@debian.org>
+Date: Thu, 9 Jul 2015 16:07:23 +0200
+Subject: [PATCH] fix reproducibility of build process
+
+The upstream Makefile sets macros that depend on
+a particular platform where the package is built.
+We don't set them which fixes the problem.
+
+Taken from debian
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Makefile.in | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+index 1993c9b..4392c06 100644
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -48,9 +48,7 @@ Makefile: Makefile.in ../config.status
+
+
+ version.o: version.c
+- $(CC) $(CFLAGS) -DCOMPILE_HOST="\""`hostname`"\"" \
+- -DCOMPILE_DATE="\"`date`\"" \
+- -c $(srcdir)/version.c
++ $(CC) $(CFLAGS) -c $(srcdir)/version.c
+
+
+ lex.yy.c: calc.lex
diff --git a/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb b/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
index 04084ecb40..8dca2940b5 100644
--- a/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
+++ b/meta-oe/recipes-extended/tiptop/tiptop_2.3.1.bb
@@ -1,18 +1,25 @@
SUMMARY = "Hardware performance monitoring counters"
-HOMEPAGE = "http://tiptop.gforge.inria.fr/"
-LICENSE = "GPLv2"
+HOMEPAGE = "https://team.inria.fr/pacap/software/tiptop/"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
DEPENDS = "ncurses libxml2 bison-native flex-native"
-SRC_URI = "http://tiptop.gforge.inria.fr/releases/${BP}.tar.gz"
-SRC_URI[md5sum] = "46ca0fdf0236f02dd2b96d347626d2a2"
+SRC_URI = "http://files.inria.fr/pacap/${BPN}/${BP}.tar.gz \
+ file://0001-Fix-parallel-build-problems-by-Adrian-Bunk.patch \
+ file://0002-fix-reproducibility-of-build-process.patch \
+ file://0001-Fix-build-when-S-B.patch \
+ file://0001-Fix-a-lot-of-Werror-format-security-errors-with-mvwp.patch \
+ "
SRC_URI[sha256sum] = "51c4449c95bba34f16b429729c2f58431490665d8093efaa8643b2e1d1084182"
-inherit autotools-brokensep
+UPSTREAM_CHECK_URI = "https://team.inria.fr/pacap/software/tiptop/"
+
+inherit autotools
+
EXTRA_OECONF = "CFLAGS="$CFLAGS -I${STAGING_INCDIR}/libxml2""
COMPATIBLE_HOST = "(i.86|x86_64|arm|powerpc|aarch64).*-linux"
-do_configure_prepend () {
+do_configure:prepend () {
# Two bugs in configure.ac when cross-compiling.
# 1. The path of libxml2. Specify it in EXTRA_OECONF.
# 2. hw's value on other platforms. Replace it if the target is
diff --git a/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb b/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
new file mode 100644
index 0000000000..6dc5c0c7e5
--- /dev/null
+++ b/meta-oe/recipes-extended/tmate/tmate_2.4.0.bb
@@ -0,0 +1,17 @@
+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"
+
+DEPENDS:append = " libevent libssh msgpack-c ncurses"
+SRC_URI = "\
+ git://github.com/tmate-io/tmate.git;protocol=https;branch=master \
+"
+
+SRCREV = "5e00bfa5e137e76c81888727712ced2b3fd99f5b"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig autotools
diff --git a/meta-oe/recipes-extended/tmux/tmux_2.6.bb b/meta-oe/recipes-extended/tmux/tmux_2.6.bb
deleted file mode 100644
index fba5156f6d..0000000000
--- a/meta-oe/recipes-extended/tmux/tmux_2.6.bb
+++ /dev/null
@@ -1,23 +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] = "d541ff392249f94c4f3635793556f827"
-SRC_URI[sha256sum] = "b17cd170a94d7b58c0698752e1f4f263ab6dc47425230df7e53a6435cc7cd7e8"
-
-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 ${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
new file mode 100644
index 0000000000..3a3dd192be
--- /dev/null
+++ b/meta-oe/recipes-extended/triggerhappy/triggerhappy_git.bb
@@ -0,0 +1,47 @@
+SUMMARY = "A lightweight hotkey daemon"
+HOMEPAGE = "https://github.com/wertarbyte/triggerhappy"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+# matches debian/0.5.0-1 tag
+SRCREV = "44a173195986d0d853316cb02a58785ded66c12b"
+PV = "0.5.0+git${SRCPV}"
+SRC_URI = "git://github.com/wertarbyte/${BPN}.git;branch=debian;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep pkgconfig perlnative update-rc.d systemd
+
+PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+PACKAGECONFIG[systemd] = ",,systemd"
+
+INITSCRIPT_NAME = "triggerhappy"
+INITSCRIPT_PARAMS = "defaults"
+SYSTEMD_SERVICE:${PN} = "triggerhappy.service triggerhappy.socket"
+
+FILES:${PN} = "\
+ ${sbindir}/thd \
+ ${sbindir}/th-cmd \
+ ${sysconfdir}/triggerhappy/triggers.d \
+ ${nonarch_base_libdir}/udev/rules.d/80-triggerhappy.rules \
+ ${sysconfdir}/init.d/triggerhappy \
+ ${systemd_unitdir}/system \
+"
+CONFFILES:${PN} = "${sysconfdir}/udev/rules.d/80-triggerhappy.rules"
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/triggerhappy/triggers.d
+
+ install -d ${D}${nonarch_base_libdir}/udev/rules.d
+ install -m 0644 ${S}/udev/triggerhappy-udev.rules ${D}${nonarch_base_libdir}/udev/rules.d/80-triggerhappy.rules
+
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${S}/debian/init.d ${D}${sysconfdir}/init.d/triggerhappy
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 0644 ${S}/systemd/triggerhappy.socket ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/systemd/triggerhappy.service ${D}${systemd_unitdir}/system
+ fi
+}
diff --git a/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-Add-missing-standard-headers-for-str-and-exit-APIs.patch b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-Add-missing-standard-headers-for-str-and-exit-APIs.patch
new file mode 100644
index 0000000000..9fce51a593
--- /dev/null
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities-20040406/0001-Add-missing-standard-headers-for-str-and-exit-APIs.patch
@@ -0,0 +1,64 @@
+From a1c4716ceaed6333f8be01b5d4d971e64babcdd7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 18:57:42 -0700
+Subject: [PATCH] Add missing standard headers for str* and exit APIs
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ jail/jail_uml | Bin 19120 -> 19120 bytes
+ jail/jail_uml.c | 1 +
+ port-helper/port-helper.c | 1 +
+ uml_router/port.c | 1 +
+ uml_router/uml_switch.c | 1 +
+ watchdog/uml_watchdog.c | 1 +
+ 6 files changed, 5 insertions(+)
+
+--- a/jail/jail_uml.c
++++ b/jail/jail_uml.c
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <unistd.h>
++#include <stdlib.h> /* for exit */
+ #include <errno.h>
+
+ static void Usage(void)
+--- a/port-helper/port-helper.c
++++ b/port-helper/port-helper.c
+@@ -12,6 +12,7 @@ for read and write, and the console is f
+
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h> /* memset */
+ #include <signal.h>
+ #include <errno.h>
+ #include <unistd.h>
+--- a/uml_router/port.c
++++ b/uml_router/port.c
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h> /* memcmp */
+ #include <unistd.h>
+ #include <errno.h>
+ #include <sys/socket.h>
+--- a/uml_router/uml_switch.c
++++ b/uml_router/uml_switch.c
+@@ -5,6 +5,7 @@
+ #include <stdio.h>
+ #include <errno.h>
+ #include <stdlib.h>
++#include <string.h> /* strcmp */
+ #include <signal.h>
+ #include <fcntl.h>
+ #include <stdint.h>
+--- a/watchdog/uml_watchdog.c
++++ b/watchdog/uml_watchdog.c
+@@ -1,5 +1,6 @@
+ #include <stdio.h>
+ #include <stdlib.h>
++#include <string.h> /* strcmp */
+ #include <unistd.h>
+ #include <signal.h>
+ #include <errno.h>
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 ed19d1e41a..54bc1b21f1 100644
--- a/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
+++ b/meta-oe/recipes-extended/uml-utilities/uml-utilities_20040406.bb
@@ -1,12 +1,15 @@
SECTION = "console/utils"
SUMMARY = "Utilities for User-Mode-Linux"
-LICENSE = "GPL-2.0"
+LICENSE = "GPL-2.0-only"
DEPENDS = "zlib ncurses readline"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
SRC_URI = "http://downloads.sourceforge.net/project/user-mode-linux/tools/1/uml_utilities_${PV}.tar.bz2 \
file://fix-ldflags.patch \
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"
@@ -15,13 +18,17 @@ PR = "r1"
S = "${WORKDIR}/tools"
+inherit update-alternatives
+
do_compile() {
- oe_runmake
+ oe_runmake LIB_DIR=${libdir}/uml
}
do_install() {
- oe_runmake install DESTDIR=${D}
+ oe_runmake install DESTDIR=${D} LIB_DIR=${libdir}/uml
}
-FILES_${PN} += "${exec_prefix}${nonarch_base_libdir}"
-FILES_${PN}-dbg += "${exec_prefix}${nonarch_base_libdir}/uml/.debug"
+FILES:${PN} += "${libdir}/uml"
+
+ALTERNATIVE:${PN} = "tunctl"
+ALTERNATIVE_LINK_NAME[tunctl] = "${bindir}/tunctl"
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
new file mode 100644
index 0000000000..8c3b148369
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-CMakeLists.txt-Use-SWIG_SUPPORT_FILES-to-find-the-li.patch
@@ -0,0 +1,40 @@
+From 3707f467f9a26a7df3d41385023b43c3d08911d2 Mon Sep 17 00:00:00 2001
+From: Manjukumar Matha <manjukumar.harthikote-matha@xilinx.com>
+Date: Tue, 12 Feb 2019 17:46:52 -0800
+Subject: [PATCH][v3] CMakeLists.txt: Use SWIG_SUPPORT_FILES to find the list
+ of generated files for cmake version 3.12 or higher
+
+Use SWIG_SUPPORT_FILES to find the list of python files generated by
+CMake Swig module and install those files. This should be applicable to
+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/src/CMakeLists.txt b/src/CMakeLists.txt
+index e19cda2..b565814 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -337,8 +337,14 @@ macro(_upm_swig_python)
+ OUTPUT_NAME _pyupm_${libname}
+ LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_PYTHON_BINARY_DIR})
+
++ if (CMAKE_VERSION VERSION_LESS "3.12")
++ set(support_files ${swig_extra_generated_files})
++ else()
++ get_property(support_files TARGET _${python_wrapper_name} PROPERTY SWIG_SUPPORT_FILES)
++ endif()
++
+ # Install .py's to python packages directory/upm
+- install (FILES ${swig_extra_generated_files}
++ install (FILES ${support_files}
+ DESTINATION ${PYTHON_PACKAGES_PATH}/upm
+ COMPONENT ${CMAKE_PROJECT_NAME}-python${PYTHON_VERSION_MAJOR})
+
+--
+2.7.4
+
diff --git a/meta-oe/recipes-extended/upm/upm/0001-Replace-strncpy-with-memcpy.patch b/meta-oe/recipes-extended/upm/upm/0001-Replace-strncpy-with-memcpy.patch
deleted file mode 100644
index 4b17087ef8..0000000000
--- a/meta-oe/recipes-extended/upm/upm/0001-Replace-strncpy-with-memcpy.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From d314f26e024aaf15bf4ab22ceb98501148d0eac8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 7 May 2018 19:53:33 -0700
-Subject: [PATCH] Replace strncpy with memcpy
-
-gcc8 detects that strncpy is overwiritng the null terminating character
-the source strings are already initialized to 0 so memcpy would do the same
-job
-
-Fixes
-rn2903.c:153:5: error: 'strncpy' output may be truncated copying 16 bytes from a string of length 511 [-Werror=stringop-truncation]
- strncpy(dev->hardware_eui, dev->resp_data, RN2903_MAX_HEX_EUI64);
- ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/ecezo/ecezo.c | 2 +-
- src/rn2903/rn2903.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/ecezo/ecezo.c b/src/ecezo/ecezo.c
-index 6a195fc1..56c6dab3 100644
---- a/src/ecezo/ecezo.c
-+++ b/src/ecezo/ecezo.c
-@@ -488,7 +488,7 @@ int ecezo_send_command(const ecezo_context dev, char *cmd, char *buffer,
- // our write buffer
- char writeBuffer[ECEZO_MAX_BUFFER_LEN];
-
-- strncpy(writeBuffer, cmd, ECEZO_MAX_BUFFER_LEN);
-+ memcpy(writeBuffer, cmd, ECEZO_MAX_BUFFER_LEN-1);
- writeBuffer[ECEZO_MAX_BUFFER_LEN - 1] = 0;
-
- int writelen = strlen(writeBuffer);
-diff --git a/src/rn2903/rn2903.c b/src/rn2903/rn2903.c
-index f30a33ae..01a011da 100644
---- a/src/rn2903/rn2903.c
-+++ b/src/rn2903/rn2903.c
-@@ -150,7 +150,7 @@ static rn2903_context _rn2903_postinit(rn2903_context dev,
- rn2903_close(dev);
- return NULL;
- }
-- strncpy(dev->hardware_eui, dev->resp_data, RN2903_MAX_HEX_EUI64);
-+ memcpy(dev->hardware_eui, dev->resp_data, RN2903_MAX_HEX_EUI64);
-
- return dev;
- }
---
-2.17.0
-
diff --git a/meta-oe/recipes-extended/upm/upm/0001-Use-stdint-types.patch b/meta-oe/recipes-extended/upm/upm/0001-Use-stdint-types.patch
new file mode 100644
index 0000000000..40856fcf0d
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-Use-stdint-types.patch
@@ -0,0 +1,139 @@
+From 5a1e731d71d577f56a2c013e4a75a8e90188e63b Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 9 Jul 2019 05:21:59 -0700
+Subject: [PATCH] Use stdint types
+
+Fixes compilation with musl.
+
+Upstream-Status: Pending
+
+Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
+---
+ src/bma250e/bma250e.cxx | 16 ++++++++--------
+ src/bmg160/bmg160.cxx | 10 +++++-----
+ src/bmi160/bosch_bmi160.h | 2 +-
+ src/bmm150/bmm150.cxx | 8 ++++----
+ 4 files changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/src/bma250e/bma250e.cxx b/src/bma250e/bma250e.cxx
+index a8792782..1b3ecdd8 100644
+--- a/src/bma250e/bma250e.cxx
++++ b/src/bma250e/bma250e.cxx
+@@ -195,35 +195,35 @@ BMA250E::BMA250E(std::string initStr) : mraaIo(initStr)
+ fifoConfig(mode, axes);
+ }
+ if(tok.substr(0, 20) == "setInterruptEnable0:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(20), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(20), nullptr, 0);
+ setInterruptEnable0(bits);
+ }
+ if(tok.substr(0, 20) == "setInterruptEnable1:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(20), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(20), nullptr, 0);
+ setInterruptEnable1(bits);
+ }
+ if(tok.substr(0, 20) == "setInterruptEnable2:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(20), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(20), nullptr, 0);
+ setInterruptEnable2(bits);
+ }
+ if(tok.substr(0, 17) == "setInterruptMap0:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(17), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(17), nullptr, 0);
+ setInterruptMap0(bits);
+ }
+ if(tok.substr(0, 17) == "setInterruptMap1:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(17), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(17), nullptr, 0);
+ setInterruptMap1(bits);
+ }
+ if(tok.substr(0, 17) == "setInterruptMap2:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(17), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(17), nullptr, 0);
+ setInterruptMap2(bits);
+ }
+ if(tok.substr(0, 16) == "setInterruptSrc:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(16), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(16), nullptr, 0);
+ setInterruptSrc(bits);
+ }
+ if(tok.substr(0, 26) == "setInterruptOutputControl:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(26), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(26), nullptr, 0);
+ setInterruptOutputControl(bits);
+ }
+ if(tok.substr(0, 26) == "setInterruptLatchBehavior:") {
+diff --git a/src/bmg160/bmg160.cxx b/src/bmg160/bmg160.cxx
+index 1a0939f8..2438c399 100644
+--- a/src/bmg160/bmg160.cxx
++++ b/src/bmg160/bmg160.cxx
+@@ -173,23 +173,23 @@ BMG160::BMG160(std::string initStr) : mraaIo(initStr)
+ fifoConfig(mode, axes);
+ }
+ if(tok.substr(0, 20) == "setInterruptEnable0:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(20), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(20), nullptr, 0);
+ setInterruptEnable0(bits);
+ }
+ if(tok.substr(0, 17) == "setInterruptMap0:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(17), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(17), nullptr, 0);
+ setInterruptMap0(bits);
+ }
+ if(tok.substr(0, 17) == "setInterruptMap1:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(17), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(17), nullptr, 0);
+ setInterruptMap1(bits);
+ }
+ if(tok.substr(0, 16) == "setInterruptSrc:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(16), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(16), nullptr, 0);
+ setInterruptSrc(bits);
+ }
+ if(tok.substr(0, 26) == "setInterruptOutputControl:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(26), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(26), nullptr, 0);
+ setInterruptOutputControl(bits);
+ }
+ if(tok.substr(0, 26) == "setInterruptLatchBehavior:") {
+diff --git a/src/bmi160/bosch_bmi160.h b/src/bmi160/bosch_bmi160.h
+index 87ca2249..cd9efe6f 100644
+--- a/src/bmi160/bosch_bmi160.h
++++ b/src/bmi160/bosch_bmi160.h
+@@ -81,7 +81,7 @@ typedef int16_t s16;/**< used for signed 16bit */
+ typedef int32_t s32;/**< used for signed 32bit */
+ typedef int64_t s64;/**< used for signed 64bit */
+
+-typedef u_int8_t u8;/**< used for unsigned 8bit */
++typedef uint8_t u8;/**< used for unsigned 8bit */
+ typedef u_int16_t u16;/**< used for unsigned 16bit */
+ typedef u_int32_t u32;/**< used for unsigned 32bit */
+ typedef u_int64_t u64;/**< used for unsigned 64bit */
+diff --git a/src/bmm150/bmm150.cxx b/src/bmm150/bmm150.cxx
+index 234ebf92..02436788 100644
+--- a/src/bmm150/bmm150.cxx
++++ b/src/bmm150/bmm150.cxx
+@@ -170,19 +170,19 @@ BMM150::BMM150(std::string initStr) : mraaIo(initStr)
+ setOpmode(opmode);
+ }
+ if(tok.substr(0, 19) == "setInterruptEnable:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(19), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(19), nullptr, 0);
+ setInterruptEnable(bits);
+ }
+ if(tok.substr(0, 19) == "setInterruptConfig:") {
+- u_int8_t bits = (u_int8_t)std::stoul(tok.substr(19), nullptr, 0);
++ uint8_t bits = (uint8_t)std::stoul(tok.substr(19), nullptr, 0);
+ setInterruptConfig(bits);
+ }
+ if(tok.substr(0, 17) == "setRepetitionsXY:") {
+- u_int8_t reps = (u_int8_t)std::stoul(tok.substr(17), nullptr, 0);
++ uint8_t reps = (uint8_t)std::stoul(tok.substr(17), nullptr, 0);
+ setRepetitionsXY(reps);
+ }
+ if(tok.substr(0, 16) == "setRepetitionsZ:") {
+- u_int8_t reps = (u_int8_t)std::stoul(tok.substr(16), nullptr, 0);
++ uint8_t reps = (uint8_t)std::stoul(tok.substr(16), nullptr, 0);
+ setRepetitionsZ(reps);
+ }
+ if(tok.substr(0, 14) == "setPresetMode:") {
diff --git a/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-Wno-misleading-indentation-with-clang-.patch b/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-Wno-misleading-indentation-with-clang-.patch
new file mode 100644
index 0000000000..68b73bc2cc
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-Wno-misleading-indentation-with-clang-.patch
@@ -0,0 +1,33 @@
+From d41e2bef1c39dcbc4896b1dd7ab168da530672b5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 30 Dec 2019 13:33:39 -0800
+Subject: [PATCH] cmake: Disable -Wno-misleading-indentation with clang-10 onwards
+
+clang also introduced this warning now
+
+Upstream-Status: Submitted [https://github.com/eclipse/upm/pull/693]
+
+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 069e4902..47c7f4c3 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -99,6 +99,11 @@ if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_
+ list (APPEND C_CXX_WARNING_FLAGS -Wno-misleading-indentation)
+ endif ()
+
++# clang-10 added -Wmisleading-indentation as well, skipp it too
++if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER "9")
++ list (APPEND C_CXX_WARNING_FLAGS -Wno-misleading-indentation)
++endif ()
++
+ # Warnings as errors?
+ if (WERROR)
+ list (APPEND C_CXX_WARNING_FLAGS -Werror)
+--
+2.24.1
+
diff --git a/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch b/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch
new file mode 100644
index 0000000000..2f581855f5
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-cmake-Disable-using-Wno-maybe-uninitialized.patch
@@ -0,0 +1,37 @@
+From 169f62770f63a43b15d4d4c82336fd57c8467cfe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 4 Apr 2020 21:43:51 -0700
+Subject: [PATCH] cmake: Disable using -Wno-maybe-uninitialized
+
+This warning causes clang builds to fail because this is not a
+recognised warning with clang
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -6,7 +6,6 @@
+ set (SWIG_CXX_DISABLE_WARNINGS -Wno-error
+ -Wno-delete-non-virtual-dtor
+ -Wno-unused-function
+- -Wno-maybe-uninitialized
+ -Wno-strict-aliasing)
+
+ # If building under android, make sure swig gets an ANDROID flag
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -115,8 +115,7 @@ endif (WERROR)
+ upm_add_compile_flags(C ${C_CXX_WARNING_FLAGS}
+ -Winit-self
+ -Wimplicit
+- -Wsign-compare
+- -Wmissing-parameter-type)
++ -Wsign-compare)
+
+ # Set CXX compiler warning flags at top-level scope and emit a warning about
+ # unsupported flags
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/0001-initialize-local-variables-before-use.patch b/meta-oe/recipes-extended/upm/upm/0001-initialize-local-variables-before-use.patch
new file mode 100644
index 0000000000..f9fae1641d
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-initialize-local-variables-before-use.patch
@@ -0,0 +1,57 @@
+From cce8be3966b602cf7e20d559e50fcf493b9b42cc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 23 Dec 2019 18:13:21 -0800
+Subject: [PATCH] initialize local variables before use
+
+fixes
+error: 'ctrl_reg2_data' may be used uninitialized in this function [-Werror=maybe-uninitialized]
+
+Upstream-Status: Submitted [https://github.com/eclipse/upm/pull/693]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/kxtj3/kxtj3.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/src/kxtj3/kxtj3.c b/src/kxtj3/kxtj3.c
+index a6f3c4f8..050ae585 100755
+--- a/src/kxtj3/kxtj3.c
++++ b/src/kxtj3/kxtj3.c
+@@ -715,7 +715,7 @@ upm_result_t kxtj3_sensor_software_reset(const kxtj3_context dev)
+ if (kxtj3_set_bit_on(dev, KXTJ3_CTRL_REG2, KXTJ3_CTRL_REG2_SRST) != UPM_SUCCESS)
+ return UPM_ERROR_OPERATION_FAILED;
+
+- uint8_t ctrl_reg2_data;
++ uint8_t ctrl_reg2_data = 0;
+ kxtj3_read_register(dev, KXTJ3_CTRL_REG2, &ctrl_reg2_data);
+
+ uint8_t srst_counter = 0;
+@@ -824,7 +824,7 @@ upm_result_t kxtj3_enable_interrupt_pin(const kxtj3_context dev, KXTJ3_INTERRUPT
+ KXTJ3_INTERRUPT_RESPONSE_T response_type)
+ {
+ assert(dev != NULL);
+- uint8_t int_reg_value;
++ uint8_t int_reg_value = 0;
+ kxtj3_read_register(dev, KXTJ3_INT_CTRL_REG1, &int_reg_value);
+
+ if (polarity)
+@@ -865,7 +865,7 @@ upm_result_t kxtj3_set_interrupt_response(const kxtj3_context dev, KXTJ3_INTERRU
+ bool kxtj3_get_interrupt_status(const kxtj3_context dev)
+ {
+ assert(dev != NULL);
+- uint8_t status_reg_value;
++ uint8_t status_reg_value = 0;
+ kxtj3_read_register(dev, KXTJ3_STATUS_REG, &status_reg_value);
+ if (!(status_reg_value & KXTJ3_STATUS_REG_INT))
+ return false;
+@@ -955,7 +955,7 @@ kxtj3_wakeup_axes kxtj3_get_wakeup_axis_and_direction(kxtj3_context dev)
+ {
+ assert(dev != NULL);
+
+- uint8_t int_source2_value;
++ uint8_t int_source2_value = 0;
+ kxtj3_read_register(dev, KXTJ3_INT_SOURCE2, &int_source2_value);
+
+ kxtj3_wakeup_axes wakeup_axis;
+--
+2.24.1
+
diff --git a/meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch b/meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch
new file mode 100644
index 0000000000..c16b8dbc5a
--- /dev/null
+++ b/meta-oe/recipes-extended/upm/upm/0001-nmea_gps-Link-with-latomic.patch
@@ -0,0 +1,27 @@
+From 996d37fc0b7177ee57788399b9140032d5de2765 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 18 Nov 2019 15:50:02 -0800
+Subject: [PATCH] nmea_gps: Link with latomic
+
+clang/x86 ends up with missing symbols for atomics due to atomic<double>
+with libstdc++, it works ok with libc++
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/nmea_gps/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/nmea_gps/CMakeLists.txt b/src/nmea_gps/CMakeLists.txt
+index b3fb6591..5280bfed 100644
+--- a/src/nmea_gps/CMakeLists.txt
++++ b/src/nmea_gps/CMakeLists.txt
+@@ -6,4 +6,4 @@ upm_mixed_module_init (NAME nmea_gps
+ CPP_SRC nmea_gps.cxx
+ FTI_SRC nmea_gps_fti.c
+ CPP_WRAPS_C
+- REQUIRES mraa utilities-c ${CMAKE_THREAD_LIBS_INIT})
++ REQUIRES mraa utilities-c atomic ${CMAKE_THREAD_LIBS_INIT})
+--
+2.24.0
+
diff --git a/meta-oe/recipes-extended/upm/upm_git.bb b/meta-oe/recipes-extended/upm/upm_git.bb
index 478aa0db1d..0695f99695 100644
--- a/meta-oe/recipes-extended/upm/upm_git.bb
+++ b/meta-oe/recipes-extended/upm/upm_git.bb
@@ -7,44 +7,55 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=66493d54e65bfc12c7983ff2e884f37f"
DEPENDS = "libjpeg-turbo mraa"
-SRCREV = "37642f3b0194f6ddd63f1e6b5d49b8cb689d5c81"
-PV = "1.6.0-git${SRCPV}"
+SRCREV = "5cf20df96c6b35c19d5b871ba4e319e96b4df72d"
+PV = "2.0.0+git${SRCPV}"
-SRC_URI = " \
- git://github.com/intel-iot-devkit/${BPN}.git;protocol=http \
- file://0001-Replace-strncpy-with-memcpy.patch \
-"
+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 "
S = "${WORKDIR}/git"
# Depends on mraa which only supports x86 and ARM for now
COMPATIBLE_HOST = "(x86_64.*|i.86.*|aarch64.*|arm.*)-linux"
-inherit distutils3-base cmake
+inherit setuptools3-base cmake pkgconfig
+EXTRA_OECMAKE += "-UPYTHON_EXECUTABLE -DWERROR=off"
# override this in local.conf to get needed bindings.
-# BINDINGS_pn-upm="python"
+# BINDINGS:pn-upm="python"
# will result in only the python bindings being built/packaged.
# Note: 'nodejs' is disabled by default because the bindings
# generation currently fails with nodejs (>v7.x).
BINDINGS ??= "python"
# nodejs isn't available for armv4/armv5 architectures
-BINDINGS_armv4 ??= "python"
-BINDINGS_armv5 ??= "python"
+BINDINGS:armv4 ??= "python"
+BINDINGS:armv5 ??= "python"
PACKAGECONFIG ??= "${@bb.utils.contains('PACKAGES', 'node-${PN}', 'nodejs', '', d)} \
${@bb.utils.contains('PACKAGES', '${PYTHON_PN}-${PN}', 'python', '', d)}"
-PACKAGECONFIG[python] = "-DBUILDSWIGPYTHON=ON, -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 ${PYTHON_PN},"
PACKAGECONFIG[nodejs] = "-DBUILDSWIGNODE=ON, -DBUILDSWIGNODE=OFF, swig-native nodejs-native,"
-FILES_${PYTHON_PN}-${PN} = "${PYTHON_SITEPACKAGES_DIR}"
-RDEPENDS_${PYTHON_PN}-${PN} += "${PYTHON_PN}"
+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_node-${PN} = "${prefix}/lib/node_modules/"
-RDEPENDS_node-${PN} += "nodejs"
+FILES:node-${PN} = "${prefix}/lib/node_modules/"
+RDEPENDS:node-${PN} += "nodejs"
### Include desired language bindings ###
PACKAGES =+ "${@bb.utils.contains('BINDINGS', 'nodejs', 'node-${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 259d3a5e16..a374041934 100644
--- a/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
+++ b/meta-oe/recipes-extended/vlock/vlock_2.2.3.bb
@@ -6,7 +6,7 @@ DESCRIPTION = "Sometimes a malicious local user could cause more problems \
"
SECTION = "utils"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=a17cb0a873d252440acfdf9b3d0e7fbf"
SRC_URI = "${GENTOO_MIRROR}/${BP}.tar.gz \
@@ -47,13 +47,13 @@ do_configure () {
${PACKAGECONFIG_CONFARGS}
}
-do_install_append () {
+do_install:append () {
if [ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', '', d)} = yes ]; then
install -d -m 0755 ${D}/${sysconfdir}/pam.d
install -m 0644 ${WORKDIR}/vlock_pam ${D}${sysconfdir}/pam.d/vlock
fi
}
-ALTERNATIVE_${PN} = "vlock"
+ALTERNATIVE:${PN} = "vlock"
ALTERNATIVE_PRIORITY = "60"
ALTERNATIVE_LINK_NAME[vlock] = "${bindir}/vlock"
diff --git a/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch b/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch
deleted file mode 100644
index 03edb13909..0000000000
--- a/meta-oe/recipes-extended/volume_key/files/0001-explicitly-support-python3-by-pkg-config.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 18415c0b4c6e50ed9b99dfdae8d210590d0ab72e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 28 Apr 2017 04:50:30 -0400
-Subject: [PATCH] explicitly support python3 by pkg-config
-
-The PYTHON_CPPFLAGS and -lpython$(PYTHON_VERSION) is hardcoded,
-use pkg-config to replace
-
-Upstream-Status: Inappropriate [wr-installer specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- Makefile.am | 5 ++---
- configure.ac | 2 ++
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 4569bbf..7a8daf4 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -20,7 +20,6 @@ ACLOCAL_AMFLAGS = -I m4
- AM_CPPFLAGS = $(blkid_CFLAGS) $(glib_CFLAGS) $(GPGME_CFLAGS) \
- $(libcryptsetup_CFLAGS) $(nss_CFLAGS)
- LOCALEDIR_CPPFLAGS = -DLOCALEDIR='"$(localedir)"'
--PYTHON_CPPFLAGS = -I/usr/include/python$(PYTHON_VERSION)
-
- ## Targets
- SUBDIRS = po
-@@ -63,9 +62,9 @@ lib_libvolume_key_la_LIBADD = $(blkid_LIBS) $(glib_LIBS) $(GPGME_LIBS) \
- $(LTLIBINTL) $(libcryptsetup_LIBS) $(nss_LIBS)
-
- python__volume_key_la_SOURCES = python/volume_key_wrap.c
--python__volume_key_la_CPPFLAGS = $(AM_CPPFLAGS) $(PYTHON_CPPFLAGS)
-+python__volume_key_la_CPPFLAGS = $(AM_CPPFLAGS) $(python3_CFLAGS)
- python__volume_key_la_LDFLAGS = -module -avoid-version $(glib_LIBS)
--python__volume_key_la_LIBADD = lib/libvolume_key.la -lpython$(PYTHON_VERSION) \
-+python__volume_key_la_LIBADD = lib/libvolume_key.la $(python3_LIBS) \
- $(glib_LIBS) $(nss_LIBS)
-
- src_volume_key_SOURCES = src/volume_key.c
-diff --git a/configure.ac b/configure.ac
-index ff35dd0..0928a6c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -27,6 +27,8 @@ AM_INIT_AUTOMAKE([no-dist-gzip dist-xz no-define subdir-objects -Wall])
- AC_PROG_CC
- AM_PROG_CC_C_O
- LT_INIT([disable-static])
-+
-+PKG_CHECK_MODULES(python3, [python3])
- AM_PATH_PYTHON
-
- dnl Not gpg2, it cannot receive passphrases from gpgme
---
-2.8.1
-
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
new file mode 100644
index 0000000000..aff555ad54
--- /dev/null
+++ b/meta-oe/recipes-extended/volume_key/volume-key_0.3.12.bb
@@ -0,0 +1,38 @@
+DESCRIPTION = "The volume_key project provides a libvolume_key, a library for manipulating \
+storage volume encryption keys and storing them separately from volumes, and an \
+associated command-line tool, named volume_key."
+LICENSE = "GPL-2.0-only"
+SECTION = "devel/lib"
+
+HOMEPAGE = "https://pagure.io/volume_key"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "https://releases.pagure.org/volume_key/volume_key-${PV}.tar.xz \
+"
+SRC_URI[md5sum] = "200591290173c3ea71528411838f9080"
+SRC_URI[sha256sum] = "6ca3748fc1dad22c450bbf6601d4e706cb11c5e662d11bb4aeb473a9cd77309b"
+
+SRCNAME = "volume_key"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit autotools python3native python3targetconfig gettext pkgconfig
+
+DEPENDS += " \
+ util-linux \
+ glib-2.0 \
+ cryptsetup \
+ nss \
+ gpgme \
+ swig-native \
+"
+
+PACKAGECONFIG ??= "python3"
+PACKAGECONFIG[python3] = "--with-python3,--without-python3,python3,python3"
+
+EXTRA_OECONF = "--without-python"
+
+RDEPENDS:python3-${BPN} += "${PN}"
+
+PACKAGES += "python3-${BPN}"
+FILES:python3-${BPN} = "${PYTHON_SITEPACKAGES_DIR}/*"
diff --git a/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb b/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb
deleted file mode 100644
index febf3f256d..0000000000
--- a/meta-oe/recipes-extended/volume_key/volume-key_0.3.9.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "The volume_key project provides a libvolume_key, a library for manipulating \
-storage volume encryption keys and storing them separately from volumes, and an \
-associated command-line tool, named volume_key."
-LICENSE = "GPLv2"
-SECTION = "devel/lib"
-
-HOMEPAGE = "https://pagure.io/volume_key"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "https://releases.pagure.org/volume_key/volume_key-${PV}.tar.xz \
- file://0001-explicitly-support-python3-by-pkg-config.patch \
-"
-SRC_URI[md5sum] = "a2d14931177c660e1f3ebbcf5f47d8e2"
-SRC_URI[sha256sum] = "450a54fe9bf56acec6850c1e71371d3e4913c9ca1ef0cdc3a517b4b6910412a6"
-
-SRCNAME = "volume_key"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit autotools python3native gettext
-
-DEPENDS += " \
- util-linux \
- glib-2.0 \
- cryptsetup \
- nss \
- gpgme \
-"
-
-RDEPENDS_python3-${PN} += "${PN}"
-
-PACKAGES += "python3-${PN}"
-FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/*"
-
diff --git a/meta-oe/recipes-extended/wipe/wipe_0.24.bb b/meta-oe/recipes-extended/wipe/wipe_0.24.bb
new file mode 100644
index 0000000000..ad32cb0e72
--- /dev/null
+++ b/meta-oe/recipes-extended/wipe/wipe_0.24.bb
@@ -0,0 +1,26 @@
+SUMMARY = "A UNIX tool for secure deletion"
+DESCRIPTION = "Wipe is a little command for securely erasing files from \
+magnetic media. It compiles under various unix platforms, \
+including Linux 2. * , (Open, Net, Free)BSD, aix 4.1, SunOS \
+5.5.1, Solaris 2.6. wipe is released under the GPL. Pre-compiled \
+packages are available on most Linux distributions. \
+Under Debian, the package name is wipe"
+HOMEPAGE = "http://lambda-diode.com/software/wipe/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "git://github.com/berke/wipe.git;branch=master;protocol=https \
+ file://support-cross-compile-for-linux.patch \
+ file://makefile-add-ldflags.patch \
+"
+SRCREV = "796b62293e007546e051619bd03f5ba338ef28e5"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "linux"
+
+do_install() {
+ make install DESTDIR=${D}
+}
+
+do_configure[noexec] = "1"
diff --git a/meta-oe/recipes-extended/wipe/wipe_git.bb b/meta-oe/recipes-extended/wipe/wipe_git.bb
deleted file mode 100644
index 9a8101621b..0000000000
--- a/meta-oe/recipes-extended/wipe/wipe_git.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A UNIX tool for secure deletion"
-DESCRIPTION = "Wipe is a little command for securely erasing files from \
-magnetic media. It compiles under various unix platforms, \
-including Linux 2. * , (Open, Net, Free)BSD, aix 4.1, SunOS \
-5.5.1, Solaris 2.6. wipe is released under the GPL. Pre-compiled \
-packages are available on most Linux distributions. \
-Under Debian, the package name is wipe"
-HOMEPAGE = "http://lambda-diode.com/software/wipe/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
-
-SRC_URI = "git://github.com/berke/wipe.git;branch=master \
- file://support-cross-compile-for-linux.patch \
- file://makefile-add-ldflags.patch \
-"
-SRCREV = "d9c100c9cd0b1cbbe4359e4d6c9a035d11e7597c"
-PV = "0.23+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OEMAKE = "linux"
-
-do_install() {
- make install DESTDIR=${D}
-}
-
-do_configure[noexec] = "1"
diff --git a/meta-oe/recipes-extended/wtmpdb/files/0001-remove-lto-to-fix-link-error-of-clang.patch b/meta-oe/recipes-extended/wtmpdb/files/0001-remove-lto-to-fix-link-error-of-clang.patch
new file mode 100644
index 0000000000..ef188e7a15
--- /dev/null
+++ b/meta-oe/recipes-extended/wtmpdb/files/0001-remove-lto-to-fix-link-error-of-clang.patch
@@ -0,0 +1,31 @@
+From 9840939789dec9153150e8f9ae34de4171a5c15e Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Wed, 19 Jul 2023 07:31:32 +0000
+Subject: [PATCH] remove lto to fix link error of clang
+
+error message:
+| tests/tst-dlopen.p/tst-dlopen.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 6fe8045..166a15b 100644
+--- a/meson.build
++++ b/meson.build
+@@ -28,7 +28,6 @@ add_project_arguments(['-D_GNU_SOURCE=1',
+ '-D_TIME_BITS=64'], 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/wtmpdb/wtmpdb_0.7.1.bb b/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.7.1.bb
new file mode 100644
index 0000000000..cffae2d432
--- /dev/null
+++ b/meta-oe/recipes-extended/wtmpdb/wtmpdb_0.7.1.bb
@@ -0,0 +1,36 @@
+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 = "502b19a41c7a3b1b5e70969b18088683825f71f8"
+
+SRC_URI = "git://github.com/thkukuk/wtmpdb.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} = "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/0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch
new file mode 100644
index 0000000000..b3b9e79c53
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/0001-wx-config.in-Disable-cross-magic-it-does-not-work-fo.patch
@@ -0,0 +1,35 @@
+From a071243763f4b06fc7e71f541c49cecf380b6f27 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 11 Oct 2020 22:16:55 +0200
+Subject: [PATCH] wx-config.in: Disable cross magic - it does not work for us
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+E.g 'wx-config --libs' appends a '-Linux' to all libraries (e.g
+-lwx_gtk3u_xrc-3.1 is reported as -lwx_gtk3u_xrc-3.1-Linux) which is wrong and
+make projects depending on wxwidgets fail.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ wx-config.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/wx-config.in b/wx-config.in
+index d132e3182f..d0d162e8a3 100755
+--- a/wx-config.in
++++ b/wx-config.in
+@@ -396,7 +396,7 @@ get_mask()
+ }
+
+ # Returns true if this script is for a cross compiled config.
+-is_cross() { [ "x@cross_compiling@" = "xyes" ]; }
++is_cross() { [ "xno" = "xyes" ]; }
+
+
+ # Determine the base directories we require.
+--
+2.26.2
+
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
new file mode 100644
index 0000000000..ea204ed3b1
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/fix-libdir-for-multilib.patch
@@ -0,0 +1,107 @@
+wxWidgets hardcodes libdir with 'lib' and does not support multilib which will
+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 | 4 ++--
+ build/cmake/install.cmake | 12 ++++++------
+ 4 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index a49ecd3883..d469471f38 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -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${LIB_SUFFIX})
+
+ # parse the version number from wx/version.h and include in wxMAJOR_VERSION and wxMINOR_VERSION
+ 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 b359560bc0..c59ea60923 100644
+--- a/build/cmake/config.cmake
++++ b/build/cmake/config.cmake
+@@ -76,7 +76,7 @@ function(wx_write_config_inplace)
+ execute_process(
+ COMMAND
+ "${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 7182364e5e..55fbebc7ee 100644
+--- a/build/cmake/functions.cmake
++++ b/build/cmake/functions.cmake
+@@ -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 384c6837b8..d3303faabb 100644
+--- a/build/cmake/install.cmake
++++ b/build/cmake/install.cmake
+@@ -29,11 +29,11 @@ if(WIN32_MSVC_NAMING)
+ else()
+ install(
+ DIRECTORY "${wxSETUP_HEADER_PATH}"
+- DESTINATION "lib/wx/include")
++ DESTINATION "lib${LIB_SUFFIX}/wx/include")
+
+ install(
+ FILES "${wxOUTPUT_DIR}/wx/config/${wxBUILD_FILE_ID}"
+- DESTINATION "lib/wx/config"
++ DESTINATION "lib${LIB_SUFFIX}/wx/config"
+ PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
+ GROUP_EXECUTE GROUP_READ
+ WORLD_EXECUTE WORLD_READ
+@@ -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${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
new file mode 100644
index 0000000000..6329256b0c
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/not-append-system-name-to-lib-name.patch
@@ -0,0 +1,32 @@
+It appends system name to library names for cross compile. For example, the
+library name is libwx_baseu-3.1-Linux.so rather than libwx_baseu-3.1.so. It is
+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 e374d9a273..c6b1908bd6 100644
+--- a/build/cmake/functions.cmake
++++ b/build/cmake/functions.cmake
+@@ -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(lib_prefix "lib")
+ if(MSVC OR (WIN32 AND wxBUILD_SHARED))
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
new file mode 100644
index 0000000000..628f8dee56
--- /dev/null
+++ b/meta-oe/recipes-extended/wxwidgets/wxwidgets/wx-config-fix-libdir-for-multilib.patch
@@ -0,0 +1,60 @@
+It sets 'libdir' with path element 'lib' directly which is not suitable for
+multilib. Add an option '--baselib' for wx-config to support multilib when
+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 ++++--
+ 2 files changed, 5 insertions(+), 3 deletions(-)
+
+diff --git a/build/cmake/config.cmake b/build/cmake/config.cmake
+index 52ae69d3f6..28aa733eb0 100644
+--- a/build/cmake/config.cmake
++++ b/build/cmake/config.cmake
+@@ -86,7 +86,7 @@ function(wx_write_config)
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix "\${prefix}")
+ set(includedir "\${prefix}/include")
+- set(libdir "\${exec_prefix}/lib")
++ set(libdir "\${exec_prefix}/\${baselib}")
+ set(bindir "\${exec_prefix}/bin")
+
+ find_program(EGREP egrep)
+diff --git a/wx-config.in b/wx-config.in
+index e3f7d115bb..0e78af03c7 100755
+--- a/wx-config.in
++++ b/wx-config.in
+@@ -42,7 +42,8 @@ usage()
+ {
+ cat 1>&2 <<EOF
+
+- wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--release] [--version-full]
++ wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]][--baselib=DIR]
++ [--release] [--version-full]
+ [--list] [--selected-config] [--host=HOST] [--toolkit=TOOLKIT]
+ [--universal[=yes|no]] [--unicode[=yes|no]] [--static[=yes|no]]
+ [--debug[=yes|no]] [--version[=VERSION]] [--flavour=FLAVOUR]
+@@ -137,7 +138,7 @@ wxconfig_output_options="prefix exec_prefix
+
+ # Options that permit the user to supply hints that may affect the output.
+ # These options all accept arbitrary values, to interpret as they please.
+-wxconfig_input_options="prefix exec_prefix utility $wxconfig_schema"
++wxconfig_input_options="prefix exec_prefix baselib utility $wxconfig_schema"
+
+ # Input options that accept only a yes or no argument.
+ #
+@@ -404,6 +405,7 @@ is_cross() { [ "x@cross_compiling@" = "xyes" ]; }
+ # 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${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.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/zlog/zlog/0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch b/meta-oe/recipes-extended/zlog/zlog/0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch
deleted file mode 100644
index 71a989103e..0000000000
--- a/meta-oe/recipes-extended/zlog/zlog/0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From b97f62fdf3b78eb5cfcb3a1b12c6fd62f735717b Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 15 Jul 2017 09:29:33 -0700
-Subject: [PATCH] event.c: Cast pthread_t to unsigned long instead of unsigned
- int
-
-On 64bit machines it ends up in errors
-
-event.c:85:67: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
- a_event->tid_hex_str_len = sprintf(a_event->tid_hex_str, "0x%x", (unsigned int)a_event->tid);
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/event.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/event.c b/src/event.c
-index 8f988b5..c632c33 100644
---- a/src/event.c
-+++ b/src/event.c
-@@ -82,7 +82,7 @@ zlog_event_t *zlog_event_new(int time_cache_count)
- a_event->tid = pthread_self();
-
- a_event->tid_str_len = sprintf(a_event->tid_str, "%lu", (unsigned long)a_event->tid);
-- a_event->tid_hex_str_len = sprintf(a_event->tid_hex_str, "0x%x", (unsigned int)a_event->tid);
-+ a_event->tid_hex_str_len = sprintf(a_event->tid_hex_str, "0x%lu", (unsigned long)a_event->tid);
-
- //zlog_event_profile(a_event, ZC_DEBUG);
- return a_event;
---
-2.13.3
-
diff --git a/meta-oe/recipes-extended/zlog/zlog_1.2.16.bb b/meta-oe/recipes-extended/zlog/zlog_1.2.16.bb
new file mode 100644
index 0000000000..b75802f09f
--- /dev/null
+++ b/meta-oe/recipes-extended/zlog/zlog_1.2.16.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Zlog is a pure C logging library"
+HOMEPAGE = "https://github.com/HardySimpson/zlog"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRCREV = "dc2c284664757fce6ef8f96f8b3ab667a53ef489"
+SRC_URI = "git://github.com/HardySimpson/zlog;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE = "CC='${CC}' LD='${LD}' LIBRARY_PATH=${baselib}"
+
+do_install() {
+ oe_runmake install PREFIX=${D}${exec_prefix} INSTALL=install
+}
diff --git a/meta-oe/recipes-extended/zlog/zlog_git.bb b/meta-oe/recipes-extended/zlog/zlog_git.bb
deleted file mode 100644
index 86e6d30e22..0000000000
--- a/meta-oe/recipes-extended/zlog/zlog_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Zlog is a pure C logging library"
-HOMEPAGE = "https://github.com/HardySimpson/zlog"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-PV = "1.2.12+git${SRCPV}"
-
-SRCREV = "13904dab2878aa2654d0c20fb8600a3dc5f2dd68"
-SRC_URI = "git://github.com/HardySimpson/zlog \
- file://0001-event.c-Cast-pthread_t-to-unsigned-long-instead-of-u.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit pkgconfig
-
-EXTRA_OEMAKE = "CC='${CC}' LD='${LD}'"
-
-do_install() {
- oe_runmake install PREFIX=${D}${exec_prefix} INSTALL=install
-}
diff --git a/meta-oe/recipes-extended/zram/zram/dev-zram0.swap b/meta-oe/recipes-extended/zram/zram/dev-zram0.swap
new file mode 100644
index 0000000000..05eae7eedb
--- /dev/null
+++ b/meta-oe/recipes-extended/zram/zram/dev-zram0.swap
@@ -0,0 +1,10 @@
+[Unit]
+Description=Enable compressed swap in memory using zram
+Requires=zram-swap.service
+After=zram-swap.service
+
+[Swap]
+What=/dev/zram0
+
+[Install]
+WantedBy=swap.target
diff --git a/meta-oe/recipes-extended/zram/zram/zram-swap-deinit b/meta-oe/recipes-extended/zram/zram/zram-swap-deinit
new file mode 100755
index 0000000000..46248c401b
--- /dev/null
+++ b/meta-oe/recipes-extended/zram/zram/zram-swap-deinit
@@ -0,0 +1,19 @@
+#!/bin/sh
+set -e
+
+device=$1
+if [ "$device" = "" ]; then
+ echo "Usage: zram-swap-deinit <device>"
+ exit 1
+fi
+
+sysblockdev=/sys/block/$(basename $device)
+if [ ! -d $sysblockdev ]; then
+ echo "Block device not found in sysfs"
+ exit 1
+fi
+
+# zramctl -r is not suitable as it also removes the actual device. Recreating
+# it is non-trivial, especially if not /dev/zram0 is used...
+echo 1 > ${sysblockdev}/reset
+
diff --git a/meta-oe/recipes-extended/zram/zram/zram-swap-init b/meta-oe/recipes-extended/zram/zram/zram-swap-init
new file mode 100755
index 0000000000..28082f7ff0
--- /dev/null
+++ b/meta-oe/recipes-extended/zram/zram/zram-swap-init
@@ -0,0 +1,31 @@
+#!/bin/sh
+set -e
+
+device=$1
+if [ "$device" = "" ]; then
+ echo "Usage: zram-swap-init <device>"
+ exit 1
+fi
+
+# Allocate zram to be size of actual system memory
+# Note: zram is only allocated when used. When swapped pages compress with a
+# a 2:1 ratio zram will require 50% of system memory (while allowing to use
+# 150% memory).
+ZRAM_SIZE_PERCENT=100
+ZRAM_ALGORITHM=lz4
+
+[ -f /etc/default/zram ] && . /etc/default/zram || true
+
+memtotal=$(grep MemTotal /proc/meminfo | awk ' { print $2 } ')
+memzram=$(($memtotal*${ZRAM_SIZE_PERCENT}/100))
+
+# Try loading zram module
+modprobe -q zram || true
+
+zramctl -a ${ZRAM_ALGORITHM} -s ${memzram}KB $device
+mkswap -L "zram-swap" $device
+
+devname="${device##*/}"
+if [ ! -z ${ZRAM_SIZE_LIMIT+x} ]; then
+ echo ${ZRAM_SIZE_LIMIT} > /sys/block/$devname/mem_limit
+fi
diff --git a/meta-oe/recipes-extended/zram/zram/zram-swap.service b/meta-oe/recipes-extended/zram/zram/zram-swap.service
new file mode 100644
index 0000000000..a4dc9514e6
--- /dev/null
+++ b/meta-oe/recipes-extended/zram/zram/zram-swap.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Create compressed swap in memory using zram
+DefaultDependencies=no
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+TimeoutStartSec=30sec
+ExecStart=@LIBEXECDIR@/zram-swap-init /dev/zram0
+ExecStop=@LIBEXECDIR@/zram-swap-deinit /dev/zram0
diff --git a/meta-oe/recipes-extended/zram/zram/zram.service b/meta-oe/recipes-extended/zram/zram/zram.service
deleted file mode 100644
index 4a19367d93..0000000000
--- a/meta-oe/recipes-extended/zram/zram/zram.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Enable zram compressed in-memory swap.
-After=multi-user.target
-
-[Service]
-RemainAfterExit=yes
-ExecStart=/usr/bin/zram-load.sh --load
-ExecStop=/usr/bin/zram-load.sh --unload
-Type=oneshot
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-oe/recipes-extended/zram/zram/zramstop b/meta-oe/recipes-extended/zram/zram/zramstop
new file mode 100644
index 0000000000..07777978ed
--- /dev/null
+++ b/meta-oe/recipes-extended/zram/zram/zramstop
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+for i in $(grep '^/dev/zram' /proc/swaps | awk '{ print $1 }'); do
+ swapoff "$i" && zramctl --reset "$i"
+done
diff --git a/meta-oe/recipes-extended/zram/zram_0.1.bb b/meta-oe/recipes-extended/zram/zram_0.1.bb
deleted file mode 100644
index dfd75e71ca..0000000000
--- a/meta-oe/recipes-extended/zram/zram_0.1.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Linux zram compressed in-memory swap"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-inherit update-rc.d systemd
-
-RDEPENDS_${PN} = "util-linux-swaponoff kmod"
-RRECOMMENDS_${PN} = "kernel-module-zram"
-
-PR = "r3"
-
-SRC_URI = " \
- file://init \
- file://zram.service \
-"
-
-do_install () {
- # Sysvinit
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/zram
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/zram.service ${D}${systemd_unitdir}/system
-}
-
-FILES_${PN} = "${sysconfdir}"
-INITSCRIPT_NAME = "zram"
-INITSCRIPT_PARAMS = "start 05 2 3 4 5 . stop 22 0 1 6 ."
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "zram.service"
diff --git a/meta-oe/recipes-extended/zram/zram_0.2.bb b/meta-oe/recipes-extended/zram/zram_0.2.bb
new file mode 100644
index 0000000000..97db34134e
--- /dev/null
+++ b/meta-oe/recipes-extended/zram/zram_0.2.bb
@@ -0,0 +1,50 @@
+SUMMARY = "Linux zram compressed in-memory swap"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
+
+inherit update-rc.d systemd
+
+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 \
+ file://zram-swap-init \
+ file://zram-swap-deinit \
+ file://zram-swap.service \
+ file://dev-zram0.swap \
+"
+
+do_install () {
+ # Install systemd related configuration file
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/zram
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ install -d ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/zram-swap-init ${D}${libexecdir}
+ install -m 0755 ${WORKDIR}/zram-swap-deinit ${D}${libexecdir}
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/zram-swap.service ${D}${systemd_unitdir}/system/zram-swap.service
+ sed -i -e "s,@LIBEXECDIR@,${libexecdir},g" ${D}${systemd_unitdir}/system/zram-swap.service
+ install -m 0644 ${WORKDIR}/dev-zram0.swap ${D}${systemd_unitdir}/system/dev-zram0.swap
+ fi
+}
+
+FILES:${PN} = " \
+ ${sysconfdir} \
+ ${systemd_unitdir} \
+ ${libexecdir} \
+"
+INITSCRIPT_NAME = "zram"
+INITSCRIPT_PARAMS = "start 05 2 3 4 5 . stop 22 0 1 6 ."
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "dev-zram0.swap"
diff --git a/meta-oe/recipes-extended/zsync/zsync-curl/fixes.patch b/meta-oe/recipes-extended/zsync/zsync-curl/fixes.patch
new file mode 100644
index 0000000000..1ec4993a1c
--- /dev/null
+++ b/meta-oe/recipes-extended/zsync/zsync-curl/fixes.patch
@@ -0,0 +1,115 @@
+Upstream-Status: Submitted [https://github.com/probonopd/zsync-curl/pull/41]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/src/configure.ac b/src/configure.ac
+index 10de8c4..6488140 100644
+--- a/src/configure.ac
++++ b/src/configure.ac
+@@ -9,7 +9,6 @@ AC_CONFIG_MACRO_DIR([autotools])
+ AC_CANONICAL_HOST
+
+ AM_INIT_AUTOMAKE([dist-bzip2 no-dist-gzip foreign check-news -Woverride -Wobsolete -Wportability -Wsyntax -Wunsupported])
+-AM_MAINTAINER_MODE
+
+ dnl --- Check for programs
+ AC_PROG_CC
+@@ -23,6 +22,7 @@ AS_IF([test "x$enable_profile" = "xyes"], [
+ ZS_CFLAGS="${ZS_CFLAGS} -pg" ])
+
+ dnl --- Header files, typedefs, structures, libraries
++AC_USE_SYSTEM_EXTENSIONS
+ AC_C_CONST
+ AC_HEADER_STDC
+ # string.h, memory.h, stdlib.h both included in the default header checks
+@@ -55,10 +55,6 @@ case $host_os in
+ host_os_mingw32=yes
+ LIBS="${LIBS} -lwsock32"
+ ;;
+- *)
+- AC_DEFINE([_XOPEN_SOURCE], 600, [Enable POSIX extensions if present])
+- AC_DEFINE([_BSD_SOURCE],1, [Enable BSD extensions if present])
+- ;;
+ esac
+ AM_CONDITIONAL([MINGW32], test "x$host_os_mingw32" = "xyes")
+
+diff --git a/src/librcksum/Makefile.am b/src/librcksum/Makefile.am
+index f4fce72..47754eb 100644
+--- a/src/librcksum/Makefile.am
++++ b/src/librcksum/Makefile.am
+@@ -1,4 +1,4 @@
+-
++AM_CPPFLAGS = "-I$(top_srcdir)"
+
+ noinst_LIBRARIES = librcksum.a
+
+diff --git a/src/librcksum/md4.h b/src/librcksum/md4.h
+index e90603a..0ed7485 100644
+--- a/src/librcksum/md4.h
++++ b/src/librcksum/md4.h
+@@ -18,11 +18,8 @@
+
+ #include "zsglobal.h"
+
+-#ifdef HAVE_INTTYPES_H
+-#include <inttypes.h>
+-#else
++#include <stdint.h>
+ #include <sys/types.h>
+-#endif
+
+ #define MD4_BLOCK_LENGTH 64
+ #define MD4_DIGEST_LENGTH 16
+diff --git a/src/libzsync/Makefile.am b/src/libzsync/Makefile.am
+index 0a6ae85..33a5951 100644
+--- a/src/libzsync/Makefile.am
++++ b/src/libzsync/Makefile.am
+@@ -1,3 +1,4 @@
++AM_CPPFLAGS = "-I$(top_srcdir)"
+
+ noinst_LIBRARIES = libzsync.a
+
+diff --git a/src/libzsync/sha1.h b/src/libzsync/sha1.h
+index 3946505..87f3794 100644
+--- a/src/libzsync/sha1.h
++++ b/src/libzsync/sha1.h
+@@ -11,11 +11,8 @@
+
+ #include "config.h"
+
+-#ifdef HAVE_INTTYPES_H
+-#include <inttypes.h>
+-#else
++#include <stdint.h>
+ #include <sys/types.h>
+-#endif
+
+ #define SHA1_BLOCK_LENGTH 64
+ #define SHA1_DIGEST_LENGTH 20
+diff --git a/src/libzsync/zmap.c b/src/libzsync/zmap.c
+index f052dba..030b2a5 100644
+--- a/src/libzsync/zmap.c
++++ b/src/libzsync/zmap.c
+@@ -28,9 +28,6 @@
+ #include <string.h>
+ #include <sys/types.h>
+ #include <arpa/inet.h>
+-#ifdef HAVE_INTTYPES_H
+-#include <inttypes.h>
+-#endif
+
+ #ifdef WITH_DMALLOC
+ # include <dmalloc.h>
+diff --git a/src/make.c b/src/make.c
+index 191b527..ba7f3a9 100644
+--- a/src/make.c
++++ b/src/make.c
+@@ -28,9 +28,6 @@
+ #include <time.h>
+
+ #include <arpa/inet.h>
+-#ifdef HAVE_INTTYPES_H
+-#include <inttypes.h>
+-#endif
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
diff --git a/meta-oe/recipes-extended/zsync/zsync-curl/make.patch b/meta-oe/recipes-extended/zsync/zsync-curl/make.patch
new file mode 100644
index 0000000000..ef19b5e85e
--- /dev/null
+++ b/meta-oe/recipes-extended/zsync/zsync-curl/make.patch
@@ -0,0 +1,50 @@
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From 3b9d64cf3c33ad235ed444f8715732e509ab023f Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Wed, 9 Jun 2021 16:11:25 +0100
+Subject: [PATCH] Build zsyncmake
+
+No point having the zsync client without the server-side tool.
+
+Closes #42
+---
+ .gitignore | 1 +
+ src/Makefile.am | 5 ++++-
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/.gitignore b/.gitignore
+index 36f7bd8..728658e 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -22,3 +22,4 @@ src/librcksum/md4test
+ src/libzsync/sha1test
+ stamp-h1
+ zsync_curl
++zsyncmake_curl
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 5f8ff73..ffa2280 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -4,13 +4,16 @@ ACLOCAL_AMFLAGS = -I autotools
+
+ SUBDIRS = librcksum zlib libzsync doc
+
+-bin_PROGRAMS = zsync_curl
++bin_PROGRAMS = zsync_curl zsyncmake_curl
+
+ zsync_curl_SOURCES = client.c http.c http.h url.c url.h progress.c progress.h base64.c format_string.h zsglobal.h
+ zsync_curl_LDADD = libzsync/libzsync.a librcksum/librcksum.a zlib/libinflate.a $(LIBOBJS)
+
+ EXTRA_zsync_curl_SOURCES = getaddrinfo.h
+
++zsyncmake_curl_SOURCES = make.c makegz.c makegz.h format_string.h
++zsyncmake_curl_LDADD = libzsync/libzsync.a librcksum/librcksum.a zlib/libinflate.a zlib/libdeflate.a -lm
++
+ # From "GNU autoconf, automake and libtool" Vaughan, Elliston,
+ # # Tromey and Taylor, publisher New Riders, p.134
+ # # They made me do it! :-)
+--
+2.25.1
+
diff --git a/meta-oe/recipes-extended/zsync/zsync-curl_git.bb b/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
new file mode 100644
index 0000000000..84593387d3
--- /dev/null
+++ b/meta-oe/recipes-extended/zsync/zsync-curl_git.bb
@@ -0,0 +1,20 @@
+SUMMARY = "File transfer tool optimised for large files (curl port)"
+HOMEPAGE = "http://zsync.moria.org.uk/"
+DEPENDS = "curl"
+
+LICENSE = "Artistic-2.0"
+LIC_FILES_CHKSUM = "file://src/COPYING;md5=71c0ac4d86266533509aa0825b8d323c"
+
+SRC_URI = "git://github.com/probonopd/zsync-curl;protocol=https;branch=master \
+ file://fixes.patch \
+ file://make.patch"
+SRCREV = "00141c2806ccc4ddf2ff6263ee1612d19c0b713f"
+
+PV = "0.6.2+git${SRCPV}"
+
+inherit autotools
+
+S = "${WORKDIR}/git"
+AUTOTOOLS_SCRIPT_PATH = "${S}/src"
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..a152ff2d2b
--- /dev/null
+++ b/meta-oe/recipes-gnome/atk/atkmm-2.36_2.36.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "C++ bindings for the atk"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "atk glibmm-2.68"
+
+GNOMEBASEBUILDCLASS = "meson"
+GNOMEBN = "atkmm"
+
+inherit gnomebase features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "6f62dd99f746985e573605937577ccfc944368f606a71ca46342d70e1cdae079"
+
+S = "${WORKDIR}/${GNOMEBN}-${PV}"
+
+EXTRA_OEMESON = "-Dbuild-documentation=false"
+
+FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb b/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb
deleted file mode 100644
index 307774b37e..0000000000
--- a/meta-oe/recipes-gnome/atk/atkmm_2.24.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "C++ bindings for the atk"
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1 & GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "atk glibmm"
-
-inherit distro_features_check gnome autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "d53b60b0f1be597e86070954a49cf0c3"
-SRC_URI[archive.sha256sum] = "ff95385759e2af23828d4056356f25376cfabc41e690ac1df055371537e458bd"
-
-EXTRA_OECONF = " --disable-documentation "
-
-FILES_${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb b/meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb
new file mode 100644
index 0000000000..f6cb0a1e15
--- /dev/null
+++ b/meta-oe/recipes-gnome/atk/atkmm_2.28.2.bb
@@ -0,0 +1,20 @@
+SUMMARY = "C++ bindings for the atk"
+SECTION = "libs"
+
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "atk glibmm"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "a0bb49765ceccc293ab2c6735ba100431807d384ffa14c2ebd30e07993fd2fa4"
+
+EXTRA_OEMESON = "-Dbuild-documentation=false"
+
+FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/meta-oe/recipes-gnome/gcab/gcab/run-ptest b/meta-oe/recipes-gnome/gcab/gcab/run-ptest
new file mode 100644
index 0000000000..0cdb48ea33
--- /dev/null
+++ b/meta-oe/recipes-gnome/gcab/gcab/run-ptest
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+gnome-desktop-testing-runner libgcab
diff --git a/meta-oe/recipes-gnome/gcab/gcab_1.4.bb b/meta-oe/recipes-gnome/gcab/gcab_1.4.bb
new file mode 100644
index 0000000000..321e7c36a2
--- /dev/null
+++ b/meta-oe/recipes-gnome/gcab/gcab_1.4.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] = "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/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..d3c26d97ae
--- /dev/null
+++ b/meta-oe/recipes-gnome/gcr/gcr3/0001-meson.build-correctly-handle-disabled-ssh_agent-opti.patch
@@ -0,0 +1,36 @@
+From 9b67bb18d8409e0e693cc6000507acbd73a30eab Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Wed, 16 Nov 2022 11:27:24 +0100
+Subject: [PATCH 1/2] 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 | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 3f35173..11d7fa7 100644
+--- a/meson.build
++++ b/meson.build
+@@ -96,8 +98,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',
+--
+2.34.1
+
diff --git a/meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb b/meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb
new file mode 100644
index 0000000000..ba5660a5ed
--- /dev/null
+++ b/meta-oe/recipes-gnome/gcr/gcr3_3.41.1.bb
@@ -0,0 +1,59 @@
+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"
+
+GNOMEBASEBUILDCLASS = "meson"
+GTKDOC_MESON_OPTION = "gtk_doc"
+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] = "bb7128a3c2febbfee9c03b90d77d498d0ceb237b0789802d60185c71c4bea24f"
+
+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 \
+ ${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/iconv-detect.h b/meta-oe/recipes-gnome/gmime/gmime/iconv-detect.h
new file mode 100644
index 0000000000..a899ce0ad4
--- /dev/null
+++ b/meta-oe/recipes-gnome/gmime/gmime/iconv-detect.h
@@ -0,0 +1,6 @@
+/* This is an auto-generated header, DO NOT EDIT! */
+
+#define ICONV_ISO_INT_FORMAT "iso-%u-%u"
+#define ICONV_ISO_STR_FORMAT "iso-%u-%s"
+#define ICONV_10646 "iso-10646"
+#define ICONV_SHIFT_JIS "shift-jis"
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..c4738b25bc
--- /dev/null
+++ b/meta-oe/recipes-gnome/gmime/gmime_3.2.13.bb
@@ -0,0 +1,22 @@
+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 = "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/gnome-common/gnome-common_3.18.0.bb b/meta-oe/recipes-gnome/gnome-common/gnome-common_3.18.0.bb
index d874164540..ceebe5ebd3 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
@@ -2,7 +2,7 @@ SUMMARY = "Common macros for building GNOME applications"
HOMEPAGE = "http://www.gnome.org/"
BUGTRACKER = "https://bugzilla.gnome.org/"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SECTION = "x11/gnome"
@@ -16,9 +16,9 @@ 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 = ""
+FILES:${PN} += "${datadir}/aclocal"
+FILES:${PN}-dev = ""
BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb
index d6da51b0de..db55f22398 100644
--- a/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb
+++ b/meta-oe/recipes-gnome/gnome-doc-utils-stub/gnome-doc-utils-stub_1.0.bb
@@ -2,17 +2,17 @@ SUMMARY = "Stub implementation of gnome-doc-utils"
DESCRIPTION = "This recipe provides m4 macros from gnome-doc-utils project, so \
that dependent recipes can build. Gnome-doc-utils itself is no longer packaged because \
it requires libxml2 and python 2 at the same time, which can no longer be satisfied. "
-LICENSE = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0;md5=801f80980d171dd6425610833a22dbe6 \
- file://${COREBASE}/meta/files/common-licenses/LGPL-2.1;md5=1a6d268fd218675ffea8be556788b780"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6 \
+ file://${COREBASE}/meta/files/common-licenses/LGPL-2.1-only;md5=1a6d268fd218675ffea8be556788b780"
SRC_URI = "file://gnome-doc-utils.m4"
PROVIDES = "gnome-doc-utils"
-do_install_append() {
+do_install:append() {
install -d ${D}${datadir}/aclocal/
install ${WORKDIR}/gnome-doc-utils.m4 ${D}${datadir}/aclocal/
}
-FILES_${PN} += "${datadir}"
+FILES:${PN} += "${datadir}"
diff --git a/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_4.8.bb b/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_4.8.bb
new file mode 100644
index 0000000000..2a3f772f8f
--- /dev/null
+++ b/meta-oe/recipes-gnome/gnome-themes/adw-gtk3_4.8.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 = "7ee024ed79f68875e5dea3616be24a703cf72cc5"
+
+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
new file mode 100644
index 0000000000..d7e422cc97
--- /dev/null
+++ b/meta-oe/recipes-gnome/gnome-themes/gnome-themes-extra_3.28.bb
@@ -0,0 +1,44 @@
+SUMMARY = "GTK+2 standard themes"
+HOMEPAGE = "http://ftp.gnome.org/pub/GNOME/sources/gnome-themes-standard/"
+BUGTRACKER = "https://bugzilla.gnome.org/"
+SECTION = "x11/gnome"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+inherit gnomebase gettext gtk-icon-cache upstream-version-is-even features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+
+DEPENDS += "intltool-native gtk+"
+
+# 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"
+
+do_install:append() {
+ # Only building Adwaita, remove highcontrast files
+ rm -rf ${D}${prefix}/share/themes/HighContrast \
+ ${D}${prefix}/share/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
+}
+
+# There could be gnome-theme-highcontrast as well but that requires
+# gtk+3 and includes lots of icons (is also broken with B != S).
+PACKAGES += "gnome-theme-adwaita \
+ gnome-theme-adwaita-dark \
+ "
+
+FILES:gnome-theme-adwaita = "${prefix}/share/themes/Adwaita \
+ ${libdir}/gtk-2.0/2.10.0/engines/libadwaita.so"
+
+FILES:gnome-theme-adwaita-dark = "${prefix}/share/themes/Adwaita-dark"
+RDEPENDS:gnome-theme-adwaita-dark = "gnome-theme-adwaita"
+
+# gnome-themes-standard is empty and doesn't exist
+RDEPENDS:${PN}-dev = ""
diff --git a/meta-oe/recipes-gnome/gtk+/files/0001-do-not-build-demos.patch b/meta-oe/recipes-gnome/gtk+/files/0001-do-not-build-demos.patch
deleted file mode 100644
index 176e979982..0000000000
--- a/meta-oe/recipes-gnome/gtk+/files/0001-do-not-build-demos.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 6914eccee34376f9067b0ee9f17039fe182125e8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Sat, 31 Mar 2018 22:29:16 +0200
-Subject: [PATCH] do not build demos
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-They are not installed anyway and add libepoxy dependency
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- Makefile.am | 3 ++-
- configure.ac | 3 ---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 984b6a7..6c754a6 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -28,7 +28,8 @@ doc_subdirs = docs
- else
- doc_subdirs =
- endif
--SUBDIRS = tools $(src_subdirs) gdk/gdkmm gtk/gtkmm tests demos $(doc_subdirs)
-+
-+SUBDIRS = tools $(src_subdirs) gdk/gdkmm gtk/gtkmm tests $(doc_subdirs)
-
- gdkmm_includedir = $(includedir)/$(GDKMM_MODULE_NAME)
- gdkmm_include_HEADERS = gdk/gdkmm.h
-diff --git a/configure.ac b/configure.ac
-index e5e82dc..c1c7658 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -109,11 +109,8 @@ AS_IF([test "x$gtkmm_enable_api_atkmm" != xno],
- [GTKMM_MODULES="atkmm-1.6 >= 2.24.2 $GTKMM_MODULES"])
- AC_SUBST([GTKMM_MODULES])
-
--AC_SUBST([GTKMM_DEMOS_EXTRA_MODULES], ['epoxy >= 1.2'])
--
- PKG_CHECK_MODULES([GDKMM], [$GDKMM_MODULES])
- PKG_CHECK_MODULES([GTKMM], [$GTKMM_MODULES])
--PKG_CHECK_MODULES([GTKMM_DEMOS_EXTRA], [$GTKMM_DEMOS_EXTRA_MODULES])
-
- MM_PKG_CONFIG_SUBST([GTHREAD_CFLAGS], [--cflags-only-other gthread-2.0])
- MM_PKG_CONFIG_SUBST([GTHREAD_LIBS], [--libs gthread-2.0])
---
-2.14.3
-
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+.inc b/meta-oe/recipes-gnome/gtk+/gtk+.inc
new file mode 100644
index 0000000000..f2af7c920e
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+.inc
@@ -0,0 +1,107 @@
+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/"
+
+LICENSE = "LGPL-2.0-only & LGPL-2.0-or-later & LGPL-2.1-or-later"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7"
+
+SECTION = "libs"
+
+inherit features_check
+ANY_OF_DISTRO_FEATURES = "${GTK2DISTROFEATURES}"
+
+# This picks stable releases in the 2.x series (but not 2.90 onwards,
+# which were GNOME 3 betas).
+UPSTREAM_CHECK_REGEX = "(?P<pver>2\.([0-8]*[02468])+(\.\d+)+)"
+
+X11DEPENDS = "virtual/libx11 libxext libxcursor libxrandr libxdamage libxrender libxcomposite"
+DEPENDS = "glib-2.0 pango atk jpeg libpng gdk-pixbuf-native \
+ cairo gdk-pixbuf"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb x11', d)}"
+
+PACKAGECONFIG[x11] = "--with-x=yes --with-gdktarget=x11,--with-x=no,${X11DEPENDS}"
+# without --with-gdktarget=directfb it will check for cairo-xlib which isn't available without X11 DISTRO_FEATURE
+PACKAGECONFIG[directfb] = "--with-gdktarget=directfb,,directfb"
+PACKAGECONFIG[manpages] = "--enable-man --with-xml-catalog=${STAGING_ETCDIR_NATIVE}/xml/catalog, --disable-man, libxslt-native xmlto-native"
+
+inherit autotools gtk-doc pkgconfig update-alternatives gtk-immodules-cache gobject-introspection manpages
+
+PACKAGES += "libgail gtk-demo"
+
+FILES:${PN} += "${bindir}/gtk-update-icon-cache-2.0 \
+ ${bindir}/gtk-query-immodules-2.0 \
+ ${datadir}/themes ${sysconfdir} \
+ ${libdir}/gtk-2.0/${LIBV}/engines/libpixmap.so"
+
+FILES:${PN}-dev += " \
+ ${datadir}/gtk-2.0/include \
+ ${libdir}/gtk-2.0/include \
+ ${libdir}/gtk-2.0/modules/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/loaders/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/immodules/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/printbackends/*.la \
+ ${libdir}/gtk-2.0/${LIBV}/engines/*.la \
+ ${bindir}/gtk-builder-convert"
+
+FILES:gtk-demo = " \
+ ${datadir}/gtk-2.0/demo/* \
+ ${bindir}/gtk-demo \
+ "
+
+FILES:libgail = " \
+ ${libdir}/gtk-2.0/modules/libgail.so \
+ ${libdir}/gtk-2.0/modules/libferret.so \
+ "
+
+GTKBASE_RRECOMMENDS ?= "liberation-fonts \
+ gdk-pixbuf-loader-png \
+ gdk-pixbuf-loader-jpeg \
+ gdk-pixbuf-loader-gif \
+ gdk-pixbuf-loader-xpm \
+ shared-mime-info \
+ gnome-theme-adwaita \
+ "
+GTKGLIBC_RRECOMMENDS ?= "${GTKBASE_RRECOMMENDS} glibc-gconv-iso8859-1"
+
+RRECOMMENDS:${PN} = "${GTKBASE_RRECOMMENDS}"
+RRECOMMENDS:${PN}:libc-glibc = "${GTKGLIBC_RRECOMMENDS}"
+
+ALTERNATIVE:${PN} = "gtk-update-icon-cache"
+ALTERNATIVE_TARGET[gtk-update-icon-cache] = "${bindir}/gtk-update-icon-cache-2.0"
+
+do_compile:prepend() {
+ export GIR_EXTRA_LIBS_PATH="${B}/gdk/.libs"
+}
+
+do_install () {
+ autotools_do_install
+
+ install -d ${D}${sysconfdir}/gtk-2.0
+
+ mkdir -p ${D}${libdir}/gtk-2.0/include
+ install -m 0644 gdk/gdkconfig.h ${D}${libdir}/gtk-2.0/include/gdkconfig.h
+
+ install -m 0644 ${S}/gtk/gtkfilechooserprivate.h ${D}${includedir}/gtk-2.0/gtk/
+ install -m 0644 ${S}/gtk/gtkfilechooserutils.h ${D}${includedir}/gtk-2.0/gtk/
+ install -m 0644 ${S}/gtk/gtkfilesystemmodel.h ${D}${includedir}/gtk-2.0/gtk/
+
+ mv ${D}${bindir}/gtk-update-icon-cache ${D}${bindir}/gtk-update-icon-cache-2.0
+
+ # duplicate gtk-query-immodules for post install script update_gtk_immodules_cache
+ mkdir -p ${D}${libexecdir}
+ ln ${D}${bindir}/gtk-query-immodules-2.0 ${D}${libexecdir}/${MLPREFIX}gtk-query-immodules-2.0
+}
+
+SYSROOT_PREPROCESS_FUNCS += "gtk_sysroot_preprocess"
+
+gtk_sysroot_preprocess () {
+ if [ -e ${D}${bindir}/gtk-builder-convert ]; then
+ install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ install -m 755 ${D}${bindir}/gtk-builder-convert ${SYSROOT_DESTDIR}${bindir_crossscripts}/
+ fi
+}
+
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch b/meta-oe/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch
new file mode 100644
index 0000000000..83be39c3bf
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+/0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch
@@ -0,0 +1,29 @@
+From 34ce93e1c50bfb88f92a687d4f82de55584f3f6a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 11 Apr 2018 14:20:39 +0300
+Subject: [PATCH] Do not look into $HOME when looking for gtk modules
+
+On the host it causes host contamination, on the target it's a
+potential security issue. Gtk+3 has already removed this.
+
+Upstream-Status: Inappropriate [gtk2 is in maintenance mode]
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gtk/gtkmodules.c | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/gtk/gtkmodules.c b/gtk/gtkmodules.c
+index 50729b6..e09b583 100644
+--- a/gtk/gtkmodules.c
++++ b/gtk/gtkmodules.c
+@@ -65,10 +65,6 @@ get_module_path (void)
+ if (result)
+ return result;
+
+- home_dir = g_get_home_dir();
+- if (home_dir)
+- home_gtk_dir = g_build_filename (home_dir, ".gtk-2.0", NULL);
+-
+ module_path_env = g_getenv ("GTK_PATH");
+ exe_prefix = g_getenv ("GTK_EXE_PREFIX");
+
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+/0001-Fix-signature-of-create_menu-function.patch b/meta-oe/recipes-gnome/gtk+/gtk+/0001-Fix-signature-of-create_menu-function.patch
new file mode 100644
index 0000000000..6b5f928391
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+/0001-Fix-signature-of-create_menu-function.patch
@@ -0,0 +1,50 @@
+From a703e2406fda3dc150574ae2f90cb5f4810d0601 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 00:25:19 -0700
+Subject: [PATCH] Fix signature of create_menu() function
+
+Upstream-Status: Inappropriate [EOL]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/testmenubars.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/tests/testmenubars.c b/tests/testmenubars.c
+index 416a939..7f247f8 100644
+--- a/tests/testmenubars.c
++++ b/tests/testmenubars.c
+@@ -21,7 +21,7 @@
+ #include <gtk/gtk.h>
+
+ static GtkWidget *
+-create_menu (depth)
++create_menu (int depth)
+ {
+ GtkWidget *menu;
+ GtkWidget *menuitem;
+@@ -70,19 +70,19 @@ create_menubar (GtkPackDirection pack_dir,
+ menuitem = gtk_image_menu_item_new_from_stock (GTK_STOCK_HOME, NULL);
+ gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
+ gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
+- menu = create_menu (2, TRUE);
++ menu = create_menu (2);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
+
+ menuitem = gtk_menu_item_new_with_label ("foo");
+ gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
+ gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
+- menu = create_menu (2, TRUE);
++ menu = create_menu (2);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
+
+ menuitem = gtk_menu_item_new_with_label ("bar");
+ gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menuitem);
+ gtk_label_set_angle (GTK_LABEL (GTK_BIN (menuitem)->child), angle);
+- menu = create_menu (2, TRUE);
++ menu = create_menu (2);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);
+
+ return menubar;
+--
+2.37.2
+
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+/doc-fixes.patch b/meta-oe/recipes-gnome/gtk+/gtk+/doc-fixes.patch
new file mode 100644
index 0000000000..74e479fd1b
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+/doc-fixes.patch
@@ -0,0 +1,22 @@
+There are issues building the gtk+ tutorial and faq documentation.
+Since they were removed in gtk+ upstream and are superfluous in
+embedded applications, just don't build them.
+
+Thanks to Joshua Lock for suggesting this approach.
+
+Signed-off-by: Scott Garman <scott.a.garman@intel.com>
+
+Upstream-Status: Inappropriate [embedded specific]
+
+diff -urN gtk+-2.22.1.orig/docs/Makefile.am gtk+-2.22.1/docs/Makefile.am
+--- gtk+-2.22.1.orig/docs/Makefile.am 2010-11-15 04:13:09.000000000 -0800
++++ gtk+-2.22.1/docs/Makefile.am 2011-02-23 19:25:16.914815097 -0800
+@@ -1,7 +1,7 @@
+ ## Process this file with automake to produce Makefile.in
+ include $(top_srcdir)/Makefile.decl
+
+-SUBDIRS = tutorial faq reference tools
++SUBDIRS = reference tools
+
+ EXTRA_DIST += \
+ defsformat.txt \
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+/strict-prototypes.patch b/meta-oe/recipes-gnome/gtk+/gtk+/strict-prototypes.patch
new file mode 100644
index 0000000000..96e1f5feac
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+/strict-prototypes.patch
@@ -0,0 +1,24 @@
+Fixes
+
+include/gtk-2.0/gtk/gtkitemfactory.h:47:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
+ typedef void (*GtkItemFactoryCallback) ();
+
+gcc5 has -Wstrict-prototypes on by default for -Werror so this becomes a build failure for consumers
+of this header e.g. matchbox-panel-2
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Index: gtk+-2.24.27/gtk/gtkitemfactory.h
+===================================================================
+--- gtk+-2.24.27.orig/gtk/gtkitemfactory.h
++++ gtk+-2.24.27/gtk/gtkitemfactory.h
+@@ -44,7 +44,7 @@ typedef void (*GtkPrintFunc) (gpoint
+ * (Note that if we are included from a C++ program () will mean
+ * (void) so an explicit cast will be needed.)
+ */
+-typedef void (*GtkItemFactoryCallback) ();
++typedef void (*GtkItemFactoryCallback) (void);
+ typedef void (*GtkItemFactoryCallback1) (gpointer callback_data,
+ guint callback_action,
+ GtkWidget *widget);
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+/toggle-font.diff b/meta-oe/recipes-gnome/gtk+/gtk+/toggle-font.diff
new file mode 100644
index 0000000000..340d12008b
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+/toggle-font.diff
@@ -0,0 +1,102 @@
+Upstream-Status: Pending
+
+Index: gtk/gtkcellrenderertoggle.c
+===================================================================
+--- gtk/gtkcellrenderertoggle.c.orig 2010-06-22 18:11:33.000000000 +0800
++++ gtk/gtkcellrenderertoggle.c 2010-06-22 18:11:43.000000000 +0800
+@@ -71,6 +71,8 @@
+ PROP_INDICATOR_SIZE
+ };
+
++/* This is a hard-coded default which promptly gets overridden by a size
++ calculated from the font size. */
+ #define TOGGLE_WIDTH 13
+
+ static guint toggle_cell_signals[LAST_SIGNAL] = { 0 };
+@@ -80,8 +82,9 @@
+ typedef struct _GtkCellRendererTogglePrivate GtkCellRendererTogglePrivate;
+ struct _GtkCellRendererTogglePrivate
+ {
+- gint indicator_size;
+-
++ gint indicator_size; /* This is the real size */
++ gint override_size; /* This is the size set from the indicator-size property */
++ GtkWidget *cached_widget;
+ guint inconsistent : 1;
+ };
+
+@@ -104,6 +107,7 @@
+ GTK_CELL_RENDERER (celltoggle)->ypad = 2;
+
+ priv->indicator_size = TOGGLE_WIDTH;
++ priv->override_size = 0;
+ priv->inconsistent = FALSE;
+ }
+
+@@ -210,7 +214,7 @@
+ g_value_set_boolean (value, celltoggle->radio);
+ break;
+ case PROP_INDICATOR_SIZE:
+- g_value_set_int (value, priv->indicator_size);
++ g_value_set_int (value, priv->override_size ? priv->override_size : priv->indicator_size);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+@@ -245,7 +249,7 @@
+ celltoggle->radio = g_value_get_boolean (value);
+ break;
+ case PROP_INDICATOR_SIZE:
+- priv->indicator_size = g_value_get_int (value);
++ priv->override_size = g_value_get_int (value);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, param_id, pspec);
+@@ -273,6 +277,27 @@
+ }
+
+ static void
++on_widget_style_set (GtkWidget *widget, GtkStyle *previous, gpointer user_data)
++{
++ GtkCellRendererTogglePrivate *priv = user_data;
++ PangoContext *context;
++ PangoFontMetrics *metrics;
++ int height;
++
++ context = gtk_widget_get_pango_context (widget);
++ metrics = pango_context_get_metrics (context,
++ widget->style->font_desc,
++ pango_context_get_language (context));
++
++ height = pango_font_metrics_get_ascent (metrics) +
++ pango_font_metrics_get_descent (metrics);
++
++ pango_font_metrics_unref (metrics);
++
++ priv->indicator_size = PANGO_PIXELS (height * 0.85);
++}
++
++static void
+ gtk_cell_renderer_toggle_get_size (GtkCellRenderer *cell,
+ GtkWidget *widget,
+ GdkRectangle *cell_area,
+@@ -287,6 +312,20 @@
+
+ priv = GTK_CELL_RENDERER_TOGGLE_GET_PRIVATE (cell);
+
++ if (priv->override_size) {
++ priv->indicator_size = priv->override_size;
++ } else if (priv->cached_widget != widget) {
++ if (priv->cached_widget) {
++ g_object_remove_weak_pointer (widget, &priv->cached_widget);
++ g_signal_handlers_disconnect_by_func (priv->cached_widget, on_widget_style_set, priv);
++ }
++ priv->cached_widget = widget;
++ g_object_add_weak_pointer (widget, &priv->cached_widget);
++ g_signal_connect (widget, "style-set", on_widget_style_set, priv);
++
++ on_widget_style_set (widget, NULL, priv);
++ }
++
+ calc_width = (gint) cell->xpad * 2 + priv->indicator_size;
+ calc_height = (gint) cell->ypad * 2 + priv->indicator_size;
+
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+/xsettings.patch b/meta-oe/recipes-gnome/gtk+/gtk+/xsettings.patch
new file mode 100644
index 0000000000..d0a970ad4d
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+/xsettings.patch
@@ -0,0 +1,20 @@
+Upstream-Status: Pending
+
+Index: gtk+-2.21.2/gdk/x11/gdkevents-x11.c
+===================================================================
+--- gtk+-2.21.2.orig/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:04.000000000 +0800
++++ gtk+-2.21.2/gdk/x11/gdkevents-x11.c 2010-06-22 17:28:06.000000000 +0800
+@@ -3062,10 +3062,9 @@
+ {
+ GdkScreenX11 *screen = data;
+
+- if (xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent))
+- return GDK_FILTER_REMOVE;
+- else
+- return GDK_FILTER_CONTINUE;
++ xsettings_client_process_event (screen->xsettings_client, (XEvent *)xevent);
++
++ return GDK_FILTER_CONTINUE;
+ }
+
+ static Bool
diff --git a/meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb b/meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb
new file mode 100644
index 0000000000..5eac641cf3
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtk+_2.24.33.bb
@@ -0,0 +1,34 @@
+require gtk+.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \
+ file://gtk/gtk.h;endline=27;md5=c59e0b4490dd135a5726ebf851f9b17f \
+ file://gdk/gdk.h;endline=27;md5=07db285ec208fb3e0bf7d861b0614202 \
+ file://tests/testgtk.c;endline=27;md5=262db5db5f776f9863e56df31423e24c"
+SRC_URI = "http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24/gtk+-${PV}.tar.xz \
+ file://xsettings.patch \
+ file://toggle-font.diff;striplevel=0 \
+ file://doc-fixes.patch \
+ file://strict-prototypes.patch \
+ file://0001-Do-not-look-into-HOME-when-looking-for-gtk-modules.patch \
+ file://0001-Fix-signature-of-create_menu-function.patch \
+ "
+
+SRC_URI[sha256sum] = "ac2ac757f5942d318a311a54b0c80b5ef295f299c2a73c632f6bfb1ff49cc6da"
+
+EXTRA_OECONF = "--enable-xkb --disable-glibtest --disable-cups --disable-xinerama"
+
+LIBV = "2.10.0"
+
+PACKAGES_DYNAMIC += "^gtk-immodule-.* ^gtk-printbackend-.*"
+
+python populate_packages:prepend () {
+ gtk_libdir = d.expand('${libdir}/gtk-2.0/${LIBV}')
+ immodules_root = os.path.join(gtk_libdir, 'immodules')
+ printmodules_root = os.path.join(gtk_libdir, 'printbackends');
+
+ d.setVar('GTKIMMODULES_PACKAGES', ' '.join(do_split_packages(d, immodules_root, r'^im-(.*)\.so$', 'gtk-immodule-%s', 'GTK input module for %s')))
+ do_split_packages(d, printmodules_root, r'^libprintbackend-(.*)\.so$', 'gtk-printbackend-%s', 'GTK printbackend module for %s')
+
+ if (d.getVar('DEBIAN_NAMES')):
+ d.setVar(d.expand('PKG:${PN}'), '${MLPREFIX}libgtk-2.0')
+}
diff --git a/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb b/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb
deleted file mode 100644
index 96b54dd2c7..0000000000
--- a/meta-oe/recipes-gnome/gtk+/gtkmm3_3.22.2.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "C++ bindings for the GTK+ toolkit V3"
-HOMEPAGE = "http://www.gtkmm.org/"
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1 & GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "atkmm pangomm glibmm gtk+3 cairomm"
-
-BPN = "gtkmm"
-
-inherit gnomebase distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[archive.md5sum] = "883e9046768b3a5afc8e365988823e77"
-SRC_URI[archive.sha256sum] = "91afd98a31519536f5f397c2d79696e3d53143b80b75778521ca7b48cb280090"
-SRC_URI += "file://0001-do-not-build-demos.patch"
-
-EXTRA_OECONF = " --disable-documentation "
-
-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..28d2bb138f
--- /dev/null
+++ b/meta-oe/recipes-gnome/gtk+/gtkmm3_3.24.7.bb
@@ -0,0 +1,23 @@
+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] = "1d7a35af9c5ceccacb244ee3c2deb9b245720d8510ac5c7e6f4b6f9947e6789c"
+
+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 b780d09bc3..54e75a20d3 100644
--- a/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
+++ b/meta-oe/recipes-gnome/gtk+/gtkmm_2.24.5.bb
@@ -2,13 +2,13 @@ SUMMARY = "C++ bindings for the GTK+ toolkit"
HOMEPAGE = "http://www.gtkmm.org/"
SECTION = "libs"
-LICENSE = "LGPLv2.1 & GPLv2"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
DEPENDS = "atkmm pangomm glibmm gtk+ cairomm"
-inherit gnomebase distro_features_check
+inherit gnomebase features_check
REQUIRED_DISTRO_FEATURES = "x11"
@@ -17,4 +17,4 @@ SRC_URI[archive.sha256sum] = "0680a53b7bf90b4e4bf444d1d89e6df41c777e0bacc96e9c09
EXTRA_OECONF = " --disable-documentation "
-FILES_${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
+FILES:${PN}-dev += "${libdir}/*/include ${libdir}/*/proc/m4"
diff --git a/meta-oe/recipes-gnome/libjcat/libjcat/run-ptest b/meta-oe/recipes-gnome/libjcat/libjcat/run-ptest
new file mode 100644
index 0000000000..14980a7d06
--- /dev/null
+++ b/meta-oe/recipes-gnome/libjcat/libjcat/run-ptest
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+gnome-desktop-testing-runner libjcat
diff --git a/meta-oe/recipes-gnome/libjcat/libjcat_0.1.14.bb b/meta-oe/recipes-gnome/libjcat/libjcat_0.1.14.bb
new file mode 100644
index 0000000000..782833b228
--- /dev/null
+++ b/meta-oe/recipes-gnome/libjcat/libjcat_0.1.14.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 = "d9cf9ebc4237252a82f88d9e99bea0c4b398c08a"
+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.36.0.bb b/meta-oe/recipes-gnome/libpeas/libpeas_1.36.0.bb
new file mode 100644
index 0000000000..a32ea9b550
--- /dev/null
+++ b/meta-oe/recipes-gnome/libpeas/libpeas_1.36.0.bb
@@ -0,0 +1,29 @@
+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}"
+# 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
new file mode 100644
index 0000000000..6d0bb95d3a
--- /dev/null
+++ b/meta-oe/recipes-gnome/libxmlb/libxmlb/run-ptest
@@ -0,0 +1,3 @@
+#! /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
new file mode 100644
index 0000000000..61abd07fda
--- /dev/null
+++ b/meta-oe/recipes-gnome/libxmlb/libxmlb_0.3.10.bb
@@ -0,0 +1,24 @@
+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"
+
+DEPENDS = "glib-2.0 xz"
+
+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}/*"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-gnome/pyxdg/pyxdg_0.28.bb b/meta-oe/recipes-gnome/pyxdg/pyxdg_0.28.bb
new file mode 100644
index 0000000000..0c9599a49c
--- /dev/null
+++ b/meta-oe/recipes-gnome/pyxdg/pyxdg_0.28.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "A Python module to deal with freedesktop.org specifications"
+HOMEPAGE = "http://freedesktop.org/wiki/Software/pyxdg"
+SECTION = "devel/python"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f30a9716ef3762e3467a2f62bf790f0a"
+
+SRCREV = "1d23e483ae869ee9532aca43b133cc43f63626a3"
+SRC_URI = "git://anongit.freedesktop.org/xdg/pyxdg;branch=master"
+
+inherit setuptools3
+
+S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-gnome/vte9/vte9.inc b/meta-oe/recipes-gnome/vte9/vte9.inc
index 206c430da6..2a165391b6 100644
--- a/meta-oe/recipes-gnome/vte9/vte9.inc
+++ b/meta-oe/recipes-gnome/vte9/vte9.inc
@@ -1,18 +1,18 @@
SUMMARY = "Virtual terminal emulator GTK+ widget library"
BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
-LICENSE = "LGPLv2.0"
-DEPENDS = " glib-2.0 gtk+ intltool-native gnome-common-native ncurses"
-RDEPENDS_libvte = "vte-termcap"
+LICENSE = "LGPL-2.0-only"
+DEPENDS = "glib-2.0-native 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 gnome gtk-doc distro_features_check upstream-version-is-even gobject-introspection
+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"
+FILES:libvte9 = "${libdir}/*.so.* ${libexecdir}/gnome-pty-helper"
+FILES:vte9-termcap = "${datadir}/vte/termcap-0.0"
diff --git a/meta-oe/recipes-graphics/babl/babl_0.1.28.bb b/meta-oe/recipes-graphics/babl/babl_0.1.28.bb
deleted file mode 100644
index 9d8c90fdbb..0000000000
--- a/meta-oe/recipes-graphics/babl/babl_0.1.28.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Babl is a dynamic, any to any, pixel format conversion library"
-LICENSE = "LGPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6"
-
-inherit gnomebase
-
-SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.1/${BP}.tar.bz2"
-SRC_URI[md5sum] = "cc53d8474a43aafb7cdaccea56cfde44"
-SRC_URI[sha256sum] = "63f3ed23e72a857a0e6df53d9d968a325024177b01edbe314a0c98b499eb8603"
-
-FILES_${PN} += "${libdir}/babl-*/*.so"
-FILES_${PN}-dev += "${libdir}/babl-*/*.la"
-FILES_${PN}-dbg += "${libdir}/babl-*/.debug/"
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
new file mode 100644
index 0000000000..c1e271ffa1
--- /dev/null
+++ b/meta-oe/recipes-graphics/cairo/cairomm-1.16_1.16.2.bb
@@ -0,0 +1,18 @@
+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.12.0.bb b/meta-oe/recipes-graphics/cairo/cairomm_1.12.0.bb
deleted file mode 100644
index d49a509a0e..0000000000
--- a/meta-oe/recipes-graphics/cairo/cairomm_1.12.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "C++ bindings for Cairo graphics library"
-
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c46bda00ffbb0ba1dac22f8d087f54d9"
-
-inherit gnomebase
-
-DEPENDS = "cairo libsigc++-2.0"
-
-SRC_URI[archive.md5sum] = "c62b476b61bd0abf7e9851f417d73291"
-SRC_URI[archive.sha256sum] = "a54ada8394a86182525c0762e6f50db6b9212a2109280d13ec6a0b29bfd1afe6"
-
-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
new file mode 100644
index 0000000000..8123509f40
--- /dev/null
+++ b/meta-oe/recipes-graphics/cairo/cairomm_1.14.3.bb
@@ -0,0 +1,16 @@
+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"
+
+SRC_URI = "https://www.cairographics.org/releases/${BP}.tar.xz"
+SRC_URI[sha256sum] = "0d37e067c5c4ca7808b7ceddabfe1932c5bd2a750ad64fb321e1213536297e78"
+
+FILES:${PN}-doc += "${datadir}/devhelp"
+FILES:${PN}-dev += "${libdir}/cairomm-*/"
+
diff --git a/meta-oe/recipes-graphics/cglm/cglm_0.8.9.bb b/meta-oe/recipes-graphics/cglm/cglm_0.8.9.bb
new file mode 100644
index 0000000000..fbd267b16f
--- /dev/null
+++ b/meta-oe/recipes-graphics/cglm/cglm_0.8.9.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.8.5
+SRCREV = "c51040cd4139b628fba2a0e6751ad4aecbc0c81a"
+
+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-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 32f0815921..2c28fde347 100644
--- a/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
+++ b/meta-oe/recipes-graphics/dietsplash/dietsplash_git.bb
@@ -1,5 +1,5 @@
SUMMARY = "Simple bootsplash for systemd systems"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
# Really, no depends besides a C library
@@ -8,7 +8,7 @@ PV = "0.3"
PR = "r1"
SRCREV = "ef2e1a390e768e21e6a6268977580ee129a96633"
-SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git \
+SRC_URI = "git://github.com/lucasdemarchi/dietsplash.git;branch=master;protocol=https \
file://0001-configure.ac-Do-not-demand-linker-hash-style.patch \
"
@@ -17,6 +17,6 @@ inherit autotools
S = "${WORKDIR}/git"
EXTRA_OECONF = " --with-systemdsystemunitdir=${systemd_unitdir}/system \
- --disable-staticimages"
+ --disable-staticimages --with-rootdir=${root_prefix}"
-FILES_${PN} += "${systemd_unitdir}/system/"
+FILES:${PN} += "${systemd_unitdir}/system/"
diff --git a/meta-oe/recipes-graphics/directfb/directfb-examples/0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch b/meta-oe/recipes-graphics/directfb/directfb-examples/0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch
new file mode 100644
index 0000000000..f40b7f144d
--- /dev/null
+++ b/meta-oe/recipes-graphics/directfb/directfb-examples/0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch
@@ -0,0 +1,39 @@
+From 85a30903ea3ba4232379bbbcb54960307d5a2da0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 18:49:03 -0700
+Subject: [PATCH] spacedream: Add typecast to pthread_t in assignment
+
+render_loop_thread is of type pthread_t, therefore -1 which is int can
+not be assigned to it. Do the needed typecast conversion
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/spacedream/main.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/spacedream/main.c b/src/spacedream/main.c
+index 430800f..8e1887c 100644
+--- a/src/spacedream/main.c
++++ b/src/spacedream/main.c
+@@ -205,7 +205,7 @@ void unload_stars()
+ int main( int argc, char *argv[] )
+ {
+ int quit = 0;
+- pthread_t render_loop_thread = -1;
++ pthread_t render_loop_thread = (pthread_t)-1;
+
+ IDirectFBSurface *primary;
+ IDirectFBEventBuffer *buffer;
+@@ -344,7 +344,7 @@ int main( int argc, char *argv[] )
+ pthread_cancel( render_loop_thread );
+ pthread_mutex_unlock( &render_start );
+ pthread_join( render_loop_thread, NULL );
+- render_loop_thread = -1;
++ render_loop_thread = (pthread_t)-1;
+
+
+ unload_stars();
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb b/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb
index 7907c5c0da..398e339482 100644
--- a/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb
+++ b/meta-oe/recipes-graphics/directfb/directfb-examples_1.7.0.bb
@@ -9,6 +9,7 @@ LICENSE = "MIT"
SRC_URI = " \
http://downloads.yoctoproject.org/mirror/sources/DirectFB-examples-${PV}.tar.gz \
file://configure.in-Fix-string-argument-syntax.patch \
+ file://0001-spacedream-Add-typecast-to-pthread_t-in-assignment.patch \
"
LIC_FILES_CHKSUM = "file://COPYING;md5=ecf6fd2b19915afc4da56043926ca18f"
diff --git a/meta-oe/recipes-graphics/directfb/directfb.inc b/meta-oe/recipes-graphics/directfb/directfb.inc
index bd66a28207..07b98648fd 100644
--- a/meta-oe/recipes-graphics/directfb/directfb.inc
+++ b/meta-oe/recipes-graphics/directfb/directfb.inc
@@ -5,7 +5,7 @@ abstraction, an integrated windowing system with support for \
translucent windows and multiple display layers on top of the \
Linux framebuffer device."
SECTION = "libs"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589"
HOMEPAGE = "http://directfb.org"
@@ -20,14 +20,19 @@ SRC_URI = "http://downloads.yoctoproject.org/mirror/sources/DirectFB-${PV}.tar.g
file://union-sigval.patch \
file://use-PTHREAD_MUTEX_RECURSIVE.patch \
file://fix-client-gfx_state-initialisation.patch \
- "
+ 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 \
+ "
S = "${WORKDIR}/DirectFB-${PV}"
-LDFLAGS_append = " -lm"
+LDFLAGS:append = " -lm"
+
+CXXFLAGS:append:toolchain-clang = " -Wno-error=dtor-typedef"
# Workaround for linking issues seen with armv7a + gold
-LDFLAGS_append_arm = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
+LDFLAGS:append:arm = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', ' -fuse-ld=bfd ', '', d)}"
BINCONFIG = "${bindir}/directfb-config"
@@ -57,18 +62,18 @@ EXTRA_OECONF = "\
#Once -fno-omit-frame-pointer option of gcc is added into TARGET_CLFAGS as default
#this will cause directfb build failure on x86 arch, so filter out it.
-TARGET_CFLAGS_remove_x86 = "-fno-omit-frame-pointer"
+TARGET_CFLAGS:remove:x86 = "-fno-omit-frame-pointer"
#PACKAGES_DYNAMIC += "^directfb-inputdrivers-.*"
#
-#python populate_packages_prepend () {
+#python populate_packages:prepend () {
# inputdrivers_libdir = d.expand('${libdir}/directfb-${RV}/inputdrivers')
# do_split_packages(d, inputdrivers_libdir, '*.so$', 'directfb-inputdrivers-%s', 'Directfb plugin for %s')
#}
# NOTE: monolithic packaging for now, should improve that eventually
-FILES_${PN}-dev += "\
+FILES:${PN}-dev += "\
${bindir}/directfb-config \
${libdir}/directfb-${RV}/systems/*.la \
${libdir}/directfb-${RV}/inputdrivers/*.la \
@@ -76,7 +81,7 @@ FILES_${PN}-dev += "\
${libdir}/directfb-${RV}/wm/*.la \
"
-FILES_${PN} += "\
+FILES:${PN} += "\
${libdir}/directfb-${RV}/systems/*.so \
${libdir}/directfb-${RV}/inputdrivers/*.so \
${libdir}/directfb-${RV}/interfaces/*/*.so \
diff --git a/meta-oe/recipes-graphics/directfb/directfb/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
new file mode 100644
index 0000000000..2f766465e1
--- /dev/null
+++ b/meta-oe/recipes-graphics/directfb/directfb/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -0,0 +1,139 @@
+From 0b66557f2e924023b12006b58d8e86149c745aed Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Nov 2019 20:34:33 -0800
+Subject: [PATCH] Fix build on 32bit arches with 64bit time_t
+
+time element is deprecated on new input_event structure in kernel's
+input.h [1]
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ inputdrivers/linux_input/linux_input.c | 36 ++++++++++++++++++--------
+ 1 file changed, 25 insertions(+), 11 deletions(-)
+
+diff --git a/inputdrivers/linux_input/linux_input.c b/inputdrivers/linux_input/linux_input.c
+index 7e9a6ad..03deebc 100644
+--- a/inputdrivers/linux_input/linux_input.c
++++ b/inputdrivers/linux_input/linux_input.c
+@@ -42,6 +42,11 @@ typedef unsigned long kernel_ulong_t;
+
+ #include <linux/input.h>
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ #ifndef KEY_OK
+ /* Linux kernel 2.5.42+ defines additional keys in linux/input.h */
+ #include "input_fake.h"
+@@ -754,7 +759,8 @@ translate_event( const LinuxInputData *data,
+ DFBInputEvent *devt )
+ {
+ devt->flags = DIEF_TIMESTAMP;
+- devt->timestamp = levt->time;
++ devt->timestamp.tv_sec = levt->input_event_sec;
++ devt->timestamp.tv_usec = levt->input_event_usec;
+
+ switch (levt->type) {
+ case EV_KEY:
+@@ -2139,7 +2145,8 @@ touchpad_translate( struct touchpad_fsm_state *state,
+ int abs, rel;
+
+ devt->flags = DIEF_TIMESTAMP | (dfb_config->linux_input_touch_abs ? DIEF_AXISABS : DIEF_AXISREL);
+- devt->timestamp = levt->time;
++ devt->timestamp.tv_sec = levt->input_event_sec;
++ devt->timestamp.tv_usec = levt->input_event_usec;
+ devt->type = DIET_AXISMOTION;
+
+ switch (levt->code) {
+@@ -2204,7 +2211,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+ DFBInputEvent *devt )
+ {
+ struct timeval timeout = { 0, 125000 };
+-
++ struct timeval tval;
+ /* select() timeout? */
+ if (!levt) {
+ /* Check if button release is due. */
+@@ -2223,6 +2230,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+ return 0;
+ }
+
++ tval.tv_sec = levt->input_event_sec;
++ tval.tv_usec = levt->input_event_usec;
+ /* More or less ignore these events for now */
+ if ((levt->type == EV_SYN && levt->code == SYN_REPORT) ||
+ (levt->type == EV_ABS && levt->code == ABS_PRESSURE) ||
+@@ -2233,7 +2242,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+
+ /* Check if button release is due. */
+ if (state->fsm_state == TOUCHPAD_FSM_DRAG_START &&
+- timeout_passed( &state->timeout, &levt->time )) {
++ timeout_passed( &state->timeout, &tval )) {
+ devt->flags = DIEF_TIMESTAMP;
+ devt->timestamp = state->timeout; /* timeout of levt->time? */
+ devt->type = DIET_BUTTONRELEASE;
+@@ -2255,7 +2264,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+ case TOUCHPAD_FSM_START:
+ if (touchpad_finger_landing( levt )) {
+ state->fsm_state = TOUCHPAD_FSM_MAIN;
+- state->timeout = levt->time;
++ state->timeout.tv_sec = levt->input_event_sec;
++ state->timeout.tv_usec = levt->input_event_usec;
+ timeout_add( &state->timeout, &timeout );
+ }
+ return 0;
+@@ -2268,15 +2278,17 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+ }
+ }
+ else if (touchpad_finger_leaving( levt )) {
+- if (!timeout_passed( &state->timeout, &levt->time )) {
++ if (!timeout_passed( &state->timeout, &tval )) {
+ devt->flags = DIEF_TIMESTAMP;
+- devt->timestamp = levt->time;
++ devt->timestamp.tv_sec = levt->input_event_sec;
++ devt->timestamp.tv_usec = levt->input_event_usec;
+ devt->type = DIET_BUTTONPRESS;
+ devt->button = DIBI_FIRST;
+
+ touchpad_fsm_init( state );
+ state->fsm_state = TOUCHPAD_FSM_DRAG_START;
+- state->timeout = levt->time;
++ state->timeout.tv_sec = levt->input_event_sec;
++ state->timeout.tv_usec = levt->input_event_usec;
+ timeout_add( &state->timeout, &timeout );
+ return 1;
+ }
+@@ -2287,7 +2299,7 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+ return 0;
+
+ case TOUCHPAD_FSM_DRAG_START:
+- if (timeout_passed( &state->timeout, &levt->time )){
++ if (timeout_passed( &state->timeout, &tval )){
+ devt->flags = DIEF_TIMESTAMP;
+ devt->timestamp = state->timeout; /* timeout of levt->time? */
+ devt->type = DIET_BUTTONRELEASE;
+@@ -2299,7 +2311,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+ else {
+ if (touchpad_finger_landing( levt )) {
+ state->fsm_state = TOUCHPAD_FSM_DRAG_MAIN;
+- state->timeout = levt->time;
++ state->timeout.tv_sec = levt->input_event_sec;
++ state->timeout.tv_usec = levt->input_event_usec;
+ timeout_add( &state->timeout, &timeout );
+ }
+ }
+@@ -2314,7 +2327,8 @@ touchpad_fsm( struct touchpad_fsm_state *state,
+ }
+ else if (touchpad_finger_leaving( levt )) {
+ devt->flags = DIEF_TIMESTAMP;
+- devt->timestamp = levt->time;
++ devt->timestamp.tv_sec = levt->input_event_sec;
++ devt->timestamp.tv_usec = levt->input_event_usec;
+ devt->type = DIET_BUTTONRELEASE;
+ devt->button = DIBI_FIRST;
+
diff --git a/meta-oe/recipes-graphics/directfb/directfb/0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch b/meta-oe/recipes-graphics/directfb/directfb/0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch
new file mode 100644
index 0000000000..db4417a3d6
--- /dev/null
+++ b/meta-oe/recipes-graphics/directfb/directfb/0001-os-linux-Fix-build-when-__NR_futex-is-not-available.patch
@@ -0,0 +1,54 @@
+From 7df69c3a784ab2cc4770bdb366cf788cdb78099a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Nov 2020 12:30:41 -0800
+Subject: [PATCH] os/linux: Fix build when __NR_futex is not available
+
+Newer architectures like riscv32 do not define __NR_futex intentionally
+since it uses 64bit time_t from very beginning, therefore only caters to
+futex_time64 syscall
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/direct/os/linux/glibc/system.c | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/lib/direct/os/linux/glibc/system.c b/lib/direct/os/linux/glibc/system.c
+index 373a711..d027a70 100644
+--- a/lib/direct/os/linux/glibc/system.c
++++ b/lib/direct/os/linux/glibc/system.c
+@@ -36,6 +36,7 @@
+
+ #include <errno.h>
+ #include <signal.h>
++#include <sys/syscall.h>
+ #include <unistd.h>
+
+ #include <linux/unistd.h>
+@@ -46,6 +47,10 @@
+ #include <direct/system.h>
+ #include <direct/util.h>
+
++#if !defined(SYS_futex) && defined(SYS_futex_time64)
++# define SYS_futex SYS_futex_time64
++#endif
++
+ D_LOG_DOMAIN( Direct_Futex, "Direct/Futex", "Direct Futex" );
+ D_LOG_DOMAIN( Direct_Trap, "Direct/Trap", "Direct Trap" );
+
+@@ -239,10 +244,9 @@ direct_futex( int *uaddr, int op, int val, const struct timespec *timeout, int *
+ }
+ #endif
+
+- ret = syscall( __NR_futex, uaddr, op, val, timeout, uaddr2, val3 );
++ ret = syscall( SYS_futex, uaddr, op, val, timeout, uaddr2, val3 );
+ if (ret < 0)
+ return errno2result( errno );
+
+ return DR_OK;
+ }
+-
+--
+2.29.2
+
diff --git a/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch b/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch
new file mode 100644
index 0000000000..352bfaf201
--- /dev/null
+++ b/meta-oe/recipes-graphics/directfb/directfb/fix-tslib-version-check.patch
@@ -0,0 +1,38 @@
+fix tslib version check in configure.in
+
+The patch makes sure that the old as well as the new tslib pkg-config
+metadata file naming style is handled correctly.
+
+tslib 0.0 to 1.0 created only a tslib-<VERSION>.pc pkg-config metadata
+file.
+
+With tslib 1.1 the tslib-<VERSION>.pc phase out was started.
+Additionally, the pkg-config metadata file tslib.pc was added.
+
+Since tslib 1.6 the tslib-<VERSION>.pc metadata file is deprecated.
+Now, there is only a tslib.pc.
+
+Upstream-Status: Inappropriate [no upstream]
+Signed-off-by: Ben Guan <ben.guan@cn.bosch.com>
+Signed-off-by: Mark Jonas <mark.jonas@de.bosch.com>
+
+diff -Nru DirectFB-1.7.7.orig/configure.in DirectFB-1.7.7/configure.in
+--- DirectFB-1.7.7.orig/configure.in 2015-02-10 01:16:46.000000000 +0800
++++ DirectFB-1.7.7/configure.in 2018-06-06 17:19:18.472143103 +0800
+@@ -2459,10 +2459,13 @@
+
+ enable_tslib=no
+ if test "$checkfor_tslib" = "yes"; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0.0], [enable_tslib=yes], [enable_tslib=no])
++ PKG_CHECK_MODULES([TSLIB], [tslib >= 1.1], [enable_tslib=yes], [enable_tslib=no])
+ if test "$enable_tslib" = "no"; then
+- PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no
+- AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])])
++ PKG_CHECK_MODULES([TSLIB], [tslib-1.0 >= 1.0], [enable_tslib=yes], [enable_tslib=no])
++ if test "$enable_tslib" = "no"; then
++ PKG_CHECK_MODULES([TSLIB], [tslib-0.0], [enable_tslib=yes], [enable_tslib=no
++ AC_MSG_WARN([*** no tslib -- tslib driver will not be built.])])
++ fi
+ fi
+ fi
+
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 46d4dbde4d..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,16 +5,18 @@ 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/CMakeLists.txt b/CMakeLists.txt
-index 7c66b39..1489ef6 100644
+index 230c87b..e699e83 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -19,7 +19,7 @@ else(NOT SPHINX_EXECUTABLE-NOTFOUND)
- message(STATUS "Could NOT find sphinx-build.")
- endif(NOT SPHINX_EXECUTABLE-NOTFOUND)
+@@ -19,7 +19,7 @@ else(SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
+ message(STATUS "Found sphinx-build: ${SPHINX_EXECUTABLE}")
+ endif(SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
-execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
+#execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(), end='')" OUTPUT_VARIABLE PYTHON_INSTALL_DIR)
@@ -22,5 +24,5 @@ index 7c66b39..1489ef6 100644
execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write('%s.%s' % (sys.version_info.major, sys.version_info.minor))" OUTPUT_VARIABLE PYTHON_MAJOR_DOT_MINOR_VERSION)
message(STATUS "Python install dir is ${PYTHON_INSTALL_DIR}")
--
-2.7.4
+2.17.1
diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch b/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch
deleted file mode 100644
index 75b6b8fd99..0000000000
--- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora/0001-Run-python-scripts-using-env.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 15d0afcfa4868b7b072b3434bac0064617d61f99 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Tue, 19 Dec 2017 14:53:14 +0900
-Subject: [PATCH] Run python scripts using env
-
-Otherwise the build tools hardcode the python path into them.
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- bin/dnfdragora | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/bin/dnfdragora b/bin/dnfdragora
-index b8e0550..cd80f7f 100755
---- a/bin/dnfdragora
-+++ b/bin/dnfdragora
-@@ -1,4 +1,4 @@
--#!/usr/bin/python3
-+#!/usr/bin/env python3
- # vim: set et ts=4 sw=4:
- # Copyright 2016-2017 Angelo Naselli <anaselli@linux.it>
- #
---
-2.7.4
-
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 90ce1d0ac3..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
@@ -3,29 +3,32 @@ From: Lei Maohui <leimaohui@cn.fujitsu.com>
Date: Tue, 19 Dec 2017 11:15:29 +0900
Subject: [PATCH] To fix error when do_package
-QA Issue: nativesdk-dnfdragora: Files/directories were installed but not shipped in any package:
+QA Issue: nativesdk-dnfdragora: Files/directories were installed but not
+shipped in any package:
/etc
/etc/dnfdragora
/etc/dnfdragora/dnfdragora.yaml
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/CMakeLists.txt b/CMakeLists.txt
-index 7c66b39..a5659f7 100644
+index 230c87b..1b8d800 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -52,7 +52,7 @@ endif(ENABLE_COMPS)
+@@ -68,7 +68,7 @@ endif(ENABLE_COMPS)
set(CMAKE_INSTALL_BINDIR "${CMAKE_INSTALL_PREFIX}/bin")
set(CMAKE_INSTALL_DATAROOTDIR "${CMAKE_INSTALL_PREFIX}/share")
set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale")
--set(CMAKE_INSTALL_FULL_SYSCONFDIR "/etc")
-+set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/../etc")
+-set(CMAKE_INSTALL_FULL_SYSCONFDIR "/etc" CACHE PATH "sysconfig directory (default /etc)")
++set(CMAKE_INSTALL_FULL_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/../etc" CACHE PATH "sysconfig directory (default /etc)")
# Configure files
configure_file(${CMAKE_SOURCE_DIR}/etc/dnfdragora.yaml.in ${CMAKE_BINARY_DIR}/etc/dnfdragora.yaml @ONLY)
--
-2.7.4
+2.17.1
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 88bb634162..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,21 +5,23 @@ 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/CMakeLists.txt b/CMakeLists.txt
-index 7c66b39..fc32750 100644
+index 230c87b..1624998 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -65,7 +65,6 @@ endif(GETTEXT_FOUND)
+@@ -81,7 +81,6 @@ endif(GETTEXT_FOUND)
# Build and install the man-pages
- if(NOT SPHINX_EXECUTABLE-NOTFOUND)
+ if(NOT SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
- add_subdirectory(man)
- endif(NOT SPHINX_EXECUTABLE-NOTFOUND)
+ endif(NOT SPHINX_EXECUTABLE STREQUAL "SPHINX_EXECUTABLE-NOTFOUND")
# Installing application code
--
-2.7.4
+2.17.1
diff --git a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.4.bb b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.4.bb
new file mode 100644
index 0000000000..25b16121e8
--- /dev/null
+++ b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_2.1.4.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=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 = "e38e1127e56f5c7cc38e22c6dd4c2728fc4f0b3c"
+
+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_git.bb b/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
deleted file mode 100644
index 9cd1efb8e8..0000000000
--- a/meta-oe/recipes-graphics/dnfdragora/dnfdragora_git.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "dnfdragora is a DNF frontend, based on rpmdragora from Mageia (originally rpmdrake) Perl code."
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504 \
- "
-
-SRC_URI = "git://github.com/manatools/dnfdragora.git \
- 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 \
- file://0001-Run-python-scripts-using-env.patch \
- "
-
-PV = "1.0.1+git${SRCPV}"
-SRCREV = "4fef4ce889b8e4fa03191d414f63bfd50796152a"
-
-S = "${WORKDIR}/git"
-
-inherit cmake gettext pkgconfig python3-dir python3native distutils3-base
-
-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 "
diff --git a/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb b/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb
deleted file mode 100644
index e12bc094d5..0000000000
--- a/meta-oe/recipes-graphics/fbgrab/fbgrab_1.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "FBGrab is a framebuffer screenshot program"
-HOMEPAGE = "http://fbgrab.monells.se/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a"
-SECTION = "console/utils"
-DEPENDS = "libpng zlib"
-SRC_URI = "http://fbgrab.monells.se/${BP}.tar.gz"
-
-inherit autotools-brokensep
-
-SRC_URI[md5sum] = "7d8c24081c681dfbba21f2934c1ac656"
-SRC_URI[sha256sum] = "5fab478cbf8731fbacefaa76236a8f8b38ccff920c53b3a8253bc35509fba8ed"
-
-do_configure_prepend() {
- sed -i 's|$(DESTDIR)/usr/man/|$(DESTDIR)${mandir}/|g' ${S}/Makefile
-}
diff --git a/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb b/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb
new file mode 100644
index 0000000000..7b52ead909
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbgrab/fbgrab_1.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = "FBGrab is a framebuffer screenshot program"
+HOMEPAGE = "https://github.com/GunnarMonell/fbgrab"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ea5bed2f60d357618ca161ad539f7c0a"
+SECTION = "console/utils"
+DEPENDS = "libpng zlib"
+SRC_URI = "git://github.com/GunnarMonell/fbgrab.git;protocol=https;branch=master"
+
+SRCREV = "f43ce6d5ce48fb01360eaa7c4a92c2573a1d02f8"
+S = "${WORKDIR}/git"
+
+inherit autotools-brokensep
+
+do_configure:prepend() {
+ sed -i 's|$(DESTDIR)/usr/man/|$(DESTDIR)${mandir}/|g' ${S}/Makefile
+}
diff --git a/meta-oe/recipes-graphics/fbida/fbida_2.10.bb b/meta-oe/recipes-graphics/fbida/fbida_2.10.bb
deleted file mode 100644
index 0bf48ace6b..0000000000
--- a/meta-oe/recipes-graphics/fbida/fbida_2.10.bb
+++ /dev/null
@@ -1,73 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-DEPENDS = "virtual/libiconv jpeg fontconfig freetype libexif"
-
-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://use-jpeg-turbo.patch \
- "
-SRC_URI[md5sum] = "09460b964b58c2e39b665498eca29018"
-SRC_URI[sha256sum] = "7a5a3aac61b40a6a2bbf716d270a46e2f8e8d5c97e314e927d41398a4d0b6cb6"
-
-B = "${WORKDIR}/build"
-
-inherit pkgconfig
-
-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"
-
-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 bash"
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..ebf88cd0e1
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/fbida_git.bb
@@ -0,0 +1,42 @@
+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/"
+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 udev libinput cairo"
+
+PV = "2.14+git${SRCPV}"
+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..d686def3d2
--- /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: Pending
+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..304c6600ca
--- /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: Pending
+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..fe36fcb7cb
--- /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: Pending
+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/fbida-gcc10.patch b/meta-oe/recipes-graphics/fbida/files/fbida-gcc10.patch
new file mode 100644
index 0000000000..1104289f3c
--- /dev/null
+++ b/meta-oe/recipes-graphics/fbida/files/fbida-gcc10.patch
@@ -0,0 +1,61 @@
+Fix build with gcc10
+
+Patch from https://src.fedoraproject.org/rpms/fbida/raw/master/f/fbida.gcc10.patch
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- fbida-2.14/fbi.c.org 2020-03-15 17:02:17.944189632 +0100
++++ fbida-2.14/fbi.c 2020-03-15 17:02:21.880223224 +0100
+@@ -100,7 +100,6 @@
+
+ /* graphics interface */
+ gfxstate *gfx;
+-int debug;
+
+ /* framebuffer */
+ char *fbdev = NULL;
+--- fbida-2.14/filter.c 2020-03-15 16:44:17.159855150 +0100
++++ fbida-2.14/filter.c 2020-03-15 16:44:27.017941447 +0100
+@@ -6,8 +6,6 @@
+ #include "readers.h"
+ #include "filter.h"
+
+-int debug = 0;
+-
+ /* ----------------------------------------------------------------------- */
+
+ static void
+--- fbida-2.14/readers.c.org 2020-03-15 17:01:18.692683597 +0100
++++ fbida-2.14/readers.c 2020-03-15 16:57:19.141632384 +0100
+@@ -6,6 +6,8 @@
+
+ #include "readers.h"
+
++int debug=0;
++
+ /* ----------------------------------------------------------------------- */
+
+ void load_bits_lsb(unsigned char *dst, unsigned char *src, int width,
+
+--- fbida-2.14/viewer.c.org 2020-03-15 17:05:02.991595832 +0100
++++ fbida-2.14/viewer.c 2020-03-15 17:04:55.424531467 +0100
+@@ -40,7 +40,6 @@
+ #define PROCESS_LINES 16
+
+-int debug;
+ Cursor ptrs[POINTER_COUNT];
+
+ /* ----------------------------------------------------------------------- */
+
+--- fbida-2.14/idaconfig.h.org 2020-03-15 17:07:09.239668196 +0100
++++ fbida-2.14/idaconfig.h 2020-03-15 17:07:21.248770061 +0100
+@@ -17,7 +17,7 @@
+
+ /* -------------------------------------------------------------------------- */
+
+-char *ida_lists;
++extern char *ida_lists;
+
+ void ida_init_config(void);
+ void ida_read_config(void);
diff --git a/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch b/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch
index 909a0a6c0f..ef70a070dd 100644
--- a/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch
+++ b/meta-oe/recipes-graphics/fbida/files/fix-preprocessor.patch
@@ -1,14 +1,8 @@
-Index: fbida-2.13/GNUmakefile
-===================================================================
---- fbida-2.13.orig/GNUmakefile
-+++ fbida-2.13/GNUmakefile
-@@ -53,8 +53,7 @@ include $(srcdir)/mk/Autoconf.mk
-
- ac_jpeg_ver = $(shell \
- $(call ac_init,for libjpeg version);\
-- $(call ac_s_cmd,echo JPEG_LIB_VERSION \
-- | cpp -include jpeglib.h | tail -n 1);\
-+ $(call ac_s_cmd,cpp -include jpeglib.h -dM -E -x c /dev/null | grep 'define JPEG_LIB_VERSION' | cut -f 3 -d' ');\
- $(call ac_fini))
-
- define make-config
+Upstream-Status: Pending
+
+--- a/scripts/jpeg-version.sh
++++ b/scripts/jpeg-version.sh
+@@ -1,2 +1,2 @@
+ #!/bin/sh
+-echo JPEG_LIB_VERSION | cpp $CFLAGS -include jpeglib.h | tail -1
++${CPP} -include jpeglib.h -dM -E -x c /dev/null | grep 'define JPEG_LIB_VERSION' | cut -f 3 -d' '
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.bb b/meta-oe/recipes-graphics/feh/feh_3.10.bb
new file mode 100644
index 0000000000..0f0e61893a
--- /dev/null
+++ b/meta-oe/recipes-graphics/feh/feh_3.10.bb
@@ -0,0 +1,31 @@
+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] = "1d71d1f6dcfe9ffee5e2766969a11978f7eb4fac7d7ae556f104c11f9c57cc98"
+
+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-cmake-Use-alternate-way-to-detect-libm.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch
new file mode 100644
index 0000000000..573866eb15
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-cmake-Use-alternate-way-to-detect-libm.patch
@@ -0,0 +1,77 @@
+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
+
+The standard package provided with MathLib cmake module does not work
+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 | 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
+@@ -115,9 +115,14 @@ else()
+ endif()
+ find_package(Iconv REQUIRED)
+ find_package(LibXml2 REQUIRED)
+-find_package(MathLib REQUIRED)
+ find_package(ZLIB REQUIRED)
+
++include(CheckLibraryExists)
++CHECK_LIBRARY_EXISTS(m pow "" HAVE_LIB_M)
++if (HAVE_LIB_M)
++ set(EXTRA_LIBS ${EXTRA_LIBS} m)
++endif (HAVE_LIB_M)
++
+ 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,7 +15,7 @@ add_executable(woff woff.c)
+
+ target_link_libraries(acorn2sfd PRIVATE fontforge)
+ target_link_libraries(dewoff PRIVATE ZLIB::ZLIB)
+-target_link_libraries(pcl2ttf PRIVATE MathLib::MathLib)
++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
+ GLIB::GLIB
+ Intl::Intl
+ PRIVATE
+- MathLib::MathLib
++ ${EXTRA_LIBS}
+ 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
+@@ -121,7 +121,7 @@ if(ENABLE_PYTHON_SCRIPTING_RESULT)
+ target_link_libraries(fontforgeexe PRIVATE Python3::Python)
+ endif()
+
+-target_link_libraries(fontforgeexe PRIVATE fontforge Iconv::Iconv MathLib::MathLib)
++target_link_libraries(fontforgeexe PRIVATE fontforge Iconv::Iconv ${EXTRA_LIBS})
+ install(TARGETS fontforgeexe RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+ if(UNIX)
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-fontforgeexe-Use-env-to-find-fontforge.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-fontforgeexe-Use-env-to-find-fontforge.patch
new file mode 100644
index 0000000000..e8c1a11d48
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-fontforgeexe-Use-env-to-find-fontforge.patch
@@ -0,0 +1,29 @@
+From f5a19ad9b2aea85dab28e7c61ac39404631fad2d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 6 Jul 2022 04:54:23 -0700
+Subject: [PATCH] fontforgeexe: Use env to find fontforge
+
+This helps in avoiding to encode build paths into interpeter
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ fontforgeexe/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/fontforgeexe/CMakeLists.txt b/fontforgeexe/CMakeLists.txt
+index b2d663b88..e2a8fee54 100644
+--- a/fontforgeexe/CMakeLists.txt
++++ b/fontforgeexe/CMakeLists.txt
+@@ -118,7 +118,7 @@ if(UNIX)
+ foreach(_script fontimage.pe fontlint.pe sfddiff.pe)
+ get_filename_component(_output \"\${_script}\" NAME_WE)
+ file(READ \"${CMAKE_CURRENT_SOURCE_DIR}/\${_script}\" _input)
+- file(WRITE \"${CMAKE_CURRENT_BINARY_DIR}/\${_output}\" \"#!\${CMAKE_INSTALL_PREFIX}/bin/fontforge -lang=ff\\n\${_input}\")
++ file(WRITE \"${CMAKE_CURRENT_BINARY_DIR}/\${_output}\" \"#!/usr/bin/env fontforge -lang=ff\\n\${_input}\")
+ endforeach()
+ " COMPONENT nativescripts)
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/fontimage" "${CMAKE_CURRENT_BINARY_DIR}/fontlint" "${CMAKE_CURRENT_BINARY_DIR}/sfddiff"
+--
+2.37.0
+
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge/0001-include-sys-select-on-non-glibc-platforms.patch b/meta-oe/recipes-graphics/fontforge/fontforge/0001-include-sys-select-on-non-glibc-platforms.patch
new file mode 100644
index 0000000000..27de27d57d
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/fontforge/0001-include-sys-select-on-non-glibc-platforms.patch
@@ -0,0 +1,24 @@
+From 798f2816130838f3618212291de6ab0ea814c868 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 29 Sep 2019 20:39:02 -0700
+Subject: [PATCH] include sys/select on non-glibc platforms
+
+musl needs sys/select.h for defining fd_set
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gdraw/gdraw.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/gdraw/gdraw.c
++++ b/gdraw/gdraw.c
+@@ -33,7 +33,7 @@
+ #include "gkeysym.h"
+ #include "ustring.h"
+
+-#if __Mac
++#if __Mac || (defined(__linux__) && !defined(__GLIBC__))
+ # include <sys/select.h>
+ #endif
+
diff --git a/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb b/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
deleted file mode 100644
index 481fedf983..0000000000
--- a/meta-oe/recipes-graphics/fontforge/fontforge_20170731.bb
+++ /dev/null
@@ -1,60 +0,0 @@
-SUMMARY = "A font editor"
-HOMEPAGE = "http://fontforge.github.io/en-US/"
-LICENSE = "BSD-3-Clause & GPLv3"
-LIC_FILES_CHKSUM = " \
- file://COPYING.gplv3;md5=d32239bcb673463ab874e80d47fae504 \
- file://LICENSE;md5=3f922b42ed0033fa0fd4cd3268f6429c \
-"
-
-DEPENDS = "glib-2.0 pango giflib tiff libxml2 jpeg python libtool uthash gnulib gettext-native"
-DEPENDS_append_class-target = " libxi"
-
-inherit autotools pkgconfig pythonnative distro_features_check gettext
-
-REQUIRED_DISTRO_FEATURES_append_class-target = " x11"
-
-SRC_URI = "git://github.com/${BPN}/${BPN}.git"
-# tag 20170731
-SRCREV = "b9149c13e8f9464fc21473f1f676b36a2130775d"
-S = "${WORKDIR}/git"
-
-EXTRA_OECONF_append_class-native = " with_x=no"
-
-do_configure_prepend() {
- # uthash sources are expected in uthash/src
- currdir=`pwd`
- cd ${S}
-
- mkdir -p uthash/src
- cp ${STAGING_INCDIR}/ut*.h uthash/src
-
- # avoid bootstrap cloning gnulib on every configure
- cat >.gitmodules <<EOF
-[submodule "gnulib"]
- path = gnulib
- url = git://git.sv.gnu.org/gnulib
-EOF
- cp -rf ${STAGING_DATADIR}/gnulib ${S}
-
- # --force to avoid errors on reconfigure e.g if recipes changed we depend on
- # | bootstrap: running: libtoolize --quiet
- # | libtoolize: error: 'libltdl/COPYING.LIB' exists: use '--force' to overwrite
- # | ...
- ./bootstrap --force
-
- cd $currdir
-}
-
-PACKAGES =+ "${PN}-python-dbg ${PN}-python"
-
-FILES_${PN} += " \
- ${datadir}/mime \
- ${datadir}/icons \
-"
-
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR} ${datadir}/${PN}/python"
-FILES_${PN}-python-dbg = "${PYTHON_SITEPACKAGES_DIR}/.debug"
-RDEPENDS_${PN}-python = "python"
-
-# 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..2b425c583d
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/fontforge_20230101.bb
@@ -0,0 +1,49 @@
+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 \
+"
+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/libspiro_20200505.bb b/meta-oe/recipes-graphics/fontforge/libspiro_20200505.bb
new file mode 100644
index 0000000000..c885a00c5b
--- /dev/null
+++ b/meta-oe/recipes-graphics/fontforge/libspiro_20200505.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/20200505/libspiro-dist-20200505.tar.gz"
+SRC_URI[sha256sum] = "06c69a1e8dcbcabcf009fd96fd90b1a244d0257246e376c2c4d57c4ea4af0e49"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb b/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb
deleted file mode 100644
index d54fafc8d4..0000000000
--- a/meta-oe/recipes-graphics/freeglut/freeglut_3.0.0.bb
+++ /dev/null
@@ -1,17 +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] = "90c3ca4dd9d51cf32276bc5344ec9754"
-SRC_URI[sha256sum] = "2a43be8515b01ea82bcfa17d29ae0d40bd128342f0930cd1f375f1ff999f76a2"
-
-inherit cmake distro_features_check
-
-# depends on virtual/libx11, virtual/libgl
-REQUIRED_DISTRO_FEATURES = "x11 opengl"
-
-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..b433900bb0
--- /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
+REQUIRED_DISTRO_FEATURES = "opengl"
+
+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-Explicit-typecast-to-avoid-implicit-double-to-float-.patch b/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch
new file mode 100644
index 0000000000..385bff8dd1
--- /dev/null
+++ b/meta-oe/recipes-graphics/ftgl/ftgl/0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch
@@ -0,0 +1,38 @@
+From e3bce98a60d6db3b719bbf5d71f732f9b86cb566 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 9 Feb 2019 08:28:09 -0800
+Subject: [PATCH] Explicit typecast to avoid implicit double to float
+ conversion
+
+fixes compile errors e.g.
+
+../../ftgl-2.1.3~rc5/demo/simple.cpp:110:27: error: non-constant-expression cannot be narrowed from type 'double' to
+ 'float' in initializer list [-Wc++11-narrowing]
+ (t3 + 2.0) / 3, 0.3 };
+ ^~~~~~~~~~~~~~
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ demo/simple.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/demo/simple.cpp b/demo/simple.cpp
+index 532e862..aba55b4 100644
+--- a/demo/simple.cpp
++++ b/demo/simple.cpp
+@@ -105,9 +105,9 @@ static void RenderScene(void)
+ float t2 = sin(n / 50 + 1);
+ float t3 = sin(n / 30 + 2);
+
+- float ambient[4] = { (t1 + 2.0) / 3,
+- (t2 + 2.0) / 3,
+- (t3 + 2.0) / 3, 0.3 };
++ float ambient[4] = { float(t1 + 2.0) / 3,
++ float(t2 + 2.0) / 3,
++ float(t3 + 2.0) / 3, 0.3 };
+ float diffuse[4] = { 1.0, 0.9, 0.9, 1.0 };
+ float specular[4] = { 1.0, 0.7, 0.7, 1.0 };
+ float position[4] = { 100.0, 100.0, 0.0, 1.0 };
+--
+2.20.1
+
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
new file mode 100644
index 0000000000..e5ed0bdb86
--- /dev/null
+++ b/meta-oe/recipes-graphics/ftgl/ftgl/0001-use-pkg-config-to-find-freetype2.patch
@@ -0,0 +1,38 @@
+From 8bb183926078b6dd54048fb6820838fe7b6e6163 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Sun, 23 Oct 2016 22:46:43 +0200
+Subject: [PATCH] use pkg-config to find freetype2
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+---
+ configure.ac | 9 +++++++--
+ 1 file changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 53560ea..b5bb6a3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -41,8 +41,13 @@ AC_CHECK_FUNCS(strndup)
+
+ AC_PATH_X
+
+-AC_CHECK_FT2([9.0.3],[],
+- [AC_MSG_ERROR([FreeType2 is required to compile this library])])
++PKG_CHECK_MODULES(FT2, freetype2,
++ CFLAGS="$CFLAGS $FT2_CFLAGS"
++ LIBS="$LIBS $FT2_LIBS",
++ AC_MSG_ERROR([FreeType2 is required to compile this library])
++)
++AC_SUBST([FT2_CFLAGS])
++AC_SUBST([FT2_LIBS])
+
+ AC_PATH_XTRA
+
+--
+2.5.5
+
diff --git a/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch b/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch
new file mode 100644
index 0000000000..830783e204
--- /dev/null
+++ b/meta-oe/recipes-graphics/ftgl/ftgl/0002-Makefile.am-remove-useless-and-breaking-code.patch
@@ -0,0 +1,38 @@
+From daabb4110661c4358ec73293d5c0b2106f567c1f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
+Date: Sun, 23 Oct 2016 23:54:14 +0200
+Subject: [PATCH] Makefile.am: remove useless and breaking code
+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@googlemail.com>
+---
+ Makefile.am | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 89a8a7f..e582a34 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -24,15 +24,6 @@ EXTRA_DIST = \
+ m4 \
+ $(NULL)
+
+-# Print out an informative summary.
+-all-local:
+- @$(ECHO) "Done."
+- @$(ECHO)
+- @if test "x$(MAKECMDGOALS)" = "xall-am" -o "x$(.TARGETS)" = "xall-am" -o "x$(MAKECMDGOALS)" = "x" -o "x$(.TARGETS)" = "x" ; then \
+- $(ECHO) "---" ;\
+- $(ECHO) "Run 'make install' to begin installation into $(prefix)" ;\
+- fi
+- @$(ECHO)
+
+ # Upload documentation
+ DOC = docs/html docs/latex/ftgl.pdf
+--
+2.5.5
+
diff --git a/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb b/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb
new file mode 100644
index 0000000000..65f72747cc
--- /dev/null
+++ b/meta-oe/recipes-graphics/ftgl/ftgl_2.1.3-rc5.bb
@@ -0,0 +1,27 @@
+SUMMARY = "OpenGL frontend to Freetype 2"
+HOMEPAGE = "https://sourceforge.net/projects/ftgl/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=527a83e92c7bf363025380eec05df6e4"
+
+inherit autotools pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "opengl x11"
+
+DEPENDS += " \
+ freetype \
+ freeglut \
+"
+
+SRC_URI = " \
+ ${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
+ file://0001-use-pkg-config-to-find-freetype2.patch \
+ file://0002-Makefile.am-remove-useless-and-breaking-code.patch \
+ file://0001-Explicit-typecast-to-avoid-implicit-double-to-float-.patch \
+"
+SRC_URI[md5sum] = "c7879018cde844059495b3029b0b6503"
+SRC_URI[sha256sum] = "521ff7bd62c459ff5372e269c223e2a6107a6a99a36afdc2ae634a973af70c59"
+
+S = "${WORKDIR}/ftgl-2.1.3~rc5"
+
+# undefined reference to symbol 'sin@@GLIBC_2.4'
+CFLAGS += "-lm"
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 5a76474558..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,11 +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.
-The fvwm(1) man page is created from Docbook XML which is set for
-a Windows code page that is not available when compiling. Easiest is
-to just not create the man page as those are not needed on the monitor.
-
-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>
@@ -27,22 +23,7 @@ diff --git a/configure.ac b/configure.ac
index 48ce264..fab7b44 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1413,23 +1413,7 @@ else
- problem_gdkimlib=": Failed on gdk-imlib, see config.log"
- fi
-
--GNOME_INIT_HOOK
--
--# Unfortunately we have 2 gnome supports: WM hints and gnome libs.
--# The $with_gnomehints below refers to the first, not GNOME_INIT_HOOK.
--if test ! x"$enable_gnome_hints" = xno; then
-- with_gnomehints=yes
-- problem_gnomehints=""
--else
-- with_gnomehints=no
-- problem_gnomehints=": Explicitly disabled"
--fi
--
+@@ -1413,8 +1413,4 @@ else
# Define some compatibility macros needed for config.h.
-mg_DEFINE_IF_NOT([#include <X11/keysym.h>],
- [defined XK_Page_Up && defined XK_Page_Down],
@@ -51,19 +32,6 @@ index 48ce264..fab7b44 100644
AH_VERBATIM([_COMPAT_OLD_KEYSYMDEF],
[#ifdef COMPAT_OLD_KEYSYMDEF
# define XK_Page_Up XK_Prior
-diff --git a/doc/fvwm/Makefile.am b/doc/fvwm/Makefile.am
-index cddb102..ff00149 100755
---- a/doc/fvwm/Makefile.am
-+++ b/doc/fvwm/Makefile.am
-@@ -10,7 +10,7 @@ XSL_PROFILE = $(srcdir)/../docbook-xsl/profiling/profile.xsl
- HTML_FILES = fvwm.man.html
- XML_FILES = @DOC_SECTIONS_XML_PATH@
- EXTRA_DIST = @DOC_SECTIONS_XML@ $(man_MANS) sections
--man_MANS = fvwm.1
-+man_MANS =
-
- if FVWM_BUILD_HTMLDOC
- doc_DATA = $(HTML_FILES)
--
1.9.1
diff --git a/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch b/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch
deleted file mode 100644
index 756cc86e87..0000000000
--- a/meta-oe/recipes-graphics/fvwm/fvwm/0002-Avoid-absolute-symlinks.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
-Date: Tue, 29 Auf 2017 16:08:42 +0200
-Subject: [PATCH] Avoid absolute symlinks
-
-Avoid usage of absolute symlinks, which breaks yocto builds
-since pyro.
-
-Upstream-Status: Pending
-Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
-
-diff --git a/default-config/Makefile.am b/default-config/Makefile.am
-index 5e16d095a137..5404145a742c 100644
---- a/default-config/Makefile.am
-+++ b/default-config/Makefile.am
-@@ -17,9 +17,9 @@ EXTRA_DIST = images \
-
- install-data-hook:
- cp -r $(srcdir)/images $(inst_location)
-- ln -sf $(inst_location)/FvwmScript-DateTime $(inst_location)/..
-- ln -sf $(inst_location)/FvwmScript-ConfirmQuit $(inst_location)/..
-- ln -sf $(inst_location)/FvwmScript-ConfirmCopyConfig $(inst_location)/..
-+ ln -sf default-config/FvwmScript-DateTime $(inst_location)/..
-+ ln -sf default-config/FvwmScript-ConfirmQuit $(inst_location)/..
-+ ln -sf default-config/FvwmScript-ConfirmCopyConfig $(inst_location)/..
-
- uninstall-hook:
- rm -fr $(DESTDIR)/$(configdir)
diff --git a/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb b/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb
deleted file mode 100644
index cb851bfd96..0000000000
--- a/meta-oe/recipes-graphics/fvwm/fvwm_2.6.7.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-SUMMARY = "F Virtual Window Manager "
-HOMEPAGE = "http://www.fvwm.org/"
-SECTION = "x11/wm"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=363fbcfb59124689af72c914560eaf6e"
-
-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 \
-"
-
-PV = "2.6.7+git${SRCPV}"
-
-SRC_URI = " \
- git://github.com/fvwmorg/fvwm.git;protocol=https \
- file://0001-Fix-compilation-for-disabled-gnome.patch \
- file://0002-Avoid-absolute-symlinks.patch \
-"
-
-SRCREV = "597a4e296da4f21e71a17facab297e016a3a80a8"
-
-S = "${WORKDIR}/git"
-
-inherit autotools gettext update-alternatives pkgconfig pythonnative perlnative distro_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-freetypetest \
- --disable-htmldoc \
- --disable-imlibtest \
- --disable-mandoc \
- --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 \
-"
-
-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
-}
-
-# the only needed packages (note: locale packages are automatically generated
-# as well)
-PACKAGES = " \
- ${PN} \
- ${PN}-dbg \
-"
-
-# minimal set of binaries
-FILES_${PN} = " \
- ${bindir}/fvwm \
- ${bindir}/fvwm-root \
- ${datadir}/fvwm/ConfigFvwmDefaults \
-"
-
-RDEPENDS_${PN} = " \
- xuser-account \
-"
-
-# by default a lot of stuff is installed and it's not easy to control what to
-# install, so install everything, but skip the check
-INSANE_SKIP_${PN} = " \
- installed-vs-shipped \
-"
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/gegl/gegl/pkgconfig.patch b/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch
deleted file mode 100644
index d145b625f6..0000000000
--- a/meta-oe/recipes-graphics/gegl/gegl/pkgconfig.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: gegl-0.2.0/configure.ac
-===================================================================
---- gegl-0.2.0.orig/configure.ac 2012-04-02 21:56:49.000000000 +0000
-+++ gegl-0.2.0/configure.ac 2014-07-17 21:34:15.312546602 +0000
-@@ -765,15 +765,7 @@
-
- have_sdl="no"
- if test "x$with_sdl" != "xno"; then
-- AC_PATH_PROG(SDL_CONFIG, sdl-config, no)
-- if test "$SDL_CONFIG" = "no"; then
-- have_sdl="no (SDL library not found)"
-- AC_MSG_RESULT([*** Check for SDL library failed.])
-- else
-- have_sdl="yes"
-- SDL_CFLAGS=`$SDL_CONFIG --cflags`
-- SDL_LIBS=`$SDL_CONFIG --libs`
-- fi
-+ PKG_CHECK_MODULES([SDL], [sdl], [have_sdl="yes"], [have_sdl="no (SDL library not found)"])
- fi
-
- AM_CONDITIONAL(HAVE_SDL, test "$have_sdl" = "yes")
diff --git a/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb b/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
deleted file mode 100644
index 0053c0c689..0000000000
--- a/meta-oe/recipes-graphics/gegl/gegl_0.3.18.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "GEGL (Generic Graphics Library) is a graph based image processing framework"
-LICENSE = "LGPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "babl librsvg glib-2.0 gtk+ pango cairo expat zlib libpng jpeg virtual/libsdl json-glib intltool-native"
-
-EXTRA_OECONF = "--disable-docs"
-
-inherit distro_features_check gnomebase vala gobject-introspection
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jasper] = "--with-jasper,--without-jasper,jasper"
-PACKAGECONFIG[avformat] = "--with-libavformat,--without-libavformat,libav"
-PACKAGECONFIG[lcms] = "--with-lcms,--without-lcms,lcms"
-PACKAGECONFIG[tiff] = "--with-libtiff,--without-libtiff,tiff"
-PACKAGECONFIG[webp] = "--with-webp,--without-webp,webp"
-
-SRC_URI = "http://ftp.gimp.org/pub/${BPN}/0.3/${BP}.tar.bz2 \
- file://pkgconfig.patch "
-SRC_URI[md5sum] = "6e5c6f229261478dc436a38c84405b2a"
-SRC_URI[sha256sum] = "d7858ef26ede136d14e3de188a9e9c0de7707061a9fb96d7d615fab4958491fb"
-
-LDFLAGS += "-lm"
-
-# There are a couple of non-symlink .so files installed into libdir, which need to go into main package
-FILES_${PN}_append = " ${libdir}/gegl-0.3/*.so ${libdir}/gegl-0.3/*.json ${libdir}/libgegl-npd-0.3.so ${libdir}/libgegl-sc-0.3.so"
-FILES_${PN}-dev_append = " ${libdir}/gegl-0.3/*.la ${libdir}/libgegl-0.3.so"
-FILES_${PN}-dev_remove = "${libdir}/lib*.so"
-
-# 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"
diff --git a/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch b/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch
deleted file mode 100644
index fecd0121c3..0000000000
--- a/meta-oe/recipes-graphics/gimp/gimp/0001-configure-ac-do-not-check-for-freetype-config.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 72ad76841d87e857428693d812a961935284ac62 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Thu, 12 Feb 2015 15:57:47 +0100
-Subject: [PATCH] configure-ac: do not check for freetype-config
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-freetype-config is not allowed in our environment - see also binconfig-disabled
-
-Upstream-Status: inappropriate [OE specific]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- configure.ac | 7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 26812b6..abec714 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -647,13 +647,6 @@ if test "x$fontconfig_ok" = xno; then
- fi
-
-
--AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
--if test "x$FREETYPE_CONFIG" != "xno" ; then
-- AC_MSG_CHECKING([for freetype libraries])
-- FREETYPE_LIBS=`$FREETYPE_CONFIG --libs`
-- AC_MSG_RESULT($FREETYPE_LIBS)
--fi
--AC_SUBST(FREETYPE_LIBS)
-
-
- ##########################################
---
-1.9.3
-
diff --git a/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch b/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch
deleted file mode 100644
index 7da78e2052..0000000000
--- a/meta-oe/recipes-graphics/gimp/gimp/0003-Fix-use-of-gegl-API.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e1c8f4b8323e3965271a93529eab5774c1a7083c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 29 Jun 2017 10:32:14 -0700
-Subject: [PATCH 3/3] Fix use of gegl API
-
-newer version of gegl does not define GEGL_IS_PARAM_SPEC_MULTILINE
-
-| core/libappcore.a(gimpparamspecs-duplicate.o): In function `gimp_param_spec_duplicate':
-| /usr/src/debug/gimp/2.8.22-r0/gimp-2.8.22/app/core/../../../../../../../../../workspace/sources/gimp/app/core/gimpparamspecs-duplicate.c:70: undefined reference to `GEGL_IS_PARAM_SPEC_MULTILINE'
-| collect2: error: ld returned 1 exit status
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- app/core/gimpparamspecs-duplicate.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/app/core/gimpparamspecs-duplicate.c b/app/core/gimpparamspecs-duplicate.c
-index c0b7426..2efaf23 100644
---- a/app/core/gimpparamspecs-duplicate.c
-+++ b/app/core/gimpparamspecs-duplicate.c
-@@ -67,7 +67,7 @@ gimp_param_spec_duplicate (GParamSpec *pspec)
- spec->default_value,
- pspec->flags);
-
-- if (GEGL_IS_PARAM_SPEC_MULTILINE (pspec))
-+ if (gegl_param_spec_get_property_key(pspec, "multiline"))
- {
- g_param_spec_set_qdata (new, multiline_quark,
- GINT_TO_POINTER (TRUE));
---
-2.13.2
-
diff --git a/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch b/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch
deleted file mode 100644
index b71bf329e9..0000000000
--- a/meta-oe/recipes-graphics/gimp/gimp/bump_Babl-GEGL_versions.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Bump acceptable versions of babl and gegl.
-
-Patch is taken from debian:
-https://packages.debian.org/stretch/gimp
-
-Upstream-Status: Inappropriate [OE specific]
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
-diff --git a/app/sanity.c b/app/sanity.c
-index febddfb..85fea55 100644
---- a/app/sanity.c
-+++ b/app/sanity.c
-@@ -351,7 +351,7 @@ sanity_check_babl (void)
-
- #define BABL_REQUIRED_MAJOR 0
- #define BABL_REQUIRED_MINOR 1
--#define BABL_REQUIRED_MICRO 10
-+#define BABL_REQUIRED_MICRO 12
-
- babl_get_version (&babl_major_version,
- &babl_minor_version,
-@@ -388,7 +388,7 @@ sanity_check_gegl (void)
- gint gegl_micro_version;
-
- #define GEGL_REQUIRED_MAJOR 0
--#define GEGL_REQUIRED_MINOR 2
-+#define GEGL_REQUIRED_MINOR 3
- #define GEGL_REQUIRED_MICRO 0
-
- gegl_get_version (&gegl_major_version,
-diff --git a/configure.ac b/configure.ac
-index 26812b6..4252fe9 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -40,8 +40,8 @@ m4_define([gimp_stable],
- m4_define([gimp_full_name], [GNU Image Manipulation Program])
-
- # required versions of other packages
--m4_define([babl_required_version], [0.1.10])
--m4_define([gegl_required_version], [0.2.0])
-+m4_define([babl_required_version], [0.1.12])
-+m4_define([gegl_required_version], [0.3.0])
- m4_define([glib_required_version], [2.30.2])
- m4_define([atk_required_version], [2.2.0])
- m4_define([gtk_required_version], [2.24.10])
-@@ -519,7 +519,7 @@ AC_SUBST(ISO_CODES_LOCALEDIR)
- ###############################
-
- PKG_CHECK_MODULES(BABL, babl >= babl_required_version)
--PKG_CHECK_MODULES(GEGL, gegl-0.2 >= gegl_required_version)
-+PKG_CHECK_MODULES(GEGL, gegl-0.3 >= gegl_required_version)
- PKG_CHECK_MODULES(ATK, atk >= atk_required_version)
-
- AM_PATH_GLIB_2_0(glib_required_version, :,
diff --git a/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb b/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
deleted file mode 100644
index 943986e77e..0000000000
--- a/meta-oe/recipes-graphics/gimp/gimp_2.8.22.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "The GIMP is the GNU Image Manipulation Program"
-HOMEPAGE = "http://www.gimp.org"
-SECTION = "x11/graphics"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = " \
- gdk-pixbuf-native \
- intltool-native \
- libxslt-native \
- gtk+ \
- babl \
- gegl \
- jpeg \
- libpng \
- libexif \
- tiff \
- lcms \
- poppler \
- jasper \
- bzip2 \
- libgudev \
- libmng \
-"
-DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxmu libxpm', '', d)}"
-
-inherit distro_features_check gnome gtk-doc
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://ftp.gimp.org/pub/gimp/v2.8/gimp-${PV}.tar.bz2 \
- file://0001-configure-ac-do-not-check-for-freetype-config.patch \
- file://bump_Babl-GEGL_versions.patch \
- file://0003-Fix-use-of-gegl-API.patch \
- "
-SRC_URI[md5sum] = "7e4fd7a53b1d3c32dff642ab1a94b44d"
-SRC_URI[sha256sum] = "9187a35cc52b110d78124d7b27b68a68ade14a794c2721314bac6134d2a5638a"
-
-EXTRA_OECONF = "--disable-python \
- --without-webkit \
- --without-wmf"
-
-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
-}
-
-CFLAGS += "-fPIC"
-
-FILES_${PN}-dbg += "${libdir}/gimp/2.0/*/.debug"
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch b/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch
deleted file mode 100644
index d69c5af3af..0000000000
--- a/meta-oe/recipes-graphics/glm/files/0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch
+++ /dev/null
@@ -1,860 +0,0 @@
-From 99a9676a0193f6291d7202d7af72e24580abe565 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 16 Mar 2018 13:55:29 +0100
-Subject: [PATCH 1/2] Make GLM_ENABLE_EXPERIMENTAL a configurable option
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-It seems that erroring out if GLM_ENABLE_EXPERIMENTAL is not set turns into
-packagers nightmare: There are packages around expecting glx headers. E.g
-libgltf [1] fails during configure checking for usable headers AND during
-compile. Paticularly fixing configure for those packages is time-consuming:
-The only way (correct me if I am wrong) is creating a patch adding
-
-AC_DEFINE([GLM_ENABLE_EXPERIMENTAL], [1], [glm needs this for gtx headers])
-
-By adding a configure option 'GLM_ENABLE_EXPERIMENTAL', the decision to use
-glm/glx is done at one (and the right) place.
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
-[1] https://gerrit.libreoffice.org/gitweb?p=libgltf.git
-
-Uptream-Status: Submitted [2]
-
-[2] https://github.com/g-truc/glm/pull/741
----
- CMakeLists.txt | 6 ++++++
- glm/CMakeLists.txt | 2 ++
- glm/experimental.hpp.in | 1 +
- glm/ext.hpp | 1 +
- glm/gtx/associated_min_max.hpp | 1 +
- glm/gtx/bit.hpp | 1 +
- glm/gtx/closest_point.hpp | 1 +
- glm/gtx/color_space.hpp | 1 +
- glm/gtx/color_space_YCoCg.hpp | 1 +
- glm/gtx/common.hpp | 1 +
- glm/gtx/compatibility.hpp | 1 +
- glm/gtx/component_wise.hpp | 1 +
- glm/gtx/dual_quaternion.hpp | 1 +
- glm/gtx/euler_angles.hpp | 1 +
- glm/gtx/extend.hpp | 1 +
- glm/gtx/extended_min_max.hpp | 1 +
- glm/gtx/fast_exponential.hpp | 1 +
- glm/gtx/fast_square_root.hpp | 1 +
- glm/gtx/fast_trigonometry.hpp | 1 +
- glm/gtx/gradient_paint.hpp | 1 +
- glm/gtx/handed_coordinate_space.hpp | 1 +
- glm/gtx/hash.hpp | 1 +
- glm/gtx/integer.hpp | 1 +
- glm/gtx/intersect.hpp | 1 +
- glm/gtx/io.hpp | 1 +
- glm/gtx/log_base.hpp | 1 +
- glm/gtx/matrix_cross_product.hpp | 1 +
- glm/gtx/matrix_decompose.hpp | 1 +
- glm/gtx/matrix_factorisation.hpp | 1 +
- glm/gtx/matrix_interpolation.hpp | 1 +
- glm/gtx/matrix_major_storage.hpp | 1 +
- glm/gtx/matrix_operation.hpp | 1 +
- glm/gtx/matrix_query.hpp | 1 +
- glm/gtx/matrix_transform_2d.hpp | 1 +
- glm/gtx/mixed_product.hpp | 1 +
- glm/gtx/norm.hpp | 1 +
- glm/gtx/normal.hpp | 1 +
- glm/gtx/normalize_dot.hpp | 1 +
- glm/gtx/number_precision.hpp | 1 +
- glm/gtx/optimum_pow.hpp | 1 +
- glm/gtx/orthonormalize.hpp | 1 +
- glm/gtx/perpendicular.hpp | 1 +
- glm/gtx/polar_coordinates.hpp | 1 +
- glm/gtx/projection.hpp | 1 +
- glm/gtx/quaternion.hpp | 1 +
- glm/gtx/range.hpp | 1 +
- glm/gtx/raw_data.hpp | 1 +
- glm/gtx/rotate_normalized_axis.hpp | 1 +
- glm/gtx/rotate_vector.hpp | 1 +
- glm/gtx/scalar_multiplication.hpp | 1 +
- glm/gtx/scalar_relational.hpp | 1 +
- glm/gtx/spline.hpp | 1 +
- glm/gtx/std_based_type.hpp | 1 +
- glm/gtx/string_cast.hpp | 1 +
- glm/gtx/texture.hpp | 1 +
- glm/gtx/transform.hpp | 1 +
- glm/gtx/transform2.hpp | 1 +
- glm/gtx/type_aligned.hpp | 1 +
- glm/gtx/type_trait.hpp | 1 +
- glm/gtx/vec_swizzle.hpp | 1 +
- glm/gtx/vector_angle.hpp | 1 +
- glm/gtx/vector_query.hpp | 1 +
- glm/gtx/wrap.hpp | 1 +
- 63 files changed, 69 insertions(+)
- create mode 100644 glm/experimental.hpp.in
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index e5159b0f..bd4dd654 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -82,6 +82,11 @@ option(GLM_TEST_ENABLE_SIMD_AVX "Enable AVX optimizations" OFF)
- option(GLM_TEST_ENABLE_SIMD_AVX2 "Enable AVX2 optimizations" OFF)
- option(GLM_TEST_FORCE_PURE "Force 'pure' instructions" OFF)
-
-+option(GLM_ENABLE_EXPERIMENTAL "Enable experimental GLM_GTX" OFF)
-+configure_file(glm/experimental.hpp.in experimental.hpp @ONLY)
-+include_directories(${CMAKE_BINARY_DIR}/glm)
-+include_directories(${CMAKE_BINARY_DIR})
-+
- if(GLM_TEST_FORCE_PURE)
- add_definitions(-DGLM_FORCE_PURE)
-
-@@ -167,6 +172,7 @@ option(GLM_INSTALL_ENABLE "GLM install" ON)
- set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm")
- if (GLM_INSTALL_ENABLE)
- install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm)
- endif()
-
- write_basic_package_version_file("${CMAKE_CURRENT_BINARY_DIR}/glmConfigVersion.cmake" VERSION ${GLM_VERSION} COMPATIBILITY AnyNewerVersion)
-diff --git a/glm/CMakeLists.txt b/glm/CMakeLists.txt
-index df9c9ee5..dc5db4bc 100644
---- a/glm/CMakeLists.txt
-+++ b/glm/CMakeLists.txt
-@@ -43,6 +43,8 @@ source_group("SIMD Files" FILES ${SIMD_INLINE})
- source_group("SIMD Files" FILES ${SIMD_HEADER})
-
- include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..)
-+# make out-of tree builds find experimental.hpp
-+include_directories(${CMAKE_BINARY_DIR}/glm)
-
- if(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE)
- if(GLM_STATIC_LIBRARY_ENABLE)
-diff --git a/glm/experimental.hpp.in b/glm/experimental.hpp.in
-new file mode 100644
-index 00000000..bfab5138
---- /dev/null
-+++ b/glm/experimental.hpp.in
-@@ -0,0 +1 @@
-+#cmakedefine GLM_ENABLE_EXPERIMENTAL
-diff --git a/glm/ext.hpp b/glm/ext.hpp
-index d085bfd5..a2948447 100644
---- a/glm/ext.hpp
-+++ b/glm/ext.hpp
-@@ -39,6 +39,7 @@
- # include "./gtc/type_aligned.hpp"
- #endif
-
-+#include "experimental.hpp"
- #ifdef GLM_ENABLE_EXPERIMENTAL
- #include "./gtx/associated_min_max.hpp"
- #include "./gtx/bit.hpp"
-diff --git a/glm/gtx/associated_min_max.hpp b/glm/gtx/associated_min_max.hpp
-index 0c9935f3..d00c2bc4 100644
---- a/glm/gtx/associated_min_max.hpp
-+++ b/glm/gtx/associated_min_max.hpp
-@@ -16,6 +16,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GTX_associated_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/bit.hpp b/glm/gtx/bit.hpp
-index 1447fa00..31957083 100644
---- a/glm/gtx/bit.hpp
-+++ b/glm/gtx/bit.hpp
-@@ -15,6 +15,7 @@
- // Dependencies
- #include "../gtc/bitfield.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_bit is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/closest_point.hpp b/glm/gtx/closest_point.hpp
-index 6859bb96..ebd9fe5a 100644
---- a/glm/gtx/closest_point.hpp
-+++ b/glm/gtx/closest_point.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/color_space.hpp b/glm/gtx/color_space.hpp
-index d1e655c3..51416819 100644
---- a/glm/gtx/color_space.hpp
-+++ b/glm/gtx/color_space.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_color_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/color_space_YCoCg.hpp b/glm/gtx/color_space_YCoCg.hpp
-index e82cbd8b..7ae71041 100644
---- a/glm/gtx/color_space_YCoCg.hpp
-+++ b/glm/gtx/color_space_YCoCg.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_color_space_YCoCg is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/common.hpp b/glm/gtx/common.hpp
-index 8081bff7..57a68a8d 100644
---- a/glm/gtx/common.hpp
-+++ b/glm/gtx/common.hpp
-@@ -18,6 +18,7 @@
- #include "../vec4.hpp"
- #include "../gtc/vec1.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_common is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/compatibility.hpp b/glm/gtx/compatibility.hpp
-index e5b60399..9876669c 100644
---- a/glm/gtx/compatibility.hpp
-+++ b/glm/gtx/compatibility.hpp
-@@ -16,6 +16,7 @@
- #include "../glm.hpp"
- #include "../gtc/quaternion.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_compatibility is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/component_wise.hpp b/glm/gtx/component_wise.hpp
-index 39bab5d5..4fe0e4e2 100644
---- a/glm/gtx/component_wise.hpp
-+++ b/glm/gtx/component_wise.hpp
-@@ -18,6 +18,7 @@
- #include "../detail/setup.hpp"
- #include "../detail/qualifier.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_component_wise is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/dual_quaternion.hpp b/glm/gtx/dual_quaternion.hpp
-index c4343e9d..d59fb459 100644
---- a/glm/gtx/dual_quaternion.hpp
-+++ b/glm/gtx/dual_quaternion.hpp
-@@ -20,6 +20,7 @@
- #include "../gtc/constants.hpp"
- #include "../gtc/quaternion.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_dual_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/euler_angles.hpp b/glm/gtx/euler_angles.hpp
-index e66e9281..ad5988c1 100644
---- a/glm/gtx/euler_angles.hpp
-+++ b/glm/gtx/euler_angles.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_euler_angles is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/extend.hpp b/glm/gtx/extend.hpp
-index eda4e470..cde6db63 100644
---- a/glm/gtx/extend.hpp
-+++ b/glm/gtx/extend.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/extended_min_max.hpp b/glm/gtx/extended_min_max.hpp
-index 3e767b0c..0bcffcc6 100644
---- a/glm/gtx/extended_min_max.hpp
-+++ b/glm/gtx/extended_min_max.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_extented_min_max is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/fast_exponential.hpp b/glm/gtx/fast_exponential.hpp
-index 2d4918e7..e6d11f0a 100644
---- a/glm/gtx/fast_exponential.hpp
-+++ b/glm/gtx/fast_exponential.hpp
-@@ -16,6 +16,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_fast_exponential is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/fast_square_root.hpp b/glm/gtx/fast_square_root.hpp
-index 1e1ec3cf..f758aeef 100644
---- a/glm/gtx/fast_square_root.hpp
-+++ b/glm/gtx/fast_square_root.hpp
-@@ -19,6 +19,7 @@
- #include "../exponential.hpp"
- #include "../geometric.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_fast_square_root is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/fast_trigonometry.hpp b/glm/gtx/fast_trigonometry.hpp
-index 739065fb..f1332958 100644
---- a/glm/gtx/fast_trigonometry.hpp
-+++ b/glm/gtx/fast_trigonometry.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../gtc/constants.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_fast_trigonometry is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/gradient_paint.hpp b/glm/gtx/gradient_paint.hpp
-index 2713cec0..d4703991 100644
---- a/glm/gtx/gradient_paint.hpp
-+++ b/glm/gtx/gradient_paint.hpp
-@@ -17,6 +17,7 @@
- #include "../glm.hpp"
- #include "../gtx/optimum_pow.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_gradient_paint is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/handed_coordinate_space.hpp b/glm/gtx/handed_coordinate_space.hpp
-index 1d0d4104..3a52ddcf 100644
---- a/glm/gtx/handed_coordinate_space.hpp
-+++ b/glm/gtx/handed_coordinate_space.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_handed_coordinate_space is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/hash.hpp b/glm/gtx/hash.hpp
-index fe8a3efd..92bfc9b2 100644
---- a/glm/gtx/hash.hpp
-+++ b/glm/gtx/hash.hpp
-@@ -12,6 +12,7 @@
-
- #pragma once
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_hash is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/integer.hpp b/glm/gtx/integer.hpp
-index 96637a13..5d1a16c6 100644
---- a/glm/gtx/integer.hpp
-+++ b/glm/gtx/integer.hpp
-@@ -16,6 +16,7 @@
- #include "../glm.hpp"
- #include "../gtc/integer.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_integer is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/intersect.hpp b/glm/gtx/intersect.hpp
-index 61e2226a..4895ba93 100644
---- a/glm/gtx/intersect.hpp
-+++ b/glm/gtx/intersect.hpp
-@@ -21,6 +21,7 @@
- #include "../gtx/closest_point.hpp"
- #include "../gtx/vector_query.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_closest_point is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/io.hpp b/glm/gtx/io.hpp
-index 49a1ec11..ae39cd60 100644
---- a/glm/gtx/io.hpp
-+++ b/glm/gtx/io.hpp
-@@ -23,6 +23,7 @@
- #include "../glm.hpp"
- #include "../gtx/quaternion.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_io is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/log_base.hpp b/glm/gtx/log_base.hpp
-index e873e356..45b8d53c 100644
---- a/glm/gtx/log_base.hpp
-+++ b/glm/gtx/log_base.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_log_base is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_cross_product.hpp b/glm/gtx/matrix_cross_product.hpp
-index 967743b8..52d6c173 100644
---- a/glm/gtx/matrix_cross_product.hpp
-+++ b/glm/gtx/matrix_cross_product.hpp
-@@ -16,6 +16,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_cross_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_decompose.hpp b/glm/gtx/matrix_decompose.hpp
-index b7ec0e83..6793fee2 100644
---- a/glm/gtx/matrix_decompose.hpp
-+++ b/glm/gtx/matrix_decompose.hpp
-@@ -20,6 +20,7 @@
- #include "../gtc/quaternion.hpp"
- #include "../gtc/matrix_transform.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_decompose is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_factorisation.hpp b/glm/gtx/matrix_factorisation.hpp
-index e30a7746..79c293be 100644
---- a/glm/gtx/matrix_factorisation.hpp
-+++ b/glm/gtx/matrix_factorisation.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_factorisation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_interpolation.hpp b/glm/gtx/matrix_interpolation.hpp
-index 89c4596c..799983bb 100644
---- a/glm/gtx/matrix_interpolation.hpp
-+++ b/glm/gtx/matrix_interpolation.hpp
-@@ -16,6 +16,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_interpolation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_major_storage.hpp b/glm/gtx/matrix_major_storage.hpp
-index 7f264a59..e68467cd 100644
---- a/glm/gtx/matrix_major_storage.hpp
-+++ b/glm/gtx/matrix_major_storage.hpp
-@@ -16,6 +16,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_major_storage is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_operation.hpp b/glm/gtx/matrix_operation.hpp
-index bce938bb..1e85bb5e 100644
---- a/glm/gtx/matrix_operation.hpp
-+++ b/glm/gtx/matrix_operation.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_operation is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_query.hpp b/glm/gtx/matrix_query.hpp
-index 5df5f52f..eec1eec0 100644
---- a/glm/gtx/matrix_query.hpp
-+++ b/glm/gtx/matrix_query.hpp
-@@ -18,6 +18,7 @@
- #include "../gtx/vector_query.hpp"
- #include <limits>
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/matrix_transform_2d.hpp b/glm/gtx/matrix_transform_2d.hpp
-index 239ab9f4..3ca8d2f2 100644
---- a/glm/gtx/matrix_transform_2d.hpp
-+++ b/glm/gtx/matrix_transform_2d.hpp
-@@ -17,6 +17,7 @@
- #include "../mat3x3.hpp"
- #include "../vec2.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_matrix_transform_2d is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/mixed_product.hpp b/glm/gtx/mixed_product.hpp
-index 58562aab..5c7460d5 100644
---- a/glm/gtx/mixed_product.hpp
-+++ b/glm/gtx/mixed_product.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_mixed_product is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/norm.hpp b/glm/gtx/norm.hpp
-index 46474e07..3cf2c3ea 100644
---- a/glm/gtx/norm.hpp
-+++ b/glm/gtx/norm.hpp
-@@ -17,6 +17,7 @@
- #include "../geometric.hpp"
- #include "../gtx/quaternion.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_norm is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/normal.hpp b/glm/gtx/normal.hpp
-index 15cec9c2..7bb4c096 100644
---- a/glm/gtx/normal.hpp
-+++ b/glm/gtx/normal.hpp
-@@ -16,6 +16,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_normal is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/normalize_dot.hpp b/glm/gtx/normalize_dot.hpp
-index 86048e70..c6604da4 100644
---- a/glm/gtx/normalize_dot.hpp
-+++ b/glm/gtx/normalize_dot.hpp
-@@ -16,6 +16,7 @@
- // Dependency:
- #include "../gtx/fast_square_root.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_normalize_dot is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/number_precision.hpp b/glm/gtx/number_precision.hpp
-index 3732a56c..b48845f7 100644
---- a/glm/gtx/number_precision.hpp
-+++ b/glm/gtx/number_precision.hpp
-@@ -18,6 +18,7 @@
- #include "../glm.hpp"
- #include "../gtc/type_precision.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_number_precision is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/optimum_pow.hpp b/glm/gtx/optimum_pow.hpp
-index eb09f1c3..94a6bbb2 100644
---- a/glm/gtx/optimum_pow.hpp
-+++ b/glm/gtx/optimum_pow.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_optimum_pow is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/orthonormalize.hpp b/glm/gtx/orthonormalize.hpp
-index 2a684ee4..4ff47e53 100644
---- a/glm/gtx/orthonormalize.hpp
-+++ b/glm/gtx/orthonormalize.hpp
-@@ -18,6 +18,7 @@
- #include "../mat3x3.hpp"
- #include "../geometric.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_orthonormalize is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/perpendicular.hpp b/glm/gtx/perpendicular.hpp
-index 35601ac7..17251ebe 100644
---- a/glm/gtx/perpendicular.hpp
-+++ b/glm/gtx/perpendicular.hpp
-@@ -17,6 +17,7 @@
- #include "../glm.hpp"
- #include "../gtx/projection.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_perpendicular is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/polar_coordinates.hpp b/glm/gtx/polar_coordinates.hpp
-index b8421db4..5125215d 100644
---- a/glm/gtx/polar_coordinates.hpp
-+++ b/glm/gtx/polar_coordinates.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_polar_coordinates is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/projection.hpp b/glm/gtx/projection.hpp
-index 9a24abf9..4d5bf76f 100644
---- a/glm/gtx/projection.hpp
-+++ b/glm/gtx/projection.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../geometric.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_projection is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/quaternion.hpp b/glm/gtx/quaternion.hpp
-index c3d99a5c..808ba0fd 100644
---- a/glm/gtx/quaternion.hpp
-+++ b/glm/gtx/quaternion.hpp
-@@ -19,6 +19,7 @@
- #include "../gtc/quaternion.hpp"
- #include "../gtx/norm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_quaternion is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/range.hpp b/glm/gtx/range.hpp
-index e0ef46af..03c797c3 100644
---- a/glm/gtx/range.hpp
-+++ b/glm/gtx/range.hpp
-@@ -15,6 +15,7 @@
- // Dependencies
- #include "../detail/setup.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_range is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/raw_data.hpp b/glm/gtx/raw_data.hpp
-index fb34c8cb..0084fec6 100644
---- a/glm/gtx/raw_data.hpp
-+++ b/glm/gtx/raw_data.hpp
-@@ -16,6 +16,7 @@
- #include "../detail/setup.hpp"
- #include "../detail/type_int.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_raw_data is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/rotate_normalized_axis.hpp b/glm/gtx/rotate_normalized_axis.hpp
-index eee90d6e..82612928 100644
---- a/glm/gtx/rotate_normalized_axis.hpp
-+++ b/glm/gtx/rotate_normalized_axis.hpp
-@@ -19,6 +19,7 @@
- #include "../gtc/epsilon.hpp"
- #include "../gtc/quaternion.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_rotate_normalized_axis is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/rotate_vector.hpp b/glm/gtx/rotate_vector.hpp
-index c8ace89e..e954b041 100644
---- a/glm/gtx/rotate_vector.hpp
-+++ b/glm/gtx/rotate_vector.hpp
-@@ -17,6 +17,7 @@
- #include "../glm.hpp"
- #include "../gtx/transform.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_rotate_vector is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/scalar_multiplication.hpp b/glm/gtx/scalar_multiplication.hpp
-index b73edf67..22baa52a 100644
---- a/glm/gtx/scalar_multiplication.hpp
-+++ b/glm/gtx/scalar_multiplication.hpp
-@@ -16,6 +16,7 @@
-
- #include "../detail/setup.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_scalar_multiplication is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/scalar_relational.hpp b/glm/gtx/scalar_relational.hpp
-index 7fc8c1cc..f21f3b2b 100644
---- a/glm/gtx/scalar_relational.hpp
-+++ b/glm/gtx/scalar_relational.hpp
-@@ -15,6 +15,7 @@
- // Dependency:
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/spline.hpp b/glm/gtx/spline.hpp
-index f96d7e07..76359cfd 100644
---- a/glm/gtx/spline.hpp
-+++ b/glm/gtx/spline.hpp
-@@ -16,6 +16,7 @@
- #include "../glm.hpp"
- #include "../gtx/optimum_pow.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_spline is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/std_based_type.hpp b/glm/gtx/std_based_type.hpp
-index 55a2f074..92532b9e 100644
---- a/glm/gtx/std_based_type.hpp
-+++ b/glm/gtx/std_based_type.hpp
-@@ -17,6 +17,7 @@
- #include "../glm.hpp"
- #include <cstdlib>
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_std_based_type is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/string_cast.hpp b/glm/gtx/string_cast.hpp
-index 4b4e280f..dfcd5085 100644
---- a/glm/gtx/string_cast.hpp
-+++ b/glm/gtx/string_cast.hpp
-@@ -24,6 +24,7 @@
- #include <string>
- #include <cmath>
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_string_cast is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/texture.hpp b/glm/gtx/texture.hpp
-index 312bf398..7af185f6 100644
---- a/glm/gtx/texture.hpp
-+++ b/glm/gtx/texture.hpp
-@@ -17,6 +17,7 @@
- #include "../gtc/integer.hpp"
- #include "../gtx/component_wise.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_texture is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/transform.hpp b/glm/gtx/transform.hpp
-index d23b99ce..5a5d9619 100644
---- a/glm/gtx/transform.hpp
-+++ b/glm/gtx/transform.hpp
-@@ -19,6 +19,7 @@
- #include "../glm.hpp"
- #include "../gtc/matrix_transform.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_transform is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/transform2.hpp b/glm/gtx/transform2.hpp
-index 85f5bea4..5d7c83fc 100644
---- a/glm/gtx/transform2.hpp
-+++ b/glm/gtx/transform2.hpp
-@@ -17,6 +17,7 @@
- #include "../glm.hpp"
- #include "../gtx/transform.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_transform2 is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/type_aligned.hpp b/glm/gtx/type_aligned.hpp
-index 6ff9f276..6ad92fad 100644
---- a/glm/gtx/type_aligned.hpp
-+++ b/glm/gtx/type_aligned.hpp
-@@ -18,6 +18,7 @@
- // Dependency:
- #include "../gtc/type_precision.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_type_aligned is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/type_trait.hpp b/glm/gtx/type_trait.hpp
-index 637bbd19..65519cab 100644
---- a/glm/gtx/type_trait.hpp
-+++ b/glm/gtx/type_trait.hpp
-@@ -12,6 +12,7 @@
-
- #pragma once
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_type_trait is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/vec_swizzle.hpp b/glm/gtx/vec_swizzle.hpp
-index daebac38..13d523dc 100644
---- a/glm/gtx/vec_swizzle.hpp
-+++ b/glm/gtx/vec_swizzle.hpp
-@@ -14,6 +14,7 @@
-
- #include "../glm.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_vec_swizzle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/vector_angle.hpp b/glm/gtx/vector_angle.hpp
-index 401a47eb..98c9d110 100644
---- a/glm/gtx/vector_angle.hpp
-+++ b/glm/gtx/vector_angle.hpp
-@@ -20,6 +20,7 @@
- #include "../gtx/quaternion.hpp"
- #include "../gtx/rotate_vector.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_vector_angle is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/vector_query.hpp b/glm/gtx/vector_query.hpp
-index 6560eaa5..5ab1ffda 100644
---- a/glm/gtx/vector_query.hpp
-+++ b/glm/gtx/vector_query.hpp
-@@ -17,6 +17,7 @@
- #include <cfloat>
- #include <limits>
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_vector_query is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
-diff --git a/glm/gtx/wrap.hpp b/glm/gtx/wrap.hpp
-index 2c4b55df..5bf26a33 100644
---- a/glm/gtx/wrap.hpp
-+++ b/glm/gtx/wrap.hpp
-@@ -16,6 +16,7 @@
- #include "../glm.hpp"
- #include "../gtc/vec1.hpp"
-
-+#include "../experimental.hpp"
- #ifndef GLM_ENABLE_EXPERIMENTAL
- # error "GLM: GLM_GTX_wrap is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it."
- #endif
---
-2.14.3
-
diff --git a/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch b/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch
deleted file mode 100644
index 1be3318cc1..0000000000
--- a/meta-oe/recipes-graphics/glm/files/0002-glm-install-headers-only.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 7fdd36d7496238e03e43fcc32839f75588116c5d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 16 Mar 2018 15:44:48 +0100
-Subject: [PATCH 2/2] glm: install headers only
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Plausibility check in root source path
-
-$ find glm -type f ! -name '*.hpp' ! -name '*.h' ! -name '*.inl'
-glm/detail/glm.cpp
-glm/detail/dummy.cpp
-glm/experimental.hpp.in
-glm/CMakeLists.txt
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
-
-Uptream-Status: Submitted [1]
-
-[1] https://github.com/g-truc/glm/pull/741
----
- CMakeLists.txt | 7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index bd4dd654..113dd735 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -171,7 +171,12 @@ option(GLM_INSTALL_ENABLE "GLM install" ON)
-
- set(GLM_INSTALL_CONFIGDIR "${CMAKE_INSTALL_LIBDIR}/cmake/glm")
- if (GLM_INSTALL_ENABLE)
-- install(DIRECTORY glm DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+ install(DIRECTORY glm
-+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
-+ FILES_MATCHING
-+ PATTERN "*.h"
-+ PATTERN "*.hpp"
-+ PATTERN "*.inl")
- install(FILES "${CMAKE_CURRENT_BINARY_DIR}/experimental.hpp" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/glm)
- endif()
-
---
-2.14.3
-
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
new file mode 100644
index 0000000000..10692dd423
--- /dev/null
+++ b/meta-oe/recipes-graphics/glm/glm/0001-Silence-clang-warnings.patch
@@ -0,0 +1,145 @@
+From bd9b5060bc3b9581090d44f15b4e236566ea86a6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 4 Jun 2021 12:57:57 -0700
+Subject: [PATCH] Silence clang warnings
+
+Fixes
+glm/gtc/random.inl:25:17: error: implicit conversion loses integer precision: 'int' to 'unsigned char' [-Werror,-Wimplicit-int-conversion]
+| std::rand() % std::numeric_limits<uint8>::max());
+| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+glm/gtc/../ext/quaternion_common.inl:76:87: error: unused parameter 'k' [-Werror,-Wunused-parameter]
+ GLM_FUNC_QUALIFIER qua<T, Q> slerp(qua<T, Q> const& x, qua<T, Q> const& y, T a, S k)
+ ^
+
+and
+
+test/gtx/gtx_fast_trigonometry.cpp:135:9: error: variable 'result' set but not used [-Werror,-Wunused-but-set-variable]
+| float result = 0.f;
+| ^
+
+Upstream-Status: Submitted [https://github.com/g-truc/glm/pull/1055]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ glm/ext/quaternion_common.inl | 2 +-
+ glm/gtc/random.inl | 2 +-
+ test/gtx/gtx_fast_trigonometry.cpp | 30 ++++++++++++------------------
+ 3 files changed, 14 insertions(+), 20 deletions(-)
+
+--- a/glm/ext/quaternion_common.inl
++++ b/glm/ext/quaternion_common.inl
+@@ -104,7 +104,7 @@ namespace glm
+ {
+ // Graphics Gems III, page 96
+ T angle = acos(cosTheta);
+- T phi = angle + k * glm::pi<T>();
++ T phi = angle + static_cast<T>(k) * glm::pi<T>();
+ return (sin(angle - a * phi)* x + sin(a * phi) * z) / sin(angle);
+ }
+ }
+--- a/test/gtx/gtx_fast_trigonometry.cpp
++++ b/test/gtx/gtx_fast_trigonometry.cpp
+@@ -19,15 +19,14 @@ namespace fastCos
+ {
+ const float begin = -glm::pi<float>();
+ const float end = glm::pi<float>();
+- float result = 0.f;
+
+ const std::clock_t timestamp1 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::fastCos(i);
++ glm::fastCos(i);
+
+ const std::clock_t timestamp2 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::cos(i);
++ glm::cos(i);
+
+ const std::clock_t timestamp3 = std::clock();
+ const std::clock_t time_fast = timestamp2 - timestamp1;
+@@ -53,15 +52,14 @@ namespace fastSin
+ {
+ const float begin = -glm::pi<float>();
+ const float end = glm::pi<float>();
+- float result = 0.f;
+
+ const std::clock_t timestamp1 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::fastSin(i);
++ glm::fastSin(i);
+
+ const std::clock_t timestamp2 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::sin(i);
++ glm::sin(i);
+
+ const std::clock_t timestamp3 = std::clock();
+ const std::clock_t time_fast = timestamp2 - timestamp1;
+@@ -79,15 +77,14 @@ namespace fastTan
+ {
+ const float begin = -glm::pi<float>();
+ const float end = glm::pi<float>();
+- float result = 0.f;
+
+ const std::clock_t timestamp1 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::fastTan(i);
++ glm::fastTan(i);
+
+ const std::clock_t timestamp2 = std::clock();
+ for (float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::tan(i);
++ glm::tan(i);
+
+ const std::clock_t timestamp3 = std::clock();
+ const std::clock_t time_fast = timestamp2 - timestamp1;
+@@ -105,15 +102,14 @@ namespace fastAcos
+ {
+ const float begin = -glm::pi<float>();
+ const float end = glm::pi<float>();
+- float result = 0.f;
+
+ const std::clock_t timestamp1 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::fastAcos(i);
++ glm::fastAcos(i);
+
+ const std::clock_t timestamp2 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::acos(i);
++ glm::acos(i);
+
+ const std::clock_t timestamp3 = std::clock();
+ const std::clock_t time_fast = timestamp2 - timestamp1;
+@@ -132,13 +128,12 @@ namespace fastAsin
+ {
+ const float begin = -glm::pi<float>();
+ const float end = glm::pi<float>();
+- float result = 0.f;
+ const std::clock_t timestamp1 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::fastAsin(i);
++ glm::fastAsin(i);
+ const std::clock_t timestamp2 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::asin(i);
++ glm::asin(i);
+ const std::clock_t timestamp3 = std::clock();
+ const std::clock_t time_fast = timestamp2 - timestamp1;
+ const std::clock_t time_default = timestamp3 - timestamp2;
+@@ -155,13 +150,12 @@ namespace fastAtan
+ {
+ const float begin = -glm::pi<float>();
+ const float end = glm::pi<float>();
+- float result = 0.f;
+ const std::clock_t timestamp1 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::fastAtan(i);
++ glm::fastAtan(i);
+ const std::clock_t timestamp2 = std::clock();
+ for(float i = begin; i < end; i = NextFloat ? glm::nextFloat(i) : i += 0.1f)
+- result = glm::atan(i);
++ glm::atan(i);
+ const std::clock_t timestamp3 = std::clock();
+ const std::clock_t time_fast = timestamp2 - timestamp1;
+ const std::clock_t time_default = timestamp3 - timestamp2;
diff --git a/meta-oe/recipes-graphics/glm/glm/glm.pc.in b/meta-oe/recipes-graphics/glm/glm/glm.pc.in
new file mode 100644
index 0000000000..54052e287d
--- /dev/null
+++ b/meta-oe/recipes-graphics/glm/glm/glm.pc.in
@@ -0,0 +1,7 @@
+prefix=/usr
+includedir=${prefix}/include
+
+Name: GLM
+Description: OpenGL Mathematics
+Version: @VERSION@
+Cflags: -I${includedir}
diff --git a/meta-oe/recipes-graphics/glm/glm/glmConfig.cmake.in b/meta-oe/recipes-graphics/glm/glm/glmConfig.cmake.in
new file mode 100644
index 0000000000..8ab23a18d7
--- /dev/null
+++ b/meta-oe/recipes-graphics/glm/glm/glmConfig.cmake.in
@@ -0,0 +1,20 @@
+set(GLM_VERSION "@VERSION@")
+
+
+####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
+get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
+
+macro(set_and_check _var _file)
+ set(${_var} "${_file}")
+ if(NOT EXISTS "${_file}")
+ message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
+ endif()
+endmacro()
+
+####################################################################################
+
+set_and_check(GLM_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/include")
+
+if (NOT CMAKE_VERSION VERSION_LESS "3.0")
+ include("${CMAKE_CURRENT_LIST_DIR}/glmTargets.cmake")
+endif()
diff --git a/meta-oe/recipes-graphics/glm/glm/glmConfigVersion.cmake.in b/meta-oe/recipes-graphics/glm/glm/glmConfigVersion.cmake.in
new file mode 100644
index 0000000000..561a0db61f
--- /dev/null
+++ b/meta-oe/recipes-graphics/glm/glm/glmConfigVersion.cmake.in
@@ -0,0 +1,31 @@
+# This is a basic version file for the Config-mode of find_package().
+# It is used by write_basic_package_version_file() as input file for configure_file()
+# to create a version-file which can be installed along a config.cmake file.
+#
+# The created file sets PACKAGE_VERSION_EXACT if the current version string and
+# the requested version string are exactly the same and it sets
+# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version.
+# The variable CVF_VERSION must be set before calling configure_file().
+
+set(PACKAGE_VERSION "@VERSION@")
+
+if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
+ set(PACKAGE_VERSION_COMPATIBLE FALSE)
+else()
+ set(PACKAGE_VERSION_COMPATIBLE TRUE)
+ if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
+ set(PACKAGE_VERSION_EXACT TRUE)
+ endif()
+endif()
+
+# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
+if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
+ return()
+endif()
+
+# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
+if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
+ math(EXPR installedBits "8 * 8")
+ set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
+ set(PACKAGE_VERSION_UNSUITABLE FALSE)
+endif()
diff --git a/meta-oe/recipes-graphics/glm/glm/glmTargets.cmake b/meta-oe/recipes-graphics/glm/glm/glmTargets.cmake
new file mode 100644
index 0000000000..905b67731b
--- /dev/null
+++ b/meta-oe/recipes-graphics/glm/glm/glmTargets.cmake
@@ -0,0 +1,107 @@
+# Generated by CMake
+
+if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.5)
+ message(FATAL_ERROR "CMake >= 2.6.0 required")
+endif()
+cmake_policy(PUSH)
+cmake_policy(VERSION 2.6)
+#----------------------------------------------------------------
+# Generated CMake target import file.
+#----------------------------------------------------------------
+
+# Commands may need to know the format version.
+set(CMAKE_IMPORT_FILE_VERSION 1)
+
+# Protect against multiple inclusion, which would fail when already imported targets are added once more.
+set(_targetsDefined)
+set(_targetsNotDefined)
+set(_expectedTargets)
+foreach(_expectedTarget glm)
+ list(APPEND _expectedTargets ${_expectedTarget})
+ if(NOT TARGET ${_expectedTarget})
+ list(APPEND _targetsNotDefined ${_expectedTarget})
+ endif()
+ if(TARGET ${_expectedTarget})
+ list(APPEND _targetsDefined ${_expectedTarget})
+ endif()
+endforeach()
+if("${_targetsDefined}" STREQUAL "${_expectedTargets}")
+ unset(_targetsDefined)
+ unset(_targetsNotDefined)
+ unset(_expectedTargets)
+ set(CMAKE_IMPORT_FILE_VERSION)
+ cmake_policy(POP)
+ return()
+endif()
+if(NOT "${_targetsDefined}" STREQUAL "")
+ message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_targetsDefined}\nTargets not yet defined: ${_targetsNotDefined}\n")
+endif()
+unset(_targetsDefined)
+unset(_targetsNotDefined)
+unset(_expectedTargets)
+
+
+# Compute the installation prefix relative to this file.
+get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
+# Use original install prefix when loaded through a
+# cross-prefix symbolic link such as /lib -> /usr/lib.
+get_filename_component(_realCurr "${_IMPORT_PREFIX}" REALPATH)
+get_filename_component(_realOrig "/usr/lib/cmake/glm" REALPATH)
+if(_realCurr STREQUAL _realOrig)
+ set(_IMPORT_PREFIX "/usr/lib/cmake/glm")
+endif()
+unset(_realOrig)
+unset(_realCurr)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
+if(_IMPORT_PREFIX STREQUAL "/")
+ set(_IMPORT_PREFIX "")
+endif()
+
+# Create imported target glm
+add_library(glm INTERFACE IMPORTED)
+
+set_target_properties(glm PROPERTIES
+ INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
+)
+
+if(CMAKE_VERSION VERSION_LESS 3.0.0)
+ message(FATAL_ERROR "This file relies on consumers using CMake 3.0.0 or greater.")
+endif()
+
+# Load information for each installed configuration.
+get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+file(GLOB CONFIG_FILES "${_DIR}/glmTargets-*.cmake")
+foreach(f ${CONFIG_FILES})
+ include(${f})
+endforeach()
+
+# Cleanup temporary variables.
+set(_IMPORT_PREFIX)
+
+# Loop over all imported files and verify that they actually exist
+foreach(target ${_IMPORT_CHECK_TARGETS} )
+ foreach(file ${_IMPORT_CHECK_FILES_FOR_${target}} )
+ if(NOT EXISTS "${file}" )
+ message(FATAL_ERROR "The imported target \"${target}\" references the file
+ \"${file}\"
+but this file does not exist. Possible reasons include:
+* The file was deleted, renamed, or moved to another location.
+* An install or uninstall procedure did not complete successfully.
+* The installation package was faulty and contained
+ \"${CMAKE_CURRENT_LIST_FILE}\"
+but not all the files it references.
+")
+ endif()
+ endforeach()
+ unset(_IMPORT_CHECK_FILES_FOR_${target})
+endforeach()
+unset(_IMPORT_CHECK_TARGETS)
+
+# This file does not depend on other imported targets which have
+# been exported from the same project but in a separate export set.
+
+# Commands beyond this point should not need to know the version.
+set(CMAKE_IMPORT_FILE_VERSION)
+cmake_policy(POP)
diff --git a/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb b/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
deleted file mode 100644
index 7f16708edb..0000000000
--- a/meta-oe/recipes-graphics/glm/glm_0.9.9-a2.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "OpenGL Mathematics Library"
-DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \
-mathematics library for graphics software based on the OpenGL \
-Shading Language (GLSL) specifications."
-HOMEPAGE = "https://glm.g-truc.net"
-BUGTRACKER = "https://github.com/g-truc/glm/issues"
-SECTION = "libs"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://readme.md;beginline=21;endline=22;md5=3075b5727d36f29edccf97b93e72b790"
-
-SRC_URI = " \
- git://github.com/g-truc/glm;branch=master \
- file://0001-Make-GLM_ENABLE_EXPERIMENTAL-a-configurable-option.patch \
- file://0002-glm-install-headers-only.patch \
-"
-SRCREV = "fcbedf5058ef8613dd02aac62ef00d55dcfeadd7"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "-DGLM_ENABLE_EXPERIMENTAL=ON"
-
-RDEPENDS_${PN}-dev = ""
-
-BBCLASSEXTEND = "native"
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
new file mode 100644
index 0000000000..3797314b47
--- /dev/null
+++ b/meta-oe/recipes-graphics/glm/glm_0.9.9.8.bb
@@ -0,0 +1,41 @@
+SUMMARY = "OpenGL Mathematics Library"
+DESCRIPTION = "OpenGL Mathematics (GLM) is a header only C++ \
+mathematics library for graphics software based on the OpenGL \
+Shading Language (GLSL) specifications."
+HOMEPAGE = "https://glm.g-truc.net"
+BUGTRACKER = "https://github.com/g-truc/glm/issues"
+SECTION = "libs"
+LICENSE = "MIT"
+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 = "efec5db081e3aad807d0731e172ac597f6a39447"
+PV .= "+0.9.9.9+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+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}
+ cp -R --no-dereference --preserve=mode,links ${S}/doc ${D}${docdir}/glm
+ rm ${D}${includedir}/glm/CMakeLists.txt
+ sed "s/@VERSION@/${PV}/" ${WORKDIR}/glmConfigVersion.cmake.in > ${D}${libdir}/cmake/glm/glmConfigVersion.cmake
+ sed "s/@VERSION@/${PV}/" ${WORKDIR}/glmConfig.cmake.in > ${D}${libdir}/cmake/glm/glmConfig.cmake
+ sed "s/@VERSION@/${PV}/" ${WORKDIR}/glm.pc.in > ${D}${libdir}/pkgconfig/glm.pc
+ install -Dm644 ${WORKDIR}/glmTargets.cmake ${D}${libdir}/cmake/glm/glmTargets.cmake
+
+}
+
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND = "native"
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 7800fdd570..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,21 +6,18 @@ 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/configure.ac b/configure.ac
-index bb5b795..93fbaf2 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -64,7 +64,6 @@ GP_GETTEXT_HACK([],[Lutz Müller and others],[${MAIL_GPHOTO_TRANSLATION}])
+@@ -46,7 +46,6 @@ dnl i18n support
+ dnl ---------------------------------------------------------------------------
+ GP_GETTEXT_HACK([],[Lutz Müller and others],[${MAIL_GPHOTO_TRANSLATION}])
ALL_LINGUAS="az cs da de en_GB es eu fi fr hu id is it ja nl pa pl pt_BR ro ru rw sk sr sv uk vi zh_CN zh_TW"
+-AM_PO_SUBDIRS()
AM_GNU_GETTEXT_VERSION([0.14.1])
AM_GNU_GETTEXT([external])
--AM_PO_SUBDIRS()
AM_ICONV()
- GP_GETTEXT_FLAGS()
-
---
-1.9.1
-
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch
new file mode 100644
index 0000000000..a27c02cefc
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2/0001-gphoto2-Use-pthread_t-abstract-type-for-thead-IDs.patch
@@ -0,0 +1,39 @@
+From 23c67e93e51f700d0aeecfc08277e39f51201fc3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 12:59:46 -0700
+Subject: [PATCH] gphoto2: Use pthread_t abstract type for thead IDs
+
+This is not a plain old datatype in every libc, e.g. with musl this
+would fail in type conversion
+
+Upstream-Status: Submitted [https://github.com/gphoto/gphoto2/pull/535]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ gphoto2/main.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/gphoto2/main.c b/gphoto2/main.c
+index 2bf5964..9a6b05d 100644
+--- a/gphoto2/main.c
++++ b/gphoto2/main.c
+@@ -1198,7 +1198,7 @@ thread_func (void *data)
+ pthread_cleanup_pop (1);
+ }
+
+-static unsigned int
++static pthread_t
+ start_timeout_func (Camera *camera, unsigned int timeout,
+ CameraTimeoutFunc func, void __unused__ *data)
+ {
+@@ -1219,7 +1219,7 @@ start_timeout_func (Camera *camera, unsigned int timeout,
+ }
+
+ static void
+-stop_timeout_func (Camera __unused__ *camera, unsigned int id,
++stop_timeout_func (Camera __unused__ *camera, pthread_t id,
+ void __unused__ *data)
+ {
+ pthread_t tid = id;
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch b/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch
deleted file mode 100644
index e6c7dd6675..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2/0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 884d4c9bbd2dc147d614a5fabc25dbea7a71cd48 Mon Sep 17 00:00:00 2001
-From: Andreas Baak <andreas.baak@gmail.com>
-Date: Sun, 12 Jul 2015 02:13:58 -0700
-Subject: [PATCH] Look for popt with GP_CHECK_LIBRARY function
-
-The previously used proprietary function GP_CHECK_POPT
-defined in /.m4m/gp-check-opt.m4 is not ready for cross
-compilation since it looks for the library and headers
-in the host system. Yocto reports the following error:
-"QA Issue: gphoto2: The compile log indicates that host
-include and/or library paths were used."
-Using the GP_CHECK_LIBRARY function fixes this problem
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 93fbaf2..6d661f0 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -285,7 +285,7 @@ GP_CONFIG_MSG([Text preview support],[$aa_msg])
- dnl ---------------------------------------------------------------------------
- dnl popt.h: Simplifies handling of command-line options enormously.
- dnl ---------------------------------------------------------------------------
--GP_CHECK_POPT([mandatory])
-+GP_CHECK_LIBRARY([POPT], [popt], [], [popt.h], [], [], [mandatory])
-
-
- dnl ---------------------------------------------------------------------------
---
-1.9.1
-
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb
deleted file mode 100644
index 75ad7f4f0f..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.14.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "gphoto2 - a command-line frontend to libgphoto2"
-HOMEPAGE = "http://www.gphoto.com/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-DEPENDS = "libgphoto2 popt readline"
-RDEPENDS_gphoto2 = "libgphoto2"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/gphoto/gphoto2-${PV}.tar.bz2;name=gphoto2 \
- file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
- file://0002-Look-for-popt-with-GP_CHECK_LIBRARY-function.patch \
-"
-
-SRC_URI[gphoto2.md5sum] = "6c6a21b5e879330cdd71ef92dce36399"
-SRC_URI[gphoto2.sha256sum] = "9302d02fb472d4936988382b7277ccdc4edaf7ede56c490278912ffd0627699c"
-
-inherit autotools pkgconfig gettext
-
-EXTRA_OECONF += "--with-jpeg-prefix=${STAGING_INCDIR} \
- --without-cdk \
-"
-
diff --git a/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb
new file mode 100644
index 0000000000..513845194d
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/gphoto2_2.5.28.bb
@@ -0,0 +1,21 @@
+SUMMARY = "gphoto2 - a command-line frontend to libgphoto2"
+HOMEPAGE = "http://www.gphoto.com/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+DEPENDS = "libgphoto2 popt readline"
+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"
+
+inherit autotools pkgconfig gettext
+
+EXTRA_OECONF += "--with-jpeg-prefix=${STAGING_INCDIR} \
+ --without-cdk \
+"
+
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 8093676adc..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>
---
@@ -19,30 +19,23 @@ Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
libgphoto2_port/configure.ac | 1 -
2 files changed, 0 insertions(+), 2 deletions(-)
-diff --git a/configure.ac b/configure.ac
-index 2f8e1b8..2e90acf 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -209,7 +209,6 @@ ALL_LINGUAS="cs da de es eu fr hu it ja nl pl ru sv uk vi zh_CN"
- GP_GETTEXT_HACK([${PACKAGE}-${LIBGPHOTO2_CURRENT_MIN}],[The gPhoto Team],[${MAIL_GPHOTO_TRANSLATION}])
- AM_GNU_GETTEXT_VERSION([0.14.1])
- AM_GNU_GETTEXT([external])
+@@ -282,7 +282,6 @@ dnl ------------------------------------
+ GP_GETTEXT_SETUP([GETTEXT_PACKAGE_LIBGPHOTO2],
+ [${PACKAGE}-${LIBGPHOTO2_CURRENT_MIN}],
+ [po])
-AM_PO_SUBDIRS()
+ AM_GNU_GETTEXT_VERSION([0.19.1])
+ AM_GNU_GETTEXT([external])
AM_ICONV()
- GP_GETTEXT_FLAGS()
-
-diff --git a/libgphoto2_port/configure.ac b/libgphoto2_port/configure.ac
-index 0b66d58..df47357 100644
--- a/libgphoto2_port/configure.ac
+++ b/libgphoto2_port/configure.ac
-@@ -124,7 +124,6 @@ GP_GETTEXT_HACK([${PACKAGE}-${LIBGPHOTO2_PORT_CURRENT_MIN}],[Lutz Mueller and ot
- ALL_LINGUAS="cs da de es eu fi fr it ja nl pl pt_BR ru sk sr sv uk vi zh_CN zh_TW"
- AM_GNU_GETTEXT_VERSION([0.14.1])
- AM_GNU_GETTEXT([external])
+@@ -122,7 +122,6 @@ dnl ------------------------------------
+ GP_GETTEXT_SETUP([GETTEXT_PACKAGE_LIBGPHOTO2_PORT],
+ [${PACKAGE}-${LIBGPHOTO2_PORT_CURRENT_MIN}],
+ [po])
-AM_PO_SUBDIRS()
+ AM_GNU_GETTEXT_VERSION([0.19.1])
+ AM_GNU_GETTEXT([external])
AM_ICONV()
- GP_GETTEXT_FLAGS()
-
---
-1.7.4.4
-
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi b/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi
deleted file mode 100644
index 3977064fe0..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2-device.fdi
+++ /dev/null
@@ -1,9533 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
-<!-- This file was generated by libgphoto2 print-camera-list - - fdi-device -->
-<!--+
- | Created from this library:
- | libgphoto2 2.5.8 all camlibs, gcc, ltdl, no EXIF
- | libgphoto2_port 0.12.0 gcc, ltdl, no USB, serial without locking
- +-->
-<deviceinfo version="0.2">
- <device>
- <match key="info.subsystem" string="usb">
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13251">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13252">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13891">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13628">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13869">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13702">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13128">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13129">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13130">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13272">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13180">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13181">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13259">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13093">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13121">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13124">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13125">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13193">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13194">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13176">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13588">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13736">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13892">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="14117">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13833">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13427">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13663">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13911">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13226">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13796">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1282">
- <match key="usb_device.product_id" int="13853">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="5845">
- <match key="usb_device.product_id" int="32774">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="5845">
- <match key="usb_device.product_id" int="32773">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1725">
- <match key="usb_device.product_id" int="1027">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1725">
- <match key="usb_device.product_id" int="1028">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20555">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20554">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2250">
- <match key="usb_device.product_id" int="273">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20554">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20555">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7099">
- <match key="usb_device.product_id" int="360">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7099">
- <match key="usb_device.product_id" int="8200">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7099">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7099">
- <match key="usb_device.product_id" int="40974">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7099">
- <match key="usb_device.product_id" int="61443">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7099">
- <match key="usb_device.product_id" int="36941">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7099">
- <match key="usb_device.product_id" int="359">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="2048">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="7">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="8">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="10">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="12">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="18">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="11">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="13">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="5">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6473">
- <match key="usb_device.product_id" int="242">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="548">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4762">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4779">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4752">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4754">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4756">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4759">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4768">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4776">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4753">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4755">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1452">
- <match key="usb_device.product_id" int="4761">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="20488">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="20489">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="16386">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5416">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5417">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5433">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5432">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5305">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5448">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4618">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4893">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4620">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4865">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4867">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4881">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4897">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="12787">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4913">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4915">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="12841">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4871">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="8200">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4951">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4945">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4873">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4875">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4883">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4885">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4917">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4877">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4879">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4889">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5359">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5480">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5481">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5311">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5400">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5384">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5385">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5293">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5274">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5227">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5214">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="5208">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="12715">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4615">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4929">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4891">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3705">
- <match key="usb_device.product_id" int="4616">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37180">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="23055">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19680">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19681">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="20815">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="30579">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21519">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21535">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21775">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21760">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19664">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19665">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21023">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21007">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19648">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19649">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21600">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21608">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21504">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21520">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21521">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21606">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="30578">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21766">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21857">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="20992">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="20993">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21008">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21009">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21012">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21024">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21025">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21040">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21041">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19968">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19969">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19983">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19999">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19712">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19713">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19584">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19585">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19600">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19601">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19616">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="19617">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="22047">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="24322">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="22543">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="22559">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21632">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21633">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="30593">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21648">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2821">
- <match key="usb_device.product_id" int="21649">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36945">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8320">
- <match key="usb_device.product_id" int="6">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8320">
- <match key="usb_device.product_id" int="5">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1189">
- <match key="usb_device.product_id" int="12291">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7493">
- <match key="usb_device.product_id" int="17821">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10823">
- <match key="usb_device.product_id" int="32528">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10823">
- <match key="usb_device.product_id" int="8200">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10823">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12359">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12738">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12733">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12774">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12787">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12904">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12480">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12365">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12791">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12390">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12479">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12405">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12474">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12558">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12468">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12543">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12572">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12542">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12623">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12530">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12622">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12566">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12676">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12569">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12660">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12598">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12640">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12660">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12565">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12740">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12619">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12639">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12659">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12691">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12737">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12443">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12443">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12484">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12402">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12470">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12532">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12370">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12389">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12400">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12401">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12529">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12526">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12394">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12424">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12423">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12453">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12667">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12912">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12419">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12476">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12823">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12927">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12522">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12615">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12752">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12825">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12523">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12524">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12420">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12441">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12563">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12527">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12526">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12526">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12560">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12614">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12613">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12751">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12699">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12778">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12545">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12546">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12697">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12858">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12824">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12821">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12859">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12880">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12914">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12883">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12698">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12911">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12356">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12384">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12420">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12441">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12560">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12420">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12441">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12526">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12560">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12613">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12751">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12861">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12953">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12751">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12613">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12430">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12865">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12969">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12837">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12774">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12691">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12358">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12363">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12484">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12395">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12438">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12412">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12410">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12448">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12438">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12430">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12417">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12416">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12457">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12395">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12429">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12418">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12415">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12416">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12395">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12438">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12457">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12549">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12430">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12367">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12385">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12686">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12739">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12862">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12900">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12366">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12386">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12689">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12734">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12842">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12874">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12873">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12913">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12898">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12377">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12406">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12786">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12472">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12785">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12897">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12376">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12471">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12867">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12537">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12559">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12536">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12629">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12617">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12666">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12735">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12783">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12482">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12481">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12582">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12571">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12624">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12621">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12620">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12663">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12662">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12404">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12541">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12540">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12602">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12601">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12635">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12403">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12567">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12600">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12637">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12469">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12442">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12838">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12863">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12473">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12475">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12732">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12936">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12937">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12360">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12851">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12687">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12767">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12888">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12373">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12398">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12399">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12421">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12467">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12581">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12634">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12443">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12361">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12444">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12353">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12854">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12357">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12369">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12891">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12917">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12528">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12355">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12389">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12400">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12401">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12570">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12375">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12364">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12390">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12374">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12405">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12474">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12396">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12397">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12616">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12407">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12468">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12466">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12465">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12538">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12818">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12443">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12402">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12623">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12470">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12676">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12740">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12788">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12484">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12480">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12599">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12529">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12543">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12530">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12572">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12542">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12569">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12622">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12661">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12738">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12660">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12619">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12694">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12565">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12774">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12737">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12691">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12685">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12638">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12690">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12768">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12817">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12852">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12890">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12918">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12772">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12736">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12790">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12844">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12840">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12869">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12868">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12895">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12856">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12892">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12919">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12955">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12368">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12380">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12778">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12823">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12859">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1193">
- <match key="usb_device.product_id" int="12408">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1999">
- <match key="usb_device.product_id" int="4169">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1999">
- <match key="usb_device.product_id" int="4162">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1999">
- <match key="usb_device.product_id" int="4173">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1999">
- <match key="usb_device.product_id" int="4172">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1999">
- <match key="usb_device.product_id" int="4474">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1375">
- <match key="usb_device.product_id" int="49664">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1207">
- <match key="usb_device.product_id" int="34985">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="4098">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1943">
- <match key="usb_device.product_id" int="32769">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="548">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7796">
- <match key="usb_device.product_id" int="25874">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7763">
- <match key="usb_device.product_id" int="5">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="16640">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1000">
- <match key="usb_device.product_id" int="8578">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1000">
- <match key="usb_device.product_id" int="8576">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2386">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="1809">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="1873">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2321">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2369">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2049">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2161">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2193">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2145">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2177">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2337">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2305">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="1793">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="1889">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3617">
- <match key="usb_device.product_id" int="2353">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16406">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16391">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16394">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16402">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16395">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16403">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16675">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16727">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16688">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16700">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16691">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16737">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16695">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16701">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16689">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16720">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16728">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16722">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16671">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16723">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16702">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16721">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16738">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16745">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16680">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4204">
- <match key="usb_device.product_id" int="12821">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2125">
- <match key="usb_device.product_id" int="3">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3428">
- <match key="usb_device.product_id" int="4129">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1000">
- <match key="usb_device.product_id" int="8496">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3141">
- <match key="usb_device.product_id" int="32768">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16690">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="16687">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16700">
- <match key="usb_device.product_id" int="45323">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16700">
- <match key="usb_device.product_id" int="45338">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16700">
- <match key="usb_device.product_id" int="45339">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16700">
- <match key="usb_device.product_id" int="17664">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7994">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1498">
- <match key="usb_device.product_id" int="4120">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4483">
- <match key="usb_device.product_id" int="1">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1498">
- <match key="usb_device.product_id" int="4128">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2726">
- <match key="usb_device.product_id" int="24609">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36944">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36946">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4310">
- <match key="usb_device.product_id" int="8704">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1208">
- <match key="usb_device.product_id" int="1027">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1208">
- <match key="usb_device.product_id" int="1026">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10608">
- <match key="usb_device.product_id" int="8200">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10608">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6018">
- <match key="usb_device.product_id" int="16385">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1747">
- <match key="usb_device.product_id" int="8634">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3530">
- <match key="usb_device.product_id" int="2">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3530">
- <match key="usb_device.product_id" int="2">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="330">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="466">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="454">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="467">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="539">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="403">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="480">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="448">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="484">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="411">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="449">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="453">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="468">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="486">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="506">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="526">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="557">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="625">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="592">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="477">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="475">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="495">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="512">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="488">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="521">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="576">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="637">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="613">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="664">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="452">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="471">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="447">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="322">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="399">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="668">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="563">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="622">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="611">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="678">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="648">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="472">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="513">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="525">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="510">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="693">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1227">
- <match key="usb_device.product_id" int="451">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1221">
- <match key="usb_device.product_id" int="4416">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1221">
- <match key="usb_device.product_id" int="4923">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2334">
- <match key="usb_device.product_id" int="9605">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1112">
- <match key="usb_device.product_id" int="28677">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1037">
- <match key="usb_device.product_id" int="34908">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1044">
- <match key="usb_device.product_id" int="8200">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1044">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="7">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="6">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="20033">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="20034">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="19983">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="19712">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="11522">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="29706">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="53514">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="53513">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="20193">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="20194">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="45066">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="28840">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="20005">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="20006">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="1459">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="28930">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6353">
- <match key="usb_device.product_id" int="20197">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="9842">
- <match key="usb_device.product_id" int="17">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1943">
- <match key="usb_device.product_id" int="32796">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4866">
- <match key="usb_device.product_id" int="4118">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4866">
- <match key="usb_device.product_id" int="4119">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="32285">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="23837">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="23581">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4251">
- <match key="usb_device.product_id" int="37126">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4251">
- <match key="usb_device.product_id" int="37129">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4251">
- <match key="usb_device.product_id" int="37125">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="25858">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="25090">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="31746">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="32002">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="25346">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="26114">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="29698">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="30722">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="29186">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="28162">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="30978">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="27906">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="25346">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="16642">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="26626">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="28930">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="27394">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="25602">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="30210">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="26370">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="27650">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="27138">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="16898">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="30466">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="32258">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="17154">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="16642">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="17410">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="17666">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="16642">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="24578">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="61443">
- <match key="usb_device.product_id" int="24578">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="35586">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="35842">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="29954">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="31490">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="29442">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="31234">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="32770">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="33026">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="33282">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="39682">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="33794">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="34050">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="38402">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="38658">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="34562">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1008">
- <match key="usb_device.product_id" int="34818">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="26716">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="26720">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="8200">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3782">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3773">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3583">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3219">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3240">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3582">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3556">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="1533">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3541">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3633">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3634">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3573">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="1966">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3546">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3985">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3940">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3939">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3975">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3935">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3936">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3562">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3538">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="1994">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3877">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="1562">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="4020">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="4021">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="1995">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="2009">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3308">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3576">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3577">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3578">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3579">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3580">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3581">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="2008">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="8210">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="1547">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="3533">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="61642">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="2977">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2996">
- <match key="usb_device.product_id" int="2978">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4817">
- <match key="usb_device.product_id" int="4226">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4817">
- <match key="usb_device.product_id" int="13839">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4817">
- <match key="usb_device.product_id" int="13855">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4817">
- <match key="usb_device.product_id" int="4177">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4817">
- <match key="usb_device.product_id" int="4178">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37203">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1161">
- <match key="usb_device.product_id" int="49189">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6655">
- <match key="usb_device.product_id" int="771">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6655">
- <match key="usb_device.product_id" int="777">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6655">
- <match key="usb_device.product_id" int="775">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="32903">
- <match key="usb_device.product_id" int="2655">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="32903">
- <match key="usb_device.product_id" int="2581">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="32903">
- <match key="usb_device.product_id" int="2582">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="32902">
- <match key="usb_device.product_id" int="1584">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="32903">
- <match key="usb_device.product_id" int="2654">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="32903">
- <match key="usb_device.product_id" int="2555">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4394">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4390">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4417">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4418">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4434">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4455">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4433">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="8449">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="8453">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="8450">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4102">
- <match key="usb_device.product_id" int="12292">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4104">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4386">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4102">
- <match key="usb_device.product_id" int="16386">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4102">
- <match key="usb_device.product_id" int="16387">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4423">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4371">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4384">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4375">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4373">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4372">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4376">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4377">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4435">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4404">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4162">
- <match key="usb_device.product_id" int="4419">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7784">
- <match key="usb_device.product_id" int="4098">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4374">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="16642">
- <match key="usb_device.product_id" int="4402">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2848">
- <match key="usb_device.product_id" int="56814">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1924">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="13056">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="16640">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1498">
- <match key="usb_device.product_id" int="4102">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="0">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10545">
- <match key="usb_device.product_id" int="2561">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10545">
- <match key="usb_device.product_id" int="2565">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1265">
- <match key="usb_device.product_id" int="24837">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2126">
- <match key="usb_device.product_id" int="1">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2856">
- <match key="usb_device.product_id" int="4108">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8759">
- <match key="usb_device.product_id" int="53512">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8759">
- <match key="usb_device.product_id" int="53513">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8759">
- <match key="usb_device.product_id" int="45320">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1559">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1547">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1406">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1418">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1420">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1421">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1417">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1450">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1434">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1442">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1463">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1466">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1447">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1455">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1454">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1475">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1449">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1478">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1436">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1376">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1376">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1333">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1382">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1382">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1396">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1395">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1393">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1412">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1401">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1400">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1400">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1402">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1403">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1414">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1404">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="288">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="289">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="272">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="273">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="304">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="274">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="306">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="352">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="305">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1317">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1280">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1296">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1328">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="368">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1365">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1398">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1360">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1392">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1394">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1397">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1405">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1407">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1399">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="768">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1344">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1384">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1385">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1381">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1383">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1486">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1536">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1439">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1473">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1453">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1413">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1024">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1426">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1427">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1422">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1423">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1425">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1440">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1452">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1451">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1464">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1437">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1438">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1415">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1459">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1460">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1408">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1416">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1027">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1461">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1429">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1487">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1485">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1034">
- <match key="usb_device.product_id" int="1472">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1224">
- <match key="usb_device.product_id" int="1826">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4907">
- <match key="usb_device.product_id" int="1">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4907">
- <match key="usb_device.product_id" int="25">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4907">
- <match key="usb_device.product_id" int="9">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4907">
- <match key="usb_device.product_id" int="7">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4907">
- <match key="usb_device.product_id" int="24">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4907">
- <match key="usb_device.product_id" int="34">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7994">
- <match key="usb_device.product_id" int="4102">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1154">
- <match key="usb_device.product_id" int="2425">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1154">
- <match key="usb_device.product_id" int="2064">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1154">
- <match key="usb_device.product_id" int="1393">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1154">
- <match key="usb_device.product_id" int="1434">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36945">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9077">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6808">
- <match key="usb_device.product_id" int="2">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30519">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30507">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29848">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30140">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30142">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30018">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30077">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30440">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29706">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30851">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30133">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30554">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29900">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29847">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29862">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29944">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30488">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29724">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30450">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30698">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30463">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="30641">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25073">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25081">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25215">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25198">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="24859">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="24719">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="24882">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25406">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25145">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25149">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25116">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25125">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="24986">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1086">
- <match key="usb_device.product_id" int="28736">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1086">
- <match key="usb_device.product_id" int="28849">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25372">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="25189">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="24592">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4100">
- <match key="usb_device.product_id" int="24581">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="16640">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="5073">
- <match key="usb_device.product_id" int="28674">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1133">
- <match key="usb_device.product_id" int="2304">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1133">
- <match key="usb_device.product_id" int="2384">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="16640">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="13056">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20555">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1647">
- <match key="usb_device.product_id" int="33900">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3725">
- <match key="usb_device.product_id" int="80">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1032">
- <match key="usb_device.product_id" int="45066">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6127">
- <match key="usb_device.product_id" int="29827">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20554">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="16640">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8709">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="16642">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1647">
- <match key="usb_device.product_id" int="34128">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1647">
- <match key="usb_device.product_id" int="34184">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1032">
- <match key="usb_device.product_id" int="45065">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4721">
- <match key="usb_device.product_id" int="8210">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8222">
- <match key="usb_device.product_id" int="17067">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10821">
- <match key="usb_device.product_id" int="8200">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10821">
- <match key="usb_device.product_id" int="3074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4310">
- <match key="usb_device.product_id" int="8960">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3504">
- <match key="usb_device.product_id" int="21874">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="1600">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="1570">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="1260">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="1808">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="1598">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="61642">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="201">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1118">
- <match key="usb_device.product_id" int="1601">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3141">
- <match key="usb_device.product_id" int="32776">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2125">
- <match key="usb_device.product_id" int="3">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="24778">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="28808">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="25807">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11826">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11827">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11879">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11941">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11944">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11880">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="16854">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="16858">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="17063">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="17279">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="17267">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="18449">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="16860">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="28874">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11894">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11906">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11908">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11874">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11875">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11878">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="25619">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="25781">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="25782">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11856">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="11857">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="25621">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="10853">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="28835">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="28840">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="28841">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="17169">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="17158">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="16847">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="28941">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="28942">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8888">
- <match key="usb_device.product_id" int="17250">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1375">
- <match key="usb_device.product_id" int="49664">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1375">
- <match key="usb_device.product_id" int="41808">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1375">
- <match key="usb_device.product_id" int="49696">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1375">
- <match key="usb_device.product_id" int="50208">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1375">
- <match key="usb_device.product_id" int="50464">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2726">
- <match key="usb_device.product_id" int="38401">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1033">
- <match key="usb_device.product_id" int="806">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1033">
- <match key="usb_device.product_id" int="1074">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1033">
- <match key="usb_device.product_id" int="578">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1026">
- <match key="usb_device.product_id" int="22120">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="770">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="279">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="290">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="291">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="265">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="277">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="289">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="273">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="285">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="301">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="516">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="267">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="304">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="305">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="297">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="275">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="518">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="281">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="302">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="269">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="309">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="313">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="311">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="287">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="259">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="295">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="274">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="401">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="258">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="550">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="392">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="520">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="779">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="777">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="382">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="351">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="389">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="789">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="792">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="791">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="804">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="835">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="773">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="402">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="320">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="381">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="322">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="545">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="524">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="361">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="388">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="347">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="547">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="355">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="552">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="785">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="367">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="383">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="395">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="549">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="553">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="363">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="364">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="371">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="823">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="838">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="334">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="353">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="375">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="376">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="801">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="813">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="831">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="795">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="800">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="820">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="810">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="324">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="809">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="349">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="544">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="334">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="369">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="542">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="540">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="343">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="543">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="546">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="390">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="403">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="843">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1028">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1036">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1032">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1052">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1034">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1026">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1040">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1046">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1050">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1060">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1061">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1063">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1068">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1075">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1062">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1056">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1067">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1044">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1048">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1077">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1059">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1065">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1071">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1073">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1054">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1069">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1030">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1058">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1064">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1038">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1072">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1079">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1042">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1066">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1070">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1078">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1057">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1538">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1539">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1541">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1545">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1542">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1537">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1200">
- <match key="usb_device.product_id" int="1540">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20554">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="548">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="705">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="101">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="95">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1122">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="494">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="521">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1214">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="738">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1210">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="108">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="234">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1150">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="553">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1204">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="340">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="341">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="345">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="46">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="152">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="141">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="60">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="663">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1491">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1426">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="961">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="973">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="463">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="815">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="377">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="229">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="820">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="821">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="228">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="417">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="545">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1788">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1638">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1633">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1316">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1160">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1233">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1249">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="121">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="390">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="766">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="770">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1265">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="10">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="116">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="146">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1306">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1157">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1144">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1253">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1263">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="110">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="978">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="57">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="501">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="619">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="500">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="628">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1057">
- <match key="usb_device.product_id" int="1768">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="5891">
- <match key="usb_device.product_id" int="1">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="5891">
- <match key="usb_device.product_id" int="2">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2389">
- <match key="usb_device.product_id" int="28841">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2389">
- <match key="usb_device.product_id" int="46080">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2389">
- <match key="usb_device.product_id" int="52999">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2389">
- <match key="usb_device.product_id" int="52994">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2389">
- <match key="usb_device.product_id" int="28928">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2389">
- <match key="usb_device.product_id" int="28930">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7763">
- <match key="usb_device.product_id" int="6">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="272">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="303">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="303">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="278">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="275">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="303">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="276">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="278">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1972">
- <match key="usb_device.product_id" int="278">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8921">
- <match key="usb_device.product_id" int="10085">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8921">
- <match key="usb_device.product_id" int="10100">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8921">
- <match key="usb_device.product_id" int="10099">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="9076">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="8517">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1242">
- <match key="usb_device.product_id" int="8536">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4204">
- <match key="usb_device.product_id" int="61443">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7501">
- <match key="usb_device.product_id" int="20534">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7501">
- <match key="usb_device.product_id" int="20533">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7501">
- <match key="usb_device.product_id" int="20554">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="9723">
- <match key="usb_device.product_id" int="357">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2583">
- <match key="usb_device.product_id" int="13">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2583">
- <match key="usb_device.product_id" int="247">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2726">
- <match key="usb_device.product_id" int="38658">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8316">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8377">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8504">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="357">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8311">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8334">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8196">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="2135">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="2126">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8194">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="335">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8309">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8315">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8375">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8421">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="333">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="332">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="491">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="331">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="6411">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8592">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="32257">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="385">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="356">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="8226">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1137">
- <match key="usb_device.product_id" int="370">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2276">
- <match key="usb_device.product_id" int="322">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2276">
- <match key="usb_device.product_id" int="328">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1924">
- <match key="usb_device.product_id" int="10376">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1350">
- <match key="usb_device.product_id" int="8245">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1350">
- <match key="usb_device.product_id" int="3503">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10724">
- <match key="usb_device.product_id" int="4611">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10724">
- <match key="usb_device.product_id" int="4355">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1924">
- <match key="usb_device.product_id" int="21248">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="65535">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="34816">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="61443">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="553">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="12694">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="26468">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="26469">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="36921">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1478">
- <match key="usb_device.product_id" int="36901">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3530">
- <match key="usb_device.product_id" int="4">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1924">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="4704">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="4712">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8715">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8707">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8708">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8712">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8716">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="805">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8724">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="813">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8717">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8722">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="811">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8723">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8726">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="815">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8727">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8730">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="272">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8706">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="829">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8717">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4042">
- <match key="usb_device.product_id" int="32775">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8719">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8719">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37181">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37181">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37181">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3141">
- <match key="usb_device.product_id" int="32771">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3141">
- <match key="usb_device.product_id" int="32771">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3141">
- <match key="usb_device.product_id" int="32771">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26726">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26407">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26720">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26716">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26743">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26450">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26799">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="57868">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26649">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="1188">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20255">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26420">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26178">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="5132">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="4996">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26698">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26467">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26377">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26793">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="26370">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20526">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20509">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20514">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20527">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20516">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="23055">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20531">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="1033">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20567">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20609">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20570">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20760">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20611">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20762">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20757">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20765">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20784">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20773">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20751">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20782">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20625">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20619">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20618">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20551">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20607">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20564">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20605">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20627">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20769">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20791">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1256">
- <match key="usb_device.product_id" int="20540">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29712">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29776">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29778">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29746">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29748">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29924">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29904">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29824">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29728">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29730">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29792">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29888">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29890">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29920">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29697">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29696">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29744">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1921">
- <match key="usb_device.product_id" int="29872">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1140">
- <match key="usb_device.product_id" int="560">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1943">
- <match key="usb_device.product_id" int="35073">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1943">
- <match key="usb_device.product_id" int="35081">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1943">
- <match key="usb_device.product_id" int="35089">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2125">
- <match key="usb_device.product_id" int="4097">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="851">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="8718">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1482">
- <match key="usb_device.product_id" int="807">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1245">
- <match key="usb_device.product_id" int="38497">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1245">
- <match key="usb_device.product_id" int="38602">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1161">
- <match key="usb_device.product_id" int="49189">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1647">
- <match key="usb_device.product_id" int="40976">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3191">
- <match key="usb_device.product_id" int="4113">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3191">
- <match key="usb_device.product_id" int="4117">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3191">
- <match key="usb_device.product_id" int="4098">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3191">
- <match key="usb_device.product_id" int="4112">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3428">
- <match key="usb_device.product_id" int="4097">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3191">
- <match key="usb_device.product_id" int="4097">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6390">
- <match key="usb_device.product_id" int="258">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6390">
- <match key="usb_device.product_id" int="272">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="13056">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7132">
- <match key="usb_device.product_id" int="64191">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3530">
- <match key="usb_device.product_id" int="2">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3783">
- <match key="usb_device.product_id" int="4104">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1870">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1990">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2391">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2279">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2382">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2231">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2387">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2381">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2388">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2274">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="4756">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="704">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="743">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1347">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1567">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1774">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1169">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="2221">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1323">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1322">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1867">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="662">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="662">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="835">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="760">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1340">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20853">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="41333">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="45429">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="370">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20850">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16754">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="390">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20870">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16774">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="361">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20841">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16745">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="373">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16757">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="374">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16758">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="375">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20855">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16759">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="41335">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="45431">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="376">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20856">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16760">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="386">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20866">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16770">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="371">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20851">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16755">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="41331">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="45427">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1839">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1656">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="860">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="805">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="859">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1028">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="878">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="984">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1214">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1434">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1673">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1020">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1227">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="901">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1021">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1446">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="806">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1022">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="807">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="910">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="858">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="908">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1228">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1448">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="904">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1211">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="919">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="920">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="78">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1191">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="801">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1187">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1641">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1846">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1847">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1396">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1653">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20854">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="41334">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="45430">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="385">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20865">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16769">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1233">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1459">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1356">
- <match key="usb_device.product_id" int="1460">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="369">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="368">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20848">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16752">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="384">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20864">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16768">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20849">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16753">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="382">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20862">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16766">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="41342">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="45438">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="365">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="408">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20888">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="419">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20899">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16803">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="396">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20876">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16780">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="444">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20924">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="444">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="459">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20939">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16843">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="392">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20872">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16776">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="402">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20882">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16786">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="411">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20891">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16795">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="427">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20907">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16811">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="426">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20906">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16810">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="405">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20885">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16789">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="397">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="404">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20877">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20884">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16781">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16788">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="403">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20883">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16787">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="438">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="406">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="412">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20918">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20886">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20892">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16796">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="423">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16807">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20903">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="414">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20894">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16798">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="431">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20911">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16815">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="443">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20923">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16827">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="442">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20922">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16826">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="393">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20873">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16777">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="407">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20887">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="326">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20806">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="217">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="212">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="239">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="343">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20823">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16727">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="334">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="53572">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="324">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="57344">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="117">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20815">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="335">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="346">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20826">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="342">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20822">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="349">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20829">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="358">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20838">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="359">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20839">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="360">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20840">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="16744">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="353">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20833">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="251">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="307">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="314">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="4296">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="243">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="261">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="198">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="179">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="245">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="118">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="218">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="274">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4046">
- <match key="usb_device.product_id" int="20845">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37181">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1105">
- <match key="usb_device.product_id" int="53512">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="5073">
- <match key="usb_device.product_id" int="28695">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2726">
- <match key="usb_device.product_id" int="12305">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1691">
- <match key="usb_device.product_id" int="12341">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1691">
- <match key="usb_device.product_id" int="1911">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1691">
- <match key="usb_device.product_id" int="1908">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1691">
- <match key="usb_device.product_id" int="1916">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1691">
- <match key="usb_device.product_id" int="12314">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1691">
- <match key="usb_device.product_id" int="12328">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2329">
- <match key="usb_device.product_id" int="256">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="5008">
- <match key="usb_device.product_id" int="21589">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4571">
- <match key="usb_device.product_id" int="4096">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="2403">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="12">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="9">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="29">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="26">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="24">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="17">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="15">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="16">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="25">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="22">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="20">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4402">
- <match key="usb_device.product_id" int="17207">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4402">
- <match key="usb_device.product_id" int="17202">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4402">
- <match key="usb_device.product_id" int="17205">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="4402">
- <match key="usb_device.product_id" int="17204">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2352">
- <match key="usb_device.product_id" int="28928">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="13056">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3478">
- <match key="usb_device.product_id" int="16640">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7784">
- <match key="usb_device.product_id" int="2">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1026">
- <match key="usb_device.product_id" int="1553">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1647">
- <match key="usb_device.product_id" int="33834">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2125">
- <match key="usb_device.product_id" int="3">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1750">
- <match key="usb_device.product_id" int="46">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1750">
- <match key="usb_device.product_id" int="45">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2250">
- <match key="usb_device.product_id" int="272">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1276">
- <match key="usb_device.product_id" int="20554">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1943">
- <match key="usb_device.product_id" int="32794">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1363">
- <match key="usb_device.product_id" int="514">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3428">
- <match key="usb_device.product_id" int="4097">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8711">
- <match key="usb_device.product_id" int="1">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8711">
- <match key="usb_device.product_id" int="17">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1032">
- <match key="usb_device.product_id" int="14489">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="37152">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2425">
- <match key="usb_device.product_id" int="551">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="270">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="2362">
- <match key="usb_device.product_id" int="271">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3141">
- <match key="usb_device.product_id" int="32778">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1161">
- <match key="usb_device.product_id" int="57617">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1161">
- <match key="usb_device.product_id" int="49190">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1161">
- <match key="usb_device.product_id" int="57408">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1329">
- <match key="usb_device.product_id" int="8193">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="3141">
- <match key="usb_device.product_id" int="32769">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7763">
- <match key="usb_device.product_id" int="7">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="4968">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="4680">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="4672">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="61443">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="36921">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="65352">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="872">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="864">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10007">
- <match key="usb_device.product_id" int="1632">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="8711">
- <match key="usb_device.product_id" int="6">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10518">
- <match key="usb_device.product_id" int="37197">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10518">
- <match key="usb_device.product_id" int="61443">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="7871">
- <match key="usb_device.product_id" int="32553">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="1054">
- <match key="usb_device.product_id" int="24576">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="10096">
- <match key="usb_device.product_id" int="36956">
- <append key="info.capabilities" type="strlist">camera</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6610">
- <match key="usb_device.product_id" int="835">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6610">
- <match key="usb_device.product_id" int="65486">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6610">
- <match key="usb_device.product_id" int="580">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6610">
- <match key="usb_device.product_id" int="581">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6610">
- <match key="usb_device.product_id" int="774">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6610">
- <match key="usb_device.product_id" int="775">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- <match key="usb_device.vendor_id" int="6610">
- <match key="usb_device.product_id" int="899">
- <append key="info.capabilities" type="strlist">portable_audio_player</append>
- </match>
- </match>
- </match>
- </device>
-</deviceinfo>
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi b/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi
deleted file mode 100644
index 00427e7d97..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/libgphoto2/10-camera-libgphoto2.fdi
+++ /dev/null
@@ -1,19018 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- -->
-<!-- This file was generated by libgphoto2 print-camera-list - - fdi -->
-<!--+
- | Created from this library:
- | libgphoto2 2.5.8 all camlibs, gcc, ltdl, no EXIF
- | libgphoto2_port 0.12.0 gcc, ltdl, no USB, serial without locking
- +-->
-<deviceinfo version="0.2">
- <device>
- <match key="info.subsystem" string="usb">
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string"> JL2005B/C/D camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13251">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer E350 Liquid Gallant Duo (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13252">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer E350 Liquid Gallant Duo (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13891">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer E39</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13628">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia A1-810</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13869">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia A1-840FHD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13702">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia A3-A11</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13128">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A100 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13129">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A100 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13130">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A101 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13272">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A110</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13180">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A200 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13181">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A200 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13259">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A210</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13093">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A500 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13121">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A500 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13124">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A501 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13125">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A501 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13193">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A510 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13194">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A510 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13176">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Iconia TAB A700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13588">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Liquid E2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13736">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Liquid E3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13892">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer liquid e700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="14117">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Liquid S56</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13833">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Liquid X1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13427">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Liquid Z120 MT65xx Android Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13663">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Liquid Z130 MT65xx Android Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13911">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer One 7</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13226">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer S500 CloudMobile</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13796">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Z150</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1282">
- <match key="usb.product_id" int="13853">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acer Z160</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="5845">
- <match key="usb.product_id" int="32774">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acromag Inc. XO Learning Tablet (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="5845">
- <match key="usb.product_id" int="32773">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Acromag Inc. XO Learning Tablet (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">AEG Snap 300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1725">
- <match key="usb.product_id" int="1027">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Agfa ePhoto CL18</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1725">
- <match key="usb.product_id" int="1028">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Agfa ePhoto CL20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20555">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aiptek 1.3 mega PocketCam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aiptek PalmCam Trio</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20554">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aiptek Pencam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aiptek PenCam Trio</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2250">
- <match key="usb.product_id" int="273">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aiptek PenCam VGA+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20554">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aiptek Pencam without flash</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20555">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aiptek Smart Megacam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7099">
- <match key="usb.product_id" int="360">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Alcatel 6030a</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7099">
- <match key="usb.product_id" int="8200">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Alcatel One Touch 997D (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7099">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Alcatel One Touch 997D (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7099">
- <match key="usb.product_id" int="40974">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Alcatel OneTouch 5042D (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7099">
- <match key="usb.product_id" int="61443">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Alcatel OneTouch 6034R</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7099">
- <match key="usb.product_id" int="36941">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Alcatel/Bouygues BS472</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7099">
- <match key="usb.product_id" int="359">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Alcatel/TCT 6010D/TCL S950</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Amazing Spiderman</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="2048">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Fire Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="7">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="8">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="10">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="12">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID4)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="18">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID5)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="11">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID6)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="13">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire (ID7)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="5">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire 2G (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6473">
- <match key="usb.product_id" int="242">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Amazon Kindle Fire HD6</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="548">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">American Idol Keychain Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4762">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPad (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4779">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPad Air</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4752">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPhone (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4754">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPhone 3G (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4756">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPhone 3GS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4759">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPhone 4 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4768">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPhone 4S (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4776">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPhone 5 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4753">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4755">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch 2G (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="1452">
- <match key="usb.product_id" int="4761">
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Apple iPod Touch 3rd Gen (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="20488">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos (for Tesco) Hudl (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="20489">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos (for Tesco) Hudl (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="16386">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 101 G4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5416">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5417">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5433">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 Turbo</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5432">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 101 G9 Turbo 250 HD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5305">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 101 Titanium</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5448">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 101 XS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4618">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 104 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4893">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 105 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4620">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 204 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4865">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 404 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4867">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 404CAM (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4881">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 405 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4897">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 405HDD (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="12787">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 45 Neon</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4913">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 5 (MTP mode 1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4915">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 5 (MTP mode 2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="12841">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 50 Diamond</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4871">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 504 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="8200">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 50c</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4951">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 5H IT (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4945">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 5S IT (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4873">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 604 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4875">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 604WIFI (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4883">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 605 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4885">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 605F (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4917">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 7 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4877">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 704 mobile dvr</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4879">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 704TV (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4889">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 705 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5359">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 70b Titanium</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5480">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 70it2 (ID 1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5481">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 70it2 (ID 2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5311">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 80 Titanium</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5400">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 80G9</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5384">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 8o G9 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5385">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 8o G9 Turbo (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5293">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 97 Titanium</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5274">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos 97 Xenon</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5227">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos Arnova 10bG3 Tablet</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5214">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos Arnova 8c G3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="5208">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos Arnova Childpad</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="12715">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos C40</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4615">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos Gmini XS100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4929">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos SPOD (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4891">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos TV+ (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3705">
- <match key="usb.product_id" int="4616">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Archos XS202 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus Bean Sprout</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus DC-1500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus DC-1510</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus DC-1610</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus DC-1620</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37180">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus DC-1730</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus DC-2200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus DC1512e</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Argus QuickClix</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aries ATC-0017</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Aries Digital Keychain Camera, I</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="23055">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus A450CG (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19680">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Asus Fonepad Note 6 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19681">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Asus Fonepad Note 6 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="20815">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Fonepad</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="30579">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 (FE375CXG)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21519">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 LTE ME372CL (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21535">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Fonepad 7 LTE ME372CL (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21775">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus K00E (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21760">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus K010 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19664">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ME301T MeMo Pad Smart 10 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19665">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ME301T MeMo Pad Smart 10 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21023">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ME302C MemoPad (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21007">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ME302C MemoPad (MTP+?)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19648">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ME302KL MeMo Pad FHD10 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19649">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ME302KL MeMo Pad FHD10 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21600">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Memo K00F (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21608">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Memo K00F (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21504">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Memo ME172V (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21520">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Memo ME173X (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21521">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Memo ME173X (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21606">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Memo Pad 8 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="30578">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 7 (ME572CL)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21766">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 7 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21857">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus MemoPad 8 ME181 CX (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="20992">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="20993">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21008">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21009">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21012">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone 2 (PTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21024">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (2nd ID) (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21025">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (2nd ID) (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21040">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21041">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus PadFone Infinity (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19968">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus SL101 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19969">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus SL101 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19983">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF101 Eeepad Transformer (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19999">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF101 Eeepad Transformer (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19712">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF201 Transformer Prime (keyboard dock)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19713">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF201 Transformer Prime (tablet only)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19584">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF300 Transformer (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19585">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF300 Transformer (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19600">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF700 Transformer (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19601">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF700 Transformer (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19616">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF701T Transformer Pad (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="19617">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TF701T Transformer Pad (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="22047">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus TX201LA (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="24322">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus Zenfone 2 ZE550ML (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="22543">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 4 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="22559">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 4 A400CG (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21632">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21633">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="30593">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 5 A500KL (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21648">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 6 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2821">
- <match key="usb.product_id" int="21649">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Asus ZenFone 6 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36945">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Barbie Camera (Digital Blue)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8320">
- <match key="usb.product_id" int="6">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Barnes&amp;Noble Nook HD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8320">
- <match key="usb.product_id" int="5">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Barnes&amp;Noble Nook HD+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1189">
- <match key="usb.product_id" int="12291">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Benq DC1300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7493">
- <match key="usb.product_id" int="17821">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">BenQ F5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10823">
- <match key="usb.product_id" int="32528">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">bq Aquarius E5-4G</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10823">
- <match key="usb.product_id" int="8200">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">bq Krillin (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10823">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">bq Krillin (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12359">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12738">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 100 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12733">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 110 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12774">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 120 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12787">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 130</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12904">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 255HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12480">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 30 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12365">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12791">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 300 HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12390">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12479">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 40 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12405">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 400 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12474">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 430 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12558">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 50 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12468">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12543">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 55 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12572">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 60 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12542">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 65 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12623">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 70 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12530">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12622">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 75 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12566">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 750 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12676">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 80 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12569">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 800 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12660">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 85 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12598">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 850 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12640">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 860 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12660">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 90 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12565">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 900Ti (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12740">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 95 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12619">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 950 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12639">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 960 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12659">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 970 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12691">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 980 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12737">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS 990 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12443">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12443">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12484">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS i5 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12402">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS II (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12470">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS IIs (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12532">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS iZ (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12370">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12389">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12400">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v3 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12401">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS v3 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12529">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital IXUS Wireless (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12526">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital Rebel XT (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12394">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Digital unknown 3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12424">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Elura 50 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12423">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Elura 50 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12453">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Elura 65 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12667">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 1000D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12912">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 100D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12419">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 10D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12476">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 10D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12823">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 1100D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12927">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 1200D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12522">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark II (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12615">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark III (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12752">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D Mark IV</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12825">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 1D X</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12523">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 20D (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12524">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 20D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12420">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 300D (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12441">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 300D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12563">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 30D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12527">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12526">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12526">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 350D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12560">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 400D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12614">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 40D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12613">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 450D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12751">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 500D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12699">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 50D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12778">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 550D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12545">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12546">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12697">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D Mark II</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12858">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 5D Mark III</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12824">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 600D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12821">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 60D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12859">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 650D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12880">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 6D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12914">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 700D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12883">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 70D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12698">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 7D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12911">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS 7D MarkII</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12356">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS D30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12384">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS D60</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12420">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12441">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12560">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Digital Rebel XTi (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12420">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12441">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12526">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital N (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12560">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss Digital X (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12613">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss X2 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12751">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Kiss X3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12861">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS M</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12953">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS M3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12751">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Rebel T1i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12613">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon EOS Rebel XSi (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12430">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon FV M1 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12865">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXUS 125HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12969">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXUS 165</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12837">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXUS 310IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12774">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXY 220 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12691">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXY 3000 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12358">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXY DIGITAL</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12363">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXY DIGITAL 300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12484">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXY Digital L2 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12395">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXY DV M</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12438">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon IXY DV M2 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12412">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MV630i (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12410">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MV650i (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12448">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MV750i (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12438">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MVX 10i (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12430">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MVX 3i (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12417">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MVX100i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12416">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MVX150i (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12457">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MVX25i (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12395">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MVX2i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12429">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon MVX3i (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12418">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura 10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12415">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura 20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12416">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura 20 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12395">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura 200 MC</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12438">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura 300 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12457">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura 40 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12549">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura 600 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12430">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Optura Xi (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12367">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12385">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12686">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1000 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12739">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1100 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12862">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1300IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12900">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A1400</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12366">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12386">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12689">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2000 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12734">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2100 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12842">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12874">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2300IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12873">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2400IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12913">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12898">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A2600</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12377">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12406">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12786">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3000 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12472">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A310 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12785">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3100 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12897">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A3500IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12376">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A40</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12471">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A400 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12867">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A4000IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12537">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A410 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12559">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A420 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12536">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A430 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12629">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A450 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12617">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A460 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12666">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A470</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12735">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A480</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12783">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot A495</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12482">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A510 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12481">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A520 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12582">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A530 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12571">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A540 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12624">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A550 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12621">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A560 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12620">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A570 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12663">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A580</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12662">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A590 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12404">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A60 (PTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12541">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A610 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12540">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A620 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12602">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A630 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12601">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A640 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12635">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A650IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12403">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A70 (PTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12567">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12600">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A710 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12637">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A720 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12469">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A75 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12442">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A80 (PTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12838">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A800</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12863">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A810</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12473">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A85 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12475">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot A95 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12732">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot D10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12936">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Elph135</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12937">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Elph340HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12360">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12851">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G1 X</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12687">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12767">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G11</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12888">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G15</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12373">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12398">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G3 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12399">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G3 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12421">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G5 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12467">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot G6 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12581">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G7 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12634">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot G9 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12443">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot IXY Digital L (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12361">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot Pro90 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12444">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S1 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12353">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12854">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12357">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S100 (2000)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12369">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S110 (2001)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12891">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S110 (PTP Mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12917">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S120</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12528">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S2 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12355">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12389">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12400">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S230 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12401">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S230 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12570">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S3 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12375">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12364">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12390">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12374">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S40</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12405">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S400 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12474">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S410 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12396">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S45 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12397">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S45 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12616">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S5 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12407">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S50 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12468">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12466">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot S60 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12465">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot S70 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12538">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S80 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12818">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot S95</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12443">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD10 Digital ELPH (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12402">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12623">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD1000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12470">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD110 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12676">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD1100 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12740">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD1200 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12788">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD1300 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12484">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD20 (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12480">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12599">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD40 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12529">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD430 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12543">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD450 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12530">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12572">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD600 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12542">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD630 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12569">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12622">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD750 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12661">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD770 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12738">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD780 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12660">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot SD790 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12619">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD850 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12694">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD880 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12565">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD900 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12774">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD940 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12737">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD970 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12691">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SD990</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12685">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX10 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12638">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Powershot SX100 IS (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12690">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX110 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12768">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX120 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12817">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX130 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12852">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX150 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12890">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX160IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12918">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX170 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12772">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX20 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12736">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX200 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12790">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX210 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12844">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX220HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12840">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX230HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12869">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX240HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12868">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX260HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12895">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX280HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12856">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX40HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12892">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX500IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12919">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX510 HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12955">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot SX520 HS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12368">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot unknown 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12380">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon PowerShot unknown 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12778">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Rebel T2i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12823">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Rebel T3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12859">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon Rebel T4i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1193">
- <match key="usb.product_id" int="12408">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Canon ZR70MC (normal mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1999">
- <match key="usb.product_id" int="4169">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Casio EX-S770</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1999">
- <match key="usb.product_id" int="4162">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Casio EX-Z120</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1999">
- <match key="usb.product_id" int="4173">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Casio EX-Z65</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1999">
- <match key="usb.product_id" int="4172">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Casio EX-Z700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1999">
- <match key="usb.product_id" int="4474">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Casio EX-ZR700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1375">
- <match key="usb.product_id" int="49664">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Casio LV 10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1207">
- <match key="usb.product_id" int="34985">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Caterpillar Cat S50</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Che-ez Snap</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Che-Ez Snap SNAP-U</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Che-ez! Babe</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="4098">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Che-ez! Splash</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Che-ez! SPYZ</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1943">
- <match key="usb.product_id" int="32769">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Clever CAM 360</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="548">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Cobra DC125</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Cobra Digital Camera DC150</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7796">
- <match key="usb.product_id" int="25874">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Coby COBY MP705</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7763">
- <match key="usb.product_id" int="5">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Conceptronic CMTD2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Concord Eye-Q Duo</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Concord Eye-Q Easy</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="16640">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Concord EyeQ 4330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1000">
- <match key="usb.product_id" int="8578">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Concord EyeQMini_1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1000">
- <match key="usb.product_id" int="8576">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Concord EyeQMini_2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">CoolCam CP086</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2386">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 10 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="1809">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 6 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="1873">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 7 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2321">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio 9 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2369">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio C2 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2049">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2161">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ DAB FW 4.x (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2193">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ DMB FW 1.x (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2145">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ FW 2.x (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2177">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio D2+ FW 3.x (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2337">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio J3 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2305">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio S9 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="1793">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio U3 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="1889">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio U5 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3617">
- <match key="usb.product_id" int="2353">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Cowon iAudio X7 (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16406">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Creative CardCam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16391">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Creative Go Mini</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16394">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM 300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16402">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM350</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16395">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM600</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16403">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Creative PC-CAM750</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16675">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative Portable Media Center</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16727">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16688">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Micro (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16700">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN MicroPhoto</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16691">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN MicroPhoto (alternate version)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16737">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Mozaic</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16695">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Sleek (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16701">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Sleek Photo</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16689">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Touch (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16720">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN V</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16728">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN V 2GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16722">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN V Plus</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16671">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16723">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision W</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16702">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision:M</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16721">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Vision:M (DVP-HD0004)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16738">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN X-Fi</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16745">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN X-Fi 3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16680">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Creative ZEN Xtra (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4204">
- <match key="usb.product_id" int="12821">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Curitel Communications, Inc. Verizon Wireless Device</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2125">
- <match key="usb.product_id" int="3">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">D-Link DSC 350+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3428">
- <match key="usb.product_id" int="4129">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">D-Link DSC 350F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1000">
- <match key="usb.product_id" int="8496">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">D-MAX DM3588</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DC-N130t</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DC-N130ta</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3141">
- <match key="usb.product_id" int="32768">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DC31VC</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16690">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Dell Dell Pocket DJ (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="16687">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Dell DJ (2nd generation)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16700">
- <match key="usb.product_id" int="45323">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Streak 7</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16700">
- <match key="usb.product_id" int="45338">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Venue 7 inch</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16700">
- <match key="usb.product_id" int="45339">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Dell Inc Dell Venue 7 inch (2nd ID)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16700">
- <match key="usb.product_id" int="17664">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Dell Inc DJ Itty</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Digigr8</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7994">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">DigiLand DL701Q</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Digital camera, CD302N</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DIGITAL MID#0020509 (no-name camera)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1498">
- <match key="usb.product_id" int="4120">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream Enigma1.3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream l'elegante</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream l'elite</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4483">
- <match key="usb.product_id" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion XS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1498">
- <match key="usb.product_id" int="4128">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream l'espion xtra</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream l'esprit</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">DigitalDream la ronde</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2726">
- <match key="usb.product_id" int="24609">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Disney MixMax</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36944">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Disney pix micro</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36946">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Disney pix micro 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4310">
- <match key="usb.product_id" int="8704">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Dunlop MP3 player 1GB / EGOMAN MD223AFD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Elta Medi@ digi-cam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Emprex PCD3600</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1208">
- <match key="usb.product_id" int="1027">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Epson PhotoPC 3000z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1208">
- <match key="usb.product_id" int="1026">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Epson PhotoPC 850z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10608">
- <match key="usb.product_id" int="8200">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Fly Evo Tech 4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10608">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Fly iq4415 era style 3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6018">
- <match key="usb.product_id" int="16385">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Fly iq449</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1747">
- <match key="usb.product_id" int="8634">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">FOMA D905i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3530">
- <match key="usb.product_id" int="2">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji Axia Eyeplate</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3530">
- <match key="usb.product_id" int="2">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji Axia Slimshot</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="330">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="466">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A800</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="454">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A820</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="467">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix A920</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="539">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix AV-150</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="403">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix E900</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="480">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F100fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="448">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="484">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F200 EXR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="411">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="449">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F31fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="453">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F40fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="468">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F50fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="486">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F60fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="506">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F70 EXR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="526">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix F80EXR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="557">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix H20EXR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="625">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix HS30EXR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="592">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix JX370</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="477">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1000fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="475">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S100fs</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="495">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="512">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S1800</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="488">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2000HD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="521">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2500HD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="576">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2950</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="637">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S2980</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="613">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S4300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="664">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S4850</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="452">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S5700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="471">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S5800</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="447">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S6500fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="322">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S7000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="399">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix S9500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="668">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix SL1000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="563">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix T200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="622">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X-S1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="611">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="678">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix X20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="648">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix XF1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="472">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z100fd</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="513">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z35</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="525">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji FinePix Z700EXR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="510">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji Fujifilm A220</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="693">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji Fujifilm X-E2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji IX-1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1227">
- <match key="usb.product_id" int="451">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Fuji S5 Pro</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">FujiFilm @xia ix-100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1221">
- <match key="usb.product_id" int="4416">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Fujitsu, Ltd F903iX HIGH-SPEED</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1221">
- <match key="usb.product_id" int="4923">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Fujitsu, Ltd STYLISTIC M532</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2334">
- <match key="usb.product_id" int="9605">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Garmin Monterra</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Gear to go</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Generic SoundVision Clarity2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1112">
- <match key="usb.product_id" int="28677">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Genius Smart 300, version 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1037">
- <match key="usb.product_id" int="34908">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Gensis GT-7305 </merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1044">
- <match key="usb.product_id" int="8200">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Gigabyte RCT6773W22 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1044">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Gigabyte RCT6773W22 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Global Point 3 in 1 Digital Fun Graffiti 00044</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Global Point Clipster</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Global Point Splash Mini (underwater camera)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="7">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Ainol Novo) Fire/Flame</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="6">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Allwinner) A31 SoC</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="20033">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) Nexus 7 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="20034">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) Nexus 7 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="19983">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) TF101 Transformer</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="19712">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Asus) TF201 Transformer</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="11522">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Barnes &amp; Noble) Nook Color</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="29706">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Lenovo) Ideapad K1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="53514">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics) P990/Optimus</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="53513">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics) P990/Optimus (Cyanogen)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="20193">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="20194">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for LG Electronics/Samsung) Nexus 4/5/7/10 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="45066">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Medion) MD99000 (P9514)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="28840">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Motorola) Xoom (MZ604)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="20005">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Samsung) Nexus S (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="20006">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Samsung) Nexus S (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="1459">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Sony) S1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="28930">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Inc (for Toshiba) Thrive 7/AT105</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6353">
- <match key="usb.product_id" int="20197">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Google Nexus 5 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="9842">
- <match key="usb.product_id" int="17">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">GoPro HERO3+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1943">
- <match key="usb.product_id" int="32796">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">GrandTek ScopeCam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">GTW Electronics</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4866">
- <match key="usb.product_id" int="4118">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Haier Ibiza Rhapsody 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4866">
- <match key="usb.product_id" int="4119">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Haier Ibiza Rhapsody 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Haimei Electronics HE-501A</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Hawking DC120 Pocketcam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="32285">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 10 HD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="23837">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 7 2800</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="23581">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Hewlett-Packard Slate 7 4600</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4251">
- <match key="usb.product_id" int="37126">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Hisense E860 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4251">
- <match key="usb.product_id" int="37129">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Hisense E860 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4251">
- <match key="usb.product_id" int="37125">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HiSense Sero 7 Pro</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="25858">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 120 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="25090">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 215</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="31746">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 217 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="32002">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 317 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="25346">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 318 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="26114">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 320 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="29698">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 407 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="30722">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 417 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="29186">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 43x (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="28162">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 507 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="30978">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 517 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="27906">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 607 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="25346">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 612 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="16642">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 618</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="26626">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 620 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="28930">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 635 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="27394">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 707 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="25602">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 715 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="30210">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 717 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="26370">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 720 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="27650">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 733 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="27138">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 735 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="16898">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 812 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="30466">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 817 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="32258">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 818 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="17154">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 850 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="16642">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 912</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="17410">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 935 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="17666">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart 945 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="16642">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="24578">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="61443">
- <match key="usb.product_id" int="24578">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart C500 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="35586">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart E327 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="35842">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart E427 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="29954">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M22 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="31490">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M23 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="29442">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M307 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="31234">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M415 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="32770">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M425 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="33026">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M525 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="33282">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M527 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="39682">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M547 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="33794">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M725 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="34050">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M727 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="38402">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart M737 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="38658">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R742 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="34562">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R927 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1008">
- <match key="usb.product_id" int="34818">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">HP PhotoSmart R967 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="26716">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC (for Hewlett-Packard) HP Touchpad (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="26720">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC (for Hewlett-Packard) HP Touchpad (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Android Device ID1 (Zopo, HD2, Bird...)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="8200">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Android Device ID2 (Zopo, HD2...)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3782">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Desire 310 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3773">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Droid DNA (MTP+UMS)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3583">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Droid DNA (MTP+UMS+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3219">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC EVO 4G LTE/One V (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3240">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC EVO 4G LTE/One V (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3582">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC Butterfly (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3556">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC Butterfly X290d</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="1533">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC Desire 510 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3541">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC Desire X</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3633">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC Droid Incredible 4G LTE (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3634">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC Droid Incredible 4G LTE (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3573">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC Evo 4G LTE (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="1966">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (HTC6500LVW)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3546">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3985">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3940">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3939">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3975">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB+?)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3935">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+ADB+CDC)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3936">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+CDC)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3562">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One (MTP+UMS+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3538">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One 802w (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="1994">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (HTC6525LVW)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3877">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="1562">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="4020">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+ADB+UMS)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="4021">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (MTP+UMS)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="1995">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One M8 (Verizon) (HTC6525LVW)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="2009">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One Remix (HTC6515LVW)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3308">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3576">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3577">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One S (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3578">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3579">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3580">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3581">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC One X (ID4)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="2008">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC HTC6515LVW/One Remix</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="8210">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Motorola Razr D1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="1547">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC One M8 Google Play Edition (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="3533">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC One Mini (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="61642">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8s ID1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="2977">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8X ID1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2996">
- <match key="usb.product_id" int="2978">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">HTC Windows Phone 8X ID2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4817">
- <match key="usb.product_id" int="4226">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Huawei Ascend P8 </merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4817">
- <match key="usb.product_id" int="13839">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Huawei Mediapad (mode 0)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4817">
- <match key="usb.product_id" int="13855">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Huawei Mediapad (mode 1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4817">
- <match key="usb.product_id" int="4177">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Huawei MTP device (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4817">
- <match key="usb.product_id" int="4178">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Huawei MTP device (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37203">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">iClick 5X</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">iConcepts digital camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1161">
- <match key="usb.product_id" int="49189">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">InFocus M810</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">INNOVAGE Mini Digital, CD302N</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6655">
- <match key="usb.product_id" int="771">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Insignia NS-DV45</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6655">
- <match key="usb.product_id" int="777">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Insignia Pilot 4GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6655">
- <match key="usb.product_id" int="775">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Insignia Sport Player</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="32903">
- <match key="usb.product_id" int="2655">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Intel Chuwi vi8</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="32903">
- <match key="usb.product_id" int="2581">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Intel Foxconn iView i700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="32903">
- <match key="usb.product_id" int="2582">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Intel Noblex T7A21</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="32902">
- <match key="usb.product_id" int="1584">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Intel Pocket PC Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="32903">
- <match key="usb.product_id" int="2654">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Intel Telcast Air 3G</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="32903">
- <match key="usb.product_id" int="2555">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Intel Xolo 900/AZ210A</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">IOMagic MagicImage 400</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ION digital camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4394">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver Clix</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4390">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver Clix2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4417">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver E100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4418">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver E100 v2/Lplayer</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4434">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver E150</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4455">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver E30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4433">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver E50</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="8449">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver H10 20GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="8453">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver H10 5.6GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="8450">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver H10 5GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4102">
- <match key="usb.product_id" int="12292">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver H300 Series MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4104">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver iFP-880</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4386">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver N12</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4102">
- <match key="usb.product_id" int="16386">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver Portable Media Center 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4102">
- <match key="usb.product_id" int="16387">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver Portable Media Center 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4423">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver Spinn</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4371">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4384">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T10 2GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4375">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T10b</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4373">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4372">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T20 FM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4376">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T20b</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4377">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4435">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4404">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T60</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4162">
- <match key="usb.product_id" int="4419">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver T7 Volcano</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7784">
- <match key="usb.product_id" int="4098">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver Tolino Tab 7</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4374">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver U10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="16642">
- <match key="usb.product_id" int="4402">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">iRiver X20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2848">
- <match key="usb.product_id" int="56814">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Isabella Her Prototype</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1924">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ixla DualCam 640</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jazwares Star Wars no. 15256</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jazz JDC9</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jazz JDK235</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="13056">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jenoptik JD-3300z3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="16640">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jenoptik JD-4100z3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1498">
- <match key="usb.product_id" int="4102">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jenoptik JD350 entrance</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="0">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jenoptik JD350 video</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Jenoptik JDC 350</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10545">
- <match key="usb.product_id" int="2561">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Jolla Sailfish (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10545">
- <match key="usb.product_id" int="2565">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Jolla Sailfish (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1265">
- <match key="usb.product_id" int="24837">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">JVC Alneo XA-HD500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2126">
- <match key="usb.product_id" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">KBGear JamCam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2856">
- <match key="usb.product_id" int="4108">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kenwood Media Keg HD10GB7 Sport Player</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8759">
- <match key="usb.product_id" int="53512">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kobo Arc (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8759">
- <match key="usb.product_id" int="53513">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kobo Arc (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8759">
- <match key="usb.product_id" int="45320">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kobo Arc 7 HD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1559">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C1530</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1547">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C183</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1406">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1418">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C310</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1420">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1421">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C340</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1417">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C360</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1450">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C433</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1434">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C530</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1442">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C533</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1463">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C613</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1466">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C633</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1447">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C643</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1455">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C653</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1454">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C743</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1475">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C813</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1449">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C875</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1478">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak C913</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1436">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CD33</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1376">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX4200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1376">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX4210</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1333">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX4230</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1382">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX4300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1382">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX4310</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1396">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX6200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1395">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX6230</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1393">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX6330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1412">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX6445</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1401">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX7220</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1400">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX7300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1400">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX7310</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1402">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX7330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1403">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX7430</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1414">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX7525</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1404">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak CX7530</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC220</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="288">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC240</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="289">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC240 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="272">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC260</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="273">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC265</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="304">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC280</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="274">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC290</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="306">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC3400</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="352">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC4800</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="305">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DC5000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1317">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX3215</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1280">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX3500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1296">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX3600</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1328">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX3700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="368">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX3900</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1365">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX4330</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1398">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX4530</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1360">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX4900</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1392">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX6340</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1394">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX6440</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1397">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX6490</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1405">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX7440</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1407">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX7590</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1399">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak DX7630</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="768">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak EZ200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1344">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak LS420</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1384">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak LS443</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1385">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak LS663</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1381">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak LS743</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1383">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak LS753</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1486">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak M1063</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1536">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak M531</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1439">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak M753</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1473">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak M863</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1453">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak M883</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1413">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak M893 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1024">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak MC3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1426">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak P850</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1427">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak P880</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1422">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak V530</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1423">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak V550</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1425">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak V570</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1440">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak V603</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1452">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak V610</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1451">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak V705</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1464">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak V803</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1437">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z612</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1438">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z650</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1415">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1459">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z710</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1460">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z712 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1408">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z730</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1416">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z740</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1027">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z7590</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1461">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z812 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1429">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z8612 IS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1487">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z915</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1485">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak Z950</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1034">
- <match key="usb.product_id" int="1472">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Kodak ZD710</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1224">
- <match key="usb.product_id" int="1826">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Konica e-mini</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4907">
- <match key="usb.product_id" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE A2 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4907">
- <match key="usb.product_id" int="25">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE A200 (PictBridge mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4907">
- <match key="usb.product_id" int="9">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE X21 (PictBridge mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4907">
- <match key="usb.product_id" int="7">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z2 (PictBridge mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4907">
- <match key="usb.product_id" int="24">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z3 (PictBridge mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4907">
- <match key="usb.product_id" int="34">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Konica-Minolta DiMAGE Z5 (PictBridge mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7994">
- <match key="usb.product_id" int="4102">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kurio 7S</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1154">
- <match key="usb.product_id" int="2425">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kyocera DuraForce</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1154">
- <match key="usb.product_id" int="2064">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kyocera KYL22</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1154">
- <match key="usb.product_id" int="1393">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kyocera Rise</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1154">
- <match key="usb.product_id" int="1434">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Kyocera Torque Model E6715</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36945">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Lego Bionicle</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9077">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Leica D-LUX 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6808">
- <match key="usb.product_id" int="2">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Leica M9</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30519">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo A3500-F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30507">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo A5500-F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29848">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo A820</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30140">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaPad A3000 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30142">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaPad A3000 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30018">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab A2109A</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30077">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab S2210a</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30440">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo IdeaTab S5000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29706">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo K1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30851">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo K3 Note</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30133">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo K900 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30554">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo LifeTab E733X</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29900">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo Lifetab S9512</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo P70-A</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29847">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo P700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29862">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo P780</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29944">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo S660</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30488">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo S930</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29724">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo ThinkPad Tablet</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30450">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo Toga Tablet B6000-F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30698">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo Vibe Z2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30463">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo Yoga Tablet 10 B8000-H</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="30641">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Lenovo Yoga Tablet 2 Pro</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25073">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Android phone (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25081">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Android phone (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25215">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. G3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25198">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. G3 (VS985)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="24859">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. GR-500 Music Player</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="24719">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. KC910 Renoir Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="24882">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. KM900</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25406">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG G Flex 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25145">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS870</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25149">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS890</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25116">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG VS980</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25125">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG2 Optimus</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="24986">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. LG8575</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1086">
- <match key="usb.product_id" int="28736">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. T54</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1086">
- <match key="usb.product_id" int="28849">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. UP3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25372">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. Various E and P models</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="25189">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. VK810</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="24592">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">LG Electronics Inc. VX8550 V CAST Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4100">
- <match key="usb.product_id" int="24581">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">LG T5100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="16640">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Lifetec LT 5995</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="5073">
- <match key="usb.product_id" int="28674">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Logik LOG DAX MP3 and DAB Player</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1133">
- <match key="usb.product_id" int="2304">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Logitech Clicksmart 310</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1133">
- <match key="usb.product_id" int="2384">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Logitech Pocket Digital</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="16640">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Maginon SX-410z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="13056">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Maginon SX330z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Magpix B350</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20555">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Maxell Max Pocket</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1647">
- <match key="usb.product_id" int="33900">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Maxfield G-Flash NG 1GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Media-Tech mt-406</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3725">
- <match key="usb.product_id" int="80">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">MediaTek Inc MT5xx and MT6xx SoCs</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1032">
- <match key="usb.product_id" int="45066">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Medion Lifetab P9514</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6127">
- <match key="usb.product_id" int="29827">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Medion Lifetab P9516</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20554">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Medion MD 5319</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="16640">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Medion MD 6000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8709">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Medion MD 6126</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="16642">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Medion MD 9700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1647">
- <match key="usb.product_id" int="34128">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Medion MD8333 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1647">
- <match key="usb.product_id" int="34184">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Medion MD8333 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1032">
- <match key="usb.product_id" int="45065">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Medion MD99000 (P9514)/Olivetti Olipad 110</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4721">
- <match key="usb.product_id" int="8210">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Megafon Login+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8222">
- <match key="usb.product_id" int="17067">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Megafon MFLogin3T</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10821">
- <match key="usb.product_id" int="8200">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Meizu MX Phone (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10821">
- <match key="usb.product_id" int="3074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Meizu MX Phone (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4310">
- <match key="usb.product_id" int="8960">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Memorex or iRiver MMP 8585/8586 or iRiver E200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3504">
- <match key="usb.product_id" int="21874">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Micro-Star International P610/Model MS-5557</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Micromaxx Digital Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="1600">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft Kin 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="1570">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft Windows MTP Simulator</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="1260">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft Windows Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="1808">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft Zune</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="1598">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft Zune HD</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="61642">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft/HTC HTC 8S</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="201">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft/Intel Bandon Portable Media Center</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1118">
- <match key="usb.product_id" int="1601">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Microsoft/Sharp/nVidia Kin TwoM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3141">
- <match key="usb.product_id" int="32776">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mini Shotz ms-350</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2125">
- <match key="usb.product_id" int="3">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Minton S-Cam F5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mitek CD10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mitek CD30P</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="24778">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola A1200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="28808">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Atrix MB860 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="25807">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Atrix XT687 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11826">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Atrix/Razr HD (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11827">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Atrix/Razr HD (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11879">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Droid Maxx (XT1080)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11941">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Droid Turbo (XT1254)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11944">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Droid Turbo Verizon</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11880">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Droid Ultra</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="16854">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Droid X/MB525 (Defy)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="16858">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola DROID2 (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="17063">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola DROID2 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="17279">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola DROID4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="17267">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola DROID4 (PTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="18449">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola IdeaPad K1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="16860">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Milestone / Verizon Droid</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="28874">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Milestone X2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11894">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11906">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11908">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Moto G (XT1032)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11874">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1053)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11875">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1058)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11878">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Moto X (XT1080)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="25619">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola MTP Test Command Interface</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="25781">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Razr D1/D3/i (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="25782">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Razr D1/D3/i (MTP+?)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11856">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola RAZR M XT907 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="11857">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola RAZR M XT907 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="25621">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola RAZR2 V8/U9/Z6</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="10853">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola V3m/V750 verizon</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="28835">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (Factory test)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="28840">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="28841">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Xoom (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="17169">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="17158">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="16847">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola Xoom 2 Media Edition (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="28941">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola XT890/907/Razr (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="28942">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola XT890/907/Razr (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8888">
- <match key="usb.product_id" int="17250">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Motorola XT912/XT928</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1375">
- <match key="usb.product_id" int="49664">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mustek gSmart 300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1375">
- <match key="usb.product_id" int="41808">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mustek gSmart 350</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1375">
- <match key="usb.product_id" int="49696">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1375">
- <match key="usb.product_id" int="50208">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1375">
- <match key="usb.product_id" int="50464">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Mustek gSmart mini 3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2726">
- <match key="usb.product_id" int="38401">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">MyMusix PD-6070</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1033">
- <match key="usb.product_id" int="806">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">NEC Casio C811</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1033">
- <match key="usb.product_id" int="1074">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">NEC Casio CA-201L</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1033">
- <match key="usb.product_id" int="578">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">NEC FOMA N01A</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1026">
- <match key="usb.product_id" int="22120">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nextar MA715A-8R</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Nexxtech Mini Digital Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="770">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="279">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="290">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="291">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2200v1.1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="265">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 2500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="277">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="289">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="273">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="285">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 3700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="301">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="516">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="267">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="304">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4600 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="305">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4600a (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="297">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 4800 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="275">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="518">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="281">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5400 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="302">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5600 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="269">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="309">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 5900 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="313">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 7600 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="311">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 7900 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="287">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 8700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="259">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon CoolPix 880</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="295">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 8800 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="274">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 885 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="401">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix 9400 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="258">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon CoolPix 990</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="550">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix A (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="392">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix AW100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="520">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="779">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L10 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="777">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L11 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="382">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L110 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="351">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L12 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="389">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L120 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="789">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L16 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="792">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L19 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="791">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L20 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="804">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L23 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="835">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L27</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="773">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L4 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="402">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix L820 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="320">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="381">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="322">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P2 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="545">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P330 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="524">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P4 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="361">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P50 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="388">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="347">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P5000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="547">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P510 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="355">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P5100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="552">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P520 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="785">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P60 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="367">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P6000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="383">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="395">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="549">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="553">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P7800 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="363">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P80 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="364">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P80 v1.1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="371">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix P90 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="823">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S01</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="838">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S02</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="334">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="353">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="375">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S220 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="376">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S225 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="801">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="813">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2600 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="831">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S2700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="795">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="800">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="820">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="810">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S3300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="324">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S4 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="809">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S4300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="349">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="544">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S5100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="334">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S6 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="369">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S60 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="542">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S6000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="540">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S620 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="343">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S7c (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="543">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S8000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="546">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S8200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="390">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="403">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="843">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix S9700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon Coolpix SQ (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1028">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon D2H SLR (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1036">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon D2Hs (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1032">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon D2X SLR (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1052">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon D3 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1034">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon D50 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1026">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1040">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1046">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D2Xs (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1050">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1060">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1061">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D300s (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1063">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1068">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1075">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1062">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3s (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1056">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D3x (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1067">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1044">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D40 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1048">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D40x (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1077">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D4s</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1059">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1065">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1071">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1073">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D5300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1054">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D60 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1069">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D600</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D610</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1030">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D70 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1058">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D700 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1064">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D7000 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1038">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D70s (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1072">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D7100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1079">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D750</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1042">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D80 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1066">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D800</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1070">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D800E</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1078">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D810</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1057">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon DSC D90 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1538">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon J1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1539">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon J2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1541">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon J3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1545">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon J4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1542">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon S1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1537">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon V1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1200">
- <match key="usb.product_id" int="1540">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nikon V2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20554">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">nisis Quickpix Qp3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="548">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">NogaNet TDC-15</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="705">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 2710</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="101">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 3109c Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="95">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 3110c Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1122">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 3250 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="494">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 3710</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="521">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5130 XpressMusic</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1214">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5200 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="738">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5230</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1210">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5300 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="108">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5310 XpressMusic</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="234">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5320 XpressMusic</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1150">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5500 Sport Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="553">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5530</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1204">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5700 XpressMusic Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="340">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="341">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic v2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="345">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 5800 XpressMusic v3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="46">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 6120c Classic Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="152">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 6210 Navigator</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="141">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 6220 Classic</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="60">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 6500c Classic Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="663">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 6600i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1491">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia 808 PureView</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1426">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia C5-00</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="961">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia C7</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="973">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia C7 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="463">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E52</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="815">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E6</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="377">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E63</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="229">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E66</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="820">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E7</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="821">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E7 (Ovi mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="228">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E71</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="417">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E71x</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="545">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia E72</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1788">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia Lumia (RM-975)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1638">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia Lumia 301</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1633">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia Lumia WP8</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1316">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1160">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Nokia N73</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1233">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N73 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1249">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N75 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="121">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N78 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="390">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N79</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="766">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N8</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="770">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N8 (Ovi mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1265">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N80 Internet Edition (Media Player)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="10">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N81 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="116">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N82 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="146">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N85 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1306">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N9</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1157">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N91 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1144">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N93 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1253">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N93i Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1263">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N95 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="110">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N95 Mobile Phone 8GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="978">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N950</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="57">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N96 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="501">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N97</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="619">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N97 mini</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="500">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia N97-1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="628">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia X6</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1057">
- <match key="usb.product_id" int="1768">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Nokia XL</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="5891">
- <match key="usb.product_id" int="1">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">NormSoft, Inc. Pocket Tunes</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="5891">
- <match key="usb.product_id" int="2">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">NormSoft, Inc. Pocket Tunes 4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2389">
- <match key="usb.product_id" int="28841">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">nVidia CM9-Adam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2389">
- <match key="usb.product_id" int="46080">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">nVidia Shield (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2389">
- <match key="usb.product_id" int="52999">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">nVidia Shield (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2389">
- <match key="usb.product_id" int="52994">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">nVidia Tegra Note</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2389">
- <match key="usb.product_id" int="28928">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">nVidia Various tablets (ID1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2389">
- <match key="usb.product_id" int="28930">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">nVidia Various tablets (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7763">
- <match key="usb.product_id" int="6">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">O2 Sistemas ZoltarTV</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus C-2100UZ</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus C-3000Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus C-3030Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus C-310Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus C-350Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus C-5500Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus C-55Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus D-540Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus D-560Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="272">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus E series (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="303">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus E-M5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="303">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus E-PL5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="278">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus FE4000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus IR-300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="275">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus mju 500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="303">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus SP-720UZ</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus X-100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="276">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus X-250</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="278">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus X920</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1972">
- <match key="usb.product_id" int="278">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Olympus X925</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8921">
- <match key="usb.product_id" int="10085">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Oppo Find 7 (ID 1)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8921">
- <match key="usb.product_id" int="10100">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Oppo Find 7 (ID 2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8921">
- <match key="usb.product_id" int="10099">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Oppo X9006</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Oregon Scientific DShot II</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Oregon Scientific DShot III</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FS62</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ38</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ45</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-FZ50</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-GF1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LS2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LS3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-LX7</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ15</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ18</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="9076">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Panasonic DMC-TZ8</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="8517">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Panasonic P905i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1242">
- <match key="usb.product_id" int="8536">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Panasonic P906i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4204">
- <match key="usb.product_id" int="61443">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Pantech Crux</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7501">
- <match key="usb.product_id" int="20534">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Pegatron Chagall</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7501">
- <match key="usb.product_id" int="20533">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Pegatron Chagall (ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7501">
- <match key="usb.product_id" int="20554">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Pegatron Hudl 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Pencam TEVION MD 9456</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="9723">
- <match key="usb.product_id" int="357">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Pentax K3 (PTP Mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2583">
- <match key="usb.product_id" int="13">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Pentax Optio 43WR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2583">
- <match key="usb.product_id" int="247">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Pentax Optio W90</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2726">
- <match key="usb.product_id" int="38658">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Perception Digital, Ltd Gigaware GX400</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8316">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear Aria</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8377">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear Ariaz</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8504">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear Ariaz/97</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="357">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear Audio</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8311">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear Muse</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8334">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA1VBE08KX/78</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8196">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA3345</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="2135">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA5145</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="2126">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA6014/SA6015/SA6024/SA6025/SA6044/SA6045</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8194">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA6125/SA6145/SA6185</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="335">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear SA9200</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8309">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear ViBE SA1VBE04</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8315">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear ViBE SA1VBE04/08</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8375">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear VIBE SA2VBE[08|16]K/02</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8421">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips GoGear Vibe/02</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="333">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips HDD085/00 or HDD082/17</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="332">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips HDD14XX,HDD1620 or HDD1630/17</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="491">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips HDD6320</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="331">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips HDD6320/00 or HDD6330/17</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="6411">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips i908</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Philips P44417B keychain camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8592">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips PI3900B2/58 </merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="32257">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips PSA235</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="385">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips PSA610</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="356">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips SA1115/55</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="8226">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips SA5285</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1137">
- <match key="usb.product_id" int="370">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Philips Shoqbox</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Phoebe Smartcam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2276">
- <match key="usb.product_id" int="322">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Pioneer DVR-LX60D</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2276">
- <match key="usb.product_id" int="328">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Pioneer XMP3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Pixart Gemini Keychain Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Pixie Princess Jelly-Soft</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">PockCam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1924">
- <match key="usb.product_id" int="10376">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Polaroid DC700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1350">
- <match key="usb.product_id" int="8245">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Polaroid Freescape/MPU-433158</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1350">
- <match key="usb.product_id" int="3503">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Polaroid PDC 2300Z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Praktica Slimpix</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Precision Mini Digital Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Precision Mini, Model HA513A</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10724">
- <match key="usb.product_id" int="4611">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Prestigio 5504 DUO </merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10724">
- <match key="usb.product_id" int="4355">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Prestigio 5505 DUO </merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1924">
- <match key="usb.product_id" int="21248">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Pretec dc530</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="65535">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">PureDigital Ritz Disposable</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="34816">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Gigabyte) GSmart G1342</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="61443">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Highscreen) Omega Prime S</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="553">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Nokia) 5530 Xpressmusic</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="12694">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Nokia/Verizon) 6205 Balboa/Verizon Music Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="26468">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for OnePlus) One (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="26469">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for OnePlus) One (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="36921">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for PhiComm) C230w (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1478">
- <match key="usb.product_id" int="36901">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Qualcomm (for Smartfren) Andromax U</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">QuickPix QP1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3530">
- <match key="usb.product_id" int="4">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Radioshack Flatfoto</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1924">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">RCA CDS1005</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="4704">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Redmi 1S (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="4712">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Redmi HM 1S (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Request Ultra Slim</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8715">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Capilo RX</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8707">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio 300G</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8708">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio G3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8712">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio G4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8716">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="805">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8724">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX 8</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="813">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio GX 8 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8717">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8722">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1v</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="811">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R1v (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8723">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8726">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="815">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R3 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8727">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8730">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="272">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio R5 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8706">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RR30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="829">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RR750 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8717">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Ricoh Caplio RZ1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4042">
- <match key="usb.product_id" int="32775">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">RIM BlackBerry Storm/9650</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8719">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Rollei dr5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8719">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Rollei dr5 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37181">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar 23070 Crayola Digital Cam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37181">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar 28290 and 28292 Digital C</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37181">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar 92045 Spiderman</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar clipshot no. 1169x</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3141">
- <match key="usb.product_id" int="32771">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Digital Keychain 11199</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3141">
- <match key="usb.product_id" int="32771">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Digital no, 6637x</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3141">
- <match key="usb.product_id" int="32771">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Digital no, 67480</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Digital no. 56379 Spyshot</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Digital no. 77379</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Dora the Explorer no. 88067</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Hello Kitty no. 94009</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Kidz Cam 86379</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Kidz-Cam no. 88379</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Micro Digital 2428x</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Nickelodeon iCarly no. 88061</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar no. 1638x CyberPix</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar no. 75379</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar no. 81890</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar no. 91379</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar no. 98379</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Star Wars kit no. 92022</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sakar Sticker Wizard no. 59379</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26726">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Samsung EK-GC100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26407">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung F250 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26720">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26716">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26743">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung Galaxy models Kies mode</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26450">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung GT-B2700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26799">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung GT-B2710/Xcover 271</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="57868">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung GT-S5230</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26649">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung GT-S8500</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="1188">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung I550W Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20255">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung Jet S8000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26420">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung Juke (SCH-U470)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26178">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung M7600 Beat/GT-S8300T/SGH-F490/S8300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="5132">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Samsung NX1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="4996">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Samsung NX1000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26698">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Samsung S5620</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26467">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung SAMSUNG Trance</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26377">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung U600 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26793">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung Vibrant SGH-T959/Captivate/Media player mode</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="26370">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung X830 Mobile Phone</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20526">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YH-820</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20509">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YH-920 (501d)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20514">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YH-920 (5022)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20527">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YH-925(-GS)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20516">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YH-925GS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="23055">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YH-999 Portable Media Center/SGH-A707/SGH-L760V/SGH-U900/Verizon Intensity/Fascinate</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20531">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YH-J70J</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="1033">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-900</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20567">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-F2J</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20609">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-K3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20570">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-K5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20760">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-M1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20611">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-P2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20762">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-P3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20757">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20765">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20784">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-Q3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20773">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-R0</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20751">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-R1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20782">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-R2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20625">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-S3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20619">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-S5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20618">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-T10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20551">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-T7J</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20607">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-T9</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20564">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-U2J (YP-U2JXB/XAA)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20605">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-U3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20627">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-U4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20769">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-U5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20791">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-Z3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1256">
- <match key="usb.product_id" int="20540">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Samsung YP-Z5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29712">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c150</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29776">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c240/c250</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29778">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa c250 v2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29746">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29748">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip v2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29924">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip Zip</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29904">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Clip+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29824">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Connect</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29728">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa e200/e250/e260/e270/e280</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29730">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa e260/e280 v2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29792">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Express</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29888">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29890">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze v2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29920">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa Fuze+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29697">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m200-tcc (MTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29696">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m230/m240</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29744">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa m240/m250</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1921">
- <match key="usb.product_id" int="29872">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SanDisk Sansa View</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1140">
- <match key="usb.product_id" int="560">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sanyo VPC-C5 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1943">
- <match key="usb.product_id" int="35073">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35a</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1943">
- <match key="usb.product_id" int="35081">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35b</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1943">
- <match key="usb.product_id" int="35089">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35c</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2125">
- <match key="usb.product_id" int="4097">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ScanHex SX-35d</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Scott APX 30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="851">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sea &amp; Sea 2G (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="8718">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Sea &amp; Sea 5000G</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1482">
- <match key="usb.product_id" int="807">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sea &amp; Sea 5000G (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Shark 2-in-1 Mini</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Shark SDC-513</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Shark SDC-519</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1245">
- <match key="usb.product_id" int="38497">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SBM203SH</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1245">
- <match key="usb.product_id" int="38602">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SH-06E</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1161">
- <match key="usb.product_id" int="49189">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SHARP Corporation SH930W</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Shift3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1647">
- <match key="usb.product_id" int="40976">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SigmaTel Inc. MTPMSCN Audio Player</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3191">
- <match key="usb.product_id" int="4113">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SiPix Blink 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3191">
- <match key="usb.product_id" int="4117">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SiPix CAMeleon</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3191">
- <match key="usb.product_id" int="4098">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SiPix SC2100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3191">
- <match key="usb.product_id" int="4112">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SiPix Snap</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3428">
- <match key="usb.product_id" int="4097">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SiPix Stylecam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3191">
- <match key="usb.product_id" int="4097">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SiPix Web2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6390">
- <match key="usb.product_id" int="258">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sirius Stiletto</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6390">
- <match key="usb.product_id" int="272">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sirius Stiletto 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="13056">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Skanhex SX-330z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7132">
- <match key="usb.product_id" int="64191">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Slacker Inc. Slacker Portable Media Player</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3530">
- <match key="usb.product_id" int="2">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SMaL Ultra-Pocket</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3783">
- <match key="usb.product_id" int="4104">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">So. Show 301</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1870">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A3000</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1990">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5000 (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2391">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5100 (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2279">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A5100 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2382">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A6000 (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2231">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A6000 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2387">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A77 M2 (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2381">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7r (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2388">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7S (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2274">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony Alpha-A7S (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="4756">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony DCR-SR75</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="704">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-A100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="743">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-A900 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-F707V (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-F717 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-F828 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-H1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-H2 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-H5 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1347">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX100V (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1567">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX200V (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1774">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1169">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX5V (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="2221">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-HX60V (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-N2 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P10 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P120 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P30 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P31 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P32 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P41 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P43 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P5 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P50 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P51 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P52 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P71 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P72 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P73 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P92 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-P93 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-R1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1323">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1322">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX100 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1867">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-RX100M2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-S40 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-S60 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="662">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-S730 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-S75 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="662">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-S780 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-S85 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-T1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-T10 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-T3 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-U10 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-U20 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-V1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-W1 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-W12 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="835">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-W130 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="760">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-W200 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-W35 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1340">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-W510 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony DSC-W55 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20853">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro HD MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="41333">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro HD MTP+UMS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="45429">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY IS12S Xperia Acro MTP+UMS+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="370">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20850">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16754">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT22i Xperia P MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="390">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20870">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16774">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT25i Xperia V MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="361">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20841">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16745">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT26i Xperia S MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="373">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD IS12S MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16757">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD IS12S MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="374">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD SO-03D MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16758">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT26w Xperia Acro HD SO-03D MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="375">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20855">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16759">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="41335">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+UMS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="45431">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT28at Xperia Ion MTP+UMS+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="376">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20856">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16760">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT29i Xperia GX MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="386">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20866">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16770">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY LT30p Xperia T MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="371">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20851">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16755">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="41331">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+UMS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="45427">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY MT27i Xperia Sola MTP+UMS+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony MVC-CD300 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony MVC-CD500 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1839">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony NEX-3N (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1656">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony NEX-6</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="860">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A726/NWZ-A728/NWZ-A768</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="805">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A815/NWZ-A818</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="859">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A826/NWZ-A828/NWZ-A829</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1028">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-A845</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="878">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B135</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="984">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B142F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1214">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B153F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1434">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B163F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1673">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-B173F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1020">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E344/E345</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1227">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E354</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="901">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E436F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1021">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E445</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1446">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-E464</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="806">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S516</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1022">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S545</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="807">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S615F/NWZ-S616F/NWZ-S618F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="910">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S638F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="858">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S716F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="908">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S739F</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1228">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S754</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1448">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-S765</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="904">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-W202</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1211">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-W252B</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="919">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-X1050B/NWZ-X1060B</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="920">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony NWZ-X1051/NWZ-X1061</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="78">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony PTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1191">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A35 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="801">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A350 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1187">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A55 (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1641">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A57</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1846">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A58</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1847">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A58 (Control)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1396">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A65V (PTP mode)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1653">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">Sony SLT-A99v</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20854">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro HD MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="41334">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro HD MTP+UMS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="45430">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY SO-03D Xperia Acro MTP+UMS+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="385">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20865">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16769">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY SO-05D Xperia SX MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1233">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet P1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1459">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet S</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1356">
- <match key="usb.product_id" int="1460">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Sony Sony Tablet S1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="369">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST15i Xperia U MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="368">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20848">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16752">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST21i Xperia Tipo MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="384">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20864">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16768">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST23i Xperia Miro MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20849">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST25i Xperia U MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16753">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST25i Xperia U MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="382">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20862">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16766">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="41342">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+UMS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="45438">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY ST27i/ST27a Xperia go MTP+UMS+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="365">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY WT19i Live Walkman MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="408">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia A MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20888">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia A MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="419">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20899">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16803">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia C MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="396">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20876">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16780">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia E MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="444">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20924">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="444">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia E3 MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="459">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20939">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16843">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY XPeria E4g MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="392">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20872">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16776">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia J MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="402">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20882">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16786">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia L MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="411">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20891">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16795">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="427">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20907">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16811">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 Dual MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="426">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20906">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16810">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia M2 MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="405">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20885">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16789">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia SP MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="397">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="404">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20877">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+ADB 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20884">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+ADB 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16781">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+CDROM 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16788">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Tablet Z MTP+CDROM 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="403">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20883">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16787">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="438">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="406">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="412">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20918">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20886">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20892">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+ADB (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16796">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z Ultra MTP+CDROM (ID3)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="423">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact D5503</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16807">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact D5503 MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20903">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 Compact MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="414">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20894">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16798">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z1 MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="431">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20911">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16815">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z2 MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="443">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20923">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16827">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 Compact MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="442">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20922">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16826">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia Z3 MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="393">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20873">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16777">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZL MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="407">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZR MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20887">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SONY Xperia ZR MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="326">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson c1605 Xperia Dual E MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20806">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson c1605 Xperia Dual E MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="217">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson C702</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="212">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson C902</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="239">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson C905</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="343">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20823">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16727">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson IS12S Xperia Acro MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="334">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson j108i (Cedar)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="53572">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson j10i (Elm)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="324">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson j10i2 (Elm)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="57344">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson K550i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="117">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson K850i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20815">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson LT15i Xperia Arc MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="335">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson LT15i Xperia arc S MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="346">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson MK16i Xperia MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20826">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson MK16i Xperia MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="342">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson MT11i Xperia Neo MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20822">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson MT11i Xperia Neo MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="349">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson R800/R88i Xperia Play MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20829">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson R800/R88i Xperia Play MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="358">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson SK17i Xperia Mini Pro MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20838">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson SK17i Xperia Mini Pro MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="359">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST15i Xperia Mini MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20839">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST15i Xperia Mini MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="360">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20840">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="16744">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST17i Xperia Active MTP+CDROM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="353">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST18a Xperia Ray MTP</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20833">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson ST18i Xperia Ray MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="251">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson T700</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="307">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson U5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="314">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson U8i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="4296">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W302</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="243">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W595</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="261">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W705/W715</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="198">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W760i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="179">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W890i</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="245">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W902</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="118">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W910</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="218">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W980</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="274">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson W995</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4046">
- <match key="usb.product_id" int="20845">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">SonyEricsson WT19i Live Walkman MTP+ADB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Soundstar TDC-35</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SpyPen Axys</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SpyPen Cleo</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SpyPen Luxo</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SpyPen Memo</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SpyPen Xion</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SQ chip camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">StarCam CP086</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">STM USB Dual-mode camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Stop &amp; Shop 87096</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">STV0680</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37181">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Suprema Digital Keychain Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">SY-2107C</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1105">
- <match key="usb.product_id" int="53512">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">TCL Alcatel one touch 986+</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="5073">
- <match key="usb.product_id" int="28695">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Technika MP-709</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2726">
- <match key="usb.product_id" int="12305">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Tevion MD 81488</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1691">
- <match key="usb.product_id" int="12341">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Thomson / RCA Lyra HC308A</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1691">
- <match key="usb.product_id" int="1911">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Thomson / RCA Opal / Lyra MC4002</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1691">
- <match key="usb.product_id" int="1908">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Thomson EM28 Series</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1691">
- <match key="usb.product_id" int="1916">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Thomson Lyra MC5104B (M51 Series)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1691">
- <match key="usb.product_id" int="12314">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Thomson RCA H106</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1691">
- <match key="usb.product_id" int="12328">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Thomson scenium E308</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2329">
- <match key="usb.product_id" int="256">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Tiger Fast Flicks</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Timlex CP075</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="5008">
- <match key="usb.product_id" int="21589">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">TomTom Rider 40</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4571">
- <match key="usb.product_id" int="4096">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Topfield TF5000PVR</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="2403">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Excite AT300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="12">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="9">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEGF-40</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="29">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MET401</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="26">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEU201</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="24">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat MEU202</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="17">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat P10</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="15">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat P20</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="16">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat S</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="25">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat T</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="22">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat U</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="20">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Gigabeat V30</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4402">
- <match key="usb.product_id" int="17207">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M11</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4402">
- <match key="usb.product_id" int="17202">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M60</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4402">
- <match key="usb.product_id" int="17205">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M61</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="4402">
- <match key="usb.product_id" int="17204">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Toshiba PDR-M65</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2352">
- <match key="usb.product_id" int="28928">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Toshiba Thrive AT100/AT105</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="13056">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Traveler SX330z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3478">
- <match key="usb.product_id" int="16640">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Traveler SX410z</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7784">
- <match key="usb.product_id" int="2">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">TrekStor i.Beat Organix 2.0</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1026">
- <match key="usb.product_id" int="1553">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">TrekStor i.Beat Sweez FM</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1647">
- <match key="usb.product_id" int="33834">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">TrekStor Vibez 8/12GB</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2125">
- <match key="usb.product_id" int="3">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Trust Familycam 300</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1750">
- <match key="usb.product_id" int="46">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Trust PowerC@m 350FS</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1750">
- <match key="usb.product_id" int="45">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Trust PowerC@m 350FT</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2250">
- <match key="usb.product_id" int="272">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Trust Spyc@m 100</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1276">
- <match key="usb.product_id" int="20554">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Trust Spyc@m 500F FLASH</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1943">
- <match key="usb.product_id" int="32794">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Typhoon StyloCam</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1363">
- <match key="usb.product_id" int="514">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">UMAX AstraPen</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3428">
- <match key="usb.product_id" int="4097">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">UMAX AstraPix 320s</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.interface.class" int="6">
- <match key="usb.interface.subclass" int="1">
- <match key="usb.interface.protocol" int="1">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">ptp</merge>
- <merge key="camera.libgphoto2.name" type="string">USB PTP Class Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- <match key="usb.vendor_id" int="8711">
- <match key="usb.product_id" int="1">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Various Viewpia DR/bq Kepler</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8711">
- <match key="usb.product_id" int="17">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Various Viewpia DR/bq Kepler Debugging</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1032">
- <match key="usb.product_id" int="14489">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Verizon Ellipsis 7</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ViviCam3350</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="37152">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ViviCam5B</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2425">
- <match key="usb.product_id" int="551">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Vivitar Freelance</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="270">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Vivitar Mini Digital Camera</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="2362">
- <match key="usb.product_id" int="271">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam 55</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3141">
- <match key="usb.product_id" int="32778">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam3350B</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Vivitar Vivicam35</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1161">
- <match key="usb.product_id" int="57617">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Vizio (for Lenovo) LIFETAB S9714</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1161">
- <match key="usb.product_id" int="49190">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Vizio Unknown 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1161">
- <match key="usb.product_id" int="57408">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Vizio VTAB1008</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1329">
- <match key="usb.product_id" int="8193">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Wacom Cintiq Companion Hybrid (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="3141">
- <match key="usb.product_id" int="32769">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">Wild Planet Digital Spy Camera 70137</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7763">
- <match key="usb.product_id" int="7">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Wyplay Wyplayer</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="4968">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi HM NOTE 1LTEW MIUI (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="4680">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi Hongmi (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="4672">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi Hongmi (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="61443">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="36921">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2 (MTP+ADB)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="65352">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-2s (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="872">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-3 (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="864">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi Mi-3w (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10007">
- <match key="usb.product_id" int="1632">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Xiaomi MiPad (MTP)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="8711">
- <match key="usb.product_id" int="6">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">YiFang BQ Tesla</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10518">
- <match key="usb.product_id" int="37197">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Yota Phone 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10518">
- <match key="usb.product_id" int="61443">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">Yota Phone 2 (ID2)</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="7871">
- <match key="usb.product_id" int="32553">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">YU Yureka Vodafone smart turbo 4</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="1054">
- <match key="usb.product_id" int="24576">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZiiLABS Zii EGG</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="10096">
- <match key="usb.product_id" int="36956">
- <merge key="info.category" type="string">camera</merge>
- <addset key="info.capabilities" type="strlist">camera</addset>
- <merge key="camera.access_method" type="string">proprietary</merge>
- <merge key="camera.libgphoto2.name" type="string">ZINA Mini Digital Keychain Camer</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6610">
- <match key="usb.product_id" int="835">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZTE Grand X In</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6610">
- <match key="usb.product_id" int="65486">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZTE V5</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6610">
- <match key="usb.product_id" int="580">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZTE V55 ID 1</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6610">
- <match key="usb.product_id" int="581">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZTE V55 ID 2</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6610">
- <match key="usb.product_id" int="774">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZTE V790/Blade 3</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6610">
- <match key="usb.product_id" int="775">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZTE V880E</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- <match key="usb.vendor_id" int="6610">
- <match key="usb.product_id" int="899">
- <merge key="info.category" type="string">portable_audio_player</merge>
- <addset key="info.capabilities" type="strlist">portable_audio_player</addset>
- <merge key="portable_audio_player.access_method" type="string">user</merge>
- <merge key="portable_audio_player.type" type="string">mtp</merge>
- <append key="portable_audio_player.output_formats" type="strlist">audio/mpeg</append>
- <merge key="camera.libgphoto2.name" type="string">ZTE V985</merge>
- <merge key="camera.libgphoto2.support" type="bool">true</merge>
- </match>
- </match>
- </match>
- </device>
-</deviceinfo>
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb
deleted file mode 100644
index 7a691c611d..0000000000
--- a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.16.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "libgphoto2 allows you to access digital cameras"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0448d3676bc0de00406af227d341a4d1"
-
-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://10-camera-libgphoto2-device.fdi \
- file://10-camera-libgphoto2.fdi \
- file://40-libgphoto2.rules \
- file://0001-configure.ac-remove-AM_PO_SUBDIRS.patch \
-"
-
-SRC_URI[libgphoto2.md5sum] = "084d220d078d28c0c7a3ba13f4476128"
-SRC_URI[libgphoto2.sha256sum] = "e757416d1623e01a9d0d294b2e790162e434c0964f50d3b7ff1a3424b62a2906"
-
-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_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}${datadir}/hal/fdi/information/20thirdparty
- install -m 0644 ${WORKDIR}/*.fdi ${D}${datadir}/hal/fdi/information/20thirdparty/
-
- install -d ${D}${sysconfdir}/udev/rules.d/
- install -m 0755 ${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/* ${datadir}/hal"
-FILES_${PN}-dbg += "${libdir}/*/*/.debug"
-FILES_${PN}-dev += "${libdir}/*/*/*.la"
-FILES_${PN}-doc += "${datadir}/libgphoto2_port/0.12.0/vcamera/README.txt"
diff --git a/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.bb b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.bb
new file mode 100644
index 0000000000..b1fb7579ee
--- /dev/null
+++ b/meta-oe/recipes-graphics/gphoto2/libgphoto2_2.5.30.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] = "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
+ 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/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
new file mode 100644
index 0000000000..99b53e2e12
--- /dev/null
+++ b/meta-oe/recipes-graphics/graphviz/graphviz/0001-Set-use_tcl-to-be-empty-string-if-tcl-is-disabled.patch
@@ -0,0 +1,33 @@
+From 564901ab78da2b2b1bed92351dc3c102dc0a8154 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Aug 2019 17:51:39 -0700
+Subject: [PATCH] Set use_tcl to be empty string if tcl is disabled
+
+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
+@@ -1225,7 +1225,7 @@ AC_ARG_ENABLE(tcl,
+ [], [enable_tcl=yes])
+
+ if test "x$enable_tcl" != "xyes"; then
+- use_tcl="No (disabled)"
++ use_tcl=""
+ fi
+
+ if test "x$use_tcl" = "x"; then
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -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 tests
++SUBDIRS = $(subdirs) lib plugin cmd doc contrib share graphs tests
+
+ .PHONY: doxygen
+ doxygen:
diff --git a/meta-oe/recipes-graphics/graphviz/graphviz/graphviz-setup.sh b/meta-oe/recipes-graphics/graphviz/graphviz/graphviz-setup.sh
new file mode 100644
index 0000000000..df0be9e3ed
--- /dev/null
+++ b/meta-oe/recipes-graphics/graphviz/graphviz/graphviz-setup.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+echo "Setting up graphviz..."
+
+# Create /usr/lib/graphviz/config6
+$OECORE_NATIVE_SYSROOT/usr/bin/dot -c
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..ccc114007c
--- /dev/null
+++ b/meta-oe/recipes-graphics/graphviz/graphviz_8.1.0.bb
@@ -0,0 +1,120 @@
+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 \
+ "
+# 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 += "${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/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/0001-main.c-Define-prototype-for-setup_appdata.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-main.c-Define-prototype-for-setup_appdata.patch
new file mode 100644
index 0000000000..08e899b9a6
--- /dev/null
+++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/0001-main.c-Define-prototype-for-setup_appdata.patch
@@ -0,0 +1,27 @@
+From 6b5f695cb206cd8b3cbcbcd7713e52772e89306b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 20:47:32 -0700
+Subject: [PATCH] main.c: Define prototype for setup_appdata
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/main.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/main.c b/src/main.c
+index c226799..b4ce6d1 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -18,6 +18,8 @@
+ #include "callbacks.h"
+ #include "appdata.h"
+
++void setup_appdata(AppData * appdata_in);
++
+ int
+ main (int argc, char **argv)
+ {
+--
+2.37.3
+
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/gtkperf/gtkperf/gettext.patch b/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch
new file mode 100644
index 0000000000..4a727d3c06
--- /dev/null
+++ b/meta-oe/recipes-graphics/gtkperf/gtkperf/gettext.patch
@@ -0,0 +1,36 @@
+Fix build with gettext 0.20.x
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -3,7 +3,7 @@
+ ## If you don't want it to overwrite it,
+ ## Please disable it in the Anjuta project configuration
+
+-SUBDIRS = intl po src pixmaps
++SUBDIRS = po src pixmaps
+
+ gtkperfdocdir = ${prefix}/doc/gtkperf
+ gtkperfdoc_DATA = \
+--- a/configure.in
++++ b/configure.in
+@@ -31,8 +31,7 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GE
+
+ dnl Languages which your application supports
+ ALL_LINGUAS=""
+-AM_GNU_GETTEXT
+-AM_GNU_GETTEXT_VERSION(0.10.40)
++AM_GNU_GETTEXT([external])
+
+ dnl Set PACKAGE_LOCALE_DIR in config.h.
+ if test "x${prefix}" = "xNONE"; then
+@@ -100,7 +99,6 @@ AC_DEFINE_UNQUOTED(PACKAGE_SOURCE_DIR, "
+
+ AC_OUTPUT([
+ Makefile
+-intl/Makefile
+ po/Makefile.in
+ src/Makefile
+ pixmaps/Makefile
diff --git a/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb b/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
index 4094513b29..a70d31fed0 100644
--- a/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
+++ b/meta-oe/recipes-graphics/gtkperf/gtkperf_0.40.bb
@@ -1,12 +1,14 @@
SUMMARY = "GTK Performance tool"
SECTION = "libs"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = "http://prdownloads.sourceforge.net/${BPN}/${BPN}_${PV}.tar.gz \
file://Makevars \
file://0001-Include-stdlib.h-for-exit-API.patch \
file://0002-timing.c-Fix-format-security-errors.patch \
+ file://gettext.patch \
+ file://0001-main.c-Define-prototype-for-setup_appdata.patch \
"
SRC_URI[md5sum] = "4331dde4bb83865e15482885fcb0cc53"
@@ -16,17 +18,17 @@ DEPENDS = "gtk+"
S = "${WORKDIR}/${BPN}"
-inherit distro_features_check autotools binconfig pkgconfig gettext
+inherit features_check autotools binconfig pkgconfig gettext
REQUIRED_DISTRO_FEATURES = "x11"
-do_configure_prepend () {
+do_configure:prepend () {
rm -f ${S}/m4/init.m4
cp -f ${WORKDIR}/Makevars ${S}/po/
}
-do_install_append () {
+do_install:append () {
rm -rf ${D}/${exec_prefix}/doc
}
-FILES_${PN} += "${exec_prefix}/share/duck.png"
+FILES:${PN} += "${exec_prefix}/share/duck.png"
diff --git a/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.bb
new file mode 100644
index 0000000000..eee9de7497
--- /dev/null
+++ b/meta-oe/recipes-graphics/gtkwave/gtkwave_3.3.111.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] = "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/imlib2/imlib2_git.bb b/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
new file mode 100644
index 0000000000..9b8849b589
--- /dev/null
+++ b/meta-oe/recipes-graphics/imlib2/imlib2_git.bb
@@ -0,0 +1,42 @@
+SUMMARY = "A graphic library for file loading, saving, rendering, and manipulation"
+
+HOMEPAGE = "https://sourceforge.net/projects/enlightenment/"
+SECTION = "libs"
+LICENSE = "Imlib2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=344895f253c32f38e182dcaf30fe8a35"
+
+DEPENDS = "freetype "
+PROVIDES = "virtual/imlib2"
+PV = "1.7.1"
+SRCREV = "01424487e360383a039dc123bc2a345fe7ea2535"
+
+inherit autotools pkgconfig lib_package
+
+AUTO_LIBNAME_PKGS = ""
+
+SRC_URI = "git://git.enlightenment.org/old/legacy-${BPN}.git;protocol=https;branch=master"
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "jpeg png zlib ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+
+X11_DEPS = "virtual/libx11 libxext libice"
+PACKAGECONFIG[x11] = "--with-x,--without-x,${X11_DEPS}"
+
+PACKAGECONFIG[gif] = "--with-gif,--without-gif,giflib"
+PACKAGECONFIG[jpeg] = "--with-jpeg,--without-jpeg,jpeg"
+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"
+
+PACKAGES =+ "${BPN}-loaders ${BPN}-filters ${BPN}-data"
+FILES:${PN}-data = "${datadir}"
+FILES:imlib2-loaders = "${libdir}/imlib2/loaders/*.so"
+FILES:imlib2-filters = "${libdir}/imlib2/filters/*.so"
+
+inherit multilib_script
+MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/imlib2-config"
diff --git a/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb b/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb
deleted file mode 100644
index cc6a694ce1..0000000000
--- a/meta-oe/recipes-graphics/jasper/jasper_1.900.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Jpeg 2000 implementation"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=baa697d7510288a9cdcce9bd7edaf9bc"
-
-PR = "r1"
-
-SRC_URI = "http://www.ece.uvic.ca/~mdadams/jasper/software/jasper-${PV}.zip"
-
-inherit autotools lib_package
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[jpeg] = "--enable-libjpeg,--disable-libjpeg,jpeg"
-PACKAGECONFIG[opengl] = "--enable-opengl,--disable-opengl,freeglut"
-
-EXTRA_OECONF = "--enable-shared"
-
-SRC_URI[md5sum] = "a342b2b4495b3e1394e161eb5d85d754"
-SRC_URI[sha256sum] = "6b905a9c2aca2e275544212666eefc4eb44d95d0a57e4305457b407fe63f9494"
diff --git a/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb b/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
new file mode 100644
index 0000000000..85da5bfb4d
--- /dev/null
+++ b/meta-oe/recipes-graphics/jasper/jasper_2.0.33.bb
@@ -0,0 +1,26 @@
+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_STATUS[CVE-2015-8751] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+
+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/leptonica/leptonica_1.74.4.bb b/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb
deleted file mode 100644
index 91fa00cc96..0000000000
--- a/meta-oe/recipes-graphics/leptonica/leptonica_1.74.4.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "A pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications"
-DEPENDS = "jpeg tiff libpng zlib"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=34aa579294e8284b7b848c8d5d361e8f"
-
-SRC_URI = "http://leptonica.com/source/leptonica-${PV}.tar.gz"
-SRC_URI[md5sum] = "4f32be9bd2e2c142ba018037ab5d746f"
-SRC_URI[sha256sum] = "29c35426a416bf454413c6fec24c24a0b633e26144a17e98351b6dffaa4a833b"
-
-EXTRA_OECONF += " \
- --without-libwebp \
-"
-
-PACKAGECONFIG ??= "giflib"
-PACKAGECONFIG[openjpeg] = "--with-libopenjpeg,--without-libopenjpeg,openjpeg"
-PACKAGECONFIG[giflib] = "--with-giflib,--without-giflib,giflib"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-graphics/leptonica/leptonica_1.82.0.bb b/meta-oe/recipes-graphics/leptonica/leptonica_1.82.0.bb
new file mode 100644
index 0000000000..c0a2b45a48
--- /dev/null
+++ b/meta-oe/recipes-graphics/leptonica/leptonica_1.82.0.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "A pedagogically-oriented open source site containing software that is broadly useful for image processing and image analysis applications"
+DEPENDS = "jpeg tiff libpng zlib"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://leptonica-license.txt;md5=809b282cea2df68975fbe0ffe02b560f"
+
+UPSTREAM_CHECK_URI = "https://github.com/DanBloomberg/leptonica/releases"
+
+SRC_URI = "http://www.leptonica.org/source/leptonica-${PV}.tar.gz"
+SRC_URI[sha256sum] = "155302ee914668c27b6fe3ca9ff2da63b245f6d62f3061c8f27563774b8ae2d6"
+
+EXTRA_OECONF += " \
+ --without-libwebp \
+"
+
+PACKAGECONFIG ??= "giflib"
+PACKAGECONFIG[openjpeg] = "--with-libopenjpeg,--without-libopenjpeg,openjpeg"
+PACKAGECONFIG[giflib] = "--with-giflib,--without-giflib,giflib"
+
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch b/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
new file mode 100644
index 0000000000..9ecbdf3b37
--- /dev/null
+++ b/meta-oe/recipes-graphics/libdecor/libdecor/0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch
@@ -0,0 +1,33 @@
+From fb6eb15b34b5b07a431bb4c3585341411a3e088f Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Tue, 28 Feb 2023 13:42:18 +0100
+Subject: [PATCH] libdecor-gtk.c: dont skip for conflicting_symbols
+
+This is a hack that should be removed, once the underlying bug in glibc was fixed and
+libdecor was updated to use dlmopen() instead of dlopen()
+
+https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/47
+https://gitlab.freedesktop.org/libdecor/libdecor/-/issues/44
+
+---
+Upstream-Status: Pending
+
+ src/plugins/gtk/libdecor-gtk.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/plugins/gtk/libdecor-gtk.c b/src/plugins/gtk/libdecor-gtk.c
+index 228161e..fd91afb 100644
+--- a/src/plugins/gtk/libdecor-gtk.c
++++ b/src/plugins/gtk/libdecor-gtk.c
+@@ -2606,7 +2606,7 @@ libdecor_plugin_description = {
+ .priorities = priorities,
+ .constructor = libdecor_plugin_new,
+ .conflicting_symbols = {
+- "png_free",
++ //"png_free",
+ NULL,
+ },
+ };
+--
+2.34.1
+
diff --git a/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb b/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
new file mode 100644
index 0000000000..ed0b05f41f
--- /dev/null
+++ b/meta-oe/recipes-graphics/libdecor/libdecor_0.1.99.bb
@@ -0,0 +1,32 @@
+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 \
+ file://0001-libdecor-gtk.c-dont-skip-for-conflicting-symbols.patch \
+"
+
+DEPENDS = " \
+ cairo \
+ pango \
+ wayland \
+ wayland-native \
+ wayland-protocols \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "a254d0c2ff0cbfcf0bbf14cc67cc403640880c01"
+
+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/0001-Make-extern-declarations-in-header-file.patch b/meta-oe/recipes-graphics/libforms/files/0001-Make-extern-declarations-in-header-file.patch
new file mode 100644
index 0000000000..16689f64b9
--- /dev/null
+++ b/meta-oe/recipes-graphics/libforms/files/0001-Make-extern-declarations-in-header-file.patch
@@ -0,0 +1,31 @@
+From a57c498f6c25aa297e49533c242525f2b9da7048 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 18:20:42 -0700
+Subject: [PATCH] Make extern declarations in header file
+
+curobj is a static object in other places as well.
+Fixes build with gcc10/-fno-common
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ fdesign/sp_spinner.c | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/fdesign/sp_spinner.c b/fdesign/sp_spinner.c
+index 04f2c19..6206daa 100644
+--- a/fdesign/sp_spinner.c
++++ b/fdesign/sp_spinner.c
+@@ -29,7 +29,7 @@
+ #include "spec/spinner_spec.h"
+
+ static FD_spinnerattrib * spn_attrib;
+-FL_OBJECT *curobj;
++static FL_OBJECT *curobj;
+
+
+ /***************************************
+
+--
+2.28.0
+
diff --git a/meta-oe/recipes-graphics/libforms/files/0001-Modify-include-dir.patch b/meta-oe/recipes-graphics/libforms/files/0001-Modify-include-dir.patch
new file mode 100644
index 0000000000..0b7c063804
--- /dev/null
+++ b/meta-oe/recipes-graphics/libforms/files/0001-Modify-include-dir.patch
@@ -0,0 +1,33 @@
+From d2d05928342f7f9f687ffea5e0b77f97f0ae5aad Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Wed, 7 Sep 2022 14:29:13 +0900
+Subject: [PATCH] Modify include dir
+
+error messagge:
+../../xforms-1.2.4/lib/fd/cmdbr.h:28:10: fatal error: ../include/forms.h: No such file or directory
+
+../include/forms.h specified in the header file cmdbr.h is not exist.
+
+Upstream-Status: Pending
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ lib/fd/cmdbr.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/fd/cmdbr.h b/lib/fd/cmdbr.h
+index 8495e05..2ddeced 100644
+--- a/lib/fd/cmdbr.h
++++ b/lib/fd/cmdbr.h
+@@ -25,7 +25,7 @@
+ #ifndef FD_cmd_h_
+ #define FD_cmd_h_
+
+-#include "../include/forms.h"
++#include "include/forms.h"
+
+ /* Callbacks, globals and object handlers */
+
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..4836b46b11
--- /dev/null
+++ b/meta-oe/recipes-graphics/libforms/files/add-absolute-path-for-include-dir.patch
@@ -0,0 +1,14 @@
+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
+@@ -11,7 +11,7 @@
+ fdesign.1:
+ cp -p $(srcdir)/fdesign.man fdesign.1
+
+-INCLUDES = -I./xpm $(X_CFLAGS)
++INCLUDES = -I./xpm -I$(srcdir)/xpm $(X_CFLAGS)
+
+ bin_PROGRAMS = fdesign
+
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
new file mode 100644
index 0000000000..9ab67b35ac
--- /dev/null
+++ b/meta-oe/recipes-graphics/libforms/files/fix-link-to-xforms-man.patch
@@ -0,0 +1,14 @@
+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
+@@ -25,7 +25,7 @@
+ man_MANS = xforms.5
+
+ xforms.5:
+- cp -p ./xforms.man xforms.5
++ cp -p $(srcdir)/xforms.man xforms.5
+
+ libforms_la_SOURCES = \
+ align.c \
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
new file mode 100644
index 0000000000..dc494281b2
--- /dev/null
+++ b/meta-oe/recipes-graphics/libforms/files/fix-path-fdesign_LDADD.patch
@@ -0,0 +1,14 @@
+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
+@@ -15,7 +15,7 @@
+
+ bin_PROGRAMS = fdesign
+
+-fdesign_LDADD = $(top_srcdir)/lib/libforms.la $(X_LIBS) $(X_PRE_LIBS) $(XPM_LIB) -lX11 $(LIBS) $(X_EXTRA_LIBS)
++fdesign_LDADD = $(top_builddir)/lib/libforms.la $(X_LIBS) $(X_PRE_LIBS) $(XPM_LIB) -lX11 $(LIBS) $(X_EXTRA_LIBS)
+
+ fdesign_SOURCES = \
+ fd_attribs.c \
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.6.0.bb b/meta-oe/recipes-graphics/libglvnd/libglvnd_1.6.0.bb
new file mode 100644
index 0000000000..b76373cf2a
--- /dev/null
+++ b/meta-oe/recipes-graphics/libglvnd/libglvnd_1.6.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 = "b05bbcdaeb9b700cf7877e6d66f8fc3ac952295b"
+
+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/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch
new file mode 100644
index 0000000000..ec8c0fd4fb
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/0001-build-Pass-tag-CC-explictly-when-using-libtool.patch
@@ -0,0 +1,73 @@
+From 44e4bb4cfb81024c8f5fd2e179e8a32c42756a2f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 23 Jul 2017 16:52:43 -0700
+Subject: [PATCH] build: Pass --tag=CC explictly when using libtool
+
+Do not depend solely on libtool heuristics which fail
+in OE case when building with external compiler and
+hardening flags
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.in | 4 ++--
+ build-scripts/makedep.sh | 8 ++++----
+ 2 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index ab51035..743ce30 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -72,10 +72,10 @@ depend:
+ include $(depend)
+
+ $(objects)/$(TARGET): $(OBJECTS)
+- $(LIBTOOL) --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
++ $(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS)
+
+ $(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS)
+- $(LIBTOOL) --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) $(SDLMAIN_LDFLAGS)
++ $(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $^ $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) $(SDLMAIN_LDFLAGS)
+
+
+ install: all install-bin install-hdrs install-lib install-data install-man
+diff --git a/build-scripts/makedep.sh b/build-scripts/makedep.sh
+index 3b3863b..dba28f2 100755
+--- a/build-scripts/makedep.sh
++++ b/build-scripts/makedep.sh
+@@ -51,19 +51,19 @@ do echo "Generating dependencies for $src"
+ case $ext in
+ c) cat >>${output}.new <<__EOF__
+
+- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
+
+ __EOF__
+ ;;
+ cc) cat >>${output}.new <<__EOF__
+
+- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
+
+ __EOF__
+ ;;
+ m) cat >>${output}.new <<__EOF__
+
+- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
+
+ __EOF__
+ ;;
+@@ -75,7 +75,7 @@ __EOF__
+ ;;
+ S) cat >>${output}.new <<__EOF__
+
+- \$(LIBTOOL) --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
++ \$(LIBTOOL) --tag=CC --mode=compile \$(CC) \$(CFLAGS) \$(EXTRA_CFLAGS) -c $src -o \$@
+
+ __EOF__
+ ;;
+--
+2.13.3
+
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
new file mode 100644
index 0000000000..d4166a16ab
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-13616.patch
@@ -0,0 +1,29 @@
+From 97fefd050976bbbfca9608499f6a7d9fb86e70db Mon Sep 17 00:00:00 2001
+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/src/video/SDL_bmp.c b/src/video/SDL_bmp.c
+index 8eadc5f..5b5e12c 100644
+--- a/src/video/SDL_bmp.c
++++ b/src/video/SDL_bmp.c
+@@ -143,6 +143,11 @@ SDL_Surface * SDL_LoadBMP_RW (SDL_RWops *src, int freesrc)
+ (void) biYPelsPerMeter;
+ (void) biClrImportant;
+
++ if (biWidth <= 0 || biHeight == 0) {
++ SDL_SetError("BMP file with bad dimensions (%dx%d)", biWidth, biHeight);
++ was_error = SDL_TRUE;
++ goto done;
++ }
+ if (biHeight < 0) {
+ topDown = SDL_TRUE;
+ biHeight = -biHeight;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch
new file mode 100644
index 0000000000..c41c2de0f3
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7572.patch
@@ -0,0 +1,114 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560182231 25200
+# Mon Jun 10 08:57:11 2019 -0700
+# Branch SDL-1.2
+# Node ID a8afedbcaea0e84921dc770195c4699bda3ccdc5
+# Parent faf9abbcfb5fe0d0ca23c4bf0394aa226ceccf02
+CVE-2019-7572: Fix a buffer overwrite in IMA_ADPCM_decode
+If data chunk was longer than expected based on a WAV format
+definition, IMA_ADPCM_decode() tried to write past the output
+buffer. This patch fixes it.
+
+Based on patch from
+<https://bugzilla.libsdl.org/show_bug.cgi?id=4496>.
+
+CVE-2019-7572
+https://bugzilla.libsdl.org/show_bug.cgi?id=4495
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560041863 25200
+# Sat Jun 08 17:57:43 2019 -0700
+# Branch SDL-1.2
+# Node ID e52413f5258600878f9a10d2f92605a729aa8976
+# Parent 4e73be7b47877ae11d2279bd916910d469d18f8e
+CVE-2019-7572: Fix a buffer overread in IMA_ADPCM_nibble
+If an IMA ADPCM block contained an initial index out of step table
+range (loaded in IMA_ADPCM_decode()), IMA_ADPCM_nibble() blindly used
+this bogus value and that lead to a buffer overread.
+
+This patch fixes it by moving clamping the index value at the
+beginning of IMA_ADPCM_nibble() function instead of the end after
+an update.
+
+CVE-2019-7572
+https://bugzilla.libsdl.org/show_bug.cgi?id=4495
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7572
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r faf9abbcfb5f -r a8afedbcaea0 src/audio/SDL_wave.c
+--- a/src/audio/SDL_wave.c Mon Jun 10 08:54:29 2019 -0700
++++ b/src/audio/SDL_wave.c Mon Jun 10 08:57:11 2019 -0700
+@@ -346,7 +346,7 @@
+ static int IMA_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ {
+ struct IMA_ADPCM_decodestate *state;
+- Uint8 *freeable, *encoded, *encoded_end, *decoded;
++ Uint8 *freeable, *encoded, *encoded_end, *decoded, *decoded_end;
+ Sint32 encoded_len, samplesleft;
+ unsigned int c, channels;
+
+@@ -373,6 +373,7 @@
+ return(-1);
+ }
+ decoded = *audio_buf;
++ decoded_end = decoded + *audio_len;
+
+ /* Get ready... Go! */
+ while ( encoded_len >= IMA_ADPCM_state.wavefmt.blockalign ) {
+@@ -392,6 +393,7 @@
+ }
+
+ /* Store the initial sample we start with */
++ if (decoded + 2 > decoded_end) goto invalid_size;
+ decoded[0] = (Uint8)(state[c].sample&0xFF);
+ decoded[1] = (Uint8)(state[c].sample>>8);
+ decoded += 2;
+@@ -402,6 +404,8 @@
+ while ( samplesleft > 0 ) {
+ for ( c=0; c<channels; ++c ) {
+ if (encoded + 4 > encoded_end) goto invalid_size;
++ if (decoded + 4 * 4 * channels > decoded_end)
++ goto invalid_size;
+ Fill_IMA_ADPCM_block(decoded, encoded,
+ c, channels, &state[c]);
+ encoded += 4;
+
+diff -r 4e73be7b4787 -r e52413f52586 src/audio/SDL_wave.c
+--- a/src/audio/SDL_wave.c Sat Jun 01 18:27:46 2019 +0100
++++ b/src/audio/SDL_wave.c Sat Jun 08 17:57:43 2019 -0700
+@@ -264,6 +264,14 @@
+ };
+ Sint32 delta, step;
+
++ /* Clamp index value. The inital value can be invalid. */
++ if ( state->index > 88 ) {
++ state->index = 88;
++ } else
++ if ( state->index < 0 ) {
++ state->index = 0;
++ }
++
+ /* Compute difference and new sample value */
+ step = step_table[state->index];
+ delta = step >> 3;
+@@ -275,12 +283,6 @@
+
+ /* Update index value */
+ state->index += index_table[nybble];
+- if ( state->index > 88 ) {
+- state->index = 88;
+- } else
+- if ( state->index < 0 ) {
+- state->index = 0;
+- }
+
+ /* Clamp output sample */
+ if ( state->sample > max_audioval ) {
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch
new file mode 100644
index 0000000000..9fd53da29b
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7574.patch
@@ -0,0 +1,68 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560181859 25200
+# Mon Jun 10 08:50:59 2019 -0700
+# Branch SDL-1.2
+# Node ID a6e3d2f5183e1cc300ad993e10e9ce077e13bd9c
+# Parent 388987dff7bf8f1e214e69c2e4f1aa31e06396b5
+CVE-2019-7574: Fix a buffer overread in IMA_ADPCM_decode
+If data chunk was shorter than expected based on a WAV format
+definition, IMA_ADPCM_decode() tried to read past the data chunk
+buffer. This patch fixes it.
+
+CVE-2019-7574
+https://bugzilla.libsdl.org/show_bug.cgi?id=4496
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7574
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r 388987dff7bf -r a6e3d2f5183e src/audio/SDL_wave.c
+--- a/src/audio/SDL_wave.c Sat Jun 08 18:02:09 2019 -0700
++++ b/src/audio/SDL_wave.c Mon Jun 10 08:50:59 2019 -0700
+@@ -331,7 +331,7 @@
+ static int IMA_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ {
+ struct IMA_ADPCM_decodestate *state;
+- Uint8 *freeable, *encoded, *decoded;
++ Uint8 *freeable, *encoded, *encoded_end, *decoded;
+ Sint32 encoded_len, samplesleft;
+ unsigned int c, channels;
+
+@@ -347,6 +347,7 @@
+ /* Allocate the proper sized output buffer */
+ encoded_len = *audio_len;
+ encoded = *audio_buf;
++ encoded_end = encoded + encoded_len;
+ freeable = *audio_buf;
+ *audio_len = (encoded_len/IMA_ADPCM_state.wavefmt.blockalign) *
+ IMA_ADPCM_state.wSamplesPerBlock*
+@@ -362,6 +363,7 @@
+ while ( encoded_len >= IMA_ADPCM_state.wavefmt.blockalign ) {
+ /* Grab the initial information for this block */
+ for ( c=0; c<channels; ++c ) {
++ if (encoded + 4 > encoded_end) goto invalid_size;
+ /* Fill the state information for this block */
+ state[c].sample = ((encoded[1]<<8)|encoded[0]);
+ encoded += 2;
+@@ -384,6 +386,7 @@
+ samplesleft = (IMA_ADPCM_state.wSamplesPerBlock-1)*channels;
+ while ( samplesleft > 0 ) {
+ for ( c=0; c<channels; ++c ) {
++ if (encoded + 4 > encoded_end) goto invalid_size;
+ Fill_IMA_ADPCM_block(decoded, encoded,
+ c, channels, &state[c]);
+ encoded += 4;
+@@ -395,6 +398,10 @@
+ }
+ SDL_free(freeable);
+ return(0);
++invalid_size:
++ SDL_SetError("Unexpected chunk length for an IMA ADPCM decoder");
++ SDL_free(freeable);
++ return(-1);
+ }
+
+ SDL_AudioSpec * SDL_LoadWAV_RW (SDL_RWops *src, int freesrc,
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch
new file mode 100644
index 0000000000..a3e8416d0e
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7575.patch
@@ -0,0 +1,81 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560183905 25200
+# Mon Jun 10 09:25:05 2019 -0700
+# Branch SDL-1.2
+# Node ID a936f9bd3e381d67d8ddee8b9243f85799ea4798
+# Parent fcbecae427951bac1684baaba2ade68221315140
+CVE-2019-7575: Fix a buffer overwrite in MS_ADPCM_decode
+If a WAV format defines shorter audio stream and decoded MS ADPCM data chunk
+is longer, decoding continued past the output audio buffer.
+
+This fix is based on a patch from
+<https://bugzilla.libsdl.org/show_bug.cgi?id=4492>.
+
+https://bugzilla.libsdl.org/show_bug.cgi?id=4493
+CVE-2019-7575
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7575
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r fcbecae42795 -r a936f9bd3e38 src/audio/SDL_wave.c
+--- a/src/audio/SDL_wave.c Mon Jun 10 09:06:23 2019 -0700
++++ b/src/audio/SDL_wave.c Mon Jun 10 09:25:05 2019 -0700
+@@ -122,7 +122,7 @@
+ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ {
+ struct MS_ADPCM_decodestate *state[2];
+- Uint8 *freeable, *encoded, *encoded_end, *decoded;
++ Uint8 *freeable, *encoded, *encoded_end, *decoded, *decoded_end;
+ Sint32 encoded_len, samplesleft;
+ Sint8 nybble, stereo;
+ Sint16 *coeff[2];
+@@ -142,6 +142,7 @@
+ return(-1);
+ }
+ decoded = *audio_buf;
++ decoded_end = decoded + *audio_len;
+
+ /* Get ready... Go! */
+ stereo = (MS_ADPCM_state.wavefmt.channels == 2);
+@@ -149,7 +150,7 @@
+ state[1] = &MS_ADPCM_state.state[stereo];
+ while ( encoded_len >= MS_ADPCM_state.wavefmt.blockalign ) {
+ /* Grab the initial information for this block */
+- if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto too_short;
++ if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto invalid_size;
+ state[0]->hPredictor = *encoded++;
+ if ( stereo ) {
+ state[1]->hPredictor = *encoded++;
+@@ -179,6 +180,7 @@
+ coeff[1] = MS_ADPCM_state.aCoeff[state[1]->hPredictor];
+
+ /* Store the two initial samples we start with */
++ if (decoded + 4 + (stereo ? 4 : 0) > decoded_end) goto invalid_size;
+ decoded[0] = state[0]->iSamp2&0xFF;
+ decoded[1] = state[0]->iSamp2>>8;
+ decoded += 2;
+@@ -200,7 +202,8 @@
+ samplesleft = (MS_ADPCM_state.wSamplesPerBlock-2)*
+ MS_ADPCM_state.wavefmt.channels;
+ while ( samplesleft > 0 ) {
+- if (encoded + 1 > encoded_end) goto too_short;
++ if (encoded + 1 > encoded_end) goto invalid_size;
++ if (decoded + 4 > decoded_end) goto invalid_size;
+
+ nybble = (*encoded)>>4;
+ new_sample = MS_ADPCM_nibble(state[0],nybble,coeff[0]);
+@@ -223,8 +226,8 @@
+ }
+ SDL_free(freeable);
+ return(0);
+-too_short:
+- SDL_SetError("Too short chunk for a MS ADPCM decoder");
++invalid_size:
++ SDL_SetError("Unexpected chunk length for a MS ADPCM decoder");
+ SDL_free(freeable);
+ return(-1);
+ invalid_predictor:
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch
new file mode 100644
index 0000000000..d9a505217b
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7576.patch
@@ -0,0 +1,80 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560182783 25200
+# Mon Jun 10 09:06:23 2019 -0700
+# Branch SDL-1.2
+# Node ID fcbecae427951bac1684baaba2ade68221315140
+# Parent a8afedbcaea0e84921dc770195c4699bda3ccdc5
+CVE-2019-7573, CVE-2019-7576: Fix buffer overreads in InitMS_ADPCM
+If MS ADPCM format chunk was too short, InitMS_ADPCM() parsing it
+could read past the end of chunk data. This patch fixes it.
+
+CVE-2019-7573
+https://bugzilla.libsdl.org/show_bug.cgi?id=4491
+CVE-2019-7576
+https://bugzilla.libsdl.org/show_bug.cgi?id=4490
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7573
+CVE: CVE-2019-7576
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r a8afedbcaea0 -r fcbecae42795 src/audio/SDL_wave.c
+--- a/src/audio/SDL_wave.c Mon Jun 10 08:57:11 2019 -0700
++++ b/src/audio/SDL_wave.c Mon Jun 10 09:06:23 2019 -0700
+@@ -44,12 +44,13 @@
+ struct MS_ADPCM_decodestate state[2];
+ } MS_ADPCM_state;
+
+-static int InitMS_ADPCM(WaveFMT *format)
++static int InitMS_ADPCM(WaveFMT *format, int length)
+ {
+- Uint8 *rogue_feel;
++ Uint8 *rogue_feel, *rogue_feel_end;
+ int i;
+
+ /* Set the rogue pointer to the MS_ADPCM specific data */
++ if (length < sizeof(*format)) goto too_short;
+ MS_ADPCM_state.wavefmt.encoding = SDL_SwapLE16(format->encoding);
+ MS_ADPCM_state.wavefmt.channels = SDL_SwapLE16(format->channels);
+ MS_ADPCM_state.wavefmt.frequency = SDL_SwapLE32(format->frequency);
+@@ -58,9 +59,11 @@
+ MS_ADPCM_state.wavefmt.bitspersample =
+ SDL_SwapLE16(format->bitspersample);
+ rogue_feel = (Uint8 *)format+sizeof(*format);
++ rogue_feel_end = (Uint8 *)format + length;
+ if ( sizeof(*format) == 16 ) {
+ rogue_feel += sizeof(Uint16);
+ }
++ if (rogue_feel + 4 > rogue_feel_end) goto too_short;
+ MS_ADPCM_state.wSamplesPerBlock = ((rogue_feel[1]<<8)|rogue_feel[0]);
+ rogue_feel += sizeof(Uint16);
+ MS_ADPCM_state.wNumCoef = ((rogue_feel[1]<<8)|rogue_feel[0]);
+@@ -70,12 +73,16 @@
+ return(-1);
+ }
+ for ( i=0; i<MS_ADPCM_state.wNumCoef; ++i ) {
++ if (rogue_feel + 4 > rogue_feel_end) goto too_short;
+ MS_ADPCM_state.aCoeff[i][0] = ((rogue_feel[1]<<8)|rogue_feel[0]);
+ rogue_feel += sizeof(Uint16);
+ MS_ADPCM_state.aCoeff[i][1] = ((rogue_feel[1]<<8)|rogue_feel[0]);
+ rogue_feel += sizeof(Uint16);
+ }
+ return(0);
++too_short:
++ SDL_SetError("Unexpected length of a chunk with a MS ADPCM format");
++ return(-1);
+ }
+
+ static Sint32 MS_ADPCM_nibble(struct MS_ADPCM_decodestate *state,
+@@ -495,7 +502,7 @@
+ break;
+ case MS_ADPCM_CODE:
+ /* Try to understand this */
+- if ( InitMS_ADPCM(format) < 0 ) {
++ if ( InitMS_ADPCM(format, lenread) < 0 ) {
+ was_error = 1;
+ goto done;
+ }
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch
new file mode 100644
index 0000000000..63680b8b7f
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7577.patch
@@ -0,0 +1,118 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560182051 25200
+# Mon Jun 10 08:54:11 2019 -0700
+# Branch SDL-1.2
+# Node ID 416136310b88cbeeff8773e573e90ac1e22b3526
+# Parent a6e3d2f5183e1cc300ad993e10e9ce077e13bd9c
+CVE-2019-7577: Fix a buffer overread in MS_ADPCM_decode
+If RIFF/WAV data chunk length is shorter then expected for an audio
+format defined in preceeding RIFF/WAV format headers, a buffer
+overread can happen.
+
+This patch fixes it by checking a MS ADPCM data to be decoded are not
+past the initialized buffer.
+
+CVE-2019-7577
+Reproducer: https://bugzilla.libsdl.org/show_bug.cgi?id=4492
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560182069 25200
+# Mon Jun 10 08:54:29 2019 -0700
+# Branch SDL-1.2
+# Node ID faf9abbcfb5fe0d0ca23c4bf0394aa226ceccf02
+# Parent 416136310b88cbeeff8773e573e90ac1e22b3526
+CVE-2019-7577: Fix a buffer overread in MS_ADPCM_nibble and MS_ADPCM_decode
+If a chunk of RIFF/WAV file with MS ADPCM encoding contains an invalid
+predictor (a valid predictor's value is between 0 and 6 inclusive),
+a buffer overread can happen when the predictor is used as an index
+into an array of MS ADPCM coefficients.
+
+The overead happens when indexing MS_ADPCM_state.aCoeff[] array in
+MS_ADPCM_decode() and later when dereferencing a coef pointer in
+MS_ADPCM_nibble().
+
+This patch fixes it by checking the MS ADPCM predictor values fit
+into the valid range.
+
+CVE-2019-7577
+Reproducer: https://bugzilla.libsdl.org/show_bug.cgi?id=4492
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7577
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+Refresh CVE-2019-7577.patch as it can't be applyed when using PATCHTOOL = "patch".
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
+---
+ src/audio/SDL_wave.c | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c
+index b4ad6c7..0bcf7e2 100644
+--- a/src/audio/SDL_wave.c
++++ b/src/audio/SDL_wave.c
+@@ -115,7 +115,7 @@ static Sint32 MS_ADPCM_nibble(struct MS_ADPCM_decodestate *state,
+ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ {
+ struct MS_ADPCM_decodestate *state[2];
+- Uint8 *freeable, *encoded, *decoded;
++ Uint8 *freeable, *encoded, *encoded_end, *decoded;
+ Sint32 encoded_len, samplesleft;
+ Sint8 nybble, stereo;
+ Sint16 *coeff[2];
+@@ -124,6 +124,7 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ /* Allocate the proper sized output buffer */
+ encoded_len = *audio_len;
+ encoded = *audio_buf;
++ encoded_end = encoded + encoded_len;
+ freeable = *audio_buf;
+ *audio_len = (encoded_len/MS_ADPCM_state.wavefmt.blockalign) *
+ MS_ADPCM_state.wSamplesPerBlock*
+@@ -141,10 +142,14 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ state[1] = &MS_ADPCM_state.state[stereo];
+ while ( encoded_len >= MS_ADPCM_state.wavefmt.blockalign ) {
+ /* Grab the initial information for this block */
++ if (encoded + 7 + (stereo ? 7 : 0) > encoded_end) goto too_short;
+ state[0]->hPredictor = *encoded++;
+ if ( stereo ) {
+ state[1]->hPredictor = *encoded++;
+ }
++ if (state[0]->hPredictor >= 7 || state[1]->hPredictor >= 7) {
++ goto invalid_predictor;
++ }
+ state[0]->iDelta = ((encoded[1]<<8)|encoded[0]);
+ encoded += sizeof(Sint16);
+ if ( stereo ) {
+@@ -188,6 +193,8 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ samplesleft = (MS_ADPCM_state.wSamplesPerBlock-2)*
+ MS_ADPCM_state.wavefmt.channels;
+ while ( samplesleft > 0 ) {
++ if (encoded + 1 > encoded_end) goto too_short;
++
+ nybble = (*encoded)>>4;
+ new_sample = MS_ADPCM_nibble(state[0],nybble,coeff[0]);
+ decoded[0] = new_sample&0xFF;
+@@ -209,6 +216,14 @@ static int MS_ADPCM_decode(Uint8 **audio_buf, Uint32 *audio_len)
+ }
+ SDL_free(freeable);
+ return(0);
++too_short:
++ SDL_SetError("Too short chunk for a MS ADPCM decoder");
++ SDL_free(freeable);
++ return(-1);
++invalid_predictor:
++ SDL_SetError("Invalid predictor value for a MS ADPCM decoder");
++ SDL_free(freeable);
++ return(-1);
+ }
+
+ struct IMA_ADPCM_decodestate {
+--
+2.7.4
+
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch
new file mode 100644
index 0000000000..7028890333
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7578.patch
@@ -0,0 +1,64 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560042129 25200
+# Sat Jun 08 18:02:09 2019 -0700
+# Branch SDL-1.2
+# Node ID 388987dff7bf8f1e214e69c2e4f1aa31e06396b5
+# Parent e52413f5258600878f9a10d2f92605a729aa8976
+CVE-2019-7578: Fix a buffer overread in InitIMA_ADPCM
+If IMA ADPCM format chunk was too short, InitIMA_ADPCM() parsing it
+could read past the end of chunk data. This patch fixes it.
+
+CVE-2019-7578
+https://bugzilla.libsdl.org/show_bug.cgi?id=4494
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7578
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r e52413f52586 -r 388987dff7bf src/audio/SDL_wave.c
+--- a/src/audio/SDL_wave.c Sat Jun 08 17:57:43 2019 -0700
++++ b/src/audio/SDL_wave.c Sat Jun 08 18:02:09 2019 -0700
+@@ -222,11 +222,12 @@
+ struct IMA_ADPCM_decodestate state[2];
+ } IMA_ADPCM_state;
+
+-static int InitIMA_ADPCM(WaveFMT *format)
++static int InitIMA_ADPCM(WaveFMT *format, int length)
+ {
+- Uint8 *rogue_feel;
++ Uint8 *rogue_feel, *rogue_feel_end;
+
+ /* Set the rogue pointer to the IMA_ADPCM specific data */
++ if (length < sizeof(*format)) goto too_short;
+ IMA_ADPCM_state.wavefmt.encoding = SDL_SwapLE16(format->encoding);
+ IMA_ADPCM_state.wavefmt.channels = SDL_SwapLE16(format->channels);
+ IMA_ADPCM_state.wavefmt.frequency = SDL_SwapLE32(format->frequency);
+@@ -235,11 +236,16 @@
+ IMA_ADPCM_state.wavefmt.bitspersample =
+ SDL_SwapLE16(format->bitspersample);
+ rogue_feel = (Uint8 *)format+sizeof(*format);
++ rogue_feel_end = (Uint8 *)format + length;
+ if ( sizeof(*format) == 16 ) {
+ rogue_feel += sizeof(Uint16);
+ }
++ if (rogue_feel + 2 > rogue_feel_end) goto too_short;
+ IMA_ADPCM_state.wSamplesPerBlock = ((rogue_feel[1]<<8)|rogue_feel[0]);
+ return(0);
++too_short:
++ SDL_SetError("Unexpected length of a chunk with an IMA ADPCM format");
++ return(-1);
+ }
+
+ static Sint32 IMA_ADPCM_nibble(struct IMA_ADPCM_decodestate *state,Uint8 nybble)
+@@ -471,7 +477,7 @@
+ break;
+ case IMA_ADPCM_CODE:
+ /* Try to understand this */
+- if ( InitIMA_ADPCM(format) < 0 ) {
++ if ( InitIMA_ADPCM(format, lenread) < 0 ) {
+ was_error = 1;
+ goto done;
+ }
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch
new file mode 100644
index 0000000000..78af1b061d
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7635.patch
@@ -0,0 +1,63 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1560259692 25200
+# Tue Jun 11 06:28:12 2019 -0700
+# Branch SDL-1.2
+# Node ID f1f5878be5dbf63c1161a8ee52b8a86ece30e552
+# Parent a936f9bd3e381d67d8ddee8b9243f85799ea4798
+CVE-2019-7635: Reject BMP images with pixel colors out the palette
+If a 1-, 4-, or 8-bit per pixel BMP image declares less used colors
+than the palette offers an SDL_Surface with a palette of the indicated
+number of used colors is created. If some of the image's pixel
+refer to a color number higher then the maximal used colors, a subsequent
+bliting operation on the surface will look up a color past a blit map
+(that is based on the palette) memory. I.e. passing such SDL_Surface
+to e.g. an SDL_DisplayFormat() function will result in a buffer overread in
+a blit function.
+
+This patch fixes it by validing each pixel's color to be less than the
+maximal color number in the palette. A validation failure raises an
+error from a SDL_LoadBMP_RW() function.
+
+CVE-2019-7635
+https://bugzilla.libsdl.org/show_bug.cgi?id=4498
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7635
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r a936f9bd3e38 -r f1f5878be5db src/video/SDL_bmp.c
+--- a/src/video/SDL_bmp.c Mon Jun 10 09:25:05 2019 -0700
++++ b/src/video/SDL_bmp.c Tue Jun 11 06:28:12 2019 -0700
+@@ -308,6 +308,12 @@
+ }
+ *(bits+i) = (pixel>>shift);
+ pixel <<= ExpandBMP;
++ if ( bits[i] >= biClrUsed ) {
++ SDL_SetError(
++ "A BMP image contains a pixel with a color out of the palette");
++ was_error = SDL_TRUE;
++ goto done;
++ }
+ } }
+ break;
+
+@@ -318,6 +324,16 @@
+ was_error = SDL_TRUE;
+ goto done;
+ }
++ if ( 8 == biBitCount && palette && biClrUsed < (1 << biBitCount ) ) {
++ for ( i=0; i<surface->w; ++i ) {
++ if ( bits[i] >= biClrUsed ) {
++ SDL_SetError(
++ "A BMP image contains a pixel with a color out of the palette");
++ was_error = SDL_TRUE;
++ goto done;
++ }
++ }
++ }
+ #if SDL_BYTEORDER == SDL_BIG_ENDIAN
+ /* Byte-swap the pixels if needed. Note that the 24bpp
+ case has already been taken care of above. */
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch
new file mode 100644
index 0000000000..c95338e61a
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7637.patch
@@ -0,0 +1,192 @@
+# HG changeset patch
+# User Petr Písař <ppisar@redhat.com>
+# Date 1552788984 25200
+# Sat Mar 16 19:16:24 2019 -0700
+# Branch SDL-1.2
+# Node ID 9b0e5c555c0f5ce6d2c3c19da6cc2c7fb5048bf2
+# Parent 4646533663ae1d80c2cc6b2d6dbfb37c62491c1e
+CVE-2019-7637: Fix in integer overflow in SDL_CalculatePitch
+If a too large width is passed to SDL_SetVideoMode() the width travels
+to SDL_CalculatePitch() where the width (e.g. 65535) is multiplied by
+BytesPerPixel (e.g. 4) and the result is stored into Uint16 pitch
+variable. During this arithmetics an integer overflow can happen (e.g.
+the value is clamped as 65532). As a result SDL_Surface with a pitch
+smaller than width * BytesPerPixel is created, too small pixel buffer
+is allocated and when the SDL_Surface is processed in SDL_FillRect()
+a buffer overflow occurs.
+
+This can be reproduced with "./graywin -width 21312312313123213213213"
+command.
+
+This patch fixes is by using a very careful arithmetics in
+SDL_CalculatePitch(). If an overflow is detected, an error is reported
+back as a special 0 value. We assume that 0-width surfaces do not
+occur in the wild. Since SDL_CalculatePitch() is a private function,
+we can change the semantics.
+
+CVE-2019-7637
+https://bugzilla.libsdl.org/show_bug.cgi?id=4497
+
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+
+CVE: CVE-2019-7637
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/SDL_pixels.c
+--- a/src/video/SDL_pixels.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/SDL_pixels.c Sat Mar 16 19:16:24 2019 -0700
+@@ -286,26 +286,53 @@
+ }
+ }
+ /*
+- * Calculate the pad-aligned scanline width of a surface
++ * Calculate the pad-aligned scanline width of a surface. Return 0 in case of
++ * an error.
+ */
+ Uint16 SDL_CalculatePitch(SDL_Surface *surface)
+ {
+- Uint16 pitch;
++ unsigned int pitch = 0;
+
+ /* Surface should be 4-byte aligned for speed */
+- pitch = surface->w*surface->format->BytesPerPixel;
++ /* The code tries to prevent from an Uint16 overflow. */;
++ for (Uint8 byte = surface->format->BytesPerPixel; byte; byte--) {
++ pitch += (unsigned int)surface->w;
++ if (pitch < surface->w) {
++ SDL_SetError("A scanline is too wide");
++ return(0);
++ }
++ }
+ switch (surface->format->BitsPerPixel) {
+ case 1:
+- pitch = (pitch+7)/8;
++ if (pitch % 8) {
++ pitch = pitch / 8 + 1;
++ } else {
++ pitch = pitch / 8;
++ }
+ break;
+ case 4:
+- pitch = (pitch+1)/2;
++ if (pitch % 2) {
++ pitch = pitch / 2 + 1;
++ } else {
++ pitch = pitch / 2;
++ }
+ break;
+ default:
+ break;
+ }
+- pitch = (pitch + 3) & ~3; /* 4-byte aligning */
+- return(pitch);
++ /* 4-byte aligning */
++ if (pitch & 3) {
++ if (pitch + 3 < pitch) {
++ SDL_SetError("A scanline is too wide");
++ return(0);
++ }
++ pitch = (pitch + 3) & ~3;
++ }
++ if (pitch > 0xFFFF) {
++ SDL_SetError("A scanline is too wide");
++ return(0);
++ }
++ return((Uint16)pitch);
+ }
+ /*
+ * Match an RGB value to a particular palette index
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/gapi/SDL_gapivideo.c
+--- a/src/video/gapi/SDL_gapivideo.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/gapi/SDL_gapivideo.c Sat Mar 16 19:16:24 2019 -0700
+@@ -733,6 +733,9 @@
+ video->w = gapi->w = width;
+ video->h = gapi->h = height;
+ video->pitch = SDL_CalculatePitch(video);
++ if (!current->pitch) {
++ return(NULL);
++ }
+
+ /* Small fix for WinCE/Win32 - when activating window
+ SDL_VideoSurface is equal to zero, so activating code
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/nanox/SDL_nxvideo.c
+--- a/src/video/nanox/SDL_nxvideo.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/nanox/SDL_nxvideo.c Sat Mar 16 19:16:24 2019 -0700
+@@ -378,6 +378,10 @@
+ current -> w = width ;
+ current -> h = height ;
+ current -> pitch = SDL_CalculatePitch (current) ;
++ if (!current->pitch) {
++ current = NULL;
++ goto done;
++ }
+ NX_ResizeImage (this, current, flags) ;
+ }
+
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/ps2gs/SDL_gsvideo.c
+--- a/src/video/ps2gs/SDL_gsvideo.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/ps2gs/SDL_gsvideo.c Sat Mar 16 19:16:24 2019 -0700
+@@ -479,6 +479,9 @@
+ current->w = width;
+ current->h = height;
+ current->pitch = SDL_CalculatePitch(current);
++ if (!current->pitch) {
++ return(NULL);
++ }
+
+ /* Memory map the DMA area for block memory transfer */
+ if ( ! mapped_mem ) {
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/ps3/SDL_ps3video.c
+--- a/src/video/ps3/SDL_ps3video.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/ps3/SDL_ps3video.c Sat Mar 16 19:16:24 2019 -0700
+@@ -339,6 +339,9 @@
+ current->w = width;
+ current->h = height;
+ current->pitch = SDL_CalculatePitch(current);
++ if (!current->pitch) {
++ return(NULL);
++ }
+
+ /* Alloc aligned mem for current->pixels */
+ s_pixels = memalign(16, current->h * current->pitch);
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/windib/SDL_dibvideo.c
+--- a/src/video/windib/SDL_dibvideo.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/windib/SDL_dibvideo.c Sat Mar 16 19:16:24 2019 -0700
+@@ -675,6 +675,9 @@
+ video->w = width;
+ video->h = height;
+ video->pitch = SDL_CalculatePitch(video);
++ if (!current->pitch) {
++ return(NULL);
++ }
+
+ /* Small fix for WinCE/Win32 - when activating window
+ SDL_VideoSurface is equal to zero, so activating code
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/windx5/SDL_dx5video.c
+--- a/src/video/windx5/SDL_dx5video.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/windx5/SDL_dx5video.c Sat Mar 16 19:16:24 2019 -0700
+@@ -1127,6 +1127,9 @@
+ video->w = width;
+ video->h = height;
+ video->pitch = SDL_CalculatePitch(video);
++ if (!current->pitch) {
++ return(NULL);
++ }
+
+ #ifndef NO_CHANGEDISPLAYSETTINGS
+ /* Set fullscreen mode if appropriate.
+diff -r 4646533663ae -r 9b0e5c555c0f src/video/x11/SDL_x11video.c
+--- a/src/video/x11/SDL_x11video.c Sat Mar 16 18:35:33 2019 -0700
++++ b/src/video/x11/SDL_x11video.c Sat Mar 16 19:16:24 2019 -0700
+@@ -1225,6 +1225,10 @@
+ current->w = width;
+ current->h = height;
+ current->pitch = SDL_CalculatePitch(current);
++ if (!current->pitch) {
++ current = NULL;
++ goto done;
++ }
+ if (X11_ResizeImage(this, current, flags) < 0) {
+ current = NULL;
+ goto done;
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch
new file mode 100644
index 0000000000..dab9aaeb2b
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/CVE-2019-7638.patch
@@ -0,0 +1,38 @@
+# HG changeset patch
+# User Sam Lantinga <slouken@libsdl.org>
+# Date 1550504903 28800
+# Mon Feb 18 07:48:23 2019 -0800
+# Branch SDL-1.2
+# Node ID 19d8c3b9c25143f71a34ff40ce1df91b4b3e3b78
+# Parent 8586f153eedec4c4e07066d6248ebdf67f10a229
+Fixed bug 4500 - Heap-Buffer Overflow in Map1toN pertaining to SDL_pixels.c
+
+Petr Pisar
+
+The reproducer has these data in BITMAPINFOHEADER:
+
+biSize = 40
+biBitCount = 8
+biClrUsed = 131075
+
+SDL_LoadBMP_RW() function passes biBitCount as a color depth to SDL_CreateRGBSurface(), thus 256-color pallete is allocated. But then biClrUsed colors are read from a file and stored into the palette. SDL_LoadBMP_RW should report an error if biClrUsed is greater than 2^biBitCount.
+
+CVE: CVE-2019-7638
+CVE: CVE-2019-7636
+Upstream-Status: Backport
+Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
+
+diff -r 8586f153eede -r 19d8c3b9c251 src/video/SDL_bmp.c
+--- a/src/video/SDL_bmp.c Sun Jan 13 15:27:50 2019 +0100
++++ b/src/video/SDL_bmp.c Mon Feb 18 07:48:23 2019 -0800
+@@ -233,6 +233,10 @@
+ if ( palette ) {
+ if ( biClrUsed == 0 ) {
+ biClrUsed = 1 << biBitCount;
++ } else if ( biClrUsed > (1 << biBitCount) ) {
++ SDL_SetError("BMP file has an invalid number of colors");
++ was_error = SDL_TRUE;
++ goto done;
+ }
+ if ( biSize == 12 ) {
+ for ( i = 0; i < (int)biClrUsed; ++i ) {
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch
new file mode 100644
index 0000000000..f98b927522
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/libsdl-1.2.15-xdata32.patch
@@ -0,0 +1,19 @@
+libX11-1.5.99.901 has changed prototype of _XData32
+
+Upstream-Status: Backport
+<http://bugzilla.libsdl.org/show_bug.cgi?id=1769>
+
+Signed-off-by: Saul Wold <sgw@linux.intel.com>
+
+diff -r b6b2829cd7ef src/video/x11/SDL_x11sym.h
+--- a/src/video/x11/SDL_x11sym.h Wed Feb 27 15:20:31 2013 -0800
++++ b/src/video/x11/SDL_x11sym.h Wed Mar 27 16:07:23 2013 +0100
+@@ -165,7 +165,7 @@
+ */
+ #ifdef LONG64
+ SDL_X11_MODULE(IO_32BIT)
+-SDL_X11_SYM(int,_XData32,(Display *dpy,register long *data,unsigned len),(dpy,data,len),return)
++SDL_X11_SYM(int,_XData32,(Display *dpy,register _Xconst long *data,unsigned len),(dpy,data,len),return)
+ SDL_X11_SYM(void,_XRead32,(Display *dpy,register long *data,long len),(dpy,data,len),)
+ #endif
+
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch
new file mode 100644
index 0000000000..913baa92a0
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-1.2.15/pkgconfig.patch
@@ -0,0 +1,187 @@
+Rather than code which doesn't even work properly when cross compiling,
+lets just use pkg-config instead. Its a little simpler.
+
+RP 2014/6/20
+
+Upstream-Status: Pending
+
+Index: SDL-1.2.15/sdl.m4
+===================================================================
+--- SDL-1.2.15.orig/sdl.m4
++++ SDL-1.2.15/sdl.m4
+@@ -12,174 +12,8 @@ dnl Test for SDL, and define SDL_CFLAGS
+ dnl
+ AC_DEFUN([AM_PATH_SDL],
+ [dnl
+-dnl Get the cflags and libraries from the sdl-config script
+-dnl
+-AC_ARG_WITH(sdl-prefix,[ --with-sdl-prefix=PFX Prefix where SDL is installed (optional)],
+- sdl_prefix="$withval", sdl_prefix="")
+-AC_ARG_WITH(sdl-exec-prefix,[ --with-sdl-exec-prefix=PFX Exec prefix where SDL is installed (optional)],
+- sdl_exec_prefix="$withval", sdl_exec_prefix="")
+-AC_ARG_ENABLE(sdltest, [ --disable-sdltest Do not try to compile and run a test SDL program],
+- , enable_sdltest=yes)
+-
+- if test x$sdl_exec_prefix != x ; then
+- sdl_config_args="$sdl_config_args --exec-prefix=$sdl_exec_prefix"
+- if test x${SDL_CONFIG+set} != xset ; then
+- SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config
+- fi
+- fi
+- if test x$sdl_prefix != x ; then
+- sdl_config_args="$sdl_config_args --prefix=$sdl_prefix"
+- if test x${SDL_CONFIG+set} != xset ; then
+- SDL_CONFIG=$sdl_prefix/bin/sdl-config
+- fi
+- fi
+-
+- as_save_PATH="$PATH"
+- if test "x$prefix" != xNONE; then
+- PATH="$prefix/bin:$prefix/usr/bin:$PATH"
+- fi
+- AC_PATH_PROG(SDL_CONFIG, sdl-config, no, [$PATH])
+- PATH="$as_save_PATH"
+ min_sdl_version=ifelse([$1], ,0.11.0,$1)
+- AC_MSG_CHECKING(for SDL - version >= $min_sdl_version)
+- no_sdl=""
+- if test "$SDL_CONFIG" = "no" ; then
+- no_sdl=yes
+- else
+- SDL_CFLAGS=`$SDL_CONFIG $sdl_config_args --cflags`
+- SDL_LIBS=`$SDL_CONFIG $sdl_config_args --libs`
+-
+- sdl_major_version=`$SDL_CONFIG $sdl_config_args --version | \
+- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
+- sdl_minor_version=`$SDL_CONFIG $sdl_config_args --version | \
+- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
+- sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \
+- sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
+- if test "x$enable_sdltest" = "xyes" ; then
+- ac_save_CFLAGS="$CFLAGS"
+- ac_save_CXXFLAGS="$CXXFLAGS"
+- ac_save_LIBS="$LIBS"
+- CFLAGS="$CFLAGS $SDL_CFLAGS"
+- CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
+- LIBS="$LIBS $SDL_LIBS"
+-dnl
+-dnl Now check if the installed SDL is sufficiently new. (Also sanity
+-dnl checks the results of sdl-config to some extent
+-dnl
+- rm -f conf.sdltest
+- AC_TRY_RUN([
+-#include <stdio.h>
+-#include <stdlib.h>
+-#include <string.h>
+-#include "SDL.h"
+-
+-char*
+-my_strdup (char *str)
+-{
+- char *new_str;
+-
+- if (str)
+- {
+- new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char));
+- strcpy (new_str, str);
+- }
+- else
+- new_str = NULL;
+-
+- return new_str;
+-}
+-
+-int main (int argc, char *argv[])
+-{
+- int major, minor, micro;
+- char *tmp_version;
+-
+- /* This hangs on some systems (?)
+- system ("touch conf.sdltest");
+- */
+- { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); }
+-
+- /* HP/UX 9 (%@#!) writes to sscanf strings */
+- tmp_version = my_strdup("$min_sdl_version");
+- if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
+- printf("%s, bad version string\n", "$min_sdl_version");
+- exit(1);
+- }
+-
+- if (($sdl_major_version > major) ||
+- (($sdl_major_version == major) && ($sdl_minor_version > minor)) ||
+- (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro)))
+- {
+- return 0;
+- }
+- else
+- {
+- printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version);
+- printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro);
+- printf("*** best to upgrade to the required version.\n");
+- printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n");
+- printf("*** to point to the correct copy of sdl-config, and remove the file\n");
+- printf("*** config.cache before re-running configure\n");
+- return 1;
+- }
+-}
+-
+-],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
+- CFLAGS="$ac_save_CFLAGS"
+- CXXFLAGS="$ac_save_CXXFLAGS"
+- LIBS="$ac_save_LIBS"
+- fi
+- fi
+- if test "x$no_sdl" = x ; then
+- AC_MSG_RESULT(yes)
+- ifelse([$2], , :, [$2])
+- else
+- AC_MSG_RESULT(no)
+- if test "$SDL_CONFIG" = "no" ; then
+- echo "*** The sdl-config script installed by SDL could not be found"
+- echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in"
+- echo "*** your path, or set the SDL_CONFIG environment variable to the"
+- echo "*** full path to sdl-config."
+- else
+- if test -f conf.sdltest ; then
+- :
+- else
+- echo "*** Could not run SDL test program, checking why..."
+- CFLAGS="$CFLAGS $SDL_CFLAGS"
+- CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
+- LIBS="$LIBS $SDL_LIBS"
+- AC_TRY_LINK([
+-#include <stdio.h>
+-#include "SDL.h"
+-
+-int main(int argc, char *argv[])
+-{ return 0; }
+-#undef main
+-#define main K_and_R_C_main
+-], [ return 0; ],
+- [ echo "*** The test program compiled, but did not run. This usually means"
+- echo "*** that the run-time linker is not finding SDL or finding the wrong"
+- echo "*** version of SDL. If it is not finding SDL, you'll need to set your"
+- echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
+- echo "*** to the installed location Also, make sure you have run ldconfig if that"
+- echo "*** is required on your system"
+- echo "***"
+- echo "*** If you have an old version installed, it is best to remove it, although"
+- echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"],
+- [ echo "*** The test program failed to compile or link. See the file config.log for the"
+- echo "*** exact error that occured. This usually means SDL was incorrectly installed"
+- echo "*** or that you have moved SDL since it was installed. In the latter case, you"
+- echo "*** may want to edit the sdl-config script: $SDL_CONFIG" ])
+- CFLAGS="$ac_save_CFLAGS"
+- CXXFLAGS="$ac_save_CXXFLAGS"
+- LIBS="$ac_save_LIBS"
+- fi
+- fi
+- SDL_CFLAGS=""
+- SDL_LIBS=""
+- ifelse([$3], , :, [$3])
+- fi
++ PKG_CHECK_MODULES([SDL], [sdl >= $min_sdl_version])
+ AC_SUBST(SDL_CFLAGS)
+ AC_SUBST(SDL_LIBS)
+- rm -f conf.sdltest
+ ])
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb b/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb
new file mode 100644
index 0000000000..666442fba2
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-gfx_2.0.25.bb
@@ -0,0 +1,19 @@
+SUMMARY = "SDL graphics drawing primitives and other support functions"
+SECTION = "libs"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d1de21f0b70830e299905eac3419084"
+
+DEPENDS = "libsdl"
+
+SRC_URI = "http://www.ferzkopp.net/Software/SDL_gfx-2.0/SDL_gfx-${PV}.tar.gz"
+SRC_URI[md5sum] = "ea24ed4b82ff1304809c363494fa8e16"
+SRC_URI[sha256sum] = "556eedc06b6cf29eb495b6d27f2dcc51bf909ad82389ba2fa7bdc4dec89059c0"
+
+S = "${WORKDIR}/SDL_gfx-${PV}"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF += " \
+ --disable-mmx \
+"
+
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
new file mode 100644
index 0000000000..102cec7288
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-image/configure.patch
@@ -0,0 +1,45 @@
+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
++++ SDL_image-1.2.12/configure.in 2014-07-18 06:56:56.853466678 +0000
+@@ -1,5 +1,4 @@
+ dnl Process this file with autoconf to produce a configure script.
+-AC_INIT(README)
+
+ dnl Set various version strings - taken gratefully from the GTk sources
+
+@@ -11,12 +10,19 @@
+ # if backwards compatibility has been broken,
+ # set BINARY_AGE and INTERFACE_AGE to 0.
+
+-MAJOR_VERSION=1
+-MINOR_VERSION=2
+-MICRO_VERSION=12
++m4_define([sdlimage_major_version],[1])
++m4_define([sdlimage_minor_version],[2])
++m4_define([sdlimage_micro_version],[12])
++m4_define([sdlimage_version], [sdlimage_major_version.sdlimage_minor_version.sdlimage_micro_version])
++
++AC_INIT([SDL_image], [sdlimage_version])
++
++MAJOR_VERSION=sdlimage_major_version
++MINOR_VERSION=sdlimage_minor_version
++MICRO_VERSION=sdlimage_micro_version
+ INTERFACE_AGE=4
+ BINARY_AGE=12
+-VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
++VERSION=sdlimage_version
+
+ AC_SUBST(MAJOR_VERSION)
+ AC_SUBST(MINOR_VERSION)
+@@ -42,7 +48,7 @@
+ AC_CANONICAL_HOST
+
+ dnl Setup for automake
+-AM_INIT_AUTOMAKE(SDL_image, $VERSION)
++AM_INIT_AUTOMAKE([foreign])
+
+ dnl Check for tools
+ AC_PROG_LIBTOOL
diff --git a/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
index ea8e9eaa30..01137bb0ca 100644
--- a/meta-oe/recipes-multimedia/libsdl-image/libsdl-image_1.2.12.bb
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-image_1.2.12.bb
@@ -4,11 +4,11 @@ SECTION = "libs"
LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://COPYING;md5=613734b7586e1580ef944961c6d62227"
-DEPENDS = "tiff zlib libpng jpeg virtual/libsdl"
+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}"
@@ -20,7 +20,7 @@ export SDL_CONFIG = "${STAGING_BINDIR_CROSS}/sdl-config"
# Disable the run-time loading of the libs and bring back the soname dependencies.
EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"
-do_configure_prepend() {
+do_configure:prepend() {
# Removing these files fixes a libtool version mismatch.
rm -f ${S}/acinclude/libtool.m4
rm -f ${S}/acinclude/sdl.m4
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch
new file mode 100644
index 0000000000..7330ef61aa
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-mixer/configure.patch
@@ -0,0 +1,23 @@
+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
+@@ -1,6 +1,5 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(README)
+-AC_CONFIG_AUX_DIR(build-scripts)
+
+ dnl Set various version strings - taken gratefully from the GTk sources
+
+@@ -40,10 +39,6 @@
+ AC_SUBST(LT_REVISION)
+ AC_SUBST(LT_AGE)
+
+-dnl Detect the canonical build and host environments
+-AC_CONFIG_AUX_DIRS($srcdir/build-scripts)
+-dnl AC_CANONICAL_HOST
+-
+ dnl Check for tools
+ AC_PROG_LIBTOOL
+ AC_PROG_CC
diff --git a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb b/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb
index c83fcc8daa..a470ee81d0 100644
--- a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer_1.2.12.bb
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-mixer_1.2.12.bb
@@ -1,6 +1,6 @@
SUMMARY = "Simple DirectMedia Layer mixer library"
SECTION = "libs"
-DEPENDS = "virtual/libsdl flac libmikmod libvorbis"
+DEPENDS = "libsdl flac libmikmod libvorbis"
LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://COPYING;md5=a37a47a0e579e461474cd03b9e05199d"
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch
new file mode 100644
index 0000000000..7911a2aa75
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/am_foreign.patch
@@ -0,0 +1,13 @@
+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
+@@ -1,5 +1,7 @@
+ # Makefile.am for the SDL sample image loading library and viewer
+
++AUTOMAKE_OPTIONS = foreign
++
+ lib_LTLIBRARIES = libSDL_net.la
+
+ libSDL_netincludedir = $(includedir)/SDL
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch
new file mode 100644
index 0000000000..e491c1abce
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-net/libtool2.patch
@@ -0,0 +1,23 @@
+From f9417c864183a0f6d0e90f66f5254a63b04a041a Mon Sep 17 00:00:00 2001
+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/configure.in b/configure.in
+index c42bd0c..71a4825 100644
+--- a/configure.in
++++ b/configure.in
+@@ -44,6 +44,8 @@ AC_CANONICAL_HOST
+ dnl Setup for automake
+ AM_INIT_AUTOMAKE(SDL_net, $VERSION)
+
++dnl got macros
++AC_CONFIG_MACRO_DIR([acinclude])
+ dnl Check for tools
+ AC_PROG_LIBTOOL
+ AC_PROG_CC
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb b/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb
new file mode 100644
index 0000000000..49b1ef2879
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-net_1.2.8.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Simple DirectMedia Layer networking library."
+SECTION = "libs/network"
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9cf3de2d872bf510f88eb20d06d700b5"
+
+inherit autotools pkgconfig
+
+DEPENDS = "libsdl"
+
+SRC_URI = " \
+ https://www.libsdl.org/projects/SDL_net/release/SDL_net-${PV}.tar.gz \
+ file://libtool2.patch \
+ file://am_foreign.patch \
+"
+
+S = "${WORKDIR}/SDL_net-${PV}"
+
+SRC_URI[md5sum] = "20e64e61d65662db66c379034f11f718"
+SRC_URI[sha256sum] = "5f4a7a8bb884f793c278ac3f3713be41980c5eedccecff0260411347714facb4"
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
new file mode 100644
index 0000000000..d174d7ab5c
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-ttf/use.pkg-config.for.freetype2.patch
@@ -0,0 +1,64 @@
+From 8cf318197eea91bec6057308befbb29426d69014 Mon Sep 17 00:00:00 2001
+From: Richard Purdie <richard.purdie@linuxfoundation.org>
+Date: Thu, 22 May 2014 10:59:33 +0100
+Subject: [PATCH] freetype-config was removed from oe-core in
+
+commit 5870bd272b0b077d0826fb900b251884c1c05061
+
+ binconfig-disabled: Add class and use
+
+---
+Upstream-Status: Pending
+
+ configure.in | 38 +++++---------------------------------
+ 1 file changed, 5 insertions(+), 33 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 865075e..d7a5a81 100644
+--- a/configure.in
++++ b/configure.in
+@@ -90,39 +90,11 @@ case "$host" in
+ esac
+ AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
+
+-dnl Check for the FreeType 2 library
+-dnl
+-dnl Get the cflags and libraries from the freetype-config script
+-dnl
+-AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is
+-installed (optional)],
+- freetype_prefix="$withval", freetype_prefix="")
+-AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix
+-where FREETYPE is installed (optional)],
+- freetype_exec_prefix="$withval", freetype_exec_prefix="")
+-
+-if test x$freetype_exec_prefix != x ; then
+- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
+- if test x${FREETYPE_CONFIG+set} != xset ; then
+- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
+- fi
+-fi
+-if test x$freetype_prefix != x ; then
+- freetype_args="$freetype_args --prefix=$freetype_prefix"
+- if test x${FREETYPE_CONFIG+set} != xset ; then
+- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
+- fi
+-fi
+-AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
+-no_freetype=""
+-if test "$FREETYPE_CONFIG" = "no" ; then
+- AC_MSG_ERROR([
+-*** Unable to find FreeType2 library (http://www.freetype.org/)
+-])
+-else
+- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
+- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
+-fi
++PKG_CHECK_MODULES(FREETYPE2, freetype2,
++ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
++ LIBS="$LIBS $FREETYPE2_LIBS",
++ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
++)
+
+ dnl Check for SDL
+ SDL_VERSION=1.2.4
diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb b/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb
index d8b378f2cd..797c38d8e1 100644
--- a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf_2.0.11.bb
+++ b/meta-oe/recipes-graphics/libsdl/libsdl-ttf_2.0.11.bb
@@ -1,6 +1,6 @@
SUMMARY = "Simple DirectMedia Layer truetype font library"
SECTION = "libs"
-DEPENDS = "virtual/libsdl freetype"
+DEPENDS = "libsdl freetype"
LICENSE = "Zlib"
LIC_FILES_CHKSUM = "file://COPYING;md5=22800d1b3701377aae0b61ee36f5c303"
@@ -16,7 +16,7 @@ inherit autotools pkgconfig
LDFLAGS += "-lm"
-do_configure_prepend() {
+do_configure:prepend() {
# make autoreconf happy
touch ${S}/NEWS ${S}/AUTHORS ${S}/ChangeLog
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.5.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.5.bb
new file mode 100644
index 0000000000..57f0f99794
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-image_2.0.5.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Simple DirectMedia Layer image library v2"
+SECTION = "libs"
+
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=822edb694b20ff16ceef85b27f61c11f"
+
+DEPENDS = "tiff zlib libpng jpeg libsdl2 libwebp"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz"
+SRC_URI[md5sum] = "f26f3a153360a8f09ed5220ef7b07aea"
+SRC_URI[sha256sum] = "bdd5f6e026682f7d7e1be0b6051b209da2f402a2dd8bd1c4bd9c25ad263108d0"
+
+S = "${WORKDIR}/SDL2_image-${PV}"
+
+inherit autotools pkgconfig
+
+# Disable the run-time loading of the libs and bring back the soname dependencies.
+EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"
+
+do_configure:prepend() {
+ # make autoreconf happy
+ touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
+ # Removing these files fixes a libtool version mismatch.
+ rm -f ${S}/acinclude/libtool.m4
+ rm -f ${S}/acinclude/sdl2.m4
+ rm -f ${S}/acinclude/pkg.m4
+ rm -f ${S}/acinclude/lt~obsolete.m4
+ rm -f ${S}/acinclude/ltoptions.m4
+ rm -f ${S}/acinclude/ltsugar.m4
+ rm -f ${S}/acinclude/ltversion.m4
+}
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-mixer/0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer/0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch
new file mode 100644
index 0000000000..0605b32e30
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer/0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch
@@ -0,0 +1,34 @@
+From 9363c98528ef850235852e44f678df6b5c011ee1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 7 Feb 2021 18:08:36 -0800
+Subject: [PATCH] configure.in: Undefine AC_CONFIG_AUX_DIR
+
+This helps reconfiguring with autotools 2.70+
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.in | 5 -----
+ 1 file changed, 5 deletions(-)
+
+--- a/configure.in
++++ b/configure.in
+@@ -1,7 +1,6 @@
+ dnl Process this file with autoconf to produce a configure script.
+ AC_INIT(README.txt)
+ AC_CONFIG_AUX_DIR(build-scripts)
+-
+ dnl Set various version strings - taken gratefully from the GTk sources
+
+ # Making releases:
+@@ -40,10 +39,6 @@ AC_SUBST(LT_CURRENT)
+ AC_SUBST(LT_REVISION)
+ AC_SUBST(LT_AGE)
+
+-dnl Detect the canonical build and host environments
+-AC_CONFIG_AUX_DIRS($srcdir/build-scripts)
+-dnl AC_CANONICAL_HOST
+-
+ dnl Check for tools
+ AC_PROG_LIBTOOL
+ AC_PROG_CC
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb
new file mode 100644
index 0000000000..dbcb2a193b
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-mixer_2.0.4.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Simple DirectMedia Layer mixer library V2"
+SECTION = "libs"
+DEPENDS = "libsdl2 flac libmikmod libvorbis"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=516daf7a177ad4c8874bb9efa1a69c1f"
+
+SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz \
+ file://0001-configure.in-Undefine-AC_CONFIG_AUX_DIR.patch \
+ "
+SRC_URI[sha256sum] = "b4cf5a382c061cd75081cf246c2aa2f9df8db04bdda8dcdc6b6cca55bede2419"
+
+S = "${WORKDIR}/SDL2_mixer-${PV}"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --disable-music-ogg-shared LIBS=-L${STAGING_LIBDIR}"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad"
+
+do_configure:prepend () {
+ # Remove old libtool macros.
+ MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+ for i in ${MACROS}; do
+ rm -f acinclude/$i
+ done
+}
diff --git a/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb b/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb
new file mode 100644
index 0000000000..35369e8731
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-net_2.0.1.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Simple DirectMedia Layer networking library."
+SECTION = "libs/network"
+LICENSE = "Zlib"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fe9d52a78585a65224776875510ed127"
+
+SRC_URI = " \
+ https://www.libsdl.org/projects/SDL_net/release/SDL2_net-${PV}.tar.gz \
+"
+S = "${WORKDIR}/SDL2_net-${PV}"
+
+inherit autotools pkgconfig
+
+DEPENDS = "libsdl2"
+
+SRC_URI[md5sum] = "5c1d9d1cfa63301b141cb5c0de2ea7c4"
+SRC_URI[sha256sum] = "15ce8a7e5a23dafe8177c8df6e6c79b6749a03fff1e8196742d3571657609d21"
+
+do_configure:prepend() {
+ # create dummy files which autotools consider as mandatory
+ touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
+
+ # Remove old libtool macros.
+ for macro in libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4; do
+ echo ${S}/acinclude/macro
+ rm -f ${S}/acinclude/$macro
+ done
+}
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
new file mode 100644
index 0000000000..bc9371553f
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf/automake_foreign.patch
@@ -0,0 +1,23 @@
+From 6ec375eaafc43a2b3c30a0e0e49447d231d81a67 Mon Sep 17 00:00:00 2001
+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/Makefile.am b/Makefile.am
+index 8568dd2..5efc91e 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -3,6 +3,8 @@ ACLOCAL_AMFLAGS = -I acinclude
+
+ lib_LTLIBRARIES = libSDL2_ttf.la
+
++AUTOMAKE_OPTIONS = foreign
++
+ libSDL2_ttfincludedir = $(includedir)/SDL2
+ libSDL2_ttfinclude_HEADERS = \
+ SDL_ttf.h
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..7d352f4218
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl2-ttf_2.20.2.bb
@@ -0,0 +1,33 @@
+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"
+
+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
new file mode 100644
index 0000000000..814e6cd0dd
--- /dev/null
+++ b/meta-oe/recipes-graphics/libsdl/libsdl_1.2.15.bb
@@ -0,0 +1,84 @@
+SUMMARY = "Simple DirectMedia Layer"
+DESCRIPTION = "Simple DirectMedia Layer is a cross-platform multimedia \
+library designed to provide low level access to audio, keyboard, mouse, \
+joystick, 3D hardware via OpenGL, and 2D video framebuffer."
+HOMEPAGE = "http://www.libsdl.org"
+BUGTRACKER = "http://bugzilla.libsdl.org/"
+
+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 \
+ file://pkgconfig.patch \
+ file://0001-build-Pass-tag-CC-explictly-when-using-libtool.patch \
+ file://CVE-2019-7577.patch \
+ file://CVE-2019-7574.patch \
+ file://CVE-2019-7572.patch \
+ file://CVE-2019-7578.patch \
+ file://CVE-2019-7575.patch \
+ file://CVE-2019-7635.patch \
+ file://CVE-2019-7637.patch \
+ file://CVE-2019-7638.patch \
+ file://CVE-2019-7576.patch \
+ file://CVE-2019-13616.patch \
+ "
+
+UPSTREAM_CHECK_REGEX = "SDL-(?P<pver>\d+(\.\d+)+)\.tar"
+
+S = "${WORKDIR}/SDL-${PV}"
+
+SRC_URI[md5sum] = "9d96df8417572a2afb781a7c4c811a85"
+SRC_URI[sha256sum] = "d6d316a793e5e348155f0dd93b979798933fb98aa1edebcc108829d6474aad00"
+
+BINCONFIG = "${bindir}/sdl-config"
+
+inherit autotools lib_package binconfig-disabled pkgconfig
+
+CVE_PRODUCT = "simple_directmedia_layer sdl"
+
+EXTRA_OECONF = "--disable-static --enable-cdrom --enable-threads --enable-timers \
+ --enable-file --disable-oss --disable-esd --disable-arts \
+ --disable-diskaudio --disable-nas \
+ --disable-mintaudio --disable-nasm --disable-video-dga \
+ --disable-video-fbcon --disable-video-ps2gs --disable-video-ps3 \
+ --disable-xbios --disable-gem --disable-video-dummy \
+ --enable-input-events --enable-pthreads \
+ --disable-video-svga \
+ --disable-video-picogui --disable-video-qtopia --enable-sdl-dlopen \
+ --disable-rpath"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa directfb pulseaudio x11', d)} \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
+PACKAGECONFIG:class-native = "x11"
+PACKAGECONFIG:class-nativesdk = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+
+PACKAGECONFIG[alsa] = "--enable-alsa --disable-alsatest,--disable-alsa,alsa-lib"
+PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
+PACKAGECONFIG[tslib] = "--enable-input-tslib, --disable-input-tslib, tslib"
+PACKAGECONFIG[directfb] = "--enable-video-directfb, --disable-video-directfb, directfb"
+PACKAGECONFIG[opengl] = "--enable-video-opengl, --disable-video-opengl, virtual/libgl libglu"
+PACKAGECONFIG[x11] = "--enable-video-x11 --disable-x11-shared, --disable-video-x11, virtual/libx11 libxext libxrandr libxrender"
+
+# The following two options should only enabled with mingw support
+PACKAGECONFIG[stdio-redirect] = "--enable-stdio-redirect,--disable-stdio-redirect"
+PACKAGECONFIG[directx] = "--enable-directx,--disable-directx"
+
+EXTRA_AUTORECONF += "--include=acinclude --exclude=autoheader"
+
+do_configure:prepend() {
+ # Remove old libtool macros.
+ MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
+ for i in ${MACROS}; do
+ rm -f ${S}/acinclude/$i
+ done
+ export SYSROOT=$PKG_CONFIG_SYSROOT_DIR
+}
+
+BBCLASSEXTEND = "native nativesdk"
+
+CVE_STATUS[CVE-2019-14906] = "not-applicable-platform: Applies on RHEL only"
diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb
deleted file mode 100644
index 38dac06e64..0000000000
--- a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.11.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "library for easy implementation of a RDP/VNC server"
-HOMEPAGE = "https://libvnc.github.io"
-SECTION = "libs"
-PRIORITY = "optional"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f"
-
-DEPENDS += "zlib libsdl jpeg libpng gtk+ libgcrypt nettle gnutls gmp"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
-PACKAGECONFIG[systemd] = ",,systemd"
-
-RDEPENDS_${PN} += "libpng gtk+ libgcrypt"
-
-inherit distro_features_check autotools binconfig pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${PV}.tar.gz"
-SRC_URI[md5sum] = "7f06104d5c009813e95142932c4ddb06"
-SRC_URI[sha256sum] = "193d630372722a532136fd25c5326b2ca1a636cbb8bf9bb115ef869c804d2894"
-
-S = "${WORKDIR}/${BPN}-LibVNCServer-${PV}"
-
-TARGET_LDFLAGS += "-lgcrypt"
diff --git a/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
new file mode 100644
index 0000000000..93f6951739
--- /dev/null
+++ b/meta-oe/recipes-graphics/libvncserver/libvncserver_0.9.13.bb
@@ -0,0 +1,52 @@
+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/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch
index 045f3cafab..1affe84f6e 100644
--- a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch
+++ b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-Fix-the-error-of-can-t-find-header-file.patch
@@ -16,8 +16,6 @@ Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
src/ncursesw.h | 4 ++--
6 files changed, 7 insertions(+), 7 deletions(-)
-diff --git a/src/NCApplication.cc b/src/NCApplication.cc
-index 5bcf969..510f034 100644
--- a/src/NCApplication.cc
+++ b/src/NCApplication.cc
@@ -23,7 +23,7 @@
@@ -29,8 +27,6 @@ index 5bcf969..510f034 100644
#define YUILogComponent "ncurses"
#include <yui/YUILog.h>
-diff --git a/src/NCstyle.h b/src/NCstyle.h
-index a40d5a8..3657917 100644
--- a/src/NCstyle.h
+++ b/src/NCstyle.h
@@ -25,7 +25,7 @@
@@ -42,8 +38,6 @@ index a40d5a8..3657917 100644
#include <iosfwd>
#include <string>
-diff --git a/src/NCurses.h b/src/NCurses.h
-index a07c6bf..d17d3c3 100644
--- a/src/NCurses.h
+++ b/src/NCurses.h
@@ -34,7 +34,7 @@
@@ -55,8 +49,6 @@ index a07c6bf..d17d3c3 100644
#include <wchar.h>
#include "ncursesw.h"
-diff --git a/src/ncursesp.h b/src/ncursesp.h
-index d478347..2fcfea5 100644
--- a/src/ncursesp.h
+++ b/src/ncursesp.h
@@ -28,7 +28,7 @@
@@ -68,8 +60,6 @@ index d478347..2fcfea5 100644
class NCursesPanel : public NCursesWindow
{
-diff --git a/src/ncursesw.cc b/src/ncursesw.cc
-index 3c771af..bb83210 100644
--- a/src/ncursesw.cc
+++ b/src/ncursesw.cc
@@ -47,7 +47,7 @@
@@ -81,21 +71,19 @@ index 3c771af..bb83210 100644
#undef line
#undef columns
-diff --git a/src/ncursesw.h b/src/ncursesw.h
-index d25923a..c140d37 100644
--- a/src/ncursesw.h
+++ b/src/ncursesw.h
-@@ -27,8 +27,8 @@
+@@ -27,11 +27,11 @@
#include <iosfwd>
-#include <ncursesw/curses.h>
--#include <ncursesw/etip.h>
+#include <curses.h>
+ #ifndef NCURSES_CXX_IMPEXP
+ #define NCURSES_CXX_IMPEXP NCURSES_EXPORT_GENERAL_IMPORT
+ #endif
+-#include <ncursesw/etip.h>
+#include <etip.h>
#include <cstdio>
#include <cstdarg>
#include <climits>
---
-2.7.4
-
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/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch b/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch
deleted file mode 100644
index 8e3774c1ae..0000000000
--- a/meta-oe/recipes-graphics/libyui/libyui-ncurses/0001-use-_nl_msg_cat_cntr-only-with-glibc.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 4b84f243a70a8c07f6a38dad3c9411fa707f25c9 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 4 Mar 2018 17:08:43 -0800
-Subject: [PATCH] use _nl_msg_cat_cntr only with glibc
-
-The musl libc provides libintl (similar to glibc)
-but does not use the same internals,
-so even though we are using the GNU gettext
-the libintl included with the libc does not define
-_nl_msg_cat_cntr and it does not need to.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/NCi18n.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/NCi18n.h b/src/NCi18n.h
-index 165b0e7..bfc4ed7 100644
---- a/src/NCi18n.h
-+++ b/src/NCi18n.h
-@@ -59,12 +59,13 @@ inline void setTextdomain( const char * domain )
- bindtextdomain( domain, YSettings::localeDir().c_str() );
- bind_textdomain_codeset( domain, "UTF-8" );
- textdomain( domain );
--
-+#if defined(__GLIBC__)
- // Make change known
- {
- extern int _nl_msg_cat_cntr;
- ++_nl_msg_cat_cntr;
- }
-+#endif
- }
-
-
---
-2.16.2
-
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-ncurses_git.bb b/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb
deleted file mode 100644
index 578c713012..0000000000
--- a/meta-oe/recipes-graphics/libyui/libyui-ncurses_git.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "Character Based User Interface for libyui"
-LICENSE = "LGPLv3"
-LIC_FILES_CHKSUM = "file://COPYING.lgpl-3;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- file://COPYING.lgpl-2.1;md5=4fbd65380cdd255951079008b364516c \
-"
-
-SRC_URI = "git://github.com/libyui/libyui-ncurses.git \
- file://0001-use-_nl_msg_cat_cntr-only-with-glibc.patch \
- "
-
-SRC_URI_append_class-target = " file://0001-Fix-the-error-of-can-t-find-header-file.patch"
-
-PV = "2.48.3+git${SRCPV}"
-SRCREV = "79b804b45ffc6a0d92e28e793ff389a20b63b54b"
-
-S = "${WORKDIR}/git"
-
-inherit cmake gettext pkgconfig
-
-DEPENDS += "boost libyui ncurses"
-
-BBCLASSEXTEND = "nativesdk"
-
-do_configure_prepend () {
- cd ${S}
- git checkout bootstrap.sh
- sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" bootstrap.sh
- ./bootstrap.sh
- 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/
- cd -
- sed -i "s#\${YPREFIX}#\${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${S}/CMakeLists.txt
- sed -i "s#/usr#${PKG_CONFIG_SYSROOT_DIR}${base_prefix}&#" ${PKG_CONFIG_SYSROOT_DIR}${libdir}/cmake/libyui/LibyuiLibraryDepends-release.cmake
-}
-
-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/0001-Fix-GCC-8-warning.patch b/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch
deleted file mode 100644
index c1ba42eeed..0000000000
--- a/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-GCC-8-warning.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1e6d40fec16a94d1a4bd40634405267200b7e969 Mon Sep 17 00:00:00 2001
-From: marxin <mliska@suse.cz>
-Date: Tue, 10 Apr 2018 15:21:40 +0200
-Subject: [PATCH] Fix GCC 8 warning:
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-/home/marxin/Programming/libyui/src/YDialog.cc: In static member function ‘static void YDialog::showText(const string&, bool)’:
-/home/marxin/Programming/libyui/src/YDialog.cc:690:26: error: catching polymorphic type ‘class YUIException’ by value [-Werror=catch-value=]
- catch ( YUIException exception )
- ^~~~~~~~~
-/home/marxin/Programming/libyui/src/YDialog.cc: In static member function ‘static bool YDialog::showRelNotesText()’:
-/home/marxin/Programming/libyui/src/YDialog.cc:814:26: error: catching polymorphic type ‘class YUIException’ by value [-Werror=catch-value=]
- catch ( YUIException exception )
- ^~~~~~~~~
----
-Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/122]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
- src/YDialog.cc | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/YDialog.cc b/src/YDialog.cc
-index 92e5031..8ecff90 100644
---- a/src/YDialog.cc
-+++ b/src/YDialog.cc
-@@ -687,7 +687,7 @@ YDialog::showText( const std::string & text, bool useRichText )
- dialog->waitForEvent();
- dialog->destroy();
- }
-- catch ( YUIException exception )
-+ catch ( YUIException &exception )
- {
- // Don't let the application die just because help couldn't be displayed.
-
-@@ -811,7 +811,7 @@ YDialog::showRelNotesText()
- }
- dialog->destroy();
- }
-- catch ( YUIException exception )
-+ catch ( YUIException &exception )
- {
- // Don't let the application die just because RN couldn't be displayed.
-
---
-2.17.0
-
diff --git a/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch b/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch
index 4269018192..d3463ca056 100644
--- a/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch
+++ b/meta-oe/recipes-graphics/libyui/libyui/0001-Fix-build-with-clang.patch
@@ -65,8 +65,6 @@ Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/123]
src/YWizard.h | 2 +-
47 files changed, 48 insertions(+), 48 deletions(-)
-diff --git a/src/YAlignment.h b/src/YAlignment.h
-index d716c77..7276944 100644
--- a/src/YAlignment.h
+++ b/src/YAlignment.h
@@ -28,7 +28,7 @@
@@ -78,8 +76,6 @@ index d716c77..7276944 100644
/**
* Implementation of all the alignment widgets:
-diff --git a/src/YBarGraph.h b/src/YBarGraph.h
-index 29f7f26..d7eaad2 100644
--- a/src/YBarGraph.h
+++ b/src/YBarGraph.h
@@ -29,7 +29,7 @@
@@ -91,8 +87,6 @@ index 29f7f26..d7eaad2 100644
class YBarGraphSegment;
/**
-diff --git a/src/YBusyIndicator.h b/src/YBusyIndicator.h
-index 9530fa5..75297d8 100644
--- a/src/YBusyIndicator.h
+++ b/src/YBusyIndicator.h
@@ -27,7 +27,7 @@
@@ -104,8 +98,6 @@ index 9530fa5..75297d8 100644
/**
-diff --git a/src/YButtonBox.h b/src/YButtonBox.h
-index 84f8dbb..ca51f57 100644
--- a/src/YButtonBox.h
+++ b/src/YButtonBox.h
@@ -30,7 +30,7 @@
@@ -126,8 +118,6 @@ index 84f8dbb..ca51f57 100644
protected:
/**
-diff --git a/src/YCheckBox.h b/src/YCheckBox.h
-index 793cc77..03f3faa 100644
--- a/src/YCheckBox.h
+++ b/src/YCheckBox.h
@@ -30,7 +30,7 @@
@@ -139,8 +129,6 @@ index 793cc77..03f3faa 100644
enum YCheckBoxState
{
-diff --git a/src/YCheckBoxFrame.h b/src/YCheckBoxFrame.h
-index 243f1a0..7017110 100644
--- a/src/YCheckBoxFrame.h
+++ b/src/YCheckBoxFrame.h
@@ -29,7 +29,7 @@
@@ -152,8 +140,6 @@ index 243f1a0..7017110 100644
/**
-diff --git a/src/YComboBox.h b/src/YComboBox.h
-index 416359a..ad0e550 100644
--- a/src/YComboBox.h
+++ b/src/YComboBox.h
@@ -27,7 +27,7 @@
@@ -165,8 +151,6 @@ index 416359a..ad0e550 100644
/**
-diff --git a/src/YCommandLine.h b/src/YCommandLine.h
-index 70cb4fe..f344a3b 100644
--- a/src/YCommandLine.h
+++ b/src/YCommandLine.h
@@ -28,7 +28,7 @@
@@ -178,8 +162,6 @@ index 70cb4fe..f344a3b 100644
/**
-diff --git a/src/YContextMenu.h b/src/YContextMenu.h
-index a4acb1c..1253002 100644
--- a/src/YContextMenu.h
+++ b/src/YContextMenu.h
@@ -29,7 +29,7 @@
@@ -191,8 +173,6 @@ index a4acb1c..1253002 100644
/**
-diff --git a/src/YDateField.h b/src/YDateField.h
-index e5a468d..6164fba 100644
--- a/src/YDateField.h
+++ b/src/YDateField.h
@@ -27,7 +27,7 @@
@@ -204,8 +184,6 @@ index e5a468d..6164fba 100644
/**
* Input field for entering a date.
-diff --git a/src/YDialog.h b/src/YDialog.h
-index 66c25c0..371209b 100644
--- a/src/YDialog.h
+++ b/src/YDialog.h
@@ -32,7 +32,7 @@
@@ -217,8 +195,6 @@ index 66c25c0..371209b 100644
class YEvent;
class YEventFilter;
-diff --git a/src/YDownloadProgress.h b/src/YDownloadProgress.h
-index c47ec4f..fe09a9d 100644
--- a/src/YDownloadProgress.h
+++ b/src/YDownloadProgress.h
@@ -28,7 +28,7 @@
@@ -230,8 +206,6 @@ index c47ec4f..fe09a9d 100644
/**
* DownloadProgress: A progress bar that monitors downloading a file by
-diff --git a/src/YDumbTab.h b/src/YDumbTab.h
-index aec17a3..f8fb250 100644
--- a/src/YDumbTab.h
+++ b/src/YDumbTab.h
@@ -27,7 +27,7 @@
@@ -243,8 +217,6 @@ index aec17a3..f8fb250 100644
/**
* DumbTab: A very simple tab widget that can display and switch between a
-diff --git a/src/YEmpty.h b/src/YEmpty.h
-index 9a3cb36..9b88fbc 100644
--- a/src/YEmpty.h
+++ b/src/YEmpty.h
@@ -29,7 +29,7 @@
@@ -256,8 +228,6 @@ index 9a3cb36..9b88fbc 100644
/**
* A widget with zero size, useful as a placeholder.
-diff --git a/src/YEventFilter.h b/src/YEventFilter.h
-index 3dc1803..74aa62d 100644
--- a/src/YEventFilter.h
+++ b/src/YEventFilter.h
@@ -32,7 +32,7 @@
@@ -269,8 +239,6 @@ index 3dc1803..74aa62d 100644
/**
-diff --git a/src/YFrame.h b/src/YFrame.h
-index 111e8ec..4f8c61e 100644
--- a/src/YFrame.h
+++ b/src/YFrame.h
@@ -29,7 +29,7 @@
@@ -282,8 +250,6 @@ index 111e8ec..4f8c61e 100644
/**
-diff --git a/src/YGraph.h b/src/YGraph.h
-index d90d1ae..287d800 100644
--- a/src/YGraph.h
+++ b/src/YGraph.h
@@ -37,7 +37,7 @@
@@ -295,8 +261,6 @@ index d90d1ae..287d800 100644
/**
* A graph with nodes and edges, rendered with Graphviz.
-diff --git a/src/YImage.h b/src/YImage.h
-index 17bea21..84eb674 100644
--- a/src/YImage.h
+++ b/src/YImage.h
@@ -29,7 +29,7 @@
@@ -308,8 +272,6 @@ index 17bea21..84eb674 100644
/**
* A picture, possibly animated, loaded from a file.
-diff --git a/src/YInputField.h b/src/YInputField.h
-index 70641ce..fa29b42 100644
--- a/src/YInputField.h
+++ b/src/YInputField.h
@@ -28,7 +28,7 @@
@@ -321,8 +283,6 @@ index 70641ce..fa29b42 100644
-diff --git a/src/YIntField.h b/src/YIntField.h
-index 9da0537..8ad2949 100644
--- a/src/YIntField.h
+++ b/src/YIntField.h
@@ -27,7 +27,7 @@
@@ -334,8 +294,6 @@ index 9da0537..8ad2949 100644
-diff --git a/src/YLabel.h b/src/YLabel.h
-index d2fff61..bf06d8b 100644
--- a/src/YLabel.h
+++ b/src/YLabel.h
@@ -30,7 +30,7 @@
@@ -347,8 +305,6 @@ index d2fff61..bf06d8b 100644
/**
* Implementation of the Label, Heading and OutputField widgets
-diff --git a/src/YLayoutBox.h b/src/YLayoutBox.h
-index e652a45..070eaff 100644
--- a/src/YLayoutBox.h
+++ b/src/YLayoutBox.h
@@ -29,7 +29,7 @@
@@ -360,8 +316,6 @@ index e652a45..070eaff 100644
/**
* A vertical or horizontal stacking of widgets, implementing HBox and VBox.
-diff --git a/src/YLogView.h b/src/YLogView.h
-index 53fb9ee..5b44229 100644
--- a/src/YLogView.h
+++ b/src/YLogView.h
@@ -27,7 +27,7 @@
@@ -373,21 +327,17 @@ index 53fb9ee..5b44229 100644
/**
-diff --git a/src/YMenuButton.h b/src/YMenuButton.h
-index 205e730..5df7efb 100644
--- a/src/YMenuButton.h
+++ b/src/YMenuButton.h
-@@ -29,7 +29,7 @@
+@@ -28,7 +28,7 @@
+ #include "YMenuWidget.h"
#include "YMenuItem.h"
- class YMenuItem;
-class YMenuButtonPrivate;
+struct YMenuButtonPrivate;
/**
-diff --git a/src/YMultiLineEdit.h b/src/YMultiLineEdit.h
-index c52a6ae..1f792f8 100644
--- a/src/YMultiLineEdit.h
+++ b/src/YMultiLineEdit.h
@@ -27,7 +27,7 @@
@@ -399,8 +349,6 @@ index c52a6ae..1f792f8 100644
/**
* A multi-line plain-text area
-diff --git a/src/YMultiProgressMeter.h b/src/YMultiProgressMeter.h
-index 57c758d..f6bec91 100644
--- a/src/YMultiProgressMeter.h
+++ b/src/YMultiProgressMeter.h
@@ -28,7 +28,7 @@
@@ -412,8 +360,6 @@ index 57c758d..f6bec91 100644
/**
-diff --git a/src/YMultiSelectionBox.h b/src/YMultiSelectionBox.h
-index bbe5a20..f3a2947 100644
--- a/src/YMultiSelectionBox.h
+++ b/src/YMultiSelectionBox.h
@@ -27,7 +27,7 @@
@@ -425,8 +371,6 @@ index bbe5a20..f3a2947 100644
/**
-diff --git a/src/YPartitionSplitter.h b/src/YPartitionSplitter.h
-index 2839bbc..9de1174 100644
--- a/src/YPartitionSplitter.h
+++ b/src/YPartitionSplitter.h
@@ -28,7 +28,7 @@
@@ -438,8 +382,6 @@ index 2839bbc..9de1174 100644
/**
-diff --git a/src/YProgressBar.h b/src/YProgressBar.h
-index 718352f..baab662 100644
--- a/src/YProgressBar.h
+++ b/src/YProgressBar.h
@@ -27,7 +27,7 @@
@@ -451,8 +393,6 @@ index 718352f..baab662 100644
/**
-diff --git a/src/YPushButton.h b/src/YPushButton.h
-index 5b65c98..e288252 100644
--- a/src/YPushButton.h
+++ b/src/YPushButton.h
@@ -27,7 +27,7 @@
@@ -464,8 +404,6 @@ index 5b65c98..e288252 100644
-diff --git a/src/YRadioButton.h b/src/YRadioButton.h
-index 9dc62de..5a7c0dd 100644
--- a/src/YRadioButton.h
+++ b/src/YRadioButton.h
@@ -28,7 +28,7 @@
@@ -477,8 +415,6 @@ index 9dc62de..5a7c0dd 100644
/**
-diff --git a/src/YRadioButtonGroup.h b/src/YRadioButtonGroup.h
-index 063a52e..671a257 100644
--- a/src/YRadioButtonGroup.h
+++ b/src/YRadioButtonGroup.h
@@ -28,7 +28,7 @@
@@ -490,11 +426,9 @@ index 063a52e..671a257 100644
typedef std::list<YRadioButton *> YRadioButtonList;
typedef YRadioButtonList::iterator YRadioButtonListIterator;
-diff --git a/src/YRichText.h b/src/YRichText.h
-index 149bfb3..86b3f80 100644
--- a/src/YRichText.h
+++ b/src/YRichText.h
-@@ -30,7 +30,7 @@
+@@ -31,7 +31,7 @@
#include "ImplPtr.h"
@@ -503,8 +437,6 @@ index 149bfb3..86b3f80 100644
/**
-diff --git a/src/YSelectionBox.h b/src/YSelectionBox.h
-index 7fc4fb8..9bbf9f3 100644
--- a/src/YSelectionBox.h
+++ b/src/YSelectionBox.h
@@ -27,7 +27,7 @@
@@ -516,8 +448,6 @@ index 7fc4fb8..9bbf9f3 100644
/**
-diff --git a/src/YSelectionWidget.h b/src/YSelectionWidget.h
-index abbdfb4..cf05afd 100644
--- a/src/YSelectionWidget.h
+++ b/src/YSelectionWidget.h
@@ -29,7 +29,7 @@
@@ -529,8 +459,6 @@ index abbdfb4..cf05afd 100644
/**
* Base class for various kinds of multi-value widgets.
-diff --git a/src/YSimpleInputField.h b/src/YSimpleInputField.h
-index 6d926d4..b93fe6b 100644
--- a/src/YSimpleInputField.h
+++ b/src/YSimpleInputField.h
@@ -27,7 +27,7 @@
@@ -542,8 +470,6 @@ index 6d926d4..b93fe6b 100644
/**
-diff --git a/src/YSlider.h b/src/YSlider.h
-index d29f6b8..4bcd7d3 100644
--- a/src/YSlider.h
+++ b/src/YSlider.h
@@ -27,7 +27,7 @@
@@ -555,8 +481,6 @@ index d29f6b8..4bcd7d3 100644
/**
-diff --git a/src/YSpacing.h b/src/YSpacing.h
-index e8aafd3..066cd68 100644
--- a/src/YSpacing.h
+++ b/src/YSpacing.h
@@ -28,7 +28,7 @@
@@ -568,8 +492,6 @@ index e8aafd3..066cd68 100644
/**
-diff --git a/src/YSquash.h b/src/YSquash.h
-index 4bd0fb6..3804cc4 100644
--- a/src/YSquash.h
+++ b/src/YSquash.h
@@ -29,7 +29,7 @@
@@ -581,8 +503,6 @@ index 4bd0fb6..3804cc4 100644
/**
* HSquash, VSquash HVSquash: reduce child to its preferred size.
-diff --git a/src/YTable.h b/src/YTable.h
-index 6694f10..469b8ca 100644
--- a/src/YTable.h
+++ b/src/YTable.h
@@ -30,7 +30,7 @@
@@ -594,8 +514,6 @@ index 6694f10..469b8ca 100644
-diff --git a/src/YTableHeader.h b/src/YTableHeader.h
-index 70166c2..4ae99b4 100644
--- a/src/YTableHeader.h
+++ b/src/YTableHeader.h
@@ -31,7 +31,7 @@
@@ -607,8 +525,6 @@ index 70166c2..4ae99b4 100644
/**
* Helper class for YTable for table column properties:
-diff --git a/src/YTimeField.h b/src/YTimeField.h
-index ab2f9a3..f3a7b94 100644
--- a/src/YTimeField.h
+++ b/src/YTimeField.h
@@ -27,7 +27,7 @@
@@ -620,11 +536,9 @@ index ab2f9a3..f3a7b94 100644
/**
-diff --git a/src/YTimezoneSelector.cc b/src/YTimezoneSelector.cc
-index 9259b64..e2f9b6f 100644
--- a/src/YTimezoneSelector.cc
+++ b/src/YTimezoneSelector.cc
-@@ -32,7 +32,7 @@
+@@ -34,7 +34,7 @@ using std::string;
class YTimezoneSelectorPrivate
{
@@ -633,8 +547,6 @@ index 9259b64..e2f9b6f 100644
};
-diff --git a/src/YTree.h b/src/YTree.h
-index 14fa279..70e1364 100644
--- a/src/YTree.h
+++ b/src/YTree.h
@@ -28,7 +28,7 @@
@@ -646,11 +558,9 @@ index 14fa279..70e1364 100644
/**
-diff --git a/src/YUILog.h b/src/YUILog.h
-index 0890bc5..4a927a7 100644
--- a/src/YUILog.h
+++ b/src/YUILog.h
-@@ -64,7 +64,7 @@
+@@ -66,7 +66,7 @@ using std::endl;
@@ -659,11 +569,9 @@ index 0890bc5..4a927a7 100644
enum YUILogLevel_t
{
-diff --git a/src/YWidget.h b/src/YWidget.h
-index 5b285d0..636a41b 100644
--- a/src/YWidget.h
+++ b/src/YWidget.h
-@@ -45,7 +45,7 @@ typedef YChildrenManager<YWidget> YWidgetChildrenManager;
+@@ -45,7 +45,7 @@ typedef YChildrenManager<YWidget> YWidge
typedef YSingleChildManager<YWidget> YSingleWidgetChildManager;
typedef YChildrenRejector<YWidget> YWidgetChildrenRejector;
@@ -672,8 +580,6 @@ index 5b285d0..636a41b 100644
/**
-diff --git a/src/YWizard.h b/src/YWizard.h
-index 7671cbf..975b597 100644
--- a/src/YWizard.h
+++ b/src/YWizard.h
@@ -28,7 +28,7 @@
diff --git a/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch b/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch
new file mode 100644
index 0000000000..fc7f819d32
--- /dev/null
+++ b/meta-oe/recipes-graphics/libyui/libyui/0001-Use-relative-install-paths-for-CMake.patch
@@ -0,0 +1,130 @@
+From d24c2516ae25d0ee180c1020e52114ea32230585 Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@siemens.com>
+Date: Mon, 29 Oct 2018 18:03:43 +0100
+Subject: [PATCH] Use relative install paths for CMake
+
+Files are installed via a special _PREFIX variant of the INSTALL_???_DIR
+variable which is an absolute path.
+
+This not only is redundant if CMAKE_INTALL_PREFIX is set but it even causes
+the resulting Config.cmake to be non relocatable. This means it contains absolute
+paths to the build host. This is a problem for cross compilation in Yocto.
+
+This change gets rid of the absolute path and removes the no longer needed
+_PREFIX variants.
+
+Upstream-Status: Submitted [https://github.com/libyui/libyui/pull/140]
+Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
+---
+ legacy-buildtools/LibyuiCommon.cmake | 35 ++++++++++++++---------------------
+ 1 file changed, 14 insertions(+), 21 deletions(-)
+
+diff --git a/legacy-buildtools/LibyuiCommon.cmake b/legacy-buildtools/LibyuiCommon.cmake
+index e6fbefd..5e2fc0d 100644
+--- a/legacy-buildtools/LibyuiCommon.cmake
++++ b/legacy-buildtools/LibyuiCommon.cmake
+@@ -258,13 +258,6 @@ MACRO( SET_ENVIRONMENT ) # setup the environment vars
+
+ SET( INSTALL_DOC_DIR "${DOC_DIR}" )
+
+- FOREACH( p "DOC" LIB INCLUDE CMAKE PKGCONFIG BUILDTOOLS )
+- SET( var "INSTALL_${p}_DIR" )
+- IF( NOT IS_ABSOLUTE "${${var}}" )
+- SET( ${var}_PREFIX "${YPREFIX}/${${var}}" )
+- ENDIF( NOT IS_ABSOLUTE "${${var}}" )
+- ENDFOREACH()
+-
+ ENDMACRO( SET_ENVIRONMENT )
+
+ MACRO( SET_SONAME )
+@@ -359,7 +352,7 @@ MACRO( SET_AUTODOCS ) # looks for doxygen, dot and latex and setup autodocs acc
+ IF( INSTALL_DOCS OR DOCS_ONLY )
+ INSTALL(
+ FILES "${CMAKE_BINARY_DIR}/doc/latex/refman.pdf"
+- DESTINATION "${INSTALL_DOC_DIR_PREFIX}"
++ DESTINATION "${INSTALL_DOC_DIR}"
+ )
+ ENDIF( INSTALL_DOCS OR DOCS_ONLY )
+
+@@ -379,7 +372,7 @@ MACRO( SET_AUTODOCS ) # looks for doxygen, dot and latex and setup autodocs acc
+ FOREACH( p css gif html jpg js png tag )
+ INSTALL(
+ DIRECTORY "${CMAKE_BINARY_DIR}/doc/html"
+- DESTINATION "${INSTALL_DOC_DIR_PREFIX}"
++ DESTINATION "${INSTALL_DOC_DIR}"
+ FILES_MATCHING PATTERN "*.${p}"
+ )
+ ENDFOREACH()
+@@ -638,32 +631,32 @@ MACRO( SET_INSTALL_TARGET )
+
+ INSTALL(
+ EXPORT ${PROJECTNAME_UC}LibraryDepends
+- DESTINATION "${INSTALL_CMAKE_DIR_PREFIX}"
++ DESTINATION "${INSTALL_CMAKE_DIR}"
+ COMPONENT dev
+ )
+
+ FOREACH( p Config.cmake ConfigVersion.cmake )
+ INSTALL(
+ FILES "${CMAKE_BINARY_DIR}/${PROJECTNAME_UC}${p}"
+- DESTINATION "${INSTALL_CMAKE_DIR_PREFIX}"
++ DESTINATION "${INSTALL_CMAKE_DIR}"
+ )
+ ENDFOREACH( p Config.cmake ConfigVersion.cmake )
+
+ INSTALL(
+ FILES "${CMAKE_BINARY_DIR}/${PROJECTNAME}.pc"
+- DESTINATION "${INSTALL_PKGCONFIG_DIR_PREFIX}"
++ DESTINATION "${INSTALL_PKGCONFIG_DIR}"
+ )
+
+ IF( NOT PLUGINNAME AND NOT EXTENSIONNAME )
+ INSTALL(
+ DIRECTORY "${BUILDTOOLS_DIR}"
+- DESTINATION "${INSTALL_BUILDTOOLS_DIR_PREFIX}"
++ DESTINATION "${INSTALL_BUILDTOOLS_DIR}"
+ )
+ ENDIF( NOT PLUGINNAME AND NOT EXTENSIONNAME )
+
+ INSTALL(
+ FILES ${BUILDTOOLS_LIST}
+- DESTINATION "${INSTALL_BUILDTOOLS_DIR_PREFIX}"
++ DESTINATION "${INSTALL_BUILDTOOLS_DIR}"
+ )
+
+ ENDMACRO( SET_INSTALL_TARGET )
+@@ -724,9 +717,9 @@ MACRO( PROCESS_SOURCES )
+ INSTALL(
+ TARGETS ${TARGETLIB}
+ EXPORT ${PROJECTNAME_UC}LibraryDepends
+- LIBRARY DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- ARCHIVE DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR_PREFIX}"
++ LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
++ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
++ PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}"
+ COMPONENT dev
+ )
+
+@@ -746,9 +739,9 @@ MACRO( PROCESS_SOURCES )
+ INSTALL(
+ TARGETS ${TARGETLIB}_static
+ EXPORT ${PROJECTNAME_UC}LibraryDepends
+- LIBRARY DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- ARCHIVE DESTINATION "${INSTALL_LIB_DIR_PREFIX}"
+- PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR_PREFIX}"
++ LIBRARY DESTINATION "${INSTALL_LIB_DIR}"
++ ARCHIVE DESTINATION "${INSTALL_LIB_DIR}"
++ PUBLIC_HEADER DESTINATION "${INSTALL_INCLUDE_DIR}"
+ COMPONENT dev
+ )
+
+@@ -776,7 +769,7 @@ MACRO( PROCESS_EXAMPLES )
+
+ INSTALL(
+ FILES ${EXAMPLES_LIST}
+- DESTINATION "${INSTALL_DOC_DIR_PREFIX}/examples"
++ DESTINATION "${INSTALL_DOC_DIR}/examples"
+ )
+
+ ENDMACRO( PROCESS_EXAMPLES )
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/libyui/libyui_git.bb b/meta-oe/recipes-graphics/libyui/libyui_git.bb
deleted file mode 100644
index 42945288c4..0000000000
--- a/meta-oe/recipes-graphics/libyui/libyui_git.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Libyui is a widget abstraction library providing Qt, GTK and ncurses frontends."
-LICENSE = "LGPLv3"
-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 \
- file://0001-Fix-GCC-8-warning.patch \
- file://0001-Fix-build-with-clang.patch \
- "
-
-PV = "3.3.3+git"
-SRCREV = "2b634cb7821e2e79dd4b7a73caf8e67c50189376"
-
-S = "${WORKDIR}/git"
-
-inherit cmake gettext pkgconfig
-
-DEPENDS += "boost"
-
-BBCLASSEXTEND = "native nativesdk"
-
-do_configure_prepend () {
- cd ${S}
- ./bootstrap.sh
- cd -
-}
-
-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/0001-wayland-Switch-to-custom-timer-tick.patch b/meta-oe/recipes-graphics/lvgl/dialog-lvgl/0001-wayland-Switch-to-custom-timer-tick.patch
new file mode 100644
index 0000000000..5149002ff5
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/dialog-lvgl/0001-wayland-Switch-to-custom-timer-tick.patch
@@ -0,0 +1,72 @@
+From 1d92e1854c19c06c553243d29170bb4d1a9e3863 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 9 May 2023 02:57:30 +0200
+Subject: [PATCH 1/2] wayland: Switch to custom timer tick
+
+The OE LVGL is configured to obtain timer tick from system timer
+instead of using ad-hoc mechanisms to emulate timer tick using
+threads or such. Use system timer to provide the tick.
+
+The tick handling implementation comes from:
+https://github.com/lvgl/lv_port_linux_frame_buffer.git
+as of commit adf2c4490e17a1b9ec1902cc412a24b3b8235c8e
+
+Upstream-Status: Inappropriate [Upstream repo is archived]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ src/drivers/wayland.c | 24 ++++++++++++++++--------
+ 1 file changed, 16 insertions(+), 8 deletions(-)
+
+diff --git a/src/drivers/wayland.c b/src/drivers/wayland.c
+index 633dc18..bcebf4d 100644
+--- a/src/drivers/wayland.c
++++ b/src/drivers/wayland.c
+@@ -6,6 +6,7 @@
+ #if defined(USE_WAYLAND) && USE_WAYLAND
+
+ #include <pthread.h>
++#include <sys/time.h>
+ #include <unistd.h>
+
+ #include <lv_drivers/wayland/wayland.h>
+@@ -18,13 +19,22 @@
+ #define WAYLAND_VER_RES 320
+ #endif
+
+-static void * tick_thread(void * data)
++uint32_t custom_tick_get(void)
+ {
+- (void) data;
+- while(true) {
+- usleep(5 * 1000);
+- lv_tick_inc(5);
+- }
++ static uint64_t start_ms = 0;
++ if(start_ms == 0) {
++ struct timeval tv_start;
++ gettimeofday(&tv_start, NULL);
++ start_ms = (tv_start.tv_sec * 1000000 + tv_start.tv_usec) / 1000;
++ }
++
++ struct timeval tv_now;
++ gettimeofday(&tv_now, NULL);
++ uint64_t now_ms;
++ now_ms = (tv_now.tv_sec * 1000000 + tv_now.tv_usec) / 1000;
++
++ uint32_t time_ms = now_ms - start_ms;
++ return time_ms;
+ }
+
+
+@@ -47,8 +57,6 @@ void hal_init(void)
+
+ lv_group_t * g = lv_group_create();
+ lv_group_set_default(g);
+- static pthread_t hal_thread;
+- pthread_create(&hal_thread, NULL, tick_thread, NULL);
+ }
+
+ #endif
+--
+2.39.2
+
diff --git a/meta-oe/recipes-graphics/lvgl/dialog-lvgl/0002-wayland-Fix-callback-data-type.patch b/meta-oe/recipes-graphics/lvgl/dialog-lvgl/0002-wayland-Fix-callback-data-type.patch
new file mode 100644
index 0000000000..8919a1a2ad
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/dialog-lvgl/0002-wayland-Fix-callback-data-type.patch
@@ -0,0 +1,30 @@
+From b7af695d79820adf53e7d612120bda12ed2886e2 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 9 May 2023 02:57:38 +0200
+Subject: [PATCH 2/2] wayland: Fix callback data type
+
+The LVGL 8.3.y changed the callback data type, update it accordingly.
+
+Upstream-Status: Inappropriate [Upstream repo is archived]
+Signed-off-by: Marek Vasut <marex@denx.de>
+---
+ src/drivers/wayland.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/drivers/wayland.c b/src/drivers/wayland.c
+index bcebf4d..cfefa88 100644
+--- a/src/drivers/wayland.c
++++ b/src/drivers/wayland.c
+@@ -37,8 +37,7 @@ uint32_t custom_tick_get(void)
+ return time_ms;
+ }
+
+-
+-static lv_wayland_display_close_f_t close_cb()
++static bool close_cb(lv_disp_t * disp)
+ {
+ }
+
+--
+2.39.2
+
diff --git a/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb b/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb
new file mode 100644
index 0000000000..9e820d0dbf
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/dialog-lvgl_git.bb
@@ -0,0 +1,32 @@
+# SPDX-FileCopyrightText: Huawei Inc.
+# SPDX-License-Identifier: MIT
+
+SRC_URI = "git://git.ostc-eu.org/rzr/dialog-lvgl;destsuffix=${S};protocol=https;nobranch=1 \
+ file://0001-wayland-Switch-to-custom-timer-tick.patch \
+ file://0002-wayland-Fix-callback-data-type.patch \
+ "
+SRCREV = "cdf8d38acca87e871c3a488fd07f1e4779590f8e"
+
+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/lv-drivers.inc b/meta-oe/recipes-graphics/lvgl/lv-drivers.inc
new file mode 100644
index 0000000000..dcf1ad14ba
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lv-drivers.inc
@@ -0,0 +1,46 @@
+PACKAGECONFIG[drm] = ",,libdrm"
+PACKAGECONFIG[fbdev] = ",,"
+PACKAGECONFIG[sdl] = ",,virtual/libsdl2"
+PACKAGECONFIG[wayland] = ",,libxkbcommon wayland"
+
+LVGL_CONFIG_USE_DRM = "${@bb.utils.contains('PACKAGECONFIG', 'drm', '1', '0', d)}"
+LVGL_CONFIG_DRM_CARD ?= "/dev/dri/card0"
+
+LVGL_CONFIG_USE_EVDEV = "${@bb.utils.contains_any('PACKAGECONFIG', 'drm fbdev', '1', '0', d)}"
+LVGL_CONFIG_EVDEV_INPUT ?= "/dev/input/touchscreen"
+
+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_USE_WAYLAND = "${@bb.utils.contains('PACKAGECONFIG', 'wayland', '1', '0', d)}"
+LVGL_CONFIG_WAYLAND_HOR_RES ?= "480"
+LVGL_CONFIG_WAYLAND_VER_RES ?= "320"
+
+EXTRA_OECMAKE += "-Dinstall:BOOL=ON -DLIB_INSTALL_DIR=${baselib}"
+
+do_configure:append() {
+ # If there is a configuration template, start from that
+ [ -r "${S}/lv_drv_conf_template.h" ] && cp -Lv "${S}/lv_drv_conf_template.h" "${S}/lv_drv_conf.h"
+
+ # Configure the software using sed
+ sed -e "s|#if 0 .*Set it to \"1\" to enable the content.*|#if 1 // Enabled by ${PN}|g" \
+ \
+ -e "s|\(^# define USE_DRM \).*|# define USE_DRM ${LVGL_CONFIG_USE_DRM}|g" \
+ -e "s|\(^# define DRM_CARD \).*|# define DRM_CARD \"${LVGL_CONFIG_DRM_CARD}\"|g" \
+ \
+ -e "s|\(^# define USE_EVDEV \).*|# define USE_EVDEV ${LVGL_CONFIG_USE_EVDEV}|g" \
+ -e "s|\(^# define EVDEV_NAME \).*|# define EVDEV_NAME \"${LVGL_CONFIG_EVDEV_INPUT}\"|g" \
+ \
+ -e "s|\(^# define USE_FBDEV \).*|# define USE_FBDEV ${LVGL_CONFIG_USE_FBDEV}|g" \
+ \
+ -e "s|\(^# define USE_SDL \).*|# define USE_SDL ${LVGL_CONFIG_USE_SDL}|g" \
+ -e "s|\(^# define USE_SDL_GPU \).*|# define USE_SDL_GPU 1|g" \
+ -e "s|\(^# define SDL_DOUBLE_BUFFERED \).*|# define SDL_DOUBLE_BUFFERED 1|g" \
+ \
+ -e "s|\(^# define USE_WAYLAND \).*|# define USE_WAYLAND ${LVGL_CONFIG_USE_WAYLAND}|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" \
+ \
+ -i "${S}/lv_drv_conf.h"
+}
diff --git a/meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb b/meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb
new file mode 100644
index 0000000000..e2c5a342a1
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lv-drivers_8.3.0.bb
@@ -0,0 +1,28 @@
+# 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"
+
+SRC_URI = "git://github.com/lvgl/lv_drivers;protocol=https;branch=release/v8.3"
+SRCREV = "71830257710f430b6d8d1c324f89f2eab52488f1"
+
+DEPENDS = "lvgl"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland fbdev', d)}"
+require lv-drivers.inc
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+TARGET_CFLAGS += "-DLV_CONF_INCLUDE_SIMPLE=1"
+TARGET_CFLAGS += "-I${STAGING_INCDIR}/lvgl"
+
+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
new file mode 100644
index 0000000000..22b4826403
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lv-lib-png_8.0.2.bb
@@ -0,0 +1,31 @@
+# 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;;protocol=https;nobranch=1"
+SRCREV = "bf1531afe07c9f861107559e29ab8a2d83e4715a"
+
+S = "${WORKDIR}/git"
+
+# 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${STAGING_INCDIR}/lvgl"
+
+FILES:${PN}-dev = "\
+ ${includedir}/lvgl/lv_lib_png/ \
+ "
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
new file mode 100644
index 0000000000..32f833a026
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lvgl-demo-fb_8.3.0.bb
@@ -0,0 +1,46 @@
+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://lv_drivers/LICENSE;md5=d6fc0df890c5270ef045981b516bb8f2 \
+ file://lvgl/LICENCE.txt;md5=bf1198c89ae87f043108cea62460b03a"
+
+SRC_URI = "gitsm://github.com/lvgl/lv_port_linux_frame_buffer.git;branch=master;protocol=https"
+SRCREV = "adf2c4490e17a1b9ec1902cc412a24b3b8235c8e"
+
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+PACKAGECONFIG ??= "drm"
+require lv-drivers.inc
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+TARGET_CFLAGS += "-I${STAGING_INCDIR}/libdrm"
+
+do_configure:prepend() {
+ if [ "${LVGL_CONFIG_USE_DRM}" -eq 1 ] ; then
+ # Add libdrm build dependency
+ sed -i '/^target_link_libraries/ s@lvgl::drivers@& drm@' "${S}/CMakeLists.txt"
+ # Switch from fbdev to drm usage
+ sed -i 's@fbdev@drm@g' "${S}/main.c"
+ # Pull resolution from DRM instead of hardcoding it
+ sed -i '/disp_drv.hor_res/ d' "${S}/main.c"
+ sed -i '/disp_drv.ver_res/ s@disp_drv.ver_res.*@drm_get_sizes(\&disp_drv.hor_res, \&disp_drv.ver_res, NULL);@' "${S}/main.c"
+ fi
+
+ if [ "${LVGL_CONFIG_USE_SDL}" -eq 1 ] ; then
+ # Add libsdl build dependency
+ sed -i '/^target_link_libraries/ s@lvgl::drivers@& SDL2@' "${S}/CMakeLists.txt"
+ # Switch from fbdev to sdl usage
+ sed -i 's@fbdev_flush@sdl_display_flush@g' "${S}/main.c"
+ sed -i 's@lv_drivers/display/fbdev.h@lv_drivers/sdl/sdl.h@g' "${S}/main.c"
+ sed -i 's@fbdev@sdl@g' "${S}/main.c"
+ fi
+}
+
+do_install:append() {
+ install -d ${D}${bindir}
+ install -m 0755 ${B}/lvgl_fb ${D}${bindir}/
+}
diff --git a/meta-oe/recipes-graphics/lvgl/lvgl_8.3.8.bb b/meta-oe/recipes-graphics/lvgl/lvgl_8.3.8.bb
new file mode 100644
index 0000000000..6103a02948
--- /dev/null
+++ b/meta-oe/recipes-graphics/lvgl/lvgl_8.3.8.bb
@@ -0,0 +1,42 @@
+# 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=release/v8.3"
+SRCREV = "e6d7be00bfa5e1df450c7b713003a9effa03c614"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DLIB_INSTALL_DIR=${baselib}"
+S = "${WORKDIR}/git"
+
+LVGL_CONFIG_LV_MEM_CUSTOM ?= "0"
+LVGL_CONFIG_LV_COLOR_DEPTH ?= "32"
+
+# 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_COLOR_DEPTH \).*|\1 ${LVGL_CONFIG_LV_COLOR_DEPTH}|g" \
+ \
+ -e "s|\(#define LV_MEM_CUSTOM .*\)0|\1${LVGL_CONFIG_LV_MEM_CUSTOM}|g" \
+ \
+ -e "s|\(#define LV_TICK_CUSTOM \).*|\1 1|g" \
+ -e "s|\(#define LV_TICK_CUSTOM_INCLUDE \).*|\1 <stdint.h>|g" \
+ -e "s|\(#define LV_TICK_CUSTOM_SYS_TIME_EXPR \).*|extern uint32_t custom_tick_get(void);\n\1 (custom_tick_get())|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/lxdm/lxdm/0001-Initialize-msghdr-struct-in-a-portable-way.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0001-Initialize-msghdr-struct-in-a-portable-way.patch
new file mode 100644
index 0000000000..d4779505d8
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0001-Initialize-msghdr-struct-in-a-portable-way.patch
@@ -0,0 +1,40 @@
+From 7c370576b4fb7c7d3b6dbf33125136a4ae70a330 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 21:52:16 -0700
+Subject: [PATCH] Initialize msghdr struct in a portable way
+
+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://sourceforge.net/p/lxdm/code/merge-requests/4/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lxcom.c | 9 +++++++--
+ 2 files changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/src/lxcom.c b/src/lxcom.c
+index 397d1b5..517c775 100644
+--- a/src/lxcom.c
++++ b/src/lxcom.c
+@@ -117,10 +117,15 @@ static gboolean lxcom_dispatch (GSource *source,GSourceFunc callback,gpointer us
+ char ctrl[/*CMSG_SPACE(sizeof(LXDM_CRED))*/1024];
+ struct sockaddr_un peer;
+ struct iovec v={buf,sizeof(buf)};
+- struct msghdr h={&peer,sizeof(peer),&v,1,ctrl,sizeof(ctrl),0};
++ struct msghdr h={0};
+ struct cmsghdr *cmptr;
+ int ret;
+-
++ h.msg_name = &peer;
++ h.msg_namelen = sizeof(peer);
++ h.msg_iov = &v;
++ h.msg_iovlen = 1;
++ h.msg_control = ctrl;
++ h.msg_controllen = sizeof(ctrl);
+ while(1)
+ {
+ peer.sun_family=0;
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch
deleted file mode 100644
index f9fd4970fb..0000000000
--- a/meta-oe/recipes-graphics/lxdm/lxdm/0001-check-for-libexecinfo-providing-backtrace-APIs.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 1d2425febf2020e38db70188df582acc9f37b136 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 30 Mar 2017 13:01:33 -0700
-Subject: [PATCH] check for libexecinfo providing backtrace() APIs
-
-on musl it depends on external library to provide backtrace APIs
-unlike glibc where it is bundled in
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure.ac | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index aa3291c..b15f65d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -15,6 +15,7 @@ AM_PROG_CC_C_O
-
- # Checks for libraries.
- AC_CHECK_LIB([crypt], [crypt])
-+AC_CHECK_LIB([execinfo], [backtrace])
-
- # Check for PAM support
- AC_ARG_WITH(pam, AC_HELP_STRING([--with-pam],[Use PAM for authentication]),
-@@ -33,6 +34,7 @@ AM_CONDITIONAL(HAVE_PAM, [test -n "$USE_PAM" -a "x$USE_PAM" != xno ])
- # Checks for header files.
- AC_PATH_X
- AC_CHECK_HEADERS([shadow.h stdlib.h string.h unistd.h utmpx.h])
-+AC_CHECK_HEADERS([execinfo.h])
-
- # Checks for typedefs, structures, and compiler characteristics.
- AC_TYPE_PID_T
---
-2.12.1
-
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0001-greeter-set-visible-when-switch-to-input-user.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0001-greeter-set-visible-when-switch-to-input-user.patch
new file mode 100644
index 0000000000..e01dc7fa7c
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0001-greeter-set-visible-when-switch-to-input-user.patch
@@ -0,0 +1,33 @@
+From f6b8e141e00c4837239f5b69af4e7bee1204abba Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Thu, 17 Dec 2020 10:18:58 +0800
+Subject: [PATCH 1/8] greeter: set visible when switch to input user
+
+It switches back to input user entry if press Esc key when input the
+password. At this time, the user name input is shown as '*' rather than
+plain text. Set the visibility to fix this issue. And clean the text as
+well.
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/greeter.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/greeter.c b/src/greeter.c
+index 2c6e5be..f100c72 100644
+--- a/src/greeter.c
++++ b/src/greeter.c
+@@ -139,6 +139,8 @@ static void switch_to_input_user(void)
+ pass=NULL;
+ }
+ gtk_label_set_text( GTK_LABEL(prompt), _("User:"));
++ gtk_entry_set_text(GTK_ENTRY(login_entry), "");
++ gtk_entry_set_visibility(GTK_ENTRY(login_entry), TRUE);
+ gtk_widget_show(prompt);
+ if(user_list)
+ {
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch
new file mode 100644
index 0000000000..7ec073b08a
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch
@@ -0,0 +1,38 @@
+From f662906c52f264e4c139e402932103f47269aa1b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 24 Jan 2022 17:16:15 +0800
+Subject: [PATCH] systemd/lxdm.service: remove plymouth-quit conflicts
+
+When use plymouth[1] with lxdm, the plymouth boot splash screen
+will hang there as lxdm.service conflicts with plymouth-quit.service
+and plymouth-quit will fail to start if plymouth-quit.service and
+lxdm.service start at the same time and it will result in the boot
+screen hang forever.
+
+Consider there is also After setting for these two services, so
+remove the conflicts setting to make the service start as expected.
+
+[1] https://gitlab.freedesktop.org/plymouth/plymouth/-/tree/main
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/3]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ systemd/lxdm.service | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/systemd/lxdm.service b/systemd/lxdm.service
+index bf4a0a8..90d8cdb 100644
+--- a/systemd/lxdm.service
++++ b/systemd/lxdm.service
+@@ -1,6 +1,6 @@
+ [Unit]
+ Description=LXDE Display Manager
+-Conflicts=getty@tty1.service plymouth-quit.service
++Conflicts=getty@tty1.service
+ After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service
+
+ [Service]
+--
+2.17.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0002-greeter-gdk.c-fix-typo.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0002-greeter-gdk.c-fix-typo.patch
new file mode 100644
index 0000000000..da02129756
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0002-greeter-gdk.c-fix-typo.patch
@@ -0,0 +1,28 @@
+From 3a3c5c644c9790cb3f88f3ce3757c2803cff90c5 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Thu, 17 Dec 2020 14:32:40 +0800
+Subject: [PATCH 2/8] greeter-gdk.c: fix typo
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/greeter-gdk.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/greeter-gdk.c b/src/greeter-gdk.c
+index 1b27d2e..5aa3e7f 100644
+--- a/src/greeter-gdk.c
++++ b/src/greeter-gdk.c
+@@ -299,7 +299,7 @@ void ui_prepare(void)
+ attr.wclass = GDK_INPUT_OUTPUT;
+ win = gdk_window_new(root, &attr, mask);
+ gdk_window_set_decorations(win,0);
+- gdk_window_set_title(win,"lxdm-greter-gdk");
++ gdk_window_set_title(win,"lxdm-greeter-gdk");
+
+ scr=gdk_screen_get_default();
+ g_signal_connect(scr, "size-changed", G_CALLBACK(on_screen_size_changed), win);
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..31b12f8078
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-for-libexecinfo-providing-backtrace-APIs.patch
@@ -0,0 +1,38 @@
+From 1d2425febf2020e38db70188df582acc9f37b136 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 30 Mar 2017 13:01:33 -0700
+Subject: [PATCH] check for libexecinfo providing backtrace() APIs
+
+on musl it depends on external library to provide backtrace APIs
+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/configure.ac b/configure.ac
+index aa3291c..b15f65d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -15,6 +15,7 @@ AM_PROG_CC_C_O
+
+ # Checks for libraries.
+ AC_CHECK_LIB([crypt], [crypt])
++AC_CHECK_LIB([execinfo], [backtrace])
+
+ # Check for PAM support
+ AC_ARG_WITH(pam, AC_HELP_STRING([--with-pam],[Use PAM for authentication]),
+@@ -33,6 +34,7 @@ AM_CONDITIONAL(HAVE_PAM, [test -n "$USE_PAM" -a "x$USE_PAM" != xno ])
+ # Checks for header files.
+ AC_PATH_X
+ AC_CHECK_HEADERS([shadow.h stdlib.h string.h unistd.h utmpx.h])
++AC_CHECK_HEADERS([execinfo.h])
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_TYPE_PID_T
+--
+2.12.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-whether-password-expired-with-pam.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-whether-password-expired-with-pam.patch
new file mode 100644
index 0000000000..c64854373d
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0003-check-whether-password-expired-with-pam.patch
@@ -0,0 +1,46 @@
+From 497e0fc7010969759c8247f7013a89589c44234a Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Thu, 17 Dec 2020 18:12:29 +0800
+Subject: [PATCH 3/8] check whether password expired with pam
+
+Introduce a new enum AuthResult type AUTH_PASSWD_EXPIRE. When user's
+password is expired, return it. Only work with pam.
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/lxdm.h | 1 +
+ src/pam.c | 4 ++++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/src/lxdm.h b/src/lxdm.h
+index 568573f..1c2f837 100644
+--- a/src/lxdm.h
++++ b/src/lxdm.h
+@@ -41,6 +41,7 @@ enum AuthResult
+ AUTH_SUCCESS,
+ AUTH_BAD_USER,
+ AUTH_FAIL,
++ AUTH_PASSWD_EXPIRE,
+ AUTH_PRIV,
+ AUTH_ERROR
+ };
+diff --git a/src/pam.c b/src/pam.c
+index 43bd687..16a36f0 100644
+--- a/src/pam.c
++++ b/src/pam.c
+@@ -257,6 +257,10 @@ int lxdm_auth_user_authenticate(LXDM_AUTH *a,const char *user,const char *pass,i
+ return AUTH_FAIL;
+ }
+ ret=pam_acct_mgmt(a->handle,PAM_SILENT);
++ if (ret == PAM_NEW_AUTHTOK_REQD) {
++ g_debug("user %s account has expired\n", user);
++ return AUTH_PASSWD_EXPIRE;
++ }
+ if(ret!=PAM_SUCCESS)
+ {
+ g_debug("user %s acct mgmt fail with %d\n",user,ret);
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..d232f6913e
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0004-fix-css-under-gtk-3.20.patch
@@ -0,0 +1,25 @@
+From 72812894cfd9454d70e4b0753531e46580416771 Mon Sep 17 00:00:00 2001
+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: 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/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css
+index 179f0d6..f8e6432 100644
+--- a/data/themes/Industrial/gtk.css
++++ b/data/themes/Industrial/gtk.css
+@@ -17,6 +17,7 @@
+ color: #000000;
+ }
+
++#bottom_pane label,
+ #bottom_pane GtkLabel {
+ font: Sans 12;
+ color: #9E9D9B;
+--
+2.14.4
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0004-lxdm.c-add-function-to-change-password-with-pam.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0004-lxdm.c-add-function-to-change-password-with-pam.patch
new file mode 100644
index 0000000000..29c1000d18
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0004-lxdm.c-add-function-to-change-password-with-pam.patch
@@ -0,0 +1,124 @@
+From d4de5497bd89c408377194b9fa9026ba8e68b634 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 11 Jan 2021 14:11:05 +0800
+Subject: [PATCH 4/8] lxdm.c: add function to change password with pam
+
+Add function to change user's password when pam is enabled. It is useful
+to change user's password when the password is expired.
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/lxdm.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ src/lxdm.h | 1 +
+ 2 files changed, 69 insertions(+)
+
+diff --git a/src/lxdm.c b/src/lxdm.c
+index 638c30f..fe17a71 100644
+--- a/src/lxdm.c
++++ b/src/lxdm.c
+@@ -104,6 +104,10 @@ static int old_tty=1,def_tty = 7,nr_tty=0;
+ static int def_display=0;
+ static GSList *session_list;
+
++#if HAVE_LIBPAM
++static const char *new_passwd = NULL;
++#endif
++
+ static void lxdm_startx(LXSession *s);
+
+ static int get_active_vt(void)
+@@ -759,6 +763,69 @@ int lxdm_auth_user(int type,char *user, char *pass, struct passwd **ppw)
+ return ret;
+ }
+
++
++#if HAVE_LIBPAM
++
++static int do_conv(int num, const struct pam_message **msg,struct pam_response **resp, void *arg)
++{
++ int result = PAM_SUCCESS;
++ int i;
++
++ *resp = (struct pam_response *) calloc(num, sizeof(struct pam_response));
++ for(i = 0; i < num; i++)
++ {
++ switch (msg[i]->msg_style) {
++ case PAM_PROMPT_ECHO_ON:
++ break;
++ case PAM_PROMPT_ECHO_OFF:
++ resp[i]->resp = strdup(new_passwd);
++ break;
++ case PAM_ERROR_MSG:
++ case PAM_TEXT_INFO:
++ break;
++ default:
++ break;
++ }
++ }
++ return result;
++}
++
++static int lxdm_change_passwd_pam(const char *service, const char *user, const char *pass)
++{
++ pam_handle_t *pamh = NULL;
++ static struct pam_conv conv = {
++ do_conv,
++ NULL
++ };
++
++ int ret = pam_start("lxdm", user, &conv, &pamh);
++ if (PAM_SUCCESS != ret) {
++ g_warning("pam_start failed.");
++ return 1;
++ }
++
++ new_passwd = pass;
++ ret = pam_chauthtok(pamh, 0);
++ if (PAM_SUCCESS != ret) {
++ g_warning("pam_chauthtok failed: %s", pam_strerror(pamh, ret));
++ return 1;
++ }
++
++ (void)pam_end(pamh, PAM_SUCCESS);
++
++ return 0;
++}
++#endif
++
++int lxdm_change_passwd(const char *user, const char *pass)
++{
++#if HAVE_LIBPAM
++ return lxdm_change_passwd_pam("lxdm", user, pass);
++#else
++ return 0;
++#endif
++}
++
+ static void close_left_fds(void)
+ {
+ struct dirent **list;
+@@ -1446,6 +1513,7 @@ int lxdm_do_auto_login(void)
+ lxdm_do_login(pw,session,lang,option);
+ success=1;
+ }
++
+ g_free(user);g_free(session);g_free(lang);
+ }
+ g_free(last_lang);
+diff --git a/src/lxdm.h b/src/lxdm.h
+index 1c2f837..be3c81f 100644
+--- a/src/lxdm.h
++++ b/src/lxdm.h
+@@ -30,6 +30,7 @@ G_BEGIN_DECLS
+ extern GKeyFile *config;
+
+ int lxdm_auth_user(int type,char *user,char *pass,struct passwd **ppw);
++int lxdm_change_passwd(const char *user, const char *pass);
+ void lxdm_do_login(struct passwd *pw,char *session,char *lang,char *option);
+ void lxdm_do_reboot(void);
+ void lxdm_do_shutdown(void);
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0005-ui.c-handle-password-expire-and-update-new-password.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0005-ui.c-handle-password-expire-and-update-new-password.patch
new file mode 100644
index 0000000000..ecbe68d148
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0005-ui.c-handle-password-expire-and-update-new-password.patch
@@ -0,0 +1,53 @@
+From 54b2ed18ca52fa682ade2fe84e1b0d19d1b78cc4 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 11 Jan 2021 16:48:26 +0800
+Subject: [PATCH 5/8] ui.c: handle password-expire and update-new-password
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/ui.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/src/ui.c b/src/ui.c
+index f233589..3ddb484 100644
+--- a/src/ui.c
++++ b/src/ui.c
+@@ -161,6 +161,9 @@ static gboolean on_greeter_input(GIOChannel *source, GIOCondition condition, gpo
+ ui_drop();
+ lxdm_do_login(pw, session, lang,NULL);
+ }
++ else if (AUTH_PASSWD_EXPIRE == ret) {
++ xwrite(greeter_pipe[0], "password-expire\n", 16);
++ }
+ else
+ {
+ if(pass!=NULL)
+@@ -205,6 +208,23 @@ static gboolean on_greeter_input(GIOChannel *source, GIOCondition condition, gpo
+ g_free(session);
+ g_free(lang);
+ }
++ else if (!strncmp(str, "update-new-password", 19)) {
++ xwrite(greeter_pipe[0], "update-new-password\n", 20);
++ char *user = greeter_param(str, "user");
++ char *pass = greeter_param(str, "newpass");
++ char *session = greeter_param(str, "session");
++ char *lang = greeter_param(str, "lang");
++
++ int ret = lxdm_change_passwd(user, pass);
++ if (ret) {
++ xwrite(greeter_pipe[0], "invalid-new-password\n", 21);
++ } else {
++ struct passwd *pw;
++ ret = lxdm_auth_user(AUTH_TYPE_NORMAL, user, pass, &pw);
++ ui_drop();
++ lxdm_do_login(pw, session, lang, NULL);
++ }
++ }
+ g_free(str);
+ return TRUE;
+ }
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0006-themes-Industrial-add-info-label-in-ui.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0006-themes-Industrial-add-info-label-in-ui.patch
new file mode 100644
index 0000000000..4cadc3d9b2
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0006-themes-Industrial-add-info-label-in-ui.patch
@@ -0,0 +1,124 @@
+From 8414d63343cc7909bc7a972941c678509d5d5be6 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 11 Jan 2021 10:15:45 +0800
+Subject: [PATCH 6/8] themes/Industrial: add info label in ui
+
+Adjust the layout and add a new label "info" under the labe "prompt" in
+themes/Industrial to tell user some useful information such as
+"Authentication failed" or "Invalid password".
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ data/themes/Industrial/greeter-gtk3.ui | 27 +++++++++++++++++++++++++-
+ data/themes/Industrial/greeter.ui | 27 +++++++++++++++++++++++++-
+ data/themes/Industrial/gtk.css | 5 +++++
+ 3 files changed, 57 insertions(+), 2 deletions(-)
+
+diff --git a/data/themes/Industrial/greeter-gtk3.ui b/data/themes/Industrial/greeter-gtk3.ui
+index 2f4e631..e59eee3 100644
+--- a/data/themes/Industrial/greeter-gtk3.ui
++++ b/data/themes/Industrial/greeter-gtk3.ui
+@@ -45,7 +45,12 @@
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+- <object class="GtkHBox" id="hbox3">
++ <object class="GtkVBox" id="vbox3">
++ <property name="visible">True</property>
++ <property name="orientation">vertical</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+@@ -91,6 +96,26 @@
+ </packing>
+ </child>
+ </object>
++ </child>
++ <child>
++ <object class="GtkHBox" id="hbox4">
++ <property name="visible">True</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkLabel" id="info">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes"></property>
++ <property name="yalign">0.2</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
+ </child>
+ </object>
+ <packing>
+diff --git a/data/themes/Industrial/greeter.ui b/data/themes/Industrial/greeter.ui
+index 3413922..6a02d8d 100644
+--- a/data/themes/Industrial/greeter.ui
++++ b/data/themes/Industrial/greeter.ui
+@@ -47,7 +47,12 @@
+ <property name="xscale">0</property>
+ <property name="yscale">0</property>
+ <child>
+- <object class="GtkHBox" id="hbox3">
++ <object class="GtkVBox" id="vbox3">
++ <property name="visible">True</property>
++ <property name="orientation">vertical</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkHBox" id="hbox3">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+@@ -93,6 +98,26 @@
+ </packing>
+ </child>
+ </object>
++ </child>
++ <child>
++ <object class="GtkHBox" id="hbox4">
++ <property name="visible">True</property>
++ <property name="spacing">12</property>
++ <child>
++ <object class="GtkLabel" id="info">
++ <property name="visible">True</property>
++ <property name="label" translatable="yes"></property>
++ <property name="yalign">0.2</property>
++ </object>
++ <packing>
++ <property name="expand">False</property>
++ <property name="fill">False</property>
++ <property name="position">0</property>
++ </packing>
++ </child>
++ </object>
++ </child>
++ </object>
+ </child>
+ </object>
+ <packing>
+diff --git a/data/themes/Industrial/gtk.css b/data/themes/Industrial/gtk.css
+index 7621345..be15f43 100644
+--- a/data/themes/Industrial/gtk.css
++++ b/data/themes/Industrial/gtk.css
+@@ -22,3 +22,8 @@
+ font: Sans 12;
+ color: #9E9D9B;
+ }
++
++#info {
++ font: Sans 14;
++ font-style: italic;
++}
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0007-greeter.c-support-to-update-expired-password.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0007-greeter.c-support-to-update-expired-password.patch
new file mode 100644
index 0000000000..84a9faebb8
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0007-greeter.c-support-to-update-expired-password.patch
@@ -0,0 +1,180 @@
+From bae6a2b3a2232abd16a8d8558dda542d4970f1bb Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Tue, 12 Jan 2021 09:23:05 +0800
+Subject: [PATCH 7/8] greeter.c: support to update expired password
+
+Update greeter to work with ui to handle expired password. It checks
+whether password is expired after input user and password. If expired,
+force user to update password immediately. It allows 3 times to try. If
+exceeds, reset to input user.
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/greeter.c | 83 +++++++++++++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 81 insertions(+), 2 deletions(-)
+
+diff --git a/src/greeter.c b/src/greeter.c
+index f100c72..804fca0 100644
+--- a/src/greeter.c
++++ b/src/greeter.c
+@@ -77,6 +77,8 @@ static GtkWidget *lang_menu;
+
+ static char* user = NULL;
+ static char* pass = NULL;
++static char* new_pass = NULL;
++static gboolean pass_expired = FALSE;
+
+ static char* ui_file = NULL;
+ static char *ui_nobody = NULL;
+@@ -167,10 +169,19 @@ static void switch_to_input_passwd(void)
+ else
+ gtk_widget_hide(user_list);
+ }
+- gtk_label_set_text( GTK_LABEL(prompt), _("Password:") );
++ if (pass_expired) {
++ if (!new_pass) {
++ gtk_label_set_text(GTK_LABEL(prompt), _("New password:"));
++ } else {
++ gtk_label_set_text(GTK_LABEL(prompt), _("Retype new password:"));
++ }
++ } else {
++ gtk_label_set_text( GTK_LABEL(prompt), _("Password:") );
++ }
+ gtk_entry_set_text(GTK_ENTRY(login_entry), "");
+ gtk_entry_set_visibility(GTK_ENTRY(login_entry), FALSE);
+ gtk_widget_show(login_entry);
++ gtk_widget_show(prompt);
+ gtk_widget_grab_focus(login_entry);
+ }
+
+@@ -189,6 +200,8 @@ static void try_login_user(const char *user)
+
+ static void on_entry_activate(GtkEntry* entry)
+ {
++ static int count = 0;
++
+ char* tmp;
+ if( !user )
+ {
+@@ -217,6 +230,46 @@ static void on_entry_activate(GtkEntry* entry)
+ }
+ else
+ {
++ if (pass_expired) {
++ if (!new_pass) {
++ new_pass = g_strdup(gtk_entry_get_text(entry));
++ switch_to_input_passwd();
++ } else {
++ tmp = g_strdup(gtk_entry_get_text(entry));
++ if (strcmp(new_pass, tmp)) {
++ g_free(new_pass);
++ new_pass = NULL;
++ // if new passwords not match, retry for 3 times at most
++ if (++count < 3) {
++ switch_to_input_passwd();
++ } else {
++ count = 0;
++ pass_expired = FALSE;
++ switch_to_input_user();
++ }
++ } else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) {
++ // if new password is same as old one
++ g_free(new_pass);
++ new_pass = NULL;
++ if (++count < 3) {
++ switch_to_input_passwd();
++ } else {
++ count = 0;
++ pass_expired = FALSE;
++ switch_to_input_user();
++ }
++ } else {
++ char *session_exec=get_session_exec();
++ char *session_lang=get_session_lang();
++
++ printf("update-new-password user=%s newpass=%s session=%s lang=%s\n",
++ user, new_pass, session_exec, session_lang);
++ }
++ }
++
++ return ;
++ }
++
+ char *session_exec=get_session_exec();
+ char *session_lang=get_session_lang();
+
+@@ -227,6 +280,7 @@ static void on_entry_activate(GtkEntry* entry)
+ printf("login user=%s pass=%s session=%s lang=%s\n",
+ user, pass, session_exec, session_lang);
+
++#if 0
+ /* password check failed */
+ g_free(user);
+ user = NULL;
+@@ -241,6 +295,7 @@ static void on_entry_activate(GtkEntry* entry)
+ gtk_label_set_text( GTK_LABEL(prompt), _("User:") );
+ gtk_entry_set_text(GTK_ENTRY(entry), "");
+ gtk_entry_set_visibility(GTK_ENTRY(entry), TRUE);
++#endif
+ }
+ }
+
+@@ -1091,8 +1146,12 @@ static void on_screen_size_changed(GdkScreen *screen,GtkWidget *win)
+
+ static gint login_entry_on_key_press (GtkWidget *widget,GdkEventKey *event)
+ {
+- if(event->keyval == GDK_Escape)
++ if(event->keyval == GDK_Escape) {
++ g_free(new_pass);
++ new_pass = NULL;
++ pass_expired = FALSE;
+ switch_to_input_user();
++ }
+ return FALSE;
+ }
+
+@@ -1285,8 +1344,10 @@ static void create_win()
+
+ static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpointer data)
+ {
++
+ GIOStatus ret;
+ char *str;
++ static int count = 0;
+
+ if( !(G_IO_IN & condition) )
+ return FALSE;
+@@ -1300,10 +1361,28 @@ static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpoi
+ {
+ switch_to_input_user();
+ }
++ else if (!strncmp(str, "password-expire", 15))
++ {
++ pass_expired = TRUE;
++ switch_to_input_passwd();
++ }
+ else if( !strncmp(str, "password", 8))
+ {
+ switch_to_input_passwd();
+ }
++ else if (!strncmp(str, "invalid-new-password", 20))
++ {
++ g_free(new_pass);
++ new_pass = NULL;
++
++ if (count++ < 3) {
++ switch_to_input_passwd();
++ } else {
++ count = 0;
++ pass_expired = FALSE;
++ switch_to_input_user();
++ }
++ }
+ g_free(str);
+ return TRUE;
+ }
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0008-greeter.c-show-information-on-gtk-label-info.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0008-greeter.c-show-information-on-gtk-label-info.patch
new file mode 100644
index 0000000000..eab9fd5e2e
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0008-greeter.c-show-information-on-gtk-label-info.patch
@@ -0,0 +1,99 @@
+From bb4ff4b134383bfdadf7cb5353d3553a8a72d47e Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 13 Jan 2021 10:45:48 +0800
+Subject: [PATCH 8/8] greeter.c: show information on gtk label 'info'
+
+Show information on a gtk label 'info' which is added under label
+'prompt' in the .glade or .ui files.
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/1/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/greeter.c | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/src/greeter.c b/src/greeter.c
+index 804fca0..a4a2336 100644
+--- a/src/greeter.c
++++ b/src/greeter.c
+@@ -64,6 +64,7 @@ static GtkWidget* win;
+ static GtkWidget* alignment2;
+ static GtkWidget* prompt;
+ static GtkWidget* login_entry;
++static GtkWidget* info;
+ static GtkWidget* user_list_scrolled;
+ static GtkWidget* user_list;
+
+@@ -241,10 +242,12 @@ static void on_entry_activate(GtkEntry* entry)
+ new_pass = NULL;
+ // if new passwords not match, retry for 3 times at most
+ if (++count < 3) {
++ gtk_label_set_text((GtkLabel *)info, _("Passwords do not match, please retry."));
+ switch_to_input_passwd();
+ } else {
+ count = 0;
+ pass_expired = FALSE;
++ gtk_label_set_text((GtkLabel *)info, _("Maximum number of failed update password attempts exceeded."));
+ switch_to_input_user();
+ }
+ } else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) {
+@@ -252,6 +255,7 @@ static void on_entry_activate(GtkEntry* entry)
+ g_free(new_pass);
+ new_pass = NULL;
+ if (++count < 3) {
++ gtk_label_set_text((GtkLabel *)info, _("New password is same as old one, password unchanged."));
+ switch_to_input_passwd();
+ } else {
+ count = 0;
+@@ -1146,6 +1150,9 @@ static void on_screen_size_changed(GdkScreen *screen,GtkWidget *win)
+
+ static gint login_entry_on_key_press (GtkWidget *widget,GdkEventKey *event)
+ {
++
++ gtk_label_set_text(GTK_LABEL(info), "");
++
+ if(event->keyval == GDK_Escape) {
+ g_free(new_pass);
+ new_pass = NULL;
+@@ -1211,11 +1218,14 @@ static void create_win()
+ login_entry = (GtkWidget*)gtk_builder_get_object(builder, "login_entry");
+ if(login_entry!=NULL)
+ {
+- g_signal_connect_after(login_entry,"key-press-event",G_CALLBACK(login_entry_on_key_press),NULL);
++ g_signal_connect(login_entry,"key-press-event",G_CALLBACK(login_entry_on_key_press),NULL);
+ }
+
+ g_signal_connect(login_entry, "activate", G_CALLBACK(on_entry_activate), NULL);
+
++ info = (GtkWidget *)gtk_builder_get_object(builder, "info");
++ gtk_label_set_text(GTK_LABEL(info), "");
++
+ if( g_key_file_get_integer(config, "display", "bottom_pane", 0)==1)
+ {
+ /* hacks to let GtkEventBox paintable with gtk pixmap engine. */
+@@ -1359,11 +1369,13 @@ static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpoi
+ gtk_main_quit();
+ else if( !strncmp(str, "reset", 5) )
+ {
++ gtk_label_set_text(GTK_LABEL(info), _("Authentication failed."));
+ switch_to_input_user();
+ }
+ else if (!strncmp(str, "password-expire", 15))
+ {
+ pass_expired = TRUE;
++ gtk_label_set_text(GTK_LABEL(info), _("You are required to change your password immediately."));
+ switch_to_input_passwd();
+ }
+ else if( !strncmp(str, "password", 8))
+@@ -1376,6 +1388,7 @@ static gboolean on_lxdm_command(GIOChannel *source, GIOCondition condition, gpoi
+ new_pass = NULL;
+
+ if (count++ < 3) {
++ gtk_label_set_text(GTK_LABEL(info), _("Invalid new password. Please input new password again."));
+ switch_to_input_passwd();
+ } else {
+ count = 0;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm/0009-greeter.c-disallow-empty-new-password.patch b/meta-oe/recipes-graphics/lxdm/lxdm/0009-greeter.c-disallow-empty-new-password.patch
new file mode 100644
index 0000000000..3b12defb03
--- /dev/null
+++ b/meta-oe/recipes-graphics/lxdm/lxdm/0009-greeter.c-disallow-empty-new-password.patch
@@ -0,0 +1,53 @@
+From af1c347a31ae243d29c6087da8ffb423b23c74f2 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Mon, 1 Feb 2021 09:54:48 +0800
+Subject: [PATCH] greeter.c: disallow empty new password
+
+Do not clear text of label 'promt' when skip_password is set. When user
+is required to update password, it only shows input box without label
+for about 1 second.
+
+And disallow empty new password when user is required to update it.
+
+Upstream-Status: Submitted [https://sourceforge.net/p/lxdm/code/merge-requests/2/]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ src/greeter.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/greeter.c b/src/greeter.c
+index 7e4a168..c0e6b64 100644
+--- a/src/greeter.c
++++ b/src/greeter.c
+@@ -220,7 +220,6 @@ static void on_entry_activate(GtkEntry* entry)
+ }
+ if(g_key_file_get_integer(config,"base","skip_password",NULL)!=0)
+ {
+- gtk_label_set_text( GTK_LABEL(prompt), "");
+ try_login_user(user);
+ }
+ else
+@@ -235,6 +239,10 @@ static void on_entry_activate(GtkEntry* entry)
+ if (pass_expired) {
+ if (!new_pass) {
+ new_pass = g_strdup(gtk_entry_get_text(entry));
++ if (strlen(new_pass) == 0) {
++ new_pass = NULL;
++ gtk_label_set_text((GtkLabel *)info, _("Empty password is not allowed."));
++ }
+ switch_to_input_passwd();
+ } else {
+ tmp = g_strdup(gtk_entry_get_text(entry));
+@@ -251,7 +259,7 @@ static void on_entry_activate(GtkEntry* entry)
+ gtk_label_set_text((GtkLabel *)info, _("Maximum number of failed update password attempts exceeded."));
+ switch_to_input_user();
+ }
+- } else if (!strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) {
++ } else if (pass && !strcmp(pass, g_base64_encode((guchar*)new_pass, strlen(new_pass) + 1))) {
+ // if new password is same as old one
+ g_free(new_pass);
+ new_pass = NULL;
+--
+2.25.1
+
diff --git a/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb b/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
index 8e7efcdada..adf9cb597c 100644
--- a/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
+++ b/meta-oe/recipes-graphics/lxdm/lxdm_0.5.3.bb
@@ -1,43 +1,55 @@
SUMMARY = "LXDM is the lightweight display manager"
HOMEPAGE = "http://blog.lxde.org/?p=531"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}%20${PV}/${BPN}-${PV}.tar.xz \
file://lxdm.conf \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'file://lxdm-pam file://lxdm-pam-debug', '', d)} \
${@bb.utils.contains("DISTRO_TYPE", "debug", "", "file://0001-lxdm.conf.in-blacklist-root-for-release-images.patch",d)} \
file://0002-let-autotools-create-lxdm.conf.patch \
- file://0001-check-for-libexecinfo-providing-backtrace-APIs.patch \
+ file://0003-check-for-libexecinfo-providing-backtrace-APIs.patch \
+ file://0004-fix-css-under-gtk-3.20.patch \
+ file://0001-greeter-set-visible-when-switch-to-input-user.patch \
+ file://0002-greeter-gdk.c-fix-typo.patch \
+ file://0003-check-whether-password-expired-with-pam.patch \
+ file://0004-lxdm.c-add-function-to-change-password-with-pam.patch \
+ file://0005-ui.c-handle-password-expire-and-update-new-password.patch \
+ file://0006-themes-Industrial-add-info-label-in-ui.patch \
+ file://0007-greeter.c-support-to-update-expired-password.patch \
+ file://0008-greeter.c-show-information-on-gtk-label-info.patch \
+ file://0009-greeter.c-disallow-empty-new-password.patch \
+ file://0001-systemd-lxdm.service-remove-plymouth-quit-conflicts.patch \
+ file://0001-Initialize-msghdr-struct-in-a-portable-way.patch \
"
SRC_URI[md5sum] = "061caae432634e6db38bbdc84bc6ffa0"
SRC_URI[sha256sum] = "4891efee81c72a400cc6703e40aa76f3f3853833d048b72ec805da0f93567f2f"
PE = "1"
-DEPENDS = "virtual/libintl intltool-native cairo dbus gdk-pixbuf glib-2.0 gtk+ virtual/libx11 libxcb pango iso-codes"
+DEPENDS = "virtual/libintl intltool-native cairo dbus gdk-pixbuf glib-2.0 gtk+3 virtual/libx11 libxcb pango iso-codes"
DEPENDS += "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "", "consolekit", d)}"
-DEPENDS_append_libc-musl = " libexecinfo"
+DEPENDS:append:libc-musl = " libexecinfo"
# combine oe-core way with angstrom DISTRO_TYPE
DISTRO_TYPE ?= "${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "debug", "",d)}"
-inherit autotools pkgconfig gettext systemd distro_features_check
+inherit autotools pkgconfig gettext systemd features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-CFLAGS_append = " -fno-builtin-fork -fno-builtin-memset -fno-builtin-strstr "
-LDFLAGS_append_libc-musl = " -lexecinfo"
+CFLAGS:append = " -fno-builtin-fork -fno-builtin-memset -fno-builtin-strstr "
+LDFLAGS:append:libc-musl = " -lexecinfo"
-EXTRA_OECONF += "--enable-gtk3=no --enable-password=yes --with-x -with-xconn=xcb \
+EXTRA_OECONF += "--enable-gtk3=yes --enable-password=yes --with-x -with-xconn=xcb \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/ --disable-consolekit', '--without-systemdsystemunitdir', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'pam', '--with-pam', '--without-pam', d)} \
"
-do_configure_prepend() {
+do_configure:prepend() {
cp ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in ${S}/po/
}
-do_compile_append() {
+do_compile:append() {
# default background configured not available / no password field available / no default screensaver
sed -i -e 's,bg=,# bg=,g' \
-e 's,# skip_password=,skip_password=,g' \
@@ -47,7 +59,7 @@ do_compile_append() {
oe_runmake -C ${B}/data lxdm.conf
}
-do_install_append() {
+do_install:append() {
install -d ${D}${localstatedir}/lib/lxdm
install -m 644 ${WORKDIR}/lxdm.conf ${D}${localstatedir}/lib/lxdm
if ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'true', 'false', d)}; then
@@ -59,7 +71,7 @@ do_install_append() {
}
# make installed languages choosable
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
langs=""
for lang in `find $D${libdir}/locale -maxdepth 1 | grep _ | sort`; do
lang=`basename $lang`
@@ -72,9 +84,9 @@ done
sed -i "s:last_langs=.*$:last_langs=$langs:g" $D${localstatedir}/lib/lxdm/lxdm.conf
}
-RDEPENDS_${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-loginuid', '', d)} setxkbmap bash librsvg-gtk"
+RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-loginuid', '', d)} setxkbmap bash librsvg-gtk"
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "lxdm.service"
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "lxdm.service"
diff --git a/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb b/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
index 08d7f5b52a..0d53c78f3e 100644
--- a/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
+++ b/meta-oe/recipes-graphics/numlockx/numlockx_1.2.bb
@@ -1,7 +1,7 @@
SUMMARY = "Enable NumLock in X11 sessions"
HOMEPAGE = "http://home.kde.org/~seli/numlockx/"
SECTION = "x11/apps"
-LICENSE = "MIT-X"
+LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=dcb1cc75e21540a4a66b54e38d95b047"
DEPENDS = "virtual/libx11 libxtst"
@@ -10,14 +10,14 @@ SRC_URI = "http://pkgs.fedoraproject.org/repo/pkgs/numlockx/numlockx-${PV}.tar.g
SRC_URI[md5sum] = "be9109370447eae23f6f3f8527bb1a67"
SRC_URI[sha256sum] = "e468eb9121c94c9089dc6a287eeb347e900ce04a14be37da29d7696cbce772e4"
-inherit autotools distro_features_check
+inherit autotools features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
EXTRA_OECONF = "--x-includes=${STAGING_INCDIR} \
--x-libraries=${STAGING_LIBDIR}"
-do_configure_prepend() {
+do_configure:prepend() {
# remove this from acinclude.m4 or build fails
sed -i '/_AC_PATH_X_XMKMF/d' ${S}/acinclude.m4
}
diff --git a/meta-oe/recipes-graphics/nyancat/nyancat_1.5.2.bb b/meta-oe/recipes-graphics/nyancat/nyancat_1.5.2.bb
new file mode 100644
index 0000000000..a44e79362d
--- /dev/null
+++ b/meta-oe/recipes-graphics/nyancat/nyancat_1.5.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Render a loop of the Nyan Cat / Poptart Cat animation"
+HOMEPAGE = "https://nyancat.dakko.us/"
+SECTION = "graphics"
+
+LICENSE = "NCSA"
+LIC_FILES_CHKSUM = "file://src/nyancat.c;beginline=27;endline=49;md5=285f7ac87da4a631f348800687d845bd"
+
+S = "${WORKDIR}/git"
+
+SRCREV = "5ffb6c5c03d0e9156db8f360599d4f0449bb16b9"
+SRC_URI = " \
+ git://github.com/klange/nyancat;protocol=https;branch=master \
+"
+
+do_install:append() {
+ install -Dm 0755 ${S}/src/${BPN} ${D}${bindir}/${BPN}
+}
diff --git a/meta-oe/recipes-graphics/openbox/files/0001-Fix-function-protype-visibility.patch b/meta-oe/recipes-graphics/openbox/files/0001-Fix-function-protype-visibility.patch
new file mode 100644
index 0000000000..344c5d149b
--- /dev/null
+++ b/meta-oe/recipes-graphics/openbox/files/0001-Fix-function-protype-visibility.patch
@@ -0,0 +1,94 @@
+From 941d5ff3426e68cb9bcb4ae86066124cb2535b69 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 12:32:20 -0700
+Subject: [PATCH] Fix function protype visibility
+
+Include ctye.h for toupper
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/appearance.c | 1 +
+ src/desktops.c | 2 +-
+ src/desktops.h | 2 +-
+ src/main.c | 1 +
+ src/moveresize.c | 2 +-
+ src/moveresize.h | 2 +-
+ 6 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/src/appearance.c b/src/appearance.c
+index 4fb3f0c..ee55661 100644
+--- a/src/appearance.c
++++ b/src/appearance.c
+@@ -20,6 +20,7 @@
+ #include "main.h"
+ #include "tree.h"
+ #include "preview_update.h"
++#include <ctype.h> /* for toupper */
+
+ static gboolean mapping = FALSE;
+
+diff --git a/src/desktops.c b/src/desktops.c
+index 8297f00..27ca514 100644
+--- a/src/desktops.c
++++ b/src/desktops.c
+@@ -38,7 +38,7 @@ static void on_desktop_names_cell_edited(GtkCellRendererText *cell,
+ gpointer data);
+ static void enable_stuff();
+
+-void desktops_setup_tab()
++void desktops_setup_tab(void)
+ {
+ GtkWidget *w;
+ GtkCellRenderer *render;
+diff --git a/src/desktops.h b/src/desktops.h
+index 1ba3e36..446bfbb 100644
+--- a/src/desktops.h
++++ b/src/desktops.h
+@@ -24,5 +24,5 @@
+
+ void desktops_setup_num(GtkWidget *w);
+ void desktops_setup_names(GtkWidget *w);
+-
++void desktops_setup_tab(void);
+ #endif
+diff --git a/src/main.c b/src/main.c
+index d7e3446..0176035 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -28,6 +28,7 @@
+ #include "dock.h"
+ #include "preview_update.h"
+ #include "gettext.h"
++#include "moveresize.h"
+
+ #include <gdk/gdkx.h>
+ #define SN_API_NOT_YET_FROZEN
+diff --git a/src/moveresize.c b/src/moveresize.c
+index c6fb3dd..bb52729 100644
+--- a/src/moveresize.c
++++ b/src/moveresize.c
+@@ -37,7 +37,7 @@ static gboolean mapping = FALSE;
+ static void enable_stuff();
+ static void write_fixed_position(const gchar *coord);
+
+-void moveresize_setup_tab()
++void moveresize_setup_tab(void)
+ {
+ GtkWidget *w, *w1, *w2, *w3;
+ GtkSizeGroup *group;
+diff --git a/src/moveresize.h b/src/moveresize.h
+index 82ecc96..8faf526 100644
+--- a/src/moveresize.h
++++ b/src/moveresize.h
+@@ -20,6 +20,6 @@
+ #ifndef obconf__moveresize_h
+ #define obconf__moveresize_h
+
+-void moveresize_setup_tab();
++void moveresize_setup_tab(void);
+
+ #endif
+--
+2.37.3
+
diff --git a/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch b/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch
new file mode 100644
index 0000000000..5ebeb01692
--- /dev/null
+++ b/meta-oe/recipes-graphics/openbox/files/0001-openbox-xdg-autostart-convert-to-python3.patch
@@ -0,0 +1,138 @@
+From b7de9cff2a9578dd92d191241c28437cd6bbb595 Mon Sep 17 00:00:00 2001
+From: Max Krummenacher <max.krummenacher@toradex.com>
+Date: Sun, 2 Feb 2020 14:39:21 +0000
+Subject: [PATCH] openbox-xdg-autostart: convert to python3
+
+Upstream-Status: Pending
+
+Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
+---
+ data/autostart/openbox-xdg-autostart | 72 ++++++++++++++--------------
+ 1 file changed, 36 insertions(+), 36 deletions(-)
+
+diff --git a/data/autostart/openbox-xdg-autostart b/data/autostart/openbox-xdg-autostart
+index 04a17a1..52d763f 100755
+--- a/data/autostart/openbox-xdg-autostart
++++ b/data/autostart/openbox-xdg-autostart
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # openbox-xdg-autostart runs things based on the XDG autostart specification
+ # Copyright (C) 2008 Dana Jansens
+@@ -28,9 +28,9 @@ try:
+ from xdg.DesktopEntry import DesktopEntry
+ from xdg.Exceptions import ParsingError
+ except ImportError:
+- print
+- print >>sys.stderr, "ERROR:", ME, "requires PyXDG to be installed"
+- print
++ print()
++ print("ERROR:", ME, "requires PyXDG to be installed", file=sys.stderr)
++ print()
+ sys.exit(1)
+
+ def main(argv=sys.argv):
+@@ -51,7 +51,7 @@ def main(argv=sys.argv):
+ try:
+ autofile = AutostartFile(path)
+ except ParsingError:
+- print "Invalid .desktop file: " + path
++ print("Invalid .desktop file: " + path)
+ else:
+ if not autofile in files:
+ files.append(autofile)
+@@ -99,9 +99,9 @@ class AutostartFile:
+
+ def _alert(self, str, info=False):
+ if info:
+- print "\t ", str
++ print("\t ", str)
+ else:
+- print "\t*", str
++ print("\t*", str)
+
+ def _showInEnvironment(self, envs, verbose=False):
+ default = not self.de.getOnlyShowIn()
+@@ -146,14 +146,14 @@ class AutostartFile:
+
+ def display(self, envs):
+ if self._shouldRun(envs):
+- print "[*] " + self.de.getName()
++ print("[*] " + self.de.getName())
+ else:
+- print "[ ] " + self.de.getName()
++ print("[ ] " + self.de.getName())
+ self._alert("File: " + self.path, info=True)
+ if self.de.getExec():
+ self._alert("Executes: " + self.de.getExec(), info=True)
+ self._shouldRun(envs, True)
+- print
++ print()
+
+ def run(self, envs):
+ here = os.getcwd()
+@@ -165,34 +165,34 @@ class AutostartFile:
+ os.chdir(here)
+
+ def show_help():
+- print "Usage:", ME, "[OPTION]... [ENVIRONMENT]..."
+- print
+- print "This tool will run xdg autostart .desktop files"
+- print
+- print "OPTIONS"
+- print " --list Show a list of the files which would be run"
+- print " Files which would be run are marked with an asterix"
+- print " symbol [*]. For files which would not be run,"
+- print " information is given for why they are excluded"
+- print " --help Show this help and exit"
+- print " --version Show version and copyright information"
+- print
+- print "ENVIRONMENT specifies a list of environments for which to run autostart"
+- print "applications. If none are specified, only applications which do not "
+- print "limit themselves to certain environments will be run."
+- print
+- print "ENVIRONMENT can be one or more of:"
+- print " GNOME Gnome Desktop"
+- print " KDE KDE Desktop"
+- print " ROX ROX Desktop"
+- print " XFCE XFCE Desktop"
+- print " Old Legacy systems"
+- print
++ print("Usage:", ME, "[OPTION]... [ENVIRONMENT]...")
++ print()
++ print("This tool will run xdg autostart .desktop files")
++ print()
++ print("OPTIONS")
++ print(" --list Show a list of the files which would be run")
++ print(" Files which would be run are marked with an asterix")
++ print(" symbol [*]. For files which would not be run,")
++ print(" information is given for why they are excluded")
++ print(" --help Show this help and exit")
++ print(" --version Show version and copyright information")
++ print()
++ print("ENVIRONMENT specifies a list of environments for which to run autostart")
++ print("applications. If none are specified, only applications which do not ")
++ print("limit themselves to certain environments will be run.")
++ print()
++ print("ENVIRONMENT can be one or more of:")
++ print(" GNOME Gnome Desktop")
++ print(" KDE KDE Desktop")
++ print(" ROX ROX Desktop")
++ print(" XFCE XFCE Desktop")
++ print(" Old Legacy systems")
++ print()
+
+ def show_version():
+- print ME, VERSION
+- print "Copyright (c) 2008 Dana Jansens"
+- print
++ print(ME, VERSION)
++ print("Copyright (c) 2008 Dana Jansens")
++ print()
+
+ if __name__ == "__main__":
+ sys.exit(main())
+--
+2.20.1
+
diff --git a/meta-oe/recipes-graphics/openbox/obconf_git.bb b/meta-oe/recipes-graphics/openbox/obconf_git.bb
new file mode 100644
index 0000000000..053af5a770
--- /dev/null
+++ b/meta-oe/recipes-graphics/openbox/obconf_git.bb
@@ -0,0 +1,34 @@
+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"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = " \
+ openbox \
+ startup-notification \
+ gtk+3 \
+"
+PV = "2.0.4+git${SRCPV}"
+
+SRCREV = "63ec47c5e295ad4f09d1df6d92afb7e10c3fec39"
+SRC_URI = " \
+ git://git.openbox.org/dana/obconf;branch=master \
+ file://0001-Fix-function-protype-visibility.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit autotools gettext pkgconfig mime mime-xdg features_check
+# depends on openbox, which is X11-only
+REQUIRED_DISTRO_FEATURES = "x11"
+
+EXTRA_AUTORECONF = ""
+
+FILES:${PN} += "\
+ ${datadir}/mime \
+"
+
+do_install:append () {
+ rm -rf ${D}${datadir}/mimelnk
+}
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 c35a0c7238..4c97c03978 100644
--- a/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
+++ b/meta-oe/recipes-graphics/openbox/openbox_3.6.1.bb
@@ -1,22 +1,23 @@
SUMMARY = "openbox Window Manager"
SECTION = "x11/wm"
DEPENDS = "glib-2.0 pango libxml2 virtual/libx11 libcroco librsvg gdk-pixbuf"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
SRC_URI = " \
http://icculus.org/openbox/releases/openbox-${PV}.tar.gz \
file://0001-Makefile.am-avoid-race-when-creating-autostart-direc.patch \
+ file://0001-openbox-xdg-autostart-convert-to-python3.patch \
"
SRC_URI[md5sum] = "b72794996c6a3ad94634727b95f9d204"
SRC_URI[sha256sum] = "8b4ac0760018c77c0044fab06a4f0c510ba87eae934d9983b10878483bde7ef7"
-inherit autotools gettext update-alternatives pkgconfig distro_features_check
+inherit autotools gettext update-alternatives pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-ALTERNATIVE_${PN}-core = "x-window-manager x-session-manager"
+ALTERNATIVE:${PN}-core = "x-window-manager x-session-manager"
ALTERNATIVE_TARGET[x-window-manager] = "${bindir}/openbox"
ALTERNATIVE_PRIORITY[x-window-manager] = "10"
ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/openbox-session"
@@ -33,24 +34,25 @@ PACKAGES =+ "${PN}-core ${PN}-lxde ${PN}-gnome ${PN}-config"
PACKAGES_DYNAMIC += "^${PN}-theme-.*"
-python populate_packages_prepend() {
+python populate_packages:prepend() {
theme_dir = d.expand('${datadir}/themes/')
theme_name = d.expand('${PN}-theme-%s')
do_split_packages(d, theme_dir, '(.*)', theme_name, '${PN} theme for %s', extra_depends='', allow_dirs=True)
}
-RDEPENDS_${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks"
-FILES_${PN}-core = "${bindir}/openbox ${bindir}/openbox-session ${libdir}/*${SOLIBS}"
+FILES:${PN}-core = "${bindir}/openbox ${bindir}/openbox-session ${libdir}/*${SOLIBS}"
-FILES_${PN}-lxde += "${datadir}/lxde/ \
+FILES:${PN}-lxde += "${datadir}/lxde/ \
${datadir}/lxpanel \
${datadir}/xsessions \
${datadir}/icons"
-FILES_${PN}-gnome += " \
+FILES:${PN}-gnome += " \
${bindir}/openbox-gnome-session \
${datadir}/gnome \
${datadir}/gnome-session \
"
-FILES_${PN}-config += "${sysconfdir}"
+FILES:${PN}-config += "${sysconfdir}"
+
+RDEPENDS:${PN} += "${PN}-core ${PN}-config ${PN}-theme-clearlooks python3 python3-shell pyxdg"
diff --git a/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch b/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch
deleted file mode 100644
index 866d9aa41b..0000000000
--- a/meta-oe/recipes-graphics/openjpeg/files/0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 226f07e4b49c2757b181c62e6841000c512054e3 Mon Sep 17 00:00:00 2001
-From: Even Rouault <even.rouault@spatialys.com>
-Date: Mon, 14 Aug 2017 17:26:58 +0200
-Subject: [PATCH] bmp_read_info_header(): reject bmp files with biBitCount == 0
- (#983)
-
-Upstream-Status: Backport [https://github.com/uclouvain/openjpeg/commit/baf0c1ad4572daa89caa3b12985bdd93530f0dd7]
-CVE: CVE-2017-12982
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- src/bin/jp2/convertbmp.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/bin/jp2/convertbmp.c b/src/bin/jp2/convertbmp.c
-index b49e7a0..2715fdf 100644
---- a/src/bin/jp2/convertbmp.c
-+++ b/src/bin/jp2/convertbmp.c
-@@ -392,6 +392,10 @@ static OPJ_BOOL bmp_read_info_header(FILE* IN, OPJ_BITMAPINFOHEADER* header)
-
- header->biBitCount = (OPJ_UINT16)getc(IN);
- header->biBitCount |= (OPJ_UINT16)((OPJ_UINT32)getc(IN) << 8);
-+ if (header->biBitCount == 0) {
-+ fprintf(stderr, "Error, invalid biBitCount %d\n", 0);
-+ return OPJ_FALSE;
-+ }
-
- if (header->biSize >= 40U) {
- header->biCompression = (OPJ_UINT32)getc(IN);
---
-2.8.1
-
diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch b/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch
new file mode 100644
index 0000000000..0ba13cf88f
--- /dev/null
+++ b/meta-oe/recipes-graphics/openjpeg/openjpeg/0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch
@@ -0,0 +1,31 @@
+From 4681de07e21f17aa28710d3a51fabe7da60463f9 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Fri, 28 Sep 2018 00:38:50 +0200
+Subject: [PATCH] Do not ask cmake to export binaries - they don't make it
+ dependants sysroots
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ src/bin/jp2/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/bin/jp2/CMakeLists.txt b/src/bin/jp2/CMakeLists.txt
+index 4324c36d..2c11fe02 100644
+--- a/src/bin/jp2/CMakeLists.txt
++++ b/src/bin/jp2/CMakeLists.txt
+@@ -66,7 +66,6 @@ foreach(exe opj_decompress opj_compress opj_dump)
+ endif()
+ # Install exe
+ install(TARGETS ${exe}
+- EXPORT OpenJPEGTargets
+ DESTINATION ${OPENJPEG_INSTALL_BIN_DIR} COMPONENT Applications
+ )
+ if(OPJ_USE_DSYMUTIL)
+--
+2.14.4
+
diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb
deleted file mode 100644
index 22b75d9623..0000000000
--- a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.2.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec"
-HOMEPAGE = "http://www.openjpeg.org"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c"
-
-DEPENDS = "libpng tiff lcms zlib"
-
-SRC_URI = "https://github.com/uclouvain/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
- file://0001-bmp_read_info_header-reject-bmp-files-with-biBitCoun.patch \
- "
-SRC_URI[md5sum] = "269bb0b175476f3addcc0d03bd9a97b6"
-SRC_URI[sha256sum] = "6fddbce5a618e910e03ad00d66e7fcd09cc6ee307ce69932666d54c73b7c6e7b"
-
-inherit cmake
-
-# standard path for *.cmake
-EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_PACKAGE_DIR=${baselib}/cmake \
- -DOPENJPEG_INSTALL_LIB_DIR:PATH=${libdir}"
diff --git a/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb
new file mode 100644
index 0000000000..c71e535649
--- /dev/null
+++ b/meta-oe/recipes-graphics/openjpeg/openjpeg_2.5.0.bb
@@ -0,0 +1,21 @@
+DESCRIPTION = "OpenJPEG library is an open-source JPEG 2000 codec"
+HOMEPAGE = "http://www.openjpeg.org"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c648878b4840d7babaade1303e7f108c"
+
+DEPENDS = "libpng tiff lcms zlib"
+
+SRC_URI = "git://github.com/uclouvain/openjpeg.git;branch=master;protocol=https \
+ file://0002-Do-not-ask-cmake-to-export-binaries-they-don-t-make-.patch \
+ "
+SRCREV = "a5891555eb49ed7cc26b2901ea680acda136d811"
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# for multilib
+EXTRA_OECMAKE += "-DOPENJPEG_INSTALL_LIB_DIR=${@d.getVar('baselib').replace('/', '')}"
+
+FILES:${PN} += "${libdir}/openjpeg*"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb b/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
index 3069d2dedd..0af6ac006e 100644
--- a/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
+++ b/meta-oe/recipes-graphics/packagegroups/packagegroup-fonts-truetype.bb
@@ -13,13 +13,13 @@ PACKAGES += "\
${PN}-japanese \
"
-RRECOMMENDS_${PN} = "\
+RRECOMMENDS:${PN} = "\
${PN}-core \
${PN}-chinese \
${PN}-japanese \
"
-RDEPENDS_${PN}-core = "\
+RDEPENDS:${PN}-core = "\
fontconfig-utils \
\
ttf-dejavu-common \
@@ -28,12 +28,12 @@ RDEPENDS_${PN}-core = "\
"
# ttf-dejavu-serif
-RDEPENDS_${PN}-chinese = "\
+RDEPENDS:${PN}-chinese = "\
${PN}-core \
ttf-arphic-uming \
"
-RDEPENDS_${PN}-japanese = "\
+RDEPENDS:${PN}-japanese = "\
${PN}-core \
ttf-sazanami-gothic \
ttf-sazanami-mincho \
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
new file mode 100644
index 0000000000..b4079f7839
--- /dev/null
+++ b/meta-oe/recipes-graphics/pango/pangomm-2.48_2.50.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "C++ bindings for the pango library"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "mm-common cairomm-1.16 glibmm-2.68 pango"
+
+GNOMEBASEBUILDCLASS = "meson"
+GNOMEBN = "pangomm"
+inherit gnomebase features_check
+
+SRC_URI[archive.sha256sum] = "ccc9923413e408c2bff637df663248327d72822f11e394b423e1c5652b7d9214"
+REQUIRED_DISTRO_FEATURES = "x11"
+
+S = "${WORKDIR}/${GNOMEBN}-${PV}"
+
+FILES:${PN} = "${libdir}/lib*.so.*"
+FILES:${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/"
+
diff --git a/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb b/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb
deleted file mode 100644
index e0f72cd58a..0000000000
--- a/meta-oe/recipes-graphics/pango/pangomm_2.40.1.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "C++ bindings for the pango library"
-SECTION = "libs"
-LICENSE = "LGPLv2.1 & GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
- file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "mm-common cairomm glibmm pango"
-
-SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-SRC_URI = "http://ftp.gnome.org/pub/GNOME/sources/pangomm/${SHRT_VER}/pangomm-${PV}.tar.xz"
-SRC_URI[md5sum] = "874eadd9434613dbacf0272c82c3ac23"
-SRC_URI[sha256sum] = "9762ee2a2d5781be6797448d4dd2383ce14907159b30bc12bf6b08e7227be3af"
-
-inherit distro_features_check autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-EXTRA_OECONF = " --disable-documentation "
-
-FILES_${PN} = "${libdir}/lib*.so.*"
-FILES_${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/"
-
diff --git a/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb b/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb
new file mode 100644
index 0000000000..42074c14a1
--- /dev/null
+++ b/meta-oe/recipes-graphics/pango/pangomm_2.46.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "C++ bindings for the pango library"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499 \
+ file://COPYING.tools;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "mm-common cairomm glibmm pango"
+
+GNOMEBASEBUILDCLASS = "meson"
+
+inherit gnomebase features_check
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI[archive.sha256sum] = "57442ab4dc043877bfe3839915731ab2d693fc6634a71614422fb530c9eaa6f4"
+
+FILES:${PN} = "${libdir}/lib*.so.*"
+FILES:${PN}-dev += "${libdir}/*/include/ ${libdir}/pangomm-*/"
+
diff --git a/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch
new file mode 100644
index 0000000000..2316c1ffdf
--- /dev/null
+++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch
@@ -0,0 +1,45 @@
+From 98bef35c010a9c7891634fe9bcc4b560abbcb4e9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Apr 2022 11:29:50 -0700
+Subject: [PATCH] memmove and memchr are C APIs not C++ std namespace
+
+Fixes build error
+../git/src/deqp-runner.cc: In member function 'Line_reader::read_status Line_reader::read(char**, double)':
+../git/src/deqp-runner.cc:249:10: error: 'memmove' is not a member of 'std'; did you mean 'wmemmove'?
+ 249 | std::memmove(buf_.data(), buf_.data() + skip_sz_, valid_sz_);
+ | ^~~~~~~
+ | wmemmove
+../git/src/deqp-runner.cc:255:35: error: 'memchr' is not a member of 'std'; did you mean 'wmemchr'?
+ 255 | while (!(newline = (char *)std::memchr(buf_.data(), '\n', valid_sz_)) &&
+ | ^~~~~~
+ | wmemchr
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/parallel-deqp-runner/-/merge_requests/17]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/deqp-runner.cc | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/deqp-runner.cc b/src/deqp-runner.cc
+index 1cc8a55..55a15f9 100644
+--- a/src/deqp-runner.cc
++++ b/src/deqp-runner.cc
+@@ -246,13 +246,13 @@ Line_reader::read_status Line_reader::read(char **text, double timeout) {
+
+ if (skip_sz_) {
+ valid_sz_ -= skip_sz_;
+- std::memmove(buf_.data(), buf_.data() + skip_sz_, valid_sz_);
++ memmove(buf_.data(), buf_.data() + skip_sz_, valid_sz_);
+ skip_sz_ = 0;
+ }
+
+ char *newline;
+ bool end = false;
+- while (!(newline = (char *)std::memchr(buf_.data(), '\n', valid_sz_)) &&
++ while (!(newline = (char *)memchr(buf_.data(), '\n', valid_sz_)) &&
+ !end && valid_sz_ + 1 < (int)buf_.size()) {
+ for (;;) {
+ struct pollfd p = {};
+--
+2.35.1
+
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
new file mode 100644
index 0000000000..02ef3cce76
--- /dev/null
+++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner/0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch
@@ -0,0 +1,44 @@
+From 2b74a5b160c0500291c554ab5c0944f502e72a42 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
+Date: Thu, 9 Jul 2020 20:00:53 +0200
+Subject: [PATCH] meson.build: WORKAROUND Remove vulkan dependency
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We need a patch in the source code to allow enable when DISTRO_FEATURES
+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/meson.build b/meson.build
+index db97c26..4c1b865 100644
+--- a/meson.build
++++ b/meson.build
+@@ -3,21 +3,15 @@ project('parallel-deqp-runner', ['c', 'cpp'],
+ cpp = meson.get_compiler('cpp')
+
+ thread_dep = dependency('threads')
+-vulkan_dep = dependency('vulkan')
+
+ fs_dep = cpp.find_library('stdc++fs', required : false)
+ if not fs_dep.found()
+ fs_dep = cpp.find_library('c++fs')
+ endif
+
+-
+ deqp_runner = executable('deqp-runner',
+ 'src/deqp-runner.cc',
+ dependencies : [thread_dep, fs_dep],
+ install : true)
+
+-executable('hang-detection',
+- 'src/hang_detection.c',
+- dependencies: [vulkan_dep])
+-
+ subdir('test')
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
new file mode 100644
index 0000000000..eff6ad8f83
--- /dev/null
+++ b/meta-oe/recipes-graphics/parallel-deqp-runner/parallel-deqp-runner_git.bb
@@ -0,0 +1,15 @@
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4f59d6446bf2e004e80df1a0937129fa"
+
+SRC_URI = "git://gitlab.freedesktop.org/mesa/parallel-deqp-runner.git;protocol=https;branch=master \
+ file://0001-meson.build-WORKAROUND-Remove-vulkan-dependency.patch \
+ file://0001-memmove-and-memchr-are-C-APIs-not-C-std-namespace.patch \
+ "
+
+# Modify these as desired
+PV = "2020.06.15+git${SRCPV}"
+SRCREV = "e1642fb691d29b1462504b58916f7f514a963e80"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig meson
diff --git a/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb b/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
new file mode 100644
index 0000000000..225619ed66
--- /dev/null
+++ b/meta-oe/recipes-graphics/qrencode/qrencode_4.1.1.bb
@@ -0,0 +1,20 @@
+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"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+SRCREV = "715e29fd4cd71b6e452ae0f4e36d917b43122ce8"
+SRC_URI = "git://github.com/fukuchi/libqrencode.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+BBCLASSEXTEND = "native"
+
+EXTRA_OECONF += "--without-tests"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[tools] = "--with-tools,--without-tools,libpng"
diff --git a/meta-oe/recipes-graphics/qrencode/qrencode_git.bb b/meta-oe/recipes-graphics/qrencode/qrencode_git.bb
deleted file mode 100644
index f5397750f5..0000000000
--- a/meta-oe/recipes-graphics/qrencode/qrencode_git.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "C library for encoding data in a QR Code symbol"
-AUTHOR = "Kentaro Fukuchi"
-HOMEPAGE = "http://fukuchi.org/works/qrencode/"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-PV = "4.0.0+git${SRCPV}"
-
-SRCREV = "07f3c5d4bf9136711422cc7dbf28aff469da220a"
-SRC_URI = "git://github.com/fukuchi/libqrencode.git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "--without-tools --without-tests"
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
new file mode 100644
index 0000000000..e96dedfc39
--- /dev/null
+++ b/meta-oe/recipes-graphics/renderdoc/renderdoc/0001-renderdoc-use-xxd-instead-of-cross-compiling-shim-bi.patch
@@ -0,0 +1,57 @@
+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.27.bb b/meta-oe/recipes-graphics/renderdoc/renderdoc_1.27.bb
new file mode 100644
index 0000000000..c89b2d1c99
--- /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 \
+ 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/spir/spirv-shader-generator_git.bb b/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
new file mode 100644
index 0000000000..bf3070701f
--- /dev/null
+++ b/meta-oe/recipes-graphics/spir/spirv-shader-generator_git.bb
@@ -0,0 +1,14 @@
+SUMMARY = "SPIRV-Cross is a tool designed for parsing and converting SPIR-V \
+to other shader languages"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+SECTION = "graphics"
+
+S = "${WORKDIR}/git"
+SRCREV = "f09ba2777714871bddb70d049878af34b94fa54d"
+SRC_URI = "git://github.com/KhronosGroup/SPIRV-Cross.git;branch=master;protocol=https"
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE = "-DSPIRV_CROSS_SHARED=ON"
+
+FILES:${PN} += "${datadir}"
diff --git a/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb b/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb
new file mode 100644
index 0000000000..161650f75d
--- /dev/null
+++ b/meta-oe/recipes-graphics/stalonetray/stalonetray_0.8.3.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Stand-alone system tray"
+DESCRIPTION = "Stalonetray is a stand-alone freedesktop.org and KDE system tray"
+SECTION = "x11/graphics"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+DEPENDS = "virtual/libx11"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2"
+
+SRC_URI[md5sum] = "ae95dbbacc2620e032acea8abab8c9ef"
+SRC_URI[sha256sum] = "36548a588b2d466913423245dda6ffb6313132cd0cec635a117d37b3dab5fd4c"
+
+inherit autotools features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/suckless/st_0.9.bb b/meta-oe/recipes-graphics/suckless/st_0.9.bb
new file mode 100644
index 0000000000..517d467abd
--- /dev/null
+++ b/meta-oe/recipes-graphics/suckless/st_0.9.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] = "f36359799734eae785becb374063f0be833cf22f88b4f169cd251b99324e08e7"
+
+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
new file mode 100644
index 0000000000..6011f4e3ac
--- /dev/null
+++ b/meta-oe/recipes-graphics/surf/surf/0001-config.mk-Fix-compiler-and-linker.patch
@@ -0,0 +1,30 @@
+From 9de4f5fa81891e14e205fe61e1408f1218369e55 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Tue, 18 May 2021 15:03:22 +0000
+Subject: [PATCH] config.mk: Fix compiler and linker
+
+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/config.mk b/config.mk
+index 2eb9fb0..032bf9f 100644
+--- a/config.mk
++++ b/config.mk
+@@ -19,7 +19,7 @@ WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0 gio-
+
+ # includes and libs
+ INCS = $(X11INC) $(GTKINC)
+-LIBS = $(X11LIB) $(GTKLIB) -lgthread-2.0
++LIBS = -lc -lX11 ${GTKLIB} -lgthread-2.0
+
+ # flags
+ CPPFLAGS = -DVERSION=\"$(VERSION)\" -DGCR_API_SUBJECT_TO_CHANGE \
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..d273d1459f
--- /dev/null
+++ b/meta-oe/recipes-graphics/surf/surf/0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch
@@ -0,0 +1,42 @@
+From 0cd38e6dbcaff7eef39fd46a60ff8a47e5f488c4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sun, 3 Oct 2021 23:08:48 +0200
+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(-)
+
+--- a/config.mk
++++ b/config.mk
+@@ -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 = $(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)
diff --git a/meta-oe/recipes-graphics/surf/surf_2.1.bb b/meta-oe/recipes-graphics/surf/surf_2.1.bb
new file mode 100644
index 0000000000..4d9d4d3dd0
--- /dev/null
+++ b/meta-oe/recipes-graphics/surf/surf_2.1.bb
@@ -0,0 +1,31 @@
+SUMMARY = "Simple web browser"
+DESCRIPTION = "Simple open source web browser based on WebKit2/GTK"
+HOMEPAGE = "https://surf.suckless.org/"
+SECTION = "x11/graphics"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2a6f86d002ae9ae1eb1ccc466289f146"
+
+DEPENDS = "webkitgtk3 gtk+3 glib-2.0 gcr3"
+
+REQUIRED_DISTRO_FEATURES = "x11 opengl"
+
+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-linker.patch file://0001-config.ml-make-compatible-with-webkitgtk-2.34.0.patch', '', d)}"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig features_check
+
+PACKAGECONFIG_SOUP ?= "soup3"
+PACKAGECONFIG ??= "${PACKAGECONFIG_SOUP}"
+
+PACKAGECONFIG[soup2] = ",,,"
+PACKAGECONFIG[soup3] = ",,,"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install () {
+ install -D -m 0755 ${S}/surf ${D}${bindir}/surf
+}
diff --git a/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb b/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb
deleted file mode 100644
index d99ff144be..0000000000
--- a/meta-oe/recipes-graphics/takao-fonts/takao-fonts_003.03.01.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Takao Fonts are a community developed derivatives of IPA Fonts."
-DESCRIPTION = "Takao Fonts are a community developed derivatives of IPA Fonts."
-
-HOMEPAGE = "https://launchpad.net/takao-fonts"
-SECTION = "User Interface/X"
-
-LICENSE = "IPA"
-LIC_FILES_CHKSUM = "file://IPA_Font_License_Agreement_v1.0.txt;md5=6cd3351ba979cf9db1fad644e8221276"
-SRC_URI = "https://launchpad.net/${BPN}/trunk/15.03/+download/TakaoFonts_00303.01.tar.xz"
-SRC_URI[md5sum] = "8cd3fe724faa5034a9369e98cf108d2d"
-SRC_URI[sha256sum] = "e9871f72ac69acb3e277aebbee7ca01fbebf54800733e29fafdc46133fc3552f"
-
-S = "${WORKDIR}/TakaoFonts_00303.01"
-do_install() {
- install -m 0755 -d ${D}/${datadir}/fonts
- install -m 0644 -p ${S}/*.ttf ${D}/${datadir}/fonts/
-}
-
-FILES_${PN} += "${datadir}/fonts/*.ttf"
diff --git a/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb b/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb
deleted file mode 100644
index c460fc35c7..0000000000
--- a/meta-oe/recipes-graphics/terminus-font/terminus-font_4.38.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-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"
-LIC_FILES_CHKSUM = "file://OFL.TXT;md5=9cadb26f4c5c005618c5ae74f041ec54"
-
-DEPENDS = "hostperl-runtime-native gzip-native bdftopcf-native"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "a8e792fe6e84c86ed2b6ed3e2a12ba66"
-SRC_URI[sha256sum] = "f6f4876a4dabe6a37c270c20bb9e141e38fb50e0bba200e1b9d0470e5eed97b7"
-
-inherit allarch fontcache
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-PACKAGECONFIG[x11] = ""
-
-# Don't use font cache mecanism for console packages
-FONT_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '${PN}-pcf', '', d)}"
-
-# Hand made configure script. Don't need oe_runconf
-do_configure() {
- chmod +x ${S}/configure
- ${S}/configure --prefix=${prefix} \
- --psfdir=${datadir}/consolefonts \
- --acmdir=${datadir}/consoletrans \
- --x11dir=${datadir}/fonts/terminus
-}
-
-do_compile() {
- oe_runmake DESTDIR=${D} psf txt ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'pcf', '', d)}
-}
-
-do_install() {
- oe_runmake DESTDIR=${D} install-psf install-acm ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'install-pcf', '', d)}
-}
-
-PACKAGES += "${PN}-consolefonts ${PN}-consoletrans ${PN}-pcf"
-FILES_${PN}-consolefonts = "${datadir}/consolefonts"
-FILES_${PN}-consoletrans = "${datadir}/consoletrans"
-FILES_${PN}-pcf = "${datadir}/fonts/terminus"
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
new file mode 100644
index 0000000000..7eddf1da41
--- /dev/null
+++ b/meta-oe/recipes-graphics/terminus-font/terminus-font_4.49.1.bb
@@ -0,0 +1,45 @@
+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"
+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[md5sum] = "1b6acbd221957e33c8a792ebfaf3a659"
+SRC_URI[sha256sum] = "d961c1b781627bf417f9b340693d64fc219e0113ad3a3af1a3424c7aa373ef79"
+
+inherit allarch fontcache
+
+PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = ""
+
+# Don't use font cache mecanism for console packages
+FONT_PACKAGES = "${@bb.utils.contains('PACKAGECONFIG', 'x11', '${PN}-pcf', '', d)}"
+
+# Hand made configure script. Don't need oe_runconf
+do_configure() {
+ chmod +x ${S}/configure
+ ${S}/configure --prefix=${prefix} \
+ --psfdir=${datadir}/consolefonts \
+ --acmdir=${datadir}/consoletrans \
+ --x11dir=${datadir}/fonts/terminus
+}
+
+do_compile() {
+ oe_runmake DESTDIR=${D} psf ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'pcf', '', d)}
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install-psf ${@bb.utils.contains('PACKAGECONFIG', 'x11', 'install-pcf', '', d)}
+}
+
+PACKAGES += "${PN}-consolefonts ${PN}-consoletrans ${PN}-pcf"
+FILES:${PN}-consolefonts = "${datadir}/consolefonts"
+FILES:${PN}-consoletrans = "${datadir}/consoletrans"
+FILES:${PN}-pcf = "${datadir}/fonts/terminus"
diff --git a/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb b/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb
new file mode 100644
index 0000000000..0d45ee765c
--- /dev/null
+++ b/meta-oe/recipes-graphics/tesseract/tesseract-lang_4.1.0.bb
@@ -0,0 +1,26 @@
+SUMMARY = "tesseract-ocr language files"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRCREV = "4767ea922bcc460e70b87b1d303ebdfed0897da8"
+SRC_URI = "git://github.com/tesseract-ocr/tessdata.git;branch=main;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+do_install() {
+ install -d ${D}${datadir}/tessdata
+ cp -R --no-dereference --preserve=mode,links -v ${S}/*.traineddata ${D}${datadir}/tessdata
+}
+
+python populate_packages:prepend () {
+ tessdata_dir= d.expand('${datadir}/tessdata')
+ pkgs = do_split_packages(d, tessdata_dir, r'^([a-z_]*)\.*', '${BPN}-%s', 'tesseract-ocr language files for %s', extra_depends='')
+ pn = d.getVar('PN')
+ d.appendVar('RDEPENDS:' + pn, ' '+' '.join(pkgs))
+}
+
+PACKAGES_DYNAMIC += "^${BPN}-.*"
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb b/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb
deleted file mode 100644
index ac36a91a35..0000000000
--- a/meta-oe/recipes-graphics/tesseract/tesseract-lang_git.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "tesseract-ocr language files"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9648bd7af63bd3cc4f5ac046d12c49e4"
-
-PV = "3.04.00+git${SRCPV}"
-SRCREV = "3cf1e2df1fe1d1da29295c9ef0983796c7958b7d"
-SRC_URI = "git://github.com/tesseract-ocr/tessdata.git"
-S = "${WORKDIR}/git"
-
-inherit allarch
-
-do_install() {
- install -d ${D}${datadir}/tessdata
- cp -R --no-dereference --preserve=mode,links -v ${S}/*.traineddata ${S}/*.cube.* ${S}/*.tesseract_cube.* ${D}${datadir}/tessdata
-}
-
-python populate_packages_prepend () {
- tessdata_dir= d.expand('${datadir}/tessdata')
- pkgs = do_split_packages(d, tessdata_dir, '^([a-z_]*)\.*', '${BPN}-%s', 'tesseract-ocr language files for %s', extra_depends='')
- pn = d.getVar('PN')
- d.appendVar('RDEPENDS_' + pn, ' '+' '.join(pkgs))
-}
-
-PACKAGES_DYNAMIC += "^${BPN}-.*"
-ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-oe/recipes-graphics/tesseract/tesseract_5.3.2.bb b/meta-oe/recipes-graphics/tesseract/tesseract_5.3.2.bb
new file mode 100644
index 0000000000..db66e890fa
--- /dev/null
+++ b/meta-oe/recipes-graphics/tesseract/tesseract_5.3.2.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 = "489f101c7e2276c00490f3ab70e9e7926fc6b481"
+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/tesseract/tesseract_git.bb b/meta-oe/recipes-graphics/tesseract/tesseract_git.bb
deleted file mode 100644
index 89d09a0f55..0000000000
--- a/meta-oe/recipes-graphics/tesseract/tesseract_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A commercial quality OCR engine "
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7ea4f9a43aba9d3c849fe5c203a0ed40"
-
-BRANCH = "3.05"
-PV = "${BRANCH}.01+git${SRCPV}"
-SRCREV = "215866151e774972c9502282111b998d7a053562"
-SRC_URI = "git://github.com/${BPN}-ocr/${BPN}.git;branch=${BRANCH}"
-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 12c437629d..0000000000
--- a/meta-oe/recipes-graphics/tigervnc/files/0001-tigervnc-remove-includedir.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 4b423cd2e5e4296abca3be553bf64d8cc287180a Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 20 Jul 2017 17:09:05 +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 0d6a4ac..854f078 100644
---- a/unix/xserver/hw/vnc/Makefile.am
-+++ b/unix/xserver/hw/vnc/Makefile.am
-@@ -22,7 +22,7 @@ libvnccommon_la_SOURCES = $(HDRS) \
-
- libvnccommon_la_CPPFLAGS = -DVENDOR_RELEASE="$(VENDOR_RELEASE)" \
- -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
-@@ -42,7 +42,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$(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
-@@ -62,7 +62,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/tigervnc/files/0002-do-not-build-tests-sub-directory.patch b/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch
index 4e875ba82b..5a42e67d06 100644
--- a/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch
+++ b/meta-oe/recipes-graphics/tigervnc/files/0002-do-not-build-tests-sub-directory.patch
@@ -1,29 +1,30 @@
-From c3460d63f0b6cd50b9a64265f420f0439e12a1d5 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Tue, 25 Apr 2017 01:36:44 -0400
-Subject: [PATCH 2/4] do not build tests sub directory
+From 076d0e12a7be6cd2108e4ca0dcde1cb658918fa5 Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 19 Apr 2021 23:02:45 -0700
+Subject: [PATCH] do not build tests sub directory
-Upstream-Status: Inappropriate [oe specific]
+Upstream-Status: Inappropriate [OE Specific]
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Hongxu Jia <Hongxu.Jia@windriver.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
CMakeLists.txt | 3 ---
1 file changed, 3 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 94ec2ef..fb72a00 100644
+index 7bf99441..bda80598 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
-@@ -300,9 +300,6 @@ if(BUILD_VIEWER)
+@@ -304,9 +304,6 @@ if(BUILD_VIEWER)
add_subdirectory(media)
endif()
-add_subdirectory(tests)
-
-
- include(cmake/BuildPackages.cmake)
+ add_subdirectory(release)
# uninstall
--
-2.7.4
+2.30.2
diff --git a/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch b/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch
index 97b0a388a2..5f14665b8d 100644
--- a/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch
+++ b/meta-oe/recipes-graphics/tigervnc/files/0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch
@@ -1,44 +1,34 @@
-From 9563b69640227da2220ee0c39077afb736cc96d1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 20 Jul 2017 17:12:17 +0800
-Subject: [PATCH 4/4] tigervnc: add fPIC option to COMPILE_FLAGS
+From 7f8acd59bb2e54f9be25a98dd71534700a9e355a Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Mon, 19 Apr 2021 23:14:28 -0700
+Subject: [PATCH] tigervnc: add fPIC option to COMPILE_FLAGS
-The static libraries in Xregion/network/rdr/rfb were linked by shared
+The static libraries in network/rdr/rfb were linked by shared
library libvnc.so, so we should add fPIC option to COMPILE_FLAGS to fix
relocation issue.
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
---
- common/Xregion/CMakeLists.txt | 1 +
common/network/CMakeLists.txt | 1 +
common/rdr/CMakeLists.txt | 1 +
common/rfb/CMakeLists.txt | 1 +
- 4 files changed, 4 insertions(+)
+ 3 files changed, 3 insertions(+)
-diff --git a/common/Xregion/CMakeLists.txt b/common/Xregion/CMakeLists.txt
-index 40ca97e..9411328 100644
---- a/common/Xregion/CMakeLists.txt
-+++ b/common/Xregion/CMakeLists.txt
-@@ -3,4 +3,5 @@ add_library(Xregion STATIC
-
- if(UNIX)
- libtool_create_control_file(Xregion)
-+ set_target_properties(Xregion PROPERTIES COMPILE_FLAGS -fPIC)
- endif()
diff --git a/common/network/CMakeLists.txt b/common/network/CMakeLists.txt
-index b624c8e..6c06ec9 100644
+index d00ca452..e84e0290 100644
--- a/common/network/CMakeLists.txt
+++ b/common/network/CMakeLists.txt
-@@ -9,4 +9,5 @@ endif()
+@@ -16,4 +16,5 @@ endif()
if(UNIX)
libtool_create_control_file(network)
+ set_target_properties(network PROPERTIES COMPILE_FLAGS -fPIC)
endif()
diff --git a/common/rdr/CMakeLists.txt b/common/rdr/CMakeLists.txt
-index 989ba2f..20f6489 100644
+index 989ba2f4..20f6489d 100644
--- a/common/rdr/CMakeLists.txt
+++ b/common/rdr/CMakeLists.txt
@@ -27,4 +27,5 @@ target_link_libraries(rdr ${RDR_LIBRARIES})
@@ -48,15 +38,15 @@ index 989ba2f..20f6489 100644
+ set_target_properties(rdr PROPERTIES COMPILE_FLAGS -fPIC)
endif()
diff --git a/common/rfb/CMakeLists.txt b/common/rfb/CMakeLists.txt
-index 5047e5e..88838ab 100644
+index fc5a37bf..7f5ce131 100644
--- a/common/rfb/CMakeLists.txt
+++ b/common/rfb/CMakeLists.txt
-@@ -98,4 +98,5 @@ target_link_libraries(rfb ${RFB_LIBRARIES})
+@@ -99,4 +99,5 @@ target_link_libraries(rfb ${RFB_LIBRARIES})
if(UNIX)
libtool_create_control_file(rfb)
+ set_target_properties(rfb PROPERTIES COMPILE_FLAGS -fPIC)
endif()
--
-2.7.4
+2.30.2
diff --git a/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch b/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch
deleted file mode 100644
index 2f342c6835..0000000000
--- a/meta-oe/recipes-graphics/tigervnc/files/0005-Remove-INITARGS-from-xserver119.patch.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From e4ec992984983ac9107efae1f1cc552007e4229e Mon Sep 17 00:00:00 2001
-From: Vishal Biswas <vshlbiswas@ymail.com>
-Date: Mon, 8 May 2017 11:06:11 +0530
-Subject: [PATCH] Remove INITARGS from xserver119.patch
-
-Upstream-Status: Backport
-
----
- unix/xserver119.patch | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/unix/xserver119.patch b/unix/xserver119.patch
-index 614f104..7adf314 100644
---- a/unix/xserver119.patch
-+++ b/unix/xserver119.patch
-@@ -66,7 +66,7 @@ diff -up xserver/mi/miinitext.c.xserver116-rebased xserver/mi/miinitext.c
- #include "globals.h"
-
- +#ifdef TIGERVNC
--+extern void vncExtensionInit(INITARGS);
-++extern void vncExtensionInit(void);
- +#endif
- +
- /* The following is only a small first step towards run-time
---
-2.7.4
-
diff --git a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
new file mode 100644
index 0000000000..5cde7c9fb4
--- /dev/null
+++ b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.11.0.bb
@@ -0,0 +1,133 @@
+DESCRIPTION = "TigerVNC remote display system"
+HOMEPAGE = "http://www.tigervnc.com/"
+LICENSE = "GPL-2.0-or-later"
+SECTION = "x11/utils"
+DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk libpam"
+RDEPENDS:${PN} = "coreutils hicolor-icon-theme perl bash xkbcomp"
+
+LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
+
+S = "${WORKDIR}/git"
+
+inherit autotools cmake features_check pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+B = "${S}"
+
+SRCREV = "540bfc3278e396321124d4b18a798ac2bc18b6ca"
+
+SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.11-branch;protocol=https \
+ file://0002-do-not-build-tests-sub-directory.patch \
+ file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \
+ file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \
+"
+
+# Keep sync with xorg-server in oe-core
+XORG_PN ?= "xorg-server"
+XORG_PV ?= "1.20.6"
+SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg"
+XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}"
+SRC_URI[xorg.md5sum] = "a98170084f2c8fed480d2ff601f8a14b"
+SRC_URI[xorg.sha256sum] = "6316146304e6e8a36d5904987ae2917b5d5b195dc9fc63d67f7aca137e5a51d1"
+
+# It is the directory containing the Xorg source for the
+# machine on which you are building TigerVNC.
+XSERVER_SOURCE_DIR="${S}/unix/xserver"
+
+do_patch[postfuncs] += "do_patch_xserver"
+do_patch_xserver () {
+ for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do
+ install -d ${XSERVER_SOURCE_DIR}/$subdir
+ done
+
+ for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do
+ install -d ${XSERVER_SOURCE_DIR}/$subdir
+ done
+
+ sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \
+ hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \
+ hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in"
+ for i in ${sources}; do
+ install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i;
+ done
+
+ cd ${XORG_S}
+ find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \
+ xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -)
+
+ cd ${XSERVER_SOURCE_DIR}
+ xserverpatch="${S}/unix/xserver120.patch"
+ echo "Apply $xserverpatch"
+ patch -p1 -b --suffix .vnc < $xserverpatch
+}
+
+EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
+ --disable-xwin --disable-xephyr --disable-kdrive --with-pic \
+ --disable-static --disable-xinerama \
+ --with-xkb-output=${localstatedir}/lib/xkb \
+ --disable-glx --disable-dri --disable-dri2 \
+ --disable-config-hal \
+ --disable-config-udev \
+ --without-dtrace \
+ --disable-unit-tests \
+ --disable-devel-docs \
+ --disable-selective-werror \
+ --disable-xshmfence \
+ --disable-config-udev \
+ --disable-dri3 \
+ --disable-libunwind \
+ --without-xmlto \
+ --enable-systemd-logind=no \
+ --disable-xinerama \
+ --disable-xwayland \
+"
+
+EXTRA_OECMAKE += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DCMAKE_INSTALL_UNITDIR=${systemd_unitdir}', '-DINSTALL_SYSTEMD_UNITS=OFF', d)}"
+
+do_configure:append () {
+ olddir=`pwd`
+ cd ${XSERVER_SOURCE_DIR}
+
+ rm -rf aclocal-copy/
+ rm -f aclocal.m4
+
+ export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy"
+ mkdir -p ${ACLOCALDIR}/
+ if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
+ cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/
+ fi
+ if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
+ cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/
+ fi
+ ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
+ chmod +x ./configure
+ ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
+ cd $olddir
+}
+
+do_compile:append () {
+ olddir=`pwd`
+ cd ${XSERVER_SOURCE_DIR}
+
+ oe_runmake
+
+ cd $olddir
+}
+
+do_install:append() {
+ olddir=`pwd`
+ cd ${XSERVER_SOURCE_DIR}/hw/vnc
+
+ oe_runmake 'DESTDIR=${D}' install
+
+ cd $olddir
+}
+
+FILES:${PN} += " \
+ ${libdir}/xorg/modules/extensions \
+ ${datadir}/icons \
+ ${systemd_unitdir} \
+"
+
+FILES:${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug"
diff --git a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb b/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb
deleted file mode 100644
index 469745f2a7..0000000000
--- a/meta-oe/recipes-graphics/tigervnc/tigervnc_1.8.0.bb
+++ /dev/null
@@ -1,132 +0,0 @@
-DESCRIPTION = "TigerVNC remote display system"
-HOMEPAGE = "http://www.tigervnc.com/"
-LICENSE = "GPLv2+"
-SECTION = "x11/utils"
-DEPENDS = "xserver-xorg gnutls jpeg libxtst gettext-native fltk"
-RDEPENDS_${PN} = "chkconfig coreutils hicolor-icon-theme"
-
-LIC_FILES_CHKSUM = "file://LICENCE.TXT;md5=75b02c2872421380bbd47781d2bd75d3"
-
-S = "${WORKDIR}/git"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "x11"
-
-inherit autotools cmake
-B = "${S}"
-
-SRCREV = "4d6e1b8306a8cca8ad5e15ff8201f6ea24459cfd"
-
-SRC_URI = "git://github.com/TigerVNC/tigervnc.git;branch=1.8-branch \
- file://0001-tigervnc-remove-includedir.patch \
- file://0002-do-not-build-tests-sub-directory.patch \
- file://0003-add-missing-dynamic-library-to-FLTK_LIBRARIES.patch \
- file://0004-tigervnc-add-fPIC-option-to-COMPILE_FLAGS.patch \
- file://0005-Remove-INITARGS-from-xserver119.patch.patch \
-"
-
-# Keep sync with xorg-server in oe-core
-XORG_PN ?= "xorg-server"
-XORG_PV ?= "1.19.3"
-SRC_URI += "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${XORG_PV}.tar.bz2;name=xorg"
-XORG_S = "${WORKDIR}/${XORG_PN}-${XORG_PV}"
-SRC_URI[xorg.md5sum] = "015d2fc4b9f2bfe7a626edb63a62c65e"
-SRC_URI[xorg.sha256sum] = "677a8166e03474719238dfe396ce673c4234735464d6dadf2959b600d20e5a98"
-
-# It is the directory containing the Xorg source for the
-# machine on which you are building TigerVNC.
-XSERVER_SOURCE_DIR="${S}/unix/xserver"
-
-do_patch[postfuncs] += "do_patch_xserver"
-do_patch_xserver () {
- for subdir in Xext xkb GL hw/xquartz/bundle hw/xfree86/common; do
- install -d ${XSERVER_SOURCE_DIR}/$subdir
- done
-
- for subdir in hw/dmx/doc man doc hw/dmx/doxygen; do
- install -d ${XSERVER_SOURCE_DIR}/$subdir
- done
-
- sources="hw/xquartz/bundle/cpprules.in man/Xserver.man doc/smartsched \
- hw/dmx/doxygen/doxygen.conf.in xserver.ent.in xkb/README.compiled \
- hw/xfree86/xorgconf.cpp hw/xfree86/Xorg.sh.in"
- for i in ${sources}; do
- install -m 0644 ${XORG_S}/$i ${XSERVER_SOURCE_DIR}/$i;
- done
-
- cd ${XORG_S}
- find . -type f | egrep '.*\.(c|h|am|ac|inc|m4|h.in|pc.in|man.pre|pl|txt)$' | \
- xargs tar cf - | (cd ${XSERVER_SOURCE_DIR} && tar xf -)
-
- cd ${XSERVER_SOURCE_DIR}
- xserverpatch="${S}/unix/xserver119.patch"
- echo "Apply $xserverpatch"
- patch -p1 -b --suffix .vnc < $xserverpatch
-}
-
-EXTRA_OECONF = "--disable-xorg --disable-xnest --disable-xvfb --disable-dmx \
- --disable-xwin --disable-xephyr --disable-kdrive --with-pic \
- --disable-static --disable-xinerama \
- --with-xkb-output=${localstatedir}/lib/xkb \
- --disable-glx --disable-dri --disable-dri2 \
- --disable-config-hal \
- --disable-config-udev \
- --without-dtrace \
- --disable-unit-tests \
- --disable-devel-docs \
- --disable-selective-werror \
- --disable-xshmfence \
- --disable-config-udev \
- --disable-dri3 \
- --disable-libunwind \
- --without-xmlto \
- --enable-systemd-logind=no \
- --disable-xinerama \
- --disable-xwayland \
-"
-
-do_configure_append () {
- olddir=`pwd`
- cd ${XSERVER_SOURCE_DIR}
-
- rm -rf aclocal-copy/
- rm -f aclocal.m4
-
- export ACLOCALDIR="${XSERVER_SOURCE_DIR}/aclocal-copy"
- mkdir -p ${ACLOCALDIR}/
- if [ -d ${STAGING_DATADIR_NATIVE}/aclocal ]; then
- cp-noerror ${STAGING_DATADIR_NATIVE}/aclocal/ ${ACLOCALDIR}/
- fi
- if [ -d ${STAGING_DATADIR}/aclocal -a "${STAGING_DATADIR_NATIVE}/aclocal" != "${STAGING_DATADIR}/aclocal" ]; then
- cp-noerror ${STAGING_DATADIR}/aclocal/ ${ACLOCALDIR}/
- fi
- ACLOCAL="aclocal --system-acdir=${ACLOCALDIR}/" autoreconf -Wcross --verbose --install --force ${EXTRA_AUTORECONF} $acpaths || bbfatal "autoreconf execution failed."
- chmod +x ./configure
- ${CACHED_CONFIGUREVARS} ./configure ${CONFIGUREOPTS} ${EXTRA_OECONF}
- cd $olddir
-}
-
-do_compile_append () {
- olddir=`pwd`
- cd ${XSERVER_SOURCE_DIR}
-
- oe_runmake
-
- cd $olddir
-}
-
-do_install_append() {
- olddir=`pwd`
- cd ${XSERVER_SOURCE_DIR}/hw/vnc
-
- oe_runmake 'DESTDIR=${D}' install
-
- cd $olddir
-}
-
-FILES_${PN} += " \
- ${libdir}/xorg/modules/extensions \
- ${datadir}/icons \
-"
-
-FILES_${PN}-dbg += "${libdir}/xorg/modules/extensions/.debug"
diff --git a/meta-oe/recipes-graphics/tslib/tslib_1.15.bb b/meta-oe/recipes-graphics/tslib/tslib_1.15.bb
deleted file mode 100644
index 7ae941a3cf..0000000000
--- a/meta-oe/recipes-graphics/tslib/tslib_1.15.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "An abstraction layer for touchscreen panel events"
-DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
-events, as well as a filter stack for the manipulation of those events. \
-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 = "LGPLv2+ & GPLv2+"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \
- file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \
-"
-
-SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
- file://ts.conf \
- file://tslib.sh \
-"
-SRC_URI[md5sum] = "9ff36788c9ab76a10b58422227b9629e"
-SRC_URI[sha256sum] = "7ce48807cab655076d71a1ceef3ed0ab8a25df98074981d4a8fd1477ee5f710c"
-
-UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "debounce dejitter iir linear median pthres skip lowpass invert variance input touchkit waveshare"
-PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce"
-PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter"
-PACKAGECONFIG[iir] = "--enable-iir,--disable-iir"
-PACKAGECONFIG[linear] = "--enable-linear,--disable-linear"
-PACKAGECONFIG[median] = "--enable-median,--disable-median"
-PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres"
-PACKAGECONFIG[skip] = "--enable-skip,--disable-skip"
-PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass"
-PACKAGECONFIG[invert] = "--enable-invert,--disable-invert"
-PACKAGECONFIG[variance] = "--enable-variance,--disable-variance"
-PACKAGECONFIG[input] = "--enable-input,--disable-input"
-PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung"
-PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit"
-PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare"
-PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00"
-PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712"
-PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600"
-PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc"
-PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200"
-PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi"
-PACKAGECONFIG[collie] = "--enable-collie,--disable-collie"
-PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2"
-PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000"
-PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre"
-PACKAGECONFIG[galax] = "--enable-galax,--disable-galax"
-PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
-
-do_install_prepend() {
- install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
-}
-
-do_install_append() {
- install -d ${D}${sysconfdir}/profile.d/
- install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
-}
-
-RPROVIDES_tslib-conf = "libts-0.0-conf"
-
-PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput"
-DEBIAN_NOAUTONAME_tslib-conf = "1"
-DEBIAN_NOAUTONAME_tslib-tests = "1"
-DEBIAN_NOAUTONAME_tslib-calibrate = "1"
-DEBIAN_NOAUTONAME_tslib-uinput = "1"
-
-RDEPENDS_${PN} = "tslib-conf"
-RRECOMMENDS_${PN} = "pointercal"
-
-FILES_${PN}-dev += "${libdir}/ts/*.la"
-FILES_tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
-FILES_${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
-FILES_tslib-calibrate += "${bindir}/ts_calibrate"
-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"
diff --git a/meta-oe/recipes-graphics/tslib/tslib_1.22.bb b/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
new file mode 100644
index 0000000000..cb2563225f
--- /dev/null
+++ b/meta-oe/recipes-graphics/tslib/tslib_1.22.bb
@@ -0,0 +1,85 @@
+SUMMARY = "An abstraction layer for touchscreen panel events"
+DESCRIPTION = "Tslib is an abstraction layer for touchscreen panel \
+events, as well as a filter stack for the manipulation of those events. \
+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 = "\
+ file://COPYING;md5=fc178bcd425090939a8b634d1d6a9594 \
+ file://tests/COPYING;md5=a23a74b3f4caf9616230789d94217acb \
+"
+
+SRC_URI = "https://github.com/kergoth/tslib/releases/download/${PV}/tslib-${PV}.tar.xz;downloadfilename=tslib-${PV}.tar.xz \
+ file://ts.conf \
+ file://tslib.sh \
+ "
+SRC_URI[sha256sum] = "aaf0aed410a268d7b51385d07fe4d9d64312038e87c447ec8a24c8db0a15617a"
+
+UPSTREAM_CHECK_URI = "https://github.com/kergoth/tslib/releases"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "debounce dejitter evthres iir linear median pthres skip lowpass invert variance input touchkit waveshare"
+PACKAGECONFIG[debounce] = "--enable-debounce,--disable-debounce"
+PACKAGECONFIG[dejitter] = "--enable-dejitter,--disable-dejitter"
+PACKAGECONFIG[evthres] = "--enable-evthres,--disable-evthres"
+PACKAGECONFIG[iir] = "--enable-iir,--disable-iir"
+PACKAGECONFIG[linear] = "--enable-linear,--disable-linear"
+PACKAGECONFIG[median] = "--enable-median,--disable-median"
+PACKAGECONFIG[pthres] = "--enable-pthres,--disable-pthres"
+PACKAGECONFIG[skip] = "--enable-skip,--disable-skip"
+PACKAGECONFIG[lowpass] = "--enable-lowpass,--disable-lowpass"
+PACKAGECONFIG[invert] = "--enable-invert,--disable-invert"
+PACKAGECONFIG[variance] = "--enable-variance,--disable-variance"
+PACKAGECONFIG[input] = "--enable-input,--disable-input"
+PACKAGECONFIG[tatung] = "--enable-tatung,--disable-tatung"
+PACKAGECONFIG[touchkit] = "--enable-touchkit,--disable-touchkit"
+PACKAGECONFIG[waveshare] = "--enable-waveshare,--disable-waveshare"
+PACKAGECONFIG[ucb1x00] = "--enable-ucb1x00,--disable-ucb1x00"
+PACKAGECONFIG[mk712] = "--enable-mk712,--disable-mk712"
+PACKAGECONFIG[h3600] = "--enable-h3600,--disable-h3600"
+PACKAGECONFIG[dmc] = "--enable-dmc,--disable-dmc"
+PACKAGECONFIG[linear-h2200] = "--enable-linear-h2200,--disable-linear-h2200"
+PACKAGECONFIG[corgi] = "--enable-corgi,--disable-corgi"
+PACKAGECONFIG[collie] = "--enable-collie,--disable-collie"
+PACKAGECONFIG[arctic2] = "--enable-arctic2,--disable-arctic2"
+PACKAGECONFIG[dmc_dus3000] = "--enable-dmc_dus3000,--disable-dmc_dus3000"
+PACKAGECONFIG[cy8mrln-palmpre] = "--enable-cy8mrln-palmpre,--disable-cy8mrln-palmpre"
+PACKAGECONFIG[galax] = "--enable-galax,--disable-galax"
+PACKAGECONFIG[one-wire-ts-input] = "--enable-one-wire-ts-input,--disable-one-wire-ts-input"
+PACKAGECONFIG[debug] = "--enable-debug,--disable-debug"
+
+do_install:prepend() {
+ install -m 0644 ${WORKDIR}/ts.conf ${S}/etc/ts.conf
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/profile.d/
+ install -m 0755 ${WORKDIR}/tslib.sh ${D}${sysconfdir}/profile.d/
+}
+
+RPROVIDES:tslib-conf = "libts-0.0-conf"
+
+PACKAGES =+ "tslib-conf tslib-tests tslib-calibrate tslib-uinput"
+DEBIAN_NOAUTONAME:tslib-conf = "1"
+DEBIAN_NOAUTONAME:tslib-tests = "1"
+DEBIAN_NOAUTONAME:tslib-calibrate = "1"
+DEBIAN_NOAUTONAME:tslib-uinput = "1"
+
+RDEPENDS:${PN} = "tslib-conf"
+RRECOMMENDS:${PN} = "pointercal"
+
+FILES:${PN}-dev += "${libdir}/ts/*.la"
+FILES:tslib-conf = "${sysconfdir}/ts.conf ${sysconfdir}/profile.d/tslib.sh ${datadir}/tslib"
+FILES:${PN} = "${libdir}/*.so.* ${libdir}/ts/*.so*"
+FILES:tslib-calibrate += "${bindir}/ts_calibrate"
+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/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf
new file mode 100644
index 0000000000..badb1b0115
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts/44-source-code-pro-fonts-fontconfig.conf
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<fontconfig>
+ <alias>
+ <family>monospace</family>
+ <prefer>
+ <family>Source Code Pro</family>
+ </prefer>
+ </alias>
+ <alias>
+ <family>Source Code Pro</family>
+ <default>
+ <family>monospace</family>
+ </default>
+ </alias>
+</fontconfig>
+
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb
new file mode 100644
index 0000000000..3402d0d46a
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/source-code-pro-fonts_2.030_1.050.bb
@@ -0,0 +1,29 @@
+require ttf.inc
+
+SUMMARY = "Adobe Source Code Pro"
+HOMEPAGE = "https://github.com/adobe-fonts/source-code-pro"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=c7c16bdc2c96af797293d68503e5c65c"
+
+inherit allarch fontcache
+
+SRC_URI = " \
+ https://github.com/adobe-fonts/source-code-pro/releases/download/2.030R-ro/1.050R-it/source-code-pro-2.030R-ro-1.050R-it.zip \
+ file://44-source-code-pro-fonts-fontconfig.conf \
+"
+SRC_URI[sha256sum] = "da2ac159497d31b0c6d9daa8fc390fb8252e75b4a9805ace6a2c9cccaed4932e"
+S = "${WORKDIR}/source-code-pro-2.030R-ro-1.050R-it"
+
+do_install() {
+ install -d ${D}${sysconfdir}/fonts/conf.d/
+ install -m 0644 ${WORKDIR}/44-source-code-pro-fonts-fontconfig.conf ${D}${sysconfdir}/fonts/conf.d/
+
+ install -d ${D}${datadir}/fonts/truetype/
+ find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES:${PN} = " \
+ ${sysconfdir}/fonts \
+ ${datadir}/fonts \
+"
+
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb
deleted file mode 100644
index 9fbfc8b49c..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_1.004.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Adobe OpenType Pan-CJK font family for Simplified Chinese"
-HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
-LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
-
-inherit allarch fontcache
-
-# Download tends to break - so - or not?
-#EXCLUDE_FROM_WORLD = "1"
-
-SRC_URI = " \
- https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansCN.zip \
- file://44-source-han-sans-cn.conf \
-"
-SRC_URI[md5sum] = "d16abc21f6575bb08894efedbed484a2"
-SRC_URI[sha256sum] = "0a0e1d8e52833bc352d454d8242da03b82c0efc41323fb66f7435e5b39734a4f"
-
-S = "${WORKDIR}/SourceHanSansCN"
-
-do_install() {
- install -d ${D}${sysconfdir}/fonts/conf.d/
- install -m 0644 ${WORKDIR}/44-source-han-sans-cn.conf ${D}${sysconfdir}/fonts/conf.d/
-
- install -d ${D}${datadir}/fonts/truetype/
- find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
-}
-
-FILES_${PN} = " \
- ${sysconfdir}/fonts \
- ${datadir}/fonts \
-"
-
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb
new file mode 100644
index 0000000000..b4a598527e
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-cn-fonts_2.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Simplified Chinese"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+ svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/CN;protocol=http;rev=82 \
+ file://44-source-han-sans-cn.conf \
+"
+SRC_URI[md5sum] = "d16abc21f6575bb08894efedbed484a2"
+SRC_URI[sha256sum] = "0a0e1d8e52833bc352d454d8242da03b82c0efc41323fb66f7435e5b39734a4f"
+
+S = "${WORKDIR}/SourceHanSansCN"
+
+do_install() {
+ install -d ${D}${sysconfdir}/fonts/conf.d/
+ install -m 0644 ${WORKDIR}/44-source-han-sans-cn.conf ${D}${sysconfdir}/fonts/conf.d/
+
+ install -d ${D}${datadir}/fonts/truetype/
+ find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES:${PN} = " \
+ ${sysconfdir}/fonts \
+ ${datadir}/fonts \
+"
+
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb
deleted file mode 100644
index 4a26a2f575..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_1.004.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Adobe OpenType Pan-CJK font family for Japanese"
-HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
-LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
-
-inherit allarch fontcache
-
-# Download tends to break - so - or not?
-#EXCLUDE_FROM_WORLD = "1"
-
-SRC_URI = " \
- https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansJP.zip \
- file://44-source-han-sans-jp.conf \
-"
-SRC_URI[md5sum] = "908fbf97f3df04a6838708c093f1e900"
-SRC_URI[sha256sum] = "dc6dbae3fba35f220bac88ba7130b826c7efe1282f472788fae3628b79be3f54"
-
-S = "${WORKDIR}/SourceHanSansJP"
-
-do_install() {
- install -d ${D}${sysconfdir}/fonts/conf.d/
- install -m 0644 ${WORKDIR}/44-source-han-sans-jp.conf ${D}${sysconfdir}/fonts/conf.d/
-
- install -d ${D}${datadir}/fonts/truetype/
- find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
-}
-
-FILES_${PN} = " \
- ${sysconfdir}/fonts \
- ${datadir}/fonts \
-"
-
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb
new file mode 100644
index 0000000000..6a4509048f
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-jp-fonts_2.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Japanese"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+ svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/JP;protocol=http;rev=82 \
+ file://44-source-han-sans-jp.conf \
+"
+SRC_URI[md5sum] = "908fbf97f3df04a6838708c093f1e900"
+SRC_URI[sha256sum] = "dc6dbae3fba35f220bac88ba7130b826c7efe1282f472788fae3628b79be3f54"
+
+S = "${WORKDIR}/SourceHanSansJP"
+
+do_install() {
+ install -d ${D}${sysconfdir}/fonts/conf.d/
+ install -m 0644 ${WORKDIR}/44-source-han-sans-jp.conf ${D}${sysconfdir}/fonts/conf.d/
+
+ install -d ${D}${datadir}/fonts/truetype/
+ find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES:${PN} = " \
+ ${sysconfdir}/fonts \
+ ${datadir}/fonts \
+"
+
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb
deleted file mode 100644
index c91d1671fe..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_1.004.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Adobe OpenType Pan-CJK font family for Korean"
-HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
-LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
-
-inherit allarch fontcache
-
-# Download tends to break - so - or not?
-#EXCLUDE_FROM_WORLD = "1"
-
-SRC_URI = " \
- https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansKR.zip \
- file://44-source-han-sans-kr.conf \
-"
-SRC_URI[md5sum] = "f8d1bd6c87d8575afdb25e2f46bd81d4"
-SRC_URI[sha256sum] = "38fd15c80f9980492faaa1af39ff873d8a38e45027023fb17d5b10d4b4b0e6af"
-
-S = "${WORKDIR}/SourceHanSansKR"
-
-do_install() {
- install -d ${D}${sysconfdir}/fonts/conf.d/
- install -m 0644 ${WORKDIR}/44-source-han-sans-kr.conf ${D}${sysconfdir}/fonts/conf.d/
-
- install -d ${D}${datadir}/fonts/truetype/
- find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
-}
-
-FILES_${PN} = " \
- ${sysconfdir}/fonts \
- ${datadir}/fonts \
-"
-
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb
new file mode 100644
index 0000000000..5ab5057d86
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-kr-fonts_2.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Korean"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+ svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/TW;protocol=http;rev=82 \
+ file://44-source-han-sans-kr.conf \
+"
+SRC_URI[md5sum] = "f8d1bd6c87d8575afdb25e2f46bd81d4"
+SRC_URI[sha256sum] = "38fd15c80f9980492faaa1af39ff873d8a38e45027023fb17d5b10d4b4b0e6af"
+
+S = "${WORKDIR}/SourceHanSansKR"
+
+do_install() {
+ install -d ${D}${sysconfdir}/fonts/conf.d/
+ install -m 0644 ${WORKDIR}/44-source-han-sans-kr.conf ${D}${sysconfdir}/fonts/conf.d/
+
+ install -d ${D}${datadir}/fonts/truetype/
+ find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES:${PN} = " \
+ ${sysconfdir}/fonts \
+ ${datadir}/fonts \
+"
+
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb
deleted file mode 100644
index 728250538d..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_1.004.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Adobe OpenType Pan-CJK font family for Traditional Chinese"
-HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
-LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=55719faa0112708e946b820b24b14097"
-
-inherit allarch fontcache
-
-# Download tends to break - so - or not?
-#EXCLUDE_FROM_WORLD = "1"
-
-SRC_URI = " \
- https://github.com/adobe-fonts/source-han-sans/raw/release/SubsetOTF/SourceHanSansTW.zip \
- file://44-source-han-sans-tw.conf \
-"
-SRC_URI[md5sum] = "6533b71b31c19e548768f0fc963202f3"
-SRC_URI[sha256sum] = "92ba161921c5cdec5a8f8d5711676f0865b50cee071c25eb4bd4125b5af59fd0"
-
-S = "${WORKDIR}/SourceHanSansTW"
-
-do_install() {
- install -d ${D}${sysconfdir}/fonts/conf.d/
- install -m 0644 ${WORKDIR}/44-source-han-sans-tw.conf ${D}${sysconfdir}/fonts/conf.d/
-
- install -d ${D}${datadir}/fonts/truetype/
- find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
-}
-
-FILES_${PN} = " \
- ${sysconfdir}/fonts \
- ${datadir}/fonts \
-"
-
diff --git a/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb
new file mode 100644
index 0000000000..a2b3fff079
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/source-han-sans-tw-fonts_2.004.bb
@@ -0,0 +1,34 @@
+require ttf.inc
+
+SUMMARY = "Adobe OpenType Pan-CJK font family for Traditional Chinese"
+HOMEPAGE = "https://github.com/adobe-fonts/source-han-sans"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/${LICENSE};md5=fac3a519e5e9eb96316656e0ca4f2b90"
+
+inherit allarch fontcache
+
+# Download tends to break - so - or not?
+#EXCLUDE_FROM_WORLD = "1"
+
+SRC_URI = " \
+ svn://github.com/adobe-fonts/source-han-sans;module=branches/release/SubsetOTF/TW;protocol=http;rev=82 \
+ file://44-source-han-sans-tw.conf \
+"
+SRC_URI[md5sum] = "6533b71b31c19e548768f0fc963202f3"
+SRC_URI[sha256sum] = "92ba161921c5cdec5a8f8d5711676f0865b50cee071c25eb4bd4125b5af59fd0"
+
+S = "${WORKDIR}/SourceHanSansTW"
+
+do_install() {
+ install -d ${D}${sysconfdir}/fonts/conf.d/
+ install -m 0644 ${WORKDIR}/44-source-han-sans-tw.conf ${D}${sysconfdir}/fonts/conf.d/
+
+ install -d ${D}${datadir}/fonts/truetype/
+ find ./ -name '*.otf' -exec install -m 0644 {} ${D}${datadir}/fonts/truetype/ \;
+}
+
+FILES:${PN} = " \
+ ${sysconfdir}/fonts \
+ ${datadir}/fonts \
+"
+
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_1.500.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_1.500.bb
deleted file mode 100644
index ce003e922b..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_1.500.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Ethiopia and Eritrea (Amharic) font - TTF Edition"
-HOMEPAGE = "http://software.sil.org/abyssinica/"
-LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://OFL.txt;md5=1694c7fc245cdc85c9971db707928159"
-
-SRCNAME = "AbyssinicaSIL"
-SRC_URI = "http://software.sil.org/downloads/r/abyssinica/${SRCNAME}-${PV}.zip"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-SRC_URI[md5sum] = "a3d943d18e303197c8d3d92d2de54d1e"
-SRC_URI[sha256sum] = "e48a77d5ab8ee0b06464a5b29be70f292aa25dc1e73eb39ec933bd7fa47bbd86"
-
-FONT_PACKAGES = "${PN}"
-FILES_${PN} = "${datadir}"
-
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_2.100.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_2.100.bb
new file mode 100644
index 0000000000..bce37a2e05
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-abyssinica_2.100.bb
@@ -0,0 +1,15 @@
+require ttf.inc
+
+SUMMARY = "Ethiopia and Eritrea (Amharic) font - TTF Edition"
+HOMEPAGE = "http://software.sil.org/abyssinica/"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://OFL.txt;md5=fd664aaab50445c3c1c97544554a6bda"
+
+SRCNAME = "AbyssinicaSIL"
+SRC_URI = "http://software.sil.org/downloads/r/abyssinica/${SRCNAME}-${PV}.zip"
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+SRC_URI[sha256sum] = "1a1fc8e82f0c0f2e824f42bff05c1f4a0356330a89dc7ba798c1a20bc3e333e0"
+
+FONT_PACKAGES = "${PN}"
+FILES:${PN} = "${datadir}"
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 522f0fb7d7..3fc7f39e85 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
@@ -1,19 +1,18 @@
SUMMARY = "Unicode Mingti (printed) TrueType Font"
HOMEPAGE = "http://www.freedesktop.org/wiki/Software/CJKUnifonts"
LICENSE = "Arphic-Public-License"
-LIC_FILES_CHKSUM = "file://README;md5=62be011094b7865ddc4d1a648444d31a"
+LIC_FILES_CHKSUM = "file://license/english/ARPHICPL.TXT;md5=4555ed88e9a72fc9562af379d07c3350"
SRC_DISTRIBUTE_LICENSES += "${PN}"
-RPROVIDES_${PN} = "virtual-chinese-font"
+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}"
+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 f74e5ce6c3..919dad82e7 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
@@ -6,13 +6,13 @@ LICENSE = "BitstreamVera"
LIC_FILES_CHKSUM = "file://../LICENSE;md5=449b2c30bfe5fa897fe87b8b70b16cfa"
# all subpackages except ${PN}-common itself rdepends on ${PN}-common
-RDEPENDS_${PN}-sans = "${PN}-common"
-RDEPENDS_${PN}-sans-mono = "${PN}-common"
-RDEPENDS_${PN}-sans-condensed = "${PN}-common"
-RDEPENDS_${PN}-serif = "${PN}-common"
-RDEPENDS_${PN}-serif-condensed = "${PN}-common"
-RDEPENDS_${PN}-mathtexgyre = "${PN}-common"
-RDEPENDS_${PN}-common = ""
+RDEPENDS:${PN}-sans = "${PN}-common"
+RDEPENDS:${PN}-sans-mono = "${PN}-common"
+RDEPENDS:${PN}-sans-condensed = "${PN}-common"
+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 \
@@ -20,7 +20,9 @@ SRC_URI = "${SOURCEFORGE_MIRROR}/dejavu/dejavu-fonts-ttf-${PV}.tar.bz2 \
S = "${WORKDIR}/dejavu-fonts-ttf-${PV}/ttf"
-do_install_append () {
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/dejavu/files/dejavu/"
+
+do_install:append () {
install -d ${D}${sysconfdir}/fonts/conf.d/
install -m 0644 ${WORKDIR}/30-dejavu-aliases.conf ${D}${sysconfdir}/fonts/conf.d/
}
@@ -35,13 +37,19 @@ PACKAGES = "\
${PN}-common"
FONT_PACKAGES = "${PN}-sans ${PN}-sans-mono ${PN}-sans-condensed ${PN}-serif ${PN}-serif-condensed ${PN}-mathtexgyre"
-FILES_${PN}-sans = "${datadir}/fonts/truetype/DejaVuSans.ttf ${datadir}/fonts/truetype/DejaVuSans-*.ttf"
-FILES_${PN}-sans-mono = "${datadir}/fonts/truetype/DejaVuSansMono*.ttf"
-FILES_${PN}-sans-condensed = "${datadir}/fonts/truetype/DejaVuSansCondensed*.ttf"
-FILES_${PN}-serif = "${datadir}/fonts/truetype/DejaVuSerif.ttf ${datadir}/fonts/truetype/DejaVuSerif-*.ttf"
-FILES_${PN}-serif-condensed = "${datadir}/fonts/truetype/DejaVuSerifCondensed*.ttf"
-FILES_${PN}-mathtexgyre = "${datadir}/fonts/truetype/DejaVuMathTeXGyre.ttf"
-FILES_${PN}-common = "${sysconfdir}"
+FILES:${PN}-sans = "${datadir}/fonts/truetype/DejaVuSans.ttf ${datadir}/fonts/truetype/DejaVuSans-*.ttf"
+FILES:${PN}-sans-mono = "${datadir}/fonts/truetype/DejaVuSansMono*.ttf"
+FILES:${PN}-sans-condensed = "${datadir}/fonts/truetype/DejaVuSansCondensed*.ttf"
+FILES:${PN}-serif = "${datadir}/fonts/truetype/DejaVuSerif.ttf ${datadir}/fonts/truetype/DejaVuSerif-*.ttf"
+FILES:${PN}-serif-condensed = "${datadir}/fonts/truetype/DejaVuSerifCondensed*.ttf"
+FILES:${PN}-mathtexgyre = "${datadir}/fonts/truetype/DejaVuMathTeXGyre.ttf"
+FILES:${PN}-common = "${sysconfdir}"
SRC_URI[md5sum] = "d0efec10b9f110a32e9b8f796e21782c"
SRC_URI[sha256sum] = "fa9ca4d13871dd122f61258a80d01751d603b4d3ee14095d65453b4e846e17d7"
+
+BBCLASSEXTEND = "native nativesdk"
+
+# Allow installation of fonts into recipe-sysroot-native
+SYSROOT_DIRS_IGNORE:remove = "${datadir}/fonts"
+
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 e62badf778..7fa155a22f 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-droid_git.bb
@@ -8,20 +8,24 @@ SRCREV = "21e6e2de1f0062f949fcc52d0b4559dfa3246e0e"
PV = "0.1+gitr${SRCPV}"
PR = "r3"
-SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master"
+SRC_URI = "git://github.com/android/platform_frameworks_base.git;branch=master;protocol=https"
S = "${WORKDIR}/git/data/fonts"
-do_install_prepend() {
- rm ${S}/Ahem.ttf MTLc3m.ttf DroidSansArabic.ttf DroidSansThai.ttf Clockopia.ttf MTLmr3m.ttf DroidSansHebrew.ttf DroidSansFallbackLegacy.ttf # we're not packaging it
+do_install:append() {
+ for f in Ahem.ttf MTLc3m.ttf DroidSansArabic.ttf DroidSansThai.ttf \
+ Clockopia.ttf MTLmr3m.ttf DroidSansHebrew.ttf \
+ DroidSansFallbackLegacy.ttf; do
+ rm -f ${D}${datadir}/fonts/truetype/$f
+ done
}
PACKAGES = "ttf-droid-sans ttf-droid-sans-mono \
ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif"
FONT_PACKAGES = "ttf-droid-sans ttf-droid-sans-mono ttf-droid-sans-fallback ttf-droid-sans-japanese ttf-droid-serif"
-FILES_ttf-droid-sans = "${datadir}/fonts/truetype/DroidSans.ttf ${datadir}/fonts/truetype/DroidSans-Bold.ttf"
-FILES_ttf-droid-sans-mono = "${datadir}/fonts/truetype/DroidSansMono.ttf"
-FILES_ttf-droid-sans-fallback = "${datadir}/fonts/truetype/DroidSansFallback.ttf"
-FILES_ttf-droid-sans-japanese = "${datadir}/fonts/truetype/DroidSansJapanese.ttf"
-FILES_ttf-droid-serif = "${datadir}/fonts/truetype/DroidSerif*.ttf"
+FILES:ttf-droid-sans = "${datadir}/fonts/truetype/DroidSans.ttf ${datadir}/fonts/truetype/DroidSans-Bold.ttf"
+FILES:ttf-droid-sans-mono = "${datadir}/fonts/truetype/DroidSansMono.ttf"
+FILES:ttf-droid-sans-fallback = "${datadir}/fonts/truetype/DroidSansFallback.ttf"
+FILES:ttf-droid-sans-japanese = "${datadir}/fonts/truetype/DroidSansJapanese.ttf"
+FILES:ttf-droid-serif = "${datadir}/fonts/truetype/DroidSerif*.ttf"
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 6a6258add2..eb13b47b56 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
@@ -2,17 +2,17 @@ require ttf.inc
SUMMARY = "Gentium fonts - TTF Version"
HOMEPAGE = "http://scripts.sil.org/gentium"
-LICENSE = "OFL"
+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}"
-do_install_append() {
+do_install:append() {
install -d ${D}${datadir}/doc/ttf-gentium/
install -d ${D}${datadir}/doc/ttf-gentium-alt/
@@ -25,11 +25,11 @@ do_install_append() {
PACKAGES = "${PN} ${PN}-alt"
FONT_PACKAGES = "${PN} ${PN}-alt"
-FILES_${PN}-alt = "${datadir}/fonts/truetype/GenAI*.ttf \
+FILES:${PN}-alt = "${datadir}/fonts/truetype/GenAI*.ttf \
${datadir}/fonts/truetype/GenAR*.ttf \
${datadir}/doc/ttf-gentium-alt/*"
-FILES_${PN} = "${datadir}/fonts/truetype/GenI*.ttf \
+FILES:${PN} = "${datadir}/fonts/truetype/GenI*.ttf \
${datadir}/fonts/truetype/GenR*.ttf \
${datadir}/doc/ttf-gentium/*"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb
deleted file mode 100644
index 5cd9935d66..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Hunky fonts - TTF Version"
-HOMEPAGE = "http://sourceforge.net/projects/hunkyfonts"
-LICENSE = "LGPL"
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=7fbc338309ac38fefcd64b04bb903e34"
-PR = "r7"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/hunkyfonts/hunkyfonts-${PV}.tar.bz2"
-
-S = "${WORKDIR}/hunkyfonts-${PV}/TTF/"
-
-PACKAGES = "ttf-hunky-sans ttf-hunky-serif"
-FONT_PACKAGES = "ttf-hunky-sans ttf-hunky-serif"
-
-FILES_ttf-hunky-sans = "${datadir}/fonts/truetype/HunkySans*.ttf"
-FILES_ttf-hunky-serif = "${datadir}/fonts/truetype/HunkySerif*.ttf"
-
-SRC_URI[md5sum] = "36444795a356fb8a56c63b2840729bab"
-SRC_URI[sha256sum] = "e0b1849c545b6af276407d93025c73094dd74fc259b07c1d91594fdbb9a0b829"
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
new file mode 100644
index 0000000000..e361ce9f64
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-hunkyfonts_0.3.1.bb
@@ -0,0 +1,20 @@
+require ttf.inc
+
+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"
+
+S = "${WORKDIR}/hunkyfonts-${PV}/TTF"
+
+PACKAGES = "ttf-hunky-sans ttf-hunky-serif"
+FONT_PACKAGES = "ttf-hunky-sans ttf-hunky-serif"
+
+FILES:ttf-hunky-sans = "${datadir}/fonts/truetype/HunkySans*.ttf"
+FILES:ttf-hunky-serif = "${datadir}/fonts/truetype/HunkySerif*.ttf"
+
+SRC_URI[md5sum] = "b933312967842e5737b5415fa22d682a"
+SRC_URI[sha256sum] = "3fc528737ccd12ec3c09c4a91447d241d3c5bceeeb4d24b7f2c29b15c9735328"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
index 20041bb7b3..2ae1d619c0 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-inconsolata_20100526.bb
@@ -10,14 +10,14 @@ SRC_URI = "http://levien.com/type/myfonts/Inconsolata.otf \
S = "${WORKDIR}/ttf-inconsolata-${PV}"
-FILES_${PN} = "${datadir}/fonts/truetype/Inconsolata.ttf \
+FILES:${PN} = "${datadir}/fonts/truetype/Inconsolata.ttf \
${datadir}/doc/ttf-inconsolata/*"
do_configure() {
- mv ${WORKDIR}/Inconsolata.otf ${S}/Inconsolata.ttf
+ cp -fr ${WORKDIR}/Inconsolata.otf ${S}/Inconsolata.ttf
}
-do_install_append() {
+do_install:append() {
install -d ${D}${datadir}/doc/ttf-inconsolata/
install -m 0644 ${WORKDIR}/OFL.txt ${D}${datadir}/doc/ttf-inconsolata/
}
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-ipa_003.03.01.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-ipa_003.03.01.bb
new file mode 100644
index 0000000000..89c48d5fe2
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-ipa_003.03.01.bb
@@ -0,0 +1,21 @@
+require ttf.inc
+
+SUMMARY = "Ipa fonts - TTF Version"
+HOMEPAGE = "https://moji.or.jp/ipafont"
+LICENSE = "IPA"
+LICENSE_URL = "https://moji.or.jp/ipafont/license/"
+LIC_FILES_CHKSUM = "file://IPA_Font_License_Agreement_v1.0.txt;md5=6cd3351ba979cf9db1fad644e8221276 \
+"
+SRC_URI = "https://moji.or.jp/wp-content/ipafont/IPAfont/IPAfont00303.zip "
+
+SRC_URI[sha256sum] = "f755ed79a4b8e715bed2f05a189172138aedf93db0f465b4e20c344a02766fe5"
+
+S = "${WORKDIR}/IPAfont00303"
+
+PACKAGES = "ttf-ipag ttf-ipagp ttf-ipam ttf-ipamp"
+FONT_PACKAGES = "ttf-ipag ttf-ipagp ttf-ipam ttf-ipamp"
+
+FILES:ttf-ipag = "${datadir}/fonts/truetype/ipag.ttf"
+FILES:ttf-ipagp = "${datadir}/fonts/truetype/ipagp.ttf"
+FILES:ttf-ipam = "${datadir}/fonts/truetype/ipam.ttf"
+FILES:ttf-ipamp = "${datadir}/fonts/truetype/ipamp.ttf"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb
index 5b406bc653..f386d6ec58 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-liberation-sans-narrow_1.07.4.bb
@@ -6,7 +6,7 @@ created by Ascender(c) which aims at metric compatibility with \
Arial, Times New Roman, Courier New."
HOMEPAGE = "https://fedorahosted.org/liberation-fonts/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
SRC_URI = "https://releases.pagure.org/liberation-fonts/liberation-fonts-ttf-${PV}.tar.gz \
@@ -18,15 +18,17 @@ SRC_URI[sha256sum] = "61a7e2b6742a43c73e8762cdfeaf6dfcf9abdd2cfa0b099a9854d69bc4
S = "${WORKDIR}/liberation-fonts-ttf-${PV}"
-do_install_append () {
+do_install:append () {
install -d ${D}${datadir}/fonts/TTF/
install -d ${D}${sysconfdir}/fonts/conf.d/
install -m 0644 LiberationSansNarrow*.ttf ${D}${datadir}/fonts/TTF/
install -D -m 0644 ${WORKDIR}/30-0-liberation-sans-narrow.conf ${D}${sysconfdir}/conf.avail/30-${PN}-sans.conf
install -D -m 0644 ${S}/License.txt ${D}${datadir}/licenses/${PN}/LICENSE
+ # normal liberation fonts come from ttf-liberation recipe so delete here
+ rm -rf ${D}${datadir}/fonts/truetype
}
PACKAGES = "${PN}"
FONT_PACKAGES = "${PN}"
-FILES_${PN} = "${datadir}/fonts ${sysconfdir} ${datadir}/licenses"
+FILES:${PN} = "${datadir}/fonts ${sysconfdir} ${datadir}/licenses"
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 7204c926ae..fdcfe0421b 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
@@ -2,7 +2,7 @@ require ttf.inc
SUMMARY = "Liberation fonts - TTF Version"
HOMEPAGE = "https://www.redhat.com/promo/fonts/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://License.txt;md5=5b171c5100029d884fcea21d9a2b7543 \
"
@@ -15,9 +15,9 @@ S = "${WORKDIR}/liberation-fonts-${PV}"
PACKAGES = "ttf-liberation-mono ttf-liberation-sans ttf-liberation-serif"
FONT_PACKAGES = "ttf-liberation-mono ttf-liberation-sans ttf-liberation-serif"
-FILES_ttf-liberation-mono = "${datadir}/fonts/truetype/*Mono*"
-FILES_ttf-liberation-sans = "${datadir}/fonts/truetype/*Sans*"
-FILES_ttf-liberation-serif = "${datadir}/fonts/truetype/*Serif*"
+FILES:ttf-liberation-mono = "${datadir}/fonts/truetype/*Mono*"
+FILES:ttf-liberation-sans = "${datadir}/fonts/truetype/*Sans*"
+FILES:ttf-liberation-serif = "${datadir}/fonts/truetype/*Serif*"
SRC_URI[md5sum] = "77728078a17e39f7c242b42c3bf6feb8"
SRC_URI[sha256sum] = "174cf27c57612971434ec8cc4a52bfd37bad8408e9b9219539c6d5113df6ff8f"
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 2ef6c57e18..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
@@ -2,18 +2,17 @@ require ttf.inc
SUMMARY = "Fonts for Sinhala language - TTF Edition"
HOMEPAGE = "http://rpms.famillecollet.com/rpmphp/zoom.php?rpm=lklug-fonts"
-LICENSE = "GPLv2"
+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"
S = "${WORKDIR}"
FONT_PACKAGES = "${PN}"
-FILES_${PN} = "${datadir}"
+FILES:${PN} = "${datadir}"
do_compile() {
fontforge ${S}/convert.ff lklug
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb
new file mode 100644
index 0000000000..8340cccbb4
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.92.1.bb
@@ -0,0 +1,23 @@
+require ttf.inc
+
+SUMMARY = "The project goal is to improve existing offerings of the fonts \
+- making sure the Lohit fonts deliver the best available quality and functions \
+to the community."
+HOMEPAGE = "https://fedorahosted.org/lohit"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://OFL.txt;md5=7dfa0a236dc535ad2d2548e6170c4402"
+
+SRCREV = "a403c9b7f509dad5e58dde85ef63b1c36fde3a21"
+SRC_URI = "git://github.com/pravins/lohit.git;branch=master;protocol=https"
+
+DEPENDS = "fontforge-native"
+S = "${WORKDIR}/git"
+FONT_PACKAGES = "${PN}"
+FILES:${PN} = "${datadir}"
+
+inherit python3native
+
+do_compile() {
+ cd ${S}; make ttf;
+}
+
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb
deleted file mode 100644
index f9679d606e..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-lohit_2.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-require ttf.inc
-
-SUMMARY = "The project goal is to improve existing offerings of the fonts \
-- making sure the Lohit fonts deliver the best available quality and functions \
-to the community."
-HOMEPAGE = "https://fedorahosted.org/lohit"
-LICENSE = "OFL-1.1"
-LIC_FILES_CHKSUM = "file://OFL.txt;md5=7dfa0a236dc535ad2d2548e6170c4402"
-
-SRCREV = "d678f1b1807ea5602586279e90b5db6d62ed475e"
-SRC_URI = "git://github.com/pravins/lohit.git;branch=master"
-
-DEPENDS = "fontforge-native"
-S = "${WORKDIR}/git"
-FONT_PACKAGES = "${PN}"
-FILES_${PN} = "${datadir}"
-
-inherit pythonnative
-
-do_compile() {
- cd ${S}; make ttf;
-}
-
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 9ad348d9fa..a048075fc4 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-mplus_027.bb
@@ -2,20 +2,19 @@ require ttf.inc
SUMMARY = "MPlus font - TTF Edition"
HOMEPAGE = "http://dejavu.sourceforge.net/wiki/"
-LICENSE = "${PN}"
+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 "
+PACKAGESPLITFUNCS:prepend = "split_ttf_mplus_packages "
python split_ttf_mplus_packages() {
plugindir = d.expand('${datadir}/fonts/ttf-mplus/')
- packages = do_split_packages(d, plugindir, '^(.*)\.ttf$', 'ttf-%s', 'TTF Font %s')
+ packages = do_split_packages(d, plugindir, r'^(.*)\.ttf$', 'ttf-%s', 'TTF Font %s')
d.setVar('FONT_PACKAGES', ' '.join(packages))
}
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20200916.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20200916.bb
new file mode 100644
index 0000000000..9d6a9a6c2e
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-noto-emoji_20200916.bb
@@ -0,0 +1,19 @@
+require ttf.inc
+
+SUMMARY = "Google noto emoji font pack"
+HOMEPAGE = "https://github.com/googlefonts/noto-emoji"
+LICENSE = "OFL-1.1"
+LIC_FILES_CHKSUM = "file://fonts/LICENSE;md5=55719faa0112708e946b820b24b14097"
+
+SRC_URI = "git://github.com/googlefonts/noto-emoji;branch=main;protocol=https"
+SRCREV = "aac7ccaa4d1dea4543453b96f7d6fc47066a57ff"
+
+PACKAGES = "${PN}-color ${PN}-regular"
+FONT_PACKAGES = "${PN}-color ${PN}-regular"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN}-color = "${datadir}/fonts/truetype/NotoColorEmoji.ttf"
+FILES:${PN}-regular = "${datadir}/fonts/truetype/NotoEmoji-Regular.ttf"
+
+do_compile[noexec] = "1"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb
index ac60a365f0..e9aa5721f7 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-pt-sans_1.1.bb
@@ -24,9 +24,9 @@ do_install () {
done
}
-FILES_${PN} += "${datadir}"
+FILES:${PN} += "${datadir}"
-pkg_postinst_${PN} () {
+pkg_postinst:${PN} () {
set -x
for fontdir in `find $D/usr/lib/X11/fonts -type d`; do
mkfontdir $fontdir
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb
new file mode 100644
index 0000000000..1870c78f99
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-roboto_2.138.bb
@@ -0,0 +1,14 @@
+require ttf.inc
+
+SUMMARY = "Roboto fonts"
+HOMEPAGE = "https://fonts.google.com/specimen/Roboto"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI = "https://github.com/google/roboto/releases/download/v${PV}/roboto-android.zip"
+SRC_URI[md5sum] = "3b43a5cb33196ec25e44d5fcb40219e1"
+SRC_URI[sha256sum] = "c825453253f590cfe62557733e7173f9a421fff103b00f57d33c4ad28ae53baf"
+
+S = "${WORKDIR}"
+
+FILES:${PN} = "${datadir}/fonts/truetype/*.ttf"
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 efdcec8404..945a5f3a85 100644
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-sazanami_20040629.bb
@@ -1,14 +1,14 @@
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"
+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"
+RPROVIDES:${PN} = "virtual-japanese-font"
PR = "r9"
SRC_URI = "http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2"
@@ -17,12 +17,12 @@ S = "${WORKDIR}/sazanami-20040629"
PACKAGES = "ttf-sazanami-gothic ttf-sazanami-mincho"
FONT_PACKAGES = "ttf-sazanami-gothic ttf-sazanami-mincho"
-FILES_ttf-sazanami-gothic = "${datadir}/fonts/truetype/sazanami-gothic.ttf \
+FILES:ttf-sazanami-gothic = "${datadir}/fonts/truetype/sazanami-gothic.ttf \
${datadir}/doc/ttf-sazanami-gothic/README"
-FILES_ttf-sazanami-mincho = "${datadir}/fonts/truetype/sazanami-mincho.ttf \
+FILES:ttf-sazanami-mincho = "${datadir}/fonts/truetype/sazanami-mincho.ttf \
${datadir}/doc/ttf-sazanami-mincho/README"
-do_install_append() {
+do_install:append() {
# README contains the redistribution license
install -d ${D}${datadir}/doc/
install -d ${D}${datadir}/doc/ttf-sazanami-gothic
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-takao_003.03.01.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-takao_003.03.01.bb
new file mode 100644
index 0000000000..be0e544ccc
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-takao_003.03.01.bb
@@ -0,0 +1,25 @@
+require ttf.inc
+
+SUMMARY = "Takao Fonts are a community developed derivatives of IPA Fonts."
+DESCRIPTION = "Takao Fonts are a community developed derivatives of IPA Fonts."
+
+HOMEPAGE = "https://launchpad.net/takao-fonts"
+SECTION = "User Interface/X"
+
+LICENSE = "IPA"
+LIC_FILES_CHKSUM = "file://IPA_Font_License_Agreement_v1.0.txt;md5=6cd3351ba979cf9db1fad644e8221276"
+
+SRC_URI = "https://launchpad.net/${BPN}/trunk/15.03/+download/TakaoFonts_00303.01.tar.xz"
+SRC_URI[sha256sum] = "e9871f72ac69acb3e277aebbee7ca01fbebf54800733e29fafdc46133fc3552f"
+
+S = "${WORKDIR}/TakaoFonts_00303.01"
+
+PACKAGES = "ttf-takao-pgothic ttf-takao-gothic ttf-takao-pmincho ttf-takao-mincho"
+FONT_PACKAGES = "ttf-takao-pgothic ttf-takao-gothic ttf-takao-pmincho ttf-takao-mincho"
+
+FILES:ttf-takao-pgothic = "${datadir}/fonts/truetype/TakaoPGothic.ttf"
+FILES:ttf-takao-gothic = "${datadir}/fonts/truetype/TakaoGothic.ttf"
+FILES:ttf-takao-pmincho = "${datadir}/fonts/truetype/TakaoPMincho.ttf"
+FILES:ttf-takao-mincho = "${datadir}/fonts/truetype/TakaoMincho.ttf"
+
+FILES:${PN} += "${datadir}/fonts/*.ttf"
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 06a3fe5338..3dad368408 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
@@ -3,7 +3,7 @@ require ttf.inc
SUMMARY = "Thai Linux Working Group Fonts"
AUTHOR = "Thai Linux Working Group"
HOMEPAGE = "http://linux.thai.net/projects/fonts-tlwg"
-LICENSE = "GPLv2 & TLWG"
+LICENSE = "GPL-2.0-only & TLWG"
LIC_FILES_CHKSUM = "file://../fonts-tlwg-${PV}/COPYING;md5=3d20cd7eadf4afd5460c0adb32e387fd"
SRC_URI = "http://linux.thai.net/pub/ThaiLinux/software/fonts-tlwg/fonts-tlwg-${PV}.tar.xz;name=source \
@@ -13,7 +13,7 @@ SRC_URI[source.sha256sum] = "77fb9832221fde60c9f683ac3fdce7d45ab6e9c0d83df83da96
SRC_URI[ttf.md5sum] = "1bc51f45a7b661404a944fab6911261c"
SRC_URI[ttf.sha256sum] = "aa9cd68969b6f704df3e5b1a2e11204c47f118c8ab052f04c111bd5f299f77c8"
-do_install_append () {
+do_install:append () {
install -d ${D}${sysconfdir}/fonts/conf.d
for x in ${S}/etc/fonts/conf.avail/*.conf; do
@@ -24,4 +24,4 @@ do_install_append () {
PACKAGES = "${PN}"
FONT_PACKAGES = "${PN}"
-FILES_${PN} = "${datadir}/fonts ${sysconfdir}"
+FILES:${PN} = "${datadir}/fonts ${sysconfdir}"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb
deleted file mode 100644
index d5d1b9a177..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.80.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Ubuntu Font Family - TTF Version"
-HOMEPAGE = "http://font.ubuntu.com"
-LICENSE = "UFL"
-LIC_FILES_CHKSUM = "file://LICENCE.txt;md5=325a1a9029112a2405e743c7f816427b"
-PR = "r1"
-
-SRC_URI = "http://font.ubuntu.com/download/ubuntu-font-family-${PV}.zip"
-
-SRC_URI[md5sum] = "a1fc70f5a5b1d096ab8310886cddaa1c"
-SRC_URI[sha256sum] = "107170099bbc3beae8602b97a5c423525d363106c3c24f787d43e09811298e4c"
-
-S = "${WORKDIR}/ubuntu-font-family-${PV}"
-
-PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans"
-FONT_PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans"
-
-FILES_ttf-ubuntu-mono = "${datadir}/fonts/truetype/*Mono*"
-FILES_ttf-ubuntu-sans = "${datadir}/fonts/truetype/Ubuntu-*"
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
new file mode 100644
index 0000000000..e81515f85e
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-ubuntu-font-family_0.83.bb
@@ -0,0 +1,23 @@
+require ttf.inc
+
+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"
+
+SRC_URI = "https://assets.ubuntu.com/v1/${SHA1SUM}-ubuntu-font-family-${PV}.zip"
+
+
+SRC_URI[md5sum] = "c5a5059d6856b4ddf79d824dcaf5ad32"
+SRC_URI[sha256sum] = "61a2b342526fd552f19fef438bb9211a8212de19ad96e32a1209c039f1d68ecf"
+
+S = "${WORKDIR}/ubuntu-font-family-${PV}"
+
+PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans"
+FONT_PACKAGES = "ttf-ubuntu-mono ttf-ubuntu-sans"
+
+FILES:ttf-ubuntu-mono = "${datadir}/fonts/truetype/*Mono*"
+FILES:ttf-ubuntu-sans = "${datadir}/fonts/truetype/Ubuntu-*"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20141206.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20141206.bb
deleted file mode 100644
index 62f2bb2805..0000000000
--- a/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20141206.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-require ttf.inc
-
-SUMMARY = "Japanese TrueType fonts from Vine Linux"
-AUTHOR = "Contributor: noonov <noonov@gmail.com>"
-HOMEPAGE = "http://vlgothic.dicey.org/"
-
-LICENSE = "mplus & BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.en;md5=66ecd0fd7e4da6246fa30317c7b66755 \
- file://LICENSE_E.mplus;md5=1c4767416f20215f1e61b970f2117db9 \
-"
-
-SRC_URI = "https://osdn.jp/dl/vlgothic/VLGothic-${PV}.tar.xz"
-
-SRC_URI[md5sum] = "bb7fadb2dff09a4fb6a11dc9dfdc0c36"
-SRC_URI[sha256sum] = "982040db2f9cb73d7c6ab7d9d163f2ed46d1180f330c9ba2fae303649bf8102d"
-
-S = "${WORKDIR}/VLGothic"
-
-do_install_append () {
- install -D -m644 ${S}/LICENSE_E.mplus ${D}${datadir}/licenses/${PN}/COPYING_MPLUS.txt
- install -D -m644 ${S}/README.sazanami ${D}${datadir}/licenses/${PN}/COPYING_SAZANAMI.txt
- install -D -m644 ${S}/LICENSE.en ${D}${datadir}/licenses/${PN}/COPYING_VLGOTHIC.txt
-}
-
-PACKAGES = "${PN}"
-FONT_PACKAGES = "${PN}"
-
-FILES_${PN} = "${datadir}/fonts/truetype ${datadir}/licenses"
diff --git a/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb b/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
new file mode 100644
index 0000000000..6b79eb9197
--- /dev/null
+++ b/meta-oe/recipes-graphics/ttf-fonts/ttf-vlgothic_20200720.bb
@@ -0,0 +1,27 @@
+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"
+LIC_FILES_CHKSUM = "file://LICENSE.en;md5=cc06b20e7a20bdf6c989624405378303 \
+ file://LICENSE_E.mplus;md5=1c4767416f20215f1e61b970f2117db9 \
+"
+
+SRC_URI = "https://osdn.jp/dl/vlgothic/VLGothic-${PV}.tar.xz"
+
+SRC_URI[sha256sum] = "297a3813675fbea12c5813b55a78091c9a5946515ecbf9fde8b8102e01c579f4"
+
+S = "${WORKDIR}/VLGothic"
+
+do_install:append () {
+ install -D -m644 ${S}/LICENSE_E.mplus ${D}${datadir}/licenses/${PN}/COPYING_MPLUS.txt
+ install -D -m644 ${S}/README.sazanami ${D}${datadir}/licenses/${PN}/COPYING_SAZANAMI.txt
+ install -D -m644 ${S}/LICENSE.en ${D}${datadir}/licenses/${PN}/COPYING_VLGOTHIC.txt
+}
+
+PACKAGES = "${PN}"
+FONT_PACKAGES = "${PN}"
+
+FILES:${PN} = "${datadir}/fonts/truetype ${datadir}/licenses"
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 1207a61b84..bc14febadb 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
@@ -3,7 +3,7 @@ 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 = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=cf540fc7d35b5777e36051280b3a911c"
SRC_URI = "${SOURCEFORGE_MIRROR}/wqy/wqy-zenhei-${PV}.tar.gz"
@@ -12,7 +12,7 @@ SRC_URI[sha256sum] = "e4b7e306475bf9427d1757578f0e4528930c84c44eaa3f167d4c42f110
S = "${WORKDIR}/wqy-zenhei"
-do_install_append () {
+do_install:append () {
sed -i -e '/<string>[^W]/d' ${S}/44-wqy-zenhei.conf
install -d ${D}${sysconfdir}/fonts/conf.d
@@ -24,4 +24,4 @@ do_install_append () {
PACKAGES = "${PN}"
FONT_PACKAGES = "${PN}"
-FILES_${PN} = "${datadir}/fonts ${sysconfdir}"
+FILES:${PN} = "${datadir}/fonts ${sysconfdir}"
diff --git a/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch
new file mode 100644
index 0000000000..0c9fe62b1f
--- /dev/null
+++ b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes/0001-build-use-autotools.patch
@@ -0,0 +1,238 @@
+From 2a5cf5021b56bc92c9953d2c82e8c90502d22c97 Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+Date: Fri, 13 Sep 2019 10:20:53 +0200
+Subject: [PATCH] build: use autotools
+
+This removes the hand-crafted Makefile in favor of standardized autotools
+build configuration. This is done to allow for easy cross-compilation of
+this project.
+
+Upstream-Status: Submitted
+
+Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
+---
+ .gitignore | 17 ++++++++++++
+ Makefile | 66 ---------------------------------------------
+ Makefile.am | 10 +++++++
+ configure.ac | 36 +++++++++++++++++++++++++
+ include/Makefile.am | 9 +++++++
+ man/Makefile.am | 7 +++++
+ obj/.gitkeep | 0
+ src/Makefile.am | 13 +++++++++
+ 8 files changed, 92 insertions(+), 66 deletions(-)
+ delete mode 100644 Makefile
+ create mode 100644 Makefile.am
+ create mode 100644 configure.ac
+ create mode 100644 include/Makefile.am
+ create mode 100644 man/Makefile.am
+ delete mode 100644 obj/.gitkeep
+ create mode 100644 src/Makefile.am
+
+diff --git a/.gitignore b/.gitignore
+index af88e94..4e7355a 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -3,3 +3,20 @@ obj/*.o
+ man/*.1
+ man/*.xml
+ test/GLOB*
++*.o
++
++# autotools stuff
++.deps/
++Makefile
++Makefile.in
++aclocal.m4
++autom4te.cache/
++autostuff/
++config.h
++config.h.in
++config.h.in~
++config.log
++config.status
++configure
++m4/
++stamp-h1
+diff --git a/Makefile b/Makefile
+deleted file mode 100644
+index 6264da0..0000000
+--- a/Makefile
++++ /dev/null
+@@ -1,66 +0,0 @@
+-TARGET = unclutter
+-VERSION = 1.6
+-SDIR = src
+-IDIR = include
+-ODIR = obj
+-
+-INSTALL = install
+-PREFIX = /usr
+-
+-BINDIR = $(PREFIX)/bin
+-MANDIR = $(PREFIX)/share/man/man1
+-LICENSEDIR = $(PREFIX)/share/licenses/$(TARGET)
+-
+-CC = gcc
+-LD = $(CC)
+-PKG_CONFIG = pkg-config
+-
+-CPPFLAGS += -D'__VERSION="${VERSION}"' "-I$(IDIR)"
+-
+-CFLAGS += -std=gnu99
+-CFLAGS += -Wall -Wundef -Wshadow -Wformat-security
+-
+-LDFLAGS += $(shell $(PKG_CONFIG) --libs x11 xi xfixes)
+-# libev has no pkg-config support
+-LDFLAGS += -lev
+-
+-INCS = $(wildcard $(IDIR)/*.h)
+-SRCS = $(wildcard $(SDIR)/*.c)
+-OBJS = $(patsubst %,$(ODIR)/%,$(notdir $(SRCS:.c=.o)))
+-
+-MANS = man/unclutter-xfixes.1
+-
+-.NOTPARALLEL:
+-
+-.PHONY: all
+-all: clean $(TARGET) mans
+-
+-.PHONY: $(TARGET)
+-$(TARGET): $(OBJS)
+- $(LD) $(OBJS) $(LDFLAGS) -o "$(TARGET)"
+-
+-$(ODIR)/%.o: $(SDIR)/%.c $(INCS)
+- $(CC) $(CPPFLAGS) $(CFLAGS) -o "$@" -c "$<"
+-
+-.PHONY: install
+-install: $(TARGET) mans
+- $(INSTALL) -Dm 0755 "$(TARGET)" "$(DESTDIR)$(BINDIR)/$(TARGET)"
+- $(INSTALL) -Dm 0644 man/unclutter-xfixes.1 "$(DESTDIR)$(MANDIR)/unclutter.1"
+- $(INSTALL) -Dm 0644 -t "$(DESTDIR)$(LICENSEDIR)/" LICENSE
+-
+-.PHONY: uninstall
+-uninstall:
+- $(RM) "$(DESTDIR)$(BINDIR)/$(TARGET)"
+- $(RM) "$(DESTDIR)$(MANDIR)/unclutter.1"
+- $(RM) "$(DESTDIR)$(LICENSEDIR)/LICENSE"
+-
+-.PHONY: mans
+-mans: $(MANS)
+-
+-$(MANS): %.1: %.man
+- a2x --no-xmllint -f manpage "$<"
+-
+-.PHONY: clean
+-clean:
+- $(RM) $(TARGET) $(OBJS)
+- $(RM) man/*.1 man/*.xml
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 0000000..38ecaa1
+--- /dev/null
++++ b/Makefile.am
+@@ -0,0 +1,10 @@
++ACLOCAL_AMFLAGS = -I m4
++AUTOMAKE_OPTIONS = foreign
++SUBDIRS = include src
++
++if HAS_A2X
++SUBDIRS += man
++endif
++
++licensedir = $(datadir)/licenses/unclutter
++license_DATA = LICENSE
+diff --git a/configure.ac b/configure.ac
+new file mode 100644
+index 0000000..1d59197
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,36 @@
++AC_PREREQ(2.61)
++
++AC_INIT([unclutter-xfixes], 1.6)
++AC_DEFINE_UNQUOTED([VERSION], ["$PACKAGE_VERSION"])
++
++AC_CONFIG_AUX_DIR([autostuff])
++AC_CONFIG_MACRO_DIRS([m4])
++AM_INIT_AUTOMAKE([foreign subdir-objects])
++
++m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
++
++AC_CONFIG_SRCDIR([src])
++AC_CONFIG_HEADER([config.h])
++
++AM_PROG_AR
++AC_PROG_CC
++AC_PROG_INSTALL
++
++# libev has no pkg-config support
++AC_CHECK_HEADERS([ev.h], [], [AC_MSG_ERROR([ev.h not found - please install libev])])
++
++PKG_CHECK_MODULES([X11], [x11 xi xfixes])
++
++AC_CHECK_PROG([has_a2x], [a2x], [true], [false])
++AM_CONDITIONAL([HAS_A2X], [test "x$has_a2x" = xtrue])
++if test "x$has_a2x" = xfalse
++then
++ AC_MSG_NOTICE([a2x not found - needed to generate man pages])
++fi
++
++AC_CONFIG_FILES([Makefile
++ include/Makefile
++ src/Makefile
++ man/Makefile])
++
++AC_OUTPUT
+diff --git a/include/Makefile.am b/include/Makefile.am
+new file mode 100644
+index 0000000..90d8bbc
+--- /dev/null
++++ b/include/Makefile.am
+@@ -0,0 +1,9 @@
++noinst_HEADERS = \
++ all.h \
++ cursor.h \
++ event.h \
++ extensions.h \
++ externals.h \
++ globals.h \
++ types.h \
++ util.h
+diff --git a/man/Makefile.am b/man/Makefile.am
+new file mode 100644
+index 0000000..7856e6a
+--- /dev/null
++++ b/man/Makefile.am
+@@ -0,0 +1,7 @@
++unclutter-xfixes.1:
++ a2x --no-xmllint -f manpage unclutter-xfixes.man
++
++dist_man1_MANS = unclutter-xfixes.1
++
++clean-local:
++ rm -f unclutter-xfixes.1
+diff --git a/obj/.gitkeep b/obj/.gitkeep
+deleted file mode 100644
+index e69de29..0000000
+diff --git a/src/Makefile.am b/src/Makefile.am
+new file mode 100644
+index 0000000..c7f0729
+--- /dev/null
++++ b/src/Makefile.am
+@@ -0,0 +1,13 @@
++AM_CFLAGS = -D'__VERSION="${VERSION}"' "-I$(top_srcdir)/include"
++AM_CFLAGS += -std=gnu99 -Wall -Wundef -Wshadow -Wformat-security
++AM_CFLAGS += $(X11_CFLAGS)
++AM_LDFLAGS = -lev $(X11_LIBS)
++
++bin_PROGRAMS = unclutter
++
++unclutter_SOURCES = \
++ cursor.c \
++ event.c \
++ extensions.c \
++ unclutter.c \
++ util.c
+--
+2.21.0
+
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
new file mode 100644
index 0000000000..f3602f1947
--- /dev/null
+++ b/meta-oe/recipes-graphics/unclutter-xfixes/unclutter-xfixes_1.6.bb
@@ -0,0 +1,23 @@
+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"
+
+SRC_URI = "git://github.com/Airblader/unclutter-xfixes.git;branch=master;protocol=https \
+ file://0001-build-use-autotools.patch"
+SRCREV = "160ae3760a51126eb225ce77d83e4706eccd4ed9"
+
+inherit autotools pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS = "libev libx11 libxi libxfixes"
+
+S = "${WORKDIR}/git"
+
+do_install:append() {
+ # LICENSE is installed to /usr/share/licenses but we don't want it in the package
+ rm -rf ${D}${datadir}
+}
diff --git a/meta-oe/recipes-graphics/vdpau/libvdpau_1.5.bb b/meta-oe/recipes-graphics/vdpau/libvdpau_1.5.bb
new file mode 100644
index 0000000000..db3c045588
--- /dev/null
+++ b/meta-oe/recipes-graphics/vdpau/libvdpau_1.5.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Video Decode and Presentation API for UNIX"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=83af8811a28727a13f04132cc33b7f58"
+
+DEPENDS = "virtual/libx11 libxext xorgproto"
+
+SRCREV = "79f1506a3307d3275b0fdfb2e110c173f68e6f78"
+SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau;branch=master"
+
+S = "${WORKDIR}/git"
+
+inherit features_check meson pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+do_install:append() {
+ rm -f ${D}${libdir}/*/*.la
+}
+
+FILES:${PN}-dbg += "${libdir}/vdpau/.debug"
+FILES:${PN}-dev += "${libdir}/vdpau/lib*${SOLIBSDEV}"
+FILES:${PN} += "${libdir}/vdpau/lib*${SOLIBS}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb b/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
deleted file mode 100644
index b79a562c8e..0000000000
--- a/meta-oe/recipes-graphics/vdpau/libvdpau_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Video Decode and Presentation API for UNIX"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=83af8811a28727a13f04132cc33b7f58"
-
-DEPENDS = "virtual/libx11 libxext xorgproto"
-
-PV = "1.1.1+git${SRCPV}"
-
-SRCREV = "a21bf7aa438f5dd40d0a300a3167aa3d6f26dccc"
-SRC_URI = "git://anongit.freedesktop.org/vdpau/libvdpau"
-
-S = "${WORKDIR}/git"
-
-inherit distro_features_check autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-do_install_append() {
- rm -f ${D}${libdir}/*/*.la
-}
-
-FILES_${PN}-dbg += "${libdir}/vdpau/.debug"
-FILES_${PN}-dev += "${libdir}/vdpau/lib*${SOLIBSDEV}"
-FILES_${PN} += "${libdir}/vdpau/lib*${SOLIBS}"
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
new file mode 100644
index 0000000000..c29d80aa10
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-Remove-dead-variable-984.patch
@@ -0,0 +1,34 @@
+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
new file mode 100644
index 0000000000..d7000b7da1
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch
@@ -0,0 +1,37 @@
+From ec12bb7bda60cdf2c848e13df67452a7d30a42be Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 3 Sep 2022 18:52:42 -0700
+Subject: [PATCH] cmake: Define WAYLAND_SCANNER and WAYLAND_PROTOCOLS_DIR if
+ not already defined
+
+This helps with cross compiling and providing these knobs from cmake
+cmdline
+
+Upstream-Status: Pending
+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)
+ 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)
++ 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
+
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/files/0001-include-missing-cstdint.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-include-missing-cstdint.patch
new file mode 100644
index 0000000000..47d9fc748a
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/0001-include-missing-cstdint.patch
@@ -0,0 +1,61 @@
+From 74cf53d89529902ecdef5b230421bc4d30fd089b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 25 Jan 2023 15:36:14 -0800
+Subject: [PATCH] include missing <cstdint>
+
+gcc-13 exposed errors like below due to it removing indirect includes of
+these headers in libstdc++ [1]
+
+../git/external/amber/src/include/amber/shader_info.h:60:15: error: 'uint32_t' was not declared in this scope
+ 60 | std::vector<uint32_t> shader_data;
+ | ^~~~~~~~
+
+[1] https://www.gnu.org/software/gcc/gcc-13/porting_to.html
+
+Upstream-Status: Submitted [https://github.com/google/amber/pull/1016]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ include/amber/recipe.h | 1 +
+ include/amber/shader_info.h | 1 +
+ src/descriptor_set_and_binding_parser.h | 1 +
+ 3 files changed, 3 insertions(+)
+
+diff --git a/include/amber/recipe.h b/include/amber/recipe.h
+index 310a86a..1b83213 100644
+--- a/include/amber/recipe.h
++++ b/include/amber/recipe.h
+@@ -15,6 +15,7 @@
+ #ifndef AMBER_RECIPE_H_
+ #define AMBER_RECIPE_H_
+
++#include <cstdint>
+ #include <string>
+ #include <utility>
+ #include <vector>
+diff --git a/include/amber/shader_info.h b/include/amber/shader_info.h
+index 6c9126a..b5ce751 100644
+--- a/include/amber/shader_info.h
++++ b/include/amber/shader_info.h
+@@ -15,6 +15,7 @@
+ #ifndef AMBER_SHADER_INFO_H_
+ #define AMBER_SHADER_INFO_H_
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+diff --git a/src/descriptor_set_and_binding_parser.h b/src/descriptor_set_and_binding_parser.h
+index 145aa42..4b0d774 100644
+--- a/src/descriptor_set_and_binding_parser.h
++++ b/src/descriptor_set_and_binding_parser.h
+@@ -15,6 +15,7 @@
+ #ifndef SRC_DESCRIPTOR_SET_AND_BINDING_PARSER_H_
+ #define SRC_DESCRIPTOR_SET_AND_BINDING_PARSER_H_
+
++#include <cstdint>
+ #include <string>
+
+ #include "amber/result.h"
+--
+2.39.1
+
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/files/0001-use-library-sonames-for-linking.patch
new file mode 100644
index 0000000000..b5a1d331ed
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/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)
+@@ -234,7 +234,7 @@ glu::RenderContext* ContextFactory::crea
+ }
+
+ EglRenderContext::EglRenderContext(const glu::RenderConfig& config, const tcu::CommandLine& cmdLine)
+- : 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/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/fix-clang-private-operator.patch b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
new file mode 100644
index 0000000000..4ecc371ca4
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-clang-private-operator.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Pending
+
+--- a/external/glslang/src/glslang/Include/PoolAlloc.h
++++ b/external/glslang/src/glslang/Include/PoolAlloc.h
+@@ -240,8 +240,9 @@ protected:
+
+ int numCalls; // just an interesting statistic
+ size_t totalBytes; // just an interesting statistic
+-private:
++public:
+ TPoolAllocator& operator=(const TPoolAllocator&); // don't allow assignment operator
++private:
+ TPoolAllocator(const TPoolAllocator&); // don't allow default copy constructor
+ };
+
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
new file mode 100644
index 0000000000..58dc1f24dd
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/files/fix-musl.patch
@@ -0,0 +1,22 @@
+Upstream-Status: Pending
+
+--- a/framework/delibs/dethread/CMakeLists.txt
++++ b/framework/delibs/dethread/CMakeLists.txt
+@@ -42,6 +42,7 @@ if (DE_OS_IS_UNIX)
+ add_definitions(-D__BSD_VISIBLE)
+ add_definitions(-D_XOPEN_SOURCE=600)
+ endif ()
++ add_definitions(-D_XOPEN_SOURCE=600)
+ add_definitions(-D_GNU_SOURCE)
+
+ set(DETHREAD_LIBS ${DETHREAD_LIBS} pthread)
+--- a/framework/qphelper/CMakeLists.txt
++++ b/framework/qphelper/CMakeLists.txt
+@@ -28,6 +28,7 @@ set(QPHELPER_LIBS
+ if (DE_OS_IS_UNIX OR DE_OS_IS_QNX)
+ # For vsnprintf()
+ add_definitions(-D_XOPEN_SOURCE=600)
++ set(QPHELPER_LIBS ${QPHELPER_LIBS} execinfo)
+ endif ()
+
+ if (DE_OS_IS_WIN32 AND DE_COMPILER_IS_MSC)
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
new file mode 100644
index 0000000000..097acc1a0b
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
@@ -0,0 +1,84 @@
+LICENSE = "Apache-2.0"
+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=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/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/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"
+
+SRCREV_FORMAT = "vk-gl-cts_amber_glslang_spirv-headers_spirv-tools_jsoncpp_vulkan-docs"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig cmake features_check python3native qemu
+
+ANY_OF_DISTRO_FEATURES += "opengl vulkan"
+
+DEPENDS += "python3-lxml-native libpng zlib virtual/libgles2 qemu-native"
+
+SRC_URI += " \
+ file://0001-vulkancts-Include-missing-cstdint.patch \
+ file://0001-use-library-sonames-for-linking.patch \
+"
+
+SRC_URI:append:libc-musl = "\
+ file://fix-musl.patch \
+"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+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"
+
+# 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
+# probing and build what it thinks is appropriate.
+# However, if you want, you can specify one of the following PACKAGECONFIGs
+# to override this behaviour.
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[surfaceless] = "-DDEQP_TARGET=surfaceless,,,,,wayland x11_egl x11_glx x11_egl_glx"
+PACKAGECONFIG[wayland] = "-DDEQP_TARGET=wayland,,wayland-native wayland wayland-protocols,,,surfaceless x11_egl x11_glx x11_egl_glx"
+PACKAGECONFIG[x11_egl] = "-DDEQP_TARGET=x11_egl,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_glx x11_egl_glx"
+PACKAGECONFIG[x11_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11,,,surfaceless wayland x11_egl x11_egl_glx"
+PACKAGECONFIG[x11_egl_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_egl x11_glx"
+
+do_configure:append() {
+ # 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
+}
+
+python __anonymous() {
+ # if the user doesn't specify any PACKAGECONFIG then the cts build system
+ # is going to probe the sysroot to try to figure out what to build
+ # in this case we try to guess whether the user is building for wayland
+ # or x11 and add the required dependencies automatically
+ 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")
+ if "x11" in distrofeatures:
+ d.appendVar("DEPENDS", " virtual/libx11 virtual/egl ")
+}
+
+CTSDIR = "/usr/lib/${BPN}"
+
+FILES:${PN} += "${CTSDIR}"
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..67ce5f2b9d
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/opengl-es-cts_3.2.9.3.bb
@@ -0,0 +1,36 @@
+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"
+
+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_1.3.3.1.bb b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.3.1.bb
new file mode 100644
index 0000000000..f491385b33
--- /dev/null
+++ b/meta-oe/recipes-graphics/vk-gl-cts/vulkan-cts_1.3.3.1.bb
@@ -0,0 +1,34 @@
+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"
+# Not yet needed
+SRCREV_ESExtractor = "ce5d7ebcf0ebb0d78385ee4cc34653eb6764bfc4"
+SRCREV_video-parser = "7d68747d3524842afaf050c5e00a10f5b8c07904"
+
+SRC_URI += "file://0001-cmake-Define-WAYLAND_SCANNER-and-WAYLAND_PROTOCOLS_D.patch \
+ file://0001-vulkan-cts-include-missing-cstdint.patch \
+ file://0001-include-missing-cstdint.patch;patchdir=external/amber/src \
+"
+
+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/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
new file mode 100644
index 0000000000..eb8ec4f5ff
--- /dev/null
+++ b/meta-oe/recipes-graphics/wayland/waylandpp_1.0.0.bb
@@ -0,0 +1,40 @@
+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 \
+ file://0001-include-missing-cstdint.patch"
+
+DEPENDS = "pugixml"
+DEPENDS:append:class-target = " waylandpp-native wayland virtual/egl virtual/libgles2"
+
+S = "${WORKDIR}/git"
+SRCREV = "4321ed5c7b4bffa41b8a2a13dc7f3ece1191f4f3"
+
+inherit cmake pkgconfig features_check
+
+REQUIRED_DISTRO_FEATURES:class-target = "opengl"
+
+EXTRA_OECMAKE:class-native = " \
+ -DBUILD_SCANNER=ON \
+ -DBUILD_LIBRARIES=OFF \
+ -DBUILD_DOCUMENTATION=OFF \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_VERBOSE_MAKEFILE=TRUE \
+"
+
+EXTRA_OECMAKE:class-target = " \
+ -DBUILD_SCANNER=ON \
+ -DBUILD_LIBRARIES=ON \
+ -DBUILD_DOCUMENTATION=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ -DOPENGL_LIBRARY="-lEGL -lGLESv2" \
+ -DOPENGL_opengl_LIBRARY=-lEGL \
+ -DOPENGL_glx_LIBRARY=-lEGL \
+ -DWAYLAND_SCANNERPP="${STAGING_BINDIR_NATIVE}/wayland-scanner++" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_VERBOSE_MAKEFILE=TRUE \
+ -DCMAKE_EXE_LINKER_FLAGS="-Wl,--enable-new-dtags" \
+"
+
+BBCLASSEXTEND += "native nativesdk"
diff --git a/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch b/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch
deleted file mode 100644
index f2a538bf63..0000000000
--- a/meta-oe/recipes-graphics/x11vnc/files/endian-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-libvncserver: replace LIBVNCSERVER_WORDS_BIGENDIAN with WORDS_BIGENDIAN
-
-since macro AC_C_BIGENDIAN is used in autoconf and WORDS_BIGENDIAN is
-automatically set for different arch, it is better to use WORDS_BIGENDIAN
-instead of LIBVNCSERVER_WORDS_BIGENDIAN, which cuase issue in mips.
-
-Signed-off-by: Yu Ke <ke.yu@intel.com>
-
-Upstream-Status: Pending
-
-diff --git a/libvncserver/main.c b/libvncserver/main.c
-index b6bd930..8bbb7bf 100644
---- a/libvncserver/main.c
-+++ b/libvncserver/main.c
-@@ -47,7 +47,7 @@ static MUTEX(extMutex);
-
- static int rfbEnableLogging=1;
-
--#ifdef LIBVNCSERVER_WORDS_BIGENDIAN
-+#ifdef WORDS_BIGENDIAN
- char rfbEndianTest = (1==0);
- #else
- char rfbEndianTest = (1==1);
-
diff --git a/meta-oe/recipes-graphics/x11vnc/files/remove-redundant-RPATH.patch b/meta-oe/recipes-graphics/x11vnc/files/remove-redundant-RPATH.patch
deleted file mode 100644
index 8e894bd8e7..0000000000
--- a/meta-oe/recipes-graphics/x11vnc/files/remove-redundant-RPATH.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 7be055c13c7d0d640941830a3291af3b404928c1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 27 Jun 2016 04:44:14 -0400
-Subject: [PATCH] configure.ac: remove redundant RPATH
-
-It caused oe QA issue:
-...
-|ERROR: QA Issue: x11vnc: work/i586-poky-linux/x11vnc/0.9.13-r0/packages-split/
-x11vnc/usr/bin/x11vnc contains probably-redundant RPATH /usr/lib [useless-rpaths]
-...
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 21 +++++----------------
- 1 file changed, 5 insertions(+), 16 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6f664d0..f986686 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -330,10 +330,8 @@ if test "x$with_crypto" != "xno" -a "x$with_ssl" != "xno"; then
- saved_LDFLAGS="$LDFLAGS"
- CPPFLAGS="$CPPFLAGS -I$with_ssl/include"
- LDFLAGS="$LDFLAGS -L$with_ssl/lib"
-- if test "x$ld_minus_R" = "xno"; then
-+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then
- :
-- elif test "x$GCC" = "xyes"; then
-- LDFLAGS="$LDFLAGS -Xlinker -R$with_ssl/lib"
- else
- LDFLAGS="$LDFLAGS -R$with_ssl/lib"
- fi
-@@ -447,10 +445,8 @@ if test ! -z "$with_system_libvncserver" -a "x$with_system_libvncserver" != "xno
- fi
- if test "x$with_system_libvncserver" != "xyes"; then
- rflag=""
-- if test "x$ld_minus_R" = "xno"; then
-+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then
- :
-- elif test "x$GCC" = "xyes"; then
-- rflag="-Xlinker -R$with_system_libvncserver/lib"
- else
- rflag="-R$with_system_libvncserver/lib"
- fi
-@@ -484,10 +480,8 @@ new enough.
- elif libvncserver-config --version 1>/dev/null 2>&1; then
- rflag=""
- rprefix=`libvncserver-config --prefix`
-- if test "x$ld_minus_R" = "xno"; then
-+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then
- :
-- elif test "x$GCC" = "xyes"; then
-- rflag=" -Xlinker -R$rprefix/lib "
- else
- rflag=" -R$rprefix/lib "
- fi
-@@ -541,11 +535,8 @@ if test "x$with_jpeg" != "xno"; then
- saved_LDFLAGS="$LDFLAGS"
- CPPFLAGS="$CPPFLAGS -I$with_jpeg/include"
- LDFLAGS="$LDFLAGS -L$with_jpeg/lib"
-- if test "x$ld_minus_R" = "xno"; then
-+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then
- :
-- elif test "x$GCC" = "xyes"; then
-- # this is not complete... in general a rat's nest.
-- LDFLAGS="$LDFLAGS -Xlinker -R$with_jpeg/lib"
- else
- LDFLAGS="$LDFLAGS -R$with_jpeg/lib"
- fi
-@@ -590,10 +581,8 @@ if test "x$with_zlib" != "xno" -a "x$with_libz" != "xno"; then
- saved_LDFLAGS="$LDFLAGS"
- CPPFLAGS="$CPPFLAGS -I$with_zlib/include"
- LDFLAGS="$LDFLAGS -L$with_zlib/lib"
-- if test "x$ld_minus_R" = "xno"; then
-+ if test "x$ld_minus_R" = "xno" -o "x$GCC" = "xyes"; then
- :
-- elif test "x$GCC" = "xyes"; then
-- LDFLAGS="$LDFLAGS -Xlinker -R$with_zlib/lib"
- else
- LDFLAGS="$LDFLAGS -R$with_zlib/lib"
- fi
---
-2.8.1
-
diff --git a/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch b/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch
index f62e405dd1..060319c76b 100644
--- a/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch
+++ b/meta-oe/recipes-graphics/x11vnc/files/starting-fix.patch
@@ -10,10 +10,10 @@ Signed-off-by: Laurentiu Palcu <laurentiu.palcu@intel.com>
Upstream-Status: Inappropriate [configuration]
-Index: x11vnc-0.9.12/x11vnc/x11vnc.desktop
+Index: x11vnc-0.9.12/x11vnc.desktop
===================================================================
---- x11vnc-0.9.12.orig/x11vnc/x11vnc.desktop 2011-03-03 10:33:18.000000000 +0800
-+++ x11vnc-0.9.12/x11vnc/x11vnc.desktop 2011-03-03 10:35:20.000000000 +0800
+--- x11vnc-0.9.12.orig/x11vnc.desktop 2011-03-03 10:33:18.000000000 +0800
++++ x11vnc-0.9.12/x11vnc.desktop 2011-03-03 10:35:20.000000000 +0800
@@ -1,7 +1,7 @@
[Desktop Entry]
Name=X11VNC Server
diff --git a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb
deleted file mode 100644
index b047bc4628..0000000000
--- a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.13.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Exports your X session on-the-fly via VNC"
-HOMEPAGE = "http://www.karlrunge.com/x11vnc/"
-
-SECTION = "x11/utils"
-AUTHOR = "Karl Runge"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=361b6b837cad26c6900a926b62aada5f \
- file://x11vnc/x11vnc.h;endline=33;md5=6f95dc6535467d7ee1563fd434fb372e"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/libvncserver/x11vnc/${PV}/x11vnc-${PV}.tar.gz\
- file://starting-fix.patch \
- file://endian-fix.patch \
- file://remove-redundant-RPATH.patch \
-"
-
-SRC_URI[md5sum] = "a372ec4fe8211221547b1c108cf56e4c"
-SRC_URI[sha256sum] = "f6829f2e629667a5284de62b080b13126a0736499fe47cdb447aedb07a59f13b"
-
-DEPENDS = "openssl virtual/libx11 libxext jpeg zlib libxfixes libxrandr libxdamage libxtst libtasn1 p11-kit"
-
-inherit autotools-brokensep distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} libvncserver"
-PACKAGECONFIG[avahi] = "--with-avahi,--without-avahi,avahi"
-PACKAGECONFIG[xinerama] = "--with-xinerama,--without-xinerama,libxinerama"
-PACKAGECONFIG[libvncserver] = "--with-system-libvncserver,--without-system-libvncserver,libvncserver"
-
-do_prepare_sources () {
- # Remove old libtool macros from acinclude.m4
- sed -i -e '/^# libtool.m4/q' ${S}/acinclude.m4
-}
-do_patch[postfuncs] += "do_prepare_sources"
diff --git a/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
new file mode 100644
index 0000000000..5f7c0beb66
--- /dev/null
+++ b/meta-oe/recipes-graphics/x11vnc/x11vnc_0.9.16.bb
@@ -0,0 +1,40 @@
+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}"
+
+SRC_URI = "git://github.com/LibVNC/x11vnc;branch=master;protocol=https \
+ file://starting-fix.patch \
+ "
+S = "${WORKDIR}/git"
+
+DEPENDS = "\
+ jpeg \
+ libtasn1 \
+ libvncserver \
+ openssl \
+ p11-kit \
+ zlib \
+"
+
+inherit pkgconfig autotools features_check
+
+ANY_OF_DISTRO_FEATURES = "x11 fbdev"
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
+ ${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} \
+"
+
+PACKAGECONFIG[avahi] = "--with-avahi,--without-avahi,avahi"
+PACKAGECONFIG[xinerama] = "--with-xinerama,--without-xinerama,libxinerama"
+PACKAGECONFIG[x11] = "--with-x,--without-x, libxdamage libxext libxfixes libxrandr libxtst virtual/libx11"
+
+RRECOMMENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'fbdev', 'kernel-module-uinput', '', d)}"
diff --git a/meta-oe/recipes-graphics/xbindkeys/xbindkeys_1.8.7.bb b/meta-oe/recipes-graphics/xbindkeys/xbindkeys_1.8.7.bb
new file mode 100644
index 0000000000..0c316edf95
--- /dev/null
+++ b/meta-oe/recipes-graphics/xbindkeys/xbindkeys_1.8.7.bb
@@ -0,0 +1,18 @@
+SUMMARY = "xbindkeys - Tool for launching commands on keystrokes"
+HOMEPAGE = "http://www.nongnu.org/xbindkeys/xbindkeys.html"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7d715d0b23c4bd9265b7435f546e9fe8"
+SECTION = "x11"
+
+DEPENDS = "virtual/libx11"
+
+inherit features_check autotools
+
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "http://www.nongnu.org/xbindkeys/xbindkeys-${PV}.tar.gz"
+SRC_URI[md5sum] = "b5e1a9668ba13ff8673836d1d965d951"
+SRC_URI[sha256sum] = "a29b86a8ec91d4abc83b420e547da27470847d0efe808aa6e75147aa0adb82f2"
+
+EXTRA_OECONF = "--disable-guile"
diff --git a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.bb
deleted file mode 100644
index a21dc42a9b..0000000000
--- a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.5.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] = "09f56978a62854534deacc8aa8ff3031"
-SRC_URI[sha256sum] = "bc7171a0fa212da866fca2301241630e2009aea8c4ddb75f21b51a31c2e4c581"
-
-inherit distro_features_check autotools pkgconfig
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb
new file mode 100644
index 0000000000..936d71b101
--- /dev/null
+++ b/meta-oe/recipes-graphics/xcursorgen/xcursorgen_1.0.7.bb
@@ -0,0 +1,14 @@
+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/xdotool/xdotool_1.20100416.2809.bb b/meta-oe/recipes-graphics/xdotool/xdotool_1.20100416.2809.bb
deleted file mode 100644
index b68e994ab2..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 distro_features_check pkgconfig
-# 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.7.bb b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.bb
deleted file mode 100644
index f40dec8846..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.7.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[md5sum] = "25dab02f8e40d5b71ce29a07dc901b8c"
-SRC_URI[sha256sum] = "1216af2dee99b318fcf8bf9a259915273bcb37a7f1e7859af4f15d0ebf6f3f0a"
-
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
new file mode 100644
index 0000000000..ea0ef0a7e2
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/iceauth_1.0.9.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] = "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 207285373c..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
@@ -6,9 +6,9 @@ Subject: [PATCH] Makefile.am: Error Fix
Do not compile man dir since error always occur.
| sed: file filenames.sed line 3: unterminated `s' command
| make[2]: *** [sessreg.1] Error 1
-It is not a good way.But can remove it from PNBLACKLIST.
+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.1.bb b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.bb
deleted file mode 100644
index d2afa78f97..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.1.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] = "e475167a892b589da23edf8edf8c942d"
-SRC_URI[sha256sum] = "78a76ae3f3f6a26547a34630d1b740f42344848b5fb6d7c9c7f7da255e35a6e1"
-
-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.2.bb b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.bb
new file mode 100644
index 0000000000..d4e9597bdf
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/sessreg_1.1.2.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[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/setxkbmap_1.3.1.bb b/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.bb
deleted file mode 100644
index 840275387f..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/setxkbmap_1.3.1.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"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "2c47a1b8e268df73963c4eb2316b1a89"
-SRC_URI[sha256sum] = "a9ddb3963f263ba13f0ea105d8c45a531832140530217cc559587bb94f02d3e1"
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/twm_1.0.12.bb b/meta-oe/recipes-graphics/xorg-app/twm_1.0.12.bb
new file mode 100644
index 0000000000..91b1abc211
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/twm_1.0.12.bb
@@ -0,0 +1,15 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+SUMMARY = "tiny window manager"
+DEPENDS += " libxext libxt libxmu bison-native"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4c6d42ef60e8166aa26606524c0b9586"
+
+SRC_URI = "${XORG_MIRROR}/individual/app/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "4150c9ec595520167ab8c4efcb5cf82641a4c4db78ce0a1cb4834e6aeb7c87fb"
+
+FILES:${PN} += "${datadir}/X11/twm/system.twmrc"
+ALTERNATIVE_NAME = "x-window-manager"
+ALTERNATIVE_PATH = "${bindir}/twm"
+ALTERNATIVE_LINK = "${bindir}/x-window-manager"
+ALTERNATIVE_PRIORITY = "1"
diff --git a/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb b/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb
deleted file mode 100644
index 41c804bb34..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/twm_1.0.9.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-SUMMARY = "tiny window manager"
-DEPENDS += " libxext libxt libxmu bison-native"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4c6d42ef60e8166aa26606524c0b9586"
-
-SRC_URI[md5sum] = "59a6f076cdacb5f6945dac809bcf4906"
-SRC_URI[sha256sum] = "c575167ac33edf3bd1592f1bedfe0559debb128ed5fb4873c1278e3be166310a"
-
-FILES_${PN} += "${datadir}/X11/twm/system.twmrc"
-ALTERNATIVE_NAME = "x-window-manager"
-ALTERNATIVE_PATH = "${bindir}/twm"
-ALTERNATIVE_LINK = "${bindir}/x-window-manager"
-ALTERNATIVE_PRIORITY = "1"
diff --git a/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb
deleted file mode 100644
index cf970d5d6c..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xclock_1.0.5.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "analog / digital clock for X"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=857759ade8f2ddde5c7b32ef7356ea36"
-
-DEPENDS += " libxaw libxrender libxft libxkbfile libxt"
-
-SRC_URI[md5sum] = "eaf124bbc9d13e1a12a29faaa2ed3612"
-SRC_URI[sha256sum] = "53a9169e24f3814fbfcfee3ca0b98637840a3156ed7c7e36ae03940fabae4c9a"
-
diff --git a/meta-oe/recipes-graphics/xorg-app/xclock_1.1.1.bb b/meta-oe/recipes-graphics/xorg-app/xclock_1.1.1.bb
new file mode 100644
index 0000000000..a7360b6496
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xclock_1.1.1.bb
@@ -0,0 +1,10 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "analog / digital clock for X"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=857759ade8f2ddde5c7b32ef7356ea36"
+
+DEPENDS += " libxaw libxrender libxft libxkbfile libxt"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "df7ceabf8f07044a2fde4924d794554996811640a45de40cb12c2cf1f90f742c"
diff --git a/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb
deleted file mode 100644
index c74b291946..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xfontsel_1.0.5.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "xfontsel provides point and click selection of X11 font names"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xfontsel/"
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3"
-DEPENDS += " libxaw"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3"
-
-SRC_URI[md5sum] = "a40302b88c599b63e3d3d412e02871e6"
-SRC_URI[sha256sum] = "170d8550b96fb47b04db6181b947e6f6b8b97f4df5d691c351a278480cc931bf"
diff --git a/meta-oe/recipes-graphics/xorg-app/xfontsel_1.1.0.bb b/meta-oe/recipes-graphics/xorg-app/xfontsel_1.1.0.bb
new file mode 100644
index 0000000000..4c31d0b77a
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xfontsel_1.1.0.bb
@@ -0,0 +1,13 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "xfontsel provides point and click selection of X11 font names"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xfontsel/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3"
+DEPENDS += " libxaw"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4669d2703c60d585cc29ba7e9a69bcb3"
+
+SRC_URI[sha256sum] = "17052c3357bbfe44b8468675ae3d099c2427ba9fcac10540aef524ae4d77d1b4"
+SRC_URI_EXT = "xz"
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
index a6fc9e7551..b42c1b9506 100644
--- a/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
+++ b/meta-oe/recipes-graphics/xorg-app/xkbevd_1.1.4.bb
@@ -5,7 +5,7 @@ events and executes requested commands if they occur. "
LIC_FILES_CHKSUM = "file://COPYING;md5=208668fa9004709ba22c2b748140956c"
-DEPENDS += "libxkbfile"
+DEPENDS += "libxkbfile bison-native"
BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb b/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.4.bb
deleted file mode 100644
index 26977bea55..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xkbprint_1.0.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 = "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] = "3c25b40de530112c08bf7d229c5c6a28"
-SRC_URI[sha256sum] = "0b3faab8fefad03dfb7e866f634cf859822801de6b5fc6cf5e0a62857ed93e12"
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.4.bb b/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb
deleted file mode 100644
index 6a05e98e32..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "XKeyboard (XKB) extension to the X11 protocol"
-DESCRIPTION = " \
-xkbutils is a collection of small utilities utilizing the XKeyboard (XKB) \
-extension to the X11 protocol. \
-It includes: \
- xkbbell - generate XKB bell events \
- xkbvleds - display the state of LEDs on an XKB keyboard in a window \
- xkbwatch - reports changes in the XKB keyboard state \
-"
-LIC_FILES_CHKSUM = "file://COPYING;md5=64322fab5239f5c8d97cf6e0e14f1c62"
-
-DEPENDS += "libxaw libxkbfile"
-
-BBCLASSEXTEND = "native"
-
-SRC_URI[md5sum] = "502b14843f610af977dffc6cbf2102d5"
-SRC_URI[sha256sum] = "d2a18ab90275e8bca028773c44264d2266dab70853db4321bdbc18da75148130"
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
new file mode 100644
index 0000000000..a672ba5e5e
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xkbutils_1.0.5.bb
@@ -0,0 +1,19 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "XKeyboard (XKB) extension to the X11 protocol"
+DESCRIPTION = " \
+xkbutils is a collection of small utilities utilizing the XKeyboard (XKB) \
+extension to the X11 protocol. \
+It includes: \
+ xkbbell - generate XKB bell events \
+ xkbvleds - display the state of LEDs on an XKB keyboard in a window \
+ xkbwatch - reports changes in the XKB keyboard state \
+"
+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.2.bb b/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.2.bb
deleted file mode 100644
index 723d4e2112..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xlsatoms_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/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] = "5dcb6e6c4b28c8d7aeb45257f5a72a7d"
-SRC_URI[sha256sum] = "47e5dc7c3dbda6db2cf8c00cedac1722835c1550aa21cfdbc9ba83906694dea4"
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
new file mode 100644
index 0000000000..288bcfc8fe
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xlsatoms_1.1.3.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[md5sum] = "61671fee12535347db24ec3a715032a7"
+SRC_URI[sha256sum] = "57868f958c263976727881f3078e55b86b4a109dc578d2b92f5c6d690850a382"
diff --git a/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb
deleted file mode 100644
index 76b76e4b37..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.6.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "server font list displayer for X"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsfonts/"
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b"
-
-SRC_URI[md5sum] = "5774fd4f518b3f338f2b28f270e04bfc"
-SRC_URI[sha256sum] = "89b80b3a030006ab6cef717be286c12f2477894b227158b1e6133274f6ebd368"
diff --git a/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.7.bb b/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.7.bb
new file mode 100644
index 0000000000..e5cd0ce6fb
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xlsfonts_1.0.7.bb
@@ -0,0 +1,10 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "server font list displayer for X"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xlsfonts/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5ec74dd7ea4d10c4715a7c44f159a40b"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "7b726945a967b44c35cddee5edd74802907a239ce2e2e515730b8a32c8e50465"
diff --git a/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb
deleted file mode 100644
index d577421803..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xmag_1.0.5.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require recipes-graphics/xorg-app/xorg-app-common.inc
-
-SUMMARY = "xmag is a tool to magnify parts of the screen"
-HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xmag/"
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3413fe6832380b44b69b172d2d1b2387"
-DEPENDS += " libxaw libxt"
-
-SRC_URI[md5sum] = "280b81cb09d1903aa868a058d90128ad"
-SRC_URI[sha256sum] = "4ace8795cf756be4ba387f30366045594ce26adda2f5ffe1f8e896825d0932c6"
diff --git a/meta-oe/recipes-graphics/xorg-app/xmag_1.0.7.bb b/meta-oe/recipes-graphics/xorg-app/xmag_1.0.7.bb
new file mode 100644
index 0000000000..f3dac53451
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xmag_1.0.7.bb
@@ -0,0 +1,11 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "xmag is a tool to magnify parts of the screen"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xmag/"
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3413fe6832380b44b69b172d2d1b2387"
+DEPENDS += " libxaw libxt"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "009936cc5a2706084079127b26cf55c713767650a34cb69e5682d60e33ce7461"
diff --git a/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb b/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.bb
deleted file mode 100644
index 9960706d0c..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.4.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[md5sum] = "2dd5ae46fa18abc9331bc26250a25005"
-SRC_URI[sha256sum] = "bcdf4b461c439bb3ade6e1e41c47d6218b912da8e9396b7ad70856db2f95ab68"
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
new file mode 100644
index 0000000000..cb123837d0
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xmessage_1.0.6.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] = "d2eac545f137156b960877e052fcc8e29795ed735c02f7690fd7b439e6846a12"
+SRC_URI_EXT = "xz"
diff --git a/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb b/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb
deleted file mode 100644
index 85957e056f..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xrdb_1.1.0.bb
+++ /dev/null
@@ -1,9 +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[md5sum] = "b54c7e3e53b4f332d41ed435433fbda0"
-SRC_URI[sha256sum] = "73827b6bbfc9d27ca287d95a1224c306d7053cd7b8156641698d7dc541ca565b"
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.5.bb b/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.bb
deleted file mode 100644
index a2a4941e96..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.5.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[md5sum] = "a896382bc53ef3e149eaf9b13bc81d42"
-SRC_URI[sha256sum] = "3213671b0a8a9d1e8d1d5d9e3fd86842c894dd9acc1be2560eda50bc1fb791d6"
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
new file mode 100644
index 0000000000..6f6ad73e63
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xrefresh_1.0.7.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] = "a9f1d635f2f42283d0174e94d09ab69190c227faa5ab542bfe15ed9607771b1e"
+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.1.bb b/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.bb
deleted file mode 100644
index 2c79f27ca4..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.1.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] = "7211b31ec70631829ebae9460999aa0b"
-SRC_URI[sha256sum] = "ba215daaa78c415fce11b9e58c365d03bb602eaa5ea916578d76861a468cc3d9"
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
new file mode 100644
index 0000000000..30a1e089e3
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xsetroot_1.1.2.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/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/xstdcmap_1.0.3.bb b/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.bb
deleted file mode 100644
index 99f70364ba..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.3.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] = "eb5473acaef15a5db9b50df29c6a7f90"
-SRC_URI[sha256sum] = "f648e2b0cf16aa29856de998e2c7204be39dc1f8daeda9464d32288e0b580fc1"
-
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
new file mode 100644
index 0000000000..9d523bd7b1
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xstdcmap_1.0.4.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[md5sum] = "da67142c128d18386ff145882e0afc66"
+SRC_URI[sha256sum] = "06898b3f1eaad0b205ff3c75bdefa3207868b889d4cb37b32b8267b2bbfe6f8b"
+
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
new file mode 100644
index 0000000000..a6cf16e4e9
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xterm/0001-Add-configure-time-check-for-setsid.patch
@@ -0,0 +1,75 @@
+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
+
+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 +
+ 4 files changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/configure b/configure
+index 72342c7..c2ec2ac 100755
+--- a/configure
++++ b/configure
+@@ -5803,6 +5803,7 @@ for ac_func in \
+ unsetenv \
+ sched_yield \
+ setpgid \
++ setsid \
+ strftime \
+ tcgetattr \
+ waitpid \
+diff --git a/configure.in b/configure.in
+index 56dbc25..0608c80 100644
+--- a/configure.in
++++ b/configure.in
+@@ -99,6 +99,7 @@ AC_CHECK_FUNCS( \
+ unsetenv \
+ sched_yield \
+ setpgid \
++ setsid \
+ strftime \
+ tcgetattr \
+ waitpid \
+diff --git a/main.c b/main.c
+index 24da0eb..332174c 100644
+--- a/main.c
++++ b/main.c
+@@ -2956,7 +2956,7 @@ main(int argc, char *argv[]ENVP_ARG)
+ }
+ }
+
+-#if defined(__osf__) || (defined(__GLIBC__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
++#if defined(__osf__) || (defined(__linux__) && !defined(USE_USG_PTYS)) || defined(__DragonFly__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+ #define USE_OPENPTY 1
+ static int opened_tty = -1;
+ #endif
+@@ -4205,7 +4205,7 @@ spawnXTerm(XtermWidget xw, unsigned line_speed)
+ /*
+ * now in child process
+ */
+-#if defined(_POSIX_SOURCE) || defined(SVR4) || defined(__convex__) || defined(__SCO__) || defined(__QNX__)
++#if HAVE_SETSID
+ int pgrp = setsid(); /* variable may not be used... */
+ #else
+ int pgrp = getpid();
+diff --git a/xtermcfg.hin b/xtermcfg.hin
+index 19048cd..e54d2cd 100644
+--- a/xtermcfg.hin
++++ b/xtermcfg.hin
+@@ -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 */
diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_330.bb b/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
deleted file mode 100644
index c2feb81070..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xterm_330.bb
+++ /dev/null
@@ -1,34 +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"
-
-LIC_FILES_CHKSUM = "file://xterm.h;beginline=3;endline=31;md5=f02ab9ebda87b770ecf711dbb3784a33"
-
-SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz"
-
-SRC_URI[md5sum] = "9a6db7974aa4ccbb50eabebf72618467"
-SRC_URI[sha256sum] = "7aeef9f29f6b95e09f481173c8c3053357bf5ffe162585647f690fd1707556df"
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[xft] = "--enable-freetype,--disable-freetype,libxft fontconfig freetype-native"
-
-EXTRA_OECONF = " --x-includes=${STAGING_INCDIR} \
- --x-libraries=${STAGING_LIBDIR} \
- FREETYPE_CONFIG=${STAGING_BINDIR_CROSS}/freetype-config \
- --disable-imake \
- --disable-rpath-hack \
- --disable-setuid"
-
-B = "${S}"
-
-do_configure() {
- gnu-configize --force
- sed -e "s%/usr/contrib/X11R6%${STAGING_LIBDIR}%g" -i configure
- oe_runconf
-}
-
-FILES_${PN} += "/usr/lib/X11"
-
-# busybox can supply resize too
-inherit update-alternatives
-
-ALTERNATIVE_${PN} = "resize"
diff --git a/meta-oe/recipes-graphics/xorg-app/xterm_384.bb b/meta-oe/recipes-graphics/xorg-app/xterm_384.bb
new file mode 100644
index 0000000000..ae046b18c2
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xterm_384.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] = "31ef870740ceae020c3c4b4a9601c7f47bfd46672c1aaf2d213a565d64cbc373"
+
+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.6.bb b/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb
deleted file mode 100644
index 694bf57ace..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xwd_1.0.6.bb
+++ /dev/null
@@ -1,11 +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[md5sum] = "6b5d48464c5f366e91efd08b62b12d94"
-SRC_URI[sha256sum] = "3bb396a2268d78de4b1c3e5237a85f7849d3434e87b3cd1f4d57eef614227d79"
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-app/xwud_1.0.5.bb b/meta-oe/recipes-graphics/xorg-app/xwud_1.0.5.bb
deleted file mode 100644
index 7cb550d276..0000000000
--- a/meta-oe/recipes-graphics/xorg-app/xwud_1.0.5.bb
+++ /dev/null
@@ -1,12 +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/xwud/"
-DESCRIPTION = "xwud allows X users to display in a window an image saved \
-in a specially formatted dump file, such as produced by xwd."
-SECTION = "x11/app"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=31e8892c80b7a0c1c5f37c8e8ae6d794"
-
-SRC_URI[md5sum] = "79972093bb0766fcd0223b2bd6d11932"
-SRC_URI[sha256sum] = "99997051f8a892313f22edf41dab45864e86e7062ee9012d5dbb6a40fc6b10a9"
diff --git a/meta-oe/recipes-graphics/xorg-app/xwud_1.0.6.bb b/meta-oe/recipes-graphics/xorg-app/xwud_1.0.6.bb
new file mode 100644
index 0000000000..1be0b5cd77
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-app/xwud_1.0.6.bb
@@ -0,0 +1,12 @@
+require recipes-graphics/xorg-app/xorg-app-common.inc
+
+SUMMARY = "X.Org X11 X client utilities"
+HOMEPAGE = "http://cgit.freedesktop.org/xorg/app/xwud/"
+DESCRIPTION = "xwud allows X users to display in a window an image saved \
+in a specially formatted dump file, such as produced by xwd."
+SECTION = "x11/app"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=31e8892c80b7a0c1c5f37c8e8ae6d794"
+
+SRC_URI_EXT = "xz"
+SRC_URI[sha256sum] = "64048cd15eba3cd9a3d2e3280650391259ebf6b529f2101d1a20f441038c1afe"
diff --git a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.bb
deleted file mode 100644
index 8647f038e0..0000000000
--- a/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.1.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] = "7444bbbd999b53bec6a60608a5301f4c"
-SRC_URI[sha256sum] = "3671b034356bbc4d32d052808cf646c940ec8b2d1913adac51b1453e41aa1e9d"
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
new file mode 100644
index 0000000000..37183b12b7
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-data/xbitmaps_1.1.2.bb
@@ -0,0 +1,11 @@
+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/xorg-data-common.inc b/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
index cb6b5ac773..1c6408d0d8 100644
--- a/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
+++ b/meta-oe/recipes-graphics/xorg-data/xorg-data-common.inc
@@ -1,12 +1,12 @@
HOMEPAGE = "http://www.x.org"
SECTION = "x11/data"
-LICENSE = "MIT-X"
+LICENSE = "MIT"
XORG_PN = "${BPN}"
SRC_URI = "${XORG_MIRROR}/individual/data/${BP}.tar.bz2"
S = "${WORKDIR}/${XORG_PN}-${PV}"
-inherit distro_features_check autotools pkgconfig
+inherit features_check autotools pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
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 f4b8b00de5..aa4795edc2 100644
--- a/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc
+++ b/meta-oe/recipes-graphics/xorg-doc/xorg-doc-common.inc
@@ -1,7 +1,7 @@
DESCRIPTION = "X documentation"
HOMEPAGE = "http://www.x.org"
SECTION = "x11/docs"
-LICENSE = "MIT-X"
+LICENSE = "MIT"
SRC_URI = "${XORG_MIRROR}/individual/doc/${BPN}-${PV}.tar.bz2"
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
new file mode 100644
index 0000000000..050cb29824
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.12.bb
@@ -0,0 +1,10 @@
+require xorg-doc-common.inc
+PE = "1"
+
+DEPENDS += "util-macros"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449"
+
+SRC_URI[sha256sum] = "65a9fdddedc17bd5e9c0b00d904960f03f047c3a62de5458989d493c29fec806"
+
+FILES:${PN} += " /usr/share/sgml/X11"
diff --git a/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb b/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb
deleted file mode 100644
index 80f1f008b5..0000000000
--- a/meta-oe/recipes-graphics/xorg-doc/xorg-sgml-doctools_1.7.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-require xorg-doc-common.inc
-PE = "1"
-PR = "${INC_PR}.0"
-
-DEPENDS += "util-macros"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=c8c6c808cd3c797a07b24e443af1c449"
-
-SRC_URI[md5sum] = "2588efb3f49f7fc6ecf41ce42e0b2e5e"
-SRC_URI[sha256sum] = "84fd94e5c50556e6f77501485f8a48724cf3c95c6d58480bc280258ba14580c8"
-
-FILES_${PN} += " /usr/share/sgml/X11"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
deleted file mode 100644
index 906043947e..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/10-x11-input-tslib.fdi
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<deviceinfo version="0.2">
- <device>
- <match key="info.capabilities" contains="input.touchpad">
- <merge key="input.x11_driver" type="string">tslib</merge>
- </match>
- <match key="info.capabilities" contains="input.touchscreen">
- <merge key="input.x11_driver" type="string">tslib</merge>
- </match>
- </device>
-</deviceinfo>
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
deleted file mode 100644
index 07754731dd..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/double-free-crash.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-xorg-server-1.7.3/hw/xfree86/common/xf86Helper.c contains this code
-causing a double free crash on chvt or exit:
-
- /* This should *really* be handled in drv->UnInit(dev) call instead, but
- * if the driver forgets about it make sure we free it or at least crash
- * with flying colors */
- if (pInp->private)
- xfree(pInp->private);
-Index: xf86-input-tslib-0.0.6/src/tslib.c
-===================================================================
---- xf86-input-tslib-0.0.6.orig/src/tslib.c
-+++ xf86-input-tslib-0.0.6/src/tslib.c
-@@ -435,6 +435,7 @@ xf86TslibUninit(InputDriverPtr drv, Inpu
- xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
- ts_close(priv->ts);
- xfree(pInfo->private);
-+ pInfo->private = NULL;
- xf86DeleteInput(pInfo, 0);
- }
-
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch
deleted file mode 100644
index d16b4a53cb..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Fixes crash when a touchscreen event is received with xserver 1.12 and later:
-X: symbol lookup error: /usr/lib/xorg/modules/input/tslib_drv.so: undefined symbol: xf86XInputSetScreen
-
-Upstream-Status: Pending
-
-Taken from Gentoo:
-https://bugs.gentoo.org/show_bug.cgi?id=446432
-
-diff -ur xf86-input-tslib-0.0.6.orig/src/tslib.c xf86-input-tslib-0.0.6/src/tslib.c
---- xf86-input-tslib-0.0.6.orig/src/tslib.c 2012-12-05 01:12:16.286597071 +0100
-+++ xf86-input-tslib-0.0.6/src/tslib.c 2012-12-05 01:11:02.686598595 +0100
-@@ -75,6 +75,19 @@
- #define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
- #endif
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) > 13
-+static void
-+xf86XInputSetScreen(InputInfoPtr pInfo,
-+ int screen_number,
-+ int x,
-+ int y)
-+{
-+ if (miPointerGetScreen(pInfo->dev) !=
-+ screenInfo.screens[screen_number]) {
-+ miPointerSetScreen(pInfo->dev, screen_number, x, y);
-+ }
-+}
-+#endif
-
- enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
-
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch
deleted file mode 100644
index 6a6d5b92c6..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xf86-input-tslib-port-ABI-12-r48.patch
+++ /dev/null
@@ -1,196 +0,0 @@
-Upstream-Status: Pending
-
-Taken from debian:
-http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=627075
-
-Index: xf86-input-tslib-trunk/src/tslib.c
-===================================================================
---- xf86-input-tslib-trunk/src/tslib.c (revision 48)
-+++ xf86-input-tslib-trunk/src/tslib.c (working copy)
-@@ -69,6 +69,13 @@
- #define DEFAULT_HEIGHT 240
- #define DEFAULT_WIDTH 320
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
-+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options), NULL)
-+#else
-+#define COLLECT_INPUT_OPTIONS(pInfo, options) xf86CollectInputOptions((pInfo), (options))
-+#endif
-+
-+
- enum { TSLIB_ROTATE_NONE=0, TSLIB_ROTATE_CW=270, TSLIB_ROTATE_UD=180, TSLIB_ROTATE_CCW=90 };
-
- enum button_state { BUTTON_NOT_PRESSED = 0, BUTTON_1_PRESSED = 1, BUTTON_3_CLICK = 3, BUTTON_3_CLICKED=4, BUTTON_EMULATION_OFF=-1 };
-@@ -106,7 +113,7 @@
- }
-
- static Bool
--ConvertProc( LocalDevicePtr local,
-+ConvertProc( InputInfoPtr local,
- int first,
- int num,
- int v0,
-@@ -135,7 +142,7 @@
- return t;
- }
-
--static void ReadInput (LocalDevicePtr local)
-+static void ReadInput (InputInfoPtr local)
- {
- struct ts_priv *priv = (struct ts_priv *) (local->private);
- struct ts_sample samp;
-@@ -382,7 +389,11 @@
- axiswidth - 1, /* max val */
- axiswidth, /* resolution */
- 0, /* min_res */
-- axiswidth); /* max_res */
-+ axiswidth /* max_res */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+ ,Absolute
-+#endif
-+ );
-
- InitValuatorAxisStruct(device, 1,
- #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 7
-@@ -392,7 +403,11 @@
- axisheight - 1, /* max val */
- axisheight, /* resolution */
- 0, /* min_res */
-- axisheight); /* max_res */
-+ axisheight /* max_res */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+ ,Absolute
-+#endif
-+ );
-
- if (InitProximityClassDeviceStruct (device) == FALSE) {
- ErrorF ("Unable to allocate EVTouch touchscreen ProximityClassDeviceStruct\n");
-@@ -434,7 +449,7 @@
- ErrorF("%s\n", __FUNCTION__);
- xf86TslibControlProc(pInfo->dev, DEVICE_OFF);
- ts_close(priv->ts);
-- xfree(pInfo->private);
-+ free(pInfo->private);
- pInfo->private = NULL;
- xf86DeleteInput(pInfo, 0);
- }
-@@ -444,47 +459,57 @@
- *
- * called when the module subsection is found in XF86Config
- */
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
-+static int
-+xf86TslibInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags)
-+#else
- static InputInfoPtr
- xf86TslibInit(InputDriverPtr drv, IDevPtr dev, int flags)
-+#endif
- {
- struct ts_priv *priv;
- char *s;
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- InputInfoPtr pInfo;
-+#endif
-
-- priv = xcalloc (1, sizeof (struct ts_priv));
-+ priv = calloc (1, sizeof (struct ts_priv));
- if (!priv)
-- return NULL;
-+ return BadValue;
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- if (!(pInfo = xf86AllocateInput(drv, 0))) {
-- xfree(priv);
-- return NULL;
-+ free(priv);
-+ return BadValue;
- }
-
- /* Initialise the InputInfoRec. */
- pInfo->name = dev->identifier;
-- pInfo->type_name = XI_TOUCHSCREEN;
- pInfo->flags =
- XI86_KEYBOARD_CAPABLE | XI86_POINTER_CAPABLE |
- XI86_SEND_DRAG_EVENTS;
-- pInfo->device_control = xf86TslibControlProc;
-- pInfo->read_input = ReadInput;
- #if GET_ABI_MAJOR(ABI_XINPUT_VERSION) == 0
- pInfo->motion_history_proc = xf86GetMotionEvents;
- pInfo->history_size = 0;
- #endif
-- pInfo->control_proc = NULL;
-+ pInfo->conf_idev = dev;
- pInfo->close_proc = NULL;
-- pInfo->switch_mode = NULL;
- pInfo->conversion_proc = ConvertProc;
- pInfo->reverse_conversion_proc = NULL;
-- pInfo->dev = NULL;
- pInfo->private_flags = 0;
- pInfo->always_core_feedback = 0;
-- pInfo->conf_idev = dev;
-+#endif
-+
-+ pInfo->type_name = XI_TOUCHSCREEN;
-+ pInfo->control_proc = NULL;
-+ pInfo->read_input = ReadInput;
-+ pInfo->device_control = xf86TslibControlProc;
-+ pInfo->switch_mode = NULL;
- pInfo->private = priv;
-+ pInfo->dev = NULL;
-
- /* Collect the options, and process the common options. */
-- xf86CollectInputOptions(pInfo, NULL, NULL);
-+ COLLECT_INPUT_OPTIONS(pInfo, NULL);
- xf86ProcessCommonOptions(pInfo, pInfo->options);
-
- priv->screen_num = xf86SetIntOption(pInfo->options, "ScreenNumber", 0 );
-@@ -510,23 +535,31 @@
- priv->rotate = TSLIB_ROTATE_NONE;
- }
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- s = xf86CheckStrOption(dev->commonOptions, "path", NULL);
-+#else
-+ s = xf86CheckStrOption(pInfo->options, "path", NULL);
-+#endif
- if (!s)
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- s = xf86CheckStrOption(dev->commonOptions, "Device", NULL);
-+#else
-+ s = xf86CheckStrOption(pInfo->options, "Device", NULL);
-+#endif
-
- priv->ts = ts_open(s, 1);
-- xfree(s);
-+ free(s);
-
- if (!priv->ts) {
- ErrorF("ts_open failed (device=%s)\n",s);
- xf86DeleteInput(pInfo, 0);
-- return NULL;
-+ return BadValue;
- }
-
- if (ts_config(priv->ts)) {
- ErrorF("ts_config failed\n");
- xf86DeleteInput(pInfo, 0);
-- return NULL;
-+ return BadValue;
- }
-
- pInfo->fd = ts_fd(priv->ts);
-@@ -536,11 +569,13 @@
- priv->state = BUTTON_EMULATION_OFF;
- }
-
-+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
- /* Mark the device configured */
- pInfo->flags |= XI86_CONFIGURED;
-+#endif
-
- /* Return the configured device */
-- return (pInfo);
-+ return Success;
- }
-
- _X_EXPORT InputDriverRec TSLIB = {
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
deleted file mode 100644
index a1f6ba8f9e..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib/xserver-174-XGetPointerControl.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From Grazvydas Ignotas
-
-At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib:
-
-Program received signal SIGSEGV, Segmentation fault.
-#0 0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122
-#1 0x00062fa8 in Dispatch () at dispatch.c:439
-#2 0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285
-
-This happens because ptrfeed field is not set in device structure from tslib.
-To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers).
-
----
-diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c
---- xf86-input-tslib-0.0.6/src/tslib.c 2010-02-09 12:23:22.000000000 +0200
-+++ xf86-input-tslib-0.0.6_/src/tslib.c 2010-02-09 12:37:33.000000000 +0200
-@@ -103,8 +103,6 @@
- static void
- PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl)
- {
-- ErrorF("%s\n", __FUNCTION__);
-- return;
- }
-
- static Bool
-@@ -406,6 +404,8 @@
- xf86MotionHistoryAllocate(pInfo);
- #endif
-
-+ if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc))
-+ return !Success;
- break;
-
- case DEVICE_ON:
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
deleted file mode 100644
index 6a3689a2ef..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_0.0.6.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-input.inc
-SUMMARY = "X.Org X server -- tslib input driver"
-DEPENDS += "tslib"
-RRECOMMENDS_${PN} += "tslib-calibrate"
-RSUGGESTS_${PN} += "hal"
-
-# derived from xf86-input-void, that's why I kept MIT-X, but it's not clear, see COPYING
-LIC_FILES_CHKSUM = "file://src/tslib.c;endline=28;md5=bd62eaef222dcf5cd59e490a12bd795e \
- file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
-
-PR = "${INC_PR}.1"
-
-SRC_URI = "http://www.pengutronix.de/software/xf86-input-tslib/download/xf86-input-tslib-${PV}.tar.bz2 \
- file://double-free-crash.patch \
- file://10-x11-input-tslib.fdi \
- file://xserver-174-XGetPointerControl.patch \
- file://99-xf86-input-tslib.rules \
- file://xf86-input-tslib-port-ABI-12-r48.patch \
- file://xf86-input-tslib-0.0.6-xf86XInputSetScreen.patch \
-"
-
-SRC_URI[md5sum] = "b7a4d2f11637ee3fcf432e044b1d017f"
-SRC_URI[sha256sum] = "5f46fdef095a6e44a69e0f0b57c7d665224b26d990d006611236d8332e85b105"
-
-do_configure_prepend() {
- rm -rf ${S}/m4/ || true
-}
-do_install_append() {
- install -d ${D}/${datadir}/hal/fdi/policy/20thirdparty
- install -m 0644 ${WORKDIR}/10-x11-input-tslib.fdi ${D}/${datadir}/hal/fdi/policy/20thirdparty
- install -d ${D}${nonarch_base_libdir}/udev/rules.d
- install -m 0644 ${WORKDIR}/99-xf86-input-tslib.rules ${D}${nonarch_base_libdir}/udev/rules.d/
-}
-
-FILES_${PN} += "${datadir}/hal ${nonarch_base_libdir}/udev"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb
new file mode 100644
index 0000000000..9f445ff265
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-input-tslib_1.1.1.bb
@@ -0,0 +1,20 @@
+require recipes-graphics/xorg-driver/xorg-driver-input.inc
+
+SUMMARY = "X.Org X server -- tslib input driver"
+LIC_FILES_CHKSUM = "file://COPYING;md5=f1524518264f7776a9707c19c8affbbf"
+
+DEPENDS += "tslib"
+RRECOMMENDS:${PN} += "tslib-calibrate"
+
+SRC_URI = "https://github.com/merge/xf86-input-tslib/releases/download/${PV}/xf86-input-tslib-${PV}.tar.xz \
+ file://99-xf86-input-tslib.rules \
+"
+
+SRC_URI[sha256sum] = "b596168c4ed2f1023212dc828ce49cbe82a0bbd1aac3c5e2958154d78870ca88"
+
+do_install:append() {
+ install -d ${D}${nonarch_base_libdir}/udev/rules.d
+ install -m 0644 ${WORKDIR}/99-xf86-input-tslib.rules ${D}${nonarch_base_libdir}/udev/rules.d/
+}
+
+FILES:${PN} += "${nonarch_base_libdir}/udev"
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
index ca0b486346..88fb4b99a1 100644
--- 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
@@ -1,6 +1,6 @@
require recipes-graphics/xorg-driver/xorg-driver-input.inc
SUMMARY = "X.Org X server -- void input driver"
-PR = "${INC_PR}.0"
+PR = "r22"
LIC_FILES_CHKSUM = "file://COPYING;md5=4be6a915bfbf111cd88706fc6a6f141b"
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-armsoc_1.4.1.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb
new file mode 100644
index 0000000000..8b4526fc5e
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-armsoc_1.4.1.bb
@@ -0,0 +1,14 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+SUMMARY = "X.Org X server -- ARM SOC display driver"
+LICENSE = "MIT & GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=10ce5de3b111315ea652a5f74ec0c602"
+
+DEPENDS += "virtual/libx11 libdrm xorgproto"
+
+SRCREV = "8bbdb2ae3bb8ef649999a8da33ddbe11a04763b8"
+SRC_URI = "git://anongit.freedesktop.org/xorg/driver/xf86-video-armsoc;branch=master"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} += "xserver-xorg-module-exa"
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb
deleted file mode 100644
index fb81e53965..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_7.8.0.bb
+++ /dev/null
@@ -1,23 +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 distro_features_check
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
-
-SRC_URI[md5sum] = "f34d04a755e761e03b459155fa3ddcbb"
-SRC_URI[sha256sum] = "401f5de772928f3dc4ce43a885adb0a47a2f61aa4a9e45d2ab3d184136a9d6fa"
-
-EXTRA_OECONF += "--disable-glamor"
-
-RDEPENDS_${PN} += "xserver-xorg-module-exa"
-RRECOMMENDS_${PN} += "linux-firmware-radeon"
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
new file mode 100644
index 0000000000..9452c3a915
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-ati_git.bb
@@ -0,0 +1,41 @@
+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_1.6.5.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.bb
deleted file mode 100644
index 182e18fd95..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_1.6.5.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] = "3ee2549247e01de3e7bce52c27483118"
-SRC_URI[sha256sum] = "b663cd8e6364f7c4e2637b9fcab9861d0e3971518c73b00d213f6545a1289422"
-
-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.0.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb
new file mode 100644
index 0000000000..a9ae901d05
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-mga_2.0.0.bb
@@ -0,0 +1,21 @@
+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-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch
new file mode 100644
index 0000000000..e49c99574e
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau/0001-nouveau-fixup-driver-for-new-X-server-ABI.patch
@@ -0,0 +1,66 @@
+From 7ae2f6ba4cbf29fc3f1b08579b838679a3301cb3 Mon Sep 17 00:00:00 2001
+From: Dave Airlie <airlied@redhat.com>
+Date: Mon, 13 Jul 2020 09:20:15 +1000
+Subject: [PATCH] nouveau: fixup driver for new X server ABI
+
+Upstream-Status: Backport [https://cgit.freedesktop.org/nouveau/xf86-video-nouveau/commit/?id=e80e73ced69b15662103d0fd6837db4ce6c6eb5b]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/compat-api.h | 4 ++++
+ src/nouveau_exa.c | 2 +-
+ src/nv_driver.c | 6 +++---
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/compat-api.h b/src/compat-api.h
+index fde2f4b..8a1fcf9 100644
+--- a/src/compat-api.h
++++ b/src/compat-api.h
+@@ -102,4 +102,8 @@
+
+ #endif
+
++#if ABI_VIDEODRV_VERSION < SET_ABI_VERSION(25, 2)
++#define secondary_dst slave_dst
++#endif
++
+ #endif
+diff --git a/src/nouveau_exa.c b/src/nouveau_exa.c
+index 55df6f8..db3b112 100644
+--- a/src/nouveau_exa.c
++++ b/src/nouveau_exa.c
+@@ -157,7 +157,7 @@ nouveau_exa_destroy_pixmap(ScreenPtr pScreen, void *priv)
+
+ #ifdef NOUVEAU_PIXMAP_SHARING
+ static Bool
+-nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr slave, void **handle_p)
++nouveau_exa_share_pixmap_backing(PixmapPtr ppix, ScreenPtr secondary, void **handle_p)
+ {
+ struct nouveau_bo *bo = nouveau_pixmap_bo(ppix);
+ struct nouveau_pixmap *nvpix = nouveau_pixmap(ppix);
+diff --git a/src/nv_driver.c b/src/nv_driver.c
+index e72a6b6..f9ab4af 100644
+--- a/src/nv_driver.c
++++ b/src/nv_driver.c
+@@ -559,16 +559,16 @@ redisplay_dirty(ScreenPtr screen, PixmapDirtyUpdatePtr dirty)
+ {
+ RegionRec pixregion;
+
+- PixmapRegionInit(&pixregion, dirty->slave_dst);
++ PixmapRegionInit(&pixregion, dirty->secondary_dst);
+
+- DamageRegionAppend(&dirty->slave_dst->drawable, &pixregion);
++ DamageRegionAppend(&dirty->secondary_dst->drawable, &pixregion);
+ #ifdef HAS_DIRTYTRACKING_ROTATION
+ PixmapSyncDirtyHelper(dirty);
+ #else
+ PixmapSyncDirtyHelper(dirty, &pixregion);
+ #endif
+
+- DamageRegionProcessPending(&dirty->slave_dst->drawable);
++ DamageRegionProcessPending(&dirty->secondary_dst->drawable);
+ RegionUninit(&pixregion);
+ }
+
+--
+2.33.1
+
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb
deleted file mode 100644
index 2b1b87c4d0..0000000000
--- a/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.15.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-require recipes-graphics/xorg-driver/xorg-driver-video.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
-
-SUMMARY = "X.Org X server -- nouveau video driver"
-
-DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics"
-
-DEPENDS += "virtual/libx11 libxvmc drm xorgproto \
- virtual/libgl libpciaccess"
-RDEPENDS_${PN} += "xserver-xorg-module-exa"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES += "opengl"
-
-COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
-
-SRC_URI[md5sum] = "717203cb87029cddcbccf7398f9ad8c3"
-SRC_URI[sha256sum] = "aede10fd395610a328697adca3434fb14e9afbd79911d6c8545cfa2c0e541d4c"
-
diff --git a/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb
new file mode 100644
index 0000000000..fbf6406caf
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-driver/xf86-video-nouveau_1.0.17.bb
@@ -0,0 +1,21 @@
+require recipes-graphics/xorg-driver/xorg-driver-video.inc
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=4641deddaa80fe7ca88e944e1fd94a94"
+
+SUMMARY = "X.Org X server -- nouveau video driver"
+
+DESCRIPTION = "Open-source X.org graphics driver for NVIDIA graphics"
+
+DEPENDS += "virtual/libx11 libxvmc drm xorgproto \
+ virtual/libgl libpciaccess"
+RDEPENDS:${PN} += "xserver-xorg-module-exa"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES += "opengl"
+
+COMPATIBLE_HOST = '(i.86|x86_64).*-linux'
+
+CFLAGS += "-Wno-error=implicit-function-declaration"
+
+SRC_URI += "file://0001-nouveau-fixup-driver-for-new-X-server-ABI.patch"
+SRC_URI[sha256sum] = "499322e27a55c8183166bf2dd1e47d085eb834143e0d7036baba8427b90c156b"
diff --git a/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
index 29229bb510..36f05b7277 100644
--- a/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
+++ b/meta-oe/recipes-graphics/xorg-font/font-adobe-100dpi_1.0.3.bb
@@ -7,10 +7,12 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=5dfa0fdf45473b4ca0acf37d854df10e"
DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util"
-RDEPENDS_${PN} = "encodings font-util"
-RDEPENDS_${PN}_class-native = "font-util-native"
+RDEPENDS:${PN} = "encodings font-util"
+RDEPENDS:${PN}:class-native = "font-util-native"
-inherit distro_features_check
+UPSTREAM_CHECK_REGEX = "font\-adobe\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz"
+
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb b/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
index 898850bbca..8b83ba378f 100644
--- a/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
+++ b/meta-oe/recipes-graphics/xorg-font/font-adobe-utopia-100dpi_1.0.4.bb
@@ -7,10 +7,12 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=fa13e704b7241f60ef9105cc041b9732"
DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util"
-RDEPENDS_${PN} = "encodings font-util"
-RDEPENDS_${PN}_class-native = "font-util-native"
+RDEPENDS:${PN} = "encodings font-util"
+RDEPENDS:${PN}:class-native = "font-util-native"
-inherit distro_features_check
+UPSTREAM_CHECK_REGEX = "font\-adobe\-utopia\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz"
+
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
index 4976e527f2..5d321acc6e 100644
--- a/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
+++ b/meta-oe/recipes-graphics/xorg-font/font-bh-100dpi_1.0.3.bb
@@ -7,10 +7,12 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=cffd5e9c4b61b3d74166ca74b99e460e"
DEPENDS += "util-macros-native font-util-native bdftopcf-native font-util"
-RDEPENDS_${PN} = "encodings font-util"
-RDEPENDS_${PN}_class-native = "font-util-native"
+RDEPENDS:${PN} = "encodings font-util"
+RDEPENDS:${PN}:class-native = "font-util-native"
-inherit distro_features_check
+UPSTREAM_CHECK_REGEX = "font\-bh\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz"
+
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
index 6e0b33ca31..557eeb17bd 100644
--- a/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
+++ b/meta-oe/recipes-graphics/xorg-font/font-bh-lucidatypewriter-100dpi_1.0.3.bb
@@ -7,10 +7,12 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=0d221a9cd144806cb469735cc4775939"
DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util"
-RDEPENDS_${PN} = "encodings font-util"
-RDEPENDS_${PN}_class-native = "font-util-native"
+RDEPENDS:${PN} = "encodings font-util"
+RDEPENDS:${PN}:class-native = "font-util-native"
-inherit distro_features_check
+UPSTREAM_CHECK_REGEX = "font\-bh\-lucidatypewriter\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz"
+
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
index e8cfb615a9..b280a32603 100644
--- a/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
+++ b/meta-oe/recipes-graphics/xorg-font/font-bitstream-100dpi_1.0.3.bb
@@ -7,10 +7,12 @@ LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=30330812324ff9d9bd9ea645bb944427"
DEPENDS = "util-macros-native font-util-native bdftopcf-native"
-RDEPENDS_${PN} = "encodings font-util"
-RDEPENDS_${PN}_class-native = "font-util-native"
+RDEPENDS:${PN} = "encodings font-util"
+RDEPENDS:${PN}:class-native = "font-util-native"
-inherit distro_features_check
+UPSTREAM_CHECK_REGEX = "font\-bitstream\-100dpi\-(?P<pver>\d+(\.\d+)+).tar.gz"
+
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb b/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
index d425ce5157..ba4575bc29 100644
--- a/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
+++ b/meta-oe/recipes-graphics/xorg-font/font-cursor-misc_1.0.3.bb
@@ -7,9 +7,9 @@ LICENSE = "PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=8b32ccac3ad25e75e68478deb7780265"
DEPENDS = "util-macros-native font-util-native bdftopcf-native"
-RDEPENDS_${PN} = "encodings font-util"
+RDEPENDS:${PN} = "encodings font-util"
-inherit distro_features_check
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb b/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
index e4cd90a7af..852f93602f 100644
--- a/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
+++ b/meta-oe/recipes-graphics/xorg-font/font-misc-misc_1.1.2.bb
@@ -7,9 +7,9 @@ LICENSE = "PD"
LIC_FILES_CHKSUM = "file://COPYING;md5=200c507f595ee97008c7c5c3e94ab9a8"
DEPENDS = "util-macros-native font-util-native bdftopcf-native font-util"
-RDEPENDS_${PN} = "encodings font-util"
+RDEPENDS:${PN} = "encodings font-util"
-inherit distro_features_check
+inherit features_check
# depends on bdftopcf-native -> virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb b/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
index 45e3f7b592..0fe1876c75 100644
--- a/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
+++ b/meta-oe/recipes-graphics/xorg-font/xorg-fonts-100dpi.bb
@@ -1,11 +1,11 @@
SUMMARY = "Xorg 100 DPI font set"
-LICENSE = "Custom"
+LICENSE = "MIT"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
# rdepends on font recipes with this restriction
REQUIRED_DISTRO_FEATURES = "x11"
-RDEPENDS_${PN} = "\
+RDEPENDS:${PN} = "\
font-adobe-100dpi \
font-adobe-utopia-100dpi \
font-bh-100dpi \
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 3e5c31a05d..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/liblbxutil_1.1.0.bb
+++ /dev/null
@@ -1,14 +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"
-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.13.bb b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb
deleted file mode 100644
index cb1ffcd8cc..0000000000
--- a/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.13.bb
+++ /dev/null
@@ -1,28 +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"
-PR = "r2"
-
-SRC_URI[md5sum] = "e5e06eb14a608b58746bdd1c0bd7b8e3"
-SRC_URI[sha256sum] = "8ef8067312571292ccc2bbe94c41109dcf022ea5a4ec71656a83d8cce9edb0cd"
-
-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.14.bb b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.14.bb
new file mode 100644
index 0000000000..4a909848a5
--- /dev/null
+++ b/meta-oe/recipes-graphics/xorg-lib/libxaw_1.0.14.bb
@@ -0,0 +1,28 @@
+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"
+XORG_EXT = "tar.bz2"
+
+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 = ""
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.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/xscreensaver/files/0001-Tweak-app-defaults.patch b/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch
new file mode 100644
index 0000000000..1d0d20da2f
--- /dev/null
+++ b/meta-oe/recipes-graphics/xscreensaver/files/0001-Tweak-app-defaults.patch
@@ -0,0 +1,304 @@
+From f2c592352360e52a7c817a1adcc8b09fd92cd941 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Jul 2022 09:58:24 -0700
+Subject: [PATCH 1/2] Tweak app defaults
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ driver/XScreenSaver.ad.in | 259 +-------------------------------------
+ 1 file changed, 6 insertions(+), 253 deletions(-)
+
+--- a/driver/XScreenSaver.ad.in
++++ b/driver/XScreenSaver.ad.in
+@@ -29,7 +29,7 @@
+ ! /* (xrdb prevention kludge: whole file)
+
+ *mode: random
+-*timeout: 0:10:00
++*timeout: 0:15:00
+ *cycle: 0:10:00
+ *lockTimeout: 0:00:00
+ *passwdTimeout: 0:00:30
+@@ -38,7 +38,7 @@
+ *dpmsStandby: 2:00:00
+ *dpmsSuspend: 2:00:00
+ *dpmsOff: 4:00:00
+-*grabDesktopImages: True
++*grabDesktopImages: False
+ *grabVideoFrames: False
+ *chooseRandomImages: @DEFAULT_IMAGES_P@
+ ! This can be a local directory name, or the URL of an RSS or Atom feed.
+@@ -47,11 +47,11 @@
+ *memoryLimit: 0
+ *lock: False
+ *verbose: False
+-*fade: True
++*fade: False
+ *unfade: True
+ *fadeSeconds: 0:00:03
+ *fadeTicks: 20
+-*splash: True
++*splash: False
+ *splashDuration: 0:00:05
+ *visualID: default
+ *installColormap: True
+@@ -324,256 +324,8 @@ XScreenSaver.bourneShell: /bin/sh
+ !=============================================================================
+
+ *programs: \
+- maze -root \n\
+-@GL_KLUDGE@ GL: superquadrics -root \n\
+- attraction -root \n\
+- blitspin -root \n\
+- greynetic -root \n\
+- helix -root \n\
+- hopalong -root \n\
+- imsmap -root \n\
+-- noseguy -root \n\
+-- pyro -root \n\
+- qix -root \n\
+-- rocks -root \n\
+- rorschach -root \n\
+- decayscreen -root \n\
+- flame -root \n\
+- halo -root \n\
+- slidescreen -root \n\
+- pedal -root \n\
+- bouboule -root \n\
+-- braid -root \n\
+- coral -root \n\
+- deco -root \n\
+- drift -root \n\
+-- fadeplot -root \n\
+- galaxy -root \n\
+- goop -root \n\
+- grav -root \n\
+- ifs -root \n\
+-@GL_KLUDGE@ GL: jigsaw -root \n\
+- julia -root \n\
+-- kaleidescope -root \n\
+-@GL_KLUDGE@ GL: moebius -root \n\
+- moire -root \n\
+-@GL_KLUDGE@ GL: morph3d -root \n\
+- mountain -root \n\
+- munch -root \n\
+- penrose -root \n\
+-@GL_KLUDGE@ GL: pipes -root \n\
+- rdbomb -root \n\
+-@GL_KLUDGE@ GL: rubik -root \n\
+-- sierpinski -root \n\
+- slip -root \n\
+-@GL_KLUDGE@ GL: sproingies -root \n\
+- starfish -root \n\
+- strange -root \n\
+- swirl -root \n\
+- triangle -root \n\
+- xjack -root \n\
+- xlyap -root \n\
+-@GL_KLUDGE@ GL: atlantis -root \n\
+- bsod -root \n\
+-@GL_KLUDGE@ GL: bubble3d -root \n\
+-@GL_KLUDGE@ GL: cage -root \n\
+-- crystal -root \n\
+- cynosure -root \n\
+- discrete -root \n\
+- distort -root \n\
+- epicycle -root \n\
+- flow -root \n\
+-@GL_KLUDGE@ GL: glplanet -root \n\
+- interference -root \n\
+- kumppa -root \n\
+-@GL_KLUDGE@ GL: lament -root \n\
+- moire2 -root \n\
+-@GL_KLUDGE@ GL: sonar -root \n\
+-@GL_KLUDGE@ GL: stairs -root \n\
+- truchet -root \n\
+-- vidwhacker -root \n\
+- blaster -root \n\
+- bumps -root \n\
+- ccurve -root \n\
+- compass -root \n\
+- deluxe -root \n\
+-- demon -root \n\
+-@GLE_KLUDGE@ GL: extrusion -root \n\
+-- loop -root \n\
+- penetrate -root \n\
+- petri -root \n\
+- phosphor -root \n\
+-@GL_KLUDGE@ GL: pulsar -root \n\
+- ripples -root \n\
+- shadebobs -root \n\
+-@GL_KLUDGE@ GL: sierpinski3d -root \n\
+- spotlight -root \n\
+- squiral -root \n\
+- wander -root \n\
+-- webcollage -root \n\
+- xflame -root \n\
+- xmatrix -root \n\
+-@GL_KLUDGE@ GL: gflux -root \n\
+-- nerverot -root \n\
+- xrayswarm -root \n\
+- xspirograph -root \n\
+-@GL_KLUDGE@ GL: circuit -root \n\
+-@GL_KLUDGE@ GL: dangerball -root \n\
+-- GL: dnalogo -root \n\
+-@GL_KLUDGE@ GL: engine -root \n\
+-@GL_KLUDGE@ GL: flipscreen3d -root \n\
+-@GL_KLUDGE@ GL: gltext -root \n\
+-@GL_KLUDGE@ GL: menger -root \n\
+-@GL_KLUDGE@ GL: molecule -root \n\
+- rotzoomer -root \n\
+- scooter -root \n\
+- speedmine -root \n\
+-@GL_KLUDGE@ GL: starwars -root \n\
+-@GL_KLUDGE@ GL: stonerview -root \n\
+- vermiculate -root \n\
+- whirlwindwarp -root \n\
+- zoom -root \n\
+- anemone -root \n\
+- apollonian -root \n\
+-@GL_KLUDGE@ GL: boxed -root \n\
+-@GL_KLUDGE@ GL: cubenetic -root \n\
+-@GL_KLUDGE@ GL: endgame -root \n\
+- euler2d -root \n\
+- fluidballs -root \n\
+-@GL_KLUDGE@ GL: flurry -root \n\
+-- GL: glblur -root \n\
+-@GL_KLUDGE@ GL: glsnake -root \n\
+- halftone -root \n\
+-@GL_KLUDGE@ GL: juggler3d -root \n\
+-@GL_KLUDGE@ GL: lavalite -root \n\
+-- polyominoes -root \n\
+-@GL_KLUDGE@ GL: queens -root \n\
+-- GL: sballs -root \n\
+-@GL_KLUDGE@ GL: spheremonics -root \n\
+-- thornbird -root \n\
+- twang -root \n\
+-- GL: antspotlight -root \n\
+- apple2 -root \n\
+-@GL_KLUDGE@ GL: atunnel -root \n\
+- barcode -root \n\
+-@GL_KLUDGE@ GL: blinkbox -root \n\
+-@GL_KLUDGE@ GL: blocktube -root \n\
+-@GL_KLUDGE@ GL: bouncingcow -root \n\
+- cloudlife -root \n\
+-@GL_KLUDGE@ GL: cubestorm -root \n\
+- eruption -root \n\
+-@GL_KLUDGE@ GL: flipflop -root \n\
+-@GL_KLUDGE@ GL: flyingtoasters -root \n\
+- fontglide -root \n\
+-@GL_KLUDGE@ GL: gleidescope -root \n\
+-@GL_KLUDGE@ GL: glknots -root \n\
+-@GL_KLUDGE@ GL: glmatrix -root \n\
+-- GL: glslideshow -root \n\
+-@GL_KLUDGE@ GL: hypertorus -root \n\
+-- GL: jigglypuff -root \n\
+- metaballs -root \n\
+-@GL_KLUDGE@ GL: mirrorblob -root \n\
+- piecewise -root \n\
+-@GL_KLUDGE@ GL: polytopes -root \n\
+- pong -root \n\
+- popsquares -root \n\
+-@GL_KLUDGE@ GL: surfaces -root \n\
+- xanalogtv -root \n\
+- abstractile -root \n\
+- anemotaxis -root \n\
+-- GL: antinspect -root \n\
+- fireworkx -root \n\
+- fuzzyflakes -root \n\
+- interaggregate -root \n\
+- intermomentary -root \n\
+- memscroller -root \n\
+-@GL_KLUDGE@ GL: noof -root \n\
+- pacman -root \n\
+-@GL_KLUDGE@ GL: pinion -root \n\
+-@GL_KLUDGE@ GL: polyhedra -root \n\
+-- GL: providence -root \n\
+- substrate -root \n\
+- wormhole -root \n\
+-- GL: antmaze -root \n\
+-@GL_KLUDGE@ GL: boing -root \n\
+- boxfit -root \n\
+-@GL_KLUDGE@ GL: carousel -root \n\
+- celtic -root \n\
+-@GL_KLUDGE@ GL: crackberg -root \n\
+-@GL_KLUDGE@ GL: cube21 -root \n\
+- fiberlamp -root \n\
+-@GL_KLUDGE@ GL: fliptext -root \n\
+-@GL_KLUDGE@ GL: glhanoi -root \n\
+-@GL_KLUDGE@ GL: tangram -root \n\
+-@GL_KLUDGE@ GL: timetunnel -root \n\
+-@GL_KLUDGE@ GL: glschool -root \n\
+-@GL_KLUDGE@ GL: topblock -root \n\
+-@GL_KLUDGE@ GL: cubicgrid -root \n\
+- cwaves -root \n\
+-@GL_KLUDGE@ GL: gears -root \n\
+-@GL_KLUDGE@ GL: glcells -root \n\
+-@GL_KLUDGE@ GL: lockward -root \n\
+- m6502 -root \n\
+-@GL_KLUDGE@ GL: moebiusgears -root \n\
+-@GL_KLUDGE@ GL: voronoi -root \n\
+-@GL_KLUDGE@ GL: hypnowheel -root \n\
+-@GL_KLUDGE@ GL: klein -root \n\
+-- lcdscrub -root \n\
+-@GL_KLUDGE@ GL: photopile -root \n\
+-@GL_KLUDGE@ GL: skytentacles -root \n\
+-@GL_KLUDGE@ GL: rubikblocks -root \n\
+-@GL_KLUDGE@ GL: companioncube -root \n\
+-@GL_KLUDGE@ GL: hilbert -root \n\
+-@GL_KLUDGE@ GL: tronbit -root \n\
+-@GL_KLUDGE@ GL: geodesic -root \n\
+- hexadrop -root \n\
+-@GL_KLUDGE@ GL: kaleidocycle -root \n\
+-@GL_KLUDGE@ GL: quasicrystal -root \n\
+-@GL_KLUDGE@ GL: unknownpleasures -root \n\
+- binaryring -root \n\
+-@GL_KLUDGE@ GL: cityflow -root \n\
+-@GL_KLUDGE@ GL: geodesicgears -root \n\
+-@GL_KLUDGE@ GL: projectiveplane -root \n\
+-@GL_KLUDGE@ GL: romanboy -root \n\
+- tessellimage -root \n\
+-@GL_KLUDGE@ GL: winduprobot -root \n\
+-@GL_KLUDGE@ GL: splitflap -root \n\
+-@GL_KLUDGE@ GL: cubestack -root \n\
+-@GL_KLUDGE@ GL: cubetwist -root \n\
+-@GL_KLUDGE@ GL: discoball -root \n\
+-@GL_KLUDGE@ GL: dymaxionmap -root \n\
+-@GL_KLUDGE@ GL: energystream -root \n\
+-@GL_KLUDGE@ GL: hexstrut -root \n\
+-@GL_KLUDGE@ GL: hydrostat -root \n\
+-@GL_KLUDGE@ GL: raverhoop -root \n\
+-@GL_KLUDGE@ GL: splodesic -root \n\
+-@GL_KLUDGE@ GL: unicrud -root \n\
+-@GL_KLUDGE@ GL: esper -root \n\
+-@GL_KLUDGE@ GL: vigilance -root \n\
+-@GL_KLUDGE@ GL: crumbler -root \n\
+- filmleader -root \n\
+- glitchpeg -root \n\
+-@GL_KLUDGE@ GL: handsy -root \n\
+-@GL_KLUDGE@ GL: maze3d -root \n\
+-@GL_KLUDGE@ GL: peepers -root \n\
+-@GL_KLUDGE@ GL: razzledazzle -root \n\
+- vfeedback -root \n\
+-@GL_KLUDGE@ GL: deepstars -root \n\
+-@GL_KLUDGE@ GL: gravitywell -root \n\
+-@GL_KLUDGE@ GL: beats -root \n\
+-@GL_KLUDGE@ GL: covid19 -root \n\
+-@GL_KLUDGE@ GL: etruscanvenus -root \n\
+-@GL_KLUDGE@ GL: gibson -root \n\
+-@GL_KLUDGE@ GL: headroom -root \n\
+-@GL_KLUDGE@ GL: sphereeversion -root \n\
+- binaryhorizon -root \n\
+- marbling -root \n\
+-@GL_KLUDGE@ GL: chompytower -root \n\
+-@GL_KLUDGE@ GL: mapscroller -root \n\
+-@GL_KLUDGE@ GL: nakagin -root \n\
+-@GL_KLUDGE@ GL: squirtorus -root \n
+-
+-
++- fontglide -root -program "date +'%F %H:%M %z'"
++ gifview --window $XSCREENSAVER_WINDOW /usr/share/logo/bosch-black.gif
+
+ !=============================================================================
+ !
diff --git a/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch b/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch
new file mode 100644
index 0000000000..ea3f25a2f2
--- /dev/null
+++ b/meta-oe/recipes-graphics/xscreensaver/files/0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch
@@ -0,0 +1,47 @@
+From 516fbcdcfe6343b1d64d35957ddb768346713ff6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 17 Jul 2022 09:47:35 -0700
+Subject: [PATCH] configure: Ignore CONF_STATUS for gtk and openGL needs
+
+These are just warnings
+
+Upstream-Status: Inappropriate [OE-Specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c4fd38f..d7463cf 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -4522,7 +4522,6 @@ fi
+ if test "$gtk_halfassed" != no ; then
+ warnL "GTK was found, but $gtk_halfassed_lib was not, so GTK"
+ warn2 "can't be used."
+- CONF_STATUS=1
+
+ if ( echo $gtk_halfassed_lib | grep -qi pixbuf-xlib ); then
+ echo ''
+@@ -4549,7 +4548,6 @@ if test "$have_motif" = no -a "$have_gtk" = no; then
+ else
+ warnL "The GTK libraries do not seem to be available; the"
+ warn2 "\`xscreensaver-settings' program requires them."
+- CONF_STATUS=1
+ # echo ''
+ # warn2 'You can use Motif or Lesstif instead of GTK (use the'
+ # warn2 "\`--with-motif' option) but that is NOT recommended."
+@@ -4735,10 +4733,8 @@ if test "$have_gl" = no ; then
+ CONF_STATUS=1
+ elif test "$with_gl_req" = no ; then
+ noteL 'The OpenGL 3D library is not being used.'
+- CONF_STATUS=1
+ else
+ noteL 'The OpenGL 3D library was not found.'
+- CONF_STATUS=1
+ fi
+
+ if test "$gl_halfassed" = yes ; then
+--
+2.37.1
+
diff --git a/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch b/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch
new file mode 100644
index 0000000000..0ceba7be02
--- /dev/null
+++ b/meta-oe/recipes-graphics/xscreensaver/files/0002-build-Do-not-build-po-files.patch
@@ -0,0 +1,53 @@
+From 6b5d022f6dd9848a2d5ca08a1968929b8c140981 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Jul 2022 09:59:40 -0700
+Subject: [PATCH 2/2] build: Do not build po files
+
+Fixes
+| make[1]: Entering directory '/mnt/b/yoe/master/build/tmp/work/cortexa57-yoe-linux/xscreensaver/6.01-r0/xscreensaver-6.01/po'
+| make[1]: *** No rule to make target 'default'. Stop.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile.in | 5 ++---
+ driver/Makefile.in | 2 +-
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 9de79b2..1c1d16c 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -6,8 +6,8 @@ srcdir = @srcdir@
+ VPATH = @srcdir@
+
+ SHELL = /bin/sh
+-SUBDIRS = utils jwxyz hacks/images hacks hacks/glx hacks/fonts \
+- driver po
++SUBDIRS = utils jwxyz hacks/images hacks hacks/fonts \
++ driver
+ SUBDIRS2 = $(SUBDIRS) OSX android
+ TARFILES = README README.hacking INSTALL \
+ configure configure.ac Makefile.in config.h.in \
+@@ -461,4 +461,3 @@ cerebrum::
+ --include 'ad2c' \
+ --include '*/' \
+ --exclude '*'
+-
+diff --git a/driver/Makefile.in b/driver/Makefile.in
+index e1fa1b2..feca6fc 100644
+--- a/driver/Makefile.in
++++ b/driver/Makefile.in
+@@ -211,7 +211,7 @@ TEST_EXES = test-passwd test-uid test-xdpms test-grab \
+ xdpyinfo test-screens test-yarandom test-xinput \
+ test-xkb
+
+-EXES = xscreensaver xscreensaver-command xscreensaver-settings
++EXES = xscreensaver xscreensaver-command
+ UTIL_EXES = xscreensaver-gfx @EXES_SYSTEMD@
+ SETUID_EXES = xscreensaver-auth
+ DEMO_EXES = @ALL_DEMO_PROGRAMS@
+--
+2.37.1
+
diff --git a/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service b/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service
new file mode 100755
index 0000000000..17dfe75ef1
--- /dev/null
+++ b/meta-oe/recipes-graphics/xscreensaver/files/xscreensaver.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Xscreensaver service
+PartOf=xserver-nodm.service
+After=xserver-nodm.service
+
+[Service]
+ExecStart=/usr/bin/xscreensaver
+Environment="DISPLAY=:0"
+User=xuser
+Restart=always
+RestartSec=1
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
new file mode 100644
index 0000000000..d24f666bcf
--- /dev/null
+++ b/meta-oe/recipes-graphics/xscreensaver/xscreensaver_6.04.bb
@@ -0,0 +1,60 @@
+SUMMARY = "X screen saver and locker"
+HOMEPAGE = "https://www.jwz.org/xscreensaver/"
+LICENSE = "0BSD"
+LIC_FILES_CHKSUM = "file://driver/xscreensaver.h;endline=10;md5=c3ce41cdff745eb1dc9d4fcfbffb4d51"
+
+SRC_URI = "https://www.jwz.org/${BPN}/${BP}.tar.gz \
+ file://xscreensaver.service \
+ file://0001-Tweak-app-defaults.patch \
+ file://0002-build-Do-not-build-po-files.patch \
+ file://0001-configure-Ignore-CONF_STATUS-for-gtk-and-openGL-need.patch \
+"
+SRC_URI[sha256sum] = "787014b29f0c5793ecc2d93e1109a049ff48ab0c29b851dab34f683ceef6b152"
+
+DEPENDS = "intltool-native libx11 libxext libxt libxft libxi glib-2.0-native bc-native libpam jpeg"
+# These are only needed as part of the stopgap screensaver implementation:
+RDEPENDS:${PN} = " \
+ liberation-fonts \
+ xuser-account \
+"
+
+inherit systemd perlnative pkgconfig gettext autotools-brokensep features_check
+
+
+EXTRA_OECONF += "--with-app-defaults=${datadir}/X11/app-defaults --libdir=${STAGING_LIBDIR} \
+ --includedir=${STAGING_INCDIR} --with-pam --with-login-manager"
+
+EXTRA_OEMAKE += "install_prefix=${D} GTK_DATADIR=${datadir}"
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+PACKAGECONFIG = "png ${@bb.utils.contains('DISTRO_FEATURES','systemd','systemd','',d)}"
+
+PACKAGECONFIG[systemd] = "--with-systemd=yes,--with-systemd=no,systemd"
+PACKAGECONFIG[png] = "--with-png=yes,--with-png=no,libpng"
+
+CONFIGUREOPTS:remove = "--disable-silent-rules --disable-dependency-tracking ${@append_libtool_sysroot(d)}"
+EXTRA_OECONF:remove = "--disable-static"
+
+do_install:append() {
+ install -D ${WORKDIR}/xscreensaver.service ${D}${systemd_unitdir}/system/xscreensaver.service
+ for f in xscreensaver-getimage-file xscreensaver-getimage-video webcollage xscreensaver-text vidwhacker
+ do
+ sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl|/usr/bin/perl|g" ${D}/${libexecdir}/${PN}/$f
+ done
+}
+
+PACKAGES =+ "${PN}-perl"
+
+FILES:${PN}-perl = "\
+ ${libexecdir}/${PN}/xscreensaver-getimage-file \
+ ${libexecdir}/${PN}/xscreensaver-getimage-video \
+ ${libexecdir}/${PN}/webcollage \
+ ${libexecdir}/${PN}/xscreensaver-text \
+ ${libexecdir}/${PN}/vidwhacker \
+ "
+FILES:${PN} += "${datadir}/X11/app-defaults/XScreenSaver ${datadir}/fonts"
+SYSTEMD_SERVICE:${PN} = "xscreensaver.service"
+
+RDEPENDS:${PN}-perl = "perl"
+
+CLEANBROKEN = "1"
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 a5ed21d458..574d259bdf 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
@@ -1,18 +1,18 @@
SUMMARY = "Common X11 scripts and support files"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
PR = "r9"
# we are using a gpe-style Makefile
-inherit distro_features_check gpe
+inherit features_check gpe
REQUIRED_DISTRO_FEATURES = "x11"
SRC_URI[md5sum] = "82f2f84cd96610e8f7b92c700cd31c14"
SRC_URI[sha256sum] = "cd04c33418f776b1e13fcc7af3d6bd0c7cccd03fbabd7dbcd97f88166cc34210"
-SRC_URI_append = " \
+SRC_URI:append = " \
file://0001-COPYING-add-GPLv2-license-file.patch \
file://0002-add-setdpi-Xinit.d-script.patch \
file://0006-add-support-for-etc-X11-xserver-system.patch \
@@ -27,7 +27,7 @@ SRC_URI_append = " \
file://0001-Don-t-install-Xsession-or-Xserver.patch \
"
-do_install_append() {
+do_install:append() {
sed -i 's:^BINDIR=.*$:BINDIR=${bindir}:' ${D}/etc/X11/xserver-common
# Rename all Xsession files not ending with .sh
# Unfortunatelly when xinput-calibrator was moved to oe-core
@@ -38,8 +38,8 @@ do_install_append() {
done
}
-RDEPENDS_${PN} = "xmodmap xrandr xdpyinfo fbset xinput-calibrator"
+RDEPENDS:${PN} = "xmodmap xrandr xdpyinfo fbset xinput-calibrator"
-RCONFLICTS_${PN} = "xserver-kdrive-common x11-common"
-RREPLACES_${PN} = "xserver-kdrive-common x11-common"
+RCONFLICTS:${PN} = "xserver-kdrive-common x11-common"
+RREPLACES:${PN} = "xserver-kdrive-common x11-common"
diff --git a/meta-oe/recipes-graphics/yad/yad_6.0.bb b/meta-oe/recipes-graphics/yad/yad_6.0.bb
new file mode 100644
index 0000000000..40fccbdc1a
--- /dev/null
+++ b/meta-oe/recipes-graphics/yad/yad_6.0.bb
@@ -0,0 +1,19 @@
+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"
+
+SRC_URI = "git://github.com/v1cont/yad.git;branch=master;protocol=https"
+SRCREV = "a5b1a7a3867bc7dffbbc539f586f301687b6ec02"
+
+inherit autotools gsettings features_check pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+DEPENDS = "gtk+3 glib-2.0-native intltool-native"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${datadir}/icons/"
diff --git a/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb b/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb
new file mode 100644
index 0000000000..0e17800c4b
--- /dev/null
+++ b/meta-oe/recipes-kernel/agent-proxy/agent-proxy_1.97.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Proxy for UDP/TCP debug connections"
+DESCRIPTION = "The agent-proxy will forward tcp or udp connections as well as allow for script multiplexing of terminal sessions."
+HOMEPAGE = "http://kgdb.wiki.kernel.org/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SECTION = "devel"
+
+EXTRA_OEMAKE = "'CC=${CC}'"
+
+SRCREV = "468fe4c31e6c62c9bbb328b06ba71eaf7be0b76a"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git;protocol=git;branch=master \
+ file://0001-Makefile-Add-LDFLAGS-variable.patch \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+S = "${WORKDIR}/git"
+
+do_install () {
+ install -d ${D}${bindir}
+ install -m 0755 agent-proxy ${D}${bindir}
+}
diff --git a/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb b/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb
deleted file mode 100644
index 8e370f962c..0000000000
--- a/meta-oe/recipes-kernel/agent-proxy/agent-proxy_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Proxy for UDP/TCP debug connections"
-DESCRIPTION = "The agent-proxy will forward tcp or udp connections as well as allow for script multiplexing of terminal sessions."
-HOMEPAGE = "http://kgdb.wiki.kernel.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
-
-SECTION = "devel"
-
-EXTRA_OEMAKE = "'CC=${CC}'"
-
-SRCREV = "e6c9d3d996bd55e7ab14dbd74deb7841e0c3a4f1"
-PV = "1.96+git${SRCPV}"
-
-SRC_URI = "git://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git;protocol=git \
- file://0001-Makefile-Add-LDFLAGS-variable.patch \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-S = "${WORKDIR}/git"
-
-do_install () {
- install -d ${D}${bindir}
- install -m 0755 agent-proxy ${D}${bindir}
-}
diff --git a/meta-oe/recipes-kernel/bpftool/bpftool.bb b/meta-oe/recipes-kernel/bpftool/bpftool.bb
new file mode 100644
index 0000000000..bbfab47aae
--- /dev/null
+++ b/meta-oe/recipes-kernel/bpftool/bpftool.bb
@@ -0,0 +1,44 @@
+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"
+PROVIDES = "virtual/bpftool"
+
+inherit bash-completion kernelsrc kernel-arch
+
+do_populate_lic[depends] += "virtual/kernel:do_shared_workdir"
+
+EXTRA_OEMAKE = "\
+ V=1 \
+ -C ${S}/tools/bpf/bpftool \
+ O=${B} \
+ CROSS=${TARGET_PREFIX} \
+ CC="${CC} ${DEBUG_PREFIX_MAP} -fdebug-prefix-map=${STAGING_KERNEL_DIR}=${KERNEL_SRC_PATH}" \
+ LD="${LD}" \
+ AR=${AR} \
+ ARCH=${ARCH} \
+"
+
+SECURITY_CFLAGS = ""
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+COMPATIBLE_HOST = "(x86_64|aarch64).*-linux"
+COMPATIBLE_HOST:libc-musl = 'null'
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+python do_package:prepend() {
+ d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0])
+}
+
+B = "${WORKDIR}/${BPN}-${PV}"
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
new file mode 100644
index 0000000000..4b6026ebc0
--- /dev/null
+++ b/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_12.0.1.1105_p3.bb
@@ -0,0 +1,76 @@
+# Copyright (C) 2018 Krzysztof Kozlowski <krzk@kernel.org>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Broadcom Bluetooth firmware files"
+DESCRIPTION = "Firmware for Broadcom Bluetooth devices. Note that in case of BT+WiFi devices, separate WiFi firmware might be needed."
+HOMEPAGE = "https://github.com/winterheart/broadcom-bt-firmware"
+
+LICENSE = "Firmware-Broadcom-WIDCOMM"
+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 = "a0eb4805dbb232f02f156b9351a23790c1a4cec7"
+
+PE = "1"
+
+S = "${WORKDIR}/git"
+
+inherit allarch
+
+CLEANBROKEN = "1"
+
+do_compile() {
+ :
+}
+
+do_install() {
+ install -d ${D}${nonarch_base_libdir}/firmware/brcm/
+ cp brcm/*.hcd ${D}${nonarch_base_libdir}/firmware/brcm/
+
+ # For license package:
+ install -m 0644 LICENSE.broadcom_bcm20702 ${D}${nonarch_base_libdir}/firmware/brcm/
+
+ # For main package:
+ install -m 0644 DEVICES.md ${D}${nonarch_base_libdir}/firmware/brcm/
+}
+
+PACKAGES =+ " \
+ ${PN}-bcm20702a1 \
+ ${PN}-bcm20702b0 \
+ ${PN}-bcm20703a1 \
+ ${PN}-bcm43142a0 \
+ ${PN}-bcm4335c0 \
+ ${PN}-bcm4350c5 \
+ ${PN}-bcm4356a2 \
+ ${PN}-bcm4371c2 \
+ ${PN}-license \
+"
+
+RDEPENDS:${PN}-bcm20702a1 = "${PN}-license"
+RDEPENDS:${PN}-bcm20702b0 = "${PN}-license"
+RDEPENDS:${PN}-bcm20703a1 = "${PN}-license"
+RDEPENDS:${PN}-bcm43142a0 = "${PN}-license"
+RDEPENDS:${PN}-bcm4335c0 = "${PN}-license"
+RDEPENDS:${PN}-bcm4350c5 = "${PN}-license"
+RDEPENDS:${PN}-bcm4356a2 = "${PN}-license"
+RDEPENDS:${PN}-bcm4371c2 = "${PN}-license"
+
+FILES:${PN}-bcm20702a1 = "${nonarch_base_libdir}/firmware/brcm/BCM20702A1*hcd"
+FILES:${PN}-bcm20702b0 = "${nonarch_base_libdir}/firmware/brcm/BCM20702B0*hcd"
+FILES:${PN}-bcm20703a1 = "${nonarch_base_libdir}/firmware/brcm/BCM20703A1*hcd"
+FILES:${PN}-bcm43142a0 = "${nonarch_base_libdir}/firmware/brcm/BCM43142A0*hcd"
+FILES:${PN}-bcm4335c0 = "${nonarch_base_libdir}/firmware/brcm/BCM4335C0*hcd"
+FILES:${PN}-bcm4350c5 = "${nonarch_base_libdir}/firmware/brcm/BCM4350C5*hcd"
+FILES:${PN}-bcm4356a2 = "${nonarch_base_libdir}/firmware/brcm/BCM4356A2*hcd"
+FILES:${PN}-bcm4371c2 = "${nonarch_base_libdir}/firmware/brcm/BCM4371C2*hcd"
+FILES:${PN}-license += "${nonarch_base_libdir}/firmware/brcm/LICENSE.broadcom_bcm20702"
+
+FILES:${PN} += "${nonarch_base_libdir}/firmware/brcm/*"
+RDEPENDS:${PN} += "${PN}-license"
+
+# Make broadcom-bt-firmware depend on all of the split-out packages.
+python populate_packages:prepend () {
+ firmware_pkgs = oe.utils.packages_filter_out_system(d)
+ d.appendVar('RDEPENDS:broadcom-bt-firmware', ' ' + ' '.join(firmware_pkgs))
+}
diff --git a/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_git.bb b/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_git.bb
deleted file mode 100644
index 8c474ecdc4..0000000000
--- a/meta-oe/recipes-kernel/broadcom-bt-firmware/broadcom-bt-firmware_git.bb
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright (C) 2018 Krzysztof Kozlowski <krzk@kernel.org>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "Broadcom Bluetooth firmware files"
-DESCRIPTION = "Firmware for Broadcom Bluetooth devices. Note that in case of BT+WiFi devices, separate WiFi firmware might be needed."
-HOMEPAGE = "https://github.com/winterheart/broadcom-bt-firmware"
-
-LICENSE = "Firmware-Broadcom-WIDCOMM"
-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"
-SRCREV = "c0bd928b8ae5754b6077c99afe6ef5c949a58f32"
-PE = "1"
-PV = "0.0+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit allarch
-
-CLEANBROKEN = "1"
-
-do_compile() {
- :
-}
-
-do_install() {
- install -d ${D}${nonarch_base_libdir}/firmware/brcm/
- cp brcm/*.hcd ${D}${nonarch_base_libdir}/firmware/brcm/
-
- # For license package:
- install -m 0644 LICENSE.broadcom_bcm20702 ${D}${nonarch_base_libdir}/firmware/brcm/
-
- # For main package:
- install -m 0644 DEVICES.md ${D}${nonarch_base_libdir}/firmware/brcm/
-}
-
-PACKAGES =+ " \
- ${PN}-bcm20702a1 \
- ${PN}-bcm20702b0 \
- ${PN}-bcm20703a1 \
- ${PN}-bcm43142a0 \
- ${PN}-bcm4335c0 \
- ${PN}-bcm4350c5 \
- ${PN}-bcm4356a2 \
- ${PN}-bcm4371c2 \
- ${PN}-license \
-"
-
-RDEPENDS_${PN}-bcm20702a1 = "${PN}-license"
-RDEPENDS_${PN}-bcm20702b0 = "${PN}-license"
-RDEPENDS_${PN}-bcm20703a1 = "${PN}-license"
-RDEPENDS_${PN}-bcm43142a0 = "${PN}-license"
-RDEPENDS_${PN}-bcm4335c0 = "${PN}-license"
-RDEPENDS_${PN}-bcm4350c5 = "${PN}-license"
-RDEPENDS_${PN}-bcm4356a2 = "${PN}-license"
-RDEPENDS_${PN}-bcm4371c2 = "${PN}-license"
-
-FILES_${PN}-bcm20702a1 = "${nonarch_base_libdir}/firmware/brcm/BCM20702A1*hcd"
-FILES_${PN}-bcm20702b0 = "${nonarch_base_libdir}/firmware/brcm/BCM20702B0*hcd"
-FILES_${PN}-bcm20703a1 = "${nonarch_base_libdir}/firmware/brcm/BCM20703A1*hcd"
-FILES_${PN}-bcm43142a0 = "${nonarch_base_libdir}/firmware/brcm/BCM43142A0*hcd"
-FILES_${PN}-bcm4335c0 = "${nonarch_base_libdir}/firmware/brcm/BCM4335C0*hcd"
-FILES_${PN}-bcm4350c5 = "${nonarch_base_libdir}/firmware/brcm/BCM4350C5*hcd"
-FILES_${PN}-bcm4356a2 = "${nonarch_base_libdir}/firmware/brcm/BCM4356A2*hcd"
-FILES_${PN}-bcm4371c2 = "${nonarch_base_libdir}/firmware/brcm/BCM4371C2*hcd"
-FILES_${PN}-license += "${nonarch_base_libdir}/firmware/brcm/LICENSE.broadcom_bcm20702"
-
-FILES_${PN} += "${nonarch_base_libdir}/firmware/brcm/*"
-RDEPENDS_${PN} += "${PN}-license"
-
-# Make broadcom-bt-firmware depend on all of the split-out packages.
-python populate_packages_prepend () {
- firmware_pkgs = oe.utils.packages_filter_out_system(d)
- d.appendVar('RDEPENDS_broadcom-bt-firmware', ' ' + ' '.join(firmware_pkgs))
-}
diff --git a/meta-oe/recipes-kernel/cpupower/cpupower.bb b/meta-oe/recipes-kernel/cpupower/cpupower.bb
index 4abd273fae..18e3638052 100644
--- a/meta-oe/recipes-kernel/cpupower/cpupower.bb
+++ b/meta-oe/recipes-kernel/cpupower/cpupower.bb
@@ -1,12 +1,11 @@
SUMMARY = "Shows and sets processor power related values"
DESCRIPTION = "cpupower is a collection of tools to examine and tune power \
saving related features of your processor."
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
+LICENSE = "GPL-2.0-only"
DEPENDS = "pciutils gettext-native"
PROVIDES = "virtual/cpupower"
-inherit kernelsrc kernel-arch
+inherit kernelsrc kernel-arch bash-completion
do_populate_lic[depends] += "virtual/kernel:do_patch"
@@ -27,10 +26,10 @@ do_install() {
PACKAGE_ARCH = "${MACHINE_ARCH}"
-RDEPENDS_${PN} = "bash"
+RDEPENDS:${PN} = "bash"
-python do_package_prepend() {
- d.setVar('PKGV', d.getVar("KERNEL_VERSION", True).split("-")[0])
+python do_package:prepend() {
+ d.setVar('PKGV', d.getVar("KERNEL_VERSION").split("-")[0])
}
B = "${WORKDIR}/${BPN}-${PV}"
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/0001-make-src-string-const-in-strlcpy.patch b/meta-oe/recipes-kernel/crash/crash/0001-make-src-string-const-in-strlcpy.patch
new file mode 100644
index 0000000000..546973e0ac
--- /dev/null
+++ b/meta-oe/recipes-kernel/crash/crash/0001-make-src-string-const-in-strlcpy.patch
@@ -0,0 +1,69 @@
+From 4ee56105881d7bb1da1e668ac5bb47a4e0846676 Mon Sep 17 00:00:00 2001
+From: Lianbo Jiang <lijiang@redhat.com>
+Date: Wed, 5 Jul 2023 10:02:59 +0800
+Subject: [PATCH] Fix compilation error due to new strlcpy function that glibc
+ added
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+The crash-utility has its own strlcpy(), but recently the latest glibc
+has also implemented the strlcpy function, which is derived from
+OpenBSD. Eventually this caused the following compilation error:
+
+ # make -j8 lzo
+ ...
+ In file included from global_data.c:18:
+ defs.h:5556:8: error: conflicting types for ‘strlcpy’; have ‘size_t(char *, char *, size_t)’ {aka ‘long unsigned int(char *, char *, long unsigned int)’}
+ 5556 | size_t strlcpy(char *, char *, size_t);
+ | ^~~~~~~
+ In file included from memory.c:19:
+ defs.h:5556:8: error: conflicting types for ‘strlcpy’; have ‘size_t(char *, char *, size_t)’ {aka ‘long unsigned int(char *, char *, long unsigned int)’}
+ 5556 | size_t strlcpy(char *, char *, size_t);
+ | ^~~~~~~
+ ...
+
+To fix the issue, let's declare the strlcpy() as a weak function and
+keep the same parameter types as the glibc function has.
+
+Related glibc commits:
+454a20c8756c ("Implement strlcpy and strlcat [BZ #178]")
+d2fda60e7c40 ("manual: Manual update for strlcat, strlcpy, wcslcat, wclscpy")
+388ae538ddcb ("hurd: Add strlcpy, strlcat, wcslcpy, wcslcat to libc.abilist")
+
+Upstream-Status: Backport [https://github.com/kraj/crash/commit/4ee56105881d7bb1da1e668ac5bb47a4e0846676]
+Signed-off-by: Lianbo Jiang <lijiang@redhat.com>
+---
+ defs.h | 2 +-
+ tools.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/defs.h b/defs.h
+index 8f7d1fa..26afe23 100644
+--- a/defs.h
++++ b/defs.h
+@@ -5553,7 +5553,7 @@ uint32_t swap32(uint32_t, int);
+ uint64_t swap64(uint64_t, int);
+ ulong *get_cpumask_buf(void);
+ int make_cpumask(char *, ulong *, int, int *);
+-size_t strlcpy(char *, char *, size_t);
++size_t strlcpy(char *, const char *, size_t) __attribute__ ((__weak__));
+ struct rb_node *rb_first(struct rb_root *);
+ struct rb_node *rb_parent(struct rb_node *, struct rb_node *);
+ struct rb_node *rb_right(struct rb_node *, struct rb_node *);
+diff --git a/tools.c b/tools.c
+index 392a797..0f2db10 100644
+--- a/tools.c
++++ b/tools.c
+@@ -6795,7 +6795,7 @@ make_cpumask_error:
+ * always be NULL-terminated.
+ */
+ size_t
+-strlcpy(char *dest, char *src, size_t size)
++strlcpy(char *dest, const char *src, size_t size)
+ {
+ size_t ret = strlen(src);
+
+--
+2.41.0
+
diff --git a/meta-oe/recipes-kernel/crash/crash/0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch b/meta-oe/recipes-kernel/crash/crash/0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch
deleted file mode 100644
index 8355fe44ea..0000000000
--- a/meta-oe/recipes-kernel/crash/crash/0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 52fc1a7c17768fd52c3577d21dad84e8babb94b5 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Thu, 6 Apr 2017 23:01:14 -0400
-Subject: [PATCH 2/3] crash: fix build error unknown type name 'gdb_fpregset_t'
-
-Upstream-Status: Pending
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- gdb-7.6/gdb/gdb_proc_service.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/gdb-7.6/gdb/gdb_proc_service.h b/gdb-7.6/gdb/gdb_proc_service.h
-index 8bc6088..99c6496 100644
---- a/gdb-7.6/gdb/gdb_proc_service.h
-+++ b/gdb-7.6/gdb/gdb_proc_service.h
-@@ -20,6 +20,7 @@
- #define GDB_PROC_SERVICE_H
-
- #include <sys/types.h>
-+#include "gregset.h"
-
- #ifdef HAVE_PROC_SERVICE_H
- #include <proc_service.h>
-@@ -53,8 +54,6 @@
- #include <sys/procfs.h>
- #endif
-
--#include "gregset.h"
--
- /* Functions in this interface return one of these status codes. */
- typedef enum
- {
---
-2.8.1
-
diff --git a/meta-oe/recipes-kernel/crash/crash/0003-crash-detect-the-sysroot-s-glibc-header-file.patch b/meta-oe/recipes-kernel/crash/crash/0003-crash-detect-the-sysroot-s-glibc-header-file.patch
deleted file mode 100644
index 1f4bd01da4..0000000000
--- a/meta-oe/recipes-kernel/crash/crash/0003-crash-detect-the-sysroot-s-glibc-header-file.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c7950ef5228adc52a500b4fc67d7e48c3c09c1df Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Thu, 6 Apr 2017 23:02:44 -0400
-Subject: [PATCH 3/3] crash: detect the sysroot's glibc header file
-
-This is cross compile, so let the Makefile detect the sysroot's glibc
-header file, not the host's glibc header file.
-
-Upstream-Status: Pending
-
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index b6b7e80..94f21a5 100644
---- a/Makefile
-+++ b/Makefile
-@@ -264,8 +264,8 @@ gdb_patch:
- if [ "${ARCH}" = "x86_64" ] && [ "${TARGET}" = "PPC64" ] && [ -f ${GDB}-ppc64le-support.patch ]; then \
- patch -d ${GDB} -p1 -F0 < ${GDB}-ppc64le-support.patch ; \
- fi
-- if [ -f /usr/include/proc_service.h ]; then \
-- grep 'extern ps_err_e ps_get_thread_area (struct' /usr/include/proc_service.h; \
-+ if [ -f ${RECIPE_SYSROOT}/usr/include/proc_service.h ]; then \
-+ grep 'extern ps_err_e ps_get_thread_area (struct' ${RECIPE_SYSROOT}/usr/include/proc_service.h; \
- if [ $$? -eq 0 ]; then \
- patch -p0 < ${GDB}-proc_service.h.patch; \
- fi; \
---
-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/donnot-extract-gdb-during-do-compile.patch b/meta-oe/recipes-kernel/crash/crash/donnot-extract-gdb-during-do-compile.patch
index e254fe8772..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,32 +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
-@@ -226,7 +226,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
-@@ -253,11 +253,6 @@ gdb_unzip:
+@@ -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 \
-- wget http://ftp.gnu.org/gnu/gdb/${GDB}.tar.gz; fi
-- @tar --exclude-from gdb.files -xvzmf ${GDB}.tar.gz
- @make --no-print-directory gdb_patch
+- [ ! -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) 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/remove-unrecognized-gcc-option-m32-for-mips.patch b/meta-oe/recipes-kernel/crash/crash/remove-unrecognized-gcc-option-m32-for-mips.patch
deleted file mode 100644
index 905b4c2cd0..0000000000
--- a/meta-oe/recipes-kernel/crash/crash/remove-unrecognized-gcc-option-m32-for-mips.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Pending
-
-It fails to build crash for mips with error:
-
-| mips-wrs-linux-gcc: error: unrecognized command line option '-m32'
-| Makefile:291: recipe for target 'make_build_data' failed
-
-So remove the unrecognized option '-m32' for mips.
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-diff --git a/configure.c b/configure.c
-index cf1973b..71e97b3 100644
---- a/configure.c
-+++ b/configure.c
-@@ -151,7 +151,7 @@ void add_extra_lib(char *);
- #define TARGET_CFLAGS_PPC64_ON_X86_64 "TARGET_CFLAGS="
- #define TARGET_CFLAGS_MIPS "TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64"
- #define TARGET_CFLAGS_MIPS_ON_X86 "TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64"
--#define TARGET_CFLAGS_MIPS_ON_X86_64 "TARGET_CFLAGS=-m32 -D_FILE_OFFSET_BITS=64"
-+#define TARGET_CFLAGS_MIPS_ON_X86_64 "TARGET_CFLAGS=-D_FILE_OFFSET_BITS=64"
- #define TARGET_CFLAGS_SPARC64 "TARGET_CFLAGS="
-
- #define GDB_TARGET_DEFAULT "GDB_CONF_FLAGS="
-@@ -162,7 +162,7 @@ void add_extra_lib(char *);
- #define GDB_TARGET_ARM64_ON_X86_64 "GDB_CONF_FLAGS=--target=aarch64-elf-linux" /* TBD */
- #define GDB_TARGET_PPC64_ON_X86_64 "GDB_CONF_FLAGS=--target=powerpc64le-unknown-linux-gnu"
- #define GDB_TARGET_MIPS_ON_X86 "GDB_CONF_FLAGS=--target=mipsel-elf-linux"
--#define GDB_TARGET_MIPS_ON_X86_64 "GDB_CONF_FLAGS=--target=mipsel-elf-linux CFLAGS=-m32"
-+#define GDB_TARGET_MIPS_ON_X86_64 "GDB_CONF_FLAGS=--target=mipsel-elf-linux"
-
- /*
- * The original plan was to allow the use of a particular version
diff --git a/meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch b/meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch
deleted file mode 100644
index 0185b57045..0000000000
--- a/meta-oe/recipes-kernel/crash/crash/sim-common-sim-arange-fix-extern-inline-handling.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-Upstream-Status: Backport
-
-https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=92fc615
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
-From 92fc6153a6fdf2a027d9780f5945712aafad4a9e Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 29 Mar 2015 15:59:01 -0400
-Subject: [PATCH] sim: common: sim-arange: fix extern inline handling
-
-With newer versions of gcc (5.x), the extern inline we're using with the
-sim-arange module no longer works. Since this code really wants the gnu
-inline semantics, use that attribute explicitly.
-
-Reported-by: DJ Delorie <dj@redhat.com>
-Reported-by: Joel Sherrill <joel.sherrill@oarcorp.com>
----
- gdb-7.6/sim/common/sim-arange.h | 20 ++++++++++++--------
- gdb-7.6/sim/common/sim-inline.h | 4 +++-
- 2 files changed, 15 insertions(+), 9 deletions(-)
-
-diff --git a/gdb-7.6/sim/common/sim-arange.h b/gdb-7.6/sim/common/sim-arange.h
-index 73117f3..de842c9 100644
---- a/gdb-7.6/sim/common/sim-arange.h
-+++ b/gdb-7.6/sim/common/sim-arange.h
-@@ -60,22 +60,26 @@ extern void sim_addr_range_delete (ADDR_RANGE * /*ar*/,
- address_word /*start*/,
- address_word /*end*/);
-
-+/* TODO: This should get moved into sim-inline.h. */
-+#ifdef HAVE_INLINE
-+#ifdef SIM_ARANGE_C
-+#define SIM_ARANGE_INLINE INLINE
-+#else
-+#define SIM_ARANGE_INLINE EXTERN_INLINE
-+#endif
-+#else
-+#define SIM_ARANGE_INLINE EXTERN
-+#endif
-+
- /* Return non-zero if ADDR is in range AR, traversing the entire tree.
- If no range is specified, that is defined to mean "everything". */
--extern INLINE int
-+SIM_ARANGE_INLINE int
- sim_addr_range_hit_p (ADDR_RANGE * /*ar*/, address_word /*addr*/);
- #define ADDR_RANGE_HIT_P(ar, addr) \
- ((ar)->range_tree == NULL || sim_addr_range_hit_p ((ar), (addr)))
-
- #ifdef HAVE_INLINE
--#ifdef SIM_ARANGE_C
--#define SIM_ARANGE_INLINE INLINE
--#else
--#define SIM_ARANGE_INLINE EXTERN_INLINE
--#endif
- #include "sim-arange.c"
--#else
--#define SIM_ARANGE_INLINE
- #endif
- #define SIM_ARANGE_C_INCLUDED
-
-diff --git a/gdb-7.6/sim/common/sim-inline.h b/gdb-7.6/sim/common/sim-inline.h
-index af75562..8a9c286 100644
---- a/gdb-7.6/sim/common/sim-inline.h
-+++ b/gdb-7.6/sim/common/sim-inline.h
-@@ -303,7 +303,9 @@
- /* ??? Temporary, pending decision to always use extern inline and do a vast
- cleanup of inline support. */
- #ifndef INLINE2
--#if defined (__GNUC__)
-+#if defined (__GNUC_GNU_INLINE__) || defined (__GNUC_STDC_INLINE__)
-+#define INLINE2 __inline__ __attribute__ ((__gnu_inline__))
-+#elif defined (__GNUC__)
- #define INLINE2 __inline__
- #else
- #define INLINE2 /*inline*/
---
-2.6.1
-
diff --git a/meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch b/meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch
deleted file mode 100644
index 77a287f146..0000000000
--- a/meta-oe/recipes-kernel/crash/crash/sim-ppc-drop-LIBS-from-psim-dependency.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-Upstream-Status: Backport
-
-https://sourceware.org/git/?p=binutils-gdb.git;h=0d8a6ab
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 0d8a6ab7d39d28fb1557e2a62e9e4b336341ab34 Mon Sep 17 00:00:00 2001
-From: Aaro Koskinen <aaro.koskinen@iki.fi>
-Date: Mon, 17 Feb 2014 17:12:59 -0500
-Subject: [PATCH] sim: ppc: drop $(LIBS) from psim dependency
-
-When cross-compiling GDB for PPC, there's a prerequisite "-lz" for psim
-that results in a build failure. With such prerequisite, GNU Make will
-try to search the library from build machine's /usr/lib which is wrong.
-On 64-bit Linux build machines the compilation will fail because of this.
-
-URL: https://sourceware.org/bugzilla/show_bug.cgi?id=12202
----
- sim/ppc/Makefile.in | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/gdb-7.6/sim/ppc/Makefile.in b/gdb-7.6/sim/ppc/Makefile.in
-index b811f6f..740bdb0 100644
---- a/gdb-7.6/sim/ppc/Makefile.in
-+++ b/gdb-7.6/sim/ppc/Makefile.in
-@@ -552,7 +552,7 @@ PACKAGE_SRC = @sim_pk_src@
- PACKAGE_OBJ = @sim_pk_obj@
-
-
--psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBS) $(LIBINTL_DEP)
-+psim: $(TARGETLIB) main.o $(LIBIBERTY_LIB) $(BFD_LIB) $(LIBINTL_DEP)
- $(CC) $(CFLAGS) $(SIM_CFLAGS) $(LDFLAGS) -o psim$(EXEEXT) main.o $(TARGETLIB) $(BFD_LIB) $(LIBINTL) $(LIBIBERTY_LIB) $(LIBS)
-
- run: psim
---
-1.9.4
-
diff --git a/meta-oe/recipes-kernel/crash/crash_7.2.0.bb b/meta-oe/recipes-kernel/crash/crash_7.2.0.bb
deleted file mode 100644
index 440a69d600..0000000000
--- a/meta-oe/recipes-kernel/crash/crash_7.2.0.bb
+++ /dev/null
@@ -1,117 +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 = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING3;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = "zlib readline coreutils-native"
-
-SRC_URI = "https://github.com/crash-utility/${BPN}/archive/${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
- http://ftp.gnu.org/gnu/gdb/gdb-7.6.tar.gz;name=gdb;subdir=${BP} \
- file://7001force_define_architecture.patch \
- file://7003cross_ranlib.patch \
- file://0001-cross_add_configure_option.patch \
- file://sim-ppc-drop-LIBS-from-psim-dependency.patch \
- file://sim-common-sim-arange-fix-extern-inline-handling.patch \
- file://donnot-extract-gdb-during-do-compile.patch \
- file://gdb_build_jobs_and_not_write_crash_target.patch \
- file://remove-unrecognized-gcc-option-m32-for-mips.patch \
- file://0002-crash-fix-build-error-unknown-type-name-gdb_fpregset.patch \
- file://0003-crash-detect-the-sysroot-s-glibc-header-file.patch \
- "
-SRC_URI[md5sum] = "48899de3118e04cfa40a2364f5618193"
-SRC_URI[sha256sum] = "5d076e1fefb41aa178ad3e1cef6511670efc47de5cb04d4af9bdd4e8f2f18cbc"
-
-SRC_URI[gdb.md5sum] = "a9836707337e5f7bf76a009a8904f470"
-SRC_URI[gdb.sha256sum] = "8070389a5dcc104eb0be483d582729f98ed4d761ad19cedd3f17b5d2502faa36"
-
-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
-COMPATIBLE_HOST = "^(?!mips64).*"
-
-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} \
- \${GDB_CONF_FLAGS} \
- --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}'"
-
-REMOVE_M32 = "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"
-
-REMOVE_M32_class-cross = ""
-
-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
- ${REMOVE_M32}
- 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"
diff --git a/meta-oe/recipes-kernel/crash/crash_8.0.2.bb b/meta-oe/recipes-kernel/crash/crash_8.0.2.bb
new file mode 100644
index 0000000000..f8a460b8ce
--- /dev/null
+++ b/meta-oe/recipes-kernel/crash/crash_8.0.2.bb
@@ -0,0 +1,114 @@
+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 \
+ file://0001-make-src-string-const-in-strlcpy.patch \
+ "
+SRCREV = "f1cd581d1c4afa5b8ffdfaa6a3ea9f545fe4ec91"
+
+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/intel-speed-select/intel-speed-select.bb b/meta-oe/recipes-kernel/intel-speed-select/intel-speed-select.bb
new file mode 100644
index 0000000000..23ea0d8aae
--- /dev/null
+++ b/meta-oe/recipes-kernel/intel-speed-select/intel-speed-select.bb
@@ -0,0 +1,33 @@
+SUMMARY = "A tool to validate Intel Speed Select commands"
+
+DESCRIPTION = "The Intel Speed Select Technology (Intel SST) is a powerful new \
+collection of features giving you more granular control over CPU performance \
+for optimized total cost of ownership."
+
+LICENSE = "GPL-2.0-only"
+
+inherit kernelsrc
+
+COMPATIBLE_HOST = '(x86_64|i.86).*-linux'
+COMPATIBLE_HOST:libc-musl = 'null'
+
+DEPENDS = "libnl"
+
+do_populate_lic[depends] += "virtual/kernel:do_patch"
+
+B = "${WORKDIR}/${BPN}-${PV}"
+
+CFLAGS += "-I${STAGING_INCDIR}/libnl3"
+EXTRA_OEMAKE = "-C ${S}/tools/power/x86/intel-speed-select O=${B} CROSS=${TARGET_PREFIX} CC="${CC}" LD="${LD}" AR=${AR} ARCH=${ARCH}"
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
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
new file mode 100644
index 0000000000..442f132718
--- /dev/null
+++ b/meta-oe/recipes-kernel/ipmitool/ipmitool/0001-configure-Remove-the-logic-to-download-IANA-PEN-data.patch
@@ -0,0 +1,41 @@
+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_1.8.18.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
deleted file mode 100644
index 9f73d2799b..0000000000
--- a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.18.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Utility for IPMI control"
-DESCRIPTION = "This package contains a utility for interfacing with devices that support \
-the Intelligent Platform Management Interface specification. IPMI is \
-an open standard for machine health, inventory, and remote power control. \
-\
-This utility can communicate with IPMI-enabled devices through either a \
-kernel driver such as OpenIPMI or over the RMCP LAN protocol defined in \
-the IPMI specification. IPMIv2 adds support for encrypted LAN \
-communications and remote Serial-over-LAN functionality. \
-\
-It provides commands for reading the Sensor Data Repository (SDR) and \
-displaying sensor values, displaying the contents of the System Event \
-Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \
-setting LAN configuration, and chassis power control. \
-"
-
-HOMEPAGE = "http://ipmitool.sourceforge.net/"
-SECTION = "kernel/userland"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9aa91e13d644326bf281924212862184"
-
-DEPENDS = "openssl readline ncurses"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/ipmitool/ipmitool-${PV}.tar.bz2"
-SRC_URI[md5sum] = "bab7ea104c7b85529c3ef65c54427aa3"
-SRC_URI[sha256sum] = "0c1ba3b1555edefb7c32ae8cd6a3e04322056bc087918f07189eeedfc8b81e01"
-
-inherit autotools
-
-# --disable-dependency-tracking speeds up the build
-# --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.
-#
-EXTRA_OECONF = "--disable-dependency-tracking --enable-file-security --disable-intf-free"
diff --git a/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb b/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb
new file mode 100644
index 0000000000..ab9074bba5
--- /dev/null
+++ b/meta-oe/recipes-kernel/ipmitool/ipmitool_1.8.19.bb
@@ -0,0 +1,54 @@
+SUMMARY = "Utility for IPMI control"
+DESCRIPTION = "This package contains a utility for interfacing with devices that support \
+the Intelligent Platform Management Interface specification. IPMI is \
+an open standard for machine health, inventory, and remote power control. \
+\
+This utility can communicate with IPMI-enabled devices through either a \
+kernel driver such as OpenIPMI or over the RMCP LAN protocol defined in \
+the IPMI specification. IPMIv2 adds support for encrypted LAN \
+communications and remote Serial-over-LAN functionality. \
+\
+It provides commands for reading the Sensor Data Repository (SDR) and \
+displaying sensor values, displaying the contents of the System Event \
+Log (SEL), printing Field Replaceable Unit (FRU) information, reading and \
+setting LAN configuration, and chassis power control. \
+"
+
+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://codeberg.org/ipmitool/ipmitool;protocol=https;branch=master \
+ ${IANA_ENTERPRISE_NUMBERS} \
+ file://0001-configure-Remove-the-logic-to-download-IANA-PEN-data.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.txt;name=iana-enterprise-numbers;downloadfilename=iana-enterprise-numbers"
+#SRC_URI[iana-enterprise-numbers.sha256sum] = "cdd97fc08325667434b805eb589104ae63f7a9eb720ecea73cb55110b383934c"
+
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+do_install:append() {
+ if [ -e ${WORKDIR}/iana-enterprise-numbers ]; then
+ install -Dm 0755 ${WORKDIR}/iana-enterprise-numbers ${D}${datadir}/misc/enterprise-numbers
+ fi
+}
+
+PACKAGES =+ "${PN}-ipmievd"
+FILES:${PN}-ipmievd += "${sbindir}/ipmievd"
+FILES:${PN} += "${datadir}/misc"
+
+# --disable-dependency-tracking speeds up the build
+# --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.
+#
+EXTRA_OECONF = "--disable-dependency-tracking --enable-file-security --disable-intf-free"
diff --git a/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-ihpm-Include-stdlib.h-for-malloc-free-atoi-functions.patch b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-ihpm-Include-stdlib.h-for-malloc-free-atoi-functions.patch
new file mode 100644
index 0000000000..1ed6472f6d
--- /dev/null
+++ b/meta-oe/recipes-kernel/ipmiutil/ipmiutil/0001-ihpm-Include-stdlib.h-for-malloc-free-atoi-functions.patch
@@ -0,0 +1,26 @@
+From 097e108b81f2571c4c51871044adf409b6954649 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 3 Sep 2022 00:44:52 -0700
+Subject: [PATCH] ihpm: Include stdlib.h for malloc/free/atoi functions
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ util/ihpm.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/util/ihpm.c b/util/ihpm.c
+index 740ab74..5ad9ef6 100644
+--- a/util/ihpm.c
++++ b/util/ihpm.c
+@@ -68,6 +68,7 @@ typedef uint32_t socklen_t;
+ #endif
+ #include <stdio.h>
+ #include <stdarg.h>
++#include <stdlib.h> /* malloc/free/atoi */
+ #include <string.h>
+ #include <time.h>
+
+--
+2.37.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.0.5.bb b/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb
deleted file mode 100644
index 338cafd536..0000000000
--- a/meta-oe/recipes-kernel/ipmiutil/ipmiutil_3.0.5.bb
+++ /dev/null
@@ -1,46 +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 \
- "
-SRC_URI[md5sum] = "5feaf6a827205792e057bb4ff5c4e842"
-SRC_URI[sha256sum] = "b2d7f72535131c7832ba4be13dc33c81513fc3ee43fe797b4b52014600ecee5e"
-
-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
new file mode 100644
index 0000000000..3d97ea0967
--- /dev/null
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest.bb
@@ -0,0 +1,145 @@
+SUMMARY = "Kernel selftest for Linux"
+DESCRIPTION = "Kernel selftest for Linux"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://../COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
+
+DEPENDS = "rsync-native llvm-native"
+
+# for musl libc
+SRC_URI:append:libc-musl = "\
+ file://userfaultfd.patch \
+ "
+SRC_URI += "file://run-ptest \
+ file://COPYING \
+ "
+
+# now we just test bpf and vm
+# we will append other kernel selftest in the future
+# 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"
+PACKAGECONFIG:remove:x86 = "bpf"
+PACKAGECONFIG:remove:arm = "bpf vm"
+# host ptrace.h is used to compile BPF target but mips ptrace.h is needed
+# progs/loop1.c:21:9: error: incomplete definition of type 'struct user_pt_regs'
+# m = PT_REGS_RC(ctx);
+# vm tests need libhugetlbfs starting 5.8+ (https://lkml.org/lkml/2020/4/22/1654)
+PACKAGECONFIG:remove:qemumips = "bpf vm"
+
+# riscv does not support libhugetlbfs yet
+PACKAGECONFIG:remove:riscv64 = "vm"
+PACKAGECONFIG:remove:riscv32 = "vm"
+
+PACKAGECONFIG[bpf] = ",,elfutils libcap libcap-ng rsync-native,"
+PACKAGECONFIG[firmware] = ",,libcap, bash"
+PACKAGECONFIG[vm] = ",,libcap libhugetlbfs,libgcc bash"
+
+do_patch[depends] += "virtual/kernel:do_shared_workdir"
+
+inherit linux-kernel-base kernel-arch ptest
+
+S = "${WORKDIR}/${BP}"
+
+TEST_LIST = "\
+ ${@bb.utils.filter('PACKAGECONFIG', 'bpf firmware vm', d)} \
+ rtc \
+"
+
+EXTRA_OEMAKE = '\
+ CROSS_COMPILE=${TARGET_PREFIX} \
+ ARCH=${ARCH} \
+ CC="${CC}" \
+ CLANG="clang -fno-stack-protector -target ${TARGET_ARCH} ${TOOLCHAIN_OPTIONS}" \
+ AR="${AR}" \
+ LD="${LD}" \
+ DESTDIR="${D}" \
+ MACHINE="${ARCH}" \
+'
+
+KERNEL_SELFTEST_SRC ?= "Makefile \
+ include \
+ kernel \
+ lib \
+ tools \
+ scripts \
+ 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
+ bbwarn "clang >= 6.0 with bpf support is needed with kernel 4.18+ so
+either install it and add it to HOSTTOOLS, or add clang-native from meta-clang to dependency"
+ fi
+ fi
+
+ for i in ${TEST_LIST}
+ do
+ oe_runmake -C ${S}/tools/testing/selftests/${i}
+ done
+}
+
+do_install() {
+ for i in ${TEST_LIST}
+ do
+ oe_runmake -C ${S}/tools/testing/selftests/${i} INSTALL_PATH=${D}/usr/kernel-selftest/${i} install
+ # Install kselftest-list.txt that required by kselftest runner.
+ oe_runmake -s --no-print-directory COLLECTION=${i} -C ${S}/tools/testing/selftests/${i} emit_tests \
+ >> ${D}/usr/kernel-selftest/kselftest-list.txt
+ done
+ # Install kselftest runner.
+ install -m 0755 ${S}/tools/testing/selftests/run_kselftest.sh ${D}/usr/kernel-selftest/
+ cp -R --no-dereference --preserve=mode,links -v ${S}/tools/testing/selftests/kselftest ${D}/usr/kernel-selftest/
+ if [ -e ${D}/usr/kernel-selftest/bpf/test_offload.py ]; then
+ sed -i -e '1s,#!.*python3,#! /usr/bin/env python3,' ${D}/usr/kernel-selftest/bpf/test_offload.py
+ fi
+ chown root:root -R ${D}/usr/kernel-selftest
+}
+
+do_configure() {
+ install -D -m 0644 ${WORKDIR}/COPYING ${S}/COPYING
+}
+
+do_patch[prefuncs] += "copy_kselftest_source_from_kernel remove_unrelated"
+python copy_kselftest_source_from_kernel() {
+ sources = (d.getVar("KERNEL_SELFTEST_SRC") or "").split()
+ src_dir = d.getVar("STAGING_KERNEL_DIR")
+ dest_dir = d.getVar("S")
+ bb.utils.mkdirhier(dest_dir)
+ for s in sources:
+ src = oe.path.join(src_dir, s)
+ dest = oe.path.join(dest_dir, s)
+ if os.path.isdir(src):
+ oe.path.copytree(src, dest)
+ else:
+ bb.utils.copyfile(src, dest)
+}
+
+remove_unrelated() {
+ if ${@bb.utils.contains('PACKAGECONFIG','bpf','true','false',d)} ; then
+ test -f ${S}/tools/testing/selftests/bpf/Makefile && \
+ sed -i -e 's/test_pkt_access.*$/\\/' \
+ -e 's/test_pkt_md_access.*$/\\/' \
+ -e 's/sockmap_verdict_prog.*$/\\/' \
+ ${S}/tools/testing/selftests/bpf/Makefile || \
+ bberror "Your kernel is probably older than 4.10 and doesn't have tools/testing/selftests/bpf/Makefile file from https://github.com/torvalds/linux/commit/5aa5bd14c5f8660c64ceedf14a549781be47e53d, disable bpf PACKAGECONFIG"
+ fi
+}
+
+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"
+
+SECURITY_CFLAGS = ""
+COMPATIBLE_HOST:libc-musl = 'null'
+
+# It has native clang/llvm dependency, poky distro is reluctant to include them as deps
+# this helps with world builds on AB
+EXCLUDE_FROM_WORLD = "1"
diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/COPYING b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/COPYING
new file mode 100644
index 0000000000..da4cb28feb
--- /dev/null
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/COPYING
@@ -0,0 +1,18 @@
+The Linux Kernel is provided under:
+
+ SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+Being under the terms of the GNU General Public License version 2 only,
+according with:
+
+ LICENSES/preferred/GPL-2.0
+
+With an explicit syscall exception, as stated at:
+
+ LICENSES/exceptions/Linux-syscall-note
+
+In addition, other licenses may also apply. Please see:
+
+ Documentation/process/license-rules.rst
+
+for more details.
diff --git a/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest
new file mode 100755
index 0000000000..d40b9576d8
--- /dev/null
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/run-ptest
@@ -0,0 +1,11 @@
+#!/bin/sh
+export PATH=$PATH:/usr/kernel-selftest/bpf
+
+# test_align
+test_align | grep "12 pass" &> /dev/null
+if [ $? == 0 ]; then
+ echo "[PASS]: test_align"
+else
+ echo "[FAIL]: test_align"
+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
new file mode 100644
index 0000000000..d34c54754e
--- /dev/null
+++ b/meta-oe/recipes-kernel/kernel-selftest/kernel-selftest/userfaultfd.patch
@@ -0,0 +1,324 @@
+From c7b375747cffb627d02543d946b28525455d7d46 Mon Sep 17 00:00:00 2001
+From: "Hongzhi.Song" <hongzhi.song@windriver.com>
+Date: Fri, 13 Jul 2018 06:06:19 -0700
+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/tools/testing/selftests/vm/userfaultfd.c b/tools/testing/selftests/vm/userfaultfd.c
+index de2f9ec..dc73021 100644
+--- a/tools/testing/selftests/vm/userfaultfd.c
++++ b/tools/testing/selftests/vm/userfaultfd.c
+@@ -71,6 +71,304 @@
+
+ #ifdef __NR_userfaultfd
+
++/* Linear congruential. */
++#define TYPE_0 0
++#define BREAK_0 8
++#define DEG_0 0
++#define SEP_0 0
++
++/* x**7 + x**3 + 1. */
++#define TYPE_1 1
++#define BREAK_1 32
++#define DEG_1 7
++#define SEP_1 3
++
++/* x**15 + x + 1. */
++#define TYPE_2 2
++#define BREAK_2 64
++#define DEG_2 15
++#define SEP_2 1
++
++/* x**31 + x**3 + 1. */
++#define TYPE_3 3
++#define BREAK_3 128
++#define DEG_3 31
++#define SEP_3 3
++
++/* x**63 + x + 1. */
++#define TYPE_4 4
++#define BREAK_4 256
++#define DEG_4 63
++#define SEP_4 1
++
++/* Array versions of the above information to make code run faster.
++ Relies on fact that TYPE_i == i. */
++
++#define MAX_TYPES 5 /* Max number of types above. */
++
++#define __set_errno(val) (errno = (val))
++
++struct random_data
++ {
++ int32_t *fptr; /* Front pointer. */
++ int32_t *rptr; /* Rear pointer. */
++ int32_t *state; /* Array of state values. */
++ int rand_type; /* Type of random number generator. */
++ int rand_deg; /* Degree of random number generator. */
++ int rand_sep; /* Distance between front and rear. */
++ int32_t *end_ptr; /* Pointer behind state table. */
++ };
++
++struct random_poly_info
++{
++ int seps[MAX_TYPES];
++ int degrees[MAX_TYPES];
++};
++
++static const struct random_poly_info random_poly_info =
++{
++ { SEP_0, SEP_1, SEP_2, SEP_3, SEP_4 },
++ { DEG_0, DEG_1, DEG_2, DEG_3, DEG_4 }
++};
++
++/* If we are using the trivial TYPE_0 R.N.G., just do the old linear
++ congruential bit. Otherwise, we do our fancy trinomial stuff, which is the
++ same in all the other cases due to all the global variables that have been
++ set up. The basic operation is to add the number at the rear pointer into
++ the one at the front pointer. Then both pointers are advanced to the next
++ location cyclically in the table. The value returned is the sum generated,
++ reduced to 31 bits by throwing away the "least random" low bit.
++ Note: The code takes advantage of the fact that both the front and
++ rear pointers can't wrap on the same call by not testing the rear
++ pointer if the front one has wrapped. Returns a 31-bit random number. */
++
++int random_r (struct random_data *buf, int32_t *result)
++{
++ int32_t *state;
++
++ if (buf == NULL || result == NULL)
++ goto fail;
++
++ state = buf->state;
++
++ if (buf->rand_type == TYPE_0)
++ {
++ int32_t val = ((state[0] * 1103515245U) + 12345U) & 0x7fffffff;
++ state[0] = val;
++ *result = val;
++ }
++ else
++ {
++ int32_t *fptr = buf->fptr;
++ int32_t *rptr = buf->rptr;
++ int32_t *end_ptr = buf->end_ptr;
++ uint32_t val;
++
++ val = *fptr += (uint32_t) *rptr;
++ /* Chucking least random bit. */
++ *result = val >> 1;
++ ++fptr;
++ if (fptr >= end_ptr)
++ {
++ fptr = state;
++ ++rptr;
++ }
++ else
++ {
++ ++rptr;
++ if (rptr >= end_ptr)
++ rptr = state;
++ }
++ buf->fptr = fptr;
++ buf->rptr = rptr;
++ }
++ return 0;
++
++ fail:
++ __set_errno (EINVAL);
++ return -1;
++}
++
++/* Initialize the random number generator based on the given seed. If the
++ type is the trivial no-state-information type, just remember the seed.
++ Otherwise, initializes state[] based on the given "seed" via a linear
++ congruential generator. Then, the pointers are set to known locations
++ that are exactly rand_sep places apart. Lastly, it cycles the state
++ information a given number of times to get rid of any initial dependencies
++ introduced by the L.C.R.N.G. Note that the initialization of randtbl[]
++ for default usage relies on values produced by this routine. */
++int srandom_r (unsigned int seed, struct random_data *buf)
++{
++ int type;
++ int32_t *state;
++ long int i;
++ int32_t word;
++ int32_t *dst;
++ int kc;
++
++ if (buf == NULL)
++ goto fail;
++ type = buf->rand_type;
++ if ((unsigned int) type >= MAX_TYPES)
++ goto fail;
++
++ state = buf->state;
++ /* We must make sure the seed is not 0. Take arbitrarily 1 in this case. */
++ if (seed == 0)
++ seed = 1;
++ state[0] = seed;
++ if (type == TYPE_0)
++ goto done;
++
++ dst = state;
++ word = seed;
++ kc = buf->rand_deg;
++ for (i = 1; i < kc; ++i)
++ {
++ /* This does:
++ state[i] = (16807 * state[i - 1]) % 2147483647;
++ but avoids overflowing 31 bits. */
++ long int hi = word / 127773;
++ long int lo = word % 127773;
++ word = 16807 * lo - 2836 * hi;
++ if (word < 0)
++ word += 2147483647;
++ *++dst = word;
++ }
++
++ buf->fptr = &state[buf->rand_sep];
++ buf->rptr = &state[0];
++ kc *= 10;
++ while (--kc >= 0)
++ {
++ int32_t discard;
++ (void) random_r (buf, &discard);
++ }
++
++ done:
++ return 0;
++
++ fail:
++ return -1;
++}
++
++/* Initialize the state information in the given array of N bytes for
++ future random number generation. Based on the number of bytes we
++ are given, and the break values for the different R.N.G.'s, we choose
++ the best (largest) one we can and set things up for it. srandom is
++ then called to initialize the state information. Note that on return
++ from srandom, we set state[-1] to be the type multiplexed with the current
++ value of the rear pointer; this is so successive calls to initstate won't
++ lose this information and will be able to restart with setstate.
++ Note: The first thing we do is save the current state, if any, just like
++ setstate so that it doesn't matter when initstate is called.
++ Returns 0 on success, non-zero on failure. */
++int initstate_r (unsigned int seed, char *arg_state, size_t n,
++ struct random_data *buf)
++{
++ if (buf == NULL)
++ goto fail;
++
++ int32_t *old_state = buf->state;
++ if (old_state != NULL)
++ {
++ int old_type = buf->rand_type;
++ if (old_type == TYPE_0)
++ old_state[-1] = TYPE_0;
++ else
++ old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type;
++ }
++
++ int type;
++ if (n >= BREAK_3)
++ type = n < BREAK_4 ? TYPE_3 : TYPE_4;
++ else if (n < BREAK_1)
++ {
++ if (n < BREAK_0)
++ goto fail;
++
++ type = TYPE_0;
++ }
++ else
++ type = n < BREAK_2 ? TYPE_1 : TYPE_2;
++
++ int degree = random_poly_info.degrees[type];
++ int separation = random_poly_info.seps[type];
++
++ buf->rand_type = type;
++ buf->rand_sep = separation;
++ buf->rand_deg = degree;
++ int32_t *state = &((int32_t *) arg_state)[1]; /* First location. */
++ /* Must set END_PTR before srandom. */
++ buf->end_ptr = &state[degree];
++
++ buf->state = state;
++
++ srandom_r (seed, buf);
++
++ state[-1] = TYPE_0;
++ if (type != TYPE_0)
++ state[-1] = (buf->rptr - state) * MAX_TYPES + type;
++
++ return 0;
++
++ fail:
++ __set_errno (EINVAL);
++ return -1;
++}
++
++/* Restore the state from the given state array.
++ Note: It is important that we also remember the locations of the pointers
++ in the current state information, and restore the locations of the pointers
++ from the old state information. This is done by multiplexing the pointer
++ location into the zeroth word of the state information. Note that due
++ to the order in which things are done, it is OK to call setstate with the
++ same state as the current state
++ Returns 0 on success, non-zero on failure. */
++int setstate_r (char *arg_state, struct random_data *buf)
++{
++ int32_t *new_state = 1 + (int32_t *) arg_state;
++ int type;
++ int old_type;
++ int32_t *old_state;
++ int degree;
++ int separation;
++
++ if (arg_state == NULL || buf == NULL)
++ goto fail;
++
++ old_type = buf->rand_type;
++ old_state = buf->state;
++ if (old_type == TYPE_0)
++ old_state[-1] = TYPE_0;
++ else
++ old_state[-1] = (MAX_TYPES * (buf->rptr - old_state)) + old_type;
++
++ type = new_state[-1] % MAX_TYPES;
++ if (type < TYPE_0 || type > TYPE_4)
++ goto fail;
++
++ buf->rand_deg = degree = random_poly_info.degrees[type];
++ buf->rand_sep = separation = random_poly_info.seps[type];
++ buf->rand_type = type;
++
++ if (type != TYPE_0)
++ {
++ int rear = new_state[-1] / MAX_TYPES;
++ buf->rptr = &new_state[rear];
++ buf->fptr = &new_state[(rear + separation) % degree];
++ }
++ buf->state = new_state;
++ /* Set end_ptr too. */
++ buf->end_ptr = &new_state[degree];
++
++ return 0;
++
++ fail:
++ __set_errno (EINVAL);
++ return -1;
++}
++
+ static unsigned long nr_cpus, nr_pages, nr_pages_per_cpu, page_size;
+
+ #define BOUNCE_RANDOM (1<<0)
+--
+2.11.0
+
diff --git a/meta-oe/recipes-kernel/kpatch/kpatch.inc b/meta-oe/recipes-kernel/kpatch/kpatch.inc
index b1e73e9542..4d187200ec 100644
--- a/meta-oe/recipes-kernel/kpatch/kpatch.inc
+++ b/meta-oe/recipes-kernel/kpatch/kpatch.inc
@@ -1,9 +1,9 @@
SUMMARY = "Linux dynamic kernel patching infrastructure"
DESCRIPTION = "kpatch is a Linux dynamic kernel patching infrastructure which allows you to patch a running kernel without rebooting or restarting any processes."
-LICENSE = "GPLv2 & LGPLv2"
+LICENSE = "GPL-2.0-only & LGPL-2.0-only"
DEPENDS = "elfutils bash"
-SRC_URI = "git://github.com/dynup/kpatch.git;protocol=https \
+SRC_URI = "git://github.com/dynup/kpatch.git;protocol=https;branch=master \
file://0001-kpatch-build-add-cross-compilation-support.patch \
file://0002-kpatch-build-allow-overriding-of-distro-name.patch \
"
@@ -15,7 +15,9 @@ EXTRA_OEMAKE = " \
LIBDIR=${D}${libdir} \
MANDIR=${D}${mandir}/man1 \
SYSTEMDDIR=${D}${systemd_system_unitdir} \
+ UPSTARTDIR=${D}${sysconfdir}/init \
DESTDIR=${D} \
+ ARCH=${TARGET_ARCH} \
BUILDMOD=no \
CC='${CC}' \
"
@@ -30,20 +32,22 @@ PACKAGES =+ "kpatch-build"
PROVIDES += "kpatch-build"
COMPATIBLE_HOST = "(x86_64).*-linux"
+COMPATIBLE_HOST:libc-musl = "null"
-RDEPENDS_${PN} = "bash binutils"
-RDEPENDS_kpatch-build = "bash glibc-utils"
+RDEPENDS:${PN} = "bash binutils"
+RDEPENDS:kpatch-build = "bash glibc-utils"
-FILES_${PN} = " \
+FILES:${PN} = " \
${sbindir}/kpatch \
${systemd_system_unitdir}/kpatch.service \
${mandir}/man1/kpatch.1.gz \
+ ${sysconfdir}/init/kpatch.conf \
"
-FILES_kpatch-build = " \
+FILES:kpatch-build = " \
${bindir}/kpatch-build \
${libexecdir}/* \
${datadir}/kpatch \
${mandir}/man1/kpatch-build.1.gz \
"
-SYSTEMD_SERVICE_${PN} = "kpatch.service"
+SYSTEMD_SERVICE:${PN} = "kpatch.service"
diff --git a/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch b/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
index 459fb21977..348d82acc1 100644
--- a/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
+++ b/meta-oe/recipes-kernel/kpatch/kpatch/0001-kpatch-build-add-cross-compilation-support.patch
@@ -1,6 +1,6 @@
-From a9a80a1f4df65892a0269295ce8a64b06f2ff61d Mon Sep 17 00:00:00 2001
-From: Ruslan Bilovol <rbilovol@cisco.com>
-Date: Tue, 19 Dec 2017 15:59:04 +0200
+From 21909e3f9096fa8e4825df8c65114ee92ab3d532 Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+Date: Wed, 7 Aug 2019 02:57:35 +0900
Subject: [PATCH] kpatch-build: add cross-compilation support
This patch introduces new option for kpatch-build
@@ -23,37 +23,39 @@ Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
2 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
-index 166ecbd..af24cc4 100755
+index 9ef3809..463dab1 100755
--- a/kpatch-build/kpatch-build
+++ b/kpatch-build/kpatch-build
-@@ -195,7 +195,7 @@ gcc_version_check() {
+@@ -198,7 +198,7 @@ gcc_version_check() {
# gcc --version varies between distributions therefore extract version
# by compiling a test file and compare it to vmlinux's version.
echo 'void main(void) {}' > "$c"
- out="$(gcc -c -pg -ffunction-sections -o "$o" "$c" 2>&1)"
+ out="$(${KPATCH_CROSS_COMPILE}gcc -c -pg -ffunction-sections -o "$o" "$c" 2>&1)"
gccver="$(gcc_version_from_file "$o")"
- kgccver="$(gcc_version_from_file "$VMLINUX")"
- rm -f "$c" "$o"
-@@ -381,12 +381,14 @@ usage() {
- echo " -d, --debug Enable 'xtrace' and keep scratch files" >&2
- echo " in <CACHEDIR>/tmp" >&2
+ if [[ -n "$OOT_MODULE" ]]; then
+ kgccver="$(gcc_version_from_file "$OOT_MODULE")"
+@@ -411,6 +411,8 @@ usage() {
echo " (can be specified multiple times)" >&2
+ echo " -e, --oot-module Enable patching out-of-tree module," >&2
+ echo " specify current version of module" >&2
+ echo " --cross-compile Specify the prefix used for all executables" >&2
+ echo " used during compilation" >&2
echo " --skip-cleanup Skip post-build cleanup" >&2
- echo " --skip-gcc-check Skip gcc version matching check" >&2
+ echo " --skip-gcc-check Skip gcc version matching check" >&2
+ echo " (not recommended)" >&2
+@@ -416,7 +418,7 @@ usage() {
echo " (not recommended)" >&2
}
--options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
-+options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
+-options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
++options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
eval set -- "$options"
-@@ -444,6 +446,10 @@ while [[ $# -gt 0 ]]; do
- echo "DEBUG mode enabled"
- fi
+@@ -479,6 +481,10 @@ while [[ $# -gt 0 ]]; do
+ OOT_MODULE="$(readlink -f "$2")"
+ shift
;;
+ --cross-compile)
+ KPATCH_CROSS_COMPILE="$2"
@@ -62,17 +64,17 @@ index 166ecbd..af24cc4 100755
--skip-cleanup)
echo "Skipping cleanup"
SKIPCLEANUP=1
-@@ -691,6 +697,8 @@ if [[ $DEBUG -ge 4 ]]; then
+@@ -757,6 +763,8 @@ if [[ $DEBUG -ge 4 ]]; then
export KPATCH_GCC_DEBUG=1
fi
+export KPATCH_CROSS_COMPILE
+
- echo "Building original kernel"
- ./scripts/setlocalversion --save-scmversion || die
- make mrproper 2>&1 | logger || die
-@@ -840,6 +848,7 @@ cd "$TEMPDIR/patch" || die
- KPATCH_BUILD="$SRCDIR" KPATCH_NAME="$MODNAME" \
+ echo "Building original source"
+ [[ -n "$OOT_MODULE" ]] || ./scripts/setlocalversion --save-scmversion || die
+ unset KPATCH_GCC_TEMPDIR
+@@ -940,6 +948,7 @@ fi
+ KPATCH_BUILD="$KPATCH_BUILD" KPATCH_NAME="$MODNAME" \
KBUILD_EXTRA_SYMBOLS="$KBUILD_EXTRA_SYMBOLS" \
KPATCH_LDFLAGS="$KPATCH_LDFLAGS" \
+CROSS_COMPILE="$KPATCH_CROSS_COMPILE" \
@@ -80,7 +82,7 @@ index 166ecbd..af24cc4 100755
if ! "$KPATCH_MODULE"; then
diff --git a/kpatch-build/kpatch-gcc b/kpatch-build/kpatch-gcc
-index 6ba133c..3937948 100755
+index 9663290..56e6c8f 100755
--- a/kpatch-build/kpatch-gcc
+++ b/kpatch-build/kpatch-gcc
@@ -8,7 +8,7 @@ TOOLCHAINCMD="$1"
@@ -92,12 +94,12 @@ index 6ba133c..3937948 100755
fi
declare -a args=("$@")
-@@ -80,4 +80,4 @@ elif [[ "$TOOLCHAINCMD" = "ld" ]] ; then
+@@ -84,4 +84,4 @@ elif [[ "$TOOLCHAINCMD" = "ld" ]] ; then
done
fi
-exec "$TOOLCHAINCMD" "${args[@]}"
+exec ${KPATCH_CROSS_COMPILE}${TOOLCHAINCMD} "${args[@]}"
--
-1.9.1
+2.7.4
diff --git a/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch b/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
index a9d8a7f2c5..0cc3684134 100644
--- a/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
+++ b/meta-oe/recipes-kernel/kpatch/kpatch/0002-kpatch-build-allow-overriding-of-distro-name.patch
@@ -1,6 +1,6 @@
-From d418d716dae1e2a05131dfb42a19a4da2fc8a85d Mon Sep 17 00:00:00 2001
-From: Ruslan Bilovol <rbilovol@cisco.com>
-Date: Tue, 2 Jan 2018 14:50:03 +0200
+From 4143fa0092fe4cafee10b24a97d3ad0b41ab7a30 Mon Sep 17 00:00:00 2001
+From: Zang Ruochen <zangrc.fnst@cn.fujitsu.com>
+Date: Wed, 7 Aug 2019 03:24:39 +0900
Subject: [PATCH] kpatch-build: allow overriding of distro name
It is sometimes useful to have ability to override
@@ -19,11 +19,11 @@ Signed-off-by: Ruslan Bilovol <rbilovol@cisco.com>
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/kpatch-build/kpatch-build b/kpatch-build/kpatch-build
-index af24cc4..4f9f78d 100755
+index 39933fc..c0258a2 100755
--- a/kpatch-build/kpatch-build
+++ b/kpatch-build/kpatch-build
-@@ -383,12 +383,13 @@ usage() {
- echo " (can be specified multiple times)" >&2
+@@ -413,12 +413,13 @@ usage() {
+ echo " specify current version of module" >&2
echo " --cross-compile Specify the prefix used for all executables" >&2
echo " used during compilation" >&2
+ echo " --distro Override distro name" >&2
@@ -32,12 +32,12 @@ index af24cc4..4f9f78d 100755
echo " (not recommended)" >&2
}
--options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
-+options="$(getopt -o ha:r:s:c:v:j:t:n:o:d -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,debug,cross-compile:,distro:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
+-options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,cross-compile:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
++options="$(getopt -o ha:r:s:c:v:j:t:n:o:de: -l "help,archversion:,sourcerpm:,sourcedir:,config:,vmlinux:,jobs:,target:,name:,output:,oot-module:,debug,cross-compile:,distro:,skip-gcc-check,skip-cleanup" -- "$@")" || die "getopt failed"
eval set -- "$options"
-@@ -450,6 +451,10 @@ while [[ $# -gt 0 ]]; do
+@@ -485,6 +486,10 @@ while [[ $# -gt 0 ]]; do
KPATCH_CROSS_COMPILE="$2"
shift
;;
@@ -48,15 +48,15 @@ index af24cc4..4f9f78d 100755
--skip-cleanup)
echo "Skipping cleanup"
SKIPCLEANUP=1
-@@ -526,7 +531,7 @@ fi
+@@ -613,7 +613,7 @@ fi
# Don't check external file.
- # shellcheck disable=SC1091
- source /etc/os-release
+ # shellcheck disable=SC1090
+ [[ -f "$RELEASE_FILE" ]] && source "$RELEASE_FILE"
-DISTRO="$ID"
+DISTRO="${DISTRO:-${ID}}"
if [[ "$DISTRO" = fedora ]] || [[ "$DISTRO" = rhel ]] || [[ "$DISTRO" = ol ]] || [[ "$DISTRO" = centos ]]; then
[[ -z "$VMLINUX" ]] && VMLINUX="/usr/lib/debug/lib/modules/$ARCHVERSION/vmlinux"
[[ -e "$VMLINUX" ]] || die "kernel-debuginfo-$ARCHVERSION not installed"
--
-1.9.1
+2.7.4
diff --git a/meta-oe/recipes-kernel/kpatch/kpatch_git.bb b/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
index e495e2882c..ba3983e6ff 100644
--- a/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
+++ b/meta-oe/recipes-kernel/kpatch/kpatch_git.bb
@@ -2,9 +2,9 @@ require kpatch.inc
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-SRCREV = "db6efbb8c7e90d2b761272cf563047119072768f"
+SRCREV = "0c3c21930895f6582a5c9d9d797f7e11ff41ffb2"
-PV = "0.5.0+git${SRCPV}"
+PV = "0.9.1"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-kernel/libbpf/libbpf_1.2.0.bb b/meta-oe/recipes-kernel/libbpf/libbpf_1.2.0.bb
new file mode 100644
index 0000000000..71ca10e5a0
--- /dev/null
+++ b/meta-oe/recipes-kernel/libbpf/libbpf_1.2.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 = "fbd60dbff51c870f5e80a17c4f2fd639eb80af90"
+
+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}"
+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/0001-Include-poll.h-instead-of-sys-poll.h.patch b/meta-oe/recipes-kernel/libpfm/libpfm4/0001-Include-poll.h-instead-of-sys-poll.h.patch
new file mode 100644
index 0000000000..fe13df2b53
--- /dev/null
+++ b/meta-oe/recipes-kernel/libpfm/libpfm4/0001-Include-poll.h-instead-of-sys-poll.h.patch
@@ -0,0 +1,86 @@
+From f62b629c1e1e968f90aafbc0cf9116b49eea9d8e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 15 Dec 2019 16:24:37 -0800
+Subject: [PATCH] Include poll.h instead of sys/poll.h
+
+Fixes
+error: redirecting incorrect #include <sys/poll.h> to <poll.h> [-Werror,-W#warnings]
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ perf_examples/branch_smpl.c | 2 +-
+ perf_examples/syst_smpl.c | 2 +-
+ perf_examples/task_attach_timeout.c | 2 +-
+ perf_examples/task_smpl.c | 2 +-
+ perf_examples/x86/bts_smpl.c | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/perf_examples/branch_smpl.c b/perf_examples/branch_smpl.c
+index 87cd303..4d16b04 100644
+--- a/perf_examples/branch_smpl.c
++++ b/perf_examples/branch_smpl.c
+@@ -32,7 +32,7 @@
+ #include <getopt.h>
+ #include <setjmp.h>
+ #include <sys/wait.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/mman.h>
+ #include <locale.h>
+ #include <sys/ioctl.h>
+diff --git a/perf_examples/syst_smpl.c b/perf_examples/syst_smpl.c
+index 04580fd..d059c08 100755
+--- a/perf_examples/syst_smpl.c
++++ b/perf_examples/syst_smpl.c
+@@ -33,7 +33,7 @@
+ #include <setjmp.h>
+ #include <sys/ptrace.h>
+ #include <sys/wait.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/ioctl.h>
+ #include <sys/mman.h>
+ #include <fcntl.h>
+diff --git a/perf_examples/task_attach_timeout.c b/perf_examples/task_attach_timeout.c
+index 7fc5524..a0367c8 100644
+--- a/perf_examples/task_attach_timeout.c
++++ b/perf_examples/task_attach_timeout.c
+@@ -36,7 +36,7 @@
+ #include <stdarg.h>
+ #include <sys/wait.h>
+ #include <err.h>
+-#include <sys/poll.h>
++#include <poll.h>
+
+ #include "perf_util.h"
+
+diff --git a/perf_examples/task_smpl.c b/perf_examples/task_smpl.c
+index dcb7481..95c432c 100644
+--- a/perf_examples/task_smpl.c
++++ b/perf_examples/task_smpl.c
+@@ -37,7 +37,7 @@
+ #include <getopt.h>
+ #include <setjmp.h>
+ #include <sys/wait.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/mman.h>
+ #include <locale.h>
+ #include <sys/ioctl.h>
+diff --git a/perf_examples/x86/bts_smpl.c b/perf_examples/x86/bts_smpl.c
+index 6498776..d66d5e6 100644
+--- a/perf_examples/x86/bts_smpl.c
++++ b/perf_examples/x86/bts_smpl.c
+@@ -41,7 +41,7 @@
+ #include <sys/time.h>
+ #include <sys/ptrace.h>
+ #include <sys/wait.h>
+-#include <sys/poll.h>
++#include <poll.h>
+ #include <sys/mman.h>
+ #include <sys/resource.h>
+ #include <err.h>
+--
+2.24.1
+
diff --git a/meta-oe/recipes-kernel/libpfm/libpfm4/0002-perf_examples-Remove-unused-sum-variable.patch b/meta-oe/recipes-kernel/libpfm/libpfm4/0002-perf_examples-Remove-unused-sum-variable.patch
new file mode 100644
index 0000000000..e85ca96fc3
--- /dev/null
+++ b/meta-oe/recipes-kernel/libpfm/libpfm4/0002-perf_examples-Remove-unused-sum-variable.patch
@@ -0,0 +1,44 @@
+From 0b2f611a95f3c93454453892bbe021ad2815925d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 15 Jun 2021 17:35:26 -0700
+Subject: [PATCH] perf_examples: Remove unused 'sum' variable
+
+Fixes
+self_smpl_multi.c:144:19: error: variable 'sum' set but not used [-Werror,-Wunused-but-set-variable]
+ unsigned long x, sum;
+ ^
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ perf_examples/self_smpl_multi.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/perf_examples/self_smpl_multi.c b/perf_examples/self_smpl_multi.c
+index 391fa61..75b45e0 100644
+--- a/perf_examples/self_smpl_multi.c
++++ b/perf_examples/self_smpl_multi.c
+@@ -141,7 +141,7 @@ void
+ do_cycles(void)
+ {
+ struct timeval start, last, now;
+- unsigned long x, sum;
++ unsigned long x;
+
+ gettimeofday(&start, NULL);
+ last = start;
+@@ -150,15 +150,12 @@ do_cycles(void)
+ iter[myid] = 0;
+
+ do {
+-
+- sum = 1;
+ for (x = 1; x < 250000; x++) {
+ /* signal pending to private queue because of
+ * pthread_kill(), i.e., tkill()
+ */
+ if ((x % 5000) == 0)
+ pthread_kill(pthread_self(), SIGUSR1);
+- sum += x;
+ }
+ iter[myid]++;
+
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/linux/linux.inc b/meta-oe/recipes-kernel/linux/linux.inc
index 9f14370cd8..b4b0661225 100644
--- a/meta-oe/recipes-kernel/linux/linux.inc
+++ b/meta-oe/recipes-kernel/linux/linux.inc
@@ -1,6 +1,6 @@
DESCRIPTION = "Linux Kernel"
SECTION = "kernel"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
INC_PR = "r0"
@@ -34,7 +34,7 @@ kernel_conf_variable() {
fi
}
-do_configure_prepend() {
+do_configure:prepend() {
echo "" > ${B}/.config
CONF_SED_SCRIPT=""
@@ -117,15 +117,15 @@ do_configure_prepend() {
yes '' | oe_runmake -C ${S} O=${B} oldconfig
}
-do_configure_append() {
+do_configure:append() {
if test -e scripts/Makefile.fwinst ; then
sed -i -e "s:-m0644:-m 0644:g" scripts/Makefile.fwinst
fi
}
-do_install_append() {
+do_install:append() {
oe_runmake headers_install INSTALL_HDR_PATH=${D}${exec_prefix}/src/linux-${KERNEL_VERSION} ARCH=$ARCH
}
PACKAGES =+ "kernel-headers"
-FILES_kernel-headers = "${exec_prefix}/src/linux*"
+FILES:kernel-headers = "${exec_prefix}/src/linux*"
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 d599a91933..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
@@ -1,6 +1,6 @@
-From 3c2f4ff583a156a7ed2fa0cc002a413c391d063d Mon Sep 17 00:00:00 2001
+From 71b5a3905d5cd0feca88a0d61d7657ba5296a052 Mon Sep 17 00:00:00 2001
From: Mingli Yu <mingli.yu@windriver.com>
-Date: Thu, 21 Jul 2016 18:06:21 +0800
+Date: Sun, 24 Apr 2022 17:25:33 +0800
Subject: [PATCH] makedumpfile: replace hardcode CFLAGS
* Create alias for target such as powerpc as powerpc32
@@ -10,44 +10,41 @@ 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>
+
+[2021-11-18] Patch updated to use CFLAGS_COMMON for zstd
+Signed-off-by: Fathi Boudra <fathi.boudra@linaro.org>
+
+Rebase to 1.7.1
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
---
- Makefile | 46 +++++++++++++++++++++++-----------------------
- 1 file changed, 23 insertions(+), 23 deletions(-)
+ Makefile | 42 ++++++++++++++++++++++--------------------
+ 1 file changed, 22 insertions(+), 20 deletions(-)
-diff --git a/Makefile b/Makefile
-index 7dde3e4..c5286ac 100644
--- a/Makefile
+++ b/Makefile
-@@ -8,13 +8,6 @@ ifeq ($(strip $CC),)
+@@ -8,12 +8,6 @@ ifeq ($(strip $CC),)
CC = gcc
endif
--CFLAGS = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \
-- -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE \
-- -DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(DATE)"'
--CFLAGS_ARCH = -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \
-- -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+-CFLAGS_BASE := $(CFLAGS) -g -O2 -Wall -D_FILE_OFFSET_BITS=64 \
+- -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
+-CFLAGS := $(CFLAGS_BASE) -DVERSION='"$(VERSION)"' -DRELEASE_DATE='"$(DATE)"'
+-CFLAGS_ARCH := $(CFLAGS_BASE)
-# LDFLAGS = -L/usr/local/lib -I/usr/local/include
-
HOST_ARCH := $(shell uname -m)
# Use TARGET as the target architecture if specified.
# Defaults to uname -m
-@@ -22,29 +15,36 @@ ifeq ($(strip($TARGET)),)
- TARGET := $(HOST_ARCH)
- endif
-
--ARCH := $(shell echo ${TARGET} | sed -e s/i.86/x86/ -e s/sun4u/sparc64/ \
-- -e s/arm.*/arm/ -e s/sa110/arm/ \
-- -e s/s390x/s390/ -e s/parisc64/parisc/ \
+@@ -24,26 +18,34 @@ endif
+ ARCH := $(shell echo ${TARGET} | sed -e s/i.86/x86/ -e s/sun4u/sparc64/ \
+ -e s/arm.*/arm/ -e s/sa110/arm/ \
+ -e s/s390x/s390/ -e s/parisc64/parisc/ \
- -e s/ppc64/powerpc64/ -e s/ppc/powerpc32/)
-+ARCH := $(shell echo __${TARGET}__ | sed -e s/i.86/x86/ -e s/sun4u/sparc64/ \
-+ -e s/arm.*/arm/ -e s/sa110/arm/ \
-+ -e s/s390x/s390/ -e s/parisc64/parisc/ \
-+ -e s/ppc64/powerpc64/ -e s/ppc/powerpc32/ \
-+ -e s/_powerpc_/_powerpc32_/)
++ -e s/ppc64/powerpc64/ -e s/ppc/powerpc32/ \
++ -e s/_powerpc_/_powerpc32_/)
CROSS :=
ifneq ($(TARGET), $(HOST_ARCH))
@@ -55,8 +52,7 @@ index 7dde3e4..c5286ac 100644
endif
-CFLAGS += -D__$(ARCH)__ $(CROSS)
--CFLAGS_ARCH += -D__$(ARCH)__ $(CROSS)
-+CFLAGS_ARCH += -D$(ARCH) $(CROSS)
+ CFLAGS_ARCH += -D__$(ARCH)__ $(CROSS)
-ifeq ($(ARCH), powerpc64)
-CFLAGS += -m64
@@ -71,23 +67,24 @@ index 7dde3e4..c5286ac 100644
endif
+CFLAGS_ARCH += $(CFLAGS) \
-+ -D_FILE_OFFSET_BITS=64 \
-+ -D_LARGEFILE_SOURCE \
-+ -D_LARGEFILE64_SOURCE
++ -D_FILE_OFFSET_BITS=64 \
++ -D_LARGEFILE_SOURCE \
++ -D_LARGEFILE64_SOURCE
+
+CFLAGS_COMMON = $(CFLAGS_ARCH) \
-+ -DVERSION='"$(VERSION)"' \
-+ -DRELEASE_DATE='"$(DATE)"'
++ -DVERSION='"$(VERSION)"' \
++ -DRELEASE_DATE='"$(DATE)"'
++
+
SRC_BASE = makedumpfile.c makedumpfile.h diskdump_mod.h sadump_mod.h sadump_info.h
- SRC_PART = print_info.c dwarf_info.c elf_info.c erase_info.c sadump_info.c cache.c
+ SRC_PART = print_info.c dwarf_info.c elf_info.c erase_info.c sadump_info.c cache.c tools.c printk.c detect_cycle.c
OBJ_PART=$(patsubst %.c,%.o,$(SRC_PART))
-@@ -54,17 +54,17 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
+@@ -52,12 +54,12 @@ OBJ_ARCH=$(patsubst %.c,%.o,$(SRC_ARCH))
- LIBS = -ldw -lbz2 -lebl -ldl -lelf -lz
+ LIBS = -ldw -lbz2 -ldl -lelf -lz
ifneq ($(LINKTYPE), dynamic)
--LIBS := -static $(LIBS)
-+LIBS := $(LIBS)
+-LIBS := -static $(LIBS) -llzma
++LIBS := $(LIBS) -llzma
endif
ifeq ($(USELZO), on)
@@ -97,13 +94,22 @@ index 7dde3e4..c5286ac 100644
endif
ifeq ($(USESNAPPY), on)
- LIBS := -lsnappy $(LIBS)
+@@ -65,12 +67,12 @@ LIBS := -lsnappy $(LIBS)
+ ifneq ($(LINKTYPE), dynamic)
+ LIBS := $(LIBS) -lstdc++
+ endif
-CFLAGS += -DUSESNAPPY
+CFLAGS_COMMON += -DUSESNAPPY
endif
- LIBS := -lpthread $(LIBS)
-@@ -72,14 +72,14 @@ LIBS := -lpthread $(LIBS)
+ ifeq ($(USEZSTD), on)
+ LIBS := -lzstd $(LIBS)
+-CFLAGS += -DUSEZSTD
++CFLAGS_COMMON += -DUSEZSTD
+ endif
+
+ ifeq ($(DEBUG), on)
+@@ -104,14 +106,14 @@ LIBS := $(LIBS) $(call try-run,\
all: makedumpfile
$(OBJ_PART): $(SRC_PART)
@@ -117,18 +123,15 @@ index 7dde3e4..c5286ac 100644
makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
- $(CC) $(CFLAGS) $(LDFLAGS) $(OBJ_PART) $(OBJ_ARCH) -rdynamic -o $@ $< $(LIBS)
+ $(CC) $(CFLAGS_COMMON) $(LDFLAGS) $(OBJ_PART) $(OBJ_ARCH) -rdynamic -o $@ $< $(LIBS)
- echo .TH MAKEDUMPFILE 8 \"$(DATE)\" \"makedumpfile v$(VERSION)\" \"Linux System Administrator\'s Manual\" > temp.8
- grep -v "^.TH MAKEDUMPFILE 8" $(VPATH)makedumpfile.8 >> temp.8
- mv temp.8 makedumpfile.8
-@@ -90,7 +90,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(OBJ_ARCH)
- gzip -c ./makedumpfile.conf.5 > ./makedumpfile.conf.5.gz
+ @sed -e "s/@DATE@/$(DATE)/" \
+ -e "s/@VERSION@/$(VERSION)/" \
+ $(VPATH)makedumpfile.8.in > $(VPATH)makedumpfile.8
+@@ -120,7 +122,7 @@ makedumpfile: $(SRC_BASE) $(OBJ_PART) $(
+ $(VPATH)makedumpfile.conf.5.in > $(VPATH)makedumpfile.conf.5
eppic_makedumpfile.so: extension_eppic.c
- $(CC) $(CFLAGS) $(LDFLAGS) -shared -rdynamic -o $@ extension_eppic.c -fPIC -leppic -ltinfo
+ $(CC) $(CFLAGS_COMMON) $(LDFLAGS) -shared -rdynamic -o $@ extension_eppic.c -fPIC -leppic -ltinfo
clean:
- rm -f $(OBJ) $(OBJ_PART) $(OBJ_ARCH) makedumpfile makedumpfile.8.gz makedumpfile.conf.5.gz
---
-2.8.1
-
+ rm -f $(OBJ) $(OBJ_PART) $(OBJ_ARCH) makedumpfile makedumpfile.8 makedumpfile.conf.5
diff --git a/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch b/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch
deleted file mode 100644
index e0c3d9af6f..0000000000
--- a/meta-oe/recipes-kernel/makedumpfile/makedumpfile/0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 653fe8e724081d2f289c2245d1220d5f7170538d Mon Sep 17 00:00:00 2001
-From: Alexandru Moise <alexandru.moise@windriver.com>
-Date: Fri, 29 Apr 2016 07:40:46 +0000
-Subject: [PATCH] mem_section: Support only 46 bit for MAX_PHYSMEM_BITS on
- PPC64
-
-Related to change:
-http://lists.infradead.org/pipermail/kexec/2013-January/007849.html
-
-Linux on PPC64 has supported only 46 bit MAX_PHYSMEM_BITS since commit:
-048ee0993ec8360abb0b51bdf8f8721e9ed62ec4
-
-Also remove set_ppc64_max_physmem_bits and set info->max_physmem_bits in
-get_machdep_info_ppc64 instead. set_ppc64_max_physmem_bits is broken
-for all kernels compiled with CONFIG_SPARSEMEM=n. makedumpfile is
-unable to get mem_section field from powerpc kernel since commit:
-fd59d231f81cb02870b9cf15f456a897f3669b4e
-
-Upstream-Status: Pending
-
-Signed-off-by: Alexandru Moise <alexandru.moise@windriver.com>
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- arch/ppc64.c | 28 ++--------------------------
- 1 file changed, 2 insertions(+), 26 deletions(-)
-
-diff --git a/arch/ppc64.c b/arch/ppc64.c
-index 89a7f05..6c928ab 100644
---- a/arch/ppc64.c
-+++ b/arch/ppc64.c
-@@ -302,37 +302,13 @@ ppc64_vtop_level4(unsigned long vaddr)
- }
-
- int
--set_ppc64_max_physmem_bits(void)
--{
-- long array_len = ARRAY_LENGTH(mem_section);
-- /*
-- * The older ppc64 kernels uses _MAX_PHYSMEM_BITS as 42 and the
-- * newer kernels 3.7 onwards uses 46 bits.
-- */
--
-- info->max_physmem_bits = _MAX_PHYSMEM_BITS_ORIG ;
-- if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
-- || (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
-- return TRUE;
--
-- info->max_physmem_bits = _MAX_PHYSMEM_BITS_3_7;
-- if ((array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT_EXTREME()))
-- || (array_len == (NR_MEM_SECTIONS() / _SECTIONS_PER_ROOT())))
-- return TRUE;
--
-- return FALSE;
--}
--
--int
- get_machdep_info_ppc64(void)
- {
- unsigned long vmlist, vmap_area_list, vmalloc_start;
-
- info->section_size_bits = _SECTION_SIZE_BITS;
-- if (!set_ppc64_max_physmem_bits()) {
-- ERRMSG("Can't detect max_physmem_bits.\n");
-- return FALSE;
-- }
-+ info->max_physmem_bits = _MAX_PHYSMEM_BITS_3_7;
-+
- info->page_offset = __PAGE_OFFSET;
-
- if (SYMBOL(_stext) == NOT_FOUND_SYMBOL) {
---
-2.5.0
-
diff --git a/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb b/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb
deleted file mode 100644
index 38f9d24c96..0000000000
--- a/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.6.2.bb
+++ /dev/null
@@ -1,57 +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 = "http://makedumpfile.sourceforge.net"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-LICENSE = "GPLv2.0"
-
-DEPENDS = "bzip2 zlib elfutils"
-RDEPENDS_${PN}-tools = "perl ${PN}"
-
-# arm would compile but has never been tested upstream. mips would not compile.
-#
-COMPATIBLE_HOST = "(x86_64|i.86|powerpc|arm).*-linux"
-
-PACKAGES =+ "${PN}-tools"
-FILES_${PN}-tools = "${bindir}/*.pl"
-
-SRC_URI = "\
- ${SOURCEFORGE_MIRROR}/makedumpfile/${BPN}-${PV}.tar.gz \
- file://0001-makedumpfile-replace-hardcode-CFLAGS.patch \
- file://0002-mem_section-Support-only-46-bit-for-MAX_PHYSMEM_BITS.patch \
-"
-SRC_URI[md5sum] = "72be5bf973eed898c5127e3abc466583"
-SRC_URI[sha256sum] = "ee3d21cb4032a60bd2c802d1d8b21b9f399710e1574f8de8ead5ab50cd821a6d"
-
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/makedumpfile/files/makedumpfile/"
-UPSTREAM_CHECK_REGEX = "makedumpfile/(?P<pver>\d+(\.\d+)+)/"
-
-SECTION = "base"
-
-# If we do not specify TARGET, makedumpfile will build for the host but use the
-# target gcc.
-#
-EXTRA_OEMAKE = "\
- LINKTYPE=static \
- TARGET=${TARGET_ARCH} \
-"
-
-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}/usr/share/man/man8
- install -m 644 ${S}/makedumpfile.8.gz ${D}/usr/share/man/man8
-
- mkdir -p ${D}/usr/share/man/man5
- install -m 644 ${S}/makedumpfile.conf.5.gz ${D}/usr/share/man/man5
-
- 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.3.bb b/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.3.bb
new file mode 100644
index 0000000000..0ae691b39b
--- /dev/null
+++ b/meta-oe/recipes-kernel/makedumpfile/makedumpfile_1.7.3.bb
@@ -0,0 +1,61 @@
+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 = "ecc9355e1344d3de94870e855e380ee84224e552"
+
+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/minicoredumper/files/0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch b/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch
deleted file mode 100644
index ad255fae06..0000000000
--- a/meta-oe/recipes-kernel/minicoredumper/files/0001-minicoredumper-Initialize-pointer-to-config-struct-t.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 6181d9c3c407ee030b4c3a94045318b9e3a3cc89 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 25 Jul 2017 14:08:54 -0700
-Subject: [PATCH] minicoredumper: Initialize pointer to config struct to null
-
-Fixes
-corestripper.c:3632:13: error: variable 'cfg' is used uninitialized whenever 'if' condition is false [-Werror,-Wsometimes-uninitialized]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/minicoredumper/corestripper.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/minicoredumper/corestripper.c b/src/minicoredumper/corestripper.c
-index a764073..ddb0d25 100644
---- a/src/minicoredumper/corestripper.c
-+++ b/src/minicoredumper/corestripper.c
-@@ -3605,7 +3605,7 @@ out:
-
- static int do_all_dumps(struct dump_info *di, int argc, char *argv[])
- {
-- struct config *cfg;
-+ struct config *cfg = 0;
- const char *recept;
- bool live_dumper;
- char *comm_base;
---
-2.13.3
-
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..fbddc0774d
--- /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 SUCCESS
+else
+ echo FAIL
+fi
diff --git a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
deleted file mode 100644
index 27348f750c..0000000000
--- a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.0.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "minicoredumper provides an alternate core dump facility for Linux \
-to allow minimal and customized crash dumps"
-LICENSE = " LGPLv2.1 & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=aa846ae365f71b69e9fa0d21a56391ec \
- 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 = "1c0d5960b0bb4bac7566e6afe8bc9705399cc76b"
-
-PR .= "+git${SRCPV}"
-
-SRC_URI = "git://git.linuxfoundation.org/diamon/minicoredumper.git;protocol=http \
- file://minicoredumper.service \
- file://minicoredumper.init \
- file://0001-minicoredumper-Initialize-pointer-to-config-struct-t.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
-}
diff --git a/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.6.bb b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.6.bb
new file mode 100644
index 0000000000..dfe9f7b51d
--- /dev/null
+++ b/meta-oe/recipes-kernel/minicoredumper/minicoredumper_2.0.6.bb
@@ -0,0 +1,48 @@
+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 = "da62115c0fab3a4608e4b0ee0c8aa0cf134c14ca"
+
+SRC_URI = "git://github.com/diamon/minicoredumper;protocol=https;branch=master \
+ file://minicoredumper.service \
+ file://minicoredumper.init \
+ file://run-ptest \
+ "
+
+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.inc b/meta-oe/recipes-kernel/oprofile/oprofile.inc
deleted file mode 100644
index 4b01654fa3..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile.inc
+++ /dev/null
@@ -1,65 +0,0 @@
-SUMMARY = "System-Wide Profiler"
-DESCRIPTION = "OProfile is a system-wide profiler for Linux systems, capable \
-of profiling all running code at low overhead."
-HOMEPAGE = "http://oprofile.sourceforge.net/news/"
-BUGTRACKER = "http://sourceforge.net/tracker/?group_id=16191&atid=116191"
-
-LICENSE = "LGPLv2.1+ & GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://libopagent/opagent.h;beginline=5;endline=26;md5=4f16f72c7a493d8a4704aa18d03d15c6 \
- "
-SECTION = "devel"
-
-DEPENDS = "popt binutils"
-RDEPENDS_${PN} = "binutils-symlinks"
-RRECOMMENDS_${PN} = "kernel-vmlinux"
-
-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"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
- file://acinclude.m4 \
- file://automake-foreign.patch \
- file://oprofile-cross-compile-tests.patch \
- file://run-ptest \
- file://root-home-dir.patch \
- file://0001-Add-rmb-definition-for-NIOS2-architecture.patch \
- file://0001-Fix-FTBFS-problem-with-GCC-6.patch \
-"
-UPSTREAM_CHECK_REGEX = "oprofile-(?P<pver>\d+(\.\d+)+)/"
-UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/oprofile/files/oprofile/"
-
-SRC_URI_append_libc-musl = " file://musl.patch"
-
-inherit autotools pkgconfig ptest
-
-EXTRA_OECONF = "--with-kernel=${STAGING_DIR_HOST}${prefix} --without-x ac_cv_prog_XSLTPROC="
-do_configure () {
- cp ${WORKDIR}/acinclude.m4 ${S}/
- autotools_do_configure
-}
-
-EXTRA_OEMAKE = "SRCDIR=${PTEST_PATH}/libutil++/tests"
-do_compile_ptest() {
- oe_runmake check
-}
-
-do_install_ptest() {
- subdirs="libdb/tests libutil++/tests libregex/tests libutil/tests libop/tests libdb/tests "
- for tooltest in ${subdirs}
- do
- find ${tooltest} -perm /u=x -type f| cpio -pvdu ${D}${PTEST_PATH}
- done
-
- # needed by some libop tests
- cp -r events ${D}${PTEST_PATH}
-
- # 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}/libutil++/tests
-}
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0001-Add-rmb-definition-for-NIOS2-architecture.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0001-Add-rmb-definition-for-NIOS2-architecture.patch
deleted file mode 100644
index ae8562a231..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile/0001-Add-rmb-definition-for-NIOS2-architecture.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 34b0d9b1a32fb404a30327a7ae8931c7c75583bf Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex@denx.de>
-Date: Tue, 9 Feb 2016 02:00:29 +0100
-Subject: [PATCH] Add rmb() definition for NIOS2 architecture
-
-Signed-off-by: Marek Vasut <marex@denx.de>
-Upstream-Status: Submitted [ http://marc.info/?l=oprofile-list&m=145501915931874&w=2 ]
----
- libperf_events/operf_utils.h | 5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/libperf_events/operf_utils.h b/libperf_events/operf_utils.h
-index 32954cc..8270e53 100644
---- a/libperf_events/operf_utils.h
-+++ b/libperf_events/operf_utils.h
-@@ -178,6 +178,11 @@ void op_release_resources(void);
- #define cpu_relax() asm volatile("" ::: "memory")
- #endif
-
-+#ifdef __nios2__
-+#define rmb() asm volatile("" ::: "memory")
-+#define cpu_relax() asm volatile("" ::: "memory")
-+#endif
-+
- #ifdef __tile__
- #include <asm/unistd.h>
- #define rmb() __insn_mf()
---
-2.7.0
-
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
deleted file mode 100644
index d372fd527b..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-FTBFS-problem-with-GCC-6.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 39d4d46a0bd504ac708ffe72df87bf74cd12ad30 Mon Sep 17 00:00:00 2001
-From: William Cohen <wcohen@redhat.com>
-Date: Fri, 5 Feb 2016 17:30:19 -0500
-Subject: [PATCH] Fix FTBFS problem with GCC-6
-
-GCC-6 is pickier about some of the type conversions causing the Fedora
-24 mass rebuild the build of oprofile failed with:
-
-make[3]: Entering directory '/builddir/build/BUILD/oprofile-1.1.0/libutil++'
-g++ -DHAVE_CONFIG_H -I. -I.. -I ../libutil -I ../libop -I ../libpp -W -Wall -fno-common -ftemplate-depth-50 -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c -o op_bfd.o op_bfd.cpp
-op_bfd.cpp: In member function 'void op_bfd::get_symbol_range(symbol_index_t, long long unsigned int&, long long unsigned int&) const':
-op_bfd.cpp:538:47: error: cannot convert 'std::ostream {aka std::basic_ostream<char>}' to 'const bool' in initialization
- bool const verbose = cverb << (vbfd & vlevel1);
- ^
-op_bfd.cpp:546:7: error: in argument to unary !
- if (!verbose)
- ^~~~~~~
-
-Avoid the intermediate bool type to make GCC-6 happy.
-
-Signed-off-by: William Cohen <wcohen@redhat.com>
----
-Upstream-Status: Backport
-
- libutil++/op_bfd.cpp | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/libutil++/op_bfd.cpp b/libutil++/op_bfd.cpp
-index 389c920..f2eb42b 100644
---- a/libutil++/op_bfd.cpp
-+++ b/libutil++/op_bfd.cpp
-@@ -535,15 +535,13 @@ void op_bfd::get_symbol_range(symbol_index_t sym_idx,
- {
- op_bfd_symbol const & sym = syms[sym_idx];
-
-- bool const verbose = cverb << (vbfd & vlevel1);
--
- if (anon_obj)
- start = sym.vma();
- else
- start = sym.filepos();
- end = start + sym.size();
-
-- if (!verbose)
-+ if (!(cverb << (vbfd & vlevel1)))
- return;
-
- io_state state(cverb << (vbfd & vlevel1));
---
-1.9.1
-
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-build-with-musl.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-build-with-musl.patch
new file mode 100644
index 0000000000..61191220e2
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0001-Fix-build-with-musl.patch
@@ -0,0 +1,55 @@
+From 5ed9bda8baf7465172a99ff86ed7f46397b06c7f Mon Sep 17 00:00:00 2001
+From: Andrew Savchenko <bircoph@gmail.com>
+Date: Sat, 5 Sep 2020 14:41:30 +0300
+Subject: [PATCH 01/10] Fix build with musl
+
+--Signature=_Sat__5_Sep_2020_14_41_30_+0300_B.qpPPwu83bbA.32
+Content-Type: text/plain; charset=US-ASCII
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+When musl is used instead of glibc, oprofile build fails because it
+uses glibc-specific FTW extension: FTW_ACTIONRETVAL for custom
+__delete_old_previous_sample_data return codes and FTW_STOP,
+FTW_CONTINUE for such return codes. Musl supports only POSIX ftw, so
+build fails.
+
+However, this extension is not really needed by oprofile, because
+FTW_SKIP_* are not used and {FTW_STOP,FTW_CONTINUE} can be handled
+by standard return codes {1,0} (more precisely standard defines
+{!0,0}, but in glibc FTW_STOP = 1, so I keep this value).
+
+Upstream-Status: Backport [https://sourceforge.net/p/oprofile/oprofile/ci/5ed9bda8baf7465172a99ff86ed7f46397b06c7f/]
+Signed-off-by: Andrew Savchenko <bircoph@gmail.com>
+---
+ pe_profiling/operf.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/pe_profiling/operf.cpp b/pe_profiling/operf.cpp
+index 06a0ea3c..00834409 100644
+--- a/pe_profiling/operf.cpp
++++ b/pe_profiling/operf.cpp
+@@ -860,9 +860,9 @@ static int __delete_old_previous_sample_data(const char *fpath,
+ {
+ if (remove(fpath)) {
+ perror("sample data removal error");
+- return FTW_STOP;
++ return 1;
+ } else {
+- return FTW_CONTINUE;
++ return 0;
+ }
+ }
+
+@@ -897,7 +897,7 @@ static void convert_sample_data(void)
+ return;
+
+ if (!operf_options::append) {
+- int flags = FTW_DEPTH | FTW_ACTIONRETVAL;
++ int flags = FTW_DEPTH;
+ errno = 0;
+ if (nftw(previous_sampledir.c_str(), __delete_old_previous_sample_data, 32, flags) !=0 &&
+ errno != ENOENT) {
+--
+2.31.0
+
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/0001-configure-Include-unistd.h-for-getpid-API.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0001-configure-Include-unistd.h-for-getpid-API.patch
new file mode 100644
index 0000000000..0ac03bde50
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0001-configure-Include-unistd.h-for-getpid-API.patch
@@ -0,0 +1,28 @@
+From 46f0aadf80d5e28f587149b6e90c3ba005971f6e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 19:22:17 -0700
+Subject: [PATCH] configure: Include unistd.h for getpid API
+
+This fixes the check for perf events support in configure
+
+Upstream-Status: Pending
+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 e4f4024..3384628 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -119,6 +119,7 @@ if test "$kernel_may_have_perf_events_support" = "yes"; then
+ #include <asm/unistd.h>
+ #include <sys/types.h>
+ #include <string.h>
++ #include <unistd.h>
+ ]],
+ [[struct perf_event_attr attr;
+ pid_t pid;
+--
+2.37.3
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0002-Fix-configure-when-bin-sh-is-not-bash.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0002-Fix-configure-when-bin-sh-is-not-bash.patch
new file mode 100644
index 0000000000..2ffdc8ae53
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0002-Fix-configure-when-bin-sh-is-not-bash.patch
@@ -0,0 +1,40 @@
+From 91bedd280b8a3fb4665db627559abba960be4212 Mon Sep 17 00:00:00 2001
+From: Andrew Savchenko <bircoph@gmail.com>
+Date: Sat, 5 Sep 2020 14:40:07 +0300
+Subject: [PATCH 02/10] Fix configure when /bin/sh is not bash
+
+--Signature=_Sat__5_Sep_2020_14_40_08_+0300_w+XY/NnD8_G.Kd1s
+Content-Type: text/plain; charset=US-ASCII
+Content-Disposition: inline
+Content-Transfer-Encoding: quoted-printable
+
+When /bin/sh used by autoconf is not bash, e.g. dash, configure
+fails because it uses bash-specific equality operator "==".
+
+Fix this problem by replacing "==" with POSIX "=" which is
+sufficient for test where it is being used.
+
+Upstream-Status: Backport [https://sourceforge.net/p/oprofile/oprofile/ci/91bedd280b8a3fb4665db627559abba960be4212/]
+Signed-off-by: Andrew Savchenko <bircoph@gmail.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 05609f6e..f5fcd17d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -466,8 +466,8 @@ AX_COPY_IF_CHANGE(doc/xsl/catalog-1.xml, doc/xsl/catalog.xml)
+
+ if ! test "x$enable_account_check" = "xyes"; then
+ :
+-elif test "`getent passwd oprofile 2>/dev/null`" == "" || \
+- test "`getent group oprofile 2>/dev/null`" == ""; then
++elif test "`getent passwd oprofile 2>/dev/null`" = "" || \
++ test "`getent group oprofile 2>/dev/null`" = ""; then
+ if test `id -u` != "0"; then
+ echo "Warning: The user account 'oprofile:oprofile' does not exist on the system."
+ echo " To profile JITed code, this special user account must exist."
+--
+2.31.0
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0003-Define-the-C-preprocessor-variable-to-improve-reprod.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0003-Define-the-C-preprocessor-variable-to-improve-reprod.patch
new file mode 100644
index 0000000000..923c39ae1b
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0003-Define-the-C-preprocessor-variable-to-improve-reprod.patch
@@ -0,0 +1,30 @@
+From 864e02eab12cdc523b2dcd3f7b87a27abc16eefc Mon Sep 17 00:00:00 2001
+From: Viktor Kleinik <vkleinik@cisco.com>
+Date: Sun, 7 Mar 2021 17:07:44 +0000
+Subject: [PATCH 03/10] Define the C preprocessor variable to improve reproducibility
+
+Define the C preprocessor variable BUILD_DATE, which can be used
+as source for reproducible build date in case when
+SOURCE_DATE_EPOCH environment variable is set.
+
+Upstream-Status: Backport [https://sourceforge.net/p/oprofile/oprofile/ci/864e02eab12cdc523b2dcd3f7b87a27abc16eefc/]
+Signed-off-by: Viktor Kleinik <vkleinik@cisco.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index f5fcd17d..dc447f89 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,6 +31,7 @@ if test -n "$SOURCE_DATE_EPOCH" ; then
+ fi
+ dnl for the man page
+ DATE="`date $dateopt '+%a %d %B %Y'`"
++AC_DEFINE_UNQUOTED([BUILD_DATE], ["$DATE"], [Use reproducible build date])
+ AC_SUBST(DATE)
+
+ # Since we should not permanently alter user environment variables, we'll
+--
+2.31.0
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0004-Use-BUILD_DATE-to-improve-reproducibility.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0004-Use-BUILD_DATE-to-improve-reproducibility.patch
new file mode 100644
index 0000000000..0fcca2b689
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0004-Use-BUILD_DATE-to-improve-reproducibility.patch
@@ -0,0 +1,63 @@
+From 7bef5b905abe36adfd4e4cc16bc830376f50e8f6 Mon Sep 17 00:00:00 2001
+From: Viktor Kleinik <vkleinik@cisco.com>
+Date: Sun, 7 Mar 2021 17:22:26 +0000
+Subject: [PATCH 04/10] Use BUILD_DATE to improve reproducibility
+
+The C preprocessor variable BUILD_DATE contains the actual
+build date or some reproducible value. It depends on whether
+SOURCE_DATE_EPOCH environment variable was set previously or not.
+In this way, reproducibility can be improved when needed.
+
+Upstream-Status: Backport [https://sourceforge.net/p/oprofile/oprofile/ci/864e02eab12cdc523b2dcd3f7b87a27abc16eefc/]
+Signed-off-by: Viktor Kleinik <vkleinik@cisco.com>
+---
+ libutil/op_version.c | 2 +-
+ pe_counting/ocount.cpp | 4 ++--
+ pe_profiling/operf.cpp | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/libutil/op_version.c b/libutil/op_version.c
+index 99a844e4..a257e9c4 100644
+--- a/libutil/op_version.c
++++ b/libutil/op_version.c
+@@ -19,6 +19,6 @@ void show_version(char const * app_name)
+ {
+ /* Do not change the version format: it is documented in html doc */
+ printf("%s: " PACKAGE " " VERSION " compiled on "
+- __DATE__ " " __TIME__ "\n", app_name);
++ BUILD_DATE "\n", app_name);
+ exit(EXIT_SUCCESS);
+ }
+diff --git a/pe_counting/ocount.cpp b/pe_counting/ocount.cpp
+index 2470745d..ae89fe61 100644
+--- a/pe_counting/ocount.cpp
++++ b/pe_counting/ocount.cpp
+@@ -660,8 +660,8 @@ static int _process_ocount_and_app_args(int argc, char * const argv[])
+ __print_usage_and_exit(NULL);
+ break;
+ case 'v':
+- cout << argv[0] << ": " << PACKAGE << " " << VERSION << " compiled on " << __DATE__
+- << " " << __TIME__ << endl;
++ cout << argv[0] << ": " << PACKAGE << " " << VERSION << " compiled on "
++ << BUILD_DATE << endl;
+ exit(EXIT_SUCCESS);
+ break;
+ default:
+diff --git a/pe_profiling/operf.cpp b/pe_profiling/operf.cpp
+index 00834409..f0f9c209 100644
+--- a/pe_profiling/operf.cpp
++++ b/pe_profiling/operf.cpp
+@@ -1342,8 +1342,8 @@ static int _process_operf_and_app_args(int argc, char * const argv[])
+ __print_usage_and_exit(NULL);
+ break;
+ case 'v':
+- cout << argv[0] << ": " << PACKAGE << " " << VERSION << " compiled on " << __DATE__
+- << " " << __TIME__ << endl;
++ cout << argv[0] << ": " << PACKAGE << " " << VERSION << " compiled on "
++ << BUILD_DATE << endl;
+ exit(EXIT_SUCCESS);
+ break;
+ default:
+--
+2.31.0
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0005-Add-rmb-definition-for-NIOS2-architecture.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0005-Add-rmb-definition-for-NIOS2-architecture.patch
new file mode 100644
index 0000000000..0fd850ff20
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0005-Add-rmb-definition-for-NIOS2-architecture.patch
@@ -0,0 +1,31 @@
+From 3539d2ab392d3a3eecffeddac989016063b23713 Mon Sep 17 00:00:00 2001
+From: Marek Vasut <marex@denx.de>
+Date: Tue, 9 Feb 2016 02:00:29 +0100
+Subject: [PATCH 05/10] Add rmb() definition for NIOS2 architecture
+
+Signed-off-by: Marek Vasut <marex@denx.de>
+Upstream-Status: Submitted [ http://marc.info/?l=oprofile-list&m=145501915931874&w=2 ]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libperf_events/operf_utils.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/libperf_events/operf_utils.h b/libperf_events/operf_utils.h
+index 8afdbc22..8e17213e 100644
+--- a/libperf_events/operf_utils.h
++++ b/libperf_events/operf_utils.h
+@@ -173,6 +173,11 @@ void op_release_resources(void);
+ #define cpu_relax() asm volatile("" ::: "memory")
+ #endif
+
++#ifdef __nios2__
++#define rmb() asm volatile("" ::: "memory")
++#define cpu_relax() asm volatile("" ::: "memory")
++#endif
++
+ #ifdef __tile__
+ #include <asm/unistd.h>
+ #define rmb() __insn_mf()
+--
+2.31.0
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0006-replace-sym_iterator-0-with-sym_iterator.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0006-replace-sym_iterator-0-with-sym_iterator.patch
new file mode 100644
index 0000000000..a8371f0af1
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0006-replace-sym_iterator-0-with-sym_iterator.patch
@@ -0,0 +1,131 @@
+From b126134f68f4a5bd826141be68337ac15a7c2c04 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 12 Feb 2019 11:58:34 -0800
+Subject: [PATCH 06/10] replace (sym_iterator)0 with sym_iterator()
+
+clang/libc++ find this error
+
+libpp/xml_utils.cpp:409:43: error: calling a private constructor of class 'std::__1::__wrap_iter<const sym
+bol_entry *const *>'
+| { lo = hi = 0; name = ""; begin = end = (sym_iterator)0;}
+| ^
+|
+
+default constructed iterator isn't supposed to be used for anything
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libpp/xml_utils.cpp | 26 +++++++++++++-------------
+ 1 file changed, 13 insertions(+), 13 deletions(-)
+
+diff --git a/libpp/xml_utils.cpp b/libpp/xml_utils.cpp
+index 3de41e58..f45d3ae2 100644
+--- a/libpp/xml_utils.cpp
++++ b/libpp/xml_utils.cpp
+@@ -73,7 +73,7 @@ void dump_symbol(string const & prefix, sym_iterator it, bool want_nl = true)
+
+ void dump_symbols(string const & prefix, sym_iterator b, sym_iterator e)
+ {
+- if (b == (sym_iterator)0)
++ if (b == sym_iterator())
+ return;
+
+ for (sym_iterator it = b; it != e; ++it)
+@@ -167,7 +167,7 @@ string xml_utils::get_profile_header(string cpu_name, double const speed)
+ }
+
+ str << init_attr(CPU_NAME, cpu_type) << endl;
+- if (processor.size() > 0)
++ if (processor.size() > 0)
+ str << init_attr(PROCESSOR, string(processor)) << endl;
+ if (nr_cpus > 1) str << init_attr(SEPARATED_CPUS, nr_cpus) << endl;
+ str << init_attr(MHZ, speed) << endl;
+@@ -320,11 +320,11 @@ void xml_utils::build_subclasses(ostream & out)
+ (*sc_ptr)[new_index].subclass_name = subclass_name;
+ out << open_element(CLASS, true);
+ out << init_attr(NAME, subclass_name);
+- if (nr_cpus > 1)
++ if (nr_cpus > 1)
+ out << init_attr(CPU_NUM, pclass.ptemplate.cpu);
+- if (nr_events > 1)
++ if (nr_events > 1)
+ out << init_attr(EVENT_NUM, event);
+- if (has_nonzero_masks)
++ if (has_nonzero_masks)
+ out << init_attr(EVENT_MASK, pclass.ptemplate.unitmask);
+ out << close_element();
+ }
+@@ -406,7 +406,7 @@ xml_utils::output_summary_data(ostream & out, count_array_t const & summary, siz
+ class module_info {
+ public:
+ module_info()
+- { lo = hi = 0; name = ""; begin = end = (sym_iterator)0;}
++ { lo = hi = 0; name = ""; begin = end = sym_iterator();}
+ void dump();
+ void build_module(string const & n, sym_iterator it,
+ size_t l, size_t h);
+@@ -540,21 +540,21 @@ void module_info::add_to_summary(count_array_t const & counts)
+
+ void module_info::set_begin(sym_iterator b)
+ {
+- if (begin == (sym_iterator)0)
++ if (begin == sym_iterator())
+ begin = b;
+ }
+
+
+ void module_info::set_end(sym_iterator e)
+ {
+- if (end == (sym_iterator)0)
++ if (end == sym_iterator())
+ end = e;
+ }
+
+
+ bool module_info::is_closed(string const & n)
+ {
+- return (name == n) && end != (sym_iterator)0;
++ return (name == n) && end != sym_iterator();
+ }
+
+
+@@ -585,7 +585,7 @@ void module_info::output_summary(ostream & out)
+
+ void module_info::output_symbols(ostream & out, bool is_module)
+ {
+- if (begin == (sym_iterator)0)
++ if (begin == sym_iterator())
+ return;
+
+ for (sym_iterator it = begin; it != end; ++it)
+@@ -606,7 +606,7 @@ void binary_info::close_binary(sym_iterator it)
+ void binary_info::dump()
+ {
+ cverb << vxml << "app_name=" << name << endl;
+- if (begin != (sym_iterator)0)
++ if (begin != sym_iterator())
+ dump_symbols(" ", begin, end);
+
+ for (size_t i = 0; i < nr_modules; ++i)
+@@ -648,7 +648,7 @@ add_module_symbol(string const & module, string const & app,
+ // mark end of enclosing binary symbols if there have been any
+ // NOTE: it is possible for the binary's symbols to follow its
+ // module symbols
+- if (begin != (sym_iterator)0 && end == (sym_iterator)0)
++ if (begin != sym_iterator() && end == sym_iterator())
+ set_end(it);
+
+ // build the new module
+@@ -718,7 +718,7 @@ summarize_processes(extra_images const & extra_found_images)
+ {
+ // add modules to the appropriate threads in the process hierarchy
+ for (sym_iterator it = symbols_begin ; it != symbols_end; ++it) {
+- string binary = get_image_name((*it)->app_name,
++ string binary = get_image_name((*it)->app_name,
+ image_name_storage::int_filename, extra_found_images);
+ string module = get_image_name((*it)->image_name,
+ image_name_storage::int_filename, extra_found_images);
+--
+2.31.0
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0007-oprofile-doesn-t-want-GNU-levels-of-automake-strictn.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0007-oprofile-doesn-t-want-GNU-levels-of-automake-strictn.patch
new file mode 100644
index 0000000000..5f9ff1b962
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0007-oprofile-doesn-t-want-GNU-levels-of-automake-strictn.patch
@@ -0,0 +1,23 @@
+From fd35c343e67ca47f76d0769fce2881d5f7a027a9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 18 Mar 2021 00:48:34 -0700
+Subject: [PATCH 07/10] oprofile doesn't want GNU-levels of automake strictness
+ so tell it to be "foreign".
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -13,7 +13,7 @@ AC_PREREQ(2.13)
+
+ AC_INIT([OProfile], [1.4.0])
+ AC_CONFIG_SRCDIR([libop/op_config.h])
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+ AC_CONFIG_HEADERS(config.h)
+
+ AC_CHECK_DECLS([basename], [], [], [[#include <libgen.h>]])
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0008-include-linux-limits.h-for-MAX_INPUT.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0008-include-linux-limits.h-for-MAX_INPUT.patch
new file mode 100644
index 0000000000..32e79a0a45
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0008-include-linux-limits.h-for-MAX_INPUT.patch
@@ -0,0 +1,30 @@
+From 33e945f31fee2d74a392eb79025c9477e12b590d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 18 Mar 2021 00:49:48 -0700
+Subject: [PATCH 08/10] include linux/limits.h for MAX_INPUT
+
+Fixes
+op_pe_utils.cpp:533:19: error: 'MAX_INPUT' was not declared in this scope
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libpe_utils/op_pe_utils.cpp | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/libpe_utils/op_pe_utils.cpp b/libpe_utils/op_pe_utils.cpp
+index 1ca4ce3a..c5d16a56 100644
+--- a/libpe_utils/op_pe_utils.cpp
++++ b/libpe_utils/op_pe_utils.cpp
+@@ -11,6 +11,7 @@
+ *
+ */
+
++#include <linux/limits.h>
+ #include <linux/perf_event.h>
+ #include <dirent.h>
+ #include <stdio.h>
+--
+2.31.0
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0009-Prevent-running-check-tests-on-host-if-cross-compili.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0009-Prevent-running-check-tests-on-host-if-cross-compili.patch
new file mode 100644
index 0000000000..e47882c9f3
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0009-Prevent-running-check-tests-on-host-if-cross-compili.patch
@@ -0,0 +1,113 @@
+From 3a942cfd7d2e92667313e189930f7d1733cf40d4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 18 Mar 2021 00:59:20 -0700
+Subject: [PATCH 09/10] Prevent running check tests on host if cross compiling
+
+This patch enables running the 'make check' tests on the target
+in a cross-compiled environment. If not cross-compiling, then 'make
+ check' builds and executes the tests; no change from this patch.
+In a cross-compiling environment, the make variable CROSS_COMPILE is
+set which bypasses assiging tests to the makekfile variable TESTS.
+Since TESTS is empty, the 'make check' process never tries to run the
+tests on the hosts. On the target, the tests must be run manually.
+
+Also, in the libutil++ tests, a makefile variable SRCDIR is passed into
+the compilation phase, pointing to the runtime location of the test
+'file-manip-tests'. The mechanism used for a host test, based on
+'topdir' doesn't work. Instead, if CROSS_COMPILE is set, the
+makefile takes the path of SRCDIR from the build environment and not
+from an expression based on the host path 'topdir'.
+
+Upstream-Status: Pending
+
+Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 1 +
+ libdb/tests/Makefile.am | 2 ++
+ libop/tests/Makefile.am | 2 ++
+ libregex/tests/Makefile.am | 2 ++
+ libutil++/tests/Makefile.am | 4 ++++
+ libutil/tests/Makefile.am | 2 ++
+ 6 files changed, 13 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 520b18ed..108a84e4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -386,6 +386,7 @@ AC_ARG_ENABLE(account-check,
+ enable_account_check=$enableval, enable_account_check=yes)
+
+ AM_CONDITIONAL(CHECK_ACCOUNT, test "x$enable_account_check" = "xyes")
++AM_CONDITIONAL(CROSS_COMPILE, test "x$cross_compiling" = "xyes")
+
+ AC_SUBST(OP_CFLAGS)
+ AC_SUBST(OP_CXXFLAGS)
+diff --git a/libdb/tests/Makefile.am b/libdb/tests/Makefile.am
+index 8a69003f..c933baf6 100644
+--- a/libdb/tests/Makefile.am
++++ b/libdb/tests/Makefile.am
+@@ -13,4 +13,6 @@ check_PROGRAMS = db_test
+ db_test_SOURCES = db_test.c
+ db_test_LDADD = ../libodb.a ../../libutil/libutil.a
+
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
+diff --git a/libop/tests/Makefile.am b/libop/tests/Makefile.am
+index 8a79eb5d..6b90e997 100644
+--- a/libop/tests/Makefile.am
++++ b/libop/tests/Makefile.am
+@@ -33,4 +33,6 @@ load_events_files_tests_LDADD = ${COMMON_LIBS}
+ mangle_tests_SOURCES = mangle_tests.c
+ mangle_tests_LDADD = ${COMMON_LIBS}
+
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS} utf8_checker.sh
++endif
+diff --git a/libregex/tests/Makefile.am b/libregex/tests/Makefile.am
+index 6f19838f..43e84946 100644
+--- a/libregex/tests/Makefile.am
++++ b/libregex/tests/Makefile.am
+@@ -18,4 +18,6 @@ java_test_LDADD = \
+
+ EXTRA_DIST = mangled-name.in
+
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
+diff --git a/libutil++/tests/Makefile.am b/libutil++/tests/Makefile.am
+index 51af0313..dd63fbe2 100644
+--- a/libutil++/tests/Makefile.am
++++ b/libutil++/tests/Makefile.am
+@@ -1,7 +1,9 @@
+
+ REALPATH= readlink -f
+
++if ! CROSS_COMPILE
+ SRCDIR := $(shell $(REALPATH) $(topdir)/libutil++/tests/ )
++endif
+
+ AM_CPPFLAGS = \
+ -I ${top_srcdir}/libutil++ -D SRCDIR="\"$(SRCDIR)/\"" @OP_CPPFLAGS@
+@@ -46,4 +48,6 @@ cached_value_tests_LDADD = ${COMMON_LIBS}
+ utility_tests_SOURCES = utility_tests.cpp
+ utility_tests_LDADD = ${COMMON_LIBS}
+
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
+diff --git a/libutil/tests/Makefile.am b/libutil/tests/Makefile.am
+index dfcd6eca..d8b51892 100644
+--- a/libutil/tests/Makefile.am
++++ b/libutil/tests/Makefile.am
+@@ -12,4 +12,6 @@ file_tests_LDADD = ../libutil.a
+ string_tests_SOURCES = string_tests.c
+ string_tests_LDADD = ../libutil.a
+
++if ! CROSS_COMPILE
+ TESTS = ${check_PROGRAMS}
++endif
+--
+2.31.0
+
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/0010-oprofile-Determine-the-root-home-directory-dynamical.patch b/meta-oe/recipes-kernel/oprofile/oprofile/0010-oprofile-Determine-the-root-home-directory-dynamical.patch
new file mode 100644
index 0000000000..03ee5155c2
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile/0010-oprofile-Determine-the-root-home-directory-dynamical.patch
@@ -0,0 +1,46 @@
+From 60fb7579bac738809b1776dbcd95ccacf7413c57 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 18 Mar 2021 01:02:49 -0700
+Subject: [PATCH 10/10] oprofile: Determine the root home directory dynamically
+
+This commit detects the root home directory dynamically with changes to
+the oprofile gui app source.
+
+The commit replaces an earlier fix that detected and adjusted a
+'non-standard' root home directory at build time. The advantage of this
+patch is that the oprofile tools are adjusted to the current run-time
+path to ~root, not the build time path.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
+---
+ doc/oprofile.xml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/doc/oprofile.xml
++++ b/doc/oprofile.xml
+@@ -647,8 +647,8 @@ Following is a description of the <comma
+ <emphasis>must</emphasis> stop it in a controlled manner in order to process
+ the profile data it has collected. Use <code>kill -SIGINT &lt;operf-PID&gt;</code>
+ for this purpose. It is recommended that when running <command>operf</command>
+- with this option, your current working directory should be <filename>/root</filename> or a subdirectory
+- of <filename>/root</filename> to avoid storing sample data files in locations accessible by regular users.
++ with this option, your current working directory should be <filename>~root</filename> or a subdirectory
++ of <filename>~root</filename> to avoid storing sample data files in locations accessible by regular users.
+ </para></listitem>
+ </varlistentry>
+ <varlistentry>
+--- a/doc/oprofile.html
++++ b/doc/oprofile.html
+@@ -1552,8 +1552,8 @@ Following is a description of the <span
+ <span class="emphasis"><em>must</em></span> stop it in a controlled manner in order to process
+ the profile data it has collected. Use <code class="code">kill -SIGINT &lt;operf-PID&gt;</code>
+ for this purpose. It is recommended that when running <span class="command"><strong>operf</strong></span>
+- with this option, your current working directory should be <code class="filename">/root</code> or a subdirectory
+- of <code class="filename">/root</code> to avoid storing sample data files in locations accessible by regular users.
++ with this option, your current working directory should be <code class="filename">~root</code> or a subdirectory
++ of <code class="filename">~root</code> to avoid storing sample data files in locations accessible by regular users.
+ </p>
+ </dd>
+ <dt>
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/automake-foreign.patch b/meta-oe/recipes-kernel/oprofile/oprofile/automake-foreign.patch
deleted file mode 100644
index b9bb6c5779..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile/automake-foreign.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-oprofile doesn't want GNU-levels of automake strictness so tell it to be "foreign".
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/configure.ac b/configure.ac
-index 5740585..cf6c316 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -16 +16 @@ AC_CONFIG_SRCDIR([libop/op_config.h])
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/musl.patch b/meta-oe/recipes-kernel/oprofile/oprofile/musl.patch
deleted file mode 100644
index 51db408454..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile/musl.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Fix glibc-isms so that oprofile builds with musl.
-
-Patch taken from openwrt (https://github.com/openwrt-mirror/openwrt/blob/master/package/devel/oprofile/patches/100-musl.patch)
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
---- a/pe_profiling/operf.cpp
-+++ b/pe_profiling/operf.cpp
-@@ -857,11 +857,14 @@ static int __delete_old_previous_sample_
- int tflag __attribute__((unused)),
- struct FTW *ftwbuf __attribute__((unused)))
- {
-+ int err;
-+
- if (remove(fpath)) {
-+ err = errno;
- perror("sample data removal error");
-- return FTW_STOP;
-+ return err;
- } else {
-- return FTW_CONTINUE;
-+ return 0;
- }
- }
-
-@@ -896,7 +899,7 @@ static void convert_sample_data(void)
- return;
-
- if (!operf_options::append) {
-- int flags = FTW_DEPTH | FTW_ACTIONRETVAL;
-+ int flags = FTW_DEPTH;
- errno = 0;
- if (nftw(previous_sampledir.c_str(), __delete_old_previous_sample_data, 32, flags) !=0 &&
- errno != ENOENT) {
---- a/libop/op_events.c
-+++ b/libop/op_events.c
-@@ -83,7 +83,7 @@ static int parse_hex(char const * str)
- static u64 parse_long_hex(char const * str)
- {
- u64 value;
-- if (sscanf(str, "%Lx", &value) != 1)
-+ if (sscanf(str, "0x%llx", &value) != 1)
- parse_error("expected long hexadecimal value");
-
- fflush(stderr);
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/oprofile-cross-compile-tests.patch b/meta-oe/recipes-kernel/oprofile/oprofile/oprofile-cross-compile-tests.patch
deleted file mode 100644
index aefa9548e1..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile/oprofile-cross-compile-tests.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-Prevent running check tests on host if cross compiling
-
-This patch enables running the 'make check' tests on the target
-in a cross-compiled environment. If not cross-compiling, then 'make
- check' builds and executes the tests; no change from this patch.
-In a cross-compiling environment, the make variable CROSS_COMPILE is
-set which bypasses assiging tests to the makekfile variable TESTS.
-Since TESTS is empty, the 'make check' process never tries to run the
-tests on the hosts. On the target, the tests must be run manually.
-
-Also, in the libutil++ tests, a makefile variable SRCDIR is passed into
-the compilation phase, pointing to the runtime location of the test
-'file-manip-tests'. The mechanism used for a host test, based on
-'topdir' doesn't work. Instead, if CROSS_COMPILE is set, the
-makefile takes the path of SRCDIR from the build environment and not
-from an expression based on the host path 'topdir'.
-
-Upstream-Status: Pending
-
-Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
-
-diff --git a/configure.ac b/configure.ac
-index 41ece64..ce5a16f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -392,6 +392,7 @@ AC_ARG_ENABLE(account-check,
- enable_account_check=$enableval, enable_account_check=yes)
-
- AM_CONDITIONAL(CHECK_ACCOUNT, test "x$enable_account_check" = "xyes")
-+AM_CONDITIONAL(CROSS_COMPILE, test "x$cross_compiling" = "xyes")
-
- AC_SUBST(OP_CFLAGS)
- AC_SUBST(OP_CXXFLAGS)
-diff --git a/libdb/tests/Makefile.am b/libdb/tests/Makefile.am
-index 8a69003..d820090 100644
---- a/libdb/tests/Makefile.am
-+++ b/libdb/tests/Makefile.am
-@@ -13,4 +13,6 @@ check_PROGRAMS = db_test
- db_test_SOURCES = db_test.c
- db_test_LDADD = ../libodb.a ../../libutil/libutil.a
-
-+if ! CROSS_COMPILE
- TESTS = ${check_PROGRAMS}
-+endif
-diff --git a/libop/tests/Makefile.am b/libop/tests/Makefile.am
-index 8a79eb5..6d417c4 100644
---- a/libop/tests/Makefile.am
-+++ b/libop/tests/Makefile.am
-@@ -33,4 +33,6 @@ load_events_files_tests_LDADD = ${COMMON_LIBS}
- mangle_tests_SOURCES = mangle_tests.c
- mangle_tests_LDADD = ${COMMON_LIBS}
-
-+if ! CROSS_COMPILE
- TESTS = ${check_PROGRAMS} utf8_checker.sh
-+endif
-diff --git a/libregex/tests/Makefile.am b/libregex/tests/Makefile.am
-index 6f19838..1d176f9 100644
---- a/libregex/tests/Makefile.am
-+++ b/libregex/tests/Makefile.am
-@@ -18,4 +18,6 @@ java_test_LDADD = \
-
- EXTRA_DIST = mangled-name.in
-
-+if ! CROSS_COMPILE
- TESTS = ${check_PROGRAMS}
-+endif
-diff --git a/libutil++/tests/Makefile.am b/libutil++/tests/Makefile.am
-index 51af031..a01ea2d 100644
---- a/libutil++/tests/Makefile.am
-+++ b/libutil++/tests/Makefile.am
-@@ -1,7 +1,9 @@
-
- REALPATH= readlink -f
-
-+if ! CROSS_COMPILE
- SRCDIR := $(shell $(REALPATH) $(topdir)/libutil++/tests/ )
-+endif
-
- AM_CPPFLAGS = \
- -I ${top_srcdir}/libutil++ -D SRCDIR="\"$(SRCDIR)/\"" @OP_CPPFLAGS@
-@@ -46,4 +48,6 @@ cached_value_tests_LDADD = ${COMMON_LIBS}
- utility_tests_SOURCES = utility_tests.cpp
- utility_tests_LDADD = ${COMMON_LIBS}
-
-+if ! CROSS_COMPILE
- TESTS = ${check_PROGRAMS}
-+endif
-diff --git a/libutil/tests/Makefile.am b/libutil/tests/Makefile.am
-index dfcd6ec..e8831b5 100644
---- a/libutil/tests/Makefile.am
-+++ b/libutil/tests/Makefile.am
-@@ -12,4 +12,6 @@ file_tests_LDADD = ../libutil.a
- string_tests_SOURCES = string_tests.c
- string_tests_LDADD = ../libutil.a
-
-+if ! CROSS_COMPILE
- TESTS = ${check_PROGRAMS}
-+endif
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile/root-home-dir.patch b/meta-oe/recipes-kernel/oprofile/oprofile/root-home-dir.patch
deleted file mode 100644
index 3eaf6a794a..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile/root-home-dir.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-oprofile: Determine the root home directory dynamically
-
-This commit detects the root home directory dynamically with changes to
-the oprofile gui app source.
-
-The commit replaces an earlier fix that detected and adjusted a
-'non-standard' root home directory at build time. The advantage of this
-patch is that the oprofile tools are adjusted to the current run-time
-path to ~root, not the build time path.
-
-Upstream-Status: Inappropriate [OE specific]
-
-Signed-off-by: Dave Lerner <dave.lerner@windriver.com>
-
-Index: oprofile-1.0.0/doc/oprofile.html
-===================================================================
---- oprofile-1.0.0.orig/doc/oprofile.html 2014-11-03 17:55:31.511034857 +0000
-+++ oprofile-1.0.0/doc/oprofile.html 2014-11-03 17:57:26.415037988 +0000
-@@ -1563,8 +1563,8 @@
- <span class="emphasis"><em>must</em></span> stop it in a controlled manner in order to process
- the profile data it has collected. Use <code class="code">kill -SIGINT &lt;operf-PID&gt;</code>
- for this purpose. It is recommended that when running <span class="command"><strong>operf</strong></span>
-- with this option, your current working directory should be <code class="filename">/root</code> or a subdirectory
-- of <code class="filename">/root</code> to avoid storing sample data files in locations accessible by regular users.
-+ with this option, your current working directory should be <code class="filename">~root</code> or a subdirectory
-+ of <code class="filename">~root</code> to avoid storing sample data files in locations accessible by regular users.
- </p>
- </dd>
- <dt>
-Index: oprofile-1.0.0/doc/oprofile.xml
-===================================================================
---- oprofile-1.0.0.orig/doc/oprofile.xml 2014-11-03 17:55:31.515034857 +0000
-+++ oprofile-1.0.0/doc/oprofile.xml 2014-11-03 17:58:03.719039005 +0000
-@@ -654,8 +654,8 @@
- <emphasis>must</emphasis> stop it in a controlled manner in order to process
- the profile data it has collected. Use <code>kill -SIGINT &lt;operf-PID&gt;</code>
- for this purpose. It is recommended that when running <command>operf</command>
-- with this option, your current working directory should be <filename>/root</filename> or a subdirectory
-- of <filename>/root</filename> to avoid storing sample data files in locations accessible by regular users.
-+ with this option, your current working directory should be <filename>~root</filename> or a subdirectory
-+ of <filename>~root</filename> to avoid storing sample data files in locations accessible by regular users.
- </para></listitem>
- </varlistentry>
- <varlistentry>
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb b/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb
deleted file mode 100644
index 92a94ad0d4..0000000000
--- a/meta-oe/recipes-kernel/oprofile/oprofile_1.1.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require oprofile.inc
-
-DEPENDS += "virtual/kernel"
-DEPENDS_append_powerpc64 = " libpfm4"
-
-SRC_URI[md5sum] = "248c4c069f9476f427fa7195563f9867"
-SRC_URI[sha256sum] = "cf759a6de1a6033d5dfc93bda129a9f2e128aecc4238cc657feb0801d1b0366c"
-
-S = "${WORKDIR}/oprofile-${PV}"
-
diff --git a/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb b/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb
new file mode 100644
index 0000000000..335ab48bb2
--- /dev/null
+++ b/meta-oe/recipes-kernel/oprofile/oprofile_1.4.0.bb
@@ -0,0 +1,77 @@
+SUMMARY = "System-Wide Profiler"
+DESCRIPTION = "OProfile is a system-wide profiler for Linux systems, capable \
+of profiling all running code at low overhead."
+HOMEPAGE = "http://oprofile.sourceforge.net/news/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=16191&atid=116191"
+
+LICENSE = "LGPL-2.1-or-later & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://libopagent/opagent.h;beginline=5;endline=26;md5=4f16f72c7a493d8a4704aa18d03d15c6 \
+ "
+SECTION = "devel"
+
+DEPENDS = "popt binutils"
+DEPENDS:append:powerpc64 = " libpfm4"
+DEPENDS:append:powerpc64le = " libpfm4"
+
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BPN}-${PV}.tar.gz \
+ file://acinclude.m4 \
+ file://run-ptest \
+ file://0001-Fix-build-with-musl.patch \
+ file://0002-Fix-configure-when-bin-sh-is-not-bash.patch \
+ file://0003-Define-the-C-preprocessor-variable-to-improve-reprod.patch \
+ file://0004-Use-BUILD_DATE-to-improve-reproducibility.patch \
+ file://0005-Add-rmb-definition-for-NIOS2-architecture.patch \
+ file://0006-replace-sym_iterator-0-with-sym_iterator.patch \
+ file://0007-oprofile-doesn-t-want-GNU-levels-of-automake-strictn.patch \
+ file://0008-include-linux-limits.h-for-MAX_INPUT.patch \
+ 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"
+
+UPSTREAM_CHECK_REGEX = "oprofile-(?P<pver>\d+(\.\d+)+)/"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/oprofile/files/oprofile/"
+
+inherit autotools pkgconfig ptest
+
+EXTRA_OECONF = "--with-kernel=${STAGING_DIR_HOST}${prefix} --without-x ac_cv_prog_XSLTPROC="
+do_configure () {
+ cp ${WORKDIR}/acinclude.m4 ${S}/
+ autotools_do_configure
+}
+
+EXTRA_OEMAKE = "SRCDIR=${PTEST_PATH}/libutil++/tests"
+do_compile_ptest() {
+ oe_runmake check
+}
+
+do_install_ptest() {
+ subdirs="libdb/tests libutil++/tests libregex/tests libutil/tests libop/tests libdb/tests "
+ for tooltest in ${subdirs}
+ do
+ find ${tooltest} -perm /u=x -type f| cpio -pvdu ${D}${PTEST_PATH}
+ done
+
+ # needed by some libop tests
+ cp -r events ${D}${PTEST_PATH}
+
+ # 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}/libutil++/tests
+}
+
+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"
diff --git a/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-Makefile-fix-multilib-build-failure.patch b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-Makefile-fix-multilib-build-failure.patch
new file mode 100644
index 0000000000..56981d96fa
--- /dev/null
+++ b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-Makefile-fix-multilib-build-failure.patch
@@ -0,0 +1,89 @@
+From 50cea8fd3c07ab27da6edce865a49339f16f3b57 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <naveen.kumar.saini@intel.com>
+Date: Tue, 18 Jun 2019 17:10:15 +0800
+Subject: [PATCH] Makefile: fix multilib build failure
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
+---
+ Makefile | 50 +++++++++++++++++++++++++++-----------------------
+ 1 file changed, 27 insertions(+), 23 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 8455415..4aa0786 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,30 +1,34 @@
+ # SPDX-License-Identifier: GPL-2.0
+ PREFIX ?= /usr
+ DESTDIR ?=
++BASELIB ?=
+
+ all:
+ @echo "Nothing to build"
+
++clean:
++ @echo "Nothing to clean"
++
+ install : uninstall
+- install -d $(DESTDIR)$(PREFIX)/lib/pm-graph
+- install sleepgraph.py $(DESTDIR)$(PREFIX)/lib/pm-graph
+- install bootgraph.py $(DESTDIR)$(PREFIX)/lib/pm-graph
+- install -d $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/cgskip.txt $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/freeze-callgraph.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/freeze.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/freeze-dev.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/standby-callgraph.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/standby.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/standby-dev.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/suspend-callgraph.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/suspend.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/suspend-dev.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
+- install -m 644 config/suspend-x2-proc.cfg $(DESTDIR)$(PREFIX)/lib/pm-graph/config
++ install -d $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph
++ install sleepgraph.py $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph
++ install bootgraph.py $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph
++ install -d $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/cgskip.txt $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/freeze-callgraph.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/freeze.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/freeze-dev.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/standby-callgraph.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/standby.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/standby-dev.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/suspend-callgraph.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/suspend.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/suspend-dev.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
++ install -m 644 config/suspend-x2-proc.cfg $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config
+
+ install -d $(DESTDIR)$(PREFIX)/bin
+- ln -s ../lib/pm-graph/bootgraph.py $(DESTDIR)$(PREFIX)/bin/bootgraph
+- ln -s ../lib/pm-graph/sleepgraph.py $(DESTDIR)$(PREFIX)/bin/sleepgraph
++ ln -s ../$(BASELIB)/pm-graph/bootgraph.py $(DESTDIR)$(PREFIX)/bin/bootgraph
++ ln -s ../$(BASELIB)/pm-graph/sleepgraph.py $(DESTDIR)$(PREFIX)/bin/sleepgraph
+
+ install -d $(DESTDIR)$(PREFIX)/share/man/man8
+ install bootgraph.8 $(DESTDIR)$(PREFIX)/share/man/man8
+@@ -37,11 +41,11 @@ uninstall :
+ rm -f $(DESTDIR)$(PREFIX)/bin/bootgraph
+ rm -f $(DESTDIR)$(PREFIX)/bin/sleepgraph
+
+- rm -f $(DESTDIR)$(PREFIX)/lib/pm-graph/config/*
+- if [ -d $(DESTDIR)$(PREFIX)/lib/pm-graph/config ] ; then \
+- rmdir $(DESTDIR)$(PREFIX)/lib/pm-graph/config; \
++ rm -f $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config/*
++ if [ -d $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config ] ; then \
++ rmdir $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/config; \
+ fi;
+- rm -f $(DESTDIR)$(PREFIX)/lib/pm-graph/*
+- if [ -d $(DESTDIR)$(PREFIX)/lib/pm-graph ] ; then \
+- rmdir $(DESTDIR)$(PREFIX)/lib/pm-graph; \
++ rm -f $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph/*
++ if [ -d $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph ] ; then \
++ rmdir $(DESTDIR)$(PREFIX)/$(BASELIB)/pm-graph; \
+ fi;
+--
+2.17.1
+
diff --git a/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph-add-support-for-RT-kernel-ftrace-flags.patch b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph-add-support-for-RT-kernel-ftrace-flags.patch
new file mode 100644
index 0000000000..f7f8bc0687
--- /dev/null
+++ b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph-add-support-for-RT-kernel-ftrace-flags.patch
@@ -0,0 +1,42 @@
+From 47a1db21f6c5d17c94c58c3fe0dcce35c623dbf4 Mon Sep 17 00:00:00 2001
+From: Liwei Song <liwei.song@windriver.com>
+Date: Tue, 23 Jun 2020 04:47:20 +0000
+Subject: [PATCH] sleepgraph: add support for RT kernel ftrace flags
+
+with PREEMPT_RT enabled in kernel, ftrace have a different
+flags format:
+
+ _-----=> irqs-off
+ / _----=> need-resched
+ | / _----=> need-resched
+ || / _---=> hardirq/softirq
+ ||| / _--=> preempt-depth
+ ||||/ delay
+TASK-PID CPU# ||||| TIMESTAMP FUNCTION
+ | | | ||||| | |
+
+add support for this.
+
+Upstream-Status: Submitted [https://github.com/intel/pm-graph/pull/18]
+
+Signed-off-by: Liwei Song <liwei.song@windriver.com>
+---
+ sleepgraph.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sleepgraph.py b/sleepgraph.py
+index cfed8e09e0e6..561f165cf9be 100755
+--- a/sleepgraph.py
++++ b/sleepgraph.py
+@@ -2689,7 +2689,7 @@ class TestProps:
+ '[ +!#\*@$]*(?P<dur>[0-9\.]*) .*\| (?P<msg>.*)'
+ ftrace_line_fmt_nop = \
+ ' *(?P<proc>.*)-(?P<pid>[0-9]*) *\[(?P<cpu>[0-9]*)\] *'+\
+- '(?P<flags>.{4}) *(?P<time>[0-9\.]*): *'+\
++ '(?P<flags>.{4,7}) *(?P<time>[0-9\.]*): *'+\
+ '(?P<msg>.*)'
+ def __init__(self):
+ self.stamp = ''
+--
+2.24.1
+
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
new file mode 100644
index 0000000000..fc5991d464
--- /dev/null
+++ b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch
@@ -0,0 +1,51 @@
+From 9bbc991a927722439cad38c892fc9f57207089d3 Mon Sep 17 00:00:00 2001
+From: Liwei Song <liwei.song@windriver.com>
+Date: Mon, 24 May 2021 08:27:28 +0000
+Subject: [PATCH] sleepgraph.py: parse unfished cpu exec line
+
+exist the below case in ftrace file:
+sleepgraph-6508 [003] .... 18197.824037: tracing_mark_write: ps - xxx..., lock_torture_wr-94 169,lock_torture_wr-95 143,lock_tort
+sleepgraph-6508 [003] .... 18197.824043: tracing_mark_write: ure_wr-96 189,lock_torture_wr-97 174,lock_torture_wr-98 160,lock_torture_st-99 1
+
+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]
+
+Signed-off-by: Liwei Song <liwei.song@windriver.com>
+---
+ sleepgraph.py | 17 +++++++++++++++--
+ 1 file changed, 15 insertions(+), 2 deletions(-)
+
+diff --git a/sleepgraph.py b/sleepgraph.py
+index e340d5b3f03b..38b4439db8eb 100755
+--- a/sleepgraph.py
++++ b/sleepgraph.py
+@@ -3365,8 +3365,21 @@ def parseTraceLog(live=False):
+ val = ps.split()
+ if not val:
+ continue
+- name = val[0].replace('--', '-')
+- proclist[name] = int(val[1])
++ if not len(val) < 2:
++ name = val[0].replace('--', '-')
++ proclist[name] = int(val[1])
++ else:
++ proclist = dict()
++ nextline = next(tf)
++ mcont = re.match(tp.ftrace_line_fmt, nextline)
++ n = m.group('ps') + mcont.group('msg').split(': ')[1]
++ for pscont in n.split(','):
++ val = pscont.split()
++ if not val:
++ continue
++ if not len(val) < 2:
++ name = val[0].replace('--', '-')
++ proclist[name] = int(val[1])
+ data.pstl[t.time] = proclist
+ continue
+ # find the end of resume
+--
+2.29.2
+
diff --git a/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-use-python3.patch b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-use-python3.patch
new file mode 100644
index 0000000000..25c87093f6
--- /dev/null
+++ b/meta-oe/recipes-kernel/pm-graph/pm-graph/0001-sleepgraph.py-use-python3.patch
@@ -0,0 +1,39 @@
+From 22ce65d997f99606a3bb9d2a660ead42eecc234a Mon Sep 17 00:00:00 2001
+From: Naveen Saini <naveen.kumar.saini@intel.com>
+Date: Wed, 11 Sep 2019 11:31:07 +0800
+Subject: [PATCH] sleepgraph.py: use python3
+
+Already compatible with Python 3.
+Same goes for bootgraph.py
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
+---
+ bootgraph.py | 2 +-
+ sleepgraph.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/bootgraph.py b/bootgraph.py
+index d3b99a1..efb5714 100755
+--- a/bootgraph.py
++++ b/bootgraph.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+ # SPDX-License-Identifier: GPL-2.0-only
+ #
+ # Tool for analyzing boot timing
+diff --git a/sleepgraph.py b/sleepgraph.py
+index 1794c79..cfed8e0 100755
+--- a/sleepgraph.py
++++ b/sleepgraph.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!/usr/bin/python3
+ # SPDX-License-Identifier: GPL-2.0-only
+ #
+ # Tool for analyzing suspend/resume timing
+--
+2.17.1
+
diff --git a/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb b/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
new file mode 100644
index 0000000000..6e52a58de5
--- /dev/null
+++ b/meta-oe/recipes-kernel/pm-graph/pm-graph_5.5.bb
@@ -0,0 +1,35 @@
+SUMMARY = "Timing analysis tools for suspend/resume/boot"
+DESCRIPTION = "This tool suite is designed to assist kernel and OS developers \
+in optimizing their linux stack's suspend/resume & boot time."
+HOMEPAGE = "https://01.org/pm-graph"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=12f884d2ae1ff87c09e5b7ccc2c4ca7e"
+
+SRCREV = "cf59527dc24fdd2f314ae4dcaeb3d68a117988f6"
+SRC_URI = "git://github.com/intel/pm-graph.git;branch=master;protocol=https \
+ file://0001-Makefile-fix-multilib-build-failure.patch \
+ file://0001-sleepgraph.py-use-python3.patch \
+ file://0001-sleepgraph-add-support-for-RT-kernel-ftrace-flags.patch \
+ file://0001-sleepgraph.py-parse-unfished-cpu-exec-line.patch \
+"
+S = "${WORKDIR}/git"
+
+# Apart from the listed RDEPENDS, analyze-suspend depends on some features
+# provided by the kernel. These options are:
+# - CONFIG_PM_DEBUG=y
+# - CONFIG_PM_SLEEP_DEBUG=y
+# - CONFIG_FTRACE=y
+# - CONFIG_FUNCTION_TRACER=y
+# - CONFIG_FUNCTION_GRAPH_TRACER=y
+
+COMPATIBLE_HOST='(i.86|x86_64).*'
+EXTRA_OEMAKE = "PREFIX=${prefix} DESTDIR=${D} BASELIB=${baselib}"
+
+do_install() {
+ oe_runmake install
+ install -Dm 0755 ${S}/analyze_suspend.py ${D}${bindir}/analyze_suspend.py
+}
+
+RDEPENDS:${PN} += "python3-core python3-threading python3-datetime python3-compression"
+RPROVIDES:${PN} = "analyze-suspend"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-kernel/spidev-test/spidev-test.bb b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb
new file mode 100644
index 0000000000..2e8c5cbb8d
--- /dev/null
+++ b/meta-oe/recipes-kernel/spidev-test/spidev-test.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Test SPI devices"
+DESCRIPTION = "SPI testing utility using the spidev driver"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+PROVIDES = "virtual/spidev-test"
+
+inherit bash-completion kernelsrc kernel-arch
+
+do_populate_lic[depends] += "virtual/kernel:do_patch"
+
+EXTRA_OEMAKE = "-C ${S}/tools/spi O=${B} CROSS=${TARGET_PREFIX} CC="${CC}" LD="${LD}" AR=${AR} ARCH=${ARCH}"
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
+
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+
+python do_package:prepend() {
+ 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/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_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/turbostat/turbostat/COPYING b/meta-oe/recipes-kernel/turbostat/turbostat/COPYING
new file mode 100644
index 0000000000..da4cb28feb
--- /dev/null
+++ b/meta-oe/recipes-kernel/turbostat/turbostat/COPYING
@@ -0,0 +1,18 @@
+The Linux Kernel is provided under:
+
+ SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note
+
+Being under the terms of the GNU General Public License version 2 only,
+according with:
+
+ LICENSES/preferred/GPL-2.0
+
+With an explicit syscall exception, as stated at:
+
+ LICENSES/exceptions/Linux-syscall-note
+
+In addition, other licenses may also apply. Please see:
+
+ Documentation/process/license-rules.rst
+
+for more details.
diff --git a/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb b/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
index 3559417948..bdc37c0382 100644
--- a/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
+++ b/meta-oe/recipes-kernel/turbostat/turbostat_3.4.bb
@@ -11,17 +11,17 @@ DESCRIPTION = "The turbostat tool allows you to determine the actual \
processor frequency and idle power saving state residency on supported \
processors."
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://../COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
COMPATIBLE_HOST = '(x86_64.*|i.86.*)-linux'
-COMPATIBLE_HOST_libc-musl = "null"
+COMPATIBLE_HOST:libc-musl = "null"
-DEPENDS = "virtual/kernel"
+SRC_URI += "\
+ file://COPYING \
+ "
-do_fetch[noexec] = "1"
-do_unpack[noexec] = "1"
-do_patch[noexec] = "1"
+PACKAGE_ARCH = "${MACHINE_ARCH}"
+DEPENDS = "libcap"
# This looks in S, so we better make sure there's
# something in the directory.
@@ -30,23 +30,40 @@ do_populate_lic[depends] = "${PN}:do_configure"
EXTRA_OEMAKE = '\
- CC="${CC}" \
- 'CFLAGS=-Wall -I${STAGING_KERNEL_DIR}/arch/x86/include/uapi ${LDFLAGS}' \
+ CC="${CC}" 'CFLAGS=-Wall ${LDFLAGS}' \
'
# If we build under STAGING_KERNEL_DIR, source will not be put
# into the dbg rpm. STAGING_KERNEL_DIR will exist by the time
# do_configure() is invoked so we can safely copy from it.
#
-do_configure_prepend() {
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+do_configure:prepend() {
mkdir -p ${S}
cp -r ${STAGING_KERNEL_DIR}/arch/x86/include/asm/msr-index.h ${S}
cp -r ${STAGING_KERNEL_DIR}/arch/x86/include/asm/intel-family.h ${S}
+ if [ -f "${STAGING_KERNEL_DIR}/include/vdso/bits.h" ]; then
+ cp -r ${STAGING_KERNEL_DIR}/include/vdso/bits.h ${S}
+ cp -r ${STAGING_KERNEL_DIR}/include/vdso/const.h ${S}
+ else
+ cp -r ${STAGING_KERNEL_DIR}/include/linux/bits.h ${S}
+ cp -r ${STAGING_KERNEL_DIR}/include/linux/const.h ${S}
+ fi
cp -r ${STAGING_KERNEL_DIR}/tools/power/x86/turbostat/* ${S}
- cp -r ${STAGING_KERNEL_DIR}/COPYING ${S}
+ cp -r ${WORKDIR}/COPYING ${S}
}
+
do_compile() {
+ sed -i 's#<linux/bits.h>#"bits.h"#' msr-index.h
+ 'TMPCHECK='grep "<vdso/const.h>" bits.h'' || true
+ if [ -n $TMPCHECK ]; then
+ sed -i 's#<vdso/const.h>#"const.h"#' bits.h
+ sed -i 's#<uapi/linux/const.h>#<linux/const.h>#' const.h
+ else
+ sed -i 's#<linux/const.h>#"const.h"#' bits.h
+ sed -i -e 's#<uapi/linux/const.h>#<linux/const.h>#' -e 's#_LINUX_CONST_H#_LINUX_CONST_H_KERNEL#' const.h
+ fi
sed -i 's#MSRHEADER#"msr-index.h"#' turbostat.c
sed -i 's#INTEL_FAMILY_HEADER#"intel-family.h"#' turbostat.c
sed -i 's#\$(CC) \$(CFLAGS) \$< -o \$(BUILD_OUTPUT)/\$@#\$(CC) \$(CFLAGS) \$(LDFLAGS) \$< -o \$(BUILD_OUTPUT)/\$@#' Makefile
diff --git a/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb b/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb
new file mode 100644
index 0000000000..e7e4ca50af
--- /dev/null
+++ b/meta-oe/recipes-kernel/usbip-tools/usbip-tools.bb
@@ -0,0 +1,69 @@
+# Recipe for building userspace part of USB/IP
+#
+# Started with work from chuck kamas - 2021-11-05
+# https://lists.yoctoproject.org/g/yocto/topic/86249103?p=,,,20,0,0,0::recentpostdate/sticky,,,20,0,0,86249103
+# Though have rewritten all the logic to be much simpler
+#
+# SPDX-License-Identifier: MIT
+#
+# Author(s)
+# clst@ambu.com (Claus Stovgaard)
+#
+
+SUMMARY = "userspace usbip from Linux kernel tools"
+DESCRIPTION = " USB/IP protocol allows to pass USB device from server to \
+client over the network. Server is a machine which provides (shares) a \
+USB device. Client is a machine which uses USB device provided by server \
+over the network. The USB device may be either physical device connected \
+to a server or software entity created on a server using USB gadget subsystem."
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/GPL-2.0-only;md5=801f80980d171dd6425610833a22dbe6"
+DEPENDS = "virtual/kernel udev"
+PROVIDES = "virtual/usbip-tools"
+
+inherit kernelsrc autotools-brokensep
+
+do_configure[depends] += "virtual/kernel:do_shared_workdir"
+
+# We need to set S, for not being set to STAGING_KERNEL_DIR, and by that
+# be wiped when we prune dest below. We just set it to usbip-tools-1.0
+S = "${WORKDIR}/${BP}"
+
+# Copy the source files from KERNEL/tools/usb/usbip to ${S}
+do_configure[prefuncs] += "copy_usbip_source_from_kernel"
+python copy_usbip_source_from_kernel() {
+ dir_in_kernel = "tools/usb/usbip"
+ src_dir = d.getVar("STAGING_KERNEL_DIR")
+ src = oe.path.join(src_dir, dir_in_kernel)
+ dest = d.getVar("S")
+ bb.utils.mkdirhier(dest)
+ bb.utils.prunedir(dest)
+ # copy src to dest folder
+ if not os.path.exists(src):
+ bb.fatal("Path does not exist: %s. Maybe dir_in_kernel does not match the kernel version." % src)
+ if os.path.isdir(src):
+ oe.path.copyhardlinktree(src, dest)
+ else:
+ src_path = os.path.dirname(src)
+ os.makedirs(os.path.join(dest,src_path),exist_ok=True)
+ bb.utils.copyfile(src, dest)
+}
+
+# Use local scripts before relying on inherited autotools
+do_configure () {
+ # We are in ${B} - equal to ${S}, so just run the scripts
+ ./cleanup.sh || bbnote "${PN} failed to cleanup.sh"
+ ./autogen.sh || bbnote "${PN} failed to autogen.sh"
+ oe_runconf
+}
+
+# As usbip integrate with the kernel module, we set this package to be build specific for
+# this machine, and not generally for the architecture
+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").split("-")[0])
+} \ No newline at end of file
diff --git a/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch b/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
deleted file mode 100644
index 5299945e19..0000000000
--- a/meta-oe/recipes-multimedia/alsa/alsa-oss/libio.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: alsa-oss-1.0.28/alsa/stdioemu.c
-===================================================================
---- alsa-oss-1.0.28.orig/alsa/stdioemu.c
-+++ alsa-oss-1.0.28/alsa/stdioemu.c
-@@ -37,7 +37,9 @@
- #endif
-
- #include <stdio.h>
-+#ifdef HAVE_LIBIO_H
- #include <libio.h>
-+#endif
-
- struct fd_cookie {
- int fd;
-@@ -99,7 +101,11 @@ static FILE *fake_fopen(const char *path
-
- if (open_mode && fdc->fd > 0) {
- result = fopencookie (fdc,"w", fns);
-+#ifdef HAVE_FILENO
- result->_fileno = fdc->fd; /* ugly patchy slimy kludgy hack */
-+#else
-+ result->__filedes = fdc->fd;
-+#endif
- }
- return result;
- }
-Index: alsa-oss-1.0.28/configure.ac
-===================================================================
---- alsa-oss-1.0.28.orig/configure.ac
-+++ alsa-oss-1.0.28/configure.ac
-@@ -35,6 +35,12 @@ if test "$with_aoss" = "yes"; then
- LIBS="$OLD_LIBS"
- fi
-
-+AC_CHECK_HEADERS_ONCE([libio.h])
-+
-+AC_CHECK_MEMBER([struct _IO_FILE._fileno],
-+ [AC_DEFINE([HAVE_FILENO], [1],[Define if _fileno exists.])],
-+ [],[])
-+
- AC_OUTPUT(Makefile alsa/Makefile alsa/aoss alsa/aoss.old \
- oss-redir/Makefile test/Makefile \
- alsa/testaoss test/testaoss)
diff --git a/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb b/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb
deleted file mode 100644
index 0c4a9f5456..0000000000
--- a/meta-oe/recipes-multimedia/alsa/alsa-oss_1.0.28.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Alsa OSS Compatibility Package"
-SECTION = "libs/multimedia"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-DEPENDS = "alsa-lib"
-
-SRC_URI = "ftp://ftp.alsa-project.org/pub/oss-lib/alsa-oss-${PV}.tar.bz2 \
- file://libio.patch \
-"
-SRC_URI[md5sum] = "91f57e8cee1ad4cc956caa8b62ac5d43"
-SRC_URI[sha256sum] = "3ae62caa88a0bc7b30ed836dcb794dc6ef4d3650439e2260db54cace7d5c6ad5"
-
-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
-}
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 f4e19e4ad3..a09f84381e 100644
--- a/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
+++ b/meta-oe/recipes-multimedia/audiofile/audiofile_0.3.6.bb
@@ -4,7 +4,7 @@ WAVE, NeXT/Sun .snd/.au, Berkeley/IRCAM/CARL Sound File, Audio Visual \
Research, Amiga IFF/8SVX, and NIST SPHERE."
HOMEPAGE = "http://www.68k.org/~michael/audiofile/"
SECTION = "libs"
-LICENSE = "LGPLv2 & GPLv2"
+LICENSE = "LGPL-2.0-only & GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \
file://COPYING.GPL;md5=b234ee4d69f5fce4486a80fdaf4a4263"
@@ -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/cdrkit_1.1.11.bb b/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
index 3b10e978ef..9fd91114d7 100644
--- a/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
+++ b/meta-oe/recipes-multimedia/cdrkit/cdrkit_1.1.11.bb
@@ -1,7 +1,7 @@
SUMMARY = "CD/DVD command line tools"
HOMEPAGE = "http://cdrkit.org/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b30d3b2750b668133fc17b401e1b98f8"
# While writing download from cdrkit.org was broken so get sources from debian
@@ -10,15 +10,55 @@ SRC_URI = "${DEBIAN_MIRROR}/main/c/${BPN}/${BPN}_${PV}.orig.tar.gz \
file://0001-genisoimage-Fix-fprintf-format-errors.patch \
file://0001-define-__THROW-to-avoid-build-issue-with-musl.patch \
file://0002-Do-not-use-rcmd-on-build-with-musl.patch \
+ file://0001-genisoimage-Add-missing-extern-definition.patch \
+ file://0001-add-new-option-eltorito-platform.patch \
+ file://0001-genisoimage-Add-checksum.h-and-md5.h-for-function-pr.patch \
"
+SRC_URI:append:class-nativesdk = " \
+ file://0001-install-netscsid-to-bin-for-nativesdk.patch \
+"
SRC_URI[md5sum] = "efe08e2f3ca478486037b053acd512e9"
SRC_URI[sha256sum] = "d1c030756ecc182defee9fe885638c1785d35a2c2a297b4604c0e0dcc78e47da"
inherit cmake
DEPENDS = "libcap file bzip2"
-RDEPENDS_${PN} = "perl"
+RDEPENDS:dirsplit = "perl"
-do_install_append() {
- ln -sf ${bindir}/genisoimage ${D}${bindir}/mkisofs
+RDEPENDS:${PN}-dev = ""
+
+PACKAGES =+ "dirsplit genisoimage icedax wodim"
+
+FILES:dirsplit = " \
+ ${bindir}/dirsplit \
+"
+
+FILES:genisoimage = " \
+ ${bindir}/devdump \
+ ${bindir}/genisoimage \
+ ${bindir}/isodebug \
+ ${bindir}/isodump \
+ ${bindir}/isoinfo \
+ ${bindir}/isovfy \
+ ${bindir}/mkisofs \
+"
+
+FILES:icedax = " \
+ ${bindir}/cdda2mp3 \
+ ${bindir}/cdda2ogg \
+ ${bindir}/icedax \
+ ${bindir}/pitchplay \
+ ${bindir}/readmult \
+"
+
+FILES:wodim = " \
+ ${bindir}/readom \
+ ${bindir}/wodim \
+ ${sbindir}/netscsid \
+"
+
+do_install:append() {
+ ln -sf --relative ${D}${bindir}/genisoimage ${D}${bindir}/mkisofs
}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0001-add-new-option-eltorito-platform.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-add-new-option-eltorito-platform.patch
new file mode 100644
index 0000000000..dac3328a42
--- /dev/null
+++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-add-new-option-eltorito-platform.patch
@@ -0,0 +1,335 @@
+From 5a2d571f3687910260c45841725f2deb84c8f12e Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Mon, 25 Apr 2022 18:18:00 +0800
+Subject: [PATCH] add new option -eltorito-platform
+
+Mkisofs now correctly supports El Torito multi boot entries by introducing
+a Boot Dection Header before a list of alternate boot entries.
+
+New option -eltorito-platform allows to set the El Torito platform id
+for a boot entry or for a list of boot entries. Supported values for
+the parameter are:
+- x86 the standard value vor x86 based PCs
+- PPC the Power PC platform
+- Mac The Apple Mac platform
+- efi EFI based boot for PCs
+- # an arbitrary numerical value
+
+Upstream-Status: Inappropriate [port from cdrtools]
+https://github.com/jobermayr/cdrtools/commit/a50804fd61d75eb689a515dbfca6968ca2296fd7
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ genisoimage/eltorito.c | 73 +++++++++++++++++++++++++++++++++++++--
+ genisoimage/genisoimage.c | 47 +++++++++++++++++++++++++
+ genisoimage/genisoimage.h | 8 +++++
+ genisoimage/iso9660.h | 33 ++++++++++++++++--
+ 4 files changed, 157 insertions(+), 4 deletions(-)
+
+diff --git a/genisoimage/eltorito.c b/genisoimage/eltorito.c
+index d52e17e..a804988 100644
+--- a/genisoimage/eltorito.c
++++ b/genisoimage/eltorito.c
+@@ -56,6 +56,7 @@ static unsigned int bcat_de_flags;
+ void init_boot_catalog(const char *path);
+ void insert_boot_cat(void);
+ static void get_torito_desc(struct eltorito_boot_descriptor *boot_desc);
++static void fill_boot_shdr(struct eltorito_sectionheader_entry *boot_shdr_entry, int arch);
+ static void fill_boot_desc(struct eltorito_defaultboot_entry *boot_desc_entry,
+ struct eltorito_boot_entry_info *boot_entry);
+ void get_boot_entry(void);
+@@ -282,7 +283,14 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ struct directory_entry *de2; /* Boot catalog */
+ int i;
+ int offset;
++ int arch = 0;
++ int nentries = 0;
+ struct eltorito_defaultboot_entry boot_desc_record;
++ struct eltorito_sectionheader_entry boot_shdr_record;
++#ifdef __needed__
++ struct eltorito_section_entry boot_section_record;
++#endif
++ struct eltorito_sectionheader_entry *last_section_header = 0;
+
+ memset(boot_desc, 0, sizeof (*boot_desc));
+ boot_desc->type[0] = 0;
+@@ -311,13 +319,22 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ set_731(boot_desc->bootcat_ptr,
+ (unsigned int) get_733(de2->isorec.extent));
+
++ /*
++ * If the platform id for the first (default) boot entry has not been
++ * explicitly set, we default to EL_TORITO_ARCH_x86
++ */
++ if ((first_boot_entry->type & ELTORITO_BOOT_ID) == 0) {
++ first_boot_entry->boot_platform = EL_TORITO_ARCH_x86;
++ }
++ arch = first_boot_entry->boot_platform;
++
+ /*
+ * we have the boot image, so write boot catalog information
+ * Next we write out the primary descriptor for the disc
+ */
+ memset(&valid_desc, 0, sizeof (valid_desc));
+ valid_desc.headerid[0] = 1;
+- valid_desc.arch[0] = EL_TORITO_ARCH_x86;
++ valid_desc.arch[0] = arch; /* Platform id for the default boot */
+
+ /*
+ * we'll shove start of publisher id into id field,
+@@ -351,8 +368,17 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ current_boot_entry != NULL;
+ current_boot_entry = current_boot_entry->next,
+ offset += sizeof (boot_desc_record)) {
++ int newarch = arch;
+
+- if (offset >= SECTOR_SIZE) {
++ if (current_boot_entry->type & ELTORITO_BOOT_ID)
++ newarch = current_boot_entry->boot_platform;
++ else
++ current_boot_entry->boot_platform = arch;
++
++ /*
++ * El Torito has no such limitation but we currently have...
++ */
++ if (offset >= (SECTOR_SIZE - sizeof (boot_desc_record))) {
+ #ifdef USE_LIBSCHILY
+ comerrno(EX_BAD,
+ "Too many El Torito boot entries\n");
+@@ -362,12 +388,53 @@ get_torito_desc(struct eltorito_boot_descriptor *boot_desc)
+ exit(1);
+ #endif
+ }
++
++ if (current_boot_entry == first_boot_entry) {
++ ;
++ /* EMPTY */
++ } else if ((current_boot_entry == first_boot_entry->next) ||
++ (arch != newarch) ||
++ (current_boot_entry->type & ELTORITO_SECTION_HEADER)) {
++ if (last_section_header)
++ set_721(&last_section_header->entry_count, nentries);
++ nentries = 1;
++ last_section_header = (struct eltorito_sectionheader_entry *)
++ (de2->table + offset);
++ fill_boot_shdr(&boot_shdr_record, newarch);
++ memcpy(de2->table + offset, &boot_shdr_record,
++ sizeof (boot_shdr_record));
++ offset += sizeof (boot_desc_record);
++ } else {
++ nentries++; /* Add entry to this section header */
++ }
++ /*
++ * This works because a section entry has the same essential
++ * layout as a default entry (and we do not populate the
++ * selection criteria fields).
++ */
++
+ fill_boot_desc(&boot_desc_record, current_boot_entry);
+ memcpy(de2->table + offset, &boot_desc_record,
+ sizeof (boot_desc_record));
+ }
++
++ if (last_section_header) {
++ set_721(&last_section_header->entry_count, nentries);
++ last_section_header->header_id[0] = EL_TORITO_SHDR_ID_LAST_SHDR;
++ }
++
+ }/* get_torito_desc(... */
+
++static void
++fill_boot_shdr(boot_shdr_entry, arch)
++ struct eltorito_sectionheader_entry *boot_shdr_entry;
++ int arch;
++{
++ memset(boot_shdr_entry, 0, sizeof(struct eltorito_sectionheader_entry));
++ boot_shdr_entry->header_id[0] = EL_TORITO_SHDR_ID_SHDR;
++ boot_shdr_entry->platform_id[0] = arch;
++}
++
+ static void
+ fill_boot_desc(struct eltorito_defaultboot_entry *boot_desc_entry,
+ struct eltorito_boot_entry_info *boot_entry)
+@@ -678,7 +745,9 @@ get_boot_entry()
+ if (!first_boot_entry) {
+ first_boot_entry = current_boot_entry;
+ last_boot_entry = current_boot_entry;
++ current_boot_entry->boot_platform = EL_TORITO_ARCH_x86;
+ } else {
++ current_boot_entry->boot_platform = last_boot_entry->boot_platform;
+ last_boot_entry->next = current_boot_entry;
+ last_boot_entry = current_boot_entry;
+ }
+diff --git a/genisoimage/genisoimage.c b/genisoimage/genisoimage.c
+index 9089081..84ac3c2 100644
+--- a/genisoimage/genisoimage.c
++++ b/genisoimage/genisoimage.c
+@@ -271,6 +271,8 @@ struct rcopts {
+ char **variable;
+ };
+
++static int get_boot_platid(char *opt_arg);
++
+ struct rcopts rcopt[] = {
+ {"PREP", &preparer},
+ {"PUBL", &publisher},
+@@ -404,6 +406,7 @@ struct ld_option {
+
+ #define OPTION_ALLOW_LEADING_DOTS 1070
+ #define OPTION_PUBLISHER 1071
++#define OPTION_PLATFORM 1072
+
+ #ifdef JIGDO_TEMPLATE
+ #define OPTION_JTT_OUTPUT 1101
+@@ -528,6 +531,8 @@ static const struct ld_option ld_options[] =
+ 'b', "FILE", "Set El Torito boot image name", ONE_DASH},
+ {{"eltorito-alt-boot", no_argument, NULL, OPTION_ALT_BOOT},
+ '\0', NULL, "Start specifying alternative El Torito boot parameters", ONE_DASH},
++ {{"eltorito-platform", required_argument, NULL, OPTION_PLATFORM},
++ '\0', "ID", "Set El Torito platform id for the next boot entry", ONE_DASH},
+ {{"sparc-boot", required_argument, NULL, 'B'},
+ 'B', "FILES", "Set sparc boot image names", ONE_DASH},
+ {{"sunx86-boot", required_argument, NULL, OPTION_SUNX86BOOT},
+@@ -1558,6 +1563,9 @@ int main(int argc, char *argv[])
+ */
+ new_boot_entry();
+ break;
++ case OPTION_PLATFORM:
++ get_boot_platid(optarg);
++ break;
+ case OPTION_BOOTALPHA:
+ use_alphaboot++;
+ /* list of pathnames of boot images */
+@@ -3829,3 +3837,42 @@ e_malloc(size_t size)
+ memset(pt, 0, size);
+ return (pt);
+ }
++
++static int
++get_boot_platid(char *opt_arg)
++{
++ long val;
++ char *ptr;
++
++ use_eltorito++;
++ if (streql(opt_arg, "x86")) {
++ val = EL_TORITO_ARCH_x86;
++ } else if (streql(opt_arg, "PPC")) {
++ val = EL_TORITO_ARCH_PPC;
++ } else if (streql(opt_arg, "Mac")) {
++ val = EL_TORITO_ARCH_PPC;
++ } else if (streql(opt_arg, "efi")) {
++ val = EL_TORITO_ARCH_EFI;
++ } else {
++ val = strtol(opt_arg, &ptr, 0);
++ if (*ptr || val < 0 || val >= 0x100) {
++ comerrno(EX_BAD, "Bad boot system ID.\n");
++ }
++ }
++
++ /*
++ * If there is already a boot entry and the boot file name has been set
++ * for this boot entry and the new platform id differs from the
++ * previous value, we start a new boot section.
++ */
++ if (current_boot_entry &&
++ current_boot_entry->boot_image != NULL &&
++ current_boot_entry->boot_platform != val) {
++ new_boot_entry();
++ }
++ get_boot_entry();
++ current_boot_entry->type |= ELTORITO_BOOT_ID;
++ current_boot_entry->boot_platform = val;
++ return (1);
++}
++
+diff --git a/genisoimage/genisoimage.h b/genisoimage/genisoimage.h
+index 82c859b..1170d89 100644
+--- a/genisoimage/genisoimage.h
++++ b/genisoimage/genisoimage.h
+@@ -299,6 +299,14 @@ struct eltorito_boot_entry_info {
+ int boot_info_table;
+ int load_size;
+ int load_addr;
++
++#define ELTORITO_BOOT_ID 1
++#define ELTORITO_SECTION_HEADER 2
++ int type;
++ /*
++ * Valid if (type & ELTORITO_BOOT_ID) != 0
++ */
++ int boot_platform;
+ };
+
+ extern int goof;
+diff --git a/genisoimage/iso9660.h b/genisoimage/iso9660.h
+index c74c2a9..61b6fc0 100644
+--- a/genisoimage/iso9660.h
++++ b/genisoimage/iso9660.h
+@@ -62,6 +62,7 @@ struct iso_volume_descriptor {
+ #define EL_TORITO_ARCH_x86 0
+ #define EL_TORITO_ARCH_PPC 1
+ #define EL_TORITO_ARCH_MAC 2
++#define EL_TORITO_ARCH_EFI 0xEF
+
+ #define EL_TORITO_BOOTABLE 0x88
+ #define EL_TORITO_NOT_BOOTABLE 0
+@@ -159,10 +160,15 @@ struct eltorito_boot_descriptor {
+ };
+
+ /* Validation entry for El Torito */
++/*
++ * headerid must be 1
++ * id is the manufacturer ID
++ * cksum to make the sum of all shorts in this record 0
++ */
+ struct eltorito_validation_entry {
+ char headerid [ISODCL(1, 1)]; /* 711 */
+ char arch [ISODCL(2, 2)];
+- char pad1 [ISODCL(3, 4)]; /* 711 */
++ char pad1 [ISODCL(3, 4)]; /* 721 */
+ char id [ISODCL(5, 28)]; /* CD devel/man*/
+ char cksum [ISODCL(29, 30)];
+ char key1 [ISODCL(31, 31)];
+@@ -173,7 +179,7 @@ struct eltorito_validation_entry {
+ struct eltorito_defaultboot_entry {
+ char boot_id [ISODCL(1, 1)]; /* 711 */
+ char boot_media [ISODCL(2, 2)];
+- char loadseg [ISODCL(3, 4)]; /* 711 */
++ char loadseg [ISODCL(3, 4)]; /* 721 */
+ char sys_type [ISODCL(5, 5)];
+ char pad1 [ISODCL(6, 6)];
+ char nsect [ISODCL(7, 8)];
+@@ -181,6 +187,29 @@ struct eltorito_defaultboot_entry {
+ char pad2 [ISODCL(13, 32)];
+ };
+
++/* El Torito section header entry in boot catalog */
++struct eltorito_sectionheader_entry {
++#define EL_TORITO_SHDR_ID_SHDR 0x90
++#define EL_TORITO_SHDR_ID_LAST_SHDR 0x91
++ char header_id [ISODCL(1, 1)]; /* 711 */
++ char platform_id [ISODCL(2, 2)];
++ char entry_count [ISODCL(3, 4)]; /* 721 */
++ char id [ISODCL(5, 32)];
++};
++
++/* El Torito section entry in boot catalog */
++struct eltorito_section_entry {
++ char boot_id [ISODCL(1, 1)]; /* 711 */
++ char boot_media [ISODCL(2, 2)];
++ char loadseg [ISODCL(3, 4)]; /* 721 */
++ char sys_type [ISODCL(5, 5)];
++ char pad1 [ISODCL(6, 6)];
++ char nsect [ISODCL(7, 8)];
++ char bootoff [ISODCL(9, 12)];
++ char sel_criteria [ISODCL(13, 13)];
++ char vendor_sel_criteria [ISODCL(14, 32)];
++};
++
+ /*
+ * XXX JS: The next two structures have odd lengths!
+ * Some compilers (e.g. on Sun3/mc68020) padd the structures to even length.
+--
+2.27.0
+
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-Add-checksum.h-and-md5.h-for-function-pr.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Add-checksum.h-and-md5.h-for-function-pr.patch
new file mode 100644
index 0000000000..b999577265
--- /dev/null
+++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Add-checksum.h-and-md5.h-for-function-pr.patch
@@ -0,0 +1,44 @@
+From f28b8ec20c3485068f1617ff93b497bafe5264e1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 3 Sep 2022 00:50:17 -0700
+Subject: [PATCH] genisoimage: Add checksum.h and md5.h for function prototypes
+
+Needed for parse_checksum_algo and calculate_md5sum
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ genisoimage/genisoimage.c | 2 ++
+ genisoimage/jte.c | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/genisoimage/genisoimage.c b/genisoimage/genisoimage.c
+index 84ac3c2..5c9f7f3 100644
+--- a/genisoimage/genisoimage.c
++++ b/genisoimage/genisoimage.c
+@@ -59,6 +59,8 @@
+ #include "udf.h"
+ #endif
+
++#include "checksum.h"
++
+ #ifdef NEED_O_BINARY
+ #include <io.h> /* for setmode() prototype */
+ #endif
+diff --git a/genisoimage/jte.c b/genisoimage/jte.c
+index 0dff289..1f03ad3 100644
+--- a/genisoimage/jte.c
++++ b/genisoimage/jte.c
+@@ -36,6 +36,8 @@
+ #include "vms.h"
+ #endif
+
++#include "md5.h"
++
+ /* Different types used in building our state list below */
+ #define JTET_FILE_MATCH 1
+ #define JTET_NOMATCH 2
+--
+2.37.3
+
diff --git a/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Add-missing-extern-definition.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Add-missing-extern-definition.patch
new file mode 100644
index 0000000000..809d3afd76
--- /dev/null
+++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-genisoimage-Add-missing-extern-definition.patch
@@ -0,0 +1,29 @@
+From fd5251cc8b82ce7a5f907c5129969097d75609fe Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 17:38:59 -0700
+Subject: [PATCH] genisoimage: Add missing extern definition
+
+Fixed build with gcc10
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ genisoimage/genisoimage.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/genisoimage/genisoimage.h b/genisoimage/genisoimage.h
+index bbedfb0..82c859b 100644
+--- a/genisoimage/genisoimage.h
++++ b/genisoimage/genisoimage.h
+@@ -376,7 +376,7 @@ extern int use_fileversion;
+ extern int split_SL_component;
+ extern int split_SL_field;
+ extern char *trans_tbl;
+-char *outfile;
++extern char *outfile;
+
+ #define JMAX 64 /* maximum Joliet file name length (spec) */
+ #define JLONGMAX 103 /* out of spec Joliet file name length */
+--
+2.28.0
+
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/0001-install-netscsid-to-bin-for-nativesdk.patch b/meta-oe/recipes-multimedia/cdrkit/files/0001-install-netscsid-to-bin-for-nativesdk.patch
new file mode 100644
index 0000000000..fdf1563b38
--- /dev/null
+++ b/meta-oe/recipes-multimedia/cdrkit/files/0001-install-netscsid-to-bin-for-nativesdk.patch
@@ -0,0 +1,28 @@
+From 6b698b7c1045d279fe24818d45c67d9884d5fd81 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 7 May 2021 15:10:04 +0800
+Subject: [PATCH] install netscsid to bin for nativesdk
+
+For Yocto, the nativesdk does not have sbin dir, use bin to relpace
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ netscsid/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/netscsid/CMakeLists.txt b/netscsid/CMakeLists.txt
+index f6bddf1..cf23312 100644
+--- a/netscsid/CMakeLists.txt
++++ b/netscsid/CMakeLists.txt
+@@ -9,5 +9,5 @@ ADD_EXECUTABLE (netscsid netscsid.c)
+ #SET_SOURCE_FILES_PROPERTIES(netscsid.c )
+ TARGET_LINK_LIBRARIES(netscsid ${EXTRA_LIBS} )
+ #SET_TARGET_PROPERTIES(netscsid PROPERTIES SKIP_BUILD_RPATH TRUE)
+-INSTALL(TARGETS netscsid DESTINATION sbin)
++INSTALL(TARGETS netscsid DESTINATION bin)
+
+--
+2.27.0
+
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/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch b/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch
deleted file mode 100644
index 130f3c2290..0000000000
--- a/meta-oe/recipes-multimedia/esound/esound/0001-audio_alsa09.c-alsa-drain-fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 945df2da87a412758ceab4ac5711abbb269a47c1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 8 Jun 2017 23:09:51 -0700
-Subject: [PATCH] audio_alsa09.c: alsa drain fix
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- audio_alsa09.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/audio_alsa09.c b/audio_alsa09.c
-index 534e3db..d9450e6 100644
---- a/audio_alsa09.c
-+++ b/audio_alsa09.c
-@@ -506,7 +506,7 @@ void esd_audio_flush(void)
- }
-
- if (alsa_playback_handle != NULL)
-- snd_pcm_drain( alsa_playback_handle );
-+ snd_pcm_drop( alsa_playback_handle );
-
- if (alsadbg)
- print_state();
diff --git a/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch b/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch
deleted file mode 100644
index 10a6ba03ae..0000000000
--- a/meta-oe/recipes-multimedia/esound/esound/0002-Undefine-open64-and-fopen64.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From e218d5a0a545ebb9623d62da5cfca478f9c90fce Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 8 Jun 2017 23:11:31 -0700
-Subject: [PATCH] Undefine open64 and fopen64
-
-Since the signatures do not match with libc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- esddsp.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/esddsp.c b/esddsp.c
-index d3c6ea9..17b5949 100644
---- a/esddsp.c
-+++ b/esddsp.c
-@@ -290,6 +290,7 @@ open (const char *pathname, int flags, ...)
- return open_wrapper(func, pathname, flags, mode);
- }
-
-+#undef open64
- int
- open64 (const char *pathname, int flags, ...)
- {
-@@ -374,6 +375,7 @@ fopen (const char *path, const char *mode)
- return fopen_wrapper(func, path, mode);
- }
-
-+#undef fopen64
- FILE *
- fopen64 (const char *path, const char *mode)
- {
diff --git a/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch b/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch
deleted file mode 100644
index 83365b4e6f..0000000000
--- a/meta-oe/recipes-multimedia/esound/esound/0003-Use-I-path-in-configure.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 89c62db54716d514e639f9e1bfd3c1f7d82641dd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 8 Jun 2017 23:12:36 -0700
-Subject: [PATCH] Use -I=<path> in configure
-
-This helps to use proper sysroot in
-cross build environment
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 5645dce..d374cda 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -208,7 +208,7 @@ if test "x$enable_local_sound" = "xyes"; then
- AC_CHECK_HEADERS(CoreAudio/CoreAudio.h)
- # mme_api.h directly includes other files from the mme subdir
- xCPPFLAGS="$CPPFLAGS"
-- CPPFLAGS="$CPPFLAGS -I/usr/include/mme"
-+ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme"
- AC_CHECK_HEADERS(mme/mme_api.h)
- CPPFLAGS="$xCPPFLAGS"
- AM_PATH_ARTS(, HAVE_ARTS=yes, HAVE_ARTS=no)
-@@ -269,7 +269,7 @@ if test "x$enable_local_sound" = "xyes"; then
- osf*)
- found_sound=yes
- AC_DEFINE(DRIVER_OSF, 1, [Defined if OSF backend is enabled])
-- CPPFLAGS="$CPPFLAGS -I/usr/include/mme"
-+ CPPFLAGS="$CPPFLAGS -I=/usr/include/mme"
- SOUND_LIBS=-lmme
- esac
- fi
diff --git a/meta-oe/recipes-multimedia/esound/esound/no-docs.patch b/meta-oe/recipes-multimedia/esound/esound/no-docs.patch
deleted file mode 100644
index 8a546e6db1..0000000000
--- a/meta-oe/recipes-multimedia/esound/esound/no-docs.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-From bfcaa9bdc70440db96f10afc0c2a792870f75acb Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Fri, 3 Jun 2011 19:39:02 +0200
-
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 08c4c94..ede9d26 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -1,5 +1,5 @@
-
--SUBDIRS = docs
-+SUBDIRS =
-
- ACLOCAL_AMFLAGS = -I m4
-
diff --git a/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb b/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb
deleted file mode 100644
index 0ddf94f2da..0000000000
--- a/meta-oe/recipes-multimedia/esound/esound_0.2.41.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Enlightened Sound Daemon"
-SECTION = "gpe/base"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605"
-DEPENDS = "audiofile"
-
-inherit gnome
-
-SRC_URI = "ftp://ftp.gnome.org/pub/GNOME/sources/esound/0.2/${P}.tar.bz2;name=archive \
- file://no-docs.patch \
- file://0001-audio_alsa09.c-alsa-drain-fix.patch \
- file://0002-Undefine-open64-and-fopen64.patch \
- file://0003-Use-I-path-in-configure.patch \
- "
-SRC_URI[archive.md5sum] = "8d9aad3d94d15e0d59ba9dc0ea990c6c"
-SRC_URI[archive.sha256sum] = "5eb5dd29a64b3462a29a5b20652aba7aa926742cef43577bf0796b787ca34911"
-
-EXTRA_OECONF += " \
- --disable-arts \
- --disable-artstest \
-"
-EXTRA_OECONF_remove = "--disable-schemas-install"
-
-CFLAGS += "-lm"
-
-PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6,"
-PACKAGECONFIG[libwrap] = "--with-libwrap,--without-libwrap,tcp-wrappers,"
-PACKAGECONFIG[alsa] = "--enable-alsa --disable-oss,--disable-alsa,alsa-lib,"
-
-PACKAGECONFIG ??= "libwrap alsa \
- ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
-"
-PACKAGES =+ "esddsp esd esd-utils"
-
-FILES_esddsp = "${bindir}/esddsp ${libdir}/libesddsp.so.*"
-FILES_esd = "${bindir}/esd"
-FILES_esd-utils = "${bindir}/*"
diff --git a/meta-oe/recipes-multimedia/faad2/faad2_2.10.0.bb b/meta-oe/recipes-multimedia/faad2/faad2_2.10.0.bb
new file mode 100644
index 0000000000..1b42360739
--- /dev/null
+++ b/meta-oe/recipes-multimedia/faad2/faad2_2.10.0.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${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.7.bb b/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb
deleted file mode 100644
index 63e590c9e0..0000000000
--- a/meta-oe/recipes-multimedia/faad2/faad2_2.7.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Library for reading some sort of media format"
-SECTION = "libs"
-LICENSE = "GPLv2"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=381c8cbe277a7bc1ee2ae6083a04c958"
-
-PR = "r1"
-
-inherit autotools
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/faac/faad2-src/faad2-${PV}/${BP}.tar.bz2;name=faad2 \
-"
-
-SRC_URI[faad2.md5sum] = "4c332fa23febc0e4648064685a3d4332"
-SRC_URI[faad2.sha256sum] = "14561b5d6bc457e825bfd3921ae50a6648f377a9396eaf16d4b057b39a3f63b5"
-
-PACKAGES =+ "libfaad libfaad-dev libmp4ff libmp4ff-dev"
-
-FILES_${PN} = "${bindir}/faad"
-
-FILES_libfaad = "${libdir}/libfaad.so.*"
-FILES_libfaad-dev = "${libdir}/libfaad.so ${libdir}/libfaad.la ${includedir}/faad.h"
-FILES_libfaad-staticdev = "${libdir}/libfaad.a"
-
-FILES_libmp4ff = "${libdir}/libmp4ff.so.*"
-FILES_libmp4ff-dev = "${libdir}/libmp4ff.so ${libdir}/libmp4ff.la ${includedir}/mp4ff.h"
-FILES_libmp4ff-staticdev = "${libdir}/libmp4ff.a"
-
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 fc80cc0acf..a7d645f59f 100644
--- a/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
+++ b/meta-oe/recipes-multimedia/id3lib/id3lib_3.8.3.bb
@@ -1,18 +1,53 @@
SUMMARY = "Library for interacting with ID3 tags"
SECTION = "libs/multimedia"
-LICENSE = "LGPLv2+"
+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 \
- http://ftp.de.debian.org/debian/pool/main/i/id3lib3.8.3/id3lib3.8.3_3.8.3-7.2.diff.gz;name=patch \
+ ${DEBIAN_MIRROR}/main/i/id3lib3.8.3/id3lib3.8.3_3.8.3-16.2.debian.tar.xz;name=patch;subdir=${BP} \
file://acdefine.patch \
"
SRC_URI[archive.md5sum] = "19f27ddd2dda4b2d26a559a4f0f402a7"
SRC_URI[archive.sha256sum] = "2749cc3c0cd7280b299518b1ddf5a5bcfe2d1100614519b68702230e26c7d079"
-SRC_URI[patch.md5sum] = "805c0320a2efb21c40ce06fa13cd7c4b"
-SRC_URI[patch.sha256sum] = "9f03b59ccc8826a5be55a3dcde2f889067d58bdc72bf846416a198c9b933704c"
+SRC_URI[patch.md5sum] = "997c764d3be11c9a51779d93facf1118"
+SRC_URI[patch.sha256sum] = "ac2ee23ec89ba2af51d2c6dd5b1b6bf9f8a9f813de251bc182941439a4053176"
inherit autotools
+
+# Unlike other Debian packages, id3lib*.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"
+id3lib_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}"
+
+# We invoke base do_patch at end, to incorporate any local patch
+python do_patch() {
+ bb.build.exec_func('id3lib_do_patch', d)
+ bb.build.exec_func('patch_do_patch', d)
+}
diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch b/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch
deleted file mode 100644
index d17d311bdb..0000000000
--- a/meta-oe/recipes-multimedia/jack/a2jmidid/0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 488dc9b00239976caac6bd9ed76b38d9d1659dd9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 4 Oct 2016 23:44:49 +0200
-Subject: [PATCH] wscript: add pthread library dependency to fix linking
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Stolen from [1]
-
-[1] http://pkgs.fedoraproject.org/cgit/rpms/a2jmidid.git/tree/a2jmidid-linking.patch
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- wscript | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/wscript b/wscript
-index 664625b..66a532a 100644
---- a/wscript
-+++ b/wscript
-@@ -67,6 +67,7 @@ def configure(conf):
- conf.env['DBUS_ENABLED'] = False
-
- conf.env['LIB_DL'] = ['dl']
-+ conf.env['LIB_PTHREAD'] = ['pthread']
-
- #conf.check_header('expat.h', mandatory=True)
- #conf.env['LIB_EXPAT'] = ['expat']
-@@ -152,7 +153,7 @@ def build(bld):
-
- prog.includes = '.' # make waf dependency tracking work
- prog.target = 'a2jmidid'
-- prog.uselib = 'ALSA JACK DL'
-+ prog.uselib = 'ALSA JACK DL PTHREAD'
- if bld.env()['DBUS_ENABLED']:
- prog.uselib += " DBUS-1"
- prog = bld.create_obj('cc', 'program')
---
-2.5.5
-
diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch b/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch
deleted file mode 100644
index b344f5427b..0000000000
--- a/meta-oe/recipes-multimedia/jack/a2jmidid/0002-aarch64.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Consider compiler define for aarch64
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status:Pending
-
-Index: a2jmidid-8/sigsegv.c
-===================================================================
---- a2jmidid-8.orig/sigsegv.c
-+++ a2jmidid-8/sigsegv.c
-@@ -91,18 +91,18 @@ static void signal_segv(int signum, sigi
- a2j_error("info.si_errno = %d", info->si_errno);
- a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]);
- a2j_error("info.si_addr = %p", info->si_addr);
--#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__)
-+#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__)
- for(i = 0; i < NGREG; i++)
- a2j_error("reg[%02d] = 0x" REGFORMAT, i,
- #if defined(__powerpc__)
- ucontext->uc_mcontext.uc_regs[i]
--#elif defined(__sparc__) && defined(__arch64__)
-+#elif defined(__sparc__) || defined(__arch64__)
- ucontext->uc_mcontext.mc_gregs[i]
- #else
- ucontext->uc_mcontext.gregs[i]
- #endif
- );
--#endif /* alpha, ia64, kFreeBSD, arm, hppa */
-+#endif /* alpha, ia64, kFreeBSD, arm, hppa aarch64 */
-
- #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64)
- # if defined(SIGSEGV_STACK_IA64)
diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid/ppc_musl_ucontext.patch b/meta-oe/recipes-multimedia/jack/a2jmidid/ppc_musl_ucontext.patch
new file mode 100644
index 0000000000..1fa64812ef
--- /dev/null
+++ b/meta-oe/recipes-multimedia/jack/a2jmidid/ppc_musl_ucontext.patch
@@ -0,0 +1,19 @@
+Add musl/ppc mcontext differences specific checks to choose
+correct gregs and context structure definitions
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/sigsegv.c
++++ b/sigsegv.c
+@@ -95,7 +95,11 @@ static void signal_segv(int signum, sigi
+ for(i = 0; i < NGREG; i++)
+ a2j_error("reg[%02d] = 0x" REGFORMAT, i,
+ #if defined(__powerpc__) && !defined(__powerpc64__)
++# if defined(__GLIBC__)
+ ucontext->uc_mcontext.uc_regs[i]
++# else
++ ucontext->uc_regs->gregs[i]
++# endif
+ #elif defined(__powerpc64__)
+ ucontext->uc_mcontext.gp_regs[i]
+ #elif defined(__sparc__) && defined(__arch64__)
diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid/riscv_ucontext.patch b/meta-oe/recipes-multimedia/jack/a2jmidid/riscv_ucontext.patch
new file mode 100644
index 0000000000..af6612e857
--- /dev/null
+++ b/meta-oe/recipes-multimedia/jack/a2jmidid/riscv_ucontext.patch
@@ -0,0 +1,24 @@
+Add riscv specific checks to choose correct gregs and context structure definitions
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/sigsegv.c
++++ b/sigsegv.c
+@@ -91,7 +91,7 @@ static void signal_segv(int signum, sigi
+ a2j_error("info.si_errno = %d", info->si_errno);
+ a2j_error("info.si_code = %d (%s)", info->si_code, si_codes[info->si_code]);
+ a2j_error("info.si_addr = %p", info->si_addr);
+-#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__)
++#if !defined(__alpha__) && !defined(__ia64__) && !defined(__FreeBSD_kernel__) && !defined(__arm__) && !defined(__hppa__) && !defined(__sh__) && !defined(__aarch64__) && !defined(__riscv)
+ for(i = 0; i < NGREG; i++)
+ a2j_error("reg[%02d] = 0x" REGFORMAT, i,
+ #if defined(__powerpc__) && !defined(__powerpc64__)
+@@ -104,7 +104,7 @@ static void signal_segv(int signum, sigi
+ ucontext->uc_mcontext.gregs[i]
+ #endif
+ );
+-#endif /* alpha, ia64, kFreeBSD, arm, hppa, aarch64 */
++#endif /* alpha, ia64, kFreeBSD, arm, hppa, aarch64 riscv */
+
+ #if defined(SIGSEGV_STACK_X86) || defined(SIGSEGV_STACK_IA64)
+ # if defined(SIGSEGV_STACK_IA64)
diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb b/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb
deleted file mode 100644
index 59b73f8e8b..0000000000
--- a/meta-oe/recipes-multimedia/jack/a2jmidid_8.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "a2jmidid is daemon for exposing ALSA sequencer applications as JACK MIDI"
-SECTION = "libs/multimedia"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = " \
- file://gpl2.txt;md5=751419260aa954499f7abaabaa882bbe \
-"
-
-DEPENDS = "alsa-lib jack dbus"
-DEPENDS_append_libc-musl = " libexecinfo"
-
-SRC_URI = " \
- http://download.gna.org/${BPN}/${BPN}-${PV}.tar.bz2 \
- file://0001-wscript-add-pthread-library-dependency-to-fix-linkin.patch \
- file://0002-aarch64.patch \
-"
-SRC_URI[md5sum] = "9cf4edbc3ad2ddeeaf6c8c1791ff3ddd"
-SRC_URI[sha256sum] = "2a9635f62aabc59edb54ada07048dd47e896b90caff94bcee710d3582606f55f"
-
-inherit waf pkgconfig
-
-LDFLAGS_append_libc-musl = " -lexecinfo"
-
-export LINKFLAGS="${LDFLAGS}"
-
-FILES_${PN} += "${datadir}/dbus-1/services"
diff --git a/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb b/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb
new file mode 100644
index 0000000000..bfdf26ed46
--- /dev/null
+++ b/meta-oe/recipes-multimedia/jack/a2jmidid_9.bb
@@ -0,0 +1,29 @@
+SUMMARY = "a2jmidid is daemon for exposing ALSA sequencer applications as JACK MIDI"
+SECTION = "libs/multimedia"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=751419260aa954499f7abaabaa882bbe \
+"
+
+DEPENDS = "alsa-lib jack dbus"
+DEPENDS:append:libc-musl = " libexecinfo"
+
+SRCREV = "de37569c926c5886768f892c019e3f0468615038"
+SRC_URI = " \
+ git://github.com/linuxaudio/a2jmidid;protocol=https;branch=master \
+ file://riscv_ucontext.patch \
+ file://ppc_musl_ucontext.patch \
+"
+
+S = "${WORKDIR}/git"
+
+inherit meson pkgconfig
+
+EXTRA_OEMESON = "-Db_lto=false"
+
+LDFLAGS:append:libc-musl = " -lexecinfo"
+
+export LINKFLAGS="${LDFLAGS}"
+
+FILES:${PN} += "${datadir}/dbus-1/services"
diff --git a/meta-oe/recipes-multimedia/jack/jack_1.19.22.bb b/meta-oe/recipes-multimedia/jack/jack_1.19.22.bb
new file mode 100644
index 0000000000..b85b7993d0
--- /dev/null
+++ b/meta-oe/recipes-multimedia/jack/jack_1.19.22.bb
@@ -0,0 +1,53 @@
+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 = "4f58969432339a250ce87fe855fb962c67d00ddb"
+
+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_git.bb b/meta-oe/recipes-multimedia/jack/jack_git.bb
deleted file mode 100644
index 11da6b1be0..0000000000
--- a/meta-oe/recipes-multimedia/jack/jack_git.bb
+++ /dev/null
@@ -1,38 +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 = "GPLv2 & LGPLv2.1"
-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"
-SRCREV = "c1647819eed6d11f94b21981d9c869629299f357"
-PV = "1.9.12"
-S = "${WORKDIR}/git"
-
-inherit waf pkgconfig
-
-PACKAGECONFIG ??= "alsa"
-PACKAGECONFIG[alsa] = "--alsa=yes,--alsa=no,alsa-lib"
-PACKAGECONFIG[opus] = "--opus=yes,--opus=no,libopus"
-
-# portaudio is for windows builds only
-EXTRA_OECONF = "--portaudio=no"
-
-PACKAGES =+ "libjack jack-server jack-utils"
-
-RDEPENDS_jack-dev_remove = "${PN} (= ${EXTENDPKGV})"
-
-FILES_libjack = "${libdir}/*.so.* ${libdir}/jack/*.so"
-FILES_jack-server = "${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.14.0.bb b/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
deleted file mode 100644
index 3454a5c270..0000000000
--- a/meta-oe/recipes-multimedia/libass/libass_0.14.0.bb
+++ /dev/null
@@ -1,30 +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 = "enca fontconfig freetype libpng fribidi"
-
-SRC_URI = "git://github.com/libass/libass.git"
-SRCREV = "73284b676b12b47e17af2ef1b430527299e10c17"
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[harfbuzz] = "--enable-harfbuzz,--disable-harfbuzz,harfbuzz"
-
-EXTRA_OECONF = " \
- --enable-fontconfig \
-"
-
-# Disable compiling with ASM for x86 to avoid textrel
-EXTRA_OECONF_append_x86 = " --disable-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.4.0.bb b/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb
deleted file mode 100644
index 91fe69338e..0000000000
--- a/meta-oe/recipes-multimedia/libburn/libburn_1.4.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Library for reading, mastering and writing optical discs"
-HOMEPAGE = "http://libburnia-project.org/"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-
-SRC_URI = "http://files.libburnia-project.org/releases/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "82ff94bb04e78eac9b12c7546f005d6f"
-SRC_URI[sha256sum] = "6c975abae4ae1f80e47fc5d1e235f85157f73e954c84627a5ef85d8b1b95ae94"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb b/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb
deleted file mode 100644
index 82a16cc94a..0000000000
--- a/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+0.93+1.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "library to read digital audio CDs with error correction"
-HOMEPAGE = "http://www.gnu.org/software/libcdio/"
-SECTION = "libs"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-DEPENDS = "libcdio"
-
-SRC_URI = "${GNU_MIRROR}/libcdio/${BP}.tar.bz2"
-SRC_URI[md5sum] = "0255aa50e660db7f2c39658b9c565814"
-SRC_URI[sha256sum] = "ec1d9b1d5a28cc042f2cb33a7cc0a2b5ce5525f102bc4c15db1fac322559a493"
-
-inherit autotools pkgconfig
-
-PACKAGES += "${PN}-utils"
-
-FILES_${PN} = "${libdir}/${BPN}${SOLIB}"
-FILES_${PN}-utils = "${bindir}/*"
-
-python libcdio_split_packages() {
- libdir = d.expand('${libdir}')
- do_split_packages(d, libdir, '^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True)
-}
-
-PACKAGESPLITFUNCS =+ "libcdio_split_packages"
diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+2.0.1.bb b/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+2.0.1.bb
new file mode 100644
index 0000000000..53404e54a8
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libcdio/libcdio-paranoia_10.2+2.0.1.bb
@@ -0,0 +1,24 @@
+SUMMARY = "library to read digital audio CDs with error correction"
+HOMEPAGE = "http://www.gnu.org/software/libcdio/"
+BUGTRUCKER = "https://github.com/rocky/libcdio-paranoia/issues/"
+SECTION = "libs"
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+DEPENDS = "libcdio"
+
+SRC_URI = "${GNU_MIRROR}/libcdio/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "33b1cf305ccfbfd03b43936975615000ce538b119989c4bec469577570b60e8a"
+
+inherit autotools pkgconfig
+
+PACKAGES += "${PN}-utils"
+
+FILES:${PN} = "${libdir}/${BPN}${SOLIB}"
+FILES:${PN}-utils = "${bindir}/*"
+
+python libcdio_split_packages() {
+ libdir = d.expand('${libdir}')
+ do_split_packages(d, libdir, r'^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True)
+}
+
+PACKAGESPLITFUNCS =+ "libcdio_split_packages"
diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio/0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch b/meta-oe/recipes-multimedia/libcdio/libcdio/0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch
new file mode 100644
index 0000000000..09e7dc3dfb
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libcdio/libcdio/0001-Fix-a-few-Werror-format-security-errors-with-mvprint.patch
@@ -0,0 +1,40 @@
+From e5e54be286bf6d8336b747503c803750bc674c57 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 01:28:18 -0700
+Subject: [PATCH] Fix a few -Werror=format-security errors with mvprintw()
+
+In all these places a non-constant is used as a format string which
+compiler complains about. Fix by using "%s" as format.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/cdda-player.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/cdda-player.c b/src/cdda-player.c
+index 69eddee..8834d60 100644
+--- a/src/cdda-player.c
++++ b/src/cdda-player.c
+@@ -298,7 +298,7 @@ action(const char *psz_action)
+ psz_action);
+ else
+ snprintf(psz_action_line, sizeof(psz_action_line), "%s", "" );
+- mvprintw(LINE_ACTION, 0, psz_action_line);
++ mvprintw(LINE_ACTION, 0, "%s", psz_action_line);
+ clrtoeol();
+ refresh();
+ }
+@@ -1029,10 +1029,10 @@ display_tracks(void)
+ }
+ if (sub.track == i) {
+ attron(A_STANDOUT);
+- mvprintw(i_line++, 0, line);
++ mvprintw(i_line++, 0, "%s", line);
+ attroff(A_STANDOUT);
+ } else
+- mvprintw(i_line++, 0, line);
++ mvprintw(i_line++, 0, "%s", line);
+ clrtoeol();
+ }
+ }
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.0.0.bb b/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb
deleted file mode 100644
index 6bf64d6636..0000000000
--- a/meta-oe/recipes-multimedia/libcdio/libcdio_2.0.0.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access."
-HOMEPAGE = "http://www.gnu.org/software/libcdio/"
-SECTION = "libs"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "0cb25905113b930e4539d2f4eb6574b0"
-SRC_URI[sha256sum] = "1b481b5da009bea31db875805665974e2fc568e2b2afa516f4036733657cf958"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "cdda-player"
-PACKAGECONFIG[cdda-player] = "--with-cdda-player,--without-cdda-player,ncurses"
-PACKAGECONFIG[cddb] = "--enable-cddb,--disable-cddb,libcddb"
-PACKAGECONFIG[vcd-info] = "--enable-vcd-info,--disable-vcd-info,vcdimager"
-
-PACKAGES += "${PN}-utils"
-
-FILES_${PN} = "${libdir}/${BPN}${SOLIB}"
-FILES_${PN}-utils = "${bindir}/*"
-
-python libcdio_split_packages() {
- libdir = d.expand('${libdir}')
- do_split_packages(d, libdir, '^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True)
-}
-
-PACKAGESPLITFUNCS =+ "libcdio_split_packages"
diff --git a/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb b/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
new file mode 100644
index 0000000000..8562462cba
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libcdio/libcdio_2.1.0.bb
@@ -0,0 +1,35 @@
+SUMMARY = "The GNU Compact Disc Input and Control library (libcdio) contains a library for CD-ROM and CD image access."
+HOMEPAGE = "http://www.gnu.org/software/libcdio/"
+SECTION = "libs"
+LICENSE = "GPL-3.0-or-later"
+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"
+SRC_URI[sha256sum] = "8550e9589dbd594bfac93b81ecf129b1dc9d0d51e90f9696f1b2f9b2af32712b"
+
+inherit autotools pkgconfig
+
+PACKAGECONFIG ??= "cdda-player"
+PACKAGECONFIG[cdda-player] = "--with-cdda-player,--without-cdda-player,ncurses"
+PACKAGECONFIG[cddb] = "--enable-cddb,--disable-cddb,libcddb"
+PACKAGECONFIG[vcd-info] = "--enable-vcd-info,--disable-vcd-info,vcdimager"
+
+# add -D_LARGEFILE64_SOURCE for 32bit targets
+CFLAGS += "${@['-D_LARGEFILE64_SOURCE',''][d.getVar('SITEINFO_BITS') != '32']}"
+
+PACKAGES += "${PN}-utils"
+
+FILES:${PN} = "${libdir}/${BPN}${SOLIB}"
+FILES:${PN}-utils = "${bindir}/*"
+
+python libcdio_split_packages() {
+ libdir = d.expand('${libdir}')
+ do_split_packages(d, libdir, r'^lib(.*)\.so\..*', 'lib%s', 'libcdio %s library', extra_depends='', allow_links=True)
+}
+
+PACKAGESPLITFUNCS =+ "libcdio_split_packages"
diff --git a/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb b/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb
deleted file mode 100644
index 0506725993..0000000000
--- a/meta-oe/recipes-multimedia/libdvdread/libdvdread_5.0.3.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "DVD access multimeda library"
-SECTION = "libs/multimedia"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27"
-SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2"
-
-SRC_URI[md5sum] = "b7b7d2a782087ed2a913263087083715"
-SRC_URI[sha256sum] = "321cdf2dbdc83c96572bc583cd27d8c660ddb540ff16672ecb28607d018ed82b"
-
-inherit autotools lib_package binconfig pkgconfig
-
-CONFIGUREOPTS_remove = "--disable-silent-rules"
-
diff --git a/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb b/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb
new file mode 100644
index 0000000000..9090cabb12
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libdvdread/libdvdread_6.1.3.bb
@@ -0,0 +1,11 @@
+SUMMARY = "DVD access multimeda library"
+SECTION = "libs/multimedia"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=64e753fa7d1ca31632bc383da3b57c27"
+
+SRC_URI = "http://download.videolan.org/pub/videolan/libdvdread/${PV}/libdvdread-${PV}.tar.bz2"
+SRC_URI[sha256sum] = "ce35454997a208cbe50e91232f0e73fb1ac3471965813a13b8730a8f18a15369"
+
+inherit autotools lib_package binconfig pkgconfig
+
+CONFIGUREOPTS:remove = "--disable-silent-rules"
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch b/meta-oe/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch
new file mode 100644
index 0000000000..54f49f6f23
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag/0001-Fix-gperf-3.1-incompatibility.patch
@@ -0,0 +1,40 @@
+From 91fcf66b9182c75cd2b96d88991d5a1c6307d4b4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 2 Aug 2017 16:27:52 +0300
+Subject: [PATCH] Fix gperf 3.1 incompatibility.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ compat.h | 2 +-
+ frametype.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/compat.h b/compat.h
+index 8af71ec..b3d80d9 100644
+--- a/compat.h
++++ b/compat.h
+@@ -34,7 +34,7 @@ struct id3_compat {
+ };
+
+ struct id3_compat const *id3_compat_lookup(register char const *,
+- register unsigned int);
++ register size_t);
+
+ int id3_compat_fixup(struct id3_tag *);
+
+diff --git a/frametype.h b/frametype.h
+index dd064b2..b5b7593 100644
+--- a/frametype.h
++++ b/frametype.h
+@@ -37,6 +37,6 @@ extern struct id3_frametype const id3_frametype_unknown;
+ extern struct id3_frametype const id3_frametype_obsolete;
+
+ struct id3_frametype const *id3_frametype_lookup(register char const *,
+- register unsigned int);
++ register size_t);
+
+ # endif
+--
+2.13.2
+
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch b/meta-oe/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch
new file mode 100644
index 0000000000..10e089018c
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag/10_utf16.patch
@@ -0,0 +1,34 @@
+libid3tag: patch for CVE-2004-2779
+
+The patch comes from
+https://sources.debian.org/patches/libid3tag/0.15.1b-13/10_utf16.dpatch
+
+Upstream-Status: Pending
+
+CVE: CVE-2004-2779
+CVE: CVE-2017-11551
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+diff -urNad libid3tag-0.15.1b/utf16.c /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c
+--- libid3tag-0.15.1b/utf16.c 2006-01-13 15:26:29.000000000 +0100
++++ /tmp/dpep.tKvO7a/libid3tag-0.15.1b/utf16.c 2006-01-13 15:27:19.000000000 +0100
+@@ -282,5 +282,18 @@
+
+ free(utf16);
+
++ if (end == *ptr && length % 2 != 0)
++ {
++ /* We were called with a bogus length. It should always
++ * be an even number. We can deal with this in a few ways:
++ * - Always give an error.
++ * - Try and parse as much as we can and
++ * - return an error if we're called again when we
++ * already tried to parse everything we can.
++ * - tell that we parsed it, which is what we do here.
++ */
++ (*ptr)++;
++ }
++
+ return ucs4;
+ }
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch b/meta-oe/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
new file mode 100644
index 0000000000..38d40c3632
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag/addpkgconfig.patch
@@ -0,0 +1,43 @@
+Upstream-Status: Inappropriate [configuration]
+
+Index: libid3tag-0.15.1b/Makefile.am
+===================================================================
+--- libid3tag-0.15.1b.orig/Makefile.am 2009-07-29 09:29:20.000000000 +0100
++++ libid3tag-0.15.1b/Makefile.am 2009-07-29 09:29:47.000000000 +0100
+@@ -27,6 +27,9 @@
+ lib_LTLIBRARIES = libid3tag.la
+ include_HEADERS = id3tag.h
+
++pkgconfigdir = $(libdir)/pkgconfig
++pkgconfig_DATA = id3tag.pc
++
+ ## From the libtool documentation on library versioning:
+ ##
+ ## CURRENT
+Index: libid3tag-0.15.1b/configure.ac
+===================================================================
+--- libid3tag-0.15.1b.orig/configure.ac 2009-07-29 09:27:15.000000000 +0100
++++ libid3tag-0.15.1b/configure.ac 2009-07-29 09:27:45.000000000 +0100
+@@ -201,5 +201,5 @@
+ dnl AC_SUBST(LTLIBOBJS)
+
+ AC_CONFIG_FILES([Makefile msvc++/Makefile \
+- libid3tag.list])
++ libid3tag.list id3tag.pc])
+ AC_OUTPUT
+Index: libid3tag-0.15.1b/id3tag.pc.in
+===================================================================
+--- /dev/null 1970-01-01 00:00:00.000000000 +0000
++++ libid3tag-0.15.1b/id3tag.pc.in 2009-07-29 09:29:10.000000000 +0100
+@@ -0,0 +1,11 @@
++prefix=@prefix@
++exec_prefix=@exec_prefix@
++libdir=@libdir@
++includedir=@includedir@
++
++Name: id3tag
++Description: ID3 tag reading library
++Requires:
++Version: @VERSION@
++Libs: -L${libdir} -lid3tag -lz
++Cflags: -I${includedir}
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch b/meta-oe/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
new file mode 100644
index 0000000000..1895748d1d
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag/cflags_filter.patch
@@ -0,0 +1,19 @@
+configure contains CFLAGS filtering code which was removing our prefix-map
+flags. We need those to generate reproducible binaries. Allow them through.
+
+Upstream-Status: Pending
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -99,6 +99,10 @@ do
+ -mno-cygwin)
+ shift
+ ;;
++ -fmacro-prefix-map*|-fdebug-prefix-map*|-ffile-prefix-map*)
++ CFLAGS="$CFLAGS $1"
++ shift
++ ;;
+ -m*)
+ arch="$arch $1"
+ shift
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch b/meta-oe/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
new file mode 100644
index 0000000000..2845fb1d3a
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag/obsolete_automake_macros.patch
@@ -0,0 +1,15 @@
+Upstream-Status: Submitted [https://sourceforge.net/tracker/?func=detail&aid=3599280&group_id=12349&atid=112349]
+
+Signed-off-by: Marko Lindqvist <cazfi74@gmail.com>
+diff -Nurd libid3tag-0.15.1b/configure.ac libid3tag-0.15.1b/configure.ac
+--- libid3tag-0.15.1b/configure.ac 2004-01-24 01:22:46.000000000 +0200
++++ libid3tag-0.15.1b/configure.ac 2013-01-03 06:41:02.734835014 +0200
+@@ -28,7 +28,7 @@
+
+-AM_INIT_AUTOMAKE
++AM_INIT_AUTOMAKE([foreign])
+
+-AM_CONFIG_HEADER([config.h])
++AC_CONFIG_HEADERS([config.h])
+
+ dnl System type.
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch b/meta-oe/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch
new file mode 100644
index 0000000000..f0867b5f01
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag/unknown-encoding.patch
@@ -0,0 +1,39 @@
+In case of an unknown/invalid encoding, id3_parse_string() will
+return NULL, but the return value wasn't checked resulting
+in segfault in id3_ucs4_length(). This is the only place
+the return value wasn't checked.
+
+Patch taken from Debian:
+https://sources.debian.org/patches/libid3tag/0.15.1b-14/11_unknown_encoding.dpatch/
+
+CVE: CVE-2017-11550
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+diff -urNad libid3tag-0.15.1b~/compat.gperf libid3tag-0.15.1b/compat.gperf
+--- libid3tag-0.15.1b~/compat.gperf 2004-01-23 09:41:32.000000000 +0000
++++ libid3tag-0.15.1b/compat.gperf 2007-01-14 14:36:53.000000000 +0000
+@@ -236,6 +236,10 @@
+
+ encoding = id3_parse_uint(&data, 1);
+ string = id3_parse_string(&data, end - data, encoding, 0);
++ if (!string)
++ {
++ continue;
++ }
+
+ if (id3_ucs4_length(string) < 4) {
+ free(string);
+diff -urNad libid3tag-0.15.1b~/parse.c libid3tag-0.15.1b/parse.c
+--- libid3tag-0.15.1b~/parse.c 2004-01-23 09:41:32.000000000 +0000
++++ libid3tag-0.15.1b/parse.c 2007-01-14 14:37:34.000000000 +0000
+@@ -165,6 +165,9 @@
+ case ID3_FIELD_TEXTENCODING_UTF_8:
+ ucs4 = id3_utf8_deserialize(ptr, length);
+ break;
++ default:
++ /* FIXME: Unknown encoding! Print warning? */
++ return NULL;
+ }
+
+ if (ucs4 && !full) {
diff --git a/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb b/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
new file mode 100644
index 0000000000..2f7edfb75c
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libid3tag/libid3tag_0.15.1b.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Library for interacting with ID3 tags in MP3 files"
+HOMEPAGE = "http://sourceforge.net/projects/mad/"
+BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
+ file://COPYRIGHT;md5=5e6279efb87c26c6e5e7a68317a6a87a \
+ 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 \
+ file://obsolete_automake_macros.patch \
+ file://0001-Fix-gperf-3.1-incompatibility.patch \
+ file://10_utf16.patch \
+ file://unknown-encoding.patch \
+ file://cflags_filter.patch \
+ "
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/mad/files/libid3tag/"
+UPSTREAM_CHECK_REGEX = "/projects/mad/files/libid3tag/(?P<pver>.*)/$"
+
+SRC_URI[md5sum] = "e5808ad997ba32c498803822078748c3"
+SRC_URI[sha256sum] = "63da4f6e7997278f8a3fef4c6a372d342f705051d1eeb6a46a86b03610e26151"
+
+S = "${WORKDIR}/libid3tag-${PV}"
+
+inherit autotools pkgconfig
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 5bfce4d908..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,40 +4,82 @@ 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/configure.ac b/configure.ac
-index 4fcd48b..40302db 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -140,20 +140,20 @@ then
- case "$optimize" in
- -O|"-O "*)
- optimize="-O"
+@@ -124,70 +124,7 @@ done
+
+ if test "$GCC" = yes
+ then
+- if test -z "$arch"
+- then
+- case "$host" in
+- i386-*) ;;
+- i?86-*) arch="-march=i486" ;;
+- arm*-empeg-*) arch="-march=armv4 -mtune=strongarm1100" ;;
+- armv4*-*) arch="-march=armv4 -mtune=strongarm" ;;
+- powerpc-*) ;;
+- mips*-agenda-*) arch="-mcpu=vr4100" ;;
+- mips*-luxsonor-*) arch="-mips1 -mcpu=r3000 -Wa,-m4010" ;;
+- esac
+- fi
+-
+- case "$optimize" in
+- -O|"-O "*)
+- optimize="-O"
- optimize="$optimize -fforce-addr"
-+ : #optimize="$optimize -fforce-addr"
- : #x optimize="$optimize -finline-functions"
- : #- optimize="$optimize -fstrength-reduce"
+- : #x optimize="$optimize -finline-functions"
+- : #- optimize="$optimize -fstrength-reduce"
- optimize="$optimize -fthread-jumps"
- optimize="$optimize -fcse-follow-jumps"
- optimize="$optimize -fcse-skip-blocks"
-+ : #optimize="$optimize -fthread-jumps"
-+ : #optimize="$optimize -fcse-follow-jumps"
-+ : #optimize="$optimize -fcse-skip-blocks"
- : #x optimize="$optimize -frerun-cse-after-loop"
- : #x optimize="$optimize -frerun-loop-opt"
- : #x optimize="$optimize -fgcse"
- optimize="$optimize -fexpensive-optimizations"
+- : #x optimize="$optimize -frerun-cse-after-loop"
+- : #x optimize="$optimize -frerun-loop-opt"
+- : #x optimize="$optimize -fgcse"
+- optimize="$optimize -fexpensive-optimizations"
- optimize="$optimize -fregmove"
-+ : #optimize="$optimize -fregmove"
- : #* optimize="$optimize -fdelayed-branch"
- : #x optimize="$optimize -fschedule-insns"
+- : #* optimize="$optimize -fdelayed-branch"
+- : #x optimize="$optimize -fschedule-insns"
- optimize="$optimize -fschedule-insns2"
-+ : #optimize="$optimize -fschedule-insns2"
- : #? optimize="$optimize -ffunction-sections"
- : #? optimize="$optimize -fcaller-saves"
- : #> optimize="$optimize -funroll-loops"
---
-2.1.0
-
+- : #? optimize="$optimize -ffunction-sections"
+- : #? optimize="$optimize -fcaller-saves"
+- : #> optimize="$optimize -funroll-loops"
+- : #> optimize="$optimize -funroll-all-loops"
+- : #x optimize="$optimize -fmove-all-movables"
+- : #x optimize="$optimize -freduce-all-givs"
+- : #? optimize="$optimize -fstrict-aliasing"
+- : #* optimize="$optimize -fstructure-noalias"
+-
+- case "$host" in
+- arm*-*)
+- optimize="$optimize -fstrength-reduce"
+- ;;
+- mips*-*)
+- optimize="$optimize -fstrength-reduce"
+- optimize="$optimize -finline-functions"
+- ;;
+- i?86-*)
+- optimize="$optimize -fstrength-reduce"
+- ;;
+- powerpc-apple-*)
+- # this triggers an internal compiler error with gcc2
+- : #optimize="$optimize -fstrength-reduce"
+-
+- # this is really only beneficial with gcc3
+- : #optimize="$optimize -finline-functions"
+- ;;
+- *)
+- # this sometimes provokes bugs in gcc 2.95.2
+- : #optimize="$optimize -fstrength-reduce"
+- ;;
+- esac
+- ;;
+- esac
++ optimize="-O2"
+ fi
+
+ case "$host" in
diff --git a/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch b/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
index 01c7aa3c8c..5bc91f355d 100644
--- a/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
+++ b/meta-oe/recipes-multimedia/libmad/libmad/fix_for_mips_with_gcc-4.5.0.patch
@@ -11,15 +11,13 @@ Upstream-Status: Pending
2010/07/29
Nitin A Kamble <nitin.a.kamble@intel.com>
-Index: libmad-0.15.1b/fixed.h
-===================================================================
---- libmad-0.15.1b.orig/fixed.h
-+++ libmad-0.15.1b/fixed.h
+--- a/fixed.h
++++ b/fixed.h
@@ -297,6 +297,15 @@ mad_fixed_t mad_f_mul_inline(mad_fixed_t
/* --- MIPS ---------------------------------------------------------------- */
-+# elif defined(FPM_MIPS) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
++# elif defined(FPM_MIPS) && (defined(__clang__) || __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4))
+ typedef unsigned int u64_di_t __attribute__ ((mode (DI)));
+# define MAD_F_MLX(hi, lo, x, y) \
+ do { \
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 8d9246a5ce..5b089a0b33 100644
--- a/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb
+++ b/meta-oe/recipes-multimedia/libmad/libmad_0.15.1b.bb
@@ -1,7 +1,7 @@
SUMMARY = "MPEG Audio Decoder library"
HOMEPAGE = "http://sourceforge.net/projects/mad/"
BUGTRACKER = "http://sourceforge.net/tracker/?group_id=12349&atid=112349"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LICENSE_FLAGS = "commercial"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
file://COPYRIGHT;md5=8e55eb14894e782b84488d5a239bc23d \
@@ -16,8 +16,9 @@ SRC_URI = "ftp://ftp.mars.org/pub/mpeg/libmad-${PV}.tar.gz \
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:append:toolchain-clang = " file://0004-Remove-clang-unsupported-compiler-flags.patch "
SRC_URI[md5sum] = "1be543bc30c56fb6bea1d7bf6a64e66c"
SRC_URI[sha256sum] = "bbfac3ed6bfbc2823d3775ebb931087371e142bb0e9bb1bee51a76a6e0078690"
@@ -27,9 +28,9 @@ S = "${WORKDIR}/libmad-${PV}"
inherit autotools pkgconfig
EXTRA_OECONF = "-enable-speed --enable-shared"
-EXTRA_OECONF_append_arm = " --enable-fpm=arm"
+EXTRA_OECONF:append:arm = " --enable-fpm=arm"
-do_configure_prepend () {
+do_configure:prepend () {
# damn picky automake...
touch NEWS AUTHORS ChangeLog
}
diff --git a/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb b/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
index 831394e5c7..62c20c6122 100644
--- a/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
+++ b/meta-oe/recipes-multimedia/libmms/libmms_0.6.4.bb
@@ -2,7 +2,7 @@ SUMMARY = "MMS stream protocol library"
HOMEPAGE = "http://sourceforge.net/projects/libmms/"
SECTION = "libs/multimedia"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=fad9b3332be894bab9bc501572864b29"
SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BP}.tar.gz"
@@ -10,3 +10,11 @@ SRC_URI[md5sum] = "d6b665b335a6360e000976e770da7691"
SRC_URI[sha256sum] = "3c05e05aebcbfcc044d9e8c2d4646cd8359be39a3f0ba8ce4e72a9094bee704f"
inherit autotools pkgconfig
+
+do_install:append() {
+ # The GLib dependency was removed in libmms 0.6.3, but the
+ # "Requires" was not removed from the pkg-config file. Since we
+ # don't have (and don't want) the RDEPENDS on GLib, we should
+ # remove the "Requires" line.
+ sed -i '/^Requires: glib-2\.0$/d' ${D}${libdir}/pkgconfig/libmms.pc
+}
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.8.5.bb b/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb
deleted file mode 100644
index 1070246c86..0000000000
--- a/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.8.5.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Library for reading mod-like audio files"
-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] = "5f30241db109d647781b784e62ddfaa1"
-SRC_URI[sha256sum] = "77462d12ee99476c8645cb5511363e3906b88b33a6b54362b4dbc0f39aa2daad"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-option-checking"
-
-# NOTE: autotools_stage_all does nothing here, we need to do it manually
-do_install_append() {
- install -d ${D}${includedir}/libmodplug
- install -m 0644 ${S}/src/modplug.h ${D}${includedir}/libmodplug
- install -m 0644 ${S}/src/modplug.h ${D}${includedir}/
-}
-
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
new file mode 100644
index 0000000000..e04e763776
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libmodplug/libmodplug_0.8.9.0.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Library for reading mod-like audio files"
+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 \
+ file://0001-fastmix-Drop-register-storage-class-keyword.patch"
+
+SRC_URI[sha256sum] = "457ca5a6c179656d66c01505c0d95fafaead4329b9dbaa0f997d00a3508ad9de"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-option-checking"
+
+# NOTE: autotools_stage_all does nothing here, we need to do it manually
+do_install:append() {
+ install -d ${D}${includedir}/libmodplug
+ install -m 0644 ${S}/src/modplug.h ${D}${includedir}/libmodplug
+ install -m 0644 ${S}/src/modplug.h ${D}${includedir}/
+}
diff --git a/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb b/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb
deleted file mode 100644
index dd6789dc01..0000000000
--- a/meta-oe/recipes-multimedia/libopus/libopus_1.1.3.bb
+++ /dev/null
@@ -1,54 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e304cdf74c2a1b0a33a5084c128a23a3"
-
-SRC_URI = "http://downloads.xiph.org/releases/opus/opus-${PV}.tar.gz"
-SRC_URI[md5sum] = "32bbb6b557fe1b6066adc0ae1f08b629"
-SRC_URI[sha256sum] = "58b6fe802e7e30182e95d0cde890c0ace40b6f125cffc50635f0ad2eef69b633"
-
-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 \
-"
-
-python () {
- if d.getVar('TARGET_FPU') in [ 'soft' ]:
- d.appendVar('PACKAGECONFIG', ' fixed-point')
-
- # Ne10 is only available for armv7 and aarch64
- if any((t.startswith('armv7') or t.startswith('aarch64')) for t in d.getVar('TUNE_FEATURES').split()):
- d.appendVar('DEPENDS', ' ne10')
-}
-
-# 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 = "arm"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-multimedia/libopus/libopus_1.4.bb b/meta-oe/recipes-multimedia/libopus/libopus_1.4.bb
new file mode 100644
index 0000000000..2002117746
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libopus/libopus_1.4.bb
@@ -0,0 +1,54 @@
+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[sha256sum] = "c9b32b4253be5ae63d1ff16eea06b94b5f0f2951b7a02aceef58e3a3ce49c51f"
+
+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/libopusenc/libopusenc_0.2.1.bb b/meta-oe/recipes-multimedia/libopusenc/libopusenc_0.2.1.bb
new file mode 100644
index 0000000000..596c5fe86d
--- /dev/null
+++ b/meta-oe/recipes-multimedia/libopusenc/libopusenc_0.2.1.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Opus Audio Codec"
+DESCRIPTION = "The libopusenc libraries provide a high-level API for encoding \
+ .opus files. libopusenc depends only on libopus."
+HOMEPAGE = "http://www.opus-codec.org/"
+SECTION = "libs/multimedia"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=174b92049c2c697eb73112801662a07c"
+
+DEPENDS = "libopus"
+
+UPSTREAM_CHECK_URI = "https://github.com/xiph/libopusenc/releases"
+
+SRC_URI = "https://ftp.osuosl.org/pub/xiph/releases/opus/libopusenc-${PV}.tar.gz"
+SRC_URI[md5sum] = "f038ea0f4168d184c76b42d293697c57"
+SRC_URI[sha256sum] = "8298db61a8d3d63e41c1a80705baa8ce9ff3f50452ea7ec1c19a564fe106cbb9"
+
+S = "${WORKDIR}/libopusenc-${PV}"
+
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch b/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch
deleted file mode 100644
index 5299d378eb..0000000000
--- a/meta-oe/recipes-multimedia/libsdl-image/libsdl-image/configure.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Index: SDL_image-1.2.12/configure.in
-===================================================================
---- SDL_image-1.2.12.orig/configure.in 2012-01-21 01:51:33.000000000 +0000
-+++ SDL_image-1.2.12/configure.in 2014-07-18 06:56:56.853466678 +0000
-@@ -1,5 +1,4 @@
- dnl Process this file with autoconf to produce a configure script.
--AC_INIT(README)
-
- dnl Set various version strings - taken gratefully from the GTk sources
-
-@@ -11,12 +10,19 @@
- # if backwards compatibility has been broken,
- # set BINARY_AGE and INTERFACE_AGE to 0.
-
--MAJOR_VERSION=1
--MINOR_VERSION=2
--MICRO_VERSION=12
-+m4_define([sdlimage_major_version],[1])
-+m4_define([sdlimage_minor_version],[2])
-+m4_define([sdlimage_micro_version],[12])
-+m4_define([sdlimage_version], [sdlimage_major_version.sdlimage_minor_version.sdlimage_micro_version])
-+
-+AC_INIT([SDL_image], [sdlimage_version])
-+
-+MAJOR_VERSION=sdlimage_major_version
-+MINOR_VERSION=sdlimage_minor_version
-+MICRO_VERSION=sdlimage_micro_version
- INTERFACE_AGE=4
- BINARY_AGE=12
--VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION
-+VERSION=sdlimage_version
-
- AC_SUBST(MAJOR_VERSION)
- AC_SUBST(MINOR_VERSION)
-@@ -42,7 +48,7 @@
- AC_CANONICAL_HOST
-
- dnl Setup for automake
--AM_INIT_AUTOMAKE(SDL_image, $VERSION)
-+AM_INIT_AUTOMAKE([foreign])
-
- dnl Check for tools
- AC_PROG_LIBTOOL
diff --git a/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb b/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb
deleted file mode 100644
index 1f9c794c73..0000000000
--- a/meta-oe/recipes-multimedia/libsdl-image/libsdl2-image_2.0.1.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer image library v2"
-SECTION = "libs"
-
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=ec65b9778f5584a0bd8dfc17d6340ba0"
-
-DEPENDS = "tiff zlib libpng jpeg virtual/libsdl2 libwebp"
-
-SRC_URI = "http://www.libsdl.org/projects/SDL_image/release/SDL2_image-${PV}.tar.gz"
-SRC_URI[md5sum] = "d94b94555ba022fa249a53a021dc3606"
-SRC_URI[sha256sum] = "3a3eafbceea5125c04be585373bfd8b3a18f259bd7eae3efc4e6d8e60e0d7f64"
-
-S = "${WORKDIR}/SDL2_image-${PV}"
-
-inherit autotools pkgconfig
-
-# Disable the run-time loading of the libs and bring back the soname dependencies.
-EXTRA_OECONF += "--disable-jpg-shared --disable-png-shared -disable-tif-shared"
-
-do_configure_prepend() {
- # make autoreconf happy
- touch ${S}/NEWS ${S}/README ${S}/AUTHORS ${S}/ChangeLog
- # Removing these files fixes a libtool version mismatch.
- rm -f ${S}/acinclude/libtool.m4
- rm -f ${S}/acinclude/sdl2.m4
- rm -f ${S}/acinclude/pkg.m4
- rm -f ${S}/acinclude/lt~obsolete.m4
- rm -f ${S}/acinclude/ltoptions.m4
- rm -f ${S}/acinclude/ltsugar.m4
- rm -f ${S}/acinclude/ltversion.m4
-}
diff --git a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch b/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch
deleted file mode 100644
index 4c9e8d094c..0000000000
--- a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl-mixer/configure.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-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
-@@ -1,6 +1,5 @@
- dnl Process this file with autoconf to produce a configure script.
- AC_INIT(README)
--AC_CONFIG_AUX_DIR(build-scripts)
-
- dnl Set various version strings - taken gratefully from the GTk sources
-
-@@ -40,10 +39,6 @@
- AC_SUBST(LT_REVISION)
- AC_SUBST(LT_AGE)
-
--dnl Detect the canonical build and host environments
--AC_CONFIG_AUX_DIRS($srcdir/build-scripts)
--dnl AC_CANONICAL_HOST
--
- dnl Check for tools
- AC_PROG_LIBTOOL
- AC_PROG_CC
diff --git a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb b/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb
deleted file mode 100644
index 718f3f5fde..0000000000
--- a/meta-oe/recipes-multimedia/libsdl-mixer/libsdl2-mixer_2.0.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer mixer library V2"
-SECTION = "libs"
-DEPENDS = "virtual/libsdl2 flac libmikmod libvorbis"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=95e0c3cf63f71b950911e698a54b7fc5"
-
-SRC_URI = "http://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "aaa0551393993c14a13f72b339c0ed6c"
-SRC_URI[sha256sum] = "4e615e27efca4f439df9af6aa2c6de84150d17cbfd12174b54868c12f19c83bb"
-
-S = "${WORKDIR}/SDL2_mixer-${PV}"
-
-inherit autotools-brokensep pkgconfig
-
-EXTRA_AUTORECONF += "--include=acinclude"
-EXTRA_OECONF = "--disable-music-mp3 --enable-music-ogg --enable-music-ogg-tremor LIBS=-L${STAGING_LIBDIR}"
-
-PACKAGECONFIG[mad] = "--enable-music-mp3-mad-gpl,--disable-music-mp3-mad-gpl,libmad"
-
-do_configure_prepend () {
- # Remove old libtool macros.
- MACROS="libtool.m4 lt~obsolete.m4 ltoptions.m4 ltsugar.m4 ltversion.m4"
- for i in ${MACROS}; do
- rm -f acinclude/$i
- done
-}
diff --git a/meta-oe/recipes-multimedia/live555/live555.inc b/meta-oe/recipes-multimedia/live555/live555.inc
deleted file mode 100644
index 14ea664422..0000000000
--- a/meta-oe/recipes-multimedia/live555/live555.inc
+++ /dev/null
@@ -1,56 +0,0 @@
-# live555 OE build file
-# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved
-# Released under the MIT license (see packages/COPYING)
-
-DESCRIPTION = "LIVE555 Streaming Media libraries"
-HOMEPAGE = "http://live.com/"
-LICENSE = "LGPLv3"
-SECTION = "devel"
-
-URLV = "${@d.getVar('PV')[0:4]}.${@d.getVar('PV')[4:6]}.${@d.getVar('PV')[6:8]}"
-SRC_URI = "http://www.live555.com/liveMedia/public/live.${URLV}.tar.gz \
- file://config.linux-cross"
-# only latest live version stays on http://www.live555.com/liveMedia/public/, add mirror for older
-MIRRORS += "http://www.live555.com/liveMedia/public/ http://distcache.FreeBSD.org/ports-distfiles/ \n"
-
-S = "${WORKDIR}/live"
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_configure() {
- cp ${WORKDIR}/config.linux-cross .
- echo "COMPILE_OPTS+=" -fPIC -DXLOCALE_NOT_USED"" >> config.linux-cross
- ./genMakefiles linux-cross
-}
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- install -d ${D}${includedir}/BasicUsageEnvironment
- install -d ${D}${includedir}/groupsock
- install -d ${D}${includedir}/liveMedia
- install -d ${D}${includedir}/UsageEnvironment
- install -d ${D}${libdir}
- cp -R --no-dereference --preserve=mode,links -v ${S}/BasicUsageEnvironment/include/*.hh ${D}${includedir}/BasicUsageEnvironment/
- cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.h ${D}${includedir}/groupsock/
- cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.hh ${D}${includedir}/groupsock/
- cp -R --no-dereference --preserve=mode,links -v ${S}/liveMedia/include/*.hh ${D}${includedir}/liveMedia/
- cp -R --no-dereference --preserve=mode,links -v ${S}/UsageEnvironment/include/*.hh ${D}${includedir}/UsageEnvironment/
- # Find all the headers
- for i in $(find . -name "*.hh") $(find . -name "*.h") ; do
- install ${i} ${D}${includedir}
- done
- cp ${S}/*/*.a ${D}${libdir}
- install -d ${D}${bindir}
- for i in MPEG2TransportStreamIndexer openRTSP playSIP sapWatch testMPEG1or2ProgramToTransportStream testMPEG1or2Splitter testMPEG1or2VideoReceiver testMPEG2TransportStreamTrickPlay testOnDemandRTSPServer testRelay testAMRAudioStreamer testDVVideoStreamer testMP3Receiver testMP3Streamer testMPEG1or2AudioVideoStreamer testMPEG1or2VideoStreamer testMPEG2TransportStreamer testMPEG4VideoStreamer testWAVAudioStreamer vobStreamer; do
- install -m 0755 ${S}/testProgs/${i} ${D}${bindir}/
- done
- install -m 0755 ${S}/mediaServer/live555MediaServer ${D}${bindir}/
-}
-
-PACKAGES =+ " live555-openrtsp live555-playsip live555-mediaserver"
-FILES_${PN} = "${bindir}/sapWatch ${bindir}/testMPEG1or2ProgramToTransportStream ${bindir}/testMPEG1or2Splitter ${bindir}/testMPEG1or2VideoReceiver ${bindir}/testMPEG2TransportStreamTrickPlay ${bindir}/testOnDemandRTSPServer ${bindir}/testRelay ${bindir}/testAMRAudioStreamer ${bindir}/testDVVideoStreamer ${bindir}/testMP3Receiver ${bindir}/testMP3Streamer ${bindir}/testMPEG1or2AudioVideoStreamer ${bindir}/testMPEG1or2VideoStreamer ${bindir}/testMPEG2TransportStreamer ${bindir}/testMPEG4VideoStreamer ${bindir}/testWAVAudioStreamer ${bindir}/vobStreamer ${bindir}/MPEG2TransportStreamIndexer"
-FILES_live555-openrtsp = "${bindir}/openRTSP"
-FILES_live555-playsip = "${bindir}/playSIP"
-FILES_live555-mediaserver = "${bindir}/live555MediaServer"
diff --git a/meta-oe/recipes-multimedia/live555/files/config.linux-cross b/meta-oe/recipes-multimedia/live555/live555/config.linux-cross
index d1277da8d1..fe6a28604b 100644
--- a/meta-oe/recipes-multimedia/live555/files/config.linux-cross
+++ b/meta-oe/recipes-multimedia/live555/live555/config.linux-cross
@@ -12,6 +12,6 @@ CONSOLE_LINK_OPTS = $(LINK_OPTS)
LIBRARY_LINK = $(LD) -o
LIBRARY_LINK_OPTS = $(LINK_OPTS) -r -Bstatic
LIB_SUFFIX = a
-LIBS_FOR_CONSOLE_APPLICATION =
+LIBS_FOR_CONSOLE_APPLICATION = -lssl -lcrypto
LIBS_FOR_GUI_APPLICATION =
EXE =
diff --git a/meta-oe/recipes-multimedia/live555/live555_20170410.bb b/meta-oe/recipes-multimedia/live555/live555_20170410.bb
deleted file mode 100644
index 27fc429873..0000000000
--- a/meta-oe/recipes-multimedia/live555/live555_20170410.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require live555.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \
- "
-
-SRC_URI[md5sum] = "b7084a72aeb09549c8b248f8cc308841"
-SRC_URI[sha256sum] = "4c37d9c828f9028403997272e49968c260385dbbaef62e28ba24faef0dda868b"
-
diff --git a/meta-oe/recipes-multimedia/live555/live555_20210824.bb b/meta-oe/recipes-multimedia/live555/live555_20210824.bb
new file mode 100644
index 0000000000..a899049b77
--- /dev/null
+++ b/meta-oe/recipes-multimedia/live555/live555_20210824.bb
@@ -0,0 +1,63 @@
+# live555 OE build file
+# Copyright (C) 2005, Koninklijke Philips Electronics NV. All Rights Reserved
+# Released under the MIT license (see packages/COPYING)
+
+DESCRIPTION = "LIVE555 Streaming Media libraries"
+HOMEPAGE = "http://live.com/"
+LICENSE = "LGPL-3.0-only"
+SECTION = "devel"
+
+DEPENDS = "openssl"
+
+URLV = "${@d.getVar('PV')[0:4]}.${@d.getVar('PV')[4:6]}.${@d.getVar('PV')[6:8]}"
+SRC_URI = "https://download.videolan.org/pub/contrib/live555/live.${URLV}.tar.gz \
+ file://config.linux-cross"
+
+# only latest live version stays on http://www.live555.com/liveMedia/public/, add mirror for older
+MIRRORS += "http://www.live555.com/liveMedia/public/ http://download.videolan.org/contrib/live555/ \n"
+
+SRC_URI[sha256sum] = "ce95a1c79f6d18e959f9dc129b8529b711c60e76754acc285e60946303b923ec"
+
+S = "${WORKDIR}/live"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+ "
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_configure() {
+ cp ${WORKDIR}/config.linux-cross .
+ echo "COMPILE_OPTS+=" -fPIC -DXLOCALE_NOT_USED"" >> config.linux-cross
+ ./genMakefiles linux-cross
+}
+
+do_install() {
+ install -d ${D}${includedir}/BasicUsageEnvironment
+ install -d ${D}${includedir}/groupsock
+ install -d ${D}${includedir}/liveMedia
+ install -d ${D}${includedir}/UsageEnvironment
+ install -d ${D}${libdir}
+ cp -R --no-dereference --preserve=mode,links -v ${S}/BasicUsageEnvironment/include/*.hh ${D}${includedir}/BasicUsageEnvironment/
+ cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.h ${D}${includedir}/groupsock/
+ cp -R --no-dereference --preserve=mode,links -v ${S}/groupsock/include/*.hh ${D}${includedir}/groupsock/
+ cp -R --no-dereference --preserve=mode,links -v ${S}/liveMedia/include/*.hh ${D}${includedir}/liveMedia/
+ cp -R --no-dereference --preserve=mode,links -v ${S}/UsageEnvironment/include/*.hh ${D}${includedir}/UsageEnvironment/
+ # Find all the headers
+ for i in $(find . -name "*.hh") $(find . -name "*.h") ; do
+ install ${i} ${D}${includedir}
+ done
+ cp ${S}/*/*.a ${D}${libdir}
+ install -d ${D}${bindir}
+ for i in MPEG2TransportStreamIndexer openRTSP playSIP sapWatch testMPEG1or2ProgramToTransportStream testMPEG1or2Splitter testMPEG1or2VideoReceiver testMPEG2TransportStreamTrickPlay testOnDemandRTSPServer testRelay testAMRAudioStreamer testDVVideoStreamer testMP3Receiver testMP3Streamer testMPEG1or2AudioVideoStreamer testMPEG1or2VideoStreamer testMPEG2TransportStreamer testMPEG4VideoStreamer testWAVAudioStreamer vobStreamer; do
+ install -m 0755 ${S}/testProgs/${i} ${D}${bindir}/
+ done
+ install -m 0755 ${S}/mediaServer/live555MediaServer ${D}${bindir}/
+}
+
+RDEPENDS:${PN}-dev = ""
+PACKAGES =+ "live555-openrtsp live555-playsip live555-mediaserver live555-examples"
+FILES:live555-openrtsp = "${bindir}/openRTSP"
+FILES:live555-playsip = "${bindir}/playSIP"
+FILES:live555-mediaserver = "${bindir}/live555MediaServer"
+FILES:live555-examples = "${bindir}/*"
diff --git a/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.11.1.bb b/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.11.1.bb
new file mode 100644
index 0000000000..e0712ba930
--- /dev/null
+++ b/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.11.1.bb
@@ -0,0 +1,28 @@
+DESCRIPTION = "libmikmod is a module player library supporting many formats, including mod, s3m, it, and xm."
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "alsa-lib texinfo"
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/project/mikmod/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
+"
+SRC_URI[md5sum] = "f69d7dd06d307e888f466fc27f4f680b"
+SRC_URI[sha256sum] = "ad9d64dfc8f83684876419ea7cd4ff4a41d8bcd8c23ef37ecb3a200a16b46d19"
+
+inherit autotools binconfig lib_package
+
+EXTRA_OECONF = "\
+ --disable-af \
+ --enable-alsa \
+ --disable-esd \
+ --enable-oss \
+ --disable-sam9407 \
+ --disable-ultra \
+ --disable-esdtest \
+ --enable-threads \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
+PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
diff --git a/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb b/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb
deleted file mode 100644
index d53dff6a07..0000000000
--- a/meta-oe/recipes-multimedia/mikmod/libmikmod_3.3.6.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION = "libmikmod is a module player library supporting many formats, including mod, s3m, it, and xm."
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING.LESSER;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "alsa-lib texinfo"
-
-SRC_URI = "\
- ${SOURCEFORGE_MIRROR}/project/mikmod/${BPN}/${PV}/${BPN}-${PV}.tar.gz \
-"
-SRC_URI[md5sum] = "9dd9bed30c6f7607a55480234606071b"
-SRC_URI[sha256sum] = "3f363e03f7b1db75b9b6602841bbd440ed275a548e53545f980df8155de4d330"
-
-inherit autotools binconfig lib_package
-
-EXTRA_OECONF = "\
- --disable-af \
- --enable-alsa \
- --disable-esd \
- --enable-oss \
- --disable-sam9407 \
- --disable-ultra \
- --disable-esdtest \
- --enable-threads \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
-PACKAGECONFIG[pulseaudio] = "--enable-pulseaudio,--disable-pulseaudio,pulseaudio"
diff --git a/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb b/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb
deleted file mode 100644
index 829c3b2439..0000000000
--- a/meta-oe/recipes-multimedia/mplayer/mplayer-common.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-# Copyright Matthias Hentges <devel@hentges.net> (c) 2006
-# License: MIT (see COPYING.MIT)
-
-SUMMARY = "Preconfigured mplayer preferences"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
-
-PV = "0.0.1"
-PR = "r1"
-
-SRC_URI = "file://mplayer.conf"
-
-# Yes, really /usr/etc!!!
-do_install() {
- install -d "${D}/usr${sysconfdir}/mplayer"
-
- install -m 0644 ${WORKDIR}/mplayer.conf "${D}/usr${sysconfdir}/mplayer"
-}
-
-FILES_${PN} = "/usr${sysconfdir}/mplayer"
-
-inherit allarch
diff --git a/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf b/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf
deleted file mode 100644
index 37ad65fa2d..0000000000
--- a/meta-oe/recipes-multimedia/mplayer/mplayer-common/mplayer.conf
+++ /dev/null
@@ -1,15 +0,0 @@
-
-# You probably shouldn't touch these
-ac=mad,
-ao=alsa,
-
-# Required on SL-Cxxxx for correct rotation in the *VT*,
-# breaks rotation in X!
-# vf=rotate=1
-
-# Enable fullscreen display by default
-# fs=true
-
-# Drop frames to keep audio and video in sync
-framedrop=true
-
diff --git a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb b/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
deleted file mode 100644
index de78de27f0..0000000000
--- a/meta-oe/recipes-multimedia/mplayer/mpv_0.26.0.bb
+++ /dev/null
@@ -1,73 +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 virtual/libx11 xsp libxv \
- libxscrnsaver libv4l libxinerama \
-"
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=91f1cb870c1cc2d31351a4d2595441cb"
-
-# While this item does not require it, it depends on ffmpeg which does
-LICENSE_FLAGS = "commercial"
-
-SRC_URI = " \
- https://github.com/mpv-player/mpv/archive/v${PV}.tar.gz;name=mpv \
- http://www.freehackers.org/~tnagy/release/waf-1.8.12;name=waf;downloadfilename=waf;subdir=${BPN}-${PV} \
-"
-SRC_URI[mpv.md5sum] = "038d0b660de07ff645ad6a741704ecab"
-SRC_URI[mpv.sha256sum] = "daf3ef358d5f260f2269f7caabce27f446c291457ec330077152127133b71b46"
-SRC_URI[waf.md5sum] = "cef4ee82206b1843db082d0b0506bf71"
-SRC_URI[waf.sha256sum] = "01bf2beab2106d1558800c8709bc2c8e496d3da4a2ca343fe091f22fca60c98b"
-
-inherit waf pkgconfig pythonnative distro_features_check
-
-# Note: both lua and libass are required to get on-screen-display (controls)
-PACKAGECONFIG ??= " \
- lua \
- libass \
- ${@bb.utils.filter('DISTRO_FEATURES', 'wayland', d)} \
-"
-PACKAGECONFIG[drm] = "--enable-drm,--disable-drm,libdrm"
-PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm,virtual/mesa"
-PACKAGECONFIG[lua] = "--enable-lua,--disable-lua,lua luajit"
-PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass"
-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 libxkbcommon"
-
-SIMPLE_TARGET_SYS = "${@'${TARGET_SYS}'.replace('${TARGET_VENDOR}', '')}"
-
-EXTRA_OECONF = " \
- --prefix=${prefix} \
- --target=${SIMPLE_TARGET_SYS} \
- --confdir=${sysconfdir} \
- --datadir=${datadir} \
- --disable-manpage-build \
- --disable-gl \
- --disable-libsmbclient \
- --disable-encoding \
- --disable-libbluray \
- --disable-dvdread \
- --disable-dvdnav \
- --disable-cdda \
- --disable-uchardet \
- --disable-rubberband \
- --disable-lcms2 \
- --disable-vapoursynth \
- --disable-vapoursynth-lazy \
- ${PACKAGECONFIG_CONFARGS} \
-"
-
-adjust_waf_perms() {
- chmod +x ${S}/waf
-}
-
-do_patch[postfuncs] += "adjust_waf_perms"
-
-FILES_${PN} += "${datadir}/icons"
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/opus-tools/opus-tools_0.1.8.bb b/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb
deleted file mode 100644
index ff63111475..0000000000
--- a/meta-oe/recipes-multimedia/opus-tools/opus-tools_0.1.8.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Opus Audio Tools"
-HOMEPAGE = "http://www.opus-codec.org/"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=843a066da9f1facfcc6ea6f616ffecb1"
-
-SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz"
-SRC_URI[md5sum] = "b424790eda9357a4df394e2d7ca19eac"
-SRC_URI[sha256sum] = "e4e188579ea1c4e4d5066460d4a7214a7eafe3539e9a4466fdc98af41ba4a2f6"
-
-S = "${WORKDIR}/opus-tools-${PV}"
-
-DEPENDS = "libopus flac"
-
-inherit autotools pkgconfig
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/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch
deleted file mode 100644
index b59569f2c8..0000000000
--- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-build-sys-Use-C-11-for-building.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 1f92aa5c8d910519e3a74b2e3a9199aa9026a16c Mon Sep 17 00:00:00 2001
-From: Arun Raghavan <git@arunraghavan.net>
-Date: Mon, 25 Jan 2016 08:41:42 +0530
-Subject: [PATCH 1/2] build-sys: Use C++11 for building
-
-This requirement was added by gtkmm at some point:
-
-http://www.murrayc.com/permalink/2015/07/31/gtkmm-now-uses-c11/
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index 5b50e2d..8f28782 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -39,6 +39,7 @@ AC_PROG_CC
- AC_PROG_LN_S
- AC_TYPE_SIGNAL
- AC_HEADER_STDC
-+AX_CXX_COMPILE_STDCXX_11
-
- AC_ARG_ENABLE(gtk3,
- [AS_HELP_STRING([--disable-gtk3],
---
-2.12.1
-
diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch
new file mode 100644
index 0000000000..44169240c5
--- /dev/null
+++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0001-pavucontrol-remove-canberra-gtk-support.patch
@@ -0,0 +1,112 @@
+From 87992a57e5f517d5ceb5dfabaea662ac64983720 Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Fri, 27 May 2022 18:37:53 +0200
+Subject: [PATCH] pavucontrol: remove canberra-gtk support
+
+libcanberra-gtk3 module isn't buildable for wayland.
+Remove its dpendency.
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Upstream-Status: Inappropriate
+---
+ configure.ac | 2 +-
+ src/pavuapplication.cc | 2 --
+ src/pavucontrol.cc | 4 ----
+ src/sinkwidget.cc | 17 -----------------
+ 4 files changed, 1 insertion(+), 24 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 056ba5e..e857563 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -41,7 +41,7 @@ AC_TYPE_SIGNAL
+ AC_HEADER_STDC
+ AX_CXX_COMPILE_STDCXX_11
+
+-PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.22 sigc++-2.0 libcanberra-gtk3 >= 0.16 json-glib-1.0 ])
++PKG_CHECK_MODULES(GUILIBS, [ gtkmm-3.0 >= 3.22 sigc++-2.0 json-glib-1.0 ])
+ AC_SUBST(GUILIBS_CFLAGS)
+ AC_SUBST(GUILIBS_LIBS)
+
+diff --git a/src/pavuapplication.cc b/src/pavuapplication.cc
+index 6773b53..60c016c 100644
+--- a/src/pavuapplication.cc
++++ b/src/pavuapplication.cc
+@@ -24,8 +24,6 @@
+
+ #include "i18n.h"
+
+-#include <canberra-gtk.h>
+-
+ #include "pavuapplication.h"
+ #include "pavucontrol.h"
+ #include "mainwindow.h"
+diff --git a/src/pavucontrol.cc b/src/pavucontrol.cc
+index 18d5400..10ab646 100644
+--- a/src/pavucontrol.cc
++++ b/src/pavucontrol.cc
+@@ -29,8 +29,6 @@
+ #include <json-glib/json-glib.h>
+ #endif
+
+-#include <canberra-gtk.h>
+-
+ #include "pavucontrol.h"
+ #include "i18n.h"
+ #include "minimalstreamwidget.h"
+@@ -916,8 +914,6 @@ MainWindow* pavucontrol_get_window(pa_glib_mainloop *m, bool maximize, bool _ret
+ tab_number = _tab_number;
+ retry = _retry;
+
+- ca_context_set_driver(ca_gtk_context_get(), "pulse");
+-
+ mainWindow = MainWindow::create(maximize);
+
+ api = pa_glib_mainloop_get_api(m);
+diff --git a/src/sinkwidget.cc b/src/sinkwidget.cc
+index f30bd37..482fd1f 100644
+--- a/src/sinkwidget.cc
++++ b/src/sinkwidget.cc
+@@ -24,7 +24,6 @@
+
+ #include "sinkwidget.h"
+
+-#include <canberra-gtk.h>
+ #if HAVE_EXT_DEVICE_RESTORE_API
+ # include <pulse/format.h>
+ # include <pulse/ext-device-restore.h>
+@@ -111,7 +110,6 @@ SinkWidget* SinkWidget::create(MainWindow* mainWindow) {
+ void SinkWidget::executeVolumeUpdate() {
+ pa_operation* o;
+ char dev[64];
+- int playing = 0;
+
+ if (!(o = pa_context_set_sink_volume_by_index(get_context(), index, &volume, NULL, NULL))) {
+ show_error(_("pa_context_set_sink_volume_by_index() failed"));
+@@ -120,22 +118,7 @@ void SinkWidget::executeVolumeUpdate() {
+
+ pa_operation_unref(o);
+
+- ca_context_playing(ca_gtk_context_get(), 2, &playing);
+- if (playing)
+- return;
+-
+ snprintf(dev, sizeof(dev), "%lu", (unsigned long) index);
+- ca_context_change_device(ca_gtk_context_get(), dev);
+-
+- ca_gtk_play_for_widget(GTK_WIDGET(gobj()),
+- 2,
+- CA_PROP_EVENT_DESCRIPTION, _("Volume Control Feedback Sound"),
+- CA_PROP_EVENT_ID, "audio-volume-change",
+- CA_PROP_CANBERRA_CACHE_CONTROL, "permanent",
+- CA_PROP_CANBERRA_ENABLE, "1",
+- NULL);
+-
+- ca_context_change_device(ca_gtk_context_get(), NULL);
+ }
+
+ void SinkWidget::onMuteToggleButton() {
+--
+2.25.1
+
diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch
deleted file mode 100644
index 97ec37d4c9..0000000000
--- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol/0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch
+++ /dev/null
@@ -1,624 +0,0 @@
-From ccb3eb7b4ff65414a56e2294080885b8966da52b Mon Sep 17 00:00:00 2001
-From: Arun Raghavan <git@arunraghavan.net>
-Date: Tue, 2 Feb 2016 17:01:47 +0530
-Subject: [PATCH 2/2] build-sys: Add m4 file for AX_CXX_COMPILE_STDCXX_11
-
----
- m4/ax_cxx_compile_stdcxx.m4 | 558 +++++++++++++++++++++++++++++++++++++++++
- m4/ax_cxx_compile_stdcxx_11.m4 | 39 +++
- 2 files changed, 597 insertions(+)
- create mode 100644 m4/ax_cxx_compile_stdcxx.m4
- create mode 100644 m4/ax_cxx_compile_stdcxx_11.m4
-
-diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4
-new file mode 100644
-index 0000000..079e17d
---- /dev/null
-+++ b/m4/ax_cxx_compile_stdcxx.m4
-@@ -0,0 +1,558 @@
-+# ===========================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
-+# ===========================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
-+#
-+# DESCRIPTION
-+#
-+# Check for baseline language coverage in the compiler for the specified
-+# version of the C++ standard. If necessary, add switches to CXXFLAGS to
-+# enable support. VERSION may be '11' (for the C++11 standard) or '14'
-+# (for the C++14 standard).
-+#
-+# The second argument, if specified, indicates whether you insist on an
-+# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
-+# -std=c++11). If neither is specified, you get whatever works, with
-+# preference for an extended mode.
-+#
-+# The third argument, if specified 'mandatory' or if left unspecified,
-+# indicates that baseline support for the specified C++ standard is
-+# required and that the macro should error out if no mode with that
-+# support is found. If specified 'optional', then configuration proceeds
-+# regardless, after defining HAVE_CXX${VERSION} if and only if a
-+# supporting mode is found.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
-+# Copyright (c) 2015 Paul Norman <penorman@mac.com>
-+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-+#
-+# Copying and distribution of this file, with or without modification, are
-+# permitted in any medium without royalty provided the copyright notice
-+# and this notice are preserved. This file is offered as-is, without any
-+# warranty.
-+
-+#serial 1
-+
-+dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
-+dnl (serial version number 13).
-+
-+AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
-+ m4_if([$1], [11], [],
-+ [$1], [14], [],
-+ [$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
-+ [m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
-+ m4_if([$2], [], [],
-+ [$2], [ext], [],
-+ [$2], [noext], [],
-+ [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
-+ m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
-+ [$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
-+ [$3], [optional], [ax_cxx_compile_cxx$1_required=false],
-+ [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
-+ AC_LANG_PUSH([C++])dnl
-+ ac_success=no
-+ AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
-+ ax_cv_cxx_compile_cxx$1,
-+ [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-+ [ax_cv_cxx_compile_cxx$1=yes],
-+ [ax_cv_cxx_compile_cxx$1=no])])
-+ if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
-+ ac_success=yes
-+ fi
-+
-+ m4_if([$2], [noext], [], [dnl
-+ if test x$ac_success = xno; then
-+ for switch in -std=gnu++$1 -std=gnu++0x; do
-+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-+ $cachevar,
-+ [ac_save_CXXFLAGS="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-+ [eval $cachevar=yes],
-+ [eval $cachevar=no])
-+ CXXFLAGS="$ac_save_CXXFLAGS"])
-+ if eval test x\$$cachevar = xyes; then
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ ac_success=yes
-+ break
-+ fi
-+ done
-+ fi])
-+
-+ m4_if([$2], [ext], [], [dnl
-+ if test x$ac_success = xno; then
-+ dnl HP's aCC needs +std=c++11 according to:
-+ dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
-+ dnl Cray's crayCC needs "-h std=c++11"
-+ for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
-+ cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
-+ AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
-+ $cachevar,
-+ [ac_save_CXXFLAGS="$CXXFLAGS"
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
-+ [eval $cachevar=yes],
-+ [eval $cachevar=no])
-+ CXXFLAGS="$ac_save_CXXFLAGS"])
-+ if eval test x\$$cachevar = xyes; then
-+ CXXFLAGS="$CXXFLAGS $switch"
-+ ac_success=yes
-+ break
-+ fi
-+ done
-+ fi])
-+ AC_LANG_POP([C++])
-+ if test x$ax_cxx_compile_cxx$1_required = xtrue; then
-+ if test x$ac_success = xno; then
-+ AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
-+ fi
-+ else
-+ if test x$ac_success = xno; then
-+ HAVE_CXX$1=0
-+ AC_MSG_NOTICE([No compiler with C++$1 support was found])
-+ else
-+ HAVE_CXX$1=1
-+ AC_DEFINE(HAVE_CXX$1,1,
-+ [define if the compiler supports basic C++$1 syntax])
-+ fi
-+
-+ AC_SUBST(HAVE_CXX$1)
-+ fi
-+])
-+
-+
-+dnl Test body for checking C++11 support
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
-+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-+)
-+
-+
-+dnl Test body for checking C++14 support
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
-+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_11
-+ _AX_CXX_COMPILE_STDCXX_testbody_new_in_14
-+)
-+
-+
-+dnl Tests for new features in C++11
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
-+
-+// If the compiler admits that it is not ready for C++11, why torture it?
-+// Hopefully, this will speed up the test.
-+
-+#ifndef __cplusplus
-+
-+#error "This is not a C++ compiler"
-+
-+#elif __cplusplus < 201103L
-+
-+#error "This is not a C++11 compiler"
-+
-+#else
-+
-+namespace cxx11
-+{
-+
-+ namespace test_static_assert
-+ {
-+
-+ template <typename T>
-+ struct check
-+ {
-+ static_assert(sizeof(int) <= sizeof(T), "not big enough");
-+ };
-+
-+ }
-+
-+ namespace test_final_override
-+ {
-+
-+ struct Base
-+ {
-+ virtual void f() {}
-+ };
-+
-+ struct Derived : public Base
-+ {
-+ virtual void f() override {}
-+ };
-+
-+ }
-+
-+ namespace test_double_right_angle_brackets
-+ {
-+
-+ template < typename T >
-+ struct check {};
-+
-+ typedef check<void> single_type;
-+ typedef check<check<void>> double_type;
-+ typedef check<check<check<void>>> triple_type;
-+ typedef check<check<check<check<void>>>> quadruple_type;
-+
-+ }
-+
-+ namespace test_decltype
-+ {
-+
-+ int
-+ f()
-+ {
-+ int a = 1;
-+ decltype(a) b = 2;
-+ return a + b;
-+ }
-+
-+ }
-+
-+ namespace test_type_deduction
-+ {
-+
-+ template < typename T1, typename T2 >
-+ struct is_same
-+ {
-+ static const bool value = false;
-+ };
-+
-+ template < typename T >
-+ struct is_same<T, T>
-+ {
-+ static const bool value = true;
-+ };
-+
-+ template < typename T1, typename T2 >
-+ auto
-+ add(T1 a1, T2 a2) -> decltype(a1 + a2)
-+ {
-+ return a1 + a2;
-+ }
-+
-+ int
-+ test(const int c, volatile int v)
-+ {
-+ static_assert(is_same<int, decltype(0)>::value == true, "");
-+ static_assert(is_same<int, decltype(c)>::value == false, "");
-+ static_assert(is_same<int, decltype(v)>::value == false, "");
-+ auto ac = c;
-+ auto av = v;
-+ auto sumi = ac + av + 'x';
-+ auto sumf = ac + av + 1.0;
-+ static_assert(is_same<int, decltype(ac)>::value == true, "");
-+ static_assert(is_same<int, decltype(av)>::value == true, "");
-+ static_assert(is_same<int, decltype(sumi)>::value == true, "");
-+ static_assert(is_same<int, decltype(sumf)>::value == false, "");
-+ static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
-+ return (sumf > 0.0) ? sumi : add(c, v);
-+ }
-+
-+ }
-+
-+ namespace test_noexcept
-+ {
-+
-+ int f() { return 0; }
-+ int g() noexcept { return 0; }
-+
-+ static_assert(noexcept(f()) == false, "");
-+ static_assert(noexcept(g()) == true, "");
-+
-+ }
-+
-+ namespace test_constexpr
-+ {
-+
-+ template < typename CharT >
-+ unsigned long constexpr
-+ strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
-+ {
-+ return *s ? strlen_c_r(s + 1, acc + 1) : acc;
-+ }
-+
-+ template < typename CharT >
-+ unsigned long constexpr
-+ strlen_c(const CharT *const s) noexcept
-+ {
-+ return strlen_c_r(s, 0UL);
-+ }
-+
-+ static_assert(strlen_c("") == 0UL, "");
-+ static_assert(strlen_c("1") == 1UL, "");
-+ static_assert(strlen_c("example") == 7UL, "");
-+ static_assert(strlen_c("another\0example") == 7UL, "");
-+
-+ }
-+
-+ namespace test_rvalue_references
-+ {
-+
-+ template < int N >
-+ struct answer
-+ {
-+ static constexpr int value = N;
-+ };
-+
-+ answer<1> f(int&) { return answer<1>(); }
-+ answer<2> f(const int&) { return answer<2>(); }
-+ answer<3> f(int&&) { return answer<3>(); }
-+
-+ void
-+ test()
-+ {
-+ int i = 0;
-+ const int c = 0;
-+ static_assert(decltype(f(i))::value == 1, "");
-+ static_assert(decltype(f(c))::value == 2, "");
-+ static_assert(decltype(f(0))::value == 3, "");
-+ }
-+
-+ }
-+
-+ namespace test_uniform_initialization
-+ {
-+
-+ struct test
-+ {
-+ static const int zero {};
-+ static const int one {1};
-+ };
-+
-+ static_assert(test::zero == 0, "");
-+ static_assert(test::one == 1, "");
-+
-+ }
-+
-+ namespace test_lambdas
-+ {
-+
-+ void
-+ test1()
-+ {
-+ auto lambda1 = [](){};
-+ auto lambda2 = lambda1;
-+ lambda1();
-+ lambda2();
-+ }
-+
-+ int
-+ test2()
-+ {
-+ auto a = [](int i, int j){ return i + j; }(1, 2);
-+ auto b = []() -> int { return '0'; }();
-+ auto c = [=](){ return a + b; }();
-+ auto d = [&](){ return c; }();
-+ auto e = [a, &b](int x) mutable {
-+ const auto identity = [](int y){ return y; };
-+ for (auto i = 0; i < a; ++i)
-+ a += b--;
-+ return x + identity(a + b);
-+ }(0);
-+ return a + b + c + d + e;
-+ }
-+
-+ int
-+ test3()
-+ {
-+ const auto nullary = [](){ return 0; };
-+ const auto unary = [](int x){ return x; };
-+ using nullary_t = decltype(nullary);
-+ using unary_t = decltype(unary);
-+ const auto higher1st = [](nullary_t f){ return f(); };
-+ const auto higher2nd = [unary](nullary_t f1){
-+ return [unary, f1](unary_t f2){ return f2(unary(f1())); };
-+ };
-+ return higher1st(nullary) + higher2nd(nullary)(unary);
-+ }
-+
-+ }
-+
-+ namespace test_variadic_templates
-+ {
-+
-+ template <int...>
-+ struct sum;
-+
-+ template <int N0, int... N1toN>
-+ struct sum<N0, N1toN...>
-+ {
-+ static constexpr auto value = N0 + sum<N1toN...>::value;
-+ };
-+
-+ template <>
-+ struct sum<>
-+ {
-+ static constexpr auto value = 0;
-+ };
-+
-+ static_assert(sum<>::value == 0, "");
-+ static_assert(sum<1>::value == 1, "");
-+ static_assert(sum<23>::value == 23, "");
-+ static_assert(sum<1, 2>::value == 3, "");
-+ static_assert(sum<5, 5, 11>::value == 21, "");
-+ static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
-+
-+ }
-+
-+ // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
-+ // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
-+ // because of this.
-+ namespace test_template_alias_sfinae
-+ {
-+
-+ struct foo {};
-+
-+ template<typename T>
-+ using member = typename T::member_type;
-+
-+ template<typename T>
-+ void func(...) {}
-+
-+ template<typename T>
-+ void func(member<T>*) {}
-+
-+ void test();
-+
-+ void test() { func<foo>(0); }
-+
-+ }
-+
-+} // namespace cxx11
-+
-+#endif // __cplusplus >= 201103L
-+
-+]])
-+
-+
-+dnl Tests for new features in C++14
-+
-+m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
-+
-+// If the compiler admits that it is not ready for C++14, why torture it?
-+// Hopefully, this will speed up the test.
-+
-+#ifndef __cplusplus
-+
-+#error "This is not a C++ compiler"
-+
-+#elif __cplusplus < 201402L
-+
-+#error "This is not a C++14 compiler"
-+
-+#else
-+
-+namespace cxx14
-+{
-+
-+ namespace test_polymorphic_lambdas
-+ {
-+
-+ int
-+ test()
-+ {
-+ const auto lambda = [](auto&&... args){
-+ const auto istiny = [](auto x){
-+ return (sizeof(x) == 1UL) ? 1 : 0;
-+ };
-+ const int aretiny[] = { istiny(args)... };
-+ return aretiny[0];
-+ };
-+ return lambda(1, 1L, 1.0f, '1');
-+ }
-+
-+ }
-+
-+ namespace test_binary_literals
-+ {
-+
-+ constexpr auto ivii = 0b0000000000101010;
-+ static_assert(ivii == 42, "wrong value");
-+
-+ }
-+
-+ namespace test_generalized_constexpr
-+ {
-+
-+ template < typename CharT >
-+ constexpr unsigned long
-+ strlen_c(const CharT *const s) noexcept
-+ {
-+ auto length = 0UL;
-+ for (auto p = s; *p; ++p)
-+ ++length;
-+ return length;
-+ }
-+
-+ static_assert(strlen_c("") == 0UL, "");
-+ static_assert(strlen_c("x") == 1UL, "");
-+ static_assert(strlen_c("test") == 4UL, "");
-+ static_assert(strlen_c("another\0test") == 7UL, "");
-+
-+ }
-+
-+ namespace test_lambda_init_capture
-+ {
-+
-+ int
-+ test()
-+ {
-+ auto x = 0;
-+ const auto lambda1 = [a = x](int b){ return a + b; };
-+ const auto lambda2 = [a = lambda1(x)](){ return a; };
-+ return lambda2();
-+ }
-+
-+ }
-+
-+ namespace test_digit_seperators
-+ {
-+
-+ constexpr auto ten_million = 100'000'000;
-+ static_assert(ten_million == 100000000, "");
-+
-+ }
-+
-+ namespace test_return_type_deduction
-+ {
-+
-+ auto f(int& x) { return x; }
-+ decltype(auto) g(int& x) { return x; }
-+
-+ template < typename T1, typename T2 >
-+ struct is_same
-+ {
-+ static constexpr auto value = false;
-+ };
-+
-+ template < typename T >
-+ struct is_same<T, T>
-+ {
-+ static constexpr auto value = true;
-+ };
-+
-+ int
-+ test()
-+ {
-+ auto x = 0;
-+ static_assert(is_same<int, decltype(f(x))>::value, "");
-+ static_assert(is_same<int&, decltype(g(x))>::value, "");
-+ return x;
-+ }
-+
-+ }
-+
-+} // namespace cxx14
-+
-+#endif // __cplusplus >= 201402L
-+
-+]])
-diff --git a/m4/ax_cxx_compile_stdcxx_11.m4 b/m4/ax_cxx_compile_stdcxx_11.m4
-new file mode 100644
-index 0000000..09db383
---- /dev/null
-+++ b/m4/ax_cxx_compile_stdcxx_11.m4
-@@ -0,0 +1,39 @@
-+# ============================================================================
-+# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html
-+# ============================================================================
-+#
-+# SYNOPSIS
-+#
-+# AX_CXX_COMPILE_STDCXX_11([ext|noext], [mandatory|optional])
-+#
-+# DESCRIPTION
-+#
-+# Check for baseline language coverage in the compiler for the C++11
-+# standard; if necessary, add switches to CXXFLAGS to enable support.
-+#
-+# This macro is a convenience alias for calling the AX_CXX_COMPILE_STDCXX
-+# macro with the version set to C++11. The two optional arguments are
-+# forwarded literally as the second and third argument respectively.
-+# Please see the documentation for the AX_CXX_COMPILE_STDCXX macro for
-+# more information. If you want to use this macro, you also need to
-+# download the ax_cxx_compile_stdcxx.m4 file.
-+#
-+# LICENSE
-+#
-+# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
-+# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
-+# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
-+# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
-+# Copyright (c) 2015 Paul Norman <penorman@mac.com>
-+# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
-+#
-+# Copying and distribution of this file, with or without modification, are
-+# permitted in any medium without royalty provided the copyright notice
-+# and this notice are preserved. This file is offered as-is, without any
-+# warranty.
-+
-+#serial 14
-+
-+include([ax_cxx_compile_stdcxx.m4])
-+
-+AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [AX_CXX_COMPILE_STDCXX([11], [$1], [$2])])
---
-2.12.1
-
diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb
deleted file mode 100644
index 959068dd35..0000000000
--- a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_3.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server."
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "intltool-native gtkmm libcanberra pulseaudio"
-
-inherit gnome distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz \
- file://0001-build-sys-Use-C-11-for-building.patch \
- file://0002-build-sys-Add-m4-file-for-AX_CXX_COMPILE_STDCXX_11.patch \
- "
-SRC_URI[md5sum] = "176308d2c03f8f3a7b2bd4f4d284fe71"
-SRC_URI[sha256sum] = "b3d2ea5a25fc88dcee80c396014f72df1b4742f8cfbbc5349c39d64a0d338890"
-
-EXTRA_OECONF = " --disable-gtk3 --disable-lynx "
-
-RDEPENDS_${PN} += "pulseaudio-server"
diff --git a/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb
new file mode 100644
index 0000000000..012fc3a94d
--- /dev/null
+++ b/meta-oe/recipes-multimedia/pulseaudio/pavucontrol_5.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "PulseAudio Volume Control (pavucontrol) is a simple GTK based volume control tool ("mixer") for the PulseAudio sound server."
+HOMEPAGE = "https://freedesktop.org/software/pulseaudio/pavucontrol/"
+SECTION = "x11/multimedia"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
+
+# glib-2.0-native is required for glib-gettextize, which is used by the
+# AM_GLIB_GNU_GETTEXT macro in configure.ac. That macro is deprecated, so the
+# glib-2.0-native dependency may go away at some point (something to keep in
+# mind when doing version upgrades).
+DEPENDS = "libxml-parser-perl-native intltool-native glib-2.0-native gtkmm3 pulseaudio json-glib"
+
+inherit autotools features_check perlnative pkgconfig
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+SRC_URI = "http://freedesktop.org/software/pulseaudio/${BPN}/${BP}.tar.xz"
+SRC_URI:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'file://0001-pavucontrol-remove-canberra-gtk-support.patch', '', d)}"
+
+SRC_URI[sha256sum] = "ce2b72c3b5f1a70ad0df19dd81750f9455bd20870d1d3a36d20536af2e8f4e7a"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = ",,libcanberra"
+
+EXTRA_OECONF = "--disable-lynx "
+
+RDEPENDS:${PN} += "pulseaudio-server"
diff --git a/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb b/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb
index 098b08d476..87320a98e8 100644
--- a/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb
+++ b/meta-oe/recipes-multimedia/sound-themes/sound-theme-freedesktop_0.8.bb
@@ -1,6 +1,6 @@
SUMMARY = "Freedesktop sound theme"
HOMEPAGE = "http://freedesktop.org/wiki/Specifications/sound-theme-spec"
-LICENSE = "GPLv2+ & CC-BY-3.0 & CC-BY-SA-3.0"
+LICENSE = "GPL-2.0-or-later & CC-BY-3.0 & CC-BY-SA-3.0"
LIC_FILES_CHKSUM = "file://CREDITS;md5=3213e601ce34bb42ddc3498903ac4e69"
# glib-2.0 for glib-gettext.m4 which provides AM_GLIB_GNU_GETTEXT
@@ -9,7 +9,7 @@ DEPENDS = "glib-2.0 intltool-native"
inherit autotools gettext
-DEPENDS += "glib-2.0-native intltool-native"
+DEPENDS += "glib-2.0-native"
SRC_URI = "http://people.freedesktop.org/~mccann/dist/${BPN}-${PV}.tar.bz2"
SRC_URI[md5sum] = "d7387912cfd275282d1ec94483cb2f62"
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
index eb294b3fb4..52f0cd3388 100644
--- 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
@@ -1,7 +1,8 @@
-From 67a6e919b8263d6d2b7150e62f26fb06bbc526ef Mon Sep 17 00:00:00 2001
+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.
@@ -12,11 +13,13 @@ Conflicts:
utils/media-ctl/Makefile.am
---
+Upstream-Status: Pending
+
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 ee7dcc9..d11fa2e 100644
+index c48c8d6..e255e16 100644
--- a/utils/media-ctl/Makefile.am
+++ b/utils/media-ctl/Makefile.am
@@ -1,8 +1,7 @@
@@ -30,7 +33,7 @@ index ee7dcc9..d11fa2e 100644
+libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS)
media-bus-format-names.h: ../../include/linux/media-bus-format.h
- sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \
+ $(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
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch
deleted file mode 100644
index 12609d30e2..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-buildsystem-do-not-assume-building-in-source-tree.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 75372b8088c20474497b79ec6cf1e99f2d17f56d Mon Sep 17 00:00:00 2001
-From: Ismo Puustinen <ismo.puustinen@intel.com>
-Date: Mon, 3 Apr 2017 13:23:38 +0300
-Subject: [PATCH] buildsystem: do not assume building in source tree.
-
-Use $(top_srcdir) as reference for include paths and buildtime scripts.
-Otherwise compilation outside of project root directory will fail
-because header and script paths are wrong.
-
-To reproduce: mkdir b; cd b; ../configure; make
-
-Upstream-status: Accepted [https://git.linuxtv.org//v4l-utils.git/commit/?id=bd98c9a99bffc8d44c54859345e4dfee0ada4275]
-
-Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
-
----
- utils/cec-compliance/Makefile.am | 2 +-
- utils/cec-ctl/Makefile.am | 2 +-
- utils/cec-follower/Makefile.am | 4 ++--
- utils/qv4l2/Makefile.am | 2 +-
- utils/v4l2-compliance/Makefile.am | 2 +-
- utils/v4l2-ctl/Makefile.am | 2 +-
- 6 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/utils/cec-compliance/Makefile.am b/utils/cec-compliance/Makefile.am
-index f05fe6c..f7d1535 100644
---- a/utils/cec-compliance/Makefile.am
-+++ b/utils/cec-compliance/Makefile.am
-@@ -7,7 +7,7 @@ cec_compliance_LDFLAGS = -lrt
- cec-compliance.cpp: cec-table.h
-
- cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- cec-compliance.cpp: version.h
-
-diff --git a/utils/cec-ctl/Makefile.am b/utils/cec-ctl/Makefile.am
-index 4a6eae5..570a070 100644
---- a/utils/cec-ctl/Makefile.am
-+++ b/utils/cec-ctl/Makefile.am
-@@ -6,7 +6,7 @@ cec_ctl_SOURCES = cec-ctl.cpp
- cec-ctl.cpp: cec-ctl-gen.h
-
- cec-ctl-gen.h: msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ./msg2ctl.pl 0 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 0 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- clean-local:
- -rm -vf cec-ctl-gen.h
-diff --git a/utils/cec-follower/Makefile.am b/utils/cec-follower/Makefile.am
-index d8ad292..e3553eb 100644
---- a/utils/cec-follower/Makefile.am
-+++ b/utils/cec-follower/Makefile.am
-@@ -7,12 +7,12 @@ cec_follower_LDFLAGS = -lrt
- cec-log.cpp: cec-log.h
-
- cec-log.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ../cec-ctl/msg2ctl.pl 1 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 1 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- cec-follower.cpp: cec-table.h version.h
-
- cec-table.h: ../cec-ctl/msg2ctl.pl ../../include/linux/cec.h ../../include/linux/cec-funcs.h
-- ../cec-ctl/msg2ctl.pl 2 ../../include/linux/cec.h ../../include/linux/cec-funcs.h >$@
-+ $(top_srcdir)/utils/cec-ctl/msg2ctl.pl 2 $(top_srcdir)/include/linux/cec.h $(top_srcdir)/include/linux/cec-funcs.h >$@
-
- version.h:
- @if git show-ref -s HEAD >/dev/null 2>&1; then \
-diff --git a/utils/qv4l2/Makefile.am b/utils/qv4l2/Makefile.am
-index fd58486..ccd1a2a 100644
---- a/utils/qv4l2/Makefile.am
-+++ b/utils/qv4l2/Makefile.am
-@@ -8,7 +8,7 @@ qv4l2_SOURCES = qv4l2.cpp general-tab.cpp ctrl-tab.cpp vbi-tab.cpp capture-win.c
- nodist_qv4l2_SOURCES = moc_qv4l2.cpp moc_general-tab.cpp moc_capture-win.cpp moc_vbi-tab.cpp qrc_qv4l2.cpp
- qv4l2_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la \
- ../libv4l2util/libv4l2util.la ../libmedia_dev/libmedia_dev.la
--qv4l2_CPPFLAGS = -I../common
-+qv4l2_CPPFLAGS = -I$(top_srcdir)/utils/common
-
- if WITH_QTGL
- qv4l2_CPPFLAGS += $(QTGL_CFLAGS)
-diff --git a/utils/v4l2-compliance/Makefile.am b/utils/v4l2-compliance/Makefile.am
-index c2b5919..fb8d12e 100644
---- a/utils/v4l2-compliance/Makefile.am
-+++ b/utils/v4l2-compliance/Makefile.am
-@@ -5,7 +5,7 @@ DEFS :=
- v4l2_compliance_SOURCES = v4l2-compliance.cpp v4l2-test-debug.cpp v4l2-test-input-output.cpp \
- v4l2-test-controls.cpp v4l2-test-io-config.cpp v4l2-test-formats.cpp v4l2-test-buffers.cpp \
- v4l2-test-codecs.cpp v4l2-test-colors.cpp v4l2-compliance.h
--v4l2_compliance_CPPFLAGS = -I../common
-+v4l2_compliance_CPPFLAGS = -I$(top_srcdir)/utils/common
-
- if WITH_V4L2_COMPLIANCE_LIBV4L
- v4l2_compliance_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
-diff --git a/utils/v4l2-ctl/Makefile.am b/utils/v4l2-ctl/Makefile.am
-index 955647d..825e53f 100644
---- a/utils/v4l2-ctl/Makefile.am
-+++ b/utils/v4l2-ctl/Makefile.am
-@@ -7,7 +7,7 @@ v4l2_ctl_SOURCES = v4l2-ctl.cpp v4l2-ctl.h v4l2-ctl-common.cpp v4l2-ctl-tuner.cp
- v4l2-ctl-overlay.cpp v4l2-ctl-vbi.cpp v4l2-ctl-selection.cpp v4l2-ctl-misc.cpp \
- v4l2-ctl-streaming.cpp v4l2-ctl-sdr.cpp v4l2-ctl-edid.cpp v4l2-ctl-modes.cpp \
- v4l2-tpg-colors.c v4l2-tpg-core.c v4l-stream.c
--v4l2_ctl_CPPFLAGS = -I../common
-+v4l2_ctl_CPPFLAGS = -I$(top_srcdir)/utils/common
-
- if WITH_V4L2_CTL_LIBV4L
- v4l2_ctl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la -lrt -lpthread
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch
deleted file mode 100644
index 82fc3e120f..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From b2efcc20617d6317f74c4acb2a6af5b765f20b34 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 13:11:25 -0700
-Subject: [PATCH] ir-ctl: Define TEMP_FAILURE_RETRY if undefined
-
-use strndup() instead of strndupa() which is not
-universally available in C libraries
-
-Taken from AlpineLinux
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- utils/ir-ctl/ir-ctl.c | 14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/utils/ir-ctl/ir-ctl.c b/utils/ir-ctl/ir-ctl.c
-index bc58cee..1a44011 100644
---- a/utils/ir-ctl/ir-ctl.c
-+++ b/utils/ir-ctl/ir-ctl.c
-@@ -42,6 +42,16 @@
- # define _(string) string
- #endif
-
-+/* taken from glibc unistd.h */
-+#ifndef TEMP_FAILURE_RETRY
-+#define TEMP_FAILURE_RETRY(expression) \
-+ (__extension__ \
-+ ({ long int __result; \
-+ do __result = (long int) (expression); \
-+ while (__result == -1L && errno == EINTR); \
-+ __result; }))
-+#endif
-+
- # define N_(string) string
-
-
-@@ -344,12 +354,14 @@ static struct file *read_scancode(const char *name)
- return NULL;
- }
-
-- pstr = strndupa(name, p - name);
-+ pstr = strndup(name, p - name);
-
- if (!protocol_match(pstr, &proto)) {
- fprintf(stderr, _("error: protocol '%s' not found\n"), pstr);
-+ free(pstr);
- return NULL;
- }
-+ free(pstr);
-
- if (!strtoscancode(p + 1, &scancode)) {
- fprintf(stderr, _("error: invalid scancode '%s'\n"), p + 1);
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
deleted file mode 100644
index a779a307d7..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 49f865a17d62db7bbd333a9b83fadeea55686e35 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 13:17:19 -0700
-Subject: [PATCH] contrib/test: Link mc_nextgen_test with libargp if needed
-
-musl depends on external argp implementation e.g.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- contrib/test/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/contrib/test/Makefile.am b/contrib/test/Makefile.am
-index 4641e21..e47b948 100644
---- a/contrib/test/Makefile.am
-+++ b/contrib/test/Makefile.am
-@@ -32,7 +32,7 @@ v4l2gl_LDFLAGS = $(X11_LIBS) $(GL_LIBS) $(GLU_LIBS) $(ARGP_LIBS)
- v4l2gl_LDADD = ../../lib/libv4l2/libv4l2.la ../../lib/libv4lconvert/libv4lconvert.la
-
- mc_nextgen_test_CFLAGS = $(LIBUDEV_CFLAGS)
--mc_nextgen_test_LDFLAGS = $(LIBUDEV_LIBS)
-+mc_nextgen_test_LDFLAGS = $(ARGP_LIBS) $(LIBUDEV_LIBS)
-
-
- ioctl_test_SOURCES = ioctl-test.c ioctl-test.h ioctl_32.h ioctl_64.h
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
new file mode 100644
index 0000000000..d52475974f
--- /dev/null
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch
@@ -0,0 +1,23 @@
+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
+
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..f6fcee92ea
--- /dev/null
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-original-patch-export-mediactl-headers.patch
@@ -0,0 +1,26 @@
+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
+
+---
+Upstream-Status: Pending
+
+ 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/0003-v4l2-ctl-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch
deleted file mode 100644
index 5b84af2c32..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0003-v4l2-ctl-Do-not-use-getsubopt.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From f7a4b79b3323534460a63b3e6c58ebaf06adf207 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 13:20:05 -0700
-Subject: [PATCH] v4l2-ctl: 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.
-
-Taken from AlpineLinux
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- utils/v4l2-ctl/v4l2-ctl-common.cpp | 19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp
-index 3ea6cd3..291fb3e 100644
---- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
-+++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
-@@ -692,16 +692,17 @@ static bool parse_subset(char *optarg)
-
- static bool parse_next_subopt(char **subs, char **value)
- {
-- static char *const subopts[] = {
-- NULL
-- };
-- int opt = getsubopt(subs, subopts, value);
-+ char *p = *subs;
-+ *value = *subs;
-
-- if (opt < 0 || *value)
-- return false;
-- fprintf(stderr, "No value given to suboption <%s>\n",
-- subopts[opt]);
-- return true;
-+ while (*p && *p != ',')
-+ p++;
-+
-+ if (*p)
-+ *p++ = '\0';
-+
-+ *subs = p;
-+ return false;
- }
-
- void common_cmd(int ch, char *optarg)
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
new file mode 100644
index 0000000000..fb844acbe4
--- /dev/null
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
@@ -0,0 +1,60 @@
+From 6e7e52de7afe29597016952a7317faf9c3ea3268 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>
+
+Adapt patch to 1.23.0.
+
+(v4l-utils rev fd544473800d02e90bc289434cc44e5aa8fadd0f).
+
+%% original patch: 0007-Do-not-use-getsubopt.patch
+
+Signed-off-by: Daniel Gomez <daniel@qtec.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 d77f7104..838c297d 100644
+--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
+@@ -994,15 +994,17 @@ static bool parse_subset(char *optarg)
+
+ static bool parse_next_subopt(char **subs, char **value)
+ {
+- static char *const subopts[] = {
+- nullptr
+- };
+- int opt = v4l_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)
+--
+2.35.1
+
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch
deleted file mode 100644
index 55a5cdc8a1..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/export-mediactl-headers.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From b82e509c10659a4647961a6da3adf4d285dea2dd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 1 Mar 2015 22:25:07 +0000
-
----
- 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 7c520a2..748353d 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/mediactl-pkgconfig.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch
deleted file mode 100644
index 9fcf61165b..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/mediactl-pkgconfig.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-From 480c04ac6a9d11bfef9d4aca073052fdcee4fdea Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 1 Mar 2015 22:25:07 +0000
-
----
- 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 d11fa2e..7c520a2 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_1.12.3.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb
deleted file mode 100644
index 57cfb1318f..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.12.3.bb
+++ /dev/null
@@ -1,55 +0,0 @@
-SUMMARY = "v4l2 and IR applications"
-LICENSE = "GPLv2 & LGPLv2.1"
-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)}"
-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://0001-buildsystem-do-not-assume-building-in-source-tree.patch \
- file://mediactl-pkgconfig.patch \
- file://export-mediactl-headers.patch \
- file://0001-ir-ctl-Define-TEMP_FAILURE_RETRY-if-undefined.patch \
- file://0002-contrib-test-Link-mc_nextgen_test-with-libargp-if-ne.patch \
- file://0003-v4l2-ctl-Do-not-use-getsubopt.patch \
- "
-SRC_URI[md5sum] = "89e1ed6c69c94e0489dc0a638c7841aa"
-SRC_URI[sha256sum] = "5a47dd6f0e7dfe902d94605c01d385a4a4e87583ff5856d6f181900ea81cf46e"
-
-EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev"
-
-VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps"
-
-PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dbg libv4l-dev"
-
-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-dbg += "${libdir}/libv4l/.debug ${libdir}/libv4l/plugins/.debug"
-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.24.1.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.24.1.bb
new file mode 100644
index 0000000000..c02645a6b8
--- /dev/null
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.24.1.bb
@@ -0,0 +1,87 @@
+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 autotools gettext pkgconfig
+
+PACKAGECONFIG ??= "media-ctl"
+PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,,"
+PACKAGECONFIG[qv4l2] = ",--disable-qv4l2"
+PACKAGECONFIG[qvidcap] = ",--disable-qvidcap"
+
+SRC_URI = "\
+ git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=stable-1.24 \
+ 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://0004-Do-not-use-getsubopt.patch \
+"
+
+SRCREV = "8799081b143627c9c09dea0c60ad3d1cc17cc848"
+
+PV .= "+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+do_configure:prepend() {
+ cd ${S}; ./bootstrap.sh; cd -
+}
+
+EXTRA_OECONF = "--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 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"
+
+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/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch b/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch
deleted file mode 100644
index 41a5dbf4fd..0000000000
--- a/meta-oe/recipes-multimedia/v4l2apps/yavta/0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch
+++ /dev/null
@@ -1,961 +0,0 @@
-From 141d3b3593722eb3d588e7c4b1542f810bc25853 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Thu, 5 Jun 2014 11:29:20 -0500
-Subject: [PATCH] Add stdout mode to allow streaming over the network with nc
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-Signed-off-by: Chase Maupin <Chase.Maupin@ti.com>
----
- yavta.c | 315 ++++++++++++++++++++++++++++++++++-----------------------------
- 1 file changed, 169 insertions(+), 146 deletions(-)
-
-diff --git a/yavta.c b/yavta.c
-index 32adc26..b398da0 100644
---- a/yavta.c
-+++ b/yavta.c
-@@ -309,7 +309,7 @@ static bool video_has_fd(struct device *dev)
- static int video_set_fd(struct device *dev, int fd)
- {
- if (video_has_fd(dev)) {
-- printf("Can't set fd (already open).\n");
-+ fprintf(stderr, "Can't set fd (already open).\n");
- return -1;
- }
-
-@@ -321,18 +321,18 @@ static int video_set_fd(struct device *dev, int fd)
- static int video_open(struct device *dev, const char *devname)
- {
- if (video_has_fd(dev)) {
-- printf("Can't open device (already open).\n");
-+ fprintf(stderr, "Can't open device (already open).\n");
- return -1;
- }
-
- dev->fd = open(devname, O_RDWR);
- if (dev->fd < 0) {
-- printf("Error opening device %s: %s (%d).\n", devname,
-+ fprintf(stderr, "Error opening device %s: %s (%d).\n", devname,
- strerror(errno), errno);
- return dev->fd;
- }
-
-- printf("Device %s opened.\n", devname);
-+ fprintf(stderr, "Device %s opened.\n", devname);
-
- dev->opened = 1;
-
-@@ -352,7 +352,7 @@ static int video_querycap(struct device *dev, unsigned int *capabilities)
- *capabilities = cap.capabilities & V4L2_CAP_DEVICE_CAPS
- ? cap.device_caps : cap.capabilities;
-
-- printf("Device `%s' on `%s' is a video %s (%s mplanes) device.\n",
-+ fprintf(stderr, "Device `%s' on `%s' is a video %s (%s mplanes) device.\n",
- cap.card, cap.bus_info,
- video_is_capture(dev) ? "capture" : "output",
- video_is_mplane(dev) ? "with" : "without");
-@@ -370,7 +370,7 @@ static int cap_get_buf_type(unsigned int capabilities)
- } else if (capabilities & V4L2_CAP_VIDEO_OUTPUT) {
- return V4L2_BUF_TYPE_VIDEO_OUTPUT;
- } else {
-- printf("Device supports neither capture nor output.\n");
-+ fprintf(stderr, "Device supports neither capture nor output.\n");
- return -EINVAL;
- }
-
-@@ -440,7 +440,7 @@ static int get_control(struct device *dev, unsigned int id, int type,
- }
- }
-
-- printf("unable to get control 0x%8.8x: %s (%d).\n",
-+ fprintf(stderr, "unable to get control 0x%8.8x: %s (%d).\n",
- id, strerror(errno), errno);
- return -1;
- }
-@@ -484,12 +484,12 @@ static void set_control(struct device *dev, unsigned int id, int type,
- val = old.value;
- }
- if (ret == -1) {
-- printf("unable to set control 0x%8.8x: %s (%d).\n",
-+ fprintf(stderr, "unable to set control 0x%8.8x: %s (%d).\n",
- id, strerror(errno), errno);
- return;
- }
-
-- printf("Control 0x%08x set to %" PRId64 ", is %" PRId64 "\n",
-+ fprintf(stderr, "Control 0x%08x set to %" PRId64 ", is %" PRId64 "\n",
- id, old_val, val);
- }
-
-@@ -504,7 +504,7 @@ static int video_get_format(struct device *dev)
-
- ret = ioctl(dev->fd, VIDIOC_G_FMT, &fmt);
- if (ret < 0) {
-- printf("Unable to get format: %s (%d).\n", strerror(errno),
-+ fprintf(stderr, "Unable to get format: %s (%d).\n", strerror(errno),
- errno);
- return ret;
- }
-@@ -514,7 +514,7 @@ static int video_get_format(struct device *dev)
- dev->height = fmt.fmt.pix_mp.height;
- dev->num_planes = fmt.fmt.pix_mp.num_planes;
-
-- printf("Video format: %s (%08x) %ux%u field %s, %u planes: \n",
-+ fprintf(stderr, "Video format: %s (%08x) %ux%u field %s, %u planes: \n",
- v4l2_format_name(fmt.fmt.pix_mp.pixelformat), fmt.fmt.pix_mp.pixelformat,
- fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height,
- v4l2_field_name(fmt.fmt.pix_mp.field),
-@@ -527,7 +527,7 @@ static int video_get_format(struct device *dev)
- fmt.fmt.pix_mp.plane_fmt[i].bytesperline ?
- fmt.fmt.pix_mp.plane_fmt[i].sizeimage : 0;
-
-- printf(" * Stride %u, buffer size %u\n",
-+ fprintf(stderr, " * Stride %u, buffer size %u\n",
- fmt.fmt.pix_mp.plane_fmt[i].bytesperline,
- fmt.fmt.pix_mp.plane_fmt[i].sizeimage);
- }
-@@ -539,7 +539,7 @@ static int video_get_format(struct device *dev)
- dev->plane_fmt[0].bytesperline = fmt.fmt.pix.bytesperline;
- dev->plane_fmt[0].sizeimage = fmt.fmt.pix.bytesperline ? fmt.fmt.pix.sizeimage : 0;
-
-- printf("Video format: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
-+ fprintf(stderr, "Video format: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
- v4l2_format_name(fmt.fmt.pix.pixelformat), fmt.fmt.pix.pixelformat,
- fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.bytesperline,
- v4l2_field_name(fmt.fmt.pix_mp.field),
-@@ -581,25 +581,25 @@ static int video_set_format(struct device *dev, unsigned int w, unsigned int h,
-
- ret = ioctl(dev->fd, VIDIOC_S_FMT, &fmt);
- if (ret < 0) {
-- printf("Unable to set format: %s (%d).\n", strerror(errno),
-+ fprintf(stderr, "Unable to set format: %s (%d).\n", strerror(errno),
- errno);
- return ret;
- }
-
- if (video_is_mplane(dev)) {
-- printf("Video format set: %s (%08x) %ux%u field %s, %u planes: \n",
-+ fprintf(stderr, "Video format set: %s (%08x) %ux%u field %s, %u planes: \n",
- v4l2_format_name(fmt.fmt.pix_mp.pixelformat), fmt.fmt.pix_mp.pixelformat,
- fmt.fmt.pix_mp.width, fmt.fmt.pix_mp.height,
- v4l2_field_name(fmt.fmt.pix_mp.field),
- fmt.fmt.pix_mp.num_planes);
-
- for (i = 0; i < fmt.fmt.pix_mp.num_planes; i++) {
-- printf(" * Stride %u, buffer size %u\n",
-+ fprintf(stderr, " * Stride %u, buffer size %u\n",
- fmt.fmt.pix_mp.plane_fmt[i].bytesperline,
- fmt.fmt.pix_mp.plane_fmt[i].sizeimage);
- }
- } else {
-- printf("Video format set: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
-+ fprintf(stderr, "Video format set: %s (%08x) %ux%u (stride %u) field %s buffer size %u\n",
- v4l2_format_name(fmt.fmt.pix.pixelformat), fmt.fmt.pix.pixelformat,
- fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.bytesperline,
- v4l2_field_name(fmt.fmt.pix.field),
-@@ -619,16 +619,16 @@ static int video_set_framerate(struct device *dev, struct v4l2_fract *time_per_f
-
- ret = ioctl(dev->fd, VIDIOC_G_PARM, &parm);
- if (ret < 0) {
-- printf("Unable to get frame rate: %s (%d).\n",
-+ fprintf(stderr, "Unable to get frame rate: %s (%d).\n",
- strerror(errno), errno);
- return ret;
- }
-
-- printf("Current frame rate: %u/%u\n",
-+ fprintf(stderr, "Current frame rate: %u/%u\n",
- parm.parm.capture.timeperframe.numerator,
- parm.parm.capture.timeperframe.denominator);
-
-- printf("Setting frame rate to: %u/%u\n",
-+ fprintf(stderr, "Setting frame rate to: %u/%u\n",
- time_per_frame->numerator,
- time_per_frame->denominator);
-
-@@ -637,19 +637,19 @@ static int video_set_framerate(struct device *dev, struct v4l2_fract *time_per_f
-
- ret = ioctl(dev->fd, VIDIOC_S_PARM, &parm);
- if (ret < 0) {
-- printf("Unable to set frame rate: %s (%d).\n", strerror(errno),
-+ fprintf(stderr, "Unable to set frame rate: %s (%d).\n", strerror(errno),
- errno);
- return ret;
- }
-
- ret = ioctl(dev->fd, VIDIOC_G_PARM, &parm);
- if (ret < 0) {
-- printf("Unable to get frame rate: %s (%d).\n", strerror(errno),
-+ fprintf(stderr, "Unable to get frame rate: %s (%d).\n", strerror(errno),
- errno);
- return ret;
- }
-
-- printf("Frame rate set: %u/%u\n",
-+ fprintf(stderr, "Frame rate set: %u/%u\n",
- parm.parm.capture.timeperframe.numerator,
- parm.parm.capture.timeperframe.denominator);
- return 0;
-@@ -674,7 +674,7 @@ static int video_buffer_mmap(struct device *dev, struct buffer *buffer,
- buffer->mem[i] = mmap(0, length, PROT_READ | PROT_WRITE, MAP_SHARED,
- dev->fd, offset);
- if (buffer->mem[i] == MAP_FAILED) {
-- printf("Unable to map buffer %u/%u: %s (%d)\n",
-+ fprintf(stderr, "Unable to map buffer %u/%u: %s (%d)\n",
- buffer->idx, i, strerror(errno), errno);
- return -1;
- }
-@@ -682,7 +682,7 @@ static int video_buffer_mmap(struct device *dev, struct buffer *buffer,
- buffer->size[i] = length;
- buffer->padding[i] = 0;
-
-- printf("Buffer %u/%u mapped at address %p.\n",
-+ fprintf(stderr, "Buffer %u/%u mapped at address %p.\n",
- buffer->idx, i, buffer->mem[i]);
- }
-
-@@ -697,7 +697,7 @@ static int video_buffer_munmap(struct device *dev, struct buffer *buffer)
- for (i = 0; i < dev->num_planes; i++) {
- ret = munmap(buffer->mem[i], buffer->size[i]);
- if (ret < 0) {
-- printf("Unable to unmap buffer %u/%u: %s (%d)\n",
-+ fprintf(stderr, "Unable to unmap buffer %u/%u: %s (%d)\n",
- buffer->idx, i, strerror(errno), errno);
- }
-
-@@ -725,7 +725,7 @@ static int video_buffer_alloc_userptr(struct device *dev, struct buffer *buffer,
- ret = posix_memalign(&buffer->mem[i], page_size,
- length + offset + padding);
- if (ret < 0) {
-- printf("Unable to allocate buffer %u/%u (%d)\n",
-+ fprintf(stderr, "Unable to allocate buffer %u/%u (%d)\n",
- buffer->idx, i, ret);
- return -ENOMEM;
- }
-@@ -734,7 +734,7 @@ static int video_buffer_alloc_userptr(struct device *dev, struct buffer *buffer,
- buffer->size[i] = length;
- buffer->padding[i] = padding;
-
-- printf("Buffer %u/%u allocated at address %p.\n",
-+ fprintf(stderr, "Buffer %u/%u allocated at address %p.\n",
- buffer->idx, i, buffer->mem[i]);
- }
-
-@@ -809,12 +809,12 @@ static int video_alloc_buffers(struct device *dev, int nbufs,
-
- ret = ioctl(dev->fd, VIDIOC_REQBUFS, &rb);
- if (ret < 0) {
-- printf("Unable to request buffers: %s (%d).\n", strerror(errno),
-+ fprintf(stderr, "Unable to request buffers: %s (%d).\n", strerror(errno),
- errno);
- return ret;
- }
-
-- printf("%u buffers requested.\n", rb.count);
-+ fprintf(stderr, "%u buffers requested.\n", rb.count);
-
- buffers = malloc(rb.count * sizeof buffers[0]);
- if (buffers == NULL)
-@@ -835,12 +835,12 @@ static int video_alloc_buffers(struct device *dev, int nbufs,
-
- ret = ioctl(dev->fd, VIDIOC_QUERYBUF, &buf);
- if (ret < 0) {
-- printf("Unable to query buffer %u: %s (%d).\n", i,
-+ fprintf(stderr, "Unable to query buffer %u: %s (%d).\n", i,
- strerror(errno), errno);
- return ret;
- }
- get_ts_flags(buf.flags, &ts_type, &ts_source);
-- printf("length: %u offset: %u timestamp type/source: %s/%s\n",
-+ fprintf(stderr, "length: %u offset: %u timestamp type/source: %s/%s\n",
- buf.length, buf.m.offset, ts_type, ts_source);
-
- buffers[i].idx = i;
-@@ -899,12 +899,12 @@ static int video_free_buffers(struct device *dev)
-
- ret = ioctl(dev->fd, VIDIOC_REQBUFS, &rb);
- if (ret < 0) {
-- printf("Unable to release buffers: %s (%d).\n",
-+ fprintf(stderr, "Unable to release buffers: %s (%d).\n",
- strerror(errno), errno);
- return ret;
- }
-
-- printf("%u buffers released.\n", dev->nbufs);
-+ fprintf(stderr, "%u buffers released.\n", dev->nbufs);
-
- free(dev->buffers);
- dev->nbufs = 0;
-@@ -974,7 +974,7 @@ static int video_queue_buffer(struct device *dev, int index, enum buffer_fill_mo
-
- ret = ioctl(dev->fd, VIDIOC_QBUF, &buf);
- if (ret < 0)
-- printf("Unable to queue buffer: %s (%d).\n",
-+ fprintf(stderr, "Unable to queue buffer: %s (%d).\n",
- strerror(errno), errno);
-
- return ret;
-@@ -987,7 +987,7 @@ static int video_enable(struct device *dev, int enable)
-
- ret = ioctl(dev->fd, enable ? VIDIOC_STREAMON : VIDIOC_STREAMOFF, &type);
- if (ret < 0) {
-- printf("Unable to %s streaming: %s (%d).\n",
-+ fprintf(stderr, "Unable to %s streaming: %s (%d).\n",
- enable ? "start" : "stop", strerror(errno), errno);
- return ret;
- }
-@@ -1009,10 +1009,10 @@ static void video_query_menu(struct device *dev, struct v4l2_queryctrl *query,
- continue;
-
- if (query->type == V4L2_CTRL_TYPE_MENU)
-- printf(" %u: %.32s%s\n", menu.index, menu.name,
-+ fprintf(stderr, " %u: %.32s%s\n", menu.index, menu.name,
- menu.index == value ? " (*)" : "");
- else
-- printf(" %u: %lld%s\n", menu.index, menu.value,
-+ fprintf(stderr, " %u: %lld%s\n", menu.index, menu.value,
- menu.index == value ? " (*)" : "");
- };
- }
-@@ -1043,7 +1043,7 @@ static void video_list_controls(struct device *dev)
- continue;
-
- if (query.type == V4L2_CTRL_TYPE_CTRL_CLASS) {
-- printf("--- %s (class 0x%08x) ---\n", query.name, query.id);
-+ fprintf(stderr, "--- %s (class 0x%08x) ---\n", query.name, query.id);
- continue;
- }
-
-@@ -1053,7 +1053,7 @@ static void video_list_controls(struct device *dev)
- else
- sprintf(value, "%" PRId64, val64);
-
-- printf("control 0x%08x `%s' min %d max %d step %d default %d current %s.\n",
-+ fprintf(stderr, "control 0x%08x `%s' min %d max %d step %d default %d current %s.\n",
- query.id, query.name, query.minimum, query.maximum,
- query.step, query.default_value, value);
-
-@@ -1065,9 +1065,9 @@ static void video_list_controls(struct device *dev)
- }
-
- if (nctrls)
-- printf("%u control%s found.\n", nctrls, nctrls > 1 ? "s" : "");
-+ fprintf(stderr, "%u control%s found.\n", nctrls, nctrls > 1 ? "s" : "");
- else
-- printf("No control found.\n");
-+ fprintf(stderr, "No control found.\n");
- }
-
- static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat,
-@@ -1088,30 +1088,30 @@ static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat,
- break;
-
- if (i != ival.index)
-- printf("Warning: driver returned wrong ival index "
-+ fprintf(stderr, "Warning: driver returned wrong ival index "
- "%u.\n", ival.index);
- if (pixelformat != ival.pixel_format)
-- printf("Warning: driver returned wrong ival pixel "
-+ fprintf(stderr, "Warning: driver returned wrong ival pixel "
- "format %08x.\n", ival.pixel_format);
- if (width != ival.width)
-- printf("Warning: driver returned wrong ival width "
-+ fprintf(stderr, "Warning: driver returned wrong ival width "
- "%u.\n", ival.width);
- if (height != ival.height)
-- printf("Warning: driver returned wrong ival height "
-+ fprintf(stderr, "Warning: driver returned wrong ival height "
- "%u.\n", ival.height);
-
- if (i != 0)
-- printf(", ");
-+ fprintf(stderr, ", ");
-
- switch (ival.type) {
- case V4L2_FRMIVAL_TYPE_DISCRETE:
-- printf("%u/%u",
-+ fprintf(stderr, "%u/%u",
- ival.discrete.numerator,
- ival.discrete.denominator);
- break;
-
- case V4L2_FRMIVAL_TYPE_CONTINUOUS:
-- printf("%u/%u - %u/%u",
-+ fprintf(stderr, "%u/%u - %u/%u",
- ival.stepwise.min.numerator,
- ival.stepwise.min.denominator,
- ival.stepwise.max.numerator,
-@@ -1119,7 +1119,7 @@ static void video_enum_frame_intervals(struct device *dev, __u32 pixelformat,
- return;
-
- case V4L2_FRMIVAL_TYPE_STEPWISE:
-- printf("%u/%u - %u/%u (by %u/%u)",
-+ fprintf(stderr, "%u/%u - %u/%u (by %u/%u)",
- ival.stepwise.min.numerator,
- ival.stepwise.min.denominator,
- ival.stepwise.max.numerator,
-@@ -1149,23 +1149,23 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat)
- break;
-
- if (i != frame.index)
-- printf("Warning: driver returned wrong frame index "
-+ fprintf(stderr, "Warning: driver returned wrong frame index "
- "%u.\n", frame.index);
- if (pixelformat != frame.pixel_format)
-- printf("Warning: driver returned wrong frame pixel "
-+ fprintf(stderr, "Warning: driver returned wrong frame pixel "
- "format %08x.\n", frame.pixel_format);
-
- switch (frame.type) {
- case V4L2_FRMSIZE_TYPE_DISCRETE:
-- printf("\tFrame size: %ux%u (", frame.discrete.width,
-+ fprintf(stderr, "\tFrame size: %ux%u (", frame.discrete.width,
- frame.discrete.height);
- video_enum_frame_intervals(dev, frame.pixel_format,
- frame.discrete.width, frame.discrete.height);
-- printf(")\n");
-+ fprintf(stderr, ")\n");
- break;
-
- case V4L2_FRMSIZE_TYPE_CONTINUOUS:
-- printf("\tFrame size: %ux%u - %ux%u (",
-+ fprintf(stderr, "\tFrame size: %ux%u - %ux%u (",
- frame.stepwise.min_width,
- frame.stepwise.min_height,
- frame.stepwise.max_width,
-@@ -1173,11 +1173,11 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat)
- video_enum_frame_intervals(dev, frame.pixel_format,
- frame.stepwise.max_width,
- frame.stepwise.max_height);
-- printf(")\n");
-+ fprintf(stderr, ")\n");
- break;
-
- case V4L2_FRMSIZE_TYPE_STEPWISE:
-- printf("\tFrame size: %ux%u - %ux%u (by %ux%u) (\n",
-+ fprintf(stderr, "\tFrame size: %ux%u - %ux%u (by %ux%u) (\n",
- frame.stepwise.min_width,
- frame.stepwise.min_height,
- frame.stepwise.max_width,
-@@ -1187,7 +1187,7 @@ static void video_enum_frame_sizes(struct device *dev, __u32 pixelformat)
- video_enum_frame_intervals(dev, frame.pixel_format,
- frame.stepwise.max_width,
- frame.stepwise.max_height);
-- printf(")\n");
-+ fprintf(stderr, ")\n");
- break;
-
- default:
-@@ -1211,19 +1211,19 @@ static void video_enum_formats(struct device *dev, enum v4l2_buf_type type)
- break;
-
- if (i != fmt.index)
-- printf("Warning: driver returned wrong format index "
-+ fprintf(stderr, "Warning: driver returned wrong format index "
- "%u.\n", fmt.index);
- if (type != fmt.type)
-- printf("Warning: driver returned wrong format type "
-+ fprintf(stderr, "Warning: driver returned wrong format type "
- "%u.\n", fmt.type);
-
-- printf("\tFormat %u: %s (%08x)\n", i,
-+ fprintf(stderr, "\tFormat %u: %s (%08x)\n", i,
- v4l2_format_name(fmt.pixelformat), fmt.pixelformat);
-- printf("\tType: %s (%u)\n", v4l2_buf_type_name(fmt.type),
-+ fprintf(stderr, "\tType: %s (%u)\n", v4l2_buf_type_name(fmt.type),
- fmt.type);
-- printf("\tName: %.32s\n", fmt.description);
-+ fprintf(stderr, "\tName: %.32s\n", fmt.description);
- video_enum_frame_sizes(dev, fmt.pixelformat);
-- printf("\n");
-+ fprintf(stderr, "\n");
- }
- }
-
-@@ -1241,13 +1241,13 @@ static void video_enum_inputs(struct device *dev)
- break;
-
- if (i != input.index)
-- printf("Warning: driver returned wrong input index "
-+ fprintf(stderr, "Warning: driver returned wrong input index "
- "%u.\n", input.index);
-
-- printf("\tInput %u: %s.\n", i, input.name);
-+ fprintf(stderr, "\tInput %u: %s.\n", i, input.name);
- }
-
-- printf("\n");
-+ fprintf(stderr, "\n");
- }
-
- static int video_get_input(struct device *dev)
-@@ -1257,7 +1257,7 @@ static int video_get_input(struct device *dev)
-
- ret = ioctl(dev->fd, VIDIOC_G_INPUT, &input);
- if (ret < 0) {
-- printf("Unable to get current input: %s (%d).\n",
-+ fprintf(stderr, "Unable to get current input: %s (%d).\n",
- strerror(errno), errno);
- return ret;
- }
-@@ -1272,7 +1272,7 @@ static int video_set_input(struct device *dev, unsigned int input)
-
- ret = ioctl(dev->fd, VIDIOC_S_INPUT, &_input);
- if (ret < 0)
-- printf("Unable to select input %u: %s (%d).\n", input,
-+ fprintf(stderr, "Unable to select input %u: %s (%d).\n", input,
- strerror(errno), errno);
-
- return ret;
-@@ -1291,14 +1291,14 @@ static int video_set_quality(struct device *dev, unsigned int quality)
-
- ret = ioctl(dev->fd, VIDIOC_S_JPEGCOMP, &jpeg);
- if (ret < 0) {
-- printf("Unable to set quality to %u: %s (%d).\n", quality,
-+ fprintf(stderr, "Unable to set quality to %u: %s (%d).\n", quality,
- strerror(errno), errno);
- return ret;
- }
-
- ret = ioctl(dev->fd, VIDIOC_G_JPEGCOMP, &jpeg);
- if (ret >= 0)
-- printf("Quality set to %u\n", jpeg.quality);
-+ fprintf(stderr, "Quality set to %u\n", jpeg.quality);
-
- return 0;
- }
-@@ -1313,7 +1313,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename)
- if (filename != NULL) {
- fd = open(filename, O_RDONLY);
- if (fd == -1) {
-- printf("Unable to open test pattern file '%s': %s (%d).\n",
-+ fprintf(stderr, "Unable to open test pattern file '%s': %s (%d).\n",
- filename, strerror(errno), errno);
- return -errno;
- }
-@@ -1331,7 +1331,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename)
- if (filename != NULL) {
- ret = read(fd, dev->pattern[plane], size);
- if (ret != (int)size && dev->plane_fmt[plane].bytesperline != 0) {
-- printf("Test pattern file size %u doesn't match image size %u\n",
-+ fprintf(stderr, "Test pattern file size %u doesn't match image size %u\n",
- ret, size);
- ret = -EINVAL;
- goto done;
-@@ -1341,7 +1341,7 @@ static int video_load_test_pattern(struct device *dev, const char *filename)
- unsigned int i;
-
- if (dev->plane_fmt[plane].bytesperline == 0) {
-- printf("Compressed format detected for plane %u and no test pattern filename given.\n"
-+ fprintf(stderr, "Compressed format detected for plane %u and no test pattern filename given.\n"
- "The test pattern can't be generated automatically.\n", plane);
- ret = -EINVAL;
- goto done;
-@@ -1410,7 +1410,7 @@ static void video_verify_buffer(struct device *dev, struct v4l2_buffer *buf)
-
- if (dev->plane_fmt[plane].sizeimage &&
- dev->plane_fmt[plane].sizeimage != length)
-- printf("Warning: bytes used %u != image size %u for plane %u\n",
-+ fprintf(stderr, "Warning: bytes used %u != image size %u for plane %u\n",
- length, dev->plane_fmt[plane].sizeimage, plane);
-
- if (buffer->padding[plane] == 0)
-@@ -1424,16 +1424,16 @@ static void video_verify_buffer(struct device *dev, struct v4l2_buffer *buf)
- }
-
- if (errors) {
-- printf("Warning: %u bytes overwritten among %u first padding bytes for plane %u\n",
-+ fprintf(stderr, "Warning: %u bytes overwritten among %u first padding bytes for plane %u\n",
- errors, dirty, plane);
-
- dirty = (dirty + 15) & ~15;
- dirty = dirty > 32 ? 32 : dirty;
-
- for (i = 0; i < dirty; ++i) {
-- printf("%02x ", data[i]);
-+ fprintf(stderr, "%02x ", data[i]);
- if (i % 16 == 15)
-- printf("\n");
-+ fprintf(stderr, "\n");
- }
- }
- }
-@@ -1481,18 +1481,32 @@ static void video_save_image(struct device *dev, struct v4l2_buffer *buf,
-
- ret = write(fd, dev->buffers[buf->index].mem[i], length);
- if (ret < 0) {
-- printf("write error: %s (%d)\n", strerror(errno), errno);
-+ fprintf(stderr, "write error: %s (%d)\n", strerror(errno), errno);
- break;
- } else if (ret != (int)length)
-- printf("write error: only %d bytes written instead of %u\n",
-+ fprintf(stderr, "write error: only %d bytes written instead of %u\n",
- ret, length);
- }
- close(fd);
- }
-
-+static void video_stdout_image(struct device *dev, struct v4l2_buffer *buf)
-+{
-+ int ret;
-+
-+ fprintf(stderr, "stdout");
-+ ret = fwrite(dev->buffers[buf->index].mem, buf->bytesused, 1, stdout);
-+
-+ if (ret < 0)
-+ fprintf(stderr, "write error: %s (%d)\n", strerror(errno), errno);
-+ else if (ret != (int)buf->bytesused)
-+ fprintf(stderr, "write error: only %d bytes written instead of %u\n",
-+ ret, buf->bytesused);
-+}
-+
- static int video_do_capture(struct device *dev, unsigned int nframes,
- unsigned int skip, unsigned int delay, const char *pattern,
-- int do_requeue_last, enum buffer_fill_mode fill)
-+ int do_requeue_last, enum buffer_fill_mode fill, int do_stdout)
- {
- struct v4l2_plane planes[VIDEO_MAX_PLANES];
- struct v4l2_buffer buf;
-@@ -1529,7 +1543,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
- ret = ioctl(dev->fd, VIDIOC_DQBUF, &buf);
- if (ret < 0) {
- if (errno != EIO) {
-- printf("Unable to dequeue buffer: %s (%d).\n",
-+ fprintf(stderr, "Unable to dequeue buffer: %s (%d).\n",
- strerror(errno), errno);
- goto done;
- }
-@@ -1550,7 +1564,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
-
- clock_gettime(CLOCK_MONOTONIC, &ts);
- get_ts_flags(buf.flags, &ts_type, &ts_source);
-- printf("%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index,
-+ fprintf(stderr, "%u (%u) [%c] %s %u %u B %ld.%06ld %ld.%06ld %.3f fps ts %s/%s\n", i, buf.index,
- (buf.flags & V4L2_BUF_FLAG_ERROR) ? 'E' : '-',
- v4l2_field_name(buf.field),
- buf.sequence, buf.bytesused, buf.timestamp.tv_sec,
-@@ -1563,6 +1577,9 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
- if (video_is_capture(dev) && pattern && !skip)
- video_save_image(dev, &buf, pattern, i);
-
-+ if (video_is_capture(dev) && do_stdout && !skip)
-+ video_stdout_image(dev, &buf);
-+
- if (skip)
- --skip;
-
-@@ -1577,7 +1594,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
-
- ret = video_queue_buffer(dev, buf.index, fill);
- if (ret < 0) {
-- printf("Unable to requeue buffer: %s (%d).\n",
-+ fprintf(stderr, "Unable to requeue buffer: %s (%d).\n",
- strerror(errno), errno);
- goto done;
- }
-@@ -1587,7 +1604,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
- video_enable(dev, 0);
-
- if (nframes == 0) {
-- printf("No frames captured.\n");
-+ fprintf(stderr, "No frames captured.\n");
- goto done;
- }
-
-@@ -1604,7 +1621,7 @@ static int video_do_capture(struct device *dev, unsigned int nframes,
- bps = size/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0;
- fps = i/(ts.tv_nsec/1000.0+1000000.0*ts.tv_sec)*1000000.0;
-
-- printf("Captured %u frames in %lu.%06lu seconds (%f fps, %f B/s).\n",
-+ fprintf(stderr, "Captured %u frames in %lu.%06lu seconds (%f fps, %f B/s).\n",
- i, ts.tv_sec, ts.tv_nsec/1000, fps, bps);
-
- done:
-@@ -1616,42 +1633,42 @@ done:
-
- static void usage(const char *argv0)
- {
-- printf("Usage: %s [options] device\n", argv0);
-- printf("Supported options:\n");
-- printf("-B, --buffer-type Buffer type (\"capture\", \"output\",\n");
-- printf(" \"capture-mplane\" or \"output-mplane\")\n");
-- printf("-c, --capture[=nframes] Capture frames\n");
-- printf("-C, --check-overrun Verify dequeued frames for buffer overrun\n");
-- printf("-d, --delay Delay (in ms) before requeuing buffers\n");
-- printf("-f, --format format Set the video format\n");
-- printf("-F, --file[=name] Read/write frames from/to disk\n");
-- printf("\tFor video capture devices, the first '#' character in the file name is\n");
-- printf("\texpanded to the frame sequence number. The default file name is\n");
-- printf("\t'frame-#.bin'.\n");
-- printf("-h, --help Show this help screen\n");
-- printf("-i, --input input Select the video input\n");
-- printf("-I, --fill-frames Fill frames with check pattern before queuing them\n");
-- printf("-l, --list-controls List available controls\n");
-- printf("-n, --nbufs n Set the number of video buffers\n");
-- printf("-p, --pause Pause before starting the video stream\n");
-- printf("-q, --quality n MJPEG quality (0-100)\n");
-- printf("-r, --get-control ctrl Get control 'ctrl'\n");
-- printf("-R, --realtime=[priority] Enable realtime RR scheduling\n");
-- printf("-s, --size WxH Set the frame size\n");
-- printf("-t, --time-per-frame num/denom Set the time per frame (eg. 1/25 = 25 fps)\n");
-- printf("-u, --userptr Use the user pointers streaming method\n");
-- printf("-w, --set-control 'ctrl value' Set control 'ctrl' to 'value'\n");
-- printf(" --enum-formats Enumerate formats\n");
-- printf(" --enum-inputs Enumerate inputs\n");
-- printf(" --fd Use a numeric file descriptor insted of a device\n");
-- printf(" --field Interlaced format field order\n");
-- printf(" --no-query Don't query capabilities on open\n");
-- printf(" --offset User pointer buffer offset from page start\n");
-- printf(" --requeue-last Requeue the last buffers before streamoff\n");
-- printf(" --timestamp-source Set timestamp source on output buffers [eof, soe]\n");
-- printf(" --skip n Skip the first n frames\n");
-- printf(" --sleep-forever Sleep forever after configuring the device\n");
-- printf(" --stride value Line stride in bytes\n");
-+ fprintf(stderr, "Usage: %s [options] device\n", argv0);
-+ fprintf(stderr, "Supported options:\n");
-+ fprintf(stderr, "-B, --buffer-type Buffer type (\"capture\", \"output\",\n");
-+ fprintf(stderr, " \"capture-mplane\" or \"output-mplane\")\n");
-+ fprintf(stderr, "-c, --capture[=nframes] Capture frames\n");
-+ fprintf(stderr, "-C, --check-overrun Verify dequeued frames for buffer overrun\n");
-+ fprintf(stderr, "-d, --delay Delay (in ms) before requeuing buffers\n");
-+ fprintf(stderr, "-f, --format format Set the video format\n");
-+ fprintf(stderr, "-F, --file[=name] Read/write frames from/to disk\n");
-+ fprintf(stderr, "\tFor video capture devices, the first '#' character in the file name is\n");
-+ fprintf(stderr, "\texpanded to the frame sequence number. The default file name is\n");
-+ fprintf(stderr, "\t'frame-#.bin'.\n");
-+ fprintf(stderr, "-h, --help Show this help screen\n");
-+ fprintf(stderr, "-i, --input input Select the video input\n");
-+ fprintf(stderr, "-I, --fill-frames Fill frames with check pattern before queuing them\n");
-+ fprintf(stderr, "-l, --list-controls List available controls\n");
-+ fprintf(stderr, "-n, --nbufs n Set the number of video buffers\n");
-+ fprintf(stderr, "-p, --pause Pause before starting the video stream\n");
-+ fprintf(stderr, "-q, --quality n MJPEG quality (0-100)\n");
-+ fprintf(stderr, "-r, --get-control ctrl Get control 'ctrl'\n");
-+ fprintf(stderr, "-R, --realtime=[priority] Enable realtime RR scheduling\n");
-+ fprintf(stderr, "-s, --size WxH Set the frame size\n");
-+ fprintf(stderr, "-t, --time-per-frame num/denom Set the time per frame (eg. 1/25 = 25 fps)\n");
-+ fprintf(stderr, "-u, --userptr Use the user pointers streaming method\n");
-+ fprintf(stderr, "-w, --set-control 'ctrl value' Set control 'ctrl' to 'value'\n");
-+ fprintf(stderr, " --enum-formats Enumerate formats\n");
-+ fprintf(stderr, " --enum-inputs Enumerate inputs\n");
-+ fprintf(stderr, " --fd Use a numeric file descriptor insted of a device\n");
-+ fprintf(stderr, " --field Interlaced format field order\n");
-+ fprintf(stderr, " --no-query Don't query capabilities on open\n");
-+ fprintf(stderr, " --offset User pointer buffer offset from page start\n");
-+ fprintf(stderr, " --requeue-last Requeue the last buffers before streamoff\n");
-+ fprintf(stderr, " --timestamp-source Set timestamp source on output buffers [eof, soe]\n");
-+ fprintf(stderr, " --skip n Skip the first n frames\n");
-+ fprintf(stderr, " --sleep-forever Sleep forever after configuring the device\n");
-+ fprintf(stderr, " --stride value Line stride in bytes\n");
- }
-
- #define OPT_ENUM_FORMATS 256
-@@ -1665,6 +1682,7 @@ static void usage(const char *argv0)
- #define OPT_FD 264
- #define OPT_TSTAMP_SRC 265
- #define OPT_FIELD 266
-+#define OPT_STDOUT 267
-
- static struct option opts[] = {
- {"buffer-type", 1, 0, 'B'},
-@@ -1677,6 +1695,7 @@ static struct option opts[] = {
- {"field", 1, 0, OPT_FIELD},
- {"file", 2, 0, 'F'},
- {"fill-frames", 0, 0, 'I'},
-+ {"stdout", 0, 0, OPT_STDOUT},
- {"format", 1, 0, 'f'},
- {"help", 0, 0, 'h'},
- {"input", 1, 0, 'i'},
-@@ -1717,7 +1736,8 @@ int main(int argc, char *argv[])
- int do_list_controls = 0, do_get_control = 0, do_set_control = 0;
- int do_sleep_forever = 0, do_requeue_last = 0;
- int do_rt = 0;
-- int no_query = 0;
-+ int no_query = 0;
-+ int do_stdout = 0;
- char *endptr;
- int c;
-
-@@ -1755,7 +1775,7 @@ int main(int argc, char *argv[])
- case 'B':
- ret = v4l2_buf_type_from_string(optarg);
- if (ret == -1) {
-- printf("Bad buffer type \"%s\"\n", optarg);
-+ fprintf(stderr, "Bad buffer type \"%s\"\n", optarg);
- return 1;
- }
- video_set_buf_type(&dev, ret);
-@@ -1775,7 +1795,7 @@ int main(int argc, char *argv[])
- do_set_format = 1;
- info = v4l2_format_by_name(optarg);
- if (info == NULL) {
-- printf("Unsupported video format '%s'\n", optarg);
-+ fprintf(stderr, "Unsupported video format '%s'\n", optarg);
- return 1;
- }
- pixelformat = info->fourcc;
-@@ -1812,7 +1832,7 @@ int main(int argc, char *argv[])
- case 'r':
- ctrl_name = strtol(optarg, &endptr, 0);
- if (*endptr != 0) {
-- printf("Invalid control name '%s'\n", optarg);
-+ fprintf(stderr, "Invalid control name '%s'\n", optarg);
- return 1;
- }
- do_get_control = 1;
-@@ -1826,12 +1846,12 @@ int main(int argc, char *argv[])
- do_set_format = 1;
- width = strtol(optarg, &endptr, 10);
- if (*endptr != 'x' || endptr == optarg) {
-- printf("Invalid size '%s'\n", optarg);
-+ fprintf(stderr, "Invalid size '%s'\n", optarg);
- return 1;
- }
- height = strtol(endptr + 1, &endptr, 10);
- if (*endptr != 0) {
-- printf("Invalid size '%s'\n", optarg);
-+ fprintf(stderr, "Invalid size '%s'\n", optarg);
- return 1;
- }
- break;
-@@ -1839,12 +1859,12 @@ int main(int argc, char *argv[])
- do_set_time_per_frame = 1;
- time_per_frame.numerator = strtol(optarg, &endptr, 10);
- if (*endptr != '/' || endptr == optarg) {
-- printf("Invalid time per frame '%s'\n", optarg);
-+ fprintf(stderr, "Invalid time per frame '%s'\n", optarg);
- return 1;
- }
- time_per_frame.denominator = strtol(endptr + 1, &endptr, 10);
- if (*endptr != 0) {
-- printf("Invalid time per frame '%s'\n", optarg);
-+ fprintf(stderr, "Invalid time per frame '%s'\n", optarg);
- return 1;
- }
- break;
-@@ -1854,12 +1874,12 @@ int main(int argc, char *argv[])
- case 'w':
- ctrl_name = strtol(optarg, &endptr, 0);
- if (*endptr != ' ' || endptr == optarg) {
-- printf("Invalid control name '%s'\n", optarg);
-+ fprintf(stderr, "Invalid control name '%s'\n", optarg);
- return 1;
- }
- ctrl_value = strtol(endptr + 1, &endptr, 0);
- if (*endptr != 0) {
-- printf("Invalid control value '%s'\n", optarg);
-+ fprintf(stderr, "Invalid control value '%s'\n", optarg);
- return 1;
- }
- do_set_control = 1;
-@@ -1873,16 +1893,16 @@ int main(int argc, char *argv[])
- case OPT_FD:
- ret = atoi(optarg);
- if (ret < 0) {
-- printf("Bad file descriptor %d\n", ret);
-+ fprintf(stderr, "Bad file descriptor %d\n", ret);
- return 1;
- }
-- printf("Using file descriptor %d\n", ret);
-+ fprintf(stderr, "Using file descriptor %d\n", ret);
- video_set_fd(&dev, ret);
- break;
- case OPT_FIELD:
- field = v4l2_field_from_string(optarg);
- if (field == (enum v4l2_field)-1) {
-- printf("Invalid field order '%s'\n", optarg);
-+ fprintf(stderr, "Invalid field order '%s'\n", optarg);
- return 1;
- }
- break;
-@@ -1907,22 +1927,25 @@ int main(int argc, char *argv[])
- } else if (!strcmp(optarg, "soe")) {
- dev.buffer_output_flags |= V4L2_BUF_FLAG_TSTAMP_SRC_SOE;
- } else {
-- printf("Invalid timestamp source %s\n", optarg);
-+ fprintf(stderr, "Invalid timestamp source %s\n", optarg);
- return 1;
- }
- break;
- case OPT_USERPTR_OFFSET:
- userptr_offset = atoi(optarg);
- break;
-+ case OPT_STDOUT:
-+ do_stdout = 1;
-+ break;
- default:
-- printf("Invalid option -%c\n", c);
-- printf("Run %s -h for help.\n", argv[0]);
-+ fprintf(stderr, "Invalid option -%c\n", c);
-+ fprintf(stderr, "Run %s -h for help.\n", argv[0]);
- return 1;
- }
- }
-
- if ((fill_mode & BUFFER_FILL_PADDING) && memtype != V4L2_MEMORY_USERPTR) {
-- printf("Buffer overrun can only be checked in USERPTR mode.\n");
-+ fprintf(stderr, "Buffer overrun can only be checked in USERPTR mode.\n");
- return 1;
- }
-
-@@ -1959,7 +1982,7 @@ int main(int argc, char *argv[])
- ret = get_control(&dev, ctrl_name,
- get_control_type(&dev, ctrl_name), &val);
- if (ret >= 0)
-- printf("Control 0x%08x value %" PRId64 "\n", ctrl_name, val);
-+ fprintf(stderr, "Control 0x%08x value %" PRId64 "\n", ctrl_name, val);
- }
-
- if (do_set_control)
-@@ -1970,7 +1993,7 @@ int main(int argc, char *argv[])
- video_list_controls(&dev);
-
- if (do_enum_formats) {
-- printf("- Available formats:\n");
-+ fprintf(stderr, "- Available formats:\n");
- video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_CAPTURE);
- video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE);
- video_enum_formats(&dev, V4L2_BUF_TYPE_VIDEO_OUTPUT);
-@@ -1979,14 +2002,14 @@ int main(int argc, char *argv[])
- }
-
- if (do_enum_inputs) {
-- printf("- Available inputs:\n");
-+ fprintf(stderr, "- Available inputs:\n");
- video_enum_inputs(&dev);
- }
-
- if (do_set_input) {
- video_set_input(&dev, input);
- ret = video_get_input(&dev);
-- printf("Input %d selected\n", ret);
-+ fprintf(stderr, "Input %d selected\n", ret);
- }
-
- /* Set the video format. */
-@@ -2028,7 +2051,7 @@ int main(int argc, char *argv[])
- }
-
- if (do_pause) {
-- printf("Press enter to start capture\n");
-+ fprintf(stderr, "Press enter to start capture\n");
- getchar();
- }
-
-@@ -2037,12 +2060,12 @@ int main(int argc, char *argv[])
- sched.sched_priority = rt_priority;
- ret = sched_setscheduler(0, SCHED_RR, &sched);
- if (ret < 0)
-- printf("Failed to select RR scheduler: %s (%d)\n",
-+ fprintf(stderr, "Failed to select RR scheduler: %s (%d)\n",
- strerror(errno), errno);
- }
-
- if (video_do_capture(&dev, nframes, skip, delay, filename,
-- do_requeue_last, fill_mode) < 0) {
-+ do_requeue_last, fill_mode, do_stdout) < 0) {
- video_close(&dev);
- return 1;
- }
---
-1.7.9.5
-
diff --git a/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb b/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
index a192d1a3bb..10176634bd 100644
--- a/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
+++ b/meta-oe/recipes-multimedia/v4l2apps/yavta_git.bb
@@ -1,10 +1,10 @@
SUMMARY = "Yet Another V4L2 Test Application"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe"
-SRC_URI = "git://git.ideasonboard.org/yavta.git \
- file://0001-Add-stdout-mode-to-allow-streaming-over-the-network-.patch"
-SRCREV = "7e9f28bedc1ed3205fb5164f686aea96f27a0de2"
+SRC_URI = "git://git.ideasonboard.org/yavta.git;branch=master \
+ "
+SRCREV = "65f740aa1758531fd810339bc1b7d1d33666e28a"
PV = "0.0"
PR = "r2"
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 cc5b84489c..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"
-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.1.0.bb b/meta-oe/recipes-multimedia/wavpack/wavpack_5.1.0.bb
new file mode 100644
index 0000000000..9096123939
--- /dev/null
+++ b/meta-oe/recipes-multimedia/wavpack/wavpack_5.1.0.bb
@@ -0,0 +1,9 @@
+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=8c1a910e5c2a8b30ec8ffb2ffa63d9b2"
+
+SRC_URI = "git://github.com/dbry/WavPack.git;branch=master;protocol=https"
+SRCREV = "9ccc3fe4a37d069137ceabe513a4dd9b0a09c1c2"
+S = "${WORKDIR}/git"
+
+inherit autotools lib_package
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..e0fd4fea1b 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
@@ -6,6 +6,8 @@ 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/meta-oe/recipes-multimedia/webm/libvpx_1.13.0.bb b/meta-oe/recipes-multimedia/webm/libvpx_1.13.0.bb
new file mode 100644
index 0000000000..79b330c315
--- /dev/null
+++ b/meta-oe/recipes-multimedia/webm/libvpx_1.13.0.bb
@@ -0,0 +1,53 @@
+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 = "d6eb9696aa72473c1a11d34d928d35a3acc0c9a9"
+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: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}
+}
+
+BBCLASSEXTEND += "native"
diff --git a/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb b/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb
deleted file mode 100644
index e17cda1a97..0000000000
--- a/meta-oe/recipes-multimedia/webm/libvpx_1.6.1.bb
+++ /dev/null
@@ -1,49 +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"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d5b04755015be901744a78cc30d390d4"
-
-SRC_URI += "http://storage.googleapis.com/downloads.webmproject.org/releases/webm/${BP}.tar.bz2 \
- file://libvpx-configure-support-blank-prefix.patch \
- "
-SRC_URI[md5sum] = "a19518c8111fa93bdabdd85259162611"
-SRC_URI[sha256sum] = "1c2c0c2a97fba9474943be34ee39337dee756780fc12870ba1dc68372586a819"
-
-# 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/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/xpext/xpext_1.0-5.bb b/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
index 526659e451..f900aca2d4 100644
--- a/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
+++ b/meta-oe/recipes-multimedia/xpext/xpext_1.0-5.bb
@@ -9,12 +9,12 @@ SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/${BPN}/${BPN}_${
file://auxdir.patch;striplevel=0"
S = "${WORKDIR}/xpext-1.0"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
# Remove runtime dependency on empty package ${PN}
-RDEPENDS_${PN}-dev = ""
+RDEPENDS:${PN}-dev = ""
SRC_URI[md5sum] = "1b0cb67b6f2bd7c4abef17648b062896"
SRC_URI[sha256sum] = "a3b06f5188fd9effd0799ae31352b3cd65cb913b964e2c1a923ffa9d3c08abbe"
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-multimedia/xsp/xsp_1.0.0-8.bb b/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
index c7a068df38..c611da48c0 100644
--- a/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
+++ b/meta-oe/recipes-multimedia/xsp/xsp_1.0.0-8.bb
@@ -7,7 +7,7 @@ SRC_URI = "http://repository.maemo.org/pool/maemo/ossw/source/x/xsp/${BPN}_${PV}
file://xsp-fix-pc.patch"
S = "${WORKDIR}/Xsp"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
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.4.4.bb b/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb
deleted file mode 100644
index b31d8eb4ef..0000000000
--- a/meta-oe/recipes-navigation/geoclue/geoclue_2.4.4.bb
+++ /dev/null
@@ -1,53 +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 = "GPLv2.0+"
-SECTION = "console/network"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=8114b83a0435d8136b47bd70111ce5cd"
-
-DEPENDS = "glib-2.0 dbus json-glib libsoup-2.4 intltool-native"
-
-inherit autotools pkgconfig gtk-doc gobject-introspection
-
-SRC_URI = " \
- http://www.freedesktop.org/software/geoclue/releases/2.4/geoclue-${PV}.tar.xz \
-"
-
-SRC_URI[md5sum] = "d2a5b05f4bad032673fe23afbce27926"
-SRC_URI[sha256sum] = "9c43fb9d0c12067ea64400500abb0640194947d4c2c55e38545afe5d9c5c315c"
-
-export BUILD_SYS
-export HOST_SYS
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-# Without this line, package is delcared a library and named libgeoclue*
-AUTO_LIBNAME_PKGS = ""
-
-PACKAGECONFIG ??= "3g modem-gps cdma nmea lib"
-PACKAGECONFIG[3g] = "--enable-3g-source,--disable-3g-source,modemmanager"
-PACKAGECONFIG[modem-gps] = "--enable-modem-gps-source,--disable-modem-gps-source,modemmanager"
-PACKAGECONFIG[cdma] = "--enable-cdma-source,--disable-cdma-source,modemmanager"
-PACKAGECONFIG[nmea] = "--enable-nmea-source,--disable-nmea-source,avahi"
-PACKAGECONFIG[lib] = "--enable-libgeoclue,--disable-libgeoclue,gobject-introspection"
-
-EXTRA_OECONF += " \
- --with-dbus-service-user=root \
- --with-dbus-sys-dir=${sysconfdir}/dbus-1/system.d \
- --enable-demo-agent=no \
-"
-
-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.0.bb b/meta-oe/recipes-navigation/geoclue/geoclue_2.7.0.bb
new file mode 100644
index 0000000000..6784b099aa
--- /dev/null
+++ b/meta-oe/recipes-navigation/geoclue/geoclue_2.7.0.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 = "bbfb6289dedb88cb8155d9f6868787d5432e1f90"
+SRC_URI = "git://gitlab.freedesktop.org/geoclue/geoclue.git;protocol=https;nobranch=1 \
+ 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"
+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"
+
+GTKDOC_MESON_OPTION = "gtk-doc"
+
+EXTRA_OEMESON += " \
+ -Ddbus-sys-dir=${sysconfdir}/dbus-1/system.d \
+ -Ddemo-agent=false \
+"
+
+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/files/fix-gcc6-isnan.patch b/meta-oe/recipes-navigation/geos/files/fix-gcc6-isnan.patch
deleted file mode 100644
index 5c5fbd1d9a..0000000000
--- a/meta-oe/recipes-navigation/geos/files/fix-gcc6-isnan.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- geos-3.4.2/configure.in.orig 2016-06-08 17:46:43.002250304 +0000
-+++ geos-3.4.2/configure.in 2016-06-08 17:57:36.342241606 +0000
-@@ -197,7 +197,7 @@
- AC_LANG_PUSH([C++])
- AC_CACHE_CHECK([for isnan], ac_cv_isnan,
- [AC_TRY_LINK([#include <cmath>],
-- [double x; int y; y = isnan(x);],
-+ [double x; int y; y = std::isnan(x);],
- ac_cv_isnan=yes,
- ac_cv_isnan=no
- )])
---- geos-3.4.2/include/geos/platform.h.in.orig 2016-06-08 14:06:53.910234182 -0400
-+++ geos-3.4.2/include/geos/platform.h.in 2016-06-08 14:07:19.298233844 -0400
-@@ -84,7 +84,7 @@
- #endif
-
- #if defined(HAVE_ISNAN)
--# define ISNAN(x) (isnan(x))
-+# define ISNAN(x) (std::isnan(x))
- #else
- # if defined(_MSC_VER)
- # define ISNAN(x) _isnan(x)
diff --git a/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch b/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch
deleted file mode 100644
index 645e6f62a5..0000000000
--- a/meta-oe/recipes-navigation/geos/files/geos-config-Add-includedir-variable.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 9d51027c228dafd7db2d0cffca1f0fc695e950fd Mon Sep 17 00:00:00 2001
-From: Otavio Salvador <otavio@ossystems.com.br>
-Date: Mon, 2 Dec 2013 11:33:26 -0200
-Subject: [PATCH] geos-config: Add includedir variable
-
-This fixes cross-compile as it is easier to mangle the includedir
-during sysroot generation.
-
-Upstream-Status: Pending
-
-Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
----
- tools/geos-config.in | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tools/geos-config.in b/tools/geos-config.in
-index 9b45b5f..1749892 100644
---- a/tools/geos-config.in
-+++ b/tools/geos-config.in
-@@ -1,6 +1,7 @@
- #!/bin/sh
- prefix=@prefix@
- exec_prefix=@exec_prefix@
-+includedir=@includedir@
- libdir=@libdir@
-
- usage()
-@@ -38,7 +39,7 @@ case $1 in
- echo @VERSION@
- ;;
- --cflags)
-- echo -I${prefix}/include
-+ echo -I${includedir}
- ;;
- --libs)
- # TODO: make an alias for --clibs
---
-1.7.10.4
-
diff --git a/meta-oe/recipes-navigation/geos/geos.inc b/meta-oe/recipes-navigation/geos/geos.inc
deleted file mode 100644
index 2e308b4882..0000000000
--- a/meta-oe/recipes-navigation/geos/geos.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "GEOS - Geometry Engine, Open Source"
-HOMEPAGE = "http://trac.osgeo.org/geos/"
-SECTION = "libs"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-SRC_URI = "http://download.osgeo.org/geos/geos-${PV}.tar.bz2"
-
-inherit autotools pkgconfig binconfig
-
-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.0.bb b/meta-oe/recipes-navigation/geos/geos_3.12.0.bb
new file mode 100644
index 0000000000..95cb29775a
--- /dev/null
+++ b/meta-oe/recipes-navigation/geos/geos_3.12.0.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] = "d96db96011259178a35555a0f6d6e75a739e52a495a6b2aa5efb3d75390fbc39"
+
+inherit cmake pkgconfig binconfig
+
+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.4.2.bb b/meta-oe/recipes-navigation/geos/geos_3.4.2.bb
deleted file mode 100644
index 7193f8fb56..0000000000
--- a/meta-oe/recipes-navigation/geos/geos_3.4.2.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require geos.inc
-
-SRC_URI += "file://geos-config-Add-includedir-variable.patch \
- file://fix-gcc6-isnan.patch"
-
-SRC_URI[md5sum] = "fc5df2d926eb7e67f988a43a92683bae"
-SRC_URI[sha256sum] = "15e8bfdf7e29087a957b56ac543ea9a80321481cef4d4f63a7b268953ad26c53"
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
deleted file mode 100644
index 1fa27c210d..0000000000
--- a/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 1e2cea8945bc2183fbe1a012dcd633a352125952 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Tue, 24 Apr 2012 18:45:14 +0200
-Subject: [PATCH] SConstruct: prefix includepy with sysroot and drop sysroot
- from python_lib_dir
-
-* without PYTHONPATH, distutil's sysconfig returns INCLUDEPY without sysroot prefix
- and with PYTHONPATH from OE it's pointing to native python dir
-
- $ export PYTHONPATH=/OE/shr-core/tmp-eglibc/sysroots/om-gta02/usr/lib/python2.7/
- $ python
- Python 2.7.2 (default, Apr 18 2012, 09:19:59)
- [GCC 4.6.2] on linux2
- Type "help", "copyright", "credits" or "license" for more information.
- >>> from distutils import sysconfig
- >>> sysconfig.get_config_vars('INCLUDEPY')
- ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
- >>>
- $ unset PYTHONPATH
- $ python
- Python 2.7.2 (default, Apr 18 2012, 09:19:59)
- [GCC 4.6.2] on linux2
- Type "help", "copyright", "credits" or "license" for more information.
- >>> from distutils import sysconfig
- >>> sysconfig.get_config_vars('INCLUDEPY')
- ['/python2.7']
- >>> import sysconfig
- >>> sysconfig.get_config_vars('INCLUDEPY')
- ['/OE/shr-core/tmp-eglibc/sysroots/x86_64-linux/usr/include/python2.7']
-* python_lib_dir = python_lib_dir.replace(env['sysroot'], '')
- returns path to target sysroot
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- SConstruct | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/SConstruct b/SConstruct
-index 3318bb48..e1c4f963 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -934,7 +934,7 @@ else:
-
- # Set up configuration for target Python
-
--PYTHON_LIBDIR_CALL = 'sysconfig.get_python_lib()'
-+PYTHON_LIBDIR_CALL = 'sysconfig.get_python_lib(plat_specific=1)'
-
- PYTHON_CONFIG_NAMES = ['CC', 'CXX', 'OPT', 'BASECFLAGS',
- 'CCSHARED', 'LDSHARED', 'SO', 'INCLUDEPY', 'LDFLAGS']
-@@ -1364,7 +1364,7 @@ else:
- LINK=ldshared,
- SHLIBPREFIX="",
- SHLIBSUFFIX=python_config['SO'],
-- CPPPATH=[python_config['INCLUDEPY']],
-+ CPPPATH=[os.path.normpath("%s/%s/%s/%s" % (env['sysroot'], env['prefix'], env['includedir'], python_config['INCLUDEPY']))] if env['sysroot'] else [python_config['INCLUDEPY']],
- CPPFLAGS=python_config['OPT'],
- CFLAGS=python_config['BASECFLAGS'],
- CXXFLAGS=python_config['BASECFLAGS'])
-@@ -1662,12 +1662,15 @@ if ((not env['debug'] and not env['profiling'] and not env['nostrip']
- if not env['python']:
- python_install = []
- else:
-+ python_libdir = python_libdir.replace(env['sysroot'], '')
- python_module_dir = python_libdir + os.sep + 'gps'
- python_extensions_install = python_env.Install(DESTDIR + python_module_dir,
- python_built_extensions)
- if ((not env['debug'] and not env['profiling']
- and not env['nostrip'] and not sys.platform.startswith('darwin'))):
- python_env.AddPostAction(python_extensions_install, '$STRIP $TARGET')
-+ env.AddPostAction(python_extensions_install, '$CHRPATH -r "%s" "$TARGET"' \
-+ % (python_libdir, ))
-
- python_modules_install = python_env.Install(DESTDIR + python_module_dir,
- python_modules)
---
-2.1.0
-
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch
deleted file mode 100644
index e91e4e9fbd..0000000000
--- a/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0001-include-sys-ttydefaults.h.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From f221fa959c80b43c65426500a6836a1b5cf6fe0c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 17 Aug 2016 02:16:12 +0000
-Subject: [PATCH] include sys/ttydefaults.h
-
-This is needed for CTRL definition, as exposed by musl on glibc
-this include file gets pulled indirectly.
-
-/usr/src/debug/gpsd/3.14-r0/gpsd-3.14/gpsmon.c:605: undefined reference to `CTRL'
-clang-3.9: error: linker command failed with exit code 1 (use -v to see invocation)
-scons: *** [gpsmon] Error 1
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Foreward port to gpsd 3.16
-Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
----
- gpsmon.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/gpsmon.c b/gpsmon.c
-index 89c43ee2..5cc0dabd 100644
---- a/gpsmon.c
-+++ b/gpsmon.c
-@@ -24,6 +24,7 @@
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <sys/select.h>
-+#include <sys/ttydefaults.h>
- #include <fcntl.h>
- #include <unistd.h>
-
---
-2.12.0
-
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch b/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
deleted file mode 100644
index ba3d205d10..0000000000
--- a/meta-oe/recipes-navigation/gpsd/gpsd-3.17/0004-SConstruct-disable-html-and-man-docs-building-becaus.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 697e2e9ff97487266d817cdd41bacc83f681e3d7 Mon Sep 17 00:00:00 2001
-From: Martin Jansa <Martin.Jansa@gmail.com>
-Date: Sun, 29 Apr 2012 00:05:59 +0200
-Subject: [PATCH 4/4] SConstruct: disable html and man docs building because
- xmlto-native from OE is broken
-
-It will try to load dtd and fail:
-| xmlto man gpsctl.xml; mv `basename gpsctl.1` gpsctl.1
-| xmlto: /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate (status 3)
-| xmlto: Fix document syntax or use --skip-validation option
-| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
-| /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml:8: warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
-| "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">
-| ^
-| I/O error : Attempt to load network entity http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd
-| warning: failed to load external entity "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
-| validity error : Could not load the external subset "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd"
-| Document /var/lib/jenkins/jobs/shr-core-branches/workspace/shr-core/tmp-eglibc/work/armv4t-oe-linux-gnueabi/gpsd-3.4-r2/gpsd-3.4/gpsctl.xml does not validate
-| mv: cannot stat `gpsctl.1': No such file or directory
-| scons: *** [gpsctl.1] Error 1
-| scons: building terminated because of errors.
-
-Upstream-Status: Inappropriate [disable feature]
-
-Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
-Signed-off-by: Peter A. Bigot <pab@pabigot.com>
----
- SConstruct | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/SConstruct b/SConstruct
-index 3318bb48..a5bb756d 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -889,11 +889,11 @@ else:
-
- manbuilder = htmlbuilder = None
- if env['manbuild']:
-- if config.CheckXsltproc():
-+ if False and config.CheckXsltproc():
- build = "xsltproc --nonet %s $SOURCE >$TARGET"
- htmlbuilder = build % docbook_html_uri
- manbuilder = build % docbook_man_uri
-- elif WhereIs("xmlto"):
-+ elif False and WhereIs("xmlto"):
- xmlto = "xmlto %s $SOURCE || mv `basename $TARGET` " \
- "`dirname $TARGET`"
- htmlbuilder = xmlto % "html-nochunks"
---
-1.8.5.5
-
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb
index d2058ba570..4ced1c98db 100644
--- a/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb
+++ b/meta-oe/recipes-navigation/gpsd/gpsd-machine-conf_1.0.bb
@@ -1,7 +1,8 @@
SUMMARY = "Machine specific gpsd config"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD;md5=3775480a712fc46a69647678acb234cb"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
# empty by default
# BSP layers can add stuff like meta-openmoko example:
#
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.init b/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.init
new file mode 100644
index 0000000000..c9db0bb5c2
--- /dev/null
+++ b/meta-oe/recipes-navigation/gpsd/gpsd/gpsd.init
@@ -0,0 +1,158 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: gpsd
+# Required-Start: $remote_fs $syslog $network
+# Should-Start: bluetooth dbus udev
+# Required-Stop: $remote_fs $syslog $network
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# X-Start-Before: ntp
+# Short-Description: GPS (Global Positioning System) daemon start/stop script
+# Description: Start/Stop script for the gpsd service daemon,
+# which is able to monitor one or more GPS devices
+# connected to a host computer, making all data on
+# the location and movements of the sensors available
+# to be queried on TCP port 2947.
+### END INIT INFO
+
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+DESC="GPS (Global Positioning System) daemon"
+NAME="gpsd"
+DAEMON=/usr/sbin/$NAME
+PIDFILE=/var/run/$NAME.pid
+
+. /etc/init.d/functions || exit 1
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+if [ -z "$GPSD_SOCKET" ] && [ -z "$DEVICES" ]; then
+ GPSD_SOCKET=/var/run/gpsd.sock
+fi
+
+if [ -n "$GPSD_SOCKET" ]; then
+ GPSD_OPTIONS="$GPSD_OPTIONS -F $GPSD_SOCKET"
+fi
+
+DAEMON_ARGS="$GPSD_OPTIONS $DEVICES"
+
+#
+# Function that starts the daemon/service
+#
+do_start() {
+ local status pid
+
+ status=0
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "$DESC already running ($pid)."
+ exit 1
+ ;;
+ *)
+ echo "Starting $DESC ..."
+ exec $DAEMON $DAEMON_ARGS >/dev/null 2>&1 || status=$?
+ echo "ERROR: Failed to start $DESC."
+ exit $status
+ ;;
+ esac
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop() {
+ local pid status
+
+ status=0
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ # Exit when fail to stop, the kill would complain when fail
+ kill -s 15 $pid >/dev/null && rm -f $PIDFILE && \
+ echo "Stopped $DESC ($pid)." || exit $?
+ ;;
+ *)
+ echo "$DESC is not running; none killed." >&2
+ ;;
+ esac
+
+ return $status
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ local pid status
+
+ status=0
+ # If the daemon can reload its configuration without
+ # restarting (for example, when it is sent a SIGHUP),
+ # then implement that here.
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "Reloading $DESC ..."
+ kill -s 1 $pid || exit $?
+ ;;
+ *)
+ echo "$DESC is not running; none reloaded." >&2
+ ;;
+ esac
+ exit $status
+}
+
+
+#
+# Function that shows the daemon/service status
+#
+status_of_proc () {
+ local pid status
+
+ status=0
+ # pidof output null when no program is running, so no "2>/dev/null".
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "$DESC is running ($pid)."
+ exit 0
+ ;;
+ *)
+ echo "$DESC is not running." >&2
+ exit $status
+ ;;
+ esac
+}
+
+case "$1" in
+start)
+ do_start
+ ;;
+stop)
+ do_stop || exit $?
+ ;;
+status)
+ status_of_proc
+ ;;
+restart)
+ # Always start the service regardless the status of do_stop
+ do_stop
+ do_start
+ ;;
+force-reload)
+ # Only start the service when do_stop succeeds
+ do_stop && do_start
+ ;;
+*)
+ echo "Usage: $0 {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
deleted file mode 100644
index d526db2bee..0000000000
--- a/meta-oe/recipes-navigation/gpsd/gpsd_3.17.bb
+++ /dev/null
@@ -1,137 +0,0 @@
-SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
-SECTION = "console/network"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d217a23f408e91c94359447735bc1800"
-DEPENDS = "dbus dbus-glib ncurses python libusb1 chrpath-replacement-native pps-tools"
-PROVIDES = "virtual/gpsd"
-
-EXTRANATIVEPATH += "chrpath-native"
-
-SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
- file://0001-SConstruct-prefix-includepy-with-sysroot-and-drop-sy.patch \
- file://0004-SConstruct-disable-html-and-man-docs-building-becaus.patch \
- file://0001-include-sys-ttydefaults.h.patch \
-"
-SRC_URI[md5sum] = "e0cfadcf4a65dfbdd2afb11c58f4e4a1"
-SRC_URI[sha256sum] = "68e0dbecfb5831997f8b3d6ba48aed812eb465d8c0089420ab68f9ce4d85e77a"
-
-inherit scons update-rc.d python-dir pythonnative systemd bluetooth update-alternatives
-
-INITSCRIPT_PACKAGES = "gpsd-conf"
-INITSCRIPT_NAME = "gpsd"
-INITSCRIPT_PARAMS = "defaults 35"
-
-SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
-
-export STAGING_INCDIR
-export STAGING_LIBDIR
-
-PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)}"
-PACKAGECONFIG[bluez] = "bluez='true',bluez='false',${BLUEZ}"
-PACKAGECONFIG[qt] = "qt='yes',qt='no',qt4-x11-free"
-EXTRA_OESCONS = " \
- sysroot=${STAGING_DIR_TARGET} \
- libQgpsmm='false' \
- debug='true' \
- strip='false' \
- chrpath='yes' \
- systemd='${SYSTEMD_OESCONS}' \
- libdir='${libdir}' \
- ${PACKAGECONFIG_CONFARGS} \
-"
-# this cannot be used, because then chrpath is not found and only static lib is built
-# target=${HOST_SYS}
-
-do_compile_prepend() {
- export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
- export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
- export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
- export LINKFLAGS="${LDFLAGS}"
-}
-
-do_install() {
- export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
- export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
- export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
- export LINKFLAGS="${LDFLAGS}"
-
- export DESTDIR="${D}"
- # prefix is used for RPATH and DESTDIR/prefix for instalation
- ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} install ${EXTRA_OESCONS}|| \
- bbfatal "scons install execution failed."
-}
-
-do_install_append() {
- install -d ${D}/${sysconfdir}/init.d
- install -m 0755 ${S}/packaging/deb/etc_init.d_gpsd ${D}/${sysconfdir}/init.d/gpsd
- install -d ${D}/${sysconfdir}/default
- install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}/${sysconfdir}/default/gpsd.default
-
- #support for udev
- install -d ${D}/${sysconfdir}/udev/rules.d
- install -m 0644 ${S}/gpsd.rules ${D}/${sysconfdir}/udev/rules.d/
- install -d ${D}${base_libdir}/udev/
- install -m 0755 ${S}/gpsd.hotplug ${D}${base_libdir}/udev/
-
- #support for python
- install -d ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
- install -m 755 ${S}/gps/*.py ${D}/${PYTHON_SITEPACKAGES_DIR}/gps
-
- #support for systemd
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${S}/systemd/${BPN}.service ${D}${systemd_unitdir}/system/${BPN}.service
- install -m 0644 ${S}/systemd/${BPN}ctl@.service ${D}${systemd_unitdir}/system/${BPN}ctl@.service
- install -m 0644 ${S}/systemd/${BPN}.socket ${D}${systemd_unitdir}/system/${BPN}.socket
-}
-
-PACKAGES =+ "libgps libgpsd python-pygps-dbg python-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils"
-
-FILES_${PN}-dev += "${libdir}/pkgconfdir/libgpsd.pc ${libdir}/pkgconfdir/libgps.pc \
- ${libdir}/libQgpsmm.prl"
-
-FILES_python-pygps-dbg += " ${libdir}/python*/site-packages/gps/.debug"
-
-RDEPENDS_${PN} = "gpsd-gpsctl"
-RRECOMMENDS_${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
-
-SUMMARY_gpsd-udev = "udev relevant files to use gpsd hotplugging"
-FILES_gpsd-udev = "${base_libdir}/udev ${sysconfdir}/udev/*"
-RDEPENDS_gpsd-udev += "udev gpsd-conf"
-
-SUMMARY_libgpsd = "C service library used for communicating with gpsd"
-FILES_libgpsd = "${libdir}/libgpsd.so.*"
-
-SUMMARY_libgps = "C service library used for communicating with gpsd"
-FILES_libgps = "${libdir}/libgps.so.*"
-
-SUMMARY_gpsd-conf = "gpsd configuration files and init scripts"
-FILES_gpsd-conf = "${sysconfdir}"
-CONFFILES_gpsd-conf = "${sysconfdir}/default/gpsd.default"
-
-SUMMARY_gpsd-gpsctl = "Tool for tweaking GPS modes"
-FILES_gpsd-gpsctl = "${bindir}/gpsctl"
-
-SUMMARY_gps-utils = "Utils used for simulating, monitoring,... a GPS"
-FILES_gps-utils = "${bindir}/*"
-RDEPENDS_gps-utils = "python-pygps"
-
-SUMMARY_python-pygps = "Python bindings to gpsd"
-FILES_python-pygps = "${PYTHON_SITEPACKAGES_DIR}/*"
-RDEPENDS_python-pygps = " \
- python-core \
- python-io \
- python-threading \
- python-terminal \
- python-curses \
- gpsd \
- python-json"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "${BPN}.socket ${BPN}ctl@.service"
-
-
-ALTERNATIVE_${PN} = "gpsd-defaults"
-ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd"
-ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default"
diff --git a/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb b/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
new file mode 100644
index 0000000000..245f8728cb
--- /dev/null
+++ b/meta-oe/recipes-navigation/gpsd/gpsd_3.24.bb
@@ -0,0 +1,158 @@
+SUMMARY = "A TCP/IP Daemon simplifying the communication with GPS devices"
+SECTION = "console/network"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=7a5d174db44ec45f9638b2c747806821"
+DEPENDS = "dbus ncurses python3 pps-tools"
+PROVIDES = "virtual/gpsd"
+
+SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
+ file://gpsd.init \
+ "
+SRC_URI[sha256sum] = "00ee13f615655284874a661be13553abe66128e6deb5cd648af9bc0cb345fe5c"
+
+inherit scons update-rc.d python3-dir python3native systemd update-alternatives pkgconfig
+
+INITSCRIPT_PACKAGES = "gpsd-conf"
+INITSCRIPT_NAME = "gpsd"
+INITSCRIPT_PARAMS = "defaults 35"
+
+SYSTEMD_OESCONS = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false',d)}"
+
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+CLEANBROKEN = "1"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} usb"
+PACKAGECONFIG[bluez] = "bluez='true',bluez='false',bluez5"
+PACKAGECONFIG[qt] = "qt='yes' qt_versioned=5,qt='no',qtbase"
+PACKAGECONFIG[usb] = "usb='true',usb='false',libusb1"
+EXTRA_OESCONS = " \
+ sysroot=${STAGING_DIR_TARGET} \
+ libQgpsmm='false' \
+ debug='false' \
+ nostrip='true' \
+ systemd='${SYSTEMD_OESCONS}' \
+ libdir='${libdir}' \
+ sbindir='${sbindir}' \
+ udevdir='${nonarch_base_libdir}/udev' \
+ unitdir='${systemd_system_unitdir}' \
+ manbuild='false' \
+ LINK='${CC}' \
+ ${PACKAGECONFIG_CONFARGS} \
+"
+# This cannot be used, because then chrpath is not found and only static lib is built
+# target=${HOST_SYS}
+
+do_compile:prepend() {
+ export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+ export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+ export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+ export CC="${CC}"
+ export LD="${CC}"
+ export LINKFLAGS="${LDFLAGS}"
+}
+
+do_install() {
+ export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}"
+ export PKG_CONFIG="PKG_CONFIG_SYSROOT_DIR=\"${PKG_CONFIG_SYSROOT_DIR}\" pkg-config"
+ export STAGING_PREFIX="${STAGING_DIR_HOST}/${prefix}"
+ export LD="${CC}"
+ export LINKFLAGS="${LDFLAGS}"
+
+ export DESTDIR="${D}"
+ # prefix is used for RPATH and DESTDIR/prefix for installation
+ ${STAGING_BINDIR_NATIVE}/scons prefix=${prefix} python_libdir=${libdir} udev-install ${EXTRA_OESCONS} || \
+ bbfatal "scons install execution failed."
+}
+
+do_install:append() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/gpsd.init ${D}${sysconfdir}/init.d/gpsd
+ install -d ${D}${sysconfdir}/default
+ install -m 0644 ${S}/packaging/deb/etc_default_gpsd ${D}${sysconfdir}/default/gpsd.default
+
+ # Support for python
+ if [ -d ${D}${libdir}/gps ]; then
+ install -d ${D}${PYTHON_SITEPACKAGES_DIR}/gps
+ install -m 755 ${D}${libdir}/gps/*.py ${D}${PYTHON_SITEPACKAGES_DIR}/gps
+ fi
+}
+
+PACKAGES =+ "libgps python3-pygps gpsd-udev gpsd-conf gpsd-gpsctl gps-utils gps-utils-python"
+
+RPROVIDES:${PN}-dbg += "python-pygps-dbg"
+
+FILES:${PN}-dev += "${libdir}/libQgpsmm.prl"
+
+FILES:${PN}-doc += "${datadir}/${BPN}/doc"
+
+RDEPENDS:${PN} = "gpsd-gpsctl"
+RRECOMMENDS:${PN} = "gpsd-conf gpsd-udev gpsd-machine-conf"
+
+SUMMARY:gpsd-udev = "udev relevant files to use gpsd hotplugging"
+FILES:gpsd-udev = "${nonarch_base_libdir}/udev"
+RDEPENDS:gpsd-udev += "udev gpsd-conf"
+
+SUMMARY:libgps = "C service library used for communicating with gpsd"
+FILES:libgps = "${libdir}/libgps.so.*"
+
+SUMMARY:gpsd-conf = "gpsd configuration files and init scripts"
+FILES:gpsd-conf = "${sysconfdir}"
+CONFFILES:gpsd-conf = "${sysconfdir}/default/gpsd.default"
+
+SUMMARY:gpsd-gpsctl = "Tool for tweaking GPS modes"
+FILES:gpsd-gpsctl = "${bindir}/gpsctl"
+
+SUMMARY:gps-utils = "Utils used for simulating, monitoring,... a GPS"
+FILES:gps-utils = "\
+ ${bindir}/cgps \
+ ${bindir}/gps2udp \
+ ${bindir}/gpsctl \
+ ${bindir}/gpsdebuginfo \
+ ${bindir}/gpsdecode \
+ ${bindir}/gpsmon \
+ ${bindir}/gpspipe \
+ ${bindir}/gpsrinex \
+ ${bindir}/gpssnmp \
+ ${bindir}/gpxlogger \
+ ${bindir}/lcdgps \
+ ${bindir}/ntpshmmon \
+ ${bindir}/ppscheck \
+"
+RRECOMMENDS:gps-utils = "gps-utils-python"
+
+SUMMARY:gps-utils-python = "Python utils used for simulating, monitoring,... a GPS"
+FILES:gps-utils-python = "\
+ ${bindir}/gegps \
+ ${bindir}/gpscat \
+ ${bindir}/gpscsv \
+ ${bindir}/gpsfake \
+ ${bindir}/gpsplot \
+ ${bindir}/gpsprof \
+ ${bindir}/gpssubframe \
+ ${bindir}/ubxtool \
+ ${bindir}/xgps \
+ ${bindir}/xgpsspeed \
+ ${bindir}/zerk \
+"
+RDEPENDS:gps-utils-python = "python3-pygps"
+
+SUMMARY:python3-pygps = "Python bindings to gpsd"
+FILES:python3-pygps = "${PYTHON_SITEPACKAGES_DIR}/* ${libdir}/gps/*.py ${libdir}/*.egg-info"
+RDEPENDS:python3-pygps = " \
+ python3-core \
+ python3-io \
+ python3-threading \
+ python3-terminal \
+ gpsd \
+ python3-json"
+
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "${BPN}.socket ${BPN}ctl@.service"
+
+ALTERNATIVE:${PN} = "gpsd-defaults"
+ALTERNATIVE_LINK_NAME[gpsd-defaults] = "${sysconfdir}/default/gpsd"
+ALTERNATIVE_TARGET[gpsd-defaults] = "${sysconfdir}/default/gpsd.default"
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch b/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch
deleted file mode 100644
index 28bd7dad87..0000000000
--- a/meta-oe/recipes-navigation/libspatialite/libspatialite-4.2.0/geos-config.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-https://www.gaia-gis.it/fossil/libspatialite/tktview?name=abeeaad448
-
-Upstream-Status: Submitted [rpm5-devel@rpm5.org]
-
-Index: libspatialite-4.2.0/configure.ac
-===================================================================
---- libspatialite-4.2.0.orig/configure.ac
-+++ libspatialite-4.2.0/configure.ac
-@@ -260,7 +260,7 @@ if test x"$enable_geos" != "xno"; then
- fi
- # Extract the linker and include flags
- GEOS_LDFLAGS=`$GEOSCONFIG --ldflags`
-- GEOS_CFLAGS=-I`$GEOSCONFIG --includes`
-+ GEOS_CFLAGS=`$GEOSCONFIG --cflags`
- AC_SUBST([GEOS_LDFLAGS])
- AC_SUBST([GEOS_CFLAGS])
- # Ensure that we can parse geos_c.h
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch
new file mode 100644
index 0000000000..569ea76bb5
--- /dev/null
+++ b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_geos.patch
@@ -0,0 +1,45 @@
+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
+@@ -312,35 +312,10 @@ AC_ARG_ENABLE(geos, [AS_HELP_STRING(
+ [], [enable_geos=yes])
+ if test x"$enable_geos" != "xno"; then
+ #-----------------------------------------------------------------------
+- # --with-geosconfig
+- #
+- AC_ARG_WITH([geosconfig],
+- [AS_HELP_STRING([--with-geosconfig=FILE], [specify an alternative geos-config file])],
+- [GEOSCONFIG="$withval"], [GEOSCONFIG=""])
+- if test "x$GEOSCONFIG" = "x"; then
+- # GEOSCONFIG was not specified, so search within the current path
+- AC_PATH_PROG([GEOSCONFIG], [geos-config])
+- # If we couldn't find geos-config, display an error
+- if test "x$GEOSCONFIG" = "x"; then
+- AC_MSG_ERROR([could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter.])
+- fi
+- else
+- # GEOSCONFIG was specified; display a message to the user
+- if test "x$GEOSCONFIG" = "xyes"; then
+- AC_MSG_ERROR([you must specify a parameter to --with-geosconfig, e.g. --with-geosconfig=/path/to/geos-config])
+- else
+- if test -f $GEOSCONFIG; then
+- AC_MSG_RESULT([Using user-specified geos-config file: $GEOSCONFIG])
+- else
+- AC_MSG_ERROR([the user-specified geos-config file $GEOSCONFIG does not exist])
+- fi
+- fi
+- fi
+- # Extract the linker and include flags
+- GEOS_LDFLAGS=`$GEOSCONFIG --ldflags`
+- GEOS_CFLAGS=-I`$GEOSCONFIG --includes`
+- AC_SUBST([GEOS_LDFLAGS])
+- AC_SUBST([GEOS_CFLAGS])
++ PKG_CHECK_MODULES([GEOS], [geos], , AC_MSG_ERROR(['geos' is required but it doesn't seem to be installed on this system.]))
++ GEOS_LDFLAGS="$GEOS_LIBS"
++ AC_SUBST(GEOS_CFLAGS)
++ AC_SUBST(GEOS_LDFLAGS)
+ # Ensure that we can parse geos_c.h
+ CPPFLAGS_SAVE="$CPPFLAGS"
+ CPPFLAGS="$GEOS_CFLAGS"
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch
new file mode 100644
index 0000000000..6f1c165f58
--- /dev/null
+++ b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_macros.patch
@@ -0,0 +1,14 @@
+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
+@@ -96,7 +96,7 @@ AC_PROG_INSTALL
+ AC_PROG_LN_S
+ AC_PROG_MAKE_SET
+ AC_LIBTOOL_WIN32_DLL
+-AC_PROG_LIBTOOL
++LT_INIT
+
+ # Checks for typedefs, structures, and compiler characteristics.
+ AC_C_CONST
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch
new file mode 100644
index 0000000000..de6e50a58d
--- /dev/null
+++ b/meta-oe/recipes-navigation/libspatialite/libspatialite/libspatialite_pkgconfig.patch
@@ -0,0 +1,13 @@
+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
+@@ -8,5 +8,6 @@ includedir=@includedir@
+ Name: spatialite
+ Description: Spatial SQL database engine based on SQLite
+ Version: @VERSION@
+-Libs: -L${libdir} -lspatialite @LIBS@ @LIBXML2_LIBS@ -lm
++Libs.private: -L${libdir} @LIBS@ @LIBXML2_LIBS@ -lm
++Libs: -L${libdir} -lspatialite
+ Cflags: -I${includedir}
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb b/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb
deleted file mode 100644
index d66dc875be..0000000000
--- a/meta-oe/recipes-navigation/libspatialite/libspatialite_4.2.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "Library extending the SQLite core to support fully fledged Spatial SQL capabilities"
-HOMEPAGE = "https://www.gaia-gis.it/fossil/libspatialite/"
-SECTION = "libs"
-DEPENDS = "proj geos sqlite3 libxml2 zlib"
-
-LICENSE = "MPLv1.1 & GPLv2+ & LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0e92e1a36cc384b60f5b31dde0bdd39e"
-
-SRC_URI = "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${PV}.tar.gz"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--enable-freexl=no"
-
-# package plugins for SQLite3
-PACKAGES += "${PN}-plugin"
-INSANE_SKIP_${PN}-plugin = "dev-so"
-FILES_${PN}-plugin += "${libdir}/mod_*"
-
-SRC_URI[md5sum] = "83305ed694a77152120d1f74c5151779"
-SRC_URI[sha256sum] = "9f138a6854740c7827fdee53845eb1485fce3e805a7aa9fc9151f8046ebd312d"
-
-SRC_URI += "file://geos-config.patch"
diff --git a/meta-oe/recipes-navigation/libspatialite/libspatialite_5.0.1.bb b/meta-oe/recipes-navigation/libspatialite/libspatialite_5.0.1.bb
new file mode 100644
index 0000000000..f46b1083e1
--- /dev/null
+++ b/meta-oe/recipes-navigation/libspatialite/libspatialite_5.0.1.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Library extending the SQLite core to support fully fledged Spatial SQL capabilities"
+HOMEPAGE = "https://www.gaia-gis.it/fossil/libspatialite/"
+SECTION = "libs"
+DEPENDS = "proj geos sqlite3 libxml2 zlib"
+
+LICENSE = "MPL-1.1 & GPL-2.0-or-later & LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0e92e1a36cc384b60f5b31dde0bdd39e"
+
+SRC_URI = "http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-${PV}.tar.gz \
+ file://libspatialite_geos.patch \
+ file://libspatialite_macros.patch \
+ file://libspatialite_pkgconfig.patch \
+"
+
+SRC_URI[sha256sum] = "eecbc94311c78012d059ebc0fae86ea5ef6eecb13303e6e82b3753c1b3409e98"
+
+inherit autotools-brokensep pkgconfig
+
+EXTRA_OECONF = "--enable-freexl=no --disable-rttopo --disable-minizip"
+
+# package plugins for SQLite3
+PACKAGES += "${PN}-plugin"
+INSANE_SKIP:${PN}-plugin = "dev-so"
+FILES:${PN}-plugin += "${libdir}/mod_*"
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 010f65fb9b..96a7018de2 100644
--- a/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
+++ b/meta-oe/recipes-navigation/orrery/orrery_2.7.bb
@@ -1,11 +1,11 @@
SUMMARY = "Astronomical application which displays the night sky"
HOMEPAGE = "http://projects.openmoko.org/projects/orrery/"
SECTION = "x11/scientific"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://orrery.c;endline=25;md5=d792bdf2b591972da175aecc38d88cfe"
DEPENDS = "gtk+"
-inherit distro_features_check autotools-brokensep pkgconfig
+inherit features_check autotools-brokensep pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
@@ -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"
@@ -20,16 +21,17 @@ SRC_URI[sha256sum] = "645166a5e05b2064ab630534a514697fc47b681951e7fe1d635c259cbd
S = "${WORKDIR}/${BPN}"
-do_configure_prepend() {
+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() {
+do_install:append() {
install -d ${D}${datadir}/orrery
cp -R --no-dereference --preserve=mode,links -v ${S}/data/* ${D}${datadir}/orrery
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"
+FILES:${PN} += "${datadir}/icons/orrery.png"
diff --git a/meta-oe/recipes-navigation/proj/proj_4.9.3.bb b/meta-oe/recipes-navigation/proj/proj_4.9.3.bb
deleted file mode 100644
index f45f8948d5..0000000000
--- a/meta-oe/recipes-navigation/proj/proj_4.9.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "PROJ.4 - Cartographic Projections library"
-HOMEPAGE = "http://trac.osgeo.org/proj/"
-SECTION = "libs"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=74d9aaec5fa0cd734341e8c4dc91b608"
-
-SRC_URI = "http://download.osgeo.org/proj/proj-${PV}.tar.gz"
-SRC_URI[md5sum] = "d598336ca834742735137c5674b214a1"
-SRC_URI[sha256sum] = "6984542fea333488de5c82eea58d699e4aff4b359200a9971537cd7e047185f7"
-
-inherit autotools pkgconfig lib_package
-
-FILES_${PN} += "${datadir}/proj"
diff --git a/meta-oe/recipes-navigation/proj/proj_9.1.1.bb b/meta-oe/recipes-navigation/proj/proj_9.1.1.bb
new file mode 100644
index 0000000000..6ce1c88772
--- /dev/null
+++ b/meta-oe/recipes-navigation/proj/proj_9.1.1.bb
@@ -0,0 +1,25 @@
+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] = "003cd4010e52bb5eb8f7de1c143753aa830c8902b6ed01209f294846e40e6d39"
+
+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"
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
new file mode 100644
index 0000000000..3b7054a799
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-Fix-time.h-check.patch
@@ -0,0 +1,54 @@
+From 266f0acf7f5e029afbb3e263437039e50cd6c262 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 23 Feb 2022 00:45:15 +0000
+Subject: [PATCH] Fix <time.h> check
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We're conditionally including based on HAVE_TIME_H in a bunch of places,
+but we're not actually checking for time.h, so that's never going to be defined.
+
+While at it, add in a missing include in the cram plugin.
+
+This fixes a bunch of implicit declaration warnings:
+```
+ * cyrus-sasl-2.1.28/lib/saslutil.c:280:3: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
+ * cyrus-sasl-2.1.28/lib/saslutil.c:364:41: warning: implicit declaration of function ‘clock’ [-Wimplicit-function-declaration]
+ * cyrus-sasl-2.1.28/plugins/cram.c:132:7: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
+ * cyrus-sasl-2.1.28/lib/saslutil.c:280:3: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
+ * cyrus-sasl-2.1.28/lib/saslutil.c:364:41: warning: implicit declaration of function ‘clock’ [-Wimplicit-function-declaration]
+ * cyrus-sasl-2.1.28/plugins/cram.c:132:7: warning: implicit declaration of function ‘time’ [-Wimplicit-function-declaration]
+```
+
+Upstream-Status: Backport [https://github.com/cyrusimap/cyrus-sasl/commit/266f0acf7f5e029afbb3e263437039e50cd6c262]
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ configure.ac | 2 +-
+ plugins/cram.c | 4 ++++
+ 2 files changed, 5 insertions(+), 1 deletion(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -1231,7 +1231,7 @@ AC_CHECK_HEADERS_ONCE([sys/time.h])
+
+ AC_HEADER_DIRENT
+ AC_HEADER_SYS_WAIT
+-AC_CHECK_HEADERS(crypt.h des.h dlfcn.h fcntl.h limits.h malloc.h paths.h strings.h sys/file.h sys/time.h syslog.h unistd.h inttypes.h sys/uio.h sys/param.h sysexits.h stdarg.h varargs.h krb5.h)
++AC_CHECK_HEADERS(crypt.h des.h dlfcn.h fcntl.h limits.h malloc.h paths.h strings.h sys/file.h sys/time.h syslog.h time.h unistd.h inttypes.h sys/uio.h sys/param.h sysexits.h stdarg.h varargs.h krb5.h)
+
+ IPv6_CHECK_SS_FAMILY()
+ IPv6_CHECK_SA_LEN()
+--- a/plugins/cram.c
++++ b/plugins/cram.c
+@@ -53,6 +53,10 @@
+ #endif
+ #include <fcntl.h>
+
++#ifdef HAVE_TIME_H
++#include <time.h>
++#endif
++
+ #include <sasl.h>
+ #include <saslplug.h>
+ #include <saslutil.h>
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-sample-Rename-dprintf-to-cyrus_dprintf.patch b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-sample-Rename-dprintf-to-cyrus_dprintf.patch
new file mode 100644
index 0000000000..4c6d61dfc7
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/0001-sample-Rename-dprintf-to-cyrus_dprintf.patch
@@ -0,0 +1,91 @@
+From ade70f39c4aa5a8830462d9ccf3b8f8dd968c0d8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 28 Feb 2022 11:10:26 -0800
+Subject: [PATCH] sample: Rename dprintf to cyrus_dprintf
+
+This avoids shadowing the dprintf implementations in glibc
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sample/client.c | 12 ++++++------
+ sample/common.c | 2 +-
+ sample/common.h | 2 +-
+ 3 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/sample/client.c b/sample/client.c
+index e723c6b7..6a04f428 100644
+--- a/sample/client.c
++++ b/sample/client.c
+@@ -241,9 +241,9 @@ int mysasl_negotiate(FILE *in, FILE *out, sasl_conn_t *conn)
+ int r, c;
+
+ /* get the capability list */
+- dprintf(0, "receiving capability list... ");
++ cyrus_dprintf(0, "receiving capability list... ");
+ len = recv_string(in, buf, sizeof buf);
+- dprintf(0, "%s\n", buf);
++ cyrus_dprintf(0, "%s\n", buf);
+
+ if (mech) {
+ /* make sure that 'mech' appears in 'buf' */
+@@ -262,7 +262,7 @@ int mysasl_negotiate(FILE *in, FILE *out, sasl_conn_t *conn)
+ return -1;
+ }
+
+- dprintf(1, "using mechanism %s\n", chosenmech);
++ cyrus_dprintf(1, "using mechanism %s\n", chosenmech);
+
+ /* we send up to 3 strings;
+ the mechanism chosen, the presence of initial response,
+@@ -276,7 +276,7 @@ int mysasl_negotiate(FILE *in, FILE *out, sasl_conn_t *conn)
+ }
+
+ for (;;) {
+- dprintf(2, "waiting for server reply...\n");
++ cyrus_dprintf(2, "waiting for server reply...\n");
+
+ c = fgetc(in);
+ switch (c) {
+@@ -303,10 +303,10 @@ int mysasl_negotiate(FILE *in, FILE *out, sasl_conn_t *conn)
+ }
+
+ if (data) {
+- dprintf(2, "sending response length %d...\n", len);
++ cyrus_dprintf(2, "sending response length %d...\n", len);
+ send_string(out, data, len);
+ } else {
+- dprintf(2, "sending null response...\n");
++ cyrus_dprintf(2, "sending null response...\n");
+ send_string(out, "", 0);
+ }
+ }
+diff --git a/sample/common.c b/sample/common.c
+index 712549fd..d138e450 100644
+--- a/sample/common.c
++++ b/sample/common.c
+@@ -127,7 +127,7 @@ int recv_string(FILE *f, char *buf, int buflen)
+
+ int debuglevel = 0;
+
+-int dprintf(int lvl, const char *fmt, ...)
++int cyrus_dprintf(int lvl, const char *fmt, ...)
+ {
+ va_list ap;
+ int ret = 0;
+diff --git a/sample/common.h b/sample/common.h
+index 819d0101..cd56907a 100644
+--- a/sample/common.h
++++ b/sample/common.h
+@@ -43,7 +43,7 @@ extern int send_string(FILE *f, const char *s, int l);
+ extern int recv_string(FILE *f, char *buf, int buflen);
+
+ extern int debuglevel;
+-extern int dprintf(int lvl, const char *fmt, ...);
++extern int cyrus_dprintf(int lvl, const char *fmt, ...);
+
+ extern void saslerr(int why, const char *what);
+ extern void saslfail(int why, const char *what);
+--
+2.35.1
+
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
new file mode 100644
index 0000000000..8c95268bb5
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2019-19906.patch
@@ -0,0 +1,37 @@
+From 94fe6eb9ea2691f4a7c32fbf2d0c7c454995b666 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 27 Feb 2020 11:08:57 +0800
+Subject: [PATCH] Fix #587
+
+Off by one error in common.c, CVE-2019-19906.
+
+Thanks to Stephan Zeisberg for reporting
+
+CVE: CVE-2019-19906
+
+Upstream-Stauts: Backport [https://github.com/cyrusimap/cyrus-sasl
+/commit/dcc9f51cbd4ed622cfb0f9b1c141eb2ffe3b12f1]
+
+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/lib/common.c b/lib/common.c
+index d9104c8..fef82db 100644
+--- a/lib/common.c
++++ b/lib/common.c
+@@ -190,7 +190,7 @@ int _sasl_add_string(char **out, size_t *alloclen,
+
+ if (add==NULL) add = "(null)";
+
+- addlen=strlen(add); /* only compute once */
++ addlen=strlen(add)+1; /* only compute once */
+ if (_buf_alloc(out, alloclen, (*outlen)+addlen+1)!=SASL_OK)
+ return SASL_NOMEM;
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2022-24407.patch b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2022-24407.patch
new file mode 100644
index 0000000000..3d67f47414
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/CVE-2022-24407.patch
@@ -0,0 +1,27 @@
+From 078f98ea154475d953ce5b7cd851732f4dc270a7 Mon Sep 17 00:00:00 2001
+From: Hitendra Prajapati <hprajapati@mvista.com>
+Date: Tue, 5 Jul 2022 09:31:07 +0530
+Subject: [PATCH] CVE-2022-24407
+
+Upstream-Status: Backport [https://github.com/cyrusimap/cyrus-sasl/commit/9eff746c9daecbcc0041b09a5a51ba30738cdcbc]
+CVE: CVE-2022-24407
+Signed-off-by: Hitendra Prajapati <hprajapati@mvista.com>
+---
+ plugins/sql.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/plugins/sql.c b/plugins/sql.c
+index 6ac81c2f..d90dbac9 100644
+--- a/plugins/sql.c
++++ b/plugins/sql.c
+@@ -1127,6 +1127,7 @@ static int sql_auxprop_lookup(void *glob_context,
+ done:
+ if (escap_userid) sparams->utils->free(escap_userid);
+ if (escap_realm) sparams->utils->free(escap_realm);
++ if (escap_passwd) sparams->utils->free(escap_passwd);
+ if (conn) settings->sql_engine->sql_close(conn);
+ if (userid) sparams->utils->free(userid);
+ if (realm) sparams->utils->free(realm);
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..308d88204f
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/avoid-to-call-AC_TRY_RUN.patch
@@ -0,0 +1,39 @@
+Remove AC_TRY_RUN
+
+It can not be run during cross compile
+
+Upstream-Status: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/m4/sasl2.m4
++++ b/m4/sasl2.m4
+@@ -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_TRY_RUN([
+-#ifdef HAVE_GSSAPI_H
+-#include <gssapi.h>
+-#else
+-#include <gssapi/gssapi.h>
+-#endif
+-
+-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
new file mode 100644
index 0000000000..a5f2f5dd91
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/debian_patches_0014_avoid_pic_overwrite.diff
@@ -0,0 +1,30 @@
+From 1a5f3004e9081eab6263a29cd5be792f06441e36 Mon Sep 17 00:00:00 2001
+From: Fabian Fagerholm <fabbe@debian.org>
+Date: Wed, 24 Jul 2013 11:38:25 -0400
+Subject: [PATCH] cyrus-sasl: Add patches from Debian to fix linking
+
+Description: This patch makes sure the non-PIC version of libsasldb.a, which
+is created out of non-PIC objects, is not going to overwrite the PIC version,
+which is created out of PIC objects. The PIC version is placed in .libs, and
+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/lib/Makefile.am b/lib/Makefile.am
+index a158ca3..3137e19 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -99,7 +99,7 @@ endif
+
+ libsasl2.a: libsasl2.la $(SASL_STATIC_OBJS)
+ @echo adding static plugins and dependencies
+- $(AR) cru .libs/$@ $(SASL_STATIC_OBJS)
++ $(AR) cru $@ $(SASL_STATIC_OBJS)
+ @for i in ./libsasl2.la ../common/libplugin_common.la ../sasldb/libsasldb.la ../plugins/lib*.la; do \
+ if test ! -f $$i; then continue; fi; . $$i; \
+ for j in $$dependency_libs foo; do \
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/saslauthd.conf
index a91a9d3340..a91a9d3340 100644
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.conf
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/saslauthd.conf
diff --git a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/saslauthd.service
index 96dbae3782..e63592af6c 100644
--- a/meta-networking/recipes-daemons/cyrus-sasl/cyrus-sasl/saslauthd.service
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl/saslauthd.service
@@ -4,7 +4,7 @@ After=syslog.target
[Service]
Type=forking
-PIDFile=@LOCALSTATEDIR@/run/saslauthd/saslauthd.pid
+PIDFile=/run/saslauthd/saslauthd.pid
EnvironmentFile=@SYSCONFDIR@/default/saslauthd
ExecStart=@SBINDIR@/saslauthd -m $SOCKETDIR -a $MECH $FLAGS
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
new file mode 100644
index 0000000000..11b53e7b61
--- /dev/null
+++ b/meta-oe/recipes-networking/cyrus-sasl/cyrus-sasl_2.1.28.bb
@@ -0,0 +1,97 @@
+SUMMARY = "Generic client/server library for SASL authentication"
+SECTION = "libs"
+HOMEPAGE = "http://asg.web.cmu.edu/sasl/"
+DEPENDS = "openssl db groff-native"
+LICENSE = "BSD-4-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=3f55e0974e3d6db00ca6f57f2d206396"
+
+SRCREV = "7a6b45b177070198fed0682bea5fa87c18abb084"
+
+SRC_URI = "git://github.com/cyrusimap/cyrus-sasl;protocol=https;branch=cyrus-sasl-2.1 \
+ file://avoid-to-call-AC_TRY_RUN.patch \
+ file://debian_patches_0014_avoid_pic_overwrite.diff \
+ file://0001-sample-Rename-dprintf-to-cyrus_dprintf.patch \
+ file://saslauthd.service \
+ file://saslauthd.conf \
+ file://CVE-2019-19906.patch \
+ file://CVE-2022-24407.patch \
+ file://0001-Fix-time.h-check.patch \
+ "
+
+UPSTREAM_CHECK_URI = "https://github.com/cyrusimap/cyrus-sasl/archives"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig useradd systemd
+
+EXTRA_OECONF += "--with-dblib=berkeley \
+ --with-plugindir='${libdir}/sasl2' \
+ andrew_cv_runpath_switch=none"
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.filter('DISTRO_FEATURES', 'ldap pam', d)} \
+"
+PACKAGECONFIG[gssapi] = "--enable-gssapi=yes,--enable-gssapi=no,krb5,"
+PACKAGECONFIG[pam] = "--with-pam,--without-pam,libpam,"
+PACKAGECONFIG[opie] = "--with-opie,--without-opie,opie,"
+PACKAGECONFIG[des] = "--with-des,--without-des,,"
+PACKAGECONFIG[ldap] = "--with-ldap=${STAGING_LIBDIR} --enable-ldapdb,--without-ldap --disable-ldapdb,openldap,"
+PACKAGECONFIG[ntlm] = "--enable-ntlm=yes,--enable-ntlm=no,,"
+
+CFLAGS += "-fPIC"
+
+do_configure:prepend () {
+ # make it be able to work with db 5.0 version
+ local sed_files="sasldb/db_berkeley.c utils/dbconverter-2.c"
+ for sed_file in $sed_files; do
+ sed -i 's#DB_VERSION_MAJOR == 4.*#(&) || DB_VERSION_MAJOR == 5#' ${S}/$sed_file
+ done
+}
+
+do_compile:prepend () {
+ cd include
+ ${BUILD_CC} ${BUILD_CFLAGS} ${BUILD_LDFLAGS} ${S}/include/makemd5.c -o makemd5
+ touch makemd5.o makemd5.lo makemd5
+ cd ..
+}
+
+do_install:append() {
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${WORKDIR}/saslauthd.service ${D}${systemd_unitdir}/system
+
+ sed -i -e 's#@SBINDIR@#${sbindir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
+ sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
+ sed -i -e 's#@SYSCONFDIR@#${sysconfdir}#g' ${D}${systemd_unitdir}/system/saslauthd.service
+
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ echo "d /run/saslauthd/ - - - -" > ${D}${sysconfdir}/tmpfiles.d/saslauthd.conf
+
+ install -d ${D}${sysconfdir}/default/
+ install -m 0644 ${WORKDIR}/saslauthd.conf ${D}${sysconfdir}/default/saslauthd
+ sed -i -e 's#@LOCALSTATEDIR@#${localstatedir}#g' ${D}${sysconfdir}/default/saslauthd
+ fi
+}
+
+USERADD_PACKAGES = "${PN}-bin"
+USERADD_PARAM:${PN}-bin = "--system --home=/var/spool/mail -g mail cyrus"
+
+SYSTEMD_PACKAGES = "${PN}-bin"
+SYSTEMD_SERVICE:${PN}-bin = "saslauthd.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+SRC_URI[md5sum] = "a7f4e5e559a0e37b3ffc438c9456e425"
+SRC_URI[sha256sum] = "8fbc5136512b59bb793657f36fadda6359cae3b08f01fd16b3d406f1345b7bc3"
+
+PACKAGES =+ "${PN}-bin"
+
+FILES:${PN} += "${libdir}/sasl2/*.so*"
+FILES:${PN}-bin += "${bindir} \
+ ${sysconfdir}/default/saslauthd \
+ ${systemd_unitdir}/system/saslauthd.service \
+ ${sysconfdir}/tmpfiles.d/saslauthd.conf"
+FILES:${PN}-dev += "${libdir}/sasl2/*.la"
+FILES:${PN}-dbg += "${libdir}/sasl2/.debug"
+FILES:${PN}-staticdev += "${libdir}/sasl2/*.a"
+
+INSANE_SKIP:${PN} += "dev-so"
diff --git a/meta-oe/recipes-printing/cups/cups-filters/0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch b/meta-oe/recipes-printing/cups/cups-filters/0001-use-noexcept-false-instead-of-throw-from-c-17-onward.patch
new file mode 100644
index 0000000000..5de8dae006
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/cups-filters/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/filter/pdftoraster.cxx b/filter/pdftoraster.cxx
+index e8af184fb..e91e22459 100755
+--- a/filter/pdftoraster.cxx
++++ b/filter/pdftoraster.cxx
+@@ -2148,7 +2148,11 @@ int main(int argc, char *argv[]) {
+ /* For compatibility with g++ >= 4.7 compilers _GLIBCXX_THROW
+ * should be used as a guard, otherwise use traditional definition */
+ #ifndef _GLIBCXX_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/cups-filters_1.28.17.bb b/meta-oe/recipes-printing/cups/cups-filters_1.28.17.bb
new file mode 100644
index 0000000000..fd82bb39c2
--- /dev/null
+++ b/meta-oe/recipes-printing/cups/cups-filters_1.28.17.bb
@@ -0,0 +1,84 @@
+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 poppler qpdf libpng libexif"
+DEPENDS:class-native = "poppler-native glib-2.0-native dbus-native pkgconfig-native gettext-native libpng-native"
+
+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] = "270a3752a960368aa99d431fb5d34f4039b2ac943c576d840612d1d8185c9bb9"
+
+inherit autotools-brokensep gettext pkgconfig github-releases
+
+EXTRA_OECONF += " --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 ??= "dbus ${@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* \
+ "
+RDEPENDS:${PN}-gst += "ghostscript"
+
+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 \
+"
+RDEPENDS:${PN} += "bash"
+RDEPENDS:${PN} += "ghostscript"
+
+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
+}
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/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_git.bb b/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb
new file mode 100644
index 0000000000..f0dc6adea0
--- /dev/null
+++ b/meta-oe/recipes-printing/gutenprint/gutenprint_git.bb
@@ -0,0 +1,74 @@
+# 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"
+
+SRC_URI = "git://git.code.sf.net/p/gimp-print/source;protocol=https;branch=master"
+SRCREV = "66b0a7bc3fd25659a3f295db0ebb39d04e413c01"
+PV = "5.3.3+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+inherit autotools gettext pkgconfig
+
+DEPENDS += "glib-2.0-native cups gutenprint-native"
+# 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
+ # Despite being a generated file, this needs to be in S.
+ cp ${STAGING_DATADIR_NATIVE}/gutenprint/xmli18n-tmp.h ${S}/src/xml/
+}
+
+do_configure() {
+ # Need to call autogen.sh as that creates m4/stp_release.m4
+ cd ${S}
+ NOCONFIGURE=1 ./autogen.sh
+ cd ${B}
+ oe_runconf
+}
+
+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/qpdf/qpdf_10.6.3.bb b/meta-oe/recipes-printing/qpdf/qpdf_10.6.3.bb
new file mode 100644
index 0000000000..fa33daf52d
--- /dev/null
+++ b/meta-oe/recipes-printing/qpdf/qpdf_10.6.3.bb
@@ -0,0 +1,33 @@
+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-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
new file mode 100644
index 0000000000..23747c45f0
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit/0001-Replace-__attribute_malloc__-with-__attribute__-__ma.patch
@@ -0,0 +1,36 @@
+From 79c8d6a2755c9dfa00a5e86378e89a94eef0504d 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__))
+
+__attribute_malloc__ is not available on musl
+
+Fixes
+| ../../git/auparse/auparse.h:54:2: error: expected function body after function declarator
+| __attribute_malloc__ __attr_dealloc (auparse_destroy, 1);
+| ^
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+Upstream-Status: Pending
+
+ auparse/auparse.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/auparse/auparse.h b/auparse/auparse.h
+index 95cf256d..c7dbe5ff 100644
+--- a/auparse/auparse.h
++++ b/auparse/auparse.h
+@@ -51,7 +51,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)
+- __attribute_malloc__ __attr_dealloc (auparse_destroy, 1);
++ __attribute__((__malloc__)) __attr_dealloc (auparse_destroy, 1);
+ int auparse_new_buffer(auparse_state_t *au, const char *data, size_t data_len)
+ __attr_access ((__read_only__, 2, 3));
+ int auparse_feed(auparse_state_t *au, const char *data, size_t data_len)
+--
+2.37.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
new file mode 100644
index 0000000000..b023c80ae4
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit/Fixed-swig-host-contamination-issue.patch
@@ -0,0 +1,50 @@
+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/audit-volatile.conf b/meta-oe/recipes-security/audit/audit/audit-volatile.conf
new file mode 100644
index 0000000000..9cbe1547a3
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit/audit-volatile.conf
@@ -0,0 +1 @@
+d /var/log/audit 0750 root root -
diff --git a/meta-oe/recipes-security/audit/audit/auditd b/meta-oe/recipes-security/audit/audit/auditd
new file mode 100644
index 0000000000..6aa7f94751
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit/auditd
@@ -0,0 +1,153 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: auditd
+# Required-Start: $local_fs
+# Required-Stop: $local_fs
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Audit Daemon
+# Description: Collects audit information from Linux 2.6 Kernels.
+### END INIT INFO
+
+# Author: Philipp Matthias Hahn <pmhahn@debian.org>
+# Based on Debians /etc/init.d/skeleton and Auditds init.d/auditd.init
+
+# June, 2012: Adopted for yocto <amy.fong@windriver.com>
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+DESC="audit daemon"
+NAME=auditd
+DAEMON=/sbin/auditd
+PIDFILE=/var/run/"$NAME".pid
+SCRIPTNAME=/etc/init.d/"$NAME"
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/"$NAME" ] && . /etc/default/"$NAME"
+
+. /etc/default/rcS
+
+. /etc/init.d/functions
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+ start-stop-daemon -S --quiet --pidfile "$PIDFILE" --exec "$DAEMON" --test > /dev/null \
+ || return 1
+ start-stop-daemon -S --quiet --pidfile "$PIDFILE" --exec "$DAEMON" -- \
+ $EXTRAOPTIONS \
+ || return 2
+ if [ -f /etc/audit/audit.rules ]
+ then
+ /sbin/auditctl -R /etc/audit/audit.rules >/dev/null
+ fi
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon -K --quiet --pidfile "$PIDFILE" --name "$NAME"
+ RETVAL="$?"
+ [ "$RETVAL" = 2 ] && return 2
+ # Many daemons don't delete their pidfiles when they exit.
+ rm -f "$PIDFILE"
+ rm -f /var/run/audit_events
+ # Remove watches so shutdown works cleanly
+ case "$AUDITD_CLEAN_STOP" in
+ no|NO) ;;
+ *) /sbin/auditctl -D >/dev/null ;;
+ esac
+ return "$RETVAL"
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ start-stop-daemon -K --signal HUP --quiet --pidfile $PIDFILE --name $NAME
+ return 0
+}
+
+if [ ! -e /var/log/audit ]; then
+ mkdir -p /var/log/audit
+ [ -x /sbin/restorecon ] && /sbin/restorecon -F $(readlink -f /var/log/audit)
+fi
+
+case "$1" in
+ start)
+ [ "$VERBOSE" != no ] && echo "Starting $DESC" "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && echo 0 ;;
+ 2) [ "$VERBOSE" != no ] && echo 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && echo "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && echo 0 ;;
+ 2) [ "$VERBOSE" != no ] && echo 1 ;;
+ esac
+ ;;
+ reload|force-reload)
+ echo "Reloading $DESC" "$NAME"
+ do_reload
+ echo $?
+ ;;
+ restart)
+ echo "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) echo 0 ;;
+ 1) echo 1 ;; # Old process is still running
+ *) echo 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ echo 1
+ ;;
+ esac
+ ;;
+ rotate)
+ echo "Rotating $DESC logs" "$NAME"
+ start-stop-daemon -K --signal USR1 --quiet --pidfile "$PIDFILE" --name "$NAME"
+ echo $?
+ ;;
+ status)
+ pidofproc "$DAEMON" >/dev/null
+ status=$?
+ if [ $status -eq 0 ]; then
+ echo "$NAME is running."
+ else
+ echo "$NAME is not running."
+ fi
+ exit $status
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload|rotate|status}" >&2
+ exit 3
+ ;;
+esac
+
+:
diff --git a/meta-oe/recipes-security/audit/audit/auditd.service b/meta-oe/recipes-security/audit/audit/auditd.service
new file mode 100644
index 0000000000..06c63f0e5e
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit/auditd.service
@@ -0,0 +1,28 @@
+[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_3.1.1.bb b/meta-oe/recipes-security/audit/audit_3.1.1.bb
new file mode 100644
index 0000000000..7ed2fd2dec
--- /dev/null
+++ b/meta-oe/recipes-security/audit/audit_3.1.1.bb
@@ -0,0 +1,116 @@
+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 = "6e367585a899231da05797c6126f8bb01febb2f5"
+
+inherit autotools python3targetconfig 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/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/files/fix_library_install_path.patch b/meta-oe/recipes-security/keyutils/files/fix_library_install_path.patch
new file mode 100644
index 0000000000..938fe2eb57
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/fix_library_install_path.patch
@@ -0,0 +1,28 @@
+From b0355cc205543ffd33752874295139d57c4fbc3e Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Tue, 26 Sep 2017 07:59:51 +0000
+Subject: [PATCH] Subject: [PATCH] keyutils: use relative path for link
+
+The absolute path of the symlink will be invalid
+when populated in sysroot, so use relative path instead.
+
+Upstream-Status: Pending
+
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+{rebased for 1.6]
+Signed-off-by: Armin Kuster <akuster808@gmail.com>
+
+Index: keyutils-1.6/Makefile
+===================================================================
+--- keyutils-1.6.orig/Makefile
++++ keyutils-1.6/Makefile
+@@ -184,7 +184,7 @@ ifeq ($(NO_SOLIB),0)
+ $(INSTALL) -D $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(LIBNAME)
+ $(LNS) $(LIBNAME) $(DESTDIR)$(LIBDIR)/$(SONAME)
+ mkdir -p $(DESTDIR)$(USRLIBDIR)
+- $(LNS) $(LIBDIR)/$(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
++ $(LNS) $(SONAME) $(DESTDIR)$(USRLIBDIR)/$(DEVELLIB)
+ sed \
+ -e 's,@VERSION\@,$(VERSION),g' \
+ -e 's,@prefix\@,$(PREFIX),g' \
diff --git a/meta-oe/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch b/meta-oe/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch
new file mode 100644
index 0000000000..acd91c01c4
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/keyutils-fix-error-report-by-adding-default-message.patch
@@ -0,0 +1,42 @@
+fix keyutils test error report
+
+Upstream-Status: Pending
+
+"Permission denied" may be the reason of EKEYEXPIRED and EKEYREVOKED.
+"Required key not available" may be the reason of EKEYREVOKED.
+EXPIRED and REVOKED are 2 status of kernel security keys features.
+But the userspace keyutils lib will output the error message, which may
+have several reasons.
+
+Signed-off-by: Han Chao <chan@windriver.com>
+
+diff --git a/tests/toolbox.inc.sh b/tests/toolbox.inc.sh
+index bbca00a..739e9d0 100644
+--- a/tests/toolbox.inc.sh
++++ b/tests/toolbox.inc.sh
+@@ -227,11 +227,12 @@ function expect_error ()
+ ;;
+ EKEYEXPIRED)
+ my_err="Key has expired"
+- alt_err="Unknown error 127"
++ alt_err="Permission denied"
+ ;;
+ EKEYREVOKED)
+ my_err="Key has been revoked"
+- alt_err="Unknown error 128"
++ alt_err="Permission denied"
++ alt2_err="Required key not available"
+ ;;
+ EKEYREJECTED)
+ my_err="Key has been rejected"
+@@ -249,6 +250,9 @@ function expect_error ()
+ elif [ "x$alt_err" != "x" ] && expr "$my_errmsg" : ".*: $alt_err" >&/dev/null
+ then
+ :
++ elif [ "x$alt2_err" != "x" ] && expr "$my_errmsg" : ".*: $alt2_err" >&/dev/null
++ then
++ :
+ elif [ "x$old_err" != "x" ] && expr "$my_errmsg" : ".*: $old_err" >&/dev/null
+ then
+ :
+
diff --git a/meta-oe/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch b/meta-oe/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch
new file mode 100644
index 0000000000..a4ffd50ce5
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/keyutils-test-fix-output-format.patch
@@ -0,0 +1,41 @@
+From 49b6321368e4bd3cd233d045cd09004ddd7968b2 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Mon, 15 May 2017 14:52:00 +0800
+Subject: [PATCH] keyutils: fix output format
+
+keyutils ptest output format is incorrect, according to yocto
+Development Manual
+(http://www.yoctoproject.org/docs/latest/dev-manual/dev-manual.html#testing-packages-with-ptest)
+5.10.6. Testing Packages With ptestThe test generates output in the format used by Automake:
+<result>: <testname>
+where the result can be PASS, FAIL, or SKIP, and the testname can be any
+identifying string.
+So we should change the test result format to match yocto ptest rules.
+
+Upstream-Status: Inappropriate [OE ptest specific]
+
+Signed-off-by: Li Wang <li.wang@windriver.com>
+Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
+---
+ tests/runtest.sh | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/tests/runtest.sh b/tests/runtest.sh
+index b6eaa7c..84263fb 100644
+--- a/tests/runtest.sh
++++ b/tests/runtest.sh
+@@ -21,6 +21,11 @@ for i in ${TESTS}; do
+ echo "### RUNNING TEST $i"
+ if [[ $AUTOMATED != 0 ]] ; then
+ bash ./runtest.sh
++ if [ $? != 0 ]; then
++ echo "FAIL: $i"
++ else
++ echo "PASS: $i"
++ fi
+ else
+ bash ./runtest.sh || exit 1
+ fi
+--
+2.11.0
+
diff --git a/meta-oe/recipes-security/keyutils/files/run-ptest b/meta-oe/recipes-security/keyutils/files/run-ptest
new file mode 100755
index 0000000000..305707f65d
--- /dev/null
+++ b/meta-oe/recipes-security/keyutils/files/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+export AUTOMATED=1
+make -C tests run
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..6cdfef9d11
--- /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 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
new file mode 100644
index 0000000000..5ee28031b8
--- /dev/null
+++ b/meta-oe/recipes-security/nmap/files/0001-Include-time.h-header-to-pass-clang-compilation.patch
@@ -0,0 +1,75 @@
+From a068952a20880fc864e8cb8b49f8a6b143a5ac30 Mon Sep 17 00:00:00 2001
+From: Peiran Hong <peiran.hong@windriver.com>
+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 +
+ service_scan.cc | 1 +
+ 4 files changed, 4 insertions(+), 10 deletions(-)
+
+diff --git a/nmap_error.cc b/nmap_error.cc
+index 588b13c33..254107ff5 100644
+--- a/nmap_error.cc
++++ b/nmap_error.cc
+@@ -135,16 +135,7 @@
+ #include "xml.h"
+
+ #include <errno.h>
+-#if TIME_WITH_SYS_TIME
+-# include <sys/time.h>
+-# include <time.h>
+-#else
+-# if HAVE_SYS_TIME_H
+-# include <sys/time.h>
+-# else
+-# include <time.h>
+-# endif
+-#endif
++#include <time.h>
+
+ extern NmapOps o;
+
+diff --git a/nping/EchoServer.cc b/nping/EchoServer.cc
+index ccdcf9c2d..c403aeda5 100644
+--- a/nping/EchoServer.cc
++++ b/nping/EchoServer.cc
+@@ -137,6 +137,7 @@
+ #include "NpingOps.h"
+ #include "ProbeMode.h"
+ #include <signal.h>
++#include <time.h>
+
+ extern NpingOps o;
+ extern EchoServer es;
+diff --git a/osscan2.cc b/osscan2.cc
+index aa31feb12..89673e108 100644
+--- a/osscan2.cc
++++ b/osscan2.cc
+@@ -147,6 +147,7 @@
+
+ #include <list>
+ #include <math.h>
++#include <time.h>
+
+ extern NmapOps o;
+ #ifdef WIN32
+diff --git a/service_scan.cc b/service_scan.cc
+index 57a92ed28..ef277bb1f 100644
+--- a/service_scan.cc
++++ b/service_scan.cc
+@@ -145,6 +145,7 @@
+ #include "nmap_tty.h"
+
+ #include <errno.h>
++#include <time.h>
+
+ #if HAVE_OPENSSL
+ /* OpenSSL 1.0.0 needs _WINSOCKAPI_ to be defined, otherwise it loads
+--
+2.21.0
+
diff --git a/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch b/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch
new file mode 100644
index 0000000000..2ca18b0efb
--- /dev/null
+++ b/meta-oe/recipes-security/nmap/files/0001-Make-ndiff-support-python3.patch
@@ -0,0 +1,1720 @@
+From bbbf474b2ebdbdac4d557e3351210f3fe2175c33 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 14 Feb 2020 10:09:55 +0000
+Subject: [PATCH] Make ndiff support python3
+
+Backport a patch from debian to make ndiff support
+python3.
+
+Refer to https://sources.debian.org/data/main/n/nmap/7.80+dfsg1-2/debian/patches/0004-Python3-port-of-ndiff.patch
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ Makefile.in | 12 +-
+ ndiff/ndiff.py | 495 +++++++++++++++++-----------------
+ ndiff/ndifftest.py | 94 +++----
+ ndiff/scripts/ndiff | 14 +-
+ ndiff/setup.py | 34 +--
+ ndiff/test-scans/anonymize.py | 18 +-
+ 6 files changed, 333 insertions(+), 334 deletions(-)
+ mode change 100644 => 100755 ndiff/setup.py
+
+diff --git a/Makefile.in b/Makefile.in
+index eee8863..32f86ba 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -35,6 +35,7 @@ ZENMAPDIR = @ZENMAPDIR@
+ NDIFFDIR = @NDIFFDIR@
+ NPINGDIR = @NPINGDIR@
+ PYTHON = @PYTHON@
++PYTHON3 = /usr/bin/env python3
+ DEFS = @DEFS@ -DNMAP_PLATFORM=\"$(NMAP_PLATFORM)\" -DNMAPDATADIR=\"$(nmapdatadir)\"
+ # With GCC, add extra security checks to source code.
+ # http://gcc.gnu.org/ml/gcc-patches/2004-09/msg02055.html
+@@ -260,7 +261,7 @@ clean-zenmap:
+ rm -f $(ZENMAPDIR)/zenmapCore/Name.pyc
+
+ clean-ndiff:
+- -cd $(NDIFFDIR) && $(PYTHON) setup.py clean --all
++ -cd $(NDIFFDIR) && $(PYTHON3) setup.py clean --all
+
+ clean-nping:
+ -cd $(NPINGDIR) && $(MAKE) clean
+@@ -368,6 +369,7 @@ tests/check_dns: $(OBJS)
+ # this as the location of the interpreter whenever we're not doing a
+ # local installation.
+ DEFAULT_PYTHON_PATH = /usr/bin/env python
++DEFAULT_PYTHON3_PATH = /usr/bin/env python3
+
+ build-zenmap: $(ZENMAPDIR)/setup.py $(ZENMAPDIR)/zenmapCore/Version.py
+ # When DESTDIR is defined, assume we're building an executable
+@@ -388,13 +390,13 @@ install-zenmap: $(ZENMAPDIR)/setup.py
+ ln -sf zenmap $(DESTDIR)$(bindir)/xnmap
+
+ build-ndiff:
+- cd $(NDIFFDIR) && $(PYTHON) setup.py build $(if $(DESTDIR),--executable "$(DEFAULT_PYTHON_PATH)")
++ cd $(NDIFFDIR) && $(PYTHON3) setup.py build $(if $(DESTDIR),--executable "$(DEFAULT_PYTHON3_PATH)")
+
+ build-nping: $(NPINGDIR)/Makefile build-nbase build-nsock build-netutil $(NPINGDIR)/nping.h @DNET_BUILD@ @PCAP_BUILD@
+ @cd $(NPINGDIR) && $(MAKE)
+
+ install-ndiff:
+- cd $(NDIFFDIR) && $(PYTHON) setup.py install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" $(if $(DESTDIR),--root "$(DESTDIR)")
++ cd $(NDIFFDIR) && $(PYTHON3) setup.py install --prefix "$(prefix)" --install-lib="${PYTHON_SITEPACKAGES_DIR}" $(if $(DESTDIR),--root "$(DESTDIR)")
+
+ NSE_FILES = scripts/script.db scripts/*.nse
+ NSE_LIB_LUA_FILES = nselib/*.lua nselib/*.luadoc
+@@ -443,7 +445,7 @@ uninstall-zenmap:
+ rm -f $(DESTDIR)$(bindir)/xnmap
+
+ uninstall-ndiff:
+- cd $(NDIFFDIR) && $(PYTHON) setup.py uninstall
++ cd $(NDIFFDIR) && $(PYTHON3) setup.py uninstall
+
+ uninstall-ncat:
+ @cd $(NCATDIR) && $(MAKE) uninstall
+@@ -458,7 +460,7 @@ check-ncat:
+ @cd $(NCATDIR) && $(MAKE) check
+
+ check-ndiff:
+- @cd $(NDIFFDIR) && $(PYTHON) ndifftest.py
++ @cd $(NDIFFDIR) && $(PYTHON3) ndifftest.py
+
+ check-nsock:
+ @cd $(NSOCKDIR)/src && $(MAKE) check
+diff --git a/ndiff/ndiff.py b/ndiff/ndiff.py
+index 043273f..abbd1c5 100755
+--- a/ndiff/ndiff.py
++++ b/ndiff/ndiff.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Ndiff
+ #
+@@ -26,11 +26,11 @@ xml.__path__ = [x for x in xml.__path__ if "_xmlplus" not in x]
+ import xml.sax
+ import xml.sax.saxutils
+ import xml.dom.minidom
+-from StringIO import StringIO
++from io import StringIO
+
+ verbose = False
+
+-NDIFF_XML_VERSION = u"1"
++NDIFF_XML_VERSION = "1"
+
+
+ class OverrideEntityResolver(xml.sax.handler.EntityResolver):
+@@ -78,35 +78,35 @@ class Scan(object):
+ def write_nmaprun_open(self, writer):
+ attrs = {}
+ if self.scanner is not None:
+- attrs[u"scanner"] = self.scanner
++ attrs["scanner"] = self.scanner
+ if self.args is not None:
+- attrs[u"args"] = self.args
++ attrs["args"] = self.args
+ if self.start_date is not None:
+- attrs[u"start"] = "%d" % time.mktime(self.start_date.timetuple())
+- attrs[u"startstr"] = self.start_date.strftime(
++ attrs["start"] = "%d" % time.mktime(self.start_date.timetuple())
++ attrs["startstr"] = self.start_date.strftime(
+ "%a %b %d %H:%M:%S %Y")
+ if self.version is not None:
+- attrs[u"version"] = self.version
+- writer.startElement(u"nmaprun", attrs)
++ attrs["version"] = self.version
++ writer.startElement("nmaprun", attrs)
+
+ def write_nmaprun_close(self, writer):
+- writer.endElement(u"nmaprun")
++ writer.endElement("nmaprun")
+
+ def nmaprun_to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"nmaprun")
++ elem = document.createElement("nmaprun")
+ if self.scanner is not None:
+- elem.setAttribute(u"scanner", self.scanner)
++ elem.setAttribute("scanner", self.scanner)
+ if self.args is not None:
+- elem.setAttribute(u"args", self.args)
++ elem.setAttribute("args", self.args)
+ if self.start_date is not None:
+ elem.setAttribute(
+- u"start", "%d" % time.mktime(self.start_date.timetuple()))
++ "start", "%d" % time.mktime(self.start_date.timetuple()))
+ elem.setAttribute(
+- u"startstr",
++ "startstr",
+ self.start_date.strftime("%a %b %d %H:%M:%S %Y"))
+ if self.version is not None:
+- elem.setAttribute(u"version", self.version)
++ elem.setAttribute("version", self.version)
+ frag.appendChild(elem)
+ return frag
+
+@@ -136,17 +136,17 @@ class Host(object):
+
+ def format_name(self):
+ """Return a human-readable identifier for this host."""
+- address_s = u", ".join(a.s for a in sorted(self.addresses))
+- hostname_s = u", ".join(sorted(self.hostnames))
++ address_s = ", ".join(a.s for a in sorted(self.addresses))
++ hostname_s = ", ".join(sorted(self.hostnames))
+ if len(hostname_s) > 0:
+ if len(address_s) > 0:
+- return u"%s (%s)" % (hostname_s, address_s)
++ return "%s (%s)" % (hostname_s, address_s)
+ else:
+ return hostname_s
+ elif len(address_s) > 0:
+ return address_s
+ else:
+- return u"<no name>"
++ return "<no name>"
+
+ def add_port(self, port):
+ self.ports[port.spec] = port
+@@ -163,46 +163,46 @@ class Host(object):
+ return state is None or state in self.extraports
+
+ def extraports_string(self):
+- list = [(count, state) for (state, count) in self.extraports.items()]
++ locallist = [(count, state) for (state, count) in list(self.extraports.items())]
+ # Reverse-sort by count.
+- list.sort(reverse=True)
+- return u", ".join(
+- [u"%d %s ports" % (count, state) for (count, state) in list])
++ locallist.sort(reverse=True)
++ return ", ".join(
++ ["%d %s ports" % (count, state) for (count, state) in locallist])
+
+ def state_to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+ if self.state is not None:
+- elem = document.createElement(u"status")
+- elem.setAttribute(u"state", self.state)
++ elem = document.createElement("status")
++ elem.setAttribute("state", self.state)
+ frag.appendChild(elem)
+ return frag
+
+ def hostname_to_dom_fragment(self, document, hostname):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"hostname")
+- elem.setAttribute(u"name", hostname)
++ elem = document.createElement("hostname")
++ elem.setAttribute("name", hostname)
+ frag.appendChild(elem)
+ return frag
+
+ def extraports_to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- for state, count in self.extraports.items():
+- elem = document.createElement(u"extraports")
+- elem.setAttribute(u"state", state)
+- elem.setAttribute(u"count", unicode(count))
++ for state, count in list(self.extraports.items()):
++ elem = document.createElement("extraports")
++ elem.setAttribute("state", state)
++ elem.setAttribute("count", str(count))
+ frag.appendChild(elem)
+ return frag
+
+ def os_to_dom_fragment(self, document, os):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"osmatch")
+- elem.setAttribute(u"name", os)
++ elem = document.createElement("osmatch")
++ elem.setAttribute("name", os)
+ frag.appendChild(elem)
+ return frag
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"host")
++ elem = document.createElement("host")
+
+ if self.state is not None:
+ elem.appendChild(self.state_to_dom_fragment(document))
+@@ -211,13 +211,13 @@ class Host(object):
+ elem.appendChild(addr.to_dom_fragment(document))
+
+ if len(self.hostnames) > 0:
+- hostnames_elem = document.createElement(u"hostnames")
++ hostnames_elem = document.createElement("hostnames")
+ for hostname in self.hostnames:
+ hostnames_elem.appendChild(
+ self.hostname_to_dom_fragment(document, hostname))
+ elem.appendChild(hostnames_elem)
+
+- ports_elem = document.createElement(u"ports")
++ ports_elem = document.createElement("ports")
+ ports_elem.appendChild(self.extraports_to_dom_fragment(document))
+ for port in sorted(self.ports.values()):
+ if not self.is_extraports(port.state):
+@@ -226,13 +226,13 @@ class Host(object):
+ elem.appendChild(ports_elem)
+
+ if len(self.os) > 0:
+- os_elem = document.createElement(u"os")
++ os_elem = document.createElement("os")
+ for os in self.os:
+ os_elem.appendChild(self.os_to_dom_fragment(document, os))
+ elem.appendChild(os_elem)
+
+ if len(self.script_results) > 0:
+- hostscript_elem = document.createElement(u"hostscript")
++ hostscript_elem = document.createElement("hostscript")
+ for sr in self.script_results:
+ hostscript_elem.appendChild(sr.to_dom_fragment(document))
+ elem.appendChild(hostscript_elem)
+@@ -246,7 +246,7 @@ class Address(object):
+ self.s = s
+
+ def __eq__(self, other):
+- return self.__cmp__(other) == 0
++ return self.sort_key() == other.sort_key()
+
+ def __ne__(self, other):
+ return not self.__eq__(other)
+@@ -254,8 +254,8 @@ class Address(object):
+ def __hash__(self):
+ return hash(self.sort_key())
+
+- def __cmp__(self, other):
+- return cmp(self.sort_key(), other.sort_key())
++ def __lt__(self, other):
++ return self.sort_key() < other.sort_key()
+
+ def __str__(self):
+ return str(self.s)
+@@ -264,21 +264,21 @@ class Address(object):
+ return self.s
+
+ def new(type, s):
+- if type == u"ipv4":
++ if type == "ipv4":
+ return IPv4Address(s)
+- elif type == u"ipv6":
++ elif type == "ipv6":
+ return IPv6Address(s)
+- elif type == u"mac":
++ elif type == "mac":
+ return MACAddress(s)
+ else:
+- raise ValueError(u"Unknown address type %s." % type)
++ raise ValueError("Unknown address type %s." % type)
+ new = staticmethod(new)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"address")
+- elem.setAttribute(u"addr", self.s)
+- elem.setAttribute(u"addrtype", self.type)
++ elem = document.createElement("address")
++ elem.setAttribute("addr", self.s)
++ elem.setAttribute("addrtype", self.type)
+ frag.appendChild(elem)
+ return frag
+
+@@ -287,21 +287,21 @@ class Address(object):
+
+
+ class IPv4Address(Address):
+- type = property(lambda self: u"ipv4")
++ type = property(lambda self: "ipv4")
+
+ def sort_key(self):
+ return (0, self.s)
+
+
+ class IPv6Address(Address):
+- type = property(lambda self: u"ipv6")
++ type = property(lambda self: "ipv6")
+
+ def sort_key(self):
+ return (1, self.s)
+
+
+ class MACAddress(Address):
+- type = property(lambda self: u"mac")
++ type = property(lambda self: "mac")
+
+ def sort_key(self):
+ return (2, self.s)
+@@ -320,28 +320,25 @@ class Port(object):
+
+ def state_string(self):
+ if self.state is None:
+- return u"unknown"
++ return "unknown"
+ else:
+- return unicode(self.state)
++ return str(self.state)
+
+ def spec_string(self):
+- return u"%d/%s" % self.spec
++ return "%d/%s" % self.spec
+
+- def __cmp__(self, other):
+- d = cmp(self.spec, other.spec)
+- if d != 0:
+- return d
+- return cmp((self.spec, self.service, self.script_results),
+- (other.spec, other.service, other.script_results))
++ def __lt__(self, other):
++ return (self.spec, self.service, self.script_results) < (
++ other.spec, other.service, other.script_results)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"port")
+- elem.setAttribute(u"portid", unicode(self.spec[0]))
+- elem.setAttribute(u"protocol", self.spec[1])
++ elem = document.createElement("port")
++ elem.setAttribute("portid", str(self.spec[0]))
++ elem.setAttribute("protocol", self.spec[1])
+ if self.state is not None:
+- state_elem = document.createElement(u"state")
+- state_elem.setAttribute(u"state", self.state)
++ state_elem = document.createElement("state")
++ state_elem.setAttribute("state", self.state)
+ elem.appendChild(state_elem)
+ elem.appendChild(self.service.to_dom_fragment(document))
+ for sr in self.script_results:
+@@ -385,7 +382,7 @@ class Service(object):
+ if len(parts) == 0:
+ return None
+ else:
+- return u"/".join(parts)
++ return "/".join(parts)
+
+ def version_string(self):
+ """Get a string like in the VERSION column of Nmap output."""
+@@ -395,17 +392,17 @@ class Service(object):
+ if self.version is not None:
+ parts.append(self.version)
+ if self.extrainfo is not None:
+- parts.append(u"(%s)" % self.extrainfo)
++ parts.append("(%s)" % self.extrainfo)
+
+ if len(parts) == 0:
+ return None
+ else:
+- return u" ".join(parts)
++ return " ".join(parts)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"service")
+- for attr in (u"name", u"product", u"version", u"extrainfo", u"tunnel"):
++ elem = document.createElement("service")
++ for attr in ("name", "product", "version", "extrainfo", "tunnel"):
+ v = getattr(self, attr)
+ if v is None:
+ continue
+@@ -435,53 +432,53 @@ class ScriptResult(object):
+ result = []
+ lines = self.output.splitlines()
+ if len(lines) > 0:
+- lines[0] = self.id + u": " + lines[0]
++ lines[0] = self.id + ": " + lines[0]
+ for line in lines[:-1]:
+- result.append(u"| " + line)
++ result.append("| " + line)
+ if len(lines) > 0:
+- result.append(u"|_ " + lines[-1])
++ result.append("|_ " + lines[-1])
+ return result
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- elem = document.createElement(u"script")
+- elem.setAttribute(u"id", self.id)
+- elem.setAttribute(u"output", self.output)
++ elem = document.createElement("script")
++ elem.setAttribute("id", self.id)
++ elem.setAttribute("output", self.output)
+ frag.appendChild(elem)
+ return frag
+
+
+ def format_banner(scan):
+ """Format a startup banner more or less like Nmap does."""
+- scanner = u"Nmap"
+- if scan.scanner is not None and scan.scanner != u"nmap":
++ scanner = "Nmap"
++ if scan.scanner is not None and scan.scanner != "nmap":
+ scanner = scan.scanner
+ parts = [scanner]
+ if scan.version is not None:
+ parts.append(scan.version)
+- parts.append(u"scan")
++ parts.append("scan")
+ if scan.start_date is not None:
+- parts.append(u"initiated %s" % scan.start_date.strftime(
++ parts.append("initiated %s" % scan.start_date.strftime(
+ "%a %b %d %H:%M:%S %Y"))
+ if scan.args is not None:
+- parts.append(u"as: %s" % scan.args)
+- return u" ".join(parts)
++ parts.append("as: %s" % scan.args)
++ return " ".join(parts)
+
+
+ def print_script_result_diffs_text(title, script_results_a, script_results_b,
+ script_result_diffs, f=sys.stdout):
+- table = Table(u"*")
++ table = Table("*")
+ for sr_diff in script_result_diffs:
+ sr_diff.append_to_port_table(table)
+ if len(table) > 0:
+- print >> f
++ print(file=f)
+ if len(script_results_b) == 0:
+- print >> f, u"-%s:" % title
++ print("-%s:" % title, file=f)
+ elif len(script_results_a) == 0:
+- print >> f, u"+%s:" % title
++ print("+%s:" % title, file=f)
+ else:
+- print >> f, u" %s:" % title
+- print >> f, table
++ print(" %s:" % title, file=f)
++ print(table, file=f)
+
+
+ def script_result_diffs_to_dom_fragment(elem, script_results_a,
+@@ -489,13 +486,13 @@ def script_result_diffs_to_dom_fragment(elem, script_results_a,
+ if len(script_results_a) == 0 and len(script_results_b) == 0:
+ return document.createDocumentFragment()
+ elif len(script_results_b) == 0:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for sr in script_results_a:
+ elem.appendChild(sr.to_dom_fragment(document))
+ a_elem.appendChild(elem)
+ return a_elem
+ elif len(script_results_a) == 0:
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for sr in script_results_b:
+ elem.appendChild(sr.to_dom_fragment(document))
+ b_elem.appendChild(elem)
+@@ -581,10 +578,10 @@ class ScanDiffText(ScanDiff):
+ banner_a = format_banner(self.scan_a)
+ banner_b = format_banner(self.scan_b)
+ if banner_a != banner_b:
+- print >> self.f, u"-%s" % banner_a
+- print >> self.f, u"+%s" % banner_b
++ print("-%s" % banner_a, file=self.f)
++ print("+%s" % banner_b, file=self.f)
+ elif verbose:
+- print >> self.f, u" %s" % banner_a
++ print(" %s" % banner_a, file=self.f)
+
+ def output_pre_scripts(self, pre_script_result_diffs):
+ print_script_result_diffs_text("Pre-scan script results",
+@@ -597,7 +594,7 @@ class ScanDiffText(ScanDiff):
+ post_script_result_diffs, self.f)
+
+ def output_host_diff(self, h_diff):
+- print >> self.f
++ print(file=self.f)
+ h_diff.print_text(self.f)
+
+ def output_ending(self):
+@@ -622,8 +619,8 @@ class ScanDiffXML(ScanDiff):
+
+ def output_beginning(self):
+ self.writer.startDocument()
+- self.writer.startElement(u"nmapdiff", {u"version": NDIFF_XML_VERSION})
+- self.writer.startElement(u"scandiff", {})
++ self.writer.startElement("nmapdiff", {"version": NDIFF_XML_VERSION})
++ self.writer.startElement("scandiff", {})
+
+ if self.nmaprun_differs():
+ self.writer.frag_a(
+@@ -636,7 +633,7 @@ class ScanDiffXML(ScanDiff):
+
+ def output_pre_scripts(self, pre_script_result_diffs):
+ if len(pre_script_result_diffs) > 0 or verbose:
+- prescript_elem = self.document.createElement(u"prescript")
++ prescript_elem = self.document.createElement("prescript")
+ frag = script_result_diffs_to_dom_fragment(
+ prescript_elem, self.scan_a.pre_script_results,
+ self.scan_b.pre_script_results, pre_script_result_diffs,
+@@ -646,7 +643,7 @@ class ScanDiffXML(ScanDiff):
+
+ def output_post_scripts(self, post_script_result_diffs):
+ if len(post_script_result_diffs) > 0 or verbose:
+- postscript_elem = self.document.createElement(u"postscript")
++ postscript_elem = self.document.createElement("postscript")
+ frag = script_result_diffs_to_dom_fragment(
+ postscript_elem, self.scan_a.post_script_results,
+ self.scan_b.post_script_results, post_script_result_diffs,
+@@ -660,8 +657,8 @@ class ScanDiffXML(ScanDiff):
+ frag.unlink()
+
+ def output_ending(self):
+- self.writer.endElement(u"scandiff")
+- self.writer.endElement(u"nmapdiff")
++ self.writer.endElement("scandiff")
++ self.writer.endElement("nmapdiff")
+ self.writer.endDocument()
+
+
+@@ -719,9 +716,9 @@ class HostDiff(object):
+ self.cost += os_cost
+
+ extraports_a = tuple((count, state)
+- for (state, count) in self.host_a.extraports.items())
++ for (state, count) in list(self.host_a.extraports.items()))
+ extraports_b = tuple((count, state)
+- for (state, count) in self.host_b.extraports.items())
++ for (state, count) in list(self.host_b.extraports.items()))
+ if extraports_a != extraports_b:
+ self.extraports_changed = True
+ self.cost += 1
+@@ -747,69 +744,69 @@ class HostDiff(object):
+ # Names and addresses.
+ if self.id_changed:
+ if host_a.state is not None:
+- print >> f, u"-%s:" % host_a.format_name()
++ print("-%s:" % host_a.format_name(), file=f)
+ if self.host_b.state is not None:
+- print >> f, u"+%s:" % host_b.format_name()
++ print("+%s:" % host_b.format_name(), file=f)
+ else:
+- print >> f, u" %s:" % host_a.format_name()
++ print(" %s:" % host_a.format_name(), file=f)
+
+ # State.
+ if self.state_changed:
+ if host_a.state is not None:
+- print >> f, u"-Host is %s." % host_a.state
++ print("-Host is %s." % host_a.state, file=f)
+ if host_b.state is not None:
+- print >> f, u"+Host is %s." % host_b.state
++ print("+Host is %s." % host_b.state, file=f)
+ elif verbose:
+- print >> f, u" Host is %s." % host_b.state
++ print(" Host is %s." % host_b.state, file=f)
+
+ # Extraports.
+ if self.extraports_changed:
+ if len(host_a.extraports) > 0:
+- print >> f, u"-Not shown: %s" % host_a.extraports_string()
++ print("-Not shown: %s" % host_a.extraports_string(), file=f)
+ if len(host_b.extraports) > 0:
+- print >> f, u"+Not shown: %s" % host_b.extraports_string()
++ print("+Not shown: %s" % host_b.extraports_string(), file=f)
+ elif verbose:
+ if len(host_a.extraports) > 0:
+- print >> f, u" Not shown: %s" % host_a.extraports_string()
++ print(" Not shown: %s" % host_a.extraports_string(), file=f)
+
+ # Port table.
+- port_table = Table(u"** * * *")
++ port_table = Table("** * * *")
+ if host_a.state is None:
+- mark = u"+"
++ mark = "+"
+ elif host_b.state is None:
+- mark = u"-"
++ mark = "-"
+ else:
+- mark = u" "
+- port_table.append((mark, u"PORT", u"STATE", u"SERVICE", u"VERSION"))
++ mark = " "
++ port_table.append((mark, "PORT", "STATE", "SERVICE", "VERSION"))
+
+ for port in self.ports:
+ port_diff = self.port_diffs[port]
+ port_diff.append_to_port_table(port_table, host_a, host_b)
+
+ if len(port_table) > 1:
+- print >> f, port_table
++ print(port_table, file=f)
+
+ # OS changes.
+ if self.os_changed or verbose:
+ if len(host_a.os) > 0:
+ if len(host_b.os) > 0:
+- print >> f, u" OS details:"
++ print(" OS details:", file=f)
+ else:
+- print >> f, u"-OS details:"
++ print("-OS details:", file=f)
+ elif len(host_b.os) > 0:
+- print >> f, u"+OS details:"
++ print("+OS details:", file=f)
+ # os_diffs is a list of 5-tuples returned by
+ # difflib.SequenceMatcher.
+ for op, i1, i2, j1, j2 in self.os_diffs:
+ if op == "replace" or op == "delete":
+ for i in range(i1, i2):
+- print >> f, "- %s" % host_a.os[i]
++ print("- %s" % host_a.os[i], file=f)
+ if op == "replace" or op == "insert":
+ for i in range(j1, j2):
+- print >> f, "+ %s" % host_b.os[i]
++ print("+ %s" % host_b.os[i], file=f)
+ if op == "equal":
+ for i in range(i1, i2):
+- print >> f, " %s" % host_a.os[i]
++ print(" %s" % host_a.os[i], file=f)
+
+ print_script_result_diffs_text("Host script results",
+ host_a.script_results, host_b.script_results,
+@@ -820,32 +817,32 @@ class HostDiff(object):
+ host_b = self.host_b
+
+ frag = document.createDocumentFragment()
+- hostdiff_elem = document.createElement(u"hostdiff")
++ hostdiff_elem = document.createElement("hostdiff")
+ frag.appendChild(hostdiff_elem)
+
+ if host_a.state is None or host_b.state is None:
+ # The host is missing in one scan. Output the whole thing.
+ if host_a.state is not None:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(host_a.to_dom_fragment(document))
+ hostdiff_elem.appendChild(a_elem)
+ elif host_b.state is not None:
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(host_b.to_dom_fragment(document))
+ hostdiff_elem.appendChild(b_elem)
+ return frag
+
+- host_elem = document.createElement(u"host")
++ host_elem = document.createElement("host")
+
+ # State.
+ if host_a.state == host_b.state:
+ if verbose:
+ host_elem.appendChild(host_a.state_to_dom_fragment(document))
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(host_a.state_to_dom_fragment(document))
+ host_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(host_b.state_to_dom_fragment(document))
+ host_elem.appendChild(b_elem)
+
+@@ -854,31 +851,31 @@ class HostDiff(object):
+ addrset_b = set(host_b.addresses)
+ for addr in sorted(addrset_a.intersection(addrset_b)):
+ host_elem.appendChild(addr.to_dom_fragment(document))
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for addr in sorted(addrset_a - addrset_b):
+ a_elem.appendChild(addr.to_dom_fragment(document))
+ if a_elem.hasChildNodes():
+ host_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for addr in sorted(addrset_b - addrset_a):
+ b_elem.appendChild(addr.to_dom_fragment(document))
+ if b_elem.hasChildNodes():
+ host_elem.appendChild(b_elem)
+
+ # Host names.
+- hostnames_elem = document.createElement(u"hostnames")
++ hostnames_elem = document.createElement("hostnames")
+ hostnameset_a = set(host_a.hostnames)
+ hostnameset_b = set(host_b.hostnames)
+ for hostname in sorted(hostnameset_a.intersection(hostnameset_b)):
+ hostnames_elem.appendChild(
+ host_a.hostname_to_dom_fragment(document, hostname))
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for hostname in sorted(hostnameset_a - hostnameset_b):
+ a_elem.appendChild(
+ host_a.hostname_to_dom_fragment(document, hostname))
+ if a_elem.hasChildNodes():
+ hostnames_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for hostname in sorted(hostnameset_b - hostnameset_a):
+ b_elem.appendChild(
+ host_b.hostname_to_dom_fragment(document, hostname))
+@@ -887,15 +884,15 @@ class HostDiff(object):
+ if hostnames_elem.hasChildNodes():
+ host_elem.appendChild(hostnames_elem)
+
+- ports_elem = document.createElement(u"ports")
++ ports_elem = document.createElement("ports")
+ # Extraports.
+ if host_a.extraports == host_b.extraports:
+ ports_elem.appendChild(host_a.extraports_to_dom_fragment(document))
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(host_a.extraports_to_dom_fragment(document))
+ ports_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(host_b.extraports_to_dom_fragment(document))
+ ports_elem.appendChild(b_elem)
+ # Port list.
+@@ -911,18 +908,18 @@ class HostDiff(object):
+
+ # OS changes.
+ if self.os_changed or verbose:
+- os_elem = document.createElement(u"os")
++ os_elem = document.createElement("os")
+ # os_diffs is a list of 5-tuples returned by
+ # difflib.SequenceMatcher.
+ for op, i1, i2, j1, j2 in self.os_diffs:
+ if op == "replace" or op == "delete":
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ for i in range(i1, i2):
+ a_elem.appendChild(host_a.os_to_dom_fragment(
+ document, host_a.os[i]))
+ os_elem.appendChild(a_elem)
+ if op == "replace" or op == "insert":
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ for i in range(j1, j2):
+ b_elem.appendChild(host_b.os_to_dom_fragment(
+ document, host_b.os[i]))
+@@ -936,7 +933,7 @@ class HostDiff(object):
+
+ # Host script changes.
+ if len(self.script_result_diffs) > 0 or verbose:
+- hostscript_elem = document.createElement(u"hostscript")
++ hostscript_elem = document.createElement("hostscript")
+ host_elem.appendChild(script_result_diffs_to_dom_fragment(
+ hostscript_elem, host_a.script_results,
+ host_b.script_results, self.script_result_diffs,
+@@ -989,38 +986,38 @@ class PortDiff(object):
+ self.port_b.service.version_string()]
+ if a_columns == b_columns:
+ if verbose or self.script_result_diffs > 0:
+- table.append([u" "] + a_columns)
++ table.append([" "] + a_columns)
+ else:
+ if not host_a.is_extraports(self.port_a.state):
+- table.append([u"-"] + a_columns)
++ table.append(["-"] + a_columns)
+ if not host_b.is_extraports(self.port_b.state):
+- table.append([u"+"] + b_columns)
++ table.append(["+"] + b_columns)
+
+ for sr_diff in self.script_result_diffs:
+ sr_diff.append_to_port_table(table)
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+- portdiff_elem = document.createElement(u"portdiff")
++ portdiff_elem = document.createElement("portdiff")
+ frag.appendChild(portdiff_elem)
+ if (self.port_a.spec == self.port_b.spec and
+ self.port_a.state == self.port_b.state):
+- port_elem = document.createElement(u"port")
+- port_elem.setAttribute(u"portid", unicode(self.port_a.spec[0]))
+- port_elem.setAttribute(u"protocol", self.port_a.spec[1])
++ port_elem = document.createElement("port")
++ port_elem.setAttribute("portid", str(self.port_a.spec[0]))
++ port_elem.setAttribute("protocol", self.port_a.spec[1])
+ if self.port_a.state is not None:
+- state_elem = document.createElement(u"state")
+- state_elem.setAttribute(u"state", self.port_a.state)
++ state_elem = document.createElement("state")
++ state_elem.setAttribute("state", self.port_a.state)
+ port_elem.appendChild(state_elem)
+ if self.port_a.service == self.port_b.service:
+ port_elem.appendChild(
+ self.port_a.service.to_dom_fragment(document))
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(
+ self.port_a.service.to_dom_fragment(document))
+ port_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(
+ self.port_b.service.to_dom_fragment(document))
+ port_elem.appendChild(b_elem)
+@@ -1028,10 +1025,10 @@ class PortDiff(object):
+ port_elem.appendChild(sr_diff.to_dom_fragment(document))
+ portdiff_elem.appendChild(port_elem)
+ else:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(self.port_a.to_dom_fragment(document))
+ portdiff_elem.appendChild(a_elem)
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(self.port_b.to_dom_fragment(document))
+ portdiff_elem.appendChild(b_elem)
+
+@@ -1086,13 +1083,13 @@ class ScriptResultDiff(object):
+ for op, i1, i2, j1, j2 in diffs.get_opcodes():
+ if op == "replace" or op == "delete":
+ for k in range(i1, i2):
+- table.append_raw(u"-" + a_lines[k])
++ table.append_raw("-" + a_lines[k])
+ if op == "replace" or op == "insert":
+ for k in range(j1, j2):
+- table.append_raw(u"+" + b_lines[k])
++ table.append_raw("+" + b_lines[k])
+ if op == "equal":
+ for k in range(i1, i2):
+- table.append_raw(u" " + a_lines[k])
++ table.append_raw(" " + a_lines[k])
+
+ def to_dom_fragment(self, document):
+ frag = document.createDocumentFragment()
+@@ -1102,11 +1099,11 @@ class ScriptResultDiff(object):
+ frag.appendChild(self.sr_a.to_dom_fragment(document))
+ else:
+ if self.sr_a is not None:
+- a_elem = document.createElement(u"a")
++ a_elem = document.createElement("a")
+ a_elem.appendChild(self.sr_a.to_dom_fragment(document))
+ frag.appendChild(a_elem)
+ if self.sr_b is not None:
+- b_elem = document.createElement(u"b")
++ b_elem = document.createElement("b")
+ b_elem.appendChild(self.sr_b.to_dom_fragment(document))
+ frag.appendChild(b_elem)
+ return frag
+@@ -1120,7 +1117,7 @@ class Table(object):
+ copied to the output."""
+ self.widths = []
+ self.rows = []
+- self.prefix = u""
++ self.prefix = ""
+ self.padding = []
+ j = 0
+ while j < len(template) and template[j] != "*":
+@@ -1145,7 +1142,7 @@ class Table(object):
+
+ for i in range(len(row)):
+ if row[i] is None:
+- s = u""
++ s = ""
+ else:
+ s = str(row[i])
+ if i == len(self.widths):
+@@ -1167,7 +1164,7 @@ class Table(object):
+ for row in self.rows:
+ parts = [self.prefix]
+ i = 0
+- if isinstance(row, basestring):
++ if isinstance(row, str):
+ # A raw string.
+ lines.append(row)
+ else:
+@@ -1176,13 +1173,13 @@ class Table(object):
+ if i < len(self.padding):
+ parts.append(self.padding[i])
+ i += 1
+- lines.append(u"".join(parts).rstrip())
+- return u"\n".join(lines)
++ lines.append("".join(parts).rstrip())
++ return "\n".join(lines)
+
+
+ def warn(str):
+ """Print a warning to stderr."""
+- print >> sys.stderr, str
++ print(str, file=sys.stderr)
+
+
+ class NmapContentHandler(xml.sax.handler.ContentHandler):
+@@ -1200,22 +1197,22 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
+ self.current_port = None
+
+ self._start_elem_handlers = {
+- u"nmaprun": self._start_nmaprun,
+- u"host": self._start_host,
+- u"status": self._start_status,
+- u"address": self._start_address,
+- u"hostname": self._start_hostname,
+- u"extraports": self._start_extraports,
+- u"port": self._start_port,
+- u"state": self._start_state,
+- u"service": self._start_service,
+- u"script": self._start_script,
+- u"osmatch": self._start_osmatch,
+- u"finished": self._start_finished,
++ "nmaprun": self._start_nmaprun,
++ "host": self._start_host,
++ "status": self._start_status,
++ "address": self._start_address,
++ "hostname": self._start_hostname,
++ "extraports": self._start_extraports,
++ "port": self._start_port,
++ "state": self._start_state,
++ "service": self._start_service,
++ "script": self._start_script,
++ "osmatch": self._start_osmatch,
++ "finished": self._start_finished,
+ }
+ self._end_elem_handlers = {
+- u'host': self._end_host,
+- u'port': self._end_port,
++ 'host': self._end_host,
++ 'port': self._end_port,
+ }
+
+ def parent_element(self):
+@@ -1245,68 +1242,68 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
+ def _start_nmaprun(self, name, attrs):
+ assert self.parent_element() is None
+ if "start" in attrs:
+- start_timestamp = int(attrs.get(u"start"))
++ start_timestamp = int(attrs.get("start"))
+ self.scan.start_date = datetime.datetime.fromtimestamp(
+ start_timestamp)
+- self.scan.scanner = attrs.get(u"scanner")
+- self.scan.args = attrs.get(u"args")
+- self.scan.version = attrs.get(u"version")
++ self.scan.scanner = attrs.get("scanner")
++ self.scan.args = attrs.get("args")
++ self.scan.version = attrs.get("version")
+
+ def _start_host(self, name, attrs):
+- assert self.parent_element() == u"nmaprun"
++ assert self.parent_element() == "nmaprun"
+ self.current_host = Host()
+ self.scan.hosts.append(self.current_host)
+
+ def _start_status(self, name, attrs):
+- assert self.parent_element() == u"host"
++ assert self.parent_element() == "host"
+ assert self.current_host is not None
+- state = attrs.get(u"state")
++ state = attrs.get("state")
+ if state is None:
+ warn(u'%s element of host %s is missing the "state" attribute; '
+- 'assuming \unknown\.' % (
++ r'assuming \unknown\.' % (
+ name, self.current_host.format_name()))
+ return
+ self.current_host.state = state
+
+ def _start_address(self, name, attrs):
+- assert self.parent_element() == u"host"
++ assert self.parent_element() == "host"
+ assert self.current_host is not None
+- addr = attrs.get(u"addr")
++ addr = attrs.get("addr")
+ if addr is None:
+- warn(u'%s element of host %s is missing the "addr" '
++ warn('%s element of host %s is missing the "addr" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+- addrtype = attrs.get(u"addrtype", u"ipv4")
++ addrtype = attrs.get("addrtype", "ipv4")
+ self.current_host.add_address(Address.new(addrtype, addr))
+
+ def _start_hostname(self, name, attrs):
+- assert self.parent_element() == u"hostnames"
++ assert self.parent_element() == "hostnames"
+ assert self.current_host is not None
+- hostname = attrs.get(u"name")
++ hostname = attrs.get("name")
+ if hostname is None:
+- warn(u'%s element of host %s is missing the "name" '
++ warn('%s element of host %s is missing the "name" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+ self.current_host.add_hostname(hostname)
+
+ def _start_extraports(self, name, attrs):
+- assert self.parent_element() == u"ports"
++ assert self.parent_element() == "ports"
+ assert self.current_host is not None
+- state = attrs.get(u"state")
++ state = attrs.get("state")
+ if state is None:
+- warn(u'%s element of host %s is missing the "state" '
++ warn('%s element of host %s is missing the "state" '
+ 'attribute; assuming "unknown".' % (
+ name, self.current_host.format_name()))
+ state = None
+ if state in self.current_host.extraports:
+- warn(u'Duplicate extraports state "%s" in host %s.' % (
++ warn('Duplicate extraports state "%s" in host %s.' % (
+ state, self.current_host.format_name()))
+
+- count = attrs.get(u"count")
++ count = attrs.get("count")
+ if count is None:
+- warn(u'%s element of host %s is missing the "count" '
++ warn('%s element of host %s is missing the "count" '
+ 'attribute; assuming 0.' % (
+ name, self.current_host.format_name()))
+ count = 0
+@@ -1314,99 +1311,99 @@ class NmapContentHandler(xml.sax.handler.ContentHandler):
+ try:
+ count = int(count)
+ except ValueError:
+- warn(u"Can't convert extraports count \"%s\" "
++ warn("Can't convert extraports count \"%s\" "
+ "to an integer in host %s; assuming 0." % (
+- attrs[u"count"], self.current_host.format_name()))
++ attrs["count"], self.current_host.format_name()))
+ count = 0
+ self.current_host.extraports[state] = count
+
+ def _start_port(self, name, attrs):
+- assert self.parent_element() == u"ports"
++ assert self.parent_element() == "ports"
+ assert self.current_host is not None
+- portid_str = attrs.get(u"portid")
++ portid_str = attrs.get("portid")
+ if portid_str is None:
+- warn(u'%s element of host %s missing the "portid" '
++ warn('%s element of host %s missing the "portid" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+ try:
+ portid = int(portid_str)
+ except ValueError:
+- warn(u"Can't convert portid \"%s\" to an integer "
++ warn("Can't convert portid \"%s\" to an integer "
+ "in host %s; skipping port." % (
+ portid_str, self.current_host.format_name()))
+ return
+- protocol = attrs.get(u"protocol")
++ protocol = attrs.get("protocol")
+ if protocol is None:
+- warn(u'%s element of host %s missing the "protocol" '
++ warn('%s element of host %s missing the "protocol" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+ self.current_port = Port((portid, protocol))
+
+ def _start_state(self, name, attrs):
+- assert self.parent_element() == u"port"
++ assert self.parent_element() == "port"
+ assert self.current_host is not None
+ if self.current_port is None:
+ return
+ if "state" not in attrs:
+- warn(u'%s element of port %s is missing the "state" '
++ warn('%s element of port %s is missing the "state" '
+ 'attribute; assuming "unknown".' % (
+ name, self.current_port.spec_string()))
+ return
+- self.current_port.state = attrs[u"state"]
++ self.current_port.state = attrs["state"]
+ self.current_host.add_port(self.current_port)
+
+ def _start_service(self, name, attrs):
+- assert self.parent_element() == u"port"
++ assert self.parent_element() == "port"
+ assert self.current_host is not None
+ if self.current_port is None:
+ return
+- self.current_port.service.name = attrs.get(u"name")
+- self.current_port.service.product = attrs.get(u"product")
+- self.current_port.service.version = attrs.get(u"version")
+- self.current_port.service.extrainfo = attrs.get(u"extrainfo")
+- self.current_port.service.tunnel = attrs.get(u"tunnel")
++ self.current_port.service.name = attrs.get("name")
++ self.current_port.service.product = attrs.get("product")
++ self.current_port.service.version = attrs.get("version")
++ self.current_port.service.extrainfo = attrs.get("extrainfo")
++ self.current_port.service.tunnel = attrs.get("tunnel")
+
+ def _start_script(self, name, attrs):
+ result = ScriptResult()
+- result.id = attrs.get(u"id")
++ result.id = attrs.get("id")
+ if result.id is None:
+- warn(u'%s element missing the "id" attribute; skipping.' % name)
++ warn('%s element missing the "id" attribute; skipping.' % name)
+ return
+
+- result.output = attrs.get(u"output")
++ result.output = attrs.get("output")
+ if result.output is None:
+- warn(u'%s element missing the "output" attribute; skipping.'
++ warn('%s element missing the "output" attribute; skipping.'
+ % name)
+ return
+- if self.parent_element() == u"prescript":
++ if self.parent_element() == "prescript":
+ self.scan.pre_script_results.append(result)
+- elif self.parent_element() == u"postscript":
++ elif self.parent_element() == "postscript":
+ self.scan.post_script_results.append(result)
+- elif self.parent_element() == u"hostscript":
++ elif self.parent_element() == "hostscript":
+ self.current_host.script_results.append(result)
+- elif self.parent_element() == u"port":
++ elif self.parent_element() == "port":
+ self.current_port.script_results.append(result)
+ else:
+- warn(u"%s element not inside prescript, postscript, hostscript, "
++ warn("%s element not inside prescript, postscript, hostscript, "
+ "or port element; ignoring." % name)
+ return
+
+ def _start_osmatch(self, name, attrs):
+- assert self.parent_element() == u"os"
++ assert self.parent_element() == "os"
+ assert self.current_host is not None
+ if "name" not in attrs:
+- warn(u'%s element of host %s is missing the "name" '
++ warn('%s element of host %s is missing the "name" '
+ 'attribute; skipping.' % (
+ name, self.current_host.format_name()))
+ return
+- self.current_host.os.append(attrs[u"name"])
++ self.current_host.os.append(attrs["name"])
+
+ def _start_finished(self, name, attrs):
+- assert self.parent_element() == u"runstats"
++ assert self.parent_element() == "runstats"
+ if "time" in attrs:
+- end_timestamp = int(attrs.get(u"time"))
++ end_timestamp = int(attrs.get("time"))
+ self.scan.end_date = datetime.datetime.fromtimestamp(end_timestamp)
+
+ def _end_host(self, name):
+@@ -1425,23 +1422,23 @@ class XMLWriter (xml.sax.saxutils.XMLGenerator):
+
+ def frag(self, frag):
+ for node in frag.childNodes:
+- node.writexml(self.f, newl=u"\n")
++ node.writexml(self.f, newl="\n")
+
+ def frag_a(self, frag):
+- self.startElement(u"a", {})
++ self.startElement("a", {})
+ for node in frag.childNodes:
+- node.writexml(self.f, newl=u"\n")
+- self.endElement(u"a")
++ node.writexml(self.f, newl="\n")
++ self.endElement("a")
+
+ def frag_b(self, frag):
+- self.startElement(u"b", {})
++ self.startElement("b", {})
+ for node in frag.childNodes:
+- node.writexml(self.f, newl=u"\n")
+- self.endElement(u"b")
++ node.writexml(self.f, newl="\n")
++ self.endElement("b")
+
+
+ def usage():
+- print u"""\
++ print("""\
+ Usage: %s [option] FILE1 FILE2
+ Compare two Nmap XML files and display a list of their differences.
+ Differences include host state changes, port state changes, and changes to
+@@ -1451,7 +1448,7 @@ service and OS detection.
+ -v, --verbose also show hosts and ports that haven't changed.
+ --text display output in text format (default)
+ --xml display output in XML format\
+-""" % sys.argv[0]
++""" % sys.argv[0])
+
+ EXIT_EQUAL = 0
+ EXIT_DIFFERENT = 1
+@@ -1459,8 +1456,8 @@ EXIT_ERROR = 2
+
+
+ def usage_error(msg):
+- print >> sys.stderr, u"%s: %s" % (sys.argv[0], msg)
+- print >> sys.stderr, u"Try '%s -h' for help." % sys.argv[0]
++ print("%s: %s" % (sys.argv[0], msg), file=sys.stderr)
++ print("Try '%s -h' for help." % sys.argv[0], file=sys.stderr)
+ sys.exit(EXIT_ERROR)
+
+
+@@ -1471,7 +1468,7 @@ def main():
+ try:
+ opts, input_filenames = getopt.gnu_getopt(
+ sys.argv[1:], "hv", ["help", "text", "verbose", "xml"])
+- except getopt.GetoptError, e:
++ except getopt.GetoptError as e:
+ usage_error(e.msg)
+ for o, a in opts:
+ if o == "-h" or o == "--help":
+@@ -1481,15 +1478,15 @@ def main():
+ verbose = True
+ elif o == "--text":
+ if output_format is not None and output_format != "text":
+- usage_error(u"contradictory output format options.")
++ usage_error("contradictory output format options.")
+ output_format = "text"
+ elif o == "--xml":
+ if output_format is not None and output_format != "xml":
+- usage_error(u"contradictory output format options.")
++ usage_error("contradictory output format options.")
+ output_format = "xml"
+
+ if len(input_filenames) != 2:
+- usage_error(u"need exactly two input filenames.")
++ usage_error("need exactly two input filenames.")
+
+ if output_format is None:
+ output_format = "text"
+@@ -1502,8 +1499,8 @@ def main():
+ scan_a.load_from_file(filename_a)
+ scan_b = Scan()
+ scan_b.load_from_file(filename_b)
+- except IOError, e:
+- print >> sys.stderr, u"Can't open file: %s" % str(e)
++ except IOError as e:
++ print("Can't open file: %s" % str(e), file=sys.stderr)
+ sys.exit(EXIT_ERROR)
+
+ if output_format == "text":
+diff --git a/ndiff/ndifftest.py b/ndiff/ndifftest.py
+index 2fa4ae0..27fc525 100755
+--- a/ndiff/ndifftest.py
++++ b/ndiff/ndifftest.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Unit tests for Ndiff.
+
+@@ -22,7 +22,7 @@ for x in dir(ndiff):
+ sys.dont_write_bytecode = dont_write_bytecode
+ del dont_write_bytecode
+
+-import StringIO
++import io
+
+
+ class scan_test(unittest.TestCase):
+@@ -52,7 +52,7 @@ class scan_test(unittest.TestCase):
+ scan.load_from_file("test-scans/single.xml")
+ host = scan.hosts[0]
+ self.assertEqual(len(host.ports), 5)
+- self.assertEqual(host.extraports.items(), [("filtered", 95)])
++ self.assertEqual(list(host.extraports.items()), [("filtered", 95)])
+
+ def test_extraports_multi(self):
+ """Test that the correct number of known ports is returned when there
+@@ -68,9 +68,9 @@ class scan_test(unittest.TestCase):
+ """Test that nmaprun information is recorded."""
+ scan = Scan()
+ scan.load_from_file("test-scans/empty.xml")
+- self.assertEqual(scan.scanner, u"nmap")
+- self.assertEqual(scan.version, u"4.90RC2")
+- self.assertEqual(scan.args, u"nmap -oX empty.xml -p 1-100")
++ self.assertEqual(scan.scanner, "nmap")
++ self.assertEqual(scan.version, "4.90RC2")
++ self.assertEqual(scan.args, "nmap -oX empty.xml -p 1-100")
+
+ def test_addresses(self):
+ """Test that addresses are recorded."""
+@@ -84,7 +84,7 @@ class scan_test(unittest.TestCase):
+ scan = Scan()
+ scan.load_from_file("test-scans/simple.xml")
+ host = scan.hosts[0]
+- self.assertEqual(host.hostnames, [u"scanme.nmap.org"])
++ self.assertEqual(host.hostnames, ["scanme.nmap.org"])
+
+ def test_os(self):
+ """Test that OS information is recorded."""
+@@ -99,7 +99,7 @@ class scan_test(unittest.TestCase):
+ scan.load_from_file("test-scans/complex.xml")
+ host = scan.hosts[0]
+ self.assertTrue(len(host.script_results) > 0)
+- self.assertTrue(len(host.ports[(22, u"tcp")].script_results) > 0)
++ self.assertTrue(len(host.ports[(22, "tcp")].script_results) > 0)
+
+ # This test is commented out because Nmap XML doesn't store any information
+ # about down hosts, not even the fact that they are down. Recovering the list
+@@ -128,16 +128,16 @@ class host_test(unittest.TestCase):
+
+ def test_format_name(self):
+ h = Host()
+- self.assertTrue(isinstance(h.format_name(), basestring))
+- h.add_address(IPv4Address(u"127.0.0.1"))
+- self.assertTrue(u"127.0.0.1" in h.format_name())
++ self.assertTrue(isinstance(h.format_name(), str))
++ h.add_address(IPv4Address("127.0.0.1"))
++ self.assertTrue("127.0.0.1" in h.format_name())
+ h.add_address(IPv6Address("::1"))
+- self.assertTrue(u"127.0.0.1" in h.format_name())
+- self.assertTrue(u"::1" in h.format_name())
+- h.add_hostname(u"localhost")
+- self.assertTrue(u"127.0.0.1" in h.format_name())
+- self.assertTrue(u"::1" in h.format_name())
+- self.assertTrue(u"localhost" in h.format_name())
++ self.assertTrue("127.0.0.1" in h.format_name())
++ self.assertTrue("::1" in h.format_name())
++ h.add_hostname("localhost")
++ self.assertTrue("127.0.0.1" in h.format_name())
++ self.assertTrue("::1" in h.format_name())
++ self.assertTrue("localhost" in h.format_name())
+
+ def test_empty_get_port(self):
+ h = Host()
+@@ -197,8 +197,8 @@ class host_test(unittest.TestCase):
+ h = s.hosts[0]
+ self.assertEqual(len(h.ports), 5)
+ self.assertEqual(len(h.extraports), 1)
+- self.assertEqual(h.extraports.keys()[0], u"filtered")
+- self.assertEqual(h.extraports.values()[0], 95)
++ self.assertEqual(list(h.extraports.keys())[0], "filtered")
++ self.assertEqual(list(h.extraports.values())[0], 95)
+ self.assertEqual(h.state, "up")
+
+
+@@ -241,13 +241,13 @@ class port_test(unittest.TestCase):
+ """Test the Port class."""
+ def test_spec_string(self):
+ p = Port((10, "tcp"))
+- self.assertEqual(p.spec_string(), u"10/tcp")
++ self.assertEqual(p.spec_string(), "10/tcp")
+ p = Port((100, "ip"))
+- self.assertEqual(p.spec_string(), u"100/ip")
++ self.assertEqual(p.spec_string(), "100/ip")
+
+ def test_state_string(self):
+ p = Port((10, "tcp"))
+- self.assertEqual(p.state_string(), u"unknown")
++ self.assertEqual(p.state_string(), "unknown")
+
+
+ class service_test(unittest.TestCase):
+@@ -255,47 +255,47 @@ class service_test(unittest.TestCase):
+ def test_compare(self):
+ """Test that services with the same contents compare equal."""
+ a = Service()
+- a.name = u"ftp"
+- a.product = u"FooBar FTP"
+- a.version = u"1.1.1"
+- a.tunnel = u"ssl"
++ a.name = "ftp"
++ a.product = "FooBar FTP"
++ a.version = "1.1.1"
++ a.tunnel = "ssl"
+ self.assertEqual(a, a)
+ b = Service()
+- b.name = u"ftp"
+- b.product = u"FooBar FTP"
+- b.version = u"1.1.1"
+- b.tunnel = u"ssl"
++ b.name = "ftp"
++ b.product = "FooBar FTP"
++ b.version = "1.1.1"
++ b.tunnel = "ssl"
+ self.assertEqual(a, b)
+- b.name = u"http"
++ b.name = "http"
+ self.assertNotEqual(a, b)
+ c = Service()
+ self.assertNotEqual(a, c)
+
+ def test_tunnel(self):
+ serv = Service()
+- serv.name = u"http"
+- serv.tunnel = u"ssl"
+- self.assertEqual(serv.name_string(), u"ssl/http")
++ serv.name = "http"
++ serv.tunnel = "ssl"
++ self.assertEqual(serv.name_string(), "ssl/http")
+
+ def test_version_string(self):
+ serv = Service()
+- serv.product = u"FooBar"
++ serv.product = "FooBar"
+ self.assertTrue(len(serv.version_string()) > 0)
+ serv = Service()
+- serv.version = u"1.2.3"
++ serv.version = "1.2.3"
+ self.assertTrue(len(serv.version_string()) > 0)
+ serv = Service()
+- serv.extrainfo = u"misconfigured"
++ serv.extrainfo = "misconfigured"
+ self.assertTrue(len(serv.version_string()) > 0)
+ serv = Service()
+- serv.product = u"FooBar"
+- serv.version = u"1.2.3"
++ serv.product = "FooBar"
++ serv.version = "1.2.3"
+ # Must match Nmap output.
+ self.assertEqual(serv.version_string(),
+- u"%s %s" % (serv.product, serv.version))
+- serv.extrainfo = u"misconfigured"
++ "%s %s" % (serv.product, serv.version))
++ serv.extrainfo = "misconfigured"
+ self.assertEqual(serv.version_string(),
+- u"%s %s (%s)" % (serv.product, serv.version, serv.extrainfo))
++ "%s %s (%s)" % (serv.product, serv.version, serv.extrainfo))
+
+
+ class ScanDiffSub(ScanDiff):
+@@ -703,7 +703,7 @@ class scan_diff_xml_test(unittest.TestCase):
+ a.load_from_file("test-scans/empty.xml")
+ b = Scan()
+ b.load_from_file("test-scans/simple.xml")
+- f = StringIO.StringIO()
++ f = io.StringIO()
+ self.scan_diff = ScanDiffXML(a, b, f)
+ self.scan_diff.output()
+ self.xml = f.getvalue()
+@@ -712,8 +712,8 @@ class scan_diff_xml_test(unittest.TestCase):
+ def test_well_formed(self):
+ try:
+ document = xml.dom.minidom.parseString(self.xml)
+- except Exception, e:
+- self.fail(u"Parsing XML diff output caused the exception: %s"
++ except Exception as e:
++ self.fail("Parsing XML diff output caused the exception: %s"
+ % str(e))
+
+
+@@ -739,8 +739,8 @@ def host_apply_diff(host, diff):
+ host.os = diff.host_b.os[:]
+
+ if diff.extraports_changed:
+- for state in host.extraports.keys():
+- for port in host.ports.values():
++ for state in list(host.extraports.keys()):
++ for port in list(host.ports.values()):
+ if port.state == state:
+ del host.ports[port.spec]
+ host.extraports = diff.host_b.extraports.copy()
+diff --git a/ndiff/scripts/ndiff b/ndiff/scripts/ndiff
+index 8517c07..4671e73 100755
+--- a/ndiff/scripts/ndiff
++++ b/ndiff/scripts/ndiff
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Ndiff
+ #
+@@ -67,15 +67,15 @@ if INSTALL_LIB is not None and is_secure_dir(INSTALL_LIB):
+
+ try:
+ import ndiff
+-except ImportError, e:
+- print >> sys.stderr, """\
++except ImportError as e:
++ print("""\
+ Could not import the ndiff module: %s.
+-I checked in these directories:""" % repr(e.message)
++I checked in these directories:""" % repr(e), file=sys.stderr)
+ for dir in sys.path:
+- print >> sys.stderr, " %s" % dir
+- print >> sys.stderr, """\
++ print(" %s" % dir, file=sys.stderr)
++ print("""\
+ If you installed Ndiff in another directory, you may have to add the
+-modules directory to the PYTHONPATH environment variable."""
++modules directory to the PYTHONPATH environment variable.""", file=sys.stderr)
+ sys.exit(1)
+
+ import ndiff
+diff --git a/ndiff/setup.py b/ndiff/setup.py
+old mode 100644
+new mode 100755
+index b5e254c..c49bcf3
+--- a/ndiff/setup.py
++++ b/ndiff/setup.py
+@@ -94,7 +94,7 @@ class checked_install(distutils.command.install.install):
+ self.saved_prefix = sys.prefix
+ try:
+ distutils.command.install.install.finalize_options(self)
+- except distutils.errors.DistutilsPlatformError, e:
++ except distutils.errors.DistutilsPlatformError as e:
+ raise distutils.errors.DistutilsPlatformError(str(e) + """
+ Installing your distribution's python-dev package may solve this problem.""")
+
+@@ -155,13 +155,13 @@ Installing your distribution's python-dev package may solve this problem.""")
+ #!/usr/bin/env python
+ import errno, os, os.path, sys
+
+-print 'Uninstall %(name)s'
++print('Uninstall %(name)s')
+
+ answer = raw_input('Are you sure that you want to uninstall '
+ '%(name)s (yes/no) ')
+
+ if answer != 'yes' and answer != 'y':
+- print 'Not uninstalling.'
++ print('Not uninstalling.')
+ sys.exit(0)
+
+ """ % {'name': APP_NAME}
+@@ -177,8 +177,8 @@ if answer != 'yes' and answer != 'y':
+ # This should never happen (everything gets installed
+ # inside the root), but if it does, be safe and don't
+ # delete anything.
+- uninstaller += ("print '%s was not installed inside "
+- "the root %s; skipping.'\n" % (output, self.root))
++ uninstaller += ("print('%s was not installed inside "
++ "the root %s; skipping.')\n" % (output, self.root))
+ continue
+ output = path_strip_prefix(output, self.root)
+ assert os.path.isabs(output)
+@@ -202,24 +202,24 @@ for path in INSTALLED_FILES:
+ dirs.append(path)
+ # Delete the files.
+ for file in files:
+- print "Removing '%s'." % file
++ print("Removing '%s'." % file)
+ try:
+ os.remove(file)
+- except OSError, e:
+- print >> sys.stderr, ' Error: %s.' % str(e)
++ except OSError as e:
++ print(' Error: %s.' % str(e), file=sys.stderr)
+ # Delete the directories. First reverse-sort the normalized paths by
+ # length so that child directories are deleted before their parents.
+ dirs = [os.path.normpath(dir) for dir in dirs]
+ dirs.sort(key = len, reverse = True)
+ for dir in dirs:
+ try:
+- print "Removing the directory '%s'." % dir
++ print("Removing the directory '%s'." % dir)
+ os.rmdir(dir)
+- except OSError, e:
++ except OSError as e:
+ if e.errno == errno.ENOTEMPTY:
+- print "Directory '%s' not empty; not removing." % dir
++ print("Directory '%s' not empty; not removing." % dir)
+ else:
+- print >> sys.stderr, str(e)
++ print(str(e), file=sys.stderr)
+ """
+
+ uninstaller_file = open(uninstaller_filename, 'w')
+@@ -227,7 +227,7 @@ for dir in dirs:
+ uninstaller_file.close()
+
+ # Set exec bit for uninstaller
+- mode = ((os.stat(uninstaller_filename)[ST_MODE]) | 0555) & 07777
++ mode = ((os.stat(uninstaller_filename)[ST_MODE]) | 0o555) & 0o7777
+ os.chmod(uninstaller_filename, mode)
+
+ def write_installed_files(self):
+@@ -242,7 +242,7 @@ for dir in dirs:
+ try:
+ for output in self.get_installed_files():
+ assert "\n" not in output
+- print >> f, output
++ print(output, file=f)
+ finally:
+ f.close()
+
+@@ -266,7 +266,7 @@ class my_uninstall(distutils.cmd.Command):
+ # Read the list of installed files.
+ try:
+ f = open(INSTALLED_FILES_NAME, "r")
+- except IOError, e:
++ except IOError as e:
+ if e.errno == errno.ENOENT:
+ log.error("Couldn't open the installation record '%s'. "
+ "Have you installed yet?" % INSTALLED_FILES_NAME)
+@@ -289,7 +289,7 @@ class my_uninstall(distutils.cmd.Command):
+ try:
+ if not self.dry_run:
+ os.remove(file)
+- except OSError, e:
++ except OSError as e:
+ log.error(str(e))
+ # Delete the directories. First reverse-sort the normalized paths by
+ # length so that child directories are deleted before their parents.
+@@ -300,7 +300,7 @@ class my_uninstall(distutils.cmd.Command):
+ log.info("Removing the directory '%s'." % dir)
+ if not self.dry_run:
+ os.rmdir(dir)
+- except OSError, e:
++ except OSError as e:
+ if e.errno == errno.ENOTEMPTY:
+ log.info("Directory '%s' not empty; not removing." % dir)
+ else:
+diff --git a/ndiff/test-scans/anonymize.py b/ndiff/test-scans/anonymize.py
+index 9ba612a..fd251fe 100755
+--- a/ndiff/test-scans/anonymize.py
++++ b/ndiff/test-scans/anonymize.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ # Anonymize an Nmap XML file, replacing host name and IP addresses with random
+ # anonymous ones. Anonymized names will be consistent between runs of the
+@@ -20,20 +20,20 @@ r = random.Random()
+
+
+ def hash(s):
+- digest = hashlib.sha512(s).hexdigest()
++ digest = hashlib.sha512(s.encode()).hexdigest()
+ return int(digest, 16)
+
+
+ def anonymize_mac_address(addr):
+ r.seed(hash(addr))
+ nums = (0, 0, 0) + tuple(r.randrange(256) for i in range(3))
+- return u":".join(u"%02X" % x for x in nums)
++ return ":".join("%02X" % x for x in nums)
+
+
+ def anonymize_ipv4_address(addr):
+ r.seed(hash(addr))
+ nums = (10,) + tuple(r.randrange(256) for i in range(3))
+- return u".".join(unicode(x) for x in nums)
++ return ".".join(str(x) for x in nums)
+
+
+ def anonymize_ipv6_address(addr):
+@@ -41,7 +41,7 @@ def anonymize_ipv6_address(addr):
+ # RFC 4193.
+ nums = (0xFD00 + r.randrange(256),)
+ nums = nums + tuple(r.randrange(65536) for i in range(7))
+- return u":".join("%04X" % x for x in nums)
++ return ":".join("%04X" % x for x in nums)
+
+ # Maps to memoize address and host name conversions.
+ hostname_map = {}
+@@ -54,11 +54,11 @@ def anonymize_hostname(name):
+ LETTERS = "acbdefghijklmnopqrstuvwxyz"
+ r.seed(hash(name))
+ length = r.randrange(5, 10)
+- prefix = u"".join(r.sample(LETTERS, length))
++ prefix = "".join(r.sample(LETTERS, length))
+ num = r.randrange(1000)
+- hostname_map[name] = u"%s-%d.example.com" % (prefix, num)
++ hostname_map[name] = "%s-%d.example.com" % (prefix, num)
+ if VERBOSE:
+- print >> sys.stderr, "Replace %s with %s" % (name, hostname_map[name])
++ print("Replace %s with %s" % (name, hostname_map[name]), file=sys.stderr)
+ return hostname_map[name]
+
+ mac_re = re.compile(r'\b([0-9a-fA-F]{2}:){5}[0-9a-fA-F]{2}\b')
+@@ -78,7 +78,7 @@ def anonymize_address(addr):
+ else:
+ assert False
+ if VERBOSE:
+- print >> sys.stderr, "Replace %s with %s" % (addr, address_map[addr])
++ print("Replace %s with %s" % (addr, address_map[addr]), file=sys.stderr)
+ return address_map[addr]
+
+
+--
+2.24.1
+
diff --git a/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch b/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch
new file mode 100644
index 0000000000..c43ff9f4d8
--- /dev/null
+++ b/meta-oe/recipes-security/nmap/files/0001-configure.ac-make-ndiff-depend-on-python3.patch
@@ -0,0 +1,48 @@
+From 562893e665a6c9e1b60c8b3242bab6fe78318b3b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Fri, 14 Feb 2020 08:19:54 +0000
+Subject: [PATCH] configure.ac: make ndiff depend on python3
+
+Python 2 ceased being maintained on the 1st January 2020.
+We've already removed all users of it from oe-core, so
+let ndiff depend on python3.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ .../nmap/7.80-r0/nmap-7.80/configure.ac | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9d2fff8..5ffdd55 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -237,16 +237,21 @@ if test $HAVE_PYTHON && test "x${PYTHON_VERSION%%.*}" = "x2"; then
+ HAVE_PYTHON2=true
+ fi
+
++HAVE_PYTHON3=false
++if test $HAVE_PYTHON && test "x${PYTHON_VERSION%%.*}" = "x3"; then
++ HAVE_PYTHON3=true
++fi
++
+ NDIFFDIR=ndiff
+
+ # Do they want Ndiff?
+ AC_ARG_WITH(ndiff, AC_HELP_STRING([--without-ndiff], [Skip installation of the Ndiff utility]), [], [with_ndiff=check])
+-if $HAVE_PYTHON2 ; then : ;
++if $HAVE_PYTHON3 ; then : ;
+ else
+ if test "$with_ndiff" = "check" ; then
+- AC_MSG_WARN([Not building Ndiff because Python 2.x with x>=4 was not found])
++ AC_MSG_WARN([Not building Ndiff because Python3 was not found])
+ elif test "$with_ndiff" = "yes"; then
+- AC_MSG_FAILURE([--with-ndiff requires Python 2.x with x>=4])
++ AC_MSG_FAILURE([--with-ndiff requires Python3])
+ fi
+ with_ndiff=no
+ fi
+--
+2.24.1
+
diff --git a/meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch b/meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch
new file mode 100644
index 0000000000..064be8ff85
--- /dev/null
+++ b/meta-oe/recipes-security/nmap/files/0002-Fix-building-with-libc.patch
@@ -0,0 +1,76 @@
+From 2a361989b5f84ec23ba7ccb6e527a5590ff55deb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 20 Jan 2019 23:11:56 -0800
+Subject: [PATCH] Fix building with libc++
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ nping/EchoServer.cc | 16 ++++++++--------
+ 1 file changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/nping/EchoServer.cc b/nping/EchoServer.cc
+index 40cd4d6..04433e1 100644
+--- a/nping/EchoServer.cc
++++ b/nping/EchoServer.cc
+@@ -282,14 +282,14 @@ int EchoServer::nep_listen_socket(){
+ server_addr6.sin6_len = sizeof(struct sockaddr_in6);
+ #endif
+ /* Bind to local address and the specified port */
+- if( bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){
++ if( ::bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){
+ nping_warning(QT_3, "Failed to bind to source address %s. Trying to bind to port %d...", IPtoa(server_addr6.sin6_addr), port);
+ /* If the bind failed for the supplied address, just try again with in6addr_any */
+ if( o.spoofSource() ){
+ server_addr6.sin6_addr = in6addr_any;
+- if( bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){
++ if( ::bind(master_sd, (struct sockaddr *)&server_addr6, sizeof(server_addr6)) != 0 ){
+ nping_fatal(QT_3, "Could not bind to port %d (%s).", port, strerror(errno));
+- }else{
++ }else{
+ nping_print(VB_1, "Server bound to port %d", port);
+ }
+ }
+@@ -320,12 +320,12 @@ int EchoServer::nep_listen_socket(){
+ #endif
+
+ /* Bind to local address and the specified port */
+- if( bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){
++ if( ::bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){
+ nping_warning(QT_3, "Failed to bind to source address %s. Trying to bind to port %d...", IPtoa(server_addr4.sin_addr), port);
+ /* If the bind failed for the supplied address, just try again with in6addr_any */
+ if( o.spoofSource() ){
+ server_addr4.sin_addr.s_addr=INADDR_ANY;
+- if( bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){
++ if( ::bind(master_sd, (struct sockaddr *)&server_addr4, sizeof(server_addr4)) != 0 ){
+ nping_fatal(QT_3, "Could not bind to port %d (%s).", port, strerror(errno));
+ }else{
+ nping_print(VB_1, "Server bound to port %d", port);
+@@ -561,7 +561,7 @@ clientid_t EchoServer::nep_match_headers(IPv4Header *ip4, IPv6Header *ip6, TCPHe
+ nping_print(DBG_3, ";");
+ /* The payload magic may affect the score only between
+ * zero and 4 bytes. This is done to prevent long
+- * common strings like "GET / HTTP/1.1\r\n"
++ * common strings like "GET / HTTP/1.1\r\n"
+ * increasing the score a lot and cause problems for
+ * the matching logic. */
+ current_score+= MIN(4, fspec->len)*FACTOR_PAYLOAD_MAGIC;
+@@ -571,7 +571,7 @@ clientid_t EchoServer::nep_match_headers(IPv4Header *ip4, IPv6Header *ip6, TCPHe
+ default:
+ nping_warning(QT_2, "Bogus field specifier found in client #%d context. Please report a bug", ctx->getIdentifier());
+ break;
+- }
++ }
+ } /* End of field specifiers loop */
+
+ nping_print(DBG_3, "%s() current_score=%.02f candidate_score=%.02f", __func__, current_score, candidate_score);
+@@ -650,7 +650,7 @@ clientid_t EchoServer::nep_match_packet(const u8 *pkt, size_t pktlen){
+ }else{
+ if( (tcplen=tcp.validate())==OP_FAILURE){
+ return CLIENT_NOT_FOUND;
+- }else{
++ }else{
+ if( (int)pktlen > (iplen+tcplen) ){
+ if( payload.storeRecvData(pkt+iplen+tcplen, pktlen-iplen-tcplen)!=OP_FAILURE)
+ payload_included=true;
diff --git a/meta-oe/recipes-security/nmap/nmap_7.60.bb b/meta-oe/recipes-security/nmap/nmap_7.60.bb
deleted file mode 100644
index 74b438859c..0000000000
--- a/meta-oe/recipes-security/nmap/nmap_7.60.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "network auditing tool"
-DESCRIPTION = "Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing.\nGui support via appending to IMAGE_FEATURES x11-base in local.conf"
-SECTION = "security"
-LICENSE = "GPL-2.0"
-
-LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=700c690f4ca6b1754f3f1db8645e42d9"
-
-SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \
- file://nmap-redefine-the-python-library-dir.patch \
- file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \
-"
-
-SRC_URI[md5sum] = "4e454266559ddf2c4e2109866c62560c"
-SRC_URI[sha256sum] = "a8796ecc4fa6c38aad6139d9515dc8113023a82e9d787e5a5fb5fa1b05516f21"
-
-inherit autotools-brokensep pkgconfig python3native
-
-PACKAGECONFIG ?= "ncat nping ndiff pcap"
-
-PACKAGECONFIG[pcap] = "--with-pcap=linux, --without-pcap, libpcap, libpcap"
-PACKAGECONFIG[pcre] = "--with-libpcre=${STAGING_LIBDIR}/.., --with-libpcre=included, libpre"
-PACKAGECONFIG[ssl] = "--with-openssl=${STAGING_LIBDIR}/.., --without-openssl, openssl, openssl"
-PACKAGECONFIG[ssh2] = "--with-openssh2=${STAGING_LIBDIR}/.., --without-openssh2, libssh2, libssh2"
-PACKAGECONFIG[libz] = "--with-libz=${STAGING_LIBDIR}/.., --without-libz, zlib, zlib"
-
-#disable/enable packages
-PACKAGECONFIG[nping] = ",--without-nping,"
-PACKAGECONFIG[ncat] = ",--without-ncat,"
-PACKAGECONFIG[ndiff] = ",--without-ndiff,python"
-PACKAGECONFIG[update] = ",--without-nmap-update,"
-
-EXTRA_OECONF = "--with-libdnet=included --with-liblinear=included --without-subversion --with-liblua=included"
-
-# zenmap needs python-pygtk which has been removed
-# it also only works with python2
-# disable for now until py3 is supported
-EXTRA_OECONF += "--without-zenmap"
-
-do_configure() {
- autoconf
- oe_runconf
-}
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}"
-
-RDEPENDS_${PN} = "python"
diff --git a/meta-oe/recipes-security/nmap/nmap_7.80.bb b/meta-oe/recipes-security/nmap/nmap_7.80.bb
new file mode 100644
index 0000000000..52c62cde30
--- /dev/null
+++ b/meta-oe/recipes-security/nmap/nmap_7.80.bb
@@ -0,0 +1,66 @@
+SUMMARY = "network auditing tool"
+DESCRIPTION = "Nmap ("Network Mapper") is a free and open source (license) utility for network discovery and security auditing.\nGui support via appending to IMAGE_FEATURES x11-base in local.conf"
+SECTION = "security"
+LICENSE = "GPL-2.0-only"
+
+LIC_FILES_CHKSUM = "file://COPYING;beginline=7;endline=12;md5=66938a7e5b4c118eda78271de14874c2"
+
+SRC_URI = "http://nmap.org/dist/${BP}.tar.bz2 \
+ file://nmap-redefine-the-python-library-dir.patch \
+ file://nmap-replace-shtool-mkdir-with-coreutils-mkdir-command.patch \
+ file://0001-Include-time.h-header-to-pass-clang-compilation.patch \
+ file://0002-Fix-building-with-libc.patch \
+ file://0001-Make-ndiff-support-python3.patch \
+ file://0001-configure.ac-make-ndiff-depend-on-python3.patch \
+ "
+
+SRC_URI[md5sum] = "d37b75b06d1d40f27b76d60db420a1f5"
+SRC_URI[sha256sum] = "fcfa5a0e42099e12e4bf7a68ebe6fde05553383a682e816a7ec9256ab4773faa"
+
+inherit autotools-brokensep pkgconfig python3native
+
+PACKAGECONFIG ?= "ncat nping ndiff pcap"
+
+PACKAGECONFIG[pcap] = "--with-pcap=linux, --without-pcap, libpcap, libpcap"
+PACKAGECONFIG[pcre] = "--with-libpcre=${STAGING_LIBDIR}/.., --with-libpcre=included, libpcre"
+PACKAGECONFIG[ssl] = "--with-openssl=${STAGING_LIBDIR}/.., --without-openssl, openssl, openssl"
+PACKAGECONFIG[ssh2] = "--with-openssh2=${STAGING_LIBDIR}/.., --without-openssh2, libssh2, libssh2"
+PACKAGECONFIG[libz] = "--with-libz=${STAGING_LIBDIR}/.., --without-libz, zlib, zlib"
+
+#disable/enable packages
+PACKAGECONFIG[nping] = ",--without-nping,"
+PACKAGECONFIG[ncat] = ",--without-ncat,"
+PACKAGECONFIG[ndiff] = "--with-ndiff=yes,--without-ndiff,python3"
+PACKAGECONFIG[update] = ",--without-nmap-update,"
+
+EXTRA_OECONF = "--with-libdnet=included --with-liblinear=included --without-subversion --with-liblua=included"
+
+# zenmap needs python-pygtk which has been removed
+# it also only works with python2
+# disable for now until py3 is supported
+EXTRA_OECONF += "--without-zenmap"
+
+export PYTHON_SITEPACKAGES_DIR
+
+do_configure() {
+ autoconf
+ 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() {
+ for f in ndiff uninstall_ndiff; do
+ if [ -f ${D}${bindir}/$f ]; then
+ sed -i 's@^#!.*$@#!/usr/bin/env python3@g' ${D}${bindir}/$f
+ fi
+ done
+}
+
+FILES:${PN} += "${PYTHON_SITEPACKAGES_DIR} ${datadir}/ncat"
+
+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 e9023492e0..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,29 +3,38 @@ 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 49d622d..cd17334 100644
+index 404f036..a9b18f0 100644
--- a/Makefile
+++ b/Makefile
-@@ -48,18 +48,17 @@ CFLAGS = -Wall -W -O2
- CFLAGS_lib = $(CFLAGS) -fPIC
- CFLAGS_bin = $(CFLAGS) -fomit-frame-pointer
+@@ -75,13 +75,12 @@ XGETTEXT = xgettext
+ XGETTEXT_OPTS = --keyword=_ --keyword=P2_:1,1 --keyword=P3_:1,2 --language=C --add-comments
+ MSGMERGE = msgmerge
-LDFLAGS =
- LDFLAGS_shared = --shared
- LDFLAGS_shared_LINUX = --shared
- LDFLAGS_shared_SUN = -G
- LDFLAGS_shared_HP = -b
+ LDFLAGS_shared = $(LDFLAGS) --shared
+ LDFLAGS_shared_LINUX = $(LDFLAGS) --shared
+ LDFLAGS_shared_SUN = $(LDFLAGS) -G
+ LDFLAGS_shared_HP = $(LDFLAGS) -b
LDFLAGS_lib = $(LDFLAGS_shared)
-LDFLAGS_lib_LINUX = $(LDFLAGS_shared_LINUX) \
+LDFLAGS_lib_LINUX = $(LDFLAGS) $(LDFLAGS_shared_LINUX) \
-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_1.3.1.bb b/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
deleted file mode 100644
index 8fc0b35912..0000000000
--- a/meta-oe/recipes-security/passwdqc/passwdqc_1.3.1.bb
+++ /dev/null
@@ -1,66 +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 distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1b4af6f3d4ee079a38107366e93b334d"
-
-SRC_URI = "http://www.openwall.com/${BPN}/${BP}.tar.gz \
- file://makefile-add-ldflags.patch \
- "
-SRC_URI[md5sum] = "3878b57bcd3fdbcf3d4b362dbc6228b9"
-SRC_URI[sha256sum] = "d1fedeaf759e8a0f32d28b5811ef11b5a5365154849190f4b7fab670a70ffb14"
-
-# 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.0"
-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
new file mode 100644
index 0000000000..2c68ba984f
--- /dev/null
+++ b/meta-oe/recipes-security/softhsm/softhsm_2.6.1.bb
@@ -0,0 +1,33 @@
+SUMMARY = "PKCS#11 HSM/Token Emulator"
+HOMEPAGE = "https://www.opendnssec.org/softhsm/"
+LICENSE = "BSD-2-Clause & ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ef3f77a3507c3d91e75b9f2bdaee4210"
+
+DEPENDS = "sqlite3"
+
+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"
+
+PACKAGECONFIG[npm] = ",--disable-non-paged-memory"
+PACKAGECONFIG[ecc] = "--enable-ecc,--disable-ecc"
+PACKAGECONFIG[gost] = "--enable-gost,--disable-gost"
+PACKAGECONFIG[eddsa] = "--enable-eddsa, --disable-eddsa"
+PACKAGECONFIG[fips] = "--enable-fips, --disable-fips"
+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"
+
+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
index f362775999..2fcdb6bd61 100644
--- 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
@@ -6,16 +6,15 @@ HOMEPAGE = "http://tomoyo.sourceforge.jp/"
SECTION = "System Environment/Kernel"
SRC_URI = "http://jaist.dl.sourceforge.jp/tomoyo/53357/${BP}-20170102.tar.gz"
-SRC_URI[md5sum] = "888804d58742452fe213a68f7eadd0ad"
SRC_URI[sha256sum] = "00fedfac5e514321250bbe69eaccc732c8a8158596f77a785c2e3ae9f9968283"
S = "${WORKDIR}/${BPN}"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING.tomoyo;md5=751419260aa954499f7abaabaa882bbe"
-FILES_${PN} += "${libdir}/tomoyo"
-FILES_${PN}-dbg += "${libdir}/tomoyo/.debug"
+FILES:${PN} += "${libdir}/tomoyo"
+FILES:${PN}-dbg += "${libdir}/tomoyo/.debug"
DEPENDS = "linux-libc-headers ncurses"
@@ -26,5 +25,5 @@ do_compile () {
}
do_install() {
- oe_runmake install INSTALLDIR=${D}
+ oe_runmake install SBINDIR=${base_sbindir} INSTALLDIR=${D}
}
diff --git a/meta-oe/recipes-security/usbguard/usbguard/0001-Add-and-use-pkgconfig-instead-of-libgcrypt-config.patch b/meta-oe/recipes-security/usbguard/usbguard/0001-Add-and-use-pkgconfig-instead-of-libgcrypt-config.patch
new file mode 100644
index 0000000000..a7a3eb043d
--- /dev/null
+++ b/meta-oe/recipes-security/usbguard/usbguard/0001-Add-and-use-pkgconfig-instead-of-libgcrypt-config.patch
@@ -0,0 +1,106 @@
+From e36cbf9d7a32de9945a8b6c62ad29dfb60358081 Mon Sep 17 00:00:00 2001
+From: "Anu Deepthika, Nandipati" <Nandipati.AnuDeepthika@philips.com>
+Date: Wed, 9 Mar 2022 02:03:51 +0530
+Subject: [PATCH] Add and use pkgconfig instead of libgcrypt-config
+
+Upstream-Status: Pending
+
+Signed-off-by: Anu Deepthika, Nandipati <Nandipati.AnuDeepthika@philips.com>
+---
+ m4/libgcrypt.m4 | 56 ++-----------------------------------------------
+ 1 file changed, 2 insertions(+), 54 deletions(-)
+
+diff --git a/m4/libgcrypt.m4 b/m4/libgcrypt.m4
+index 9a29eb5..465fe24 100644
+--- a/m4/libgcrypt.m4
++++ b/m4/libgcrypt.m4
+@@ -22,17 +22,7 @@ dnl with a changed API.
+ dnl
+ AC_DEFUN([AM_PATH_LIBGCRYPT],
+ [ AC_REQUIRE([AC_CANONICAL_HOST])
+- AC_ARG_WITH(libgcrypt-prefix,
+- AS_HELP_STRING([--with-libgcrypt-prefix=PFX],
+- [prefix where LIBGCRYPT is installed (optional)]),
+- libgcrypt_config_prefix="$withval", libgcrypt_config_prefix="")
+- if test x$libgcrypt_config_prefix != x ; then
+- if test x${LIBGCRYPT_CONFIG+set} != xset ; then
+- LIBGCRYPT_CONFIG=$libgcrypt_config_prefix/bin/libgcrypt-config
+- fi
+- fi
+
+- AC_PATH_TOOL(LIBGCRYPT_CONFIG, libgcrypt-config, no)
+ tmp=ifelse([$1], ,1:1.2.0,$1)
+ if echo "$tmp" | grep ':' >/dev/null 2>/dev/null ; then
+ req_libgcrypt_api=`echo "$tmp" | sed 's/\(.*\):\(.*\)/\1/'`
+@@ -41,44 +31,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+ req_libgcrypt_api=0
+ min_libgcrypt_version="$tmp"
+ fi
++ PKG_CHECK_MODULES(LIBGCRYPT, [libgcrypt >= $min_libgcrypt_version], [ok=yes], [ok=no])
+
+- AC_MSG_CHECKING(for LIBGCRYPT - version >= $min_libgcrypt_version)
+- ok=no
+- if test "$LIBGCRYPT_CONFIG" != "no" ; then
+- req_major=`echo $min_libgcrypt_version | \
+- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\1/'`
+- req_minor=`echo $min_libgcrypt_version | \
+- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\2/'`
+- req_micro=`echo $min_libgcrypt_version | \
+- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\)/\3/'`
+- libgcrypt_config_version=`$LIBGCRYPT_CONFIG --version`
+- major=`echo $libgcrypt_config_version | \
+- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
+- minor=`echo $libgcrypt_config_version | \
+- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
+- micro=`echo $libgcrypt_config_version | \
+- sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
+- if test "$major" -gt "$req_major"; then
+- ok=yes
+- else
+- if test "$major" -eq "$req_major"; then
+- if test "$minor" -gt "$req_minor"; then
+- ok=yes
+- else
+- if test "$minor" -eq "$req_minor"; then
+- if test "$micro" -ge "$req_micro"; then
+- ok=yes
+- fi
+- fi
+- fi
+- fi
+- fi
+- fi
+- if test $ok = yes; then
+- AC_MSG_RESULT([yes ($libgcrypt_config_version)])
+- else
+- AC_MSG_RESULT(no)
+- fi
+ if test $ok = yes; then
+ # If we have a recent libgcrypt, we should also check that the
+ # API is compatible
+@@ -96,10 +50,8 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+ fi
+ fi
+ if test $ok = yes; then
+- LIBGCRYPT_CFLAGS=`$LIBGCRYPT_CONFIG --cflags`
+- LIBGCRYPT_LIBS=`$LIBGCRYPT_CONFIG --libs`
+ ifelse([$2], , :, [$2])
+- libgcrypt_config_host=`$LIBGCRYPT_CONFIG --host 2>/dev/null || echo none`
++ libgcrypt_config_host=`$PKG_CONFIG --variable=host libgcrypt`
+ if test x"$libgcrypt_config_host" != xnone ; then
+ if test x"$libgcrypt_config_host" != x"$host" ; then
+ AC_MSG_WARN([[
+@@ -112,10 +64,6 @@ AC_DEFUN([AM_PATH_LIBGCRYPT],
+ ***]])
+ fi
+ fi
+- else
+- LIBGCRYPT_CFLAGS=""
+- LIBGCRYPT_LIBS=""
+- ifelse([$3], , :, [$3])
+ fi
+ AC_SUBST(LIBGCRYPT_CFLAGS)
+ AC_SUBST(LIBGCRYPT_LIBS)
+--
+2.25.1
+
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.2.bb b/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb
new file mode 100644
index 0000000000..4e96b4f41e
--- /dev/null
+++ b/meta-oe/recipes-security/usbguard/usbguard_1.1.2.bb
@@ -0,0 +1,69 @@
+# 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', '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/0001-Fix-printf-format-errors-with-clang.patch b/meta-oe/recipes-shells/dash/dash/0001-Fix-printf-format-errors-with-clang.patch
deleted file mode 100644
index b3991faa88..0000000000
--- a/meta-oe/recipes-shells/dash/dash/0001-Fix-printf-format-errors-with-clang.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 3ddf397febf47f8de9ca2805e92355ecb3ba0e9f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 8 Apr 2017 12:37:54 -0700
-Subject: [PATCH] Fix printf format errors with clang
-
-error: format string is not a string literal (potentially insecure)
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/jobs.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/jobs.c b/src/jobs.c
-index c2c2332..dcb81c1 100644
---- a/src/jobs.c
-+++ b/src/jobs.c
-@@ -427,7 +427,7 @@ sprint_status(char *s, int status, int sigonly)
- goto out;
- #endif
- }
-- col = fmtstr(s, 32, strsignal(st));
-+ col = fmtstr(s, 32, "%s", strsignal(st));
- #ifdef WCOREDUMP
- if (WCOREDUMP(status)) {
- col += fmtstr(s + col, 16, " (core dumped)");
---
-2.12.2
-
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..9882ba6f8e
--- /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 & 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] = "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/dash/dash_0.5.9.1.bb b/meta-oe/recipes-shells/dash/dash_0.5.9.1.bb
deleted file mode 100644
index 6dee66f691..0000000000
--- a/meta-oe/recipes-shells/dash/dash_0.5.9.1.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Small and fast POSIX-compliant shell"
-HOMEPAGE = "http://gondor.apana.org.au/~herbert/dash/"
-SECTION = "System Environment/Shells"
-
-LICENSE = "BSD & GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b5262b4a1a1bff72b48e935531976d2e"
-
-inherit autotools update-alternatives
-
-SRC_URI = "http://gondor.apana.org.au/~herbert/${BPN}/files/${BP}.tar.gz \
- file://0001-Fix-printf-format-errors-with-clang.patch \
- "
-SRC_URI[md5sum] = "6472702a8d9760d166ef8333dcb527a6"
-SRC_URI[sha256sum] = "5ecd5bea72a93ed10eb15a1be9951dd51b52e5da1d4a7ae020efd9826b49e659"
-
-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
new file mode 100644
index 0000000000..9cd0fbc255
--- /dev/null
+++ b/meta-oe/recipes-shells/mksh/mksh_59.bb
@@ -0,0 +1,36 @@
+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/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.20.00.bb b/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb
deleted file mode 100644
index b59d88f5de..0000000000
--- a/meta-oe/recipes-shells/tcsh/tcsh_6.20.00.bb
+++ /dev/null
@@ -1,44 +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 gettext-native"
-SRC_URI = " \
- http://ftp.funet.fi/pub/mirrors/ftp.astron.com/pub/tcsh/${BP}.tar.gz \
- file://0001-Enable-system-malloc-on-all-linux.patch \
- file://0002-Add-debian-csh-scripts.patch \
-"
-SRC_URI[md5sum] = "59d40ef40a68e790d95e182069431834"
-SRC_URI[sha256sum] = "b89de7064ab54dac454a266cfe5d8bf66940cb5ed048d0c30674ea62e7ecef9d"
-
-EXTRA_OEMAKE += "CC_FOR_GETHOST='${BUILD_CC}'"
-inherit autotools
-
-do_compile_prepend() {
- oe_runmake CC_FOR_GETHOST='${BUILD_CC}' CFLAGS='${BUILD_CFLAGS}' gethost
-}
-
-do_install_append () {
- oe_runmake install.man DESTDIR=${D}
-
- install -d ${D}${base_bindir}
- ln -s /usr/bin/tcsh ${D}${base_bindir}/tcsh
- ln -s /usr/bin/tcsh ${D}${base_bindir}/csh
- 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.10.bb b/meta-oe/recipes-shells/tcsh/tcsh_6.24.10.bb
new file mode 100644
index 0000000000..abeb6e803b
--- /dev/null
+++ b/meta-oe/recipes-shells/tcsh/tcsh_6.24.10.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] = "13475c0fbeb74139d33ed793bf00ffbbb2ac2dc9fb1d44467a410760aba36664"
+
+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.4.2.bb b/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
deleted file mode 100644
index 100c449f2b..0000000000
--- a/meta-oe/recipes-shells/zsh/zsh_5.4.2.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-SUMMARY = "UNIX Shell similar to the Korn shell"
-DESCRIPTION = "Zsh is a shell designed for interactive use, although it is also a \
- powerful scripting language. Many of the useful features of bash, \
- ksh, and tcsh were incorporated into zsh; many original features were added."
-HOMEPAGE = "http://www.zsh.org"
-SECTION = "base/shell"
-
-LICENSE = "zsh"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=1a4c4cda3e8096d2fd483ff2f4514fec"
-
-DEPENDS = "ncurses bison-native libcap libpcre gdbm groff-native"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
-SRC_URI[md5sum] = "dfe156fd69b0d8d1745ecf6d6e02e047"
-SRC_URI[sha256sum] = "957bcdb2c57f64c02f673693ea5a7518ef24b6557aeb3a4ce222cefa6d74acc9"
-
-inherit autotools gettext update-alternatives
-
-EXTRA_OECONF = " \
- --bindir=${base_bindir} \
- --enable-etcdir=${sysconfdir} \
- --enable-fndir=${datadir}/${PN}/${PV}/functions \
- --enable-site-fndir=${datadir}/${PN}/site-functions \
- --with-term-lib='ncursesw ncurses' \
- --with-tcsetpgrp \
- --enable-cap \
- --enable-multibyte \
- --disable-gdbm \
- --disable-dynamic \
- zsh_cv_shared_environ=yes \
-"
-
-# Configure respects --bindir from EXTRA_OECONF, but then Src/Makefile will read bindir from environment
-export bindir="${base_bindir}"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-ALTERNATIVE_${PN} = "sh"
-ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
-ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
-ALTERNATIVE_PRIORITY = "100"
-
-export AUTOHEADER = "true"
-
-do_configure () {
- gnu-configize --force ${S}
- oe_runconf
-}
-
-do_install_append () {
- rm -fr ${D}/usr/share
-}
-
-pkg_postinst_${PN} () {
- touch $D${sysconfdir}/shells
- grep -q "bin/zsh" $D${sysconfdir}/shells || echo /bin/zsh >> $D${sysconfdir}/shells
- grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
-}
-
-FILES_${PN}-dbg += "\
- ${libdir}/${PN}/${PV}/${PN}/.debug/*.so \
- ${libdir}/${PN}/${PV}/${PN}/db/.debug/*.so \
- ${libdir}/${PN}/${PV}/${PN}/net/.debug/*.so \
-"
diff --git a/meta-oe/recipes-shells/zsh/zsh_5.8.bb b/meta-oe/recipes-shells/zsh/zsh_5.8.bb
new file mode 100644
index 0000000000..7602ff9f64
--- /dev/null
+++ b/meta-oe/recipes-shells/zsh/zsh_5.8.bb
@@ -0,0 +1,62 @@
+SUMMARY = "UNIX Shell similar to the Korn shell"
+DESCRIPTION = "Zsh is a shell designed for interactive use, although it is also a \
+ powerful scripting language. Many of the useful features of bash, \
+ ksh, and tcsh were incorporated into zsh; many original features were added."
+HOMEPAGE = "http://www.zsh.org"
+SECTION = "base/shell"
+
+LICENSE = "zsh"
+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 \
+ 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
+
+EXTRA_OECONF = " \
+ --bindir=${base_bindir} \
+ --enable-etcdir=${sysconfdir} \
+ --enable-fndir=${datadir}/${BPN}/${PV}/functions \
+ --enable-site-fndir=${datadir}/${BPN}/site-functions \
+ --with-term-lib='ncursesw ncurses' \
+ --with-tcsetpgrp \
+ --enable-cap \
+ --enable-multibyte \
+ --disable-gdbm \
+ --disable-dynamic \
+ zsh_cv_shared_environ=yes \
+"
+
+# Configure respects --bindir from EXTRA_OECONF, but then Src/Makefile will read bindir from environment
+export bindir="${base_bindir}"
+
+EXTRA_OEMAKE = "-e MAKEFLAGS="
+
+ALTERNATIVE:${PN} = "sh"
+ALTERNATIVE_LINK_NAME[sh] = "${base_bindir}/sh"
+ALTERNATIVE_TARGET[sh] = "${base_bindir}/${BPN}"
+ALTERNATIVE_PRIORITY = "90"
+
+export AUTOHEADER = "true"
+
+do_configure () {
+ gnu-configize --force ${S}
+ oe_runconf
+}
+
+pkg_postinst:${PN} () {
+ touch $D${sysconfdir}/shells
+ grep -q "bin/zsh" $D${sysconfdir}/shells || echo /bin/zsh >> $D${sysconfdir}/shells
+ grep -q "bin/sh" $D${sysconfdir}/shells || echo /bin/sh >> $D${sysconfdir}/shells
+}
+
+# work around QA failures with usrmerge installing zsh in /usr/bin/zsh instead of /bin/zsh
+# ERROR: QA Issue: /usr/share/zsh/5.8/functions/zed contained in package zsh requires /bin/zsh, but no providers found in RDEPENDS:zsh? [file-rdeps]
+# like bash does since https://git.openembedded.org/openembedded-core/commit/?id=4759408677a4e60c5fa7131afcb5bc184cf2f90a
+RPROVIDES:${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/zsh', '', d)}"
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
new file mode 100644
index 0000000000..746d4182a9
--- /dev/null
+++ b/meta-oe/recipes-support/ace-cloud-editor/ace-cloud-editor_git.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Ace is a code editor written in JavaScript."
+SUMMARY = "Ace is a code editor written in JavaScript. This repository has only generated files"
+
+LICENSE = "BSD-3-Clause"
+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}"
+SRCREV = "812e2c56aed246931a667f16c28b096e34597016"
+
+FILES:${PN} = "${datadir}/ace-builds"
+
+S = "${WORKDIR}/git"
+
+DEPENDS += "rsync-native"
+
+do_install () {
+ install -d ${D}/${datadir}/ace-builds/src-noconflict
+ rsync -r --exclude=".*" ${S}/src-noconflict/* ${D}/${datadir}/ace-builds/src-noconflict
+}
+
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 a65d324eae..2a6cfb5715 100644
--- a/meta-oe/recipes-support/anthy/anthy_9100h.bb
+++ b/meta-oe/recipes-support/anthy/anthy_9100h.bb
@@ -2,42 +2,44 @@ DESCRIPTION="Anthy is a system for Japanese input method. It converts Hiragana t
AUTHOR = "Anthy Developers <anthy-dev@lists.sourceforge.jp>"
HOMEPAGE = "http://anthy.sourceforge.jp"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=11f384074d8e93e263b5664ef08a411a"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=11f384074d8e93e263b5664ef08a411a \
+ file://alt-cannadic/COPYING;md5=c93c0550bd3173f4504b2cbd8991e50b \
+"
SRC_URI = "http://osdn.dl.sourceforge.jp/anthy/37536/anthy-9100h.tar.gz \
file://not_build_elc.patch \
file://2ch_t.patch \
"
-SRC_URI_append_class-target = "file://target-helpers.patch"
-SRC_URI_append_class-native = "file://native-helpers.patch"
+SRC_URI:append:class-target = " file://target-helpers.patch"
+SRC_URI:append:class-native = " file://native-helpers.patch"
SRC_URI[md5sum] = "1f558ff7ed296787b55bb1c6cf131108"
SRC_URI[sha256sum] = "d256f075f018b4a3cb0d165ed6151fda4ba7db1621727e0eb54569b6e2275547"
-DEPENDS_class-target = "anthy-native"
-RDEPENDS_${PN}_class-target = "libanthy0"
+DEPENDS:class-target = "anthy-native"
+RDEPENDS:${PN}:class-target = "libanthy0"
inherit autotools pkgconfig
PACKAGES += "${PN}-el libanthy0 libanthy-dev"
-FILES_${PN}-dbg += "${libdir}/.debug"
-FILES_libanthy0 = "${libdir}/libanthy.so.* \
+FILES:${PN}-dbg += "${libdir}/.debug"
+FILES:libanthy0 = "${libdir}/libanthy.so.* \
${libdir}/libanthydic.so.* \
${libdir}/libanthyinput.so.* \
"
-FILES_libanthy-dev = "${libdir}/libanthy*.la \
+FILES:libanthy-dev = "${libdir}/libanthy*.la \
${libdir}/libanthy*.a \
${libdir}/libanthy*.so \
${includedir}/anthy \
${libdir}/pkgconfig/anthy.pc \
"
-FILES_${PN}-el = "${datadir}/emacs/*"
-FILES_${PN} = "${datadir}/* \
+FILES:${PN}-el = "${datadir}/emacs/*"
+FILES:${PN} = "${datadir}/* \
${bindir}/* \
${sysconfdir}/anthy-conf \
"
diff --git a/meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch b/meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch
new file mode 100644
index 0000000000..fe8dcff910
--- /dev/null
+++ b/meta-oe/recipes-support/appstream/appstream/0001-fix-crosscompile.patch
@@ -0,0 +1,43 @@
+From 6ab00a4279823829a9b82dc9e4d055da4de88c6e Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 12 Dec 2022 15:42:42 +0100
+Subject: [PATCH] fix crosscompile
+
+Signed-off-by: Markus Volk <f_l_k@t-online.de>
+
+Upstream-Status: Inappropriate [oe-specific]
+---
+ data/meson.build | 2 +-
+ meson.build | 2 +-
+ tools/meson.build | 9 +++++++++
+ 3 files changed, 11 insertions(+), 2 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index aea0cb25..1a085fc9 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -14,7 +14,7 @@ install_data('its/metainfo.loc',
+ metainfo_with_relinfo = custom_target('gen-output',
+ input : ['../NEWS', 'org.freedesktop.appstream.cli.metainfo.xml'],
+ output : ['nol10n_withrelinfo_org.freedesktop.appstream.cli.metainfo.xml'],
+- command : [ascli_exe, 'news-to-metainfo', '--limit=6', '@INPUT0@', '@INPUT1@', '@OUTPUT@']
++ command : ['appstreamcli', 'news-to-metainfo', '--limit=6', '@INPUT0@', '@INPUT1@', '@OUTPUT@']
+ )
+
+ metainfo_i18n = i18n.itstool_join(
+diff --git a/meson.build b/meson.build
+index fd0e3373..2f273ada 100644
+--- a/meson.build
++++ b/meson.build
+@@ -124,7 +124,7 @@ if get_option ('gir')
+ dependency('gobject-introspection-1.0', version: '>=1.56')
+ endif
+
+-stemmer_inc_dirs = include_directories(['/usr/include'])
++stemmer_inc_dirs = include_directories([''])
+ if get_option('stemming')
+ stemmer_lib = cc.find_library('stemmer', required: true)
+ if not cc.has_header('libstemmer.h')
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/appstream/appstream_0.16.2.bb b/meta-oe/recipes-support/appstream/appstream_0.16.2.bb
new file mode 100644
index 0000000000..1ba4521834
--- /dev/null
+++ b/meta-oe/recipes-support/appstream/appstream_0.16.2.bb
@@ -0,0 +1,48 @@
+SUMMARY = "AppStream is a collaborative effort for making machine-readable software metadata easily available."
+HOMEPAGE = "https://github.com/ximion/appstream"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=435ed639f84d4585d93824e7da3d85da"
+
+DEPENDS = " \
+ appstream-native \
+ curl-native \
+ curl \
+ docbook-xml-dtd4-native \
+ gperf-native \
+ glib-2.0 \
+ libyaml \
+ libxml2 \
+ libxmlb \
+ libxslt-native \
+ itstool-native \
+ docbook-xsl-stylesheets-native \
+ python3-pygments-native \
+"
+
+inherit meson gobject-introspection gettext gtk-doc pkgconfig vala
+
+GIR_MESON_OPTION = "gir"
+
+SRC_URI = "https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz"
+SRC_URI:append:class-target = " file://0001-fix-crosscompile.patch"
+SRC_URI[sha256sum] = "f9cb80bd388fbf06be268afa7f2d65863c85d605ad874b905094f3982d03f232"
+
+S = "${WORKDIR}/AppStream-${PV}"
+
+PACKAGECONFIG ?= "stemming ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+
+PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd"
+PACKAGECONFIG[stemming] = "-Dstemming=true,-Dstemming=false,libstemmer"
+
+FILES:${PN} += "${datadir}"
+
+EXTRA_OEMESON:class-target += "--cross-file=${WORKDIR}/meson-${PN}.cross"
+
+do_write_config:append:class-target() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+appstreamcli = '${STAGING_BINDIR_NATIVE}/appstreamcli'
+EOF
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/asio/asio.inc b/meta-oe/recipes-support/asio/asio.inc
deleted file mode 100644
index 54f78e41d1..0000000000
--- a/meta-oe/recipes-support/asio/asio.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-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 = "boost openssl"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
-
-inherit autotools
-
-ALLOW_EMPTY_${PN} = "1"
diff --git a/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch b/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
deleted file mode 100644
index 4244b97a8c..0000000000
--- a/meta-oe/recipes-support/asio/asio/0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 45c855400842fd40f200ae9b7abf9debf4ab5436 Mon Sep 17 00:00:00 2001
-From: Christopher Kohlhoff <chris@kohlhoff.com>
-Date: Sun, 28 Aug 2016 09:21:53 +1000
-Subject: [PATCH] Automatically handle glibc variant of strerror_r without
- #ifdefs.
-
----
-Upstream-Status: Backport https://github.com/chriskohlhoff/asio/commit/443bc17d13eb5e37de780ea6e23157493cf7b3b9
- include/asio/impl/error_code.ipp | 16 +++++++---------
- 1 file changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/include/asio/impl/error_code.ipp b/include/asio/impl/error_code.ipp
-index ccb70dd..a117658 100644
---- a/include/asio/impl/error_code.ipp
-+++ b/include/asio/impl/error_code.ipp
-@@ -97,20 +97,18 @@ public:
- #if defined(__sun) || defined(__QNX__) || defined(__SYMBIAN32__)
- using namespace std;
- return strerror(value);
--#elif defined(__MACH__) && defined(__APPLE__) \
-- || defined(__NetBSD__) || defined(__FreeBSD__) || defined(__OpenBSD__) \
-- || defined(_AIX) || defined(__hpux) || defined(__osf__) \
-- || defined(__ANDROID__)
-- char buf[256] = "";
-- using namespace std;
-- strerror_r(value, buf, sizeof(buf));
-- return buf;
- #else
- char buf[256] = "";
-- return strerror_r(value, buf, sizeof(buf));
-+ using namespace std;
-+ return strerror_result(strerror_r(value, buf, sizeof(buf)), buf);
- #endif
- #endif // defined(ASIO_WINDOWS)
- }
-+
-+private:
-+ // Helper function to adapt the result from glibc's variant of strerror_r.
-+ static const char* strerror_result(int, const char* s) { return s; }
-+ static const char* strerror_result(const char* s, const char*) { return s; }
- };
-
- } // namespace detail
---
-2.9.3
-
diff --git a/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch b/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
deleted file mode 100644
index 7f95f5a25e..0000000000
--- a/meta-oe/recipes-support/asio/asio/0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From dac36a170188917e2f61b0394ba8a2f6509ddf3a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <adraszik@tycoint.com>
-Date: Tue, 8 Nov 2016 20:39:55 +0000
-Subject: [PATCH] use POSIX poll.h instead of sys/poll.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-POSIX specifies that <poll.h> is the correct header to
-include for poll()
- http://pubs.opengroup.org/onlinepubs/009695399/functions/poll.html
-whereas <sys/poll.h> is only needed for ancient glibc (<2.3),
-so let's follow POSIX instead.
-
-As a side-effect, this silences numerous compilation warnings
-when compiling against the musl C-library:
-
-In file included from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/socket_types.hpp:57:0,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/error_code.ipp:29,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/error_code.hpp:185,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/throw_error.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/impl/posix_tss_ptr.ipp:23,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/posix_tss_ptr.hpp:74,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/tss_ptr.hpp:27,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/call_stack.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/impl/handler_alloc_hook.ipp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/handler_alloc_hook.hpp:78,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/handler_alloc_helpers.hpp:21,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/bind_handler.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/detail/wrapped_handler.hpp:18,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/io_service.hpp:24,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_io_object.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_socket.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio/basic_datagram_socket.hpp:20,
- from ../../../../asio-1.10.6/src/examples/cpp03/../../../include/asio.hpp:19,
- from ../../../../asio-1.10.6/src/examples/cpp03/buffers/reference_counted.cpp:11:
-<sysroot>/usr/include/sys/poll.h:1:2: warning: #warning redirecting incorrect #include <sys/poll.h> to <poll.h> [-Wcpp]
- #warning redirecting incorrect #include <sys/poll.h> to <poll.h>
- ^~~~~~~
-
-etc.
-
-Signed-off-by: André Draszik <adraszik@tycoint.com>
----
-Upstream-Status: Submitted https://svn.boost.org/trac/boost/ticket/12419
- include/asio/detail/socket_types.hpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/asio/detail/socket_types.hpp b/include/asio/detail/socket_types.hpp
-index f2600c2..cb61b8e 100644
---- a/include/asio/detail/socket_types.hpp
-+++ b/include/asio/detail/socket_types.hpp
-@@ -54,7 +54,7 @@
- #else
- # include <sys/ioctl.h>
- # if !defined(__SYMBIAN32__)
--# include <sys/poll.h>
-+# include <poll.h>
- # endif
- # include <sys/types.h>
- # include <sys/stat.h>
---
-2.10.2
-
diff --git a/meta-oe/recipes-support/asio/asio_1.10.6.bb b/meta-oe/recipes-support/asio/asio_1.10.6.bb
deleted file mode 100644
index 5656039846..0000000000
--- a/meta-oe/recipes-support/asio/asio_1.10.6.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require asio.inc
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=fede5286a78559dd646e355ab0cc8f04"
-
-SRC_URI[md5sum] = "85d014a356a6e004cd30ccd4c9b6a5c2"
-SRC_URI[sha256sum] = "e0d71c40a7b1f6c1334008fb279e7361b32a063e020efd21e40d9d8ff037195e"
-
-SRC_URI += "\
- file://0001-Automatically-handle-glibc-variant-of-strerror_r-wit.patch \
- file://0001-use-POSIX-poll.h-instead-of-sys-poll.h.patch \
-"
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..ae721263dd
--- /dev/null
+++ b/meta-oe/recipes-support/asio/asio_1.28.0.bb
@@ -0,0 +1,29 @@
+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 \
+ 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/0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch b/meta-oe/recipes-support/atop/atop/0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch
new file mode 100644
index 0000000000..facb257be6
--- /dev/null
+++ b/meta-oe/recipes-support/atop/atop/0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch
@@ -0,0 +1,67 @@
+From ffc8ba8d324243a923abe48e9758adecb03d24a4 Mon Sep 17 00:00:00 2001
+From: Peter Kjellerstedt <pkj@axis.com>
+Date: Tue, 12 Feb 2019 21:25:23 +0100
+Subject: [PATCH] atop.daily, atop.init, atop-pm.sh: Avoid using bash
+
+Avoid using bash and bashisms when not necesary. On some systems,
+e.g., embedded products, bash may not be available by default.
+
+Upstream-Status: Submitted [https://github.com/Atoptool/atop/pull/50]
+Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+---
+ atop-pm.sh | 2 +-
+ atop.daily | 4 ++--
+ atop.init | 4 ++--
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/atop-pm.sh b/atop-pm.sh
+index 7f41a86..3ff4ab5 100755
+--- a/atop-pm.sh
++++ b/atop-pm.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ case "$1" in
+ pre) /usr/bin/systemctl stop atop
+diff --git a/atop.daily b/atop.daily
+index 57a9507..fe5a11b 100755
+--- a/atop.daily
++++ b/atop.daily
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+
+ LOGOPTS="-R" # default options
+ LOGINTERVAL=600 # default interval in seconds
+@@ -38,7 +38,7 @@ then
+
+ while ps -p `cat "$PIDFILE"` > /dev/null
+ do
+- let CNT+=1
++ CNT=$((CNT + 1))
+
+ if [ $CNT -gt 5 ]
+ then
+diff --git a/atop.init b/atop.init
+index e6e11dc..03c3f02 100755
+--- a/atop.init
++++ b/atop.init
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # atop Startup script for the Atop process logging in background
+ #
+@@ -47,7 +47,7 @@ case "$1" in
+
+ while ps -p `cat $PIDFILE` > /dev/null
+ do
+- let CNT+=1
++ CNT=$((CNT + 1))
+
+ if [ $CNT -gt 5 ]
+ then
+--
+2.12.0
+
diff --git a/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch b/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
deleted file mode 100644
index 3708f60ba0..0000000000
--- a/meta-oe/recipes-support/atop/atop/0001-include-missing-header-files.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 7b651793269b6b86f12c43c30b751b86def27222 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 18 Mar 2017 17:56:40 -0700
-Subject: [PATCH] include missing header files
-
-fixes build with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- deviate.c | 1 +
- procdbase.c | 2 +-
- showgeneric.c | 2 +-
- showlinux.c | 2 +-
- showprocs.c | 2 +-
- showsys.c | 2 +-
- 6 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/deviate.c b/deviate.c
-index 7cf1b49..8e615af 100644
---- a/deviate.c
-+++ b/deviate.c
-@@ -178,6 +178,7 @@ static const char rcsid[] = "$Id: deviate.c,v 1.45 2010/10/23 14:02:03 gerlof Ex
- #include <stdio.h>
- #include <errno.h>
- #include <fcntl.h>
-+#include <stdlib.h>
- #include <unistd.h>
- #include <limits.h>
- #include <memory.h>
-diff --git a/procdbase.c b/procdbase.c
-index 9cab347..0487d26 100644
---- a/procdbase.c
-+++ b/procdbase.c
-@@ -67,7 +67,7 @@ static const char rcsid[] = "$Id: procdbase.c,v 1.8 2010/04/23 12:19:35 gerlof E
- #include <fcntl.h>
- #include <unistd.h>
- #include <string.h>
--#include <malloc.h>
-+#include <stdlib.h>
-
- #include "atop.h"
- #include "photoproc.h"
-diff --git a/showgeneric.c b/showgeneric.c
-index 775afa8..3d5be0e 100644
---- a/showgeneric.c
-+++ b/showgeneric.c
-@@ -268,7 +268,7 @@ static const char rcsid[] = "$Id: showgeneric.c,v 1.71 2010/10/25 19:08:32 gerlo
- #include <errno.h>
- #include <fcntl.h>
- #include <string.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showlinux.c b/showlinux.c
-index 6e60754..aba2ee6 100644
---- a/showlinux.c
-+++ b/showlinux.c
-@@ -274,7 +274,7 @@ static const char rcsid[] = "$Id: showlinux.c,v 1.70 2010/10/23 14:04:12 gerlof
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showprocs.c b/showprocs.c
-index 5194524..f0169ad 100644
---- a/showprocs.c
-+++ b/showprocs.c
-@@ -94,7 +94,7 @@ static const char rcsid[] = "$Id: showprocs.c,v 1.15 2011/09/05 11:44:16 gerlof
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
-diff --git a/showsys.c b/showsys.c
-index 26331be..5a05fe5 100644
---- a/showsys.c
-+++ b/showsys.c
-@@ -80,7 +80,7 @@ static const char rcsid[] = "XXXXXX";
- #include <string.h>
- #include <errno.h>
- #include <fcntl.h>
--#include <termio.h>
-+#include <termios.h>
- #include <unistd.h>
- #include <stdarg.h>
- #include <curses.h>
---
-2.12.0
-
diff --git a/meta-oe/recipes-support/atop/atop/fix-permissions.patch b/meta-oe/recipes-support/atop/atop/fix-permissions.patch
index ee74199939..8488b38000 100644
--- a/meta-oe/recipes-support/atop/atop/fix-permissions.patch
+++ b/meta-oe/recipes-support/atop/atop/fix-permissions.patch
@@ -1,15 +1,22 @@
-Update permissions of executable files that remove setuid bit and make everyone
-could read.
+From d9498d10d0e8241749835dbc9fa229465d4fdfd7 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 6 Feb 2019 13:58:04 +0000
+Subject: [PATCH] Fix permissions
-Upstream-Status: Inappropriate [embedded specific]
+Update permissions of executable files that remove setuid bit and make
+everyone could read.
+Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
+ Makefile | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
diff --git a/Makefile b/Makefile
-index a65b9b6..21d9828 100644
+index 3bf5929..1221ee4 100644
--- a/Makefile
+++ b/Makefile
-@@ -66,7 +66,7 @@ systemdinstall: genericinstall
+@@ -72,7 +72,7 @@ systemdinstall: genericinstall
chmod 0644 $(DESTDIR)$(SYSDPATH)/atopacct.service
cp atop.cronsystemd $(DESTDIR)$(CRNPATH)/atop
cp atop-pm.sh $(DESTDIR)$(PMPATHD)
@@ -18,7 +25,7 @@ index a65b9b6..21d9828 100644
#
# only when making on target system:
#
-@@ -91,11 +91,11 @@ sysvinstall: genericinstall
+@@ -97,11 +97,11 @@ sysvinstall: genericinstall
#
if [ -d $(DESTDIR)$(PMPATH1) ]; \
then cp 45atoppm $(DESTDIR)$(PMPATH1); \
@@ -32,7 +39,7 @@ index a65b9b6..21d9828 100644
fi
#
#
-@@ -139,7 +139,7 @@ genericinstall: atop atopacctd
+@@ -145,7 +145,7 @@ genericinstall: atop atopacctd atopconvert
#
cp atop $(DESTDIR)$(BINPATH)/atop
chown root $(DESTDIR)$(BINPATH)/atop
@@ -41,12 +48,12 @@ index a65b9b6..21d9828 100644
ln -sf atop $(DESTDIR)$(BINPATH)/atopsar
cp atopacctd $(DESTDIR)$(SBINPATH)/atopacctd
chown root $(DESTDIR)$(SBINPATH)/atopacctd
-@@ -147,7 +147,7 @@ genericinstall: atop atopacctd
- cp atop $(DESTDIR)$(BINPATH)/atop-$(VERS)
- ln -sf atop-$(VERS) $(DESTDIR)$(BINPATH)/atopsar-$(VERS)
+@@ -159,7 +159,7 @@ genericinstall: atop atopacctd atopconvert
+ chown root $(DESTDIR)$(BINPATH)/atopconvert
+ chmod 0711 $(DESTDIR)$(BINPATH)/atopconvert
cp atop.daily $(DESTDIR)$(SCRPATH)
- chmod 0711 $(DESTDIR)$(SCRPATH)/atop.daily
+ chmod 0755 $(DESTDIR)$(SCRPATH)/atop.daily
cp man/atop.1 $(DESTDIR)$(MAN1PATH)
cp man/atopsar.1 $(DESTDIR)$(MAN1PATH)
- cp man/atoprc.5 $(DESTDIR)$(MAN5PATH)
+ cp man/atopconvert.1 $(DESTDIR)$(MAN1PATH)
diff --git a/meta-oe/recipes-support/atop/atop/remove-bashisms.patch b/meta-oe/recipes-support/atop/atop/remove-bashisms.patch
deleted file mode 100644
index f1fcbfed76..0000000000
--- a/meta-oe/recipes-support/atop/atop/remove-bashisms.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-diff --git a/atop-pm.sh b/atop-pm.sh
-index 7f41a86..3ff4ab5 100755
---- a/atop-pm.sh
-+++ b/atop-pm.sh
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- case "$1" in
- pre) /usr/bin/systemctl stop atop
-diff --git a/atop.daily b/atop.daily
-index 24d33bd..f29bd94 100755
---- a/atop.daily
-+++ b/atop.daily
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- CURDAY=`date +%Y%m%d`
- LOGPATH=/var/log/atop
-@@ -16,7 +16,7 @@ then
-
- while ps -p `cat $PIDFILE` > /dev/null
- do
-- let CNT+=1
-+ CNT=$((CNT+1))
-
- if [ $CNT -gt 5 ]
- then
diff --git a/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch b/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch
index 5994d3e08e..1145a24934 100644
--- a/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch
+++ b/meta-oe/recipes-support/atop/atop/sysvinit-implement-status.patch
@@ -1,11 +1,18 @@
+From bdd068873ed0979027c21773939bdb18046a8756 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Wed, 6 Feb 2019 13:58:04 +0000
+Subject: [PATCH] sysvinit: Implement status
+
Implement the sub-command status.
Upstream-Status: Pending
-
Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
+ atop.init | 3 +++
+ 1 file changed, 3 insertions(+)
+
diff --git a/atop.init b/atop.init
-index 108bdc5..9f89fad 100755
+index e6e11dc..e7b226d 100755
--- a/atop.init
+++ b/atop.init
@@ -18,6 +18,8 @@
diff --git a/meta-oe/recipes-support/atop/atop_2.2.3.bb b/meta-oe/recipes-support/atop/atop_2.2.3.bb
deleted file mode 100644
index 1ab9e7cf9e..0000000000
--- a/meta-oe/recipes-support/atop/atop_2.2.3.bb
+++ /dev/null
@@ -1,63 +0,0 @@
-SUMMARY = "Monitor for system resources and process activity"
-DESCRIPTION = "Atop is an ASCII full-screen performance monitor for Linux that \
-is capable of reporting the activity of all processes (even if processes have \
-finished during the interval), daily logging of system and process activity for \
-long-term analysis, highlighting overloaded system resources by using colors, \
-etc. At regular intervals, it shows system-level activity related to the CPU, \
-memory, swap, disks (including LVM) and network layers, and for every process \
-(and thread) it shows e.g. the CPU utilization, memory growth, disk \
-utilization, priority, username, state, and exit code."
-HOMEPAGE = "http://www.atoptool.nl"
-SECTION = "console/utils"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-
-DEPENDS = "ncurses zlib"
-
-ATOP_VER = "${@'-'.join(d.getVar('PV').rsplit('.', 1))}"
-
-SRC_URI = " \
- http://www.atoptool.nl/download/${BPN}-${ATOP_VER}.tar.gz \
- ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
- file://0001-include-missing-header-files.patch \
- file://remove-bashisms.patch \
- file://fix-permissions.patch \
- file://sysvinit-implement-status.patch \
-"
-
-SRC_URI[md5sum] = "034dc1544f2ec4e4d2c739d320dc326d"
-SRC_URI[sha256sum] = "c785b8a2355be28b3de6b58a8ea4c4fcab8fadeaa57a99afeb03c66fac8e055d"
-
-S = "${WORKDIR}/${BPN}-${ATOP_VER}"
-
-do_compile() {
- oe_runmake all
-}
-
-do_install() {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- make DESTDIR=${D} VERS=${ATOP_VER} SYSDPATH=${systemd_system_unitdir} \
- PMPATHD=${systemd_unitdir}/system-sleep systemdinstall
- install -d ${D}${sysconfdir}/tmpfiles.d
- install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
- rm -f ${D}${systemd_system_unitdir}/atopacct.service
- else
- make DESTDIR=${D} VERS=${ATOP_VER} sysvinstall
- install -d ${D}${sysconfdir}/default/volatiles
- install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop
- rm -f ${D}${sysconfdir}/init.d/atopacct
- fi
-
- # remove atopacct related files
- rm -rf ${D}${sbindir} ${D}${mandir}/man8
-}
-
-inherit systemd
-
-SYSTEMD_SERVICE_${PN} = "atop.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-FILES_${PN} += "${systemd_unitdir}/system-sleep"
-
-RDEPENDS_${PN} = "procps"
diff --git a/meta-oe/recipes-support/atop/atop_2.4.0.bb b/meta-oe/recipes-support/atop/atop_2.4.0.bb
new file mode 100644
index 0000000000..bb1f53624a
--- /dev/null
+++ b/meta-oe/recipes-support/atop/atop_2.4.0.bb
@@ -0,0 +1,62 @@
+SUMMARY = "Monitor for system resources and process activity"
+DESCRIPTION = "Atop is an ASCII full-screen performance monitor for Linux that \
+is capable of reporting the activity of all processes (even if processes have \
+finished during the interval), daily logging of system and process activity for \
+long-term analysis, highlighting overloaded system resources by using colors, \
+etc. At regular intervals, it shows system-level activity related to the CPU, \
+memory, swap, disks (including LVM) and network layers, and for every process \
+(and thread) it shows e.g. the CPU utilization, memory growth, disk \
+utilization, priority, username, state, and exit code."
+HOMEPAGE = "http://www.atoptool.nl"
+SECTION = "console/utils"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+DEPENDS = "ncurses zlib"
+
+SRC_URI = "http://www.atoptool.nl/download/${BP}.tar.gz \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'file://volatiles.atop.conf', 'file://volatiles.99_atop', d)} \
+ file://fix-permissions.patch \
+ file://sysvinit-implement-status.patch \
+ file://0001-atop.daily-atop.init-atop-pm.sh-Avoid-using-bash.patch \
+ "
+SRC_URI[md5sum] = "1077da884ed94f2bc3c81ac3ab970436"
+SRC_URI[sha256sum] = "be1c010a77086b7d98376fce96514afcd73c3f20a8d1fe01520899ff69a73d69"
+
+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
+}
+
+do_install() {
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
+ make DESTDIR=${D} VERS=${PV} SYSDPATH=${systemd_system_unitdir} \
+ PMPATHD=${systemd_unitdir}/system-sleep systemdinstall
+ install -d ${D}${sysconfdir}/tmpfiles.d
+ install -m 644 ${WORKDIR}/volatiles.atop.conf ${D}${sysconfdir}/tmpfiles.d/atop.conf
+ rm -f ${D}${systemd_system_unitdir}/atopacct.service
+ else
+ make DESTDIR=${D} VERS=${PV} sysvinstall
+ install -d ${D}${sysconfdir}/default/volatiles
+ install -m 644 ${WORKDIR}/volatiles.99_atop ${D}${sysconfdir}/default/volatiles/99_atop
+ rm -f ${D}${sysconfdir}/init.d/atopacct
+ fi
+
+ # /var/log/atop will be created in runtime
+ rm -rf ${D}${localstatedir}/log
+ rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
+ # remove atopacct related files
+ rm -rf ${D}${sbindir} ${D}${mandir}/man8
+}
+
+inherit systemd
+
+SYSTEMD_SERVICE:${PN} = "atop.service atopgpu.service"
+SYSTEMD_AUTO_ENABLE = "disable"
+
+FILES:${PN} += "${systemd_unitdir}/system-sleep"
+
+RDEPENDS:${PN} = "procps"
diff --git a/meta-oe/recipes-support/augeas/augeas.inc b/meta-oe/recipes-support/augeas/augeas.inc
deleted file mode 100644
index 185abae18d..0000000000
--- a/meta-oe/recipes-support/augeas/augeas.inc
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Augeas configuration API"
-HOMEPAGE = "http://augeas.net/"
-BUGTRACKER = "https://fedorahosted.org/augeas/report/1"
-
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff"
-
-SRC_URI = "http://download.augeas.net/${BP}.tar.gz \
- file://add-missing-argz-conditional.patch \
- file://sepbuildfix.patch \
- file://0001-Unset-need_charset_alias-when-building-for-musl.patch \
- "
-
-DEPENDS = "readline libxml2"
-
-inherit autotools pkgconfig
-
-PACKAGES =+ "${PN}-lenses lib${BPN}"
-
-FILES_${PN}-lenses = "${datadir}/augeas/lenses"
-FILES_lib${BPN} = "${libdir}/lib*${SOLIBS}"
-
-RDEPENDS_lib${BPN} += "${PN}-lenses"
-RRECOMMENDS_lib${BPN} += "${PN}"
-
-LEAD_SONAME = "libaugeas.so"
-
-do_install_append() {
- rm -fr ${D}${datadir}/vim
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libselinux] = "--with-selinux,--without-selinux,libselinux"
diff --git a/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch b/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
deleted file mode 100644
index 0ba7c76a36..0000000000
--- a/meta-oe/recipes-support/augeas/augeas/0001-Unset-need_charset_alias-when-building-for-musl.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 32b15332e2130a54b25f4fbf6f58b407b851dd8f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 13 Apr 2015 17:02:13 -0700
-Subject: [PATCH] Unset need_charset_alias when building for musl
-
-localcharset uses ac_cv_gnu_library_2_1 from glibc21.m4
-which actually shoudl be fixed in gnulib and then all downstream
-projects will get it eventually. For now we apply the fix to
-coreutils
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- gnulib/lib/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gnulib/lib/Makefile.am b/gnulib/lib/Makefile.am
-index 963b22d..75788d2 100644
---- a/gnulib/lib/Makefile.am
-+++ b/gnulib/lib/Makefile.am
-@@ -463,7 +463,7 @@ install-exec-localcharset: all-local
- case '$(host_os)' in \
- darwin[56]*) \
- need_charset_alias=true ;; \
-- darwin* | cygwin* | mingw* | pw32* | cegcc*) \
-+ darwin* | cygwin* | mingw* | pw32* | cegcc* | linux-musl*) \
- need_charset_alias=false ;; \
- *) \
- need_charset_alias=true ;; \
diff --git a/meta-oe/recipes-support/augeas/augeas/0001-src-internal-Use-__GLIBC__-to-check-for-GNU-extentio.patch b/meta-oe/recipes-support/augeas/augeas/0001-src-internal-Use-__GLIBC__-to-check-for-GNU-extentio.patch
new file mode 100644
index 0000000000..9424be2aa6
--- /dev/null
+++ b/meta-oe/recipes-support/augeas/augeas/0001-src-internal-Use-__GLIBC__-to-check-for-GNU-extentio.patch
@@ -0,0 +1,34 @@
+From e5ccf769c2dc7283b56a597fffdb5dc1558e3ce8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 3 Sep 2022 01:23:28 -0700
+Subject: [PATCH] src/internal: Use __GLIBC__ to check for GNU extention
+ implementation
+
+__USE_GNU is defined by _GNU_SOURCE and configure explicitly sets this
+macro and it does have meaning on musl too, where it may have some level
+of GNU compatibility but strerror_r is not one of them. Therefore we
+have to check for libc implementation for this to be sure.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/internal.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/internal.c b/src/internal.c
+index ef83b71..fb326fa 100644
+--- a/src/internal.c
++++ b/src/internal.c
+@@ -431,7 +431,7 @@ char *cleanpath(char *path) {
+
+ const char *xstrerror(int errnum, char *buf, size_t len) {
+ #ifdef HAVE_STRERROR_R
+-# ifdef __USE_GNU
++# ifdef __GLIBC__
+ /* Annoying linux specific API contract */
+ return strerror_r(errnum, buf, len);
+ # else
+--
+2.37.3
+
diff --git a/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch b/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch
deleted file mode 100644
index 368bb41764..0000000000
--- a/meta-oe/recipes-support/augeas/augeas/add-missing-argz-conditional.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 9a6e6374da7d7056db0950f0f7d6b8b905009775 Mon Sep 17 00:00:00 2001
-From: Constantin Musca <constantinx.musca@intel.com>
-Date: Fri, 15 Jul 2016 10:04:48 +0300
-Subject: [PATCH] Add missing GL_GENERATE_ARGZ_H conditional
-
-- GL_GENERATE_ARGZ_H is used in gnulib/lib/Makefile.am
-
-Upstream-Status: Pending
-Signed-off-by: Constantin Musca <constantinx.musca@intel.com>
-
----
- configure.ac | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index 72b6984..fb9653e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -55,6 +55,8 @@ AC_ARG_WITH([failmalloc],
-
- AM_CONDITIONAL([WITH_FAILMALLOC], [test x$with_failmalloc != xno])
-
-+AM_CONDITIONAL([GL_GENERATE_ARGZ_H], [test -n "$ARGZ_H"])
-+
- dnl --enable-debug=(yes|no)
- AC_ARG_ENABLE([debug],
- [AC_HELP_STRING([--enable-debug=no/yes],
diff --git a/meta-oe/recipes-support/augeas/augeas_1.12.0.bb b/meta-oe/recipes-support/augeas/augeas_1.12.0.bb
new file mode 100644
index 0000000000..2c6d4cdc88
--- /dev/null
+++ b/meta-oe/recipes-support/augeas/augeas_1.12.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Augeas configuration API"
+HOMEPAGE = "http://augeas.net/"
+BUGTRACKER = "https://fedorahosted.org/augeas/report/1"
+
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bbb461211a33b134d42ed5ee802b37ff"
+
+SRC_URI = "http://download.augeas.net/${BP}.tar.gz \
+ file://sepbuildfix.patch \
+ file://0001-src-internal-Use-__GLIBC__-to-check-for-GNU-extentio.patch \
+ "
+SRC_URI[md5sum] = "74f1c7b8550f4e728486091f6b907175"
+SRC_URI[sha256sum] = "321942c9cc32185e2e9cb72d0a70eea106635b50269075aca6714e3ec282cb87"
+
+DEPENDS = "readline libxml2"
+
+inherit autotools pkgconfig
+
+PACKAGES =+ "${PN}-lenses lib${BPN}"
+
+FILES:${PN}-lenses = "${datadir}/augeas/lenses"
+FILES:lib${BPN} = "${libdir}/lib*${SOLIBS}"
+
+RDEPENDS:lib${BPN} += "${PN}-lenses"
+RRECOMMENDS:lib${BPN} += "${PN}"
+
+LEAD_SONAME = "libaugeas.so"
+
+do_install:append() {
+ rm -fr ${D}${datadir}/vim
+}
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
+PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux"
+
+EXTRA_AUTORECONF += "-I ${S}/gnulib/m4"
diff --git a/meta-oe/recipes-support/augeas/augeas_1.5.0.bb b/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
deleted file mode 100644
index c4f62e7470..0000000000
--- a/meta-oe/recipes-support/augeas/augeas_1.5.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require augeas.inc
-
-SRC_URI[md5sum] = "01190e455c513124a2dae29a1182c113"
-SRC_URI[sha256sum] = "223bb6e6fe3e9e92277dafd5d34e623733eb969a72a382998d204feab253f73f"
diff --git a/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch b/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch
deleted file mode 100644
index 01235d8ef3..0000000000
--- a/meta-oe/recipes-support/avro/avro-c/0001-avro-c-Fix-build-with-clang-compiler.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 518bb8ccfb3f3fc143fbd571782f3e40573d01b5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 10 Apr 2017 09:15:04 -0700
-Subject: [PATCH] avro-c: Fix build with clang compiler
-
-Clang advertizes itself to be compatible with gcc 4.2.1
-while that was true several years ago, it now supports
-a lot more newer features, the test to just check gcc
-version should be supplanted with clang check as well
-so atomic support in clang can be asserted as well
-
-Fixes
-
-lang/c/src/avro/refcount.h:301:2: error: "No atomic implementation!"
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lang/c/src/avro/refcount.h | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/lang/c/src/avro/refcount.h b/lang/c/src/avro/refcount.h
-index 69afa4fc..d76ba057 100644
---- a/lang/c/src/avro/refcount.h
-+++ b/lang/c/src/avro/refcount.h
-@@ -118,7 +118,8 @@ avro_refcount_dec(volatile int *refcount)
- * GCC intrinsics
- */
-
--#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500
-+#elif (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) > 40500 \
-+|| defined(__clang__)
-
- static inline void
- avro_refcount_set(volatile int *refcount, int value)
---
-2.12.2
-
diff --git a/meta-oe/recipes-support/avro/avro-c_1.11.2.bb b/meta-oe/recipes-support/avro/avro-c_1.11.2.bb
new file mode 100644
index 0000000000..9b6a52e2e2
--- /dev/null
+++ b/meta-oe/recipes-support/avro/avro-c_1.11.2.bb
@@ -0,0 +1,17 @@
+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 = "44d1c4f221ccc4571a4b4b9edb023ed1e89354b7"
+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.8.1.bb b/meta-oe/recipes-support/avro/avro-c_1.8.1.bb
deleted file mode 100644
index 276fe2b5ae..0000000000
--- a/meta-oe/recipes-support/avro/avro-c_1.8.1.bb
+++ /dev/null
@@ -1,20 +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=73bdf70f268f0b3b9c5a83dd7a6f3324"
-
-DEPENDS = "jansson zlib xz"
-PV .= "+git${SRCPV}"
-
-SRCREV = "4b3677c32b879e0e7f717eb95f9135ac654da760"
-SRC_URI = "git://github.com/apache/avro \
- file://0001-avro-c-Fix-build-with-clang-compiler.patch;patchdir=../../ \
-"
-
-S = "${WORKDIR}/git/lang/c"
-
-LDFLAGS_append_libc-uclibc = " -lm"
-
-inherit cmake
diff --git a/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch b/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch
deleted file mode 100644
index 8ef774f0f2..0000000000
--- a/meta-oe/recipes-support/bdwgc/bdwgc/0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-configure.ac: add check for NO_GETCONTEXT definition
-
-Signed-off-by: Samuel Martin <s.martin49@gmail.com>
-[yann.morin.1998@free.fr: add a comment, change variable name, use
- AS_IF, remove debug traces, use AC_CHECK_FUNCS (as suggested by
- Thomas)]
-Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
-Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-
----
-Upstream-Status: Pending
- configure.ac | 6 ++++++
- 1 file changed, 6 insertions(+)
-
---- bdwgc-7.2f.orig/configure.ac 2014-06-01 19:00:47.000000000 +0200
-+++ bdwgc-7.2f/configure.ac 2014-12-23 14:13:11.585716713 +0100
-@@ -365,6 +365,12 @@
- AC_MSG_RESULT($ac_cv_fno_strict_aliasing)
- fi
-
-+# Check for getcontext (uClibc can be configured without it, for example)
-+AC_CHECK_FUNCS([getcontext])
-+AS_IF([test "$ac_cv_func_getcontext" = "no"],
-+ [CFLAGS="$CFLAGS -DNO_GETCONTEXT"
-+ CPPFLAGS="$CPPFLAGS -DNO_GETCONTEXT"])
-+
- case "$host" in
- # While IRIX 6 has libdl for the O32 and N32 ABIs, it's missing for N64
- # and unnecessary everywhere.
diff --git a/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch b/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
deleted file mode 100644
index 4a18496650..0000000000
--- a/meta-oe/recipes-support/bdwgc/bdwgc/musl_header_fix.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Add missing header to avoid:
-
-| 1472659610.016355: ../git/pthread_stop_world.c: In function 'GC_brief_async_signal_safe_sleep':
-| 1472659610.0540252: ../git/pthread_stop_world.c:397:22: error: storage size of 'tv' isn't known
-| 1472659610.0540252: struct timeval tv;
-| 1472659610.0540252: ^~
-| 1472659610.054099: ../git/pthread_stop_world.c:397:22: warning: unused variable 'tv' [-Wunused-variable]
-| 1472659610.054099: struct timeval tv;
-| 1472659610.054099: ^~
-| 1472659610.054099: Makefile:1530: recipe for target 'pthread_stop_world.lo' failed
-
-in musl builds.
-
-Upstream-Status: Pending
-
-Index: git/pthread_stop_world.c
-===================================================================
---- git.orig/pthread_stop_world.c
-+++ git/pthread_stop_world.c
-@@ -45,6 +45,7 @@
- #include <semaphore.h>
- #include <errno.h>
- #include <unistd.h>
-+#include <sys/time.h>
- #include "atomic_ops.h"
-
- /* It's safe to call original pthread_sigmask() here. */
diff --git a/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb b/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb
deleted file mode 100644
index dcb68f0282..0000000000
--- a/meta-oe/recipes-support/bdwgc/bdwgc_7.6.0.bb
+++ /dev/null
@@ -1,42 +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=4f81f24ec69726c312487c2ac740e9e3"
-
-SRCREV = "8ac1d84a40eb7a431fec1b8097e3f24b48fb23fa"
-SRC_URI = "git://github.com/ivmai/bdwgc.git \
- file://0001-configure.ac-add-check-for-NO_GETCONTEXT-definition.patch \
- file://musl_header_fix.patch \
- "
-
-FILES_${PN}-doc = "${datadir}"
-
-S = "${WORKDIR}/git"
-
-ARM_INSTRUCTION_SET = "arm"
-
-inherit autotools pkgconfig
-
-# by default use external libatomic-ops
-PACKAGECONFIG ??= "libatomic-ops"
-PACKAGECONFIG[libatomic-ops] = "--with-libatomic-ops=yes,--with-libatomic-ops=no,libatomic-ops"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/bdwgc/bdwgc_8.2.4.bb b/meta-oe/recipes-support/bdwgc/bdwgc_8.2.4.bb
new file mode 100644
index 0000000000..f02c457284
--- /dev/null
+++ b/meta-oe/recipes-support/bdwgc/bdwgc_8.2.4.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 = "d1ff06cc503a74dca0150d5e988f2c93158b0cdf"
+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_git.bb b/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
new file mode 100644
index 0000000000..a06122a644
--- /dev/null
+++ b/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
@@ -0,0 +1,28 @@
+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.8"
+
+SRC_URI = "git://github.com/boost-ext/sml.git;protocol=https;branch=master"
+SRCREV = "8eb63a8b77bb662075dd36b316e53f75e605fd0f"
+
+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/c-ares/c-ares_1.19.1.bb b/meta-oe/recipes-support/c-ares/c-ares_1.19.1.bb
new file mode 100644
index 0000000000..1440d72711
--- /dev/null
+++ b/meta-oe/recipes-support/c-ares/c-ares_1.19.1.bb
@@ -0,0 +1,21 @@
+# 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 = "6360e96b5cf8e5980c887ce58ef727e53d77243a"
+
+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-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 da1a2a36f1..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
@@ -2,16 +2,21 @@ SUMMARY = "Frame handles simultaneous touches"
HOMEPAGE = "https://launchpad.net/frame"
-LICENSE = "GPLv3 & LGPLv3"
+LICENSE = "GPL-3.0-only & LGPL-3.0-only"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \
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"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/frame/trunk"
+
SRC_URI[md5sum] = "02baa941091c5d198cd1623b3ad36e68"
SRC_URI[sha256sum] = "cfb9ab52cdccd926f1822a457264d0014c7eb9f4600a72626063dd073b26256f"
@@ -19,6 +24,6 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
PACKAGECONFIG[x11] = "--enable-x11, --disable-x11, libxi xext virtual/xserver"
PACKAGE_BEFORE_PN += "${PN}-test"
-FILES_${PN}-test = "${bindir}/frame-test*"
+FILES:${PN}-test = "${bindir}/frame-test*"
SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
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/0001-provide-function-declaration-with-prototypes.patch b/meta-oe/recipes-support/canonical-multitouch/geis/0001-provide-function-declaration-with-prototypes.patch
new file mode 100644
index 0000000000..ddad1404f9
--- /dev/null
+++ b/meta-oe/recipes-support/canonical-multitouch/geis/0001-provide-function-declaration-with-prototypes.patch
@@ -0,0 +1,690 @@
+From 05fe9751dfb370b0fb726e95bc36674468116db4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 2 Sep 2022 16:57:51 -0700
+Subject: [PATCH] provide function declaration with prototypes
+
+Fixes build with clang-15+
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libgeis/backend/grail/geis_grail_window_grab.c | 2 +-
+ libgeis/backend/grail/geis_ugsubscription_store.c | 2 +-
+ libgeis/backend/grail/geis_ugsubscription_store.h | 2 +-
+ libgeis/backend/test_fixture/geis_backend_test_fixture.c | 4 ++--
+ libgeis/geis.c | 2 +-
+ libgeis/geis_backend_multiplexor.c | 4 ++--
+ libgeis/geis_backend_multiplexor.h | 2 +-
+ libgeis/geis_class.c | 2 +-
+ libgeis/geis_class.h | 2 +-
+ libgeis/geis_device.c | 2 +-
+ libgeis/geis_device.h | 2 +-
+ libgeis/geis_event_queue.c | 2 +-
+ libgeis/geis_event_queue.h | 2 +-
+ libgeis/geis_filter.c | 2 +-
+ libgeis/geis_filter.h | 2 +-
+ libgeis/geis_filterable.c | 2 +-
+ libgeis/geis_filterable.h | 2 +-
+ libgeis/geis_frame.c | 2 +-
+ libgeis/geis_frame.h | 2 +-
+ libgeis/geis_group.c | 2 +-
+ libgeis/geis_group.h | 2 +-
+ libgeis/geis_region.c | 2 +-
+ libgeis/geis_region.h | 2 +-
+ libgeis/geis_touch.c | 2 +-
+ libgeis/geis_touch.h | 2 +-
+ libgeis/server/geis_dbus_client_proxy.c | 2 +-
+ libgeis/server/geis_dbus_proxy_box.c | 2 +-
+ libgeis/server/geis_dbus_proxy_box.h | 2 +-
+ libs/geis-dbus/geis_dbus_dispatcher.c | 2 +-
+ libs/geis-util/geis_logging.c | 2 +-
+ testsuite/geis1/check_gesture_attrs.c | 2 +-
+ testsuite/geis1/check_gesture_types.c | 2 +-
+ testsuite/geis1/check_instance.c | 2 +-
+ testsuite/geis1/check_subscription.c | 2 +-
+ testsuite/geis2/check_attr.c | 2 +-
+ testsuite/geis2/check_class.c | 2 +-
+ testsuite/geis2/check_config.c | 2 +-
+ testsuite/geis2/check_device.c | 2 +-
+ testsuite/geis2/check_error_codes.c | 2 +-
+ testsuite/geis2/check_event.c | 2 +-
+ testsuite/geis2/check_filter.c | 2 +-
+ testsuite/geis2/check_frame.c | 2 +-
+ testsuite/geis2/check_geis_new.c | 2 +-
+ testsuite/geis2/check_general_types.c | 2 +-
+ testsuite/geis2/check_region.c | 2 +-
+ testsuite/geis2/check_subscription.c | 2 +-
+ tools/geis-server/geis-server.c | 2 +-
+ 47 files changed, 49 insertions(+), 49 deletions(-)
+
+diff --git a/libgeis/backend/grail/geis_grail_window_grab.c b/libgeis/backend/grail/geis_grail_window_grab.c
+index 003adee..f8480ac 100644
+--- a/libgeis/backend/grail/geis_grail_window_grab.c
++++ b/libgeis/backend/grail/geis_grail_window_grab.c
+@@ -49,7 +49,7 @@ static const GeisFloat _geis_grail_window_grab_store_growth_factor = 1.7;
+
+
+ static GeisGrailWindowGrabStore
+-_window_grab_allocate()
++_window_grab_allocate(void)
+ {
+ GeisGrailWindowGrabStore wgs = malloc(sizeof(struct GeisGrailWindowGrabStore));
+ if (!wgs)
+diff --git a/libgeis/backend/grail/geis_ugsubscription_store.c b/libgeis/backend/grail/geis_ugsubscription_store.c
+index bb1f0bb..cb7e620 100644
+--- a/libgeis/backend/grail/geis_ugsubscription_store.c
++++ b/libgeis/backend/grail/geis_ugsubscription_store.c
+@@ -42,7 +42,7 @@ static const GeisFloat _geis_grail_ugsubscription_store_growth_factor = 1.7;
+ * Creates a new, empty grail subscription store.
+ */
+ GeisUGSubscriptionStore
+-geis_ugsubscription_store_new()
++geis_ugsubscription_store_new(void)
+ {
+ GeisUGSubscriptionStore store = geis_bag_new(sizeof(struct GeisUGSubscription),
+ _geis_grail_ugsubscription_store_default_size,
+diff --git a/libgeis/backend/grail/geis_ugsubscription_store.h b/libgeis/backend/grail/geis_ugsubscription_store.h
+index a93e1b6..06273ef 100644
+--- a/libgeis/backend/grail/geis_ugsubscription_store.h
++++ b/libgeis/backend/grail/geis_ugsubscription_store.h
+@@ -41,7 +41,7 @@ typedef GeisBag GeisUGSubscriptionStore;
+ * @returns a pointer to a valid store, or NULL to indicate failure.
+ */
+ GeisUGSubscriptionStore
+-geis_ugsubscription_store_new();
++geis_ugsubscription_store_new(void);
+
+ /**
+ * Destroys a grail subscription store.
+diff --git a/libgeis/backend/test_fixture/geis_backend_test_fixture.c b/libgeis/backend/test_fixture/geis_backend_test_fixture.c
+index 5912acb..099cde4 100644
+--- a/libgeis/backend/test_fixture/geis_backend_test_fixture.c
++++ b/libgeis/backend/test_fixture/geis_backend_test_fixture.c
+@@ -434,7 +434,7 @@ _token_free_subscription_pdata(GeisBackendToken gbtoken GEIS_UNUSED,
+ }
+
+ __attribute__((constructor))
+-static void _register_test_fixture()
++static void _register_test_fixture(void)
+ {
+ geis_register_backend(GEIS_INIT_MOCK_BACKEND,
+ sizeof(struct GeisBackendTestFixture),
+@@ -444,6 +444,6 @@ static void _register_test_fixture()
+
+ /* A dummy routine to force linkage of this module without dlopening it */
+ void
+-geis_include_backend_test_fixture()
++geis_include_backend_test_fixture(void)
+ {
+ }
+diff --git a/libgeis/geis.c b/libgeis/geis.c
+index 4290d19..3f7bd12 100644
+--- a/libgeis/geis.c
++++ b/libgeis/geis.c
+@@ -402,7 +402,7 @@ geis_filterable_attribute_foreach(Geis geis,
+ * Creates a new empty Geis API instance.
+ */
+ static Geis
+-geis_new_empty()
++geis_new_empty(void)
+ {
+ geis_error_clear(NULL);
+ Geis geis = calloc(1, sizeof(struct _Geis));
+diff --git a/libgeis/geis_backend_multiplexor.c b/libgeis/geis_backend_multiplexor.c
+index 3f80080..0f76198 100644
+--- a/libgeis/geis_backend_multiplexor.c
++++ b/libgeis/geis_backend_multiplexor.c
+@@ -60,7 +60,7 @@ struct _GeisBackendMultiplexor
+ * Creates a new container for callback info.
+ */
+ static CallbackInfoBag
+-_callback_info_bag_new()
++_callback_info_bag_new(void)
+ {
+ CallbackInfoBag cbib = calloc(1, sizeof(struct CallbackInfoBag));
+ if (!cbib)
+@@ -209,7 +209,7 @@ _callback_info_bag_release(CallbackInfoBag cbib, int fd)
+ * Creates a new backend multiplexor.
+ */
+ GeisBackendMultiplexor
+-geis_backend_multiplexor_new()
++geis_backend_multiplexor_new(void)
+ {
+ GeisBackendMultiplexor mx = calloc(1, sizeof(struct _GeisBackendMultiplexor));
+ if (!mx)
+diff --git a/libgeis/geis_backend_multiplexor.h b/libgeis/geis_backend_multiplexor.h
+index ff4c318..8e7102e 100644
+--- a/libgeis/geis_backend_multiplexor.h
++++ b/libgeis/geis_backend_multiplexor.h
+@@ -74,7 +74,7 @@ typedef void (*GeisBackendFdEventCallback)(int fd,
+ /**
+ * Constructs a new back end multiplexor.
+ */
+-GeisBackendMultiplexor geis_backend_multiplexor_new();
++GeisBackendMultiplexor geis_backend_multiplexor_new(void);
+
+ /**
+ * A reasonable default value for the max_events_per_pump parameter to
+diff --git a/libgeis/geis_class.c b/libgeis/geis_class.c
+index e889e4b..5c26a87 100644
+--- a/libgeis/geis_class.c
++++ b/libgeis/geis_class.c
+@@ -46,7 +46,7 @@ static const int gesture_class_bag_growth_constant = 2;
+ * Creates a new class bag,
+ */
+ GeisGestureClassBag
+-geis_gesture_class_bag_new()
++geis_gesture_class_bag_new(void)
+ {
+ GeisGestureClassBag bag = calloc(1, sizeof(struct _GeisGestureClassBag));
+ if (!bag)
+diff --git a/libgeis/geis_class.h b/libgeis/geis_class.h
+index 1d60998..724c353 100644
+--- a/libgeis/geis_class.h
++++ b/libgeis/geis_class.h
+@@ -35,7 +35,7 @@ typedef struct _GeisGestureClassBag *GeisGestureClassBag;
+ /**
+ * Creates a new class bag,
+ */
+-GeisGestureClassBag geis_gesture_class_bag_new();
++GeisGestureClassBag geis_gesture_class_bag_new(void);
+
+ /**
+ * Destroys a gesture class bag.
+diff --git a/libgeis/geis_device.c b/libgeis/geis_device.c
+index 1f61fc1..ff3216b 100644
+--- a/libgeis/geis_device.c
++++ b/libgeis/geis_device.c
+@@ -44,7 +44,7 @@ static const int device_bag_growth_constant = 2;
+
+
+ GeisDeviceBag
+-geis_device_bag_new()
++geis_device_bag_new(void)
+ {
+ GeisDeviceBag bag = calloc(1, sizeof(struct _GeisDeviceBag));
+ if (!bag)
+diff --git a/libgeis/geis_device.h b/libgeis/geis_device.h
+index c411e54..707943b 100644
+--- a/libgeis/geis_device.h
++++ b/libgeis/geis_device.h
+@@ -35,7 +35,7 @@ typedef struct _GeisDeviceBag *GeisDeviceBag;
+ /**
+ * Creates a new device bag,
+ */
+-GeisDeviceBag geis_device_bag_new();
++GeisDeviceBag geis_device_bag_new(void);
+
+ /**
+ * Destroys a device bag.
+diff --git a/libgeis/geis_event_queue.c b/libgeis/geis_event_queue.c
+index 0b7d0fb..f357683 100644
+--- a/libgeis/geis_event_queue.c
++++ b/libgeis/geis_event_queue.c
+@@ -50,7 +50,7 @@ struct _GeisEventQueue
+ * Creates a new Geis Event queue.
+ */
+ GeisEventQueue
+-geis_event_queue_new()
++geis_event_queue_new(void)
+ {
+ GeisEventQueue queue = calloc(1, sizeof(struct _GeisEventQueue));
+ if (!queue)
+diff --git a/libgeis/geis_event_queue.h b/libgeis/geis_event_queue.h
+index e4c186d..5f3da1d 100644
+--- a/libgeis/geis_event_queue.h
++++ b/libgeis/geis_event_queue.h
+@@ -41,7 +41,7 @@ typedef struct _GeisEventQueue *GeisEventQueue;
+ /**
+ * Creates a new Geis Event queue.
+ */
+-GeisEventQueue geis_event_queue_new();
++GeisEventQueue geis_event_queue_new(void);
+
+ /**
+ * Destroys a Geis Event queue.
+diff --git a/libgeis/geis_filter.c b/libgeis/geis_filter.c
+index 4fe5da6..83d65a8 100644
+--- a/libgeis/geis_filter.c
++++ b/libgeis/geis_filter.c
+@@ -57,7 +57,7 @@ static GeisSize s_filter_oid = 0;
+ * Creates a new filter bag,
+ */
+ GeisFilterBag
+-geis_filter_bag_new()
++geis_filter_bag_new(void)
+ {
+ GeisFilterBag bag = calloc(1, sizeof(struct _GeisFilterBag));
+ if (!bag)
+diff --git a/libgeis/geis_filter.h b/libgeis/geis_filter.h
+index 7b613bf..f825bb7 100644
+--- a/libgeis/geis_filter.h
++++ b/libgeis/geis_filter.h
+@@ -42,7 +42,7 @@ typedef GeisFilter *GeisFilterIterator;
+ /**
+ * Creates a new filter bag,
+ */
+-GeisFilterBag geis_filter_bag_new();
++GeisFilterBag geis_filter_bag_new(void);
+
+ /**
+ * Destroys a filter bag.
+diff --git a/libgeis/geis_filterable.c b/libgeis/geis_filterable.c
+index 57bd4ac..5fb4b0c 100644
+--- a/libgeis/geis_filterable.c
++++ b/libgeis/geis_filterable.c
+@@ -40,7 +40,7 @@ struct FilterableAttributeBag
+ * Constructs a new filterable attribute bag.
+ */
+ FilterableAttributeBag
+-geis_filterable_attribute_bag_new()
++geis_filterable_attribute_bag_new(void)
+ {
+ FilterableAttributeBag bag = calloc(1, sizeof(struct FilterableAttributeBag));
+ if (!bag)
+diff --git a/libgeis/geis_filterable.h b/libgeis/geis_filterable.h
+index 6d400fc..63c563d 100644
+--- a/libgeis/geis_filterable.h
++++ b/libgeis/geis_filterable.h
+@@ -86,7 +86,7 @@ geis_filterable_attribute_init(GeisFilterableAttribute fa,
+ * Constructs a new filterable attribute bag.
+ */
+ FilterableAttributeBag
+-geis_filterable_attribute_bag_new();
++geis_filterable_attribute_bag_new(void);
+
+ /**
+ * Destroys a filterable attribute bag.
+diff --git a/libgeis/geis_frame.c b/libgeis/geis_frame.c
+index ebe11a1..068d9aa 100644
+--- a/libgeis/geis_frame.c
++++ b/libgeis/geis_frame.c
+@@ -57,7 +57,7 @@ struct _GeisFrameSet
+ * Creates a new, empty frame set.
+ */
+ GeisFrameSet
+-geis_frameset_new()
++geis_frameset_new(void)
+ {
+ GeisFrameSet frameset = calloc(1, sizeof(struct _GeisFrameSet));
+ if (!frameset)
+diff --git a/libgeis/geis_frame.h b/libgeis/geis_frame.h
+index e0d1eb6..4a4b0ba 100644
+--- a/libgeis/geis_frame.h
++++ b/libgeis/geis_frame.h
+@@ -32,7 +32,7 @@ typedef struct _GeisFrameSet *GeisFrameSet;
+ /**
+ * Creates a new, empty frame set.
+ */
+-GeisFrameSet geis_frameset_new();
++GeisFrameSet geis_frameset_new(void);
+
+ /**
+ * Destroys a frame set and all framees contained in it.
+diff --git a/libgeis/geis_group.c b/libgeis/geis_group.c
+index 0829bd4..4c51a39 100644
+--- a/libgeis/geis_group.c
++++ b/libgeis/geis_group.c
+@@ -42,7 +42,7 @@ struct _GeisGroupSet
+ * Creates a new, empty group set.
+ */
+ GeisGroupSet
+-geis_groupset_new()
++geis_groupset_new(void)
+ {
+ GeisGroupSet groupset = calloc(1, sizeof(struct _GeisGroupSet));
+ if (!groupset)
+diff --git a/libgeis/geis_group.h b/libgeis/geis_group.h
+index 76e0efc..c44ce62 100644
+--- a/libgeis/geis_group.h
++++ b/libgeis/geis_group.h
+@@ -31,7 +31,7 @@
+ /**
+ * Creates a new, empty group set.
+ */
+-GeisGroupSet geis_groupset_new();
++GeisGroupSet geis_groupset_new(void);
+
+ /**
+ * Destroys a group set and all groups contained in it.
+diff --git a/libgeis/geis_region.c b/libgeis/geis_region.c
+index fc8cc1e..18181cb 100644
+--- a/libgeis/geis_region.c
++++ b/libgeis/geis_region.c
+@@ -52,7 +52,7 @@ static const int region_bag_growth_constant = 2;
+ * Constructs a region bag.
+ */
+ GeisRegionBag
+-geis_region_bag_new()
++geis_region_bag_new(void)
+ {
+ GeisRegionBag bag = calloc(1, sizeof(struct _GeisRegionBag));
+ if (!bag)
+diff --git a/libgeis/geis_region.h b/libgeis/geis_region.h
+index 53a52b8..18d908f 100644
+--- a/libgeis/geis_region.h
++++ b/libgeis/geis_region.h
+@@ -49,7 +49,7 @@ typedef struct _GeisRegionBag *GeisRegionBag;
+ /**
+ * Creates a new region bag.
+ */
+-GeisRegionBag geis_region_bag_new();
++GeisRegionBag geis_region_bag_new(void);
+
+ /**
+ * Destroys a region bag.
+diff --git a/libgeis/geis_touch.c b/libgeis/geis_touch.c
+index 74d1b3e..be0f1a7 100644
+--- a/libgeis/geis_touch.c
++++ b/libgeis/geis_touch.c
+@@ -43,7 +43,7 @@ struct _GeisTouchSet
+ * Creates a new, empty touch set.
+ */
+ GeisTouchSet
+-geis_touchset_new()
++geis_touchset_new(void)
+ {
+ GeisTouchSet touchset = calloc(1, sizeof(struct _GeisTouchSet));
+ if (!touchset)
+diff --git a/libgeis/geis_touch.h b/libgeis/geis_touch.h
+index 62af610..b64c755 100644
+--- a/libgeis/geis_touch.h
++++ b/libgeis/geis_touch.h
+@@ -30,7 +30,7 @@
+ /**
+ * Creates a new, empty touch set.
+ */
+-GeisTouchSet geis_touchset_new();
++GeisTouchSet geis_touchset_new(void);
+
+ /**
+ * Destroys a touch set and all touches contained in it.
+diff --git a/libgeis/server/geis_dbus_client_proxy.c b/libgeis/server/geis_dbus_client_proxy.c
+index 3f1af47..65f229b 100644
+--- a/libgeis/server/geis_dbus_client_proxy.c
++++ b/libgeis/server/geis_dbus_client_proxy.c
+@@ -52,7 +52,7 @@ struct GeisDBusClientProxy
+ * failure.
+ */
+ GeisDBusClientProxy
+-_client_proxy_allocate()
++_client_proxy_allocate(void)
+ {
+ GeisDBusClientProxy proxy = calloc(1, sizeof(struct GeisDBusClientProxy));
+ return proxy;
+diff --git a/libgeis/server/geis_dbus_proxy_box.c b/libgeis/server/geis_dbus_proxy_box.c
+index 4c7752a..f129bc3 100644
+--- a/libgeis/server/geis_dbus_proxy_box.c
++++ b/libgeis/server/geis_dbus_proxy_box.c
+@@ -49,7 +49,7 @@ struct GeisDBusProxyBox
+ * Constructs a %GeisDBusProxyBox.
+ */
+ GeisDBusProxyBox
+-geis_dbus_proxy_box_new()
++geis_dbus_proxy_box_new(void)
+ {
+ GeisDBusProxyBox box = calloc(1, sizeof(struct GeisDBusProxyBox));
+ if (!box)
+diff --git a/libgeis/server/geis_dbus_proxy_box.h b/libgeis/server/geis_dbus_proxy_box.h
+index d8a70f5..47e84b7 100644
+--- a/libgeis/server/geis_dbus_proxy_box.h
++++ b/libgeis/server/geis_dbus_proxy_box.h
+@@ -47,7 +47,7 @@ typedef struct GeisDBusProxyBoxNode *GeisDBusProxyBoxIterator;
+ * @returns a valid %GeisDBusProxyBox or NULL on failure.
+ */
+ GeisDBusProxyBox
+-geis_dbus_proxy_box_new();
++geis_dbus_proxy_box_new(void);
+
+ /**
+ * Destroys a %GeisDBusProxyBox.
+diff --git a/libs/geis-dbus/geis_dbus_dispatcher.c b/libs/geis-dbus/geis_dbus_dispatcher.c
+index 10c4134..d8a3f9d 100644
+--- a/libs/geis-dbus/geis_dbus_dispatcher.c
++++ b/libs/geis-dbus/geis_dbus_dispatcher.c
+@@ -82,7 +82,7 @@ struct GeisDBusDispatcher
+ * assumption that if you're creating a bag you're going to use it.
+ */
+ static GeisDBusWatchBag
+-_geis_dbus_watch_bag_new()
++_geis_dbus_watch_bag_new(void)
+ {
+ GeisDBusWatchBag bag = calloc(1, sizeof(struct GeisDBusWatchBag));
+ if (!bag)
+diff --git a/libs/geis-util/geis_logging.c b/libs/geis-util/geis_logging.c
+index a02077b..030a591 100644
+--- a/libs/geis-util/geis_logging.c
++++ b/libs/geis-util/geis_logging.c
+@@ -31,7 +31,7 @@ static const char *error_marker = "error";
+
+
+ static int
+-reporting_level()
++reporting_level(void)
+ {
+ char *level = getenv("GEIS_DEBUG");
+ if (level)
+diff --git a/testsuite/geis1/check_gesture_attrs.c b/testsuite/geis1/check_gesture_attrs.c
+index 2228d2f..d990c7c 100644
+--- a/testsuite/geis1/check_gesture_attrs.c
++++ b/testsuite/geis1/check_gesture_attrs.c
+@@ -169,7 +169,7 @@ END_TEST
+
+
+ Suite *
+-geis1_gesture_attrs_new()
++geis1_gesture_attrs_new(void)
+ {
+ Suite *s = suite_create("geis1_gesture_attrs");
+ TCase *test;
+diff --git a/testsuite/geis1/check_gesture_types.c b/testsuite/geis1/check_gesture_types.c
+index 3492062..980f8fb 100644
+--- a/testsuite/geis1/check_gesture_types.c
++++ b/testsuite/geis1/check_gesture_types.c
+@@ -62,7 +62,7 @@ START_TEST(gesture_types)
+ END_TEST
+
+ Suite *
+-geis1_gesture_types_new()
++geis1_gesture_types_new(void)
+ {
+ Suite *s = suite_create("geis1_gesture_types");
+ TCase *test;
+diff --git a/testsuite/geis1/check_instance.c b/testsuite/geis1/check_instance.c
+index ac897ab..584abfd 100644
+--- a/testsuite/geis1/check_instance.c
++++ b/testsuite/geis1/check_instance.c
+@@ -44,7 +44,7 @@ END_TEST
+
+
+ Suite *
+-geis1_instance_suite_new()
++geis1_instance_suite_new(void)
+ {
+ TCase *create;
+ Suite *s = suite_create("geis1_instance_suite");
+diff --git a/testsuite/geis1/check_subscription.c b/testsuite/geis1/check_subscription.c
+index 0797337..e69c332 100644
+--- a/testsuite/geis1/check_subscription.c
++++ b/testsuite/geis1/check_subscription.c
+@@ -146,7 +146,7 @@ END_TEST
+
+
+ Suite *
+-geis1_subscription_new()
++geis1_subscription_new(void)
+ {
+ Suite *s = suite_create("geis1_subscription");
+ TCase *test;
+diff --git a/testsuite/geis2/check_attr.c b/testsuite/geis2/check_attr.c
+index 9e01219..58c8ebc 100644
+--- a/testsuite/geis2/check_attr.c
++++ b/testsuite/geis2/check_attr.c
+@@ -42,7 +42,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_attr_suite_new()
++geis2_attr_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_attr");
+
+diff --git a/testsuite/geis2/check_class.c b/testsuite/geis2/check_class.c
+index ca7accd..b60d827 100644
+--- a/testsuite/geis2/check_class.c
++++ b/testsuite/geis2/check_class.c
+@@ -92,7 +92,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_gesture_class_suite_new()
++geis2_gesture_class_suite_new(void)
+ {
+ TCase *gesture_class;
+ TCase *usage;
+diff --git a/testsuite/geis2/check_config.c b/testsuite/geis2/check_config.c
+index a9fc9c1..03b3137 100644
+--- a/testsuite/geis2/check_config.c
++++ b/testsuite/geis2/check_config.c
+@@ -48,7 +48,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_config_suite_new()
++geis2_config_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_configuration");
+
+diff --git a/testsuite/geis2/check_device.c b/testsuite/geis2/check_device.c
+index 8b3b7be..9583cb5 100644
+--- a/testsuite/geis2/check_device.c
++++ b/testsuite/geis2/check_device.c
+@@ -99,7 +99,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_device_suite_new()
++geis2_device_suite_new(void)
+ {
+ TCase *device;
+ TCase *usage;
+diff --git a/testsuite/geis2/check_error_codes.c b/testsuite/geis2/check_error_codes.c
+index 9c7508d..57e7fc7 100644
+--- a/testsuite/geis2/check_error_codes.c
++++ b/testsuite/geis2/check_error_codes.c
+@@ -20,7 +20,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_error_codes_suite_new()
++geis2_error_codes_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_error_codes");
+
+diff --git a/testsuite/geis2/check_event.c b/testsuite/geis2/check_event.c
+index 8ecda1d..c752a30 100644
+--- a/testsuite/geis2/check_event.c
++++ b/testsuite/geis2/check_event.c
+@@ -43,7 +43,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_event_suite_new()
++geis2_event_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_event");
+
+diff --git a/testsuite/geis2/check_filter.c b/testsuite/geis2/check_filter.c
+index 3272a2a..afa23e5 100644
+--- a/testsuite/geis2/check_filter.c
++++ b/testsuite/geis2/check_filter.c
+@@ -67,7 +67,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_filter_suite_new()
++geis2_filter_suite_new(void)
+ {
+ TCase *filter;
+ TCase *usage;
+diff --git a/testsuite/geis2/check_frame.c b/testsuite/geis2/check_frame.c
+index dce6faf..3ea3db0 100644
+--- a/testsuite/geis2/check_frame.c
++++ b/testsuite/geis2/check_frame.c
+@@ -172,7 +172,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_gesture_frame_suite_new()
++geis2_gesture_frame_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_gesture_frame");
+ TCase *gesture_frame;
+diff --git a/testsuite/geis2/check_geis_new.c b/testsuite/geis2/check_geis_new.c
+index 1fb8de2..36cd3e9 100644
+--- a/testsuite/geis2/check_geis_new.c
++++ b/testsuite/geis2/check_geis_new.c
+@@ -32,7 +32,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_geis_new_suite_new()
++geis2_geis_new_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_geis_init");
+
+diff --git a/testsuite/geis2/check_general_types.c b/testsuite/geis2/check_general_types.c
+index 79e29bb..0f463d4 100644
+--- a/testsuite/geis2/check_general_types.c
++++ b/testsuite/geis2/check_general_types.c
+@@ -20,7 +20,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_general_types_suite_new()
++geis2_general_types_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_general_types");
+ TCase *create;
+diff --git a/testsuite/geis2/check_region.c b/testsuite/geis2/check_region.c
+index 3e64e0c..606350a 100644
+--- a/testsuite/geis2/check_region.c
++++ b/testsuite/geis2/check_region.c
+@@ -48,7 +48,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_region_suite_new()
++geis2_region_suite_new(void)
+ {
+ Suite *s = suite_create("geis2_region");
+ TCase *creation;
+diff --git a/testsuite/geis2/check_subscription.c b/testsuite/geis2/check_subscription.c
+index a45c4ad..17a6779 100644
+--- a/testsuite/geis2/check_subscription.c
++++ b/testsuite/geis2/check_subscription.c
+@@ -161,7 +161,7 @@ END_TEST
+
+ /* boilerplate */
+ Suite *
+-geis2_subscription_suite_new()
++geis2_subscription_suite_new(void)
+ {
+ TCase *create;
+ TCase *usage;
+diff --git a/tools/geis-server/geis-server.c b/tools/geis-server/geis-server.c
+index 97c8b99..6600d8f 100644
+--- a/tools/geis-server/geis-server.c
++++ b/tools/geis-server/geis-server.c
+@@ -23,7 +23,7 @@
+
+
+ int
+-main()
++main(void)
+ {
+ GeisStatus status;
+
+--
+2.37.3
+
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 30d41a16e6..aa595ebe52 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
@@ -7,29 +7,33 @@ system-wide input gesture recognition mechanism."
HOMEPAGE = "https://launchpad.net/geis"
-LICENSE = "GPLv3 & LGPLv3"
+LICENSE = "GPL-3.0-only & LGPL-3.0-only"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=6a6a8e020838b23406c81b19c1d46df6 \
file://COPYING.GPL;md5=f27defe1e96c2e1ecd4e0c9be8967949 \
"
-inherit autotools pkgconfig python3native lib_package distro_features_check
+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"
SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.xz \
file://fix-indentation-for-gcc6.patch \
file://0001-libgeis-Compare-the-first-character-of-string-to-nul.patch \
+ file://0001-provide-function-declaration-with-prototypes.patch \
"
+
+UPSTREAM_CHECK_URI = "https://launchpad.net/geis/trunk"
+
SRC_URI[md5sum] = "2ff9d76a3ea5794516bb02c9d1924faf"
SRC_URI[sha256sum] = "8a60f5683852094038904e690d23cc5a90a980fc52da67f0f28890baa25c70eb"
EXTRA_OECONF = "--disable-integration-tests"
-FILES_${PN}-bin = "${bindir}"
-RDEPENDS_${PN}-bin = " \
+FILES:${PN}-bin = "${bindir}"
+RDEPENDS:${PN}-bin = " \
python3-compression \
python3-core \
python3-crypt \
@@ -42,14 +46,14 @@ RDEPENDS_${PN}-bin = " \
python3-threading \
"
-FILES_${PN} += " \
+FILES:${PN} += " \
${datadir}/geisview \
${libdir}/${PYTHON_DIR}/site-packages/geis* \
${libdir}/${PYTHON_DIR}/site-packages/_*.so \
"
-FILES_${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
+FILES:${PN}-dbg += "${libdir}/${PYTHON_DIR}/site-packages/.debug"
-FILES_${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/_*.la"
+FILES:${PN}-dev += "${libdir}/${PYTHON_DIR}/site-packages/_*.la"
-FILES_${PN}-staticdev += "${libdir}/${PYTHON_DIR}/site-packages/_*.a"
+FILES:${PN}-staticdev += "${libdir}/${PYTHON_DIR}/site-packages/_*.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 22fd0f48e2..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
@@ -2,23 +2,28 @@ SUMMARY = "Gesture Recognition And Instantiation Library"
HOMEPAGE = "https://launchpad.net/grail"
-LICENSE = "GPLv3 & LGPLv3"
+LICENSE = "GPL-3.0-only & LGPL-3.0-only"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \
file://COPYING.GPL3;md5=d32239bcb673463ab874e80d47fae504 \
"
-inherit autotools pkgconfig
+inherit autotools pkgconfig features_check
DEPENDS = "frame"
-CXXFLAGS_append_toolchain-clang = " -Wno-pessimizing-move"
+CXXFLAGS:append:toolchain-clang = " -Wno-pessimizing-move"
SRC_URI = "https://launchpad.net/${BPN}/trunk/${PV}/+download/${BPN}-${PV}.tar.bz2"
+
+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"
PACKAGE_BEFORE_PN += "${PN}-test"
-FILES_${PN}-test = "${bindir}/grail-test*"
+FILES:${PN}-test = "${bindir}/grail-test*"
SECURITY_CFLAGS = "${SECURITY_NO_PIE_CFLAGS}"
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
new file mode 100644
index 0000000000..46d30e8c16
--- /dev/null
+++ b/meta-oe/recipes-support/ccid/ccid/0001-Add-build-rule-for-README.patch
@@ -0,0 +1,24 @@
+Subject: [PATCH] Add build rule for README.
+
+fix do_configure error:
+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/Makefile.am b/Makefile.am
+index 49574a3..a5a7c2a 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -26,3 +26,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/no-dep-on-libfl.patch b/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
deleted file mode 100644
index 477cc31ad2..0000000000
--- a/meta-oe/recipes-support/ccid/ccid/no-dep-on-libfl.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-No need to link with libfl.
-
-Upstream-Status: Pending
-Signed-off-by: Jacob Kroon <jacob.kroon@mikrodidakt.se>
-
-Index: ccid-1.4.8/src/Makefile.am
-===================================================================
---- ccid-1.4.8.orig/src/Makefile.am
-+++ ccid-1.4.8/src/Makefile.am
-@@ -53,7 +53,7 @@ PROVIDED_BY_PCSC = debug.c
- endif
-
- libccid_la_SOURCES = $(COMMON) $(USB) $(TOKEN_PARSER) $(PROVIDED_BY_PCSC) $(T1)
--libccid_la_LIBADD = $(LEXLIB) $(LIBUSB_LIBS) $(PTHREAD_LIBS)
-+libccid_la_LIBADD = $(LIBUSB_LIBS) $(PTHREAD_LIBS)
- libccid_la_CFLAGS = $(PCSC_CFLAGS) $(LIBUSB_CFLAGS) $(PTHREAD_CFLAGS) \
- $(SYMBOL_VISIBILITY) -D$(CCID_VERSION) -DSIMCLIST_NO_DUMPRESTORE
- libccid_la_LDFLAGS = -avoid-version
diff --git a/meta-oe/recipes-support/ccid/ccid_1.4.24.bb b/meta-oe/recipes-support/ccid/ccid_1.4.24.bb
deleted file mode 100644
index 31145d0efd..0000000000
--- a/meta-oe/recipes-support/ccid/ccid_1.4.24.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Generic USB CCID smart card reader driver"
-HOMEPAGE = "http://pcsclite.alioth.debian.org/ccid.html"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-DEPENDS = "virtual/libusb0 pcsc-lite"
-RDEPENDS_${PN} = "pcsc-lite"
-
-SRC_URI = "https://alioth.debian.org/frs/download.php/file/4171/ccid-${PV}.tar.bz2 \
- file://no-dep-on-libfl.patch \
-"
-
-SRC_URI[md5sum] = "915a03cda85b60fefbe3654cbdc68ca9"
-SRC_URI[sha256sum] = "62cb73c6c009c9799c526f05a05e25f00f0ad86d50f82a714dedcfbf4a7e4176"
-
-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.2.bb b/meta-oe/recipes-support/ccid/ccid_1.5.2.bb
new file mode 100644
index 0000000000..0802e80f7b
--- /dev/null
+++ b/meta-oe/recipes-support/ccid/ccid_1.5.2.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] = "13934487e6f8b48f699a16d367cc7a1af7a3ca874de721ac6e9633beb86e7219"
+
+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_1.14.bb b/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
deleted file mode 100644
index ad7c8f2a3b..0000000000
--- a/meta-oe/recipes-support/ceres-solver/ceres-solver_1.14.bb
+++ /dev/null
@@ -1,17 +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=35e00f0c4c96a0820a03e0b31e6416be"
-
-DEPENDS = "libeigen glog"
-
-SRC_URI = "git://github.com/ceres-solver/ceres-solver.git"
-SRCREV = "facb199f3eda902360f9e1d5271372b7e54febe1"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-# Only a static library and headers are created
-ALLOW_EMPTY_${PN} = "1"
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
new file mode 100644
index 0000000000..2b74ad845b
--- /dev/null
+++ b/meta-oe/recipes-support/ceres-solver/ceres-solver_2.1.0.bb
@@ -0,0 +1,42 @@
+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/ckermit/ckermit/0001-Fix-function-prototype-errors.patch b/meta-oe/recipes-support/ckermit/ckermit/0001-Fix-function-prototype-errors.patch
new file mode 100644
index 0000000000..306a2ee52a
--- /dev/null
+++ b/meta-oe/recipes-support/ckermit/ckermit/0001-Fix-function-prototype-errors.patch
@@ -0,0 +1,106 @@
+From f73eade85b7a1b93f7b9ef6ca9ead9d2441f8f84 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 19:01:38 -0700
+Subject: [PATCH] Fix function prototype errors
+
+Clang 15 is strict, therefore ensure that right headers are pulled in
+and also right function prototypes are used.
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ ckcmai.c | 4 ++++
+ ckucmd.c | 2 +-
+ ckucmd.h | 2 --
+ ckucon.c | 2 +-
+ ckufio.c | 2 +-
+ ckuusx.c | 2 +-
+ 6 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/ckcmai.c b/ckcmai.c
+index a5640e5..a4e322d 100644
+--- a/ckcmai.c
++++ b/ckcmai.c
+@@ -561,6 +561,10 @@ ACKNOWLEDGMENTS:
+ #include "ckntap.h"
+ #endif /* NT */
+
++#ifndef VMS
++#include <time.h> /* time() */
++#endif
++
+ #ifndef NOSERVER
+ /* Text message definitions.. each should be 256 chars long, or less. */
+ #ifdef MINIX
+diff --git a/ckucmd.c b/ckucmd.c
+index 274dc2d..730f20d 100644
+--- a/ckucmd.c
++++ b/ckucmd.c
+@@ -7356,7 +7356,7 @@ cmdgetc(timelimit) int timelimit; { /* Get a character from the tty. */
+ Returns 0 or greater always.
+ */
+ int
+-cmdconchk() {
++cmdconchk(void) {
+ int x = 0, y;
+ y = pushc ? 1 : 0; /* Have command character pushed? */
+ #ifdef OS2
+diff --git a/ckucmd.h b/ckucmd.h
+index 7cd4ced..5c43cc4 100644
+--- a/ckucmd.h
++++ b/ckucmd.h
+@@ -280,9 +280,7 @@ _PROTOTYP( int cmdsquo, (int) );
+ _PROTOTYP( int cmdgquo, (void) );
+ _PROTOTYP( char * ckcvtdate, (char *, int) );
+ _PROTOTYP( int cmdgetc, (int));
+-#ifndef NOARROWKEYS
+ _PROTOTYP( int cmdconchk, (void) );
+-#endif /* NOARROWKEYS */
+
+ #ifdef CK_RECALL
+ _PROTOTYP( char * cmgetcmd, (char *) );
+diff --git a/ckucon.c b/ckucon.c
+index 50ceb7e..954719e 100644
+--- a/ckucon.c
++++ b/ckucon.c
+@@ -39,8 +39,8 @@ _PROTOTYP( static VOID concld, (void) );
+
+ #ifdef NEXT
+ #undef NSIG
+-#include <sys/wait.h> /* For wait() */
+ #endif /* NEXT */
++#include <sys/wait.h> /* For wait() */
+
+ #include <signal.h> /* Signals */
+
+diff --git a/ckufio.c b/ckufio.c
+index b5bfaae..2a8d4e5 100644
+--- a/ckufio.c
++++ b/ckufio.c
+@@ -142,8 +142,8 @@ _PROTOTYP( int parser, ( int ) );
+
+ #ifdef UNIX /* Pointer arg to wait() allowed */
+ #define CK_CHILD /* Assume this is safe in all UNIX */
++#include <sys/wait.h> /* wait() API */
+ #endif /* UNIX */
+-
+ extern int binary, recursive, stathack;
+ #ifdef CK_CTRLZ
+ extern int eofmethod;
+diff --git a/ckuusx.c b/ckuusx.c
+index d332bed..253f992 100644
+--- a/ckuusx.c
++++ b/ckuusx.c
+@@ -9144,7 +9144,7 @@ char *s; /* a string */
+ #ifndef CK_CURPOS
+ /* Dummies for when cursor control is not supported */
+ int
+-ck_curpos(row, col) {
++ck_curpos(int row, int col) {
+ return(-1);
+ }
+
+--
+2.37.3
+
diff --git a/meta-oe/recipes-support/ckermit/ckermit_302.bb b/meta-oe/recipes-support/ckermit/ckermit_302.bb
index 61c08ee276..53f2b9d2c5 100644
--- a/meta-oe/recipes-support/ckermit/ckermit_302.bb
+++ b/meta-oe/recipes-support/ckermit/ckermit_302.bb
@@ -8,7 +8,9 @@ SECTION = "console/network"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://COPYING.TXT;md5=932ca542d6c6cb8a59a0bcd76ab67cc3"
-SRC_URI = "http://www.kermitproject.org/ftp/kermit/archives/cku${PV}.tar.gz;subdir=${BPN}-${PV}"
+SRC_URI = "http://www.kermitproject.org/ftp/kermit/archives/cku${PV}.tar.gz;subdir=${BPN}-${PV} \
+ file://0001-Fix-function-prototype-errors.patch \
+ "
SRC_URI[md5sum] = "eac4dbf18b45775e4cdee5a7c74762b0"
SRC_URI[sha256sum] = "0d5f2cd12bdab9401b4c836854ebbf241675051875557783c332a6a40dac0711"
@@ -20,12 +22,6 @@ export INFODIR = "${infodir}"
EXTRA_OEMAKE = "-e MAKEFLAGS="
-# Additional flags. For uclibc we add -DNOARROWKEYS which stops ckermit
-# trying to look inside the stdio headers.
-CKERMIT_ADDITIONAL = ""
-CKERMIT_ADDITIONAL_libc-uclibc = "-DNOARROWKEYS"
-CKERMIT_ADDITIONAL_libc-musl = "-DNOARROWKEYS"
-
TARGET_CC_ARCH += "${LDFLAGS}"
do_compile () {
@@ -49,7 +45,7 @@ do_compile () {
-DNORESEND -DNOAUTODL -DNOSTREAMING -DNOHINTS -DNOCKXYZ -DNOLEARN \
-DNOMKDIR -DNOPERMS -DNOCKTIMERS -DNOCKREGEX -DNOREALPATH \
-DCK_SMALL -DNOLOGDIAL -DNORENAME -DNOWHATAMI \
- ${CKERMIT_ADDITIONAL}"
+ -DNOARROWKEYS"
}
do_install () {
diff --git a/meta-oe/recipes-support/cli11/cli11/0001-Do-not-download-the-catch-framework-during-configure.patch b/meta-oe/recipes-support/cli11/cli11/0001-Do-not-download-the-catch-framework-during-configure.patch
new file mode 100644
index 0000000000..7e6611b6a8
--- /dev/null
+++ b/meta-oe/recipes-support/cli11/cli11/0001-Do-not-download-the-catch-framework-during-configure.patch
@@ -0,0 +1,41 @@
+From 93557d5c5acf9ebb2c0fa708658e1d36621dd23a Mon Sep 17 00:00:00 2001
+From: Wang Mingyu <wangmy@fujitsu.com>
+Date: Wed, 7 Sep 2022 10:05:15 +0900
+Subject: [PATCH] Do not download the catch framework during configure.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ tests/CMakeLists.txt | 15 ---------------
+ 1 file changed, 15 deletions(-)
+
+diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
+index 80c4f6a..ae210db 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -74,21 +74,6 @@ if(Catch2_FOUND)
+ endif()
+ message(STATUS "Found Catch2")
+ target_link_libraries(catch_main PUBLIC Catch2::Catch2)
+-else()
+- message(STATUS "Downloading Catch2")
+-
+- # FetchContent would be better, but requires newer CMake.
+- file(MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/catch2")
+- set(url https://github.com/philsquared/Catch/releases/download/v2.13.7/catch.hpp)
+- file(
+- DOWNLOAD ${url} "${CMAKE_CURRENT_BINARY_DIR}/catch2/catch.hpp"
+- STATUS status
+- EXPECTED_HASH SHA256=ea379c4a3cb5799027b1eb451163dff065a3d641aaba23bf4e24ee6b536bd9bc)
+- list(GET status 0 error)
+- if(error)
+- message(FATAL_ERROR "Could not download ${url}, and Catch2 not found on your system.")
+- endif()
+- target_include_directories(catch_main PUBLIC "${CMAKE_CURRENT_BINARY_DIR}")
+ endif()
+
+ # Target must already exist
+--
+2.25.1
+
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..7c6b2547cb
--- /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${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
+
+# 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.3.bb b/meta-oe/recipes-support/cmark/cmark_0.30.3.bb
new file mode 100644
index 0000000000..6697dfe07f
--- /dev/null
+++ b/meta-oe/recipes-support/cmark/cmark_0.30.3.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 = "5ba25ff40eba44c811f79ab6a792baf945b8307c"
+S = "${WORKDIR}/git"
+
+inherit cmake lib_package
+
+EXTRA_OECMAKE += " \
+ -DCMARK_TESTS=OFF \
+ -DCMARK_STATIC=OFF \
+"
diff --git a/meta-oe/recipes-support/colord/colord-native.bb b/meta-oe/recipes-support/colord/colord-native.bb
new file mode 100644
index 0000000000..64dd94a9ed
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord-native.bb
@@ -0,0 +1,64 @@
+require ${BPN}.inc
+
+FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}-native:"
+
+inherit meson pkgconfig native
+
+DEPENDS += " \
+ meson-native \
+ glib-2.0-native \
+ lcms-native \
+"
+
+SRC_URI += " \
+ file://0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch \
+ file://Makefile;subdir=${BPN}-${PV} \
+"
+
+do_configure() {
+ # we expect meson to fail - but before it extracts project's version in log file
+ meson ${MESONOPTS} "${MESON_SOURCEPATH}" "${B}" ${MESON_CROSS_FILE} ${EXTRA_OEMESON} > /dev/null 2>&1 || true
+
+ # extract and split version
+ version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
+ major=`echo $version | cut -d. -f1`
+ minor=`echo $version | cut -d. -f2`
+ micro=`echo $version | cut -d. -f3`
+ echo "Project version: $major.$minor.$micro"
+
+ # extract project name
+ proj_name=`grep 'Project name:' ${B}/meson-logs/meson-log.txt | sed 's|Project name: ||'`
+
+ # create cd-version.h
+ mkdir -p ${B}/colord
+ sed ${S}/lib/colord/cd-version.h.in \
+ -e 's:@CD_MAJOR_VERSION_PRIVATE@:1:g' \
+ -e 's:@CD_MINOR_VERSION_PRIVATE@:4:g' \
+ -e 's:@CD_MICRO_VERSION_PRIVATE@:4:g' \
+ > ${B}/colord/cd-version.h
+
+ # create config.h based on target build and add what's necessary only
+ localedir=`echo ${datadir}/locale | sed 's:${prefix}/::g'`
+ echo "#define LOCALEDIR \"$localedir\"" >> ${B}/config.h
+ echo "#define GETTEXT_PACKAGE \"colord\"" >> ${B}/config.h
+ echo "#define PACKAGE_NAME \"$proj_name\"" >> ${B}/config.h
+ echo "#define PACKAGE_VERSION \"$version\"" >> ${B}/config.h
+}
+
+do_compile() {
+ oe_runmake -C${S} DESTDIR=${B}
+}
+
+do_install() {
+ version=`grep 'Project version:' ${B}/meson-logs/meson-log.txt | sed 's|Project version: ||'`
+ major=`echo $version | cut -d. -f1`
+
+ install -d ${D}${libdir}
+ install -m 755 ${B}/libcolord.so ${D}${libdir}/libcolord.so.$version
+ ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so"
+ ln -s libcolord.so.$version "${D}/${libdir}/libcolord.so.$major"
+
+ install -d ${D}${bindir}
+ install -m 755 ${B}/cd_create_profile ${D}${bindir}/
+ install -m 755 ${B}/cd_idt8 ${D}${bindir}/
+}
diff --git a/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch b/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch
new file mode 100644
index 0000000000..aae2be8c1e
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord-native/0001-Move-the-function-cd_icc_create_from_edid-to-avoid-u.patch
@@ -0,0 +1,166 @@
+From cbb8f5c05fce1d56ae2e5fa9f57fc49c47bed5ab Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 12 May 2019 21:58:02 +0200
+Subject: [PATCH] Move the function cd_icc_create_from_edid to avoid udev
+ dependeny
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+We do not have udev-native so it is a dependeny we cannot satisfy
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ lib/colord/cd-edid.c | 63 ++++++++++++++++++++++++++++++++++++++++++++
+ lib/colord/cd-icc.c | 62 -------------------------------------------
+ 2 files changed, 63 insertions(+), 62 deletions(-)
+
+diff --git a/lib/colord/cd-edid.c b/lib/colord/cd-edid.c
+index a5e2328..dec509a 100644
+--- a/lib/colord/cd-edid.c
++++ b/lib/colord/cd-edid.c
+@@ -687,3 +687,66 @@ cd_edid_new (void)
+ edid = g_object_new (CD_TYPE_EDID, NULL);
+ return CD_EDID (edid);
+ }
++
++/**
++ * cd_icc_create_from_edid_data:
++ * @icc: A valid #CdIcc
++ * @edid: EDID data
++ * @error: A #GError, or %NULL
++ *
++ * Creates an ICC profile from EDID data.
++ *
++ * Return value: %TRUE for success
++ *
++ * Since: 1.1.2
++ **/
++gboolean
++cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
++{
++ CdIccPrivate *priv = GET_PRIVATE (icc);
++ const gchar *data;
++
++ /* not loaded */
++ if (priv->lcms_profile != NULL) {
++ g_set_error_literal (error,
++ CD_ICC_ERROR,
++ CD_ICC_ERROR_FAILED_TO_CREATE,
++ "already loaded or generated");
++ return FALSE;
++ }
++
++ /* create from parsed object */
++ if (!cd_icc_create_from_edid (icc,
++ cd_edid_get_gamma (edid),
++ cd_edid_get_red (edid),
++ cd_edid_get_green (edid),
++ cd_edid_get_blue (edid),
++ cd_edid_get_white (edid),
++ error)) {
++ return FALSE;
++ }
++
++ /* set copyright */
++ cd_icc_set_copyright (icc, NULL,
++ /* deliberately not translated */
++ "This profile is free of known copyright restrictions.");
++
++ /* set 'ICC meta Tag for Monitor Profiles' data */
++ data = cd_edid_get_checksum (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
++ data = cd_edid_get_monitor_name (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
++ data = cd_edid_get_serial_number (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
++ data = cd_edid_get_pnp_id (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
++ data = cd_edid_get_vendor_name (edid);
++ if (data != NULL)
++ cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
++ return TRUE;
++}
++
+diff --git a/lib/colord/cd-icc.c b/lib/colord/cd-icc.c
+index 8beec43..398ff7a 100644
+--- a/lib/colord/cd-icc.c
++++ b/lib/colord/cd-icc.c
+@@ -3114,68 +3114,6 @@ cd_icc_create_default (CdIcc *icc, GError **error)
+ return cd_icc_create_default_full (icc, CD_ICC_LOAD_FLAGS_NONE, error);
+ }
+
+-/**
+- * cd_icc_create_from_edid_data:
+- * @icc: A valid #CdIcc
+- * @edid: EDID data
+- * @error: A #GError, or %NULL
+- *
+- * Creates an ICC profile from EDID data.
+- *
+- * Return value: %TRUE for success
+- *
+- * Since: 1.1.2
+- **/
+-gboolean
+-cd_icc_create_from_edid_data (CdIcc *icc, CdEdid *edid, GError **error)
+-{
+- CdIccPrivate *priv = GET_PRIVATE (icc);
+- const gchar *data;
+-
+- /* not loaded */
+- if (priv->lcms_profile != NULL) {
+- g_set_error_literal (error,
+- CD_ICC_ERROR,
+- CD_ICC_ERROR_FAILED_TO_CREATE,
+- "already loaded or generated");
+- return FALSE;
+- }
+-
+- /* create from parsed object */
+- if (!cd_icc_create_from_edid (icc,
+- cd_edid_get_gamma (edid),
+- cd_edid_get_red (edid),
+- cd_edid_get_green (edid),
+- cd_edid_get_blue (edid),
+- cd_edid_get_white (edid),
+- error)) {
+- return FALSE;
+- }
+-
+- /* set copyright */
+- cd_icc_set_copyright (icc, NULL,
+- /* deliberately not translated */
+- "This profile is free of known copyright restrictions.");
+-
+- /* set 'ICC meta Tag for Monitor Profiles' data */
+- data = cd_edid_get_checksum (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MD5, data);
+- data = cd_edid_get_monitor_name (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MODEL, data);
+- data = cd_edid_get_serial_number (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_SERIAL, data);
+- data = cd_edid_get_pnp_id (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_MNFT, data);
+- data = cd_edid_get_vendor_name (edid);
+- if (data != NULL)
+- cd_icc_add_metadata (icc, CD_PROFILE_METADATA_EDID_VENDOR, data);
+- return TRUE;
+-}
+-
+ /**
+ * cd_icc_create_from_edid:
+ * @icc: A valid #CdIcc
+--
+2.20.1
+
diff --git a/meta-oe/recipes-support/colord/colord-native/Makefile b/meta-oe/recipes-support/colord/colord-native/Makefile
new file mode 100644
index 0000000000..1e29e4f670
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord-native/Makefile
@@ -0,0 +1,48 @@
+# For native build cd_idt8, cd_create_profile and a tiny version of libcolord.so
+# only. By reducing the library to what's necessary, we avoid dependencies on
+# naitve udev and libgudev
+
+CFLAGS+=$(shell pkg-config-native --cflags gio-2.0)
+CFLAGS+=$(shell pkg-config-native --cflags lcms2)
+CFLAGS+=-std=c99 -I./lib -I./lib/colord -I$(DESTDIR) -DCD_COMPILATION
+
+LDFLAGS+=$(shell pkg-config-native --libs gio-2.0)
+LDFLAGS+=$(shell pkg-config-native --libs lcms2)
+LDFLAGS+=-lm
+
+all: cd_idt8 cd_create_profile
+
+LIBSOURCES = \
+ lib/colord/cd-it8.c \
+ lib/colord/cd-color.c \
+ lib/colord/cd-spectrum.c \
+ lib/colord/cd-math.c \
+ lib/colord/cd-interp-akima.c \
+ lib/colord/cd-context-lcms.c \
+ lib/colord/cd-interp.c \
+ lib/colord/cd-interp-linear.c \
+ lib/colord/cd-it8-utils.c \
+ lib/colord/cd-enum.c \
+ lib/colord/cd-icc.c \
+ lib/colord/cd-icc-utils.c \
+ lib/colord/cd-dom.c
+
+libcolord.so: $(LIBSOURCES)
+ $(CC) $(CFLAGS) -L$(DESTDIR) -fPIC -shared -Wl,-soname,$@ $^ -o $(DESTDIR)/$@ $(LDFLAGS)
+
+cd_idt8.o: client/cd-it8.c
+ $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
+
+cd_idt8: libcolord.so cd_idt8.o
+ $(CC) $(DESTDIR)/cd_idt8.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
+
+cd_create_profile.o: client/cd-create-profile.c
+ $(CC) $(CFLAGS) -c $^ -o $(DESTDIR)/$@
+
+cd_create_profile: libcolord.so cd_create_profile.o
+ $(CC) $(DESTDIR)/cd_create_profile.o -o $(DESTDIR)/$@ -L$(DESTDIR) -lcolord $(LDFLAGS)
+
+.PHONY: clean
+
+clean:
+ rm -f $(DESTDIR)/libcolord.so $(DESTDIR)/*.o $(DESTDIR)/cd_idt8 $(DESTDIR)/cd_create_profile
diff --git a/meta-oe/recipes-support/colord/colord.bb b/meta-oe/recipes-support/colord/colord.bb
new file mode 100644
index 0000000000..e300222518
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord.bb
@@ -0,0 +1,45 @@
+require ${BPN}.inc
+
+inherit meson gobject-introspection gsettings gettext bash-completion systemd features_check useradd pkgconfig
+
+# polkit and gobject-introspection are mandatory and cannot be configured
+REQUIRED_DISTRO_FEATURES = "polkit gobject-introspection-data"
+GIR_MESON_OPTION = ""
+
+DEPENDS += " \
+ ${BPN}-native \
+ glib-2.0 \
+ lcms \
+ sqlite3 \
+ libgusb \
+ libgudev \
+ polkit \
+"
+
+SRC_URI += " \
+ file://0001-Run-native-cd_idt8-cd_create_profile.patch \
+"
+
+EXTRA_OEMESON = " \
+ -Dman=false \
+ -Ddocs=false \
+"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[systemd] = "-Dsystemd=true, -Dsystemd=false, systemd"
+
+SYSTEMD_SERVICE:${PN} = "colord.service"
+
+FILES:${PN} += " \
+ ${datadir}/dbus-1 \
+ ${datadir}/polkit-1 \
+ ${datadir}/glib-2.0 \
+ ${datadir}/color \
+ ${systemd_user_unitdir} \
+ ${nonarch_libdir}/tmpfiles.d \
+ ${libdir}/colord-plugins \
+ ${libdir}/colord-sensors \
+"
+
+USERADD_PACKAGES = "${PN}"
+USERADD_PARAM:${PN} = "--system --user-group -d /var/lib/colord -s /bin/false colord"
diff --git a/meta-oe/recipes-support/colord/colord.inc b/meta-oe/recipes-support/colord/colord.inc
new file mode 100644
index 0000000000..0ae1a30fe6
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord.inc
@@ -0,0 +1,12 @@
+SUMMARY = "Making color management just work"
+HOMEPAGE = "https://www.freedesktop.org/software/colord/"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = " \
+ file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://meson.build;beginline=3;endline=3;md5=f42198707d793be58b274d34fd5238c3 \
+"
+
+PV = "1.4.6"
+SRC_URI = "https://www.freedesktop.org/software/colord/releases/${BPN}-${PV}.tar.xz"
+SRC_URI[sha256sum] = "7407631a27bfe5d1b672e7ae42777001c105d860b7b7392283c8c6300de88e6f"
+
diff --git a/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch b/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch
new file mode 100644
index 0000000000..4b52aa3379
--- /dev/null
+++ b/meta-oe/recipes-support/colord/colord/0001-Run-native-cd_idt8-cd_create_profile.patch
@@ -0,0 +1,59 @@
+From 5aad8831c0fb71940d6c4f982b0b30ffb6ae33b3 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 12 May 2019 22:47:05 +0200
+Subject: [PATCH] Run native cd_idt8/cd_create_profile
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ data/cmf/meson.build | 2 +-
+ data/illuminant/meson.build | 2 +-
+ data/profiles/meson.build | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/data/cmf/meson.build b/data/cmf/meson.build
+index a693cd7..1ae3613 100644
+--- a/data/cmf/meson.build
++++ b/data/cmf/meson.build
+@@ -2,7 +2,7 @@ foreach arg: [ 'CIE1964-10deg-XYZ', 'CIE1931-2deg-XYZ' ]
+ custom_target(arg,
+ input: arg + '.csv',
+ output: arg + '.cmf',
+- command: [ cd_idt8, 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
++ command: [ 'cd_idt8', 'create-cmf', '@OUTPUT@', '@INPUT@', '1.0' ],
+ install: true,
+ install_dir: join_paths(datadir, 'colord', 'cmf')
+ )
+diff --git a/data/illuminant/meson.build b/data/illuminant/meson.build
+index f8dfa07..ad7dced 100644
+--- a/data/illuminant/meson.build
++++ b/data/illuminant/meson.build
+@@ -24,7 +24,7 @@ foreach arg: generated_spectra
+ custom_target(arg,
+ input: arg + '.csv',
+ output: arg + '.sp',
+- command: [ cd_idt8, 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
++ command: [ 'cd_idt8', 'create-sp', '@OUTPUT@', '@INPUT@', '100.0' ],
+ install: true,
+ install_dir: join_paths(datadir, 'colord', 'illuminant')
+ )
+diff --git a/data/profiles/meson.build b/data/profiles/meson.build
+index 591b97d..2cef011 100644
+--- a/data/profiles/meson.build
++++ b/data/profiles/meson.build
+@@ -59,7 +59,7 @@ foreach arg: icc_profiles
+ generated_icc = custom_target(arg + '.icc',
+ input: xml_i18n,
+ output: arg + '.icc',
+- command: [ cd_create_profile, '--output=@OUTPUT@', '@INPUT@' ],
++ command: [ 'cd_create_profile', '--output=@OUTPUT@', '@INPUT@' ],
+ install: true,
+ install_dir: join_paths(datadir, 'color', 'icc', 'colord'),
+ )
+--
+2.20.1
+
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_git.bb b/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
new file mode 100644
index 0000000000..3c271ae5d1
--- /dev/null
+++ b/meta-oe/recipes-support/cpp-netlib/cpp-netlib_git.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Modern C++ network programming libraries."
+
+# This library provides general purpose network functionality such as
+# socket communication to agent libraries. It was designed to be merged
+# into boost at some point and follows similar header library approach
+# for most functionality.
+
+SECTION = "libs"
+LICENSE = "BSL-1.0 & MIT & Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE_1_0.txt;md5=e4224ccaecb14d942c71d31bef20d78c"
+
+SRC_URI = "\
+ git://github.com/cpp-netlib/cpp-netlib.git;protocol=https;branch=0.13-release \
+"
+SRC_URI[sha256sum] = "0b9255bb0668d89867a1f367d770f12d7038db4f5b6111774ef032f669cccad4"
+
+SRCREV = "ca95f04d140acf619892ee02a82e930dd91ff7d4"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+DEPENDS = "zlib boost openssl"
+
+EXTRA_OECMAKE:append = " -DCPP-NETLIB_BUILD_TESTS=OFF -DCPP-NETLIB_BUILD_EXAMPLES=OFF"
+
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch
deleted file mode 100644
index dc6b9dfcab..0000000000
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-Fix-a-build-problem-on-Clang.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 0c07931f77aa9df2da065b633ae66faad5a570ec Mon Sep 17 00:00:00 2001
-From: Wu Yongwei <wuyongwei@gmail.com>
-Date: Tue, 10 Apr 2018 11:29:12 +0800
-Subject: [PATCH] Fix a build problem on Clang.
-
-AND_CAPTURE_MEMBER_FUNCTION_POINTERS workaround had a check for GCC,
-but did not exclude Clang. Clang has a fake GCC version of 4.2, thus
-caused problems.
-
-Upstream-Status: Backport [https://github.com/Microsoft/cpprestsdk/pull/732]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Release/src/http/client/http_client_asio.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Release/src/http/client/http_client_asio.cpp b/Release/src/http/client/http_client_asio.cpp
-index 4ba3e085..fca4bb5b 100644
---- a/Release/src/http/client/http_client_asio.cpp
-+++ b/Release/src/http/client/http_client_asio.cpp
-@@ -47,7 +47,7 @@
- #include <unordered_set>
- #include <memory>
-
--#if defined(__GNUC__)
-+#if defined(__GNUC__) && !defined(__clang__)
-
- #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)
- #define AND_CAPTURE_MEMBER_FUNCTION_POINTERS
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch
deleted file mode 100644
index febfd5bc96..0000000000
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0001-disable-more-Werror-warnings.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From ee92f84a96a507b0a7a3c54929ce190ee28b4ecd Mon Sep 17 00:00:00 2001
-From: Alexander Moriarty <amoriarty@fetchrobotics.com>
-Date: Wed, 6 Jun 2018 10:38:43 -0700
-Subject: [PATCH] disable more -Werror warnings
-
-gcc-8: -Wno-format-truncation
-
-clang-6: -Wdelete-non-virtual-dtor
-clang-6: -Wunused-lambda-capture
-
-removed duplicated: -Wno-reorder
-
-This fixes #778
-
-Upstream-Status: Pending [https://github.com/Microsoft/cpprestsdk/pull/779]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Release/CMakeLists.txt | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/Release/CMakeLists.txt b/Release/CMakeLists.txt
-index 1267aff1..fb291ccd 100644
---- a/Release/CMakeLists.txt
-+++ b/Release/CMakeLists.txt
-@@ -166,12 +166,12 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR IOS)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-attributes -Wno-pointer-arith")
- elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
- set(WARNINGS -Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls)
-- set(LINUX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-reorder -Wno-unused-local-typedefs)
-+ set(LINUX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-unused-local-typedefs -Wno-delete-non-virtual-dtor -Wno-unused-lambda-capture)
- set(WARNINGS ${WARNINGS} ${LINUX_SUPPRESSIONS})
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration")
- else()
- set(WARNINGS -Wall -Wextra -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls)
-- set(OSX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-reorder -Wno-unused-local-typedefs)
-+ set(OSX_SUPPRESSIONS -Wno-overloaded-virtual -Wno-sign-conversion -Wno-deprecated -Wno-unknown-pragmas -Wno-reorder -Wno-char-subscripts -Wno-switch -Wno-unused-parameter -Wno-unused-variable -Wno-deprecated -Wno-unused-value -Wno-unknown-warning-option -Wno-return-type-c-linkage -Wno-unused-function -Wno-sign-compare -Wno-shorten-64-to-32 -Wno-unused-local-typedefs -Wno-delete-non-virtual-dtor -Wno-unused-lambda-capture)
- set(WARNINGS ${WARNINGS} ${OSX_SUPPRESSIONS})
-
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++ -Wno-return-type-c-linkage -Wno-unneeded-internal-declaration")
-@@ -184,7 +184,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR IOS)
- elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
- message("-- Setting gcc options")
-
-- set(WARNINGS -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code)
-+ set(WARNINGS -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code -Wno-format-truncation)
- set(LD_FLAGS "${LD_FLAGS} -Wl,-z,defs")
-
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch
deleted file mode 100644
index 34cbe66974..0000000000
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/0002-Define-virtual-destructor.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 816d183eb0fe9ab4607cb049b4b792f8df84d5fe Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 22 May 2018 22:17:43 -0700
-Subject: [PATCH] Define virtual destructor
-
-Fixes
-error: destructor called on non-final 'pplx::details::linux_scheduler' that has virtual functions but non-virtual destructor [-Werror,-Wdelete-non-virtual-dtor]
- __data_.second().~_Tp();
-
-Upstream-Status: Pending [https://github.com/Microsoft/cpprestsdk/issues/747]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Release/include/pplx/pplxlinux.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Release/include/pplx/pplxlinux.h b/Release/include/pplx/pplxlinux.h
-index 6aa1ba35..f3f8d70d 100644
---- a/Release/include/pplx/pplxlinux.h
-+++ b/Release/include/pplx/pplxlinux.h
-@@ -240,6 +240,7 @@ namespace platform
- {
- public:
- _PPLXIMP virtual void schedule( TaskProc_t proc, _In_ void* param);
-+ virtual ~linux_scheduler() {}
- };
-
- } // namespace details
diff --git a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch b/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
deleted file mode 100644
index 0feafef5bf..0000000000
--- a/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Description: install cmake files into /usr/lib/cmake/cpprestsdk
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-Upstream-Status: https://github.com/Microsoft/cpprestsdk/pull/737
-Forwarded: https://github.com/Microsoft/cpprestsdk/pull/737
-Last-Update: 2018-04-19
-
---- cpprest-2.10.2.orig/CMakeLists.txt
-+++ cpprest-2.10.2/CMakeLists.txt
-@@ -18,7 +18,7 @@ enable_testing()
- set(WERROR ON CACHE BOOL "Treat Warnings as Errors.")
- set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.")
- set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.")
--set(CPPREST_EXPORT_DIR lib/cpprestsdk CACHE STRING "Directory to install CMake config files.")
-+set(CPPREST_EXPORT_DIR lib/cmake/cpprestsdk CACHE STRING "Directory to install CMake config files.")
- set(CPPREST_INSTALL_HEADERS ON CACHE BOOL "Install header files.")
- set(CPPREST_INSTALL ON CACHE BOOL "Add install commands.")
-
diff --git a/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch b/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
new file mode 100644
index 0000000000..b956db22fd
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch
@@ -0,0 +1,27 @@
+Upstream-Status: Pending
+
+Description: new toolchain might have increased the float precision
+Author: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2017-10-28
+Forwarded: https://github.com/Microsoft/cpprestsdk/issues/576
+
+Index: cpprest/Release/tests/functional/streams/istream_tests.cpp
+===================================================================
+--- cpprest.orig/Release/tests/functional/streams/istream_tests.cpp
++++ cpprest/Release/tests/functional/streams/istream_tests.cpp
+@@ -1297,6 +1297,7 @@
+ void compare_double(double expected, double actual) { compare_floating(expected, actual, DBL_EPSILON); }
+ void compare_float(float expected, float actual) { compare_floating(expected, actual, FLT_EPSILON); }
+
++ /*
+ TEST(extract_floating_point)
+ {
+ std::string test_string;
+@@ -1343,6 +1344,7 @@
+ if (expected == 0) VERIFY_ARE_EQUAL(1 / expected, 1 / actual);
+ } while (!std_istream.eof());
+ }
++ */
+
+ TEST(extract_floating_point_with_exceptions)
+ {
diff --git a/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
new file mode 100644
index 0000000000..961eaf7646
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch
@@ -0,0 +1,129 @@
+Upstream-Status: Pending
+
+Description: Debian forbids calls to external websites.
+
+Author: Gianfranco Costamagna <locutus@debian.org>
+Origin: Debian
+Forwarded: not-needed
+Reviewed-By: Gianfranco Costamagna <locutusofborg@debian.org>
+Last-Update: 2015-11-25
+
+Index: cpprest/Release/tests/functional/http/client/CMakeLists.txt
+===================================================================
+--- cpprest.orig/Release/tests/functional/http/client/CMakeLists.txt
++++ cpprest/Release/tests/functional/http/client/CMakeLists.txt
+@@ -12,7 +12,6 @@
+ multiple_requests.cpp
+ oauth1_tests.cpp
+ oauth2_tests.cpp
+- outside_tests.cpp
+ pipeline_stage_tests.cpp
+ progress_handler_tests.cpp
+ proxy_tests.cpp
+Index: cpprest/Release/tests/functional/http/client/authentication_tests.cpp
+===================================================================
+--- cpprest.orig/Release/tests/functional/http/client/authentication_tests.cpp
++++ cpprest/Release/tests/functional/http/client/authentication_tests.cpp
+@@ -675,9 +675,9 @@
+ VERIFY_ARE_EQUAL(return_code, response.status_code());
+ }
+
+- TEST(auth_no_data) { auth_test_impl(false); }
++ //TEST(auth_no_data) { auth_test_impl(false); }
+
+- TEST(unsuccessful_auth_with_basic_cred) { auth_test_impl(true); }
++ //TEST(unsuccessful_auth_with_basic_cred) { auth_test_impl(true); }
+
+ TEST_FIXTURE(uri_address, set_user_options_asio_http)
+ {
+@@ -695,6 +695,7 @@
+ VERIFY_ARE_EQUAL(200, response.status_code());
+ }
+
++ /*
+ TEST_FIXTURE(uri_address, set_user_options_asio_https)
+ {
+ handle_timeout([] {
+@@ -714,6 +715,7 @@
+ VERIFY_IS_FALSE(v.empty());
+ });
+ }
++ */
+
+ #endif
+
+Index: cpprest/Release/tests/functional/websockets/client/authentication_tests.cpp
+===================================================================
+--- cpprest.orig/Release/tests/functional/websockets/client/authentication_tests.cpp
++++ cpprest/Release/tests/functional/websockets/client/authentication_tests.cpp
+@@ -93,6 +93,7 @@ SUITE(authentication_tests)
+ return false;
+ }
+
++ /*
+ TEST(ssl_test)
+ {
+ websocket_client client;
+@@ -127,6 +128,7 @@ SUITE(authentication_tests)
+ throw;
+ }
+ }
++ */
+
+ void handshake_error_test_impl(const ::utility::string_t& host)
+ {
+@@ -148,11 +150,11 @@ SUITE(authentication_tests)
+ }
+ }
+
+- TEST(self_signed_cert) { handshake_error_test_impl(U("wss://self-signed.badssl.com/")); }
++ //TEST(self_signed_cert) { handshake_error_test_impl(U("wss://self-signed.badssl.com/")); }
+
+- TEST(hostname_mismatch) { handshake_error_test_impl(U("wss://wrong.host.badssl.com/")); }
++ //TEST(hostname_mismatch) { handshake_error_test_impl(U("wss://wrong.host.badssl.com/")); }
+
+- TEST(cert_expired) { handshake_error_test_impl(U("wss://expired.badssl.com/")); }
++ //TEST(cert_expired) { handshake_error_test_impl(U("wss://expired.badssl.com/")); }
+
+ } // SUITE(authentication_tests)
+
+Index: cpprest/Release/tests/functional/http/client/connections_and_errors.cpp
+===================================================================
+--- cpprest.orig/Release/tests/functional/http/client/connections_and_errors.cpp
++++ cpprest/Release/tests/functional/http/client/connections_and_errors.cpp
+@@ -408,6 +408,7 @@
+ }
+ #endif
+
++ /*
+ // Try to connect to a server on a closed port and cancel the operation.
+ TEST_FIXTURE(uri_address, cancel_bad_port)
+ {
+@@ -439,6 +440,7 @@
+
+ VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled);
+ }
++ */
+
+ } // SUITE(connections_and_errors)
+
+--- cpprest-2.10.16.orig/Release/tests/functional/http/client/redirect_tests.cpp
++++ cpprest-2.10.16/Release/tests/functional/http/client/redirect_tests.cpp
+@@ -159,7 +159,7 @@ SUITE(redirect_tests)
+ VERIFY_NO_THROWS(reply.get());
+ }
+ }
+-
++/*
+ TEST(does_not_follow_https_to_http_by_default)
+ {
+ handle_timeout([] {
+@@ -182,7 +182,7 @@ SUITE(redirect_tests)
+ );
+ });
+ }
+-
++*/
+ TEST_FIXTURE(uri_address, follows_permanent_redirect)
+ {
+ #if USING_WINHTTP
diff --git a/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb b/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb
new file mode 100644
index 0000000000..1633412cf5
--- /dev/null
+++ b/meta-oe/recipes-support/cpprest/cpprest_2.10.18.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.17
+SRCREV= "122d09549201da5383321d870bed45ecb9e168c5"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
diff --git a/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
deleted file mode 100644
index fea5d4b2eb..0000000000
--- a/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb
+++ /dev/null
@@ -1,20 +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"
-
-SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \
- file://fix-cmake-install.patch \
- file://0001-Fix-a-build-problem-on-Clang.patch;patchdir=.. \
- file://0002-Define-virtual-destructor.patch;patchdir=.. \
- file://0001-disable-more-Werror-warnings.patch;patchdir=.. \
- "
-
-# tag 2.10.2
-SRCREV= "fea848e2a77563cf2a6f28f8eab396fd6e787fbf"
-
-S = "${WORKDIR}/git/Release"
-
-inherit cmake
diff --git a/meta-oe/recipes-support/cpulimit/cpulimit/0001-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch b/meta-oe/recipes-support/cpulimit/cpulimit/0001-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch
new file mode 100644
index 0000000000..50d0342ec7
--- /dev/null
+++ b/meta-oe/recipes-support/cpulimit/cpulimit/0001-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch
@@ -0,0 +1,41 @@
+From 41cfba0840f58555593fd4bee07db77221043e0b Mon Sep 17 00:00:00 2001
+From: Portia <stephensportia@gmail.com>
+Date: Sun, 1 May 2022 12:43:35 +1000
+Subject: [PATCH] Remove sys/sysctl.h and add missing libgen.h include
+
+- sys/sysctl.h has been deprecated and should be removed
+- Adds missing libgen.h include when calling basename()
+
+Upstream-Status: Inactive-Upstream [2015]
+Signed-off-by: Portia <stephensportia@gmail.com>
+---
+ src/cpulimit.c | 1 -
+ src/process_group.c | 1 +
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/cpulimit.c b/src/cpulimit.c
+index 50eabea..5b0ec49 100644
+--- a/src/cpulimit.c
++++ b/src/cpulimit.c
+@@ -38,7 +38,6 @@
+ #include <string.h>
+ #include <sys/stat.h>
+ #include <sys/time.h>
+-#include <sys/sysctl.h>
+ #include <sys/resource.h>
+ #include <sys/types.h>
+ #include <sys/wait.h>
+diff --git a/src/process_group.c b/src/process_group.c
+index 06d73a6..d4f6fab 100644
+--- a/src/process_group.c
++++ b/src/process_group.c
+@@ -24,6 +24,7 @@
+ #include <limits.h>
+ #include <sys/time.h>
+ #include <signal.h>
++#include <libgen.h>
+
+ #include <assert.h>
+
+--
+2.25.1
diff --git a/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb b/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
new file mode 100644
index 0000000000..58e4fd6e88
--- /dev/null
+++ b/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
@@ -0,0 +1,22 @@
+SUMMARY = "cpulimit is a tool which limits the CPU usage of a process"
+HOMEPAGE = "http://cpulimit.sourceforge.net"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86c1c0d961a437e529db93aa3bb32dc4"
+SRCREV ?= "f4d2682804931e7aea02a869137344bb5452a3cd"
+
+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 \
+ "
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ oe_runmake all
+}
+do_install() {
+ install -d ${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.04.12.bb b/meta-oe/recipes-support/crucible/crucible_2023.04.12.bb
new file mode 100644
index 0000000000..4830acff1d
--- /dev/null
+++ b/meta-oe/recipes-support/crucible/crucible_2023.04.12.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Utility that provides userspace support for reading and writing to the i.MX fuses"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=a64ced9463b8c81d08335d41966e0592"
+
+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 = "269c90b0067e469c20b11e7fc5f4681ad5f0af7e"
+
+# 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 3a049e76da..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() {
@@ -20,4 +19,4 @@ do_install() {
install -dm 755 ${D}${libdir}/ctapi
}
-FILES_${PN} += "${libdir}/ctapi"
+FILES:${PN} += "${libdir}/ctapi"
diff --git a/meta-oe/recipes-support/daemonize/daemonize_git.bb b/meta-oe/recipes-support/daemonize/daemonize_git.bb
index 4790883a7d..f46dec59fc 100644
--- a/meta-oe/recipes-support/daemonize/daemonize_git.bb
+++ b/meta-oe/recipes-support/daemonize/daemonize_git.bb
@@ -1,14 +1,14 @@
SUMMARY = "A tool to run a command as a daemon"
HOMEPAGE = "http://software.clapper.org/daemonize/"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3cf9084faa88bc8554a9139d8d7dd35f"
-PV = "1.7.7+git${SRCPV}"
+PV = "1.7.8"
inherit autotools
-SRCREV = "6b10308b13c13e7b911e75e27bf7e65c30d58799"
-SRC_URI = "git://github.com/bmc/daemonize.git \
- file://fix-ldflags-for-gnuhash.patch"
+SRCREV = "18869a797dab12bf1c917ba3b4782fef484c407c"
+SRC_URI = "git://github.com/bmc/daemonize.git;branch=master;protocol=https \
+"
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch b/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch
deleted file mode 100644
index 4fa2ee1b3b..0000000000
--- a/meta-oe/recipes-support/daemonize/files/fix-ldflags-for-gnuhash.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Add the LDFLAGS to the final link to avoid errors with missing GNU_HASH
-
-Upstream-Status: Submitted [https://github.com/bmc/daemonize/pull/22]
-
-Signed-off-by: Derek Straka <derek@asterius.io>
-
-diff --git a/Makefile.in b/Makefile.in
-index 8a4d078..40d3dee 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -24,10 +24,10 @@ LDFLAGS = @LDFLAGS@
- all: daemonize
-
- daemonize: daemonize.o getopt.o $(MISSING_OBJECTS)
-- $(CC) $(CFLAGS) -o $@ $^
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
-
- testdaemon: testdaemon.o
-- $(CC) $(CFLAGS) -o $@ $^
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $^
-
- psman: daemonize.ps
-
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
new file mode 100644
index 0000000000..4b332a000e
--- /dev/null
+++ b/meta-oe/recipes-support/daemontools/daemontools/0001-Fix-signature-of-main-function.patch
@@ -0,0 +1,209 @@
+From 269f18d5e6698fdd34fec2798f10c6fe072f3cd5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 23:36:52 -0700
+Subject: [PATCH] Fix signature of main function
+
+Clang-15 errors out otherewise.
+Include needed headers for missing functions
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/chkshsgr.c | 2 +-
+ src/tai64n.c | 2 +-
+ src/tai64nlocal.c | 2 +-
+ src/trycpp.c | 5 +++--
+ src/tryflock.c | 4 ++--
+ src/trymkffo.c | 2 +-
+ src/trypoll.c | 3 ++-
+ src/trysgact.c | 4 ++--
+ src/trysgprm.c | 4 ++--
+ src/tryshsgr.c | 3 ++-
+ src/tryulong64.c | 4 ++--
+ src/trywaitp.c | 4 ++--
+ src/x86cpuid.c | 2 +-
+ 13 files changed, 22 insertions(+), 19 deletions(-)
+
+diff --git a/src/chkshsgr.c b/src/chkshsgr.c
+index 038afe9..9547a4c 100644
+--- a/src/chkshsgr.c
++++ b/src/chkshsgr.c
+@@ -5,7 +5,7 @@
+ #include <grp.h>
+ #include <unistd.h>
+
+-int main()
++int main(int argc, char *argv[])
+ {
+ gid_t x[4];
+
+diff --git a/src/tai64n.c b/src/tai64n.c
+index 17bdb82..7096ab3 100644
+--- a/src/tai64n.c
++++ b/src/tai64n.c
+@@ -27,7 +27,7 @@ buffer in = BUFFER_INIT(myread,0,inbuf,sizeof inbuf);
+
+ char stamp[TIMESTAMP + 1];
+
+-int main()
++int main(int argc, char *argv[])
+ {
+ char ch;
+
+diff --git a/src/tai64nlocal.c b/src/tai64nlocal.c
+index ce16ad8..2435737 100644
+--- a/src/tai64nlocal.c
++++ b/src/tai64nlocal.c
+@@ -28,7 +28,7 @@ unsigned long nanosecs;
+ unsigned long u;
+ struct tm *t;
+
+-int main()
++int main(int argc, char *argv[])
+ {
+ char ch;
+
+diff --git a/src/trycpp.c b/src/trycpp.c
+index e4503d4..d96c955 100644
+--- a/src/trycpp.c
++++ b/src/trycpp.c
+@@ -1,6 +1,7 @@
+ /* Public domain. */
+-
+-int main()
++#include <stdio.h>
++#include <stdlib.h>
++int main(int argc, char *argv[])
+ {
+ #ifdef NeXT
+ printf("nextstep\n"); exit(0);
+diff --git a/src/tryflock.c b/src/tryflock.c
+index a82ffc2..5ca97d3 100644
+--- a/src/tryflock.c
++++ b/src/tryflock.c
+@@ -3,8 +3,8 @@
+ #include <sys/types.h>
+ #include <sys/file.h>
+ #include <fcntl.h>
+-
+-main()
++void
++main(int argc, char *argv[])
+ {
+ flock(0,LOCK_EX | LOCK_UN | LOCK_NB);
+ }
+diff --git a/src/trymkffo.c b/src/trymkffo.c
+index 9356342..f92414a 100644
+--- a/src/trymkffo.c
++++ b/src/trymkffo.c
+@@ -3,7 +3,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+
+-void main()
++void main(int argc, char *argv[])
+ {
+ mkfifo("temp-trymkffo",0);
+ }
+diff --git a/src/trypoll.c b/src/trypoll.c
+index 6506617..cb888cc 100644
+--- a/src/trypoll.c
++++ b/src/trypoll.c
+@@ -3,8 +3,9 @@
+ #include <sys/types.h>
+ #include <fcntl.h>
+ #include <poll.h>
++#include <unistd.h>
+
+-int main()
++int main(int argc, char *argv[])
+ {
+ struct pollfd x;
+
+diff --git a/src/trysgact.c b/src/trysgact.c
+index e264ef2..25da013 100644
+--- a/src/trysgact.c
++++ b/src/trysgact.c
+@@ -1,8 +1,8 @@
+ /* Public domain. */
+
+ #include <signal.h>
+-
+-main()
++void
++main(int argc, char *argv[])
+ {
+ struct sigaction sa;
+ sa.sa_handler = 0;
+diff --git a/src/trysgprm.c b/src/trysgprm.c
+index a46c82c..5a9491c 100644
+--- a/src/trysgprm.c
++++ b/src/trysgprm.c
+@@ -1,8 +1,8 @@
+ /* Public domain. */
+
+ #include <signal.h>
+-
+-main()
++void
++main(int argc, char *argv[])
+ {
+ sigset_t ss;
+
+diff --git a/src/tryshsgr.c b/src/tryshsgr.c
+index c5ed6d6..d111e40 100644
+--- a/src/tryshsgr.c
++++ b/src/tryshsgr.c
+@@ -1,6 +1,7 @@
+ /* Public domain. */
+
+-int main()
++#include <unistd.h>
++int main(int argc, char *argv[])
+ {
+ short x[4];
+
+diff --git a/src/tryulong64.c b/src/tryulong64.c
+index 003548a..20a3a40 100644
+--- a/src/tryulong64.c
++++ b/src/tryulong64.c
+@@ -1,6 +1,6 @@
+ /* Public domain. */
+-
+-int main()
++#include <unistd.h>
++int main(int argc, char *argv[])
+ {
+ unsigned long u;
+ u = 1;
+diff --git a/src/trywaitp.c b/src/trywaitp.c
+index 319b81f..90bc5aa 100644
+--- a/src/trywaitp.c
++++ b/src/trywaitp.c
+@@ -2,8 +2,8 @@
+
+ #include <sys/types.h>
+ #include <sys/wait.h>
+-
+-main()
++void
++main(int argc, char *argv[])
+ {
+ waitpid(0,0,0);
+ }
+diff --git a/src/x86cpuid.c b/src/x86cpuid.c
+index f81c593..1cb1ea6 100644
+--- a/src/x86cpuid.c
++++ b/src/x86cpuid.c
+@@ -7,7 +7,7 @@ void nope()
+ exit(1);
+ }
+
+-int main()
++int main(int argc, char *argv[])
+ {
+ unsigned long x[4];
+ unsigned long y[4];
+--
+2.37.3
+
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-daemontools-native-Fix-a-warning.patch b/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
deleted file mode 100644
index 8d9577d5ff..0000000000
--- a/meta-oe/recipes-support/daemontools/daemontools/0001-daemontools-native-Fix-a-warning.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a43a3327ccd4b06a3bcf0c87d518a97c6b39ac02 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Sat, 6 Aug 2016 02:09:53 +0900
-Subject: [PATCH] daemontools: Fix a warning
-
-To fix the warning as following:
-
-WARNING: daemontools-native-0.76-r0 do_populate_sysroot: File '/build-poky/tmp/sysroots/x86_64-linux/usr/bin/chkshsgr' from daemontools-native was already stripped, this will prevent future debugging!
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- src/conf-ld | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/conf-ld b/src/conf-ld
-index 59a0de7..1d0518a 100644
---- a/src/conf-ld
-+++ b/src/conf-ld
-@@ -1,3 +1,3 @@
--gcc -s
-+gcc
-
- This will be used to link .o files into an executable.
---
-2.7.4
-
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 f164c2d10d..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
@@ -30,7 +32,7 @@ diff -Nurp daemontools-0.76.orig/src/Makefile daemontools-0.76/src/Makefile
hasshsgr.h: chkshsgr choose compile hasshsgr.h1 hasshsgr.h2 load \
tryshsgr.c warn-shsgr
- ./chkshsgr || ( cat warn-shsgr; exit 1 )
-+ chkshsgr || ( cat warn-shsgr; exit 1 )
++ echo "Warning: We can not run test on cross target. - ignoring ./chkshsgr || ( cat warn-shsgr; exit 1 )"
./choose clr tryshsgr hasshsgr.h1 hasshsgr.h2 > hasshsgr.h
haswaitp.h: choose compile haswaitp.h1 haswaitp.h2 load trywaitp.c
@@ -39,7 +41,7 @@ diff -Nurp daemontools-0.76.orig/src/Makefile daemontools-0.76/src/Makefile
readproctitle rts.tests setlock setuidgid softlimit supervise svc \
svok svscan svscanboot svstat tai64n tai64nlocal
- env - /bin/sh rts.tests 2>&1 | cat -v > rts
-+ echo "Warning: We can not run test on cross target."
++ echo "Warning: We can not run test on cross target. - ignoring env - /bin/sh rts.tests 2>&1 | cat -v > rts"
scan_ulong.o: compile scan.h scan_ulong.c
./compile scan_ulong.c
diff --git a/meta-oe/recipes-support/daemontools/daemontools/warnings.patch b/meta-oe/recipes-support/daemontools/daemontools/warnings.patch
new file mode 100644
index 0000000000..5c9c7114b9
--- /dev/null
+++ b/meta-oe/recipes-support/daemontools/daemontools/warnings.patch
@@ -0,0 +1,76 @@
+Upstream-Status: Pending
+
+Fixup misc warnings
+
+Patch by RiverRat
+
+http://bugs.gentoo.org/124487
+
+--- a/src/chkshsgr.c
++++ b/src/chkshsgr.c
+@@ -1,10 +1,13 @@
+ /* Public domain. */
+
++#include <sys/types.h>
++#include <stdlib.h>
++#include <grp.h>
+ #include <unistd.h>
+
+ int main()
+ {
+- short x[4];
++ gid_t x[4];
+
+ x[0] = x[1] = 0;
+ if (getgroups(1,x) == 0) if (setgroups(1,x) == -1) _exit(1);
+--- a/src/matchtest.c
++++ b/src/matchtest.c
+@@ -1,3 +1,4 @@
++#include <unistd.h>
+ #include "match.h"
+ #include "buffer.h"
+ #include "str.h"
+--- a/src/multilog.c
++++ b/src/multilog.c
+@@ -1,3 +1,4 @@
++#include <stdio.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+--- a/src/prot.c
++++ b/src/prot.c
+@@ -1,5 +1,8 @@
+ /* Public domain. */
+
++#include <sys/types.h>
++#include <unistd.h>
++#include <grp.h>
+ #include "hasshsgr.h"
+ #include "prot.h"
+
+--- a/src/seek_set.c
++++ b/src/seek_set.c
+@@ -1,6 +1,7 @@
+ /* Public domain. */
+
+ #include <sys/types.h>
++#include <unistd.h>
+ #include "seek.h"
+
+ #define SET 0 /* sigh */
+--- a/src/supervise.c
++++ b/src/supervise.c
+@@ -1,3 +1,4 @@
++#include <stdio.h>
+ #include <unistd.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+--- a/src/pathexec_run.c
++++ b/src/pathexec_run.c
+@@ -1,5 +1,6 @@
+ /* Public domain. */
+
++#include <unistd.h>
+ #include "error.h"
+ #include "stralloc.h"
+ #include "str.h"
diff --git a/meta-oe/recipes-support/daemontools/daemontools_0.76.bb b/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
index 84e9bca0ee..a35b54e3bc 100644
--- a/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
+++ b/meta-oe/recipes-support/daemontools/daemontools_0.76.bb
@@ -12,25 +12,24 @@ data."
SECTION = "System/Servers"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/PD;md5=b3597d12946881e13cb3b548d1173851"
+LIC_FILES_CHKSUM = "file://src/prot.c;beginline=1;endline=1;md5=96964cadf07e8f8c1e2ffb3b507dd647"
LICENSE = "PD"
-SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \
- file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
- file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff "
-
-SRC_URI_append_class-target = "file://cross-compile.patch \
- file://0001-daemontools-Fix-QA-Issue.patch "
+DEPENDS += "coreutils"
-SRC_URI_append_class-native = "file://0001-daemontools-native-Fix-a-warning.patch "
+SRC_URI = "http://cr.yp.to/daemontools/${BPN}-${PV}.tar.gz \
+ file://0001-error.h-include-errno.h-instead-of-extern-int.diff \
+ file://0002-supervise.c-.-supervise-may-be-a-symlink-if-it-s-da.diff \
+ file://cross-compile.patch \
+ file://0001-daemontools-Fix-QA-Issue.patch \
+ file://warnings.patch \
+ file://0001-Fix-signature-of-main-function.patch \
+"
SRC_URI[md5sum] = "1871af2453d6e464034968a0fbcb2bfc"
SRC_URI[sha256sum] = "a55535012b2be7a52dcd9eccabb9a198b13be50d0384143bd3b32b8710df4c1f"
-S = "${WORKDIR}/admin/${BPN}-${PV}"
-
-DEPENDS += "daemontools-native"
-DEPENDS_class-native = ""
+S = "${WORKDIR}/admin/${BP}"
do_compile() {
./package/compile
@@ -40,12 +39,10 @@ do_install() {
install -d ${D}/${bindir}
}
-do_install_append_class-native() {
- install -m 755 ${S}/compile/chkshsgr ${D}/${bindir}
-}
-
-do_install_append_class-target() {
+do_install:append:class-target() {
install -m755 ${S}/command/* ${D}/${bindir}
}
-BBCLASSEXTEND = "native"
+inherit update-alternatives
+ALTERNATIVE_PRIORITY = "100"
+ALTERNATIVE:${PN} = "svc svok"
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/devmem2/devmem2.bb b/meta-oe/recipes-support/devmem2/devmem2.bb
deleted file mode 100644
index 9bd1eb73d7..0000000000
--- a/meta-oe/recipes-support/devmem2/devmem2.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-SUMMARY = "Simple program to read/write from/to any location in memory"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://devmem2.c;endline=38;md5=a9eb9f3890384519f435aedf986297cf"
-PR = "r7"
-
-SRC_URI = "http://www.free-electrons.com/pub/mirror/devmem2.c;downloadfilename=devmem2-new.c \
- file://devmem2-fixups-2.patch;apply=yes;striplevel=0 \
- file://0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch"
-
-S = "${WORKDIR}"
-
-CFLAGS += "-DFORCE_STRICT_ALIGNMENT"
-
-python do_unpack_append() {
- os.rename("devmem2-new.c", "devmem2.c")
-}
-
-do_compile() {
- ${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS}
-}
-
-do_install() {
- install -d ${D}${bindir}
- install devmem2 ${D}${bindir}
-}
-
-SRC_URI[md5sum] = "e23f236e94be4c429aa1ceac0f01544b"
-SRC_URI[sha256sum] = "3b15515693bae1ebd14d914e46d388edfec2175829ea1576a7a0c8606ebbe639"
diff --git a/meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch b/meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch
deleted file mode 100644
index 2a57f29891..0000000000
--- a/meta-oe/recipes-support/devmem2/devmem2/0001-devmem.c-ensure-word-is-32-bit-and-add-support-for-6.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 1360a907879dd24041797a3b709d49aeac2ab444 Mon Sep 17 00:00:00 2001
-From: Denys Dmytriyenko <denys@ti.com>
-Date: Tue, 29 May 2018 16:55:42 -0400
-Subject: [PATCH] devmem.c: ensure word is 32-bit and add support for 64-bit
- long
-
-Signed-off-by: Denys Dmytriyenko <denys@ti.com>
----
- devmem2.c | 23 +++++++++++++++++------
- 1 file changed, 17 insertions(+), 6 deletions(-)
-
-diff --git a/devmem2.c b/devmem2.c
-index 5845381..68131b2 100644
---- a/devmem2.c
-+++ b/devmem2.c
-@@ -39,6 +39,7 @@
-
- #include <stdio.h>
- #include <stdlib.h>
-+#include <stdint.h>
- #include <unistd.h>
- #include <string.h>
- #include <errno.h>
-@@ -69,7 +70,7 @@ int main(int argc, char **argv) {
- if(argc < 2) {
- fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
- "\taddress : memory address to act upon\n"
-- "\ttype : access operation type : [b]yte, [h]alfword, [w]ord\n"
-+ "\ttype : access operation type : [b]yte, [h]alfword, [w]ord, [l]ong\n"
- "\tdata : data to be written\n\n",
- argv[0]);
- exit(1);
-@@ -103,9 +104,14 @@ int main(int argc, char **argv) {
- read_result = *((unsigned short *) virt_addr);
- break;
- case 'w':
-- data_size = sizeof(unsigned long);
-+ data_size = sizeof(uint32_t);
- virt_addr = fixup_addr(virt_addr, data_size);
-- read_result = *((unsigned long *) virt_addr);
-+ read_result = *((uint32_t *) virt_addr);
-+ break;
-+ case 'l':
-+ data_size = sizeof(uint64_t);
-+ virt_addr = fixup_addr(virt_addr, data_size);
-+ read_result = *((uint64_t *) virt_addr);
- break;
- default:
- fprintf(stderr, "Illegal data type '%c'.\n", access_type);
-@@ -129,9 +135,14 @@ int main(int argc, char **argv) {
- read_result = *((unsigned short *) virt_addr);
- break;
- case 'w':
-- virt_addr = fixup_addr(virt_addr, sizeof(unsigned long));
-- *((unsigned long *) virt_addr) = write_val;
-- read_result = *((unsigned long *) virt_addr);
-+ virt_addr = fixup_addr(virt_addr, sizeof(uint32_t));
-+ *((uint32_t *) virt_addr) = write_val;
-+ read_result = *((uint32_t *) virt_addr);
-+ break;
-+ case 'l':
-+ virt_addr = fixup_addr(virt_addr, sizeof(uint64_t));
-+ *((uint64_t *) virt_addr) = write_val;
-+ read_result = *((uint64_t *) virt_addr);
- break;
- }
- sprintf(fmt_str, "Write at address 0x%%08lX (%%p): 0x%%0%dlX, "
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch b/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
deleted file mode 100644
index 4517797fc7..0000000000
--- a/meta-oe/recipes-support/devmem2/devmem2/devmem2-fixups-2.patch
+++ /dev/null
@@ -1,91 +0,0 @@
---- devmem2.c 2004-08-05 01:55:25.000000000 +0200
-+++ devmem2_modif.c 2011-01-13 15:48:37.798799784 +0100
-@@ -45,12 +45,16 @@
- #define MAP_SIZE 4096UL
- #define MAP_MASK (MAP_SIZE - 1)
-
-+static inline void *fixup_addr(void *addr, size_t size);
-+
- int main(int argc, char **argv) {
- int fd;
- void *map_base, *virt_addr;
-- unsigned long read_result, writeval;
-+ unsigned long read_result, write_val;
- off_t target;
- int access_type = 'w';
-+ char fmt_str[128];
-+ size_t data_size;
-
- if(argc < 2) {
- fprintf(stderr, "\nUsage:\t%s { address } [ type [ data ] ]\n"
-@@ -79,38 +83,51 @@
- virt_addr = map_base + (target & MAP_MASK);
- switch(access_type) {
- case 'b':
-+ data_size = sizeof(unsigned char);
-+ virt_addr = fixup_addr(virt_addr, data_size);
- read_result = *((unsigned char *) virt_addr);
- break;
- case 'h':
-+ data_size = sizeof(unsigned short);
-+ virt_addr = fixup_addr(virt_addr, data_size);
- read_result = *((unsigned short *) virt_addr);
- break;
- case 'w':
-+ data_size = sizeof(unsigned long);
-+ virt_addr = fixup_addr(virt_addr, data_size);
- read_result = *((unsigned long *) virt_addr);
- break;
- default:
- fprintf(stderr, "Illegal data type '%c'.\n", access_type);
- exit(2);
- }
-- printf("Value at address 0x%X (%p): 0x%X\n", target, virt_addr, read_result);
-+ sprintf(fmt_str, "Read at address 0x%%08lX (%%p): 0x%%0%dlX\n", 2*data_size);
-+ printf(fmt_str, (unsigned long)target, virt_addr, read_result);
- fflush(stdout);
-
- if(argc > 3) {
-- writeval = strtoul(argv[3], 0, 0);
-+ write_val = strtoul(argv[3], 0, 0);
- switch(access_type) {
- case 'b':
-- *((unsigned char *) virt_addr) = writeval;
-+ virt_addr = fixup_addr(virt_addr, sizeof(unsigned char));
-+ *((unsigned char *) virt_addr) = write_val;
- read_result = *((unsigned char *) virt_addr);
- break;
- case 'h':
-- *((unsigned short *) virt_addr) = writeval;
-+ virt_addr = fixup_addr(virt_addr, sizeof(unsigned short));
-+ *((unsigned short *) virt_addr) = write_val;
- read_result = *((unsigned short *) virt_addr);
- break;
- case 'w':
-- *((unsigned long *) virt_addr) = writeval;
-+ virt_addr = fixup_addr(virt_addr, sizeof(unsigned long));
-+ *((unsigned long *) virt_addr) = write_val;
- read_result = *((unsigned long *) virt_addr);
- break;
- }
-- printf("Written 0x%X; readback 0x%X\n", writeval, read_result);
-+ sprintf(fmt_str, "Write at address 0x%%08lX (%%p): 0x%%0%dlX, "
-+ "readback 0x%%0%dlX\n", 2*data_size, 2*data_size);
-+ printf(fmt_str, (unsigned long)target, virt_addr,
-+ write_val, read_result);
- fflush(stdout);
- }
-
-@@ -119,3 +136,12 @@
- return 0;
- }
-
-+static inline void *fixup_addr(void *addr, size_t size)
-+{
-+#ifdef FORCE_STRICT_ALIGNMENT
-+ unsigned long aligned_addr = (unsigned long)addr;
-+ aligned_addr &= ~(size - 1);
-+ addr = (void *)aligned_addr;
-+#endif
-+ return addr;
-+}
diff --git a/meta-oe/recipes-support/devmem2/devmem2_2.0.bb b/meta-oe/recipes-support/devmem2/devmem2_2.0.bb
new file mode 100644
index 0000000000..aee6bfe3da
--- /dev/null
+++ b/meta-oe/recipes-support/devmem2/devmem2_2.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Simple program to read/write from/to any location in memory"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://devmem2.c;endline=38;md5=a9eb9f3890384519f435aedf986297cf"
+
+SRC_URI = "git://github.com/denix0/devmem2.git;protocol=https;branch=main"
+SRCREV = "5b395a946894eb4f4ef5d07c80a50a88573a541e"
+
+S = "${WORKDIR}/git"
+
+CFLAGS += "-DFORCE_STRICT_ALIGNMENT"
+
+do_compile() {
+ ${CC} -o devmem2 devmem2.c ${CFLAGS} ${LDFLAGS}
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install devmem2 ${D}${bindir}
+}
diff --git a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.11.bb b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.11.bb
new file mode 100644
index 0000000000..4641b0181a
--- /dev/null
+++ b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.11.bb
@@ -0,0 +1,24 @@
+require dfu-util_${PV}.bb
+
+inherit deploy native
+
+DEPENDS = "libusb1-native"
+
+PACKAGECONFIG ??= ""
+
+PACKAGECONFIG[static] = "CFLAGS='${CFLAGS} -pthread -static',,"
+
+do_deploy() {
+ install -m 0755 src/dfu-util ${DEPLOYDIR}/dfu-util-${PV}
+ rm -f ${DEPLOYDIR}/dfu-util
+ ln -sf ./dfu-util-${PV} ${DEPLOYDIR}/dfu-util
+}
+
+addtask deploy before do_package after do_install
+
+# cleandirs should possibly be in deploy.bbclass but we need it
+do_deploy[cleandirs] = "${DEPLOYDIR}"
+# clear stamp-extra-info since MACHINE_ARCH is normally put there by
+# deploy.bbclass
+do_deploy[stamp-extra-info] = ""
+
diff --git a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb b/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
deleted file mode 100644
index aeca23bf2d..0000000000
--- a/meta-oe/recipes-support/dfu-util/dfu-util-native_0.9.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-require dfu-util_${PV}.bb
-
-inherit native deploy
-
-DEPENDS = "libusb1-native"
-
-SRC_URI += "file://0001-Revert-Makefile.am-Drop-static-dfu-util.patch"
-
-do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
-do_deploy() {
- install -m 0755 src/dfu-util_static ${DEPLOYDIR}/dfu-util-${PV}
- rm -f ${DEPLOYDIR}/dfu-util
- ln -sf ./dfu-util-${PV} ${DEPLOYDIR}/dfu-util
-}
-addtask deploy before do_package after do_install
diff --git a/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch b/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch
deleted file mode 100644
index 1c6ad0807e..0000000000
--- a/meta-oe/recipes-support/dfu-util/dfu-util/0001-Revert-Makefile.am-Drop-static-dfu-util.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From c2aab3b9ae1febcb6b4c6561a59df1930a57b394 Mon Sep 17 00:00:00 2001
-From: Martin JaMa Jansa <Martin.Jansa@gmail.com>
-Date: Thu, 11 Aug 2011 11:19:52 +0200
-Subject: [PATCH] Revert "Makefile.am: Drop static dfu-util"
-
-This reverts commit fe0426ddc04f503d148c5e5f931f16b8f674f071.
-
-Signed-off-by: Martin JaMa Jansa <Martin.Jansa@gmail.com>
----
- configure.ac | 2 +-
- src/Makefile.am | 22 +++++++++++++++++++++-
- 2 files changed, 22 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f5a43b8..6a3757e 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -21,7 +21,7 @@ AS_IF([test x$native_libusb = xno], [
- AC_MSG_ERROR([*** Required libusb-1.0 >= 1.0.0 not installed ***]))
- ])
-
--LIBS="$LIBS $USB_LIBS"
-+LIBS="$LIBS $USB_LIBS -lpthread"
- CFLAGS="$CFLAGS $USB_CFLAGS"
-
- # Checks for header files.
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 70179c4..e8736ee 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -1,6 +1,6 @@
- AM_CFLAGS = -Wall -Wextra
-
--bin_PROGRAMS = dfu-util dfu-suffix dfu-prefix
-+bin_PROGRAMS = dfu-util dfu-util_static dfu-suffix dfu-prefix
- dfu_util_SOURCES = main.c \
- portable.h \
- dfu_load.c \
-@@ -19,6 +19,26 @@ dfu_util_SOURCES = main.c \
- quirks.c \
- quirks.h
-
-+dfu_util_static_SOURCES = main.c \
-+ portable.h \
-+ dfu_load.c \
-+ dfu_load.h \
-+ dfu_util.c \
-+ dfu_util.h \
-+ dfuse.c \
-+ dfuse.h \
-+ dfuse_mem.c \
-+ dfuse_mem.h \
-+ dfu.c \
-+ dfu.h \
-+ usb_dfu.h \
-+ dfu_file.c \
-+ dfu_file.h \
-+ quirks.c \
-+ quirks.h
-+
-+dfu_util_static_LDFLAGS = -static
-+
- dfu_suffix_SOURCES = suffix.c \
- dfu_file.h \
- dfu_file.c
---
-2.7.2
-
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
new file mode 100644
index 0000000000..7f80a30535
--- /dev/null
+++ b/meta-oe/recipes-support/dfu-util/dfu-util_0.11.bb
@@ -0,0 +1,12 @@
+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"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+DEPENDS = "libusb1"
+
+SRC_URI = "http://dfu-util.sourceforge.net/releases/${BP}.tar.gz"
+SRC_URI[sha256sum] = "b4b53ba21a82ef7e3d4c47df2952adf5fa494f499b6b0b57c58c5d04ae8ff19e"
+
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb b/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
deleted file mode 100644
index 76e1552c0c..0000000000
--- a/meta-oe/recipes-support/dfu-util/dfu-util_0.9.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "USB Device Firmware Upgrade utility"
-HOMEPAGE = "http://dfu-util.sourceforge.net"
-SECTION = "devel"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "http://dfu-util.gnumonks.org/releases/${BP}.tar.gz"
-
-inherit autotools pkgconfig
-
-DEPENDS = "libusb1"
-
-SRC_URI[md5sum] = "233bb1e08ef4b405062445d84e28fde6"
-SRC_URI[sha256sum] = "36428c6a6cb3088cad5a3592933385253da5f29f2effa61518ee5991ea38f833"
diff --git a/meta-oe/recipes-support/dhex/dhex_0.69.bb b/meta-oe/recipes-support/dhex/dhex_0.69.bb
new file mode 100644
index 0000000000..3cc870481f
--- /dev/null
+++ b/meta-oe/recipes-support/dhex/dhex_0.69.bb
@@ -0,0 +1,25 @@
+SUMMARY = "dhex is a hex editor that includes a diff mode"
+SECTION = "console/utils"
+HOMEPAGE = "http://www.dettus.net/dhex/"
+
+DEPENDS = "ncurses"
+
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://README.txt;beginline=229;endline=241;md5=6f252a421b65bcecf624382ba3c899da"
+
+SRC_URI = "http://www.dettus.net/dhex/dhex_0.69.tar.gz"
+SRC_URI[md5sum] = "64d557437fe110c19f23ed3e9bbcdd54"
+SRC_URI[sha256sum] = "52730bcd1cf16bd4dae0de42531be9a4057535ec61ca38c0804eb8246ea6c41b"
+
+S = "${WORKDIR}/dhex_${PV}"
+
+EXTRA_OEMAKE += "'CC=${CC}' 'LDFLAGS=${LDFLAGS}' 'CPPFLAGS=${CPPFLAGS}'"
+
+do_compile() {
+ oe_runmake
+}
+
+do_install() {
+ install -m 0755 -d ${D}${bindir}
+ install -m 0755 ${S}/dhex ${D}${bindir}/
+}
diff --git a/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb b/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb
new file mode 100644
index 0000000000..6565097334
--- /dev/null
+++ b/meta-oe/recipes-support/digitemp/digitemp_3.7.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "read temperature sensors in a 1-Wire net"
+SECTION = "util"
+DEPENDS = "libusb1"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0"
+
+SRC_URI = "git://github.com/bcl/digitemp;branch=master;protocol=https"
+
+SRCREV = "a162e63aad35358aab325388f3d5e88121606419"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "ds9097 ds9097u \
+ SYSTYPE='Linux' \
+"
+do_configure() {
+ rm -f digitemp_*
+}
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 digitemp_* ${D}${sbindir}
+}
diff --git a/meta-oe/recipes-support/digitemp/digitemp_git.bb b/meta-oe/recipes-support/digitemp/digitemp_git.bb
deleted file mode 100644
index 460aa14384..0000000000
--- a/meta-oe/recipes-support/digitemp/digitemp_git.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "read temperature sensors in a 1-Wire net"
-SECTION = "util"
-DEPENDS = "libusb1"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=44fee82a1d2ed0676cf35478283e0aa0"
-
-PV = "3.7.1+git${SRCPV}"
-
-SRC_URI = "git://github.com/bcl/digitemp"
-
-SRCREV = "389f67655efa1674f595106c3a47b5ad082609a7"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OEMAKE = "ds9097 ds9097u \
- SYSTYPE='Linux' \
-"
-do_configure() {
- rm -f digitemp_*
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 digitemp_* ${D}${sbindir}
-}
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
new file mode 100644
index 0000000000..2324af4997
--- /dev/null
+++ b/meta-oe/recipes-support/dool/dool/0001-Fix-build-error-as-following.patch
@@ -0,0 +1,39 @@
+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/0001-Fix-rename-in-docs.patch b/meta-oe/recipes-support/dool/dool/0001-Fix-rename-in-docs.patch
new file mode 100644
index 0000000000..8d576f5d58
--- /dev/null
+++ b/meta-oe/recipes-support/dool/dool/0001-Fix-rename-in-docs.patch
@@ -0,0 +1,261 @@
+From 689c65fb050976d5a548a5b9a0f5d2c14eaa3301 Mon Sep 17 00:00:00 2001
+From: Alexander Stein <alexander.stein@tq-group.com>
+Date: Thu, 8 Dec 2022 14:11:46 +0100
+Subject: [PATCH 1/1] Fix rename in docs
+
+The content of dool.1.adoc is completly unchanged from dstat.1.adoc.
+Unfortunately the 'NAME' specifies the created file name. So
+building/cleaning docs is currently broken
+
+Upstream-Status: Pending
+https://github.com/scottchiefbaker/dool/pull/30
+
+Signed-off-by: Alexander Stein <alexander.stein@tq-group.com>
+---
+ docs/dool.1.adoc | 108 +++++++++++++++++++++++------------------------
+ 1 file changed, 54 insertions(+), 54 deletions(-)
+
+diff --git a/docs/dool.1.adoc b/docs/dool.1.adoc
+index 24c4a54..921df1f 100644
+--- a/docs/dool.1.adoc
++++ b/docs/dool.1.adoc
+@@ -1,35 +1,35 @@
+-= dstat(1)
++= dool(1)
+ Dag Wieers <dag@wieers.com>
+ v0.7.3, August 2014
+
+
+ == NAME
+-dstat - versatile tool for generating system resource statistics
++dool - versatile tool for generating system resource statistics
+
+
+ == SYNOPSIS
+-dstat [-afv] [options..] [delay [count]]
++dool [-afv] [options..] [delay [count]]
+
+
+ == DESCRIPTION
+-Dstat is a versatile replacement for vmstat, iostat and ifstat. Dstat
++Dool is a versatile replacement for vmstat, iostat and ifstat. Dool
+ overcomes some of the limitations and adds some extra features.
+
+-Dstat allows you to view all of your system resources instantly, you
++Dool allows you to view all of your system resources instantly, you
+ can eg. compare disk usage in combination with interrupts from your
+ IDE controller, or compare the network bandwidth numbers directly with
+ the disk throughput (in the same interval).
+
+-Dstat also cleverly gives you the most detailed information in columns
++Dool also cleverly gives you the most detailed information in columns
+ and clearly indicates in what magnitude and unit the output is displayed.
+ Less confusion, less mistakes, more efficient.
+
+-Dstat is unique in letting you aggregate block device throughput for a
++Dool is unique in letting you aggregate block device throughput for a
+ certain diskset or network bandwidth for a group of interfaces, ie.
+ you can see the throughput for all the block devices that make up a
+ single filesystem or storage system.
+
+-Dstat allows its data to be directly written to a CSV file to be
++Dool allows its data to be directly written to a CSV file to be
+ imported and used by OpenOffice, Gnumeric or Excel to create graphs.
+
+ [NOTE]
+@@ -187,13 +187,13 @@ Possible internal stats are::
+ write CSV output to file
+
+ --profile::
+- show profiling statistics when exiting dstat
++ show profiling statistics when exiting dool
+
+
+ == PLUGINS
+-While anyone can create their own dstat plugins (and contribute them) dstat
++While anyone can create their own dool plugins (and contribute them) dool
+ ships with a number of plugins already that extend its capabilities greatly.
+-Here is an overview of the plugins dstat ships with:
++Here is an overview of the plugins dool ships with:
+
+ --battery::
+ battery in percentage (needs ACPI)
+@@ -225,17 +225,17 @@ Here is an overview of the plugins dstat ships with:
+ --disk-wait::
+ average time (in milliseconds) for I/O requests issued to the device to be served
+
+---dstat::
+- show dstat cputime consumption and latency
++--dool::
++ show dool cputime consumption and latency
+
+---dstat-cpu::
+- show dstat advanced cpu usage
++--dool-cpu::
++ show dool advanced cpu usage
+
+---dstat-ctxt::
+- show dstat context switches
++--dool-ctxt::
++ show dool context switches
+
+---dstat-mem::
+- show dstat advanced memory usage
++--dool-mem::
++ show dool advanced memory usage
+
+ --fan::
+ fan speed (needs ACPI)
+@@ -250,7 +250,7 @@ Here is an overview of the plugins dstat ships with:
+ GPFS filesystem operations (needs mmpmon)
+
+ --helloworld::
+- Hello world example dstat plugin
++ Hello world example dool plugin
+
+ --innodb-buffer::
+ show innodb buffer stats
+@@ -340,22 +340,22 @@ Here is an overview of the plugins dstat ships with:
+ show sendmail queue size (needs sendmail)
+
+ --snmp-cpu::
+- show CPU stats using SNMP from DSTAT_SNMPSERVER
++ show CPU stats using SNMP from DOOL_SNMPSERVER
+
+ --snmp-load::
+- show load stats using SNMP from DSTAT_SNMPSERVER
++ show load stats using SNMP from DOOL_SNMPSERVER
+
+ --snmp-mem::
+- show memory stats using SNMP from DSTAT_SNMPSERVER
++ show memory stats using SNMP from DOOL_SNMPSERVER
+
+ --snmp-net::
+- show network stats using SNMP from DSTAT_SNMPSERVER
++ show network stats using SNMP from DOOL_SNMPSERVER
+
+ --snmp-net-err:
+- show network errors using SNMP from DSTAT_SNMPSERVER
++ show network errors using SNMP from DOOL_SNMPSERVER
+
+ --snmp-sys::
+- show system stats (interrupts and context switches) using SNMP from DSTAT_SNMPSERVER
++ show system stats (interrupts and context switches) using SNMP from DOOL_SNMPSERVER
+
+ --snooze::
+ show number of ticks per second
+@@ -463,7 +463,7 @@ The default delay is 1 and count is unspecified (unlimited)
+
+
+ == INTERMEDIATE UPDATES
+-When invoking dstat with a *delay* greater than 1 and without the
++When invoking dool with a *delay* greater than 1 and without the
+ *--noupdate* option, it will show intermediate updates, ie. the first
+ time a 1 sec average, the second update a 2 second average, etc. until
+ the delay has been reached.
+@@ -475,34 +475,34 @@ average on a new line, just like with vmstat.
+
+
+ == EXAMPLES
+-Using dstat to relate disk-throughput with network-usage (eth0), total CPU-usage and system counters:
++Using dool to relate disk-throughput with network-usage (eth0), total CPU-usage and system counters:
+ ----
+-dstat -dnyc -N eth0 -C total -f 5
++dool -dnyc -N eth0 -C total -f 5
+ ----
+
+-Checking dstat's behaviour and the system impact of dstat:
++Checking dool's behaviour and the system impact of dool:
+ ----
+-dstat -taf --debug
++dool -taf --debug
+ ----
+
+ Using the time plugin together with cpu, net, disk, system, load, proc and
+ top_cpu plugins:
+ ----
+-dstat -tcndylp --top-cpu
++dool -tcndylp --top-cpu
+ ----
+ this is identical to
+ ----
+-dstat --time --cpu --net --disk --sys --load --proc --top-cpu
++dool --time --cpu --net --disk --sys --load --proc --top-cpu
+ ----
+
+-Using dstat to relate advanced cpu stats with interrupts per device:
++Using dool to relate advanced cpu stats with interrupts per device:
+ ----
+-dstat -t --cpu-adv -yif
++dool -t --cpu-adv -yif
+ ----
+
+
+ == BUGS
+-Since it is practically impossible to test dstat on every possible
++Since it is practically impossible to test dool on every possible
+ permutation of kernel, python or distribution version, I need your
+ help and your feedback to fix the remaining problems. If you have
+ improvements or bugreports, please send them to:
+@@ -513,40 +513,40 @@ Please see the TODO file for known bugs and future plans.
+
+
+ == FILES
+-Paths that may contain external dstat_*.py plugins:
++Paths that may contain external dool_*.py plugins:
+
+- ~/.dstat/
++ ~/.dool/
+ (path of binary)/plugins/
+- /usr/share/dstat/
+- /usr/local/share/dstat/
++ /usr/share/dool/
++ /usr/local/share/dool/
+
+ == ENVIRONMENT VARIABLES
+
+-Dstat will read additional command line arguments from the environment
+-variable *DSTAT_OPTS*. You can use this to configure Dstat's default
++Dool will read additional command line arguments from the environment
++variable *DOOL_OPTS*. You can use this to configure Dool's default
+ behavior, e.g. if you have a black-on-white terminal:
+
+- export DSTAT_OPTS="--bw --noupdate"
++ export DOOL_OPTS="--bw --noupdate"
+
+ Other internal or external plugins have their own environment variables
+ to influence their behavior, e.g.
+
+
+- DSTAT_NTPSERVER
++ DOOL_NTPSERVER
+
+- DSTAT_MYSQL
+- DSTAT_MYSQL_HOST
+- DSTAT_MYSQL_PORT
+- DSTAT_MYSQL_SOCKET
+- DSTAT_MYSQL_USER
+- DSTAT_MYSQL_PWD
++ DOOL_MYSQL
++ DOOL_MYSQL_HOST
++ DOOL_MYSQL_PORT
++ DOOL_MYSQL_SOCKET
++ DOOL_MYSQL_USER
++ DOOL_MYSQL_PWD
+
+- DSTAT_SNMPSERVER
+- DSTAT_SNMPCOMMUNITY
++ DOOL_SNMPSERVER
++ DOOL_SNMPCOMMUNITY
+
+- DSTAT_SQUID_OPTS
++ DOOL_SQUID_OPTS
+
+- DSTAT_TIMEFMT
++ DOOL_TIMEFMT
+
+ == SEE ALSO
+
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/dool/dool_1.1.0.bb b/meta-oe/recipes-support/dool/dool_1.1.0.bb
new file mode 100644
index 0000000000..211f3a2b11
--- /dev/null
+++ b/meta-oe/recipes-support/dool/dool_1.1.0.bb
@@ -0,0 +1,25 @@
+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 \
+ file://0001-Fix-rename-in-docs.patch \
+ "
+
+SRCREV = "41ec7b392b358dae29f0b587711d5c8f7f462805"
+
+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/dos2unix/dos2unix_7.4.0.bb b/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
deleted file mode 100644
index 8d3c578d0d..0000000000
--- a/meta-oe/recipes-support/dos2unix/dos2unix_7.4.0.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Convert text file line endings between CRLF and LF"
-DESCRIPTION = "The Dos2unix package includes utilities dos2unix and \
-unix2dos to convert plain text files in DOS or Mac format to Unix \
-format and vice versa."
-HOMEPAGE = "http://waterlan.home.xs4all.nl/dos2unix.html"
-SECTION = "support"
-
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=1b78fca784db24f4a40e30b300787f3f"
-
-SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
-
-# Release 7.4.0
-SRCREV = "1182533bde3c1fe65be2ead465e87671faa2c027"
-
-S = "${WORKDIR}/git/dos2unix"
-
-inherit gettext perlnative
-
-# The dos2unix NLS relies on po4a-native, while po4a recipe is
-# provided by meta-perl layer, so make it optional here, you
-# need have meta-perl in bblayers.conf before enabling nls in
-# PACKAGECONFIG.
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[nls] = "ENABLE_NLS=1,ENABLE_NLS=,po4a-native"
-
-EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} LDFLAGS_USER='${LDFLAGS}'"
-EXTRA_OEMAKE_class-native = "ENABLE_NLS="
-
-do_install () {
- oe_runmake DESTDIR="${D}${base_prefix}" install
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/driverctl/driverctl_0.111.bb b/meta-oe/recipes-support/driverctl/driverctl_0.111.bb
new file mode 100644
index 0000000000..f5f542c541
--- /dev/null
+++ b/meta-oe/recipes-support/driverctl/driverctl_0.111.bb
@@ -0,0 +1,28 @@
+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/dstat/dstat_0.7.3.bb b/meta-oe/recipes-support/dstat/dstat_0.7.3.bb
deleted file mode 100644
index 18af738fa8..0000000000
--- a/meta-oe/recipes-support/dstat/dstat_0.7.3.bb
+++ /dev/null
@@ -1,22 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS += "asciidoc-native xmlto-native"
-
-SRC_URI = "git://github.com/dagwieers/dstat.git"
-
-SRCREV = "ebace6d4177f8748f35cec87f7a49946046b0a20"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' install
-}
-
-RDEPENDS_${PN} += "python-core python-misc python-resource python-shell python-unixadmin"
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..91570b6f35
--- /dev/null
+++ b/meta-oe/recipes-support/edid-decode/edid-decode_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Decode EDID data in human-readable format"
+DESCRIPTION = "edid-decode decodes EDID monitor description data in human-readable format."
+AUTHOR = "Hans Verkuil <hverkuil-cisco@xs4all.nl>"
+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 = "e052f5f9fdf74ca11aa1a8edfa62eff8d0aa3d0d"
+PV = "0.0+git${SRCPV}"
+S = "${WORKDIR}/git"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch b/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch
new file mode 100644
index 0000000000..055128706c
--- /dev/null
+++ b/meta-oe/recipes-support/eject/eject/0001-eject-Include-sys-sysmacros.h-for-major-minor.patch
@@ -0,0 +1,27 @@
+From 433ffb21119a0f39e882dd3fea4742e64aadcc40 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Aug 2018 09:56:40 -0700
+Subject: [PATCH] eject: Include sys/sysmacros.h for major/minor
+
+Fixes
+arm-bec-linux-gnueabi/gcc/arm-bec-linux-gnueabi/8.2.0/ld: eject.o: in function `GetMajorMinor':
+/usr/src/debug/eject/2.1.5-r1/eject-2.1.5/../../../../../../../workspace/sources/eject/eject.c:866: undefined reference to `major'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ eject.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/eject.c b/eject.c
+index 47e09fe..b171218 100644
+--- a/eject.c
++++ b/eject.c
+@@ -54,6 +54,7 @@
+ #include <sys/wait.h>
+ #include <sys/mtio.h>
+ #include <sys/mount.h>
++#include <sys/sysmacros.h>
+
+ #if defined(__linux__)
+ #include <linux/version.h>
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 49a3d74f6f..33b31a2b1e 100644
--- a/meta-oe/recipes-support/eject/eject_2.1.5.bb
+++ b/meta-oe/recipes-support/eject/eject_2.1.5.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Eject allows removable media (typically a CD-ROM, floppy disk, tape, or JAZ or ZIP disk) to be ejected under software control."
HOMEPAGE = "http://eject.sourceforge.net/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
inherit autotools gettext update-alternatives
@@ -10,7 +10,8 @@ SRC_URI = "http://sources.openembedded.org/${BP}.tar.gz \
file://eject-2.1.1-verbose.patch \
file://eject-2.1.5-spaces.patch \
file://eject-timeout.patch \
-"
+ file://0001-eject-Include-sys-sysmacros.h-for-major-minor.patch \
+ "
SRC_URI[md5sum] = "b96a6d4263122f1711db12701d79f738"
SRC_URI[sha256sum] = "ef9f7906484cfde4ba223b2682a37058f9a3c7d3bb1adda7a34a67402e2ffe55"
@@ -19,7 +20,7 @@ S = "${WORKDIR}/${BPN}"
PR = "r1"
-do_compile_prepend() {
+do_compile:prepend() {
# PO subdir must be in build directory
if [ ! ${S} = ${B} ]; then
mkdir -p ${B}/po
@@ -27,11 +28,11 @@ do_compile_prepend() {
fi
}
-ALTERNATIVE_${PN} = "volname eject"
+ALTERNATIVE:${PN} = "volname eject"
ALTERNATIVE_LINK_NAME[volname] = "${bindir}/volname"
ALTERNATIVE_LINK_NAME[eject] = "${bindir}/eject"
ALTERNATIVE_PRIORITY[volname] = "100"
ALTERNATIVE_PRIORITY[eject] = "100"
-ALTERNATIVE_${PN}-doc = "eject.1"
+ALTERNATIVE:${PN}-doc = "eject.1"
ALTERNATIVE_LINK_NAME[eject.1] = "${mandir}/man1/eject.1"
diff --git a/meta-oe/recipes-support/emacs/emacs_28.2.bb b/meta-oe/recipes-support/emacs/emacs_28.2.bb
new file mode 100644
index 0000000000..137c29beea
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/emacs_28.2.bb
@@ -0,0 +1,276 @@
+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 \
+ file://0001-largefile.m4-Update-from-latest-gnulib.patch \
+ "
+SRC_URI:append:class-target = " file://usemake-docfile-native.patch"
+
+SRC_URI[sha256sum] = "ee21182233ef3232dc97b486af2d86e14042dbb65bbc535df562c3a858232488"
+
+CVE_CHECK_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 ??= "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/files/0001-largefile.m4-Update-from-latest-gnulib.patch b/meta-oe/recipes-support/emacs/files/0001-largefile.m4-Update-from-latest-gnulib.patch
new file mode 100644
index 0000000000..72c0c0e413
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/files/0001-largefile.m4-Update-from-latest-gnulib.patch
@@ -0,0 +1,390 @@
+From c2bea3d033b5abd44698722d8eedc2b87373b33b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 2 Apr 2023 10:42:43 -0700
+Subject: [PATCH] largefile.m4: Update from latest gnulib
+
+brings in latest largefile specific changes which autoconf 2.72+ requires
+
+Upstream-Status: Inappropriate [Drop it with new emacs release which has it]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/largefile.m4 | 330 ++++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 263 insertions(+), 67 deletions(-)
+
+diff --git a/m4/largefile.m4 b/m4/largefile.m4
+index 3e8b5e3..7fb81b8 100644
+--- a/m4/largefile.m4
++++ b/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-support/emacs/files/usemake-docfile-native.patch b/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
new file mode 100644
index 0000000000..95b4281836
--- /dev/null
+++ b/meta-oe/recipes-support/emacs/files/usemake-docfile-native.patch
@@ -0,0 +1,85 @@
+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/configure-hack.patch b/meta-oe/recipes-support/enca/enca/configure-hack.patch
deleted file mode 100644
index 85abcdcf02..0000000000
--- a/meta-oe/recipes-support/enca/enca/configure-hack.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- enca-1.9/configure.ac.orig 2006-02-15 00:57:39.000000000 -0800
-+++ enca-1.9/configure.ac 2006-02-15 00:57:46.000000000 -0800
-@@ -92,9 +92,6 @@
- dnl And for gtk-doc
- gtk_CHECK_GTK_DOC
-
--dnl Check for good random number sources
--AC_CHECK_FILES(/dev/random /dev/urandom /dev/srandom /dev/arandom)
--
- dnl Dirty path hack. Helps some people with badly set up search paths.
- if test "$prefix" = "NONE"; then
- LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
diff --git a/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch b/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch
deleted file mode 100644
index 6f6f3e320e..0000000000
--- a/meta-oe/recipes-support/enca/enca/configure-remove-dumbness.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- enca-1.9/configure.ac.orig 2006-06-29 15:30:44.000000000 +0100
-+++ enca-1.9/configure.ac 2006-06-29 15:31:41.000000000 +0100
-@@ -92,14 +92,15 @@
- dnl And for gtk-doc
- gtk_CHECK_GTK_DOC
-
--dnl Dirty path hack. Helps some people with badly set up search paths.
--if test "$prefix" = "NONE"; then
-- LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
-- CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
--else
-- LDFLAGS="$LDFLAGS -L$prefix/lib"
-- CPPFLAGS="$CPPFLAGS -I$prefix/include"
--fi
-+# This is really dumb code
-+#dnl Dirty path hack. Helps some people with badly set up search paths.
-+#if test "$prefix" = "NONE"; then
-+# LDFLAGS="$LDFLAGS -L$ac_default_prefix/lib"
-+# CPPFLAGS="$CPPFLAGS -I$ac_default_prefix/include"
-+#else
-+# LDFLAGS="$LDFLAGS -L$prefix/lib"
-+# CPPFLAGS="$CPPFLAGS -I$prefix/include"
-+#fi
-
- dnl Checks for libraries.
- ye_CHECK_LIBM
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 dbf0fb8ea7..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(-)
@@ -17,12 +19,12 @@ index fc8c6f8..3a59549 100644
+++ b/m4/libiconv.m4
@@ -17,7 +17,7 @@ AC_REQUIRE([AC_C_CONST])dnl
dnl
-
+
dnl Use standard iconv test
-AM_ICONV
+m4_pattern_allow([AM_ICONV])
- CONVERTOR_LIBS="$CONVERTOR_LIBS $LIBICONV"
-
+ CONVERTER_LIBS="$CONVERTER_LIBS $LIBICONV"
+
dnl Compile iconvcap.c and run it to determine what encodings iconv actually
--
1.9.3
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 accfbccd6b..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,7 +1,8 @@
---- enca-1.9/Makefile.am.orig 2006-06-29 15:34:55.000000000 +0100
-+++ enca-1.9/Makefile.am 2006-06-29 15:35:20.000000000 +0100
-@@ -1,8 +1,8 @@
- # @(#) $Id: Makefile.am,v 1.35 2005/11/24 10:21:32 yeti Exp $
+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 @@
if MAINTAINER_MODE
-SUBDIRS = tools data script lib src devel-docs test
+SUBDIRS = data script lib src devel-docs test
diff --git a/meta-oe/recipes-support/enca/enca_1.19.bb b/meta-oe/recipes-support/enca/enca_1.19.bb
new file mode 100644
index 0000000000..774f05f7c4
--- /dev/null
+++ b/meta-oe/recipes-support/enca/enca_1.19.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Enca is an Extremely Naive Charset Analyser"
+SECTION = "libs"
+HOMEPAGE = "https://cihar.com/software/enca/"
+
+DEPENDS += "gettext-native"
+
+LICENSE = "GPL-2.0-only"
+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://0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch"
+SRC_URI[sha256sum] = "4c305cc59f3e57f2cfc150a6ac511690f43633595760e1cb266bf23362d72f8a"
+
+inherit autotools
+
+do_configure:prepend() {
+ # remove failing test which checks for something that isn't even used
+ sed -i -e '/ye_FUNC_SCANF_MODIF_SIZE_T/d' ${S}/configure.ac
+}
+
+do_configure:append() {
+ sed -i s:-I/usr/include::g ${B}/Makefile
+ sed -i s:-I/usr/include::g ${B}/*/Makefile
+}
+
+do_compile() {
+ cd ${S}/tools && ${BUILD_CC} -o make_hash make_hash.c
+ cd ${B}
+ oe_runmake
+}
+
diff --git a/meta-oe/recipes-support/enca/enca_1.9.bb b/meta-oe/recipes-support/enca/enca_1.9.bb
deleted file mode 100644
index bf19843b2f..0000000000
--- a/meta-oe/recipes-support/enca/enca_1.9.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Enca is an Extremely Naive Charset Analyser"
-SECTION = "libs"
-HOMEPAGE = "http://trific.ath.cx/software/enca/"
-
-DEPENDS += "gettext-native"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=24b9569831c46d4818450b55282476b4"
-
-SRC_URI = "http://www.sourcefiles.org/Networking/Tools/Miscellanenous/enca-${PV}.tar.bz2 \
- file://configure-hack.patch \
- file://dont-run-tests.patch \
- file://configure-remove-dumbness.patch \
- file://makefile-remove-tools.patch \
- file://libenca-003-iconv.patch "
-
-SRC_URI[md5sum] = "b3581e28d68d452286fb0bfe58bed3b3"
-SRC_URI[sha256sum] = "02acfef2b24a9c842612da49338138311f909f1cd33933520c07b8b26c410f4d"
-
-inherit autotools
-
-do_configure_prepend() {
- # remove failing test which checks for something that isn't even used
- sed -i -e '/ye_FUNC_SCANF_MODIF_SIZE_T/d' ${S}/configure.ac
-}
-
-do_configure_append() {
- sed -i s:-I/usr/include::g ${B}/Makefile
- sed -i s:-I/usr/include::g ${B}/*/Makefile
-}
-
-do_compile() {
- cd ${S}/tools && ${BUILD_CC} -o make_hash make_hash.c
- cd ${B}
- oe_runmake
-}
-
diff --git a/meta-oe/recipes-support/epeg/epeg/0001-configure-Fix-checks-for-libjpeg-and-libexif.patch b/meta-oe/recipes-support/epeg/epeg/0001-configure-Fix-checks-for-libjpeg-and-libexif.patch
new file mode 100644
index 0000000000..1568fe96e1
--- /dev/null
+++ b/meta-oe/recipes-support/epeg/epeg/0001-configure-Fix-checks-for-libjpeg-and-libexif.patch
@@ -0,0 +1,32 @@
+From 4e0c62634b0db6dbad0d41377bb71a8012abd75b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 12:56:54 -0700
+Subject: [PATCH] configure: Fix checks for libjpeg and libexif
+
+Use the functions from the respective library instead of using main
+function which is not part of library
+
+Upstream-Status: Submitted [https://github.com/mattes/epeg/pull/27]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index a4f6ebd..e474b1d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,8 +31,8 @@ AC_SUBST(version_info)
+ dnl AC_CHECK_FUNCS(fmemopen)
+ dnl AC_CHECK_FUNCS(open_memstream)
+
+-AC_CHECK_LIB([jpeg], [main], [], [echo "libjpeg library not found. Please install it before proceeding"; exit -1])
+-AC_CHECK_LIB([exif], [main], [], [echo "libexif library not found. Please install it before proceeding"; exit -1])
++AC_CHECK_LIB([jpeg], [jpeg_simple_progression], [], [echo "libjpeg library not found. Please install it before proceeding"; exit -1])
++AC_CHECK_LIB([exif], [exif_data_new_from_file], [], [echo "libexif library not found. Please install it before proceeding"; exit -1])
+
+ my_includes=""
+ my_libs="-ljpeg -lexif"
+--
+2.37.3
+
diff --git a/meta-oe/recipes-support/epeg/epeg_git.bb b/meta-oe/recipes-support/epeg/epeg_git.bb
index 6b23bbf78c..e5277b1579 100644
--- a/meta-oe/recipes-support/epeg/epeg_git.bb
+++ b/meta-oe/recipes-support/epeg/epeg_git.bb
@@ -5,8 +5,10 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=e7732a9290ea1e4b034fdc15cf49968d \
file://COPYING-PLAIN;md5=f59cacc08235a546b0c34a5422133035"
DEPENDS = "jpeg libexif"
-SRC_URI = "git://github.com/mattes/epeg.git"
-SRCREV = "337f55346425fbf2d283e794b702318ef2a74bcb"
+SRC_URI = "git://github.com/mattes/epeg.git;branch=master;protocol=https \
+ file://0001-configure-Fix-checks-for-libjpeg-and-libexif.patch \
+ "
+SRCREV = "9a175cd67eaa61fe45413d8da82da72936567047"
S = "${WORKDIR}/git"
inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb b/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
deleted file mode 100644
index 79b2cc1f41..0000000000
--- a/meta-oe/recipes-support/espeak/espeak-data_1.48.04.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-require espeak.inc
-
-inherit native
-
-PACKAGES = "${PN}"
-FILES_${PN} = "${layout_datadir}"
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
-TARGET_ARCH = "${MACHINE_ARCH}"
-
-do_compile() {
- # Fixing byte order of phoneme data files
- cd "${S}/platforms/big_endian"
- sed -i '/^ *CC *=/d' Makefile
- sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c
- oe_runmake
- ./espeak-phoneme-data "${S}/espeak-data"
- cp -f phondata phonindex phontab "${S}/espeak-data"
-}
-
-do_install() {
- install -d ${D}${layout_datadir}/espeak-data
- install -m 0644 ${S}/espeak-data/phon* ${D}${layout_datadir}/espeak-data
-}
diff --git a/meta-oe/recipes-support/espeak/espeak.inc b/meta-oe/recipes-support/espeak/espeak.inc
deleted file mode 100644
index 60b3f73c81..0000000000
--- a/meta-oe/recipes-support/espeak/espeak.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "eSpeak is a compact open source software speech synthesizer"
-SECTION = "base"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://License.txt;md5=cb7a20edb4c9f5f478de6523dcd7362c"
-
-SRC_URI = "http://downloads.sourceforge.net/espeak/espeak-1.48.04-source.zip \
- file://gcc-narrowing-warning-fix.patch \
-"
-SRC_URI[md5sum] = "cadd7482eaafe9239546bdc09fa244c3"
-SRC_URI[sha256sum] = "bf9a17673adffcc28ff7ea18764f06136547e97bbd9edf2ec612f09b207f0659"
-
-S = "${WORKDIR}/espeak-${PV}-source"
-
-DEPENDS = "portaudio-v19"
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 552f40413b..147a8069fa 100644
--- a/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
+++ b/meta-oe/recipes-support/espeak/espeak_1.48.04.bb
@@ -1,22 +1,53 @@
-require espeak.inc
-inherit siteinfo
+DESCRIPTION = "eSpeak is a compact open source software speech synthesizer"
+SECTION = "base"
+LICENSE = "GPL-3.0-only"
+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"
+
+S = "${WORKDIR}/espeak-${PV}-source"
+
+DEPENDS = "portaudio-v19 qemu-helper-native"
+inherit siteinfo qemu
-EXTRA_PHONEMES = '${@bb.utils.contains("SITEINFO_ENDIANNESS", "be", "espeak-data (= ${PV})", "", d)}'
-RDEPENDS_${PN} = "portaudio-v19 ${EXTRA_PHONEMES}"
CXXFLAGS += "-DUSE_PORTAUDIO"
TARGET_CC_ARCH += "${LDFLAGS}"
-FILES_${PN} += "${datadir}/espeak-data"
+FILES:${PN} += "${datadir}/espeak-data"
do_configure() {
# "speak" binary, a TTS engine, uses portaudio in either APIs V18 or V19, use V19
- cp "${S}/src/portaudio19.h" "${S}/src/portaudio.h"
+ install -m 0644 "${S}/src/portaudio19.h" "${S}/src/portaudio.h"
}
do_compile() {
cd src
oe_runmake
+
+ cd "${S}/platforms/big_endian"
+ qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_TARGET}', ['${S}/platforms/big_endian', '${STAGING_DIR_TARGET}${base_libdir}'])}"
+ cat >qemuwrapper <<EOF
+#!/bin/sh
+$qemu_binary "\$@"
+EOF
+ chmod +x qemuwrapper
+ sed -i '/^ *CC *=/d' Makefile
+ # Fixing byte order of phoneme data files
+ if [ "${SITEINFO_ENDIANNESS}" = "be" ]; then
+ sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER BIG_ENDIAN\n\1/' espeak-phoneme-data.c
+ else
+ sed -i 's/\(.*BYTE_ORDER\)/#undef BYTE_ORDER\n#define BYTE_ORDER LITTLE_ENDIAN\n\1/' espeak-phoneme-data.c
+ fi
+ oe_runmake
+ ./qemuwrapper ./espeak-phoneme-data "${S}/espeak-data" "." "${S}/espeak-data/phondata-manifest"
+ cp -f phondata phonindex phontab "${S}/espeak-data"
}
do_install() {
@@ -31,11 +62,7 @@ do_install() {
ln -sf espeak/espeak.h ${D}${includedir}/
oe_libinstall -so -C src libespeak ${D}${libdir}
- if [ "${SITEINFO_ENDIANNESS}" = "be" ] ; then
- # the big-endian phon* files are provided by the package espeak-data
- rm -f ${S}/espeak-data/phon*
- fi
-
- cp -prf ${S}/espeak-data/* ${D}${datadir}/espeak-data
- chown -R root:root ${D}${datadir}/espeak-data
+ cp -R --no-dereference --preserve=mode,links ${S}/espeak-data/* ${D}${datadir}/espeak-data
}
+
+RDEPENDS:${PN} = "portaudio-v19"
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
new file mode 100644
index 0000000000..144c30a62f
--- /dev/null
+++ b/meta-oe/recipes-support/espeak/files/0001-Fix-build-of-shared-library-on-architectures-needing.patch
@@ -0,0 +1,33 @@
+From 08a464e2b6bd31bb2bf4e258ebfa9b9d65805abf Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Fri, 27 Nov 2015 15:17:02 +0100
+Subject: [PATCH] Fix build of shared library on architectures needing -fPIC
+
+Certain architectures, like Sparc and Sparc64 require objects to be
+built with -fPIC (and not just -fpic) to be usable in shared
+libraries. On other architectures, -fPIC is the same as -fpic so this
+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/src/Makefile b/src/Makefile
+index 95fe549..c293611 100755
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -110,7 +110,7 @@ $(BIN2_NAME): $(OBJS3) $(LIB_NAME)
+
+
+ x_%.o: %.cpp
+- $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fpic -fvisibility=hidden -pedantic \
++ $(CXX) $(CXXFLAGS) $(USE_AUDIO) -D PATH_ESPEAK_DATA=\"$(DATADIR)\" -Wall -fPIC -fvisibility=hidden -pedantic \
+ -I. -D LIBRARY -c -fno-exceptions $< -o x_$*.o
+
+ $(LIB_NAME): $(OBJS2)
+--
+2.6.3
+
diff --git a/meta-oe/recipes-support/espeak/files/0002-tr_languages-cast-string_ordinal-init-values.patch b/meta-oe/recipes-support/espeak/files/0002-tr_languages-cast-string_ordinal-init-values.patch
new file mode 100644
index 0000000000..cef360eaef
--- /dev/null
+++ b/meta-oe/recipes-support/espeak/files/0002-tr_languages-cast-string_ordinal-init-values.patch
@@ -0,0 +1,34 @@
+From 451330d09a6a3500b40bc4f5896ba790ab46cd6c Mon Sep 17 00:00:00 2001
+From: Romain Naour <romain.naour@gmail.com>
+Date: Sun, 15 Jan 2017 19:37:31 +0100
+Subject: [PATCH 2/2] tr_languages: cast string_ordinal init values
+
+On some architecture, "char" is signed (x86_64, nios2...) so the
+compiler try to convert int 0xc2 and 0xba to a signed char.
+This is an error since gcc6 (Wnarrowing).
+
+Fixes:
+http://autobuild.buildroot.net/results/bae/baef9888b1979d18171668a675985e3f3b45fda6
+
+Upstream-Status: Pending [imported from BR]
+Signed-off-by: Romain Naour <romain.naour@gmail.com>
+---
+ src/tr_languages.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/tr_languages.cpp b/src/tr_languages.cpp
+index 5c80286..dbc6e36 100644
+--- a/src/tr_languages.cpp
++++ b/src/tr_languages.cpp
+@@ -200,7 +200,7 @@ static const unsigned short chars_ignore_zwnj_hyphen[] = {
+ 0x200d, 1, // zero width joiner
+ 0, 0 };
+
+-const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
++const char string_ordinal[] = {(char)0xc2,(char)0xba,0}; // masculine ordinal character, UTF-8
+
+
+ static Translator* NewTranslator(void)
+--
+2.9.3
+
diff --git a/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch b/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
deleted file mode 100644
index 2a9b4607d9..0000000000
--- a/meta-oe/recipes-support/espeak/files/gcc-narrowing-warning-fix.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From f09c83640b9173552fd9277c3a48619b903fa436 Mon Sep 17 00:00:00 2001
-From: "Reece H. Dunn" <msclrhd@gmail.com>
-Date: Wed, 20 Jan 2016 20:48:29 +0000
-Subject: [PATCH] Fix GCC -Wnarrowing warnings.
-
----
- src/tr_languages.cpp | 7 ++++---
- src/translate.h | 2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-Index: espeak-1.48.04-source/src/tr_languages.cpp
-===================================================================
---- espeak-1.48.04-source.orig/src/tr_languages.cpp
-+++ espeak-1.48.04-source/src/tr_languages.cpp
-@@ -198,8 +198,8 @@ static const unsigned short chars_ignore
- 0x200d, 1, // zero width joiner
- 0, 0 };
-
--const char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
--
-+const unsigned char string_ordinal[] = {0xc2,0xba,0}; // masculine ordinal character, UTF-8
-+const unsigned char utf8_null[] = { 0 }; // null string, UTF-8
-
- static Translator* NewTranslator(void)
- {//===================================
-@@ -296,7 +296,7 @@ static const char transpose_map_latin[]
- tr->langopts.replace_chars = NULL;
- tr->langopts.ascii_language[0] = 0; // Non-Latin alphabet languages, use this language to speak Latin words, default is English
- tr->langopts.alt_alphabet_lang = L('e','n');
-- tr->langopts.roman_suffix = "";
-+ tr->langopts.roman_suffix = utf8_null;
-
- SetLengthMods(tr,201);
- // tr->langopts.length_mods = length_mods_en;
-@@ -758,7 +758,7 @@ Translator *SelectTranslator(const char
- tr->langopts.stress_flags = S_FINAL_SPANISH | S_FINAL_DIM_ONLY | S_FINAL_NO_2;
- tr->langopts.numbers = NUM_SINGLE_STRESS | NUM_DECIMAL_COMMA | NUM_AND_UNITS | NUM_OMIT_1_HUNDRED | NUM_OMIT_1_THOUSAND | NUM_ROMAN | NUM_ROMAN_ORDINAL;
- tr->langopts.numbers2 = NUM2_ORDINAL_NO_AND;
-- tr->langopts.roman_suffix = string_ordinal;
-+ tr->langopts.roman_suffix = utf8_null;
- }
- else
- if(name2 == L_pap)
-Index: espeak-1.48.04-source/src/translate.h
-===================================================================
---- espeak-1.48.04-source.orig/src/translate.h
-+++ espeak-1.48.04-source/src/translate.h
-@@ -545,7 +545,7 @@ typedef struct {
- int decimal_sep;
- int max_digits; // max number of digits which can be spoken as an integer number (rather than individual digits)
- const char *ordinal_indicator; // UTF-8 string
-- const char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an)
-+ const unsigned char *roman_suffix; // add this (ordinal) suffix to Roman numbers (LANG=an)
-
- // bit 0, accent name before the letter name, bit 1 "capital" after letter name
- int accents;
diff --git a/meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb b/meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb
new file mode 100644
index 0000000000..4501b082de
--- /dev/null
+++ b/meta-oe/recipes-support/evemu-tools/evemu-tools_git.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Kernel evdev device emulation"
+DESCRIPTION = "The evemu library and tools are used to describe devices, record data, create devices and replay data from kernel evdev devices."
+HOMEPAGE = "https://www.freedesktop.org/wiki/Evemu"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+DEPENDS = "libevdev"
+
+SRCREV = "86a5627dbeac8d9d9bc34326a758d6a477e876e4"
+SRC_URI = "git://git@gitlab.freedesktop.org/libevdev/evemu.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+PV = "gitr${SRCPV}"
+
+inherit autotools pkgconfig
+
+PACKAGES =+ "${PN}-python"
+FILES:${PN}-python = "${libdir}/python*/site-packages/*"
+RDEPENDS:${PN}-python = "python3"
+
diff --git a/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb b/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
deleted file mode 100644
index 13eb7943f7..0000000000
--- a/meta-oe/recipes-support/eventlog/eventlog_0.2.13.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Replacement syslog API"
-HOMEPAGE = "http://www.balabit.com/network-security/syslog-ng/opensource-logging-system"
-DESCRIPTION = "The EventLog library aims to be a replacement of the \
- simple syslog() API provided on UNIX systems. The \
- major difference between EventLog and syslog is that \
- EventLog tries to add structure to messages. EventLog \
- provides an interface to build, format and output an \
- event record. The exact format and output method can \
- be customized by the administrator via a configuration \
- file. his package is the runtime part of the library. \
-"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b8ba8e77bcda9a53fac0fe39fe957767"
-
-SRC_URI = "https://www.balabit.com/downloads/syslog-ng/open-source-edition/3.4.2/source/${BPN}_${PV}.tar.gz"
-
-inherit autotools pkgconfig
-
-SRC_URI[md5sum] = "68ec8d1ea3b98fa35002bb756227c315"
-SRC_URI[sha256sum] = "7cb4e6f316daede4fa54547371d5c986395177c12dbdec74a66298e684ac8b85"
diff --git a/meta-oe/recipes-support/exiv2/exiv2_0.27.6.bb b/meta-oe/recipes-support/exiv2/exiv2_0.27.6.bb
new file mode 100644
index 0000000000..6ccd9fb266
--- /dev/null
+++ b/meta-oe/recipes-support/exiv2/exiv2_0.27.6.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"
+
+SRC_URI = "https://github.com/Exiv2/${BPN}/releases/download/v${PV}/${BP}-Source.tar.gz"
+SRC_URI[sha256sum] = "4c192483a1125dc59a3d70b30d30d32edace9e14adf52802d2f853abf72db8a6"
+# 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/0001-agent-meson-Replace-filename-with-basename.patch b/meta-oe/recipes-support/farsight/libnice/0001-agent-meson-Replace-filename-with-basename.patch
new file mode 100644
index 0000000000..897de4a6ce
--- /dev/null
+++ b/meta-oe/recipes-support/farsight/libnice/0001-agent-meson-Replace-filename-with-basename.patch
@@ -0,0 +1,40 @@
+From 7c510cd20bb443064ab4a0d2c6d917e807b2671b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 May 2023 19:45:28 -0700
+Subject: [PATCH] agent/meson: Replace filename with basename
+
+This avoids emitting absolute paths into generated sourcecode, it
+improves reproducibility. See [1]
+
+[1] https://developer-old.gnome.org/gobject/stable/glib-mkenums.html
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/258]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ agent/meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/agent/meson.build b/agent/meson.build
+index 2e5b272..44fcd6b 100644
+--- a/agent/meson.build
++++ b/agent/meson.build
+@@ -29,14 +29,14 @@ gnome = import('gnome')
+
+ agent_enum_types_c = gnome.mkenums('agent-enum-types.c', sources : agent_headers,
+ fhead: '#include <config.h>\n#include <glib-object.h>\n#include "agent.h"\n#include "pseudotcp.h"\n#include "agent-enum-types.h"',
+- fprod: '\n/* enumerations from "@filename@" */',
++ fprod: '\n/* enumerations from "@basename@" */',
+ vhead: 'GType\n@enum_name@_get_type (void)\n{\n static GType type = 0;\n if (!type) {\n static const G@Type@Value values[] = {',
+ vprod: ' { @VALUENAME@, "@VALUENAME@", "@valuenick@" },',
+ vtail: ' { 0, NULL, NULL }\n };\n type = g_@type@_register_static ("@EnumName@", values);\n }\n return type;\n}\n\n')
+
+ agent_enum_types_h = gnome.mkenums('agent-enum-types.h', sources : agent_headers,
+ fhead: '#ifndef __AGENT_ENUM_TYPES_H__\n#define __AGENT_ENUM_TYPES_H__ 1\n\n#include <glib-object.h>\n\nG_BEGIN_DECLS\n',
+- fprod: '/* enumerations from "@filename@" */\n',
++ fprod: '/* enumerations from "@basename@" */\n',
+ vhead: 'GType @enum_name@_get_type (void) G_GNUC_CONST;\n#define NICE_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n',
+ ftail: 'G_END_DECLS\n\n#endif /* !AGENT_ENUM_TYPES_H */')
+
+--
+2.40.1
+
diff --git a/meta-oe/recipes-support/farsight/libnice_0.1.13.bb b/meta-oe/recipes-support/farsight/libnice_0.1.13.bb
deleted file mode 100644
index 48c8221a3b..0000000000
--- a/meta-oe/recipes-support/farsight/libnice_0.1.13.bb
+++ /dev/null
@@ -1,36 +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/"
-SRC_URI = "http://nice.freedesktop.org/releases/libnice-${PV}.tar.gz"
-SRC_URI[md5sum] = "3226faeaf48a9150ada00da2e2865959"
-SRC_URI[sha256sum] = "61112d9f3be933a827c8365f20551563953af6718057928f51f487bfe88419e1"
-
-LICENSE = "LGPLv2.1 & MPLv1.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9c42325015702feda4f4d2f19a55b767 \
- file://COPYING.LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://COPYING.MPL;md5=3c617710e51cdbe0fc00716f056dfb1a \
-"
-
-DEPENDS = "glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gupnp] = "--enable-gupnp,--disable-gupnp,gupnp-igd"
-
-inherit autotools pkgconfig 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/farsight/libnice_0.1.21.bb b/meta-oe/recipes-support/farsight/libnice_0.1.21.bb
new file mode 100644
index 0000000000..f319b994bd
--- /dev/null
+++ b/meta-oe/recipes-support/farsight/libnice_0.1.21.bb
@@ -0,0 +1,44 @@
+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 \
+ file://0001-agent-meson-Replace-filename-with-basename.patch"
+SRC_URI[sha256sum] = "72e73a2acf20f59093e21d5601606e405873503eb35f346fa621de23e99b3b39"
+
+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 5f6f9909b9..034c2871a9 100644
--- a/meta-oe/recipes-support/fbset/fbset-modes.bb
+++ b/meta-oe/recipes-support/fbset/fbset-modes.bb
@@ -14,10 +14,8 @@ do_install() {
install -m 0644 ${WORKDIR}/fb.modes ${D}${sysconfdir}
}
-inherit allarch
-
# fb.modes file is MACHINE_ARCH, base.bbclass correctly changes it to MACHINE_ARCH, but too late for allarch.bbclass
# to disable "all" behavior (found when comparing qemuarm and qemux86 signatures)
PACKAGE_ARCH = "${MACHINE_ARCH}"
-CONFFILES_${PN} = "${sysconfdir}/fb.modes"
+CONFFILES:${PN} = "${sysconfdir}/fb.modes"
diff --git a/meta-oe/recipes-support/fbset/fbset_2.1.bb b/meta-oe/recipes-support/fbset/fbset_2.1.bb
index fbf834da18..9870ee7379 100644
--- a/meta-oe/recipes-support/fbset/fbset_2.1.bb
+++ b/meta-oe/recipes-support/fbset/fbset_2.1.bb
@@ -7,14 +7,14 @@
SUMMARY = "The fbset console tool"
HOMEPAGE = "http://users.telenet.be/geertu/Linux/fbdev/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://fbset.c;endline=19;md5=bf326f82cdfcac391af208f019c5603f"
-RRECOMMENDS_${PN} = "fbset-modes"
+RRECOMMENDS:${PN} = "fbset-modes"
DEPENDS = "bison-native flex-native"
PR = "r4"
-SRC_URI = "http://ftp.debian.org/debian/pool/main/f/fbset/fbset_2.1.orig.tar.gz \
+SRC_URI = "${DEBIAN_MIRROR}/main/f/fbset/fbset_2.1.orig.tar.gz \
file://makefile.patch \
file://fbset-2.1-fix-makefile-dep.patch \
file://0001-fbset-including-asm-types.h-is-needed-on-all-linux-s.patch \
@@ -29,7 +29,7 @@ do_install() {
install -m 0644 ${B}/*.8 ${D}${datadir}/man/man8
}
-ALTERNATIVE_fbset = "fbset"
+ALTERNATIVE:fbset = "fbset"
ALTERNATIVE_LINK_NAME[fbset] = "${sbindir}/fbset"
ALTERNATIVE_TARGET[fbset] = "${sbindir}/fbset.real"
ALTERNATIVE_PRIORITY[fbset] = "55"
diff --git a/meta-oe/recipes-support/fftw/fftw/install-bench.patch b/meta-oe/recipes-support/fftw/fftw/install-bench.patch
new file mode 100644
index 0000000000..237c1c0c5c
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftw/install-bench.patch
@@ -0,0 +1,43 @@
+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 @@
+ AM_CPPFLAGS = -I $(top_srcdir)
+-noinst_PROGRAMS = bench
++bin_PROGRAMS = bench@PREC_SUFFIX@
+ EXTRA_DIST = check.pl README
+
+ if THREADS
+-bench_CFLAGS = $(PTHREAD_CFLAGS)
++bench@PREC_SUFFIX@_CFLAGS = $(PTHREAD_CFLAGS)
+ if !COMBINED_THREADS
+ LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_threads.la
+ endif
+ else
+ if OPENMP
+-bench_CFLAGS = $(OPENMP_CFLAGS)
++bench@PREC_SUFFIX@_CFLAGS = $(OPENMP_CFLAGS)
+ LIBFFTWTHREADS = $(top_builddir)/threads/libfftw3@PREC_SUFFIX@_omp.la
+ endif
+ endif
+
+-bench_SOURCES = bench.c hook.c fftw-bench.c fftw-bench.h
+-bench_LDADD = $(LIBFFTWTHREADS) \
++bench@PREC_SUFFIX@_SOURCES = bench.c hook.c fftw-bench.c fftw-bench.h
++bench@PREC_SUFFIX@_LDADD = $(LIBFFTWTHREADS) \
+ $(top_builddir)/libfftw3@PREC_SUFFIX@.la \
+ $(top_builddir)/libbench2/libbench2.a $(THREADLIBS)
+
+--- ./tools/Makefile.am.orig 2021-03-24 08:22:31.845581620 -0400
++++ ./tools/Makefile.am 2021-03-24 08:24:26.454053573 -0400
+@@ -24,7 +24,7 @@
+ endif
+
+ fftw@PREC_SUFFIX@_wisdom_SOURCES = fftw-wisdom.c
+-fftw@PREC_SUFFIX@_wisdom_LDADD = $(top_builddir)/tests/bench-bench.o \
+-$(top_builddir)/tests/bench-fftw-bench.o $(LIBFFTWTHREADS) \
++fftw@PREC_SUFFIX@_wisdom_LDADD = $(top_builddir)/tests/bench@PREC_SUFFIX@-bench.o \
++$(top_builddir)/tests/bench@PREC_SUFFIX@-fftw-bench.o $(LIBFFTWTHREADS) \
+ $(top_builddir)/libfftw3@PREC_SUFFIX@.la \
+ $(top_builddir)/libbench2/libbench2.a $(THREADLIBS)
diff --git a/meta-oe/recipes-support/fftw/fftw/run-ptest b/meta-oe/recipes-support/fftw/fftw/run-ptest
new file mode 100644
index 0000000000..6d8dd96f02
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftw/run-ptest
@@ -0,0 +1,30 @@
+#!/bin/sh
+
+cd fftw
+/usr/bin/perl -w ./check.pl -r -c=30 -v `pwd`/bench
+fftw_result=$?
+cd ../fftwf
+/usr/bin/perl -w ./check.pl -r -c=30 -v `pwd`/benchf
+fftwf_result=$?
+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
+else
+ echo FAILED
+fi
+echo -n "fftwf test result:"
+if [ $fftwf_result = "0" ]; then
+ echo PASSED
+else
+ echo FAILED
+fi
+echo -n "fftwl test result:"
+if [ $fftwl_result = "0" ]; then
+ echo PASSED
+else
+ echo FAILED
+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
new file mode 100644
index 0000000000..33e8279880
--- /dev/null
+++ b/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
@@ -0,0 +1,103 @@
+DESCRIPTION = "FFTW"
+SECTION = "libs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
+
+SRC_URI = " \
+ http://www.fftw.org/fftw-${PV}.tar.gz \
+ file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
+ file://install-bench.patch \
+ file://run-ptest \
+"
+SRC_URI[sha256sum] = "56c932549852cddcfafdab3820b0200c7742675be92179e59e6215b340e26467"
+
+inherit autotools pkgconfig ptest
+
+# we had multiple recipes in the past
+PROVIDES = "fftwl fftwf"
+
+EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
+
+CFLAGS += "-D_GNU_SOURCE"
+
+# neon is optional for arm version < 8 -> check tune features
+FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
+# neon is suppored for arm version = 8 -> enable
+FFTW_NEON:aarch64 = "--enable-neon"
+FFTW_NEON:class-native = ""
+
+do_configure() {
+ # configure fftw
+ rm -rf ${WORKDIR}/build-fftw
+ mkdir -p ${B}
+ cd ${B}
+ # full (re)configure
+ autotools_do_configure
+ mv ${B} ${WORKDIR}/build-fftw
+
+ # configure fftwl
+ rm -rf ${WORKDIR}/build-fftwl
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-long-double
+ mv ${B} ${WORKDIR}/build-fftwl
+
+ # configure fftwf
+ rm -rf ${WORKDIR}/build-fftwf
+ mkdir -p ${B}
+ cd ${B}
+ # configure only
+ oe_runconf --enable-single ${FFTW_NEON}
+ mv ${B} ${WORKDIR}/build-fftwf
+}
+
+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
+}
+
+do_install() {
+ for lib in fftw fftwl fftwf; do
+ cd ${WORKDIR}/build-$lib
+ autotools_do_install
+ done
+}
+
+do_install_ptest() {
+ for lib in fftw fftwl fftwf; do
+ install -d ${D}${PTEST_PATH}/$lib
+ install -m 0755 ${S}/tests/check.pl ${D}${PTEST_PATH}/$lib
+ cd ${WORKDIR}/build-$lib
+ if [ $lib = "fftw" ]; then
+ mv ${D}${bindir}/bench ${D}${PTEST_PATH}/$lib
+ fi
+ if [ $lib = "fftwl" ]; then
+ mv ${D}${bindir}/benchl ${D}${PTEST_PATH}/$lib
+ fi
+ if [ $lib = "fftwf" ]; then
+ mv ${D}${bindir}/benchf ${D}${PTEST_PATH}/$lib
+ fi
+ done
+}
+
+PACKAGES =+ "libfftw libfftwl libfftwf"
+FILES:libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
+FILES:libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
+FILES:libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
+
+PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
+FILES:fftw-wisdom = "${bindir}/fftw-wisdom"
+FILES:fftwl-wisdom = "${bindir}/fftwl-wisdom"
+FILES:fftwf-wisdom = "${bindir}/fftwf-wisdom"
+FILES:fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
+
+FILES:${PN}-dev += "${libdir}/cmake"
+RDEPENDS:${PN}-dev = "libfftw libfftwl libfftwf"
+RDEPENDS:${PN}-ptest += "perl"
+RDEPENDS:${PN}-ptest:remove = "fftw"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/fftw/fftw_3.3.7.bb b/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
deleted file mode 100644
index aae6ec952a..0000000000
--- a/meta-oe/recipes-support/fftw/fftw_3.3.7.bb
+++ /dev/null
@@ -1,80 +0,0 @@
-DESCRIPTION = "FFTW"
-SECTION = "libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-SRC_URI = " \
- http://www.fftw.org/fftw-${PV}.tar.gz \
- file://0001-NEON-autodetection-segfaults-assume-neon-present.patch \
-"
-SRC_URI[md5sum] = "0d5915d7d39b3253c1cc05030d79ac47"
-SRC_URI[sha256sum] = "3b609b7feba5230e8f6dd8d245ddbefac324c5a6ae4186947670d9ac2cd25573"
-
-inherit autotools pkgconfig
-
-# we had multiple recipes in the past
-PROVIDES = "fftwl fftwf"
-
-EXTRA_OECONF = "--disable-fortran --enable-shared --enable-threads"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-FFTW_NEON = "${@bb.utils.contains('TUNE_FEATURES', 'neon', '--enable-neon', '', d)}"
-FFTW_NEON_class-native = ""
-
-do_configure() {
- # configure fftw
- rm -rf ${WORKDIR}/build-fftw
- mkdir -p ${B}
- cd ${B}
- # full (re)configure
- autotools_do_configure
- mv ${B} ${WORKDIR}/build-fftw
-
- # configure fftwl
- rm -rf ${WORKDIR}/build-fftwl
- mkdir -p ${B}
- cd ${B}
- # configure only
- oe_runconf --enable-long-double
- mv ${B} ${WORKDIR}/build-fftwl
-
- # configure fftwf
- rm -rf ${WORKDIR}/build-fftwf
- mkdir -p ${B}
- cd ${B}
- # configure only
- oe_runconf --enable-single ${FFTW_NEON}
- mv ${B} ${WORKDIR}/build-fftwf
-}
-
-do_compile() {
- for lib in fftw fftwl fftwf; do
- cd ${WORKDIR}/build-$lib
- autotools_do_compile
- done
-}
-
-do_install() {
- for lib in fftw fftwl fftwf; do
- cd ${WORKDIR}/build-$lib
- autotools_do_install
- done
-}
-
-
-PACKAGES =+ "libfftw libfftwl libfftwf"
-FILES_libfftw = "${libdir}/libfftw3.so.* ${libdir}/libfftw3_*.so.*"
-FILES_libfftwl = "${libdir}/libfftw3l.so.* ${libdir}/libfftw3l_*.so.*"
-FILES_libfftwf = "${libdir}/libfftw3f.so.* ${libdir}/libfftw3f_*.so.*"
-
-PACKAGES =+ "fftw-wisdom fftwl-wisdom fftwf-wisdom fftw-wisdom-to-conf"
-FILES_fftw-wisdom = "${bindir}/fftw-wisdom"
-FILES_fftwl-wisdom = "${bindir}/fftwl-wisdom"
-FILES_fftwf-wisdom = "${bindir}/fftwf-wisdom"
-FILES_fftw-wisdom-to-conf = "${bindir}/fftw-wisdom-to-conf"
-
-FILES_${PN}-dev += "${libdir}/cmake"
-RDEPENDS_${PN}-dev = "libfftw libfftwl libfftwf"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/fltk/fltk-native.bb b/meta-oe/recipes-support/fltk/fltk-native.bb
index 2636287e3a..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 += " \
@@ -9,13 +11,13 @@ EXTRA_OECMAKE += " \
-DOPTION_USE_THREADS=OFF \
-DOPTION_USE_XDBE=OFF \
-DOPTION_USE_XFT=OFF \
- -DOPTION_BUILD_EXAMPLES=OFF \
+ -DFLTK_BUILD_TEST=OFF \
-DOPTION_USE_XINERAMA=OFF \
-DOPTION_USE_XFIXES=OFF \
-DOPTION_USE_XCURSOR=OFF \
"
-do_install_append() {
+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.bb b/meta-oe/recipes-support/fltk/fltk.bb
index ec9e04bed6..82007c4cf4 100644
--- a/meta-oe/recipes-support/fltk/fltk.bb
+++ b/meta-oe/recipes-support/fltk/fltk.bb
@@ -2,14 +2,15 @@ require ${BPN}.inc
DEPENDS = "alsa-lib zlib jpeg libpng libxext libxft"
-inherit distro_features_check binconfig lib_package gtk-icon-cache mime
+inherit features_check binconfig lib_package gtk-icon-cache mime mime-xdg
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI += "file://0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch"
+SRC_URI += "file://0003-fluid-CMakeLists.txt-Do-not-export-fluid-target.patch"
EXTRA_OECMAKE = " \
-DOPTION_BUILD_SHARED_LIBS=ON \
-DOPTION_USE_THREADS=ON \
+ -DFLTK_BUILD_TEST=OFF \
-DOPTION_USE_XDBE=ON \
-DOPTION_USE_XFT=ON \
-DFLTK_CONFIG_PATH=${libdir}/cmake \
@@ -17,30 +18,31 @@ EXTRA_OECMAKE = " \
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'opengl', d)}"
-PACKAGECONFIG[examples] = "-DOPTION_BUILD_EXAMPLES=ON,-DOPTION_BUILD_EXAMPLES=OFF,"
PACKAGECONFIG[cairo] = "-DOPTION_CAIRO=ON,-DOPTION_CAIRO=OFF,cairo"
PACKAGECONFIG[opengl] = "-DOPTION_USE_GL=ON,-DOPTION_USE_GL=OFF,virtual/libgl"
PACKAGECONFIG[xinerama] = "-DOPTION_USE_XINERAMA=ON,-DOPTION_USE_XINERAMA=OFF,libxinerama"
PACKAGECONFIG[xfixes] = "-DOPTION_USE_XFIXES=ON,-DOPTION_USE_XFIXES=OFF,libxfixes"
PACKAGECONFIG[xcursor] = "-DOPTION_USE_XCURSOR=ON,-DOPTION_USE_XCURSOR=OFF,libxcursor"
-do_install_append() {
- sed -i -e 's,${STAGING_DIR_HOST},,g' ${D}${bindir}/fltk-config
+do_install:append() {
+ sed -i -e 's,${TMPDIR},,g' ${D}${bindir}/fltk-config
+ sed -i -e 's,${TMPDIR},,g' ${D}${datadir}/fltk/UseFLTK.cmake
+ sed -i -e 's,${TMPDIR},,g' ${D}${datadir}/fltk/FLTK-Targets.cmake
}
-python populate_packages_prepend () {
+python populate_packages:prepend () {
if (d.getVar('DEBIAN_NAMES')):
- d.setVar('PKG_${BPN}', 'libfltk${PV}')
+ d.setVar('PKG:${BPN}', 'libfltk${PV}')
}
LEAD_SONAME = "libfltk.so"
# .desktop / icons / mime only necessary for fluid app
-FILES_${PN}-bin += " \
+FILES:${PN}-bin += " \
${datadir}/applications \
${datadir}/icons \
${datadir}/mime \
"
# cmake files
-FILES_${PN}-dev += "${datadir}/fltk"
+FILES:${PN}-dev += "${datadir}/fltk"
diff --git a/meta-oe/recipes-support/fltk/fltk.inc b/meta-oe/recipes-support/fltk/fltk.inc
index dbe700af01..b1bc83578f 100644
--- a/meta-oe/recipes-support/fltk/fltk.inc
+++ b/meta-oe/recipes-support/fltk/fltk.inc
@@ -1,20 +1,18 @@
SUMMARY = "FLTK is a cross-platform C++ GUI toolkit"
HOMEPAGE = "http://www.fltk.org"
SECTION = "libs"
-LICENSE = "LGPLv2 & FLTK"
+LICENSE = "LGPL-2.0-only & FLTK"
LIC_FILES_CHKSUM = "file://COPYING;md5=f6b26344a24a941a01a5b0826e80b5ca"
SRC_URI = " \
- http://fltk.org/pub/fltk/1.3.4/${BP}-source.tar.gz \
+ http://fltk.org/pub/fltk/${PV}/${BP}-source.tar.bz2 \
file://disable_test.patch \
- file://fltk-no-freetype-config.patch \
file://0001-Fl_Preferences.cxx-do-not-use-dlopen-in-case-glibc-s.patch \
file://0002-always-build-fluid-and-export-pointers.patch \
"
-PV = "1.3.4-1"
-SRC_URI[md5sum] = "d7fcd27ab928648e1a1366dd2e273970"
-SRC_URI[sha256sum] = "7fb2c8882433ce694e6900c94fda505e8f4ed3fa9c7e597007098a33b85c53f4"
+PV = "1.3.8"
+SRC_URI[sha256sum] = "1d9832409fc08c908c64ab40ad9fd8b0e8af5d203651eb9690b810f41e2f412d"
inherit cmake pkgconfig
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/0002-always-build-fluid-and-export-pointers.patch b/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch
index cca977c66d..0d91aab3a1 100644
--- a/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch
+++ b/meta-oe/recipes-support/fltk/fltk/0002-always-build-fluid-and-export-pointers.patch
@@ -1,6 +1,6 @@
From 16010cb1a69ea2326d8102b7f1e34b65aca4b278 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Tue, 28 Feb 2017 01:20:42 +0100
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sat, 22 May 2021 12:33:15 +0200
Subject: [PATCH] always build fluid and export pointers
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
@@ -8,24 +8,24 @@ Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [embedded specific]
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
CMake/export.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMake/export.cmake b/CMake/export.cmake
-index 968186a..95e04eb 100644
+index 6e8bc5d..71b6f6c 100644
--- a/CMake/export.cmake
+++ b/CMake/export.cmake
-@@ -21,7 +21,7 @@
- # final config and export
+@@ -20,7 +20,7 @@
#######################################################################
+
# Set the fluid executable path
--if(CMAKE_CROSSCOMPILING)
-+if(FALSE)
- find_file(FLUID_PATH
- NAMES fluid fluid.exe
- PATHS ENV PATH
+-if (CMAKE_CROSSCOMPILING)
++if (FALSE)
+ find_file(FLUID_PATH
+ NAMES fluid fluid.exe
+ PATHS ENV PATH
--
-2.9.3
+2.31.1
diff --git a/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch b/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch
deleted file mode 100644
index 1f2f8aecf7..0000000000
--- a/meta-oe/recipes-support/fltk/fltk/0003-CMake-build-Force-shared-libs-with-unsuffixed-names.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From bc38fb41044503c9debf5710910c51dd29674b6a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 15 Dec 2017 22:14:01 +0100
-Subject: [PATCH] CMake build: Force shared libs with unsuffixed names
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-For windows build sake CMake complains when a project wants to build shared and
-static libraries with same name. This caused the authors of fltk to generate
-libraries with names suffixed by '_SHARED' when building fltk with cmake -
-autotools builds do not suffix.
-
-Reasons to build shared libs with correct names:
-
-* Shared libraries are the preferred choice for embedded devices
-* There are projects (e.g yoshimi) expecting shared libraries with unsuffixed
- names - as created by autotools build. These projects link against static
- libraries by accident causing unusable binaries.
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- CMake/macros.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/CMake/macros.cmake b/CMake/macros.cmake
-index 4def62d..ab675f0 100644
---- a/CMake/macros.cmake
-+++ b/CMake/macros.cmake
-@@ -49,7 +49,7 @@ macro(FL_ADD_LIBRARY LIBNAME LIBTYPE LIBFILES)
- PROPERTIES
- VERSION ${FLTK_VERSION_FULL}
- SOVERSION ${FLTK_VERSION_MAJOR}.${FLTK_VERSION_MINOR}
-- PREFIX "lib" # for MSVC static/shared coexistence
-+ OUTPUT_NAME ${LIBNAME} CLEAN_DIRECT_OUTPUT 1
- )
- endif (${LIBTYPE} STREQUAL "SHARED")
-
---
-2.9.5
-
diff --git a/meta-oe/recipes-support/fltk/fltk/0003-fluid-CMakeLists.txt-Do-not-export-fluid-target.patch b/meta-oe/recipes-support/fltk/fltk/0003-fluid-CMakeLists.txt-Do-not-export-fluid-target.patch
new file mode 100644
index 0000000000..72bb48a32c
--- /dev/null
+++ b/meta-oe/recipes-support/fltk/fltk/0003-fluid-CMakeLists.txt-Do-not-export-fluid-target.patch
@@ -0,0 +1,42 @@
+From b6985abcb03fb09685da4044963e8f085035b208 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Thu, 19 Aug 2021 08:06:45 +0200
+Subject: [PATCH] fluid/CMakeLists.txt: Do not export fluid target
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+It does not work for us: The executable 'fluid' is not installed in
+receipe-sysroot. So fltk cmake config contains an invalid reference.
+Consumers of fltk using cmake will fail during configure for this invalid
+reference with something like:
+
+| CMake Error at <...>/recipe-sysroot/usr/share/fltk/FLTK-Targets.cmake:129 (message):
+| The imported target "fluid" references the file
+|
+| "<...>/recipe-sysroot/usr/bin/fluid"
+|
+| but this file does not exist.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ fluid/CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/fluid/CMakeLists.txt b/fluid/CMakeLists.txt
+index 472c84c..f971121 100644
+--- a/fluid/CMakeLists.txt
++++ b/fluid/CMakeLists.txt
+@@ -86,7 +86,6 @@ if (APPLE AND (NOT OPTION_APPLE_X11))
+ install (TARGETS fluid DESTINATION ${FLTK_BINDIR})
+ else()
+ install (TARGETS fluid
+- EXPORT FLTK-Targets
+ RUNTIME DESTINATION ${FLTK_BINDIR}
+ LIBRARY DESTINATION ${FLTK_LIBDIR}
+ ARCHIVE DESTINATION ${FLTK_LIBDIR}
+--
+2.31.1
+
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/fltk/fltk/fltk-no-freetype-config.patch b/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch
deleted file mode 100644
index 2a9915bea7..0000000000
--- a/meta-oe/recipes-support/fltk/fltk/fltk-no-freetype-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 699420d306cadbb5285942e09f4383d84b01985d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Fri, 13 Jan 2017 13:21:23 +0100
-Subject: [PATCH] replace freetype-config by pkg-config
-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@googlemail.com>
----
- configure.ac | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index f0efd48..3af5ecb 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1006,12 +1006,12 @@ case $host_os_gui in
-
- xft_found=no
- if test x$enable_xft != xno; then
-- AC_PATH_PROG(FTCONFIG, freetype-config)
-+ AC_PATH_PROG(PKGCONFIG,pkg-config)
-
-- if test "x$FTCONFIG" != x; then
-- CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS"
-- CFLAGS="`$FTCONFIG --cflags` $CFLAGS"
-- CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS"
-+ if test "x$PKGCONFIG" != x; then
-+ CPPFLAGS="`$PKGCONFIG --cflags xft` $CPPFLAGS"
-+ CFLAGS="`$PKGCONFIG --cflags xft` $CFLAGS"
-+ CXXFLAGS="`$PKGCONFIG --cflags xft` $CXXFLAGS"
-
- AC_CHECK_LIB(fontconfig, FcPatternCreate)
- AC_CHECK_HEADER(X11/Xft/Xft.h,
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/fmt/fmt_10.0.0.bb b/meta-oe/recipes-support/fmt/fmt_10.0.0.bb
new file mode 100644
index 0000000000..a8e6e563da
--- /dev/null
+++ b/meta-oe/recipes-support/fmt/fmt_10.0.0.bb
@@ -0,0 +1,17 @@
+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=b9257785fc4f3803a4b71b76c1412729"
+
+SRC_URI = "git://github.com/fmtlib/fmt;branch=master;protocol=https"
+SRCREV = "a0b8a92e3d1532361c2f7feb63babc5c18d00ef2"
+
+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-gstreamer-1.0-detection.patch b/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch
deleted file mode 100644
index a567cba925..0000000000
--- a/meta-oe/recipes-support/freerdp/freerdp/0001-Fix-gstreamer-1.0-detection.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 368989526c32cdf9d680a397fede3cb773fa2609 Mon Sep 17 00:00:00 2001
-From: Mike Gilbert <floppym@gentoo.org>
-Date: Fri, 28 Jul 2017 16:31:41 -0400
-Subject: [PATCH] Fix gstreamer-1.0 detection
-
-Upstream State: Backport
-
----
- cmake/FindGStreamer_1_0.cmake | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/cmake/FindGStreamer_1_0.cmake b/cmake/FindGStreamer_1_0.cmake
-index 3aa8fc6..6fbc0ec 100644
---- a/cmake/FindGStreamer_1_0.cmake
-+++ b/cmake/FindGStreamer_1_0.cmake
-@@ -59,7 +59,7 @@ macro(FIND_GSTREAMER_COMPONENT _component_prefix _pkgconfig_name _library)
-
- string(REGEX MATCH "(.*)>=(.*)" _dummy "${_pkgconfig_name}")
- if ("${CMAKE_MATCH_2}" STREQUAL "")
-- pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GStreamer_FIND_VERSION}")
-+ pkg_check_modules(PC_${_component_prefix} "${_pkgconfig_name} >= ${GSTREAMER_1_0_MINIMUM_VERSION}")
- else ()
- pkg_check_modules(PC_${_component_prefix} ${_pkgconfig_name})
- endif ()
---
-2.7.4
-
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 0d7dcc28d7..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,16 +9,18 @@ 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/winpr/tools/makecert-cli/CMakeLists.txt b/winpr/tools/makecert-cli/CMakeLists.txt
-index 74afa09..8d00ef1 100644
---- a/winpr/tools/makecert-cli/CMakeLists.txt
-+++ b/winpr/tools/makecert-cli/CMakeLists.txt
+Index: git/winpr/tools/makecert-cli/CMakeLists.txt
+===================================================================
+--- git.orig/winpr/tools/makecert-cli/CMakeLists.txt
++++ git/winpr/tools/makecert-cli/CMakeLists.txt
@@ -44,6 +44,9 @@ set(${MODULE_PREFIX}_LIBS winpr-tools)
- target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS})
+ target_link_libraries(${MODULE_NAME} ${${MODULE_PREFIX}_LIBS} winpr)
+set_target_properties(${MODULE_NAME} PROPERTIES
+ BUILD_WITH_INSTALL_RPATH 1)
@@ -26,6 +28,3 @@ index 74afa09..8d00ef1 100644
set_property(TARGET ${MODULE_NAME} PROPERTY FOLDER "WinPR/Tools")
install(TARGETS ${MODULE_NAME} DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT tools EXPORT WinPRTargets)
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb b/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb
new file mode 100644
index 0000000000..4cb452608e
--- /dev/null
+++ b/meta-oe/recipes-support/freerdp/freerdp_2.10.0.bb
@@ -0,0 +1,91 @@
+# 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 = "7471ae383e7b7a613f275e19f7b54958a193c891"
+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 \
+ -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}/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/freerdp/freerdp_git.bb b/meta-oe/recipes-support/freerdp/freerdp_git.bb
deleted file mode 100644
index 88aec9c415..0000000000
--- a/meta-oe/recipes-support/freerdp/freerdp_git.bb
+++ /dev/null
@@ -1,86 +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 pcsc-lite"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-inherit pkgconfig cmake gitpkgv
-
-PV = "2.0.0+gitr${SRCPV}"
-PKGV = "${GITPKGVTAG}"
-
-SRCREV = "1648deb435ad52206f7aa2afe4b4dff71d9329bc"
-SRC_URI = "git://github.com/FreeRDP/FreeRDP.git \
- file://winpr-makecert-Build-with-install-RPATH.patch \
- file://0001-Fix-gstreamer-1.0-detection.patch \
-"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OECMAKE += " \
- -DWITH_ALSA=ON \
- -DWITH_PCSC=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 \
-"
-
-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"
-PACKAGECONFIG[directfb] = "-DWITH_DIRECTFB=ON,-DWITH_DIRECTFB=OFF,directfb"
-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"
-
-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, '^(audin_.*)\.so$',
- output_pattern='libfreerdp-plugin-%s',
- description='FreeRDP plugin %s',
- prepend=True, extra_depends='libfreerdp-plugin-audin')
-
- do_split_packages(d, freerdp_root, '^(rdpsnd_.*)\.so$',
- output_pattern='libfreerdp-plugin-%s',
- description='FreeRDP plugin %s',
- prepend=True, extra_depends='libfreerdp-plugin-rdpsnd')
-
- do_split_packages(d, freerdp_root, '^(tsmf_.*)\.so$',
- output_pattern='libfreerdp-plugin-%s',
- description='FreeRDP plugin %s',
- prepend=True, extra_depends='libfreerdp-plugin-tsmf')
-
- do_split_packages(d, freerdp_root, '^([^-]*)\.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.3.bb b/meta-oe/recipes-support/function2/function2_4.2.3.bb
new file mode 100644
index 0000000000..599c490359
--- /dev/null
+++ b/meta-oe/recipes-support/function2/function2_4.2.3.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 = "9e303865d14f1204f09379e37bbeb30c4375139a"
+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/gd/gd/0001-Fix-deprecared-function-prototypes.patch b/meta-oe/recipes-support/gd/gd/0001-Fix-deprecared-function-prototypes.patch
new file mode 100644
index 0000000000..5ac5170721
--- /dev/null
+++ b/meta-oe/recipes-support/gd/gd/0001-Fix-deprecared-function-prototypes.patch
@@ -0,0 +1,115 @@
+From 6379331cd0647fc6f149f55e4505a9a92e4f159f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 22 Aug 2022 22:43:26 -0700
+Subject: [PATCH] Fix deprecared function prototypes
+
+Fixes following errors:
+error: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Werror,-Wdeprecated-non-prototype]
+
+Upstream-Status: Submitted [https://github.com/libgd/libgd/pull/835]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/gd_nnquant.c | 32 +++++++-------------------------
+ src/gd_tiff.c | 4 +---
+ 2 files changed, 8 insertions(+), 28 deletions(-)
+
+diff --git a/src/gd_nnquant.c b/src/gd_nnquant.c
+index 8b9aa794..013f7160 100644
+--- a/src/gd_nnquant.c
++++ b/src/gd_nnquant.c
+@@ -112,12 +112,7 @@ typedef struct {
+
+ /* Initialise network in range (0,0,0,0) to (255,255,255,255) and set parameters
+ ----------------------------------------------------------------------- */
+-static void initnet(nnq, thepic, len, sample, colours)
+-nn_quant *nnq;
+-unsigned char *thepic;
+-int len;
+-int sample;
+-int colours;
++static void initnet(nn_quant *nnq, unsigned char *thepic, int len, int sample, int colours)
+ {
+ register int i;
+ register int *p;
+@@ -163,9 +158,7 @@ static void unbiasnet(nn_quant *nnq)
+ }
+
+ /* Output colormap to unsigned char ptr in RGBA format */
+-static void getcolormap(nnq, map)
+-nn_quant *nnq;
+-unsigned char *map;
++static void getcolormap(nn_quant *nnq, unsigned char *map)
+ {
+ int i,j;
+ for(j=0; j < nnq->netsize; j++) {
+@@ -232,9 +225,7 @@ static void inxbuild(nn_quant *nnq)
+
+ /* Search for ABGR values 0..255 (after net is unbiased) and return colour index
+ ---------------------------------------------------------------------------- */
+-static unsigned int inxsearch(nnq, al,b,g,r)
+-nn_quant *nnq;
+-register int al, b, g, r;
++static unsigned int inxsearch(nn_quant *nnq, int al, int b, int g, int r)
+ {
+ register int i, j, dist, a, bestd;
+ register int *p;
+@@ -306,9 +297,7 @@ register int al, b, g, r;
+
+ /* Search for biased ABGR values
+ ---------------------------- */
+-static int contest(nnq, al,b,g,r)
+-nn_quant *nnq;
+-register int al,b,g,r;
++static int contest(nn_quant *nnq, int al, int b, int g, int r)
+ {
+ /* finds closest neuron (min dist) and updates freq */
+ /* finds best neuron (min dist-bias) and returns position */
+@@ -362,9 +351,7 @@ register int al,b,g,r;
+ /* Move neuron i towards biased (a,b,g,r) by factor alpha
+ ---------------------------------------------------- */
+
+-static void altersingle(nnq, alpha,i,al,b,g,r)
+-nn_quant *nnq;
+-register int alpha,i,al,b,g,r;
++static void altersingle(nn_quant *nnq, int alpha, int i,int al, int b, int g, int r)
+ {
+ register int *n;
+
+@@ -382,10 +369,7 @@ register int alpha,i,al,b,g,r;
+ /* Move adjacent neurons by precomputed alpha*(1-((i-j)^2/[r]^2)) in radpower[|i-j|]
+ --------------------------------------------------------------------------------- */
+
+-static void alterneigh(nnq, rad,i,al,b,g,r)
+-nn_quant *nnq;
+-int rad,i;
+-register int al,b,g,r;
++static void alterneigh(nn_quant *nnq, int rad, int i, int al,int b,int g, int r)
+ {
+ register int j,k,lo,hi,a;
+ register int *p, *q;
+@@ -429,9 +413,7 @@ register int al,b,g,r;
+ /* Main Learning Loop
+ ------------------ */
+
+-static void learn(nnq, verbose) /* Stu: N.B. added parameter so that main() could control verbosity. */
+-nn_quant *nnq;
+-int verbose;
++static void learn(nn_quant *nnq, int verbose) /* Stu: N.B. added parameter so that main() could control verbosity. */
+ {
+ register int i,j,al,b,g,r;
+ int radius,rad,alpha,step,delta,samplepixels;
+diff --git a/src/gd_tiff.c b/src/gd_tiff.c
+index 7f72b610..3d90e61a 100644
+--- a/src/gd_tiff.c
++++ b/src/gd_tiff.c
+@@ -446,9 +446,7 @@ BGD_DECLARE(void) gdImageTiffCtx(gdImagePtr image, gdIOCtx *out)
+ }
+
+ /* Check if we are really in 8bit mode */
+-static int checkColorMap(n, r, g, b)
+-int n;
+-uint16_t *r, *g, *b;
++static int checkColorMap(int n, uint16_t *r, uint16_t *g, uint16_t *b)
+ {
+ while (n-- > 0)
+ if (*r++ >= 256 || *g++ >= 256 || *b++ >= 256)
diff --git a/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch b/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
deleted file mode 100644
index c377b370e1..0000000000
--- a/meta-oe/recipes-support/gd/gd/0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 85c7694a5cf34597909bdd1ca6931b0f99904c2e Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Tue, 19 Jun 2018 00:40:49 -0700
-Subject: [PATCH] annotate.c/gdft.c: Replace strncpy with memccpy to fix
- -Wstringop-truncation.
-
-Fixed for gcc8:
-git/src/gdft.c:1699:2: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
-
-Upstream-Status: Submitted [https://github.com/libgd/libgd/pull/442]
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
----
- src/annotate.c | 2 +-
- src/gdft.c | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/src/annotate.c b/src/annotate.c
-index 00aaf49..17df813 100644
---- a/src/annotate.c
-+++ b/src/annotate.c
-@@ -104,7 +104,7 @@ int main(int argc, char *argv[])
- fprintf(stderr, "Font maximum length is 1024, %d given\n", font_len);
- goto badLine;
- }
-- strncpy(font, st, font_len);
-+ memcpy(font, st, font_len);
- }
- } else if(!strcmp(st, "align")) {
- char *st = strtok(0, " \t\r\n");
-diff --git a/src/gdft.c b/src/gdft.c
-index 9fa8295..81dbe41 100644
---- a/src/gdft.c
-+++ b/src/gdft.c
-@@ -1696,7 +1696,7 @@ static char * font_path(char **fontpath, char *name_list)
- gdFree(path);
- return "could not alloc full list of fonts";
- }
-- strncpy(fontlist, name_list, name_list_len);
-+ memcpy(fontlist, name_list, name_list_len);
- fontlist[name_list_len] = 0;
-
- /*
---
-2.10.2
-
diff --git a/meta-oe/recipes-support/gd/gd_2.2.5.bb b/meta-oe/recipes-support/gd/gd_2.2.5.bb
deleted file mode 100644
index 62d0df0081..0000000000
--- a/meta-oe/recipes-support/gd/gd_2.2.5.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "gd is a library used to create PNG, JPEG, or WBMP images"
-DESCRIPTION = "The gd graphics library allows your code to quickly draw images \
-complete with lines, arcs, text, multiple colors, cut and paste from other \
-images, and flood fills, and to write out the result as a PNG or JPEG file. \
-This is particularly useful in Web applications, where PNG and JPEG are two \
-of the formats accepted for inline images by most browsers. Note that gd is not \
-a paint program."
-HOMEPAGE = "http://libgd.bitbucket.org/"
-
-SECTION = "libs"
-LICENSE = "GD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=07384b3aa2e0d39afca0d6c40286f545"
-
-DEPENDS = "freetype libpng jpeg zlib tiff"
-
-SRC_URI = "git://github.com/libgd/libgd.git;branch=GD-2.2 \
- file://0001-annotate.c-gdft.c-Replace-strncpy-with-memccpy-to-fi.patch \
- "
-
-SRCREV = "8255231b68889597d04d451a72438ab92a405aba"
-
-S = "${WORKDIR}/git"
-
-inherit autotools binconfig gettext pkgconfig
-
-EXTRA_OECONF += " --disable-rpath \
- --with-jpeg=${STAGING_LIBDIR}/.. \
- --with-freetype=yes \
- --without-fontconfig \
- --without-webp \
- --without-xpm \
- --without-x \
- "
-
-EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"'
-
-do_install_append() {
- # cleanup buildpaths from gdlib.pc
- sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/gdlib.pc
-}
-
-PACKAGES += "${PN}-tools"
-
-FILES_${PN} = "${libdir}/lib*${SOLIBS}"
-FILES_${PN}-tools = "${bindir}/*"
-
-PROVIDES += "${PN}-tools"
-RPROVIDES_${PN}-tools = "${PN}-tools"
-RDEPENDS_${PN}-tools = "perl perl-module-strict"
diff --git a/meta-oe/recipes-support/gd/gd_2.3.3.bb b/meta-oe/recipes-support/gd/gd_2.3.3.bb
new file mode 100644
index 0000000000..cc2c1571e6
--- /dev/null
+++ b/meta-oe/recipes-support/gd/gd_2.3.3.bb
@@ -0,0 +1,55 @@
+SUMMARY = "gd is a library used to create PNG, JPEG, or WBMP images"
+DESCRIPTION = "The gd graphics library allows your code to quickly draw images \
+complete with lines, arcs, text, multiple colors, cut and paste from other \
+images, and flood fills, and to write out the result as a PNG or JPEG file. \
+This is particularly useful in Web applications, where PNG and JPEG are two \
+of the formats accepted for inline images by most browsers. Note that gd is not \
+a paint program."
+HOMEPAGE = "http://libgd.github.io/"
+
+SECTION = "libs"
+LICENSE = "GD"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ace63adfdac78400fc30fa22ee9c1bb1"
+
+DEPENDS = "freetype libpng jpeg zlib tiff"
+
+SRC_URI = "git://github.com/libgd/libgd.git;nobranch=1;protocol=https \
+ file://0001-Fix-deprecared-function-prototypes.patch \
+ "
+
+SRCREV = "b5319a41286107b53daa0e08e402aa1819764bdc"
+
+S = "${WORKDIR}/git"
+
+inherit autotools binconfig gettext pkgconfig
+
+EXTRA_OECONF += " --disable-rpath \
+ --with-jpeg=${STAGING_LIBDIR}/.. \
+ --with-freetype=yes \
+ --without-fontconfig \
+ --without-webp \
+ --without-xpm \
+ --without-x \
+ "
+
+EXTRA_OEMAKE = 'LDFLAGS="${LDFLAGS}"'
+
+DEBUG_OPTIMIZATION:append = " -Wno-error=maybe-uninitialized"
+
+do_install:append:class-target() {
+ # cleanup buildpaths from gdlib.pc
+ sed -i -e 's#${STAGING_DIR_HOST}##g' ${D}${libdir}/pkgconfig/gdlib.pc
+}
+
+PACKAGES += "${PN}-tools"
+
+FILES:${PN} = "${libdir}/lib*${SOLIBS}"
+FILES:${PN}-tools = "${bindir}/*"
+
+PROVIDES += "${PN}-tools"
+RPROVIDES:${PN}-tools = "${PN}-tools"
+RDEPENDS:${PN}-tools = "perl perl-module-strict"
+
+CVE_PRODUCT = "libgd"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb b/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
new file mode 100644
index 0000000000..4d97b1a419
--- /dev/null
+++ b/meta-oe/recipes-support/gengetopt/gengetopt_2.23.bb
@@ -0,0 +1,18 @@
+SUMMARY = "skeleton main.c generator"
+DESCRIPTION = "Gengetopt is a tool to write command line option parsing code for C programs."
+SECTION = "utils"
+HOMEPAGE = "https://www.gnu.org/software/gengetopt/gengetopt.html"
+
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff95bfe019feaf92f524b73dd79e76eb"
+
+SRC_URI = "${GNU_MIRROR}/gengetopt/${BPN}-${PV}.tar.xz"
+
+SRC_URI[md5sum] = "ea165d618640dbdecb42ae4491337965"
+SRC_URI[sha256sum] = "b941aec9011864978dd7fdeb052b1943535824169d2aa2b0e7eae9ab807584ac"
+
+inherit autotools texinfo
+
+CXXFLAGS += "-std=c++14"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/gflags/gflags_2.2.0.bb b/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
deleted file mode 100644
index 1571333323..0000000000
--- a/meta-oe/recipes-support/gflags/gflags_2.2.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used"
-HOMEPAGE = "https://github.com/gflags/gflags"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df"
-
-SRC_URI = "git://github.com/gflags/gflags.git"
-SRCREV = "f8a0efe03aa69b3336d8e228b37d4ccb17324b88"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}"
-
-PACKAGES =+ "${PN}-bash-completion"
-FILES_${PN}-bash-completion += "${bindir}/gflags_completions.sh"
-
-RDEPENDS_${PN}-bash-completion = "bash bash-completion"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/gflags/gflags_2.2.2.bb b/meta-oe/recipes-support/gflags/gflags_2.2.2.bb
new file mode 100644
index 0000000000..a9a867b575
--- /dev/null
+++ b/meta-oe/recipes-support/gflags/gflags_2.2.2.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "The gflags package contains a C++ library that implements commandline flags processing. It includes built-in support for standard types such as string and the ability to define flags in the source file in which they are used"
+HOMEPAGE = "https://github.com/gflags/gflags"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=c80d1a3b623f72bb85a4c75b556551df"
+
+SRC_URI = "git://github.com/gflags/gflags.git;branch=master;protocol=https"
+SRCREV = "e171aa2d15ed9eb17054558e0b3a6a413bb01067"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE="-DBUILD_SHARED_LIBS=ON -DREGISTER_INSTALL_PREFIX=OFF -DLIB_INSTALL_DIR=${baselib}"
+
+PACKAGES =+ "${PN}-bash-completion"
+FILES:${PN}-bash-completion += "${bindir}/gflags_completions.sh"
+
+RDEPENDS:${PN}-bash-completion = "bash bash-completion"
+
+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/0001-configure.ac-Allow-user-to-disable-gflags.patch b/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
deleted file mode 100644
index 596281ff68..0000000000
--- a/meta-oe/recipes-support/glog/glog/0001-configure.ac-Allow-user-to-disable-gflags.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0fabde0515e180c53961c27346dd7a79cffa4c1f Mon Sep 17 00:00:00 2001
-From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Date: Thu, 11 Aug 2016 11:49:36 +0200
-Subject: [PATCH] configure.ac: Allow user to disable gflags
-
-Under some circumstances like cross-compilation, the user might not want
-to enable support for gflags.
-
-This patch allows support for --without-gflags
-
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
----
- configure.ac | 6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 7b4d21e7ae8a..eba5e5cda1ea 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -136,7 +136,11 @@ AC_ARG_WITH(gflags, AS_HELP_STRING[--with-gflags=GFLAGS_DIR],
- CFLAGS="$CFLAGS $GFLAGS_CFLAGS"
- LIBS="$LIBS $GFLAGS_LIBS"
- )
--AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
-+if test x"$with_gflags" = x"no"; then
-+ ac_cv_have_libgflags=0
-+else
-+ AC_CHECK_LIB(gflags, main, ac_cv_have_libgflags=1, ac_cv_have_libgflags=0)
-+fi
- if test x"$ac_cv_have_libgflags" = x"1"; then
- AC_DEFINE(HAVE_LIB_GFLAGS, 1, [define if you have google gflags library])
- if test x"$GFLAGS_LIBS" = x""; then
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/glog/glog/libexecinfo.patch b/meta-oe/recipes-support/glog/glog/libexecinfo.patch
new file mode 100644
index 0000000000..a791a40dbc
--- /dev/null
+++ b/meta-oe/recipes-support/glog/glog/libexecinfo.patch
@@ -0,0 +1,40 @@
+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'
+| collect2: error: ld returned 1 exit status
+
+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
+@@ -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>
+@@ -629,6 +630,10 @@ if (Unwind_FOUND)
+ set (Unwind_DEPENDENCY "find_dependency (Unwind ${Unwind_VERSION})")
+ endif (Unwind_FOUND)
+
++if (HAVE_EXECINFO)
++ target_link_libraries (glog PUBLIC execinfo)
++endif (HAVE_EXECINFO)
++
+ if (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.3.4.bb b/meta-oe/recipes-support/glog/glog_0.3.4.bb
deleted file mode 100644
index d7c1974c68..0000000000
--- a/meta-oe/recipes-support/glog/glog_0.3.4.bb
+++ /dev/null
@@ -1,23 +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"
-
-DEPENDS = "libunwind"
-
-SRC_URI = " \
- git://github.com/google/glog.git \
- file://0001-configure.ac-Allow-user-to-disable-gflags.patch \
-"
-
-SRCREV = "d8cb47f77d1c31779f3ff890e1a5748483778d6a"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gflags] = ",--without-gflags,gflags,"
-
-inherit autotools pkgconfig
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..1c8867f049
--- /dev/null
+++ b/meta-oe/recipes-support/glog/glog_0.6.0.bb
@@ -0,0 +1,41 @@
+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 \
+ 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: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_2017-08-20.18.bb b/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
deleted file mode 100644
index b72ffa9a19..0000000000
--- a/meta-oe/recipes-support/gnulib/gnulib_2017-08-20.18.bb
+++ /dev/null
@@ -1,36 +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 = "LGPLv2+"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=56a22a6e5bcce45e2c8ac184f81412b5"
-SRCREV = "b23000de1e47c7d580e0e220966dd1ee42a5e5bc"
-
-SRC_URI = "git://git.sv.gnu.org/gnulib;protocol=git \
-"
-
-S = "${WORKDIR}/git"
-
-do_install () {
- cd ${S}
- git checkout master
- git clone ${S} ${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
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/gnulib/gnulib_2018-12-18.bb b/meta-oe/recipes-support/gnulib/gnulib_2018-12-18.bb
new file mode 100644
index 0000000000..a27968079e
--- /dev/null
+++ b/meta-oe/recipes-support/gnulib/gnulib_2018-12-18.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 = "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/googlebenchmark/googlebenchmark_1.8.0.bb b/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.0.bb
new file mode 100644
index 0000000000..209f51ea3d
--- /dev/null
+++ b/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.0.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 = "2dd015dfef425c866d9a43f2c67d8b52d709acb6"
+
+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.16.bb b/meta-oe/recipes-support/gosu/gosu_1.16.bb
new file mode 100644
index 0000000000..b209de16a4
--- /dev/null
+++ b/meta-oe/recipes-support/gosu/gosu_1.16.bb
@@ -0,0 +1,23 @@
+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 = "0e7347714352cd7f2e5edc9d2cf838d9934e6036"
+#v1.1.0
+SRCREV_runc = "067aaf8548d78269dcb2c13b856775e27c410f9c"
+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-Define-off64_t-as-off_t-on-musl.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-Define-off64_t-as-off_t-on-musl.patch
new file mode 100644
index 0000000000..2b782c2040
--- /dev/null
+++ b/meta-oe/recipes-support/gperftools/gperftools/0001-Define-off64_t-as-off_t-on-musl.patch
@@ -0,0 +1,33 @@
+From 41260e21e271eb1dc8b34f952ea3f90a0dc35e9e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 25 Dec 2022 20:01:29 -0800
+Subject: [PATCH] Define off64_t as off_t on musl
+
+Musl's default bitlength for off_t is always 64bit therefore define
+off64_t as off_t on musl
+
+Upstream-Status: Submitted [https://github.com/gperftools/gperftools/pull/1379]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/malloc_hook_mmap_linux.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
+index c7d8b4b..a10687e 100644
+--- a/src/malloc_hook_mmap_linux.h
++++ b/src/malloc_hook_mmap_linux.h
+@@ -45,6 +45,11 @@
+ #include <sys/syscall.h>
+ #include <unistd.h>
+
++// musl's off_t is already 64-bit
++#if defined(__linux__) && !defined(__GLIBC__)
++typedef off_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().
+--
+2.39.0
+
diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
deleted file mode 100644
index b3033621b5..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools/0001-Use-ucontext_t-instead-of-struct-ucontext.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 230cd84486145c5bb1d69d4c9a544e00adbcc9b5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Jul 2017 13:21:21 -0700
-Subject: [PATCH] Use ucontext_t instead of struct ucontext
-
-Newer glibc has dropped the ucontext tag from exposing
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/stacktrace_powerpc-linux-inl.h | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/stacktrace_powerpc-linux-inl.h b/src/stacktrace_powerpc-linux-inl.h
-index 3b3843b..a301a46 100644
---- a/src/stacktrace_powerpc-linux-inl.h
-+++ b/src/stacktrace_powerpc-linux-inl.h
-@@ -53,7 +53,6 @@
- #elif defined(HAVE_UCONTEXT_H)
- #include <ucontext.h> // for ucontext_t
- #endif
--typedef ucontext ucontext_t;
-
- // PowerPC64 Little Endian follows BE wrt. backchain, condition register,
- // and LR save area, so no need to adjust the reading struct.
-@@ -202,7 +201,7 @@ static int GET_STACK_TRACE_OR_FRAMES {
- struct rt_signal_frame_32 {
- char dummy[64 + 16];
- siginfo_t info;
-- struct ucontext uc;
-+ ucontext_t uc;
- // We don't care about the rest, since IP value is at 'uc' field.A
- } *sigframe = reinterpret_cast<rt_signal_frame_32*>(current);
- result[n] = (void*) sigframe->uc.uc_mcontext.uc_regs->gregs[PT_NIP];
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 ab3ceb964f..e3e857f0c2 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,11 +11,9 @@ Upstream-Status: Pending
configure.ac | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/configure.ac b/configure.ac
-index 70b49a3..8154c5c 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -51,6 +51,8 @@ case "$host" in
+@@ -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;;
@@ -23,4 +21,4 @@ index 70b49a3..8154c5c 100644
+ default_enable_debugalloc=no; default_enable_libunwind=no;
esac
- # Currently only backtrace works on s390.
+ # Currently only backtrace works on s390 and OSX.
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 0a72ff27c8..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools/0001-fix-build-with-musl-libc.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 034e7da08c3fbffcba8cf8d4e24a71a16558db5a 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>
-
----
- configure.ac | 1 +
- src/malloc_hook_mmap_linux.h | 8 ++++++--
- 2 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index b42fea3..70b49a3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -188,6 +188,7 @@ AC_HEADER_STDC
- AC_CHECK_TYPES([__int64]) # defined in some windows platforms
- AC_CHECK_TYPES([struct mallinfo],,, [#include <malloc.h>])
- AC_CHECK_TYPES([Elf32_Versym],,, [#include <elf.h>]) # for vdso_support.h
-+AC_CHECK_FUNCS(__sbrk) # for intercepting glibc memory allocator
- AC_CHECK_FUNCS(sbrk) # for tcmalloc to get memory
- AC_CHECK_FUNCS(geteuid) # for turning off services when run as root
- AC_CHECK_FUNCS(fork) # for the pthread_atfork setup
-diff --git a/src/malloc_hook_mmap_linux.h b/src/malloc_hook_mmap_linux.h
-index 79ac4e3..d444635 100755
---- a/src/malloc_hook_mmap_linux.h
-+++ b/src/malloc_hook_mmap_linux.h
-@@ -46,6 +46,10 @@
- #include <errno.h>
- #include "base/linux_syscall_support.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().
-@@ -168,7 +172,7 @@ extern "C" void* mmap64(void *start, size_t length, int prot, int flags,
- 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 {
-@@ -206,7 +210,7 @@ extern "C" void* mremap(void* old_addr, size_t old_size, size_t new_size,
- return result;
- }
-
--#ifndef __UCLIBC__
-+#if HAVE___SBRK
- // libc's version:
- extern "C" void* __sbrk(ptrdiff_t increment);
-
diff --git a/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch b/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
deleted file mode 100644
index 4c63e73b3c..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools/0001-include-fcntl.h-for-loff_t-definition.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From a16a73f0819d26219ee83cd98eea82786d7c1755 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 19:28:17 -0700
-Subject: [PATCH] include fcntl.h for loff_t definition
-
-Fixes
-linux_syscall_support.h:2641:26: error: 'loff_t' has not been declared
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/base/linux_syscall_support.h | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
-index 85347a2..70431ca 100644
---- a/src/base/linux_syscall_support.h
-+++ b/src/base/linux_syscall_support.h
-@@ -162,6 +162,7 @@ extern "C" {
- #include <unistd.h>
- #include <linux/unistd.h>
- #include <endian.h>
-+#include <fcntl.h>
-
- #ifdef __mips__
- /* Include definitions of the ABI currently in use. */
diff --git a/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch b/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
index c3c5784186..15eacc8993 100644
--- a/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
+++ b/meta-oe/recipes-support/gperftools/gperftools/disable_libunwind_aarch64.patch
@@ -12,11 +12,9 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
configure.ac | 5 +++++
1 file changed, 5 insertions(+)
-diff --git a/configure.ac b/configure.ac
-index 8154c5c..063b260 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -69,6 +69,11 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [return __PPC64__])],
+@@ -76,6 +76,11 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(, [re
[default_enable_libunwind=yes
default_tcmalloc_pagesize=8])
diff --git a/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch b/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch
new file mode 100644
index 0000000000..3034e20176
--- /dev/null
+++ b/meta-oe/recipes-support/gperftools/gperftools/ppc-musl.patch
@@ -0,0 +1,83 @@
+From 328805fd16930deefda400a77e9c2c5d17d04d29 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 13 Mar 2021 00:42:25 -0800
+Subject: [PATCH] Compatibility fixes for musl.
+
+---
+Upstream-Status: Pending
+
+ m4/pc_from_ucontext.m4 | 4 +++-
+ src/getpc.h | 3 +++
+ src/stacktrace_powerpc-linux-inl.h | 8 ++++++--
+ 3 files changed, 12 insertions(+), 3 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
+--- a/src/getpc.h
++++ b/src/getpc.h
+@@ -68,6 +68,9 @@
+ typedef ucontext ucontext_t;
+ #endif
+
++#if defined(__powerpc__) && !defined(PT_NIP)
++#define PT_NIP 32
++#endif
+
+ // 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
+--- 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 {
+ ucontext_t uc;
+ // We don't care about the rest, since the IP value is at 'uc' field.
+ } *sigframe = reinterpret_cast<signal_frame_64*>(current);
+- result[n] = (void*) sigframe->uc.uc_mcontext.gp_regs[PT_NIP];
++ result[n] = (void*) sigframe->uc.uc_mcontext.gp_regs[32];
+ }
+ #else
+ if (sigtramp32_vdso && (sigtramp32_vdso == current->return_addr)) {
+@@ -196,7 +196,7 @@ static int GET_STACK_TRACE_OR_FRAMES {
+ mcontext_t mctx;
+ // We don't care about the rest, since IP value is at 'mctx' field.
+ } *sigframe = reinterpret_cast<signal_frame_32*>(current);
+- result[n] = (void*) sigframe->mctx.gregs[PT_NIP];
++ result[n] = (void*) sigframe->mctx.gregs[32];
+ } else if (sigtramp32_rt_vdso && (sigtramp32_rt_vdso == current->return_addr)) {
+ struct rt_signal_frame_32 {
+ char dummy[64 + 16];
+@@ -204,7 +204,11 @@ static int GET_STACK_TRACE_OR_FRAMES {
+ ucontext_t uc;
+ // We don't care about the rest, since IP value is at 'uc' field.A
+ } *sigframe = reinterpret_cast<rt_signal_frame_32*>(current);
++#if defined(__GLIBC__)
+ result[n] = (void*) sigframe->uc.uc_mcontext.uc_regs->gregs[PT_NIP];
++#else
++ result[n] = (void*) sigframe->uc.uc_mcontext.gregs[32];
++#endif
+ }
+ #endif
+
diff --git a/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch b/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
index 10274a6dec..b01cba39cd 100644
--- a/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
+++ b/meta-oe/recipes-support/gperftools/gperftools/sgidef.patch
@@ -10,8 +10,6 @@ Upstream-Status: Pending
src/base/linux_syscall_support.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/src/base/linux_syscall_support.h b/src/base/linux_syscall_support.h
-index 70431ca..b23ca59 100644
--- a/src/base/linux_syscall_support.h
+++ b/src/base/linux_syscall_support.h
@@ -164,7 +164,7 @@ extern "C" {
diff --git a/meta-oe/recipes-support/gperftools/gperftools_2.10.bb b/meta-oe/recipes-support/gperftools/gperftools_2.10.bb
new file mode 100644
index 0000000000..8db0cecbfd
--- /dev/null
+++ b/meta-oe/recipes-support/gperftools/gperftools_2.10.bb
@@ -0,0 +1,67 @@
+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-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
+ file://disable_libunwind_aarch64.patch \
+ file://sgidef.patch \
+ file://0001-Define-off64_t-as-off_t-on-musl.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.6.1.bb b/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
deleted file mode 100644
index ecac6c5cc8..0000000000
--- a/meta-oe/recipes-support/gperftools/gperftools_2.6.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Fast, multi-threaded malloc() and nifty performance analysis tools"
-HOMEPAGE = "https://github.com/gperftools/gperftools"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=762732742c73dc6c7fbe8632f06c059a"
-DEPENDS += "libunwind"
-
-SRCREV = "bf840dec0495e17f5c8403e68e10b9d6bf05c559"
-SRC_URI = "git://github.com/gperftools/gperftools \
- file://0001-Support-Atomic-ops-on-clang.patch \
- file://0001-Use-ucontext_t-instead-of-struct-ucontext.patch \
- file://0001-fix-build-with-musl-libc.patch \
- file://0001-include-fcntl.h-for-loff_t-definition.patch \
- file://0001-disbale-heap-checkers-and-debug-allocator-on-musl.patch \
- file://disable_libunwind_aarch64.patch \
- file://sgidef.patch \
- "
-
-inherit autotools
-
-S = "${WORKDIR}/git"
-
-# 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"
-
diff --git a/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch b/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch
deleted file mode 100644
index a9198166a9..0000000000
--- a/meta-oe/recipes-support/gpm/gpm/0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 52e6cf052b1f938fcca1bc24d578fe0bfd972988 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 25 Jun 2017 07:25:33 -0700
-Subject: [PATCH] Use sigemptyset API instead of __sigemptyset
-
-__sigemptyset has been removed from glibc public
-API headers in upcoming (2.26) release onwards
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
-
- src/prog/gpm-root.y | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/src/prog/gpm-root.y b/src/prog/gpm-root.y
-index 5126c65..76c896c 100644
---- a/src/prog/gpm-root.y
-+++ b/src/prog/gpm-root.y
-@@ -1196,11 +1196,7 @@ int main(int argc, char **argv)
- LOG_DAEMON : LOG_USER);
- /* reap your zombies */
- childaction.sa_handler=reap_children;
--#if defined(__GLIBC__)
-- __sigemptyset(&childaction.sa_mask);
--#else /* __GLIBC__ */
- sigemptyset(&childaction.sa_mask);
--#endif /* __GLIBC__ */
- childaction.sa_flags=0;
- sigaction(SIGCHLD,&childaction,NULL);
-
---
-2.13.1
-
diff --git a/meta-oe/recipes-support/gpm/gpm/gpm.service.in b/meta-oe/recipes-support/gpm/gpm/gpm.service.in
index ee6c040fa6..5a6cadeb4e 100644
--- a/meta-oe/recipes-support/gpm/gpm/gpm.service.in
+++ b/meta-oe/recipes-support/gpm/gpm/gpm.service.in
@@ -4,6 +4,7 @@ Description=Virtual console mouse server
[Service]
Type=forking
ExecStart=@bindir@/gpm -m /dev/input/mice -t imps2
+PIDFile=/run/gpm.pid
[Install]
WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/gpm/gpm/no-docs.patch b/meta-oe/recipes-support/gpm/gpm/no-docs.patch
deleted file mode 100644
index 3faef84ee2..0000000000
--- a/meta-oe/recipes-support/gpm/gpm/no-docs.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
-Index: gpm-1.99.7/Makefile.in
-===================================================================
---- gpm-1.99.7.orig/Makefile.in 2008-07-24 03:36:35.000000000 -0700
-+++ gpm-1.99.7/Makefile.in 2010-06-22 18:28:45.269507001 -0700
-@@ -19,7 +19,7 @@
- # user-overridable flags, but it's also all the implicit rule looks at.
- # missing ?
-
--SUBDIRS = src doc contrib
-+SUBDIRS = src
-
-
- ### simple, but effective rules
diff --git a/meta-oe/recipes-support/gpm/gpm/processcreds.patch b/meta-oe/recipes-support/gpm/gpm/processcreds.patch
deleted file mode 100644
index d647eca0ad..0000000000
--- a/meta-oe/recipes-support/gpm/gpm/processcreds.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: gpm-1.99.7/src/daemon/processconn.c
-===================================================================
---- gpm-1.99.7.orig/src/daemon/processconn.c 2010-09-29 17:36:18.571782951 +0400
-+++ gpm-1.99.7/src/daemon/processconn.c 2010-09-29 17:42:44.659991758 +0400
-@@ -20,6 +20,7 @@
- *
- ********/
-
-+#define _GNU_SOURCE
- #include <sys/socket.h> /* accept */
- #include <stdlib.h> /* malloc */
- #include <unistd.h> /* close */
diff --git a/meta-oe/recipes-support/gpm/gpm_git.bb b/meta-oe/recipes-support/gpm/gpm_git.bb
index 51c4dd6397..cbb51d3477 100644
--- a/meta-oe/recipes-support/gpm/gpm_git.bb
+++ b/meta-oe/recipes-support/gpm/gpm_git.bb
@@ -1,47 +1,39 @@
+SUMMARY = "Console mouse driver"
DESCRIPTION = "GPM (General Purpose Mouse) is a mouse server \
for the console and xterm, with sample clients included \
(emacs, etc)."
+HOMEPAGE = "https://www.nico.schottelius.org/software/gpm"
SECTION = "console/utils"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=18810669f13b87348459e611d31ab760"
PV = "1.99.7+git${SRCREV}"
PR = "r2"
-SRCREV = "1fd19417b8a4dd9945347e98dfa97e4cfd798d77"
+SRCREV = "e82d1a653ca94aa4ed12441424da6ce780b1e530"
-DEPENDS = "ncurses"
+DEPENDS = "ncurses bison-native"
-SRC_URI = "git://github.com/telmich/gpm;protocol=git \
+SRC_URI = "git://github.com/telmich/gpm;protocol=https;branch=master \
file://init \
- file://no-docs.patch \
- file://processcreds.patch \
file://gpm.service.in \
- file://0001-Use-sigemptyset-API-instead-of-__sigemptyset.patch \
"
S = "${WORKDIR}/git"
-inherit autotools-brokensep update-rc.d systemd
+inherit autotools-brokensep update-rc.d systemd texinfo
INITSCRIPT_NAME = "gpm"
INITSCRIPT_PARAMS = "defaults"
-do_configure_prepend() {
+do_configure:prepend() {
(cd ${S};./autogen.sh;cd -)
}
-do_install_append () {
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -d ${D}${systemd_system_unitdir}
- sed 's:@bindir@:${bindir}:' < ${WORKDIR}/gpm.service.in >${D}${systemd_system_unitdir}/gpm.service
- fi
- if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
- install -D -m 0755 ${WORKDIR}/init ${D}/${sysconfdir}/init.d/gpm
- fi
- install -D -m 0644 ${S}/src/headers/gpm.h ${D}${includedir}/gpm.h
+do_install:append () {
+ install -d ${D}${systemd_system_unitdir}
+ sed 's:@bindir@:${sbindir}:' < ${WORKDIR}/gpm.service.in >${D}${systemd_system_unitdir}/gpm.service
+ install -D -m 0755 ${WORKDIR}/init ${D}${INIT_D_DIR}/gpm
ln -s libgpm.so.2 ${D}${libdir}/libgpm.so
}
-SYSTEMD_SERVICE_${PN} = "gpm.service"
-
-FILES_${PN} += "${datadir}/emacs"
+SYSTEMD_SERVICE:${PN} = "gpm.service"
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/gradm/gradm/0001-make-Define-SBINDIR-flag.patch b/meta-oe/recipes-support/gradm/gradm/0001-make-Define-SBINDIR-flag.patch
new file mode 100644
index 0000000000..1c0f3bfbae
--- /dev/null
+++ b/meta-oe/recipes-support/gradm/gradm/0001-make-Define-SBINDIR-flag.patch
@@ -0,0 +1,69 @@
+From 12bc62ac26df012fc143913b6e046a3cf5127db2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 23 Apr 2022 09:20:49 -0700
+Subject: [PATCH] make: Define SBINDIR flag
+
+Provides a facility to control install locations of /sbin elements from
+environment
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ Makefile | 17 +++++++++--------
+ 1 file changed, 9 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index deed94c..9190fe9 100644
+--- a/Makefile
++++ b/Makefile
+@@ -25,6 +25,7 @@ MKNOD=/bin/mknod
+ CC=/usr/bin/gcc
+ FIND=/usr/bin/find
+ LIBS := $(shell if [ "`uname -m`" != "sparc64" -a "`uname -m`" != "x86_64" ]; then echo "-lfl" ; else echo "" ; fi)
++SBINDIR=/sbin
+ OPT_FLAGS := -O2
+ # for older versions of grsecurity, comment the above line and uncomment the below:
+ #OPT_FLAGS := $(shell if [ "`uname -m`" != "sparc64" ] && [ "`uname -m`" != "x86_64" ]; then echo "-O2" ; else echo "-O2 -m64" ; fi)
+@@ -136,15 +137,15 @@ lex.learn_pass1.o: lex.learn_pass1.c learn_pass1.tab.h
+ lex.learn_pass2.o: lex.learn_pass2.c learn_pass2.tab.h
+
+ install: $(GRADM_BIN) gradm.8 policy grlearn
+- @mkdir -p $(DESTDIR)/sbin
++ @mkdir -p $(DESTDIR)$(SBINDIR)
+ @echo "Installing gradm..."
+- @$(INSTALL) -m 0755 $(GRADM_BIN) $(DESTDIR)/sbin
++ @$(INSTALL) -m 0755 $(GRADM_BIN) $(DESTDIR)$(SBINDIR)
+ @if [ -f $(GRADM_PAM) ] ; then \
+ echo "Installing gradm_pam..." ; \
+- $(INSTALL) -m 4755 $(GRADM_PAM) $(DESTDIR)/sbin ; \
++ $(INSTALL) -m 4755 $(GRADM_PAM) $(DESTDIR)$(SBINDIR) ; \
+ fi
+ @echo "Installing grlearn..."
+- @$(INSTALL) -m 0700 grlearn $(DESTDIR)/sbin
++ @$(INSTALL) -m 0700 grlearn $(DESTDIR)$(SBINDIR)
+ @mkdir -p -m 700 $(DESTDIR)$(GRSEC_DIR)
+ @if [ ! -f $(DESTDIR)$(GRSEC_DIR)/policy ] ; then \
+ if [ -f $(DESTDIR)$(GRSEC_DIR)/acl ] ; then \
+@@ -170,15 +171,15 @@ install: $(GRADM_BIN) gradm.8 policy grlearn
+ echo "KERNEL==\"grsec\", MODE=\"0622\"" >> $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \
+ echo "LABEL=\"permissions_end\"" >> $(DESTDIR)/etc/udev/rules.d/80-grsec.rules ; \
+ fi
+- @if [ -f $(DESTDIR)/sbin/udevadm ] ; then \
+- $(DESTDIR)/sbin/udevadm trigger --action=change ; \
++ @if [ -f $(DESTDIR)$(SBINDIR)/udevadm ] ; then \
++ $(DESTDIR)$(SBINDIR)/udevadm trigger --action=change ; \
+ fi
+ @echo "Installing gradm manpage..."
+ @mkdir -p $(DESTDIR)$(MANDIR)/man8
+ @$(INSTALL) -m 0644 gradm.8 $(DESTDIR)$(MANDIR)/man8/$(GRADM_BIN).8
+- @if [ -x /sbin/$(GRADM_BIN) ] ; then \
++ @if [ -x $(SBINDIR)/$(GRADM_BIN) ] ; then \
+ if [ -z $(DESTDIR) ] && [ ! -f $(GRSEC_DIR)/pw ] ; then \
+- /sbin/$(GRADM_BIN) -P ; \
++ $(SBINDIR)/$(GRADM_BIN) -P ; \
+ fi \
+ fi
+ @true
+--
+2.36.0
+
diff --git a/meta-oe/recipes-support/gradm/gradm_3.1-202111052217.bb b/meta-oe/recipes-support/gradm/gradm_3.1-202111052217.bb
new file mode 100644
index 0000000000..c82b529f96
--- /dev/null
+++ b/meta-oe/recipes-support/gradm/gradm_3.1-202111052217.bb
@@ -0,0 +1,51 @@
+SUMMARY = "Administration program for the grsecurity RBAC syste"
+DESCRIPTION = "\
+gradm is the userspace RBAC parsing and authentication program for \
+grsecurity grsecurity aims to be a complete security system. gradm \
+performs several tasks for the RBAC system including authenticated \
+via a password to the kernel and parsing rules to be passed to the \
+kernel"
+HOMEPAGE = "http://grsecurity.net/index.php"
+SECTION = "admin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b"
+DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
+
+SRC_URI = "http://grsecurity.net/stable/${BP}.tar.gz \
+ file://0001-Makefile-remove-strip.patch \
+ file://0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch \
+ file://0001-make-Define-SBINDIR-flag.patch \
+ "
+SRC_URI[sha256sum] = "2459290f367a47c8a1ce4ea2ec08359799ea33dc15ed4436439596ce88284fb9"
+
+S = "${WORKDIR}/gradm"
+
+inherit autotools-brokensep
+
+do_compile() {
+ oe_runmake 'CC=${CC}' \
+ 'LIBS=' \
+ 'OPT_FLAGS=${CFLAGS}' \
+ 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \
+ 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \
+ 'BISON=${STAGING_BINDIR_NATIVE}/bison' \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)}
+}
+
+do_install() {
+ oe_runmake 'CC=${CC}' \
+ 'DESTDIR=${D}' \
+ 'SBINDIR=${base_sbindir}' \
+ 'LIBS=' \
+ 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \
+ 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \
+ 'BISON=${STAGING_BINDIR_NATIVE}/bison' \
+ install
+
+ # The device nodes are generated by postinstall or udev
+ rm -rf ${D}/dev
+}
+
+pkg_postinst_ontarget:${PN}() {
+ /bin/mknod -m 0622 /dev/grsec c 1 13
+}
diff --git a/meta-oe/recipes-support/gradm/gradm_3.1.bb b/meta-oe/recipes-support/gradm/gradm_3.1.bb
deleted file mode 100644
index 1a4261a9ea..0000000000
--- a/meta-oe/recipes-support/gradm/gradm_3.1.bb
+++ /dev/null
@@ -1,52 +0,0 @@
-SUMMARY = "Administration program for the grsecurity RBAC syste"
-DESCRIPTION = "\
-gradm is the userspace RBAC parsing and authentication program for \
-grsecurity grsecurity aims to be a complete security system. gradm \
-performs several tasks for the RBAC system including authenticated \
-via a password to the kernel and parsing rules to be passed to the \
-kernel"
-HOMEPAGE = "http://grsecurity.net/index.php"
-SECTION = "admin"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4641e94ec96f98fabc56ff9cc48be14b"
-DEPENDS = "flex-native bison-native ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-
-SRC_URI = "http://grsecurity.net/stable/${BP}-201507191652.tar.gz \
- file://0001-Makefile-remove-strip.patch \
- file://0001-Makefile-Append-instead-of-overriding-LDFLAGS.patch \
- "
-SRC_URI[md5sum] = "ecec72d3a9b6d84c00eda97957b707b6"
-SRC_URI[sha256sum] = "2f14c357bf0459e502a4e108b76c3f6240aa484762d07bb1687796b9b9297a50"
-
-S = "${WORKDIR}/gradm"
-
-inherit autotools-brokensep
-
-do_compile() {
- oe_runmake 'CC=${CC}' \
- 'OPT_FLAGS=${CFLAGS}' \
- 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \
- 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \
- 'BISON=${STAGING_BINDIR_NATIVE}/bison' \
- ${@bb.utils.contains('DISTRO_FEATURES', 'pam', ' ', 'nopam', d)}
-}
-
-do_install() {
- oe_runmake 'CC=${CC}' \
- 'DESTDIR=${D}' \
- 'LLEX=${STAGING_BINDIR_NATIVE}/lex' \
- 'FLEX=${STAGING_BINDIR_NATIVE}/flex' \
- 'BISON=${STAGING_BINDIR_NATIVE}/bison' \
- install
-
- # The device nodes are generated by postinstall or udev
- rm -rf ${D}/dev
-}
-
-pkg_postinst_${PN}() {
- # make sure running on the target
- if [ x"$D" != "x" ]; then
- exit 1
- fi
- /bin/mknod -m 0622 /dev/grsec c 1 13
-}
diff --git a/meta-oe/recipes-support/gsl/gsl.inc b/meta-oe/recipes-support/gsl/gsl.inc
index 40613930b5..d0fa9344eb 100644
--- a/meta-oe/recipes-support/gsl/gsl.inc
+++ b/meta-oe/recipes-support/gsl/gsl.inc
@@ -1,9 +1,12 @@
DESCRIPTION = "GNU Scientific Library"
HOMEPAGE = "http://www.gnu.org/software/gsl/"
SECTION = "libs"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit autotools pkgconfig binconfig
LEAD_SONAME = "libgsl.so"
+
+# Uses fpu_control.h which is glibc only header see ieee-utils/fp-gnuppc.c
+COMPATIBLE_HOST:libc-musl:powerpc = "null"
diff --git a/meta-oe/recipes-support/gsl/gsl_1.15.bb b/meta-oe/recipes-support/gsl/gsl_1.15.bb
deleted file mode 100644
index 620e7804c4..0000000000
--- a/meta-oe/recipes-support/gsl/gsl_1.15.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-include gsl.inc
-
-SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "494ffefd90eef4ada678c306bab4030b"
-SRC_URI[sha256sum] = "85b907e57902e2b7606ef3aef960302ffdd13bd9dc5b8fcbfa75e4f0bf340ea3"
-
diff --git a/meta-oe/recipes-support/gsl/gsl_2.7.1.bb b/meta-oe/recipes-support/gsl/gsl_2.7.1.bb
new file mode 100644
index 0000000000..a4dc1437e2
--- /dev/null
+++ b/meta-oe/recipes-support/gsl/gsl_2.7.1.bb
@@ -0,0 +1,4 @@
+include gsl.inc
+
+SRC_URI = "${GNU_MIRROR}/gsl/gsl-${PV}.tar.gz"
+SRC_URI[sha256sum] = "dcb0fbd43048832b757ff9942691a8dd70026d5da0ff85601e52687f6deeb34b"
diff --git a/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch
deleted file mode 100644
index 5ceb4bf025..0000000000
--- a/meta-oe/recipes-support/gsoap/gsoap/0001-Fix-out-of-tree-builds.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From 8a10b6bd556426616e93f15639f369defbeca33f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Mon, 14 Aug 2017 11:58:58 -0700
-Subject: [PATCH] Fix out of tree builds
-
-When build dir is not same as sourcedir then the build failed due
-to use of $(srcdir) variable which assumes source = build therefore
-replace that with top_srcdir
-
-Additionally move the conditional addition of sources to Makefile.am
-instead of adding it in configure.ac, since then we can use top_srcdir
-variable to access those sources too otherwise its not possible to
-specify the right dir for these sources
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted[https://sourceforge.net/p/gsoap2/patches/171/]
-
- configure.ac | 5 +++--
- gsoap/Makefile.am | 14 +++++++-------
- gsoap/samples/autotest/Makefile.am | 8 ++++----
- gsoap/samples/databinding/Makefile.am | 8 ++++----
- gsoap/wsdl/Makefile.am | 15 +++++++++------
- 5 files changed, 27 insertions(+), 23 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 0631c18..c36e696 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -265,7 +265,7 @@ if test "x$with_openssl" = "xyes"; then
- WSDL2H_EXTRA_FLAGS="-DWITH_OPENSSL -DWITH_GZIP"
- # an ugly hack to get httpda and smdevp plugins to conditionally
- # compile with wsdl2h when OPENSSL is available
-- WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} ../plugin/httpda.c ../plugin/smdevp.c ../plugin/threads.c -lssl -lcrypto -lz"
-+ WSDL2H_EXTRA_LIBS="${WSDL2H_EXTRA_LIBS} -lssl -lcrypto -lz"
- SAMPLE_INCLUDES=
- SAMPLE_SSL_LIBS="-lssl -lcrypto -lz"
- WSDL2H_SOAP_CPP_LIB="libgsoapssl++.a"
-@@ -289,12 +289,13 @@ else
- SAMPLE_INCLUDES=
- WSDL2H_SOAP_CPP_LIB="libgsoap++.a"
- fi
-+AM_CONDITIONAL(WITH_OPENSSL, test "x$with_openssl" = "xyes" -a "x$with_gnutls" != "xyes")
-+AC_SUBST(WITH_OPENSSL)
- AC_SUBST(WSDL2H_EXTRA_FLAGS)
- AC_SUBST(WSDL2H_EXTRA_LIBS)
- AC_SUBST(SAMPLE_INCLUDES)
- AC_SUBST(SAMPLE_SSL_LIBS)
- AC_SUBST(WSDL2H_SOAP_CPP_LIB)
--
- # enable the compile of the samples
- AC_ARG_ENABLE(samples,
- [ --enable-samples enable compile for the gsoap samples],
-diff --git a/gsoap/Makefile.am b/gsoap/Makefile.am
-index 7273b82..9c0c89f 100644
---- a/gsoap/Makefile.am
-+++ b/gsoap/Makefile.am
-@@ -13,26 +13,26 @@ AM_CXXFLAGS = $(SOAPCPP2_DEBUG) -D$(platform)
- AM_CFLAGS = $(SOAPCPP2_DEBUG) -D$(platform)
-
- # Install all soapcpp2 and wsdl2h files into ${prefix}/share/gsoap
--nobase_pkgdata_DATA = $(srcdir)/import/* $(srcdir)/plugin/* $(srcdir)/WS/* $(srcdir)/custom/* $(srcdir)/extras/*
-+nobase_pkgdata_DATA = $(top_srcdir)/gsoap/import/* $(top_srcdir)/gsoap/plugin/* $(top_srcdir)/gsoap/WS/* $(top_srcdir)/gsoap/custom/* $(top_srcdir)/gsoap/extras/*
-
- ## we cannot build stdsoap2.o from 2 different sources (stdsoap2.cpp and stdsoap2.c), so we need an intermediate target:
- stdsoap2_ck.c: stdsoap2.cpp
-- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck.c
-+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck.c
-
- stdsoap2_cpp.cpp: stdsoap2.cpp
-- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_cpp.cpp
-+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_cpp.cpp
-
- stdsoap2_ck_cpp.cpp: stdsoap2.cpp
-- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ck_cpp.cpp
-+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ck_cpp.cpp
-
- stdsoap2_ssl.c: stdsoap2.cpp
-- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl.c
-+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl.c
-
- stdsoap2_ssl_cpp.cpp: stdsoap2.cpp
-- $(LN_S) -f $(srcdir)/stdsoap2.cpp stdsoap2_ssl_cpp.cpp
-+ $(LN_S) -f $(top_srcdir)/gsoap/stdsoap2.cpp stdsoap2_ssl_cpp.cpp
- ## do the same fo dom.cpp since we want to link it into the cpp libs and dom.c into the c libs
- dom_cpp.cpp: dom.cpp
-- $(LN_S) -f $(srcdir)/dom.cpp dom_cpp.cpp
-+ $(LN_S) -f $(top_srcdir)/gsoap/dom.cpp dom_cpp.cpp
-
- lib_LIBRARIES = libgsoap.a libgsoap++.a libgsoapck.a libgsoapck++.a libgsoapssl.a libgsoapssl++.a
-
-diff --git a/gsoap/samples/autotest/Makefile.am b/gsoap/samples/autotest/Makefile.am
-index 36adf51..61e514c 100644
---- a/gsoap/samples/autotest/Makefile.am
-+++ b/gsoap/samples/autotest/Makefile.am
-@@ -6,13 +6,13 @@
- AUTOMAKE_OPTIONS = subdir-objects foreign 1.4
-
- CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
--AM_LDFLAGS=$(CPPFLAGS) -I$(srcdir) -L$(srcdir)
-+AM_LDFLAGS=$(CPPFLAGS) -I$(top_srcdir)/gsoap/samples/autotest -L$(top_srcdir)/gsoap/samples/autotest
- SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT)
- WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT)
--WSDL_FLAGS=-d -P -t $(srcdir)/typemap.dat
-+WSDL_FLAGS=-d -P -t $(top_srcdir)/gsoap/samples/autotest/typemap.dat
- SOAP_FLAGS=-SL -T -I$(top_srcdir)/gsoap/import -I$(top_srcdir)/gsoap/custom
--WSDLINPUT=$(srcdir)/examples.wsdl
--SOAPHEADER=$(srcdir)/examples.h
-+WSDLINPUT=$(top_srcdir)/gsoap/samples/autotest/examples.wsdl
-+SOAPHEADER=$(top_srcdir)/gsoap/samples/autotest/examples.h
- SOAP_CPP_SRC=soapC.cpp soapServer.cpp
- SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
-
-diff --git a/gsoap/samples/databinding/Makefile.am b/gsoap/samples/databinding/Makefile.am
-index 892d4fd..86ad482 100644
---- a/gsoap/samples/databinding/Makefile.am
-+++ b/gsoap/samples/databinding/Makefile.am
-@@ -6,13 +6,13 @@
- AUTOMAKE_OPTIONS = subdir-objects foreign 1.4
-
- CPPFLAGS=$(SAMPLE_INCLUDES) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
--AM_LDFLAGS=$(AM_CPPFLAGS) -I$(srcdir) -L$(srcdir)
-+AM_LDFLAGS=$(AM_CPPFLAGS) -I$(top_srcdir)/gsoap/samples/databinding -L$(top_srcdir)/gsoap/samples/databinding
- SOAP=$(top_srcdir)/gsoap/src/soapcpp2$(EXEEXT)
- WSDL=$(top_srcdir)/gsoap/wsdl/wsdl2h$(EXEEXT)
--WSDL_FLAGS=-g -t $(srcdir)/addresstypemap.dat
-+WSDL_FLAGS=-g -t $(top_srcdir)/gsoap/samples/databinding/addresstypemap.dat
- SOAP_FLAGS=-0 -CS -p address -I$(top_srcdir)/gsoap/import
--WSDLINPUT=$(srcdir)/address.xsd
--SOAPHEADER=$(srcdir)/address.h
-+WSDLINPUT=$(top_srcdir)/gsoap/samples/databinding/address.xsd
-+SOAPHEADER=$(top_srcdir)/gsoap/samples/databinding/address.h
- SOAP_CPP_SRC=addressC.cpp
- SOAP_CPP_LIB=$(top_builddir)/gsoap/libgsoap++.a
-
-diff --git a/gsoap/wsdl/Makefile.am b/gsoap/wsdl/Makefile.am
-index b8da5db..9f2aefa 100644
---- a/gsoap/wsdl/Makefile.am
-+++ b/gsoap/wsdl/Makefile.am
-@@ -6,14 +6,14 @@
- AUTOMAKE_OPTIONS = foreign 1.4
-
- # INCLUDES=-I$(top_srcdir)/gsoap
--# AM_LDFLAGS=$(INCLUDES) -I$(srcdir) -L$(srcdir)
--AM_LDFLAGS=-L$(srcdir) -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
-+# AM_LDFLAGS=$(INCLUDES) -I$(top_srcdir)/gsoap/wsdl -L$(top_srcdir)/gsoap/wsdl
-+AM_LDFLAGS=-L$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
- AM_CPPFLAGS=-I$(top_srcdir)/gsoap -I$(top_srcdir)/gsoap/plugin
- SOAP=$(top_builddir)/gsoap/src/soapcpp2$(EXEEXT)
- SOAP_CPP_LIB=$(top_builddir)/gsoap/$(WSDL2H_SOAP_CPP_LIB)
- SOAP_CPP_SRC=wsdlC.cpp
--SOAPHEADER=$(srcdir)/wsdl.h
--SOAP_FLAGS=-SC -pwsdl -I$(srcdir) -I$(top_srcdir)/gsoap/import
-+SOAPHEADER=$(top_srcdir)/gsoap/wsdl/wsdl.h
-+SOAP_FLAGS=-SC -pwsdl -I$(top_srcdir)/gsoap/wsdl -I$(top_srcdir)/gsoap/import
- BUILT_SOURCES=$(SOAP_CPP_SRC)
- # WSDL2H_EXTRA_FLAGS=-DWITH_OPENSSL -DWITH_GZIP # defined in configure.in
- # WSDL2H_EXTRA_LIBS=-lssl -lcrypto -lz # defined in configure.in
-@@ -24,11 +24,14 @@ $(SOAP_CPP_SRC) : $(SOAPHEADER)
- #LIBS=
-
- bin_PROGRAMS=wsdl2h
--
-+if WITH_OPENSSL
-+wsdl2h_LDADD=$(SOAP_CPP_LIB) $(top_srcdir)/gsoap/plugin/httpda.c $(top_srcdir)/gsoap/plugin/smdevp.c $(top_srcdir)/gsoap/plugin/threads.c $(WSDL2H_EXTRA_LIBS)
-+else
-+wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS)
-+endif
- wsdl2h_CFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS)
- wsdl2h_CXXFLAGS=$(C_DEBUG_FLAGS) $(SOAPCPP2_NO_C_LOCALE) $(WSDL2H_EXTRA_FLAGS) $(WSDL2H_IMPORTPATH)
- wsdl2h_CPPFLAGS=$(AM_CPPFLAGS) $(SOAPCPP2_NONAMESPACES) -D$(platform)
- wsdl2h_SOURCES=wsdl2h.cpp wsdl.cpp wadl.cpp schema.cpp types.cpp service.cpp soap.cpp mime.cpp wsp.cpp bpel.cpp $(SOAP_CPP_SRC)
--wsdl2h_LDADD=$(SOAP_CPP_LIB) $(WSDL2H_EXTRA_LIBS)
-
- CLEANFILES= *~ *C.cpp *H.h *Stub.h *.nsmap
---
-2.14.1
-
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/0001-stdgsoap2-Fix-build-with-musl.patch b/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch
deleted file mode 100644
index 571cbe5409..0000000000
--- a/meta-oe/recipes-support/gsoap/gsoap/0001-stdgsoap2-Fix-build-with-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From db260fbc7af4c73c997c485a0c69c61594a0e59c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 30 Aug 2017 19:48:50 -0700
-Subject: [PATCH] stdgsoap2: Fix build with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- gsoap/stdsoap2.c | 2 +-
- gsoap/stdsoap2.cpp | 4 ++--
- gsoap/stdsoap2.h | 2 +-
- 3 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/gsoap/stdsoap2.c b/gsoap/stdsoap2.c
-index 58e9df4..62389e1 100644
---- a/gsoap/stdsoap2.c
-+++ b/gsoap/stdsoap2.c
-@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr)
- return soap->error = SOAP_EOM;
- return SOAP_OK;
- }
--#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
-+#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
- if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0)
- host = NULL;
- #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
-diff --git a/gsoap/stdsoap2.cpp b/gsoap/stdsoap2.cpp
-index 58e9df4..b637161 100644
---- a/gsoap/stdsoap2.cpp
-+++ b/gsoap/stdsoap2.cpp
-@@ -4462,7 +4462,7 @@ tcp_gethost(struct soap *soap, const char *addr, struct in_addr *inaddr)
- return soap->error = SOAP_EOM;
- return SOAP_OK;
- }
--#if defined(__GLIBC__) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
-+#if defined(LINUX) || (defined(HAVE_GETHOSTBYNAME_R) && (defined(FREEBSD) || defined(__FreeBSD__))) || defined(__ANDROID__)
- if (gethostbyname_r(addr, &hostent, soap->buf, sizeof(soap->buf), &host, &soap->errnum) < 0)
- host = NULL;
- #elif defined(_AIX43) || ((defined(TRU64) || defined(HP_UX)) && defined(HAVE_GETHOSTBYNAME_R))
-@@ -19658,7 +19658,7 @@ soap_strerror(struct soap *soap)
- {
- #ifndef WIN32
- # ifdef HAVE_STRERROR_R
--# if defined(_GNU_SOURCE) && !defined(__ANDROID__)
-+# if defined(_GNU_SOURCE) && !defined(__ANDROID__) && defined(__GLIBC__)
- return strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* GNU-specific */
- # else
- strerror_r(err, soap->msgbuf, sizeof(soap->msgbuf)); /* XSI-compliant */
-diff --git a/gsoap/stdsoap2.h b/gsoap/stdsoap2.h
-index 07a3952..c6ace4c 100644
---- a/gsoap/stdsoap2.h
-+++ b/gsoap/stdsoap2.h
-@@ -947,7 +947,7 @@ extern "C" {
- # endif
- #elif defined(SOCKLEN_T)
- # define SOAP_SOCKLEN_T SOCKLEN_T
--#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE)
-+#elif defined(__socklen_t_defined) || defined(_SOCKLEN_T) || defined(CYGWIN) || defined(FREEBSD) || defined(__FreeBSD__) || defined(OPENBSD) || defined(__QNX__) || defined(QNX) || defined(OS390) || defined(__ANDROID__) || defined(_XOPEN_SOURCE) || defined (LINUX)
- # define SOAP_SOCKLEN_T socklen_t
- #elif defined(IRIX) || defined(WIN32) || defined(__APPLE__) || defined(SUN_OS) || defined(OPENSERVER) || defined(TRU64) || defined(VXWORKS)
- # define SOAP_SOCKLEN_T int
---
-2.14.1
-
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/gsoap/gsoap_2.8.51.bb b/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
deleted file mode 100644
index 8875844615..0000000000
--- a/meta-oe/recipes-support/gsoap/gsoap_2.8.51.bb
+++ /dev/null
@@ -1,44 +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 \
- file://0001-Fix-out-of-tree-builds.patch \
- file://0001-stdgsoap2-Fix-build-with-musl.patch \
- "
-SRC_URI[md5sum] = "212951d6e1435bb51fa4320f458809ea"
-SRC_URI[sha256sum] = "3e7bb24a9e492f5cb86daca34054c9787152f1d7b70add36b789d03816d5ffa1"
-
-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"
-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/0001-configure.ac-Rename-to-configure.ac-and-use-external.patch b/meta-oe/recipes-support/hddtemp/hddtemp/0001-configure.ac-Rename-to-configure.ac-and-use-external.patch
new file mode 100644
index 0000000000..d2de0bbe61
--- /dev/null
+++ b/meta-oe/recipes-support/hddtemp/hddtemp/0001-configure.ac-Rename-to-configure.ac-and-use-external.patch
@@ -0,0 +1,703 @@
+From d7e6fe2ac69333c2d943a4b8eb139373d1fb2ce2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 31 Dec 2019 18:08:09 -0800
+Subject: [PATCH] configure.ac: Rename to configure.ac and use external gettext
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 81 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 81 insertions(+)
+ create mode 100644 configure.ac
+
+--- /dev/null
++++ b/configure.ac
+@@ -0,0 +1,81 @@
++dnl Process this file with autoconf to produce a configure script.
++
++# Initialization
++AC_INIT
++AC_CONFIG_SRCDIR([Makefile.am])
++AC_CONFIG_HEADERS([config.h])
++
++# Determine the host and build type. The target is always a PIC.
++AC_CANONICAL_HOST
++
++AM_INIT_AUTOMAKE(hddtemp, 0.3-beta15)
++
++dnl Checks for programs.
++AC_PROG_CC
++AC_PROG_INSTALL
++
++# append the host alias to the tools for cross compiling
++AC_HEADER_STDC
++AC_CHECK_HEADERS(fcntl.h)
++AC_CHECK_HEADERS(iconv.h)
++AC_CHECK_HEADERS(netinet/in.h)
++AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if <netinet/in.h> does not define.])], [#include <netinet/in.h>])
++
++# Checks for typedefs, structures, and compiler characteristics.
++AC_C_CONST
++AC_STRUCT_TM
++
++dnl internationalization macros
++AM_GNU_GETTEXT([external])
++
++AC_CHECK_FUNCS([bindtextdomain textdomain iconv])
++
++dnl reasonable guesses for where stuff is installed
++dnl if we don't do that now, the config.h will use ${prefix}
++dnl for DEFAULT_DATABASE_PATH.
++if test "x$prefix" = "xNONE"; then
++ prefix="/usr/local"
++fi
++if test "x$exec_prefix" = "xNONE"; then
++ exec_prefix=$prefix
++fi
++
++AC_MSG_CHECKING([Location of hddtemp.db])
++DEFAULT_DATABASE_PATH=
++#db_path=\"`eval echo ${datadir}`/misc/hddtemp.db\"
++db_path=\"/usr/share/misc/hddtemp.db\"
++AC_ARG_WITH(db_path,
++ [ --with-db-path=PATH \
++ Default location of hddtemp.db file [/usr/share/misc/hddtemp.db]],
++ [ if test -d "$withval"; then
++ AC_MSG_FAILURE([new file name for db-path])
++ fi
++ DEFAULT_DATABASE_PATH="\"$withval\""
++ ],
++ [ DEFAULT_DATABASE_PATH="$db_path" ])
++AC_MSG_RESULT($DEFAULT_DATABASE_PATH)
++AC_DEFINE_UNQUOTED([DEFAULT_DATABASE_PATH], [$DEFAULT_DATABASE_PATH], [Default location of drive info database])
++
++#CFLAGS="$CFLAGS -Wall -fomit-frame-pointer -Wcast-align"
++CFLAGS="$CFLAGS -Wall -W -Wcast-align"
++
++# Substitute configuration variables
++AC_CONFIG_FILES([Makefile \
++po/Makefile.in \
++m4/Makefile \
++src/Makefile \
++doc/Makefile \
++])
++AC_OUTPUT
++
++AC_MSG_RESULT([
++
++hddtemp-$VERSION is now configured for $canonical_host_type
++
++ Build: $build
++ Host: $host
++ Source directory: $srcdir
++ Installation prefix: $prefix
++ C compiler: $CC $CFLAGS
++
++])
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -12,7 +12,7 @@ EXTRA_DIST = config.rpath autogen.sh \
+ README \
+ TODO
+
+-SUBDIRS = intl po m4 src doc
++SUBDIRS = po m4 src doc
+
+ CLEANFILES = *~
+
+--- a/configure.in
++++ /dev/null
+@@ -1,83 +0,0 @@
+-dnl Process this file with autoconf to produce a configure script.
+-
+-# Initialization
+-AC_INIT
+-AC_CONFIG_SRCDIR([Makefile.am])
+-AC_CONFIG_HEADERS([config.h])
+-
+-# Determine the host and build type. The target is always a PIC.
+-AC_CANONICAL_HOST
+-
+-AM_INIT_AUTOMAKE(hddtemp, 0.3-beta15)
+-
+-dnl Checks for programs.
+-AC_PROG_CC
+-AC_PROG_INSTALL
+-
+-# append the host alias to the tools for cross compiling
+-AC_HEADER_STDC
+-AC_CHECK_HEADERS(fcntl.h)
+-AC_CHECK_HEADERS(iconv.h)
+-AC_CHECK_HEADERS(netinet/in.h)
+-AC_CHECK_TYPE(in_addr_t, ,[AC_DEFINE_UNQUOTED([in_addr_t], [uint32_t], [Define to 'uint32_t' if <netinet/in.h> does not define.])], [#include <netinet/in.h>])
+-
+-# Checks for typedefs, structures, and compiler characteristics.
+-AC_C_CONST
+-AC_STRUCT_TM
+-
+-dnl internationalization macros
+-AM_GNU_GETTEXT_VERSION
+-AM_GNU_GETTEXT
+-#AM_GNU_GETTEXT([external])
+-
+-AC_CHECK_FUNCS([bindtextdomain textdomain iconv])
+-
+-dnl reasonable guesses for where stuff is installed
+-dnl if we don't do that now, the config.h will use ${prefix}
+-dnl for DEFAULT_DATABASE_PATH.
+-if test "x$prefix" = "xNONE"; then
+- prefix="/usr/local"
+-fi
+-if test "x$exec_prefix" = "xNONE"; then
+- exec_prefix=$prefix
+-fi
+-
+-AC_MSG_CHECKING([Location of hddtemp.db])
+-DEFAULT_DATABASE_PATH=
+-#db_path=\"`eval echo ${datadir}`/misc/hddtemp.db\"
+-db_path=\"/usr/share/misc/hddtemp.db\"
+-AC_ARG_WITH(db_path,
+- [ --with-db-path=PATH \
+- Default location of hddtemp.db file [/usr/share/misc/hddtemp.db]],
+- [ if test -d "$withval"; then
+- AC_MSG_FAILURE([new file name for db-path])
+- fi
+- DEFAULT_DATABASE_PATH="\"$withval\""
+- ],
+- [ DEFAULT_DATABASE_PATH="$db_path" ])
+-AC_MSG_RESULT($DEFAULT_DATABASE_PATH)
+-AC_DEFINE_UNQUOTED([DEFAULT_DATABASE_PATH], [$DEFAULT_DATABASE_PATH], [Default location of drive info database])
+-
+-#CFLAGS="$CFLAGS -Wall -fomit-frame-pointer -Wcast-align"
+-CFLAGS="$CFLAGS -Wall -W -Wcast-align"
+-
+-# Substitute configuration variables
+-AC_CONFIG_FILES([Makefile intl/Makefile \
+-po/Makefile.in \
+-m4/Makefile \
+-src/Makefile \
+-doc/Makefile \
+-])
+-AC_OUTPUT
+-
+-AC_MSG_RESULT([
+-
+-hddtemp-$VERSION is now configured for $canonical_host_type
+-
+- Build: $build
+- Host: $host
+- Source directory: $srcdir
+- Installation prefix: $prefix
+- C compiler: $CC $CFLAGS
+-
+-])
+--- a/intl/ChangeLog
++++ /dev/null
+@@ -1,4 +0,0 @@
+-2005-02-24 GNU <bug-gnu-gettext@gnu.org>
+-
+- * Version 0.14.2 released.
+-
+--- a/intl/Makefile.in
++++ /dev/null
+@@ -1,500 +0,0 @@
+-# Makefile for directory with message catalog handling library of GNU gettext
+-# Copyright (C) 1995-1998, 2000-2005 Free Software Foundation, Inc.
+-#
+-# This program is free software; you can redistribute it and/or modify it
+-# under the terms of the GNU Library General Public License as published
+-# by the Free Software Foundation; either version 2, 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
+-# Library General Public License for more details.
+-#
+-# You should have received a copy of the GNU Library 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.
+-
+-PACKAGE = @PACKAGE@
+-VERSION = @VERSION@
+-
+-SHELL = /bin/sh
+-
+-srcdir = @srcdir@
+-top_srcdir = @top_srcdir@
+-top_builddir = ..
+-VPATH = $(srcdir)
+-
+-prefix = @prefix@
+-exec_prefix = @exec_prefix@
+-transform = @program_transform_name@
+-libdir = @libdir@
+-includedir = @includedir@
+-datadir = @datadir@
+-localedir = $(datadir)/locale
+-gettextsrcdir = $(datadir)/gettext/intl
+-aliaspath = $(localedir)
+-subdir = intl
+-
+-INSTALL = @INSTALL@
+-INSTALL_DATA = @INSTALL_DATA@
+-MKINSTALLDIRS = @MKINSTALLDIRS@
+-mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+-
+-l = @INTL_LIBTOOL_SUFFIX_PREFIX@
+-
+-AR = ar
+-CC = @CC@
+-LIBTOOL = @LIBTOOL@
+-RANLIB = @RANLIB@
+-YACC = @INTLBISON@ -y -d
+-YFLAGS = --name-prefix=__gettext
+-
+-DEFS = -DLOCALEDIR=\"$(localedir)\" -DLOCALE_ALIAS_PATH=\"$(aliaspath)\" \
+--DLIBDIR=\"$(libdir)\" -DIN_LIBINTL \
+--DENABLE_RELOCATABLE=1 -DIN_LIBRARY -DINSTALLDIR=\"$(libdir)\" -DNO_XMALLOC \
+--Dset_relocation_prefix=libintl_set_relocation_prefix \
+--Drelocate=libintl_relocate \
+--DDEPENDS_ON_LIBICONV=1 @DEFS@
+-CPPFLAGS = @CPPFLAGS@
+-CFLAGS = @CFLAGS@
+-LDFLAGS = @LDFLAGS@
+-LIBS = @LIBS@
+-
+-COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+-
+-HEADERS = \
+- gmo.h \
+- gettextP.h \
+- hash-string.h \
+- loadinfo.h \
+- plural-exp.h \
+- eval-plural.h \
+- localcharset.h \
+- relocatable.h \
+- xsize.h \
+- printf-args.h printf-args.c \
+- printf-parse.h wprintf-parse.h printf-parse.c \
+- vasnprintf.h vasnwprintf.h vasnprintf.c \
+- os2compat.h \
+- libgnuintl.h.in
+-SOURCES = \
+- bindtextdom.c \
+- dcgettext.c \
+- dgettext.c \
+- gettext.c \
+- finddomain.c \
+- loadmsgcat.c \
+- localealias.c \
+- textdomain.c \
+- l10nflist.c \
+- explodename.c \
+- dcigettext.c \
+- dcngettext.c \
+- dngettext.c \
+- ngettext.c \
+- plural.y \
+- plural-exp.c \
+- localcharset.c \
+- relocatable.c \
+- langprefs.c \
+- localename.c \
+- log.c \
+- printf.c \
+- osdep.c \
+- os2compat.c \
+- intl-compat.c
+-OBJECTS = \
+- bindtextdom.$lo \
+- dcgettext.$lo \
+- dgettext.$lo \
+- gettext.$lo \
+- finddomain.$lo \
+- loadmsgcat.$lo \
+- localealias.$lo \
+- textdomain.$lo \
+- l10nflist.$lo \
+- explodename.$lo \
+- dcigettext.$lo \
+- dcngettext.$lo \
+- dngettext.$lo \
+- ngettext.$lo \
+- plural.$lo \
+- plural-exp.$lo \
+- localcharset.$lo \
+- relocatable.$lo \
+- langprefs.$lo \
+- localename.$lo \
+- log.$lo \
+- printf.$lo \
+- osdep.$lo \
+- intl-compat.$lo
+-DISTFILES.common = Makefile.in \
+-config.charset locale.alias ref-add.sin ref-del.sin $(HEADERS) $(SOURCES)
+-DISTFILES.generated = plural.c
+-DISTFILES.normal = VERSION
+-DISTFILES.gettext = COPYING.LIB-2.0 COPYING.LIB-2.1 libintl.glibc \
+-libgnuintl.h_vms Makefile.vms \
+-libgnuintl.h.msvc-static libgnuintl.h.msvc-shared README.woe32 Makefile.msvc
+-DISTFILES.obsolete = xopen-msg.sed linux-msg.sed po2tbl.sed.in cat-compat.c \
+-COPYING.LIB-2 gettext.h libgettext.h plural-eval.c libgnuintl.h
+-
+-all: all-@USE_INCLUDED_LIBINTL@
+-all-yes: libintl.$la libintl.h charset.alias ref-add.sed ref-del.sed
+-all-no: all-no-@BUILD_INCLUDED_LIBINTL@
+-all-no-yes: libgnuintl.$la
+-all-no-no:
+-
+-libintl.a libgnuintl.a: $(OBJECTS)
+- rm -f $@
+- $(AR) cru $@ $(OBJECTS)
+- $(RANLIB) $@
+-
+-libintl.la libgnuintl.la: $(OBJECTS)
+- $(LIBTOOL) --mode=link \
+- $(CC) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS) $(LDFLAGS) -o $@ \
+- $(OBJECTS) @LTLIBICONV@ @INTL_MACOSX_LIBS@ $(LIBS) -lc \
+- -version-info $(LTV_CURRENT):$(LTV_REVISION):$(LTV_AGE) \
+- -rpath $(libdir) \
+- -no-undefined
+-
+-# Libtool's library version information for libintl.
+-# Before making a gettext release, the gettext maintainer must change this
+-# according to the libtool documentation, section "Library interface versions".
+-# Maintainers of other packages that include the intl directory must *not*
+-# change these values.
+-LTV_CURRENT=7
+-LTV_REVISION=1
+-LTV_AGE=4
+-
+-.SUFFIXES:
+-.SUFFIXES: .c .y .o .lo .sin .sed
+-
+-.c.o:
+- $(COMPILE) $<
+-
+-.y.c:
+- $(YACC) $(YFLAGS) --output $@ $<
+- rm -f $*.h
+-
+-bindtextdom.lo: $(srcdir)/bindtextdom.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/bindtextdom.c
+-dcgettext.lo: $(srcdir)/dcgettext.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcgettext.c
+-dgettext.lo: $(srcdir)/dgettext.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dgettext.c
+-gettext.lo: $(srcdir)/gettext.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/gettext.c
+-finddomain.lo: $(srcdir)/finddomain.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/finddomain.c
+-loadmsgcat.lo: $(srcdir)/loadmsgcat.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/loadmsgcat.c
+-localealias.lo: $(srcdir)/localealias.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localealias.c
+-textdomain.lo: $(srcdir)/textdomain.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/textdomain.c
+-l10nflist.lo: $(srcdir)/l10nflist.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/l10nflist.c
+-explodename.lo: $(srcdir)/explodename.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/explodename.c
+-dcigettext.lo: $(srcdir)/dcigettext.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcigettext.c
+-dcngettext.lo: $(srcdir)/dcngettext.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dcngettext.c
+-dngettext.lo: $(srcdir)/dngettext.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/dngettext.c
+-ngettext.lo: $(srcdir)/ngettext.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/ngettext.c
+-plural.lo: $(srcdir)/plural.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural.c
+-plural-exp.lo: $(srcdir)/plural-exp.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/plural-exp.c
+-localcharset.lo: $(srcdir)/localcharset.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localcharset.c
+-relocatable.lo: $(srcdir)/relocatable.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/relocatable.c
+-langprefs.lo: $(srcdir)/langprefs.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/langprefs.c
+-localename.lo: $(srcdir)/localename.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/localename.c
+-log.lo: $(srcdir)/log.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/log.c
+-printf.lo: $(srcdir)/printf.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/printf.c
+-osdep.lo: $(srcdir)/osdep.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/osdep.c
+-intl-compat.lo: $(srcdir)/intl-compat.c
+- $(LIBTOOL) --mode=compile $(COMPILE) $(srcdir)/intl-compat.c
+-
+-ref-add.sed: $(srcdir)/ref-add.sin
+- sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-add.sin > t-ref-add.sed
+- mv t-ref-add.sed ref-add.sed
+-ref-del.sed: $(srcdir)/ref-del.sin
+- sed -e '/^#/d' -e 's/@''PACKAGE''@/@PACKAGE@/g' $(srcdir)/ref-del.sin > t-ref-del.sed
+- mv t-ref-del.sed ref-del.sed
+-
+-INCLUDES = -I. -I$(srcdir) -I..
+-
+-libgnuintl.h: $(srcdir)/libgnuintl.h.in
+- sed -e 's,@''HAVE_POSIX_PRINTF''@,@HAVE_POSIX_PRINTF@,g' \
+- -e 's,@''HAVE_ASPRINTF''@,@HAVE_ASPRINTF@,g' \
+- -e 's,@''HAVE_SNPRINTF''@,@HAVE_SNPRINTF@,g' \
+- -e 's,@''HAVE_WPRINTF''@,@HAVE_WPRINTF@,g' \
+- < $(srcdir)/libgnuintl.h.in > libgnuintl.h
+-
+-libintl.h: libgnuintl.h
+- cp libgnuintl.h libintl.h
+-
+-charset.alias: $(srcdir)/config.charset
+- $(SHELL) $(srcdir)/config.charset '@host@' > t-$@
+- mv t-$@ $@
+-
+-check: all
+-
+-# We must not install the libintl.h/libintl.a files if we are on a
+-# system which has the GNU gettext() function in its C library or in a
+-# separate library.
+-# If you want to use the one which comes with this version of the
+-# package, you have to use `configure --with-included-gettext'.
+-install: install-exec install-data
+-install-exec: all
+- if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
+- && test '@USE_INCLUDED_LIBINTL@' = yes; then \
+- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
+- $(INSTALL_DATA) libintl.h $(DESTDIR)$(includedir)/libintl.h; \
+- $(LIBTOOL) --mode=install \
+- $(INSTALL_DATA) libintl.$la $(DESTDIR)$(libdir)/libintl.$la; \
+- if test "@RELOCATABLE@" = yes; then \
+- dependencies=`sed -n -e 's,^dependency_libs=\(.*\),\1,p' < $(DESTDIR)$(libdir)/libintl.la | sed -e "s,^',," -e "s,'\$$,,"`; \
+- if test -n "$$dependencies"; then \
+- rm -f $(DESTDIR)$(libdir)/libintl.la; \
+- fi; \
+- fi; \
+- else \
+- : ; \
+- fi
+- if test "$(PACKAGE)" = "gettext-tools" \
+- && test '@USE_INCLUDED_LIBINTL@' = no \
+- && test @GLIBC2@ != no; then \
+- $(mkinstalldirs) $(DESTDIR)$(libdir); \
+- $(LIBTOOL) --mode=install \
+- $(INSTALL_DATA) libgnuintl.$la $(DESTDIR)$(libdir)/libgnuintl.$la; \
+- rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
+- $(INSTALL_DATA) $(DESTDIR)$(libdir)/libgnuintl.so $(DESTDIR)$(libdir)/preloadable_libintl.so; \
+- $(LIBTOOL) --mode=uninstall \
+- rm -f $(DESTDIR)$(libdir)/libgnuintl.$la; \
+- else \
+- : ; \
+- fi
+- if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+- test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
+- temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+- dest=$(DESTDIR)$(libdir)/charset.alias; \
+- if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+- orig=$(DESTDIR)$(libdir)/charset.alias; \
+- sed -f ref-add.sed $$orig > $$temp; \
+- $(INSTALL_DATA) $$temp $$dest; \
+- rm -f $$temp; \
+- else \
+- if test @GLIBC21@ = no; then \
+- orig=charset.alias; \
+- sed -f ref-add.sed $$orig > $$temp; \
+- $(INSTALL_DATA) $$temp $$dest; \
+- rm -f $$temp; \
+- fi; \
+- fi; \
+- $(mkinstalldirs) $(DESTDIR)$(localedir); \
+- test -f $(DESTDIR)$(localedir)/locale.alias \
+- && orig=$(DESTDIR)$(localedir)/locale.alias \
+- || orig=$(srcdir)/locale.alias; \
+- temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+- dest=$(DESTDIR)$(localedir)/locale.alias; \
+- sed -f ref-add.sed $$orig > $$temp; \
+- $(INSTALL_DATA) $$temp $$dest; \
+- rm -f $$temp; \
+- else \
+- : ; \
+- fi
+-install-data: all
+- if test "$(PACKAGE)" = "gettext-tools"; then \
+- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+- $(INSTALL_DATA) VERSION $(DESTDIR)$(gettextsrcdir)/VERSION; \
+- $(INSTALL_DATA) ChangeLog.inst $(DESTDIR)$(gettextsrcdir)/ChangeLog; \
+- dists="COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common)"; \
+- for file in $$dists; do \
+- $(INSTALL_DATA) $(srcdir)/$$file \
+- $(DESTDIR)$(gettextsrcdir)/$$file; \
+- done; \
+- chmod a+x $(DESTDIR)$(gettextsrcdir)/config.charset; \
+- dists="$(DISTFILES.generated)"; \
+- for file in $$dists; do \
+- if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+- $(INSTALL_DATA) $$dir/$$file \
+- $(DESTDIR)$(gettextsrcdir)/$$file; \
+- done; \
+- dists="$(DISTFILES.obsolete)"; \
+- for file in $$dists; do \
+- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+- done; \
+- else \
+- : ; \
+- fi
+-
+-install-strip: install
+-
+-installdirs:
+- if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
+- && test '@USE_INCLUDED_LIBINTL@' = yes; then \
+- $(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(includedir); \
+- else \
+- : ; \
+- fi
+- if test "$(PACKAGE)" = "gettext-tools" \
+- && test '@USE_INCLUDED_LIBINTL@' = no \
+- && test @GLIBC2@ != no; then \
+- $(mkinstalldirs) $(DESTDIR)$(libdir); \
+- else \
+- : ; \
+- fi
+- if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+- test @GLIBC21@ != no || $(mkinstalldirs) $(DESTDIR)$(libdir); \
+- $(mkinstalldirs) $(DESTDIR)$(localedir); \
+- else \
+- : ; \
+- fi
+- if test "$(PACKAGE)" = "gettext-tools"; then \
+- $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+- else \
+- : ; \
+- fi
+-
+-# Define this as empty until I found a useful application.
+-installcheck:
+-
+-uninstall:
+- if { test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; } \
+- && test '@USE_INCLUDED_LIBINTL@' = yes; then \
+- rm -f $(DESTDIR)$(includedir)/libintl.h; \
+- $(LIBTOOL) --mode=uninstall \
+- rm -f $(DESTDIR)$(libdir)/libintl.$la; \
+- else \
+- : ; \
+- fi
+- if test "$(PACKAGE)" = "gettext-tools" \
+- && test '@USE_INCLUDED_LIBINTL@' = no \
+- && test @GLIBC2@ != no; then \
+- rm -f $(DESTDIR)$(libdir)/preloadable_libintl.so; \
+- else \
+- : ; \
+- fi
+- if test '@USE_INCLUDED_LIBINTL@' = yes; then \
+- if test -f $(DESTDIR)$(libdir)/charset.alias; then \
+- temp=$(DESTDIR)$(libdir)/t-charset.alias; \
+- dest=$(DESTDIR)$(libdir)/charset.alias; \
+- sed -f ref-del.sed $$dest > $$temp; \
+- if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+- rm -f $$dest; \
+- else \
+- $(INSTALL_DATA) $$temp $$dest; \
+- fi; \
+- rm -f $$temp; \
+- fi; \
+- if test -f $(DESTDIR)$(localedir)/locale.alias; then \
+- temp=$(DESTDIR)$(localedir)/t-locale.alias; \
+- dest=$(DESTDIR)$(localedir)/locale.alias; \
+- sed -f ref-del.sed $$dest > $$temp; \
+- if grep '^# Packages using this file: $$' $$temp > /dev/null; then \
+- rm -f $$dest; \
+- else \
+- $(INSTALL_DATA) $$temp $$dest; \
+- fi; \
+- rm -f $$temp; \
+- fi; \
+- else \
+- : ; \
+- fi
+- if test "$(PACKAGE)" = "gettext-tools"; then \
+- for file in VERSION ChangeLog COPYING.LIB-2.0 COPYING.LIB-2.1 $(DISTFILES.common) $(DISTFILES.generated); do \
+- rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+- done; \
+- else \
+- : ; \
+- fi
+-
+-info dvi ps pdf html:
+-
+-$(OBJECTS): ../config.h libgnuintl.h
+-bindtextdom.$lo dcgettext.$lo dcigettext.$lo dcngettext.$lo dgettext.$lo dngettext.$lo finddomain.$lo gettext.$lo intl-compat.$lo loadmsgcat.$lo localealias.$lo ngettext.$lo textdomain.$lo: $(srcdir)/gettextP.h $(srcdir)/gmo.h $(srcdir)/loadinfo.h
+-dcigettext.$lo loadmsgcat.$lo: $(srcdir)/hash-string.h
+-explodename.$lo l10nflist.$lo: $(srcdir)/loadinfo.h
+-dcigettext.$lo loadmsgcat.$lo plural.$lo plural-exp.$lo: $(srcdir)/plural-exp.h
+-dcigettext.$lo: $(srcdir)/eval-plural.h
+-localcharset.$lo: $(srcdir)/localcharset.h
+-localealias.$lo localcharset.$lo relocatable.$lo: $(srcdir)/relocatable.h
+-printf.$lo: $(srcdir)/printf-args.h $(srcdir)/printf-args.c $(srcdir)/printf-parse.h $(srcdir)/wprintf-parse.h $(srcdir)/xsize.h $(srcdir)/printf-parse.c $(srcdir)/vasnprintf.h $(srcdir)/vasnwprintf.h $(srcdir)/vasnprintf.c
+-
+-tags: TAGS
+-
+-TAGS: $(HEADERS) $(SOURCES)
+- here=`pwd`; cd $(srcdir) && etags -o $$here/TAGS $(HEADERS) $(SOURCES)
+-
+-ctags: CTAGS
+-
+-CTAGS: $(HEADERS) $(SOURCES)
+- here=`pwd`; cd $(srcdir) && ctags -o $$here/CTAGS $(HEADERS) $(SOURCES)
+-
+-id: ID
+-
+-ID: $(HEADERS) $(SOURCES)
+- here=`pwd`; cd $(srcdir) && mkid -f$$here/ID $(HEADERS) $(SOURCES)
+-
+-
+-mostlyclean:
+- rm -f *.a *.la *.o *.obj *.lo core core.*
+- rm -f libgnuintl.h libintl.h charset.alias ref-add.sed ref-del.sed
+- rm -f -r .libs _libs
+-
+-clean: mostlyclean
+-
+-distclean: clean
+- rm -f Makefile ID TAGS
+- if test "$(PACKAGE)" = "gettext-runtime" || test "$(PACKAGE)" = "gettext-tools"; then \
+- rm -f ChangeLog.inst $(DISTFILES.normal); \
+- else \
+- : ; \
+- fi
+-
+-maintainer-clean: distclean
+- @echo "This command is intended for maintainers to use;"
+- @echo "it deletes files that may require special tools to rebuild."
+-
+-
+-# GNU gettext needs not contain the file `VERSION' but contains some
+-# other files which should not be distributed in other packages.
+-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+-dist distdir: Makefile
+- if test "$(PACKAGE)" = "gettext-tools"; then \
+- : ; \
+- else \
+- if test "$(PACKAGE)" = "gettext-runtime"; then \
+- additional="$(DISTFILES.gettext)"; \
+- else \
+- additional="$(DISTFILES.normal)"; \
+- fi; \
+- $(MAKE) $(DISTFILES.common) $(DISTFILES.generated) $$additional; \
+- for file in ChangeLog $(DISTFILES.common) $(DISTFILES.generated) $$additional; do \
+- if test -f $$file; then dir=.; else dir=$(srcdir); fi; \
+- cp -p $$dir/$$file $(distdir); \
+- done; \
+- fi
+-
+-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+- cd $(top_builddir) && $(SHELL) ./config.status
+-# This would be more efficient, but doesn't work any more with autoconf-2.57,
+-# when AC_CONFIG_FILES([intl/Makefile:somedir/Makefile.in]) is used.
+-# cd $(top_builddir) && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+-
+-# Tell versions [3.59,3.63) of GNU make not to export all variables.
+-# Otherwise a system limit (for SysV at least) may be exceeded.
+-.NOEXPORT:
diff --git a/meta-oe/recipes-support/hddtemp/hddtemp/0001-sata.c-Declare-ata_get_powermode-prototype.patch b/meta-oe/recipes-support/hddtemp/hddtemp/0001-sata.c-Declare-ata_get_powermode-prototype.patch
new file mode 100644
index 0000000000..5703d3c241
--- /dev/null
+++ b/meta-oe/recipes-support/hddtemp/hddtemp/0001-sata.c-Declare-ata_get_powermode-prototype.patch
@@ -0,0 +1,33 @@
+From c5ca31940d1d1889ef2cc6974c18ff24ab406748 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 16:42:23 -0700
+Subject: [PATCH] sata.c: Declare ata_get_powermode prototype
+
+Fixes build warnings/errors
+
+sata.c:127:10: error: call to undeclared function 'ata_get_powermode'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+| switch(ata_get_powermode(dsk->fd))
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/sata.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/sata.c b/src/sata.c
+index d67621f..4172245 100644
+--- a/src/sata.c
++++ b/src/sata.c
+@@ -52,7 +52,8 @@
+ (((u16)(__x) & (u16)0xff00U) >> 8) )); \
+ })
+
+-
++extern enum e_powermode ata_get_powermode(int device);
++
+ static int sata_probe(int device) {
+ int bus_num;
+ unsigned char cmd[4] = { WIN_IDENTIFY, 0, 0, 1 };
+--
+2.37.3
+
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 4a871bf4f4..e9d30977fe 100644
--- a/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
+++ b/meta-oe/recipes-support/hddtemp/hddtemp_0.3-beta15.bb
@@ -1,6 +1,6 @@
SUMMARY = "Hard disk temperature monitor daemon"
SECTION = "console/network"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
PR = "r1"
@@ -9,6 +9,8 @@ SRC_URI = "${SAVANNAH_NONGNU_MIRROR}/hddtemp/hddtemp-0.3-beta15.tar.bz2 \
file://hddtemp_0.3-beta15-52.diff \
file://hddtemp-0.3-beta15-autodetect-717479.patch \
file://0001-backtrace-Replace-struct-ucontext-with-ucontext_t.patch \
+ file://0001-configure.ac-Rename-to-configure.ac-and-use-external.patch \
+ file://0001-sata.c-Declare-ata_get_powermode-prototype.patch \
file://hddtemp.db \
file://init \
"
@@ -20,9 +22,9 @@ LIC_FILES_CHKSUM = "file://GPL-2;md5=eb723b61539feef013de476e68b5c50a"
inherit autotools gettext update-rc.d
-FILES_${PN} += "/usr/share/misc/hddtemp.db"
+FILES:${PN} += "/usr/share/misc/hddtemp.db"
-do_install_append() {
+do_install:append() {
install -d ${D}/usr/share/misc/
install -m 0644 ${WORKDIR}/hddtemp.db ${D}/usr/share/misc/hddtemp.db
install -d ${D}${sysconfdir}/init.d
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
new file mode 100644
index 0000000000..a8050cc55b
--- /dev/null
+++ b/meta-oe/recipes-support/hdf5/files/0001-cmake-remove-build-flags.patch
@@ -0,0 +1,58 @@
+From 39572baac462f16b39dc385751d5c642646718d3 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 4 Aug 2021 17:05:10 +0800
+Subject: [PATCH] cmake: remove build flags
+
+Remove the build flags to improve reproducibility.
+
+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(-)
+
+--- a/config/cmake/libh5cc.in
++++ b/config/cmake/libh5cc.in
+@@ -44,7 +44,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
+ ;;
+--- a/config/cmake/libhdf5.settings.cmake.in
++++ b/config/cmake/libhdf5.settings.cmake.in
+@@ -27,14 +27,14 @@ Linking Options:
+ H5_LDFLAGS: @H5_LDFLAGS@
+ AM_LDFLAGS: @AM_LDFLAGS@
+ Extra libraries: @LINK_LIBS@
+- Archiver: @CMAKE_AR@
+- Ranlib: @CMAKE_RANLIB@
++ Archiver:
++ Ranlib:
+
+ Languages:
+ ----------
+ C: YES
+- C Compiler: @CMAKE_C_COMPILER@ @CMAKE_C_COMPILER_VERSION@
+- CPPFLAGS: @CPPFLAGS@
++ C Compiler:
++ CPPFLAGS:
+ H5_CPPFLAGS: @H5_CPPFLAGS@
+ AM_CPPFLAGS: @AM_CPPFLAGS@
+ CFLAGS: @CMAKE_C_FLAGS@
+@@ -53,8 +53,8 @@ Languages:
+ @BUILD_FORTRAN_CONDITIONAL_TRUE@ Module Directory: @CMAKE_Fortran_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@
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
new file mode 100644
index 0000000000..f0eb05a1e7
--- /dev/null
+++ b/meta-oe/recipes-support/hdf5/files/0002-Remove-suffix-shared-from-shared-library-name.patch
@@ -0,0 +1,47 @@
+From f76141864edf7100c1c29bec159ea629077a7fa0 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 29 Jan 2019 11:13:42 +0800
+Subject: [PATCH 2/2] Remove suffix `-shared' from shared library name
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ CMakeLists.txt | 24 ++++++++++++------------
+ 1 file changed, 12 insertions(+), 12 deletions(-)
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -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}")
+-set (HDF5_LIBSH_TARGET "${HDF5_LIB_CORENAME}-shared")
+-set (HDF5_TEST_LIBSH_TARGET "${HDF5_TEST_LIB_CORENAME}-shared")
+-set (HDF5_CPP_LIBSH_TARGET "${HDF5_CPP_LIB_CORENAME}-shared")
+-set (HDF5_HL_LIBSH_TARGET "${HDF5_HL_LIB_CORENAME}-shared")
+-set (HDF5_HL_CPP_LIBSH_TARGET "${HDF5_HL_CPP_LIB_CORENAME}-shared")
+-set (HDF5_TOOLS_LIBSH_TARGET "${HDF5_TOOLS_LIB_CORENAME}-shared")
+-set (HDF5_UTILS_LIBSH_TARGET "${HDF5_UTILS_LIB_CORENAME}-shared")
+-set (HDF5_F90_LIBSH_TARGET "${HDF5_F90_LIB_CORENAME}-shared")
+-set (HDF5_F90_C_LIBSH_TARGET "${HDF5_F90_C_LIB_CORENAME}-shared")
+-set (HDF5_F90_TEST_LIBSH_TARGET "${HDF5_F90_TEST_LIB_CORENAME}-shared")
+-set (HDF5_F90_C_TEST_LIBSH_TARGET "${HDF5_F90_C_TEST_LIB_CORENAME}-shared")
+-set (HDF5_HL_F90_LIBSH_TARGET "${HDF5_HL_F90_LIB_CORENAME}-shared")
+-set (HDF5_HL_F90_C_LIBSH_TARGET "${HDF5_HL_F90_C_LIB_CORENAME}-shared")
++set (HDF5_LIBSH_TARGET "${HDF5_LIB_CORENAME}")
++set (HDF5_TEST_LIBSH_TARGET "${HDF5_TEST_LIB_CORENAME}")
++set (HDF5_CPP_LIBSH_TARGET "${HDF5_CPP_LIB_CORENAME}")
++set (HDF5_HL_LIBSH_TARGET "${HDF5_HL_LIB_CORENAME}")
++set (HDF5_HL_CPP_LIBSH_TARGET "${HDF5_HL_CPP_LIB_CORENAME}")
++set (HDF5_TOOLS_LIBSH_TARGET "${HDF5_TOOLS_LIB_CORENAME}")
++set (HDF5_UTILS_LIBSH_TARGET "${HDF5_UTILS_LIB_CORENAME}")
++set (HDF5_F90_LIBSH_TARGET "${HDF5_F90_LIB_CORENAME}")
++set (HDF5_F90_C_LIBSH_TARGET "${HDF5_F90_C_LIB_CORENAME}")
++set (HDF5_F90_TEST_LIBSH_TARGET "${HDF5_F90_TEST_LIB_CORENAME}")
++set (HDF5_F90_C_TEST_LIBSH_TARGET "${HDF5_F90_C_TEST_LIB_CORENAME}")
++set (HDF5_HL_F90_LIBSH_TARGET "${HDF5_HL_F90_LIB_CORENAME}")
++set (HDF5_HL_F90_C_LIBSH_TARGET "${HDF5_HL_F90_C_LIB_CORENAME}")
+
+ #-----------------------------------------------------------------------------
+ # Define some CMake variables for use later in the project
diff --git a/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb b/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb
new file mode 100644
index 0000000000..d0ff2ef487
--- /dev/null
+++ b/meta-oe/recipes-support/hdf5/hdf5_1.14.0.bb
@@ -0,0 +1,55 @@
+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 multilib_header
+
+DEPENDS += "qemu-native"
+
+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] = "e4e79433450edae2865a4c6328188bb45391b29d74f8c538ee699f0b116c2ba0"
+
+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}
+ oe_multilib_header H5pubconf.h
+}
+
+BBCLASSEXTEND = "native"
+
+SRC_DISTRIBUTE_LICENSES += "HDF5"
+
+# 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..91e5b55bea
--- /dev/null
+++ b/meta-oe/recipes-support/hidapi/hidapi_0.14.0.bb
@@ -0,0 +1,16 @@
+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"
+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 a34797ff51..0000000000
--- a/meta-oe/recipes-support/hidapi/hidapi_git.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Multi-platform library to interface with USB and Bluetooth HID-Class devices"
-AUTHOR = "Alan Ott"
-HOMEPAGE = "http://www.signal11.us/oss/hidapi/"
-SECTION = "libs"
-LICENSE = "BSD-3-Clause | GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7c3949a631240cb6c31c50f3eb696077"
-DEPENDS = "libusb udev"
-PV = "0.7.99+0.8.0-rc1+git${SRCPV}"
-
-SRCREV = "d17db57b9d4354752e0af42f5f33007a42ef2906"
-SRC_URI = "git://github.com/signal11/hidapi.git"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
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
new file mode 100644
index 0000000000..421d824ee0
--- /dev/null
+++ b/meta-oe/recipes-support/hstr/files/0001-Use-OE-specific-checks-for-ncurses.patch
@@ -0,0 +1,42 @@
+From f3fb4f12fac75efe0d8f1a923ad5992a7433d0db Mon Sep 17 00:00:00 2001
+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]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ src/include/hstr.h | 2 +-
+ src/include/hstr_curses.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/include/hstr.h b/src/include/hstr.h
+index 5eac881..c47cadb 100644
+--- a/src/include/hstr.h
++++ b/src/include/hstr.h
+@@ -26,7 +26,7 @@
+ #elif defined(__FreeBSD__)
+ #include <ncurses.h>
+ #else
+- #include <ncursesw/curses.h>
++ #include <curses.h>
+ #endif
+ #include <readline/chardefs.h>
+ #include <signal.h>
+diff --git a/src/include/hstr_curses.h b/src/include/hstr_curses.h
+index 8a50ab9..1f081a8 100644
+--- a/src/include/hstr_curses.h
++++ b/src/include/hstr_curses.h
+@@ -24,7 +24,7 @@
+ #elif defined(__FreeBSD__)
+ #include <ncurses.h>
+ #else
+-#include <ncursesw/curses.h>
++#include <curses.h>
+ #endif
+
+ #define color_attr_on(C) if(terminal_has_colors()) { attron(C); }
+--
+2.31.1
+
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
new file mode 100644
index 0000000000..832d768ff3
--- /dev/null
+++ b/meta-oe/recipes-support/hstr/files/0001-configure.ac-Don-t-use-AC_CHECK_FILE.patch
@@ -0,0 +1,33 @@
+From d5ad538adb9fcbad8a3b4e46f266b668301cb1c4 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 2 Mar 2022 05:36:48 +0000
+Subject: [PATCH] configure.ac: Don't use AC_CHECK_FILE
+
+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]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.ac | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 775c795..bd99188 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -116,9 +116,6 @@ AC_TYPE_SIZE_T
+ AC_FUNC_MALLOC
+ AC_CHECK_FUNCS([memset strdup strstr])
+
+-# Bash@Ubuntu@Windows
+-AC_CHECK_FILE(/tmp/hstr-ms-wsl,AC_DEFINE(__MS_WSL__), [])
+-
+ # Bash CLI autocomplete
+ AC_ARG_WITH([bash-completion-dir],
+ AS_HELP_STRING([--with-bash-completion-dir[=PATH]],
+--
+2.31.1
+
diff --git a/meta-oe/recipes-support/hstr/hstr_2.5.0.bb b/meta-oe/recipes-support/hstr/hstr_2.5.0.bb
new file mode 100644
index 0000000000..6c9f65e829
--- /dev/null
+++ b/meta-oe/recipes-support/hstr/hstr_2.5.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/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/htop/files/0001-Use-pkg-config.patch b/meta-oe/recipes-support/htop/files/0001-Use-pkg-config.patch
index fc0d86e335..d85aa15637 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,39 +1,47 @@
+From 98ed72177c49a8015a443b3ec272fee3fb5a4eb3 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
+
We need to use pkg-config to find the ncurses library instead of the
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 559dc4d..77aea22 100644
+index 0e69096..d20014f 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -185,10 +185,10 @@ m4_define([HTOP_CHECK_LIB],
-
- AC_ARG_ENABLE(unicode, [AS_HELP_STRING([--enable-unicode], [enable Unicode support])], ,enable_unicode="yes")
+@@ -322,10 +322,10 @@ AC_ARG_ENABLE([unicode],
+ [],
+ [enable_unicode=yes])
if test "x$enable_unicode" = xyes; then
-- HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
-- HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
-- HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "ncursesw5-config",
-- HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "ncurses5-config",
-+ HTOP_CHECK_SCRIPT([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
-+ HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
-+ HTOP_CHECK_SCRIPT([ncursesw], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw5",
-+ HTOP_CHECK_SCRIPT([ncurses], [addnwstr], [HAVE_LIBNCURSESW], "pkg-config ncurses5",
+- HTOP_CHECK_SCRIPT([ncursesw6], [waddwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+- HTOP_CHECK_SCRIPT([ncursesw], [waddwstr], [HAVE_LIBNCURSESW], "ncursesw6-config",
+- HTOP_CHECK_SCRIPT([ncursesw], [wadd_wch], [HAVE_LIBNCURSESW], "ncursesw5-config",
+- HTOP_CHECK_SCRIPT([ncurses], [wadd_wch], [HAVE_LIBNCURSESW], "ncurses5-config",
++ HTOP_CHECK_SCRIPT([ncursesw6], [waddwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++ HTOP_CHECK_SCRIPT([ncursesw], [waddwstr], [HAVE_LIBNCURSESW], "pkg-config ncursesw6",
++ HTOP_CHECK_SCRIPT([ncursesw], [wadd_wch], [HAVE_LIBNCURSESW], "pkg-config ncursesw5",
++ HTOP_CHECK_SCRIPT([ncurses], [wadd_wch], [HAVE_LIBNCURSESW], "pkg-config ncurses5",
HTOP_CHECK_LIB([ncursesw6], [addnwstr], [HAVE_LIBNCURSESW],
HTOP_CHECK_LIB([ncursesw], [addnwstr], [HAVE_LIBNCURSESW],
HTOP_CHECK_LIB([ncurses], [addnwstr], [HAVE_LIBNCURSESW],
-@@ -201,8 +201,8 @@ if test "x$enable_unicode" = xyes; then
- [AC_CHECK_HEADERS([ncurses/curses.h],[:],
- [AC_CHECK_HEADERS([ncurses.h],[:],[missing_headers="$missing_headers $ac_header"])])])])
+@@ -342,8 +342,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
-- HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "ncurses6-config",
-- HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "ncurses5-config",
-+ HTOP_CHECK_SCRIPT([ncurses6], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses6",
-+ HTOP_CHECK_SCRIPT([ncurses], [refresh], [HAVE_LIBNCURSES], "pkg-config ncurses5",
- HTOP_CHECK_LIB([ncurses6], [refresh], [HAVE_LIBNCURSES],
- HTOP_CHECK_LIB([ncurses], [refresh], [HAVE_LIBNCURSES],
- missing_libraries="$missing_libraries libncurses"
+- HTOP_CHECK_SCRIPT([ncurses6], [wnoutrefresh], [HAVE_LIBNCURSES], [ncurses6-config],
+- HTOP_CHECK_SCRIPT([ncurses], [wnoutrefresh], [HAVE_LIBNCURSES], [ncurses5-config],
++ HTOP_CHECK_SCRIPT([ncurses6], [wnoutrefresh], [HAVE_LIBNCURSES], [pkg-config ncurses6],
++ HTOP_CHECK_SCRIPT([ncurses], [wnoutrefresh], [HAVE_LIBNCURSES], [pkg-config ncurses5],
+ HTOP_CHECK_LIB([ncurses6], [doupdate], [HAVE_LIBNCURSES],
+ HTOP_CHECK_LIB([ncurses], [doupdate], [HAVE_LIBNCURSES],
+ HTOP_CHECK_LIB([curses], [doupdate], [HAVE_LIBNCURSES],
diff --git a/meta-oe/recipes-support/htop/htop_2.2.0.bb b/meta-oe/recipes-support/htop/htop_2.2.0.bb
deleted file mode 100644
index 01c856d123..0000000000
--- a/meta-oe/recipes-support/htop/htop_2.2.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Interactive process viewer"
-HOMEPAGE = "http://hisham.hm/htop"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c312653532e8e669f30e5ec8bdc23be3"
-
-DEPENDS = "ncurses"
-
-SRC_URI = "http://hisham.hm/htop/releases/${PV}/${BP}.tar.gz \
- file://0001-Use-pkg-config.patch"
-SRC_URI[md5sum] = "0d816b6beed31edc75babcfbf863ffa8"
-SRC_URI[sha256sum] = "d9d6826f10ce3887950d709b53ee1d8c1849a70fa38e91d5896ad8cbc6ba3c57"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "proc \
- cgroup \
- taskstats \
- unicode \
- linux-affinity \
- delayacct"
-PACKAGECONFIG[proc] = "--enable-proc,--disable-proc"
-PACKAGECONFIG[openvz] = "--enable-openvz,--disable-openvz"
-PACKAGECONFIG[cgroup] = "--enable-cgroup,--disable-cgroup"
-PACKAGECONFIG[vserver] = "--enable-vserver,--disable-vserver"
-PACKAGECONFIG[taskstats] = "--enable-taskstats,--disable-taskstats"
-PACKAGECONFIG[unicode] = "--enable-unicode,--disable-unicode"
-PACKAGECONFIG[linux-affinity] = "--enable-linux-affinity,--disable-linux-affinity"
-PACKAGECONFIG[hwloc] = "--enable-hwloc,--disable-hwloc,hwloc"
-PACKAGECONFIG[setuid] = "--enable-setuid,--disable-setuid"
-PACKAGECONFIG[delayacct] = "--enable-delayacct,--disable-delayacct,libnl"
-
-do_configure_prepend () {
- rm -rf ${S}/config.h
-}
diff --git a/meta-oe/recipes-support/htop/htop_3.2.2.bb b/meta-oe/recipes-support/htop/htop_3.2.2.bb
new file mode 100644
index 0000000000..68d4a3f8f4
--- /dev/null
+++ b/meta-oe/recipes-support/htop/htop_3.2.2.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 = "55c10eccd71b6b016a50237bc8c8508b7bf66783"
+
+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
new file mode 100644
index 0000000000..047acf28db
--- /dev/null
+++ b/meta-oe/recipes-support/hunspell/hunspell-dictionaries.bb
@@ -0,0 +1,151 @@
+SUMMARY = "Hunspell dictionaries used by Maliit"
+
+#Provided by Titus Wormer (wooorm) https://github.com/wooorm/dictionaries
+
+LICENSE = "MIT"
+LICENSE:dictionaries/bg = "LGPL 2.1"
+LICENSE:dictionaries/br = "GPL 3.0"
+LICENSE:dictionaries/ca-valencia = "GPL 2.0 & LGPL-2.1-only"
+LICENSE:dictionaries/ca = "GPL 2.0 & LGPL-2.1-only"
+LICENSE:dictionaries/cs = "GPL-2.0-only"
+LICENSE:dictionaries/da = "GPL-2.0-only"
+LICENSE:dictionaries/de-AT = "GPL-3.0-only"
+LICENSE:dictionaries/de-CH = "GPL-3.0-only"
+LICENSE:dictionaries/de = "GPL-3.0-only"
+LICENSE:dictionaries/el-polyton = "GPL-2.0-only"
+LICENSE:dictionaries/el = "GPL-2.0-only"
+LICENSE:dictionaries/en-AU = "LGPL-2.0-only"
+LICENSE:dictionaries/en-CA = "MIT & BSD"
+LICENSE:dictionaries/en-GB = "LGPL-2.0-only"
+LICENSE:dictionaries/en-US = "MIT & BSD"
+LICENSE:dictionaries/en-ZA = "LGPL 2.1"
+LICENSE:dictionaries/eo = "GPL-2.0-only"
+LICENSE:dictionaries/es = "GPL-3.0-only"
+LICENSE:dictionaries/et = "LGPL-2.1-only"
+LICENSE:dictionaries/eu = "GPL-2.0-only"
+LICENSE:dictionaries/fo = "GPL-2.0-only"
+LICENSE:dictionaries/fr = "MPL-2.0"
+LICENSE:dictionaries/fur = "GPL-2.0-only"
+LICENSE:dictionaries/fy = "GPL-3.0-only"
+LICENSE:dictionaries/ga = "GPL-2.0-only"
+LICENSE:dictionaries/gd = "GPL-3.0-only"
+LICENSE:dictionaries/gl = "GPL-3.0-only"
+LICENSE:dictionaries/he = "AGPL-3.0-only"
+LICENSE:dictionaries/hr = "GPL-3.0-only"
+LICENSE:dictionaries/hu = "GPL-2.0-only"
+LICENSE:dictionaries/hy-arevela = "GPL-2.0-only"
+LICENSE:dictionaries/hy-arevmda = "GPL-2.0-only"
+LICENSE:dictionaries/ia = "GPL-3.0-only"
+LICENSE:dictionaries/ie = "Apache-2.0"
+LICENSE:dictionaries/is = "CC BY-SA 3.0 & CC BY 4.0"
+LICENSE:dictionaries/it = "GPL-3.0-only"
+LICENSE:dictionaries/ko = "MPL-1.1 & GPL-2.0-only & LGPL-2.1-only"
+LICENSE:dictionaries/la = "GPL-3.0-only"
+LICENSE:dictionaries/lb = "EUPL-1.1"
+LICENSE:dictionaries/lt = "Other"
+LICENSE:dictionaries/ltg = "LGPL-2.1-only"
+LICENSE:dictionaries/lv = "LGPL-2.1-only"
+LICENSE:dictionaries/mk = "GPL-3.0-only"
+LICENSE:dictionaries/mn = "GPL-2.0-only"
+LICENSE:dictionaries/nb = "GPL-2.0-only"
+LICENSE:dictionaries/nds = "GPL-2.0-only"
+LICENSE:dictionaries/ne = "LGPL-2.1-only"
+LICENSE:dictionaries/nl = "BSD"
+LICENSE:dictionaries/nn = "GPL-2.0-only"
+LICENSE:dictionaries/pl = "GPL-3.0-only"
+LICENSE:dictionaries/pt-BR = "LGPL 2.1"
+LICENSE:dictionaries/pt = "GPL-2.0-only"
+LICENSE:dictionaries/ro = "GPL-2.0-only"
+LICENSE:dictionaries/ru = "BSD"
+LICENSE:dictionaries/rw = "GPL-3.0-only"
+LICENSE:dictionaries/sk = "GPL-2.0-only"
+LICENSE:dictionaries/sl = "GPL-2.0-only"
+LICENSE:dictionaries/sr-Latn = "LGPL 3.0"
+LICENSE:dictionaries/sr = "LGPL 3.0"
+LICENSE:dictionaries/sv = "LGPL 3.0"
+LICENSE:dictionaries/tr = "MIT"
+LICENSE:dictionaries/uk = "GPL 2.0"
+LICENSE:dictionaries/vi = "GPL 3.0"
+LIC_FILES_CHKSUM = " \
+ file://dictionaries/bg/license;md5=ab14e2ded1a43b84be9aba2be64b9814 \
+ file://dictionaries/br/license;md5=2e046c64edc0a4e47fb3ea614e6c82c4 \
+ file://dictionaries/ca-valencia/license;md5=da087cefab7bc3b7687203198a0042ec \
+ file://dictionaries/ca/license;md5=da087cefab7bc3b7687203198a0042ec \
+ file://dictionaries/cs/license;md5=e0496d626a53ad31addea1869c1bed53 \
+ file://dictionaries/da/license;md5=b7678b3e997999043be3503dc717d96d \
+ file://dictionaries/de-AT/license;md5=a03d823e8cd00fd71c9ba18b8ec4ccf1 \
+ file://dictionaries/de-CH/license;md5=a03d823e8cd00fd71c9ba18b8ec4ccf1 \
+ file://dictionaries/de/license;md5=a03d823e8cd00fd71c9ba18b8ec4ccf1 \
+ file://dictionaries/el-polyton/license;md5=d952bcbf1c67129920f03536197c7281 \
+ file://dictionaries/el/license;md5=90b757dd77b1ebbf473eef31037a59e8 \
+ file://dictionaries/en-AU/license;md5=dae002c846eab5e1132ba2e00692dc68 \
+ file://dictionaries/en-CA/license;md5=6c205de0cbcae4b42cf992bb355a5346 \
+ file://dictionaries/en-GB/license;md5=dd6d2bbd7b7f4519448f2b995fd99cd4 \
+ file://dictionaries/en-US/license;md5=244a909f295640bfafeb8d9e522d454b \
+ file://dictionaries/en-ZA/license;md5=56e4b4ca965de3bba6db42494cc34576 \
+ file://dictionaries/eo/license;md5=eb723b61539feef013de476e68b5c50a \
+ file://dictionaries/es/license;md5=b41cabf4e6f2a7d951684246518bea4f \
+ file://dictionaries/et/readme.md;md5=59d851f12cc280f893b245938abc1905 \
+ file://dictionaries/fo/license;md5=fa9ce505d07423c9f8e6c1073f4806c2 \
+ file://dictionaries/fr/license;md5=2346c7bffe6ab4d51730ab3116817c72 \
+ file://dictionaries/fur/license;md5=28ac8c6e75d6c44b60016a8c850036e3 \
+ file://dictionaries/fy/license;md5=c05115c38ca2a4aa95cb9c9b00ed78df \
+ file://dictionaries/ga/license;md5=ee7d601b5d3be3856a169afa71eb3376 \
+ file://dictionaries/gd/license;md5=b5f39c26d691733095323a59d0f02216 \
+ file://dictionaries/gl/license;md5=d32239bcb673463ab874e80d47fae504 \
+ file://dictionaries/he/license;md5=e627dcdf6878e7eca4454e39d1489271 \
+ file://dictionaries/hr/license;md5=4b03c9b6e41a6ef12b4e31d2fb224d46 \
+ file://dictionaries/hu/license;md5=c9755266de74fdbe69636bdb3076b603 \
+ file://dictionaries/hy-arevela/license;md5=c690b6bc807de0a6dcd62db030843ee4 \
+ file://dictionaries/hy-arevmda/license;md5=c690b6bc807de0a6dcd62db030843ee4 \
+ file://dictionaries/ia/license;md5=25c37bbb54f9ab5da9b4bcdda2e2f68e \
+ file://dictionaries/ie/license;md5=fa818a259cbed7ce8bc2a22d35a464fc \
+ file://dictionaries/is/license;md5=db5e38a312b91d717561514767c95999 \
+ file://dictionaries/it/license;md5=31d06285633a89f4d0267895ef8b7107 \
+ file://dictionaries/ko/license;md5=5ff35d5b0523cccb3049edff77c73a10 \
+ file://dictionaries/la/license;md5=9bc08ae2930eb806cee44bbae905b7ba \
+ file://dictionaries/lb/license;md5=5d6417331778645577c40c3329a3d559 \
+ file://dictionaries/lt/license;md5=3d1264d7017271c6731fefaba912a15f \
+ file://dictionaries/ltg/license;md5=72c786f9d43bb07c101766457fcf6435 \
+ file://dictionaries/lv/license;md5=957d42bd58feff079daa6ede1d215585 \
+ file://dictionaries/mk/license;md5=c05a3747d4c871f3c6378909668ec72d \
+ file://dictionaries/mn/license;md5=93a1be573a1bd039cb4e17c21ed800a7 \
+ file://dictionaries/nb/license;md5=6b50c67a5ee9ba5af1b4ab6c009b66f2 \
+ file://dictionaries/nds/license;md5=08c69ee106e67a1085d45dc723ae5396 \
+ file://dictionaries/ne/license;md5=620e39f1aec72b0bdbc922128dd08267 \
+ file://dictionaries/nl/license;md5=f9181fe437dd701ce6ae690f6e09b119 \
+ file://dictionaries/nn/license;md5=9d372c99817cb42bdd1f6c0acb7f4d11 \
+ file://dictionaries/pl/license;md5=5d0961c4eee8448d5f3738b1ff04ebe8 \
+ file://dictionaries/pt-BR/license;md5=08a7e74543d3e612e7613f2959bedab0 \
+ file://dictionaries/pt/license;md5=53d8ed71b4053ef0ccfcf6b3f89880a8 \
+ file://dictionaries/ro/license;md5=db18b1d6cfc0d4ca32371cb76900de2c \
+ file://dictionaries/ru/license;md5=a3d4108679bd3b76ec1a86520b5362cf \
+ file://dictionaries/rw/license;md5=784d7dc7357bd924e8d5642892bf1b6b \
+ file://dictionaries/sk/license;md5=7fb3956bf960db433deedec7746d33c5 \
+ file://dictionaries/sl/license;md5=4965d53062ea2045837facf483475ac7 \
+ file://dictionaries/sr-Latn/license;md5=0139a4b8ce316882cceae8924030950d \
+ file://dictionaries/sr/license;md5=0139a4b8ce316882cceae8924030950d \
+ file://dictionaries/sv/license;md5=fe5c586fe56d04fbdc44df187129ac29 \
+ file://dictionaries/tr/readme.md;md5=27c07bbfa543cfdd163f2dad491703bd \
+ file://dictionaries/uk/license;md5=7702f203b58979ebbc31bfaeb44f219c \
+ file://dictionaries/vi/license;md5=8d9ecb4e7577ce760029786aba7ecec5 \
+"
+
+RDEPENDS:${PN} = "hunspell"
+
+PV = "0.0.0+git${SRCPV}"
+SRCREV = "820a65e539e34a3a8c2a855d2450b84745c624ee"
+SRC_URI = "git://github.com/wooorm/dictionaries.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ for LANGUAGE in `ls -d1 ${S}/dictionaries/*` ; do
+ LANGUAGE_DIR=`basename $LANGUAGE | sed 's:-:_:'`
+ install -D -m0644 $LANGUAGE/index.dic ${D}${datadir}/hunspell/$LANGUAGE_DIR.dic
+ install -D -m0644 $LANGUAGE/index.aff ${D}${datadir}/hunspell/$LANGUAGE_DIR.aff
+ install -D -m0644 $LANGUAGE/LICENSE ${D}${datadir}/hunspell/LICENSE-$LANGUAGE_DIR 2>/dev/null || echo "No LICENSE for language $LANGUAGE"
+ done
+}
+
+FILES:${PN} = "${datadir}/hunspell"
diff --git a/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb b/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb
deleted file mode 100644
index 5feea89874..0000000000
--- a/meta-oe/recipes-support/hunspell/hunspell_1.6.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A spell checker and morphological analyzer library"
-HOMEPAGE = "http://hunspell.github.io/"
-LICENSE = "GPLv3 | LGPLv3"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- file://COPYING.LESSER;md5=e6a600fd5e1d9cbde2d983680233ad02 \
-"
-
-SRC_URI = "https://github.com/${BPN}/${BPN}/archive/v${PV}.tar.gz"
-SRC_URI[md5sum] = "1a54504cb470aafa6530bb372a10dc04"
-SRC_URI[sha256sum] = "3cd9ceb062fe5814f668e4f22b2fa6e3ba0b339b921739541ce180cac4d6f4c4"
-
-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.370.bb b/meta-oe/recipes-support/hwdata/hwdata_0.370.bb
new file mode 100644
index 0000000000..56d4253772
--- /dev/null
+++ b/meta-oe/recipes-support/hwdata/hwdata_0.370.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 = "21cb47beb1716545b25dfe8ae1b9e079c73b85d9"
+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_git.bb b/meta-oe/recipes-support/hwdata/hwdata_git.bb
deleted file mode 100644
index 679673ba0b..0000000000
--- a/meta-oe/recipes-support/hwdata/hwdata_git.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "Hardware identification and configuration data"
-HOMEPAGE = "https://github.com/vcrhonek/hwdata"
-SECTION = "System/Base"
-
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
-
-PV = "0.298+git${SRCPV}"
-SRCREV = "9030fbd6ab1538f4d77d3cf1e0b463a7ec25b5c4"
-SRC_URI = "git://github.com/vcrhonek/${BPN}.git"
-
-S = "${WORKDIR}/git"
-
-do_configure() {
- ${S}/configure --datadir=${datadir} --libdir=${libdir}
-}
-
-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
new file mode 100644
index 0000000000..2a0a129fee
--- /dev/null
+++ b/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb
@@ -0,0 +1,17 @@
+SUMMARY = "A command-line application to restore firmware files to iOS devices"
+LICENSE = "LGPL-3.0-or-later"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02 \
+"
+
+HOMEPAGE = "http://www.libimobiledevice.org/"
+
+DEPENDS = "libirecovery libimobiledevice libzip curl libimobiledevice-glue openssl"
+
+PV = "1.0.1+git${SRCPV}"
+
+SRCREV = "163a1647dedb7ca4656c0f072e4733573f9f982b"
+SRC_URI = "git://github.com/libimobiledevice/idevicerestore;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/iksemel/iksemel_1.5.bb b/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
index 0903e90d7d..e01c0897bb 100644
--- a/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
+++ b/meta-oe/recipes-support/iksemel/iksemel_1.5.bb
@@ -1,19 +1,19 @@
SUMMARY = "Fast and portable XML parser and Jabber protocol library"
HOMEPAGE = "https://github.com/meduketto/iksemel"
SECTION = "libs"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d8045f3b8f929c1cb29a1e3fd737b499"
SRCREV = "978b733462e41efd5db72bc9974cb3b0d1d5f6fa"
PV = "1.5+git${SRCPV}"
-SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https \
+SRC_URI = "git://github.com/meduketto/iksemel.git;protocol=https;branch=master \
file://fix-configure-option-parsing.patch \
file://avoid-obsolete-gnutls-apis.patch"
S = "${WORKDIR}/git"
-inherit autotools pkgconfig lib_package
+inherit autotools pkgconfig lib_package texinfo
# TLS support requires either openssl or gnutls (if both are enabled openssl will be used).
PACKAGECONFIG ?= "gnutls"
diff --git a/meta-oe/recipes-support/imagemagick/imagemagick/0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch b/meta-oe/recipes-support/imagemagick/imagemagick/0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch
new file mode 100644
index 0000000000..6b225a10cf
--- /dev/null
+++ b/meta-oe/recipes-support/imagemagick/imagemagick/0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch
@@ -0,0 +1,42 @@
+From 0912e49d58c2a5f455fabf76ab7dc61cfc44cfb9 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 30 Mar 2023 20:50:26 -0700
+Subject: [PATCH] m4: Use autconf provided AC_FUNC_FSEEKO
+
+This helps in building with autoconf 2.72
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4/ac_func_fseeko.m4 | 18 +-----------------
+ 1 file changed, 1 insertion(+), 17 deletions(-)
+
+diff --git a/m4/ac_func_fseeko.m4 b/m4/ac_func_fseeko.m4
+index eaeabb978..f9b8859cf 100644
+--- a/m4/ac_func_fseeko.m4
++++ b/m4/ac_func_fseeko.m4
+@@ -53,20 +53,4 @@
+ # --------------
+ AN_FUNCTION([ftello], [AC_FUNC_FSEEKO])
+ AN_FUNCTION([fseeko], [AC_FUNC_FSEEKO])
+-AC_DEFUN([AC_FUNC_FSEEKO],
+-[_AC_SYS_LARGEFILE_MACRO_VALUE(_LARGEFILE_SOURCE, 1,
+- [ac_cv_sys_largefile_source],
+- [Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2).],
+- [[#include <sys/types.h> /* for off_t */
+- #include <stdio.h>]],
+- [[int (*fp) (FILE *, off_t, int) = fseeko;
+- return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);]])
+-
+-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
+-# in glibc 2.1.3, but that breaks too many other things.
+-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
+-if test $ac_cv_sys_largefile_source != unknown; then
+- AC_DEFINE(HAVE_FSEEKO, 1,
+- [Define to 1 if fseeko (and presumably ftello) exists and is declared.])
+-fi
+-])# AC_FUNC_FSEEKO
++AC_FUNC_FSEEKO
+--
+2.40.0
+
diff --git a/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb b/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
deleted file mode 100644
index 669534eaa0..0000000000
--- a/meta-oe/recipes-support/imagemagick/imagemagick_7.0.7.bb
+++ /dev/null
@@ -1,82 +0,0 @@
-SUMMARY = "ImageMagick is an image convertion tools"
-SECTION = "console/utils"
-LICENSE = "ImageMagick"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dad5a98f173fd3fa6958a1a58c6131c1"
-# FIXME: There are many more checked libraries. All should be added or explicitly disabled to get consistent results.
-DEPENDS = "lcms bzip2 jpeg libpng librsvg tiff zlib fftw freetype"
-
-BASE_PV := "${PV}"
-PV .= "_7"
-SRC_URI = "git://github.com/ImageMagick/ImageMagick.git "
-SRCREV = "e12602b39b5e778240d286b6f9bbbc0fe3fb26c5"
-
-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[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[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 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[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 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[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..e59b511a72
--- /dev/null
+++ b/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
@@ -0,0 +1,102 @@
+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=ac58ac14f9d9d02cafd2d81ef38fb2cc \
+ 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 .= "-8"
+SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=main;protocol=https \
+ file://0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch"
+SRCREV = "920f79206ff59f30a4cff22c9c9c393508b82663"
+
+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_NATIVE},,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"
+
+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/ldflags.patch b/meta-oe/recipes-support/imapfilter/imapfilter/ldflags.patch
new file mode 100644
index 0000000000..ceda8394a7
--- /dev/null
+++ b/meta-oe/recipes-support/imapfilter/imapfilter/ldflags.patch
@@ -0,0 +1,16 @@
+Append to LDFLAGS so it can respect the LDFLAGS passed from environment. This helps
+with using propert GNU_HASH settings during link on mips/arm
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -24,7 +24,7 @@ CFLAGS = -Wall -Wextra -O \
+ -DCONFIG_SSL_CAPATH='"$(SSLCAPATH)"' \
+ -DCONFIG_SSL_CAFILE='"$(SSLCAFILE)"' \
+ $(INCDIRS) $(MYCFLAGS)
+-LDFLAGS = $(LIBDIRS) $(MYLDFLAGS)
++LDFLAGS += $(LIBDIRS) $(MYLDFLAGS)
+ LIBS = -lm -ldl $(LIBLUA) $(LIBPCRE) $(LIBSSL) $(LIBCRYPTO) $(MYLIBS)
+
+ MAN1 = imapfilter.1
diff --git a/meta-oe/recipes-support/imapfilter/imapfilter_2.8.1.bb b/meta-oe/recipes-support/imapfilter/imapfilter_2.8.1.bb
new file mode 100644
index 0000000000..878d28f137
--- /dev/null
+++ b/meta-oe/recipes-support/imapfilter/imapfilter_2.8.1.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 = "e6372b88e09a4d1c573b57270de6b40846825a8b"
+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/libinih_57.bb b/meta-oe/recipes-support/inih/libinih_57.bb
new file mode 100644
index 0000000000..08957e18fb
--- /dev/null
+++ b/meta-oe/recipes-support/inih/libinih_57.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 = "9cecf0643da0846e77f64d10a126d9f48b9e05e8"
+
+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 5030c78a31..0000000000
--- a/meta-oe/recipes-support/inih/libinih_git.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "C and C++ INI Library"
-HOMEPAGE = "http://code.google.com/p/inih/"
-PV = "0.0+gitr${SRCPV}"
-PKGV = "${GITPKGVTAG}"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=dae28cbf28207425e0d0b3eb835f4bde"
-
-PR = "r3"
-
-# The github repository provides a cmake and pkg-config integration
-SRCREV = "25078f7156eb8647b3b35dd25f9ae6f8c4ee0589"
-SRC_URI = "git://github.com/OSSystems/inih.git"
-
-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/0001-iniparser.pc-Make-libpath-a-variable.patch b/meta-oe/recipes-support/iniparser/iniparser/0001-iniparser.pc-Make-libpath-a-variable.patch
new file mode 100644
index 0000000000..4824344f05
--- /dev/null
+++ b/meta-oe/recipes-support/iniparser/iniparser/0001-iniparser.pc-Make-libpath-a-variable.patch
@@ -0,0 +1,23 @@
+From 1761298b73c759c07e4652ada307f68512a75ff1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 25 Mar 2022 20:44:41 -0700
+Subject: [PATCH] iniparser.pc: Make libpath a variable
+
+Will set according to baselib that yocto exports.
+
+Upstream-Status: Inappropriate [OE-specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ iniparser.pc | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/iniparser.pc
++++ b/iniparser.pc
+@@ -1,6 +1,6 @@
+ prefix=/usr
+ exec_prefix=/usr
+-libdir=${exec_prefix}/lib
++libdir=${exec_prefix}/@baselib@
+ includedir=${prefix}/include
+ datarootdir=${prefix}/share
+ datadir=${datarootdir}
diff --git a/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch b/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch
new file mode 100644
index 0000000000..46c1b0f7ac
--- /dev/null
+++ b/meta-oe/recipes-support/iniparser/iniparser/Add-CMake-support.patch
@@ -0,0 +1,65 @@
+Origin: Debian packaging
+From: Klee Dienes <klee@mit.edu>
+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
+
+--- /dev/null
++++ b/CMakeLists.txt
+@@ -0,0 +1,50 @@
++cmake_minimum_required (VERSION 2.8.8)
++
++project (iniparser)
++include (GNUInstallDirs)
++
++include_directories (src)
++
++set(INIPARSER_SRCS src/dictionary.c src/iniparser.c)
++set(INIPARSER_HDRS src/dictionary.h src/iniparser.h)
++
++add_library(iniparser-shared SHARED ${INIPARSER_SRCS} ${INIPARSER_HDRS})
++add_library(iniparser-static STATIC ${INIPARSER_SRCS} ${INIPARSER_HDRS})
++
++set_target_properties(iniparser-shared PROPERTIES SOVERSION 1)
++set_target_properties(iniparser-shared PROPERTIES OUTPUT_NAME iniparser)
++set_target_properties(iniparser-static PROPERTIES OUTPUT_NAME iniparser)
++
++install (TARGETS iniparser-shared
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
++
++install (TARGETS iniparser-static
++ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ DESTINATION ${CMAKE_INSTALL_LIBDIR}
++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
++
++find_package(Doxygen)
++if (NOT DOXYGEN_FOUND)
++message(FATAL_ERROR "Doxygen is needed to build the documentation. Please install it correctly")
++endif()
++
++file (WRITE ${CMAKE_CURRENT_BINARY_DIR}/iniparser.dox
++ "@INCLUDE = ${CMAKE_CURRENT_SOURCE_DIR}/doc/iniparser.dox\n"
++ "OUTPUT_DIRECTORY = ${CMAKE_CURRENT_BINARY_DIR}\n"
++ )
++
++add_custom_target (doc ALL
++ COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/iniparser.dox
++ SOURCES doc/iniparser.dox)
++
++enable_testing()
++
++add_test(NAME testsuite
++ COMMAND make
++ WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/test)
++
++install (FILES ${INIPARSER_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/iniparser)
++
++install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/html DESTINATION ${CMAKE_INSTALL_DOCDIR})
diff --git a/meta-oe/recipes-support/iniparser/iniparser_4.1.bb b/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
new file mode 100644
index 0000000000..f9e1530161
--- /dev/null
+++ b/meta-oe/recipes-support/iniparser/iniparser_4.1.bb
@@ -0,0 +1,26 @@
+SUMMARY = "The iniParser library is a simple C library offering INI file parsing services (both reading and writing)."
+SECTION = "libs"
+HOMEPAGE = "https://github.com/ndevilla/iniparser"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e02baf71c76e0650e667d7da133379ac"
+
+DEPENDS = "doxygen-native"
+
+PV .= "+git${SRCPV}"
+
+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"
+
+SRCREV= "deb85ad4936d4ca32cc2260ce43323d47936410d"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+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/0002-libinotifytools-Bridge-differences-between-musl-glib.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-libinotifytools-Bridge-differences-between-musl-glib.patch
new file mode 100644
index 0000000000..931244830c
--- /dev/null
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools/0002-libinotifytools-Bridge-differences-between-musl-glib.patch
@@ -0,0 +1,40 @@
+From 6c3ce01a281a9aa661494d24a862219fc9e2b460 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 16 Dec 2021 14:57:55 -0800
+Subject: [PATCH 2/2] libinotifytools: Bridge differences between
+ musl/glibc/kernel fnotify.h
+
+System detects to use sys/fnotify.h and then assumes glibc's definitions
+but musl has definitions of its own. perhaps portable thing would be to
+use linux/fnotify.h interface directly on linux irrespective of libc
+
+See the differences discussion here [1]
+
+[1] https://inbox.vuxu.org/musl/20191112220151.GC27331@x230/T/#ma8700992467200c8792e0fa8508eae656b81aeba
+
+Upstream-Status: Submitted [https://github.com/inotify-tools/inotify-tools/pull/154]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libinotifytools/src/inotifytools.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/libinotifytools/src/inotifytools.c b/libinotifytools/src/inotifytools.c
+index 902eac2..2b96395 100644
+--- a/libinotifytools/src/inotifytools.c
++++ b/libinotifytools/src/inotifytools.c
+@@ -55,6 +55,12 @@ struct fanotify_event_fid {
+ struct fanotify_event_info_fid info;
+ struct file_handle handle;
+ };
++
++#ifndef __GLIBC__
++#define val __val
++#define __kernel_fsid_t fsid_t
++#endif
++
+ #endif
+
+ /**
+--
+2.34.1
+
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/inotify-nosys-fix-system-call-number.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
deleted file mode 100644
index 89b890dda9..0000000000
--- a/meta-oe/recipes-support/inotify-tools/inotify-tools/inotify-nosys-fix-system-call-number.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-inotify-tools: fix __NR_inotify_add_watch system call number on _MIPS_SIM_ABI64
-
-The correct value should be the same as defined in
-linux/arch/mips/include/uapi/asm/unistd.h
-
-Upstream-Status: Summitted [https://github.com/rvoicilas/inotify-tools/pull/71]
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- libinotifytools/src/inotifytools/inotify-nosys.h | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libinotifytools/src/inotifytools/inotify-nosys.h b/libinotifytools/src/inotifytools/inotify-nosys.h
-index db76b2c..5f7b11b 100644
---- a/libinotifytools/src/inotifytools/inotify-nosys.h
-+++ b/libinotifytools/src/inotifytools/inotify-nosys.h
-@@ -100,8 +100,8 @@ struct inotify_event {
- # endif
- # if _MIPS_SIM == _MIPS_SIM_ABI64
- # define __NR_inotify_init (__NR_Linux + 243)
--# define __NR_inotify_add_watch (__NR_Linux + 243)
--# define __NR_inotify_rm_watch (__NR_Linux + 243)
-+# define __NR_inotify_add_watch (__NR_Linux + 244)
-+# define __NR_inotify_rm_watch (__NR_Linux + 245)
- # endif
- # if _MIPS_SIM == _MIPS_SIM_NABI32
- # define __NR_inotify_init (__NR_Linux + 247)
---
-1.7.10.4
-
diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch b/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch
deleted file mode 100644
index ba042a24b4..0000000000
--- a/meta-oe/recipes-support/inotify-tools/inotify-tools/inotifywait-fix-compile-error-with-GCC-6.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 7affb288d6c0726e7b1ebc317a878927b6ef0d02 Mon Sep 17 00:00:00 2001
-From: Andrea Galbusera <gizero@gmail.com>
-Date: Tue, 13 Sep 2016 08:10:29 +0200
-Subject: [PATCH] inotifywait: fix compile error with GCC 6
-
-Fails to compile with misleading-indentation error
-
-| src/inotifywait.c: In function 'output_event_csv':
-| src/inotifywait.c:126:5: error: this 'if' clause does not guard... [-Werror=misleading-indentation]
-| if (filename != NULL)
-| ^~
-| src/inotifywait.c:129:2: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the 'if'
-| printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) ) );
-| ^~~~~~
-| cc1: all warnings being treated as errors
-
-Fix indentation to resolve.
-
-Upstream-Status: Submitted [https://github.com/rvoicilas/inotify-tools/pull/66]
-
-Signed-off-by: Andrea Galbusera <gizero@gmail.com>
----
- src/inotifywait.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/inotifywait.c b/src/inotifywait.c
-index c5ce5e3..404a85b 100644
---- a/src/inotifywait.c
-+++ b/src/inotifywait.c
-@@ -122,9 +122,9 @@ void validate_format( char * fmt ) {
-
-
- void output_event_csv( struct inotify_event * event ) {
-- char *filename = csv_escape(inotifytools_filename_from_wd(event->wd));
-- if (filename != NULL)
-- printf("%s,", filename);
-+ char *filename = csv_escape(inotifytools_filename_from_wd(event->wd));
-+ if (filename != NULL)
-+ printf("%s,", filename);
-
- printf("%s,", csv_escape( inotifytools_event_to_str( event->mask ) ) );
- if ( event->len > 0 )
---
-1.9.1
-
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
new file mode 100644
index 0000000000..281de522b2
--- /dev/null
+++ b/meta-oe/recipes-support/inotify-tools/inotify-tools_3.22.6.0.bb
@@ -0,0 +1,28 @@
+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"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6"
+
+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"
+
+inherit autotools
+
+EXTRA_OECONF = "--disable-doxygen"
+
+# workaround until glibc 2.35 is fixed for this [1]
+# [1] https://sourceware.org/pipermail/libc-alpha/2021-December/134215.html
+CFLAGS += "-Wno-error"
+
+PACKAGES =+ "libinotifytools"
+
+FILES:libinotifytools = "${libdir}/lib*.so.*"
diff --git a/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb b/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
deleted file mode 100644
index efc753d5bf..0000000000
--- a/meta-oe/recipes-support/inotify-tools/inotify-tools_git.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ac6c26e52aea428ee7f56dc2c56424c6"
-
-SRCREV = "1df9af4d6cd0f4af4b1b19254bcf056aed4ae395"
-PV = "3.14+git${SRCPV}"
-
-SRC_URI = "git://github.com/rvoicilas/${BPN} \
- file://inotifywait-fix-compile-error-with-GCC-6.patch \
- file://inotify-nosys-fix-system-call-number.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit autotools
-
-EXTRA_OECONF = "--disable-doxygen"
-
-PACKAGES =+ "libinotifytools"
-
-FILES_libinotifytools = "${libdir}/lib*.so.*"
diff --git a/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch b/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch
deleted file mode 100644
index 00f48e8a29..0000000000
--- a/meta-oe/recipes-support/joe/joe/0001-adjust-signature-of-main.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 27e4639254f2b2eb7d04790bd8cf16ecfcbac1c2 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Oct 2016 01:07:16 +0000
-Subject: [PATCH] adjust signature of main()
-
-clang complains about the types of main() function
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- main.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/main.c b/main.c
-index 81ba543..ee7506c 100644
---- a/main.c
-+++ b/main.c
-@@ -159,7 +159,7 @@ extern int breakflg;
-
- unsigned char **mainenv;
-
--int main(int argc, unsigned char **argv, unsigned char **envv)
-+int main(int argc, char **argv, char **envv)
- {
- CAP *cap;
- unsigned char *s;
---
-1.9.1
-
diff --git a/meta-oe/recipes-support/joe/joe_3.1.bb b/meta-oe/recipes-support/joe/joe_3.1.bb
deleted file mode 100644
index 1ad355b5ae..0000000000
--- a/meta-oe/recipes-support/joe/joe_3.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SECTION = "console/utils"
-SUMMARY = "Console text editor with good functionality, good choice for vi-haters"
-HOMEPAGE = "http://joe-editor.sourceforge.net/"
-LICENSE = "GPLv1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=da10ed7cf8038981c580e11c1d3e8fb6"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz \
- file://0001-adjust-signature-of-main.patch \
- "
-
-PACKAGECONFIG ??= "curses"
-PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo"
-
-inherit autotools
-
-SRC_URI[md5sum] = "2a6ef018870fca9b7df85401994fb0e0"
-SRC_URI[sha256sum] = "252390e4bc687957f09f334095904c8cc53b39c7b663ed47861ae1d11aef5946"
diff --git a/meta-oe/recipes-support/joe/joe_4.6.bb b/meta-oe/recipes-support/joe/joe_4.6.bb
new file mode 100644
index 0000000000..ed0bf337b5
--- /dev/null
+++ b/meta-oe/recipes-support/joe/joe_4.6.bb
@@ -0,0 +1,15 @@
+SECTION = "console/utils"
+SUMMARY = "Console text editor with good functionality, good choice for vi-haters"
+HOMEPAGE = "http://joe-editor.sourceforge.net/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/joe-editor/joe-${PV}.tar.gz"
+
+PACKAGECONFIG ??= "curses"
+PACKAGECONFIG[curses] = "--enable-curses,--disable-curses,ncurses,ncurses-terminfo"
+
+inherit autotools-brokensep mime-xdg
+
+SRC_URI[md5sum] = "9017484e6116830d846678b625ea5c43"
+SRC_URI[sha256sum] = "495a0a61f26404070fe8a719d80406dc7f337623788e445b92a9f6de512ab9de"
diff --git a/meta-oe/recipes-support/lcms/lcms_2.15.bb b/meta-oe/recipes-support/lcms/lcms_2.15.bb
new file mode 100644
index 0000000000..3656e1cfdc
--- /dev/null
+++ b/meta-oe/recipes-support/lcms/lcms_2.15.bb
@@ -0,0 +1,15 @@
+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] = "b20cbcbd0f503433be2a4e81462106fa61050a35074dc24a4e356792d971ab39"
+
+DEPENDS = "tiff"
+
+BBCLASSEXTEND = "native"
+
+S = "${WORKDIR}/lcms2-${PV}"
+
+inherit autotools
diff --git a/meta-oe/recipes-support/lcms/lcms_2.7.bb b/meta-oe/recipes-support/lcms/lcms_2.7.bb
deleted file mode 100644
index 12ccb2050b..0000000000
--- a/meta-oe/recipes-support/lcms/lcms_2.7.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=6c786c3b7a4afbd3c990f1b81261d516"
-SRC_URI = "${SOURCEFORGE_MIRROR}/lcms/lcms2-${PV}.tar.gz"
-SRC_URI[md5sum] = "06c1626f625424a811fb4b5eb070839d"
-SRC_URI[sha256sum] = "4524234ae7de185e6b6da5d31d6875085b2198bc63b1211f7dde6e2d197d6a53"
-
-DEPENDS = "tiff"
-
-BBCLASSEXTEND = "native"
-
-S = "${WORKDIR}/lcms2-${PV}"
-
-inherit autotools
diff --git a/meta-oe/recipes-support/lcov/lcov_1.11.bb b/meta-oe/recipes-support/lcov/lcov_1.11.bb
deleted file mode 100644
index 2f9ac336e9..0000000000
--- a/meta-oe/recipes-support/lcov/lcov_1.11.bb
+++ /dev/null
@@ -1,27 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-RDEPENDS_${PN} += " \
- gcov \
- perl \
- perl-module-filehandle \
- perl-module-getopt-std \
- perl-module-digest-sha \
-"
-
-SRC_URI = "http://downloads.sourceforge.net/ltp/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "e79b799ae3ce149aa924c7520e993024"
-SRC_URI[sha256sum] = "c282de8d678ecbfda32ce4b5c85fc02f77c2a39a062f068bd8e774d29ddc9bf8"
-
-do_install() {
- oe_runmake install PREFIX=${D}
-}
-
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/libatasmart/libatasmart_0.19.bb b/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
index 4cfb732932..f747ecbf72 100644
--- a/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
+++ b/meta-oe/recipes-support/libatasmart/libatasmart_0.19.bb
@@ -1,11 +1,11 @@
SUMMARY = "ATA S.M.A.R.T. Reading and Parsing Library"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1"
DEPENDS = "udev"
SRCREV = "de6258940960443038b4c1651dfda3620075e870"
-SRC_URI = "git://git.0pointer.de/libatasmart.git \
+SRC_URI = "git://git.0pointer.de/libatasmart.git;branch=master \
file://0001-Makefile.am-add-CFLAGS-and-LDFLAGS-definiton.patch \
"
@@ -13,9 +13,9 @@ S = "${WORKDIR}/git"
inherit autotools lib_package pkgconfig
-do_install_append() {
+do_install:append() {
sed -i -e s://:/:g -e 's:=${libdir}/libudev.la:-ludev:g' ${D}${libdir}/libatasmart.la
}
PACKAGES =+ "${PN}-dev-vala"
-FILES_${PN}-dev-vala = "${datadir}/vala"
+FILES:${PN}-dev-vala = "${datadir}/vala"
diff --git a/meta-oe/recipes-support/libb64/libb64/0001-Makefile-fix-parallel-build-of-examples.patch b/meta-oe/recipes-support/libb64/libb64/0001-Makefile-fix-parallel-build-of-examples.patch
new file mode 100644
index 0000000000..84dee415ad
--- /dev/null
+++ b/meta-oe/recipes-support/libb64/libb64/0001-Makefile-fix-parallel-build-of-examples.patch
@@ -0,0 +1,46 @@
+From cbe8bd2948f522062c6170f581e1e265692a9a55 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Sun, 24 Oct 2021 18:53:04 +0100
+Subject: [PATCH] Makefile: fix parallel build of examples
+
+Without the change examples fails to build as:
+
+ $ LANG=C make -j
+ make -C src
+ make -C examples
+ make[1]: Entering directory 'libb64/src'
+ cc -O3 -Werror -pedantic -I../include -c -o cencode.o cencode.c
+ make[1]: Entering directory 'libb64/examples'
+ make[1]: *** No rule to make target 'libb64.a', needed by 'c-example1'. Stop.
+ make[1]: Leaving directory 'libb64/examples'
+ make: *** [Makefile:8: all_examples] Error 2
+ make: *** Waiting for unfinished jobs....
+ cc -O3 -Werror -pedantic -I../include -c -o cdecode.o cdecode.c
+ ar rv libb64.a cencode.o cdecode.o
+ ar: creating libb64.a
+ a - cencode.o
+ a - cdecode.o
+ make[1]: Leaving directory 'libb64/src'
+
+Upstream-Status: Submitted [https://github.com/libb64/libb64/pull/9]
+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 db40356..aa48c76 100644
+--- a/Makefile
++++ b/Makefile
+@@ -4,7 +4,7 @@ all_src:
+ $(MAKE) -C src
+ all_base64: all_src
+ $(MAKE) -C base64
+-all_examples:
++all_examples: all_src
+ $(MAKE) -C examples
+
+ clean: clean_src clean_base64 clean_include clean_examples
+--
+2.37.2
+
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
new file mode 100644
index 0000000000..b3ee24d9d5
--- /dev/null
+++ b/meta-oe/recipes-support/libb64/libb64/0001-example-Do-not-run-the-tests.patch
@@ -0,0 +1,27 @@
+From 68f66d1583be670eb8d5f3f38dbd5dd1d63b733c Mon Sep 17 00:00:00 2001
+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: Inappropriate [Cross-compile specific]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ examples/Makefile | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/examples/Makefile b/examples/Makefile
+index d9667a5..554b346 100644
+--- a/examples/Makefile
++++ b/examples/Makefile
+@@ -33,11 +33,8 @@ depend: $(SOURCES)
+ makedepend -f- $(CFLAGS) $(SOURCES) 2> /dev/null 1> depend
+
+ test-c-example1: c-example1
+- ./c-example1
+
+ test-c-example2: c-example2
+- ./c-example2 loremgibson.txt encoded.txt decoded.txt
+- diff -q loremgibson.txt decoded.txt
+
+ test: test-c-example1 test-c-example2
+
diff --git a/meta-oe/recipes-support/libb64/libb64/0001-examples-Use-proper-function-prototype-for-main.patch b/meta-oe/recipes-support/libb64/libb64/0001-examples-Use-proper-function-prototype-for-main.patch
new file mode 100644
index 0000000000..42e889efc2
--- /dev/null
+++ b/meta-oe/recipes-support/libb64/libb64/0001-examples-Use-proper-function-prototype-for-main.patch
@@ -0,0 +1,27 @@
+From 98eaf510f40e384b32c01ad4bd5c3a697fdd8560 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Aug 2022 14:34:38 -0700
+Subject: [PATCH] examples: Use proper function prototype for main
+
+Upstream-Status: Submitted [https://github.com/libb64/libb64/pull/10]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ examples/c-example1.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/examples/c-example1.c b/examples/c-example1.c
+index a0001df..34585dd 100644
+--- a/examples/c-example1.c
++++ b/examples/c-example1.c
+@@ -83,7 +83,7 @@ char* decode(const char* input)
+ }
+
+
+-int main()
++int main(int argc, char** argv)
+ {
+ const char* input = "hello world";
+ char* encoded;
+--
+2.37.2
+
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
new file mode 100644
index 0000000000..6a1e7b75e1
--- /dev/null
+++ b/meta-oe/recipes-support/libb64/libb64_2.0.0.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Base64 Encoding/Decoding Routines"
+DESCRIPTION = "base64 encoding/decoding library - runtime library \
+libb64 is a library of ANSI C routines for fast encoding/decoding data into \
+and from a base64-encoded format"
+HOMEPAGE = "https://github.com/libb64"
+LICENSE = "PD"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=81296a564fa0621472714aae7c763d96"
+
+PV .= "+2.0.0.2+git${SRCPV}"
+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 \
+ "
+
+S = "${WORKDIR}/git"
+
+CFLAGS += "-fPIC"
+
+do_configure () {
+ :
+}
+
+do_compile () {
+ oe_runmake
+ ${CC} ${LDFLAGS} ${CFLAGS} -shared -Wl,-soname,${BPN}.so.0 src/*.o -o src/${BPN}.so.0
+}
+
+do_install () {
+ install -d ${D}${includedir}/b64
+ install -Dm 0644 ${B}/src/libb64.a ${D}${libdir}/libb64.a
+ install -Dm 0644 ${B}/src/libb64.so.0 ${D}${libdir}/libb64.so.0
+ ln -s libb64.so.0 ${D}${libdir}/libb64.so
+ install -Dm 0644 ${S}/include/b64/*.h ${D}${includedir}/b64/
+}
diff --git a/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch b/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
deleted file mode 100644
index b57e39fbcc..0000000000
--- a/meta-oe/recipes-support/libbytesize/files/0001-remove-python2-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 2ddc97b30792817d162f51ec3818376aefbf184e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 3 May 2017 02:05:33 -0400
-Subject: [PATCH] remove python2 support
-
-We use python3 rather than python2 support
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- src/python/Makefile.am | 5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/src/python/Makefile.am b/src/python/Makefile.am
-index 567d0d7..8d9f446 100644
---- a/src/python/Makefile.am
-+++ b/src/python/Makefile.am
-@@ -1,8 +1,3 @@
--pylibdir = $(shell python -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
--
--pybytesizedir = $(pylibdir)/bytesize
--dist_pybytesize_DATA = bytesize.py __init__.py
--
- if WITH_PYTHON3
- py3libdir = $(shell python3 -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib(1,0,prefix='${exec_prefix}'))")
- py3bytesizedir = $(py3libdir)/bytesize
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb b/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
deleted file mode 100644
index 6903021490..0000000000
--- a/meta-oe/recipes-support/libbytesize/libbytesize_0.10.bb
+++ /dev/null
@@ -1,34 +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 = "LGPLv2+"
-SECTION = "devel/lib"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c07cb499d259452f324bb90c3067d85c"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "369127c0edbba7d1a4e2e02486375dd9d379524f"
-PV = "0.10+git${SRCPV}"
-SRC_URI = "git://github.com/rhinstaller/libbytesize;branch=master \
- file://0001-remove-python2-support.patch \
-"
-
-inherit gettext autotools python3native
-
-DEPENDS += " \
- libpcre \
- gmp \
- mpfr \
-"
-
-FILES_${PN} += "${PYTHON_SITEPACKAGES_DIR}/bytesize"
-
-PACKAGECONFIG ??= "python3"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[doc] = "--with-gtk-doc, --without-gtk-doc, gtk-doc-native"
-
-EXTRA_OEMAKE = "py3libdir=${PYTHON_SITEPACKAGES_DIR}"
-
-
diff --git a/meta-oe/recipes-support/libbytesize/libbytesize_2.9.bb b/meta-oe/recipes-support/libbytesize/libbytesize_2.9.bb
new file mode 100644
index 0000000000..dfc7b42dca
--- /dev/null
+++ b/meta-oe/recipes-support/libbytesize/libbytesize_2.9.bb
@@ -0,0 +1,30 @@
+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 = "2fa27aa3acccc70b9f6c3bf2e569e3d33a381e83"
+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
new file mode 100644
index 0000000000..1e45441ff9
--- /dev/null
+++ b/meta-oe/recipes-support/libcanberra/files/0001-gtk-Don-t-assume-all-GdkDisplays-are-GdkX11Displays-.patch
@@ -0,0 +1,65 @@
+From c0620e432650e81062c1967cc669829dbd29b310 Mon Sep 17 00:00:00 2001
+From: Michael Meeks <michael.meeks@suse.com>
+Date: Fri, 9 Nov 2012 16:16:40 +0000
+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(+)
+
+--- a/src/canberra-gtk-module.c
++++ b/src/canberra-gtk-module.c
+@@ -307,6 +307,11 @@ static gint window_get_desktop(GdkDispla
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -335,6 +340,11 @@ static gint display_get_desktop(GdkDispl
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), DefaultRootWindow(GDK_DISPLAY_XDISPLAY(d)),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_CURRENT_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
+@@ -365,6 +375,11 @@ static gboolean window_is_xembed(GdkDisp
+ gboolean ret = FALSE;
+ Atom xembed;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return FALSE;
++#endif
++
+ /* Gnome Panel applets are XEMBED windows. We need to make sure we
+ * ignore them */
+
+--- a/src/canberra-gtk.c
++++ b/src/canberra-gtk.c
+@@ -185,6 +185,11 @@ static gint window_get_desktop(GdkDispla
+ guchar *data = NULL;
+ gint ret = -1;
+
++#ifdef GDK_IS_X11_DISPLAY
++ if (!GDK_IS_X11_DISPLAY(d))
++ return 0;
++#endif
++
+ if (XGetWindowProperty(GDK_DISPLAY_XDISPLAY(d), GDK_WINDOW_XID(w),
+ gdk_x11_get_xatom_by_name_for_display(d, "_NET_WM_DESKTOP"),
+ 0, G_MAXLONG, False, XA_CARDINAL, &type_return,
diff --git a/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb b/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
index 72c93abe17..20fe910ebe 100644
--- a/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
+++ b/meta-oe/recipes-support/libcanberra/libcanberra_0.30.bb
@@ -1,6 +1,6 @@
SUMMARY = "Implementation of XDG Sound Theme and Name Specifications"
DESCRIPTION = "Libcanberra is an implementation of the XDG Sound Theme and Name Specifications, for generating event sounds on free desktops."
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \
file://src/canberra.h;beginline=7;endline=24;md5=c616c687cf8da540a14f917e0d23ab03"
@@ -11,6 +11,7 @@ inherit autotools gtk-doc
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 \
"
SRC_URI[md5sum] = "34cb7e4430afaf6f447c4ebdb9b42072"
SRC_URI[sha256sum] = "c2b671e67e0c288a69fc33dc1b6f1b534d07882c2aceed37004bf48c601afa72"
@@ -31,32 +32,32 @@ PACKAGECONFIG[gstreamer] = "--enable-gstreamer, --disable-gstreamer, gstreamer1.
PACKAGECONFIG[gtk] = "--enable-gtk, --disable-gtk, gtk+"
PACKAGECONFIG[gtk3] = "--enable-gtk3, --disable-gtk3, gtk+3"
-python populate_packages_prepend() {
+python populate_packages:prepend() {
plugindir = d.expand('${libdir}/${BPN}-${PV}/')
- do_split_packages(d, plugindir, '^libcanberra-(.*)\.so$', 'libcanberra-%s', '%s support library', extra_depends='' )
- do_split_packages(d, plugindir, '^libcanberra-(.*)\.la$', 'libcanberra-%s', '%s support library', extra_depends='' )
+ do_split_packages(d, plugindir, r'^libcanberra-(.*)\.so$', 'libcanberra-%s', '%s support library', extra_depends='' )
+ do_split_packages(d, plugindir, r'^libcanberra-(.*)\.la$', 'libcanberra-%s', '%s support library', extra_depends='' )
}
PACKAGES =+ "${PN}-gnome ${PN}-gtk2 ${PN}-gtk3 ${PN}-systemd"
PACKAGES_DYNAMIC += "^libcanberra-.*"
-FILES_${PN} = "${bindir}/ ${libdir}/${BPN}.so.*"
+FILES:${PN} = "${bindir}/ ${libdir}/${BPN}.so.*"
-FILES_${PN}-dev += "${datadir}/vala/vapi ${libdir}/*/modules/*.la ${libdir}/*/*.la"
+FILES:${PN}-dev += "${datadir}/vala/vapi ${libdir}/*/modules/*.la ${libdir}/*/*.la"
-FILES_${PN}-dbg += "${libdir}/${BPN}-${PV}/.debug ${libdir}/gtk-*/modules/.debug"
+FILES:${PN}-dbg += "${libdir}/${BPN}-${PV}/.debug ${libdir}/gtk-*/modules/.debug"
-FILES_${PN}-gtk2 = "${libdir}/${BPN}-gtk.so.* \
+FILES:${PN}-gtk2 = "${libdir}/${BPN}-gtk.so.* \
${libdir}/gtk-2.0/modules/*.so \
${bindir}/canberra-gtk-play"
# -gtk3 ships a symlink to a .so
-INSANE_SKIP_${PN}-gtk3 = "dev-so"
-FILES_${PN}-gtk3 = "${libdir}/${BPN}-gtk3.so.* \
+INSANE_SKIP:${PN}-gtk3 = "dev-so"
+FILES:${PN}-gtk3 = "${libdir}/${BPN}-gtk3.so.* \
${libdir}/gtk-3.0/modules/*.so \
${bindir}/canberra-gtk3-play"
-FILES_${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/ \
+FILES:${PN}-gnome = "${libdir}/gnome-settings-daemon-3.0/ \
${datadir}/gdm/ ${datadir}/gnome/"
-FILES_${PN}-systemd = "${systemd_unitdir}/system/*.service"
+FILES:${PN}-systemd = "${systemd_unitdir}/system/*.service"
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/files/0001-sandbox-Do-not-use-int8_t-in-std-uniform_int_distrib.patch b/meta-oe/recipes-support/libcereal/files/0001-sandbox-Do-not-use-int8_t-in-std-uniform_int_distrib.patch
new file mode 100644
index 0000000000..26a8223d19
--- /dev/null
+++ b/meta-oe/recipes-support/libcereal/files/0001-sandbox-Do-not-use-int8_t-in-std-uniform_int_distrib.patch
@@ -0,0 +1,54 @@
+From 36054278304945c6aef7d44e58788ca882c67d05 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 15:54:13 -0700
+Subject: [PATCH] sandbox: Do not use int8_t in std::uniform_int_distribution
+
+Newer versions of libc++ has dropped supporting this usecase since its
+an UB see.
+
+https://reviews.llvm.org/D114920?id=400571
+
+Fixes
+
+uniform_int_distribution.h:162:5: error: static assertion failed due to requirement '__libcpp_random_is_valid_inttype<char>::value': IntType must be a supported integer type
+ static_assert(__libcpp_random_is_valid_inttype<_IntType>::value, "IntType must be a supported integer type");
+ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libcereal/1.3.2+gitAUTOINC+ebef1e9298-r0/git/sandbox/performance.cpp:261:9: note: in instantiation of template class 'std::uniform_int_distribution<char>' requested here
+ c = std::uniform_int_distribution<char>(' ', '~')(gen);
+ ^
+/mnt/b/yoe/master/build/tmp/work/core2-64-yoe-linux-musl/libcereal/1.3.2+gitAUTOINC+ebef1e9298-r0/git/sandbox/performance.cpp:261:9: error: type 'std::uniform_int_distribution<char>' does not provide a call operator
+ c = std::uniform_int_distribution<char>(' ', '~')(gen);
+ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+2 errors generated.
+
+Upstream-Status: Submitted [https://github.com/USCiLab/cereal/pull/764]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sandbox/performance.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sandbox/performance.cpp b/sandbox/performance.cpp
+index f9307870..aca8c78c 100644
+--- a/sandbox/performance.cpp
++++ b/sandbox/performance.cpp
+@@ -258,7 +258,7 @@ random_value(std::mt19937 & gen)
+ {
+ std::string s(std::uniform_int_distribution<int>(3, 30)(gen), ' ');
+ for(char & c : s)
+- c = std::uniform_int_distribution<char>(' ', '~')(gen);
++ c = static_cast<char>( std::uniform_int_distribution<int>(' ', '~')(gen) );
+ return s;
+ }
+
+@@ -277,7 +277,7 @@ std::string random_binary_string(std::mt19937 & gen)
+ {
+ std::string s(N, ' ');
+ for(auto & c : s )
+- c = std::uniform_int_distribution<char>('0', '1')(gen);
++ c = static_cast<char>( std::uniform_int_distribution<int>( '0', '1' )(gen) );
+ return s;
+ }
+
+--
+2.37.3
+
diff --git a/meta-oe/recipes-support/libcereal/files/run-ptest b/meta-oe/recipes-support/libcereal/files/run-ptest
new file mode 100755
index 0000000000..9bc480aa7f
--- /dev/null
+++ b/meta-oe/recipes-support/libcereal/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-support/libcereal/libcereal_1.3.2.bb b/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
new file mode 100644
index 0000000000..c5f26ecb4e
--- /dev/null
+++ b/meta-oe/recipes-support/libcereal/libcereal_1.3.2.bb
@@ -0,0 +1,54 @@
+SUMMARY = "A C++11 library for serialization"
+HOMEPAGE = "https://uscilab.github.io/cereal/"
+
+SECTION = "libs"
+
+LICENSE = "BSD-3-Clause & MIT & BSL-1.0"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE;md5=4921372a1fb38469e667c38b17a1c4b3 \
+ file://include/cereal/external/rapidxml/license.txt;md5=d63ab70ba21ca0544b03284958324301 \
+ file://include/cereal/external/LICENSE;md5=b07578c9df99c0b8b45eb041efd4a645 \
+ file://include/cereal/external/rapidjson/LICENSE;md5=e7abb663111d4ac17cf00323698aff08 \
+ file://include/cereal/external/rapidjson/msinttypes/LICENSE;md5=dffce65b98c773976de2e338bd130f46 \
+"
+
+DEPENDS = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'boost', '', d)} "
+
+PROVIDES += "${PN}-dev"
+
+PV .= "+git${SRCPV}"
+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 \
+"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig ptest
+
+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},,"
+EXTRA_OECMAKE = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '', '-DJUST_INSTALL_CEREAL=ON', d)} \
+ ${@['','-DSKIP_PORTABILITY_TEST=ON'][d.getVar('SITEINFO_BITS') != '32']}"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp ${B}/unittests/test_* ${D}${PTEST_PATH}/tests
+}
+
+ALLOW_EMPTY:${PN} = "1"
+
+RDEPENDS:${PN}-dev = ""
+
+BBCLASSEXTEND = "native nativesdk"
+
+#it needs to work with CXXFLAGS += " -mlong-double-64" but ppc only supports 128bit long double
+COMPATIBLE_HOST:powerpc:libc-musl = "null"
+COMPATIBLE_HOST:powerpc64le:libc-musl = "null"
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
new file mode 100644
index 0000000000..d78ee7a8df
--- /dev/null
+++ b/meta-oe/recipes-support/libcppkafka/libcppkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch
@@ -0,0 +1,30 @@
+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
new file mode 100644
index 0000000000..fd57e4e283
--- /dev/null
+++ b/meta-oe/recipes-support/libcppkafka/libcppkafka_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "high level C++ wrapper for rdkafka"
+DESCRIPTION = "cppkafka allows C++ applications to consume and produce messages using the Apache Kafka protocol."
+HOMEPAGE = "https://github.com/mfontanini/cppkafka"
+SECTION = "lib"
+LICENSE = "BSD-2-Clause"
+
+LIC_FILES_CHKSUM = " \
+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"
+
+DEPENDS = "librdkafka boost chrpath-replacement-native"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+do_install:append(){
+ chrpath -d ${D}${libdir}/libcppkafka.so.0.3.1
+ sed -i -e 's|${STAGING_INCDIR}|\$\{includedir\}|g' ${D}${datadir}/pkgconfig/cppkafka.pc
+}
diff --git a/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb b/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
index 74b5e21e23..81453fb888 100644
--- a/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
+++ b/meta-oe/recipes-support/libcyusbserial/libcyusbserial_git.bb
@@ -1,18 +1,18 @@
SUMMARY = "Enable userspace control of Cypress USB-Serial bridge devices"
HOMEPAGE = "https://github.com/cyrozap/libcyusbserial"
BUGTRACKER = "https://github.com/cyrozap/libcyusbserial/issues"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LESSER.txt;md5=4fbd65380cdd255951079008b364516c"
DEPENDS = "libusb udev"
PV = "1.0.0+git${SRCPV}"
SRCREV = "655e2d544183d094f0e2d119c7e0c6206a0ddb3f"
-SRC_URI = "git://github.com/cyrozap/${BPN}.git"
+SRC_URI = "git://github.com/cyrozap/${BPN}.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
inherit cmake
PACKAGES =+ "${PN}-utils"
-FILES_${PN}-utils = "${bindir}/*"
+FILES:${PN}-utils = "${bindir}/*"
diff --git a/meta-oe/recipes-support/libee/libee.inc b/meta-oe/recipes-support/libee/libee.inc
index e5a145ab22..16fe557f76 100644
--- a/meta-oe/recipes-support/libee/libee.inc
+++ b/meta-oe/recipes-support/libee/libee.inc
@@ -5,7 +5,7 @@ but hopefully convenient API layer above the CEE standard."
HOMEPAGE = "http://www.libee.org"
SECTION = "base"
-LICENSE = "LGPL-2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=1c2687de35e36ba3b999136236a66cd6"
SRC_URI = "http://www.libee.org/download/files/download/${BPN}-${PV}.tar.gz\
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/0001-Default-eigen_packet_wrapper-constructor.patch b/meta-oe/recipes-support/libeigen/libeigen/0001-Default-eigen_packet_wrapper-constructor.patch
new file mode 100644
index 0000000000..84b5a4da9f
--- /dev/null
+++ b/meta-oe/recipes-support/libeigen/libeigen/0001-Default-eigen_packet_wrapper-constructor.patch
@@ -0,0 +1,72 @@
+From cb507309937958c632147de87e8f1231d6698847 Mon Sep 17 00:00:00 2001
+From: Antonio Sanchez <cantonios@google.com>
+Date: Tue, 14 Sep 2021 10:57:22 -0700
+Subject: [PATCH] Default eigen_packet_wrapper constructor.
+
+This makes it trivial, allowing use of `memcpy`.
+
+Fixes #2326
+
+Upstream-Status: Backport [https://gitlab.com/libeigen/eigen/-/merge_requests/645/diffs?commit_id=cb507309937958c632147de87e8f1231d6698847]
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+* fixes build failures for arm targets with NEON enabled (e.g. -mfpu=neon-vfpv4)
+ for recipes with -Werror enabled and gcc-11, e.g. fuse-core, robot-localization,
+ prbt-ikfast-manipulator-plugin, rm-chassis-controllers in meta-ros1-noetic:
+
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:214,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h: In function 'Packet Eigen::internal::pload(const typename Eigen::internal::unpacket_traits<T>::type*) [with Packet = Eigen::internal::eigen_packet_wrapper<int, 2>; typename Eigen::internal::unpacket_traits<T>::type = signed char]':
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h:1671:9: error: 'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} from an array of 'const int8_t' {aka 'const signed char'} [-Werror=class-memaccess]
+ 1671 | memcpy(&res, from, sizeof(Packet4c));
+ | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:172,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h:159:8: note: 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} declared here
+ 159 | struct eigen_packet_wrapper
+ | ^~~~~~~~~~~~~~~~~~~~
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:214,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h: In function 'Packet Eigen::internal::ploadu(const typename Eigen::internal::unpacket_traits<T>::type*) [with Packet = Eigen::internal::eigen_packet_wrapper<int, 2>; typename Eigen::internal::unpacket_traits<T>::type = signed char]':
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h:1716:9: error: 'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} from an array of 'const int8_t' {aka 'const signed char'} [-Werror=class-memaccess]
+ 1716 | memcpy(&res, from, sizeof(Packet4c));
+ | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:172,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+ from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h:159:8: note: 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} declared here
+ 159 | struct eigen_packet_wrapper
+ | ^~~~~~~~~~~~~~~~~~~~
+cc1plus: all warnings being treated as errors
+
+---
+ Eigen/src/Core/GenericPacketMath.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h
+index 8f8f64f15..72234288e 100644
+--- a/Eigen/src/Core/GenericPacketMath.h
++++ b/Eigen/src/Core/GenericPacketMath.h
+@@ -162,7 +162,7 @@ struct eigen_packet_wrapper
+ {
+ EIGEN_ALWAYS_INLINE operator T&() { return m_val; }
+ EIGEN_ALWAYS_INLINE operator const T&() const { return m_val; }
+- EIGEN_ALWAYS_INLINE eigen_packet_wrapper() {}
++ EIGEN_ALWAYS_INLINE eigen_packet_wrapper() = default;
+ EIGEN_ALWAYS_INLINE eigen_packet_wrapper(const T &v) : m_val(v) {}
+ EIGEN_ALWAYS_INLINE eigen_packet_wrapper& operator=(const T &v) {
+ m_val = v;
+--
+2.17.1
+
diff --git a/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb b/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
deleted file mode 100644
index 31a42a9d66..0000000000
--- a/meta-oe/recipes-support/libeigen/libeigen_3.3.4.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-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"
-LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad"
-
-SRC_URI = "http://bitbucket.org/eigen/eigen/get/${PV}.tar.bz2;downloadfilename=${BP}.tar.bz2"
-SRC_URI[md5sum] = "a7aab9f758249b86c93221ad417fbe18"
-SRC_URI[sha256sum] = "dd254beb0bafc695d0f62ae1a222ff85b52dbaa3a16f76e781dce22d0d20a4a6"
-
-S = "${WORKDIR}/eigen-eigen-5a0156e40feb"
-
-inherit cmake
-
-FILES_${PN} = "${libdir}"
-FILES_${PN}-dev = "${includedir} ${datadir}/eigen3/cmake ${datadir}/cmake/Modules ${datadir}/pkgconfig"
-
-# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
-RDEPENDS_${PN}-dev = ""
-RRECOMMENDS_${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
diff --git a/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb b/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
new file mode 100644
index 0000000000..1cae76b422
--- /dev/null
+++ b/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
@@ -0,0 +1,28 @@
+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"
+LIC_FILES_CHKSUM = "file://COPYING.MPL2;md5=815ca599c9df247a0c7f619bab123dad \
+ file://COPYING.BSD;md5=2dd0510ee95e59ca28834b875bc96596 \
+ file://COPYING.GPL;md5=d32239bcb673463ab874e80d47fae504 \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c \
+ file://COPYING.MINPACK;md5=71d91b0f75ce79a75d3108a72bef8116 \
+"
+
+SRC_URI = "git://gitlab.com/libeigen/eigen.git;protocol=http;branch=3.4 \
+ file://0001-Default-eigen_packet_wrapper-constructor.patch \
+"
+
+SRCREV = "3147391d946bb4b6c68edd901f2add6ac1f31f8c"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+FILES:${PN}-dev += "${datadir}/eigen3/cmake"
+
+# ${PN} is empty so we need to tweak -dev and -dbg package dependencies
+RDEPENDS:${PN}-dev = ""
+RRECOMMENDS:${PN}-dbg = "${PN}-dev (= ${EXTENDPKGV})"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libestr/libestr_0.1.10.bb b/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
deleted file mode 100644
index abce8f3d33..0000000000
--- a/meta-oe/recipes-support/libestr/libestr_0.1.10.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "some essentials for string handling (and a bit more)"
-HOMEPAGE = "http://libestr.adiscon.com/"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0"
-
-SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz"
-
-SRC_URI[md5sum] = "f4c9165a23587e77f7efe65d676d5e8e"
-SRC_URI[sha256sum] = "bd655e126e750edd18544b88eb1568d200a424a0c23f665eb14bbece07ac703c"
-
-UPSTREAM_CHECK_URI = "http://libestr.adiscon.com/download/"
-
-inherit autotools
diff --git a/meta-oe/recipes-support/libestr/libestr_0.1.11.bb b/meta-oe/recipes-support/libestr/libestr_0.1.11.bb
new file mode 100644
index 0000000000..2ebf2757d7
--- /dev/null
+++ b/meta-oe/recipes-support/libestr/libestr_0.1.11.bb
@@ -0,0 +1,13 @@
+SUMMARY = "some essentials for string handling (and a bit more)"
+HOMEPAGE = "http://libestr.adiscon.com/"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d6c993486c18262afba4ca5bcb894d0"
+
+SRC_URI = "http://libestr.adiscon.com/files/download/${BP}.tar.gz"
+
+SRC_URI[md5sum] = "1f25a2332750d4bfacfb314235fedff0"
+SRC_URI[sha256sum] = "46632b2785ff4a231dcf241eeb0dcb5fc0c7d4da8ee49cf5687722cdbe8b2024"
+
+UPSTREAM_CHECK_URI = "http://libestr.adiscon.com/download/"
+
+inherit autotools
diff --git a/meta-oe/recipes-support/libfann/libfann_git.bb b/meta-oe/recipes-support/libfann/libfann_git.bb
new file mode 100644
index 0000000000..2f52a0f3bd
--- /dev/null
+++ b/meta-oe/recipes-support/libfann/libfann_git.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Fast Artificial Neural Network (FANN) Library"
+DESCRIPTION = "Fast Artificial Neural Network (FANN) Library is a free open source neural network library, which implements multilayer artificial neural networks in C with support for both fully connected and sparsely connected networks."
+HOMEPAGE = "https://github.com/libfann/fann"
+SECTION = "libs/devel"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=f14599a2f089f6ff8c97e2baa4e3d575"
+
+inherit cmake
+
+SRCREV ?= "7ec1fc7e5bd734f1d3c89b095e630e83c86b9be1"
+SRC_URI = "git://github.com/libfann/fann.git;branch=master;protocol=https \
+ "
+
+PV = "2.2.0+git${SRCPV}"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
diff --git a/meta-oe/recipes-support/libftdi/libftdi_1.4.bb b/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
deleted file mode 100644
index 98c5995a5f..0000000000
--- a/meta-oe/recipes-support/libftdi/libftdi_1.4.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "libftdi is a library to talk to FTDI chips.\
-FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\
-including the popular bitbang mode."
-HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/"
-SECTION = "libs"
-LICENSE = "LGPLv2.1 & GPLv2"
-LIC_FILES_CHKSUM= "\
- file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \
- file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
-"
-
-DEPENDS = "libusb1"
-
-SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
-SRC_URI[md5sum] = "0c09fb2bb19a57c839fa6845c6c780a2"
-SRC_URI[sha256sum] = "ec36fb49080f834690c24008328a5ef42d3cf584ef4060f3a35aa4681cb31b74"
-
-S = "${WORKDIR}/${BPN}1-${PV}"
-
-inherit cmake binconfig pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost"
-
-EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libftdi/libftdi_1.5.bb b/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
new file mode 100644
index 0000000000..7f0cfa237c
--- /dev/null
+++ b/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
@@ -0,0 +1,40 @@
+DESCRIPTION = "libftdi is a library to talk to FTDI chips.\
+FT232BM/245BM, FT2232C/D and FT232/245R using libusb,\
+including the popular bitbang mode."
+HOMEPAGE = "http://www.intra2net.com/en/developer/libftdi/"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only & GPL-2.0-only"
+LIC_FILES_CHKSUM= "\
+ file://COPYING.GPL;md5=751419260aa954499f7abaabaa882bbe \
+ file://COPYING.LIB;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
+"
+
+DEPENDS = "libusb1 python3 swig-native"
+
+SRC_URI = "http://www.intra2net.com/en/developer/${BPN}/download/${BPN}1-${PV}.tar.bz2"
+SRC_URI[sha256sum] = "7c7091e9c86196148bd41177b4590dccb1510bfe6cea5bf7407ff194482eb049"
+
+S = "${WORKDIR}/${BPN}1-${PV}"
+
+inherit cmake binconfig pkgconfig python3native
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[cpp-wrapper] = "-DFTDI_BUILD_CPP=on -DFTDIPP=on,-DFTDI_BUILD_CPP=off -DFTDIPP=off,boost"
+PACKAGECONFIG[ftdi-eeprom] = "-DFTDI_EEPROM=on,-DFTDI_EEPROM=off,libconfuse"
+
+EXTRA_OECMAKE = "-DSTATICLIBS=off -DEXAMPLES=off \
+ -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
+ -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/"
diff --git a/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb b/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb
deleted file mode 100644
index 8f580f9ff1..0000000000
--- a/meta-oe/recipes-support/libgit2/libgit2_0.24.3.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "the Git linkable library"
-HOMEPAGE = "http://libgit2.github.com/"
-LICENSE = "GPL-2.0-with-GCC-exception"
-LIC_FILES_CHKSUM = "file://COPYING;md5=34197a479f637beb9e09e56893f48bc2"
-
-DEPENDS = "curl openssl zlib libssh2"
-
-SRC_URI = "git://github.com/libgit2/libgit2.git;branch=maint/v0.24"
-SRCREV = "4cf1ec7cff28da8838a2f0a9fb330e312ea3f963"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-EXTRA_OECMAKE = "\
- -DTHREADSAFE=ON \
- -DBUILD_CLAR=OFF \
- -DSHA1_TYPE="builtin" \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DBUILD_EXAMPLES=OFF \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest b/meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest
new file mode 100644
index 0000000000..61b9b69fc6
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod-1.x/run-ptest
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+testbins="gpiod-test gpio-tools-test gpiod-cxx-test gpiod_py_test.py"
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd $ptestdir/tests
+
+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-2.x/gpio-tools-test-bats-modify.patch b/meta-oe/recipes-support/libgpiod/libgpiod-2.x/gpio-tools-test-bats-modify.patch
new file mode 100644
index 0000000000..0b2a5e6a8c
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod-2.x/gpio-tools-test-bats-modify.patch
@@ -0,0 +1,67 @@
+From 53f9670d6af1bd0745c1df9c469b269c72607b23 Mon Sep 17 00:00:00 2001
+From: Joe Slater <joe.slater@windriver.com>
+Date: Tue, 6 Jun 2023 08:04:27 -0700
+Subject: [PATCH] tools: tests: modify delays in toggle test
+
+The test "gpioset: toggle (continuous)" uses fixed delays to test
+toggling values. This is not reliable, so we switch to looking
+for transitions from one value to another.
+
+We wait for a transition up to 1.5 seconds.
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
+
+Upstream-Status: Accepted
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+---
+ tools/gpio-tools-test.bats | 21 ++++++++++++++++-----
+ 1 file changed, 16 insertions(+), 5 deletions(-)
+
+diff --git a/tools/gpio-tools-test.bats b/tools/gpio-tools-test.bats
+index c83ca7d..929c35a 100755
+--- a/tools/gpio-tools-test.bats
++++ b/tools/gpio-tools-test.bats
+@@ -141,6 +141,20 @@ gpiosim_check_value() {
+ [ "$VAL" = "$EXPECTED" ]
+ }
+
++gpiosim_wait_value() {
++ local OFFSET=$2
++ local EXPECTED=$3
++ local DEVNAME=${GPIOSIM_DEV_NAME[$1]}
++ local CHIPNAME=${GPIOSIM_CHIP_NAME[$1]}
++ local PORT=$GPIOSIM_SYSFS/$DEVNAME/$CHIPNAME/sim_gpio$OFFSET/value
++
++ for i in {1..15}; do
++ [ "$(<$PORT)" = "$EXPECTED" ] && return
++ sleep 0.1
++ done
++ return 1
++}
++
+ gpiosim_cleanup() {
+ for CHIP in ${!GPIOSIM_CHIP_NAME[@]}
+ do
+@@ -1567,15 +1581,12 @@ request_release_line() {
+ gpiosim_check_value sim0 4 0
+ gpiosim_check_value sim0 7 0
+
+- sleep 1
+-
+- gpiosim_check_value sim0 1 0
++ gpiosim_wait_value sim0 1 0
+ gpiosim_check_value sim0 4 1
+ gpiosim_check_value sim0 7 1
+
+- sleep 1
+
+- gpiosim_check_value sim0 1 1
++ gpiosim_wait_value sim0 1 1
+ gpiosim_check_value sim0 4 0
+ gpiosim_check_value sim0 7 0
+ }
+--
+2.25.1
+
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..9475f02535
--- /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 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
index cd77506235..cb19bc5fb8 100644
--- a/meta-oe/recipes-support/libgpiod/libgpiod.inc
+++ b/meta-oe/recipes-support/libgpiod/libgpiod.inc
@@ -1,21 +1,64 @@
SUMMARY = "C library and tools for interacting with the linux GPIO character device"
+AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
+RECIPE_MAINTAINER = "Bartosz Golaszewski <brgl@bgdev.pl>"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
+inherit autotools pkgconfig ptest
-SRC_URI = "https://www.kernel.org/pub/software/libs/libgpiod/${BP}.tar.xz"
+SRC_URI += " \
+ https://www.kernel.org/pub/software/libs/libgpiod/libgpiod-${PV}.tar.xz \
+ file://run-ptest \
+"
-inherit autotools pkgconfig
+PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
-# enable tools
-PACKAGECONFIG ?= "tools"
+# Enable cxx bindings by default.
+PACKAGECONFIG ?= " \
+ cxx \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \
+"
-PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,kmod udev"
-PACKAGECONFIG[tools] = "--enable-tools,--disable-tools,"
+# Always build tools - they don't have any additional
+# requirements over the library.
+EXTRA_OECONF = "--enable-tools"
-PACKAGES =+ " ${PN}-tools"
+DEPENDS += "autoconf-archive-native"
-FILES_${PN}-tools = "${bindir}/*"
+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"
+RDEPENDS:${PN}-ptest += "${@bb.utils.contains('PTEST_ENABLED', '1', 'bats', '', d)}"
+
+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.
+ 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
+}
-RRECOMMENDS_TOOLS = "${@bb.utils.contains('PACKAGECONFIG', 'tools', '${PN}-tools', '',d)}"
-RRECOMMENDS_${PN} += "${RRECOMMENDS_TOOLS}"
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb b/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
deleted file mode 100644
index 09fb65a082..0000000000
--- a/meta-oe/recipes-support/libgpiod/libgpiod_0.3.3.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require libgpiod.inc
-
-SRC_URI[md5sum] = "2aa1e1a80c3c919ae142ab9a55fb59ca"
-SRC_URI[sha256sum] = "b773e557af1a497f786825462a776b7bf90168e67ee0a5bc5d2473a5674dc38c"
diff --git a/meta-oe/recipes-support/libgpiod/libgpiod_1.1.bb b/meta-oe/recipes-support/libgpiod/libgpiod_1.1.bb
deleted file mode 100644
index ab0bc980da..0000000000
--- a/meta-oe/recipes-support/libgpiod/libgpiod_1.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require libgpiod.inc
-
-DEPENDS += "autoconf-archive-native"
-
-SRC_URI[md5sum] = "80237a047a9d653a14c5d71e5ce9d641"
-SRC_URI[sha256sum] = "9758466468a7ef3f5e30c182c1303abef6241e665cda4d82a64328a7474838c1"
-
-PACKAGECONFIG[cxx] = "--enable-bindings-cxx,--disable-bindings-cxx"
-
-PACKAGECONFIG[python3] = "--enable-bindings-python,--disable-bindings-python,python3,python3-core"
-inherit ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)}
-
-PACKAGES =+ "${PN}-python"
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
-RRECOMMENDS_PYTHON = "${@bb.utils.contains('PACKAGECONFIG', 'python3', '${PN}-python', '',d)}"
-RRECOMMENDS_${PN} += "${RRECOMMENDS_PYTHON}"
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..b28aa8e698
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod_1.6.4.bb
@@ -0,0 +1,39 @@
+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"
+
+do_install_ptest:append() {
+ 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.0.1.bb b/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb
new file mode 100644
index 0000000000..6958f2d841
--- /dev/null
+++ b/meta-oe/recipes-support/libgpiod/libgpiod_2.0.1.bb
@@ -0,0 +1,29 @@
+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 += "file://gpio-tools-test-bats-modify.patch"
+
+SRC_URI[sha256sum] = "b5367d28d045b36007a4ffd42cceda4c358737ef4f2ce22b0c1d05ec57a38392"
+
+# 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"
+
+RRECOMMENDS:${PN}-ptest += "kernel-module-gpio-sim"
+
+do_install_ptest:append() {
+ 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
new file mode 100644
index 0000000000..491b6a7a1d
--- /dev/null
+++ b/meta-oe/recipes-support/libgusb/libgusb_0.3.10.bb
@@ -0,0 +1,18 @@
+SUMMARY = "GUsb is a GObject wrapper for libusb1"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+DEPENDS = "glib-2.0 libusb"
+
+inherit meson gobject-introspection gtk-doc gettext vala
+
+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
new file mode 100644
index 0000000000..0947de196c
--- /dev/null
+++ b/meta-oe/recipes-support/libharu/libharu/0001-Install-static-lib-into-var-libdir-rather-than-hardc.patch
@@ -0,0 +1,30 @@
+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
new file mode 100644
index 0000000000..05f78ed735
--- /dev/null
+++ b/meta-oe/recipes-support/libharu/libharu/libharu-RELEASE_2_3_0_cmake.patch
@@ -0,0 +1,52 @@
+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
new file mode 100644
index 0000000000..7477c5f03b
--- /dev/null
+++ b/meta-oe/recipes-support/libharu/libharu_2.3.0.bb
@@ -0,0 +1,24 @@
+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/libiio/libiio_git.bb b/meta-oe/recipes-support/libiio/libiio_git.bb
index ba380ed306..7907dcfc24 100644
--- a/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -1,44 +1,83 @@
SUMMARY = "Library for interfacing with IIO devices"
HOMEPAGE = "https://wiki.analog.com/resources/tools-software/linux-software/libiio"
SECTION = "libs"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING.txt;md5=7c13b3376cea0ce68d2d2da0a1b3a72c"
-SRCREV = "fa82974d8bd1fded78e630ab71a7ded1b11d0e33"
-PV = "0.14+git${SRCPV}"
+SRCREV = "c4498c27761d04d4ac631ec59c1613bfed079da5"
+PV = "0.24"
-SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https"
+SRC_URI = "git://github.com/analogdevicesinc/libiio.git;protocol=https;branch=master"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
S = "${WORKDIR}/git"
-inherit cmake pythonnative systemd
+SETUPTOOLS_SETUP_PATH ?= "${B}/bindings/python/"
DEPENDS = " \
flex-native bison-native libaio \
- ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
"
+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"
+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_USB_BACKEND=OFF,libusb1,libxml2"
-PACKAGECONFIG[NETWORK_BACKEND] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+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"
+PACKAGES =+ "${PN}-iiod ${PN}-tests ${PN}-${PYTHON_PN}"
-RDEPENDS_${PN}-python = "${PN} python-ctypes python-stringold"
+# 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 = " \
+FILES:${PN}-iiod = " \
${sbindir}/iiod \
${systemd_system_unitdir}/iiod.service \
"
-FILES_${PN}-tests = "${bindir}"
-FILES_${PN}-python = "${PYTHON_SITEPACKAGES_DIR}"
+FILES:${PN}-tests = "${bindir}"
+FILES:${PN}-${PYTHON_PN} = "${PYTHON_SITEPACKAGES_DIR}"
SYSTEMD_PACKAGES = "${PN}-iiod"
-SYSTEMD_SERVICE_${PN}-iiod = "iiod.service"
+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.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/libjs/libjs-jquery-globalize_1.7.0.bb b/meta-oe/recipes-support/libjs/libjs-jquery-globalize_1.7.0.bb
new file mode 100644
index 0000000000..b6147ffeb2
--- /dev/null
+++ b/meta-oe/recipes-support/libjs/libjs-jquery-globalize_1.7.0.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A JavaScript library for internationalization and localization that leverages the official Unicode CLDR JSON data"
+SECTION = "console/network"
+HOMEPAGE = "https://github.com/globalizejs/globalize"
+LICENSE = "MIT"
+
+S = "${WORKDIR}/git"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4db68fb4d1d9986d736b35039f2ad9ea"
+
+SRCREV = "771061fb35f7fd8d7c2c37f5d5bb26115be382bc"
+SRC_URI = "git://github.com/globalizejs/globalize;protocol=https;nobranch=1"
+
+FILES:${PN} = "${datadir}/javascript/jquery-globalize"
+FILES:${PN}-doc += "${docdir}/${PN}"
+
+do_install() {
+ install -d ${D}${datadir}/javascript/jquery-globalize/
+ install -m 0644 ${S}/dist/*.js ${D}${datadir}/javascript/jquery-globalize/
+ install -m 0644 ${S}/dist/globalize/*.js ${D}${datadir}/javascript/jquery-globalize/
+
+ install -d ${D}${docdir}/${PN}/
+ install -m 0644 ${S}/LICENSE ${D}${docdir}/${PN}/
+}
diff --git a/meta-oe/recipes-support/libjs/libjs-jquery-icheck_1.0.3.bb b/meta-oe/recipes-support/libjs/libjs-jquery-icheck_1.0.3.bb
new file mode 100644
index 0000000000..31c3534b88
--- /dev/null
+++ b/meta-oe/recipes-support/libjs/libjs-jquery-icheck_1.0.3.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "Highly customizable checkboxes and radio buttons (jQuery & Zepto)"
+SECTION = "console/network"
+HOMEPAGE = "http://fronteed.com/iCheck"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://icheck.js;start_line=1;end_line=8;md5=404078d7de9f05ed64d364274f790055"
+
+SRC_URI = "git://github.com/fronteed/icheck.git;protocol=https;branch=${PV}"
+
+SRCREV = "c8c1af84e4b90b4aea31466aad09bf877619e943"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${datadir}/javascript/jquery-icheck/
+ install -m 0644 ${S}/icheck.js ${D}${datadir}/javascript/jquery-icheck/
+ install -m 0644 ${S}/icheck.min.js ${D}${datadir}/javascript/jquery-icheck/
+
+ install -d ${D}${datadir}/javascript/jquery-icheck/skins/
+ install -m 0644 ${S}/skins/all.css ${D}${datadir}/javascript/jquery-icheck/skins/
+
+ install -d ${D}${datadir}/javascript/jquery-icheck/skins/flat/
+ install -m 0644 ${S}/skins/flat/* ${D}${datadir}/javascript/jquery-icheck/skins/flat/
+
+ install -d ${D}${datadir}/javascript/jquery-icheck/skins/futurico/
+ install -m 0644 ${S}/skins/futurico/* ${D}${datadir}/javascript/jquery-icheck/skins/futurico/
+
+ install -d ${D}${datadir}/javascript/jquery-icheck/skins/line/
+ install -m 0644 ${S}/skins/line/* ${D}${datadir}/javascript/jquery-icheck/skins/line/
+
+ install -d ${D}${datadir}/javascript/jquery-icheck/skins/minimal/
+ install -m 0644 ${S}/skins/minimal/* ${D}${datadir}/javascript/jquery-icheck/skins/minimal/
+
+ install -d ${D}${datadir}/javascript/jquery-icheck/skins/polaris/
+ install -m 0644 ${S}/skins/polaris/* ${D}${datadir}/javascript/jquery-icheck/skins/polaris/
+
+ install -d ${D}${datadir}/javascript/jquery-icheck/skins/square/
+ install -m 0644 ${S}/skins/square/* ${D}${datadir}/javascript/jquery-icheck/skins/square/
+}
+
+FILES:${PN} += "${datadir}/javascript/jquery-icheck"
+
diff --git a/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb b/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
deleted file mode 100644
index 7f425cdeab..0000000000
--- a/meta-oe/recipes-support/libjs/libjs-jquery_1.7.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "JavaScript library for dynamic web applications"
-HOMEPAGE = "https://jquery.com/"
-LICENSE = "MIT | BSD | GPL-2"
-LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=5d1ec6f95e0a91d38e2f71de93ddb00e"
-
-SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/main/j/jquery/${BPN}_${PV}+debian-1ubuntu1~ubuntu12.04.1_all.deb;subdir=${BP}"
-SRC_URI[md5sum] = "fa511ab67f6e960c5b6d39a4d665e47f"
-SRC_URI[sha256sum] = "190ca18a71e35c8ab2ba73fe5be3c7cc601fe20b45709d801110818f1b602cc1"
-
-JQUERYDIR = "${datadir}/javascript/jquery"
-JQUERYDOCDIR = "${docdir}/libjs-jquery"
-
-do_install() {
- install -d -m 0755 ${D}${JQUERYDIR}
- install -m 0644 ${S}${JQUERYDIR}/jquery.js ${D}${JQUERYDIR}/
- install -m 0644 ${S}${JQUERYDIR}/jquery.min.js ${D}${JQUERYDIR}/
-
- ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.lite.js
- ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.pack.js
-
- install -d -m 0644 ${D}${JQUERYDOCDIR}
- install -m 0644 ${S}${JQUERYDOCDIR}/copyright ${D}${JQUERYDOCDIR}/
-}
-
-FILES_${PN} = "/usr/share/javascript/jquery"
diff --git a/meta-oe/recipes-support/libjs/libjs-jquery_3.3.1.bb b/meta-oe/recipes-support/libjs/libjs-jquery_3.3.1.bb
new file mode 100644
index 0000000000..9130b110a8
--- /dev/null
+++ b/meta-oe/recipes-support/libjs/libjs-jquery_3.3.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "JavaScript library for dynamic web applications"
+HOMEPAGE = "https://jquery.com/"
+LICENSE = "GPL-2.0-only | MIT"
+LIC_FILES_CHKSUM = "file://usr/share/doc/libjs-jquery/copyright;md5=04bfd6e5b918af29f2f79ce44527da62"
+
+SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/main/j/jquery/${BPN}_${PV}~dfsg-3_all.deb"
+
+SRC_URI[sha256sum] = "e04d192c2356e9d4c2b2c7d83fde9408713212b53c4d106e5b9e46c1a56da33b"
+
+JQUERYDIR = "${datadir}/javascript/jquery"
+JQUERYDOCDIR = "${docdir}/libjs-jquery"
+
+S = "${WORKDIR}"
+
+do_install() {
+ install -d -m 0755 ${D}${JQUERYDIR}
+ install -m 0644 ${S}${JQUERYDIR}/jquery.js ${D}${JQUERYDIR}/
+ install -m 0644 ${S}${JQUERYDIR}/jquery.min.js ${D}${JQUERYDIR}/
+
+ ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.lite.js
+ ln -sf jquery.min.js ${D}${JQUERYDIR}/jquery.pack.js
+
+ install -d -m 0644 ${D}${JQUERYDOCDIR}
+ install -m 0644 ${S}${JQUERYDOCDIR}/copyright ${D}${JQUERYDOCDIR}/
+}
+
+FILES:${PN} = "/usr/share/javascript/jquery"
diff --git a/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb b/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
index 4928b6c3a7..e639ce59d8 100644
--- a/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
+++ b/meta-oe/recipes-support/libjs/libjs-sizzle_1.10.18.bb
@@ -1,6 +1,6 @@
SUMMARY = "Pure-JavaScript CSS selector engine"
HOMEPAGE = "https://github.com/jquery/sizzle/wiki"
-LICENSE = "GPL-2.0 & MIT & AFL-2.1"
+LICENSE = "GPL-2.0-only & MIT & AFL-2.1"
LIC_FILES_CHKSUM = "file://MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9"
SRC_URI = "http://kr.archive.ubuntu.com/ubuntu/pool/universe/s/sizzle/sizzle_1.10.18.orig.tar.gz"
@@ -16,4 +16,4 @@ do_install() {
install -m 0644 ${SIZZLEDIR}/*.js ${D}/${datadir}/javascript/sizzle/
}
-FILES_${PN} = "${datadir}/javascript/sizzle/"
+FILES:${PN} = "${datadir}/javascript/sizzle/"
diff --git a/meta-oe/recipes-support/libmanette/libmanette_0.2.6.bb b/meta-oe/recipes-support/libmanette/libmanette_0.2.6.bb
new file mode 100644
index 0000000000..5509b0bb09
--- /dev/null
+++ b/meta-oe/recipes-support/libmanette/libmanette_0.2.6.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] = "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/libmicrohttpd/libmicrohttpd_0.9.59.bb b/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb
deleted file mode 100644
index adbf831dd4..0000000000
--- a/meta-oe/recipes-support/libmicrohttpd/libmicrohttpd_0.9.59.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "A small C library that is supposed to make it easy to run an HTTP server as part of another application"
-HOMEPAGE = "http://www.gnu.org/software/libmicrohttpd/"
-LICENSE = "LGPL-2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9331186f4f80db7da0e724bdd6554ee5"
-SECTION = "net"
-DEPENDS = "libgcrypt gnutls file"
-
-SRC_URI = "http://ftp.gnu.org/gnu/libmicrohttpd/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "8ab5123535549195aff19e91b4e49f48"
-SRC_URI[sha256sum] = "9b9ccd7d0b11b0e179f1f58dc2caa3e0c62c8609e1e1dc7dcaadf941b67d923c"
-
-inherit autotools lib_package pkgconfig gettext
-
-CFLAGS += "-pthread -D_REENTRANT"
-
-EXTRA_OECONF += "--disable-static --with-gnutls=${STAGING_LIBDIR}/../"
-
-PACKAGECONFIG ?= "curl"
-PACKAGECONFIG_append_class-target = "\
- ${@bb.utils.filter('DISTRO_FEATURES', 'largefile', d)} \
-"
-PACKAGECONFIG[largefile] = "--enable-largefile,--disable-largefile,,"
-PACKAGECONFIG[curl] = "--enable-curl,--disable-curl,curl,"
-
-do_compile_append() {
- sed -i s:-L${STAGING_LIBDIR}::g libmicrohttpd.pc
-}
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
new file mode 100644
index 0000000000..717e3f1f8b
--- /dev/null
+++ b/meta-oe/recipes-support/libmimetic/libmimetic/0001-libmimetic-Removing-test-directory-from-the-Makefile.patch
@@ -0,0 +1,69 @@
+From 64fd25af5fea3a3c9c12122a2fd0fab3cd420f72 Mon Sep 17 00:00:00 2001
+From: asmitk01-in <asmitk01@in.ibm.com>
+Date: Wed, 5 Feb 2020 00:14:42 -0600
+Subject: [PATCH] libmimetic: Removing test directory from the Makefile
+
+The test directory is removed as there were errors (relocation errors)
+since the shared object files of libc++ and libc were not taken from the
+sysroot path but from the system's library path where the required
+version of the .so is not present.
+
+The files 'mimetic/codec/other_codecs.h' and 'mimetic/contenttype.cxx'
+contains changes that resolves errors when compiling on target system
+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 ++++
+ 3 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 634bd4c..c7cbae7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+ MAINTAINERCLEANFILES = Makefile Makefile.in config.cache
+ EXTRA_DIST=LICENSE m4
+-SUBDIRS = mimetic doc examples test win32
++SUBDIRS = mimetic doc examples win32
+ INCLUDES=-I$(top_srcdir)
+ ACLOCAL_AMFLAGS=-I m4
+
+diff --git a/mimetic/codec/other_codecs.h b/mimetic/codec/other_codecs.h
+index c4ccf3f..0fc88fd 100644
+--- a/mimetic/codec/other_codecs.h
++++ b/mimetic/codec/other_codecs.h
+@@ -8,6 +8,10 @@
+ #define _MIMETIC_CODEC_OTHER_CODECS_H_
+ #include <mimetic/codec/codec_base.h>
+
++#ifndef __GLIBC__
++ typedef unsigned int uint;
++#endif
++
+ namespace mimetic
+ {
+
+diff --git a/mimetic/contenttype.cxx b/mimetic/contenttype.cxx
+index 522082d..0577d44 100644
+--- a/mimetic/contenttype.cxx
++++ b/mimetic/contenttype.cxx
+@@ -13,6 +13,10 @@
+ #include <mimetic/tokenizer.h>
+ #include <mimetic/utils.h>
+
++#ifndef __GLIBC__
++ typedef unsigned int uint;
++#endif
++
+ namespace mimetic
+ {
+ using namespace std;
+--
+2.9.3
+
diff --git a/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch b/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch
new file mode 100644
index 0000000000..c7c8d62aaa
--- /dev/null
+++ b/meta-oe/recipes-support/libmimetic/libmimetic/0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch
@@ -0,0 +1,49 @@
+From f8ab2b1aaa37f6ba9d527a99cb37b6ac2171e122 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 14 Feb 2020 17:03:12 -0800
+Subject: [PATCH] mimetic: Check for MMAP_FAILED return from mmap()
+
+Avoids using greater than zero comparision on pointers
+
+Fixes
+mimetic/os/mmfile.cxx:60:14: error: ordered comparison between pointer and zero ('char *' and 'int')
+
+if(m_beg > 0)
+~~~~ ^ ~
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ mimetic/os/mmfile.cxx | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+diff --git a/mimetic/os/mmfile.cxx b/mimetic/os/mmfile.cxx
+index dfc95b7..ed4ff55 100644
+--- a/mimetic/os/mmfile.cxx
++++ b/mimetic/os/mmfile.cxx
+@@ -57,15 +57,13 @@ bool MMFile::open(int mode)
+ bool MMFile::map()
+ {
+ m_beg = (char*) mmap(0, m_st.st_size, PROT_READ, MAP_SHARED,m_fd,0);
+- if(m_beg > 0)
+- {
+- m_end = m_beg + m_st.st_size;
+- #if HAVE_MADVISE
+- madvise(m_beg, m_st.st_size, MADV_SEQUENTIAL);
+- #endif
+- return true;
+- }
+- return false;
++ if(m_beg == MAP_FAILED)
++ return false;
++ m_end = m_beg + m_st.st_size;
++ #if HAVE_MADVISE
++ madvise(m_beg, m_st.st_size, MADV_SEQUENTIAL);
++ #endif
++ return true;
+ }
+
+ MMFile::~MMFile()
+--
+2.25.0
+
diff --git a/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
new file mode 100644
index 0000000000..06536ca70f
--- /dev/null
+++ b/meta-oe/recipes-support/libmimetic/libmimetic_0.9.8.bb
@@ -0,0 +1,24 @@
+# Released under the MIT license.
+
+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"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b49da7df0ca479ef01ff7f2d799eabee"
+
+SRCREV = "50486af99b4f9b35522d7b3de40b6ce107505279"
+SRC_URI += "git://github.com/LadislavSopko/mimetic/;branch=master;protocol=https \
+ file://0001-libmimetic-Removing-test-directory-from-the-Makefile.patch \
+ file://0001-mimetic-Check-for-MMAP_FAILED-return-from-mmap.patch \
+ "
+
+UPSTREAM_CHECK_COMMITS = "1"
+
+S = "${WORKDIR}/git"
+
+CXXFLAGS += "-Wno-narrowing -std=c++14"
+
+inherit autotools
diff --git a/meta-oe/recipes-support/libmxml/libmxml/0001-remove-rpath-from-configure.in-and-configure.patch b/meta-oe/recipes-support/libmxml/libmxml/0001-remove-rpath-from-configure.in-and-configure.patch
deleted file mode 100644
index cab203e7ff..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml/0001-remove-rpath-from-configure.in-and-configure.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From bcf5391c0c7edd85ee0c956be65cf4eeeea0a82a Mon Sep 17 00:00:00 2001
-From: Fathi Boudra <fboudra@free.fr>
-Date: Fri, 1 Jun 2018 14:16:52 +0200
-Subject: [PATCH 1/7] remove rpath from configure.in and configure
-
-This patch was taken from Debian's libmxml 2.11-1 source:
- 01_remove_rpath.diff
----
- configure.ac | 11 ++++-------
- 1 file changed, 4 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 47a0d41..6b3bbfa 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -184,8 +184,7 @@ if test x$enable_shared != xno; then
- AC_MSG_RESULT(yes)
- LIBMXML="libmxml.so.1.6"
- DSO="\$(CC)"
-- DSOFLAGS="$DSOFLAGS -Wl,-h,libmxml.so.1 -G -R\$(libdir) \$(OPTIM)"
-- LDFLAGS="$LDFLAGS -R\$(libdir)"
-+ DSOFLAGS="$DSOFLAGS -Wl,-h,libmxml.so.1 -G \$(OPTIM)"
- ;;
-
- hp-ux)
-@@ -200,23 +199,21 @@ if test x$enable_shared != xno; then
- AC_MSG_RESULT(yes)
- LIBMXML="libmxml.so.1.6"
- DSO="\$(CC)"
-- DSOFLAGS="$DSOFLAGS -Wl,-rpath,\$(libdir),-set_version,sgi1.0,-soname,libmxml.so.1 -shared \$(OPTIM)"
-+ DSOFLAGS="$DSOFLAGS -Wl,-set_version,sgi1.0,-soname,libmxml.so.1 -shared \$(OPTIM)"
- ;;
-
- osf | linux* | gnu)
- AC_MSG_RESULT(yes)
- LIBMXML="libmxml.so.1.6"
- DSO="\$(CC)"
-- DSOFLAGS="$DSOFLAGS -Wl,-soname,libmxml.so.1,-rpath,\$(libdir) -shared \$(OPTIM)"
-- LDFLAGS="$LDFLAGS -Wl,-rpath,\$(libdir)"
-+ DSOFLAGS="$DSOFLAGS -Wl,-soname,libmxml.so.1 -shared \$(OPTIM)"
- ;;
-
- *bsd)
- AC_MSG_RESULT(yes)
- LIBMXML="libmxml.so.1.6"
- DSO="\$(CC)"
-- DSOFLAGS="$DSOFLAGS -Wl,-soname,libmxml.so.1,-R\$(libdir) -shared \$(OPTIM)"
-- LDFLAGS="$LDFLAGS -Wl,-R\$(libdir)"
-+ DSOFLAGS="$DSOFLAGS -Wl,-soname,libmxml.so.1 -shared \$(OPTIM)"
- ;;
-
- darwin)
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/libmxml/libmxml/0002-link-libmxml-with-pthread.patch b/meta-oe/recipes-support/libmxml/libmxml/0002-link-libmxml-with-pthread.patch
deleted file mode 100644
index ec9d170bb4..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml/0002-link-libmxml-with-pthread.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5e415d207465f41ae821235eb64c94916b515260 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Gon=C3=A9ri=20Le=20Bouder?= <goneri@rulezlan.org>
-Date: Fri, 1 Jun 2018 14:20:10 +0200
-Subject: [PATCH 2/7] link libmxml with pthread
-
-This patch was taken from Debian's libmxml 2.11-1 source:
- 02_link_with_pthread.diff
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index eef14fe..70c322c 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -271,7 +271,7 @@ mxml1.dll: $(LIBOBJS)
-
- libmxml.so.1.6: $(LIBOBJS)
- echo Creating $@...
-- $(DSO) $(DSOFLAGS) -o libmxml.so.1.6 $(LIBOBJS)
-+ $(DSO) $(DSOFLAGS) -o libmxml.so.1.6 $(LIBOBJS) $(LIBS)
- $(RM) libmxml.so libmxml.so.1
- $(LN) libmxml.so.1.6 libmxml.so
- $(LN) libmxml.so.1.6 libmxml.so.1
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/libmxml/libmxml/0003-add-missing-LDFLAGS-to-Makefile.patch b/meta-oe/recipes-support/libmxml/libmxml/0003-add-missing-LDFLAGS-to-Makefile.patch
deleted file mode 100644
index 33b1d0893d..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml/0003-add-missing-LDFLAGS-to-Makefile.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 249c34c57ecd9bb49f8e3b420bde651c4bcad36d Mon Sep 17 00:00:00 2001
-From: Luis Uribe <acme@eviled.org>
-Date: Fri, 1 Jun 2018 14:21:49 +0200
-Subject: [PATCH 3/7] add missing $(LDFLAGS) to Makefile
-
-This patch was taken from Debian's libmxml 2.11-1 source:
- 03_link_ldflags.diff
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 70c322c..fd48565 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -271,7 +271,7 @@ mxml1.dll: $(LIBOBJS)
-
- libmxml.so.1.6: $(LIBOBJS)
- echo Creating $@...
-- $(DSO) $(DSOFLAGS) -o libmxml.so.1.6 $(LIBOBJS) $(LIBS)
-+ $(DSO) $(DSOFLAGS) -o libmxml.so.1.6 $(LIBOBJS) $(LIBS) $(LDFLAGS)
- $(RM) libmxml.so libmxml.so.1
- $(LN) libmxml.so.1.6 libmxml.so
- $(LN) libmxml.so.1.6 libmxml.so.1
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/libmxml/libmxml/0004-mxml-string-compile-headers.patch b/meta-oe/recipes-support/libmxml/libmxml/0004-mxml-string-compile-headers.patch
deleted file mode 100644
index 0fd5422a74..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml/0004-mxml-string-compile-headers.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From e0c02526840d26758e4bcfd84dd5f7cda3cfbe1a Mon Sep 17 00:00:00 2001
-From: Richard Leitner <richard.leitner@skidata.com>
-Date: Fri, 1 Jun 2018 14:23:40 +0200
-Subject: [PATCH 4/7] mxml-string: compile headers
-
-This patch was taken from Debian's libmxml 2.11-1 source:
- 04_compile_headers.diff
----
- mxml-string.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/mxml-string.c b/mxml-string.c
-index 2495753..9bdb4c3 100644
---- a/mxml-string.c
-+++ b/mxml-string.c
-@@ -17,7 +17,8 @@
- */
-
- #include "config.h"
--
-+#include <stdlib.h>
-+#include <stdarg.h>
-
- /*
- * The va_copy macro is part of C99, but many compilers don't implement it.
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/libmxml/libmxml/0005-several-autoheader-define-fixes.patch b/meta-oe/recipes-support/libmxml/libmxml/0005-several-autoheader-define-fixes.patch
deleted file mode 100644
index ba65415033..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml/0005-several-autoheader-define-fixes.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From f77da2043c0840412f1a5bc89d04a8f595cc2027 Mon Sep 17 00:00:00 2001
-From: Richard Leitner <richard.leitner@skidata.com>
-Date: Fri, 1 Jun 2018 14:26:15 +0200
-Subject: [PATCH 5/7] several autoheader define fixes
-
-This patch was taken from Debian's libmxml 2.11-1 source:
- 06_autoheader-fixes.patch
----
- configure.ac | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 6b3bbfa..47063dc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -28,7 +28,7 @@ AC_CONFIG_HEADER(config.h)
- dnl Version number...
- VERSION="AC_PACKAGE_VERSION"
- AC_SUBST(VERSION)
--AC_DEFINE_UNQUOTED(MXML_VERSION, "Mini-XML v$VERSION")
-+AC_DEFINE_UNQUOTED(MXML_VERSION, "Mini-XML v$VERSION", "MXML VERSION")
-
- dnl Clear default debugging options and set normal optimization by
- dnl default unless the user asks for debugging specifically.
-@@ -113,7 +113,7 @@ AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
- fi])
-
- if test $ac_cv_c_long_long = yes; then
-- AC_DEFINE(HAVE_LONG_LONG)
-+ AC_DEFINE(HAVE_LONG_LONG, 1, "long long int support")
- fi
-
- dnl EPUB support (via libz and zipc)
-@@ -122,7 +122,7 @@ AC_SUBST(MXML_EPUB)
- ZIPC=""
- AC_SUBST(ZIPC)
- AC_SEARCH_LIBS(gzgets,z,[
-- AC_DEFINE(HAVE_ZLIB_H)
-+ AC_DEFINE(HAVE_ZLIB_H, 1, "<zlib.h> present")
- ZIPC="zipc.o"
- MXML_EPUB="mxml.epub"
- LIBS="-lz $LIBS"])
-@@ -135,7 +135,7 @@ PTHREAD_FLAGS=""
- PTHREAD_LIBS=""
-
- if test "x$enable_threads" != xno; then
-- AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H))
-+ AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H, 1, "pthreads headers available"))
-
- if test x$ac_cv_header_pthread_h = xyes; then
- dnl Check various threading options for the platforms we support
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/libmxml/libmxml/0006-several-compile-fixes.patch b/meta-oe/recipes-support/libmxml/libmxml/0006-several-compile-fixes.patch
deleted file mode 100644
index e6c3cba1ac..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml/0006-several-compile-fixes.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 2477dbea92d4111fb70beaf975bce0eeee9ac8e5 Mon Sep 17 00:00:00 2001
-From: Richard Leitner <richard.leitner@skidata.com>
-Date: Fri, 1 Jun 2018 14:28:05 +0200
-Subject: [PATCH 6/7] several compile fixes
-
-This patch was taken from Debian's libmxml 2.11-1 source:
- 07_compile_fixes.patch
----
- mxml.h | 2 +-
- mxmldoc.c | 10 +++++++++-
- 2 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/mxml.h b/mxml.h
-index 5ad96b8..e78b8e9 100644
---- a/mxml.h
-+++ b/mxml.h
-@@ -28,7 +28,7 @@
- # include <string.h>
- # include <ctype.h>
- # include <errno.h>
--
-+# include <stdarg.h>
-
- /*
- * Constants...
-diff --git a/mxmldoc.c b/mxmldoc.c
-index de5c8a7..bbdf758 100644
---- a/mxmldoc.c
-+++ b/mxmldoc.c
-@@ -37,7 +37,15 @@ extern char **environ;
- # include "zipc.h"
- #endif /* HAVE_ZLIB_H */
-
--
-+# ifndef HAVE_STRLCPY
-+extern size_t _mxml_strlcpy(char *, const char *, size_t);
-+# define strlcpy _mxml_strlcpy
-+# endif /* !HAVE_STRLCPY */
-+
-+#ifndef HAVE_STRLCAT
-+extern size_t _mxml_strlcat( char *, const char *, size_t);
-+#define strlcat _mxml_strlcat
-+#endif
- /*
- * This program scans source and header files and produces public API
- * documentation for code that conforms to the CUPS Configuration
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/libmxml/libmxml/0007-Makefile-require-libmxml.a-for-its-installation.patch b/meta-oe/recipes-support/libmxml/libmxml/0007-Makefile-require-libmxml.a-for-its-installation.patch
deleted file mode 100644
index 14c4ac0fae..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml/0007-Makefile-require-libmxml.a-for-its-installation.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 5d58c984e1a1173def37a99267afd78757998642 Mon Sep 17 00:00:00 2001
-From: Richard Leitner <richard.leitner@skidata.com>
-Date: Mon, 4 Jun 2018 11:23:36 +0200
-Subject: [PATCH 7/7] Makefile: require libmxml.a for its installation
-
-Signed-off-by: Richard Leitner <richard.leitner@skidata.com>
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index fd48565..155a17a 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -162,7 +162,7 @@ install: $(TARGETS) install-$(LIBMXML) install-libmxml.a
- $(INSTALL_DIR) $(BUILDROOT)$(mandir)/man3
- $(INSTALL_MAN) doc/mxml.man $(BUILDROOT)$(mandir)/man3/mxml.3
-
--install-libmxml.a:
-+install-libmxml.a: libmxml.a
- echo Installing libmxml.a to $(BUILDROOT)$(libdir)...
- $(INSTALL_DIR) $(BUILDROOT)$(libdir)
- $(INSTALL_LIB) libmxml.a $(BUILDROOT)$(libdir)
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/libmxml/libmxml_2.11.bb b/meta-oe/recipes-support/libmxml/libmxml_2.11.bb
deleted file mode 100644
index 384e056d1d..0000000000
--- a/meta-oe/recipes-support/libmxml/libmxml_2.11.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "Tiny XML Library"
-LICENSE = "Mini-XML-License"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6ba38606d63bb042c5d8cfee182e120"
-HOMEPAGE = "https://www.msweet.org/mxml/"
-BUGTRACKER = "https://github.com/michaelrsweet/mxml/issues"
-
-SRC_URI = " \
- https://github.com/michaelrsweet/mxml/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
- file://0001-remove-rpath-from-configure.in-and-configure.patch \
- file://0002-link-libmxml-with-pthread.patch \
- file://0003-add-missing-LDFLAGS-to-Makefile.patch \
- file://0004-mxml-string-compile-headers.patch \
- file://0005-several-autoheader-define-fixes.patch \
- file://0006-several-compile-fixes.patch \
- file://0007-Makefile-require-libmxml.a-for-its-installation.patch \
-"
-
-SRC_URI[md5sum] = "b9b49af414a2f0a8b13636d9635c3b6a"
-SRC_URI[sha256sum] = "7d3dfe661e50908fe41aef9b97ba6f7f158cab5208515c6be9f5bc9daf032329"
-
-inherit autotools-brokensep gettext
-
-S = "${WORKDIR}/mxml-${PV}"
-
-EXTRA_OEMAKE = "DSTROOT=${D}"
-
-PACKAGES += " ${PN}-bin "
-FILES_${PN} = "${libdir}/*"
-FILES_${PN}-bin = "${bindir}/*"
diff --git a/meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb b/meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb
new file mode 100644
index 0000000000..b81050b25a
--- /dev/null
+++ b/meta-oe/recipes-support/libmxml/libmxml_3.3.1.bb
@@ -0,0 +1,33 @@
+DESCRIPTION = "Tiny XML Library"
+LICENSE = "Apache-2.0"
+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"
+SRCREV = "fd47c7d115191c8a6bce2c781ffee41e179530f2"
+S = "${WORKDIR}/git"
+
+inherit autotools
+
+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"
+
+do_configure:prepend() {
+ # Respect optimization CFLAGS specified by OE.
+ sed -e 's/-Os -g//' -i ${S}/configure.ac
+
+ # Enable verbose compilation output. This is required for extra QA checks to work.
+ sed -e '/.SILENT:/d' -i ${S}/Makefile.in
+}
+
+do_install() {
+ # Package uses DSTROOT instread of standard DESTDIR to specify install location.
+ oe_runmake install DSTROOT=${D}
+}
diff --git a/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch b/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch
deleted file mode 100644
index a43b4b176c..0000000000
--- a/meta-oe/recipes-support/libnih/libnih-1.0.3/0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From f1b9992caf9910f9f7afae401045e42572cc84ff Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 1 Apr 2017 08:50:35 -0700
-Subject: [PATCH] signal.c: SIGCLD and SIGCHILD are same on sytem V systems
-
-Musl drops the SIGCLD legacy
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- nih/signal.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/nih/signal.c b/nih/signal.c
-index a241df9..691c8e6 100644
---- a/nih/signal.c
-+++ b/nih/signal.c
-@@ -87,7 +87,7 @@ static const SignalName signal_names[] = {
- { SIGSTKFLT, "STKFLT" },
- #endif
- { SIGCHLD, "CHLD" },
-- { SIGCLD, "CLD" },
-+ { SIGCHLD, "CLD" },
- { SIGCONT, "CONT" },
- { SIGSTOP, "STOP" },
- { SIGTSTP, "TSTP" },
---
-2.12.1
-
diff --git a/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch b/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch
deleted file mode 100644
index 5d125c8514..0000000000
--- a/meta-oe/recipes-support/libnih/libnih-1.0.3/libnih_1.0.3-4ubuntu16.patch
+++ /dev/null
@@ -1,3593 +0,0 @@
---- libnih-1.0.3.orig/ChangeLog
-+++ libnih-1.0.3/ChangeLog
-@@ -1,3 +1,84 @@
-+2013-03-13 Steve Langasek <steve.langasek@ubuntu.com>
-+
-+ * nih/watch.c (nih_watch_walk_filter): New NihFileFilter function
-+ passed to nih_dir_walk_scan() to ensure the nih_watch_new() filter
-+ function is passed the NihWatch data rather than the data passed to
-+ the nih_dir_walk() NihFileVisitor function (LP: #776532).
-+
-+ * nih/tests/test_watch.c (test_new): New test "with filter and data"
-+ to ensure filter is passed correct value.
-+
-+2013-02-28 James Hunt <james.hunt@ubuntu.com>
-+
-+ * Removal of gcc 'malloc' function attribute resulting from
-+ a clarification in its description which makes its use invalid.
-+ (LP: #1123588).
-+
-+2013-02-05 James Hunt <james.hunt@ubuntu.com>
-+
-+ * nih/logging.c: nih_log_abort_message(): Remove erroneous check
-+ left over from use of __abort_msg weak symbol.
-+ * nih/tests/test_logging.c: Remove unecessary check on whether
-+ __nih_abort_msg has an address.
-+
-+2012-12-13 Stéphane Graber <stgraber@ubuntu.com>
-+
-+ * nih-dbus-tool/type.c, nih-dbus-tool/marshal.c: Update dbus code
-+ generator to allow for empty lists for type 'as'. This drops the
-+ != NULL check for NULL terminated arrays and moves the iteration
-+ loop inside an 'if' statement.
-+
-+2012-12-11 Dmitrijs Ledkovs <dmitrijs.ledkovs@canonical.com>
-+
-+ * nih/file.c (nih_dir_walk_scan): Fallback to lstat, if the
-+ non-portable dirent.d_type is not available (LP: #672643) (Closes:
-+ #695604).
-+
-+2012-12-10 Petr Lautrbach <plautrba@redhat.com>
-+
-+ * nih/tests/test_file.c: don't use dirent.d_type (not portable)
-+
-+2012-10-25 James Hunt <james.hunt@ubuntu.com>
-+
-+ * nih/logging.c: Use our own __nih_abort_msg rather than the
-+ (e)glibc private symbol __abort_msg to avoid upgrade issues (LP: #997359).
-+ * nih/tests/test_logging.c: Update tests for __nih_abort_msg.
-+
-+2011-08-31 James Hunt <james.hunt@ubuntu.com>
-+
-+ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
-+ (test_unix_fd_to_str): Sanity check value before invoking strchr in
-+ case it returns address of null (which would give a misleading test
-+ pass).
-+ * nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
-+ (test_unix_fd_to_str, test_unix_fd_to_str_sync): Sanity check value
-+ before invoking strchr in case it returns address of null (which would
-+ give a misleading test pass).
-+ * nih/config.c (): nih_config_block_end: Add check to ensure strchr()
-+ doesn't return address of null since this would result in a misleading
-+ return value of TRUE.
-+
-+ * nih/string.c (nih_str_split): Fixes to avoid over-running
-+ input string and also returning an empty string array entry
-+ when repeat is true (LP: #834813).
-+ * nih/tests/test_string.c (test_str_split): Added a lot of new
-+ tests for nih_str_split().
-+
-+2011-08-26 James Hunt <james.hunt@ubuntu.com>
-+
-+ * nih/io.c (nih_io_select_fds): Ensure number of fds being managed
-+ is within limits.
-+
-+ * nih/config.c, nih/error.h, nih/io.c, nih/test_files.h: Correct
-+ typos in comments.
-+
-+2011-06-20 James Hunt <james.hunt@ubuntu.com>
-+
-+ * nih/watch.c (nih_watch_handle): Handle non-directory watches;
-+ previously a file watch resulted in an invalid file path ending in
-+ a single slash (LP:#777097).
-+ * nih/tests/test_watch.c: Added explicit test for watch on a file.
-+
- 2010-12-23 Scott James Remnant <scott@netsplit.com>
-
- * NEWS: Release 1.0.3
---- libnih-1.0.3.orig/nih/watch.c
-+++ libnih-1.0.3/nih/watch.c
-@@ -2,8 +2,8 @@
- *
- * watch.c - watching of files and directories with inotify
- *
-- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
-- * Copyright © 2009 Canonical Ltd.
-+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
-+ * Copyright © 2011 Canonical Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2, as
-@@ -71,6 +71,9 @@
- uint32_t events, uint32_t cookie,
- const char *name,
- int *caught_free);
-+static int nih_watch_walk_filter (void *data, const char *path,
-+ int is_dir)
-+ __attribute__ ((warn_unused_result));
-
-
- /**
-@@ -91,7 +94,7 @@
- * sub-directories will be automatically watched.
- *
- * Additionally, the set of files and directories within @path can be
-- * limited by passing a @filter function which will recieve the paths and
-+ * limited by passing a @filter function which will receive the paths and
- * may return TRUE to indicate that the path received should not be watched.
- *
- * When a file is created within @path, or moved from outside this location
-@@ -104,7 +107,7 @@
- * files that exist under @path when the watch is first added. This only
- * occurs if the watch can be added.
- *
-- * This is a very high level wrapped around the inotify API; lower levels
-+ * This is a very high level wrapper around the inotify API; lower levels
- * can be obtained using the inotify API itself and some of the helper
- * functions used by this one.
- *
-@@ -185,6 +188,35 @@
- }
-
-
-+ /**
-+ * nih_watch_walk_filter:
-+ * @data: NihWatch,
-+ * @path: path to file,
-+ * @is_dir: TRUE if @path is a directory.
-+ *
-+ * Callback function for nih_dir_walk(), used by nih_watch_add() to wrap
-+ * the user-specified NihFileFilter (watch->filter) with a filter that can
-+ * take watch itself as an argument.
-+ *
-+ * Returns: TRUE if the path should be ignored, FALSE otherwise.
-+ **/
-+static int
-+nih_watch_walk_filter (void *data, const char *path, int is_dir)
-+{
-+ NihWatch *watch;
-+
-+ watch = (NihWatch *)data;
-+
-+ nih_assert (watch);
-+
-+ /* No filter, so accept all files */
-+ if (! watch->filter)
-+ return FALSE;
-+
-+ return watch->filter (watch->data, path, is_dir);
-+}
-+
-+
- /**
- * nih_watch_handle_by_wd:
- * @watch: watch to search,
-@@ -295,7 +327,7 @@
- * one; errors within the walk are warned automatically, so if this
- * fails, it means we literally couldn't watch the top-level.
- */
-- if (subdirs && (nih_dir_walk (path, watch->filter,
-+ if (subdirs && (nih_dir_walk (path, nih_watch_walk_filter,
- (NihFileVisitor)nih_watch_add_visitor,
- NULL, watch) < 0)) {
- NihError *err;
-@@ -494,12 +526,21 @@
- return;
- }
-
-+ /* Every other event must come with a name */
-+ if (name && *name) {
-
-- /* Every other event must come with a name. */
-- if ((! name) || strchr (name, '/'))
-- return;
-+ /* If name refers to a directory, there should be no associated
-+ * path - just the name of the path element.
-+ */
-+ if (strchr (name, '/'))
-+ return;
-
-- path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name));
-+ /* Event occured for file within a watched directory */
-+ path = NIH_MUST (nih_sprintf (NULL, "%s/%s", handle->path, name));
-+ } else {
-+ /* File event occured */
-+ path = NIH_MUST (nih_strdup (NULL, handle->path));
-+ }
-
- /* Check the filter */
- if (watch->filter && watch->filter (watch->data, path,
---- libnih-1.0.3.orig/nih/hash.h
-+++ libnih-1.0.3/nih/hash.h
-@@ -141,7 +141,7 @@
- * @hash: hash table to iterate,
- * @iter: name of iterator variable.
- *
-- * Expans to nested for statements that iterate over each entry in each
-+ * Expands to nested for statements that iterate over each entry in each
- * bin of @hash, except for the bin head pointer, setting @iter to each
- * entry for the block within the loop. A variable named _@iter_i is used
- * to iterate the hash bins.
-@@ -203,7 +203,7 @@
- NihKeyFunction key_function,
- NihHashFunction hash_function,
- NihCmpFunction cmp_function)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NihList * nih_hash_add (NihHash *hash, NihList *entry);
- NihList * nih_hash_add_unique (NihHash *hash, NihList *entry);
---- libnih-1.0.3.orig/nih/main.h
-+++ libnih-1.0.3/nih/main.h
-@@ -138,7 +138,7 @@
-
- NihMainLoopFunc *nih_main_loop_add_func (const void *parent,
- NihMainLoopCb callback, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- void nih_main_term_signal (void *data, NihSignal *signal);
-
---- libnih-1.0.3.orig/nih/command.h
-+++ libnih-1.0.3/nih/command.h
-@@ -123,7 +123,7 @@
-
- NihCommand *nih_command_join (const void *parent,
- const NihCommand *a, const NihCommand *b)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih/config.h
-+++ libnih-1.0.3/nih/config.h
-@@ -140,10 +140,10 @@
- char * nih_config_next_token (const void *parent, const char *file,
- size_t len, size_t *pos, size_t *lineno,
- const char *delim, int dequote)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * nih_config_next_arg (const void *parent, const char *file,
- size_t len, size_t *pos, size_t *lineno)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- void nih_config_next_line (const char *file, size_t len,
- size_t *pos, size_t *lineno);
-
-@@ -155,15 +155,15 @@
-
- char ** nih_config_parse_args (const void *parent, const char *file,
- size_t len, size_t *pos, size_t *lineno)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * nih_config_parse_command (const void *parent, const char *file,
- size_t len, size_t *pos, size_t *lineno)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * nih_config_parse_block (const void *parent, const char *file,
- size_t len, size_t *pos, size_t *lineno,
- const char *type)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- int nih_config_skip_block (const char *file, size_t len,
- size_t *lineno, size_t *pos,
- const char *type, size_t *endpos)
---- libnih-1.0.3.orig/nih/io.c
-+++ libnih-1.0.3/nih/io.c
-@@ -2,8 +2,8 @@
- *
- * io.c - file and socket input/output handling
- *
-- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
-- * Copyright © 2009 Canonical Ltd.
-+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
-+ * Copyright © 2011 Canonical Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2, as
-@@ -165,6 +165,7 @@
- nih_assert (readfds != NULL);
- nih_assert (writefds != NULL);
- nih_assert (exceptfds != NULL);
-+ nih_assert (*nfds <= FD_SETSIZE);
-
- nih_io_init ();
-
-@@ -186,6 +187,9 @@
- *nfds = nih_max (*nfds, watch->fd + 1);
- }
- }
-+
-+ /* Re-check in case we exceeded the limit in the loop */
-+ nih_assert (*nfds <= FD_SETSIZE);
- }
-
- /**
-@@ -901,7 +905,7 @@
- * read and placed into the receive buffer or queue, and the reader function
- * is called if set.
- *
-- * Any data or messaages in the send buffer or queue are written out if the
-+ * Any data or messages in the send buffer or queue are written out if the
- * @events includes NIH_IO_WRITE.
- *
- * Errors are handled when data is read, and result in the error handled
-@@ -1211,7 +1215,7 @@
- * This function is called when the local end of a file descriptor being
- * managed by NihIo should be closed. Usually this is because the remote
- * end has been closed (without error) but it can also be because no
-- * error handler was given
-+ * error handler was given.
- *
- * Normally this just calls the close handler, or if not available, it
- * closes the file descriptor and frees the structure (which may be
-@@ -1291,7 +1295,7 @@
- * @io: structure to be destroyed.
- *
- * Closes the file descriptor associated with an NihIo structure so that
-- * the structure can be freed. IF an error is caught by closing the
-+ * the structure can be freed. If an error is caught by closing the
- * descriptor, the error handler is called instead of the error being raised;
- * this allows you to group your error handling in one place rather than
- * special-case close.
---- libnih-1.0.3.orig/nih/watch.h
-+++ libnih-1.0.3/nih/watch.h
-@@ -156,7 +156,7 @@
- NihCreateHandler create_handler,
- NihModifyHandler modify_handler,
- NihDeleteHandler delete_handler, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int nih_watch_add (NihWatch *watch, const char *path, int subdirs)
- __attribute__ ((warn_unused_result));
---- libnih-1.0.3.orig/nih/tree.h
-+++ libnih-1.0.3/nih/tree.h
-@@ -344,9 +344,9 @@
-
- void nih_tree_init (NihTree *tree);
- NihTree * nih_tree_new (const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- NihTreeEntry *nih_tree_entry_new (const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NihTree * nih_tree_add (NihTree *tree, NihTree *node,
- NihTreeWhere where);
---- libnih-1.0.3.orig/nih/file.c
-+++ libnih-1.0.3/nih/file.c
-@@ -65,7 +65,7 @@
- /* Prototypes for static functions */
- static char **nih_dir_walk_scan (const char *path, NihFileFilter filter,
- void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- static int nih_dir_walk_visit (const char *dirname, NihList *dirs,
- const char *path, NihFileFilter filter,
- NihFileVisitor visitor,
-@@ -619,6 +619,8 @@
- struct dirent *ent;
- char **paths;
- size_t npaths;
-+ int isdir;
-+ struct stat statbuf;
-
- nih_assert (path != NULL);
-
-@@ -640,7 +642,15 @@
- subpath = NIH_MUST (nih_sprintf (NULL, "%s/%s",
- path, ent->d_name));
-
-- if (filter && filter (data, subpath, ent->d_type == DT_DIR))
-+ if (ent->d_type == DT_UNKNOWN) {
-+ if ( lstat (subpath, &statbuf))
-+ isdir = 0;
-+ else
-+ isdir = S_ISDIR(statbuf.st_mode);
-+ } else
-+ isdir = ent->d_type == DT_DIR;
-+
-+ if (filter && filter (data, subpath, isdir))
- continue;
-
- NIH_MUST (nih_str_array_addp (&paths, NULL, &npaths, subpath));
---- libnih-1.0.3.orig/nih/alloc.c
-+++ libnih-1.0.3/nih/alloc.c
-@@ -119,8 +119,7 @@
- static inline int nih_alloc_context_free (NihAllocCtx *ctx);
-
- static inline NihAllocRef *nih_alloc_ref_new (NihAllocCtx *parent,
-- NihAllocCtx *child)
-- __attribute__ ((malloc));
-+ NihAllocCtx *child);
- static inline void nih_alloc_ref_free (NihAllocRef *ref);
- static inline NihAllocRef *nih_alloc_ref_lookup (NihAllocCtx *parent,
- NihAllocCtx *child);
---- libnih-1.0.3.orig/nih/timer.h
-+++ libnih-1.0.3/nih/timer.h
-@@ -59,7 +59,7 @@
- * @months: months (1-12),
- * @wdays: days of week (0-7).
- *
-- * Indidcates when scheduled timers should be run, each member is a bit
-+ * Indicates when scheduled timers should be run, each member is a bit
- * field where the bit is 1 if the timer should be run for that value and
- * 0 if not.
- **/
-@@ -117,14 +117,14 @@
-
- NihTimer *nih_timer_add_timeout (const void *parent, time_t timeout,
- NihTimerCb callback, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- NihTimer *nih_timer_add_periodic (const void *parent, time_t period,
- NihTimerCb callback, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- NihTimer *nih_timer_add_scheduled (const void *parent,
- NihTimerSchedule *schedule,
- NihTimerCb callback, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NihTimer *nih_timer_next_due (void);
- void nih_timer_poll (void);
---- libnih-1.0.3.orig/nih/config.c
-+++ libnih-1.0.3/nih/config.c
-@@ -2,8 +2,8 @@
- *
- * config.c - configuration file parsing
- *
-- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
-- * Copyright © 2009 Canonical Ltd.
-+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
-+ * Copyright © 2011 Canonical Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2, as
-@@ -657,7 +657,7 @@
- * of the returned string are freed, the returned string will also be
- * freed.
- *
-- * Returns: the command found or NULL on raised error.
-+ * Returns: the newly allocated command found or NULL on raised error.
- **/
- char *
- nih_config_parse_command (const void *parent,
-@@ -714,7 +714,7 @@
- * @lineno: line number,
- * @type: block identifier.
- *
-- * Extracts a block of text from @line, stopping when the pharse "end @type"
-+ * Extracts a block of text from @line, stopping when the phrase "end @type"
- * is encountered without any quotes or blackslash escaping within it.
- *
- * @file may be a memory mapped file, in which case @pos should be given
-@@ -950,7 +950,7 @@
- return FALSE;
-
- /* Must be whitespace after */
-- if (! strchr (NIH_CONFIG_WS, file[p + 3]))
-+ if (file[p + 3] && ! strchr (NIH_CONFIG_WS, file[p + 3]))
- return FALSE;
-
- /* Find the second word */
---- libnih-1.0.3.orig/nih/option.h
-+++ libnih-1.0.3/nih/option.h
-@@ -124,11 +124,11 @@
- char ** nih_option_parser (const void *parent,
- int argc, char *argv[],
- NihOption *options, int break_nonopt)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NihOption *nih_option_join (const void *parent,
- const NihOption *a, const NihOption *b)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int nih_option_count (NihOption *option, const char *arg);
- int nih_option_int (NihOption *option, const char *arg);
---- libnih-1.0.3.orig/nih/signal.h
-+++ libnih-1.0.3/nih/signal.h
-@@ -76,7 +76,7 @@
-
- NihSignal * nih_signal_add_handler (const void *parent, int signum,
- NihSignalHandler handler, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- void nih_signal_handler (int signum);
- void nih_signal_poll (void);
---- libnih-1.0.3.orig/nih/list.h
-+++ libnih-1.0.3/nih/list.h
-@@ -37,7 +37,7 @@
- * after a known entry, and remove an entry from the list.
- *
- * List entries may be created in one of two ways. The most common is to
-- * embed the NihList structure as the frist member of your own structure,
-+ * embed the NihList structure as the first member of your own structure,
- * and initialise it with nih_list_init() after allocating the structure.
- * Alternatively you may create NihListEntry structures with
- * nih_list_entry_new() and point at your own data from them.
-@@ -196,10 +196,10 @@
-
- void nih_list_init (NihList *entry);
- NihList * nih_list_new (const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NihListEntry *nih_list_entry_new (const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
-
- NihList * nih_list_add (NihList *list, NihList *entry);
---- libnih-1.0.3.orig/nih/logging.c
-+++ libnih-1.0.3/nih/logging.c
-@@ -39,11 +39,11 @@
-
-
- /**
-- * __abort_msg:
-+ * __nih_abort_msg:
- *
-- * A glibc variable that keeps the assertion message in the core dump.
-+ * A variable that keeps the assertion message in the core dump.
- **/
--extern char *__abort_msg __attribute__ ((weak));
-+char *__nih_abort_msg = NULL;
-
- /**
- * logger:
-@@ -114,19 +114,16 @@
- * nih_log_abort_message:
- * @message: message to be logged.
- *
-- * Save @message in the glibc __abort_msg variable so it can be retrieved
-+ * Save @message in the __nih_abort_msg variable so it can be retrieved
- * by debuggers if we should crash at this point.
- **/
- static void
- nih_log_abort_message (const char *message)
- {
-- if (! &__abort_msg)
-- return;
-+ if (__nih_abort_msg)
-+ nih_discard (__nih_abort_msg);
-
-- if (__abort_msg)
-- nih_discard (__abort_msg);
--
-- __abort_msg = NIH_MUST (nih_strdup (NULL, message));
-+ __nih_abort_msg = NIH_MUST (nih_strdup (NULL, message));
- }
-
- /**
---- libnih-1.0.3.orig/nih/test_files.h
-+++ libnih-1.0.3/nih/test_files.h
-@@ -1,7 +1,7 @@
- /* libnih
- *
-- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
-- * Copyright © 2009 Canonical Ltd.
-+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
-+ * Copyright © 2011 Canonical Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2, as
-@@ -39,7 +39,7 @@
- * TEST_FILENAME:
- * @_var: variable to store filename in.
- *
-- * Generate a filename that may be used for testing, it's unlinked it if
-+ * Generate a filename that may be used for testing, it's unlinked if it
- * exists and it's up to you to unlink it when done. @_var should be at
- * least PATH_MAX long.
- **/
---- libnih-1.0.3.orig/nih/test_process.h
-+++ libnih-1.0.3/nih/test_process.h
-@@ -36,7 +36,7 @@
- * Spawn a child in which a test can be performed without affecting the
- * main flow of the process. The pid of the child is stored in @_pid.
- *
-- * This macro ensures that the child has begun exectution before the
-+ * This macro ensures that the child has begun execution before the
- * parent is allowed to continue through the usual use of a pipe.
- *
- * A block of code should follow this macro, which is the code that will
---- libnih-1.0.3.orig/nih/child.h
-+++ libnih-1.0.3/nih/child.h
-@@ -98,7 +98,7 @@
- NihChildWatch *nih_child_add_watch (const void *parent, pid_t pid,
- NihChildEvents events,
- NihChildHandler handler, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- void nih_child_poll (void);
-
---- libnih-1.0.3.orig/nih/alloc.h
-+++ libnih-1.0.3/nih/alloc.h
-@@ -299,7 +299,7 @@
- * It is permissible to take references to foo within its scope, or by
- * functions called, in which case it will not be freed. Also it is
- * generally nonsensical to allocate with a parent, since this too will
-- * prevent it from beign freed.
-+ * prevent it from being freed.
- **/
- #define nih_local __attribute__ ((cleanup(_nih_discard_local)))
-
-@@ -307,11 +307,11 @@
- NIH_BEGIN_EXTERN
-
- void * nih_alloc (const void *parent, size_t size)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- void * nih_realloc (void *ptr, const void *parent,
- size_t size)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int nih_free (void *ptr);
- int nih_discard (void *ptr);
---- libnih-1.0.3.orig/nih/io.h
-+++ libnih-1.0.3/nih/io.h
-@@ -269,7 +269,7 @@
- NihIoWatch * nih_io_add_watch (const void *parent, int fd,
- NihIoEvents events,
- NihIoWatcher watcher, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- void nih_io_select_fds (int *nfds, fd_set *readfds,
- fd_set *writefds, fd_set *exceptfds);
-@@ -278,12 +278,12 @@
-
-
- NihIoBuffer * nih_io_buffer_new (const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int nih_io_buffer_resize (NihIoBuffer *buffer, size_t grow);
- char * nih_io_buffer_pop (const void *parent,
- NihIoBuffer *buffer, size_t *len)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- void nih_io_buffer_shrink (NihIoBuffer *buffer, size_t len);
- int nih_io_buffer_push (NihIoBuffer *buffer,
- const char *str, size_t len)
-@@ -291,7 +291,7 @@
-
-
- NihIoMessage *nih_io_message_new (const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int nih_io_message_add_control (NihIoMessage *message, int level,
- int type, socklen_t len,
-@@ -300,7 +300,7 @@
-
- NihIoMessage *nih_io_message_recv (const void *parent, int fd,
- size_t *len)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- ssize_t nih_io_message_send (NihIoMessage *message, int fd)
- __attribute__ ((warn_unused_result));
-
-@@ -310,7 +310,7 @@
- NihIoCloseHandler close_handler,
- NihIoErrorHandler error_handler,
- void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- void nih_io_shutdown (NihIo *io);
- int nih_io_destroy (NihIo *io);
-
-@@ -319,14 +319,14 @@
-
- char * nih_io_read (const void *parent, NihIo *io,
- size_t *len)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- int nih_io_write (NihIo *io, const char *str,
- size_t len)
- __attribute__ ((warn_unused_result));
-
- char * nih_io_get (const void *parent, NihIo *io,
- const char *delim)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int nih_io_printf (NihIo *io, const char *format, ...)
- __attribute__ ((warn_unused_result, format (printf, 2, 3)));
---- libnih-1.0.3.orig/nih/test_output.h
-+++ libnih-1.0.3/nih/test_output.h
-@@ -61,10 +61,10 @@
-
- /**
- * TEST_FEATURE:
-- * @_feat: name of function feature being tested.
-+ * @_feat: name of function or group feature being tested.
- *
-- * Output a message indicating that a sub-test of a function is being
-- * performed, specifically the feature named _feat.
-+ * Output a message indicating that a sub-test of a function or
-+ * group is being performed, specifically the feature named _feat.
- **/
- #define TEST_FEATURE(_feat) \
- printf ("...%s\n", _feat);
---- libnih-1.0.3.orig/nih/error.h
-+++ libnih-1.0.3/nih/error.h
-@@ -1,7 +1,7 @@
- /* libnih
- *
-- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
-- * Copyright © 2009 Canonical Ltd.
-+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
-+ * Copyright © 2011 Canonical Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2, as
-@@ -111,7 +111,7 @@
- * @message: human-readable message.
- *
- * Raises an error with the given details in the current error context,
-- * if an unhandled error already exists then an error message is emmitted
-+ * if an unhandled error already exists then an error message is emitted
- * through the logging system; you should try to avoid this.
- *
- * @message should be a static string, as it will not be freed when the
-@@ -126,7 +126,7 @@
- * @format: format string for human-readable message.
- *
- * Raises an error with the given details in the current error context,
-- * if an unhandled error already exists then an error message is emmitted
-+ * if an unhandled error already exists then an error message is emitted
- * through the logging system; you should try to avoid this.
- *
- * The human-readable message for the error is parsed according to @format,
-@@ -140,7 +140,7 @@
- * nih_error_raise_system:
- *
- * Raises an error with details taken from the current value of errno,
-- * if an unhandled error already exists then an error message is emmitted
-+ * if an unhandled error already exists then an error message is emitted
- * through the logging system; you should try to avoid this.
- **/
- #define nih_error_raise_system() \
-@@ -162,7 +162,7 @@
- * @error: existing object to raise.
- *
- * Raises the existing error object in the current error context,
-- * if an unhandled error already exists then an error message is emmitted
-+ * if an unhandled error already exists then an error message is emitted
- * through the logging system; you should try to avoid this.
- *
- * This is normally used to raise a taken error that has not been handled,
-@@ -182,7 +182,7 @@
- * @message: human-readable message.
- *
- * Raises an error with the given details in the current error context,
-- * if an unhandled error already exists then an error message is emmitted
-+ * if an unhandled error already exists then an error message is emitted
- * through the logging system; you should try to avoid this.
- *
- * Will return from the current function with @retval, which may be left
-@@ -199,7 +199,7 @@
- * @retval: return value for function.
- *
- * Raises an error with details taken from the current value of errno,
-- * if an unhandled error already exists then an error message is emmitted
-+ * if an unhandled error already exists then an error message is emitted
- * through the logging system; you should try to avoid this.
- *
- * Will return from the current function with @retval, which may be left
---- libnih-1.0.3.orig/nih/string.h
-+++ libnih-1.0.3/nih/string.h
-@@ -35,60 +35,60 @@
- NIH_BEGIN_EXTERN
-
- char * nih_sprintf (const void *parent, const char *format, ...)
-- __attribute__ ((format (printf, 2, 3), warn_unused_result, malloc));
-+ __attribute__ ((format (printf, 2, 3), warn_unused_result));
-
- char * nih_vsprintf (const void *parent, const char *format,
- va_list args)
-- __attribute__ ((format (printf, 2, 0), warn_unused_result, malloc));
-+ __attribute__ ((format (printf, 2, 0), warn_unused_result));
-
- char * nih_strdup (const void *parent, const char *str)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * nih_strndup (const void *parent, const char *str, size_t len)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * nih_strcat (char **str, const void *parent, const char *src)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * nih_strncat (char **str, const void *parent, const char *src,
- size_t len)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * nih_strcat_sprintf (char **str, const void *parent,
- const char *format, ...)
-- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
-+ __attribute__ ((format (printf, 3, 4), warn_unused_result));
- char * nih_strcat_vsprintf (char **str, const void *parent,
- const char *format, va_list args)
-- __attribute__ ((format (printf, 3, 0), warn_unused_result, malloc));
-+ __attribute__ ((format (printf, 3, 0), warn_unused_result));
-
- char **nih_str_split (const void *parent, const char *str,
- const char *delim, int repeat)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char **nih_str_array_new (const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char **nih_str_array_add (char ***array, const void *parent, size_t *len,
- const char *str)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char **nih_str_array_addn (char ***array, const void *parent, size_t *len,
- const char *str, size_t strlen)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char **nih_str_array_addp (char ***array, const void *parent, size_t *len,
- void *ptr)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char **nih_str_array_copy (const void *parent, size_t *len,
- char * const *array)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char **nih_str_array_append (char ***array, const void *parent, size_t *len,
- char * const *args)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * nih_str_wrap (const void *parent, const char *str, size_t len,
- size_t first_indent, size_t indent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- size_t nih_str_screen_width (void);
- char * nih_str_screen_wrap (const void *parent, const char *str,
- size_t first_indent, size_t indent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih/string.c
-+++ libnih-1.0.3/nih/string.c
-@@ -405,7 +405,7 @@
- const char *ptr;
-
- /* Skip initial delimiters */
-- while (repeat && strchr (delim, *str))
-+ while (repeat && *str && strchr (delim, *str))
- str++;
-
- /* Find the end of the token */
-@@ -413,6 +413,13 @@
- while (*str && (! strchr (delim, *str)))
- str++;
-
-+ /* Don't create an empty string array element in repeat
-+ * mode if there is no token (as a result of a
-+ * duplicated delimiter character).
-+ */
-+ if (repeat && (str == ptr))
-+ continue;
-+
- if (! nih_str_array_addn (&array, parent, &len,
- ptr, str - ptr)) {
- nih_free (array);
---- libnih-1.0.3.orig/nih/file.h
-+++ libnih-1.0.3/nih/file.h
-@@ -82,7 +82,7 @@
-
- char *nih_file_read (const void *parent, const char *path,
- size_t *length)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- void *nih_file_map (const char *path, int flags, size_t *length)
- __attribute__ ((warn_unused_result));
---- libnih-1.0.3.orig/nih/tests/test_option.c
-+++ libnih-1.0.3/nih/tests/test_option.c
-@@ -1574,7 +1574,7 @@
- output = tmpfile ();
- TEST_CHILD (pid) {
- TEST_DIVERT_STDOUT (output) {
-- char **args;
-+ char **args __attribute__((unused));
-
- args = nih_option_parser (NULL, argc, argv,
- options, FALSE);
-@@ -1652,7 +1652,7 @@
- unsetenv ("COLUMNS");
-
- TEST_DIVERT_STDOUT (output) {
-- char **args;
-+ char **args __attribute__((unused));
-
- args = nih_option_parser (NULL, argc, argv,
- options, FALSE);
---- libnih-1.0.3.orig/nih/tests/test_logging.c
-+++ libnih-1.0.3/nih/tests/test_logging.c
-@@ -31,7 +31,7 @@
- #include <nih/main.h>
-
-
--extern char *__abort_msg __attribute__ ((weak));
-+extern char *__nih_abort_msg;
-
- static NihLogLevel last_priority = NIH_LOG_UNKNOWN;
- static char * last_message = NULL;
-@@ -156,68 +156,63 @@
- }
-
-
-- /* Check that a fatal message is also stored in the glibc __abort_msg
-+ /* Check that a fatal message is also stored in the __nih_abort_msg
- * variable.
- */
-- if (&__abort_msg) {
-- TEST_FEATURE ("with fatal message");
-- TEST_ALLOC_FAIL {
-- __abort_msg = NULL;
-- last_priority = NIH_LOG_UNKNOWN;
-- last_message = NULL;
--
-- ret = nih_log_message (NIH_LOG_FATAL,
-- "message with %s %d formatting",
-- "some", 20);
--
-- TEST_EQ (ret, 0);
-- TEST_EQ (last_priority, NIH_LOG_FATAL);
-- TEST_EQ_STR (last_message, "message with some 20 formatting");
--
-- TEST_NE_P (__abort_msg, NULL);
-- TEST_ALLOC_PARENT (__abort_msg, NULL);
-- TEST_EQ_STR (__abort_msg, "message with some 20 formatting");
-+ TEST_FEATURE ("with fatal message");
-+ TEST_ALLOC_FAIL {
-+ __nih_abort_msg = NULL;
-+ last_priority = NIH_LOG_UNKNOWN;
-+ last_message = NULL;
-
-- free (last_message);
-- }
-+ ret = nih_log_message (NIH_LOG_FATAL,
-+ "message with %s %d formatting",
-+ "some", 20);
-
-+ TEST_EQ (ret, 0);
-+ TEST_EQ (last_priority, NIH_LOG_FATAL);
-+ TEST_EQ_STR (last_message, "message with some 20 formatting");
-
-- /* Check that a fatal message can safely overwrite one already stored
-- * in the glibc __abort_msg variable.
-- */
-- TEST_FEATURE ("with second fatal message");
-- TEST_ALLOC_FAIL {
-- TEST_ALLOC_SAFE {
-- msg = nih_strdup (NULL, "test");
-- }
--
-- __abort_msg = msg;
-- TEST_FREE_TAG (msg);
--
-- last_priority = NIH_LOG_UNKNOWN;
-- last_message = NULL;
--
-- ret = nih_log_message (NIH_LOG_FATAL,
-- "message with %s %d formatting",
-- "some", 20);
--
-- TEST_EQ (ret, 0);
-- TEST_EQ (last_priority, NIH_LOG_FATAL);
-- TEST_EQ_STR (last_message, "message with some 20 formatting");
--
-- TEST_FREE (msg);
--
-- TEST_NE_P (__abort_msg, NULL);
-- TEST_ALLOC_PARENT (__abort_msg, NULL);
-- TEST_EQ_STR (__abort_msg, "message with some 20 formatting");
-+ TEST_NE_P (__nih_abort_msg, NULL);
-+ TEST_ALLOC_PARENT (__nih_abort_msg, NULL);
-+ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting");
-
-- free (last_message);
-- }
-- } else {
-- printf ("SKIP: __abort_msg not available\n");
-+ free (last_message);
- }
-
-
-+ /* Check that a fatal message can safely overwrite one already stored
-+ * in the __nih_abort_msg variable.
-+ */
-+ TEST_FEATURE ("with second fatal message");
-+ TEST_ALLOC_FAIL {
-+ TEST_ALLOC_SAFE {
-+ msg = nih_strdup (NULL, "test");
-+ }
-+
-+ __nih_abort_msg = msg;
-+ TEST_FREE_TAG (msg);
-+
-+ last_priority = NIH_LOG_UNKNOWN;
-+ last_message = NULL;
-+
-+ ret = nih_log_message (NIH_LOG_FATAL,
-+ "message with %s %d formatting",
-+ "some", 20);
-+
-+ TEST_EQ (ret, 0);
-+ TEST_EQ (last_priority, NIH_LOG_FATAL);
-+ TEST_EQ_STR (last_message, "message with some 20 formatting");
-+
-+ TEST_FREE (msg);
-+
-+ TEST_NE_P (__nih_abort_msg, NULL);
-+ TEST_ALLOC_PARENT (__nih_abort_msg, NULL);
-+ TEST_EQ_STR (__nih_abort_msg, "message with some 20 formatting");
-+
-+ free (last_message);
-+ }
-+
- /* Check that the nih_debug macro wraps the call properly and
- * includes the function in which the message occurred.
- */
---- libnih-1.0.3.orig/nih/tests/test_hash.c
-+++ libnih-1.0.3/nih/tests/test_hash.c
-@@ -470,7 +470,8 @@
- test_lookup (void)
- {
- NihHash *hash;
-- NihList *entry1, *entry2, *entry3, *ptr;
-+ NihList *entry1, *entry2, *ptr;
-+ NihList *entry3 __attribute__((unused));
-
- TEST_FUNCTION ("nih_hash_lookup");
- hash = nih_hash_string_new (NULL, 0);
---- libnih-1.0.3.orig/nih/tests/test_main.c
-+++ libnih-1.0.3/nih/tests/test_main.c
-@@ -457,7 +457,7 @@
- test_main_loop (void)
- {
- NihMainLoopFunc *func;
-- NihTimer *timer;
-+ NihTimer *timer __attribute__((unused));
- int ret;
-
- /* Check that we can run through the main loop, and that the
---- libnih-1.0.3.orig/nih/tests/test_watch.c
-+++ libnih-1.0.3/nih/tests/test_watch.c
-@@ -2,8 +2,8 @@
- *
- * test_watch.c - test suite for nih/watch.c
- *
-- * Copyright © 2009 Scott James Remnant <scott@netsplit.com>.
-- * Copyright © 2009 Canonical Ltd.
-+ * Copyright © 2011 Scott James Remnant <scott@netsplit.com>.
-+ * Copyright © 2011 Canonical Ltd.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2, as
-@@ -39,6 +39,8 @@
- #include <nih/error.h>
- #include <nih/logging.h>
-
-+/* Read "The Hitchhikers Guide to the Galaxy" */
-+#define FILTER_VALUE 42
-
- static int
- my_filter (void *data,
-@@ -54,6 +56,26 @@
- return FALSE;
- }
-
-+/* Set by my_filter2 () so it knows if it has already been called */
-+static int my_filter2_called = 0;
-+
-+static int
-+my_filter2 (int *value,
-+ const char *path,
-+ int is_dir)
-+{
-+ /* we only want to toggle the value once */
-+ if (my_filter2_called)
-+ return TRUE;
-+
-+ my_filter2_called = 1;
-+
-+ nih_assert (value && *value == FILTER_VALUE);
-+ *value = 0;
-+
-+ return FALSE;
-+}
-+
- static int create_called = 0;
- static int modify_called = 0;
- static int delete_called = 0;
-@@ -553,6 +575,44 @@
- nih_free (watch);
- }
-
-+ /* Ensure the file filter gets passed the correct data pointer.
-+ */
-+ TEST_FEATURE ("with filter and data");
-+
-+ /* Ensure we have a new directory */
-+ TEST_FILENAME (dirname);
-+ mkdir (dirname, 0755);
-+
-+ /* Create a single file */
-+ strcpy (filename, dirname);
-+ strcat (filename, "/foo");
-+
-+ fd = fopen (filename, "w");
-+ fprintf (fd, "test\n");
-+ fclose (fd);
-+
-+ TEST_ALLOC_FAIL {
-+ int watch_data = FILTER_VALUE;
-+
-+ /* Reset required to appease TEST_ALLOC_FAIL */
-+ my_filter2_called = 0;
-+
-+ watch = nih_watch_new (NULL, dirname,
-+ TRUE, TRUE,
-+ (NihFileFilter)my_filter2,
-+ NULL, NULL, NULL,
-+ &watch_data);
-+
-+ TEST_NE_P (watch, NULL);
-+
-+ /* Ensure the filter was called and changed the value */
-+
-+ TEST_NE (my_filter2_called, 0);
-+ TEST_EQ (watch_data, 0);
-+
-+ nih_free (watch);
-+ }
-+
- strcpy (filename, dirname);
- strcat (filename, "/bar");
- chmod (filename, 0755);
-@@ -946,13 +1006,82 @@
- nih_error_init ();
-
- TEST_FILENAME (dirname);
-- mkdir (dirname, 0755);
-+ TEST_EQ (mkdir (dirname, 0755), 0);
-
-- watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter,
-- my_create_handler, my_modify_handler,
-+ TEST_FEATURE ("with watched file");
-+ strcpy (filename, dirname);
-+ strcat (filename, "/foo");
-+
-+ /* Create file first since we don't set a create handler on the
-+ * watch.
-+ */
-+ fd = fopen (filename, "w");
-+ fprintf (fd, "bar\n");
-+ fclose (fd);
-+
-+ create_called = 0;
-+ modify_called = 0;
-+ delete_called = 0;
-+ logger_called = 0;
-+ last_path = NULL;
-+ last_watch = NULL;
-+ last_data = NULL;
-+
-+ watch = nih_watch_new (NULL, filename, FALSE, FALSE, NULL,
-+ NULL, my_modify_handler,
- my_delete_handler, &watch);
-+ TEST_NE_P (watch, NULL);
-+
-+ /* Now, modify the existing file to trigger the modify handler. */
-+ fd = fopen (filename, "a+");
-+ fprintf (fd, "baz\n");
-+ fclose (fd);
-+
-+ nfds = 0;
-+ FD_ZERO (&readfds);
-+ FD_ZERO (&writefds);
-+ FD_ZERO (&exceptfds);
-+
-+ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds);
-+ select (nfds, &readfds, &writefds, &exceptfds, NULL);
-+ nih_io_handle_fds (&readfds, &writefds, &exceptfds);
-+
-+ TEST_EQ_STR (watch->path, filename);
-+
-+ /* Ensure no regression to old behaviour (LP:#777097) */
-+ TEST_NE (last_path[ strlen(last_path) - 1 ], '/');
-+
-+ TEST_EQ_STR (last_path, filename);
-+ TEST_EQ (modify_called, 1);
-+
-+ unlink (filename);
-+
-+ nfds = 0;
-+ FD_ZERO (&readfds);
-+ FD_ZERO (&writefds);
-+ FD_ZERO (&exceptfds);
-+
-+ nih_io_select_fds (&nfds, &readfds, &writefds, &exceptfds);
-+ select (nfds, &readfds, &writefds, &exceptfds, NULL);
-+ nih_io_handle_fds (&readfds, &writefds, &exceptfds);
-
-+ TEST_EQ (delete_called, 1);
-
-+ rmdir (filename);
-+ nih_free (last_path);
-+
-+ create_called = 0;
-+ modify_called = 0;
-+ delete_called = 0;
-+ logger_called = 0;
-+ last_path = NULL;
-+ last_watch = NULL;
-+ last_data = NULL;
-+
-+
-+ watch = nih_watch_new (NULL, dirname, TRUE, TRUE, my_filter,
-+ my_create_handler, my_modify_handler,
-+ my_delete_handler, &watch);
- /* Check that creating a file within the directory being watched
- * results in the create handler being called, and passed the full
- * path of the created file to it.
---- libnih-1.0.3.orig/nih/tests/test_string.c
-+++ libnih-1.0.3/nih/tests/test_string.c
-@@ -619,6 +619,215 @@
- nih_free (array);
- }
-
-+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
-+ "characters at string start");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "\t\tthis is a test", " \t", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
-+ for (i = 0; i < 6; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "");
-+ TEST_EQ_STR (array[1], "");
-+ TEST_EQ_STR (array[2], "this");
-+ TEST_EQ_STR (array[3], "is");
-+ TEST_EQ_STR (array[4], "a");
-+ TEST_EQ_STR (array[5], "test");
-+ TEST_EQ_P (array[6], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with no repeat and multiple different delimiter "
-+ "characters at string start");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, " \tthis is a test", " \t", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
-+ for (i = 0; i < 6; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "");
-+ TEST_EQ_STR (array[1], "");
-+ TEST_EQ_STR (array[2], "this");
-+ TEST_EQ_STR (array[3], "is");
-+ TEST_EQ_STR (array[4], "a");
-+ TEST_EQ_STR (array[5], "test");
-+ TEST_EQ_P (array[6], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
-+ "characters within string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "this is a\t\ttest", " \t", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 8);
-+ for (i = 0; i < 7; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "this");
-+ TEST_EQ_STR (array[1], "is");
-+ TEST_EQ_STR (array[2], "");
-+ TEST_EQ_STR (array[3], "");
-+ TEST_EQ_STR (array[4], "a");
-+ TEST_EQ_STR (array[5], "");
-+ TEST_EQ_STR (array[6], "test");
-+ TEST_EQ_P (array[7], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with no repeat and multiple different delimiter "
-+ "characters within string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "this is \n\ta\ttest", " \t\n", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 7);
-+ for (i = 0; i < 6; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "this");
-+ TEST_EQ_STR (array[1], "is");
-+ TEST_EQ_STR (array[2], "");
-+ TEST_EQ_STR (array[3], "");
-+ TEST_EQ_STR (array[4], "a");
-+ TEST_EQ_STR (array[5], "test");
-+ TEST_EQ_P (array[6], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
-+ "characters at string end");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "this is a test ", " \t", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 6);
-+ for (i = 0; i < 5; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "this");
-+ TEST_EQ_STR (array[1], "is");
-+ TEST_EQ_STR (array[2], "a");
-+ TEST_EQ_STR (array[3], "test");
-+ TEST_EQ_STR (array[4], "");
-+ TEST_EQ_P (array[5], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with no repeat and multiple different delimiter "
-+ "characters at string end");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "this is a test \t", " \t", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 6);
-+ for (i = 0; i < 5; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "this");
-+ TEST_EQ_STR (array[1], "is");
-+ TEST_EQ_STR (array[2], "a");
-+ TEST_EQ_STR (array[3], "test");
-+ TEST_EQ_STR (array[4], "");
-+ TEST_EQ_P (array[5], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with no repeat and multiple identical delimiter "
-+ "characters at beginning, middle and end of string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, " this is\n\n\na test\t\t\t", " \t\n", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 12);
-+ for (i = 0; i < 11; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "");
-+ TEST_EQ_STR (array[1], "");
-+ TEST_EQ_STR (array[2], "");
-+ TEST_EQ_STR (array[3], "this");
-+ TEST_EQ_STR (array[4], "is");
-+ TEST_EQ_STR (array[5], "");
-+ TEST_EQ_STR (array[6], "");
-+ TEST_EQ_STR (array[7], "a");
-+ TEST_EQ_STR (array[8], "test");
-+ TEST_EQ_STR (array[9], "");
-+ TEST_EQ_STR (array[10], "");
-+ TEST_EQ_P (array[11], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with no repeat and multiple different delimiter "
-+ "characters at beginning, middle and end of string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, ": \nthis is\t \n:a test:\n ", "\n :\t", FALSE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 13);
-+ for (i = 0; i < 12; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "");
-+ TEST_EQ_STR (array[1], "");
-+ TEST_EQ_STR (array[2], "");
-+ TEST_EQ_STR (array[3], "this");
-+ TEST_EQ_STR (array[4], "is");
-+ TEST_EQ_STR (array[5], "");
-+ TEST_EQ_STR (array[6], "");
-+ TEST_EQ_STR (array[7], "");
-+ TEST_EQ_STR (array[8], "a");
-+ TEST_EQ_STR (array[9], "test");
-+ TEST_EQ_STR (array[10], "");
-+ TEST_EQ_STR (array[11], "");
-+ TEST_EQ_P (array[12], NULL);
-+
-+ nih_free (array);
-+ }
-
- /* Check that we can split a string treating multiple consecutive
- * matching characters as a single separator to be skipped.
-@@ -645,6 +854,177 @@
- nih_free (array);
- }
-
-+ /* Check that we can split a string containing multiple
-+ * occurences of one of the delimiter characters at the
-+ * beginning of the string.
-+ */
-+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter characters at string start");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "\n\nhello", " \t\r\n", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
-+ for (i = 0; i < 1; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_P (array[1], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter characters at string start");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "\n\r hello", " \t\r\n", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
-+ for (i = 0; i < 1; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_P (array[1], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
-+ "characters within string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "hello\n\rworld", " \t\n\r", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 3);
-+ for (i = 0; i < 2; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_STR (array[1], "world");
-+ TEST_EQ_P (array[2], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
-+ "characters within string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "hello\n\r\tworld", " \t\n\r", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 3);
-+ for (i = 0; i < 2; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_STR (array[1], "world");
-+ TEST_EQ_P (array[2], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
-+ "characters at string end");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "hello\n\n\n\n\n\n\n", " \t\r\n", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
-+ for (i = 0; i < 1; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_P (array[1], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
-+ "characters at string end");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL, "hello \r\t\r\t\n ", " \t\r\n", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 2);
-+ for (i = 0; i < 1; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_P (array[1], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with repeat and multiple identical adjacent delimiter "
-+ "characters at beginning, middle and end of string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL,
-+ " hello\n\n\n, world\n\n\n",
-+ "\r\t\n ", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 4);
-+ for (i = 0; i < 3; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_STR (array[1], ",");
-+ TEST_EQ_STR (array[2], "world");
-+ TEST_EQ_P (array[3], NULL);
-+
-+ nih_free (array);
-+ }
-+
-+ TEST_FEATURE ("with repeat and multiple different adjacent delimiter "
-+ "characters at beginning, middle and end of string");
-+ TEST_ALLOC_FAIL {
-+ array = nih_str_split (NULL,
-+ "\n \r\thello\n\n\r , \n\t\rworld\t \r\n \n",
-+ " \t\n\r", TRUE);
-+
-+ if (test_alloc_failed) {
-+ TEST_EQ_P (array, NULL);
-+ continue;
-+ }
-+
-+ TEST_ALLOC_SIZE (array, sizeof (char *) * 4);
-+ for (i = 0; i < 3; i++)
-+ TEST_ALLOC_PARENT (array[i], array);
-+
-+ TEST_EQ_STR (array[0], "hello");
-+ TEST_EQ_STR (array[1], ",");
-+ TEST_EQ_STR (array[2], "world");
-+ TEST_EQ_P (array[3], NULL);
-+
-+ nih_free (array);
-+ }
-
- /* Check that we can give an empty string, and end up with a
- * one-element array that only contains a NULL pointer.
---- libnih-1.0.3.orig/nih/tests/test_file.c
-+++ libnih-1.0.3/nih/tests/test_file.c
-@@ -724,6 +724,25 @@
- return FALSE;
- }
-
-+/* find only frodo files */
-+static int
-+my_filter_frodo_file (void *data,
-+ const char *path,
-+ int is_dir)
-+{
-+ char *slash;
-+
-+ if (is_dir)
-+ return FALSE;
-+
-+ slash = strrchr (path, '/');
-+ if (strcmp (slash, "/frodo"))
-+ return TRUE;
-+
-+ return FALSE;
-+}
-+
-+
- static int logger_called = 0;
-
- static int
-@@ -905,6 +924,48 @@
- TEST_EQ_STR (v->path, filename);
-
- nih_free (visited);
-+
-+ /* Try also inverse filter */
-+ TEST_ALLOC_SAFE {
-+ visitor_called = 0;
-+ visited = nih_list_new (NULL);
-+ }
-+
-+ ret = nih_dir_walk (dirname, my_filter_frodo_file,
-+ my_visitor, NULL, &ret);
-+
-+ TEST_EQ (ret, 0);
-+ TEST_EQ (visitor_called, 4);
-+
-+ v = (Visited *)visited->next;
-+ TEST_EQ (v->data, &ret);
-+ TEST_EQ_STR (v->dirname, dirname);
-+ strcpy (filename, dirname);
-+ strcat (filename, "/bar");
-+ TEST_EQ_STR (v->path, filename);
-+
-+ v = (Visited *)v->entry.next;
-+ TEST_EQ (v->data, &ret);
-+ TEST_EQ_STR (v->dirname, dirname);
-+ strcpy (filename, dirname);
-+ strcat (filename, "/bar/frodo");
-+ TEST_EQ_STR (v->path, filename);
-+
-+ v = (Visited *)v->entry.next;
-+ TEST_EQ (v->data, &ret);
-+ TEST_EQ_STR (v->dirname, dirname);
-+ strcpy (filename, dirname);
-+ strcat (filename, "/baz");
-+ TEST_EQ_STR (v->path, filename);
-+
-+ v = (Visited *)v->entry.next;
-+ TEST_EQ (v->data, &ret);
-+ TEST_EQ_STR (v->dirname, dirname);
-+ strcpy (filename, dirname);
-+ strcat (filename, "/frodo");
-+ TEST_EQ_STR (v->path, filename);
-+
-+ nih_free (visited);
- }
-
-
---- libnih-1.0.3.orig/debian/control
-+++ libnih-1.0.3/debian/control
-@@ -0,0 +1,81 @@
-+Source: libnih
-+Section: libs
-+Priority: required
-+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
-+XSBC-Original-Maintainer: Scott James Remnant <scott@netsplit.com>
-+Standards-Version: 3.9.4
-+Build-Depends: debhelper (>= 9), pkg-config (>= 0.22), libdbus-1-dev (>= 1.4), libexpat1-dev (>= 2.0.0), dbus (>= 1.4), libc6-dev (>= 2.15~) | libc6.1-dev (>= 2.15~),
-+ dh-autoreconf, autopoint, dpkg-dev (>= 1.16.1~)
-+# To cross build this package also needs: libdbus-1-dev:native (>= 1.4), libexpat1-dev:native (>= 2.0.0)
-+# But :native build-deps are not supported yet, so instead one can do
-+# $ apt-get build-dep libnih
-+# $ apt-get build-dep libnih -aarmhf
-+# instead to get all required build-deps
-+Vcs-Bzr: lp:ubuntu/libnih
-+XSC-Debian-Vcs-Git: git://git.debian.org/git/collab-maint/libnih.git
-+XSC-Debian-Vcs-Browser: http://git.debian.org/?p=collab-maint/libnih.git;a=summary
-+Homepage: https://launchpad.net/libnih
-+
-+Package: libnih1
-+Architecture: any
-+Pre-Depends: ${misc:Pre-Depends}, ${shlibs:Depends}, ${misc:Depends}
-+Multi-Arch: same
-+Description: NIH Utility Library
-+ libnih is a light-weight "standard library" of C functions to ease the
-+ development of other libraries and applications, especially those
-+ normally found in /lib.
-+ .
-+ This package contains the shared library.
-+
-+Package: libnih-dev
-+Priority: optional
-+Section: libdevel
-+Architecture: any
-+Multi-Arch: same
-+Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
-+Description: NIH Utility Library (development files)
-+ libnih is a light-weight "standard library" of C functions to ease the
-+ development of other libraries and applications, especially those
-+ normally found in /lib.
-+ .
-+ This package contains the static library and C header files which are
-+ needed for developing software using libnih.
-+
-+Package: libnih-dbus1
-+Architecture: any
-+Pre-Depends: ${misc:Pre-Depends}
-+Depends: libnih1 (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
-+Multi-Arch: same
-+Description: NIH D-Bus Bindings Library
-+ libnih-dbus is a D-Bus bindings library that integrates with the main
-+ loop provided by libnih.
-+ .
-+ This package contains the shared library.
-+
-+Package: libnih-dbus-dev
-+Priority: optional
-+Section: libdevel
-+Architecture: any
-+Multi-Arch: same
-+Depends: libnih-dbus1 (= ${binary:Version}), libnih-dev (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends}
-+Recommends: nih-dbus-tool (= ${binary:Version})
-+Description: NIH D-Bus Bindings Library (development files)
-+ libnih-dbus is a D-Bus bindings library that integrates with the main
-+ loop provided by libnih.
-+ .
-+ This package contains the static library and C header files which are
-+ needed for developing software using libnih-dbus.
-+
-+Package: nih-dbus-tool
-+Section: devel
-+Architecture: any
-+Multi-Arch: foreign
-+Depends: ${shlibs:Depends}, ${misc:Depends}
-+Recommends: libnih-dbus-dev (= ${binary:Version})
-+Description: NIH D-Bus Binding Tool
-+ nih-dbus-tool generates C source code from the D-Bus Introspection XML
-+ data provided by most services; either to make implementing the
-+ described objects in C programs or to make proxying to the described
-+ remote objects easier.
-+ .
-+ The generated code requires libnih-dbus-dev to be compiled.
---- libnih-1.0.3.orig/debian/libnih-dev.install
-+++ libnih-1.0.3/debian/libnih-dev.install
-@@ -0,0 +1,6 @@
-+lib/*/libnih.a
-+lib/*/libnih.so
-+usr/include/libnih.h
-+usr/include/nih
-+usr/lib/*/pkgconfig/libnih.pc
-+usr/share/aclocal/libnih.m4
---- libnih-1.0.3.orig/debian/libnih1.docs
-+++ libnih-1.0.3/debian/libnih1.docs
-@@ -0,0 +1,3 @@
-+AUTHORS
-+NEWS
-+README
---- libnih-1.0.3.orig/debian/libnih-dbus1.install
-+++ libnih-1.0.3/debian/libnih-dbus1.install
-@@ -0,0 +1 @@
-+lib/*/libnih-dbus.so.*
---- libnih-1.0.3.orig/debian/libnih1.install
-+++ libnih-1.0.3/debian/libnih1.install
-@@ -0,0 +1 @@
-+lib/*/libnih.so.*
---- libnih-1.0.3.orig/debian/rules
-+++ libnih-1.0.3/debian/rules
-@@ -0,0 +1,54 @@
-+#!/usr/bin/make -f
-+
-+include /usr/share/dpkg/architecture.mk
-+
-+%:
-+ dh $@ --with autoreconf
-+
-+
-+CFLAGS := -Wall -fstack-protector -fPIE $(shell dpkg-buildflags --get CFLAGS)
-+LDFLAGS := -Wl,--as-needed -Wl,-z,relro -Wl,-z,now -pie $(shell dpkg-buildflags --get LDFLAGS)
-+
-+override_dh_auto_configure:
-+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
-+ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
-+ --libdir=/lib/$(DEB_HOST_MULTIARCH)
-+else
-+ dh_auto_configure -B build-dbus-tool/ -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
-+ --libdir=/lib/$(DEB_BUILD_MULTIARCH) \
-+ --host=$(DEB_BUILD_GNU_TYPE)
-+ dh_auto_build -B build-dbus-tool/ --parallel
-+ dh_auto_configure -- CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
-+ NIH_DBUS_TOOL=$(CURDIR)/build-dbus-tool/nih-dbus-tool/nih-dbus-tool \
-+ --libdir=/lib/$(DEB_HOST_MULTIARCH)
-+endif
-+
-+override_dh_auto_build:
-+ dh_auto_build --parallel
-+
-+override_dh_auto_test:
-+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
-+ dh_auto_test --parallel
-+endif
-+
-+override_dh_auto_install:
-+ dh_auto_install -- pkgconfigdir=\$${prefix}/lib/$(DEB_HOST_MULTIARCH)/pkgconfig
-+
-+override_dh_makeshlibs:
-+ dh_makeshlibs -plibnih1 -V 'libnih1 (>= 1.0.0)'
-+ dh_makeshlibs -plibnih-dbus1 -V 'libnih-dbus1 (>= 1.0.0)'
-+ dh_makeshlibs -Nlibnih1 -Nlibnih-dbus1
-+
-+override_dh_shlibdeps:
-+ dh_shlibdeps
-+ sed -i 's/2\.14/2.15/' debian/*.substvars
-+ sed -i 's/>= 2.15)/>= 2.15~)/g' debian/*.substvars
-+
-+
-+# Symlink /usr/share/doc directories together
-+override_dh_installdocs:
-+ dh_installdocs --link-doc=libnih1
-+
-+override_dh_clean:
-+ rm -rf build-dbus-tool/
-+ dh_clean
---- libnih-1.0.3.orig/debian/compat
-+++ libnih-1.0.3/debian/compat
-@@ -0,0 +1 @@
-+9
---- libnih-1.0.3.orig/debian/nih-dbus-tool.install
-+++ libnih-1.0.3/debian/nih-dbus-tool.install
-@@ -0,0 +1,2 @@
-+usr/bin/nih-dbus-tool
-+usr/share/man/man1/nih-dbus-tool.1
---- libnih-1.0.3.orig/debian/copyright
-+++ libnih-1.0.3/debian/copyright
-@@ -0,0 +1,18 @@
-+This is the Ubuntu package of libnih, the NIH Utility Library.
-+
-+Copyright © 2009 Canonical Ltd.
-+Copyright © 2009 Scott James Remnant <scott@netsplit.com>
-+
-+Licence:
-+
-+This program is free software; you can redistribute it and/or modify
-+it under the terms of the GNU General Public License version 2, as
-+published by the Free Software Foundation.
-+
-+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.
-+
-+On Ubuntu systems, the complete text of the GNU General Public License
-+can be found in ‘/usr/share/common-licenses/GPL-2’.
---- libnih-1.0.3.orig/debian/libnih-dbus1.postinst
-+++ libnih-1.0.3/debian/libnih-dbus1.postinst
-@@ -0,0 +1,53 @@
-+#!/bin/sh
-+
-+set -e
-+
-+if [ "$1" = configure ]; then
-+ # A dependent library of Upstart has changed, so restart Upstart
-+ # such that it can safely unmount the root filesystem (LP: #740390)
-+
-+ # Query running version of Upstart, but only when we know
-+ # that initctl will work.
-+ #
-+ # The calculated version string may be the null string if
-+ # Upstart is not running (where for example an alternative
-+ # init is running outside a chroot environment) or if the
-+ # query failed for some reason. However, the version check
-+ # below handles a null version string correctly.
-+ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\
-+ awk '{print $3}'|tr -d ')' || :)
-+
-+ if ischroot; then
-+ # Do not honour re-exec when requested from within a
-+ # chroot since:
-+ #
-+ # (a) The version of Upstart outside might not support it.
-+ # (b) An isolated environment such as a chroot should
-+ # not be able to modify its containing environment.
-+ #
-+ # A sufficiently new Upstart will actually handle a re-exec
-+ # request coming from telinit within a chroot correctly (by
-+ # doing nothing) but it's simple enough to perform the check
-+ # here and save Upstart the effort.
-+ :
-+ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then
-+ # We are not running inside a chroot and the running version
-+ # of Upstart supports stateful re-exec, so we can
-+ # restart immediately.
-+ #
-+ # XXX: Note that the check on the running version must
-+ # remain *indefinitely* since it's the only safe way to
-+ # know if stateful re-exec is supported: simply checking
-+ # packaged version numbers is not sufficient since
-+ # the package could be upgraded multiple times without a
-+ # reboot.
-+ telinit u || :
-+ else
-+ # Before we shutdown or reboot, we need to re-exec so that we
-+ # can safely remount the root filesystem; we can't just do that
-+ # here because we lose state.
-+ touch /var/run/init.upgraded || :
-+ fi
-+fi
-+
-+#DEBHELPER#
---- libnih-1.0.3.orig/debian/changelog.DEBIAN
-+++ libnih-1.0.3/debian/changelog.DEBIAN
-@@ -0,0 +1,118 @@
-+libnih (1.0.3-4) unstable; urgency=low
-+
-+ * Rebuild for new libc to update versioned dependency; this comes from
-+ the __abort_msg dependency, dpkg-shlibs needs overriding since this is
-+ actually a weak link, but this rebuild fixes things for now.
-+ Closes: #625257.
-+
-+ -- Scott James Remnant <scott@netsplit.com> Mon, 02 May 2011 15:08:33 -0700
-+
-+libnih (1.0.3-3) unstable; urgency=low
-+
-+ * New maintainer. Closes: #624442.
-+
-+ -- Scott James Remnant <scott@netsplit.com> Thu, 28 Apr 2011 14:26:05 -0700
-+
-+libnih (1.0.3-2) unstable; urgency=low
-+
-+ * Bump build dependency on libdbus-1-dev and dbus to (>= 1.4) for Unix file
-+ descriptor passing support.
-+
-+ -- Michael Biebl <biebl@debian.org> Thu, 10 Feb 2011 20:25:18 +0100
-+
-+libnih (1.0.3-1ubuntu1) natty; urgency=low
-+
-+ * Rebuild with libc6-dev (>= 2.13~).
-+
-+ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 12:09:29 +0100
-+
-+libnih (1.0.3-1) unstable; urgency=low
-+
-+ * New upstream release.
-+ * Bump debhelper compatibility level to 8 and update build dependency
-+ accordingly.
-+
-+ -- Michael Biebl <biebl@debian.org> Mon, 07 Feb 2011 22:19:13 +0100
-+
-+libnih (1.0.2-2) unstable; urgency=low
-+
-+ * Install library development files to /usr/lib and not /lib.
-+ * Remove libtool *.la files as there are no reverse dependencies referencing
-+ them.
-+ * Bump Standards-Version to 3.9.1. No further changes.
-+
-+ -- Michael Biebl <biebl@debian.org> Sun, 02 Jan 2011 21:09:40 +0100
-+
-+libnih (1.0.2-1ubuntu3) natty; urgency=low
-+
-+ * Disable some tests on ppc64 to build an initial package.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Thu, 18 Nov 2010 10:59:38 +0100
-+
-+libnih (1.0.2-1ubuntu2) maverick; urgency=low
-+
-+ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests;
-+ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403).
-+
-+ -- Loïc Minier <loic.minier@linaro.org> Mon, 23 Aug 2010 10:25:31 +0200
-+
-+libnih (1.0.2-1ubuntu1) maverick; urgency=low
-+
-+ * Rebuild with libc6-dev (>= 2.12~), after checking that
-+ __abort_msg is available with the same signature in eglibc 2.12.
-+ * Don't build the testsuite with -fPIE on armel; LP: #398403.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Sun, 30 May 2010 02:54:56 +0200
-+
-+libnih (1.0.2-1) unstable; urgency=low
-+
-+ * Initial upload to Debian. Closes: #585071
-+ * Based on the Ubuntu package for Lucid done by Scott James Remnant with the
-+ following changes:
-+ - Switch packages to priority optional.
-+ - Use binary:Version instead of Source-Version.
-+ - Bump Standards-Version to 3.8.4.
-+ - Add Homepage and Vcs-* fields.
-+ - Don't symlink /usr/share/doc directories.
-+ - Refer to versioned /usr/share/common-licenses/GPL-2 file in
-+ debian/copyright.
-+ - List all symbols explicitly instead of using a wildcard and add symbols
-+ introduced in 1.0.1.
-+ - Use the symbols files to create the correct version info instead of
-+ specifying it manually via shlibs.
-+ - Switch to source format 3.0 (quilt).
-+ - Add watch file to track new upstream releases.
-+
-+ -- Michael Biebl <biebl@debian.org> Sun, 13 Jun 2010 23:36:52 +0200
-+
-+libnih (1.0.1-1) lucid; urgency=low
-+
-+ * New upstream release:
-+ - Add missing __nih_* symbols to linker version script so that we
-+ can link Upstart's test suite.
-+ - Glibc __abort_msg symbol now only linked as a weak symbol.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Thu, 04 Feb 2010 14:53:26 -0800
-+
-+libnih (1.0.0-2build1) lucid; urgency=low
-+
-+ * Rebuild to pick up relaxed dependency on libc6, after checking that
-+ __abort_msg is available with the same signature in eglibc 2.11.
-+ LP: #508702.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Jan 2010 16:09:13 +0100
-+
-+libnih (1.0.0-2) lucid; urgency=low
-+
-+ * debian/control: Add build-dependency on dbus so the test suite can
-+ pass on the buildds.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 23:28:27 +0000
-+
-+libnih (1.0.0-1) lucid; urgency=low
-+
-+ * First upstream release. Previously this code was included in the
-+ upstart, mountall and ureadahead source packages.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 21:14:00 +0000
-+
---- libnih-1.0.3.orig/debian/libnih1.symbols
-+++ libnih-1.0.3/debian/libnih1.symbols
-@@ -0,0 +1,2 @@
-+libnih.so.1 libnih1 #MINVER#
-+ *@LIBNIH_1_0 1.0.0
---- libnih-1.0.3.orig/debian/libnih-dbus-dev.install
-+++ libnih-1.0.3/debian/libnih-dbus-dev.install
-@@ -0,0 +1,5 @@
-+lib/*/libnih-dbus.a
-+lib/*/libnih-dbus.so
-+usr/include/libnih-dbus.h
-+usr/include/nih-dbus
-+usr/lib/*/pkgconfig/libnih-dbus.pc
---- libnih-1.0.3.orig/debian/libnih1.postinst
-+++ libnih-1.0.3/debian/libnih1.postinst
-@@ -0,0 +1,53 @@
-+#!/bin/sh
-+
-+set -e
-+
-+if [ "$1" = configure ]; then
-+ # A dependent library of Upstart has changed, so restart Upstart
-+ # such that it can safely unmount the root filesystem (LP: #740390)
-+
-+ # Query running version of Upstart, but only when we know
-+ # that initctl will work.
-+ #
-+ # The calculated version string may be the null string if
-+ # Upstart is not running (where for example an alternative
-+ # init is running outside a chroot environment) or if the
-+ # query failed for some reason. However, the version check
-+ # below handles a null version string correctly.
-+ UPSTART_VERSION_RUNNING=$(initctl version 2>/dev/null |\
-+ awk '{print $3}'|tr -d ')' || :)
-+
-+ if ischroot; then
-+ # Do not honour re-exec when requested from within a
-+ # chroot since:
-+ #
-+ # (a) The version of Upstart outside might not support it.
-+ # (b) An isolated environment such as a chroot should
-+ # not be able to modify its containing environment.
-+ #
-+ # A sufficiently new Upstart will actually handle a re-exec
-+ # request coming from telinit within a chroot correctly (by
-+ # doing nothing) but it's simple enough to perform the check
-+ # here and save Upstart the effort.
-+ :
-+ elif dpkg --compare-versions "$UPSTART_VERSION_RUNNING" ge 1.6.1; then
-+ # We are not running inside a chroot and the running version
-+ # of Upstart supports stateful re-exec, so we can
-+ # restart immediately.
-+ #
-+ # XXX: Note that the check on the running version must
-+ # remain *indefinitely* since it's the only safe way to
-+ # know if stateful re-exec is supported: simply checking
-+ # packaged version numbers is not sufficient since
-+ # the package could be upgraded multiple times without a
-+ # reboot.
-+ telinit u || :
-+ else
-+ # Before we shutdown or reboot, we need to re-exec so that we
-+ # can safely remount the root filesystem; we can't just do that
-+ # here because we lose state.
-+ touch /var/run/init.upgraded || :
-+ fi
-+fi
-+
-+#DEBHELPER#
---- libnih-1.0.3.orig/debian/libnih-dbus1.symbols
-+++ libnih-1.0.3/debian/libnih-dbus1.symbols
-@@ -0,0 +1,2 @@
-+libnih-dbus.so.1 libnih-dbus1 #MINVER#
-+ *@LIBNIH_DBUS_1_0 1.0.0
---- libnih-1.0.3.orig/debian/changelog
-+++ libnih-1.0.3/debian/changelog
-@@ -0,0 +1,213 @@
-+libnih (1.0.3-4ubuntu16) raring; urgency=low
-+
-+ * debian/{libnih1.postinst,libnih-dbus1.postinst}: Force an upgrade to
-+ restart Upstart (to pick up new package version) if the running
-+ instance supports it.
-+ * Merge of important fixes from lp:~upstart-devel/libnih/nih
-+ (LP: #776532, LP: #777097, LP: #834813, LP: #1123588).
-+
-+ -- James Hunt <james.hunt@ubuntu.com> Thu, 14 Mar 2013 09:14:22 +0000
-+
-+libnih (1.0.3-4ubuntu15) raring; urgency=low
-+
-+ * Enable cross-building, sans adding :native build-dependencies.
-+ See comments in debian/control.
-+ * Lintian fixes.
-+
-+ -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Tue, 08 Jan 2013 15:38:58 +0000
-+
-+libnih (1.0.3-4ubuntu14) raring; urgency=low
-+
-+ * Update dbus code generator to allow for empty lists for type 'as'.
-+ This drops the != NULL check for NULL terminated arrays and moves the
-+ iteration loop inside an 'if' statement.
-+
-+ -- Stéphane Graber <stgraber@ubuntu.com> Thu, 13 Dec 2012 10:00:27 -0500
-+
-+libnih (1.0.3-4ubuntu13) raring; urgency=low
-+
-+ [ Petr Lautrbach <plautrba@redhat.com>, Dmitrijs Ledkovs ]
-+ * Fallback to lstat, if dirent.d_type is not available (not portable)
-+ (LP: #672643) (Closes: #695604)
-+
-+ -- Dmitrijs Ledkovs <dmitrij.ledkov@ubuntu.com> Tue, 11 Dec 2012 17:26:52 +0000
-+
-+libnih (1.0.3-4ubuntu12) raring; urgency=low
-+
-+ * nih/logging.c: Use our own __nih_abort_msg rather than the (e)glibc
-+ private symbol __abort_msg to avoid upgrade issues (LP: #997359).
-+ * nih/tests/test_logging.c: Update tests for __nih_abort_msg.
-+
-+ -- James Hunt <james.hunt@ubuntu.com> Thu, 25 Oct 2012 10:57:30 +0100
-+
-+libnih (1.0.3-4ubuntu11) quantal; urgency=low
-+
-+ * Addition of debian/libnih-dbus1.postinst and
-+ debian/libnih1.postinst to force Upstart re-exec on shutdown
-+ to avoid unmounting disks uncleanly (LP: #740390).
-+
-+ -- James Hunt <james.hunt@ubuntu.com> Wed, 03 Oct 2012 16:49:40 +0100
-+
-+libnih (1.0.3-4ubuntu10) quantal; urgency=low
-+
-+ * Update config.guess,sub for aarch64
-+
-+ -- Wookey <wookey@wookware.org> Mon, 01 Oct 2012 12:57:05 +0100
-+
-+libnih (1.0.3-4ubuntu9) precise; urgency=low
-+
-+ * Mark the nih-dbus-tool package Multi-Arch: foreign so it can be used as
-+ a build-dependency of upstart when cross-building.
-+
-+ -- Steve Langasek <steve.langasek@ubuntu.com> Wed, 15 Feb 2012 22:57:50 -0800
-+
-+libnih (1.0.3-4ubuntu8) precise; urgency=low
-+
-+ * libnih1 needs a versioned Pre-Depend on libc6 instead of just a Depend,
-+ because libc6 itself uses runlevel from the upstart package in its
-+ preinst, which in turn uses libnih1, which needs to be loadable (i.e.,
-+ its symbol references resolve). We therefore need to ensure that
-+ libnih1's dependencies are always unpacked before libnih1 itself is
-+ unpacked. While having something further up the stack (such as upstart,
-+ or something on top of upstart) being marked Essential: yes and with the
-+ necessary pre-depends would let apt handle this for us with its
-+ "immediate configuration" support, but for various reasons we don't want
-+ to make upstart essential. LP: #508083.
-+
-+ -- Steve Langasek <steve.langasek@ubuntu.com> Fri, 10 Feb 2012 12:13:25 -0800
-+
-+libnih (1.0.3-4ubuntu7) precise; urgency=low
-+
-+ * Relax dependency on libc6.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2012 23:43:21 +0100
-+
-+libnih (1.0.3-4ubuntu6) precise; urgency=low
-+
-+ * Rebuild with libc6-dev (>= 2.15~).
-+
-+ -- Matthias Klose <doko@ubuntu.com> Wed, 08 Feb 2012 21:48:57 +0100
-+
-+libnih (1.0.3-4ubuntu5) precise; urgency=low
-+
-+ * Mark libnih-dev and libnih-dbus-dev Multi-Arch: same as well.
-+
-+ -- Steve Langasek <steve.langasek@ubuntu.com> Sun, 06 Nov 2011 14:45:07 -0800
-+
-+libnih (1.0.3-4ubuntu4) precise; urgency=low
-+
-+ * Make libnih1 and libnih-dbus1 installable using multi-arch.
-+
-+ -- James Hunt <james.hunt@ubuntu.com> Tue, 01 Nov 2011 14:25:09 -0400
-+
-+libnih (1.0.3-4ubuntu3) precise; urgency=low
-+
-+ * Build to install with eglibc-2.15.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Fri, 14 Oct 2011 14:05:03 +0200
-+
-+libnih (1.0.3-4ubuntu2) oneiric; urgency=low
-+
-+ * Use dpkg-buildflags to get the build flags.
-+ * Build with the default build flags, don't hard-code -Os. LP: #791315.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Wed, 15 Jun 2011 16:45:42 +0200
-+
-+libnih (1.0.3-4ubuntu1) oneiric; urgency=low
-+
-+ * Merge from debian unstable. Retained Ubuntu Build-Depends and Priority.
-+
-+ -- James Hunt <james.hunt@ubuntu.com> Mon, 23 May 2011 19:28:19 +0100
-+
-+libnih (1.0.3-1ubuntu1) natty; urgency=low
-+
-+ * Rebuild with libc6-dev (>= 2.13~).
-+
-+ -- Matthias Klose <doko@ubuntu.com> Fri, 18 Feb 2011 12:09:29 +0100
-+
-+libnih (1.0.3-1) natty; urgency=low
-+
-+ * New upstream release:
-+ - Added support for passing file descriptors over D-Bus to nih-dbus-tool
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Thu, 23 Dec 2010 22:28:24 +0000
-+
-+libnih (1.0.2-2) natty; urgency=low
-+
-+ * Revert the previous upload. It is never acceptable to simply disable
-+ tests, especially when it turns out that the test that was disabled
-+ was failing because there was a serious bug that could cause kernel
-+ panics for people on boot.
-+
-+ Test suites are here for a reason.
-+
-+ * Bumped libdbus Build-Dependency to the version with the bug fix that
-+ caused the test suite to fail.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Wed, 08 Dec 2010 19:40:15 +0000
-+
-+libnih (1.0.2-1ubuntu3) natty; urgency=low
-+
-+ * Disable some tests on ppc64 to build an initial package.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Thu, 18 Nov 2010 10:59:38 +0100
-+
-+libnih (1.0.2-1ubuntu2) maverick; urgency=low
-+
-+ * Re-add -fPIE to the testsuite on armel, removing all armel-specific tests;
-+ current gcc-4.4 don't seem affected by the ICE anymore (see LP #398403).
-+
-+ -- Loïc Minier <loic.minier@linaro.org> Mon, 23 Aug 2010 10:25:31 +0200
-+
-+libnih (1.0.2-1ubuntu1) maverick; urgency=low
-+
-+ * Rebuild with libc6-dev (>= 2.12~), after checking that
-+ __abort_msg is available with the same signature in eglibc 2.12.
-+ * Don't build the testsuite with -fPIE on armel; LP: #398403.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Sun, 30 May 2010 02:54:56 +0200
-+
-+libnih (1.0.2-1) maverick; urgency=low
-+
-+ * New upstream release:
-+ - Rename AC_COPYRIGHT to NIH_COPYRIGHT to avoid conflict with other
-+ packages.
-+ - Add serial to libnih.m4
-+ - Add NIH_WITH_LOCAL_LIBNIH macro.
-+
-+ * Fix use of ${Source-Version} to be ${binary:Version}
-+ * Add debian/source/format with "1.0" to be future compatible.
-+ * Bump standards version.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Tue, 27 Apr 2010 10:49:55 -0700
-+
-+libnih (1.0.1-1) lucid; urgency=low
-+
-+ * New upstream release:
-+ - Add missing __nih_* symbols to linker version script so that we
-+ can link Upstart's test suite.
-+ - Glibc __abort_msg symbol now only linked as a weak symbol.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Thu, 04 Feb 2010 14:53:26 -0800
-+
-+libnih (1.0.0-2build1) lucid; urgency=low
-+
-+ * Rebuild to pick up relaxed dependency on libc6, after checking that
-+ __abort_msg is available with the same signature in eglibc 2.11.
-+ LP: #508702.
-+
-+ -- Matthias Klose <doko@ubuntu.com> Mon, 18 Jan 2010 16:09:13 +0100
-+
-+libnih (1.0.0-2) lucid; urgency=low
-+
-+ * debian/control: Add build-dependency on dbus so the test suite can
-+ pass on the buildds.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 23:28:27 +0000
-+
-+libnih (1.0.0-1) lucid; urgency=low
-+
-+ * First upstream release. Previously this code was included in the
-+ upstart, mountall and ureadahead source packages.
-+
-+ -- Scott James Remnant <scott@ubuntu.com> Sat, 28 Nov 2009 21:14:00 +0000
---- libnih-1.0.3.orig/debian/source/format
-+++ libnih-1.0.3/debian/source/format
-@@ -0,0 +1 @@
-+1.0
---- libnih-1.0.3.orig/nih-dbus/dbus_proxy.h
-+++ libnih-1.0.3/nih-dbus/dbus_proxy.h
-@@ -146,14 +146,14 @@
- const char *name, const char *path,
- NihDBusLostHandler lost_handler,
- void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NihDBusProxySignal *nih_dbus_proxy_connect (NihDBusProxy *proxy,
- const NihDBusInterface *interface,
- const char *name,
- NihDBusSignalHandler handler,
- void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus/dbus_object.h
-+++ libnih-1.0.3/nih-dbus/dbus_object.h
-@@ -61,8 +61,7 @@
- DBusConnection *connection,
- const char *path,
- const NihDBusInterface **interfaces,
-- void *data)
-- __attribute__ ((malloc));
-+ void *data);
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus/dbus_util.h
-+++ libnih-1.0.3/nih-dbus/dbus_util.h
-@@ -26,7 +26,7 @@
- NIH_BEGIN_EXTERN
-
- char *nih_dbus_path (const void *parent, const char *root, ...)
-- __attribute__ ((sentinel, warn_unused_result, malloc));
-+ __attribute__ ((sentinel, warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus/dbus_pending_data.h
-+++ libnih-1.0.3/nih-dbus/dbus_pending_data.h
-@@ -104,7 +104,7 @@
- NihDBusReplyHandler handler,
- NihDBusErrorHandler error_handler,
- void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus/dbus_proxy.c
-+++ libnih-1.0.3/nih-dbus/dbus_proxy.c
-@@ -46,11 +46,11 @@
- __attribute__ ((warn_unused_result));
- static char *nih_dbus_proxy_name_rule (const void *parent,
- NihDBusProxy *proxy)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- static int nih_dbus_proxy_signal_destroy (NihDBusProxySignal *proxied);
- static char *nih_dbus_proxy_signal_rule (const void *parent,
- NihDBusProxySignal *proxied)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- /* Prototypes for handler functions */
- static DBusHandlerResult nih_dbus_proxy_name_owner_changed (DBusConnection *connection,
---- libnih-1.0.3.orig/nih-dbus-tool/symbol.c
-+++ libnih-1.0.3/nih-dbus-tool/symbol.c
-@@ -40,10 +40,10 @@
- /* Prototypes for static functions */
- static char *symbol_strcat_interface (char **str, const void *parent,
- const char *format, ...)
-- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
-+ __attribute__ ((format (printf, 3, 4), warn_unused_result));
- static char *symbol_strcat_title (char **str, const void *parent,
- const char *format, ...)
-- __attribute__ ((format (printf, 3, 4), warn_unused_result, malloc));
-+ __attribute__ ((format (printf, 3, 4), warn_unused_result));
-
-
- /**
---- libnih-1.0.3.orig/nih-dbus-tool/demarshal.h
-+++ libnih-1.0.3/nih-dbus-tool/demarshal.h
-@@ -37,7 +37,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/symbol.h
-+++ libnih-1.0.3/nih-dbus-tool/symbol.h
-@@ -28,22 +28,22 @@
- int symbol_valid (const char *symbol);
-
- char *symbol_from_name (const void *parent, const char *name)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char *symbol_impl (const void *parent, const char *prefix,
- const char *interface_name, const char *name,
- const char *postfix)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char *symbol_extern (const void *parent, const char *prefix,
- const char *interface_symbol, const char *midfix,
- const char *symbol, const char *postfix)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char *symbol_typedef (const void *parent, const char *prefix,
- const char *interface_symbol, const char *midfix,
- const char *symbol, const char *postfix)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/output.h
-+++ libnih-1.0.3/nih-dbus-tool/output.h
-@@ -35,9 +35,9 @@
- __attribute__ ((warn_unused_result));
-
- char *output_preamble (const void *parent, const char *path)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char *output_sentinel (const void *parent, const char *path)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/parse.h
-+++ libnih-1.0.3/nih-dbus-tool/parse.h
-@@ -95,7 +95,7 @@
-
- ParseStack *parse_stack_push (const void *parent, NihList *stack,
- ParseStackType type, void *data)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- ParseStack *parse_stack_top (NihList *stack);
-
- void parse_start_tag (XML_Parser xmlp, const char *tag,
-@@ -103,7 +103,7 @@
- void parse_end_tag (XML_Parser xmlp, const char *tag);
-
- Node * parse_xml (const void *parent, int fd, const char *filename)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/type.h
-+++ libnih-1.0.3/nih-dbus-tool/type.h
-@@ -94,43 +94,43 @@
-
- char * type_of (const void * parent,
- DBusSignatureIter *iter)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- TypeVar * type_var_new (const void *parent, const char *type,
- const char *name)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_var_to_string (const void *parent, TypeVar *var)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_var_layout (const void *parent, NihList *vars)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- TypeFunc * type_func_new (const void *parent, const char *type,
- const char *name)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_func_to_string (const void *parent, TypeFunc *func)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_func_to_typedef (const void *parent, TypeFunc *func)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_func_layout (const void *parent, NihList *funcs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- TypeStruct *type_struct_new (const void *parent, const char *name)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_struct_to_string (const void *parent, TypeStruct *structure)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * type_to_const (char **type, const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_to_pointer (char **type, const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_to_static (char **type, const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * type_to_extern (char **type, const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * type_strcat_assert (char **block, const void *parent,
- TypeVar *var, TypeVar *prev, TypeVar *next)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/argument.h
-+++ libnih-1.0.3/nih-dbus-tool/argument.h
-@@ -61,7 +61,7 @@
-
- Argument *argument_new (const void *parent, const char *name,
- const char *type, NihDBusArgDir direction)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int argument_start_tag (XML_Parser xmlp, const char *tag,
- char * const *attr)
---- libnih-1.0.3.orig/nih-dbus-tool/indent.h
-+++ libnih-1.0.3/nih-dbus-tool/indent.h
-@@ -26,9 +26,9 @@
- NIH_BEGIN_EXTERN
-
- char *indent (char **str, const void *parent, int level)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char *comment (char **str, const void *parent)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/main.c
-+++ libnih-1.0.3/nih-dbus-tool/main.c
-@@ -52,10 +52,10 @@
- /* Prototypes for local functions */
- char *source_file_path (const void *parent, const char *output_path,
- const char *filename)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char *header_file_path (const void *parent, const char *output_path,
- const char *filename)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
-
- /**
---- libnih-1.0.3.orig/nih-dbus-tool/signal.h
-+++ libnih-1.0.3/nih-dbus-tool/signal.h
-@@ -58,7 +58,7 @@
- int signal_name_valid (const char *name);
-
- Signal * signal_new (const void *parent, const char *name)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int signal_start_tag (XML_Parser xmlp, const char *tag,
- char * const *attr)
-@@ -76,18 +76,18 @@
- char * signal_object_function (const void *parent, const char *prefix,
- Interface *interface, Signal *signal,
- NihList *prototypes, NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * signal_proxy_function (const void *parent, const char *prefix,
- Interface *interface, Signal *signal,
- NihList *prototypes, NihList *typedefs,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * signal_args_array (const void *parent, const char *prefix,
- Interface *interface, Signal *signal,
- NihList *prototypes)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/marshal.c
-+++ libnih-1.0.3/nih-dbus-tool/marshal.c
-@@ -49,7 +49,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- static char *marshal_array (const void *parent,
- DBusSignatureIter *iter,
- const char *iter_name, const char *name,
-@@ -58,7 +58,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- static char *marshal_struct (const void *parent,
- DBusSignatureIter *iter,
- const char *iter_name, const char *name,
-@@ -67,7 +67,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
-
- /**
-@@ -364,6 +364,7 @@
- nih_local TypeVar *element_len_var = NULL;
- nih_local char * block = NULL;
- nih_local char * vars_block = NULL;
-+ nih_local char * loop_block = NULL;
-
- nih_assert (iter != NULL);
- nih_assert (iter_name != NULL);
-@@ -448,7 +449,7 @@
- nih_list_add (locals, &array_iter_var->entry);
-
- if (dbus_type_is_fixed (element_type)) {
-- if (! nih_strcat_sprintf (&code, parent,
-+ if (! nih_strcat_sprintf (&loop_block, parent,
- "for (size_t %s = 0; %s < %s; %s++) {\n",
- loop_name, loop_name, len_name, loop_name)) {
- nih_free (code);
-@@ -456,6 +457,12 @@
- }
- } else {
- if (! nih_strcat_sprintf (&code, parent,
-+ "if (%s) {\n",
-+ name)) {
-+ nih_free (code);
-+ return NULL;
-+ }
-+ if (! nih_strcat_sprintf (&loop_block, parent,
- "for (size_t %s = 0; %s[%s]; %s++) {\n",
- loop_name, name, loop_name, loop_name)) {
- nih_free (code);
-@@ -576,7 +583,7 @@
- }
-
-
-- if (! nih_strcat_sprintf (&code, parent,
-+ if (! nih_strcat_sprintf (&loop_block, parent,
- "%s"
- "\n"
- "%s"
-@@ -590,9 +597,34 @@
- }
-
- /* Close the container again */
-+ if (! nih_strcat_sprintf (&loop_block, parent,
-+ "}\n")) {
-+ nih_free (code);
-+ return NULL;
-+ }
-+
-+ if (dbus_type_is_fixed (element_type)) {
-+ if (! nih_strcat_sprintf (&code, parent,
-+ "%s\n", loop_block)) {
-+ nih_free (code);
-+ return NULL;
-+ }
-+ }
-+ else {
-+ if (! indent (&loop_block, NULL, 1)) {
-+ nih_free (code);
-+ return NULL;
-+ }
-+
-+ if (! nih_strcat_sprintf (&code, parent,
-+ "%s"
-+ "}\n\n", loop_block)) {
-+ nih_free (code);
-+ return NULL;
-+ }
-+ }
-+
- if (! nih_strcat_sprintf (&code, parent,
-- "}\n"
-- "\n"
- "if (! dbus_message_iter_close_container (&%s, &%s)) {\n"
- "%s"
- "}\n",
---- libnih-1.0.3.orig/nih-dbus-tool/demarshal.c
-+++ libnih-1.0.3/nih-dbus-tool/demarshal.c
-@@ -51,7 +51,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- static char *demarshal_array (const void *parent,
- DBusSignatureIter *iter,
- const char *parent_name,
-@@ -62,7 +62,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- static char *demarshal_struct (const void *parent,
- DBusSignatureIter *iter,
- const char *parent_name,
-@@ -73,7 +73,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
-
- /**
---- libnih-1.0.3.orig/nih-dbus-tool/interface.h
-+++ libnih-1.0.3/nih-dbus-tool/interface.h
-@@ -61,7 +61,7 @@
-
- Interface *interface_new (const void *parent,
- const char *name)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int interface_start_tag (XML_Parser xmlp,
- const char *tag,
-@@ -81,26 +81,26 @@
- Interface *interface,
- int with_handlers,
- NihList *prototypes)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * interface_signals_array (const void *parent,
- const char *prefix,
- Interface *interface,
- int with_filters,
- NihList *prototypes)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * interface_properties_array (const void *parent,
- const char *prefix,
- Interface *interface,
- int with_handlers,
- NihList *prototypes)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * interface_struct (const void *parent,
- const char *prefix,
- Interface *interface,
- int object,
- NihList *prototypes)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
-
- char * interface_proxy_get_all_function (const void *parent,
-@@ -108,7 +108,7 @@
- Interface *interface,
- NihList *prototypes,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * interface_proxy_get_all_notify_function (const void *parent,
- const char *prefix,
-@@ -116,14 +116,14 @@
- NihList *prototypes,
- NihList *typedefs,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * interface_proxy_get_all_sync_function (const void *parent,
- const char *prefix,
- Interface *interface,
- NihList *prototypes,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/method.h
-+++ libnih-1.0.3/nih-dbus-tool/method.h
-@@ -62,7 +62,7 @@
- int method_name_valid (const char *name);
-
- Method * method_new (const void *parent, const char *name)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int method_start_tag (XML_Parser xmlp, const char *tag,
- char * const *attr)
-@@ -82,33 +82,33 @@
- Interface *interface, Method *method,
- NihList *prototypes, NihList *handlers,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * method_reply_function (const void *parent, const char *prefix,
- Interface *interface, Method *method,
- NihList *prototypes, NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * method_proxy_function (const void *parent, const char *prefix,
- Interface *interface, Method *method,
- NihList *prototypes, NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * method_proxy_notify_function (const void *parent, const char *prefix,
- Interface *interface, Method *method,
- NihList *prototypes, NihList *typedefs,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * method_proxy_sync_function (const void *parent, const char *prefix,
- Interface *interface, Method *method,
- NihList *prototypes, NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * method_args_array (const void *parent, const char *prefix,
- Interface *interface, Method *method,
- NihList *prototypes)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/node.h
-+++ libnih-1.0.3/nih-dbus-tool/node.h
-@@ -47,7 +47,7 @@
- int node_path_valid (const char *name);
-
- Node * node_new (const void *parent, const char *path)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int node_start_tag (XML_Parser xmlp, const char *tag,
- char * const *attr)
-@@ -59,18 +59,18 @@
-
- char * node_interfaces_array (const void *parent, const char *prefix,
- Node *node, int object, NihList *prototypes)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * node_object_functions (const void *parent, const char *prefix,
- Node *node,
- NihList *prototypes, NihList *handlers,
- NihList *structs, NihList *externs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * node_proxy_functions (const void *parent, const char *prefix,
- Node *node,
- NihList *prototypes, NihList *structs,
- NihList *typedefs, NihList *externs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/marshal.h
-+++ libnih-1.0.3/nih-dbus-tool/marshal.h
-@@ -35,7 +35,7 @@
- const char *prefix, const char *interface_symbol,
- const char *member_symbol, const char *symbol,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/type.c
-+++ libnih-1.0.3/nih-dbus-tool/type.c
-@@ -1101,7 +1101,7 @@
- nih_assert (block != NULL);
- nih_assert (var != NULL);
-
-- if (! strchr (var->type, '*'))
-+ if (! strchr (var->type, '*') || ! strcmp (var->type, "char * const *"))
- return *block;
-
- if (next && (! strcmp (next->type, "size_t"))) {
---- libnih-1.0.3.orig/nih-dbus-tool/property.h
-+++ libnih-1.0.3/nih-dbus-tool/property.h
-@@ -65,7 +65,7 @@
- const char *name,
- const char *type,
- NihDBusAccess access)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- int property_start_tag (XML_Parser xmlp, const char *tag,
- char * const *attr)
-@@ -88,7 +88,7 @@
- NihList *prototypes,
- NihList *handlers,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * property_object_set_function (const void *parent,
- const char *prefix,
- Interface *interface,
-@@ -96,7 +96,7 @@
- NihList *prototypes,
- NihList *handlers,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * property_proxy_get_function (const void *parent,
- const char *prefix,
-@@ -104,7 +104,7 @@
- Property *property,
- NihList *prototypes,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * property_proxy_get_notify_function (const void *parent,
- const char *prefix,
- Interface *interface,
-@@ -112,7 +112,7 @@
- NihList *prototypes,
- NihList *typedefs,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * property_proxy_set_function (const void *parent,
- const char *prefix,
-@@ -120,7 +120,7 @@
- Property *property,
- NihList *prototypes,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * property_proxy_set_notify_function (const void *parent,
- const char *prefix,
- Interface *interface,
-@@ -128,7 +128,7 @@
- NihList *prototypes,
- NihList *typedefs,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- char * property_proxy_get_sync_function (const void *parent,
- const char *prefix,
-@@ -136,14 +136,14 @@
- Property *property,
- NihList *prototypes,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- char * property_proxy_set_sync_function (const void *parent,
- const char *prefix,
- Interface *interface,
- Property *property,
- NihList *prototypes,
- NihList *structs)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- NIH_END_EXTERN
-
---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_main.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/test_main.c
-@@ -100,10 +100,10 @@
-
- extern char *source_file_path (const void *parent, const char *output_path,
- const char *filename)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
- extern char *header_file_path (const void *parent, const char *output_path,
- const char *filename)
-- __attribute__ ((warn_unused_result, malloc));
-+ __attribute__ ((warn_unused_result));
-
- void
- test_source_file_path (void)
---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_object.c
-@@ -12524,6 +12524,7 @@
- dbus_message_iter_init (reply, &iter);
-
- dbus_message_iter_get_basic (&iter, &str_value);
-+ TEST_NE (str_value[0], '\0');
- TEST_TRUE (strchr ("0123456789", str_value[0]));
-
- dbus_message_unref (reply);
---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_marshal.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/test_marshal.c
-@@ -1479,39 +1479,41 @@
- "\treturn -1;\n"
- "}\n"
- "\n"
-- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
-- "\tDBusMessageIter value_element_iter;\n"
-- "\tconst int16_t * value_element;\n"
-- "\tsize_t value_element_len;\n"
-+ "if (value) {\n"
-+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
-+ "\t\tDBusMessageIter value_element_iter;\n"
-+ "\t\tconst int16_t * value_element;\n"
-+ "\t\tsize_t value_element_len;\n"
- "\n"
-- "\tvalue_element = value[value_i];\n"
-- "\tvalue_element_len = value_len[value_i];\n"
-+ "\t\tvalue_element = value[value_i];\n"
-+ "\t\tvalue_element_len = value_len[value_i];\n"
- "\n"
-
-- "\t/* Marshal an array onto the message */\n"
-- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-+ "\t\t/* Marshal an array onto the message */\n"
-+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"n\", &value_element_iter)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n"
-- "\t\tint16_t value_element_element;\n"
-+ "\t\tfor (size_t value_element_i = 0; value_element_i < value_element_len; value_element_i++) {\n"
-+ "\t\t\tint16_t value_element_element;\n"
- "\n"
-- "\t\tvalue_element_element = value_element[value_element_i];\n"
-+ "\t\t\tvalue_element_element = value_element[value_element_i];\n"
- "\n"
-- "\t\t/* Marshal a int16_t onto the message */\n"
-- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n"
-- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\t\t/* Marshal a int16_t onto the message */\n"
-+ "\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_INT16, &value_element_element)) {\n"
-+ "\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\t\treturn -1;\n"
-+ "\t\t\t}\n"
-+ "\t\t}\n"
-+ "\n"
-+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
- "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
- "\t\t\treturn -1;\n"
- "\t\t}\n"
-- "\t}\n"
-- "\n"
-- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-
-+ "\t}\n"
- "}\n"
- "\n"
- "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n"
-@@ -1766,15 +1768,17 @@
- "\treturn -1;\n"
- "}\n"
- "\n"
-- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
-- "\tconst char *value_element;\n"
-+ "if (value) {\n"
-+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
-+ "\t\tconst char *value_element;\n"
- "\n"
-- "\tvalue_element = value[value_i];\n"
-+ "\t\tvalue_element = value[value_i];\n"
- "\n"
-- "\t/* Marshal a char * onto the message */\n"
-- "\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-+ "\t\t/* Marshal a char * onto the message */\n"
-+ "\t\tif (! dbus_message_iter_append_basic (&value_iter, DBUS_TYPE_STRING, &value_element)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\t}\n"
- "}\n"
- "\n"
-@@ -1933,35 +1937,39 @@
- "\treturn -1;\n"
- "}\n"
- "\n"
-- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
-- "\tDBusMessageIter value_element_iter;\n"
-- "\tchar * const * value_element;\n"
-+ "if (value) {\n"
-+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
-+ "\t\tDBusMessageIter value_element_iter;\n"
-+ "\t\tchar * const * value_element;\n"
- "\n"
-- "\tvalue_element = value[value_i];\n"
-+ "\t\tvalue_element = value[value_i];\n"
- "\n"
-- "\t/* Marshal an array onto the message */\n"
-- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-- "\n"
-- "\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n"
-- "\t\tconst char *value_element_element;\n"
-+ "\t\t/* Marshal an array onto the message */\n"
-+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_ARRAY, \"s\", &value_element_iter)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\t\tvalue_element_element = value_element[value_element_i];\n"
-+ "\t\tif (value_element) {\n"
-+ "\t\t\tfor (size_t value_element_i = 0; value_element[value_element_i]; value_element_i++) {\n"
-+ "\t\t\t\tconst char *value_element_element;\n"
-+ "\n"
-+ "\t\t\t\tvalue_element_element = value_element[value_element_i];\n"
-+ "\n"
-+ "\t\t\t\t/* Marshal a char * onto the message */\n"
-+ "\t\t\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n"
-+ "\t\t\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\t\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\t\t\treturn -1;\n"
-+ "\t\t\t\t}\n"
-+ "\t\t\t}\n"
-+ "\t\t}\n"
- "\n"
-- "\t\t/* Marshal a char * onto the message */\n"
-- "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_element)) {\n"
-- "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
- "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
- "\t\t\treturn -1;\n"
- "\t\t}\n"
- "\t}\n"
-- "\n"
-- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
- "}\n"
- "\n"
- "if (! dbus_message_iter_close_container (&iter, &value_iter)) {\n"
-@@ -2194,16 +2202,18 @@
- "\treturn -1;\n"
- "}\n"
- "\n"
-- "for (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n"
-- "\tconst char *value_item2_element;\n"
-+ "if (value_item2) {\n"
-+ "\tfor (size_t value_item2_i = 0; value_item2[value_item2_i]; value_item2_i++) {\n"
-+ "\t\tconst char *value_item2_element;\n"
- "\n"
-- "\tvalue_item2_element = value_item2[value_item2_i];\n"
-+ "\t\tvalue_item2_element = value_item2[value_item2_i];\n"
- "\n"
-- "\t/* Marshal a char * onto the message */\n"
-- "\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-+ "\t\t/* Marshal a char * onto the message */\n"
-+ "\t\tif (! dbus_message_iter_append_basic (&value_item2_iter, DBUS_TYPE_STRING, &value_item2_element)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_item2_iter);\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\t}\n"
- "}\n"
- "\n"
-@@ -2642,41 +2652,43 @@
- "\treturn -1;\n"
- "}\n"
- "\n"
-- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
-- "\tDBusMessageIter value_element_iter;\n"
-- "\tconst char * value_element_item0;\n"
-- "\tuint32_t value_element_item1;\n"
-- "\tconst MyStructArrayValueElement *value_element;\n"
-+ "if (value) {\n"
-+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
-+ "\t\tDBusMessageIter value_element_iter;\n"
-+ "\t\tconst char * value_element_item0;\n"
-+ "\t\tuint32_t value_element_item1;\n"
-+ "\t\tconst MyStructArrayValueElement *value_element;\n"
- "\n"
-- "\tvalue_element = value[value_i];\n"
-+ "\t\tvalue_element = value[value_i];\n"
- "\n"
-- "\t/* Marshal a structure onto the message */\n"
-- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-+ "\t\t/* Marshal a structure onto the message */\n"
-+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_STRUCT, NULL, &value_element_iter)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\tvalue_element_item0 = value_element->item0;\n"
-+ "\t\tvalue_element_item0 = value_element->item0;\n"
- "\n"
-- "\t/* Marshal a char * onto the message */\n"
-- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-+ "\t\t/* Marshal a char * onto the message */\n"
-+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\tvalue_element_item1 = value_element->item1;\n"
-+ "\t\tvalue_element_item1 = value_element->item1;\n"
- "\n"
-- "\t/* Marshal a uint32_t onto the message */\n"
-- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-+ "\t\t/* Marshal a uint32_t onto the message */\n"
-+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\t}\n"
- "}\n"
- "\n"
-@@ -2912,41 +2924,43 @@
- "\treturn -1;\n"
- "}\n"
- "\n"
-- "for (size_t value_i = 0; value[value_i]; value_i++) {\n"
-- "\tDBusMessageIter value_element_iter;\n"
-- "\tconst char * value_element_item0;\n"
-- "\tuint32_t value_element_item1;\n"
-- "\tconst MyDictEntryArrayValueElement *value_element;\n"
-+ "if (value) {\n"
-+ "\tfor (size_t value_i = 0; value[value_i]; value_i++) {\n"
-+ "\t\tDBusMessageIter value_element_iter;\n"
-+ "\t\tconst char * value_element_item0;\n"
-+ "\t\tuint32_t value_element_item1;\n"
-+ "\t\tconst MyDictEntryArrayValueElement *value_element;\n"
- "\n"
-- "\tvalue_element = value[value_i];\n"
-+ "\t\tvalue_element = value[value_i];\n"
- "\n"
-- "\t/* Marshal a structure onto the message */\n"
-- "\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-+ "\t\t/* Marshal a structure onto the message */\n"
-+ "\t\tif (! dbus_message_iter_open_container (&value_iter, DBUS_TYPE_DICT_ENTRY, NULL, &value_element_iter)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\tvalue_element_item0 = value_element->item0;\n"
-+ "\t\tvalue_element_item0 = value_element->item0;\n"
- "\n"
-- "\t/* Marshal a char * onto the message */\n"
-- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-+ "\t\t/* Marshal a char * onto the message */\n"
-+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_STRING, &value_element_item0)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\tvalue_element_item1 = value_element->item1;\n"
-+ "\t\tvalue_element_item1 = value_element->item1;\n"
- "\n"
-- "\t/* Marshal a uint32_t onto the message */\n"
-- "\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-- "\t}\n"
-+ "\t\t/* Marshal a uint32_t onto the message */\n"
-+ "\t\tif (! dbus_message_iter_append_basic (&value_element_iter, DBUS_TYPE_UINT32, &value_element_item1)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&value_iter, &value_element_iter);\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\n"
-- "\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
-- "\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-- "\t\treturn -1;\n"
-+ "\t\tif (! dbus_message_iter_close_container (&value_iter, &value_element_iter)) {\n"
-+ "\t\t\tdbus_message_iter_abandon_container (&iter, &value_iter);\n"
-+ "\t\t\treturn -1;\n"
-+ "\t\t}\n"
- "\t}\n"
- "}\n"
- "\n"
---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/test_com.netsplit.Nih.Test_proxy.c
-@@ -27359,6 +27359,7 @@
- TEST_TRUE (unix_fd_to_str_replied);
-
- TEST_EQ_P (last_data, parent);
-+ TEST_NE (last_str_value[0], '\0');
- TEST_TRUE (strchr ("0123456789", last_str_value[0]));
- TEST_ALLOC_PARENT (last_str_value, parent);
-
-@@ -27673,6 +27674,7 @@
-
- TEST_EQ (ret, 0);
-
-+ TEST_NE (str_value[0], '\0');
- TEST_TRUE (strchr ("0123456789", str_value[0]));
- TEST_ALLOC_PARENT (str_value, parent);
-
---- libnih-1.0.3.orig/nih-dbus-tool/tests/test_property.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/test_property.c
-@@ -8733,7 +8733,7 @@
- TypeVar * var;
- NihListEntry * attrib;
- NihDBusProxy * proxy = NULL;
-- void * parent = NULL;
-+ void * parent __attribute__((unused)) = NULL;
- pid_t pid = -1;
- int status;
- DBusMessage * method_call;
---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_standard.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_standard.c
-@@ -136,17 +136,19 @@
- goto enomem;
- }
-
-- for (size_t output_i = 0; output[output_i]; output_i++) {
-- const char *output_element;
-+ if (output) {
-+ for (size_t output_i = 0; output[output_i]; output_i++) {
-+ const char *output_element;
-
-- output_element = output[output_i];
-+ output_element = output[output_i];
-
-- /* Marshal a char * onto the message */
-- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-- dbus_message_iter_abandon_container (&iter, &output_iter);
-- dbus_message_unref (reply);
-- reply = NULL;
-- goto enomem;
-+ /* Marshal a char * onto the message */
-+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-+ dbus_message_iter_abandon_container (&iter, &output_iter);
-+ dbus_message_unref (reply);
-+ reply = NULL;
-+ goto enomem;
-+ }
- }
- }
-
---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_standard.c
-@@ -7,7 +7,6 @@
- DBusMessageIter output_iter;
-
- nih_assert (message != NULL);
-- nih_assert (output != NULL);
-
- /* If the sender doesn't care about a reply, don't bother wasting
- * effort constructing and sending one.
-@@ -28,16 +27,18 @@
- return -1;
- }
-
-- for (size_t output_i = 0; output[output_i]; output_i++) {
-- const char *output_element;
--
-- output_element = output[output_i];
--
-- /* Marshal a char * onto the message */
-- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-- dbus_message_iter_abandon_container (&iter, &output_iter);
-- dbus_message_unref (reply);
-- return -1;
-+ if (output) {
-+ for (size_t output_i = 0; output[output_i]; output_i++) {
-+ const char *output_element;
-+
-+ output_element = output[output_i];
-+
-+ /* Marshal a char * onto the message */
-+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-+ dbus_message_iter_abandon_container (&iter, &output_iter);
-+ dbus_message_unref (reply);
-+ return -1;
-+ }
- }
- }
-
---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_reply_function_deprecated.c
-@@ -7,7 +7,6 @@
- DBusMessageIter output_iter;
-
- nih_assert (message != NULL);
-- nih_assert (output != NULL);
-
- /* If the sender doesn't care about a reply, don't bother wasting
- * effort constructing and sending one.
-@@ -28,16 +27,18 @@
- return -1;
- }
-
-- for (size_t output_i = 0; output[output_i]; output_i++) {
-- const char *output_element;
--
-- output_element = output[output_i];
--
-- /* Marshal a char * onto the message */
-- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-- dbus_message_iter_abandon_container (&iter, &output_iter);
-- dbus_message_unref (reply);
-- return -1;
-+ if (output) {
-+ for (size_t output_i = 0; output[output_i]; output_i++) {
-+ const char *output_element;
-+
-+ output_element = output[output_i];
-+
-+ /* Marshal a char * onto the message */
-+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-+ dbus_message_iter_abandon_container (&iter, &output_iter);
-+ dbus_message_unref (reply);
-+ return -1;
-+ }
- }
- }
-
---- libnih-1.0.3.orig/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c
-+++ libnih-1.0.3/nih-dbus-tool/tests/expected/test_method_object_function_no_input.c
-@@ -88,17 +88,19 @@
- goto enomem;
- }
-
-- for (size_t output_i = 0; output[output_i]; output_i++) {
-- const char *output_element;
-+ if (output) {
-+ for (size_t output_i = 0; output[output_i]; output_i++) {
-+ const char *output_element;
-
-- output_element = output[output_i];
-+ output_element = output[output_i];
-
-- /* Marshal a char * onto the message */
-- if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-- dbus_message_iter_abandon_container (&iter, &output_iter);
-- dbus_message_unref (reply);
-- reply = NULL;
-- goto enomem;
-+ /* Marshal a char * onto the message */
-+ if (! dbus_message_iter_append_basic (&output_iter, DBUS_TYPE_STRING, &output_element)) {
-+ dbus_message_iter_abandon_container (&iter, &output_iter);
-+ dbus_message_unref (reply);
-+ reply = NULL;
-+ goto enomem;
-+ }
- }
- }
-
diff --git a/meta-oe/recipes-support/libnih/libnih_1.0.3.bb b/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
deleted file mode 100644
index 3e35f4d1fc..0000000000
--- a/meta-oe/recipes-support/libnih/libnih_1.0.3.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2013 LG Electronics, Inc.
-
-SUMMARY = "libnih library"
-HOMEPAGE = "https://launchpad.net/libnih"
-DESCRIPTION = "libnih is a small library for C application development \
- containing functions that, despite its name, are not implemented \
- elsewhere in the standard library set. \
- \
- libnih is roughly equivalent to other C libraries such as glib, \
- except that its focus is on a small size and intended for \
- applications that sit very low in the software stack, especially \
- outside of /usr. \
- \
- It expressly does not reimplement functions that already exist in \
- libraries ordinarily shipped in /lib such libc6, and does not do \
- foolish things like invent arbitrary typedefs for perfectly good C types."
-
-SECTION = "libs"
-
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "dbus libnih-native"
-DEPENDS_class-native = "dbus-native"
-
-SRC_URI = "https://launchpad.net/${BPN}/1.0/${PV}/+download/${BP}.tar.gz \
- file://libnih_1.0.3-4ubuntu16.patch \
- file://0001-signal.c-SIGCLD-and-SIGCHILD-are-same-on-sytem-V-sys.patch \
- "
-
-SRC_URI[md5sum] = "db7990ce55e01daffe19006524a1ccb0"
-SRC_URI[sha256sum] = "897572df7565c0a90a81532671e23c63f99b4efde2eecbbf11e7857fbc61f405"
-
-inherit autotools
-inherit gettext
-
-# target libnih requires native nih-dbus-tool
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libnvme/libnvme_1.5.bb b/meta-oe/recipes-support/libnvme/libnvme_1.5.bb
new file mode 100644
index 0000000000..4b6f1e30be
--- /dev/null
+++ b/meta-oe/recipes-support/libnvme/libnvme_1.5.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 = "4fea83db8328ea788ea8f1001e8ce1cb80ef5fae"
+
+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
new file mode 100644
index 0000000000..2631f4ae73
--- /dev/null
+++ b/meta-oe/recipes-support/liboauth/liboauth/0001-Support-OpenSSL-1.1.0.patch
@@ -0,0 +1,151 @@
+From c14d9bf71753a38df57cc6538b22ed389d2c2cb1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 4 Sep 2018 17:18:51 -0700
+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]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/hash.c | 65 ++++++++++++++++++++++++++++++++++++------------------
+ 1 file changed, 44 insertions(+), 21 deletions(-)
+
+diff --git a/src/hash.c b/src/hash.c
+index 17ff5c8..e128826 100644
+--- a/src/hash.c
++++ b/src/hash.c
+@@ -362,6 +362,11 @@ looser:
+ #include "oauth.h" // base64 encode fn's.
+ #include <openssl/hmac.h>
+
++#if OPENSSL_VERSION_NUMBER < 0x10100000
++#define EVP_MD_CTX_new EVP_MD_CTX_create
++#define EVP_MD_CTX_free EVP_MD_CTX_destroy
++#endif
++
+ char *oauth_sign_hmac_sha1 (const char *m, const char *k) {
+ return(oauth_sign_hmac_sha1_raw (m, strlen(m), k, strlen(k)));
+ }
+@@ -386,7 +391,7 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) {
+ unsigned char *sig = NULL;
+ unsigned char *passphrase = NULL;
+ unsigned int len=0;
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+
+ EVP_PKEY *pkey;
+ BIO *in;
+@@ -399,24 +404,31 @@ char *oauth_sign_rsa_sha1 (const char *m, const char *k) {
+ return xstrdup("liboauth/OpenSSL: can not read private key");
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++
+ len = EVP_PKEY_size(pkey);
+ sig = (unsigned char*)xmalloc((len+1)*sizeof(char));
+
+- EVP_SignInit(&md_ctx, EVP_sha1());
+- EVP_SignUpdate(&md_ctx, m, strlen(m));
+- if (EVP_SignFinal (&md_ctx, sig, &len, pkey)) {
++ EVP_SignInit(md_ctx, EVP_sha1());
++ EVP_SignUpdate(md_ctx, m, strlen(m));
++ if (EVP_SignFinal (md_ctx, sig, &len, pkey)) {
+ char *tmp;
+ sig[len] = '\0';
+ tmp = oauth_encode_base64(len,sig);
+ OPENSSL_free(sig);
+ EVP_PKEY_free(pkey);
++ EVP_MD_CTX_free(md_ctx);
+ return tmp;
+ }
++ EVP_MD_CTX_free(md_ctx);
+ return xstrdup("liboauth/OpenSSL: rsa-sha1 signing failed");
+ }
+
+ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+- EVP_MD_CTX md_ctx;
++ EVP_MD_CTX *md_ctx;
+ EVP_PKEY *pkey;
+ BIO *in;
+ X509 *cert = NULL;
+@@ -437,13 +449,18 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+ return -2;
+ }
+
++ md_ctx = EVP_MD_CTX_new();
++ if (md_ctx == NULL) {
++ return -2;
++ }
++
+ b64d= (unsigned char*) xmalloc(sizeof(char)*strlen(s));
+ slen = oauth_decode_base64(b64d, s);
+
+- EVP_VerifyInit(&md_ctx, EVP_sha1());
+- EVP_VerifyUpdate(&md_ctx, m, strlen(m));
+- err = EVP_VerifyFinal(&md_ctx, b64d, slen, pkey);
+- EVP_MD_CTX_cleanup(&md_ctx);
++ EVP_VerifyInit(md_ctx, EVP_sha1());
++ EVP_VerifyUpdate(md_ctx, m, strlen(m));
++ err = EVP_VerifyFinal(md_ctx, b64d, slen, pkey);
++ EVP_MD_CTX_free(md_ctx);
+ EVP_PKEY_free(pkey);
+ xfree(b64d);
+ return (err);
+@@ -455,35 +472,41 @@ int oauth_verify_rsa_sha1 (const char *m, const char *c, const char *s) {
+ */
+ char *oauth_body_hash_file(char *filename) {
+ unsigned char fb[BUFSIZ];
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ FILE *F= fopen(filename, "r");
+ if (!F) return NULL;
+
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
+ while (!feof(F) && (len=fread(fb,sizeof(char),BUFSIZ, F))>0) {
+- EVP_DigestUpdate(&ctx, fb, len);
++ EVP_DigestUpdate(ctx, fb, len);
+ }
+ fclose(F);
+ len=0;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
+ char *oauth_body_hash_data(size_t length, const char *data) {
+- EVP_MD_CTX ctx;
++ EVP_MD_CTX *ctx;
+ size_t len=0;
+ unsigned char *md;
+ md=(unsigned char*) xcalloc(EVP_MD_size(EVP_sha1()),sizeof(unsigned char));
+- EVP_MD_CTX_init(&ctx);
+- EVP_DigestInit(&ctx,EVP_sha1());
+- EVP_DigestUpdate(&ctx, data, length);
+- EVP_DigestFinal(&ctx, md,(unsigned int*) &len);
+- EVP_MD_CTX_cleanup(&ctx);
++ ctx = EVP_MD_CTX_new();
++ if (ctx == NULL) {
++ return xstrdup("liboauth/OpenSSL: failed to allocate EVP_MD_CTX");
++ }
++ EVP_DigestInit(ctx,EVP_sha1());
++ EVP_DigestUpdate(ctx, data, length);
++ EVP_DigestFinal(ctx, md,(unsigned int*) &len);
++ EVP_MD_CTX_free(ctx);
+ return oauth_body_hash_encode(len, md);
+ }
+
diff --git a/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb b/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
index 3311da5a8f..d4b8170873 100644
--- a/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
+++ b/meta-oe/recipes-support/liboauth/liboauth_1.0.3.bb
@@ -3,13 +3,15 @@
DESCRIPTION = "C library implementing OAuth Core RFC 5849"
HOMEPAGE = "http://liboauth.sourceforge.net"
-LICENSE = "MIT|GPL-2.0"
+LICENSE = "MIT|GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING.MIT;md5=6266718a5241c045c8099d9be48817df \
file://COPYING.GPL;md5=0636e73ff0215e8d672dc4c32c317bb3"
SECTION = "libs"
DEPENDS = "curl openssl"
-SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz"
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BP}.tar.gz \
+ file://0001-Support-OpenSSL-1.1.0.patch \
+ "
SRC_URI[md5sum] = "689b46c2b3ab1a39735ac33f714c4f7f"
SRC_URI[sha256sum] = "0df60157b052f0e774ade8a8bac59d6e8d4b464058cc55f9208d72e41156811f"
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 d7adb2b941..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 = "GPLv2"
-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/explicit_linking.patch b/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch
deleted file mode 100644
index 05d3bf6f44..0000000000
--- a/meta-oe/recipes-support/liboop/liboop/explicit_linking.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -51,7 +51,7 @@ noinst_PROGRAMS = test-oop
-
- test_oop_SOURCES = test-oop.c
- test_oop_CFLAGS = $(GLIB2_CFLAGS) $(GLIB_INCLUDES) $(TCL_INCLUDES) $(WWW_INCLUDES)
--test_oop_LDADD = $(lib_LTLIBRARIES)
-+test_oop_LDADD = $(lib_LTLIBRARIES) $(GLIB2_LIBS) $(ADNS_LIBS) $(TCL_LIBS) $(READLINE_LIBS)
-
- release: dist
- gzip -dc $(PACKAGE)-$(VERSION).tar.gz | bzip2 -9 \
---- a/liboop-glib2.pc.in
-+++ b/liboop-glib2.pc.in
-@@ -7,5 +7,5 @@ Name: liboop-glib2
- Description: Event loop management library (GLIB2 support)
- Version: @VERSION@
- Requires: liboop = @VERSION@ glib-2.0
--Libs: -L${libdir} -loop-glib2
-+Libs: -L${libdir} -loop-glib2 @GLIB2_LIBS@
- Cflags: -D_REENTRANT -I${includedir}
diff --git a/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch b/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch
deleted file mode 100644
index 0a0242032f..0000000000
--- a/meta-oe/recipes-support/liboop/liboop/new-readline-typedef.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/test-oop.c
-+++ b/test-oop.c
-@@ -180,7 +180,7 @@ static void *stop_readline(oop_source *s
- static void add_readline(oop_source *src) {
- rl_callback_handler_install(
- (char *) "> ", /* readline isn't const-correct */
-- (VFunction *) on_readline);
-+ (rl_vcpfunc_t *) on_readline);
- oop_readline_register(src);
- src->on_signal(src,SIGQUIT,stop_readline,NULL);
- }
diff --git a/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch b/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch
deleted file mode 100644
index 1880a241ac..0000000000
--- a/meta-oe/recipes-support/liboop/liboop/read_bugfixes.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From: Ian Jackson <ijackson@chiark.greenend.org.uk>
-Applied-Upstream: no
-Bug-Debian: http://bugs.debian.org/579604
-Subject: oop-read.h bugfixes
-
-Some years ago I contributed a feature for reading lines and records
-to liboop: oop-read.h and read.c. Since it took a while for that
-feature to make it into distributed versions, for a long time I've
-been using my own copy of the source file. It seems that I fixed a
-couple of bugs in my copy which are still in the Debian package. I
-can't find any record of me having told anyone about them and now I
-find that 1.0-6 still has the bugs.
-
-There are two fixes:
- * Initialise "rd->discard" properly
- * Avoid rd->neednotcheck becoming negative
-
---- a/read.c
-+++ b/read.c
-@@ -114,6 +114,7 @@ oop_read *oop_rd_new(oop_source *oop, oo
- rd->allocbuf= 0;
- rd->used= 0;
- rd->alloc= buf ? bufsz : 0;
-+ rd->discard= 0;
- rd->neednotcheck= 0;
- rd->displacedchar= -1;
- rd->style= *OOP_RD_STYLE_IMMED;
-@@ -235,7 +236,11 @@ static void *on_process(oop_source *oop,
-
- if (rd->discard) {
- rd->used -= rd->discard;
-- rd->neednotcheck -= rd->discard;
-+ if (rd->neednotcheck > rd->discard) {
-+ rd->neednotcheck -= rd->discard;
-+ } else {
-+ rd->neednotcheck= 0;
-+ }
- memmove(buf, buf + rd->discard, rd->used);
- rd->discard= 0;
- }
diff --git a/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch b/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
index e738be54ca..0521aaeaff 100644
--- a/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
+++ b/meta-oe/recipes-support/liboop/liboop/tcl_dev.patch
@@ -1,14 +1,5 @@
---- a/configure
-+++ b/configure
-@@ -19935,7 +19935,7 @@
- fi
-
- if test xno != x$with_tcl; then
-- for version in 8.4 8.3 8.2 8.1 8.0 ; do
-+ for version in "" 8.4 8.3 8.2 8.1 8.0 ; do
- CPPFLAGS="$save_cppflags -I/usr/include/tcl$version"
- as_ac_Lib=`echo "ac_cv_lib_tcl$version''_Tcl_Main" | $as_tr_sh`
- echo "$as_me:$LINENO: checking for Tcl_Main in -ltcl$version" >&5
+Upstream-Status: Pending
+
--- a/configure.ac
+++ b/configure.ac
@@ -71,7 +71,7 @@
diff --git a/meta-oe/recipes-support/liboop/liboop_1.0.1.bb b/meta-oe/recipes-support/liboop/liboop_1.0.1.bb
new file mode 100644
index 0000000000..7ad88b7402
--- /dev/null
+++ b/meta-oe/recipes-support/liboop/liboop_1.0.1.bb
@@ -0,0 +1,20 @@
+DESCRIPTION = "Liboop is a low-level event loop management library for POSIX-based operating systems"
+HOMEPAGE = "http://www.lysator.liu.se/liboop/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=8b54f38ccbd44feb80ab90e01af8b700"
+
+SRC_URI = "http://ftp.lysator.liu.se/pub/liboop/liboop-${PV}.tar.gz \
+ file://tcl_dev.patch \
+"
+
+SRC_URI[md5sum] = "f2b3dff17355fd9a6e2229caca8993f0"
+SRC_URI[sha256sum] = "56af16ad65e7397dadc8268e37ff6f67431db390c60c75e21a33e12b0e0d17e0"
+
+PACKAGECONFIG ?= ""
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0 libpcre"
+PACKAGECONFIG[tcl] = "--with-tcl,--without-tcl,tcl"
+
+EXTRA_OECONF += "--without-adns -without-libwww"
+
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/liboop/liboop_1.0.bb b/meta-oe/recipes-support/liboop/liboop_1.0.bb
deleted file mode 100644
index 82818c2424..0000000000
--- a/meta-oe/recipes-support/liboop/liboop_1.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "Liboop is a low-level event loop management library for POSIX-based operating systems"
-HOMEPAGE = "http://liboop.org/"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8b54f38ccbd44feb80ab90e01af8b700"
-
-SRC_URI = "http://ftp.debian.org/debian/pool/main/libo/liboop/liboop_${PV}.orig.tar.gz \
- file://read_bugfixes.patch \
- file://explicit_linking.patch \
- file://tcl_dev.patch \
- file://new-readline-typedef.patch \
-"
-
-SRC_URI[md5sum] = "36cb971047d3af02369446f5e0b315a2"
-SRC_URI[sha256sum] = "34d83c6e0f09ee15cb2bc3131e219747c3b612bb57cf7d25318ab90da9a2d97c"
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
-PACKAGECONFIG[glib] = "--with-glib,--without-glib,glib-2.0 libpcre"
-PACKAGECONFIG[tcl] = "--with-tcl,--without-tcl,tcl"
-
-EXTRA_OECONF += "--without-adns -without-libwww"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-support/libp11/libp11_0.4.12.bb b/meta-oe/recipes-support/libp11/libp11_0.4.12.bb
new file mode 100644
index 0000000000..2237782009
--- /dev/null
+++ b/meta-oe/recipes-support/libp11/libp11_0.4.12.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Library for using PKCS"
+DESCRIPTION = "\
+Libp11 is a library implementing a small layer on top of PKCS \
+make using PKCS"
+HOMEPAGE = "https://github.com/OpenSC/libp11"
+BUGTRACKER = "https://github.com/OpenSC/libp11/issues"
+SECTION = "Development/Libraries"
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
+DEPENDS = "libtool openssl"
+
+SRC_URI = "git://github.com/OpenSC/libp11.git;branch=master;protocol=https"
+SRCREV = "53d65dc48cf436694f7edcfc805414e608e8a2bf"
+
+UPSTREAM_CHECK_GITTAGREGEX = "libp11-(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
+
+EXTRA_OECONF = "--disable-static"
+
+do_install:append () {
+ rm -rf ${D}${docdir}/${BPN}
+}
+
+FILES:${PN} += "${libdir}/engines*/pkcs11.so"
+FILES:${PN}-dev += "${libdir}/engines*/libpkcs11${SOLIBSDEV}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libp11/libp11_0.4.7.bb b/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
deleted file mode 100644
index 949c33752b..0000000000
--- a/meta-oe/recipes-support/libp11/libp11_0.4.7.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Library for using PKCS"
-DESCRIPTION = "\
-Libp11 is a library implementing a small layer on top of PKCS \
-make using PKCS"
-HOMEPAGE = "http://www.opensc-project.org/libp11"
-SECTION = "Development/Libraries"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=fad9b3332be894bab9bc501572864b29"
-DEPENDS = "libtool openssl"
-
-SRC_URI = "git://github.com/OpenSC/libp11.git"
-SRCREV = "64569a391897bd29c5060b19fa4613e619e59277"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = "--disable-static"
-
-do_install_append () {
- rm -rf ${D}${libdir}/*.la
- rm -rf ${D}${docdir}/${BPN}
-}
-
-FILES_${PN} += "${libdir}/engines/pkcs11.so"
-FILES_${PN}-dev += "${libdir}/engines/libpkcs11${SOLIBSDEV}"
diff --git a/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb b/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb
new file mode 100644
index 0000000000..911582553c
--- /dev/null
+++ b/meta-oe/recipes-support/libpaper/libpaper_2.1.0.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] = "474e9575e1235a0d8e3661f072de0193bab6ea1023363772f698a2cc39d640cf"
+
+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
new file mode 100644
index 0000000000..1940864a20
--- /dev/null
+++ b/meta-oe/recipes-support/libraw/libraw_0.20.2.bb
@@ -0,0 +1,11 @@
+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/libraw1394/libraw1394_2.1.2.bb b/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb
index 337780789d..15e1ee2438 100644
--- a/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb
+++ b/meta-oe/recipes-support/libraw1394/libraw1394_2.1.2.bb
@@ -1,7 +1,7 @@
SUMMARY = "base library for low-level IEEE 1394 accesses"
HOMEPAGE = "https://ieee1394.wiki.kernel.org/index.php/Libraries#libraw1394"
SECTION = "libs"
-LICENSE = "LGPL-2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=d8045f3b8f929c1cb29a1e3fd737b499"
SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.gz"
diff --git a/meta-oe/recipes-support/librdkafka/librdkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch b/meta-oe/recipes-support/librdkafka/librdkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch
new file mode 100644
index 0000000000..053a4cc2d8
--- /dev/null
+++ b/meta-oe/recipes-support/librdkafka/librdkafka/0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch
@@ -0,0 +1,30 @@
+From ed1dd35e0e23a98e57567718a0d474fd29cc348a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 19 Mar 2022 21:36:41 -0700
+Subject: [PATCH] cmake: Use CMAKE_INSTALL_LIBDIR
+
+this ensures that it is portable across platforms e.g. ppc64/linux
+uses lib64 not lib
+
+Upstream-Status: Submitted [https://github.com/edenhill/librdkafka/pull/3770]
+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 d1129bce..774473fa 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -219,7 +219,7 @@ configure_file("packaging/cmake/config.h.in" "${GENERATED_DIR}/config.h")
+
+ include(GNUInstallDirs)
+
+-set(config_install_dir "lib/cmake/${PROJECT_NAME}")
++set(config_install_dir "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
+
+ set(generated_dir "${CMAKE_CURRENT_BINARY_DIR}/generated")
+
+--
+2.35.1
+
diff --git a/meta-oe/recipes-support/librdkafka/librdkafka_1.8.2.bb b/meta-oe/recipes-support/librdkafka/librdkafka_1.8.2.bb
new file mode 100644
index 0000000000..6148e7cb08
--- /dev/null
+++ b/meta-oe/recipes-support/librdkafka/librdkafka_1.8.2.bb
@@ -0,0 +1,23 @@
+SUMMARY = "the Apache Kafka C/C++ client library"
+DESCRIPTION = "librdkafka is a C library implementation of the Apache Kafka protocol, \
+ providing Producer, Consumer and Admin clients."
+HOMEPAGE = "https://github.com/edenhill/librdkafka"
+SECTION = "libs"
+LICENSE = "BSD-2-Clause"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2be8675acbfdac48935e73897af5f646"
+
+SRC_URI = "git://github.com/edenhill/librdkafka;protocol=https;branch=master \
+ file://0001-cmake-Use-CMAKE_INSTALL_LIBDIR.patch \
+ "
+SRCREV = "063a9ae7a65cebdf1cc128da9815c05f91a2a996"
+
+DEPENDS = "zlib openssl zstd"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${datadir}"
+
+EXTRA_OECMAKE += "-DRDKAFKA_BUILD_EXAMPLES=OFF -DRDKAFKA_BUILD_TESTS=OFF"
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..cb30f4c31b
--- /dev/null
+++ b/meta-oe/recipes-support/librsync/librsync_2.3.4.bb
@@ -0,0 +1,18 @@
+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 = "e364852674780e43d578e4239128ff7014190ed3"
+S = "${WORKDIR}/git"
+
+DEPENDS = "popt"
+
+inherit cmake
+
+PACKAGES =+ "rdiff"
+FILES:rdiff = "${bindir}/rdiff"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch b/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
deleted file mode 100644
index 1116c34d07..0000000000
--- a/meta-oe/recipes-support/libsdl-ttf/libsdl-ttf/use.pkg-config.for.freetype2.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 8cf318197eea91bec6057308befbb29426d69014 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Thu, 22 May 2014 10:59:33 +0100
-Subject: [PATCH] freetype-config was removed from oe-core in
-
-commit 5870bd272b0b077d0826fb900b251884c1c05061
-
- binconfig-disabled: Add class and use
-
----
- configure.in | 38 +++++---------------------------------
- 1 file changed, 5 insertions(+), 33 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 865075e..d7a5a81 100644
---- a/configure.in
-+++ b/configure.in
-@@ -90,39 +90,11 @@ case "$host" in
- esac
- AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
-
--dnl Check for the FreeType 2 library
--dnl
--dnl Get the cflags and libraries from the freetype-config script
--dnl
--AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is
--installed (optional)],
-- freetype_prefix="$withval", freetype_prefix="")
--AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix
--where FREETYPE is installed (optional)],
-- freetype_exec_prefix="$withval", freetype_exec_prefix="")
--
--if test x$freetype_exec_prefix != x ; then
-- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
-- fi
--fi
--if test x$freetype_prefix != x ; then
-- freetype_args="$freetype_args --prefix=$freetype_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
-- fi
--fi
--AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
--no_freetype=""
--if test "$FREETYPE_CONFIG" = "no" ; then
-- AC_MSG_ERROR([
--*** Unable to find FreeType2 library (http://www.freetype.org/)
--])
--else
-- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
-- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
--fi
-+PKG_CHECK_MODULES(FREETYPE2, freetype2,
-+ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
-+ LIBS="$LIBS $FREETYPE2_LIBS",
-+ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
-+)
-
- dnl Check for SDL
- SDL_VERSION=1.2.4
diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch b/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
deleted file mode 100644
index 871e6e94ef..0000000000
--- a/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/automake_foreign.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From f9c4ad3a171d676e3818b8f6897f325ccf0b2203 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 9 May 2017 00:57:10 -0700
-
----
- Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index 8166d91..8e05e49 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -2,6 +2,8 @@
-
- lib_LTLIBRARIES = libSDL2_ttf.la
-
-+AUTOMAKE_OPTIONS = foreign
-+
- libSDL2_ttfincludedir = $(includedir)/SDL2
- libSDL2_ttfinclude_HEADERS = \
- SDL_ttf.h
diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch b/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
deleted file mode 100644
index 1dfbec6edd..0000000000
--- a/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf/use.pkg-config.for.freetype2.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From e6d2c0e130811c15b5f5cc10221fae182cb8609e Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Thu, 22 May 2014 10:59:33 +0100
-Subject: [PATCH] freetype-config was removed from oe-core in
-
-commit 5870bd272b0b077d0826fb900b251884c1c05061
-
- binconfig-disabled: Add class and use
-
----
- configure.in | 38 +++++---------------------------------
- 1 file changed, 5 insertions(+), 33 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 9b36e15..f300cae 100644
---- a/configure.in
-+++ b/configure.in
-@@ -86,39 +86,11 @@ case "$host" in
- esac
- AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
-
--dnl Check for the FreeType 2 library
--dnl
--dnl Get the cflags and libraries from the freetype-config script
--dnl
--AC_ARG_WITH(freetype-prefix,[ --with-freetype-prefix=PFX Prefix where FREETYPE is
--installed (optional)],
-- freetype_prefix="$withval", freetype_prefix="")
--AC_ARG_WITH(freetype-exec-prefix,[ --with-freetype-exec-prefix=PFX Exec prefix
--where FREETYPE is installed (optional)],
-- freetype_exec_prefix="$withval", freetype_exec_prefix="")
--
--if test x$freetype_exec_prefix != x ; then
-- freetype_args="$freetype_args --exec-prefix=$freetype_exec_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_exec_prefix/bin/freetype-config
-- fi
--fi
--if test x$freetype_prefix != x ; then
-- freetype_args="$freetype_args --prefix=$freetype_prefix"
-- if test x${FREETYPE_CONFIG+set} != xset ; then
-- FREETYPE_CONFIG=$freetype_prefix/bin/freetype-config
-- fi
--fi
--AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)
--no_freetype=""
--if test "$FREETYPE_CONFIG" = "no" ; then
-- AC_MSG_ERROR([
--*** Unable to find FreeType2 library (http://www.freetype.org/)
--])
--else
-- CFLAGS="$CFLAGS `$FREETYPE_CONFIG $freetypeconf_args --cflags`"
-- LIBS="$LIBS `$FREETYPE_CONFIG $freetypeconf_args --libs`"
--fi
-+PKG_CHECK_MODULES(FREETYPE2, freetype2,
-+ CFLAGS="$CFLAGS $FREETYPE2_CFLAGS"
-+ LIBS="$LIBS $FREETYPE2_LIBS",
-+ AC_MSG_ERROR([*** Unable to find FreeType2 library (http://www.freetype.org/)])
-+)
-
- dnl Check for SDL
- SDL_VERSION=2.0.0
diff --git a/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb b/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
deleted file mode 100644
index 4601593ad8..0000000000
--- a/meta-oe/recipes-support/libsdl-ttf/libsdl2-ttf_2.0.14.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Simple DirectMedia Layer truetype font library"
-SECTION = "libs"
-DEPENDS = "virtual/libsdl2 freetype virtual/libgl"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=cb33e7c4df9fbde389f149ad6bc93ce5"
-
-SRC_URI = " \
- http://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-${PV}.tar.gz \
- file://use.pkg-config.for.freetype2.patch \
- file://automake_foreign.patch \
-"
-SRC_URI[md5sum] = "e53c05e1e7f1382c316afd6c763388b1"
-SRC_URI[sha256sum] = "34db5e20bcf64e7071fe9ae25acaa7d72bdc4f11ab3ce59acc768ab62fe39276"
-
-S = "${WORKDIR}/SDL2_ttf-${PV}"
-
-inherit autotools pkgconfig distro_features_check
-
-# links to libGL.so
-REQUIRED_DISTRO_FEATURES += "x11 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-support/libsmi/libsmi/0001-Define-createIdentifierRef-prototype-in-yang-complex.patch b/meta-oe/recipes-support/libsmi/libsmi/0001-Define-createIdentifierRef-prototype-in-yang-complex.patch
new file mode 100644
index 0000000000..3374f8484e
--- /dev/null
+++ b/meta-oe/recipes-support/libsmi/libsmi/0001-Define-createIdentifierRef-prototype-in-yang-complex.patch
@@ -0,0 +1,53 @@
+From 77b520a8ee193b6d9f12e049f505d8d98204c11c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 17:13:32 -0700
+Subject: [PATCH] Define createIdentifierRef prototype in yang-complex-types.c
+
+Provide needed prototype to make compiler happy
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/parser-yang.y | 3 ++-
+ lib/yang-complex-types.c | 3 ++-
+ 2 files changed, 4 insertions(+), 2 deletions(-)
+
+--- a/lib/parser-yang.y
++++ b/lib/parser-yang.y
+@@ -41,7 +41,8 @@
+ #include "yang-complex-types.h"
+ #include "util.h"
+ #include "error.h"
+-
++#include "yang-check.h"
++
+ #ifdef HAVE_DMALLOC_H
+ #include <dmalloc.h>
+ #endif
+@@ -61,7 +62,8 @@
+ #define debug
+ #endif
+
+-
++extern void createIdentifierRef(struct _YangNode *node, char* prefix, char* ident);
++extern void smiyyerror(char *msg, Parser *parserPtr);
+ /*
+ * NOTE: The argument lvalp ist not really a void pointer. Unfortunately,
+ * we don't know it better at this point. bison generated C code declares
+--- a/lib/yang-complex-types.c
++++ b/lib/yang-complex-types.c
+@@ -35,12 +35,13 @@
+ #include "yang-data.h"
+ #include "yang-check.h"
+ #include "yang-complex-types.h"
+-
+ /*
+ * Current parser defined in parser-yang. Workaround - can't include data.h
+ */
+ extern Parser *currentParser;
+
++extern void createIdentifierRef(struct _YangNode *node, char* prefix, char* ident);
++
+ static const int parents_complex_type[] = {
+ YANG_DECL_MODULE, YANG_DECL_SUBMODULE, YANG_DECL_CONTAINER,
+ YANG_DECL_LIST, YANG_DECL_RPC, YANG_DECL_INPUT,
diff --git a/meta-oe/recipes-support/libsmi/libsmi/0001-parser-yang-Define-_DEFAULT_SOURCE.patch b/meta-oe/recipes-support/libsmi/libsmi/0001-parser-yang-Define-_DEFAULT_SOURCE.patch
new file mode 100644
index 0000000000..9354a889a0
--- /dev/null
+++ b/meta-oe/recipes-support/libsmi/libsmi/0001-parser-yang-Define-_DEFAULT_SOURCE.patch
@@ -0,0 +1,28 @@
+From 86b706f694b822d8028fd36320147767056d2ffa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Sep 2022 12:09:00 -0700
+Subject: [PATCH] parser-yang: Define _DEFAULT_SOURCE
+
+This is needed for timegm API
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lib/parser-yang.y | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/parser-yang.y b/lib/parser-yang.y
+index b111607..0ded9d2 100644
+--- a/lib/parser-yang.y
++++ b/lib/parser-yang.y
+@@ -21,6 +21,7 @@
+ #ifdef BACKEND_YANG
+
+ #define _ISOC99_SOURCE
++#define _DEFAULT_SOURCE
+ #include <stdio.h>
+ #include <errno.h>
+ #include <stdlib.h>
+--
+2.37.3
+
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 b537ce67dc..33e1b6fabd 100644
--- a/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
+++ b/meta-oe/recipes-support/libsmi/libsmi_0.5.0.bb
@@ -1,32 +1,36 @@
SUMMARY = "A Library to Access SMI MIB Information"
HOMEPAGE = "https://www.ibr.cs.tu-bs.de/projects/libsmi"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause & TCL"
LIC_FILES_CHKSUM = "file://COPYING;md5=3ad3076f9332343a21636cfd351f05b7"
SRC_URI = "https://www.ibr.cs.tu-bs.de/projects/${BPN}/download/${BP}.tar.gz \
file://smi.conf \
file://libsmi-fix-the-test-dump-files.patch \
+ file://0001-Define-createIdentifierRef-prototype-in-yang-complex.patch \
+ file://0001-parser-yang-Define-_DEFAULT_SOURCE.patch \
"
SRC_URI[md5sum] = "4bf47483c06c9f07d1b10fbc74eddf11"
SRC_URI[sha256sum] = "f21accdadb1bb328ea3f8a13fc34d715baac6e2db66065898346322c725754d3"
-RDEPENDS_${PN} += "wget"
+DEPENDS += "bison-native flex-native"
-inherit autotools
+RDEPENDS:${PN} += "wget"
-EXTRA_OECONF = "ac_cv_path_SH=${base_bindir}/sh ac_cv_path_WGET=${bindir}/wget"
+inherit autotools-brokensep
-do_install_append () {
+EXTRA_OECONF = "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}
install -m 0644 ${WORKDIR}/smi.conf ${D}${sysconfdir}/smi.conf
}
PACKAGES += "${PN}-mibs ${PN}-pibs ${PN}-yang"
-FILES_${PN}-mibs += "${datadir}/mibs"
-FILES_${PN}-pibs += "${datadir}/pibs"
-FILES_${PN}-yang += "${datadir}/yang"
+FILES:${PN}-mibs += "${datadir}/mibs"
+FILES:${PN}-pibs += "${datadir}/pibs"
+FILES:${PN}-yang += "${datadir}/yang"
-RRECOMMENDS_${PN} = "${BPN}-mibs"
+RRECOMMENDS:${PN} = "${BPN}-mibs"
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 01708df35a..42b9d7e048 100644
--- a/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
+++ b/meta-oe/recipes-support/libsoc/libsoc_0.8.2.bb
@@ -4,13 +4,13 @@ DESCRIPTION = "libsoc is a C library to interface with common peripherals (gpio,
HOMEPAGE = "https://github.com/jackmitch/libsoc"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://LICENCE;md5=e0bfebea12a718922225ba987b2126a5"
-inherit autotools pkgconfig python-dir
+inherit autotools pkgconfig python3-dir
SRCREV = "fd1ad6e7823fa76d8db0d3c5884faffa8ffddafb"
-SRC_URI = "git://github.com/jackmitch/libsoc.git"
+SRC_URI = "git://github.com/jackmitch/libsoc.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
@@ -21,12 +21,12 @@ PACKAGECONFIG ?= ""
PACKAGECONFIG[disabledebug] = "--disable-debug,,"
PACKAGECONFIG[allboardconfigs] = "--with-board-configs,,"
PACKAGECONFIG[enableboardconfig] = "--enable-board=${BOARD},,"
-PACKAGECONFIG[python] = "--enable-python=${PYTHON_PN},,${PYTHON_PN}"
+PACKAGECONFIG[python] = "--enable-python=${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN},,${PYTHON_PN} ${PYTHON_PN}-native"
PACKAGES =+ "${@bb.utils.contains('PACKAGECONFIG', 'python', \
'${PYTHON_PN}-libsoc-staticdev ${PYTHON_PN}-libsoc', '', d)}"
-RDEPENDS_${PN} = "libgcc"
+RDEPENDS:${PN} = "libgcc"
-FILES_${PYTHON_PN}-libsoc-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*/*.a"
-FILES_${PYTHON_PN}-libsoc += "${PYTHON_SITEPACKAGES_DIR}"
+FILES:${PYTHON_PN}-libsoc-staticdev += "${PYTHON_SITEPACKAGES_DIR}/*/*.a"
+FILES:${PYTHON_PN}-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..19775fa529
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh/0001-libgcrypt.c-Fix-prototype-of-des3_encrypt-des3_decry.patch
@@ -0,0 +1,46 @@
+From 0cade4573334571055127a2d4fe3641e2397948d 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 da5588ad..e482b654 100644
+--- a/src/libgcrypt.c
++++ b/src/libgcrypt.c
+@@ -469,12 +469,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);
+ }
+
+--
+2.40.0
+
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..0c7f53029e
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh/0001-tests-CMakeLists.txt-do-not-search-ssh-sshd-commands.patch
@@ -0,0 +1,38 @@
+From d2525ba0bc7b11de12c54ea1a3d1eb862537136d 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 22a36f37..aa32ca2e 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)
+@@ -293,6 +294,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)
+
+--
+2.25.1
+
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..159994e9bb
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh/run-ptest
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+# Valid tests to run
+tests="torture_bind_config \
+ torture_buffer \
+ torture_bytearray \
+ torture_callbacks \
+ torture_channel \
+ torture_config \
+ torture_crypto \
+ torture_hashes \
+ torture_init \
+ torture_isipaddr \
+ torture_keyfiles \
+ torture_knownhosts_parsing \
+ torture_list \
+ torture_misc \
+ torture_moduli \
+ torture_options \
+ torture_packet \
+ torture_packet_filter \
+ torture_pki \
+ torture_pki_ecdsa \
+ torture_pki_ed25519 \
+ torture_pki_rsa \
+ torture_push_pop_dir \
+ torture_rand \
+ torture_session_keys \
+ torture_temp_dir \
+ torture_temp_file \
+ torture_threads_buffer \
+ torture_threads_crypto \
+ torture_threads_init \
+ torture_threads_pki_rsa \
+ torture_tokens \
+ "
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd "$ptestdir"/tests || exit
+
+# Run specified tests
+for f in $tests
+do
+ if test -e ./"$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-support/libssh/libssh_0.10.4.bb b/meta-oe/recipes-support/libssh/libssh_0.10.4.bb
new file mode 100644
index 0000000000..4b2ced5e50
--- /dev/null
+++ b/meta-oe/recipes-support/libssh/libssh_0.10.4.bb
@@ -0,0 +1,45 @@
+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 = "e8322817a9e5aaef0698d779ddd467a209a85d85"
+
+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
+ fi
+}
+
+do_install_ptest () {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -f ${B}/tests/unittests/torture_* ${D}${PTEST_PATH}/tests/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/libssh/libssh_0.7.3.bb b/meta-oe/recipes-support/libssh/libssh_0.7.3.bb
deleted file mode 100644
index 6064969ae0..0000000000
--- a/meta-oe/recipes-support/libssh/libssh_0.7.3.bb
+++ /dev/null
@@ -1,33 +0,0 @@
-SUMMARY = "Multiplatform C library implementing the SSHv2 and SSHv1 protocol"
-HOMEPAGE = "http://www.libssh.org"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=388a4fb1dea8ceae0be78ba9b01fc139"
-
-DEPENDS = "zlib openssl libgcrypt"
-
-SRC_URI = "git://git.libssh.org/projects/libssh.git;branch=v0-7"
-SRCREV = "cdf7690e038230623cbbf6b024ece62f41efa98d"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-PACKAGECONFIG ??=""
-PACKAGECONFIG[gssapi] = "-DWITH_GSSAPI=1, -DWITH_GSSAPI=0, krb5, "
-
-EXTRA_OECMAKE = " \
- -DWITH_GCRYPT=1 \
- -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"
diff --git a/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb b/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
deleted file mode 100644
index 94bfb8f87e..0000000000
--- a/meta-oe/recipes-support/libssh2/libssh2_1.8.0.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "A client-side C library implementing the SSH2 protocol"
-HOMEPAGE = "http://www.libssh2.org/"
-SECTION = "libs"
-
-DEPENDS = "zlib"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=c5cf34fc0acb44b082ef50ef5e4354ca"
-
-SRC_URI = "http://www.libssh2.org/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "3d1147cae66e2959ea5441b183de1b1c"
-SRC_URI[sha256sum] = "39f34e2f6835f4b992cafe8625073a88e5a28ba78f83e8099610a7b3af4676d4"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "\
- --with-libz \
- --with-libz-prefix=${STAGING_LIBDIR} \
- "
-
-# only one of openssl and gcrypt could be set
-PACKAGECONFIG ??= "openssl"
-PACKAGECONFIG[openssl] = "--with-openssl --with-libssl-prefix=${STAGING_LIBDIR},--without-openssl,openssl"
-PACKAGECONFIG[gcrypt] = "--with-libgcrypt --with-libgcrypt-prefix=${STAGING_EXECPREFIXDIR},--without-libgcrypt,libgcrypt"
-
-BBCLASSEXTEND = "native"
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/libtar/libtar_1.2.20.bb b/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
index 60710f416a..f93d9c09a5 100644
--- a/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
+++ b/meta-oe/recipes-support/libtar/libtar_1.2.20.bb
@@ -19,3 +19,5 @@ inherit autotools-brokensep
PACKAGECONFIG ??= "zlib"
PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
+
+BBCLASSEXTEND += "native"
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/0001-team_basic_test.py-check-the-return-value.patch b/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-check-the-return-value.patch
new file mode 100644
index 0000000000..96891c9ea7
--- /dev/null
+++ b/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-check-the-return-value.patch
@@ -0,0 +1,34 @@
+From e86a58271d7d0a3b9cd546251d2527e93898bdb8 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Tue, 21 Dec 2021 11:15:31 +0800
+Subject: [PATCH] team_basic_test.py: check the return value
+
+Not only print the traceback like before, also check the
+return value.
+
+Upstream-Status: Submitted [https://github.com/jpirko/libteam/pull/63]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ scripts/team_basic_test.py | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index 0b64af2..17588c7 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -203,4 +203,10 @@ def main():
+ btest.run()
+
+ if __name__ == "__main__":
+- main()
++ try:
++ ret = main()
++ except Exception as esc:
++ ret = 1
++ import traceback
++ traceback.print_exc()
++ sys.exit(ret)
+--
+2.17.1
+
diff --git a/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-switch-to-python3.patch b/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-switch-to-python3.patch
new file mode 100644
index 0000000000..69276aba91
--- /dev/null
+++ b/meta-oe/recipes-support/libteam/libteam/0001-team_basic_test.py-switch-to-python3.patch
@@ -0,0 +1,101 @@
+From 06050e79655f0fa7d9daeda1fbd3a9a2c7736841 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 2 Dec 2021 15:08:25 +0800
+Subject: [PATCH] team_basic_test.py: switch to python3
+
+Switch the script team_basic_test.py to python3
+
+Upstream-Status: Submitted [https://github.com/jpirko/libteam/pull/63]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ scripts/team_basic_test.py | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/scripts/team_basic_test.py b/scripts/team_basic_test.py
+index faabd18..0b64af2 100755
+--- a/scripts/team_basic_test.py
++++ b/scripts/team_basic_test.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ """
+ Basic test.
+
+@@ -32,11 +32,11 @@ def usage():
+ """
+ Print usage of this app
+ """
+- print "Usage: team_basic_test.py [OPTION...]"
+- print ""
+- print " -h, --help print this message"
+- print " -c, --loop-count=NUMBER number of loops (default 1)"
+- print " -p, --port=NETDEV port device (can be defined multiple times)"
++ print("Usage: team_basic_test.py [OPTION...]")
++ print("")
++ print(" -h, --help print this message")
++ print(" -c, --loop-count=NUMBER number of loops (default 1)")
++ print(" -p, --port=NETDEV port device (can be defined multiple times)")
+ sys.exit()
+
+ class CmdExecFailedException(Exception):
+@@ -55,15 +55,15 @@ class CmdExecUnexpectedOutputException(Exception):
+ return "Command execution output unexpected: \"%s\" != \"%s\"" % (self.__output, self.__expected_output)
+
+ def print_output(out_type, string):
+- print("%s:\n"
++ print(("%s:\n"
+ "----------------------------\n"
+ "%s"
+- "----------------------------" % (out_type, string))
++ "----------------------------" % (out_type, string)))
+
+ def cmd_exec(cmd, expected_output=None, cleaner=False):
+ cmd = cmd.rstrip(" ")
+ if not cleaner:
+- print("# \"%s\"" % cmd)
++ print(("# \"%s\"" % cmd))
+ subp = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE,
+ stderr=subprocess.PIPE)
+ (data_stdout, data_stderr) = subp.communicate()
+@@ -74,7 +74,7 @@ def cmd_exec(cmd, expected_output=None, cleaner=False):
+ if data_stderr:
+ print_output("Stderr", data_stderr)
+ raise CmdExecFailedException(subp.returncode)
+- output = data_stdout.rstrip()
++ output = (data_stdout.rstrip()).decode()
+ if expected_output:
+ if output != expected_output:
+ raise CmdExecUnexpectedOutputException(output, expected_output)
+@@ -166,7 +166,7 @@ TEAM_PORT_CONFIG='{"prio": 10}'
+ os.removedirs("/tmp/team_test/")
+
+ def _run_one_loop(self, run_nr):
+- print "RUN #%d" % (run_nr)
++ print("RUN #%d" % (run_nr))
+ self._created_teams = []
+ try:
+ for mode_name in self._team_modes:
+@@ -176,7 +176,7 @@ TEAM_PORT_CONFIG='{"prio": 10}'
+ cmd_exec("modprobe -r team_mode_loadbalance team_mode_roundrobin team_mode_activebackup team_mode_broadcast team");
+
+ def run(self):
+- for i in xrange(self._loop_count):
++ for i in range(self._loop_count):
+ self._run_one_loop(i + 1)
+
+ def main():
+@@ -186,8 +186,8 @@ def main():
+ "hc:p:",
+ ["help", "loop-count=", "port="]
+ )
+- except getopt.GetoptError, err:
+- print str(err)
++ except getopt.GetoptError as err:
++ print(str(err))
+ usage()
+
+ btest = TeamBasicTest()
+--
+2.17.1
+
diff --git a/meta-oe/recipes-support/libteam/libteam/0001-teamd-Include-missing-headers-for-strrchr-and-memcmp.patch b/meta-oe/recipes-support/libteam/libteam/0001-teamd-Include-missing-headers-for-strrchr-and-memcmp.patch
new file mode 100644
index 0000000000..5f8e56177e
--- /dev/null
+++ b/meta-oe/recipes-support/libteam/libteam/0001-teamd-Include-missing-headers-for-strrchr-and-memcmp.patch
@@ -0,0 +1,46 @@
+From 49693cac37ee35ff673240c8060201efe0d999c2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Aug 2022 22:27:03 -0700
+Subject: [PATCH] teamd: Include missing headers for strrchr and memcmp
+
+Compiler does not see the prototype for these functions otherwise and
+build fails e.g.
+
+| ../../git/teamd/teamd_phys_port_check.c:52:10: error: call to undeclared library function 'strrchr' with type 'char *(const char *, int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+| start = strrchr(link, '/');
+| ^
+
+Upstream-Status: Submitted [https://github.com/jpirko/libteam/pull/68]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ teamd/teamd_phys_port_check.c | 1 +
+ teamd/teamd_runner_loadbalance.c | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/teamd/teamd_phys_port_check.c b/teamd/teamd_phys_port_check.c
+index 1eec129..c2454ab 100644
+--- a/teamd/teamd_phys_port_check.c
++++ b/teamd/teamd_phys_port_check.c
+@@ -19,6 +19,7 @@
+
+ #include <stdio.h>
+ #include <errno.h>
++#include <string.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
+diff --git a/teamd/teamd_runner_loadbalance.c b/teamd/teamd_runner_loadbalance.c
+index a581472..421a7c6 100644
+--- a/teamd/teamd_runner_loadbalance.c
++++ b/teamd/teamd_runner_loadbalance.c
+@@ -17,6 +17,7 @@
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
++#include <string.h>
+ #include <sys/socket.h>
+ #include <linux/netdevice.h>
+ #include <team.h>
+--
+2.37.2
+
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/run-ptest b/meta-oe/recipes-support/libteam/libteam/run-ptest
index 4ba5acf051..26f097d587 100644
--- a/meta-oe/recipes-support/libteam/libteam/run-ptest
+++ b/meta-oe/recipes-support/libteam/libteam/run-ptest
@@ -1,3 +1,8 @@
#!/bin/sh
-python $(dirname $0)/team_basic_test.py
+python3 $(dirname $0)/team_basic_test.py
+if [ $? -eq 0 ] ; then
+ echo "PASS: libteam"
+else
+ echo "FAIL: libteam"
+fi
diff --git a/meta-oe/recipes-support/libteam/libteam_1.27.bb b/meta-oe/recipes-support/libteam/libteam_1.27.bb
deleted file mode 100644
index 442592de90..0000000000
--- a/meta-oe/recipes-support/libteam/libteam_1.27.bb
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Library for controlling team network device"
-HOMEPAGE = "http://www.libteam.org/"
-SECTION = "libs/network"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-DEPENDS = "libnl libdaemon jansson"
-
-SRC_URI = "git://github.com/jpirko/libteam \
- file://0001-include-sys-select.h-for-fd_set-definition.patch \
- file://0002-teamd-Re-adjust-include-header-order.patch \
- file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \
- file://run-ptest \
- "
-SRCREV = "91a928a56a501daac5ce8b3c16bd9943661f1d16"
-
-SRC_URI[md5sum] = "565114d70c41bff6093d8e57be284e8a"
-SRC_URI[sha256sum] = "d65286379141db141bea33424ec0507bb0f827a0bf03d9c65004bb593e3d5545"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig ptest
-
-FILES_${PN} = "${libdir}/libteam${SOLIBS} \
-"
-
-PACKAGES += "${PN}-dctl ${PN}-utils"
-FILES_${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \
-"
-FILES_${PN}-utils = "${bindir}/bond2team \
- ${bindir}/teamd \
- ${bindir}/teamdctl \
- ${bindir}/teamnl \
-"
-
-RDEPENDS_${PN}-utils = "bash"
-RDEPENDS_${PN}-ptest = "python"
-
-do_install_ptest() {
- install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/
-}
diff --git a/meta-oe/recipes-support/libteam/libteam_1.31.bb b/meta-oe/recipes-support/libteam/libteam_1.31.bb
new file mode 100644
index 0000000000..023cea9039
--- /dev/null
+++ b/meta-oe/recipes-support/libteam/libteam_1.31.bb
@@ -0,0 +1,42 @@
+SUMMARY = "Library for controlling team network device"
+HOMEPAGE = "http://www.libteam.org/"
+SECTION = "libs/network"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+DEPENDS = "libnl libdaemon jansson"
+
+SRC_URI = "git://github.com/jpirko/libteam;branch=master;protocol=https \
+ file://0001-include-sys-select.h-for-fd_set-definition.patch \
+ file://0002-teamd-Re-adjust-include-header-order.patch \
+ file://0001-team_basic_test.py-disable-RedHat-specific-test.patch \
+ file://0001-team_basic_test.py-switch-to-python3.patch \
+ file://0001-team_basic_test.py-check-the-return-value.patch \
+ file://0001-teamd-Include-missing-headers-for-strrchr-and-memcmp.patch \
+ file://run-ptest \
+ "
+SRCREV = "3ee12c6d569977cf1cd30d0da77807a07aa77158"
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig ptest
+
+FILES:${PN} = "${libdir}/libteam${SOLIBS} \
+"
+
+PACKAGES += "${PN}-dctl ${PN}-utils"
+FILES:${PN}-dctl = "${libdir}/libteamdctl${SOLIBS} \
+"
+FILES:${PN}-utils = "${bindir}/bond2team \
+ ${bindir}/teamd \
+ ${bindir}/teamdctl \
+ ${bindir}/teamnl \
+"
+
+RDEPENDS:${PN}-utils = "bash"
+RDEPENDS:${PN}-ptest = "python3-core"
+
+do_install_ptest() {
+ install ${S}/scripts/team_basic_test.py ${D}${PTEST_PATH}/
+}
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_6.2.0.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_6.2.0.bb
deleted file mode 100644
index bbb69a1dd6..0000000000
--- a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_6.2.0.bb
+++ /dev/null
@@ -1,15 +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://tinyxml2.cpp;endline=22;md5=c19221dbd8a66ad3090462af4c5de5e7"
-
-SRC_URI = "git://github.com/leethomason/tinyxml2.git"
-
-SRCREV = "c1424ee4e1c1ed8129d9147ccc920ab92dd9ef86"
-
-S = "${WORKDIR}/git"
-
-inherit cmake
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb
new file mode 100644
index 0000000000..7ef4d89ce0
--- /dev/null
+++ b/meta-oe/recipes-support/libtinyxml2/libtinyxml2_9.0.0.bb
@@ -0,0 +1,25 @@
+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"
+
+SRCREV = "1dee28e51f9175a31955b9791c74c430fe13dc82"
+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)}"
+
+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
+ install -Dm 0644 ${B}/resources/*.xml ${D}${PTEST_PATH}/resources/
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb b/meta-oe/recipes-support/libtommath/libtommath_1.2.0.bb
new file mode 100644
index 0000000000..1efccdd843
--- /dev/null
+++ b/meta-oe/recipes-support/libtommath/libtommath_1.2.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 = "6ca6898bf37f583c4cc9943441cd60dd69f4b8f2"
+
+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
new file mode 100644
index 0000000000..03ab075314
--- /dev/null
+++ b/meta-oe/recipes-support/liburing/liburing/0001-do-not-build-examples.patch
@@ -0,0 +1,30 @@
+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/0001-examples-test-Remove-unused-linux-errqueue.h.patch b/meta-oe/recipes-support/liburing/liburing/0001-examples-test-Remove-unused-linux-errqueue.h.patch
new file mode 100644
index 0000000000..21aaf8d991
--- /dev/null
+++ b/meta-oe/recipes-support/liburing/liburing/0001-examples-test-Remove-unused-linux-errqueue.h.patch
@@ -0,0 +1,47 @@
+From 0fbcc44fe1fb2dc6807660b2cff1c2995add095b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 18 Feb 2023 18:01:22 -0800
+Subject: [PATCH] examples,test: Remove unused linux/errqueue.h
+
+This header is not needed therefore remove it, this cleanup also helps
+compiling on musl/clang
+
+/usr/include/linux/errqueue.h:57:20: error: array has incomplete element typ
+e 'struct timespec'
+ struct timespec ts[3];
+ ^
+
+Upstream-Status: Submitted [https://github.com/axboe/liburing/pull/798]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ examples/send-zerocopy.c | 1 -
+ test/send-zerocopy.c | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/examples/send-zerocopy.c b/examples/send-zerocopy.c
+index 6092af9..cf1fa8b 100644
+--- a/examples/send-zerocopy.c
++++ b/examples/send-zerocopy.c
+@@ -13,7 +13,6 @@
+ #include <string.h>
+
+ #include <arpa/inet.h>
+-#include <linux/errqueue.h>
+ #include <linux/if_packet.h>
+ #include <linux/ipv6.h>
+ #include <linux/socket.h>
+diff --git a/test/send-zerocopy.c b/test/send-zerocopy.c
+index 86a31cd..5d578c6 100644
+--- a/test/send-zerocopy.c
++++ b/test/send-zerocopy.c
+@@ -11,7 +11,6 @@
+ #include <string.h>
+
+ #include <arpa/inet.h>
+-#include <linux/errqueue.h>
+ #include <linux/if_packet.h>
+ #include <linux/ipv6.h>
+ #include <linux/socket.h>
+--
+2.39.2
+
diff --git a/meta-oe/recipes-support/liburing/liburing_2.3.bb b/meta-oe/recipes-support/liburing/liburing_2.3.bb
new file mode 100644
index 0000000000..7d8c2f596d
--- /dev/null
+++ b/meta-oe/recipes-support/liburing/liburing_2.3.bb
@@ -0,0 +1,33 @@
+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 \
+ file://0001-examples-test-Remove-unused-linux-errqueue.h.patch"
+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 = "f5cac78e621ab452d3035902085f66d2bf73243b"
+
+PV .= "+2.4+git${SRCPV}"
+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
new file mode 100644
index 0000000000..7df44737ad
--- /dev/null
+++ b/meta-oe/recipes-support/libusb/libusb-compat/0001-usb.h-Include-sys-types.h.patch
@@ -0,0 +1,30 @@
+From 840795dcb48214b74cfde75e7ce5e8a1a6c64a46 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 2 Apr 2015 19:18:45 -0700
+Subject: [PATCH] usb.h: Include sys/types.h
+
+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 ea62543..18b610a 100644
+--- a/libusb/usb.h
++++ b/libusb/usb.h
+@@ -46,6 +46,8 @@ typedef unsigned __int32 uint32_t;
+ #include <stdint.h>
+ #endif
+
++#include <sys/types.h>
++
+ /* 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.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/libusbg/libusbg_git.bb b/meta-oe/recipes-support/libusbg/libusbg_git.bb
index 97d60a6a8a..716d9c4ce4 100644
--- a/meta-oe/recipes-support/libusbg/libusbg_git.bb
+++ b/meta-oe/recipes-support/libusbg/libusbg_git.bb
@@ -1,16 +1,19 @@
SUMMARY = "USB Gadget Configfs Library"
-LICENSE = "GPLv2 & LGPLv2.1"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
-inherit autotools
+inherit autotools update-alternatives
PV = "0.1.0"
SRCREV = "a826d136e0e8fa53815f1ba05893e6dd74208c15"
-SRC_URI = "git://github.com/libusbg/libusbg.git \
+SRC_URI = "git://github.com/libusbg/libusbg.git;branch=master;protocol=https \
file://0001-Fix-out-of-tree-builds.patch \
"
S = "${WORKDIR}/git"
+ALTERNATIVE:${PN} = "gadget-acm-ecm show-gadgets"
+ALTERNATIVE_LINK_NAME[gadget-acm-ecm] = "${bindir}/gadget-acm-ecm"
+ALTERNATIVE_LINK_NAME[show-gadgets] = "${bindir}/show-gadgets"
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx-config.bb b/meta-oe/recipes-support/libusbgx/libusbgx-config.bb
new file mode 100644
index 0000000000..b269e33c44
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx-config.bb
@@ -0,0 +1,12 @@
+SUMMARY = "USB Gadget Configuration Files"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+SRC_URI = "file://usbgx.default"
+
+do_configure[noexec] = "1"
+do_compile[noexec] = "1"
+
+do_install() {
+ install -Dm 0644 ${WORKDIR}/usbgx.default ${D}${sysconfdir}/default/usbgx
+}
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default b/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default
new file mode 100644
index 0000000000..f690dfe2ab
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx-config/usbgx.default
@@ -0,0 +1,2 @@
+IMPORT_SCHEMAS=""
+ENABLED_SCHEMAS="$IMPORT_SCHEMAS"
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..1ab3494e18
--- /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 fc7855891c66599487265701294963bb0772bb80 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 c1bbb14..1ea55dc 100644
+--- a/include/usbg/function/uac2.h
++++ b/include/usbg/function/uac2.h
+@@ -53,9 +53,6 @@ union usbg_f_uac2_attr_val {
+ int p_ssize;
+ };
+
+-#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.
+@@ -115,7 +112,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
+@@ -137,8 +134,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);
+ }
+
+ /**
+@@ -161,8 +158,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);
+ }
+
+ /**
+@@ -185,8 +182,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);
+ }
+
+ /**
+@@ -209,8 +206,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);
+ }
+
+ /**
+@@ -233,8 +230,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);
+ }
+
+ /**
+@@ -257,8 +254,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 ab91af9..d7dcd5d 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 f2c1a49..38a9b0f 100644
+--- a/src/function/uac2.c
++++ b/src/function/uac2.c
+@@ -89,7 +89,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;
+ }
+@@ -174,8 +174,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;
+@@ -193,8 +193,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.25.1
+
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
new file mode 100755
index 0000000000..e80cb2c340
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+[ -r /etc/default/usbgx ] && . /etc/default/usbgx
+
+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
+ echo ${configured_udc} > /sys/kernel/config/usb_gadget/"$i"/UDC
+ else
+ ls /sys/class/udc/ > /sys/kernel/config/usb_gadget/"$i"/UDC
+ fi
+done
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
new file mode 100644
index 0000000000..d1938078f0
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.initd
@@ -0,0 +1,143 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: usbg
+# Required-Start: $local_fs
+# Should-Start:
+# Required-Stop: $local_fs
+# Should-Stop:
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Example initscript
+# Description: This file should be used to construct scripts to be
+# placed in /etc/init.d
+### END INIT INFO
+
+# PATH should only include /usr/* if it runs after the mountnfs.sh script
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+
+DESC="Load USB gadget schemas"
+NAME="usbgx"
+DAEMON=/usr/bin/gadget-start
+DAEMON_ARGS=""
+PIDFILE=/var/run/$NAME.pid
+
+. /etc/init.d/functions || exit 1
+
+# Exit if the package is not installed
+[ -x "$DAEMON" ] || exit 0
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME
+
+#
+# Function that starts the daemon/service
+#
+do_start() {
+ local status pid
+
+ status=0
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "$DESC already running ($pid)."
+ exit 1
+ ;;
+ *)
+ echo "Starting $DESC ..."
+ exec $DAEMON $DAEMON_ARGS >/dev/null 2>&1 || status=$?
+ echo "ERROR: Failed to start $DESC."
+ exit $status
+ ;;
+ esac
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop() {
+ local pid status
+
+ status=0
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ # Exit when fail to stop, the kill would complain when fail
+ kill -s 15 $pid >/dev/null && rm -f $PIDFILE && \
+ echo "Stopped $DESC ($pid)." || exit $?
+ ;;
+ *)
+ echo "$DESC is not running; none killed." >&2
+ ;;
+ esac
+
+ return $status
+}
+
+#
+# Function that sends a SIGHUP to the daemon/service
+#
+do_reload() {
+ local pid status
+
+ status=0
+ # If the daemon can reload its configuration without
+ # restarting (for example, when it is sent a SIGHUP),
+ # then implement that here.
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "Reloading $DESC ..."
+ kill -s 1 $pid || exit $?
+ ;;
+ *)
+ echo "$DESC is not running; none reloaded." >&2
+ ;;
+ esac
+ exit $status
+}
+
+
+#
+# Function that shows the daemon/service status
+#
+status_of_proc () {
+ local pid status
+
+ status=0
+ # pidof output null when no program is running, so no "2>/dev/null".
+ pid=`pidofproc $NAME` || status=$?
+ case $status in
+ 0)
+ echo "$DESC is running ($pid)."
+ exit 0
+ ;;
+ *)
+ echo "$DESC is not running." >&2
+ exit $status
+ ;;
+ esac
+}
+
+case "$1" in
+ start)
+ do_start
+ ;;
+ stop)
+ do_stop || exit $?
+ ;;
+ status)
+ status_of_proc
+ ;;
+ restart)
+ # Always start the service regardless the status of do_stop
+ do_stop
+ do_start
+ ;;
+ try-restart|force-reload)
+ do_stop && do_start
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|status|restart|try-restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
new file mode 100644
index 0000000000..ba92f1ab83
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Load USB gadget schemas
+Requires=sys-kernel-config.mount
+After=sys-kernel-config.mount
+
+[Service]
+Type=simple
+ExecStart=/usr/bin/gadget-start
+
+[Install]
+WantedBy=usb-gadget.target
diff --git a/meta-oe/recipes-support/libusbgx/libusbgx_git.bb b/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
new file mode 100644
index 0000000000..7998b0c155
--- /dev/null
+++ b/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
@@ -0,0 +1,58 @@
+SUMMARY = "USB Gadget neXt Configfs Library"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
+ file://COPYING.LGPL;md5=4fbd65380cdd255951079008b364516c"
+
+inherit autotools pkgconfig systemd update-rc.d update-alternatives
+
+PV = "0.2.0+git${SRCPV}"
+SRCREV = "721e3a1cbd7e2b6361bb439d3959e7403e4f0092"
+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://usbgx.initd \
+ file://usbgx.service \
+"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= "examples gadget-schemes libconfig"
+PACKAGECONFIG[libconfig] = "--with-libconfig=yes,--without-libconfig,libconfig"
+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 = "${@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 = "${@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
+ sed -i -e 's,/usr/bin,${bindir},g' -e 's,/etc,${sysconfdir},g' ${D}${bindir}/gadget-start
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -Dm 0644 ${WORKDIR}/usbgx.service ${D}${systemd_system_unitdir}/usbgx.service
+ fi
+
+ if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
+ install -Dm 0755 ${WORKDIR}/usbgx.initd ${D}${sysconfdir}/init.d/usbgx
+ fi
+}
+
+FILES:${PN}-examples = "${bindir}/* ${sysconfdir}/*"
+RDEPENDS:${PN}-examples += "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'libusbgx-config', '', d)}"
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE:${PN}-examples = "${@bb.utils.contains('PACKAGECONFIG', 'examples', 'gadget-acm-ecm show-gadgets', '', d)}"
+ALTERNATIVE_LINK_NAME[gadget-acm-ecm] = "${bindir}/gadget-acm-ecm"
+ALTERNATIVE_LINK_NAME[show-gadgets] = "${bindir}/show-gadgets"
diff --git a/meta-oe/recipes-support/libutempter/libutempter.bb b/meta-oe/recipes-support/libutempter/libutempter.bb
deleted file mode 100644
index 8c84cb376f..0000000000
--- a/meta-oe/recipes-support/libutempter/libutempter.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "A privileged helper for utmp/wtmp updates"
-DESCRIPTION = "\
-This library provides interface for terminal emulators such as \
-screen and xterm to record user sessions to utmp and wtmp files."
-HOMEPAGE = "ftp://ftp.altlinux.org/pub/people/ldv/utempter"
-SECTION = "System Environment/Libraries"
-LICENSE = "GPLv2 & GPLv2+ & LGPLv2 & MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-SRCREV = "3ef74fff310f09e2601e241b9f042cd39d591018"
-PV = "1.1.6-alt2+git${SRCPV}"
-
-SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git \
- file://0001-Fix-macro-error.patch \
- file://libutempter-remove-glibc-assumption.patch \
- "
-
-S = "${WORKDIR}/git/${BPN}"
-
-CFLAGS += "-DLIBEXECDIR=${libexecdir}"
-
-do_compile() {
- oe_runmake \
- libdir=${libdir} \
- libexecdir=${libexecdir}
-}
-
-do_install() {
- oe_runmake install \
- DESTDIR=${D} \
- libdir="${libdir}" \
- libexecdir="${libexecdir}" \
- includedir=${includedir} \
- mandir=${mandir}
-
- rm -f ${D}${libdir}/*.a
-}
-
-FILES_${PN} = "${libdir}/*.so.*"
-FILES_${PN} += "${libexecdir}/utempter/utempter"
-FILES_${PN}-dbg += "${libexecdir}/utempter/.debug/utempter"
diff --git a/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch b/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch
index 8140ea3438..00119af11c 100644
--- a/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch
+++ b/meta-oe/recipes-support/libutempter/libutempter/0001-Fix-macro-error.patch
@@ -11,15 +11,13 @@ Signed-off-by: Qian Lei <qianl.fnst@cn.fujitsu.com>
iface.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
-diff --git a/iface.c b/iface.c
-index 5951d81..27793f0 100644
--- a/iface.c
+++ b/iface.c
@@ -43,7 +43,14 @@
__result; }))
#endif
--#define UTEMPTER_DEFAULT_PATHNAME LIBEXECDIR "/utempter/utempter"
+-#define UTEMPTER_DEFAULT_PATHNAME LIBEXECDIR "/utempter/utempter"
+#ifdef LIBEXECDIR
+# define CAT_PATH(DIR1,DIR2) DIR1##DIR2
+# define RAW_UTEMPTER_PATH CAT_PATH(LIBEXECDIR,/utempter/utempter)
@@ -31,6 +29,3 @@ index 5951d81..27793f0 100644
static const char *utempter_pathname;
static int saved_fd = -1;
---
-1.8.3.1
-
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
new file mode 100644
index 0000000000..f43f54eaab
--- /dev/null
+++ b/meta-oe/recipes-support/libutempter/libutempter/0002-Proper-macro-path-generation.patch
@@ -0,0 +1,36 @@
+From 48b6bcf9f5d8a05eace4bc463c47e8a4715d3000 Mon Sep 17 00:00:00 2001
+From: iddinev <xidinev@gmail.com>
+Date: Mon, 18 Mar 2019 15:45:20 +0200
+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 libutempter/iface.c libutempter/iface.c
+index 27793f0..c1c0ee9 100644
+--- libutempter/iface.c
++++ libutempter/iface.c
+@@ -44,13 +44,12 @@
+ #endif
+
+ #ifdef LIBEXECDIR
+-# define CAT_PATH(DIR1,DIR2) DIR1##DIR2
+-# define RAW_UTEMPTER_PATH CAT_PATH(LIBEXECDIR,/utempter/utempter)
++# define UTEMPTER_DEFAULT_PATHNAME XSTR_PATH(LIBEXECDIR)"/utempter/utempter"
+ #else
+-# define RAW_UTEMPTER_PATH /usr/lib/libtempter/utempter/utempter
++# define UTEMPTER_DEFAULT_PATHNAME STR_PATH(/usr/lib/libtempter/utempter/utempter)
+ #endif
+ #define STR_PATH(RAW_STR) #RAW_STR
+-#define UTEMPTER_DEFAULT_PATHNAME STR_PATH(RAW_UTEMPTER_PATH)
++#define XSTR_PATH(STR) STR_PATH(STR)
+
+ static const char *utempter_pathname;
+ static int saved_fd = -1;
+--
+2.7.4
+
diff --git a/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch b/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch
deleted file mode 100644
index 6ed93355bb..0000000000
--- a/meta-oe/recipes-support/libutempter/libutempter/libutempter-remove-glibc-assumption.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-diff -Naur libutempter-1.1.6.orig/utempter.c libutempter-1.1.6/utempter.c
---- libutempter-1.1.6.orig/utempter.c 2010-11-04 13:14:53.000000000 -0400
-+++ libutempter-1.1.6/utempter.c 2014-06-20 16:37:09.762403323 -0400
-@@ -34,13 +34,7 @@
- #include <sys/stat.h>
- #include <utmp.h>
-
--#ifdef __GLIBC__
- # include <pty.h>
--#elif defined(__FreeBSD__)
--# include <libutil.h>
--#else
--# error Unsupported platform
--#endif /* __GLIBC__ || __FreeBSD__ */
-
- #define DEV_PREFIX "/dev/"
- #define DEV_PREFIX_LEN (sizeof(DEV_PREFIX)-1)
-@@ -106,17 +100,12 @@
-
- static int
- write_uwtmp_record(const char *user, const char *term, const char *host,
--#ifdef __GLIBC__
- pid_t pid,
--#endif
- int add)
- {
- struct utmp ut;
- struct timeval tv;
--
--#ifdef __GLIBC__
- size_t offset;
--#endif
-
- memset(&ut, 0, sizeof(ut));
-
-@@ -128,8 +117,6 @@
- if (host)
- strncpy(ut.ut_host, host, sizeof(ut.ut_host));
-
--#ifdef __GLIBC__
--
- offset = (strlen(term) <= sizeof(ut.ut_id)) ? 0 :
- strlen(term) - sizeof(ut.ut_id);
- strncpy(ut.ut_id, term + offset, sizeof(ut.ut_id));
-@@ -156,27 +143,6 @@
-
- (void) updwtmp(_PATH_WTMP, &ut);
-
--#elif defined(__FreeBSD__)
--
-- ut.ut_time = tv.tv_sec;
--
-- if (add)
-- {
-- login(&ut);
-- } else
-- {
-- if (logout(term) != 1)
-- {
--#ifdef UTEMPTER_DEBUG
-- fprintf(stderr, "utempter: logout: %s\n",
-- strerror(errno));
--#endif
-- exit(EXIT_FAILURE);
-- }
-- }
--
--#endif /* __GLIBC__ || __FreeBSD__ */
--
- #ifdef UTEMPTER_DEBUG
- fprintf(stderr,
- "utempter: DEBUG: utmp/wtmp record %s for terminal '%s'\n",
-@@ -255,8 +221,6 @@
- validate_device(device);
-
- return write_uwtmp_record(pw->pw_name, device + DEV_PREFIX_LEN, host,
--#ifdef __GLIBC__
- pid,
--#endif
- add);
- }
diff --git a/meta-oe/recipes-support/libutempter/libutempter_1.2.2-alt1.bb b/meta-oe/recipes-support/libutempter/libutempter_1.2.2-alt1.bb
new file mode 100644
index 0000000000..0d2cd135c6
--- /dev/null
+++ b/meta-oe/recipes-support/libutempter/libutempter_1.2.2-alt1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "A privileged helper for utmp/wtmp updates"
+DESCRIPTION = "\
+This library provides interface for terminal emulators such as \
+screen and xterm to record user sessions to utmp and wtmp files."
+HOMEPAGE = "ftp://ftp.altlinux.org/pub/people/ldv/utempter"
+SECTION = "System Environment/Libraries"
+LICENSE = "GPL-2.0-only & GPL-2.0-or-later & LGPL-2.0-only & MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2caced0b25dfefd4c601d92bd15116de"
+
+SRCREV = "63825e2244629d44dae21132b1065d7ecc0491c0"
+
+SRC_URI = "git://git.altlinux.org/people/ldv/packages/libutempter.git;branch=master \
+ file://0001-Fix-macro-error.patch \
+ file://0002-Proper-macro-path-generation.patch \
+ "
+
+S = "${WORKDIR}/git/${BPN}"
+
+CFLAGS += "-DLIBEXECDIR=${libexecdir}"
+
+do_compile() {
+ oe_runmake \
+ libdir=${libdir} \
+ libexecdir=${libexecdir}
+}
+
+do_install() {
+ oe_runmake install \
+ DESTDIR=${D} \
+ libdir="${libdir}" \
+ libexecdir="${libexecdir}" \
+ includedir=${includedir} \
+ mandir=${mandir}
+
+ rm -f ${D}${libdir}/*.a
+}
+
+FILES:${PN} = "${libdir}/*.so.*"
+FILES:${PN} += "${libexecdir}/utempter/utempter"
+FILES:${PN}-dbg += "${libexecdir}/utempter/.debug/utempter"
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 41c3826850..0406b700d7 100644
--- a/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
+++ b/meta-oe/recipes-support/links/files/ac-prog-cxx.patch
@@ -1,11 +1,23 @@
---- links-2.1pre20/configure.in.orig 2005-12-21 15:23:49.000000000 +0000
-+++ links-2.1pre20/configure.in 2005-12-21 15:23:59.000000000 +0000
-@@ -18,7 +18,7 @@
+From c00668541f68c17a5e453a4dcc2a86022b20af87 Mon Sep 17 00:00:00 2001
+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/configure.in b/configure.in
+index 7c15b6b..9896631 100644
+--- a/configure.in
++++ b/configure.in
+@@ -23,7 +23,7 @@ AM_CONFIG_HEADER(config.h)
dnl Checks for programs.
AC_PROG_CC
--#AC_PROG_CXX
+-dnl AC_PROG_CXX
+AC_PROG_CXX
- #AC_PROG_AWK
- #AM_PROG_LEX
- #AC_PROG_YACC
+ dnl AC_PROG_AWK
+ dnl AM_PROG_LEX
+ dnl AC_PROG_YACC
diff --git a/meta-oe/recipes-support/links/links-x11_2.26.bb b/meta-oe/recipes-support/links/links-x11_2.26.bb
new file mode 100644
index 0000000000..4c8d935ccf
--- /dev/null
+++ b/meta-oe/recipes-support/links/links-x11_2.26.bb
@@ -0,0 +1,29 @@
+require links.inc
+
+DEPENDS += "virtual/libx11"
+RCONFLICTS:${PN} = "links"
+
+inherit features_check
+# depends on virtual/libx11
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI += " file://links2.desktop \
+ http://www.xora.org.uk/oe/links2.png;name=icon"
+
+SRC_URI[sha256sum] = "f05b3577f25dbe63e491c424f0ecb31f7bfadce9b2bc2f111dfed049c004c9cb"
+SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
+
+S = "${WORKDIR}/links-${PV}"
+
+EXTRA_OECONF = "--enable-graphics \
+ --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
+ --without-libtiff --without-svgalib --without-fb \
+ --without-directfb --without-pmshell --without-atheos \
+ --with-x --without-gpm"
+
+do_install:append() {
+ install -d ${D}/${datadir}/applications
+ install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
+ install -d ${D}/${datadir}/pixmaps
+ install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
+}
diff --git a/meta-oe/recipes-support/links/links-x11_2.7.bb b/meta-oe/recipes-support/links/links-x11_2.7.bb
deleted file mode 100644
index 2ae11ac97e..0000000000
--- a/meta-oe/recipes-support/links/links-x11_2.7.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-require links.inc
-
-DEPENDS += "virtual/libx11"
-RCONFLICTS_${PN} = "links"
-
-inherit distro_features_check
-# depends on virtual/libx11
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += " file://links2.desktop \
- http://www.xora.org.uk/oe/links2.png;name=icon"
-
-S = "${WORKDIR}/links-${PV}"
-
-EXTRA_OECONF = "--enable-graphics \
- --with-ssl=${STAGING_LIBDIR}/.. --with-libjpeg \
- --without-libtiff --without-svgalib --without-fb \
- --without-directfb --without-pmshell --without-atheos \
- --with-x --without-gpm"
-
-do_install_append() {
- install -d ${D}/${datadir}/applications
- install -m 0644 ${WORKDIR}/links2.desktop ${D}/${datadir}/applications
- install -d ${D}/${datadir}/pixmaps
- install -m 0644 ${WORKDIR}/links2.png ${D}/${datadir}/pixmaps
-}
-
-SRC_URI[md5sum] = "d06aa6e14b2172d73188871a5357185a"
-SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
-SRC_URI[icon.md5sum] = "477e8787927c634614bac01b44355a33"
-SRC_URI[icon.sha256sum] = "eddcd8b8c8698aa621d1a453943892d77b72ed492e0d14e0dbac5c6a57e52f47"
diff --git a/meta-oe/recipes-support/links/links.inc b/meta-oe/recipes-support/links/links.inc
index e072408206..d772d54aff 100644
--- a/meta-oe/recipes-support/links/links.inc
+++ b/meta-oe/recipes-support/links/links.inc
@@ -2,8 +2,8 @@ DESCRIPTION = "Links is graphics and text mode WWW \
browser, similar to Lynx."
HOMEPAGE = "http://links.twibright.com/"
SECTION = "console/network"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=65e735be2e05d5943803344148f57603"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b0c80473f97008e42e29a9f80fcc55ff"
DEPENDS = "jpeg libpng flex openssl zlib"
SRC_URI = "http://links.twibright.com/download/links-${PV}.tar.bz2 \
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/links/links_2.7.bb b/meta-oe/recipes-support/links/links_2.7.bb
deleted file mode 100644
index e80dd7bca3..0000000000
--- a/meta-oe/recipes-support/links/links_2.7.bb
+++ /dev/null
@@ -1,13 +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[md5sum] = "d06aa6e14b2172d73188871a5357185a"
-SRC_URI[sha256sum] = "0c182b1cbcdfd5cdcd2f75a6032d1a4b660d07c1225c1e07757cec81d3302130"
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 3a6319c314..48be8dfa96 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
@@ -1,18 +1,18 @@
SUMMARY = "lio-utils"
DESCRIPTION = "a simple low-level configuration tool set for the Target+iSCSI (LIO)"
HOMEPAGE = "http://linux-iscsi.org/index.php/Lio-utils"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=c3ea231a32635cbb5debedf3e88aa3df"
PV = "4.1+git${SRCPV}"
-SRC_URI = "git://risingtidesystems.com/lio-utils.git \
+SRC_URI = "git://github.com/Datera/lio-utils.git;branch=master;protocol=https \
file://0001-Makefiles-Respect-environment-variables-and-add-LDFL.patch \
"
-SRCREV = "28bd928655bdc7bd3cf380f0196630690c51e05f"
+SRCREV = "0ac9091c1ff7a52d5435a4f4449e82637142e06e"
S = "${WORKDIR}/git"
-inherit distutils
+inherit ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "distutils", "", d)}
EXTRA_OEMAKE += "DESTDIR=${D}"
@@ -55,8 +55,21 @@ do_install() {
install -m 755 ${S}/conf/lio_start.default ${D}/etc/target/lio_start.sh
}
-RDEPENDS_${PN} += "python-stringold python-subprocess python-shell \
+SKIP_RECIPE[lio-utils] ?= "${@bb.utils.contains('I_SWEAR_TO_MIGRATE_TO_PYTHON3', 'yes', '', 'python2 is out of support for long time, read https://www.python.org/doc/sunset-python-2/ https://python3statement.org/ and if you really have to temporarily use this, then set I_SWEAR_TO_MIGRATE_TO_PYTHON3 to "yes"', d)}"
+
+RDEPENDS:${PN} += "python-stringold python-subprocess python-shell \
python-datetime python-textutils python-crypt python-netclient python-email \
bash"
-FILES_${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*"
+FILES:${PN} += "${sbindir}/* /etc/init.d/* /etc/target/*"
+
+# http://errors.yoctoproject.org/Errors/Details/184712/
+# python-native/python: can't open file 'setup.py': [Errno 2] No such file or directory
+CLEANBROKEN = "1"
+
+python() {
+ if 'meta-python2' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('Requires meta-python2 to be present.')
+}
+
+
diff --git a/meta-oe/recipes-support/lockdev/lockdev/0001-lockdev-Define-MAJOR-MINOR-for-non-glibc-case.patch b/meta-oe/recipes-support/lockdev/lockdev/0001-lockdev-Define-MAJOR-MINOR-for-non-glibc-case.patch
new file mode 100644
index 0000000000..abcf1bc20f
--- /dev/null
+++ b/meta-oe/recipes-support/lockdev/lockdev/0001-lockdev-Define-MAJOR-MINOR-for-non-glibc-case.patch
@@ -0,0 +1,28 @@
+From 11c78232aa589d5ed43eea3683e6e3de0362ffdc Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 26 Apr 2022 10:00:32 -0700
+Subject: [PATCH] lockdev: Define MAJOR/MINOR for non-glibc case
+
+gnu_dev_major and gnu_dev_minor are glibc extensions but we do have
+major/minor macros on musl too, so use them to define MINOR/MAJOR here
+
+Upstream-Status: Inappropriate [No active upstream]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lockdev.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/src/lockdev.c
++++ b/src/lockdev.c
+@@ -125,8 +125,8 @@
+ #include <sys/file.h>
+ #if defined (__GNU_LIBRARY__)
+ # include <sys/sysmacros.h>
+-# define MAJOR(dev) gnu_dev_major (dev)
+-# define MINOR(dev) gnu_dev_minor (dev)
++# define MAJOR(dev) major (dev)
++# define MINOR(dev) minor (dev)
+ #else
+ # error "put here a define for MAJOR and MINOR"
+ #endif
diff --git a/meta-oe/recipes-support/lockdev/lockdev/build.patch b/meta-oe/recipes-support/lockdev/lockdev/build.patch
new file mode 100644
index 0000000000..36daea79af
--- /dev/null
+++ b/meta-oe/recipes-support/lockdev/lockdev/build.patch
@@ -0,0 +1,30 @@
+Upstream-Status: Pending
+
+commit 0dd47123655c52d68185f06b9da8fb0e1b925400
+Author: Ludwig Nussel <ludwig.nussel@suse.de>
+Date: Tue Feb 9 14:56:23 2010 +0100
+
+ RedHat patch 2
+
+ - change library file name
+ - install devel symlink
+
+--- a/Makefile
++++ b/Makefile
+@@ -11,7 +11,7 @@ VER = $(shell expr `pwd` : '.*-\([0-9.]*
+ MVER = ${shell expr `pwd` : '.*-\([0-9]*\).[0-9]*'}
+
+ static = ${libname}.a
+-shared = ${libname}.${VER}.so
++shared = ${libname}.so.${VER}
+ soname = ${libname}.so.${MVER}
+
+ # overwritten by caller (e.g.: debian/rules)
+@@ -73,6 +73,7 @@ install_doc: docs/lockdev.3
+ install_run: ${shared}
+ install -m755 -d ${libdir}
+ install -m644 ${shared} ${libdir}
++ ln -s ${shared} ${libdir}/liblockdev.so
+
+ .PHONY: clean distclean perl-clean mostyclean
+ perl-clean: clean
diff --git a/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch b/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch
new file mode 100644
index 0000000000..886af121b3
--- /dev/null
+++ b/meta-oe/recipes-support/lockdev/lockdev/cross_compile.patch
@@ -0,0 +1,29 @@
+Upstream-Status: Pending
+
+--- a/Makefile
++++ b/Makefile
+@@ -15,17 +15,18 @@ shared = ${libname}.${VER}.so
+ soname = ${libname}.so.${MVER}
+
+ # overwritten by caller (e.g.: debian/rules)
+-basedir = /usr/local
++basedir ?= /usr/local
++baselib ?= lib
+ srcdir=.
+
+-libdir = ${basedir}/lib
++libdir = ${basedir}/${baselib}
+ incdir = ${basedir}/include
+ mandir = ${basedir}/share/man
+
+-CC = gcc
+-LCFLAGS = -g -O2 -fPIC -Wall -pipe -D_REENTRANT
+-CFLAGS = -g
+-LDLIBS = -llockdev
++CC ?= gcc
++LCFLAGS ?= -g -O2 -fPIC -Wall -pipe -D_REENTRANT
++CFLAGS ?= -g
++LDLIBS ?= -llockdev
+
+ .PHONY: shared static perl-lib
+ ALL: shared static perl-lib
diff --git a/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb b/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb
new file mode 100644
index 0000000000..a52ca25da4
--- /dev/null
+++ b/meta-oe/recipes-support/lockdev/lockdev_1.0.3.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Locking devices library"
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM="file://LICENSE;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+PE = "1"
+SRC_URI = "http://snapshot.debian.org/archive/debian/20141023T043132Z/pool/main/l/lockdev/lockdev_${PV}.orig.tar.gz \
+ file://cross_compile.patch \
+ file://build.patch \
+ file://0001-lockdev-Define-MAJOR-MINOR-for-non-glibc-case.patch \
+ "
+SRC_URI[sha256sum] = "ccae635d7ac3fdd50897eceb250872b3d9a191d298f213e7f0c836910d869f82"
+
+inherit lib_package perlnative
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+CFLAGS:append:libc-musl = " -D__GNU_LIBRARY__"
+
+EXTRA_OEMAKE = "basedir=${D}${prefix} baselib=${baselib} LD='${CC}'"
+
+do_compile() {
+ oe_runmake shared static
+}
+do_install() {
+ oe_runmake DESTDIR=${D} install
+}
diff --git a/meta-oe/recipes-support/lockdev/lockdev_git.bb b/meta-oe/recipes-support/lockdev/lockdev_git.bb
deleted file mode 100644
index 507ce3fe57..0000000000
--- a/meta-oe/recipes-support/lockdev/lockdev_git.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Locking devices library"
-SECTION = "libs"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM="file://COPYING;md5=4fbd65380cdd255951079008b364516c"
-
-PV = "1.0.3+git${SRCPV}"
-
-SRCREV = "16b899645d32012cc94cc9232f64d4ddaaf0b795"
-SRC_URI = "git://anonscm.debian.org/lockdev/lockdev.git"
-
-S = "${WORKDIR}/git"
-
-inherit lib_package autotools-brokensep
-
-do_configure_prepend () {
- ./scripts/git-version > VERSION
-
- # Make automake happy
- touch ChangeLog
-}
-
-CFLAGS_append_libc-musl = " -D__GNU_LIBRARY__"
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/log4c/log4c_1.2.4.bb b/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
index ef7ad847a6..7d9b9d50f8 100644
--- a/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
+++ b/meta-oe/recipes-support/log4c/log4c_1.2.4.bb
@@ -1,6 +1,6 @@
SUMMARY = "Log4c is a C library for flexible logging to files, syslog and other destinations"
HOMEPAGE = "http://log4c.sourceforge.net"
-LICENSE = "LGPLv2"
+LICENSE = "LGPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \
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.2.bb b/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb
deleted file mode 100644
index dc52c9ff41..0000000000
--- a/meta-oe/recipes-support/log4cpp/log4cpp_1.1.2.bb
+++ /dev/null
@@ -1,22 +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 = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-RC = "rc5"
-SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}${RC}.tar.gz \
- file://fix-pc.patch;striplevel=2 \
- "
-SRC_URI[md5sum] = "58b4591a2f3e7ef3d5e3e7cfb3a81a62"
-SRC_URI[sha256sum] = "a611d99a20af6676c60219762771c0bfac90f4879bbde70038ece75338b588ec"
-
-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/logwarn/logwarn_1.0.14.bb b/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
index 5ae36bb67c..3549cb2153 100644
--- a/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
+++ b/meta-oe/recipes-support/logwarn/logwarn_1.0.14.bb
@@ -31,7 +31,7 @@ CACHED_CONFIGUREVARS += " \
# Make sure some files exist for autoreconf.
#
-do_configure_prepend () {
+do_configure:prepend () {
touch ${S}/NEWS
touch ${S}/ChangeLog
touch ${S}/README
@@ -39,7 +39,7 @@ do_configure_prepend () {
# Create a directory for logfile state info, usually under /var/lib.
#
-do_install_append () {
+do_install:append () {
install -d ${D}${lcl_default_state_dir}
}
@@ -47,6 +47,6 @@ do_install_append () {
#
PACKAGES += "${PN}-nagios"
-FILES_${PN}-nagios = "${nonarch_libdir}/nagios"
+FILES:${PN}-nagios = "${nonarch_libdir}/nagios"
-RDEPENDS_${PN}-nagios += "bash coreutils sed"
+RDEPENDS:${PN}-nagios += "bash coreutils sed"
diff --git a/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch b/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
index 5b55111dc6..3c4a3a151d 100644
--- a/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
+++ b/meta-oe/recipes-support/lvm2/files/0001-Avoid-bashisms-in-init-scripts.patch
@@ -1,26 +1,27 @@
-From 916ea0c70fd063ab7b81f16fd917a75dc02edf4f Mon Sep 17 00:00:00 2001
-From: Peter Kjellerstedt <pkj@axis.com>
-Date: Fri, 17 Mar 2017 03:18:28 +0100
-Subject: [PATCH] Avoid bashisms in init scripts
+From ea66faf68c93735edb1f2691cd7364b8cab83fef Mon Sep 17 00:00:00 2001
+From: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+Date: Mon, 26 Nov 2018 14:53:09 +0800
+Subject: [PATCH 1/3] Avoid bashisms in init scripts
Upstream-Status: Inappropriate
Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+
+Rebase to 2.03.01
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- scripts/blk_availability_init_red_hat.in | 4 ++--
- scripts/clvmd_init_red_hat.in | 6 +++---
- scripts/cmirrord_init_red_hat.in | 4 ++--
- scripts/lvm2_cluster_activation_red_hat.sh.in | 4 ++--
- scripts/lvm2_lvmetad_init_red_hat.in | 4 ++--
- scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++--
- scripts/lvm2_monitoring_init_red_hat.in | 4 ++--
- scripts/lvm2_monitoring_init_rhel4 | 4 ++--
- 8 files changed, 17 insertions(+), 17 deletions(-)
+ scripts/blk_availability_init_red_hat.in | 4 ++--
+ scripts/cmirrord_init_red_hat.in | 4 ++--
+ scripts/lvm2_lvmpolld_init_red_hat.in | 4 ++--
+ scripts/lvm2_monitoring_init_red_hat.in | 4 ++--
+ scripts/lvm2_monitoring_init_rhel4 | 4 ++--
+ 5 files changed, 10 insertions(+), 10 deletions(-)
-Index: LVM2.2.02.177/scripts/blk_availability_init_red_hat.in
-===================================================================
---- LVM2.2.02.177.orig/scripts/blk_availability_init_red_hat.in
-+++ LVM2.2.02.177/scripts/blk_availability_init_red_hat.in
+diff --git a/scripts/blk_availability_init_red_hat.in b/scripts/blk_availability_init_red_hat.in
+index 347c395..b2e9cf9 100644
+--- a/scripts/blk_availability_init_red_hat.in
++++ b/scripts/blk_availability_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -35,38 +36,10 @@ Index: LVM2.2.02.177/scripts/blk_availability_init_red_hat.in
+ echo "Usage: $0 {start|stop|status}"
;;
esac
-Index: LVM2.2.02.177/scripts/clvmd_init_red_hat.in
-===================================================================
---- LVM2.2.02.177.orig/scripts/clvmd_init_red_hat.in
-+++ LVM2.2.02.177/scripts/clvmd_init_red_hat.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # clvmd - Clustered LVM Daemon init script
- #
-@@ -161,7 +161,7 @@ restart() {
- fi
- }
-
--[ "$EUID" != "0" ] && {
-+[ "$(id -u)" != "0" ] && {
- echo "clvmd init script can only be executed as root user"
- exit 4
- }
-@@ -206,7 +206,7 @@ case "$1" in
- ;;
-
- *)
-- echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
-+ echo "Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload}"
- rtrn=2
- ;;
- esac
-Index: LVM2.2.02.177/scripts/cmirrord_init_red_hat.in
-===================================================================
---- LVM2.2.02.177.orig/scripts/cmirrord_init_red_hat.in
-+++ LVM2.2.02.177/scripts/cmirrord_init_red_hat.in
+diff --git a/scripts/cmirrord_init_red_hat.in b/scripts/cmirrord_init_red_hat.in
+index c82f8f5..a3a321d 100755
+--- a/scripts/cmirrord_init_red_hat.in
++++ b/scripts/cmirrord_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -82,48 +55,10 @@ Index: LVM2.2.02.177/scripts/cmirrord_init_red_hat.in
;;
esac
-Index: LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in
-===================================================================
---- LVM2.2.02.177.orig/scripts/lvm2_cluster_activation_red_hat.sh.in
-+++ LVM2.2.02.177/scripts/lvm2_cluster_activation_red_hat.sh.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
-
- sbindir="@SBINDIR@"
-
-@@ -54,7 +54,7 @@ case "$1" in
- rtrn=$?
- ;;
- *)
-- echo $"Usage: $0 {activate|deactivate}"
-+ echo "Usage: $0 {activate|deactivate}"
- rtrn=3
- ;;
- esac
-Index: LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in
-===================================================================
---- LVM2.2.02.177.orig/scripts/lvm2_lvmetad_init_red_hat.in
-+++ LVM2.2.02.177/scripts/lvm2_lvmetad_init_red_hat.in
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- #
- # Copyright (C) 2012-2017 Red Hat, Inc. All rights reserved.
- #
-@@ -103,7 +103,7 @@ case "$1" in
- ;;
-
- *)
-- echo $"Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
-+ echo "Usage: $0 {start|stop|force-stop|restart|condrestart|try-restart|status}"
- ;;
- esac
-
-Index: LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in
-===================================================================
---- LVM2.2.02.177.orig/scripts/lvm2_lvmpolld_init_red_hat.in
-+++ LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in
+diff --git a/scripts/lvm2_lvmpolld_init_red_hat.in b/scripts/lvm2_lvmpolld_init_red_hat.in
+index 176ff5d..825f6ad 100644
+--- a/scripts/lvm2_lvmpolld_init_red_hat.in
++++ b/scripts/lvm2_lvmpolld_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -139,10 +74,10 @@ Index: LVM2.2.02.177/scripts/lvm2_lvmpolld_init_red_hat.in
;;
esac
-Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in
-===================================================================
---- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_red_hat.in
-+++ LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in
+diff --git a/scripts/lvm2_monitoring_init_red_hat.in b/scripts/lvm2_monitoring_init_red_hat.in
+index 95e4125..dff89cd 100644
+--- a/scripts/lvm2_monitoring_init_red_hat.in
++++ b/scripts/lvm2_monitoring_init_red_hat.in
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -158,10 +93,10 @@ Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_red_hat.in
;;
esac
-Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4
-===================================================================
---- LVM2.2.02.177.orig/scripts/lvm2_monitoring_init_rhel4
-+++ LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4
+diff --git a/scripts/lvm2_monitoring_init_rhel4 b/scripts/lvm2_monitoring_init_rhel4
+index 8eb06c5..2e8d0f7 100644
+--- a/scripts/lvm2_monitoring_init_rhel4
++++ b/scripts/lvm2_monitoring_init_rhel4
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
@@ -177,3 +112,6 @@ Index: LVM2.2.02.177/scripts/lvm2_monitoring_init_rhel4
;;
esac
+--
+2.7.4
+
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/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch b/meta-oe/recipes-support/lvm2/files/0002-Guard-use-of-mallinfo-with-__GLIBC__.patch
index ce8a97ab6f..1fbaf0c9ae 100644
--- 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
@@ -9,6 +9,8 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
+Upstream-Status: Pending
+
lib/mm/memlock.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch b/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch
deleted file mode 100644
index 9ab1c06d27..0000000000
--- a/meta-oe/recipes-support/lvm2/files/0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b1ad91a059d99afd1ce25823b7c0a8d3ac63d2fd Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Tue, 25 Oct 2016 11:55:49 +0000
-Subject: [PATCH 3/4] include fcntl.h for O_* defines and fcntl() signature
-
-On glibc _somehow_ this header gets pulled in indirectly
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
----
-Upstream-Status: Pending
----
- libdaemon/server/daemon-server.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libdaemon/server/daemon-server.c b/libdaemon/server/daemon-server.c
-index 6af6de9..a9590e7 100644
---- a/libdaemon/server/daemon-server.c
-+++ b/libdaemon/server/daemon-server.c
-@@ -18,6 +18,7 @@
- #include "daemon-server.h"
- #include "daemon-log.h"
-
-+#include <fcntl.h>
- #include <dlfcn.h>
- #include <errno.h>
- #include <pthread.h>
---
-2.9.3
-
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 425ba7406d..517b9a5f28 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
@@ -1,6 +1,6 @@
-From 0012ea63f6070a5d41fa380970f9c30b953237d2 Mon Sep 17 00:00:00 2001
-From: Dengke Du <dengke.du@windriver.com>
-Date: Tue, 25 Oct 2016 11:59:40 +0000
+From 3bba45890985b877b823836e78a1c8ac3c878856 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 31 Jul 2018 15:04:29 +0800
Subject: [PATCH 4/4] tweak MODPROBE_CMD for cross compile
Lvm uses variable MODPROBE_CMD at runtime, so build time detection of modprobe
@@ -16,20 +16,23 @@ filter=["r|/loop1$|","r|/loop2$|","r|/loop3$|","r|/loop4$|","r|/loop5$|","r|/loo
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
-Signed-off-by: Dengke Du <dengke.du@windriver.com>
---
- configure.in | 1 -
- 1 file changed, 1 deletion(-)
+ configure.ac | 2 --
+ 1 file changed, 2 deletions(-)
-Index: LVM2.2.02.177/configure.in
-===================================================================
---- LVM2.2.02.177.orig/configure.in
-+++ LVM2.2.02.177/configure.in
-@@ -1870,7 +1870,6 @@ if test "$BUILD_DMFILEMAPD" = yes; then
+diff --git a/configure.ac b/configure.ac
+index e427708..aa374ea 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1791,8 +1791,6 @@ if test "$BUILD_DMFILEMAPD" = yes; then
fi
################################################################################
--AC_PATH_TOOL(MODPROBE_CMD, modprobe)
-
+-AC_PATH_TOOL(MODPROBE_CMD, modprobe, [], [$PATH_SBIN])
+-
if test -n "$MODPROBE_CMD"; then
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/files/0005-do-not-build-manual.patch b/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
index 01477e0c9d..7979efbefb 100644
--- a/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
+++ b/meta-oe/recipes-support/lvm2/files/0005-do-not-build-manual.patch
@@ -1,7 +1,7 @@
-From d8bb25e34d6533ba78eaae697771ee499a66706f Mon Sep 17 00:00:00 2001
+From 103ac1c1200df8190372d973e004776cffe8e659 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 2 Aug 2017 03:41:37 -0400
-Subject: [PATCH] do not build manual
+Date: Mon, 26 Nov 2018 14:59:55 +0800
+Subject: [PATCH 2/3] do not build manual
On some host (ubuntu 1404), build manual failed.
...
@@ -14,42 +14,60 @@ Do not build man to workaround the issue.
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Update context for lvm2 2.03.02.
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+Update context for lvm2 2.03.16.
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
- Makefile.in | 4 ++--
- configure.in | 1 -
- 2 files changed, 2 insertions(+), 3 deletions(-)
-
-Index: LVM2.2.02.177/Makefile.in
-===================================================================
---- LVM2.2.02.177.orig/Makefile.in
-+++ LVM2.2.02.177/Makefile.in
+ Makefile.in | 6 +++---
+ configure.ac | 1 -
+ 2 files changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 3b7e0ec..37f14eb 100644
+--- a/Makefile.in
++++ b/Makefile.in
@@ -18,7 +18,7 @@ top_builddir = @top_builddir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
--SUBDIRS = conf daemons include lib libdaemon libdm man scripts tools
-+SUBDIRS = conf daemons include lib libdaemon libdm scripts tools
+-SUBDIRS = libdm conf daemons include lib libdaemon man scripts tools
++SUBDIRS = libdm conf daemons include lib libdaemon scripts tools
ifeq ("@UDEV_RULES@", "yes")
SUBDIRS += udev
-@@ -69,7 +69,7 @@ liblvm.device-mapper: include.device-map
+@@ -33,7 +33,7 @@ ifeq ($(MAKECMDGOALS),clean)
+ endif
+ # FIXME Should use intermediate Makefiles here!
+ ifeq ($(MAKECMDGOALS),distclean)
+- SUBDIRS = conf include man test scripts \
++ SUBDIRS = conf include test scripts \
+ libdaemon lib tools daemons libdm \
+ udev po
+ tools.distclean: test.distclean
+@@ -59,7 +59,7 @@ unit-test run-unit-test: test
+
daemons.device-mapper: libdm.device-mapper
tools.device-mapper: libdm.device-mapper
- scripts.device-mapper: include.device-mapper
-device-mapper: tools.device-mapper daemons.device-mapper man.device-mapper
+device-mapper: tools.device-mapper daemons.device-mapper
+ device_mapper: device-mapper
ifeq ("@INTL@", "yes")
- lib.pofile: include.pofile
-Index: LVM2.2.02.177/configure.in
-===================================================================
---- LVM2.2.02.177.orig/configure.in
-+++ LVM2.2.02.177/configure.in
-@@ -2216,7 +2216,6 @@ libdm/Makefile
+diff --git a/configure.ac b/configure.ac
+index 6def519..18a5c97 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -2018,7 +2018,6 @@ libdaemon/server/Makefile
+ libdm/Makefile
+ libdm/dm-tools/Makefile
libdm/libdevmapper.pc
- liblvm/Makefile
- liblvm/liblvm2app.pc
-man/Makefile
po/Makefile
- python/Makefile
- python/setup.py
+ scripts/lvm2-pvscan.service
+ scripts/blkdeactivate.sh
+--
+2.25.1
+
diff --git a/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch b/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch
index 0e68d62fc2..5b9b2d5748 100644
--- a/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch
+++ b/meta-oe/recipes-support/lvm2/files/0006-start-lvm2-monitor.service-after-tmp.mount.patch
@@ -1,6 +1,6 @@
-From 24a2c47fd01dde1710f1fa66f5c30ce7010c5956 Mon Sep 17 00:00:00 2001
+From e213ed33a28704f6f538df41a91b7ce95594a4f8 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 21 Sep 2017 15:28:10 +0800
+Date: Tue, 15 Oct 2019 18:12:54 +0800
Subject: [PATCH] start lvm2-monitor.service after tmp.mount
The lvm2-monitor.service reqires the existence of locking_dir
@@ -9,24 +9,28 @@ So start lvm2-monitor.service after tmp.mount
Upstream-Status: Inappropriate [oe specific]
+Rebase to v2_03_05
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase to v2_03_16
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
scripts/lvm2_monitoring_systemd_red_hat.service.in | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/lvm2_monitoring_systemd_red_hat.service.in b/scripts/lvm2_monitoring_systemd_red_hat.service.in
-index 22238b7..93b2bee 100644
+index c0c96e3..2a99a37 100644
--- a/scripts/lvm2_monitoring_systemd_red_hat.service.in
+++ b/scripts/lvm2_monitoring_systemd_red_hat.service.in
@@ -2,7 +2,7 @@
Description=Monitoring of LVM2 mirrors, snapshots etc. using dmeventd or progress polling
Documentation=man:dmeventd(8) man:lvcreate(8) man:lvchange(8) man:vgchange(8)
- Requires=dm-event.socket lvm2-lvmetad.socket
--After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service
-+After=dm-event.socket dm-event.service lvm2-lvmetad.socket lvm2-activation.service lvm2-lvmetad.service tmp.mount
- Before=local-fs-pre.target
+ Requires=dm-event.socket
+-After=dm-event.socket dm-event.service
++After=dm-event.socket dm-event.service tmp.mount
+ Before=local-fs-pre.target shutdown.target
DefaultDependencies=no
Conflicts=shutdown.target
--
-1.8.3.1
+2.25.1
diff --git a/meta-oe/recipes-support/lvm2/files/reproducible-build.patch b/meta-oe/recipes-support/lvm2/files/reproducible-build.patch
new file mode 100644
index 0000000000..3f53db9e5c
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/files/reproducible-build.patch
@@ -0,0 +1,28 @@
+configure.ac: override CONFIGURE_LINE
+
+For reproducible binaries, we need to report a constant CONFIGURE_LINE.
+
+Upstream-Status: Pending
+
+Signed-off-by: Joe Slater <joe.slater@windriver.com>
+
+
+--- git.orig/configure.ac
++++ git/configure.ac
+@@ -15,7 +15,15 @@ AC_PREREQ(2.69)
+ ################################################################################
+ dnl -- Process this file with autoconf to produce a configure script.
+ AC_INIT
+-CONFIGURE_LINE="$0 $@"
++
++dnl per reproducible-builds.org check SOURCE_DATE_EPOCH
++dnl
++if test -z "${SOURCE_DATE_EPOCH+set}" ; then
++ CONFIGURE_LINE="$0 $@"
++else
++ CONFIGURE_LINE="configure options are not available for reproducible builds"
++fi
++
+ AC_CONFIG_SRCDIR([lib/device/dev-cache.h])
+ AC_CONFIG_HEADERS([include/configure.h])
+
diff --git a/meta-oe/recipes-support/lvm2/libdevmapper_2.02.177.bb b/meta-oe/recipes-support/lvm2/libdevmapper_2.02.177.bb
deleted file mode 100644
index 211a4726b8..0000000000
--- a/meta-oe/recipes-support/lvm2/libdevmapper_2.02.177.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-require lvm2.inc
-
-SRC_URI[md5sum] = "ee6cfbc5a0c5696ffae79dac04ee7a2b"
-SRC_URI[sha256sum] = "4025a23ec9b15c2cb7486d151c29dc953b75efc4d452cfe9dbbc7c0fac8e80f2"
-
-DEPENDS += "autoconf-archive-native"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- oe_runmake 'DESTDIR=${D}' -C libdm install
-}
-
-RRECOMMENDS_${PN}_append_class-target = " lvm2-udevrules"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/lvm2/libdevmapper_2.03.16.bb b/meta-oe/recipes-support/lvm2/libdevmapper_2.03.16.bb
new file mode 100644
index 0000000000..be558ce1d2
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/libdevmapper_2.03.16.bb
@@ -0,0 +1,17 @@
+# Break circular dependencies, only populate sysroot (header,
+# libraries) to other recipe for compiling, recipe lvm2
+# generates package libdevmapper
+require lvm2.inc
+
+DEPENDS += "autoconf-archive-native"
+
+TARGET_CC_ARCH += "${LDFLAGS}"
+
+do_install() {
+ oe_runmake 'DESTDIR=${D}' -C libdm install
+}
+
+# Do not generate package libdevmapper
+PACKAGES = ""
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/lvm2/lvm2.inc b/meta-oe/recipes-support/lvm2/lvm2.inc
index 3a1e82bac9..277e76f0d2 100644
--- a/meta-oe/recipes-support/lvm2/lvm2.inc
+++ b/meta-oe/recipes-support/lvm2/lvm2.inc
@@ -1,35 +1,33 @@
HOMEPAGE = "https://www.sourceware.org/lvm2/"
SECTION = "utils"
DESCRIPTION = "LVM2 is a set of utilities to manage logical volumes in Linux."
-LICENSE = "GPLv2 & LGPLv2"
+LICENSE = "GPL-2.0-only & LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=12713b4d9386533feeb07d6e4831765a \
file://COPYING.LIB;md5=fbc093901857fcd118f065f900982c24"
-DEPENDS += "util-linux"
+DEPENDS += "libaio"
-SRC_URI = "ftp://sources.redhat.com/pub/lvm2/old/LVM2.${PV}.tgz \
+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://0003-include-fcntl.h-for-O_-defines-and-fcntl-signature.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 \
"
-UPSTREAM_CHECK_URI = "ftp://sources.redhat.com/pub/lvm2/"
-UPSTREAM_CHECK_REGEX = "LVM2\.(?P<pver>\d+(\.\d+)+)"
+SRCREV = "6d1e894a867681af7a811ed63bc435f3aa55fec8"
+S = "${WORKDIR}/git"
-S = "${WORKDIR}/LVM2.${PV}"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\_\d+)+)"
-inherit autotools-brokensep pkgconfig systemd license
+inherit autotools-brokensep pkgconfig systemd
-LVM2_PACKAGECONFIG = "dmeventd lvmetad"
-LVM2_PACKAGECONFIG_append_class-target = " \
+LVM2_PACKAGECONFIG = "dmeventd"
+LVM2_PACKAGECONFIG:append:class-target = " \
${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)} \
- ${@incompatible_license_contains('GPLv3', '', 'thin-provisioning-tools', d)} \
- udev \
"
# odirect is always enabled because there currently is a bug in
@@ -39,18 +37,16 @@ LVM2_PACKAGECONFIG_append_class-target = " \
PACKAGECONFIG ??= "odirect ${LVM2_PACKAGECONFIG}"
PACKAGECONFIG[dmeventd] = "--enable-dmeventd,--disable-dmeventd"
-PACKAGECONFIG[lvmetad] = "--enable-lvmetad,--disable-lvmetad"
PACKAGECONFIG[odirect] = "--enable-o_direct,--disable-o_direct"
PACKAGECONFIG[readline] = "--enable-readline,--disable-readline,readline"
PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux"
+# NOTE: Add thin-provisioning-tools only if your distro policy allows GPL-3.0 license
PACKAGECONFIG[thin-provisioning-tools] = "--with-thin=internal,--with-thin=none,,thin-provisioning-tools"
-PACKAGECONFIG[udev] = "--enable-udev_sync --enable-udev_rules --with-udevdir=${nonarch_base_libdir}/udev/rules.d,--disable-udev_sync --disable-udev_rules,udev"
# Unset user/group to unbreak install.
EXTRA_OECONF = "--with-user= \
--with-group= \
--enable-realtime \
- --enable-applib \
--enable-cmdlib \
--enable-pkgconfig \
--with-usrlibdir=${libdir} \
@@ -62,3 +58,6 @@ EXTRA_OECONF = "--with-user= \
--with-thin-restore=${sbindir}/thin_restore \
"
+# gold doesn't like multiple dm_bitset_parse_list definitions in libdm/.exported_symbols.DM_1_02_138 and libdm/.exported_symbols.DM_1_02_129
+# after it was uncommented in the later in 2.03.12 with https://github.com/lvmteam/lvm2/commit/60eb608d66c2056a78e81f27db3da14139d9faab
+LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', " -fuse-ld=bfd", '', d)}"
diff --git a/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch b/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
deleted file mode 100644
index e85818dbd4..0000000000
--- a/meta-oe/recipes-support/lvm2/lvm2/0001-explicitly-do-not-install-libdm.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 0a8e466fcf99622896e070c5133165e4278e8cfb Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 25 May 2017 05:27:11 -0400
-Subject: [PATCH] explicitly do not install libdm
-
-Already have package libdevmapper which split from lvm2,
-explicitly do not do the installation here.
-
-Upstream-Status: Inappropriate [meta-oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- libdm/Makefile.in | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libdm/Makefile.in b/libdm/Makefile.in
-index 3c9a4ce..45c91c6 100644
---- a/libdm/Makefile.in
-+++ b/libdm/Makefile.in
-@@ -77,9 +77,11 @@ ifeq ("@PKGCONFIG@", "yes")
- INSTALL_TYPE += install_pkgconfig
- endif
-
--install: $(INSTALL_TYPE) install_include
-+install:
-+ echo "Do not install device mappler in lvm2"
-
--install_device-mapper: install
-+install_device-mapper:
-+ echo "Do not install device mappler in lvm2"
-
- install_include: $(srcdir)/libdevmapper.h
- $(INSTALL_DATA) -D $< $(includedir)/$(<F)
---
-2.8.1
-
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
new file mode 100644
index 0000000000..34e0620a1c
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/lvm2/0001-fix-command-bin-findmnt-bin-lsblk-bin-sort-not-found.patch
@@ -0,0 +1,73 @@
+From ddf36613f3408ce42f15b03b4e9c6ad8478b97f8 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Tue, 2 Mar 2021 01:33:05 -0800
+Subject: [PATCH] fix command /bin/findmnt, /bin/lsblk, /bin/sort not found
+
+In oe-core (util-linux and coreutils), the commands locates in
+${bindir} rather than /bin, add BINDIR to configure it
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ configure.ac | 3 +++
+ scripts/blkdeactivate.sh.in | 7 ++++---
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4811d4a3d..137b31a82 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1611,6 +1611,8 @@ fi
+
+ SYSCONFDIR="$(eval echo $(eval echo $sysconfdir))"
+
++BINDIR="$(eval echo $(eval echo $bindir))"
++
+ 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)
++AC_SUBST(BINDIR)
+ AC_SUBST(SBINDIR)
+ AC_SUBST(SELINUX_LIBS)
+ AC_SUBST(SELINUX_PC)
+diff --git a/scripts/blkdeactivate.sh.in b/scripts/blkdeactivate.sh.in
+index 7c517b87b..7ef1bb766 100644
+--- a/scripts/blkdeactivate.sh.in
++++ b/scripts/blkdeactivate.sh.in
+@@ -42,13 +42,14 @@ VDO="/bin/vdo"
+
+ sbindir="@SBINDIR@"
+ DMSETUP="$sbindir/dmsetup"
++bindir="@BINDIR@"
+ LVM="$sbindir/lvm"
+
+ if "$UMOUNT" --help | grep -- "--all-targets" >"$DEV_DIR/null"; then
+ UMOUNT_OPTS="--all-targets "
+ else
+ UMOUNT_OPTS=""
+- FINDMNT="/bin/findmnt -r --noheadings -u -o TARGET"
++ FINDMNT="$bindir/findmnt -r --noheadings -u -o TARGET"
+ FINDMNT_READ="read -r mnt"
+ fi
+ DMSETUP_OPTS=""
+@@ -57,10 +58,10 @@ MDADM_OPTS=""
+ MPATHD_OPTS=""
+ VDO_OPTS=""
+
+-LSBLK="/bin/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT"
++LSBLK="$bindir/lsblk -r --noheadings -o TYPE,KNAME,NAME,MOUNTPOINT"
+ LSBLK_VARS="local devtype local kname local name local mnt"
+ LSBLK_READ="read -r devtype kname name mnt"
+-SORT_MNT="/bin/sort -r -u -k 4"
++SORT_MNT="$bindir/sort -r -u -k 4"
+
+ # Do not show tool errors by default (only done/skipping summary
+ # message provided by this script) and no verbose mode by default.
+--
+2.29.2
+
diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.02.177.bb b/meta-oe/recipes-support/lvm2/lvm2_2.02.177.bb
deleted file mode 100644
index 390970fcb2..0000000000
--- a/meta-oe/recipes-support/lvm2/lvm2_2.02.177.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-require lvm2.inc
-
-SRC_URI[md5sum] = "ee6cfbc5a0c5696ffae79dac04ee7a2b"
-SRC_URI[sha256sum] = "4025a23ec9b15c2cb7486d151c29dc953b75efc4d452cfe9dbbc7c0fac8e80f2"
-
-SRC_URI += "file://0001-explicitly-do-not-install-libdm.patch"
-
-DEPENDS += "autoconf-archive-native"
-
-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
- 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
-}
-
-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', 'lvmetad', 'lvm2-lvmetad.socket lvm2-pvscan@.service', '', d)} \
- blk-availability.service"
-SYSTEMD_AUTO_ENABLE = "disable"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-FILES_${PN} += "${libdir}/device-mapper/*.so"
-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}_append_class-target = " libdevmapper"
-
-RDEPENDS_${PN}-scripts = "${PN} (= ${EXTENDPKGV}) bash"
-RRECOMMENDS_${PN}_class-target = "${PN}-scripts (= ${EXTENDPKGV})"
-
-CONFFILES_${PN} += "${sysconfdir}/lvm/lvm.conf"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb b/meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb
new file mode 100644
index 0000000000..6a6cdc7cef
--- /dev/null
+++ b/meta-oe/recipes-support/lvm2/lvm2_2.03.16.bb
@@ -0,0 +1,95 @@
+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/lzop/lzop/acinclude.m4 b/meta-oe/recipes-support/lzop/lzop/acinclude.m4
new file mode 100644
index 0000000000..0029c19c7d
--- /dev/null
+++ b/meta-oe/recipes-support/lzop/lzop/acinclude.m4
@@ -0,0 +1,390 @@
+
+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
new file mode 100644
index 0000000000..d9b3524b67
--- /dev/null
+++ b/meta-oe/recipes-support/lzop/lzop_1.04.bb
@@ -0,0 +1,27 @@
+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.48.bb b/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
deleted file mode 100644
index 114ce4607c..0000000000
--- a/meta-oe/recipes-support/mailcap/mailcap_2.1.48.bb
+++ /dev/null
@@ -1,26 +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=100fcfb84512ccc03ffc7d89ac391305"
-
-SRC_URI = "https://releases.pagure.org/${BPN}/${BP}.tar.xz"
-
-SRC_URI[md5sum] = "2c26e18e912a5cf00318fcf7f8f2d747"
-SRC_URI[sha256sum] = "d7b023b237d6053bf05ff6786e0663c55c614efcc99cdf856120be13b5c29157"
-
-do_install() {
- oe_runmake install DESTDIR=${D} sysconfdir=${sysconfdir} mandir=${mandir}
-}
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/mbuffer/mbuffer_20140310.bb b/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb
index 3467d28988..ccc21f418c 100644
--- a/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb
+++ b/meta-oe/recipes-support/mbuffer/mbuffer_20140310.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "mbuffer is a tool for buffering data streams with a large set of unique features."
HOMEPAGE = "http://www.maier-komor.de/mbuffer.html"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=d32239bcb673463ab874e80d47fae504"
SECTION = "console/network"
diff --git a/meta-oe/recipes-support/mcelog/mce-inject_git.bb b/meta-oe/recipes-support/mcelog/mce-inject_git.bb
index 86d50a2bef..a228c3cc06 100644
--- a/meta-oe/recipes-support/mcelog/mce-inject_git.bb
+++ b/meta-oe/recipes-support/mcelog/mce-inject_git.bb
@@ -4,13 +4,15 @@ software level into a running Linux kernel. This is intended for \
validation of the kernel machine check handler."
SECTION = "System Environment/Base"
-SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git"
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git;branch=master"
SRCREV = "4cbe46321b4a81365ff3aafafe63967264dbfec5"
UPSTREAM_CHECK_COMMITS = "1"
-LICENSE = "GPLv2"
+DEPENDS = "bison-native"
+
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://README;beginline=30;md5=94c18755082a2da9c9cf97cba3ad47d6"
S = "${WORKDIR}/git"
@@ -19,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/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch b/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch
new file mode 100644
index 0000000000..969bfc17cf
--- /dev/null
+++ b/meta-oe/recipes-support/mcelog/mce-test/0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch
@@ -0,0 +1,110 @@
+From 430982376a544bbccaef5006fab94bbc2f1d1711 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Mon, 13 Apr 2020 07:12:44 +0000
+Subject: [PATCH] gcov_merge.py/scov_merge.py: switch to python3
+
+Make gcov_merge.py and scov_merge.py port to python3.
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ tools/scripts/gcov_merge.py | 12 ++++++------
+ tools/scripts/scov_merge.py | 12 ++++++------
+ 2 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/tools/scripts/gcov_merge.py b/tools/scripts/gcov_merge.py
+index 0ac9bed..9f1cb8c 100644
+--- a/tools/scripts/gcov_merge.py
++++ b/tools/scripts/gcov_merge.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Merge gcov graph from several test cases. This can be used to check
+ # the coverage of several test cases.
+@@ -11,7 +11,7 @@
+ import sys
+
+ def die(str):
+- print str
++ print(str)
+ sys.exit(-1)
+
+ def die_on(cond, str):
+@@ -55,11 +55,11 @@ def merge(gcls1, gcls2):
+ gcl1.merge(gcl2)
+
+ def gcov_merge(fns, of):
+- f = file(fns[0])
++ f = open(fns[0])
+ gcls_base = parse(f)
+
+ for fn in fns[1:]:
+- f = file(fn)
++ f = open(fn)
+ gcls = parse(f)
+ merge(gcls_base, gcls)
+
+@@ -67,10 +67,10 @@ def gcov_merge(fns, of):
+ gcl.write(of)
+
+ def usage():
+- print 'Usage: %s <gcov graph files>' % (sys.argv[0])
++ print('Usage: %s <gcov graph files>' % (sys.argv[0]))
+
+ if __name__ == '__main__':
+ if len(sys.argv) <= 1:
+ usage()
+- exit -1
++ sys.exit(-1)
+ gcov_merge(sys.argv[1:], sys.stdout)
+diff --git a/tools/scripts/scov_merge.py b/tools/scripts/scov_merge.py
+index f83b922..bbcf760 100644
+--- a/tools/scripts/scov_merge.py
++++ b/tools/scripts/scov_merge.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+ #
+ # Merge mce serverity coverage file from several test cases. This can
+ # be used to check the coverage of several test cases.
+@@ -11,7 +11,7 @@
+ import sys
+
+ def die(str):
+- print str
++ print(str)
+ sys.exit(-1)
+
+ def die_on(cond, str):
+@@ -47,11 +47,11 @@ def merge(gcls1, gcls2):
+ gcl1.merge(gcl2)
+
+ def scov_merge(fns, of):
+- f = file(fns[0])
++ f = open(fns[0])
+ gcls_base = parse(f)
+
+ for fn in fns[1:]:
+- f = file(fn)
++ f = open(fn)
+ gcls = parse(f)
+ merge(gcls_base, gcls)
+
+@@ -59,10 +59,10 @@ def scov_merge(fns, of):
+ gcl.write(of)
+
+ def usage():
+- print 'Usage: %s <severities coverage files>' % (sys.argv[0])
++ print('Usage: %s <severities coverage files>' % (sys.argv[0]))
+
+ if __name__ == '__main__':
+ if len(sys.argv) <= 1:
+ usage()
+- exit -1
++ sys.exit(-1)
+ scov_merge(sys.argv[1:], sys.stdout)
+--
+2.24.1
+
diff --git a/meta-oe/recipes-support/mcelog/mce-test/makefile-remove-ldflags.patch b/meta-oe/recipes-support/mcelog/mce-test/makefile-remove-ldflags.patch
new file mode 100644
index 0000000000..0ffedd2c17
--- /dev/null
+++ b/meta-oe/recipes-support/mcelog/mce-test/makefile-remove-ldflags.patch
@@ -0,0 +1,23 @@
+Remove the default CFLAGS and LDFLAGS in Makefile. Ensure the extra linker flags can be passed.
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+
+diff --git a/cases/stress/hwpoison/Makefile b/cases/stress/hwpoison/Makefile
+index da1cbd8..dec5b14 100644
+--- a/cases/stress/hwpoison/Makefile
++++ b/cases/stress/hwpoison/Makefile
+@@ -1,8 +1,8 @@
+-CFLAGS := -g -Wall
+-LDFLAGS := -g
++#CFLAGS := -g -Wall
++#LDFLAGS := -g
+
+-export CFLAGS
+-export LDFLAGS
++#export CFLAGS
++#export LDFLAGS
+
+ all:
+ mkdir -p bin
diff --git a/meta-oe/recipes-support/mcelog/mce-test_git.bb b/meta-oe/recipes-support/mcelog/mce-test_git.bb
new file mode 100644
index 0000000000..fd302db897
--- /dev/null
+++ b/meta-oe/recipes-support/mcelog/mce-test_git.bb
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2012 Wind River Systems, Inc.
+#
+SUMMARY = "MCE test suite"
+
+DESCRIPTION = "The MCE test suite is a collection of tools and test scripts for \
+testing the Linux RAS related features, including CPU/Memory error \
+containment and recovery, ACPI/APEI support etc."
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3"
+
+SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mce-test.git;protocol=git;branch=master \
+ file://makefile-remove-ldflags.patch \
+ file://0001-gcov_merge.py-scov_merge.py-switch-to-python3.patch \
+ "
+SRCREV = "025014dedca39d2b8a57a82e52286e72e157d73a"
+PV = "20222810+git${SRCPV}"
+
+RDEPENDS:${PN} = "mcelog mce-inject dialog bash"
+
+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/
+}
+
+FILES:${PN} += "/opt"
diff --git a/meta-oe/recipes-support/mcelog/mcelog/0001-client-Include-string.h-form-mem-function-prototypes.patch b/meta-oe/recipes-support/mcelog/mcelog/0001-client-Include-string.h-form-mem-function-prototypes.patch
new file mode 100644
index 0000000000..3b6fd7d702
--- /dev/null
+++ b/meta-oe/recipes-support/mcelog/mcelog/0001-client-Include-string.h-form-mem-function-prototypes.patch
@@ -0,0 +1,26 @@
+From c7753f82261d49862d5e0f9691bf87799d36ef0c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 16:20:03 -0700
+Subject: [PATCH] client: Include string.h form mem* function prototypes
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ client.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/client.c b/client.c
+index 883b1de..e474e55 100644
+--- a/client.c
++++ b/client.c
+@@ -16,6 +16,7 @@
+ on your Linux system; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ #include <stdio.h>
++#include <string.h>
+ #include <sys/socket.h>
+ #include <sys/un.h>
+ #include <unistd.h>
+--
+2.37.3
+
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_1.49.bb b/meta-oe/recipes-support/mcelog/mcelog_1.49.bb
deleted file mode 100644
index 84633a76c9..0000000000
--- a/meta-oe/recipes-support/mcelog/mcelog_1.49.bb
+++ /dev/null
@@ -1,35 +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 = "http://mcelog.org/"
-SECTION = "System Environment/Base"
-
-SRC_URI = "git://git.kernel.org/pub/scm/utils/cpu/mce/mcelog.git;protocol=http; \
- file://run-ptest \
-"
-
-SRCREV = "2cfdf29b2ef98ccd5ed42cdde8bbe437e0d6412f"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://README.md;md5=279840fabb191e6cd9150492d31b0e20"
-
-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 += "${PN} make bash mce-inject"
diff --git a/meta-oe/recipes-support/mcelog/mcelog_194.bb b/meta-oe/recipes-support/mcelog/mcelog_194.bb
new file mode 100644
index 0000000000..9b5c554d86
--- /dev/null
+++ b/meta-oe/recipes-support/mcelog/mcelog_194.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 = "8f33fdc47160edce09d75e1316b4d88129ca60a0"
+
+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.4.8.bb b/meta-oe/recipes-support/md4c/md4c_0.4.8.bb
new file mode 100644
index 0000000000..fc3dbb3ae9
--- /dev/null
+++ b/meta-oe/recipes-support/md4c/md4c_0.4.8.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=7e0fbcf3701aad22f2d2e0624a703795"
+
+
+S = "${WORKDIR}/git"
+
+SRC_URI = " \
+ git://github.com/mity/md4c.git;protocol=https;branch=master \
+"
+
+SRCREV = "c3340b480e5232711858108be07460a9836c8ab5"
+
+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 1302679315..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,35 +5,30 @@ 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/GNUmakefile b/GNUmakefile
-index 7bf7dca..0e10030 100644
--- a/GNUmakefile
+++ b/GNUmakefile
-@@ -41,7 +41,6 @@ endif
+@@ -45,7 +45,6 @@ endif
CC?= gcc
CFLAGS?= -O2 -pipe
CFLAGS+= -g -Wall
-CPPFLAGS= -DREGEX
CPPFLAGS+= -D_GNU_SOURCE
- CPPFLAGS+= $(BSD_CPPFLAGS) -D__dead=__dead2
+ CPPFLAGS+= $(BSD_CPPFLAGS)
LIBS= $(CURSES_LIBS) $(BSD_LIBS)
-diff --git a/Makefile b/Makefile
-index 94ce340..d516bbc 100644
--- a/Makefile
+++ b/Makefile
-@@ -10,7 +10,7 @@ DPADD+= ${LIBCURSES} ${LIBUTIL}
- # REGEX -- create regular expression functions.
+@@ -11,7 +11,7 @@ DPADD+= ${LIBUTIL}
# STARTUPFILE -- look for and handle initialization file.
+ # MGLOG -- debug mg internals to a log file.
#
--CFLAGS+=-Wall -DREGEX
-+CFLAGS+=-Wall
+-CFLAGS+=-Wall -DREGEX `pkg-config --cflags-only-I ncurses`
++CFLAGS+=-Wall `pkg-config --cflags-only-I ncurses`
SRCS= autoexec.c basic.c bell.c buffer.c cinfo.c dir.c display.c \
echo.c extend.c file.c fileio.c funmap.c help.c kbd.c keymap.c \
---
-2.12.2
-
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 551f1df163..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,11 +5,11 @@ 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/fileio.c b/fileio.c
-index 48a67a2..9b69665 100644
--- a/fileio.c
+++ b/fileio.c
@@ -12,6 +12,7 @@
@@ -20,6 +20,3 @@ index 48a67a2..9b69665 100644
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
---
-2.12.2
-
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 907d67064a..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,16 +5,16 @@ 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/fileio.c b/fileio.c
-index 9b69665..a852fd2 100644
--- a/fileio.c
+++ b/fileio.c
-@@ -28,6 +28,10 @@
- #include "kbd.h"
- #include "pathnames.h"
+@@ -36,6 +36,10 @@
+ #define DEFFILEMODE 0666
+ #endif
+#if !defined(DEFFILEMODE)
+# define DEFFILEMODE (S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)/* 0666*/
@@ -23,6 +23,3 @@ index 9b69665..a852fd2 100644
static char *bkuplocation(const char *);
static int bkupleavetmp(const char *);
---
-2.12.2
-
diff --git a/meta-oe/recipes-support/mg/mg_20170401.bb b/meta-oe/recipes-support/mg/mg_20170401.bb
deleted file mode 100644
index dad1d008bf..0000000000
--- a/meta-oe/recipes-support/mg/mg_20170401.bb
+++ /dev/null
@@ -1,37 +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=1895eb37bf6bd79cdc5c89d8166fabfb"
-DEPENDS = "ncurses libbsd"
-SECTION = "console/editors"
-
-SRC_URI = "http://homepage.boetes.org/software/mg/mg-${PV}.tar.gz \
- 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 \
- "
-SRC_URI[md5sum] = "884388589fb38c2109ad9fed328be20a"
-SRC_URI[sha256sum] = "0a3608b17c153960cb1d954ca3b62445a77c0c1a18aa5c8c58aba9f6b8d62aab"
-
-# 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/mime-support/mime-support_3.48.bb b/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
deleted file mode 100644
index d617b6620c..0000000000
--- a/meta-oe/recipes-support/mime-support/mime-support_3.48.bb
+++ /dev/null
@@ -1,58 +0,0 @@
-SECTION = "base"
-SUMMARY = "MIME files 'mime.types' & 'mailcap', and support programs"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://debian/README;md5=36bbe2ace0a05c3fb684b73208fbf30b"
-
-DEPENDS = "file"
-RDEPENDS_${PN} = "perl"
-RRECOMMENDS_${PN} = "file"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/m/mime-support/mime-support_${PV}-1.tar.gz"
-S = "${WORKDIR}/${BPN}"
-
-FILES_${PN} += " ${libdir}/mime"
-
-docdir_append = "/${BPN}"
-
-do_install () {
- install -d ${D}${sysconfdir}
- install -d ${D}${libdir}/mime/packages
- install -d ${D}${docdir}
- install -d ${D}${sbindir}
- install -d ${D}${bindir}
- install -d ${D}${mandir}/man1
- install -d ${D}${mandir}/man5
- install -d ${D}${mandir}/man8
- install -m 644 mime.types ${D}${sysconfdir}/
- install -m 644 mailcap ${D}${libdir}/mime/
- install -m 644 mailcap.order ${D}${sysconfdir}/
- install -m 644 mailcap.man ${D}${mandir}/man5/mailcap.5
- install -m 644 mailcap.order.man ${D}${mandir}/man5/mailcap.order.5
-# install -m 755 install-mime ${D}${sbindir}/
-# install -m 644 install-mime.man ${D}${mandir}/man8/install-mime.8
- install -m 755 update-mime ${D}${sbindir}/
- install -m 644 update-mime.man ${D}${mandir}/man8/update-mime.8
- install -m 755 run-mailcap ${D}${bindir}/
- install -m 644 run-mailcap.man ${D}${mandir}/man1/run-mailcap.1
-# install -m 644 rfcs/* ${D}${docdir}/
- install -m 644 debian/changelog ${D}${docdir}/changelog.Debian
- install -m 644 debian/README ${D}${docdir}/copyright
- install -m 755 debian-view ${D}${libdir}/mime/
- install -m 755 playaudio ${D}${libdir}/mime/
- install -m 755 playdsp ${D}${libdir}/mime/
- install -m 644 mailcap.entries ${D}${libdir}/mime/packages/mime-support
- cd ${D}${mandir}; gzip -9fv */*
- cd ${D}${docdir}; gzip -9v *
- cd ${D}${docdir}; gunzip copyright.gz
- cd ${D}${bindir}; ln -s run-mailcap see
- cd ${D}${bindir}; ln -s run-mailcap edit
- cd ${D}${bindir}; ln -s run-mailcap compose
- cd ${D}${bindir}; ln -s run-mailcap print
- cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz see.1.gz
- cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz edit.1.gz
- cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz compose.1.gz
- cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz print.1.gz
-}
-
-SRC_URI[md5sum] = "d6e5d715e331147352c50c158dbdec6d"
-SRC_URI[sha256sum] = "a529c7892cb786f514af71f4ca5a4c3ebc58b538a49ff959c0d97592d38f040a"
diff --git a/meta-oe/recipes-support/mime-support/mime-support_3.62.bb b/meta-oe/recipes-support/mime-support/mime-support_3.62.bb
new file mode 100644
index 0000000000..46def2a23c
--- /dev/null
+++ b/meta-oe/recipes-support/mime-support/mime-support_3.62.bb
@@ -0,0 +1,65 @@
+SECTION = "base"
+SUMMARY = "MIME files 'mime.types' & 'mailcap', and support programs"
+LICENSE = "PD & Bellcore"
+LICENSE:${PN} = "PD"
+# mailcap.man's license is Bellcore
+LICENSE:${PN}-doc = "PD & Bellcore"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=53c851e31d27c3ea8a6217073a5ff01c"
+
+DEPENDS = "file"
+RDEPENDS:${PN} = "perl"
+RRECOMMENDS:${PN} = "file"
+
+SRC_URI = "${DEBIAN_MIRROR}/main/m/mime-support/mime-support_${PV}.tar.gz"
+SRC_URI[sha256sum] = "54e0a03e0cd63c7c9fe68a18ead0a2143fd3c327604215f989d85484d0409f4a"
+S = "${WORKDIR}/${BPN}"
+
+inherit update-alternatives
+
+FILES:${PN} += " ${libdir}/mime"
+
+docdir:append = "/${BPN}"
+
+do_install () {
+ install -d ${D}${sysconfdir}
+ install -d ${D}${libdir}/mime/packages
+ install -d ${D}${docdir}
+ install -d ${D}${sbindir}
+ install -d ${D}${bindir}
+ install -d ${D}${mandir}/man1
+ install -d ${D}${mandir}/man5
+ install -d ${D}${mandir}/man8
+ install -m 644 mime.types ${D}${sysconfdir}/
+ install -m 644 mailcap ${D}${libdir}/mime/
+ install -m 644 mailcap.order ${D}${sysconfdir}/
+ install -m 644 mailcap.man ${D}${mandir}/man5/mailcap.5
+ install -m 644 mailcap.order.man ${D}${mandir}/man5/mailcap.order.5
+# install -m 755 install-mime ${D}${sbindir}/
+# install -m 644 install-mime.man ${D}${mandir}/man8/install-mime.8
+ install -m 755 update-mime ${D}${sbindir}/
+ install -m 644 update-mime.man ${D}${mandir}/man8/update-mime.8
+ install -m 755 run-mailcap ${D}${bindir}/
+ install -m 644 run-mailcap.man ${D}${mandir}/man1/run-mailcap.1
+# install -m 644 rfcs/* ${D}${docdir}/
+ install -m 644 debian/changelog ${D}${docdir}/changelog.Debian
+ install -m 644 debian/copyright ${D}${docdir}/copyright
+ install -m 755 debian-view ${D}${libdir}/mime/
+ install -m 755 playaudio ${D}${libdir}/mime/
+ install -m 755 playdsp ${D}${libdir}/mime/
+ install -m 644 mailcap.entries ${D}${libdir}/mime/packages/mime-support
+ cd ${D}${mandir}; gzip -9fv */*
+ cd ${D}${docdir}; gzip -9v *
+ cd ${D}${docdir}; gunzip copyright.gz
+ cd ${D}${bindir}; ln -s run-mailcap see
+ cd ${D}${bindir}; ln -s run-mailcap edit
+ cd ${D}${bindir}; ln -s run-mailcap compose
+ cd ${D}${bindir}; ln -s run-mailcap print
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz see.1.gz
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz edit.1.gz
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz compose.1.gz
+ cd ${D}${mandir}/man1; ln -s run-mailcap.1.gz print.1.gz
+}
+
+ALTERNATIVE_PRIORITY = "90"
+ALTERNATIVE:${PN} = "mime.types"
+ALTERNATIVE_LINK_NAME[mime.types] = "${sysconfdir}/mime.types"
diff --git a/meta-oe/recipes-support/mini-iconv/mini-iconv.bb b/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
deleted file mode 100644
index 0f1548aa28..0000000000
--- a/meta-oe/recipes-support/mini-iconv/mini-iconv.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright (C) 2012 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-SUMMARY = "A minimal iconv implementation w/ support for UTF-8, ASCII, ISO-8859-1"
-HOMEPAGE = "http://tinderbox.dev.gentoo.org/portage/local/misc/mini-iconv/"
-LICENSE = "MPL-1.1"
-SECTION = "libs"
-DEPENDS = ""
-PROVIDES = "virtual/libiconv"
-LIC_FILES_CHKSUM = "file://iconv.c;beginline=1;endline=6;md5=35af9d9924327fe8a0a1fe3a2cb454c8"
-SRC_URI = "http://mirror.meleeweb.net/pub/linux/gentoo/distfiles/mini-iconv.tar.bz2"
-SRC_URI[md5sum] = "84412221e26505a2b3855d4a1cdcd0e0"
-SRC_URI[sha256sum] = "3552262bf1bcf8e859a2a3a7adfb0367af8593383e730c492e981477aac0a0d4"
-
-
-S = "${WORKDIR}/${PN}"
-
-do_install() {
- oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIB=${base_libdir}
-}
diff --git a/meta-oe/recipes-support/monit/monit/monit b/meta-oe/recipes-support/monit/monit/monit
new file mode 100644
index 0000000000..394704e061
--- /dev/null
+++ b/meta-oe/recipes-support/monit/monit/monit
@@ -0,0 +1,42 @@
+#! /bin/sh
+#
+# This is an init script for openembedded
+# Copy it to /etc/init.d/monit and type
+# > update-rc.d monit defaults 89
+#
+monit=/usr/bin/monit
+pidfile=/var/run/monit.pid
+monit_args="-c /etc/monitrc"
+
+test -x "$monit" || exit 0
+
+case "$1" in
+ start)
+ echo -n "Starting Monit"
+ start-stop-daemon --start --quiet --exec $monit -- $monit_args
+ RETVAL=$?
+ echo "."
+ ;;
+ stop)
+ echo -n "Stopping Monit"
+ start-stop-daemon --stop --quiet --pidfile $pidfile
+ RETVAL=$?
+ echo "."
+ ;;
+ restart)
+ $0 stop
+ $0 start
+ RETVAL=$?
+ ;;
+ status)
+ $monit $monit_args status
+ RETVAL=$?
+ echo "."
+ ;;
+ *)
+ echo "Usage: $0 {start|stop|restart|status}"
+ exit 1
+esac
+
+exit $RETVAL
+
diff --git a/meta-oe/recipes-support/monit/monit/monitrc b/meta-oe/recipes-support/monit/monit/monitrc
new file mode 100644
index 0000000000..af7bd2be53
--- /dev/null
+++ b/meta-oe/recipes-support/monit/monit/monitrc
@@ -0,0 +1,50 @@
+###############################################################################
+## Monit control file
+###############################################################################
+##
+## Comments begin with a '#' and extend through the end of the line. Keywords
+## are case insensitive. All path's MUST BE FULLY QUALIFIED, starting with '/'.
+##
+## Below you will find examples of some frequently used statements. For
+## information about the control file and a complete list of statements and
+## options, please have a look in the Monit manual.
+##
+##
+###############################################################################
+## Global section
+###############################################################################
+##
+## Start Monit in the background (run as a daemon):
+#
+set daemon 30 # check services at 30 seconds intervals
+# with start delay 240 # optional: delay the first check by 4-minutes (by
+# # default Monit check immediately after Monit start)
+#
+#
+
+# set monit files in temporary locations
+set pidfile /var/run/.monit.pid
+set statefile /var/run/.monit.state
+set idfile /var/run/.monit.id
+
+## Set syslog logging. If you want to log to a standalone log file instead,
+## specify the full path to the log file
+#
+set log syslog
+
+set httpd port 2812
+ allow 0.0.0.0/0 # allow localhost to connect to the server and
+ allow admin:monit # require user 'admin' with password 'monit'
+ #with ssl { # enable SSL/TLS and set path to server certificate
+ # pemfile: /etc/ssl/certs/monit.pem
+ #}
+
+###############################################################################
+## Includes
+###############################################################################
+##
+## It is possible to include additional configuration parts from other files or
+## directories.
+#
+include /etc/monit.d/*
+
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/mscgen/mscgen_0.20.bb b/meta-oe/recipes-support/mscgen/mscgen_0.20.bb
new file mode 100644
index 0000000000..371281d6e4
--- /dev/null
+++ b/meta-oe/recipes-support/mscgen/mscgen_0.20.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Mscgen is a small program that parses Message Sequence Chart descriptions and produces PNG, SVG, EPS or server side image maps (ismaps) as the output."
+HOMEPAGE = "http://www.mcternan.me.uk/mscgen/"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b1e6a340187c1cf716513439d07c1d79"
+
+SRC_URI = "http://www.mcternan.me.uk/mscgen/software/${BPN}-src-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "65c90fb5150d7176b65b793f0faa7377"
+SRC_URI[sha256sum] = "3c3481ae0599e1c2d30b7ed54ab45249127533ab2f20e768a0ae58d8551ddc23"
+
+DEPENDS = "gd "
+
+inherit autotools gettext pkgconfig
+
+do_configure:prepend() {
+ sed -i "s#AC_PATH_PROG(GDLIB_CONFIG,gdlib-config)#AC_PATH_PROG([GDLIB_CONFIG],[gdlib-config], ,[${STAGING_BINDIR_CROSS}])#" ${S}/configure.ac
+}
+
+BBCLASSEXTEND = "native nativesdk"
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-add-explicit-dependency-on-libraries.patch b/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch
new file mode 100644
index 0000000000..3b0a704480
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0001-add-explicit-dependency-on-libraries.patch
@@ -0,0 +1,40 @@
+From ee9f7b6e764be5668bc958f8bb97a46e5056d050 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>
+[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 f195b570..2d22881c 100644
+--- a/Makefile
++++ b/Makefile
+@@ -78,6 +78,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.38.1
+
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
new file mode 100644
index 0000000000..bc07d75cc1
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0001-fix-bug-of-do_compile-and-do_install.patch
@@ -0,0 +1,43 @@
+From 51f1f351262a31d94c10504e4d135526c6a7caeb 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>
+
+[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 27b4641f..f195b570 100644
+--- a/Makefile
++++ b/Makefile
+@@ -79,6 +79,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.38.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch b/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
deleted file mode 100644
index 46dd8e23b4..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0001-kpartx-include-limits.h-for-PATH_MAX.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 330028a5a904a0da3788141030e614569dc5aaa7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 14 Jul 2017 23:28:12 -0700
-Subject: [PATCH] kpartx: include limits.h for PATH_MAX
-
-lopart.c:76:12: error: 'PATH_MAX' undeclared (first use in this function); did you mean 'INT8_MAX'?
- char path[PATH_MAX];
- ^~~~~~~~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- kpartx/lopart.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/kpartx/lopart.c b/kpartx/lopart.c
-index 7005445..5efe5dc 100644
---- a/kpartx/lopart.c
-+++ b/kpartx/lopart.c
-@@ -22,6 +22,7 @@
- #include <errno.h>
- #include <stdlib.h>
- #include <unistd.h>
-+#include <limits.h>
- #include <sys/ioctl.h>
- #include <sys/stat.h>
- #include <sys/mman.h>
---
-2.13.3
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch b/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
deleted file mode 100644
index acb4269543..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0001-multipath-attempt-at-common-multipath.rules.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 5ab50e0cb888e553a2635bbbf81eea3cdeffee60 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 12 Apr 2017 09:07:51 -0500
-Subject: [PATCH 01/14] multipath: attempt at common multipath.rules
-
-This is a proposal to try and bring the Redhat and SuSE multipath.rules
-closer. There are a couple of changes that I'd like some input on.
-
-The big change is moving the kpartx call into the multipath rules. Half
-of the current kpartx.rules file is about creating symlinks for multiple
-types of dm devices. The other half auto-creates kpartx devices on top
-of multipath devices. Since it is only creating kpartx devices on top of
-multipath devices, I've moved the these rules into multipath.rules, or
-rather, I've replaced them with the redhat rules in multipath.rules. The
-biggest difference is the kpartx isn't run on every reload. It works
-with the 11-dm-mpath.rules code to not run kpartx on multipathd
-generated reloads or when there aren't any working paths. It does
-remember if it didn't get to run kpartx when it was supposed to (because
-there were no valid paths or the device was suspended) and will make
-sure to run it on the next possible uevent.
-
-The other change is the redhat multipath rules remove the partition
-device nodes for devices claimed by multipath. The udev rule will only
-do this one time (both to keep from running partx on every event, and so
-that if users manually reread the partition table, we don't keep
-removing them when clearly they are wanted). Redhat does this because we
-had multiple customer issues where they were using the scsi partitions
-instead of the kpartx devices. Obviously, with setting the partition
-devices to not ready and clearing their fs_type, this isn't essential,
-but it has helped make customers do the right thing.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- kpartx/kpartx.rules | 8 --------
- multipath/multipath.rules | 27 ++++++++++++++++++++++++---
- 2 files changed, 24 insertions(+), 11 deletions(-)
-
-diff --git a/kpartx/kpartx.rules b/kpartx/kpartx.rules
-index a958791..906e320 100644
---- a/kpartx/kpartx.rules
-+++ b/kpartx/kpartx.rules
-@@ -34,12 +34,4 @@ ENV{ID_FS_LABEL_ENC}=="?*", IMPORT{db}="ID_FS_LABEL_ENC"
- ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", \
- SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}"
-
--# Create dm tables for partitions
--ENV{DM_ACTION}=="PATH_FAILED|PATH_REINSTATED", GOTO="kpartx_end"
--ENV{DM_NR_VALID_PATHS}=="0", GOTO="kpartx_end"
--ENV{ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
--ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="kpartx_end"
--ENV{DM_STATE}!="SUSPENDED", ENV{DM_UUID}=="mpath-*", \
-- RUN+="/sbin/kpartx -un -p -part /dev/$name"
--
- LABEL="kpartx_end"
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 86defc0..616a04c 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -1,13 +1,13 @@
- # Set DM_MULTIPATH_DEVICE_PATH if the device should be handled by multipath
- SUBSYSTEM!="block", GOTO="end_mpath"
- ACTION!="add|change", GOTO="end_mpath"
--KERNEL!="sd*|dasd*", GOTO="end_mpath"
--
-+KERNEL!="sd*|dasd*|rbd*|dm-*", GOTO="end_mpath"
- IMPORT{cmdline}="nompath"
- ENV{nompath}=="?*", GOTO="end_mpath"
- IMPORT{cmdline}="multipath"
- ENV{multipath}=="off", GOTO="end_mpath"
-
-+KERNEL=="dm-*", GOTO="check_kpartx"
- ENV{DEVTYPE}!="partition", GOTO="test_dev"
- IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH"
- ENV{DM_MULTIPATH_DEVICE_PATH}=="1", ENV{ID_FS_TYPE}="none", \
-@@ -21,7 +21,28 @@ TEST!="$env{MPATH_SBIN_PATH}/multipath", ENV{MPATH_SBIN_PATH}="/usr/sbin"
-
- ENV{DM_MULTIPATH_DEVICE_PATH}!="1", \
- PROGRAM=="$env{MPATH_SBIN_PATH}/multipath -u %k", \
-- ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="none", \
-+ ENV{DM_MULTIPATH_DEVICE_PATH}="1", ENV{ID_FS_TYPE}="mpath_member", \
- ENV{SYSTEMD_READY}="0"
-
-+ENV{DM_MULTIPATH_DEVICE_PATH}!="1", GOTO="end_mpath"
-+
-+IMPORT{db}="DM_MULTIPATH_WIPE_PARTS"
-+ENV{DM_MULTIPATH_WIPE_PARTS}!="1", ENV{DM_MULTIPATH_WIPE_PARTS}="1", \
-+ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
-+GOTO="end_mpath"
-+
-+LABEL="check_kpartx"
-+
-+IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
-+ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
-+ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
-+ACTION!="change", GOTO="end_mpath"
-+ENV{DM_UUID}!="mpath-?*", GOTO="end_mpath"
-+ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
-+ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
-+ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
-+ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
-+RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+ENV{DM_MULTIPATH_NEED_KPARTX}=""
-+
- LABEL="end_mpath"
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch b/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
deleted file mode 100644
index e63d2eb33f..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0002-RH-fixup-udev-rules-for-redhat.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 158255383c02d3fb81c82fb9ec6fd36fb234f68e Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 13 Apr 2017 07:22:23 -0500
-Subject: [PATCH 02/14] 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. Also, we don't
-currently set up all the symlinks that SuSE does. If we want them, they
-should be done in the device-mapper package, since they are for all
-device-mapper devices. Redhat also uses a different naming scheme for
-partitions than SuSE.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- Makefile.inc | 2 +-
- kpartx/Makefile | 14 +++++++-------
- multipath/Makefile | 4 ++--
- multipath/multipath.rules | 3 ++-
- 4 files changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 1815f9a..2591fa9 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -47,7 +47,7 @@ endif
-
- prefix =
- exec_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/Makefile b/kpartx/Makefile
-index 7b75032..bfa6fe8 100644
---- a/kpartx/Makefile
-+++ b/kpartx/Makefile
-@@ -26,19 +26,19 @@ $(EXEC): $(OBJS)
- install: $(EXEC) $(EXEC).8
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(bindir)
- $(INSTALL_PROGRAM) -m 755 $(EXEC) $(DESTDIR)$(bindir)
-- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
-- $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-- $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
-- $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-+# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)
-+# $(INSTALL_PROGRAM) -m 755 kpartx_id $(DESTDIR)$(libudevdir)
-+# $(INSTALL_PROGRAM) -d $(DESTDIR)$(libudevdir)/rules.d
-+# $(INSTALL_PROGRAM) -m 644 kpartx.rules $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
- $(INSTALL_PROGRAM) -d $(DESTDIR)$(man8dir)
- $(INSTALL_PROGRAM) -m 644 $(EXEC).8.gz $(DESTDIR)$(man8dir)
-
- uninstall:
- $(RM) $(DESTDIR)$(bindir)/$(EXEC)
- $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8.gz
-- $(RM) $(DESTDIR)$(libudevdir)/kpartx_id
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-- $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
-+# $(RM) $(DESTDIR)$(libudevdir)/kpartx_id
-+# $(RM) $(DESTDIR)$(libudevdir)/rules.d/66-kpartx.rules
-+# $(RM) $(DESTDIR)$(libudevdir)/rules.d/67-kpartx-compat.rules
-
- clean:
- $(RM) core *.o $(EXEC) *.gz
-diff --git a/multipath/Makefile b/multipath/Makefile
-index c85314e..1e9ee4b 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
-
-diff --git a/multipath/multipath.rules b/multipath/multipath.rules
-index 616a04c..4d78b98 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -33,6 +33,7 @@ GOTO="end_mpath"
-
- LABEL="check_kpartx"
-
-+ENV{DM_UUID}=="mpath-?*|part[0-9]*-mpath-?*", OPTIONS+="link_priority=10"
- IMPORT{db}="DM_MULTIPATH_NEED_KPARTX"
- ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}!="1", IMPORT{db}="DM_SUBSYSTEM_UDEV_FLAG1"
- ENV{DM_SUBSYSTEM_UDEV_FLAG1}=="1", GOTO="end_mpath"
-@@ -42,7 +43,7 @@ ENV{DM_ACTIVATION}=="1", ENV{DM_MULTIPATH_NEED_KPARTX}="1"
- ENV{DM_SUSPENDED}=="1", GOTO="end_mpath"
- ENV{DM_ACTION}=="PATH_FAILED", GOTO="end_mpath"
- ENV{DM_ACTIVATION}!="1", ENV{DM_MULTIPATH_NEED_KPARTX}!="1", GOTO="end_mpath"
--RUN+="/sbin/kpartx -un -p -part /dev/$name"
-+RUN+="/sbin/kpartx -un /dev/$name"
- ENV{DM_MULTIPATH_NEED_KPARTX}=""
-
- LABEL="end_mpath"
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch b/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
deleted file mode 100644
index 684e959d66..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0003-RH-Remove-the-property-blacklist-exception-builtin.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 69a67c2ed09ae51b53de402966a9f7a4cc737715 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 2 Jul 2014 12:49:53 -0500
-Subject: [PATCH 03/14] 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>
----
- libmultipath/blacklist.c | 15 ++++++---------
- multipath/multipath.conf.5 | 4 ----
- 2 files changed, 6 insertions(+), 13 deletions(-)
-
-diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
-index ee396e2..19d4697 100644
---- a/libmultipath/blacklist.c
-+++ b/libmultipath/blacklist.c
-@@ -181,12 +181,6 @@ setup_default_blist (struct config * conf)
- if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
- return 1;
-
-- str = STRDUP("(SCSI_IDENT_|ID_WWN)");
-- if (!str)
-- return 1;
-- if (store_ble(conf->elist_property, str, ORIGIN_DEFAULT))
-- return 1;
--
- vector_foreach_slot (conf->hwtable, hwe, i) {
- if (hwe->bl_product) {
- if (_blacklist_device(conf->blist_device, hwe->vendor,
-@@ -390,9 +384,12 @@ filter_property(struct config * conf, struct udev_device * udev)
- * This is the inverse of the 'normal' matching;
- * the environment variable _has_ to match.
- */
-- log_filter(devname, NULL, NULL, NULL, NULL,
-- MATCH_PROPERTY_BLIST_MISSING);
-- return MATCH_PROPERTY_BLIST_MISSING;
-+ if (VECTOR_SIZE(conf->elist_property)) {
-+ log_filter(devname, NULL, NULL, NULL, NULL,
-+ MATCH_PROPERTY_BLIST_MISSING);
-+ return MATCH_PROPERTY_BLIST_MISSING;
-+ }
-+ return 0;
- }
-
- void
-diff --git a/multipath/multipath.conf.5 b/multipath/multipath.conf.5
-index f04ff19..fbbbb27 100644
---- a/multipath/multipath.conf.5
-+++ b/multipath/multipath.conf.5
-@@ -1014,10 +1014,6 @@ The \fIWorld Wide Identification\fR of a device.
- .TP
- .B property
- Regular expression of the udev property to be whitelisted.
--.RS
--.TP
--The default is: \fB(SCSI_IDENT_|ID_WWN)\fR
--.RE
- .TP
- .B device
- Subsection for the device description. This subsection recognizes the
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch b/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
deleted file mode 100644
index 87a6d3fb65..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0004-RH-don-t-start-without-a-config-file.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From b2b504fc1959c7a3f0a843c3c204e8e193b675b7 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 15 Oct 2014 10:39:30 -0500
-Subject: [PATCH 04/14] 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>
----
- libmultipath/config.c | 17 +++++++++++++++++
- libmultipath/config.h | 1 +
- multipath/multipath.rules | 1 +
- multipathd/multipathd.8 | 2 ++
- multipathd/multipathd.service | 1 +
- 5 files changed, 22 insertions(+)
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index bb6619b..aae69b8 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -25,6 +25,7 @@
- #include "prio.h"
- #include "devmapper.h"
- #include "mpath_cmd.h"
-+#include "version.h"
-
- static int
- hwe_strmatch (struct hwentry *hwe1, struct hwentry *hwe2)
-@@ -667,6 +668,22 @@ load_config (char * file)
- factorize_hwtable(conf->hwtable, builtin_hwtable_size);
- }
-
-+ } else {
-+ condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
-+ condlog(0, "A default multipath.conf file is located at");
-+ condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
-+ if (conf->blist_devnode == NULL) {
-+ 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 ffc69b5..614331c 100644
---- a/libmultipath/config.h
-+++ b/libmultipath/config.h
-@@ -7,6 +7,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 4d78b98..5753766 100644
---- a/multipath/multipath.rules
-+++ b/multipath/multipath.rules
-@@ -6,6 +6,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"
-
- KERNEL=="dm-*", GOTO="check_kpartx"
- ENV{DEVTYPE}!="partition", GOTO="test_dev"
-diff --git a/multipathd/multipathd.8 b/multipathd/multipathd.8
-index 4c765af..c1499a5 100644
---- a/multipathd/multipathd.8
-+++ b/multipathd/multipathd.8
-@@ -39,6 +39,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.conffile exists
- .
- .
- .\" ----------------------------------------------------------------------------
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index fd66cf6..fafd088 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-lvmetad.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.8.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
deleted file mode 100644
index acef41023b..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0005-RH-add-mpathconf.patch
+++ /dev/null
@@ -1,648 +0,0 @@
-From de44504fe7f7802cd474efd92ac15b5a8857db1f Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 16 Oct 2014 15:49:01 -0500
-Subject: [PATCH 05/14] 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>
----
- 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 aae69b8..c485748 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -672,6 +672,7 @@ load_config (char * file)
- condlog(0, "/etc/multipath.conf does not exist, blacklisting all devices.");
- condlog(0, "A default multipath.conf file is located at");
- condlog(0, "/usr/share/doc/device-mapper-multipath-%d.%d.%d/multipath.conf", MULTIPATH_VERSION(VERSION_CODE));
-+ 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 1e9ee4b..3d4d459 100644
---- a/multipath/Makefile
-+++ b/multipath/Makefile
-@@ -18,10 +18,12 @@ $(EXEC): $(OBJS)
- $(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:
- $(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.8.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
deleted file mode 100644
index dc291b8128..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 15179c830521d8f37f9254ebc6bbf150a409f956 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Fri, 17 Oct 2014 11:20:34 -0500
-Subject: [PATCH 06/14] 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>
----
- libmultipath/wwids.c | 44 +++++++++++++++++++++++++++++++++++++++++++
- libmultipath/wwids.h | 1 +
- multipath/main.c | 10 ++++++++--
- multipath/multipath.8 | 5 ++++-
- multipathd/multipathd.service | 1 +
- 5 files changed, 58 insertions(+), 3 deletions(-)
-
-diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index bc70a27..88bb72b 100644
---- a/libmultipath/wwids.c
-+++ b/libmultipath/wwids.c
-@@ -321,3 +321,47 @@ remember_wwid(char *wwid)
- condlog(4, "wwid %s already in wwids file", wwid);
- return 0;
- }
-+
-+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 9527012..b665232 100644
---- a/libmultipath/wwids.h
-+++ b/libmultipath/wwids.h
-@@ -17,5 +17,6 @@ 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);
-
- #endif /* _WWIDS_H */
-diff --git a/multipath/main.c b/multipath/main.c
-index 4174d43..72585b0 100644
---- a/multipath/main.c
-+++ b/multipath/main.c
-@@ -102,7 +102,7 @@ usage (char * progname)
- {
- fprintf (stderr, VERSION_STRING);
- fprintf (stderr, "Usage:\n");
-- fprintf (stderr, " %s [-a|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
-+ fprintf (stderr, " %s [-a|-A|-c|-w|-W] [-d] [-r] [-i] [-v lvl] [-p pol] [-b fil] [-q] [dev]\n", progname);
- fprintf (stderr, " %s -l|-ll|-f [-v lvl] [-b fil] [-R num] [dev]\n", progname);
- fprintf (stderr, " %s -F [-v lvl] [-R num]\n", progname);
- fprintf (stderr, " %s -t\n", progname);
-@@ -116,6 +116,8 @@ usage (char * progname)
- " -f flush a multipath device map\n"
- " -F flush all multipath device maps\n"
- " -a add a device wwid to the wwids file\n"
-+ " -A add devices from kernel command line mpath.wwids\n"
-+ " parameters to wwids file\n"
- " -c check if a device should be a path in a multipath device\n"
- " -q allow queue_if_no_path when multipathd is not running\n"
- " -d dry run, do not create or update devmaps\n"
-@@ -522,7 +524,7 @@ main (int argc, char *argv[])
- exit(1);
- multipath_conf = conf;
- conf->retrigger_tries = 0;
-- while ((arg = getopt(argc, argv, ":adchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
-+ while ((arg = getopt(argc, argv, ":aAdchl::FfM:v:p:b:BrR:itquwW")) != EOF ) {
- switch(arg) {
- case 1: printf("optarg : %s\n",optarg);
- break;
-@@ -586,6 +588,10 @@ main (int argc, char *argv[])
- case 't':
- r = dump_config(conf);
- goto out_free_config;
-+ case 'A':
-+ if (remember_cmdline_wwid() != 0)
-+ exit(1);
-+ exit(0);
- case 'h':
- usage(argv[0]);
- exit(0);
-diff --git a/multipath/multipath.8 b/multipath/multipath.8
-index b9436e5..b9ad6b1 100644
---- a/multipath/multipath.8
-+++ b/multipath/multipath.8
-@@ -25,7 +25,7 @@ multipath \- Device mapper target autoconfig.
- .RB [\| \-b\ \c
- .IR bindings_file \|]
- .RB [\| \-d \|]
--.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \|-u | \-w | \-W \|]
-+.RB [\| \-h | \-l | \-ll | \-f | \-t | \-F | \-B | \-c | \-q | \|-r | \|-i | \-a | \-A | \-u | \-w | \-W \|]
- .RB [\| \-p\ \c
- .IR failover | multibus | group_by_serial | group_by_prio | group_by_node_name \|]
- .RB [\| \-R\ \c
-@@ -122,6 +122,9 @@ Add the WWID for the specified device to the WWIDs file.
- Check if the device specified in the program environment should be
- a path in a multipath device.
- .
-+.B \-A
-+add wwids from any kernel command line mpath.wwid parameters to the wwids file
-+.
- .TP
- .B \-w
- Remove the WWID for the specified device from the WWIDs file.
-diff --git a/multipathd/multipathd.service b/multipathd/multipathd.service
-index fafd088..a623a3f 100644
---- a/multipathd/multipathd.service
-+++ b/multipathd/multipathd.service
-@@ -15,6 +15,7 @@ Type=notify
- NotifyAccess=main
- LimitCORE=infinity
- ExecStartPre=-/sbin/modprobe -a scsi_dh_alua scsi_dh_emc scsi_dh_rdac dm-multipath
-+ExecStartPre=-/sbin/multipath -A
- ExecStart=/sbin/multipathd -d -s
- ExecReload=/sbin/multipathd reconfigure
-
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch b/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
deleted file mode 100644
index 025a3512e3..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0007-RH-trigger-change-uevent-on-new-device-creation.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 0d2c9afbd89d79fd700f9c99aa20e5f7c7382027 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Mon, 24 Apr 2017 09:39:57 -0500
-Subject: [PATCH 07/14] RH: trigger change uevent on new device creation
-
-When multipath first sees a path device with user_friendly names
-enabled, it can't know if the device should be multipathed. This means
-that it will not claim the device in udev. If the device is eventually
-multipathed, multipath should trigger a change uevent to update the udev
-database to claim the device.
-
-This also reverts commit 64e27ec066a001012f44550f095c93443e91d845.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/configure.c | 26 ++++++++++++++++++++++++--
- libmultipath/configure.h | 1 +
- libmultipath/wwids.c | 4 ++--
- multipath/main.c | 2 +-
- multipathd/main.c | 7 ++-----
- 5 files changed, 30 insertions(+), 10 deletions(-)
-
-diff --git a/libmultipath/configure.c b/libmultipath/configure.c
-index bd090d9..843dd09 100644
---- a/libmultipath/configure.c
-+++ b/libmultipath/configure.c
-@@ -422,6 +422,28 @@ trigger_udev_change(const struct multipath *mpp)
- udev_device_unref(udd);
- }
-
-+void
-+trigger_paths_udev_change(const struct multipath *mpp)
-+{
-+ struct pathgroup * pgp;
-+ struct path * pp;
-+ int i, j;
-+
-+ if (!mpp || !mpp->pg)
-+ return;
-+
-+ vector_foreach_slot (mpp->pg, pgp, i) {
-+ if (!pgp->paths)
-+ continue;
-+ vector_foreach_slot(pgp->paths, pp, j) {
-+ if (!pp->udev)
-+ continue;
-+ sysfs_attr_set_value(pp->udev, "uevent", "change",
-+ strlen("change"));
-+ }
-+ }
-+}
-+
- static int
- is_mpp_known_to_udev(const struct multipath *mpp)
- {
-@@ -802,8 +824,8 @@ int domap(struct multipath *mpp, char *params, int is_daemon)
- * succeeded
- */
- mpp->force_udev_reload = 0;
-- if (mpp->action == ACT_CREATE)
-- remember_wwid(mpp->wwid);
-+ if (mpp->action == ACT_CREATE && remember_wwid(mpp->wwid) == 1)
-+ trigger_paths_udev_change(mpp);
- if (!is_daemon) {
- /* multipath client mode */
- dm_switchgroup(mpp->alias, mpp->bestpg);
-diff --git a/libmultipath/configure.h b/libmultipath/configure.h
-index fd7f581..253e29b 100644
---- a/libmultipath/configure.h
-+++ b/libmultipath/configure.h
-@@ -36,3 +36,4 @@ int get_refwwid (enum mpath_cmds cmd, char * dev, enum devtypes dev_type,
- vector pathvec, char **wwid);
- int reload_map(struct vectors *vecs, struct multipath *mpp, int refresh, int is_daemon);
- int sysfs_get_host_adapter_name(struct path *pp, char *adapter_name);
-+void trigger_paths_udev_change(const struct multipath *mpp);
-diff --git a/libmultipath/wwids.c b/libmultipath/wwids.c
-index 88bb72b..249c6c1 100644
---- a/libmultipath/wwids.c
-+++ b/libmultipath/wwids.c
-@@ -319,7 +319,7 @@ remember_wwid(char *wwid)
- condlog(3, "wrote wwid %s to wwids file", wwid);
- else
- condlog(4, "wwid %s already in wwids file", wwid);
-- return 0;
-+ return ret;
- }
-
- int remember_cmdline_wwid(void)
-@@ -353,7 +353,7 @@ int remember_cmdline_wwid(void)
- next++;
- }
- if (strlen(ptr)) {
-- if (remember_wwid(ptr) != 0)
-+ if (remember_wwid(ptr) < 0)
- ret = -1;
- }
- else {
-diff --git a/multipath/main.c b/multipath/main.c
-index 72585b0..2eda6a3 100644
---- a/multipath/main.c
-+++ b/multipath/main.c
-@@ -336,7 +336,7 @@ configure (struct config *conf, enum mpath_cmds cmd,
- }
- if (cmd == CMD_ADD_WWID) {
- r = remember_wwid(refwwid);
-- if (r == 0)
-+ if (r >= 0)
- printf("wwid '%s' added\n", refwwid);
- else
- printf("failed adding '%s' to wwids file\n",
-diff --git a/multipathd/main.c b/multipathd/main.c
-index 81c76ca..874bcce 100644
---- a/multipathd/main.c
-+++ b/multipathd/main.c
-@@ -2093,7 +2093,8 @@ configure (struct vectors * vecs, int start_waiters)
-
- sync_maps_state(mpvec);
- vector_foreach_slot(mpvec, mpp, i){
-- remember_wwid(mpp->wwid);
-+ if (remember_wwid(mpp->wwid) == 1)
-+ trigger_paths_udev_change(mpp);
- update_map_pr(mpp);
- }
-
-@@ -2175,10 +2176,6 @@ reconfigure (struct vectors * vecs)
- conf->verbosity = verbosity;
- if (bindings_read_only)
- conf->bindings_read_only = bindings_read_only;
-- if (conf->find_multipaths) {
-- condlog(2, "find_multipaths is set: -n is implied");
-- ignore_new_devs = 1;
-- }
- if (ignore_new_devs)
- conf->ignore_new_devs = ignore_new_devs;
- uxsock_timeout = conf->uxsock_timeout;
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch b/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
deleted file mode 100644
index f678809931..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0008-libmultipath-change-how-RADOS-checker-is-enabled.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 0be174dbedd861d7694b0c7799fe26be31eb32b0 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Fri, 26 May 2017 17:52:57 -0500
-Subject: [PATCH 08/14] libmultipath: change how RADOS checker is enabled
-
-Instead of making the user call "make", "make install" and "make clean"
-with ENABLE_RADOS set correctly, have the makefile check if
-/usr/include/rados/librados.h exists, just like it checks if specific
-functions exist in a file.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- Makefile.inc | 13 +++++++++++++
- libmultipath/checkers/Makefile | 3 ++-
- 2 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index 2591fa9..e084fd1 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -109,5 +109,18 @@ check_func = \
- echo "$$found" \
- )
-
-+# Checker whether a file with name $1 exists
-+check_file = $(shell \
-+ if [ -f "$1" ]; then \
-+ found=1; \
-+ status="yes"; \
-+ else \
-+ found=0; \
-+ status="no"; \
-+ fi; \
-+ echo 1>&2 "Checking if $1 exists ... $$status"; \
-+ echo "$$found" \
-+ )
-+
- %.o: %.c
- $(CC) $(CFLAGS) -c -o $@ $<
-diff --git a/libmultipath/checkers/Makefile b/libmultipath/checkers/Makefile
-index 732ca9d..bce6b8b 100644
---- a/libmultipath/checkers/Makefile
-+++ b/libmultipath/checkers/Makefile
-@@ -14,7 +14,8 @@ LIBS= \
- libcheckemc_clariion.so \
- libcheckhp_sw.so \
- libcheckrdac.so
--ifneq ($(ENABLE_RADOS),0)
-+
-+ifneq ($(call check_file,/usr/include/rados/librados.h),0)
- LIBS += libcheckrbd.so
- endif
-
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch b/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
deleted file mode 100644
index 17d2d91796..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0009-multipath-set-verbosity-to-default-during-config.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 526e539628e051128abf46a60ec22e18c9b5d84f Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 31 May 2017 15:03:02 -0500
-Subject: [PATCH 09/14] multipath: set verbosity to default during config
-
-condlog was setting the verbosity to 0 if there was no configuration.
-This keeps multipath from printing warning messages about config file
-problems that are found while loading the configuration. Instead, it
-should use the default config level until it loads the configuration
-to find the current value.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/debug.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/libmultipath/debug.c b/libmultipath/debug.c
-index fbe171a..f89b264 100644
---- a/libmultipath/debug.c
-+++ b/libmultipath/debug.c
-@@ -11,6 +11,7 @@
- #include "../third-party/valgrind/drd.h"
- #include "vector.h"
- #include "config.h"
-+#include "defaults.h"
-
- void dlog (int sink, int prio, const char * fmt, ...)
- {
-@@ -21,7 +22,7 @@ void dlog (int sink, int prio, const char * fmt, ...)
- va_start(ap, fmt);
- conf = get_multipath_config();
- ANNOTATE_IGNORE_READS_BEGIN();
-- thres = (conf) ? conf->verbosity : 0;
-+ thres = (conf) ? conf->verbosity : DEFAULT_VERBOSITY;
- ANNOTATE_IGNORE_READS_END();
- put_multipath_config(conf);
-
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch b/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
deleted file mode 100644
index 396b6d32e3..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0010-mpath-skip-device-configs-without-vendor-product.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f88d60a93e98d86ae294f2317a122c4efde276f0 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Wed, 31 May 2017 17:58:59 -0500
-Subject: [PATCH 10/14] mpath: skip device configs without vendor/product
-
-Right now if multipath.conf includes a device configuration without a
-vendor or product string, it will automatically be applied to all
-devices, skipping all other configs entirely. This is clearly wrong.
-This patch makes sure that user added configs include vendor and
-product strings
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- libmultipath/config.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/libmultipath/config.c b/libmultipath/config.c
-index c485748..bdde113 100644
---- a/libmultipath/config.c
-+++ b/libmultipath/config.c
-@@ -452,6 +452,13 @@ restart:
- break;
- j = n;
- vector_foreach_slot_after(hw, hwe2, j) {
-+ /* drop invalid device configs */
-+ if (!hwe2->vendor || !hwe2->product) {
-+ condlog(0, "device config missing vendor or product parameter");
-+ vector_del_slot(hw, j--);
-+ free_hwe(hwe2);
-+ continue;
-+ }
- if (hwe_regmatch(hwe1, hwe2))
- continue;
- /* dup */
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch b/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
deleted file mode 100644
index 12d6d38a78..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0011-multipathd-fix-show-maps-json-crash.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From bc3ceda747104afdc24386df5dc45ca86f6c2936 Mon Sep 17 00:00:00 2001
-From: Benjamin Marzinski <bmarzins@redhat.com>
-Date: Thu, 1 Jun 2017 17:52:28 -0500
-Subject: [PATCH 11/14] multipathd: fix "show maps json" crash
-
-If there are no multipath devices, show_maps_json sets the maximum size
-of the reply buffer to 0. Having a size of 0 causes the calls to calloc
-and realloc to behave in ways that the code isn't designed to handle,
-leading to a double-free crash. Instead, show_maps_json should just
-use the INITIAL_REPLY_LEN if there are no multipath devices.
-
-Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
----
- multipathd/cli_handlers.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/multipathd/cli_handlers.c b/multipathd/cli_handlers.c
-index 04c7386..7b0d00c 100644
---- a/multipathd/cli_handlers.c
-+++ b/multipathd/cli_handlers.c
-@@ -162,10 +162,12 @@ show_maps_json (char ** r, int * len, struct vectors * vecs)
- struct multipath * mpp;
- char * c;
- char * reply;
-- unsigned int maxlen = INITIAL_REPLY_LEN *
-- PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
-+ unsigned int maxlen = INITIAL_REPLY_LEN;
- int again = 1;
-
-+ if (VECTOR_SIZE(vecs->mpvec) > 0)
-+ maxlen *= PRINT_JSON_MULTIPLIER * VECTOR_SIZE(vecs->mpvec);
-+
- vector_foreach_slot(vecs->mpvec, mpp, i) {
- if (update_multipath(vecs, mpp->alias, 0)) {
- return 1;
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch b/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
deleted file mode 100644
index 5ccd4aed8b..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 6864ba28dec61609662ce5dc8bc7ed1925abb546 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 02:56:13 -0400
-Subject: [PATCH 12/14] 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>
----
- Makefile.inc | 8 ++------
- 1 file changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/Makefile.inc b/Makefile.inc
-index e084fd1..c7f45fa 100644
---- a/Makefile.inc
-+++ b/Makefile.inc
-@@ -35,12 +35,6 @@ ifndef RUN
- endif
- endif
-
--ifndef SYSTEMD
-- 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
--
- ifndef SYSTEMDPATH
- SYSTEMDPATH=usr/lib
- endif
-@@ -82,11 +76,13 @@ TEST_CC_OPTION = $(shell \
-
- STACKPROT := $(call TEST_CC_OPTION,-fstack-protector-strong,-fstack-protector)
-
-+ifndef OPTFLAGS
- OPTFLAGS = -O2 -g -pipe -Wall -Wextra -Wformat=2 -Werror=implicit-int \
- -Werror=implicit-function-declaration -Werror=format-security \
- -Wno-sign-compare -Wno-unused-parameter -Wno-clobbered \
- -Wp,-D_FORTIFY_SOURCE=2 $(STACKPROT) \
- --param=ssp-buffer-size=4
-+endif
-
- CFLAGS = $(OPTFLAGS) -DLIB_STRING=\"${LIB}\" -DRUN_DIR=\"${RUN}\"
- BIN_CFLAGS = -fPIE -DPIE
---
-2.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch b/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
deleted file mode 100644
index 52240f6439..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0013-Always-use-devmapper.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 1498338970a093fccbda3e33f5588a289ef2c66a Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 02:59:46 -0400
-Subject: [PATCH 13/14] 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>
----
- libmultipath/Makefile | 19 ++++---------------
- 1 file changed, 4 insertions(+), 15 deletions(-)
-
-diff --git a/libmultipath/Makefile b/libmultipath/Makefile
-index b3244fc..9006b3f 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.8.1
-
diff --git a/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch b/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
deleted file mode 100644
index f951213c18..0000000000
--- a/meta-oe/recipes-support/multipath-tools/files/0014-Always-use-devmapper-for-kpartx.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7f5869cd32a7b3f717d9544b35562d9d01ca6510 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 5 Jul 2017 03:03:16 -0400
-Subject: [PATCH 14/14] 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>
----
- kpartx/Makefile | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/kpartx/Makefile b/kpartx/Makefile
-index bfa6fe8..be87124 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.8.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
new file mode 100644
index 0000000000..395f9a9b03
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0021-RH-fixup-udev-rules-for-redhat.patch
@@ -0,0 +1,76 @@
+From 9a941729d3c0d19d30d65e16b291c380e589eeb3 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@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 4d843ce5..57779fd8 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -81,7 +81,7 @@ endif
+ prefix =
+ exec_prefix = $(prefix)
+ usr_prefix = $(prefix)
+-bindir = $(exec_prefix)/sbin
++bindir = $(exec_prefix)/usr/sbin
+ libudevdir = $(prefix)/$(SYSTEMDPATH)/udev
+ tmpfilesdir = $(prefix)/$(SYSTEMDPATH)/tmpfiles.d
+ udevrulesdir = $(libudevdir)/rules.d
+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 116348e2..8482de6a 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -23,7 +23,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 multipath.rules $(DESTDIR)$(udevrulesdir)/56-multipath.rules
++ $(INSTALL_PROGRAM) -m 644 multipath.rules $(DESTDIR)$(udevrulesdir)/62-multipath.rules
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(modulesloaddir)
+ $(INSTALL_PROGRAM) -m 644 modules-load.conf $(DESTDIR)$(modulesloaddir)/multipath.conf
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(tmpfilesdir)
+@@ -43,7 +43,7 @@ uninstall:
+ $(RM) $(DESTDIR)$(udevrulesdir)/11-dm-mpath.rules
+ $(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
+ $(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
+- $(RM) $(DESTDIR)$(libudevdir)/rules.d/56-multipath.rules
++ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
+ $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8
+ $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5
+
+--
+2.38.1
+
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
new file mode 100644
index 0000000000..c15444a85d
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0022-RH-Remove-the-property-blacklist-exception-builtin.patch
@@ -0,0 +1,58 @@
+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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+Upstream-Status: Pending
+
+ libmultipath/blacklist.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
+index 8d15d2ea..820b0d68 100644
+--- a/libmultipath/blacklist.c
++++ b/libmultipath/blacklist.c
+@@ -198,9 +198,6 @@ setup_default_blist (struct config * conf)
+ struct hwentry *hwe;
+ int i;
+
+- 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;
+
+@@ -435,8 +432,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.38.1
+
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
new file mode 100644
index 0000000000..840b00093d
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0023-RH-don-t-start-without-a-config-file.patch
@@ -0,0 +1,119 @@
+From 056fdaece0f1a3a5ca92e8c08912730faa89875d 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ libmultipath/config.c | 18 ++++++++++++++++++
+ libmultipath/config.h | 1 +
+ multipath/multipath.rules.in | 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 5c5c0726..31894810 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
+@@ -966,6 +967,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 87947469..0dc89c16 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 8d3cf33a..5c4447a2 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 b/multipathd/multipathd.8
+index bdf102eb..a16a0bd5 100644
+--- a/multipathd/multipathd.8
++++ b/multipathd/multipathd.8
+@@ -48,6 +48,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 b/multipathd/multipathd.service
+index aec62dbb..ab7585de 100644
+--- a/multipathd/multipathd.service
++++ b/multipathd/multipathd.service
+@@ -5,6 +5,7 @@ Before=local-fs-pre.target blk-availability.service shutdown.target
+ Wants=systemd-udevd-kernel.socket
+ After=systemd-udevd-kernel.socket
+ After=multipathd.socket systemd-remount-fs.service
++ConditionPathExists=/etc/multipath.conf
+ Before=initrd-cleanup.service
+ DefaultDependencies=no
+ Conflicts=shutdown.target
+--
+2.38.1
+
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
new file mode 100644
index 0000000000..e7b3e12238
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0024-RH-use-rpm-optflags-if-present.patch
@@ -0,0 +1,74 @@
+From cc38276a5d3926fd96e58366e15ba887d7d02ed0 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ Makefile.inc | 28 ++++++++++++++++++----------
+ 1 file changed, 18 insertions(+), 10 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 57779fd8..34f2cc6d 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -140,20 +140,28 @@ FORTIFY_OPT := $(shell \
+ echo "-D_FORTIFY_SOURCE=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 -Wno-error=clobbered,)
+-WFORMATOVERFLOW := $(call TEST_CC_OPTION,-Wformat-overflow=2,)
+-
+-OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
+-WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
+- -Werror=implicit-function-declaration -Werror=format-security \
+- $(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS)
++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
++
+ CPPFLAGS := $(FORTIFY_OPT) \
+ -DBIN_DIR=\"$(bindir)\" -DMULTIPATH_DIR=\"$(plugindir)\" -DRUN_DIR=\"${RUN}\" \
+ -DRUNTIME_DIR=\"$(runtimedir)\" \
+ -DCONFIG_DIR=\"$(configdir)\" -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.38.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
new file mode 100644
index 0000000000..471ff09323
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0025-RH-add-mpathconf.patch
@@ -0,0 +1,655 @@
+From b0b4cca566e3e0c3a232b3754555c41d4e0c1273 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@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 31894810..af59dd3c 100644
+--- a/libmultipath/config.c
++++ b/libmultipath/config.c
+@@ -969,6 +969,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 8482de6a..780b1b73 100644
+--- a/multipath/Makefile
++++ b/multipath/Makefile
+@@ -21,6 +21,7 @@ $(EXEC): $(OBJS) $(multipathdir)/libmultipath.so $(mpathcmddir)/libmpathcmd.so
+ 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 multipath.rules $(DESTDIR)$(udevrulesdir)/62-multipath.rules
+@@ -32,6 +33,7 @@ install:
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).8 $(DESTDIR)$(man8dir)
+ $(INSTALL_PROGRAM) -d $(DESTDIR)$(man5dir)
+ $(INSTALL_PROGRAM) -m 644 $(EXEC).conf.5 $(DESTDIR)$(man5dir)
++ $(INSTALL_PROGRAM) -m 644 mpathconf.8 $(DESTDIR)$(man8dir)
+ ifneq ($(SCSI_DH_MODULES_PRELOAD),)
+ $(INSTALL_PROGRAM) -m 644 scsi_dh.conf $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
+ for _x in $(SCSI_DH_MODULES_PRELOAD); do echo "$$_x"; done \
+@@ -44,8 +46,10 @@ uninstall:
+ $(RM) $(DESTDIR)$(modulesloaddir)/multipath.conf
+ $(RM) $(DESTDIR)$(modulesloaddir)/scsi_dh.conf
+ $(RM) $(DESTDIR)$(libudevdir)/rules.d/62-multipath.rules
++ $(RM) $(DESTDIR)$(bindir)/mpathconf
+ $(RM) $(DESTDIR)$(man8dir)/$(EXEC).8
+ $(RM) $(DESTDIR)$(man5dir)/$(EXEC).conf.5
++ $(RM) $(DESTDIR)$(man8dir)/mpathconf.8
+
+ clean: dep_clean
+ $(RM) core *.o $(EXEC) multipath.rules tmpfiles.conf
+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.38.1
+
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
new file mode 100644
index 0000000000..17c36e86c5
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0026-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch
@@ -0,0 +1,102 @@
+From 262de33671ede81e424344ea9125d9e546cf8612 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@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 89bb60ca..bab9aa85 100644
+--- a/libmultipath/wwids.c
++++ b/libmultipath/wwids.c
+@@ -451,3 +451,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.38.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
new file mode 100644
index 0000000000..22cb4beeb8
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0027-RH-warn-on-invalid-regex-instead-of-failing.patch
@@ -0,0 +1,107 @@
+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>
+[OP: Rebase to 0.9.3]
+[OP: adjusted FREE() -> free(), made set_regex_value() static]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ libmultipath/dict.c | 42 +++++++++++++++++++++++++++++++++++-------
+ 1 file changed, 35 insertions(+), 7 deletions(-)
+
+diff --git a/libmultipath/dict.c b/libmultipath/dict.c
+index aa93fe43..55a22d32 100644
+--- a/libmultipath/dict.c
++++ b/libmultipath/dict.c
+@@ -155,6 +155,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)
+ {
+@@ -1679,8 +1707,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; \
+ \
+@@ -1700,7 +1728,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; \
+ \
+@@ -1806,16 +1834,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_handler(hwhandler, set_str)
+--
+2.38.1
+
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
new file mode 100644
index 0000000000..ad03b8acc4
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0028-RH-reset-default-find_mutipaths-value-to-off.patch
@@ -0,0 +1,38 @@
+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
new file mode 100644
index 0000000000..952009b1d5
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0029-multipath-tools-modify-Makefile.inc-for-cross-compil.patch
@@ -0,0 +1,59 @@
+From d139474f2a6d87c1cd20dfbb916fe650bfcce968 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ Makefile.inc | 11 -----------
+ 1 file changed, 11 deletions(-)
+
+diff --git a/Makefile.inc b/Makefile.inc
+index 34f2cc6d..ee6a4c9f 100644
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -42,17 +42,6 @@ ifndef RUN
+ endif
+ endif
+
+-ifndef SYSTEMD
+- ifeq ($(shell $(PKGCONFIG) --modversion libsystemd >/dev/null 2>&1 && echo 1), 1)
+- SYSTEMD = $(shell $(PKGCONFIG) --modversion libsystemd | awk '{print $$1}')
+- 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.38.1
+
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
new file mode 100644
index 0000000000..c2025ed6ff
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0030-Always-use-devmapper.patch
@@ -0,0 +1,77 @@
+From f20d7651a62efff818ebd0d1bc920f6f362c890d 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ libmultipath/Makefile | 34 +++++++---------------------------
+ 1 file changed, 7 insertions(+), 27 deletions(-)
+
+diff --git a/libmultipath/Makefile b/libmultipath/Makefile
+index 3b60a525..72aca7ca 100644
+--- a/libmultipath/Makefile
++++ b/libmultipath/Makefile
+@@ -22,33 +22,13 @@ ifdef SYSTEMD
+ endif
+ endif
+
+-ifneq ($(call check_func,dm_task_no_flush,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
+- CPPFLAGS += -DLIBDM_API_FLUSH
+-endif
+-
+-ifneq ($(call check_func,dm_task_get_errno,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
+- CPPFLAGS += -DLIBDM_API_GET_ERRNO
+-endif
+-
+-ifneq ($(call check_func,dm_task_set_cookie,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
+- CPPFLAGS += -DLIBDM_API_COOKIE
+-endif
+-
+-ifneq ($(call check_func,udev_monitor_set_receive_buffer_size,$(LIBUDEV_INCDIR)/libudev.h),0)
+- CPPFLAGS += -DLIBUDEV_API_RECVBUF
+-endif
+-
+-ifneq ($(call check_func,dm_task_deferred_remove,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
+- CPPFLAGS += -DLIBDM_API_DEFERRED
+-endif
+-
+-ifneq ($(call check_func,dm_hold_control_dev,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
+- CPPFLAGS += -DLIBDM_API_HOLD_CONTROL
+-endif
+-
+-ifneq ($(call check_var,ELS_DTAG_LNK_INTEGRITY,$(LINUX_HEADERS_INCDIR)/scsi/fc/fc_els.h),0)
+- CPPFLAGS += -DFPIN_EVENT_HANDLER
+-endif
++CPPFLAGS += -DLIBDM_API_FLUSH
++CPPFLAGS += -DLIBDM_API_GET_ERRNO
++CPPFLAGS += -DLIBDM_API_COOKIE
++CPPFLAGS += -DLIBUDEV_API_RECVBUF
++CPPFLAGS += -DLIBDM_API_DEFERRED
++CPPFLAGS += -DLIBDM_API_HOLD_CONTROL
++CPPFLAGS += -DFPIN_EVENT_HANDLER
+
+ # object files referencing MULTIPATH_DIR or CONFIG_DIR
+ # they need to be recompiled for unit tests
+--
+2.38.1
+
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
new file mode 100644
index 0000000000..2d043c3991
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0031-Always-use-devmapper-for-kpartx.patch
@@ -0,0 +1,45 @@
+From 820d2ef3596189041da43d1139da8689336bb918 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+ kpartx/Makefile | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/kpartx/Makefile b/kpartx/Makefile
+index 742d3bcd..d886483d 100644
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
+@@ -9,9 +9,7 @@ LDFLAGS += $(BIN_LDFLAGS)
+
+ LIBDEPS += -ldevmapper
+
+-ifneq ($(call check_func,dm_task_set_cookie,$(DEVMAPPER_INCDIR)/libdevmapper.h),0)
+- CPPFLAGS += -DLIBDM_API_COOKIE
+-endif
++CPPFLAGS += -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.38.1
+
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
new file mode 100644
index 0000000000..ec123b212b
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/files/0032-libdmmp-Makefile-replace-perl-with-sed-in-install-ta.patch
@@ -0,0 +1,44 @@
+From 21a8680b7bd436867ac689a0b4b1b18a3359e208 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>
+[OP: Rebase to 0.9.3]
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+---
+Upstream-Status: Pending
+
+ libdmmp/Makefile | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/libdmmp/Makefile b/libdmmp/Makefile
+index e4589250..34e06425 100644
+--- a/libdmmp/Makefile
++++ b/libdmmp/Makefile
+@@ -39,11 +39,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)
+ $(INSTALL_PROGRAM) -d 755 $(DESTDIR)$(man3dir)
+ $(INSTALL_PROGRAM) -m 644 -t $(DESTDIR)$(man3dir) docs/man/*.3
+--
+2.38.1
+
diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
deleted file mode 100644
index 6ec5dffcc0..0000000000
--- a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.7.1.bb
+++ /dev/null
@@ -1,113 +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 \
- libaio \
- liburcu \
- readline \
- udev \
- json-c \
- "
-
-LICENSE = "GPLv2"
-
-SRC_URI = "git://git.opensvc.com/multipath-tools/.git;protocol=http \
- file://multipathd.oe \
- file://multipath.conf.example \
- file://0001-multipath-attempt-at-common-multipath.rules.patch \
- file://0002-RH-fixup-udev-rules-for-redhat.patch \
- file://0003-RH-Remove-the-property-blacklist-exception-builtin.patch \
- file://0004-RH-don-t-start-without-a-config-file.patch \
- file://0005-RH-add-mpathconf.patch \
- file://0006-RH-add-wwids-from-kernel-cmdline-mpath.wwids-with-A.patch \
- file://0007-RH-trigger-change-uevent-on-new-device-creation.patch \
- file://0008-libmultipath-change-how-RADOS-checker-is-enabled.patch \
- file://0009-multipath-set-verbosity-to-default-during-config.patch \
- file://0010-mpath-skip-device-configs-without-vendor-product.patch \
- file://0011-multipathd-fix-show-maps-json-crash.patch \
- file://0012-multipath-tools-modify-Makefile.inc-for-cross-compil.patch \
- file://0013-Always-use-devmapper.patch \
- file://0014-Always-use-devmapper-for-kpartx.patch \
- file://0001-kpartx-include-limits.h-for-PATH_MAX.patch \
- "
-LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
-
-SRCREV = "f21166a812a2cfb50ecf9550d32947c83103f83a"
-
-S = "${WORKDIR}/git"
-
-inherit systemd pkgconfig
-
-SYSTEMD_SERVICE_${PN} = "multipathd.service"
-
-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} \
- ${@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
-
- 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_libdir}/udev/kpartx_id \
- "
-
-RDEPENDS_${PN} += "bash kpartx"
diff --git a/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.3.bb b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.3.bb
new file mode 100644
index 0000000000..ae4b3b9bf6
--- /dev/null
+++ b/meta-oe/recipes-support/multipath-tools/multipath-tools_0.9.3.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=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 \
+ "
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=5f30f0716dfdd0d91eb439ebec522ec2"
+
+SRCREV = "1332947447133fdf26246012b836868a3d974f0e"
+
+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}-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.inc b/meta-oe/recipes-support/nano/nano.inc
deleted file mode 100644
index 22f0fb2a0a..0000000000
--- a/meta-oe/recipes-support/nano/nano.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-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/"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
-SECTION = "console/utils"
-DEPENDS = "ncurses file"
-RDEPENDS_${PN} = "ncurses-terminfo"
-
-PV_MAJOR = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
-
-SRC_URI = "https://nano-editor.org/dist/v${PV_MAJOR}/nano-${PV}.tar.xz"
-
-inherit autotools gettext pkgconfig
-
-PACKAGECONFIG[tiny] = "--enable-tiny,"
diff --git a/meta-oe/recipes-support/nano/nano_2.9.8.bb b/meta-oe/recipes-support/nano/nano_2.9.8.bb
deleted file mode 100644
index aa6e9ff16a..0000000000
--- a/meta-oe/recipes-support/nano/nano_2.9.8.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-include nano.inc
-
-SRC_URI[md5sum] = "31714360342f9baa344e2fa574c144db"
-SRC_URI[sha256sum] = "c2deac31ba4d3fd27a42fafcc47ccf499296cc69a422bbecab63f2933ea85488"
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 3afdff7786..0e16b15c97 100644
--- a/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
+++ b/meta-oe/recipes-support/ne10/ne10_1.2.1.bb
@@ -4,7 +4,7 @@ LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e7fe20c9be97be5579e3ab5d92d3a218"
SECTION = "libs"
-SRC_URI = "git://github.com/projectNe10/Ne10.git \
+SRC_URI = "git://github.com/projectNe10/Ne10.git;branch=master;protocol=https \
file://0001-CMakeLists.txt-Remove-mthumb-interwork.patch \
file://0001-Dont-specify-march-explicitly.patch \
"
@@ -15,22 +15,17 @@ PV .= "gitr+${SRCPV}"
inherit cmake
+# Incompatible with archs other than armv7, armv7ve and aarch64
+COMPATIBLE_MACHINE = "(^$)"
+COMPATIBLE_MACHINE:aarch64 = "(.*)"
+COMPATIBLE_MACHINE:armv7a = "(.*)"
+COMPATIBLE_MACHINE:armv7ve = "(.*)"
NE10_TARGET_ARCH = ""
-EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"'
-
-COMPATIBLE_MACHINE_aarch64 = "(.*)"
-COMPATIBLE_MACHINE_armv7a = "(.*)"
+NE10_TARGET_ARCH:aarch64 = "aarch64"
+NE10_TARGET_ARCH:armv7a = "armv7"
+NE10_TARGET_ARCH:armv7ve = "armv7"
-python () {
- if any(t.startswith('armv7') for t in d.getVar('TUNE_FEATURES').split()):
- d.setVar('NE10_TARGET_ARCH', 'armv7')
- bb.debug(2, 'Building Ne10 for armv7')
- elif any(t.startswith('aarch64') for t in d.getVar('TUNE_FEATURES').split()):
- d.setVar('NE10_TARGET_ARCH', 'aarch64')
- bb.debug(2, 'Building Ne10 for aarch64')
- else:
- raise bb.parse.SkipRecipe("Incompatible with archs other than armv7 and aarch64")
-}
+EXTRA_OECMAKE = '-DGNULINUX_PLATFORM=ON -DNE10_BUILD_SHARED=ON -DNE10_LINUX_TARGET_ARCH="${NE10_TARGET_ARCH}"'
do_install() {
install -d ${D}${libdir}
@@ -43,4 +38,4 @@ do_install() {
# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
# ERROR: QA Issue: ELF binary 'ne10/1.2.1-r0/packages-split/ne10/usr/lib/libNE10.so.10' has relocations in .text [textrel]
-INSANE_SKIP_${PN} += "textrel"
+INSANE_SKIP:${PN} += "textrel"
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
new file mode 100644
index 0000000000..177a71ec0a
--- /dev/null
+++ b/meta-oe/recipes-support/neon/neon/0001-Disable-installing-documentation.patch
@@ -0,0 +1,30 @@
+From f477408f1c24ce6e5589e5a99d369279916c7c6e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 24 Aug 2022 13:11:12 -0700
+Subject: [PATCH] Disable installing documentation
+
+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/Makefile.in b/Makefile.in
+index ed87a69..c32405c 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -125,7 +125,7 @@ Makefile: $(srcdir)/Makefile.in
+ neon-config: $(srcdir)/neon-config.in
+ @./config.status neon-config
+
+-install-docs: install-man install-html
++install-docs:
+
+ install-html:
+ $(INSTALL) -d $(DESTDIR)$(docdir)/html
+--
+2.37.2
+
diff --git a/meta-oe/recipes-support/neon/neon/run-ptest b/meta-oe/recipes-support/neon/neon/run-ptest
new file mode 100644
index 0000000000..602084a52c
--- /dev/null
+++ b/meta-oe/recipes-support/neon/neon/run-ptest
@@ -0,0 +1,25 @@
+#!/bin/sh
+
+set -eux
+
+rm -f debug.log child.log
+
+ulimit -c unlimited
+ulimit -t 120
+
+cd test
+echo foobar > foobar.txt
+
+BASIC_TESTS="auth basic redirect request session socket string-tests \
+ stubs uri-tests util-tests"
+DAV_TESTS="acl3744 lock oldacl props xml xmlreq"
+for t in $BASIC_TESTS $DAV_TESTS
+do
+ echo "Running $t..."
+ if "./$t"
+ then
+ echo "PASS:$t"
+ else
+ echo "FAIL:$t"
+ fi
+done
diff --git a/meta-oe/recipes-support/neon/neon_0.30.2.bb b/meta-oe/recipes-support/neon/neon_0.30.2.bb
deleted file mode 100644
index 00b79f6330..0000000000
--- a/meta-oe/recipes-support/neon/neon_0.30.2.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "An HTTP and WebDAV client library with a C interface"
-HOMEPAGE = "http://www.webdav.org/neon/"
-SECTION = "libs"
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://src/COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a \
- file://src/ne_utils.h;beginline=1;endline=20;md5=2caca609538eddaa6f6adf120a218037"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/n/neon27/neon27_${PV}.orig.tar.gz \
- file://pkgconfig.patch \
- "
-
-SRC_URI[md5sum] = "e28d77bf14032d7f5046b3930704ef41"
-SRC_URI[sha256sum] = "db0bd8cdec329b48f53a6f00199c92d5ba40b0f015b153718d1b15d3d967fbca"
-
-inherit autotools binconfig-disabled lib_package pkgconfig
-
-# Enable gnutls or openssl, not both
-PACKAGECONFIG ?= "expat gnutls libproxy webdav zlib"
-PACKAGECONFIG_class-native = "expat gnutls webdav zlib"
-
-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[openssl] = "--with-ssl=openssl,,openssl"
-PACKAGECONFIG[webdav] = "--enable-webdav,--disable-webdav,"
-PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
-
-EXTRA_OECONF += "--enable-shared"
-
-do_compile_append() {
- oe_runmake -C test
-}
-
-BINCONFIG = "${bindir}/neon-config"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/neon/neon_0.32.5.bb b/meta-oe/recipes-support/neon/neon_0.32.5.bb
new file mode 100644
index 0000000000..c364aab360
--- /dev/null
+++ b/meta-oe/recipes-support/neon/neon_0.32.5.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] = "4872e12f802572dedd4b02f870065814b2d5141f7dbdaf708eedab826b51a58a"
+
+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-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch b/meta-oe/recipes-support/nmon/nmon/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch
new file mode 100644
index 0000000000..af79efed96
--- /dev/null
+++ b/meta-oe/recipes-support/nmon/nmon/0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch
@@ -0,0 +1,175 @@
+From eba852316735daec27d4ff11483018ca596312d0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Oct 2021 02:11:49 -0700
+Subject: [PATCH] Fix a lot of -Werror=format-security errors with
+ mvprintw/mvwprintw
+
+In all these places a non-constant is used as a format string which
+compiler complains about. Fix by using "%s" as format.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ lmon16m.c | 86 +++++++++++++++++++++++++++----------------------------
+ 1 file changed, 43 insertions(+), 43 deletions(-)
+
+diff --git a/lmon16m.c b/lmon16m.c
+index 7e46642..1d53367 100644
+--- a/lmon16m.c
++++ b/lmon16m.c
+@@ -5475,20 +5475,20 @@ int main(int argc, char **argv)
+ /*
+ *mvwprintw(padsmp,2, 0, "CPU User%% Sys%% Wait%% Idle|0 |25 |50 |75 100|");
+ */
+- mvwprintw(padsmp, 1, 0, cpu_line);
+- mvwprintw(padsmp, 2, 0, "CPU ");
++ mvwprintw(padsmp, 1, 0, "%s", cpu_line);
++ mvwprintw(padsmp, 2, 0, "%s", "CPU ");
+ COLOUR wattrset(padsmp, COLOR_PAIR(2)); /* Green */
+- mvwprintw(padsmp, 2, 4, "User%%");
++ mvwprintw(padsmp, 2, 4, "%s", "User%%");
+ COLOUR wattrset(padsmp, COLOR_PAIR(1)); /* Red */
+- mvwprintw(padsmp, 2, 9, " Sys%%");
++ mvwprintw(padsmp, 2, 9, "%s", " Sys%%");
+ COLOUR wattrset(padsmp, COLOR_PAIR(4)); /* Blue */
+- mvwprintw(padsmp, 2, 15, " Wait%%");
++ mvwprintw(padsmp, 2, 15, "%s", " Wait%%");
+ if (p->cpu_total.steal != q->cpu_total.steal) {
+ COLOUR wattrset(padsmp, COLOR_PAIR(5));
+- mvwprintw(padsmp, 2, 22, "Steal");
++ mvwprintw(padsmp, 2, 22, "%s", "Steal");
+ } else {
+ COLOUR wattrset(padsmp, COLOR_PAIR(0));
+- mvwprintw(padsmp, 2, 22, " Idle");
++ mvwprintw(padsmp, 2, 22, "%s", " Idle");
+ }
+ COLOUR wattrset(padsmp, COLOR_PAIR(0));
+ mvwprintw(padsmp, 2, 27,
+@@ -5579,8 +5579,8 @@ int main(int argc, char **argv)
+ /* lparcfg gathered above */
+ if (lparcfg.smt_mode > 1
+ && i % lparcfg.smt_mode == 0) {
+- mvwprintw(padsmp, 3 + i, 27, "*");
+- mvwprintw(padsmp, 3 + i, 77, "*");
++ mvwprintw(padsmp, 3 + i, 27, "%s", "*");
++ mvwprintw(padsmp, 3 + i, 77, "%s", "*");
+ }
+ #endif
+
+@@ -5597,7 +5597,7 @@ int main(int argc, char **argv)
+ 100.0);
+ }
+ } /* for (i = 0; i < cpus; i++) */
+- CURSE mvwprintw(padsmp, i + 3, 0, cpu_line);
++ CURSE mvwprintw(padsmp, i + 3, 0, "%s", cpu_line);
+ #ifdef POWER
+ /* proc_lparcfg called above in previous ifdef
+ */
+@@ -5673,7 +5673,7 @@ int main(int argc, char **argv)
+ 100.0);
+ }
+
+- CURSE mvwprintw(padsmp, i + 5, 0, cpu_line);
++ CURSE mvwprintw(padsmp, i + 5, 0, "%s", cpu_line);
+ i = i + 2;
+ } /* if (cpus > 1 || !cursed) */
+ smp_first_time = 0;
+@@ -5704,16 +5704,16 @@ int main(int argc, char **argv)
+ char *wide10 =
+ " 10%%-| |-10%%";
+
+- mvwprintw(padwide, 1, 0, wide1);
+- mvwprintw(padwide, 2, 0, wide2);
+- mvwprintw(padwide, 3, 0, wide3);
+- mvwprintw(padwide, 4, 0, wide4);
+- mvwprintw(padwide, 5, 0, wide5);
+- mvwprintw(padwide, 6, 0, wide6);
+- mvwprintw(padwide, 7, 0, wide7);
+- mvwprintw(padwide, 8, 0, wide8);
+- mvwprintw(padwide, 9, 0, wide9);
+- mvwprintw(padwide, 10, 0, wide10);
++ mvwprintw(padwide, 1, 0, "%s", wide1);
++ mvwprintw(padwide, 2, 0, "%s", wide2);
++ mvwprintw(padwide, 3, 0, "%s", wide3);
++ mvwprintw(padwide, 4, 0, "%s", wide4);
++ mvwprintw(padwide, 5, 0, "%s", wide5);
++ mvwprintw(padwide, 6, 0, "%s", wide6);
++ mvwprintw(padwide, 7, 0, "%s", wide7);
++ mvwprintw(padwide, 8, 0, "%s", wide8);
++ mvwprintw(padwide, 9, 0, "%s", wide9);
++ mvwprintw(padwide, 10, 0, "%s", wide10);
+ mvwprintw(padwide, 11, 0,
+ " CPU +1--------+10-------+20-------+30-------+40-------+50-------+60--+--0%%");
+ mvwprintw(padwide, 1, 6, "CPU(s)=%d", cpus);
+@@ -5755,16 +5755,16 @@ int main(int argc, char **argv)
+ rows = 12;
+ }
+ if (cpus > 63) {
+- mvwprintw(padwide, rows + 0, 0, wide1);
+- mvwprintw(padwide, rows + 1, 0, wide2);
+- mvwprintw(padwide, rows + 2, 0, wide3);
+- mvwprintw(padwide, rows + 3, 0, wide4);
+- mvwprintw(padwide, rows + 4, 0, wide5);
+- mvwprintw(padwide, rows + 5, 0, wide6);
+- mvwprintw(padwide, rows + 6, 0, wide7);
+- mvwprintw(padwide, rows + 7, 0, wide8);
+- mvwprintw(padwide, rows + 8, 0, wide9);
+- mvwprintw(padwide, rows + 9, 0, wide10);
++ mvwprintw(padwide, rows + 0, 0, "%s", wide1);
++ mvwprintw(padwide, rows + 1, 0, "%s", wide2);
++ mvwprintw(padwide, rows + 2, 0, "%s", wide3);
++ mvwprintw(padwide, rows + 3, 0, "%s", wide4);
++ mvwprintw(padwide, rows + 4, 0, "%s", wide5);
++ mvwprintw(padwide, rows + 5, 0, "%s", wide6);
++ mvwprintw(padwide, rows + 6, 0, "%s", wide7);
++ mvwprintw(padwide, rows + 7, 0, "%s", wide8);
++ mvwprintw(padwide, rows + 8, 0, "%s", wide9);
++ mvwprintw(padwide, rows + 9, 0, "%s", wide10);
+ mvwprintw(padwide, rows + 10, 0,
+ " CPU +65---+70-------+80-------+90-------+100------+110------+120-----+--0%%");
+ if (wide_first_time) {
+@@ -5813,16 +5813,16 @@ int main(int argc, char **argv)
+ rows = 23;
+ }
+ if (cpus > 127) {
+- mvwprintw(padwide, rows + 0, 0, wide1);
+- mvwprintw(padwide, rows + 1, 0, wide2);
+- mvwprintw(padwide, rows + 2, 0, wide3);
+- mvwprintw(padwide, rows + 3, 0, wide4);
+- mvwprintw(padwide, rows + 4, 0, wide5);
+- mvwprintw(padwide, rows + 5, 0, wide6);
+- mvwprintw(padwide, rows + 6, 0, wide7);
+- mvwprintw(padwide, rows + 7, 0, wide8);
+- mvwprintw(padwide, rows + 8, 0, wide9);
+- mvwprintw(padwide, rows + 9, 0, wide10);
++ mvwprintw(padwide, rows + 0, 0, "%s", wide1);
++ mvwprintw(padwide, rows + 1, 0, "%s", wide2);
++ mvwprintw(padwide, rows + 2, 0, "%s", wide3);
++ mvwprintw(padwide, rows + 3, 0, "%s", wide4);
++ mvwprintw(padwide, rows + 4, 0, "%s", wide5);
++ mvwprintw(padwide, rows + 5, 0, "%s", wide6);
++ mvwprintw(padwide, rows + 6, 0, "%s", wide7);
++ mvwprintw(padwide, rows + 7, 0, "%s", wide8);
++ mvwprintw(padwide, rows + 8, 0, "%s", wide9);
++ mvwprintw(padwide, rows + 9, 0, "%s", wide10);
+ mvwprintw(padwide, rows + 10, 0,
+ " CPU +129--------+140------+150------+160------+170------+180------+190--0%%");
+ if (wide_first_time) {
+@@ -8274,7 +8274,7 @@ I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans
+ formatstring =
+ " PID %%CPU Size Res Res Res Res Shared Faults Command";
+ }
+- CURSE mvwprintw(padtop, 1, y, formatstring);
++ CURSE mvwprintw(padtop, 1, y, "%s", formatstring);
+
+ if (show_args == ARGS_ONLY) {
+ formatstring =
+@@ -8294,7 +8294,7 @@ I/F Name Recv=KB/s Trans=KB/s packin packout insize outsize Peak->Recv Trans
+ formatstring =
+ " Used KB Set Text Data Lib KB Min Maj ";
+ }
+- CURSE mvwprintw(padtop, 2, 1, formatstring);
++ CURSE mvwprintw(padtop, 2, 1, "%s", formatstring);
+ for (j = 0; j < max_sorted; j++) {
+ i = topper[j].index;
+ if (!show_all) {
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 e8debe56af..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,13 +9,15 @@ defines from sys/cdefs.h is used
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
- lmon16g.c | 4 ++--
+Upstream-Status: Pending
+
+ lmon16m.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
-diff --git a/lmon16g.c b/lmon16g.c
+diff --git a/lmon16m.c b/lmon16m.c
index cb27e09..d2a11c5 100644
---- a/lmon16g.c
-+++ b/lmon16g.c
+--- a/lmon16m.c
++++ b/lmon16m.c
@@ -63,7 +63,7 @@ static char *SccsId = "nmon " VERSION;
#include <fcntl.h>
#include <math.h>
diff --git a/meta-oe/recipes-support/nmon/nmon_16g.bb b/meta-oe/recipes-support/nmon/nmon_16g.bb
deleted file mode 100644
index e77faa30ad..0000000000
--- a/meta-oe/recipes-support/nmon/nmon_16g.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "nmon performance monitor"
-HOMEPAGE = "http://nmon.sf.net"
-SECTION = "console/utils"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
-DEPENDS = "ncurses"
-DEPENDS_append_libc-musl = " bsd-headers"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \
- ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
- file://0001-lmon16g.c-Adjust-system-headers.patch \
-"
-SRC_URI[lmon.md5sum] = "246ccfc74d5af55d992601fc4d3d4a72"
-SRC_URI[lmon.sha256sum] = "da82dd693b503b062854dfe7dbb5d36b347872ab44a4aa05b97e9d577747f688"
-SRC_URI[doc.md5sum] = "dbb13658cf55d687c4f2ff771a696d4a"
-SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
-
-CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
-LDFLAGS += "-ltinfo -lncursesw -lm"
-ASNEEDED_pn-nmon = ""
-
-S = "${WORKDIR}"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 nmon ${D}${bindir}
-}
diff --git a/meta-oe/recipes-support/nmon/nmon_16m.bb b/meta-oe/recipes-support/nmon/nmon_16m.bb
new file mode 100644
index 0000000000..d4a357cea0
--- /dev/null
+++ b/meta-oe/recipes-support/nmon/nmon_16m.bb
@@ -0,0 +1,30 @@
+SUMMARY = "nmon performance monitor"
+HOMEPAGE = "http://nmon.sf.net"
+SECTION = "console/utils"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://Documentation.txt;md5=dbb13658cf55d687c4f2ff771a696d4a"
+DEPENDS = "ncurses"
+DEPENDS:append:libc-musl = " bsd-headers"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/nmon/lmon${PV}.c;name=lmon \
+ ${SOURCEFORGE_MIRROR}/nmon/Documentation.txt;name=doc \
+ file://0001-lmon16g.c-Adjust-system-headers.patch \
+ file://0001-Fix-a-lot-of-Werror-format-security-errors-with-mvpr.patch \
+ "
+SRC_URI[lmon.sha256sum] = "2bed4d45fdfdf1d1387ec91e139c04975d5f838e3e0d53c0fe2d803a707e5fc1"
+SRC_URI[doc.sha256sum] = "1f7f83afe62a7210be5e83cd24157adb854c14599efe0b377a7ecca933869278"
+
+CFLAGS += "-D JFS -D GETUSER -Wall -D LARGEMEM"
+LDFLAGS += "-ltinfo -lncursesw -lm"
+ASNEEDED:pn-nmon = ""
+
+S = "${WORKDIR}"
+
+do_compile() {
+ ${CC} ${CFLAGS} ${LDFLAGS} lmon${PV}.c -o nmon
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 nmon ${D}${bindir}
+}
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-config-nspr-config.in-don-t-pass-LDFLAGS.patch b/meta-oe/recipes-support/nspr/nspr/0001-config-nspr-config.in-don-t-pass-LDFLAGS.patch
new file mode 100644
index 0000000000..6ebc9c4ae6
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/0001-config-nspr-config.in-don-t-pass-LDFLAGS.patch
@@ -0,0 +1,30 @@
+From 13e9d66c24d1dce5179805ae5e1bf940409b4914 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 10 Aug 2022 15:21:07 +0800
+Subject: [PATCH] config/nspr-config.in: don't pass LDFLAGS
+
+Don't pass LDFLAGS to avoid exposing the build env info.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ config/nspr-config.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config/nspr-config.in b/config/nspr-config.in
+index 2cb62a0..2bec715 100755
+--- a/config/nspr-config.in
++++ b/config/nspr-config.in
+@@ -136,7 +136,7 @@ if test "$echo_libs" = "yes"; then
+ if test -n "$lib_nspr"; then
+ libdirs="$libdirs -lnspr${major_version}"
+ fi
+- os_ldflags="@LDFLAGS@"
++ os_ldflags="LDFLAGS"
+ for i in $os_ldflags ; do
+ if echo $i | grep \^-L >/dev/null; then
+ libdirs="$libdirs $i"
+--
+2.25.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
new file mode 100644
index 0000000000..09855a03dc
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/0001-md-Fix-build-with-musl.patch
@@ -0,0 +1,28 @@
+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
+
+The MIPS specific header <sgidefs.h> is not provided by musl
+linux kernel headers provide <asm/sgidefs.h> which has same definitions
+
+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
+@@ -511,7 +511,7 @@
+ #error "Unknown MIPS endianness."
+ #endif
+
+-#if _MIPS_SIM == _ABI64
++#if _MIPS_SIM == _MIPS_SIM_ABI64
+
+ #define IS_64
+
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
new file mode 100644
index 0000000000..dab2a4e291
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/0002-Add-nios2-support.patch
@@ -0,0 +1,89 @@
+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
+
+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 ]
+
+---
+ pr/include/md/_linux.cfg | 45 +++++++++++++++++++++++++++++++++++
+ pr/include/md/_linux.h | 4 +++-
+ 2 files changed, 48 insertions(+), 1 deletion(-)
+
+--- 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
+
++#elif defined(__nios2__)
++
++#define IS_LITTLE_ENDIAN 1
++#undef IS_BIG_ENDIAN
++
++#define PR_BYTES_PER_BYTE 1
++#define PR_BYTES_PER_SHORT 2
++#define PR_BYTES_PER_INT 4
++#define PR_BYTES_PER_INT64 8
++#define PR_BYTES_PER_LONG 4
++#define PR_BYTES_PER_FLOAT 4
++#define PR_BYTES_PER_DOUBLE 8
++#define PR_BYTES_PER_WORD 4
++#define PR_BYTES_PER_DWORD 8
++
++#define PR_BITS_PER_BYTE 8
++#define PR_BITS_PER_SHORT 16
++#define PR_BITS_PER_INT 32
++#define PR_BITS_PER_INT64 64
++#define PR_BITS_PER_LONG 32
++#define PR_BITS_PER_FLOAT 32
++#define PR_BITS_PER_DOUBLE 64
++#define PR_BITS_PER_WORD 32
++
++#define PR_BITS_PER_BYTE_LOG2 3
++#define PR_BITS_PER_SHORT_LOG2 4
++#define PR_BITS_PER_INT_LOG2 5
++#define PR_BITS_PER_INT64_LOG2 6
++#define PR_BITS_PER_LONG_LOG2 5
++#define PR_BITS_PER_FLOAT_LOG2 5
++#define PR_BITS_PER_DOUBLE_LOG2 6
++#define PR_BITS_PER_WORD_LOG2 5
++
++#define PR_ALIGN_OF_SHORT 2
++#define PR_ALIGN_OF_INT 4
++#define PR_ALIGN_OF_LONG 4
++#define PR_ALIGN_OF_INT64 4
++#define PR_ALIGN_OF_FLOAT 4
++#define PR_ALIGN_OF_DOUBLE 4
++#define PR_ALIGN_OF_POINTER 4
++#define PR_ALIGN_OF_WORD 4
++
++#define PR_BYTES_PER_WORD_LOG2 2
++#define PR_BYTES_PER_DWORD_LOG2 3
++
+ #elif defined(__or1k__)
+
+ #undef IS_LITTLE_ENDIAN
+--- a/pr/include/md/_linux.h
++++ b/pr/include/md/_linux.h
+@@ -55,6 +55,8 @@
+ #define _PR_SI_ARCHITECTURE "avr32"
+ #elif defined(__m32r__)
+ #define _PR_SI_ARCHITECTURE "m32r"
++#elif defined(__nios2__)
++#define _PR_SI_ARCHITECTURE "nios2"
+ #elif defined(__or1k__)
+ #define _PR_SI_ARCHITECTURE "or1k"
+ #elif defined(__riscv) && (__riscv_xlen == 32)
+@@ -143,7 +145,7 @@ extern PRInt32 _PR_x86_64_AtomicSet(PRIn
+ #define _MD_ATOMIC_SET _PR_x86_64_AtomicSet
+ #endif
+
+-#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/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch b/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
new file mode 100644
index 0000000000..90fe45f34d
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/Makefile.in-remove-_BUILD_STRING-and-_BUILD_TIME.patch
@@ -0,0 +1,103 @@
+From 8a592e4ead4ed6befe6044da3dd2dc7523c33905 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <Mingli.Yu@windriver.com>
+Date: Fri, 16 Nov 2018 13:52:49 +0800
+Subject: [PATCH] Makefile.in: remove _BUILD_STRING and _BUILD_TIME
+
+Remove _BUILD_STRING and _BUILD_TIME to avoid
+adding timestamp to _pl_bld.h which can result
+in adding timestamp in library file such as
+libnspr4.so.
+ $ readelf --wide --decompress --hex-dump=.rodata libnspr4.so
+ [snip]
+ 0x00004000 32303138 2d31312d 31352030 353a3439 2018-11-15 05:49
+ [snip]
+
+Upstream-Status: Pending
+
+Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
+---
+ lib/ds/Makefile.in | 8 +-------
+ lib/libc/src/Makefile.in | 8 +-------
+ lib/prstreams/Makefile.in | 8 +-------
+ pr/src/Makefile.in | 8 +-------
+ 4 files changed, 4 insertions(+), 28 deletions(-)
+
+diff --git a/lib/ds/Makefile.in b/lib/ds/Makefile.in
+index e737791..b578476 100644
+--- a/lib/ds/Makefile.in
++++ b/lib/ds/Makefile.in
+@@ -114,13 +114,7 @@ GARBAGE += $(TINC)
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/lib/libc/src/Makefile.in b/lib/libc/src/Makefile.in
+index e8a6d9f..978ed28 100644
+--- a/lib/libc/src/Makefile.in
++++ b/lib/libc/src/Makefile.in
+@@ -116,13 +116,7 @@ GARBAGE += $(TINC)
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/lib/prstreams/Makefile.in b/lib/prstreams/Makefile.in
+index aeb2944..f318097 100644
+--- a/lib/prstreams/Makefile.in
++++ b/lib/prstreams/Makefile.in
+@@ -116,13 +116,7 @@ endif
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/plvrsion.$(OBJ_SUFFIX): plvrsion.c $(TINC)
+diff --git a/pr/src/Makefile.in b/pr/src/Makefile.in
+index 19c5a69..b4ac31c 100644
+--- a/pr/src/Makefile.in
++++ b/pr/src/Makefile.in
+@@ -326,13 +326,7 @@ GARBAGE += $(TINC)
+
+ $(TINC):
+ @$(MAKE_OBJDIR)
+- @$(ECHO) '#define _BUILD_STRING "$(SH_DATE)"' > $(TINC)
+- @if test ! -z "$(SH_NOW)"; then \
+- $(ECHO) '#define _BUILD_TIME $(SH_NOW)$(SUF)' >> $(TINC); \
+- else \
+- true; \
+- fi
+- @$(ECHO) '#define _PRODUCTION "$(PROD)"' >> $(TINC)
++ @$(ECHO) '#define _PRODUCTION "$(PROD)"' > $(TINC)
+
+
+ $(OBJDIR)/prvrsion.$(OBJ_SUFFIX): prvrsion.c $(TINC)
+--
+2.7.4
+
diff --git a/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch b/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
new file mode 100644
index 0000000000..f12acc8548
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/fix-build-on-x86_64.patch
@@ -0,0 +1,52 @@
+Fix build failure on x86_64
+
+When the target_cpu is x86_64, we should assume that the pkg uses 64bit,
+only if USE_N32 is set, we can assume that the pkg uses 32bit. It used a
+opposite logic before.
+
+Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
+
+Upstream-Status: Pending
+---
+ configure.in | 12 ++++++------
+ 1 files changed, 6 insertions(+), 6 deletions(-)
+
+Index: nspr/configure.in
+===================================================================
+--- nspr.orig/configure.in
++++ nspr/configure.in
+@@ -1875,28 +1875,24 @@ tools are selected during the Xcode/Deve
+ PR_MD_ASFILES=os_Linux_ia64.s
+ ;;
+ x86_64)
+- if test -n "$USE_64"; then
+- PR_MD_ASFILES=os_Linux_x86_64.s
+- elif test -n "$USE_X32"; then
++ if test -n "$USE_X32"; then
++ AC_DEFINE(i386)
+ PR_MD_ASFILES=os_Linux_x86_64.s
+ CC="$CC -mx32"
+ CXX="$CXX -mx32"
+ else
+- AC_DEFINE(i386)
+- PR_MD_ASFILES=os_Linux_x86.s
+- CC="$CC -m32"
+- CXX="$CXX -m32"
++ PR_MD_ASFILES=os_Linux_x86_64.s
+ fi
+ ;;
+ ppc|powerpc)
+ PR_MD_ASFILES=os_Linux_ppc.s
+ ;;
+ powerpc64)
+- if test -n "$USE_64"; then
++ if test -n "$USE_N32"; then
++ PR_MD_ASFILES=os_Linux_ppc.s
++ else
+ CC="$CC -m64"
+ CXX="$CXX -m64"
+- else
+- PR_MD_ASFILES=os_Linux_ppc.s
+ fi
+ ;;
+ esac
diff --git a/meta-oe/recipes-support/nspr/nspr/nspr.pc.in b/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
new file mode 100644
index 0000000000..1f15d19cfa
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/nspr.pc.in
@@ -0,0 +1,11 @@
+os_libs=-lpthread -ldl
+prefix=OEPREFIX
+exec_prefix=OEEXECPREFIX
+libdir=OELIBDIR
+includedir=OEINCDIR
+
+Name: NSPR
+Description: The Netscape Portable Runtime
+Version: NSPRVERSION
+Libs: -L${libdir} -lplds4 -lplc4 -lnspr4 -lpthread -ldl
+Cflags: -I${includedir}/nspr
diff --git a/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch b/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
new file mode 100644
index 0000000000..7ba59ed644
--- /dev/null
+++ b/meta-oe/recipes-support/nspr/nspr/remove-rpath-from-tests.patch
@@ -0,0 +1,26 @@
+Author: Andrei Gherzan <andrei@gherzan.ro>
+Date: Thu Feb 9 00:03:38 2012 +0200
+
+Avoid QA warnings by removing hardcoded rpath from binaries.
+
+[...]
+WARNING: QA Issue: package nspr contains bad RPATH {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/nspr-4.8.9/mozilla/nsprpub/pr/tests/../../dist/lib
+in file {builddir}/tmp/work/armv5te-poky-linux-gnueabi/nspr-4.8.9-r1/packages-split/nspr/usr/lib/nspr/tests/multiwait
+[...]
+
+Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
+Upstream-Status: Pending
+
+Index: nspr/pr/tests/Makefile.in
+===================================================================
+--- nspr.orig/pr/tests/Makefile.in
++++ nspr/pr/tests/Makefile.in
+@@ -316,7 +316,7 @@ ifeq ($(OS_ARCH), SunOS)
+ endif # SunOS
+
+ ifeq (,$(filter-out Linux GNU GNU_%,$(OS_ARCH)))
+- LDOPTS += -Xlinker -rpath $(ABSOLUTE_LIB_DIR)
++ LDOPTS += -Xlinker
+ ifeq ($(USE_PTHREADS),1)
+ EXTRA_LIBS = -lpthread
+ endif
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-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch b/meta-oe/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch
new file mode 100644
index 0000000000..d905bf10e3
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.patch
@@ -0,0 +1,64 @@
+From 1109c1b8259ad840ac1688d533f76ca268c67b6b Mon Sep 17 00:00:00 2001
+From: "John M. Schanck" <jschanck@mozilla.com>
+Date: Sat, 5 Feb 2022 11:12:43 +0000
+Subject: [PATCH] Bug 1750624 - Pin validation date for PayPalEE test cert.
+ r=nss-reviewers,bbeurdouche,rrelyea
+
+Differential Revision: https://phabricator.services.mozilla.com/D136289
+
+--HG--
+extra : moz-landing-system : lando
+
+Upstream-Status: Backport
+
+---
+ tests/chains/chains.sh | 6 +++++-
+ tests/chains/scenarios/realcerts.cfg | 1 +
+ 2 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/tests/chains/chains.sh b/tests/chains/chains.sh
+index 32c7ef54c..e13ae52f9 100755
+--- a/nss/tests/chains/chains.sh
++++ b/nss/tests/chains/chains.sh
+@@ -917,7 +917,7 @@ verify_cert()
+ done
+
+ VFY_OPTS_TNAME="${DB_OPT} ${ENGINE} ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${TRUST_OPT}"
+- VFY_OPTS_ALL="${DB_OPT} ${ENGINE} -vv ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${VFY_CERTS} ${TRUST_OPT}"
++ VFY_OPTS_ALL="${DB_OPT} ${ENGINE} -vv ${VFY_TIME_OPT} ${TRUST_AND_DB_OPT} ${REV_OPTS} ${FETCH_OPT} ${USAGE_OPT} ${POLICY_OPT} ${VFY_CERTS} ${TRUST_OPT}"
+
+ TESTNAME="Verifying certificate(s) ${VFY_LIST} with flags ${VFY_OPTS_TNAME}"
+ echo "${SCRIPTNAME}: ${TESTNAME}"
+@@ -1118,6 +1118,7 @@ parse_config()
+ ;;
+ "verify")
+ VERIFY="${VALUE}"
++ VFY_TIME_OPT=
+ TRUST=
+ TRUST_AND_DB=
+ POLICY=
+@@ -1126,6 +1127,9 @@ parse_config()
+ REV_OPTS=
+ USAGE_OPT=
+ ;;
++ "at_time")
++ VFY_TIME_OPT="-b ${VALUE}"
++ ;;
+ "cert")
+ VERIFY="${VERIFY} ${VALUE}"
+ ;;
+diff --git a/tests/chains/scenarios/realcerts.cfg b/tests/chains/scenarios/realcerts.cfg
+index 305443fc3..f8b0fc452 100644
+--- a/nss/tests/chains/scenarios/realcerts.cfg
++++ b/nss/tests/chains/scenarios/realcerts.cfg
+@@ -22,6 +22,7 @@ verify TestUser51:x
+
+ verify PayPalEE:x
+ policy OID.2.16.840.1.114412.2.1
++ at_time 2201010000Z
+ result pass
+
+ verify BrAirWaysBadSig:x
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..72ee1ee009
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/0001-freebl-add-a-configure-option-to-disable-ARM-HW-cryp.patch
@@ -0,0 +1,57 @@
+From 9937e89c22eb2f2db9a936e7bc4442857b4192f5 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
+
+Not all current hardware supports it, particularly anything
+prior to armv8 does not.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ nss/lib/freebl/Makefile | 3 +++
+ nss/lib/freebl/gcm.c | 2 ++
+ 2 files changed, 5 insertions(+)
+
+diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
+index b38889f..4616aac 100644
+--- a/nss/lib/freebl/Makefile
++++ b/nss/lib/freebl/Makefile
+@@ -139,6 +139,8 @@ endif
+ endif
+ endif
+ endif
++ifdef NSS_USE_ARM_HW_CRYPTO
++ DEFINES += -DNSS_USE_ARM_HW_CRYPTO
+ ifeq ($(CPU_ARCH),aarch64)
+ ifdef CC_IS_CLANG
+ DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2
+@@ -180,6 +182,7 @@ endif
+ endif
+ endif
+ endif
++endif
+
+ ifeq ($(OS_TARGET),OSF1)
+ DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD
+diff --git a/nss/lib/freebl/gcm.c b/nss/lib/freebl/gcm.c
+index ac461b4..04cb180 100644
+--- a/nss/lib/freebl/gcm.c
++++ b/nss/lib/freebl/gcm.c
+@@ -18,6 +18,7 @@
+
+ #include <limits.h>
+
++#ifdef NSS_USE_ARM_HW_CRYPTO
+ /* old gcc doesn't support some poly64x2_t intrinsic */
+ #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \
+ (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6)
+@@ -27,6 +28,7 @@
+ /* We don't test on big endian platform, so disable this on big endian. */
+ #define USE_ARM_GCM
+ #endif
++#endif
+
+ /* Forward declarations */
+ SECStatus gcm_HashInit_hw(gcmHashContext *ghash);
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
new file mode 100644
index 0000000000..950fae667a
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/0001-nss-fix-support-cross-compiling.patch
@@ -0,0 +1,51 @@
+From 919fc5d674fae99fe21ba1351d98b75e466f425f 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
+
+Let some make variables be assigned from outside makefile.
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+
+---
+ nss/coreconf/arch.mk | 2 +-
+ nss/lib/freebl/Makefile | 6 ++++++
+ 2 files changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/nss/coreconf/arch.mk b/nss/coreconf/arch.mk
+index 2012d18..78fca62 100644
+--- a/nss/coreconf/arch.mk
++++ b/nss/coreconf/arch.mk
+@@ -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
+- OS_RELEASE := $(shell uname -r)
++ OS_RELEASE ?= $(shell uname -r)
+ endif
+
+ #
+diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile
+index 0b8c6f4..b38889f 100644
+--- a/nss/lib/freebl/Makefile
++++ b/nss/lib/freebl/Makefile
+@@ -36,6 +36,12 @@ ifdef USE_64
+ DEFINES += -DNSS_USE_64
+ endif
+
++ifeq ($(OS_TEST),mips)
++ifndef USE_64
++ DEFINES += -DNS_PTR_LE_32
++endif
++endif
++
+ ifdef USE_ABI32_FPU
+ DEFINES += -DNSS_USE_ABI32_FPU
+ endif
diff --git a/meta-oe/recipes-support/nss/nss/blank-cert9.db b/meta-oe/recipes-support/nss/nss/blank-cert9.db
new file mode 100644
index 0000000000..7d4bcf2582
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/blank-cert9.db
Binary files differ
diff --git a/meta-oe/recipes-support/nss/nss/blank-key4.db b/meta-oe/recipes-support/nss/nss/blank-key4.db
new file mode 100644
index 0000000000..d47f08d04f
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/blank-key4.db
Binary files differ
diff --git a/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch b/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
new file mode 100644
index 0000000000..4c9bea30c0
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/disable-Wvarargs-with-clang.patch
@@ -0,0 +1,42 @@
+From f613c9a9107435a40d91329f33f12cfb16927f07 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 7 Mar 2020 08:34:02 -0800
+Subject: [PATCH] nss,nspr: Add recipes
+
+clang 3.9 add this warning to rightly flag undefined
+behavior, we relegate this to be just a warning instead
+of error and keep the behavior as it was. Right fix would
+be to not pass enum to the function with variadic arguments
+as last named argument
+
+Fixes errors like
+ocsp.c:2220:22: error: passing an object that undergoes default argument promotion to 'va_start' has undefined behavior [-Werror,-Wvarargs]
+ va_start(ap, responseType0);
+ ^
+ocsp.c:2200:43: note: parameter of type 'SECOidTag' is declared here
+ SECOidTag responseType0, ...)
+
+see
+https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+Pass+an+object+of+the+correct+type+to+va_start
+for more details
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+---
+ nss/coreconf/Werror.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/nss/coreconf/Werror.mk b/nss/coreconf/Werror.mk
+index a569a49..687fe58 100644
+--- a/nss/coreconf/Werror.mk
++++ b/nss/coreconf/Werror.mk
+@@ -56,7 +56,7 @@ ifndef WARNING_CFLAGS
+ ifdef CC_IS_CLANG
+ # -Qunused-arguments : clang objects to arguments that it doesn't understand
+ # and fixing this would require rearchitecture
+- WARNING_CFLAGS += -Qunused-arguments
++ WARNING_CFLAGS += -Qunused-arguments -Wno-error=varargs
+ # -Wno-parentheses-equality : because clang warns about macro expansions
+ WARNING_CFLAGS += $(call disable_warning,parentheses-equality)
+ ifdef BUILD_OPT
diff --git a/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch b/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
new file mode 100644
index 0000000000..735b06b5ca
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss-fix-incorrect-shebang-of-perl.patch
@@ -0,0 +1,91 @@
+From 2ce67b1f4b1f582d556ae058da10698bbaa0edc1 Mon Sep 17 00:00:00 2001
+From: Ovidiu Panait <ovidiu.panait@windriver.com>
+Date: Mon, 13 Jul 2020 12:12:31 +0300
+Subject: [PATCH] nss: fix incorrect shebang of perl
+
+Replace incorrect shebang of perl with `#!/usr/bin/env perl'.
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Upstream-Status: Pending
+Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
+
+---
+ nss/cmd/signver/examples/1/form.pl | 2 +-
+ nss/cmd/signver/examples/1/signedForm.pl | 2 +-
+ nss/cmd/smimetools/smime | 2 +-
+ nss/coreconf/version.pl | 2 +-
+ nss/tests/clean_tbx | 2 +-
+ nss/tests/iopr/server_scr/client.cgi | 2 +-
+ nss/tests/path_uniq | 2 +-
+ 7 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/nss/cmd/signver/examples/1/form.pl b/nss/cmd/signver/examples/1/form.pl
+index f2cfddc..af58d54 100755
+--- a/nss/cmd/signver/examples/1/form.pl
++++ b/nss/cmd/signver/examples/1/form.pl
+@@ -1,4 +1,4 @@
+-#! /usr/bin/perl
++#!/usr/bin/env perl
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, 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/.
+diff --git a/nss/cmd/signver/examples/1/signedForm.pl b/nss/cmd/signver/examples/1/signedForm.pl
+index 847814c..64a31ff 100755
+--- a/nss/cmd/signver/examples/1/signedForm.pl
++++ b/nss/cmd/signver/examples/1/signedForm.pl
+@@ -1,4 +1,4 @@
+-#! /usr/bin/perl
++#!/usr/bin/env perl
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, 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/.
+diff --git a/nss/cmd/smimetools/smime b/nss/cmd/smimetools/smime
+index e67f6be..6cd85e6 100755
+--- a/nss/cmd/smimetools/smime
++++ b/nss/cmd/smimetools/smime
+@@ -1,4 +1,4 @@
+-#!/usr/local/bin/perl
++#!/usr/bin/env perl
+
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/coreconf/version.pl b/nss/coreconf/version.pl
+index d2a4942..3ba7323 100644
+--- a/nss/coreconf/version.pl
++++ b/nss/coreconf/version.pl
+@@ -1,4 +1,4 @@
+-#!/usr/sbin/perl
++#!/usr/bin/env perl
+ #
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/tests/clean_tbx b/nss/tests/clean_tbx
+index 4de9555..c15a069 100755
+--- a/nss/tests/clean_tbx
++++ b/nss/tests/clean_tbx
+@@ -1,4 +1,4 @@
+-#! /bin/perl
++#!/usr/bin/env perl
+
+ #######################################################################
+ #
+diff --git a/nss/tests/iopr/server_scr/client.cgi b/nss/tests/iopr/server_scr/client.cgi
+index 581ad06..34ea170 100644
+--- a/nss/tests/iopr/server_scr/client.cgi
++++ b/nss/tests/iopr/server_scr/client.cgi
+@@ -1,4 +1,4 @@
+-#!/usr/bin/perl
++#!/usr/bin/env perl
+
+ # This Source Code Form is subject to the terms of the Mozilla Public
+ # License, v. 2.0. If a copy of the MPL was not distributed with this
+diff --git a/nss/tests/path_uniq b/nss/tests/path_uniq
+index f29f60a..850332a 100755
+--- a/nss/tests/path_uniq
++++ b/nss/tests/path_uniq
+@@ -1,4 +1,4 @@
+-#! /bin/perl
++#!/usr/bin/env perl
+
+ ########################################################################
+ #
diff --git a/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch b/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
new file mode 100644
index 0000000000..a1897f88d8
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss-fix-nsinstall-build.patch
@@ -0,0 +1,44 @@
+From f9b2b1c738576a17460aebd005f511f427aa1974 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Sat, 7 Mar 2020 08:34:02 -0800
+Subject: [PATCH] Fix nss multilib build on openSUSE 11.x 32bit
+
+While building lib64-nss on openSUSE 11.x 32bit, the nsinstall will
+fail with error:
+
+* nsinstall.c:1:0: sorry, unimplemented: 64-bit mode not compiled
+
+It caused by the '-m64' option which passed to host gcc.
+
+The nsinstall was built first while nss starting to build, it only runs
+on host to install built files, it doesn't need any cross-compling or
+multilib build options. Just clean the ARCHFLAG and LDFLAGS to fix this
+error.
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+===================================================
+
+---
+ nss/coreconf/nsinstall/Makefile | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/nss/coreconf/nsinstall/Makefile b/nss/coreconf/nsinstall/Makefile
+index 08dfbc2..e97fb5f 100644
+--- a/nss/coreconf/nsinstall/Makefile
++++ b/nss/coreconf/nsinstall/Makefile
+@@ -18,6 +18,13 @@ INTERNAL_TOOLS = 1
+
+ include $(DEPTH)/coreconf/config.mk
+
++# nsinstall is unfit for cross-compiling/multilib-build since it was
++# always run on local host to install built files. This change intends
++# to clean the '-m64' from ARCHFLAG and LDFLAGS.
++ARCHFLAG =
++LDFLAGS =
++# CFLAGS =
++
+ ifeq (,$(filter-out OS2 WIN%,$(OS_TARGET)))
+ PROGRAM =
+ TARGETS =
diff --git a/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch b/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
new file mode 100644
index 0000000000..8c715cc447
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss-no-rpath-for-cross-compiling.patch
@@ -0,0 +1,28 @@
+From 73edfbdf33fe4e41724e7e947033d8caeec8f3d0 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Sat, 7 Mar 2020 08:34:02 -0800
+Subject: [PATCH] nss:no rpath for cross compiling
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Upstream-Status: Inappropriate [configuration]
+
+---
+ nss/cmd/platlibs.mk | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nss/cmd/platlibs.mk b/nss/cmd/platlibs.mk
+index 6401778..e5c4e16 100644
+--- a/nss/cmd/platlibs.mk
++++ b/nss/cmd/platlibs.mk
+@@ -18,9 +18,9 @@ endif
+
+ ifeq ($(OS_ARCH), Linux)
+ ifeq ($(USE_64), 1)
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib64:/opt/sun/private/lib64:$$ORIGIN/../lib'
+ else
+-EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
++#EXTRA_SHARED_LIBS += -Wl,-rpath,'$$ORIGIN/../lib:/opt/sun/private/lib'
+ endif
+ endif
+
diff --git a/meta-oe/recipes-support/nss/nss/nss.pc.in b/meta-oe/recipes-support/nss/nss/nss.pc.in
new file mode 100644
index 0000000000..402b4ecb33
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/nss.pc.in
@@ -0,0 +1,11 @@
+prefix=OEPREFIX
+exec_prefix=OEEXECPREFIX
+libdir=OELIBDIR
+includedir=OEINCDIR
+
+Name: NSS
+Description: Network Security Services
+Version: %NSS_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -L${libdir} -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lnssutil3
+Cflags: -IOEINCDIR
diff --git a/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch b/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
new file mode 100644
index 0000000000..589b4d5e7f
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/pqg.c-ULL_addend.patch
@@ -0,0 +1,32 @@
+From cbd367160338847b28fc801a12c74f1c8b5b03ee Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 7 Mar 2020 08:34:02 -0800
+Subject: [PATCH] nss does not build on mips with clang because wrong types are
+ used?
+
+pqg.c:339:16: error: comparison of constant 18446744073709551615 with expression of type 'unsigned long' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
+ if (addend < MP_DIGIT_MAX) {
+ ~~~~~~ ^ ~~~~~~~~~~~~
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Upstream-Status: Pending
+
+---
+ nss/lib/freebl/pqg.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/nss/lib/freebl/pqg.c b/nss/lib/freebl/pqg.c
+index 1b03278..ad895b7 100644
+--- a/nss/lib/freebl/pqg.c
++++ b/nss/lib/freebl/pqg.c
+@@ -326,8 +326,8 @@ generate_h_candidate(SECItem *hit, mp_int *H)
+
+ static SECStatus
+ addToSeed(const SECItem *seed,
+- unsigned long addend,
+- int seedlen, /* g in 186-1 */
++ unsigned long long addend,
++ int seedlen, /* g in 186-1 */
+ SECItem *seedout)
+ {
+ mp_int s, sum, modulus, tmp;
diff --git a/meta-oe/recipes-support/nss/nss/system-pkcs11.txt b/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
new file mode 100644
index 0000000000..1a264e9cc4
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss/system-pkcs11.txt
@@ -0,0 +1,5 @@
+library=
+name=NSS Internal PKCS #11 Module
+parameters=configdir='sql:/etc/pki/nssdb' certPrefix='' keyPrefix='' secmod='secmod.db' flags= updatedir='' updateCertPrefix='' updateKeyPrefix='' updateid='' updateTokenDescription=''
+NSS=Flags=internal,critical trustOrder=75 cipherOrder=100 slotParams=(1={slotFlags=[ECC,RSA,DSA,DH,RC2,RC4,DES,RANDOM,SHA1,MD5,MD2,SSL,TLS,AES,Camellia,SEED,SHA256,SHA512] askpw=any timeout=30})
+
diff --git a/meta-oe/recipes-support/nss/nss_3.74.bb b/meta-oe/recipes-support/nss/nss_3.74.bb
new file mode 100644
index 0000000000..ea5abe07fb
--- /dev/null
+++ b/meta-oe/recipes-support/nss/nss_3.74.bb
@@ -0,0 +1,290 @@
+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/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 \
+ file://0001-Bug-1750624-Pin-validation-date-for-PayPalEE-test-ce.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_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/numactl/numactl/0001-define-run-test-target.patch b/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch
deleted file mode 100644
index 78ffb22f89..0000000000
--- a/meta-oe/recipes-support/numactl/numactl/0001-define-run-test-target.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-rename test target as run-test
-
-Upstream-Statue: Pending
-
-test target not only compile the test files, but also run them, which is
-not suitable for cross-compile environment, so rename it as run-test.
-
-and define test target to compile the test files.
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index b6db339..de176c4 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -124,7 +124,9 @@ regress2: $(check_PROGRAMS)
- test_numademo: numademo
- ./numademo -t -e 10M
-
--test: all $(check_PROGRAMS) regress1 regress2 test_numademo
-+test: all $(check_PROGRAMS)
-+
-+run-test: all $(check_PROGRAMS) regress1 regress2 test_numademo
-
- TESTS_ENVIRONMENT = builddir='$(builddir)'; export builddir;
-
---
-1.9.1
-
diff --git a/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch b/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
deleted file mode 100644
index 9812ecc8b3..0000000000
--- a/meta-oe/recipes-support/numactl/numactl/Fix-the-test-output-format.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 59fd750a84bbe5874dec936d2bee9ef11a1b6505 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Tue, 21 Jul 2015 02:01:22 +0900
-Subject: [PATCH] Fix the test output format
-
-Upstream-Status: Pending
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
-Signed-off-by: Li Xin <lixin.fnst@cn.fujitsu.com>
----
- test/regress | 6 +++---
- test/regress2 | 11 +++++------
- 2 files changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/test/regress b/test/regress
-index 2ce1705..d086a47 100755
---- a/test/regress
-+++ b/test/regress
-@@ -74,6 +74,7 @@ probe_hardware()
- if [ $numnodes -lt 2 ] ; then
- echo "need at least two nodes with at least $NEEDPAGES each of"
- echo "free memory for mempolicy regression tests"
-+ echo "FAIL: numa regress"
- exit 77 # Skip test
- fi
- }
-@@ -207,10 +208,9 @@ main()
- rm A B
-
- if [ "$EXIT" = 0 ] ; then
-- echo '========SUCCESS'
-+ echo 'PASS: numactl regress'
- else
-- echo '========FAILURE'
-- exit 1
-+ echo 'FAIL: numactl regress'
- fi
- }
-
-diff --git a/test/regress2 b/test/regress2
-index aa6ea41..450c510 100755
---- a/test/regress2
-+++ b/test/regress2
-@@ -9,12 +9,11 @@ testdir=`dirname "$0"`
- export PATH=${builddir}:$PATH
-
- T() {
-- echo "$@"
-- if ! $VALGRIND "$@" ; then
-- echo $1 FAILED!!!!
-- exit 1
-- fi
-- echo
-+ if ! $VALGRIND "$@" 2>&1 1>/dev/null; then
-+ echo "FAIL: $1"
-+ else
-+ echo "PASS: $1"
-+ fi
- }
-
- # still broken
---
-1.8.4.2
-
diff --git a/meta-oe/recipes-support/numactl/numactl/Makefile b/meta-oe/recipes-support/numactl/numactl/Makefile
deleted file mode 100644
index 9a5134c3f2..0000000000
--- a/meta-oe/recipes-support/numactl/numactl/Makefile
+++ /dev/null
@@ -1,7 +0,0 @@
-.PHONY: regress1 regress2
-
-regress1:
- cd test ; ./regress
-
-regress2:
- cd test ; ./regress2
diff --git a/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch b/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
deleted file mode 100644
index 53952aef95..0000000000
--- a/meta-oe/recipes-support/numactl/numactl/fix-null-pointer.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-[PATCH] return 0 if distance_table is NULL
-
-Upstream-Status: Pending
-
-read_distance_table() maybe return 0, but distance_table is not set,
-if distance_table is used, and will lead to SEGFAULT
-
-Signed-off-by: Roy Li <rongqing.li@windriver.com>
----
- distance.c | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/distance.c b/distance.c
-index 4a26972..c6ca021 100755
---- a/distance.c
-+++ b/distance.c
-@@ -113,6 +113,8 @@ int numa_distance(int a, int b)
- int err = read_distance_table();
- if (err < 0)
- return 0;
-+ if (!distance_table)
-+ return 0;
- }
- return distance_table[a * distance_numnodes + b];
- }
---
-1.7.10.4
-
diff --git a/meta-oe/recipes-support/numactl/numactl/run-ptest b/meta-oe/recipes-support/numactl/numactl/run-ptest
deleted file mode 100755
index 215f7c25b9..0000000000
--- a/meta-oe/recipes-support/numactl/numactl/run-ptest
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-make regress1
-make regress2
-if numademo -t -e 10M; then
- echo "PASS: numademo"
-else
- echo "FAIL: numademo"
-fi
-
diff --git a/meta-oe/recipes-support/numactl/numactl_git.bb b/meta-oe/recipes-support/numactl/numactl_git.bb
deleted file mode 100644
index b9cbcf09d0..0000000000
--- a/meta-oe/recipes-support/numactl/numactl_git.bb
+++ /dev/null
@@ -1,61 +0,0 @@
-SUMMARY = "Development package for building Applications that use numa"
-HOMEPAGE = "http://oss.sgi.com/projects/libnuma/"
-DESCRIPTION = "Simple NUMA policy support. It consists of a numactl program \
-to run other programs with a specific NUMA policy and a libnuma to do \
-allocations with NUMA policy in applications."
-LICENSE = "GPL-2.0 & LGPL-2.1"
-SECTION = "apps"
-RDEPENDS_${PN} = "perl"
-
-inherit autotools-brokensep ptest
-
-LIC_FILES_CHKSUM = "file://README;beginline=19;endline=32;md5=5644cc3851cb2499f6c48e52fe198bd9"
-
-SRCREV = "ea3a70681c2f523fe58e1d44527f478ca76db74e"
-PV = "2.0.11+git${SRCPV}"
-
-SRC_URI = "git://github.com/numactl/numactl \
- file://fix-null-pointer.patch \
- file://Fix-the-test-output-format.patch \
- file://Makefile \
- file://run-ptest \
- file://0001-define-run-test-target.patch \
-"
-
-S = "${WORKDIR}/git"
-
-# ARM does not currently support NUMA
-COMPATIBLE_HOST = "^((?!arm).*)$"
-
-do_install() {
- oe_runmake DESTDIR=${D} prefix=${D}/usr install
- #remove the empty man2 directory
- rm -r ${D}${mandir}/man2
-}
-
-do_compile_ptest() {
- oe_runmake test
-}
-
-do_install_ptest() {
- #install tests binaries
- local test_binaries="distance ftok mbind_mig_pages migrate_pages move_pages \
- mynode nodemap node-parse pagesize prefered randmap realloc_test \
- tbitmap tshared"
-
- [ ! -d ${D}/${PTEST_PATH}/test ] && mkdir -p ${D}/${PTEST_PATH}/test
- for i in $test_binaries; do
- install -m 0755 ${B}/test/.libs/$i ${D}${PTEST_PATH}/test
- done
-
- local test_scripts="checktopology checkaffinity printcpu regress regress2 \
- shmtest runltp bind_range"
- for i in $test_scripts; do
- install -m 0755 ${B}/test/$i ${D}${PTEST_PATH}/test
- done
-
- install -m 0755 ${WORKDIR}/Makefile ${D}${PTEST_PATH}/
- install -m 0755 ${B}/.libs/numactl ${D}${PTEST_PATH}/
-}
-
-RDEPENDS_${PN}-ptest = "bash"
diff --git a/meta-oe/recipes-support/ode/ode/install.patch b/meta-oe/recipes-support/ode/ode/install.patch
deleted file mode 100644
index 2f6cdb0080..0000000000
--- a/meta-oe/recipes-support/ode/ode/install.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- ode-0.9.orig/Makefile.am 2007-02-21 15:54:54.000000000 +0100
-+++ ode-0.9/Makefile.am 2010-08-21 16:15:55.000000000 +0200
-@@ -25,13 +25,13 @@
-
- if USE_SONAME
- install-exec-hook:
-- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
-- $(libdir)/libode.so
-- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
-- $(libdir)/@ODE_SONAME@
-- ln -s $(libdir)/@ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
-- $(libdir)/@ODE_SONAME@.@ODE_REVISION@
-- /sbin/ldconfig
-+ ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
-+ $(DESTDIR)/$(libdir)/libode.so
-+ ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
-+ $(DESTDIR)/$(libdir)/@ODE_SONAME@
-+ ln -s @ODE_SONAME@.@ODE_REVISION@.@ODE_AGE@ \
-+ $(DESTDIR)/$(libdir)/@ODE_SONAME@.@ODE_REVISION@
-+ echo /sbin/ldconfig
- else
- install-exec-hook:
- endif
diff --git a/meta-oe/recipes-support/onig/files/configure.patch b/meta-oe/recipes-support/onig/files/configure.patch
deleted file mode 100644
index 5fa700f190..0000000000
--- a/meta-oe/recipes-support/onig/files/configure.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: onig-5.9.3/configure.in
-===================================================================
---- onig-5.9.3.orig/configure.in 2012-10-26 07:06:14.000000000 +0000
-+++ onig-5.9.3/configure.in 2014-07-18 08:02:52.701574484 +0000
-@@ -3,7 +3,7 @@
-
- AC_CONFIG_MACRO_DIR([m4])
-
--AM_INIT_AUTOMAKE
-+AM_INIT_AUTOMAKE([foreign])
- AC_CONFIG_HEADER(config.h)
-
-
diff --git a/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch b/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch
deleted file mode 100644
index b93602a268..0000000000
--- a/meta-oe/recipes-support/onig/files/do-not-use-system-headers.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
-When build on host with older eglibc (Ubuntu 12.04) build fails with:
-
-/tmp/OE/build/tmp-eglibc/sysroots/genericarmv8/usr/include/bits/predefs.h:23:3: error: #error "Never use <bits/predefs.h> directly; include <stdc-predef.h> instead."
-
-Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
-Upstream-Status: Inappropriate [embedded specific]
-
----
- Makefile.am | 2 +-
- sample/Makefile.am | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
---- onig-5.9.3.orig/Makefile.am
-+++ onig-5.9.3/Makefile.am
-@@ -4,11 +4,11 @@ sampledir = $(top_srcdir)/sample
- libname = libonig.la
-
- ACLOCAL_AMFLAGS = -I m4
- #AM_CFLAGS = -DNOT_RUBY
- AM_CFLAGS =
--INCLUDES = -I$(top_srcdir) -I$(includedir)
-+INCLUDES = -I$(top_srcdir)
-
- SUBDIRS = . sample
-
- include_HEADERS = oniguruma.h oniggnu.h onigposix.h
- lib_LTLIBRARIES = $(libname)
---- onig-5.9.3.orig/sample/Makefile.am
-+++ onig-5.9.3/sample/Makefile.am
-@@ -1,10 +1,10 @@
- noinst_PROGRAMS = encode listcap names posix simple sql syntax crnl
-
- libname = $(top_builddir)/libonig.la
- LDADD = $(libname)
--INCLUDES = -I$(top_srcdir) -I$(includedir)
-+INCLUDES = -I$(top_srcdir)
-
- encode_SOURCES = encode.c
- listcap_SOURCES = listcap.c
- names_SOURCES = names.c
- posix_SOURCES = posix.c
diff --git a/meta-oe/recipes-support/onig/onig/0001-build-don-t-link-against-host-system-libraries.patch b/meta-oe/recipes-support/onig/onig/0001-build-don-t-link-against-host-system-libraries.patch
new file mode 100644
index 0000000000..1db9684abd
--- /dev/null
+++ b/meta-oe/recipes-support/onig/onig/0001-build-don-t-link-against-host-system-libraries.patch
@@ -0,0 +1,42 @@
+From 543990bc34a0e5d4f66a9167efb1f3b8de6a3635 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Mon, 6 Jan 2020 16:56:31 +0000
+Subject: [PATCH 1/2] build: don't link against (host) system libraries
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE specific]
+Signed-off-by: André Draszik <git@andred.net>
+---
+ sample/Makefile.am | 1 -
+ test/Makefile.am | 1 -
+ 2 files changed, 2 deletions(-)
+
+diff --git a/sample/Makefile.am b/sample/Makefile.am
+index 681cd2a933de..c4f796d36da0 100644
+--- a/sample/Makefile.am
++++ b/sample/Makefile.am
+@@ -4,7 +4,6 @@ lib_onig = ../src/libonig.la
+ LDADD = $(lib_onig)
+
+ AM_CFLAGS = -Wall
+-AM_LDFLAGS = -L$(libdir)
+ AM_CPPFLAGS = -I$(top_srcdir)/src
+
+ if ENABLE_POSIX_API
+diff --git a/test/Makefile.am b/test/Makefile.am
+index 94739a24ab22..a23ef1e2e139 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -1,7 +1,6 @@
+ ## Makefile.am for Oniguruma
+ lib_onig = ../src/libonig.la
+
+-AM_LDFLAGS = -L$(libdir)
+ AM_CFLAGS = -Wall -Wno-invalid-source-encoding
+ AM_CPPFLAGS = -I$(top_srcdir)/src
+
+--
+2.35.1
+
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
new file mode 100644
index 0000000000..096b8baa79
--- /dev/null
+++ b/meta-oe/recipes-support/onig/onig/0002-build-enable-serial-tests-automake-option-for-ptest.patch
@@ -0,0 +1,38 @@
+From 1ab999aa5a7a21329bab13e05f843e5e029493e1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andr=C3=A9=20Draszik?= <git@andred.net>
+Date: Mon, 6 Jan 2020 15:10:30 +0000
+Subject: [PATCH 2/2] build: enable serial-tests automake option (for ptest)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+For ptest, we need to be able to compile the tests without
+running them.
+
+Enabling the serial-tests automake option will add
+buildtest-TESTS and runtest-TESTS makefile targets, the
+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/configure.ac b/configure.ac
+index 079fef9a1a52..058b5504b9b7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3,7 +3,7 @@ AC_INIT(onig, 6.9.8)
+
+ AC_CONFIG_MACRO_DIR([m4])
+
+-AM_INIT_AUTOMAKE([-Wno-portability])
++AM_INIT_AUTOMAKE([-Wno-portability serial-tests])
+ AC_CONFIG_HEADERS([src/config.h])
+
+
+--
+2.35.1
+
diff --git a/meta-oe/recipes-support/onig/onig/run-ptest b/meta-oe/recipes-support/onig/onig/run-ptest
new file mode 100755
index 0000000000..fbce336990
--- /dev/null
+++ b/meta-oe/recipes-support/onig/onig/run-ptest
@@ -0,0 +1,47 @@
+#!/bin/sh -eu
+
+my_cleanup() {
+ [ -n "${workdir:-}" ] && rm -rf "${workdir}"
+}
+
+trap "my_cleanup" EXIT
+for sig in INT TERM ; do
+ # We want sig to expand right here and now, as it's
+ # a loop variable, not when signalled. For $$ it
+ # doesn't matter.
+ # shellcheck disable=SC2064
+ trap "my_cleanup ; trap - EXIT ; trap - ${sig} ; kill -s ${sig} $$" ${sig}
+done
+
+workdir=$(mktemp -d -t onig.ptest.XXXXXX)
+status="${workdir}/failed"
+touch "${status}"
+
+find tests/ -perm -111 -type f ! -path "tests/.debug/*" -exec sh -c '
+ workdir="${1}"
+ status="${2}"
+ t="${3}"
+ t_log="${workdir}/$(basename ${t}).log"
+
+ res=0
+ ./${t} > "${t_log}" 2>&1 \
+ || res=$?
+ if [ $res -eq 0 ] ; then
+ echo "PASS: ${t}"
+ else
+ echo "FAIL: ${t}"
+ echo "$(basename ${t}): ${t_log}" >> "${status}"
+ fi
+ ' _ "${workdir}" "${status}" {} \;
+
+if [ $(stat -c '%s' "${status}") -ne 0 ] ; then
+ exec >&2
+ while IFS=': ' read -r t t_log ; do
+ printf "\n=========================\n"
+ printf "ERROR: %s:\n" "${t}"
+ printf -- "-------------------------\n"
+ cat "${t_log}"
+ done < "${status}"
+fi
+
+[ $(stat -c '%s' "${status}") -eq 0 ]
diff --git a/meta-oe/recipes-support/onig/onig_5.9.6.bb b/meta-oe/recipes-support/onig/onig_5.9.6.bb
deleted file mode 100644
index abbaf98c0a..0000000000
--- a/meta-oe/recipes-support/onig/onig_5.9.6.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Regular expressions library. The characteristics of this \
-library is that different character encoding for every regular expression \
-object can be specified."
-HOMEPAGE = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0d4861b5bc0c392a5aa90d9d76ebd86f"
-
-SRC_URI = "https://web.archive.org/web/20150807014439/http://www.geocities.jp/kosako3/oniguruma/archive/${BP}.tar.gz \
- file://do-not-use-system-headers.patch \
- file://configure.patch"
-
-SRC_URI[md5sum] = "d08f10ea5c94919780e6b7bed1ef9830"
-SRC_URI[sha256sum] = "d5642010336a6f68b7f2e34b1f1cb14be333e4d95c2ac02b38c162caf44e47a7"
-
-BINCONFIG = "${bindir}/onig-config"
-
-inherit autotools binconfig-disabled
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/onig/onig_6.9.8.bb b/meta-oe/recipes-support/onig/onig_6.9.8.bb
new file mode 100644
index 0000000000..2144592286
--- /dev/null
+++ b/meta-oe/recipes-support/onig/onig_6.9.8.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] = "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/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
deleted file mode 100644
index 9773b4a949..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a0983d84185f04c4e40778fe951fde4439894882 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 07:37:03 -0700
-Subject: [PATCH 01/11] Remove assumptions about glibc being only libc
- implementation on linux
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/file/fileIOPosix.c | 2 +-
- open-vm-tools/lib/include/vm_basic_defs.h | 2 ++
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/file/fileIOPosix.c
-===================================================================
---- open-vm-tools.orig/lib/file/fileIOPosix.c
-+++ open-vm-tools/lib/file/fileIOPosix.c
-@@ -205,7 +205,7 @@ static AlignedPool alignedPool;
- * are not available in any header file.
- */
-
--#if defined(__linux__) && !defined(__ANDROID__)
-+#if defined(__linux__) && defined(__GLIBC__)
- #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
- /*
- * We want preadv/pwritev. But due to FOB=64, the symbols are -64.
-Index: open-vm-tools/lib/include/vm_basic_defs.h
-===================================================================
---- open-vm-tools.orig/lib/include/vm_basic_defs.h
-+++ open-vm-tools/lib/include/vm_basic_defs.h
-@@ -571,6 +571,7 @@ typedef int pid_t;
- #if defined __linux__ && !defined __KERNEL__ && !defined MODULE && \
- !defined VMM && !defined FROBOS && !defined __ANDROID__
- #include <features.h>
-+#if __GLIBC__
- #if __GLIBC_PREREQ(2, 1) && !defined GLIBC_VERSION_21
- #define GLIBC_VERSION_21
- #endif
-@@ -590,6 +591,7 @@ typedef int pid_t;
- #define GLIBC_VERSION_212
- #endif
- #endif
-+#endif
-
- /*
- * Convenience definitions of unicode characters.
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
deleted file mode 100644
index b7a4058352..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-configure.ac-don-t-use-dnet-config.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 929150608c16644695f19cd2e0cc8a06a41cd497 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
-
-The dnet-config tool doesn't know about cross-compilation, so it injects
--I/usr/include into the path, causing compiler errors. So instead find dnet via
--ldnet.
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Martin Kelly <mkelly@xevo.com>
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -944,7 +944,7 @@ if test "$with_dnet" = "yes"; then
- AC_VMW_CHECK_LIB([dnet],
- [DNET],
- [],
-- [dnet-config],
-+ [],
- [],
- [dnet.h],
- [intf_open],
-@@ -954,7 +954,7 @@ if test "$with_dnet" = "yes"; then
-
- if test $have_dnet = "no"; then
- AC_MSG_ERROR(
-- [dnet-config was not found on your PATH. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
-+ [dnet was not found. Please configure without dnet (using --without-dnet) or install dnet - http://libdnet.sourceforge.net])
- fi
- fi
-
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
deleted file mode 100644
index 8820581198..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0001-include-poll.h-instead-of-sys-poll.h.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4981bb3013d7f1e40e44618076d99af3484eedea 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/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
-index 13908679..e0a68e7e 100644
---- a/lib/asyncsocket/asyncsocket.c
-+++ b/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-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
deleted file mode 100644
index 4d6a0fd6ad..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-Rename-poll.h-to-vm_poll.h.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From 92955b3a6180b4285d11ef79766df01b9ab60dbd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jun 2018 23:11:58 -0700
-Subject: [PATCH] Rename poll.h to vm_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.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
-Signed-off-by: Khem Raj <raj.khem@gmail.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 +-
- .../services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c | 2 +-
- 7 files changed, 7 insertions(+), 7 deletions(-)
- rename open-vm-tools/lib/include/{poll.h => vm_poll.h} (99%)
-
-diff --git a/lib/asyncsocket/asyncsocket.c b/lib/asyncsocket/asyncsocket.c
-index e0a68e7e..b9675674 100644
---- a/lib/asyncsocket/asyncsocket.c
-+++ b/lib/asyncsocket/asyncsocket.c
-@@ -86,7 +86,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/lib/hgfsServer/hgfsServer.c b/lib/hgfsServer/hgfsServer.c
-index 991a7941..ed0c09f9 100644
---- a/lib/hgfsServer/hgfsServer.c
-+++ b/lib/hgfsServer/hgfsServer.c
-@@ -48,7 +48,7 @@
- #include "hgfsServerOplock.h"
- #include "hgfsDirNotify.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/lib/include/asyncsocket.h b/lib/include/asyncsocket.h
-index 524147ea..103f944f 100644
---- a/lib/include/asyncsocket.h
-+++ b/lib/include/asyncsocket.h
-@@ -164,7 +164,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/lib/include/pollImpl.h b/lib/include/pollImpl.h
-index 46442e55..8bc66997 100644
---- a/lib/include/pollImpl.h
-+++ b/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/lib/include/poll.h b/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 988fe6d0..e9e74fb5 100644
---- a/lib/include/poll.h
-+++ b/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/lib/rpcIn/rpcin.c b/lib/rpcIn/rpcin.c
-index c2c51583..d6c62f10 100644
---- a/lib/rpcIn/rpcin.c
-+++ b/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"
-diff --git a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-index 03700937..f0b49ad7 100644
---- a/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-+++ b/services/plugins/grabbitmqProxy/grabbitmqProxyPlugin.c
-@@ -48,7 +48,7 @@
- #include "rpcout.h"
- #include "rabbitmqProxyConst.h"
- #include "vm_basic_types.h"
--#include "poll.h"
-+#include "vm_poll.h"
- #ifdef OPEN_VM_TOOLS
- #include "vmci_sockets.h"
- #include "sslDirect.h"
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
deleted file mode 100644
index f905601d52..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0002-add-include-sys-sysmacros.h.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5818acc8032e3247257730376e947330340a07b3 Mon Sep 17 00:00:00 2001
-From: Martin Kelly <mkelly@xevo.com>
-Date: Mon, 22 May 2017 17:00:05 -0700
-Subject: [PATCH 2/2] add #include <sys/sysmacros.h>
-
-In newer glibc versions, the definition for major() has been moved to
-sys/sysmacros.h, and using the older version in <sys/types.h> has been
-deprecated. So, add an include for <sys/sysmacros.h>.
-
-Upstream-Status: Pending
-
-Signed-off-by: Martin Kelly <mkelly@xevo.com>
----
- lib/wiper/wiperPosix.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/open-vm-tools/lib/wiper/wiperPosix.c b/open-vm-tools/lib/wiper/wiperPosix.c
-index d389eee..1f221fc 100644
---- a/lib/wiper/wiperPosix.c
-+++ b/lib/wiper/wiperPosix.c
-@@ -40,6 +40,9 @@
- # include <libgen.h>
- # endif /* __FreeBSD_version >= 500000 */
- #endif
-+#if defined(__linux__)
-+#include <sys/sysmacros.h>
-+#endif
- #include <unistd.h>
-
- #include "vmware.h"
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
deleted file mode 100644
index c7d34c5cfa..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From a2e7d9273261c5c5cbc33796900f415097f5455e 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/lib/err/errPosix.c b/lib/err/errPosix.c
-index c81b4c13..7a403640 100644
---- a/lib/err/errPosix.c
-+++ b/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-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
deleted file mode 100644
index 010516761f..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From cdb0b3c898c6b6b6c8259d9ddb8b00163ac5e419 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sun, 16 Jul 2017 09:43:18 -0700
-Subject: [PATCH 04/11] Add -Wno-incompatible-pointer-types and
- -Wno-error=address
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/dynxdr/Makefile.am | 2 +-
- open-vm-tools/lib/file/Makefile.am | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-Index: open-vm-tools/lib/dynxdr/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/dynxdr/Makefile.am
-+++ open-vm-tools/lib/dynxdr/Makefile.am
-@@ -20,4 +20,4 @@ noinst_LTLIBRARIES = libDynxdr.la
- libDynxdr_la_SOURCES =
- libDynxdr_la_SOURCES += dynxdr.c
- libDynxdr_la_SOURCES += xdrutil.c
--
-+libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
-Index: open-vm-tools/lib/file/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/file/Makefile.am
-+++ open-vm-tools/lib/file/Makefile.am
-@@ -27,3 +27,4 @@ libFile_la_SOURCES += fileLockPrimitive.
- libFile_la_SOURCES += fileLockPosix.c
- libFile_la_SOURCES += fileTempPosix.c
- libFile_la_SOURCES += fileTemp.c
-+libFile_la_CPPFLAGS = -Wno-error=address
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
deleted file mode 100644
index e802dca4eb..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0004-Use-uintmax_t-for-handling-rlim_t.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e694a122c1ff32d8b951ae55756796f9576d23ed Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 13 Jun 2018 23:37:09 -0700
-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
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- open-vm-tools/lib/hgfsServer/hgfsServerLinux.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/hgfsServer/hgfsServerLinux.c b/lib/hgfsServer/hgfsServerLinux.c
-index 2e73707d..a2fdb850 100644
---- a/lib/hgfsServer/hgfsServerLinux.c
-+++ b/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.
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
deleted file mode 100644
index f02d00f841..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0005-Use-configure-test-for-struct-timespec.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From bf1eafb07297711baf9320b1edcca8a3376f117d Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 09:03:00 +0000
-Subject: [PATCH 05/11] 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(-)
-
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -1127,6 +1127,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
-Index: open-vm-tools/lib/include/hgfsUtil.h
-===================================================================
---- open-vm-tools.orig/lib/include/hgfsUtil.h
-+++ 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-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
deleted file mode 100644
index d1f4eff9be..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 31ae6f42458f90d4994a4ad8e2b7673691612c36 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 09:10:14 +0000
-Subject: [PATCH 06/11] 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(-)
-
-Index: open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-===================================================================
---- open-vm-tools.orig/lib/hgfsServer/hgfsServerLinux.c
-+++ open-vm-tools/lib/hgfsServer/hgfsServerLinux.c
-@@ -107,11 +107,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
-
-Index: open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
-===================================================================
---- open-vm-tools.orig/services/plugins/dndcp/dnd/dndLinux.c
-+++ open-vm-tools/services/plugins/dndcp/dnd/dndLinux.c
-@@ -51,7 +51,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__
-@@ -60,7 +60,6 @@
- */
- #define NO_SETMNTENT
- #define NO_ENDMNTENT
--#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO)
- #endif
-
-
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
deleted file mode 100644
index ad19fb24b9..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0007-Use-configure-to-test-for-feature-instead-of-platfor.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 6cc1c22cc30320f56da552a76bd956db8f255b6a Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 10:05:07 +0000
-Subject: [PATCH 07/11] 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.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- open-vm-tools/configure.ac | 4 ++++
- open-vm-tools/lib/misc/idLinux.c | 30 ++++++++++++++----------------
- open-vm-tools/lib/nicInfo/nicInfoPosix.c | 8 ++++++--
- 3 files changed, 24 insertions(+), 18 deletions(-)
-
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -892,6 +892,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])
-
-@@ -1076,10 +1077,13 @@ AC_PATH_PROG(
- ###
-
- 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
-Index: open-vm-tools/lib/misc/idLinux.c
-===================================================================
---- open-vm-tools.orig/lib/misc/idLinux.c
-+++ 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>
-@@ -997,31 +994,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
-Index: open-vm-tools/lib/nicInfo/nicInfoPosix.c
-===================================================================
---- open-vm-tools.orig/lib/nicInfo/nicInfoPosix.c
-+++ open-vm-tools/lib/nicInfo/nicInfoPosix.c
-@@ -34,9 +34,13 @@
- #include <sys/socket.h>
- #include <sys/stat.h>
- #include <errno.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
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
deleted file mode 100644
index 78722390e8..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/0011-Use-configure-test-for-sys-stat.h-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 95c6184d9ff70a47c41768850923a96de9e544aa Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 18 Nov 2015 10:41:01 +0000
-Subject: [PATCH 11/11] 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(-)
-
-Index: open-vm-tools/services/plugins/vix/vixTools.c
-===================================================================
---- open-vm-tools.orig/services/plugins/vix/vixTools.c
-+++ 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-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
deleted file mode 100644
index 1a6bfdb09b..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/fix-subdir-objects-configure-error.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -303,6 +303,7 @@ AC_ARG_ENABLE(
- [],
- [enable_resolutionkms="auto"])
-
-+AM_INIT_AUTOMAKE([subdir-objects])
- AM_INIT_AUTOMAKE
-
- ###
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/use-tirpc.patch b/meta-oe/recipes-support/open-vm-tools/open-vm-tools/use-tirpc.patch
deleted file mode 100644
index a6bb92486f..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools/use-tirpc.patch
+++ /dev/null
@@ -1,481 +0,0 @@
-Index: open-vm-tools/configure.ac
-===================================================================
---- open-vm-tools.orig/configure.ac
-+++ open-vm-tools/configure.ac
-@@ -586,6 +586,11 @@ AC_ARG_WITH([xml2],
- [enable_vgauth=no],
- [with_xml2=yes])
-
-+AC_ARG_WITH([tirpc],
-+ [AS_HELP_STRING([--without-tirpc],
-+ [compiles without tirpc support.])],
-+ [with_tirpc="$withval"],
-+ [with_tirpc="auto"])
-
- # Make sure we are building with openssl 1.0.1 and above so that
- # we use only TLSv1_2.
-@@ -1067,10 +1072,45 @@ if test "$enable_caf" = "yes"; then
-
- fi
-
-+have_tirpc="no"
-+if test "x$with_tirpc" != "xno"; then
-+ AC_VMW_CHECK_LIB([libtirpc],
-+ [TIRPC],
-+ [libtirpc],
-+ [],
-+ [],
-+ [],
-+ [],
-+ [have_tirpc="yes"],
-+ [have_tirpc="no"])
-+fi
-+
-+if test "$with_tirpc" = "no"; then
-+ use_tirpc="no"
-+elif test "$with_tirpc" = "auto"; then
-+ use_tirpc=$have_tirpc
-+elif test "$with_tirpc" = "yes"; then
-+ if test "$have_tirpc" = "no"; then
-+ AC_MSG_ERROR([libtirpc is required, but not found.])
-+ else
-+ use_tirpc="yes"
-+ fi
-+fi
-+
-+if test "$use_tirpc" = "yes"; then
-+ AC_MSG_NOTICE([Building with libtirpc])
-+else
-+ AC_MSG_NOTICE([Building without libtirpc])
-+fi
-+
- AC_PATH_PROG(
- [RPCGEN],
- [rpcgen],
-- [ AC_MSG_ERROR([rpcgen not found. Please install the libc devel package.]) ])
-+ [not_found])
-+
-+if test "$RPCGEN" = "not_found"; then
-+ AC_MSG_ERROR([rpcgen not found. Please install libc-devel or libc-rpcgen package.])
-+fi
-
- ###
- ### Headers
-@@ -1411,6 +1451,7 @@ AM_CONDITIONAL(HAVE_MKDTEMP, test "$have
- AM_CONDITIONAL(HAVE_UDEV, test "$have_udev" = "yes")
- AM_CONDITIONAL(ENABLE_RESOLUTIONKMS, test "x$enable_resolutionkms" = "xyes")
- AM_CONDITIONAL(VGAUTH_USE_CXX, test "$with_icu" = "yes" -o "$use_xmlsec1" != "yes")
-+AM_CONDITIONAL(HAVE_TIRPC, test "$use_tirpc" = "yes")
-
- if test "$have_xsm" != "yes"; then
- AC_DEFINE([NO_XSM], 1, [])
-@@ -1459,6 +1500,13 @@ if test "$os" = "solaris"; then
- XDR_LIBS="-lnsl -lrpcsvc"
- fi
-
-+# In newer Linux distros Sun RPC has been removed from libc
-+XDR_CPPFLAGS=
-+if test "$os" = "linux" -a "$use_tirpc" = "yes"; then
-+ XDR_CPPFLAGS="-DUSE_TIRPC $TIRPC_CPPFLAGS"
-+ XDR_LIBS="$TIRPC_LIBS"
-+fi
-+
- # Installation directories for core services plugins.
- TEST_PLUGIN_INSTALLDIR=$datadir/open-vm-tools/tests
- COMMON_PLUGIN_INSTALLDIR=$libdir/open-vm-tools/plugins/common
-@@ -1497,6 +1545,7 @@ AC_SUBST([PLUGIN_LDFLAGS])
- AC_SUBST([VMTOOLS_CPPFLAGS])
- AC_SUBST([VMTOOLS_LIBS])
- AC_SUBST([RPCGENFLAGS])
-+AC_SUBST([XDR_CPPFLAGS])
- AC_SUBST([XDR_LIBS])
- AC_SUBST([TEST_PLUGIN_INSTALLDIR])
- AC_SUBST([COMMON_PLUGIN_INSTALLDIR])
-Index: open-vm-tools/lib/dynxdr/dynxdr.c
-===================================================================
---- open-vm-tools.orig/lib/dynxdr/dynxdr.c
-+++ open-vm-tools/lib/dynxdr/dynxdr.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2008-2017 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2008-2018 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -55,7 +55,7 @@ typedef struct DynXdrData {
- * Mac OS X, FreeBSD and Solaris don't take a const parameter to the
- * "x_getpostn" function.
- */
--#if defined(__APPLE__) || defined(__FreeBSD__) || defined(sun)
-+#if defined(__APPLE__) || defined(__FreeBSD__) || defined(sun) || defined(USE_TIRPC)
- # define DYNXDR_GETPOS_CONST
- #else
- # define DYNXDR_GETPOS_CONST const
-@@ -172,7 +172,11 @@ DynXdrSetPos(XDR *xdrs, // IN
- }
-
-
--#if defined(__GLIBC__) || (defined(sun) && (defined(_LP64) || defined(_KERNEL)))
-+#if !defined(USE_TIRPC) && \
-+ defined(__GLIBC__) || \
-+ (defined(sun) && \
-+ (defined(_LP64) || \
-+ defined(_KERNEL)))
- /*
- *-----------------------------------------------------------------------------
- *
-@@ -322,11 +326,11 @@ DynXdr_Create(XDR *in) // IN
- DynXdrSetPos, /* x_setpostn */
- DynXdrInline, /* x_inline */
- NULL, /* x_destroy */
--#if defined(__GLIBC__)
-+#if defined(__APPLE__) || defined (USE_TIRPC)
-+ NULL, /* x_control */
-+#elif defined(__GLIBC__)
- NULL, /* x_getint32 */
- DynXdrPutInt32, /* x_putint32 */
--#elif defined(__APPLE__)
-- NULL, /* x_control */
- #elif defined(sun) && (defined(_LP64) || defined(_KERNEL))
- NULL, /* x_control */
- NULL, /* x_getint32 */
-Index: open-vm-tools/lib/dynxdr/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/dynxdr/Makefile.am
-+++ open-vm-tools/lib/dynxdr/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2008-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2008-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -20,4 +20,7 @@ noinst_LTLIBRARIES = libDynxdr.la
- libDynxdr_la_SOURCES =
- libDynxdr_la_SOURCES += dynxdr.c
- libDynxdr_la_SOURCES += xdrutil.c
--libDynxdr_la_CPPFLAGS = -Wno-incompatible-pointer-types
-+
-+libDynxdr_la_CPPFLAGS = @XDR_CPPFLAGS@ -Wno-incompatible-pointer-types
-+libDynxdr_la_LIBADD = @XDR_LIBS@
-+
-Index: open-vm-tools/lib/guestRpc/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/guestRpc/Makefile.am
-+++ open-vm-tools/lib/guestRpc/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2008-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2008-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -20,6 +20,10 @@ noinst_LTLIBRARIES = libGuestRpc.la
- libGuestRpc_la_SOURCES =
- libGuestRpc_la_SOURCES += nicinfo_xdr.c
-
-+libGuestRpc_la_CPPFLAGS = @XDR_CPPFLAGS@
-+
-+libGuestRpc_la_LIBADD = @XDR_LIBS@
-+
- # XXX: Autoreconf complains about this and recommends using AM_CFLAGS instead.
- # Problem is, $(CFLAGS) is appended to the compiler command line after AM_CFLAGS
- # and after libGuestRpc_la_CFLAGS, so "-Wall -Werror" will override this flag.
-Index: open-vm-tools/lib/netUtil/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/netUtil/Makefile.am
-+++ open-vm-tools/lib/netUtil/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2007-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2007-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -20,3 +20,6 @@ noinst_LTLIBRARIES = libNetUtil.la
- libNetUtil_la_SOURCES =
- libNetUtil_la_SOURCES += netUtilLinux.c
-
-+libNetUtil_la_CPPFLAGS = @XDR_CPPFLAGS@
-+
-+libNetUtil_la_LIBADD = @XDR_LIBS@
-Index: open-vm-tools/lib/nicInfo/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/nicInfo/Makefile.am
-+++ open-vm-tools/lib/nicInfo/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2014-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2014-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -25,6 +25,9 @@ libNicInfo_la_SOURCES += nicInfoPosix.c
-
- libNicInfo_la_CPPFLAGS =
- libNicInfo_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libNicInfo_la_CPPFLAGS += @XDR_CPPFLAGS@
-+
-+libNicInfo_la_LIBADD = @XDR_LIBS@
-
- AM_CFLAGS = $(DNET_CPPFLAGS)
- if USE_SLASH_PROC
-Index: open-vm-tools/lib/rpcChannel/Makefile.am
-===================================================================
---- open-vm-tools.orig/lib/rpcChannel/Makefile.am
-+++ open-vm-tools/lib/rpcChannel/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2009-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -27,3 +27,6 @@ endif
-
- libRpcChannel_la_CPPFLAGS =
- libRpcChannel_la_CPPFLAGS += @VMTOOLS_CPPFLAGS@
-+libRpcChannel_la_CPPFLAGS += @XDR_CPPFLAGS@
-+
-+libRpcChannel_la_LIBADD = @XDR_LIBS@
-Index: open-vm-tools/lib/slashProc/net.c
-===================================================================
---- open-vm-tools.orig/lib/slashProc/net.c
-+++ open-vm-tools/lib/slashProc/net.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2009-2016 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -36,7 +36,6 @@
- #include "panic.h"
- #include "slashProc.h"
- #include "slashProcNetInt.h"
--#include "netutil.h"
-
-
- /*
-Index: open-vm-tools/libguestlib/Makefile.am
-===================================================================
---- open-vm-tools.orig/libguestlib/Makefile.am
-+++ open-vm-tools/libguestlib/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2007-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2007-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -22,6 +22,7 @@ AM_CFLAGS += -I$(top_srcdir)/include
-
- libguestlib_la_LIBADD =
- libguestlib_la_LIBADD += @VMTOOLS_LIBS@
-+libguestlib_la_LIBADD += @XDR_LIBS@
-
- libguestlib_la_SOURCES =
- libguestlib_la_SOURCES += guestlibV3_xdr.c
-@@ -56,6 +57,7 @@ CFLAGS += -Wno-unused
- libguestlib_la_CPPFLAGS =
- libguestlib_la_CPPFLAGS += -DVMTOOLS_USE_GLIB
- libguestlib_la_CPPFLAGS += @GLIB2_CPPFLAGS@
-+libguestlib_la_CPPFLAGS += @XDR_CPPFLAGS@
-
- EXTRA_DIST = vmguestlib.pc.in
-
-Index: open-vm-tools/services/plugins/dndcp/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/dndcp/Makefile.am
-+++ open-vm-tools/services/plugins/dndcp/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2009-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -28,6 +28,7 @@ libdndcp_la_CPPFLAGS += -I$(top_srcdir)/
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/stringxx
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/services/plugins/dndcp/xutils
- libdndcp_la_CPPFLAGS += -I$(top_srcdir)/include
-+libdndcp_la_CPPFLAGS += @XDR_CPPFLAGS@
-
- # Passing C++ related flags to CPPFLAGS generates error.
- # So, we need to pass these to C++ compilation only.
-@@ -45,6 +46,7 @@ libdndcp_la_LIBADD += @GTKMM_LIBS@
- libdndcp_la_LIBADD += @VMTOOLS_LIBS@
- libdndcp_la_LIBADD += @HGFS_LIBS@
- libdndcp_la_LIBADD += $(top_builddir)/lib/hgfsUri/hgfsUriPosix.lo
-+libdndcp_la_LIBADD += @XDR_LIBS@
-
- libdndcp_la_SOURCES =
-
-Index: open-vm-tools/services/plugins/guestInfo/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/guestInfo/Makefile.am
-+++ open-vm-tools/services/plugins/guestInfo/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2009-2017 VMware, Inc. All rights reserved.
-+### Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -22,6 +22,7 @@ plugin_LTLIBRARIES = libguestInfo.la
-
- libguestInfo_la_CPPFLAGS =
- libguestInfo_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libguestInfo_la_CPPFLAGS += @XDR_CPPFLAGS@
-
- libguestInfo_la_LDFLAGS =
- libguestInfo_la_LDFLAGS += @PLUGIN_LDFLAGS@
-Index: open-vm-tools/services/plugins/resolutionKMS/resolutionKMS.c
-===================================================================
---- open-vm-tools.orig/services/plugins/resolutionKMS/resolutionKMS.c
-+++ open-vm-tools/services/plugins/resolutionKMS/resolutionKMS.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2008-2017 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2008-2018 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -29,16 +29,13 @@
- #include <sys/stat.h>
- #include <fcntl.h>
-
-+#include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-
- #include "vmware.h"
--#include "debug.h"
--#include "rpcout.h"
--#include "str.h"
- #include "strutil.h"
-
--#include "xdrutil.h"
- #include "vmware/guestrpc/tclodefs.h"
- #include "vmware/tools/plugin.h"
- #include "vmware/tools/utils.h"
-Index: open-vm-tools/services/plugins/resolutionSet/resolutionSet.c
-===================================================================
---- open-vm-tools.orig/services/plugins/resolutionSet/resolutionSet.c
-+++ open-vm-tools/services/plugins/resolutionSet/resolutionSet.c
-@@ -1,5 +1,5 @@
- /*********************************************************
-- * Copyright (C) 2008-2017 VMware, Inc. All rights reserved.
-+ * Copyright (C) 2008-2018 VMware, Inc. All rights reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published
-@@ -34,7 +34,6 @@
-
- #include "resolutionInt.h"
-
--#include "xdrutil.h"
- #include "vmware/guestrpc/tclodefs.h"
- #include "vmware/tools/plugin.h"
- #include "vmware/tools/utils.h"
-Index: open-vm-tools/services/plugins/vix/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/vix/Makefile.am
-+++ open-vm-tools/services/plugins/vix/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2009-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvix.la
-
- libvix_la_CPPFLAGS =
- libvix_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvix_la_CPPFLAGS += @XDR_CPPFLAGS@
- libvix_la_CPPFLAGS += -I$(top_srcdir)/vgauth/public
-
- libvix_la_LDFLAGS =
-@@ -32,6 +33,7 @@ libvix_la_LIBADD += @HGFS_LIBS@
- libvix_la_LIBADD += $(top_builddir)/lib/auth/libAuth.la
- libvix_la_LIBADD += $(top_builddir)/lib/foundryMsg/libFoundryMsg.la
- libvix_la_LIBADD += $(top_builddir)/lib/impersonate/libImpersonate.la
-+libvix_la_LIBADD += @XDR_LIBS@
- if ENABLE_VGAUTH
- libvix_la_LIBADD += $(top_builddir)/vgauth/lib/libvgauth.la
- endif
-Index: open-vm-tools/services/plugins/vix/vixTools.c
-===================================================================
---- open-vm-tools.orig/services/plugins/vix/vixTools.c
-+++ open-vm-tools/services/plugins/vix/vixTools.c
-@@ -91,7 +91,6 @@
- #include "str.h"
- #include "file.h"
- #include "err.h"
--#include "guestInfo.h" // MAX_VALUE_LEN
- #include "hostinfo.h"
- #include "guest_os.h"
- #include "guest_msg_def.h"
-Index: open-vm-tools/services/plugins/vmbackup/Makefile.am
-===================================================================
---- open-vm-tools.orig/services/plugins/vmbackup/Makefile.am
-+++ open-vm-tools/services/plugins/vmbackup/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2009-2017 VMware, Inc. All rights reserved.
-+### Copyright (C) 2009-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -20,6 +20,7 @@ plugin_LTLIBRARIES = libvmbackup.la
-
- libvmbackup_la_CPPFLAGS =
- libvmbackup_la_CPPFLAGS += @PLUGIN_CPPFLAGS@
-+libvmbackup_la_CPPFLAGS += @XDR_CPPFLAGS@
-
- libvmbackup_la_LDFLAGS =
- libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAGS@
-@@ -27,6 +28,7 @@ libvmbackup_la_LDFLAGS += @PLUGIN_LDFLAG
- libvmbackup_la_LIBADD =
- libvmbackup_la_LIBADD += @GOBJECT_LIBS@
- libvmbackup_la_LIBADD += @VMTOOLS_LIBS@
-+libvmbackup_la_LIBADD += @XDR_LIBS@
-
- libvmbackup_la_SOURCES =
- libvmbackup_la_SOURCES += nullProvider.c
-Index: open-vm-tools/services/plugins/vmbackup/stateMachine.c
-===================================================================
---- open-vm-tools.orig/services/plugins/vmbackup/stateMachine.c
-+++ open-vm-tools/services/plugins/vmbackup/stateMachine.c
-@@ -35,7 +35,6 @@
-
- #include "vmBackupInt.h"
-
--#include "dynxdr.h"
- #include <glib-object.h>
- #include <gmodule.h>
- #include "guestApp.h"
-Index: open-vm-tools/toolbox/Makefile.am
-===================================================================
---- open-vm-tools.orig/toolbox/Makefile.am
-+++ open-vm-tools/toolbox/Makefile.am
-@@ -1,5 +1,5 @@
- ################################################################################
--### Copyright (C) 2007-2016 VMware, Inc. All rights reserved.
-+### Copyright (C) 2007-2018 VMware, Inc. All rights reserved.
- ###
- ### This program is free software; you can redistribute it and/or modify
- ### it under the terms of version 2 of the GNU General Public License as
-@@ -20,9 +20,11 @@ bin_PROGRAMS = vmware-toolbox-cmd
- vmware_toolbox_cmd_LDADD =
- vmware_toolbox_cmd_LDADD += ../libguestlib/libguestlib.la
- vmware_toolbox_cmd_LDADD += @VMTOOLS_LIBS@
-+vmware_toolbox_cmd_LDADD += @XDR_LIBS@
-
- vmware_toolbox_cmd_CPPFLAGS =
- vmware_toolbox_cmd_CPPFLAGS += @VMTOOLS_CPPFLAGS@
-+vmware_toolbox_cmd_CPPFLAGS += @XDR_CPPFLAGS@
-
- vmware_toolbox_cmd_SOURCES =
- vmware_toolbox_cmd_SOURCES += toolbox-cmd.c
diff --git a/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.2.5.bb b/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.2.5.bb
deleted file mode 100644
index 820c95bbd0..0000000000
--- a/meta-oe/recipes-support/open-vm-tools/open-vm-tools_10.2.5.bb
+++ /dev/null
@@ -1,112 +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"
-SECTION = "vmware-tools"
-
-LICENSE = "LGPL-2.0 & GPL-2.0 & BSD & CDDL-1.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e5000bc3c5a39b6e66579d72cc32b45a"
-LICENSE_modules/freebsd/vmblock = "BSD"
-LICENSE_modules/freebsd/vmmemctl = "GPL-2.0"
-LICENSE_modules/freebsd/vmxnet = "GPL-2.0"
-LICENSE_modules/linux = "GPL-2.0"
-LICENSE_modules/solaris = "CDDL-1.0"
-
-SRC_URI = "git://github.com/vmware/open-vm-tools.git;protocol=https \
- file://tools.conf \
- file://vmtoolsd.service \
- file://vmtoolsd.init \
- file://0001-configure.ac-don-t-use-dnet-config.patch \
- file://0002-add-include-sys-sysmacros.h.patch \
- file://0001-Remove-assumptions-about-glibc-being-only-libc-imple.patch \
- file://0004-Add-Wno-incompatible-pointer-types-and-Wno-error-add.patch \
- file://0005-Use-configure-test-for-struct-timespec.patch \
- file://0006-Fix-definition-of-ALLPERMS-and-ACCESSPERMS.patch \
- file://0007-Use-configure-to-test-for-feature-instead-of-platfor.patch \
- file://0011-Use-configure-test-for-sys-stat.h-include.patch \
- file://use-tirpc.patch \
- file://fix-subdir-objects-configure-error.patch \
- file://0001-include-poll.h-instead-of-sys-poll.h.patch \
- file://0002-Rename-poll.h-to-vm_poll.h.patch \
- file://0003-use-posix-strerror_r-unless-on-gnu-libc-system.patch \
- file://0004-Use-uintmax_t-for-handling-rlim_t.patch \
- "
-SRCREV = "380a3d9747999e8bcbcbcd03b1402b702770db79"
-
-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-grabbitmqproxy --disable-vgauth --disable-deploypkg \
- --without-root-privileges --without-kernel-modules"
-
-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"
-FILES_${PN}-dbg += "\
- ${libdir}/open-vm-tools/plugins/common/.debug \
- ${libdir}/open-vm-tools/plugins/vmsvc/.debug \
- "
-
-CONFFILES_${PN} += "${sysconfdir}/vmware-tools/tools.conf"
-
-RDEPENDS_${PN} = "util-linux libdnet fuse"
-
-do_install_append() {
- ln -sf ${sbindir}/mount.vmhgfs ${D}/sbin/mount.vmhgfs
- 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 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split() or \
- 'filesystems-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
- raise bb.parse.SkipRecipe('Requires meta-networking and meta-filesystems to be present.')
-}
-
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
new file mode 100644
index 0000000000..781e698cbf
--- /dev/null
+++ b/meta-oe/recipes-support/opencl/clinfo_3.0.21.02.21.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 = "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/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 913290cd97..0d3ea4186a 100644
--- a/meta-oe/recipes-support/openct/openct_0.6.20.bb
+++ b/meta-oe/recipes-support/openct/openct_0.6.20.bb
@@ -11,9 +11,10 @@ readers to remote machines via TCP/IP."
DEPENDS += "libtool pcsc-lite libusb-compat"
SRC_URI = " \
- ${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz \
+ 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 \
@@ -22,11 +23,11 @@ SRC_URI = " \
SRC_URI[md5sum] = "a1da3358ab798f1cb9232f1dbababc21"
SRC_URI[sha256sum] = "6cd3e2933d29eb1f875c838ee58b8071fd61f0ec8ed5922a86c01c805d181a68"
-LICENSE = "LGPLv2+"
+LICENSE = "LGPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LGPL-2.1;md5=2d5025d4aa3495befef8f17206a5b0a1"
inherit systemd
-SYSTEMD_SERVICE_${PN} += "openct.service "
+SYSTEMD_SERVICE:${PN} += "openct.service "
SYSTEMD_AUTO_ENABLE = "enable"
EXTRA_OECONF=" \
@@ -35,35 +36,30 @@ EXTRA_OECONF=" \
--enable-pcsc \
--enable-doc \
--enable-api-doc \
- --with-udev=${nonarch_base_libdir}/udev \
+ --with-udev=${nonarch_libdir}/udev \
--with-bundle=${libdir}/pcsc/drivers \
"
inherit autotools pkgconfig
-FILES_${PN} += " \
+FILES:${PN} += " \
${libdir}/ctapi \
- ${nonarch_base_libdir}/udev \
+ ${nonarch_libdir}/udev \
${libdir}/openct-ifd.so \
${libdir}/pcsc \
- /run/openct/status \
"
-FILES_${PN}-dbg += " \
+FILES:${PN}-dbg += " \
${libdir}/ctapi/.debug \
${libdir}/pcsc/drivers/openct-ifd.bundle/Contents/Linux/.debug \
"
-INSANE_SKIP_${PN} += "dev-deps"
+INSANE_SKIP:${PN} += "dev-deps"
-do_install_append() {
- rm -r ${D}/${localstatedir}/run
-}
+do_install[cleandirs] += "${D}"
do_install () {
- rm -rf ${D}
- install -d ${D}/etc
- install -dm 755 ${D}${nonarch_base_libdir}/udev
+ install -d ${D}${sysconfdir}
# fix up hardcoded paths
sed -i -e 's,/etc/,${sysconfdir}/,' -e 's,/usr/sbin/,${sbindir}/,' \
${WORKDIR}/openct.service ${WORKDIR}/openct.init
@@ -71,24 +67,18 @@ do_install () {
oe_runmake install DESTDIR=${D}
install -dm 755 ${D}${libdir}/ctapi/
mv ${D}${libdir}/libopenctapi.so ${D}${libdir}/ctapi/
- install -Dpm 644 etc/openct.udev ${D}/etc/udev/rules.d/60-openct.rules
- install -pm 644 etc/openct.conf ${D}/etc/openct.conf
+ install -Dpm 644 etc/openct.udev ${D}${nonarch_libdir}/udev/rules.d/60-openct.rules
+ install -pm 644 etc/openct.conf ${D}${sysconfdir}/openct.conf
- install -Dpm 755 ${WORKDIR}/openct.init ${D}/etc/init.d/openct
- install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}/etc/sysconfig/openct
+ install -Dpm 755 ${WORKDIR}/openct.init ${D}${sysconfdir}/init.d/openct
+ install -Dpm 644 ${WORKDIR}/openct.sysconfig ${D}${sysconfdir}/sysconfig/openct
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/openct.service ${D}/${systemd_unitdir}/system
+ install -d ${D}${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/openct.service ${D}${systemd_unitdir}/system
so=$(find ${D} -name \*.so | sed "s|^${D}||")
sed -i -e 's|\\(LIBPATH\\s*\\).*|\\1$so|' etc/reader.conf
- install -Dpm 644 etc/reader.conf ${D}/etc/reader.conf.d/openct.conf
-
- install -dm 755 ${D}${localstatedir}/run/openct
- touch ${D}${localstatedir}/run/openct/status
- chmod 644 ${D}${localstatedir}/run/openct/status
+ install -Dpm 644 etc/reader.conf ${D}${sysconfdir}/reader.conf.d/openct.conf
}
-pkg_postinst_${PN} () {
- ln -sf ctapi/libopenctapi.so ${libdir}/libopenctapi.so
-}
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/opencv/ade_0.1.2.bb b/meta-oe/recipes-support/opencv/ade_0.1.2.bb
new file mode 100644
index 0000000000..93b14ad4f3
--- /dev/null
+++ b/meta-oe/recipes-support/opencv/ade_0.1.2.bb
@@ -0,0 +1,20 @@
+SUMMARY = "A graph construction, manipulation, and processing framework"
+DESCRIPTION = "ADE Framework is a graph construction, manipulation, \
+and processing framework. ADE Framework is suitable for \
+organizing data flow processing and execution."
+HOMEPAGE = "https://github.com/opencv/ade"
+
+SRC_URI = "git://github.com/opencv/ade.git;branch=master;protocol=https"
+
+SRCREV = "1e02d7486bdb9c87993d91b9910e7cc6c4ddbf66"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+inherit cmake
+
+S = "${WORKDIR}/git"
+
+EXTRA_OECMAKE += " -DCMAKE_BUILD_TYPE=Release"
+
+FILES:${PN}-dev += "${datadir}/${BPN}/*.cmake"
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 4d76ad40ce..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4801a057730632225337d7f6d26b9335e6b9b078 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 d601da4bb..f6fc1098c 100644
---- a/3rdparty/ippicv/ippicv.cmake
-+++ b/3rdparty/ippicv/ippicv.cmake
-@@ -39,18 +39,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()
---
-2.13.4
-
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch b/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
index 6dd48fcdc3..948a80fafa 100644
--- a/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
+++ b/meta-oe/recipes-support/opencv/opencv/0001-Dont-use-isystem.patch
@@ -1,24 +1,26 @@
-From 2bc6bb9831d07f035fea74ea745cea43dd5f9ef9 Mon Sep 17 00:00:00 2001
+From 66e50ee69fa9ee2469d349100e70d8b296c4b4dc Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 9 Sep 2017 23:48:31 -0700
+Date: Tue, 11 Sep 2018 00:21:18 -0700
Subject: [PATCH] Dont use isystem
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
+clang really does not like it
+
Upstream-Status: Pending
- cmake/OpenCVPCHSupport.cmake | 10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ cmake/OpenCVPCHSupport.cmake | 2 ++
+ 1 file changed, 2 insertions(+)
-Index: git/cmake/OpenCVPCHSupport.cmake
-===================================================================
---- git.orig/cmake/OpenCVPCHSupport.cmake
-+++ git/cmake/OpenCVPCHSupport.cmake
-@@ -17,7 +17,8 @@ IF(CMAKE_COMPILER_IS_GNUCXX)
- IF(NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.2.0")
+diff --git a/cmake/OpenCVPCHSupport.cmake b/cmake/OpenCVPCHSupport.cmake
+index 08cd06def4..46c9c02da3 100644
+--- a/cmake/OpenCVPCHSupport.cmake
++++ b/cmake/OpenCVPCHSupport.cmake
+@@ -18,6 +18,8 @@ IF(CV_GCC)
SET(PCHSupport_FOUND TRUE)
ENDIF()
--
+
+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_C "-I")
+ SET(CMAKE_INCLUDE_SYSTEM_FLAG_CXX "-I")
SET(_PCH_include_prefix "-I")
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-Make-ts-module-external.patch b/meta-oe/recipes-support/opencv/opencv/0001-Make-ts-module-external.patch
new file mode 100644
index 0000000000..d56b8ae67e
--- /dev/null
+++ b/meta-oe/recipes-support/opencv/opencv/0001-Make-ts-module-external.patch
@@ -0,0 +1,42 @@
+From 11bbf909e08594628bd757d989ae34cf1bfe200b Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 18 Jun 2020 05:51:38 +0000
+Subject: [PATCH] Make ts module external
+
+Make ts module external
+
+Reference: https://github.com/qbonnard/opencv/commit/6b229c5834cb9a0930425e762a6c7b03244d7abb
+
+Upstream-Status: Submitted [https://github.com/opencv/opencv/issues/8408]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ modules/ts/CMakeLists.txt | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt
+index f95bed0793..66f315bcca 100644
+--- a/modules/ts/CMakeLists.txt
++++ b/modules/ts/CMakeLists.txt
+@@ -4,9 +4,6 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS)
+ ocv_module_disable(ts)
+ endif()
+
+-set(OPENCV_MODULE_TYPE STATIC)
+-set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
+-
+ if(WINRT)
+ # WINRT doesn't have access to environment variables
+ # so adding corresponding macros during CMake run
+@@ -16,7 +13,7 @@ endif()
+
+ ocv_warnings_disable(CMAKE_CXX_FLAGS -Wundef)
+
+-ocv_add_module(ts INTERNAL opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui)
++ocv_add_module(ts opencv_core opencv_imgproc opencv_imgcodecs opencv_videoio opencv_highgui)
+
+ ocv_glob_module_sources()
+ ocv_module_include_directories()
+--
+2.24.1
+
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 63cb7f943a..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
@@ -1,19 +1,22 @@
-From 7d31f41d2a6759e244983504ce855fc32916b97a Mon Sep 17 00:00:00 2001
+From e4ec6cea72da9e9ae5ba57140fa2f5c63f1f8295 Mon Sep 17 00:00:00 2001
From: Jason Wessel <jason.wessel@windriver.com>
Date: Wed, 9 May 2018 13:33:59 -0700
Subject: [PATCH] Temporarliy work around deprecated ffmpeg RAW function
compile failure until next uprev
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/modules/videoio/src/cap_ffmpeg_impl.hpp b/modules/videoio/src/cap_ffmpeg_impl.hpp
-index 5a9b10f075..97c6b74b07 100644
+index 6dca724a89..ae55dd4555 100644
--- a/modules/videoio/src/cap_ffmpeg_impl.hpp
+++ b/modules/videoio/src/cap_ffmpeg_impl.hpp
-@@ -667,6 +667,14 @@ struct ImplMutex::Impl
+@@ -774,6 +774,14 @@ struct ImplMutex::Impl
#endif
@@ -28,6 +31,3 @@ index 5a9b10f075..97c6b74b07 100644
void ImplMutex::init()
{
impl = new Impl();
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-Use-Os-to-compile-tinyxml2.cpp.patch b/meta-oe/recipes-support/opencv/opencv/0001-Use-Os-to-compile-tinyxml2.cpp.patch
new file mode 100644
index 0000000000..c5a64387f5
--- /dev/null
+++ b/meta-oe/recipes-support/opencv/opencv/0001-Use-Os-to-compile-tinyxml2.cpp.patch
@@ -0,0 +1,31 @@
+From 59fafe6e39759e193b5764b36b4c5a93da352123 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 18 Aug 2020 00:36:49 -0700
+Subject: [PATCH] Use -Os to compile tinyxml2.cpp
+
+This workarounds issue [1] seen on riscv with gcc
+
+[1] https://github.com/riscv/riscv-gnu-toolchain/issues/624
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ modules/datasets/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/datasets/CMakeLists.txt b/modules/datasets/CMakeLists.txt
+index 56ca9e310..99b7a33f6 100644
+--- a/modules/datasets/CMakeLists.txt
++++ b/modules/datasets/CMakeLists.txt
+@@ -2,7 +2,7 @@ set(the_description "datasets framework")
+
+ set(filter_srcs "${CMAKE_CURRENT_LIST_DIR}/src/tinyxml2/tinyxml2.cpp")
+ if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
+- ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-suggest-override") # GCC
++ ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-suggest-override -Os") # GCC
+ elseif(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
+ ocv_append_source_files_cxx_compiler_options(filter_srcs "-Wno-inconsistent-missing-override") # Clang
+ endif()
+--
+2.28.0
+
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch b/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
deleted file mode 100644
index 0140633db3..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/0d854db361106dfcb055231fd0112c5b85ef2287]
-
-Fix CVEs for opencv 3.3.
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 0d854db361106dfcb055231fd0112c5b85ef2287 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
-Date: Tue, 15 Aug 2017 21:45:05 +0000
-Subject: [PATCH 1/3] build: workaround GCC 7.1.1 compilation issue with
- sanitize flags
-
-Version: gcc (GCC) 7.1.1 20170622 (Red Hat 7.1.1-3)
-Flags: -fsanitize=address,undefined
----
- modules/ts/src/cuda_test.cpp | 56 ++++++++++++++++++++++++++------------------
- 1 file changed, 33 insertions(+), 23 deletions(-)
-
-diff --git a/modules/ts/src/cuda_test.cpp b/modules/ts/src/cuda_test.cpp
-index a48e0a087..eb4cee136 100644
---- a/modules/ts/src/cuda_test.cpp
-+++ b/modules/ts/src/cuda_test.cpp
-@@ -322,16 +322,20 @@ namespace cvtest
-
- if (m1.size() != m2.size())
- {
-- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
-- << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
-- << expr2 << "\" [" << PrintToString(m2.size()) << "]";
-+ std::stringstream msg;
-+ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different sizes : \""
-+ << expr1 << "\" [" << PrintToString(m1.size()) << "] vs \""
-+ << expr2 << "\" [" << PrintToString(m2.size()) << "]";
-+ return AssertionFailure() << msg.str();
- }
-
- if (m1.type() != m2.type())
- {
-- return AssertionFailure() << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
-- << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
-- << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
-+ std::stringstream msg;
-+ msg << "Matrices \"" << expr1 << "\" and \"" << expr2 << "\" have different types : \""
-+ << expr1 << "\" [" << PrintToString(MatType(m1.type())) << "] vs \""
-+ << expr2 << "\" [" << PrintToString(MatType(m2.type())) << "]";
-+ return AssertionFailure() << msg.str();
- }
-
- Mat diff;
-@@ -343,12 +347,14 @@ namespace cvtest
-
- if (maxVal > eps)
- {
-- return AssertionFailure() << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
-- << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
-- << ", which exceeds \"" << eps_expr << "\", where \""
-- << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
-- << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
-- << eps_expr << "\" evaluates to " << eps;
-+ std::stringstream msg;
-+ msg << "The max difference between matrices \"" << expr1 << "\" and \"" << expr2
-+ << "\" is " << maxVal << " at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ")"
-+ << ", which exceeds \"" << eps_expr << "\", where \""
-+ << expr1 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m1, maxLoc) << ", \""
-+ << expr2 << "\" at (" << maxLoc.y << ", " << maxLoc.x / m1.channels() << ") evaluates to " << printMatVal(m2, maxLoc) << ", \""
-+ << eps_expr << "\" evaluates to " << eps;
-+ return AssertionFailure() << msg.str();
- }
-
- return AssertionSuccess();
-@@ -469,9 +475,11 @@ namespace cvtest
- {
- if (gold.size() != actual.size())
- {
-- return testing::AssertionFailure() << "KeyPoints size mistmach\n"
-- << "\"" << gold_expr << "\" : " << gold.size() << "\n"
-- << "\"" << actual_expr << "\" : " << actual.size();
-+ std::stringstream msg;
-+ msg << "KeyPoints size mistmach\n"
-+ << "\"" << gold_expr << "\" : " << gold.size() << "\n"
-+ << "\"" << actual_expr << "\" : " << actual.size();
-+ return AssertionFailure() << msg.str();
- }
-
- std::sort(actual.begin(), actual.end(), KeyPointLess());
-@@ -484,14 +492,16 @@ namespace cvtest
-
- if (!keyPointsEquals(p1, p2))
- {
-- return testing::AssertionFailure() << "KeyPoints differ at " << i << "\n"
-- << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
-- << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
-- << "size : " << p1.size << " vs " << p2.size << "\n"
-- << "angle : " << p1.angle << " vs " << p2.angle << "\n"
-- << "response : " << p1.response << " vs " << p2.response << "\n"
-- << "octave : " << p1.octave << " vs " << p2.octave << "\n"
-- << "class_id : " << p1.class_id << " vs " << p2.class_id;
-+ std::stringstream msg;
-+ msg << "KeyPoints differ at " << i << "\n"
-+ << "\"" << gold_expr << "\" vs \"" << actual_expr << "\" : \n"
-+ << "pt : " << testing::PrintToString(p1.pt) << " vs " << testing::PrintToString(p2.pt) << "\n"
-+ << "size : " << p1.size << " vs " << p2.size << "\n"
-+ << "angle : " << p1.angle << " vs " << p2.angle << "\n"
-+ << "response : " << p1.response << " vs " << p2.response << "\n"
-+ << "octave : " << p1.octave << " vs " << p2.octave << "\n"
-+ << "class_id : " << p1.class_id << " vs " << p2.class_id;
-+ return AssertionFailure() << msg.str();
- }
- }
-
---
-2.14.1
-
diff --git a/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch b/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
deleted file mode 100644
index a1a56e0e4d..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0001-carotene-don-t-use-__asm__-with-aarch64.patch
+++ /dev/null
@@ -1,1250 +0,0 @@
-From 353fc92618ce0dc6bab4a3e8bff1c13c3b613110 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 23 Aug 2017 17:41:23 +0300
-Subject: [PATCH 1/2] carotene: don't use __asm__ with aarch64
-
----
-Upstream-Status: Backport
-
- 3rdparty/carotene/src/channel_extract.cpp | 4 +-
- 3rdparty/carotene/src/channels_combine.cpp | 2 +-
- 3rdparty/carotene/src/colorconvert.cpp | 104 ++++++++++++++---------------
- 3rdparty/carotene/src/convert.cpp | 54 +++++++--------
- 3rdparty/carotene/src/convert_scale.cpp | 72 ++++++++++----------
- 3rdparty/carotene/src/gaussian_blur.cpp | 6 +-
- 3rdparty/carotene/src/pyramid.cpp | 20 +++---
- 3rdparty/carotene/src/scharr.cpp | 4 +-
- 8 files changed, 133 insertions(+), 133 deletions(-)
-
-diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
-index f663bc6005..8238a3ece8 100644
---- a/3rdparty/carotene/src/channel_extract.cpp
-+++ b/3rdparty/carotene/src/channel_extract.cpp
-@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
- srcStride == dst2Stride && \
- srcStride == dst3Stride &&
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define SPLIT_ASM2(sgn, bits) __asm__ ( \
- "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \
-@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
- } \
- }
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define ALPHA_QUAD(sgn, bits) { \
- internal::prefetch(src + sj); \
-diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
-index 157c8b8121..fc98fb9181 100644
---- a/3rdparty/carotene/src/channels_combine.cpp
-+++ b/3rdparty/carotene/src/channels_combine.cpp
-@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
- dstStride == src2Stride && \
- dstStride == src3Stride &&
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define MERGE_ASM2(sgn, bits) __asm__ ( \
- "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \
-diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
-index 3037fe672a..26ae54b15c 100644
---- a/3rdparty/carotene/src/colorconvert.cpp
-+++ b/3rdparty/carotene/src/colorconvert.cpp
-@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 48)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0}, [%[in]] \n\t"
- "vmov.8 d1, d0 \n\t"
-@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255);
- #else
- uint8x16x4_t vRgba;
-@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 64)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d5}, [%[in]] \n\t"
- "vmov.8 d6, d5 \n\t"
-@@ -672,7 +672,7 @@ void rgb2rgbx(const Size2D &size,
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- register uint8x8_t vc255_0 asm ("d3") = vmov_n_u8(255);
- #else
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
-@@ -688,7 +688,7 @@ void rgb2rgbx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -742,7 +742,7 @@ void rgbx2rgb(const Size2D &size,
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- union { uint8x16x4_t v4; uint8x16x3_t v3; } v_dst0;
- union { uint8x8x4_t v4; uint8x8x3_t v3; } v_dst;
-@@ -754,7 +754,7 @@ void rgbx2rgb(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -805,7 +805,7 @@ void rgb2bgr(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -817,7 +817,7 @@ void rgb2bgr(const Size2D &size,
- size_t sj = 0u, dj = 0u, j = 0u;
-
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -874,7 +874,7 @@ void rgbx2bgrx(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -885,7 +885,7 @@ void rgbx2bgrx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -943,7 +943,7 @@ void rgbx2bgr(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -954,7 +954,7 @@ void rgbx2bgr(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -1010,7 +1010,7 @@ void rgb2bgrx(const Size2D &size,
- {
- internal::assertSupportedConfiguration();
- #ifdef CAROTENE_NEON
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- register uint8x8_t vc255 asm ("d3") = vmov_n_u8(255);
- #else
- union { uint8x16x4_t v4; uint8x16x3_t v3; } vals0;
-@@ -1019,7 +1019,7 @@ void rgb2bgrx(const Size2D &size,
- vals8.v4.val[3] = vmov_n_u8(255);
- #endif
-
--#if !defined(__GNUC__) || !defined(__arm__)
-+#if !(!defined(__aarch64__) && defined(__GNUC__) && defined(__arm__))
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- #endif
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-@@ -1030,7 +1030,7 @@ void rgb2bgrx(const Size2D &size,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u, j = 0u;
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- for (; j < roiw8; sj += 24, dj += 32, j += 8)
- {
- internal::prefetch(src + sj);
-@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
- "d24","d25","d26","d27","d28","d29","d30","d31" \
- );
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-
- #define YCRCB_CONSTS \
- register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \
-@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
- #define COEFF_G ( 8663)
- #define COEFF_B (-17705)
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- #define YUV420ALPHA3_CONST
- #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255);
- #define YUV420ALPHA3_CONVERT
-@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t"
-@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
- #else
- uint8x8x4_t vRgba = vld4_u8(src + sj);
-@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
- #else
- uint8x8x3_t vBgr = vld3_u8(src + sj);
-@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
- #else
- uint8x8x4_t vBgra = vld4_u8(src + sj);
-@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(3, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CONVERTYUV420TORGB(4, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
-index 403f16d86a..64b6db78ab 100644
---- a/3rdparty/carotene/src/convert.cpp
-+++ b/3rdparty/carotene/src/convert.cpp
-@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
- }
- })
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u8, s32, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
- register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
-@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u8, f32, 16,
- ,
- {
-@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
- }
- })
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s8, s16, 16,
- ,
- {
-@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s8, s32, 16,
- ,
- {
-@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s8, f32, 16,
- ,
- {
-@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, u8, 16,
- ,
- {
-@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, s8, 16,
- register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
- {
-@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u16, s16, 8,
- register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
- {
-@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(u16, s32, 8,
- register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
- {
-@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(u16, f32, 8,
- ,
- {
-@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, u8, 16,
- ,
- {
-@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, s8, 16,
- ,
- {
-@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVT_FUNC(s16, u16, 8,
- register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
- {
-@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, s32, 8,
- ,
- {
-@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s16, f32, 8,
- ,
- {
-@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, u8, 8,
- ,
- {
-@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, s8, 8,
- ,
- {
-@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, u16, 8,
- ,
- {
-@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, s16, 8,
- ,
- {
-@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(s32, f32, 8,
- ,
- {
-@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, u8, 8,
- register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
- register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);,
-@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s8, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, u16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- CVT_FUNC(f32, s32, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
-index 0a14a8035c..ae41a985c8 100644
---- a/3rdparty/carotene/src/convert_scale.cpp
-+++ b/3rdparty/carotene/src/convert_scale.cpp
-@@ -135,7 +135,7 @@ namespace CAROTENE_NS {
-
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC1(u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -220,7 +220,7 @@ CVTS_FUNC1(u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -305,7 +305,7 @@ CVTS_FUNC(u8, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -389,7 +389,7 @@ CVTS_FUNC(u8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(u8, s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -643,7 +643,7 @@ CVTS_FUNC(u8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -728,7 +728,7 @@ CVTS_FUNC(s8, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC1(s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -813,7 +813,7 @@ CVTS_FUNC1(s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -899,7 +899,7 @@ CVTS_FUNC(s8, u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- CVTS_FUNC(s8, s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(u16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(s32, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
-@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC(f32, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
- })
- #endif
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- CVTS_FUNC1(f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
-index 1b5399436f..f7b5f18d79 100644
---- a/3rdparty/carotene/src/gaussian_blur.cpp
-+++ b/3rdparty/carotene/src/gaussian_blur.cpp
-@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*2;
- u16* lidx3 = lane + x + 1*2;
- u16* lidx4 = lane + x + 2*2;
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ __volatile__ (
- "vld2.16 {d0, d2}, [%[in0]]! \n\t"
- "vld2.16 {d1, d3}, [%[in0]] \n\t"
-@@ -398,7 +398,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*3;
- u16* lidx3 = lane + x + 1*3;
- u16* lidx4 = lane + x + 2*3;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ __volatile__ (
- "vld3.16 {d0, d2, d4}, [%[in0]]! \n\t"
- "vld3.16 {d1, d3, d5}, [%[in0]] \n\t"
-@@ -482,7 +482,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*4;
- u16* lidx3 = lane + x + 1*4;
- u16* lidx4 = lane + x + 2*4;
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ __volatile__ (
- "vld4.16 {d0, d2, d4, d6}, [%[in0]]! \n\t"
- "vld4.16 {d1, d3, d5, d7}, [%[in0]] \n\t"
-diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
-index 8ef1268933..232ccf3efd 100644
---- a/3rdparty/carotene/src/pyramid.cpp
-+++ b/3rdparty/carotene/src/pyramid.cpp
-@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw8; x += 8)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld2.16 {d0-d3}, [%[in0]] \n\t"
- "vld2.16 {d4-d7}, [%[in4]] \n\t"
-@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d4-d7}, [%[in4]] \n\t"
-@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
- f32* lane = internal::alignPtr(&_buf[2*cn], 32);
-
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4
- register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4
-
-@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ __volatile__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d8-d11}, [%[in4]] \n\t"
-@@ -932,7 +932,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 8)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -973,7 +973,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 24)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vmov.u16 q9, #6 \n\t"
- "vld3.16 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t"
-@@ -1064,7 +1064,7 @@ pyrUp8uHorizontalConvolution:
- for (; x < lim; x += 8)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.16 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.16 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -1210,7 +1210,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 4)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-@@ -1251,7 +1251,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 12)
- {
- internal::prefetch(lane + x + 3);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vmov.s32 q9, #6 \n\t"
- "vld3.32 {d0, d2, d4}, [%[in0]] /*v0*/ \n\t"
-@@ -1343,7 +1343,7 @@ pyrUp16sHorizontalConvolution:
- for (; x < lim; x += 4)
- {
- internal::prefetch(lane + x);
--#if defined(__GNUC__) && defined(__arm__)
-+#if !defined(__aarch64__) && defined(__GNUC__) && defined(__arm__)
- __asm__ (
- "vld1.32 {d0-d1}, [%[in0]] /*q0 = v0*/ \n\t"
- "vld1.32 {d2-d3}, [%[in2]] /*q1 = v2*/ \n\t"
-diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
-index 5695804fe4..8d3b6328b1 100644
---- a/3rdparty/carotene/src/scharr.cpp
-+++ b/3rdparty/carotene/src/scharr.cpp
-@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- internal::prefetch(srow0 + x);
- internal::prefetch(srow1 + x);
- internal::prefetch(srow2 + x);
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
- __asm__ (
- "vld1.8 {d0}, [%[src0]] \n\t"
- "vld1.8 {d2}, [%[src2]] \n\t"
-@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- x = 0;
- for( ; x < roiw8; x += 8 )
- {
--#if defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
- __asm__ (
- "vld1.16 {d4-d5}, [%[s2ptr]] \n\t"
- "vld1.16 {d8-d9}, [%[s4ptr]] \n\t"
---
-2.14.1
-
diff --git a/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch b/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
deleted file mode 100644
index 22e868a031..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0002-Do-not-enable-asm-with-clang.patch
+++ /dev/null
@@ -1,993 +0,0 @@
-From 333f60165b6737588eb975a5e4393d847011a1cd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 19 Sep 2017 18:07:35 -0700
-Subject: [PATCH 2/2] Do not enable asm with clang
-
-clang pretends to be gcc 4.2.0 which means we will
-use inline asm for no reason, instead of builtins
-on clang when possible.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Submitted
- 3rdparty/carotene/src/channel_extract.cpp | 4 +-
- 3rdparty/carotene/src/channels_combine.cpp | 2 +-
- 3rdparty/carotene/src/colorconvert.cpp | 78 +++++++++++++++---------------
- 3rdparty/carotene/src/convert.cpp | 54 ++++++++++-----------
- 3rdparty/carotene/src/convert_scale.cpp | 56 ++++++++++-----------
- 3rdparty/carotene/src/gaussian_blur.cpp | 2 +-
- 3rdparty/carotene/src/pyramid.cpp | 8 +--
- 3rdparty/carotene/src/scharr.cpp | 4 +-
- 8 files changed, 104 insertions(+), 104 deletions(-)
-
-diff --git a/3rdparty/carotene/src/channel_extract.cpp b/3rdparty/carotene/src/channel_extract.cpp
-index 8238a3ece8..ff4fb3770c 100644
---- a/3rdparty/carotene/src/channel_extract.cpp
-+++ b/3rdparty/carotene/src/channel_extract.cpp
-@@ -231,7 +231,7 @@ void extract4(const Size2D &size,
- srcStride == dst2Stride && \
- srcStride == dst3Stride &&
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define SPLIT_ASM2(sgn, bits) __asm__ ( \
- "vld2." #bits " {d0, d2}, [%[in0]] \n\t" \
-@@ -351,7 +351,7 @@ void extract4(const Size2D &size,
- } \
- }
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define ALPHA_QUAD(sgn, bits) { \
- internal::prefetch(src + sj); \
-diff --git a/3rdparty/carotene/src/channels_combine.cpp b/3rdparty/carotene/src/channels_combine.cpp
-index fc98fb9181..5d9251d51c 100644
---- a/3rdparty/carotene/src/channels_combine.cpp
-+++ b/3rdparty/carotene/src/channels_combine.cpp
-@@ -77,7 +77,7 @@ namespace CAROTENE_NS {
- dstStride == src2Stride && \
- dstStride == src3Stride &&
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define MERGE_ASM2(sgn, bits) __asm__ ( \
- "vld1." #bits " {d0-d1}, [%[in0]] \n\t" \
-diff --git a/3rdparty/carotene/src/colorconvert.cpp b/3rdparty/carotene/src/colorconvert.cpp
-index 26ae54b15c..d3a40fe64e 100644
---- a/3rdparty/carotene/src/colorconvert.cpp
-+++ b/3rdparty/carotene/src/colorconvert.cpp
-@@ -97,7 +97,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -116,7 +116,7 @@ void rgb2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -198,7 +198,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -217,7 +217,7 @@ void rgbx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -300,7 +300,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -319,7 +319,7 @@ void bgr2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 24, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -402,7 +402,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- const u32 G2Y = color_space == COLOR_SPACE_BT601 ? G2Y_BT601 : G2Y_BT709;
- const u32 B2Y = color_space == COLOR_SPACE_BT601 ? B2Y_BT601 : B2Y_BT709;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register int16x4_t v_r2y asm ("d31") = vmov_n_s16(R2Y);
- register int16x4_t v_g2y asm ("d30") = vmov_n_s16(G2Y);
- register int16x4_t v_b2y asm ("d29") = vmov_n_s16(B2Y);
-@@ -421,7 +421,7 @@ void bgrx2gray(const Size2D &size, COLOR_SPACE color_space,
- u8 * dst = internal::getRowPtr(dstBase, dstStride, i);
- size_t sj = 0u, dj = 0u;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- for (; dj < roiw8; sj += 32, dj += 8)
- {
- internal::prefetch(src + sj);
-@@ -512,7 +512,7 @@ void gray2rgb(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 48)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -538,7 +538,7 @@ void gray2rgb(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0}, [%[in]] \n\t"
- "vmov.8 d1, d0 \n\t"
-@@ -584,7 +584,7 @@ void gray2rgbx(const Size2D &size,
- size_t roiw16 = size.width >= 15 ? size.width - 15 : 0;
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register uint8x16_t vc255 asm ("q4") = vmovq_n_u8(255);
- #else
- uint8x16x4_t vRgba;
-@@ -602,7 +602,7 @@ void gray2rgbx(const Size2D &size,
- for (; sj < roiw16; sj += 16, dj += 64)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0-d1}, [%[in0]] \n\t"
- "vmov.8 q1, q0 \n\t"
-@@ -628,7 +628,7 @@ void gray2rgbx(const Size2D &size,
-
- if (sj < roiw8)
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d5}, [%[in]] \n\t"
- "vmov.8 d6, d5 \n\t"
-@@ -1409,7 +1409,7 @@ inline void convertToHSV(const s32 r, const s32 g, const s32 b,
- "d24","d25","d26","d27","d28","d29","d30","d31" \
- );
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
-
- #define YCRCB_CONSTS \
- register int16x4_t vcYR asm ("d31") = vmov_n_s16(4899); \
-@@ -1555,7 +1555,7 @@ inline uint8x8x3_t convertToYCrCb( const int16x8_t& vR, const int16x8_t& vG, con
- #define COEFF_G ( 8663)
- #define COEFF_B (-17705)
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- #define YUV420ALPHA3_CONST
- #define YUV420ALPHA4_CONST register uint8x16_t c255 asm ("q13") = vmovq_n_u8(255);
- #define YUV420ALPHA3_CONVERT
-@@ -1852,7 +1852,7 @@ void rgb2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1871,7 +1871,7 @@ void rgb2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d0, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -1904,7 +1904,7 @@ void rgbx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1923,7 +1923,7 @@ void rgbx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d0, d2)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -1956,7 +1956,7 @@ void bgr2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -1975,7 +1975,7 @@ void bgr2hsv(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld3.8 {d0-d2}, d2, d0)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2008,7 +2008,7 @@ void bgrx2hsv(const Size2D &size,
- #ifdef CAROTENE_NEON
- size_t roiw8 = size.width >= 7 ? size.width - 7 : 0;
- const s32 hsv_shift = 12;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register const f32 vsdiv_table = f32(255 << hsv_shift);
- register f32 vhdiv_table = f32(hrange << hsv_shift);
- register const s32 vhrange = hrange;
-@@ -2027,7 +2027,7 @@ void bgrx2hsv(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERT_TO_HSV_ASM(vld4.8 {d0-d3}, d2, d0)
- #else
- uint8x8x4_t vRgb = vld4_u8(src + sj);
-@@ -2068,7 +2068,7 @@ void rgbx2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld4.8 {d2, d4, d6, d8}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld4.8 {d3, d5, d7, d9}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2122,7 +2122,7 @@ void rgb2bgr565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld3.8 {d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 q4 \n\t"
- "vld3.8 {d3, d5, d7}, [%[in1]] @ xxxxxxxx rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2176,7 +2176,7 @@ void rgbx2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 64, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld4.8 {d0, d2, d4, d6}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld4.8 {d1, d3, d5, d7}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB aaaaAAAA \n\t"
-@@ -2230,7 +2230,7 @@ void rgb2rgb565(const Size2D &size,
- for (; j < roiw16; sj += 48, dj += 32, j += 16)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld3.8 {d0, d2, d4}, [%[in0]] @ q0 q1 q2 q3 \n\t"
- "vld3.8 {d1, d3, d5}, [%[in1]] @ rrrrRRRR ggggGGGG bbbbBBBB xxxxxxxx \n\t"
-@@ -2285,7 +2285,7 @@ void rgb2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d0, d1, d2)
- #else
- uint8x8x3_t vRgb = vld3_u8(src + sj);
-@@ -2329,7 +2329,7 @@ void rgbx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d0, d1, d2)
- #else
- uint8x8x4_t vRgba = vld4_u8(src + sj);
-@@ -2373,7 +2373,7 @@ void bgr2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 24, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld3.8 {d0-d2}, d2, d1, d0)
- #else
- uint8x8x3_t vBgr = vld3_u8(src + sj);
-@@ -2417,7 +2417,7 @@ void bgrx2ycrcb(const Size2D &size,
- for (; j < roiw8; sj += 32, dj += 24, j += 8)
- {
- internal::prefetch(src + sj);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTTOYCRCB(vld4.8 {d0-d3}, d2, d1, d0)
- #else
- uint8x8x4_t vBgra = vld4_u8(src + sj);
-@@ -2499,7 +2499,7 @@ void yuv420sp2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2545,7 +2545,7 @@ void yuv420sp2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d1, d0, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2591,7 +2591,7 @@ void yuv420i2rgb(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2637,7 +2637,7 @@ void yuv420i2rgbx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d0, d1, q5, q6)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2683,7 +2683,7 @@ void yuv420sp2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2729,7 +2729,7 @@ void yuv420sp2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d1, d0, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2775,7 +2775,7 @@ void yuv420i2bgr(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(3, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-@@ -2821,7 +2821,7 @@ void yuv420i2bgrx(const Size2D &size,
- internal::prefetch(uv + j);
- internal::prefetch(y1 + j);
- internal::prefetch(y2 + j);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CONVERTYUV420TORGB(4, d0, d1, q6, q5)
- #else
- convertYUV420.ToRGB(y1 + j, y2 + j, uv + j, dst1 + dj, dst2 + dj);
-diff --git a/3rdparty/carotene/src/convert.cpp b/3rdparty/carotene/src/convert.cpp
-index 64b6db78ab..f0c2d153f2 100644
---- a/3rdparty/carotene/src/convert.cpp
-+++ b/3rdparty/carotene/src/convert.cpp
-@@ -101,7 +101,7 @@ CVT_FUNC(u8, s8, 16,
- }
- })
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -135,7 +135,7 @@ CVT_FUNC(u8, u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u8, s32, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);
- register uint8x16_t zero1 asm ("q2") = vmovq_n_u8(0);
-@@ -173,7 +173,7 @@ CVT_FUNC(u8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u8, f32, 16,
- ,
- {
-@@ -248,7 +248,7 @@ CVT_FUNC(s8, u8, 16,
- }
- })
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s8, u16, 16,
- register uint8x16_t zero0 asm ("q1") = vmovq_n_u8(0);,
- {
-@@ -284,7 +284,7 @@ CVT_FUNC(s8, u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s8, s16, 16,
- ,
- {
-@@ -323,7 +323,7 @@ CVT_FUNC(s8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s8, s32, 16,
- ,
- {
-@@ -377,7 +377,7 @@ CVT_FUNC(s8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s8, f32, 16,
- ,
- {
-@@ -440,7 +440,7 @@ CVT_FUNC(s8, f32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, u8, 16,
- ,
- {
-@@ -479,7 +479,7 @@ CVT_FUNC(u16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, s8, 16,
- register uint8x16_t v127 asm ("q4") = vmovq_n_u8(127);,
- {
-@@ -522,7 +522,7 @@ CVT_FUNC(u16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u16, s16, 8,
- register uint16x8_t v32767 asm ("q4") = vmovq_n_u16(0x7FFF);,
- {
-@@ -555,7 +555,7 @@ CVT_FUNC(u16, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(u16, s32, 8,
- register uint16x8_t zero0 asm ("q1") = vmovq_n_u16(0);,
- {
-@@ -589,7 +589,7 @@ CVT_FUNC(u16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(u16, f32, 8,
- ,
- {
-@@ -633,7 +633,7 @@ CVT_FUNC(u16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, u8, 16,
- ,
- {
-@@ -672,7 +672,7 @@ CVT_FUNC(s16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, s8, 16,
- ,
- {
-@@ -711,7 +711,7 @@ CVT_FUNC(s16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVT_FUNC(s16, u16, 8,
- register int16x8_t vZero asm ("q4") = vmovq_n_s16(0);,
- {
-@@ -747,7 +747,7 @@ CVT_FUNC(s16, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, s32, 8,
- ,
- {
-@@ -786,7 +786,7 @@ CVT_FUNC(s16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s16, f32, 8,
- ,
- {
-@@ -829,7 +829,7 @@ CVT_FUNC(s16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, u8, 8,
- ,
- {
-@@ -870,7 +870,7 @@ CVT_FUNC(s32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, s8, 8,
- ,
- {
-@@ -911,7 +911,7 @@ CVT_FUNC(s32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, u16, 8,
- ,
- {
-@@ -950,7 +950,7 @@ CVT_FUNC(s32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, s16, 8,
- ,
- {
-@@ -989,7 +989,7 @@ CVT_FUNC(s32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(s32, f32, 8,
- ,
- {
-@@ -1034,7 +1034,7 @@ CVT_FUNC(s32, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, u8, 8,
- register float32x4_t vmult asm ("q0") = vdupq_n_f32((float)(1 << 16));
- register uint32x4_t vmask asm ("q1") = vdupq_n_u32(1<<16);,
-@@ -1101,7 +1101,7 @@ CVT_FUNC(f32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s8, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1153,7 +1153,7 @@ CVT_FUNC(f32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, u16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1212,7 +1212,7 @@ CVT_FUNC(f32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s16, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-@@ -1271,7 +1271,7 @@ CVT_FUNC(f32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- CVT_FUNC(f32, s32, 8,
- register float32x4_t vhalf asm ("q0") = vdupq_n_f32(0.5f);,
- {
-diff --git a/3rdparty/carotene/src/convert_scale.cpp b/3rdparty/carotene/src/convert_scale.cpp
-index ae41a985c8..d599d24c1e 100644
---- a/3rdparty/carotene/src/convert_scale.cpp
-+++ b/3rdparty/carotene/src/convert_scale.cpp
-@@ -473,7 +473,7 @@ CVTS_FUNC(u8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -562,7 +562,7 @@ CVTS_FUNC(u8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -985,7 +985,7 @@ CVTS_FUNC(s8, s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s8, s32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1074,7 +1074,7 @@ CVTS_FUNC(s8, s32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s8, f32, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1155,7 +1155,7 @@ CVTS_FUNC(s8, f32, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1214,7 +1214,7 @@ CVTS_FUNC(u16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1273,7 +1273,7 @@ CVTS_FUNC(u16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(u16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1330,7 +1330,7 @@ CVTS_FUNC1(u16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1387,7 +1387,7 @@ CVTS_FUNC(u16, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1443,7 +1443,7 @@ CVTS_FUNC(u16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(u16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1495,7 +1495,7 @@ CVTS_FUNC(u16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, u8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1554,7 +1554,7 @@ CVTS_FUNC(s16, u8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, s8, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1613,7 +1613,7 @@ CVTS_FUNC(s16, s8, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1670,7 +1670,7 @@ CVTS_FUNC(s16, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(s16, 16,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1727,7 +1727,7 @@ CVTS_FUNC1(s16, 16,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1783,7 +1783,7 @@ CVTS_FUNC(s16, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s16, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -1835,7 +1835,7 @@ CVTS_FUNC(s16, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1893,7 +1893,7 @@ CVTS_FUNC(s32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -1951,7 +1951,7 @@ CVTS_FUNC(s32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2007,7 +2007,7 @@ CVTS_FUNC(s32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2063,7 +2063,7 @@ CVTS_FUNC(s32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2118,7 +2118,7 @@ CVTS_FUNC1(s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(s32, f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-@@ -2169,7 +2169,7 @@ CVTS_FUNC(s32, f32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, u8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)((1 << 16)*alpha));
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)((1 << 16)*beta));
-@@ -2239,7 +2239,7 @@ CVTS_FUNC(f32, u8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s8, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2293,7 +2293,7 @@ CVTS_FUNC(f32, s8, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, u16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2345,7 +2345,7 @@ CVTS_FUNC(f32, u16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s16, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2397,7 +2397,7 @@ CVTS_FUNC(f32, s16, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC(f32, s32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta + 0.5f);,
-@@ -2448,7 +2448,7 @@ CVTS_FUNC(f32, s32, 8,
- })
- #endif
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- CVTS_FUNC1(f32, 8,
- register float32x4_t vscale asm ("q0") = vdupq_n_f32((f32)alpha);
- register float32x4_t vshift asm ("q1") = vdupq_n_f32((f32)beta);,
-diff --git a/3rdparty/carotene/src/gaussian_blur.cpp b/3rdparty/carotene/src/gaussian_blur.cpp
-index f7b5f18d79..e5aa8fc75b 100644
---- a/3rdparty/carotene/src/gaussian_blur.cpp
-+++ b/3rdparty/carotene/src/gaussian_blur.cpp
-@@ -327,7 +327,7 @@ void gaussianBlur5x5(const Size2D &size, s32 cn,
- u16* lidx1 = lane + x - 1*2;
- u16* lidx3 = lane + x + 1*2;
- u16* lidx4 = lane + x + 2*2;
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ __volatile__ (
- "vld2.16 {d0, d2}, [%[in0]]! \n\t"
- "vld2.16 {d1, d3}, [%[in0]] \n\t"
-diff --git a/3rdparty/carotene/src/pyramid.cpp b/3rdparty/carotene/src/pyramid.cpp
-index 232ccf3efd..d4e32ea50f 100644
---- a/3rdparty/carotene/src/pyramid.cpp
-+++ b/3rdparty/carotene/src/pyramid.cpp
-@@ -331,7 +331,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw8; x += 8)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld2.16 {d0-d3}, [%[in0]] \n\t"
- "vld2.16 {d4-d7}, [%[in4]] \n\t"
-@@ -538,7 +538,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d4-d7}, [%[in4]] \n\t"
-@@ -672,7 +672,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- std::vector<f32> _buf(cn*(srcSize.width + 4) + 32/sizeof(f32));
- f32* lane = internal::alignPtr(&_buf[2*cn], 32);
-
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- register float32x4_t vc6d4f32 asm ("q11") = vmovq_n_f32(1.5f); // 6/4
- register float32x4_t vc1d4f32 asm ("q12") = vmovq_n_f32(0.25f); // 1/4
-
-@@ -739,7 +739,7 @@ void gaussianPyramidDown(const Size2D &srcSize,
- for (; x < roiw4; x += 4)
- {
- internal::prefetch(lane + 2 * x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ __volatile__ (
- "vld2.32 {d0-d3}, [%[in0]] \n\t"
- "vld2.32 {d8-d11}, [%[in4]] \n\t"
-diff --git a/3rdparty/carotene/src/scharr.cpp b/3rdparty/carotene/src/scharr.cpp
-index 8d3b6328b1..36f6b2276e 100644
---- a/3rdparty/carotene/src/scharr.cpp
-+++ b/3rdparty/carotene/src/scharr.cpp
-@@ -109,7 +109,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- internal::prefetch(srow0 + x);
- internal::prefetch(srow1 + x);
- internal::prefetch(srow2 + x);
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 7 && !defined(__clang__)
- __asm__ (
- "vld1.8 {d0}, [%[src0]] \n\t"
- "vld1.8 {d2}, [%[src2]] \n\t"
-@@ -161,7 +161,7 @@ void ScharrDeriv(const Size2D &size, s32 cn,
- x = 0;
- for( ; x < roiw8; x += 8 )
- {
--#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6
-+#if !defined(__aarch64__) && defined(__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ < 6 && !defined(__clang__)
- __asm__ (
- "vld1.16 {d4-d5}, [%[s2ptr]] \n\t"
- "vld1.16 {d8-d9}, [%[s4ptr]] \n\t"
---
-2.14.1
-
diff --git a/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch b/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
deleted file mode 100644
index a845505a85..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0002-Make-opencv-ts-create-share-library-intead-of-static.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 350525293aef65490e80104ddd99e1b21c5d54b0 Mon Sep 17 00:00:00 2001
-From: Bian Naimeng <biannm@cn.fujitsu.com>
-Date: Wed, 19 Apr 2017 03:11:37 +0900
-Subject: [PATCH 2/3] Make opencv-ts create share library intead of static.
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- modules/ts/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/modules/ts/CMakeLists.txt b/modules/ts/CMakeLists.txt
-index f95bed079..ee67858df 100644
---- a/modules/ts/CMakeLists.txt
-+++ b/modules/ts/CMakeLists.txt
-@@ -4,7 +4,7 @@ if(NOT BUILD_opencv_ts AND NOT BUILD_TESTS AND NOT BUILD_PERF_TESTS)
- ocv_module_disable(ts)
- endif()
-
--set(OPENCV_MODULE_TYPE STATIC)
-+#set(OPENCV_MODULE_TYPE STATIC)
- set(OPENCV_MODULE_IS_PART_OF_WORLD FALSE)
-
- if(WINRT)
---
-2.13.4
-
diff --git a/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch b/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
deleted file mode 100644
index 39f33af9de..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0002-imgcodecs-refactoring-improve-code-quality.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3]
-
-Fix CVEs for opencv 3.3:
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 999f41fb4f4aa94a0cb47256919ae8b5c29ca5f3 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.a.alekhin@gmail.com>
-Date: Tue, 15 Aug 2017 22:04:55 +0000
-Subject: [PATCH 2/3] imgcodecs: refactoring, improve code quality
-
----
- modules/imgcodecs/src/bitstrm.cpp | 2 +
- modules/imgcodecs/src/bitstrm.hpp | 19 +++--
- modules/imgcodecs/src/grfmt_bmp.cpp | 13 ++-
- modules/imgcodecs/src/grfmt_pxm.cpp | 122 ++++++++++++++++-----------
- modules/imgcodecs/src/loadsave.cpp | 164 +++++++++++++++++++++++++++++-------
- 5 files changed, 231 insertions(+), 89 deletions(-)
-
-diff --git a/modules/imgcodecs/src/bitstrm.cpp b/modules/imgcodecs/src/bitstrm.cpp
-index a7e187fa0..0a8941aec 100644
---- a/modules/imgcodecs/src/bitstrm.cpp
-+++ b/modules/imgcodecs/src/bitstrm.cpp
-@@ -209,6 +209,8 @@ int RLByteStream::getByte()
- current = m_current;
- }
-
-+ CV_Assert(current < m_end);
-+
- val = *((uchar*)current);
- m_current = current + 1;
- return val;
-diff --git a/modules/imgcodecs/src/bitstrm.hpp b/modules/imgcodecs/src/bitstrm.hpp
-index 465c0a847..26947971f 100644
---- a/modules/imgcodecs/src/bitstrm.hpp
-+++ b/modules/imgcodecs/src/bitstrm.hpp
-@@ -48,13 +48,20 @@
- namespace cv
- {
-
--enum
--{
-- RBS_THROW_EOS=-123, // <end of stream> exception code
-- RBS_THROW_FORB=-124, // <forrbidden huffman code> exception code
-- RBS_HUFF_FORB=2047, // forrbidden huffman code "value"
-- RBS_BAD_HEADER=-125 // invalid header
-+#define DECLARE_RBS_EXCEPTION(name) \
-+class RBS_ ## name ## _Exception : public cv::Exception \
-+{ \
-+public: \
-+ RBS_ ## name ## _Exception(int code_, const String& err_, const String& func_, const String& file_, int line_) : \
-+ cv::Exception(code_, err_, func_, file_, line_) \
-+ {} \
- };
-+DECLARE_RBS_EXCEPTION(THROW_EOS)
-+#define RBS_THROW_EOS RBS_THROW_EOS_Exception(cv::Error::StsError, "Unexpected end of input stream", CV_Func, __FILE__, __LINE__)
-+DECLARE_RBS_EXCEPTION(THROW_FORB)
-+#define RBS_THROW_FORB RBS_THROW_FORB_Exception(cv::Error::StsError, "Forrbidden huffman code", CV_Func, __FILE__, __LINE__)
-+DECLARE_RBS_EXCEPTION(BAD_HEADER)
-+#define RBS_BAD_HEADER RBS_BAD_HEADER_Exception(cv::Error::StsError, "Invalid header", CV_Func, __FILE__, __LINE__)
-
- typedef unsigned long ulong;
-
-diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
-index 86cacd316..257f97c2d 100644
---- a/modules/imgcodecs/src/grfmt_bmp.cpp
-+++ b/modules/imgcodecs/src/grfmt_bmp.cpp
-@@ -118,8 +118,9 @@ bool BmpDecoder::readHeader()
-
- if( m_bpp <= 8 )
- {
-- memset( m_palette, 0, sizeof(m_palette));
-- m_strm.getBytes( m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
-+ CV_Assert(clrused < 256);
-+ memset(m_palette, 0, sizeof(m_palette));
-+ m_strm.getBytes(m_palette, (clrused == 0? 1<<m_bpp : clrused)*4 );
- iscolor = IsColorPalette( m_palette, m_bpp );
- }
- else if( m_bpp == 16 && m_rle_code == BMP_BITFIELDS )
-@@ -290,7 +291,9 @@ bool BmpDecoder::readData( Mat& img )
- else if( code > 2 ) // absolute mode
- {
- if( data + code*nch > line_end ) goto decode_rle4_bad;
-- m_strm.getBytes( src, (((code + 1)>>1) + 1) & -2 );
-+ int sz = (((code + 1)>>1) + 1) & (~1);
-+ CV_Assert((size_t)sz < _src.size());
-+ m_strm.getBytes(src, sz);
- if( color )
- data = FillColorRow4( data, src, code, m_palette );
- else
-@@ -379,7 +382,9 @@ decode_rle4_bad: ;
-
- if( data + code3 > line_end )
- goto decode_rle8_bad;
-- m_strm.getBytes( src, (code + 1) & -2 );
-+ int sz = (code + 1) & (~1);
-+ CV_Assert((size_t)sz < _src.size());
-+ m_strm.getBytes(src, sz);
- if( color )
- data = FillColorRow8( data, src, code, m_palette );
- else
-diff --git a/modules/imgcodecs/src/grfmt_pxm.cpp b/modules/imgcodecs/src/grfmt_pxm.cpp
-index 1750cb705..68bd8fd93 100644
---- a/modules/imgcodecs/src/grfmt_pxm.cpp
-+++ b/modules/imgcodecs/src/grfmt_pxm.cpp
-@@ -43,50 +43,58 @@
- #include "precomp.hpp"
- #include "utils.hpp"
- #include "grfmt_pxm.hpp"
-+#include <iostream>
-
- namespace cv
- {
-
- ///////////////////////// P?M reader //////////////////////////////
-
--static int ReadNumber( RLByteStream& strm, int maxdigits )
-+static int ReadNumber(RLByteStream& strm, int maxdigits = 0)
- {
- int code;
-- int val = 0;
-+ int64 val = 0;
- int digits = 0;
-
- code = strm.getByte();
-
-- if( !isdigit(code))
-+ while (!isdigit(code))
- {
-- do
-+ if (code == '#' )
- {
-- if( code == '#' )
-+ do
- {
-- do
-- {
-- code = strm.getByte();
-- }
-- while( code != '\n' && code != '\r' );
-+ code = strm.getByte();
- }
--
-+ while (code != '\n' && code != '\r');
- code = strm.getByte();
--
-- while( isspace(code))
-+ }
-+ else if (isspace(code))
-+ {
-+ while (isspace(code))
- code = strm.getByte();
- }
-- while( !isdigit( code ));
-+ else
-+ {
-+#if 1
-+ CV_ErrorNoReturn_(Error::StsError, ("PXM: Unexpected code in ReadNumber(): 0x%x (%d)", code, code));
-+#else
-+ code = strm.getByte();
-+#endif
-+ }
- }
-
- do
- {
-- val = val*10 + code - '0';
-- if( ++digits >= maxdigits ) break;
-+ val = val*10 + (code - '0');
-+ CV_Assert(val <= INT_MAX && "PXM: ReadNumber(): result is too large");
-+ digits++;
-+ if (maxdigits != 0 && digits >= maxdigits) break;
- code = strm.getByte();
- }
-- while( isdigit(code));
-+ while (isdigit(code));
-
-- return val;
-+ return (int)val;
- }
-
-
-@@ -122,13 +130,13 @@ ImageDecoder PxMDecoder::newDecoder() const
- return makePtr<PxMDecoder>();
- }
-
--void PxMDecoder::close()
-+void PxMDecoder::close()
- {
- m_strm.close();
- }
-
-
--bool PxMDecoder::readHeader()
-+bool PxMDecoder::readHeader()
- {
- bool result = false;
-
-@@ -158,10 +166,10 @@ bool PxMDecoder::readHeader()
- m_binary = code >= '4';
- m_type = m_bpp > 8 ? CV_8UC3 : CV_8UC1;
-
-- m_width = ReadNumber( m_strm, INT_MAX );
-- m_height = ReadNumber( m_strm, INT_MAX );
-+ m_width = ReadNumber(m_strm);
-+ m_height = ReadNumber(m_strm);
-
-- m_maxval = m_bpp == 1 ? 1 : ReadNumber( m_strm, INT_MAX );
-+ m_maxval = m_bpp == 1 ? 1 : ReadNumber(m_strm);
- if( m_maxval > 65535 )
- throw RBS_BAD_HEADER;
-
-@@ -175,8 +183,14 @@ bool PxMDecoder::readHeader()
- result = true;
- }
- }
-- catch(...)
-+ catch (const cv::Exception&)
-+ {
-+ throw;
-+ }
-+ catch (...)
- {
-+ std::cerr << "PXM::readHeader(): unknown C++ exception" << std::endl << std::flush;
-+ throw;
- }
-
- if( !result )
-@@ -189,33 +203,28 @@ bool PxMDecoder::readHeader()
- }
-
-
--bool PxMDecoder::readData( Mat& img )
-+bool PxMDecoder::readData( Mat& img )
- {
- int color = img.channels() > 1;
- uchar* data = img.ptr();
- PaletteEntry palette[256];
- bool result = false;
-- int bit_depth = CV_ELEM_SIZE1(m_type)*8;
-- int src_pitch = (m_width*m_bpp*bit_depth/8 + 7)/8;
-+ const int bit_depth = CV_ELEM_SIZE1(m_type)*8;
-+ const int src_pitch = divUp(m_width*m_bpp*(bit_depth/8), 8);
- int nch = CV_MAT_CN(m_type);
- int width3 = m_width*nch;
-- int i, x, y;
-
- if( m_offset < 0 || !m_strm.isOpened())
- return false;
-
-- AutoBuffer<uchar> _src(src_pitch + 32);
-- uchar* src = _src;
-- AutoBuffer<uchar> _gray_palette;
-- uchar* gray_palette = _gray_palette;
-+ uchar gray_palette[256] = {0};
-
- // create LUT for converting colors
- if( bit_depth == 8 )
- {
-- _gray_palette.allocate(m_maxval + 1);
-- gray_palette = _gray_palette;
-+ CV_Assert(m_maxval < 256);
-
-- for( i = 0; i <= m_maxval; i++ )
-+ for (int i = 0; i <= m_maxval; i++)
- gray_palette[i] = (uchar)((i*255/m_maxval)^(m_bpp == 1 ? 255 : 0));
-
- FillGrayPalette( palette, m_bpp==1 ? 1 : 8 , m_bpp == 1 );
-@@ -229,12 +238,16 @@ bool PxMDecoder::readData( Mat& img )
- {
- ////////////////////////// 1 BPP /////////////////////////
- case 1:
-+ CV_Assert(CV_MAT_DEPTH(m_type) == CV_8U);
- if( !m_binary )
- {
-- for( y = 0; y < m_height; y++, data += img.step )
-+ AutoBuffer<uchar> _src(m_width);
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
-- for( x = 0; x < m_width; x++ )
-- src[x] = ReadNumber( m_strm, 1 ) != 0;
-+ for (int x = 0; x < m_width; x++)
-+ src[x] = ReadNumber(m_strm, 1) != 0;
-
- if( color )
- FillColorRow8( data, src, m_width, palette );
-@@ -244,7 +257,10 @@ bool PxMDecoder::readData( Mat& img )
- }
- else
- {
-- for( y = 0; y < m_height; y++, data += img.step )
-+ AutoBuffer<uchar> _src(src_pitch);
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
- m_strm.getBytes( src, src_pitch );
-
-@@ -260,13 +276,17 @@ bool PxMDecoder::readData( Mat& img )
- ////////////////////////// 8 BPP /////////////////////////
- case 8:
- case 24:
-- for( y = 0; y < m_height; y++, data += img.step )
-+ {
-+ AutoBuffer<uchar> _src(std::max<size_t>(width3*2, src_pitch));
-+ uchar* src = _src;
-+
-+ for (int y = 0; y < m_height; y++, data += img.step)
- {
- if( !m_binary )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
-- int code = ReadNumber( m_strm, INT_MAX );
-+ int code = ReadNumber(m_strm);
- if( (unsigned)code > (unsigned)m_maxval ) code = m_maxval;
- if( bit_depth == 8 )
- src[x] = gray_palette[code];
-@@ -279,7 +299,7 @@ bool PxMDecoder::readData( Mat& img )
- m_strm.getBytes( src, src_pitch );
- if( bit_depth == 16 && !isBigEndian() )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
- uchar v = src[x * 2];
- src[x * 2] = src[x * 2 + 1];
-@@ -290,7 +310,7 @@ bool PxMDecoder::readData( Mat& img )
-
- if( img.depth() == CV_8U && bit_depth == 16 )
- {
-- for( x = 0; x < width3; x++ )
-+ for (int x = 0; x < width3; x++)
- {
- int v = ((ushort *)src)[x];
- src[x] = (uchar)(v >> 8);
-@@ -331,12 +351,19 @@ bool PxMDecoder::readData( Mat& img )
- }
- result = true;
- break;
-+ }
- default:
-- assert(0);
-+ CV_ErrorNoReturn(Error::StsError, "m_bpp is not supported");
- }
- }
-- catch(...)
-+ catch (const cv::Exception&)
-+ {
-+ throw;
-+ }
-+ catch (...)
- {
-+ std::cerr << "PXM::readData(): unknown exception" << std::endl << std::flush;
-+ throw;
- }
-
- return result;
-@@ -412,8 +439,9 @@ bool PxMEncoder::write( const Mat& img, const std::vector<int>& params )
- char* buffer = _buffer;
-
- // write header;
-- sprintf( buffer, "P%c\n%d %d\n%d\n",
-+ sprintf( buffer, "P%c\n# Generated by OpenCV %s\n%d %d\n%d\n",
- '2' + (channels > 1 ? 1 : 0) + (isBinary ? 3 : 0),
-+ CV_VERSION,
- width, height, (1 << depth) - 1 );
-
- strm.putBytes( buffer, (int)strlen(buffer) );
-diff --git a/modules/imgcodecs/src/loadsave.cpp b/modules/imgcodecs/src/loadsave.cpp
-index 3b2366217..5ee4ca354 100644
---- a/modules/imgcodecs/src/loadsave.cpp
-+++ b/modules/imgcodecs/src/loadsave.cpp
-@@ -55,6 +55,27 @@
- /****************************************************************************************\
- * Image Codecs *
- \****************************************************************************************/
-+
-+namespace cv {
-+
-+// TODO Add runtime configuration
-+#define CV_IO_MAX_IMAGE_PARAMS (50)
-+#define CV_IO_MAX_IMAGE_WIDTH (1<<20)
-+#define CV_IO_MAX_IMAGE_HEIGHT (1<<20)
-+#define CV_IO_MAX_IMAGE_PIXELS (1<<30) // 1 Gigapixel
-+
-+static Size validateInputImageSize(const Size& size)
-+{
-+ CV_Assert(size.width > 0);
-+ CV_Assert(size.width <= CV_IO_MAX_IMAGE_WIDTH);
-+ CV_Assert(size.height > 0);
-+ CV_Assert(size.height <= CV_IO_MAX_IMAGE_HEIGHT);
-+ uint64 pixels = (uint64)size.width * (uint64)size.height;
-+ CV_Assert(pixels <= CV_IO_MAX_IMAGE_PIXELS);
-+ return size;
-+}
-+
-+
- namespace {
-
- class ByteStreamBuffer: public std::streambuf
-@@ -94,9 +115,6 @@ protected:
-
- }
-
--namespace cv
--{
--
- /**
- * @struct ImageCodecInitializer
- *
-@@ -408,14 +426,26 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
- /// set the filename in the driver
- decoder->setSource( filename );
-
-- // read the header to make sure it succeeds
-- if( !decoder->readHeader() )
-+ try
-+ {
-+ // read the header to make sure it succeeds
-+ if( !decoder->readHeader() )
-+ return 0;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
- return 0;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ return 0;
-+ }
-+
-
- // established the required input image size
-- CvSize size;
-- size.width = decoder->width();
-- size.height = decoder->height();
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-
- // grab the decoded type
- int type = decoder->type();
-@@ -451,7 +481,21 @@ imread_( const String& filename, int flags, int hdrtype, Mat* mat=0 )
- }
-
- // read the image data
-- if( !decoder->readData( *data ))
-+ bool success = false;
-+ try
-+ {
-+ if (decoder->readData(*data))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imread_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- {
- cvReleaseImage( &image );
- cvReleaseMat( &matrix );
-@@ -504,8 +548,22 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
- decoder->setSource(filename);
-
- // read the header to make sure it succeeds
-- if (!decoder->readHeader())
-+ try
-+ {
-+ // read the header to make sure it succeeds
-+ if( !decoder->readHeader() )
-+ return 0;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
- return 0;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ return 0;
-+ }
-
- for (;;)
- {
-@@ -523,17 +581,32 @@ imreadmulti_(const String& filename, int flags, std::vector<Mat>& mats)
- type = CV_MAKETYPE(CV_MAT_DEPTH(type), 1);
- }
-
-+ // established the required input image size
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-+
- // read the image data
-- Mat mat(decoder->height(), decoder->width(), type);
-- if (!decoder->readData(mat))
-+ Mat mat(size.height, size.width, type);
-+ bool success = false;
-+ try
- {
-- // optionally rotate the data if EXIF' orientation flag says so
-- if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
-- {
-- ApplyExifOrientation(filename, mat);
-- }
--
-+ if (decoder->readData(mat))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imreadmulti_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- break;
-+
-+ // optionally rotate the data if EXIF' orientation flag says so
-+ if( (flags & IMREAD_IGNORE_ORIENTATION) == 0 && flags != IMREAD_UNCHANGED )
-+ {
-+ ApplyExifOrientation(filename, mat);
- }
-
- mats.push_back(mat);
-@@ -616,6 +689,7 @@ static bool imwrite_( const String& filename, const Mat& image,
- }
-
- encoder->setDestination( filename );
-+ CV_Assert(params.size() <= CV_IO_MAX_IMAGE_PARAMS*2);
- bool code = encoder->write( *pimage, params );
-
- // CV_Assert( code );
-@@ -663,22 +737,35 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
- decoder->setSource(filename);
- }
-
-- if( !decoder->readHeader() )
-+ bool success = false;
-+ try
-+ {
-+ if (decoder->readHeader())
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read header: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read header: unknown exception" << std::endl << std::flush;
-+ }
-+ if (!success)
- {
- decoder.release();
-- if ( !filename.empty() )
-+ if (!filename.empty())
- {
-- if ( remove(filename.c_str()) != 0 )
-+ if (0 != remove(filename.c_str()))
- {
-- CV_Error( CV_StsError, "unable to remove temporary file" );
-+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
- }
- }
- return 0;
- }
-
-- CvSize size;
-- size.width = decoder->width();
-- size.height = decoder->height();
-+ // established the required input image size
-+ Size size = validateInputImageSize(Size(decoder->width(), decoder->height()));
-
- int type = decoder->type();
- if( (flags & IMREAD_LOAD_GDAL) != IMREAD_LOAD_GDAL && flags != IMREAD_UNCHANGED )
-@@ -712,17 +799,30 @@ imdecode_( const Mat& buf, int flags, int hdrtype, Mat* mat=0 )
- temp = cvarrToMat(image);
- }
-
-- bool code = decoder->readData( *data );
-+ success = false;
-+ try
-+ {
-+ if (decoder->readData(*data))
-+ success = true;
-+ }
-+ catch (const cv::Exception& e)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read data: " << e.what() << std::endl << std::flush;
-+ }
-+ catch (...)
-+ {
-+ std::cerr << "imdecode_('" << filename << "'): can't read data: unknown exception" << std::endl << std::flush;
-+ }
- decoder.release();
-- if ( !filename.empty() )
-+ if (!filename.empty())
- {
-- if ( remove(filename.c_str()) != 0 )
-+ if (0 != remove(filename.c_str()))
- {
-- CV_Error( CV_StsError, "unable to remove temporary file" );
-+ std::cerr << "unable to remove temporary file:" << filename << std::endl << std::flush;
- }
- }
-
-- if( !code )
-+ if (!success)
- {
- cvReleaseImage( &image );
- cvReleaseMat( &matrix );
-@@ -859,7 +959,7 @@ cvSaveImage( const char* filename, const CvArr* arr, const int* _params )
- if( _params )
- {
- for( ; _params[i] > 0; i += 2 )
-- ;
-+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
- }
- return cv::imwrite_(filename, cv::cvarrToMat(arr),
- i > 0 ? std::vector<int>(_params, _params+i) : std::vector<int>(),
-@@ -890,7 +990,7 @@ cvEncodeImage( const char* ext, const CvArr* arr, const int* _params )
- if( _params )
- {
- for( ; _params[i] > 0; i += 2 )
-- ;
-+ CV_Assert(i < CV_IO_MAX_IMAGE_PARAMS*2); // Limit number of params for security reasons
- }
- cv::Mat img = cv::cvarrToMat(arr);
- if( CV_IS_IMAGE(arr) && ((const IplImage*)arr)->origin == IPL_ORIGIN_BL )
---
-2.14.1
-
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 a22b04a905..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
@@ -1,7 +1,7 @@
-From ace48a628dca34d742615598afeef42ed323a029 Mon Sep 17 00:00:00 2001
+From f42c9b8c7bafcadc7e95fb25a391707f970eb426 Mon Sep 17 00:00:00 2001
From: Huang Qiyu <huangqy.fnst@cn.fujitsu.com>
Date: Fri, 19 May 2017 04:27:50 +0900
-Subject: [PATCH 3/3] To fix errors as following:
+Subject: [PATCH] To fix errors as following:
"test_main.cpp:45: undefined reference to `parseCustomOptions(int, char**)'"
"perf_abs.cpp:13: undefined reference to `cvtest::param_seed'"
@@ -13,35 +13,30 @@ Also add the visibility changes for certain OpenCL-related functions in
ts module.
Signed-off-by: Ismo Puustinen <ismo.puustinen@intel.com>
+
---
- modules/ts/include/opencv2/ts.hpp | 6 +++---
+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 +-
- 3 files changed, 5 insertions(+), 5 deletions(-)
+ 3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/ts/include/opencv2/ts.hpp b/modules/ts/include/opencv2/ts.hpp
-index 41a76b13e..205646140 100644
+index ed7491a89a..80919d13ee 100644
--- a/modules/ts/include/opencv2/ts.hpp
+++ b/modules/ts/include/opencv2/ts.hpp
-@@ -555,7 +555,7 @@ protected:
+@@ -728,7 +728,7 @@ protected:
}
};
-extern uint64 param_seed;
+CV_EXPORTS extern uint64 param_seed;
- struct CV_EXPORTS DefaultRngAuto
+ struct DefaultRngAuto
{
-@@ -611,14 +611,14 @@ CV_EXPORTS std::string findDataFile(const std::string& relative_path, bool requi
-
- #ifdef HAVE_OPENCL
- namespace ocl {
--void dumpOpenCLDevice();
-+CV_EXPORTS void dumpOpenCLDevice();
- }
- #define TEST_DUMP_OCL_INFO cvtest::ocl::dumpOpenCLDevice();
- #else
- #define TEST_DUMP_OCL_INFO
+@@ -791,7 +791,7 @@ private:
+ #endif
#endif
-void parseCustomOptions(int argc, char **argv);
@@ -50,7 +45,7 @@ index 41a76b13e..205646140 100644
#define CV_TEST_INIT0_NOOP (void)0
diff --git a/modules/ts/include/opencv2/ts/ocl_test.hpp b/modules/ts/include/opencv2/ts/ocl_test.hpp
-index 54b33ece8..ef56bf9ef 100644
+index 11572e9f48..438112e2aa 100644
--- a/modules/ts/include/opencv2/ts/ocl_test.hpp
+++ b/modules/ts/include/opencv2/ts/ocl_test.hpp
@@ -82,7 +82,7 @@ inline UMat ToUMat(InputArray src)
@@ -63,7 +58,7 @@ index 54b33ece8..ef56bf9ef 100644
#define MAX_VALUE 357
diff --git a/modules/ts/include/opencv2/ts/ts_ext.hpp b/modules/ts/include/opencv2/ts/ts_ext.hpp
-index 0bdd346dd..2cd34dfce 100644
+index b2a4cac241..b94c681c0c 100644
--- a/modules/ts/include/opencv2/ts/ts_ext.hpp
+++ b/modules/ts/include/opencv2/ts/ts_ext.hpp
@@ -9,7 +9,7 @@
@@ -72,9 +67,6 @@ index 0bdd346dd..2cd34dfce 100644
namespace cvtest {
-void checkIppStatus();
+CV_EXPORTS void checkIppStatus();
- }
-
- #define CV_TEST_INIT \
---
-2.13.4
-
+ extern bool skipUnstableTests;
+ extern bool runBigDataTests;
+ extern int testThreads;
diff --git a/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch b/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
deleted file mode 100644
index 5f4a60c960..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/0003-imgproc-test-add-checks-for-remove-call.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9376/commits/78a310630fb0a1f6d089576202343e672f27609d]
-
-Fix CVEs for opencv 3.3.
-
-* CVE-2017-12597
-* CVE-2017-12598
-* CVE-2017-12599
-* CVE-2017-12600
-* CVE-2017-12601
-* CVE-2017-12602
-* CVE-2017-12603
-* CVE-2017-12604
-* CVE-2017-12605
-* CVE-2017-12606
-* CVE-2017-12862
-* CVE-2017-12863
-* CVE-2017-12864
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From 78a310630fb0a1f6d089576202343e672f27609d Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 16 Aug 2017 13:53:12 +0300
-Subject: [PATCH 3/3] imgproc(test): add checks for remove() call
-
----
- modules/imgcodecs/test/test_grfmt.cpp | 2 +-
- modules/imgcodecs/test/test_jpeg.cpp | 12 ++++++------
- modules/imgcodecs/test/test_png.cpp | 2 +-
- modules/imgcodecs/test/test_read_write.cpp | 4 ++--
- modules/imgcodecs/test/test_tiff.cpp | 8 ++++----
- modules/imgcodecs/test/test_webp.cpp | 6 +++---
- 6 files changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/modules/imgcodecs/test/test_grfmt.cpp b/modules/imgcodecs/test/test_grfmt.cpp
-index 64a0c1e3a..74b72c3b3 100644
---- a/modules/imgcodecs/test/test_grfmt.cpp
-+++ b/modules/imgcodecs/test/test_grfmt.cpp
-@@ -175,7 +175,7 @@ TEST_P(Imgcodecs_ExtSize, write_imageseq)
- EXPECT_LT(n, 1.);
- EXPECT_PRED_FORMAT2(cvtest::MatComparator(0, 0), img, img_gt);
- }
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
- }
-
-diff --git a/modules/imgcodecs/test/test_jpeg.cpp b/modules/imgcodecs/test/test_jpeg.cpp
-index 5546f2d91..6ddb02840 100644
---- a/modules/imgcodecs/test/test_jpeg.cpp
-+++ b/modules/imgcodecs/test/test_jpeg.cpp
-@@ -123,8 +123,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_progressive_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_progressive, img_jpg_normal, NORM_INF));
-
-- remove(output_progressive.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_progressive.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
-@@ -148,8 +148,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_optimize_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_optimized, img_jpg_normal, NORM_INF));
-
-- remove(output_optimized.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_optimized.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
-@@ -173,8 +173,8 @@ TEST(Imgcodecs_Jpeg, encode_decode_rst_jpeg)
-
- EXPECT_EQ(0, cvtest::norm(img_jpg_rst, img_jpg_normal, NORM_INF));
-
-- remove(output_rst.c_str());
-- remove(output_normal.c_str());
-+ EXPECT_EQ(0, remove(output_rst.c_str()));
-+ EXPECT_EQ(0, remove(output_normal.c_str()));
- }
-
- #endif // HAVE_JPEG
-diff --git a/modules/imgcodecs/test/test_png.cpp b/modules/imgcodecs/test/test_png.cpp
-index c46f90119..4e97043e1 100644
---- a/modules/imgcodecs/test/test_png.cpp
-+++ b/modules/imgcodecs/test/test_png.cpp
-@@ -17,7 +17,7 @@ TEST(Imgcodecs_Png, write_big)
- EXPECT_EQ(13043, img.cols);
- EXPECT_EQ(13917, img.rows);
- ASSERT_NO_THROW(imwrite(dst_file, img));
-- remove(dst_file.c_str());
-+ EXPECT_EQ(0, remove(dst_file.c_str()));
- }
-
- TEST(Imgcodecs_Png, encode)
-diff --git a/modules/imgcodecs/test/test_read_write.cpp b/modules/imgcodecs/test/test_read_write.cpp
-index 38f10225f..5119813bf 100644
---- a/modules/imgcodecs/test/test_read_write.cpp
-+++ b/modules/imgcodecs/test/test_read_write.cpp
-@@ -50,7 +50,7 @@ TEST(Imgcodecs_Image, read_write_bmp)
- psnr = cvtest::PSNR(buf_loaded, image);
- EXPECT_GT(psnr, thresDbell);
-
-- remove(dst_name.c_str());
-+ EXPECT_EQ(0, remove(dst_name.c_str()));
- }
- }
-
-@@ -95,7 +95,7 @@ TEST_P(Imgcodecs_Image, read_write)
- psnr = cvtest::PSNR(buf_loaded, image);
- EXPECT_GT(psnr, thresDbell);
-
-- remove(full_name.c_str());
-+ EXPECT_EQ(0, remove(full_name.c_str()));
- }
-
- const string exts[] = {
-diff --git a/modules/imgcodecs/test/test_tiff.cpp b/modules/imgcodecs/test/test_tiff.cpp
-index 0264da4cd..6ef0c1748 100644
---- a/modules/imgcodecs/test/test_tiff.cpp
-+++ b/modules/imgcodecs/test/test_tiff.cpp
-@@ -41,8 +41,8 @@ TEST(Imgcodecs_Tiff, decode_tile16384x16384)
- // not enough memory
- }
-
-- remove(file3.c_str());
-- remove(file4.c_str());
-+ EXPECT_EQ(0, remove(file3.c_str()));
-+ EXPECT_EQ(0, remove(file4.c_str()));
- }
-
- TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
-@@ -88,7 +88,7 @@ TEST(Imgcodecs_Tiff, write_read_16bit_big_little_endian)
- EXPECT_EQ(0xDEAD, img.at<ushort>(0,0));
- EXPECT_EQ(0xBEEF, img.at<ushort>(0,1));
-
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
- }
-
-@@ -143,7 +143,7 @@ TEST(Imgcodecs_Tiff, decode_infinite_rowsperstrip)
-
- EXPECT_NO_THROW(cv::imread(filename, IMREAD_UNCHANGED));
-
-- remove(filename.c_str());
-+ EXPECT_EQ(0, remove(filename.c_str()));
- }
-
- //==================================================================================================
-diff --git a/modules/imgcodecs/test/test_webp.cpp b/modules/imgcodecs/test/test_webp.cpp
-index 6d40ce21e..d82fdd289 100644
---- a/modules/imgcodecs/test/test_webp.cpp
-+++ b/modules/imgcodecs/test/test_webp.cpp
-@@ -44,7 +44,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossless_webp)
- }
- }
-
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
-
- cv::Mat decode = cv::imdecode(buf, IMREAD_COLOR);
- ASSERT_FALSE(decode.empty());
-@@ -71,7 +71,7 @@ TEST(Imgcodecs_WebP, encode_decode_lossy_webp)
-
- EXPECT_NO_THROW(cv::imwrite(output, img, params));
- cv::Mat img_webp = cv::imread(output);
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
- EXPECT_FALSE(img_webp.empty());
- EXPECT_EQ(3, img_webp.channels());
- EXPECT_EQ(512, img_webp.cols);
-@@ -96,7 +96,7 @@ TEST(Imgcodecs_WebP, encode_decode_with_alpha_webp)
-
- EXPECT_NO_THROW(cv::imwrite(output, img));
- cv::Mat img_webp = cv::imread(output);
-- remove(output.c_str());
-+ EXPECT_EQ(0, remove(output.c_str()));
- EXPECT_FALSE(img_webp.empty());
- EXPECT_EQ(4, img_webp.channels());
- EXPECT_EQ(512, img_webp.cols);
---
-2.14.1
-
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/CVE-2017-14136.patch b/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
deleted file mode 100644
index 7ad50a2d2f..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/CVE-2017-14136.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-Upstream-Status: Backport [https://github.com/opencv/opencv/pull/9448/commits/aacae20]
-
-Backport patch to fix CVE-2017-14136.
-
-Ref: https://github.com/opencv/opencv/issues/9443
-
-Signed-off-by: Kai Kang <kai.kang@windriver.com>
----
-From aacae2065744adb05e858d327198c7bbe7f452b0 Mon Sep 17 00:00:00 2001
-From: Alexander Alekhin <alexander.alekhin@intel.com>
-Date: Wed, 23 Aug 2017 15:15:27 +0300
-Subject: [PATCH] imgcodesc: fix code problems with integer overflow / address
- arithmetic / UB
-
----
- modules/imgcodecs/src/grfmt_bmp.cpp | 8 ++---
- modules/imgcodecs/src/grfmt_exr.cpp | 10 +++----
- modules/imgcodecs/src/grfmt_jpeg.cpp | 2 +-
- modules/imgcodecs/src/grfmt_jpeg2000.cpp | 6 ++--
- modules/imgcodecs/src/grfmt_pam.cpp | 2 +-
- modules/imgcodecs/src/grfmt_sunras.cpp | 6 ++--
- modules/imgcodecs/src/utils.cpp | 51 +++++++++++++++++++-------------
- modules/imgcodecs/src/utils.hpp | 2 ++
- 8 files changed, 50 insertions(+), 37 deletions(-)
-
-diff --git a/modules/imgcodecs/src/grfmt_bmp.cpp b/modules/imgcodecs/src/grfmt_bmp.cpp
-index 257f97c2d8b..69768e276a3 100644
---- a/modules/imgcodecs/src/grfmt_bmp.cpp
-+++ b/modules/imgcodecs/src/grfmt_bmp.cpp
-@@ -193,7 +193,7 @@ bool BmpDecoder::readHeader()
- bool BmpDecoder::readData( Mat& img )
- {
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ int step = validateToInt(img.step);
- bool color = img.channels() > 1;
- uchar gray_palette[256] = {0};
- bool result = false;
-@@ -206,7 +206,7 @@ bool BmpDecoder::readData( Mat& img )
-
- if( m_origin == IPL_ORIGIN_BL )
- {
-- data += (m_height - 1)*step;
-+ data += (m_height - 1)*(size_t)step;
- step = -step;
- }
-
-@@ -530,7 +530,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector<int>& )
- int bitmapHeaderSize = 40;
- int paletteSize = channels > 1 ? 0 : 1024;
- int headerSize = 14 /* fileheader */ + bitmapHeaderSize + paletteSize;
-- int fileSize = fileStep*height + headerSize;
-+ size_t fileSize = (size_t)fileStep*height + headerSize;
- PaletteEntry palette[256];
-
- if( m_buf )
-@@ -540,7 +540,7 @@ bool BmpEncoder::write( const Mat& img, const std::vector<int>& )
- strm.putBytes( fmtSignBmp, (int)strlen(fmtSignBmp) );
-
- // write file header
-- strm.putDWord( fileSize ); // file size
-+ strm.putDWord( validateToInt(fileSize) ); // file size
- strm.putDWord( 0 );
- strm.putDWord( headerSize );
-
-diff --git a/modules/imgcodecs/src/grfmt_exr.cpp b/modules/imgcodecs/src/grfmt_exr.cpp
-index 0d2ae9fa7d2..78ffe6c7668 100644
---- a/modules/imgcodecs/src/grfmt_exr.cpp
-+++ b/modules/imgcodecs/src/grfmt_exr.cpp
-@@ -195,7 +195,7 @@ bool ExrDecoder::readData( Mat& img )
- bool color = img.channels() > 1;
-
- uchar* data = img.ptr();
-- int step = img.step;
-+ size_t step = img.step;
- bool justcopy = m_native_depth;
- bool chromatorgb = false;
- bool rgbtogray = false;
-@@ -203,8 +203,8 @@ bool ExrDecoder::readData( Mat& img )
- FrameBuffer frame;
- int xsample[3] = {1, 1, 1};
- char *buffer;
-- int xstep;
-- int ystep;
-+ size_t xstep = 0;
-+ size_t ystep = 0;
-
- xstep = m_native_depth ? 4 : 1;
-
-@@ -593,7 +593,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
- bool issigned = depth == CV_8S || depth == CV_16S || depth == CV_32S;
- bool isfloat = depth == CV_32F || depth == CV_64F;
- depth = CV_ELEM_SIZE1(depth)*8;
-- const int step = img.step;
-+ const size_t step = img.step;
-
- Header header( width, height );
- Imf::PixelType type;
-@@ -623,7 +623,7 @@ bool ExrEncoder::write( const Mat& img, const std::vector<int>& )
- FrameBuffer frame;
-
- char *buffer;
-- int bufferstep;
-+ size_t bufferstep;
- int size;
- if( type == FLOAT && depth == 32 )
- {
-diff --git a/modules/imgcodecs/src/grfmt_jpeg.cpp b/modules/imgcodecs/src/grfmt_jpeg.cpp
-index ce942ca1995..caf768d2569 100644
---- a/modules/imgcodecs/src/grfmt_jpeg.cpp
-+++ b/modules/imgcodecs/src/grfmt_jpeg.cpp
-@@ -396,7 +396,7 @@ int my_jpeg_load_dht (struct jpeg_decompress_struct *info, unsigned char *dht,
- bool JpegDecoder::readData( Mat& img )
- {
- volatile bool result = false;
-- int step = (int)img.step;
-+ size_t step = img.step;
- bool color = img.channels() > 1;
-
- if( m_state && m_width && m_height )
-diff --git a/modules/imgcodecs/src/grfmt_jpeg2000.cpp b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-index 950ec21375f..24dfb38bb9d 100644
---- a/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-+++ b/modules/imgcodecs/src/grfmt_jpeg2000.cpp
-@@ -156,7 +156,7 @@ bool Jpeg2KDecoder::readData( Mat& img )
- bool result = false;
- int color = img.channels() > 1;
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ size_t step = img.step;
- jas_stream_t* stream = (jas_stream_t*)m_stream;
- jas_image_t* image = (jas_image_t*)m_image;
-
-@@ -252,9 +252,9 @@ bool Jpeg2KDecoder::readData( Mat& img )
- if( !jas_image_readcmpt( image, cmptlut[i], 0, 0, xend / xstep, yend / ystep, buffer ))
- {
- if( img.depth() == CV_8U )
-- result = readComponent8u( data + i, buffer, step, cmptlut[i], maxval, offset, ncmpts );
-+ result = readComponent8u( data + i, buffer, validateToInt(step), cmptlut[i], maxval, offset, ncmpts );
- else
-- result = readComponent16u( ((unsigned short *)data) + i, buffer, step / 2, cmptlut[i], maxval, offset, ncmpts );
-+ result = readComponent16u( ((unsigned short *)data) + i, buffer, validateToInt(step / 2), cmptlut[i], maxval, offset, ncmpts );
- if( !result )
- {
- i = ncmpts;
-diff --git a/modules/imgcodecs/src/grfmt_pam.cpp b/modules/imgcodecs/src/grfmt_pam.cpp
-index 11195dc342c..8eb9e012309 100644
---- a/modules/imgcodecs/src/grfmt_pam.cpp
-+++ b/modules/imgcodecs/src/grfmt_pam.cpp
-@@ -479,7 +479,7 @@ bool PAMDecoder::readData( Mat& img )
- {
- uchar* data = img.ptr();
- int target_channels = img.channels();
-- int imp_stride = (int)img.step;
-+ size_t imp_stride = img.step;
- int sample_depth = CV_ELEM_SIZE1(m_type);
- int src_elems_per_row = m_width*m_channels;
- int src_stride = src_elems_per_row*sample_depth;
-diff --git a/modules/imgcodecs/src/grfmt_sunras.cpp b/modules/imgcodecs/src/grfmt_sunras.cpp
-index aca9b369318..6d448f94ed3 100644
---- a/modules/imgcodecs/src/grfmt_sunras.cpp
-+++ b/modules/imgcodecs/src/grfmt_sunras.cpp
-@@ -160,7 +160,7 @@ bool SunRasterDecoder::readData( Mat& img )
- {
- int color = img.channels() > 1;
- uchar* data = img.ptr();
-- int step = (int)img.step;
-+ size_t step = img.step;
- uchar gray_palette[256] = {0};
- bool result = false;
- int src_pitch = ((m_width*m_bpp + 7)/8 + 1) & -2;
-@@ -308,11 +308,11 @@ bool SunRasterDecoder::readData( Mat& img )
- code = m_strm.getByte();
-
- if( color )
-- data = FillUniColor( data, line_end, step, width3,
-+ data = FillUniColor( data, line_end, validateToInt(step), width3,
- y, m_height, len,
- m_palette[code] );
- else
-- data = FillUniGray( data, line_end, step, width3,
-+ data = FillUniGray( data, line_end, validateToInt(step), width3,
- y, m_height, len,
- gray_palette[code] );
- if( y >= m_height )
-diff --git a/modules/imgcodecs/src/utils.cpp b/modules/imgcodecs/src/utils.cpp
-index 2ee5bafc712..474dae008ca 100644
---- a/modules/imgcodecs/src/utils.cpp
-+++ b/modules/imgcodecs/src/utils.cpp
-@@ -42,6 +42,13 @@
- #include "precomp.hpp"
- #include "utils.hpp"
-
-+int validateToInt(size_t sz)
-+{
-+ int valueInt = (int)sz;
-+ CV_Assert((size_t)valueInt == sz);
-+ return valueInt;
-+}
-+
- #define SCALE 14
- #define cR (int)(0.299*(1 << SCALE) + 0.5)
- #define cG (int)(0.587*(1 << SCALE) + 0.5)
-@@ -537,23 +544,25 @@ uchar* FillColorRow1( uchar* data, uchar* indices, int len, PaletteEntry* palett
- {
- uchar* end = data + len*3;
-
-+ const PaletteEntry p0 = palette[0], p1 = palette[1];
-+
- while( (data += 24) < end )
- {
- int idx = *indices++;
-- *((PaletteEntry*)(data - 24)) = palette[(idx & 128) != 0];
-- *((PaletteEntry*)(data - 21)) = palette[(idx & 64) != 0];
-- *((PaletteEntry*)(data - 18)) = palette[(idx & 32) != 0];
-- *((PaletteEntry*)(data - 15)) = palette[(idx & 16) != 0];
-- *((PaletteEntry*)(data - 12)) = palette[(idx & 8) != 0];
-- *((PaletteEntry*)(data - 9)) = palette[(idx & 4) != 0];
-- *((PaletteEntry*)(data - 6)) = palette[(idx & 2) != 0];
-- *((PaletteEntry*)(data - 3)) = palette[(idx & 1) != 0];
-+ *((PaletteEntry*)(data - 24)) = (idx & 128) ? p1 : p0;
-+ *((PaletteEntry*)(data - 21)) = (idx & 64) ? p1 : p0;
-+ *((PaletteEntry*)(data - 18)) = (idx & 32) ? p1 : p0;
-+ *((PaletteEntry*)(data - 15)) = (idx & 16) ? p1 : p0;
-+ *((PaletteEntry*)(data - 12)) = (idx & 8) ? p1 : p0;
-+ *((PaletteEntry*)(data - 9)) = (idx & 4) ? p1 : p0;
-+ *((PaletteEntry*)(data - 6)) = (idx & 2) ? p1 : p0;
-+ *((PaletteEntry*)(data - 3)) = (idx & 1) ? p1 : p0;
- }
-
-- int idx = indices[0] << 24;
-+ int idx = indices[0];
- for( data -= 24; data < end; data += 3, idx += idx )
- {
-- PaletteEntry clr = palette[idx < 0];
-+ const PaletteEntry clr = (idx & 128) ? p1 : p0;
- WRITE_PIX( data, clr );
- }
-
-@@ -565,23 +574,25 @@ uchar* FillGrayRow1( uchar* data, uchar* indices, int len, uchar* palette )
- {
- uchar* end = data + len;
-
-+ const uchar p0 = palette[0], p1 = palette[1];
-+
- while( (data += 8) < end )
- {
- int idx = *indices++;
-- *((uchar*)(data - 8)) = palette[(idx & 128) != 0];
-- *((uchar*)(data - 7)) = palette[(idx & 64) != 0];
-- *((uchar*)(data - 6)) = palette[(idx & 32) != 0];
-- *((uchar*)(data - 5)) = palette[(idx & 16) != 0];
-- *((uchar*)(data - 4)) = palette[(idx & 8) != 0];
-- *((uchar*)(data - 3)) = palette[(idx & 4) != 0];
-- *((uchar*)(data - 2)) = palette[(idx & 2) != 0];
-- *((uchar*)(data - 1)) = palette[(idx & 1) != 0];
-+ *((uchar*)(data - 8)) = (idx & 128) ? p1 : p0;
-+ *((uchar*)(data - 7)) = (idx & 64) ? p1 : p0;
-+ *((uchar*)(data - 6)) = (idx & 32) ? p1 : p0;
-+ *((uchar*)(data - 5)) = (idx & 16) ? p1 : p0;
-+ *((uchar*)(data - 4)) = (idx & 8) ? p1 : p0;
-+ *((uchar*)(data - 3)) = (idx & 4) ? p1 : p0;
-+ *((uchar*)(data - 2)) = (idx & 2) ? p1 : p0;
-+ *((uchar*)(data - 1)) = (idx & 1) ? p1 : p0;
- }
-
-- int idx = indices[0] << 24;
-+ int idx = indices[0];
- for( data -= 8; data < end; data++, idx += idx )
- {
-- data[0] = palette[idx < 0];
-+ data[0] = (idx & 128) ? p1 : p0;
- }
-
- return data;
-diff --git a/modules/imgcodecs/src/utils.hpp b/modules/imgcodecs/src/utils.hpp
-index cab10609db2..7af4c6174ee 100644
---- a/modules/imgcodecs/src/utils.hpp
-+++ b/modules/imgcodecs/src/utils.hpp
-@@ -42,6 +42,8 @@
- #ifndef _UTILS_H_
- #define _UTILS_H_
-
-+int validateToInt(size_t step);
-+
- struct PaletteEntry
- {
- unsigned char b, g, r, a;
diff --git a/meta-oe/recipes-support/opencv/opencv/already-exists.patch b/meta-oe/recipes-support/opencv/opencv/already-exists.patch
deleted file mode 100644
index 6e24f2de87..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/already-exists.patch
+++ /dev/null
@@ -1,394 +0,0 @@
-From e4bf148cddf277834e57c9afeec8daff8378a655 Mon Sep 17 00:00:00 2001
-From: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
-Date: Wed, 22 Nov 2017 15:27:07 +0100
-Subject: [PATCH] Fix: File already exists in database: caffe.proto
-
-Fixes error when importing python cv
-
-Upstream-status: Backport https://github.com/opencv/opencv/pull/10092
-Signed-off-by: Ricardo Ribalda Delgado <ricardo.ribalda@gmail.com>
----
- modules/dnn/CMakeLists.txt | 6 +++---
- modules/dnn/src/caffe/caffe_importer.cpp | 1 -
- modules/dnn/src/caffe/caffe_io.cpp | 1 -
- modules/dnn/src/caffe/caffe_io.hpp | 2 +-
- modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} | 0
- 5 files changed, 4 insertions(+), 6 deletions(-)
- rename modules/dnn/src/caffe/{caffe.proto => opencv-caffe.proto} (100%)
-
-diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
-index c6329a742263..8ef00ef983ff 100644
---- a/modules/dnn/CMakeLists.txt
-+++ b/modules/dnn/CMakeLists.txt
-@@ -55,13 +55,13 @@ ocv_warnings_disable(CMAKE_CXX_FLAGS
-
- if(PROTOBUF_UPDATE_FILES)
- file(GLOB proto_files src/tensorflow/*.proto)
-- list(APPEND proto_files src/caffe/caffe.proto)
-+ list(APPEND proto_files src/caffe/opencv-caffe.proto)
- PROTOBUF_GENERATE_CPP(Protobuf_HDRS Protobuf_SRCS ${proto_files})
- else()
- file(GLOB fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.cc)
- file(GLOB fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/tensorflow/*.h)
-- list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.cc)
-- list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/caffe.pb.h)
-+ list(APPEND fw_srcs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.cc)
-+ list(APPEND fw_hdrs ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe/opencv-caffe.pb.h)
- list(APPEND Protobuf_SRCS ${fw_srcs})
- list(APPEND Protobuf_HDRS ${fw_hdrs})
- list(APPEND Protobuf_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/misc/caffe)
-diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
-index c075651b95b3..2c977c84b0f4 100644
---- a/modules/dnn/src/caffe/caffe_importer.cpp
-+++ b/modules/dnn/src/caffe/caffe_importer.cpp
-@@ -42,7 +42,6 @@
- #include "../precomp.hpp"
-
- #ifdef HAVE_PROTOBUF
--#include "caffe.pb.h"
-
- #include <iostream>
- #include <fstream>
-diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
-index 0f46ea77df9a..1d3c518f1328 100644
---- a/modules/dnn/src/caffe/caffe_io.cpp
-+++ b/modules/dnn/src/caffe/caffe_io.cpp
-@@ -99,7 +99,6 @@
- #include <fstream>
- #include <vector>
-
--#include "caffe.pb.h"
- #include "caffe_io.hpp"
- #include "glog_emulator.hpp"
-
-diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
-index 09bc5709a24e..f5912c3bcec1 100644
---- a/modules/dnn/src/caffe/caffe_io.hpp
-+++ b/modules/dnn/src/caffe/caffe_io.hpp
-@@ -91,7 +91,7 @@
- #define __OPENCV_DNN_CAFFE_IO_HPP__
- #ifdef HAVE_PROTOBUF
-
--#include "caffe.pb.h"
-+#include "opencv-caffe.pb.h"
-
- namespace cv {
- namespace dnn {
-diff --git a/modules/dnn/src/caffe/caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
-similarity index 100%
-rename from modules/dnn/src/caffe/caffe.proto
-rename to modules/dnn/src/caffe/opencv-caffe.proto
-diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
-index 0b72326f7e7d..f413bad5b81a 100644
---- a/modules/dnn/src/layers/detection_output_layer.cpp
-+++ b/modules/dnn/src/layers/detection_output_layer.cpp
-@@ -44,7 +44,7 @@
- #include "layers_common.hpp"
- #include <float.h>
- #include <string>
--#include <caffe.pb.h>
-+#include <opencv-caffe.pb.h>
-
- namespace cv
- {
-diff --git a/modules/dnn/src/caffe/caffe_importer.cpp b/modules/dnn/src/caffe/caffe_importer.cpp
-index 2c977c84b0f4..a1827a381117 100644
---- a/modules/dnn/src/caffe/caffe_importer.cpp
-+++ b/modules/dnn/src/caffe/caffe_importer.cpp
-@@ -78,8 +78,8 @@ static cv::String toString(const T &v)
-
- class CaffeImporter : public Importer
- {
-- caffe::NetParameter net;
-- caffe::NetParameter netBinary;
-+ opencvcaffe::NetParameter net;
-+ opencvcaffe::NetParameter netBinary;
-
- public:
-
-@@ -197,7 +197,7 @@ public:
- }
- }
-
-- void blobShapeFromProto(const caffe::BlobProto &pbBlob, MatShape& shape)
-+ void blobShapeFromProto(const opencvcaffe::BlobProto &pbBlob, MatShape& shape)
- {
- shape.clear();
- if (pbBlob.has_num() || pbBlob.has_channels() || pbBlob.has_height() || pbBlob.has_width())
-@@ -209,7 +209,7 @@ public:
- }
- else if (pbBlob.has_shape())
- {
-- const caffe::BlobShape &_shape = pbBlob.shape();
-+ const opencvcaffe::BlobShape &_shape = pbBlob.shape();
-
- for (int i = 0; i < _shape.dim_size(); i++)
- shape.push_back((int)_shape.dim(i));
-@@ -218,7 +218,7 @@ public:
- CV_Error(Error::StsError, "Unknown shape of input blob");
- }
-
-- void blobFromProto(const caffe::BlobProto &pbBlob, cv::Mat &dstBlob)
-+ void blobFromProto(const opencvcaffe::BlobProto &pbBlob, cv::Mat &dstBlob)
- {
- MatShape shape;
- blobShapeFromProto(pbBlob, shape);
-@@ -233,7 +233,7 @@ public:
- dstData[i] = pbBlob.data(i);
- }
-
-- void extractBinaryLayerParms(const caffe::LayerParameter& layer, LayerParams& layerParams)
-+ void extractBinaryLayerParms(const opencvcaffe::LayerParameter& layer, LayerParams& layerParams)
- {
- const std::string &name = layer.name();
-
-@@ -247,7 +247,7 @@ public:
- if (li == netBinary.layer_size() || netBinary.layer(li).blobs_size() == 0)
- return;
-
-- const caffe::LayerParameter &binLayer = netBinary.layer(li);
-+ const opencvcaffe::LayerParameter &binLayer = netBinary.layer(li);
- layerParams.blobs.resize(binLayer.blobs_size());
- for (int bi = 0; bi < binLayer.blobs_size(); bi++)
- {
-@@ -289,7 +289,7 @@ public:
-
- for (int li = 0; li < layersSize; li++)
- {
-- const caffe::LayerParameter &layer = net.layer(li);
-+ const opencvcaffe::LayerParameter &layer = net.layer(li);
- String name = layer.name();
- String type = layer.type();
- LayerParams layerParams;
-@@ -313,7 +313,7 @@ public:
- addedBlobs.clear();
- }
-
-- void addOutput(const caffe::LayerParameter &layer, int layerId, int outNum)
-+ void addOutput(const opencvcaffe::LayerParameter &layer, int layerId, int outNum)
- {
- const std::string &name = layer.top(outNum);
-
-diff --git a/modules/dnn/src/caffe/caffe_io.hpp b/modules/dnn/src/caffe/caffe_io.hpp
-index f5912c3bcec1..24cd5fa254eb 100644
---- a/modules/dnn/src/caffe/caffe_io.hpp
-+++ b/modules/dnn/src/caffe/caffe_io.hpp
-@@ -98,9 +98,9 @@ namespace dnn {
-
- // Read parameters from a file into a NetParameter proto message.
- void ReadNetParamsFromTextFileOrDie(const char* param_file,
-- caffe::NetParameter* param);
-+ opencvcaffe::NetParameter* param);
- void ReadNetParamsFromBinaryFileOrDie(const char* param_file,
-- caffe::NetParameter* param);
-+ opencvcaffe::NetParameter* param);
-
- }
- }
-diff --git a/modules/dnn/src/caffe/opencv-caffe.proto b/modules/dnn/src/caffe/opencv-caffe.proto
-index 3d23fb48ea6a..df4e1d3269ae 100644
---- a/modules/dnn/src/caffe/opencv-caffe.proto
-+++ b/modules/dnn/src/caffe/opencv-caffe.proto
-@@ -48,7 +48,7 @@
-
- syntax = "proto2";
-
--package caffe;
-+package opencvcaffe;
-
- // Specifies the shape (dimensions) of a Blob.
- message BlobShape {
-diff --git a/modules/dnn/src/layers/detection_output_layer.cpp b/modules/dnn/src/layers/detection_output_layer.cpp
-index f413bad5b81a..832c257eebf9 100644
---- a/modules/dnn/src/layers/detection_output_layer.cpp
-+++ b/modules/dnn/src/layers/detection_output_layer.cpp
-@@ -72,7 +72,7 @@ public:
-
- int _backgroundLabelId;
-
-- typedef caffe::PriorBoxParameter_CodeType CodeType;
-+ typedef opencvcaffe::PriorBoxParameter_CodeType CodeType;
- CodeType _codeType;
-
- bool _varianceEncodedInTarget;
-@@ -85,7 +85,7 @@ public:
- enum { _numAxes = 4 };
- static const std::string _layerName;
-
-- typedef std::map<int, std::vector<caffe::NormalizedBBox> > LabelBBox;
-+ typedef std::map<int, std::vector<opencvcaffe::NormalizedBBox> > LabelBBox;
-
- bool getParameterDict(const LayerParams &params,
- const std::string &parameterName,
-@@ -131,11 +131,11 @@ public:
- {
- String codeTypeString = params.get<String>("code_type").toLowerCase();
- if (codeTypeString == "corner")
-- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
- else if (codeTypeString == "center_size")
-- _codeType = caffe::PriorBoxParameter_CodeType_CENTER_SIZE;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE;
- else
-- _codeType = caffe::PriorBoxParameter_CodeType_CORNER;
-+ _codeType = opencvcaffe::PriorBoxParameter_CodeType_CORNER;
- }
-
- DetectionOutputLayerImpl(const LayerParams &params)
-@@ -215,7 +215,7 @@ public:
- GetConfidenceScores(confidenceData, num, numPriors, _numClasses, allConfidenceScores);
-
- // Retrieve all prior bboxes
-- std::vector<caffe::NormalizedBBox> priorBBoxes;
-+ std::vector<opencvcaffe::NormalizedBBox> priorBBoxes;
- std::vector<std::vector<float> > priorVariances;
- GetPriorBBoxes(priorData, numPriors, priorBBoxes, priorVariances);
-
-@@ -272,7 +272,7 @@ public:
- for (size_t j = 0; j < indices.size(); ++j, ++count)
- {
- int idx = indices[j];
-- const caffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
-+ const opencvcaffe::NormalizedBBox& decode_bbox = label_bboxes->second[idx];
- outputsData[count * 7] = i;
- outputsData[count * 7 + 1] = label;
- outputsData[count * 7 + 2] = scores[idx];
-@@ -355,7 +355,7 @@ public:
-
- // Compute bbox size
- template<bool normalized>
-- static float BBoxSize(const caffe::NormalizedBBox& bbox)
-+ static float BBoxSize(const opencvcaffe::NormalizedBBox& bbox)
- {
- if (bbox.xmax() < bbox.xmin() || bbox.ymax() < bbox.ymin())
- {
-@@ -388,10 +388,10 @@ public:
- // Decode a bbox according to a prior bbox
- template<bool variance_encoded_in_target>
- static void DecodeBBox(
-- const caffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
-+ const opencvcaffe::NormalizedBBox& prior_bbox, const std::vector<float>& prior_variance,
- const CodeType code_type,
-- const bool clip_bbox, const caffe::NormalizedBBox& bbox,
-- caffe::NormalizedBBox& decode_bbox)
-+ const bool clip_bbox, const opencvcaffe::NormalizedBBox& bbox,
-+ opencvcaffe::NormalizedBBox& decode_bbox)
- {
- float bbox_xmin = variance_encoded_in_target ? bbox.xmin() : prior_variance[0] * bbox.xmin();
- float bbox_ymin = variance_encoded_in_target ? bbox.ymin() : prior_variance[1] * bbox.ymin();
-@@ -399,13 +399,13 @@ public:
- float bbox_ymax = variance_encoded_in_target ? bbox.ymax() : prior_variance[3] * bbox.ymax();
- switch(code_type)
- {
-- case caffe::PriorBoxParameter_CodeType_CORNER:
-+ case opencvcaffe::PriorBoxParameter_CodeType_CORNER:
- decode_bbox.set_xmin(prior_bbox.xmin() + bbox_xmin);
- decode_bbox.set_ymin(prior_bbox.ymin() + bbox_ymin);
- decode_bbox.set_xmax(prior_bbox.xmax() + bbox_xmax);
- decode_bbox.set_ymax(prior_bbox.ymax() + bbox_ymax);
- break;
-- case caffe::PriorBoxParameter_CodeType_CENTER_SIZE:
-+ case opencvcaffe::PriorBoxParameter_CodeType_CENTER_SIZE:
- {
- float prior_width = prior_bbox.xmax() - prior_bbox.xmin();
- CV_Assert(prior_width > 0);
-@@ -431,7 +431,7 @@ public:
- };
- if (clip_bbox)
- {
-- // Clip the caffe::NormalizedBBox such that the range for each corner is [0, 1]
-+ // Clip the opencvcaffe::NormalizedBBox such that the range for each corner is [0, 1]
- decode_bbox.set_xmin(std::max(std::min(decode_bbox.xmin(), 1.f), 0.f));
- decode_bbox.set_ymin(std::max(std::min(decode_bbox.ymin(), 1.f), 0.f));
- decode_bbox.set_xmax(std::max(std::min(decode_bbox.xmax(), 1.f), 0.f));
-@@ -443,11 +443,11 @@ public:
-
- // Decode a set of bboxes according to a set of prior bboxes
- static void DecodeBBoxes(
-- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
-+ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
- const std::vector<std::vector<float> >& prior_variances,
- const CodeType code_type, const bool variance_encoded_in_target,
-- const bool clip_bbox, const std::vector<caffe::NormalizedBBox>& bboxes,
-- std::vector<caffe::NormalizedBBox>& decode_bboxes)
-+ const bool clip_bbox, const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
-+ std::vector<opencvcaffe::NormalizedBBox>& decode_bboxes)
- {
- CV_Assert(prior_bboxes.size() == prior_variances.size());
- CV_Assert(prior_bboxes.size() == bboxes.size());
-@@ -470,7 +470,7 @@ public:
-
- // Decode all bboxes in a batch
- static void DecodeBBoxesAll(const std::vector<LabelBBox>& all_loc_preds,
-- const std::vector<caffe::NormalizedBBox>& prior_bboxes,
-+ const std::vector<opencvcaffe::NormalizedBBox>& prior_bboxes,
- const std::vector<std::vector<float> >& prior_variances,
- const int num, const bool share_location,
- const int num_loc_classes, const int background_label_id,
-@@ -503,10 +503,10 @@ public:
- // Get prior bounding boxes from prior_data
- // prior_data: 1 x 2 x num_priors * 4 x 1 blob.
- // num_priors: number of priors.
-- // prior_bboxes: stores all the prior bboxes in the format of caffe::NormalizedBBox.
-+ // prior_bboxes: stores all the prior bboxes in the format of opencvcaffe::NormalizedBBox.
- // prior_variances: stores all the variances needed by prior bboxes.
- static void GetPriorBBoxes(const float* priorData, const int& numPriors,
-- std::vector<caffe::NormalizedBBox>& priorBBoxes,
-+ std::vector<opencvcaffe::NormalizedBBox>& priorBBoxes,
- std::vector<std::vector<float> >& priorVariances)
- {
- priorBBoxes.clear(); priorBBoxes.resize(numPriors);
-@@ -514,7 +514,7 @@ public:
- for (int i = 0; i < numPriors; ++i)
- {
- int startIdx = i * 4;
-- caffe::NormalizedBBox& bbox = priorBBoxes[i];
-+ opencvcaffe::NormalizedBBox& bbox = priorBBoxes[i];
- bbox.set_xmin(priorData[startIdx]);
- bbox.set_ymin(priorData[startIdx + 1]);
- bbox.set_xmax(priorData[startIdx + 2]);
-@@ -565,7 +565,7 @@ public:
- {
- labelBBox[label].resize(numPredsPerClass);
- }
-- caffe::NormalizedBBox& bbox = labelBBox[label][p];
-+ opencvcaffe::NormalizedBBox& bbox = labelBBox[label][p];
- bbox.set_xmin(locData[startIdx + c * 4]);
- bbox.set_ymin(locData[startIdx + c * 4 + 1]);
- bbox.set_xmax(locData[startIdx + c * 4 + 2]);
-@@ -612,7 +612,7 @@ public:
- // nms_threshold: a threshold used in non maximum suppression.
- // top_k: if not -1, keep at most top_k picked indices.
- // indices: the kept indices of bboxes after nms.
-- static void ApplyNMSFast(const std::vector<caffe::NormalizedBBox>& bboxes,
-+ static void ApplyNMSFast(const std::vector<opencvcaffe::NormalizedBBox>& bboxes,
- const std::vector<float>& scores, const float score_threshold,
- const float nms_threshold, const float eta, const int top_k,
- std::vector<int>& indices)
-@@ -674,10 +674,10 @@ public:
-
- // Compute the jaccard (intersection over union IoU) overlap between two bboxes.
- template<bool normalized>
-- static float JaccardOverlap(const caffe::NormalizedBBox& bbox1,
-- const caffe::NormalizedBBox& bbox2)
-+ static float JaccardOverlap(const opencvcaffe::NormalizedBBox& bbox1,
-+ const opencvcaffe::NormalizedBBox& bbox2)
- {
-- caffe::NormalizedBBox intersect_bbox;
-+ opencvcaffe::NormalizedBBox intersect_bbox;
- if (bbox2.xmin() > bbox1.xmax() || bbox2.xmax() < bbox1.xmin() ||
- bbox2.ymin() > bbox1.ymax() || bbox2.ymax() < bbox1.ymin())
- {
-diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
-index 1d3c518f1328..3cf6e255aa60 100644
---- a/modules/dnn/src/caffe/caffe_io.cpp
-+++ b/modules/dnn/src/caffe/caffe_io.cpp
-@@ -107,7 +107,7 @@ namespace dnn {
-
- using std::string;
- using std::map;
--using namespace caffe;
-+using namespace opencvcaffe;
- using namespace ::google::protobuf;
- using namespace ::google::protobuf::io;
-
diff --git a/meta-oe/recipes-support/opencv/opencv/download.patch b/meta-oe/recipes-support/opencv/opencv/download.patch
new file mode 100644
index 0000000000..33ac483123
--- /dev/null
+++ b/meta-oe/recipes-support/opencv/opencv/download.patch
@@ -0,0 +1,41 @@
+From b18a280fab06a680d9f831bf8b462647f3cb6214 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@intel.com>
+Date: Thu, 9 Jan 2020 16:24:24 +0000
+Subject: [PATCH] opencv: abort configure if we need to download
+
+This CMake module will download files during do_configure. This is bad as it
+means we can't do offline builds.
+
+Add an option to disallow downloads by emitting a fatal error.
+
+Upstream-Status: Pending
+Signed-off-by: Ross Burton <ross.burton@intel.com>
+
+---
+ cmake/OpenCVDownload.cmake | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/cmake/OpenCVDownload.cmake b/cmake/OpenCVDownload.cmake
+index 63cf6d3238..4acf477f70 100644
+--- a/cmake/OpenCVDownload.cmake
++++ b/cmake/OpenCVDownload.cmake
+@@ -14,6 +14,7 @@
+ # RELATIVE_URL - if set, then URL is treated as a base, and FILENAME will be appended to it
+ # Note: uses OPENCV_DOWNLOAD_PATH folder as cache, default is <opencv>/.cache
+
++set(OPENCV_ALLOW_DOWNLOADS ON CACHE BOOL "Allow downloads")
+ set(HELP_OPENCV_DOWNLOAD_PATH "Cache directory for downloaded files")
+ if(DEFINED ENV{OPENCV_DOWNLOAD_PATH})
+ set(OPENCV_DOWNLOAD_PATH "$ENV{OPENCV_DOWNLOAD_PATH}" CACHE PATH "${HELP_OPENCV_DOWNLOAD_PATH}")
+@@ -156,6 +157,11 @@ function(ocv_download)
+
+ # Download
+ if(NOT EXISTS "${CACHE_CANDIDATE}")
++ if(NOT OPENCV_ALLOW_DOWNLOADS)
++ message(FATAL_ERROR "Not going to download ${DL_FILENAME}")
++ return()
++ endif()
++
+ ocv_download_log("#cmake_download \"${CACHE_CANDIDATE}\" \"${DL_URL}\"")
+ foreach(try ${OPENCV_DOWNLOAD_TRIES_LIST})
+ ocv_download_log("#try ${try}")
diff --git a/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch b/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
deleted file mode 100644
index 3aeda7d443..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/fixpkgconfig.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/cmake/OpenCVGenPkgconfig.cmake b/cmake/OpenCVGenPkgconfig.cmake
-index b8cb8777c06b..75281ee964fd 100644
---- a/cmake/OpenCVGenPkgconfig.cmake
-+++ b/cmake/OpenCVGenPkgconfig.cmake
-@@ -27,7 +27,7 @@ macro(fix_prefix lst isown)
- get_filename_component(libdir "${item}" PATH)
- get_filename_component(libname "${item}" NAME_WE)
- string(REGEX REPLACE "^lib(.*)" "\\1" libname "${libname}")
-- list(APPEND _lst "-L${libdir}" "-l${libname}")
-+ list(APPEND _lst "-l${libname}")
- else()
- list(APPEND _lst "-l${item}")
- endif()
-@@ -66,10 +66,14 @@ ocv_list_unique(_3rdparty)
-
- set(OPENCV_PC_LIBS
- "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
-+ "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
- "${_modules}"
- )
- if (BUILD_SHARED_LIBS)
-- set(OPENCV_PC_LIBS_PRIVATE "${_extra}")
-+ set(OPENCV_PC_LIBS_PRIVATE
-+ "-L\${exec_prefix}/${OPENCV_LIB_INSTALL_PATH}"
-+ "${_extra}"
-+ )
- else()
- set(OPENCV_PC_LIBS_PRIVATE
- "-L\${exec_prefix}/${OPENCV_3P_LIB_INSTALL_PATH}"
diff --git a/meta-oe/recipes-support/opencv/opencv/javagen.patch b/meta-oe/recipes-support/opencv/opencv/javagen.patch
deleted file mode 100644
index 56526ecd80..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/javagen.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream-status: Inappropriate [OE specific] https://github.com/opencv/opencv/pull/10039#issuecomment-342539288
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/modules/java/CMakeLists.txt b/modules/java/CMakeLists.txt
-index 74bc0ef04169..4622fbf9a5f1 100644
---- a/modules/java/CMakeLists.txt
-+++ b/modules/java/CMakeLists.txt
-@@ -291,7 +291,7 @@ foreach(java_file ${step3_input_files})
- endif()
- if(__configure)
- configure_file("${java_file}" "${java_src_dir}/${output_name}" @ONLY)
-- elseif(NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
-+ elseif(EXISTS "${java_file}" AND NOT "${java_file}" MATCHES "${OpenCV_BINARY_DIR}/")
- configure_file("${java_file}" "${java_src_dir}/${output_name}" COPYONLY)
- else()
- add_custom_command(OUTPUT "${java_src_dir}/${output_name}"
diff --git a/meta-oe/recipes-support/opencv/opencv/protobuf.patch b/meta-oe/recipes-support/opencv/opencv/protobuf.patch
deleted file mode 100644
index c63dc142ea..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/protobuf.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Upstream-status: Inappropriate [OE specific]
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/cmake/OpenCVFindLibProtobuf.cmake b/cmake/OpenCVFindLibProtobuf.cmake
-index b6ce1e7fd56b..e916ec0df2a6 100644
---- a/cmake/OpenCVFindLibProtobuf.cmake
-+++ b/cmake/OpenCVFindLibProtobuf.cmake
-@@ -7,21 +7,21 @@ OCV_OPTION(BUILD_PROTOBUF "Force to build libprotobuf from sources" ON)
- OCV_OPTION(PROTOBUF_UPDATE_FILES "Force to rebuild .proto files" OFF)
-
- if(PROTOBUF_UPDATE_FILES)
-- if(NOT DEFINED Protobuf_PROTOC_EXECUTABLE)
-+ if(NOT DEFINED PROTOBUF_PROTOC_EXECUTABLE)
- find_package(Protobuf QUIET)
- endif()
-- if(DEFINED Protobuf_PROTOC_EXECUTABLE AND EXISTS ${Protobuf_PROTOC_EXECUTABLE})
-- message(STATUS "The protocol buffer compiler is found (${Protobuf_PROTOC_EXECUTABLE})")
-+ if(DEFINED PROTOBUF_PROTOC_EXECUTABLE AND EXISTS ${PROTOBUF_PROTOC_EXECUTABLE})
-+ message(STATUS "The protocol buffer compiler is found (${PROTOBUF_PROTOC_EXECUTABLE})")
- else()
-- message(FATAL_ERROR "The protocol buffer compiler is not found (Protobuf_PROTOC_EXECUTABLE='${Protobuf_PROTOC_EXECUTABLE}')")
-+ message(FATAL_ERROR "The protocol buffer compiler is not found (PROTOBUF_PROTOC_EXECUTABLE='${PROTOBUF_PROTOC_EXECUTABLE}')")
- endif()
- endif()
-
--if(NOT BUILD_PROTOBUF AND NOT (DEFINED Protobuf_INCLUDE_DIRS AND DEFINED Protobuf_LIBRARIES))
-+if(NOT BUILD_PROTOBUF AND NOT (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
- find_package(Protobuf QUIET)
- endif()
-
--if(Protobuf_FOUND)
-+if(PROTOBUF_FOUND OR (DEFINED PROTOBUF_INCLUDE_DIR AND DEFINED PROTOBUF_LIBRARIES))
- # nothing
- else()
- set(Protobuf_LIBRARIES libprotobuf)
-diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
-index 2a71568d1a44..c6329a742263 100644
---- a/modules/dnn/CMakeLists.txt
-+++ b/modules/dnn/CMakeLists.txt
-@@ -7,7 +7,7 @@ if(DEFINED BUILD_opencv_dnn AND NOT BUILD_opencv_dnn)
- endif()
-
- include(${OpenCV_SOURCE_DIR}/cmake/OpenCVFindLibProtobuf.cmake)
--if(NOT Protobuf_FOUND)
-+if(NOT PROTOBUF_FOUND)
- ocv_module_disable(opencv_dnn)
- endif()
-
-@@ -72,7 +72,7 @@ ocv_source_group("Src\\protobuf" FILES ${Protobuf_SRCS} ${Protobuf_HDRS})
- ocv_module_include_directories(include ${Protobuf_INCLUDE_DIRS})
-
- ocv_glob_module_sources(${Protobuf_SRCS} ${Protobuf_HDRS} ${CBLAS_H_PROXY_PATH})
--ocv_create_module(${Protobuf_LIBRARIES} ${LAPACK_LIBRARIES})
-+ocv_create_module(${PROTOBUF_LIBRARIES} ${LAPACK_LIBRARIES})
- ocv_add_samples()
- ocv_add_accuracy_tests()
- ocv_add_perf_tests()
diff --git a/meta-oe/recipes-support/opencv/opencv/tinydnn.patch b/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
deleted file mode 100644
index c433fc312d..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/tinydnn.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Upstream-status: Inappropriate [OE specific]
-
-Signed-off-by: Ricardo Ribalda <ricardo.ribalda@gmail.com>
-diff --git a/modules/dnn_modern/CMakeLists.txt b/modules/dnn_modern/CMakeLists.txt
-index 79b64b12160b..ba06a0a163e4 100644
---- a/modules/dnn_modern/CMakeLists.txt
-+++ b/modules/dnn_modern/CMakeLists.txt
-@@ -15,24 +15,8 @@ list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
- # MODULE REQUIREMENTS
- # ----------------------------------------------------------------------------
-
--set(TINY_DNN_CPP_PATH "${OpenCV_BINARY_DIR}/3rdparty/tinydnn")
--set(TINY_DNN_CPP_ROOT "${TINY_DNN_CPP_PATH}/tiny-dnn-1.0.0a3")
--ocv_download(FILENAME "v1.0.0a3.tar.gz"
-- HASH "adb1c512e09ca2c7a6faef36f9c53e59"
-- URL
-- "${OPENCV_TINY_DNN_URL}"
-- "$ENV{OPENCV_TINY_DNN_URL}"
-- "https://github.com/tiny-dnn/tiny-dnn/archive/"
-- DESTINATION_DIR "${TINY_DNN_CPP_PATH}"
-- STATUS TINY_DNN_DOWNLOAD_SUCCESS
-- ID "tiny-dnn"
-- UNPACK RELATIVE_URL)
--
--if(NOT TINY_DNN_DOWNLOAD_SUCCESS)
-- message(STATUS "Failed to download tiny-dnn sources")
--endif()
--
--find_package(TinyDNN QUIET)
-+set(TINYDNN_INCLUDE_DIRS "${OpenCV_SOURCE_DIR}/3rdparty/tinydnn/tiny-dnn-1.0.0a3")
-+set(TinyDNN_FOUND TRUE)
-
- include(CheckCXXCompilerFlag)
- CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
diff --git a/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch b/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
deleted file mode 100644
index fc273a8911..0000000000
--- a/meta-oe/recipes-support/opencv/opencv/uselocalxfeatures.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/modules/xfeatures2d/CMakeLists.txt b/modules/xfeatures2d/CMakeLists.txt
-index e1755595..c7009c47 100644
---- a/modules/xfeatures2d/CMakeLists.txt
-+++ b/modules/xfeatures2d/CMakeLists.txt
-@@ -5,10 +5,10 @@ ocv_define_module(xfeatures2d opencv_core opencv_imgproc opencv_features2d openc
- include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_vgg.cmake)
- include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/download_boostdesc.cmake)
- set(DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/downloads/xfeatures2d")
--download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
--download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
--if(NOT boost_status OR NOT vgg_status)
-- ocv_module_disable(xfeatures2d)
--endif()
-+#download_boost_descriptors("${DOWNLOAD_DIR}" boost_status)
-+#download_vgg_descriptors("${DOWNLOAD_DIR}" vgg_status)
-+#if(NOT boost_status OR NOT vgg_status)
-+# ocv_module_disable(xfeatures2d)
-+#endif()
-
- ocv_module_include_directories("${DOWNLOAD_DIR}")
diff --git a/meta-oe/recipes-support/opencv/opencv_3.3.bb b/meta-oe/recipes-support/opencv/opencv_3.3.bb
deleted file mode 100644
index b697f44d1e..0000000000
--- a/meta-oe/recipes-support/opencv/opencv_3.3.bb
+++ /dev/null
@@ -1,204 +0,0 @@
-SUMMARY = "Opencv : The Open Computer Vision Library"
-HOMEPAGE = "http://opencv.org/"
-SECTION = "libs"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2b2f8752cc5edf504d283107d033f544"
-
-ARM_INSTRUCTION_SET_armv4 = "arm"
-ARM_INSTRUCTION_SET_armv5 = "arm"
-
-DEPENDS = "libtool swig-native bzip2 zlib glib-2.0 libwebp"
-
-SRCREV_opencv = "87c27a074db9f6d9d60513f351daa903606ca370"
-SRCREV_contrib = "2a9d1b22ed76eb22fad1a5edf6faf4d05f207b13"
-SRCREV_ipp = "a62e20676a60ee0ad6581e217fe7e4bada3b95db"
-SRCREV_boostdesc = "34e4206aef44d50e6bbcd0ab06354b52e7466d26"
-SRCREV_vgg = "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"
-SRC_URI[tinydnn.md5sum] = "adb1c512e09ca2c7a6faef36f9c53e59"
-SRC_URI[tinydnn.sha256sum] = "e2c61ce8c5debaa644121179e9dbdcf83f497f39de853f8dd5175846505aa18b"
-
-def ipp_filename(d):
- import re
- arch = d.getVar('TARGET_ARCH', True)
- if re.match("i.86$", arch):
- return "ippicv_2017u2_lnx_ia32_20170418.tgz"
- else:
- return "ippicv_2017u2_lnx_intel64_20170418.tgz"
-
-def ipp_md5sum(d):
- import re
- arch = d.getVar('TARGET_ARCH', True)
- if re.match("i.86$", arch):
- return "f2cece00d802d4dea86df52ed095257e"
- else:
- return "808b791a6eac9ed78d32a7666804320e"
-
-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 \
- git://github.com/opencv/opencv_contrib.git;destsuffix=contrib;name=contrib \
- git://github.com/opencv/opencv_3rdparty.git;branch=ippicv/master_20170418;destsuffix=ipp;name=ipp \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_boostdesc_20161012;destsuffix=boostdesc;name=boostdesc \
- git://github.com/opencv/opencv_3rdparty.git;branch=contrib_xfeatures2d_vgg_20160317;destsuffix=vgg;name=vgg \
- https://github.com/tiny-dnn/tiny-dnn/archive/v1.0.0a3.tar.gz;destsuffix=git/3rdparty/tinydnn/tiny-dnn-1.0.0a3;name=tinydnn;unpack=false \
- file://0001-3rdparty-ippicv-Use-pre-downloaded-ipp.patch \
- file://fixpkgconfig.patch \
- file://uselocalxfeatures.patch;patchdir=../contrib/ \
- file://tinydnn.patch;patchdir=../contrib/ \
- file://0002-Make-opencv-ts-create-share-library-intead-of-static.patch \
- file://0003-To-fix-errors-as-following.patch \
- file://0001-build-workaround-GCC-7.1.1-compilation-issue-with-sa.patch \
- file://0002-imgcodecs-refactoring-improve-code-quality.patch \
- file://0003-imgproc-test-add-checks-for-remove-call.patch \
- file://0001-Dont-use-isystem.patch \
- file://0001-carotene-don-t-use-__asm__-with-aarch64.patch \
- file://0002-Do-not-enable-asm-with-clang.patch \
- file://CVE-2017-14136.patch \
- file://javagen.patch \
- file://protobuf.patch \
- file://already-exists.patch \
- file://0001-Temporarliy-work-around-deprecated-ffmpeg-RAW-functi.patch \
-"
-PV = "3.3+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-do_unpack_extra() {
- mkdir -p ${S}/3rdparty/tinydnn/
- tar xzf ${WORKDIR}/v1.0.0a3.tar.gz -C ${S}/3rdparty/tinydnn/
- tar xzf ${WORKDIR}/ipp/ippicv/${IPP_FILENAME} -C ${WORKDIR}
- cp ${WORKDIR}/vgg/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
- cp ${WORKDIR}/boostdesc/*.i ${WORKDIR}/contrib/modules/xfeatures2d/src
-}
-addtask unpack_extra after do_unpack before do_patch
-
-EXTRA_OECMAKE = "-DOPENCV_EXTRA_MODULES_PATH=${WORKDIR}/contrib/modules \
- -DWITH_1394=OFF \
- -DCMAKE_SKIP_RPATH=ON \
- -DOPENCV_ICV_HASH=${IPP_MD5} \
- -DIPPROOT=${WORKDIR}/ippicv_lnx \
- ${@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)} \
- ${@oe.utils.conditional("libdir", "/usr/lib64", "-DLIB_SUFFIX=64", "", d)} \
- ${@oe.utils.conditional("libdir", "/usr/lib32", "-DLIB_SUFFIX=32", "", d)} \
-"
-EXTRA_OECMAKE_append_x86 = " -DX86=ON"
-
-PACKAGECONFIG ??= "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)}"
-
-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[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', 'distutils3-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, '^lib(.*)\.so$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev', allow_links=True)
- do_split_packages(d, cv_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'OpenCV %s development package', extra_depends='${PN}-dev')
- do_split_packages(d, cv_libdir, '^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 ${datadir}/OpenCV/*.cmake"
-FILES_${PN}-staticdev += "${datadir}/OpenCV/3rdparty/lib/*.a"
-FILES_${PN}-apps = "${bindir}/* ${datadir}/OpenCV"
-FILES_${PN}-java = "${datadir}/OpenCV/java"
-FILES_${PN}-samples = "${datadir}/OpenCV/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"
-
-do_install_append() {
- cp ${S}/include/opencv/*.h ${D}${includedir}/opencv/
- sed -i '/blobtrack/d' ${D}${includedir}/opencv/cvaux.h
-
- # 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
-
- if ${@bb.utils.contains("PACKAGECONFIG", "samples", "true", "false", d)}; then
- install -d ${D}${datadir}/OpenCV/samples/bin/
- cp -f bin/*-tutorial-* bin/*-example-* ${D}${datadir}/OpenCV/samples/bin/
- fi
-}
diff --git a/meta-oe/recipes-support/opencv/opencv_4.8.0.bb b/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
new file mode 100644
index 0000000000..9564bbbe9d
--- /dev/null
+++ b/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
@@ -0,0 +1,220 @@
+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 = "f9a59f2592993d3dcc080e495f4f5e02dd8ec7ef"
+SRCREV_contrib = "f10c84d48b0714f2b408c9e5cccfac1277c8e6cc"
+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,-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[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 ]
+ 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/openldap/openldap/0001-build-top.mk-unset-STRIP_OPTS.patch b/meta-oe/recipes-support/openldap/openldap/0001-build-top.mk-unset-STRIP_OPTS.patch
new file mode 100644
index 0000000000..9d25f2c599
--- /dev/null
+++ b/meta-oe/recipes-support/openldap/openldap/0001-build-top.mk-unset-STRIP_OPTS.patch
@@ -0,0 +1,38 @@
+From 321839cbd1d57f12d3d6695254d2003473d8dd1a Mon Sep 17 00:00:00 2001
+From: Yi Zhao <yi.zhao@windriver.com>
+Date: Wed, 8 Dec 2021 16:58:55 +0800
+Subject: [PATCH] build/top.mk: unset STRIP_OPTS
+
+Unset STRIP_OPTS to disable strip to fix QA errors:
+
+ERROR: openldap-2.5.9-r0 do_package: QA Issue: File
+'/usr/bin/ldapcompare' from openldap was already stripped, this will
+prevent future debugging! [already-stripped]
+
+ERROR: openldap-2.5.9-r0 do_package: QA Issue: File
+'/usr/bin/ldapdelete' from openldap was already stripped, this will
+prevent future debugging! [already-stripped]
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ build/top.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/top.mk b/build/top.mk
+index 38ce146..6e9fe1f 100644
+--- a/build/top.mk
++++ b/build/top.mk
+@@ -60,7 +60,7 @@ INSTALL_PROGRAM = $(INSTALL)
+ INSTALL_DATA = $(INSTALL) -m 644
+ INSTALL_SCRIPT = $(INSTALL)
+
+-STRIP_OPTS = -s
++STRIP_OPTS =
+
+ LINT = lint
+ 5LINT = 5lint
+--
+2.17.1
+
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
new file mode 100644
index 0000000000..6e73f8b382
--- /dev/null
+++ b/meta-oe/recipes-support/openldap/openldap/0001-configure-Pass-pthread_t-to-pthread_detach.patch
@@ -0,0 +1,32 @@
+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/install-strip.patch b/meta-oe/recipes-support/openldap/openldap/install-strip.patch
deleted file mode 100644
index 2992b7030d..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/install-strip.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-# This patch ensures that the install operations which strip
-# programs and libraries (LTINSTALL) work in a cross build
-# environment.
---- openldap-2.2.24/.pc/install-strip.patch/build/top.mk 2005-01-20 09:00:55.000000000 -0800
-+++ openldap-2.2.24/build/top.mk 2005-04-16 13:48:20.536710376 -0700
-@@ -116,7 +116,7 @@
- LTLINK_MOD = $(LIBTOOL) $(LTONLY_MOD) --mode=link \
- $(CC) $(LT_CFLAGS) $(LDFLAGS) $(LTFLAGS_MOD)
-
--LTINSTALL = $(LIBTOOL) --mode=install $(INSTALL)
-+LTINSTALL = STRIPPROG="" $(LIBTOOL) --mode=install $(top_srcdir)/contrib/ldapc++/install-sh -c
- LTFINISH = $(LIBTOOL) --mode=finish
-
- # Misc UNIX commands used in build environment
diff --git a/meta-oe/recipes-support/openldap/openldap/kill-icu.patch b/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
deleted file mode 100644
index dcf5411372..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/kill-icu.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
-slapd depends on ICU if it was built first.
-
-Upstream-status: inappropiate [embedded specific]
----
- configure.in | 8 --------
- 1 file changed, 8 deletions(-)
-
---- openldap-2.4.23.orig/configure.in
-+++ openldap-2.4.23/configure.in
-@@ -2045,18 +2045,10 @@ if test $ol_enable_ndb != no ; then
- SLAPD_LIBS="$SLAPD_LIBS \$(SLAPD_NDB_LIBS)"
- fi
- fi
-
- dnl ----------------------------------------------------------------
--dnl International Components for Unicode
--OL_ICU
--if test "$ol_icu" = no ; then
-- AC_MSG_WARN([ICU not available])
--else
-- ICU_LIBS="$ol_icu"
--fi
--dnl ----------------------------------------------------------------
- dnl
- dnl Check for Cyrus SASL
- dnl
- WITH_SASL=no
- ol_link_sasl=no
diff --git a/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch b/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
deleted file mode 100644
index c7b1552c1c..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/openldap-2.4.28-gnutls-gcrypt.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-From http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-nds/openldap/files/
-
-Upstream-status: Unknown
-
---
-
---- openldap-2.4.28/configure.in.orig 2012-02-11 22:40:36.004360795 +0000
-+++ openldap-2.4.28/configure.in 2012-02-11 22:40:13.410986851 +0000
-@@ -1214,7 +1214,7 @@
- ol_with_tls=gnutls
- ol_link_tls=yes
-
-- TLS_LIBS="-lgnutls"
-+ TLS_LIBS="-lgnutls -lgcrypt"
-
- AC_DEFINE(HAVE_GNUTLS, 1,
- [define if you have GNUtls])
diff --git a/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch b/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
deleted file mode 100644
index de9ca528a2..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/openldap-CVE-2015-3276.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-openldap CVE-2015-3276
-
-the patch comes from:
-https://bugzilla.redhat.com/show_bug.cgi?id=1238322
-https://bugzilla.redhat.com/attachment.cgi?id=1055640
-
-The nss_parse_ciphers function in libraries/libldap/tls_m.c in
-OpenLDAP does not properly parse OpenSSL-style multi-keyword mode
-cipher strings, which might cause a weaker than intended cipher to
-be used and allow remote attackers to have unspecified impact via
-unknown vectors.
-
-Signed-off-by: Li Wang <li.wang@windriver.com>
----
- libraries/libldap/tls_m.c | 27 ++++++++++++++++-----------
- 1 file changed, 16 insertions(+), 11 deletions(-)
-
-diff --git a/libraries/libldap/tls_m.c b/libraries/libldap/tls_m.c
-index 9b101f9..e6f3051 100644
---- a/libraries/libldap/tls_m.c
-+++ b/libraries/libldap/tls_m.c
-@@ -621,18 +621,23 @@ nss_parse_ciphers(const char *cipherstr, int cipher_list[ciphernum])
- */
- if (mask || strength || protocol) {
- for (i=0; i<ciphernum; i++) {
-- if (((ciphers_def[i].attr & mask) ||
-- (ciphers_def[i].strength & strength) ||
-- (ciphers_def[i].version & protocol)) &&
-- (cipher_list[i] != -1)) {
-- /* Enable the NULL ciphers only if explicity
-- * requested */
-- if (ciphers_def[i].attr & SSL_eNULL) {
-- if (mask & SSL_eNULL)
-- cipher_list[i] = action;
-- } else
-+ /* if more than one mask is provided
-+ * then AND logic applies (to match openssl)
-+ */
-+ if ( cipher_list[i] == -1) )
-+ continue;
-+ if ( mask && ! (ciphers_def[i].attr & mask) )
-+ continue;
-+ if ( strength && ! (ciphers_def[i].strength & strength) )
-+ continue;
-+ if ( protocol && ! (ciphers_def[i].version & protocol) )
-+ continue;
-+ /* Enable the NULL ciphers only if explicity requested */
-+ if (ciphers_def[i].attr & SSL_eNULL) {
-+ if (mask & SSL_eNULL)
- cipher_list[i] = action;
-- }
-+ } else
-+ cipher_list[i] = action;
- }
- } else {
- for (i=0; i<ciphernum; i++) {
---
-1.7.9.5
-
diff --git a/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch b/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
deleted file mode 100644
index b669b7254d..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/openldap-m4-pthread.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- openldap-2.3.11/build/openldap.m4.orig 2005-11-11 00:11:18.604322590 -0800
-+++ openldap-2.3.11/build/openldap.m4 2005-11-11 00:26:21.621145856 -0800
-@@ -788,7 +788,7 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
- ]])
-
- AC_DEFUN([OL_PTHREAD_TEST_PROGRAM],
--AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
-+[AC_LANG_SOURCE([[OL_PTHREAD_TEST_INCLUDES
-
- int main(argc, argv)
- int argc;
-@@ -796,7 +796,7 @@ int main(argc, argv)
- {
- OL_PTHREAD_TEST_FUNCTION
- }
--]))
-+]])])
- dnl --------------------------------------------------------------------
- AC_DEFUN([OL_PTHREAD_TRY], [# Pthread try link: $1 ($2)
- if test "$ol_link_threads" = no ; then
diff --git a/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch b/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch
new file mode 100644
index 0000000000..7a1b5aaad7
--- /dev/null
+++ b/meta-oe/recipes-support/openldap/openldap/remove-user-host-pwd-from-version.patch
@@ -0,0 +1,39 @@
+From 868a04b0596e2df708ba14ed70815b1411db3db1 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 21 Feb 2019 11:33:24 +0800
+Subject: [PATCH] mkversion: remove user host pwd from version
+
+Upstream-Status: Pending
+
+Update this patch to version 2.4.47
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ build/mkversion | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+--- a/build/mkversion
++++ b/build/mkversion
+@@ -53,8 +53,12 @@ APPLICATION=$1
+ # Reproducible builds set SOURCE_DATE_EPOCH, want constant strings
+ if [ -n "${SOURCE_DATE_EPOCH}" ]; then
+ WHOWHERE="openldap"
++ DATE=$(date -d@$SOURCE_DATE_EPOCH +' %b %d %Y ')
++ TIME=$(date -d@$SOURCE_DATE_EPOCH +' %H:%M:%S ')
+ else
+- WHOWHERE="$USER@$(uname -n):$(pwd)"
++ WHOWHERE="openldap"
++ DATE='" __DATE__ "'
++ TIME='" __TIME__ "'
+ fi
+
+ cat << __EOF__
+@@ -77,7 +81,7 @@ static const char copyright[] =
+ "COPYING RESTRICTIONS APPLY\n";
+
+ $static $const char $SYMBOL[] =
+-"@(#) \$$PACKAGE: $APPLICATION $VERSION (" __DATE__ " " __TIME__ ") \$\n"
++"@(#) \$$PACKAGE: $APPLICATION $VERSION ($DATE $TIME) \$\n"
+ "\t$WHOWHERE\n";
+
+ __EOF__
diff --git a/meta-oe/recipes-support/openldap/openldap/thread_stub.patch b/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
deleted file mode 100644
index 540ba4a635..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/thread_stub.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-openldap: set pointer
-
-When the function ldap_pvt_thread_pool_getkey() succeeds, it
-must set the value of *data since the caller may try to use it.
-
-Upstream-Status: pending
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
-
---- a/libraries/libldap_r/thr_stub.c
-+++ b/libraries/libldap_r/thr_stub.c
-@@ -217,6 +217,7 @@ ldap_pvt_thread_pool_unidle ( ldap_pvt_t
- int ldap_pvt_thread_pool_getkey (
- void *ctx, void *key, void **data, ldap_pvt_thread_pool_keyfree_t **kfree )
- {
-+ if (data) *data = NULL; /* avoid problems with uninitialized *data */
- return(0);
- }
-
diff --git a/meta-oe/recipes-support/openldap/openldap/use-urandom.patch b/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
deleted file mode 100644
index e7b988fafd..0000000000
--- a/meta-oe/recipes-support/openldap/openldap/use-urandom.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-openldap: assume /dev/urandom exists
-
-When we are cross-compiling, we want to assume
-that /dev/urandom exists. We could change the source
-code to look for it, but this is the easy way out.
-
-Upstream-Status: pending
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
-
---- a/configure.in
-+++ b/configure.in
-@@ -2142,8 +2142,8 @@ fi
-
- dnl ----------------------------------------------------------------
- dnl Check for entropy sources
-+dev=no
- if test $cross_compiling != yes && test "$ac_cv_mingw32" != yes ; then
-- dev=no
- if test -r /dev/urandom ; then
- dev="/dev/urandom";
- elif test -r /idev/urandom ; then
-@@ -2156,9 +2156,11 @@ if test $cross_compiling != yes && test
- dev="/idev/random";
- fi
-
-- if test $dev != no ; then
-- AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
-- fi
-+elif test $cross_compiling == yes ; then
-+ dev="/dev/urandom";
-+fi
-+if test $dev != no ; then
-+ AC_DEFINE_UNQUOTED(URANDOM_DEVICE,"$dev",[set to urandom device])
- fi
-
- dnl ----------------------------------------------------------------
diff --git a/meta-oe/recipes-support/openldap/openldap_2.4.45.bb b/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
deleted file mode 100644
index 82d6619838..0000000000
--- a/meta-oe/recipes-support/openldap/openldap_2.4.45.bb
+++ /dev/null
@@ -1,256 +0,0 @@
-# OpenLDAP, a license free (see http://www.OpenLDAP.org/license.html)
-#
-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=25fd3721960f39128cd15a749fd21139 \
- file://LICENSE;md5=153d07ef052c4a37a8fac23bc6031972 \
-"
-SECTION = "libs"
-
-LDAP_VER = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
-
-SRC_URI = "ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/${BP}.tgz \
- file://openldap-m4-pthread.patch \
- file://kill-icu.patch \
- file://openldap-2.4.28-gnutls-gcrypt.patch \
- file://use-urandom.patch \
- file://initscript \
- file://slapd.service \
- file://thread_stub.patch \
- file://openldap-CVE-2015-3276.patch \
-"
-
-SRC_URI[md5sum] = "00ff8301277cdfd0af728a6927042a13"
-SRC_URI[sha256sum] = "cdd6cffdebcd95161a73305ec13fc7a78e9707b46ca9f84fb897cd5626df3824"
-
-DEPENDS = "util-linux groff-native"
-
-# The original top.mk used INSTALL, not INSTALL_STRIP_PROGRAM when
-# installing .so and executables, this fails in cross compilation
-# environments
-SRC_URI += "file://install-strip.patch"
-
-inherit autotools-brokensep update-rc.d systemd
-
-# 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 ??= "gnutls modules \
- mdb ldap meta monitor null passwd shell 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 libgcrypt"
-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="bdb dnssrv hdb ldap mdb meta monitor ndb null passwd perl relay shell sock sql"
-#
-# Note that multiple backends can be built. The ldbm backend requires a
-# build-time choice of database API. The bdb backend forces this to be
-# DB4. To use the gdbm (or other) API the Berkely database module must
-# be removed from the build.
-md = "${libexecdir}/openldap"
-#
-#--enable-bdb enable Berkeley DB backend no|yes|mod yes
-# The Berkely DB is the standard choice. This version of OpenLDAP requires
-# the version 4 implementation or better.
-PACKAGECONFIG[bdb] = "--enable-bdb=yes,--enable-bdb=no,db"
-
-#--enable-dnssrv enable dnssrv backend no|yes|mod no
-PACKAGECONFIG[dnssrv] = "--enable-dnssrv=mod,--enable-dnssrv=no"
-
-#--enable-hdb enable Hierarchical DB backend no|yes|mod no
-PACKAGECONFIG[hdb] = "--enable-hdb=yes,--enable-hdb=no,db"
-
-#--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-monitor enable monitor backend no|yes|mod yes
-PACKAGECONFIG[monitor] = "--enable-monitor=mod,--enable-monitor=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-shell enable shell backend no|yes|mod no
-# configure: WARNING: Use of --without-threads is recommended with back-shell
-PACKAGECONFIG[shell] = "--enable-shell=mod --without-threads,--enable-shell=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-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() {
- cp ${STAGING_DATADIR_NATIVE}/libtool/build-aux/ltmain.sh ${S}/build
- rm -f ${S}/libtool
- aclocal
- libtoolize --force --copy
- gnu-configize
- 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 ${localstatedir}/run ${localstatedir}/volatile/run"
-FILES_${PN}-bin = "${bindir}"
-FILES_${PN}-dev = "${includedir} ${libdir}/lib*.so ${libdir}/*.la ${libdir}/*.a ${libexecdir}/openldap/*.a ${libexecdir}/openldap/*.la ${libexecdir}/openldap/*.so"
-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"
- 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_SERVICE_${PN}-slapd = "hostapd.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-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-monitor += "dev-so"
-INSANE_SKIP_${PN}-backend-null += "dev-so"
-INSANE_SKIP_${PN}-backend-passwd += "dev-so"
-INSANE_SKIP_${PN}-backend-shell += "dev-so"
-
-
-python populate_packages_prepend () {
- backend_dir = d.expand('${libexecdir}/openldap')
- do_split_packages(d, backend_dir, 'back_([a-z]*)\.so$', 'openldap-backend-%s', 'OpenLDAP %s backend', prepend=True, extra_depends='', allow_links=True)
- do_split_packages(d, backend_dir, '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/openldap/openldap_2.5.13.bb b/meta-oe/recipes-support/openldap/openldap_2.5.13.bb
new file mode 100644
index 0000000000..7dc926c61c
--- /dev/null
+++ b/meta-oe/recipes-support/openldap/openldap_2.5.13.bb
@@ -0,0 +1,235 @@
+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 \
+ file://0001-configure-Pass-pthread_t-to-pthread_detach.patch \
+"
+
+SRC_URI[sha256sum] = "ee3c430c4ef7b87c57b622108c7339376d6c27fbbf2767770be3de1df63d008c"
+
+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"
diff --git a/meta-oe/recipes-support/opensc/files/0001-pkcs11-tool-Fix-private-key-import.patch b/meta-oe/recipes-support/opensc/files/0001-pkcs11-tool-Fix-private-key-import.patch
new file mode 100644
index 0000000000..e270a8e2e6
--- /dev/null
+++ b/meta-oe/recipes-support/opensc/files/0001-pkcs11-tool-Fix-private-key-import.patch
@@ -0,0 +1,33 @@
+From 6f868bbcd9e65447f459f74381c09d1e315a32f6 Mon Sep 17 00:00:00 2001
+From: Jakub Jelen <jjelen@redhat.com>
+Date: Thu, 1 Dec 2022 20:08:53 +0100
+Subject: [PATCH 1/2] pkcs11-tool: Fix private key import
+
+Upstream-Status: Backport
+---
+ src/tools/pkcs11-tool.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
+index aae205fe2cd6..cfee8526d5b0 100644
+--- a/src/tools/pkcs11-tool.c
++++ b/src/tools/pkcs11-tool.c
+@@ -3669,13 +3669,13 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ RSA_get0_factors(r, &r_p, &r_q);
+ RSA_get0_crt_params(r, &r_dmp1, &r_dmq1, &r_iqmp);
+ #else
+- if (EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR1, &r_d) != 1 ||
++ if (EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_D, &r_d) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR1, &r_p) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR2, &r_q) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT1, &r_dmp1) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT2, &r_dmq1) != 1 ||
+- EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT3, &r_iqmp) != 1) {
+ util_fatal("OpenSSL error during RSA private key parsing");
++ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_COEFFICIENT1, &r_iqmp) != 1) {
+ }
+ #endif
+ RSA_GET_BN(rsa, private_exponent, r_d);
+--
+2.30.2
+
diff --git a/meta-oe/recipes-support/opensc/files/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch b/meta-oe/recipes-support/opensc/files/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch
new file mode 100644
index 0000000000..880a13ac61
--- /dev/null
+++ b/meta-oe/recipes-support/opensc/files/0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch
@@ -0,0 +1,54 @@
+From 4b5702409e7feea8cb410254285c120c57c10e1b Mon Sep 17 00:00:00 2001
+From: Jakub Jelen <jjelen@redhat.com>
+Date: Thu, 1 Dec 2022 20:11:41 +0100
+Subject: [PATCH 2/2] pkcs11-tool: Log more information on OpenSSL errors
+
+Upstream-Status: Backport
+---
+ src/tools/pkcs11-tool.c | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/src/tools/pkcs11-tool.c b/src/tools/pkcs11-tool.c
+index cfee8526d5b0..f2e6b1dd91cd 100644
+--- a/src/tools/pkcs11-tool.c
++++ b/src/tools/pkcs11-tool.c
+@@ -3641,10 +3641,8 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ const BIGNUM *r_dmp1, *r_dmq1, *r_iqmp;
+ r = EVP_PKEY_get1_RSA(pkey);
+ if (!r) {
+- if (private)
+- util_fatal("OpenSSL error during RSA private key parsing");
+- else
+- util_fatal("OpenSSL error during RSA public key parsing");
++ util_fatal("OpenSSL error during RSA %s key parsing: %s", private ? "private" : "public",
++ ERR_error_string(ERR_peek_last_error(), NULL));
+ }
+
+ RSA_get0_key(r, &r_n, &r_e, NULL);
+@@ -3654,10 +3652,8 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ BIGNUM *r_dmp1 = NULL, *r_dmq1 = NULL, *r_iqmp = NULL;
+ if (EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_N, &r_n) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_E, &r_e) != 1) {
+- if (private)
+- util_fatal("OpenSSL error during RSA private key parsing");
+- else
+- util_fatal("OpenSSL error during RSA public key parsing");
++ util_fatal("OpenSSL error during RSA %s key parsing: %s", private ? "private" : "public",
++ ERR_error_string(ERR_peek_last_error(), NULL));
+ }
+ #endif
+ RSA_GET_BN(rsa, modulus, r_n);
+@@ -3674,8 +3670,9 @@ parse_rsa_pkey(EVP_PKEY *pkey, int private, struct rsakey_info *rsa)
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_FACTOR2, &r_q) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT1, &r_dmp1) != 1 ||
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_EXPONENT2, &r_dmq1) != 1 ||
+- util_fatal("OpenSSL error during RSA private key parsing");
+ EVP_PKEY_get_bn_param(pkey, OSSL_PKEY_PARAM_RSA_COEFFICIENT1, &r_iqmp) != 1) {
++ util_fatal("OpenSSL error during RSA private key parsing: %s",
++ ERR_error_string(ERR_peek_last_error(), NULL));
+ }
+ #endif
+ RSA_GET_BN(rsa, private_exponent, r_d);
+--
+2.30.2
+
diff --git a/meta-oe/recipes-support/opensc/opensc_0.16.0.bb b/meta-oe/recipes-support/opensc/opensc_0.16.0.bb
deleted file mode 100644
index fd67181dc2..0000000000
--- a/meta-oe/recipes-support/opensc/opensc_0.16.0.bb
+++ /dev/null
@@ -1,44 +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"
-
-SRC_URI = "${DEBIAN_MIRROR}/main/o/${BPN}/${BPN}_${PV}.orig.tar.gz"
-
-SRC_URI[md5sum] = "724d128f23cd7a74b28d04300ce7bcbd"
-SRC_URI[sha256sum] = "3ac8c29542bb48179e7086d35a1b8907a4e86aca3de3323c2f48bd74eaaf5729"
-
-DEPENDS = "openct pcsc-lite virtual/libiconv openssl"
-
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-
-inherit autotools pkgconfig
-
-EXTRA_OECONF = " \
- --disable-static \
- --enable-openct \
- --disable-pcsc \
- --disable-ctapi \
- --disable-doc \
-"
-EXTRA_OEMAKE = "DESTDIR=${D}"
-
-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 \
-"
diff --git a/meta-oe/recipes-support/opensc/opensc_0.23.0.bb b/meta-oe/recipes-support/opensc/opensc_0.23.0.bb
new file mode 100644
index 0000000000..f68107df87
--- /dev/null
+++ b/meta-oe/recipes-support/opensc/opensc_0.23.0.bb
@@ -0,0 +1,51 @@
+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 = "5497519ea6b4af596628f8f8f2f904bacaa3148f"
+SRC_URI = "git://github.com/OpenSC/OpenSC;branch=master;protocol=https \
+ file://0001-pkcs11-tool-Fix-private-key-import.patch \
+ file://0002-pkcs11-tool-Log-more-information-on-OpenSSL-errors.patch \
+ "
+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/opensync/wbxml2_0.10.8.bb b/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb
index 8c948c5655..1c5a18e863 100644
--- a/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb
+++ b/meta-oe/recipes-support/opensync/wbxml2_0.10.8.bb
@@ -1,7 +1,7 @@
SUMMARY = "WBXML parsing and encoding library"
HOMEPAGE = "http://libwbxml.opensync.org/"
SECTION = "libs"
-LICENSE = "LGPLv2.1+"
+LICENSE = "LGPL-2.1-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=c1128ee5341ccd5927d8bafe4b6266e1"
DEPENDS = "expat"
@@ -19,5 +19,5 @@ EXTRA_OECMAKE = "-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}"
PACKAGES += "${PN}-tools"
-FILES_${PN}-tools = "${bindir}"
-FILES_${PN} = "${libdir}/*.so.*"
+FILES:${PN}-tools = "${bindir}"
+FILES:${PN} = "${libdir}/*.so.*"
diff --git a/meta-oe/recipes-support/openwbem/openwbem/checkserverkey b/meta-oe/recipes-support/openwbem/openwbem/checkserverkey
deleted file mode 100644
index bcfa361010..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/checkserverkey
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/bin/bash
-
-if [ ! -f "/etc/openwbem/serverkey.pem" ]; then
- if [ -f "/etc/ssl/servercerts/servercert.pem" \
- -a -f "/etc/ssl/servercerts/serverkey.pem" ]; then
- echo "Using common server certificate /etc/ssl/servercerts/servercert.pem"
- ln -s /etc/ssl/servercerts/server{cert,key}.pem /etc/openwbem/
- else
- echo "FAILED: Starting OpenWBEM server"
- echo "There is no ssl server key available for OpenWBEM server to use."
- echo -e "Please generate one with the following script and start the OpenWBEM service again:\n"
- echo "##################################"
- echo "/etc/openwbem/owgencert"
- echo "================================="
-
- echo "NOTE: The script uses /dev/random device for generating some random bits while generating the server key."
- echo " If this takes too long, you can replace the value of \"RANDFILE\" in /etc/openwsman/ssleay.cnf with /dev/urandom. Please understand the implications"
- exit 1
- fi
-fi
diff --git a/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh b/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh
deleted file mode 100644
index dd87811a37..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/loadmof.sh
+++ /dev/null
@@ -1,118 +0,0 @@
-#!/bin/sh
-#
-# options:
-# loadmof.sh <MOF_PATH> <NAMESPACE> <FILES>
-#
-# - or -
-#
-# options:
-# loadmof.sh -n <NAMESPACE> <FILES> [...]
-#
-# The former is preserved for compatibility with Pegasus and
-# sblim providers. The latter is preferred. If $1 is "-n",
-# the latter code path is executed. Otherwise the former is
-# executed.
-
-if [ "x$1" != "x-n" -a "x$1" != "x-v" ]; then
-# OLD STYLE
-if [ -f "/etc/init.d/owcimomd" ]; then
- /etc/init.d/owcimomd status 1>&2 > /dev/null
- if [ $? = "0" ]; then
- CIMOM_RUNNING="true"
- else
- CIMOM_RUNNING="false"
- fi
-else
- exit 1
-fi
-if [ "$YAST_IS_RUNNING" = "instsys" ]; then
- CIMOM_RUNNING="false"
-fi
-
-CIMOM=$1
-shift
-case "$CIMOM" in
- pegasus)
- exit 0
- ;;
-esac
-MOF_PATH=$1
-shift
-NS=$1
-shift
-
-REPOSITORY="/var/lib/openwbem"
-#tmp_dir=`mktemp -d -p /tmp openwbem.XXXXXX`
-case "$CIMOM_RUNNING" in
- true|false)
- while [ "$#" -gt 0 ]
- do
- echo "Loading $MOF_PATH/$1"
- #sed "s/cmpi:/cmpi::/g" $MOF_PATH/$1 > $tmp_dir/$1
- /usr/bin/owmofc -c -n $NS -d $REPOSITORY $MOF_PATH/$1 > /dev/null 2>&1
- shift
- done
- ;;
-esac
-#rm -rf $tmp_dir
-# END OLD STYLE
-
-else
-# NEW STYLE
-if [ "x$3" = "x" ]; then
- echo "Usage: $0 -n <NAMESPACE> <FILES> [...]"
- exit 1
-fi
-
-if [ "x$1" = "x-v" ]; then
- VERBOSE=1
- shift
-fi
-
-# get rid of "-n" arg
-shift
-
-NS="$1"
-
-shift
-
-DBDIR=/var/lib/openwbem
-LOGFILE=$DBDIR/loadmof.log
-CIMOM_INIT=/etc/init.d/owcimomd
-if [ "$YAST_IS_RUNNING" != "instsys" ] ; then
- $CIMOM_INIT status > /dev/null 2>&1
- CIMOM_RUNNING=$?
-fi
-if [ "x$CIMOM_RUNNING" = "x0" ]; then
- $CIMOM_INIT stop > /dev/null 2>&1
-fi
-bkpdir=$DBDIR/backup-$$
-mkdir $bkpdir
-cp -a $DBDIR/*.{dat,ndx,lock} $bkpdir/
-rm -f $LOGFILE.9
-for i in 8 7 6 5 4 3 2 1 0; do
- let newI=$i+1
- if [ -f $LOGFILE.$i ]; then
- mv $LOGFILE.$i $LOGFILE.$newI
- fi
-done
-if [ -f $LOGFILE ]; then
- mv $LOGFILE $LOGFILE.0
-fi
-if [ "x$VERBOSE" = "x1" ]; then
- /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" 2>&1 | tee $LOGFILE
-else
- /usr/bin/owmofc -c -n $NS -d $DBDIR -s /usr/share/mof/cim-current "$@" > $LOGFILE 2>&1
-fi
-RVAL=$?
-if [ "x$RVAL" != "x0" ]; then
- echo "MOF import failed! Check $LOGFILE for details."
- mv $bkpdir/* $DBDIR/
-fi
-rm -rf $bkpdir
-if [ "x$CIMOM_RUNNING" = "x0" ]; then
- $CIMOM_INIT start > /dev/null 2>&1
-fi
-exit $RVAL
-fi
-
diff --git a/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof b/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof
deleted file mode 100644
index c9970c79e9..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/novell-openwbem-root-acl.mof
+++ /dev/null
@@ -1,21 +0,0 @@
-#pragma namespace("root/security")
-
-instance of OpenWBEM_NamespaceACL
-{
- nspace = "root";
- capability = "";
-};
-
-instance of OpenWBEM_NamespaceACL
-{
- nspace = "root/cimv2";
- capability = "";
-};
-
-instance of OpenWBEM_UserACL
-{
- nspace = "root/cimv2";
- username = "root";
- capability = "rw";
-};
-
diff --git a/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem b/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem
deleted file mode 100644
index b3785aa49d..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/openwbem-etc_pam.d_openwbem
+++ /dev/null
@@ -1,7 +0,0 @@
-#%PAM-1.0
-auth required pam_unix2.so nullok
-auth required pam_nologin.so
-account required pam_unix2.so
-password required pam_pwcheck.so nullok
-password required pam_unix2.so nullok use_first_pass use_authtok
-session required pam_unix2.so none
diff --git a/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init b/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init
deleted file mode 100644
index 47fa8a7c67..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/openwbem-owcimomd.init
+++ /dev/null
@@ -1,131 +0,0 @@
-#!/bin/sh
-#
-### BEGIN INIT INFO
-# Provides: owcimomd
-# Required-Start: $network
-# Required-Stop: $network
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: OpenWBEM CIMOM Daemon
-# Description: owcimomd
-# Start/Stop the OpenWBEM CIMOM Daemon
-### END INIT INFO
-#
-#
-# chkconfig: 2345 36 64
-# description: OpenWBEM CIMOM Daemon
-# processname: owcimomd
-
-NAME=owcimomd
-DAEMON=/usr/sbin/$NAME
-OPTIONS=
-PIDFILE=/var/run/$NAME.pid
-
-if [ $EUID != 0 ]; then
- echo "This script must be run as root."
- exit 1;
-fi
-
-if [ "$DESCRIPTIVE" = "" ]; then
- DESCRIPTIVE="OpenWBEM CIMOM Daemon"
-fi
-
-lockfile=${SVIlock:-/var/lock/subsys/$NAME}
-
-[ -x $DAEMON ] || exit 0
-
-# See how we were called.
-. /etc/init.d/functions
-
-start() {
- if [ ! -f "/etc/openwbem/serverkey.pem" ]; then
- if [ -f "/etc/ssl/servercerts/servercert.pem" \
- -a -f "/etc/ssl/servercerts/serverkey.pem" ]; then
- echo "Using common server certificate /etc/ssl/servercerts/servercert.pem"
- ln -s /etc/ssl/servercerts/server{cert,key}.pem /etc/openwbem/
- else
- echo "Generating OpenWBEM server public certificate and private key"
- FQDN=`hostname --fqdn`
- if [ "x${FQDN}" = "x" ]; then
- FQDN=localhost.localdomain
- fi
-cat << EOF | sh /etc/openwbem/owgencert > /dev/null 2>&1
---
-SomeState
-SomeCity
-SomeOrganization
-SomeOrganizationalUnit
-${FQDN}
-root@${FQDN}
-EOF
- fi
- fi
-
- # Start daemons.
- echo -n "Starting the $DESCRIPTIVE"
- daemon $DAEMON $OPTIONS > /dev/null 2>&1
- RETVAL=$?
-
- if [ $RETVAL -eq 0 ]; then
- touch $lockfile
- success
- fi
-
- echo
- return $RETVAL
-}
-
-stop() {
- # Stop daemons.
- echo -n "Shutting down $DESCRIPTIVE"
- killproc $DAEMON
- RETVAL=$?
-
- if [ $RETVAL -eq 0 ]; then
- rm -f $lockfile
- success
- else
- failure
- fi
- echo
- return $RETVAL
-}
-
-restart() {
- stop
- start
-}
-
-case "$1" in
- start)
- start
- ;;
-
- stop)
- stop
- ;;
-
- restart|force-reload)
- restart
- ;;
-
- reload)
- echo -n "Reload service $DESCRIPTIVE"
- killproc -p $PIDFILE -HUP $DAEMON
- RETVAL=$?
- echo
- exit $RETVAL
- ;;
-
- status)
- echo -n "Checking for service $DESCRIPTIVE"
- status $DAEMON
- RETVAL=$?
- exit $RETVAL
- ;;
-
- *)
- echo "Usage: $0 {restart|start|stop|reload|force-reload|status}"
-esac
-
-exit $RETVAL
diff --git a/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc b/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc
deleted file mode 100644
index 785e32aaa6..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/openwbem-rpmlintrc
+++ /dev/null
@@ -1,2 +0,0 @@
-addFilter("devel-file-in-non-devel-package .*/lib.*\.so")
-
diff --git a/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service b/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service
deleted file mode 100644
index c6694b7196..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/owcimomd.service
+++ /dev/null
@@ -1,12 +0,0 @@
-[Unit]
-Description=Web Based Enterprise Management (WBEM) Implementation
-After=syslog.target
-
-[Service]
-Type=forking
-ExecStart=/usr/sbin/owcimomd
-ExecStartPre=/etc/openwbem/checkserverkey
-PIDFile=/var/run/owcimomd.pid
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh b/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh
deleted file mode 100644
index a495415be5..0000000000
--- a/meta-oe/recipes-support/openwbem/openwbem/rmmof.sh
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-#
-# options:
-# rmmof.sh <MOF_PATH> <NAMESPACE> <FILES>
-#
-# - or -
-#
-# options:
-# loadmof.sh -n <NAMESPACE> <FILES> [...]
-#
-# The former is preserved for compatibility with Pegasus and
-# sblim providers. The latter is preferred. If $1 is "-n",
-# the latter code path is executed. Otherwise the former is
-# executed.
-
-if [ "x$3" = "x" ]; then
- echo "Usage: $0 -n <NAMESPACE> <FILES> [...]"
- exit 1
-fi
-
-# get rid of "-n" arg
-shift
-
-NS="$1"
-
-shift
-
-DBDIR=/var/lib/openwbem
-CIMOM_INIT=/etc/init.d/owcimomd
-if [ "$YAST_IS_RUNNING" != "instsys" ] ; then
- $CIMOM_INIT status
- CIMOM_RUNNING=$?
-fi
-if [ "x$CIMOM_RUNNING" = "x0" ]; then
- $CIMOM_INIT stop
-fi
-bkpdir=/tmp/owrep.bkp-$$
-mkdir $bkpdir
-cp -a $DBDIR $bkpdir/
-echo "Compiling MOF files"
-/usr/bin/owmofc -r -n $NS -d $DBDIR "$@" > /dev/null 2>&1
-RVAL=$?
-if [ "x$RVAL" != "x0" ]; then
- echo "MOF import failed!"
- rm -rf $DBDIR
- mv $bkpdir/openwbem $DBDIR
-fi
-rm -rf $bkpdir
-if [ "x$CIMOM_RUNNING" = "x0" ]; then
- $CIMOM_INIT start
-fi
-exit $RVAL
-
diff --git a/meta-oe/recipes-support/p910nd/p910nd_0.95.bb b/meta-oe/recipes-support/p910nd/p910nd_0.95.bb
deleted file mode 100644
index 5ebbb29e10..0000000000
--- a/meta-oe/recipes-support/p910nd/p910nd_0.95.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "A small network printer daemon for embedded situations that passes the job directly to the printer"
-HOMEPAGE = "http://p910nd.sourceforge.net/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
-
-PR = "r2"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/p910nd/p910nd-${PV}.tar.bz2 \
- file://fix-var-lock.patch"
-
-SRC_URI[md5sum] = "c7ac6afdf7730ac8387a8e87198d4491"
-SRC_URI[sha256sum] = "7d78642c86dc247fbdef1ff85c56629dcdc6b2a457c786420299e284fffcb029"
-
-do_compile () {
- ${CC} ${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
-}
diff --git a/meta-oe/recipes-support/p910nd/p910nd_0.97.bb b/meta-oe/recipes-support/p910nd/p910nd_0.97.bb
new file mode 100644
index 0000000000..cd7f79ea60
--- /dev/null
+++ b/meta-oe/recipes-support/p910nd/p910nd_0.97.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "A small network printer daemon for embedded situations that passes the job directly to the printer"
+HOMEPAGE = "http://p910nd.sourceforge.net/"
+SECTION = "console/utils"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=3d82780e8917b360cbee7b9ec3e40734"
+
+PR = "r2"
+
+# v0.97
+SRCREV = "57ebc07ad8723ea4106090536c58c7f7160743e2"
+SRC_URI = "git://github.com/kenyapcomau/p910nd;protocol=https;branch=master \
+ file://fix-var-lock.patch"
+
+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} ${CFLAGS} ${LDFLAGS} -o p910nd p910nd.c
+}
+
+do_install () {
+ install -D -m 0755 ${S}/p910nd ${D}${sbindir}/p910nd
+ 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_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
new file mode 100644
index 0000000000..4cafa7234b
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp.inc
@@ -0,0 +1,40 @@
+SUMMARY = "System-level performance monitoring and performance management"
+HOMEPAGE = "http://www.pcp.io"
+SECTION = "Applications/System"
+
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=37ab75b580d5aad4ada04260efa3702f \
+ "
+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] = "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-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
new file mode 100644
index 0000000000..abf4aee61d
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp/0001-Remove-unsuitble-part-for-cross-compile.patch
@@ -0,0 +1,39 @@
+From db9e6a4b7a48dee62fccb662347dd638a2d286d5 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Thu, 2 Dec 2021 14:29:06 +0900
+Subject: [PATCH] Remove unsuitble part for cross-compile.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ configure.ac | 6 ------
+ src/libpcp/src/GNUmakefile | 1 -
+ 2 files changed, 7 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -607,12 +607,6 @@ fi
+ which=$WHICH
+ AC_SUBST(which)
+
+-if test -z "$AR"; then
+- AC_PATH_PROGS(AR, [gcc-ar ar], /usr/bin/ar)
+-fi
+-if test ! -x "$AR"; then
+- AC_MSG_ERROR([cannot find a valid 'ar' command.])
+-fi
+ ar=$AR
+ AC_SUBST(ar)
+
+--- a/src/libpcp/src/GNUmakefile
++++ b/src/libpcp/src/GNUmakefile
+@@ -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),)
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
new file mode 100644
index 0000000000..b03c48e581
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp/0001-configure-Limit-the-header-search-to-sysroot.patch
@@ -0,0 +1,45 @@
+From 1eb68f65fd73443d862ca5f36f3b6041e2b0f13a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 10 Mar 2022 18:53:13 -0800
+Subject: [PATCH] configure: Limit the header search to sysroot
+
+Hardcoded paths in configure.ac means it starts to poke at host system
+include paths, which is least we want in a cross build, therefore prefix
+these paths with STAGING_SYSROOT
+
+Upstream-Status: Inappropriate [OE Specific]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 20 ++++++++++----------
+ 1 file changed, 10 insertions(+), 10 deletions(-)
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -907,7 +907,7 @@ AC_DEFUN([PCP_CHECK_PYTHON_HEADER],
+ [ PY_MAJOR="$1"
+ PY_MINOR="$2"
+ PY_VERSION="python$PY_MAJOR.$PY_MINOR"
+- PY_INCLUDE_DIRS="-I/usr/include/${PY_VERSION}m -I/usr/include/${PY_VERSION}"
++ PY_INCLUDE_DIRS="-I${STAGING_INCDIR}/${PY_VERSION}m -I${STAGING_INCDIR}/${PY_VERSION}"
+ saved_CFLAGS="$CFLAGS"
+ saved_CPPFLAGS="$CPPFLAGS"
+ CFLAGS="$CFLAGS $PY_INCLUDE_DIRS"
+@@ -1603,7 +1603,7 @@ AC_SUBST(qmake)
+
+ enable_qt3d=false
+ AS_IF([test "x$do_qt3d" != "xno"], [
+- if test -f /usr/include/Coin3/Inventor/Qt/SoQt.h -o -f /usr/include/Inventor/Qt/SoQt.h
++ if test -f ${STAGING_INCDIR}/Coin3/Inventor/Qt/SoQt.h -o -f ${STAGING_INCDIR}/Inventor/Qt/SoQt.h
+ then
+ enable_qt3d=$enable_qt
+ elif test x"$do_qt3d" = x"yes"
+@@ -3699,7 +3699,7 @@ AC_SUBST(enable_decompression)
+ AC_SUBST(enable_lzma)
+
+ dnl check for array sessions
+-if test -f /usr/include/sn/arsess.h
++if test -f ${STAGING_INCDIR}/sn/arsess.h
+ then
+ pcp_mpi_dirs=libpcp_mpi\ libpcp_mpiread
+ else
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/config.linux b/meta-oe/recipes-support/pcp/pcp/config.linux
new file mode 100644
index 0000000000..191f87acc6
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp/config.linux
@@ -0,0 +1,13 @@
+sizeof_int=4
+sizeof_long=4
+sizeof_pointer=8
+sizeof_suseconds_t=8
+sizeof_time_t=8
+bit_field_scheme=2100
+enable_python3='yes'
+enable_python3='true'
+have_python_OrderedDict="true"
+have_python=python3
+printf_p_prefix=0x
+printf_fmt_int64=I64d
+strtoint64=strtoll
diff --git a/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch b/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch
new file mode 100644
index 0000000000..9cb649a594
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp/fix_parallel_make.patch
@@ -0,0 +1,13 @@
+Upstream-Status: Pending
+
+--- a/qa/src/GNUlocaldefs
++++ b/qa/src/GNUlocaldefs
+@@ -728,7 +728,7 @@ scale.o: localconfig.h
+ 779246.o: libpcp.h
+ aggrstore.o: libpcp.h
+ badmmv.o: libpcp.h
+-chkacc1.o: libpcp.h
++chkacc1.o: libpcp.h localconfig.h
+ chkacc2.o: libpcp.h
+ chkacc3.o: libpcp.h
+ chkacc4.o: libpcp.h
diff --git a/meta-oe/recipes-support/pcp/pcp/pass-options-to-AR.patch b/meta-oe/recipes-support/pcp/pcp/pass-options-to-AR.patch
new file mode 100644
index 0000000000..6fa864cd21
--- /dev/null
+++ b/meta-oe/recipes-support/pcp/pcp/pass-options-to-AR.patch
@@ -0,0 +1,29 @@
+Do not pass cr option
+
+These options are already coming from builddefs
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/src/include/builddefs.in
++++ b/src/include/builddefs.in
+@@ -167,7 +167,7 @@ OBJECTS = $(ASFILES:.s=.o) \
+
+ #NB: don't override $(MAKE); gnumake sets it well, propagating -j etc.
+ #MAKE = @make@
+-AR = @ar@
++AR = @ar@ cqs
+ CC = @cc@
+ CXX = @cxx@
+ LD = @ld@
+--- a/src/include/buildrules
++++ b/src/include/buildrules
+@@ -93,7 +93,7 @@ $(STATICLIBTARGET) : $(SUBDIRS) $(OBJECT
+ ifeq ($(TARGET_OS), darwin)
+ libtool -static -o $(STATICLIBTARGET) $?
+ else
+- $(AR) cr $(STATICLIBTARGET) $?
++ $(AR) $(STATICLIBTARGET) $?
+ endif
+ endif
+
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..b337df6ea4
--- /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}/${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-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.8.22.bb b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
deleted file mode 100644
index 90d58b00d9..0000000000
--- a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_1.8.22.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "PC/SC Lite smart card framework and applications"
-HOMEPAGE = "http://pcsclite.alioth.debian.org/"
-LICENSE = "BSD & GPLv3+"
-LICENSE_${PN} = "BSD"
-LICENSE_${PN}-lib = "BSD"
-LICENSE_${PN}-doc = "BSD"
-LICENSE_${PN}-dev = "BSD"
-LICENSE_${PN}-dbg = "BSD & GPLv3+"
-LICENSE_${PN}-spy = "GPLv3+"
-LICENSE_${PN}-spy-dev = "GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f38b3d1c7ef7fc2c8b6d20cd38efdc29"
-DEPENDS = "udev"
-
-SRC_URI = "https://alioth.debian.org/frs/download.php/file/4225/pcsc-lite-${PV}.tar.bz2"
-SRC_URI[md5sum] = "0ec103b1ef298d0c58d6ef6b00b9cf17"
-SRC_URI[sha256sum] = "6a358f61ed3b66a7f6e1f4e794a94c7be4c81b7a58ec360c33791e8d7d9bd405"
-
-
-inherit autotools systemd pkgconfig
-
-EXTRA_OECONF = " \
- --disable-libusb \
- --enable-libudev \
- --enable-usbdropdir=${libdir}/pcsc/drivers \
-"
-
-S = "${WORKDIR}/pcsc-lite-${PV}"
-
-PACKAGES = "${PN} ${PN}-dbg ${PN}-dev ${PN}-lib ${PN}-doc ${PN}-spy ${PN}-spy-dev"
-
-RRECOMMENDS_${PN} = "ccid"
-
-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 +="python"
diff --git a/meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.0.bb b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.0.bb
new file mode 100644
index 0000000000..e7f4551afa
--- /dev/null
+++ b/meta-oe/recipes-support/pcsc-lite/pcsc-lite_2.0.0.bb
@@ -0,0 +1,56 @@
+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] = "d6c3e2b64510e5ed6fcd3323febf2cc2a8e5fda5a6588c7671f2d77f9f189356"
+
+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-tools/pcsc-tools_1.6.2.bb b/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.2.bb
new file mode 100644
index 0000000000..b71fb0427b
--- /dev/null
+++ b/meta-oe/recipes-support/pcsc-tools/pcsc-tools_1.6.2.bb
@@ -0,0 +1,24 @@
+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 = "b1018b83346f8a3bc3d42c96f2ed4dc62147cb24"
+
+inherit autotools pkgconfig
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "pcsc-lite"
+
+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"
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
new file mode 100644
index 0000000000..c6b01d06fc
--- /dev/null
+++ b/meta-oe/recipes-support/picocom/picocom/0001-Fix-building-with-musl.patch
@@ -0,0 +1,118 @@
+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 e091094cf4..55dc292710 100644
--- a/meta-oe/recipes-support/picocom/picocom_git.bb
+++ b/meta-oe/recipes-support/picocom/picocom_git.bb
@@ -1,15 +1,17 @@
-SUMMARY = "Lightweight and minimal (~20K) dumb-terminal emulation program"
+SUMMARY = "Lightweight and minimal dumb-terminal emulation program"
SECTION = "console/utils"
-LICENSE = "GPLv2+"
-HOMEPAGE = "http://code.google.com/p/picocom/"
+LICENSE = "GPL-2.0-or-later"
+HOMEPAGE = "https://github.com/npat-efault/picocom"
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3000e4830620e310fe65c0eb69df9e8a"
-BASEPV = "2.2"
+BASEPV = "3.1"
PV = "${BASEPV}+git${SRCPV}"
-SRCREV = "deffd18c24145bd6f965f44e735a50b65810ccdc"
+SRCREV = "90385aabe2b51f39fa130627d46b377569f82d4a"
-SRC_URI = "git://github.com/npat-efault/picocom"
+SRC_URI = "git://github.com/npat-efault/picocom;branch=master;protocol=https \
+ file://0001-Fix-building-with-musl.patch \
+ "
S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb b/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb
new file mode 100644
index 0000000000..ad6a7501c5
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/funyahoo-plusplus_git.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Protocol plugin for New Yahoo (2016) for Adium, Pidgin, Miranda and Telepathy IM Framework"
+SECTION = "webos/services"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84dcc94da3adb52b53ae4fa38fe49e5d"
+
+DEPENDS = "pidgin json-glib glib-2.0"
+
+inherit pkgconfig
+
+SRC_URI = "git://github.com/EionRobb/funyahoo-plusplus;branch=master;protocol=https"
+SRCREV = "fbbd9c591100aa00a0487738ec7b6acd3d924b3f"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ oe_runmake CC="${CC}" CXX="${CXX}" EXTRA_INCLUDES="${TARGET_CFLAGS}" AR="${AR}";
+}
+
+do_install() {
+ oe_runmake DESTDIR="${D}" install;
+}
+
+FILES:${PN} += " \
+ ${libdir} \
+"
diff --git a/meta-oe/recipes-support/pidgin/icyque_git.bb b/meta-oe/recipes-support/pidgin/icyque_git.bb
new file mode 100644
index 0000000000..fe75415de2
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/icyque_git.bb
@@ -0,0 +1,27 @@
+SUMMARY = "WIM Protocol plugin for ICQ for Adium, Pidgin, Miranda and Telepathy IM Framework"
+SECTION = "webos/services"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+DEPENDS = "pidgin json-glib"
+
+PV = "0.1+gitr${SRCPV}"
+
+inherit pkgconfig
+
+SRC_URI = "git://github.com/EionRobb/icyque;branch=master;protocol=https"
+SRCREV = "513fc162d5d1a201c2b044e2b42941436d1069d5"
+
+S = "${WORKDIR}/git"
+
+do_compile() {
+ oe_runmake;
+}
+
+do_install() {
+ oe_runmake DESTDIR="${D}" install;
+}
+
+FILES:${PN} += " \
+ ${libdir} \
+"
diff --git a/meta-oe/recipes-support/pidgin/libgnt/0001-meson-import-changes-from-3.0.-version.patch b/meta-oe/recipes-support/pidgin/libgnt/0001-meson-import-changes-from-3.0.-version.patch
new file mode 100644
index 0000000000..8bb60b5557
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/libgnt/0001-meson-import-changes-from-3.0.-version.patch
@@ -0,0 +1,215 @@
+From 51d66c1c257f7487497f562033ac32ac75f648cb Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Mon, 8 Feb 2021 12:27:51 +0100
+Subject: [PATCH] meson: import changes from 3.0.* version
+
+* we need to use the meson option to disable introspection and docs
+
+Upstream-Status: Backport
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ meson.build | 139 ++++++++++++++++++++++++++++------------------
+ meson_options.txt | 5 ++
+ 2 files changed, 90 insertions(+), 54 deletions(-)
+ create mode 100644 meson_options.txt
+
+diff --git a/meson.build b/meson.build
+index 1084c82..ed040b4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -53,9 +53,9 @@ compiler = meson.get_compiler('c')
+ pkgconfig = import('pkgconfig')
+
+ # #######################################################################
+-# # Check for GLib 2.16
++# # Check for GLib 2.44
+ # #######################################################################
+-glib = dependency('glib-2.0', version : '>= 2.16.0')
++glib = dependency('glib-2.0', version : '>= 2.44.0')
+ gobject = dependency('gobject-2.0')
+ gmodule = dependency('gmodule-2.0')
+ gnome = import('gnome')
+@@ -63,74 +63,88 @@ gnome = import('gnome')
+ #######################################################################
+ # Check for LibXML2
+ #######################################################################
+-libxml = dependency('libxml-2.0', version : '>= 2.6.0', required : false)
+-gnt_config.set('NO_LIBXML', not libxml.found())
++libxml = dependency('libxml-2.0', version : '>= 2.6.0')
+
+ #######################################################################
+ # Check for ncurses and other things used by it
+ #######################################################################
+ ncurses_available = true
+-ncurses_inc = []
+-# The order of this list is important to the condition that follows.
+-ncurses_libs = [
+- compiler.find_library('ncursesw', required : false),
+- compiler.find_library('panelw', required : false),
+- compiler.find_library('tinfow', required : false),
+-]
+-if not ncurses_libs[0].found() or not ncurses_libs[1].found()
+- ncurses_available = false
+-endif
++ncurses_widechar = true
++ncurses_header = 'ncurses.h'
++# Some distros put the headers in ncursesw/, some don't. These are ordered to
++# pick the last available as most-specific version.
++ncursesw_header_paths = ['', 'ncursesw/']
+
+-if host_machine.system() == 'windows'
+- # FIXME: $host ?
+- ncurses_sys_prefix = '/usr/$host/sys-root/mingw'
++ncurses = [
++ dependency('ncursesw', required : false),
++ dependency('panelw', required : false),
++]
++if ncurses[0].found() and ncurses[1].found()
++ foreach location : ncursesw_header_paths
++ f = location + 'ncurses.h'
++ if compiler.has_header_symbol(f, 'get_wch',
++ prefix : '#define _XOPEN_SOURCE_EXTENDED')
++ ncurses_header = f
++ endif
++ endforeach
+ else
+- ncurses_sys_prefix = '/usr'
+-endif
+-
+-ncurses_sys_dirs = [ncurses_sys_prefix + '/include/ncursesw',
+- ncurses_sys_prefix + '/include']
+-
+-if ncurses_available
+- # Some distros put the headers in ncursesw/, some don't
+- found_ncurses_h = false
+- foreach location : ncurses_sys_dirs
+- f = location + '/ncurses.h'
+- if not found_ncurses_h
++ ncurses_available = false
++ ncurses_inc = []
++ ncurses_libs = [
++ compiler.find_library('ncursesw', required : false),
++ compiler.find_library('panelw', required : false)
++ ]
++ if ncurses_libs[0].found() and ncurses_libs[1].found()
++ foreach location : ncursesw_header_paths
++ f = location + 'ncurses.h'
+ if compiler.has_header_symbol(f, 'get_wch',
+ prefix : '#define _XOPEN_SOURCE_EXTENDED')
+- if location != '.'
+- ncurses_inc += [include_directories(location)]
+- endif
+- found_ncurses_h = true
++ ncurses_available = true
++ ncurses_header = f
+ endif
+- endif
+- endforeach
++ endforeach
+
+- if not found_ncurses_h
+- ncurses_inc = []
+- ncurses_libs = []
+- ncurses_available = false
++ if ncurses_available
++ ncurses = declare_dependency(
++ include_directories : ncurses_inc,
++ dependencies : ncurses_libs
++ )
++ endif
+ endif
+-else
++endif
++
++if not ncurses_available
+ # ncursesw was not found. Look for plain old ncurses
+- # The order of this list is important to the condition that follows.
+- ncurses_libs = [
+- compiler.find_library('ncurses', required : false),
+- compiler.find_library('panel', required : false),
+- compiler.find_library('tinfo', required : false),
++ ncurses = [
++ dependency('ncurses', required : false),
++ dependency('panel', required : false),
+ ]
+- ncurses_available = ncurses_libs[0].found() and ncurses_libs[1].found()
+- gnt_config.set('NO_WIDECHAR', true)
++ if ncurses[0].found() and ncurses_libs[1].found()
++ ncurses_available = true
++ else
++ ncurses_libs = [
++ compiler.find_library('ncurses', required : false),
++ compiler.find_library('panel', required : false),
++ ]
++ ncurses_available = ncurses_libs[0].found() and ncurses_libs[1].found()
++ ncurses = declare_dependency(dependencies : ncurses_libs)
++ endif
++ ncurses_widechar = false
+ endif
++
++if not ncurses_available and host_machine.system() == 'windows'
++ # Try pdcurses too.
++ ncurses_header = 'curses.h'
++ ncurses_libs = compiler.find_library('pdcurses', required : false)
++ ncurses_available = compiler.has_header(ncurses_header) and ncurses_libs.found()
++ ncurses = declare_dependency(dependencies : ncurses_libs)
++endif
++
+ if not ncurses_available
+ error('ncurses could not be found!')
+ endif
+-
+-ncurses = declare_dependency(
+- include_directories : ncurses_inc,
+- dependencies : ncurses_libs
+-)
++gnt_config.set('NCURSES_HEADER', ncurses_header)
++gnt_config.set10('NCURSES_WIDECHAR', ncurses_widechar)
+
+ libgnt_SOURCES = [
+ 'gntwidget.c',
+@@ -191,7 +205,10 @@ libgnt_headers = [
+ ]
+
+ # Check for Python headers
+-python_dep = dependency('python2', required : false)
++python_dep = dependency('python3-embed', required: false)
++if not python_dep.found()
++ python_dep = dependency('python3', required : false)
++endif
+ gnt_config.set('USE_PYTHON', python_dep.found())
+
+ configure_file(output : 'gntconfig.h',
+@@ -233,6 +250,20 @@ pkgconfig.generate(
+ variables : ['plugindir = ${libdir}/gnt'],
+ )
+
++if get_option('introspection')
++ libgnt_gir = gnome.generate_gir(libgnt,
++ sources : libgnt_headers + [gnt_h],
++ includes : 'GObject-2.0',
++ namespace : 'Gnt',
++ symbol_prefix : 'gnt',
++ identifier_prefix : 'Gnt',
++ nsversion : '@0@.@1@'.format(gnt_major_version, gnt_minor_version),
++ install : true,
++ extra_args : ['-DGNT_COMPILATION', '--quiet'])
++endif
++
+ subdir('wms')
+ subdir('test')
+-subdir('doc')
++if get_option('doc')
++ subdir('doc')
++endif
+diff --git a/meson_options.txt b/meson_options.txt
+new file mode 100644
+index 0000000..f2414e2
+--- /dev/null
++++ b/meson_options.txt
+@@ -0,0 +1,5 @@
++option('doc', type : 'boolean', value : true, yield : true,
++ description : 'build documentation with gtk-doc')
++
++option('introspection', type : 'boolean', value : true, yield : true,
++ description : 'build introspection data')
diff --git a/meta-oe/recipes-support/pidgin/libgnt_2.14.1.bb b/meta-oe/recipes-support/pidgin/libgnt_2.14.1.bb
new file mode 100644
index 0000000000..d17a623063
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/libgnt_2.14.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "GNT: The GLib Ncurses Toolkit"
+
+SECTION = "libs"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=c9a1abacd0166f595a9fbe6afb1f0d5e"
+DEPENDS = "glib-2.0 ncurses libxml2 glib-2.0-native"
+
+inherit meson pkgconfig
+
+# SRCREV = "0a44b1d01c41"
+# SRC_URI = "hg://keep.imfreedom.org/${BPN};module=${BPN}
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/project/pidgin/${BPN}/${PV}/${BP}.tar.xz \
+ file://0001-meson-import-changes-from-3.0.-version.patch \
+"
+SRC_URI[sha256sum] = "5ec3e68e18f956e9998d79088b299fa3bca689bcc95c86001bc5da17c1eb4bd8"
+
+EXTRA_OEMESON = "-Dintrospection=false -Ddoc=false"
+
+FILES:${PN} += "${libdir}/gnt/s.so ${libdir}/gnt/irssi.so"
diff --git a/meta-oe/recipes-support/pidgin/libotr/0001-tests-Include-missing-sys-socket.h-header.patch b/meta-oe/recipes-support/pidgin/libotr/0001-tests-Include-missing-sys-socket.h-header.patch
new file mode 100644
index 0000000000..5b2e14b7b9
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/libotr/0001-tests-Include-missing-sys-socket.h-header.patch
@@ -0,0 +1,31 @@
+From aa2362e50d54fce8464d85766f5b230bf453c1f0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 8 Apr 2022 20:15:03 -0700
+Subject: [PATCH] tests: Include missing sys/socket.h header
+
+Helps define
+| ../../../../libotr-4.1.1/tests/regression/client/client.c:979:21: error: use of undeclared identifier 'PF_UNIX'
+| ../../../../libotr-4.1.1/tests/regression/client/client.c:979:30: error: use of undeclared identifier 'SOCK_STREAM'
+| ../../../../libotr-4.1.1/tests/regression/client/client.c:986:20: error: use of undeclared identifier 'AF_UNIX'
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tests/regression/client/client.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tests/regression/client/client.c b/tests/regression/client/client.c
+index e72b661..e0b3453 100644
+--- a/tests/regression/client/client.c
++++ b/tests/regression/client/client.c
+@@ -26,6 +26,7 @@
+ #include <stdlib.h>
+ #include <syscall.h>
+ #include <sys/epoll.h>
++#include <sys/socket.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
+ #include <unistd.h>
+--
+2.35.1
+
diff --git a/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb b/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
index c701244219..115a6968eb 100644
--- a/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
+++ b/meta-oe/recipes-support/pidgin/libotr_4.1.1.bb
@@ -1,12 +1,13 @@
SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
HOMEPAGE = "http://www.cypherpunks.ca/otr/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
DEPENDS = "libgcrypt libgpg-error"
SRC_URI = "http://www.cypherpunks.ca/otr/${BP}.tar.gz \
file://fix_qa-issue_include.patch \
file://sepbuild.patch \
+ file://0001-tests-Include-missing-sys-socket.h-header.patch \
"
SRC_URI[md5sum] = "dac5a8778a35f674c046ddf5d97e4d81"
diff --git a/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb b/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
index 5a21cd3fc9..326c5bfc57 100644
--- a/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
+++ b/meta-oe/recipes-support/pidgin/pidgin-otr_4.0.2.bb
@@ -1,6 +1,6 @@
SUMMARY = "(OTR) Messaging allows you to have private conversations over instant messaging"
HOMEPAGE = "https://otr.cypherpunks.ca/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=92fe174bad6da3763f6e9e9eaff6df24"
DEPENDS = "libgcrypt libotr pidgin gtk+ intltool-native glib-2.0 glib-2.0-native"
REQUIRED_DISTRO_FEATURES = "x11"
@@ -10,6 +10,6 @@ SRC_URI = "https://otr.cypherpunks.ca/${BP}.tar.gz \
SRC_URI[md5sum] = "7ef14e1334a4bc80e5d530f9a3cfc626"
SRC_URI[sha256sum] = "f4b59eef4a94b1d29dbe0c106dd00cdc630e47f18619fc754e5afbf5724ebac4"
-FILES_${PN} = "${libdir}/pidgin/*"
+FILES:${PN} = "${libdir}/pidgin/*"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
diff --git a/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch
new file mode 100644
index 0000000000..87a6435f7e
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch
@@ -0,0 +1,50 @@
+From 1110d3036e73d0571f70f6758f3179e5048c0b5d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 16 Nov 2019 11:07:42 -0800
+Subject: [PATCH] Align structs casts with time_t elements to 8byte boundary
+
+This helps with 64bit time_t conversion, especially where these
+structures are typcasted to another struct types which have time_t
+element, that now increases the natural alignment boundary of structures
+to 8-bytes.
+
+Fixes
+../../../pidgin-sipe-1.25.0/src/core/sipe-user.c:124:43: error: cast from 'struct sipe_core_public *' to 'struct sipe_core_private *' increases required alignment from 4 to 8 [-Werror,-Wcast-align]
+ struct sipe_core_private *sipe_private = SIPE_CORE_PRIVATE;
+ ^~~~~~~~~~~~~~~~~
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/api/sipe-core.h | 2 +-
+ src/core/sipe-http-transport.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/api/sipe-core.h b/src/api/sipe-core.h
+index cde0a9c..bd818bb 100644
+--- a/src/api/sipe-core.h
++++ b/src/api/sipe-core.h
+@@ -148,7 +148,7 @@ struct sipe_core_public {
+
+ /* server information */
+ /* currently nothing */
+-};
++} __attribute__((aligned(8)));
+
+ /**
+ * Initialize & destroy functions for the SIPE core
+diff --git a/src/core/sipe-http-transport.h b/src/core/sipe-http-transport.h
+index d82cd1b..08eb150 100644
+--- a/src/core/sipe-http-transport.h
++++ b/src/core/sipe-http-transport.h
+@@ -46,7 +46,7 @@ struct sipe_http_connection_public {
+ gchar *host;
+ guint32 port;
+ gboolean connected;
+-};
++} __attribute__((aligned(8)));
+
+ /**
+ * Check if we're shutting down the HTTP stack
+--
+2.24.0
+
diff --git a/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Migrate-to-use-g_memdup2.patch b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Migrate-to-use-g_memdup2.patch
new file mode 100644
index 0000000000..ceb48d21fc
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-Migrate-to-use-g_memdup2.patch
@@ -0,0 +1,192 @@
+From 51c95a23bff3a024dc19e3127ca751e1458be0f0 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 5 Apr 2021 11:36:50 -0700
+Subject: [PATCH] Migrate to use g_memdup2
+
+g_memdup has been deprecated for long and latest glib-2.0 2.68+ has
+turned it int an error to use old function.
+
+The fall-back to g_memdup isn't needed because pidgin provides g_memdup2
+in pidgin-sipe/1.25.0-r0/recipe-sysroot/usr/include/libpurple/glibcompat.h
+based on glib-2.0 version:
+ /* Backport the static inline version of g_memdup2 if we don't have g_memdup2.
+ * see https://mail.gnome.org/archives/desktop-devel-list/2021-February/msg00000.html
+ * for more information.
+ */
+ #if !GLIB_CHECK_VERSION(2, 67, 3)
+ static inline gpointer
+ g_memdup2(gconstpointer mem, gsize byte_size) {
+ gpointer new_mem = NULL;
+
+ if(mem && byte_size != 0) {
+ new_mem = g_malloc (byte_size);
+ memcpy (new_mem, mem, byte_size);
+ }
+
+ return new_mem;
+ }
+ #endif /* !GLIB_CHECK_VERSION(2, 67, 3) */
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/api/sipe-common.h | 3 +++
+ src/core/sip-sec-gssapi.c | 4 ++--
+ src/core/sip-sec-ntlm.c | 12 ++++++------
+ src/core/sip-sec-tls-dsk.c | 4 ++--
+ src/core/sipe-media.c | 2 +-
+ src/core/sipe-tls-tester.c | 2 +-
+ src/core/sipe-tls.c | 4 ++--
+ src/telepathy/telepathy-protocol.c | 2 +-
+ 8 files changed, 18 insertions(+), 15 deletions(-)
+
+diff --git a/src/api/sipe-common.h b/src/api/sipe-common.h
+index c964f15..cab81e0 100644
+--- a/src/api/sipe-common.h
++++ b/src/api/sipe-common.h
+@@ -51,3 +51,6 @@
+ #ifdef _MSC_VER
+ typedef long ssize_t;
+ #endif
++
++// for g_memdup2
++#include <libpurple/glibcompat.h>
+diff --git a/src/core/sip-sec-gssapi.c b/src/core/sip-sec-gssapi.c
+index 873080f..4c63868 100644
+--- a/src/core/sip-sec-gssapi.c
++++ b/src/core/sip-sec-gssapi.c
+@@ -602,7 +602,7 @@ sip_sec_init_sec_context__gssapi(SipSecContext context,
+
+ out_buff->length = output_token.length;
+ if (out_buff->length)
+- out_buff->value = g_memdup(output_token.value, output_token.length);
++ out_buff->value = g_memdup2(output_token.value, output_token.length);
+ else
+ /* Special case: empty token */
+ out_buff->value = (guint8 *) g_strdup("");
+@@ -653,7 +653,7 @@ sip_sec_make_signature__gssapi(SipSecContext context,
+ return FALSE;
+ } else {
+ signature->length = output_token.length;
+- signature->value = g_memdup(output_token.value,
++ signature->value = g_memdup2(output_token.value,
+ output_token.length);
+ gss_release_buffer(&minor, &output_token);
+ return TRUE;
+diff --git a/src/core/sip-sec-ntlm.c b/src/core/sip-sec-ntlm.c
+index 2e2354f..1fa4daa 100644
+--- a/src/core/sip-sec-ntlm.c
++++ b/src/core/sip-sec-ntlm.c
+@@ -951,7 +951,7 @@ sip_sec_ntlm_parse_challenge(SipSecBuffer in_buff,
+
+ /* server challenge (nonce) */
+ if (server_challenge) {
+- *server_challenge = g_memdup(cmsg->nonce, 8);
++ *server_challenge = g_memdup2(cmsg->nonce, 8);
+ }
+
+ /* flags */
+@@ -984,7 +984,7 @@ sip_sec_ntlm_parse_challenge(SipSecBuffer in_buff,
+ *target_info_len = len;
+ }
+ if (target_info) {
+- *target_info = g_memdup(content, len);
++ *target_info = g_memdup2(content, len);
+ }
+ }
+ }
+@@ -1117,13 +1117,13 @@ sip_sec_ntlm_gen_authenticate(guchar **client_sign_key,
+ Set ServerSigningKey to SIGNKEY(ExportedSessionKey, "Server")
+ */
+ SIGNKEY(exported_session_key, TRUE, key);
+- *client_sign_key = g_memdup(key, 16);
++ *client_sign_key = g_memdup2(key, 16);
+ SIGNKEY(exported_session_key, FALSE, key);
+- *server_sign_key = g_memdup(key, 16);
++ *server_sign_key = g_memdup2(key, 16);
+ SEALKEY(neg_flags, exported_session_key, TRUE, key);
+- *client_seal_key = g_memdup(key, 16);
++ *client_seal_key = g_memdup2(key, 16);
+ SEALKEY(neg_flags, exported_session_key, FALSE, key);
+- *server_seal_key = g_memdup(key, 16);
++ *server_seal_key = g_memdup2(key, 16);
+ }
+
+ /* @TODO: */
+diff --git a/src/core/sip-sec-tls-dsk.c b/src/core/sip-sec-tls-dsk.c
+index 70433ea..2d3f2db 100644
+--- a/src/core/sip-sec-tls-dsk.c
++++ b/src/core/sip-sec-tls-dsk.c
+@@ -88,9 +88,9 @@ sip_sec_init_sec_context__tls_dsk(SipSecContext context,
+ /* copy key pair */
+ ctx->algorithm = state->algorithm;
+ ctx->key_length = state->key_length;
+- ctx->client_key = g_memdup(state->client_key,
++ ctx->client_key = g_memdup2(state->client_key,
+ state->key_length);
+- ctx->server_key = g_memdup(state->server_key,
++ ctx->server_key = g_memdup2(state->server_key,
+ state->key_length);
+
+ /* extract certicate expiration time */
+diff --git a/src/core/sipe-media.c b/src/core/sipe-media.c
+index e9c4b8a..936e31c 100644
+--- a/src/core/sipe-media.c
++++ b/src/core/sipe-media.c
+@@ -578,7 +578,7 @@ media_stream_to_sdpmedia(struct sipe_media_call_private *call_private,
+ // Set our key if encryption is enabled.
+ if (stream_private->encryption_key &&
+ encryption_policy != SIPE_ENCRYPTION_POLICY_REJECTED) {
+- sdpmedia->encryption_key = g_memdup(stream_private->encryption_key,
++ sdpmedia->encryption_key = g_memdup2(stream_private->encryption_key,
+ SIPE_SRTP_KEY_LEN);
+ sdpmedia->encryption_key_id = stream_private->encryption_key_id;
+ }
+diff --git a/src/core/sipe-tls-tester.c b/src/core/sipe-tls-tester.c
+index e80d715..5fbb5f8 100644
+--- a/src/core/sipe-tls-tester.c
++++ b/src/core/sipe-tls-tester.c
+@@ -155,7 +155,7 @@ static guchar *read_tls_record(int fd,
+ printf("received %d bytes from server\n", result);
+ record = g_new0(struct record, 1);
+ record->length = result;
+- record->msg = g_memdup(buffer, result);
++ record->msg = g_memdup2(buffer, result);
+ length += result;
+ fragments = g_slist_append(fragments, record);
+ }
+diff --git a/src/core/sipe-tls.c b/src/core/sipe-tls.c
+index b0235d5..020aedb 100644
+--- a/src/core/sipe-tls.c
++++ b/src/core/sipe-tls.c
+@@ -427,7 +427,7 @@ static guchar *sipe_tls_prf(SIPE_UNUSED_PARAMETER struct tls_internal_state *sta
+ gsize half = (secret_length + 1) / 2;
+ gsize newseed_length = label_length + seed_length;
+ /* secret: used as S1; secret2: last half of original secret (S2) */
+- guchar *secret2 = g_memdup(secret + secret_length - half, half);
++ guchar *secret2 = g_memdup2(secret + secret_length - half, half);
+ guchar *newseed = g_malloc(newseed_length);
+ guchar *md5, *dest;
+ guchar *sha1, *src;
+@@ -1525,7 +1525,7 @@ static struct tls_compiled_message *tls_client_key_exchange(struct tls_internal_
+
+ /* found all the required fields */
+ state->server_random.length = server_random->length;
+- state->server_random.buffer = g_memdup(server_random->data,
++ state->server_random.buffer = g_memdup2(server_random->data,
+ server_random->length);
+ tls_calculate_secrets(state);
+
+diff --git a/src/telepathy/telepathy-protocol.c b/src/telepathy/telepathy-protocol.c
+index f6e5337..1dde579 100644
+--- a/src/telepathy/telepathy-protocol.c
++++ b/src/telepathy/telepathy-protocol.c
+@@ -237,7 +237,7 @@ static void get_connection_details(SIPE_UNUSED_PARAMETER TpBaseProtocol *self,
+ SIPE_TYPE_SEARCH_MANAGER,
+ G_TYPE_INVALID
+ };
+- *channel_managers = g_memdup(types, sizeof(types));
++ *channel_managers = g_memdup2(types, sizeof(types));
+ }
+ if (icon_name)
+ *icon_name = g_strdup("im-" SIPE_TELEPATHY_DOMAIN);
diff --git a/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-configure-Do-not-add-native-paths-to-pkgconfig-searc.patch b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-configure-Do-not-add-native-paths-to-pkgconfig-searc.patch
new file mode 100644
index 0000000000..1dc7ca3f17
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-configure-Do-not-add-native-paths-to-pkgconfig-searc.patch
@@ -0,0 +1,36 @@
+From fedef3c0b1772cee97d7288bee7d5d50805a5964 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 12 Dec 2020 08:56:04 -0800
+Subject: [PATCH] configure: Do not add native paths to pkgconfig search
+
+This does not work in cross environments, secondly in OE we already
+point pkkconfig into recipe sysroot where it will find all the
+dependencies therefore this setting is not needed
+
+Upstream-Status: Inappropriate [ OE-Specific ]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0df85b0..2481153 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,12 +70,6 @@ AC_CHECK_HEADERS([])
+ dnl checks for library functions
+ AC_CHECK_FUNCS([])
+
+-dnl tell pkgconfig to look in the same prefix where we're installing this to,
+-dnl as that is likely where libpurple will be found if it is not in the default
+-dnl pkgconfig path
+-PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${libdir}/pkgconfig"
+-export PKG_CONFIG_PATH
+-
+ dnl debug mode
+ AC_ARG_ENABLE(debug,
+ [AS_HELP_STRING([--enable-debug],
+--
+2.29.2
+
diff --git a/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch
new file mode 100644
index 0000000000..e7a72953da
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/pidgin-sipe/0001-sipe-consider-64bit-time_t-when-printing.patch
@@ -0,0 +1,31 @@
+From ae6fa551907006c612cca98b87f339d4d6f45e25 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 11 Nov 2019 21:08:11 -0800
+Subject: [PATCH] sipe: consider 64bit time_t when printing
+
+This helps printing 64bit time_t on 32bit architectures
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/core/sipe-utils.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/core/sipe-utils.c b/src/core/sipe-utils.c
+index 12ff8d6..d3d4071 100644
+--- a/src/core/sipe-utils.c
++++ b/src/core/sipe-utils.c
+@@ -414,8 +414,8 @@ sipe_utils_time_to_str(time_t timestamp)
+ if (result)
+ return(result);
+
+- SIPE_DEBUG_ERROR("sipe_utils_time_to_str: failed to convert %lu to ISO8601 string",
+- timestamp);
++ SIPE_DEBUG_ERROR("sipe_utils_time_to_str: failed to convert %lld to ISO8601 string",
++ (long long int)timestamp);
+ return(g_strdup(""));
+ }
+
+--
+2.24.0
+
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
new file mode 100644
index 0000000000..6ce42ec187
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/pidgin-sipe_1.25.0.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Protocol plugin for Office 365/Lync/OCS for Adium, Pidgin, Miranda and Telepathy IM Framework"
+SECTION = "webos/services"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+DEPENDS = "pidgin gmime intltool-native glib-2.0-native"
+
+inherit autotools gettext pkgconfig
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/sipe/pidgin-sipe-${PV}.tar.xz \
+ file://0001-sipe-consider-64bit-time_t-when-printing.patch \
+ file://0001-Align-structs-casts-with-time_t-elements-to-8byte-bo.patch \
+ file://0001-configure-Do-not-add-native-paths-to-pkgconfig-searc.patch \
+ file://0001-Migrate-to-use-g_memdup2.patch \
+"
+
+SRC_URI[md5sum] = "0e742f021dc8c3f17435aea05c3e0314"
+SRC_URI[sha256sum] = "738b121b11f2b3f1744150c00cb381222eb6cf67161a7742797eb4f03e64a2ba"
+
+PACKAGECONFIG ??= "nss krb5"
+PACKAGECONFIG[nss] = "--enable-nss=yes,--enable-nss=no,nss"
+PACKAGECONFIG[openssl] = "--enable-openssl=yes,--enable-openssl=no,openssl"
+PACKAGECONFIG[krb5] = "--with-krb5=yes,--with-krb5=no,krb5"
+#PACKAGECONFIG[voice_and_video] = "--with-vv=yes,--with-vv=no,libnice gstreamer"
+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 \
+"
+
+FILES:${PN} += " \
+ ${libdir}/purple-2/libsipe.so \
+ ${datadir}/appdata \
+ ${datadir}/metainfo \
+"
diff --git a/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch b/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
deleted file mode 100644
index 312fc8593f..0000000000
--- a/meta-oe/recipes-support/pidgin/pidgin/pidgin-cross-python-265.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 855cc20bafa30597ae7a62f7672d42654b25cde0 Mon Sep 17 00:00:00 2001
-From: Herrie <github.com@herrie.org>
-Date: Mon, 24 Jul 2017 21:30:16 +0200
-Subject: [PATCH] Use pkg-config instead of ${PYTHON}-config to find python
-
----
- configure.ac | 21 ++++++++-------------
- 1 file changed, 8 insertions(+), 13 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index d20a18e..c741829 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1567,20 +1567,15 @@ AM_CONDITIONAL(ENABLE_DBUS, test "x$enable_dbus" = "xyes")
- dnl Check for Python headers (currently useful only for libgnt)
- dnl (Thanks to XChat)
- if test "x$enable_consoleui" = "xyes" -a ! -z "$PYTHON" -a x"$PYTHON" != x"no" ; then
-- AC_MSG_CHECKING(for Python compile flags)
-- if test -f ${PYTHON}-config; then
-- PY_CFLAGS=`${PYTHON}-config --includes`
-- PY_LIBS=`${PYTHON}-config --libs`
-- AC_DEFINE(USE_PYTHON, [1], [Define if python headers are available.])
-- AC_MSG_RESULT(ok)
-- else
-- AC_MSG_RESULT([Cannot find ${PYTHON}-config])
-- PY_CFLAGS=""
-- PY_LIBS=""
-- fi
-+ AC_MSG_CHECKING(for Python compile flags)
-+ PKG_CHECK_MODULES(PY, python, [
-+ AC_SUBST(PY_CFLAGS)
-+ AC_SUBST(PY_LIBS)
-+ ], [
-+ AC_MSG_RESULT(no)
-+ AC_MSG_ERROR([Can't find python])
-+ ])
- fi
--AC_SUBST(PY_CFLAGS)
--AC_SUBST(PY_LIBS)
-
- dnl #######################################################################
- dnl # Check for Mono support
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 9a24fbbc5f..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,11 +3,13 @@ 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/libpurple/protocols/irc/irc.h b/libpurple/protocols/irc/irc.h
-index fde35c4..66e52dd 100644
+index 596ddaf..b70f3a9 100644
--- a/libpurple/protocols/irc/irc.h
+++ b/libpurple/protocols/irc/irc.h
@@ -40,9 +40,9 @@
@@ -20,5 +22,5 @@ index fde35c4..66e52dd 100644
-#define IRC_DEFAULT_QUIT "Leaving."
+#define IRC_DEFAULT_QUIT "Powered by OE: www.openembedded.org"
- #define IRC_INITIAL_BUFSIZE 1024
-
+ #define IRC_BUFSIZE_INCREMENT 1024
+ #define IRC_MAX_BUFSIZE 16384
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.12.0.bb b/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
deleted file mode 100644
index 088f08b7d6..0000000000
--- a/meta-oe/recipes-support/pidgin/pidgin_2.12.0.bb
+++ /dev/null
@@ -1,120 +0,0 @@
-SUMMARY = "multi-protocol instant messaging client"
-SECTION = "x11/network"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "python virtual/libintl intltool-native libxml2 gconf glib-2.0-native"
-
-inherit autotools gettext pkgconfig gconf perlnative
-
-SRC_URI = "\
- ${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \
- file://sanitize-configure.ac.patch \
- file://purple-OE-branding-25.patch \
- file://pidgin-cross-python-265.patch \
-"
-
-SRC_URI[md5sum] = "8287400c4e5663e0e7844e868d5152af"
-SRC_URI[sha256sum] = "8c3d3536d6d3c971bd433ff9946678af70a0f6aa4e6969cc2a83bb357015b7f8"
-
-PACKAGECONFIG ??= "gnutls consoleui avahi dbus idn nss \
- ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 gtk startup-notification', '', d)} \
-"
-PACKAGECONFIG[farsight2] = "--enable-farstream,--disable-farstream,farsight2"
-# --disable-gstreamer compile without GStreamer audio support
-# --disable-gstreamer-video
-# compile without GStreamer 1.0 Video Overlay support
-# --disable-gstreamer-interfaces
-# compile without GStreamer 0.10 interface support
-# --with-gstreamer=<version>
-# compile with GStreamer 0.10 or 1.0 interface
-PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer"
-PACKAGECONFIG[vv] = "--enable-vv,--disable-vv,gstreamer"
-PACKAGECONFIG[idn] = "--enable-idn,--disable-idn,libidn"
-PACKAGECONFIG[gtk] = "--enable-gtkui,--disable-gtkui,gtk+"
-PACKAGECONFIG[x11] = "--with-x=yes --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--with-x=no,virtual/libx11"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-PACKAGECONFIG[consoleui] = "--enable-consoleui --with-ncurses-headers=${STAGING_INCDIR},--disable-consoleui,ncurses"
-PACKAGECONFIG[gnutls] = "--enable-gnutls --with-gnutls-includes=${STAGING_INCDIR} --with-gnutls-libs=${STAGING_LIBDIR},--disable-gnutls,gnutls,libpurple-plugin-ssl-gnutls"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
-PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
-PACKAGECONFIG[nss] = "--enable-nss,--disable-nss,nss nspr,libpurple-plugin-ssl-nss"
-
-EXTRA_OECONF = " \
- --disable-perl \
- --disable-tcl \
- --disable-gevolution \
- --disable-schemas-install \
- --disable-gtkspell \
- --disable-meanwhile \
- --disable-nm \
- --disable-screensaver \
-"
-
-do_configure_prepend() {
- touch ${S}/po/Makefile
- sed -i "s#PY_VERSION=`$PYTHON -c 'import sys ; print sys.version[0:3]'`#PY_VERSION=${PYTHON_BASEVERSION}#g" ${S}/configure.ac
-}
-
-OE_LT_RPATH_ALLOW=":${libdir}/purple-2:"
-OE_LT_RPATH_ALLOW[export]="1"
-
-PACKAGES =+ "libpurple-dbg libpurple-dev libpurple libgnt-dbg libgnt libgnt-dev finch-dbg finch finch-dev ${PN}-data"
-
-LEAD_SONAME = "libpurple.so.0"
-FILES_libpurple = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs"
-FILES_libpurple-dev = "${libdir}/libpurple*.la \
- ${libdir}/libpurple*.so \
- ${libdir}/purple-2/*.la \
- ${libdir}/purple-2/libjabber.so \
- ${libdir}/purple-2/liboscar.so \
- ${libdir}/purple-2/libymsg.so \
- ${datadir}/aclocal"
-FILES_libpurple-dbg += "${libdir}/.debug/libpurple* \
- ${libdir}/purple-2/.debug"
-FILES_libgnt = "${libdir}/libgnt.so.* ${libdir}/gnt/*.so"
-FILES_libgnt-dev = "${libdir}/gnt/*.la"
-FILES_libgnt-dbg = "${libdir}/gnt/.debug"
-FILES_finch = "${bindir}/finch"
-FILES_finch-dev = "${libdir}/finch/*.la"
-FILES_finch-dbg = "${bindir}/.debug/finch \
- ${libdir}/finch/.debug"
-
-FILES_${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \
- ${datadir}/applications"
-RRECOMMENDS_${PN} = "${PN}-data libpurple-protocol-irc libpurple-protocol-xmpp"
-
-FILES_${PN}-data = "${datadir}/pixmaps ${datadir}/sounds ${datadir}/icons ${datadir}/appdata"
-FILES_${PN}-dev += "${libdir}/${PN}/*.la"
-
-PACKAGES_DYNAMIC += "^libpurple-protocol-.* ^libpurple-plugin-.* ^pidgin-plugin-.* ^finch-plugin-.*"
-
-python populate_packages_prepend () {
- pidgroot = d.expand('${libdir}/pidgin')
- purple = d.expand('${libdir}/purple-2')
- finch = d.expand('${libdir}/finch')
-
- do_split_packages(d, pidgroot, '^([^l][^i][^b].*)\.so$',
- output_pattern='pidgin-plugin-%s',
- description='Pidgin plugin %s',
- prepend=True, extra_depends='')
-
- do_split_packages(d, purple, '^lib(.*)\.so$',
- output_pattern='libpurple-protocol-%s',
- description='Libpurple protocol plugin for %s',
- prepend=True, extra_depends='')
-
- do_split_packages(d, purple, '^(ssl-.*)\.so$',
- output_pattern='libpurple-plugin-%s',
- description='libpurple plugin %s',
- prepend=True, extra_depends='libpurple-plugin-ssl')
-
- do_split_packages(d, purple, '^([^l][^i][^b].*)\.so$',
- output_pattern='libpurple-plugin-%s',
- description='libpurple plugin %s',
- prepend=True, extra_depends='')
-
- do_split_packages(d, finch, '^([^l][^i][^b].*)\.so$',
- output_pattern='finch-plugin-%s',
- description='Finch plugin %s',
- prepend=True, extra_depends='')
-}
diff --git a/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb b/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
new file mode 100644
index 0000000000..3a0cc02299
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/pidgin_2.14.2.bb
@@ -0,0 +1,113 @@
+SUMMARY = "multi-protocol instant messaging client"
+
+SECTION = "x11/network"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "python3 virtual/libintl intltool-native libxml2 gconf glib-2.0-native"
+
+inherit autotools gettext pkgconfig gconf perlnative python3native
+
+SRC_URI = "\
+ ${SOURCEFORGE_MIRROR}/pidgin/pidgin-${PV}.tar.bz2 \
+ file://sanitize-configure.ac.patch \
+ file://purple-OE-branding-25.patch \
+"
+
+SRC_URI[sha256sum] = "19654ad276b149646371fbdac21bc7620742f2975f7399fed0ffc1a18fbaf603"
+
+CVE_CHECK_STATUS[CVE-2010-1624] = "fixed-version: The CPE in the NVD database doesn't reflect correctly the vulnerable versions."
+CVE_CHECK_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)} \
+"
+PACKAGECONFIG[farsight2] = "--enable-farstream,--disable-farstream,farsight2"
+# --disable-gstreamer compile without GStreamer audio support
+# --disable-gstreamer-video
+# compile without GStreamer 1.0 Video Overlay support
+# --disable-gstreamer-interfaces
+# compile without GStreamer 0.10 interface support
+# --with-gstreamer=<version>
+# compile with GStreamer 0.10 or 1.0 interface
+PACKAGECONFIG[gstreamer] = "--enable-gstreamer,--disable-gstreamer,gstreamer"
+PACKAGECONFIG[vv] = "--enable-vv,--disable-vv,gstreamer"
+PACKAGECONFIG[idn] = "--enable-idn,--disable-idn,libidn"
+PACKAGECONFIG[gtk] = "--enable-gtkui,--disable-gtkui,gtk+"
+PACKAGECONFIG[x11] = "--with-x=yes --x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--with-x=no,virtual/libx11"
+PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
+PACKAGECONFIG[consoleui] = "--enable-consoleui --with-ncurses-headers=${STAGING_INCDIR},--disable-consoleui,libgnt"
+PACKAGECONFIG[gnutls] = "--enable-gnutls --with-gnutls-includes=${STAGING_INCDIR} --with-gnutls-libs=${STAGING_LIBDIR},--disable-gnutls,gnutls,libpurple-plugin-ssl-gnutls"
+PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
+PACKAGECONFIG[avahi] = "--enable-avahi,--disable-avahi,avahi"
+PACKAGECONFIG[nss] = "--enable-nss,--disable-nss,nss nspr,libpurple-plugin-ssl-nss"
+PACKAGECONFIG[cyrus-sasl] = "--enable-cyrus-sasl,--disable-cyrus-sasl,cyrus-sasl"
+
+EXTRA_OECONF = " \
+ --disable-perl \
+ --disable-tcl \
+ --disable-gevolution \
+ --disable-schemas-install \
+ --disable-gtkspell \
+ --disable-meanwhile \
+ --disable-nm \
+ --disable-screensaver \
+"
+
+OE_LT_RPATH_ALLOW=":${libdir}/purple-2:"
+OE_LT_RPATH_ALLOW[export]="1"
+
+PACKAGES =+ "libpurple-dev libpurple finch finch-dev ${PN}-data"
+
+RPROVIDES:${PN}-dbg += "libpurple-dbg finch-dbg"
+
+LEAD_SONAME = "libpurple.so.0"
+FILES:libpurple = "${libdir}/libpurple*.so.* ${libdir}/purple-2 ${bindir}/purple-* ${sysconfdir}/gconf/schemas/purple* ${datadir}/purple/ca-certs"
+FILES:libpurple-dev = "${libdir}/libpurple*.la \
+ ${libdir}/libpurple*.so \
+ ${libdir}/purple-2/*.la \
+ ${libdir}/purple-2/libjabber.so \
+ ${libdir}/purple-2/liboscar.so \
+ ${libdir}/purple-2/libymsg.so \
+ ${datadir}/aclocal"
+FILES:finch = "${bindir}/finch"
+FILES:finch-dev = "${libdir}/finch/*.la"
+
+FILES:${PN} = "${bindir} ${datadir}/${PN} ${libdir}/${PN}/*.so \
+ ${datadir}/applications"
+RRECOMMENDS:${PN} = "${PN}-data libpurple-protocol-irc libpurple-protocol-xmpp"
+
+FILES:${PN}-data = "${datadir}/pixmaps ${datadir}/sounds ${datadir}/icons ${datadir}/appdata"
+FILES:${PN}-dev += "${libdir}/${PN}/*.la"
+
+PACKAGES_DYNAMIC += "^libpurple-protocol-.* ^libpurple-plugin-.* ^pidgin-plugin-.* ^finch-plugin-.*"
+
+python populate_packages:prepend () {
+ pidgroot = d.expand('${libdir}/pidgin')
+ purple = d.expand('${libdir}/purple-2')
+ finch = d.expand('${libdir}/finch')
+
+ do_split_packages(d, pidgroot, r'^([^l][^i][^b].*)\.so$',
+ output_pattern='pidgin-plugin-%s',
+ description='Pidgin plugin %s',
+ prepend=True, extra_depends='')
+
+ do_split_packages(d, purple, r'^lib(.*)\.so$',
+ output_pattern='libpurple-protocol-%s',
+ description='Libpurple protocol plugin for %s',
+ prepend=True, extra_depends='')
+
+ do_split_packages(d, purple, r'^(ssl-.*)\.so$',
+ output_pattern='libpurple-plugin-%s',
+ description='libpurple plugin %s',
+ prepend=True, extra_depends='libpurple-plugin-ssl')
+
+ do_split_packages(d, purple, r'^([^l][^i][^b].*)\.so$',
+ output_pattern='libpurple-plugin-%s',
+ description='libpurple plugin %s',
+ prepend=True, extra_depends='')
+
+ do_split_packages(d, finch, r'^([^l][^i][^b].*)\.so$',
+ output_pattern='finch-plugin-%s',
+ description='Finch plugin %s',
+ prepend=True, extra_depends='')
+}
diff --git a/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb b/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
new file mode 100644
index 0000000000..96b97b6744
--- /dev/null
+++ b/meta-oe/recipes-support/pidgin/purple-skypeweb_git.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Skype protocol plug-in for libpurple"
+SECTION = "webos/services"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://skypeweb/gpl3.txt;md5=d90260d32cef39f3c8d6c0f05d3adb8e"
+
+DEPENDS = "pidgin json-glib glib-2.0 zlib"
+
+inherit pkgconfig
+
+SRC_URI = "git://github.com/EionRobb/skype4pidgin;branch=master;protocol=https"
+SRCREV = "b226d1c457d73900ae89b8a7469247fbe33677a6"
+
+S = "${WORKDIR}/git"
+PV = "1.7+git${SRCPV}"
+
+do_compile() {
+ oe_runmake -C skypeweb;
+}
+
+do_install() {
+ oe_runmake -C skypeweb DESTDIR="${D}" install;
+}
+
+FILES:${PN} += " \
+ ${libdir} \
+"
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/pngcheck/pngcheck_2.3.0.bb b/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb
index 9f617ecda5..19da947d04 100644
--- a/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb
+++ b/meta-oe/recipes-support/pngcheck/pngcheck_2.3.0.bb
@@ -1,6 +1,6 @@
SUMMARY = "pngcheck verifies the integrity of PNG, JNG and MNG files"
HOMEPAGE = "http://www.libpng.org/pub/png/apps/pngcheck.html"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://gpl/COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "zlib libpng"
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/run-ptest b/meta-oe/recipes-support/poco/poco/run-ptest
index c479f7ac10..c9896eadee 100644
--- a/meta-oe/recipes-support/poco/poco/run-ptest
+++ b/meta-oe/recipes-support/poco/poco/run-ptest
@@ -1,9 +1,8 @@
#!/bin/sh
while read runner; do
- pushd . >/dev/null
+ oldpath=`pwd` >/dev/null
cd bin
echo Testing $runner
./$runner-testrunner -all
- popd >/dev/null
+ cd $oldpath >/dev/null
done < testrunners
-
diff --git a/meta-oe/recipes-support/poco/poco_1.12.4.bb b/meta-oe/recipes-support/poco/poco_1.12.4.bb
new file mode 100644
index 0000000000..51bd5611fb
--- /dev/null
+++ b/meta-oe/recipes-support/poco/poco_1.12.4.bb
@@ -0,0 +1,108 @@
+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://run-ptest \
+ "
+SRCREV = "1211613642269b7d53bea58b02de7fcd25ece3b9"
+
+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)}"
+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 = []
+ 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.9.0.bb b/meta-oe/recipes-support/poco/poco_1.9.0.bb
deleted file mode 100644
index a4f8a05188..0000000000
--- a/meta-oe/recipes-support/poco/poco_1.9.0.bb
+++ /dev/null
@@ -1,98 +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 = "libpcre zlib"
-
-SRC_URI = " \
- git://github.com/pocoproject/poco.git \
- file://run-ptest \
- "
-SRCREV = "94966785a8f9ad0191dffd075ebd67826e6e4b6d"
-
-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 Data DataSQLite Zip Encodings Redis"
-
-PACKAGECONFIG[XML] = "-DENABLE_XML=ON -DEXPAT_LIBRARY:STRING=expat,-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 -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_NETSSL=OFF,openssl"
-PACKAGECONFIG[Crypto] = "-DENABLE_CRYPTO=ON -DOPENSSL_SSL_LIBRARY:STRING=ssl -DOPENSSL_CRYPTO_LIBRARY:STRING=crypto,-DENABLE_CRYPTO=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"
-
-# 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[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 \
- -DZLIB_LIBRARY_RELEASE:STRING=z -DPCRE_LIBRARY:STRING=pcre \
- ${@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"
-
-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, '^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/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-data_0.4.9.bb b/meta-oe/recipes-support/poppler/poppler-data_0.4.9.bb
deleted file mode 100644
index b2af097154..0000000000
--- a/meta-oe/recipes-support/poppler/poppler-data_0.4.9.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."
-LICENSE = "BSD & GPLv2 & GPLv3+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4870b98343f0bbb25fa43b9d2ba59448 \
- file://COPYING.adobe;md5=63c6a8a9df204c00461fa5f163d8a663 \
- 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[md5sum] = "35cc7beba00aa174631466f06732be40"
-SRC_URI[sha256sum] = "1f9c7e7de9ecd0db6ab287349e31bf815ca108a5a175cf906a90163bdbe32012"
-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-Do-not-overwrite-all-our-build-flags.patch b/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
index 18f508519e..e07da387b2 100644
--- a/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
+++ b/meta-oe/recipes-support/poppler/poppler/0001-Do-not-overwrite-all-our-build-flags.patch
@@ -10,29 +10,46 @@ Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
- cmake/modules/PopplerMacros.cmake | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ cmake/modules/PopplerMacros.cmake | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake
-index ccb2790..0f392cb 100644
+index 2aed028..3c30f3f 100644
--- a/cmake/modules/PopplerMacros.cmake
+++ b/cmake/modules/PopplerMacros.cmake
-@@ -125,14 +125,14 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+@@ -117,13 +117,13 @@ if(CMAKE_COMPILER_IS_GNUCXX)
+ set(DEFAULT_COMPILE_WARNINGS "${_warn}")
+ set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
+
+- set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -fno-operator-names -D_DEFAULT_SOURCE")
++ set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -fno-operator-names -D_DEFAULT_SOURCE ${_save_cxxflags}")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline")
+ set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline")
+ set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs")
+- set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE")
++ set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE ${_save_cflags}")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
+ set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline")
+@@ -161,14 +161,14 @@ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+ set(DEFAULT_COMPILE_WARNINGS "${_warn}")
set(DEFAULT_COMPILE_WARNINGS_EXTRA "${_warn} ${_warnx}")
- set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
- set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE")
+ set(CMAKE_CXX_FLAGS "-fno-exceptions -fno-check-new -fno-common -D_DEFAULT_SOURCE ${_save_cxxflags}")
- set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cxxflags}")
- set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cxxflags}")
- set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cxxflags}")
- set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline ${_save_cxxflags}")
- set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs ${_save_cxxflags}")
- set(_save_cflags "${CMAKE_C_FLAGS}")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
+ # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
+ set(CMAKE_CXX_FLAGS_DEBUG "-g")
+ set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline")
+ set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs")
- set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE")
+ set(CMAKE_C_FLAGS "-std=c99 -D_DEFAULT_SOURCE ${_save_cflags}")
- set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g ${_save_cflags}")
- set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG ${_save_cflags}")
- set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline ${_save_cflags}")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
+ # clang does not support -fno-reorder-blocks -fno-schedule-insns, so do not use -O2
--
-2.14.3
+2.25.1
+
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/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch b/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch
deleted file mode 100644
index 7ed795ef7b..0000000000
--- a/meta-oe/recipes-support/poppler/poppler/0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From d488de23b75b2f3e235f1c184b2253d1402b4c0f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 10 May 2018 23:47:56 -0700
-Subject: [PATCH] glib/CMakeLists.txt: Add libpoppler to link along with
- poppler-glib
-
-This is required since poppler-glib uses symbols from poppler and
-we use --as-needed
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- glib/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/glib/CMakeLists.txt b/glib/CMakeLists.txt
-index 33c6608..87e1b44 100644
---- a/glib/CMakeLists.txt
-+++ b/glib/CMakeLists.txt
-@@ -127,7 +127,7 @@ if (HAVE_INTROSPECTION AND BUILD_SHARED_LIBS)
- get_directory_property(_tmp_includes INCLUDE_DIRECTORIES)
- _list_prefix(_includes _tmp_includes "-I")
- set(Poppler_0_18_gir_CFLAGS ${_includes} -L${CMAKE_BINARY_DIR})
-- set(Poppler_0_18_gir_LIBS poppler-glib)
-+ set(Poppler_0_18_gir_LIBS poppler-glib poppler)
- _list_prefix(_abs_introspection_files introspection_files "${CMAKE_CURRENT_SOURCE_DIR}/")
- list(APPEND _abs_introspection_files
- ${CMAKE_CURRENT_BINARY_DIR}/poppler-enums.c
diff --git a/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch b/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch
deleted file mode 100644
index 3c231fe938..0000000000
--- a/meta-oe/recipes-support/poppler/poppler/0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 6287663e7db04df7e6dec58a1fc5bb5d510e8bde Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 9 Apr 2018 19:11:20 +0200
-Subject: [PATCH] CairoOutputDev.cc: fix build error when using fixedpoint
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Fixes:
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashRound(SplashCoord)':
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1604:28: error: call of overloaded 'floor(FixedPoint)' is ambiguous
-| return (int)floor(x + 0.5);
-| ^
-| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double)
-| __MATHCALLX (floor,, (_Mdouble_ __x), (__const__));
-| ^
-| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46:
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:260:3: note: candidate: constexpr float std::floor(float)
-| floor(float __x)
-| ^~~~~
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:264:3: note: candidate: constexpr long double std::floor(long double)
-| floor(long double __x)
-| ^~~~~
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashCeil(SplashCoord)':
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1608:21: error: call of overloaded 'ceil(SplashCoord&)' is ambiguous
-| return (int)ceil(x);
-| ^
-| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:159:1: note: candidate: double ceil(double)
-| __MATHCALLX (ceil,, (_Mdouble_ __x), (__const__));
-| ^
-| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/math.h:36:0,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:46:
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:165:3: note: candidate: constexpr float std::ceil(float)
-| ceil(float __x)
-| ^~~~
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cmath:169:3: note: candidate: constexpr long double std::ceil(long double)
-| ceil(long double __x)
-| ^~~~
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc: In function 'int splashFloor(SplashCoord)':
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:1612:22: error: call of overloaded 'floor(SplashCoord&)' is ambiguous
-| return (int)floor(x);
-| ^
-| In file included from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/features.h:428:0,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/os_defines.h:39,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/arm-oe-linux-gnueabi/bits/c++config.h:533,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/c++/7.3.0/cstdint:38,
-| from <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/poppler-0.63.0/poppler/CairoOutputDev.cc:44:
-| <tmpdir>/oe-core-glibc/work/armv5te-oe-linux-gnueabi/poppler/0.63.0-r0/recipe-sysroot/usr/include/bits/mathcalls.h:165:1: note: candidate: double floor(double)
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- poppler/CairoOutputDev.cc | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/poppler/CairoOutputDev.cc b/poppler/CairoOutputDev.cc
-index 18124b8f..4c85ad65 100644
---- a/poppler/CairoOutputDev.cc
-+++ b/poppler/CairoOutputDev.cc
-@@ -1602,15 +1602,27 @@ void CairoOutputDev::endActualText(GfxState *state)
- }
-
- static inline int splashRound(SplashCoord x) {
-+#if defined(USE_FIXEDPOINT)
-+ return FixedPoint::floor(x + 0.5);
-+#else
- return (int)floor(x + 0.5);
-+#endif
- }
-
- static inline int splashCeil(SplashCoord x) {
-+#if defined(USE_FIXEDPOINT)
-+ return FixedPoint::ceil(x);
-+#else
- return (int)ceil(x);
-+#endif
- }
-
- static inline int splashFloor(SplashCoord x) {
-+#if defined(USE_FIXEDPOINT)
-+ return FixedPoint::floor(x);
-+#else
- return (int)floor(x);
-+#endif
- }
-
- static
---
-2.14.3
-
diff --git a/meta-oe/recipes-support/poppler/poppler/basename-include.patch b/meta-oe/recipes-support/poppler/poppler/basename-include.patch
index 528528ae7c..4a18ba3504 100644
--- a/meta-oe/recipes-support/poppler/poppler/basename-include.patch
+++ b/meta-oe/recipes-support/poppler/poppler/basename-include.patch
@@ -1,20 +1,34 @@
-Minic GNU basename() API for non-glibc library e.g. musl
+From 2ac679158062b14729f82f513fc7cafbb6f4f7a6 Mon Sep 17 00:00:00 2001
+From: Randy MacLeod <Randy.MacLeod@windriver.com>
+Date: Fri, 26 Jul 2019 14:26:54 -0400
+Subject: [PATCH 3/3] Minic GNU basename() API for non-glibc library e.g. musl
Upstream-Status: Pending
+
+Rework for poppler 0.90.1
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+
Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Randy MacLeod <Randy.MacLeod@windriver.com>
+---
+ goo/gbasename.cc | 4 ++++
+ 1 file changed, 4 insertions(+)
-Index: poppler-0.64.0/utils/pdfsig.cc
-===================================================================
---- poppler-0.64.0.orig/utils/pdfsig.cc
-+++ poppler-0.64.0/utils/pdfsig.cc
-@@ -35,6 +35,10 @@
- #include "Win32Console.h"
- #include "numberofcharacters.h"
+diff --git a/goo/gbasename.cc b/goo/gbasename.cc
+index 69236d8..3858415 100644
+--- a/goo/gbasename.cc
++++ b/goo/gbasename.cc
+@@ -46,6 +46,10 @@
+ #include <cstdlib>
+ #include <cstring>
+#if !defined(__GLIBC__)
+#define basename(src) (strrchr(src,'/') ? strrchr(src,'/')+1 : src)
+#endif
+
- static const char * getReadableSigState(SignatureValidationStatus sig_vs)
+ std::string gbasename(const char *filename)
{
- switch(sig_vs) {
+ #ifdef _MSC_VER
+--
+2.21.3
+
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_0.64.0.bb b/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
deleted file mode 100644
index b90f3fa359..0000000000
--- a/meta-oe/recipes-support/poppler/poppler_0.64.0.bb
+++ /dev/null
@@ -1,59 +0,0 @@
-SUMMARY = "Poppler is a PDF rendering library based on the xpdf-3.0 code base"
-LICENSE = "GPLv2"
-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://0002-CairoOutputDev.cc-fix-build-error-when-using-fixedpo.patch \
- file://0001-glib-CMakeLists.txt-Add-libpoppler-to-link-along-wit.patch \
- file://basename-include.patch \
- "
-SRC_URI[md5sum] = "f7f687ebb60004f8ad61994575018044"
-SRC_URI[sha256sum] = "b21df92ca99f78067785cf2dc8e06deb04726b62389c0ee1f5d8b103c77f64b1"
-
-DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
-
-inherit cmake pkgconfig gobject-introspection
-
-PACKAGECONFIG ??= "jpeg openjpeg png tiff nss ${@bb.utils.contains('BBFILE_COLLECTIONS', 'qt5-layer', 'qt5', '', d)}"
-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"
-
-# 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_XPDF_HEADERS=ON \
- -DBUILD_GTK_TESTS=OFF \
- -DENABLE_ZLIB=ON \
- -DCMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES:PATH='${STAGING_INCDIR}' \
-"
-
-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
- # git-wrappers are:
- sed -i 's: ${bindir}/g-ir: ${STAGING_BINDIR}/g-ir:' ${B}/build.ninja
-}
-
-# check for TARGET_FPU=soft and inform configure of the result so it can disable some floating points
-def get_poppler_fpu_setting(bb, d):
- if d.getVar('TARGET_FPU') in [ 'soft' ]:
- return "-DUSE_FIXEDPOINT=ON"
- return ""
-
-EXTRA_OECMAKE += "${@get_poppler_fpu_setting(bb, d)}"
-
-PACKAGES =+ "libpoppler libpoppler-glib"
-FILES_libpoppler = "${libdir}/libpoppler.so.*"
-FILES_libpoppler-glib = "${libdir}/libpoppler-glib.so.*"
-
-RDEPENDS_libpoppler = "poppler-data"
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..896176801b
--- /dev/null
+++ b/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
@@ -0,0 +1,57 @@
+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 \
+ "
+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/files/ldflags.patch b/meta-oe/recipes-support/portaudio/files/ldflags.patch
deleted file mode 100644
index aca93a51f2..0000000000
--- a/meta-oe/recipes-support/portaudio/files/ldflags.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Upstream forgot to pass LDFLAGS to everything apart from the main library.
-
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/Makefile.in b/Makefile.in
-index 5e1a764..61ecdd1 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -171,20 +171,20 @@ lib/$(PALIB): lib-stamp $(LTOBJS) $(MAKEFILE) $(PAINC)
- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) $(PA_LDFLAGS) -o lib/$(PALIB) $(LTOBJS) $(DLL_LIBS)
-
- $(ALL_TESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) test/%.c
-- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
-- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/test/$*.c lib/$(PALIB) $(LIBS)
-
- $(EXAMPLES): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) examples/%.c
-- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
-- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/examples/$*.c lib/$(PALIB) $(LIBS)
-
- $(SELFTESTS): bin/%: lib/$(PALIB) $(MAKEFILE) $(PAINC) qa/%.c
-- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
-- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(top_srcdir)/qa/$*.c lib/$(PALIB) $(LIBS)
-
- bin/paloopback: lib/$(PALIB) $(MAKEFILE) $(PAINC) $(LOOPBACK_OBJS)
-- @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
-- @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_FALSE@ $(LIBTOOL) --mode=link $(CC) -o $@ $(CFLAGS) $(LDFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
-+ @WITH_ASIO_TRUE@ $(LIBTOOL) --mode=link --tag=CXX $(CXX) -o $@ $(CXXFLAGS) $(LDFLAGS) $(LOOPBACK_OBJS) lib/$(PALIB) $(LIBS)
-
- install: lib/$(PALIB) portaudio-2.0.pc
- $(INSTALL) -d $(DESTDIR)$(libdir)
-@@ -224,10 +224,10 @@ distclean: clean
- $(CC) -c $(CFLAGS) $< -o $@
-
- %.lo: %.c $(MAKEFILE) $(PAINC)
-- $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $< -o $@
-+ $(LIBTOOL) --mode=compile $(CC) -c $(CFLAGS) $(LDFLAGS) $< -o $@
-
- %.lo: %.cpp $(MAKEFILE) $(PAINC)
-- $(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $< -o $@
-+ $(LIBTOOL) --mode=compile --tag=CXX $(CXX) -c $(CXXFLAGS) $(LDFLAGS) $< -o $@
-
- %.o: %.cpp $(MAKEFILE) $(PAINC)
- $(CXX) -c $(CXXFLAGS) $< -o $@
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
new file mode 100644
index 0000000000..c49a2599ac
--- /dev/null
+++ b/meta-oe/recipes-support/portaudio/portaudio-v19_19.7.0.bb
@@ -0,0 +1,29 @@
+SUMMARY = "A portable audio library"
+SECTION = "libs/multimedia"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df"
+
+PV .= "+git${SRCPV}"
+
+SRC_URI = "git://github.com/PortAudio/portaudio.git;branch=master;protocol=https"
+SRCREV = "929e2e8f7af281c5eb4fa07758930d542ec43d97"
+
+S = "${WORKDIR}/git"
+
+inherit cmake pkgconfig
+
+EXTRA_OECMAKE += "-DBUILD_SHARED_LIBS=ON"
+
+PACKAGECONFIG ??= "alsa jack"
+PACKAGECONFIG[alsa] = ",,alsa-lib"
+PACKAGECONFIG[jack] = ",,jack"
+PACKAGECONFIG[examples] = "-DPA_BUILD_EXAMPLES=ON,-DPA_BUILD_EXAMPLES=OFF"
+
+do_install:append() {
+ if [ -d ${B}/examples ]; then
+ install -d ${D}${bindir}
+ for example in ${B}/examples/pa*; do
+ install -m755 $example ${D}${bindir}/
+ done
+ fi
+}
diff --git a/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb b/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb
deleted file mode 100644
index 489f8ad9e2..0000000000
--- a/meta-oe/recipes-support/portaudio/portaudio-v19_20161030.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "A portable audio library"
-SECTION = "libs/multimedia"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=26107732c2ab637c5710446fcfaf02df"
-
-PV = "v190600"
-
-SRC_URI = "http://www.portaudio.com/archives/pa_stable_v190600_20161030.tgz \
- file://ldflags.patch"
-SRC_URI[md5sum] = "4df8224e047529ca9ad42f0521bf81a8"
-SRC_URI[sha256sum] = "f5a21d7dcd6ee84397446fa1fa1a0675bb2e8a4a6dceb4305a8404698d8d1513"
-
-S = "${WORKDIR}/portaudio"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG ??= "alsa jack"
-PACKAGECONFIG[alsa] = "--with-alsa, --without-alsa, alsa-lib,"
-PACKAGECONFIG[jack] = "--with-jack, --without-jack, jack,"
-
-EXTRA_OECONF = "--without-oss --without-asihpi"
-
-do_install_append() {
- mkdir --parents ${D}${bindir}
- for b in ${B}/bin/pa*; do
- # Bit nasty, should always work
- ${B}/*-libtool --mode install install $b ${D}${bindir}
- done
-}
-
-PACKAGES += "portaudio-examples"
-FILES_portaudio-examples = "${bindir}"
diff --git a/meta-oe/recipes-support/pps-tools/pps-tools_1.0.3.bb b/meta-oe/recipes-support/pps-tools/pps-tools_1.0.3.bb
new file mode 100644
index 0000000000..65c06c1bd5
--- /dev/null
+++ b/meta-oe/recipes-support/pps-tools/pps-tools_1.0.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "User-space tools for LinuxPPS"
+HOMEPAGE = "http://linuxpps.org"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+SRCREV = "c50cb7183e252b47308fa22f420e0a877277aa29"
+SRC_URI = "git://github.com/ago/pps-tools.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+RDEPENDS:${PN} = "bash"
+
+do_install() {
+ install -d ${D}${bindir} ${D}${includedir} \
+ ${D}${includedir}/sys
+ oe_runmake 'DESTDIR=${D}' install
+}
diff --git a/meta-oe/recipes-support/pps-tools/pps-tools_git.bb b/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
deleted file mode 100644
index 8bf9036990..0000000000
--- a/meta-oe/recipes-support/pps-tools/pps-tools_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "User-space tools for LinuxPPS"
-HOMEPAGE = "http://linuxpps.org"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-PV = "0.0.0+git${SRCPV}"
-SRCREV = "0deb9c7e135e9380a6d09e9d2e938a146bb698c8"
-SRC_URI = "git://github.com/ago/pps-tools.git"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -d ${D}${bindir} ${D}${includedir} \
- ${D}${includedir}/sys
- oe_runmake 'DESTDIR=${D}' install
-}
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/procmail/procmail_3.22.bb b/meta-oe/recipes-support/procmail/procmail_3.22.bb
index 6160733b3d..ba268de0a5 100644
--- a/meta-oe/recipes-support/procmail/procmail_3.22.bb
+++ b/meta-oe/recipes-support/procmail/procmail_3.22.bb
@@ -16,7 +16,7 @@ SRC_URI = "http://www.ring.gr.jp/archives/net/mail/${BPN}/${BP}.tar.gz \
SRC_URI[md5sum] = "1678ea99b973eb77eda4ecf6acae53f1"
SRC_URI[sha256sum] = "087c75b34dd33d8b9df5afe9e42801c9395f4bf373a784d9bc97153b0062e117"
-LICENSE = "GPL-2.0 & Artistic-1.0"
+LICENSE = "GPL-2.0-only & Artistic-1.0"
LIC_FILES_CHKSUM = "file://COPYING;md5=a71e50e197a992c862379e576e669757 \
file://Artistic;md5=505e00d03c3428cde21b17b2a386590e"
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..3c364dcc4e
--- /dev/null
+++ b/meta-oe/recipes-support/pv/pv/0001-pv-display-handle-error-of-tcgetpgrp-in-pv_in_foregr.patch
@@ -0,0 +1,38 @@
+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>
+---
+ 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/run-ptest b/meta-oe/recipes-support/pv/pv/run-ptest
new file mode 100644
index 0000000000..3f5956f4c0
--- /dev/null
+++ b/meta-oe/recipes-support/pv/pv/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+rm -rf tests.log
+sh -e run-test.sh pv . > tests.log 2>&1
+sed -e 's|\(.*\):.*OK|PASS: \1|' \
+ -e 's|\(.*\):.*FAILED|FAIL: \1|' \
+ tests.log
diff --git a/meta-oe/recipes-support/pv/pv_1.5.3.bb b/meta-oe/recipes-support/pv/pv_1.5.3.bb
deleted file mode 100644
index 5e3dd67c5b..0000000000
--- a/meta-oe/recipes-support/pv/pv_1.5.3.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Terminal-based tool for monitoring the progress of data through a pipeline"
-
-LICENSE = "Artistic-2.0"
-LIC_FILES_CHKSUM = "file://doc/COPYING;md5=9c50db2589ee3ef10a9b7b2e50ce1d02"
-
-SRC_URI = "http://www.ivarch.com/programs/sources/pv-${PV}.tar.bz2"
-SRC_URI[md5sum] = "efe8e9e4cad5f3264a32258a63bf2c8e"
-SRC_URI[sha256sum] = "76f3999b1c3b3027163dce6ef667cdf8dafb75218ee25e54a03bfe590478f90e"
-
-inherit autotools
-
diff --git a/meta-oe/recipes-support/pv/pv_1.6.20.bb b/meta-oe/recipes-support/pv/pv_1.6.20.bb
new file mode 100644
index 0000000000..6d449a945b
--- /dev/null
+++ b/meta-oe/recipes-support/pv/pv_1.6.20.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Terminal-based tool for monitoring the progress of data through a pipeline"
+HOMEPAGE = "http://www.ivarch.com/programs/pv.shtml"
+
+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"
+
+UPSTREAM_CHECK_URI = "http://www.ivarch.com/programs/pv.shtml"
+UPSTREAM_CHECK_REGEX = "pv-(?P<pver>\d+(\.\d+)+).tar.bz2"
+
+inherit autotools ptest
+
+LDEMULATION:mipsarchn32 = "${@bb.utils.contains('TUNE_FEATURES', 'bigendian', 'elf32btsmipn32', 'elf32ltsmipn32', d)}"
+export LDEMULATION
+
+RDEPENDS:${PN}-ptest = "coreutils"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -r ${S}/tests/* ${D}${PTEST_PATH}/tests
+ cp -r ${S}/autoconf/scripts/run-test.sh ${D}${PTEST_PATH}
+ # sed -i -e 's@\$SRCDIR/@./@g' ${D}${PTEST_PATH}/run-ptest
+}
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 30c41fffbe..2405839110 100644
--- a/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
+++ b/meta-oe/recipes-support/pxaregs/pxaregs_1.14.bb
@@ -1,5 +1,5 @@
SUMMARY = "Tool to display and modify PXA registers at runtime"
-LICENSE = "GPLv2"
+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/"
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 dd00c14f72..0000000000
--- a/meta-oe/recipes-support/raptor2/raptor2_2.0.15.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Library for parsing and serializing RDF syntaxes"
-LICENSE = "GPLv2 | LGPLv2.1 | 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 \
-"
-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..30df8e0648
--- /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
+
+EXTRA_OECONF = " \
+ --without-xml2-config \
+ --without-curl-config \
+ --without-xslt-config \
+"
diff --git a/meta-oe/recipes-support/rdfind/files/reproducible_build.patch b/meta-oe/recipes-support/rdfind/files/reproducible_build.patch
deleted file mode 100644
index 36728a7885..0000000000
--- a/meta-oe/recipes-support/rdfind/files/reproducible_build.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-Description: sort the filelist when it is complete to get reproducible behaviour
-Author: Reiner Herrmann <reiner@reiner-h.de>
-Bug-Debian: https://bugs.debian.org/795790
-
-Upstream-Status: Pending
-
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-
-Index: rdfind-1.3.4/Fileinfo.hh
-===================================================================
---- rdfind-1.3.4.orig/Fileinfo.hh
-+++ rdfind-1.3.4/Fileinfo.hh
-@@ -189,6 +189,10 @@ public:
- static bool compareondepth(const Fileinfo &a, const Fileinfo &b)
- {return (a.depth() < b.depth());}
-
-+ //returns true if a has lower filename than b)
-+ static bool compareonfilename(const Fileinfo &a, const Fileinfo &b)
-+ {return (a.name().compare(b.name()) < 0);}
-+
- //fills with bytes from the file. if lasttype is supplied,
- //it is used to see if the file needs to be read again - useful if
- //file is shorter than the length of the bytes field.
-@@ -235,6 +239,10 @@ public:
- static bool equaldepth(const Fileinfo &a, const Fileinfo &b)
- {return (a.depth()==b.depth());}
-
-+ //returns true if filenames are equal
-+ static bool equalfilename(const Fileinfo &a, const Fileinfo &b)
-+ {return (a.name()==b.name());}
-+
- //returns true if file is a regular file. call readfileinfo first!
- bool isRegularFile() {return m_info.is_file;}
-
-Index: rdfind-1.3.4/rdfind.cc
-===================================================================
---- rdfind-1.3.4.orig/rdfind.cc
-+++ rdfind-1.3.4/rdfind.cc
-@@ -349,6 +349,7 @@ int main(int narg, char *argv[])
- cout<<dryruntext<<"Now have "<<filelist1.size()<<" files in total."<<endl;
-
-
-+ gswd.sortlist(&Fileinfo::compareonfilename,&Fileinfo::equalfilename);
-
- //mark files with a unique number
- gswd.markitems();
diff --git a/meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb b/meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb
deleted file mode 100644
index 4d984ee05f..0000000000
--- a/meta-oe/recipes-support/rdfind/rdfind_1.3.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Rdfind is a program that finds duplicate files"
-HOMEPAGE = "https://rdfind.pauldreik.se/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-
-DEPENDS = "nettle"
-
-SRC_URI = "https://rdfind.pauldreik.se/${BP}.tar.gz \
- file://reproducible_build.patch \
-"
-
-SRC_URI[md5sum] = "97c0cb35933588413583c61d3b5f9adf"
-SRC_URI[sha256sum] = "a5f0b3f72093d927b93898c993479b35682cccb47f7393fb72bd4803212fcc7d"
-
-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_2023.03.01.bb b/meta-oe/recipes-support/re2/re2_2023.03.01.bb
new file mode 100644
index 0000000000..78bf695a4a
--- /dev/null
+++ b/meta-oe/recipes-support/re2/re2_2023.03.01.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "A regular expression library"
+HOMEPAGE = "https://github.com/google/re2/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b5c31eb512bdf3cb11ffd5713963760"
+
+# tag 2023-03-01
+SRCREV = "241e2e430836e80f93d704d1f06cd3e7fe3100f5"
+
+SRC_URI = "git://github.com/google/re2.git;branch=main;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE += " \
+ -DBUILD_SHARED_LIBS=ON \
+ -DRE2_BUILD_TESTING=OFF \
+"
+
+# 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/0001-Do-not-install-license-file.patch b/meta-oe/recipes-support/read-edid/read-edid/0001-Do-not-install-license-file.patch
new file mode 100644
index 0000000000..a9b9476bd6
--- /dev/null
+++ b/meta-oe/recipes-support/read-edid/read-edid/0001-Do-not-install-license-file.patch
@@ -0,0 +1,17 @@
+Do not install license file
+
+File name is incorrect as well; must be LICENSE instead of COPYING.
+
+Upstream-Status: Submitted [pyrophobicman@gmail.com]
+
+Signed-off-by: Stefan Wiehler <stefan.wiehler@missinglinkelectronics.com>
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -13,5 +13,5 @@
+ add_subdirectory (parse-edid)
+
+ INSTALL(FILES get-edid.1 DESTINATION share/man/man1)
+-INSTALL(FILES AUTHORS ChangeLog COPYING README DESTINATION
++INSTALL(FILES AUTHORS ChangeLog README DESTINATION
+ share/doc/read-edid)
diff --git a/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch b/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch
deleted file mode 100644
index 4408002356..0000000000
--- a/meta-oe/recipes-support/read-edid/read-edid/0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From eb7590cc2cdd5c35403af4567d8524e017010f1c Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Sat, 11 May 2013 07:58:17 +0200
-Subject: [PATCH] configure: remove check for x86.h, we don't build get-edid
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-
-Upstream-status: Inappropriate [OE specific]
----
- configure.in | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index ac85a21..f53e904 100644
---- a/configure.in
-+++ b/configure.in
-@@ -8,8 +8,6 @@ dnl Checks for programs
-
- AC_PROG_CC
-
--AC_CHECK_HEADER([libx86.h], [], [AC_MSG_ERROR([libx86.h not found])])
--
- dnl Simple, huh?
-
- AC_OUTPUT([Makefile])
---
-1.8.1.4
-
diff --git a/meta-oe/recipes-support/read-edid/read-edid/0001-get-edid-define-quiet-once.patch b/meta-oe/recipes-support/read-edid/read-edid/0001-get-edid-define-quiet-once.patch
new file mode 100644
index 0000000000..5147f17c3a
--- /dev/null
+++ b/meta-oe/recipes-support/read-edid/read-edid/0001-get-edid-define-quiet-once.patch
@@ -0,0 +1,44 @@
+From 9da8eb6663d0ba046bc0570172c549d421de043a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Aug 2020 23:39:32 -0700
+Subject: [PATCH] get-edid: define quiet once
+
+Fixes build with gcc 10
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ get-edid/classic.c | 2 +-
+ get-edid/i2c.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/get-edid/classic.c b/get-edid/classic.c
+index 9cc8ee3..b13f5f0 100644
+--- a/get-edid/classic.c
++++ b/get-edid/classic.c
+@@ -26,7 +26,7 @@ typedef byte* real_ptr;
+ #define dosmemput(buffer,length,offset) memcpy(offset,buffer,length)
+
+ #define display(...) if (quiet == 0) { fprintf(stderr, __VA_ARGS__); }
+-int quiet;
++extern int quiet;
+
+ real_ptr far_ptr_to_real_ptr( uint32 farptr )
+ {
+diff --git a/get-edid/i2c.c b/get-edid/i2c.c
+index 625d7cb..0929e98 100644
+--- a/get-edid/i2c.c
++++ b/get-edid/i2c.c
+@@ -15,7 +15,7 @@
+
+ //Ideas (but not too much actual code) taken from i2c-tools. Thanks guys.
+
+-int quiet;
++extern int quiet;
+
+ #define display(...) if (quiet == 0) { fprintf(stderr, __VA_ARGS__); }
+
+--
+2.28.0
+
diff --git a/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb b/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb
deleted file mode 100644
index b002906fa6..0000000000
--- a/meta-oe/recipes-support/read-edid/read-edid_2.0.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "read-edid elucidates various very useful informations from a conforming PnP monitor"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d0bf70fa1ef81fe4741ec0e6231dadfd"
-
-SRC_URI = "http://polypux.org/projects/read-edid/read-edid-${PV}.tar.gz \
- file://0001-configure-remove-check-for-x86.h-we-don-t-build-get-.patch"
-
-SRC_URI[md5sum] = "586e7fa1167773b27f4e505edc93274b"
-SRC_URI[sha256sum] = "246ec14ec509e09ac26fe6862b120481b2cc881e2f142ba40886d6eec15e77e8"
-
-inherit autotools
-
-do_compile() {
- oe_runmake parse-edid
-}
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 parse-edid ${D}${bindir}
-}
-
-PACKAGES =+ "parse-edid"
-FILES_parse-edid = "${bindir}/parse-edid"
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
new file mode 100644
index 0000000000..1aa492c31b
--- /dev/null
+++ b/meta-oe/recipes-support/read-edid/read-edid_3.0.2.bb
@@ -0,0 +1,21 @@
+SUMMARY = "A pair of tools for reading the EDID from a monitor"
+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"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=292c42e2aedc4af636636bf7af0e2b26"
+
+SRC_URI = "http://polypux.org/projects/read-edid/read-edid-${PV}.tar.gz \
+ file://0001-Do-not-install-license-file.patch \
+ file://0001-get-edid-define-quiet-once.patch \
+ "
+SRC_URI[md5sum] = "016546e438bf6c98739ff74061df9854"
+SRC_URI[sha256sum] = "c7c6d8440f5b90f98e276829271ccea5b2ff5a3413df8a0f87ec09f834af186f"
+
+EXTRA_OECMAKE = "-DCLASSICBUILD=OFF"
+
+inherit cmake
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..4c3436823a
--- /dev/null
+++ b/meta-oe/recipes-support/reboot-mode/reboot-mode_git.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Reboot the device to a specific mode."
+AUTHOR = "Daniele Debernardi <drebrez@gmail.com>"
+
+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.31.bb b/meta-oe/recipes-support/remmina/remmina_1.4.31.bb
new file mode 100644
index 0000000000..56ad32ce37
--- /dev/null
+++ b/meta-oe/recipes-support/remmina/remmina_1.4.31.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 = "7407cc3a27eb25ba4ddddeab565f67fd688324ed"
+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/rsnapshot/rsnapshot_git.bb b/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
index aefe3627eb..3cbd04bd5c 100644
--- a/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
+++ b/meta-oe/recipes-support/rsnapshot/rsnapshot_git.bb
@@ -3,33 +3,35 @@ HOMEPAGE = "http://www.rsnapshot.org"
BUGTRACKER = "https://sourceforge.net/projects/rsnapshot/"
SECTION = "console/network"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=892f569a555ba9c07a568a7c0c4fa63a"
-RDEPENDS_${PN} = "rsync \
+RDEPENDS:${PN} = "rsync \
perl \
perl-module-dirhandle \
perl-module-cwd \
perl-module-getopt-std \
perl-module-file-path \
perl-module-file-stat \
+ perl-module-file-spec \
perl-module-posix \
perl-module-fcntl \
perl-module-io-file \
perl-module-constant \
perl-module-overloading \
+ perl-module-ipc-open3 \
"
-SRCREV = "27209563f924a22f510698ea225f53ea52f07cb4"
-PV = "1.4.2+git${SRCPV}"
+SRCREV = "1b943dbc7695d62fac5c0f9549ec696a538be19c"
+PV = "1.4.5"
-SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=git \
+SRC_URI = "git://github.com/DrHyde/${BPN};branch=master;protocol=https \
file://configure-fix-cmd_rsync.patch \
"
S = "${WORKDIR}/git"
-inherit autotools
+inherit autotools perlnative
# Fix rsnapshot.conf.default:
# don't inject the host path into target configs.
@@ -46,7 +48,7 @@ EXTRA_OECONF += "--without-cp \
# Create 't/include.ac' before starting the autoreconf to fix configure
# error: configure.ac:302: file 't/include.ac' does not exist
-do_configure_prepend(){
+do_configure:prepend(){
saved_dir=`pwd`
cd ${S}; ./autogen.sh
cd ${saved_dir}
diff --git a/meta-oe/recipes-support/rtc-tools/rtc-tools_2022.02.bb b/meta-oe/recipes-support/rtc-tools/rtc-tools_2022.02.bb
new file mode 100644
index 0000000000..d65f5da859
--- /dev/null
+++ b/meta-oe/recipes-support/rtc-tools/rtc-tools_2022.02.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Useful programs to test rtc drivers"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=74274e8a218423e49eefdea80bc55038"
+
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/${BPN}.git;protocol=https;branch=master"
+SRCREV = "61839777afedcc7bdb68ea4628c5ce5ca72c2ac8"
+
+S = "${WORKDIR}/git"
+
+EXTRA_OEMAKE = "DESTDIR=${D}"
+
+do_install() {
+ oe_runmake install
+}
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..7ae9925038
--- /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}"
+
diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
deleted file mode 100644
index 255754d5d1..0000000000
--- a/meta-oe/recipes-support/samsung-soc-utils/s3c24xx-gpio_svn.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c24xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio.c;endline=12;md5=cfb91c686857b2e60852b4925d90a3e1"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
-PR = "r2"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio.c
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
deleted file mode 100644
index 976a4f15ec..0000000000
--- a/meta-oe/recipes-support/samsung-soc-utils/s3c64xx-gpio_svn.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A user-space tool to show and modify the state of GPIOs on the S3c64xx platform"
-SECTION = "console/utils"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://gpio-s3c6410.c;endline=12;md5=060cda1be945ad9194593f11d56d55c7"
-SRCREV = "4949"
-PV = "1.0+svnr${SRCPV}"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gpio;protocol=http"
-S = "${WORKDIR}/gpio"
-
-CLEANBROKEN = "1"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} -o ${PN} gpio-s3c6410.c
-}
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${PN} ${D}${sbindir}
-}
diff --git a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb b/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
deleted file mode 100644
index 2d5935dd3c..0000000000
--- a/meta-oe/recipes-support/samsung-soc-utils/sjf2410-linux-native_svn.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "JTAG utility to interface w/ a S3C2410 device"
-SECTION = "devel"
-AUTHOR = "Harald Welte <laforge@openmoko.org>"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://parport.c;endline=19;md5=b5681091b0fd8c5f7068835c441bf0c8"
-SRCREV = "4268"
-PV = "0.1+svnr${SRCPV}"
-PR = "r1"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=sjf2410-linux;protocol=http"
-S = "${WORKDIR}/sjf2410-linux"
-
-inherit native deploy
-do_deploy[sstate-outputdirs] = "${DEPLOY_DIR_TOOLS}"
-
-CFLAGS += "-DLINUX_PPDEV"
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 0755 sjf2410 ${D}/${bindir}
-}
-
-do_deploy() {
- install -d ${DEPLOY_DIR_TOOLS}
- install -m 0755 sjf2410 ${DEPLOY_DIR_TOOLS}/sjf2410-${PV}
-}
-
-addtask deploy before do_build after do_install
diff --git a/meta-oe/recipes-support/sass/libsass_git.bb b/meta-oe/recipes-support/sass/libsass_git.bb
new file mode 100644
index 0000000000..4d709fc526
--- /dev/null
+++ b/meta-oe/recipes-support/sass/libsass_git.bb
@@ -0,0 +1,14 @@
+SUMMARY = "C/C++ port of the Sass CSS precompiler"
+HOMEPAGE = "http://sass-lang.com/libsass"
+LICENSE = "MIT"
+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"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/sass/sassc_git.bb b/meta-oe/recipes-support/sass/sassc_git.bb
new file mode 100644
index 0000000000..9bb8c76e87
--- /dev/null
+++ b/meta-oe/recipes-support/sass/sassc_git.bb
@@ -0,0 +1,14 @@
+SUMMARY = "libsass command line driver "
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2f8a76980411a3f1f1480b141ce06744"
+
+DEPENDS = "libsass"
+
+inherit autotools pkgconfig
+
+SRC_URI = "git://github.com/sass/sassc.git;branch=master;protocol=https"
+SRCREV = "66f0ef37e7f0ad3a65d2f481eff09d09408f42d0"
+S = "${WORKDIR}/git"
+PV = "3.6.2"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch b/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
deleted file mode 100644
index 9e95a3f9d1..0000000000
--- a/meta-oe/recipes-support/satyr/files/0001-do-not-support-python2.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 206f334d62da17093e784094c9d9e80c853f704f Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Fri, 12 May 2017 03:03:46 -0400
-Subject: [PATCH] do not support python2
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 16 ----------------
- python/Makefile.am | 24 ------------------------
- 2 files changed, 40 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 200a7cc..8431c51 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -22,22 +22,6 @@ AM_MISSING_PROG([AUTOM4TE], [autom4te])
- # Needed by tests/atlocal.in.
- AC_SUBST([O0CFLAGS], [`echo $CFLAGS | sed 's/-O[[0-9]] *//'`])
-
--AM_PATH_PYTHON
--AM_CONDITIONAL([HAVE_PYTHON], test -n "$PYTHON")
--[if test -z "$PYTHON"; then]
-- [echo "The python interpreter was not found in the search path. The Python language bindings"]
-- [echo "will not be built. If you want to build the Python language bindings, please ensure"]
-- [echo "that python is installed and its directory is included in the search path."]
-- [echo "Then run configure again before attempting to build Satyr."]
--[fi]
--
--# Just PKG_CHECK_MODULES([PYTHON], [python]) works only with python2.7+
--# Below, if python is not found, we set up for python2.6 w/o checking:
--PKG_CHECK_MODULES([PYTHON], [python2],,[
-- PYTHON_LIBS='-L/usr/lib64 -lpython2.6'
-- PYTHON_CFLAGS='-I/usr/include/python2.6'
--])
--
- AC_ARG_ENABLE([python-manpage],
- [AS_HELP_STRING([--disable-python-manpage],
- [Disable python bindings manpage build])],
-diff --git a/python/Makefile.am b/python/Makefile.am
-index 36fc2e9..0b73f66 100644
---- a/python/Makefile.am
-+++ b/python/Makefile.am
-@@ -1,12 +1,5 @@
- SUBDIRS = . doc
-
--py2satyrdir = $(pyexecdir)/satyr
--
--py2satyr_PYTHON = \
-- __init__.py
--
--py2satyr_LTLIBRARIES = _satyr.la
--
- PYEXTFILES = \
- py_cluster.h \
- py_cluster.c \
-@@ -75,23 +68,6 @@ PYEXTLDFLAGS = \
- -module \
- -avoid-version
-
--_satyr_la_SOURCES = $(PYEXTFILES)
--_satyr_la_CPPFLAGS = \
-- $(PYEXTCPPFLAGS) \
-- $(PYTHON_CFLAGS)
--_satyr_la_LDFLAGS = \
-- $(PYEXTLDFLAGS) \
-- -export-symbols-regex init_satyr
--
--# Depending on the configure option, we either link libsatyr.so dynamically (as
--# is usual), or directly include its object files (by including the
--# convenience library).
--if ENABLE_STATIC_PYTHON_MODULE
--_satyr_la_LIBADD = ../lib/libsatyr_conv.la
--else
--_satyr_la_LIBADD = ../lib/libsatyr.la
--endif
--
- if WITH_PYTHON3
- py3satyrdir = $(py3execdir)/satyr
-
---
-2.8.1
-
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 5827eb4d18..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
-@@ -188,7 +188,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.23.bb b/meta-oe/recipes-support/satyr/satyr_0.23.bb
deleted file mode 100644
index f795c3717b..0000000000
--- a/meta-oe/recipes-support/satyr/satyr_0.23.bb
+++ /dev/null
@@ -1,33 +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 = "GPLv2"
-
-inherit autotools-brokensep python3native pkgconfig
-
-SRC_URI = "git://github.com/abrt/satyr.git \
- file://0001-do-not-support-python2.patch \
- file://0002-fix-compile-failure-against-musl-C-library.patch \
-"
-SRCREV = "4742fd4857c446b96f712d52e2e4cd0b6cfe7398"
-S = "${WORKDIR}/git"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS += " \
- gdb \
-"
-
-PACKAGES += "python3-${PN}"
-FILES_python3-${PN} = "${PYTHON_SITEPACKAGES_DIR}/${BPN}"
-
-PACKAGECONFIG ??= "python3 rpm"
-PACKAGECONFIG[python3] = "--with-python3, --without-python3,,python3"
-PACKAGECONFIG[pythonmanpage] = "--enable-python-manpage, --disable-python-manpage"
-PACKAGECONFIG[rpm] = "--with-rpm, --without-rpm, rpm"
-
-do_configure_prepend() {
- ${S}/gen-version
-}
diff --git a/meta-oe/recipes-support/satyr/satyr_0.42.bb b/meta-oe/recipes-support/satyr/satyr_0.42.bb
new file mode 100644
index 0000000000..62cdad6fb0
--- /dev/null
+++ b/meta-oe/recipes-support/satyr/satyr_0.42.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 = "23483cebb238df86cda8b6529e3c58080dc2029d"
+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/sdparm/files/make-sysroot-work.patch b/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
index 3fd85d9e25..f58091ad7f 100644
--- a/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
+++ b/meta-oe/recipes-support/sdparm/files/make-sysroot-work.patch
@@ -17,13 +17,13 @@ diff --git a/src/Makefile.am b/src/Makefile.am
index 61dd9f8..42c911f 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -41,7 +41,7 @@ sglib_SOURCES = ../lib/sg_lib.c \
+@@ -53,7 +53,7 @@ sglib_SOURCES = ../lib/sg_lib.c \
../lib/sg_pt_common.c
if HAVE_SGUTILS
-INCLUDES = -I/scsi
+INCLUDES = -I=@includedir@/scsi
- sdparm_LDADD = @GETOPT_O_FILES@ @os_libs@ @SGUTILS_LIBS@
+ sdparm_LDADD = @GETOPT_O_FILES@ @SGUTILS_LIBS@
sdparm_DEPENDENCIES = @GETOPT_O_FILES@
else
--
diff --git a/meta-oe/recipes-support/sdparm/sdparm_1.10.bb b/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
deleted file mode 100644
index 35e22d3ea2..0000000000
--- a/meta-oe/recipes-support/sdparm/sdparm_1.10.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "fetch and change SCSI mode pages"
-DESCRIPTION = "The sdparm utility accesses and optionally modifies \
-SCSI devices' mode page and inquiry data."
-HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html"
-SECTION = "console/utils"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \
- file://lib/BSD_LICENSE;md5=1d52f4a66f1e0ed96776bf354ab7a2ed"
-DEPENDS="sg3-utils"
-SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
- file://make-sysroot-work.patch \
- "
-MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
-
-UPSTREAM_CHECK_REGEX = "sdparm-(?P<pver>\d+(\.\d+)+)\.tgz"
-
-PACKAGES =+ "${PN}-scripts"
-RDEPENDS_${PN}-scripts += "bash ${PN}"
-
-SRC_URI[md5sum] = "bdae64375376ce8fe4bf9521c1db858f"
-SRC_URI[sha256sum] = "1ea1ed1bb1ee2aef62392618fa42da9ed027d5e655f174525c39235778292ab3"
-
-inherit autotools
-
-# Put the bash scripts to ${PN}-scripts
-FILES_${PN}-scripts = "${bindir}/sas_disk_blink ${bindir}/scsi_ch_swp"
diff --git a/meta-oe/recipes-support/sdparm/sdparm_1.12.bb b/meta-oe/recipes-support/sdparm/sdparm_1.12.bb
new file mode 100644
index 0000000000..a5f98e6723
--- /dev/null
+++ b/meta-oe/recipes-support/sdparm/sdparm_1.12.bb
@@ -0,0 +1,26 @@
+SUMMARY = "fetch and change SCSI mode pages"
+DESCRIPTION = "The sdparm utility accesses and optionally modifies \
+SCSI devices' mode page and inquiry data."
+HOMEPAGE = "http://sg.danny.cz/sg/sdparm.html"
+SECTION = "console/utils"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ecab6c36b7ba82c675581dd0afde36f7 \
+ file://lib/BSD_LICENSE;md5=12cde17a04c30dece2752f36b7192c64"
+DEPENDS="sg3-utils"
+SRC_URI = "http://sg.danny.cz/sg/p/${BPN}-${PV}.tgz \
+ file://make-sysroot-work.patch \
+ "
+MIRRORS += "http://sg.danny.cz/sg/p https://fossies.org/linux/misc"
+
+UPSTREAM_CHECK_REGEX = "sdparm-(?P<pver>\d+(\.\d+)+)\.tgz"
+
+PACKAGES =+ "${PN}-scripts"
+RDEPENDS:${PN}-scripts += "bash ${PN}"
+
+SRC_URI[md5sum] = "2902fd29e6834fd62c16bb5d1ac53c7e"
+SRC_URI[sha256sum] = "e7f84247069da9a0c293963948d8aba8e5897a13e35e5476c8258acb7ca3a124"
+
+inherit autotools
+
+# Put the bash scripts to ${PN}-scripts
+FILES:${PN}-scripts = "${bindir}/sas_disk_blink ${bindir}/scsi_ch_swp"
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 7f59b3ecad..71588abd3f 100644
--- a/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
+++ b/meta-oe/recipes-support/serial-utils/pty-forward-native.bb
@@ -1,12 +1,12 @@
SUMMARY = "Receive a forwarded serial from serial-forward and provide a PTY"
AUTHOR = "Holger 'Zecke' Freyther"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
SECTION = "console/network"
SRCREV = "00dbec2636ae0385ad028587e20e446272ff97ec"
PV = "1.1+gitr${SRCPV}"
-SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https"
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git;protocol=https;branch=master"
S = "${WORKDIR}/git/tools/serial_forward"
inherit autotools native
diff --git a/meta-oe/recipes-support/serial-utils/serial-forward/0001-correct-the-typo-in-include-file-name-string.h.patch b/meta-oe/recipes-support/serial-utils/serial-forward/0001-correct-the-typo-in-include-file-name-string.h.patch
new file mode 100644
index 0000000000..f65d2c4bbf
--- /dev/null
+++ b/meta-oe/recipes-support/serial-utils/serial-forward/0001-correct-the-typo-in-include-file-name-string.h.patch
@@ -0,0 +1,27 @@
+From 2897794c337625d1951eb0b402cd8840ae2182a8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 10:33:57 -0700
+Subject: [PATCH] correct the typo in include file name string.h
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/serial_forward/src/forward.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/serial_forward/src/forward.c b/tools/serial_forward/src/forward.c
+index 9fad6f9b..4c0dd9df 100644
+--- a/tools/serial_forward/src/forward.c
++++ b/tools/serial_forward/src/forward.c
+@@ -20,7 +20,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <termios.h>
+-#include <strings.h>
++#include <string.h>
+ #include <getopt.h>
+
+ #include "forward.h"
+--
+2.37.3
+
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 0ef829856c..fe5cfc0f45 100644
--- a/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
+++ b/meta-oe/recipes-support/serial-utils/serial-forward_git.bb
@@ -1,13 +1,14 @@
SUMMARY = "Forward a serial using TCP/IP"
AUTHOR = "Holger 'Zecke' Freyther'"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebb5c50ab7cab4baeffba14977030c07"
SECTION = "console/devel"
SRCREV = "07c6fdede0870edc37a8d51d033b6e7e29aa7c91"
PV = "1.1+gitr${SRCPV}"
-SRC_URI = "git://github.com/freesmartphone/cornucopia.git \
+SRC_URI = "git://github.com/freesmartphone/cornucopia.git;branch=master;protocol=https \
file://0001-serial_forward-Disable-default-static-linking.patch;striplevel=3 \
+ file://0001-correct-the-typo-in-include-file-name-string.h.patch;striplevel=3 \
"
S = "${WORKDIR}/git/tools/serial_forward"
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/0001-sg_dd.c-Use-off_t-instead-of-uint.patch b/meta-oe/recipes-support/sg3-utils/sg3-utils/0001-sg_dd.c-Use-off_t-instead-of-uint.patch
new file mode 100644
index 0000000000..317876f197
--- /dev/null
+++ b/meta-oe/recipes-support/sg3-utils/sg3-utils/0001-sg_dd.c-Use-off_t-instead-of-uint.patch
@@ -0,0 +1,36 @@
+From 9a8ede03ef61cdf527ce3a80771150a7452e4603 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 11 Mar 2023 22:56:17 -0800
+Subject: [PATCH] sg_dd.c: Use off_t instead of uint
+
+uint is not available on every platform e.g. linux/musl systems. Use
+uint32_t instead to represent 'off' variable, Fixes
+
+sg_dd.c:2402:17: error: use of undeclared identifier 'uint'; did you mean 'int'?
+ uint off;
+ ^~~~
+ int
+1 error generated.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/sg_dd.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/sg_dd.c b/src/sg_dd.c
+index 9d05c93..35e2423 100644
+--- a/src/sg_dd.c
++++ b/src/sg_dd.c
+@@ -2399,7 +2399,7 @@ main(int argc, char * argv[])
+ res = blocks * blk_sz;
+ if (iflag.zero && iflag.ff && (blk_sz >= 4)) {
+ uint32_t pos = (uint32_t)skip;
+- uint off;
++ uint32_t off;
+
+ for (k = 0, off = 0; k < blocks; ++k, off += blk_sz, ++pos) {
+ for (j = 0; j < (blk_sz - 3); j += 4)
+--
+2.39.2
+
diff --git a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
deleted file mode 100644
index f14a5314a2..0000000000
--- a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.42.bb
+++ /dev/null
@@ -1,23 +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 = "GPLv2+ & BSD"
-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] = "28080de5bf2222f8b55a29093bec8aea"
-SRC_URI[sha256sum] = "1dcb7a0309bd0ba3d4a83acb526973b80106ee26cd9f7398186cd3f0633c9ef3"
-
-inherit autotools-brokensep
-
-S = "${WORKDIR}/sg3_utils-${PV}"
-
-RDEPENDS_${PN} += "bash"
diff --git a/meta-oe/recipes-support/sg3-utils/sg3-utils_1.47.bb b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.47.bb
new file mode 100644
index 0000000000..1aa65e6cc4
--- /dev/null
+++ b/meta-oe/recipes-support/sg3-utils/sg3-utils_1.47.bb
@@ -0,0 +1,23 @@
+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 \
+ file://0001-sg_dd.c-Use-off_t-instead-of-uint.patch"
+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] = "8673c7faca849b6b34764332d2aa91f72db05bff7382bb836d0688795199c3e1"
+
+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-build-with-recent-gettext.patch b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-recent-gettext.patch
new file mode 100644
index 0000000000..7924fa55e2
--- /dev/null
+++ b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-build-with-recent-gettext.patch
@@ -0,0 +1,22 @@
+From 7a2fe915dded27630a345762628cdd542ea5d58a Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Fri, 20 Dec 2019 13:56:16 +0100
+Subject: [PATCH] Fix build with recent gettext
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 03d1131..65609e7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -17,5 +17,5 @@
+ ## Process this file with automake to produce Makefile.in.
+
+ EXTRA_DIST = config.rpath m4 $(DIST_ALPHA)
+-SUBDIRS = intl lib libopts src doc po tests
++SUBDIRS = lib libopts src doc po tests
+ ACLOCAL_AMFLAGS = -I m4
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
new file mode 100644
index 0000000000..0d9978a214
--- /dev/null
+++ b/meta-oe/recipes-support/sharutils/sharutils/0001-Fix-building-with-GCC-10.patch
@@ -0,0 +1,100 @@
+From b7dd97708b9d0ed09d8d7ac435f8b25eadbf6487 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=83=C2=ADsa=C3=85=E2=84=A2?= <address@hidden>
+Date: Thu, 13 Aug 2020 11:20:38 -0700
+Subject: [PATCH 1/2] Fix building with GCC 10
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+GCC 10 defaults to -fno-common that results into errors on multiple
+global variable definitions:
+
+/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld:
+shar-opts.o:(.data.rel.ro.local+0x0): multiple definition of
+`program_name'; shar.o:(.rodata+0x10): first defined here
+
+This patch fixes it by changing the definitions in header files into extern
+declarations.
+
+<https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/msg00001.html>
+
+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 +-
+ src/uudecode-opts.h | 2 +-
+ src/uuencode-opts.h | 2 +-
+ 5 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/shar-opts.h b/src/shar-opts.h
+index 172676f..f6e4e79 100644
+--- a/src/shar-opts.h
++++ b/src/shar-opts.h
+@@ -352,7 +352,7 @@ extern "C" {
+ * global exported definitions
+ */
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+
+ extern bool initialization_done;
+ extern int optidx;
+diff --git a/src/shar-std.def b/src/shar-std.def
+index ed06b77..a28f61c 100644
+--- a/src/shar-std.def
++++ b/src/shar-std.def
+@@ -41,7 +41,7 @@ no-misuse-usage;
+ usage-message;
+ die-code;
+
+-export = '#include "local.h"'"\nchar const * const program_name;";
++export = '#include "local.h"'"\nextern char const * const program_name;";
+
+ #shell
+ echo "include = 'char const * const program_name = \"${progname}\";';"
+diff --git a/src/unshar-opts.h b/src/unshar-opts.h
+index 568ffca..aa85833 100644
+--- a/src/unshar-opts.h
++++ b/src/unshar-opts.h
+@@ -192,7 +192,7 @@ extern "C" {
+ extern size_t separator_str_len;
+
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+
+
+ /* * * * * *
+diff --git a/src/uudecode-opts.h b/src/uudecode-opts.h
+index 5b74419..289a366 100644
+--- a/src/uudecode-opts.h
++++ b/src/uudecode-opts.h
+@@ -170,7 +170,7 @@ extern "C" {
+ * global exported definitions
+ */
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+
+
+ /* * * * * *
+diff --git a/src/uuencode-opts.h b/src/uuencode-opts.h
+index 1a5b7bc..f2df0a8 100644
+--- a/src/uuencode-opts.h
++++ b/src/uuencode-opts.h
+@@ -166,7 +166,7 @@ extern "C" {
+ * global exported definitions
+ */
+ #include "local.h"
+-char const * const program_name;
++extern char const * const program_name;
+
+
+ /* * * * * *
+--
+2.28.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
new file mode 100644
index 0000000000..5932ddf1c0
--- /dev/null
+++ b/meta-oe/recipes-support/sharutils/sharutils/0002-Do-not-include-lib-md5.c-into-src-shar.c.patch
@@ -0,0 +1,42 @@
+From ab981e1a973e83edb6ea19e6e84102f43ded0dcb Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 13 Aug 2020 11:22:40 -0700
+Subject: [PATCH 2/2] Do not include lib/md5.c into src/shar.c
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+ib/md5.o is part of libgnu.a that is linked to shar. There is no
+point in linking md5.o twice into shar executable. Moreover SuSE
+reports that this triggers a linking error with GCC 10:
+
+/usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld:
+../lib/libgnu.a(md5.o): in function `md5_stream':
+[ 30s] md5.c:(.text+0x15d): multiple definition of `md5_stream';
+shar.o:shar.c:(.text+0x28): first defined here
+
+<https://lists.gnu.org/archive/html/bug-gnu-utils/2020-01/msg00001.html>
+
+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/src/shar.c b/src/shar.c
+index 11cbada..6d7ed1d 100644
+--- a/src/shar.c
++++ b/src/shar.c
+@@ -53,7 +53,6 @@ static const char cright_years_z[] =
+
+ #include "inttostr.h"
+ #include "liballoca.h"
+-#include "md5.c"
+ #include "md5.h"
+ #include "quotearg.h"
+ #include "xalloc.h"
+--
+2.28.0
+
diff --git a/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch b/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
new file mode 100644
index 0000000000..47eb9cfd64
--- /dev/null
+++ b/meta-oe/recipes-support/sharutils/sharutils/CVE-2018-1000097.patch
@@ -0,0 +1,61 @@
+From bd68ae1271598e8fdc72f2adb457e6882604582d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
+Date: Thu, 22 Feb 2018 16:39:43 +0100
+Subject: [PATCH] Fix a heap-buffer-overflow in find_archive()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+rw_buffer has allocated rw_base_size bytes. But subsequend fgets() in
+find_archive() reads up-to BUFSIZ bytes.
+
+On my system, BUFSIZ is 8192. rw_base_size is usually equaled to
+a memory page size, 4096 on my system. Thus find_archive() can write
+beyonded allocated memmory for rw_buffer array:
+
+$ valgrind -- ./unshar /tmp/id\:000000\,sig\:06\,src\:000005+000030\,op\:splice\,rep\:4
+==30582== Memcheck, a memory error detector
+==30582== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
+==30582== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
+==30582== Command: ./unshar /tmp/id:000000,sig:06,src:000005+000030,op:splice,rep:4
+==30582==
+==30582== Invalid write of size 1
+==30582== at 0x4EAB480: _IO_getline_info (in /usr/lib64/libc-2.27.so)
+==30582== by 0x4EB47C2: fgets_unlocked (in /usr/lib64/libc-2.27.so)
+==30582== by 0x10BF60: fgets_unlocked (stdio2.h:320)
+==30582== by 0x10BF60: find_archive (unshar.c:243)
+==30582== by 0x10BF60: unshar_file (unshar.c:379)
+==30582== by 0x10BCCC: validate_fname (unshar-opts.c:604)
+==30582== by 0x10BCCC: main (unshar-opts.c:639)
+==30582== Address 0x523a790 is 0 bytes after a block of size 4,096 alloc'd
+==30582== at 0x4C2DBBB: malloc (vg_replace_malloc.c:299)
+==30582== by 0x10C670: init_unshar (unshar.c:450)
+==30582== by 0x10BC55: main (unshar-opts.c:630)
+
+This was reported in
+<http://lists.gnu.org/archive/html/bug-gnu-utils/2018-02/msg00004.html>.
+
+CVE: CVE-2018-1000097
+Upstream-Status: Inappropriate [no upstream]
+Signed-off-by: Petr Písař <ppisar@redhat.com>
+Signed-off-by: Sinan Kaya <okaya@kernel.org>
+---
+ src/unshar.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/unshar.c b/src/unshar.c
+index 80bc3a9..0fc3773 100644
+--- a/src/unshar.c
++++ b/src/unshar.c
+@@ -240,7 +240,7 @@ find_archive (char const * name, FILE * file, off_t start)
+ off_t position = ftello (file);
+
+ /* Read next line, fail if no more and no previous process. */
+- if (!fgets (rw_buffer, BUFSIZ, file))
++ if (!fgets (rw_buffer, rw_base_size, file))
+ {
+ if (!start)
+ error (0, 0, _("Found no shell commands in %s"), name);
+--
+2.19.0
+
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 812fee955b..bd2776e1bc 100644
--- a/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
+++ b/meta-oe/recipes-support/sharutils/sharutils_4.15.2.bb
@@ -1,21 +1,31 @@
SUMMARY = "This is the set of GNU shar utilities."
HOMEPAGE = "http://www.gnu.org/software/sharutils/"
SECTION = "console/utils"
-LICENSE="GPLv3+"
+LICENSE="GPL-3.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-inherit gettext autotools
+inherit gettext autotools update-alternatives
-SRC_URI = "ftp://ftp.gnu.org/gnu/${BPN}/${BP}.tar.gz \
+SRC_URI = "${GNU_MIRROR}/${BPN}/${BP}.tar.gz \
file://0001-Fix-build-with-clang.patch \
-"
+ file://CVE-2018-1000097.patch \
+ 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 \
+ "
SRC_URI[md5sum] = "32a51b23e25ad5e6af4b89f228be1800"
SRC_URI[sha256sum] = "ee336e68549664e7a19b117adf02edfdeac6307f22e5ba78baca457116914637"
-do_install_append() {
+do_install:append() {
if [ -e ${D}${libdir}/charset.alias ]
then
rm -rf ${D}${libdir}/charset.alias
rmdir --ignore-fail-on-non-empty ${D}${libdir}
fi
}
+
+BBCLASSEXTEND = "native nativesdk"
+
+ALTERNATIVE:${PN} = "uudecode uuencode"
+ALTERNATIVE_LINK_NAME[uudecode] = "${bindir}/uudecode"
+ALTERNATIVE_LINK_NAME[uuencode] = "${bindir}/uuencode"
diff --git a/meta-oe/recipes-support/smarty/smarty_4.3.0.bb b/meta-oe/recipes-support/smarty/smarty_4.3.0.bb
new file mode 100644
index 0000000000..bc6fc0d8c6
--- /dev/null
+++ b/meta-oe/recipes-support/smarty/smarty_4.3.0.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=master"
+
+SRCREV = "c02e9e135ea719b91f457a0072748ded0e852e7d"
+
+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/smem/smem_1.4.bb b/meta-oe/recipes-support/smem/smem_1.4.bb
deleted file mode 100644
index 519020f3b0..0000000000
--- a/meta-oe/recipes-support/smem/smem_1.4.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Report application memory usage in a meaningful way"
-DESCRIPTION = "smem is a tool that can give numerous reports on memory usage on Linux \
-systems. Unlike existing tools, smem can report proportional set size (PSS), \
-which is a more meaningful representation of the amount of memory used by \
-libraries and applications in a virtual memory system."
-HOMEPAGE = "http://www.selenic.com/smem/"
-SECTION = "Applications/System"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "http://www.selenic.com/${BPN}/download/${BP}.tar.gz"
-SRC_URI[md5sum] = "fe79435c3930389bfdb560255c802162"
-SRC_URI[sha256sum] = "2ea9f878f4cf3c276774c3f7e2a41977a1f2d64f98d2dcb6a15f1f3d84df61ec"
-
-do_compile() {
- ${CC} ${CFLAGS} ${LDFLAGS} smemcap.c -o smemcap
-}
-
-do_install() {
- install -d ${D}/${bindir}/
- install -d ${D}/${mandir}/man8
- install -m 0755 ${S}/smem ${D}${bindir}/
- install -m 0755 ${S}/smemcap ${D}${bindir}/
- install -m 0644 ${S}/smem.8 ${D}/${mandir}/man8/
-}
-RDEPENDS_${PN} += "python-textutils python-compression python-shell python-codecs"
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
new file mode 100644
index 0000000000..15380f5d7f
--- /dev/null
+++ b/meta-oe/recipes-support/span-lite/span-lite_0.10.3.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 = "cbb9c3c5162a0d7018c7b3e053153a04d4fbbbb9"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-support/spdlog/spdlog_1.12.0.bb b/meta-oe/recipes-support/spdlog/spdlog_1.12.0.bb
new file mode 100644
index 0000000000..c7d8ff8f3d
--- /dev/null
+++ b/meta-oe/recipes-support/spdlog/spdlog_1.12.0.bb
@@ -0,0 +1,17 @@
+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 = "7e635fca68d014934b4af8a1cf874f63989352b7"
+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/spitools/spitools_git.bb b/meta-oe/recipes-support/spitools/spitools_git.bb
index 3f6cdc63d1..c190d7edf1 100644
--- a/meta-oe/recipes-support/spitools/spitools_git.bb
+++ b/meta-oe/recipes-support/spitools/spitools_git.bb
@@ -1,19 +1,15 @@
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="GPLv2"
+LICENSE="GPL-2.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8c16666ae6c159876a0ba63099614381"
-PR = "r0"
-
-BPV = "0.8.1"
-PV = "${BPV}"
-SRCREV = "318bcae5249722873bf58b27afdd20473c7047cc"
+PV = "1.0.2"
+SRCREV = "1748e092425a4a0ff693aa347062a57fc1ffdd00"
S = "${WORKDIR}/git"
-SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=git"
+SRC_URI = "git://github.com/cpb-/spi-tools.git;protocol=https;branch=master"
inherit autotools
-
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/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/srecord_1.64.bb b/meta-oe/recipes-support/srecord/srecord_1.64.bb
deleted file mode 100644
index fe1af476f2..0000000000
--- a/meta-oe/recipes-support/srecord/srecord_1.64.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "A collection of powerful tools for manipulating EPROM load files."
-SECTION = "devel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8dfcbf2f0a144b97f0931b6394debea7"
-
-SRC_URI = " \
- http://srecord.sourceforge.net/srecord-${PV}.tar.gz \
- file://add-option-to-remove-docs.patch \
-"
-
-SRC_URI[md5sum] = "4de4a7497472d7972645c2af91313769"
-SRC_URI[sha256sum] = "49a4418733c508c03ad79a29e95acec9a2fbc4c7306131d2a8f5ef32012e67e2"
-
-DEPENDS = "libtool-native boost groff-native"
-
-inherit autotools-brokensep
-
-EXTRA_OECONF = "--without-gcrypt LIBTOOL=${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool"
-
-# 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..06ce48e65c
--- /dev/null
+++ b/meta-oe/recipes-support/srecord/srecord_1.65.0.bb
@@ -0,0 +1,19 @@
+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"
+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
new file mode 100644
index 0000000000..5842ff1f36
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Don-t-use-__GNUC_PREREQ.patch
@@ -0,0 +1,118 @@
+From dd6ad8ca447457c812809791ab8622da8646104c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Aug 2019 13:07:33 -0700
+Subject: [PATCH] Don't use __GNUC_PREREQ
+
+These are not official GCC predefined macros; they are macros defined
+by GNU libc and some versions of BSD libc for internal use by their
+own headers, and we shouldn't be using them without checking for their
+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 ++--
+ lib/mpb/machine_bytes.h | 4 ++--
+ lib/mpb/mpb.h | 4 ++--
+ lib/orom/orom.h | 4 ++--
+ 6 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/lib/efi/efi.h b/lib/efi/efi.h
+index 0620d9c..c8358db 100644
+--- a/lib/efi/efi.h
++++ b/lib/efi/efi.h
+@@ -33,9 +33,9 @@
+ #include <features.h>
+ #include <ssi.h>
+
+-#if __GNUC_PREREQ(3, 4)
++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
++#endif
+
+ #if defined(__cplusplus)
+ extern "C" {
+diff --git a/lib/engine/pragma.h b/lib/engine/pragma.h
+index 8205ed3..fa0b268 100644
+--- a/lib/engine/pragma.h
++++ b/lib/engine/pragma.h
+@@ -32,9 +32,9 @@
+
+ #include <features.h>
+
+-#if __GNUC_PREREQ(3, 4)
++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
+ #define SSI_HAS_PRAGMA_ONCE
+-#endif /* __GNUC_PREREQ */
++#endif
+
+ #ifdef SSI_HAS_PRAGMA_ONCE
+ #pragma once
+diff --git a/lib/log/log.h b/lib/log/log.h
+index 66a707b..ca5000a 100644
+--- a/lib/log/log.h
++++ b/lib/log/log.h
+@@ -32,9 +32,9 @@
+
+ #include <features.h>
+
+-#if __GNUC_PREREQ(3, 4)
++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
++#endif
+
+ #if defined(__cplusplus)
+ extern "C" {
+diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h
+index 6cb81c9..807461f 100644
+--- a/lib/mpb/machine_bytes.h
++++ b/lib/mpb/machine_bytes.h
+@@ -27,9 +27,9 @@
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#if __GNUC_PREREQ(3, 4)
++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
++#endif
+
+ #ifndef __ENDIAN_H__INCLUDED__
+ #define __ENDIAN_H__INCLUDED__
+diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h
+index 32beb21..98f82fe 100644
+--- a/lib/mpb/mpb.h
++++ b/lib/mpb/mpb.h
+@@ -27,9 +27,9 @@
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#if __GNUC_PREREQ(3, 4)
++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
++#endif
+
+ #ifndef __MPB_H__INCLUDED__
+ #define __MPB_H__INCLUDED__
+diff --git a/lib/orom/orom.h b/lib/orom/orom.h
+index 4492066..16b03a6 100644
+--- a/lib/orom/orom.h
++++ b/lib/orom/orom.h
+@@ -32,9 +32,9 @@
+
+ #include <features.h>
+
+-#if __GNUC_PREREQ(3, 4)
++#if ((defined __GNUC__ && __GNUC__ >= 3 && __GNUC_MINOR__ >= 4) || defined __clang__)
+ #pragma once
+-#endif /* __GNUC_PREREQ */
++#endif
+
+ #if defined(__cplusplus)
+ extern "C" {
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
new file mode 100644
index 0000000000..b522146602
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Include-libgen.h.patch
@@ -0,0 +1,34 @@
+From 258a1d128581f185a7a5070f47df06e5c29c9db8 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Aug 2019 13:43:32 -0700
+Subject: [PATCH] Include libgen.h
+
+Use XPG version of basename on non gnu libc systems
+ideally posix version should be used everywhere but that
+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/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
+index 0d11975..af7e09c 100644
+--- a/tools/ssieventmonitor.cpp
++++ b/tools/ssieventmonitor.cpp
+@@ -39,7 +39,9 @@
+ #include <sys/select.h>
+ #include <sys/wait.h>
+ #include <sys/inotify.h>
+-
++#ifndef __GLIBC__
++#include <libgen.h>
++#endif
+ extern "C" {
+ #include "lib/safeclib/safe_str_lib.h"
+ }
+--
+2.23.0
+
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
deleted file mode 100644
index ef6ae00e3d..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0001-Use-pragma-once-unconditionally.patch
+++ /dev/null
@@ -1,872 +0,0 @@
-From 3100e23c50e38bff0c2ec77bc30049c113c29414 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 20:44:31 -0700
-Subject: [PATCH 1/6] Use pragma once unconditionally
-
-in OE we do not worry about supporting
-gcc 3.4 anyway
-
-Upstream-Status: Inappropriate[Bumps required gcc to be > 3.4]
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/efi/efi.h | 2 --
- lib/engine/ahci.h | 2 --
- lib/engine/ahci_cdrom.h | 2 --
- lib/engine/ahci_disk.h | 2 --
- lib/engine/ahci_multiplier.h | 2 --
- lib/engine/ahci_multiplier_phy.h | 2 --
- lib/engine/ahci_multiplier_port.h | 2 --
- lib/engine/ahci_phy.h | 2 --
- lib/engine/ahci_port.h | 2 --
- lib/engine/ahci_raid_info.h | 2 --
- lib/engine/ahci_tape.h | 2 --
- lib/engine/array.h | 2 --
- lib/engine/block_device.h | 2 --
- lib/engine/cache.h | 2 --
- lib/engine/container.h | 2 --
- lib/engine/context_manager.h | 2 --
- lib/engine/controller.h | 2 --
- lib/engine/enclosure.h | 2 --
- lib/engine/end_device.h | 2 --
- lib/engine/event.h | 2 --
- lib/engine/event_manager.h | 2 --
- lib/engine/exception.h | 2 --
- lib/engine/filesystem.h | 2 --
- lib/engine/isci.h | 2 --
- lib/engine/isci_cdrom.h | 2 --
- lib/engine/isci_disk.h | 2 --
- lib/engine/isci_expander.h | 2 --
- lib/engine/isci_expander_phy.h | 2 --
- lib/engine/isci_expander_port.h | 2 --
- lib/engine/isci_phy.h | 2 --
- lib/engine/isci_port.h | 2 --
- lib/engine/isci_raid_info.h | 2 --
- lib/engine/isci_tape.h | 2 --
- lib/engine/list.h | 2 --
- lib/engine/mdadm_config.h | 2 --
- lib/engine/multimedia_device.h | 2 --
- lib/engine/nondisk_device.h | 2 --
- lib/engine/object.h | 2 --
- lib/engine/pci_header.h | 2 --
- lib/engine/phy.h | 2 --
- lib/engine/port.h | 2 --
- lib/engine/raid_device.h | 2 --
- lib/engine/raid_info.h | 2 --
- lib/engine/remote_port.h | 2 --
- lib/engine/routing_device.h | 2 --
- lib/engine/session.h | 2 --
- lib/engine/session_manager.h | 2 --
- lib/engine/storage_device.h | 2 --
- lib/engine/stream_device.h | 2 --
- lib/engine/string.h | 2 --
- lib/engine/unique_id_manager.h | 2 --
- lib/engine/utils.h | 2 --
- lib/engine/volume.h | 2 --
- lib/log/log.h | 2 --
- lib/mpb/machine_bytes.h | 2 --
- lib/mpb/mpb.h | 2 --
- lib/orom/orom.h | 2 --
- 57 files changed, 114 deletions(-)
-
-diff --git a/lib/efi/efi.h b/lib/efi/efi.h
-index 9e7e41b..804e567 100644
---- a/lib/efi/efi.h
-+++ b/lib/efi/efi.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __EFI_H__INCLUDED__
- #define __EFI_H__INCLUDED__
-diff --git a/lib/engine/ahci.h b/lib/engine/ahci.h
-index e883d1a..80a9699 100644
---- a/lib/engine/ahci.h
-+++ b/lib/engine/ahci.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_H__INCLUDED__
- #define __AHCI_H__INCLUDED__
-diff --git a/lib/engine/ahci_cdrom.h b/lib/engine/ahci_cdrom.h
-index 442f301..d8ca042 100644
---- a/lib/engine/ahci_cdrom.h
-+++ b/lib/engine/ahci_cdrom.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_CDROM_H__INCLUDED__
- #define __AHCI_CDROM_H__INCLUDED__
-diff --git a/lib/engine/ahci_disk.h b/lib/engine/ahci_disk.h
-index 7892a53..1bad9ad 100644
---- a/lib/engine/ahci_disk.h
-+++ b/lib/engine/ahci_disk.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_DISK_H__INCLUDED__
- #define __AHCI_DISK_H__INCLUDED__
-diff --git a/lib/engine/ahci_multiplier.h b/lib/engine/ahci_multiplier.h
-index d63e9bc..1029af2 100644
---- a/lib/engine/ahci_multiplier.h
-+++ b/lib/engine/ahci_multiplier.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_MULTIPLIER_H__INCLUDED__
- #define __AHCI_MULTIPLIER_H__INCLUDED__
-diff --git a/lib/engine/ahci_multiplier_phy.h b/lib/engine/ahci_multiplier_phy.h
-index 58ecebc..2132c23 100644
---- a/lib/engine/ahci_multiplier_phy.h
-+++ b/lib/engine/ahci_multiplier_phy.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_MULTIPLIER_PHY_H__INCLUDED__
- #define __AHCI_MULTIPLIER_PHY_H__INCLUDED__
-diff --git a/lib/engine/ahci_multiplier_port.h b/lib/engine/ahci_multiplier_port.h
-index 5ff4cf7..2402473 100644
---- a/lib/engine/ahci_multiplier_port.h
-+++ b/lib/engine/ahci_multiplier_port.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_MULTIPLIER_PORT_H__INCLUDED__
- #define __AHCI_MULTIPLIER_PORT_H__INCLUDED__
-diff --git a/lib/engine/ahci_phy.h b/lib/engine/ahci_phy.h
-index e2254e7..a44dae0 100644
---- a/lib/engine/ahci_phy.h
-+++ b/lib/engine/ahci_phy.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_PHY_H__INCLUDED__
- #define __AHCI_PHY_H__INCLUDED__
-diff --git a/lib/engine/ahci_port.h b/lib/engine/ahci_port.h
-index f9e3308..03c109b 100644
---- a/lib/engine/ahci_port.h
-+++ b/lib/engine/ahci_port.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_PORT_H__INCLUDED__
- #define __AHCI_PORT_H__INCLUDED__
-diff --git a/lib/engine/ahci_raid_info.h b/lib/engine/ahci_raid_info.h
-index e1c81ae..c70e63e 100644
---- a/lib/engine/ahci_raid_info.h
-+++ b/lib/engine/ahci_raid_info.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_RAID_INFO_H__INCLUDED__
- #define __AHCI_RAID_INFO_H__INCLUDED__
-diff --git a/lib/engine/ahci_tape.h b/lib/engine/ahci_tape.h
-index cdd9f13..a91fd2c 100644
---- a/lib/engine/ahci_tape.h
-+++ b/lib/engine/ahci_tape.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __AHCI_TAPE_H__INCLUDED__
- #define __AHCI_TAPE_H__INCLUDED__
-diff --git a/lib/engine/array.h b/lib/engine/array.h
-index 36fb4a4..0986ce3 100644
---- a/lib/engine/array.h
-+++ b/lib/engine/array.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ARRAY_H__INCLUDED__
- #define __ARRAY_H__INCLUDED__
-diff --git a/lib/engine/block_device.h b/lib/engine/block_device.h
-index 4503914..45dd3db 100644
---- a/lib/engine/block_device.h
-+++ b/lib/engine/block_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __BLOCK_DEVICE_H__INCLUDED__
- #define __BLOCK_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/cache.h b/lib/engine/cache.h
-index 72cf521..72da20b 100644
---- a/lib/engine/cache.h
-+++ b/lib/engine/cache.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3,4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __CACHE_H__INCLUDED__
- #define __CACHE_H__INCLUDED__
-diff --git a/lib/engine/container.h b/lib/engine/container.h
-index 53867b0..c71180c 100644
---- a/lib/engine/container.h
-+++ b/lib/engine/container.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3,4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __CONTAINER_H__INCLUDED__
- #define __CONTAINER_H__INCLUDED__
-diff --git a/lib/engine/context_manager.h b/lib/engine/context_manager.h
-index fe9c256..6b4a2e7 100644
---- a/lib/engine/context_manager.h
-+++ b/lib/engine/context_manager.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3,4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __CONTEXT_H__INCLUDED__
- #define __CONTEXT_H__INCLUDED__
-diff --git a/lib/engine/controller.h b/lib/engine/controller.h
-index a2f188a..6bd078f 100644
---- a/lib/engine/controller.h
-+++ b/lib/engine/controller.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __CONTROLLER_H__INCLUDED__
- #define __CONTROLLER_H__INCLUDED__
-diff --git a/lib/engine/enclosure.h b/lib/engine/enclosure.h
-index 3faef0c..f4b13cc 100644
---- a/lib/engine/enclosure.h
-+++ b/lib/engine/enclosure.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ENCLOSURE_H__INCLUDED__
- #define __ENCLOSURE_H__INCLUDED__
-diff --git a/lib/engine/end_device.h b/lib/engine/end_device.h
-index f147e41..269b236 100644
---- a/lib/engine/end_device.h
-+++ b/lib/engine/end_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __END_DEVICE_H__INCLUDED__
- #define __END_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/event.h b/lib/engine/event.h
-index cf9bb4f..11a4926 100644
---- a/lib/engine/event.h
-+++ b/lib/engine/event.h
-@@ -12,9 +12,7 @@ Redistribution and use in source and binary forms, with or without modification,
- 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.
- */
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __EVENT_H__INCLUDED__
- #define __EVENT_H__INCLUDED__
-diff --git a/lib/engine/event_manager.h b/lib/engine/event_manager.h
-index 65007b9..a7a8fc3 100644
---- a/lib/engine/event_manager.h
-+++ b/lib/engine/event_manager.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __EVENT_MANAGER_H__INCLUDED__
- #define __EVENT_MANAGER_H__INCLUDED__
-diff --git a/lib/engine/exception.h b/lib/engine/exception.h
-index 171e45d..183ebb5 100644
---- a/lib/engine/exception.h
-+++ b/lib/engine/exception.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __EXCEPTION_H__INCLUDED__
- #define __EXCEPTION_H__INCLUDED__
-diff --git a/lib/engine/filesystem.h b/lib/engine/filesystem.h
-index 9c2ce39..b49df07 100644
---- a/lib/engine/filesystem.h
-+++ b/lib/engine/filesystem.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __FILESYSTEM_H__INCLUDED__
- #define __FILESYSTEM_H__INCLUDED__
-diff --git a/lib/engine/isci.h b/lib/engine/isci.h
-index ea35cd4..0fa602a 100644
---- a/lib/engine/isci.h
-+++ b/lib/engine/isci.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_H__INCLUDED__
- #define __ISCI_H__INCLUDED__
-diff --git a/lib/engine/isci_cdrom.h b/lib/engine/isci_cdrom.h
-index 87b7e7b..25637f9 100644
---- a/lib/engine/isci_cdrom.h
-+++ b/lib/engine/isci_cdrom.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_CDROM_H__INCLUDED__
- #define __ISCI_CDROM_H__INCLUDED__
-diff --git a/lib/engine/isci_disk.h b/lib/engine/isci_disk.h
-index 596c3cf..8dd0dae 100644
---- a/lib/engine/isci_disk.h
-+++ b/lib/engine/isci_disk.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_DISK_H__INCLUDED__
- #define __ISCI_DISK_H__INCLUDED__
-diff --git a/lib/engine/isci_expander.h b/lib/engine/isci_expander.h
-index ca7c2f1..7dc1920 100644
---- a/lib/engine/isci_expander.h
-+++ b/lib/engine/isci_expander.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_EXPANDER_H__INCLUDED__
- #define __ISCI_EXPANDER_H__INCLUDED__
-diff --git a/lib/engine/isci_expander_phy.h b/lib/engine/isci_expander_phy.h
-index c9cd770..d3d2832 100644
---- a/lib/engine/isci_expander_phy.h
-+++ b/lib/engine/isci_expander_phy.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_EXPANDER_PHY_H__INCLUDED__
- #define __ISCI_EXPANDER_PHY_H__INCLUDED__
-diff --git a/lib/engine/isci_expander_port.h b/lib/engine/isci_expander_port.h
-index e65a124..4fc9310 100644
---- a/lib/engine/isci_expander_port.h
-+++ b/lib/engine/isci_expander_port.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_EXPANDER_PORT_H__INCLUDED__
- #define __ISCI_EXPANDER_PORT_H__INCLUDED__
-diff --git a/lib/engine/isci_phy.h b/lib/engine/isci_phy.h
-index 767a5b2..105c697 100644
---- a/lib/engine/isci_phy.h
-+++ b/lib/engine/isci_phy.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_PHY_H__INCLUDED__
- #define __ISCI_PHY_H__INCLUDED__
-diff --git a/lib/engine/isci_port.h b/lib/engine/isci_port.h
-index b80be7f..5ccc151 100644
---- a/lib/engine/isci_port.h
-+++ b/lib/engine/isci_port.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_PORT_H__INCLUDED__
- #define __ISCI_PORT_H__INCLUDED__
-diff --git a/lib/engine/isci_raid_info.h b/lib/engine/isci_raid_info.h
-index 1df6477..b0b046a 100644
---- a/lib/engine/isci_raid_info.h
-+++ b/lib/engine/isci_raid_info.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_RAID_INFO_H__INCLUDED__
- #define __ISCI_RAID_INFO_H__INCLUDED__
-diff --git a/lib/engine/isci_tape.h b/lib/engine/isci_tape.h
-index 985f767..a2cef2d 100644
---- a/lib/engine/isci_tape.h
-+++ b/lib/engine/isci_tape.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ISCI_TAPE_H__INCLUDED__
- #define __ISCI_TAPE_H__INCLUDED__
-diff --git a/lib/engine/list.h b/lib/engine/list.h
-index 9a7c3c3..6395830 100644
---- a/lib/engine/list.h
-+++ b/lib/engine/list.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __LIST_H__INCLUDED__
- #define __LIST_H__INCLUDED__
-diff --git a/lib/engine/mdadm_config.h b/lib/engine/mdadm_config.h
-index c94020f..e415b4f 100644
---- a/lib/engine/mdadm_config.h
-+++ b/lib/engine/mdadm_config.h
-@@ -11,9 +11,7 @@ Redistribution and use in source and binary forms, with or without modification,
- 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.
- */
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __MDADM_CONFIG_H__INCLUDED__
- #define __MDADM_CONFIG_H__INCLUDED__
-diff --git a/lib/engine/multimedia_device.h b/lib/engine/multimedia_device.h
-index 533370e..694e2a5 100644
---- a/lib/engine/multimedia_device.h
-+++ b/lib/engine/multimedia_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __MULTIMEDIA_DEVICE_H__INCLUDED__
- #define __MULTIMEDIA_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/nondisk_device.h b/lib/engine/nondisk_device.h
-index 70ebb32..0f00e52 100644
---- a/lib/engine/nondisk_device.h
-+++ b/lib/engine/nondisk_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __CHARACTER_DEVICE_H__INCLUDED__
- #define __CHARACTER_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/object.h b/lib/engine/object.h
-index b52d3d3..345d58c 100644
---- a/lib/engine/object.h
-+++ b/lib/engine/object.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __OBJECT_H__INCLUDED__
- #define __OBJECT_H__INCLUDED__
-diff --git a/lib/engine/pci_header.h b/lib/engine/pci_header.h
-index 376f296..c5129a0 100644
---- a/lib/engine/pci_header.h
-+++ b/lib/engine/pci_header.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __PCI_HEADER_H__INCLUDED__
- #define __PCI_HEADER_H__INCLUDED__
-diff --git a/lib/engine/phy.h b/lib/engine/phy.h
-index f5730a0..c59f7c8 100644
---- a/lib/engine/phy.h
-+++ b/lib/engine/phy.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __PHY_H__INCLUDED__
- #define __PHY_H__INCLUDED__
-diff --git a/lib/engine/port.h b/lib/engine/port.h
-index 2f33876..cc48c7c 100644
---- a/lib/engine/port.h
-+++ b/lib/engine/port.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3,4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __PORT_H__INCLUDED__
- #define __PORT_H__INCLUDED__
-diff --git a/lib/engine/raid_device.h b/lib/engine/raid_device.h
-index 998e80c..2174162 100644
---- a/lib/engine/raid_device.h
-+++ b/lib/engine/raid_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __RAID_DEVICE_H__INCLUDED__
- #define __RAID_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/raid_info.h b/lib/engine/raid_info.h
-index 174698a..302be9b 100644
---- a/lib/engine/raid_info.h
-+++ b/lib/engine/raid_info.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __RAID_INFO_H__INCLUDED__
- #define __RAID_INFO_H__INCLUDED__
-diff --git a/lib/engine/remote_port.h b/lib/engine/remote_port.h
-index c086656..4ddfee3 100644
---- a/lib/engine/remote_port.h
-+++ b/lib/engine/remote_port.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __REMOTE_PORT_H__INCLUDED__
- #define __REMOTE_PORT_H__INCLUDED__
-diff --git a/lib/engine/routing_device.h b/lib/engine/routing_device.h
-index 5f857a6..284621e 100644
---- a/lib/engine/routing_device.h
-+++ b/lib/engine/routing_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ROUTING_DEVICE_H__INCLUDED__
- #define __ROUTING_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/session.h b/lib/engine/session.h
-index a901d1c..3200da1 100644
---- a/lib/engine/session.h
-+++ b/lib/engine/session.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __SESSION_H__INCLUDED__
- #define __SESSION_H__INCLUDED__
-diff --git a/lib/engine/session_manager.h b/lib/engine/session_manager.h
-index 7177064..87e16c3 100644
---- a/lib/engine/session_manager.h
-+++ b/lib/engine/session_manager.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __SESSION_MANAGER_H__INCLUDED__
- #define __SESSION_MANAGER_H__INCLUDED__
-diff --git a/lib/engine/storage_device.h b/lib/engine/storage_device.h
-index ddeb66f..20bdab2 100644
---- a/lib/engine/storage_device.h
-+++ b/lib/engine/storage_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __STORAGE_DEVICE_H__INCLUDED__
- #define __STORAGE_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/stream_device.h b/lib/engine/stream_device.h
-index 9bc111a..b29bd68 100644
---- a/lib/engine/stream_device.h
-+++ b/lib/engine/stream_device.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __STREAM_DEVICE_H__INCLUDED__
- #define __STREAM_DEVICE_H__INCLUDED__
-diff --git a/lib/engine/string.h b/lib/engine/string.h
-index 3007dc7..6f348c9 100644
---- a/lib/engine/string.h
-+++ b/lib/engine/string.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __STRING_H__INCLUDED__
- #define __STRING_H__INCLUDED__
-diff --git a/lib/engine/unique_id_manager.h b/lib/engine/unique_id_manager.h
-index fe79eac..4a13627 100644
---- a/lib/engine/unique_id_manager.h
-+++ b/lib/engine/unique_id_manager.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __UNIQUE_ID_MANAGER_H__INCLUDED__
- #define __UNIQUE_ID_MANAGER_H__INCLUDED__
-diff --git a/lib/engine/utils.h b/lib/engine/utils.h
-index 86c20cf..5525303 100644
---- a/lib/engine/utils.h
-+++ b/lib/engine/utils.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __UTILS_H__INCLUDED__
- #define __UTILS_H__INCLUDED__
-diff --git a/lib/engine/volume.h b/lib/engine/volume.h
-index 9a63cbf..3347b31 100644
---- a/lib/engine/volume.h
-+++ b/lib/engine/volume.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- // Forward declarations
- class Array;
-diff --git a/lib/log/log.h b/lib/log/log.h
-index c0bd63e..8b5f171 100644
---- a/lib/log/log.h
-+++ b/lib/log/log.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __LOG_H__INCLUDED__
- #define __LOG_H__INCLUDED__
-diff --git a/lib/mpb/machine_bytes.h b/lib/mpb/machine_bytes.h
-index 7fbb0e9..800b120 100644
---- a/lib/mpb/machine_bytes.h
-+++ b/lib/mpb/machine_bytes.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __ENDIAN_H__INCLUDED__
- #define __ENDIAN_H__INCLUDED__
-diff --git a/lib/mpb/mpb.h b/lib/mpb/mpb.h
-index 01782af..c42cdfb 100644
---- a/lib/mpb/mpb.h
-+++ b/lib/mpb/mpb.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __MPB_H__INCLUDED__
- #define __MPB_H__INCLUDED__
-diff --git a/lib/orom/orom.h b/lib/orom/orom.h
-index f76e3ee..e10311d 100644
---- a/lib/orom/orom.h
-+++ b/lib/orom/orom.h
-@@ -15,9 +15,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-
-
-
--#if __GNUC_PREREQ(3, 4)
- #pragma once
--#endif /* __GNUC_PREREQ */
-
- #ifndef __OROM_H__INCLUDED__
- #define __OROM_H__INCLUDED__
---
-2.13.1
-
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
new file mode 100644
index 0000000000..c01c7e5ccd
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0001-log-Avoid-shadowing-functions-from-std-lib.patch
@@ -0,0 +1,59 @@
+From 874da836bc857e5942675c59e19f4fd8ad09b13e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Aug 2019 14:08:19 -0700
+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/lib/log/log.c b/lib/log/log.c
+index 7d8e17c..18b67a5 100644
+--- a/lib/log/log.c
++++ b/lib/log/log.c
+@@ -82,7 +82,7 @@ enum log_level log_get_level(void) {
+ }
+
+ /* */
+-void __log(enum log_level level, const char *message) {
++void _ssiap_log(enum log_level level, const char *message) {
+ struct tm tm;
+ struct timeval tv;
+
+diff --git a/lib/log/log.h b/lib/log/log.h
+index d94e482..66a707b 100644
+--- a/lib/log/log.h
++++ b/lib/log/log.h
+@@ -53,13 +53,13 @@ enum log_level {
+ };
+
+ /* */
+-#define log(__level, __message) \
++#define ssiap_log(__level, __message) \
+ do { if (log_get_level() >= (enum log_level)(__level)) \
+- __log(__level, __message); \
++ _ssiap_log(__level, __message); \
+ } while (0)
+
+ #define dlog(__message) \
+- log(LOG_DEBUG, __message);
++ ssiap_log(LOG_DEBUG, __message);
+
+ /* */
+ void log_init(enum log_level level, const char *path);
+@@ -68,7 +68,7 @@ void log_init(enum log_level level, const char *path);
+ void log_fini(void);
+
+ /* */
+-void __log(enum log_level level, const char *message);
++void _ssiap_log(enum log_level level, const char *message);
+
+ /* */
+ enum log_level log_get_level(void);
+--
+2.23.0
+
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
deleted file mode 100644
index 27df9b5de3..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0001-ssieventmonitor-ordered-comparison-between-pointers-.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From ea9ecf4bf305f9509d5822b3823658a40162f43c Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 25 Jul 2017 19:08:21 -0700
-Subject: [PATCH] ssieventmonitor: ordered comparison between pointers and
- zero, actually with NULL
-
-Comparing which is large or small between a pointer and NULL
-however, looks completely illogical. Ordered comparison of
-two valid pointers is legit, but no pointer will be smaller
-than NULL , so comparing if a pointer is larger than NULL
-simply means if the pointer is not NULL.
-
-Fixes errors found with clang e.g.
-
-| ssieventmonitor.cpp:339:53: error: ordered comparison between pointer and zero ('char *' and 'int')
-| if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
-| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tools/ssieventmonitor.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
-index f04b8f0..7a00122 100644
---- a/tools/ssieventmonitor.cpp
-+++ b/tools/ssieventmonitor.cpp
-@@ -336,7 +336,7 @@ static int _read_mdstat(int fd)
- if (!strncmp(line, "md", 2)) {
- if (strstr(line, INACTIVE_STR)) { /* possibly container */
- char nextline[1024];
-- if (fgets(nextline, sizeof(nextline) - 1, mdstat) < 0) {
-+ if (fgets(nextline, sizeof(nextline) - 1, mdstat) != (char *) NULL) {
- fclose(mdstat);
- return 1;
- }
---
-2.13.3
-
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
deleted file mode 100644
index 351301cdc3..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0002-Convert-macros-into-functions.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 1338ee4e69c465f8f381ec3bfe5058080236edba Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 22:08:35 -0700
-Subject: [PATCH 2/6] Convert macros into functions
-
-This helps in fixing the security format warnings
-add -fno-builtin-log
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/engine/Makefile.am | 3 ++-
- lib/log/Makefile.am | 2 ++
- lib/log/log.h | 34 +++++++++++++++++++++-------------
- src/Makefile.am | 3 ++-
- 4 files changed, 27 insertions(+), 15 deletions(-)
-
-Index: ssiapi.1.0.1/lib/engine/Makefile.am
-===================================================================
---- ssiapi.1.0.1.orig/lib/engine/Makefile.am
-+++ ssiapi.1.0.1/lib/engine/Makefile.am
-@@ -113,4 +113,5 @@ libengine_la_SOURCES = \
- libengine_la_CPPFLAGS = \
- -I$(top_srcdir) \
- -I$(top_srcdir)/include \
-- -I$(top_srcdir)/lib
-+ -I$(top_srcdir)/lib \
-+ -fno-builtin-log
-Index: ssiapi.1.0.1/lib/log/Makefile.am
-===================================================================
---- ssiapi.1.0.1.orig/lib/log/Makefile.am
-+++ ssiapi.1.0.1/lib/log/Makefile.am
-@@ -5,3 +5,5 @@ noinst_LTLIBRARIES = liblog.la
- liblog_la_SOURCES = \
- log.c \
- log.h
-+
-+liblog_la_CPPFLAGS = -fno-builtin-log
-Index: ssiapi.1.0.1/lib/log/log.h
-===================================================================
---- ssiapi.1.0.1.orig/lib/log/log.h
-+++ ssiapi.1.0.1/lib/log/log.h
-@@ -23,7 +23,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIG
- #if defined(__cplusplus)
- extern "C" {
- #endif /* __cplusplus */
--
-+#include <stdarg.h>
- /* */
- enum log_level {
- LOG_FIRST = 0,
-@@ -37,26 +37,34 @@ enum log_level {
- };
-
- /* */
--#define log(__level, __format, ...) \
-- do { if (log_get_level() >= (enum log_level)(__level)) \
-- __log(__level, __format, ## __VA_ARGS__); \
-- } while (0)
--
--#define dlog(__format, ...) \
-- log(LOG_DEBUG, __format, ## __VA_ARGS__);
-+void __log(enum log_level level, const char *format, ...)
-+ __attribute__((format(printf, 2, 3)));
-
- /* */
--void log_init(enum log_level level, const char *path);
-+enum log_level log_get_level(void);
-
- /* */
--void log_fini(void);
--
-+static inline void log(enum log_level __level, const char* __format, ...) {
-+ va_list ap;
-+ va_start(ap, __format);
-+ do {
-+ if (log_get_level() >= (enum log_level)(__level))
-+ __log(__level, __format, ap);
-+ } while (0);
-+ va_end(ap);
-+}
-+
-+static inline void dlog(const char* __format, ...) {
-+ va_list ap;
-+ va_start(ap, __format);
-+ log(LOG_DEBUG, __format, ap);
-+ va_end(ap);
-+}
- /* */
--void __log(enum log_level level, const char *format, ...)
-- __attribute__((format(printf, 2, 3)));
-+void log_init(enum log_level level, const char *path);
-
- /* */
--enum log_level log_get_level(void);
-+void log_fini(void);
-
- /* */
- void log_set_level(enum log_level level);
-Index: ssiapi.1.0.1/src/Makefile.am
-===================================================================
---- ssiapi.1.0.1.orig/src/Makefile.am
-+++ ssiapi.1.0.1/src/Makefile.am
-@@ -7,7 +7,8 @@ lib_LTLIBRARIES = libssi.la
- libssi_la_CPPFLAGS = \
- -I$(top_srcdir) \
- -I$(top_srcdir)/include \
-- -I$(top_srcdir)/lib
-+ -I$(top_srcdir)/lib \
-+ -fno-builtin-log
-
- libssi_la_LDFLAGS = \
- $(SGUTILS_LDFLAGS) \
-Index: ssiapi.1.0.1/lib/efi/Makefile.am
-===================================================================
---- ssiapi.1.0.1.orig/lib/efi/Makefile.am
-+++ ssiapi.1.0.1/lib/efi/Makefile.am
-@@ -5,3 +5,4 @@ noinst_LTLIBRARIES = libefi.la
- libefi_la_SOURCES = \
- efi.cpp \
- efi.h
-+libefi_la_CPPFLAGS = -fno-builtin-log
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
new file mode 100644
index 0000000000..390faeb77b
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0002-Use-stangard-int-types.patch
@@ -0,0 +1,56 @@
+From 01a75b23382fd042673d1f00fce708ba6c67d05a Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Aug 2019 13:12:54 -0700
+Subject: [PATCH] Use stangard int types
+
+__unitn_* are internal to GNU libc lets use portable types
+
+Fixes
+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/lib/engine/end_device.cpp b/lib/engine/end_device.cpp
+index 5a66de9..da078bf 100644
+--- a/lib/engine/end_device.cpp
++++ b/lib/engine/end_device.cpp
+@@ -36,6 +36,7 @@
+ #include <sys/ioctl.h>
+ #include <fcntl.h>
+ #include <linux/hdreg.h>
++#include <stdint.h>
+ #include <unistd.h>
+ #include <linux/fs.h>
+ #include <climits>
+@@ -90,20 +91,20 @@ using boost::shared_ptr;
+
+ struct AtaCommand
+ {
+- __uint8_t command;
+- __uint8_t obsolete1;
+- __uint8_t obsolete2;
+- __uint8_t transportDependent;
++ uint8_t command;
++ uint8_t obsolete1;
++ uint8_t obsolete2;
++ uint8_t transportDependent;
+ };
+
+ struct AtaIdentifyCall
+ {
+ AtaCommand command;
+- __uint16_t data[256];
++ uint16_t data[256];
+ };
+
+ namespace {
+- __uint16_t swap(__uint16_t value)
++ uint16_t swap(uint16_t value)
+ {
+ return (value >> 8) | (value << 8);
+ }
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
new file mode 100644
index 0000000000..aabbc04e57
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0002-boost-Backport-clang-support.patch
@@ -0,0 +1,1411 @@
+From ef90544f8df369781a6ef094330c9cfa9f0ee1e4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Aug 2019 14:09:11 -0700
+Subject: [PATCH 2/4] boost: Backport clang support
+
+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 ++++++++++++++++++
+ .../detail/sp_counted_base_clang.hpp | 140 +++++
+ 4 files changed, 1034 insertions(+)
+ create mode 100644 lib/boost/config/compiler/clang.hpp
+ create mode 100644 lib/boost/config/stdlib/libcpp.hpp
+ create mode 100644 lib/boost/cstdint.hpp
+ create mode 100644 lib/boost/smart_ptr/detail/sp_counted_base_clang.hpp
+
+--- /dev/null
++++ b/lib/boost/config/compiler/clang.hpp
+@@ -0,0 +1,272 @@
++
++// (C) Copyright Douglas Gregor 2010
++//
++// Use, modification and distribution are subject to the
++// Boost Software License, Version 1.0. (See accompanying file
++// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
++
++// See http://www.boost.org for most recent version.
++
++// Clang compiler setup.
++
++#define BOOST_HAS_PRAGMA_ONCE
++
++// Detecting `-fms-extension` compiler flag assuming that _MSC_VER defined when that flag is used.
++#if defined (_MSC_VER) && (__clang_major__ > 3 || (__clang_major__ == 3 && __clang_minor__ >= 4))
++# define BOOST_HAS_PRAGMA_DETECT_MISMATCH
++#endif
++
++// When compiling with clang before __has_extension was defined,
++// even if one writes 'defined(__has_extension) && __has_extension(xxx)',
++// clang reports a compiler error. So the only workaround found is:
++
++#ifndef __has_extension
++#define __has_extension __has_feature
++#endif
++
++#if !__has_feature(cxx_exceptions) && !defined(BOOST_NO_EXCEPTIONS)
++# define BOOST_NO_EXCEPTIONS
++#endif
++
++#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_RTTI)
++# define BOOST_NO_RTTI
++#endif
++
++#if !__has_feature(cxx_rtti) && !defined(BOOST_NO_TYPEID)
++# define BOOST_NO_TYPEID
++#endif
++
++#if defined(__int64) && !defined(__GNUC__)
++# define BOOST_HAS_MS_INT64
++#endif
++
++#define BOOST_HAS_NRVO
++
++// Branch prediction hints
++#if defined(__has_builtin)
++#if __has_builtin(__builtin_expect)
++#define BOOST_LIKELY(x) __builtin_expect(x, 1)
++#define BOOST_UNLIKELY(x) __builtin_expect(x, 0)
++#endif
++#endif
++
++// Clang supports "long long" in all compilation modes.
++#define BOOST_HAS_LONG_LONG
++
++//
++// We disable this if the compiler is really nvcc as it
++// doesn't actually support __int128 as of CUDA_VERSION=5000
++// even though it defines __SIZEOF_INT128__.
++// See https://svn.boost.org/trac/boost/ticket/10418
++// Only re-enable this for nvcc if you're absolutely sure
++// of the circumstances under which it's supported:
++//
++#if defined(__SIZEOF_INT128__) && !defined(__CUDACC__)
++# define BOOST_HAS_INT128
++#endif
++
++
++//
++// Dynamic shared object (DSO) and dynamic-link library (DLL) support
++//
++#if !defined(_WIN32) && !defined(__WIN32__) && !defined(WIN32)
++# define BOOST_SYMBOL_EXPORT __attribute__((__visibility__("default")))
++# define BOOST_SYMBOL_IMPORT
++# define BOOST_SYMBOL_VISIBLE __attribute__((__visibility__("default")))
++#endif
++
++//
++// The BOOST_FALLTHROUGH macro can be used to annotate implicit fall-through
++// between switch labels.
++//
++#if __cplusplus >= 201103L && defined(__has_warning)
++# if __has_feature(cxx_attributes) && __has_warning("-Wimplicit-fallthrough")
++# define BOOST_FALLTHROUGH [[clang::fallthrough]]
++# endif
++#endif
++
++#if !__has_feature(cxx_auto_type)
++# define BOOST_NO_CXX11_AUTO_DECLARATIONS
++# define BOOST_NO_CXX11_AUTO_MULTIDECLARATIONS
++#endif
++
++//
++// Currently clang on Windows using VC++ RTL does not support C++11's char16_t or char32_t
++//
++#if defined(_MSC_VER) || !(defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L)
++# define BOOST_NO_CXX11_CHAR16_T
++# define BOOST_NO_CXX11_CHAR32_T
++#endif
++
++#if !__has_feature(cxx_constexpr)
++# define BOOST_NO_CXX11_CONSTEXPR
++#endif
++
++#if !__has_feature(cxx_decltype)
++# define BOOST_NO_CXX11_DECLTYPE
++#endif
++
++#if !__has_feature(cxx_decltype_incomplete_return_types)
++# define BOOST_NO_CXX11_DECLTYPE_N3276
++#endif
++
++#if !__has_feature(cxx_defaulted_functions)
++# define BOOST_NO_CXX11_DEFAULTED_FUNCTIONS
++#endif
++
++#if !__has_feature(cxx_deleted_functions)
++# define BOOST_NO_CXX11_DELETED_FUNCTIONS
++#endif
++
++#if !__has_feature(cxx_explicit_conversions)
++# define BOOST_NO_CXX11_EXPLICIT_CONVERSION_OPERATORS
++#endif
++
++#if !__has_feature(cxx_default_function_template_args)
++# define BOOST_NO_CXX11_FUNCTION_TEMPLATE_DEFAULT_ARGS
++#endif
++
++#if !__has_feature(cxx_generalized_initializers)
++# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
++#endif
++
++#if !__has_feature(cxx_lambdas)
++# define BOOST_NO_CXX11_LAMBDAS
++#endif
++
++#if !__has_feature(cxx_local_type_template_args)
++# define BOOST_NO_CXX11_LOCAL_CLASS_TEMPLATE_PARAMETERS
++#endif
++
++#if !__has_feature(cxx_noexcept)
++# define BOOST_NO_CXX11_NOEXCEPT
++#endif
++
++#if !__has_feature(cxx_nullptr)
++# define BOOST_NO_CXX11_NULLPTR
++#endif
++
++#if !__has_feature(cxx_range_for)
++# define BOOST_NO_CXX11_RANGE_BASED_FOR
++#endif
++
++#if !__has_feature(cxx_raw_string_literals)
++# define BOOST_NO_CXX11_RAW_LITERALS
++#endif
++
++#if !__has_feature(cxx_reference_qualified_functions)
++# define BOOST_NO_CXX11_REF_QUALIFIERS
++#endif
++
++#if !__has_feature(cxx_generalized_initializers)
++# define BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX
++#endif
++
++#if !__has_feature(cxx_rvalue_references)
++# define BOOST_NO_CXX11_RVALUE_REFERENCES
++#endif
++
++#if !__has_feature(cxx_strong_enums)
++# define BOOST_NO_CXX11_SCOPED_ENUMS
++#endif
++
++#if !__has_feature(cxx_static_assert)
++# define BOOST_NO_CXX11_STATIC_ASSERT
++#endif
++
++#if !__has_feature(cxx_alias_templates)
++# define BOOST_NO_CXX11_TEMPLATE_ALIASES
++#endif
++
++#if !__has_feature(cxx_unicode_literals)
++# define BOOST_NO_CXX11_UNICODE_LITERALS
++#endif
++
++#if !__has_feature(cxx_variadic_templates)
++# define BOOST_NO_CXX11_VARIADIC_TEMPLATES
++#endif
++
++#if !__has_feature(cxx_user_literals)
++# define BOOST_NO_CXX11_USER_DEFINED_LITERALS
++#endif
++
++#if !__has_feature(cxx_alignas)
++# define BOOST_NO_CXX11_ALIGNAS
++#endif
++
++#if !__has_feature(cxx_trailing_return)
++# define BOOST_NO_CXX11_TRAILING_RESULT_TYPES
++#endif
++
++#if !__has_feature(cxx_inline_namespaces)
++# define BOOST_NO_CXX11_INLINE_NAMESPACES
++#endif
++
++#if !__has_feature(cxx_override_control)
++# define BOOST_NO_CXX11_FINAL
++#endif
++
++#if !(__has_feature(__cxx_binary_literals__) || __has_extension(__cxx_binary_literals__))
++# define BOOST_NO_CXX14_BINARY_LITERALS
++#endif
++
++#if !__has_feature(__cxx_decltype_auto__)
++# define BOOST_NO_CXX14_DECLTYPE_AUTO
++#endif
++
++#if !__has_feature(__cxx_aggregate_nsdmi__)
++# define BOOST_NO_CXX14_AGGREGATE_NSDMI
++#endif
++
++#if !__has_feature(__cxx_init_captures__)
++# define BOOST_NO_CXX14_INITIALIZED_LAMBDA_CAPTURES
++#endif
++
++#if !__has_feature(__cxx_generic_lambdas__)
++# define BOOST_NO_CXX14_GENERIC_LAMBDAS
++#endif
++
++// clang < 3.5 has a defect with dependent type, like following.
++//
++// template <class T>
++// constexpr typename enable_if<pred<T> >::type foo(T &)
++// { } // error: no return statement in constexpr function
++//
++// This issue also affects C++11 mode, but C++11 constexpr requires return stmt.
++// Therefore we don't care such case.
++//
++// Note that we can't check Clang version directly as the numbering system changes depending who's
++// creating the Clang release (see https://github.com/boostorg/config/pull/39#issuecomment-59927873)
++// so instead verify that we have a feature that was introduced at the same time as working C++14
++// constexpr (generic lambda's in this case):
++//
++#if !__has_feature(__cxx_generic_lambdas__) || !__has_feature(__cxx_relaxed_constexpr__)
++# define BOOST_NO_CXX14_CONSTEXPR
++#endif
++
++#if !__has_feature(__cxx_return_type_deduction__)
++# define BOOST_NO_CXX14_RETURN_TYPE_DEDUCTION
++#endif
++
++#if !__has_feature(__cxx_variable_templates__)
++# define BOOST_NO_CXX14_VARIABLE_TEMPLATES
++#endif
++
++#if __cplusplus < 201400
++// All versions with __cplusplus above this value seem to support this:
++# define BOOST_NO_CXX14_DIGIT_SEPARATORS
++#endif
++
++
++// Unused attribute:
++#if defined(__GNUC__) && (__GNUC__ >= 4)
++# define BOOST_ATTRIBUTE_UNUSED __attribute__((unused))
++#endif
++
++#ifndef BOOST_COMPILER
++# define BOOST_COMPILER "Clang version " __clang_version__
++#endif
++
++// Macro used to identify the Clang compiler.
++#define BOOST_CLANG 1
++
+--- /dev/null
++++ b/lib/boost/config/stdlib/libcpp.hpp
+@@ -0,0 +1,80 @@
++// (C) Copyright Christopher Jefferson 2011.
++// Use, modification and distribution are subject to the
++// Boost Software License, Version 1.0. (See accompanying file
++// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
++
++// See http://www.boost.org for most recent version.
++
++// config for libc++
++// Might need more in here later.
++
++#if !defined(_LIBCPP_VERSION)
++# include <ciso646>
++# if !defined(_LIBCPP_VERSION)
++# error "This is not libc++!"
++# endif
++#endif
++
++#define BOOST_STDLIB "libc++ version " BOOST_STRINGIZE(_LIBCPP_VERSION)
++
++#define BOOST_HAS_THREADS
++
++#ifdef _LIBCPP_HAS_NO_VARIADICS
++# define BOOST_NO_CXX11_HDR_TUPLE
++#endif
++
++// BOOST_NO_CXX11_ALLOCATOR should imply no support for the C++11
++// allocator model. The C++11 allocator model requires a conforming
++// std::allocator_traits which is only possible with C++11 template
++// aliases since members rebind_alloc and rebind_traits require it.
++#if defined(_LIBCPP_HAS_NO_TEMPLATE_ALIASES)
++# define BOOST_NO_CXX11_ALLOCATOR
++#endif
++
++#if __cplusplus < 201103
++# define BOOST_NO_CXX11_HDR_ARRAY
++# define BOOST_NO_CXX11_HDR_CODECVT
++# define BOOST_NO_CXX11_HDR_CONDITION_VARIABLE
++# define BOOST_NO_CXX11_HDR_FORWARD_LIST
++# define BOOST_NO_CXX11_HDR_INITIALIZER_LIST
++# define BOOST_NO_CXX11_HDR_MUTEX
++# define BOOST_NO_CXX11_HDR_RANDOM
++# define BOOST_NO_CXX11_HDR_RATIO
++# define BOOST_NO_CXX11_HDR_REGEX
++# define BOOST_NO_CXX11_HDR_SYSTEM_ERROR
++# define BOOST_NO_CXX11_HDR_THREAD
++# define BOOST_NO_CXX11_HDR_TUPLE
++# define BOOST_NO_CXX11_HDR_TYPEINDEX
++# define BOOST_NO_CXX11_HDR_UNORDERED_MAP
++# define BOOST_NO_CXX11_HDR_UNORDERED_SET
++# define BOOST_NO_CXX11_NUMERIC_LIMITS
++# define BOOST_NO_CXX11_ALLOCATOR
++# define BOOST_NO_CXX11_SMART_PTR
++# define BOOST_NO_CXX11_HDR_FUNCTIONAL
++# define BOOST_NO_CXX11_STD_ALIGN
++# define BOOST_NO_CXX11_ADDRESSOF
++#endif
++
++//
++// These appear to be unusable/incomplete so far:
++//
++# define BOOST_NO_CXX11_HDR_CHRONO
++# define BOOST_NO_CXX11_HDR_FUTURE
++# define BOOST_NO_CXX11_HDR_TYPE_TRAITS
++# define BOOST_NO_CXX11_ATOMIC_SMART_PTR
++# define BOOST_NO_CXX11_HDR_ATOMIC
++
++// libc++ uses a non-standard messages_base
++#define BOOST_NO_STD_MESSAGES
++
++#if defined(__has_include)
++#if !__has_include(<shared_mutex>)
++# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
++#elif __cplusplus <= 201103
++# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
++#endif
++#elif __cplusplus < 201402
++# define BOOST_NO_CXX14_HDR_SHARED_MUTEX
++#endif
++
++// --- end ---
+--- /dev/null
++++ b/lib/boost/cstdint.hpp
+@@ -0,0 +1,542 @@
++// boost cstdint.hpp header file ------------------------------------------//
++
++// (C) Copyright Beman Dawes 1999.
++// (C) Copyright Jens Mauer 2001
++// (C) Copyright John Maddock 2001
++// Distributed under the Boost
++// Software License, Version 1.0. (See accompanying file
++// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
++
++// See http://www.boost.org/libs/integer for documentation.
++
++// Revision History
++// 31 Oct 01 use BOOST_HAS_LONG_LONG to check for "long long" (Jens M.)
++// 16 Apr 01 check LONGLONG_MAX when looking for "long long" (Jens Maurer)
++// 23 Jan 01 prefer "long" over "int" for int32_t and intmax_t (Jens Maurer)
++// 12 Nov 00 Merged <boost/stdint.h> (Jens Maurer)
++// 23 Sep 00 Added INTXX_C macro support (John Maddock).
++// 22 Sep 00 Better 64-bit support (John Maddock)
++// 29 Jun 00 Reimplement to avoid including stdint.h within namespace boost
++// 8 Aug 99 Initial version (Beman Dawes)
++
++
++#ifndef BOOST_CSTDINT_HPP
++#define BOOST_CSTDINT_HPP
++
++//
++// Since we always define the INT#_C macros as per C++0x,
++// define __STDC_CONSTANT_MACROS so that <stdint.h> does the right
++// thing if possible, and so that the user knows that the macros
++// are actually defined as per C99.
++//
++#ifndef __STDC_CONSTANT_MACROS
++# define __STDC_CONSTANT_MACROS
++#endif
++
++#include <boost/config.hpp>
++
++//
++// Note that GLIBC is a bit inconsistent about whether int64_t is defined or not
++// depending upon what headers happen to have been included first...
++// so we disable use of stdint.h when GLIBC does not define __GLIBC_HAVE_LONG_LONG.
++// See https://svn.boost.org/trac/boost/ticket/3548 and http://sources.redhat.com/bugzilla/show_bug.cgi?id=10990
++//
++#if defined(BOOST_HAS_STDINT_H) \
++ && (!defined(__GLIBC__) \
++ || defined(__GLIBC_HAVE_LONG_LONG) \
++ || (defined(__GLIBC__) && ((__GLIBC__ > 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ >= 17)))))
++
++// The following #include is an implementation artifact; not part of interface.
++# ifdef __hpux
++// HP-UX has a vaguely nice <stdint.h> in a non-standard location
++# include <inttypes.h>
++# ifdef __STDC_32_MODE__
++ // this is triggered with GCC, because it defines __cplusplus < 199707L
++# define BOOST_NO_INT64_T
++# endif
++# elif defined(__FreeBSD__) || defined(__IBMCPP__) || defined(_AIX)
++# include <inttypes.h>
++# else
++# include <stdint.h>
++
++// There is a bug in Cygwin two _C macros
++# if defined(__STDC_CONSTANT_MACROS) && defined(__CYGWIN__)
++# undef INTMAX_C
++# undef UINTMAX_C
++# define INTMAX_C(c) c##LL
++# define UINTMAX_C(c) c##ULL
++# endif
++
++# endif
++
++#ifdef __QNX__
++
++// QNX (Dinkumware stdlib) defines these as non-standard names.
++// Reflect to the standard names.
++
++typedef ::intleast8_t int_least8_t;
++typedef ::intfast8_t int_fast8_t;
++typedef ::uintleast8_t uint_least8_t;
++typedef ::uintfast8_t uint_fast8_t;
++
++typedef ::intleast16_t int_least16_t;
++typedef ::intfast16_t int_fast16_t;
++typedef ::uintleast16_t uint_least16_t;
++typedef ::uintfast16_t uint_fast16_t;
++
++typedef ::intleast32_t int_least32_t;
++typedef ::intfast32_t int_fast32_t;
++typedef ::uintleast32_t uint_least32_t;
++typedef ::uintfast32_t uint_fast32_t;
++
++# ifndef BOOST_NO_INT64_T
++
++typedef ::intleast64_t int_least64_t;
++typedef ::intfast64_t int_fast64_t;
++typedef ::uintleast64_t uint_least64_t;
++typedef ::uintfast64_t uint_fast64_t;
++
++# endif
++
++#endif
++
++namespace boost
++{
++
++ using ::int8_t;
++ using ::int_least8_t;
++ using ::int_fast8_t;
++ using ::uint8_t;
++ using ::uint_least8_t;
++ using ::uint_fast8_t;
++
++ using ::int16_t;
++ using ::int_least16_t;
++ using ::int_fast16_t;
++ using ::uint16_t;
++ using ::uint_least16_t;
++ using ::uint_fast16_t;
++
++ using ::int32_t;
++ using ::int_least32_t;
++ using ::int_fast32_t;
++ using ::uint32_t;
++ using ::uint_least32_t;
++ using ::uint_fast32_t;
++
++# ifndef BOOST_NO_INT64_T
++
++ using ::int64_t;
++ using ::int_least64_t;
++ using ::int_fast64_t;
++ using ::uint64_t;
++ using ::uint_least64_t;
++ using ::uint_fast64_t;
++
++# endif
++
++ using ::intmax_t;
++ using ::uintmax_t;
++
++} // namespace boost
++
++#elif defined(__FreeBSD__) && (__FreeBSD__ <= 4) || defined(__osf__) || defined(__VMS) || defined(__SOLARIS9__) || defined(__NetBSD__)
++// FreeBSD and Tru64 have an <inttypes.h> that contains much of what we need.
++# include <inttypes.h>
++
++namespace boost {
++
++ using ::int8_t;
++ typedef int8_t int_least8_t;
++ typedef int8_t int_fast8_t;
++ using ::uint8_t;
++ typedef uint8_t uint_least8_t;
++ typedef uint8_t uint_fast8_t;
++
++ using ::int16_t;
++ typedef int16_t int_least16_t;
++ typedef int16_t int_fast16_t;
++ using ::uint16_t;
++ typedef uint16_t uint_least16_t;
++ typedef uint16_t uint_fast16_t;
++
++ using ::int32_t;
++ typedef int32_t int_least32_t;
++ typedef int32_t int_fast32_t;
++ using ::uint32_t;
++ typedef uint32_t uint_least32_t;
++ typedef uint32_t uint_fast32_t;
++
++# ifndef BOOST_NO_INT64_T
++
++ using ::int64_t;
++ typedef int64_t int_least64_t;
++ typedef int64_t int_fast64_t;
++ using ::uint64_t;
++ typedef uint64_t uint_least64_t;
++ typedef uint64_t uint_fast64_t;
++
++ typedef int64_t intmax_t;
++ typedef uint64_t uintmax_t;
++
++# else
++
++ typedef int32_t intmax_t;
++ typedef uint32_t uintmax_t;
++
++# endif
++
++} // namespace boost
++
++#else // BOOST_HAS_STDINT_H
++
++# include <boost/limits.hpp> // implementation artifact; not part of interface
++# include <limits.h> // needed for limits macros
++
++
++namespace boost
++{
++
++// These are fairly safe guesses for some 16-bit, and most 32-bit and 64-bit
++// platforms. For other systems, they will have to be hand tailored.
++//
++// Because the fast types are assumed to be the same as the undecorated types,
++// it may be possible to hand tailor a more efficient implementation. Such
++// an optimization may be illusionary; on the Intel x86-family 386 on, for
++// example, byte arithmetic and load/stores are as fast as "int" sized ones.
++
++// 8-bit types ------------------------------------------------------------//
++
++# if UCHAR_MAX == 0xff
++ typedef signed char int8_t;
++ typedef signed char int_least8_t;
++ typedef signed char int_fast8_t;
++ typedef unsigned char uint8_t;
++ typedef unsigned char uint_least8_t;
++ typedef unsigned char uint_fast8_t;
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++
++// 16-bit types -----------------------------------------------------------//
++
++# if USHRT_MAX == 0xffff
++# if defined(__crayx1)
++ // The Cray X1 has a 16-bit short, however it is not recommend
++ // for use in performance critical code.
++ typedef short int16_t;
++ typedef short int_least16_t;
++ typedef int int_fast16_t;
++ typedef unsigned short uint16_t;
++ typedef unsigned short uint_least16_t;
++ typedef unsigned int uint_fast16_t;
++# else
++ typedef short int16_t;
++ typedef short int_least16_t;
++ typedef short int_fast16_t;
++ typedef unsigned short uint16_t;
++ typedef unsigned short uint_least16_t;
++ typedef unsigned short uint_fast16_t;
++# endif
++# elif (USHRT_MAX == 0xffffffff) && defined(__MTA__)
++ // On MTA / XMT short is 32 bits unless the -short16 compiler flag is specified
++ // MTA / XMT does support the following non-standard integer types
++ typedef __short16 int16_t;
++ typedef __short16 int_least16_t;
++ typedef __short16 int_fast16_t;
++ typedef unsigned __short16 uint16_t;
++ typedef unsigned __short16 uint_least16_t;
++ typedef unsigned __short16 uint_fast16_t;
++# elif (USHRT_MAX == 0xffffffff) && defined(CRAY)
++ // no 16-bit types on Cray:
++ typedef short int_least16_t;
++ typedef short int_fast16_t;
++ typedef unsigned short uint_least16_t;
++ typedef unsigned short uint_fast16_t;
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++
++// 32-bit types -----------------------------------------------------------//
++
++# if UINT_MAX == 0xffffffff
++ typedef int int32_t;
++ typedef int int_least32_t;
++ typedef int int_fast32_t;
++ typedef unsigned int uint32_t;
++ typedef unsigned int uint_least32_t;
++ typedef unsigned int uint_fast32_t;
++# elif (USHRT_MAX == 0xffffffff)
++ typedef short int32_t;
++ typedef short int_least32_t;
++ typedef short int_fast32_t;
++ typedef unsigned short uint32_t;
++ typedef unsigned short uint_least32_t;
++ typedef unsigned short uint_fast32_t;
++# elif ULONG_MAX == 0xffffffff
++ typedef long int32_t;
++ typedef long int_least32_t;
++ typedef long int_fast32_t;
++ typedef unsigned long uint32_t;
++ typedef unsigned long uint_least32_t;
++ typedef unsigned long uint_fast32_t;
++# elif (UINT_MAX == 0xffffffffffffffff) && defined(__MTA__)
++ // Integers are 64 bits on the MTA / XMT
++ typedef __int32 int32_t;
++ typedef __int32 int_least32_t;
++ typedef __int32 int_fast32_t;
++ typedef unsigned __int32 uint32_t;
++ typedef unsigned __int32 uint_least32_t;
++ typedef unsigned __int32 uint_fast32_t;
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++
++// 64-bit types + intmax_t and uintmax_t ----------------------------------//
++
++# if defined(BOOST_HAS_LONG_LONG) && \
++ !defined(BOOST_MSVC) && !defined(__BORLANDC__) && \
++ (!defined(__GLIBCPP__) || defined(_GLIBCPP_USE_LONG_LONG)) && \
++ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX))
++# if defined(__hpux)
++ // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
++# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL)
++ // 2**64 - 1
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++
++ typedef ::boost::long_long_type intmax_t;
++ typedef ::boost::ulong_long_type uintmax_t;
++ typedef ::boost::long_long_type int64_t;
++ typedef ::boost::long_long_type int_least64_t;
++ typedef ::boost::long_long_type int_fast64_t;
++ typedef ::boost::ulong_long_type uint64_t;
++ typedef ::boost::ulong_long_type uint_least64_t;
++ typedef ::boost::ulong_long_type uint_fast64_t;
++
++# elif ULONG_MAX != 0xffffffff
++
++# if ULONG_MAX == 18446744073709551615 // 2**64 - 1
++ typedef long intmax_t;
++ typedef unsigned long uintmax_t;
++ typedef long int64_t;
++ typedef long int_least64_t;
++ typedef long int_fast64_t;
++ typedef unsigned long uint64_t;
++ typedef unsigned long uint_least64_t;
++ typedef unsigned long uint_fast64_t;
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++# elif defined(__GNUC__) && defined(BOOST_HAS_LONG_LONG)
++ __extension__ typedef long long intmax_t;
++ __extension__ typedef unsigned long long uintmax_t;
++ __extension__ typedef long long int64_t;
++ __extension__ typedef long long int_least64_t;
++ __extension__ typedef long long int_fast64_t;
++ __extension__ typedef unsigned long long uint64_t;
++ __extension__ typedef unsigned long long uint_least64_t;
++ __extension__ typedef unsigned long long uint_fast64_t;
++# elif defined(BOOST_HAS_MS_INT64)
++ //
++ // we have Borland/Intel/Microsoft __int64:
++ //
++ typedef __int64 intmax_t;
++ typedef unsigned __int64 uintmax_t;
++ typedef __int64 int64_t;
++ typedef __int64 int_least64_t;
++ typedef __int64 int_fast64_t;
++ typedef unsigned __int64 uint64_t;
++ typedef unsigned __int64 uint_least64_t;
++ typedef unsigned __int64 uint_fast64_t;
++# else // assume no 64-bit integers
++# define BOOST_NO_INT64_T
++ typedef int32_t intmax_t;
++ typedef uint32_t uintmax_t;
++# endif
++
++} // namespace boost
++
++
++#endif // BOOST_HAS_STDINT_H
++
++// intptr_t/uintptr_t are defined separately because they are optional and not universally available
++#if defined(BOOST_WINDOWS) && !defined(_WIN32_WCE) && !defined(BOOST_HAS_STDINT_H)
++// Older MSVC don't have stdint.h and have intptr_t/uintptr_t defined in stddef.h
++#include <stddef.h>
++#endif
++
++// PGI seems to not support intptr_t/uintptr_t properly. BOOST_HAS_STDINT_H is not defined for this compiler by Boost.Config.
++#if !defined(__PGIC__)
++
++#if (defined(BOOST_WINDOWS) && !defined(_WIN32_WCE)) \
++ || (defined(_XOPEN_UNIX) && (_XOPEN_UNIX+0 > 0) && !defined(__UCLIBC__)) \
++ || defined(__CYGWIN__) \
++ || defined(macintosh) || defined(__APPLE__) || defined(__APPLE_CC__) \
++ || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(sun)
++
++namespace boost {
++ using ::intptr_t;
++ using ::uintptr_t;
++}
++#define BOOST_HAS_INTPTR_T
++
++// Clang pretends to be GCC, so it'll match this condition
++#elif defined(__GNUC__) && defined(__INTPTR_TYPE__) && defined(__UINTPTR_TYPE__)
++
++namespace boost {
++ typedef __INTPTR_TYPE__ intptr_t;
++ typedef __UINTPTR_TYPE__ uintptr_t;
++}
++#define BOOST_HAS_INTPTR_T
++
++#endif
++
++#endif // !defined(__PGIC__)
++
++#endif // BOOST_CSTDINT_HPP
++
++
++/****************************************************
++
++Macro definition section:
++
++Added 23rd September 2000 (John Maddock).
++Modified 11th September 2001 to be excluded when
++BOOST_HAS_STDINT_H is defined (John Maddock).
++Modified 11th Dec 2009 to always define the
++INT#_C macros if they're not already defined (John Maddock).
++
++******************************************************/
++
++#if !defined(BOOST__STDC_CONSTANT_MACROS_DEFINED) && \
++ (!defined(INT8_C) || !defined(INT16_C) || !defined(INT32_C) || !defined(INT64_C))
++//
++// For the following code we get several warnings along the lines of:
++//
++// boost/cstdint.hpp:428:35: error: use of C99 long long integer constant
++//
++// So we declare this a system header to suppress these warnings.
++//
++#if defined(__GNUC__) && (__GNUC__ >= 4)
++#pragma GCC system_header
++#endif
++
++#include <limits.h>
++# define BOOST__STDC_CONSTANT_MACROS_DEFINED
++# if defined(BOOST_HAS_MS_INT64)
++//
++// Borland/Intel/Microsoft compilers have width specific suffixes:
++//
++#ifndef INT8_C
++# define INT8_C(value) value##i8
++#endif
++#ifndef INT16_C
++# define INT16_C(value) value##i16
++#endif
++#ifndef INT32_C
++# define INT32_C(value) value##i32
++#endif
++#ifndef INT64_C
++# define INT64_C(value) value##i64
++#endif
++# ifdef __BORLANDC__
++ // Borland bug: appending ui8 makes the type a signed char
++# define UINT8_C(value) static_cast<unsigned char>(value##u)
++# else
++# define UINT8_C(value) value##ui8
++# endif
++#ifndef UINT16_C
++# define UINT16_C(value) value##ui16
++#endif
++#ifndef UINT32_C
++# define UINT32_C(value) value##ui32
++#endif
++#ifndef UINT64_C
++# define UINT64_C(value) value##ui64
++#endif
++#ifndef INTMAX_C
++# define INTMAX_C(value) value##i64
++# define UINTMAX_C(value) value##ui64
++#endif
++
++# else
++// do it the old fashioned way:
++
++// 8-bit types ------------------------------------------------------------//
++
++# if (UCHAR_MAX == 0xff) && !defined(INT8_C)
++# define INT8_C(value) static_cast<boost::int8_t>(value)
++# define UINT8_C(value) static_cast<boost::uint8_t>(value##u)
++# endif
++
++// 16-bit types -----------------------------------------------------------//
++
++# if (USHRT_MAX == 0xffff) && !defined(INT16_C)
++# define INT16_C(value) static_cast<boost::int16_t>(value)
++# define UINT16_C(value) static_cast<boost::uint16_t>(value##u)
++# endif
++
++// 32-bit types -----------------------------------------------------------//
++#ifndef INT32_C
++# if (UINT_MAX == 0xffffffff)
++# define INT32_C(value) value
++# define UINT32_C(value) value##u
++# elif ULONG_MAX == 0xffffffff
++# define INT32_C(value) value##L
++# define UINT32_C(value) value##uL
++# endif
++#endif
++
++// 64-bit types + intmax_t and uintmax_t ----------------------------------//
++#ifndef INT64_C
++# if defined(BOOST_HAS_LONG_LONG) && \
++ (defined(ULLONG_MAX) || defined(ULONG_LONG_MAX) || defined(ULONGLONG_MAX) || defined(_ULLONG_MAX) || defined(_LLONG_MAX))
++
++# if defined(__hpux)
++ // HP-UX's value of ULONG_LONG_MAX is unusable in preprocessor expressions
++# define INT64_C(value) value##LL
++# define UINT64_C(value) value##uLL
++# elif (defined(ULLONG_MAX) && ULLONG_MAX == 18446744073709551615ULL) || \
++ (defined(ULONG_LONG_MAX) && ULONG_LONG_MAX == 18446744073709551615ULL) || \
++ (defined(ULONGLONG_MAX) && ULONGLONG_MAX == 18446744073709551615ULL) || \
++ (defined(_ULLONG_MAX) && _ULLONG_MAX == 18446744073709551615ULL) || \
++ (defined(_LLONG_MAX) && _LLONG_MAX == 9223372036854775807LL)
++
++# define INT64_C(value) value##LL
++# define UINT64_C(value) value##uLL
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++# elif ULONG_MAX != 0xffffffff
++
++# if ULONG_MAX == 18446744073709551615U // 2**64 - 1
++# define INT64_C(value) value##L
++# define UINT64_C(value) value##uL
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++# elif defined(BOOST_HAS_LONG_LONG)
++ // Usual macros not defined, work things out for ourselves:
++# if(~0uLL == 18446744073709551615ULL)
++# define INT64_C(value) value##LL
++# define UINT64_C(value) value##uLL
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++# else
++# error defaults not correct; you must hand modify boost/cstdint.hpp
++# endif
++
++# ifdef BOOST_NO_INT64_T
++# define INTMAX_C(value) INT32_C(value)
++# define UINTMAX_C(value) UINT32_C(value)
++# else
++# define INTMAX_C(value) INT64_C(value)
++# define UINTMAX_C(value) UINT64_C(value)
++# endif
++#endif
++# endif // Borland/Microsoft specific width suffixes
++
++#endif // INT#_C macros.
+--- /dev/null
++++ b/lib/boost/smart_ptr/detail/sp_counted_base_clang.hpp
+@@ -0,0 +1,140 @@
++#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED
++#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED
++
++// MS compatible compilers support #pragma once
++
++#if defined(_MSC_VER) && (_MSC_VER >= 1020)
++# pragma once
++#endif
++
++// detail/sp_counted_base_clang.hpp - __c11 clang intrinsics
++//
++// Copyright (c) 2007, 2013, 2015 Peter Dimov
++//
++// Distributed under the Boost Software License, Version 1.0.
++// See accompanying file LICENSE_1_0.txt or copy at
++// http://www.boost.org/LICENSE_1_0.txt
++
++#include <boost/detail/sp_typeinfo.hpp>
++#include <boost/cstdint.hpp>
++
++namespace boost
++{
++
++namespace detail
++{
++
++typedef _Atomic( boost::int_least32_t ) atomic_int_least32_t;
++
++inline void atomic_increment( atomic_int_least32_t * pw )
++{
++ __c11_atomic_fetch_add( pw, 1, __ATOMIC_RELAXED );
++}
++
++inline boost::int_least32_t atomic_decrement( atomic_int_least32_t * pw )
++{
++ return __c11_atomic_fetch_sub( pw, 1, __ATOMIC_ACQ_REL );
++}
++
++inline boost::int_least32_t atomic_conditional_increment( atomic_int_least32_t * pw )
++{
++ // long r = *pw;
++ // if( r != 0 ) ++*pw;
++ // return r;
++
++ boost::int_least32_t r = __c11_atomic_load( pw, __ATOMIC_RELAXED );
++
++ for( ;; )
++ {
++ if( r == 0 )
++ {
++ return r;
++ }
++
++ if( __c11_atomic_compare_exchange_weak( pw, &r, r + 1, __ATOMIC_RELAXED, __ATOMIC_RELAXED ) )
++ {
++ return r;
++ }
++ }
++}
++
++class sp_counted_base
++{
++private:
++
++ sp_counted_base( sp_counted_base const & );
++ sp_counted_base & operator= ( sp_counted_base const & );
++
++ atomic_int_least32_t use_count_; // #shared
++ atomic_int_least32_t weak_count_; // #weak + (#shared != 0)
++
++public:
++
++ sp_counted_base()
++ {
++ __c11_atomic_init( &use_count_, 1 );
++ __c11_atomic_init( &weak_count_, 1 );
++ }
++
++ virtual ~sp_counted_base() // nothrow
++ {
++ }
++
++ // dispose() is called when use_count_ drops to zero, to release
++ // the resources managed by *this.
++
++ virtual void dispose() = 0; // nothrow
++
++ // destroy() is called when weak_count_ drops to zero.
++
++ virtual void destroy() // nothrow
++ {
++ delete this;
++ }
++
++ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
++ virtual void * get_untyped_deleter() = 0;
++
++ void add_ref_copy()
++ {
++ atomic_increment( &use_count_ );
++ }
++
++ bool add_ref_lock() // true on success
++ {
++ return atomic_conditional_increment( &use_count_ ) != 0;
++ }
++
++ void release() // nothrow
++ {
++ if( atomic_decrement( &use_count_ ) == 1 )
++ {
++ dispose();
++ weak_release();
++ }
++ }
++
++ void weak_add_ref() // nothrow
++ {
++ atomic_increment( &weak_count_ );
++ }
++
++ void weak_release() // nothrow
++ {
++ if( atomic_decrement( &weak_count_ ) == 1 )
++ {
++ destroy();
++ }
++ }
++
++ long use_count() const // nothrow
++ {
++ return __c11_atomic_load( const_cast< atomic_int_least32_t* >( &use_count_ ), __ATOMIC_ACQUIRE );
++ }
++};
++
++} // namespace detail
++
++} // namespace boost
++
++#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_CLANG_HPP_INCLUDED
+--- /dev/null
++++ b/lib/boost/smart_ptr/detail/sp_counted_base_sync.hpp
+@@ -0,0 +1,156 @@
++#ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
++#define BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
++
++// MS compatible compilers support #pragma once
++
++#if defined(_MSC_VER) && (_MSC_VER >= 1020)
++# pragma once
++#endif
++
++// detail/sp_counted_base_sync.hpp - g++ 4.1+ __sync intrinsics
++//
++// Copyright (c) 2007 Peter Dimov
++//
++// Distributed under the Boost Software License, Version 1.0.
++// See accompanying file LICENSE_1_0.txt or copy at
++// http://www.boost.org/LICENSE_1_0.txt
++
++#include <boost/detail/sp_typeinfo.hpp>
++#include <limits.h>
++
++#if defined( __ia64__ ) && defined( __INTEL_COMPILER )
++# include <ia64intrin.h>
++#endif
++
++namespace boost
++{
++
++namespace detail
++{
++
++#if INT_MAX >= 2147483647
++
++typedef int sp_int32_t;
++
++#else
++
++typedef long sp_int32_t;
++
++#endif
++
++inline void atomic_increment( sp_int32_t * pw )
++{
++ __sync_fetch_and_add( pw, 1 );
++}
++
++inline sp_int32_t atomic_decrement( sp_int32_t * pw )
++{
++ return __sync_fetch_and_add( pw, -1 );
++}
++
++inline sp_int32_t atomic_conditional_increment( sp_int32_t * pw )
++{
++ // long r = *pw;
++ // if( r != 0 ) ++*pw;
++ // return r;
++
++ sp_int32_t r = *pw;
++
++ for( ;; )
++ {
++ if( r == 0 )
++ {
++ return r;
++ }
++
++ sp_int32_t r2 = __sync_val_compare_and_swap( pw, r, r + 1 );
++
++ if( r2 == r )
++ {
++ return r;
++ }
++ else
++ {
++ r = r2;
++ }
++ }
++}
++
++class sp_counted_base
++{
++private:
++
++ sp_counted_base( sp_counted_base const & );
++ sp_counted_base & operator= ( sp_counted_base const & );
++
++ sp_int32_t use_count_; // #shared
++ sp_int32_t weak_count_; // #weak + (#shared != 0)
++
++public:
++
++ sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
++ {
++ }
++
++ virtual ~sp_counted_base() // nothrow
++ {
++ }
++
++ // dispose() is called when use_count_ drops to zero, to release
++ // the resources managed by *this.
++
++ virtual void dispose() = 0; // nothrow
++
++ // destroy() is called when weak_count_ drops to zero.
++
++ virtual void destroy() // nothrow
++ {
++ delete this;
++ }
++
++ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
++ virtual void * get_untyped_deleter() = 0;
++
++ void add_ref_copy()
++ {
++ atomic_increment( &use_count_ );
++ }
++
++ bool add_ref_lock() // true on success
++ {
++ return atomic_conditional_increment( &use_count_ ) != 0;
++ }
++
++ void release() // nothrow
++ {
++ if( atomic_decrement( &use_count_ ) == 1 )
++ {
++ dispose();
++ weak_release();
++ }
++ }
++
++ void weak_add_ref() // nothrow
++ {
++ atomic_increment( &weak_count_ );
++ }
++
++ void weak_release() // nothrow
++ {
++ if( atomic_decrement( &weak_count_ ) == 1 )
++ {
++ destroy();
++ }
++ }
++
++ long use_count() const // nothrow
++ {
++ return const_cast< sp_int32_t const volatile & >( use_count_ );
++ }
++};
++
++} // namespace detail
++
++} // namespace boost
++
++#endif // #ifndef BOOST_SMART_PTR_DETAIL_SP_COUNTED_BASE_SYNC_HPP_INCLUDED
+--- /dev/null
++++ b/lib/boost/smart_ptr/detail/sp_counted_base_gcc_mips.hpp
+@@ -0,0 +1,182 @@
++#ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
++#define BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
++
++// MS compatible compilers support #pragma once
++
++#if defined(_MSC_VER) && (_MSC_VER >= 1020)
++# pragma once
++#endif
++
++//
++// detail/sp_counted_base_gcc_mips.hpp - g++ on MIPS
++//
++// Copyright (c) 2009, Spirent Communications, Inc.
++//
++// Distributed under the Boost Software License, Version 1.0. (See
++// accompanying file LICENSE_1_0.txt or copy at
++// http://www.boost.org/LICENSE_1_0.txt)
++//
++//
++// Lock-free algorithm by Alexander Terekhov
++//
++
++#include <boost/detail/sp_typeinfo.hpp>
++
++namespace boost
++{
++
++namespace detail
++{
++
++inline void atomic_increment( int * pw )
++{
++ // ++*pw;
++
++ int tmp;
++
++ __asm__ __volatile__
++ (
++ "0:\n\t"
++ ".set push\n\t"
++ ".set mips2\n\t"
++ "ll %0, %1\n\t"
++ "addiu %0, 1\n\t"
++ "sc %0, %1\n\t"
++ ".set pop\n\t"
++ "beqz %0, 0b":
++ "=&r"( tmp ), "=m"( *pw ):
++ "m"( *pw )
++ );
++}
++
++inline int atomic_decrement( int * pw )
++{
++ // return --*pw;
++
++ int rv, tmp;
++
++ __asm__ __volatile__
++ (
++ "0:\n\t"
++ ".set push\n\t"
++ ".set mips2\n\t"
++ "ll %1, %2\n\t"
++ "addiu %0, %1, -1\n\t"
++ "sc %0, %2\n\t"
++ ".set pop\n\t"
++ "beqz %0, 0b\n\t"
++ "addiu %0, %1, -1":
++ "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
++ "m"( *pw ):
++ "memory"
++ );
++
++ return rv;
++}
++
++inline int atomic_conditional_increment( int * pw )
++{
++ // if( *pw != 0 ) ++*pw;
++ // return *pw;
++
++ int rv, tmp;
++
++ __asm__ __volatile__
++ (
++ "0:\n\t"
++ ".set push\n\t"
++ ".set mips2\n\t"
++ "ll %0, %2\n\t"
++ "beqz %0, 1f\n\t"
++ "addiu %1, %0, 1\n\t"
++ "sc %1, %2\n\t"
++ ".set pop\n\t"
++ "beqz %1, 0b\n\t"
++ "addiu %0, %0, 1\n\t"
++ "1:":
++ "=&r"( rv ), "=&r"( tmp ), "=m"( *pw ):
++ "m"( *pw ):
++ "memory"
++ );
++
++ return rv;
++}
++
++class sp_counted_base
++{
++private:
++
++ sp_counted_base( sp_counted_base const & );
++ sp_counted_base & operator= ( sp_counted_base const & );
++
++ int use_count_; // #shared
++ int weak_count_; // #weak + (#shared != 0)
++
++public:
++
++ sp_counted_base(): use_count_( 1 ), weak_count_( 1 )
++ {
++ }
++
++ virtual ~sp_counted_base() // nothrow
++ {
++ }
++
++ // dispose() is called when use_count_ drops to zero, to release
++ // the resources managed by *this.
++
++ virtual void dispose() = 0; // nothrow
++
++ // destroy() is called when weak_count_ drops to zero.
++
++ virtual void destroy() // nothrow
++ {
++ delete this;
++ }
++
++ virtual void * get_deleter( sp_typeinfo const & ti ) = 0;
++ virtual void * get_untyped_deleter() = 0;
++
++ void add_ref_copy()
++ {
++ atomic_increment( &use_count_ );
++ }
++
++ bool add_ref_lock() // true on success
++ {
++ return atomic_conditional_increment( &use_count_ ) != 0;
++ }
++
++ void release() // nothrow
++ {
++ if( atomic_decrement( &use_count_ ) == 0 )
++ {
++ dispose();
++ weak_release();
++ }
++ }
++
++ void weak_add_ref() // nothrow
++ {
++ atomic_increment( &weak_count_ );
++ }
++
++ void weak_release() // nothrow
++ {
++ if( atomic_decrement( &weak_count_ ) == 0 )
++ {
++ destroy();
++ }
++ }
++
++ long use_count() const // nothrow
++ {
++ return static_cast<int const volatile &>( use_count_ );
++ }
++};
++
++} // namespace detail
++
++} // namespace boost
++
++#endif // #ifndef BOOST_DETAIL_SP_COUNTED_BASE_GCC_MIPS_HPP_INCLUDED
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
deleted file mode 100644
index 98cd40c84c..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0003-Replace-canonicalize_file_name-with-realpath-API.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 781288d6307002cce70ddafb6efb200b7f60294d Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 22:12:43 -0700
-Subject: [PATCH 3/6] Replace canonicalize_file_name with realpath() API
-
-Fixed build on musl where canonicalize_file_name is not implemented
-
-filesystem.cpp:46:15: error: 'canonicalize_file_name' was not declared in this scope
- char *p = canonicalize_file_name(path);
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/engine/filesystem.cpp | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp
-index b99257e..6064837 100644
---- a/lib/engine/filesystem.cpp
-+++ b/lib/engine/filesystem.cpp
-@@ -43,7 +43,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path)
- if (path == 0) {
- throw E_NULL_POINTER;
- }
-- char *p = canonicalize_file_name(path);
-+ char *p = realpath(path, NULL);
- assign(p);
- if (p) {
- free(p);
---
-2.13.1
-
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
new file mode 100644
index 0000000000..e5e257b49a
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0003-engine-Define-discover-const-String-path-in-base-cla.patch
@@ -0,0 +1,49 @@
+From 24e0f55c07080a59907c190a315e279f7b2355e5 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Aug 2019 14:25:02 -0700
+Subject: [PATCH 3/4] engine: Define discover(const String &path) in base class
+
+this fixes the confusion that compiler may have when inheriting two
+different classes where each of them defines discover() virtual function
+but with different signatures
+
+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/lib/engine/storage_object.h b/lib/engine/storage_object.h
+index f1feb62..9c1d3d8 100644
+--- a/lib/engine/storage_object.h
++++ b/lib/engine/storage_object.h
+@@ -123,6 +123,9 @@ public:
+ virtual void discover() {
+ throw E_INVALID_OPERATION;
+ }
++ virtual void discover(const String &path) {
++ throw E_INVALID_OPERATION;
++ }
+ virtual void addToSession(const boost::shared_ptr<Session>& pSession) = 0;
+ };
+
+diff --git a/lib/engine/vmd_raid_info.h b/lib/engine/vmd_raid_info.h
+index 2bea839..cc6ffbe 100644
+--- a/lib/engine/vmd_raid_info.h
++++ b/lib/engine/vmd_raid_info.h
+@@ -53,8 +53,6 @@ public:
+ return SSI_ControllerTypeVMD;
+ }
+
+-private:
+- struct orom_info orom_vmd;
+ };
+
+ #endif /* __VMD_RAID_INFO_H__INCLUDED__ */
+--
+2.23.0
+
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
new file mode 100644
index 0000000000..d70be51ee6
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0003-replace-canonicalize_file_name-with-realpath.patch
@@ -0,0 +1,45 @@
+From c817db76bb63b872fe2069e3c2449ac18affe8c1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Aug 2019 13:17:38 -0700
+Subject: [PATCH] replace canonicalize_file_name with realpath
+
+Use 'realpath()' (BSD, POSIX) instead of
+'canonicalize_file_name()' (GNU extension).
+
+Fixes
+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/lib/engine/filesystem.cpp b/lib/engine/filesystem.cpp
+index bf5a776..194ab8a 100644
+--- a/lib/engine/filesystem.cpp
++++ b/lib/engine/filesystem.cpp
+@@ -54,7 +54,7 @@ void CanonicalPath::__canonicalize_path_name(const char *path)
+ if (path == NULL) {
+ throw E_NULL_POINTER;
+ }
+- char *p = canonicalize_file_name(path);
++ char *p = realpath(path, (char *)0);
+ assign(p);
+ if (p) {
+ free(p);
+diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
+index 80791fd..3eed877 100644
+--- a/tools/ssieventmonitor.cpp
++++ b/tools/ssieventmonitor.cpp
+@@ -120,7 +120,7 @@ static int _exec_ssimsg(void)
+ int status;
+ switch (pid) {
+ case 0: {
+- cp = canonicalize_file_name("/proc/self/exe");
++ cp = realpath("/proc/self/exe", (char *)0);
+ if (cp) {
+ strcpy_s(buffer, sizeof(buffer), cp);
+ free(cp);
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
new file mode 100644
index 0000000000..56e3c658a4
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0004-Do-not-override-flags-coming-from-build-environment.patch
@@ -0,0 +1,35 @@
+From 98fad8128d0f3b65619827ee5d65f7767b080c4c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Aug 2019 14:35:16 -0700
+Subject: [PATCH 4/4] Do not override flags coming from build environment
+
+e.g. we need some optimization level turned on when security flags are enabled
+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/configure.ac b/configure.ac
+index 34e41ea..9bd0fe3 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -16,9 +16,9 @@ AM_INIT_AUTOMAKE(ssi, ${VERSION})
+ AM_CONFIG_HEADER(config.h)
+
+ dnl Set the language we use
+-CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -fvisibility=hidden -D_GNU_SOURCE -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
+-CFLAGS="-std=gnu99 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
+-CXXFLAGS="-std=gnu++98 -fvisibility-inlines-hidden -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
++#CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -fvisibility=hidden -D_GNU_SOURCE -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
++#CFLAGS="-std=gnu99 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
++#CXXFLAGS="-std=gnu++98 -fvisibility-inlines-hidden -O3 -fstack-protector -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -fPIC"
+
+ dnl Automake 1.11 - silent build rules
+ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+--
+2.23.0
+
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
deleted file mode 100644
index 7dce0da40b..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0004-engine-Fix-indentation-and-missing-semi-colon.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 04e8b99d8195a0e39982ecd27802421610633724 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 22:18:31 -0700
-Subject: [PATCH 4/6] engine: Fix indentation and missing semi-colon
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/engine/mdadm_config.cpp | 5 +++--
- lib/engine/unique_id_manager.cpp | 2 +-
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/lib/engine/mdadm_config.cpp b/lib/engine/mdadm_config.cpp
-index 1914ddc..e40c2c7 100644
---- a/lib/engine/mdadm_config.cpp
-+++ b/lib/engine/mdadm_config.cpp
-@@ -118,9 +118,10 @@ void check_configuration()
- attr >> config;
- configOk = correct_config(config);
- } catch (Exception ex) {
-- if (ex != E_NOT_FOUND)
-+ if (ex != E_NOT_FOUND) {
- dlog("Warning: mdadm config file cannot be read, new one will be written");
- backup = false;
-+ }
- }
-
- if (configOk && monitor_running()) {
-@@ -134,7 +135,7 @@ void check_configuration()
- dlog("Warning: failed to update mdadm.conf");
- }
- if (restart_monitor() == 0)
-- dlog("Monitor restarted successfully")
-+ dlog("Monitor restarted successfully");
- else
- dlog("Error starting Monitor");
- }
-diff --git a/lib/engine/unique_id_manager.cpp b/lib/engine/unique_id_manager.cpp
-index 99c153c..87d6ddc 100644
---- a/lib/engine/unique_id_manager.cpp
-+++ b/lib/engine/unique_id_manager.cpp
-@@ -185,7 +185,7 @@ void UniqueIdManager::refresh()
- keyFile >> keyList;
- keyList += "\n";
- } catch (...) {
-- dlog("ssi.keys file missing")
-+ dlog("ssi.keys file missing");
- /* no file? that's ok */
- }
- /* process the list to update IdCaches */
---
-2.13.1
-
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
new file mode 100644
index 0000000000..005a35e5a4
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0004-include-limits.h.patch
@@ -0,0 +1,27 @@
+From e90101128dfe75b9b1a0575a0179d211f677e6ad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 30 Aug 2019 13:19:50 -0700
+Subject: [PATCH] include limits.h
+
+Fixes
+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/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
+index 3eed877..0d11975 100644
+--- a/tools/ssieventmonitor.cpp
++++ b/tools/ssieventmonitor.cpp
+@@ -34,6 +34,7 @@
+ #include <unistd.h>
+ #include <dirent.h>
+ #include <errno.h>
++#include <limits.h>
+ #include <sys/fcntl.h>
+ #include <sys/select.h>
+ #include <sys/wait.h>
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
new file mode 100644
index 0000000000..6dd7fc735e
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi/0005-enable-out-of-source-tree-builds.patch
@@ -0,0 +1,230 @@
+From 3ec4eaf1688e413e8b5cb433148a3bc6e7987606 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 29 Aug 2019 15:10:03 -0700
+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 +-
+ lib/safeclib/Makefile.am | 2 +-
+ src/Makefile.am | 16 ++++++++--------
+ tools/Makefile.am | 10 +++++-----
+ ut/Makefile.am | 36 ++++++++++++++++++------------------
+ 7 files changed, 35 insertions(+), 35 deletions(-)
+
+--- a/lib/efi/Makefile.am
++++ b/lib/efi/Makefile.am
+@@ -7,6 +7,6 @@ libefi_la_SOURCES = \
+ efi.h
+
+ libefi_la_CPPFLAGS = \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib
+--- a/lib/engine/Makefile.am
++++ b/lib/engine/Makefile.am
+@@ -123,6 +123,7 @@ libengine_la_SOURCES = \
+ volume.h
+
+ libengine_la_CPPFLAGS = \
++ -I$(top_builddir) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib
+--- a/lib/orom/Makefile.am
++++ b/lib/orom/Makefile.am
+@@ -7,6 +7,6 @@ liborom_la_SOURCES = \
+ orom.h
+
+ liborom_la_CPPFLAGS = \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib
+--- a/lib/safeclib/Makefile.am
++++ b/lib/safeclib/Makefile.am
+@@ -37,7 +37,7 @@ libsafec_la_SOURCES = \
+ strtok_s.c
+
+ libsafec_la_CPPFLAGS = \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib \
+ -Wno-unused-variable
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -5,7 +5,7 @@ AUTOMAKE_OPTIONS = nostdinc
+ lib_LTLIBRARIES = libssi.la
+
+ libssi_la_CPPFLAGS = \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib \
+ -DBOOST_NO_USER_CONFIG
+@@ -46,10 +46,10 @@ libssi_la_SOURCES =
+ templates.h \
+ volume.cpp
+
+-libssi_la_LIBADD = \
+- ../lib/efi/libefi.la \
+- ../lib/log/liblog.la \
+- ../lib/orom/liborom.la \
+- ../lib/mpb/libmpb.la \
+- ../lib/engine/libengine.la \
+- ../lib/safeclib/libsafec.la
++libssi_la_LIBADD = \
++ $(top_builddir)/lib/efi/libefi.la \
++ $(top_builddir)/lib/log/liblog.la \
++ $(top_builddir)/lib/orom/liborom.la \
++ $(top_builddir)/lib/mpb/libmpb.la \
++ $(top_builddir)/lib/engine/libengine.la \
++ $(top_builddir)/lib/safeclib/libsafec.la
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -6,17 +6,18 @@ ssimsg_SOURCES =
+ ssimsg.cpp
+
+ ssimsg_CPPFLAGS = \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib
+
+-ssieventmonitor_SOURCES = \
++ssieventmonitor_SOURCES = \
+ ssieventmonitor.cpp
+
+-ssieventmonitor_CPPFLAGS = \
++ssieventmonitor_CPPFLAGS = \
++ -I$(top_builddir) \
+ -I$(top_srcdir) \
+ -I$(top_srcdir)/include \
+ -I$(top_srcdir)/lib
+
+ ssieventmonitor_LDADD = \
+- $(top_srcdir)/lib/safeclib/libsafec.la
++ $(top_builddir)/lib/safeclib/libsafec.la
+--- a/ut/Makefile.am
++++ b/ut/Makefile.am
+@@ -8,81 +8,81 @@ ut_events_SOURCES = \
+ ut_events.cpp
+
+ ut_events_CPPFLAGS = \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_events_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_volume_SOURCES = \
+ ut_volume.cpp
+
+ ut_volume_CPPFLAGS = \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_volume_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_session_SOURCES = \
+ ut_session.cpp
+
+ ut_session_CPPFLAGS = \
+- -g3 -I$(top_srcdir) \
++ -g3 -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_session_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_info_SOURCES = \
+ ut_info.cpp
+
+ ut_info_CPPFLAGS = \
+- -g3 -I$(top_srcdir) \
++ -g3 -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_info_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_markasspare_SOURCES = \
+ ut_markasspare.cpp
+
+ ut_markasspare_CPPFLAGS = \
+- -g3 -I$(top_srcdir) \
++ -g3 -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_markasspare_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_migration_SOURCES = \
+ ut_migration.cpp
+
+ ut_migration_CPPFLAGS = \
+- -g3 -I$(top_srcdir) \
++ -g3 -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_migration_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_phy_SOURCES = \
+ ut_phy.cpp
+
+ ut_phy_CPPFLAGS = \
+- -g3 -I$(top_srcdir) \
++ -g3 -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_phy_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_initialize_volume_SOURCES = \
+ ut_initialize_volume.cpp
+
+ ut_initialize_volume_CPPFLAGS = \
+- -g3 -I$(top_srcdir) \
++ -g3 -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_initialize_volume_LDADD = \
+- ../src/libssi.la
++ $(top_builddir)/src/libssi.la
+
+ ut_filesystem_SOURCES = \
+ ut_filesystem.cpp \
+@@ -92,7 +92,7 @@ ut_filesystem_SOURCES = \
+
+ ut_filesystem_CPPFLAGS = \
+ -iquote $(top_srcdir)/lib/engine \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
+ ut_string_SOURCES = \
+@@ -103,6 +103,6 @@ ut_string_SOURCES = \
+
+ ut_string_CPPFLAGS = \
+ -iquote $(top_srcdir)/lib/engine \
+- -I$(top_srcdir) \
++ -I$(top_builddir) \
+ -I$(top_srcdir)/include
+
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
deleted file mode 100644
index 6f4dbf18e0..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0005-engine-Define-SENTINEL.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From a2e3a2e332c406ea3c56a8d74b61978107df68e6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 22:23:08 -0700
-Subject: [PATCH 5/6] engine: Define SENTINEL
-
-Fix warnings with gcc7
-test.cpp:12: warning: missing sentinel in function call
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/engine/utils.cpp | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/engine/utils.cpp b/lib/engine/utils.cpp
-index 44579a1..8812a8c 100644
---- a/lib/engine/utils.cpp
-+++ b/lib/engine/utils.cpp
-@@ -35,7 +35,7 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- #include "filesystem.h"
- #include "utils.h"
- #include "log/log.h"
--
-+#define SENTINEL (const char *)0
- /**
- * @brief capture shell output as binary data
- *
-@@ -139,7 +139,7 @@ int shell(const String &s)
- * Before switching into new executable close all non standard
- * file handlers.*/
- close_parent_fds();
-- execl("/bin/sh", "sh", "-c", cmd.get(), NULL);
-+ execl("/bin/sh", "sh", "-c", cmd.get(), SENTINEL);
- /* If we're here then execl failed*/
- exit(-1);
- break;
---
-2.13.1
-
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch b/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
deleted file mode 100644
index a7b70e3f49..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/0006-tools-Add-missing-includes-and-use-realpath-instead-.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From df1d56d6b6a6b15d0137619eb8a4b623de6c9633 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 16 Jun 2017 22:28:59 -0700
-Subject: [PATCH 6/6] tools: Add missing includes and use realpath() instead of
- canonicalize_file_name
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tools/ssieventmonitor.cpp | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/tools/ssieventmonitor.cpp b/tools/ssieventmonitor.cpp
-index 0553386..f04b8f0 100644
---- a/tools/ssieventmonitor.cpp
-+++ b/tools/ssieventmonitor.cpp
-@@ -18,7 +18,9 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- #include <unistd.h>
- #include <dirent.h>
- #include <errno.h>
--#include <sys/fcntl.h>
-+#include <limits.h>
-+#include <fcntl.h>
-+#include <libgen.h>
- #include <sys/select.h>
- #include <sys/wait.h>
- #include <sys/inotify.h>
-@@ -99,7 +101,7 @@ static int _exec_ssimsg(void)
- int status;
- switch (pid) {
- case 0: {
-- cp = canonicalize_file_name("/proc/self/exe");
-+ cp = realpath("/proc/self/exe", NULL);
- if (cp) {
- strcpy(buffer, cp);
- free(cp);
---
-2.13.1
-
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch b/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
deleted file mode 100644
index d45be590c7..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi/configure-cflags.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Do not override flags thereby respect the flags coming from environment,
-e.g. we need some optimization level turned on when security flags are enabled
-without this change, the build would fail
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: ssiapi.1.0.1/configure.ac
-===================================================================
---- ssiapi.1.0.1.orig/configure.ac
-+++ ssiapi.1.0.1/configure.ac
-@@ -15,11 +15,6 @@ AC_SUBST(VERSION)
- AM_INIT_AUTOMAKE(ssi, ${VERSION})
- AM_CONFIG_HEADER(config.h)
-
--dnl Set the language we use
--CPPFLAGS="-g3 -gdwarf-2 -Wall -Werror -D_GNU_SOURCE"
--CFLAGS="-std=gnu99"
--CXXFLAGS="-std=gnu++98"
--
- dnl Automake 1.11 - silent build rules
- m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
-
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb b/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
deleted file mode 100644
index 5eb4696b57..0000000000
--- a/meta-oe/recipes-support/ssiapi/ssiapi_1.0.1.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Intel RSTe with Linux OS SSI API Library"
-
-DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \
-The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset."
-
-HOMEPAGE = "http://irstessi.sourceforge.net/"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0413ff365e0bd733c4869a6797551c6f"
-
-DEPENDS += "sg3-utils"
-
-SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \
- file://0001-Use-pragma-once-unconditionally.patch \
- file://0002-Convert-macros-into-functions.patch \
- file://0003-Replace-canonicalize_file_name-with-realpath-API.patch \
- file://0004-engine-Fix-indentation-and-missing-semi-colon.patch \
- file://0005-engine-Define-SENTINEL.patch \
- file://0006-tools-Add-missing-includes-and-use-realpath-instead-.patch \
- file://configure-cflags.patch \
- file://0001-ssieventmonitor-ordered-comparison-between-pointers-.patch \
- "
-SRC_URI[md5sum] = "02f16d7cbd30d28034093212906591f5"
-SRC_URI[sha256sum] = "e10d283b0f211afb8ebd0bde87c097769613d30a052cdf164753e35e803264c7"
-
-S ="${WORKDIR}/${BPN}.${PV}"
-
-inherit autotools-brokensep
-CXXFLAGS="-std=gnu++98 -D_GNU_SOURCE"
-
-do_configure_prepend(){
- ./autogen.sh
-}
-
-RDEPENDS_${PN} += "mdadm"
diff --git a/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb b/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb
new file mode 100644
index 0000000000..bf9de31f84
--- /dev/null
+++ b/meta-oe/recipes-support/ssiapi/ssiapi_1.3.0.bb
@@ -0,0 +1,41 @@
+SUMMARY = "Intel RSTe with Linux OS SSI API Library"
+
+DESCRIPTION = "Intel Rapid Storage Technology enterprise with Linux OS* Standard Storage Interface API Library. \
+The library allows user to manage storage devices including creating and managing Raid arrays on systems with Intel chipset."
+
+HOMEPAGE = "http://irstessi.sourceforge.net/"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=9d701a2fbb56039fd64afb2262008ddb"
+
+DEPENDS += "sg3-utils"
+
+SRC_URI = "http://sourceforge.net/projects/irstessi/files/${BPN}.${PV}.tgz \
+ file://0001-log-Avoid-shadowing-functions-from-std-lib.patch \
+ file://0002-boost-Backport-clang-support.patch \
+ file://0003-engine-Define-discover-const-String-path-in-base-cla.patch \
+ file://0004-Do-not-override-flags-coming-from-build-environment.patch \
+ file://0005-enable-out-of-source-tree-builds.patch \
+ file://0001-Don-t-use-__GNUC_PREREQ.patch \
+ file://0002-Use-stangard-int-types.patch \
+ file://0003-replace-canonicalize_file_name-with-realpath.patch \
+ file://0004-include-limits.h.patch \
+ file://0001-Include-libgen.h.patch \
+ "
+SRC_URI[md5sum] = "d06c9b426437a7697d77266e9835b520"
+SRC_URI[sha256sum] = "59daab29363d6e9f07c524029c4239653cfbbee6b0e57fd75df62499728dad8a"
+
+S ="${WORKDIR}/${BPN}.${PV}"
+
+inherit autotools
+
+CXXFLAGS += "-std=gnu++14"
+
+do_configure:prepend(){
+ ${S}/autogen.sh
+}
+
+RDEPENDS:${PN} += "mdadm"
+
+COMPATIBLE_HOST:powerpc = 'null'
+COMPATIBLE_HOST:powerpc64le = 'null'
diff --git a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch b/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
deleted file mode 100644
index e988efded6..0000000000
--- a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon/0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 685645a20e39cf2ab7db8d1f5e3666a4228abca8 Mon Sep 17 00:00:00 2001
-From: Ioan-Adrian Ratiu <adrian.ratiu@ni.com>
-Date: Wed, 8 Jul 2015 09:44:57 +0300
-Subject: [PATCH 1/1] dpkg start-stop-daemon: Accept SIG prefixed signal names
-
----
- utils/start-stop-daemon.c | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/utils/start-stop-daemon.c b/utils/start-stop-daemon.c
-index 6aebe9b..e805082 100644
---- a/utils/start-stop-daemon.c
-+++ b/utils/start-stop-daemon.c
-@@ -18,6 +18,9 @@
- * and Andreas Schuldei <andreas@schuldei.org>
- *
- * Changes by Ian Jackson: added --retry (and associated rearrangements).
-+ *
-+ * Changes by Haris Okanovic <haris.okanovic@ni.com> to support 'SIG'
-+ * prefixed signal names placed in public domain as well.
- */
-
- #include <config.h>
-@@ -661,6 +664,12 @@ parse_signal(const char *sig_str, int *sig_num)
- if (parse_unsigned(sig_str, 10, sig_num) == 0)
- return 0;
-
-+ /* Skip over optional "SIG" prefix */
-+ if (strncmp(sig_str, "SIG", 3) == 0) {
-+ warning("Using deprecated signal name %s. Drop the 'SIG' prefix.\n", sig_str);
-+ sig_str += 3;
-+ }
-+
- for (i = 0; i < array_count(siglist); i++) {
- if (strcmp(sig_str, siglist[i].name) == 0) {
- *sig_num = siglist[i].signal;
---
-2.1.4
-
diff --git a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb b/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
deleted file mode 100644
index cc2727b758..0000000000
--- a/meta-oe/recipes-support/start-stop-daemon/start-stop-daemon_1.17.25.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY = "Debian's start-stop-daemon utility extracted from the dpkg \
-package"
-LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://utils/start-stop-daemon.c;endline=21;md5=8fbd0497a7d0b01e99820bffcb58e9ad"
-# start-stop-daemon is usually shipped by dpkg
-DEPENDS = "ncurses"
-RCONFLICTS_${PN} = "dpkg"
-
-SRC_URI = " \
- ${DEBIAN_MIRROR}/main/d/dpkg/dpkg_${PV}.tar.xz \
- file://0001-dpkg-start-stop-daemon-Accept-SIG-prefixed-signal-na.patch \
-"
-
-SRC_URI[md5sum] = "e48fcfdb2162e77d72c2a83432d537ca"
-SRC_URI[sha256sum] = "07019d38ae98fb107c79dbb3690cfadff877f153b8c4970e3a30d2e59aa66baa"
-
-inherit autotools gettext pkgconfig
-
-S = "${WORKDIR}/dpkg-${PV}"
-
-EXTRA_OECONF = " \
- --without-bz2 \
- --without-selinux \
-"
-
-do_install_append () {
- # remove everything that is not related to start-stop-daemon, since there
- # is no explicit rule for only installing ssd
- find ${D} -type f -not -name "*start-stop-daemon*" -exec rm {} \;
- find ${D} -depth -type d -empty -exec rmdir {} \;
-
- # support for buggy init.d scripts that refer to an alternative
- # explicit path to start-stop-daemon
- if [ "${base_sbindir}" != "${sbindir}" ]; then
- mkdir -p ${D}${base_sbindir}
- ln -sf ${sbindir}/start-stop-daemon ${D}${base_sbindir}/start-stop-daemon
- fi
-}
diff --git a/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb b/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb
deleted file mode 100644
index 854df06cb7..0000000000
--- a/meta-oe/recipes-support/stm32flash/stm32flash_0.5.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Open source flash program for STM32 using the ST serial bootloader"
-HOMEPAGE = "https://sourceforge.net/projects/stm32flash/"
-BUGTRACKER = "https://sourceforge.net/p/stm32flash/tickets/"
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/${BPN}"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
-
-do_install() {
- oe_runmake install DESTDIR=${D} PREFIX=${prefix}
-}
-
-SRC_URI[md5sum] = "40f673502949f3bb655d2bcc539d7b6a"
-SRC_URI[sha256sum] = "97aa9422ef02e82f7da9039329e21a437decf972cb3919ad817f70ac9a49e306"
diff --git a/meta-oe/recipes-support/stm32flash/stm32flash_0.7.bb b/meta-oe/recipes-support/stm32flash/stm32flash_0.7.bb
new file mode 100644
index 0000000000..0998aa6778
--- /dev/null
+++ b/meta-oe/recipes-support/stm32flash/stm32flash_0.7.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Open source flash program for STM32 using the ST serial bootloader"
+HOMEPAGE = "https://sourceforge.net/projects/stm32flash/"
+BUGTRACKER = "https://sourceforge.net/p/stm32flash/tickets/"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://gpl-2.0.txt;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} PREFIX=${prefix}
+}
+
+SRC_URI[sha256sum] = "c4c9cd8bec79da63b111d15713ef5cc2cd947deca411d35d6e3065e227dc414a"
diff --git a/meta-oe/recipes-support/switchtec-user/switchtec-user/0001-cli-Fix-format-security-warning.patch b/meta-oe/recipes-support/switchtec-user/switchtec-user/0001-cli-Fix-format-security-warning.patch
new file mode 100644
index 0000000000..ff2743eb68
--- /dev/null
+++ b/meta-oe/recipes-support/switchtec-user/switchtec-user/0001-cli-Fix-format-security-warning.patch
@@ -0,0 +1,27 @@
+From 2d61587f85d1bf57287d12b470afb94c0bf9249d Mon Sep 17 00:00:00 2001
+From: Davide Cavalca <dcavalca@fedoraproject.org>
+Date: Mon, 27 Jun 2022 16:54:35 -0700
+Subject: [PATCH] cli: Fix format security warning
+
+Upstream-Status: Submitted [https://github.com/Microsemi/switchtec-user/pull/316]
+
+---
+ cli/graph.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cli/graph.c b/cli/graph.c
+index 5748914..95609de 100644
+--- a/cli/graph.c
++++ b/cli/graph.c
+@@ -134,7 +134,7 @@ static void draw_status(WINDOW *win, int x_off, int x_cnt, const char *status)
+ mvwprintw(win, 0, 0, " ");
+ for (i = 0; i < x_cnt * 2 + x_off; i++)
+ mvwaddch(win, 1, i, ' ');
+- mvwprintw(win, 1, x_off, status);
++ mvwprintw(win, 1, x_off, "%s", status);
+ wrefresh(win);
+ }
+
+--
+2.39.2
+
diff --git a/meta-oe/recipes-support/switchtec-user/switchtec-user_4.1.bb b/meta-oe/recipes-support/switchtec-user/switchtec-user_4.1.bb
new file mode 100644
index 0000000000..443e5bc493
--- /dev/null
+++ b/meta-oe/recipes-support/switchtec-user/switchtec-user_4.1.bb
@@ -0,0 +1,24 @@
+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 = "762ba441d2c02685f98e5f56e984db033bab279a"
+SRC_URI = " \
+ git://github.com/Microsemi/switchtec-user.git;protocol=https;branch=master \
+ file://0001-cli-Fix-format-security-warning.patch \
+"
+SRC_URI[sha256sum] = "f98c1fe23e1d7a11fb23e8bcf9b563929fc805ea669191a7fd525ad16519f655"
+
+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 68f0387ba9..f2e7a91618 100644
--- a/meta-oe/recipes-support/synergy/synergy_git.bb
+++ b/meta-oe/recipes-support/synergy/synergy_git.bb
@@ -1,35 +1,24 @@
SUMMARY = "Synergy - control multiple computers with one keyboard and mouse"
HOMEPAGE = "http://synergy-project.org"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2ba51ca68e055566aade24662f9eb41"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=54c1fc8d8bb6776ae501acfb1585e9d6"
LICENSE = "GPL-2.0-with-OpenSSL-exception"
SECTION = "x11/utils"
DEPENDS = "virtual/libx11 libxtst libxinerama curl openssl"
-do_unpack_extra[depends] = "unzip-native:do_populate_sysroot"
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "git://github.com/symless/synergy.git;protocol=http"
+SRC_URI = "git://github.com/symless/synergy-core;protocol=https;nobranch=1"
-# Version 1.8.8-stable
-SRCREV ?= "c30301e23424db1125664da17deb8c3aa6aec52d"
-PV = "1.8.8+${SRCPV}"
+# Version 1.10.1-stable
+SRCREV ?= "1b4c076127687aceac931d269e898beaac1cad9f"
+PV = "1.10.1+git${SRCPV}"
S = "${WORKDIR}/git"
-inherit cmake distro_features_check
-
-do_unpack_extra() {
- cd ${S}/ext
- for file in *.zip; do
- fname="${file##*/}"
- unzip $file -d ${fname%.*}
- done
-}
-addtask unpack_extra after do_unpack before do_patch
-
-do_install() {
- install -d ${D}/usr/bin
- install -m 0755 ${S}/bin/synergy* ${D}/usr/bin/
-}
+inherit cmake features_check
+
+EXTRA_OECMAKE += "-DSYNERGY_BUILD_LEGACY_GUI=OFF"
+
+FILES:${PN} += "${datadir}/icons/hicolor"
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-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/configure.ac-add-option-enable-thread-tls-to-manage-.patch b/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
deleted file mode 100644
index 4f8a3d0775..0000000000
--- a/meta-oe/recipes-support/syslog-ng/files/configure.ac-add-option-enable-thread-tls-to-manage-.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-configure.ac: add option --enable-thread-tls to manage thread ssl support
-
-Add option --enable-thread-tls to manage the including of thread
-local storage, so we could explicitly disable it.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- configure.ac | 17 +++++++++++------
- 1 file changed, 11 insertions(+), 6 deletions(-)
-
-Index: syslog-ng-3.15.1/configure.ac
-===================================================================
---- syslog-ng-3.15.1.orig/configure.ac
-+++ syslog-ng-3.15.1/configure.ac
-@@ -190,6 +190,9 @@ AC_ARG_ENABLE(gprof,
- AC_ARG_ENABLE(memtrace,
- [ --enable-memtrace Enable alternative leak debugging code.])
-
-+AC_ARG_ENABLE(thread-tls,
-+ [ --enable-thread-tls Enable Thread Local Storage support.],,enable_thread_tls="no")
-+
- AC_ARG_ENABLE(dynamic-linking,
- [ --enable-dynamic-linking Link everything dynamically.],,enable_dynamic_linking="auto")
-
-@@ -591,12 +594,14 @@ dnl ***************************************************************************
- dnl Is the __thread keyword available?
- dnl ***************************************************************************
-
--AC_LINK_IFELSE([AC_LANG_PROGRAM(
--[[#include <pthread.h>
--__thread int a;
--]],
--[a=0;])],
--[ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Thread Local Storage is supported by the system")])
-+if test "x$enable_thread_tls" != "xno"; then
-+ AC_LINK_IFELSE([AC_LANG_PROGRAM(
-+ [[#include <pthread.h>
-+ __thread int a;
-+ ]],
-+ [a=0;])],
-+ [ac_cv_have_tls=yes; AC_DEFINE_UNQUOTED(HAVE_THREAD_KEYWORD, 1, "Whether Thread Local Storage is supported by the system")])
-+fi
-
- dnl ***************************************************************************
- dnl How to do static linking?
diff --git a/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch b/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
deleted file mode 100644
index 553f4a5171..0000000000
--- a/meta-oe/recipes-support/syslog-ng/files/fix-config-libnet.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Subject: [PATCH] add libnet enable option
-
-Upstream-Status: Pending
-
-This would avoid a implicit auto-detecting result.
-
-Signed-off-by: Ming Liu <ming.liu@windriver.com>
-Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
----
- configure.ac | 27 +++++++++++++++++----------
- 1 files changed, 17 insertions(+), 10 deletions(-)
-
-Index: syslog-ng-3.8.1/configure.ac
-===================================================================
---- syslog-ng-3.8.1.orig/configure.ac
-+++ syslog-ng-3.8.1/configure.ac
-@@ -104,6 +104,9 @@ AC_CONFIG_HEADERS(config.h)
- dnl ***************************************************************************
- dnl Arguments
-
-+AC_ARG_ENABLE(libnet,
-+ [ --enable-libnet Enable libnet support.],, enable_libnet="no")
-+
- AC_ARG_WITH(libnet,
- [ --with-libnet=path use path to libnet-config script],
- ,
-@@ -893,22 +896,26 @@ dnl ************************************
- dnl libnet headers/libraries
- dnl ***************************************************************************
- AC_MSG_CHECKING(for LIBNET)
--if test "x$with_libnet" = "x"; then
-- LIBNET_CONFIG="`which libnet-config`"
--else
-- LIBNET_CONFIG="$with_libnet/libnet-config"
--fi
-+if test "x$enable_libnet" = xyes; then
-+ if test "x$with_libnet" = "x"; then
-+ LIBNET_CONFIG="`which libnet-config`"
-+ else
-+ LIBNET_CONFIG="$with_libnet/libnet-config"
-+ fi
-+
-+ if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
-+ LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
-+ LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
-+ AC_MSG_RESULT(yes)
-+ else
-+ AC_MSG_ERROR([Could not find libnet, and libnet support was explicitly enabled.])
-+ fi
-
--if test -n "$LIBNET_CONFIG" -a -x "$LIBNET_CONFIG"; then
-- LIBNET_CFLAGS="`$LIBNET_CONFIG --defines`"
-- LIBNET_LIBS="`$LIBNET_CONFIG --libs`"
-- AC_MSG_RESULT(yes)
- else
- LIBNET_LIBS=
- AC_MSG_RESULT(no)
- fi
-
--
- if test "x$enable_spoof_source" = "xauto"; then
- AC_MSG_CHECKING(whether to enable spoof source support)
- if test "x$LIBNET_LIBS" != "x"; then
diff --git a/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch b/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
deleted file mode 100644
index 54ecce57e3..0000000000
--- a/meta-oe/recipes-support/syslog-ng/files/fix-invalid-ownership.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-syslog-ng: fix wrong ownership issue
-
-Upstream-Status: Pending
-
-The ownership of build user is preserved for some target files, fixed it by
-adding --no-same-owner option to tar when extracting files.
-
-Signed-off-by: Ming Liu <ming.liu@windriver.com>
----
- scl/Makefile.am | 2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-Index: syslog-ng-3.8.1/scl/Makefile.am
-===================================================================
---- syslog-ng-3.8.1.orig/scl/Makefile.am
-+++ syslog-ng-3.8.1/scl/Makefile.am
-@@ -27,7 +27,7 @@ scl-install-data-local:
- fi; \
- done
- $(mkinstalldirs) $(DESTDIR)/$(scldir)
-- (cd $(srcdir)/scl; tar cf - $(SCL_SUBDIRS)) | (cd $(DESTDIR)/$(scldir) && tar xf -)
-+ (cd $(srcdir)/scl; tar cf - $(SCL_SUBDIRS)) | (cd $(DESTDIR)/$(scldir) && tar xf - --no-same-owner)
- chmod -R u+rwX $(DESTDIR)/$(scldir)
-
- scl-uninstall-local:
diff --git a/meta-oe/recipes-support/syslog-ng/files/rename-PAGESIZE-variables-to-pagesize.patch b/meta-oe/recipes-support/syslog-ng/files/rename-PAGESIZE-variables-to-pagesize.patch
deleted file mode 100644
index 56ffb4a060..0000000000
--- a/meta-oe/recipes-support/syslog-ng/files/rename-PAGESIZE-variables-to-pagesize.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 29f0de401b9df056c7eeb47a025c341654ca579d Mon Sep 17 00:00:00 2001
-From: Andrej Valek <andrej.valek@siemens.com>
-Date: Thu, 14 Jun 2018 08:54:14 +0200
-Subject: [PATCH] secret-storage: rename PAGESIZE variables to pagesize
-
-PAGESIZE is a define in some libc libraries, which conflicts with these
-local variables.
-
-Upstream-Status: Submitted [https://github.com/balabit/syslog-ng/pull/2111]
-
-Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-Signed-off-by: Marko Peter <peter.marko@siemens.com>
----
- lib/secret-storage/nondumpable-allocator.c | 4 ++--
- lib/secret-storage/tests/test_nondumpable_allocator.c | 6 +++---
- lib/secret-storage/tests/test_secret_storage.c | 4 ++--
- 3 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/lib/secret-storage/nondumpable-allocator.c b/lib/secret-storage/nondumpable-allocator.c
-index 07d94fbb0..314ce571f 100644
---- a/lib/secret-storage/nondumpable-allocator.c
-+++ b/lib/secret-storage/nondumpable-allocator.c
-@@ -104,8 +104,8 @@ gpointer
- nondumpable_buffer_alloc(gsize len)
- {
- gsize minimum_size = len + ALLOCATION_HEADER_SIZE;
-- gsize PAGESIZE = sysconf(_SC_PAGE_SIZE);
-- gsize alloc_size = round_to_nearest(minimum_size, PAGESIZE);
-+ gsize pagesize = sysconf(_SC_PAGE_SIZE);
-+ gsize alloc_size = round_to_nearest(minimum_size, pagesize);
-
- Allocation *buffer = _mmap(alloc_size);
- if (!buffer)
-diff --git a/lib/secret-storage/tests/test_nondumpable_allocator.c b/lib/secret-storage/tests/test_nondumpable_allocator.c
-index 6ef5b3035..a20b287ff 100644
---- a/lib/secret-storage/tests/test_nondumpable_allocator.c
-+++ b/lib/secret-storage/tests/test_nondumpable_allocator.c
-@@ -34,10 +34,10 @@ Test(nondumpableallocator, malloc_realloc_free)
- strcpy(buffer, test_string);
- cr_assert_str_eq(buffer, test_string);
-
-- const gsize PAGESIZE = sysconf(_SC_PAGE_SIZE);
-- gpointer buffer_realloc = nondumpable_buffer_realloc(buffer, 2*PAGESIZE);
-+ const gsize pagesize = sysconf(_SC_PAGE_SIZE);
-+ gpointer buffer_realloc = nondumpable_buffer_realloc(buffer, 2*pagesize);
- cr_assert_str_eq(buffer_realloc, test_string);
-- ((gchar *)buffer_realloc)[2*PAGESIZE] = 'a';
-+ ((gchar *)buffer_realloc)[2*pagesize] = 'a';
-
- nondumpable_buffer_free(buffer_realloc);
- }
-diff --git a/lib/secret-storage/tests/test_secret_storage.c b/lib/secret-storage/tests/test_secret_storage.c
-index 5297d4f60..89122cada 100644
---- a/lib/secret-storage/tests/test_secret_storage.c
-+++ b/lib/secret-storage/tests/test_secret_storage.c
-@@ -263,11 +263,11 @@ Test(secretstorage, test_rlimit)
- cr_assert(!getrlimit(RLIMIT_MEMLOCK, &locked_limit));
- locked_limit.rlim_cur = MIN(locked_limit.rlim_max, 64 * 1024);
- cr_assert(!setrlimit(RLIMIT_MEMLOCK, &locked_limit));
-- const gsize PAGESIZE = sysconf(_SC_PAGE_SIZE);
-+ const gsize pagesize = sysconf(_SC_PAGE_SIZE);
-
- gchar *key_fmt = g_strdup("keyXXX");
- int i = 0;
-- int for_limit = locked_limit.rlim_cur/PAGESIZE;
-+ int for_limit = locked_limit.rlim_cur/pagesize;
- for (; i < for_limit; i++)
- {
- sprintf(key_fmt, "key%03d", i);
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf b/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf
new file mode 100644
index 0000000000..32a7953211
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng-tmp.conf
@@ -0,0 +1 @@
+d /var/run/syslog-ng 0755 root root
diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
index 9e910caa18..851bf252b7 100644
--- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
+++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.systemd
@@ -1,11 +1,16 @@
-@version: 3.15
+@version: 3.36
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+#
+# Move to 3.19
+# Only change is to add dns_cache(no) to options to suppress initialization warning.
+#
+# Joe Slater <joe.slater@windriver.com>
# First, set some global options.
-options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+options { chain_hostnames(off); flush_lines(0); use_dns(no); dns_cache(no); use_fqdn(no);
owner("root"); group("adm"); perm(0640); stats_freq(0);
bad_hostname("^gconfd$");
};
diff --git a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
index fb183ee177..70afd0da84 100644
--- a/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
+++ b/meta-oe/recipes-support/syslog-ng/files/syslog-ng.conf.sysvinit
@@ -1,11 +1,16 @@
-@version: 3.15
+@version: 3.36
#
# Syslog-ng configuration file, compatible with default Debian syslogd
# installation. Originally written by anonymous (I can't find his name)
# Revised, and rewrited by me (SZALAY Attila <sasa@debian.org>)
+#
+# Move to 3.19
+# Only change is to add dns_cache(no) to options to suppress initialization warning.
+#
+# Joe Slater <joe.slater@windriver.com>
# First, set some global options.
-options { chain_hostnames(off); flush_lines(0); use_dns(no); use_fqdn(no);
+options { chain_hostnames(off); flush_lines(0); use_dns(no); dns_cache(no); use_fqdn(no);
owner("root"); group("adm"); perm(0640); stats_freq(0);
bad_hostname("^gconfd$");
};
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 39c3f59cee..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,16 +1,17 @@
-From 0be9c08dd3f825e92fa02d4a08d8aff743109e61 Mon Sep 17 00:00:00 2001
-From: Li xin <lixin.fnst@cn.fujitsu.com>
-Date: Wed, 17 Jun 2015 14:46:30 +0900
-Subject: [PATCH] syslog-ng.service: the syslog-ng service can not start
+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>
+
+Update for 3.24.1
+Signed-off-by: Zheng Ruoqin <zhengrq.fnst@cn.fujitsu.com>
---
- contrib/systemd/syslog-ng.service | 5 ++---
- 1 file changed, 2 insertion(+), 3 deletions(-)
+ contrib/systemd/syslog-ng@.service | 4 ++--
+ contrib/systemd/syslog-ng@default | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/contrib/systemd/syslog-ng@.service b/contrib/systemd/syslog-ng@.service
index a28640e..93aec94 100644
@@ -28,19 +29,18 @@ index a28640e..93aec94 100644
StandardError=journal
Restart=on-failure
diff --git a/contrib/systemd/syslog-ng@default b/contrib/systemd/syslog-ng@default
-index 02da288..3a8215d 100644
+index 0ccc2b9..7f08c0e 100644
--- a/contrib/systemd/syslog-ng@default
+++ b/contrib/systemd/syslog-ng@default
@@ -1,5 +1,5 @@
--CONFIG_FILE=/etc/syslog-ng.conf
+ CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf
-PERSIST_FILE=/var/lib/syslog-ng/syslog-ng.persist
--CONTROL_FILE=/var/lib/syslog-ng/syslog-ng.ctl
+-CONTROL_FILE=/var/run/syslog-ng.ctl
-PID_FILE=/var/run/syslog-ng.pid
-+CONFIG_FILE=/etc/syslog-ng/syslog-ng.conf
+PERSIST_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.persist
-+CONTROL_FILE=@LOCALSTATEDIR@/lib/syslog-ng/syslog-ng.ctl
++CONTROL_FILE=@LOCALSTATEDIR@/run/syslog-ng/syslog-ng.ctl
+PID_FILE=@LOCALSTATEDIR@/run/syslog-ng.pid
OTHER_OPTIONS="--enable-core"
-
--
-1.8.4.2
+2.7.4
+
diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc b/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
deleted file mode 100644
index 09c2f51248..0000000000
--- a/meta-oe/recipes-support/syslog-ng/syslog-ng.inc
+++ /dev/null
@@ -1,137 +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 = "GPLv2 & LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=24c0c5cb2c83d9f2ab725481e4df5240"
-
-# util-linux added to get libuuid
-DEPENDS = "libpcre flex glib-2.0 openssl util-linux"
-
-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://configure.ac-add-option-enable-thread-tls-to-manage-.patch \
-"
-
-UPSTREAM_CHECK_URI = "https://github.com/balabit/syslog-ng/releases"
-
-inherit autotools gettext systemd pkgconfig update-rc.d
-
-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} \
- ${CONFIG_TLS} \
-"
-
-CONFIG_TLS = "--enable-thread-tls"
-CONFIG_TLS_arm = "${@oe.utils.conditional( "DEBUG_BUILD", "1", " --disable-thread-tls", " --enable-thread-tls", d )}"
-
-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[libnet] = "--enable-libnet --with-libnet=${STAGING_BINDIR_CROSS},--disable-libnet,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 755 ${WORKDIR}/volatiles.03_syslog-ng ${D}/${sysconfdir}/default/volatiles/03_syslog-ng
- 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 ${WORKDIR}/syslog-ng.conf.systemd ${D}${sysconfdir}/${BPN}/${BPN}.conf
-
- install -d ${D}${systemd_unitdir}/system/
- install -m 0644 ${S}/contrib/systemd/${BPN}@.service ${D}${systemd_unitdir}/system/${BPN}@.service
- install -m 0644 ${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 ${WORKDIR}/syslog-ng.conf.sysvinit ${D}${sysconfdir}/${BPN}/${BPN}.conf
- fi
-}
-
-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 ${PN}-libs-dbg"
-FILES_${PN}-libs = "${libdir}/${BPN}/*.so ${libdir}/libsyslog-ng-*.so*"
-FILES_${PN}-libs-dev = "${libdir}/${BPN}/lib*.la"
-FILES_${PN}-libs-dbg = "${libdir}/${BPN}/.debug"
-FILES_${PN}-staticdev += "${libdir}/${BPN}/libtest/*.a"
-INSANE_SKIP_${PN}-libs = "dev-so"
-RDEPENDS_${PN} += "${PN}-libs"
-
-CONFFILES_${PN} = "${sysconfdir}/${BPN}.conf ${sysconfdir}/scl.conf"
-
-# syslog initscript is handled explicitly because order of
-# update-rc.d and update-alternatives is important
-RDEPENDS_${PN} += " ${@oe.utils.conditional("ONLINE_PACKAGE_MANAGEMENT", "none", "", "update-rc.d", d)}"
-
-RCONFLICTS_${PN} = "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_3.15.1.bb b/meta-oe/recipes-support/syslog-ng/syslog-ng_3.15.1.bb
deleted file mode 100644
index 6d48cc3313..0000000000
--- a/meta-oe/recipes-support/syslog-ng/syslog-ng_3.15.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-require syslog-ng.inc
-
-SRC_URI += " \
- file://fix-config-libnet.patch \
- file://fix-invalid-ownership.patch \
- file://syslog-ng.service-the-syslog-ng-service.patch \
- file://rename-PAGESIZE-variables-to-pagesize.patch \
-"
-
-SRC_URI[md5sum] = "da59a65cd5e293ec0fa3d3ecf4984af9"
-SRC_URI[sha256sum] = "a2dabd28674e2b558e4fb92484ad111d77bf7150070aa28556827130b479f9ef"
diff --git a/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb b/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb
new file mode 100644
index 0000000000..650c7bd5f3
--- /dev/null
+++ b/meta-oe/recipes-support/syslog-ng/syslog-ng_4.0.1.bb
@@ -0,0 +1,146 @@
+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 \
+ file://0001-Fix-buildpaths-warning.patch \
+"
+SRC_URI:append:powerpc64le = " file://0001-plugin.c-workaround-powerpc64le-segfaults-error.patch"
+
+SRC_URI[sha256sum] = "c16eafe447191c079f471846182876b7919d3d789af8c1f9fe55ab14521ceb2c"
+
+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
+
+ # 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/system-config-keyboard/system-config-keyboard_1.4.0.bb b/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
index 26b4412f52..db4c395c56 100644
--- a/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
+++ b/meta-oe/recipes-support/system-config-keyboard/system-config-keyboard_1.4.0.bb
@@ -1,12 +1,12 @@
DESCRIPTION = "a graphical user interface that allows the user to \
change the default keyboard of the system"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
SRC_URI = "https://fedorahosted.org/releases/s/y/${BPN}/${BP}.tar.bz2"
SRC_URI[md5sum] = "c267db0ee7a2131ba418399dc17f9e72"
SRC_URI[sha256sum] = "218c883e4e2bfcc82bfe07e785707b5c2ece28df772f2155fd044b9bb1614284"
-inherit python-dir gettext
+inherit python3-dir gettext
DEPENDS += "intltool-native gettext-native"
EXTRA_OEMAKE = " \
@@ -17,11 +17,11 @@ do_install() {
oe_runmake 'DESTDIR=${D}' install
}
-do_install_append_class-native() {
+do_install:append:class-native() {
rm -rf ${D}/usr
}
-FILES_${PN} += " \
+FILES:${PN} += " \
${libdir}/python${PYTHON_BASEVERSION}/* \
${datadir}/* \
"
diff --git a/meta-oe/recipes-support/tbb/tbb.bb b/meta-oe/recipes-support/tbb/tbb.bb
deleted file mode 100644
index bad9481f7d..0000000000
--- a/meta-oe/recipes-support/tbb/tbb.bb
+++ /dev/null
@@ -1,44 +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 = "http://threadingbuildingblocks.org/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
-PRDATE = "20170412"
-BRANCH = "tbb_2017"
-SRCREV = "a2cfdfe946933cbe38bffe1d8086ae36f06691a3"
-PV = "${PRDATE}+${SRCPV}"
-SRC_URI = "git://github.com/01org/tbb;branch=${BRANCH} \
- file://cross-compile.patch \
- file://0001-mallinfo-is-glibc-specific-API-mark-it-so.patch \
- file://tbb.pc \
-"
-
-S = "${WORKDIR}/git"
-
-COMPILER ?= "gcc"
-COMPILER_toolchain-clang = "clang"
-
-do_compile() {
- oe_runmake compiler=${COMPILER} arch=${HOST_ARCH} runtime=cc4
-}
-
-do_install() {
- install -d ${D}${includedir} ${D}${libdir}/pkgconfig
- rm ${S}/include/tbb/index.html -f
- cp -R --no-dereference --preserve=mode,links -v ${S}/include/tbb ${D}${includedir}
- install -m 0755 ${B}/build/linux_*_release/lib*.so* ${D}${libdir}
- install -m 0644 ${WORKDIR}/tbb.pc ${D}${libdir}/pkgconfig
-}
-
-# 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"
-SECURITY_CFLAGS_append = " -fPIC"
-
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
new file mode 100644
index 0000000000..b34762710d
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb/0001-CMakeLists.txt-exclude-riscv64-riscv32.patch
@@ -0,0 +1,35 @@
+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-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 7e66945fa2..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/0001-mallinfo-is-glibc-specific-API-mark-it-so.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 6b2b136caa68912d77ffe26143cd3da768b9ef80 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 3 Jun 2017 08:39:37 -0700
-Subject: [PATCH] mallinfo() is glibc specific API mark it so
-
-Helps compiling with musl
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- src/tbbmalloc/proxy.cpp | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/tbbmalloc/proxy.cpp b/src/tbbmalloc/proxy.cpp
-index 5ef279d..06c4872 100644
---- a/src/tbbmalloc/proxy.cpp
-+++ b/src/tbbmalloc/proxy.cpp
-@@ -185,6 +185,7 @@ int mallopt(int /*param*/, int /*value*/) __THROW
- return 1;
- }
-
-+#ifdef __GLIBC__
- struct mallinfo mallinfo() __THROW
- {
- struct mallinfo m;
-@@ -192,6 +193,7 @@ struct mallinfo mallinfo() __THROW
-
- return m;
- }
-+#endif
-
- #if __ANDROID__
- // Android doesn't have malloc_usable_size, provide it to be compatible
---
-2.13.0
-
diff --git a/meta-oe/recipes-support/tbb/tbb/cross-compile.patch b/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
deleted file mode 100644
index d54b307ee9..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/cross-compile.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
-Upstream-Status: unsuitable
----
- build/linux.gcc.inc | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-Index: tbb2017_20170118oss/build/linux.gcc.inc
-===================================================================
---- tbb2017_20170118oss.orig/build/linux.gcc.inc
-+++ tbb2017_20170118oss/build/linux.gcc.inc
-@@ -32,8 +32,9 @@ DYLIB_KEY = -shared
- EXPORT_KEY = -Wl,--version-script,
- LIBDL = -ldl
-
--CPLUS = g++
--CONLY = gcc
-+CPLUS = $(CXX)
-+CONLY = $(CC)
-+CPLUS_FLAGS = $(CXXFLAGS)
- LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
- LIBS += -lpthread -lrt
- LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
-Index: tbb2017_20170118oss/build/linux.clang.inc
-===================================================================
---- tbb2017_20170118oss.orig/build/linux.clang.inc
-+++ tbb2017_20170118oss/build/linux.clang.inc
-@@ -31,8 +31,9 @@ DYLIB_KEY = -shared
- EXPORT_KEY = -Wl,--version-script,
- LIBDL = -ldl
-
--CPLUS = clang++
--CONLY = clang
-+CPLUS = $(CXX)
-+CONLY = $(CC)
-+CPLUS_FLAGS = $(CXXFLAGS)
- LIB_LINK_FLAGS = $(DYLIB_KEY) -Wl,-soname=$(BUILDING_LIBRARY)
- LIBS += -lpthread -lrt
- LINK_FLAGS = -Wl,-rpath-link=. -rdynamic
diff --git a/meta-oe/recipes-support/tbb/tbb/tbb.pc b/meta-oe/recipes-support/tbb/tbb/tbb.pc
deleted file mode 100644
index 644b64fbf4..0000000000
--- a/meta-oe/recipes-support/tbb/tbb/tbb.pc
+++ /dev/null
@@ -1,11 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${exec_prefix}/lib
-includedir=${prefix}/include
-
-Name: Threading Building Blocks
-Description: Intel's parallelism library for C++
-URL: http://www.threadingbuildingblocks.org/
-Version: 3.0+r018
-Libs: -L${libdir} -ltbb
-Cflags: -I${includedir}
diff --git a/meta-oe/recipes-support/tbb/tbb_2021.9.0.bb b/meta-oe/recipes-support/tbb/tbb_2021.9.0.bb
new file mode 100644
index 0000000000..028291c965
--- /dev/null
+++ b/meta-oe/recipes-support/tbb/tbb_2021.9.0.bb
@@ -0,0 +1,53 @@
+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 = "a00cc3b8b5fb4d8115e9de56bf713157073ed68c"
+SRC_URI = "git://github.com/oneapi-src/oneTBB.git;protocol=https;branch=${BRANCH} \
+ file://0001-CMakeLists.txt-exclude-riscv64-riscv32.patch \
+"
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# 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).*"
+
+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 b4cdda1327..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 e8be402e20cbdfbd8192a171ac9904d9362103bf Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 31 Aug 2016 01:35:40 -0400
-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 4264191..ac22042 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -189,7 +189,6 @@ distclean: clean
- install: bin/pdata_tools
- $(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.8.1
-
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..f7992b9411
--- /dev/null
+++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-crates.inc
@@ -0,0 +1,306 @@
+# 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.0.1 \
+ crate://crates.io/anyhow/1.0.70 \
+ crate://crates.io/atty/0.2.14 \
+ crate://crates.io/autocfg/1.1.0 \
+ crate://crates.io/base64/0.20.0 \
+ crate://crates.io/bitflags/1.3.2 \
+ crate://crates.io/bytemuck/1.13.1 \
+ crate://crates.io/byteorder/1.4.3 \
+ crate://crates.io/cassowary/0.3.0 \
+ crate://crates.io/cc/1.0.79 \
+ crate://crates.io/cfg-if/1.0.0 \
+ crate://crates.io/clap/3.2.23 \
+ crate://crates.io/clap_lex/0.2.4 \
+ crate://crates.io/console/0.15.5 \
+ crate://crates.io/crc32fast/1.3.2 \
+ crate://crates.io/data-encoding/2.3.3 \
+ crate://crates.io/difflib/0.4.0 \
+ crate://crates.io/downcast/0.11.0 \
+ crate://crates.io/duct/0.13.6 \
+ crate://crates.io/either/1.8.1 \
+ crate://crates.io/encode_unicode/0.3.6 \
+ crate://crates.io/env_logger/0.7.1 \
+ crate://crates.io/errno/0.3.1 \
+ crate://crates.io/errno-dragonfly/0.1.2 \
+ crate://crates.io/exitcode/1.1.2 \
+ crate://crates.io/fastrand/1.9.0 \
+ crate://crates.io/fixedbitset/0.4.2 \
+ crate://crates.io/flate2/1.0.25 \
+ crate://crates.io/float-cmp/0.9.0 \
+ crate://crates.io/fragile/2.0.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-util/0.3.28 \
+ crate://crates.io/getrandom/0.1.16 \
+ crate://crates.io/getrandom/0.2.9 \
+ crate://crates.io/hashbrown/0.12.3 \
+ crate://crates.io/hermit-abi/0.1.19 \
+ crate://crates.io/hermit-abi/0.2.6 \
+ crate://crates.io/hermit-abi/0.3.1 \
+ crate://crates.io/indexmap/1.9.3 \
+ crate://crates.io/indicatif/0.17.3 \
+ crate://crates.io/instant/0.1.12 \
+ crate://crates.io/io-lifetimes/1.0.10 \
+ crate://crates.io/iovec/0.1.4 \
+ crate://crates.io/itertools/0.10.5 \
+ crate://crates.io/jobserver/0.1.26 \
+ crate://crates.io/json/0.12.4 \
+ crate://crates.io/lazy_static/1.4.0 \
+ crate://crates.io/libc/0.2.142 \
+ crate://crates.io/linux-raw-sys/0.3.4 \
+ crate://crates.io/log/0.4.17 \
+ crate://crates.io/memchr/2.5.0 \
+ crate://crates.io/minimal-lexical/0.2.1 \
+ crate://crates.io/miniz_oxide/0.6.2 \
+ crate://crates.io/mockall/0.11.4 \
+ crate://crates.io/mockall_derive/0.11.4 \
+ crate://crates.io/nom/7.1.3 \
+ crate://crates.io/normalize-line-endings/0.3.0 \
+ crate://crates.io/num-derive/0.3.3 \
+ crate://crates.io/num-traits/0.2.15 \
+ crate://crates.io/num_cpus/1.15.0 \
+ crate://crates.io/number_prefix/0.4.0 \
+ crate://crates.io/numtoa/0.1.0 \
+ crate://crates.io/once_cell/1.17.1 \
+ crate://crates.io/os_pipe/1.1.4 \
+ crate://crates.io/os_str_bytes/6.5.0 \
+ 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/portable-atomic/0.3.19 \
+ crate://crates.io/ppv-lite86/0.2.17 \
+ crate://crates.io/predicates/2.1.5 \
+ crate://crates.io/predicates-core/1.0.6 \
+ crate://crates.io/predicates-tree/1.0.9 \
+ crate://crates.io/proc-macro2/1.0.56 \
+ crate://crates.io/quick-xml/0.23.1 \
+ crate://crates.io/quickcheck/0.9.2 \
+ crate://crates.io/quickcheck_macros/0.9.1 \
+ crate://crates.io/quote/1.0.26 \
+ crate://crates.io/rand/0.7.3 \
+ crate://crates.io/rand/0.8.5 \
+ crate://crates.io/rand_chacha/0.2.2 \
+ crate://crates.io/rand_chacha/0.3.1 \
+ crate://crates.io/rand_core/0.5.1 \
+ crate://crates.io/rand_core/0.6.4 \
+ crate://crates.io/rand_hc/0.2.0 \
+ crate://crates.io/rangemap/1.3.0 \
+ crate://crates.io/redox_syscall/0.2.16 \
+ crate://crates.io/redox_syscall/0.3.5 \
+ crate://crates.io/redox_termios/0.1.2 \
+ crate://crates.io/regex/1.8.1 \
+ crate://crates.io/regex-syntax/0.7.1 \
+ crate://crates.io/retain_mut/0.1.7 \
+ crate://crates.io/roaring/0.10.1 \
+ crate://crates.io/rustc_version/0.4.0 \
+ crate://crates.io/rustix/0.37.14 \
+ crate://crates.io/safemem/0.3.3 \
+ crate://crates.io/semver/1.0.17 \
+ crate://crates.io/shared_child/1.0.0 \
+ crate://crates.io/slab/0.4.8 \
+ crate://crates.io/strsim/0.10.0 \
+ crate://crates.io/syn/1.0.109 \
+ crate://crates.io/syn/2.0.15 \
+ crate://crates.io/tempfile/3.5.0 \
+ crate://crates.io/termcolor/1.2.0 \
+ crate://crates.io/termion/1.5.6 \
+ crate://crates.io/termtree/0.4.1 \
+ crate://crates.io/textwrap/0.16.0 \
+ crate://crates.io/thiserror/1.0.40 \
+ crate://crates.io/thiserror-impl/1.0.40 \
+ crate://crates.io/threadpool/1.8.1 \
+ crate://crates.io/tui/0.16.0 \
+ crate://crates.io/unicode-ident/1.0.8 \
+ crate://crates.io/unicode-segmentation/1.10.1 \
+ crate://crates.io/unicode-width/0.1.10 \
+ crate://crates.io/wasi/0.9.0+wasi-snapshot-preview1 \
+ 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-sys/0.45.0 \
+ crate://crates.io/windows-sys/0.48.0 \
+ crate://crates.io/windows-targets/0.42.2 \
+ crate://crates.io/windows-targets/0.48.0 \
+ crate://crates.io/windows_aarch64_gnullvm/0.42.2 \
+ crate://crates.io/windows_aarch64_gnullvm/0.48.0 \
+ crate://crates.io/windows_aarch64_msvc/0.42.2 \
+ crate://crates.io/windows_aarch64_msvc/0.48.0 \
+ crate://crates.io/windows_i686_gnu/0.42.2 \
+ crate://crates.io/windows_i686_gnu/0.48.0 \
+ crate://crates.io/windows_i686_msvc/0.42.2 \
+ crate://crates.io/windows_i686_msvc/0.48.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_gnullvm/0.42.2 \
+ crate://crates.io/windows_x86_64_gnullvm/0.48.0 \
+ crate://crates.io/windows_x86_64_msvc/0.42.2 \
+ crate://crates.io/windows_x86_64_msvc/0.48.0 \
+ crate://crates.io/zstd/0.11.2+zstd.1.5.2 \
+ crate://crates.io/zstd-safe/5.0.2+zstd.1.5.2 \
+ crate://crates.io/zstd-sys/2.0.8+zstd.1.5.5 \
+"
+
+SRC_URI[adler-1.0.2.sha256sum] = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe"
+SRC_URI[aho-corasick-1.0.1.sha256sum] = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04"
+SRC_URI[anyhow-1.0.70.sha256sum] = "7de8ce5e0f9f8d88245311066a578d72b7af3e7088f32783804676302df237e4"
+SRC_URI[atty-0.2.14.sha256sum] = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+SRC_URI[base64-0.20.0.sha256sum] = "0ea22880d78093b0cbe17c89f64a7d457941e65759157ec6cb31a31d652b05e5"
+SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bytemuck-1.13.1.sha256sum] = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea"
+SRC_URI[byteorder-1.4.3.sha256sum] = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
+SRC_URI[cassowary-0.3.0.sha256sum] = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53"
+SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
+SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+SRC_URI[clap-3.2.23.sha256sum] = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5"
+SRC_URI[clap_lex-0.2.4.sha256sum] = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5"
+SRC_URI[console-0.15.5.sha256sum] = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60"
+SRC_URI[crc32fast-1.3.2.sha256sum] = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d"
+SRC_URI[data-encoding-2.3.3.sha256sum] = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb"
+SRC_URI[difflib-0.4.0.sha256sum] = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8"
+SRC_URI[downcast-0.11.0.sha256sum] = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1"
+SRC_URI[duct-0.13.6.sha256sum] = "37ae3fc31835f74c2a7ceda3aeede378b0ae2e74c8f1c36559fcc9ae2a4e7d3e"
+SRC_URI[either-1.8.1.sha256sum] = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91"
+SRC_URI[encode_unicode-0.3.6.sha256sum] = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f"
+SRC_URI[env_logger-0.7.1.sha256sum] = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+SRC_URI[errno-0.3.1.sha256sum] = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a"
+SRC_URI[errno-dragonfly-0.1.2.sha256sum] = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
+SRC_URI[exitcode-1.1.2.sha256sum] = "de853764b47027c2e862a995c34978ffa63c1501f2e15f987ba11bd4f9bba193"
+SRC_URI[fastrand-1.9.0.sha256sum] = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be"
+SRC_URI[fixedbitset-0.4.2.sha256sum] = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
+SRC_URI[flate2-1.0.25.sha256sum] = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841"
+SRC_URI[float-cmp-0.9.0.sha256sum] = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4"
+SRC_URI[fragile-2.0.0.sha256sum] = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa"
+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-util-0.3.28.sha256sum] = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533"
+SRC_URI[getrandom-0.1.16.sha256sum] = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce"
+SRC_URI[getrandom-0.2.9.sha256sum] = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4"
+SRC_URI[hashbrown-0.12.3.sha256sum] = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
+SRC_URI[hermit-abi-0.1.19.sha256sum] = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
+SRC_URI[hermit-abi-0.2.6.sha256sum] = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
+SRC_URI[hermit-abi-0.3.1.sha256sum] = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286"
+SRC_URI[indexmap-1.9.3.sha256sum] = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99"
+SRC_URI[indicatif-0.17.3.sha256sum] = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729"
+SRC_URI[instant-0.1.12.sha256sum] = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
+SRC_URI[io-lifetimes-1.0.10.sha256sum] = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220"
+SRC_URI[iovec-0.1.4.sha256sum] = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
+SRC_URI[itertools-0.10.5.sha256sum] = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473"
+SRC_URI[jobserver-0.1.26.sha256sum] = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2"
+SRC_URI[json-0.12.4.sha256sum] = "078e285eafdfb6c4b434e0d31e8cfcb5115b651496faca5749b88fafd4f23bfd"
+SRC_URI[lazy_static-1.4.0.sha256sum] = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+SRC_URI[libc-0.2.142.sha256sum] = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317"
+SRC_URI[linux-raw-sys-0.3.4.sha256sum] = "36eb31c1778188ae1e64398743890d0877fef36d11521ac60406b42016e8c2cf"
+SRC_URI[log-0.4.17.sha256sum] = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
+SRC_URI[memchr-2.5.0.sha256sum] = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
+SRC_URI[minimal-lexical-0.2.1.sha256sum] = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+SRC_URI[miniz_oxide-0.6.2.sha256sum] = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa"
+SRC_URI[mockall-0.11.4.sha256sum] = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96"
+SRC_URI[mockall_derive-0.11.4.sha256sum] = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb"
+SRC_URI[nom-7.1.3.sha256sum] = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+SRC_URI[normalize-line-endings-0.3.0.sha256sum] = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+SRC_URI[num-derive-0.3.3.sha256sum] = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d"
+SRC_URI[num-traits-0.2.15.sha256sum] = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
+SRC_URI[num_cpus-1.15.0.sha256sum] = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
+SRC_URI[number_prefix-0.4.0.sha256sum] = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3"
+SRC_URI[numtoa-0.1.0.sha256sum] = "b8f8bdf33df195859076e54ab11ee78a1b208382d3a26ec40d142ffc1ecc49ef"
+SRC_URI[once_cell-1.17.1.sha256sum] = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3"
+SRC_URI[os_pipe-1.1.4.sha256sum] = "0ae859aa07428ca9a929b936690f8b12dc5f11dd8c6992a18ca93919f28bc177"
+SRC_URI[os_str_bytes-6.5.0.sha256sum] = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
+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[portable-atomic-0.3.19.sha256sum] = "26f6a7b87c2e435a3241addceeeff740ff8b7e76b74c13bf9acb17fa454ea00b"
+SRC_URI[ppv-lite86-0.2.17.sha256sum] = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+SRC_URI[predicates-2.1.5.sha256sum] = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd"
+SRC_URI[predicates-core-1.0.6.sha256sum] = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174"
+SRC_URI[predicates-tree-1.0.9.sha256sum] = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf"
+SRC_URI[proc-macro2-1.0.56.sha256sum] = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435"
+SRC_URI[quick-xml-0.23.1.sha256sum] = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea"
+SRC_URI[quickcheck-0.9.2.sha256sum] = "a44883e74aa97ad63db83c4bf8ca490f02b2fc02f92575e720c8551e843c945f"
+SRC_URI[quickcheck_macros-0.9.1.sha256sum] = "608c156fd8e97febc07dc9c2e2c80bf74cfc6ef26893eae3daf8bc2bc94a4b7f"
+SRC_URI[quote-1.0.26.sha256sum] = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc"
+SRC_URI[rand-0.7.3.sha256sum] = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+SRC_URI[rand-0.8.5.sha256sum] = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+SRC_URI[rand_chacha-0.2.2.sha256sum] = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+SRC_URI[rand_chacha-0.3.1.sha256sum] = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+SRC_URI[rand_core-0.5.1.sha256sum] = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+SRC_URI[rand_core-0.6.4.sha256sum] = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+SRC_URI[rand_hc-0.2.0.sha256sum] = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+SRC_URI[rangemap-1.3.0.sha256sum] = "8b9283c6b06096b47afc7109834fdedab891175bb5241ee5d4f7d2546549f263"
+SRC_URI[redox_syscall-0.2.16.sha256sum] = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
+SRC_URI[redox_syscall-0.3.5.sha256sum] = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29"
+SRC_URI[redox_termios-0.1.2.sha256sum] = "8440d8acb4fd3d277125b4bd01a6f38aee8d814b3b5fc09b3f2b825d37d3fe8f"
+SRC_URI[regex-1.8.1.sha256sum] = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370"
+SRC_URI[regex-syntax-0.7.1.sha256sum] = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
+SRC_URI[retain_mut-0.1.7.sha256sum] = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086"
+SRC_URI[roaring-0.10.1.sha256sum] = "ef0fb5e826a8bde011ecae6a8539dd333884335c57ff0f003fbe27c25bbe8f71"
+SRC_URI[rustc_version-0.4.0.sha256sum] = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366"
+SRC_URI[rustix-0.37.14.sha256sum] = "d9b864d3c18a5785a05953adeed93e2dca37ed30f18e69bba9f30079d51f363f"
+SRC_URI[safemem-0.3.3.sha256sum] = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+SRC_URI[semver-1.0.17.sha256sum] = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed"
+SRC_URI[shared_child-1.0.0.sha256sum] = "b0d94659ad3c2137fef23ae75b03d5241d633f8acded53d672decfa0e6e0caef"
+SRC_URI[slab-0.4.8.sha256sum] = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d"
+SRC_URI[strsim-0.10.0.sha256sum] = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+SRC_URI[syn-1.0.109.sha256sum] = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+SRC_URI[syn-2.0.15.sha256sum] = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822"
+SRC_URI[tempfile-3.5.0.sha256sum] = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998"
+SRC_URI[termcolor-1.2.0.sha256sum] = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
+SRC_URI[termion-1.5.6.sha256sum] = "077185e2eac69c3f8379a4298e1e07cd36beb962290d4a51199acf0fdc10607e"
+SRC_URI[termtree-0.4.1.sha256sum] = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76"
+SRC_URI[textwrap-0.16.0.sha256sum] = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d"
+SRC_URI[thiserror-1.0.40.sha256sum] = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac"
+SRC_URI[thiserror-impl-1.0.40.sha256sum] = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f"
+SRC_URI[threadpool-1.8.1.sha256sum] = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+SRC_URI[tui-0.16.0.sha256sum] = "39c8ce4e27049eed97cfa363a5048b09d995e209994634a0efc26a14ab6c0c23"
+SRC_URI[unicode-ident-1.0.8.sha256sum] = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
+SRC_URI[unicode-segmentation-1.10.1.sha256sum] = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36"
+SRC_URI[unicode-width-0.1.10.sha256sum] = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
+SRC_URI[wasi-0.9.0+wasi-snapshot-preview1.sha256sum] = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+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-sys-0.45.0.sha256sum] = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
+SRC_URI[windows-sys-0.48.0.sha256sum] = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+SRC_URI[windows-targets-0.42.2.sha256sum] = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071"
+SRC_URI[windows-targets-0.48.0.sha256sum] = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5"
+SRC_URI[windows_aarch64_gnullvm-0.42.2.sha256sum] = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8"
+SRC_URI[windows_aarch64_gnullvm-0.48.0.sha256sum] = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc"
+SRC_URI[windows_aarch64_msvc-0.42.2.sha256sum] = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43"
+SRC_URI[windows_aarch64_msvc-0.48.0.sha256sum] = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3"
+SRC_URI[windows_i686_gnu-0.42.2.sha256sum] = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f"
+SRC_URI[windows_i686_gnu-0.48.0.sha256sum] = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241"
+SRC_URI[windows_i686_msvc-0.42.2.sha256sum] = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060"
+SRC_URI[windows_i686_msvc-0.48.0.sha256sum] = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00"
+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_gnullvm-0.42.2.sha256sum] = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3"
+SRC_URI[windows_x86_64_gnullvm-0.48.0.sha256sum] = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953"
+SRC_URI[windows_x86_64_msvc-0.42.2.sha256sum] = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0"
+SRC_URI[windows_x86_64_msvc-0.48.0.sha256sum] = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
+SRC_URI[zstd-0.11.2+zstd.1.5.2.sha256sum] = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4"
+SRC_URI[zstd-safe-5.0.2+zstd.1.5.2.sha256sum] = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db"
+SRC_URI[zstd-sys-2.0.8+zstd.1.5.5.sha256sum] = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c"
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..46e826cabc
--- /dev/null
+++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools-git-crates.inc
@@ -0,0 +1,10 @@
+SRC_URI += "\
+ git://github.com/zowens/crc32c;protocol=https;nobranch=1;name=crc32c;destsuffix=crc32c;type=git-dependency \
+ git://github.com/jthornber/rio;protocol=https;nobranch=1;name=rio;destsuffix=rio;type=git-dependency \
+"
+
+SRCREV_FORMAT .= "_crc32c"
+SRCREV_crc32c = "3779fe88fea034922f808586b2564fbcab31efdc"
+
+SRCREV_FORMAT .= "_rio"
+SRCREV_rio = "2979a720f671e836302c01546f9cc9f7988610c8"
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch
new file mode 100644
index 0000000000..a9f1c8601d
--- /dev/null
+++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools/0001-Replace-LFS-functions.patch
@@ -0,0 +1,91 @@
+From 289105253fbf342fd22cbcde2ccc1127f732ab09 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 7 Jul 2023 14:21:17 -0700
+Subject: [PATCH] Replace LFS functions
+
+The original functions are able to consume 64bit off_t now a days
+therefore *64 equivalents can be replaced, as a side it fixes build with
+musl.
+
+Upstream-Status: Submitted [https://github.com/jthornber/thin-provisioning-tools/pull/267]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/file_utils.rs | 10 +++++-----
+ src/io_engine/base.rs | 4 ++--
+ src/thin/trim.rs | 2 +-
+ 3 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/src/file_utils.rs b/src/file_utils.rs
+index 0ca3c0f..d2b3ee9 100644
+--- a/src/file_utils.rs
++++ b/src/file_utils.rs
+@@ -11,18 +11,18 @@ fn test_bit(mode: u32, flag: u32) -> bool {
+ (mode & libc::S_IFMT) == flag
+ }
+
+-fn is_file_or_blk_(info: &libc::stat64) -> bool {
++fn is_file_or_blk_(info: &libc::stat) -> bool {
+ test_bit(info.st_mode, libc::S_IFBLK) || test_bit(info.st_mode, libc::S_IFREG)
+ }
+
+ // wrapper of libc::stat64
+-fn libc_stat64(path: &Path) -> io::Result<libc::stat64> {
++fn libc_stat64(path: &Path) -> io::Result<libc::stat> {
+ let c_path = std::ffi::CString::new(path.as_os_str().as_bytes())
+ .map_err(|e| io::Error::new(io::ErrorKind::InvalidInput, e.to_string()))?;
+
+ unsafe {
+- let mut st: libc::stat64 = std::mem::zeroed();
+- let r = libc::stat64(c_path.as_ptr(), &mut st);
++ let mut st: libc::stat = std::mem::zeroed();
++ let r = libc::stat(c_path.as_ptr(), &mut st);
+ if r == 0 {
+ Ok(st)
+ } else {
+@@ -56,7 +56,7 @@ fn get_device_size<P: AsRef<Path>>(path: P) -> io::Result<u64> {
+ let fd = file.as_raw_fd();
+ let mut cap = 0u64;
+ unsafe {
+- if libc::ioctl(fd, BLKGETSIZE64 as libc::c_ulong, &mut cap) == 0 {
++ if libc::ioctl(fd, BLKGETSIZE64 as libc::c_int, &mut cap) == 0 {
+ Ok(cap)
+ } else {
+ Err(io::Error::last_os_error())
+diff --git a/src/io_engine/base.rs b/src/io_engine/base.rs
+index 725ebf7..db6209f 100644
+--- a/src/io_engine/base.rs
++++ b/src/io_engine/base.rs
+@@ -115,7 +115,7 @@ pub trait VectoredIo {
+
+ fn read_vectored_at(file: &File, bufs: &mut [libc::iovec], pos: u64) -> io::Result<usize> {
+ let ptr = bufs.as_ptr();
+- let ret = match unsafe { libc::preadv64(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
++ let ret = match unsafe { libc::preadv(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
+ {
+ -1 => return Err(io::Error::last_os_error()),
+ n => n,
+@@ -125,7 +125,7 @@ fn read_vectored_at(file: &File, bufs: &mut [libc::iovec], pos: u64) -> io::Resu
+
+ fn write_vectored_at(file: &File, bufs: &[libc::iovec], pos: u64) -> io::Result<usize> {
+ let ptr = bufs.as_ptr();
+- let ret = match unsafe { libc::pwritev64(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
++ let ret = match unsafe { libc::pwritev(file.as_raw_fd(), ptr, bufs.len() as i32, pos as i64) }
+ {
+ -1 => return Err(io::Error::last_os_error()),
+ n => n,
+diff --git a/src/thin/trim.rs b/src/thin/trim.rs
+index 3d938ca..91a53dd 100644
+--- a/src/thin/trim.rs
++++ b/src/thin/trim.rs
+@@ -135,7 +135,7 @@ impl<'a> Iterator for RangeIterator<'a> {
+ const BLKDISCARD: u32 = 0x1277;
+ fn ioctl_blkdiscard(fd: i32, range: &[u64; 2]) -> std::io::Result<()> {
+ unsafe {
+- if libc::ioctl(fd, BLKDISCARD as libc::c_ulong, range) == 0 {
++ if libc::ioctl(fd, BLKDISCARD as libc::c_int, range) == 0 {
+ Ok(())
+ } else {
+ Err(std::io::Error::last_os_error())
+--
+2.41.0
+
diff --git a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb
deleted file mode 100644
index 4a692dcf69..0000000000
--- a/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_0.6.3.bb
+++ /dev/null
@@ -1,20 +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 = "GPLv3"
-SECTION = "devel"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/jthornber/thin-provisioning-tools \
- file://0001-do-not-strip-pdata_tools-at-do_install.patch \
-"
-
-SRCREV = "49bfc12e9c7956c1ac134b24afbe1a6a602ce7d5"
-
-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.4.bb b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.4.bb
new file mode 100644
index 0000000000..e79f62ff6e
--- /dev/null
+++ b/meta-oe/recipes-support/thin-provisioning-tools/thin-provisioning-tools_1.0.4.bb
@@ -0,0 +1,47 @@
+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 \
+ "
+SRC_URI:append:libc-musl = " file://0001-Replace-LFS-functions.patch"
+
+SRCREV = "3baa3fa3a3e4f714e6170a4152b186f0fa1d76e1"
+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() {
+ 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}${bindir}/$tool
+ done
+}
diff --git a/meta-oe/recipes-support/tio/tio_2.6.bb b/meta-oe/recipes-support/tio/tio_2.6.bb
new file mode 100644
index 0000000000..1a83a2e420
--- /dev/null
+++ b/meta-oe/recipes-support/tio/tio_2.6.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;nobranch=1"
+SRCREV = "88ef473362c5a1ff0dcd389fd5b1d4d6bf202472"
+
+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/tokyocabinet/tokyocabinet/0001-configure-Fix-check-functions-for-AC_CHECK_LIB-test.patch b/meta-oe/recipes-support/tokyocabinet/tokyocabinet/0001-configure-Fix-check-functions-for-AC_CHECK_LIB-test.patch
new file mode 100644
index 0000000000..001fa9dd75
--- /dev/null
+++ b/meta-oe/recipes-support/tokyocabinet/tokyocabinet/0001-configure-Fix-check-functions-for-AC_CHECK_LIB-test.patch
@@ -0,0 +1,58 @@
+From e192da006dd9b0ecbbef540a3e86b65ff88e89e2 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 13:28:29 -0700
+Subject: [PATCH] configure: Fix check functions for AC_CHECK_LIB test
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.in | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 5b24947..0542490 100644
+--- a/configure.in
++++ b/configure.in
+@@ -247,30 +247,30 @@ test -n "$LDFLAGS" && MYLDFLAGS="$LDFLAGS $MYLDFLAGS"
+ AC_C_BIGENDIAN(MYCPPFLAGS="$MYCPPFLAGS -D_MYBIGEND")
+
+ # Underlying libraries
+-AC_CHECK_LIB(c, main)
+-AC_CHECK_LIB(m, main)
++AC_CHECK_LIB(c, printf)
++AC_CHECK_LIB(m, pow)
+ if test "$enable_pthread" != "no"
+ then
+- AC_CHECK_LIB(pthread, main)
+- AC_CHECK_LIB(rt, main)
++ AC_CHECK_LIB(pthread, pthread_create)
++ AC_CHECK_LIB(rt, clock_gettime)
+ fi
+ if test "$enable_zlib" != "no"
+ then
+- AC_CHECK_LIB(z, main)
++ AC_CHECK_LIB(z, inflate)
+ fi
+ if test "$enable_bzip" != "no"
+ then
+- AC_CHECK_LIB(bz2, main)
++ AC_CHECK_LIB(bz2, BZ2_bzCompressInit)
+ fi
+ if test "$enable_exlzma" = "yes"
+ then
+- AC_CHECK_LIB(lzma, main)
++ AC_CHECK_LIB(lzma, lzma_easy_buffer_encode)
+ fi
+ if test "$enable_exlzo" = "yes"
+ then
+- AC_CHECK_LIB(lzo2, main)
++ AC_CHECK_LIB(lzo2, lzo1x_1_compress)
+ fi
+-AC_CHECK_LIB(tokyocabinet, main, AC_MSG_WARN([old version of Tokyo Cabinet was detected]))
++AC_CHECK_LIB(tokyocabinet, tcbdbopen, AC_MSG_WARN([old version of Tokyo Cabinet was detected]))
+
+ # Necessary headers
+ AC_CHECK_HEADER(stdlib.h, true, AC_MSG_ERROR([stdlib.h is required]))
+--
+2.37.3
+
diff --git a/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb b/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb
index 9f75cf047d..ae00ff4e55 100644
--- a/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb
+++ b/meta-oe/recipes-support/tokyocabinet/tokyocabinet_1.4.48.bb
@@ -12,11 +12,12 @@ Records are organized in hash table, B+ tree, or fixed-length array."
HOMEPAGE = "http://fallabs.com/tokyocabinet/"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
SRC_URI = "http://fallabs.com/tokyocabinet/${BP}.tar.gz \
file://remove-hard-coded-include-and-lib-paths.patch \
+ file://0001-configure-Fix-check-functions-for-AC_CHECK_LIB-test.patch \
"
SRC_URI[md5sum] = "fd03df6965f8f56dd5b8518ca43b4f5e"
diff --git a/meta-oe/recipes-support/toscoterm/toscoterm_git.bb b/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
index 879b67b7f5..b9f26051a1 100644
--- a/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
+++ b/meta-oe/recipes-support/toscoterm/toscoterm_git.bb
@@ -2,16 +2,16 @@ SUMMARY = "A very small and simple terminal emulator"
SECTION = "x11/applications"
DEPENDS = "vte9"
-LICENSE = "GPLv3"
+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"
+SRC_URI = "git://github.com/OSSystems/toscoterm.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
-inherit distro_features_check gitpkgv pkgconfig
+inherit features_check gitpkgv pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
@@ -26,4 +26,4 @@ do_install() {
oe_runmake PREFIX="${prefix}" DESTDIR="${D}" install
}
-RDEPENDS_${PN}_append_libc-glibc = " glibc-gconv-ibm437"
+RDEPENDS:${PN}:append:libc-glibc = " glibc-gconv-ibm437"
diff --git a/meta-oe/recipes-support/tree/tree_1.7.0.bb b/meta-oe/recipes-support/tree/tree_1.7.0.bb
deleted file mode 100644
index 2e8ebdb4d9..0000000000
--- a/meta-oe/recipes-support/tree/tree_1.7.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A recursive directory listing command"
-HOMEPAGE = "http://mama.indstate.edu/users/ice/tree/"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=393a5ca445f6965873eca0259a17f833"
-
-SRC_URI = "ftp://mama.indstate.edu/linux/${BPN}/${BP}.tgz"
-SRC_URI[md5sum] = "abe3e03e469c542d8e157cdd93f4d8a6"
-SRC_URI[sha256sum] = "6957c20e82561ac4231638996e74f4cfa4e6faabc5a2f511f0b4e3940e8f7b12"
-
-# 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.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/udisks/0001-Make-udev-rules-directory-configurable.patch b/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch
deleted file mode 100644
index 2823c54f15..0000000000
--- a/meta-oe/recipes-support/udisks/udisks/0001-Make-udev-rules-directory-configurable.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From a6eab413f274376cf703a608e2866118291a6185 Mon Sep 17 00:00:00 2001
-From: Amarnath Valluri <amarnath.valluri@intel.com>
-Date: Thu, 9 Feb 2017 11:02:53 +0200
-Subject: [PATCH] Make udev rules directory configurable.
-
-udev rules directory can be configurable via undevrulesdir variable. And use
-libdir, sbindir for installing librares and binaries.
-
-Upstream-Status: Inappropriate[Embedded specific]
-
-Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
-
----
- configure.ac | 14 +++-----------
- data/Makefile.am | 1 -
- src/probers/Makefile.am | 2 +-
- tools/Makefile.am | 2 +-
- 4 files changed, 5 insertions(+), 14 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8c4e4c2..a143397 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -227,15 +227,8 @@ if test "x$GCC" = "xyes"; then
- LDFLAGS="-Wl,--as-needed $LDFLAGS"
- fi
-
--if test "$prefix" = "/usr" -o "$prefix" = "/usr/local" ; then
-- slashlibdir=/lib
-- slashsbindir=/sbin
--else
-- slashlibdir=$prefix/lib
-- slashsbindir=$prefix/sbin
--fi
--AC_SUBST(slashlibdir)
--AC_SUBST(slashsbindir)
-+udevrulesdir=/lib/udev/udev.d
-+AC_SUBST(udevrulesdir)
-
- # *************
- # Remote Access
-@@ -299,8 +292,7 @@ echo "
- sysconfdir: ${sysconfdir}
- localstatedir: ${localstatedir}
- docdir: ${docdir}
-- slashlibdir: ${slashlibdir}
-- slashsbindir: ${slashsbindir}
-+ udevrulesdir: ${udevrulesdir}
- systemdsystemunitdir: ${systemdsystemunitdir}
-
- compiler: ${CC}
-diff --git a/data/Makefile.am b/data/Makefile.am
-index 08af5f4..9329186 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -34,7 +34,6 @@ $(systemdservice_DATA): $(systemdservice_in_files) Makefile
- @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
- endif
-
--udevrulesdir = $(slashlibdir)/udev/rules.d
- udevrules_DATA = 80-udisks.rules
-
- pkgconfigdir = $(datadir)/pkgconfig
-diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am
-index 01c693b..6a0361a 100644
---- a/src/probers/Makefile.am
-+++ b/src/probers/Makefile.am
-@@ -20,7 +20,7 @@ INCLUDES = \
- # TODO: ideally move most of this to udev and/or util-linux
- #
-
--udevhelperdir = $(slashlibdir)/udev
-+udevhelperdir = $(libdir)/udev
- udevhelper_PROGRAMS = udisks-part-id \
- udisks-probe-sas-expander \
- $(NULL)
-diff --git a/tools/Makefile.am b/tools/Makefile.am
-index 18325f7..0aaec11 100644
---- a/tools/Makefile.am
-+++ b/tools/Makefile.am
-@@ -54,7 +54,7 @@ udisks_LDADD = \
- $(DBUS_GLIB_LIBS) \
- $(POLKIT_DBUS_LIBS)
-
--slashsbin_PROGRAMS = umount.udisks
-+sbin_PROGRAMS = umount.udisks
-
- umount_udisks_SOURCES = umount-udisks.c
- umount_udisks_LDADD = $(DBUS_GLIB_LIBS) $(POLKIT_DBUS_LIBS)
diff --git a/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch b/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
deleted file mode 100644
index 8b4f44124b..0000000000
--- a/meta-oe/recipes-support/udisks/udisks/0001-fix-build-with-newer-glibc-versions.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 054ad6a06cfac7c3d172d53cd901204079a53ec3 Mon Sep 17 00:00:00 2001
-From: Alexandre Rostovtsev <tetromino@gentoo.org>
-Date: Fri, 29 May 2015 21:09:39 -0400
-Subject: [PATCH] fix build with newer glibc versions
-
-https://bugs.freedesktop.org/show_bug.cgi?id=90778
-
-Upstream-Status: Applied [1]
-
-[1] http://cgit.freedesktop.org/udisks/commit/?h=udisks1&id=9829152b12a8924d2e091a00133ed1a3a7ba75c0
-
----
- src/helpers/job-drive-detach.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/helpers/job-drive-detach.c b/src/helpers/job-drive-detach.c
-index eeafcab..d122a1f 100644
---- a/src/helpers/job-drive-detach.c
-+++ b/src/helpers/job-drive-detach.c
-@@ -18,6 +18,7 @@
- *
- */
-
-+#include <sys/stat.h>
- #include <stdio.h>
- #include <string.h>
- #include <errno.h>
diff --git a/meta-oe/recipes-support/udisks/udisks/optional-depends.patch b/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
deleted file mode 100644
index a890954fc3..0000000000
--- a/meta-oe/recipes-support/udisks/udisks/optional-depends.patch
+++ /dev/null
@@ -1,498 +0,0 @@
-From e8b3fbfa3d6a11eee25db2dc0f31f439aaf0b65a Mon Sep 17 00:00:00 2001
-From: Gustavo Sverzut Barbieri <barbieri@profusion.mobi>
-Date: Thu, 26 May 2011 17:30:04 -0300
-Subject: [PATCH] Allow disabling atasmart, lvm2 and devicemapper support.
-
-https://bugs.freedesktop.org/show_bug.cgi?id=37647
-
----
- configure.ac | 53 +++++++++++++++++++++++++++++++++++++++----------
- src/adapter-private.h | 1 -
- src/adapter.c | 1 -
- src/daemon.c | 4 ++++
- src/device-private.c | 2 +-
- src/device-private.h | 5 ++---
- src/device.c | 23 +++++++++++++++++----
- src/expander-private.h | 1 -
- src/expander.c | 1 -
- src/helpers/Makefile.am | 20 +++++++++++++------
- src/helpers/partutil.c | 3 ++-
- src/port-private.h | 1 -
- src/probers/Makefile.am | 8 ++++++--
- tools/udisks.c | 10 ++++++++--
- 14 files changed, 99 insertions(+), 34 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9454423..8c4e4c2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -155,13 +155,33 @@ PKG_CHECK_MODULES(POLKIT_GOBJECT_1, [polkit-gobject-1 >= 0.97])
- AC_SUBST(POLKIT_GOBJECT_1_CFLAGS)
- AC_SUBST(POLKIT_GOBJECT_1_LIBS)
-
--PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8])
--AC_SUBST(LIBPARTED_CFLAGS)
--AC_SUBST(LIBPARTED_LIBS)
--
--PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02])
--AC_SUBST(DEVMAPPER_CFLAGS)
--AC_SUBST(DEVMAPPER_LIBS)
-+have_parted=no
-+AC_ARG_ENABLE(parted, AS_HELP_STRING([--disable-parted], [disable disk partitioning]))
-+if test "x$enable_parted" != "xno"; then
-+ PKG_CHECK_MODULES(LIBPARTED, [libparted >= 1.8.8],
-+ [AC_DEFINE(USE_PARTED, 1, [Define if parted should be used]) have_parted=yes],
-+ have_parted=no)
-+ AC_SUBST(LIBPARTED_CFLAGS)
-+ AC_SUBST(LIBPARTED_LIBS)
-+ if test "x$have_parted" = xno -a "x$enable_parted" = xyes; then
-+ AC_MSG_ERROR([parted support requested but libraries not found])
-+ fi
-+fi
-+AM_CONDITIONAL(HAVE_PARTED, [test "$have_parted" = "yes"])
-+
-+have_devmapper=no
-+AC_ARG_ENABLE(devmapper, AS_HELP_STRING([--disable-devmapper], [disable device mapper support]))
-+if test "x$enable_devmapper" != "xno"; then
-+ PKG_CHECK_MODULES(DEVMAPPER, [devmapper >= 1.02],
-+ [AC_DEFINE(HAVE_DEVMAPPER, 1, [Define if device mapper is available]) have_devmapper=yes],
-+ have_devmapper=no)
-+ AC_SUBST(DEVMAPPER_CFLAGS)
-+ AC_SUBST(DEVMAPPER_LIBS)
-+ if test "x$have_devmapper" = xno -a "x$enable_devmapper" = xyes; then
-+ AC_MSG_ERROR([devmapper support requested but libraries not found])
-+ fi
-+fi
-+AM_CONDITIONAL(HAVE_DEVMAPPER, [test "$have_devmapper" = "yes"])
-
- have_lvm2=no
- AC_ARG_ENABLE(lvm2, AS_HELP_STRING([--enable-lvm2], [enable LVM2 support]))
-@@ -185,9 +205,19 @@ if test "x$enable_dmmp" = "xyes"; then
- fi
- AM_CONDITIONAL(HAVE_DMMP, [test "$have_dmmp" = "yes"])
-
--PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14])
--AC_SUBST(LIBATASMART_CFLAGS)
--AC_SUBST(LIBATASMART_LIBS)
-+have_libatasmart=no
-+AC_ARG_ENABLE(libatasmart, AS_HELP_STRING([--disable-libatasmart], [disable libatasmart support]))
-+if test "x$enable_libatasmart" != "xno"; then
-+ PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.14],
-+ [AC_DEFINE(HAVE_LIBATASMART, 1, [Define if libatasmart is available]) have_libatasmart=yes],
-+ have_libatasmart=no)
-+ AC_SUBST(LIBATASMART_CFLAGS)
-+ AC_SUBST(LIBATASMART_LIBS)
-+ if test "x$have_libatasmart" = xno -a "x$enable_libatasmart" = xyes; then
-+ AC_MSG_ERROR([libatasmart support requested but libraries not found])
-+ fi
-+fi
-+AM_CONDITIONAL(HAVE_LIBATASMART, [test "$have_libatasmart" = "yes"])
-
- PKG_CHECK_MODULES(LIBUDEV, [libudev >= 143])
- AC_SUBST(LIBUDEV_CFLAGS)
-@@ -278,9 +308,12 @@ echo "
- cppflags: ${CPPFLAGS}
- xsltproc: ${XSLTPROC}
-
-+ Parted support: ${have_parted}
-+ Device Mapper support: ${have_devmapper}
- LVM2 support: ${have_lvm2}
- dm-multipath: ${have_dmmp}
- Remote Access: ${remote_access}
-+ libatasmart support: ${have_libatasmart}
-
- Maintainer mode: ${USE_MAINTAINER_MODE}
- Profiling: ${enable_profiling}
-diff --git a/src/adapter-private.h b/src/adapter-private.h
-index 3409e21..ef584e3 100644
---- a/src/adapter-private.h
-+++ b/src/adapter-private.h
-@@ -23,7 +23,6 @@
-
- #include <dbus/dbus-glib.h>
- #include <gudev/gudev.h>
--#include <atasmart.h>
-
- #include "types.h"
-
-diff --git a/src/adapter.c b/src/adapter.c
-index 65e05b0..45db8c8 100644
---- a/src/adapter.c
-+++ b/src/adapter.c
-@@ -30,7 +30,6 @@
- #include <dbus/dbus-glib.h>
- #include <dbus/dbus-glib-lowlevel.h>
- #include <gudev/gudev.h>
--#include <atasmart.h>
-
- #include "daemon.h"
- #include "adapter.h"
-diff --git a/src/daemon.c b/src/daemon.c
-index fafcf9a..14e952f 100644
---- a/src/daemon.c
-+++ b/src/daemon.c
-@@ -1748,6 +1748,7 @@ mdstat_changed_event (GIOChannel *channel,
- return TRUE;
- }
-
-+#ifdef HAVE_LIBATASMART
- static gboolean
- refresh_ata_smart_data (Daemon *daemon)
- {
-@@ -1776,6 +1777,7 @@ refresh_ata_smart_data (Daemon *daemon)
-
- return FALSE;
- }
-+#endif
-
- static gboolean
- register_disks_daemon (Daemon *daemon)
-@@ -1987,12 +1989,14 @@ daemon_new (void)
- mount_file_clean_stale (l);
- g_list_free (l);
-
-+#ifdef HAVE_LIBATASMART
- /* set up timer for refreshing ATA SMART data - we don't want to refresh immediately because
- * when adding a device we also do this...
- */
- daemon->priv->ata_smart_refresh_timer_id = g_timeout_add_seconds (ATA_SMART_REFRESH_INTERVAL_SECONDS,
- (GSourceFunc) refresh_ata_smart_data,
- daemon);
-+#endif
-
- PROFILE ("daemon_new(): end");
- return daemon;
-diff --git a/src/device-private.c b/src/device-private.c
-index 45418ce..fb1d959 100644
---- a/src/device-private.c
-+++ b/src/device-private.c
-@@ -1390,7 +1390,7 @@ device_set_drive_ata_smart_time_collected (Device *device,
-
- void
- device_set_drive_ata_smart_status (Device *device,
-- SkSmartOverall value)
-+ guint value)
- {
- if (G_UNLIKELY (device->priv->drive_ata_smart_status != value))
- {
-diff --git a/src/device-private.h b/src/device-private.h
-index 32a9bd0..8c57c13 100644
---- a/src/device-private.h
-+++ b/src/device-private.h
-@@ -23,7 +23,6 @@
-
- #include <dbus/dbus-glib.h>
- #include <gudev/gudev.h>
--#include <atasmart.h>
-
- #include "types.h"
-
-@@ -228,7 +227,7 @@ struct DevicePrivate
-
- gboolean drive_ata_smart_is_available;
- guint64 drive_ata_smart_time_collected;
-- SkSmartOverall drive_ata_smart_status;
-+ guint drive_ata_smart_status;
- void *drive_ata_smart_blob;
- gsize drive_ata_smart_blob_size;
-
-@@ -396,7 +395,7 @@ void device_set_holders_objpath (Device *device, GStrv value);
-
- void device_set_drive_ata_smart_is_available (Device *device, gboolean value);
- void device_set_drive_ata_smart_time_collected (Device *device, guint64 value);
--void device_set_drive_ata_smart_status (Device *device, SkSmartOverall value);
-+void device_set_drive_ata_smart_status (Device *device, guint value);
- void device_set_drive_ata_smart_blob_steal (Device *device, gchar *blob, gsize blob_size);
-
- G_END_DECLS
-diff --git a/src/device.c b/src/device.c
-index 2ae7f38..d73f9d6 100644
---- a/src/device.c
-+++ b/src/device.c
-@@ -50,7 +50,9 @@
- #include <dbus/dbus-glib.h>
- #include <dbus/dbus-glib-lowlevel.h>
- #include <gudev/gudev.h>
-+#ifdef HAVE_LIBATASMART
- #include <atasmart.h>
-+#endif
-
- #include "daemon.h"
- #include "device.h"
-@@ -664,10 +666,14 @@ get_property (GObject *object,
- case PROP_DRIVE_ATA_SMART_STATUS:
- {
- const gchar *status;
-- if (device->priv->drive_ata_smart_status == (SkSmartOverall) - 1)
-+#ifdef HAVE_LIBATASMART
-+ if (device->priv->drive_ata_smart_status == (guint) - 1)
- status = "";
- else
- status = sk_smart_overall_to_string (device->priv->drive_ata_smart_status);
-+#else
-+ status = "";
-+#endif
- g_value_set_string (value, status);
- }
- break;
-@@ -5144,6 +5150,7 @@ device_new (Daemon *daemon,
- goto out;
- }
-
-+#ifdef HAVE_LIBATASMART
- /* if just added, update the smart data if applicable */
- if (device->priv->drive_ata_smart_is_available)
- {
-@@ -5151,6 +5158,7 @@ device_new (Daemon *daemon,
- gchar *ata_smart_refresh_data_options[] = { NULL };
- device_drive_ata_smart_refresh_data (device, ata_smart_refresh_data_options, NULL);
- }
-+#endif
-
- PROFILE ("device_new(native_path=%s): end", native_path);
- out:
-@@ -9840,16 +9848,18 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
- const char *stdout,
- gpointer user_data)
- {
-+#ifdef HAVE_LIBATASMART
- gint rc;
-- SkDisk *d;
-+ SkDisk *d = NULL;
-+ SkSmartOverall overall;
- gchar *blob;
- gsize blob_size;
- time_t time_collected;
-- SkSmartOverall overall;
-+#endif
-
- PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) start", device->priv->native_path);
-
-- d = NULL;
-+#ifdef HAVE_LIBATASMART
- blob = NULL;
-
- if (job_was_cancelled || stdout == NULL)
-@@ -9953,6 +9963,11 @@ drive_ata_smart_refresh_data_completed_cb (DBusGMethodInvocation *context,
- g_free (blob);
- if (d != NULL)
- sk_disk_free (d);
-+
-+#else
-+ throw_error (context, ERROR_FAILED, "libatasmart support disabled");
-+#endif
-+
- PROFILE ("drive_ata_smart_refresh_data_completed_cb(device=%s) end", device->priv->native_path);
- }
-
-diff --git a/src/expander-private.h b/src/expander-private.h
-index ef4f440..98a8300 100644
---- a/src/expander-private.h
-+++ b/src/expander-private.h
-@@ -23,7 +23,6 @@
-
- #include <dbus/dbus-glib.h>
- #include <gudev/gudev.h>
--#include <atasmart.h>
-
- #include "types.h"
-
-diff --git a/src/expander.c b/src/expander.c
-index 734ec0a..e799f13 100644
---- a/src/expander.c
-+++ b/src/expander.c
-@@ -34,7 +34,6 @@
- #include <dbus/dbus-glib.h>
- #include <dbus/dbus-glib-lowlevel.h>
- #include <gudev/gudev.h>
--#include <atasmart.h>
- #include <stdlib.h>
-
- #include "daemon.h"
-diff --git a/src/helpers/Makefile.am b/src/helpers/Makefile.am
-index 4b863c0..d3ec4e9 100644
---- a/src/helpers/Makefile.am
-+++ b/src/helpers/Makefile.am
-@@ -19,15 +19,9 @@ INCLUDES = \
-
- libexec_PROGRAMS = \
- udisks-helper-mkfs \
-- udisks-helper-delete-partition \
-- udisks-helper-create-partition \
-- udisks-helper-modify-partition \
-- udisks-helper-create-partition-table \
- udisks-helper-change-filesystem-label \
- udisks-helper-linux-md-remove-component \
- udisks-helper-fstab-mounter \
-- udisks-helper-ata-smart-collect \
-- udisks-helper-ata-smart-selftest \
- udisks-helper-drive-detach \
- udisks-helper-drive-poll \
- udisks-helper-linux-md-check \
-@@ -48,6 +42,13 @@ udisks_helper_mkfs_SOURCES = job-shared.h job-mkfs.c
- udisks_helper_mkfs_CPPFLAGS = $(AM_CPPFLAGS)
- udisks_helper_mkfs_LDADD = $(GLIB_LIBS)
-
-+if HAVE_PARTED
-+libexec_PROGRAMS += \
-+ udisks-helper-delete-partition \
-+ udisks-helper-create-partition \
-+ udisks-helper-modify-partition \
-+ udisks-helper-create-partition-table
-+
- udisks_helper_delete_partition_SOURCES = job-shared.h job-delete-partition.c
- udisks_helper_delete_partition_CPPFLAGS = $(AM_CPPFLAGS)
- udisks_helper_delete_partition_LDADD = $(GLIB_LIBS) libpartutil.la
-@@ -63,11 +64,17 @@ udisks_helper_modify_partition_LDADD = $(GLIB_LIBS) libpartutil.la
- udisks_helper_create_partition_table_SOURCES = job-shared.h job-create-partition-table.c
- udisks_helper_create_partition_table_CPPFLAGS = $(AM_CPPFLAGS)
- udisks_helper_create_partition_table_LDADD = $(GLIB_LIBS) libpartutil.la
-+endif
-
- udisks_helper_change_filesystem_label_SOURCES = job-shared.h job-change-filesystem-label.c
- udisks_helper_change_filesystem_label_CPPFLAGS = $(AM_CPPFLAGS)
- udisks_helper_change_filesystem_label_LDADD = $(GLIB_LIBS)
-
-+if HAVE_LIBATASMART
-+libexec_PROGRAMS += \
-+ udisks-helper-ata-smart-collect \
-+ udisks-helper-ata-smart-selftest
-+
- udisks_helper_ata_smart_selftest_SOURCES = job-shared.h job-ata-smart-selftest.c
- udisks_helper_ata_smart_selftest_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
- udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
-@@ -75,6 +82,7 @@ udisks_helper_ata_smart_selftest_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
- udisks_helper_ata_smart_collect_SOURCES = job-ata-smart-collect.c
- udisks_helper_ata_smart_collect_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS) $(GLIB_CFLAGS)
- udisks_helper_ata_smart_collect_LDADD = $(LIBATASMART_LIBS) $(GLIB_LIBS)
-+endif
-
- udisks_helper_linux_md_remove_component_SOURCES = job-shared.h job-linux-md-remove-component.c
- udisks_helper_linux_md_remove_component_CPPFLAGS = $(AM_CPPFLAGS)
-diff --git a/src/helpers/partutil.c b/src/helpers/partutil.c
-index 72a8fe3..8893a39 100644
---- a/src/helpers/partutil.c
-+++ b/src/helpers/partutil.c
-@@ -62,7 +62,6 @@ DEBUG (const gchar *format,
- # include <config.h>
- #endif
-
--#define USE_PARTED
- #ifdef USE_PARTED
- #include <parted/parted.h>
- #endif
-@@ -928,6 +927,7 @@ part_table_parse_apple (int fd,
- return p;
- }
-
-+#ifdef USE_PARTED
- static PartitionTable *
- part_table_load_from_disk_from_file (char *device_file)
- {
-@@ -948,6 +948,7 @@ part_table_load_from_disk_from_file (char *device_file)
- out:
- return ret;
- }
-+#endif
-
- PartitionTable *
- part_table_load_from_disk (int fd)
-diff --git a/src/port-private.h b/src/port-private.h
-index cc48376..a91532f 100644
---- a/src/port-private.h
-+++ b/src/port-private.h
-@@ -23,7 +23,6 @@
-
- #include <dbus/dbus-glib.h>
- #include <gudev/gudev.h>
--#include <atasmart.h>
-
- #include "types.h"
-
-diff --git a/src/probers/Makefile.am b/src/probers/Makefile.am
-index 06bb566..01c693b 100644
---- a/src/probers/Makefile.am
-+++ b/src/probers/Makefile.am
-@@ -22,8 +22,6 @@ INCLUDES = \
-
- udevhelperdir = $(slashlibdir)/udev
- udevhelper_PROGRAMS = udisks-part-id \
-- udisks-dm-export \
-- udisks-probe-ata-smart \
- udisks-probe-sas-expander \
- $(NULL)
-
-@@ -35,17 +33,23 @@ udisks_part_id_SOURCES = part-id.c
- udisks_part_id_CPPFLAGS = $(AM_CPPFLAGS) $(LIBUDEV_CFLAGS)
- udisks_part_id_LDADD = $(GLIB_LIBS) $(LIBUDEV_LIBS) $(top_builddir)/src/helpers/libpartutil.la
-
-+if HAVE_DEVMAPPER
-+udevhelper_PROGRAMS += udisks-dm-export
- udisks_dm_export_SOURCES = udisks-dm-export.c
- udisks_dm_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(GLIB_CFLAGS)
- udisks_dm_export_LDADD = $(DEVMAPPER_LIBS) $(GLIB_LIBS)
-+endif
-
- udisks_lvm_pv_export_SOURCES = udisks-lvm-pv-export.c
- udisks_lvm_pv_export_CPPFLAGS = $(AM_CPPFLAGS) $(DEVMAPPER_CFLAGS) $(LVM2_CFLAGS) $(GLIB_CFLAGS)
- udisks_lvm_pv_export_LDADD = $(DEVMAPPER_LIBS) $(LVM2_LIBS) $(GLIB_LIBS)
-
-+if HAVE_LIBATASMART
-+udevhelper_PROGRAMS += udisks-probe-ata-smart
- udisks_probe_ata_smart_SOURCES = udisks-probe-ata-smart.c
- udisks_probe_ata_smart_CPPFLAGS = $(AM_CPPFLAGS) $(LIBATASMART_CFLAGS)
- udisks_probe_ata_smart_LDADD = $(LIBATASMART_LIBS)
-+endif
-
- udisks_probe_sas_expander_SOURCES = udisks-probe-sas-expander.c
- udisks_probe_sas_expander_CPPFLAGS = $(AM_CPPFLAGS) $(GLIB_CFLAGS)
-diff --git a/tools/udisks.c b/tools/udisks.c
-index 97e80d7..d30159b 100644
---- a/tools/udisks.c
-+++ b/tools/udisks.c
-@@ -43,7 +43,9 @@
- #include <dbus/dbus-glib.h>
- #include <dbus/dbus-glib-lowlevel.h>
-
-+#ifdef HAVE_LIBATASMART
- #include <atasmart.h>
-+#endif
-
- #include "udisks-daemon-glue.h"
- #include "udisks-device-glue.h"
-@@ -983,6 +985,7 @@ end_highlight (void)
- g_print ("\x1B[0m");
- }
-
-+#ifdef HAVE_LIBATASMART
- static const gchar *
- ata_smart_status_to_desc (const gchar *status,
- gboolean *out_highlight)
-@@ -1163,6 +1166,7 @@ print_ata_smart_attr (SkDisk *d,
- g_free (threshold_str);
- g_free (pretty);
- }
-+#endif
-
- static void
- do_show_info (const char *object_path)
-@@ -1445,7 +1449,7 @@ do_show_info (const char *object_path)
- g_print (" if speed: %" G_GINT64_FORMAT " bits/s\n", props->drive_connection_speed);
-
- /* ------------------------------------------------------------------------------------------------- */
--
-+#ifdef HAVE_LIBATASMART
- if (!props->drive_ata_smart_is_available)
- {
- g_print (" ATA SMART: not available\n");
-@@ -1498,7 +1502,9 @@ do_show_info (const char *object_path)
- }
-
- }
--
-+#else
-+ g_print (" ATA SMART: not supported\n");
-+#endif
- /* ------------------------------------------------------------------------------------------------- */
-
- }
diff --git a/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch b/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
deleted file mode 100644
index d4efa93dd3..0000000000
--- a/meta-oe/recipes-support/udisks/udisks/udisks-1.0.5-fix-service-file.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From a4f6aa5be37ae6e2194c9ded2ea8c1da330f5694 Mon Sep 17 00:00:00 2001
-From: David King <amigadave@amigadave.com>
-Date: Thu, 2 Jul 2015 13:49:22 +0100
-Subject: [PATCH] Fix systemd service file
-
-udisks-daemon is installed to $(libexecdir), not $(prefix)/lib/udisks.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1238664
-https://bugs.freedesktop.org/show_bug.cgi?id=91191
-
-Taken-From: [1]
-[1] http://pkgs.fedoraproject.org/cgit/udisks.git/tree/udisks-1.0.5-fix-service-file.patch
-
-Upstream-Status: Pending
-
----
- data/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/Makefile.am b/data/Makefile.am
-index 411ea0f..08af5f4 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -31,7 +31,7 @@ systemdservicedir = $(systemdsystemunitdir)
- systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
-
- $(systemdservice_DATA): $(systemdservice_in_files) Makefile
-- @sed -e "s|\@libexecdir\@|$(prefix)/lib/udisks|" $< > $@
-+ @sed -e "s|\@libexecdir\@|$(libexecdir)|" $< > $@
- endif
-
- udevrulesdir = $(slashlibdir)/udev/rules.d
diff --git a/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch b/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
deleted file mode 100644
index 1cbd877517..0000000000
--- a/meta-oe/recipes-support/udisks/udisks2/0001-data-fix-out-of-tree-build.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 7fdd4acdf6daf95c5cc74e968f4710513c8ddaea Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Fri, 23 Mar 2018 18:33:52 +0100
-Subject: [PATCH] data: fix out of tree build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-| sed: can't read udisks2.service.in: No such file or directory
-
-Upstream-Status: Submitted [1]
-
-[1] https://github.com/storaged-project/udisks/pull/510
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- data/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/data/Makefile.am b/data/Makefile.am
-index ddf9e3d6..b38928c8 100644
---- a/data/Makefile.am
-+++ b/data/Makefile.am
-@@ -22,7 +22,7 @@ systemdservicedir = $(systemdsystemunitdir)
- systemdservice_DATA = $(systemdservice_in_files:.service.in=.service)
-
- $(systemdservice_DATA): udisks2.service.in Makefile
-- @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" udisks2.service.in > udisks2.service
-+ @sed -e "s|\@udisksdprivdir\@|$(libexecdir)/udisks2|" $(srcdir)/udisks2.service.in > udisks2.service
- endif
-
- udevrulesdir = $(udevdir)/rules.d
---
-2.14.3
-
diff --git a/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch b/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch
deleted file mode 100644
index 98e6c75f24..0000000000
--- a/meta-oe/recipes-support/udisks/udisks2/non-gnu-libc.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-musl does not define __GNUC_PREREQ therefore check for C library being glibc
-if not then define the macro
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: udisks-2.1.7/udisks/udisksclient.c
-===================================================================
---- udisks-2.1.7.orig/udisks/udisksclient.c
-+++ udisks-2.1.7/udisks/udisksclient.c
-@@ -27,8 +27,15 @@
- #include "udisksobjectinfo.h"
-
- /* For __GNUC_PREREQ usage below */
--#ifdef __GNUC__
-+#ifdef __GLIBC__
- # include <features.h>
-+#else
-+#if defined(__GNUC__)
-+#define __GNUC_PREREQ(__maj, __min) \
-+ (__GNUC__ > (__maj) || __GNUC__ == (__maj) && __GNUC_MINOR__ >= (__min))
-+#else
-+#define __GNUC_PREREQ(__maj, __min) 0
-+#endif
- #endif
-
- /**
diff --git a/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb b/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
deleted file mode 100644
index 4d22afd0d5..0000000000
--- a/meta-oe/recipes-support/udisks/udisks2_2.7.6.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-SUMMARY = "udisks provides dbus interfaces for disks and storage devices"
-LICENSE = "GPLv2+ & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=dd79f6dbbffdbc8e86b086a8f0c0ef43"
-
-DEPENDS = " \
- acl \
- libatasmart \
- polkit \
- libgudev \
- dbus-glib \
- glib-2.0 \
- libblockdev \
- intltool-native \
- gnome-common-native \
- libxslt-native \
-"
-DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-
-RDEPENDS_${PN} = "acl"
-
-SRC_URI = " \
- git://github.com/storaged-project/udisks.git \
- file://0001-data-fix-out-of-tree-build.patch \
- file://non-gnu-libc.patch \
-"
-SRCREV = "b6471f2e99f6aa1133af0de658f1fa05c748932c"
-S = "${WORKDIR}/git"
-
-CVE_PRODUCT = "udisks"
-
-inherit autotools systemd gtk-doc gobject-introspection
-
-EXTRA_OECONF = "--disable-man --disable-gtk-doc"
-
-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}"
-
-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
new file mode 100644
index 0000000000..2030063712
--- /dev/null
+++ b/meta-oe/recipes-support/udisks/udisks2_2.9.4.bb
@@ -0,0 +1,59 @@
+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
+}
+
+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 \
+ ${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/udisks_1.0.5.bb b/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
deleted file mode 100644
index e33266001e..0000000000
--- a/meta-oe/recipes-support/udisks/udisks_1.0.5.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-DESCRIPTION = "A storage daemon that implements well-defined D-Bus interfaces that can be used to query and manipulate storage devices."
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=73d83aebe7e4b62346afde80e0e94273"
-
-DEPENDS = "libatasmart sg3-utils polkit libgudev dbus-glib glib-2.0 intltool-native \
- dbus-glib-native \
-"
-# optional dependencies: device-mapper parted
-
-DEPENDS += "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
- dbus-glib-native \
-"
-
-SRC_URI = " \
- http://hal.freedesktop.org/releases/${BPN}-${PV}.tar.gz;name=${BPN} \
- file://optional-depends.patch \
- file://0001-fix-build-with-newer-glibc-versions.patch \
- file://udisks-1.0.5-fix-service-file.patch \
- file://0001-Make-udev-rules-directory-configurable.patch \
-"
-
-SRC_URI[udisks.md5sum] = "70d48dcfe523a74cd7c7fbbc2847fcdd"
-SRC_URI[udisks.sha256sum] = "f2ec82eb0ea7e01dc299b5b29b3c18cdf861236ec43dcff66b3552b4b31c6f71"
-
-inherit autotools-brokensep systemd gtk-doc
-
-PACKAGECONFIG ??= "libdevmapper"
-PACKAGECONFIG[libdevmapper] = "--enable-devmapper,--disable-devmapper,libdevmapper"
-PACKAGECONFIG[parted] = "--enable-parted,--disable-parted,parted"
-
-EXTRA_OECONF = "--disable-man-pages --libdir=${base_libdir} --sbindir=${base_sbindir}"
-EXTRA_OEMAKE = "udevrulesdir=${nonarch_base_libdir}/udev/rules.d/"
-
-FILES_${PN} += "${libdir}/polkit-1/extensions/*.so \
- ${datadir}/dbus-1/ \
- ${datadir}/polkit-1 \
- ${nonarch_base_libdir}/udev/* \
-"
-
-FILES_${PN}-dbg += "${nonarch_base_libdir}/udev/.debug"
-
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "udisks.service"
-SYSTEMD_AUTO_ENABLE = "disable"
diff --git a/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb b/meta-oe/recipes-support/uhubctl/uhubctl_2.0.0.bb
deleted file mode 100644
index 6306ddb55a..0000000000
--- a/meta-oe/recipes-support/uhubctl/uhubctl_2.0.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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "https://github.com/mvp/${PN}/archive/v${PV}.tar.gz"
-SRC_URI[md5sum] = "5c711911d766d76813333c3812277574"
-SRC_URI[sha256sum] = "4c31278b2c03e5be5a696c3088bc86cf2557a70e00f697799c163aba18e3c40e"
-
-# 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/0001-Add-support-for-aarch64.patch b/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch
deleted file mode 100644
index 391b0e68b0..0000000000
--- a/meta-oe/recipes-support/uim/uim/0001-Add-support-for-aarch64.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 82f44f53b9a9766c2ec816f237506beb953eb332 Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab@suse.de>
-Date: Wed, 29 Oct 2014 14:18:28 +0100
-Subject: [PATCH] Add support for aarch64
-
-* include/private/gcconfig.h: Add support for aarch64.
-
----
- sigscheme/libgcroots/include/private/gcconfig.h | 37 +++++++++++++++++++++++++
- 1 file changed, 37 insertions(+)
-
-diff --git a/sigscheme/libgcroots/include/private/gcconfig.h b/sigscheme/libgcroots/include/private/gcconfig.h
-index 4d42b03..0f13db6 100644
---- a/sigscheme/libgcroots/include/private/gcconfig.h
-+++ b/sigscheme/libgcroots/include/private/gcconfig.h
-@@ -62,6 +62,13 @@
- # endif
-
- /* Determine the machine type: */
-+# if defined(__aarch64__)
-+# define AARCH64
-+# if !defined(LINUX)
-+# define NOSYS
-+# define mach_type_known
-+# endif
-+# endif
- # if defined(__arm__) || defined(__thumb__)
- # define ARM32
- # if !defined(LINUX) && !defined(NETBSD)
-@@ -231,6 +238,10 @@
- # define IA64
- # define mach_type_known
- # endif
-+# if defined(LINUX) && defined(__aarch64__)
-+# define AARCH64
-+# define mach_type_known
-+# endif
- # if defined(LINUX) && defined(__arm__)
- # define ARM32
- # define mach_type_known
-@@ -504,6 +515,7 @@
- /* running Amdahl UTS4 */
- /* S390 ==> 390-like machine */
- /* running LINUX */
-+ /* AARCH64 ==> ARM AArch64 */
- /* ARM32 ==> Intel StrongARM */
- /* IA64 ==> Intel IPF */
- /* (e.g. Itanium) */
-@@ -1724,6 +1736,31 @@
- # endif
- # endif
-
-+# ifdef AARCH64
-+# define CPP_WORDSZ 64
-+# define MACH_TYPE "AARCH64"
-+# define ALIGNMENT 8
-+# ifndef HBLKSIZE
-+# define HBLKSIZE 4096
-+# endif
-+# ifdef LINUX
-+# define OS_TYPE "LINUX"
-+# define LINUX_STACKBOTTOM
-+# define DYNAMIC_LOADING
-+ extern int __data_start[];
-+# define DATASTART ((ptr_t)__data_start)
-+ extern char _end[];
-+# define DATAEND ((ptr_t)(&_end))
-+# endif
-+# ifdef NOSYS
-+ /* __data_start is usually defined in the target linker script. */
-+ extern int __data_start[];
-+# define DATASTART ((ptr_t)__data_start)
-+ extern void *__stack_base__;
-+# define STACKBOTTOM ((ptr_t)__stack_base__)
-+# endif
-+# endif
-+
- # ifdef ARM32
- # define CPP_WORDSZ 32
- # define MACH_TYPE "ARM32"
diff --git a/meta-oe/recipes-support/uim/uim/0001-Fix-to-set-libedit-path-from-configure-option-proper.patch b/meta-oe/recipes-support/uim/uim/0001-Fix-to-set-libedit-path-from-configure-option-proper.patch
new file mode 100644
index 0000000000..34a1ea0fa2
--- /dev/null
+++ b/meta-oe/recipes-support/uim/uim/0001-Fix-to-set-libedit-path-from-configure-option-proper.patch
@@ -0,0 +1,29 @@
+From f828a89cc1e956d56498422ec158d284fc97de3f Mon Sep 17 00:00:00 2001
+From: OBATA Akio <obache@outlook.com>
+Date: Fri, 10 Aug 2018 18:38:18 +0900
+Subject: [PATCH] Fix to set libedit path from configure option properly
+
+Upstream-Status: Backport [https://github.com/uim/uim/pull/134]
+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 00d1b02..9c0a5ec 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1311,8 +1311,8 @@ if test "x$with_libedit" != xno; then
+ if test "x$with_libedit" = xyes; then
+ libedit_path=/usr
+ else
+- with_libedit=yes
+ libedit_path="$with_libedit"
++ with_libedit=yes
+ fi
+
+ saved_CPPFLAGS=$CPPFLAGS
+--
+2.23.0
+
diff --git a/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch b/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
deleted file mode 100644
index 0c8f02d6ce..0000000000
--- a/meta-oe/recipes-support/uim/uim/0001-fix-bug-for-cross-compile.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 08b5e51224ed95b1e76e99873b5f9f59840b0a74 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Fri, 21 Aug 2015 15:58:42 +0900
-Subject: [PATCH] fix bug for cross compile
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
-
----
- configure.ac | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9be879c..9249bfd 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1208,8 +1208,8 @@ AC_HELP_STRING([--with-libedit[=DIR], Enable libedit support
- if test "x$use_libedit" != "xno"; then
- saved_CPPFLAGS=$CPPFLAGS
- saved_LDFLAGS=$LDFLAGS
-- CPPFLAGS="${CPPFLAGS} -I$libedit_path/include"
-- LDFLAGS="${LDFLAGS} -L$libedit_path/lib"
-+ CPPFLAGS="${CPPFLAGS} "
-+ LDFLAGS="${LDFLAGS} "
- AC_CHECK_LIB(curses, tgetent, LIBEDIT_LIBS="-lcurses",
- [AC_CHECK_LIB(ncurses, tgetent, LIBEDIT_LIBS="-lncurses",
- AC_MSG_WARN("libedit needs libcurses or libncurses. disabled...")
diff --git a/meta-oe/recipes-support/uim/uim/JMP_BUF_GC_jmp_buf.patch b/meta-oe/recipes-support/uim/uim/JMP_BUF_GC_jmp_buf.patch
new file mode 100644
index 0000000000..adb9c4b06b
--- /dev/null
+++ b/meta-oe/recipes-support/uim/uim/JMP_BUF_GC_jmp_buf.patch
@@ -0,0 +1,15 @@
+Fix error pointed out by gcc10
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/sigscheme/libgcroots/include/private/gc_priv.h
++++ b/sigscheme/libgcroots/include/private/gc_priv.h
+@@ -2026,7 +2026,7 @@ void GC_err_puts(const char *s);
+
+ # if defined(NEED_FIND_LIMIT) || \
+ defined(USE_PROC_FOR_LIBRARIES) && defined(THREADS)
+-JMP_BUF GC_jmp_buf;
++extern JMP_BUF GC_jmp_buf;
+
+ /* Set up a handler for address faults which will longjmp to */
+ /* GC_jmp_buf; */
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 3078af0586..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,14 +3,14 @@ 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/scm/Makefile.am b/scm/Makefile.am
-index 14d9393..e8a1083 100644
--- a/scm/Makefile.am
+++ b/scm/Makefile.am
-@@ -119,7 +119,7 @@ if EXPAT
+@@ -115,7 +115,7 @@ if EXPAT
module_names += "yahoo-jp"
endif
diff --git a/meta-oe/recipes-support/uim/uim_1.8.6.bb b/meta-oe/recipes-support/uim/uim_1.8.6.bb
deleted file mode 100644
index af28895eef..0000000000
--- a/meta-oe/recipes-support/uim/uim_1.8.6.bb
+++ /dev/null
@@ -1,144 +0,0 @@
-DESCRIPTION = "A multilingual user input method library"
-HOMEPAGE = "http://uim.freedesktop.org/"
-LICENSE = "BSD-3-Clause & LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32463fd29aa303fb2360faeeae17256b"
-SECTION = "inputmethods"
-
-SRC_URI = "http://uim.googlecode.com/files/uim-${PV}.tar.bz2"
-
-SRC_URI_append_class-target = " file://uim-module-manager.patch \
- file://0001-fix-bug-for-cross-compile.patch \
- file://0001-Add-support-for-aarch64.patch \
-"
-SRC_URI[md5sum] = "ecea4c597bab1fd4ba98ea84edcece59"
-SRC_URI[sha256sum] = "7b1ea803c73f3478917166f04f67cce6e45ad7ea5ab6df99b948c17eb1cb235f"
-
-DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool"
-DEPENDS_append_class-target = " intltool-native gtk+ gtk+3 uim-native takao-fonts"
-
-RDEPENDS_uim = "libuim0 libedit"
-RDEPENDS_uim-anthy = "takao-fonts anthy libanthy0"
-RDEPENDS_uim-anthy_append_libc-glibc = " glibc-utils glibc-gconv-euc-jp"
-
-LEAD_SONAME = "libuim.so.1"
-
-inherit distro_features_check autotools pkgconfig gettext qemu gtk-immodules-cache
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3"
-
-EXTRA_OECONF += "--disable-emacs \
- --without-scim \
- --without-m17nlib \
- --without-prime \
- --without-canna \
- --without-mana \
- --without-eb \
-"
-
-CONFIGUREOPTS_remove_class-target = "--disable-silent-rules"
-
-#Because m4 file's find maxdepth=2, so copy the m4 files of the deep depth.
-do_configure_prepend () {
- cp ${S}/sigscheme/m4/* ${S}/m4/
-}
-
-do_install_append() {
- rm -rf ${D}/${datadir}/applications
-}
-
-PACKAGES =+ "uim-xim uim-utils uim-skk uim-gtk2.0 uim-gtk3 uim-fep uim-anthy uim-common libuim0 libuim-dev"
-
-FILES_${PN} = "${bindir}/uim-help \
- ${libdir}/uim/plugin/libuim-* \
- ${libdir}/libuim-scm* \
- ${libdir}/libgcroots* \
- ${libdir}/uim/plugin/libuim-* \
-"
-
-FILES_libuim0 = "${libdir}/uim/plugin/libuim-custom-enabler.* \
- ${libdir}/libuim-custom.so.* \
- ${datadir}/locale/ja/LC_MESSAGES/uim.mo \
- ${datadir}/locale/fr/LC_MESSAGES/uim.mo \
- ${datadir}/locale/ko/LC_MESSAGES/uim.mo \
- ${libdir}/libuim.so.* \
-"
-FILES_libuim-dev = "${libdir}/libuim*.a \
- ${libdir}/libuim*.la \
- ${libdir}/libuim*.so \
- ${includedir}/uim \
- ${libdir}/pkgconfig/uim.pc \
-"
-FILES_uim-anthy = "${libdir}/uim/plugin/libuim-anthy.* \
- ${datadir}/uim/anthy*.scm \
-"
-FILES_${PN}-dbg += "${libdir}/*/*/*/.debug ${libdir}/*/*/.debug"
-FILES_${PN}-dev += "${libdir}/uim/plugin/*.la"
-
-FILES_uim-utils = "${bindir}/uim-sh \
- ${bindir}/uim-module-manager \
- ${libexecdir}/uim-helper-server \
-"
-FILES_uim-xim = "${bindir}/uim-xim \
- ${libexecdir}/uim-candwin-*gtk \
- ${libexecdir}/uim-candwin-*gtk3 \
- ${datadir}/man/man1/uim-xim.1 \
- ${sysconfdir}/X11/xinit/xinput.d/uim* \
-"
-FILES_uim-common = "${datadir}/uim/pixmaps/*.png \
- ${datadir}/uim \
-"
-FILES_uim-fep = "${bindir}/uim-fep*"
-
-FILES_uim-gtk2.0 = "${libdir}/gtk-2.0 \
- ${bindir}/uim-toolbar-gtk \
- ${bindir}/uim-toolbar-gtk-systray \
- ${bindir}/uim-*-gtk \
- ${bindir}/uim-input-pad-ja \
- ${libdir}/uim/uim-*-gtk \
-"
-FILES_uim-gtk3 = "${libdir}/gtk-3.0 \
- ${bindir}/uim-toolbar-gtk3 \
- ${bindir}/uim-toolbar-gtk3-systray \
- ${bindir}/uim-*-gtk3 \
- ${libdir}/uim/uim-*-gtk3 \
-"
-FILES_uim-skk = "${libdir}/uim/plugin/libuim-skk.* \
- ${datadir}/uim/skk*.scm \
-"
-
-PACKAGE_WRITE_DEPS += "qemu-native"
-pkg_postinst_uim-anthy() {
- if test -n "$D"; then
- ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim
- else
- uim-module-manager --register anthy --path ${datadir}/uim
- fi
-}
-
-pkg_prerm_uim-anthy() {
- if test -n "$D"; then
- ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy
- else
- uim-module-manager --path ${datadir}/uim --unregister anthy
- fi
-}
-
-pkg_postinst_uim-skk() {
- if test -n "$D"; then
- ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim
- else
- uim-module-manager --register skk --path ${datadir}/uim
- fi
-}
-
-pkg_postrm_uim-skk() {
- if test -n "$D"; then
- ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk
- else
- uim-module-manager --path ${datadir}/uim --unregister skk
- fi
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/uim/uim_1.8.8.bb b/meta-oe/recipes-support/uim/uim_1.8.8.bb
new file mode 100644
index 0000000000..e0d9d05dce
--- /dev/null
+++ b/meta-oe/recipes-support/uim/uim_1.8.8.bb
@@ -0,0 +1,157 @@
+DESCRIPTION = "A multilingual user input method library"
+HOMEPAGE = "http://uim.freedesktop.org/"
+LICENSE = "BSD-3-Clause & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ab2826b41ca0ff4030d38cc39791d1c8"
+SECTION = "inputmethods"
+
+SRC_URI = "https://github.com/uim/uim/releases/download/${PV}/uim-${PV}.tar.bz2 \
+ file://0001-Fix-to-set-libedit-path-from-configure-option-proper.patch \
+ file://JMP_BUF_GC_jmp_buf.patch \
+"
+SRC_URI:append:class-target = "\
+ file://uim-module-manager.patch \
+"
+SRC_URI[md5sum] = "01c7bd5d0d4f3a9f6f5befe6f57a470b"
+SRC_URI[sha256sum] = "34599bbcc4e5ab87832370763e38be5100984a64237555e9234a1ea225a0fadc"
+
+UPSTREAM_CHECK_URI = "https://github.com/${BPN}/${BPN}/releases"
+
+DEPENDS = "anthy fontconfig libxft libxt glib-2.0 ncurses intltool libedit"
+DEPENDS:append:class-target = " intltool-native gtk+ gtk+3 uim-native"
+
+RDEPENDS:uim = "libuim0 libedit"
+RDEPENDS:uim-anthy = "anthy libanthy0"
+RDEPENDS:uim-anthy:append:libc-glibc = " glibc-utils glibc-gconv-euc-jp"
+
+LEAD_SONAME = "libuim.so.1"
+
+COMPATIBLE_HOST:riscv64 = "null"
+COMPATIBLE_HOST:riscv32 = "null"
+
+inherit features_check autotools pkgconfig gettext qemu gtk-immodules-cache
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+GTKIMMODULES_PACKAGES = "uim-gtk2.0 uim-gtk3"
+
+EXTRA_OECONF += "--disable-emacs \
+ --with-libedit=${STAGING_EXECPREFIXDIR} \
+ --without-scim \
+ --without-m17nlib \
+ --without-prime \
+ --without-canna \
+ --without-mana \
+ --without-eb \
+"
+
+CONFIGUREOPTS:remove:class-target = "--disable-silent-rules"
+
+# https://github.com/uim/uim/issues/44
+PARALLEL_MAKE = ""
+
+#Because m4 file's find maxdepth=2, so copy the m4 files of the deep depth.
+do_configure:prepend () {
+ rm -rf ${S}/m4.generated/lt*.m4 ${S}/m4.generated/libtool.m4
+ rm -rf ${S}/sigscheme/libgcroots/m4/lt*.m4 ${S}/sigscheme/libgcroots/m4/libtool.m4
+ rm -rf ${S}/sigscheme/m4/lt*.m4 ${S}/sigscheme/m4/libtool.m4
+ cp ${S}/sigscheme/m4/* ${S}/m4/
+}
+
+do_install:append() {
+ rm -rf ${D}/${datadir}/applications
+}
+
+PACKAGES =+ "uim-xim uim-utils uim-skk uim-gtk2.0 uim-gtk3 uim-fep uim-anthy uim-common libuim0 libuim-dev"
+
+FILES:${PN} = "${bindir}/uim-help \
+ ${libdir}/uim/plugin/libuim-* \
+ ${libdir}/libuim-scm* \
+ ${libdir}/libgcroots* \
+ ${libdir}/uim/plugin/libuim-* \
+"
+
+FILES:libuim0 = "${libdir}/uim/plugin/libuim-custom-enabler.* \
+ ${libdir}/libuim-custom.so.* \
+ ${datadir}/locale/ja/LC_MESSAGES/uim.mo \
+ ${datadir}/locale/fr/LC_MESSAGES/uim.mo \
+ ${datadir}/locale/ko/LC_MESSAGES/uim.mo \
+ ${libdir}/libuim.so.* \
+"
+FILES:libuim-dev = "${libdir}/libuim*.a \
+ ${libdir}/libuim*.la \
+ ${libdir}/libuim*.so \
+ ${includedir}/uim \
+ ${libdir}/pkgconfig/uim.pc \
+"
+FILES:uim-anthy = "${libdir}/uim/plugin/libuim-anthy.* \
+ ${datadir}/uim/anthy*.scm \
+"
+FILES:${PN}-dbg += "${libdir}/*/*/*/.debug ${libdir}/*/*/.debug"
+FILES:${PN}-dev += "${libdir}/uim/plugin/*.la"
+
+FILES:uim-utils = "${bindir}/uim-sh \
+ ${bindir}/uim-module-manager \
+ ${libexecdir}/uim-helper-server \
+"
+FILES:uim-xim = "${bindir}/uim-xim \
+ ${libexecdir}/uim-candwin-*gtk \
+ ${libexecdir}/uim-candwin-*gtk3 \
+ ${datadir}/man/man1/uim-xim.1 \
+ ${sysconfdir}/X11/xinit/xinput.d/uim* \
+"
+FILES:uim-common = "${datadir}/uim/pixmaps/*.png \
+ ${datadir}/uim \
+"
+FILES:uim-fep = "${bindir}/uim-fep*"
+
+FILES:uim-gtk2.0 = "${libdir}/gtk-2.0 \
+ ${bindir}/uim-toolbar-gtk \
+ ${bindir}/uim-toolbar-gtk-systray \
+ ${bindir}/uim-*-gtk \
+ ${bindir}/uim-input-pad-ja \
+ ${libdir}/uim/uim-*-gtk \
+"
+FILES:uim-gtk3 = "${libdir}/gtk-3.0 \
+ ${bindir}/uim-toolbar-gtk3 \
+ ${bindir}/uim-toolbar-gtk3-systray \
+ ${bindir}/uim-*-gtk3 \
+ ${libdir}/uim/uim-*-gtk3 \
+"
+FILES:uim-skk = "${libdir}/uim/plugin/libuim-skk.* \
+ ${datadir}/uim/skk*.scm \
+"
+
+PACKAGE_WRITE_DEPS += "qemu-native"
+pkg_postinst:uim-anthy() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register anthy --path $D${datadir}/uim
+ else
+ uim-module-manager --register anthy --path ${datadir}/uim
+ fi
+}
+
+pkg_prerm:uim-anthy() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister anthy
+ else
+ uim-module-manager --path ${datadir}/uim --unregister anthy
+ fi
+}
+
+pkg_postinst:uim-skk() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --register skk --path $D${datadir}/uim
+ else
+ uim-module-manager --register skk --path ${datadir}/uim
+ fi
+}
+
+pkg_postrm:uim-skk() {
+ if test -n "$D"; then
+ ${@qemu_run_binary(d, '$D', '${bindir}/uim-module-manager')} --path $D${datadir}/uim --unregister skk
+ else
+ uim-module-manager --path ${datadir}/uim --unregister skk
+ fi
+}
+
+BBCLASSEXTEND = "native"
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
new file mode 100644
index 0000000000..7970cd953f
--- /dev/null
+++ b/meta-oe/recipes-support/unicode-ucd/unicode-ucd_14.0.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Unicode Character Database"
+HOMEPAGE = "https://unicode.org/ucd/"
+LICENSE = "MIT"
+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.txt;name=ucd-license \
+"
+SRC_URI[ucd.sha256sum] = "033a5276b5d7af8844589f8e3482f3977a8385e71d107d375055465178c23600"
+SRC_URI[ucd-license.sha256sum] = "f7830d126f59d83842565d3dddedc79db4ca978ed52aee0ebcc040ea76a85519"
+
+inherit allarch
+
+do_configure[noexec] = "1"
+
+do_install() {
+ install -d ${D}${datadir}/unicode
+ cp -rf ${WORKDIR}/ucd ${D}${datadir}/unicode
+}
+
+FILES:${PN} = "${datadir}/unicode/ucd"
diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb
new file mode 100644
index 0000000000..3a9e390a2b
--- /dev/null
+++ b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.11.bb
@@ -0,0 +1,32 @@
+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 \
+"
+SRC_URI[sha256sum] = "d9e55c8e7118347e3c66c87338856dad1516b490fb7c756c1562a2c267c73b5c"
+
+UPSTREAM_CHECK_REGEX = "unixODBC-(?P<pver>\d+(\.\d+)+)\.tar"
+
+inherit autotools-brokensep multilib_header
+
+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
+}
+
+do_install:append() {
+ oe_multilib_header unixodbc.h unixODBC/config.h unixODBC/unixodbc_conf.h
+}
diff --git a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb b/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
deleted file mode 100644
index 2674d3548d..0000000000
--- a/meta-oe/recipes-support/unixodbc/unixodbc_2.3.6.bb
+++ /dev/null
@@ -1,29 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7b37bf80a3df5a65b355433ae36d206"
-
-DEPENDS = "libtool mysql5"
-
-SRC_URI = "ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-${PV}.tar.gz \
- file://do-not-use-libltdl-source-directory.patch \
-"
-SRC_URI[md5sum] = "a8629fd2953b04b4639d0a9d8a5cf9d1"
-SRC_URI[sha256sum] = "88b637f647c052ecc3861a3baa275c3b503b193b6a49ff8c28b2568656d14d69"
-
-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/upower/upower_0.99.17.bb b/meta-oe/recipes-support/upower/upower_0.99.17.bb
new file mode 100644
index 0000000000..0572cc801b
--- /dev/null
+++ b/meta-oe/recipes-support/upower/upower_0.99.17.bb
@@ -0,0 +1,44 @@
+SUMMARY = "UPower is an abstraction for enumerating power devices"
+DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics."
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
+
+DEPENDS = " \
+ intltool-native \
+ libusb1 \
+ libgudev \
+ glib-2.0 \
+ dbus-glib \
+"
+
+SRC_URI = "git://gitlab.freedesktop.org/upower/upower.git;protocol=https;branch=master"
+SRCREV = "c889154ec8e3e2239db9260d48b2e198d72ba002"
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_GITTAGREGEX = "UPOWER_(?P<pver>\d+(\_\d+)+)"
+
+GIR_MESON_ENABLE_FLAG = "enabled"
+GIR_MESON_DISABLE_FLAG = "disabled"
+GTKDOC_MESON_OPTION = "gtk-doc"
+
+inherit meson pkgconfig gtk-doc gettext gobject-introspection systemd
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
+PACKAGECONFIG[idevice] = "-Didevice=enabled,-Didevice=disabled,libimobiledevice libplist"
+PACKAGECONFIG[systemd] = "-Dsystemdsystemunitdir=${systemd_system_unitdir},-Dsystemdsystemunitdir=no -Dudevrulesdir=${base_libdir}/udev/rules.d,systemd"
+
+EXTRA_OEMESON = " \
+ -Dos_backend=linux \
+ -Dman=false \
+"
+
+SYSTEMD_SERVICE:${PN} = "upower.service"
+# don't start on boot by default - dbus does that on demand
+SYSTEMD_AUTO_ENABLE = "disable"
+
+RDEPENDS:${PN} += "dbus"
+RRECOMMENDS:${PN} += "pm-utils"
+FILES:${PN} += " \
+ ${datadir}/dbus-1/ \
+ ${base_libdir}/udev/* \
+"
diff --git a/meta-oe/recipes-support/upower/upower_0.99.7.bb b/meta-oe/recipes-support/upower/upower_0.99.7.bb
deleted file mode 100644
index 973fbe771e..0000000000
--- a/meta-oe/recipes-support/upower/upower_0.99.7.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-DESCRIPTION = "UPower is an abstraction for enumerating power devices, listening to device events and querying history and statistics. "
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=0de8fbf1d97a140d1d93b9f14dcfbf08"
-
-DEPENDS = "intltool-native libusb1 libgudev glib-2.0 dbus-glib polkit"
-
-SRC_URI = "http://upower.freedesktop.org/releases/${BPN}-${PV}.tar.xz"
-SRC_URI[md5sum] = "236bb439d9ff1151450b3d8582399532"
-SRC_URI[sha256sum] = "24bcc2f6ab25a2533bac70b587bcb019e591293076920f5b5e04bdedc140a401"
-
-inherit autotools pkgconfig gettext gobject-introspection systemd
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[idevice] = "--with-idevice,--without-idevice,libimobiledevice libplist"
-PACKAGECONFIG[systemd] = "--with-systemdutildir=${systemd_unitdir} --with-systemdsystemunitdir=${systemd_system_unitdir}, \
- --without-systemdutildir --without-systemdsystemunitdir,systemd"
-
-EXTRA_OECONF = " --with-backend=linux"
-
-SYSTEMD_SERVICE_${PN} = "upower.service"
-# don't start on boot by default - dbus does that on demand
-SYSTEMD_AUTO_ENABLE = "disable"
-
-do_configure_prepend() {
- sed -i -e s:-nonet:\:g ${S}/doc/man/Makefile.am
- sed -i -e 's: doc : :g' ${S}/Makefile.am
-}
-
-RDEPENDS_${PN} += "dbus"
-RRECOMMENDS_${PN} += "pm-utils"
-FILES_${PN} += "${datadir}/dbus-1/ \
- ${datadir}/polkit-1/ \
- ${base_libdir}/udev/* \
-"
diff --git a/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb b/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
deleted file mode 100644
index b4be853ddb..0000000000
--- a/meta-oe/recipes-support/uriparser/uriparser_0.8.4.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "RFC 3986 compliant URI parsing library"
-HOMEPAGE = "https://uriparser.github.io"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=72b0f9c74ae96eeab8cf1bf3efe08da2"
-
-SRC_URI := "${SOURCEFORGE_MIRROR}/project/uriparser/Sources/${PV}/uriparser-${PV}.tar.bz2"
-
-inherit autotools
-
-EXTRA_OECONF = "--disable-test --disable-doc"
-
-SRC_URI[md5sum] = "9aabdc3611546f553f4af372167de6d6"
-SRC_URI[sha256sum] = "ce7ccda4136974889231e8426a785e7578e66a6283009cfd13f1b24a5e657b23"
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-data_20170205.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb
deleted file mode 100644
index eeed5e275d..0000000000
--- a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20170205.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Data files for usbmodeswitch"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit allarch
-
-DEPENDS += "tcl-native"
-
-SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
-SRC_URI[md5sum] = "0cc107cd0c4c83df0d9400c999e21dfd"
-SRC_URI[sha256sum] = "e2dcfd9d28928d8d8f03381571a23442b3c50d48d343bc40a1a07d01662738d1"
-
-do_install() {
- oe_runmake install DESTDIR=${D}
-}
-
-RDEPENDS_${PN} = "usb-modeswitch (>= 2.4.0)"
-FILES_${PN} += "${base_libdir}/udev/rules.d/ \
- ${datadir}/usb_modeswitch"
diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb
new file mode 100644
index 0000000000..351fe44d70
--- /dev/null
+++ b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch-data_20191128.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Data files for usbmodeswitch"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit allarch
+
+DEPENDS += "tcl-native"
+
+SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
+SRC_URI[md5sum] = "e8fce7eb949cbe16c61fb71bade4cc17"
+SRC_URI[sha256sum] = "3f039b60791c21c7cb15c7986cac89650f076dc274798fa242231b910785eaf9"
+
+do_install() {
+ oe_runmake install DESTDIR=${D} RULESDIR=${D}/${nonarch_base_libdir}/udev/rules.d
+}
+
+RDEPENDS:${PN} = "usb-modeswitch (>= 2.4.0)"
+FILES:${PN} += "${nonarch_base_libdir}/udev/rules.d/ \
+ ${datadir}/usb_modeswitch"
diff --git a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb b/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb
deleted file mode 100644
index ac0df8bab4..0000000000
--- a/meta-oe/recipes-support/usb-modeswitch/usb-modeswitch_2.5.0.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "A mode switching tool for controlling 'flip flop' (multiple device) USB gear"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-DEPENDS = "libusb1"
-
-SRC_URI = "http://www.draisberghof.de/usb_modeswitch/${BP}.tar.bz2"
-SRC_URI[md5sum] = "38ad5c9d70e06227a00361bdc2b1e568"
-SRC_URI[sha256sum] = "31c0be280d49a99ec3dc0be3325bef320d9c04b50714ef0ce1e36a614d687633"
-
-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} 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/usbpath/usbpath/configure.patch b/meta-oe/recipes-support/usbpath/usbpath/configure.patch
deleted file mode 100644
index 271e6a53ad..0000000000
--- a/meta-oe/recipes-support/usbpath/usbpath/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Index: usbpath/configure.ac
-===================================================================
---- usbpath.orig/configure.ac 2014-07-17 20:40:26.000000000 +0000
-+++ usbpath/configure.ac 2014-07-18 07:01:40.933474420 +0000
-@@ -1,5 +1,5 @@
- AC_INIT([usbpath],[0.1])
--AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
-+AM_INIT_AUTOMAKE([foreign])
-
- AC_PROG_CC
- AC_PROG_RANLIB
diff --git a/meta-oe/recipes-support/usbpath/usbpath_svn.bb b/meta-oe/recipes-support/usbpath/usbpath_svn.bb
deleted file mode 100644
index 6c9cd049fe..0000000000
--- a/meta-oe/recipes-support/usbpath/usbpath_svn.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Convert the physical locations of a USB device to/from its number"
-AUTHOR = "Werner Almesberger <werner@openmoko.org>"
-SECTION = "console/utils"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://usbpath.c;endline=20;md5=0aa8c7d2af9110c78a99fbf9a504dc3f"
-DEPENDS = "virtual/libusb0"
-DEPENDS_class-native = "virtual/libusb0-native"
-
-BBCLASSEXTEND = "native"
-
-SRCREV = "3172"
-PV = "0.0+svnr${SRCPV}"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/host;module=usbpath;protocol=http \
- file://configure.patch"
-
-S = "${WORKDIR}/usbpath"
-
-inherit autotools pkgconfig
-
-RDEPENDS_${PN} += "perl"
diff --git a/meta-oe/recipes-support/uthash/uthash_2.0.2.bb b/meta-oe/recipes-support/uthash/uthash_2.0.2.bb
deleted file mode 100644
index ccdd13b32d..0000000000
--- a/meta-oe/recipes-support/uthash/uthash_2.0.2.bb
+++ /dev/null
@@ -1,46 +0,0 @@
-SUMMARY = "Hash table and linked list for C structures"
-DESCRIPTION = " uthash-dev provides a hash table implementation using C preprocessor macros.\n\
- This package also includes:\n\
- * utlist.h provides linked list macros for C structures\n\
- * utarray.h implements dynamic arrays using macros\n\
- * utstring.h implements a basic dynamic string\n\
-"
-HOMEPAGE = "https://troydhanson.github.io/uthash/"
-SECTION = "base"
-LICENSE = "BSD-1-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5cc1f1e4c71f19f580458586756c02b4"
-
-SRC_URI = "\
- https://github.com/troydhanson/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
- file://run-ptest \
-"
-UPSTREAM_CHECK_URI = "https://github.com/troydhanson/${BPN}/releases"
-
-SRC_URI[md5sum] = "d08632a58674274c9cd87e2930f5696a"
-SRC_URI[sha256sum] = "34a31d51dd7a839819cecd6f46049b4ffe031d7f3147d9a042f5504fdb1348d1"
-
-inherit ptest
-
-do_compile[noexec] = "1"
-
-do_compile_ptest() {
- oe_runmake -C tests tests_only TEST_TARGET=
-}
-
-do_install () {
- install -dm755 ${D}${includedir}
- install -m0644 src/*.h ${D}${includedir}
-}
-
-do_install_ptest() {
- install -dm755 ${D}${PTEST_PATH}/tests
- install -m0755 tests/test*[0-9] ${D}${PTEST_PATH}/tests
- install -m0644 tests/test*[0-9].ans ${D}${PTEST_PATH}/tests
- install -m0644 tests/test*[0-9].dat ${D}${PTEST_PATH}/tests
-}
-
-# The main package is empty and non-existent, so -dev
-# should not depend on it...
-RDEPENDS_${PN}-dev = ""
-
-BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/uthash/uthash_2.3.0.bb b/meta-oe/recipes-support/uthash/uthash_2.3.0.bb
new file mode 100644
index 0000000000..ef15613586
--- /dev/null
+++ b/meta-oe/recipes-support/uthash/uthash_2.3.0.bb
@@ -0,0 +1,46 @@
+SUMMARY = "Hash table and linked list for C structures"
+DESCRIPTION = " uthash-dev provides a hash table implementation using C preprocessor macros.\n\
+ This package also includes:\n\
+ * utlist.h provides linked list macros for C structures\n\
+ * utarray.h implements dynamic arrays using macros\n\
+ * utstring.h implements a basic dynamic string\n\
+"
+HOMEPAGE = "https://troydhanson.github.io/uthash/"
+SECTION = "base"
+LICENSE = "BSD-1-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=736712b5904dd42f8678df7172bc5f2b"
+SRCREV = "e493aa90a2833b4655927598f169c31cfcdf7861"
+
+SRC_URI = "\
+ git://github.com/troydhanson/${BPN}.git;branch=master;protocol=https \
+ file://run-ptest \
+"
+
+S = "${WORKDIR}/git"
+
+inherit ptest
+
+do_compile[noexec] = "1"
+
+do_compile_ptest() {
+ oe_runmake -C tests tests_only TEST_TARGET=
+}
+
+do_install () {
+ install -dm755 ${D}${includedir}
+ install -m0644 src/*.h ${D}${includedir}
+}
+
+do_install_ptest() {
+ install -dm755 ${D}${PTEST_PATH}/tests
+ install -m0755 tests/test*[0-9] ${D}${PTEST_PATH}/tests
+ install -m0644 tests/test*[0-9].ans ${D}${PTEST_PATH}/tests
+ install -m0644 tests/test*[0-9].dat ${D}${PTEST_PATH}/tests
+}
+
+# The main package is empty and non-existent, so -dev
+# should not depend on it...
+RDEPENDS:${PN}-dev = ""
+RDEPENDS:${PN}-ptest:remove = "${PN}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
new file mode 100644
index 0000000000..7cfd470430
--- /dev/null
+++ b/meta-oe/recipes-support/utouch/utouch-evemu/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -0,0 +1,79 @@
+From 60987a1df8eb8c9196222375574dcd7bc0ad2daa Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Nov 2019 20:23:27 -0800
+Subject: [PATCH] Fix build on 32bit arches with 64bit time_t
+
+time element is deprecated on new input_event structure in kernel's
+input.h [1]
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/evemu-impl.h | 5 +++++
+ src/evemu.c | 20 ++++++++++++--------
+ 2 files changed, 17 insertions(+), 8 deletions(-)
+
+diff --git a/src/evemu-impl.h b/src/evemu-impl.h
+index acf2976..c08d861 100644
+--- a/src/evemu-impl.h
++++ b/src/evemu-impl.h
+@@ -21,6 +21,11 @@
+ #include <evemu.h>
+ #include <linux/uinput.h>
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ #define EVPLAY_NBITS KEY_CNT
+ #define EVPLAY_NBYTES ((EVPLAY_NBITS + 7) / 8)
+
+diff --git a/src/evemu.c b/src/evemu.c
+index 21187af..7489449 100644
+--- a/src/evemu.c
++++ b/src/evemu.c
+@@ -363,7 +363,7 @@ int evemu_read(struct evemu_device *dev, FILE *fp)
+ int evemu_write_event(FILE *fp, const struct input_event *ev)
+ {
+ return fprintf(fp, "E: %lu.%06u %04x %04x %d\n",
+- ev->time.tv_sec, (unsigned)ev->time.tv_usec,
++ ev->input_event_sec, (unsigned)ev->input_event_usec,
+ ev->type, ev->code, ev->value);
+ }
+
+@@ -391,8 +391,8 @@ int evemu_read_event(FILE *fp, struct input_event *ev)
+ int value;
+ int ret = fscanf(fp, "E: %lu.%06u %04x %04x %d\n",
+ &sec, &usec, &type, &code, &value);
+- ev->time.tv_sec = sec;
+- ev->time.tv_usec = usec;
++ ev->input_event_sec = sec;
++ ev->input_event_usec = usec;
+ ev->type = type;
+ ev->code = code;
+ ev->value = value;
+@@ -410,13 +411,16 @@ int evemu_read_event_realtime(FILE *fp, struct input_event *ev,
+ return ret;
+
+ if (evtime) {
+- if (!evtime->tv_sec)
+- *evtime = ev->time;
+- usec = 1000000L * (ev->time.tv_sec - evtime->tv_sec);
+- usec += ev->time.tv_usec - evtime->tv_usec;
++ if (!evtime->tv_sec) {
++ evtime->tv_sec = ev->input_event_sec;
++ evtime->tv_usec = ev->input_event_usec;
++ }
++ usec = (ev->input_event_sec - evtime->tv_sec) * 1000000L;
++ usec += ev->input_event_usec - evtime->tv_usec;
+ if (usec > 500) {
+ usleep(usec);
+- *evtime = ev->time;
++ evtime->tv_sec = ev->input_event_sec;
++ evtime->tv_usec = ev->input_event_usec;
+ }
+ }
+
diff --git a/meta-oe/recipes-support/utouch/utouch-evemu_git.bb b/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
index 1dd5a86d50..a6d09f69e9 100644
--- a/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
+++ b/meta-oe/recipes-support/utouch/utouch-evemu_git.bb
@@ -2,16 +2,18 @@ SUMMARY = "Kernel evdev device emulation"
DESCRIPTION = "The evemu library and tools are used to describe devices, record data, create devices and replay data from kernel evdev devices. "
HOMEPAGE = "http://bitmath.org/code/evemu/"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=f27defe1e96c2e1ecd4e0c9be8967949"
inherit autotools
-SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http"
+SRC_URI = "git://bitmath.org/git/evemu.git;protocol=http;branch=master \
+ file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
+ "
SRCREV = "9752b50e922572e4cd214ac45ed95e4ee410fe24"
-PV = "1.0.5+git${SRCPV}"
+PV = "1.0.6+git${SRCPV}"
-S = "${WORKDIR}/git/"
+S = "${WORKDIR}/git"
PARALLEL_MAKE = ""
diff --git a/meta-oe/recipes-support/utouch/utouch-frame/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-oe/recipes-support/utouch/utouch-frame/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
new file mode 100644
index 0000000000..d405d43f14
--- /dev/null
+++ b/meta-oe/recipes-support/utouch/utouch-frame/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -0,0 +1,41 @@
+From 895b6996e232700fb2a428838feaef418cc64b70 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Nov 2019 22:52:13 -0800
+Subject: [PATCH] Fix build on 32bit arches with 64bit time_t
+
+time element is deprecated on new input_event structure in kernel's
+input.h [1]
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/frame-mtdev.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/frame-mtdev.c b/src/frame-mtdev.c
+index c0f15d8..42ad380 100644
+--- a/src/frame-mtdev.c
++++ b/src/frame-mtdev.c
+@@ -25,6 +25,11 @@
+ #include <errno.h>
+ #include <math.h>
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ static int is_pointer(const struct evemu_device *dev)
+ {
+ return evemu_has_event(dev, EV_REL, REL_X) ||
+@@ -200,7 +205,7 @@ static int handle_abs_event(utouch_frame_handle fh,
+ static utouch_frame_time_t get_evtime_ms(const struct input_event *syn)
+ {
+ static const utouch_frame_time_t ms = 1000;
+- return syn->time.tv_usec / ms + syn->time.tv_sec * ms;
++ return syn->input_event_usec / ms + syn->input_event_sec * ms;
+ }
+
+ const struct utouch_frame *
diff --git a/meta-oe/recipes-support/utouch/files/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/files/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/files/remove-man-page-creation.patch b/meta-oe/recipes-support/utouch/utouch-frame/remove-man-page-creation.patch
index 8706d91234..8706d91234 100644
--- a/meta-oe/recipes-support/utouch/files/remove-man-page-creation.patch
+++ b/meta-oe/recipes-support/utouch/utouch-frame/remove-man-page-creation.patch
diff --git a/meta-oe/recipes-support/utouch/utouch-frame_git.bb b/meta-oe/recipes-support/utouch/utouch-frame_git.bb
index 39d46af8e9..3b1cf60c27 100644
--- a/meta-oe/recipes-support/utouch/utouch-frame_git.bb
+++ b/meta-oe/recipes-support/utouch/utouch-frame_git.bb
@@ -2,19 +2,20 @@ SUMMARY = "Touch Frame Library"
DESCRIPTION = "The frame library and tools are used to handle touch frames, i.e., collections of tracked contacts. Bindings for mtdev and XI2.1."
HOMEPAGE = "http://bitmath.org/code/frame/"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
DEPENDS += "mtdev utouch-evemu"
inherit autotools pkgconfig
-SRC_URI = "git://bitmath.org/git/frame.git;protocol=http \
+SRC_URI = "git://bitmath.org/git/frame.git;protocol=http;branch=master \
file://remove-man-page-creation.patch \
file://0001-include-sys-stat.h-for-fixing-build-issue-on-musl.patch \
+ file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
"
SRCREV = "95363d5a1f7394d71144bf3b408ef4e6db4350fc"
PV = "1.1.2+git${SRCPV}"
-S = "${WORKDIR}/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 8cb180dc8b..e348e39bba 100644
--- a/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
+++ b/meta-oe/recipes-support/utouch/utouch-mtview_git.bb
@@ -2,18 +2,18 @@ SUMMARY = "Multitouch viewer"
DESCRIPTION = "mtview is a small X application that shows a graphical view of your MT-enabled hardware. It uses mtdev."
HOMEPAGE = "http://bitmath.org/code/mtview/"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=4c61b8950dc1aab4d2aa7c2ae6b1cfb3"
-inherit autotools pkgconfig distro_features_check
+inherit autotools pkgconfig features_check
# depends on virtual/libx11
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "git://bitmath.org/git/mtview.git;protocol=http"
+SRC_URI = "git://bitmath.org/git/mtview.git;protocol=http;branch=master"
SRCREV = "ad437c38dc111cf3990a03abf14efe1b5d89604b"
DEPENDS += "mtdev utouch-frame utouch-evemu libx11"
PV = "1.1.7+git${SRCPV}"
-S = "${WORKDIR}/git/"
+S = "${WORKDIR}/git"
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils
index 495601f08f..5982e2d08c 100644
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils
+++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers/Makefile.utils
@@ -13,7 +13,7 @@
INCLUDES = -I. -I../vboxsf -I../vboxsf/include
MOD_DEFS = -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 \
-DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODULE -DIN_GUEST_R0
-CFLAGS = ${INCLUDES} ${MOD_DEFS}
+CFLAGS = ${INCLUDES} ${MOD_DEFS} ${EXTRA_CFLAGS}
LDFLAGS =
SRCS = mount.vboxsf.c \
diff --git a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
deleted file mode 100644
index e00db4d7e0..0000000000
--- a/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_5.2.8.bb
+++ /dev/null
@@ -1,78 +0,0 @@
-SUMMARY = "VirtualBox Linux Guest Drivers"
-SECTION = "core"
-LICENSE = "GPL-2.0"
-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[md5sum] = "e731ea9c5c31096ec4c2a3bfba26665c"
-SRC_URI[sha256sum] = "ee2759d47b0b4ac81b8b671c9485c87fb2db12c097b3e7e69b94c1291a8084e8"
-
-S = "${WORKDIR}/vbox_module"
-
-export BUILD_TARGET_ARCH="${ARCH}"
-export BUILD_TARGET_ARCH_x86-64="amd64"
-
-EXTRA_OEMAKE += "KERN_DIR='${WORKDIR}/${KERNEL_VERSION}/build'"
-
-addtask export_sources before do_patch after do_unpack
-
-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
-
-}
-
-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_append() {
- oe_runmake 'LD=${CC}' '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.10.bb b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.bb
new file mode 100644
index 0000000000..f193636524
--- /dev/null
+++ b/meta-oe/recipes-support/vboxguestdrivers/vboxguestdrivers_7.0.10.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] = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371"
+
+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/vim/files/CVE-2017-17087.patch b/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
deleted file mode 100644
index 937b9ba317..0000000000
--- a/meta-oe/recipes-support/vim/files/CVE-2017-17087.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 9c11f80339372b7aa2f43153d574f2b5abb79708 Mon Sep 17 00:00:00 2001
-From: Li Zhou <li.zhou@windriver.com>
-Date: Sun, 17 Dec 2017 23:09:35 -0800
-Subject: [PATCH] vim: patch 8.0.1263: others can read the swap file if a user
- is careless
-
-Problem: Others can read the swap file if a user is careless with his
- primary group.
-Solution: If the group permission allows for reading but the world
- permissions doesn't, make sure the group is right.
-
-Upstream-Status: Backport
-CVE: CVE-2017-17087
-Signed-off-by: Li Zhou <li.zhou@windriver.com>
----
- src/fileio.c | 24 +++++++++++++++++++++++-
- src/version.c | 2 ++
- 2 files changed, 25 insertions(+), 1 deletion(-)
-
-diff --git a/src/fileio.c b/src/fileio.c
-index f54fb8465..2c7740af9 100644
---- a/src/fileio.c
-+++ b/src/fileio.c
-@@ -716,7 +716,29 @@ readfile(
- /* Set swap file protection bits after creating it. */
- if (swap_mode > 0 && curbuf->b_ml.ml_mfp != NULL
- && curbuf->b_ml.ml_mfp->mf_fname != NULL)
-- (void)mch_setperm(curbuf->b_ml.ml_mfp->mf_fname, (long)swap_mode);
-+ {
-+ char_u *swap_fname = curbuf->b_ml.ml_mfp->mf_fname;
-+
-+ /*
-+ * If the group-read bit is set but not the world-read bit, then
-+ * the group must be equal to the group of the original file. If
-+ * we can't make that happen then reset the group-read bit. This
-+ * avoids making the swap file readable to more users when the
-+ * primary group of the user is too permissive.
-+ */
-+ if ((swap_mode & 044) == 040)
-+ {
-+ stat_T swap_st;
-+
-+ if (mch_stat((char *)swap_fname, &swap_st) >= 0
-+ && st.st_gid != swap_st.st_gid
-+ && fchown(curbuf->b_ml.ml_mfp->mf_fd, -1, st.st_gid)
-+ == -1)
-+ swap_mode &= 0600;
-+ }
-+
-+ (void)mch_setperm(swap_fname, (long)swap_mode);
-+ }
- #endif
- }
-
-diff --git a/src/version.c b/src/version.c
-index a5cb078f0..5c0df475f 100644
---- a/src/version.c
-+++ b/src/version.c
-@@ -770,6 +770,8 @@ static char *(features[]) =
- static int included_patches[] =
- { /* Add new patch number below this line */
- /**/
-+ 1263,
-+/**/
- 983,
- /**/
- 982,
---
-2.11.0
-
diff --git a/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch b/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
deleted file mode 100644
index 65e5f58c61..0000000000
--- a/meta-oe/recipes-support/vim/files/disable_acl_header_check.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Upstream-Status: pending
-
-Don't check 'sys/acl.h' if acl support disabled for vim/vim-tiny.
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
-================================================
-diff --git a/src/configure.ac b/src/configure.ac
-index fb965e5..d734064 100644
---- a/src/configure.ac
-+++ b/src/configure.ac
-@@ -2511,7 +2511,7 @@ AC_CHECK_HEADERS(stdarg.h stdint.h stdlib.h string.h \
- sys/systeminfo.h locale.h sys/stream.h termios.h \
- libc.h sys/statfs.h poll.h sys/poll.h pwd.h \
- utime.h sys/param.h libintl.h libgen.h \
-- util/debug.h util/msg18n.h frame.h sys/acl.h \
-+ util/debug.h util/msg18n.h frame.h \
- sys/access.h sys/sysinfo.h wchar.h wctype.h)
-
- dnl sys/ptem.h depends on sys/stream.h on Solaris
-@@ -3112,6 +3112,7 @@ AC_ARG_ENABLE(acl,
- , [enable_acl="yes"])
- if test "$enable_acl" = "yes"; then
- AC_MSG_RESULT(no)
-+AC_CHECK_HEADERS(sys/acl.h)
- AC_CHECK_LIB(posix1e, acl_get_file, [LIBS="$LIBS -lposix1e"],
- AC_CHECK_LIB(acl, acl_get_file, [LIBS="$LIBS -lacl"
- AC_CHECK_LIB(attr, fgetxattr, LIBS="$LIBS -lattr",,)],,),)
diff --git a/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch b/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
deleted file mode 100644
index 6c620f9f27..0000000000
--- a/meta-oe/recipes-support/vim/files/vim-add-knob-whether-elf.h-are-checked.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-vim: add knob whether elf.h are checked
-
-Previously, it still was checked when there was no elf library in sysroots directory.
-Add knob to decide whether elf.h are checked or not.
-
-Upstream-status: Pending
-
-Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
----
- src/configure.ac | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/src/configure.ac b/src/configure.ac
-index d734064..f504fa6 100644
---- a/src/configure.ac
-+++ b/src/configure.ac
-@@ -2483,11 +2483,18 @@ AC_TRY_COMPILE([#include <stdio.h>], [int x __attribute__((unused));],
- AC_MSG_RESULT(no))
-
- dnl Checks for header files.
-+AC_MSG_CHECKING(whether or not to look for elf.h)
-+AC_ARG_ENABLE(elf-check,
-+ [ --enable-elf-check If elfutils, check for elf.h [default=no]],
-+ , enable_elf_check="no")
-+AC_MSG_RESULT($enable_elf_check)
-+if test "x$enable_elf_check" != "xno"; then
- AC_CHECK_HEADER(elf.h, HAS_ELF=1)
- dnl AC_CHECK_HEADER(dwarf.h, SVR4=1)
- if test "$HAS_ELF" = 1; then
- AC_CHECK_LIB(elf, main)
- fi
-+fi
-
- AC_HEADER_DIRENT
-
---
-1.7.9.5
-
diff --git a/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb b/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
deleted file mode 100644
index bb8f2b7eae..0000000000
--- a/meta-oe/recipes-support/vim/vim-tiny_8.0.0983.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-require vim_${PV}.bb
-
-SUMMARY += " (with tiny features)"
-
-PACKAGECONFIG += "tiny"
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 0755 ${S}/vim ${D}/${bindir}/vim.tiny
-}
-
-ALTERNATIVE_PRIORITY = "90"
-ALTERNATIVE_TARGET = "${bindir}/vim.tiny"
diff --git a/meta-oe/recipes-support/vim/vim_8.0.0983.bb b/meta-oe/recipes-support/vim/vim_8.0.0983.bb
deleted file mode 100644
index 44c868c74a..0000000000
--- a/meta-oe/recipes-support/vim/vim_8.0.0983.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-SUMMARY = "Vi IMproved - enhanced vi editor"
-SECTION = "console/utils"
-DEPENDS = "ncurses gettext-native"
-# vimdiff doesn't like busybox diff
-RSUGGESTS_${PN} = "diffutils"
-LICENSE = "vim"
-LIC_FILES_CHKSUM = "file://../runtime/doc/uganda.txt;md5=eea32ac1424bba14096736a494ae9045"
-
-SRC_URI = "git://github.com/vim/vim.git \
- file://disable_acl_header_check.patch;patchdir=.. \
- file://vim-add-knob-whether-elf.h-are-checked.patch;patchdir=.. \
- file://CVE-2017-17087.patch;patchdir=.. \
-"
-SRCREV = "3f9a1ff141412e9e85f7dff47d02946cb9be9228"
-
-S = "${WORKDIR}/git/src"
-
-VIMDIR = "vim${@d.getVar('PV').split('.')[0]}${@d.getVar('PV').split('.')[1]}"
-
-inherit autotools-brokensep update-alternatives
-
-CLEANBROKEN = "1"
-
-# vim configure.in contains functions which got 'dropped' by autotools.bbclass
-do_configure () {
- rm -f auto/*
- touch auto/config.mk
- aclocal
- autoconf
- oe_runconf
- touch auto/configure
- touch auto/config.mk auto/config.h
-}
-
-#Available PACKAGECONFIG options are gtkgui, acl, x11, tiny
-PACKAGECONFIG ??= ""
-PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl selinux', d)}"
-
-PACKAGECONFIG[gtkgui] = "--enable-gtk2-test --enable-gui=gtk2,--enable-gui=no,gtk+,"
-PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
-PACKAGECONFIG[x11] = "--with-x,--without-x,xt,"
-PACKAGECONFIG[tiny] = "--with-features=tiny,--with-features=big,,"
-PACKAGECONFIG[selinux] = "--enable-selinux,--disable-selinux,libselinux,"
-PACKAGECONFIG[elfutils] = "--enable-elf-check,,elfutils,"
-
-EXTRA_OECONF = " \
- --disable-gpm \
- --disable-gtktest \
- --disable-xim \
- --disable-netbeans \
- --with-tlib=ncurses \
- ac_cv_small_wchar_t=no \
- vim_cv_getcwd_broken=no \
- vim_cv_memmove_handles_overlap=yes \
- vim_cv_stat_ignores_slash=no \
- vim_cv_terminfo=yes \
- vim_cv_tgent=non-zero \
- vim_cv_toupper_broken=no \
- vim_cv_tty_group=world \
- STRIP=/bin/true \
-"
-
-do_install() {
- autotools_do_install
-
- # Work around file-rdeps picking up csh, awk, perl or python as a dep
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/vim132
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/mve.awk
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.pl
- chmod -x ${D}${datadir}/${BPN}/${VIMDIR}/tools/*.py
-
- # Install example vimrc from runtime files
- install -m 0644 ../runtime/vimrc_example.vim ${D}/${datadir}/${BPN}/vimrc
-
- # we use --with-features=big as default
- mv ${D}${bindir}/${BPN} ${D}${bindir}/${BPN}.${BPN}
-}
-
-PARALLEL_MAKEINST = ""
-
-PACKAGES =+ "${PN}-common ${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-tools"
-FILES_${PN}-syntax = "${datadir}/${BPN}/${VIMDIR}/syntax"
-FILES_${PN}-help = "${datadir}/${BPN}/${VIMDIR}/doc"
-FILES_${PN}-tutor = "${datadir}/${BPN}/${VIMDIR}/tutor ${bindir}/${BPN}tutor"
-FILES_${PN}-vimrc = "${datadir}/${BPN}/vimrc"
-FILES_${PN}-data = "${datadir}/${BPN}"
-FILES_${PN}-tools = "${datadir}/${BPN}/${VIMDIR}/tools"
-FILES_${PN}-common = " \
- ${datadir}/${BPN}/${VIMDIR}/*.vim \
- ${datadir}/${BPN}/${VIMDIR}/autoload \
- ${datadir}/${BPN}/${VIMDIR}/colors \
- ${datadir}/${BPN}/${VIMDIR}/compiler \
- ${datadir}/${BPN}/${VIMDIR}/ftplugin \
- ${datadir}/${BPN}/${VIMDIR}/indent \
- ${datadir}/${BPN}/${VIMDIR}/keymap \
- ${datadir}/${BPN}/${VIMDIR}/lang \
- ${datadir}/${BPN}/${VIMDIR}/macros \
- ${datadir}/${BPN}/${VIMDIR}/plugin \
- ${datadir}/${BPN}/${VIMDIR}/print \
- ${datadir}/${BPN}/${VIMDIR}/spell \
- ${datadir}/icons \
-"
-
-RDEPENDS_${BPN} = "ncurses-terminfo-base"
-# Recommend that runtime data is installed along with vim
-RRECOMMENDS_${BPN} = "${PN}-syntax ${PN}-help ${PN}-tutor ${PN}-vimrc ${PN}-common"
-
-ALTERNATIVE_${PN} = "vi vim"
-ALTERNATIVE_TARGET = "${bindir}/${BPN}.${BPN}"
-ALTERNATIVE_LINK_NAME[vi] = "${base_bindir}/vi"
-ALTERNATIVE_LINK_NAME[vim] = "${bindir}/vim"
-ALTERNATIVE_PRIORITY = "100"
-
-BBCLASSEXTEND = "native"
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..8ae39f14e1
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch
@@ -0,0 +1,29 @@
+From 10cfdcc905915d8814c609008a069102f2bc7e39 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 af039cbb..b3e810cd 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-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch
new file mode 100644
index 0000000000..bbe265059d
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch
@@ -0,0 +1,28 @@
+From cd65e3d9256a4f6eb7906a9f10678c29a4ffef2f Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Mon, 26 Jun 2023 14:30:02 +0200
+Subject: [PATCH] Source/JavaScriptCore/CMakeLists.txt: ensure reproducibility
+ of __TIMESTAMP__
+
+__TIMESTAMP__ refers to mtime of the file that contains it, which is unstable
+and breaks binary reproducibility when the file is generated at build time. To ensure
+this does not happen, mtime should be set from the original file.
+
+Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/15293]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ Source/JavaScriptCore/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt
+index 43dc22ff..c2e3b1cd 100644
+--- a/Source/JavaScriptCore/CMakeLists.txt
++++ b/Source/JavaScriptCore/CMakeLists.txt
+@@ -159,6 +159,7 @@ add_custom_command(
+ OUTPUT ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
+ MAIN_DEPENDENCY ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in
+ COMMAND ${PERL_EXECUTABLE} -pe s/CACHED_TYPES_CKSUM/__TIMESTAMP__/ ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in > ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
++ COMMAND touch -r ${JAVASCRIPTCORE_DIR}/runtime/JSCBytecodeCacheVersion.cpp.in ${JavaScriptCore_DERIVED_SOURCES_DIR}/JSCBytecodeCacheVersion.cpp
+ VERBATIM
+ )
+
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch
new file mode 100644
index 0000000000..34e0ff9af3
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/0d3344e17d258106617b0e6d783d073b188a2548.patch
@@ -0,0 +1,310 @@
+From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001
+From: Adrian Perez de Castro <aperez@igalia.com>
+Date: Thu, 2 Jun 2022 11:19:06 +0300
+Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path seems
+ unused https://bugs.webkit.org/show_bug.cgi?id=241182
+
+Reviewed by NOBODY (OOPS!).
+
+Move the NEON fast path for the SVG lighting filter effects into
+FELightingSoftwareApplier, and arrange to actually use them by
+forwarding calls to applyPlatformGeneric() into applyPlatformNeon().
+
+Some changes were needed to adapt platformApplyNeon() to the current
+state of filters after r286140. This was not detected because the code
+bitrotted due to it being guarded with CPU(ARM_TRADITIONAL), which does
+not get used much these days: CPU(ARM_THUMB2) is more common. It should
+be possible to use the NEON fast paths also in Thumb mode, but that is
+left for a follow-up fix.
+
+* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp:
+(WebCore::FELightingSoftwareApplier::platformApplyNeonWorker):
+(WebCore::FELightingSoftwareApplier::getPowerCoefficients):
+(WebCore::FELighting::platformApplyNeonWorker): Deleted.
+(WebCore::FELighting::getPowerCoefficients): Deleted.
+* Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h:
+(WebCore::FELightingSoftwareApplier::applyPlatformNeon):
+(WebCore::FELighting::platformApplyNeon): Deleted.
+* Source/WebCore/platform/graphics/filters/DistantLightSource.h:
+* Source/WebCore/platform/graphics/filters/FELighting.h:
+* Source/WebCore/platform/graphics/filters/PointLightSource.h:
+* Source/WebCore/platform/graphics/filters/SpotLightSource.h:
+* Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h:
+
+Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ .../cpu/arm/filters/FELightingNEON.cpp | 4 +-
+ .../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++----------
+ .../graphics/filters/DistantLightSource.h | 4 ++
+ .../platform/graphics/filters/FELighting.h | 7 ---
+ .../graphics/filters/PointLightSource.h | 4 ++
+ .../graphics/filters/SpotLightSource.h | 4 ++
+ .../software/FELightingSoftwareApplier.h | 16 ++++++
+ 7 files changed, 56 insertions(+), 35 deletions(-)
+
+diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
+index f6ff8c20..42a97ffc 100644
+--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.cpp
+@@ -49,7 +49,7 @@ short* feLightingConstantsForNeon()
+ return s_FELightingConstantsForNeon;
+ }
+
+-void FELighting::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
++void FELightingSoftwareApplier::platformApplyNeonWorker(FELightingPaintingDataForNeon* parameters)
+ {
+ neonDrawLighting(parameters);
+ }
+@@ -464,7 +464,7 @@ TOSTRING(neonDrawLighting) ":" NL
+ "b .lightStrengthCalculated" NL
+ ); // NOLINT
+
+-int FELighting::getPowerCoefficients(float exponent)
++int FELightingSoftwareApplier::getPowerCoefficients(float exponent)
+ {
+ // Calling a powf function from the assembly code would require to save
+ // and reload a lot of NEON registers. Since the base is in range [0..1]
+diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
+index b17c603d..e4629cda 100644
+--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
++++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FELightingNEON.h
+@@ -24,14 +24,15 @@
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+-#ifndef FELightingNEON_h
+-#define FELightingNEON_h
++#pragma once
+
+ #if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
+
+-#include "FELighting.h"
++#include "FELightingSoftwareApplier.h"
++#include "ImageBuffer.h"
+ #include "PointLightSource.h"
+ #include "SpotLightSource.h"
++#include <wtf/ObjectIdentifier.h>
+ #include <wtf/ParallelJobs.h>
+
+ namespace WebCore {
+@@ -93,14 +94,14 @@ extern "C" {
+ void neonDrawLighting(FELightingPaintingDataForNeon*);
+ }
+
+-inline void FELighting::platformApplyNeon(const LightingData& data, const LightSource::PaintingData& paintingData)
++inline void FELightingSoftwareApplier::applyPlatformNeon(const FELightingSoftwareApplier::LightingData& data, const LightSource::PaintingData& paintingData)
+ {
+- alignas(16) FELightingFloatArgumentsForNeon floatArguments;
+- FELightingPaintingDataForNeon neonData = {
++ WebCore::FELightingFloatArgumentsForNeon alignas(16) floatArguments;
++ WebCore::FELightingPaintingDataForNeon neonData = {
+ data.pixels->data(),
+ 1,
+- data.widthDecreasedByOne - 1,
+- data.heightDecreasedByOne - 1,
++ data.width - 2,
++ data.height - 2,
+ 0,
+ 0,
+ 0,
+@@ -111,23 +112,23 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+ // Set light source arguments.
+ floatArguments.constOne = 1;
+
+- auto color = m_lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
++ auto color = data.lightingColor.toColorTypeLossy<SRGBA<uint8_t>>().resolved();
+
+ floatArguments.colorRed = color.red;
+ floatArguments.colorGreen = color.green;
+ floatArguments.colorBlue = color.blue;
+ floatArguments.padding4 = 0;
+
+- if (m_lightSource->type() == LS_POINT) {
++ if (data.lightSource->type() == LS_POINT) {
+ neonData.flags |= FLAG_POINT_LIGHT;
+- PointLightSource& pointLightSource = static_cast<PointLightSource&>(m_lightSource.get());
++ const auto& pointLightSource = *static_cast<const PointLightSource*>(data.lightSource);
+ floatArguments.lightX = pointLightSource.position().x();
+ floatArguments.lightY = pointLightSource.position().y();
+ floatArguments.lightZ = pointLightSource.position().z();
+ floatArguments.padding2 = 0;
+- } else if (m_lightSource->type() == LS_SPOT) {
++ } else if (data.lightSource->type() == LS_SPOT) {
+ neonData.flags |= FLAG_SPOT_LIGHT;
+- SpotLightSource& spotLightSource = static_cast<SpotLightSource&>(m_lightSource.get());
++ const auto& spotLightSource = *static_cast<const SpotLightSource*>(data.lightSource);
+ floatArguments.lightX = spotLightSource.position().x();
+ floatArguments.lightY = spotLightSource.position().y();
+ floatArguments.lightZ = spotLightSource.position().z();
+@@ -145,7 +146,7 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+ if (spotLightSource.specularExponent() == 1)
+ neonData.flags |= FLAG_CONE_EXPONENT_IS_1;
+ } else {
+- ASSERT(m_lightSource->type() == LS_DISTANT);
++ ASSERT(data.lightSource->type() == LS_DISTANT);
+ floatArguments.lightX = paintingData.initialLightingData.lightVector.x();
+ floatArguments.lightY = paintingData.initialLightingData.lightVector.y();
+ floatArguments.lightZ = paintingData.initialLightingData.lightVector.z();
+@@ -155,38 +156,39 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+ // Set lighting arguments.
+ floatArguments.surfaceScale = data.surfaceScale;
+ floatArguments.minusSurfaceScaleDividedByFour = -data.surfaceScale / 4;
+- if (m_lightingType == FELighting::DiffuseLighting)
+- floatArguments.diffuseConstant = m_diffuseConstant;
++ if (data.filterType == FilterEffect::Type::FEDiffuseLighting)
++ floatArguments.diffuseConstant = data.diffuseConstant;
+ else {
+ neonData.flags |= FLAG_SPECULAR_LIGHT;
+- floatArguments.diffuseConstant = m_specularConstant;
+- neonData.specularExponent = getPowerCoefficients(m_specularExponent);
+- if (m_specularExponent == 1)
++ floatArguments.diffuseConstant = data.specularConstant;
++ neonData.specularExponent = getPowerCoefficients(data.specularExponent);
++ if (data.specularExponent == 1)
+ neonData.flags |= FLAG_SPECULAR_EXPONENT_IS_1;
+ }
+ if (floatArguments.diffuseConstant == 1)
+ neonData.flags |= FLAG_DIFFUSE_CONST_IS_1;
+
+- int optimalThreadNumber = ((data.widthDecreasedByOne - 1) * (data.heightDecreasedByOne - 1)) / s_minimalRectDimension;
++ static constexpr int minimalRectDimension = 100 * 100; // Empirical data limit for parallel jobs
++ int optimalThreadNumber = ((data.width - 2) * (data.height - 2)) / minimalRectDimension;
+ if (optimalThreadNumber > 1) {
+ // Initialize parallel jobs
+- ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&WebCore::FELighting::platformApplyNeonWorker, optimalThreadNumber);
++ ParallelJobs<FELightingPaintingDataForNeon> parallelJobs(&FELightingSoftwareApplier::platformApplyNeonWorker, optimalThreadNumber);
+
+ // Fill the parameter array
+ int job = parallelJobs.numberOfJobs();
+ if (job > 1) {
+ int yStart = 1;
+- int yStep = (data.heightDecreasedByOne - 1) / job;
++ int yStep = (data.height - 2) / job;
+ for (--job; job >= 0; --job) {
+ FELightingPaintingDataForNeon& params = parallelJobs.parameter(job);
+ params = neonData;
+ params.yStart = yStart;
+- params.pixels += (yStart - 1) * (data.widthDecreasedByOne + 1) * 4;
++ params.pixels += (yStart - 1) * data.width * 4;
+ if (job > 0) {
+ params.absoluteHeight = yStep;
+ yStart += yStep;
+ } else
+- params.absoluteHeight = data.heightDecreasedByOne - yStart;
++ params.absoluteHeight = (data.height - 1) - yStart;
+ }
+ parallelJobs.execute();
+ return;
+@@ -199,5 +201,3 @@ inline void FELighting::platformApplyNeon(const LightingData& data, const LightS
+ } // namespace WebCore
+
+ #endif // CPU(ARM_NEON) && COMPILER(GCC_COMPATIBLE)
+-
+-#endif // FELightingNEON_h
+diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
+index 70c6512f..b032c82e 100644
+--- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h
++++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
+@@ -26,6 +26,10 @@
+ #include <wtf/ArgumentCoder.h>
+ #include <wtf/Ref.h>
+
++namespace WTF {
++class TextStream;
++} // namespace WTF
++
+ namespace WebCore {
+
+ class DistantLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
+index 53beb596..e78a9354 100644
+--- a/Source/WebCore/platform/graphics/filters/FELighting.h
++++ b/Source/WebCore/platform/graphics/filters/FELighting.h
+@@ -35,8 +35,6 @@
+
+ namespace WebCore {
+
+-struct FELightingPaintingDataForNeon;
+-
+ class FELighting : public FilterEffect {
+ public:
+ const Color& lightingColor() const { return m_lightingColor; }
+@@ -64,11 +62,6 @@ protected:
+
+ std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
+
+-#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
+- static int getPowerCoefficients(float exponent);
+- inline void platformApplyNeon(const LightingData&, const LightSource::PaintingData&);
+-#endif
+-
+ Color m_lightingColor;
+ float m_surfaceScale;
+ float m_diffuseConstant;
+diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h
+index 3a5723f0..675d63f5 100644
+--- a/Source/WebCore/platform/graphics/filters/PointLightSource.h
++++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h
+@@ -26,6 +26,10 @@
+ #include "LightSource.h"
+ #include <wtf/Ref.h>
+
++namespace WTF {
++class TextStream;
++} // namespace WTF
++
+ namespace WebCore {
+
+ class PointLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
+index 684626f7..dea58389 100644
+--- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h
++++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
+@@ -26,6 +26,10 @@
+ #include "LightSource.h"
+ #include <wtf/Ref.h>
+
++namespace WTF {
++class TextStream;
++} // namespace WTF
++
+ namespace WebCore {
+
+ class SpotLightSource : public LightSource {
+diff --git a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
+index c974d921..e2896660 100644
+--- a/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
++++ b/Source/WebCore/platform/graphics/filters/software/FELightingSoftwareApplier.h
+@@ -36,6 +36,7 @@
+ namespace WebCore {
+
+ class FELighting;
++struct FELightingPaintingDataForNeon;
+
+ class FELightingSoftwareApplier final : public FilterEffectConcreteApplier<FELighting> {
+ WTF_MAKE_FAST_ALLOCATED;
+@@ -132,8 +133,23 @@ private:
+
+ static void applyPlatformGenericPaint(const LightingData&, const LightSource::PaintingData&, int startY, int endY);
+ static void applyPlatformGenericWorker(ApplyParameters*);
++
++#if CPU(ARM_NEON) && CPU(ARM_TRADITIONAL) && COMPILER(GCC_COMPATIBLE)
++ static int getPowerCoefficients(float exponent);
++ static void platformApplyNeonWorker(FELightingPaintingDataForNeon*);
++ inline static void applyPlatformNeon(const LightingData&, const LightSource::PaintingData&);
++
++ inline static void applyPlatformGeneric(const LightingData& data, const LightSource::PaintingData& paintingData)
++ {
++ applyPlatformNeon(data, paintingData);
++ }
++#else
+ static void applyPlatformGeneric(const LightingData&, const LightSource::PaintingData&);
++#endif
++
+ static void applyPlatform(const LightingData&);
+ };
+
+ } // namespace WebCore
++
++#include "FELightingNEON.h"
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch
new file mode 100644
index 0000000000..79da855ff4
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch
@@ -0,0 +1,41 @@
+From 4977290ab4ab35258a6da9b13795c9b0f7894bf4 Mon Sep 17 00:00:00 2001
+From: Diego Pino Garcia <dpino@igalia.com>
+Date: Mon, 22 May 2023 19:58:50 -0700
+Subject: [PATCH] [GLIB] Fix build error after 264196@main
+ https://bugs.webkit.org/show_bug.cgi?id=256917
+
+Reviewed by Michael Catanzaro.
+
+Variable BWRAP_EXECUTABLE is only defined when BUBBLEWRAP_SANDBOX is
+enabled.
+
+* Source/WTF/wtf/glib/Sandbox.cpp:
+(WTF::isInsideUnsupportedContainer):
+
+Canonical link: https://commits.webkit.org/264395@main
+Upstream-Status: Backport [https://github.com/WebKit/WebKit/commit/4977290ab4ab35258a6da9b13795c9b0f7894bf4]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ Source/WTF/wtf/glib/Sandbox.cpp | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/Source/WTF/wtf/glib/Sandbox.cpp b/Source/WTF/wtf/glib/Sandbox.cpp
+index 7d84e830ab33e..9b07bb8cb5a9b 100644
+--- a/Source/WTF/wtf/glib/Sandbox.cpp
++++ b/Source/WTF/wtf/glib/Sandbox.cpp
+@@ -36,6 +36,7 @@ bool isInsideFlatpak()
+ return returnValue;
+ }
+
++#if ENABLE(BUBBLEWRAP_SANDBOX)
+ bool isInsideUnsupportedContainer()
+ {
+ static bool inContainer = g_file_test("/run/.containerenv", G_FILE_TEST_EXISTS);
+@@ -64,6 +65,7 @@ bool isInsideUnsupportedContainer()
+
+ return inContainer && !supportedContainer;
+ }
++#endif
+
+ bool isInsideSnap()
+ {
diff --git a/meta-oe/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch b/meta-oe/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch
new file mode 100644
index 0000000000..ae99810ced
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/check-GST_GL_HAVE_PLATFORM_GLX.patch
@@ -0,0 +1,33 @@
+Add additional check on GST_GL_HAVE_PLATFORM_GLX before using gst_gl_display_x11_new_with_display
+
+This ensures that there is a compile time check for glx support in gstreamer as
+runtime check is not enough because gst_gl_display_x11_new_with_display() API comes from
+gst/gl/x11/gstgldisplay_x11.h which is only included when GST_GL_HAVE_PLATFORM_GLX is defined
+therefore make this check consistent to fix build with some platforms which use pvr gl drivers
+where this problem appear at compile time.
+
+
+/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/webkitgtk/2.40.2-r0/webkitgtk-2.40.2/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:68:31: error: use of undeclared identifier 'gst_gl_display_x11_new_with_display'; did you mean 'gst_gl_display_egl_new_with_egl_display'?
+ 68 | return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
+ | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ | gst_gl_display_egl_new_with_egl_display
+
+This issue is 2.40 specific since GLX support is removed [1] from trunk upstream, therefore
+this patch wont be needed when upgrading to 2.42+
+
+[1] https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf
+
+Upstream-Status: Inappropriate [GLX support is gone in 2.41+]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp 2023-02-20 01:22:18.917743700 -0800
++++ b/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp 2023-07-08 08:45:09.739177065 -0700
+@@ -63,7 +63,7 @@
+ if (glPlatform == GST_GL_PLATFORM_EGL)
+ return GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(sharedDisplay.eglDisplay()));
+ #endif
+-#if USE(GLX)
++#if USE(GLX) && GST_GL_HAVE_PLATFORM_GLX
+ if (is<PlatformDisplayX11>(sharedDisplay) && glPlatform == GST_GL_PLATFORM_GLX)
+ return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
+ #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..e866a1a193
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3/reproducibility.patch
@@ -0,0 +1,22 @@
+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>
+
+Index: webkitgtk-2.34.2/Source/JavaScriptCore/generator/GeneratedFile.rb
+===================================================================
+--- webkitgtk-2.34.2.orig/Source/JavaScriptCore/generator/GeneratedFile.rb
++++ webkitgtk-2.34.2/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.40.2.bb b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb
new file mode 100644
index 0000000000..9bd0c4e198
--- /dev/null
+++ b/meta-oe/recipes-support/webkitgtk/webkitgtk3_2.40.2.bb
@@ -0,0 +1,169 @@
+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://0d3344e17d258106617b0e6d783d073b188a2548.patch \
+ file://4977290ab4ab35258a6da9b13795c9b0f7894bf4.patch \
+ file://0001-Source-JavaScriptCore-CMakeLists.txt-ensure-reproduc.patch \
+ file://check-GST_GL_HAVE_PLATFORM_GLX.patch \
+ "
+SRC_URI[sha256sum] = "96898870d994da406ee7a632816dcde9a3bb395ee5f344fcb3f3b8cc8a77e000"
+
+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[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"
+
+EXTRA_OECMAKE = " \
+ -DPORT=GTK \
+ ${@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 \
+ "
+
+# 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:armv5 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:armv6 = " -DENABLE_JIT=OFF "
+EXTRA_OECMAKE:append:armv4 = " -DENABLE_JIT=OFF "
+
+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.7.0/0001-Fix-issue-599.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
deleted file mode 100644
index 2a9ea74cd0..0000000000
--- a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/0001-Fix-issue-599.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 1dd07113f2a7489444a8990a95be42e035f8e9df Mon Sep 17 00:00:00 2001
-From: Kurt Roeckx <kroeckx@debian.org>
-Date: Tue, 1 Nov 2016 12:57:35 +0100
-Subject: [PATCH] Fix issue #599
-Forwarded: https://github.com/zaphoyd/websocketpp/pull/600
-
----
- websocketpp/transport/asio/security/tls.hpp | 4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/websocketpp/transport/asio/security/tls.hpp b/websocketpp/transport/asio/security/tls.hpp
-index 7b32db8..a8aafec 100644
---- a/websocketpp/transport/asio/security/tls.hpp
-+++ b/websocketpp/transport/asio/security/tls.hpp
-@@ -355,13 +355,9 @@ protected:
- template <typename ErrorCodeType>
- lib::error_code translate_ec(ErrorCodeType ec) {
- if (ec.category() == lib::asio::error::get_ssl_category()) {
-- if (ERR_GET_REASON(ec.value()) == SSL_R_SHORT_READ) {
-- return make_error_code(transport::error::tls_short_read);
-- } else {
- // We know it is a TLS related error, but otherwise don't know
- // more. Pass through as TLS generic.
- return make_error_code(transport::error::tls_error);
-- }
- } else {
- // We don't know any more information about this error so pass
- // through
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
deleted file mode 100644
index 530c960ce5..0000000000
--- a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4 Mon Sep 17 00:00:00 2001
-From: Peter Thorson <git@zaphoyd.com>
-Date: Sun, 11 Jun 2017 16:13:25 -0500
-Subject: [PATCH] minor adjustments to recent extension negotiation related
- fixes, refactor a bit more extension negotiation code to be simpler
-
----
- websocketpp/impl/connection_impl.hpp | 6 +--
- websocketpp/processors/hybi13.hpp | 92 ++++++++++++++++++------------------
- 2 files changed, 49 insertions(+), 49 deletions(-)
-
-Index: websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
-===================================================================
---- websocketpp-0.7.0.orig/websocketpp/impl/connection_impl.hpp
-+++ websocketpp-0.7.0/websocketpp/impl/connection_impl.hpp
-@@ -1222,17 +1222,17 @@
- std::pair<lib::error_code,std::string> neg_results;
- neg_results = m_processor->negotiate_extensions(m_request);
-
-- if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
-+ if (neg_results.first == processor::error::make_error_code(processor::error::extension_parse_error)) {
- // There was a fatal error in extension parsing that should result in
- // a failed connection attempt.
-- m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
-+ m_elog.write(log::elevel::info, "Bad request: " + neg_results.first.message());
- m_response.set_status(http::status_code::bad_request);
- return neg_results.first;
- } else if (neg_results.first) {
- // There was a fatal error in extension processing that is probably our
- // fault. Consider extension negotiation to have failed and continue as
- // if extensions were not supported
-- m_alog.write(log::alevel::info,
-+ m_elog.write(log::elevel::info,
- "Extension negotiation failed: " + neg_results.first.message());
- } else {
- // extension negotiation succeeded, set response header accordingly
-Index: websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
-===================================================================
---- websocketpp-0.7.0.orig/websocketpp/processors/hybi13.hpp
-+++ websocketpp-0.7.0/websocketpp/processors/hybi13.hpp
-@@ -97,11 +97,6 @@
- /**
- * This exists mostly because the code for requests and responses is
- * identical and I can't have virtual template methods.
-- *
-- * NOTE: this method makes assumptions that the permessage-deflate
-- * extension is the only one supported. If additional extensions are
-- * ever supported it should be reviewed carefully. Most cases where
-- * that assumption is made are explicitly noted.
- */
- template <typename header_type>
- err_str_pair negotiate_extensions_helper(header_type const & header) {
-@@ -130,55 +125,60 @@
-
- http::parameter_list::const_iterator it;
-
-+ // look through the list of extension requests to find the first
-+ // one that we can accept.
- if (m_permessage_deflate.is_implemented()) {
- err_str_pair neg_ret;
- for (it = p.begin(); it != p.end(); ++it) {
-- // look through each extension, if the key is permessage-deflate
-- if (it->first == "permessage-deflate") {
-- // if we have already successfully negotiated this extension
-- // then skip any other requests to negotiate the same one
-- // with different parameters
-- if (m_permessage_deflate.is_enabled()) {
-- continue;
-- }
--
--
-- neg_ret = m_permessage_deflate.negotiate(it->second);
--
-- if (neg_ret.first) {
-- // Figure out if this is an error that should halt all
-- // extension negotiations or simply cause negotiation of
-- // this specific extension to fail.
-- //std::cout << "permessage-compress negotiation failed: "
-- // << neg_ret.first.message() << std::endl;
-- } else {
-- // Note: this list will need commas if WebSocket++ ever
-- // supports more than one extension
--
-- // Actually try to initialize the extension before we
-- // deem negotiation complete
-- ret.first = m_permessage_deflate.init(base::m_server);
-- if (!ret.first) {
--
-- // TODO: support multiple extensions.
-- // right now, because there is only one extension
-- // supported, it failing to negotiate means we are
-- // done with all negotiating. In the future if more
-- // extensions are supported a better solution will
-- // be needed here.
-- break;
-- } else {
-- ret.second += neg_ret.second;
--
-- // continue looking for more extensions
-- continue;
-- }
--
-- }
-+ // not a permessage-deflate extension request, ignore
-+ if (it->first != "permessage-deflate") {
-+ continue;
-+ }
-+
-+ // if we have already successfully negotiated this extension
-+ // then skip any other requests to negotiate the same one
-+ // with different parameters
-+ if (m_permessage_deflate.is_enabled()) {
-+ continue;
-+ }
-+
-+ // attempt to negotiate this offer
-+ neg_ret = m_permessage_deflate.negotiate(it->second);
-+
-+ if (neg_ret.first) {
-+ // negotiation offer failed. Do nothing. We will continue
-+ // searching for a permessage-deflate config that succeeds
-+ continue;
-+ }
-+
-+ // Negotiation tentatively succeeded
-+
-+ // Actually try to initialize the extension before we
-+ // deem negotiation complete
-+ lib::error_code ec = m_permessage_deflate.init(base::m_server);
-+
-+ if (ec) {
-+ // Negotiation succeeded but initialization failed this is
-+ // an error that should stop negotiation of permessage
-+ // deflate. Return the reason for the init failure
-+
-+ ret.first = ec;
-+ break;
-+ } else {
-+ // Successfully initialized, push the negotiated response into
-+ // the reply and stop looking for additional permessage-deflate
-+ // extensions
-+ ret.second += neg_ret.second;
-+ break;
- }
- }
- }
-
-+ // support for future extensions would go here. Should check the value of
-+ // ret.first before continuing. Might need to consider whether failure of
-+ // negotiation of an earlier extension should stop negotiation of subsequent
-+ // ones
-+
- return ret;
- }
-
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
deleted file mode 100644
index 94bfeb2fd4..0000000000
--- a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/9ddb300d874a30db35e3ad58f188944bef0bf31b.patch
+++ /dev/null
@@ -1,600 +0,0 @@
-## Description: add some description
-## Origin/Author: add some origin or author
-## Bug: bug URL
-From 9ddb300d874a30db35e3ad58f188944bef0bf31b Mon Sep 17 00:00:00 2001
-From: Peter Thorson <git@zaphoyd.com>
-Date: Sun, 11 Jun 2017 15:24:43 -0500
-Subject: [PATCH] Update permessage-deflate support to reflect that zlib
- doesn't support a 256 bit window. Improve extension negotiation error
- checking and documentation. fixes #596 fixes #653
-
----
- changelog.md | 8 ++
- test/extension/permessage_deflate.cpp | 153 +++++++++++++++++----
- .../extensions/permessage_deflate/enabled.hpp | 94 ++++++++++---
- websocketpp/impl/connection_impl.hpp | 10 +-
- websocketpp/processors/hybi13.hpp | 28 +++-
- 5 files changed, 247 insertions(+), 46 deletions(-)
-
-diff --git a/changelog.md b/changelog.md
-index bba753cb..de98edd2 100644
-#--- a/changelog.md
-#+++ b/changelog.md
-#@@ -17,6 +17,14 @@ HEAD
-# - Compatibility: Update `telemetry_client` to use a slightly more cross platform
-# method of sleeping. Should work on windows now. Thank you Meir Yanovich for
-# reporting.
-#+- Compatibility: Updated permessage-deflate support to reflect that the zlib
-#+ library does not actually support a sliding window size of 256 bits.
-#+ WebSocket++ will no longer negotiate 256 bit deflate windows. If the user
-#+ of the library tries to request a 256 bit window a 512 bit window will be
-#+ specified instead (This was the previous behavior). #596 #653 Thank you
-#+ Vinnie Falco and Gianfranco Costamagna for reporting.
-#+- Compatibility: Better error handling and logging in cases where extension
-#+ requests parse correctly but negotiation fails.
-# - Bug: Store loggers in shared pointers to avoid crashes related to connections
-# trying to write logs entries after their respective endpoint has been
-# deallocated. Thank you Thalhammer for reporting and Jupp Müller for the
-diff --git a/test/extension/permessage_deflate.cpp b/test/extension/permessage_deflate.cpp
-index 4cd3e7b6..805afcc3 100644
---- a/test/extension/permessage_deflate.cpp
-+++ b/test/extension/permessage_deflate.cpp
-@@ -186,15 +186,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_invalid ) {
-
- BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_valid ) {
- ext_vars v;
-+
-+ // confirm that a request for a value of 8 is interpreted as 9
- v.attr["server_max_window_bits"] = "8";
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-
-+ v.attr["server_max_window_bits"] = "9";
- v.esp = v.exts.negotiate(v.attr);
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-
-- v.attr["server_max_window_bits"] = "15";
-
-+ v.attr["server_max_window_bits"] = "15";
- v.esp = v.exts.negotiate(v.attr);
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-@@ -213,7 +220,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_server_max_window_bits ) {
-
- BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
- ext_vars v;
-- v.attr["server_max_window_bits"] = "8";
-+ v.attr["server_max_window_bits"] = "9";
-
- v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::decline);
- v.esp = v.exts.negotiate(v.attr);
-@@ -223,7 +230,7 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_decline ) {
- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept_8 ) {
- ext_vars v;
- v.attr["server_max_window_bits"] = "8";
-
-@@ -232,10 +239,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_accept ) {
-+ ext_vars v;
-+ v.attr["server_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::accept);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest_8 ) {
- ext_vars v;
- v.attr["server_max_window_bits"] = "8";
-
-@@ -244,10 +263,22 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_largest ) {
-+ ext_vars v;
-+ v.attr["server_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::largest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest_8 ) {
- ext_vars v;
- v.attr["server_max_window_bits"] = "8";
-
-@@ -256,7 +287,19 @@ BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_server_max_window_bits_smallest ) {
-+ ext_vars v;
-+ v.attr["server_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_server_max_window_bits(15,pmd_mode::smallest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; server_max_window_bits=9");
- }
-
- // Negotiate server_max_window_bits
-@@ -292,7 +335,13 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_valid ) {
- v.esp = v.exts.negotiate(v.attr);
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+
-+ v.attr["client_max_window_bits"] = "9";
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-
- v.attr["client_max_window_bits"] = "15";
- v.esp = v.exts.negotiate(v.attr);
-@@ -311,7 +360,7 @@ BOOST_AUTO_TEST_CASE( invalid_set_client_max_window_bits ) {
- BOOST_CHECK_EQUAL(v.ec,pmde::make_error_code(pmde::invalid_max_window_bits));
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -323,7 +372,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_decline ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(9,pmd_mode::decline);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -332,10 +393,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_accept ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::accept);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -344,10 +417,22 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
-
--BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_largest ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::largest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest_8 ) {
- ext_vars v;
- v.attr["client_max_window_bits"] = "8";
-
-@@ -356,7 +441,19 @@ BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
- BOOST_CHECK( v.exts.is_enabled() );
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
- BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-- BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=8");
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
-+}
-+
-+BOOST_AUTO_TEST_CASE( negotiate_client_max_window_bits_smallest ) {
-+ ext_vars v;
-+ v.attr["client_max_window_bits"] = "9";
-+
-+ v.ec = v.exts.set_client_max_window_bits(15,pmd_mode::smallest);
-+ v.esp = v.exts.negotiate(v.attr);
-+ BOOST_CHECK( v.exts.is_enabled() );
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.first, websocketpp::lib::error_code() );
-+ BOOST_CHECK_EQUAL( v.esp.second, "permessage-deflate; client_max_window_bits=9");
- }
-
-
-@@ -507,7 +604,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
- std::string compress_out;
- std::string decompress_out;
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -520,7 +618,8 @@ BOOST_AUTO_TEST_CASE( compress_data ) {
- BOOST_AUTO_TEST_CASE( compress_data_multiple ) {
- ext_vars v;
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- for (int i = 0; i < 2; i++) {
- std::string compress_in = "Hello";
-@@ -545,11 +644,12 @@ BOOST_AUTO_TEST_CASE( compress_data_large ) {
-
- websocketpp::http::attribute_list alist;
-
-- alist["server_max_window_bits"] = "8";
-- v.exts.set_server_max_window_bits(8,websocketpp::extensions::permessage_deflate::mode::smallest);
-+ alist["server_max_window_bits"] = "9";
-+ v.exts.set_server_max_window_bits(9,websocketpp::extensions::permessage_deflate::mode::smallest);
-
- v.exts.negotiate(alist);
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -573,7 +673,8 @@ BOOST_AUTO_TEST_CASE( compress_data_no_context_takeover ) {
- v.exts.enable_server_no_context_takeover();
-
- v.exts.negotiate(alist);
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out1);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -609,7 +710,8 @@ BOOST_AUTO_TEST_CASE( compress_empty ) {
- std::string compress_out;
- std::string decompress_out;
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.compress(compress_in,compress_out);
- BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-@@ -640,7 +742,8 @@ BOOST_AUTO_TEST_CASE( decompress_data ) {
- std::string out;
- std::string reference = "Hello";
-
-- v.exts.init(true);
-+ v.ec = v.exts.init(true);
-+ BOOST_CHECK_EQUAL( v.ec, websocketpp::lib::error_code() );
-
- v.ec = v.exts.decompress(in,11,out);
-
-diff --git a/websocketpp/extensions/permessage_deflate/enabled.hpp b/websocketpp/extensions/permessage_deflate/enabled.hpp
-index 1581f14c..f20a1b1d 100644
---- a/websocketpp/extensions/permessage_deflate/enabled.hpp
-+++ b/websocketpp/extensions/permessage_deflate/enabled.hpp
-@@ -46,7 +46,7 @@
- namespace websocketpp {
- namespace extensions {
-
--/// Implementation of the draft permessage-deflate WebSocket extension
-+/// Implementation of RFC 7692, the permessage-deflate WebSocket extension
- /**
- * ### permessage-deflate interface
- *
-@@ -174,18 +174,30 @@ namespace websocketpp {
- namespace extensions {
- namespace permessage_deflate {
-
--/// Default value for server_max_window_bits as defined by draft 17
-+/// Default value for server_max_window_bits as defined by RFC 7692
- static uint8_t const default_server_max_window_bits = 15;
--/// Minimum value for server_max_window_bits as defined by draft 17
-+/// Minimum value for server_max_window_bits as defined by RFC 7692
-+/**
-+ * NOTE: A value of 8 is not actually supported by zlib, the deflate
-+ * library that WebSocket++ uses. To preserve backwards compatibility
-+ * with RFC 7692 and previous versions of the library a value of 8
-+ * is accepted by the library but will always be negotiated as 9.
-+ */
- static uint8_t const min_server_max_window_bits = 8;
--/// Maximum value for server_max_window_bits as defined by draft 17
-+/// Maximum value for server_max_window_bits as defined by RFC 7692
- static uint8_t const max_server_max_window_bits = 15;
-
--/// Default value for client_max_window_bits as defined by draft 17
-+/// Default value for client_max_window_bits as defined by RFC 7692
- static uint8_t const default_client_max_window_bits = 15;
--/// Minimum value for client_max_window_bits as defined by draft 17
-+/// Minimum value for client_max_window_bits as defined by RFC 7692
-+/**
-+ * NOTE: A value of 8 is not actually supported by zlib, the deflate
-+ * library that WebSocket++ uses. To preserve backwards compatibility
-+ * with RFC 7692 and previous versions of the library a value of 8
-+ * is accepted by the library but will always be negotiated as 9.
-+ */
- static uint8_t const min_client_max_window_bits = 8;
--/// Maximum value for client_max_window_bits as defined by draft 17
-+/// Maximum value for client_max_window_bits as defined by RFC 7692
- static uint8_t const max_client_max_window_bits = 15;
-
- namespace mode {
-@@ -372,7 +384,7 @@ class enabled {
- /**
- * The bits setting is the base 2 logarithm of the maximum window size that
- * the server must use to compress outgoing messages. The permitted range
-- * is 8 to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB
-+ * is 9 to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB
- * window. The default setting is 15.
- *
- * Mode Options:
-@@ -386,6 +398,14 @@ class enabled {
- * adjusted by the server. A server may unilaterally set this value without
- * client support.
- *
-+ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
-+ * Prior to version 0.8.0 a value of 8 was also allowed by this library.
-+ * zlib, the deflate compression library that WebSocket++ uses has always
-+ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9
-+ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
-+ * continues to perform the 8->9 conversion for backwards compatibility
-+ * purposes but this should be considered deprecated functionality.
-+ *
- * @param bits The size to request for the outgoing window size
- * @param mode The mode to use for negotiating this parameter
- * @return A status code
-@@ -394,6 +414,12 @@ class enabled {
- if (bits < min_server_max_window_bits || bits > max_server_max_window_bits) {
- return error::make_error_code(error::invalid_max_window_bits);
- }
-+
-+ // See note in doc comment above about what is happening here
-+ if (bits == 8) {
-+ bits = 9;
-+ }
-+
- m_server_max_window_bits = bits;
- m_server_max_window_bits_mode = mode;
-
-@@ -403,8 +429,8 @@ class enabled {
- /// Limit client LZ77 sliding window size
- /**
- * The bits setting is the base 2 logarithm of the window size that the
-- * client must use to compress outgoing messages. The permitted range is 8
-- * to 15 inclusive. 8 represents a 256 byte window and 15 a 32KiB window.
-+ * client must use to compress outgoing messages. The permitted range is 9
-+ * to 15 inclusive. 9 represents a 512 byte window and 15 a 32KiB window.
- * The default setting is 15.
- *
- * Mode Options:
-@@ -417,6 +443,14 @@ class enabled {
- * outgoing window size unilaterally. A server may only limit the client's
- * window size if the remote client supports that feature.
- *
-+ * NOTE: The permessage-deflate spec specifies that a value of 8 is allowed.
-+ * Prior to version 0.8.0 a value of 8 was also allowed by this library.
-+ * zlib, the deflate compression library that WebSocket++ uses has always
-+ * silently adjusted a value of 8 to 9. In recent versions of zlib (1.2.9
-+ * and greater) a value of 8 is now explicitly rejected. WebSocket++ 0.8.0
-+ * continues to perform the 8->9 conversion for backwards compatibility
-+ * purposes but this should be considered deprecated functionality.
-+ *
- * @param bits The size to request for the outgoing window size
- * @param mode The mode to use for negotiating this parameter
- * @return A status code
-@@ -425,6 +459,12 @@ class enabled {
- if (bits < min_client_max_window_bits || bits > max_client_max_window_bits) {
- return error::make_error_code(error::invalid_max_window_bits);
- }
-+
-+ // See note in doc comment above about what is happening here
-+ if (bits == 8) {
-+ bits = 9;
-+ }
-+
- m_client_max_window_bits = bits;
- m_client_max_window_bits_mode = mode;
-
-@@ -642,11 +682,17 @@ class enabled {
- * client requested that we use.
- *
- * options:
-- * - decline (refuse to use the attribute)
-- * - accept (use whatever the client says)
-- * - largest (use largest possible value)
-+ * - decline (ignore value, offer our default instead)
-+ * - accept (use the value requested by the client)
-+ * - largest (use largest value acceptable to both)
- * - smallest (use smallest possible value)
- *
-+ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
-+ * be requested for negotiation by an older client/server, if the result of
-+ * the negotiation would be to send a value of 8, a value of 9 is offered
-+ * instead. This ensures that WebSocket++ will only ever negotiate connections
-+ * with compression settings explicitly supported by zlib.
-+ *
- * @param [in] value The value of the attribute from the offer
- * @param [out] ec A reference to the error code to return errors via
- */
-@@ -678,6 +724,11 @@ class enabled {
- ec = make_error_code(error::invalid_mode);
- m_server_max_window_bits = default_server_max_window_bits;
- }
-+
-+ // See note in doc comment
-+ if (m_server_max_window_bits == 8) {
-+ m_server_max_window_bits = 9;
-+ }
- }
-
- /// Negotiate client_max_window_bits attribute
-@@ -687,11 +738,17 @@ class enabled {
- * negotiation mode.
- *
- * options:
-- * - decline (refuse to use the attribute)
-- * - accept (use whatever the client says)
-- * - largest (use largest possible value)
-+ * - decline (ignore value, offer our default instead)
-+ * - accept (use the value requested by the client)
-+ * - largest (use largest value acceptable to both)
- * - smallest (use smallest possible value)
- *
-+ * NOTE: As a value of 8 is no longer explicitly supported by zlib but might
-+ * be requested for negotiation by an older client/server, if the result of
-+ * the negotiation would be to send a value of 8, a value of 9 is offered
-+ * instead. This ensures that WebSocket++ will only ever negotiate connections
-+ * with compression settings explicitly supported by zlib.
-+ *
- * @param [in] value The value of the attribute from the offer
- * @param [out] ec A reference to the error code to return errors via
- */
-@@ -727,6 +784,11 @@ class enabled {
- ec = make_error_code(error::invalid_mode);
- m_client_max_window_bits = default_client_max_window_bits;
- }
-+
-+ // See note in doc comment
-+ if (m_client_max_window_bits == 8) {
-+ m_client_max_window_bits = 9;
-+ }
- }
-
- bool m_enabled;
-diff --git a/websocketpp/impl/connection_impl.hpp b/websocketpp/impl/connection_impl.hpp
-index 105911db..ae55c338 100644
---- a/websocketpp/impl/connection_impl.hpp
-+++ b/websocketpp/impl/connection_impl.hpp
-@@ -1222,12 +1222,18 @@ lib::error_code connection<config>::process_handshake_request() {
- std::pair<lib::error_code,std::string> neg_results;
- neg_results = m_processor->negotiate_extensions(m_request);
-
-- if (neg_results.first) {
-+ if (neg_results.first == error::make_error_code(error::extension_parse_error)) {
- // There was a fatal error in extension parsing that should result in
- // a failed connection attempt.
-- m_alog.write(log::alevel::devel, "Bad request: " + neg_results.first.message());
-+ m_alog.write(log::alevel::info, "Bad request: " + neg_results.first.message());
- m_response.set_status(http::status_code::bad_request);
- return neg_results.first;
-+ } else if (neg_results.first) {
-+ // There was a fatal error in extension processing that is probably our
-+ // fault. Consider extension negotiation to have failed and continue as
-+ // if extensions were not supported
-+ m_alog.write(log::alevel::info,
-+ "Extension negotiation failed: " + neg_results.first.message());
- } else {
- // extension negotiation succeeded, set response header accordingly
- // we don't send an empty extensions header because it breaks many
-diff --git a/websocketpp/processors/hybi13.hpp b/websocketpp/processors/hybi13.hpp
-index 79486654..a95bc649 100644
---- a/websocketpp/processors/hybi13.hpp
-+++ b/websocketpp/processors/hybi13.hpp
-@@ -97,6 +97,11 @@ class hybi13 : public processor<config> {
- /**
- * This exists mostly because the code for requests and responses is
- * identical and I can't have virtual template methods.
-+ *
-+ * NOTE: this method makes assumptions that the permessage-deflate
-+ * extension is the only one supported. If additional extensions are
-+ * ever supported it should be reviewed carefully. Most cases where
-+ * that assumption is made are explicitly noted.
- */
- template <typename header_type>
- err_str_pair negotiate_extensions_helper(header_type const & header) {
-@@ -149,9 +154,26 @@ class hybi13 : public processor<config> {
- } else {
- // Note: this list will need commas if WebSocket++ ever
- // supports more than one extension
-- ret.second += neg_ret.second;
-- m_permessage_deflate.init(base::m_server);
-- continue;
-+
-+ // Actually try to initialize the extension before we
-+ // deem negotiation complete
-+ ret.first = m_permessage_deflate.init(base::m_server);
-+ if (!ret.first) {
-+
-+ // TODO: support multiple extensions.
-+ // right now, because there is only one extension
-+ // supported, it failing to negotiate means we are
-+ // done with all negotiating. In the future if more
-+ // extensions are supported a better solution will
-+ // be needed here.
-+ break;
-+ } else {
-+ ret.second += neg_ret.second;
-+
-+ // continue looking for more extensions
-+ continue;
-+ }
-+
- }
- }
- }
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
deleted file mode 100644
index 342981d4db..0000000000
--- a/meta-oe/recipes-support/websocketpp/websocketpp-0.7.0/disable-tests.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Description: Disable failing test_transport_asio_timers.
-Because of "address already in use" error
-/«PKGBUILDDIR»/test/transport/asio/timers.cpp(129): error in "tls_handshake_timeout": check ec == make_error_code(tls_handshake_timeout) failed [websocketpp.transport.asio.socket:8 != websocketpp.transport.asio.socket:5]
-Author: Gianfranco Costamagna <locutusofborg@debian.org>
-
---- websocketpp-0.7.0.orig/test/transport/CMakeLists.txt
-+++ websocketpp-0.7.0/test/transport/CMakeLists.txt
-@@ -1,24 +1,24 @@
- if (OPENSSL_FOUND)
-
--# Test transport integration
--file (GLOB SOURCE integration.cpp)
--
--init_target (test_transport)
--build_test (${TARGET_NAME} ${SOURCE})
--link_boost ()
--link_openssl()
--final_target ()
--set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
--
--# Test transport asio timers
--file (GLOB SOURCE asio/timers.cpp)
--
--init_target (test_transport_asio_timers)
--build_test (${TARGET_NAME} ${SOURCE})
--link_boost ()
--link_openssl()
--final_target ()
--set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-+## Test transport integration
-+#file (GLOB SOURCE integration.cpp)
-+#
-+#init_target (test_transport)
-+#build_test (${TARGET_NAME} ${SOURCE})
-+#link_boost ()
-+#link_openssl()
-+#final_target ()
-+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-+#
-+## Test transport asio timers
-+#file (GLOB SOURCE asio/timers.cpp)
-+#
-+#init_target (test_transport_asio_timers)
-+#build_test (${TARGET_NAME} ${SOURCE})
-+#link_boost ()
-+#link_openssl()
-+#final_target ()
-+#set_target_properties(${TARGET_NAME} PROPERTIES FOLDER "test")
-
- # Test transport asio security
- file (GLOB SOURCE asio/security.cpp)
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch
new file mode 100644
index 0000000000..7a99daf6b2
--- /dev/null
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-Correct-clang-compiler-flags.patch
@@ -0,0 +1,32 @@
+From 5ccaff351297bca0e254bbfd66e3f03fef9d9c75 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 10 Jan 2020 21:54:39 -0800
+Subject: [PATCH] Correct clang compiler flags
+
+Fix misplaced quotes, this was leading to spurious ; in compiler cmdline
+Remove demanding libc++, clang can link with both libc++ and libstdc++
+and platforms have their own defaults, user can demand non defaults via
+adding it to cmake flags
+
+Upstream-Status: Submitted [https://github.com/zaphoyd/websocketpp/pull/859]
+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 2d13117..c17354a 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -154,7 +154,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+ endif()
+ set (WEBSOCKETPP_PLATFORM_TLS_LIBS ssl crypto)
+ set (WEBSOCKETPP_BOOST_LIBS system thread)
+- set (CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} "-std=c++0x -stdlib=libc++") # todo: is libc++ really needed here?
++ set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+ if (NOT APPLE)
+ add_definitions (-DNDEBUG -Wall -Wno-padded) # todo: should we use CMAKE_C_FLAGS for these?
+ endif ()
+--
+2.24.1
+
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch
new file mode 100644
index 0000000000..0ef2e12375
--- /dev/null
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/0001-cmake-Use-GNUInstallDirs.patch
@@ -0,0 +1,35 @@
+From 771d79eeb0ac5079482a4b3a131bbda744793e7d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Dec 2019 20:07:11 -0800
+Subject: [PATCH] cmake: Use GNUInstallDirs
+
+Helps install cmakefiles in right libdir
+
+Upstream-Status: Submitted [https://github.com/zaphoyd/websocketpp/pull/854]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ CMakeLists.txt | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2786aba..080be3e 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -39,11 +39,13 @@ endif()
+
+ set_property(GLOBAL PROPERTY USE_FOLDERS ON)
+
++include(GNUInstallDirs)
++
+ set(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/websocketpp)
++ set (DEF_INSTALL_CMAKE_DIR ${CMAKE_INSTALL_LIBDIR}/cmake/websocketpp)
+ endif ()
+ set (INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
+
+--
+2.24.1
+
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
new file mode 100644
index 0000000000..12613f8b19
--- /dev/null
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/1024.patch
@@ -0,0 +1,508 @@
+From 05d1189ffce562560da90056d96fe2084d84654a Mon Sep 17 00:00:00 2001
+From: "Laszlo Boszormenyi (GCS)" <gcs@debian.org>
+Date: Mon, 14 Feb 2022 14:13:13 +0100
+Subject: [PATCH] SCons 4.2.0 no longer has env_cpp11.has_key() Check env_cpp11
+ as an array.
+
+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 +-
+ examples/dev/SConscript | 2 +-
+ examples/echo_client/SConscript | 2 +-
+ examples/echo_server/SConscript | 2 +-
+ examples/echo_server_both/SConscript | 2 +-
+ examples/echo_server_tls/SConscript | 2 +-
+ examples/external_io_service/SConscript | 2 +-
+ examples/iostream_server/SConscript | 2 +-
+ examples/print_client/SConscript | 2 +-
+ examples/print_client_tls/SConscript | 2 +-
+ examples/print_server/SConscript | 2 +-
+ examples/scratch_client/SConscript | 2 +-
+ examples/scratch_server/SConscript | 2 +-
+ examples/sip_client/SConscript | 2 +-
+ examples/subprotocol_server/SConscript | 2 +-
+ examples/telemetry_client/SConscript | 2 +-
+ examples/telemetry_server/SConscript | 2 +-
+ examples/testee_client/SConscript | 2 +-
+ examples/testee_server/SConscript | 2 +-
+ examples/utility_client/SConscript | 4 ++--
+ test/connection/SConscript | 2 +-
+ test/endpoint/SConscript | 2 +-
+ test/extension/SConscript | 2 +-
+ test/http/SConscript | 2 +-
+ test/logger/SConscript | 2 +-
+ test/message_buffer/SConscript | 2 +-
+ test/processors/SConscript | 2 +-
+ test/random/SConscript | 2 +-
+ test/roles/SConscript | 2 +-
+ test/transport/SConscript | 2 +-
+ test/transport/asio/SConscript | 2 +-
+ test/transport/iostream/SConscript | 2 +-
+ test/utility/SConscript | 2 +-
+ 35 files changed, 36 insertions(+), 36 deletions(-)
+
+diff --git a/examples/broadcast_server/SConscript b/examples/broadcast_server/SConscript
+index 5786f570d..06c55c147 100644
+--- a/examples/broadcast_server/SConscript
++++ b/examples/broadcast_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('broadcast_server', ["broadcast_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/debug_client/SConscript b/examples/debug_client/SConscript
+index 781db8371..b92b14653 100644
+--- a/examples/debug_client/SConscript
++++ b/examples/debug_client/SConscript
+@@ -14,7 +14,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ prgs += env_cpp11.Program('debug_client', ["debug_client.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/debug_server/SConscript b/examples/debug_server/SConscript
+index 4d02261c6..7e24b07c8 100644
+--- a/examples/debug_server/SConscript
++++ b/examples/debug_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('debug_server', ["debug_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/dev/SConscript b/examples/dev/SConscript
+index 34ddac2d5..31062fee9 100644
+--- a/examples/dev/SConscript
++++ b/examples/dev/SConscript
+@@ -11,7 +11,7 @@ env_cpp11 = env_cpp11.Clone ()
+
+ prgs = []
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework','system','timer','chrono'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('main', ["main.cpp"], LIBS = BOOST_LIBS_CPP11)
+
+diff --git a/examples/echo_client/SConscript b/examples/echo_client/SConscript
+index 0e4110822..2adf1166d 100644
+--- a/examples/echo_client/SConscript
++++ b/examples/echo_client/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + ['z']
+ prgs += env_cpp11.Program('echo_client', ["echo_client.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/echo_server/SConscript b/examples/echo_server/SConscript
+index a2978852e..a48724155 100644
+--- a/examples/echo_server/SConscript
++++ b/examples/echo_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('echo_server', ["echo_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/echo_server_both/SConscript b/examples/echo_server_both/SConscript
+index d1ecf202f..32f4c8c55 100644
+--- a/examples/echo_server_both/SConscript
++++ b/examples/echo_server_both/SConscript
+@@ -14,7 +14,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ prgs += env_cpp11.Program('echo_server_both', ["echo_server_both.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/echo_server_tls/SConscript b/examples/echo_server_tls/SConscript
+index e24cc4ce8..688bf7c14 100644
+--- a/examples/echo_server_tls/SConscript
++++ b/examples/echo_server_tls/SConscript
+@@ -14,7 +14,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ prgs += env_cpp11.Program('echo_server_tls', ["echo_server_tls.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/external_io_service/SConscript b/examples/external_io_service/SConscript
+index beb7c1c42..0abf3e175 100644
+--- a/examples/external_io_service/SConscript
++++ b/examples/external_io_service/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('external_io_service', ["external_io_service.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/iostream_server/SConscript b/examples/iostream_server/SConscript
+index dc90834cf..304142082 100644
+--- a/examples/iostream_server/SConscript
++++ b/examples/iostream_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('iostream_server', ["iostream_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/print_client/SConscript b/examples/print_client/SConscript
+index 8da4ce5b2..79fdea0fd 100644
+--- a/examples/print_client/SConscript
++++ b/examples/print_client/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('print_client', ["print_client.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/print_client_tls/SConscript b/examples/print_client_tls/SConscript
+index 01b011473..e57b9d691 100644
+--- a/examples/print_client_tls/SConscript
++++ b/examples/print_client_tls/SConscript
+@@ -14,7 +14,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ prgs += env_cpp11.Program('print_client_tls', ["print_client_tls.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/print_server/SConscript b/examples/print_server/SConscript
+index 4f0e492be..454dcf01b 100644
+--- a/examples/print_server/SConscript
++++ b/examples/print_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('print_server', ["print_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/scratch_client/SConscript b/examples/scratch_client/SConscript
+index 6e7b2ef07..4be98f437 100644
+--- a/examples/scratch_client/SConscript
++++ b/examples/scratch_client/SConscript
+@@ -14,7 +14,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ prgs += env_cpp11.Program('scratch_client', ["scratch_client.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/scratch_server/SConscript b/examples/scratch_server/SConscript
+index bf90f7433..cc495ba5c 100644
+--- a/examples/scratch_server/SConscript
++++ b/examples/scratch_server/SConscript
+@@ -14,7 +14,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs] + ['z']
+ prgs += env_cpp11.Program('scratch_server', ["scratch_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/sip_client/SConscript b/examples/sip_client/SConscript
+index fafe7b4ff..e2afefe73 100644
+--- a/examples/sip_client/SConscript
++++ b/examples/sip_client/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('sip_client', ["sip_client.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/subprotocol_server/SConscript b/examples/subprotocol_server/SConscript
+index e97535ca5..299af43c5 100644
+--- a/examples/subprotocol_server/SConscript
++++ b/examples/subprotocol_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('subprotocol_server', ["subprotocol_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/telemetry_client/SConscript b/examples/telemetry_client/SConscript
+index 62396a5e3..ac0e6daba 100644
+--- a/examples/telemetry_client/SConscript
++++ b/examples/telemetry_client/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('telemetry_client', ["telemetry_client.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/telemetry_server/SConscript b/examples/telemetry_server/SConscript
+index 1b8ff2295..c620f38a4 100644
+--- a/examples/telemetry_server/SConscript
++++ b/examples/telemetry_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('telemetry_server', ["telemetry_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/testee_client/SConscript b/examples/testee_client/SConscript
+index 64f0ef1f3..6154bb966 100644
+--- a/examples/testee_client/SConscript
++++ b/examples/testee_client/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + ['z']
+ prgs += env_cpp11.Program('testee_client', ["testee_client.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/testee_server/SConscript b/examples/testee_server/SConscript
+index 3c75f4ff2..ca8ffb7d7 100644
+--- a/examples/testee_server/SConscript
++++ b/examples/testee_server/SConscript
+@@ -13,7 +13,7 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs] + ['z']
+ prgs += env_cpp11.Program('testee_server', ["testee_server.cpp"], LIBS = ALL_LIBS)
+ else:
+diff --git a/examples/utility_client/SConscript b/examples/utility_client/SConscript
+index 6e6cd8c9d..f6d673a43 100644
+--- a/examples/utility_client/SConscript
++++ b/examples/utility_client/SConscript
+@@ -13,11 +13,11 @@ env_cpp11 = env_cpp11.Clone ()
+ prgs = []
+
+ # if a C++11 environment is available build using that, otherwise use boost
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ ALL_LIBS = boostlibs(['system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ prgs += env_cpp11.Program('utility_client', ["utility_client.cpp"], LIBS = ALL_LIBS)
+ else:
+ ALL_LIBS = boostlibs(['system','random'],env) + [platform_libs] + [polyfill_libs]
+ prgs += env.Program('utility_client', ["utility_client.cpp"], LIBS = ALL_LIBS)
+
+-Return('prgs')
+\ No newline at end of file
++Return('prgs')
+diff --git a/test/connection/SConscript b/test/connection/SConscript
+index 4ed7a4e69..b79876bf1 100644
+--- a/test/connection/SConscript
++++ b/test/connection/SConscript
+@@ -16,7 +16,7 @@ objs = env.Object('connection_boost.o', ["connection.cpp"], LIBS = BOOST_LIBS)
+ objs = env.Object('connection_tu2_boost.o', ["connection_tu2.cpp"], LIBS = BOOST_LIBS)
+ prgs = env.Program('test_connection_boost', ["connection_boost.o","connection_tu2_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework','system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('connection_stl.o', ["connection.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('connection_tu2_stl.o', ["connection_tu2.cpp"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/endpoint/SConscript b/test/endpoint/SConscript
+index 5cb3ede91..74912865e 100644
+--- a/test/endpoint/SConscript
++++ b/test/endpoint/SConscript
+@@ -16,7 +16,7 @@ BOOST_LIBS = boostlibs(['unit_test_framework','system'],env) + [platform_libs] +
+ objs = env.Object('endpoint_boost.o', ["endpoint.cpp"], LIBS = BOOST_LIBS)
+ prgs = env.Program('test_endpoint_boost', ["endpoint_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework','system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ objs += env_cpp11.Object('endpoint_stl.o', ["endpoint.cpp"], LIBS = BOOST_LIBS_CPP11)
+ prgs += env_cpp11.Program('test_endpoint_stl', ["endpoint_stl.o"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/extension/SConscript b/test/extension/SConscript
+index d8b425fda..0cb813856 100644
+--- a/test/extension/SConscript
++++ b/test/extension/SConscript
+@@ -17,7 +17,7 @@ objs += env.Object('permessage_deflate_boost.o', ["permessage_deflate.cpp"], LIB
+ prgs = env.Program('test_extension_boost', ["extension_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_permessage_deflate_boost', ["permessage_deflate_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs] + ['z']
+ objs += env_cpp11.Object('extension_stl.o', ["extension.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('permessage_deflate_stl.o', ["permessage_deflate.cpp"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/http/SConscript b/test/http/SConscript
+index 0a24a8774..422998e24 100644
+--- a/test/http/SConscript
++++ b/test/http/SConscript
+@@ -15,7 +15,7 @@ BOOST_LIBS = boostlibs(['unit_test_framework'],env) + [platform_libs]
+ objs = env.Object('parser_boost.o', ["parser.cpp"], LIBS = BOOST_LIBS)
+ prgs = env.Program('test_http_boost', ["parser_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('parser_stl.o', ["parser.cpp"], LIBS = BOOST_LIBS_CPP11)
+ prgs += env_cpp11.Program('test_http_stl', ["parser_stl.o"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/logger/SConscript b/test/logger/SConscript
+index 81d607601..0ccbbc5df 100644
+--- a/test/logger/SConscript
++++ b/test/logger/SConscript
+@@ -15,7 +15,7 @@ BOOST_LIBS = boostlibs(['unit_test_framework','system'],env) + [platform_libs]
+ objs = env.Object('logger_basic_boost.o', ["basic.cpp"], LIBS = BOOST_LIBS)
+ prgs = env.Program('logger_basic_boost', ["logger_basic_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework','system'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('logger_basic_stl.o', ["basic.cpp"], LIBS = BOOST_LIBS_CPP11)
+ prgs += env_cpp11.Program('logger_basic_stl', ["logger_basic_stl.o"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/message_buffer/SConscript b/test/message_buffer/SConscript
+index 2ef6d71f3..89785cb3e 100644
+--- a/test/message_buffer/SConscript
++++ b/test/message_buffer/SConscript
+@@ -17,7 +17,7 @@ objs += env.Object('alloc_boost.o', ["alloc.cpp"], LIBS = BOOST_LIBS)
+ prgs = env.Program('test_message_boost', ["message_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_alloc_boost', ["alloc_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('message_stl.o', ["message.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('alloc_stl.o', ["alloc.cpp"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/processors/SConscript b/test/processors/SConscript
+index 406a7edc9..1b40d0b1d 100644
+--- a/test/processors/SConscript
++++ b/test/processors/SConscript
+@@ -26,7 +26,7 @@ prgs += env.Program('test_hybi07_boost', ["test_hybi07_boost.o"], LIBS = BOOST_L
+ prgs += env.Program('test_hybi00_boost', ["test_hybi00_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_extension_permessage_compress_boost', ["test_extension_permessage_compress_boost.o"], LIBS = BOOST_LIBS + ['z'])
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs] + ['z']
+ # no C++11 features are used in processor so there are no C++11 versions of
+ # these tests.
+diff --git a/test/random/SConscript b/test/random/SConscript
+index 3cadc9e97..4a11b0ce5 100644
+--- a/test/random/SConscript
++++ b/test/random/SConscript
+@@ -17,7 +17,7 @@ objs += env.Object('random_device_boost.o', ["random_device.cpp"], LIBS = BOOST_
+ prgs = env.Program('test_random_none_boost', ["random_none_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_random_device_boost', ["random_device_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('random_none_stl.o', ["none.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('random_device_stl.o', ["random_device.cpp"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/roles/SConscript b/test/roles/SConscript
+index e86107ece..17b3be105 100644
+--- a/test/roles/SConscript
++++ b/test/roles/SConscript
+@@ -17,7 +17,7 @@ objs += env.Object('server_boost.o', ["server.cpp"], LIBS = BOOST_LIBS)
+ prgs = env.Program('test_client_boost', ["client_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_server_boost', ["server_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('client_stl.o', ["client.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('server_stl.o', ["server.cpp"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/transport/SConscript b/test/transport/SConscript
+index 71b31b6c5..aa9b719ec 100644
+--- a/test/transport/SConscript
++++ b/test/transport/SConscript
+@@ -16,7 +16,7 @@ BOOST_LIBS = boostlibs(['unit_test_framework','system','thread','random','chrono
+ objs = env.Object('boost_integration.o', ["integration.cpp"], LIBS = BOOST_LIBS)
+ prgs = env.Program('test_boost_integration', ["boost_integration.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework','system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ objs += env_cpp11.Object('stl_integration.o', ["integration.cpp"], LIBS = BOOST_LIBS_CPP11)
+ prgs += env_cpp11.Program('test_stl_integration', ["stl_integration.o"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/transport/asio/SConscript b/test/transport/asio/SConscript
+index f8185e57e..518d362b1 100644
+--- a/test/transport/asio/SConscript
++++ b/test/transport/asio/SConscript
+@@ -20,7 +20,7 @@ prgs = env.Program('test_base_boost', ["base_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_timers_boost', ["timers_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_security_boost', ["security_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework','system'],env_cpp11) + [platform_libs] + [polyfill_libs] + [tls_libs]
+ objs += env_cpp11.Object('base_stl.o', ["base.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('timers_stl.o', ["timers.cpp"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/transport/iostream/SConscript b/test/transport/iostream/SConscript
+index 9e74c2f15..dcaf9f2d9 100644
+--- a/test/transport/iostream/SConscript
++++ b/test/transport/iostream/SConscript
+@@ -19,7 +19,7 @@ prgs = env.Program('test_iostream_base_boost', ["iostream_base_boost.o"], LIBS =
+ prgs += env.Program('test_iostream_connection_boost', ["iostream_connection_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_iostream_endpoint_boost', ["iostream_endpoint_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('iostream_base_stl.o', ["base.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('iostream_connection_stl.o', ["connection.cpp"], LIBS = BOOST_LIBS_CPP11)
+diff --git a/test/utility/SConscript b/test/utility/SConscript
+index 80e9ef6c8..6f19aa52a 100644
+--- a/test/utility/SConscript
++++ b/test/utility/SConscript
+@@ -24,7 +24,7 @@ prgs += env.Program('test_close_boost', ["close_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_sha1_boost', ["sha1_boost.o"], LIBS = BOOST_LIBS)
+ prgs += env.Program('test_error_boost', ["error_boost.o"], LIBS = BOOST_LIBS)
+
+-if env_cpp11.has_key('WSPP_CPP11_ENABLED'):
++if 'WSPP_CPP11_ENABLED' in env_cpp11:
+ BOOST_LIBS_CPP11 = boostlibs(['unit_test_framework'],env_cpp11) + [platform_libs] + [polyfill_libs]
+ objs += env_cpp11.Object('utilities_stl.o', ["utilities.cpp"], LIBS = BOOST_LIBS_CPP11)
+ objs += env_cpp11.Object('uri_stl.o', ["uri.cpp"], LIBS = BOOST_LIBS_CPP11)
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
new file mode 100644
index 0000000000..68cb645b40
--- /dev/null
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/855.patch
@@ -0,0 +1,25 @@
+From 3590d77bb9753fbbf076028e2395182ced6466ba Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Wed, 8 Jan 2020 17:59:48 +0100
+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/CMakeLists.txt b/CMakeLists.txt
+index 2d13117b..9a46bc10 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -217,7 +217,7 @@ if (BUILD_TESTS OR BUILD_EXAMPLES)
+ set (Boost_USE_MULTITHREADED TRUE)
+ set (Boost_ADDITIONAL_VERSIONS "1.39.0" "1.40.0" "1.41.0" "1.42.0" "1.43.0" "1.44.0" "1.46.1") # todo: someone who knows better spesify these!
+
+- find_package (Boost 1.39.0 COMPONENTS "${WEBSOCKETPP_BOOST_LIBS}")
++ find_package (Boost 1.39.0 COMPONENTS ${WEBSOCKETPP_BOOST_LIBS})
+
+ if (Boost_FOUND)
+ # Boost is a project wide global dependency.
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
new file mode 100644
index 0000000000..401a614dc1
--- /dev/null
+++ b/meta-oe/recipes-support/websocketpp/websocketpp-0.8.2/857.patch
@@ -0,0 +1,134 @@
+From 931a55347a322f38eb82d5f387b2924e6c7a1746 Mon Sep 17 00:00:00 2001
+From: Gianfranco Costamagna <costamagnagianfranco@yahoo.it>
+Date: Thu, 9 Jan 2020 10:07:20 +0100
+Subject: [PATCH] Update SConstruct with new Python3 syntax: - new raise
+ keyword syntax - has_key deprecated method is now removed - commands
+ deprecated library is replaced by subprocess - print function fixes
+
+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/SConstruct b/SConstruct
+index ae3df10b..9d1c8914 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -1,18 +1,19 @@
+-import os, sys, commands
++import os, sys
++from subprocess import check_output
+ env = Environment(ENV = os.environ)
+
+ # figure out a better way to configure this
+-if os.environ.has_key('CXX'):
++if 'CXX' in os.environ:
+ env['CXX'] = os.environ['CXX']
+
+-if os.environ.has_key('DEBUG'):
++if 'DEBUG' in os.environ:
+ env['DEBUG'] = os.environ['DEBUG']
+
+-if os.environ.has_key('CXXFLAGS'):
++if 'CXXFLAGS' in os.environ:
+ #env['CXXFLAGS'] = os.environ['CXXFLAGS']
+ env.Append(CXXFLAGS = os.environ['CXXFLAGS'])
+
+-if os.environ.has_key('LINKFLAGS'):
++if 'LINKFLAGS' in os.environ:
+ #env['LDFLAGS'] = os.environ['LDFLAGS']
+ env.Append(LINKFLAGS = os.environ['LINKFLAGS'])
+
+@@ -22,24 +23,24 @@ if os.environ.has_key('LINKFLAGS'):
+ ## or set BOOST_INCLUDES and BOOST_LIBS if Boost comes with your OS distro e.g. and
+ ## needs BOOST_INCLUDES=/usr/include/boost and BOOST_LIBS=/usr/lib like Ubuntu.
+ ##
+-if os.environ.has_key('BOOSTROOT'):
++if 'BOOSTROOT' in os.environ:
+ os.environ['BOOST_ROOT'] = os.environ['BOOSTROOT']
+
+-if os.environ.has_key('BOOST_ROOT'):
++if 'BOOST_ROOT' in os.environ:
+ env['BOOST_INCLUDES'] = os.environ['BOOST_ROOT']
+ env['BOOST_LIBS'] = os.path.join(os.environ['BOOST_ROOT'], 'stage', 'lib')
+-elif os.environ.has_key('BOOST_INCLUDES') and os.environ.has_key('BOOST_LIBS'):
++elif 'BOOST_INCLUDES' in os.environ and 'BOOST_LIBS' in os.environ:
+ env['BOOST_INCLUDES'] = os.environ['BOOST_INCLUDES']
+ env['BOOST_LIBS'] = os.environ['BOOST_LIBS']
+ else:
+- raise SCons.Errors.UserError, "Neither BOOST_ROOT, nor BOOST_INCLUDES + BOOST_LIBS was set!"
++ raise SCons.Errors.UserError("Neither BOOST_ROOT, nor BOOST_INCLUDES + BOOST_LIBS were set!")
+
+ ## Custom OpenSSL
+-if os.environ.has_key('OPENSSL_PATH'):
++if 'OPENSSL_PATH' in os.environ:
+ env.Append(CPPPATH = os.path.join(os.environ['OPENSSL_PATH'], 'include'))
+ env.Append(LIBPATH = os.environ['OPENSSL_PATH'])
+
+-if os.environ.has_key('WSPP_ENABLE_CPP11'):
++if 'WSPP_ENABLE_CPP11' in os.environ:
+ env['WSPP_ENABLE_CPP11'] = True
+ else:
+ env['WSPP_ENABLE_CPP11'] = False
+@@ -76,7 +77,7 @@ if env['PLATFORM'].startswith('win'):
+ env['CCFLAGS'] = '%s /EHsc /GR /GS- /MD /nologo %s %s' % (warn_flags, arch_flags, opt_flags)
+ env['LINKFLAGS'] = '/INCREMENTAL:NO /MANIFEST /NOLOGO /OPT:REF /OPT:ICF /MACHINE:X86'
+ elif env['PLATFORM'] == 'posix':
+- if env.has_key('DEBUG'):
++ if 'DEBUG' in env:
+ env.Append(CCFLAGS = ['-g', '-O0'])
+ else:
+ env.Append(CPPDEFINES = ['NDEBUG'])
+@@ -84,9 +85,9 @@ elif env['PLATFORM'] == 'posix':
+ env.Append(CCFLAGS = ['-Wall'])
+ #env['LINKFLAGS'] = ''
+ elif env['PLATFORM'] == 'darwin':
+- if not os.environ.has_key('CXX'):
++ if not 'CXX' in os.environ:
+ env['CXX'] = "clang++"
+- if env.has_key('DEBUG'):
++ if 'DEBUG' in env:
+ env.Append(CCFLAGS = ['-g', '-O0'])
+ else:
+ env.Append(CPPDEFINES = ['NDEBUG'])
+@@ -157,29 +158,29 @@ env_cpp11 = env.Clone ()
+
+ if env_cpp11['CXX'].startswith('g++'):
+ # TODO: check g++ version
+- GCC_VERSION = commands.getoutput(env_cpp11['CXX'] + ' -dumpversion')
++ GCC_VERSION = check_output([env_cpp11['CXX'], '-dumpversion'])
+
+- if GCC_VERSION > "4.4.0":
+- print "C++11 build environment partially enabled"
++ if GCC_VERSION.decode('utf-8') > "4.4.0":
++ print("C++11 build environment partially enabled")
+ env_cpp11.Append(WSPP_CPP11_ENABLED = "true",CXXFLAGS = ['-std=c++0x'],TOOLSET = ['g++'],CPPDEFINES = ['_WEBSOCKETPP_CPP11_STL_'])
+ else:
+- print "C++11 build environment is not supported on this version of G++"
++ print("C++11 build environment is not supported on this version of G++")
+ elif env_cpp11['CXX'].startswith('clang++'):
+- print "C++11 build environment enabled"
++ print("C++11 build environment enabled")
+ env.Append(CXXFLANGS = ['-stdlib=libc++'],LINKFLAGS=['-stdlib=libc++'])
+ env_cpp11.Append(WSPP_CPP11_ENABLED = "true",CXXFLAGS = ['-std=c++0x','-stdlib=libc++'],LINKFLAGS = ['-stdlib=libc++'],TOOLSET = ['clang++'],CPPDEFINES = ['_WEBSOCKETPP_CPP11_STL_'])
+
+ # look for optional second boostroot compiled with clang's libc++ STL library
+ # this prevents warnings/errors when linking code built with two different
+ # incompatible STL libraries.
+- if os.environ.has_key('BOOST_ROOT_CPP11'):
++ if 'BOOST_ROOT_CPP11' in os.environ:
+ env_cpp11['BOOST_INCLUDES'] = os.environ['BOOST_ROOT_CPP11']
+ env_cpp11['BOOST_LIBS'] = os.path.join(os.environ['BOOST_ROOT_CPP11'], 'stage', 'lib')
+- elif os.environ.has_key('BOOST_INCLUDES_CPP11') and os.environ.has_key('BOOST_LIBS_CPP11'):
++ elif 'BOOST_INCLUDES_CPP11' in os.environ and 'BOOST_LIBS_CPP11' in os.environ:
+ env_cpp11['BOOST_INCLUDES'] = os.environ['BOOST_INCLUDES_CPP11']
+ env_cpp11['BOOST_LIBS'] = os.environ['BOOST_LIBS_CPP11']
+ else:
+- print "C++11 build environment disabled"
++ print("C++11 build environment disabled")
+
+ # if the build system is known to allow the isystem modifier for library include
+ # values then use it for the boost libraries. Otherwise just add them to the
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb b/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
deleted file mode 100644
index 65fc974b6c..0000000000
--- a/meta-oe/recipes-support/websocketpp/websocketpp_0.7.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "C++/Boost Asio based websocket client/server library."
-SECTION = "libs/network"
-HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
-DEPENDS = "openssl boost zlib"
-
-SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master"
-
-# tag 0.7.0
-SRCREV= "378437aecdcb1dfe62096ffd5d944bf1f640ccc3"
-
-SRC_URI += "file://0001-Fix-issue-599.patch \
- file://9ddb300d874a30db35e3ad58f188944bef0bf31b.patch \
- file://4cab5e5c0c5f19fcee7d37b4a38b156d63a150d4.patch \
- file://disable-tests.patch \
- "
-
-S = "${WORKDIR}/git"
-
-inherit cmake
diff --git a/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb b/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
new file mode 100644
index 0000000000..f437accc50
--- /dev/null
+++ b/meta-oe/recipes-support/websocketpp/websocketpp_0.8.2.bb
@@ -0,0 +1,39 @@
+SUMMARY = "C++/Boost Asio based websocket client/server library."
+SECTION = "libs/network"
+HOMEPAGE = "https://github.com/zaphoyd/websocketpp"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://${S}/COPYING;md5=4d168d763c111f4ffc62249870e4e0ea"
+
+DEPENDS = " ${@bb.utils.contains('DISTRO_FEATURES', 'ptest', 'openssl boost zlib', '', d)} "
+
+SRC_URI = "git://github.com/zaphoyd/websocketpp.git;protocol=https;branch=master \
+ file://0001-cmake-Use-GNUInstallDirs.patch \
+ file://855.patch \
+ file://857.patch \
+ file://0001-Correct-clang-compiler-flags.patch \
+ file://1024.patch \
+ "
+
+EXTRA_OECMAKE = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', '-DBUILD_EXAMPLES=ON -DBUILD_TESTS=ON', '', d)} "
+
+# this is an header only library, do not depend on the main package
+RDEPENDS:${PN}-dev = ""
+
+# to add this package to an SDK, since it isn't a reverse-dependency of anything, just use something like this:
+# TOOLCHAIN_TARGET_TASK:append = " websocketpp-dev"
+
+# tag 0.8.2
+SRCREV= "56123c87598f8b1dd471be83ca841ceae07f95ba"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+PACKAGES =+ "${PN}-examples"
+
+FILES:${PN}-examples = "${docdir}"
+
+do_install:append() {
+ install -d ${D}${docdir}/${BPN}
+ cp -R ${S}/examples ${D}${docdir}/${BPN}
+}
diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
deleted file mode 100644
index 90eff5bb0f..0000000000
--- a/meta-oe/recipes-support/wmiconfig/wmiconfig/0001-makefile-Pass-CFLAGS-to-compile.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 0378cbb323c662a565f7f3de2dee3d8a646e7bd1 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:32:42 -0700
-Subject: [PATCH 1/2] makefile: Pass CFLAGS to compile
-
-Set CC if not already set
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/host/tools/wmiconfig/Makefile b/host/tools/wmiconfig/Makefile
-index c6738c5..3253a7e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,4 +1,4 @@
--CC :=$(ATH_CROSS_COMPILE_TYPE)gcc
-+CC ?= $(ATH_CROSS_COMPILE_TYPE)gcc
-
- all:
-- $(CC) -Wall -DUSER_KEYS -g $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
-+ $(CC) -Wall -DUSER_KEYS -g $(CFLAGS) $(LDFLAGS) -I../../include -I../../../include -I../../wlan/include -I../../os/linux/include wmiconfig.c -o wmiconfig
---
-2.13.2
-
diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch b/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
deleted file mode 100644
index f67f784c1f..0000000000
--- a/meta-oe/recipes-support/wmiconfig/wmiconfig/0002-fix-err-API-to-have-format-string.patch
+++ /dev/null
@@ -1,656 +0,0 @@
-From 909ebdde4ee2233d65de8fa01fde8e9a3bec12b7 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 27 Jun 2017 09:33:26 -0700
-Subject: [PATCH 2/2] fix err() API to have format string
-
-Fixes errors with hardening flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- host/tools/wmiconfig/wmiconfig.c | 148 +++++++++++++++++++--------------------
- 1 file changed, 74 insertions(+), 74 deletions(-)
-
-diff --git a/host/tools/wmiconfig/wmiconfig.c b/host/tools/wmiconfig/wmiconfig.c
-index 21c9dcd..a6ec481 100644
---- a/wmiconfig.c
-+++ b/wmiconfig.c
-@@ -483,7 +483,7 @@ main (int argc, char **argv)
- strcpy(ifname, ethIf);
- s = socket(AF_INET, SOCK_DGRAM, 0);
- if (s < 0) {
-- err(1, "socket");
-+ err(1, "%s", "socket");
- }
-
- while (1) {
-@@ -1506,28 +1506,28 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)filterCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETBSSFILTER, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_POWER_MODE:
- ifr.ifr_data = (void *)pwrCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETPWR, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_PM_PARAMS:
- ifr.ifr_data = (void *)pmParamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_PMPARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_IBSS_PM_CAPS:
- ifr.ifr_data = (void *)adhocPmCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_IBSS_PM_CAPS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ERROR_DETECTION:
-@@ -1535,7 +1535,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_HB_CHALLENGE_RESP:
-@@ -1543,7 +1543,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- #ifdef USER_KEYS
-@@ -1554,7 +1554,7 @@ main (int argc, char **argv)
-
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
-
- break;
-@@ -1575,7 +1575,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)sParamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETSCAN, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_VERSION:
-@@ -1586,7 +1586,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)revinfo;
- if (ioctl(s, AR6000_IOCTL_WMI_GETREV, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Host Rev = 0x%x(%u.%u.%u.%u), Target Rev = 0x%x(%u.%u.%u.%u)\n",
- revinfo->host_ver,
-@@ -1606,14 +1606,14 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)listenCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SETLISTENINT, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BMISS_TIME:
- ifr.ifr_data = (void *)bmissCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_BMISS_TIME, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RSSI_THRESHOLDS:
-@@ -1621,14 +1621,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_SNR_THRESHOLDS:
- ifr.ifr_data = (void *)snrThresholdParam;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_SNRTHRESHOLD, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_CLR_RSSISNR:
-@@ -1636,7 +1636,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_LQ_THRESHOLDS:
-@@ -1644,7 +1644,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_CHANNEL:
-@@ -1693,18 +1693,18 @@ main (int argc, char **argv)
-
- if (ioctl(s, AR6000_IOCTL_WMI_SET_CHANNELPARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_SSID:
- if (index > MAX_PROBED_SSID_INDEX) {
- printf("num option for ssid command too large\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- break;
- }
- if (strlen((char *)ssid) > sizeof (ssidCmd->ssid)) {
- printf("ssid name too large\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- break;
- }
- ssidCmd->entryIndex = index;
-@@ -1722,7 +1722,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)ssidCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_PROBEDSSID, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BADAP:
-@@ -1735,7 +1735,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)badApCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_BADAP, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_CREATE_QOS:
-@@ -1794,7 +1794,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)crePStreamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_CREATE_QOS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_TARGET_STATS:
-@@ -1807,7 +1807,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)&tgtStatsCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_GET_TARGET_STATS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printTargetStats(&(tgtStatsCmd.targetStats));
- break;
-@@ -1815,7 +1815,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)pBitMask;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ERROR_REPORT_BITMASK, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DELETE_QOS:
-@@ -1824,7 +1824,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)delPStreamCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_DELETE_QOS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_QOS_QUEUE:
-@@ -1840,7 +1840,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)getQosQueueCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_GET_QOS_QUEUE, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
-
- printf("Active TSIDs \n");
-@@ -1855,7 +1855,7 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)ieInfo;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ASSOC_INFO, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_AC_PARAMS:
-@@ -1871,14 +1871,14 @@ main (int argc, char **argv)
- ifr.ifr_data = (void *)acParamsCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_ACCESS_PARAMS, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_DISC_TIMEOUT:
- ifr.ifr_data = (void *)discCmd;
- if (ioctl(s, AR6000_IOCTL_WMI_SET_DISC_TIMEOUT, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ADHOC_BSSID:
-@@ -1887,7 +1887,7 @@ main (int argc, char **argv)
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
- printf("fail to set adhoc bssid \n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_OPT_MODE:
-@@ -1895,7 +1895,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_OPT_SEND_FRAME:
-@@ -1903,7 +1903,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BEACON_INT:
-@@ -1911,7 +1911,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_VOICE_PKT_SIZE:
-@@ -1919,7 +1919,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_MAX_SP:
-@@ -1927,7 +1927,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_ROAM_TBL:
-@@ -1935,7 +1935,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_ROAM_CTRL:
-@@ -1943,7 +1943,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_POWERSAVE_TIMERS:
-@@ -1951,7 +1951,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_POWER_MODE:
-@@ -1959,7 +1959,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Power mode is %s\n",
- (getPowerMode->powerMode == MAX_PERF_POWER) ? "maxperf" : "rec");
-@@ -1969,7 +1969,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_ROAM_DATA:
-@@ -1977,7 +1977,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BT_STATUS:
-@@ -1985,7 +1985,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BT_PARAMS:
-@@ -1993,7 +1993,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RETRYLIMITS:
-@@ -2001,14 +2001,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_START_SCAN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_STARTSCAN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_FIX_RATES:
-@@ -2031,14 +2031,14 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_FIX_RATES:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GETFIXRATES;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- } else {
- int i;
- printf("Fix rate set index:");
-@@ -2057,7 +2057,7 @@ main (int argc, char **argv)
- index--;
- setAuthMode->mode = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_REASSOC_MODE:
-@@ -2067,42 +2067,42 @@ main (int argc, char **argv)
- index--;
- setReassocMode->mode = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_LPREAMBLE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_LPREAMBLE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_RTS:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_RTS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_WMM:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WMM;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_TXOP:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_TXOP;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DIAG_READ:
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("diagdata: 0x%x\n", *diagdata);
- break;
-@@ -2110,7 +2110,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_WRITE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_RD:
-@@ -2118,7 +2118,7 @@ main (int argc, char **argv)
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0)
- {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- else
- {
-@@ -2139,14 +2139,14 @@ main (int argc, char **argv)
- index--;
- setKeepAlive->keepaliveInterval = atoi(argv[index]);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_KEEPALIVE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_KEEPALIVE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("Keepalive interval is %d secs and AP is %s\n",
- getKeepAlive->keepaliveInterval, (getKeepAlive->configured ?
-@@ -2156,63 +2156,63 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_APPIE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_MGMT_FRM_RX_FILTER:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_MGMT_FRM_RX_FILTER;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DBGLOG_CFG_MODULE:
- ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_CFG_MODULE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DBGLOG_GET_DEBUG_LOGS:
- ((int *)buf)[0] = AR6000_XIOCTL_DBGLOG_GET_DEBUG_LOGS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_HOST_SLEEP_MODE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_HOST_SLEEP_MODE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_WOW_MODE:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_WOW_MODE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_ADD_WOW_PATTERN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_ADD_WOW_PATTERN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_DEL_WOW_PATTERN:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_DEL_WOW_PATTERN;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_GET_WOW_LIST:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_WOW_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DIAG_DUMP_CHIP_MEM:
-@@ -2225,7 +2225,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_DIAG_READ;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- printf("0x%04x:0x%04x\n", *diagaddr, *diagdata);
- }
-@@ -2237,21 +2237,21 @@ main (int argc, char **argv)
- index = optind - 1;
- *connectCtrlFlags = strtoul(argv[index], NULL, 0);
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case DUMP_HTC_CREDITS:
- ((int *)buf)[0] = AR6000_XIOCTL_DUMP_HTC_CREDIT_STATE;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_AKMP_INFO:
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_AKMP_PARAMS;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_PMKID_LIST:
-@@ -2259,7 +2259,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_SET_PMKID_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- } else {
- printf("No PMKIDs entered\n");
-@@ -2269,7 +2269,7 @@ main (int argc, char **argv)
- ((int *)buf)[0] = AR6000_XIOCTL_WMI_GET_PMKID_LIST;
- ifr.ifr_data = buf;
- if (ioctl(s, AR6000_IOCTL_EXTENDED, &ifr) < 0) {
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- case WMI_SET_BSS_PMKID_INFO:
-@@ -2277,7 +2277,7 @@ main (int argc, char **argv)
- iwr.u.data.length = sizeof(*pi_cmd);
- if (ioctl(s, IEEE80211_IOCTL_ADDPMKID, &iwr) < 0) {
- printf("ADDPMKID IOCTL Error\n");
-- err(1, ifr.ifr_name);
-+ err(1, "%s", ifr.ifr_name);
- }
- break;
- default:
---
-2.13.2
-
diff --git a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb b/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
deleted file mode 100644
index c66572b1c1..0000000000
--- a/meta-oe/recipes-support/wmiconfig/wmiconfig_svn.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Atheros 6K Wifi configuration utility"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://wmiconfig.c;endline=19;md5=4394a56bca1c5b2446c9f8e406c82911"
-SECTION = "console/network"
-SRCREV = "5394"
-PV = "0.0.0+svnr${SRCPV}"
-PR = "r2"
-
-SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=AR6kSDK.build_sw.18;protocol=http \
- file://0001-makefile-Pass-CFLAGS-to-compile.patch \
- file://0002-fix-err-API-to-have-format-string.patch \
- "
-S = "${WORKDIR}/AR6kSDK.build_sw.18/host/tools/wmiconfig"
-
-CLEANBROKEN = "1"
-
-EXTRA_OEMAKE = "-e MAKEFLAGS="
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 wmiconfig ${D}${bindir}
-}
-
diff --git a/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb b/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb
deleted file mode 100644
index 9669d9bbb6..0000000000
--- a/meta-oe/recipes-support/xdelta/xdelta3_3.0.11.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Xdelta is a tool for differential compression"
-DESCRIPTION = "Open-source binary diff, differential compression tools, \
- VCDIFF (RFC 3284) delta compression."
-HOMEPAGE = "http://xdelta.org/"
-SECTION = "console/utils"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
-SRC_URI = "https://github.com/jmacd/xdelta-devel/releases/download/v${PV}/${BPN}-${PV}.tar.gz \
- "
-SRC_URI[md5sum] = "445d8be2ac512113d5ca601ae8359626"
-SRC_URI[sha256sum] = "0ccc9751ceaa4d90d6b06938a4deddb481816f5d9284bd07d2e728609cb300aa"
-
-inherit autotools
-
-# Optional secondary compression
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
diff --git a/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb b/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb
new file mode 100644
index 0000000000..6b35d71a55
--- /dev/null
+++ b/meta-oe/recipes-support/xdelta/xdelta3_3.1.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "Xdelta is a tool for differential compression"
+DESCRIPTION = "Open-source binary diff, differential compression tools, \
+ VCDIFF (RFC 3284) delta compression."
+HOMEPAGE = "http://xdelta.org/"
+SECTION = "console/utils"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=393a5ca445f6965873eca0259a17f833"
+
+SRC_URI = "git://github.com/jmacd/xdelta.git;branch=release3_1_apl;protocol=https"
+SRCREV = "4b4aed71a959fe11852e45242bb6524be85d3709"
+S = "${WORKDIR}/git/xdelta3"
+
+inherit autotools
+
+# Optional secondary compression
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lzma] = "--with-liblzma,--without-liblzma,xz"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.4.bb b/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.4.bb
new file mode 100644
index 0000000000..35dee632a2
--- /dev/null
+++ b/meta-oe/recipes-support/xdg-dbus-proxy/xdg-dbus-proxy_0.1.4.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 = "6bfe8c32ab23f8c1d80af7a70b3d318a79a17652"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch
new file mode 100644
index 0000000000..1997d0ffe7
--- /dev/null
+++ b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal/0001-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch
@@ -0,0 +1,27 @@
+From 7727dbfef4dd7ced3958ae9ada59a8899976b12d Mon Sep 17 00:00:00 2001
+From: Markus Volk <f_l_k@t-online.de>
+Date: Mon, 12 Dec 2022 18:40:31 +0100
+Subject: [PATCH] xdg-desktop-portal.pc.in: add pc_sysrootdir dir
+
+---
+Upstream-Status: Pending
+
+ xdg-desktop-portal.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/xdg-desktop-portal.pc.in b/xdg-desktop-portal.pc.in
+index 585c0c8..15b5817 100644
+--- a/xdg-desktop-portal.pc.in
++++ b/xdg-desktop-portal.pc.in
+@@ -2,7 +2,7 @@ prefix=@prefix@
+ datarootdir=@datarootdir@
+ datadir=@datadir@
+
+-interfaces_dir=${datadir}/dbus-1/interfaces/
++interfaces_dir=${pc_sysrootdir}${datadir}/dbus-1/interfaces
+
+ Name: xdg-desktop-portal
+ Description: Desktop integration portal
+--
+2.34.1
+
diff --git a/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.16.0.bb b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.16.0.bb
new file mode 100644
index 0000000000..0b3a93ab32
--- /dev/null
+++ b/meta-oe/recipes-support/xdg-desktop-portal/xdg-desktop-portal_1.16.0.bb
@@ -0,0 +1,47 @@
+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 \
+ libportal \
+ geoclue \
+ pipewire \
+ dbus-native \
+ fuse3 \
+ xmlto-native \
+ flatpak \
+ python3-dbus-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-xdg-desktop-portal-pc-in-add-pc_sysrootdir-dir.patch \
+"
+
+S = "${WORKDIR}/git"
+SRCREV = "88af6c8ca4106fcf70925355350a669848e9fd5a"
+
+FILES:${PN} += "${libdir}/systemd ${datadir}/dbus-1"
+
+EXTRA_OEMESON += "--cross-file=${WORKDIR}/meson-${PN}.cross"
+
+do_write_config:append() {
+ cat >${WORKDIR}/meson-${PN}.cross <<EOF
+[binaries]
+bwrap = '${bindir}/bwrap'
+EOF
+}
diff --git a/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb b/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb
deleted file mode 100644
index e3ce9268cd..0000000000
--- a/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.17.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "xdg-user-dirs is a tool to help manage user directories like the desktop folder and the music folder"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI = "http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "e0564ec6d838e6e41864d872a29b3575"
-SRC_URI[sha256sum] = "2a07052823788e8614925c5a19ef5b968d8db734fdee656699ea4f97d132418c"
-
-inherit autotools gettext
-
-EXTRA_OECONF = "--disable-documentation"
-
-CONFFILES_${PN} += " \
- ${sysconfdir}/xdg/user-dirs.conf \
- ${sysconfdir}/xdg/user-dirs.defaults \
-"
diff --git a/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.18.bb b/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.18.bb
new file mode 100644
index 0000000000..84fc9e2f18
--- /dev/null
+++ b/meta-oe/recipes-support/xdg-user-dirs/xdg-user-dirs_0.18.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "xdg-user-dirs is a tool to help manage user directories like the desktop folder and the music folder"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+SRC_URI = "http://user-dirs.freedesktop.org/releases/${BPN}-${PV}.tar.gz"
+SRC_URI[sha256sum] = "ec6f06d7495cdba37a732039f9b5e1578bcb296576fde0da40edb2f52220df3c"
+
+inherit autotools gettext
+
+EXTRA_OECONF = "--disable-documentation"
+
+CONFFILES:${PN} += " \
+ ${sysconfdir}/xdg/user-dirs.conf \
+ ${sysconfdir}/xdg/user-dirs.defaults \
+"
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
new file mode 100644
index 0000000000..53c119765a
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-nss-nspr-fix-for-multilib.patch
@@ -0,0 +1,52 @@
+From 9ed3b4e628f9254d5c86006fe63c33a1eb02aee5 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
+
+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
+--- a/configure.ac
++++ b/configure.ac
+@@ -920,24 +920,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)
+- if test -f "$with_nspr/include/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/lib/$NSPR_LIB_MARKER" ; then
+- NSPR_INCLUDE_PATH="$with_nspr/include"
+- NSPR_LIB_PATH="$with_nspr/lib"
++ if test -f "$with_nspr/${includedir}/$NSPR_INCLUDE_MARKER" -a -f "$with_nspr/${libdir}/$NSPR_LIB_MARKER" ; then
++ NSPR_INCLUDE_PATH="$with_nspr/${includedir}"
++ NSPR_LIB_PATH="$with_nspr/${libdir}"
+ NSPR_FOUND="yes"
+ AC_MSG_RESULT([yes])
+ else
+- AC_MSG_ERROR([not found: "$with_nspr/include/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/lib/$NSPR_LIB_MARKER" files don't exist), typo?])
++ AC_MSG_ERROR([not found: "$with_nspr/${includedir}/$NSPR_INCLUDE_MARKER" and/or "$with_nspr/${libdir}/$NSPR_LIB_MARKER" files don't exist), typo?])
+ fi
+ fi
+ if test "z$NSS_FOUND" = "zno" -a "z$with_nss" != "z" -a "z$with_nss" != "zyes" ; then
+ AC_MSG_CHECKING(for nss library installation in "$with_nss" folder)
+- if test -f "$with_nss/include/$NSS_INCLUDE_MARKER" -a -f "$with_nss/lib/$NSS_LIB_MARKER" ; then
+- NSS_INCLUDE_PATH="$with_nss/include"
+- NSS_LIB_PATH="$with_nss/lib"
++ if test -f "$with_nss/${includedir}/$NSS_INCLUDE_MARKER" -a -f "$with_nss/${libdir}/$NSS_LIB_MARKER" ; then
++ NSS_INCLUDE_PATH="$with_nss/${includedir}"
++ NSS_LIB_PATH="$with_nss/${libdir}"
+ NSS_FOUND="yes"
+ AC_MSG_RESULT([yes])
+ else
+- AC_MSG_ERROR([not found: "$with_nss/include/$NSS_INCLUDE_MARKER" and/or "$with_nss/lib/$NSS_LIB_MARKER" files don't exist), typo?])
++ AC_MSG_ERROR([not found: "$with_nss/${includedir}/$NSS_INCLUDE_MARKER" and/or "$with_nss/${libdir}/$NSS_LIB_MARKER" files don't exist), typo?])
+ fi
+ fi
+
+--
+2.21.0
+
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-xmldsigverify-Include-xmlsec-parser.h.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-xmldsigverify-Include-xmlsec-parser.h.patch
new file mode 100644
index 0000000000..4347e925a3
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/0001-xmldsigverify-Include-xmlsec-parser.h.patch
@@ -0,0 +1,43 @@
+From 30e1afe60820c18c89cd10e9dcb7208ad5676d1d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 19 Jan 2023 15:06:35 -0800
+Subject: [PATCH] xmldsigverify: Include xmlsec/parser.h
+
+this ensures that xmlSecParserSetDefaultOptions definition is made
+available
+
+Fixes
+| xmldsigverify.c:275:5: error: call to undeclared function 'xmlSecParserSetDefaultOptions'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
+| xmlSecParserSetDefaultOptions(XML_PARSE_NOENT | XML_PARSE_NOCDATA |
+| ^
+
+Upstream-Status: Submitted [https://github.com/lsh123/xmlsec/pull/463]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ examples/xmldsigverify.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/examples/xmldsigverify.c b/examples/xmldsigverify.c
+index ed538c70..ff68120e 100644
+--- a/examples/xmldsigverify.c
++++ b/examples/xmldsigverify.c
+@@ -25,6 +25,7 @@
+ #include <xmlsec/xmldsig.h>
+ #include <xmlsec/crypto.h>
+
++#include <xmlsec/parser.h>
+ /* #define XMLDSIGVERIFY_DEFAULT_TRUSTED_CERTS_FOLDER "/etc/httpd/conf/ssl.crt" */
+ #define XMLDSIGVERIFY_DEFAULT_TRUSTED_CERTS_FOLDER "/var/www/cgi-bin/keys-certs.def"
+ #define XMLDSIGVERIFY_KEY_AND_CERTS_FOLDER "/var/www/cgi-bin/keys-certs"
+@@ -36,7 +37,7 @@ int verify_request(xmlSecKeysMngrPtr mngr);
+ int url_decode(char *buf, size_t size);
+
+ int
+-main(int , char **) {
++main() {
+ xmlSecKeysMngrPtr mngr;
+ #ifndef XMLSEC_NO_XSLT
+ xsltSecurityPrefsPtr xsltSecPrefs = NULL;
+--
+2.39.1
+
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
new file mode 100644
index 0000000000..1451ff5647
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/change-finding-path-of-nss.patch
@@ -0,0 +1,27 @@
+From c1c980a95d85bcaf8802524d6148783522b300d7 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
+
+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(-)
+
+diff --git a/configure.ac b/configure.ac
+index 951b3eb..1fdeb0f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -866,7 +866,7 @@ MOZILLA_MIN_VERSION="1.4"
+ 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"
+
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
new file mode 100644
index 0000000000..a5a298af0d
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/ensure-search-path-non-host.patch
@@ -0,0 +1,22 @@
+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.
+
+It will eventually arise after the configure QA as the configure script should only look at the staging sysroot dir, not at the host.
+
+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 @@
+ dnl ==========================================================================
+ dnl Common installation locations
+ dnl ==========================================================================
+-COMMON_INCLUDE_DIR="/usr/include /usr/local/include"
+-COMMON_LIB_DIR="/usr/lib /usr/lib64 /usr/local/lib"
++COMMON_INCLUDE_DIR="${STAGING_INCDIR}"
++COMMON_LIB_DIR="${STAGING_LIBDIR}"
+ case $host in
+ i*86-*-linux-gnu) COMMON_LIB_DIR="$COMMON_LIB_DIR /usr/lib/i386-linux-gnu" ;;
+ x86_64-*-linux-gnu) COMMON_LIB_DIR="$COMMON_LIB_DIR /usr/lib/x86_64-linux-gnu" ;;
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch
new file mode 100644
index 0000000000..af598fe749
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/fix-ltmain.sh.patch
@@ -0,0 +1,26 @@
+From 847dc52f5a50e34ee4d6e3dc2c708711747a58ca 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
+
+Upstream-Status: Inappropriate [ OE specific ]
+
+Signed-off-by: Yulong Pei <Yulong.pei@windriver.com>
+
+---
+ ltmain.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ltmain.sh b/ltmain.sh
+index 147d758..a61f16b 100644
+--- a/ltmain.sh
++++ b/ltmain.sh
+@@ -6969,7 +6969,7 @@ func_mode_link ()
+ dir=$func_resolve_sysroot_result
+ # We need an absolute path.
+ case $dir in
+- [\\/]* | [A-Za-z]:[\\/]*) ;;
++ =* | [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ test -z "$absdir" && \
diff --git a/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch b/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch
new file mode 100644
index 0000000000..26ebce343d
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/makefile-ptest.patch
@@ -0,0 +1,42 @@
+From 83a1381e1d6bd1b5ec3df6f7c4bc1f4fe4f860b6 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Thu, 15 Jun 2017 14:44:01 +0800
+Subject: [PATCH] xmlsec1: add new recipe
+
+This enables the building of the examples directory
+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 02480c2..cbc2661 100644
+--- a/examples/Makefile
++++ b/examples/Makefile
+@@ -8,9 +8,17 @@ PROGRAMS = \
+ decrypt1 decrypt2 decrypt3 \
+ xmldsigverify
+
++ifndef CC
+ CC = gcc
+-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 -Wall -Wextra
++LDLIBS += -L../src/.libs -g $(shell PKG_CONFIG_PATH=.. pkg-config --libs xmlsec1 )
++
++DESTDIR = /usr/share/xmlsec1
++install-ptest:
++ if [ ! -d $(DESTDIR) ]; then mkdir -p $(DESTDIR); fi
++ cp * $(DESTDIR)
+
+ 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
new file mode 100755
index 0000000000..a203c38f27
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/run-ptest
@@ -0,0 +1,85 @@
+#!/bin/sh
+
+check_return() {
+ if [ $? == 0 ]; then
+ echo -e "PASS: $1\n"
+ else
+ echo -e "FAIL: $1\n"
+ fi
+}
+
+echo "---------------------------------------------------"
+echo "Signing a template file..."
+./sign1 sign1-tmpl.xml rsakey.pem > sign1-res.xml
+./verify1 sign1-res.xml rsapub.pem
+check_return sign-tmpl
+
+echo "---------------------------------------------------"
+echo "Signing a dynamicaly created template..."
+./sign2 sign2-doc.xml rsakey.pem > sign2-res.xml
+./verify1 sign2-res.xml rsapub.pem
+check_return sign-dynamic-templ
+
+echo "---------------------------------------------------"
+echo "Signing with X509 certificate..."
+./sign3 sign3-doc.xml rsakey.pem rsacert.pem > sign3-res.xml
+./verify3 sign3-res.xml ca2cert.pem cacert.pem
+check_return sign-x509
+
+echo "---------------------------------------------------"
+echo "Verifying a signature with a single key..."
+./verify1 sign1-res.xml rsapub.pem
+./verify1 sign2-res.xml rsapub.pem
+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
+check_return verify-keys-manager
+
+echo "---------------------------------------------------"
+echo "Verifying a signature with X509 certificates..."
+./verify3 sign3-res.xml ca2cert.pem cacert.pem
+check_return verify-x509
+
+echo "---------------------------------------------------"
+echo "Verifying a signature with additional restrictions..."
+./verify4 verify4-res.xml ca2cert.pem cacert.pem
+check_return verify-res
+
+echo "---------------------------------------------------"
+echo "Encrypting data with a template file..."
+./encrypt1 encrypt1-tmpl.xml deskey.bin > encrypt1-res.xml
+./decrypt1 encrypt1-res.xml deskey.bin
+check_return encrypt-tmpl
+
+echo "---------------------------------------------------"
+echo "Encrypting data with a dynamicaly created template..."
+./encrypt2 encrypt2-doc.xml deskey.bin > encrypt2-res.xml
+./decrypt1 encrypt2-res.xml deskey.bin
+check_return encrypt-dynamic-tmpl
+
+echo "---------------------------------------------------"
+echo "Encrypting data with a session key..."
+./encrypt3 encrypt3-doc.xml rsakey.pem > encrypt3-res.xml
+./decrypt3 encrypt3-res.xml
+check_return encrypt-session-key
+
+echo "---------------------------------------------------"
+echo "Decrypting data with a single key..."
+./decrypt1 encrypt1-res.xml deskey.bin
+./decrypt1 encrypt2-res.xml deskey.bin
+check_return encrypt-single-key
+
+echo "---------------------------------------------------"
+echo "Decrypting data with keys manager..."
+./decrypt2 encrypt1-res.xml deskey.bin
+./decrypt2 encrypt2-res.xml deskey.bin
+check_return encrypt-keys-manager
+
+echo "---------------------------------------------------"
+echo "Writing a custom keys manager..."
+./decrypt3 encrypt1-res.xml
+./decrypt3 encrypt2-res.xml
+check_return write-keys-manager
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
new file mode 100644
index 0000000000..9e6a6a840f
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1/xmlsec1-examples-allow-build-in-separate-dir.patch
@@ -0,0 +1,32 @@
+From 0c38c6864e7ba8f53a657d87894f24374a6a4932 Mon Sep 17 00:00:00 2001
+From: Jackie Huang <jackie.huang@windriver.com>
+Date: Tue, 30 Dec 2014 11:18:17 +0800
+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 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 -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 -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.37.bb b/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.37.bb
new file mode 100644
index 0000000000..a3da770943
--- /dev/null
+++ b/meta-oe/recipes-support/xmlsec1/xmlsec1_1.2.37.bb
@@ -0,0 +1,68 @@
+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 \
+ file://0001-xmldsigverify-Include-xmlsec-parser.h.patch \
+ "
+
+SRC_URI[sha256sum] = "5f8dfbcb6d1e56bddd0b5ec2e00a3d0ca5342a9f57c24dffde5c796b2be2871c"
+
+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/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 e3d52e616a..930fbdd6c7 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,8 @@ 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-Fix-hash_key_put-signature.patch"
SRC_URI[sha256sum] = "15d838c4f3375332fd95554619179b69e4ec91418a3a5296e7c631b7ed19e7ca"
inherit autotools
@@ -24,3 +24,8 @@ inherit autotools
EXTRA_OECONF="--disable-build-docs \
--with-libxml-prefix=${STAGING_LIBDIR}/.. \
--with-libxslt-prefix=${STAGING_LIBDIR}/.."
+
+# http://errors.yoctoproject.org/Errors/Details/157121/
+# /bin/bash: src/usage.c: No such file or directory
+# Makefile:2121: recipe for target 'src/usage.c' failed
+PARALLEL_MAKE = ""
diff --git a/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb b/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
deleted file mode 100644
index 0bdafdf3bd..0000000000
--- a/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.2.5.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Xorg drivers for xrdp."
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a2523660329fdca3d954c0a87390e007"
-
-inherit autotools pkgconfig
-
-DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "x11 pam"
-
-SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git"
-
-SRCREV = "c122544f184d4031bbae1ad80fbab554c34a9427"
-
-PV = "0.2.5"
-
-S = "${WORKDIR}/git"
-
-FILES_${PN} += "${libdir}/xorg/modules/*"
-
-INSANE_SKIP_${PN} += "xorg-driver-abi"
diff --git a/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.9.19.bb b/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.9.19.bb
new file mode 100644
index 0000000000..9650d43695
--- /dev/null
+++ b/meta-oe/recipes-support/xorg-xrdp/xorgxrdp_0.9.19.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Xorg drivers for xrdp."
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a2523660329fdca3d954c0a87390e007"
+
+inherit autotools pkgconfig
+
+DEPENDS = "virtual/libx11 xserver-xorg xrdp nasm-native"
+
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "git://github.com/neutrinolabs/xorgxrdp.git;branch=v0.9;protocol=https"
+
+SRCREV = "d463bad9639c910fadc2f30dac473c7688b11cfc"
+
+PV = "0.9.19"
+
+S = "${WORKDIR}/git"
+
+FILES:${PN} += "${libdir}/xorg/modules/*"
+
+INSANE_SKIP:${PN} += "xorg-driver-abi"
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-of-CVE-2017-16927.patch b/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch
deleted file mode 100644
index 4c93647f67..0000000000
--- a/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-of-CVE-2017-16927.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-Subject: [PATCH] Fix CVE-2017-16927
-
-sesman: scpv0, accept variable length data fields
-
-Upstream-Status: Backport
-
----
- sesman/libscp/libscp_v0.c | 32 +++++++++++++++++++++++++-------
- 1 file changed, 25 insertions(+), 7 deletions(-)
-
-diff --git a/sesman/libscp/libscp_v0.c b/sesman/libscp/libscp_v0.c
-index 5a0c8bf..5693407 100644
---- a/sesman/libscp/libscp_v0.c
-+++ b/sesman/libscp/libscp_v0.c
-@@ -161,7 +161,7 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
- struct SCP_SESSION *session = 0;
- tui16 sz;
- tui32 code = 0;
-- char buf[257];
-+ char *buf = 0;
-
- if (!skipVchk)
- {
-@@ -226,27 +226,31 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
-
- /* reading username */
- in_uint16_be(c->in_s, sz);
-- buf[sz] = '\0';
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
--
-+ buf[sz] = '\0';
- if (0 != scp_session_set_username(session, buf))
- {
- scp_session_destroy(session);
- log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting username", __LINE__);
-+ g_free(buf);
- return SCP_SERVER_STATE_INTERNAL_ERR;
- }
-+ g_free(buf);
-
- /* reading password */
- in_uint16_be(c->in_s, sz);
-- buf[sz] = '\0';
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
--
-+ buf[sz] = '\0';
- if (0 != scp_session_set_password(session, buf))
- {
- scp_session_destroy(session);
- log_message(LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__);
-+ g_free(buf);
- return SCP_SERVER_STATE_INTERNAL_ERR;
- }
-+ g_free(buf);
-
- /* width */
- in_uint16_be(c->in_s, sz);
-@@ -272,9 +276,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
-
- if (sz > 0)
- {
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
- buf[sz] = '\0';
- scp_session_set_domain(session, buf);
-+ g_free(buf);
- }
- }
-
-@@ -285,9 +291,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
-
- if (sz > 0)
- {
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
- buf[sz] = '\0';
- scp_session_set_program(session, buf);
-+ g_free(buf);
- }
- }
-
-@@ -298,9 +306,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
-
- if (sz > 0)
- {
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
- buf[sz] = '\0';
- scp_session_set_directory(session, buf);
-+ g_free(buf);
- }
- }
-
-@@ -311,9 +321,11 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
-
- if (sz > 0)
- {
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
- buf[sz] = '\0';
- scp_session_set_client_ip(session, buf);
-+ g_free(buf);
- }
- }
- }
-@@ -332,29 +344,35 @@ scp_v0s_accept(struct SCP_CONNECTION *c, struct SCP_SESSION **s, int skipVchk)
- scp_session_set_type(session, SCP_GW_AUTHENTICATION);
- /* reading username */
- in_uint16_be(c->in_s, sz);
-- buf[sz] = '\0';
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
-+ buf[sz] = '\0';
-
- /* g_writeln("Received user name: %s",buf); */
- if (0 != scp_session_set_username(session, buf))
- {
- scp_session_destroy(session);
- /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting username", __LINE__);*/
-+ g_free(buf);
- return SCP_SERVER_STATE_INTERNAL_ERR;
- }
-+ g_free(buf);
-
- /* reading password */
- in_uint16_be(c->in_s, sz);
-- buf[sz] = '\0';
-+ buf = g_new0(char, sz);
- in_uint8a(c->in_s, buf, sz);
-+ buf[sz] = '\0';
-
- /* g_writeln("Received password: %s",buf); */
- if (0 != scp_session_set_password(session, buf))
- {
- scp_session_destroy(session);
- /* until syslog merge log_message(s_log, LOG_LEVEL_WARNING, "[v0:%d] connection aborted: error setting password", __LINE__); */
-+ g_free(buf);
- return SCP_SERVER_STATE_INTERNAL_ERR;
- }
-+ g_free(buf);
- }
- else
- {
---
-2.7.4
-
diff --git a/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch b/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch
deleted file mode 100644
index deaadde8c7..0000000000
--- a/meta-oe/recipes-support/xrdp/xrdp/0001-Fix-sesman.ini-and-xrdp.ini.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From a9c460f158d68c1b3de6a31ce853de5379977695 Mon Sep 17 00:00:00 2001
-From: Lei Maohui <leimaohui@cn.fujitsu.com>
-Date: Thu, 30 Nov 2017 11:10:04 +0900
-Subject: [PATCH] Fix sesman.ini and xrdp.ini
-
-Signed-off-by: Lei Maohui <leimaohui@cn.fujitsu.com>
----
- sesman/sesman.ini | 20 ++++++--------------
- xrdp/xrdp.ini | 10 ----------
- 2 files changed, 6 insertions(+), 24 deletions(-)
-
-diff --git a/sesman/sesman.ini b/sesman/sesman.ini
-index 8225ee4..c09189e 100644
---- a/sesman/sesman.ini
-+++ b/sesman/sesman.ini
-@@ -54,12 +54,14 @@ LogLevel=DEBUG
- EnableSyslog=1
- SyslogLevel=DEBUG
-
--[X11rdp]
--param=X11rdp
--param=-bs
-+[Xorg]
-+param=Xorg
-+param=-config
-+param=xrdp/xorg.conf
-+param=-noreset
- param=-nolisten
- param=tcp
--param=-uds
-+
-
- [Xvnc]
- param=Xvnc
-@@ -70,16 +72,6 @@ param=-localhost
- param=-dpi
- param=96
-
--[Xorg]
--param=Xorg
--param=-config
--param=xrdp/xorg.conf
--param=-noreset
--param=-nolisten
--param=tcp
--param=-logfile
--param=.xorgxrdp.%s.log
--
- [Chansrv]
- ; drive redirection, defaults to xrdp_client if not set
- FuseMountName=thinclient_drives
-diff --git a/xrdp/xrdp.ini b/xrdp/xrdp.ini
-index cb6d7c3..9f63a69 100644
---- a/xrdp/xrdp.ini
-+++ b/xrdp/xrdp.ini
-@@ -157,16 +157,6 @@ ip=127.0.0.1
- port=-1
- code=20
-
--[X11rdp]
--name=X11rdp
--lib=libxup.so
--username=ask
--password=ask
--ip=127.0.0.1
--port=-1
--xserverbpp=24
--code=10
--
- [Xvnc]
- name=Xvnc
- lib=libvnc.so
---
-1.8.4.2
-
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/xrdp/xrdp/0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch b/meta-oe/recipes-support/xrdp/xrdp/0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch
new file mode 100644
index 0000000000..ea3eb11f0a
--- /dev/null
+++ b/meta-oe/recipes-support/xrdp/xrdp/0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch
@@ -0,0 +1,27 @@
+From 5958db649855bfb2ada7c0ed22a00f839b9a1161 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 12 Mar 2021 21:40:35 -0800
+Subject: [PATCH] arch: Define NO_NEED_ALIGN on ppc64
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ common/arch.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/common/arch.h b/common/arch.h
+index 617feb5e..6edb39db 100644
+--- a/common/arch.h
++++ b/common/arch.h
+@@ -85,7 +85,7 @@ typedef int bool_t;
+ #define NEED_ALIGN
+ #elif defined(__x86__) || defined(__x86_64__) || \
+ defined(__AMD64__) || defined(_M_IX86) || defined (_M_AMD64) || \
+- defined(__i386__) || defined(__aarch64__) || \
++ defined(__i386__) || defined(__aarch64__) || defined(__powerpc64__) || \
+ defined(__PPC__) || defined(__LITTLE_ENDIAN__) || \
+ defined(__s390__) || defined (__s390x__) || \
+ defined(__riscv)
+--
+2.31.1
+
diff --git a/meta-oe/recipes-support/xrdp/xrdp/0001-mark-count-with-unused-attribute.patch b/meta-oe/recipes-support/xrdp/xrdp/0001-mark-count-with-unused-attribute.patch
new file mode 100644
index 0000000000..77a394d556
--- /dev/null
+++ b/meta-oe/recipes-support/xrdp/xrdp/0001-mark-count-with-unused-attribute.patch
@@ -0,0 +1,31 @@
+From 492f74dbea1d9a15fbc3e870e78ab52e7fc5583b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 31 Aug 2022 20:19:32 -0700
+Subject: [PATCH] mark count with unused attribute
+
+This may throw a warning when devel logs are disabled
+Fixed
+../../../xrdp-0.9.19/sesman/chansrv/chansrv.c:198:9: error: variable 'count' set but not used [-Werror,-Wunused-but-set-variable] int count; ^ 1 error generated.
+
+Upstream-Status: Submitted [https://github.com/neutrinolabs/xrdp/pull/2353]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ sesman/chansrv/chansrv.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sesman/chansrv/chansrv.c b/sesman/chansrv/chansrv.c
+index 4452d998..b818bff3 100644
+--- a/sesman/chansrv/chansrv.c
++++ b/sesman/chansrv/chansrv.c
+@@ -195,7 +195,7 @@ check_timeout(void)
+ struct timeout_obj *tobj;
+ struct timeout_obj *last_tobj;
+ struct timeout_obj *temp_tobj;
+- int count;
++ int count __attribute__((unused));
+ tui32 now;
+
+ LOG_DEVEL(LOG_LEVEL_DEBUG, "check_timeout:");
+--
+2.37.3
+
diff --git a/meta-oe/recipes-support/xrdp/xrdp_0.9.19.bb b/meta-oe/recipes-support/xrdp/xrdp_0.9.19.bb
new file mode 100644
index 0000000000..b839a68294
--- /dev/null
+++ b/meta-oe/recipes-support/xrdp/xrdp_0.9.19.bb
@@ -0,0 +1,91 @@
+SUMMARY = "An open source remote desktop protocol(rdp) server."
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \
+"
+
+inherit features_check autotools pkgconfig useradd systemd
+
+DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native imlib2 pixman libsm"
+
+REQUIRED_DISTRO_FEATURES = "x11 pam"
+
+SRC_URI = "https://github.com/neutrinolabs/${BPN}/releases/download/v${PV}/${BPN}-${PV}.tar.gz \
+ file://xrdp.sysconfig \
+ file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \
+ file://0001-Fix-the-compile-error.patch \
+ file://0001-arch-Define-NO_NEED_ALIGN-on-ppc64.patch \
+ file://0001-mark-count-with-unused-attribute.patch \
+ "
+
+SRC_URI[sha256sum] = "94017d30e475c6d7a24f651e16791551862ae46f82d8de62385e63393f5f93d0"
+
+CFLAGS += " -Wno-deprecated-declarations"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse"
+
+USERADD_PACKAGES = "${PN}"
+GROUPADD_PARAM:${PN} = "--system xrdp"
+USERADD_PARAM:${PN} = "--system --home /var/run/xrdp -g xrdp \
+ --no-create-home --shell /bin/false xrdp"
+
+FILES:${PN} += "${datadir}/dbus-1/services/*.service \
+ ${datadir}/dbus-1/accessibility-services/*.service "
+
+FILES:${PN}-dev += "${libdir}/xrdp/libcommon.so \
+ ${libdir}/xrdp/libxrdp.so \
+ ${libdir}/xrdp/libscp.so \
+ ${libdir}/xrdp/libxrdpapi.so "
+
+EXTRA_OECONF = "--enable-pam-config=suse --enable-fuse \
+ --enable-pixman --enable-painter --enable-vsock \
+ --enable-ipv6 --with-imlib2 --with-socketdir=${localstatedir}/run/${PN}"
+
+do_configure:prepend() {
+ cd ${S}
+ ./bootstrap
+ cd -
+}
+
+do_compile:prepend() {
+ sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in
+ echo "" > ${B}/xrdp_configure_options.h
+}
+
+do_install:append() {
+
+ # deal with systemd unit files
+ install -d ${D}${systemd_unitdir}/system
+ install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service
+ install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service
+ sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+ sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+ sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
+
+ install -d ${D}${sysconfdir}/sysconfig/xrdp
+ install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/
+ install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/
+ chown xrdp:xrdp ${D}${sysconfdir}/xrdp
+}
+
+SYSTEMD_SERVICE:${PN} = "xrdp.service xrdp-sesman.service"
+
+pkg_postinst:${PN}() {
+ if test -z "$D"
+ then
+ if test -x ${bindir}/xrdp-keygen
+ then
+ ${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null
+ fi
+ if test ! -s ${sysconfdir}/xrdp/cert.pem
+ then
+ openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \
+ -keyout ${sysconfdir}/xrdp/key.pem \
+ -out ${sysconfdir}/xrdp/cert.pem \
+ -config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1
+ chmod 400 ${sysconfdir}/xrdp/key.pem
+ fi
+ fi
+}
diff --git a/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb b/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb
deleted file mode 100644
index 3ef7c9853f..0000000000
--- a/meta-oe/recipes-support/xrdp/xrdp_0.9.4.bb
+++ /dev/null
@@ -1,99 +0,0 @@
-SUMMARY = "An open source remote desktop protocol(rdp) server."
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=72cfbe4e7bd33a0a1de9630c91195c21 \
-"
-
-inherit distro_features_check autotools pkgconfig useradd systemd
-
-DEPENDS = "openssl virtual/libx11 libxfixes libxrandr libpam nasm-native"
-
-REQUIRED_DISTRO_FEATURES = "x11 pam"
-
-SRC_URI = "git://github.com/neutrinolabs/xrdp.git \
- file://xrdp.sysconfig \
- file://0001-Fix-sesman.ini-and-xrdp.ini.patch \
- file://0001-Added-req_distinguished_name-in-etc-xrdp-openssl.con.patch \
- file://0001-Fix-the-compile-error.patch \
- file://0001-Fix-of-CVE-2017-16927.patch \
- "
-
-SRCREV = "c295dd61b882e8b56677cf12791f43634f9190b5"
-
-PV = "0.9.4+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[fuse] = " --enable-fuse, --disable-fuse, fuse"
-
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system xrdp"
-USERADD_PARAM_${PN} = "--system --home /var/run/xrdp -g xrdp \
- --no-create-home --shell /bin/false xrdp"
-
-FILES_${PN} += "${datadir}/dbus-1/services/*.service \
- ${datadir}/dbus-1/accessibility-services/*.service "
-
-FILES_${PN}-dev += "${libdir}/xrdp/libcommon.so \
- ${libdir}/xrdp/libxrdp.so \
- ${libdir}/xrdp/libscp.so \
- ${libdir}/xrdp/libxrdpapi.so "
-
-EXTRA_OECONF = "--enable-pam-config=suse"
-
-do_configure_prepend() {
- cd ${S}
- ./bootstrap
- cd -
-}
-
-do_compile_prepend() {
- sed -i 's/(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am/(MAKE) $(AM_MAKEFLAGS) install-exec-am/g' ${S}/keygen/Makefile.in
-}
-
-
-do_install_append() {
- install -d ${D}${sysconfdir}
- install -d ${D}${sysconfdir}/xrdp
- install -d ${D}${sysconfdir}/xrdp/pam.d
- install -d ${D}${sysconfdir}/sysconfig/xrdp
-
- # deal with systemd unit files
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${S}/instfiles/xrdp.service.in ${D}${systemd_unitdir}/system/xrdp.service
- install -m 0644 ${S}/instfiles/xrdp-sesman.service.in ${D}${systemd_unitdir}/system/xrdp-sesman.service
- sed -i -e 's,@localstatedir@,${localstatedir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
- sed -i -e 's,@sysconfdir@,${sysconfdir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
- sed -i -e 's,@sbindir@,${sbindir},g' ${D}${systemd_unitdir}/system/xrdp.service ${D}${systemd_unitdir}/system/xrdp-sesman.service
-
- install -m 0644 ${S}/instfiles/*.ini ${D}${sysconfdir}/xrdp/
- install -m 0644 ${S}/sesman/sesman.ini ${D}${sysconfdir}/xrdp/
- install -m 0644 ${S}/sesman/startwm.sh ${D}${sysconfdir}/xrdp/
- install -m 0644 ${S}/xrdp/xrdp.ini ${D}${sysconfdir}/xrdp/
- install -m 0644 ${S}/xrdp/xrdp_keyboard.ini ${D}${sysconfdir}/xrdp/
- install -m 0644 ${S}/instfiles/xrdp.sh ${D}${sysconfdir}/xrdp/
- install -m 0644 ${S}/keygen/openssl.conf ${D}${sysconfdir}/xrdp/
- install -m 0644 ${WORKDIR}/xrdp.sysconfig ${D}${sysconfdir}/sysconfig/xrdp/
- chown xrdp:xrdp ${D}${sysconfdir}/xrdp
-}
-
-SYSTEMD_SERVICE_${PN} = "xrdp.service xrdp-sesman.service"
-
-pkg_postinst_${PN}() {
- if test -z "$D"
- then
- if test -x ${bindir}/xrdp-keygen
- then
- ${bindir}/xrdp-keygen xrdp ${sysconfdir}/xrdp/rsakeys.ini >/dev/null
- fi
- if test ! -s ${sysconfdir}/xrdp/cert.pem
- then
- openssl req -x509 -newkey rsa:2048 -sha256 -nodes -days 3652 \
- -keyout ${sysconfdir}/xrdp/key.pem \
- -out ${sysconfdir}/xrdp/cert.pem \
- -config ${sysconfdir}/xrdp/openssl.conf >/dev/null 2>&1
- chmod 400 ${sysconfdir}/xrdp/key.pem
- fi
- fi
-}
diff --git a/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.10.bb b/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.10.bb
new file mode 100644
index 0000000000..76aea6f41a
--- /dev/null
+++ b/meta-oe/recipes-support/xserver-xorg-cvt/xserver-xorg-cvt-native_1.20.10.bb
@@ -0,0 +1,41 @@
+SUMMARY = "X.Org X cvt"
+HOMEPAGE = "https://linux.die.net/man/1/cvt"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
+
+DEPENDS += "pixman-native xorgproto-native libxrandr-native"
+
+XORG_PN = "xorg-server"
+
+SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2"
+SRC_URI[md5sum] = "8cf8bd1f33e3736bc8dd279b20a32399"
+SRC_URI[sha256sum] = "977420c082450dc808de301ef56af4856d653eea71519a973c3490a780cb7c99"
+
+S = "${WORKDIR}/${XORG_PN}-${PV}"
+B = "${WORKDIR}/build"
+
+inherit pkgconfig native
+
+do_configure[noexec] = "1"
+
+do_compile() {
+ cd ${S}
+ for header in `find -name '*.h'`; do
+ path=`dirname $header`
+ if ! echo "$incpaths" | grep -q "$path" ; then
+ incpaths="$incpaths -I$path"
+ fi
+ done
+ CFLAGS="${CFLAGS} -DXORG_VERSION_CURRENT=1 $incpaths `pkg-config --cflags pixman-1`"
+ LDFLAGS="${LDFLAGS} -lm `pkg-config --libs pixman-1`"
+ ${CC} $CFLAGS -o ${B}/cvt \
+ ${S}/hw/xfree86/utils/cvt/cvt.c \
+ ${S}/hw/xfree86/modes/xf86cvt.c \
+ ${S}/os/xprintf.c \
+ $LDFLAGS
+}
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 755 ${B}/cvt ${D}${bindir}
+}
diff --git a/meta-oe/recipes-support/yaml-cpp/yaml-cpp/0001-Fix-CMake-export-files-1077.patch b/meta-oe/recipes-support/yaml-cpp/yaml-cpp/0001-Fix-CMake-export-files-1077.patch
new file mode 100644
index 0000000000..b6c4a3b883
--- /dev/null
+++ b/meta-oe/recipes-support/yaml-cpp/yaml-cpp/0001-Fix-CMake-export-files-1077.patch
@@ -0,0 +1,117 @@
+From 3d436f6cfc2dfe52fc1533c01f57c25ae7ffac9c Mon Sep 17 00:00:00 2001
+From: Felix Schwitzer <flx107809@gmail.com>
+Date: Fri, 1 Apr 2022 05:26:47 +0200
+Subject: [PATCH] Fix CMake export files (#1077)
+
+After configuring the file `yaml-cpp-config.cmake.in`, the result ends up with
+empty variables. (see also the discussion in #774).
+
+Rework this file and the call to `configure_package_config_file` according the
+cmake documentation
+(https://cmake.org/cmake/help/v3.22/module/CMakePackageConfigHelpers.html?highlight=configure_package_config#command:configure_package_config_file)
+to overcome this issue and allow a simple `find_package` after install.
+
+As there was some discussion about the place where to install the
+`yaml-cpp-config.cmake` file, e.g. #1055, factor out the install location into
+an extra variable to make it easier changing this location in the future.
+
+Also untabify CMakeLists.txt in some places to align with the other code parts in this file.
+
+Upstream-Status: Accepted [https://github.com/jbeder/yaml-cpp/pull/1077]
+
+Signed-off-by: Jasper Orschulko <jasper@fancydomain.eu>
+---
+ CMakeLists.txt | 29 ++++++++++++++++++-----------
+ yaml-cpp-config.cmake.in | 10 ++++++----
+ 2 files changed, 24 insertions(+), 15 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index b230b9e..983d1a4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -127,10 +127,16 @@ set_target_properties(yaml-cpp PROPERTIES
+ PROJECT_LABEL "yaml-cpp ${yaml-cpp-label-postfix}"
+ DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
+
++# FIXME(felix2012): A more common place for the cmake export would be
++# `CMAKE_INSTALL_LIBDIR`, as e.g. done in ubuntu or in this project for GTest
++set(CONFIG_EXPORT_DIR "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
++set(EXPORT_TARGETS yaml-cpp)
+ configure_package_config_file(
+ "${PROJECT_SOURCE_DIR}/yaml-cpp-config.cmake.in"
+ "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake"
+- INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
++ INSTALL_DESTINATION "${CONFIG_EXPORT_DIR}"
++ PATH_VARS CMAKE_INSTALL_INCLUDEDIR CONFIG_EXPORT_DIR)
++unset(EXPORT_TARGETS)
+
+ write_basic_package_version_file(
+ "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
+@@ -139,30 +145,31 @@ write_basic_package_version_file(
+ configure_file(yaml-cpp.pc.in yaml-cpp.pc @ONLY)
+
+ if (YAML_CPP_INSTALL)
+- install(TARGETS yaml-cpp
++ install(TARGETS yaml-cpp
+ EXPORT yaml-cpp-targets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
+- install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
++ install(DIRECTORY ${PROJECT_SOURCE_DIR}/include/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
+- FILES_MATCHING PATTERN "*.h")
++ FILES_MATCHING PATTERN "*.h")
+ install(EXPORT yaml-cpp-targets
+- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
+- install(FILES
+- "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake"
+- "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
+- DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/yaml-cpp")
++ DESTINATION "${CONFIG_EXPORT_DIR}")
++ install(FILES
++ "${PROJECT_BINARY_DIR}/yaml-cpp-config.cmake"
++ "${PROJECT_BINARY_DIR}/yaml-cpp-config-version.cmake"
++ DESTINATION "${CONFIG_EXPORT_DIR}")
+ install(FILES "${PROJECT_BINARY_DIR}/yaml-cpp.pc"
+ DESTINATION ${CMAKE_INSTALL_DATADIR}/pkgconfig)
+ endif()
++unset(CONFIG_EXPORT_DIR)
+
+ if(YAML_CPP_BUILD_TESTS)
+- add_subdirectory(test)
++ add_subdirectory(test)
+ endif()
+
+ if(YAML_CPP_BUILD_TOOLS)
+- add_subdirectory(util)
++ add_subdirectory(util)
+ endif()
+
+ if (YAML_CPP_CLANG_FORMAT_EXE)
+diff --git a/yaml-cpp-config.cmake.in b/yaml-cpp-config.cmake.in
+index 7b41e3f..a7ace3d 100644
+--- a/yaml-cpp-config.cmake.in
++++ b/yaml-cpp-config.cmake.in
+@@ -3,12 +3,14 @@
+ # YAML_CPP_INCLUDE_DIR - include directory
+ # YAML_CPP_LIBRARIES - libraries to link against
+
+-# Compute paths
+-get_filename_component(YAML_CPP_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+-set(YAML_CPP_INCLUDE_DIR "@CONFIG_INCLUDE_DIRS@")
++@PACKAGE_INIT@
++
++set_and_check(YAML_CPP_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@")
+
+ # Our library dependencies (contains definitions for IMPORTED targets)
+-include("${YAML_CPP_CMAKE_DIR}/yaml-cpp-targets.cmake")
++include(@PACKAGE_CONFIG_EXPORT_DIR@/yaml-cpp-targets.cmake)
+
+ # These are IMPORTED targets created by yaml-cpp-targets.cmake
+ set(YAML_CPP_LIBRARIES "@EXPORT_TARGETS@")
++
++check_required_components(@EXPORT_TARGETS@)
+--
+2.39.2
+
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
new file mode 100644
index 0000000000..e04d4705a4
--- /dev/null
+++ b/meta-oe/recipes-support/yaml-cpp/yaml-cpp_0.7.0.bb
@@ -0,0 +1,18 @@
+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"
+SRC_URI += "file://0001-Fix-CMake-export-files-1077.patch"
+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/zbar/zbar/0001-make-relies-GNU-extentions.patch b/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch
deleted file mode 100644
index 04239bacdb..0000000000
--- a/meta-oe/recipes-support/zbar/zbar/0001-make-relies-GNU-extentions.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 224507bc4b6e58f7a6e445bfebfb59d6b8d78bd6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Dec 2016 17:38:51 -0800
-Subject: [PATCH] make relies GNU extentions
-
-We get errors like
-`%'-style pattern rules are a GNU make extension
-
-Disable this warning, since we use gmake with OE
-anyway
-
-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 56d3dd0..9f85fd7 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -3,7 +3,7 @@ AC_PREREQ([2.61])
- AC_INIT([zbar], [0.10], [spadix@users.sourceforge.net])
- AC_CONFIG_AUX_DIR(config)
- AC_CONFIG_MACRO_DIR(config)
--AM_INIT_AUTOMAKE([1.10 -Wall -Werror foreign subdir-objects std-options dist-bzip2])
-+AM_INIT_AUTOMAKE([1.10 -Wall -Werror -Wno-portability foreign subdir-objects std-options dist-bzip2])
- AC_CONFIG_HEADERS([include/config.h])
- AC_CONFIG_SRCDIR(zbar/scanner.c)
- LT_PREREQ([2.2])
---
-2.10.2
-
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
new file mode 100644
index 0000000000..3d8c07f02b
--- /dev/null
+++ b/meta-oe/recipes-support/zbar/zbar/0001-qt-Create-subdir-in-Makefile.patch
@@ -0,0 +1,37 @@
+From 9c67f377477a07495a712f478eabfa8d33164c45 Mon Sep 17 00:00:00 2001
+From: Daniel Gomez <dagmcr@gmail.com>
+Date: Sun, 17 Jan 2021 23:32:51 +0100
+Subject: [PATCH 1/2] qt: Create subdir in Makefile
+
+Create builddir/qt subdir when --with-qt5 is enabled.
+
+Fixes the following error:
+
+moc -Iqt -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
+-I/var/lib/yocto/gallium/tmp_20210113/work/znver1-poky-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot/usr/include/QtWidgets
+-I/var/lib/yocto/gallium/tmp_20210113/work/znver1-poky-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot/usr/include/QtGui
+-I/var/lib/yocto/gallium/tmp_20210113/work/znver1-poky-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot/usr/include/QtCore
+-I../git/include ../git/include/zbar/QZBar.h -o qt/moc_QZBar.cpp
+moc: Cannot create qt/moc_QZBar.cpp
+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/qt/Makefile.am.inc b/qt/Makefile.am.inc
+index b099c2b..c98fbeb 100644
+--- a/qt/Makefile.am.inc
++++ b/qt/Makefile.am.inc
+@@ -15,4 +15,5 @@ qt/moc_%.cpp: qt/%.h
+ $(MOC) $(qt_libzbarqt_la_CPPFLAGS) $< -o $@
+
+ qt/moc_%.cpp: include/zbar/%.h
++ @$(mkdir_p) qt 2>/dev/null
+ $(MOC) $(qt_libzbarqt_la_CPPFLAGS) $< -o $@
+--
+2.29.2
+
diff --git a/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch b/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch
deleted file mode 100644
index f7d8ba1e96..0000000000
--- a/meta-oe/recipes-support/zbar/zbar/0001-undefine-__va_arg_pack.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From f842872244219d9881fbec77054702412b1e16f8 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 2 Dec 2016 16:41:27 -0800
-Subject: [PATCH] undefine __va_arg_pack
-
-dprintf() is also a libc function. This fixes
-the compile errors
-
-/usr/include/bits/stdio2.h:140:1: error: expected identifier or '(' before '{' token
-| {
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- zbar/debug.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/zbar/debug.h b/zbar/debug.h
-index 482ca8d..68948f6 100644
---- a/zbar/debug.h
-+++ b/zbar/debug.h
-@@ -23,6 +23,7 @@
-
- /* varargs variations on compile time debug spew */
-
-+#undef __va_arg_pack
- #ifndef DEBUG_LEVEL
-
- # ifdef __GNUC__
-@@ -36,15 +37,14 @@
- #else
-
- # include <stdio.h>
--
- # ifdef __GNUC__
--# define dprintf(level, args...) \
-+# define dprintf(level, format, args...) \
- if((level) <= DEBUG_LEVEL) \
-- fprintf(stderr, args)
-+ fprintf(stderr, format, args)
- # else
--# define dprintf(level, ...) \
-+# define dprintf(level, format, ...) \
- if((level) <= DEBUG_LEVEL) \
-- fprintf(stderr, __VA_ARGS__)
-+ fprintf(stderr, format, __VA_ARGS__)
- # endif
-
- #endif /* DEBUG_LEVEL */
---
-2.10.2
-
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
new file mode 100644
index 0000000000..9030ed88f2
--- /dev/null
+++ b/meta-oe/recipes-support/zbar/zbar/0002-zbarcam-Create-subdir-in-Makefile.patch
@@ -0,0 +1,42 @@
+From fe751929ccc8fd75e350ed6db9d28d04bd31fc79 Mon Sep 17 00:00:00 2001
+From: Daniel Gomez <dagmcr@gmail.com>
+Date: Sun, 17 Jan 2021 23:33:19 +0100
+Subject: [PATCH 2/2] zbarcam: Create subdir in Makefile
+
+Create builddir/zbarcam when --with-qt5 is enabled.
+
+Fixes the following error:
+
+moc -i -Izbarcam -DQT_WIDGETS_LIB -DQT_X11EXTRAS_LIB -DQT_GUI_LIB
+-DQT_CORE_LIB
+-I/var/lib/yocto/gallium/tmp_20210113/work/znver1-poky-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot/usr/include/QtWidgets
+-I/var/lib/yocto/gallium/tmp_20210113/work/znver1-poky-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot/usr/include/QtX11Extras
+-I/var/lib/yocto/gallium/tmp_20210113/work/znver1-poky-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot/usr/include/QtGui
+-I/var/lib/yocto/gallium/tmp_20210113/work/znver1-poky-linux/zbar/0.23.1+gitAUTOINC+89e7900d85-r0/recipe-sysroot/usr/include/QtCore
+-I../git/include ../git/zbarcam/zbarcam-qt.cpp -o
+zbarcam/moc_zbarcam_qt.h
+moc: Cannot create zbarcam/moc_zbarcam_qt.h
+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/zbarcam/Makefile.am.inc b/zbarcam/Makefile.am.inc
+index b6de82c..e90c50c 100644
+--- a/zbarcam/Makefile.am.inc
++++ b/zbarcam/Makefile.am.inc
+@@ -28,6 +28,7 @@ DISTCLEANFILES += $(nodist_zbarcam_zbarcam_qt_SOURCES) zbarcam/moc_zbarcam_qt.h
+
+
+ zbarcam/moc_zbarcam_qt.h: zbarcam/zbarcam-qt.cpp
++ @$(mkdir_p) zbarcam 2>/dev/null
+ $(MOC) -i $(zbarcam_zbarcam_qt_CPPFLAGS) $< -o $@
+ endif
+
+--
+2.29.2
+
diff --git a/meta-oe/recipes-support/zbar/zbar_0.10.bb b/meta-oe/recipes-support/zbar/zbar_0.10.bb
deleted file mode 100644
index 6b6e501114..0000000000
--- a/meta-oe/recipes-support/zbar/zbar_0.10.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESRIPTION = "2D barcode scanner toolkit."
-SECTION = "graphics"
-LICENSE = "LGPL-2.1"
-
-DEPENDS = "pkgconfig intltool-native libpng jpeg"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=42bafded1b380c6fefbeb6c5cd5448d9"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/${PN}/${P}.tar.bz2 \
- file://0001-undefine-__va_arg_pack.patch \
- file://0001-make-relies-GNU-extentions.patch \
-"
-
-SRC_URI[md5sum] = "0fd61eb590ac1bab62a77913c8b086a5"
-SRC_URI[sha256sum] = "234efb39dbbe5cef4189cc76f37afbe3cfcfb45ae52493bfe8e191318bdbadc6"
-
-inherit autotools pkgconfig
-
-PACKAGECONFIG = "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
-
-PACKAGECONFIG[x11] = "--with-x,-without-x,libxcb libx11 libsm libxau libxext libxv libice libxdmcp"
-
-EXTRA_OECONF = " --without-imagemagick --without-qt --without-python --disable-video --without-gtk"
-
-do_install_append() {
- #remove usr/bin if empty
- rmdir ${D}${bindir}
-}
diff --git a/meta-oe/recipes-support/zbar/zbar_git.bb b/meta-oe/recipes-support/zbar/zbar_git.bb
new file mode 100644
index 0000000000..3be1f27a6f
--- /dev/null
+++ b/meta-oe/recipes-support/zbar/zbar_git.bb
@@ -0,0 +1,58 @@
+HOMEPAGE = "https://github.com/mchehab/zbar"
+SUMMARY = "A bar code library"
+DESRIPTION = "ZBar is an open source software suite for reading bar codes \
+from various sources, such as video streams, image files and raw \
+intensity sensors. It supports EAN-13/UPC-A, UPC-E, EAN-8, Code 128, \
+Code 93, Code 39, Codabar, Interleaved 2 of 5, QR Code and SQ Code"
+SECTION = "graphics"
+
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5e9ee833a2118adc7d8b5ea38e5b1cef"
+
+SRC_URI = "git://github.com/mchehab/zbar.git;branch=master;protocol=https \
+ file://0001-qt-Create-subdir-in-Makefile.patch \
+ file://0002-zbarcam-Create-subdir-in-Makefile.patch \
+"
+SRCREV = "89e7900d85dd54ef351a7ed582aec6a5a5d7fa37"
+
+S = "${WORKDIR}/git"
+PV = "0.23.1+git${SRCPV}"
+
+DEPENDS += "xmlto-native"
+
+PACKAGECONFIG ??= "\
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \
+"
+
+PACKAGECONFIG ??= "video"
+
+inherit autotools pkgconfig gettext \
+ ${@bb.utils.contains('PACKAGECONFIG', 'python3', 'python3native', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'gtk3', 'gobject-introspection', '', d)} \
+ ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'qmake5_paths', '', d)}
+
+PACKAGECONFIG[x11] = "--with-x, --without-x, libxv"
+PACKAGECONFIG[video] = "--enable-video, --disable-video, v4l-utils libv4l"
+PACKAGECONFIG[jpeg] = "--with-jpeg, --without-jpeg, jpeg"
+PACKAGECONFIG[python3] = "--with-python=auto, --without-python, python3"
+PACKAGECONFIG[gtk3] = "--with-gtk=gtk3, --without-gtk, gtk+3"
+PACKAGECONFIG[qt5] = "--with-qt5, --without-qt5, qtbase qtbase-native qtx11extras qtsvg, qtbase"
+PACKAGECONFIG[imagemagick] = "--with-imagemagick, --without-imagemagick, imagemagick"
+
+FILES:${PN} += "${bindir} \
+ ${@bb.utils.contains('DEPENDS', 'python3-native', '${libdir}', '', d)} \
+"
+
+CPPFLAGS:append = "\
+ ${@bb.utils.contains('PACKAGECONFIG', 'qt5', '\
+ -I${STAGING_INCDIR}/QtX11Extras \
+ -I${STAGING_INCDIR}/dbus-1.0 \
+ -I${STAGING_LIBDIR}/dbus-1.0/include \
+ ', '', d)} \
+"
+
+TARGET_CXXFLAGS:append = " -fPIC"
+
+do_configure:prepend() {
+ install -m 755 ${STAGING_DATADIR_NATIVE}/gettext/ABOUT-NLS ${S}/
+}
diff --git a/meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb b/meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb
new file mode 100644
index 0000000000..9bf3809244
--- /dev/null
+++ b/meta-oe/recipes-support/zchunk/zchunk_1.3.1.bb
@@ -0,0 +1,24 @@
+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 = "b462b1587f7d3aa782689430e83e96c737748f33"
+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-support/zile/zile_2.4.14.bb b/meta-oe/recipes-support/zile/zile_2.4.14.bb
deleted file mode 100644
index 515cf41365..0000000000
--- a/meta-oe/recipes-support/zile/zile_2.4.14.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Zile is lossy Emacs"
-HOMEPAGE = "http://zile.sourceforge.net/"
-DEPENDS = "ncurses bdwgc"
-
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-SRC_URI = "http://ftp.gnu.org/gnu/zile/${BP}.tar.gz \
- file://remove-help2man.patch \
-"
-
-SRC_URI[md5sum] = "c7d7eec93231c6878f255978d9747a73"
-SRC_URI[sha256sum] = "7a78742795ca32480f2bab697fd5e328618d9997d6f417cf1b14e9da9af26b74"
-
-inherit autotools pkgconfig
-
-do_install_append() {
- rm -rf ${D}${libdir}/charset.alias
- rmdir --ignore-fail-on-non-empty ${D}${libdir} || true
-}
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG += "${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)}"
-
-PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
diff --git a/meta-oe/recipes-support/zile/zile_2.4.15.bb b/meta-oe/recipes-support/zile/zile_2.4.15.bb
new file mode 100644
index 0000000000..e86b3f82d2
--- /dev/null
+++ b/meta-oe/recipes-support/zile/zile_2.4.15.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Zile is lossy Emacs"
+HOMEPAGE = "http://zile.sourceforge.net/"
+DEPENDS = "ncurses bdwgc"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = "${GNU_MIRROR}/zile/${BP}.tar.gz \
+ file://remove-help2man.patch \
+"
+
+SRC_URI[md5sum] = "05efa90dfee1821ca018b0b2ef8f50a8"
+SRC_URI[sha256sum] = "39c300a34f78c37ba67793cf74685935a15568e14237a3a66fda8fcf40e3035e"
+
+inherit autotools pkgconfig
+
+do_install:append() {
+ rm -rf ${D}${libdir}/charset.alias
+ rmdir --ignore-fail-on-non-empty ${D}${libdir} || true
+}
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG:append = " ${@bb.utils.filter('DISTRO_FEATURES', 'acl', d)}"
+
+PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
diff --git a/meta-oe/recipes-test/bats/bats_1.10.0.bb b/meta-oe/recipes-test/bats/bats_1.10.0.bb
new file mode 100644
index 0000000000..0fb624e0da
--- /dev/null
+++ b/meta-oe/recipes-test/bats/bats_1.10.0.bb
@@ -0,0 +1,35 @@
+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.10.0
+SRCREV = "f7defb94362f2053a3e73d13086a167448ea9133"
+
+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/catch2/catch2_2.13.7.bb b/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
new file mode 100644
index 0000000000..ed50f659d3
--- /dev/null
+++ b/meta-oe/recipes-test/catch2/catch2_2.13.7.bb
@@ -0,0 +1,22 @@
+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.7.bb b/meta-oe/recipes-test/cmocka/cmocka_1.1.7.bb
new file mode 100644
index 0000000000..44077a0d35
--- /dev/null
+++ b/meta-oe/recipes-test/cmocka/cmocka_1.1.7.bb
@@ -0,0 +1,44 @@
+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${SRCPV}"
+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}${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/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/cmocka/files/run-ptest b/meta-oe/recipes-test/cmocka/files/run-ptest
new file mode 100644
index 0000000000..48b9cd9fc5
--- /dev/null
+++ b/meta-oe/recipes-test/cmocka/files/run-ptest
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cd tests
+for i in `ls *`; do
+ if [ ./$i ] ; then
+ echo "PASS: $i"
+ else
+ echo "FAIL: $i"
+ fi
+done
diff --git a/meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb b/meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb
deleted file mode 100644
index 65b08b068d..0000000000
--- a/meta-oe/recipes-test/cppunit/cppunit_1.13.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. "
-HOMEPAGE = "http://www.freedesktop.org/wiki/Software/cppunit"
-LICENSE = "LGPL-2.1"
-SECTION = "libs"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
-SRC_URI = " \
- http://dev-www.libreoffice.org/src/cppunit-${PV}.tar.gz \
- file://0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch \
-"
-SRC_URI[md5sum] = "d1c6bdd5a76c66d2c38331e2d287bc01"
-SRC_URI[sha256sum] = "3f47d246e3346f2ba4d7c9e882db3ad9ebd3fcbd2e8b732f946e0e3eeb9f429f"
-
-inherit autotools
diff --git a/meta-oe/recipes-test/cppunit/cppunit_1.15.1.bb b/meta-oe/recipes-test/cppunit/cppunit_1.15.1.bb
new file mode 100644
index 0000000000..be81125652
--- /dev/null
+++ b/meta-oe/recipes-test/cppunit/cppunit_1.15.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "CppUnit is the C++ port of the famous JUnit framework for unit testing. Test output is in XML for automatic testing and GUI based for supervised tests. "
+HOMEPAGE = "http://www.freedesktop.org/wiki/Software/cppunit"
+LICENSE = "LGPL-2.1-only"
+SECTION = "libs"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b0e9ef921ff780eb328bdcaeebec3269"
+
+SRC_URI = " \
+ http://dev-www.libreoffice.org/src/cppunit-${PV}.tar.gz \
+ file://0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch \
+"
+SRC_URI[md5sum] = "9dc669e6145cadd9674873e24943e6dd"
+SRC_URI[sha256sum] = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7"
+
+inherit autotools
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch b/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
index 6a20c1283a..441876e404 100644
--- a/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
+++ b/meta-oe/recipes-test/cppunit/files/0001-doc-Makefile.am-do-not-preserve-file-flags-when-copy.patch
@@ -17,15 +17,12 @@ diff --git a/doc/Makefile.am b/doc/Makefile.am
index 8815476..3237499 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
-@@ -22,7 +22,7 @@ htmldir += $(pkgdatadir)/html
+@@ -8,7 +8,7 @@ htmldir += $(pkgdatadir)/html
html_DATA += $(static_pages) html/index.html
install-data-hook:
- cp -pR html/* $(DESTDIR)$(htmldir)
+ cp -R html/* $(DESTDIR)$(htmldir)
- # Automake's "distcheck" is sensitive to having files left over
- # after "make uninstall", so we have to clean up the install hook.
---
-2.5.0
-
+ uninstall-local:
+ rm -rf $(DESTDIR)$(htmldir)
diff --git a/meta-oe/recipes-test/cpputest/cpputest_4.0.bb b/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
new file mode 100644
index 0000000000..5536cf07b6
--- /dev/null
+++ b/meta-oe/recipes-test/cpputest/cpputest_4.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "CppUTest unit testing and mocking framework for C/C++"
+HOMEPAGE = "http://cpputest.github.io/"
+SECTION = "devel"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ce5d5f1fe02bcd1343ced64a06fd4177"
+
+SRC_URI = "git://github.com/cpputest/cpputest.git;protocol=https;branch=master"
+SRCREV = "67d2dfd41e13f09ff218aa08e2d35f1c32f032a1"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+EXTRA_OECMAKE = "-DLONGLONG=ON \
+ -DC++11=ON \
+ -DTESTS=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.2.bb b/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb
new file mode 100644
index 0000000000..470d26ef69
--- /dev/null
+++ b/meta-oe/recipes-test/cukinia/cukinia_0.6.2.bb
@@ -0,0 +1,23 @@
+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"
+
+inherit allarch
+
+RRECOMMENDS:${PN} = "libgpiod-tools"
+
+do_install () {
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/cukinia ${D}${sbindir}
+}
diff --git a/meta-oe/recipes-test/cunit/cunit_2.1-3.bb b/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
index c9d87e36d0..252ef60def 100644
--- a/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
+++ b/meta-oe/recipes-test/cunit/cunit_2.1-3.bb
@@ -1,19 +1,37 @@
DESCRIPTION = "CUnit is a C framework for unit testing. Test output supports comandline and GUI results reporting"
HOMEPAGE = "http://cunit.sourceforge.net"
-LICENSE = "LGPL-2.0"
+LICENSE = "LGPL-2.0-only"
SECTION = "libs"
LIC_FILES_CHKSUM = "file://COPYING;md5=7734aa853b85d6f935466f081490ddbb"
S = "${WORKDIR}/CUnit-${PV}"
SRC_URI = "${SOURCEFORGE_MIRROR}/project/cunit/CUnit/${PV}/CUnit-${PV}.tar.bz2 \
- file://fixup-install-docdir.patch"
+ file://fixup-install-docdir.patch \
+ file://run-ptest \
+ "
SRC_URI[md5sum] = "b5f1a9f6093869c070c6e4a9450cc10c"
SRC_URI[sha256sum] = "f5b29137f845bb08b77ec60584fdb728b4e58f1023e6f249a464efa49a40f214"
-inherit autotools-brokensep remove-libtool
+UPSTREAM_CHECK_URI = "http://sourceforge.net/projects/cunit/files/releases"
+
+inherit autotools-brokensep ptest
EXTRA_OECONF = "--enable-memtrace --enable-automated --enable-basic --enable-console"
-FILES_${PN}-dev += "${datadir}/CUnit"
-FILES_${PN}-doc += "${docdir}"
+TESTBIN = "/CUnit/Sources/Test/test_cunit"
+
+PACKAGECONFIG ?= "${@bb.utils.contains('PTEST_ENABLED', '1', 'test','', d)} \
+ "
+
+PACKAGECONFIG[test] = "--enable-test,,,"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ install -m 0755 ${S}${TESTBIN} ${D}${PTEST_PATH}/tests/
+}
+
+FILES:${PN}-dev += "${datadir}/CUnit"
+FILES:${PN}-doc += "${docdir}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-oe/recipes-test/cunit/files/run-ptest b/meta-oe/recipes-test/cunit/files/run-ptest
new file mode 100644
index 0000000000..903c8c8d95
--- /dev/null
+++ b/meta-oe/recipes-test/cunit/files/run-ptest
@@ -0,0 +1,19 @@
+#!/bin/sh
+
+ptestdir=$(dirname "$(readlink -f "$0")")
+cd $ptestdir/tests
+./test_cunit > cunit_test_out.tmp
+
+echo "--- Test output ---"
+cat cunit_test_out.tmp
+echo ""
+echo "--- ptest result ---"
+
+grep "Failures: 0" cunit_test_out.tmp > /dev/null
+if [ $? -eq 0 ]; then
+ echo "PASS: cunit"
+else
+ echo "FAIL: cunit"
+fi
+
+rm -f cunit_test_out.tmp
diff --git a/meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb b/meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb
deleted file mode 100644
index 2915011731..0000000000
--- a/meta-oe/recipes-test/cxxtest/cxxtest_4.3.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "CxxTest is a unit testing framework for C++ that is similar in spirit to JUnit, CppUnit, and xUnit."
-HOMEPAGE = "http://cxxtest.com/"
-LICENSE = "LGPL-2.0"
-SECTION = "devel"
-
-SRC_URI = "http://downloads.sourceforge.net/project/cxxtest/cxxtest/${PV}/cxxtest-${PV}.tar.gz"
-SRC_URI[md5sum] = "b3a24b3e1aad9acf6adac37f4c3f83ec"
-SRC_URI[sha256sum] = "356d0f4810e8eb5c344147a0cca50fc0d84122c286e7644b61cb365c2ee22083"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/cxxtest-${PV}/COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
-S = "${WORKDIR}/cxxtest-${PV}/python"
-
-inherit distutils
-
-do_install_append() {
- install -d ${D}${includedir}
- cp -a ../cxxtest ${D}${includedir}
- sed '1c\
-#!/usr/bin/env python' -i ${D}${bindir}/cxxtestgen
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb b/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
new file mode 100644
index 0000000000..ef1b6e537b
--- /dev/null
+++ b/meta-oe/recipes-test/cxxtest/cxxtest_4.4.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "CxxTest is a unit testing framework for C++ that is similar in spirit to JUnit, CppUnit, and xUnit."
+HOMEPAGE = "http://cxxtest.com/"
+SECTION = "devel"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
+
+SRC_URI = "http://downloads.sourceforge.net/project/cxxtest/cxxtest/${PV}/${BP}.tar.gz"
+SRC_URI[md5sum] = "c3cc3355e2ac64e34c215f28e44cfcec"
+SRC_URI[sha256sum] = "1c154fef91c65dbf1cd4519af7ade70a61d85a923b6e0c0b007dc7f4895cf7d8"
+
+inherit setuptools3
+
+PIP_INSTALL_DIST_PATH = "${B}/python/python3/dist"
+
+SETUPTOOLS_SETUP_PATH = "${S}/python"
+
+do_install:append() {
+ install -d ${D}${includedir}
+ cp -a ${S}/cxxtest/ ${D}${includedir}
+ # Fix the interpretter as otherwise this points to the build host python
+ sed '1c\
+#!/usr/bin/env python3' -i ${D}${bindir}/cxxtestgen
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-oe/recipes-test/evtest/evtest/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch b/meta-oe/recipes-test/evtest/evtest/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
new file mode 100644
index 0000000000..595b0296ea
--- /dev/null
+++ b/meta-oe/recipes-test/evtest/evtest/0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch
@@ -0,0 +1,33 @@
+From 490f5b6cd788692d989f07180a5714c76872911e Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 30 Nov 2019 11:58:58 -0800
+Subject: [PATCH] Fix build on 32bit arches with 64bit time_t
+
+time element is deprecated on new input_event structure in kernel's
+input.h [1]
+
+[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=152194fe9c3f
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/libevdev/evtest/merge_requests/6]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+---
+ evtest.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/evtest.c b/evtest.c
+index ba7a161..8fc2e5a 100644
+--- a/evtest.c
++++ b/evtest.c
+@@ -63,6 +63,11 @@
+ #define input_event_usec time.tv_usec
+ #endif
+
++#ifndef input_event_sec
++#define input_event_sec time.tv_sec
++#define input_event_usec time.tv_usec
++#endif
++
+ #define BITS_PER_LONG (sizeof(long) * 8)
+ #define NBITS(x) ((((x)-1)/BITS_PER_LONG)+1)
+ #define OFF(x) ((x)%BITS_PER_LONG)
diff --git a/meta-oe/recipes-test/evtest/evtest_1.35.bb b/meta-oe/recipes-test/evtest/evtest_1.35.bb
new file mode 100644
index 0000000000..51af9997f9
--- /dev/null
+++ b/meta-oe/recipes-test/evtest/evtest_1.35.bb
@@ -0,0 +1,17 @@
+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"
+
+DEPENDS = "libxml2"
+
+SRCREV = "da347a8f88d2e5729dd12d61ee9743f902065b55"
+SRC_URI = "git://gitlab.freedesktop.org/libevdev/evtest.git;protocol=https;branch=master \
+ file://0001-Fix-build-on-32bit-arches-with-64bit-time_t.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit autotools pkgconfig
diff --git a/meta-oe/recipes-test/evtest/evtest_git.bb b/meta-oe/recipes-test/evtest/evtest_git.bb
deleted file mode 100644
index fa0d6e2fe5..0000000000
--- a/meta-oe/recipes-test/evtest/evtest_git.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Simple tool for input event debugging"
-HOMEPAGE = "http://people.freedesktop.org/~whot/evtest/"
-AUTHOR = "Vojtech Pavlik <vojtech@suse.cz>"
-SECTION = "console/utils"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "libxml2"
-
-SRCREV = "ab140a2dab1547f7deb5233be6d94a388cf08b26"
-SRC_URI = "git://anongit.freedesktop.org/evtest;protocol=git"
-
-PV = "1.33+${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit autotools pkgconfig
diff --git a/meta-oe/recipes-test/fbtest/fb-test_1.1.0.bb b/meta-oe/recipes-test/fbtest/fb-test_1.1.0.bb
new file mode 100644
index 0000000000..6082ea2574
--- /dev/null
+++ b/meta-oe/recipes-test/fbtest/fb-test_1.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Test suite for Linux framebuffer"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
+
+SRCREV = "063ec650960c2d79ac51f5c5f026cb05343a33e2"
+SRC_URI = "git://github.com//ponty/fb-test-app.git;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 fb-test ${D}${bindir}
+ # avoid collisions with perf (perf) and mesa-demos (offset)
+ for prog in perf rect offset ; do
+ install -m 0755 $prog ${D}${bindir}/fb-$prog
+ done
+}
diff --git a/meta-oe/recipes-test/fbtest/fb-test_git.bb b/meta-oe/recipes-test/fbtest/fb-test_git.bb
deleted file mode 100644
index 6a9d4b2787..0000000000
--- a/meta-oe/recipes-test/fbtest/fb-test_git.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Test suite for Linux framebuffer"
-
-PV = "1.1.0"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=eb723b61539feef013de476e68b5c50a"
-
-SRCREV = "063ec650960c2d79ac51f5c5f026cb05343a33e2"
-SRC_URI = "git://github.com/prpplague/fb-test-app.git"
-
-S = "${WORKDIR}/git"
-
-do_install() {
- install -d ${D}${bindir}
- install -m 0755 fb-test ${D}${bindir}
- # avoid collisions with perf (perf) and mesa-demos (offset)
- for prog in perf rect offset ; do
- install -m 0755 $prog ${D}${bindir}/fb-$prog
- done
-}
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 c2d679aabc..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
@@ -1,16 +1,17 @@
-From 613e5cfe7751068062cc92f83870e436669fc0a8 Mon Sep 17 00:00:00 2001
+From ee787b53d734cd952c170c9303d213d3dd18a86f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 8 Jun 2017 16:49:50 -0700
-Subject: [PATCH] Add correct printf qualifier for off_t
+Subject: [PATCH 1/6] Add correct printf qualifier for off_t
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---
- src/bios/ebda_region/ebda_region.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
+Upstream-Status: Pending
+
+ src/bios/ebda_region/ebda_region.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/bios/ebda_region/ebda_region.c b/src/bios/ebda_region/ebda_region.c
-index 16c39357..ad6d635c 100644
+index b70ced10..947a24bd 100644
--- a/src/bios/ebda_region/ebda_region.c
+++ b/src/bios/ebda_region/ebda_region.c
@@ -83,9 +83,9 @@ static int ebda_test1(fwts_framework *fw)
@@ -25,14 +26,19 @@ index 16c39357..ad6d635c 100644
(entry->end_address - entry->start_address) / 1024,
memory_map_name,
entry->start_address,
-@@ -93,8 +93,8 @@ static int ebda_test1(fwts_framework *fw)
+@@ -93,9 +93,9 @@ static int ebda_test1(fwts_framework *fw)
} else
fwts_failed(fw, LOG_LEVEL_MEDIUM,
"EBDAMappedNotReserved",
- "EBDA region mapped at 0x%lx but not reserved in the %s table.",
- ebda_addr, memory_map_name);
+-
+ "EBDA region mapped at 0x%jdx but not reserved in the %s table.",
+ (intmax_t)ebda_addr, memory_map_name);
-
++
return FWTS_OK;
}
+
+--
+2.25.1
+
diff --git a/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch b/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch
deleted file mode 100644
index 4baefe4a4c..0000000000
--- a/meta-oe/recipes-test/fwts/fwts/0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From ed988c27efde5355c3ba9d0de8a14a4a40f798cc Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Jun 2017 07:25:09 -0700
-Subject: [PATCH] Include poll.h instead of deprecated sys/poll.h
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/lib/src/fwts_ipmi.c | 3 ++-
- src/lib/src/fwts_pipeio.c | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/src/lib/src/fwts_ipmi.c b/src/lib/src/fwts_ipmi.c
-index a4c8a511..e298969e 100644
---- a/src/lib/src/fwts_ipmi.c
-+++ b/src/lib/src/fwts_ipmi.c
-@@ -18,10 +18,11 @@
- *
- */
-
-+#include <poll.h>
-+
- #include <sys/types.h>
- #include <sys/stat.h>
- #include <fcntl.h>
--#include <sys/poll.h>
- #include <sys/ioctl.h>
- #include <linux/ipmi.h>
-
-diff --git a/src/lib/src/fwts_pipeio.c b/src/lib/src/fwts_pipeio.c
-index 3b3cfaff..289564d1 100644
---- a/src/lib/src/fwts_pipeio.c
-+++ b/src/lib/src/fwts_pipeio.c
-@@ -30,9 +30,9 @@
- #include <stdlib.h>
- #include <string.h>
- #include <paths.h>
-+#include <poll.h>
-
- #include <sys/param.h>
--#include <sys/poll.h>
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <errno.h>
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-Remove-Werror-from-build.patch b/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch
deleted file mode 100644
index 611ccc8fc8..0000000000
--- a/meta-oe/recipes-test/fwts/fwts/0001-Remove-Werror-from-build.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 475979cf5c1af978f4e8409666365ec75b3320ea Mon Sep 17 00:00:00 2001
-From: Benjamin Berg <bberg@redhat.com>
-Date: Mon, 21 Aug 2017 10:34:40 +0200
-Subject: [PATCH] Remove -Werror from build
-
-Upstream-Status: Pending
-
----
- src/Makefile.am | 2 +-
- src/lib/src/Makefile.am | 2 +-
- src/utilities/Makefile.am | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 4daa9e8f..873f23eb 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -14,7 +14,7 @@ AM_CPPFLAGS = \
- `pkg-config --silence-errors --cflags json` \
- `pkg-config --silence-errors --cflags json-c` \
- -pthread `pkg-config --cflags glib-2.0 gio-2.0` \
-- -Wall -Werror -Wextra
-+ -Wall -Wextra
-
- bin_PROGRAMS = fwts
-
-diff --git a/src/lib/src/Makefile.am b/src/lib/src/Makefile.am
-index fa232451..082403a2 100644
---- a/src/lib/src/Makefile.am
-+++ b/src/lib/src/Makefile.am
-@@ -24,7 +24,7 @@ AM_CPPFLAGS = \
- `pkg-config --silence-errors --cflags json-c` \
- `pkg-config --cflags glib-2.0 gio-2.0` \
- -DDATAROOTDIR=\"$(datarootdir)\" \
-- -Wall -Werror -Wextra
-+ -Wall -Wextra
-
- pkglib_LTLIBRARIES = libfwts.la
-
-diff --git a/src/utilities/Makefile.am b/src/utilities/Makefile.am
-index aa37de55..4d5297cc 100644
---- a/src/utilities/Makefile.am
-+++ b/src/utilities/Makefile.am
-@@ -16,7 +16,7 @@
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- #
-
--AM_CPPFLAGS = -Wall -Werror -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \
-+AM_CPPFLAGS = -Wall -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \
- `pkg-config --silence-errors --cflags json` \
- `pkg-config --silence-errors --cflags json-c`
-
diff --git a/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch b/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch
deleted file mode 100644
index ae3665b4d0..0000000000
--- a/meta-oe/recipes-test/fwts/fwts/0001-ignore-constant-logical-operand-warning-with-clang.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 5bd05ad8569880985ddf6d4c06ed927d388c297f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 19 Oct 2016 01:57:16 +0000
-Subject: [PATCH] ignore constant-logical-operand warning with clang
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/dmi/dmicheck/dmicheck.c | 3 +++
- src/lib/src/fwts_acpi_tables.c | 5 +++++
- src/uefi/uefirtauthvar/uefirtauthvar.c | 5 +++++
- 3 files changed, 13 insertions(+)
-
-diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c
-index 3cca9db9..60fb758f 100644
---- a/src/dmi/dmicheck/dmicheck.c
-+++ b/src/dmi/dmicheck/dmicheck.c
-@@ -211,6 +211,8 @@ static const char *uuid_patterns[] = {
- "0A0A0A0A-0A0A-0A0A-0A0A-0A0A0A0A0A0A",
- NULL,
- };
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Wunneeded-internal-declaration"
-
- static const fwts_chassis_type_map fwts_dmi_chassis_type[] = {
- { "Invalid", FWTS_SMBIOS_CHASSIS_INVALID },
-@@ -251,6 +253,7 @@ static const fwts_chassis_type_map fwts_dmi_chassis_type[] = {
- { "Mini PC", FWTS_SMBIOS_CHASSIS_MINI_PC },
- { "Stick PC", FWTS_SMBIOS_CHASSIS_STICK_PC },
- };
-+#pragma clang diagnostic pop
-
- /* Remapping table from buggy version numbers to correct values */
- static const fwts_dmi_version dmi_versions[] = {
-diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
-index c7ba59be..bdd224aa 100644
---- a/src/lib/src/fwts_acpi_tables.c
-+++ b/src/lib/src/fwts_acpi_tables.c
-@@ -393,10 +393,14 @@ static int fwts_acpi_handle_fadt(
- /* Determine FACS addr and load it.
- * Will ignore the missing FACS in the hardware-reduced mode.
- */
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Waddress-of-packed-member"
-+
- result = fwts_acpi_handle_fadt_tables(fw, fadt,
- "FACS", "FIRMWARE_CTRL", "X_FIRMWARE_CTRL",
- &fadt->firmware_control, &fadt->x_firmware_ctrl,
- provenance);
-+
- if (result != FWTS_OK) {
- if ((result == FWTS_NULL_POINTER) &&
- fwts_acpi_is_reduced_hardware(fadt)) {
-@@ -415,6 +419,7 @@ static int fwts_acpi_handle_fadt(
- return FWTS_ERROR;
- }
- return FWTS_OK;
-+#pragma clang diagnostic pop
- }
-
- /*
-diff --git a/src/uefi/uefirtauthvar/uefirtauthvar.c b/src/uefi/uefirtauthvar/uefirtauthvar.c
-index c2031741..7a33d19d 100644
---- a/src/uefi/uefirtauthvar/uefirtauthvar.c
-+++ b/src/uefi/uefirtauthvar/uefirtauthvar.c
-@@ -142,6 +142,9 @@ static int uefirtauthvar_deinit(fwts_framework *fw)
- return FWTS_OK;
- }
-
-+#pragma clang diagnostic push
-+#pragma clang diagnostic ignored "-Wconstant-logical-operand"
-+
- static int check_fw_support(fwts_framework *fw, uint64_t status)
- {
- if ((status == EFI_INVALID_PARAMETER) &&
-@@ -172,6 +175,8 @@ static int check_fw_support(fwts_framework *fw, uint64_t status)
- return FWTS_OK;
- }
-
-+#pragma clang diagnostic pop
-+
- /*
- * Set the created authenticated variable, AuthVarCreate,
- * and checking the data size and data.
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/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch b/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
deleted file mode 100644
index b45e46a3d9..0000000000
--- a/meta-oe/recipes-test/fwts/fwts/0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 1112e51d240a206bdcf253878ef1f4963b92da8a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Jun 2017 07:37:20 -0700
-Subject: [PATCH] Define __SWORD_TYPE if not defined by libc
-
-__SWORD_TYPE is internal to glibc, therefore
-check and define it if needed e.g. on musl
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/lib/src/fwts_uefi.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/lib/src/fwts_uefi.c b/src/lib/src/fwts_uefi.c
-index 544145fa..460b0b77 100644
---- a/src/lib/src/fwts_uefi.c
-+++ b/src/lib/src/fwts_uefi.c
-@@ -59,6 +59,10 @@ typedef struct {
- #define UEFI_IFACE_SYSFS (2) /* sysfs */
- #define UEFI_IFACE_EFIVARS (3) /* efivar fs */
-
-+#ifndef __SWORD_TYPE
-+typedef __typeof__( ((struct statfs *)0)->f_type ) __SWORD_TYPE;
-+#endif
-+
- /* File system magic numbers */
- #define PSTOREFS_MAGIC ((__SWORD_TYPE)0x6165676C)
- #define EFIVARFS_MAGIC ((__SWORD_TYPE)0xde5e81e4)
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
new file mode 100644
index 0000000000..610113e6fe
--- /dev/null
+++ b/meta-oe/recipes-test/fwts/fwts/0003-Remove-Werror-from-build.patch
@@ -0,0 +1,45 @@
+From 7317aba872f2bcf052a7db9fa3c7a7ce3c55dc6b Mon Sep 17 00:00:00 2001
+From: Benjamin Berg <bberg@redhat.com>
+Date: Mon, 21 Aug 2017 10:34:40 +0200
+Subject: [PATCH 3/6] Remove -Werror from build
+
+Upstream-Status: Pending
+---
+ src/Makefile.am | 2 +-
+ src/lib/src/Makefile.am | 2 +-
+ src/utilities/Makefile.am | 2 +-
+ 3 files changed, 3 insertions(+), 3 deletions(-)
+
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -13,7 +13,7 @@ AM_CPPFLAGS = \
+ -I$(top_srcdir)/efi_runtime \
+ -I$(top_srcdir)/smccc_test \
+ -pthread \
+- -Wall -Werror -Wextra \
++ -Wall -Wextra \
+ -Wno-address-of-packed-member \
+ -Wfloat-equal -Wmissing-declarations \
+ -Wno-long-long -Wredundant-decls -Wshadow \
+--- a/src/lib/src/Makefile.am
++++ b/src/lib/src/Makefile.am
+@@ -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 \
+ -Wno-address-of-packed-member
+
+ pkglib_LTLIBRARIES = libfwts.la
+--- a/src/utilities/Makefile.am
++++ b/src/utilities/Makefile.am
+@@ -16,7 +16,7 @@
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ #
+
+-AM_CPPFLAGS = -Wall -Werror -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \
++AM_CPPFLAGS = -Wall -Wextra -DDATAROOTDIR=\"$(datarootdir)\" \
+ -I$(srcdir)/../lib/include
+
+ bin_PROGRAMS = kernelscan
diff --git a/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch b/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch
deleted file mode 100644
index 1d8c620efa..0000000000
--- a/meta-oe/recipes-test/fwts/fwts/0003-Undefine-PAGE_SIZE.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 244e9551ab9bbc1dfa91d19cd472ef254a94ae41 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 6 Jun 2017 07:39:28 -0700
-Subject: [PATCH] Undefine PAGE_SIZE
-
-musl defines PAGE_SIZE and build complains
-of multiple definitions
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/lib/src/fwts_acpi_tables.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
-index bdd224aa..58e982a6 100644
---- a/src/lib/src/fwts_acpi_tables.c
-+++ b/src/lib/src/fwts_acpi_tables.c
-@@ -42,6 +42,7 @@
- #define BIOS_START (0x000e0000) /* Start of BIOS memory */
- #define BIOS_END (0x000fffff) /* End of BIOS memory */
- #define BIOS_LENGTH (BIOS_END - BIOS_START) /* Length of BIOS memory */
-+#undef PAGE_SIZE
- #define PAGE_SIZE (4096)
-
- static fwts_acpi_table_info tables[ACPI_MAX_TABLES];
diff --git a/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch b/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
deleted file mode 100644
index bebbfa4ad1..0000000000
--- a/meta-oe/recipes-test/fwts/fwts/0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 1848b8f8b9be500046ca5d632789a068d6151815 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 8 Jun 2017 16:50:59 -0700
-Subject: [PATCH] use intptr_t to fix pointer-to-int-cast issues
-
-uintptr_t is guaranteed to be wide enough that
-converting a void* to uintptr_t and back again
-will yield the original pointer value
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
----
- src/lib/src/fwts_acpi_tables.c | 4 ++--
- src/lib/src/fwts_mmap.c | 2 +-
- src/lib/src/fwts_smbios.c | 4 ++--
- 3 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/src/lib/src/fwts_acpi_tables.c b/src/lib/src/fwts_acpi_tables.c
-index 58e982a6..6522032f 100644
---- a/src/lib/src/fwts_acpi_tables.c
-+++ b/src/lib/src/fwts_acpi_tables.c
-@@ -156,7 +156,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_get_rsdp(fwts_framework *fw, void *addr,
- return NULL;
- }
-
-- if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
-+ if ((mem = fwts_mmap((uintptr_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
- return NULL;
-
- if (fwts_safe_memcpy(rsdp, mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) {
-@@ -455,7 +455,7 @@ static int fwts_acpi_load_tables_from_firmware(fwts_framework *fw)
- if ((rsdp = fwts_acpi_get_rsdp(fw, rsdp_addr, &rsdp_len)) == NULL)
- return FWTS_ERROR;
-
-- fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(off_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
-+ fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(uintptr_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
-
- /* Load any tables from XSDT if it's valid */
- if (rsdp->xsdt_address) {
-diff --git a/src/lib/src/fwts_mmap.c b/src/lib/src/fwts_mmap.c
-index e28abf87..2180b2cc 100644
---- a/src/lib/src/fwts_mmap.c
-+++ b/src/lib/src/fwts_mmap.c
-@@ -81,7 +81,7 @@ int fwts_munmap(void *mem, const size_t size)
- off_t offset;
-
- page_size = fwts_page_size();
-- offset = ((off_t)(mem)) & (page_size - 1);
-+ offset = ((uintptr_t)(mem)) & (page_size - 1);
-
- if (munmap((void *)((uint8_t *)mem - offset), size + offset) < 0)
- return FWTS_ERROR;
-diff --git a/src/lib/src/fwts_smbios.c b/src/lib/src/fwts_smbios.c
-index e5b3c774..c8134926 100644
---- a/src/lib/src/fwts_smbios.c
-+++ b/src/lib/src/fwts_smbios.c
-@@ -55,7 +55,7 @@ static void *fwts_smbios_find_entry_uefi(fwts_framework *fw, fwts_smbios_entry *
- fwts_smbios_entry *mapped_entry;
- const size_t size = sizeof(fwts_smbios_entry);
-
-- if ((mapped_entry = fwts_mmap((off_t)addr, size)) != FWTS_MAP_FAILED) {
-+ if ((mapped_entry = fwts_mmap((uintptr_t)addr, size)) != FWTS_MAP_FAILED) {
- if (fwts_safe_memcpy(entry, mapped_entry, size) == FWTS_OK) {
- (void)fwts_munmap(mapped_entry, size);
- *type = FWTS_SMBIOS;
-@@ -91,7 +91,7 @@ static void *fwts_smbios30_find_entry_uefi(fwts_framework *fw, fwts_smbios30_ent
- fwts_smbios30_entry *mapped_entry;
- const size_t size = sizeof(fwts_smbios30_entry);
-
-- if ((mapped_entry = fwts_mmap((off_t)addr, size)) != FWTS_MAP_FAILED) {
-+ if ((mapped_entry = fwts_mmap((uintptr_t)addr, size)) != FWTS_MAP_FAILED) {
- if (fwts_safe_memread(mapped_entry, size) == FWTS_OK) {
- *entry = *mapped_entry;
- (void)fwts_munmap(mapped_entry, size);
diff --git a/meta-oe/recipes-test/fwts/fwts/0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch b/meta-oe/recipes-test/fwts/fwts/0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
new file mode 100644
index 0000000000..0c78e730e4
--- /dev/null
+++ b/meta-oe/recipes-test/fwts/fwts/0004-Define-__SWORD_TYPE-if-not-defined-by-libc.patch
@@ -0,0 +1,28 @@
+From 9456f2f779d3ed4a134d55571d8bec78ad3b28c1 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Jun 2017 07:37:20 -0700
+Subject: [PATCH 4/6] Define __SWORD_TYPE if not defined by libc
+
+__SWORD_TYPE is internal to glibc, therefore
+check and define it if needed e.g. on musl
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/src/fwts_uefi.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+--- a/src/lib/src/fwts_uefi.c
++++ b/src/lib/src/fwts_uefi.c
+@@ -63,6 +63,10 @@ typedef struct {
+ #define UEFI_IFACE_SYSFS (2) /* sysfs */
+ #define UEFI_IFACE_EFIVARS (3) /* efivar fs */
+
++#ifndef __SWORD_TYPE
++typedef __typeof__( ((struct statfs *)0)->f_type ) __SWORD_TYPE;
++#endif
++
+ /* File system magic numbers */
+ #define PSTOREFS_MAGIC ((__SWORD_TYPE)0x6165676C)
+ #define EFIVARFS_MAGIC ((__SWORD_TYPE)0xde5e81e4)
diff --git a/meta-oe/recipes-test/fwts/fwts/0005-Undefine-PAGE_SIZE.patch b/meta-oe/recipes-test/fwts/fwts/0005-Undefine-PAGE_SIZE.patch
new file mode 100644
index 0000000000..df768d1e9d
--- /dev/null
+++ b/meta-oe/recipes-test/fwts/fwts/0005-Undefine-PAGE_SIZE.patch
@@ -0,0 +1,25 @@
+From 53b9f97fb7faed043134f2ab738347b20379d32f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 6 Jun 2017 07:39:28 -0700
+Subject: [PATCH 5/6] Undefine PAGE_SIZE
+
+musl defines PAGE_SIZE and build complains
+of multiple definitions
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/lib/src/fwts_acpi_tables.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/src/lib/src/fwts_acpi_tables.c
++++ b/src/lib/src/fwts_acpi_tables.c
+@@ -40,6 +40,7 @@
+ #define BIOS_START (0x000e0000) /* Start of BIOS memory */
+ #define BIOS_END (0x000fffff) /* End of BIOS memory */
+ #define BIOS_LENGTH (BIOS_END - BIOS_START) /* Length of BIOS memory */
++#undef PAGE_SIZE
+ #define PAGE_SIZE (4096)
+
+ static fwts_acpi_table_info tables[ACPI_MAX_TABLES];
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
new file mode 100644
index 0000000000..b723b87c7a
--- /dev/null
+++ b/meta-oe/recipes-test/fwts/fwts/0006-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch
@@ -0,0 +1,60 @@
+From f723458eb649a9ad1d5d0e3dd6e801b284680fa7 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 8 Jun 2017 16:50:59 -0700
+Subject: [PATCH 6/6] use intptr_t to fix pointer-to-int-cast issues
+
+uintptr_t is guaranteed to be wide enough that
+converting a void* to uintptr_t and back again
+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 +-
+ 3 files changed, 4 insertions(+), 4 deletions(-)
+
+--- a/src/lib/src/fwts_acpi_tables.c
++++ b/src/lib/src/fwts_acpi_tables.c
+@@ -171,7 +171,7 @@ static fwts_acpi_table_rsdp *fwts_acpi_g
+ return NULL;
+ }
+
+- if ((mem = fwts_mmap((off_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
++ if ((mem = fwts_mmap((uintptr_t)addr, sizeof(fwts_acpi_table_rsdp))) == FWTS_MAP_FAILED)
+ return NULL;
+
+ if (fwts_safe_memcpy(rsdp, mem, sizeof(fwts_acpi_table_rsdp)) != FWTS_OK) {
+@@ -484,7 +484,7 @@ static int fwts_acpi_load_tables_from_fi
+ if ((rsdp = fwts_acpi_get_rsdp(fw, rsdp_addr, &rsdp_len)) == NULL)
+ return FWTS_ERROR;
+
+- fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(off_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
++ fwts_acpi_add_table("RSDP", rsdp, (uint64_t)(uintptr_t)rsdp_addr, rsdp_len, FWTS_ACPI_TABLE_FROM_FIRMWARE);
+
+ /* Load any tables from XSDT if it's valid */
+ if (rsdp->xsdt_address) {
+--- a/src/lib/src/fwts_mmap.c
++++ b/src/lib/src/fwts_mmap.c
+@@ -82,7 +82,7 @@ int fwts_munmap(void *mem, const size_t
+ off_t offset;
+
+ page_size = fwts_page_size();
+- offset = ((off_t)(mem)) & (page_size - 1);
++ offset = ((uintptr_t)(mem)) & (page_size - 1);
+
+ if (munmap((void *)((uint8_t *)mem - offset), size + offset) < 0)
+ return FWTS_ERROR;
+--- a/src/lib/src/fwts_smbios.c
++++ b/src/lib/src/fwts_smbios.c
+@@ -78,7 +78,7 @@ static void *fwts_smbios_find_entry_uefi
+ if ((addr = fwts_scan_efi_systab(smbios)) != NULL) {
+ fwts_smbios_entry *mapped_entry;
+
+- if ((mapped_entry = fwts_mmap((off_t)addr, size)) != FWTS_MAP_FAILED) {
++ if ((mapped_entry = fwts_mmap((uintptr_t)addr, size)) != FWTS_MAP_FAILED) {
+ if (fwts_safe_memcpy(entry, mapped_entry, size) == FWTS_OK) {
+ (void)fwts_munmap(mapped_entry, size);
+ *type = FWTS_SMBIOS;
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/fwts/fwts_git.bb b/meta-oe/recipes-test/fwts/fwts_git.bb
deleted file mode 100644
index defe31ddff..0000000000
--- a/meta-oe/recipes-test/fwts/fwts_git.bb
+++ /dev/null
@@ -1,39 +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 = "GPLv2+"
-LIC_FILES_CHKSUM = "file://src/main.c;beginline=1;endline=16;md5=31da590f3e9f3bd34dcdb9e4db568519"
-
-PV = "18.05.00+git${SRCPV}"
-
-SRCREV = "b0ec7aa2ef743d113fd8c5e57c0ca3d5edd86f0e"
-SRC_URI = "git://kernel.ubuntu.com/hwe/fwts.git \
- file://0001-ignore-constant-logical-operand-warning-with-clang.patch \
- file://0001-Include-poll.h-instead-of-deprecated-sys-poll.h.patch \
- file://0002-Define-__SWORD_TYPE-if-not-defined-by-libc.patch \
- file://0003-Undefine-PAGE_SIZE.patch \
- file://0001-Add-correct-printf-qualifier-for-off_t.patch \
- file://0003-use-intptr_t-to-fix-pointer-to-int-cast-issues.patch \
- file://0001-Remove-Werror-from-build.patch \
- "
-
-S = "${WORKDIR}/git"
-
-COMPATIBLE_HOST = "(i.86|x86_64|aarch64|powerpc64).*-linux"
-
-DEPENDS = "libpcre json-c glib-2.0 dtc"
-DEPENDS_append_libc-musl = " libexecinfo"
-
-inherit autotools bash-completion pkgconfig
-
-CFLAGS += "-I${STAGING_INCDIR}/json-c -Wno-error=unknown-pragmas"
-LDFLAGS_append_libc-musl = " -lexecinfo"
-
-FILES_${PN} += "${libdir}/fwts/lib*${SOLIBS}"
-FILES_${PN}-dev += "${libdir}/fwts/lib*${SOLIBSDEV} ${libdir}/fwts/lib*.la"
-FILES_${PN}-staticdev += "${libdir}/fwts/lib*a"
-FILES_${PN}-dbg += "${libdir}/fwts/.debug"
-
-TOOLCHAIN = "gcc"
-
diff --git a/meta-oe/recipes-test/googletest/googletest_1.13.0.bb b/meta-oe/recipes-test/googletest/googletest_1.13.0.bb
new file mode 100644
index 0000000000..2327f85d46
--- /dev/null
+++ b/meta-oe/recipes-test/googletest/googletest_1.13.0.bb
@@ -0,0 +1,28 @@
+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 = "b796f7d44681514f58a683a3a71ff17c94edb0c1"
+SRC_URI = "git://github.com/google/googletest.git;branch=main;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/gtest/gtest/Add-pkg-config-support.patch b/meta-oe/recipes-test/gtest/gtest/Add-pkg-config-support.patch
deleted file mode 100644
index 4c8977b499..0000000000
--- a/meta-oe/recipes-test/gtest/gtest/Add-pkg-config-support.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From ec9256bb704e94f41407fc8ace6a580491430196 Mon Sep 17 00:00:00 2001
-From: Andre McCurdy <armccurdy@gmail.com>
-Date: Thu, 15 Dec 2016 04:35:41 -0800
-Subject: [PATCH] Add pkg-config support
-
-Signed-off-by: Mario Domenech Goulart <mario@ossystems.com.br>
-Signed-off-by: Rodrigo Caimi <caimi@datacom.ind.br>
-Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
----
- googlemock/CMakeLists.txt | 9 +++++++--
- googlemock/gmock.pc.in | 9 +++++++++
- googletest/CMakeLists.txt | 9 +++++++--
- googletest/gtest.pc.in | 9 +++++++++
- 4 files changed, 32 insertions(+), 4 deletions(-)
- create mode 100644 googlemock/gmock.pc.in
- create mode 100644 googletest/gtest.pc.in
-
-diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt
-index beb259a..f17e2d7 100644
---- a/googlemock/CMakeLists.txt
-+++ b/googlemock/CMakeLists.txt
-@@ -27,6 +27,9 @@ if (COMMAND pre_project_set_up_hermetic_build)
- pre_project_set_up_hermetic_build()
- endif()
-
-+# pkg-config support
-+configure_file("gmock.pc.in" "gmock.pc" @ONLY)
-+
- ########################################################################
- #
- # Project-wide settings
-@@ -104,9 +107,11 @@ endif()
- #
- # Install rules
- install(TARGETS gmock gmock_main
-- DESTINATION lib)
-+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(DIRECTORY ${gmock_SOURCE_DIR}/include/gmock
-- DESTINATION include)
-+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gmock.pc"
-+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
-
- ########################################################################
- #
-diff --git a/googlemock/gmock.pc.in b/googlemock/gmock.pc.in
-new file mode 100644
-index 0000000..04bc0b4
---- /dev/null
-+++ b/googlemock/gmock.pc.in
-@@ -0,0 +1,9 @@
-+Name: libgmock
-+Version: 1.8.0
-+Description: Google's framework for writing C++ tests on a variety of platforms
-+
-+prefix=@CMAKE_INSTALL_PREFIX@
-+includedir=@CMAKE_INSTALL_INCLUDEDIR@
-+libdir=@CMAKE_INSTALL_LIBDIR@
-+Cflags:-I${includedir}/gmock
-+Libs: -L${libdir} -lgmock -lgmock_main
-diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt
-index 621d0f0..58aaf54 100644
---- a/googletest/CMakeLists.txt
-+++ b/googletest/CMakeLists.txt
-@@ -34,6 +34,9 @@ if (COMMAND pre_project_set_up_hermetic_build)
- pre_project_set_up_hermetic_build()
- endif()
-
-+# pkg-config support
-+configure_file("gtest.pc.in" "gtest.pc" @ONLY)
-+
- ########################################################################
- #
- # Project-wide settings
-@@ -103,9 +106,11 @@ endif()
- #
- # Install rules
- install(TARGETS gtest gtest_main
-- DESTINATION lib)
-+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
- install(DIRECTORY ${gtest_SOURCE_DIR}/include/gtest
-- DESTINATION include)
-+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/gtest.pc"
-+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig/")
-
- ########################################################################
- #
-diff --git a/googletest/gtest.pc.in b/googletest/gtest.pc.in
-new file mode 100644
-index 0000000..fb95152
---- /dev/null
-+++ b/googletest/gtest.pc.in
-@@ -0,0 +1,9 @@
-+Name: libgtest
-+Version: 1.8.0
-+Description: Google's framework for writing C++ tests on a variety of platforms
-+
-+prefix=@CMAKE_INSTALL_PREFIX@
-+includedir=@CMAKE_INSTALL_INCLUDEDIR@
-+libdir=@CMAKE_INSTALL_LIBDIR@
-+Cflags:-I${includedir}/gtest
-+Libs: -L${libdir} -lgtest -lgtest_main
---
-1.9.1
-
diff --git a/meta-oe/recipes-test/gtest/gtest_1.8.0.bb b/meta-oe/recipes-test/gtest/gtest_1.8.0.bb
deleted file mode 100644
index 48cf4e04b0..0000000000
--- a/meta-oe/recipes-test/gtest/gtest_1.8.0.bb
+++ /dev/null
@@ -1,24 +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://googlemock/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a \
- file://googletest/LICENSE;md5=cbbd27594afd089daa160d3a16dd515a"
-
-PROVIDES += "gmock"
-
-S = "${WORKDIR}/git"
-SRCREV = "ec44c6c1675c25b9827aacd08c02433cccde7780"
-SRC_URI = "\
- git://github.com/google/googletest.git;protocol=https; \
- file://Add-pkg-config-support.patch \
-"
-
-inherit cmake
-
-ALLOW_EMPTY_${PN} = "1"
-ALLOW_EMPTY_${PN}-dbg = "1"
-
-RDEPENDS_${PN}-dev += "${PN}-staticdev"
-
-BBCLASSEXTEND = "native nativesdk"
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..7abdcb2523
--- /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${SRCPV}"
+SRCREV = "2ee61484167eab846f7b7c565284d7c350d738d3"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
diff --git a/meta-oe/recipes-test/pm-qa/pm-qa_git.bb b/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
index 1ee6573bdb..fc21e6192e 100644
--- a/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
+++ b/meta-oe/recipes-test/pm-qa/pm-qa_git.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "Utilities for testing Power Management"
HOMEPAGE = "https://wiki.linaro.org/WorkingGroups/PowerManagement/Resources/TestSuite/PmQa"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
PV = "0.5.2"
@@ -42,6 +42,7 @@ do_install () {
do
# Remove hardcoded relative paths
sed -i -e 's#..\/utils\/##' ${script}
+ sed -i -e 's#. ..\/Switches#${bindir}#g' ${script}
script_basename=`basename ${script}`
install -m 0755 $script ${D}${libdir}/${BPN}/${script_basename}
@@ -54,7 +55,7 @@ do_install () {
# if the script includes any helper scripts from the $libdir
# directory then change the source path to the absolute path
# to reflect the install location of the helper scripts.
- sed -i -e "s#source ../include#source ${libdir}/${BPN}#g" ${script}
+ sed -i -e "s#. ../include#. ${libdir}/${BPN}#g" ${script}
# Remove hardcoded relative paths
sed -i -e 's#..\/utils\/##' ${script}
@@ -62,4 +63,7 @@ do_install () {
install -m 0755 $script ${D}${bindir}/${script_basename}
done
}
-RDEPENDS_${PN} +="bash"
+RDEPENDS:${PN} +="bash"
+
+# http://errors.yoctoproject.org/Errors/Details/186956/
+COMPATIBLE_HOST:libc-musl = 'null'
diff --git a/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch b/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
deleted file mode 100644
index d604f860a1..0000000000
--- a/meta-oe/recipes-test/stress-ng/stress-ng/0001-Several-changes-to-fix-musl-build.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From 784dcd09d3f266e271d007f4fd257e85036872ca Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?An=C3=ADbal=20Lim=C3=B3n?= <anibal.limon@linaro.org>
-Date: Tue, 17 Oct 2017 10:13:20 -0500
-Subject: [PATCH] Several changes to fix musl build
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-stress-{context, stackmmap}.c: Set tests to non-implemented because uses
-swapcontext, musl provide the definition but not the implementation due
- to that functions are pre-POSIX and set to be deprecated.
- stress-{resources, pty}.c: Doesn't include termio.h and remove stress
- operations that uses struct termio, musl doesn't provide that struct.
-stress-malloc.c: Check for definition of M_MMAP_THRESHOLD musl doesn't
- ptovide that constant.
-stress-madvise.c: Add static poision_count integer, definition of
- MADV_SOFT_OFFLINE doesn't grauntee MADV_HWPOISON to be defined.
-cache.c: Define GLOB_ONLYDIR not available on MUSL.
-
-Signed-off-by: Aníbal Limón <anibal.limon@linaro.org>
-Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
-
-Upstream-status: Pending
-
----
- cache.c | 4 ++++
- stress-madvise.c | 1 +
- stress-malloc.c | 2 +-
- stress-pty.c | 18 ------------------
- stress-resources.c | 1 -
- stress-stackmmap.c | 2 +-
- 6 files changed, 7 insertions(+), 21 deletions(-)
-
-diff --git a/cache.c b/cache.c
-index fbf7674..936c1ff 100644
---- a/cache.c
-+++ b/cache.c
-@@ -28,6 +28,10 @@ typedef struct {
-
- #include <glob.h>
-
-+#ifndef GLOB_ONLYDIR
-+#define GLOB_ONLYDIR 0x100
-+#endif
-+
- #if defined(__linux__)
- #define SYS_CPU_PREFIX "/sys/devices/system/cpu"
- #define GLOB_PATTERN SYS_CPU_PREFIX "/cpu[0-9]*"
-diff --git a/stress-madvise.c b/stress-madvise.c
-index 9e71e11..ddf8d2d 100644
---- a/stress-madvise.c
-+++ b/stress-madvise.c
-@@ -147,6 +147,7 @@ static int stress_random_advise(const args_t *args)
- #if defined(MADV_SOFT_OFFLINE)
- if (advise == MADV_SOFT_OFFLINE) {
- static int soft_offline_count;
-+ static int poison_count;
-
- /* ..and minimize number of soft offline pages */
- if ((soft_offline_count >= NUM_SOFT_OFFLINE_MAX) ||
-diff --git a/stress-malloc.c b/stress-malloc.c
-index a46b8c6..427827a 100644
---- a/stress-malloc.c
-+++ b/stress-malloc.c
-@@ -99,7 +99,7 @@ int stress_malloc(const args_t *args)
- malloc_max = MIN_MALLOC_MAX;
- }
-
--#if defined(__GNUC__) && defined(__linux__)
-+#if defined(__GNUC__) && defined(__linux__) && defined(M_MMAP_THRESHOLD)
- if (get_setting("malloc-threshold", &malloc_threshold))
- (void)mallopt(M_MMAP_THRESHOLD, (int)malloc_threshold);
- #endif
-diff --git a/stress-pty.c b/stress-pty.c
-index 1bd1fbd..b1fe573 100644
---- a/stress-pty.c
-+++ b/stress-pty.c
-@@ -26,7 +26,6 @@
-
- #if defined(__linux__)
-
--#include <termio.h>
- #include <termios.h>
-
- typedef struct {
-@@ -108,7 +107,6 @@ int stress_pty(const args_t *args)
- */
- for (i = 0; i < n; i++) {
- struct termios ios;
-- struct termio io;
- struct winsize ws;
- int arg;
-
-@@ -130,22 +128,6 @@ int stress_pty(const args_t *args)
- if (ioctl(ptys[i].slave, TCSETSF, &ios) < 0)
- pr_fail_err("ioctl TCSETSF on slave pty");
- #endif
--#if defined(TCGETA)
-- if (ioctl(ptys[i].slave, TCGETA, &io) < 0)
-- pr_fail_err("ioctl TCGETA on slave pty");
--#endif
--#if defined(TCSETA)
-- if (ioctl(ptys[i].slave, TCSETA, &io) < 0)
-- pr_fail_err("ioctl TCSETA on slave pty");
--#endif
--#if defined(TCSETAW)
-- if (ioctl(ptys[i].slave, TCSETAW, &io) < 0)
-- pr_fail_err("ioctl TCSETAW on slave pty");
--#endif
--#if defined(TCSETAF)
-- if (ioctl(ptys[i].slave, TCSETAF, &io) < 0)
-- pr_fail_err("ioctl TCSETAF on slave pty");
--#endif
- #if defined(TIOCGLCKTRMIOS)
- if (ioctl(ptys[i].slave, TIOCGLCKTRMIOS, &ios) < 0)
- pr_fail_err("ioctl TIOCGLCKTRMIOS on slave pty");
-diff --git a/stress-resources.c b/stress-resources.c
-index 958c99a..af79abd 100644
---- a/stress-resources.c
-+++ b/stress-resources.c
-@@ -31,7 +31,6 @@
- #include <sys/inotify.h>
- #endif
- #if defined(__linux__)
--#include <termio.h>
- #include <termios.h>
- #endif
- #if defined(HAVE_LIB_PTHREAD) && defined(__linux__)
-diff --git a/stress-stackmmap.c b/stress-stackmmap.c
-index 9c83a69..2984f09 100644
---- a/stress-stackmmap.c
-+++ b/stress-stackmmap.c
-@@ -24,7 +24,7 @@
- */
- #include "stress-ng.h"
-
--#if defined(__linux__)
-+#if defined(__linux__) && False
-
- #include <ucontext.h>
-
diff --git a/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch b/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch
deleted file mode 100644
index ed3287e329..0000000000
--- a/meta-oe/recipes-test/stress-ng/stress-ng/0002-stress-fcntl-fix-build-for-musl.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From faadbc147394cea9278bc2494f33e3521d88e742 Mon Sep 17 00:00:00 2001
-From: Tim Orling <timothy.t.orling@linux.intel.com>
-Date: Tue, 9 Jan 2018 18:38:45 -0800
-Subject: [PATCH] stress-fcntl: fix build for musl
-
-Signed-off-by: Tim Orling <timothy.t.orling@linux.intel.com>
-
-Upstream-status: Pending
-
----
- stress-fcntl.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/stress-fcntl.c b/stress-fcntl.c
-index 2ea867b..e91b345 100644
---- a/stress-fcntl.c
-+++ b/stress-fcntl.c
-@@ -415,6 +415,7 @@ ofd_lock_abort: { /* Nowt */ }
- #if (defined(F_GET_FILE_RW_HINT) && defined(F_SET_FILE_RW_HINT)) | \
- (defined(F_GET_RW_HINT) && defined(F_SET_RW_HINT))
- {
-+ int ret;
- size_t i;
- unsigned long hint;
- static const unsigned long hints[] = {
diff --git a/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb b/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb
deleted file mode 100644
index 7fab43025f..0000000000
--- a/meta-oe/recipes-test/stress-ng/stress-ng_0.09.14.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A tool to load and stress a computer system"
-HOMEPAGE = "http://kernel.ubuntu.com/~cking/stress-ng/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-DEPENDS = "zlib libaio"
-
-SRC_URI = "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/${BP}.tar.xz \
- file://0002-stress-fcntl-fix-build-for-musl.patch \
- "
-SRC_URI_append_libc-musl = " \
- file://0001-Several-changes-to-fix-musl-build.patch \
- "
-SRC_URI[md5sum] = "1f8b6c2c2830704d2a2814c16082d48e"
-SRC_URI[sha256sum] = "02cac34a5cb041197af60c1867844c6cbb089a6d10a38cdcf7b8f27bfaa6ef8f"
-
-UPSTREAM_CHECK_URI ?= "http://kernel.ubuntu.com/~cking/tarballs/${BPN}/"
-UPSTREAM_CHECK_REGEX ?= "(?P<pver>\d+(\.\d+)+)\.tar"
-
-CFLAGS += "-Wall -Wextra -DVERSION='"$(VERSION)"'"
-
-do_install_append() {
- install -d ${D}${bindir}
- install -m 755 ${S}/stress-ng ${D}${bindir}/stress-ng
-}
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..2adc06a2bc
--- /dev/null
+++ b/meta-oe/recipes-test/syzkaller/syzkaller_git.bb
@@ -0,0 +1,74 @@
+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 = "6d01f20890edf11b99bb54573025b11c1acd2d52"
+
+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"
+
+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}" CC="${CXX}" 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 71782c5b9b..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
@@ -1,32 +1,36 @@
-Upstream-Status: Inappropriate [configuration]
+From 99b62670d01c6081d883303722726beb65699cbb Mon Sep 17 00:00:00 2001
+From: Zong Li <zong.li@sifive.com>
+Date: Wed, 6 May 2020 01:23:22 -0700
+Subject: [PATCH] Makefile for cross compile SoftFloat 3e
-From 07f2528d93f44fe1d8080a4225f29f4ada9f4663 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Thu, 4 Feb 2016 09:15:37 -0200
-Subject: [PATCH 1/2] Makefile for cross compile SoftFloat
+This commit adds a Makefile for cross compile on SoftFloat
+3e version. Almost implementation is based on meta-oe porting
+from Fabio Berton <fabio.berton@ossystems.com.br>.
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+Signed-off-by: Zong Li <zongbox@gmail.com>
---
- SoftFloat-3a/build/Linux-Cross-Compile/Makefile | 274 ++++++++++++++++++++++
- SoftFloat-3a/build/Linux-Cross-Compile/platform.h | 44 ++++
- 2 files changed, 318 insertions(+)
- create mode 100644 SoftFloat-3a/build/Linux-Cross-Compile/Makefile
- create mode 100644 SoftFloat-3a/build/Linux-Cross-Compile/platform.h
+Upstream-Status: Pending
-diff --git a/SoftFloat-3a/build/Linux-Cross-Compile/Makefile b/SoftFloat-3a/build/Linux-Cross-Compile/Makefile
+ SoftFloat-3e/build/Linux-Cross-Compile/Makefile | 325 ++++++++++++++++++++++
+ SoftFloat-3e/build/Linux-Cross-Compile/platform.h | 52 ++++
+ 2 files changed, 377 insertions(+)
+ create mode 100644 SoftFloat-3e/build/Linux-Cross-Compile/Makefile
+ create mode 100644 SoftFloat-3e/build/Linux-Cross-Compile/platform.h
+
+diff --git a/SoftFloat-3e/build/Linux-Cross-Compile/Makefile b/SoftFloat-3e/build/Linux-Cross-Compile/Makefile
new file mode 100644
-index 0000000..c4d0a60
+index 0000000..4da4bc9
--- /dev/null
-+++ b/SoftFloat-3a/build/Linux-Cross-Compile/Makefile
-@@ -0,0 +1,274 @@
++++ b/SoftFloat-3e/build/Linux-Cross-Compile/Makefile
+@@ -0,0 +1,325 @@
+
+#=============================================================================
+#
-+# This Makefile is part of the SoftFloat IEEE Floating-Point Arithmetic
-+# Package, Release 3a, by John R. Hauser.
++# This Makefile template is part of the SoftFloat IEEE Floating-Point
++# Arithmetic Package, Release 3e, by John R. Hauser.
+#
-+# Copyright 2011, 2012, 2013, 2014 The Regents of the University of
-+# California. All rights reserved.
++# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
++# University of California. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
@@ -55,21 +59,25 @@ index 0000000..c4d0a60
+#
+#=============================================================================
+
-+SOURCE_DIR = ../../source
-+SPECIALIZE_TYPE = 8086
++SOURCE_DIR ?= ../../source
++SPECIALIZE_TYPE ?= 8086
+
-+SOFTFLOAT_OPTS = -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV64TO32 -fgnu89-inline
++SOFTFLOAT_OPTS ?= \
++ -DSOFTFLOAT_ROUND_ODD -DINLINE_LEVEL=5 -DSOFTFLOAT_FAST_DIV32TO16 \
++ -DSOFTFLOAT_FAST_DIV64TO32
+
+DELETE = rm -f
+C_INCLUDES = -I. -I$(SOURCE_DIR)/$(SPECIALIZE_TYPE) -I$(SOURCE_DIR)/include
+COMPILE_C = \
+ ${CC} -c -Werror-implicit-function-declaration $(SOFTFLOAT_OPTS) \
-+ $(C_INCLUDES) -O2 -o $@
++ $(C_INCLUDES) -O2 -o $@
+MAKELIB = ${AR} crs $@
+
+OBJ = .o
+LIB = .a
+
++OTHER_HEADERS =
++
+.PHONY: all
+all: softfloat$(LIB)
+
@@ -87,6 +95,7 @@ index 0000000..c4d0a60
+ s_shiftRightJamM$(OBJ) \
+ s_shiftRightM$(OBJ) \
+ s_countLeadingZeros8$(OBJ) \
++ s_countLeadingZeros16$(OBJ) \
+ s_countLeadingZeros32$(OBJ) \
+ s_countLeadingZeros64$(OBJ) \
+ s_addM$(OBJ) \
@@ -97,12 +106,17 @@ index 0000000..c4d0a60
+ s_subM$(OBJ) \
+ s_mul64To128M$(OBJ) \
+ s_mul128MTo256M$(OBJ) \
++ s_approxRecip_1Ks$(OBJ) \
+ s_approxRecip32_1$(OBJ) \
++ s_approxRecipSqrt_1Ks$(OBJ) \
+ s_approxRecipSqrt32_1$(OBJ) \
+ s_remStepMBy32$(OBJ) \
+
+OBJS_SPECIALIZE = \
+ softfloat_raiseFlags$(OBJ) \
++ s_f16UIToCommonNaN$(OBJ) \
++ s_commonNaNToF16UI$(OBJ) \
++ s_propagateNaNF16UI$(OBJ) \
+ s_f32UIToCommonNaN$(OBJ) \
+ s_commonNaNToF32UI$(OBJ) \
+ s_propagateNaNF32UI$(OBJ) \
@@ -119,10 +133,16 @@ index 0000000..c4d0a60
+ s_propagateNaNF128M$(OBJ) \
+
+OBJS_OTHERS = \
-+ s_roundPackToUI32$(OBJ) \
-+ s_roundPackMToUI64$(OBJ) \
-+ s_roundPackToI32$(OBJ) \
-+ s_roundPackMToI64$(OBJ) \
++ s_roundToUI32$(OBJ) \
++ s_roundMToUI64$(OBJ) \
++ s_roundToI32$(OBJ) \
++ s_roundMToI64$(OBJ) \
++ s_normSubnormalF16Sig$(OBJ) \
++ s_roundPackToF16$(OBJ) \
++ s_normRoundPackToF16$(OBJ) \
++ s_addMagsF16$(OBJ) \
++ s_subMagsF16$(OBJ) \
++ s_mulAddF16$(OBJ) \
+ s_normSubnormalF32Sig$(OBJ) \
+ s_roundPackToF32$(OBJ) \
+ s_normRoundPackToF32$(OBJ) \
@@ -151,22 +171,53 @@ index 0000000..c4d0a60
+ s_addF128M$(OBJ) \
+ s_mulAddF128M$(OBJ) \
+ softfloat_state$(OBJ) \
++ ui32_to_f16$(OBJ) \
+ ui32_to_f32$(OBJ) \
+ ui32_to_f64$(OBJ) \
+ ui32_to_extF80M$(OBJ) \
+ ui32_to_f128M$(OBJ) \
++ ui64_to_f16$(OBJ) \
+ ui64_to_f32$(OBJ) \
+ ui64_to_f64$(OBJ) \
+ ui64_to_extF80M$(OBJ) \
+ ui64_to_f128M$(OBJ) \
++ i32_to_f16$(OBJ) \
+ i32_to_f32$(OBJ) \
+ i32_to_f64$(OBJ) \
+ i32_to_extF80M$(OBJ) \
+ i32_to_f128M$(OBJ) \
++ i64_to_f16$(OBJ) \
+ i64_to_f32$(OBJ) \
+ i64_to_f64$(OBJ) \
+ i64_to_extF80M$(OBJ) \
+ i64_to_f128M$(OBJ) \
++ f16_to_ui32$(OBJ) \
++ f16_to_ui64$(OBJ) \
++ f16_to_i32$(OBJ) \
++ f16_to_i64$(OBJ) \
++ f16_to_ui32_r_minMag$(OBJ) \
++ f16_to_ui64_r_minMag$(OBJ) \
++ f16_to_i32_r_minMag$(OBJ) \
++ f16_to_i64_r_minMag$(OBJ) \
++ f16_to_f32$(OBJ) \
++ f16_to_f64$(OBJ) \
++ f16_to_extF80M$(OBJ) \
++ f16_to_f128M$(OBJ) \
++ f16_roundToInt$(OBJ) \
++ f16_add$(OBJ) \
++ f16_sub$(OBJ) \
++ f16_mul$(OBJ) \
++ f16_mulAdd$(OBJ) \
++ f16_div$(OBJ) \
++ f16_rem$(OBJ) \
++ f16_sqrt$(OBJ) \
++ f16_eq$(OBJ) \
++ f16_le$(OBJ) \
++ f16_lt$(OBJ) \
++ f16_eq_signaling$(OBJ) \
++ f16_le_quiet$(OBJ) \
++ f16_lt_quiet$(OBJ) \
++ f16_isSignalingNaN$(OBJ) \
+ f32_to_ui32$(OBJ) \
+ f32_to_ui64$(OBJ) \
+ f32_to_i32$(OBJ) \
@@ -175,6 +226,7 @@ index 0000000..c4d0a60
+ f32_to_ui64_r_minMag$(OBJ) \
+ f32_to_i32_r_minMag$(OBJ) \
+ f32_to_i64_r_minMag$(OBJ) \
++ f32_to_f16$(OBJ) \
+ f32_to_f64$(OBJ) \
+ f32_to_extF80M$(OBJ) \
+ f32_to_f128M$(OBJ) \
@@ -201,6 +253,7 @@ index 0000000..c4d0a60
+ f64_to_ui64_r_minMag$(OBJ) \
+ f64_to_i32_r_minMag$(OBJ) \
+ f64_to_i64_r_minMag$(OBJ) \
++ f64_to_f16$(OBJ) \
+ f64_to_f32$(OBJ) \
+ f64_to_extF80M$(OBJ) \
+ f64_to_f128M$(OBJ) \
@@ -227,6 +280,7 @@ index 0000000..c4d0a60
+ extF80M_to_ui64_r_minMag$(OBJ) \
+ extF80M_to_i32_r_minMag$(OBJ) \
+ extF80M_to_i64_r_minMag$(OBJ) \
++ extF80M_to_f16$(OBJ) \
+ extF80M_to_f32$(OBJ) \
+ extF80M_to_f64$(OBJ) \
+ extF80M_to_f128M$(OBJ) \
@@ -251,6 +305,7 @@ index 0000000..c4d0a60
+ f128M_to_ui64_r_minMag$(OBJ) \
+ f128M_to_i32_r_minMag$(OBJ) \
+ f128M_to_i64_r_minMag$(OBJ) \
++ f128M_to_f16$(OBJ) \
+ f128M_to_f32$(OBJ) \
+ f128M_to_f64$(OBJ) \
+ f128M_to_extF80M$(OBJ) \
@@ -272,7 +327,7 @@ index 0000000..c4d0a60
+OBJS_ALL = $(OBJS_PRIMITIVES) $(OBJS_SPECIALIZE) $(OBJS_OTHERS)
+
+$(OBJS_ALL): \
-+ platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
++ $(OTHER_HEADERS) platform.h $(SOURCE_DIR)/include/primitiveTypes.h \
+ $(SOURCE_DIR)/include/primitives.h
+$(OBJS_SPECIALIZE) $(OBJS_OTHERS): \
+ $(SOURCE_DIR)/include/softfloat_types.h $(SOURCE_DIR)/include/internals.h \
@@ -293,20 +348,20 @@ index 0000000..c4d0a60
+clean:
+ $(DELETE) $(OBJS_ALL) softfloat$(LIB)
+
-diff --git a/SoftFloat-3a/build/Linux-Cross-Compile/platform.h b/SoftFloat-3a/build/Linux-Cross-Compile/platform.h
+diff --git a/SoftFloat-3e/build/Linux-Cross-Compile/platform.h b/SoftFloat-3e/build/Linux-Cross-Compile/platform.h
new file mode 100644
-index 0000000..5e566fc
+index 0000000..1728c15
--- /dev/null
-+++ b/SoftFloat-3a/build/Linux-Cross-Compile/platform.h
-@@ -0,0 +1,44 @@
++++ b/SoftFloat-3e/build/Linux-Cross-Compile/platform.h
+@@ -0,0 +1,52 @@
+
+/*============================================================================
+
-+This C header file is part of the SoftFloat IEEE Floating-Point Arithmetic
-+Package, Release 3a, by John R. Hauser.
++This C header template is part of the SoftFloat IEEE Floating-Point Arithmetic
++Package, Release 3e, by John R. Hauser.
+
-+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-+All rights reserved.
++Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
++California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
@@ -341,8 +396,16 @@ index 0000000..5e566fc
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
++#ifdef __GNUC_STDC_INLINE__
++#define INLINE inline
++#else
+#define INLINE extern inline
++#endif
+
++/*----------------------------------------------------------------------------
++*----------------------------------------------------------------------------*/
++#define SOFTFLOAT_BUILTIN_CLZ 1
++#include "opts-GCC.h"
--
-2.1.4
+2.7.4
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 71ca343cc0..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
@@ -1,33 +1,37 @@
-Upstream-Status: Inappropriate [configuration]
+From 3503f7f3845caba454949fdf8408e85ca4fdb943 Mon Sep 17 00:00:00 2001
+From: Zong Li <zong.li@sifive.com>
+Date: Wed, 6 May 2020 01:25:55 -0700
+Subject: [PATCH] Makefile for cross compile TestFloat 3e
-From 9aa4a416f05967320c1aa52bdccfe105a3bf3269 Mon Sep 17 00:00:00 2001
-From: Fabio Berton <fabio.berton@ossystems.com.br>
-Date: Thu, 4 Feb 2016 09:16:09 -0200
-Subject: [PATCH 2/2] Makefile for cross compile TestFloat
+This commit adds a Makefile for cross compile on TestFloat
+3e version. Almost implementation is based on meta-oe porting
+from Fabio Berton <fabio.berton@ossystems.com.br>.
-Signed-off-by: Fabio Berton <fabio.berton@ossystems.com.br>
+Signed-off-by: Zong Li <zongbox@gmail.com>
---
- TestFloat-3a/build/Linux-Cross-Compile/Makefile | 321 ++++++++++++++++++++++
- TestFloat-3a/build/Linux-Cross-Compile/platform.h | 45 +++
- 2 files changed, 366 insertions(+)
- create mode 100644 TestFloat-3a/build/Linux-Cross-Compile/Makefile
- create mode 100644 TestFloat-3a/build/Linux-Cross-Compile/platform.h
+Upstream-Status: Pending
-diff --git a/TestFloat-3a/build/Linux-Cross-Compile/Makefile b/TestFloat-3a/build/Linux-Cross-Compile/Makefile
+ TestFloat-3e/build/Linux-Cross-Compile/Makefile | 353 ++++++++++++++++++++++
+ TestFloat-3e/build/Linux-Cross-Compile/platform.h | 48 +++
+ 2 files changed, 401 insertions(+)
+ create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/Makefile
+ create mode 100644 TestFloat-3e/build/Linux-Cross-Compile/platform.h
+
+diff --git a/TestFloat-3e/build/Linux-Cross-Compile/Makefile b/TestFloat-3e/build/Linux-Cross-Compile/Makefile
new file mode 100644
-index 0000000..a89326a
+index 0000000..d82b9ed
--- /dev/null
-+++ b/TestFloat-3a/build/Linux-Cross-Compile/Makefile
-@@ -0,0 +1,321 @@
++++ b/TestFloat-3e/build/Linux-Cross-Compile/Makefile
+@@ -0,0 +1,353 @@
+
+#=============================================================================
+#
-+# This Makefile is part of TestFloat, Release 3a, a package of programs for
-+# testing the correctness of floating-point arithmetic complying with the IEEE
-+# Standard for Floating-Point, by John R. Hauser.
++# This Makefile template is part of TestFloat, Release 3b, a package of
++# programs for testing the correctness of floating-point arithmetic complying
++# with the IEEE Standard for Floating-Point, by John R. Hauser.
+#
-+# Copyright 2011, 2012, 2013, 2014, 2015 The Regents of the University of
-+# California. All rights reserved.
++# Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University
++# of California. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
@@ -56,28 +60,29 @@ index 0000000..a89326a
+#
+#=============================================================================
+
-+SOURCE_DIR = ../../source
++SOURCE_DIR ?= ../../source
++SOFTFLOAT_DIR ?= ../../../SoftFloat-3e
++PLATFORM ?= Linux-Cross-Compile
++
+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
-+SOFTFLOAT_DIR = ../../../SoftFloat-3a
+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
-+PLATFORM = Linux-Cross-Compile
+
+SOFTFLOAT_H = \
+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
+ $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
+
-+TESTFLOAT_OPTS = -DEXTFLOAT80 -DFLOAT128 -DLONG_DOUBLE_IS_EXTFLOAT80 -fgnu89-inline
++TESTFLOAT_OPTS ?= -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD
+
+DELETE = rm -f
+C_INCLUDES = \
+ -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
+COMPILE_C = \
-+ ${CC} -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
-+ $(C_INCLUDES) -O2 -o $@
++ ${CC} -c -Werror-implicit-function-declaration \
++ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O2 -o $@
+COMPILE_SLOWFLOAT_C = \
-+ ${CC} -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
-+ $(C_INCLUDES) -O3 -o $@
++ ${CC} -c -Werror-implicit-function-declaration \
++ $(TESTFLOAT_OPTS) $(C_INCLUDES) -O3 -o $@
+MAKELIB = ${AR} crs $@
+LINK = ${CC} -o $@ ${LDFLAGS}
+OTHER_LIBS = -lm
@@ -99,6 +104,7 @@ index 0000000..a89326a
+ genCases_ui64$(OBJ) \
+ genCases_i32$(OBJ) \
+ genCases_i64$(OBJ) \
++ genCases_f16$(OBJ) \
+ genCases_f32$(OBJ) \
+ genCases_f64$(OBJ) \
+ genCases_extF80$(OBJ) \
@@ -107,6 +113,9 @@ index 0000000..a89326a
+OBJS_WRITECASE = \
+ writeCase_a_ui32$(OBJ) \
+ writeCase_a_ui64$(OBJ) \
++ writeCase_a_f16$(OBJ) \
++ writeCase_ab_f16$(OBJ) \
++ writeCase_abc_f16$(OBJ) \
+ writeCase_a_f32$(OBJ) \
+ writeCase_ab_f32$(OBJ) \
+ writeCase_abc_f32$(OBJ) \
@@ -115,35 +124,56 @@ index 0000000..a89326a
+ writeCase_abc_f64$(OBJ) \
+ writeCase_a_extF80M$(OBJ) \
+ writeCase_ab_extF80M$(OBJ) \
-+ writeCase_abc_extF80M$(OBJ) \
+ writeCase_a_f128M$(OBJ) \
+ writeCase_ab_f128M$(OBJ) \
+ writeCase_abc_f128M$(OBJ) \
+ writeCase_z_bool$(OBJ) \
+ writeCase_z_ui32$(OBJ) \
+ writeCase_z_ui64$(OBJ) \
++ writeCase_z_f16$(OBJ) \
+ writeCase_z_f32$(OBJ) \
+ writeCase_z_f64$(OBJ) \
+ writeCase_z_extF80M$(OBJ) \
+ writeCase_z_f128M$(OBJ) \
+
+OBJS_TEST = \
++ test_a_ui32_z_f16$(OBJ) \
+ test_a_ui32_z_f32$(OBJ) \
+ test_a_ui32_z_f64$(OBJ) \
+ test_a_ui32_z_extF80$(OBJ) \
+ test_a_ui32_z_f128$(OBJ) \
++ test_a_ui64_z_f16$(OBJ) \
+ test_a_ui64_z_f32$(OBJ) \
+ test_a_ui64_z_f64$(OBJ) \
+ test_a_ui64_z_extF80$(OBJ) \
+ test_a_ui64_z_f128$(OBJ) \
++ test_a_i32_z_f16$(OBJ) \
+ test_a_i32_z_f32$(OBJ) \
+ test_a_i32_z_f64$(OBJ) \
+ test_a_i32_z_extF80$(OBJ) \
+ test_a_i32_z_f128$(OBJ) \
++ test_a_i64_z_f16$(OBJ) \
+ test_a_i64_z_f32$(OBJ) \
+ test_a_i64_z_f64$(OBJ) \
+ test_a_i64_z_extF80$(OBJ) \
+ test_a_i64_z_f128$(OBJ) \
++ test_a_f16_z_ui32_rx$(OBJ) \
++ test_a_f16_z_ui64_rx$(OBJ) \
++ test_a_f16_z_i32_rx$(OBJ) \
++ test_a_f16_z_i64_rx$(OBJ) \
++ test_a_f16_z_ui32_x$(OBJ) \
++ test_a_f16_z_ui64_x$(OBJ) \
++ test_a_f16_z_i32_x$(OBJ) \
++ test_a_f16_z_i64_x$(OBJ) \
++ test_a_f16_z_f32$(OBJ) \
++ test_a_f16_z_f64$(OBJ) \
++ test_a_f16_z_extF80$(OBJ) \
++ test_a_f16_z_f128$(OBJ) \
++ test_az_f16$(OBJ) \
++ test_az_f16_rx$(OBJ) \
++ test_abz_f16$(OBJ) \
++ test_abcz_f16$(OBJ) \
++ test_ab_f16_z_bool$(OBJ) \
+ test_a_f32_z_ui32_rx$(OBJ) \
+ test_a_f32_z_ui64_rx$(OBJ) \
+ test_a_f32_z_i32_rx$(OBJ) \
@@ -152,6 +182,7 @@ index 0000000..a89326a
+ test_a_f32_z_ui64_x$(OBJ) \
+ test_a_f32_z_i32_x$(OBJ) \
+ test_a_f32_z_i64_x$(OBJ) \
++ test_a_f32_z_f16$(OBJ) \
+ test_a_f32_z_f64$(OBJ) \
+ test_a_f32_z_extF80$(OBJ) \
+ test_a_f32_z_f128$(OBJ) \
@@ -168,6 +199,7 @@ index 0000000..a89326a
+ test_a_f64_z_ui64_x$(OBJ) \
+ test_a_f64_z_i32_x$(OBJ) \
+ test_a_f64_z_i64_x$(OBJ) \
++ test_a_f64_z_f16$(OBJ) \
+ test_a_f64_z_f32$(OBJ) \
+ test_a_f64_z_extF80$(OBJ) \
+ test_a_f64_z_f128$(OBJ) \
@@ -184,6 +216,7 @@ index 0000000..a89326a
+ test_a_extF80_z_ui64_x$(OBJ) \
+ test_a_extF80_z_i32_x$(OBJ) \
+ test_a_extF80_z_i64_x$(OBJ) \
++ test_a_extF80_z_f16$(OBJ) \
+ test_a_extF80_z_f32$(OBJ) \
+ test_a_extF80_z_f64$(OBJ) \
+ test_a_extF80_z_f128$(OBJ) \
@@ -199,6 +232,7 @@ index 0000000..a89326a
+ test_a_f128_z_ui64_x$(OBJ) \
+ test_a_f128_z_i32_x$(OBJ) \
+ test_a_f128_z_i64_x$(OBJ) \
++ test_a_f128_z_f16$(OBJ) \
+ test_a_f128_z_f32$(OBJ) \
+ test_a_f128_z_f64$(OBJ) \
+ test_a_f128_z_extF80$(OBJ) \
@@ -209,6 +243,7 @@ index 0000000..a89326a
+ test_ab_f128_z_bool$(OBJ) \
+
+OBJS_LIB = \
++ uint128_inline$(OBJ) \
+ uint128$(OBJ) \
+ fail$(OBJ) \
+ functions_common$(OBJ) \
@@ -218,6 +253,7 @@ index 0000000..a89326a
+ genCases_common$(OBJ) \
+ $(OBJS_GENCASES) \
+ genCases_writeTestsTotal$(OBJ) \
++ verCases_inline$(OBJ) \
+ verCases_common$(OBJ) \
+ verCases_writeFunctionName$(OBJ) \
+ readHex$(OBJ) \
@@ -340,21 +376,21 @@ index 0000000..a89326a
+ $(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
+ $(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
+
-diff --git a/TestFloat-3a/build/Linux-Cross-Compile/platform.h b/TestFloat-3a/build/Linux-Cross-Compile/platform.h
+diff --git a/TestFloat-3e/build/Linux-Cross-Compile/platform.h b/TestFloat-3e/build/Linux-Cross-Compile/platform.h
new file mode 100644
-index 0000000..09e63a0
+index 0000000..487a43b
--- /dev/null
-+++ b/TestFloat-3a/build/Linux-Cross-Compile/platform.h
-@@ -0,0 +1,45 @@
++++ b/TestFloat-3e/build/Linux-Cross-Compile/platform.h
+@@ -0,0 +1,48 @@
+
+/*============================================================================
+
-+This C header file is part of TestFloat, Release 3a, a package of programs for
-+testing the correctness of floating-point arithmetic complying with the IEEE
-+Standard for Floating-Point, by John R. Hauser.
++This C header template is part of TestFloat, Release 3e, a package of programs
++for testing the correctness of floating-point arithmetic complying with the
++IEEE Standard for Floating-Point, by John R. Hauser.
+
-+Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-+All rights reserved.
++Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
++California. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
@@ -389,8 +425,11 @@ index 0000000..09e63a0
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
++#ifdef __GNUC_STDC_INLINE__
++#define INLINE inline
++#else
+#define INLINE extern inline
-+
++#endif
--
-2.1.4
+2.7.4
diff --git a/meta-oe/recipes-test/testfloat/testfloat_3a.bb b/meta-oe/recipes-test/testfloat/testfloat_3a.bb
deleted file mode 100644
index 28e9677625..0000000000
--- a/meta-oe/recipes-test/testfloat/testfloat_3a.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-DESCRIPTION = "Berkeley TestFloat is a small collection of programs for \
- testing that an implementation of binary floating-point conforms to the \
- IEEE Standard for Floating-Point Arithmetic."
-
-HOMEPAGE = "http://www.jhauser.us/arithmetic/TestFloat.html"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://TestFloat-${PV}/COPYING.txt;md5=e45c175a323b5727777fb6bd4b26eafc"
-
-SRC_URI = "\
- http://www.jhauser.us/arithmetic/TestFloat-3a.zip;name=TestFloat \
- http://www.jhauser.us/arithmetic/SoftFloat-3a.zip;name=SoftFloat \
- file://0001-Makefile-for-cross-compile-SoftFloat.patch \
- file://0002-Makefile-for-cross-compile-TestFloat.patch \
-"
-SRC_URI[TestFloat.md5sum] = "5a124e85ab74c5e52da27d401cea6cc3"
-SRC_URI[TestFloat.sha256sum] = "fa258b5b3c751656a372051adee4183e19ad4763032322eb7a87dfb9e2c22c75"
-SRC_URI[SoftFloat.md5sum] = "e53bd4550cf99690642c41374d188517"
-SRC_URI[SoftFloat.sha256sum] = "946fd23180559d60eb6683dda1cf8b142f5426dedfefb97b03c6afdfd70ee9e0"
-
-S = "${WORKDIR}"
-
-do_compile(){
- oe_runmake -C SoftFloat-${PV}/build/Linux-Cross-Compile/
- oe_runmake -C TestFloat-${PV}/build/Linux-Cross-Compile/
-}
-
-do_install(){
- install -d ${D}/${bindir}
- install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat ${D}/${bindir}
- install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat_gen ${D}/${bindir}
- install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat_ver ${D}/${bindir}
- install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testsoftfloat ${D}/${bindir}
- install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/timesoftfloat ${D}/${bindir}
-}
diff --git a/meta-oe/recipes-test/testfloat/testfloat_3e.bb b/meta-oe/recipes-test/testfloat/testfloat_3e.bb
new file mode 100644
index 0000000000..48f50d8274
--- /dev/null
+++ b/meta-oe/recipes-test/testfloat/testfloat_3e.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Berkeley TestFloat 3e"
+DESCRIPTION = "Berkeley TestFloat is a small collection of programs for \
+ testing that an implementation of binary floating-point conforms to the \
+ IEEE Standard for Floating-Point Arithmetic."
+
+HOMEPAGE = "http://www.jhauser.us/arithmetic/TestFloat.html"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://TestFloat-${PV}/COPYING.txt;md5=d467c2d231054347e8fd885ac06e7b2b"
+
+SRC_URI = "\
+ http://www.jhauser.us/arithmetic/TestFloat-3e.zip;name=TestFloat \
+ http://www.jhauser.us/arithmetic/SoftFloat-3e.zip;name=SoftFloat \
+ file://0001-Makefile-for-cross-compile-SoftFloat.patch \
+ file://0002-Makefile-for-cross-compile-TestFloat.patch \
+"
+SRC_URI[TestFloat.md5sum] = "e70a1e6c6732abf79645a6dcca69a654"
+SRC_URI[TestFloat.sha256sum] = "6d4bdf0096b48a653aa59fc203a9e5fe18b5a58d7a1b715107c7146776a0aad6"
+SRC_URI[SoftFloat.md5sum] = "7dac954ea4aed0697cbfee800ba4f492"
+SRC_URI[SoftFloat.sha256sum] = "21130ce885d35c1fe73fc1e1bf2244178167e05c6747cad5f450cc991714c746"
+
+S = "${WORKDIR}"
+
+do_compile(){
+ oe_runmake -C SoftFloat-${PV}/build/Linux-Cross-Compile/
+ oe_runmake -C TestFloat-${PV}/build/Linux-Cross-Compile/
+}
+
+do_install(){
+ install -d ${D}/${bindir}
+ install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat ${D}/${bindir}
+ install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat_gen ${D}/${bindir}
+ install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testfloat_ver ${D}/${bindir}
+ install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/testsoftfloat ${D}/${bindir}
+ install ${S}/TestFloat-${PV}/build/Linux-Cross-Compile/timesoftfloat ${D}/${bindir}
+}
diff --git a/meta-perl/README b/meta-perl/README
deleted file mode 100644
index 67f291079f..0000000000
--- a/meta-perl/README
+++ /dev/null
@@ -1,93 +0,0 @@
-meta-perl
-=========
-This layer provides commonly-used perl related recipes such as perl libraries
-in the Comprehensive Perl Archive Network.
-
-Contents and Help
------------------
-
-In this section the contents of the layer is listed, along with a short
-help for each package.
-
- -- libdbi-perl --
- The DBI is a database access module for the Perl programming language.
- It defines a set of methods, variables, and conventions that provide
- a consistent database interface, independent of the actual database
- being used.
- |<- Scope of DBI ->|
- .-. .--------------. .-------------.
- .-------. | |---| XYZ Driver |---| XYZ Engine |
- | Perl | | | `--------------' `-------------'
- | script| |A| |D| .--------------. .-------------.
- | using |--|P|--|B|---|Oracle Driver |---|Oracle Engine|
- | DBI | |I| |I| `--------------' `-------------'
- | API | | |...
- |methods| | |... Other drivers
- `-------' | |...
- `-'
-
- -- libdbd-sqlite-perl --
- 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.
-
- usage: there is a test case to show you how it works
-
- 1) vim local.conf:
- ...
- IMAGE_INSTALL_append = " libdbd-sqlite-perl"
- PERL_DBM_TEST = "1"
- ...
- 2) build core-image-sato and boot the target
-
- 3) run "sqlite-perl-test.pl" on target. This script includes five
- operations create/insert/update/delete/select to do with a table.
-
- More information can be found in the recipe's git log.
-
-Dependencies
-------------
-
-This layer depends on:
-
- URI: git://git.openembedded.org/openembedded-core
- branch: master
- revision: HEAD
- prio: default
-
-Adding the meta-perl layer to your build
----------------------------------------
-
-In order to use this layer, you need to make the build system aware of
-it.
-
-Assuming the meta-perl layer exists at the top-level of your
-yocto build tree, you can add it to the build system by adding the
-location of the meta-perl layer to bblayers.conf, along with any
-other layers needed. e.g.:
-
- BBLAYERS ?= " \
- /path/to/oe-core/meta \
- /path/to/layer/meta-perl \
-
-Maintenance
------------
-
-Send patches / pull requests to openembedded-devel@lists.openembedded.org with
-'[meta-perl]' in the subject.
-
-When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-perl][PATCH'
-
-Layer maintainers:
- Hongxu Jia <hongxu.jia@windriver.com>
- Tim "moto-timo" Orling <ticotimo@gmail.com>
-
-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.
-
diff --git a/meta-perl/README.md b/meta-perl/README.md
new file mode 100644
index 0000000000..13014b0ff3
--- /dev/null
+++ b/meta-perl/README.md
@@ -0,0 +1,90 @@
+meta-perl
+=========
+This layer provides commonly-used perl related recipes such as perl libraries
+in the Comprehensive Perl Archive Network.
+
+Contents and Help
+-----------------
+
+In this section the contents of the layer is listed, along with a short
+help for each package.
+
+ -- libdbi-perl --
+ The DBI is a database access module for the Perl programming language.
+ It defines a set of methods, variables, and conventions that provide
+ a consistent database interface, independent of the actual database
+ being used.
+ |<- Scope of DBI ->|
+ .-. .--------------. .-------------.
+ .-------. | |---| XYZ Driver |---| XYZ Engine |
+ | Perl | | | `--------------' `-------------'
+ | script| |A| |D| .--------------. .-------------.
+ | using |--|P|--|B|---|Oracle Driver |---|Oracle Engine|
+ | DBI | |I| |I| `--------------' `-------------'
+ | API | | |...
+ |methods| | |... Other drivers
+ `-------' | |...
+ `-'
+
+ -- libdbd-sqlite-perl --
+ 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.
+
+ usage: there is a test case to show you how it works
+
+ 1) vim local.conf:
+ ...
+ IMAGE_INSTALL:append = " libdbd-sqlite-perl"
+ PERL_DBM_TEST = "1"
+ ...
+ 2) build core-image-sato and boot the target
+
+ 3) run "sqlite-perl-test.pl" on target. This script includes five
+ operations create/insert/update/delete/select to do with a table.
+
+ More information can be found in the recipe's git log.
+
+Dependencies
+------------
+
+This layer depends on:
+
+ URI: git://git.openembedded.org/openembedded-core
+ branch: master
+
+Adding the meta-perl layer to your build
+---------------------------------------
+
+In order to use this layer, you need to make the build system aware of
+it.
+
+Assuming the meta-perl layer exists at the top-level of your
+yocto build tree, you can add it to the build system by adding the
+location of the meta-perl layer to bblayers.conf, along with any
+other layers needed. e.g.:
+
+ BBLAYERS ?= " \
+ /path/to/oe-core/meta \
+ /path/to/layer/meta-perl \
+
+Maintenance
+-----------
+
+Send patches / pull requests to openembedded-devel@lists.openembedded.org with
+'[meta-perl]' in the subject.
+
+When sending single patches, please using something like:
+git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-perl][PATCH'
+
+Layer maintainers:
+ Hongxu Jia <hongxu.jia@windriver.com>
+ Tim "moto-timo" Orling <ticotimo@gmail.com>
+
+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.
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..1a8c759b18
--- /dev/null
+++ b/meta-perl/conf/include/ptest-packagelists-meta-perl.inc
@@ -0,0 +1,50 @@
+#
+# 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 \
+ libextutils-config-perl \
+ libhtml-tagset-perl \
+ libmozilla-ca-perl \
+ libstrictures-perl \
+ libterm-readkey-perl \
+ libtest-nowarnings-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-hmac-perl \
+ libdigest-sha1-perl \
+ libnet-dns-perl \
+ libnet-dns-sec-perl \
+ libnet-ldap-perl \
+ libencode-perl \
+ libextutils-installpaths-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 ece6dd05eb..98948fdc8d 100644
--- a/meta-perl/conf/layer.conf
+++ b/meta-perl/conf/layer.conf
@@ -7,7 +7,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
BBFILE_COLLECTIONS += "perl-layer"
BBFILE_PATTERN_perl-layer := "^${LAYERDIR}/"
-BBFILE_PRIORITY_perl-layer = "6"
+BBFILE_PRIORITY_perl-layer = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
@@ -15,4 +15,4 @@ LAYERVERSION_perl-layer = "1"
LAYERDEPENDS_perl-layer = "core openembedded-layer"
-LAYERSERIES_COMPAT_perl-layer = "sumo"
+LAYERSERIES_COMPAT_perl-layer = "mickledore"
diff --git a/meta-perl/recipes-core/images/meta-perl-base.bb b/meta-perl/recipes-core/images/meta-perl-base.bb
new file mode 100644
index 0000000000..2af10b218c
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-base.bb
@@ -0,0 +1,7 @@
+SUMMARY = "meta-perl build test image"
+
+IMAGE_INSTALL = "packagegroup-core-boot"
+
+LICENSE = "MIT"
+
+inherit core-image
diff --git a/meta-perl/recipes-core/images/meta-perl-image.bb b/meta-perl/recipes-core/images/meta-perl-image.bb
new file mode 100644
index 0000000000..b8d3a76e6a
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-image.bb
@@ -0,0 +1,5 @@
+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-core/images/meta-perl-ptest-all-image.bb b/meta-perl/recipes-core/images/meta-perl-ptest-all-image.bb
new file mode 100644
index 0000000000..236043c22a
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-ptest-all-image.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}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-perl-ptest-image-'+x+':do_testimage' for x in d.getVar('PTESTS_META_PERL').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-perl-ptest-image-'+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-ptest-fast-image.bb b/meta-perl/recipes-core/images/meta-perl-ptest-fast-image.bb
new file mode 100644
index 0000000000..5d8afa08e7
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-ptest-fast-image.bb
@@ -0,0 +1,6 @@
+require meta-perl-ptest-all-image.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-ptest-image.bb b/meta-perl/recipes-core/images/meta-perl-ptest-image.bb
new file mode 100644
index 0000000000..7cca6402b2
--- /dev/null
+++ b/meta-perl/recipes-core/images/meta-perl-ptest-image.bb
@@ -0,0 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES += "ptest"
+
+require meta-perl-base.bb
+
+SUMMARY = "meta-perl build ptest image"
+
+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}"
+
+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-core/packagegroups/packagegroup-meta-perl.bb b/meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb
new file mode 100644
index 0000000000..187424b449
--- /dev/null
+++ b/meta-perl/recipes-core/packagegroups/packagegroup-meta-perl.bb
@@ -0,0 +1,106 @@
+SUMMARY = "Meta-perl packagegroup"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = "\
+ packagegroup-meta-perl \
+ packagegroup-meta-perl-extended \
+ ${@bb.utils.contains("DISTRO_FEATURES", "ptest", "packagegroup-meta-perl-ptest-packages", "", d)} \
+"
+
+RDEPENDS:packagegroup-meta-perl = "\
+ adduser \
+ 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 \
+ libdigest-sha1-perl \
+ libconfig-autoconf-perl \
+ libcrypt-openssl-guess-perl \
+ libcrypt-openssl-random-perl \
+ libcrypt-openssl-rsa-perl \
+ libhtml-parser-perl \
+ libhtml-tree-perl \
+ libhtml-tagset-perl \
+ libimport-into-perl \
+ libio-compress-perl \
+ libio-compress-lzma-perl \
+ libio-socket-ssl-perl \
+ libio-stringy-perl \
+ libipc-signal-perl \
+ libcurses-perl \
+ libmime-charset-perl \
+ libmime-types-perl \
+ libmodule-pluggable-perl \
+ libmodule-runtime-perl \
+ libmodule-build-tiny-perl \
+ libdata-hexdump-perl \
+ libnet-dns-perl \
+ libnet-libidn-perl \
+ libnet-dns-sec-perl \
+ libnet-ldap-perl \
+ libnet-ssleay-perl \
+ libnet-telnet-perl \
+ libproc-waitstat-perl \
+ libdevel-globaldestruction-perl \
+ libenv-perl \
+ libfile-slurp-perl \
+ libfile-slurper-perl \
+ libtext-iconv-perl \
+ libtext-diff-perl \
+ libtext-charwidth-perl \
+ libtext-wrapi18n-perl \
+ libxml-libxml-perl \
+ libxml-filter-buffertext-perl \
+ libxml-sax-writer-perl \
+ libextutils-config-perl \
+ libextutils-cppguess-perl \
+ libextutils-helpers-perl \
+ libextutils-installpaths-perl \
+ libextutils-parsexs-perl \
+ liblocale-gettext-perl \
+ libmoo-perl \
+ librole-tiny-perl \
+ libunix-statgrab \
+ libstrictures-perl \
+ libsub-exporter-progressive-perl \
+ libsub-uplevel-perl \
+ libterm-readkey-perl \
+ libtest-deep-perl \
+ libtest-harness-perl \
+ libtest-nowarnings-perl \
+ libtest-warn-perl \
+ libunicode-linebreak-perl \
+ po4a \
+"
+
+RDEPENDS:packagegroup-meta-perl-extended = "\
+ logcheck \
+ mime-construct \
+"
+
+RDEPENDS:packagegroup-meta-perl-ptest-packages = "\
+ libmime-types-perl-ptest \
+ libio-socket-ssl-perl-ptest \
+ libdata-hexdump-perl-ptest \
+ libauthen-sasl-perl-ptest \
+ libnet-dns-perl-ptest \
+ libnet-dns-sec-perl-ptest \
+ libnet-ssleay-perl-ptest \
+ libtest-harness-perl-ptest \
+ libdigest-sha1-perl-ptest \
+ libdigest-hmac-perl-ptest \
+"
+
+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.18.bb b/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb
deleted file mode 100644
index b8766a7c7f..0000000000
--- a/meta-perl/recipes-extended/logcheck/logcheck_1.3.18.bb
+++ /dev/null
@@ -1,79 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c93c0550bd3173f4504b2cbd8991e50b"
-
-SRC_URI = "git://git.debian.org/git/logcheck/logcheck.git \
- file://99_logcheck \
-"
-SRCREV = "0a5865d80fa34c55387a1917a3e6f885bcff7f1d"
-
-S = "${WORKDIR}/git"
-
-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.2.bb b/meta-perl/recipes-extended/logcheck/logcheck_1.4.2.bb
new file mode 100644
index 0000000000..1ad32b2dbb
--- /dev/null
+++ b/meta-perl/recipes-extended/logcheck/logcheck_1.4.2.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] = "0c651deb31dc201f1584ecea292b259932bae6e3e8cef846db3109e89a7f217e"
+
+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/mime-construct/mime-construct_1.11.bb b/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb
index 501f3bf140..a5d28265d7 100644
--- a/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb
+++ b/meta-perl/recipes-extended/mime-construct/mime-construct_1.11.bb
@@ -5,7 +5,7 @@ DESCRIPTION = "Constructs and (by default) mails MIME messages. \
like programs."
HOMEPAGE = "http://search.cpan.org/~rosch/mime-construct/mime-construct"
SECTION = "mail"
-LICENSE = "GPLv2+"
+LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://debian/copyright;md5=5e2e5da619ac8ef8c84767ccc4656e96"
SRC_URI = "${CPAN_MIRROR}/authors/id/R/RO/ROSCH/mime-construct-${PV}.tar.gz \
@@ -17,11 +17,11 @@ SRC_URI[sha256sum] = "4cd7bb61b51d41192d1498c1051aa6a4ccd75aeb09b71d2ec706a7084a
inherit cpan
-RDEPENDS_${PN} = "libmime-types-perl libproc-waitstat-perl msmtp \
+RDEPENDS:${PN} += "libmime-types-perl libproc-waitstat-perl msmtp \
perl-module-filehandle perl-module-mime-base64 perl-module-mime-quotedprint perl-module-posix \
"
-do_install_append() {
+do_install:append() {
#change the interpreter in file
sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native/perl -w|${bindir}/env perl|g" \
${D}/${bindir}/mime-construct
diff --git a/meta-perl/recipes-perl/adduser/adduser_3.116.bb b/meta-perl/recipes-perl/adduser/adduser_3.116.bb
deleted file mode 100644
index 363f5b117d..0000000000
--- a/meta-perl/recipes-perl/adduser/adduser_3.116.bb
+++ /dev/null
@@ -1,54 +0,0 @@
-SUMMARY = "a utility to add users/groups to the system"
-DESCRIPTION = "adduser, addgroup - add a user or group to the system"
-HOMEPAGE = "https://salsa.debian.org/debian/adduser"
-SECTION = "base/utils"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef"
-
-SRC_URI = "http://ftp.de.debian.org/debian/pool/main/a/${BPN}/${BPN}_${PV}.tar.xz \
- file://adduser-add-M-option-for-useradd.patch \
-"
-
-SRC_URI[md5sum] = "e042a5842b8f24312d6f5a99a1af8f2c"
-SRC_URI[sha256sum] = "72d811ad3ba17d2794b14d19acd1d6b57f9dd31d9250d51e786895dee2daeac0"
-
-inherit cpan-base update-alternatives
-
-S = "${WORKDIR}/${BPN}"
-
-do_install() {
- install -d ${D}${sbindir}
- install -m 0755 ${S}/adduser ${D}${sbindir}
- install -m 0755 ${S}/deluser ${D}${sbindir}
-
- install -D -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl/${@get_perl_version(d)}/Debian/AdduserCommon.pm
- sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/*
-
- install -d ${D}/${sysconfdir}
- install -m 0644 ${S}/*.conf ${D}/${sysconfdir}
-
- install -d ${D}${mandir}/man5
- install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5
- install -d ${D}${mandir}/man8
- install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8
- install -d ${D}${docdir}/${BPN}
- cp -rf ${S}/examples ${D}${docdir}/${BPN}
-}
-
-RDEPENDS_${PN} += "\
- shadow \
- perl-module-getopt-long \
- perl-module-overloading \
- perl-module-file-find \
- perl-module-file-temp \
-"
-
-ALTERNATIVE_${PN} = "adduser deluser addgroup delgroup"
-ALTERNATIVE_PRIORITY = "60"
-ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
-ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
-ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
-ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
-ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}"
-ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}"
diff --git a/meta-perl/recipes-perl/adduser/adduser_3.118.bb b/meta-perl/recipes-perl/adduser/adduser_3.118.bb
new file mode 100644
index 0000000000..3ac2211aa6
--- /dev/null
+++ b/meta-perl/recipes-perl/adduser/adduser_3.118.bb
@@ -0,0 +1,55 @@
+SUMMARY = "a utility to add users/groups to the system"
+DESCRIPTION = "adduser, addgroup - add a user or group to the system"
+HOMEPAGE = "https://salsa.debian.org/debian/adduser"
+SECTION = "base/utils"
+
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://debian/copyright;md5=caed49ab166f22ef31bf1127f558d0ef"
+
+SRC_URI = "https://launchpad.net/debian/+archive/primary/+sourcefiles/adduser/${PV}/${BPN}_${PV}.tar.xz \
+ file://adduser-add-M-option-for-useradd.patch \
+ file://0001-adduser-set-default-shell-with-sbin-nologin.patch \
+"
+
+SRC_URI[md5sum] = "44ba2475ebdaafc9613236bdda321c97"
+SRC_URI[sha256sum] = "3e9eea661c9aac6b2c791bfcc1de3a9c6a422d45c8f3d38ed417737ed3166ffc"
+
+S = "${WORKDIR}/${BPN}"
+
+inherit cpan-base update-alternatives
+
+do_install() {
+ install -d ${D}${sbindir}
+ install -m 0755 ${S}/adduser ${D}${sbindir}
+ install -m 0755 ${S}/deluser ${D}${sbindir}
+
+ install -D -m 0644 ${S}/AdduserCommon.pm ${D}${libdir}/perl5/${@get_perl_version(d)}/Debian/AdduserCommon.pm
+ sed -i -e "s/VERSION/${PV}/" ${D}${sbindir}/*
+
+ install -d ${D}/${sysconfdir}
+ install -m 0644 ${S}/*.conf ${D}/${sysconfdir}
+
+ install -d ${D}${mandir}/man5
+ install -m 0644 ${S}/doc/*.conf.5 ${D}${mandir}/man5
+ install -d ${D}${mandir}/man8
+ install -m 0644 ${S}/doc/*.8 ${D}${mandir}/man8
+ install -d ${D}${docdir}/${BPN}
+ cp -rf ${S}/examples ${D}${docdir}/${BPN}
+}
+
+RDEPENDS:${PN} += "\
+ shadow \
+ perl-module-getopt-long \
+ perl-module-overloading \
+ perl-module-file-find \
+ perl-module-file-temp \
+"
+
+ALTERNATIVE:${PN} = "adduser deluser addgroup delgroup"
+ALTERNATIVE_PRIORITY = "60"
+ALTERNATIVE_LINK_NAME[adduser] = "${sbindir}/adduser"
+ALTERNATIVE_LINK_NAME[deluser] = "${sbindir}/deluser"
+ALTERNATIVE_LINK_NAME[addgroup] = "${sbindir}/addgroup"
+ALTERNATIVE_LINK_NAME[delgroup] = "${sbindir}/delgroup"
+ALTERNATIVE_TARGET[addgroup] = "${sbindir}/adduser.${BPN}"
+ALTERNATIVE_TARGET[delgroup] = "${sbindir}/deluser.${BPN}"
diff --git a/meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch b/meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch
new file mode 100644
index 0000000000..91cc6bcba8
--- /dev/null
+++ b/meta-perl/recipes-perl/adduser/files/0001-adduser-set-default-shell-with-sbin-nologin.patch
@@ -0,0 +1,34 @@
+From 75e949bf80bf5e3e5bd8f81b258095e662b705c4 Mon Sep 17 00:00:00 2001
+From: Kai Kang <kai.kang@windriver.com>
+Date: Thu, 9 Jan 2020 13:51:28 +0800
+Subject: [PATCH] adduser: set default shell with /sbin/nologin
+
+Shell nologin whether provided by shadow or util-linux is installed to
+/sbin/nologin in oe-core. But the default shell of adduser is
+/usr/sbin/nologin and will fail to create a new user.
+
+Set the default shell with /sbin/nologin to fix the issue.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ adduser | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/adduser b/adduser
+index 0f24cc9..ab554d0 100755
+--- a/adduser
++++ b/adduser
+@@ -431,7 +431,7 @@ if ($action eq "addsysuser") {
+ printf gtx("Adding new user `%s' (UID %d) with group `%s' ...\n"),$new_name,$new_uid,$ingroup_name
+ if $verbose;
+ $home_dir = $special_home || &homedir($new_name, $ingroup_name);
+- $shell = $special_shell || '/usr/sbin/nologin';
++ $shell = $special_shell || '/sbin/nologin';
+ $undouser = $new_name;
+ my $useradd = &which('useradd');
+ &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
+--
+2.17.1
+
diff --git a/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb b/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb
index 4155fade97..d87df0974b 100644
--- a/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb
+++ b/meta-perl/recipes-perl/libalgorithm/libalgorithm-diff-perl_1.15.bb
@@ -9,7 +9,7 @@ differences. \
SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~nedkonz/Algorithm-Diff/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://lib/Algorithm/Diff.pm;beginline=406;endline=409;md5=d393b8ad3b8994b9d0ae9299b8a8a1ee"
SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEDKONZ/Algorithm-Diff-${PV}.tar.gz"
diff --git a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest b/meta-perl/recipes-perl/libauthen/libauthen-radius-perl/run-ptest
index f1c833e6ca..f1c833e6ca 100644
--- a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/run-ptest
+++ b/meta-perl/recipes-perl/libauthen/libauthen-radius-perl/run-ptest
diff --git a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch b/meta-perl/recipes-perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch
index 9798af497c..9798af497c 100644
--- a/meta-networking/recipes-devtools/perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch
+++ b/meta-perl/recipes-perl/libauthen/libauthen-radius-perl/test.pl-adjust-for-ptest.patch
diff --git a/meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb b/meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb
new file mode 100644
index 0000000000..ee7c4d7502
--- /dev/null
+++ b/meta-perl/recipes-perl/libauthen/libauthen-radius-perl_0.22.bb
@@ -0,0 +1,47 @@
+SUMMARY = "Authen::Radius - provide simple Radius client facilities"
+DESCRIPTION = "The Authen::Radius module provides a simple class that \
+ allows you to send/receive Radius requests/responses to/from a \
+ Radius server. \
+"
+
+HOMEPAGE = "http://search.cpan.org/~manowar/RadiusPerl"
+SECTION = "libs"
+
+LICENSE = "Artistic-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=78ab6ea0cba1f1ec1680ebb149e3bc11"
+
+DEPENDS = "perl"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MANOWAR/RadiusPerl-${PV}.tar.gz \
+ file://test.pl-adjust-for-ptest.patch \
+ file://run-ptest \
+"
+SRC_URI[md5sum] = "d1fe2d6ecf7ea99299e4e3a8f945aad8"
+SRC_URI[sha256sum] = "3b276506986ccaa4949d92b13ce053a0017ad11562a991cc753364923fe81ca7"
+
+S = "${WORKDIR}/Authen-Radius-${PV}"
+
+inherit cpan ptest
+
+do_install_ptest() {
+ install -m 0755 ${S}/test.pl ${D}${PTEST_PATH}
+}
+
+RDEPENDS:${PN} += "\
+ libdata-hexdump-perl \
+ perl-module-digest-md5 \
+ perl-module-data-dumper \
+ perl-module-io-select \
+ perl-module-io-socket \
+"
+RDEPENDS:${PN}-ptest += " \
+ ${@bb.utils.contains('PTEST_ENABLED', '1', 'freeradius', '', d)} \
+"
+
+BBCLASSEXTEND = "native"
+
+python() {
+ if bb.utils.contains('PTEST_ENABLED', '1', 'True', 'False', d) and \
+ 'networking-layer' not in d.getVar('BBFILE_COLLECTIONS').split():
+ raise bb.parse.SkipRecipe('ptest requires meta-networking to be present.')
+}
diff --git a/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb b/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb
index e658a5ff11..a9eec69502 100644
--- a/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb
+++ b/meta-perl/recipes-perl/libauthen/libauthen-sasl-perl_2.16.bb
@@ -5,11 +5,11 @@ protocols should be able to share."
HOMEPAGE = "http://search.cpan.org/dist/Authen-SASL/"
SECTION = "libs"
-LICENSE = "Artistic-1.0|GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://lib/Authen/SASL/Perl.pm;beginline=1;endline=3;md5=17123315bbcda19f484c07227594a609"
DEPENDS = "perl"
-RDEPENDS_${PN} = "libdigest-hmac-perl"
+RDEPENDS:${PN} = "libdigest-hmac-perl"
SRC_URI = "http://www.cpan.org/authors/id/G/GB/GBARR/Authen-SASL-${PV}.tar.gz \
file://run-ptest \
@@ -21,6 +21,8 @@ S = "${WORKDIR}/Authen-SASL-${PV}"
inherit cpan ptest
+export PERL_USE_UNSAFE_INC = "1"
+
do_install_ptest () {
cp -r ${B}/t ${D}${PTEST_PATH}
}
diff --git a/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb b/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb
deleted file mode 100644
index 2719811ce4..0000000000
--- a/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.46.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "Capture::Tiny - Capture STDOUT and STDERR from Perl, XS or external programs."
-DESCRIPTION = "Capture::Tiny provies a simple, portable way to capture \
-almost anything sent to STDOUT or STDERR, regardless of whether it comes \
-from Perl, from XS code or from an external program. Optionally, output can \
-be teed so that it is captured while being passed through to the original \
-filehandles. Yes, it even works on Windows (usually). Stop guessing which of \
-a dozen capturing modules to use in any particular situation and just use \
-this one."
-SECTION = "libs"
-
-HOMEPAGE = "http://search.cpan.org/~dagolden/Capture-Tiny/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=37a4918a30ace24395020e5b8c03b83f"
-
-SRCNAME = "Capture-Tiny"
-SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DAGOLDEN/${SRCNAME}-${PV}.tar.gz"
-SRC_URI[md5sum] = "d718af07729d26a793949ca6ba2580a7"
-SRC_URI[sha256sum] = "5d7a6a830cf7f2b2960bf8b8afaac16a537ede64f3023827acea5bd24ca77015"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit cpan
-
-RDEPENDS_${PN} = " perl-module-scalar-util \
- perl-module-io-file \
- perl-module-extutils-makemaker \
- perl-module-file-spec \
- perl-module-exporter \
- perl-module-carp \
- perl-module-test-more \
- perl-module-file-temp \
- perl-module-lib \
- perl-module-overloading \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.48.bb b/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.48.bb
new file mode 100644
index 0000000000..a51d327a31
--- /dev/null
+++ b/meta-perl/recipes-perl/libcapture/libcapture-tiny-perl_0.48.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Capture::Tiny - Capture STDOUT and STDERR from Perl, XS or external programs."
+DESCRIPTION = "Capture::Tiny provies a simple, portable way to capture \
+almost anything sent to STDOUT or STDERR, regardless of whether it comes \
+from Perl, from XS code or from an external program. Optionally, output can \
+be teed so that it is captured while being passed through to the original \
+filehandles. Yes, it even works on Windows (usually). Stop guessing which of \
+a dozen capturing modules to use in any particular situation and just use \
+this one."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~dagolden/Capture-Tiny/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=37a4918a30ace24395020e5b8c03b83f"
+
+SRCNAME = "Capture-Tiny"
+SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DAGOLDEN/${SRCNAME}-${PV}.tar.gz"
+SRC_URI[md5sum] = "f5d24083ad270f8326dd659dd83eeb54"
+SRC_URI[sha256sum] = "6c23113e87bad393308c90a207013e505f659274736638d8c79bac9c67cc3e19"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} = " \
+ perl-module-carp \
+ perl-module-exporter \
+ perl-module-extutils-makemaker \
+ perl-module-extutils-mm-unix \
+ perl-module-file-spec \
+ perl-module-file-temp \
+ perl-module-io-handle \
+ perl-module-lib \
+ perl-module-overloading \
+ perl-module-perlio \
+ perl-module-perlio-scalar \
+ perl-module-scalar-util \
+ perl-module-strict \
+ perl-module-test-more \
+ perl-module-warnings \
+"
+
+RDEPENDS:${PN}-ptest += "perl-module-perlio"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libcgi/libcgi-perl_4.38.bb b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.38.bb
deleted file mode 100644
index db16d8307d..0000000000
--- a/meta-perl/recipes-perl/libcgi/libcgi-perl_4.38.bb
+++ /dev/null
@@ -1,25 +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"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2e9769f0a2613a98bc7fce15dee0c533"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/L/LE/LEEJO/CGI-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "0aeb8563d533e7f83724ed068b5bfc37"
-SRC_URI[sha256sum] = "8c58f4a529bb92a914b22b7e64c5e31185c9854a4070a6dfad44fe5cc248e7d4"
-
-S = "${WORKDIR}/CGI-${PV}"
-
-inherit cpan
-
-RDEPENDS_${PN} += "\
- perl-module-deprecate \
- perl-module-if \
-"
-
-RPROVIDES_${PN} += "perl-module-cgi"
diff --git a/meta-perl/recipes-perl/libcgi/libcgi-perl_4.57.bb b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.57.bb
new file mode 100644
index 0000000000..dea5f7a453
--- /dev/null
+++ b/meta-perl/recipes-perl/libcgi/libcgi-perl_4.57.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] = "4e6ca634fe0d5621bb55b0fce5c1d08e6f643c65eecdfffbb4b344fd51b963ac"
+
+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.12.bb b/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.bb
deleted file mode 100644
index 3979b31421..0000000000
--- a/meta-perl/recipes-perl/libclass/libclass-method-modifiers-perl_2.12.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+"
-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] = "f55400c7a8134acf3657f8af89bdd7af"
-SRC_URI[sha256sum] = "e44c1073020bf55b8c97975ed77235fd7e2a6a56f29b5c702301721184e27ac8"
-
-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.204.bb b/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.204.bb
new file mode 100644
index 0000000000..1dc077d67e
--- /dev/null
+++ b/meta-perl/recipes-perl/libcompress/libcompress-raw-bzip2-perl_2.204.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] = "ee7b490e67e7e2a7a0e8c1e1aa29a9610066149f46b836921149ad1813f70c69"
+
+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.204.bb b/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.204.bb
new file mode 100644
index 0000000000..c4b6a4bb79
--- /dev/null
+++ b/meta-perl/recipes-perl/libcompress/libcompress-raw-lzma-perl_2.204.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] = "b226d0648da3e7309387cd8d9cf629353593fd08bac29533f2559659ef7aac1a"
+
+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.204.bb b/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.204.bb
new file mode 100644
index 0000000000..e0aa2e9c25
--- /dev/null
+++ b/meta-perl/recipes-perl/libcompress/libcompress-raw-zlib-perl_2.204.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] = "f161f4297efadbed79c8b096a75951784fc5ccd3170bd32866a19e5c6876d13f"
+
+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.29.bb b/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.29.bb
new file mode 100644
index 0000000000..92d9bac0e4
--- /dev/null
+++ b/meta-perl/recipes-perl/libconfig-tiny/libconfig-tiny-perl_2.29.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] = "3de79b0ea03a8d6a93e9d9128fe845fb556222b14699a4f6f0d5ca057ae3333b"
+
+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
new file mode 100644
index 0000000000..5db0bb4269
--- /dev/null
+++ b/meta-perl/recipes-perl/libconfig/libconfig-autoconf-perl_0.319.bb
@@ -0,0 +1,41 @@
+# Copyright (C) 2020 Jens Rehsack <sno@netbsd.org>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "A module to implement some of AutoConf macros in pure perl"
+DESCRIPTION = "Config::AutoConf is intended to provide the same opportunities to Perl \
+developers as GNU Autoconf <http://www.gnu.org/software/autoconf/> does for \
+Shell developers."
+
+HOMEPAGE= "https://metacpan.org/release/Config-AutoConf"
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+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/R/RE/REHSACK/Config-AutoConf-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "eeeab8cc93eef7dd2e2c343ecdf247b7"
+SRC_URI[sha256sum] = "304f66cc2653264c0fe127d21669e86d3d18cd72f2574d8f5131beec31a0a33e"
+RDEPENDS:${PN} += "libcapture-tiny-perl"
+RDEPENDS:${PN} += "perl-module-base"
+RDEPENDS:${PN} += "perl-module-carp"
+RDEPENDS:${PN} += "perl-module-config"
+RDEPENDS:${PN} += "perl-module-constant"
+RDEPENDS:${PN} += "perl-module-file-basename"
+RDEPENDS:${PN} += "perl-module-file-spec"
+RDEPENDS:${PN} += "perl-module-file-temp"
+RDEPENDS:${PN} += "perl-module-extutils-cbuilder"
+RDEPENDS:${PN} += "perl-module-extutils-cbuilder-platform-unix"
+RDEPENDS:${PN} += "perl-module-scalar-util"
+RDEPENDS:${PN} += "perl-module-strict"
+RDEPENDS:${PN} += "perl-module-text-parsewords"
+RDEPENDS:${PN} += "perl-module-warnings"
+RRECOMMENDS:${PN} += "libfile-slurper-perl"
+
+S = "${WORKDIR}/Config-AutoConf-${PV}"
+
+inherit cpan ptest-perl
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.15.bb b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.15.bb
new file mode 100644
index 0000000000..d64fc296e2
--- /dev/null
+++ b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-guess-perl_0.15.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Guess OpenSSL include path"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea914cc2718e8d53bd7744d96e66c03c"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Guess-${PV}.tar.gz "
+
+SRC_URI[sha256sum] = "1c5033381819fdb4c9087dd291b90ec70e7810d31d57eade9b388eccfd70386d"
+
+DEPENDS += "openssl"
+
+RDEPENDS:${PN} = "\
+ perl-module-config \
+ perl-module-exporter \
+ perl-module-extutils-mm \
+ perl-module-extutils-mm-unix \
+ perl-module-file-spec \
+ perl-module-symbol \
+ perl-module-strict \
+ perl-module-warnings \
+"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
+
+S = "${WORKDIR}/Crypt-OpenSSL-Guess-${PV}"
+
+inherit cpan ptest-perl
+
+BBCLASSEXTEND = "native"
+
+# for backwards compatibility
+PROVIDES += "libcrypt-openssl-guess"
+
+RDEPENDS:${PN}-ptest += "\
+ perl-module-test-more \
+"
diff --git a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb
deleted file mode 100644
index 8456e313df..0000000000
--- a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.11.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Crypt Openssl Random cpan module"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=089c18d635ae273e1727ec385e64063b"
-
-SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Random-${PV}.tar.gz "
-SRC_URI[md5sum] = "5d71337503e0356ce1ce1481504e5885"
-SRC_URI[sha256sum] = "bb8c81c6a39b9b13a22d818ee9a746242f136f0fadceb6b9776ae615e7524c7a"
-
-S = "${WORKDIR}/Crypt-OpenSSL-Random-${PV}"
-
-DEPENDS += " openssl \
-"
-inherit cpan
diff --git a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.15.bb b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.15.bb
new file mode 100644
index 0000000000..9bfb631d30
--- /dev/null
+++ b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-random-perl_0.15.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Crypt::OpenSSL::Random - OpenSSL/LibreSSL pseudo-random number generator access"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=089c18d635ae273e1727ec385e64063b"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-Random-${PV}.tar.gz "
+SRC_URI[md5sum] = "bcde8d5a822c91376deda3c4f0c75fbe"
+SRC_URI[sha256sum] = "f0876faa1ba3111e39b86aa730c603211eff2905e460c72a57b61e8cf475cef4"
+
+S = "${WORKDIR}/Crypt-OpenSSL-Random-${PV}"
+
+DEPENDS += " \
+ openssl \
+ libcrypt-openssl-guess-perl-native \
+"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -L${STAGING_BASELIBDIR} -lcrypto'"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += "\
+ perl-module-exporter \
+ perl-module-strict \
+ perl-module-vars \
+ perl-module-xsloader \
+"
+
+RDEPENDS:${PN}-ptest += "\
+ perl-module-file-copy \
+ perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb
deleted file mode 100644
index f0c610f3ae..0000000000
--- a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.28.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Crypt Openssl RSA cpan module"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=385c55653886acac3821999a3ccd17b3"
-
-SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-RSA-${PV}.tar.gz "
-
-SRC_URI[md5sum] = "86217a5036fc63779c30420b5fd84129"
-SRC_URI[sha256sum] = "5357f977464bb3a8184cf2d3341851a10d5515b4b2b0dfb88bf78995c0ded7be"
-
-DEPENDS += "openssl"
-
-RDEPENDS_${PN}="libcrypt-openssl-random-perl"
-
-EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
-
-S = "${WORKDIR}/Crypt-OpenSSL-RSA-${PV}"
-
-inherit cpan
-
-do_compile() {
- export OTHERLDFLAGS='-Wl,-rpath'
- cpan_do_compile
-}
diff --git a/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.33.bb b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.33.bb
new file mode 100644
index 0000000000..aa8d138f2c
--- /dev/null
+++ b/meta-perl/recipes-perl/libcrypt/libcrypt-openssl-rsa-perl_0.33.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Crypt Openssl RSA cpan module"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a67ceecc5d9a91a5a0d003ba50c26346"
+
+SRC_URI = "http://www.cpan.org/modules/by-module/Crypt/Crypt-OpenSSL-RSA-${PV}.tar.gz \
+"
+
+SRC_URI[sha256sum] = "bdbe630f6d6f540325746ad99977272ac8664ff81bd19f0adaba6d6f45efd864"
+
+DEPENDS += "libcrypt-openssl-guess-perl-native openssl"
+
+RDEPENDS:${PN} = " \
+ libcrypt-openssl-random-perl \
+ perl-module-autoloader \
+ perl-module-carp \
+ perl-module-strict \
+ perl-module-warnings \
+ perl-module-xsloader \
+"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_DIR_TARGET}${base_libdir} -lcrypto'"
+
+S = "${WORKDIR}/Crypt-OpenSSL-RSA-${PV}"
+
+inherit cpan ptest-perl
+
+do_compile() {
+ export OTHERLDFLAGS='-Wl,-rpath'
+ cpan_do_compile
+}
+
+RDEPENDS:${PN}-ptest = " \
+ ${PN} \
+ perl-module-file-copy \
+ perl-module-test \
+ perl-module-test-more \
+"
diff --git a/meta-perl/recipes-perl/libcurses/libcurses-perl/0001-testtyp.c-Use-proper-prototype-for-main-function.patch b/meta-perl/recipes-perl/libcurses/libcurses-perl/0001-testtyp.c-Use-proper-prototype-for-main-function.patch
new file mode 100644
index 0000000000..ab5af3fa8c
--- /dev/null
+++ b/meta-perl/recipes-perl/libcurses/libcurses-perl/0001-testtyp.c-Use-proper-prototype-for-main-function.patch
@@ -0,0 +1,40 @@
+From 01d0904a987ec3d8850ae3b54252c9d3bbe75962 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 30 Aug 2022 15:43:42 -0700
+Subject: [PATCH] testtyp.c: Use proper prototype for main function
+
+Newer compilers like clang-15+ will complain about the prototype
+vigorously, and the test will end up failing for this reason instead of
+real check it should be failing/passing for.
+
+Fixes
+testint.c:11:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
+main() {
+^
+int
+1 error generated.
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ testtyp.c | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/testtyp.c b/testtyp.c
+index 949c3d4..4042f73 100644
+--- a/testtyp.c
++++ b/testtyp.c
+@@ -7,7 +7,8 @@
+ #define _XOPEN_SOURCE_EXTENDED 1 /* We expect wide character functions */
+
+ #include "c-config.h"
+-
+-main() {
++int
++main(int argc, char *argv[]) {
+ typedef SYM c_sym_t;
++ return 0;
+ }
+--
+2.37.3
+
diff --git a/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb b/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb
deleted file mode 100644
index 782b973b58..0000000000
--- a/meta-perl/recipes-perl/libcurses/libcurses-perl_1.36.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "lib-curses provides an interface between Perl programs and \
-the curses library."
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-
-LIC_FILES_CHKSUM = "file://README;beginline=26;endline=30;md5=0b37356c5e9e28080a3422d82af8af09"
-
-DEPENDS += "perl ncurses "
-
-SRC_URI = "http://www.cpan.org/authors/id/G/GI/GIRAFFED/Curses-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "389c70ee5530b887f8e5dc1303cb5294"
-SRC_URI[sha256sum] = "a414795ba031c5918c70279fe534fee594a96ec4b0c78f44ce453090796add64"
-
-S = "${WORKDIR}/Curses-${PV}"
-
-EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR} LIBS=-L${STAGING_LIBDIR}"
-
-inherit cpan
-
-do_compile() {
- export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
- cpan_do_compile
-}
-
diff --git a/meta-perl/recipes-perl/libcurses/libcurses-perl_1.41.bb b/meta-perl/recipes-perl/libcurses/libcurses-perl_1.41.bb
new file mode 100644
index 0000000000..421823d9cd
--- /dev/null
+++ b/meta-perl/recipes-perl/libcurses/libcurses-perl_1.41.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "lib-curses provides an interface between Perl programs and \
+the curses library."
+
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;beginline=26;endline=30;md5=0b37356c5e9e28080a3422d82af8af09"
+
+DEPENDS += "perl ncurses "
+
+SRC_URI = "http://www.cpan.org/authors/id/G/GI/GIRAFFED/Curses-${PV}.tar.gz \
+ file://0001-testtyp.c-Use-proper-prototype-for-main-function.patch \
+ "
+
+SRC_URI[sha256sum] = "fb9efea8c7b5ed5f8ea5dee49d35252accfc05ee6e75cb9a37ab7c847cd261d7"
+
+S = "${WORKDIR}/Curses-${PV}"
+
+EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR} LIBS=-L${STAGING_LIBDIR} TEST_SYMS_OPTS=-v"
+
+# enable NCURSES_WIDECHAR=1 only if ENABLE_WIDEC has not been explicitly disabled (e.g. by the distro config).
+# When compiling against the ncurses library, NCURSES_WIDECHAR needs to explicitly set to 0 in this case.
+CFLAGS:append:libc-musl = "${@' -DNCURSES_WIDECHAR=1' if bb.utils.to_boolean((d.getVar('ENABLE_WIDEC') or 'True')) else ' -DNCURSES_WIDECHAR=0'} -DNCURSES_INTERNALS"
+
+inherit cpan
+
+do_compile() {
+ export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
+ cpan_do_compile
+}
+
diff --git a/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb b/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
index 6ab5a42043..4493a7e5e5 100644
--- a/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
+++ b/meta-perl/recipes-perl/libdata/libdata-hexdump-perl_0.02.bb
@@ -23,7 +23,7 @@ SRC_URI[sha256sum] = "1a9d843e7f667c1c6f77c67af5d77e7462ff23b41937cb17454d03535c
S = "${WORKDIR}/Data-HexDump-${PV}"
-inherit cpan ptest
+inherit cpan ptest update-alternatives
do_install_ptest () {
install -d ${D}${PTEST_PATH}/t
@@ -31,3 +31,8 @@ do_install_ptest () {
}
BBCLASSEXTEND = "native"
+
+ALTERNATIVES_PRIORITY = "100"
+ALTERNATIVE:${PN} = "hexdump"
+ALTERNATIVE_LINK_NAME[hexdump] = "${bindir}/hexdump"
+
diff --git a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb
deleted file mode 100644
index c72e536deb..0000000000
--- a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.54.bb
+++ /dev/null
@@ -1,41 +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 = "http://search.cpan.org/~ishigaki/DBD-SQLite/"
-
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-DEPENDS += "libdbi-perl-native"
-RDEPENDS_${PN} += "libdbi-perl \
- sqlite3 \
- perl-module-constant \
- perl-module-locale \
- perl-module-tie-hash \
-"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1726e2117494ba3e13e1c3d93f795360"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/I/IS/ISHIGAKI/DBD-SQLite-${PV}.tar.gz \
- file://sqlite-perl-test.pl \
-"
-
-SRC_URI[md5sum] = "8f835ddacb9a4a92a52bbe2d24d18a8e"
-SRC_URI[sha256sum] = "3929a6dbd8d71630f0cb57f85dcef9588cd7ac4c9fa12db79df77b9d3a4d7269"
-
-UPSTREAM_CHECK_REGEX = "DBD\-SQLite\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/DBD-SQLite-${PV}"
-
-inherit cpan
-
-BBCLASSEXTEND = "native"
-
-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
-}
-
diff --git a/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.72.bb b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.72.bb
new file mode 100644
index 0000000000..975034a07d
--- /dev/null
+++ b/meta-perl/recipes-perl/libdb/libdbd-sqlite-perl_1.72.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] = "5ca41e61eb52b52bd862a3088b912a75fe70910ac789b9a9983e0a449e94f551"
+
+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/libdevel/libdevel-globaldestruction-perl_0.14.bb b/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb
index 0ce242454f..1dcecd0dcf 100644
--- a/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb
+++ b/meta-perl/recipes-perl/libdevel/libdevel-globaldestruction-perl_0.14.bb
@@ -6,7 +6,7 @@ SECTION = "libs"
HOMEPAGE = "https://metacpan.org/pod/Devel-GlobalDestruction/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=53;endline=55;md5=935dadb9423774f53548e5cd5055d41a"
SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Devel-GlobalDestruction-${PV}.tar.gz"
@@ -17,7 +17,7 @@ S = "${WORKDIR}/Devel-GlobalDestruction-${PV}"
inherit cpan
-RDEPENDS_${PN} = " libsub-exporter-progressive-perl \
+RDEPENDS:${PN} = " libsub-exporter-progressive-perl \
"
BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb b/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb
index 8f1c98c67a..43b7f4d5a9 100644
--- a/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb
+++ b/meta-perl/recipes-perl/libdigest/libdigest-hmac-perl_1.03.bb
@@ -3,10 +3,10 @@ DESCRIPTION = "Keyed-Hashing for Message Authentication"
HOMEPAGE = "http://search.cpan.org/~gaas/Digest-HMAC-1.03/"
SECTION = "libs"
-LICENSE = "Artistic-1.0|GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=13;endline=17;md5=da980cdc026faa065e5d5004115334e6"
-RDEPENDS_${PN} = "libdigest-sha1-perl perl-module-extutils-makemaker perl-module-digest-md5"
+RDEPENDS:${PN} = "libdigest-sha1-perl perl-module-extutils-makemaker perl-module-digest-md5"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-HMAC-${PV}.tar.gz \
file://run-ptest \
diff --git a/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb b/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb
index 0371ea68cd..df89c9bcdb 100644
--- a/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb
+++ b/meta-perl/recipes-perl/libdigest/libdigest-sha1-perl_2.13.bb
@@ -3,7 +3,7 @@ DESCRIPTION = "Digest::SHA1 - Perl interface to the SHA-1 algorithm"
HOMEPAGE = "http://search.cpan.org/~gaas/Digest-SHA1-2.13/"
SECTION = "libs"
-LICENSE = "Artistic-1.0|GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=10;endline=14;md5=ff5867ebb4bc1103a7a416aef2fce00a"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/G/GA/GAAS/Digest-SHA1-${PV}.tar.gz \
@@ -22,4 +22,4 @@ do_install_ptest () {
BBCLASSEXTEND="native"
-FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Digest/SHA1/.debug/"
+FILES:${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Digest/SHA1/.debug/"
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
index 748f746a04..ae193dbc6a 100644
--- a/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
+++ b/meta-perl/recipes-perl/libencode/libencode-locale-perl_1.05.bb
@@ -2,7 +2,7 @@ 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+"
+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"
@@ -13,7 +13,7 @@ S = "${WORKDIR}/Encode-Locale-${PV}"
inherit cpan
-RDEPENDS_${PN} += "libencode-perl \
+RDEPENDS:${PN} += "libencode-perl \
libencode-alias-perl \
perl-module-base \
"
diff --git a/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb b/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb
deleted file mode 100644
index 9861c56e05..0000000000
--- a/meta-perl/recipes-perl/libencode/libencode-perl_2.94.bb
+++ /dev/null
@@ -1,68 +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+"
-LIC_FILES_CHKSUM = "file://META.json;md5=d8e909447b983532b2b460c830e7a7e4"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/DANKOGAI/Encode-${PV}.tar.gz"
-SRC_URI[md5sum] = "f995e0eb9e52d01ed57abe835bf3ccb6"
-SRC_URI[sha256sum] = "acb3a4af5e3ee38f94de8baa7454e0b836a0649e7ac4180f28dfca439ad60cff"
-
-UPSTREAM_CHECK_REGEX = "Encode\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
-
-S = "${WORKDIR}/Encode-${PV}"
-
-inherit cpan
-
-# 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"
-
-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 \
- "
-
-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
new file mode 100644
index 0000000000..79934e2229
--- /dev/null
+++ b/meta-perl/recipes-perl/libencode/libencode-perl_3.19.bb
@@ -0,0 +1,109 @@
+# 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}"
+
+#EXTRA_CPANFLAGS:append = "PERL=../recipe-sysroot-native/usr/bin/perl-native/perl"
+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:append() {
+ sed -i -e "s|${STAGING_BINDIR_NATIVE}/perl-native||g" ${S}/*/*.exh ${S}/*.exh
+}
+
+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/libenv/libenv-perl_1.04.bb b/meta-perl/recipes-perl/libenv/libenv-perl_1.04.bb
new file mode 100644
index 0000000000..79fff9d520
--- /dev/null
+++ b/meta-perl/recipes-perl/libenv/libenv-perl_1.04.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Perl module that imports environment variables as scalars or arrays"
+DESCRIPTION = "Perl maintains environment variables in a special hash named %ENV. \
+For when this access method is inconvenient, the Perl module Env allows environment \
+variables to be treated as scalar or array variables."
+
+HOMEPAGE = "http://search.cpan.org/~flora/Env/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=76c1cbf18db56b3340d91cb947943bd3"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/F/FL/FLORA/Env-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "fdba5c0690e66972c96fee112cf5f25c"
+SRC_URI[sha256sum] = "d94a3d412df246afdc31a2199cbd8ae915167a3f4684f7b7014ce1200251ebb0"
+
+S = "${WORKDIR}/Env-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb b/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb
index e93d388e9c..a58d96582e 100644
--- a/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb
+++ b/meta-perl/recipes-perl/libextutils/libextutils-config-perl_0.008.bb
@@ -4,7 +4,7 @@ SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Config/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1932ab4d8b84c25fd7967aa18088e57e"
SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Config-${PV}.tar.gz"
@@ -13,10 +13,11 @@ SRC_URI[sha256sum] = "ae5104f634650dce8a79b7ed13fb59d67a39c213a6776cfdaa3ee749e6
S = "${WORKDIR}/ExtUtils-Config-${PV}"
-inherit cpan
+inherit cpan ptest-perl
-RDEPENDS_${PN} = " perl-module-extutils-makemaker \
+RDEPENDS:${PN} = " perl-module-extutils-makemaker \
perl-module-data-dumper \
+ perl-module-ipc-open3 \
perl-module-test-more \
perl-module-file-temp \
"
diff --git a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb
deleted file mode 100644
index 99df6f33ff..0000000000
--- a/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.12.bb
+++ /dev/null
@@ -1,37 +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+"
-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[md5sum] = "28be49072585b25df87e54180f741a4d"
-SRC_URI[sha256sum] = "31c47b5b15e3e9fd5ae7b35881a0fffd26a2983b241e7e3a1bc340d6d446186b"
-
-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.26.bb b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.26.bb
new file mode 100644
index 0000000000..04a29fdc21
--- /dev/null
+++ b/meta-perl/recipes-perl/libextutils/libextutils-cppguess-perl_0.26.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] = "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-helpers-perl_0.026.bb b/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb
index c027250b00..8534822e62 100644
--- a/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb
+++ b/meta-perl/recipes-perl/libextutils/libextutils-helpers-perl_0.026.bb
@@ -4,7 +4,7 @@ SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-Helpers/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=223c04045664f72c3a6556462612bddd"
SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-Helpers-${PV}.tar.gz"
@@ -15,7 +15,7 @@ S = "${WORKDIR}/ExtUtils-Helpers-${PV}"
inherit cpan
-RDEPENDS_${PN} = " perl-module-file-copy \
+RDEPENDS:${PN} = " perl-module-file-copy \
perl-module-extutils-makemaker \
perl-module-exporter \
perl-module-carp \
diff --git a/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb b/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb
deleted file mode 100644
index 6eb434a95e..0000000000
--- a/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.011.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "ExtUtils::InstallPaths - Build.PL install path logic made easy"
-DESCRIPTION = "This module tries to make install path resolution as easy \
-as possible."
-SECTION = "libs"
-
-HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-InstallPaths/"
-
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b6fa54d873ce6bcf4809ea88bdf97769"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-${PV}.tar.gz"
-SRC_URI[md5sum] = "9c75894c3c8c899ab6bfafc5eaa97999"
-SRC_URI[sha256sum] = "7609fa048cdcf1451cad5b1d7d494f30e3d5bad0672d15404f1ea60e1df0067c"
-
-S = "${WORKDIR}/ExtUtils-InstallPaths-${PV}"
-
-inherit cpan
-
-RDEPENDS_${PN} = " perl-module-extutils-makemaker \
- perl-module-data-dumper \
- perl-module-test-more \
- perl-module-file-temp \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.012.bb b/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.012.bb
new file mode 100644
index 0000000000..07dab4e161
--- /dev/null
+++ b/meta-perl/recipes-perl/libextutils/libextutils-installpaths-perl_0.012.bb
@@ -0,0 +1,34 @@
+SUMMARY = "ExtUtils::InstallPaths - Build.PL install path logic made easy"
+DESCRIPTION = "This module tries to make install path resolution as easy \
+as possible."
+SECTION = "libs"
+
+HOMEPAGE = "http://search.cpan.org/~leont/ExtUtils-InstallPaths/"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b6fa54d873ce6bcf4809ea88bdf97769"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-${PV}.tar.gz"
+SRC_URI[md5sum] = "9a8d66aab1ffec98ea260faf03ac612b"
+SRC_URI[sha256sum] = "84735e3037bab1fdffa3c2508567ad412a785c91599db3c12593a50a1dd434ed"
+
+S = "${WORKDIR}/ExtUtils-InstallPaths-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} = " \
+ libextutils-config-perl \
+ perl-module-bytes \
+ perl-module-data-dumper \
+ perl-module-extutils-makemaker \
+ perl-module-file-temp \
+ perl-module-test-more \
+"
+
+RDEPENDS:${PN}-ptest = " \
+ ${PN} \
+ perl-module-file-spec-functions \
+ perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb b/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb
index 33707a0af6..43b5b60ef6 100644
--- a/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb
+++ b/meta-perl/recipes-perl/libextutils/libextutils-parsexs-perl_3.35.bb
@@ -9,7 +9,7 @@ SECTION = "libs"
HOMEPAGE = "http://metapan.org/release/ExtUtils-ParseXS/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=120;endline=129;md5=eb858f0e3b1b0bee0c05b86a474ae2b6"
SRCNAME = "ExtUtils-ParseXS"
@@ -21,7 +21,7 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit cpan
-RDEPENDS_${PN} = " perl-module-carp \
+RDEPENDS:${PN} += " perl-module-carp \
perl-module-cwd \
perl-module-dynaloader \
perl-module-extutils-cbuilder \
@@ -33,7 +33,7 @@ RDEPENDS_${PN} = " perl-module-carp \
perl-module-test-more \
"
-RPROVIDES_${PN} += " libextutils-parsexs-constants-perl \
+RPROVIDES:${PN} += " libextutils-parsexs-constants-perl \
libextutils-parsexs-countlines-perl \
libextutils-parsexs-eval-perl \
libextutils-parsexs-utilities-perl \
diff --git a/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb b/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb
index 945b4c1c87..1012ae952e 100644
--- a/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb
+++ b/meta-perl/recipes-perl/libfile/libfile-slurp-perl_9999.19.bb
@@ -4,7 +4,7 @@ DESCRIPTION = "This module provides subroutines to read or write \
reading the list of filenames in a directory. \
"
SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=37;endline=41;md5=255fbd5f98a90d51d9908d31271ae4d4"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/U/UR/URI/File-Slurp-${PV}.tar.gz"
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/libhtml/libhtml-parser-perl_3.72.bb b/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb
index e202de05a7..216d7c4136 100644
--- a/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb
+++ b/meta-perl/recipes-perl/libhtml/libhtml-parser-perl_3.72.bb
@@ -1,7 +1,7 @@
DESCRIPTION = "This package contains the Parser.pm module with friends."
HOMEPAGE = "https://metacpan.org/release/HTML-Parser"
SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;md5=b0459e4426b94753b9a9b8a15f1223b8"
@@ -16,10 +16,30 @@ S = "${WORKDIR}/HTML-Parser-${PV}"
EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-inherit cpan
+inherit cpan ptest-perl
do_compile() {
export LIBC="$(find ${STAGING_DIR_TARGET}/${base_libdir}/ -name 'libc-*.so')"
cpan_do_compile
}
+
+RDEPENDS:${PN} += "\
+ perl-module-exporter \
+ perl-module-strict \
+ perl-module-vars \
+ perl-module-xsloader \
+ libhtml-tagset-perl \
+"
+
+RDEPENDS:${PN}-ptest += "\
+ liburi-perl \
+ perl-module-config \
+ perl-module-file-spec \
+ perl-module-filehandle \
+ perl-module-io-file \
+ perl-module-selectsaver \
+ perl-module-test \
+ perl-module-test-more \
+"
+
BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libhtml/libhtml-tagset-perl_3.20.bb b/meta-perl/recipes-perl/libhtml/libhtml-tagset-perl_3.20.bb
new file mode 100644
index 0000000000..c871b97c39
--- /dev/null
+++ b/meta-perl/recipes-perl/libhtml/libhtml-tagset-perl_3.20.bb
@@ -0,0 +1,29 @@
+SUMMARY = "HTML::Tageset - data tables useful in parsing HTML"
+DESCRIPTION = "This module contains several data tables useful in various \
+kinds of HTML parsing operations."
+HOMEPAGE = "https://metacpan.org/release/HTML-Tagset"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+
+LIC_FILES_CHKSUM = "file://README;beginline=62;endline=66;md5=aa91eed6adfe182d2af676954f06a7c9"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/P/PE/PETDANCE/HTML-Tagset-${PV}.tar.gz"
+SRC_URI[md5sum] = "d2bfa18fe1904df7f683e96611e87437"
+SRC_URI[sha256sum] = "adb17dac9e36cd011f5243881c9739417fd102fce760f8de4e9be4c7131108e2"
+
+S = "${WORKDIR}/HTML-Tagset-${PV}"
+
+
+inherit cpan ptest-perl
+
+
+RDEPENDS:${PN} += "perl-module-strict perl-module-vars"
+
+RDEPENDS:${PN}-ptest += "perl-module-test"
+
+do_install:prepend() {
+ # requires "-T" (taint) command line option
+ rm -rf ${B}/t/pod.t
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb b/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb
index 56dc19c85a..d2c151bf5c 100644
--- a/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb
+++ b/meta-perl/recipes-perl/libhtml/libhtml-tree-perl_5.03.bb
@@ -8,7 +8,7 @@ SECTION = "libs"
HOMEPAGE = "http://www.cpan.org/authors/id/C/CJ/CJM/HTML-Tree-${PV}.readme"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3eb57a8958cae73cb65e7d0c26339242"
SRC_URI = "${CPAN_MIRROR}/authors/id/C/CJ/CJM/HTML-Tree-${PV}.tar.gz \
@@ -21,16 +21,18 @@ S = "${WORKDIR}/HTML-Tree-${PV}"
inherit cpan_build
+export PERL_USE_UNSAFE_INC = "1"
+
DEPENDS += "libmodule-build-perl-native \
"
-RPROVIDES_${PN} = " libhtml-element-perl \
+RPROVIDES:${PN} = " libhtml-element-perl \
libhtml-tree-assubs-perl \
libhtml-tree-perl \
libhtml-treebuilder-perl \
"
-RDEPENDS_${PN} = " perl-module-b \
+RDEPENDS:${PN} = " perl-module-b \
perl-module-base \
perl-module-strict \
perl-module-warnings \
diff --git a/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb b/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb
index af08d630ac..e88d60d13a 100644
--- a/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb
+++ b/meta-perl/recipes-perl/libimport/libimport-into-perl_1.002004.bb
@@ -13,7 +13,7 @@ SECTION = "libs"
HOMEPAGE = "https://metacpan.org/pod/Import-Into/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=209;endline=223;md5=3cf363f1e405dea6db2c6cd0ef23680c"
SRC_URI = "${CPAN_MIRROR}/authors/id/E/ET/ETHER/Import-Into-${PV}.tar.gz"
@@ -24,7 +24,7 @@ S = "${WORKDIR}/Import-Into-${PV}"
inherit cpan
-RDEPENDS_${PN} = " libmodule-runtime-perl \
+RDEPENDS:${PN} = " libmodule-runtime-perl \
perl-module-strict \
perl-module-warnings \
"
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.204.bb b/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.204.bb
new file mode 100644
index 0000000000..13c17b9bba
--- /dev/null
+++ b/meta-perl/recipes-perl/libio/libio-compress-lzma-perl_2.204.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] = "1e7a4c4f4e665434df59246b19d168b08af2f1aeebaa08937bd69ad3e5e319c8"
+
+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.204.bb b/meta-perl/recipes-perl/libio/libio-compress-perl_2.204.bb
new file mode 100644
index 0000000000..8d4aec709e
--- /dev/null
+++ b/meta-perl/recipes-perl/libio/libio-compress-perl_2.204.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] = "617784cb8543778681341b18fc67b74735e8b494f32f00814dd22f68ac6af018"
+
+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.054.bb b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.054.bb
deleted file mode 100644
index ea78bc4e00..0000000000
--- a/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.054.bb
+++ /dev/null
@@ -1,47 +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|GPLv1+"
-LIC_FILES_CHKSUM = "file://META.yml;beginline=11;endline=11;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[md5sum] = "e1b412e28d107c716e7ca637e2b7f8bd"
-SRC_URI[sha256sum] = "02ea04e9a336a7d3ca9aa604c0c5b5aaf3efa513cefecfc73cc79ceeb5131e4b"
-
-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.078.bb b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.078.bb
new file mode 100644
index 0000000000..ff2559b8a7
--- /dev/null
+++ b/meta-perl/recipes-perl/libio/libio-socket-ssl-perl_2.078.bb
@@ -0,0 +1,56 @@
+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] = "4cf83737a72b0970948b494bc9ddab7f725420a0ca0152d25c7e48ef8fa2b6a1"
+
+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}/certs ${D}${docdir}/${PN}/
+ cp -pRP ${S}/example ${D}${docdir}/${PN}/
+}
+
+RDEPENDS:${PN}-ptest += "\
+ libnet-libidn-perl \
+ 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}/certs ${D}${PTEST_PATH}
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb b/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb
index 0e566c0f23..b745939234 100644
--- a/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb
+++ b/meta-perl/recipes-perl/libio/libio-stringy-perl_2.111.bb
@@ -5,7 +5,7 @@ filehandles; in particular, IO::Scalar, IO::ScalarArray, and IO::Lines."
HOMEPAGE = "http://www.zeegee.com/products/IO-stringy/"
SECTION = "devel"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://COPYING;md5=01406e4ff2e60d88d42ef1caebdd0011"
@@ -17,7 +17,7 @@ S = "${WORKDIR}/IO-stringy-${PV}"
inherit cpan
-RPROVIDES_${PN} += " libio-atomicfile-perl \
+RPROVIDES:${PN} += " libio-atomicfile-perl \
libio-innerfile-perl \
libio-lines-perl \
libio-scalar-perl \
diff --git a/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb b/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb
index b518164df9..203db7b10c 100644
--- a/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb
+++ b/meta-perl/recipes-perl/libipc/libipc-signal-perl_1.00.bb
@@ -5,7 +5,7 @@ dealing with signals."
HOMEPAGE = "http://search.cpan.org/~rosch/IPC-Signal-1.00/"
SECTION = "libs"
-LICENSE = "Artistic-1.0|GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=16;endline=18;md5=f36550f59a0ae5e6e3b0be6a4da60d26"
S = "${WORKDIR}/IPC-Signal-${PV}"
diff --git a/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb b/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb
index fdc72a2b92..1e4b563532 100644
--- a/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb
+++ b/meta-perl/recipes-perl/liblocale/liblocale-gettext-perl_1.07.bb
@@ -6,7 +6,7 @@ SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~pvandry/Locale-gettext-${PV}/"
-LICENSE = "Artistic-1.0 | GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;md5=d028249c2d08dca6ca6c5bb43b56d926"
SRC_URI = "${CPAN_MIRROR}/authors/id/P/PV/PVANDRY/Locale-gettext-${PV}.tar.gz"
diff --git a/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb b/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb
deleted file mode 100644
index 79b4681a63..0000000000
--- a/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.012.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "MIME::Charset - Charset Information for MIME."
-DESCRIPTION = "MIME::Charset provides information about character sets used for MIME \
-messages on Internet."
-HOMEPAGE = "http://search.cpan.org/~nezumi/MIME-Charset-${PV}/"
-SECTION = "libs"
-
-LICENSE = "Artistic-1.0 | GPLv1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/MIME-Charset-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "71440416376248c31aa3bef753fae28d"
-SRC_URI[sha256sum] = "878c779c0256c591666bd06c0cde4c0d7820eeeb98fd1183082aee9a1e7b1d13"
-
-S = "${WORKDIR}/MIME-Charset-${PV}"
-
-inherit cpan
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.013.1.bb b/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.013.1.bb
new file mode 100644
index 0000000000..27ed41e99d
--- /dev/null
+++ b/meta-perl/recipes-perl/libmime/libmime-charset-perl_1.013.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "MIME::Charset - Charset Information for MIME."
+DESCRIPTION = "MIME::Charset provides information about character sets used for MIME \
+messages on Internet."
+HOMEPAGE = "http://search.cpan.org/~nezumi/MIME-Charset-${PV}/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/MIME-Charset-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "1bb7a6e0c0d251f23d6e60bf84c9adefc5b74eec58475bfee4d39107e60870f0"
+
+S = "${WORKDIR}/MIME-Charset-${PV}"
+
+inherit cpan
+
+BBCLASSEXTEND = "native"
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 414753030b..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|GPLv1+"
-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.24.bb b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.24.bb
new file mode 100644
index 0000000000..a3d9ceef02
--- /dev/null
+++ b/meta-perl/recipes-perl/libmime/libmime-types-perl_2.24.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] = "629e361f22b220be50c2da7354e23c0451757709a03c25a22f3160edb94cb65f"
+
+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-perl_0.4224.bb b/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb
deleted file mode 100644
index d523a7a0c7..0000000000
--- a/meta-perl/recipes-perl/libmodule/libmodule-build-perl_0.4224.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "Module::Build - Build and install Perl modules"
-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 = "https://metacpan.org/release/Module-Build"
-
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=960;endline=965;md5=624c06db56a2af4d70cf9edc29fcae1b"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Module-Build-${PV}.tar.gz"
-SRC_URI[md5sum] = "b74c2f6e84b60aad3a3defd30b6f0f4d"
-SRC_URI[sha256sum] = "a6ca15d78244a7b50fdbf27f85c85f4035aa799ce7dd018a0d98b358ef7bc782"
-
-S = "${WORKDIR}/Module-Build-${PV}"
-
-inherit cpan_build
-
-# From:
-# https://github.com/rehsack/meta-cpan/blob/master/recipes-devel/module-build-perl/module-build-perl_0.4216.bb
-#
-do_patch_module_build () {
- cd ${S}
- sed -i -e 's,my $interpreter = $self->{properties}{perl};,my $interpreter = "${bindir}/perl";,g' lib/Module/Build/Base.pm
-}
-
-do_patch[postfuncs] += "do_patch_module_build"
-
-BBCLASSEXTEND = "native"
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 b1a56e56db..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+"
-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.045.bb b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.045.bb
new file mode 100644
index 0000000000..17ee50d7c8
--- /dev/null
+++ b/meta-perl/recipes-perl/libmodule/libmodule-build-tiny-perl_0.045.bb
@@ -0,0 +1,53 @@
+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=6374136f6774db2f51cc116f5efbf705"
+
+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] = "d20692eee246d0b329b7f7659f36286b14ae0696fe91078a64b7078f8876d300"
+
+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-pluggable-perl_5.2.bb b/meta-perl/recipes-perl/libmodule/libmodule-pluggable-perl_5.2.bb
index aed65d3a8b..6f3d5ba59d 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
@@ -13,7 +13,7 @@ SECTION = "libs"
AUTHOR = "Simon Wistow <simon@thegestalt.org>"
HOMEPAGE = "https://github.com/simonwistow/Module-Pluggable"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=322;endline=325;md5=086450ce010f6fda25db0b38fcc41086"
SRCNAME = "Module-Pluggable"
@@ -30,7 +30,7 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit cpan
-RDEPENDS_${PN} = " perl-module-base \
+RDEPENDS:${PN} = " perl-module-base \
perl-module-deprecate \
perl-module-file-basename \
perl-module-file-find \
diff --git a/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb b/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb
index 89f0f709aa..205df68029 100644
--- a/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb
+++ b/meta-perl/recipes-perl/libmodule/libmodule-runtime-perl_0.016.bb
@@ -16,7 +16,7 @@ SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~zefram/Module-Runtime/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=36;endline=44;md5=9416434672a57853d6181f3da9094963"
SRCNAME = "Module-Runtime"
@@ -30,7 +30,7 @@ S = "${WORKDIR}/${SRCNAME}-${PV}"
inherit cpan
-RDEPENDS_${PN} = " perl-module-test-more \
+RDEPENDS:${PN} = " perl-module-test-more \
perl-module-strict \
"
diff --git a/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb b/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb
deleted file mode 100644
index a260ab87db..0000000000
--- a/meta-perl/recipes-perl/libmoo/libmoo-perl_2.003004.bb
+++ /dev/null
@@ -1,44 +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+"
-LIC_FILES_CHKSUM = "file://README;beginline=731;endline=776;md5=27efedd175eeaddbd18f4e3572bd72a8"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Moo-${PV}.tar.gz"
-SRC_URI[md5sum] = "d4fcd0f240033198571fcc81ce7c5f15"
-SRC_URI[sha256sum] = "f8bbb625f8e963eabe05cff9048fdd72bdd26777404ff2c40bc690f558be91e1"
-
-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.14.bb b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.14.bb
deleted file mode 100644
index efaa7f7b1d..0000000000
--- a/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.14.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "This package contains the DNS.pm module with friends."
-HOMEPAGE = "http://www.net-dns.org/"
-SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-
-LIC_FILES_CHKSUM = "file://README;md5=92d93d8c5bf22de77578531e283dd219"
-
-DEPENDS += "perl"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/N/NL/NLNETLABS/Net-DNS-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "0da1099c0a3548d36ea9e31d5bb9e122"
-SRC_URI[sha256sum] = "83c38a594eeb2c85d66e60047a0f5b403f34bd92a5d13606f02e828d450299fc"
-
-S = "${WORKDIR}/Net-DNS-${PV}"
-
-EXTRA_CPANFLAGS = "EXPATLIBPATH=${STAGING_LIBDIR} EXPATINCPATH=${STAGING_INCDIR}"
-
-inherit cpan
-
-RDEPENDS_${PN} = "perl-module-integer"
-
-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/libnet/libnet-dns-perl_1.39.bb b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.39.bb
new file mode 100644
index 0000000000..7e57be35cc
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-dns-perl_1.39.bb
@@ -0,0 +1,65 @@
+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] = "e99cdedf9f0d60dca16f613e488c5b7f123c2fb24b3346d580cfe7da40851ac6"
+
+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-sec-perl_1.10.bb b/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb
new file mode 100644
index 0000000000..fe7bb3326e
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-dns-sec-perl_1.10.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "DNSSEC extensions to Net::DNS"
+HOMEPAGE = "http://www.net-dns.org/"
+SECTION = "libs"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README;beginline=165;endline=192;md5=6ef523fa09e8c272675839e21de16bde"
+
+SRC_URI = "https://cpan.metacpan.org/authors/id/W/WI/WILLEM/Net-DNS-SEC-${PV}.tar.gz"
+SRC_URI[md5sum] = "ffa55a9898192c9d4c623cb1357eba9b"
+SRC_URI[sha256sum] = "37a47d4def72d7338f3cc7cd807ec19bd9e2ae638ae656fa536cf0314801989e"
+
+DEPENDS += "openssl"
+
+UPSTREAM_CHECK_REGEX = "Net\-DNS\-SEC\-(?P<pver>(\d+\.\d+))(?!_\d+).tar"
+
+S = "${WORKDIR}/Net-DNS-SEC-${PV}"
+
+EXTRA_CPANFLAGS = "INC='-I${STAGING_INCDIR}' LIBS='-L${STAGING_LIBDIR} -lssl -L${STAGING_BASELIBDIR} -lcrypto'"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} = " \
+ libnet-dns-perl \
+ libcrypto \
+ perl-module-dynaloader \
+ perl-module-file-find \
+ perl-module-file-spec \
+ perl-module-io-file \
+ perl-module-mime-base64 \
+ perl-module-test-more \
+"
diff --git a/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb b/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb
deleted file mode 100644
index f2b1f1634d..0000000000
--- a/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.65.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "LDAP Perl module"
-DESCRIPTION = "Net::LDAP is a collection of modules that implements \
-a LDAP services API for Perl programs. The module may be used to \
-search directories or perform maintenance functions such as adding, \
-deleting or modifying entries."
-
-SECTION = "libs"
-
-LICENSE = "Artistic-1.0|GPLv1+"
-LIC_FILES_CHKSUM = "file://README;beginline=3;endline=5;md5=4d6588c2fa0d38ae162f6314d201d89e"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MA/MARSCHAP/perl-ldap-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "d057c8db76913d95c0e460c7bdd98b27"
-SRC_URI[sha256sum] = "5f57dd261dc16ebf942a272ddafe69526598df71151a51916edc37a4f2f23834"
-
-S = "${WORKDIR}/perl-ldap-${PV}"
-
-inherit cpan
-
-do_configure_prepend() {
- perl -pi -e 's/auto_install_now.*//g' Makefile.PL
-}
-
-RDEPENDS_${PN} = "perl \
- libconvert-asn1-perl \
- libio-socket-ssl-perl \
- libauthen-sasl-perl \
-"
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
new file mode 100644
index 0000000000..dcc5ea88b1
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-ldap-perl_0.68.bb
@@ -0,0 +1,45 @@
+SUMMARY = "LDAP Perl module"
+DESCRIPTION = "Net::LDAP is a collection of modules that implements \
+a LDAP services API for Perl programs. The module may be used to \
+search directories or perform maintenance functions such as adding, \
+deleting or modifying entries."
+
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=3;endline=5;md5=4d6588c2fa0d38ae162f6314d201d89e"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/M/MA/MARSCHAP/perl-ldap-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "d091ed00302f0276069bca9df9478744"
+SRC_URI[sha256sum] = "e2f389fe3e7a9e4b61488692919ad723b98f3b479b5288f610daa8c27995b351"
+
+S = "${WORKDIR}/perl-ldap-${PV}"
+
+inherit cpan ptest-perl
+
+do_configure:prepend() {
+ perl -pi -e 's/auto_install_now.*//g' Makefile.PL
+}
+
+do_install_ptest() {
+ cp -r ${B}/data ${D}${PTEST_PATH}
+ chown -R root:root ${D}${PTEST_PATH}
+}
+
+RDEPENDS:${PN} += " \
+ libconvert-asn1-perl \
+ libio-socket-ssl-perl \
+ libauthen-sasl-perl \
+ perl-module-integer \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ libxml-sax-base-perl \
+ libxml-sax-writer-perl \
+ perl-module-file-compare \
+ perl-module-perlio \
+ perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb b/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb
index 1ef9f0bc35..4c4faab4db 100644
--- a/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb
+++ b/meta-perl/recipes-perl/libnet/libnet-libidn-perl_0.12.bb
@@ -5,12 +5,12 @@ Domain Names according to IDNA (RFC 3490), in a way very much inspired by \
Turbo Fredriksson's PHP-IDN. \
"
SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
HOMEPAGE = "http://search.cpan.org/dist/Net-LibIDN/"
DEPENDS += "libidn"
# We must need glibc-gconvs to enable charset related functions,
# such as Net::LibIDN::idn_to_ascii().
-RDEPENDS_${PN}_append_libc-glibc = " glibc-gconvs"
+RDEPENDS:${PN}:append:libc-glibc = " glibc-gconvs"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/T/TH/THOR/Net-LibIDN-${PV}.tar.gz"
SRC_URI[md5sum] = "c3e4de2065009d67bcb1df0afb473e12"
@@ -27,8 +27,8 @@ EXTRA_CPANFLAGS += "--disable-tld"
inherit cpan
-FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Net/LibIDN/.debug/"
+FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Net/LibIDN/.debug/"
-do_configure_prepend() {
+do_configure:prepend() {
rm -rf ${S}/.pc/
}
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
new file mode 100644
index 0000000000..9620df5ece
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl/no-exec-on-configure.patch
@@ -0,0 +1,37 @@
+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 @@
+ $self->requires_external_cc;
+
+ my $prefix = $self->find_openssl_prefix;
+- my $exec = $self->find_openssl_exec($prefix);
+-
+- unless (-x $exec) {
+- print <<EOM;
+-*** Could not find OpenSSL
+- If it's already installed, please set the OPENSSL_PREFIX environment
+- variable accordingly. If it isn't installed yet, get the latest version
+- from http://www.openssl.org/.
+-EOM
+- exit 0; # according http://wiki.cpantesters.org/wiki/CPANAuthorNotes this is best-practice when "missing library"
+- }
+-
+- $self->check_openssl_version($prefix, $exec);
+- my $opts = $self->ssleay_get_build_opts($prefix, $exec);
++ my $opts = $self->ssleay_get_build_opts($prefix);
+
+ $self->makemaker_args(
+ CCCDLFLAGS => $opts->{cccdlflags},
+@@ -58,7 +45,7 @@
+ }
+
+ sub ssleay_get_build_opts {
+- my ($self, $prefix, $exec) = @_;
++ my ($self, $prefix) = @_;
+
+ my $opts = {
+ lib_links => [],
diff --git a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.84.bb b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.84.bb
deleted file mode 100644
index cfecef9cfd..0000000000
--- a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.84.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "Net::SSLeay - Perl extension for using OpenSSL"
-DESCRIPTION = "This module offers some high level convenience functions for accessing \
-web pages on SSL servers (for symmetry, same API is offered for \
-accessing http servers, too), a sslcat() function for writing your own \
-clients, and finally access to the SSL api of SSLeay/OpenSSL package \
-so you can write servers or clients for more complicated applications."
-HOMEPAGE = "http://search.cpan.org/dist/Net-SSLeay/"
-SECTION = "libs"
-
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=274;endline=294;md5=67d67095d83e339da538a082fad5f38e"
-
-DEPENDS = "openssl zlib openssl-native"
-RDEPENDS_${PN} += "\
- libssl \
- libcrypto \
- perl-module-carp \
- perl-module-errno \
- perl-module-extutils-makemaker \
- perl-module-mime-base64 \
- perl-module-socket \
- zlib \
-"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-${PV}.tar.gz \
- file://run-ptest \
- "
-SRC_URI[md5sum] = "cfbe968487149626978f427cc9fb8c77"
-SRC_URI[sha256sum] = "823ec3cbb428309d6a9e56f362a9300693ce3215b7fede109adb7be361fff177"
-
-S = "${WORKDIR}/Net-SSLeay-${PV}"
-
-inherit cpan ptest
-
-export OPENSSL_PREFIX="${STAGING_LIBDIR}"
-
-EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR} LIBS='-L${STAGING_LIBDIR} -lcrypto -lssl -L${STAGING_BASELIBDIR} -lz'"
-
-do_install_ptest() {
- cp -r ${B}/t ${D}${PTEST_PATH}
-}
-
-BBCLASSEXTEND = "native"
-
-FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/"
-
-RDEPENDS_${PN}-ptest = " perl"
diff --git a/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb
new file mode 100644
index 0000000000..5d0eccd84a
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-ssleay-perl_1.85.bb
@@ -0,0 +1,48 @@
+SUMMARY = "Net::SSLeay - Perl extension for using OpenSSL"
+DESCRIPTION = "This module offers some high level convenience functions for accessing \
+web pages on SSL servers (for symmetry, same API is offered for \
+accessing http servers, too), a sslcat() function for writing your own \
+clients, and finally access to the SSL api of SSLeay/OpenSSL package \
+so you can write servers or clients for more complicated applications."
+HOMEPAGE = "http://search.cpan.org/dist/Net-SSLeay/"
+SECTION = "libs"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=274;endline=294;md5=67d67095d83e339da538a082fad5f38e"
+
+DEPENDS = "openssl zlib openssl-native"
+RDEPENDS:${PN} += "\
+ libssl \
+ libcrypto \
+ perl-module-carp \
+ perl-module-errno \
+ perl-module-extutils-makemaker \
+ perl-module-mime-base64 \
+ perl-module-socket \
+ perl-module-autoloader \
+ zlib \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Net-SSLeay-${PV}.tar.gz \
+ file://no-exec-on-configure.patch \
+ file://run-ptest \
+ "
+SRC_URI[md5sum] = "d602bdce4e0531c6efc276e3e429ca69"
+SRC_URI[sha256sum] = "9d8188b9fb1cae3bd791979c20554925d5e94a138d00414f1a6814549927b0c8"
+
+S = "${WORKDIR}/Net-SSLeay-${PV}"
+
+inherit cpan ptest
+
+do_configure() {
+ export OPENSSL_PREFIX="${STAGING_EXECPREFIXDIR}"
+ cpan_do_configure
+}
+
+do_install_ptest() {
+ cp -r ${B}/t ${D}${PTEST_PATH}
+}
+
+FILES:${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/Net/SSLeay/.debug/"
+
+RDEPENDS:${PN}-ptest = " perl"
diff --git a/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb b/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb
deleted file mode 100644
index 652e8c941e..0000000000
--- a/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.04.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Net-Telnet Perl module"
-DESCRIPTION = "Net::Telnet allows you to make client connections to a TCP port and do \
-network I/O, especially to a port using the TELNET protocol. Simple I/O \
-methods such as print, get, and getline are provided. More sophisticated \
-interactive features are provided because connecting to a TELNET port \
-ultimately means communicating with a program designed for human interaction. \
-These interactive features include the ability to specify a time-out and to \
-wait for patterns to appear in the input stream, such as the prompt from a \
-shell."
-
-HOMEPAGE = "http://search.cpan.org/dist/Net-Telnet/"
-SECTION = "Development/Libraries"
-
-LICENSE = "Artistic-1.0|GPLv1+"
-LIC_FILES_CHKSUM = "file://README;beginline=4;endline=7;md5=3fd238bfb6ee1810cb15d5d95e07b0f5"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JR/JROGERS/Net-Telnet-${PV}.tar.gz"
-SRC_URI[md5sum] = "d2514080116c1b0fa5f96295c84538e3"
-SRC_URI[sha256sum] = "e64d567a4e16295ecba949368e7a6b8b5ae2a16b3ad682121d9b007dc5d2a37a"
-
-S = "${WORKDIR}/Net-Telnet-${PV}"
-
-inherit cpan
-
-RDEPENDS_${PN} = "perl"
diff --git a/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.05.bb b/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.05.bb
new file mode 100644
index 0000000000..d1365f269c
--- /dev/null
+++ b/meta-perl/recipes-perl/libnet/libnet-telnet-perl_3.05.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Net-Telnet Perl module"
+DESCRIPTION = "Net::Telnet allows you to make client connections to a TCP port and do \
+network I/O, especially to a port using the TELNET protocol. Simple I/O \
+methods such as print, get, and getline are provided. More sophisticated \
+interactive features are provided because connecting to a TELNET port \
+ultimately means communicating with a program designed for human interaction. \
+These interactive features include the ability to specify a time-out and to \
+wait for patterns to appear in the input stream, such as the prompt from a \
+shell."
+
+HOMEPAGE = "http://search.cpan.org/dist/Net-Telnet/"
+SECTION = "Development/Libraries"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=4;endline=7;md5=e94ab3b72335e3cdadd6c1ff736dd714"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/J/JR/JROGERS/Net-Telnet-${PV}.tar.gz"
+SRC_URI[md5sum] = "c8573c57a2d9469f038c40ac284b1e5f"
+SRC_URI[sha256sum] = "677f68ba2cd2a824fae323fa82e183bf7e3d03c3c499c91d923bd6283796a743"
+
+S = "${WORKDIR}/Net-Telnet-${PV}"
+
+inherit cpan
+
+RDEPENDS:${PN} = "perl"
diff --git a/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb b/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb
index 1599e61f13..643a704a1d 100644
--- a/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb
+++ b/meta-perl/recipes-perl/libproc/libproc-waitstat-perl_1.00.bb
@@ -5,10 +5,10 @@ on wait status values."
HOMEPAGE = "http://search.cpan.org/~rosch/Proc-WaitStat/"
SECTION = "libraries"
-LICENSE = "Artistic-1.0|GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=21;endline=23;md5=f36550f59a0ae5e6e3b0be6a4da60d26"
-RDEPENDS_${PN} += "perl libipc-signal-perl"
+RDEPENDS:${PN} += "perl libipc-signal-perl"
S = "${WORKDIR}/Proc-WaitStat-${PV}"
diff --git a/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb b/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb
deleted file mode 100644
index c2755ea0f7..0000000000
--- a/meta-perl/recipes-perl/librole/librole-tiny-perl_2.000006.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Role::Tiny - Roles. Like a nouvelle cousine portion size of Moose."
-DESCRIPTION = "\"Role::Tiny\" is a minimalist role composition tool."
-
-SECTION = "libs"
-
-HOMEPAGE = "https://metacpan.org/pod/Role::Tiny"
-
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=177;endline=214;md5=26df7e7c20551fb1906e2286624f0b71"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Role-Tiny-${PV}.tar.gz"
-SRC_URI[md5sum] = "7c277728a7e090f64b495857cadfed08"
-SRC_URI[sha256sum] = "cc73418c904a0286ecd8915eac11f5be2a8d1e17ea9cb54c9116b0340cd3e382"
-
-S = "${WORKDIR}/Role-Tiny-${PV}"
-
-inherit cpan
-
-RDEPENDS_${PN} = " perl-module-exporter \
- perl-module-strict \
- perl-module-test-more \
- perl-module-warnings \
-"
-
-RPROVIDES_${PN} = " librole-tiny-perl \
- librole-tiny-with-perl \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/librole/librole-tiny-perl_2.002004.bb b/meta-perl/recipes-perl/librole/librole-tiny-perl_2.002004.bb
new file mode 100644
index 0000000000..c5efc15358
--- /dev/null
+++ b/meta-perl/recipes-perl/librole/librole-tiny-perl_2.002004.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Role::Tiny - Roles. Like a nouvelle cousine portion size of Moose."
+DESCRIPTION = "\"Role::Tiny\" is a minimalist role composition tool."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/pod/Role::Tiny"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=197;endline=234;md5=26df7e7c20551fb1906e2286624f0b71"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/Role-Tiny-${PV}.tar.gz"
+SRC_URI[md5sum] = "9ee45591befa3d0b1094ac75d282b6ba"
+SRC_URI[sha256sum] = "d7bdee9e138a4f83aa52d0a981625644bda87ff16642dfa845dcb44d9a242b45"
+
+S = "${WORKDIR}/Role-Tiny-${PV}"
+
+inherit cpan
+
+RDEPENDS:${PN} = " perl-module-exporter \
+ perl-module-strict \
+ perl-module-test-more \
+ perl-module-warnings \
+"
+
+RPROVIDES:${PN} = " librole-tiny-perl \
+ librole-tiny-with-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb b/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
new file mode 100644
index 0000000000..c568ade997
--- /dev/null
+++ b/meta-perl/recipes-perl/libstatgrab/libunix-statgrab_0.112.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Perl interface to the libstatgrab library"
+DESCRIPTION = "Unix::Statgrab is a wrapper for libstatgrab as available from \
+<http://www.i-scream.org/libstatgrab/>. It is a reasonably portable attempt \
+to query interesting stats about your computer. It covers information on \
+the operating system, CPU, memory usage, network interfaces, hard-disks \
+etc."
+
+HOMEPAGE = "https://metacpan.org/release/Unix-Statgrab"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later | LGPL-2.1-or-later"
+DEPENDS += "libcapture-tiny-perl-native"
+DEPENDS += "libconfig-autoconf-perl-native"
+DEPENDS += "libstatgrab"
+RDEPENDS:${PN} += "\
+ libstatgrab \
+ perl-module-autoloader \
+ perl-module-carp \
+ perl-module-dynaloader \
+ perl-module-exporter \
+ perl-module-strict \
+ perl-module-vars \
+ perl-module-warnings \
+"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/R/RE/REHSACK/Unix-Statgrab-${PV}.tar.gz"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Artistic-1.0;md5=cda03bbdc3c1951996392b872397b798 \
+ file://${COMMON_LICENSE_DIR}/GPL-1.0-or-later;md5=30c0b8a5048cc2f4be5ff15ef0d8cf61 \
+ file://${COMMON_LICENSE_DIR}/LGPL-2.1-or-later;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \
+"
+
+SRC_URI[md5sum] = "a6bc06b3f7749f7d77a2b1bd13402821"
+SRC_URI[sha256sum] = "16a29f7acaeec081bf0e7303ba5ee24fda1d21a1104669b837745f3ea61d6afa"
+
+S = "${WORKDIR}/Unix-Statgrab-${PV}"
+
+export LD = "${CCLD}"
+
+inherit cpan pkgconfig ptest-perl
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb b/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb
deleted file mode 100644
index a6808d3f8e..0000000000
--- a/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000003.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-SUMMARY = "strictures - turn on strict and make all warnings fatal"
-DESCRIPTION = "I've been writing the equivalent of this module at the top \
-of my code for about a year now. I figured it was time to make it shorter. \
-\
-Things like the importer in \"use Moose\" don't help me because they turn \
-warnings on but don't make them fatal -- which from my point of view is \
-useless because I want an exception to tell me my code isn't warnings-clean. \
-\
-Any time I see a warning from my code, that indicates a mistake. \
-\
-Any time my code encounters a mistake, I want a crash -- not spew to STDERR \
-and then unknown (and probably undesired) subsequent behaviour. \
-\
-I also want to ensure that obvious coding mistakes, like indirect object \
-syntax (and not so obvious mistakes that cause things to accidentally compile \
-as such) get caught, but not at the cost of an XS dependency and not at the \
-cost of blowing things up on another machine. \
-\
-Therefore, \"strictures\" turns on additional checking, but only when it \
-thinks it's running in a test file in a VCS checkout -- although if this \
-causes undesired behaviour this can be overridden by setting the \
-PERL_STRICTURES_EXTRA environment variable."
-
-SECTION = "libs"
-
-HOMEPAGE = "https://metacpan.org/pod/strictures"
-
-LICENSE = "Artistic-1.0 | GPL-1.0+"
-LIC_FILES_CHKSUM = "file://README;beginline=246;endline=262;md5=43be558cf4f19823cdd6af22135cf5f8"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/strictures-${PV}.tar.gz"
-SRC_URI[md5sum] = "78244cfab6168dcf196370d1e2309536"
-SRC_URI[sha256sum] = "27f8ea096a521e9754d36ea32889c2cda28346d04e3e399e7ea118d182dbaf22"
-
-S = "${WORKDIR}/strictures-${PV}"
-
-inherit cpan
-
-RDEPENDS_${PN} = " perl-module-carp \
- perl-module-strict \
- perl-module-test-more \
- perl-module-warnings \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000006.bb b/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000006.bb
new file mode 100644
index 0000000000..80c21b2b14
--- /dev/null
+++ b/meta-perl/recipes-perl/libstrictures/libstrictures-perl_2.000006.bb
@@ -0,0 +1,48 @@
+SUMMARY = "strictures - turn on strict and make all warnings fatal"
+DESCRIPTION = "I've been writing the equivalent of this module at the top \
+of my code for about a year now. I figured it was time to make it shorter. \
+\
+Things like the importer in \"use Moose\" don't help me because they turn \
+warnings on but don't make them fatal -- which from my point of view is \
+useless because I want an exception to tell me my code isn't warnings-clean. \
+\
+Any time I see a warning from my code, that indicates a mistake. \
+\
+Any time my code encounters a mistake, I want a crash -- not spew to STDERR \
+and then unknown (and probably undesired) subsequent behaviour. \
+\
+I also want to ensure that obvious coding mistakes, like indirect object \
+syntax (and not so obvious mistakes that cause things to accidentally compile \
+as such) get caught, but not at the cost of an XS dependency and not at the \
+cost of blowing things up on another machine. \
+\
+Therefore, \"strictures\" turns on additional checking, but only when it \
+thinks it's running in a test file in a VCS checkout -- although if this \
+causes undesired behaviour this can be overridden by setting the \
+PERL_STRICTURES_EXTRA environment variable."
+
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/pod/strictures"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=246;endline=262;md5=43be558cf4f19823cdd6af22135cf5f8"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/H/HA/HAARG/strictures-${PV}.tar.gz"
+SRC_URI[md5sum] = "35c14fd25320f32ff40e977feae95d0d"
+SRC_URI[sha256sum] = "09d57974a6d1b2380c802870fed471108f51170da81458e2751859f2714f8d57"
+
+S = "${WORKDIR}/strictures-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += " \
+ perl-module-carp \
+ perl-module-strict \
+ perl-module-test-more \
+ perl-module-warnings \
+"
+
+RDEPENDS:${PN}-ptest += "perl-module-perlio perl-module-perlio-scalar"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb b/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb
index 64d19c0f1f..d51ab21715 100644
--- a/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb
+++ b/meta-perl/recipes-perl/libsub/libsub-exporter-progressive-perl_0.001013.bb
@@ -10,11 +10,9 @@ SECTION = "libs"
HOMEPAGE = "https://metacpan.org/pod/Sub-Exporter-Progressive/"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=003fa970662359a43ac2c2961108b0f1"
-DEPENDS_${PN} = " perl-module-test-more"
-
SRC_URI = "${CPAN_MIRROR}/authors/id/F/FR/FREW/Sub-Exporter-Progressive-${PV}.tar.gz"
SRC_URI[md5sum] = "72cf6acdd2a0a8b105821a4db98e4ebe"
SRC_URI[sha256sum] = "d535b7954d64da1ac1305b1fadf98202769e3599376854b2ced90c382beac056"
@@ -23,7 +21,7 @@ S = "${WORKDIR}/Sub-Exporter-Progressive-${PV}"
inherit cpan
-RDEPENDS_${PN} += " perl-module-carp \
+RDEPENDS:${PN} += " perl-module-carp \
perl-module-list-util \
"
diff --git a/meta-perl/recipes-perl/libsub/libsub-uplevel-perl_0.2800.bb b/meta-perl/recipes-perl/libsub/libsub-uplevel-perl_0.2800.bb
new file mode 100644
index 0000000000..3a0de9757b
--- /dev/null
+++ b/meta-perl/recipes-perl/libsub/libsub-uplevel-perl_0.2800.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Sub::Uplevel - apparently run a function in a higher stack frame"
+DESCRIPTION = " Like Tcl's uplevel() function, but not quite so dangerous. \
+The idea is just to fool caller(). All the really naughty bits of Tcl's \
+uplevel() are avoided. \
+\
+THIS IS NOT THE SORT OF THING YOU WANT TO DO EVERYDAY \
+"
+
+SECTION = "libs"
+HOMEPAGE= "https://metacpan.org/release/Sub-Uplevel"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7f1207cd3108e4ade18448d81e6bcb6c"
+
+CPAN_PACKAGE = "Sub-Uplevel"
+CPAN_AUTHOR = "DAGOLDEN"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/D/DA/${CPAN_AUTHOR}/${CPAN_PACKAGE}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "6c6a174861fd160e8d5871a86df00baf"
+SRC_URI[sha256sum] = "b4f3f63b80f680a421332d8851ddbe5a8e72fcaa74d5d1d98f3c8cc4a3ece293"
+
+S = "${WORKDIR}/${CPAN_PACKAGE}-${PV}"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN} += " \
+ perl-module-carp \
+ perl-module-constant \
+ perl-module-strict \
+ perl-module-warnings \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ perl-module-cpan \
+ perl-module-exporter \
+ perl-module-extutils-makemaker \
+ perl-module-file-spec \
+ perl-module-lib \
+ perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb b/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb
deleted file mode 100644
index 6b76682c68..0000000000
--- a/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.37.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-SUMMARY = "Term::ReadKey - A perl module for simple terminal control."
-DESCRIPTION = "Term::ReadKey is a compiled perl module dedicated to providing simple \
-control over terminal driver modes (cbreak, raw, cooked, etc.,) support \
-for non-blocking reads, if the architecture allows, and some generalized \
-handy functions for working with terminals. One of the main goals is to \
-have the functions as portable as possible, so you can just plug in "use \
-Term::ReadKey" on any architecture and have a good likelihood of it \
-working."
-HOMEPAGE = "http://search.cpan.org/~jstowe/TermReadKey-${PV}"
-SECTION = "libraries"
-
-LICENSE = "Artistic-1.0 | GPLv1+"
-LIC_FILES_CHKSUM = "file://README;md5=c275db663c8489a5709ebb22b185add5"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/J/JS/JSTOWE/TermReadKey-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "e8ea15c16333ac4f8d146d702e83cc0c"
-SRC_URI[sha256sum] = "4a9383cf2e0e0194668fe2bd546e894ffad41d556b41d2f2f577c8db682db241"
-
-S = "${WORKDIR}/TermReadKey-${PV}"
-
-# It needs depend on native to let dynamic loader use native modules
-# rather than target ones.
-DEPENDS = "libterm-readkey-perl-native"
-
-inherit cpan
-
-do_configure_append () {
- # Hack the dynamic module loader so that it use native modules since it can't load
- # the target ones.
- if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
- sed -i -e "s#-I\$(INST_ARCHLIB)#-I${STAGING_BINDIR_NATIVE}/perl-native/perl/vendor_perl/${@get_perl_version(d)}#g" Makefile
- fi
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.38.bb b/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.38.bb
new file mode 100644
index 0000000000..f4ce3131de
--- /dev/null
+++ b/meta-perl/recipes-perl/libterm/libterm-readkey-perl_2.38.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Term::ReadKey - A perl module for simple terminal control."
+DESCRIPTION = "Term::ReadKey is a compiled perl module dedicated to providing simple \
+control over terminal driver modes (cbreak, raw, cooked, etc.,) support \
+for non-blocking reads, if the architecture allows, and some generalized \
+handy functions for working with terminals. One of the main goals is to \
+have the functions as portable as possible, so you can just plug in 'use \
+Term::ReadKey' on any architecture and have a good likelihood of it \
+working."
+HOMEPAGE = "http://search.cpan.org/~jstowe/TermReadKey-${PV}"
+SECTION = "libraries"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;md5=c275db663c8489a5709ebb22b185add5"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/J/JS/JSTOWE/TermReadKey-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "b2b4aab7a0e6bddb7ac3b21ba637482c"
+SRC_URI[sha256sum] = "5a645878dc570ac33661581fbb090ff24ebce17d43ea53fd22e105a856a47290"
+
+S = "${WORKDIR}/TermReadKey-${PV}"
+
+UPSTREAM_CHECK_URI = "https://metacpan.org/release/TermReadKey"
+UPSTREAM_CHECK_REGEX = "TermReadKey\-(?P<pver>(\d+\.\d+))(?!_\d+)\.tar.gz"
+
+# It needs depend on native to let dynamic loader use native modules
+# rather than target ones.
+DEPENDS = "libterm-readkey-perl-native"
+
+inherit cpan ptest-perl
+
+RDEPENDS:${PN}-ptest += " \
+ perl-module-test-more \
+"
+
+do_configure:append () {
+ # Hack the dynamic module loader so that it use native modules since it can't load
+ # the target ones.
+ if [ "${BUILD_SYS}" != "${HOST_SYS}" ]; then
+ sed -i -e "s#-I\$(INST_ARCHLIB)#-I${STAGING_BINDIR_NATIVE}/perl-native/perl/vendor_perl/${@get_perl_version(d)}#g" Makefile
+ fi
+}
+
+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.42.bb b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.42.bb
deleted file mode 100644
index c9ba594803..0000000000
--- a/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.42.bb
+++ /dev/null
@@ -1,120 +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+"
-LIC_FILES_CHKSUM = "file://README;beginline=29;endline=30;md5=b08db4360eec119e875dddd7cb8a5ddd"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/L/LE/LEONT/Test-Harness-${PV}.tar.gz"
-SRC_URI[md5sum] = "c794906473f88d6b74194e2d56f16bd6"
-SRC_URI[sha256sum] = "0fd90d4efea82d6e262e6933759e85d27cbcfa4091b14bf4042ae20bab528e53"
-
-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.44.bb b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.44.bb
new file mode 100644
index 0000000000..58ca70b9e1
--- /dev/null
+++ b/meta-perl/recipes-perl/libtest/libtest-harness-perl_3.44.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] = "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-nowarnings-perl_1.04.bb b/meta-perl/recipes-perl/libtest/libtest-nowarnings-perl_1.04.bb
new file mode 100644
index 0000000000..d74a347293
--- /dev/null
+++ b/meta-perl/recipes-perl/libtest/libtest-nowarnings-perl_1.04.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Make sure you didn't emit any warnings while testing"
+DESCRIPTION = "In general, your tests shouldn't produce warnings. This \
+modules causes any warnings to be captured and stored. It automatically \
+adds an extra test that will run when your script ends to check that there \
+were no warnings. If there were any warings, the test will give a \\"not ok\\" \
+and diagnostics of where, when and what the warning was, including a stack \
+trace of what was going on when the it occurred.\
+\
+If some of your tests are supposed to produce warnings then you should \
+be capturing and checking them with Test::Warn, that way \
+Test::NoWarnings will not see them and so not complain.\
+\
+The test is run by an \\"END\\" block in Test::NoWarnings. It will not be \
+run when any forked children exit."
+
+SECTION = "libs"
+LICENSE = "LGPL-2.1-only"
+
+HOMEPAGE= "https://metacpan.org/release/Test-NoWarnings"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d8045f3b8f929c1cb29a1e3fd737b499"
+
+CPAN_PACKAGE = "Test-NoWarnings"
+CPAN_AUTHOR = "ADAMK"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/A/AD/${CPAN_AUTHOR}/${CPAN_PACKAGE}-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "682ed043f7d3e38f3dfd8745fd21c49a"
+SRC_URI[sha256sum] = "638a57658cb119af1fe5b15e73d47c2544dcfef84af0c6b1b2e97f08202b686c"
+
+RDEPENDS:${PN} += "perl-module-test-builder perl-module-test-more perl-module-test-tester"
+
+S = "${WORKDIR}/${CPAN_PACKAGE}-${PV}"
+
+inherit cpan ptest-perl
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-perl/recipes-perl/libtest/libtest-warn-perl_0.37.bb b/meta-perl/recipes-perl/libtest/libtest-warn-perl_0.37.bb
new file mode 100644
index 0000000000..5148fbeb09
--- /dev/null
+++ b/meta-perl/recipes-perl/libtest/libtest-warn-perl_0.37.bb
@@ -0,0 +1,45 @@
+SUMMARY = "Test::Warn - Perl extension to test methods for warnings"
+DESCRIPTION = "This module provides a few convenience methods for testing \
+warning based code. \
+\
+If you are not already familiar with the Test::More manpage now would be \
+the time to go take a look. \
+"
+
+SECTION = "libs"
+HOMEPAGE= "https://metacpan.org/release/Test-Warn"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=73;endline=78;md5=42b423d91c92ba59c215835a2ee9b57a"
+
+CPAN_PACKAGE = "Test-Warn"
+CPAN_AUTHOR = "BIGJ"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/B/BI/${CPAN_AUTHOR}/${CPAN_PACKAGE}-${PV}.tar.gz"
+
+SRC_URI[sha256sum] = "98ca32e7f2f5ea89b8bfb9a0609977f3d153e242e2e51705126cb954f1a06b57"
+
+S = "${WORKDIR}/${CPAN_PACKAGE}-${PV}"
+
+inherit cpan ptest-perl
+
+do_install_ptest() {
+ cp -r ${B}/blib ${D}${PTEST_PATH}
+ chown -R root:root ${D}${PTEST_PATH}
+}
+
+RDEPENDS:${PN} += " \
+ libsub-uplevel-perl \
+ perl-module-blib \
+ perl-module-carp \
+ perl-module-test-builder \
+ perl-module-test-builder-tester \
+ perl-module-test-tester \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ perl-module-file-spec \
+ perl-module-test-more \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb b/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb
index 9057ae7fa4..29118129ad 100644
--- a/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb
+++ b/meta-perl/recipes-perl/libtext/libtext-charwidth-perl_0.04.bb
@@ -12,7 +12,7 @@ SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~kubota/Text-CharWidth-${PV}/"
-LICENSE = "Artistic-1.0 | GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;md5=d8d54c8c500cbdd57a4c15911d9d96db"
SRC_URI = "${CPAN_MIRROR}/authors/id/K/KU/KUBOTA/Text-CharWidth-${PV}.tar.gz"
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 a4c246e34e..afdf63ede4 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
@@ -8,7 +8,7 @@ SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~ovid/Text-Diff/"
-LICENSE = "Artistic-1.0 | GPL-2.0+"
+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"
@@ -19,7 +19,7 @@ S = "${WORKDIR}/Text-Diff-${PV}"
inherit cpan
-RDEPENDS_${PN} = " libalgorithm-diff-perl \
+RDEPENDS:${PN} = " libalgorithm-diff-perl \
perl-module-extutils-makemaker \
perl-module-exporter \
"
diff --git a/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb b/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb
index 275ccb8c96..1e8405cab9 100644
--- a/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb
+++ b/meta-perl/recipes-perl/libtext/libtext-iconv-perl_1.7.bb
@@ -8,9 +8,9 @@ Settings of fromcode and tocode and their permitted combinations are \
implementation-dependent. Valid values are specified in the system \
documentation."
SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPL-1.0+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;beginline=3;endline=6;md5=fadf2919c7128e887d26b4d905f90649"
-RRECOMMENDS_${PN}_append_libc-glibc = " glibc-gconvs"
+RRECOMMENDS:${PN}:append:libc-glibc = " glibc-gconvs"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/M/MP/MPIOTR/Text-Iconv-${PV}.tar.gz"
@@ -21,4 +21,4 @@ S = "${WORKDIR}/Text-Iconv-${PV}"
inherit cpan
-FILES_${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Text/Iconv/.debug/"
+FILES:${PN}-dbg += "${libdir}/perl/vendor_perl/*/auto/Text/Iconv/.debug/"
diff --git a/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb b/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb
index b2c239d79b..017e951d3a 100644
--- a/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb
+++ b/meta-perl/recipes-perl/libtext/libtext-wrapi18n-perl_0.06.bb
@@ -13,7 +13,7 @@ SECTION = "libs"
HOMEPAGE = "http://search.cpan.org/~kubota/Text-WrapI18N-${PV}/"
-LICENSE = "Artistic-1.0 | GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
LIC_FILES_CHKSUM = "file://README;md5=080862e1e40cdcddef4393e137285858"
SRC_URI = "${CPAN_MIRROR}/authors/id/K/KU/KUBOTA/Text-WrapI18N-${PV}.tar.gz"
@@ -25,7 +25,7 @@ S = "${WORKDIR}/Text-WrapI18N-${PV}"
DEPENDS = "libtext-charwidth-perl"
-RDEPENDS_${PN} = "libtext-charwidth-perl"
+RDEPENDS:${PN} = "libtext-charwidth-perl"
inherit cpan
diff --git a/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb b/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb
deleted file mode 100644
index 5ccb411fa5..0000000000
--- a/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2017.004.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "Unicode::LineBreak - UAX #14 Unicode Line Breaking Algorithm."
-DESCRIPTION = "Unicode::LineBreak performs Line Breaking Algorithm described in Unicode \
-Standard Annex #14 [UAX #14]. East_Asian_Width informative property \
-defined by Annex #11 [UAX #11] will be concerned to determine breaking \
-positions."
-SECTION = "libs"
-
-HOMEPAGE = "http://search.cpan.org/~nezumi/Unicode-LineBreak-${PV}/"
-
-LICENSE = "Artistic-1.0 | GPLv1+"
-LIC_FILES_CHKSUM = "file://README;md5=77241abd74fec561b3f3de1b44c0241b"
-
-SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/Unicode-LineBreak-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "de7672227922260ac92d20bbad29660b"
-SRC_URI[sha256sum] = "655bc3c4cb60ad0770d97816716cfe322f24e602c70e595f5941dfa02c40cb76"
-
-S = "${WORKDIR}/Unicode-LineBreak-${PV}"
-
-DEPENDS = "libsombok3 libmime-charset-perl"
-
-RDEPENDS_${PN} = "libsombok3 libmime-charset-perl"
-
-inherit cpan
-
-BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2019.001.bb b/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2019.001.bb
new file mode 100644
index 0000000000..a7a998c358
--- /dev/null
+++ b/meta-perl/recipes-perl/libunicode/libunicode-linebreak-perl_2019.001.bb
@@ -0,0 +1,55 @@
+SUMMARY = "Unicode::LineBreak - UAX #14 Unicode Line Breaking Algorithm."
+DESCRIPTION = "Unicode::LineBreak performs Line Breaking Algorithm described in Unicode \
+Standard Annex #14 [UAX #14]. East_Asian_Width informative property \
+defined by Annex #11 [UAX #11] will be concerned to determine breaking \
+positions."
+SECTION = "libs"
+
+HOMEPAGE = "https://metacpan.org/release/Unicode-LineBreak"
+
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+LIC_FILES_CHKSUM = "file://README;beginline=5;endline=9;md5=b5e8b1099b86b86fbc315b50484231ab"
+
+SRC_URI = "${CPAN_MIRROR}/authors/id/N/NE/NEZUMI/Unicode-LineBreak-${PV}.tar.gz"
+
+SRC_URI[md5sum] = "003d6da7a13700e069afed9238c864b9"
+SRC_URI[sha256sum] = "486762e4cacddcc77b13989f979a029f84630b8175e7fef17989e157d4b6318a"
+
+S = "${WORKDIR}/Unicode-LineBreak-${PV}"
+
+DEPENDS = "libsombok3 libmime-charset-perl"
+
+inherit cpan ptest-perl
+
+do_install_ptest() {
+ cp -r ${B}/test-data ${D}${PTEST_PATH}
+ chown -R root:root ${D}${PTEST_PATH}
+}
+
+RDEPENDS:${PN} += " \
+ libmime-charset-perl \
+ libsombok3 \
+ perl-module-carp \
+ perl-module-constant \
+ perl-module-encode \
+ perl-module-exporter \
+ perl-module-overload \
+ perl-module-strict \
+ perl-module-vars \
+ perl-module-warnings \
+ perl-module-xsloader \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ perl-module-findbin \
+ perl-module-lib \
+ perl-module-strict \
+ perl-module-test-more \
+"
+
+RPROVIDES:${PN} += " \
+ libtext-linefold-perl \
+ libunicode-gcstring-perl \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb b/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb
index 77dd616bfc..7962d22c9d 100644
--- a/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb
+++ b/meta-perl/recipes-perl/libxml/libxml-filter-buffertext-perl_1.01.bb
@@ -7,10 +7,10 @@ to, and most don't. This filter does the trivial but oft-repeated task \
of putting all characters into a single event. \
"
SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
HOMEPAGE = "http://search.cpan.org/dist/XML-Filter-BufferText/"
DEPENDS += "libxml-sax-perl-native"
-RDEPENDS_${PN} += "libxml-sax-perl"
+RDEPENDS:${PN} += "libxml-sax-perl"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/R/RB/RBERJON/XML-Filter-BufferText-${PV}.tar.gz"
SRC_URI[md5sum] = "2992c0387632583b966ab9c965b25512"
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.0132.bb b/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0132.bb
deleted file mode 100644
index 1f18401180..0000000000
--- a/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0132.bb
+++ /dev/null
@@ -1,47 +0,0 @@
-SUMMARY = "Perl interface to the libxml2 library"
-DESCRIPTION = "This module is an interface to libxml2, providing XML and HTML parsers \
-with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 \
-interface and a XML::XPath-like interface to XPath API of libxml2. \
-The module is split into several packages which are not described in this \
-section; unless stated otherwise, you only need to use XML::LibXML; in \
-your programs."
-
-HOMEPAGE = "http://search.cpan.org/dist/XML-LibXML-1.99/"
-SECTION = "libs"
-LICENSE = "Artistic-1.0|GPLv1+"
-DEPENDS += "libxml2 \
- libxml-sax-perl-native \
- zlib \
-"
-RDEPENDS_${PN} += "\
- libxml2 \
- libxml-sax-perl \
- libxml-sax-base-perl \
- perl-module-encode \
- perl-module-data-dumper \
- zlib \
-"
-
-SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-${PV}.tar.gz;name=libxml \
- file://disable-libxml2-check.patch \
- file://fix-CATALOG-conditional-compile.patch \
- file://using-DOCB-conditional.patch \
-"
-LIC_FILES_CHKSUM = "file://debian/copyright;md5=64eda1bc135f0ece1d1187f2a8ac82c1 \
- file://LICENSE;md5=97871bde150daeb5e61ad95137ff2446 \
-"
-SRC_URI[libxml.md5sum] = "43546fd9a3974f19323f9fb04861ece9"
-SRC_URI[libxml.sha256sum] = "721452e3103ca188f5968ab06d5ba29fe8e00e49f4767790882095050312d476"
-
-S = "${WORKDIR}/XML-LibXML-${PV}"
-
-inherit cpan
-
-EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR}/libxml2 LIBS=-L${STAGING_LIBDIR}"
-
-BBCLASSEXTEND = "native"
-
-CFLAGS += " -D_GNU_SOURCE "
-BUILD_CFLAGS += " -D_GNU_SOURCE "
-
-FILES_${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/XML/LibXML/.debug/"
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
new file mode 100644
index 0000000000..f184b89e59
--- /dev/null
+++ b/meta-perl/recipes-perl/libxml/libxml-libxml-perl_2.0134.bb
@@ -0,0 +1,72 @@
+SUMMARY = "Perl interface to the libxml2 library"
+DESCRIPTION = "This module is an interface to libxml2, providing XML and HTML parsers \
+with DOM, SAX and XMLReader interfaces, a large subset of DOM Layer 3 \
+interface and a XML::XPath-like interface to XPath API of libxml2. \
+The module is split into several packages which are not described in this \
+section; unless stated otherwise, you only need to use XML::LibXML; in \
+your programs."
+
+HOMEPAGE = "http://search.cpan.org/dist/XML-LibXML-1.99/"
+SECTION = "libs"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
+DEPENDS += "libxml2 \
+ libxml-sax-perl-native \
+ zlib \
+"
+RDEPENDS:${PN} += "\
+ libxml2 \
+ libxml-sax-perl \
+ libxml-sax-base-perl \
+ perl-module-encode \
+ perl-module-data-dumper \
+ zlib \
+"
+
+SRC_URI = "http://search.cpan.org/CPAN/authors/id/S/SH/SHLOMIF/XML-LibXML-${PV}.tar.gz;name=libxml \
+ 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 \
+"
+SRC_URI[libxml.md5sum] = "dce687dd8b7e82d1c359fd74b1852f64"
+SRC_URI[libxml.sha256sum] = "f0bca4d0c2da35d879fee4cd13f352014186cedab27ab5e191f39b5d7d4f46cf"
+
+S = "${WORKDIR}/XML-LibXML-${PV}"
+
+inherit cpan ptest-perl
+
+EXTRA_CPANFLAGS = "INC=-I${STAGING_INCDIR}/libxml2 LIBS=-L${STAGING_LIBDIR}"
+
+BBCLASSEXTEND = "native"
+
+CFLAGS += " -D_GNU_SOURCE "
+BUILD_CFLAGS += " -D_GNU_SOURCE "
+
+FILES:${PN}-dbg =+ "${libdir}/perl/vendor_perl/*/auto/XML/LibXML/.debug/"
+
+RDEPENDS:${PN}-ptest += " \
+ liburi-perl \
+ perl-module-encode-byte \
+ perl-module-encode-unicode \
+ perl-module-locale \
+ perl-module-perlio-scalar \
+ perl-module-test-more \
+"
+
+do_install:prepend() {
+ # test requires "-T" (taint) command line option
+ rm -rf ${B}/t/pod.t
+ # this only applies to author build
+ rm -rf ${B}/t/pod-files-presence.t
+}
+
+do_install_ptest() {
+ cp -r ${B}/t/data ${D}${PTEST_PATH}/t/
+ cp -r ${B}/t/lib ${D}${PTEST_PATH}/t/
+ cp -r ${B}/example ${D}${PTEST_PATH}
+ cp -r ${B}/test ${D}${PTEST_PATH}
+ chown -R root:root ${D}${PTEST_PATH}
+}
diff --git a/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb b/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb
index d1b0de093c..487a5c22cd 100644
--- a/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb
+++ b/meta-perl/recipes-perl/libxml/libxml-sax-writer-perl_0.57.bb
@@ -7,10 +7,10 @@ although it has been put to limited use in settings such as XML::LibXML and \
the AxKit XML Application Server. \
"
SECTION = "libs"
-LICENSE = "Artistic-1.0 | GPLv1+"
+LICENSE = "Artistic-1.0 | GPL-1.0-or-later"
HOMEPAGE = "http://search.cpan.org/dist/XML-SAX-Writer/"
DEPENDS += "libxml-filter-buffertext-perl-native"
-RDEPENDS_${PN} += "libxml-filter-buffertext-perl"
+RDEPENDS:${PN} += "libxml-filter-buffertext-perl"
SRC_URI = "http://search.cpan.org/CPAN/authors/id/P/PE/PERIGRIN/XML-SAX-Writer-${PV}.tar.gz"
SRC_URI[md5sum] = "3e3023c648e3003c04de2fb04435f8bd"
diff --git a/meta-perl/recipes-perl/po4a/po4a_0.49.bb b/meta-perl/recipes-perl/po4a/po4a_0.49.bb
index 5db5b8f8bc..679ea0fb44 100644
--- a/meta-perl/recipes-perl/po4a/po4a_0.49.bb
+++ b/meta-perl/recipes-perl/po4a/po4a_0.49.bb
@@ -3,10 +3,10 @@ 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 = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=a96fc9b4cc36d80659e694ea109f0325"
-SRC_URI = "git://alioth.debian.org/anonscm/git/po4a/po4a.git;protocol=https"
+SRC_URI = "git://github.com/mquinson/po4a.git;protocol=https;branch=master"
# v0.49
SRCREV = "79ed87a577a543538fe39c7b60079981f5997072"
@@ -21,7 +21,7 @@ DEPENDS = " \
libunicode-linebreak-perl \
"
-RRECOMMENDS_${PN} = " \
+RRECOMMENDS:${PN} = " \
libtext-wrapi18n-perl \
libterm-readkey-perl \
liblocale-gettext-perl \
diff --git a/meta-python/README b/meta-python/README
deleted file mode 100644
index 705b035d9e..0000000000
--- a/meta-python/README
+++ /dev/null
@@ -1,49 +0,0 @@
-meta-python
-================================
-
-Introduction
--------------------------
-
-This layer is intended to be the home of python modules for OpenEmbedded.
-
-Dependencies
--------------------------
-
-The meta-python layer depends on:
-
- URI: git://git.openembedded.org/openembedded-core
- layers: meta
- branch: master
- revision: HEAD
-
- URI: git://git.openembedded.org/meta-openembedded
- layers: meta-oe
- branch: master
- revision: HEAD
-
-Please follow the recommended setup procedures of your OE distribution.
-For Angstrom that is:
- http://www.angstrom-distribution.org/building-angstrom,
-other distros should have similar online resources.
-
-Contributing
--------------------------
-
-The meta-openembedded mailinglist
-(openembedded-devel@lists.openembedded.org) is used for questions,
-comments and patch review. It is subscriber only, so please register
-before posting.
-
-Send pull requests to openembedded-devel@lists.openembedded.org with
-'[meta-python]' in the subject.
-
-When sending single patches, please use something like:
-'git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix=meta-python][PATCH'
-
-Maintenance
--------------------------
-
-Layer Maintainers:
- Tim "moto-timo" Orling <TicoTimo@gmail.com>
- Derek Straka <derek@asterius.io>
-
diff --git a/meta-python/README.md b/meta-python/README.md
new file mode 100644
index 0000000000..36c193957c
--- /dev/null
+++ b/meta-python/README.md
@@ -0,0 +1,41 @@
+meta-python
+================================
+
+Introduction
+-------------------------
+
+This layer is intended to be the home of python modules for OpenEmbedded.
+
+Dependencies
+-------------------------
+
+The meta-python layer depends on:
+
+ URI: git://git.openembedded.org/openembedded-core
+ layers: meta
+ branch: master
+
+ URI: git://git.openembedded.org/meta-openembedded
+ layers: meta-oe
+ branch: master
+
+Contributing
+-------------------------
+
+The meta-openembedded mailinglist
+(openembedded-devel@lists.openembedded.org) is used for questions,
+comments and patch review. It is subscriber only, so please register
+before posting.
+
+Send pull requests to openembedded-devel@lists.openembedded.org with
+'[meta-python]' in the subject.
+
+When sending single patches, please use something like:
+git send-email -M -1 --to=openembedded-devel@lists.openembedded.org --subject-prefix='meta-python][PATCH'
+
+Maintenance
+-------------------------
+
+Layer maintainers:
+ Tim "moto-timo" Orling <TicoTimo@gmail.com>
+ Derek Straka <derek@asterius.io>
diff --git a/meta-python/classes/bandit.bbclass b/meta-python/classes/bandit.bbclass
new file mode 100644
index 0000000000..dc1041e466
--- /dev/null
+++ b/meta-python/classes/bandit.bbclass
@@ -0,0 +1,63 @@
+# Class to scan Python code for security issues, using Bandit.
+#
+# $ bitbake python-foo -c bandit
+#
+# Writes the report to $DEPLOY_DIR/bandit/python-foo.html.
+# No output if no issues found, a warning if issues found.
+#
+# https://github.com/PyCQA/bandit
+
+# Default location of sources, based on standard distutils
+BANDIT_SOURCE ?= "${S}/build"
+
+# The report format to use.
+# https://bandit.readthedocs.io/en/latest/formatters/index.html
+BANDIT_FORMAT ?= "html"
+
+# Whether a scan should be done every time the recipe is built.
+#
+# By default the scanning needs to be done explicitly, but by setting BANDIT_AUTO
+# to 1 the scan will be done whenever the recipe it built. Note that you
+# shouldn't set BANDIT_AUTO to 1 globally as it will then try to scan every
+# recipe, including non-Python recipes, causing circular loops.
+BANDIT_AUTO ?= "0"
+
+# Whether Bandit finding issues results in a warning (0) or an error (1).
+BANDIT_FATAL ?= "0"
+
+do_bandit[depends] = "python3-bandit-native:do_populate_sysroot"
+python do_bandit() {
+ import os, subprocess
+ try:
+ report = d.expand("${DEPLOY_DIR}/bandit/${PN}-${PV}.${BANDIT_FORMAT}")
+ os.makedirs(os.path.dirname(report), exist_ok=True)
+
+ args = ("bandit",
+ "--format", d.getVar("BANDIT_FORMAT"),
+ "--output", report,
+ "-ll",
+ "--recursive", d.getVar("BANDIT_SOURCE"))
+ subprocess.check_output(args, stderr=subprocess.STDOUT)
+ bb.note("Bandit found no issues (report written to %s)" % report)
+ except subprocess.CalledProcessError as e:
+ if e.returncode == 1:
+ if oe.types.boolean(d.getVar("BANDIT_FATAL")):
+ bb.error("Bandit found issues (report written to %s)" % report)
+ else:
+ bb.warn("Bandit found issues (report written to %s)" % report)
+ else:
+ bb.error("Bandit failed:\n" + e.output.decode("utf-8"))
+}
+
+python() {
+ before = "do_build"
+ after = "do_compile"
+
+ if oe.types.boolean(d.getVar("BANDIT_AUTO")):
+ bb.build.addtask("do_bandit", before, after, d)
+ else:
+ bb.build.addtask("do_bandit", None, after, d)
+}
+
+# TODO: store report in sstate
+# TODO: a way to pass extra args or .bandit file, basically control -ll
diff --git a/meta-python/classes/distutils-common-base.bbclass b/meta-python/classes/distutils-common-base.bbclass
new file mode 100644
index 0000000000..59c750a3cf
--- /dev/null
+++ b/meta-python/classes/distutils-common-base.bbclass
@@ -0,0 +1,28 @@
+export STAGING_INCDIR
+export STAGING_LIBDIR
+
+# LDSHARED is the ld *command* used to create shared library
+export LDSHARED = "${CCLD} -shared"
+# LDXXSHARED is the ld *command* used to create shared library of C++
+# objects
+export LDCXXSHARED = "${CXX} -shared"
+# CCSHARED are the C *flags* used to create objects to go into a shared
+# library (module)
+export CCSHARED = "-fPIC -DPIC"
+# LINKFORSHARED are the flags passed to the $(CC) command that links
+# the python executable
+export LINKFORSHARED = "${SECURITY_CFLAGS} -Xlinker -export-dynamic"
+
+FILES:${PN} += "${libdir}/* ${libdir}/${PYTHON_DIR}/*"
+
+FILES:${PN}-staticdev += "\
+ ${PYTHON_SITEPACKAGES_DIR}/*.a \
+"
+FILES:${PN}-dev += "\
+ ${datadir}/pkgconfig \
+ ${libdir}/pkgconfig \
+ ${PYTHON_SITEPACKAGES_DIR}/*.la \
+"
+python __anonymous() {
+ bb.warn("distutils-common-base.bbclass is deprecated, please use setuptools3-base.bbclass instead")
+}
diff --git a/meta-python/classes/distutils3-base.bbclass b/meta-python/classes/distutils3-base.bbclass
new file mode 100644
index 0000000000..850c535bb1
--- /dev/null
+++ b/meta-python/classes/distutils3-base.bbclass
@@ -0,0 +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']}"
+
+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
new file mode 100644
index 0000000000..a6d8e8763f
--- /dev/null
+++ b/meta-python/classes/distutils3.bbclass
@@ -0,0 +1,71 @@
+inherit distutils3-base
+
+B = "${WORKDIR}/build"
+distutils_do_configure[cleandirs] = "${B}"
+
+DISTUTILS_BUILD_ARGS ?= ""
+DISTUTILS_INSTALL_ARGS ?= "--root=${D} \
+ --prefix=${prefix} \
+ --install-lib=${PYTHON_SITEPACKAGES_DIR} \
+ --install-data=${datadir}"
+
+DISTUTILS_PYTHON = "python3"
+DISTUTILS_PYTHON:class-native = "nativepython3"
+
+DISTUTILS_SETUP_PATH ?= "${S}"
+
+python __anonymous() {
+ bb.warn("distutils3.bbclass is deprecated, please use setuptools3.bbclass instead")
+}
+
+distutils3_do_configure() {
+ :
+}
+
+distutils3_do_compile() {
+ cd ${DISTUTILS_SETUP_PATH}
+ NO_FETCH_BUILD=1 \
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+ build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \
+ bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
+}
+distutils3_do_compile[vardepsexclude] = "MACHINE"
+
+distutils3_do_install() {
+ cd ${DISTUTILS_SETUP_PATH}
+ install -d ${D}${PYTHON_SITEPACKAGES_DIR}
+ STAGING_INCDIR=${STAGING_INCDIR} \
+ STAGING_LIBDIR=${STAGING_LIBDIR} \
+ PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
+ ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
+ build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \
+ bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
+
+ # support filenames with *spaces*
+ find ${D} -name "*.py" -exec grep -q ${D} {} \; \
+ -exec sed -i -e s:${D}::g {} \;
+
+ for i in ${D}${bindir}/* ${D}${sbindir}/*; do
+ if [ -f "$i" ]; then
+ sed -i -e s:${PYTHON}:${USRBINPATH}/env\ ${DISTUTILS_PYTHON}:g $i
+ sed -i -e s:${STAGING_BINDIR_NATIVE}:${bindir}:g $i
+ fi
+ done
+
+ rm -f ${D}${PYTHON_SITEPACKAGES_DIR}/easy-install.pth
+
+ #
+ # FIXME: Bandaid against wrong datadir computation
+ #
+ if [ -e ${D}${datadir}/share ]; then
+ mv -f ${D}${datadir}/share/* ${D}${datadir}/
+ rmdir ${D}${datadir}/share
+ fi
+}
+distutils3_do_install[vardepsexclude] = "MACHINE"
+
+EXPORT_FUNCTIONS do_configure do_compile do_install
+
+export LDSHARED="${CCLD} -shared"
diff --git a/meta-python/classes/python_mesonpy.bbclass b/meta-python/classes/python_mesonpy.bbclass
new file mode 100644
index 0000000000..131fa74bed
--- /dev/null
+++ b/meta-python/classes/python_mesonpy.bbclass
@@ -0,0 +1,52 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+
+inherit meson setuptools3-base python3targetconfig python_pep517
+
+# meson_do_qa_configure does the wrong thing here because
+# mesonpy runs "meson setup ..." in do_compile context.
+# Make it a dummy function.
+meson_do_qa_configure () {
+ :
+}
+
+# This prevents the meson error:
+# ERROR: Got argument buildtype as both -Dbuildtype and --buildtype. Pick one.
+MESONOPTS:remove = "--buildtype ${MESON_BUILDTYPE}"
+
+CONFIGURE_FILES = "pyproject.toml"
+
+DEPENDS += "python3-wheel-native python3-meson-python-native"
+
+def mesonpy_get_args(d):
+ vars = ['MESONOPTS', 'MESON_CROSS_FILE', 'EXTRA_OEMESON']
+ varlist = []
+ for var in vars:
+ value = d.getVar(var)
+ vallist = value.split()
+ for elem in vallist:
+ varlist.append("-Csetup-args=" + elem)
+ return ' '.join(varlist)
+
+PEP517_BUILD_OPTS = "-Cbuilddir='${B}' ${@mesonpy_get_args(d)}"
+
+# Python pyx -> c -> so build leaves absolute build paths in the code
+INSANE_SKIP:${PN} += "buildpaths"
+INSANE_SKIP:${PN}-src += "buildpaths"
+
+python_mesonpy_do_configure () {
+ python_pep517_do_configure
+}
+
+python_mesonpy_do_compile () {
+ python_pep517_do_compile
+}
+
+python_mesonpy_do_install () {
+ python_pep517_do_install
+}
+
+EXPORT_FUNCTIONS do_configure do_compile do_install
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..c4a752ae61
--- /dev/null
+++ b/meta-python/conf/include/ptest-packagelists-meta-python.inc
@@ -0,0 +1,86 @@
+#
+# 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-ansicolors \
+ python3-asgiref \
+ python3-aspectlib \
+ python3-blinker \
+ python3-cachetools \
+ python3-cbor2 \
+ python3-click \
+ python3-dominate \
+ python3-execnet \
+ python3-geojson \
+ python3-html2text \
+ python3-inflection \
+ python3-intervals \
+ python3-ipy \
+ python3-iso3166 \
+ python3-parse-type \
+ python3-platformdirs \
+ python3-polyline \
+ python3-precise-runner \
+ python3-prettytable \
+ python3-pylint \
+ python3-ptyprocess \
+ python3-pyasn1-modules \
+ python3-pyroute2 \
+ python3-pyserial \
+ python3-pytoml \
+ python3-requests-file \
+ python3-requests-toolbelt \
+ python3-semver \
+ python3-serpent \
+ python3-simpleeval \
+ python3-smpplib \
+ python3-soupsieve \
+ python3-sqlparse \
+ python3-tomlkit \
+ python3-u-msgpack-python \
+ python3-unidiff \
+ python3-uritemplate \
+ python3-xmltodict \
+ python3-xxhash \
+"
+
+PTESTS_SLOW_META_PYTHON = "\
+ python3-lz4 \
+"
+
+PTESTS_PROBLEMS_META_PYTHON ="\
+ python3-appdirs \
+ python3-betamax \
+ python3-dnspython \
+ python3-fastjsonschema \
+ python3-gpiod \
+ python3-gunicorn \
+ python3-inotify \
+ python3-jdcal \
+ python3-jsmin \
+ python3-license-expression \
+ python3-msgpack \
+ python3-multidict \
+ python3-ordered-set \
+ python3-parse \
+ python3-pillow \
+ python3-pint \
+ python3-py-cpuinfo \
+ python3-pytest-lazy-fixture \
+ python3-pytest-mock \
+ python3-pyzmq \
+ python3-scrypt \
+ python3-service-identity \
+ python3-trustme \
+ python3-typeguard \
+ python3-whoosh \
+ python3-ujson \
+ python3-xlrd \
+ python3-yappi \
+ python3-yarl \
+"
diff --git a/meta-python/conf/layer.conf b/meta-python/conf/layer.conf
index 7089071faf..1d408e8d24 100644
--- a/meta-python/conf/layer.conf
+++ b/meta-python/conf/layer.conf
@@ -6,14 +6,14 @@ BBFILES += "${LAYERDIR}/recipes*/*/*.bb ${LAYERDIR}/recipes*/*/*.bbappend"
BBFILE_COLLECTIONS += "meta-python"
BBFILE_PATTERN_meta-python := "^${LAYERDIR}/"
-BBFILE_PRIORITY_meta-python = "7"
+BBFILE_PRIORITY_meta-python = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
LAYERVERSION_meta-python = "1"
-LAYERDEPENDS_meta-python = "core openembedded-layer"
+LAYERDEPENDS_meta-python = "core (>= 12) openembedded-layer"
-LAYERSERIES_COMPAT_meta-python = "sumo"
+LAYERSERIES_COMPAT_meta-python = "mickledore"
LICENSE_PATH += "${LAYERDIR}/licenses"
diff --git a/meta-python/licenses/CRC32C-ADLER b/meta-python/licenses/CRC32C-ADLER
new file mode 100644
index 0000000000..f1f0e94ee0
--- /dev/null
+++ b/meta-python/licenses/CRC32C-ADLER
@@ -0,0 +1,15 @@
+This software is provided 'as-is', without any express or implied
+warranty. In no event will the author be held liable for any damages
+arising from the use of this software.
+
+Permission is granted to anyone to use this software for any purpose,
+including commercial applications, and to alter it and redistribute it
+freely, subject to the following restrictions:
+
+1. The origin of this software must not be misrepresented; you must not
+ claim that you wrote the original software. If you use this software
+ in a product, an acknowledgment in the product documentation would be
+ appreciated but is not required.
+2. Altered source versions must be plainly marked as such, and must not be
+ misrepresented as being the original software.
+3. This notice may not be removed or altered from any source distribution.
diff --git a/meta-python/licenses/WTFPL b/meta-python/licenses/WTFPL
new file mode 100644
index 0000000000..5a8e332545
--- /dev/null
+++ b/meta-python/licenses/WTFPL
@@ -0,0 +1,14 @@
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ Version 2, December 2004
+
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
+
+ Everyone is permitted to copy and distribute verbatim or modified
+ copies of this license document, and changing it is allowed as long
+ as the name is changed.
+
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
+
diff --git a/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in b/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in
deleted file mode 100644
index 4503da4221..0000000000
--- a/meta-python/recipes-connectivity/gateone/gateone/80oe.conf.in
+++ /dev/null
@@ -1,24 +0,0 @@
-// Some custom Gate One settings for OpenEmbedded
-{
- "*": {
- "gateone": { // These settings apply to all of Gate One
- "log_file_prefix": "@localstate@/log/gateone.log", // default would be /var/log/gateone/gateone.log
- "log_file_max_size": 5242880, // 5 megabyte logs for OE by default (default would normally be 100Mb)
- "log_file_num_backups": 2, // Default is normally 10
- "origins": ["*"], // Every device has a unique origin
- "logging": "info",
- "pid_file": "/run/gateone.pid",
- "session_dir": "/tmp/gateone",
- "user_dir": "@localstate@/lib/gateone/users"
- },
- "terminal": {
- // Disabling session logging for embedded devices is a good idea (limited/slow storage)
- "session_logging": false,
- "syslog_session_logging": false
-// "commands": {
-// // For some reason this doesn't work (never asks for the password)
-// "login": "setsid /bin/login" // Normally this would emulate logging into the host console
-// }
- }
- }
-}
diff --git a/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service b/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service
deleted file mode 100644
index 0f613d18e8..0000000000
--- a/meta-python/recipes-connectivity/gateone/gateone/gateone-avahi.service
+++ /dev/null
@@ -1,10 +0,0 @@
-<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
-<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
-
-<service-group>
- <name replace-wildcards="yes">GateOne on %h</name>
- <service>
- <type>_https._tcp</type>
- <port>443</port>
- </service>
-</service-group>
diff --git a/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in b/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in
deleted file mode 100644
index 86d655c94d..0000000000
--- a/meta-python/recipes-connectivity/gateone/gateone/gateone-init.in
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/bin/sh -e
-### BEGIN INIT INFO
-# Provides: gateone
-# Required-Start: networking
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Gateone HTML5 ssh client
-# Description: Gateone HTML5 terminal emulator and SSH client.
-### END INIT INFO
-
-. /etc/init.d/functions
-
-NAME=gateone
-DAEMON=@bindir@/gateone
-PIDFILE=/run/gateone.pid
-WORKDIR=@localstate@/lib/gateone
-
-do_start() {
- cd $WORKDIR
- @bindir@/python $DAEMON > /dev/null 2>&1 &
- cd $OLDPWD
-}
-
-do_stop() {
- kill -TERM `cat $PIDFILE`
-}
-
-case "$1" in
- start)
- echo "Starting gateone"
- do_start
- ;;
- stop)
- echo "Stopping gateone"
- do_stop
- ;;
- restart|force-reload)
- echo "Restart gateone"
- do_stop
- sleep 1
- do_start
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|force-reload}" >&2
- exit 1
- ;;
-esac
diff --git a/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in b/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in
deleted file mode 100644
index 44667275a2..0000000000
--- a/meta-python/recipes-connectivity/gateone/gateone/gateone.service.in
+++ /dev/null
@@ -1,10 +0,0 @@
-[Unit]
-Description=GateOne daemon
-ConditionPathExists=|@localstate@/lib/gateone
-
-[Service]
-WorkingDirectory=@localstate@/lib/gateone
-ExecStart=@bindir@/python @bindir@/gateone
-
-[Install]
-WantedBy=multi-user.target
diff --git a/meta-python/recipes-connectivity/gateone/gateone_git.bb b/meta-python/recipes-connectivity/gateone/gateone_git.bb
deleted file mode 100644
index 4577873ded..0000000000
--- a/meta-python/recipes-connectivity/gateone/gateone_git.bb
+++ /dev/null
@@ -1,87 +0,0 @@
-SUMMARY = "HTML5 (plugin-free) web-based terminal emulator and SSH client"
-LICENSE = "AGPL-3.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=834cbc6995db88433db17cdf8953a428"
-HOMEPAGE = "http://liftoffsoftware.com/Products/GateOne"
-
-PV = "1.2+git${SRCPV}"
-SRCREV = "f7a9be46cb90f57459ebd363d24702de0e651034"
-SRC_URI = "git://github.com/liftoff/GateOne.git;branch=master \
- file://gateone-avahi.service \
- file://80oe.conf.in \
- file://gateone.service.in \
- file://gateone-init.in \
-"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools python-dir systemd update-rc.d
-
-DISTUTILS_INSTALL_ARGS = "--root=${D} \
- --prefix=${prefix} \
- --install-lib=${PYTHON_SITEPACKAGES_DIR} \
- --install-data=${PYTHON_SITEPACKAGES_DIR} \
- --install-scripts=${bindir} \
- --skip_init_scripts"
-
-do_install_append() {
-
- # fix up hardcoded paths
- for file in gateone.service gateone-init 80oe.conf; do
- sed -e s:@bindir@:${bindir}:g \
- -e s:@localstate@:${localstatedir}:g \
- < ${WORKDIR}/$file.in \
- > ${WORKDIR}/$file
- done
-
- install -d ${D}${systemd_unitdir}/system
- install -m 0644 ${WORKDIR}/gateone.service ${D}${systemd_unitdir}/system
-
- install -d ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/gateone-init ${D}${sysconfdir}/init.d/gateone
-
- install -m 0755 -d ${D}${sysconfdir}/avahi/services/
- install -m 0644 ${WORKDIR}/gateone-avahi.service ${D}${sysconfdir}/avahi/services/
-
- install -m 0755 -d ${D}${sysconfdir}/gateone/conf.d/
- install -m 0644 ${WORKDIR}/80oe.conf ${D}${sysconfdir}/gateone/conf.d/80oe.conf
-
- install -d ${D}${localstatedir}/lib/gateone
-}
-
-FILES_${PN} = "${localstatedir}/lib ${bindir} ${base_libdir} ${sysconfdir} ${PYTHON_SITEPACKAGES_DIR}"
-RDEPENDS_${PN} = "mime-support \
- openssh-ssh \
- python-compression \
- python-contextlib \
- python-crypt \
- python-datetime \
- python-email \
- python-fcntl \
- python-futures \
- python-html \
- python-imaging \
- python-io \
- python-json \
- python-logging \
- python-misc \
- python-multiprocessing \
- python-netclient \
- python-pkgutil \
- python-pyopenssl \
- python-re \
- python-setuptools \
- python-shell \
- python-simplejson \
- python-subprocess \
- python-syslog \
- python-terminal \
- python-textutils \
- python-tornado \
- python-unixadmin \
- python-xml \
- python-html5lib \
- bash \
-"
-
-SYSTEMD_SERVICE_${PN} = "gateone.service"
-INITSCRIPT_NAME = "gateone"
diff --git a/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc b/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc
deleted file mode 100644
index 11971dc4a4..0000000000
--- a/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "A simple connection pool for gevent"
-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"
-
-SRC_URI[md5sum] = "49f5f292ef1b60944ae92ca426a5e550"
-SRC_URI[sha256sum] = "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14"
-
-inherit pypi
diff --git a/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool_0.1.6.bb b/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool_0.1.6.bb
deleted file mode 100644
index e96ad1ca1b..0000000000
--- a/meta-python/recipes-connectivity/python-gsocketpool/python-gsocketpool_0.1.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-gsocketpool.inc
-inherit setuptools
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 883621e214..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
@@ -1,2 +1,15 @@
-require python-gsocketpool.inc
-inherit setuptools3
+SUMMARY = "A simple connection pool for gevent"
+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"
+
+RDEPENDS:${PN} += " \
+ python3-gevent \
+ python3-logging \
+"
+
+SRC_URI[md5sum] = "49f5f292ef1b60944ae92ca426a5e550"
+SRC_URI[sha256sum] = "f2e2749aceadce6b27ca52e2b0a64af99797746a8681e1a2963f72007c14cb14"
+
+inherit pypi setuptools3
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
new file mode 100644
index 0000000000..c2d58846df
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-h2/python3-h2_4.1.0.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "HTTP/2 State-Machine based protocol implementation"
+HOMEPAGE = "https://github.com/python-hyper/hyper-h2"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aa3b9b4395563dd427be5f022ec321c1"
+
+SRC_URI[sha256sum] = "a83aca08fbe7aacb79fec788c9c0bac936343560ed9ec18b82a13a12c28d2abb"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-hpack ${PYTHON_PN}-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
new file mode 100644
index 0000000000..0297cb8c27
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-hpack/python3-hpack_4.0.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Pure-Python HPACK header compression"
+HOMEPAGE = "https://github.com/python-hyper/hpack"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
+
+SRC_URI[md5sum] = "27e01514ef06dc9fa0798d3dcb7de47c"
+SRC_URI[sha256sum] = "fc41de0c63e687ebffde81187a948221294896f6bdc0ae2312708df339430095"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-logging"
diff --git a/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_6.0.1.bb b/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_6.0.1.bb
new file mode 100644
index 0000000000..2d46e96112
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-hyperframe/python3-hyperframe_6.0.1.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "HTTP/2 framing layer for Python"
+HOMEPAGE = "https://github.com/python-hyper/hyperframe"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5bf1c68e73fbaec2b1687b7e71514393"
+
+SRC_URI[sha256sum] = "ae510046231dc8e9ecb1a6586f63d2347bf4c8905914aa84ba585ae85f28a914"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc b/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc
deleted file mode 100644
index 05fbae48b4..0000000000
--- a/meta-python/recipes-connectivity/python-mprpc/python-mprpc.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A gevent based messagpack rpc library"
-DESCRIPTION = "mprpc is a fast implementation of the messagepack rpc protocol for python. \
-It is based on gevent for handling connections and enabling concurrent connections."
-HOMEPAGE = "https://github.com/studio-ousia/mprpc"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4ba825394aec026b5f94edca44426859"
-DEPENDS += "${PYTHON_PN}-gevent"
-RDEPENDS_${PN} += "${PYTHON_PN}-gevent ${PYTHON_PN}-msgpack ${PYTHON_PN}-gsocketpool"
-
-SRC_URI[md5sum] = "acde1f346411997d76ab89790a356823"
-SRC_URI[sha256sum] = "e8ddd47e7a2fb2d3b203fcc522443ee5be56c8f7e2c6d915c047445951cef1fb"
-
-inherit pypi
diff --git a/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb b/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb
deleted file mode 100644
index 6b2ea21932..0000000000
--- a/meta-python/recipes-connectivity/python-mprpc/python-mprpc_0.1.16.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-mprpc.inc
-inherit setuptools
diff --git a/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb b/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb
deleted file mode 100644
index 837d604ed5..0000000000
--- a/meta-python/recipes-connectivity/python-mprpc/python3-mprpc_0.1.16.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-mprpc.inc
-inherit setuptools3
diff --git a/meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb b/meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb
new file mode 100644
index 0000000000..93b694c8b8
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-priority/python3-priority_2.0.0.bb
@@ -0,0 +1,9 @@
+DESCRIPTION = "A pure-Python implementation of the HTTP/2 priority tree"
+HOMEPAGE = "https://github.com/python-hyper/priority"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ae57d8a09fc8b6b164d7357339619045"
+
+SRC_URI[sha256sum] = "c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb b/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb
deleted file mode 100644
index 77b5e4dcff..0000000000
--- a/meta-python/recipes-connectivity/python-pyconnman/python-pyconnman_0.1.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Python-based Network Connectivity Management"
-HOMEPAGE = "https://pypi.python.org/pypi/pyconnman/"
-LICENSE = "Apache-2.0"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[md5sum] = "b7fa82034b1c0e1fb1b518ffe3bb4fc0"
-SRC_URI[sha256sum] = "46c64c0692063fd0c9fb0216d49f7884bec9fa9760d8473db4b1e2f8162fab4a"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "connman python-dbus python-pprint"
diff --git a/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.2.0.bb b/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.2.0.bb
new file mode 100644
index 0000000000..359a2918cf
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-pyconnman/python3-pyconnman_0.2.0.bb
@@ -0,0 +1,12 @@
+DESCRIPTION = "Python-based Network Connectivity Management"
+HOMEPAGE = "https://pypi.python.org/pypi/pyconnman/"
+LICENSE = "Apache-2.0"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[md5sum] = "d60bdffbd9c920f005fdc5e05a8b94cd"
+SRC_URI[sha256sum] = "d3a63a039c82b08a1171b003eafa62c6f128aa4eaa1ce7a55a9401b48f9ad926"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "connman python3-dbus python3-pprint python3-future"
diff --git a/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.63.bb b/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.63.bb
deleted file mode 100644
index 6f683e3e7f..0000000000
--- a/meta-python/recipes-connectivity/python-pyro4/python-pyro4_4.63.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python Remote Objects"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=378acef375e17a3bff03bd0f78c53220"
-
-SRC_URI[md5sum] = "e1d772b67bf7c6f75fa3174bc95c8839"
-SRC_URI[sha256sum] = "67d2b34156619ba37e92100af95aade8129dd2b7327eb05821d43887451f7d7b"
-
-PYPI_PACKAGE = "Pyro4"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-selectors34 \
- ${PYTHON_PN}-serpent \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-zlib \
- "
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
new file mode 100644
index 0000000000..a7ed75f018
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.82.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Python Remote Objects"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc"
+
+SRC_URI[sha256sum] = "511f5b0804e92dd77dc33adf9c947787e3f9e9c5a96b12162f0557a7c4ce21fb"
+
+PYPI_PACKAGE = "Pyro4"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-serpent \
+ ${PYTHON_PN}-threading \
+ "
diff --git a/meta-python/recipes-connectivity/python-pytun/python-pytun.inc b/meta-python/recipes-connectivity/python-pytun/python-pytun.inc
deleted file mode 100644
index 79a8bfb21b..0000000000
--- a/meta-python/recipes-connectivity/python-pytun/python-pytun.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Python TUN/TAP tunnel module"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=13f7629e8e4989b66b4a913ab05a91de"
-
-SRC_URI[md5sum] = "5b35b1cf80a02cca7ec72eb95d6b0192"
-SRC_URI[sha256sum] = "07595dadf85f5176eb08c8d4d9ba5b862a180e96633f670f91437c47a1bead0d"
-
-PYPI_PACKAGE = "python-pytun"
-
-inherit pypi
diff --git a/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb b/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb
deleted file mode 100644
index 3fc587f3a3..0000000000
--- a/meta-python/recipes-connectivity/python-pytun/python-pytun_2.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pytun.inc
-inherit setuptools
diff --git a/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb b/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb
deleted file mode 100644
index 938d9d7398..0000000000
--- a/meta-python/recipes-connectivity/python-pytun/python3-pytun_2.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pytun.inc
-inherit setuptools3
diff --git a/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb b/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb
deleted file mode 100644
index 8047ec77b9..0000000000
--- a/meta-python/recipes-connectivity/python-thrift/python-thrift_0.11.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Python bindings for the Apache Thrift RPC system"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=e3641ae1a26cf5c12a3a71bd3030ab0e"
-
-SRC_URI[md5sum] = "36165d5c80e6b101dbe9fcf7ef524d51"
-SRC_URI[sha256sum] = "7d59ac4fdcb2c58037ebd4a9da5f9a49e3e034bf75b3f26d9fe48ba3d8806e6b"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-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
new file mode 100644
index 0000000000..9bb3053885
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-thrift/python3-thrift_0.16.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] = "2b5b6488fcded21f9d312aa23c9ff6a0195d0f6ae26ddbd5ad9e3e25dfc14408"
+
+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 nativesdk"
diff --git a/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb b/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb
deleted file mode 100644
index 0b2ac118af..0000000000
--- a/meta-python/recipes-connectivity/python-txws/python-txws_0.9.1.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Twisted Web Sockets"
-HOMEPAGE = "https://github.com/MostAwesomeDude/txWS"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=76699830db7fa9e897f6a1ad05f98ec8"
-
-DEPENDS = "python-twisted python-six python-vcversioner"
-
-SRC_URI = "git://github.com/MostAwesomeDude/txWS.git"
-SRCREV= "88cf6d9b9b685ffa1720644bd53c742afb10a414"
-
-S = "${WORKDIR}/git"
-
-inherit setuptools
-
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
new file mode 100644
index 0000000000..ef6375546e
--- /dev/null
+++ b/meta-python/recipes-connectivity/python-txws/python3-txws_0.9.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Twisted Web Sockets"
+HOMEPAGE = "https://github.com/MostAwesomeDude/txWS"
+
+LICENSE = "Apache-2.0"
+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/python3-pytun/python3-pytun_2.4.1.bb b/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.4.1.bb
new file mode 100644
index 0000000000..08ec2cf670
--- /dev/null
+++ b/meta-python/recipes-connectivity/python3-pytun/python3-pytun_2.4.1.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Python TUN/TAP tunnel module"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=13f7629e8e4989b66b4a913ab05a91de"
+
+SRC_URI[sha256sum] = "20b53ea7a09dfe173c00ec0a00eea508b05e959f5dc4b4bb698aa52252192f8f"
+
+PYPI_PACKAGE = "python-pytun"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch b/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch
deleted file mode 100644
index df95a4c138..0000000000
--- a/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/remove_duplicate_install.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-commit f6c67662145de889055a86a6b3b12c70a45fc8d5
-Author: Dongxiao Xu <dongxiao.xu@intel.com>
-Date: Wed Sep 7 16:02:20 2011 +0800
-
- 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.
-
- Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
-
- Upstream-Status: Inappropirate [upstream inactive]
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 5c27dfe..7536e43 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -11,7 +11,7 @@ telepathy_PYTHON = \
-
- # telepathy._generated.* auto-generated modules
- spec_dir = $(top_srcdir)/spec
--spec_files := $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml))
-+spec_files := $(filter-out _generated/errors.py, $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml)))
-
- BUILT_SOURCES = \
- _generated/interfaces.py \
diff --git a/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch b/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/parallel_make.patch
index 248824606e..248824606e 100644
--- a/meta-python/recipes-connectivity/telepathy/telepathy-python-0.15.19/parallel_make.patch
+++ b/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/parallel_make.patch
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
new file mode 100644
index 0000000000..04d2da8ef2
--- /dev/null
+++ b/meta-python/recipes-connectivity/telepathy/telepathy-python3-0.15.19/remove_duplicate_install.patch
@@ -0,0 +1,26 @@
+commit f6c67662145de889055a86a6b3b12c70a45fc8d5
+Author: Dongxiao Xu <dongxiao.xu@intel.com>
+Date: Wed Sep 7 16:02:20 2011 +0800
+
+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.
+
+Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
+
+Upstream-Status: Inappropriate [upstream inactive]
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 5c27dfe..7536e43 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -11,7 +11,7 @@ telepathy_PYTHON = \
+
+ # telepathy._generated.* auto-generated modules
+ spec_dir = $(top_srcdir)/spec
+-spec_files := $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml))
++spec_files := $(filter-out _generated/errors.py, $(patsubst $(spec_dir)%.xml,_generated%.py,$(wildcard $(spec_dir)/*.xml)))
+
+ BUILT_SOURCES = \
+ _generated/interfaces.py \
diff --git a/meta-python/recipes-connectivity/telepathy/telepathy-python-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-python-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
new file mode 100644
index 0000000000..f5e2f67b35
--- /dev/null
+++ b/meta-python/recipes-connectivity/telepathy/telepathy-python3_0.15.19.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Telepathy IM framework - Python package"
+HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
+LICENSE = "LGPL-2.1-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
+ file://src/utils.py;beginline=1;endline=17;md5=9a07d1a9791a7429a14e7b25c6c86822"
+
+DEPENDS = "libxslt-native"
+
+SRC_URI = "http://telepathy.freedesktop.org/releases/telepathy-python/telepathy-python-${PV}.tar.gz \
+ file://parallel_make.patch \
+ file://remove_duplicate_install.patch \
+ file://telepathy-python_fix_for_automake_1.12.patch"
+
+PR = "r6"
+
+S = "${WORKDIR}/telepathy-python-${PV}"
+
+inherit autotools python3native
+
+SRC_URI[md5sum] = "f7ca25ab3c88874015b7e9728f7f3017"
+SRC_URI[sha256sum] = "244c0e1bf4bbd78ae298ea659fe10bf3a73738db550156767cc2477aedf72376"
+
+FILES:${PN} += "\
+ ${libdir}/python*/site-packages/telepathy/*.py \
+ ${libdir}/python*/site-packages/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__
+}
+RDEPENDS:${PN} += "python3-dbus"
diff --git a/meta-python/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb b/meta-python/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb
deleted file mode 100644
index b7aea24a79..0000000000
--- a/meta-python/recipes-connectivity/telepathy/telepathy-python_0.15.19.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Telepathy IM framework - Python package"
-HOMEPAGE = "http://telepathy.freedesktop.org/wiki/"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1 \
- file://src/utils.py;beginline=1;endline=17;md5=9a07d1a9791a7429a14e7b25c6c86822"
-
-DEPENDS = "libxslt-native"
-RDEPENDS_${PN} += "python-dbus"
-
-SRC_URI = "http://telepathy.freedesktop.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
- file://parallel_make.patch \
- file://remove_duplicate_install.patch \
- file://telepathy-python_fix_for_automake_1.12.patch"
-
-PR = "r6"
-
-inherit autotools pythonnative
-
-SRC_URI[md5sum] = "f7ca25ab3c88874015b7e9728f7f3017"
-SRC_URI[sha256sum] = "244c0e1bf4bbd78ae298ea659fe10bf3a73738db550156767cc2477aedf72376"
-
-FILES_${PN} += "\
- ${libdir}/python*/site-packages/telepathy/*.py \
- ${libdir}/python*/site-packages/telepathy/*/*.py \
-"
-
-do_install_append () {
- rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyc
- rm -f ${D}${libdir}/python*/site-packages/telepathy/*.pyo
- rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyc
- rm -f ${D}${libdir}/python*/site-packages/telepathy/*/*.pyo
-}
diff --git a/meta-python/recipes-core/images/meta-python-image-base.bb b/meta-python/recipes-core/images/meta-python-image-base.bb
new file mode 100644
index 0000000000..81081e61b2
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-image-base.bb
@@ -0,0 +1,7 @@
+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.bb b/meta-python/recipes-core/images/meta-python-image.bb
new file mode 100644
index 0000000000..6353d389b5
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-image.bb
@@ -0,0 +1,5 @@
+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-all-image.bb b/meta-python/recipes-core/images/meta-python-ptest-all-image.bb
new file mode 100644
index 0000000000..fd4dc42487
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-ptest-all-image.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}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' '.join(['meta-python-ptest-image-'+x+':do_testimage' for x in d.getVar('PTESTS_META_PYTHON').split()])}"
+
+do_build[depends] = "${@' '.join(['meta-python-ptest-image-'+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-ptest-fast-image.bb b/meta-python/recipes-core/images/meta-python-ptest-fast-image.bb
new file mode 100644
index 0000000000..4f93a15959
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-ptest-fast-image.bb
@@ -0,0 +1,6 @@
+require meta-python-ptest-all-image.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-ptest-image.bb b/meta-python/recipes-core/images/meta-python-ptest-image.bb
new file mode 100644
index 0000000000..a649cbb94c
--- /dev/null
+++ b/meta-python/recipes-core/images/meta-python-ptest-image.bb
@@ -0,0 +1,41 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-python.inc
+
+require meta-python-image-base.bb
+
+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}"
+
+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"
+
+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/packagegroups/packagegroup-meta-python.bb b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
new file mode 100644
index 0000000000..9500f80e03
--- /dev/null
+++ b/meta-python/recipes-core/packagegroups/packagegroup-meta-python.bb
@@ -0,0 +1,546 @@
+SUMMARY = "Meta-python ptest packagegroups"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+ packagegroup-meta-python3 \
+'
+
+# Note that python3-cvxopt requires Fortran support. To enable this,
+# add the following to your local.conf:
+# FORTRAN:forcevariable = ",fortran"
+RDEPENDS:packagegroup-meta-python3 = "\
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-systemd", "", d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 systemd", "python3-blivetgui", "", d)} \
+ gyp \
+ ${@bb.utils.contains("DISTRO_FEATURES", "pam", "pamela", "", d)} \
+ pyrtm \
+ python3-absl \
+ python3-aenum \
+ python3-aiofiles \
+ python3-aiohttp \
+ python3-aiohttp-jinja2 \
+ python3-aiohue \
+ python3-aiosignal \
+ python3-alembic \
+ python3-ansi2html \
+ python3-ansicolors \
+ python3-appdirs \
+ python3-apply-defaults \
+ python3-argcomplete \
+ python3-argexec \
+ python3-argh \
+ python3-arpeggio \
+ python3-asciitree \
+ python3-aspectlib \
+ python3-astor \
+ python3-astroid \
+ python3-asttokens \
+ python3-async-timeout \
+ python3-asyncio-glib \
+ python3-attr \
+ python3-autobahn \
+ python3-automat \
+ python3-aws-iot-device-sdk-python \
+ python3-backcall \
+ python3-bandit \
+ python3-beautifulsoup4 \
+ python3-behave \
+ python3-betamax \
+ python3-bitarray \
+ python3-bitstring \
+ python3-bitstruct \
+ python3-blinker \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-blivet", "", d)} \
+ python3-booleanpy \
+ python3-cachecontrol \
+ python3-cached-property \
+ python3-cachetools \
+ python3-can \
+ python3-cantools \
+ python3-cassandra-driver \
+ python3-cbor2 \
+ python3-cerberus \
+ python3-chardet \
+ python3-charset-normalizer \
+ python3-cheetah \
+ python3-click \
+ python3-click-repl \
+ python3-click-spinner \
+ python3-cmd2 \
+ python3-colorama \
+ python3-coloredlogs \
+ python3-colorlog \
+ python3-colorzero \
+ python3-configargparse \
+ python3-configobj \
+ python3-configshell-fb \
+ python3-constantly \
+ python3-contextlib2 \
+ python3-coverage \
+ python3-cppy \
+ python3-crcmod \
+ python3-croniter \
+ python3-cson \
+ python3-custom-inherit \
+ ${@bb.utils.contains_any('FORTRAN', [',fortran',',f77'], 'python3-cvxopt', '', d)} \
+ python3-cycler \
+ python3-cytoolz \
+ python3-dateparser \
+ python3-dateutil \
+ python3-dbus-next \
+ python3-dbussy \
+ python3-decorator \
+ python3-decouple \
+ python3-defusedxml \
+ python3-dill \
+ python3-diskcache \
+ python3-distro \
+ python3-django \
+ python3-django-south \
+ python3-djangorestframework \
+ python3-dnspython \
+ python3-docopt \
+ python3-docutils \
+ python3-dominate \
+ python3-dynamic-dispatch \
+ python3-ecdsa \
+ python3-editables \
+ python3-editor \
+ python3-email-validator \
+ python3-engineio \
+ python3-et-xmlfile \
+ python3-eth-abi \
+ python3-eth-account \
+ python3-eth-hash \
+ python3-eth-keyfile \
+ python3-eth-keys \
+ python3-eth-rlp \
+ python3-eth-typing \
+ python3-eth-utils \
+ python3-evdev \
+ python3-execnet \
+ python3-fann2 \
+ python3-fasteners \
+ python3-fastjsonschema \
+ python3-fastnumbers \
+ python3-fields \
+ python3-flask \
+ python3-flask-babel \
+ python3-flask-bootstrap \
+ python3-flask-jsonpify \
+ python3-flask-jwt \
+ python3-flask-login \
+ python3-flask-mail \
+ python3-flask-migrate \
+ python3-flask-nav \
+ python3-flask-pymongo \
+ python3-flask-restful \
+ python3-flask-sijax \
+ python3-flask-socketio \
+ python3-flask-sqlalchemy \
+ python3-flask-uploads \
+ python3-flask-user \
+ python3-flask-versioned \
+ python3-flask-wtf \
+ python3-flask-xstatic \
+ python3-future \
+ python3-frozenlist \
+ python3-gast \
+ python3-gcovr \
+ python3-geojson \
+ python3-geomet \
+ python3-gevent \
+ python3-gmpy2 \
+ python3-gmqtt \
+ python3-gnupg \
+ python3-google-api-python-client \
+ python3-gpiod \
+ python3-gpsd-py3 \
+ python3-graphviz \
+ python3-greenlet \
+ python3-greenstalk \
+ python3-grpcio \
+ python3-grpcio-tools \
+ python3-gsocketpool \
+ python3-gunicorn \
+ python3-h11 \
+ python3-h2 \
+ python3-h5py \
+ python3-hatchling \
+ python3-haversine \
+ python3-hpack \
+ python3-html2text \
+ python3-html5lib \
+ python3-httplib2 \
+ python3-huey \
+ python3-humanfriendly \
+ python3-humanize \
+ python3-hyperframe \
+ python3-hyperlink \
+ python3-icu \
+ python3-idna \
+ python3-idna \
+ python3-idna-ssl \
+ python3-ifaddr \
+ python3-imageio \
+ python3-imgtool \
+ python3-incremental \
+ python3-inflection \
+ python3-inotify \
+ python3-intelhex \
+ python3-intervals \
+ python3-ipaddress \
+ python3-ipy \
+ python3-ipython \
+ python3-ipython-genutils \
+ python3-iso3166 \
+ python3-isodate \
+ python3-isort \
+ python3-itsdangerous \
+ python3-javaobj-py3 \
+ python3-jdatetime \
+ python3-jdcal \
+ python3-jedi \
+ python3-jmespath \
+ python3-joblib \
+ python3-jsmin \
+ python3-jsonpatch \
+ python3-jsonpath-rw \
+ python3-jsonpointer \
+ python3-jsonref \
+ python3-jsonrpcserver \
+ python3-jsonschema \
+ python3-jstyleson \
+ python3-kconfiglib \
+ python3-keras-applications \
+ python3-keras-preprocessing \
+ ${@bb.utils.contains("DISTRO_FEATURES", "x11 opengl", "python3-kivy", "", d)} \
+ python3-kiwisolver \
+ python3-kmod \
+ python3-langtable \
+ python3-lazy-object-proxy \
+ python3-libconf \
+ python3-license-expression \
+ python3-ldap \
+ python3-lockfile \
+ python3-lorem \
+ python3-lrparsing \
+ python3-lru-dict \
+ python3-luma-core \
+ python3-luma-oled \
+ python3-lxml \
+ python3-lz4 \
+ python3-m2crypto \
+ python3-markupsafe \
+ python3-matplotlib \
+ python3-mccabe \
+ python3-meh \
+ python3-meld3 \
+ python3-mock \
+ python3-monotonic \
+ python3-mpmath \
+ python3-msgpack \
+ python3-msk \
+ python3-msm \
+ python3-multidict \
+ python3-mypy \
+ python3-mypy-extensions \
+ python3-natsort \
+ python3-netaddr \
+ python3-netifaces \
+ python3-networkx \
+ python3-nmap \
+ python3-nocasedict \
+ python3-nocaselist \
+ python3-ntplib \
+ python3-oauthlib \
+ python3-obd \
+ python3-openpyxl \
+ python3-ordered-set \
+ python3-padaos \
+ python3-padatious \
+ python3-paho-mqtt \
+ python3-pako \
+ python3-pandas \
+ python3-parallax \
+ python3-paramiko \
+ python3-parse \
+ python3-parse-type \
+ python3-parsimonious \
+ python3-parso \
+ python3-passlib \
+ python3-pastedeploy \
+ python3-pathspec \
+ python3-pathtools3 \
+ python3-pep8 \
+ python3-periphery \
+ python3-petact \
+ python3-pexpect \
+ python3-pickleshare \
+ python3-pid \
+ python3-pika \
+ python3-pillow \
+ python3-pint \
+ python3-pkcs11 \
+ python3-pkgconfig \
+ python3-pocketsphinx \
+ python3-polyline \
+ python3-portalocker \
+ python3-posix-ipc \
+ python3-prctl \
+ python3-precise-runner \
+ python3-prettytable \
+ python3-priority \
+ python3-process-tests \
+ python3-progress \
+ python3-prompt-toolkit \
+ python3-protobuf \
+ python3-ptyprocess \
+ python3-pulsectl \
+ python3-py-cpuinfo \
+ python3-py-ubjson \
+ python3-pyalsaaudio \
+ python3-pyasn1-modules \
+ python3-pyatspi \
+ python3-pyaudio \
+ python3-pybind11 \
+ python3-pybind11-json \
+ python3-pybluez \
+ python3-pychromecast \
+ python3-pycocotools \
+ python3-pycodestyle \
+ python3-pyconnman \
+ python3-pycurl \
+ python3-pydicti \
+ python3-pyephem \
+ python3-pyexpect \
+ python3-pyfanotify \
+ python3-pyfirmata \
+ python3-pyflakes \
+ python3-pyhamcrest \
+ python3-pyiface \
+ python3-pyinotify \
+ python3-pyjks \
+ python3-pyjwt \
+ python3-pykickstart \
+ python3-pykwalify \
+ python3-pylint \
+ python3-pylyrics \
+ python3-pymetno \
+ python3-pymisp \
+ python3-pymongo \
+ python3-pymysql \
+ python3-pynacl \
+ python3-pynetlinux \
+ python3-pyparted \
+ python3-pyperclip \
+ python3-pyperf \
+ python3-pyrad \
+ python3-pyro4 \
+ python3-pyroute2 \
+ python3-pyrsistent \
+ python3-pyscaffold \
+ python3-pyserial \
+ python3-pysonos \
+ ${@bb.utils.contains("DISTRO_FEATURES", "systemd", "python3-pystemd", "", d)} \
+ python3-pytest-asyncio \
+ python3-pytest-benchmark \
+ python3-pytest-cache \
+ python3-pytest-forked \
+ python3-pytest-helpers-namespace \
+ python3-pytest-html \
+ python3-pytest-lazy-fixture \
+ python3-pytest-metadata \
+ python3-pytest-tempdir \
+ python3-pytest-timeout \
+ python3-pytest-xdist \
+ python3-pythonping \
+ python3-python-vlc \
+ python3-pytoml \
+ python3-pytun \
+ python3-pytz-deprecation-shim \
+ python3-pyudev \
+ python3-pyusb \
+ python3-pywbem \
+ python3-pywbemtools \
+ python3-pyyaml \
+ python3-pyzmq \
+ python3-qrcode \
+ python3-raven \
+ python3-rdflib \
+ python3-redis \
+ python3-regex \
+ python3-requests-file \
+ python3-requests-ftp \
+ python3-requests-futures \
+ python3-requests-oauthlib \
+ python3-requests-toolbelt \
+ python3-rfc3339-validator \
+ python3-rfc3986-validator \
+ python3-rfc3987 \
+ python3-rlp \
+ python3-robotframework \
+ python3-robotframework-seriallibrary \
+ python3-rsa \
+ python3-ruamel-yaml \
+ python3-scrypt \
+ python3-sdnotify \
+ python3-semver \
+ 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 \
+ python3-simplejson \
+ python3-slip-dbus \
+ python3-smbus \
+ python3-smbus2 \
+ python3-smpplib \
+ python3-snappy \
+ python3-socketio \
+ python3-soupsieve \
+ python3-speaklater \
+ python3-speedtest-cli \
+ python3-spidev \
+ python3-spidev \
+ python3-sqlalchemy \
+ python3-sqlparse \
+ python3-sqlsoup \
+ python3-stevedore \
+ python3-supervisor \
+ python3-sympy \
+ python3-tabulate \
+ python3-term \
+ python3-termcolor \
+ python3-textparser \
+ python3-texttable \
+ python3-thrift \
+ python3-tinyrecord \
+ python3-tornado \
+ python3-toolz \
+ python3-tqdm \
+ python3-trafaret \
+ python3-trafaret-config \
+ python3-traitlets \
+ python3-transitions \
+ python3-trustme \
+ python3-twine \
+ python3-twisted \
+ python3-twitter \
+ python3-twofish \
+ 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 \
+ python3-wrapt \
+ python3-wtforms \
+ python3-xlrd \
+ python3-xlsxwriter \
+ python3-xmlrunner \
+ python3-xmltodict \
+ python3-xmodem \
+ python3-xstatic \
+ python3-xstatic-font-awesome \
+ python3-xxhash \
+ python3-yamlloader \
+ python3-yappi \
+ python3-yarl \
+ python3-zopeinterface \
+ telepathy-python3 \
+ unattended-upgrades \
+"
+
+RDEPENDS:packagegroup-meta-python3-ptest = "\
+ python3-ansicolors-ptest \
+ python3-appdirs-ptest \
+ python3-betamax-ptest \
+ python3-blinker-ptest \
+ python3-cachetools-ptest \
+ python3-cbor2-ptest \
+ python3-click-ptest \
+ python3-dnspython-ptest \
+ python3-dominate-ptest \
+ python3-geojson-ptest \
+ python3-gunicorn-ptest \
+ python3-hexbytes \
+ python3-html2text-ptest \
+ python3-inflection-ptest \
+ python3-intervals-ptest \
+ python3-ipy-ptest \
+ python3-iso3166-ptest \
+ python3-jdcal-ptest \
+ python3-jinja2-ptest \
+ python3-jsmin-ptest \
+ python3-jsonpointer-ptest \
+ python3-license-expression-ptest \
+ python3-markupsafe-ptest \
+ python3-msgpack-ptest \
+ python3-multidict-ptest \
+ python3-ordered-set-ptest \
+ python3-parse-ptest \
+ python3-parse-type-ptest \
+ python3-pint-ptest \
+ python3-polyline-ptest \
+ python3-precise-runner-ptest \
+ python3-prettytable-ptest \
+ python3-ptyprocess-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 \
+ python3-requests-toolbelt-ptest \
+ python3-scrypt-ptest \
+ python3-semver-ptest \
+ python3-serpent-ptest \
+ python3-simpleeval-ptest \
+ python3-smpplib-ptest \
+ python3-soupsieve-ptest \
+ python3-sqlparse-ptest \
+ python3-typeguard-ptest \
+ python3-ujson-ptest \
+ python3-u-msgpack-python-ptest \
+ python3-unidiff-ptest \
+ python3-uritemplate-ptest \
+ python3-webcolors-ptest \
+ python3-whoosh-ptest \
+ python3-wpa-supplicant \
+ python3-xlrd-ptest \
+ python3-xmltodict-ptest \
+ python3-xxhash-ptest \
+ python3-yappi-ptest \
+ python3-yarl-ptest \
+ python3-pyasn1-ptest \
+"
+
+EXCLUDE_FROM_WORLD = "1"
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
new file mode 100644
index 0000000000..d1ac2c6b42
--- /dev/null
+++ b/meta-python/recipes-devtools/gyp/gyp/0001-Fix-for-Python-3.10-compatibility.patch
@@ -0,0 +1,36 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..38906de759
--- /dev/null
+++ b/meta-python/recipes-devtools/gyp/gyp_git.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "GYP is a Meta-Build system: a build system that generates other build systems."
+HOMEPAGE = "https://gyp.gsrc.io/"
+LICENSE = "BSD-3-Clause"
+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"
+
+S = "${WORKDIR}/git"
+PV = "0.1+git${SRCPV}"
+
+inherit setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.0.1.bb b/meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.0.1.bb
new file mode 100644
index 0000000000..5b842a462d
--- /dev/null
+++ b/meta-python/recipes-devtools/python-jsonref/python3-jsonref_1.0.1.bb
@@ -0,0 +1,16 @@
+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[sha256sum] = "51d3e18b83ca7170ff51286a0e1a6719d8b7fcc7abdb16b189395a8536996b97"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-netclient \
+"
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 9d851abe33..71e932bb0c 100644
--- a/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
+++ b/meta-python/recipes-devtools/python/pyrtm_0.4.2.bb
@@ -8,29 +8,29 @@ PYPI_PACKAGE_EXT = "tar.bz2"
SRC_URI[md5sum] = "7c87da94656b620dfe532ca63d642eb8"
SRC_URI[sha256sum] = "b2d701b25ad3f9a1542057f3eb492c5c1d7dbe2b8d1e8f763043dcc14ee1d933"
-inherit pypi setuptools
+inherit pypi setuptools3
PACKAGES =+ "${PN}-tests ${PN}-samples"
-FILES_${PN}-samples += " \
+FILES:${PN}-samples += " \
${PYTHON_SITEPACKAGES_DIR}/rtm/samples \
"
-FILES_${PN}-tests += " \
+FILES:${PN}-tests += " \
${PYTHON_SITEPACKAGES_DIR}/rtm/tests \
"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
${PYTHON_PN}-json \
${PYTHON_PN}-logging \
${PYTHON_PN}-netclient \
"
-RDEPENDS_${PN}-samples += " \
+RDEPENDS:${PN}-samples += " \
${PN} \
"
-RDEPENDS_${PN}-tests += " \
+RDEPENDS:${PN}-tests += " \
${PN} \
${PYTHON_PN}-unittest \
"
diff --git a/meta-python/recipes-devtools/python/python-alembic.inc b/meta-python/recipes-devtools/python/python-alembic.inc
deleted file mode 100644
index f1a641299e..0000000000
--- a/meta-python/recipes-devtools/python/python-alembic.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "A database migration tool for SQLAlchemy"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c5f1361296835ff94bda73db7dd312a6"
-
-SRC_URI[md5sum] = "5cfef58641c9a94d4a5d547e951a7dda"
-SRC_URI[sha256sum] = "13b8611788acf0d7b617775db5c2ae26554a6d4263c590ef628d448fd05aef56"
-
-PYPI_PACKAGE = "alembic"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-editor \
- ${PYTHON_PN}-mako \
- ${PYTHON_PN}-sqlalchemy \
-"
diff --git a/meta-python/recipes-devtools/python/python-alembic_0.9.8.bb b/meta-python/recipes-devtools/python/python-alembic_0.9.8.bb
deleted file mode 100644
index efcb2b1deb..0000000000
--- a/meta-python/recipes-devtools/python/python-alembic_0.9.8.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-alembic.inc
diff --git a/meta-python/recipes-devtools/python/python-anyjson.inc b/meta-python/recipes-devtools/python/python-anyjson.inc
deleted file mode 100644
index a0d20ff4d0..0000000000
--- a/meta-python/recipes-devtools/python/python-anyjson.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Wraps the best available JSON implementation available in a common interface"
-DESCRIPTION = "Anyjson loads whichever is the fastest JSON module installed and \
-provides a uniform API regardless of which JSON implementation is used."
-HOMEPAGE = "https://bitbucket.org/runeh/anyjson"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=989aa97e73c912a83a3c873fa11deb08"
-
-inherit pypi
-
-SRC_URI[md5sum] = "2ea28d6ec311aeeebaf993cb3008b27c"
-SRC_URI[sha256sum] = "37812d863c9ad3e35c0734c42e0bf0320ce8c3bed82cd20ad54cb34d158157ba"
-
-RDEPENDS_${PN} += "${PYTHON_PN}-simplejson"
diff --git a/meta-python/recipes-devtools/python/python-anyjson_0.3.3.bb b/meta-python/recipes-devtools/python/python-anyjson_0.3.3.bb
deleted file mode 100644
index 31b8749fe2..0000000000
--- a/meta-python/recipes-devtools/python/python-anyjson_0.3.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-anyjson.inc
diff --git a/meta-python/recipes-devtools/python/python-appdirs.inc b/meta-python/recipes-devtools/python/python-appdirs.inc
deleted file mode 100644
index c4826723e8..0000000000
--- a/meta-python/recipes-devtools/python/python-appdirs.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "A small Python module for determining appropriate + platform-specific dirs, e.g. a user data dir."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=31625363c45eb0c67c630a2f73e438e4"
-
-SRC_URI[md5sum] = "44c679904082a2133f5566c8a0d3ab42"
-SRC_URI[sha256sum] = "9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-appdirs_1.4.3.bb b/meta-python/recipes-devtools/python/python-appdirs_1.4.3.bb
deleted file mode 100644
index e9ff9b3fc3..0000000000
--- a/meta-python/recipes-devtools/python/python-appdirs_1.4.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-appdirs.inc
diff --git a/meta-python/recipes-devtools/python/python-asn1crypto.inc b/meta-python/recipes-devtools/python/python-asn1crypto.inc
deleted file mode 100644
index 5c379956fa..0000000000
--- a/meta-python/recipes-devtools/python/python-asn1crypto.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-DESCRIPTION = "Python binding to the Networking and Cryptography (NaCl) library"
-HOMEPAGE = "https://github.com/pyca/pynacl"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=52010cd3c7d7bd965b55721ef4d93ec2"
-
-PYPI_PACKAGE = "asn1crypto"
-
-SRC_URI[md5sum] = "de3520426e81a6581352d4366f310eb1"
-SRC_URI[sha256sum] = "9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-netclient \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-asn1crypto_0.24.0.bb b/meta-python/recipes-devtools/python/python-asn1crypto_0.24.0.bb
deleted file mode 100644
index 46aace286f..0000000000
--- a/meta-python/recipes-devtools/python/python-asn1crypto_0.24.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-inherit setuptools
-require python-asn1crypto.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
- ${PYTHON_PN}-textutils \
-"
diff --git a/meta-python/recipes-devtools/python/python-astroid.inc b/meta-python/recipes-devtools/python/python-astroid.inc
deleted file mode 100644
index ead2b6e73f..0000000000
--- a/meta-python/recipes-devtools/python/python-astroid.inc
+++ /dev/null
@@ -1,31 +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"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-SRC_URI[md5sum] = "7d7dc000b25f0cbfcca20cb9a8dc0310"
-SRC_URI[sha256sum] = "35cfae47aac19c7b407b7095410e895e836f2285ccf1220336afba744cc4c5f2"
-
-inherit pypi
-
-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/python-astroid_1.6.3.bb b/meta-python/recipes-devtools/python/python-astroid_1.6.3.bb
deleted file mode 100644
index 687394da63..0000000000
--- a/meta-python/recipes-devtools/python/python-astroid_1.6.3.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-inherit setuptools
-require python-astroid.inc
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-enum34 \
- ${PYTHON_PN}-backports-functools-lru-cache \
- ${PYTHON_PN}-re \
- ${PYTHON_PN}-singledispatch \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-attr.inc b/meta-python/recipes-devtools/python/python-attr.inc
deleted file mode 100644
index 1d93dd7156..0000000000
--- a/meta-python/recipes-devtools/python/python-attr.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way"
-HOMEPAGE = "https://github.com/denis-ryzhkov/attr"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=59805a0285f4d2b6abdedae73db4f5c1"
-
-SRC_URI[md5sum] = "68b9a503991241fb2df28488686b0e1e"
-SRC_URI[sha256sum] = "9091548058d17f132596e61fa7518e504f76b9a4c61ca7d86e1f96dbf7d4775d"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-attr_0.3.1.bb b/meta-python/recipes-devtools/python/python-attr_0.3.1.bb
deleted file mode 100644
index 979d6cb687..0000000000
--- a/meta-python/recipes-devtools/python/python-attr_0.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-attr.inc
diff --git a/meta-python/recipes-devtools/python/python-attrs.inc b/meta-python/recipes-devtools/python/python-attrs.inc
deleted file mode 100644
index c29f058fa1..0000000000
--- a/meta-python/recipes-devtools/python/python-attrs.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Classes Without Boilerplate"
-HOMEPAGE = "http://www.attrs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d4ab25949a73fe7d4fdee93bcbdbf8ff"
-
-SRC_URI[md5sum] = "d7a89063b2e0fd36bd82389c4d82821d"
-SRC_URI[sha256sum] = "1c7960ccfd6a005cd9f7ba884e6316b5e430a3f1a6c37c5f87d8b43f83b54ec9"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-cryptography \
- ${PYTHON_PN}-ctypes \
-"
diff --git a/meta-python/recipes-devtools/python/python-attrs_17.4.0.bb b/meta-python/recipes-devtools/python/python-attrs_17.4.0.bb
deleted file mode 100644
index e3bec0fdfd..0000000000
--- a/meta-python/recipes-devtools/python/python-attrs_17.4.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools
-require python-attrs.inc
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-automat.inc b/meta-python/recipes-devtools/python/python-automat.inc
deleted file mode 100644
index 43b9ce9e3c..0000000000
--- a/meta-python/recipes-devtools/python/python-automat.inc
+++ /dev/null
@@ -1,24 +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"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-automat:"
-
-SRC_URI[md5sum] = "ad7bba58d262d8956d732330cb5ef53d"
-SRC_URI[sha256sum] = "3c1fd04ecf08ac87b4dd3feae409542e9bf7827257097b2b6ed5692f69d6f6a8"
-
-PYPI_PACKAGE = "Automat"
-
-inherit pypi
-
-SRC_URI_append = " \
- file://0001-setup.py-remove-the-dependency-on-m2r.patch \
-"
-
-DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-attrs \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch b/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
deleted file mode 100644
index d6def98c9c..0000000000
--- a/meta-python/recipes-devtools/python/python-automat/0001-setup.py-remove-the-dependency-on-m2r.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From d5ebe479fc8fe11c5c75e7f35484849320349222 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>
----
- setup.py | 10 ----------
- 1 file changed, 10 deletions(-)
-
-Index: Automat-0.6.0/setup.py
-===================================================================
---- Automat-0.6.0.orig/setup.py
-+++ Automat-0.6.0/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",
diff --git a/meta-python/recipes-devtools/python/python-automat_0.6.0.bb b/meta-python/recipes-devtools/python/python-automat_0.6.0.bb
deleted file mode 100644
index 8ac8c9c0ff..0000000000
--- a/meta-python/recipes-devtools/python/python-automat_0.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-automat.inc
diff --git a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc b/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
deleted file mode 100644
index a3299e4ac6..0000000000
--- a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python.inc
+++ /dev/null
@@ -1,41 +0,0 @@
-DESCRIPTION = "SDK for connecting to AWS IoT using Python."
-HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python"
-LICENSE = "Apache-2.0 & (EPL-1.0 | EDL-1.0)"
-LICENSE_${PN}-examples = "Apache-2.0"
-LIC_FILES_CHKSUM = "\
- file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \
- file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
-"
-
-SRC_URI[md5sum] = "97e8cf0d40ef3765d979c19b534a716d"
-SRC_URI[sha256sum] = "d68cbff396143e837b4c23b6621d3b7ae374281afc75eed8e51a28625d9125ba"
-
-inherit pypi
-
-PYPI_PACKAGE = "AWSIoTPythonSDK"
-
-do_install_append() {
- install -d -m0755 ${D}${datadir}/${BPN}/examples
- cp --preserve=mode,timestamps -R ${S}/samples/* ${D}${datadir}/${BPN}/examples
- # this requires the full blown AWS Python SDK
- rm -r ${D}${datadir}/${BPN}/examples/basicPubSub
-}
-
-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 \
-"
-RDEPENDS_${PN}-examples += "${PN}"
-
-FILES_${PN}-examples = "${datadir}/${BPN}/examples"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.3.1.bb b/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.3.1.bb
deleted file mode 100644
index 490e973917..0000000000
--- a/meta-python/recipes-devtools/python/python-aws-iot-device-sdk-python_1.3.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-aws-iot-device-sdk-python.inc
-
-RDEPENDS_${PN}-examples += "${PYTHON_PN}-argparse"
diff --git a/meta-python/recipes-devtools/python/python-babel.inc b/meta-python/recipes-devtools/python/python-babel.inc
deleted file mode 100644
index 4dcb255c86..0000000000
--- a/meta-python/recipes-devtools/python/python-babel.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "A collection of tools for internationalizing Python applications"
-HOMEPAGE = "http://babel.edgewall.org/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e6eeaabc92cfc2d03f53e789324d7292"
-
-SRC_URI[md5sum] = "152a6b17fe4110b95675aceb9af9fab2"
-SRC_URI[sha256sum] = "8ce4cb6fdd4393edd323227cba3a077bceb2a6ce5201c902c65e730046f41f14"
-
-PYPI_PACKAGE = "Babel"
-
-inherit pypi
-
-CLEANBROKEN = "1"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-distutils \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-pytz \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-threading \
-"
diff --git a/meta-python/recipes-devtools/python/python-babel_2.5.3.bb b/meta-python/recipes-devtools/python/python-babel_2.5.3.bb
deleted file mode 100644
index f7c166ebab..0000000000
--- a/meta-python/recipes-devtools/python/python-babel_2.5.3.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools
-require python-babel.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb b/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb
deleted file mode 100644
index 6a4d267bc7..0000000000
--- a/meta-python/recipes-devtools/python/python-backports-abc_0.4.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "collections.abc from Python 3.4"
-DESCRIPTION = "A backport of recent additions to the 'collections.abc' module"
-
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=dd98d01d471fac8d8dbdd975229dba03"
-
-# pypi package doesn't have valid entry for license
-SRC_URI += "https://raw.githubusercontent.com/cython/backports_abc/master/LICENSE;name=license"
-
-SRC_URI[md5sum] = "0b65a216ce9dc9c1a7e20a729dd7c05b"
-SRC_URI[sha256sum] = "8b3e4092ba3d541c7a2f9b7d0d9c0275b21c6a01c53a61c731eba6686939d0a5"
-SRC_URI[license.md5sum] = "dd98d01d471fac8d8dbdd975229dba03"
-SRC_URI[license.sha256sum] = "0a4f3b38055f50f047a42521568fa6ddb9a5976c2884f6ae138796d0f71150ca"
-
-
-
-PYPI_PACKAGE = "backports_abc"
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb b/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb
deleted file mode 100644
index 961436f533..0000000000
--- a/meta-python/recipes-devtools/python/python-backports-functools-lru-cache_1.4.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Backport of functools.lru_cache from Python 3.3"
-HOMEPAGE = "https://github.com/jaraco/backports.functools_lru_cache"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=47;endline=47;md5=98fc3658e5970d26f6b2109808c766be"
-
-PYPI_PACKAGE = "backports.functools_lru_cache"
-
-SRC_URI[md5sum] = "b954e7d5e2ca0f0f66ad2ed12ba800e5"
-SRC_URI[sha256sum] = "31f235852f88edc1558d428d890663c49eb4514ffec9f3650e7f3c9e4a12e36f"
-
-DEPENDS += "python-setuptools-scm-native"
-
-inherit setuptools pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-threading \
- "
diff --git a/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb b/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb
deleted file mode 100644
index 45492daa6e..0000000000
--- a/meta-python/recipes-devtools/python/python-backports-ssl_3.5.0.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "The ssl.match_hostname() function from Python 3.4"
-DESCRIPTION = "The Secure Sockets layer is only actually secure if you check the hostname in the \
-certificate returned by the server to which you are connecting, and verify that it matches to hostname \
-that you are trying to reach. But the matching logic, defined in RFC2818, can be a bit tricky to implement \
-on your own. So the ssl package in the Standard Library of Python 3.2 and greater now includes a \
-match_hostname() function for performing this check instead of requiring every application to \
-implement the check separately. This backport brings match_hostname() to users of earlier versions of Python"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=95a5ee8fd779fbeca8b4cbca64433c87"
-
-SRC_URI[md5sum] = "c03fc5e2c7b3da46b81acf5cbacfe1e6"
-SRC_URI[sha256sum] = "502ad98707319f4a51fa2ca1c677bd659008d27ded9f6380c79e8932e38dcdf2"
-
-PYPI_PACKAGE = "backports.ssl_match_hostname"
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "${PYTHON_PN}-pkgutil"
diff --git a/meta-python/recipes-devtools/python/python-bcrypt.inc b/meta-python/recipes-devtools/python/python-bcrypt.inc
deleted file mode 100644
index 449096978f..0000000000
--- a/meta-python/recipes-devtools/python/python-bcrypt.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Modern password hashing for your software and your servers."
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8f7bb094c7232b058c7e9f2e431f389c"
-
-DEPENDS += "${PYTHON_PN}-cffi-native"
-
-SRC_URI[md5sum] = "8408abc974446e64862a9742104e97b6"
-SRC_URI[sha256sum] = "67ed1a374c9155ec0840214ce804616de49c3df9c5bc66740687c1c9b1cd9e8d"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-cffi \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb b/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb
deleted file mode 100644
index b136aa4895..0000000000
--- a/meta-python/recipes-devtools/python/python-bcrypt_3.1.4.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools
-require python-bcrypt.inc
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-beautifulsoup4.inc b/meta-python/recipes-devtools/python/python-beautifulsoup4.inc
deleted file mode 100644
index d60d987ca0..0000000000
--- a/meta-python/recipes-devtools/python/python-beautifulsoup4.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Screen-scraping library"
-HOMEPAGE = " https://www.crummy.com/software/BeautifulSoup/bs4"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=f2d38d8a40bf73fd4b3d16ca2e5882d1"
-
-SRC_URI[md5sum] = "c17714d0f91a23b708a592cb3c697728"
-SRC_URI[sha256sum] = "808b6ac932dccb0a4126558f7dfdcf41710dd44a4ef497a0bb59a77f9f078e89"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target = "\
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-html5lib \
- ${PYTHON_PN}-lxml \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-beautifulsoup4_4.6.0.bb b/meta-python/recipes-devtools/python/python-beautifulsoup4_4.6.0.bb
deleted file mode 100644
index 907285ac10..0000000000
--- a/meta-python/recipes-devtools/python/python-beautifulsoup4_4.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-beautifulsoup4.inc
diff --git a/meta-python/recipes-devtools/python/python-behave_1.2.6.bb b/meta-python/recipes-devtools/python/python-behave_1.2.6.bb
deleted file mode 100644
index 679730262b..0000000000
--- a/meta-python/recipes-devtools/python/python-behave_1.2.6.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "A behavior-driven development framework, Python style"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06"
-
-SRC_URI[md5sum] = "3f05c859a1c45f5ed33e925817ad887d"
-SRC_URI[sha256sum] = "b9662327aa53294c1351b0a9c369093ccec1d21026f050c3bd9b3e5cccf81a86"
-
-RDEPENDS_${PN} += "python-difflib python-setuptools python-pkgutil python-misc python-argparse python-xml python-enum34 python-parse python-parse-type python-six"
-
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-bitarray.inc b/meta-python/recipes-devtools/python/python-bitarray.inc
deleted file mode 100644
index 38a22f668e..0000000000
--- a/meta-python/recipes-devtools/python/python-bitarray.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "A high-level Python efficient arrays of booleans -- C extension"
-HOMEPAGE = "https://github.com/ilanschnell/bitarray"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3ba469353f9f2a244b2075902351e37d"
-
-SRC_URI[md5sum] = "3825184f54f4d93508a28031b4c65d3b"
-SRC_URI[sha256sum] = "7da501356e48a83c61f479393681c1bc4b94e5a34ace7e08cb29e7dd9290ab18"
-
-inherit pypi
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb b/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb
deleted file mode 100644
index f78c7abd23..0000000000
--- a/meta-python/recipes-devtools/python/python-bitarray_0.8.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-bitarray.inc
diff --git a/meta-python/recipes-devtools/python/python-blinker.inc b/meta-python/recipes-devtools/python/python-blinker.inc
deleted file mode 100644
index eaf3908370..0000000000
--- a/meta-python/recipes-devtools/python/python-blinker.inc
+++ /dev/null
@@ -1,7 +0,0 @@
-DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=946d7e89af6f7733aeaebed5635d2682"
-
-SRC_URI[md5sum] = "8b3722381f83c2813c52de3016b68d33"
-SRC_URI[sha256sum] = "471aee25f3992bd325afa3772f1063dbdbbca947a041b8b89466dc00d606f8b6"
-
diff --git a/meta-python/recipes-devtools/python/python-blinker_1.4.bb b/meta-python/recipes-devtools/python/python-blinker_1.4.bb
deleted file mode 100644
index bc4164e974..0000000000
--- a/meta-python/recipes-devtools/python/python-blinker_1.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-blinker.inc
diff --git a/meta-python/recipes-devtools/python/python-can.inc b/meta-python/recipes-devtools/python/python-can.inc
deleted file mode 100644
index a71c47be4d..0000000000
--- a/meta-python/recipes-devtools/python/python-can.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Controller Area Network (CAN) interface module for Python"
-SECTION = "devel/python"
-LICENSE = "LGPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=38138baa100d7259934590850bc0406e"
-
-SRC_URI[md5sum] = "3310f0aa2a8492d0ff614ecf636ec8a8"
-SRC_URI[sha256sum] = "4a5c01dd67feeda35f88e6c12ea14ac8cabd426b9be0cc5f9fd083fe90a9dbfc"
-
-PYPI_PACKAGE="python-can"
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-sqlite3 \
-"
diff --git a/meta-python/recipes-devtools/python/python-can_2.1.0.bb b/meta-python/recipes-devtools/python/python-can_2.1.0.bb
deleted file mode 100644
index f0edb6408b..0000000000
--- a/meta-python/recipes-devtools/python/python-can_2.1.0.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require python-can.inc
-inherit pypi setuptools
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-argparse \
- ${PYTHON_PN}-subprocess \
- ${PYTHON_PN}-zlib \
-"
diff --git a/meta-python/recipes-devtools/python/python-cassandra-driver.inc b/meta-python/recipes-devtools/python/python-cassandra-driver.inc
deleted file mode 100644
index 1648d3e94c..0000000000
--- a/meta-python/recipes-devtools/python/python-cassandra-driver.inc
+++ /dev/null
@@ -1,33 +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[md5sum] = "5c8b4a3adfc48180e8ec38b8c4e996fd"
-SRC_URI[sha256sum] = "61b670fb2ba95d51d91fa7b589aae3666df494713f5d1ed78bb5c510778d77f0"
-
-DISTUTILS_BUILD_ARGS += " \
- --no-libev \
-"
-DISTUTILS_INSTALL_ARGS += " \
- --no-libev \
-"
-
-inherit pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-cython \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-json \
- libevent \
-"
-
-DEPENDS_${PN} += "\
- ${PYTHON_PN}-cython \
-"
diff --git a/meta-python/recipes-devtools/python/python-certifi.inc b/meta-python/recipes-devtools/python/python-certifi.inc
deleted file mode 100644
index 26df5c1155..0000000000
--- a/meta-python/recipes-devtools/python/python-certifi.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python package for providing Mozilla's CA Bundle."
-DESCRIPTION = "This installable Python package contains a CA Bundle that you can reference in your \
-Python code. This is useful for verifying HTTP requests, for example. This is the same CA Bundle \
-which ships with the Requests codebase, and is derived from Mozilla Firefox's canonical set."
-HOMEPAGE = " http://certifi.io/"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f77f61d14ee6feac4228d3ebd26cc1f1"
-
-SRC_URI[md5sum] = "068fd5c3c690ae47504b3e0bf4e56c4c"
-SRC_URI[sha256sum] = "edbc3f203427eef571f79a7692bb160a2b0f7ccaa31953e99bd17e307cf63f7d"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-certifi_2018.1.18.bb b/meta-python/recipes-devtools/python/python-certifi_2018.1.18.bb
deleted file mode 100644
index adfe6238ec..0000000000
--- a/meta-python/recipes-devtools/python/python-certifi_2018.1.18.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-certifi.inc
diff --git a/meta-python/recipes-devtools/python/python-cffi.inc b/meta-python/recipes-devtools/python/python-cffi.inc
deleted file mode 100644
index e6071eecaf..0000000000
--- a/meta-python/recipes-devtools/python/python-cffi.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Foreign Function Interface for Python calling C code"
-HOMEPAGE = "http://cffi.readthedocs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5677e2fdbf7cdda61d6dd2b57df547bf"
-DEPENDS += "libffi ${PYTHON_PN}-pycparser"
-
-SRC_URI[md5sum] = "ac8492f4ad952360737413e82d661908"
-SRC_URI[sha256sum] = "e90f17980e6ab0f3c2f3730e56d1fe9bcba1891eeea58966e89d352492cc74f4"
-
-RDEPENDS_${PN}_class-target = " \
- ${PYTHON_PN}-ctypes \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-cffi_1.11.5.bb b/meta-python/recipes-devtools/python/python-cffi_1.11.5.bb
deleted file mode 100644
index bc667b8056..0000000000
--- a/meta-python/recipes-devtools/python/python-cffi_1.11.5.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require python-cffi.inc
-inherit pypi setuptools
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-chardet.inc b/meta-python/recipes-devtools/python/python-chardet.inc
deleted file mode 100644
index 6305299780..0000000000
--- a/meta-python/recipes-devtools/python/python-chardet.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Universal encoding detector for Python 2 and 3"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-inherit pypi
-
-# setup.py of chardet needs this.
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-SRC_URI[md5sum] = "7dd1ba7f9c77e32351b0a0cfacf4055c"
-SRC_URI[sha256sum] = "84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae"
-
-BBCLASSEXTEND = "native nativesdk"
-
-PACKAGES =+ "${PN}-cli"
-RDEPENDS_${PN}-cli = "${PN} "
-FILES_${PN}-cli += " \
- ${PYTHON_SITEPACKAGES_DIR}/chardet/cli \
-"
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-logging \
-"
diff --git a/meta-python/recipes-devtools/python/python-chardet_3.0.4.bb b/meta-python/recipes-devtools/python/python-chardet_3.0.4.bb
deleted file mode 100644
index 3b6feeef11..0000000000
--- a/meta-python/recipes-devtools/python/python-chardet_3.0.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-chardet.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-argparse"
diff --git a/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb b/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb
deleted file mode 100644
index 20fc2fdc3f..0000000000
--- a/meta-python/recipes-devtools/python/python-cheetah_2.4.4.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Python template engine and code generation tool"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=aff1107514aa6aae948f9fe71fdc393b"
-
-PR = "r3"
-
-PYPI_PACKAGE = "Cheetah"
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "python-pickle python-pprint"
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI[md5sum] = "853917116e731afbc8c8a43c37e6ddba"
-SRC_URI[sha256sum] = "be308229f0c1e5e5af4f27d7ee06d90bb19e6af3059794e5fd536a6f29a9b550"
diff --git a/meta-python/recipes-devtools/python/python-click.inc b/meta-python/recipes-devtools/python/python-click.inc
deleted file mode 100644
index c81545b151..0000000000
--- a/meta-python/recipes-devtools/python/python-click.inc
+++ /dev/null
@@ -1,23 +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"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=09e8b7869f94ba9e9a7b260d53c65dab"
-
-SRC_URI[md5sum] = "fc4cc00c4863833230d3af92af48abd4"
-SRC_URI[sha256sum] = "f15516df478d5a56180fbf80e68f206010e6d160fc39fa508b65e035fd75130b"
-
-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/python-click_6.7.bb b/meta-python/recipes-devtools/python/python-click_6.7.bb
deleted file mode 100644
index f63e27c843..0000000000
--- a/meta-python/recipes-devtools/python/python-click_6.7.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools
-require python-click.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-contextlib"
diff --git a/meta-python/recipes-devtools/python/python-cmd2_0.8.1.bb b/meta-python/recipes-devtools/python/python-cmd2_0.8.1.bb
deleted file mode 100644
index 145ab98901..0000000000
--- a/meta-python/recipes-devtools/python/python-cmd2_0.8.1.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Extra features for standard library's cmd module"
-HOMEPAGE = "http://packages.python.org/cmd2/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://setup.py;beginline=51;endline=51;md5=0f13c9cfc75288223cf7edd2f3b985a2"
-
-SRC_URI[md5sum] = "701b916ffac99137bea413205106f993"
-SRC_URI[sha256sum] = "d09976f9ad2327883c2d07b5acb42e66ad52b17e352873c22041ed124bfe8aba"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-doctest \
- ${PYTHON_PN}-pyparsing \
- ${PYTHON_PN}-pyperclip \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-subprocess \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-textutils \
- "
diff --git a/meta-python/recipes-devtools/python/python-configparser.inc b/meta-python/recipes-devtools/python/python-configparser.inc
deleted file mode 100644
index c1fb8582c3..0000000000
--- a/meta-python/recipes-devtools/python/python-configparser.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "This module provides the ConfigParser class which implements a basic configuration language which provides a structure similar to what’s found in Microsoft Windows INI files."
-SECTION = "devel/python"
-HOMEPAGE = "https://docs.python.org/3/library/configparser.html"
-LICENSE = "MIT"
-
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[md5sum] = "cfdd915a5b7a6c09917a64a573140538"
-SRC_URI[sha256sum] = "5308b47021bc2340965c371f0f058cc6971a04502638d4244225c49d80db273a"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-configparser_3.5.0.bb b/meta-python/recipes-devtools/python/python-configparser_3.5.0.bb
deleted file mode 100644
index 69f045dbab..0000000000
--- a/meta-python/recipes-devtools/python/python-configparser_3.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-configparser.inc
diff --git a/meta-python/recipes-devtools/python/python-constantly.inc b/meta-python/recipes-devtools/python/python-constantly.inc
deleted file mode 100644
index 8153504929..0000000000
--- a/meta-python/recipes-devtools/python/python-constantly.inc
+++ /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
-
-RDEPENDS_${PN} += "${PYTHON_PN}-json"
diff --git a/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb b/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb
deleted file mode 100644
index 29b15eb605..0000000000
--- a/meta-python/recipes-devtools/python/python-constantly_15.1.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-constantly.inc
diff --git a/meta-python/recipes-devtools/python/python-cryptography-vectors.inc b/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
deleted file mode 100644
index 00bb87b0c8..0000000000
--- a/meta-python/recipes-devtools/python/python-cryptography-vectors.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Test vectors for the cryptography package."
-HOMEPAGE = "https://cryptography.io/"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0 | BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8c3617db4fb6fae01f1d253ab91511e4"
-
-DEPENDS += " \
- ${PYTHON_PN}-cryptography \
-"
-
-SRC_URI[md5sum] = "ef115b870cc8d8b9f0f4189b512bc170"
-SRC_URI[sha256sum] = "78c4b4f3f84853ea5d038e2f53d355229dd8119fe9cf949c3e497c85c760a5ca"
-
-PYPI_PACKAGE = "cryptography_vectors"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_REGEX = ""
diff --git a/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.4.bb b/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.4.bb
deleted file mode 100644
index 4975278a99..0000000000
--- a/meta-python/recipes-devtools/python/python-cryptography-vectors_2.1.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-cryptography-vectors.inc
diff --git a/meta-python/recipes-devtools/python/python-cryptography.inc b/meta-python/recipes-devtools/python/python-cryptography.inc
deleted file mode 100644
index 13d2ba800d..0000000000
--- a/meta-python/recipes-devtools/python/python-cryptography.inc
+++ /dev/null
@@ -1,58 +0,0 @@
-SUMMARY = "Provides cryptographic recipes and primitives to python developers"
-HOMEPAGE = "https://cryptography.io/"
-LICENSE = "Apache-2.0 | BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d5ede125ed08d4fd14ec44d334bdb388"
-
-DEPENDS += " \
- ${PYTHON_PN}-cffi \
- ${PYTHON_PN}-cffi-native \
- ${PYTHON_PN}-asn1crypto \
- ${PYTHON_PN}-six \
-"
-
-SRC_URI[md5sum] = "9f39d4d8f2b05f295fa0ff52475ec4f2"
-SRC_URI[sha256sum] = "e4d967371c5b6b2e67855066471d844c5d52d210c36c28d49a8507b96e2c5291"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-cffi \
- ${PYTHON_PN}-idna \
- ${PYTHON_PN}-asn1crypto \
- ${PYTHON_PN}-pycparser \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-six \
-"
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-cffi \
- ${PYTHON_PN}-idna \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-asn1crypto \
- ${PYTHON_PN}-pycparser \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-threading \
-"
-
-RDEPENDS_${PN}-ptest += " \
- ${PN} \
- ${PYTHON_PN}-cryptography-vectors \
- ${PYTHON_PN}-iso8601 \
- ${PYTHON_PN}-pretend \
- ${PYTHON_PN}-pytest \
- ${PYTHON_PN}-pytz \
-"
-
-inherit ptest
-
-do_install_ptest() {
- install -d ${D}${PTEST_PATH}/tests
- cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
- install -d ${D}${PTEST_PATH}/tests/hazmat
- cp -rf ${S}/tests/hazmat/* ${D}${PTEST_PATH}/tests/hazmat/
-}
-
-FILES_${PN}-dbg += " \
- ${libdir}/${PYTHON_PN}2.7/site-packages/${SRCNAME}/hazmat/bindings/.debug \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-cryptography/run-ptest b/meta-python/recipes-devtools/python/python-cryptography/run-ptest
deleted file mode 100644
index 0ba239c2a4..0000000000
--- a/meta-python/recipes-devtools/python/python-cryptography/run-ptest
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-py.test
diff --git a/meta-python/recipes-devtools/python/python-cryptography_2.1.4.bb b/meta-python/recipes-devtools/python/python-cryptography_2.1.4.bb
deleted file mode 100644
index 9c2f88418d..0000000000
--- a/meta-python/recipes-devtools/python/python-cryptography_2.1.4.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-inherit pypi setuptools
-require python-cryptography.inc
-
-SRC_URI += " \
- file://run-ptest \
-"
-
-DEPENDS += " \
- ${PYTHON_PN}-enum34 \
-"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-enum34 \
- ${PYTHON_PN}-ipaddress \
-"
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-enum34 \
- ${PYTHON_PN}-ipaddress \
- ${PYTHON_PN}-contextlib \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-cython.inc b/meta-python/recipes-devtools/python/python-cython.inc
deleted file mode 100644
index 5d3b9d5baf..0000000000
--- a/meta-python/recipes-devtools/python/python-cython.inc
+++ /dev/null
@@ -1,40 +0,0 @@
-DESCRIPTION = "Cython is a language specially designed for writing Python extension modules. \
-It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
-and the messy, low-level world of C."
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
-PYPI_PACKAGE = "Cython"
-BBCLASSEXTEND = "native nativesdk"
-
-SRC_URI[md5sum] = "0e0568d6bed4b09ad01afe0a38805305"
-SRC_URI[sha256sum] = "634e2f10fc8d026c633cffacb45cd8f4582149fa68e1428124e762dbc566e68a"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-pyparsing \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-xml \
-"
-
-RDEPENDS_${PN}_class-nativesdk += "\
- nativesdk-${PYTHON_PN}-misc \
- nativesdk-${PYTHON_PN}-netserver \
- nativesdk-${PYTHON_PN}-pkgutil \
- nativesdk-${PYTHON_PN}-pyparsing \
- nativesdk-${PYTHON_PN}-setuptools \
- nativesdk-${PYTHON_PN}-shell \
- nativesdk-${PYTHON_PN}-xml \
-"
-
-do_install_append() {
- # Make sure we use /usr/bin/env python
- for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do
- sed -i -e '1s|^#!.*|#!/usr/bin/env ${PYTHON_PN}|' $PYTHSCRIPT
- done
-}
diff --git a/meta-python/recipes-devtools/python/python-cython_0.28.2.bb b/meta-python/recipes-devtools/python/python-cython_0.28.2.bb
deleted file mode 100644
index d803a6ed4c..0000000000
--- a/meta-python/recipes-devtools/python/python-cython_0.28.2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-inherit setuptools
-require python-cython.inc
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/Cython/"
-UPSTREAM_CHECK_REGEX = "/Cython/(?P<pver>(\d+[\.\-_]*)+)"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-distribute \
- ${PYTHON_PN}-subprocess \
-"
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-daemon_2.1.2.bb b/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb
deleted file mode 100644
index 4c18e2bad5..0000000000
--- a/meta-python/recipes-devtools/python/python-daemon_2.1.2.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Library to implement a well-behaved Unix daemon process"
-HOMEPAGE = "https://pagure.io/python-daemon/"
-SECTION = "devel/python"
-
-DEPENDS = "python-docutils"
-RDEPENDS_${PN} = "python-docutils \
- python-lockfile (>= 0.10) \
- python-resource \
-"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-inherit pypi setuptools
-
-SRC_URI[md5sum] = "9c57343d81f2a96c51cffeab982b04d2"
-SRC_URI[sha256sum] = "261c859be5c12ae7d4286dc6951e87e9e1a70a882a8b41fd926efc1ec4214f73"
-
-# Fix for build error in Yocto:
-# i = p.rfind('/') + 1
-# AttributeError: 'NoneType' object has no attribute 'rfind'
-#S = "${WORKDIR}/python-daemon"
-SRC_URI_append = " \
- file://0001-Workaround-for-issue-2-1.patch \
-"
-
-PYPI_PACKAGE = "python-daemon"
diff --git a/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb b/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb
deleted file mode 100644
index 98f23aba10..0000000000
--- a/meta-python/recipes-devtools/python/python-daemonize_2.4.7.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Library to enable your code run as a daemon process on Unix-like systems"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=13e982bf1b7b164b9d6d1665dac83873"
-SRCNAME = "daemonize"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "\
- python-fcntl \
- python-unixadmin \
- python-logging \
- python-resource \
-"
-
-SRC_URI[md5sum] = "6759005b12dfeea0d4305f8536b4b0c2"
-SRC_URI[sha256sum] = "c0194e861826be456c7c69985825ac7b79632d8ac7ad4cde8e12fee7971468c8"
diff --git a/meta-python/recipes-devtools/python/python-dateutil.inc b/meta-python/recipes-devtools/python/python-dateutil.inc
deleted file mode 100644
index 333b5e224b..0000000000
--- a/meta-python/recipes-devtools/python/python-dateutil.inc
+++ /dev/null
@@ -1,21 +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[md5sum] = "03a08c8bcf0a2b29f1cd21b9de4d12fb"
-SRC_URI[sha256sum] = "9d8074be4c993fbe4947878ce593052f71dac82932a677d49194d8ce9778002e"
-
-PYPI_PACKAGE = "python-dateutil"
-inherit pypi
-
-PACKAGES =+ "${PN}-zoneinfo"
-FILES_${PN}-zoneinfo = "${libdir}/${PYTHON_DIR}/site-packages/dateutil/zoneinfo"
-
-RDEPENDS_${PN}_class-target = "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-stringold \
-"
diff --git a/meta-python/recipes-devtools/python/python-dateutil_2.7.2.bb b/meta-python/recipes-devtools/python/python-dateutil_2.7.2.bb
deleted file mode 100644
index 12ae4c3118..0000000000
--- a/meta-python/recipes-devtools/python/python-dateutil_2.7.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-dateutil.inc
diff --git a/meta-python/recipes-devtools/python/python-dbus_1.2.6.bb b/meta-python/recipes-devtools/python/python-dbus_1.2.6.bb
deleted file mode 100644
index 0f18ccc881..0000000000
--- a/meta-python/recipes-devtools/python/python-dbus_1.2.6.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Python bindings for the DBus inter-process communication system"
-SECTION = "devel/python"
-HOMEPAGE = "http://www.freedesktop.org/Software/dbus"
-LICENSE = "MIT & AFL-2.1 | GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b03240518994df6d8c974675675e5ca4 \
- file://dbus-gmain/COPYING;md5=05c3eacd50f69bb1d58afec460baad57 "
-DEPENDS = "expat dbus dbus-glib virtual/libintl python-pyrex-native"
-
-SRC_URI = "http://dbus.freedesktop.org/releases/dbus-python/dbus-python-${PV}.tar.gz \
-"
-
-SRC_URI[md5sum] = "1ce1ddf2582060f8f971652ea54cc17e"
-SRC_URI[sha256sum] = "32f29c17172cdb9cb61c68b1f1a71dfe7351506fc830869029c47449bd04faeb"
-S = "${WORKDIR}/dbus-python-${PV}"
-
-inherit distutils-base autotools pkgconfig
-
-PACKAGECONFIG ?= ""
-PACKAGECONFIG[docs] = "--enable-html-docs,--disable-html-docs,python3-docutils-native"
-PACKAGECONFIG[api-docs] = "--enable-api-docs,--disable-api-docs,python3-docutils-native python3-epydoc-native"
-
-export STAGING_LIBDIR
-export STAGING_INCDIR
-
-RDEPENDS_${PN} = "python-io python-logging python-stringold python-threading python-xml"
-
-FILES_${PN}-dev += "${libdir}/pkgconfig"
-
-do_install_append() {
- # Remove files that clash with python3-dbus; their content is same
- rm ${D}${includedir}/dbus-1.0/dbus/dbus-python.h ${D}${libdir}/pkgconfig/dbus-python.pc
-}
diff --git a/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch b/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch
deleted file mode 100644
index c4d817849f..0000000000
--- a/meta-python/recipes-devtools/python/python-dbusmock/0001-Add-functionality-to-add-own-objects-to-internal-obj.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From c4436fd42f2936e5fb0f95434d06e45aa9959ca0 Mon Sep 17 00:00:00 2001
-From: Simon Busch <simon.busch@lge.com>
-Date: Wed, 9 Apr 2014 13:18:33 +0200
-Subject: [PATCH] Add functionality to add own objects to internal object
-
- list
-
-In some case the tests might want to create dynamically dbus objects which extended
-functionality from own class definitions within templates. In such cases we need to
-register those objects with the internal object manager of dbusmock.
-
-Signed-off-by: Simon Busch <simon.busch@lge.com>
-
----
- dbusmock/__init__.py | 4 ++--
- dbusmock/mockobject.py | 8 ++++++++
- 2 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/dbusmock/__init__.py b/dbusmock/__init__.py
-index 8a482ab..3d5d71a 100644
---- a/dbusmock/__init__.py
-+++ b/dbusmock/__init__.py
-@@ -14,8 +14,8 @@ __license__ = 'LGPL 3+'
- __version__ = '0.16.7'
-
- from dbusmock.mockobject import (DBusMockObject, MOCK_IFACE,
-- OBJECT_MANAGER_IFACE, get_object, get_objects)
-+ OBJECT_MANAGER_IFACE, get_object, get_objects, add_object)
- from dbusmock.testcase import DBusTestCase
-
- __all__ = ['DBusMockObject', 'MOCK_IFACE', 'OBJECT_MANAGER_IFACE',
-- 'DBusTestCase', 'get_object', 'get_objects']
-+ 'DBusTestCase', 'get_object', 'get_objects', 'add_object']
-diff --git a/dbusmock/mockobject.py b/dbusmock/mockobject.py
-index 586dbad..e4f130f 100644
---- a/dbusmock/mockobject.py
-+++ b/dbusmock/mockobject.py
-@@ -688,6 +688,14 @@ dbus.service._method_lookup = _dbusmock_method_lookup
- # Helper API for templates
- #
-
-+def add_object(path, obj):
-+ if path in objects:
-+ raise dbus.exceptions.DBusException(
-+ 'org.freedesktop.DBus.Mock.NameError',
-+ 'object %s already exists' % path)
-+
-+ objects[path] = obj
-+
-
- def get_objects():
- '''Return all existing object paths'''
diff --git a/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch b/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch
deleted file mode 100644
index 06ab1f05e2..0000000000
--- a/meta-python/recipes-devtools/python/python-dbusmock/0002-Add-possibility-to-import-templates-from-packages.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 03bd5cb77c54033857810bb17562859eefa41221 Mon Sep 17 00:00:00 2001
-From: Simon Busch <simon.busch@lge.com>
-Date: Wed, 9 Apr 2014 13:20:33 +0200
-Subject: [PATCH] Add possibility to import templates from packages
-
-Does not have any unit tests yet.
-
-Signed-off-by: Simon Busch <simon.busch@lge.com>
-
----
- dbusmock/mockobject.py | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/dbusmock/mockobject.py b/dbusmock/mockobject.py
-index e4f130f..389df70 100644
---- a/dbusmock/mockobject.py
-+++ b/dbusmock/mockobject.py
-@@ -46,6 +46,9 @@ def load_module(name):
- exec(f.read(), mod.__dict__, mod.__dict__)
- return mod
-
-+ if '.' in name:
-+ return importlib.import_module(name)
-+
- return importlib.import_module('dbusmock.templates.' + name)
-
-
diff --git a/meta-python/recipes-devtools/python/python-dbusmock_0.16.7.bb b/meta-python/recipes-devtools/python/python-dbusmock_0.16.7.bb
deleted file mode 100644
index ec8c54aacc..0000000000
--- a/meta-python/recipes-devtools/python/python-dbusmock_0.16.7.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-# Copyright (c) 2014 LG Electronics, Inc.
-
-SUMMARY = "With this program/Python library you can easily create mock objects on D-Bus"
-AUTHOR = "Martin Pitt <martin.pitt@ubuntu.com>"
-
-LICENSE = "GPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
-
-SRC_URI[md5sum] = "80f8caa838fad96483a8751e11d384f9"
-SRC_URI[sha256sum] = "2d2ea892fa4633c3ec6ac1e912120ec493047a5c6522849b7d1c95ad755bce75"
-
-SRC_URI += " \
- file://0001-Add-functionality-to-add-own-objects-to-internal-obj.patch \
- file://0002-Add-possibility-to-import-templates-from-packages.patch \
-"
-
-PYPI_PACKAGE = "python-dbusmock"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-dbus \
- ${PYTHON_PN}-pygobject \
- ${PYTHON_PN}-xml \
- "
diff --git a/meta-python/recipes-devtools/python/python-decorator.inc b/meta-python/recipes-devtools/python/python-decorator.inc
deleted file mode 100644
index 44edb8ad7e..0000000000
--- a/meta-python/recipes-devtools/python/python-decorator.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Python decorator utilities"
-DESCRIPTION = "\
-The aim of the decorator module it to simplify the usage of decorators \
-for the average programmer, and to popularize decorators by showing \
-various non-trivial examples. Of course, as all techniques, decorators \
-can be abused and you should not try to solve every problem with a \
-decorator, just because you can."
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=893f896413826096ce5270c700a498fd"
-
-SRC_URI[md5sum] = "249e7299b9b4bced0c382343f84eb1c0"
-SRC_URI[sha256sum] = "c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c"
-
-inherit pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-stringold \
- "
diff --git a/meta-python/recipes-devtools/python/python-decorator_4.3.0.bb b/meta-python/recipes-devtools/python/python-decorator_4.3.0.bb
deleted file mode 100644
index 2a2b455f56..0000000000
--- a/meta-python/recipes-devtools/python/python-decorator_4.3.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-decorator.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-contextlib"
diff --git a/meta-python/recipes-devtools/python/python-django-south.inc b/meta-python/recipes-devtools/python/python-django-south.inc
index e4f03b937d..4a376391aa 100644
--- a/meta-python/recipes-devtools/python/python-django-south.inc
+++ b/meta-python/recipes-devtools/python/python-django-south.inc
@@ -12,6 +12,6 @@ inherit pypi
BBCLASSEXTEND = "native nativesdk"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
${PYTHON_PN}-django \
"
diff --git a/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb b/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb
deleted file mode 100644
index 357b766a3d..0000000000
--- a/meta-python/recipes-devtools/python/python-django-south_1.0.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-django-south.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-django.inc b/meta-python/recipes-devtools/python/python-django.inc
index 4ef2d7f9db..e030ff4087 100644
--- a/meta-python/recipes-devtools/python/python-django.inc
+++ b/meta-python/recipes-devtools/python/python-django.inc
@@ -3,17 +3,16 @@ HOMEPAGE = "http://www.djangoproject.com/"
LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=f09eb47206614a4954c51db8a94840fa"
-SRC_URI[md5sum] = "f306015e16a8d5024dbac923ac34fffb"
-SRC_URI[sha256sum] = "22383567385a9c406d8a5ce080a2694c82c6b733e157922197e8b393bb3aacd9"
-
PYPI_PACKAGE = "Django"
inherit pypi
-FILES_${PN} += "${datadir}/django"
+UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
+
+FILES:${PN} += "${datadir}/django"
BBCLASSEXTEND = "native nativesdk"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
${PYTHON_PN}-compression \
${PYTHON_PN}-ctypes \
${PYTHON_PN}-datetime \
@@ -29,4 +28,7 @@ RDEPENDS_${PN} += "\
${PYTHON_PN}-threading \
${PYTHON_PN}-unixadmin \
${PYTHON_PN}-xml \
+ ${PYTHON_PN}-distutils \
"
+
+CVE_PRODUCT = "django"
diff --git a/meta-python/recipes-devtools/python/python-django_1.11.10.bb b/meta-python/recipes-devtools/python/python-django_1.11.10.bb
deleted file mode 100644
index d2347cc963..0000000000
--- a/meta-python/recipes-devtools/python/python-django_1.11.10.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-require python-django.inc
-inherit setuptools
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-argparse \
- ${PYTHON_PN}-subprocess \
- ${PYTHON_PN}-zlib \
-"
diff --git a/meta-python/recipes-devtools/python/python-dnspython.inc b/meta-python/recipes-devtools/python/python-dnspython.inc
deleted file mode 100644
index 6a04429b7b..0000000000
--- a/meta-python/recipes-devtools/python/python-dnspython.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-DESCRIPTION = "DNS toolkit for Python"
-HOMEPAGE = "http://www.dnspython.org/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b9d855ee0d7bea17c8b0994d37985e1e"
-
-SRC_URI[md5sum] = "05d33ffb5d8f35ae0474bb952778a344"
-SRC_URI[sha256sum] = "40f563e1f7a7b80dc5a4e76ad75c23da53d62f1e15e6e517293b04e1f84ead7c"
-
-PYPI_PACKAGE_EXT = "zip"
-
-inherit pypi
-
-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/python-dnspython_1.15.0.bb b/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb
deleted file mode 100644
index 9dbcd0ffbd..0000000000
--- a/meta-python/recipes-devtools/python/python-dnspython_1.15.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-dnspython.inc
diff --git a/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb b/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb
deleted file mode 100644
index 68436a1a54..0000000000
--- a/meta-python/recipes-devtools/python/python-docutils_0.14rc2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Text processing system for documentation"
-HOMEPAGE = "http://docutils.sourceforge.net"
-SECTION = "devel/python"
-LICENSE = "PSF & BSD-2-Clause & GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING.txt;md5=35a23d42b615470583563132872c97d6"
-
-DEPENDS = "python"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/docutils/docutils-${PV}.tar.gz"
-SRC_URI[md5sum] = "2f4bee6451958252f7bec71f18b05be3"
-SRC_URI[sha256sum] = "3caee0bcb2a49fdf24fcfa70849a60abb7a181aa68b030f7cb7494096181830c"
-
-S = "${WORKDIR}/docutils-${PV}"
-
-inherit distutils
-
-BBCLASSEXTEND = "native"
-
diff --git a/meta-python/recipes-devtools/python/python-dominate.inc b/meta-python/recipes-devtools/python/python-dominate.inc
deleted file mode 100644
index ecf74a0bc5..0000000000
--- a/meta-python/recipes-devtools/python/python-dominate.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Dominate is a Python library for creating and manipulating HTML documents using an elegant DOM API."
-LICENSE = "LGPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=b52f2d57d10c4f7ee67a7eb9615d5d24"
-
-SRC_URI[md5sum] = "45bd97e6f7888aac24ae86013c57638e"
-SRC_URI[sha256sum] = "4b8ce6f33633c9dd9175b228d21c00c801b6bd0327747cd5e17fc2da934c3a69"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
- "
diff --git a/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb b/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb
deleted file mode 100644
index c19445e728..0000000000
--- a/meta-python/recipes-devtools/python/python-dominate_2.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-dominate.inc
diff --git a/meta-python/recipes-devtools/python/python-editor.inc b/meta-python/recipes-devtools/python/python-editor.inc
deleted file mode 100644
index 30650bda41..0000000000
--- a/meta-python/recipes-devtools/python/python-editor.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-DESCRIPTION = "Programmatically open and editor, capture the result"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-SRC_URI[md5sum] = "0aca5f2ef176ce68e98a5b7e31372835"
-SRC_URI[sha256sum] = "a3c066acee22a1c94f63938341d4fb374e3fdd69366ed6603d7b24bed1efc565"
-
-PYPI_PACKAGE = "python-editor"
-
diff --git a/meta-python/recipes-devtools/python/python-editor_1.0.3.bb b/meta-python/recipes-devtools/python/python-editor_1.0.3.bb
deleted file mode 100644
index f7a9a8c0d5..0000000000
--- a/meta-python/recipes-devtools/python/python-editor_1.0.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-editor.inc
diff --git a/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb b/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb
deleted file mode 100644
index d50b5c7c58..0000000000
--- a/meta-python/recipes-devtools/python/python-enum34_1.1.6.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "backport of Python 3.4's enum package"
-HOMEPAGE = "https://bitbucket.org/stoneleaf/enum34"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://enum/LICENSE;md5=0a97a53a514564c20efd7b2e8976c87e"
-
-SRC_URI[md5sum] = "5f13a0841a61f7fc295c514490d120d0"
-SRC_URI[sha256sum] = "8ad8c4783bf61ded74527bffb48ed9b54166685e4230386a9ed9b1279e2df5b1"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb b/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb
deleted file mode 100644
index dd9799faf1..0000000000
--- a/meta-python/recipes-devtools/python/python-epydoc_3.0.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Epydoc is a tool for generating API documentation for Python modules, based on their docstrings"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=011c0d78eb6054d731c879132d7313f0"
-HOMEPAGE = "http://epydoc.sourceforge.net/"
-
-SRC_URI[md5sum] = "cdd6f6c76dd8bab5e653a343a0544294"
-SRC_URI[sha256sum] = "d4e5c8d90937d01b05170f592c1fa9b29e9ed0498dfe7f0eb2a3af61725b6ad1"
-
-inherit pypi distutils
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-re \
- ${PYTHON_PN}-xml \
- "
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-evdev.inc b/meta-python/recipes-devtools/python/python-evdev.inc
deleted file mode 100644
index 5a3884a6f9..0000000000
--- a/meta-python/recipes-devtools/python/python-evdev.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python evdev lib"
-HOMEPAGE = "https://github.com/gvalkov/python-evdev"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=18debddbb3f52c661a129724a883a8e2"
-
-SRC_URI[md5sum] = "c7e855ae9f97f869a59e75b29f05ce74"
-SRC_URI[sha256sum] = "57edafc469a414f58b51af1bfb9ee2babb9f626dd2df530d71c1176871850aa1"
-
-do_compile_prepend() {
- rm -rf ${S}/evdev/ecodes.c
-}
-
-DISTUTILS_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/python-evdev_0.7.0.bb b/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb
deleted file mode 100644
index 63541363e3..0000000000
--- a/meta-python/recipes-devtools/python/python-evdev_0.7.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-evdev.inc
diff --git a/meta-python/recipes-devtools/python/python-feedformatter.inc b/meta-python/recipes-devtools/python/python-feedformatter.inc
deleted file mode 100644
index a333ef4eea..0000000000
--- a/meta-python/recipes-devtools/python/python-feedformatter.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "A Python library for generating news feeds in RSS and Atom formats"
-HOMEPAGE = "http://code.google.com/p/feedformatter/"
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=258e3f39e2383fbd011035d04311008d"
-SRCREV = "7391193c83e10420b5a2d8ef846d23fc368c6d85"
-
-SRC_URI = "git://github.com/marianoguerra/feedformatter.git"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-xml \
- "
diff --git a/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb b/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb
deleted file mode 100644
index 175f94478a..0000000000
--- a/meta-python/recipes-devtools/python/python-feedformatter_0.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-feedformatter.inc
diff --git a/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb b/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb
deleted file mode 100644
index b8ee700f04..0000000000
--- a/meta-python/recipes-devtools/python/python-feedparser_5.2.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Python Atom and RSS feed parser"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c21a7713ef6dc1b99644061c397e7c2a"
-
-SRC_URI[md5sum] = "d552f7a2a55e8e33b2a3fe1082505b42"
-SRC_URI[sha256sum] = "bd030652c2d08532c034c27fcd7c85868e7fa3cb2b17f230a44a6bbc92519bf9"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-stringold \
- "
-
diff --git a/meta-python/recipes-devtools/python/python-flask-babel.inc b/meta-python/recipes-devtools/python/python-flask-babel.inc
deleted file mode 100644
index b60ee17d12..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-babel.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "i18n and l10n support for Flask based on babel and pytz"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=51917f3e8e858f5ae295a7d0e2eb3cc9"
-
-SRC_URI[md5sum] = "07803453743f139309021572a799c6b3"
-SRC_URI[sha256sum] = "c0d75710bd4b0fe866f9f2347de6e19208712f9cec006436b4c1c15d4cb0c939"
-
-PYPI_PACKAGE = "Flask-Babel"
-
-inherit pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-speaklater \
- ${PYTHON_PN}-babel \
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb b/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb
deleted file mode 100644
index 38e78c73f9..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-babel_0.11.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-babel.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb b/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb
deleted file mode 100644
index f035862de3..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-bcrypt_0.7.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Bcrypt hashing for Flask."
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0ee2ee5bee7fe96597770e92db5719a8"
-
-SRC_URI[md5sum] = "d345c36ac6637d3ca9fa942e238d00ca"
-SRC_URI[sha256sum] = "d71c8585b2ee1c62024392ebdbc447438564e2c8c02b4e57b56a4cafd8d13c5f"
-
-PYPI_PACKAGE = "Flask-Bcrypt"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "${PYTHON_PN}-bcrypt ${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python-flask-bootstrap.inc b/meta-python/recipes-devtools/python/python-flask-bootstrap.inc
index 0723b97383..1a729c975b 100644
--- a/meta-python/recipes-devtools/python/python-flask-bootstrap.inc
+++ b/meta-python/recipes-devtools/python/python-flask-bootstrap.inc
@@ -1,5 +1,5 @@
DESCRIPTION = "An extension that includes Bootstrap in your project, without any boilerplate code."
-LICENSE = "BSD"
+LICENSE = "Apache-2.0 & MIT & BSD-3-Clause"
LIC_FILES_CHKSUM = "file://PKG-INFO;md5=a03749709f06118a17349deb5a210619"
SRC_URI[md5sum] = "e40d50f5c5b6438c1c6200a6f2871f81"
@@ -7,7 +7,7 @@ SRC_URI[sha256sum] = "cb08ed940183f6343a64e465e83b3a3f13c53e1baabb8d72b5da4545ef
PYPI_PACKAGE = "Flask-Bootstrap"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
${PYTHON_PN}-dominate \
${PYTHON_PN}-flask \
${PYTHON_PN}-visitor \
diff --git a/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.7.1.bb b/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.7.1.bb
deleted file mode 100644
index eeaade9a88..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-bootstrap_3.3.7.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-bootstrap.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-login.inc b/meta-python/recipes-devtools/python/python-flask-login.inc
deleted file mode 100644
index 59eb64f778..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-login.inc
+++ /dev/null
@@ -1,14 +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[md5sum] = "25b34c74bd509792f291c16e184225df"
-SRC_URI[sha256sum] = "c815c1ac7b3e35e2081685e389a665f2c74d7e077cb93cecabaea352da4752ec"
-
-PYPI_PACKAGE = "Flask-Login"
-
-RDEPENDS_${PN}_class-target = "${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python-flask-login_0.4.1.bb b/meta-python/recipes-devtools/python/python-flask-login_0.4.1.bb
deleted file mode 100644
index 510cedf220..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-login_0.4.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-login.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-mail.inc b/meta-python/recipes-devtools/python/python-flask-mail.inc
deleted file mode 100644
index bb08703483..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-mail.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Flask extension for sending email"
-DESCRIPTION = "A Flask extension for sending email"
-HOMEPAGE = " https://github.com/rduplain/flask-email"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5b16dfa6d3f275ace5985bb92949f770"
-
-SRC_URI[md5sum] = "04b35a42a44ec7aa724ec8ce55e2e08e"
-SRC_URI[sha256sum] = "22e5eb9a940bf407bcf30410ecc3708f3c56cc44b29c34e1726fe85006935f41"
-
-PYPI_PACKAGE = "Flask-Mail"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python-flask-mail_0.9.1.bb b/meta-python/recipes-devtools/python/python-flask-mail_0.9.1.bb
deleted file mode 100644
index 8324da867e..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-mail_0.9.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-mail.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-migrate.inc b/meta-python/recipes-devtools/python/python-flask-migrate.inc
deleted file mode 100644
index 7af4fe1b59..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-migrate.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "SQLAlchemy database migrations for Flask applications using Alembic"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b69377f79f3f48c661701236d5a6a85"
-
-SRC_URI[md5sum] = "def4106c80897b7fad2afb3bc05360e4"
-SRC_URI[sha256sum] = "b709ca8642559c3c5a81a33ab10839fa052177accd5ba821047a99db635255ed"
-
-PYPI_PACKAGE = "Flask-Migrate"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-flask-sqlalchemy \
- ${PYTHON_PN}-alembic \
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python-flask-migrate_2.1.1.bb b/meta-python/recipes-devtools/python/python-flask-migrate_2.1.1.bb
deleted file mode 100644
index ece516f505..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-migrate_2.1.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-migrate.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-nav.inc b/meta-python/recipes-devtools/python/python-flask-nav.inc
deleted file mode 100644
index 932ccdf4a3..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-nav.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Easily create navigation for Flask applications."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=2729ee82259d601d90d28b0574d12416"
-
-SRC_URI[md5sum] = "4d51cfd06d58f8d0fe85775a6696c0e5"
-SRC_URI[sha256sum] = "44e40b755380a1e68ab521a2f9174de259a2c94ddcdaabf36b3aca2e110a33f4"
-
-PYPI_PACKAGE = "flask-nav"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-blinker \
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python-flask-nav_0.6.bb b/meta-python/recipes-devtools/python/python-flask-nav_0.6.bb
deleted file mode 100644
index 30b5b3b3b7..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-nav_0.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-nav.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb b/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb
deleted file mode 100644
index b2dc96e3c0..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-navigation_0.2.0.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "The navigation of Flask application."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=af2ec695dc1f3eb7bd74f79a68a0d789"
-
-SRC_URI[md5sum] = "d1075ee02a3f69da37e5cadad3395f31"
-SRC_URI[sha256sum] = "c42d30efa989ca877444a410e8a1cd2563546f9effe3d9fe388eedf7a6c69285"
-
-PYPI_PACKAGE = "Flask-Navigation"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-blinker \
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python-flask-pymongo.inc b/meta-python/recipes-devtools/python/python-flask-pymongo.inc
deleted file mode 100644
index fb2d6ed8be..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-pymongo.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "PyMongo support for Flask applications"
-DESCRIPTION = "PyMongo support for Flask applications."
-HOMEPAGE = "https://github.com/mitsuhiko/flask/"
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;beginline=1;endline=24;md5=424c4e1047d28e01b4e4634a069c019d"
-
-SRC_URI[md5sum] = "d7a1b717f27154e1f3a355f8ec2467d6"
-SRC_URI[sha256sum] = "2baaa2ba5107d72b3a8bd4b5c0c8881316e35340ad1ae979cc13f1f3c8843b3d"
-
-PYPI_PACKAGE = "Flask-PyMongo"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb b/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb
deleted file mode 100644
index d41d023480..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-pymongo_0.5.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-pymongo.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-restful.inc b/meta-python/recipes-devtools/python/python-flask-restful.inc
deleted file mode 100644
index 0485f85aac..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-restful.inc
+++ /dev/null
@@ -1,16 +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[md5sum] = "8243ca101185b130d8fa529cbdbdbddd"
-SRC_URI[sha256sum] = "5795519501347e108c436b693ff9a4d7b373a3ac9069627d64e4001c05dd3407"
-
-inherit pypi
-
-PYPI_PACKAGE = "Flask-RESTful"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb b/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb
deleted file mode 100644
index 1968d1d9d2..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-restful_0.3.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-flask-restful.inc
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 fca777bc55..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-script.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Scripting support for flask"
-LICENSE = "BSD"
-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-script_2.0.6.bb b/meta-python/recipes-devtools/python/python-flask-script_2.0.6.bb
deleted file mode 100644
index b7d55af151..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-script_2.0.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-script.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-sijax.inc b/meta-python/recipes-devtools/python/python-flask-sijax.inc
index ff4e70a53c..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-sijax_0.4.1.bb b/meta-python/recipes-devtools/python/python-flask-sijax_0.4.1.bb
deleted file mode 100644
index 74738fc2f2..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-sijax_0.4.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools
-require python-flask-sijax.inc
-
-SRC_URI[sha256sum] = "fb2bf2d4f75408185102195055d75549fee8d9c9e954dca2427186925cdc429f" \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc b/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc
deleted file mode 100644
index e0efbc63ae..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-sqlalchemy.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-DESCRIPTION = "Adds SQLAlchemy support to your Flask application."
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5ed1b8cc741515a835a7f6bf2f62ef4a"
-
-SRC_URI[md5sum] = "373ce61dfd03b593ad2eaba68c9fee35"
-SRC_URI[sha256sum] = "5971b9852b5888655f11db634e87725a9031e170f37c0ce7851cf83497f56e53"
-
-PYPI_PACKAGE = "Flask-SQLAlchemy"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-sqlalchemy ${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb b/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb
deleted file mode 100644
index 3dc355c5da..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-sqlalchemy_2.3.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-sqlalchemy.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-uploads.inc b/meta-python/recipes-devtools/python/python-flask-uploads.inc
deleted file mode 100644
index cd7ac1aeb6..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-uploads.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Flexible and efficient upload handling for Flask"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b712ac634b39469660c9bdfb8d03421c"
-
-SRC_URI[md5sum] = "e5eee34aa92b64a4d22847672b3858a1"
-SRC_URI[sha256sum] = "53ecbd6033667d50ae02b63adebbaa33c7fc56c09e5293025810cf9d841ecb02"
-
-PYPI_PACKAGE = "Flask-Uploads"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-flask \
- "
diff --git a/meta-python/recipes-devtools/python/python-flask-uploads_0.2.1.bb b/meta-python/recipes-devtools/python/python-flask-uploads_0.2.1.bb
deleted file mode 100644
index d39b07f690..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-uploads_0.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-uploads.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-user.inc b/meta-python/recipes-devtools/python/python-flask-user.inc
deleted file mode 100644
index c2b71829c7..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-user.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Customizable user account management for Flask"
-DESCRIPTION = "Customizable User Account Management for Flask; Register \
-Confirm email, Login, Change username, Change password, Forgot Password \
-and more."
-HOMEPAGE = " https://github.com/lingthio/Flask-User"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=97de97cd9d6e23c88129d884588ce71a"
-
-SRC_URI[md5sum] = "f7965e66ca139c8436896da07e66c21f"
-SRC_URI[sha256sum] = "601abcc0343dfbae0c56273d98362d5cdc266ac84d20b3f65a212e4a2c83b302"
-
-PYPI_PACKAGE = "Flask-User"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-flask \
- ${PYTHON_PN}-flask-login \
- ${PYTHON_PN}-flask-mail \
- ${PYTHON_PN}-babel"
diff --git a/meta-python/recipes-devtools/python/python-flask-user_0.6.19.bb b/meta-python/recipes-devtools/python/python-flask-user_0.6.19.bb
deleted file mode 100644
index 654d377528..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-user_0.6.19.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-user.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-wtf.inc b/meta-python/recipes-devtools/python/python-flask-wtf.inc
deleted file mode 100644
index 3c90656ad7..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-wtf.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Simple integration of Flask and WTForms."
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3ca6bb31670492f791e6a9f2fb9f8a80"
-
-SRC_URI[md5sum] = "586f50f233926cade42e3d744aca3e8f"
-SRC_URI[sha256sum] = "5d14d55cfd35f613d99ee7cba0fc3fbbe63ba02f544d349158c14ca15561cc36"
-
-PYPI_PACKAGE = "Flask-WTF"
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-flask \
- ${PYTHON_PN}-itsdangerous \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-wtforms \
-"
diff --git a/meta-python/recipes-devtools/python/python-flask-wtf_0.14.2.bb b/meta-python/recipes-devtools/python/python-flask-wtf_0.14.2.bb
deleted file mode 100644
index dbf091bc0f..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-wtf_0.14.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-wtf.inc
diff --git a/meta-python/recipes-devtools/python/python-flask-xstatic.inc b/meta-python/recipes-devtools/python/python-flask-xstatic.inc
index a1fe14ed46..5f4e0858f8 100644
--- a/meta-python/recipes-devtools/python/python-flask-xstatic.inc
+++ b/meta-python/recipes-devtools/python/python-flask-xstatic.inc
@@ -1,16 +1,16 @@
DESCRIPTION = "XStatic support for flask"
-LICENSE = "BSD"
+LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://LICENSE;md5=659968f6ebd4b70b6c3190d20b4a924c"
SRC_URI[md5sum] = "2f56023e1444c8bd1fec41afe93de743"
SRC_URI[sha256sum] = "226ea8e97065a9488b59bfe5c94af4c6e2ea70a25052e301fb231a1381490133"
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-flask-xstatic:"
+FILESEXTRAPATHS:prepend := "${THISDIR}/python-flask-xstatic:"
SRC_URI += "file://remove-pip-requires.patch"
PYPI_PACKAGE = "Flask-XStatic"
-RDEPENDS_${PN} += "\
+RDEPENDS:${PN} += "\
${PYTHON_PN}-flask \
${PYTHON_PN}-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-flask-xstatic_0.0.1.bb b/meta-python/recipes-devtools/python/python-flask-xstatic_0.0.1.bb
deleted file mode 100644
index dff14a8c05..0000000000
--- a/meta-python/recipes-devtools/python/python-flask-xstatic_0.0.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask-xstatic.inc
diff --git a/meta-python/recipes-devtools/python/python-flask.inc b/meta-python/recipes-devtools/python/python-flask.inc
deleted file mode 100644
index ecf5619ec2..0000000000
--- a/meta-python/recipes-devtools/python/python-flask.inc
+++ /dev/null
@@ -1,16 +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"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=19866b76b054ab30c270c0eb9d7e43d7"
-
-SRC_URI[md5sum] = "97278dfdafda98ba7902e890b0289177"
-SRC_URI[sha256sum] = "49f44461237b69ecd901cc7ce66feea0319b9158743dd27a2899962ab214dac1"
-
-CLEANBROKEN = "1"
-
-PYPI_PACKAGE = "Flask"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-werkzeug ${PYTHON_PN}-werkzeug-tests ${PYTHON_PN}-jinja2 ${PYTHON_PN}-itsdangerous ${PYTHON_PN}-click"
diff --git a/meta-python/recipes-devtools/python/python-flask_0.12.2.bb b/meta-python/recipes-devtools/python/python-flask_0.12.2.bb
deleted file mode 100644
index a0a28ab8bd..0000000000
--- a/meta-python/recipes-devtools/python/python-flask_0.12.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-flask.inc
diff --git a/meta-python/recipes-devtools/python/python-funcsigs_1.0.2.bb b/meta-python/recipes-devtools/python/python-funcsigs_1.0.2.bb
deleted file mode 100644
index dad15ee0f3..0000000000
--- a/meta-python/recipes-devtools/python/python-funcsigs_1.0.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python function signatures from PEP362 for Python 2.6, 2.7 and 3.2+"
-DESCRPTION = " \
-funcsigs is a backport of the `PEP 362`_ function signature features from \
-Python 3.3's `inspect`_ module. The backport is compatible with Python 2.6, \
-2.7 as well as 3.3 and up. 3.2 was supported by version 0.4, but with \
-setuptools and pip no longer supporting 3.2, we cannot make any statement \
-about 3.2 compatibility. \
-"
-
-HOMEPAGE = "http://funcsigs.readthedocs.org"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d6bc91dc8e5793892189fe7481a2d354"
-
-SRC_URI[md5sum] = "7e583285b1fb8a76305d6d68f4ccc14e"
-SRC_URI[sha256sum] = "a7bb0f2cf3a3fd1ab2732cb49eba4252c2af4240442415b4abce3b87022a8f50"
-
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-functools32_3.2.3-2.bb b/meta-python/recipes-devtools/python/python-functools32_3.2.3-2.bb
deleted file mode 100644
index cb4bba4968..0000000000
--- a/meta-python/recipes-devtools/python/python-functools32_3.2.3-2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Backport of the functools module from Python 3.2.3 for use on 2.7 and PyPy."
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=27cf2345969ed18e6730e90fb0063a10"
-
-SRC_URI[md5sum] = "09f24ffd9af9f6cd0f63cb9f4e23d4b2"
-SRC_URI[sha256sum] = "f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-future_0.16.0.bb b/meta-python/recipes-devtools/python/python-future_0.16.0.bb
deleted file mode 100644
index 46f7fe50f6..0000000000
--- a/meta-python/recipes-devtools/python/python-future_0.16.0.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=3f457538b297bd0ef86564b8ac216ad7"
-
-SRC_URI[md5sum] = "3e8e88a2bda48d54b1da7634d04760d7"
-SRC_URI[sha256sum] = "e39ced1ab767b5936646cedba8bcce582398233d6a627067d4c6a454c90cfedb"
-
-PYPI_PACKAGE_HASH = "99abde815842bc6e97d5a7806ad51236630da14ca2f3b1fce94c0bb94d3d"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-gdata_2.0.18.bb b/meta-python/recipes-devtools/python/python-gdata_2.0.18.bb
deleted file mode 100644
index 897581f194..0000000000
--- a/meta-python/recipes-devtools/python/python-gdata_2.0.18.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Google Data APIs Python Client Library"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.txt;md5=4c8f0e6846e52a7fe4943acf462d808d"
-HOMEPAGE = "http://code.google.com/p/gdata-python-client/"
-
-SRC_URI[md5sum] = "13b6e6dd8f9e3e9a8e005e05a8329408"
-SRC_URI[sha256sum] = "56e7d22de819c22b13ceb0fe1869729b4287f89ebbd4bb55380d7bcf61a1fdb6"
-
-S = "${WORKDIR}/gdata.py-${PV}"
-
-inherit pypi distutils
-
-FILES_${PN} += "${datadir}"
-
-RDEPENDS_${PN} = " \
- ${PYTHON_PN}-distutils \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python-gevent.inc b/meta-python/recipes-devtools/python/python-gevent.inc
deleted file mode 100644
index 13513f2192..0000000000
--- a/meta-python/recipes-devtools/python/python-gevent.inc
+++ /dev/null
@@ -1,33 +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 & BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=4de99aac27b470c29c6c309e0c279b65 \
- file://NOTICE;md5=5966cd2c6582656d28ab3c33da3860f8 \
- file://deps/libev/LICENSE;md5=d6ad416afd040c90698edcdf1cbee347"
-DEPENDS += "libevent"
-DEPENDS += "${PYTHON_PN}-greenlet"
-RDEPENDS_${PN} = "${PYTHON_PN}-greenlet \
- ${PYTHON_PN}-mime \
- ${PYTHON_PN}-pprint \
- "
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-gevent:"
-
-SRC_URI_append = " \
- file://libev-conf.patch;patch=1;pnum=1 \
-"
-
-SRC_URI[md5sum] = "7f0baf355384fe5ff2ecf66853422554"
-SRC_URI[sha256sum] = "4791c8ae9c57d6f153354736e1ccab1e2baf6c8d9ae5a77a9ac90f41e2966b2d"
-
-# The python-gevent has no autoreconf ability
-# and the logic for detecting a cross compile is flawed
-# so always force a cross compile
-do_configure_append() {
- sed -i -e 's/^cross_compiling=no/cross_compiling=yes/' ${S}/deps/libev/configure
- sed -i -e 's/^cross_compiling=no/cross_compiling=yes/' ${S}/deps/c-ares/configure
-}
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch b/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch
deleted file mode 100644
index 79c1867ba7..0000000000
--- a/meta-python/recipes-devtools/python/python-gevent/libev-conf.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 2294734ef9d5e2efb05820e9759a1635799bdea9 Mon Sep 17 00:00:00 2001
-From: Andrej Rode <andrej.rode@ettus.com>
-Date: Mon, 10 Apr 2017 19:25:18 -0700
-Subject: [PATCH] libev: make configure crosscompile compatible
-
-Signed-off-by: Andrej Rode <andrej.rode@ettus.com>
----
- deps/libev/configure | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/deps/libev/configure b/deps/libev/configure
-index 743817e..96c2366 100755
---- a/deps/libev/configure
-+++ b/deps/libev/configure
-@@ -2208,7 +2208,7 @@ fi
- ac_ext=c
- ac_cpp='$CPP $CPPFLAGS'
- ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
--ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_link='$CC -static -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
- ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
---
-2.10.2
-
diff --git a/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb b/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb
deleted file mode 100644
index f13bfd7b73..0000000000
--- a/meta-python/recipes-devtools/python/python-gevent_1.2.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-require python-gevent.inc
-inherit setuptools
-
-RDEPENDS_${PN} += "${PYTHON_PN}-re"
diff --git a/meta-python/recipes-devtools/python/python-greenlet.inc b/meta-python/recipes-devtools/python/python-greenlet.inc
deleted file mode 100644
index 7a42240fe2..0000000000
--- a/meta-python/recipes-devtools/python/python-greenlet.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Python lightweight in-process concurrent programming"
-LICENSE = "MIT & PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=03143d7a1a9f5d8a0fee825f24ca9c36 \
- file://LICENSE.PSF;md5=c106931d9429eda0492617f037b8f69a"
-
-SRC_URI[md5sum] = "6e0b9dd5385f81d478451ec8ed1d62b3"
-SRC_URI[sha256sum] = "0fef83d43bf87a5196c91e73cb9772f945a4caaff91242766c5916d1dd1381e4"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-greenlet_0.4.13.bb b/meta-python/recipes-devtools/python/python-greenlet_0.4.13.bb
deleted file mode 100644
index c14976ed32..0000000000
--- a/meta-python/recipes-devtools/python/python-greenlet_0.4.13.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit distutils
-require python-greenlet.inc
diff --git a/meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb b/meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb
deleted file mode 100644
index 45e0cc1b1e..0000000000
--- a/meta-python/recipes-devtools/python/python-grpcio-tools_1.8.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "Google gRPC tools"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-
-DEPENDS = "python-grpcio"
-RDEPENDS_${PN} = "python-grpcio"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
-
-inherit pypi setuptools
-
-SRC_URI[md5sum] = "e04e65afe60410cf178ff2698f052a7c"
-SRC_URI[sha256sum] = "edc84c09039d3a01012ccd97450abd06ee6b980710f6d9f191b50deb6774a75c"
-
-# For usage in other recipies when compiling protobuf files (e.g. by grpcio-tools)
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch b/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
deleted file mode 100644
index 0c1d964a61..0000000000
--- a/meta-python/recipes-devtools/python/python-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b02be74a2eff8abc612ef84f30e0fbce6a7f65f5 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 4 Aug 2017 09:04:07 -0700
-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
-
-error: invalid argument '-std=gnu99' not allowed with 'C++'
-
-gcc7 ( defaults are -std=gnu11 and -std=gnu++14 )
- as well clang default to these standards mode or newer
-anyway
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- setup.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Index: grpcio-1.8.4/setup.py
-===================================================================
---- grpcio-1.8.4.orig/setup.py
-+++ grpcio-1.8.4/setup.py
-@@ -115,7 +115,7 @@ if EXTRA_ENV_COMPILE_ARGS is None:
- else:
- EXTRA_ENV_COMPILE_ARGS += ' -D_ftime=_ftime64 -D_timeb=__timeb64'
- elif "linux" in sys.platform:
-- EXTRA_ENV_COMPILE_ARGS += ' -std=c++11 -std=gnu99 -fvisibility=hidden -fno-wrapv -fno-exceptions'
-+ EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions'
- elif "darwin" in sys.platform:
- EXTRA_ENV_COMPILE_ARGS += ' -fvisibility=hidden -fno-wrapv -fno-exceptions'
-
diff --git a/meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb b/meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb
deleted file mode 100644
index bec9d846b5..0000000000
--- a/meta-python/recipes-devtools/python/python-grpcio_1.8.4.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "Google gRPC"
-HOMEPAGE = "http://www.grpc.io/"
-SECTION = "devel/python"
-
-DEPENDS = "python-protobuf"
-
-SRC_URI_append_class-target = " file://0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch "
-
-RDEPENDS_${PN} = "python-enum34 \
- python-futures \
- python-protobuf \
- python-setuptools \
- python-six \
-"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
-
-inherit pypi setuptools
-
-SRC_URI[md5sum] = "7860f7c61de3890323670b7b1ff63e56"
-SRC_URI[sha256sum] = "88d87aab9c7889b3ab29dd74aac1a5493ed78b9bf5afba1c069c9dd5531f951d"
-
-# For usage in other recipes when compiling protobuf files (e.g. by grpcio-tools)
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-html5lib.inc b/meta-python/recipes-devtools/python/python-html5lib.inc
deleted file mode 100644
index 0eb8bf3213..0000000000
--- a/meta-python/recipes-devtools/python/python-html5lib.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "HTML parser based on the WHATWG HTML specifcation"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1ba5ada9e6fead1fdc32f43c9f10ba7c"
-
-SRC_URI[md5sum] = "942a0688d6bdf20d087c9805c40182ad"
-SRC_URI[sha256sum] = "66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736"
-
-inherit pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-lxml \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-webencodings \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python-html5lib_1.0.1.bb b/meta-python/recipes-devtools/python/python-html5lib_1.0.1.bb
deleted file mode 100644
index f5941a2a11..0000000000
--- a/meta-python/recipes-devtools/python/python-html5lib_1.0.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-html5lib.inc
diff --git a/meta-python/recipes-devtools/python/python-humanize.inc b/meta-python/recipes-devtools/python/python-humanize.inc
deleted file mode 100644
index 17a3449e73..0000000000
--- a/meta-python/recipes-devtools/python/python-humanize.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Python humanize utilities"
-HOMEPAGE = "http://github.com/jmoiron/humanize"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=d2eff82fc25dd07c919a02465884f02e"
-
-SRC_URI[md5sum] = "e8473d9dc1b220911cac2edd53b1d973"
-SRC_URI[sha256sum] = "a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-humanize_0.5.1.bb b/meta-python/recipes-devtools/python/python-humanize_0.5.1.bb
deleted file mode 100644
index 57693093dd..0000000000
--- a/meta-python/recipes-devtools/python/python-humanize_0.5.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-humanize.inc
diff --git a/meta-python/recipes-devtools/python/python-hyperlink.inc b/meta-python/recipes-devtools/python/python-hyperlink.inc
deleted file mode 100644
index 2b5b0a0ff3..0000000000
--- a/meta-python/recipes-devtools/python/python-hyperlink.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION = "A featureful, correct URL for Python"
-HOMEPAGE = "https://github.com/python-hyper/hyperlink"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3893d4ed05dcc823f8ed685a9ea19bcb"
-
-SRC_URI[md5sum] = "eaccb9845b559817e838846669cbc68a"
-SRC_URI[sha256sum] = "bc4ffdbde9bdad204d507bd8f554f16bba82dd356f6130cb16f41422909c33bc"
-
-inherit pypi
-
-RDEPENDS_${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient"
-
-PACKAGES =. "${PN}-test "
-
-FILES_${PN}-test += " \
- ${PYTHON_SITEPACKAGES_DIR}/hyperlinkt/test \
-"
diff --git a/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb b/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb
deleted file mode 100644
index 59a9a5c8dd..0000000000
--- a/meta-python/recipes-devtools/python/python-hyperlink_17.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-hyperlink.inc
diff --git a/meta-python/recipes-devtools/python/python-idna-ssl.inc b/meta-python/recipes-devtools/python/python-idna-ssl.inc
new file mode 100644
index 0000000000..356a3873ee
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python-idna-ssl.inc
@@ -0,0 +1,15 @@
+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
+
+RDEPENDS:${PN} += " \
+ python3-idna \
+ python3-io \
+"
diff --git a/meta-python/recipes-devtools/python/python-idna.inc b/meta-python/recipes-devtools/python/python-idna.inc
deleted file mode 100644
index b1d0d18959..0000000000
--- a/meta-python/recipes-devtools/python/python-idna.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Internationalised Domain Names in Applications"
-HOMEPAGE = "https://github.com/kjd/idna"
-LICENSE = "BSD-3-Clause & Python-2.0 & Unicode"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=c9ba5acd829579492fd5eb306c7a0565"
-
-SRC_URI[md5sum] = "c706e2790b016bd0ed4edd2d4ba4d147"
-SRC_URI[sha256sum] = "2c6a5de3089009e3da7c5dde64a141dbc8551d5b7f6cf4ed7c2568d0cc520a8f"
-
-RDEPENDS_${PN}_class-target = "\
- ${PYTHON_PN}-codecs \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-idna_2.6.bb b/meta-python/recipes-devtools/python/python-idna_2.6.bb
deleted file mode 100644
index 2dcf72a292..0000000000
--- a/meta-python/recipes-devtools/python/python-idna_2.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-idna.inc
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-imaging_1.1.7.bb b/meta-python/recipes-devtools/python/python-imaging_1.1.7.bb
deleted file mode 100644
index 60dd7d0a36..0000000000
--- a/meta-python/recipes-devtools/python/python-imaging_1.1.7.bb
+++ /dev/null
@@ -1,48 +0,0 @@
-SUMMARY = "Python Imaging Library (PIL)"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://README;beginline=92;endline=120;md5=c4371af4579f1e489cf881c1443dd4ec"
-DEPENDS = "freetype jpeg tiff"
-SRCNAME = "Imaging"
-PR = "r5"
-
-SRC_URI = "http://effbot.org/downloads/Imaging-${PV}.tar.gz \
- file://0001-python-imaging-setup.py-force-paths-for-zlib-freetyp.patch \
- file://allow.to.disable.some.features.patch \
- file://fix-freetype-includes.patch \
- file://remove-host-libdir.patch \
- file://python-imaging-CVE-2016-2533.patch \
-"
-
-SRC_URI[md5sum] = "fc14a54e1ce02a0225be8854bfba478e"
-SRC_URI[sha256sum] = "895bc7c2498c8e1f9b99938f1a40dc86b3f149741f105cf7c7bd2e0725405211"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-# There isn't enable/disable option, and lcms is in meta-oe, at least make it explicit when enabled
-# setup.py already has FIXME: add mechanism to explicitly *disable* the use of a library
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[lcms] = ",,lcms"
-
-inherit distutils
-
-do_compile() {
- export STAGING_LIBDIR=${STAGING_LIBDIR}
- export STAGING_INCDIR=${STAGING_INCDIR}
- export LCMS_ENABLED=${@bb.utils.contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)}
- distutils_do_compile
-}
-
-do_install() {
- export STAGING_LIBDIR=${STAGING_LIBDIR}
- export STAGING_INCDIR=${STAGING_INCDIR}
- export LCMS_ENABLED=${@bb.utils.contains('PACKAGECONFIG', 'lcms', 'True', 'False', d)}
- distutils_do_install
- install -d ${D}${datadir}/doc/${BPN}/html/
- install -m 0644 ${S}/README ${D}${datadir}/doc/${BPN}/
- install -m 0644 ${S}/Docs/* ${D}${datadir}/doc/${BPN}/html/
-
- # get rid of #!/usr/local/bin/python
- sed -i -e 's:/usr/local/bin/:${bindir}/env :g' ${D}${bindir}/*
-}
-
-RDEPENDS_${PN} += "python-lang python-stringold"
diff --git a/meta-python/recipes-devtools/python/python-incremental.inc b/meta-python/recipes-devtools/python/python-incremental.inc
deleted file mode 100644
index b63fac9791..0000000000
--- a/meta-python/recipes-devtools/python/python-incremental.inc
+++ /dev/null
@@ -1,20 +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[md5sum] = "602746e0d438e075a5a9e0678140bba2"
-SRC_URI[sha256sum] = "7b751696aaf36eebfab537e458929e194460051ccad279c72b755a167eebd4b3"
-
-inherit pypi
-
-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 nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb b/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb
deleted file mode 100644
index 139ac0c522..0000000000
--- a/meta-python/recipes-devtools/python/python-incremental_17.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-incremental.inc
diff --git a/meta-python/recipes-devtools/python/python-ipaddress_1.0.19.bb b/meta-python/recipes-devtools/python/python-ipaddress_1.0.19.bb
deleted file mode 100644
index 9c50b46706..0000000000
--- a/meta-python/recipes-devtools/python/python-ipaddress_1.0.19.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2."
-HOMEPAGE = "https://github.com/phihag/ipaddress"
-LICENSE = "Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a"
-
-DEPENDS += "python-pip"
-
-SRC_URI[md5sum] = "d0687efaf93a32476d81e90ba0609c57"
-SRC_URI[sha256sum] = "200d8686011d470b5e4de207d803445deee427455cd0cb7c982b68cf82524f81"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-iso8601.inc b/meta-python/recipes-devtools/python/python-iso8601.inc
deleted file mode 100644
index 61e9abbac6..0000000000
--- a/meta-python/recipes-devtools/python/python-iso8601.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Simple module to parse ISO 8601 dates"
-HOMEPAGE = "http://pyiso8601.readthedocs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b05625f2336fa024e8d57e65c6595844"
-
-SRC_URI[md5sum] = "4de940f691c5ea759fb254384c8ddcf6"
-SRC_URI[sha256sum] = "49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-iso8601_0.1.12.bb b/meta-python/recipes-devtools/python/python-iso8601_0.1.12.bb
deleted file mode 100644
index c543cf9f97..0000000000
--- a/meta-python/recipes-devtools/python/python-iso8601_0.1.12.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-iso8601.inc
diff --git a/meta-python/recipes-devtools/python/python-isort.inc b/meta-python/recipes-devtools/python/python-isort.inc
deleted file mode 100644
index 6d13e5f7ce..0000000000
--- a/meta-python/recipes-devtools/python/python-isort.inc
+++ /dev/null
@@ -1,15 +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=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[md5sum] = "fb554e9c8f9aa76e333a03d470a5cf52"
-SRC_URI[sha256sum] = "b9c40e9750f3d77e6e4d441d8b0266cf555e7cdabdcff33c4fd06366ca761ef8"
-
-inherit pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-shell \
-"
diff --git a/meta-python/recipes-devtools/python/python-isort_4.3.4.bb b/meta-python/recipes-devtools/python/python-isort_4.3.4.bb
deleted file mode 100644
index fa46d89b5e..0000000000
--- a/meta-python/recipes-devtools/python/python-isort_4.3.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-isort.inc
diff --git a/meta-python/recipes-devtools/python/python-itsdangerous.inc b/meta-python/recipes-devtools/python/python-itsdangerous.inc
deleted file mode 100644
index 84f9e7742d..0000000000
--- a/meta-python/recipes-devtools/python/python-itsdangerous.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Various helpers to pass trusted data to untrusted environments and back."
-HOMEPAGE = "http://github.com/mitsuhiko/itsdangerous"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b61841e2bf5f07884148e2a6f1bcab0c"
-
-SRC_URI[md5sum] = "a3d55aa79369aef5345c036a8a26307f"
-SRC_URI[sha256sum] = "cbb3fcf8d3e33df861709ecaf89d9e6629cff0a217bc2848f1b41cd30d360519"
-
-CLEANBROKEN = "1"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-simplejson \
- ${PYTHON_PN}-netclient \
-"
diff --git a/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb b/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb
deleted file mode 100644
index 8c99cb4ca7..0000000000
--- a/meta-python/recipes-devtools/python/python-itsdangerous_0.24.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools
-require python-itsdangerous.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-zlib \
-"
diff --git a/meta-python/recipes-devtools/python/python-javaobj-py3.inc b/meta-python/recipes-devtools/python/python-javaobj-py3.inc
deleted file mode 100644
index a0e802ca7b..0000000000
--- a/meta-python/recipes-devtools/python/python-javaobj-py3.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Module for serializing and de-serializing Java objects."
-DESCRIPTION = "python-javaobj is a python library that provides functions\
- for reading and writing (writing is WIP currently) Java objects serialized\
- or will be deserialized by ObjectOutputStream. This form of object\
- representation is a standard data interchange format in Java world."
-HOMEPAGE = "https://github.com/tcalmant/python-javaobj"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://javaobj.py;beginline=21;endline=33;md5=8b504419ce78f8133b21b4d4a89ef7e9"
-
-SRC_URI[md5sum] = "f669bb8099380e3dd84db3d542aa5b68"
-SRC_URI[sha256sum] = "b8b0d310fd97e1c7914d7911ee9d3f4b3d84d2a674aa95a4b0da3d8f155fc1bb"
-
-inherit pypi
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb b/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb
deleted file mode 100644
index ed34740e80..0000000000
--- a/meta-python/recipes-devtools/python/python-javaobj-py3_0.2.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-javaobj-py3.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-jinja2.inc b/meta-python/recipes-devtools/python/python-jinja2.inc
deleted file mode 100644
index 0c0bf0defa..0000000000
--- a/meta-python/recipes-devtools/python/python-jinja2.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Python Jinja2: A small but fast and easy to use stand-alone template engine written in pure python."
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=20c831f91dd3bd486020f672ba2be386"
-
-PYPI_PACKAGE = "Jinja2"
-
-SRC_URI[md5sum] = "61ef1117f945486472850819b8d1eb3d"
-SRC_URI[sha256sum] = "f84be1bb0040caca4cea721fcbbbbd61f9be9464ca236387158b0feea01914a4"
-
-RDEPENDS_${PN} += "${PYTHON_PN}-io ${PYTHON_PN}-pickle ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-math ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-pprint ${PYTHON_PN}-shell ${PYTHON_PN}-markupsafe \
- ${PYTHON_PN}-json ${PYTHON_PN}-threading ${PYTHON_PN}-numbers"
-
-CLEANBROKEN = "1"
diff --git a/meta-python/recipes-devtools/python/python-jinja2_2.10.bb b/meta-python/recipes-devtools/python/python-jinja2_2.10.bb
deleted file mode 100644
index 5233cf40c0..0000000000
--- a/meta-python/recipes-devtools/python/python-jinja2_2.10.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-inherit pypi setuptools
-require python-jinja2.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-lang \
- ${PYTHON_PN}-re \
- ${PYTHON_PN}-textutils \
-"
diff --git a/meta-python/recipes-devtools/python/python-jsonpatch.inc b/meta-python/recipes-devtools/python/python-jsonpatch.inc
deleted file mode 100644
index 409c09ad77..0000000000
--- a/meta-python/recipes-devtools/python/python-jsonpatch.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Appling JSON patches in Python 2.6+ and 3.x"
-HOMEPAGE = "https://github.com/stefankoegl/python-json-patch"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=32b15c843b7a329130f4e266a281ebb3"
-
-inherit pypi
-
-SRC_URI[md5sum] = "83c4c9faccb4a2ff8c1db80cbddc590d"
-SRC_URI[sha256sum] = "49f29cab70e9068db3b1dc6b656cbe2ee4edf7dfe9bf5a0055f17a4b6804a4b9"
-
-RDEPENDS_${PN} += "${PYTHON_PN}-json ${PYTHON_PN}-jsonpointer ${PYTHON_PN}-netclient ${PYTHON_PN}-stringold"
-
diff --git a/meta-python/recipes-devtools/python/python-jsonpatch_1.23.bb b/meta-python/recipes-devtools/python/python-jsonpatch_1.23.bb
deleted file mode 100644
index 90cd318026..0000000000
--- a/meta-python/recipes-devtools/python/python-jsonpatch_1.23.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-jsonpatch.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-re"
diff --git a/meta-python/recipes-devtools/python/python-jsonpointer.inc b/meta-python/recipes-devtools/python/python-jsonpointer.inc
deleted file mode 100644
index 4ed01ed6cd..0000000000
--- a/meta-python/recipes-devtools/python/python-jsonpointer.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Resolve JSON Pointers in Python"
-HOMEPAGE = "https://github.com/stefankoegl/python-json-pointer"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=32b15c843b7a329130f4e266a281ebb3"
-
-inherit pypi
-
-SRC_URI[md5sum] = "741b98d0e693b08b5e44e0a9da5a7bb7"
-SRC_URI[sha256sum] = "c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-json \
-"
diff --git a/meta-python/recipes-devtools/python/python-jsonpointer_2.0.bb b/meta-python/recipes-devtools/python/python-jsonpointer_2.0.bb
deleted file mode 100644
index e13a776adb..0000000000
--- a/meta-python/recipes-devtools/python/python-jsonpointer_2.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-jsonpointer.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-re"
diff --git a/meta-python/recipes-devtools/python/python-jsonschema.inc b/meta-python/recipes-devtools/python/python-jsonschema.inc
deleted file mode 100644
index 6fdc02498f..0000000000
--- a/meta-python/recipes-devtools/python/python-jsonschema.inc
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "An implementation of JSON Schema validation for Python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=7a60a81c146ec25599a3e1dabb8610a8"
-
-SRC_URI[md5sum] = "50c6b69a373a8b55ff1e0ec6e78f13f4"
-SRC_URI[sha256sum] = "6ff5f3180870836cae40f06fa10419f557208175f13ad7bc26caa77beb1f6e02"
-
-DEPENDS += "${PYTHON_PN}-vcversioner-native"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-rfc3987 \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-strict-rfc3339 \
- ${PYTHON_PN}-unittest \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb b/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb
deleted file mode 100644
index b677c646e7..0000000000
--- a/meta-python/recipes-devtools/python/python-jsonschema_2.6.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-inherit pypi setuptools
-require python-jsonschema.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-argparse \
- ${PYTHON_PN}-contextlib \
- ${PYTHON_PN}-functools32 \
- ${PYTHON_PN}-lang \
- ${PYTHON_PN}-re \
- ${PYTHON_PN}-subprocess \
- ${PYTHON_PN}-textutils \
-"
diff --git a/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc b/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc
deleted file mode 100644
index 83d2ea3cd3..0000000000
--- a/meta-python/recipes-devtools/python/python-lazy-object-proxy.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "A fast and thorough lazy object proxy"
-HOMEPAGE = "https://python-lazy-object-proxy.readthedocs.io/"
-LICENSE = "BSD"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ec680df42d8ad56427a83308817658cc"
-
-SRC_URI[md5sum] = "e128152b76eb5b9ba759504936139fd0"
-SRC_URI[sha256sum] = "eb91be369f945f10d3a49f5f9be8b3d0b93a4c2be8f8a5b83b0571b8123e0a7a"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb b/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb
deleted file mode 100644
index df4d60bffe..0000000000
--- a/meta-python/recipes-devtools/python/python-lazy-object-proxy_1.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-lazy-object-proxy.inc
diff --git a/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb b/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb
deleted file mode 100644
index 9ad865d406..0000000000
--- a/meta-python/recipes-devtools/python/python-lockfile_0.12.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "Platform-independent file locking module"
-HOMEPAGE = "http://launchpad.net/pylockfile"
-SECTION = "devel/python"
-
-RDEPENDS_${PN} = "python-threading"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-inherit pypi setuptools
-
-SRC_URI[md5sum] = "a6a1a82957a23afdf44cfdd039b65ff9"
-SRC_URI[sha256sum] = "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"
-
-# Satisfy setup.py 'setup_requires'
-DEPENDS += " \
- python-pbr-native \
- "
-
diff --git a/meta-python/recipes-devtools/python/python-lxml.inc b/meta-python/recipes-devtools/python/python-lxml.inc
deleted file mode 100644
index 3f3a1e27c5..0000000000
--- a/meta-python/recipes-devtools/python/python-lxml.inc
+++ /dev/null
@@ -1,43 +0,0 @@
-SUMMARY = "Powerful and Pythonic XML processing library combining libxml2/libxslt with the ElementTree API."
-DESCRIPTION = "lxml is a Pythonic, mature binding for the libxml2 and \
-libxslt libraries. It provides safe and convenient access to these \
-libraries using the ElementTree API. It extends the ElementTree API \
-significantly to offer support for XPath, RelaxNG, XML Schema, XSLT, \
-C14N and much more."
-HOMEPAGE = "http://codespeak.net/lxml"
-SECTION = "devel/python"
-LICENSE = "BSD & GPLv2 & MIT & PSF"
-LIC_FILES_CHKSUM = "file://LICENSES.txt;md5=e4c045ebad958ead4b48008f70838403 \
- file://doc/licenses/elementtree.txt;md5=eb34d036a6e3d56314ee49a6852ac891 \
- file://doc/licenses/BSD.txt;md5=700a1fc17f4797d4f2d34970c8ee694b \
- file://doc/licenses/GPL.txt;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://src/lxml/isoschematron/resources/rng/iso-schematron.rng;beginline=2;endline=7;md5=939e7430ce85e1242ff50c4ee9430752 \
- file://src/lxml/isoschematron/resources/xsl/iso-schematron-xslt1/iso_schematron_message.xsl;beginline=2;endline=24;md5=cc86b7b2bbc678e13f58ea403eb9929b \
- file://src/lxml/isoschematron/resources/xsl/RNG2Schtrn.xsl;beginline=2;endline=7;md5=5b03236d293dc3784205542b409d2f53 \
- "
-
-DEPENDS += "libxml2 libxslt"
-
-SRC_URI[md5sum] = "c266d9062e23b08f66426979a2b36f51"
-SRC_URI[sha256sum] = "e2629cdbcad82b83922a3488937632a4983ecc0fed3e5cfbf430d069382eeb9b"
-
-DISTUTILS_BUILD_ARGS += " \
- --with-xslt-config='pkg-config libxslt' \
- --with-xml2-config='pkg-config libxml-2.0' \
-"
-
-DISTUTILS_INSTALL_ARGS += " \
- --with-xslt-config='pkg-config libxslt' \
- --with-xml2-config='pkg-config libxml-2.0' \
-"
-
-inherit pypi
-
-do_configure_prepend() {
- sed -i -e 's/--version/--modversion/' ${B}/setupinfo.py
-}
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS_${PN} += "libxml2 libxslt ${PYTHON_PN}-compression"
-RDEPENDS_${PN}_class-native = "libxml2-native libxslt-native"
diff --git a/meta-python/recipes-devtools/python/python-lxml_4.2.1.bb b/meta-python/recipes-devtools/python/python-lxml_4.2.1.bb
deleted file mode 100644
index 81ccb12d87..0000000000
--- a/meta-python/recipes-devtools/python/python-lxml_4.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-lxml.inc
diff --git a/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch b/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
deleted file mode 100644
index c71b16fece..0000000000
--- a/meta-python/recipes-devtools/python/python-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From dfb83a41aaeae326e9b6f02b233af375bc7b8815 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen@dominion.thruhere.net>
-Date: Fri, 29 Mar 2013 15:17:17 +0100
-Subject: [PATCH] setup.py: link in sysroot, not in host directories
-
-Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
-
-Upstream-status: Unknown
----
- setup.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 3407c82..15ed7cd 100644
---- a/setup.py
-+++ b/setup.py
-@@ -127,7 +127,7 @@ class _M2CryptoBuildExt(build_ext.build_ext):
- self.openssl = os.path.join(self.openssl, 'OpenSSL')
- else:
- self.libraries = ['ssl', 'crypto']
-- self.openssl = '/usr'
-+ self.openssl = os.environ.get( "STAGING_DIR" )
-
- def finalize_options(self):
- '''Overloaded build_ext implementation to append custom openssl
-@@ -143,8 +143,8 @@ class _M2CryptoBuildExt(build_ext.build_ext):
- if _openssl and os.path.isdir(_openssl):
- self.openssl = _openssl
-
-- self.include_dirs.append(os.path.join(self.openssl, 'include'))
-- openssl_library_dir = os.path.join(self.openssl, 'lib')
-+ self.include_dirs.append(os.environ.get( "STAGING_INCDIR" ))
-+ openssl_library_dir = os.environ.get( "STAGING_LIBDIR" )
-
- if platform.system() == "Linux":
- if _multiarch: # on Fedora/RHEL it is an empty string
---
-2.7.4
-
diff --git a/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch b/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch
deleted file mode 100644
index c6654e5402..0000000000
--- a/meta-python/recipes-devtools/python/python-m2crypto/cross-compile-platform.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Do not compute platform, this does not work in cross compile environment
-since it pokes at the system for getting architecture values
-
-Upstream-Status: Inappropriate
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: M2Crypto-0.26.0/setup.py
-===================================================================
---- M2Crypto-0.26.0.orig/setup.py
-+++ M2Crypto-0.26.0/setup.py
-@@ -141,19 +141,6 @@ class _M2CryptoBuildExt(build_ext.build_
- self.include_dirs.append(
- os.path.join(self.openssl, 'include', 'openssl'))
-
-- # For RedHat-based distros, the '-D__{arch}__' option for
-- # Swig needs to be normalized, particularly on i386.
-- mach = platform.machine().lower()
-- if mach in ('i386', 'i486', 'i586', 'i686'):
-- arch = '__i386__'
-- elif mach in ('ppc64', 'powerpc64'):
-- arch = '__powerpc64__'
-- elif mach in ('ppc', 'powerpc'):
-- arch = '__powerpc__'
-- else:
-- arch = '__%s__' % mach
-- self.swig_opts.append('-D%s' % arch)
--
- self.swig_opts.extend(['-I%s' % i for i in self.include_dirs])
- self.swig_opts.append('-includeall')
- self.swig_opts.append('-modern')
diff --git a/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch b/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch
deleted file mode 100644
index 2d738cc94e..0000000000
--- a/meta-python/recipes-devtools/python/python-m2crypto/m2crypto-0.26.4-gcc_macros.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Imported from Fedora
-
---- M2Crypto/SWIG/_m2crypto.i 2017-09-26 11:26:33.000000000 +0200
-+++ M2Crypto-0.26.4/SWIG/_m2crypto.i 2017-09-26 21:04:14.080330741 +0200
-@@ -7,6 +7,7 @@
- * Copyright (c) 2009-2010 Heikki Toivonen. All rights reserved.
- *
- */
-+%import "gcc_macros.h"
-
- %module(threads=1) m2crypto
- /* We really don't need threadblock (PyGILState_Ensure() etc.) anywhere.
-@@ -15,11 +16,6 @@
- %nothreadblock;
- %nothreadallow;
-
--#if SWIG_VERSION >= 0x030000
--#define __WCHAR_MAX__ __WCHAR_MAX
--#define __WCHAR_MIN__ __WCHAR_MIN
--#endif
--
- %{
- #if __GNUC__ < 5
- #pragma GCC diagnostic ignored "-Wunused-label"
diff --git a/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb b/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb
deleted file mode 100644
index 272c76ca17..0000000000
--- a/meta-python/recipes-devtools/python/python-m2crypto_0.26.4.bb
+++ /dev/null
@@ -1,50 +0,0 @@
-SUMMARY = "A Python crypto and SSL toolkit"
-HOMEPAGE = "https://gitlab.com/m2crypto/m2crypto"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=b0e1f0b7d0ce8a62c18b1287b991800e"
-
-SRC_URI += "file://0001-setup.py-link-in-sysroot-not-in-host-directories.patch \
- file://cross-compile-platform.patch \
- file://m2crypto-0.26.4-gcc_macros.patch \
- "
-SRC_URI[md5sum] = "5c74c25ba8b45122318a165a3a2059ad"
-SRC_URI[sha256sum] = "5cae7acc0b34821f8c0ddf6665e482893fe1f198ad6379e61ffa9d8e65f5c199"
-
-PYPI_PACKAGE = "M2Crypto"
-inherit pypi setuptools siteinfo
-
-DEPENDS += "openssl swig-native"
-RDEPENDS_${PN} += "python-typing"
-
-DISTUTILS_BUILD_ARGS += "build_ext --openssl=${STAGING_DIR_HOST} -I${STAGING_INCDIR}"
-DISTUTILS_INSTALL_ARGS += "build_ext --openssl=${STAGING_DIR_HOST}"
-
-SWIG_FEATURES_x86 = "-D__i386__"
-SWIG_FEATURES ?= "-D__${HOST_ARCH}__"
-export SWIG_FEATURES
-
-# Get around a problem with swig, but only if the
-# multilib header file exists.
-#
-do_compile_prepend() {
- ${CPP} -dM - < /dev/null | grep -v __STDC__ | grep -v __REGISTER_PREFIX__ | grep -v __GNUC__ \
- | sed 's/^\(#define \([^ ]*\) .*\)$/#undef \2\n\1/' > SWIG/gcc_macros.h
- if [ "${SITEINFO_BITS}" = "64" ];then
- bit="64"
- else
- bit="32"
- fi
-
- if [ -e ${STAGING_INCDIR}/openssl/opensslconf-${bit}.h ] ;then
- for i in SWIG/_ec.i SWIG/_evp.i; do
- sed -i -e "s/opensslconf.*\./opensslconf-${bit}\./" "$i"
- done
- elif [ -e ${STAGING_INCDIR}/openssl/opensslconf-n${bit}.h ] ;then
- for i in SWIG/_ec.i SWIG/_evp.i; do
- sed -i -e "s/opensslconf.*\./opensslconf-n${bit}\./" "$i"
- done
- fi
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-mako.inc b/meta-python/recipes-devtools/python/python-mako.inc
deleted file mode 100644
index a9fa556398..0000000000
--- a/meta-python/recipes-devtools/python/python-mako.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "A super-fast templating language that borrows the best ideas from the existing templating languages"
-HOMEPAGE = "http://www.makotemplates.org/"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1bb21fa2d2f7a534c884b990430a6863"
-
-PYPI_PACKAGE = "Mako"
-
-inherit pypi
-
-SRC_URI[md5sum] = "5836cc997b1b773ef389bf6629c30e65"
-SRC_URI[sha256sum] = "4e02fde57bd4abb5ec400181e4c314f56ac3e49ba4fb8b0d50bba18cb27d25ae"
-
-RDEPENDS_${PN} = " \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-mako_1.0.7.bb b/meta-python/recipes-devtools/python/python-mako_1.0.7.bb
deleted file mode 100644
index 3372eeb28c..0000000000
--- a/meta-python/recipes-devtools/python/python-mako_1.0.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-mako.inc
diff --git a/meta-python/recipes-devtools/python/python-markupsafe.inc b/meta-python/recipes-devtools/python/python-markupsafe.inc
deleted file mode 100644
index 927f84452a..0000000000
--- a/meta-python/recipes-devtools/python/python-markupsafe.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Implements a XML/HTML/XHTML Markup safe string for Python"
-HOMEPAGE = "http://github.com/mitsuhiko/markupsafe"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c6d1adcf45d69359f256c1cea3254127"
-
-SRC_URI[md5sum] = "2fcedc9284d50e577b5192e8e3578355"
-SRC_URI[sha256sum] = "a6be69091dac236ea9c6bc7d012beab42010fa914c459791d627dad4910eb665"
-
-PYPI_PACKAGE = "MarkupSafe"
-inherit pypi
-
-RDEPENDS_${PN} += "${PYTHON_PN}-stringold"
diff --git a/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb b/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb
deleted file mode 100644
index 05bbe8a357..0000000000
--- a/meta-python/recipes-devtools/python/python-markupsafe_1.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools
-require python-markupsafe.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-re"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch b/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch
deleted file mode 100644
index 21b9094a14..0000000000
--- a/meta-python/recipes-devtools/python/python-matplotlib/fix_setupext.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-This fixes the numpy import problem in setupext.py using a hard-coded path.
-
-Index: matplotlib-2.0.2/setupext.py
-===================================================================
---- matplotlib-2.0.2.orig/setupext.py
-+++ matplotlib-2.0.2/setupext.py
-@@ -148,6 +148,7 @@ def has_include_file(include_dirs, filen
- Returns `True` if `filename` can be found in one of the
- directories in `include_dirs`.
- """
-+ return True
- if sys.platform == 'win32':
- include_dirs += os.environ.get('INCLUDE', '.').split(';')
- for dir in include_dirs:
-@@ -172,7 +173,7 @@ def get_base_dirs():
- Returns a list of standard base directories on this platform.
- """
- if options['basedirlist']:
-- return options['basedirlist']
-+ return [os.environ['STAGING_LIBDIR']]
-
- basedir_map = {
- 'win32': ['win32_static', ],
-@@ -260,14 +261,6 @@ def make_extension(name, files, *args, *
- `distutils.core.Extension` constructor.
- """
- ext = DelayedExtension(name, files, *args, **kwargs)
-- for dir in get_base_dirs():
-- include_dir = os.path.join(dir, 'include')
-- if os.path.exists(include_dir):
-- ext.include_dirs.append(include_dir)
-- for lib in ('lib', 'lib64'):
-- lib_dir = os.path.join(dir, lib)
-- if os.path.exists(lib_dir):
-- ext.library_dirs.append(lib_dir)
- ext.include_dirs.append('.')
-
- return ext
-@@ -314,6 +307,7 @@ class PkgConfig(object):
- " matplotlib may not be able to find some of its dependencies")
-
- def set_pkgconfig_path(self):
-+ return
- pkgconfig_path = sysconfig.get_config_var('LIBDIR')
- if pkgconfig_path is None:
- return
-@@ -875,14 +869,14 @@ class Numpy(SetupPackage):
- reload(numpy)
-
- ext = Extension('test', [])
-- ext.include_dirs.append(numpy.get_include())
-+ ext.include_dirs.append(os.path.join(os.environ['STAGING_LIBDIR'], 'python2.7/site-packages/numpy/core/include/'))
- if not has_include_file(
- ext.include_dirs, os.path.join("numpy", "arrayobject.h")):
- warnings.warn(
- "The C headers for numpy could not be found. "
- "You may need to install the development package")
-
-- return [numpy.get_include()]
-+ return [os.path.join(os.environ['STAGING_LIBDIR'], 'python2.7/site-packages/numpy/core/include/')]
-
- def check(self):
- min_version = extract_versions()['__version__numpy__']
-Index: matplotlib-2.0.2/setup.py
-===================================================================
---- matplotlib-2.0.2.orig/setup.py
-+++ matplotlib-2.0.2/setup.py
-@@ -66,28 +66,6 @@ mpl_packages = [
- setupext.Python(),
- setupext.Platform(),
- 'Required dependencies and extensions',
-- setupext.Numpy(),
-- setupext.Six(),
-- setupext.Dateutil(),
-- setupext.FuncTools32(),
-- setupext.Subprocess32(),
-- setupext.Pytz(),
-- setupext.Cycler(),
-- setupext.Tornado(),
-- setupext.Pyparsing(),
-- setupext.LibAgg(),
-- setupext.FreeType(),
-- setupext.FT2Font(),
-- setupext.Png(),
-- setupext.Qhull(),
-- setupext.Image(),
-- setupext.TTConv(),
-- setupext.Path(),
-- setupext.ContourLegacy(),
-- setupext.Contour(),
-- setupext.Delaunay(),
-- setupext.QhullWrap(),
-- setupext.Tri(),
- 'Optional subpackages',
- setupext.SampleData(),
- setupext.Toolkits(),
-@@ -100,13 +78,8 @@ mpl_packages = [
- setupext.BackendMacOSX(),
- setupext.BackendQt5(),
- setupext.BackendQt4(),
-- setupext.BackendGtk3Agg(),
- setupext.BackendGtk3Cairo(),
-- setupext.BackendGtkAgg(),
-- setupext.BackendTkAgg(),
-- setupext.BackendWxAgg(),
- setupext.BackendGtk(),
-- setupext.BackendAgg(),
- setupext.BackendCairo(),
- setupext.Windowing(),
- 'Optional LaTeX dependencies',
diff --git a/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb b/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb
deleted file mode 100644
index 5b1c3f05b9..0000000000
--- a/meta-python/recipes-devtools/python/python-matplotlib_2.0.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "matplotlib is a python 2D plotting library which produces publication quality figures in a variety of hardcopy formats"
-SECTION = "devel/python"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE/LICENSE;md5=afec61498aa5f0c45936687da9a53d74"
-
-DEPENDS += "python-numpy freetype libpng python-dateutil python-pytz"
-RDEPENDS_${PN} = "python-core python-distutils python-numpy freetype libpng python-dateutil python-pytz"
-
-SRC_URI = "https://github.com/matplotlib/matplotlib/archive/v${PV}.tar.gz \
- file://fix_setupext.patch \
-"
-SRC_URI[md5sum] = "89717c1ef3c6fdcd6fb1f3b597a4858c"
-SRC_URI[sha256sum] = "aebed23921562792b68b8ca355de5abc176af4424f1987e2fa95f65e5c5e7e89"
-S = "${WORKDIR}/matplotlib-${PV}"
-EXTRA_OECONF = "--disable-docs"
-
-inherit setuptools pkgconfig
-
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-mccabe_0.4.0.bb b/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb
deleted file mode 100644
index a86d158007..0000000000
--- a/meta-python/recipes-devtools/python/python-mccabe_0.4.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "McCabe checker, plugin for flake8"
-HOMEPAGE = "https://github.com/dreamhost/cliff"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.rst;md5=f8b50fba1711ecac6bcdb6324f85a66d"
-
-SRC_URI += " \
- file://0001-python-mccabe-remove-unnecessary-setup_requires-pyte.patch \
-"
-
-SRC_URI[md5sum] = "8c425db05f310adcd4bb174b991f26f5"
-SRC_URI[sha256sum] = "9a2b12ebd876e77c72e41ebf401cc2e7c5b566649d50105ca49822688642207b"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += " \
- python-prettytable \
- python-cmd2 \
- python-pyparsing"
diff --git a/meta-python/recipes-devtools/python/python-mock_2.0.0.bb b/meta-python/recipes-devtools/python/python-mock_2.0.0.bb
deleted file mode 100644
index 840c36efed..0000000000
--- a/meta-python/recipes-devtools/python/python-mock_2.0.0.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "A Python Mocking and Patching Library for Testing"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=de9dfbf780446b18aab11f00baaf5b7e"
-
-SRC_URI[md5sum] = "0febfafd14330c9dcaa40de2d82d40ad"
-SRC_URI[sha256sum] = "b158b6df76edd239b8208d481dc46b6afd45a846b7812ff0ce58971cf5bc8bba"
-
-inherit pypi setuptools
-
-DEPENDS += " \
- python-pbr-native"
-
-RDEPENDS_${PN} += " \
- python-prettytable \
- python-cmd2 \
- python-pyparsing \
- python-mccabe \
- python-pep8 \
- python-pyflakes \
- python-pbr \
- python-funcsigs \
-"
diff --git a/meta-python/recipes-devtools/python/python-monotonic_1.4.bb b/meta-python/recipes-devtools/python/python-monotonic_1.4.bb
deleted file mode 100644
index 4c5d8aedc1..0000000000
--- a/meta-python/recipes-devtools/python/python-monotonic_1.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "An implementation of time.monotonic() for Python 2.0 through 3.2"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
-
-SRC_URI[md5sum] = "29302cd6b1013b3ab0d1ed78e20d22f2"
-SRC_URI[sha256sum] = "a02611d5b518cd4051bf22d21bd0ae55b3a03f2d2993a19b6c90d9d168691f84"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "${PYTHON_PN}-ctypes ${PYTHON_PN}-io ${PYTHON_PN}-re ${PYTHON_PN}-threading"
diff --git a/meta-python/recipes-devtools/python/python-msgpack.inc b/meta-python/recipes-devtools/python/python-msgpack.inc
deleted file mode 100644
index fdc8926104..0000000000
--- a/meta-python/recipes-devtools/python/python-msgpack.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "MessagePack (de)serializer"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=cd9523181d9d4fbf7ffca52eaa2a5751"
-
-SRC_URI[md5sum] = "6d644c06a87a5a111bbbf5b34b4be440"
-SRC_URI[sha256sum] = "378cc8a6d3545b532dfd149da715abae4fda2a3adb6d74e525d0d5e51f46909b"
-
-PYPI_PACKAGE = "msgpack-python"
-inherit pypi
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-io \
-"
diff --git a/meta-python/recipes-devtools/python/python-msgpack_0.5.6.bb b/meta-python/recipes-devtools/python/python-msgpack_0.5.6.bb
deleted file mode 100644
index 2c2c8f2add..0000000000
--- a/meta-python/recipes-devtools/python/python-msgpack_0.5.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-msgpack.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc b/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
deleted file mode 100644
index d743023985..0000000000
--- a/meta-python/recipes-devtools/python/python-ndg-httpsclient.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-DESCRIPTION = "Provides enhanced HTTPS support for httplib and urllib2 using PyOpenSSL"
-HOMEPAGE = "http://python-requests.org"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://MANIFEST.in;md5=ce22c0cd986d2de3f7073cd6b5523ae0"
-
-SRC_URI[md5sum] = "a0d349cf9530e331697a6e5ab1f40de6"
-SRC_URI[sha256sum] = "fba4d4798dcac2965874f24afb6631b4326baa4bd02505744d34f690c354856a"
-
-PYPI_PACKAGE = "ndg_httpsclient"
-
-DEPENDS += " \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-pyasn1 \
-"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-pyasn1 \
-"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_REGEX = ""
diff --git a/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.4.bb b/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.4.bb
deleted file mode 100644
index ca0eb32638..0000000000
--- a/meta-python/recipes-devtools/python/python-ndg-httpsclient_0.4.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-ndg-httpsclient.inc
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-netaddr.inc b/meta-python/recipes-devtools/python/python-netaddr.inc
deleted file mode 100644
index 5b6d4dffa1..0000000000
--- a/meta-python/recipes-devtools/python/python-netaddr.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A network address manipulation library for Python."
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=e6345d695ffe3776f68a56fe7962db44"
-
-SRC_URI[md5sum] = "51019ef59c93f3979bcb37d3b8527e07"
-SRC_URI[sha256sum] = "38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd"
-
-inherit pypi
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python-netaddr_0.7.19.bb b/meta-python/recipes-devtools/python/python-netaddr_0.7.19.bb
deleted file mode 100644
index ca5a79a788..0000000000
--- a/meta-python/recipes-devtools/python/python-netaddr_0.7.19.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require python-netaddr.inc
-inherit setuptools
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-textutils \
-"
diff --git a/meta-python/recipes-devtools/python/python-networkx_2.1.bb b/meta-python/recipes-devtools/python/python-networkx_2.1.bb
deleted file mode 100644
index bc0c6863d0..0000000000
--- a/meta-python/recipes-devtools/python/python-networkx_2.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Python package for creating and manipulating graphs and networks"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3376ff7c9c58048c62d91431f7f08cde"
-
-SRC_URI[md5sum] = "4a2c2a62dfc46ba7d594daca7c834995"
-SRC_URI[sha256sum] = "64272ca418972b70a196cb15d9c85a5a6041f09a2f32e0d30c0255f25d458bb1"
-
-PYPI_PACKAGE_EXT = "zip"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "python-2to3"
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-numeric_24.2.bb b/meta-python/recipes-devtools/python/python-numeric_24.2.bb
deleted file mode 100644
index c91d77c81b..0000000000
--- a/meta-python/recipes-devtools/python/python-numeric_24.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "A sophisticated Numeric Processing Package for Python"
-SECTION = "devel/python"
-LICENSE = "PSF & LLNL"
-LIC_FILES_CHKSUM = "file://Legal.htm;md5=e3ce75dedd4043918d15979ae43e312e"
-
-PR = "ml3"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/numpy/Numeric-${PV}.tar.gz \
- file://0001-it-tries-to-define-this-function-differently-than-it.patch \
-"
-S = "${WORKDIR}/Numeric-${PV}"
-
-inherit distutils
-
-SRC_URI[md5sum] = "2ae672656e06716a149acb048cca3093"
-SRC_URI[sha256sum] = "5f72e729eb6ff57442f2a38bfc9931738b59e5077928e2e70d22b4610ff15258"
diff --git a/meta-python/recipes-devtools/python/python-oauthlib.inc b/meta-python/recipes-devtools/python/python-oauthlib.inc
deleted file mode 100644
index c5de8a091a..0000000000
--- a/meta-python/recipes-devtools/python/python-oauthlib.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A generic, spec-compliant, thorough implementation of the OAuth request-signing logic"
-HOMEPAGE = "https://github.com/idan/oauthlib"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5ba9ce41463615e082609806255bce1b"
-
-SRC_URI = "https://pypi.python.org/packages/a5/8a/212e9b47fb54be109f3ff0684165bb38c51117f34e175c379fce5c7df754/oauthlib-${PV}.tar.gz"
-SRC_URI[md5sum] = "277a9a966cc8c72e492b4eeb41332445"
-SRC_URI[sha256sum] = "ce57b501e906ff4f614e71c36a3ab9eacbb96d35c24d1970d2539bbc3ec70ce1"
-
-S = "${WORKDIR}/oauthlib-${PV}"
-
-# 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}-nose ${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/python-oauthlib_2.0.6.bb b/meta-python/recipes-devtools/python/python-oauthlib_2.0.6.bb
deleted file mode 100644
index 4329d21a15..0000000000
--- a/meta-python/recipes-devtools/python/python-oauthlib_2.0.6.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-oauthlib.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-re ${PYTHON_PN}-lang"
diff --git a/meta-python/recipes-devtools/python/python-paho-mqtt.inc b/meta-python/recipes-devtools/python/python-paho-mqtt.inc
deleted file mode 100644
index f834e6fd87..0000000000
--- a/meta-python/recipes-devtools/python/python-paho-mqtt.inc
+++ /dev/null
@@ -1,21 +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=eb48c6ee2cb9f5b8b9fe75e6f817bdfc \
- file://epl-v10;md5=8d383c379e91d20ba18a52c3e7d3a979 \
- file://edl-v10;md5=c09f121939f063aeb5235972be8c722c \
-"
-SRCNAME = "paho-mqtt"
-
-inherit pypi
-SRC_URI[md5sum] = "2cc27d8b369700b1fc99325add0dadd2"
-SRC_URI[sha256sum] = "31911f6031de306c27ed79dc77b690d7c55b0dcb0f0434ca34ec6361d0371122"
-
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-threading \
-"
diff --git a/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb b/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb
deleted file mode 100644
index a1031176e4..0000000000
--- a/meta-python/recipes-devtools/python/python-paho-mqtt_1.3.1.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools
-require python-paho-mqtt.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-pam_1.8.2.bb b/meta-python/recipes-devtools/python/python-pam_1.8.2.bb
deleted file mode 100644
index 60a3b43de5..0000000000
--- a/meta-python/recipes-devtools/python/python-pam_1.8.2.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Python PAM module using ctypes, py3/py2."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=64326d42471b493c5c088305364ad5da"
-
-SRC_URI[md5sum] = "db71b6b999246fb05d78ecfbe166629d"
-SRC_URI[sha256sum] = "26efe4e79b869b10f97cd8c4a6bbb04a4e54d41186364e975b4108c9c071812c"
-
-PYPI_PACKAGE = "python-pam"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "libpam"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "pam"
diff --git a/meta-python/recipes-devtools/python/python-pandas.inc b/meta-python/recipes-devtools/python/python-pandas.inc
deleted file mode 100644
index b9f84a614b..0000000000
--- a/meta-python/recipes-devtools/python/python-pandas.inc
+++ /dev/null
@@ -1,23 +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=ee0470f2de336c370a71c2f8d5e81c11"
-
-SRC_URI[md5sum] = "c7a2757b607748255f3270221ac61d59"
-SRC_URI[sha256sum] = "44a94091dd71f05922eec661638ec1a35f26d573c119aa2fad964f10a2880e6c"
-
-inherit pypi
-
-DEPENDS += " \
- ${PYTHON_PN}-numpy-native \
-"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-numpy \
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-pytz \
-"
diff --git a/meta-python/recipes-devtools/python/python-pandas_0.22.0.bb b/meta-python/recipes-devtools/python/python-pandas_0.22.0.bb
deleted file mode 100644
index b3bfab9693..0000000000
--- a/meta-python/recipes-devtools/python/python-pandas_0.22.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-inherit setuptools
-require python-pandas.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-future \
- ${PYTHON_PN}-json \
-"
diff --git a/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb b/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb
deleted file mode 100644
index b516c5912d..0000000000
--- a/meta-python/recipes-devtools/python/python-parse-type_0.4.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Simplifies building parse types based on the parse module"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d07323820cca0f1d192cbbf8a0516f95"
-PYPI_PACKAGE = "parse_type"
-
-SRC_URI[md5sum] = "b5fa59e45965d1b2896023742df2e707"
-SRC_URI[sha256sum] = "f596bdc75d3dd93036fbfe3d04127da9f6df0c26c36e01e76da85adef4336b3c"
-
-RDEPENDS_${PN} += "python-parse"
-
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-parse_1.8.2.bb b/meta-python/recipes-devtools/python/python-parse_1.8.2.bb
deleted file mode 100644
index 8e16372c5d..0000000000
--- a/meta-python/recipes-devtools/python/python-parse_1.8.2.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Parse strings using a specification based on the Python format() syntax"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://parse.py;beginline=1191;endline=1209;md5=5147afdd9b3615290ad8733f0137a1a1"
-
-SRC_URI[md5sum] = "42002338551bdfa0f01bbe4e679a17dd"
-SRC_URI[sha256sum] = "8048dde3f5ca07ad7ac7350460952d83b63eaacecdac1b37f45fd74870d849d2"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-logging \
- "
diff --git a/meta-python/recipes-devtools/python/python-passlib.inc b/meta-python/recipes-devtools/python/python-passlib.inc
deleted file mode 100644
index 9e477ecf9f..0000000000
--- a/meta-python/recipes-devtools/python/python-passlib.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "comprehensive password hashing framework supporting over 30 schemes"
-DESCRIPTION = "\
-Passlib is a password hashing library for Python 2 & 3, which provides cross-platform \
-implementations of over 30 password hashing algorithms, as well as a framework for \
-managing existing password hashes. It’s designed to be useful for a wide range of \
-tasks, from verifying a hash found in /etc/shadow, to providing full-strength password \
-hashing for multi-user applications."
-HOMEPAGE = "https://bitbucket.org/ecollins/passlib"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=73eed1a5470b969951dac411086c7036"
-
-SRC_URI[md5sum] = "254869dae3fd9f09f0746a3cb29a0b15"
-SRC_URI[sha256sum] = "3d948f64138c25633613f303bcc471126eae67c04d5e3f6b7b8ce6242f8653e0"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-crypt \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
-"
diff --git a/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb b/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb
deleted file mode 100644
index 11c598a084..0000000000
--- a/meta-python/recipes-devtools/python/python-passlib_1.7.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-passlib.inc
diff --git a/meta-python/recipes-devtools/python/python-paste_2.0.3.bb b/meta-python/recipes-devtools/python/python-paste_2.0.3.bb
deleted file mode 100644
index 6b4019f846..0000000000
--- a/meta-python/recipes-devtools/python/python-paste_2.0.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Tools for using a Web Server Gateway Interface stack"
-HOMEPAGE = "http://pythonpaste.org/"
-LICENSE = "MIT"
-RDEPENDS_${PN} = "python-six"
-
-LIC_FILES_CHKSUM = "file://docs/license.txt;md5=1798f29d55080c60365e6283cb49779c"
-
-SRC_URI[md5sum] = "1231e14eae62fa7ed76e9130b04bc61e"
-SRC_URI[sha256sum] = "2346a347824c32641bf020c17967b49ae74d3310ec1bc9b958d4b84e2d985218"
-
-PYPI_PACKAGE = "Paste"
-inherit pypi setuptools
-
-FILES_${PN} += "/usr/lib/*"
diff --git a/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb b/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb
deleted file mode 100644
index bdff867f30..0000000000
--- a/meta-python/recipes-devtools/python/python-pbr_3.1.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Python Build Reasonableness: PBR is a library that injects some useful and sensible default behaviors into your setuptools run"
-HOMEPAGE = "https://pypi.python.org/pypi/pbr"
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
-
-SRC_URI[md5sum] = "4e82c2e07af544c56a5b71c801525b00"
-SRC_URI[sha256sum] = "05f61c71aaefc02d8e37c0a3eeb9815ff526ea28b3b76324769e6158d7f95be1"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN}_class-target += " \
- python-pip \
- "
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb b/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb
deleted file mode 100644
index b12d72d389..0000000000
--- a/meta-python/recipes-devtools/python/python-pep8_1.7.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Python style guide checker"
-HOMEPAGE = "https://github.com/dreamhost/cliff"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.rst;md5=d8ebbbe831259ce010179d2f310b0f3e"
-
-SRC_URI[md5sum] = "603821d06db945c71d811b5a8d78423c"
-SRC_URI[sha256sum] = "fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += " \
- python-prettytable \
- python-cmd2 \
- python-pyparsing"
diff --git a/meta-python/recipes-devtools/python/python-periphery.inc b/meta-python/recipes-devtools/python/python-periphery.inc
deleted file mode 100644
index 539c3579ce..0000000000
--- a/meta-python/recipes-devtools/python/python-periphery.inc
+++ /dev/null
@@ -1,7 +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://PKG-INFO;md5=063846af82b555d48822cf43dc6db6af"
-
-PYPI_PACKAGE = "python-periphery" \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb b/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb
deleted file mode 100644
index 6ae7fed813..0000000000
--- a/meta-python/recipes-devtools/python/python-periphery_1.1.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools
-require python-periphery.inc
-
-SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f" \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python-pexpect.inc b/meta-python/recipes-devtools/python/python-pexpect.inc
deleted file mode 100644
index fa8ad01195..0000000000
--- a/meta-python/recipes-devtools/python/python-pexpect.inc
+++ /dev/null
@@ -1,21 +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[md5sum] = "913fc0a68a915cdf6ad4250493c94cf7"
-SRC_URI[sha256sum] = "9f8eb3277716a01faafaba553d629d3d60a1a624c7cf45daa600d2148c30020c"
-
-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/python-pexpect_4.5.0.bb b/meta-python/recipes-devtools/python/python-pexpect_4.5.0.bb
deleted file mode 100644
index 1c46b47a21..0000000000
--- a/meta-python/recipes-devtools/python/python-pexpect_4.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pexpect.inc
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-pip_9.0.3.bb b/meta-python/recipes-devtools/python/python-pip_9.0.3.bb
deleted file mode 100644
index e3fc6ba655..0000000000
--- a/meta-python/recipes-devtools/python/python-pip_9.0.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "PIP is a tool for installing and managing Python packages"
-HOMEPAGE = "https://pip.pypa.io/"
-LICENSE = "MIT & LGPL-2.1"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=25fba45109565f87de20bae85bc39452"
-
-SRC_URI[md5sum] = "b15b33f9aad61f88d0f8c866d16c55d8"
-SRC_URI[sha256sum] = "7bf48f9a693be1d58f49f7af7e0ae9fe29fd671cde8a55e6edca3581c4ef5796"
-
-inherit pypi setuptools
-
-# Since PIP is like CPAN for PERL we need to drag in all python modules to ensure everything works
-RDEPENDS_${PN}_class-target = "python-modules python-distribute python-misc"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pluggy.inc b/meta-python/recipes-devtools/python/python-pluggy.inc
deleted file mode 100644
index 320359aa64..0000000000
--- a/meta-python/recipes-devtools/python/python-pluggy.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Plugin and hook calling mechanisms for python"
-HOMEPAGE = "https://github.com/pytest-dev/pluggy"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=338dad807ed9337bfaeb9979c3bfe20f"
-
-SRC_URI[md5sum] = "ffdde7c3a5ba9a440404570366ffb6d5"
-SRC_URI[sha256sum] = "7f8ae7f5bdf75671a718d2daf0a64b7885f74510bcd98b1a0bb420eb9a9d0cff"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-pluggy_0.6.0.bb b/meta-python/recipes-devtools/python/python-pluggy_0.6.0.bb
deleted file mode 100644
index edcd4f512f..0000000000
--- a/meta-python/recipes-devtools/python/python-pluggy_0.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pluggy.inc
diff --git a/meta-python/recipes-devtools/python/python-ply.inc b/meta-python/recipes-devtools/python/python-ply.inc
deleted file mode 100644
index a744950b6e..0000000000
--- a/meta-python/recipes-devtools/python/python-ply.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python Lex and Yacc"
-DESCRIPTION = "Python ply: PLY is yet another implementation of lex and yacc for Python"
-HOMEPAGE = "https://pypi.python.org/pypi/ply"
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://README.md;beginline=5;endline=32;md5=f5ee5c355c0e6719c787a71b8f0fa96c"
-
-SRC_URI[md5sum] = "6465f602e656455affcd7c5734c638f8"
-SRC_URI[sha256sum] = "00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-ply_3.11.bb b/meta-python/recipes-devtools/python/python-ply_3.11.bb
deleted file mode 100644
index 2b6165c5be..0000000000
--- a/meta-python/recipes-devtools/python/python-ply_3.11.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-ply.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-pretend.inc b/meta-python/recipes-devtools/python/python-pretend.inc
deleted file mode 100644
index b342aef526..0000000000
--- a/meta-python/recipes-devtools/python/python-pretend.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A library for stubbing in Python"
-HOMEPAGE = "https://github.com/alex/pretend"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=411780c0b7fa756753e94affeee5bc99"
-
-SRC_URI[md5sum] = "ad53883ede48aeac7ae584f0de0240e8"
-SRC_URI[sha256sum] = "c90eb810cde8ebb06dafcb8796f9a95228ce796531bc806e794c2f4649aa1b10"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pretend_1.0.9.bb b/meta-python/recipes-devtools/python/python-pretend_1.0.9.bb
deleted file mode 100644
index 73b8ed4d7c..0000000000
--- a/meta-python/recipes-devtools/python/python-pretend_1.0.9.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pretend.inc
diff --git a/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb b/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb
deleted file mode 100644
index 6f4390e24c..0000000000
--- a/meta-python/recipes-devtools/python/python-prettytable_0.7.2.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Python library for displaying tabular data in a ASCII table format"
-HOMEPAGE = "http://code.google.com/p/prettytable"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=3e73500ffa52de5071cff65990055282"
-
-SRC_URI[md5sum] = "0c1361104caff8b09f220748f9d69899"
-SRC_URI[sha256sum] = "a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"
-
-SRCNAME = "prettytable"
-
-SRC_URI = "https://pypi.python.org/packages/source/P/PrettyTable/${SRCNAME}-${PV}.zip"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit setuptools
-
-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+[\.\-_]*)+)"
diff --git a/meta-python/recipes-devtools/python/python-progress.inc b/meta-python/recipes-devtools/python/python-progress.inc
deleted file mode 100644
index 297c0d373a..0000000000
--- a/meta-python/recipes-devtools/python/python-progress.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Easy progress reporting for Python"
-HOMEPAGE = "http://github.com/verigak/progress/"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=aef5566ac4fede9815eccf124c281317"
-
-SRC_URI[md5sum] = "f65ccfcc2339d522b2dd5801aaa40dc7"
-SRC_URI[sha256sum] = "c88d89ee3bd06716a0b8b5504d9c3bcb3c1c0ab98f96dc7f1dc5f56812a4f60a"
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-math \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-progress_1.3.bb b/meta-python/recipes-devtools/python/python-progress_1.3.bb
deleted file mode 100644
index 80608627a6..0000000000
--- a/meta-python/recipes-devtools/python/python-progress_1.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-progress.inc
diff --git a/meta-python/recipes-devtools/python/python-prompt-toolkit.inc b/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
deleted file mode 100644
index cc409a4eb3..0000000000
--- a/meta-python/recipes-devtools/python/python-prompt-toolkit.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Library for building powerful interactive command lines in Python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b2cde7da89f0c1f3e49bf968d00d554f"
-
-SRC_URI[md5sum] = "8fe70295006dbc8afedd43e5eba99032"
-SRC_URI[sha256sum] = "858588f1983ca497f1cf4ffde01d978a3ea02b01c8a26a8bbc5cd2e66d816917"
-
-PYPI_PACKAGE = "prompt_toolkit"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-core \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-terminal \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-wcwidth \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb b/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb
deleted file mode 100644
index 527c905a83..0000000000
--- a/meta-python/recipes-devtools/python/python-prompt-toolkit_1.0.15.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools
-require python-prompt-toolkit.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-protobuf.inc b/meta-python/recipes-devtools/python/python-protobuf.inc
deleted file mode 100644
index 5802fea889..0000000000
--- a/meta-python/recipes-devtools/python/python-protobuf.inc
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "Protocol Buffers"
-HOMEPAGE = "https://developers.google.com/protocol-buffers/"
-SECTION = "devel/python"
-
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-3-Clause;md5=550794465ba0ec5312d6919e203a55f9"
-
-inherit pypi
-
-SRC_URI[md5sum] = "393a53483224cb338df5c643646c0300"
-SRC_URI[sha256sum] = "09879a295fd7234e523b62066223b128c5a8a88f682e3aff62fb115e4a0d8be0"
-
-UPSTREAM_CHECK_REGEX = "protobuf/(?P<pver>\d+(\.\d+)+)/"
-
-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"
diff --git a/meta-python/recipes-devtools/python/python-protobuf_3.5.2.bb b/meta-python/recipes-devtools/python/python-protobuf_3.5.2.bb
deleted file mode 100644
index f04fc489f0..0000000000
--- a/meta-python/recipes-devtools/python/python-protobuf_3.5.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-protobuf.inc
diff --git a/meta-python/recipes-devtools/python/python-psutil.inc b/meta-python/recipes-devtools/python/python-psutil.inc
deleted file mode 100644
index 5d8e61f4b5..0000000000
--- a/meta-python/recipes-devtools/python/python-psutil.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "A cross-platform process and system utilities module for Python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0f02e99f7f3c9a7fe8ecfc5d44c2be62"
-
-SRC_URI[md5sum] = "3b291833dbea631db9d271aa602a169a"
-SRC_URI[sha256sum] = "e2467e9312c2fa191687b89ff4bc2ad8843be4af6fb4dc95a7cc5f7d7a327b18"
-
-PACKAGES =+ "${PN}-tests"
-
-FILES_${PN}-tests += " \
- ${PYTHON_SITEPACKAGES_DIR}/psutil/test* \
- ${PYTHON_SITEPACKAGES_DIR}/psutil/__pycache__/test* \
-"
-
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-xml \
-"
diff --git a/meta-python/recipes-devtools/python/python-psutil_5.4.3.bb b/meta-python/recipes-devtools/python/python-psutil_5.4.3.bb
deleted file mode 100644
index 9aabfb2069..0000000000
--- a/meta-python/recipes-devtools/python/python-psutil_5.4.3.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools
-require python-psutil.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-ptyprocess.inc b/meta-python/recipes-devtools/python/python-ptyprocess.inc
deleted file mode 100644
index 43f2d094ac..0000000000
--- a/meta-python/recipes-devtools/python/python-ptyprocess.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Run a subprocess in a pseudo terminal"
-HOMEPAGE = "http://ptyprocess.readthedocs.io/en/latest/"
-SECTION = "devel/python"
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=cfdcd51fa7d5808da4e74346ee394490"
-
-SRCNAME = "ptyprocess"
-
-SRC_URI[md5sum] = "d3b8febae1b8c53b054bd818d0bb8665"
-SRC_URI[sha256sum] = "e64193f0047ad603b71f202332ab5527c5e52aa7c8b609704fc28c0dc20c4365"
-
-UPSTREAM_CHECK_URI = "https://pypi.python.org/pypi/ptyprocess"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-core \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb b/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb
deleted file mode 100644
index 7ca4587714..0000000000
--- a/meta-python/recipes-devtools/python/python-ptyprocess_0.5.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-ptyprocess.inc
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-py.inc b/meta-python/recipes-devtools/python/python-py.inc
deleted file mode 100644
index c7d6727370..0000000000
--- a/meta-python/recipes-devtools/python/python-py.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Library with cross-python path, ini-parsing, io, code, log facilities"
-HOMEPAGE = "http://py.readthedocs.io/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
-
-SRC_URI[md5sum] = "279ca69c632069e1b71e11b14641ca28"
-SRC_URI[sha256sum] = "ca18943e28235417756316bfada6cd96b23ce60dd532642690dcfdaba988a76d"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-py_1.5.2.bb b/meta-python/recipes-devtools/python/python-py_1.5.2.bb
deleted file mode 100644
index 5ad2c19766..0000000000
--- a/meta-python/recipes-devtools/python/python-py_1.5.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-py.inc
diff --git a/meta-python/recipes-devtools/python/python-pyalsaaudio.inc b/meta-python/recipes-devtools/python/python-pyalsaaudio.inc
deleted file mode 100644
index d150409a2a..0000000000
--- a/meta-python/recipes-devtools/python/python-pyalsaaudio.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Support for the Linux 2.6.x ALSA Sound System"
-SECTION = "devel/python"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1a3b161aa0fcec32a0c8907a2219ad9d"
-
-SRC_URI[md5sum] = "b46f69561bc85fc52e698b2440ca251e"
-SRC_URI[sha256sum] = "84e8f8da544d7f4bd96479ce4a237600077984d9be1d7f16c1d9a492ecf50085"
-
-DEPENDS += "alsa-lib"
-
-RDEPENDS_${PN} += "libasound"
diff --git a/meta-python/recipes-devtools/python/python-pyalsaaudio_0.8.4.bb b/meta-python/recipes-devtools/python/python-pyalsaaudio_0.8.4.bb
deleted file mode 100644
index e5153421b4..0000000000
--- a/meta-python/recipes-devtools/python/python-pyalsaaudio_0.8.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyalsaaudio.inc
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-pyasn1-modules.inc b/meta-python/recipes-devtools/python/python-pyasn1-modules.inc
deleted file mode 100644
index 9fa54cfe00..0000000000
--- a/meta-python/recipes-devtools/python/python-pyasn1-modules.inc
+++ /dev/null
@@ -1,16 +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=280606d9c18f200e03e0c247ac61475a"
-
-SRC_URI[md5sum] = "ff938698590f314ff9b3d5c48737d899"
-SRC_URI[sha256sum] = "af00ea8f2022b6287dc375b2c70f31ab5af83989fc6fe9eacd4976ce26cd7ccc"
-
-inherit pypi
-
-RDEPENDS_${PN} = "${PYTHON_PN}-pyasn1"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.1.bb b/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.1.bb
deleted file mode 100644
index eb78884089..0000000000
--- a/meta-python/recipes-devtools/python/python-pyasn1-modules_0.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyasn1-modules.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-pyasn1.inc b/meta-python/recipes-devtools/python/python-pyasn1.inc
deleted file mode 100644
index f3c32e08af..0000000000
--- a/meta-python/recipes-devtools/python/python-pyasn1.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Python library implementing ASN.1 types."
-HOMEPAGE = "http://pyasn1.sourceforge.net/"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=280606d9c18f200e03e0c247ac61475a"
-
-SRC_URI[md5sum] = "cb5883ddc6a9f405600429f37cf0759c"
-SRC_URI[sha256sum] = "d258b0a71994f7770599835249cece1caef3c70def868c4915e6e5ca49b67d15"
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-math \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pyasn1_0.4.2.bb b/meta-python/recipes-devtools/python/python-pyasn1_0.4.2.bb
deleted file mode 100644
index a13c74dda8..0000000000
--- a/meta-python/recipes-devtools/python/python-pyasn1_0.4.2.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools
-require python-pyasn1.inc
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-lang \
-"
diff --git a/meta-python/recipes-devtools/python/python-pybind11.inc b/meta-python/recipes-devtools/python/python-pybind11.inc
deleted file mode 100644
index e441dc6dee..0000000000
--- a/meta-python/recipes-devtools/python/python-pybind11.inc
+++ /dev/null
@@ -1,7 +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=beb87117af69fd10fbf9fb14c22a2e62"
-
-SRC_URI[md5sum] = "2c651a75a20dabbaa18a8b023ffd54c0"
-SRC_URI[sha256sum] = "cbb036a8aad59a199ad672f98813f85c672642c6a67b4ff3868b1d6abc5fae3e"
diff --git a/meta-python/recipes-devtools/python/python-pybind11_2.2.2.bb b/meta-python/recipes-devtools/python/python-pybind11_2.2.2.bb
deleted file mode 100644
index e56743002e..0000000000
--- a/meta-python/recipes-devtools/python/python-pybind11_2.2.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pybind11.inc
diff --git a/meta-python/recipes-devtools/python/python-pybluez.inc b/meta-python/recipes-devtools/python/python-pybluez.inc
deleted file mode 100644
index 399fe579f7..0000000000
--- a/meta-python/recipes-devtools/python/python-pybluez.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Bluetooth Python extension module"
-HOMEPAGE = "http://karulis.github.io/pybluez/"
-SECTION = "devel/python"
-
-DEPENDS = "bluez5"
-
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=8a71d0475d08eee76d8b6d0c6dbec543"
-
-inherit pypi
-
-SRC_URI = "https://pypi.python.org/packages/c1/98/3149481d508bee174335be6725880f00d297afebe75c15e917af8f6fe169/PyBluez-0.22.zip"
-SRC_URI[md5sum] = "49dab9d5a8f0b798c8125c7f649be3cd"
-SRC_URI[sha256sum] = "4ce006716a54d9d18e8186a3f1c8b12a8e6befecffe8fd5828a291fb694ce49d"
-
-S = "${WORKDIR}/PyBluez-${PV}"
-
-RDEPENDS_${PN} += "\
- bluez5 \
- ${PYTHON_PN}-fcntl \
-"
diff --git a/meta-python/recipes-devtools/python/python-pybluez_0.22.bb b/meta-python/recipes-devtools/python/python-pybluez_0.22.bb
deleted file mode 100644
index 3158f4b647..0000000000
--- a/meta-python/recipes-devtools/python/python-pybluez_0.22.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pybluez.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-pycparser.inc b/meta-python/recipes-devtools/python/python-pycparser.inc
deleted file mode 100644
index d112d9f774..0000000000
--- a/meta-python/recipes-devtools/python/python-pycparser.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Parser of the C language, written in pure Python"
-HOMEPAGE = "https://github.com/eliben/pycparser"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=86f1cedb4e6410a88ce8e30b91079169"
-
-SRC_URI[md5sum] = "72370da54358202a60130e223d488136"
-SRC_URI[sha256sum] = "99a8ca03e29851d96616ad0404b4aad7d9ee16f25c9f9708a11faf2810f7b226"
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-ply \
- ${PYTHON_PN}-pprint \
- cpp \
- cpp-symlinks \
- "
diff --git a/meta-python/recipes-devtools/python/python-pycparser_2.18.bb b/meta-python/recipes-devtools/python/python-pycparser_2.18.bb
deleted file mode 100644
index 98742737fd..0000000000
--- a/meta-python/recipes-devtools/python/python-pycparser_2.18.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools
-require python-pycparser.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-pycrypto.inc b/meta-python/recipes-devtools/python/python-pycrypto.inc
deleted file mode 100644
index 232cdb7116..0000000000
--- a/meta-python/recipes-devtools/python/python-pycrypto.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-DESCRIPTION = "Cryptographic modules for Python."
-HOMEPAGE = "http://www.pycrypto.org/"
-LICENSE = "PSFv2"
-LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=35f354d199e8cb7667b059a23578e63d"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-pycrypto:"
-
-DEPENDS += " gmp"
-
-inherit pypi autotools-brokensep
-
-SRC_URI += "file://cross-compiling.patch \
- file://CVE-2013-7459.patch \
- "
-
-SRC_URI[md5sum] = "55a61a054aa66812daf5161a0d5d7eda"
-SRC_URI[sha256sum] = "f2ce1e989b272cfcb677616763e0a2e7ec659effa67a88aa92b3a65528f60a3c"
-
-do_compile[noexec] = "1"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pycrypto/CVE-2013-7459.patch b/meta-python/recipes-devtools/python/python-pycrypto/CVE-2013-7459.patch
deleted file mode 100644
index 9006c5c350..0000000000
--- a/meta-python/recipes-devtools/python/python-pycrypto/CVE-2013-7459.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4 Mon Sep 17 00:00:00 2001
-From: Legrandin <helderijs@gmail.com>
-Date: Sun, 22 Dec 2013 22:24:46 +0100
-Subject: [PATCH] Throw exception when IV is used with ECB or CTR
-
-The IV parameter is currently ignored when initializing
-a cipher in ECB or CTR mode.
-
-For CTR mode, it is confusing: it takes some time to see
-that a different parameter is needed (the counter).
-
-For ECB mode, it is outright dangerous.
-
-This patch forces an exception to be raised.
-
-Upstream-Status: Backport
-[https://github.com/dlitz/pycrypto/commit/8dbe0dc3eea5c689d4f76b37b93fe216cf1f00d4]
-
-CVE: CVE-2013-7459
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- lib/Crypto/SelfTest/Cipher/common.py | 31 +++++++++++++++++++++++--------
- src/block_template.c | 11 +++++++++++
- 2 files changed, 34 insertions(+), 8 deletions(-)
-
-diff --git a/lib/Crypto/SelfTest/Cipher/common.py b/lib/Crypto/SelfTest/Cipher/common.py
-index 8bebed9..91ec743 100644
---- a/lib/Crypto/SelfTest/Cipher/common.py
-+++ b/lib/Crypto/SelfTest/Cipher/common.py
-@@ -239,19 +239,34 @@ class RoundtripTest(unittest.TestCase):
- return """%s .decrypt() output of .encrypt() should not be garbled""" % (self.module_name,)
-
- def runTest(self):
-- for mode in (self.module.MODE_ECB, self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB, self.module.MODE_OPENPGP):
-+
-+ ## ECB mode
-+ mode = self.module.MODE_ECB
-+ encryption_cipher = self.module.new(a2b_hex(self.key), mode)
-+ ciphertext = encryption_cipher.encrypt(self.plaintext)
-+ decryption_cipher = self.module.new(a2b_hex(self.key), mode)
-+ decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-+ self.assertEqual(self.plaintext, decrypted_plaintext)
-+
-+ ## OPENPGP mode
-+ mode = self.module.MODE_OPENPGP
-+ encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-+ eiv_ciphertext = encryption_cipher.encrypt(self.plaintext)
-+ eiv = eiv_ciphertext[:self.module.block_size+2]
-+ ciphertext = eiv_ciphertext[self.module.block_size+2:]
-+ decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
-+ decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
-+ self.assertEqual(self.plaintext, decrypted_plaintext)
-+
-+ ## All other non-AEAD modes (but CTR)
-+ for mode in (self.module.MODE_CBC, self.module.MODE_CFB, self.module.MODE_OFB):
- encryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
- ciphertext = encryption_cipher.encrypt(self.plaintext)
--
-- if mode != self.module.MODE_OPENPGP:
-- decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
-- else:
-- eiv = ciphertext[:self.module.block_size+2]
-- ciphertext = ciphertext[self.module.block_size+2:]
-- decryption_cipher = self.module.new(a2b_hex(self.key), mode, eiv)
-+ decryption_cipher = self.module.new(a2b_hex(self.key), mode, self.iv)
- decrypted_plaintext = decryption_cipher.decrypt(ciphertext)
- self.assertEqual(self.plaintext, decrypted_plaintext)
-
-+
- class PGPTest(unittest.TestCase):
- def __init__(self, module, params):
- unittest.TestCase.__init__(self)
-diff --git a/src/block_template.c b/src/block_template.c
-index c36b316..8746948 100644
---- a/src/block_template.c
-+++ b/src/block_template.c
-@@ -170,6 +170,17 @@ ALGnew(PyObject *self, PyObject *args, PyObject *kwdict)
- "Key cannot be the null string");
- return NULL;
- }
-+ if (IVlen != 0 && mode == MODE_ECB)
-+ {
-+ PyErr_Format(PyExc_ValueError, "ECB mode does not use IV");
-+ return NULL;
-+ }
-+ if (IVlen != 0 && mode == MODE_CTR)
-+ {
-+ PyErr_Format(PyExc_ValueError,
-+ "CTR mode needs counter parameter, not IV");
-+ return NULL;
-+ }
- if (IVlen != BLOCK_SIZE && mode != MODE_ECB && mode != MODE_CTR)
- {
- PyErr_Format(PyExc_ValueError,
---
-2.7.4
-
diff --git a/meta-python/recipes-devtools/python/python-pycrypto/cross-compiling.patch b/meta-python/recipes-devtools/python/python-pycrypto/cross-compiling.patch
deleted file mode 100644
index 712f3e8dde..0000000000
--- a/meta-python/recipes-devtools/python/python-pycrypto/cross-compiling.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Index: pycrypto-2.6/setup.py
-===================================================================
---- pycrypto-2.6.orig/setup.py
-+++ pycrypto-2.6/setup.py
-@@ -271,7 +271,8 @@ class PCTBuildConfigure(Command):
- if not os.path.exists("config.status"):
- if os.system("chmod 0755 configure") != 0:
- raise RuntimeError("chmod error")
-- cmd = "sh configure" # we use "sh" here so that it'll work on mingw32 with standard python.org binaries
-+ host = os.environ.get("HOST_SYS")
-+ cmd = "ac_cv_func_malloc_0_nonnull=yes sh configure --host " + host # we use "sh" here so that it'll work on mingw32 with standard python.org binaries
- if self.verbose < 1:
- cmd += " -q"
- if os.system(cmd) != 0:
-@@ -370,7 +371,7 @@ kw = {'name':"pycrypto",
- 'ext_modules': plat_ext + [
- # _fastmath (uses GNU mp library)
- Extension("Crypto.PublicKey._fastmath",
-- include_dirs=['src/','/usr/include/'],
-+ include_dirs=['src/'],
- libraries=['gmp'],
- sources=["src/_fastmath.c"]),
-
diff --git a/meta-python/recipes-devtools/python/python-pycrypto_2.6.1.bb b/meta-python/recipes-devtools/python/python-pycrypto_2.6.1.bb
deleted file mode 100644
index e13db01b7f..0000000000
--- a/meta-python/recipes-devtools/python/python-pycrypto_2.6.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-inherit distutils
-require python-pycrypto.inc
-
-# We explicitly call distutils_do_install, since we want it to run, but
-# *don't* want the autotools install to run, since this package doesn't
-# provide a "make install" target.
-do_install() {
- distutils_do_install
-}
diff --git a/meta-python/recipes-devtools/python/python-pycryptodome.inc b/meta-python/recipes-devtools/python/python-pycryptodome.inc
deleted file mode 100644
index c4969f9667..0000000000
--- a/meta-python/recipes-devtools/python/python-pycryptodome.inc
+++ /dev/null
@@ -1,29 +0,0 @@
-SUMMARY = "Cryptographic library for Python"
-DESCRIPTION = "PyCryptodome is a self-contained Python package of low-level\
- cryptographic primitives."
-HOMEPAGE = "http://www.pycryptodome.org"
-LICENSE = "PD & BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=775fe77831c03bf82f35abc0e230d4c1"
-
-SRC_URI[md5sum] = "a2587b6381b0ef4eb960cea1e7507d04"
-SRC_URI[sha256sum] = "c5dd29e9f1b733e74311bf95d0e544e91bd1d14bc0366e8f443562d8d9920b7d"
-
-inherit pypi
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-math \
-"
-
-RDEPENDS_${PN}-tests += " \
- ${PYTHON_PN}-unittest \
-"
-
-PACKAGES =+ "${PN}-tests"
-
-FILES_${PN}-tests += " \
- ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/ \
- ${PYTHON_SITEPACKAGES_DIR}/Crypto/SelfTest/__pycache__/ \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb b/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb
deleted file mode 100644
index c7701eb9f9..0000000000
--- a/meta-python/recipes-devtools/python/python-pycryptodome_3.4.11.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pycryptodome.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-pydbus.inc b/meta-python/recipes-devtools/python/python-pydbus.inc
deleted file mode 100644
index 0773b7ff88..0000000000
--- a/meta-python/recipes-devtools/python/python-pydbus.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Pythonic DBus library"
-HOMEPAGE = "https://pypi.python.org/pypi/pydbus/"
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a916467b91076e631dd8edb7424769c7"
-
-SRC_URI[md5sum] = "c6abd44862322679bd4e907bebc3e0d0"
-SRC_URI[sha256sum] = "4207162eff54223822c185da06c1ba8a34137a9602f3da5a528eedf3f78d0f2c"
-
-S = "${WORKDIR}/pydbus-${PV}"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-pygobject"
diff --git a/meta-python/recipes-devtools/python/python-pydbus_0.6.0.bb b/meta-python/recipes-devtools/python/python-pydbus_0.6.0.bb
deleted file mode 100644
index 1722a80cd3..0000000000
--- a/meta-python/recipes-devtools/python/python-pydbus_0.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pydbus.inc
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-pyexpect.inc b/meta-python/recipes-devtools/python/python-pyexpect.inc
deleted file mode 100644
index d2d41d51d2..0000000000
--- a/meta-python/recipes-devtools/python/python-pyexpect.inc
+++ /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=500b884e9dcd5f677a53cbbee8ace939"
-
-inherit pypi
-
-SRC_URI[md5sum] = "c71307d6c7096fdbde0813018dfa0092"
-SRC_URI[sha256sum] = "d656ef7e07a8aa539ce0a4883a683341037b6fc1c329bf55b63bffbf2cce9582"
diff --git a/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb b/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb
deleted file mode 100644
index d26beb7944..0000000000
--- a/meta-python/recipes-devtools/python/python-pyexpect_1.0.17.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pyexpect.inc
diff --git a/meta-python/recipes-devtools/python/python-pyfirmata.inc b/meta-python/recipes-devtools/python/python-pyfirmata.inc
deleted file mode 100644
index 2365379aa2..0000000000
--- a/meta-python/recipes-devtools/python/python-pyfirmata.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "A Python interface for the Firmata protocol"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=84ddcef430b7c44caa22b2ff4b37a3df"
-PYPI_PACKAGE = "pyFirmata"
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-pyserial \
-"
-
-SRC_URI[md5sum] = "ee4c23ca5c35d3091d550a63540811a3"
-SRC_URI[sha256sum] = "b54d49d66a9d93c1ef9c72ca01264414cb2de177baac116c12d5cce0c380160c"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb b/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb
deleted file mode 100644
index d77e0f3853..0000000000
--- a/meta-python/recipes-devtools/python/python-pyfirmata_1.0.3.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit setuptools
-require python-pyfirmata.inc
-
diff --git a/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb b/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb
deleted file mode 100644
index 244485965c..0000000000
--- a/meta-python/recipes-devtools/python/python-pyflakes_1.6.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "passive checker of Python programs"
-HOMEPAGE = "https://github.com/dreamhost/cliff"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.rst;md5=029ce1beb023f2c4ca9f417e4984a865"
-
-SRC_URI[md5sum] = "b385b0e4cd40a522553e97cd2d83573e"
-SRC_URI[sha256sum] = "8d616a382f243dbf19b54743f280b80198be0bca3a5396f1d2e1fca6223e8805"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-prettytable \
- ${PYTHON_PN}-cmd2 \
- ${PYTHON_PN}-pyparsing"
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-pygpgme_0.3.bb b/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb
deleted file mode 100644
index 14e967db88..0000000000
--- a/meta-python/recipes-devtools/python/python-pygpgme_0.3.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-SUMMARY = "A Python module for working with OpenPGP messages"
-DESCRIPTION = "PyGPGME is a Python module that lets you sign, verify, \
- encrypt and decrypt messages using the OpenPGP format."
-HOMEPAGE = "https://launchpad.net/pygpgme"
-
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=6517bdc8f2416f27ab725d4702f7aac3"
-
-SRC_URI = "file://run-ptest \
- file://0001-reflect-2.1-reporting-for-key-imports.patch \
- file://0002-passphrase_cb-is-deprecated.patch \
- file://0003-handle-generic-error-when-no-passphrase-callback-pre.patch \
-"
-
-SRC_URI[md5sum] = "d38355af73f0352cde3d410b25f34fd0"
-SRC_URI[sha256sum] = "5fd887c407015296a8fd3f4b867fe0fcca3179de97ccde90449853a3dfb802e1"
-
-DEPENDS += "gpgme"
-RDEPENDS_${PN} += "gnupg"
-
-inherit pypi setuptools ptest
-
-do_install_ptest(){
- install ${S}/test_all.py ${D}${PTEST_PATH}
- cp -r ${S}/tests ${D}${PTEST_PATH}
-}
diff --git a/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb b/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb
deleted file mode 100644
index 02d4f54e15..0000000000
--- a/meta-python/recipes-devtools/python/python-pyhamcrest_1.9.0.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Hamcrest framework for matcher objects"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=f6df1318c6071dd1707f5e3b6c11f24f"
-
-PYPI_PACKAGE = "PyHamcrest"
-
-SRC_URI[md5sum] = "8b833a3fa30197455df79424f30c8c3f"
-SRC_URI[sha256sum] = "8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd"
-
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-pyiface.inc b/meta-python/recipes-devtools/python/python-pyiface.inc
deleted file mode 100644
index 620b244c65..0000000000
--- a/meta-python/recipes-devtools/python/python-pyiface.inc
+++ /dev/null
@@ -1,11 +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 = "GPLv3+"
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fe869ee987a340198fb0d54c55c47f1"
-
-SRC_URI[md5sum] = "06c3c71fe51df740dae6a88a13afb5e0"
-SRC_URI[sha256sum] = "4bb79100cbcf7344a1ccaddc578cd6455da47d8eac6eb1bf903ec32e043af924"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-pyiface_0.0.5.bb b/meta-python/recipes-devtools/python/python-pyiface_0.0.5.bb
deleted file mode 100644
index 854cb30eee..0000000000
--- a/meta-python/recipes-devtools/python/python-pyiface_0.0.5.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pyiface.inc \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python-pyinotify.inc b/meta-python/recipes-devtools/python/python-pyinotify.inc
deleted file mode 100644
index 975f11c10b..0000000000
--- a/meta-python/recipes-devtools/python/python-pyinotify.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-DESCRIPTION = "Python pyinotify: Linux filesystem events monitoring"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ab173cade7965b411528464589a08382"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-shell \
-"
-
-SRC_URI[md5sum] = "8e580fa1ff3971f94a6f81672b76c406"
-SRC_URI[sha256sum] = "9c998a5d7606ca835065cdabc013ae6c66eb9ea76a00a1e3bc6e0cfe2b4f71f4"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb b/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb
deleted file mode 100644
index 0c9a2c72e1..0000000000
--- a/meta-python/recipes-devtools/python/python-pyinotify_0.9.6.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools
-require python-pyinotify.inc
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-pyjks.inc b/meta-python/recipes-devtools/python/python-pyjks.inc
deleted file mode 100644
index d866c56504..0000000000
--- a/meta-python/recipes-devtools/python/python-pyjks.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Pure-Python Java Keystore (JKS) library"
-DESCRIPTION = "PyJKS enables Python projects to load and manipulate\
- Java KeyStore (JKS) data without a JVM dependency. PyJKS supports JKS,\
- JCEKS, BKS and UBER (BouncyCastle) keystores."
-HOMEPAGE = "http://github.com/kurtbrose/pyjks"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9694d6cc724caf7f7386be88a4a81958"
-
-SRC_URI[md5sum] = "d53501e7c80d465969742bc6bee91d49"
-SRC_URI[sha256sum] = "709c44a303dd6b2464078ebeb677417e717818d4b3dc3844a462bef9d215dcc8"
-
-inherit pypi
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-javaobj-py3 \
- ${PYTHON_PN}-pyasn1 \
- ${PYTHON_PN}-pyasn1-modules \
- ${PYTHON_PN}-pycryptodome \
- ${PYTHON_PN}-twofish\
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb b/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb
deleted file mode 100644
index ce99f28350..0000000000
--- a/meta-python/recipes-devtools/python/python-pyjks_17.1.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyjks.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-pyjwt.inc b/meta-python/recipes-devtools/python/python-pyjwt.inc
deleted file mode 100644
index 9f9282eac0..0000000000
--- a/meta-python/recipes-devtools/python/python-pyjwt.inc
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "JSON Web Token implementation in Python"
-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=68626705a7b513ca8d5f44a3e200ed0c"
-
-SRC_URI[md5sum] = "f7dbe0d62f2087a7605946aeeca02541"
-SRC_URI[sha256sum] = "dacba5786fe3bf1a0ae8673874e29f9ac497860955c501289c63b15d3daae63a"
-
-PYPI_PACKAGE = "PyJWT"
-inherit pypi
-
-RDEPENDS_${PN} = "${PYTHON_PN}-cryptography"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pyjwt_1.6.1.bb b/meta-python/recipes-devtools/python/python-pyjwt_1.6.1.bb
deleted file mode 100644
index f0a77b674b..0000000000
--- a/meta-python/recipes-devtools/python/python-pyjwt_1.6.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyjwt.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-pylint.inc b/meta-python/recipes-devtools/python/python-pylint.inc
deleted file mode 100644
index ba85b98878..0000000000
--- a/meta-python/recipes-devtools/python/python-pylint.inc
+++ /dev/null
@@ -1,38 +0,0 @@
-SUMMARY="Pylint is a Python source code analyzer"
-HOMEPAGE= "http://www.pylint.org/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=4325afd396febcb659c36b49533135d4"
-
-SRC_URI[md5sum] = "2eb5f3cb8fe567eaf5420dd415012202"
-SRC_URI[sha256sum] = "c77311859e0c2d7932095f30d2b1bfdc4b6fe111f534450ba727a52eae330ef2"
-
-inherit pypi
-
-DEPENDS += "${PYTHON_PN}-pytest-runner-native"
-
-do_install_append(){
- rm ${D}${bindir}/pylint
- cat >> ${D}${bindir}/pylint <<EOF
-#!/usr/bin/env ${PYTHON_PN}
-from pylint import run_pylint
-run_pylint()
-EOF
- chmod 755 ${D}${bindir}/pylint
- sed -i -e 's:^#!/usr/bin/python:#!/usr/bin/env\ ${PYTHON_PN}:g' ${D}/${PYTHON_SITEPACKAGES_DIR}/pylint/test/data/ascript
-}
-
-PACKAGES =+ "${PN}-tests"
-FILES_${PN}-tests+= " \
- ${PYTHON_SITEPACKAGES_DIR}/pylint/test/ \
- ${PYTHON_SITEPACKAGES_DIR}/pylint/testutils.py \
-"
-
-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/python-pylint_1.8.3.bb b/meta-python/recipes-devtools/python/python-pylint_1.8.3.bb
deleted file mode 100644
index 7b51d3fbd5..0000000000
--- a/meta-python/recipes-devtools/python/python-pylint_1.8.3.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools python-dir
-require python-pylint.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-backports-functools-lru-cache"
diff --git a/meta-python/recipes-devtools/python/python-pymisp.inc b/meta-python/recipes-devtools/python/python-pymisp.inc
deleted file mode 100644
index 7765cc59cc..0000000000
--- a/meta-python/recipes-devtools/python/python-pymisp.inc
+++ /dev/null
@@ -1,15 +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[md5sum] = "d4fee2abb2d7468010b7fe9ebc68b0cb"
-SRC_URI[sha256sum] = "304fbd8862dfde27d767c093de87fec42fc63c70d8393643d1a3b4f765aae78f"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-jsonschema \
- ${PYTHON_PN}-requests \
- ${PYTHON_PN}-six \
-"
diff --git a/meta-python/recipes-devtools/python/python-pymisp_2.4.89.bb b/meta-python/recipes-devtools/python/python-pymisp_2.4.89.bb
deleted file mode 100644
index 1b1fbe956e..0000000000
--- a/meta-python/recipes-devtools/python/python-pymisp_2.4.89.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pymisp.inc
diff --git a/meta-python/recipes-devtools/python/python-pymongo.inc b/meta-python/recipes-devtools/python/python-pymongo.inc
deleted file mode 100644
index baf3dd547a..0000000000
--- a/meta-python/recipes-devtools/python/python-pymongo.inc
+++ /dev/null
@@ -1,29 +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[md5sum] = "0d72c87fb93cea0759529befafefce54"
-SRC_URI[sha256sum] = "f7ebcb846962ee40374db2d9014a89bea9c983ae63c1877957c3a0a756974796"
-
-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/python-pymongo_3.6.1.bb b/meta-python/recipes-devtools/python/python-pymongo_3.6.1.bb
deleted file mode 100644
index b1778b2f13..0000000000
--- a/meta-python/recipes-devtools/python/python-pymongo_3.6.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pymongo.inc
diff --git a/meta-python/recipes-devtools/python/python-pynetlinux.inc b/meta-python/recipes-devtools/python/python-pynetlinux.inc
deleted file mode 100644
index 6a39896279..0000000000
--- a/meta-python/recipes-devtools/python/python-pynetlinux.inc
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Linux network configuration library for Python"
-DESCRIPTION = "This library contains Python bindings to ioctl calls"
-SECTION = "devel/python"
-HOMEPAGE = "http://github.com/rlisagor/pynetlinux"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=74e1861736ee959824fe7542323c12e9"
-
-inherit pypi
-
-SRC_URI[md5sum] = "3336e5d4a478acca4e35bf3125b4f883"
-SRC_URI[sha256sum] = "4ad08298c9f5ba15a11cddc639ba8778cabdfc402b51066d9e0a325e5a5b391c"
diff --git a/meta-python/recipes-devtools/python/python-pynetlinux_1.1.bb b/meta-python/recipes-devtools/python/python-pynetlinux_1.1.bb
deleted file mode 100644
index c45ad6ad66..0000000000
--- a/meta-python/recipes-devtools/python/python-pynetlinux_1.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pynetlinux.inc
diff --git a/meta-python/recipes-devtools/python/python-pyopenssl.inc b/meta-python/recipes-devtools/python/python-pyopenssl.inc
deleted file mode 100644
index 7722e8ecd9..0000000000
--- a/meta-python/recipes-devtools/python/python-pyopenssl.inc
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Simple Python wrapper around the OpenSSL library"
-HOMEPAGE = "https://pyopenssl.org/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-DEPENDS += "openssl ${PYTHON_PN}-cryptography"
-
-SRC_URI[md5sum] = "d9c5134db8bf3183573b7840954cac94"
-SRC_URI[sha256sum] = "2c10cfba46a52c0b0950118981d61e72c1e5b1aac451ca1bc77de1a679456773"
-
-PYPI_PACKAGE = "pyOpenSSL"
-
-PACKAGES =+ "${PN}-tests"
-FILES_${PN}-tests = "${libdir}/${PYTHON_DIR}/site-packages/OpenSSL/test"
-
-RDEPENDS_${PN}_class-target = " \
- ${PYTHON_PN}-cryptography \
- ${PYTHON_PN}-six \
- ${PYTHON_PN}-threading \
-"
-RDEPENDS_${PN}-tests = "${PN}"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pyopenssl_17.5.0.bb b/meta-python/recipes-devtools/python/python-pyopenssl_17.5.0.bb
deleted file mode 100644
index b7d5146130..0000000000
--- a/meta-python/recipes-devtools/python/python-pyopenssl_17.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyopenssl.inc
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-pyparsing.inc b/meta-python/recipes-devtools/python/python-pyparsing.inc
deleted file mode 100644
index e30839f875..0000000000
--- a/meta-python/recipes-devtools/python/python-pyparsing.inc
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Python parsing module"
-HOMEPAGE = "http://pyparsing.wikispaces.com/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fb46329938e6bc829b256e37d5c1e31a"
-
-SRC_URI[md5sum] = "0214e42d63af850256962b6744c948d9"
-SRC_URI[sha256sum] = "0832bcf47acd283788593e7a0f542407bd9550a55a8a8435214a1960e04bcb04"
-
-inherit pypi
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-debugger \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pyparsing_2.2.0.bb b/meta-python/recipes-devtools/python/python-pyparsing_2.2.0.bb
deleted file mode 100644
index 90217f3c3e..0000000000
--- a/meta-python/recipes-devtools/python/python-pyparsing_2.2.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pyparsing.inc
diff --git a/meta-python/recipes-devtools/python/python-pyperclip.inc b/meta-python/recipes-devtools/python/python-pyperclip.inc
deleted file mode 100644
index e05de6723e..0000000000
--- a/meta-python/recipes-devtools/python/python-pyperclip.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "A cross-platform clipboard module for Python. (only handles plain text for now)"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=1ed92115c8f96b19ec34ed09df586e51"
-
-SRC_URI[md5sum] = "d2f6a3129cd6f2518b52bb0b8deeeda7"
-SRC_URI[sha256sum] = "ce829433a9af640e08ee89b20f7c62132714bcc5d77df114044d0fccb8c3b3b8"
-
-inherit pypi
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-ctypes \
-"
diff --git a/meta-python/recipes-devtools/python/python-pyperclip_1.6.0.bb b/meta-python/recipes-devtools/python/python-pyperclip_1.6.0.bb
deleted file mode 100644
index 6c9fcbd84e..0000000000
--- a/meta-python/recipes-devtools/python/python-pyperclip_1.6.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-inherit setuptools
-require python-pyperclip.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-contextlib \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-pyrex-native_0.9.9.bb b/meta-python/recipes-devtools/python/python-pyrex-native_0.9.9.bb
deleted file mode 100644
index e8ef1aa12b..0000000000
--- a/meta-python/recipes-devtools/python/python-pyrex-native_0.9.9.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require python-pyrex_${PV}.bb
-inherit native pythonnative
-DEPENDS = "python-native"
-RDEPENDS_${PN} = ""
-PR = "r3"
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-pyrex_0.9.9.bb b/meta-python/recipes-devtools/python/python-pyrex_0.9.9.bb
deleted file mode 100644
index c4dd2e69b0..0000000000
--- a/meta-python/recipes-devtools/python/python-pyrex_0.9.9.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Language for writing Python extension modules"
-DESCRIPTION = "Pyrex is a language specially designed for writing Python extension modules. \
-It's designed to bridge the gap between the nice, high-level, easy-to-use world of Python \
-and the messy, low-level world of C."
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=771d472f53f933033f57eeee7808e5bd"
-SRCNAME = "Pyrex"
-PR = "r4"
-
-SRC_URI = "\
- http://www.cosc.canterbury.ac.nz/greg.ewing/python/${SRCNAME}/${SRCNAME}-${PV}.tar.gz \
- file://pyrex-fix-optimized-mode.patch \
-"
-
-SRC_URI[md5sum] = "515dee67d15d4393841e2d60e8341947"
-SRC_URI[sha256sum] = "5f87df06831d0b3412eb4bc9d3fc2ee7bfae1b913d7da8c23ab2bf5699fb6b50"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit distutils
-
-FILES_${PN} += "${datadir}${base_libdir}/${PYTHON_DIR}/site-packages/Pyrex/Compiler/Lexicon.pickle"
diff --git a/meta-python/recipes-devtools/python/python-pyroute2.inc b/meta-python/recipes-devtools/python/python-pyroute2.inc
deleted file mode 100644
index 9ec9866d8a..0000000000
--- a/meta-python/recipes-devtools/python/python-pyroute2.inc
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A pure Python netlink and Linux network configuration library"
-LICENSE = "GPLv2 & Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.GPL.v2;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://LICENSE.Apache.v2;md5=34281e312165f843a2b7d1f114fe65ce"
-
-SRC_URI[md5sum] = "9c251543c4282a2f8b1a8d6aa8afc688"
-SRC_URI[sha256sum] = "7afad28ee0a0f3e7c34adaa9f953d00560ed9910203e93f107833b6e8d151171"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-pyroute2:"
-
-inherit pypi
-
-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 \
-"
diff --git a/meta-python/recipes-devtools/python/python-pyroute2_0.4.21.bb b/meta-python/recipes-devtools/python/python-pyroute2_0.4.21.bb
deleted file mode 100644
index f25f1b4ab3..0000000000
--- a/meta-python/recipes-devtools/python/python-pyroute2_0.4.21.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require python-pyroute2.inc
-inherit setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-pyserial.inc b/meta-python/recipes-devtools/python/python-pyserial.inc
deleted file mode 100644
index 52a7e05ce6..0000000000
--- a/meta-python/recipes-devtools/python/python-pyserial.inc
+++ /dev/null
@@ -1,42 +0,0 @@
-SUMMARY = "Serial Port Support for Python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d476d94926db6e0008a5b3860d1f5c0d"
-
-SRC_URI[md5sum] = "ed6183b15519a0ae96675e9c3330c69b"
-SRC_URI[sha256sum] = "6e2d401fdee0eab996cf734e67773a0143b932772ca8b42451440cfed942c627"
-
-inherit pypi
-
-PACKAGES =+ "${PN}-java ${PN}-osx ${PN}-win32 ${PN}-tools"
-
-FILES_${PN}-java = " \
- ${PYTHON_SITEPACKAGES_DIR}/serial/*java* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/__pycache__/*java* \
-"
-
-FILES_${PN}-osx = " \
- ${PYTHON_SITEPACKAGES_DIR}/serial/tools/*osx* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/tools/__pycache__/*osx* \
-"
-
-FILES_${PN}-win32 = " \
- ${PYTHON_SITEPACKAGES_DIR}/serial/*serialcli* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/__pycache__/*serialcli* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/*win32* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/__pycache__/*win32* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/tools/miniterm* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/tools/__pycache__/miniterm* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/tools/*windows* \
- ${PYTHON_SITEPACKAGES_DIR}/serial/tools/__pycache__/*windows* \
-"
-
-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 \
-"
diff --git a/meta-python/recipes-devtools/python/python-pyserial_3.4.bb b/meta-python/recipes-devtools/python/python-pyserial_3.4.bb
deleted file mode 100644
index fd852a2bf8..0000000000
--- a/meta-python/recipes-devtools/python/python-pyserial_3.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-pyserial.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-argparse"
diff --git a/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb b/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb
deleted file mode 100644
index 24759b5d6d..0000000000
--- a/meta-python/recipes-devtools/python/python-pysmi_0.2.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "SNMP SMI/MIB Parser"
-DESCRIPTION = "A pure-Python implementation of SNMP/SMI MIB \
- parsing and conversion library. Can produce PySNMP MIB modules. \
-"
-HOMEPAGE = "https://pypi.python.org/pypi/pysmi"
-SECTION = "devel/python"
-
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=d8b1bbadd635f187dee74d999a8c67b8"
-
-SRC_URI[md5sum] = "3b0f71e4e9f730d211f09d8ef5371140"
-SRC_URI[sha256sum] = "2a315cc3e556b3428372b69da663a24d2f0df9e9ab075b022cb133855f25aef7"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "python-ply"
diff --git a/meta-python/recipes-devtools/python/python-pysnmp_4.3.5.bb b/meta-python/recipes-devtools/python/python-pysnmp_4.3.5.bb
deleted file mode 100644
index 0b38d58e4a..0000000000
--- a/meta-python/recipes-devtools/python/python-pysnmp_4.3.5.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "A pure-Python SNMPv1/v2c/v3 library"
-DESCRIPTION = "SNMP v1/v2c/v3 engine and apps written in pure-Python. \
- Supports Manager/Agent/Proxy roles, scriptable MIBs, asynchronous \
- operation (asyncio, twisted, asyncore) and multiple transports.\
-"
-HOMEPAGE = "https://pypi.python.org/pypi/pysnmp"
-SECTION = "devel/python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=280606d9c18f200e03e0c247ac61475a"
-
-SRCNAME = "pysnmp"
-
-SRC_URI = "https://files.pythonhosted.org/packages/source/p/${SRCNAME}/${SRCNAME}-${PV}.tar.gz"
-
-SRC_URI[md5sum] = "387aaa23c168ccc0b59775cfdf519fc0"
-SRC_URI[sha256sum] = "38253fe95cea33f352fb36e85f3c2874043401724300c4888df74835161169d2"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit setuptools
-
-RDEPENDS_${PN} += "python-pycrypto \
- python-pyasn1 \
- python-pysmi \
-"
diff --git a/meta-python/recipes-devtools/python/python-pysocks.inc b/meta-python/recipes-devtools/python/python-pysocks.inc
deleted file mode 100644
index 53ec1b7d81..0000000000
--- a/meta-python/recipes-devtools/python/python-pysocks.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "A Python SOCKS client module"
-HOMEPAGE = "http://python-requests.org"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=1d457bcffb9661b45f799d4efee72f16"
-
-SRC_URI[md5sum] = "441c4e3bf5b042f7e70613cd871df26c"
-SRC_URI[sha256sum] = "3fe52c55890a248676fd69dc9e3c4e811718b777834bcaab7a8125cf9deac672"
-
-PYPI_PACKAGE = "PySocks"
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-shell \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pysocks_1.6.8.bb b/meta-python/recipes-devtools/python/python-pysocks_1.6.8.bb
deleted file mode 100644
index 8a24e4c49a..0000000000
--- a/meta-python/recipes-devtools/python/python-pysocks_1.6.8.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pysocks.inc
diff --git a/meta-python/recipes-devtools/python/python-pysqlite.inc b/meta-python/recipes-devtools/python/python-pysqlite.inc
deleted file mode 100644
index 884556570d..0000000000
--- a/meta-python/recipes-devtools/python/python-pysqlite.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-DESCRIPTION = "DB-API 2.0 interface for SQLite 3.x"
-HOMEPAGE = "http://github.com/ghaering/pysqlite"
-LICENSE = "Zlib"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=28ad4f115e06c88bd737372a453369d8"
-
-SRC_URI[md5sum] = "033f17b8644577715aee55e8832ac9fc"
-SRC_URI[sha256sum] = "17d3335863e8cf8392eea71add33dab3f96d060666fe68ab7382469d307f4490"
-
-inherit pypi
-
-DEPENDS += "${PYTHON_PN}-pip"
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-datetime \
- sqlite3 \
-"
-
-FILES_${PN}-doc += "${datadir}"
diff --git a/meta-python/recipes-devtools/python/python-pysqlite_2.8.3.bb b/meta-python/recipes-devtools/python/python-pysqlite_2.8.3.bb
deleted file mode 100644
index 95938f2b68..0000000000
--- a/meta-python/recipes-devtools/python/python-pysqlite_2.8.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pysqlite.inc
diff --git a/meta-python/recipes-devtools/python/python-pystache.inc b/meta-python/recipes-devtools/python/python-pystache.inc
deleted file mode 100644
index 6dbc99f530..0000000000
--- a/meta-python/recipes-devtools/python/python-pystache.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Python implementation of Mustache"
-HOMEPAGE = "https://github.com/defunkt/pystache"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=eb4417802c56384aac71b34505528a60"
-
-SRC_URI[md5sum] = "485885e67a0f6411d5252e69b20a35ca"
-SRC_URI[sha256sum] = "f7bbc265fb957b4d6c7c042b336563179444ab313fb93a719759111eabd3b85a"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-netserver \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pystache_0.5.4.bb b/meta-python/recipes-devtools/python/python-pystache_0.5.4.bb
deleted file mode 100644
index a455012471..0000000000
--- a/meta-python/recipes-devtools/python/python-pystache_0.5.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-pystache.inc
diff --git a/meta-python/recipes-devtools/python/python-pytest-runner.inc b/meta-python/recipes-devtools/python/python-pytest-runner.inc
deleted file mode 100644
index 7546743fb4..0000000000
--- a/meta-python/recipes-devtools/python/python-pytest-runner.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Invoke py.test as distutils command with dependency resolution"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a33f38bbf47d48c70fe0d40e5f77498e"
-
-SRC_URI[md5sum] = "8f8363a52bbabc4cedd5e239beb2ba11"
-SRC_URI[sha256sum] = "0f7c3a3cf5aead13f54baaa01ceb49e5ae92aba5d3ff1928e81e189c40bc6703"
-
-inherit pypi
-
-DEPENDS += " \
- ${PYTHON_PN}-setuptools-scm-native"
-
-RDEPENDS_${PN} = "${PYTHON_PN}-py ${PYTHON_PN}-setuptools ${PYTHON_PN}-debugger ${PYTHON_PN}-json \
- ${PYTHON_PN}-io"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pytest-runner_3.0.bb b/meta-python/recipes-devtools/python/python-pytest-runner_3.0.bb
deleted file mode 100644
index 1765a732d0..0000000000
--- a/meta-python/recipes-devtools/python/python-pytest-runner_3.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-inherit setuptools
-require python-pytest-runner.inc
-
-# Dependency only exists for python2
-RDEPENDS_${PN} += "python-argparse python-compiler"
diff --git a/meta-python/recipes-devtools/python/python-pytest.inc b/meta-python/recipes-devtools/python/python-pytest.inc
deleted file mode 100644
index 4c32dfb044..0000000000
--- a/meta-python/recipes-devtools/python/python-pytest.inc
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Simple powerful teting with python"
-HOMEPAGE = "http://pytest.org"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c39b24965f4aef64222cb35de9d47cc4"
-
-SRC_URI[md5sum] = "1b83a25d45fad893f430fc5031653c56"
-SRC_URI[sha256sum] = "117bad36c1a787e1a8a659df35de53ba05f9f3398fb9e4ac17e80ad5903eb8c5"
-
-SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch \
- file://pytest_version_fix.patch "
-
-inherit update-alternatives
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-attrs \
- ${PYTHON_PN}-debugger \
- ${PYTHON_PN}-doctest \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-pluggy \
- ${PYTHON_PN}-py \
- ${PYTHON_PN}-setuptools \
- ${PYTHON_PN}-six \
-"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-pytest:"
-
-ALTERNATIVE_${PN} += "py.test pytest"
-
-NATIVE_LINK_NAME[pytest] = "${bindir}/pytest"
-ALTERNATIVE_TARGET[pytest] = "${bindir}/pytest"
-
-ALTERNATIVE_LINK_NAME[py.test] = "${bindir}/py.test"
-ALTERNATIVE_TARGET[py.test] = "${bindir}/py.test"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch b/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch
deleted file mode 100644
index 06dfcdfc60..0000000000
--- a/meta-python/recipes-devtools/python/python-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 24a901fd17926e8e05be4ed2e01b0113a2e3a852 Mon Sep 17 00:00:00 2001
-From: Derek Straka <derek@asterius.io>
-Date: Tue, 19 Dec 2017 11:36:39 -0500
-Subject: [PATCH] [PATCH 1/1] setup.py: remove the setup_requires for
- setuptools-scm
-
-The setup_requires argument forces the download of the egg file for setuptools-scm
-during the do_compile phase. This download is incompatible with the typical fetch
-and mirror structure. The only usage of scm is the generation of the _version.py
-file and in the release tarball it is already correctly created
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Derek Straka <derek@asterius.io>
----
- setup.py | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/setup.py b/setup.py
-index 3eb38ef..1163202 100644
---- a/setup.py
-+++ b/setup.py
-@@ -82,7 +82,6 @@ def main():
- keywords="test unittest",
- cmdclass={'test': PyTest},
- # the following should be enabled for release
-- setup_requires=['setuptools-scm'],
- python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
- install_requires=install_requires,
- extras_require=extras_require,
---
-2.7.4
diff --git a/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch b/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch
deleted file mode 100644
index b373d93e8f..0000000000
--- a/meta-python/recipes-devtools/python/python-pytest/pytest_version_fix.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-Upstream-Status: Inappropriate (OE specific)
-
-python-pytest: remove fetch during do_compile phase
-commit: c974fbf9ebf185552ab65301e07af44f36517abf
-
-introduced an issue by making the version 0.0.0
-this fixes that
-
-Signed-off-by: Armin Kuster <akuster@mvista.com>
-
-Index: pytest-3.2.2/setup.py
-===================================================================
---- pytest-3.2.2.orig/setup.py
-+++ pytest-3.2.2/setup.py
-@@ -1,5 +1,6 @@
- import os
- import sys
-+import re
- import setuptools
- import pkg_resources
- from setuptools import setup, Command
-@@ -22,6 +23,18 @@ classifiers = [
- with open('README.rst') as fd:
- long_description = fd.read()
-
-+def read(*names, **kwargs):
-+ with open(os.path.join( *names), 'r') as fp:
-+ return fp.read()
-+
-+def find_version(*file_paths):
-+ version_file = read(*file_paths)
-+ version_match = re.search(r"^version = ['\']([^'\"]*)['\']",
-+ version_file, re.M)
-+
-+ if version_match:
-+ return version_match.group(1)
-+ raise RuntimeError("Unable to find version string.")
-
- def get_environment_marker_support_level():
- """
-@@ -59,9 +72,7 @@ def main():
- name='pytest',
- description='pytest: simple powerful testing with Python',
- long_description=long_description,
-- use_scm_version={
-- 'write_to': '_pytest/_version.py',
-- },
-+ version=find_version("_pytest", "_version.py"),
- url='http://pytest.org',
- license='MIT license',
- platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
diff --git a/meta-python/recipes-devtools/python/python-pytest_3.4.2.bb b/meta-python/recipes-devtools/python/python-pytest_3.4.2.bb
deleted file mode 100644
index 39e50aca97..0000000000
--- a/meta-python/recipes-devtools/python/python-pytest_3.4.2.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-inherit pypi setuptools
-require python-pytest.inc
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-argparse \
- ${PYTHON_PN}-compiler \
- ${PYTHON_PN}-funcsigs \
-"
-ALTERNATIVE_PRIORITY = "10"
diff --git a/meta-python/recipes-devtools/python/python-pytz.inc b/meta-python/recipes-devtools/python/python-pytz.inc
deleted file mode 100644
index 519487f491..0000000000
--- a/meta-python/recipes-devtools/python/python-pytz.inc
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "World timezone definitions, modern and historical"
-HOMEPAGE = "http://pythonhosted.org/pytz"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4878a915709225bceab739bdc2a18e8d"
-
-inherit pypi
-
-SRC_URI[md5sum] = "f054437920c895dd14a4509fabafe029"
-SRC_URI[sha256sum] = "c06425302f2cf668f1bba7a0a03f3c1d34d4ebeef2c72003da308b3947c7f749"
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-doctest \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pytz_2018.4.bb b/meta-python/recipes-devtools/python/python-pytz_2018.4.bb
deleted file mode 100755
index f2ffc596f8..0000000000
--- a/meta-python/recipes-devtools/python/python-pytz_2018.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pytz.inc
diff --git a/meta-python/recipes-devtools/python/python-pyudev.inc b/meta-python/recipes-devtools/python/python-pyudev.inc
deleted file mode 100644
index cb906c9ec9..0000000000
--- a/meta-python/recipes-devtools/python/python-pyudev.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "A libudev binding"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
-
-SRC_URI[md5sum] = "cf4d9db7d772622144ca1be6b5d9353b"
-SRC_URI[sha256sum] = "094b7a100150114748aaa3b70663485dd360457a709bfaaafe5a977371033f2b"
-
-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 \
-"
diff --git a/meta-python/recipes-devtools/python/python-pyudev_0.21.0.bb b/meta-python/recipes-devtools/python/python-pyudev_0.21.0.bb
deleted file mode 100644
index a3e15014a4..0000000000
--- a/meta-python/recipes-devtools/python/python-pyudev_0.21.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-require python-pyudev.inc
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-contextlib \
- ${PYTHON_PN}-subprocess \
-"
-
-inherit pypi setuptools
-
diff --git a/meta-python/recipes-devtools/python/python-pyusb.inc b/meta-python/recipes-devtools/python/python-pyusb.inc
deleted file mode 100644
index 30bbe85a91..0000000000
--- a/meta-python/recipes-devtools/python/python-pyusb.inc
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "PyUSB provides USB access on the Python language"
-HOMEPAGE = "http://pyusb.sourceforge.net/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=51691ed11cc2c7ae93e383f60ed49b0f"
-DEPENDS += "libusb1"
-
-SRC_URI[md5sum] = "862b56452c64948c787ad8ef9498590b"
-SRC_URI[sha256sum] = "4e9b72cc4a4205ca64fbf1f3fff39a335512166c151ad103e55c8223ac147362"
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-pyusb_1.0.2.bb b/meta-python/recipes-devtools/python/python-pyusb_1.0.2.bb
deleted file mode 100644
index 99a795b225..0000000000
--- a/meta-python/recipes-devtools/python/python-pyusb_1.0.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-pyusb.inc
diff --git a/meta-python/recipes-devtools/python/python-pyyaml.inc b/meta-python/recipes-devtools/python/python-pyyaml.inc
deleted file mode 100644
index 3fef0cacd4..0000000000
--- a/meta-python/recipes-devtools/python/python-pyyaml.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python support for YAML"
-HOMEPAGE = "http://www.pyyaml.org"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=6015f088759b10e0bc2bf64898d4ae17"
-DEPENDS = "libyaml ${PYTHON_PN}-cython-native ${PYTHON_PN}"
-
-PYPI_PACKAGE = "PyYAML"
-inherit pypi
-
-SRC_URI[md5sum] = "4c129761b661d181ebf7ff4eb2d79950"
-SRC_URI[sha256sum] = "592766c6303207a20efc445587778322d7f73b161bd994f227adaa341ba212ab"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb b/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb
deleted file mode 100644
index 5a4c92d88f..0000000000
--- a/meta-python/recipes-devtools/python/python-pyyaml_3.12.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyyaml.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch b/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
deleted file mode 100644
index 2dc3b73f9e..0000000000
--- a/meta-python/recipes-devtools/python/python-pyzmq/club-rpath-out.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 62df445..1fdbdeb 100755
---- a/setup.py
-+++ b/setup.py
-@@ -213,12 +213,6 @@ def settings_from_prefix(prefix=None, bundle_libzmq_dylib=False):
- pass
- # unused rpath args for OS X:
- # settings['extra_link_args'] = ['-Wl,-rpath','-Wl,$ORIGIN/..']
-- else:
-- settings['runtime_library_dirs'] += ['$ORIGIN/..']
-- elif sys.platform != 'darwin':
-- settings['runtime_library_dirs'] += [
-- os.path.abspath(x) for x in settings['library_dirs']
-- ]
-
- return settings
-
-@@ -592,8 +586,6 @@ class Configure(build_ext):
- pass
- # unused rpath args for OS X:
- # settings['extra_link_args'] = ['-Wl,-rpath','-Wl,$ORIGIN/../zmq']
-- else:
-- settings['runtime_library_dirs'] = [ os.path.abspath(pjoin('.', 'zmq')) ]
-
- line()
- info("Configure: Autodetecting ZMQ settings...")
diff --git a/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb b/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb
deleted file mode 100644
index b5baf82df1..0000000000
--- a/meta-python/recipes-devtools/python/python-pyzmq_14.7.0.bb
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Pyzmq provides Zero message queue access for the Python language"
-HOMEPAGE = "http://zeromq.org/bindings:python"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING.BSD;md5=11c65680f637c3df7f58bbc8d133e96e"
-DEPENDS = "zeromq"
-
-SRC_URI = "file://club-rpath-out.patch"
-SRC_URI[md5sum] = "87e3abb33af5794db5ae85c667bbf324"
-SRC_URI[sha256sum] = "77994f80360488e7153e64e5959dc5471531d1648e3a4bff14a714d074a38cc2"
-
-inherit pypi setuptools pkgconfig
-
-RDEPENDS_${PN} += "python-multiprocessing"
-
-FILES_${PN}-dbg =+ "${PYTHON_SITEPACKAGES_DIR}/zmq/backend/cython/.debug"
-
-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
-}
diff --git a/meta-python/recipes-devtools/python/python-redis.inc b/meta-python/recipes-devtools/python/python-redis.inc
deleted file mode 100644
index 1a65d73144..0000000000
--- a/meta-python/recipes-devtools/python/python-redis.inc
+++ /dev/null
@@ -1,12 +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[md5sum] = "048348d8cfe0b5d0bba2f4d835005c3b"
-SRC_URI[sha256sum] = "a22ca993cea2962dbb588f9f30d0015ac4afcc45bee27d3978c0dbe9e97c6c0f"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
-"
diff --git a/meta-python/recipes-devtools/python/python-redis_2.10.6.bb b/meta-python/recipes-devtools/python/python-redis_2.10.6.bb
deleted file mode 100644
index 6c3ca8516c..0000000000
--- a/meta-python/recipes-devtools/python/python-redis_2.10.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-redis.inc
diff --git a/meta-python/recipes-devtools/python/python-requests.inc b/meta-python/recipes-devtools/python/python-requests.inc
deleted file mode 100644
index 5d6dca5d3a..0000000000
--- a/meta-python/recipes-devtools/python/python-requests.inc
+++ /dev/null
@@ -1,24 +0,0 @@
-DESCRIPTION = "Python HTTP for Humans."
-HOMEPAGE = "http://python-requests.org"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=979d6a23b143e13ea0e5e3aa81248820"
-
-SRC_URI[md5sum] = "081412b2ef79bdc48229891af13f4d82"
-SRC_URI[sha256sum] = "9c443e7324ba5b85070c4a818ade28bfabedf16ea10206da1132edaa6dda237e"
-
-inherit pypi
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-ndg-httpsclient \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-pyasn1 \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-pysocks \
- ${PYTHON_PN}-urllib3 \
- ${PYTHON_PN}-chardet \
- ${PYTHON_PN}-idna \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-requests_2.18.4.bb b/meta-python/recipes-devtools/python/python-requests_2.18.4.bb
deleted file mode 100644
index 0d7a29f745..0000000000
--- a/meta-python/recipes-devtools/python/python-requests_2.18.4.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-requests.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-zlib"
diff --git a/meta-python/recipes-devtools/python/python-rfc3987.inc b/meta-python/recipes-devtools/python/python-rfc3987.inc
deleted file mode 100644
index 4615904119..0000000000
--- a/meta-python/recipes-devtools/python/python-rfc3987.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Parsing and validation of URIs (RFC 3986) and IRIs (RFC 3987)"
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=9;md5=2b723edf67b2f3088bc5e339b1ceda2d"
-
-SRC_URI[md5sum] = "aa108c7590902fe609c036864ecb7f84"
-SRC_URI[sha256sum] = "91a7826b0a26c246a5a91bef09c2c0809c713a689be689b9571e78a13f6557a4"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-rfc3987_1.3.7.bb b/meta-python/recipes-devtools/python/python-rfc3987_1.3.7.bb
deleted file mode 100644
index dcda5aa46e..0000000000
--- a/meta-python/recipes-devtools/python/python-rfc3987_1.3.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-rfc3987.inc
diff --git a/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc b/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc
deleted file mode 100644
index 9f07b6577a..0000000000
--- a/meta-python/recipes-devtools/python/python-robotframework-seriallibrary.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Robot Framework test library for serial connection"
-HOMEPAGE = "https://github.com/whosaysni/robotframework-seriallibrary"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
-
-SRC_URI[md5sum] = "b7c9565d54c30df7cd3f3c0e29adffa3"
-SRC_URI[sha256sum] = "256ad60fc0b7df4be44d82c302f5ed8fad4935cda99e4b45942e3c88179d1e19"
-
-SRC_URI = "https://files.pythonhosted.org/packages/ce/e1/1e337dc84a20b9d92d7b243d16bb9f6fc0084967eca7454228bb546efec7/robotframework-seriallibrary-0.3.1.tar.gz"
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-pyserial \
- ${PYTHON_PN}-robotframework \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-robotframework-seriallibrary_0.3.1.bb b/meta-python/recipes-devtools/python/python-robotframework-seriallibrary_0.3.1.bb
deleted file mode 100644
index 440f69cbf7..0000000000
--- a/meta-python/recipes-devtools/python/python-robotframework-seriallibrary_0.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-robotframework-seriallibrary.inc
diff --git a/meta-python/recipes-devtools/python/python-robotframework.inc b/meta-python/recipes-devtools/python/python-robotframework.inc
deleted file mode 100644
index 78bbbc6de0..0000000000
--- a/meta-python/recipes-devtools/python/python-robotframework.inc
+++ /dev/null
@@ -1,26 +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
-
-SRC_URI[md5sum] = "ea49a54b9d7e38302712194e85c37eaa"
-SRC_URI[sha256sum] = "2018f233568227f9af8c366f93e243a157b742f3baf5b649ecc9750ac0ee1ff7"
-
-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 \
-"
diff --git a/meta-python/recipes-devtools/python/python-robotframework_3.0.2.bb b/meta-python/recipes-devtools/python/python-robotframework_3.0.2.bb
deleted file mode 100644
index ff7dedb559..0000000000
--- a/meta-python/recipes-devtools/python/python-robotframework_3.0.2.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools
-require python-robotframework.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-zlib \
-"
diff --git a/meta-python/recipes-devtools/python/python-scrypt.inc b/meta-python/recipes-devtools/python/python-scrypt.inc
deleted file mode 100644
index 783d05b7e7..0000000000
--- a/meta-python/recipes-devtools/python/python-scrypt.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-DESCRIPTION = "Bindings for the scrypt key derivation function library"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/BSD-2-Clause;md5=8bef8e6712b1be5aa76af1ebde9d6378"
-HOMEPAGE="https://bitbucket.org/mhallin/py-scrypt/overview"
-
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-scrypt:"
-
-SRC_URI += "file://0001-py-scrypt-remove-the-hard-coded-include-paths.patch"
-
-SRC_URI[md5sum] = "ae8e3263aa31b040c1f9c7f1e1843a56"
-SRC_URI[sha256sum] = "f8239b2d47fa1d40bc27efd231dc7083695d10c1c2ac51a99380360741e0362d"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target += "\
-"
diff --git a/meta-python/recipes-devtools/python/python-scrypt_0.8.6.bb b/meta-python/recipes-devtools/python/python-scrypt_0.8.6.bb
deleted file mode 100644
index 9fbd00e049..0000000000
--- a/meta-python/recipes-devtools/python/python-scrypt_0.8.6.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit setuptools python-dir
-require python-scrypt.inc
-
diff --git a/meta-python/recipes-devtools/python/python-sdnotify.inc b/meta-python/recipes-devtools/python/python-sdnotify.inc
deleted file mode 100644
index ea0e575c47..0000000000
--- a/meta-python/recipes-devtools/python/python-sdnotify.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-HOMEPAGE = "https://github.com/bb4242/sdnotify"
-SUMMARY = "A pure Python implementation of systemd's service notification protocol (sd_notify)"
-
-DESCRIPTION = "\
- sdnotify is a pure Python implementation of the systemd sd_notify protocol. \
- This protocol can be used to inform systemd about service start-up completion, \
- watchdog events, and other service status changes. \
- Thus, this package can be used to write system services in Python that play nicely with systemd. \
- "
-
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cc572ccc4b18a4b7d13be5d01bc8213e"
-
-SRC_URI[md5sum] = "749ddca1c70be1697fecc443fb1fdb16"
-SRC_URI[sha256sum] = "73977fc746b36cc41184dd43c3fe81323e7b8b06c2bb0826c4f59a20c56bb9f1"
diff --git a/meta-python/recipes-devtools/python/python-sdnotify_0.3.2.bb b/meta-python/recipes-devtools/python/python-sdnotify_0.3.2.bb
deleted file mode 100644
index 39ae3fb0bd..0000000000
--- a/meta-python/recipes-devtools/python/python-sdnotify_0.3.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools pypi
-require python-sdnotify.inc
diff --git a/meta-python/recipes-devtools/python/python-selectors34_1.2.bb b/meta-python/recipes-devtools/python/python-selectors34_1.2.bb
deleted file mode 100644
index 69545ebbbc..0000000000
--- a/meta-python/recipes-devtools/python/python-selectors34_1.2.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Backport of the selectors module from Python 3.4"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=2fae0222c31d6c10488d4ab93a863af7"
-
-SRC_URI[md5sum] = "bc855a1c8839a811476c019dc07d92dd"
-SRC_URI[sha256sum] = "09f5066337f8a76fb5233f267873f89a27a17c10bf79575954894bb71686451c"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-six \
- "
diff --git a/meta-python/recipes-devtools/python/python-serpent.inc b/meta-python/recipes-devtools/python/python-serpent.inc
deleted file mode 100644
index 3f51bc29bd..0000000000
--- a/meta-python/recipes-devtools/python/python-serpent.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Serialization based on ast.literal_eval"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=acdea68f0e5a89eb6cbfdf54e38c356e"
-
-SRC_URI[md5sum] = "d0c50f1943ff86d830eb3fe40f6dc1e3"
-SRC_URI[sha256sum] = "b6855483d95a03b6aee358363684cd38a3a670240da5bc6da4253079cb07b8df"
-
-inherit pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- "
diff --git a/meta-python/recipes-devtools/python/python-serpent_1.24.bb b/meta-python/recipes-devtools/python/python-serpent_1.24.bb
deleted file mode 100644
index 0db3cf98aa..0000000000
--- a/meta-python/recipes-devtools/python/python-serpent_1.24.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-serpent.inc
diff --git a/meta-python/recipes-devtools/python/python-setuptools-scm.inc b/meta-python/recipes-devtools/python/python-setuptools-scm.inc
deleted file mode 100644
index eb66580a6e..0000000000
--- a/meta-python/recipes-devtools/python/python-setuptools-scm.inc
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "the blessed package to manage your versions by scm tags"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[md5sum] = "1b55f9cedde4a33ab5d286c5f30e86db"
-SRC_URI[sha256sum] = "e163e8a12d2121f77575773cfc2b5988275dc1f1d2541fdf780127c29dbbea9c"
-
-PYPI_PACKAGE = "setuptools_scm"
-inherit pypi
-
-RDEPENDS_${PN}_class-target = "${PYTHON_PN}-py ${PYTHON_PN}-setuptools ${PYTHON_PN}-debugger ${PYTHON_PN}-json"
-RDEPENDS_${PN}_class-native = "${PYTHON_PN}-setuptools-native"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.7.bb b/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.7.bb
deleted file mode 100644
index 64b36e3a01..0000000000
--- a/meta-python/recipes-devtools/python/python-setuptools-scm_1.15.7.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-setuptools-scm.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-argparse"
diff --git a/meta-python/recipes-devtools/python/python-sijax.inc b/meta-python/recipes-devtools/python/python-sijax.inc
deleted file mode 100644
index 9e46893d85..0000000000
--- a/meta-python/recipes-devtools/python/python-sijax.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-DESCRIPTION = "An easy to use AJAX library for Python based on jQuery.ajax"
-HOMEPAGE = "https://github.com/spantaleev/sijax-python"
-LICENSE = "BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=16e213d75641a392478df50cf0841903"
-
-PYPI_PACKAGE = "Sijax"
-inherit pypi \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python-sijax_0.3.2.bb b/meta-python/recipes-devtools/python/python-sijax_0.3.2.bb
deleted file mode 100644
index 4226c42355..0000000000
--- a/meta-python/recipes-devtools/python/python-sijax_0.3.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "An easy to use AJAX library for Python based on jQuery.ajax"
-HOMEPAGE = "https://github.com/spantaleev/sijax-python"
-LICENSE = "BSD-3-Clause"
-
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=16e213d75641a392478df50cf0841903"
-
-PYPI_PACKAGE = "Sijax"
-inherit setuptools
-require python-sijax.inc
-
-SRC_URI[sha256sum] = "11b062f4a8b2aad95c87e7c09e5daf5a6b0d0f08abf9efe5f91a0075c6be7c0d" \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python-simplejson.inc b/meta-python/recipes-devtools/python/python-simplejson.inc
deleted file mode 100644
index e28d51859e..0000000000
--- a/meta-python/recipes-devtools/python/python-simplejson.inc
+++ /dev/null
@@ -1,23 +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[md5sum] = "870bf6257465ce2ee8cad14e2394f7eb"
-SRC_URI[sha256sum] = "4c4ecf20e054716cc1e5a81cadc44d3f4027108d8dd0861d8b1e3bd7a32d4f0a"
-
-inherit pypi
-
-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* \
-"
diff --git a/meta-python/recipes-devtools/python/python-simplejson_3.13.2.bb b/meta-python/recipes-devtools/python/python-simplejson_3.13.2.bb
deleted file mode 100644
index 24ad9a9608..0000000000
--- a/meta-python/recipes-devtools/python/python-simplejson_3.13.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit setuptools
-require python-simplejson.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-re"
diff --git a/meta-python/recipes-devtools/python/python-singledispatch_3.4.0.3.bb b/meta-python/recipes-devtools/python/python-singledispatch_3.4.0.3.bb
deleted file mode 100644
index 44c9505b33..0000000000
--- a/meta-python/recipes-devtools/python/python-singledispatch_3.4.0.3.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "functools.singledispatch from Python 3.4"
-DESCRIPTION = "PEP 443 proposed to expose a mechanism in the functools standard library module \
-in Python 3.4 that provides a simple form of generic programming known as single-dispatch \
-generic functions. This library is a backport of this functionality to Python 2.6 - 3.3"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://README.rst;md5=ee3cd67264adc7eb07981f3644dc17dc"
-
-SRC_URI[md5sum] = "af2fc6a3d6cc5a02d0bf54d909785fcb"
-SRC_URI[sha256sum] = "5b06af87df13818d14f08a028e42f566640aef80805c3b50c5056b086e3c2b9c"
-
-inherit pypi setuptools
diff --git a/meta-python/recipes-devtools/python/python-six.inc b/meta-python/recipes-devtools/python/python-six.inc
deleted file mode 100644
index a5915c1160..0000000000
--- a/meta-python/recipes-devtools/python/python-six.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Python 2 and 3 compatibility library"
-HOMEPAGE = "http://pypi.python.org/pypi/six/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=35cec5bf04dd0820d0a18533ea7c774a"
-
-SRC_URI[md5sum] = "d12789f9baf7e9fb2524c0c64f1773f8"
-SRC_URI[sha256sum] = "70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9"
-
-do_compile_append() {
- ${PYTHON} setup.py -q bdist_egg --dist-dir ./
-}
-do_install_append() {
- install -m 0644 ${S}/*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/
-}
-
-RDEPENDS_${PN} += "${PYTHON_PN}-io"
-
-BBCLASSEXTEND = "native nativesdk"
-
diff --git a/meta-python/recipes-devtools/python/python-six_1.11.0.bb b/meta-python/recipes-devtools/python/python-six_1.11.0.bb
deleted file mode 100644
index 9075745d74..0000000000
--- a/meta-python/recipes-devtools/python/python-six_1.11.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-six.inc
diff --git a/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb b/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb
deleted file mode 100644
index 8081416ee4..0000000000
--- a/meta-python/recipes-devtools/python/python-slip-dbus_0.6.1.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Convenience functions for dbus services in Python 2.x"
-HOMEPAGE = "http://nphilipp.fedorapeople.org/python-slip/"
-DESCRIPTION = "\
-The Simple Library for Python 2.x packages contain miscellaneous code for \
-convenience, extension and workaround purposes. \
-\
-This package provides slip.dbus.service.Object, which is a dbus.service.Object \
-derivative that ends itself after a certain time without being used and/or if \
-there are no clients anymore on the message bus, as well as convenience \
-functions and decorators for integrating a dbus service with PolicyKit."
-
-SECTION = "devel/python"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
-SRCNAME = "python-slip"
-
-SRC_URI = "https://github.com/nphilipp/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2"
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit setuptools
-
-SRC_URI[md5sum] = "a6d8ee96245fc21785d4c1c062c85f2f"
-SRC_URI[sha256sum] = "bc897f1ab6f5b4989f85548799aaeb84fde67bbba18e40341bfe1d7885c2fd9a"
-
-do_compile_prepend() {
- sed -e 's/@VERSION@/${PV}/g' setup.py.in > setup.py
-}
diff --git a/meta-python/recipes-devtools/python/python-smbus.inc b/meta-python/recipes-devtools/python/python-smbus.inc
deleted file mode 100644
index f472a57f43..0000000000
--- a/meta-python/recipes-devtools/python/python-smbus.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Set of i2c tools for linux - Python module"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://smbusmodule.c;beginline=1;endline=17;md5=fa24df321a520ff8e10f203425ab9fa8"
-PR = "r1"
-
-SRC_URI = "${KERNELORG_MIRROR}/software/utils/i2c-tools/i2c-tools-${PV}.tar.gz "
-SRC_URI[md5sum] = "d92a288d70f306d3895e3a7e9c14c9aa"
-SRC_URI[sha256sum] = "5b60daf6f011de0acb61de57dba62f2054bb39f19961d67e0c91610f071ca403"
-
-DEPENDS += "i2c-tools"
-
-S = "${WORKDIR}/i2c-tools-${PV}/py-smbus/"
diff --git a/meta-python/recipes-devtools/python/python-smbus_4.0.bb b/meta-python/recipes-devtools/python/python-smbus_4.0.bb
deleted file mode 100644
index 1b95778877..0000000000
--- a/meta-python/recipes-devtools/python/python-smbus_4.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit distutils
-require python-smbus.inc
diff --git a/meta-python/recipes-devtools/python/python-snakefood_1.4.bb b/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
deleted file mode 100644
index e4a6d767dc..0000000000
--- a/meta-python/recipes-devtools/python/python-snakefood_1.4.bb
+++ /dev/null
@@ -1,51 +0,0 @@
-SUMMARY = "Dependency graphing for Python"
-DESCRIPTION = " Generate dependency graphs from Python code. This \
-dependency tracker package has a few distinguishing characteristics \
-\
- * It uses the AST to parse the Python files. This is very reliable, \
- it always runs.\
- * No module is loaded. Loading modules to figure out dependencies is \
- almost always problem, because a lot of codebases run initialization \
- code in the global namespace, which often requires additional setup. \
- Snakefood is guaranteed not to have this problem (it just runs, no \
- matter what).\
- * It works on a set of files, i.e. you do not have to specify a single \
- script, you can select a directory (package or else) or a set of files.\
- It finds all the Python files recursively automatically.\
- * Automatic/no configuration: your PYTHONPATH is automatically adjusted \
- to include the required package roots. It figures out the paths that \
- are required from the files/directories given as input. You should not \
- have to setup ANYTHING.\
- * It does not have to automatically 'follow' dependencies between modules,\
- i.e. by default it only considers the files and directories you specify \
- on the command-line and their immediate dependencies. It also has an \
- option to automatically include only the dependencies within the \
- packages of the files you specify.\
- * It follows the UNIX philosophy of small programs that do one thing well:\
- it consists of a few simple programs whose outputs you combine via \
- pipes. Graphing dependencies always requires the user to filter and \
- cluster the filenames, so this is appropriate. You can combine it with \
- your favourite tools, grep, sed, etc.\
-\
-A problem with dependency trackers that run code is that they are unreliable, \
-due to the dynamic nature of Python (the presence of imports within function \
-calls and __import__ hooks makes it almost impossible to always do the right \
-thing). This script aims at being right 99% of the time, and we think that \
-given the trade-offs, 99% is good enough for 99% of the uses.\
-"
-AUTHOR = "Martin Blais <blais@furius.ca>"
-HOMEPAGE = "http://furius.ca/snakefood"
-LICENSE = "GPL-2.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-SRC_URI[md5sum] = "56c88667a33d8909b0aabf2ab6903bdf"
-SRC_URI[sha256sum] = "295784668032254e7391ca99ba7060edd3ae4eca1a330ac11627b18ab5923b77"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = " python-logging python-compiler python-shell"
-# the above modules do not have a -native counterpart
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
-
diff --git a/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb b/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb
deleted file mode 100644
index c5af48dd3c..0000000000
--- a/meta-python/recipes-devtools/python/python-snimpy_0.8.12.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Interactive SNMP tool"
-DESCRIPTION = "Snimpy is a Python-based tool providing a simple interface to build SNMP query"
-HOMEPAGE = "https://pypi.python.org/pypi/snimpy"
-SECTION = "devel/python"
-
-DEPENDS += "libsmi python-cffi-native python-vcversioner-native"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://docs/license.rst;md5=7c53ab2d1240828625c3e093d049d4f4"
-
-SRC_URI[md5sum] = "6d016b6356db432e6a87ad708eb8fcb6"
-SRC_URI[sha256sum] = "04efcfba867ffb0e10cc8d7f93a553ceb6bdf2ee34e49762749028a2c76096c1"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "python-cffi \
- python-pycparser \
- python-pysnmp \
- python-setuptools \
-"
diff --git a/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb b/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb
deleted file mode 100644
index a1253112c8..0000000000
--- a/meta-python/recipes-devtools/python/python-sparts_0.7.3.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Library for rapid service prototyping with minimal boilerplate"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=0c1554636a564da3baf037ac652fc831"
-
-SRC_URI[md5sum] = "6aa8815652c6f5e5e8e5b2ac1813dd87"
-SRC_URI[sha256sum] = "b25707c349079a7c888155e7fdfd8394df2da9aca9c8eee4e205528cb16b7662"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} = "\
- python-subprocess \
- python-six \
- python-argparse \
- python-re \
- python-shell \
- python-threading \
- python-logging \
- python-unixadmin \
- python-distutils \
- python-daemonize \
- python-futures \
-"
diff --git a/meta-python/recipes-devtools/python/python-speaklater.inc b/meta-python/recipes-devtools/python/python-speaklater.inc
deleted file mode 100644
index 94fa8a6c0f..0000000000
--- a/meta-python/recipes-devtools/python/python-speaklater.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-DESCRIPTION = "Media asset management for Python, with glue code for various frameworks"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b810770075a29bf44b96607440e7c801"
-
-SRC_URI[md5sum] = "e8d5dbe36e53d5a35cff227e795e8bbf"
-SRC_URI[sha256sum] = "59fea336d0eed38c1f0bf3181ee1222d0ef45f3a9dd34ebe65e6bfffdd6a65a9"
-
-PYPI_PACKAGE = "speaklater"
-
diff --git a/meta-python/recipes-devtools/python/python-speaklater_1.3.bb b/meta-python/recipes-devtools/python/python-speaklater_1.3.bb
deleted file mode 100644
index 56fd55577d..0000000000
--- a/meta-python/recipes-devtools/python/python-speaklater_1.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-speaklater.inc
diff --git a/meta-python/recipes-devtools/python/python-spidev.inc b/meta-python/recipes-devtools/python/python-spidev.inc
deleted file mode 100644
index 1b93763d57..0000000000
--- a/meta-python/recipes-devtools/python/python-spidev.inc
+++ /dev/null
@@ -1,17 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=54bdb9022ebb75ab68399cdaab97da60"
-SRCNAME = "spidev"
-
-SRC_URI[md5sum] = "f601676f1bb48b9aa3b3897f95216365"
-SRC_URI[sha256sum] = "09d2b5122f0dd79910713a11f9a0020f71537224bf829916def4fffc0ea59456"
-
-
-inherit pypi
diff --git a/meta-python/recipes-devtools/python/python-sqlalchemy.inc b/meta-python/recipes-devtools/python/python-sqlalchemy.inc
deleted file mode 100644
index 0c191ae7d5..0000000000
--- a/meta-python/recipes-devtools/python/python-sqlalchemy.inc
+++ /dev/null
@@ -1,20 +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=b1c412c9d8d1ce018f7a9374407c22bb"
-
-PYPI_PACKAGE = "SQLAlchemy"
-inherit pypi
-
-SRC_URI[md5sum] = "03db1c8f8ae911977c0bf3950a4c9c21"
-SRC_URI[sha256sum] = "6b55ec379c11ad696f9371ce8e0de93c7f21134323f56a56a1b0d8fbef17013c"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-logging \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-threading \
-"
diff --git a/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.17.bb b/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.17.bb
deleted file mode 100644
index 53c8fecf70..0000000000
--- a/meta-python/recipes-devtools/python/python-sqlalchemy_1.1.17.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-sqlalchemy.inc
diff --git a/meta-python/recipes-devtools/python/python-strict-rfc3339.inc b/meta-python/recipes-devtools/python/python-strict-rfc3339.inc
deleted file mode 100644
index dca9ea93ea..0000000000
--- a/meta-python/recipes-devtools/python/python-strict-rfc3339.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Strict, simple, lightweight RFC3339 function.s"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a"
-
-SRC_URI[md5sum] = "4d9b635b4df885bc37bc1189d66c9abc"
-SRC_URI[sha256sum] = "5cad17bedfc3af57b399db0fed32771f18fc54bbd917e85546088607ac5e1277"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-strict-rfc3339_0.7.bb b/meta-python/recipes-devtools/python/python-strict-rfc3339_0.7.bb
deleted file mode 100644
index b01ea99a3f..0000000000
--- a/meta-python/recipes-devtools/python/python-strict-rfc3339_0.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-strict-rfc3339.inc
diff --git a/meta-python/recipes-devtools/python/python-subprocess32_3.2.7.bb b/meta-python/recipes-devtools/python/python-subprocess32_3.2.7.bb
deleted file mode 100644
index f43706923a..0000000000
--- a/meta-python/recipes-devtools/python/python-subprocess32_3.2.7.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A backport of the subprocess module from Python 3.2 for use on 2.x"
-DESCRIPTION = "This is a backport of the subprocess standard library module \
-from Python 3.2 - 3.5 for use on Python 2. It includes bugfixes and some new \
-features. On POSIX systems it is guaranteed to be reliable when used in \
-threaded applications. It includes timeout support from Python 3.3 and the \
-run() API from 3.5 but otherwise matches 3.2's API."
-LICENSE = "Python-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=d3e62baa8fb96b11a59d3f2cd335d5c0"
-
-SRC_URI[md5sum] = "824c801e479d3e916879aae3e9c15e16"
-SRC_URI[sha256sum] = "1e450a4a4c53bf197ad6402c564b9f7a53539385918ef8f12bdf430a61036590"
-
-inherit pypi setuptools
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-systemd.inc b/meta-python/recipes-devtools/python/python-systemd.inc
deleted file mode 100644
index 5be5de092a..0000000000
--- a/meta-python/recipes-devtools/python/python-systemd.inc
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Python interface for libsystemd"
-HOMEPAGE = "https://github.com/systemd/python-systemd"
-LICENSE = "LGPLv2.1+"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4fbd65380cdd255951079008b364516c"
-
-PYPI_PACKAGE = "systemd-python"
-DEPENDS += "systemd (<=234)"
-RDEPENDS_${PN} += "systemd ${PYTHON_PN}-syslog ${PYTHON_PN}-logging"
-REQUIRED_DISTRO_FEATURES = "systemd"
-inherit pypi distro_features_check
-
-SRC_URI[md5sum] = "5071ea5bcb976186e92a3f5e75df221d"
-SRC_URI[sha256sum] = "fd0e44bf70eadae45aadc292cb0a7eb5b0b6372cd1b391228047d33895db83e7"
-
-# allow for common patches for python- and python3-systemd
-FILESEXTRAPATHS_prepend := "${THISDIR}/python-systemd:"
-
-SRC_URI_append_libc-musl = " file://0001-Provide-implementation-of-strndupa-for-musl.patch"
diff --git a/meta-python/recipes-devtools/python/python-systemd_234.bb b/meta-python/recipes-devtools/python/python-systemd_234.bb
deleted file mode 100644
index 80f2900776..0000000000
--- a/meta-python/recipes-devtools/python/python-systemd_234.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-systemd.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb b/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb
deleted file mode 100644
index 46a20a5eda..0000000000
--- a/meta-python/recipes-devtools/python/python-tornado-redis_2.4.18.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Tornado-Redis is an asyncronous Redis client for the Tornado Web Server"
-DESCRIPTION = "Tornado-Redis is a Redis client that uses Tornado's native 'tornado-gen' interface. \
-It can be used alongside redis-py in Tornado applications: \
-tornado-redis to subscribe to Pub/Sub notifications and for blocking commands (such as BLPOP, BRPOP, BRPOPLPUSH); \
-redis-py for other commands."
-HOMEPAGE = "https://github.com/leporo/tornado-redis"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=ca307e8f37b5fa7f8dbbec033f7db7de"
-
-SRC_URI[md5sum] = "1c7ec0f645d15400871141c1149e6934"
-SRC_URI[sha256sum] = "8fd3b324158291ad5fb7f5f8dc2e8763b2895556bd2a44f2dd721b703c669046"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "python-tornado"
-
-RDEPENDS_${PN}-test += "${PN} python-tornado"
diff --git a/meta-python/recipes-devtools/python/python-tornado.inc b/meta-python/recipes-devtools/python/python-tornado.inc
deleted file mode 100644
index 29d10da6bd..0000000000
--- a/meta-python/recipes-devtools/python/python-tornado.inc
+++ /dev/null
@@ -1,25 +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://setup.py;beginline=3;endline=15;md5=8d463fc66ff8f275354ffe88d1896e12"
-
-SRC_URI[md5sum] = "a5fc7fd4aea94867609a491ce65786f1"
-SRC_URI[sha256sum] = "6d14e47eab0e15799cf3cdcc86b0b98279da68522caace2bd7ce644287685f0a"
-
-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"
-
-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/python-tornado_4.5.3.bb b/meta-python/recipes-devtools/python/python-tornado_4.5.3.bb
deleted file mode 100644
index 193a4db7d2..0000000000
--- a/meta-python/recipes-devtools/python/python-tornado_4.5.3.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-inherit pypi setuptools
-require python-tornado.inc
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-backports-abc \
- ${PYTHON_PN}-backports-ssl \
- ${PYTHON_PN}-singledispatch \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-twisted.inc b/meta-python/recipes-devtools/python/python-twisted.inc
deleted file mode 100644
index 6480ad54f9..0000000000
--- a/meta-python/recipes-devtools/python/python-twisted.inc
+++ /dev/null
@@ -1,247 +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=8a9c2fbfcba7d70504e3ba545e1820ed"
-
-SRC_URI[md5sum] = "6dbedb918f0c7288a4c670f59393ecf8"
-SRC_URI[sha256sum] = "0da1a7e35d5fcae37bc9c7978970b5feb3bc82822155b8654ec63925c05af75c"
-
-PYPI_PACKAGE = "Twisted"
-PYPI_PACKAGE_EXT = "tar.bz2"
-
-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}-src \
- ${PN}-bin \
-"
-
-DEPENDS += " \
- ${PYTHON_PN}-incremental-native \
-"
-
-RDEPENDS_${PN} = "\
- ${PN}-bin \
- ${PN}-core \
- ${PN}-conch \
- ${PN}-mail \
- ${PN}-names \
- ${PN}-runner \
- ${PN}-web \
- ${PN}-words \
-"
-
-RDEPENDS_${PN}-core = "${PYTHON_PN}-core ${PYTHON_PN}-zopeinterface ${PYTHON_PN}-incremental ${PYTHON_PN}-constantly ${PYTHON_PN}-hyperlink ${PYTHON_PN}-automat"
-RDEPENDS_${PN}-test = "${PN}"
-RDEPENDS_${PN}-conch = "${PN}-core ${PN}-protocols"
-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"
-RDEPENDS_${PN}-dbg = "${PN}"
-
-ALLOW_EMPTY_${PN} = "1"
-FILES_${PN} = ""
-
-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/ \
-"
-
-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}-dbg += " \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/*/.debug \
-${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/.debug \
-"
-
-FILES_${PN}-doc += " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/python/_pydoctortemplates/ \
-"
-
-RDEPENDS_{PN}-src = "${PN}"
-FILES_${PN}-src = " \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/*.py \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*.py \
- ${libdir}/${PYTHON_DIR}/site-packages/twisted/*/*/*.py \
-"
diff --git a/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb b/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb
deleted file mode 100644
index 2be1709d04..0000000000
--- a/meta-python/recipes-devtools/python/python-twisted_17.9.0.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools
-require python-twisted.inc
-
-RDEPENDS_${PN}-core += "${PYTHON_PN}-contextlib"
diff --git a/meta-python/recipes-devtools/python/python-twofish.inc b/meta-python/recipes-devtools/python/python-twofish.inc
deleted file mode 100644
index 79ab285e55..0000000000
--- a/meta-python/recipes-devtools/python/python-twofish.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Bindings for the Twofish implementation by Niels Ferguson"
-DESCRIPTION = "Bindings for the Twofish implementation by Niels Ferguson\
- libtwofish-dev."
-HOMEPAGE = "http://github.com/keybase/python-twofish"
-LICENSE = "BSD-3-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=33a63abf6d7567b1689d8ce69f00e43b"
-
-SRC_URI[md5sum] = "d7d22f16dc4ffa0e3ae2200654033abe"
-SRC_URI[sha256sum] = "b09d8bb50d33b23ff34cafb1f9209f858f752935c6a5c901efb92a41acb830fa"
-
-inherit pypi
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-twofish_0.3.0.bb b/meta-python/recipes-devtools/python/python-twofish_0.3.0.bb
deleted file mode 100644
index 85b021594b..0000000000
--- a/meta-python/recipes-devtools/python/python-twofish_0.3.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-twofish.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-typing.inc b/meta-python/recipes-devtools/python/python-typing.inc
deleted file mode 100644
index a0ee6b24b9..0000000000
--- a/meta-python/recipes-devtools/python/python-typing.inc
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Simple Python module defined by PEP 484."
-HOMEPAGE = "https://github.com/python/typing"
-LICENSE = "PSF"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=64fc2b30b67d0a8423c250e0386ed72f"
-
-SRC_URI[md5sum] = "5b2ade08d83be488f17b5fe587c27c74"
-SRC_URI[sha256sum] = "d400a9344254803a2368533e4533a4200d21eb7b6b729c173bc38201a74db3f2"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-typing_3.6.4.bb b/meta-python/recipes-devtools/python/python-typing_3.6.4.bb
deleted file mode 100644
index 04ce063c98..0000000000
--- a/meta-python/recipes-devtools/python/python-typing_3.6.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-typing.inc
diff --git a/meta-python/recipes-devtools/python/python-ujson.inc b/meta-python/recipes-devtools/python/python-ujson.inc
deleted file mode 100644
index c3d0bfeeda..0000000000
--- a/meta-python/recipes-devtools/python/python-ujson.inc
+++ /dev/null
@@ -1,15 +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"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=88df8e78b9edfd744953862179f2d14e"
-
-SRC_URI[md5sum] = "42f77b0cce686dfa4da2e68480b1dd24"
-SRC_URI[sha256sum] = "f66073e5506e91d204ab0c614a148d5aa938bdbf104751be66f8ad7a222f5f86"
-
-inherit pypi
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-numbers \
- "
diff --git a/meta-python/recipes-devtools/python/python-ujson_1.35.bb b/meta-python/recipes-devtools/python/python-ujson_1.35.bb
deleted file mode 100644
index b3c6ae66fc..0000000000
--- a/meta-python/recipes-devtools/python/python-ujson_1.35.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-ujson.inc
diff --git a/meta-python/recipes-devtools/python/python-unidiff.inc b/meta-python/recipes-devtools/python/python-unidiff.inc
deleted file mode 100644
index fc1206201b..0000000000
--- a/meta-python/recipes-devtools/python/python-unidiff.inc
+++ /dev/null
@@ -1,14 +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[md5sum] = "47f669d7273541fec45e4cc0fba8d8e9"
-SRC_URI[sha256sum] = "9c9ab5fb96b6988b4cd5def6b275492442c04a570900d33aa6373105780025bc"
-
-inherit pypi
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-io \
-"
diff --git a/meta-python/recipes-devtools/python/python-unidiff_0.5.5.bb b/meta-python/recipes-devtools/python/python-unidiff_0.5.5.bb
deleted file mode 100644
index bdb3d27f9a..0000000000
--- a/meta-python/recipes-devtools/python/python-unidiff_0.5.5.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-unidiff.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-urllib3.inc b/meta-python/recipes-devtools/python/python-urllib3.inc
deleted file mode 100644
index cf79926a60..0000000000
--- a/meta-python/recipes-devtools/python/python-urllib3.inc
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "Python HTTP library with thread-safe connection pooling, file post support, sanity friendly, and more"
-HOMEPAGE = "https://github.com/shazow/urllib3"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ea114851ad9a8c311aac8728a681a067"
-
-SRC_URI[md5sum] = "0da7bed3fe94bf7dc59ae37885cc72f7"
-SRC_URI[sha256sum] = "cc44da8e1145637334317feebd728bd869a35285b93cbb4cca2577da7e62db4f"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-certifi \
- ${PYTHON_PN}-cryptography \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-idna \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-pyopenssl \
- ${PYTHON_PN}-threading \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-urllib3_1.22.bb b/meta-python/recipes-devtools/python/python-urllib3_1.22.bb
deleted file mode 100644
index 6c81f1db9b..0000000000
--- a/meta-python/recipes-devtools/python/python-urllib3_1.22.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-urllib3.inc
diff --git a/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb b/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb
deleted file mode 100644
index cd6fa8dff6..0000000000
--- a/meta-python/recipes-devtools/python/python-vcversioner_2.16.0.0.bb
+++ /dev/null
@@ -1,25 +0,0 @@
-SUMMARY = "Python vcversioner, automagically update the project's version"
-HOMEPAGE = "https://github.com/habnabit/vcversioner"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=827a7a91a8d20d3c666b665cd96db8e3"
-
-SRC_URI[md5sum] = "aab6ef5e0cf8614a1b1140ed5b7f107d"
-SRC_URI[sha256sum] = "dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b"
-
-inherit pypi setuptools
-
-do_compile_append() {
- ${PYTHON} setup.py -q bdist_egg --dist-dir ./
-}
-
-do_install_append() {
- install -m 0644 ${S}/vcversioner*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/
-}
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-subprocess \
- "
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python-visitor.inc b/meta-python/recipes-devtools/python/python-visitor.inc
deleted file mode 100644
index 8c2288cf0a..0000000000
--- a/meta-python/recipes-devtools/python/python-visitor.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-SUMMARY = "A tiny pythonic visitor implementation."
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
-
-SRC_URI[md5sum] = "94a024ed0ec1b02b4497c15267d319ca"
-SRC_URI[sha256sum] = "2c737903b2b6864ebc6167eef7cf3b997126f1aa94bdf590f90f1436d23e480a"
diff --git a/meta-python/recipes-devtools/python/python-visitor_0.1.3.bb b/meta-python/recipes-devtools/python/python-visitor_0.1.3.bb
deleted file mode 100644
index eee25a543b..0000000000
--- a/meta-python/recipes-devtools/python/python-visitor_0.1.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-visitor.inc
diff --git a/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb b/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb
deleted file mode 100644
index d2f343eb1a..0000000000
--- a/meta-python/recipes-devtools/python/python-vobject_0.9.5.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Python package for parsing and generating vCard and vCalendar files"
-HOMEPAGE = "http://vobject.skyhouseconsulting.com/"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE-2.0.txt;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI[md5sum] = "aa629d6ae95db5edfd5b2402eb1073cb"
-SRC_URI[sha256sum] = "0f56cae196303d875682b9648b4bb43ffc769d2f0f800958e0a506af867b1243"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-dateutil \
- ${PYTHON_PN}-numbers \
- "
diff --git a/meta-python/recipes-devtools/python/python-wcwidth.inc b/meta-python/recipes-devtools/python/python-wcwidth.inc
deleted file mode 100644
index 1429450bb6..0000000000
--- a/meta-python/recipes-devtools/python/python-wcwidth.inc
+++ /dev/null
@@ -1,8 +0,0 @@
-SUMMARY = "Library for building powerful interactive command lines in Python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=11fba47286258744a6bc6e43530c32a1"
-
-SRC_URI[md5sum] = "b3b6a0a08f0c8a34d1de8cf44150a4ad"
-SRC_URI[sha256sum] = "3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb b/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb
deleted file mode 100644
index ef107c16a1..0000000000
--- a/meta-python/recipes-devtools/python/python-wcwidth_0.1.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-wcwidth.inc
diff --git a/meta-python/recipes-devtools/python/python-webcolors.inc b/meta-python/recipes-devtools/python/python-webcolors.inc
deleted file mode 100644
index a02bbbbedf..0000000000
--- a/meta-python/recipes-devtools/python/python-webcolors.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Simple Python module for working with HTML/CSS color definitions."
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=197add016087e6884a012b0f185d44ad"
-
-SRC_URI[md5sum] = "40890db38b2a856e526a568864025fe6"
-SRC_URI[sha256sum] = "030562f624467a9901f0b455fef05486a88cfb5daa1e356bd4aacea043850b59"
-
-RDEPENDS_${PN}_class-target = "\
- ${PYTHON_PN}-stringold \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python-webcolors_1.8.1.bb b/meta-python/recipes-devtools/python/python-webcolors_1.8.1.bb
deleted file mode 100644
index a0b6708caf..0000000000
--- a/meta-python/recipes-devtools/python/python-webcolors_1.8.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-webcolors.inc
diff --git a/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb b/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb
deleted file mode 100644
index 7a6437dc53..0000000000
--- a/meta-python/recipes-devtools/python/python-webdav_0.1.2.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-DESCRIPTION = "This project aims to provide an object-oriented Python WebDAV client-side library\
- based on Python`s standard httplib and Greg Stein`s davlib.\
- The client shall fully support RFCs 4918 (basic specification),\
- 3744 (access control), and 3253 (versioning)."
-SECTION = "devel/python"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/webdav/WebdavClient.py;endline=15;md5=a1520fad859feb7b0d7f05277bc6ce48"
-HOMEPAGE = "http://sourceforge.net/projects/pythonwebdavlib/"
-SRCNAME = "Python_WebDAV_Library"
-DEPENDS = "python"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/pythonwebdavlib/Python%20WebDAV%20Library%20-%20${PV}/${SRCNAME}-${PV}.zip"
-SRC_URI[md5sum] = "8e49e0ecc5b4327c4f752a544ee10e1a"
-SRC_URI[sha256sum] = "72c029ad1e25de950f59c2f1812d009d2c1691b70e4b5b09f1af9006e8fd5f23"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit distutils
-
diff --git a/meta-python/recipes-devtools/python/python-webencodings.inc b/meta-python/recipes-devtools/python/python-webencodings.inc
deleted file mode 100644
index 34ca7066b2..0000000000
--- a/meta-python/recipes-devtools/python/python-webencodings.inc
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Character encoding aliases for legacy web content"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
-
-SRC_URI[md5sum] = "32f6e261d52e57bf7e1c4d41546d15b8"
-SRC_URI[sha256sum] = "b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
-
-inherit pypi
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-json \
-"
diff --git a/meta-python/recipes-devtools/python/python-webencodings_0.5.1.bb b/meta-python/recipes-devtools/python/python-webencodings_0.5.1.bb
deleted file mode 100644
index 5de2ed1d7b..0000000000
--- a/meta-python/recipes-devtools/python/python-webencodings_0.5.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-webencodings.inc
diff --git a/meta-python/recipes-devtools/python/python-werkzeug.inc b/meta-python/recipes-devtools/python/python-werkzeug.inc
deleted file mode 100644
index c04a4e0c4f..0000000000
--- a/meta-python/recipes-devtools/python/python-werkzeug.inc
+++ /dev/null
@@ -1,47 +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"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=ed9a0b7c0254616d72dadb98b293ef1b"
-
-SRC_URI[md5sum] = "6d20b5be2d245be4ac7706cc390d130c"
-SRC_URI[sha256sum] = "c3fd7a7d41976d9f44db327260e263132466836cef6f91512889ed60ad26557c"
-
-PYPI_PACKAGE = "Werkzeug"
-
-CLEANBROKEN = "1"
-
-PACKAGES =+ "${PN}-tests"
-FILES_${PN}-tests+= " \
- ${PYTHON_SITEPACKAGES_DIR}/werkzeug/test* \
- ${PYTHON_SITEPACKAGES_DIR}/werkzeug/__pycache__/test* \
- ${PYTHON_SITEPACKAGES_DIR}/werkzeug/contrib/test* \
- ${PYTHON_SITEPACKAGES_DIR}/werkzeug/contrib/__pycache__/test* \
-"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-difflib \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-html \
- ${PYTHON_PN}-io \
- ${PYTHON_PN}-json \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pkgutil \
- ${PYTHON_PN}-pprint \
- ${PYTHON_PN}-threading \
- ${PYTHON_PN}-unixadmin \
-"
-
-RDEPENDS_${PN}-tests = " \
- ${PN} \
- ${PYTHON_PN}-unittest \
-"
diff --git a/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb b/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb
deleted file mode 100644
index db41161b35..0000000000
--- a/meta-python/recipes-devtools/python/python-werkzeug_0.14.1.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-inherit pypi setuptools
-require python-werkzeug.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
- ${PYTHON_PN}-zlib \
-"
diff --git a/meta-python/recipes-devtools/python/python-whoosh.inc b/meta-python/recipes-devtools/python/python-whoosh.inc
deleted file mode 100644
index a4ca5dcd48..0000000000
--- a/meta-python/recipes-devtools/python/python-whoosh.inc
+++ /dev/null
@@ -1,24 +0,0 @@
-SUMMARY = "Fast, pure-Python full text indexing, search, and spell checking library."
-DESCRIPTION = "\
-Whoosh is a fast, featureful full-text indexing and searching library \
-implemented in pure Python. Programmers can use it to easily add search \
-functionality to their applications and websites. Every part of how \
-Whoosh works can be extended or replaced to meet your needs exactly."
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05303186defc6141143629961c7c8a60"
-
-SRC_URI[md5sum] = "893433e9c0525ac043df33e6e04caab2"
-SRC_URI[sha256sum] = "e0857375f63e9041e03fedd5b7541f97cf78917ac1b6b06c1fcc9b45375dda69"
-
-PYPI_PACKAGE = "Whoosh"
-PYPI_PACKAGE_EXT = "zip"
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-email \
- ${PYTHON_PN}-multiprocessing \
- ${PYTHON_PN}-netclient \
- ${PYTHON_PN}-numbers \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-shell \
- ${PYTHON_PN}-stringold \
-"
diff --git a/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb b/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb
deleted file mode 100644
index 3b4291f40d..0000000000
--- a/meta-python/recipes-devtools/python/python-whoosh_2.7.4.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools
-require python-whoosh.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-subprocess \
-"
diff --git a/meta-python/recipes-devtools/python/python-wrapt.inc b/meta-python/recipes-devtools/python/python-wrapt.inc
deleted file mode 100644
index c85548fb4f..0000000000
--- a/meta-python/recipes-devtools/python/python-wrapt.inc
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "A Python module for decorators, wrappers and monkey patching."
-HOMEPAGE = "http://wrapt.readthedocs.org/"
-LICENSE = "BSD"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=61c27930012e86b3dc7e36f92e83c4d8"
-
-SRC_URI[md5sum] = "e1346f31782d50401f81c2345b037076"
-SRC_URI[sha256sum] = "d4d560d479f2c21e1b5443bbd15fe7ec4b37fe7e53d335d3b9b0a7b1226fe3c6"
-
-inherit pypi
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-stringold \
- ${PYTHON_PN}-threading \
-"
diff --git a/meta-python/recipes-devtools/python/python-wrapt_1.10.11.bb b/meta-python/recipes-devtools/python/python-wrapt_1.10.11.bb
deleted file mode 100644
index bb42476574..0000000000
--- a/meta-python/recipes-devtools/python/python-wrapt_1.10.11.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools
-require python-wrapt.inc
diff --git a/meta-python/recipes-devtools/python/python-wtforms.inc b/meta-python/recipes-devtools/python/python-wtforms.inc
deleted file mode 100644
index 916697fcfc..0000000000
--- a/meta-python/recipes-devtools/python/python-wtforms.inc
+++ /dev/null
@@ -1,16 +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"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=c459accc90c6ed6a94878c8fe0535be2"
-
-SRC_URI[md5sum] = "6938a541fafd1a1ae2f6b9b88588eef2"
-SRC_URI[sha256sum] = "ffdf10bd1fa565b8233380cb77a304cd36fd55c73023e91d4b803c96bc11d46f"
-
-PYPI_PACKAGE = "WTForms"
-PYPI_PACKAGE_EXT = "zip"
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-netserver \
- ${PYTHON_PN}-numbers \
- "
diff --git a/meta-python/recipes-devtools/python/python-wtforms_2.1.bb b/meta-python/recipes-devtools/python/python-wtforms_2.1.bb
deleted file mode 100644
index fdb015e8a5..0000000000
--- a/meta-python/recipes-devtools/python/python-wtforms_2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-wtforms.inc
diff --git a/meta-python/recipes-devtools/python/python-xlrd.inc b/meta-python/recipes-devtools/python/python-xlrd.inc
deleted file mode 100644
index d1ab05d4f0..0000000000
--- a/meta-python/recipes-devtools/python/python-xlrd.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files"
-DESCRIPTION = "Extract data from Excel spreadsheets (.xls and .xlsx,\
- versions 2.0 onwards) on any platform. Pure Python (2.6, 2.7, 3.2+). \
-Strong support for Excel dates. Unicode-aware."
-HOMEPAGE = "http://www.python-excel.org/"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=08bd814936237b6e1355e6370b24b2c1"
-
-SRC_URI[md5sum] = "b85c9916ac755cad489a9005f5a0d390"
-SRC_URI[sha256sum] = "8a21885513e6d915fe33a8ee5fdfa675433b61405ba13e2a69e62ee36828d7e2"
-
-RDEPENDS_${PN} += "${PYTHON_PN}-compression ${PYTHON_PN}-io ${PYTHON_PN}-pprint ${PYTHON_PN}-shell"
diff --git a/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb b/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb
deleted file mode 100644
index 3a4d709eb4..0000000000
--- a/meta-python/recipes-devtools/python/python-xlrd_1.1.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-xlrd.inc
diff --git a/meta-python/recipes-devtools/python/python-xstatic-font-awesome.inc b/meta-python/recipes-devtools/python/python-xstatic-font-awesome.inc
deleted file mode 100644
index d13cb83f6e..0000000000
--- a/meta-python/recipes-devtools/python/python-xstatic-font-awesome.inc
+++ /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"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=313d021898694cd2b0ea6508bdfe51a2"
-
-PYPI_PACKAGE = "XStatic-Font-Awesome"
-
-inherit pypi
-
-SRC_URI[md5sum] = "141a0e9a7e21e82f922573a00ae0c166"
-SRC_URI[sha256sum] = "e01fb480caaa7c7963dcb3328a4700e631bef6070db0e8b685816d220e685f6c"
-
-DEPENDS += " \
- ${PYTHON_PN}-xstatic \
- ${PYTHON_PN}-pip \
- "
diff --git a/meta-python/recipes-devtools/python/python-xstatic-font-awesome_4.7.0.0.bb b/meta-python/recipes-devtools/python/python-xstatic-font-awesome_4.7.0.0.bb
deleted file mode 100644
index 41e85f4a9a..0000000000
--- a/meta-python/recipes-devtools/python/python-xstatic-font-awesome_4.7.0.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-xstatic-font-awesome.inc
diff --git a/meta-python/recipes-devtools/python/python-xstatic.inc b/meta-python/recipes-devtools/python/python-xstatic.inc
deleted file mode 100644
index f7c7db99af..0000000000
--- a/meta-python/recipes-devtools/python/python-xstatic.inc
+++ /dev/null
@@ -1,14 +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=36a1e7eaa71e1bd07b8d2247839f228e"
-
-PYPI_PACKAGE = "XStatic"
-
-SRC_URI[md5sum] = "7064b5ea7fd1ee990e0ae0538301d9bc"
-SRC_URI[sha256sum] = "0ec93d7c66ebb9e0d31b664753437dc8634cb66e13310cb47c9eb1e0bc66d726"
-
-DEPENDS += " \
- ${PYTHON_PN}-pip \
- "
diff --git a/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb b/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb
deleted file mode 100644
index 8073037044..0000000000
--- a/meta-python/recipes-devtools/python/python-xstatic_1.0.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-xstatic.inc
diff --git a/meta-python/recipes-devtools/python/python-yappi.inc b/meta-python/recipes-devtools/python/python-yappi.inc
deleted file mode 100644
index 651ce7731b..0000000000
--- a/meta-python/recipes-devtools/python/python-yappi.inc
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Yet Another Python Profiler"
-HOMEPAGE = "http://yappi.googlecode.com/"
-
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=6b131c3041637f6a5175a43112dde05c"
-
-SRC_URI[md5sum] = "dc56240575c99938a924eaeb7c0d8beb"
-SRC_URI[sha256sum] = "5f657129e1b9b952379ffbc009357d0dcdb58c50f3bfe88ffbb992e4b27b263c"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-pickle \
- ${PYTHON_PN}-threading \
- "
diff --git a/meta-python/recipes-devtools/python/python-yappi_0.98.bb b/meta-python/recipes-devtools/python/python-yappi_0.98.bb
deleted file mode 100644
index a3bdde5c2d..0000000000
--- a/meta-python/recipes-devtools/python/python-yappi_0.98.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-yappi.inc
-inherit setuptools
diff --git a/meta-python/recipes-devtools/python/python-zopeinterface.inc b/meta-python/recipes-devtools/python/python-zopeinterface.inc
deleted file mode 100644
index 1fab2cc7fd..0000000000
--- a/meta-python/recipes-devtools/python/python-zopeinterface.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Interface definitions for Zope products"
-LICENSE = "ZPL-2.1"
-LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e54fd776274c1b7423ec128974bd9d46"
-
-SRC_URI[md5sum] = "8700a4f527c1203b34b10c2b4e7a6912"
-SRC_URI[sha256sum] = "d6d26d5dfbfd60c65152938fcb82f949e8dada37c041f72916fef6621ba5c5ce"
-
-PYPI_PACKAGE = "zope.interface"
-
-PACKAGES =. "${PN}-test "
-
-RPROVIDES_${PN} += "zope-interfaces"
-
-RDEPENDS_${PN}_class-target += "${PYTHON_PN}-datetime"
-
-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/python-zopeinterface_4.4.3.bb b/meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb
deleted file mode 100644
index 1bdfd4d376..0000000000
--- a/meta-python/recipes-devtools/python/python-zopeinterface_4.4.3.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools
-require python-zopeinterface.inc
-
-RDEPENDS_${PN}-test += "python-unittest python-doctest"
diff --git a/meta-python/recipes-devtools/python/python3-absl_1.4.0.bb b/meta-python/recipes-devtools/python/python3-absl_1.4.0.bb
new file mode 100644
index 0000000000..bbea9cacb2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-absl_1.4.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] = "d2c244d01048ba476e7c080bd2c6df5e141d211de80223460d5b3b8a2a58433d"
+
+PYPI_PACKAGE = "absl-py"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
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..f9fdb6aeb6
--- /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} += "\
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..64599d43c3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiodns_3.0.0.bb
@@ -0,0 +1,17 @@
+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-aiofiles_23.1.0.bb b/meta-python/recipes-devtools/python/python3-aiofiles_23.1.0.bb
new file mode 100644
index 0000000000..c06f09fb6a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiofiles_23.1.0.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] = "edd247df9a19e0db16534d4baaf536d6609a43e1de5401d7a4c1c148753a1635"
+
+PYPI_PACKAGE = "aiofiles"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-asyncio \
+"
diff --git a/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb b/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb
new file mode 100644
index 0000000000..68cbb265f4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiohttp-jinja2_1.5.1.bb
@@ -0,0 +1,15 @@
+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] = "8d149b2a57d91f794b33a394ea5bc66b567f38c74a5a6a9477afc2450f105c01"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-jinja2 \
+ ${PYTHON_PN}-aiohttp \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-aiohttp_3.8.4.bb b/meta-python/recipes-devtools/python/python3-aiohttp_3.8.4.bb
new file mode 100644
index 0000000000..926801dc74
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiohttp_3.8.4.bb
@@ -0,0 +1,27 @@
+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] = "bf2e1a9162c1e441bf805a1fd166e249d574ca04e03b34f97e2928769e91ab5c"
+
+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-aiohue_4.6.2.bb b/meta-python/recipes-devtools/python/python3-aiohue_4.6.2.bb
new file mode 100644
index 0000000000..b9256ca204
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aiohue_4.6.2.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] = "069af6bb0a7d34d566538af57cc10fb691ee04f844204e4f67d95a57f0b91a46"
+
+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-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.3.1.bb b/meta-python/recipes-devtools/python/python3-aiosignal_1.3.1.bb
new file mode 100644
index 0000000000..1463287d0a
--- /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} = "\
+ ${PYTHON_PN}-frozenlist \
+"
diff --git a/meta-python/recipes-devtools/python/python3-alembic_0.9.8.bb b/meta-python/recipes-devtools/python/python3-alembic_0.9.8.bb
deleted file mode 100644
index e248fe7ce9..0000000000
--- a/meta-python/recipes-devtools/python/python3-alembic_0.9.8.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-alembic.inc
diff --git a/meta-python/recipes-devtools/python/python3-alembic_1.11.1.bb b/meta-python/recipes-devtools/python/python3-alembic_1.11.1.bb
new file mode 100644
index 0000000000..feb2c419bc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-alembic_1.11.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] = "6a810a6b012c88b33458fceb869aef09ac75d6ace5291915ba7fae44de372c01"
+
+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-ansi2html_1.8.0.bb b/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb
new file mode 100644
index 0000000000..8dcd7b0d5d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ansi2html_1.8.0.bb
@@ -0,0 +1,20 @@
+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-ansicolors/run-ptest b/meta-python/recipes-devtools/python/python3-ansicolors/run-ptest
new file mode 100644
index 0000000000..7dc3ef32be
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ansicolors/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..0e32443992
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ansicolors_1.1.8.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Add ANSI colors and decorations to your strings"
+
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=aef5566ac4fede9815eccf124c281317"
+
+SRC_URI[sha256sum] = "99f94f5e3348a0bcd43c82e5fc4414013ccc19d70bd939ad71e0133ce9c372e0"
+
+PYPI_PACKAGE_EXT = "zip"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test/test.py ${D}${PTEST_PATH}/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.0.bb b/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.0.bb
new file mode 100644
index 0000000000..870152c74f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-antlr4-runtime_4.13.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "ANTLR runtime for Python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b38bac4871765ce562806c44d2f18cf1"
+
+SRC_URI[sha256sum] = "0d5454928ae40c8a6b653caa35046cd8492c8743b5fbc22ff4009099d074c7ae"
+
+PYPI_PACKAGE = "antlr4-python3-runtime"
+
+inherit pypi python_setuptools_build_meta
+
+BBCLASSEXTEND = "nativesdk native"
diff --git a/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb b/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb
deleted file mode 100644
index 199e225b23..0000000000
--- a/meta-python/recipes-devtools/python/python3-anyjson_0.3.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-anyjson.inc
diff --git a/meta-python/recipes-devtools/python/python3-appdirs/run-ptest b/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
new file mode 100644
index 0000000000..5287f3e035
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-appdirs/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest | sed -e 's/\[100%\]//g' | sed -e 's/\.\.F/: FAIL/g' | sed -e 's/\.\.\./: PASS/g'
diff --git a/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb b/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb
deleted file mode 100644
index d24e1d8b6a..0000000000
--- a/meta-python/recipes-devtools/python/python3-appdirs_1.4.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-appdirs.inc
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
new file mode 100644
index 0000000000..95d1ac05ac
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-appdirs_1.4.4.bb
@@ -0,0 +1,23 @@
+SUMMARY = "A small Python module for determining appropriate + platform-specific dirs, e.g. a user data dir."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=31625363c45eb0c67c630a2f73e438e4"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+SRC_URI[md5sum] = "d6bca12613174185dd9abc8a29f4f012"
+SRC_URI[sha256sum] = "7d5d0167b2b1ba821647616af46a749d1c653740dd0d2415100fe26e27afdf41"
+
+inherit pypi setuptools3 ptest
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+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-apply-defaults_0.1.6.bb b/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.6.bb
new file mode 100644
index 0000000000..6bf61cfcd3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-apply-defaults_0.1.6.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Apply values to optional params"
+HOMEPAGE = "https://github.com/bcb/apply_defaults"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c89120516900f96f4c60d35fdc4c3f15"
+
+PYPI_PACKAGE = "apply_defaults"
+
+SRC_URI[sha256sum] = "3773de3491b94c0fe44310f1a85888389cdc71e1544b343bce0d2bd6991acea5"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-core"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb b/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.bb
new file mode 100644
index 0000000000..504e7e2ebd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-argcomplete_3.1.1.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] = "6c4c563f14f01440aaffa3eae13441c5db2357b5eec639abe7c0b15334627dff"
+
+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-argexec_1.0.3.bb b/meta-python/recipes-devtools/python/python3-argexec_1.0.3.bb
new file mode 100644
index 0000000000..017a7e954b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-argexec_1.0.3.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Expose your Python functions to the command line with one easy step!"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea70b07c354e36056bd35e17c9c3face"
+
+inherit pypi setuptools3
+
+SRC_URI[md5sum] = "448635948823309312ea9f70b30b6c2d"
+SRC_URI[sha256sum] = "61f9ae9322e38ae64996848421afbdb018239a99c4e796fe064f172d6c98c3bf"
+
+DEPENDS += "python3-setuptools-scm-native"
+RDEPENDS:${PN} += "\
+ python3-dynamic-dispatch \
+ python3-typeguard \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-argh_0.28.1.bb b/meta-python/recipes-devtools/python/python3-argh_0.28.1.bb
new file mode 100644
index 0000000000..2b1cb3ed81
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-argh_0.28.1.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 \
+ file://README.rst;beginline=261;endline=275;md5=a8bf3475df7e0d575a53d04c83d5e090"
+
+SRC_URI[sha256sum] = "b2093086f0e809a3ecc24b64a2145309ee8f56d034936cd59e57c558a357329d"
+
+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.2.bb b/meta-python/recipes-devtools/python/python3-arpeggio_2.0.2.bb
new file mode 100644
index 0000000000..1a48a88c29
--- /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 += "\
+ ${PYTHON_PN}-pytest-runner-native \
+ ${PYTHON_PN}-wheel-native \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-asciitree_0.3.3.bb b/meta-python/recipes-devtools/python/python3-asciitree_0.3.3.bb
new file mode 100644
index 0000000000..833732bd47
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asciitree_0.3.3.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Draws ASCII trees."
+HOMEPAGE = "http://github.com/mbr/asciitree"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a985ccb0df374f2a8cab75010bf8db73"
+
+SRC_URI[md5sum] = "2570b31e563b69da1aff54509db8ac6a"
+SRC_URI[sha256sum] = "4aa4b9b649f85e3fcb343363d97564aa1fb62e249677f2e18a96765145cc0f6e"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-asgiref/run-ptest b/meta-python/recipes-devtools/python/python3-asgiref/run-ptest
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asgiref/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb b/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb
new file mode 100644
index 0000000000..c9081c8cbb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asgiref_3.7.2.bb
@@ -0,0 +1,29 @@
+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] = "9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed"
+
+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-asn1crypto_0.24.0.bb b/meta-python/recipes-devtools/python/python3-asn1crypto_0.24.0.bb
deleted file mode 100644
index cfbe57520c..0000000000
--- a/meta-python/recipes-devtools/python/python3-asn1crypto_0.24.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit setuptools3
-require python-asn1crypto.inc
-
-RDEPENDS_${PN}_class-target += " \
- ${PYTHON_PN}-shell \
-"
diff --git a/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest b/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
new file mode 100644
index 0000000000..8d2017d39c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aspectlib/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
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/0001-rtrip.py-convert-to-python3.patch b/meta-python/recipes-devtools/python/python3-astor/0001-rtrip.py-convert-to-python3.patch
new file mode 100644
index 0000000000..009951864a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-astor/0001-rtrip.py-convert-to-python3.patch
@@ -0,0 +1,36 @@
+From 1a477968593a14ee9c8597c1ed4e8b61a7731e15 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 23 Dec 2020 02:23:13 +0000
+Subject: [PATCH] rtrip.py: convert to python3
+
+As Python 2 reached end of life (EOL), so convert rtrip.py to python3.
+
+Upstream-Status: Submitted [https://github.com/berkerpeksag/astor/pull/192]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ astor/rtrip.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/astor/rtrip.py b/astor/rtrip.py
+index 8b108e7..e2e30a6 100755
+--- a/astor/rtrip.py
++++ b/astor/rtrip.py
+@@ -1,4 +1,4 @@
+-#! /usr/bin/env python
++#! /usr/bin/env python3
+ # -*- coding: utf-8 -*-
+ """
+ Part of the astor library for Python AST manipulation.
+@@ -160,7 +160,7 @@ def usage(msg):
+
+ Usage:
+
+- python -m astor.rtrip [readonly] [<source>]
++ python3 -m astor.rtrip [readonly] [<source>]
+
+
+ This utility tests round-tripping of Python source to AST
+--
+2.26.2
+
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
new file mode 100644
index 0000000000..54e43e3754
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-astor_0.8.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Easy manipulation of Python source via the AST."
+HOMEPAGE = "https://github.com/berkerpeksag/astor"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=561205fdabc3ec52cae2d30815b8ade7"
+
+SRC_URI = "git://github.com/berkerpeksag/astor.git;branch=master;protocol=https \
+ file://0001-rtrip.py-convert-to-python3.patch \
+"
+SRCREV ?= "c7553c79f9222e20783fe9bd8a553f932e918072"
+
+inherit setuptools3
+PIP_INSTALL_PACKAGE = "astor"
+
+S = "${WORKDIR}/git"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-astroid_1.6.3.bb b/meta-python/recipes-devtools/python/python3-astroid_1.6.3.bb
deleted file mode 100644
index 6e32c288f2..0000000000
--- a/meta-python/recipes-devtools/python/python3-astroid_1.6.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-astroid.inc
diff --git a/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb b/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb
new file mode 100644
index 0000000000..7325eb13f3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-astroid_2.15.6.bb
@@ -0,0 +1,35 @@
+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] = "903f024859b7c7687d7a7f3a3f73b17301f8e42dfd9cc9df9d4418172d3e2dbd"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "\
+ ${PYTHON_PN}-pytest-runner-native \
+ ${PYTHON_PN}-wheel-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-asttokens_2.2.1.bb b/meta-python/recipes-devtools/python/python3-asttokens_2.2.1.bb
new file mode 100644
index 0000000000..7c7753034b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asttokens_2.2.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] = "4622110b2a6f30b77e1473affaa97e711bc2f07d3f10848420ff1898edbe94f3"
+
+DEPENDS += "python3-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..ca61490fac
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-async-timeout_4.0.0.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] = "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
new file mode 100644
index 0000000000..b1d19ce619
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-async-timeout_4.0.2.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] = "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-asyncinotify_4.0.2.bb b/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.2.bb
new file mode 100644
index 0000000000..08dc77bd17
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asyncinotify_4.0.2.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 = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6ec941a1cd6616454970d03cb9c9e8f8"
+
+SRC_URI[sha256sum] = "bcac19425b1b418bbbc4d31193ea3c39e24343cd7ddff2074ae7b599f1a04829"
+
+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
new file mode 100644
index 0000000000..02ace02a3d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asyncio-glib_0.1.bb
@@ -0,0 +1,13 @@
+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 features_check
+
+REQUIRED_DISTRO_FEATURES = "gobject-introspection-data"
+
+SRC_URI[md5sum] = "60153055e76ceaacdfbaeafb03d61dd9"
+SRC_URI[sha256sum] = "fe3ceb2ba5f541330c07ca1bd7ae792468d625bad1acf5354a3a7a0b9fd87521"
+
+RDEPENDS:${PN} += "python3-asyncio python3-pygobject"
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
new file mode 100644
index 0000000000..040e70940b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-asyncio-throttle_1.0.2.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Simple, easy-to-use throttler for asyncio."
+HOMEPAGE = "https://github.com/hallazzang/asyncio-throttle"
+SECTION = "devel/python"
+LICENSE = "MIT"
+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-attr_0.3.1.bb b/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb
deleted file mode 100644
index e80648c8c3..0000000000
--- a/meta-python/recipes-devtools/python/python3-attr_0.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-attr.inc
diff --git a/meta-python/recipes-devtools/python/python3-attr_0.3.2.bb b/meta-python/recipes-devtools/python/python3-attr_0.3.2.bb
new file mode 100644
index 0000000000..0a77009e11
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-attr_0.3.2.bb
@@ -0,0 +1,8 @@
+DESCRIPTION = "Simple decorator to set attributes of target function or class in a DRY way"
+HOMEPAGE = "https://github.com/denis-ryzhkov/attr"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=02c113fb406eab0537c0cf4334f57c07"
+
+SRC_URI[sha256sum] = "1ceebca768181cdcce9827611b1d728e592be5d293911539ea3d0b0bfa1146f4"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-attrs_17.4.0.bb b/meta-python/recipes-devtools/python/python3-attrs_17.4.0.bb
deleted file mode 100644
index c34693f506..0000000000
--- a/meta-python/recipes-devtools/python/python3-attrs_17.4.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-attrs.inc
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..54c8f23fc3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-autobahn_23.6.2.bb
@@ -0,0 +1,23 @@
+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} += " \
+ ${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-automat_0.6.0.bb b/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb
deleted file mode 100644
index 2c747643ff..0000000000
--- a/meta-python/recipes-devtools/python/python3-automat_0.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-automat.inc
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..bb29fbd4a6
--- /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 += "${PYTHON_PN}-setuptools-scm-native"
+
+PYPI_PACKAGE = "Automat"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-attrs \
+ ${PYTHON_PN}-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-awesomeversion_23.5.0.bb b/meta-python/recipes-devtools/python/python3-awesomeversion_23.5.0.bb
new file mode 100644
index 0000000000..bcd959cb27
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-awesomeversion_23.5.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] = "a505558316010d2d10d487226f79c1157204af00fa462fdcf948e347011dd491"
+
+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/0001-setup.py-Use-setuptools-instead-of-distutils.patch b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python/0001-setup.py-Use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..9bc8b36f36
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python/0001-setup.py-Use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,29 @@
+From 36f8106535150b970c75e8b8456ebc5a7d1dbdb3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 2 Mar 2022 11:11:01 -0800
+Subject: [PATCH] setup.py: Use setuptools instead of distutils
+
+distutils is deprecated and will be gone in 3.12+
+
+Upstream-Status: Submitted [https://github.com/aws/aws-iot-device-sdk-python/pull/305]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 3846bae..d0c2b8d 100644
+--- a/setup.py
++++ b/setup.py
+@@ -3,7 +3,7 @@ sys.path.insert(0, 'AWSIoTPythonSDK')
+ import AWSIoTPythonSDK
+ currentVersion = AWSIoTPythonSDK.__version__
+
+-from distutils.core import setup
++from setuptools import setup
+ setup(
+ name = 'AWSIoTPythonSDK',
+ packages=['AWSIoTPythonSDK', 'AWSIoTPythonSDK.core',
+--
+2.35.1
+
diff --git a/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.3.1.bb b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.3.1.bb
deleted file mode 100644
index c43649dbfe..0000000000
--- a/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-aws-iot-device-sdk-python.inc
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
new file mode 100644
index 0000000000..35d061f5e6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-aws-iot-device-sdk-python_1.5.2.bb
@@ -0,0 +1,44 @@
+DESCRIPTION = "SDK for connecting to AWS IoT using Python."
+HOMEPAGE = "https://github.com/aws/aws-iot-device-sdk-python"
+LICENSE = "Apache-2.0 & (EPL-1.0 | EDL-1.0)"
+LICENSE:${PN}-examples = "Apache-2.0"
+LIC_FILES_CHKSUM = "\
+ file://LICENSE.txt;md5=9ac49901b833e769c7d6f21e8dbd7b30 \
+ file://AWSIoTPythonSDK/core/protocol/paho/client.py;endline=14;md5=5a3c8a1a4bb71bd934f450ecff972ad9 \
+"
+SRCREV = "0ea1a2d013529839fc1e7448d19dadff25d581b4"
+SRC_URI = "git://github.com/aws/aws-iot-device-sdk-python;branch=master;protocol=https \
+ file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \
+ "
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+PYPI_PACKAGE = "AWSIoTPythonSDK"
+
+do_install:append() {
+ install -d -m0755 ${D}${datadir}/${BPN}/examples
+ cp --preserve=mode,timestamps -R ${S}/samples/* ${D}${datadir}/${BPN}/examples
+ # this requires the full blown AWS Python SDK
+ rm -r ${D}${datadir}/${BPN}/examples/basicPubSub
+}
+
+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 \
+"
+RDEPENDS:${PN}-examples += "${PN}"
+
+FILES:${PN}-examples = "${datadir}/${BPN}/examples"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-babel_2.5.3.bb b/meta-python/recipes-devtools/python/python3-babel_2.5.3.bb
deleted file mode 100644
index 0715d59f42..0000000000
--- a/meta-python/recipes-devtools/python/python3-babel_2.5.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-babel.inc
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
new file mode 100644
index 0000000000..434ab57c50
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-backcall_0.2.0.bb
@@ -0,0 +1,12 @@
+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"
+
+PYPI_PACKAGE = "backcall"
+
+SRC_URI[md5sum] = "1f4c9a370c78743406296f48e56e8821"
+SRC_URI[sha256sum] = "5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e"
+
+inherit pypi python_flit_core
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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-backports-functools-lru-cache/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-bandit_1.7.5.bb b/meta-python/recipes-devtools/python/python3-bandit_1.7.5.bb
new file mode 100644
index 0000000000..bccdf284e5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bandit_1.7.5.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Security oriented static analyser for python code."
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=34400b68072d710fecd0a2940a0d1658"
+
+SRC_URI[sha256sum] = "bdfc739baa03b880c2d15d0431b31c658ffc348e907fe197e54e0389dd59e11e"
+
+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 \
+ "
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb b/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb
deleted file mode 100644
index d2ec9e386c..0000000000
--- a/meta-python/recipes-devtools/python/python3-bcrypt_3.1.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-bcrypt.inc
diff --git a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.2.bb b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.2.bb
new file mode 100644
index 0000000000..7eb2d7c345
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.12.2.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] = "492bbc69dca35d12daac71c4db1bfff0c876c00ef4a2ffacce226d4638eb72da"
+
+inherit pypi python_hatchling
+
+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.6.0.bb b/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.6.0.bb
deleted file mode 100644
index d98df11e3d..0000000000
--- a/meta-python/recipes-devtools/python/python3-beautifulsoup4_4.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-beautifulsoup4.inc
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
new file mode 100644
index 0000000000..1dcc7d218e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-behave_1.2.6.bb
@@ -0,0 +1,18 @@
+SUMMARY = "A behavior-driven development framework, Python style"
+HOMEPAGE = "https://github.com/behave/behave"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d950439e8ea6ed233e4288f5e1a49c06"
+
+PV .= "+git${SRCREV}"
+SRCREV = "9520119376046aeff73804b5f1ea05d87a63f370"
+SRC_URI += "git://github.com/behave/behave;branch=master;protocol=https"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-parse-type \
+ ${PYTHON_PN}-setuptools \
+ ${PYTHON_PN}-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..7adcb68324
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-betamax/0001-Drop-ptests-fixtures-and-recorde_modes.patch
@@ -0,0 +1,333 @@
+From 0e0b63ae80df5d7849b2e1c5ab9a668e8378b5e8 Mon Sep 17 00:00:00 2001
+From: Zhixiong Chi <zhixiong.chi@windriver.com>
+Date: Tue, 28 Mar 2023 06:05:45 +0000
+Subject: [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>
+---
+ tests/integration/test_fixtures.py | 60 -----------
+ tests/integration/test_record_modes.py | 132 -------------------------
+ tests/unit/test_fixtures.py | 94 ------------------
+ 3 files changed, 286 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 58c8846..0000000
+--- a/tests/integration/test_record_modes.py
++++ /dev/null
+@@ -1,132 +0,0 @@
+-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)
+- 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 387d9ce..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.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.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.35.5
+
diff --git a/meta-python/recipes-devtools/python/python3-betamax/run-ptest b/meta-python/recipes-devtools/python/python3-betamax/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-betamax/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..feb9ab3e27
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-betamax_0.8.1.bb
@@ -0,0 +1,28 @@
+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[md5sum] = "b8182d43a200fc126a3bf7555626f964"
+SRC_URI[sha256sum] = "5bf004ceffccae881213fb722f34517166b84a34919b92ffc14d1dbd050b71c2"
+
+inherit pypi setuptools3 ptest
+
+RDEPENDS:${PN} += " \
+ python3-requests \
+ python3-unittest \
+"
+
+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-bidict_0.22.1.bb b/meta-python/recipes-devtools/python/python3-bidict_0.22.1.bb
new file mode 100644
index 0000000000..1ed0af81a1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bidict_0.22.1.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=858e74278ef3830d46481172ae03c819"
+
+SRC_URI[sha256sum] = "1e0f7f74e4860e6d0943a05d4134c63a2fad86f3d4732fb265bd79e4e856d81d"
+
+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..0b7d97fccb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-binwalk_2.3.4.bb
@@ -0,0 +1,23 @@
+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"
+
+inherit setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-logging \
+ python3-netserver \
+ python3-setuptools \
+ python3-stringold \
+"
diff --git a/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb b/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb
deleted file mode 100644
index 7ee444dc9e..0000000000
--- a/meta-python/recipes-devtools/python/python3-bitarray_0.8.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-bitarray.inc
diff --git a/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb b/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb
new file mode 100644
index 0000000000..b27480057a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bitarray_2.7.6.bb
@@ -0,0 +1,10 @@
+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] = "3807f9323c308bc3f9b58cbe5d04dc28f34ac32d852999334da96b42f64b5356"
+
+inherit setuptools3 pypi
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-bitstring_4.0.2.bb b/meta-python/recipes-devtools/python/python3-bitstring_4.0.2.bb
new file mode 100644
index 0000000000..a4d59913f8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bitstring_4.0.2.bb
@@ -0,0 +1,20 @@
+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=661f450e2c0aef39b4b15597333444a7"
+
+SRC_URI[sha256sum] = "a391db8828ac4485dd5ce72c80b27ebac3e7b989631359959e310cd9729723b2"
+
+PYPI_PACKAGE = "bitstring"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-mmap \
+ ${PYTHON_PN}-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-bitstruct_8.17.0.bb b/meta-python/recipes-devtools/python/python3-bitstruct_8.17.0.bb
new file mode 100644
index 0000000000..d1d30cdb3c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bitstruct_8.17.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] = "eb94b40e4218a23aa8f90406b836a9e6ed83e48b8d112ce3f96408463bd1b874"
+
+PYPI_PACKAGE = "bitstruct"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
diff --git a/meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch b/meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch
new file mode 100644
index 0000000000..051ebbe674
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bleak/0001-fix-poetry-version-compatibility.patch
@@ -0,0 +1,23 @@
+Upstream-Status: Pending
+
+--- a/pyproject.toml 2023-04-19 19:04:47.159474100 -0300
++++ b/pyproject.toml 2023-05-04 08:08:12.289941765 -0300
+@@ -31,15 +31,15 @@
+ bleak-winrt = { version = "^1.2.0", markers = "platform_system=='Windows'" }
+ dbus-fast = { version = "^1.83.0", markers = "platform_system == 'Linux'" }
+
+-[tool.poetry.group.docs.dependencies]
++#[tool.poetry.group.docs.dependencies]
+ Sphinx = { version = "^5.1.1", python = ">=3.8" }
+ sphinx-rtd-theme = "^1.0.0"
+
+-[tool.poetry.group.lint.dependencies]
++#[tool.poetry.group.lint.dependencies]
+ black = "^22.1.0"
+ flake8 = { version = "^5.0.0", python = ">=3.8" }
+
+-[tool.poetry.group.test.dependencies]
++#[tool.poetry.group.test.dependencies]
+ asynctest = { version = "^0.13.0", python = "<3.8" }
+ pytest = "^7.0.0"
+ pytest-asyncio = "^0.19.0"
diff --git a/meta-python/recipes-devtools/python/python3-bleak_0.20.2.bb b/meta-python/recipes-devtools/python/python3-bleak_0.20.2.bb
new file mode 100644
index 0000000000..9b81efe400
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-bleak_0.20.2.bb
@@ -0,0 +1,20 @@
+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"
+
+SRC_URI:append = " \
+ file://0001-fix-poetry-version-compatibility.patch \
+"
+
+SRC_URI[sha256sum] = "6c92a47abe34e6dea8ffc5cea9457cbff6e1be966854839dbc25cddb36b79ee4"
+
+PYPI_PACKAGE = "bleak"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ python3-core (>=3.7) \
+ python3-async-timeout \
+ python3-dbus-fast \
+"
diff --git a/meta-python/recipes-devtools/python/python3-blinker/run-ptest b/meta-python/recipes-devtools/python/python3-blinker/run-ptest
new file mode 100644
index 0000000000..15c3f6282d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-blinker/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-blinker_1.4.bb b/meta-python/recipes-devtools/python/python3-blinker_1.4.bb
deleted file mode 100644
index 924b3cf51d..0000000000
--- a/meta-python/recipes-devtools/python/python3-blinker_1.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-blinker.inc
diff --git a/meta-python/recipes-devtools/python/python3-blinker_1.6.2.bb b/meta-python/recipes-devtools/python/python3-blinker_1.6.2.bb
new file mode 100644
index 0000000000..b0728e66cd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-blinker_1.6.2.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "Fast, simple object-to-object and broadcast signaling."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=42cd19c88fc13d1307a4efd64ee90e4e"
+
+SRC_URI[sha256sum] = "4afd3de66ef3a9f8067559fb7a1cbe555c17dcbe15971b05d1b625c3e7abe213"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += "file://run-ptest"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-asyncio \
+"
+
+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-booleanpy_4.0.bb b/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
new file mode 100644
index 0000000000..41fd3d960a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-booleanpy_4.0.bb
@@ -0,0 +1,13 @@
+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.0.9.bb b/meta-python/recipes-devtools/python/python3-brotli_1.0.9.bb
new file mode 100644
index 0000000000..5dfac58237
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-brotli_1.0.9.bb
@@ -0,0 +1,18 @@
+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"
+PYPI_PACKAGE_EXT = "zip"
+
+SRC_URI[sha256sum] = "4d1b810aa0ed773f81dceda2cc7b403d01057458730e309856356d4ef4188438"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-cffi \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.0.bb b/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.0.bb
new file mode 100644
index 0000000000..e4e3c49988
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cachecontrol_0.13.0.bb
@@ -0,0 +1,29 @@
+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"
+
+# On PyPi, this is "CacheControl", rather than "cachecontrol", so we need to
+# override PYPI_PACKAGE so fetch succeeds.
+PYPI_PACKAGE = "CacheControl"
+
+SRC_URI[sha256sum] = "fd3fd2cb0ca66b9a6c1d56cc9709e7e49c63dbd19b1b1bcbd8d3f94cedfe8ce5"
+
+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-cached-property_1.5.2.bb b/meta-python/recipes-devtools/python/python3-cached-property_1.5.2.bb
new file mode 100644
index 0000000000..059c34a29d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cached-property_1.5.2.bb
@@ -0,0 +1,12 @@
+SUMMARY = "A decorator for caching properties in classes."
+DESCRIPTION = "Makes caching of time or computational expensive properties quick and easy."
+HOMEPAGE = "https://pypi.org/project/cached-property/"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=db7ff60c4e14f58534201242803d8abc"
+
+SRC_URI[sha256sum] = "9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-cachetools/run-ptest b/meta-python/recipes-devtools/python/python3-cachetools/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cachetools/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-cachetools_5.3.1.bb b/meta-python/recipes-devtools/python/python3-cachetools_5.3.1.bb
new file mode 100644
index 0000000000..739e5a8264
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cachetools_5.3.1.bb
@@ -0,0 +1,32 @@
+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] = "dce83f2d9b4e1f732a8cd44af8e8fab2dbe46201467fc98b3ef8f269092bf62b"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-can_2.1.0.bb b/meta-python/recipes-devtools/python/python3-can_2.1.0.bb
deleted file mode 100644
index aaa9e811ce..0000000000
--- a/meta-python/recipes-devtools/python/python3-can_2.1.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require python-can.inc
-inherit pypi setuptools3
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-codecs \
- ${PYTHON_PN}-compression \
-"
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..7ecbf12073
--- /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-pkg-resources \
+ python3-sqlite3 \
+ python3-typing-extensions \
+ python3-wrapt \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb b/meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb
new file mode 100644
index 0000000000..0035735830
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cantools_38.0.2.bb
@@ -0,0 +1,22 @@
+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] = "93bfe6f4bd652f369763ea9162b027a62f424a8400f2423d41137918ce68c68e"
+
+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-cassandra-driver_3.13.0.bb b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.13.0.bb
deleted file mode 100644
index 34f149d3f5..0000000000
--- a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.13.0.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-inherit setuptools3
-require python-cassandra-driver.inc
-
-# Requires concurrent which is currently in -misc
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-misc \
- ${PYTHON_PN}-numbers \
-"
diff --git a/meta-python/recipes-devtools/python/python3-cassandra-driver_3.28.0.bb b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.28.0.bb
new file mode 100644
index 0000000000..468aa247e8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cassandra-driver_3.28.0.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] = "64ff130d19f994b80997c14343a8306be52a0e7ab92520a534eed944c88d70df"
+
+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-cbor2/run-ptest b/meta-python/recipes-devtools/python/python3-cbor2/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cbor2/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-cbor2_5.4.6.bb b/meta-python/recipes-devtools/python/python3-cbor2_5.4.6.bb
new file mode 100644
index 0000000000..19d6cbf444
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cbor2_5.4.6.bb
@@ -0,0 +1,31 @@
+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] = "b893500db0fe033e570c3adc956af6eefc57e280026bd2d86fd53da9f1e594d7"
+
+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-cchardet_2.1.7.bb b/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
new file mode 100644
index 0000000000..3d9194c219
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cchardet_2.1.7.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Universal character encoding detector"
+HOMEPAGE = "https://github.com/PyYoshi/cChardet"
+LICENSE = "MPL-1.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6ecda54f6f525388d71d6b3cd92f7474"
+
+SRC_URI[sha256sum] = "c428b6336545053c2589f6caf24ea32276c6664cb86db817e03a94c60afa0eaf"
+
+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
new file mode 100644
index 0000000000..f9f8853495
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cerberus_1.3.4.bb
@@ -0,0 +1,13 @@
+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-certifi_2018.1.18.bb b/meta-python/recipes-devtools/python/python3-certifi_2018.1.18.bb
deleted file mode 100644
index 70f674b22c..0000000000
--- a/meta-python/recipes-devtools/python/python3-certifi_2018.1.18.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-certifi.inc
diff --git a/meta-python/recipes-devtools/python/python3-cffi_1.11.5.bb b/meta-python/recipes-devtools/python/python3-cffi_1.11.5.bb
deleted file mode 100644
index e888084347..0000000000
--- a/meta-python/recipes-devtools/python/python3-cffi_1.11.5.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-cffi.inc
diff --git a/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb b/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb
deleted file mode 100644
index 038043c568..0000000000
--- a/meta-python/recipes-devtools/python/python3-chardet_3.0.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-chardet.inc
diff --git a/meta-python/recipes-devtools/python/python3-charset-normalizer_3.2.0.bb b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.2.0.bb
new file mode 100644
index 0000000000..0c2810c62a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-charset-normalizer_3.2.0.bb
@@ -0,0 +1,15 @@
+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] = "3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace"
+
+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-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.3.0.bb b/meta-python/recipes-devtools/python/python3-click-repl_0.3.0.bb
new file mode 100644
index 0000000000..33e42cb3b8
--- /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} = "${PYTHON_PN}-click ${PYTHON_PN}-prompt-toolkit"
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
new file mode 100644
index 0000000000..bd1136fd77
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-click-spinner_0.1.10.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Spinner for Click"
+HOMEPAGE = "https://github.com/click-contrib/click-spinner"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-click/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-click_6.7.bb b/meta-python/recipes-devtools/python/python3-click_6.7.bb
deleted file mode 100644
index 1920644042..0000000000
--- a/meta-python/recipes-devtools/python/python3-click_6.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-click.inc
diff --git a/meta-python/recipes-devtools/python/python3-click_8.1.5.bb b/meta-python/recipes-devtools/python/python3-click_8.1.5.bb
new file mode 100644
index 0000000000..d7d50118e2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-click_8.1.5.bb
@@ -0,0 +1,39 @@
+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] = "4be4b1af8d665c6d942909916d31a213a106800c47d0eeba73d34da3cbc11367"
+
+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-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.26.4.bb b/meta-python/recipes-devtools/python/python3-cmake_3.26.4.bb
new file mode 100644
index 0000000000..c66c777574
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cmake_3.26.4.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] = "d45b30b9ce7280829888c78650177ab525df2b6785e1a5b3d82b4c147d828c0e"
+
+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.3.bb b/meta-python/recipes-devtools/python/python3-cmd2_2.4.3.bb
new file mode 100644
index 0000000000..29d790b94f
--- /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 += "${PYTHON_PN}-setuptools-scm-native"
+
+SRC_URI[sha256sum] = "71873c11f72bd19e2b1db578214716f0d4f7c8fa250093c601265a9a717dee52"
+
+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-colorama_0.4.6.bb b/meta-python/recipes-devtools/python/python3-colorama_0.4.6.bb
new file mode 100644
index 0000000000..52e1e68b1b
--- /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 += " \
+ ${PYTHON_PN}-hatchling-native \
+"
+
+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
new file mode 100644
index 0000000000..d17ab87525
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-coloredlogs_15.0.1.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "Colored terminal output for Python's logging module"
+HOMEPAGE = "https://coloredlogs.readthedocs.io"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=764e737b117a38d773609885e8d04f0b"
+
+SRC_URI[sha256sum] = "7c991aa71a4577af2f82600d8f8f3a89f936baeaf9b50a9c197da014e5bf16b0"
+
+inherit pypi setuptools3
+
+do_install:append() {
+ rm -rf ${D}${datadir}
+}
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..69f4be17c4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-colorlog_6.7.0.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] = "bd94bd21c1e13fac7bd3153f4bc3a7dc0eb0974b8bc2fdf1a989e474f6e582e5"
+
+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
new file mode 100644
index 0000000000..fc1615e670
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-colorzero_2.0.bb
@@ -0,0 +1,19 @@
+SUMMARY = "colorzero is a color manipulation library for Python"
+DESCRIPTION = "colorzero is a color manipulation library for Python \
+(yes, another one) which aims to be reasonably simple to use and \
+"pythonic" in nature."
+HOMEPAGE = " https://github.com/waveform80/colorzero "
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ae6c62710c0646f3c60d1ad812ea9bf9"
+
+RDEPENDS:${PN} += " \
+ python3-image \
+ python3-numbers \
+"
+
+SRC_URI[sha256sum] = "e7d5a5c26cd0dc37b164ebefc609f388de24f8593b659191e12d85f8f9d5eb58"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "colorzero"
diff --git a/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb b/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.bb
new file mode 100644
index 0000000000..7d3a5fba5f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-configargparse_1.5.5.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] = "363d80a6d35614bd446e2f2b1b216f3b33741d03ac6d0a92803306f40e555b58"
+
+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-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-configparser_3.5.0.bb b/meta-python/recipes-devtools/python/python3-configparser_3.5.0.bb
deleted file mode 100644
index 770cba5962..0000000000
--- a/meta-python/recipes-devtools/python/python3-configparser_3.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-configparser.inc
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
new file mode 100644
index 0000000000..7a7ecd753f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-configshell-fb_1.1.29.bb
@@ -0,0 +1,22 @@
+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-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
index 3f667540d9..7f9b0326fa 100644
--- a/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb
+++ b/meta-python/recipes-devtools/python/python3-constantly_15.1.0.bb
@@ -1,2 +1,11 @@
-inherit setuptools3
-require python-constantly.inc
+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-contextlib2_21.6.0.bb b/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb
new file mode 100644
index 0000000000..5a54c696f4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-contextlib2_21.6.0.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Backports and enhancements for the contextlib module"
+HOMEPAGE = "http://contextlib2.readthedocs.org/"
+SECTION = "devel/python"
+LICENSE = "PSF-2.0 & Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=d2b6be100f1002194122ec9bfee7b8b4"
+
+SRC_URI[sha256sum] = "ab1e2bfe1d01d968e1b7e8d9023bc51ef3509bba217bb730cee3827e1ee82869"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
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..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-covdefaults/run-ptest
@@ -0,0 +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}}'
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..b7709aa1ca
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-covdefaults_2.3.0.bb
@@ -0,0 +1,31 @@
+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} += " \
+ ${PYTHON_PN}-coverage \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+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-coverage_4.4.2.bb b/meta-python/recipes-devtools/python/python3-coverage_4.4.2.bb
deleted file mode 100644
index c983e0b5dc..0000000000
--- a/meta-python/recipes-devtools/python/python3-coverage_4.4.2.bb
+++ /dev/null
@@ -1,10 +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[md5sum] = "29a9fe85377e0f7327cf5db1e335483f"
-SRC_URI[sha256sum] = "309d91bd7a35063ec7a0e4d75645488bfab3f0b66373e7722f23da7f5b0f34cc"
-
-inherit pypi setuptools3
-
diff --git a/meta-python/recipes-devtools/python/python3-coverage_7.2.7.bb b/meta-python/recipes-devtools/python/python3-coverage_7.2.7.bb
new file mode 100644
index 0000000000..a69c05d25b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-coverage_7.2.7.bb
@@ -0,0 +1,20 @@
+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] = "924d94291ca674905fe9481f12294eb11f2d3d3fd1adb20314ba89e94f44ed59"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-crypt \
+ python3-io \
+ python3-json \
+ python3-multiprocessing \
+ python3-pprint \
+ python3-shell \
+ python3-sqlite3 \
+ python3-tomllib \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-cppy/0001-Fix-build-error-as-following.patch b/meta-python/recipes-devtools/python/python3-cppy/0001-Fix-build-error-as-following.patch
new file mode 100644
index 0000000000..5a613c827a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cppy/0001-Fix-build-error-as-following.patch
@@ -0,0 +1,28 @@
+From a6ba15048bbb660abfa094b581862b4936ac4005 Mon Sep 17 00:00:00 2001
+From: Lei Maohui <leimaohui@fujitsu.com>
+Date: Mon, 18 Apr 2022 12:19:35 +0900
+Subject: [PATCH] Fix build error as following:
+
+flit_core.config.ConfigError: description must be specified under [project] or listed as a dynamic field.
+
+Upstream-Status: Pending
+Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
+---
+ pyproject.toml | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 2d2ac74..66fcee0 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -8,6 +8,7 @@
+
+ [project]
+ name = "cppy"
++description = "A small C++ header library"
+ readme = "README.rst"
+ requires-python = ">=3.7"
+ license = {file = "LICENSE"}
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..270f74963d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cppy_1.2.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "C++ headers for C extension development"
+HOMEPAGE = "https://cppy.readthedocs.io/en/latest/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=0bfb3e39b13587f0028f17baf0e42371"
+
+SRC_URI[sha256sum] = "83b43bf17b1085ac15c5debdb42154f138b928234b21447358981f69d0d6fe1b"
+
+RDEPENDS:${PN} += "python3-setuptools python3-distutils"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI += " file://0001-Fix-build-error-as-following.patch \
+ "
+
+DEPENDS += "python3-setuptools-scm-native"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb b/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
new file mode 100644
index 0000000000..da756ea074
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-crc32c_2.3.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A python package implementing the crc32c algorithmin hardware and software"
+HOMEPAGE = "https://github.com/ICRAR/crc32c"
+
+LICENSE = "BSD-2-Clause & BSD-3-Clause & CRC32C-ADLER & LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = " \
+ file://LICENSE;md5=4fbd65380cdd255951079008b364516c \
+ file://LICENSE.google-crc32c;md5=e9ed01b5e5ac9eae23fc2bb33701220c \
+ file://LICENSE.slice-by-8;md5=6b3bc7709d6b2db6646ec2467310ff6b \
+ file://crc32c_adler.c;beginline=9;endline=24;md5=9c8bd2afd2d340fd37c038759cd4eff8 \
+"
+
+SRC_URI[sha256sum] = "17ce6c596ad0d53df52dcd72defb66984aeabd98fbefea7ba848a6b6bdece36a"
+
+inherit pypi setuptools3
+
+do_compile:prepend() {
+ if ! grep 'platform =' setup.cfg; then
+ printf "[build_ext]\nplatform = ${TARGET_ARCH}" >> setup.cfg
+ fi
+}
+
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch b/meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..9bcb871135
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-crcmod/0001-setup.py-use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,22 @@
+From 3dc1e9584ed2ac81e7526b8dbf76b4a06ea8ac76 Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@cold-front.org>
+Date: Tue, 1 Mar 2022 10:34:42 -0500
+Subject: [PATCH] setup.py use setuptools instead of distutils
+
+Upstream-Status: Pending
+Signed-off-by: Justin Bronder <jsbronder@cold-front.org>
+---
+ setup.py | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index e3a524b..2f2bcfc 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,5 +1,4 @@
+-from distutils.core import setup
+-from distutils.extension import Extension
++from setuptools import Extension, setup
+ import sys,os
+
+ if sys.version_info[0] == 2:
diff --git a/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb b/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
new file mode 100644
index 0000000000..f8f1683601
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-crcmod_1.7.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A Python module for generating objects that compute the Cyclic Redundancy Check."
+HOMEPAGE = "https://pypi.org/project/crcmod"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f9a19291627cad2d1dfbfcf3c9fb85c2"
+
+SRC_URI += "file://0001-setup.py-use-setuptools-instead-of-distutils.patch"
+SRC_URI[sha256sum] = "dc7051a0db5f2bd48665a990d3ec1cc305a466a77358ca4492826f41f283601e"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-unittest"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-croniter_1.4.1.bb b/meta-python/recipes-devtools/python/python3-croniter_1.4.1.bb
new file mode 100644
index 0000000000..e9f84eb9e5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-croniter_1.4.1.bb
@@ -0,0 +1,12 @@
+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] = "1a6df60eacec3b7a0aa52a8f2ef251ae3dd2a7c7c8b9874e73e791636d55a361"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " python3-dateutil python3-natsort"
diff --git a/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.4.bb b/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.4.bb
deleted file mode 100644
index 58994ffffa..0000000000
--- a/meta-python/recipes-devtools/python/python3-cryptography-vectors_2.1.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-cryptography-vectors.inc
diff --git a/meta-python/recipes-devtools/python/python3-cryptography/run-ptest b/meta-python/recipes-devtools/python/python3-cryptography/run-ptest
deleted file mode 100644
index 0ba239c2a4..0000000000
--- a/meta-python/recipes-devtools/python/python3-cryptography/run-ptest
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-py.test
diff --git a/meta-python/recipes-devtools/python/python3-cryptography_2.1.4.bb b/meta-python/recipes-devtools/python/python3-cryptography_2.1.4.bb
deleted file mode 100644
index 195923343b..0000000000
--- a/meta-python/recipes-devtools/python/python3-cryptography_2.1.4.bb
+++ /dev/null
@@ -1,8 +0,0 @@
-inherit pypi setuptools3
-require python-cryptography.inc
-
-LDSHARED += "-pthread"
-
-SRC_URI += " \
- file://run-ptest \
-"
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
new file mode 100644
index 0000000000..8ff3b9e3d1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-custom-inherit_2.3.1.bb
@@ -0,0 +1,15 @@
+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
+
+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
new file mode 100644
index 0000000000..70e9831770
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cvxopt_1.2.7.bb
@@ -0,0 +1,21 @@
+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-cycler_0.11.0.bb b/meta-python/recipes-devtools/python/python3-cycler_0.11.0.bb
new file mode 100644
index 0000000000..59492e8bfa
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cycler_0.11.0.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] = "9c87405839a19696e837b3b818fed3f5f69f16f1eec1a1ad77e043dcea9c772f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-cython_0.28.2.bb b/meta-python/recipes-devtools/python/python3-cython_0.28.2.bb
deleted file mode 100644
index 2ce6bdbd68..0000000000
--- a/meta-python/recipes-devtools/python/python3-cython_0.28.2.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-inherit setuptools3
-require python-cython.inc
-
-RDEPENDS_${PN} += "\
- python3-setuptools \
-"
-
-# running build_ext a second time during install fails, because Python
-# would then attempt to import cythonized modules built for the target
-# architecture.
-DISTUTILS_INSTALL_ARGS += "--skip-build"
-
-do_install_append() {
- # rename scripts that would conflict with the Python 2 build of Cython
- mv ${D}${bindir}/cython ${D}${bindir}/cython3
- mv ${D}${bindir}/cythonize ${D}${bindir}/cythonize3
- mv ${D}${bindir}/cygdb ${D}${bindir}/cygdb3
-}
diff --git a/meta-python/recipes-devtools/python/python3-cytoolz_0.12.1.bb b/meta-python/recipes-devtools/python/python3-cytoolz_0.12.1.bb
new file mode 100644
index 0000000000..b63e71eb16
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-cytoolz_0.12.1.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] = "fc33909397481c90de3cec831bfb88d97e220dc91939d996920202f184b4648e"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-cython-native"
+RDEPENDS:${PN} += "${PYTHON_PN}-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..79507bdce2
--- /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 += "${PYTHON_PN}-docutils-native"
+RDEPENDS:${PN} = "${PYTHON_PN}-docutils \
+ ${PYTHON_PN}-lockfile (>= 0.10) \
+ ${PYTHON_PN}-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.8.bb b/meta-python/recipes-devtools/python/python3-dateparser_1.1.8.bb
new file mode 100644
index 0000000000..8b890fb227
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dateparser_1.1.8.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] = "86b8b7517efcc558f085a142cdb7620f0921543fcabdb538c8a4c4001d8178e3"
+
+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.7.2.bb b/meta-python/recipes-devtools/python/python3-dateutil_2.7.2.bb
deleted file mode 100644
index 1d2baf55c9..0000000000
--- a/meta-python/recipes-devtools/python/python3-dateutil_2.7.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-dateutil.inc
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
new file mode 100644
index 0000000000..e281f0f285
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dateutil_2.8.2.bb
@@ -0,0 +1,25 @@
+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-dbus-fast_1.85.0.bb b/meta-python/recipes-devtools/python/python3-dbus-fast_1.85.0.bb
new file mode 100644
index 0000000000..6e1b599351
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dbus-fast_1.85.0.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] = "af346e87e34fa52c7ae82d117303cbfe089cd5391b5a1cc0e51f67066ef426f5"
+
+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
new file mode 100644
index 0000000000..9f6aa7ed7f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dbus-next_0.2.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "A zero-dependency DBus library for Python with asyncio support"
+HOMEPAGE = "https://github.com/acrisci/python-dbus-next"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=94e750c96e56788499b56c81de91431c"
+
+SRC_URI[sha256sum] = "f4eae26909332ada528c0a3549dda8d4f088f9b365153952a408e28023a626a5"
+
+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/setuptools.patch b/meta-python/recipes-devtools/python/python3-dbussy/setuptools.patch
new file mode 100644
index 0000000000..3506f76d02
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dbussy/setuptools.patch
@@ -0,0 +1,56 @@
+Port setup.py to setuptools.
+
+Upstream-Status: Submitted [https://github.com/ldo/dbussy/pull/53]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/setup.py b/setup.py
+index 4b9411e..da7ee7e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -8,33 +8,9 @@
+ # Written by Lawrence D'Oliveiro <ldo@geek-central.gen.nz>.
+ #-
+
+-import sys
+-import distutils.core
+-from distutils.command.build import \
+- build as std_build
++import setuptools
+
+-class my_build(std_build) :
+- "customization of build to perform additional validation."
+-
+- def run(self) :
+- try :
+- exec \
+- (
+- "async def dummy() :\n"
+- " pass\n"
+- "#end dummy\n"
+- )
+- except SyntaxError :
+- sys.stderr.write("This module requires Python 3.5 or later.\n")
+- sys.exit(-1)
+- #end try
+- super().run()
+- #end run
+-
+-#end my_build
+-
+-distutils.core.setup \
+- (
++setuptools.setup(
+ name = "DBussy",
+ version = "1.3",
+ description = "language bindings for libdbus, for Python 3.5 or later",
+@@ -43,9 +19,5 @@ distutils.core.setup \
+ author_email = "ldo@geek-central.gen.nz",
+ url = "https://github.com/ldo/dbussy",
+ license = "LGPL v2.1+",
+ py_modules = ["dbussy", "ravel"],
+- cmdclass =
+- {
+- "build" : my_build,
+- },
+- )
++)
diff --git a/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb b/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
new file mode 100644
index 0000000000..b1ba953922
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dbussy_1.3.bb
@@ -0,0 +1,24 @@
+SUMMARY = "language bindings for libdbus, for Python 3.5 or later"
+HOMEPAGE = "https://github.com/ldo/dbussy"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a916467b91076e631dd8edb7424769c7"
+
+SRC_URI = "git://github.com/ldo/dbussy.git;branch=master;protocol=https \
+ file://setuptools.patch"
+
+SRCREV = "37ede4242b48def73ada46c2747a4c5cae6abf45"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+PIP_INSTALL_PACKAGE = "DBussy"
+
+RDEPENDS:${PN} += "\
+ python3-asyncio \
+ python3-core \
+ python3-ctypes \
+ python3-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-decorator_4.3.0.bb b/meta-python/recipes-devtools/python/python3-decorator_4.3.0.bb
deleted file mode 100644
index 844cbdc9a9..0000000000
--- a/meta-python/recipes-devtools/python/python3-decorator_4.3.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-decorator.inc
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
new file mode 100644
index 0000000000..c9c6f9a62e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-decorator_5.1.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Python decorator utilities"
+DESCRIPTION = "\
+The aim of the decorator module it to simplify the usage of decorators \
+for the average programmer, and to popularize decorators by showing \
+various non-trivial examples. Of course, as all techniques, decorators \
+can be abused and you should not try to solve every problem with a \
+decorator, just because you can."
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=be2fd2007972bf96c08af3293d728b22"
+
+SRC_URI[sha256sum] = "637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..8ec6680d8f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-defusedxml_0.7.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "XML bomb protection for Python stdlib modules"
+DESCRIPTION = "Python package with modified subclasses of all stdlib XML \
+parsers that prevent any potentially malicious operation."
+
+LICENSE = "PSF-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=056fea6a4b395a24d0d278bf5c80249e"
+
+SRC_URI[sha256sum] = "1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
+
+RDEPENDS:${PN} += "python3-xml"
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..4b5c78fb03
--- /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} += " \
+ ${PYTHON_PN}-wrapt \
+"
diff --git a/meta-python/recipes-devtools/python/python3-dill_0.3.6.bb b/meta-python/recipes-devtools/python/python3-dill_0.3.6.bb
new file mode 100644
index 0000000000..bec4643064
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dill_0.3.6.bb
@@ -0,0 +1,17 @@
+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] = "e5db55f3687856d8fbdab002ed78544e1c4559a130302693d839dfe8f93f2373"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE_EXT = "tar.gz"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-multiprocessing \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-profile \
+ ${PYTHON_PN}-core \
+"
diff --git a/meta-python/recipes-devtools/python/python3-diskcache_5.6.1.bb b/meta-python/recipes-devtools/python/python3-diskcache_5.6.1.bb
new file mode 100644
index 0000000000..447bfc440b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-diskcache_5.6.1.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] = "e4c978532feff5814c4cc00fe1e11e40501985946643d73220d41ee7737c72c3"
+
+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-distlib_0.3.6.bb b/meta-python/recipes-devtools/python/python3-distlib_0.3.6.bb
new file mode 100644
index 0000000000..ffffece56a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-distlib_0.3.6.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] = "14bad2d9b04d3a36127ac97f30b12a19268f211063d8f8ee4f47108896e11b46"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_setuptools_build_meta
diff --git a/meta-python/recipes-devtools/python/python3-distro_1.8.0.bb b/meta-python/recipes-devtools/python/python3-distro_1.8.0.bb
new file mode 100644
index 0000000000..f7616e4730
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-distro_1.8.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] = "02e111d1dc6a50abb8eed6bf31c3e48ed8b0830d1ea2a1b78c61765c2513fdd8"
+
+inherit pypi python_setuptools_build_meta
+
+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-django_1.11.10.bb b/meta-python/recipes-devtools/python/python3-django_1.11.10.bb
deleted file mode 100644
index e1e38c3225..0000000000
--- a/meta-python/recipes-devtools/python/python3-django_1.11.10.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-django.inc
-inherit setuptools3
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
new file mode 100644
index 0000000000..7f933d1a37
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-django_4.0.2.bb
@@ -0,0 +1,14 @@
+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.2.3.bb b/meta-python/recipes-devtools/python/python3-django_4.2.3.bb
new file mode 100644
index 0000000000..4e3192744e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-django_4.2.3.bb
@@ -0,0 +1,9 @@
+require python-django.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "45a747e1c5b3d6df1b141b1481e193b033fd1fdbda3ff52677dc81afdaacbaed"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-sqlparse \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..fee8a3a029
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-djangorestframework_3.14.0.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] = "579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8"
+
+PYPI_PACKAGE = "djangorestframework"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-django \
+"
diff --git a/meta-python/recipes-devtools/python/python3-dnspython/run-ptest b/meta-python/recipes-devtools/python/python3-dnspython/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dnspython/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb b/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb
deleted file mode 100644
index ce4dfdc74a..0000000000
--- a/meta-python/recipes-devtools/python/python3-dnspython_1.15.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-dnspython.inc
diff --git a/meta-python/recipes-devtools/python/python3-dnspython_2.4.0.bb b/meta-python/recipes-devtools/python/python3-dnspython_2.4.0.bb
new file mode 100644
index 0000000000..bce6ccfafb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dnspython_2.4.0.bb
@@ -0,0 +1,35 @@
+DESCRIPTION = "DNS toolkit for Python"
+HOMEPAGE = "http://www.dnspython.org/"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5af50906b5929837f667dfe31052bd34"
+
+SRC_URI[sha256sum] = "758e691dbb454d5ccf4e1b154a19e52847f79e21a42fef17b969144af29a4e6c"
+
+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-docopt_0.6.2.bb b/meta-python/recipes-devtools/python/python3-docopt_0.6.2.bb
new file mode 100644
index 0000000000..a2432068cc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-docopt_0.6.2.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Pythonic argument parser, that will make you smile"
+HOMEPAGE = "http://docopt.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE-MIT;md5=09b77fb74986791a3d4a0e746a37d88f"
+
+inherit setuptools3 pypi
+
+SRC_URI[md5sum] = "4bc74561b37fad5d3e7d037f82a4c3b1"
+SRC_URI[sha256sum] = "49b3a825280bd66b3aa83585ef59c4a8c82f2c8a522dbe754a8bc8d08c85c491"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-dominate/run-ptest b/meta-python/recipes-devtools/python/python3-dominate/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dominate/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb b/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb
deleted file mode 100644
index 5304ccc183..0000000000
--- a/meta-python/recipes-devtools/python/python3-dominate_2.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-dominate.inc
diff --git a/meta-python/recipes-devtools/python/python3-dominate_2.8.0.bb b/meta-python/recipes-devtools/python/python3-dominate_2.8.0.bb
new file mode 100644
index 0000000000..73701ec72e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dominate_2.8.0.bb
@@ -0,0 +1,25 @@
+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] = "4c90c3befaf88e612b71f4b39af7bcbef8977acfa855cec957225a8fbf504007"
+
+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-dynamic-dispatch_1.0.3.bb b/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
new file mode 100644
index 0000000000..9e4a13cff4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-dynamic-dispatch_1.0.3.bb
@@ -0,0 +1,18 @@
+SUMMARY = "dynamic dispatch decorator for classes and functions"
+HOMEPAGE = "https://github.com/XevoInc/dynamic_dispatch"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ea70b07c354e36056bd35e17c9c3face"
+
+inherit pypi setuptools3
+
+SRC_URI[md5sum] = "6bd3cc24427de753eed0656e89d5302c"
+SRC_URI[sha256sum] = "fbc676aaedc8ec542056c21e5e206b8b62b8d11c3f3c5cfb32b273936da89604"
+
+PYPI_PACKAGE = "dynamic_dispatch"
+
+DEPENDS += "python3-setuptools-scm-native"
+RDEPENDS:${PN} += "\
+ python3-typeguard \
+"
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..d1022891b9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ecdsa_0.18.0.bb
@@ -0,0 +1,19 @@
+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"
+
+do_install:append() {
+ rm ${D}${PYTHON_SITEPACKAGES_DIR}/ecdsa/test_*.py
+}
diff --git a/meta-python/recipes-devtools/python/python3-editor_1.0.3.bb b/meta-python/recipes-devtools/python/python3-editor_1.0.3.bb
deleted file mode 100644
index 8ad2b869d9..0000000000
--- a/meta-python/recipes-devtools/python/python3-editor_1.0.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-editor.inc
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
new file mode 100644
index 0000000000..335461c435
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-editor_1.0.4.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Programmatically open and editor, capture the result"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+SRC_URI[md5sum] = "0e52648a4a6e7c89e3be44e9456530b4"
+SRC_URI[sha256sum] = "51fda6bcc5ddbbb7063b2af7509e43bd84bfc32a4ff71349ec7847713882327b"
+
+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_4.1.4.bb b/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.bb
new file mode 100644
index 0000000000..60c54f0193
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-elementpath_4.1.4.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] = "f991c42ff66fa06e219141ccf65890261e6635b448e7d4c2d8b62dc5bf1de9e8"
+
+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-email-validator_1.3.1.bb b/meta-python/recipes-devtools/python/python3-email-validator_1.3.1.bb
new file mode 100644
index 0000000000..2350c4d758
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-email-validator_1.3.1.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] = "d178c5c6fa6c6824e9b04f199cf23e79ac15756786573c190d2ad13089411ad2"
+
+PYPI_PACKAGE = "email_validator"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-dnspython python3-idna"
diff --git a/meta-python/recipes-devtools/python/python3-engineio_4.5.1.bb b/meta-python/recipes-devtools/python/python3-engineio_4.5.1.bb
new file mode 100644
index 0000000000..d97248891c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-engineio_4.5.1.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] = "b167a1b208fcdce5dbe96a61a6ca22391cfa6715d796c22de93e3adf9c07ae0c"
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
new file mode 100644
index 0000000000..50ae7fa5e4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-et-xmlfile_1.1.0.bb
@@ -0,0 +1,23 @@
+SUMMARY = "et_xmlfile is a low memory library for creating large XML files"
+DESCRIPTION = "It is based upon the xmlfile module from lxml with the aim of allowing code \
+to be developed that will work with both libraries. It was developed initially for \
+the openpyxl project but is now a standalone module."
+
+HOMEPAGE = "https://foss.heptapod.net/openpyxl/et_xmlfile"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[sha256sum] = "8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c"
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-io \
+ python3-pprint \
+ python3-shell \
+ python3-xml \
+"
+
+inherit setuptools3 pypi
+
+PYPI_PACKAGE = "et_xmlfile"
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
new file mode 100644
index 0000000000..3d8a67ba56
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-abi_3.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=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-account_0.9.0.bb b/meta-python/recipes-devtools/python/python3-eth-account_0.9.0.bb
new file mode 100644
index 0000000000..e33b7679c9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-account_0.9.0.bb
@@ -0,0 +1,18 @@
+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] = "5f66ecb7bc52569924dfaf4a9add501b1c2a4901eec74e3c0598cd26d0971777"
+
+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.2.bb b/meta-python/recipes-devtools/python/python3-eth-hash_0.5.2.bb
new file mode 100644
index 0000000000..683d84761c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-hash_0.5.2.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] = "1b5f10eca7765cc385e1430eefc5ced6e2e463bb18d1365510e2e539c1a6fe4e"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-pycryptodome \
+"
diff --git a/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.1.bb b/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.1.bb
new file mode 100644
index 0000000000..55ab1a78da
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-keyfile_0.6.1.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=2beaef1b1764f4d6b46084c885b4bcad"
+
+SRC_URI[sha256sum] = "471be6e5386fce7b22556b3d4bde5558dbce46d2674f00848027cb0a20abdc8c"
+
+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
new file mode 100644
index 0000000000..b0b1aad76d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-keys_0.4.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=2beaef1b1764f4d6b46084c885b4bcad"
+
+SRC_URI[sha256sum] = "7d18887483bc9b8a3fdd8e32ddcb30044b9f08fcb24a380d93b6eee3a5bb3216"
+
+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
new file mode 100644
index 0000000000..d19a657557
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-rlp_0.3.0.bb
@@ -0,0 +1,15 @@
+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-typing_3.4.0.bb b/meta-python/recipes-devtools/python/python3-eth-typing_3.4.0.bb
new file mode 100644
index 0000000000..a1594fbf54
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-typing_3.4.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] = "7f49610469811ee97ac43eaf6baa294778ce74042d41e61ecf22e5ebe385590f"
+
+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
new file mode 100644
index 0000000000..6584e60e1d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-utils/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,39 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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.2.0.bb b/meta-python/recipes-devtools/python/python3-eth-utils_2.2.0.bb
new file mode 100644
index 0000000000..ce2dcb0d4c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eth-utils_2.2.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] = "7f1a9e10400ee332432a778c321f446abaedb8f538df550e7c9964f446f7e265"
+
+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_0.7.0.bb b/meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb
deleted file mode 100644
index 3a92b6ec96..0000000000
--- a/meta-python/recipes-devtools/python/python3-evdev_0.7.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-evdev.inc
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..c091040c5d
--- /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} += "\
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-fcntl \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-stringold \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-eventlet_0.33.3.bb b/meta-python/recipes-devtools/python/python3-eventlet_0.33.3.bb
new file mode 100644
index 0000000000..c1256661b4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-eventlet_0.33.3.bb
@@ -0,0 +1,16 @@
+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] = "722803e7eadff295347539da363d68ae155b8b26ae6a634474d0a920be73cfda"
+
+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-execnet/run-ptest b/meta-python/recipes-devtools/python/python3-execnet/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-execnet/run-ptest
@@ -0,0 +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}}'
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..a934d1c461
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-execnet_2.0.2.bb
@@ -0,0 +1,31 @@
+# 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 \
+"
+
+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_1.2.0.bb b/meta-python/recipes-devtools/python/python3-executing_1.2.0.bb
new file mode 100644
index 0000000000..89f935c672
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-executing_1.2.0.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] = "19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107"
diff --git a/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch b/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch
new file mode 100644
index 0000000000..cbc838f0e2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fann2/0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch
@@ -0,0 +1,28 @@
+From 85307f592c7cb87af162cca4b121b874108b7754 Mon Sep 17 00:00:00 2001
+From: Alistair Francis <alistair.francis@wdc.com>
+Date: Tue, 2 Apr 2019 11:25:15 -0700
+Subject: [PATCH] setup.py: Don't hardcode swig and fann2 binary locations
+
+Upstream-Status: Inappropriate [configuration]
+Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
+---
+ setup.py | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 37af7c7..8e416f2 100755
+--- a/setup.py
++++ b/setup.py
+@@ -81,11 +81,8 @@ def find_swig():
+
+ def build_swig():
+ '''Run SWIG with specified parameters'''
+- print("Looking for FANN libs...")
+- find_fann()
+- print("running SWIG...")
+ swig_bin = find_swig()
+- swig_cmd = [swig_bin, '-c++', '-python', 'fann2/fann2.i']
++ swig_cmd = ['swig', '-c++', '-python', 'fann2/fann2.i']
+ subprocess.Popen(swig_cmd).wait()
+
+ if "sdist" not in sys.argv:
diff --git a/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb b/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
new file mode 100644
index 0000000000..2fbc277139
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fann2_1.1.2.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Python bindings for Fast Artificial Neural Networks 2.2.0 (FANN >= 2.2.0)"
+SECTION = "devel/python"
+LICENSE = "LGPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c73b943dc75f6f65e007c56ac6515c8f"
+
+SRC_URI[md5sum] = "0b85b418018746d63ed66b55465697a9"
+SRC_URI[sha256sum] = "cdca0a65ad48e08320672affe38c3dd4ea15e27821e5e1db9fa2b34299bdd41e"
+
+SRC_URI += " file://0001-setup.py-Don-t-hardcode-swig-and-fann2-binary-locati.patch"
+
+inherit pypi setuptools3
+
+DEPENDS += "swig-native libfann"
diff --git a/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb b/meta-python/recipes-devtools/python/python3-fasteners_0.18.bb
new file mode 100644
index 0000000000..5f63891748
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fasteners_0.18.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] = "cb7c13ef91e0c7e4fe4af38ecaf6b904ec3f5ce0dda06d34924b6b74b869d953"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-fcntl \
+"
diff --git a/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest b/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fastjsonschema/run-ptest
@@ -0,0 +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}}'
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..e0be7b6160
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fastjsonschema_2.18.0.bb
@@ -0,0 +1,39 @@
+# 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 \
+"
+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_5.0.1.bb b/meta-python/recipes-devtools/python/python3-fastnumbers_5.0.1.bb
new file mode 100644
index 0000000000..7494c45f06
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fastnumbers_5.0.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Super-fast and clean conversions to numbers."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=58db8ac9e152dd9b700f4d39ff40a31a"
+
+PYPI_PACKAGE = "fastnumbers"
+
+SRC_URI[sha256sum] = "9e4fd92cdf263a8e0865af19c40ae9df45a9bc0eb5e22fefea871140e7e0262f"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb b/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
deleted file mode 100644
index 95a5405f38..0000000000
--- a/meta-python/recipes-devtools/python/python3-feedformatter_0.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-feedformatter.inc
diff --git a/meta-python/recipes-devtools/python/python3-fields_5.0.0.bb b/meta-python/recipes-devtools/python/python3-fields_5.0.0.bb
new file mode 100644
index 0000000000..c1dfe0a377
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-fields_5.0.0.bb
@@ -0,0 +1,15 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "Container class boilerplate killer."
+HOMEPAGE = "https://github.com/ionelmc/python-fields"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e32c6705498713d9c904a9f565953a2c"
+
+SRC_URI[sha256sum] = "31d4aa03d8d44e35df13c431de35136997f047a924a597d84f7bc209e1be5727"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-core"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb b/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb
new file mode 100644
index 0000000000..8deca31b5b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-filelock_3.12.0.bb
@@ -0,0 +1,19 @@
+# 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] = "fc03ae43288c013d2ea83c8597001b1129db351aad9c57fe2409327916b8e718"
+
+UPSTREAM_CHECK_URI = "https://pypi.org/project/lockfile/"
+UPSTREAM_CHECK_REGEX = "/lockfile/(?P<pver>(\d+[\.\-_]*)+)"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ ${PYTHON_PN}-hatch-vcs-native \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb b/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb
deleted file mode 100644
index 104e7c28f1..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-babel_0.11.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-babel.inc
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
new file mode 100644
index 0000000000..657c190ec5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-babel_2.0.0.bb
@@ -0,0 +1,16 @@
+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-jsonpify_1.5.0.bb b/meta-python/recipes-devtools/python/python3-flask-jsonpify_1.5.0.bb
new file mode 100644
index 0000000000..68eb2cefe7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-jsonpify_1.5.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "A Flask extension adding a decorator for JSONP support"
+HOMEPAGE = "https://github.com/CoryDolphin/flask-jsonpify"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.rst;md5=bd59445a234a0c8250b39178d42e3148"
+
+PYPI_PACKAGE = "Flask-Jsonpify"
+
+SRC_URI[md5sum] = "8a10e37942c43d93d107644a3fe77d98"
+SRC_URI[sha256sum] = "8ac4c732aa5b11d9f6c2de58065d3b669f139518ca8f529bce943817e2fedbfb"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-flask"
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
new file mode 100644
index 0000000000..f2eb34d0f7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-jwt_0.3.2.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "JWT token authentication for Flask apps"
+HOMEPAGE = "https://github.com/mattupstate/flask-jwt"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ff00db41c47ec84b4567a8b3c246a959"
+
+PYPI_PACKAGE = "Flask-JWT"
+
+SRC_URI[md5sum] = "878ad79a12afa70ad38a12d5ffd2dc1e"
+SRC_URI[sha256sum] = "49c0672fbde0f1cd3374bd834918d28956e3c521c7e00089cdc5380d323bd0ad"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-pyjwt ${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-login_0.4.1.bb b/meta-python/recipes-devtools/python/python3-flask-login_0.4.1.bb
deleted file mode 100644
index 2d23fe1674..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-login_0.4.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-login.inc
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
new file mode 100644
index 0000000000..97d7bce359
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-login_0.6.2.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] = "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-mail_0.9.1.bb b/meta-python/recipes-devtools/python/python3-flask-mail_0.9.1.bb
index 0b963be56f..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
@@ -1,2 +1,17 @@
+SUMMARY = "Flask extension for sending email"
+DESCRIPTION = "A Flask extension for sending email"
+HOMEPAGE = " https://github.com/rduplain/flask-email"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5b16dfa6d3f275ace5985bb92949f770"
+
+SRC_URI[md5sum] = "04b35a42a44ec7aa724ec8ce55e2e08e"
+SRC_URI[sha256sum] = "22e5eb9a940bf407bcf30410ecc3708f3c56cc44b29c34e1726fe85006935f41"
+
+PYPI_PACKAGE = "Flask-Mail"
+
inherit pypi setuptools3
-require python-flask-mail.inc
+
+RDEPENDS:${PN} = " \
+ python3-blinker \
+ python3-flask \
+"
diff --git a/meta-python/recipes-devtools/python/python3-flask-migrate_2.1.1.bb b/meta-python/recipes-devtools/python/python3-flask-migrate_2.1.1.bb
deleted file mode 100644
index c98cbfddb0..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-migrate_2.1.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-migrate.inc
diff --git a/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.4.bb b/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.4.bb
new file mode 100644
index 0000000000..d9df2a4270
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-migrate_4.0.4.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] = "73293d40b10ac17736e715b377e7b7bde474cb8105165d77474df4c3619b10b3"
+
+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-nav_0.6.bb b/meta-python/recipes-devtools/python/python3-flask-nav_0.6.bb
index d25115251d..d7edba25c1 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
@@ -1,2 +1,15 @@
+DESCRIPTION = "Easily create navigation for Flask applications."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=2729ee82259d601d90d28b0574d12416"
+
+SRC_URI[md5sum] = "4d51cfd06d58f8d0fe85775a6696c0e5"
+SRC_URI[sha256sum] = "44e40b755380a1e68ab521a2f9174de259a2c94ddcdaabf36b3aca2e110a33f4"
+
+PYPI_PACKAGE = "flask-nav"
+
inherit pypi setuptools3
-require python-flask-nav.inc
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-blinker \
+ ${PYTHON_PN}-flask \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb b/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb
deleted file mode 100644
index 2102554b66..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-pymongo_0.5.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-pymongo.inc
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
new file mode 100644
index 0000000000..a995a2ea39
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-pymongo_2.3.0.bb
@@ -0,0 +1,17 @@
+SUMMARY = "PyMongo support for Flask applications"
+DESCRIPTION = "PyMongo support for Flask applications."
+HOMEPAGE = "https://github.com/mitsuhiko/flask/"
+SECTION = "devel/python"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://flask_pymongo/wrappers.py;beginline=1;endline=24;md5=424c4e1047d28e01b4e4634a069c019d"
+
+SRC_URI[md5sum] = "94df71e6800b1d7915cc91a74b70f959"
+SRC_URI[sha256sum] = "620eb02dc8808a5fcb90f26cab6cba9d6bf497b15032ae3ca99df80366e33314"
+
+PYPI_PACKAGE = "Flask-PyMongo"
+
+inherit pypi setuptools3
+
+DEPENDS = "${PYTHON_PN}-vcversioner ${PYTHON_PN}-vcversioner-native"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-pymongo ${PYTHON_PN}-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..7d5f1ea41d
--- /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} = "${PYTHON_PN}-flask"
diff --git a/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb b/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb
deleted file mode 100644
index 6bff59a565..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-restful_0.3.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-flask-restful.inc
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.4.bb b/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.4.bb
new file mode 100644
index 0000000000..4dae0d14ba
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-socketio_5.3.4.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] = "1cbd379c9bf68ac37bcc4750d01708922fa6365d13a5447d3f8893792879410c"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-flask \
+ ${PYTHON_PN}-socketio \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb b/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb
deleted file mode 100644
index 07f45bcfff..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.3.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-sqlalchemy.inc
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
new file mode 100644
index 0000000000..3aa6303da7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-sqlalchemy_2.5.1.bb
@@ -0,0 +1,11 @@
+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-uploads_0.2.1.bb b/meta-python/recipes-devtools/python/python3-flask-uploads_0.2.1.bb
index 758c2acf71..388e257a8b 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
@@ -1,2 +1,14 @@
+DESCRIPTION = "Flexible and efficient upload handling for Flask"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=b712ac634b39469660c9bdfb8d03421c"
+
+SRC_URI[md5sum] = "e5eee34aa92b64a4d22847672b3858a1"
+SRC_URI[sha256sum] = "53ecbd6033667d50ae02b63adebbaa33c7fc56c09e5293025810cf9d841ecb02"
+
+PYPI_PACKAGE = "Flask-Uploads"
+
inherit pypi setuptools3
-require python-flask-uploads.inc
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-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 251017f81e..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
@@ -1,2 +1,24 @@
+SUMMARY = "Customizable user account management for Flask"
+DESCRIPTION = "Customizable User Account Management for Flask; Register \
+Confirm email, Login, Change username, Change password, Forgot Password \
+and more."
+HOMEPAGE = " https://github.com/lingthio/Flask-User"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=97de97cd9d6e23c88129d884588ce71a"
+
+SRC_URI[md5sum] = "f7965e66ca139c8436896da07e66c21f"
+SRC_URI[sha256sum] = "601abcc0343dfbae0c56273d98362d5cdc266ac84d20b3f65a212e4a2c83b302"
+
+PYPI_PACKAGE = "Flask-User"
+
inherit pypi setuptools3
-require python-flask-user.inc
+
+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-versioned_0.9.4-20101221.bb b/meta-python/recipes-devtools/python/python3-flask-versioned_0.9.4-20101221.bb
new file mode 100644
index 0000000000..7aaf439b83
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-versioned_0.9.4-20101221.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Add version info to file paths."
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://flaskext/versioned/__init__.py;md5=dcb7d97884bf08c256ff5795766bcd24"
+
+PYPI_PACKAGE = "Flask-Versioned"
+SRC_URI[sha256sum] = "516694dc860a1bc4f22ab60b324a85083c0150522be109282a3bed681057fd34"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.2.bb b/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.2.bb
deleted file mode 100644
index 52362a8659..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask-wtf_0.14.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask-wtf.inc
diff --git a/meta-python/recipes-devtools/python/python3-flask-wtf_1.1.1.bb b/meta-python/recipes-devtools/python/python3-flask-wtf_1.1.1.bb
new file mode 100644
index 0000000000..ec47fcac2c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask-wtf_1.1.1.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Simple integration of Flask and WTForms."
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=d98d089889e14b227732d45dac3aacc4"
+
+SRC_URI[sha256sum] = "41c4244e9ae626d63bed42ae4785b90667b885b1535d5a4095e1f63060d12aa9"
+
+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_0.12.2.bb b/meta-python/recipes-devtools/python/python3-flask_0.12.2.bb
deleted file mode 100644
index cd439900c9..0000000000
--- a/meta-python/recipes-devtools/python/python3-flask_0.12.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-flask.inc
diff --git a/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb b/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb
new file mode 100644
index 0000000000..c4c1ff7dec
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-flask_2.3.2.bb
@@ -0,0 +1,24 @@
+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] = "8c2f9abd47a9e8df7f0c3f091ce9497d011dc3b31effcf4c85a6e2b50f4114ef"
+
+PYPI_PACKAGE = "Flask"
+
+inherit pypi python_setuptools_build_meta
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} = " \
+ ${PYTHON_PN}-blinker \
+ ${PYTHON_PN}-click \
+ ${PYTHON_PN}-itsdangerous \
+ ${PYTHON_PN}-jinja2 \
+ ${PYTHON_PN}-profile \
+ ${PYTHON_PN}-werkzeug \
+"
diff --git a/meta-python/recipes-devtools/python/python3-frozenlist_1.4.0.bb b/meta-python/recipes-devtools/python/python3-frozenlist_1.4.0.bb
new file mode 100644
index 0000000000..340b0e3845
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-frozenlist_1.4.0.bb
@@ -0,0 +1,11 @@
+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] = "09163bdf0b2907454042edb19f887c6d33806adc71fbd54afc14908bfdc22251"
+
+inherit pypi python_setuptools_build_meta
+
+BBCLASSEXTEND = "native nativesdk"
+
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.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_6.0.bb b/meta-python/recipes-devtools/python/python3-gcovr_6.0.bb
new file mode 100644
index 0000000000..21c36687e2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gcovr_6.0.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "generate GCC code coverage reports"
+HOMEPAGE = "https://gcovr.com"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=6542fc4ce5904ffb741ef56f8fe33452"
+
+SRC_URI = "git://github.com/gcovr/gcovr.git;branch=master;protocol=https"
+SRCREV = "1221ef62ff0de15bbeaf79e68e08a65d62c73ff4"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+PIP_INSTALL_PACKAGE = "gcovr"
+
+RDEPENDS:${PN} += "${PYTHON_PN}-jinja2 ${PYTHON_PN}-lxml ${PYTHON_PN}-setuptools ${PYTHON_PN}-pygments ${PYTHON_PN}-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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-geojson/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-geojson_3.0.1.bb b/meta-python/recipes-devtools/python/python3-geojson_3.0.1.bb
new file mode 100644
index 0000000000..671fe4f23a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-geojson_3.0.1.bb
@@ -0,0 +1,25 @@
+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] = "ff3d75acab60b1e66504a11f7ea12c104bad32ff3c410a807788663b966dee4a"
+
+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-geomet_1.0.0.bb b/meta-python/recipes-devtools/python/python3-geomet_1.0.0.bb
new file mode 100644
index 0000000000..84356cf6fd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-geomet_1.0.0.bb
@@ -0,0 +1,25 @@
+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 = "7fff4438510c30e592db858b2d519eddb5837a6c"
+
+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-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..ac8b031cf5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gevent/0001-_setuputils.py-Do-not-add-sys_inc_dir.patch
@@ -0,0 +1,40 @@
+From f3267ad7994a4b66e6bcf72cb0e418105f77bd52 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 d98f716..31134a4 100644
+--- a/_setuputils.py
++++ b/_setuputils.py
+@@ -161,7 +161,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()
+@@ -175,7 +174,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)
+ ]
+
+--
+2.38.0
+
diff --git a/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb b/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb
deleted file mode 100644
index 1f172e5868..0000000000
--- a/meta-python/recipes-devtools/python/python3-gevent_1.2.2.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-require python-gevent.inc
-inherit setuptools3
-
diff --git a/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb b/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb
new file mode 100644
index 0000000000..a82abcc096
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gevent_23.7.0.bb
@@ -0,0 +1,35 @@
+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 python3-cython-native"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-greenlet \
+ ${PYTHON_PN}-mime \
+ ${PYTHON_PN}-pprint \
+ "
+
+SRC_URI += "file://0001-_setuputils.py-Do-not-add-sys_inc_dir.patch"
+
+SRC_URI[sha256sum] = "d0d3630674c1b344b256a298ab1ff43220f840b12af768131b5d74e485924237"
+
+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-gmpy2_2.1.5.bb b/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb
new file mode 100644
index 0000000000..9a66af9a98
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gmpy2_2.1.5.bb
@@ -0,0 +1,14 @@
+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
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-gmqtt_0.6.12.bb b/meta-python/recipes-devtools/python/python3-gmqtt_0.6.12.bb
new file mode 100644
index 0000000000..c06e94e7a3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gmqtt_0.6.12.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] = "7df03792343089ae62dc7cd6f8be356861c4fc68768cefa22f3d8de5e7e5be48"
+
+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
new file mode 100644
index 0000000000..b97c4f3f5d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gnupg_0.5.0.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] = "70758e387fc0e0c4badbcb394f61acbe68b34970a8fed7e0f7c89469fe17912a"
+
+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.11.1.bb b/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb
new file mode 100644
index 0000000000..8ac34e6398
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-api-core_2.11.1.bb
@@ -0,0 +1,26 @@
+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] = "25d29e05a0058ed5f19c61c0a78b1b53adea4d9364b464d014fbda941f6d1c9a"
+
+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-python-client_2.93.0.bb b/meta-python/recipes-devtools/python/python3-google-api-python-client_2.93.0.bb
new file mode 100644
index 0000000000..14a3b4fbed
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-api-python-client_2.93.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] = "62ee28e96031a10a1c341f226a75ac6a4f16bdb1d888dc8222b2cdca133d0031"
+
+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_2.22.0.bb b/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb
new file mode 100644
index 0000000000..ff3f422f33
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-google-auth_2.22.0.bb
@@ -0,0 +1,27 @@
+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] = "164cba9af4e6e4e40c3a4f90a1a6c12ee56f14c0b4868d1ca91b32826ab334ce"
+
+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-googleapis-common-protos_1.59.1.bb b/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.1.bb
new file mode 100644
index 0000000000..802a434993
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-googleapis-common-protos_1.59.1.bb
@@ -0,0 +1,14 @@
+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] = "b35d530fe825fb4227857bc47ad84c33c809ac96f312e13182bdeaa2abe1178a"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-grpcio \
+ ${PYTHON_PN}-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.0.1.bb b/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
new file mode 100644
index 0000000000..f833e69032
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gpiod_2.0.1.bb
@@ -0,0 +1,38 @@
+SUMMARY = "Python bindings for libgpiod."
+AUTHOR = "Bartosz Golaszewski <brgl@bgdev.pl>"
+
+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=57;endline=57;md5=120334ed83ec0cb248605e775bd13b87"
+
+SRC_URI += "file://run-ptest"
+
+SRC_URI[sha256sum] = "d5c0f9502e97e7359b9dd601e29f15d668983ce50f5c13323f3302845f790fa6"
+
+inherit setuptools3 ptest pypi
+
+PYPI_PACKAGE = "libgpiod"
+
+DEPENDS += "libgpiod"
+RDEPENDS:${PN} += " \
+ libgpiod (>= 2.0) \
+ python3-datetime \
+ python3-profile \
+"
+RDEPENDS:${PN}-ptest += " \
+ libgpiod-ptest \
+ python3-setuptools \
+"
+
+export GPIOD_WITH_TESTS = "${@bb.utils.contains("PTEST_ENABLED", "1", "1", "0", d)}"
+
+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}/build/lib*/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}/build/lib*/tests/procname/_ext* ${D}${PTEST_PATH}/gpiod-test/procname
+ install -m 0644 ${S}/tests/procname/*.py ${D}${PTEST_PATH}/gpiod-test/procname
+}
diff --git a/meta-python/recipes-devtools/python/python3-gpsd-py3_0.3.0.bb b/meta-python/recipes-devtools/python/python3-gpsd-py3_0.3.0.bb
new file mode 100644
index 0000000000..50c1ebd153
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gpsd-py3_0.3.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "This is a library for polling gpsd in Python3"
+HOMEPAGE = "https://github.com/MartijnBraam/gpsd-py3"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=10;endline=10;md5=c2d9994c57f0444e39f1dab19af50254"
+SRC_URI[md5sum] = "041ce56e8879e2104b4d54c8119cd529"
+SRC_URI[sha256sum] = "2908d3bd78dfb6720ecfe22f97e139b5a4a198f38df3a77215cf644a33513192"
+
+PYPI_PACKAGE = "gpsd-py3"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+ python3 \
+"
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
new file mode 100644
index 0000000000..506c738133
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-graphviz_0.20.1.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=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-greenlet/0001-cleanup-Drop-using-register-storage-class-keyword-ev.patch b/meta-python/recipes-devtools/python/python3-greenlet/0001-cleanup-Drop-using-register-storage-class-keyword-ev.patch
new file mode 100644
index 0000000000..2a6ddd4726
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-greenlet/0001-cleanup-Drop-using-register-storage-class-keyword-ev.patch
@@ -0,0 +1,247 @@
+From 74d8c5ecdc677a7a412c7f782fe8488a5d987333 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 5 Feb 2023 19:05:45 -0800
+Subject: [PATCH] cleanup: Drop using 'register' storage class keyword everywhere
+
+This has been dropped in c++17 and newer
+
+Upstream-Status: Submitted [https://github.com/python-greenlet/greenlet/pull/347]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/greenlet/platform/switch_alpha_unix.h | 4 ++--
+ src/greenlet/platform/switch_arm32_gcc.h | 2 +-
+ src/greenlet/platform/switch_arm32_ios.h | 2 +-
+ src/greenlet/platform/switch_csky_gcc.h | 2 +-
+ src/greenlet/platform/switch_mips_unix.h | 4 ++--
+ src/greenlet/platform/switch_ppc64_aix.h | 4 ++--
+ src/greenlet/platform/switch_ppc64_linux.h | 4 ++--
+ src/greenlet/platform/switch_ppc_aix.h | 4 ++--
+ src/greenlet/platform/switch_ppc_linux.h | 4 ++--
+ src/greenlet/platform/switch_ppc_macosx.h | 4 ++--
+ src/greenlet/platform/switch_ppc_unix.h | 4 ++--
+ src/greenlet/platform/switch_s390_unix.h | 4 ++--
+ src/greenlet/platform/switch_sparc_sun_gcc.h | 4 ++--
+ src/greenlet/platform/switch_x32_unix.h | 4 ++--
+ src/greenlet/platform/switch_x86_unix.h | 2 +-
+ 15 files changed, 26 insertions(+), 26 deletions(-)
+
+diff --git a/src/greenlet/platform/switch_alpha_unix.h b/src/greenlet/platform/switch_alpha_unix.h
+index 216619f..7e07abf 100644
+--- a/src/greenlet/platform/switch_alpha_unix.h
++++ b/src/greenlet/platform/switch_alpha_unix.h
+@@ -9,8 +9,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int ret;
+- register long *stackref, stsizediff;
++ int ret;
++ long *stackref, stsizediff;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ volatile ("mov $30, %0" : "=r" (stackref) : );
+ {
+diff --git a/src/greenlet/platform/switch_arm32_gcc.h b/src/greenlet/platform/switch_arm32_gcc.h
+index 035d6b9..655003a 100644
+--- a/src/greenlet/platform/switch_arm32_gcc.h
++++ b/src/greenlet/platform/switch_arm32_gcc.h
+@@ -56,7 +56,7 @@ __attribute__((optimize("no-omit-frame-pointer")))
+ slp_switch(void)
+ {
+ void *fp;
+- register int *stackref, stsizediff;
++ int *stackref, stsizediff;
+ int result;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ volatile ("mov r0," REG_FP "\n\tstr r0,%0" : "=m" (fp) : : "r0");
+diff --git a/src/greenlet/platform/switch_arm32_ios.h b/src/greenlet/platform/switch_arm32_ios.h
+index e993707..9e640e1 100644
+--- a/src/greenlet/platform/switch_arm32_ios.h
++++ b/src/greenlet/platform/switch_arm32_ios.h
+@@ -38,7 +38,7 @@ __attribute__((optimize("no-omit-frame-pointer")))
+ slp_switch(void)
+ {
+ void *fp;
+- register int *stackref, stsizediff, result;
++ int *stackref, stsizediff, result;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ volatile ("str " REG_FP ",%0" : "=m" (fp));
+ __asm__ ("mov %0," REG_SP : "=r" (stackref));
+diff --git a/src/greenlet/platform/switch_csky_gcc.h b/src/greenlet/platform/switch_csky_gcc.h
+index 7486b94..ac469d3 100644
+--- a/src/greenlet/platform/switch_csky_gcc.h
++++ b/src/greenlet/platform/switch_csky_gcc.h
+@@ -23,7 +23,7 @@ __attribute__((optimize("no-omit-frame-pointer")))
+ #endif
+ slp_switch(void)
+ {
+- register int *stackref, stsizediff;
++ int *stackref, stsizediff;
+ int result;
+
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+diff --git a/src/greenlet/platform/switch_mips_unix.h b/src/greenlet/platform/switch_mips_unix.h
+index 1916b26..b9003e9 100644
+--- a/src/greenlet/platform/switch_mips_unix.h
++++ b/src/greenlet/platform/switch_mips_unix.h
+@@ -19,8 +19,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register int *stackref, stsizediff;
++ int err;
++ int *stackref, stsizediff;
+ #ifdef __mips64
+ uint64_t gpsave;
+ #endif
+diff --git a/src/greenlet/platform/switch_ppc64_aix.h b/src/greenlet/platform/switch_ppc64_aix.h
+index e07b8de..e7e0b87 100644
+--- a/src/greenlet/platform/switch_ppc64_aix.h
++++ b/src/greenlet/platform/switch_ppc64_aix.h
+@@ -74,8 +74,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register long *stackref, stsizediff;
++ int err;
++ long *stackref, stsizediff;
+ void * toc;
+ void * r30;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+diff --git a/src/greenlet/platform/switch_ppc64_linux.h b/src/greenlet/platform/switch_ppc64_linux.h
+index 88e6847..3c324d0 100644
+--- a/src/greenlet/platform/switch_ppc64_linux.h
++++ b/src/greenlet/platform/switch_ppc64_linux.h
+@@ -76,8 +76,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register long *stackref, stsizediff;
++ int err;
++ long *stackref, stsizediff;
+ void * toc;
+ void * r30;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+diff --git a/src/greenlet/platform/switch_ppc_aix.h b/src/greenlet/platform/switch_ppc_aix.h
+index c7d476f..6d93c13 100644
+--- a/src/greenlet/platform/switch_ppc_aix.h
++++ b/src/greenlet/platform/switch_ppc_aix.h
+@@ -53,8 +53,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register int *stackref, stsizediff;
++ int err;
++ int *stackref, stsizediff;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ ("mr %0, 1" : "=r" (stackref) : );
+ {
+diff --git a/src/greenlet/platform/switch_ppc_linux.h b/src/greenlet/platform/switch_ppc_linux.h
+index 0a71255..e83ad70 100644
+--- a/src/greenlet/platform/switch_ppc_linux.h
++++ b/src/greenlet/platform/switch_ppc_linux.h
+@@ -49,8 +49,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register int *stackref, stsizediff;
++ int err;
++ int *stackref, stsizediff;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ ("mr %0, 1" : "=r" (stackref) : );
+ {
+diff --git a/src/greenlet/platform/switch_ppc_macosx.h b/src/greenlet/platform/switch_ppc_macosx.h
+index 56e573f..d6e5a03 100644
+--- a/src/greenlet/platform/switch_ppc_macosx.h
++++ b/src/greenlet/platform/switch_ppc_macosx.h
+@@ -46,8 +46,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register int *stackref, stsizediff;
++ int err;
++ int *stackref, stsizediff;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ ("; asm block 2\n\tmr %0, r1" : "=g" (stackref) : );
+ {
+diff --git a/src/greenlet/platform/switch_ppc_unix.h b/src/greenlet/platform/switch_ppc_unix.h
+index 2b3d307..ca590a5 100644
+--- a/src/greenlet/platform/switch_ppc_unix.h
++++ b/src/greenlet/platform/switch_ppc_unix.h
+@@ -47,8 +47,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register int *stackref, stsizediff;
++ int err;
++ int *stackref, stsizediff;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ ("mr %0, 1" : "=g" (stackref) : );
+ {
+diff --git a/src/greenlet/platform/switch_s390_unix.h b/src/greenlet/platform/switch_s390_unix.h
+index 6641854..9199367 100644
+--- a/src/greenlet/platform/switch_s390_unix.h
++++ b/src/greenlet/platform/switch_s390_unix.h
+@@ -36,8 +36,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int ret;
+- register long *stackref, stsizediff;
++ int ret;
++ long *stackref, stsizediff;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ #ifdef __s390x__
+ __asm__ volatile ("lgr %0, 15" : "=r" (stackref) : );
+diff --git a/src/greenlet/platform/switch_sparc_sun_gcc.h b/src/greenlet/platform/switch_sparc_sun_gcc.h
+index 652b57f..96990c3 100644
+--- a/src/greenlet/platform/switch_sparc_sun_gcc.h
++++ b/src/greenlet/platform/switch_sparc_sun_gcc.h
+@@ -51,8 +51,8 @@
+ static int
+ slp_switch(void)
+ {
+- register int err;
+- register int *stackref, stsizediff;
++ int err;
++ int *stackref, stsizediff;
+
+ /* Put current stack pointer into stackref.
+ * Register spilling is done in save/restore.
+diff --git a/src/greenlet/platform/switch_x32_unix.h b/src/greenlet/platform/switch_x32_unix.h
+index cb14ec1..893369c 100644
+--- a/src/greenlet/platform/switch_x32_unix.h
++++ b/src/greenlet/platform/switch_x32_unix.h
+@@ -22,8 +22,8 @@ slp_switch(void)
+ void* ebx;
+ unsigned int csr;
+ unsigned short cw;
+- register int err;
+- register int *stackref, stsizediff;
++ int err;
++ int *stackref, stsizediff;
+ __asm__ volatile ("" : : : REGS_TO_SAVE);
+ __asm__ volatile ("fstcw %0" : "=m" (cw));
+ __asm__ volatile ("stmxcsr %0" : "=m" (csr));
+diff --git a/src/greenlet/platform/switch_x86_unix.h b/src/greenlet/platform/switch_x86_unix.h
+index 3a95186..493fa6b 100644
+--- a/src/greenlet/platform/switch_x86_unix.h
++++ b/src/greenlet/platform/switch_x86_unix.h
+@@ -51,7 +51,7 @@ slp_switch(void)
+ #endif
+ void *ebp, *ebx;
+ unsigned short cw;
+- register int *stackref, stsizediff;
++ int *stackref, stsizediff;
+ __asm__ volatile ("" : : : "esi", "edi");
+ __asm__ volatile ("fstcw %0" : "=m" (cw));
+ __asm__ volatile ("movl %%ebp, %0" : "=m" (ebp));
+--
+2.39.1
+
diff --git a/meta-python/recipes-devtools/python/python3-greenlet_0.4.13.bb b/meta-python/recipes-devtools/python/python3-greenlet_0.4.13.bb
deleted file mode 100644
index 1aedf7fa8d..0000000000
--- a/meta-python/recipes-devtools/python/python3-greenlet_0.4.13.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit distutils3
-require python-greenlet.inc
diff --git a/meta-python/recipes-devtools/python/python3-greenlet_2.0.2.bb b/meta-python/recipes-devtools/python/python3-greenlet_2.0.2.bb
new file mode 100644
index 0000000000..a2e036a891
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-greenlet_2.0.2.bb
@@ -0,0 +1,10 @@
+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 += "file://0001-cleanup-Drop-using-register-storage-class-keyword-ev.patch"
+SRC_URI[sha256sum] = "e7c8dc13af7db097bed64a051d2dd49e9f0af495c26995c00a9ee842690d34c0"
+
+inherit pypi 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-direct_mmap-Use-off_t-on-linux.patch b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-direct_mmap-Use-off_t-on-linux.patch
new file mode 100644
index 0000000000..9b3e5d4a5f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-direct_mmap-Use-off_t-on-linux.patch
@@ -0,0 +1,37 @@
+From 45fdade6c0415ec5af3f9312e6311a4ccc682a7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Dec 2022 18:24:21 -0800
+Subject: [PATCH] direct_mmap: Use off_t on linux
+
+off64_t is not provided without defining _LARGEFILE64_SOURCE on musl
+this define is not defined automatically like glibc where it gets
+defined when _GNU_SOURCE is defined. Using off_t makes it portable
+across musl/glibc and for using 64bit off_t on glibc 32bit systems
+-D_FILE_OFFSET_BITS=64 can be defined during build via CXXFLAGS
+
+Upstream-Status: Submitted [https://github.com/abseil/abseil-cpp/pull/1349]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ absl/base/internal/direct_mmap.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/third_party/abseil-cpp/absl/base/internal/direct_mmap.h
++++ b/third_party/abseil-cpp/absl/base/internal/direct_mmap.h
+@@ -72,7 +72,7 @@ namespace base_internal {
+ // Platform specific logic extracted from
+ // https://chromium.googlesource.com/linux-syscall-support/+/master/linux_syscall_support.h
+ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+- off64_t offset) noexcept {
++ off_t offset) noexcept {
+ #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
+ defined(__m68k__) || defined(__sh__) || \
+ (defined(__hppa__) && !defined(__LP64__)) || \
+@@ -102,7 +102,7 @@ inline void* DirectMmap(void* start, siz
+ #else
+ return reinterpret_cast<void*>(
+ syscall(SYS_mmap2, start, length, prot, flags, fd,
+- static_cast<off_t>(offset / pagesize)));
++ offset / pagesize));
+ #endif
+ #elif defined(__s390x__)
+ // On s390x, mmap() arguments are passed in memory.
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
new file mode 100644
index 0000000000..8c70b2b6a6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-protobuf-Disable-musttail-attribute-on-mips.patch
@@ -0,0 +1,24 @@
+From 64d737318656286f69ddc5ad654072785ddcbbed Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Sep 2022 19:09:15 -0700
+Subject: [PATCH] protobuf: Disable musttail attribute on mips
+
+See https://github.com/llvm/llvm-project/issues/57795
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
+---
+ third_party/protobuf/src/google/protobuf/port_def.inc | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/third_party/protobuf/src/google/protobuf/port_def.inc
++++ b/third_party/protobuf/src/google/protobuf/port_def.inc
+@@ -338,6 +338,7 @@ static_assert(PROTOBUF_ABSL_MIN(20230125
+ #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(__i386__) && \
+ !(defined(__NDK_MAJOR__) && __NDK_MAJOR <= 24)
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
new file mode 100644
index 0000000000..4aa11bd57a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -0,0 +1,58 @@
+From 9b2f1d400db8b8d0045f5a58a748a2dc52b5c9ef Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 17 Feb 2021 13:38:55 -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>
+---
+ setup.py | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+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', '-'],
++ 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():
+ # 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, cxx_args, '-x', 'c++', '-std=c++14', '-', '-latomic'],
+ stdin=PIPE,
+ stdout=PIPE,
+ stderr=PIPE)
+--
+2.25.1
+
diff --git a/meta-python/recipes-devtools/python/python3-grpcio-tools_1.56.0.bb b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.56.0.bb
new file mode 100644
index 0000000000..8fbe1fa91f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio-tools_1.56.0.bb
@@ -0,0 +1,20 @@
+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 \
+ file://0001-direct_mmap-Use-off_t-on-linux.patch \
+ "
+SRC_URI[sha256sum] = "39f5877cea514b3da9f2683dfb3ffb45ef47b05f4ff39c287d7d61c5057f48b8"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-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..f970cf3c3c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-Include-missing-cstdint-header.patch
@@ -0,0 +1,32 @@
+From 752e30eebe5b91c323bafcbea8d450dd5683701a 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>
+--
+2.39.1
+
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/0001-direct_mmap-Use-off_t-on-linux.patch b/meta-python/recipes-devtools/python/python3-grpcio/0001-direct_mmap-Use-off_t-on-linux.patch
new file mode 100644
index 0000000000..49df528d7e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-direct_mmap-Use-off_t-on-linux.patch
@@ -0,0 +1,42 @@
+From 45fdade6c0415ec5af3f9312e6311a4ccc682a7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 28 Dec 2022 18:24:21 -0800
+Subject: [PATCH] direct_mmap: Use off_t on linux
+
+off64_t is not provided without defining _LARGEFILE64_SOURCE on musl
+this define is not defined automatically like glibc where it gets
+defined when _GNU_SOURCE is defined. Using off_t makes it portable
+across musl/glibc and for using 64bit off_t on glibc 32bit systems
+-D_FILE_OFFSET_BITS=64 can be defined during build via CXXFLAGS
+
+Upstream-Status: Submitted [https://github.com/abseil/abseil-cpp/pull/1349]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ absl/base/internal/direct_mmap.h | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/absl/base/internal/direct_mmap.h b/absl/base/internal/direct_mmap.h
+index 815b8d23..fdf88f0b 100644
+--- a/absl/base/internal/direct_mmap.h
++++ b/absl/base/internal/direct_mmap.h
+@@ -72,7 +72,7 @@ namespace base_internal {
+ // Platform specific logic extracted from
+ // https://chromium.googlesource.com/linux-syscall-support/+/master/linux_syscall_support.h
+ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+- off64_t offset) noexcept {
++ off_t offset) noexcept {
+ #if defined(__i386__) || defined(__ARM_ARCH_3__) || defined(__ARM_EABI__) || \
+ defined(__m68k__) || defined(__sh__) || \
+ (defined(__hppa__) && !defined(__LP64__)) || \
+@@ -102,7 +102,7 @@ inline void* DirectMmap(void* start, size_t length, int prot, int flags, int fd,
+ #else
+ return reinterpret_cast<void*>(
+ syscall(SYS_mmap2, start, length, prot, flags, fd,
+- static_cast<off_t>(offset / pagesize)));
++ offset / pagesize));
+ #endif
+ #elif defined(__s390x__)
+ // On s390x, mmap() arguments are passed in memory.
+--
+2.39.0
+
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
new file mode 100644
index 0000000000..13911ddcf3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-setup.py-Do-not-mix-C-and-C-compiler-options.patch
@@ -0,0 +1,73 @@
+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(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -206,8 +206,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)
+@@ -216,8 +219,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)
+--- a/src/python/grpcio/commands.py
++++ b/src/python/grpcio/commands.py
+@@ -228,8 +228,10 @@ class BuildExt(build_ext.build_ext):
+ """
+ try:
+ # TODO(lidiz) Remove the generated a.out for success tests.
+- cc = os.environ.get('CC', 'cc')
+- 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)
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..918c6c8601
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch
@@ -0,0 +1,27 @@
+From 4432b9a296c9c287dfe281b4d464dfd03e4eb721 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 57faf37..3c700c2 100644
+--- a/third_party/zlib/gzguts.h
++++ b/third_party/zlib/gzguts.h
+@@ -19,6 +19,7 @@
+ #endif
+
+ #include <stdio.h>
++#include <unistd.h>
+ #include "zlib.h"
+ #ifdef STDC
+ # include <string.h>
+--
+2.39.1
+
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
new file mode 100644
index 0000000000..4100cf63f7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/abseil-ppc-fixes.patch
@@ -0,0 +1,88 @@
+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)
+3) powerpc stacktrace implementation has ppc64 assumptions (fixed)
+4) examine_stack.cpp makes glibc assumptions on powerpc (fixed)
+
+Sourced from void linux
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+Signed-off-by: Xu Huan <xuhuan.fnst@fujitsu.com>
+---
+Upstream-Status: Pending
+
+ 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 +-
+ 4 files changed, 12 insertions(+), 5 deletions(-)
+
+--- a/absl/base/internal/unscaledcycleclock.cc
++++ b/absl/base/internal/unscaledcycleclock.cc
+@@ -20,7 +20,7 @@
+ #include <intrin.h>
+ #endif
+
+-#if defined(__powerpc__) || defined(__ppc__)
++#if (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
+ #ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
+ #elif defined(__FreeBSD__)
+@@ -58,7 +58,7 @@ double UnscaledCycleClock::Frequency() {
+ return base_internal::NominalCPUFrequency();
+ }
+
+-#elif defined(__powerpc__) || defined(__ppc__)
++#elif (defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)
+
+ int64_t UnscaledCycleClock::Now() {
+ #ifdef __GLIBC__
+--- a/absl/debugging/internal/examine_stack.cc
++++ b/absl/debugging/internal/examine_stack.cc
+@@ -33,6 +33,10 @@
+ #include <csignal>
+ #include <cstdio>
+
++#if defined(__powerpc__)
++#include <asm/ptrace.h>
++#endif
++
+ #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)
+ return reinterpret_cast<void*>(context->uc_mcontext.pc);
+ #elif defined(__powerpc64__)
+ return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
+-#elif defined(__powerpc__)
++#elif defined(__powerpc__) && defined(__GLIBC__)
+ return reinterpret_cast<void*>(context->uc_mcontext.uc_regs->gregs[32]);
++#elif defined(__powerpc__)
++ return reinterpret_cast<void*>(((struct pt_regs *)context->uc_regs)->gregs[32]);
+ #elif defined(__riscv)
+ return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
+ #elif defined(__s390__) && !defined(__s390x__)
+--- a/absl/debugging/internal/stacktrace_config.h
++++ b/absl/debugging/internal/stacktrace_config.h
+@@ -60,7 +60,7 @@
+ #elif defined(__i386__) || defined(__x86_64__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_x86-inl.inc"
+-#elif defined(__ppc__) || defined(__PPC__)
++#elif (defined(__ppc__) || defined(__PPC__)) && defined(__GLIBC__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_powerpc-inl.inc"
+ #elif defined(__aarch64__)
+--- 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__) || \
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
++ defined(__riscv) || \
+ defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
diff --git a/meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch b/meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch
new file mode 100644
index 0000000000..088ce33fc5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/mips_bigendian.patch
@@ -0,0 +1,17 @@
+Upstream-Status: Pending
+
+--- 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
new file mode 100644
index 0000000000..5dacc689fc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio/ppc-boringssl-support.patch
@@ -0,0 +1,17 @@
+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
+@@ -96,6 +96,9 @@ extern "C" {
+ #elif defined(__ARMEL__) || defined(_M_ARM)
+ #define OPENSSL_32_BIT
+ #define OPENSSL_ARM
++#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.56.0.bb b/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb
new file mode 100644
index 0000000000..fc871adec4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-grpcio_1.56.0.bb
@@ -0,0 +1,52 @@
+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://mips_bigendian.patch \
+ file://0001-Include-missing-cstdint-header.patch \
+ file://abseil-ppc-fixes.patch;patchdir=third_party/abseil-cpp \
+ file://0001-direct_mmap-Use-off_t-on-linux.patch;patchdir=third_party/abseil-cpp \
+ file://0001-zlib-Include-unistd.h-for-open-close-C-APIs.patch \
+"
+SRC_URI[sha256sum] = "4c08ee21b3d10315b8dc26f6c13917b20ed574cdbed2d2d80c53d5508fdcc0f2"
+
+RDEPENDS:${PN} = "${PYTHON_PN}-protobuf \
+ ${PYTHON_PN}-setuptools \
+ ${PYTHON_PN}-six \
+"
+
+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
new file mode 100644
index 0000000000..98d73fa037
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gunicorn/run-ptest
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# there needs to be something in /etc/resolv.conf for the gunicorn
+# 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}}'
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
new file mode 100644
index 0000000000..f381b9df2b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-gunicorn_20.1.0.bb
@@ -0,0 +1,25 @@
+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-h11_0.14.0.bb b/meta-python/recipes-devtools/python/python3-h11_0.14.0.bb
new file mode 100644
index 0000000000..2bddefa3f0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-h11_0.14.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
+HOMEPAGE = "https://github.com/python-hyper/h11"
+LICENSE = "MIT"
+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-setup_build.py-avoid-absolute-path.patch b/meta-python/recipes-devtools/python/python3-h5py/0001-setup_build.py-avoid-absolute-path.patch
new file mode 100644
index 0000000000..0b8555734a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-h5py/0001-setup_build.py-avoid-absolute-path.patch
@@ -0,0 +1,29 @@
+From 6f8cee826ef9309c174aa97cb6af2ba532ed9dba Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Thu, 28 Jan 2021 18:44:10 -0800
+Subject: [PATCH] setup_build.py: avoid absolute path
+
+Prevent absolute path from ending up in the egg-info SOURCES.txt.
+
+Upstream-Status: Submitted [https://github.com/h5py/h5py/pull/1803]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+---
+ setup_build.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup_build.py b/setup_build.py
+index 78c6677..64db7f7 100644
+--- a/setup_build.py
++++ b/setup_build.py
+@@ -21,7 +21,7 @@ from setup_configure import BuildConfig
+
+
+ def localpath(*args):
+- return op.abspath(op.join(op.dirname(__file__), *args))
++ return op.join(*args)
+
+
+ MODULES = ['defs', '_errors', '_objects', '_proxy', 'h5fd', 'h5z',
diff --git a/meta-python/recipes-devtools/python/python3-h5py_3.9.0.bb b/meta-python/recipes-devtools/python/python3-h5py_3.9.0.bb
new file mode 100644
index 0000000000..834bb031ca
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-h5py_3.9.0.bb
@@ -0,0 +1,39 @@
+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] = "e604db6521c1e367c6bd7fad239c847f53cc46646f2d2651372d05ae5e95f817"
+
+SRC_URI += "file://0001-setup_build.py-avoid-absolute-path.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}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}`; 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-haversine_2.8.0.bb b/meta-python/recipes-devtools/python/python3-haversine_2.8.0.bb
new file mode 100644
index 0000000000..0c7b414d98
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-haversine_2.8.0.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] = "cca39afd2ae5f1e6ed9231b332395bb8afb2e0a64edf70c238c176492e60c150"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-numpy"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-hexbytes_0.3.1.bb b/meta-python/recipes-devtools/python/python3-hexbytes_0.3.1.bb
new file mode 100644
index 0000000000..19b5813ad3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-hexbytes_0.3.1.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=287820ad3553117aa2f92bf84c219324"
+
+SRC_URI[sha256sum] = "a3fe35c6831ee8fafd048c4c086b986075fc14fd46258fa24ecb8d65745f9a9d"
+
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-html2text/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..5b6d040368
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-html2text_2020.1.16.bb
@@ -0,0 +1,27 @@
+SUMMARY = "Convert HTML to Markdown-formatted text"
+HOMEPAGE = "https://github.com/Alir3z4/html2text"
+
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+
+SRC_URI[md5sum] = "c77b580c94d1a9e0145f23cc4472993d"
+SRC_URI[sha256sum] = "e296318e16b059ddb97f7a8a1d6a5c1d7af4544049a01e261731d2d5cc277bbb"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+RDEPENDS:${PN} += "python3-cgitb"
+
+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-html5lib_1.0.1.bb b/meta-python/recipes-devtools/python/python3-html5lib_1.0.1.bb
deleted file mode 100644
index 6bd8b49f55..0000000000
--- a/meta-python/recipes-devtools/python/python3-html5lib_1.0.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-html5lib.inc
diff --git a/meta-python/recipes-devtools/python/python3-html5lib_1.1.bb b/meta-python/recipes-devtools/python/python3-html5lib_1.1.bb
new file mode 100644
index 0000000000..ee44e837e1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-html5lib_1.1.bb
@@ -0,0 +1,17 @@
+SUMMARY = "HTML parser based on the WHATWG HTML specifcation"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1ba5ada9e6fead1fdc32f43c9f10ba7c"
+
+SRC_URI[md5sum] = "6748742e2ec4cb99287a6bc82bcfe2b0"
+SRC_URI[sha256sum] = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-lxml \
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-webencodings \
+ ${PYTHON_PN}-xml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
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..9614de920e
--- /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} += "\
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-pyparsing \
+"
diff --git a/meta-python/recipes-devtools/python/python3-huey_2.4.5.bb b/meta-python/recipes-devtools/python/python3-huey_2.4.5.bb
new file mode 100644
index 0000000000..dbddd6cb80
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-huey_2.4.5.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] = "760cf150deff1fa34b852da37701a5a750d1148f03ea07aa2b3764dc6060b4c3"
+
+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
new file mode 100644
index 0000000000..7d185989d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb
@@ -0,0 +1,24 @@
+DESCRIPTION = "Human friendly output for text interfaces using Python"
+HOMEPAGE = "https://humanfriendly.readthedocs.io/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5d178009f806c2bdd498a19be0013a7a"
+
+PYPI_PACKAGE = "humanfriendly"
+
+SRC_URI[sha256sum] = "6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"
+
+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 \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-humanize_0.5.1.bb b/meta-python/recipes-devtools/python/python3-humanize_0.5.1.bb
deleted file mode 100644
index 04464ac59e..0000000000
--- a/meta-python/recipes-devtools/python/python3-humanize_0.5.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-humanize.inc
diff --git a/meta-python/recipes-devtools/python/python3-humanize_4.7.0.bb b/meta-python/recipes-devtools/python/python3-humanize_4.7.0.bb
new file mode 100644
index 0000000000..81654af875
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-humanize_4.7.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] = "7ca0e43e870981fa684acb5b062deb307218193bca1a01f2b2676479df849b3a"
+
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ ${PYTHON_PN}-setuptools-scm-native \
+ ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-setuptools \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb b/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb
deleted file mode 100644
index 70813bf34c..0000000000
--- a/meta-python/recipes-devtools/python/python3-hyperlink_17.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-hyperlink.inc
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
new file mode 100644
index 0000000000..7cdecf1094
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-hyperlink_21.0.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "A featureful, correct URL for Python"
+HOMEPAGE = "https://github.com/python-hyper/hyperlink"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=6dc5b4bd3d02faedf08461621aa2aeca"
+
+SRC_URI[sha256sum] = "427af957daa58bc909471c6c40f74c5450fa123dd093fc53efd2e91d2705a56b"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "${PYTHON_PN}-stringold ${PYTHON_PN}-netclient ${PYTHON_PN}-idna"
+
+PACKAGES =. "${PN}-test "
+
+FILES:${PN}-test += " \
+ ${PYTHON_SITEPACKAGES_DIR}/hyperlinkt/test \
+"
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
new file mode 100644
index 0000000000..7bb5ee58cc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-icu/0001-Fix-host-contamination-of-include-files.patch
@@ -0,0 +1,41 @@
+From a82fea9663f0c70cf57cd06650f400e878afc5e4 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Fri, 16 Apr 2021 10:48:36 -0700
+Subject: [PATCH] Fix host contamination of include files
+
+python3-icu-2.5-r0 do_package_qa: QA Issue: python3-icu: The compile log indicates that host include and/or library paths were used.
+
+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 176c9ab..0a10268 100644
+--- a/setup.py
++++ b/setup.py
+@@ -68,7 +68,7 @@ elif platform.startswith('freebsd'):
+
+ CONFIGURE_WITH_ICU_CONFIG = {
+ 'darwin': False,
+- 'linux': True,
++ 'linux': False,
+ 'freebsd': False, # not tested
+ 'win32': False, # no icu-config
+ 'sunos5': False, # not tested
+@@ -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')],
+- include_dirs=_includes,
+ extra_compile_args=_cflags,
+ extra_link_args=_lflags,
+ libraries=_libraries)],
+--
+2.34.1
+
diff --git a/meta-python/recipes-devtools/python/python3-icu_2.11.bb b/meta-python/recipes-devtools/python/python3-icu_2.11.bb
new file mode 100644
index 0000000000..c66455c7e8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-icu_2.11.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] = "3ab531264cfe9132b3d2ac5d708da9a4649d25f6e6813730ac88cf040a08a844"
+
+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
new file mode 100644
index 0000000000..3643fcfd30
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-idna-ssl_1.1.0.bb
@@ -0,0 +1,2 @@
+inherit setuptools3
+require python-idna-ssl.inc
diff --git a/meta-python/recipes-devtools/python/python3-idna_2.6.bb b/meta-python/recipes-devtools/python/python3-idna_2.6.bb
deleted file mode 100644
index a08ca714ac..0000000000
--- a/meta-python/recipes-devtools/python/python3-idna_2.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-idna.inc
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
new file mode 100644
index 0000000000..6c97c374e0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ifaddr_0.2.0.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Cross-platform network interface and IP address enumeration \
+library"
+HOMEPAGE = "https://pypi.org/project/ifaddr/"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=8debe8d42320ec0ff24665319b625a5e"
+
+SRC_URI[sha256sum] = "cc0cbfcaabf765d44595825fb96a99bb12c79716b73b44330ea38ee2b0c4aed4"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-ctypes \
+"
diff --git a/meta-python/recipes-devtools/python/python3-imageio_2.31.1.bb b/meta-python/recipes-devtools/python/python3-imageio_2.31.1.bb
new file mode 100644
index 0000000000..904ddde70c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-imageio_2.31.1.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] = "f8436a02af02fd63f272dab50f7d623547a38f0e04a4a73e2b02ae1b8b180f27"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "python3-numpy python3-pillow"
diff --git a/meta-python/recipes-devtools/python/python3-imgtool_1.10.0.bb b/meta-python/recipes-devtools/python/python3-imgtool_1.10.0.bb
new file mode 100644
index 0000000000..5282bccd01
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-imgtool_1.10.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=9965f09ae52c04886a1f04e13ccdce57"
+
+SRC_URI[sha256sum] = "03b34e75934ac3d96e7c42b6bcaf11ceaf4f453f7c6f26c17d726bd183104b40"
+
+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_17.5.0.bb b/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb
deleted file mode 100644
index 0f04df4a67..0000000000
--- a/meta-python/recipes-devtools/python/python3-incremental_17.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-incremental.inc
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..016bafc134
--- /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} += " \
+ ${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-inflection/run-ptest b/meta-python/recipes-devtools/python/python3-inflection/run-ptest
new file mode 100644
index 0000000000..0caffb794c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inflection/run-ptest
@@ -0,0 +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}}'
+
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
new file mode 100644
index 0000000000..ea3b76d511
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inflection_0.5.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "A port of Ruby on Rails' inflection to Python."
+HOMEPAGE = "https://pypi.org/project/inflection"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2fb6fa1a6f1792d78de19ad1bb653c31"
+
+SRC_URI[md5sum] = "c3287d4f0e3bdf625a52d655cc514403"
+SRC_URI[sha256sum] = "1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI +=" \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}_ptest +=" \
+ ${PYTHON_PN}_pytest \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test_inflection.py ${D}${PTEST_PATH}/
+}
+
+
+RDEPENDS:${PN} += "${PYTHON_PN}-pytest"
+
+BBCLASSEXTEND = "native nativesdk"
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..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inotify/run-ptest
@@ -0,0 +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}}'
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..15fb92eedd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-inotify_git.bb
@@ -0,0 +1,35 @@
+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"
+
+SRC_URI = " \
+ git://github.com/dsoprea/pyinotify.git;branch=master;protocol=https \
+ file://run-ptest \
+"
+
+SRCREV = "9be6a51d1660991562eefaaddefa757ca0e0e00f"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3 ptest
+PIP_INSTALL_PACKAGE = "inotify"
+PIP_INSTALL_DIST_PATH = "${S}/dist"
+
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-logging \
+"
+
+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-intelhex_2.3.0.bb b/meta-python/recipes-devtools/python/python3-intelhex_2.3.0.bb
new file mode 100644
index 0000000000..befcb34780
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-intelhex_2.3.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Python library for Intel HEX files manipulations"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=4eba844696655c3eae07aca8e3a94772"
+
+SRC_URI[sha256sum] = "892b7361a719f4945237da8ccf754e9513db32f5628852785aea108dcd250093"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
diff --git a/meta-python/recipes-devtools/python/python3-intervals/run-ptest b/meta-python/recipes-devtools/python/python3-intervals/run-ptest
new file mode 100644
index 0000000000..357d8cb987
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-intervals/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..abf87c597c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-intervals_1.10.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "Interval arithmetic for Python"
+HOMEPAGE = "https://github.com/AlexandreDecan/python-intervals"
+SECTION = "devel/python"
+
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=05f1e16a8e59ce3e9a979e881816c2ab"
+
+PYPI_PACKAGE := "python-intervals"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+inherit pypi setuptools3 ptest
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test_intervals.py ${D}${PTEST_PATH}
+ cp -f ${S}/README.md ${D}${PTEST_PATH}
+}
+
+SRC_URI[sha256sum] = "0d26746eaed0be78a61dd289bb7a10721b08770bb3e807614835f490d514f2a5"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb b/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb
new file mode 100644
index 0000000000..796213fc67
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ipaddress_1.0.23.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Python 3.3+'s ipaddress for Python 2.6, 2.7, 3.2."
+HOMEPAGE = "https://github.com/phihag/ipaddress"
+LICENSE = "Python-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7f538584cc3407bf76042def7168548a"
+
+SRC_URI[md5sum] = "aaee67a8026782af1831148beb0d9060"
+SRC_URI[sha256sum] = "b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..9a8e6f7daf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-iperf_0.1.11.bb
@@ -0,0 +1,17 @@
+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"
+
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ipy/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-ipy_1.01.bb b/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
new file mode 100644
index 0000000000..8e7b5b987e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ipy_1.01.bb
@@ -0,0 +1,32 @@
+SUMMARY = "IPy - class and tools for handling of IPv4 and IPv6 addresses and networks"
+DESCRIPTION = "IPy is a Python module for handling IPv4 and IPv6 Addresses and Networks \
+in a fashion similar to perl's Net::IP and friends. The IP class allows \
+a comfortable parsing and handling for most notations in use for IPv4 \
+and IPv6 Addresses and Networks."
+SECTION = "devel/python"
+HOMEPAGE = "https://github.com/autocracy/python-ipy"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=848d24919845901b4f48bae5f13252e6"
+
+SRC_URI[md5sum] = "d6cf83e7f418ebbd23324ba1c658b907"
+SRC_URI[sha256sum] = "edeca741dea2d54aca568fa23740288c3fe86c0f3ea700344571e9ef14a7cc1a"
+
+inherit pypi setuptools3_legacy ptest
+
+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
+}
+
+PYPI_PACKAGE = "IPy"
+
+BBCLASSEXTEND = "native"
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
new file mode 100644
index 0000000000..2a28cf9ecb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ipython-genutils_0.2.0.bb
@@ -0,0 +1,12 @@
+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"
+
+SRC_URI[md5sum] = "5a4f9781f78466da0ea1a648f3e1f79f"
+SRC_URI[sha256sum] = "eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8"
+
+inherit setuptools3 pypi
diff --git a/meta-python/recipes-devtools/python/python3-ipython_8.14.0.bb b/meta-python/recipes-devtools/python/python3-ipython_8.14.0.bb
new file mode 100644
index 0000000000..83af99a4aa
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ipython_8.14.0.bb
@@ -0,0 +1,29 @@
+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] = "1d197b907b6ba441b692c48cf2a3a2de280dc0ac91a3405b39349a50272ca0a1"
+
+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 \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-iso3166/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..b32cfe5956
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-iso3166_2.1.1.bb
@@ -0,0 +1,25 @@
+SUMMARY = "Self-contained ISO 3166-1 country definitions"
+HOMEPAGE = "https://pypi.org/project/iso3166/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=5e2f4edc7e7408a82e4a1d05f229b695"
+
+SRC_URI[sha256sum] = "fcd551b8dda66b44e9f9e6d6bbbee3a1145a22447c0a556e5d0fb1ad1e491719"
+
+inherit pypi python_setuptools_build_meta 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-numbers"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb b/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb
deleted file mode 100644
index 4a332b53bd..0000000000
--- a/meta-python/recipes-devtools/python/python3-iso8601_0.1.12.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-iso8601.inc
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
new file mode 100644
index 0000000000..c65083b777
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-isodate_0.6.1.bb
@@ -0,0 +1,14 @@
+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} += " \
+ python3-numbers \
+ python3-six \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb b/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb
deleted file mode 100644
index 755b3e2f23..0000000000
--- a/meta-python/recipes-devtools/python/python3-isort_4.3.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-isort.inc
diff --git a/meta-python/recipes-devtools/python/python3-isort_5.12.0.bb b/meta-python/recipes-devtools/python/python3-isort_5.12.0.bb
new file mode 100644
index 0000000000..d111393eaf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-isort_5.12.0.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] = "8bef7dde241278824a6d83f44a544709b065191b95b6e50894bdc722fcba0504"
+
+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_0.24.bb b/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb
deleted file mode 100644
index a71c20f0e0..0000000000
--- a/meta-python/recipes-devtools/python/python3-itsdangerous_0.24.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools3
-require python-itsdangerous.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-compression \
-"
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
new file mode 100644
index 0000000000..2e8c7e7802
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-itsdangerous_2.1.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Various helpers to pass trusted data to untrusted environments and back."
+HOMEPAGE = "http://github.com/mitsuhiko/itsdangerous"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=4cda9a0ebd516714f360b0e9418cfb37"
+
+SRC_URI[sha256sum] = "5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-simplejson \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-json \
+"
diff --git a/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb b/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb
deleted file mode 100644
index 0ec23ba991..0000000000
--- a/meta-python/recipes-devtools/python/python3-javaobj-py3_0.2.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-javaobj-py3.inc
-inherit setuptools3
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
new file mode 100644
index 0000000000..5555a12563
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-javaobj-py3_0.4.3.bb
@@ -0,0 +1,19 @@
+SUMMARY = "Module for serializing and de-serializing Java objects."
+DESCRIPTION = "python-javaobj is a python library that provides functions\
+ for reading and writing (writing is WIP currently) Java objects serialized\
+ or will be deserialized by ObjectOutputStream. This form of object\
+ representation is a standard data interchange format in Java world."
+HOMEPAGE = "https://github.com/tcalmant/python-javaobj"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "38f74db3a57e9998a9774e3614afb95cb396f139f29b3fdb130c5af554435259"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb b/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.bb
new file mode 100644
index 0000000000..1b65f3bc9e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jdatetime_4.1.1.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] = "1dd0ee210160c7bd30002803c443e6260ac602ea65b065652a1d567d3bfdca7a"
+
+PYPI_PACKAGE = "jdatetime"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-modules \
+"
+
diff --git a/meta-python/recipes-devtools/python/python3-jdcal/run-ptest b/meta-python/recipes-devtools/python/python3-jdcal/run-ptest
new file mode 100644
index 0000000000..5cec711696
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jdcal/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
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
new file mode 100644
index 0000000000..8655150b03
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jdcal_1.4.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "This module contains functions for converting between Julian dates and calendar dates"
+DESCRIPTION = "A function for converting Gregorian calendar dates to Julian dates, \
+and another function for converting Julian calendar dates to Julian dates are defined. \
+Two functions for the reverse calculations are also defined."
+
+HOMEPAGE = "https://github.com/phn/jdcal"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=bd236e1f590973467a427bb354be0f46"
+
+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"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test_jdcal.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-jedi_0.18.2.bb b/meta-python/recipes-devtools/python/python3-jedi_0.18.2.bb
new file mode 100644
index 0000000000..41063d2ad2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jedi_0.18.2.bb
@@ -0,0 +1,20 @@
+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] = "bae794c30d07f6d910d32a7048af09b5a39ed740918da923c6b780790ebac612"
+
+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-jinja2_2.10.bb b/meta-python/recipes-devtools/python/python3-jinja2_2.10.bb
deleted file mode 100644
index 61156b630b..0000000000
--- a/meta-python/recipes-devtools/python/python3-jinja2_2.10.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-jinja2.inc
diff --git a/meta-python/recipes-devtools/python/python3-jmespath_1.0.1.bb b/meta-python/recipes-devtools/python/python3-jmespath_1.0.1.bb
new file mode 100644
index 0000000000..73f5f4d025
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jmespath_1.0.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "JMESPath (pronounced 'james path') allows you to declaratively specify how to extract elements from a JSON document."
+HOMEPAGE = "https://pypi.org/project/jmespath/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2683790f5fabb41a3f75b70558799eb4"
+
+SRC_URI[sha256sum] = "90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-math python3-json python3-numbers"
diff --git a/meta-python/recipes-devtools/python/python3-joblib_1.3.1.bb b/meta-python/recipes-devtools/python/python3-joblib_1.3.1.bb
new file mode 100644
index 0000000000..9186cbb19f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-joblib_1.3.1.bb
@@ -0,0 +1,16 @@
+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] = "1f937906df65329ba98013dc9692fe22a4c5e4a648112de500508b18a21b41e3"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-distutils \
+ python3-json \
+ python3-multiprocessing \
+ python3-pprint \
+ python3-pydoc \
+"
diff --git a/meta-python/recipes-devtools/python/python3-jsmin/run-ptest b/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
new file mode 100644
index 0000000000..cbcfffda5b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsmin/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+python3 test.py
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
new file mode 100644
index 0000000000..51b17066ee
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsmin_3.0.1.bb
@@ -0,0 +1,22 @@
+DESCRIPTION = "JavaScript minifier."
+HOMEPAGE = "https://github.com/tikitu/jsmin/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3a3301ce2ad647e172f4a1016c67324d"
+
+inherit setuptools3 pypi ptest
+SRC_URI[sha256sum] = "c0959a121ef94542e807a674142606f7e90214a2b3d1eb17300244bbb5cc2bfc"
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+ cp -f ${S}/jsmin/test.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-jsonpatch_1.23.bb b/meta-python/recipes-devtools/python/python3-jsonpatch_1.23.bb
deleted file mode 100644
index 73efceeed3..0000000000
--- a/meta-python/recipes-devtools/python/python3-jsonpatch_1.23.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-jsonpatch.inc
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..3d6deb2a61
--- /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} += " \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-jsonpointer \
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..4cc39a286a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsonpath-rw_1.4.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "A robust and significantly extended implementation of JSONPath for Python"
+HOMEPAGE = "https://github.com/kennknowles/python-jsonpath-rw"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.rst;beginline=198;endline=215;md5=2866908485c18dc999b6c8dc608563ec"
+
+SRC_URI[sha256sum] = "05c471281c45ae113f6103d1268ec7a4831a2e96aa80de45edc89b11fac4fbec"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-decorator \
+ python3-logging \
+ python3-ply \
+ python3-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-jsonpointer_2.0.bb b/meta-python/recipes-devtools/python/python3-jsonpointer_2.0.bb
deleted file mode 100644
index 8d0a09b432..0000000000
--- a/meta-python/recipes-devtools/python/python3-jsonpointer_2.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-jsonpointer.inc
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
new file mode 100644
index 0000000000..08ee15a920
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsonrpcclient_4.0.2.bb
@@ -0,0 +1,16 @@
+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-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
new file mode 100644
index 0000000000..7e058a757b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jsonrpcserver_5.0.9.bb
@@ -0,0 +1,23 @@
+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-jsonschema_2.6.0.bb b/meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb
deleted file mode 100644
index 9269907476..0000000000
--- a/meta-python/recipes-devtools/python/python3-jsonschema_2.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-jsonschema.inc
diff --git a/meta-python/recipes-devtools/python/python3-jstyleson/LICENSE b/meta-python/recipes-devtools/python/python3-jstyleson/LICENSE
new file mode 100644
index 0000000000..807babd62b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jstyleson/LICENSE
@@ -0,0 +1,8 @@
+The MIT License (MIT)
+Copyright (c) 2016 linjackson
+
+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-jstyleson_0.0.2.bb b/meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb
new file mode 100644
index 0000000000..237713bf12
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-jstyleson_0.0.2.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Library to parse JSON with js-style comments."
+HOMEPAGE = "https://github.com/linjackson78/jstyleson"
+
+SRC_URI += " file://LICENSE "
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${WORKDIR}/LICENSE;md5=d97b96c7337934ee448ffd4392f32079"
+
+PYPI_PACKAGE_EXT = "tar.gz"
+
+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
new file mode 100644
index 0000000000..b9c1c4e384
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-kconfiglib_14.1.0.bb
@@ -0,0 +1,16 @@
+DESCRIPTION = "Kconfiglib is a Kconfig implementation in Python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=712177a72a3937909543eda3ad1bfb7c"
+
+SRC_URI[md5sum] = "4ad68618824d4bad1d1de1d7eb838bba"
+SRC_URI[sha256sum] = "bed2cc2216f538eca4255a83a4588d8823563cdd50114f86cf1a2674e602c93c"
+
+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
new file mode 100644
index 0000000000..6c2af0d4ea
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-keras-applications_1.0.8.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Reference implementations of popular deep learning models"
+HOMEPAGE = "https://github.com/keras-team/keras-applications"
+SECTION = "devel/python"
+LICENSE = "MIT"
+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"
+
+RDEPENDS:${PN} = "python3-numpy \
+ python3-h5py \
+ "
diff --git a/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.1.2.bb b/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.1.2.bb
new file mode 100644
index 0000000000..749b6c8c9b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-keras-preprocessing_1.1.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Easy data preprocessing and data augmentation for deep learning models"
+HOMEPAGE = "https://github.com/keras-team/keras-preprocessing"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=1744b320500cc2e3112964d00cce7aa4"
+
+inherit pypi setuptools3
+
+SRC_URI[md5sum] = "d2a0e10437cfa5c2d09458a84fb58d05"
+SRC_URI[sha256sum] = "add82567c50c8bc648c14195bf544a5ce7c1f76761536956c3d2978970179ef3"
+
+PYPI_PACKAGE = "Keras_Preprocessing"
+PYPI_SRC_URI = "https://files.pythonhosted.org/packages/5e/f1/b44337faca48874333769a29398fe4666686733c8880aa160b9fd5dfe600/Keras_Preprocessing-${PV}.tar.gz"
+
+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
new file mode 100644
index 0000000000..0abc6c5c7e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-kivy/0001-add-support-for-glesv2.patch
@@ -0,0 +1,40 @@
+Upstream-Status: Pending
+
+--- a/setup.py
++++ b/setup.py
+@@ -695,7 +695,18 @@ def determine_gl_flags():
+ c_options['use_x11'] = True
+ c_options['use_egl'] = True
+ else:
+- flags['libraries'] = ['GL']
++ if cross_sysroot:
++ flags['include_dirs'] = [cross_sysroot + '/usr/include']
++ flags['library_dirs'] = [cross_sysroot + '/usr/lib']
++
++ if c_options['use_opengl_es2']:
++ print("using GLESv2 libraries")
++ flags['libraries'] = ['GLESv2']
++ else:
++ flags['libraries'] = ['GL']
++
++
++ print("cross_sysroot: " + str(cross_sysroot))
+ return flags, base_flags
+
+
+@@ -723,14 +734,13 @@ def determine_sdl2():
+ sdl_inc = join(include, 'SDL2')
+ if isdir(sdl_inc):
+ sdl2_paths.append(sdl_inc)
+- sdl2_paths.extend(['/usr/local/include/SDL2', '/usr/include/SDL2'])
+
+ flags['include_dirs'] = sdl2_paths
+ flags['extra_link_args'] = []
+ flags['extra_compile_args'] = []
+ flags['library_dirs'] = (
+ sdl2_paths if sdl2_paths else
+- ['/usr/local/lib/'])
++ [''])
+
+ if sdl2_flags:
+ flags = merge(flags, sdl2_flags)
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
new file mode 100644
index 0000000000..ca1fc5f96d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-kivy_2.1.0..bb
@@ -0,0 +1,74 @@
+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 gobject-introspection-data"
+
+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
new file mode 100644
index 0000000000..acc8bd5b6f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-kiwisolver_1.4.4.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] = "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-kmod_0.9.1.bb b/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb
new file mode 100644
index 0000000000..2ec4d474b5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-kmod_0.9.1.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Python bindings for kmod/libkmod."
+HOMEPAGE = "https://github.com/agrover/python-kmod"
+SECTION = "devel/python"
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=6d62c2454850386a2ffe44f72db83d74"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "f3bf829059bf88eca22f4f549e17aa316cdaa14302bf2ba49ddeee60cea109ff"
+
+DEPENDS += " \
+ kmod \
+ python3-cython-native \
+"
diff --git a/meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb b/meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb
deleted file mode 100644
index 0ca58c7b73..0000000000
--- a/meta-python/recipes-devtools/python/python3-langtable_0.0.38.bb
+++ /dev/null
@@ -1,29 +0,0 @@
-DESCRIPTION = "langtable is used to guess reasonable defaults for locale,\
-keyboard, territory"
-HOMEPAGE = "https://github.com/mike-fabian/langtable/"
-LICENSE = "GPLv3+"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "35687ca957b746f153a6872139462b1443f8cad1"
-PV = "0.0.38+git${SRCPV}"
-SRC_URI = "git://github.com/mike-fabian/langtable.git;branch=master \
-"
-
-inherit setuptools3 python3native
-
-DISTUTILS_INSTALL_ARGS = "--prefix=${D}/${prefix} \
- --install-data=${D}/${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.62.bb b/meta-python/recipes-devtools/python/python3-langtable_0.0.62.bb
new file mode 100644
index 0000000000..df6d14ece5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-langtable_0.0.62.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] = "df8d5daedaa5c0d4e72dace925733376ba705d9330f63934f122eacf4746f360"
+
+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-lazy-object-proxy_1.3.1.bb b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb
deleted file mode 100644
index 150e12fd46..0000000000
--- a/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-lazy-object-proxy.inc
diff --git a/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.9.0.bb b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.9.0.bb
new file mode 100644
index 0000000000..74c5e9b520
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lazy-object-proxy_1.9.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 += "${PYTHON_PN}-setuptools-scm-native ${PYTHON_PN}-pip-native"
+
+SRC_URI[sha256sum] = "659fb5809fa4629b8a1ac5106f669cfc7bef26fbb389dda53b3e010d1ac4ebae"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-lazy_1.5.bb b/meta-python/recipes-devtools/python/python3-lazy_1.5.bb
new file mode 100644
index 0000000000..cdff28c295
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lazy_1.5.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=84689cccb68e3c397d0856e8ad5a73b2"
+
+SRC_URI[sha256sum] = "cb3d8612aa895a48afe8f08860573ba8ef5ee4fdbe1b3cd606c5f50a16152186"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-libconf_2.0.1.bb b/meta-python/recipes-devtools/python/python3-libconf_2.0.1.bb
new file mode 100644
index 0000000000..80bc59d97b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-libconf_2.0.1.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A pure-Python libconfig reader/writer with permissive license"
+SECTION = "devel/python"
+HOMEPAGE = "https://github.com/Grk0/python-libconf"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=05f696c084eaaf5d75bc150f70975758"
+
+SRC_URI[md5sum] = "e212611cbf6a696e05742a983b3a0c57"
+SRC_URI[sha256sum] = "2f907258953ba60a95a82d5633726b47c81f2d5cf8d8801b092579016d757f4a"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..5cec711696
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-license-expression/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
diff --git a/meta-python/recipes-devtools/python/python3-license-expression_30.1.1.bb b/meta-python/recipes-devtools/python/python3-license-expression_30.1.1.bb
new file mode 100644
index 0000000000..31fb88d6e5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-license-expression_30.1.1.bb
@@ -0,0 +1,36 @@
+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] = "42375df653ad85e6f5b4b0385138b2dbea1f5d66360783d8625c3e4f97f11f0c"
+
+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.1.bb b/meta-python/recipes-devtools/python/python3-linux-procfs_0.7.1.bb
new file mode 100644
index 0000000000..d51eecf978
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-linux-procfs_0.7.1.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=8ca43cbc842c2336e835926c2166c28b"
+
+SRC_URI = "git://git.kernel.org/pub/scm/libs/python/python-linux-procfs/python-linux-procfs.git;branch=main"
+SRCREV = "7f43598387e44e2da93ead2e075b7232429e4cc4"
+
+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
new file mode 100644
index 0000000000..af738e08ec
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lockfile_0.12.2.bb
@@ -0,0 +1,20 @@
+# This recipe is originally from meta-openstack:
+# https://git.yoctoproject.org/cgit/cgit.cgi/meta-cloud-services/tree/meta-openstack/recipes-devtools/python/python-lockfile_0.12.2.bb
+
+SUMMARY = "Platform-independent file locking module"
+HOMEPAGE = "https://pypi.org/project/lockfile/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2340dffbbfea534b58f1349984eeef72"
+
+SRC_URI[md5sum] = "a6a1a82957a23afdf44cfdd039b65ff9"
+SRC_URI[sha256sum] = "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799"
+
+inherit pypi setuptools3
+
+DEPENDS += "python3-distutils-extra-native python3-pbr-native"
+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
new file mode 100644
index 0000000000..a855c39141
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lorem_0.1.1.bb
@@ -0,0 +1,29 @@
+DESCRIPTION = "Generator for random text that looks like Latin"
+HOMEPAGE = "https://github.com/sfischer13/python-lorem"
+LICENSE = "MIT"
+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 ptest
+
+CLEANBROKEN = "1"
+
+RDEPENDS:${PN} += " \
+ python3 \
+"
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-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/0001-setup.py-use-setuptools-instead-of-distutils.patch b/meta-python/recipes-devtools/python/python3-lrparsing/0001-setup.py-use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..28af8fa4ec
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lrparsing/0001-setup.py-use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,27 @@
+From 04d9a4cea699d64b464daef7760de594b1c7f9bf Mon Sep 17 00:00:00 2001
+From: Justin Bronder <jsbronder@cold-front.org>
+Date: Tue, 1 Mar 2022 17:34:34 -0500
+Subject: [PATCH] setup.py: use setuptools instead of distutils
+
+With python 3.10, distutils is deprecated in favor of setuptools and will
+be removed in python 3.12.
+
+Upstream-Status: Submitted [sent to maintainer at russell-lrparsing@stuart.id.au]
+Signed-off-by: Justin Bronder <jsbronder@cold-front.org>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 89ea344..2848b4f 100644
+--- a/setup.py
++++ b/setup.py
+@@ -3,7 +3,7 @@
+ # Copyright (c) 2013,2014,2015,2016,2017,2018,2021 Russell Stuart.
+ # Licensed under GPLv2, or any later version.
+ #
+-from distutils.core import setup
++from setuptools import setup
+ import re
+
+ def get_long_description():
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
new file mode 100644
index 0000000000..673d32c2d4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lrparsing_1.0.17.bb
@@ -0,0 +1,24 @@
+SUMMARY = "Python LR parsing library"
+SECTION = "devel/python"
+LICENSE = "AGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://agpl-3.0.txt;md5=73f1eb20517c55bf9493b7dd6e480788"
+
+HOMEPAGE = "http://lrparsing.sourceforge.net/"
+BUGTRACKER = "https://sourceforge.net/p/lrparsing/tickets/"
+UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/lrparsing/files/"
+UPSTREAM_CHECK_REGEX = "lrparsing-(?P<pver>\d+(\.\d+)+)"
+SRC_URI = "${SOURCEFORGE_MIRROR}/lrparsing/lrparsing-${PV}.tar.gz \
+ file://0001-setup.py-use-setuptools-instead-of-distutils.patch \
+ "
+SRC_URI[sha256sum] = "7c060d9f03cf582fdbc0ae0fef0ea2ff6fd56251047ba7e425af97e23f46f582"
+
+RDEPENDS:${PN} = " \
+ python3-crypt \
+"
+
+inherit setuptools3
+PIP_INSTALL_PACKAGE = "lrparsing"
+
+S = "${WORKDIR}/lrparsing-${PV}"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-lru-dict_1.2.0.bb b/meta-python/recipes-devtools/python/python3-lru-dict_1.2.0.bb
new file mode 100644
index 0000000000..7a3a172746
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lru-dict_1.2.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] = "13c56782f19d68ddf4d8db0170041192859616514c706b126d0df2ec72a11bd7"
+
+inherit pypi setuptools3
+
+SRC_URI += "${PYPI_SRC_URI}"
diff --git a/meta-python/recipes-devtools/python/python3-luma-core_2.4.0.bb b/meta-python/recipes-devtools/python/python3-luma-core_2.4.0.bb
new file mode 100644
index 0000000000..8a7be0a30c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-luma-core_2.4.0.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=71cded473ab60fdbe20edc519217f521"
+
+inherit pypi python_setuptools_build_meta
+
+SRC_URI[sha256sum] = "cf5fdf3563d5ec56e2f792f3a2f432abaeac517a0b05a10a757a4c5a26bb2e5d"
+
+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-oled_3.12.0.bb b/meta-python/recipes-devtools/python/python3-luma-oled_3.12.0.bb
new file mode 100644
index 0000000000..87f7ad6635
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-luma-oled_3.12.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] = "af97d79fa3481d2c48b7bccfb6de349219f6d814fdc9a3dd075c7b2c71206450"
+
+CLEANBROKEN = "1"
+
+PYPI_PACKAGE = "luma.oled"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-luma-core \
+"
diff --git a/meta-python/recipes-devtools/python/python3-lxml_4.2.1.bb b/meta-python/recipes-devtools/python/python3-lxml_4.2.1.bb
deleted file mode 100644
index ff4bc7faad..0000000000
--- a/meta-python/recipes-devtools/python/python3-lxml_4.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-lxml.inc
diff --git a/meta-python/recipes-devtools/python/python3-lz4/run-ptest b/meta-python/recipes-devtools/python/python3-lz4/run-ptest
new file mode 100644
index 0000000000..1b245bcd8f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lz4/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest -v
diff --git a/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb b/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb
new file mode 100644
index 0000000000..71171513e8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-lz4_4.3.2.bb
@@ -0,0 +1,26 @@
+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] = "e1431d84a9cfb23e6773e72078ce8e65cad6745816d4cbf9ae67da5ea419acda"
+
+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-m2crypto/0001-setup.py-address-openssl-3.x-build-issue.patch b/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-address-openssl-3.x-build-issue.patch
new file mode 100644
index 0000000000..c67e50803b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-address-openssl-3.x-build-issue.patch
@@ -0,0 +1,28 @@
+From 0d824e5c2ab13e761ffaeabdccf9513d5b8f280d Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Fri, 8 Oct 2021 11:18:35 +0200
+Subject: [PATCH] setup.py: address openssl 3.x build issue
+
+swig throws:
+| /home/alex/development/poky/build-metaoe/tmp/work/x86_64-linux/python3-m2crypto-native/0.38.0-r0/recipe-sysroot-native/usr/include/openssl/macros.h:155: Error: CPP #error ""OPENSSL_API_COMPAT expresses an impossible API compatibility level"". Use the -cpperraswarn option to continue swig processing.
+
+I'm not sure why; upstream should take a look.
+
+Upstream-Status: Inappropriate [workaround]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ setup.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/setup.py b/setup.py
+index 2c65404..74704bc 100644
+--- a/setup.py
++++ b/setup.py
+@@ -192,6 +192,7 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+
+ self.swig_opts.append('-includeall')
+ self.swig_opts.append('-modern')
++ self.swig_opts.append('-cpperraswarn')
+ self.swig_opts.append('-builtin')
+
+ # These two lines are a workaround for
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
new file mode 100644
index 0000000000..0baadfcaa5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-m2crypto/0001-setup.py-link-in-sysroot-not-in-host-directories.patch
@@ -0,0 +1,33 @@
+From dfb83a41aaeae326e9b6f02b233af375bc7b8815 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen@dominion.thruhere.net>
+Date: Fri, 29 Mar 2013 15:17:17 +0100
+Subject: [PATCH] setup.py: link in sysroot, not in host directories
+
+Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
+
+Upstream-Status: Pending [Unknown]
+---
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/setup.py
++++ b/setup.py
+@@ -135,6 +135,7 @@ class _M2CryptoBuildExt(build_ext.build_
+ self.set_undefined_options('build', ('bundledlls', 'bundledlls'))
+
+ self.libraries = ['ssl', 'crypto']
++ self.openssl = os.environ.get( "STAGING_DIR" )
+ if sys.platform == 'win32':
+ self.libraries = ['ssleay32', 'libeay32']
+ if self.openssl and openssl_version(self.openssl,
+@@ -159,8 +160,8 @@ class _M2CryptoBuildExt(build_ext.build_
+
+ if self.openssl is not None:
+ log.debug('self.openssl = %s', self.openssl)
+- openssl_library_dir = os.path.join(self.openssl, 'lib')
+- openssl_include_dir = os.path.join(self.openssl, 'include')
++ openssl_library_dir = os.environ.get( "STAGING_LIBDIR" )
++ openssl_include_dir = os.environ.get( "STAGING_INCDIR" )
+
+ self.library_dirs.append(openssl_library_dir)
+ self.include_dirs.append(openssl_include_dir)
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
new file mode 100644
index 0000000000..3cd6f7c276
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-m2crypto/avoid-host-contamination.patch
@@ -0,0 +1,23 @@
+Filter out '/usr/include' for swig to avoid host contamination issue.
+
+Upstream-Status: Inappropriate [cross compile specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ setup.py | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index 5a12981..389d49f 100644
+--- a/setup.py
++++ b/setup.py
+@@ -153,7 +153,8 @@ class _M2CryptoBuildExt(build_ext.build_ext):
+ self.swig_opts.append('-py3')
+
+ # swig seems to need the default header file directories
+- self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes()])
++ self.swig_opts.extend(['-I%s' % i for i in _get_additional_includes()
++ if i != '/usr/include'])
+
+ log.debug('self.include_dirs = %s', self.include_dirs)
+ log.debug('self.library_dirs = %s', self.library_dirs)
diff --git a/meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch b/meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch
new file mode 100644
index 0000000000..77ef7e557e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-m2crypto/cross-compile-platform.patch
@@ -0,0 +1,33 @@
+Do not compute platform, this does not work in cross compile environment
+since it pokes at the system for getting architecture values
+
+Upstream-Status: Inappropriate
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+--- a/setup.py
++++ b/setup.py
+@@ -169,24 +169,6 @@ class _M2CryptoBuildExt(build_ext.build_
+ log.debug('self.include_dirs = %s', self.include_dirs)
+ log.debug('self.library_dirs = %s', self.library_dirs)
+
+- if platform.system() == "Linux":
+- # For RedHat-based distros, the '-D__{arch}__' option for
+- # Swig needs to be normalized, particularly on i386.
+- mach = platform.machine().lower()
+- if mach in ('i386', 'i486', 'i586', 'i686'):
+- arch = '__i386__'
+- elif mach in ('ppc64', 'powerpc64', 'ppc64le', 'ppc64el'):
+- arch = '__powerpc64__'
+- elif mach in ('ppc', 'powerpc'):
+- arch = '__powerpc__'
+- else:
+- arch = '__%s__' % mach
+- self.swig_opts.append('-D%s' % arch)
+- if mach in ('ppc64le', 'ppc64el'):
+- self.swig_opts.append('-D_CALL_ELF=2')
+- if mach in ('arm64_be'):
+- self.swig_opts.append('-D__AARCH64EB__')
+-
+ self.swig_opts.extend(['-I%s' % i for i in self.include_dirs])
+
+ # Some Linux distributor has added the following line in
diff --git a/meta-python/recipes-devtools/python/python3-m2crypto_0.39.0.bb b/meta-python/recipes-devtools/python/python3-m2crypto_0.39.0.bb
new file mode 100644
index 0000000000..3a4a700bf7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-m2crypto_0.39.0.bb
@@ -0,0 +1,47 @@
+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] = "24c0f471358b8b19ad4c8aa9da12e868030b65c1fdb3279d006df60c9501338a"
+
+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']} -DOPENSSL_FILE='openssl/macros.h'"
+
+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-markupsafe_1.0.bb b/meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb
deleted file mode 100644
index 765e3c906b..0000000000
--- a/meta-python/recipes-devtools/python/python3-markupsafe_1.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-markupsafe.inc
diff --git a/meta-python/recipes-devtools/python/python3-marshmallow_3.19.0.bb b/meta-python/recipes-devtools/python/python3-marshmallow_3.19.0.bb
new file mode 100644
index 0000000000..91f6462b35
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-marshmallow_3.19.0.bb
@@ -0,0 +1,28 @@
+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 = "78edf5582ee325bba99f097cb7167ef73b6f84d8"
+
+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-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
new file mode 100644
index 0000000000..aea8f62ea7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-matplotlib/matplotlib-disable-download.patch
@@ -0,0 +1,75 @@
+Disable automatic downloading of components!
+
+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
+@@ -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
+@@ -66,40 +66,7 @@ def get_from_cache_or_download(url, sha):
+ BytesIO
+ The file loaded into memory.
+ """
+- cache_dir = _get_xdg_cache_dir()
+-
+- if cache_dir is not None: # Try to read from cache.
+- try:
+- data = (cache_dir / sha).read_bytes()
+- except IOError:
+- pass
+- else:
+- if _get_hash(data) == sha:
+- return BytesIO(data)
+-
+- # jQueryUI's website blocks direct downloads from urllib.request's
+- # default User-Agent, but not (for example) wget; so I don't feel too
+- # bad passing in an empty User-Agent.
+- with urllib.request.urlopen(
+- urllib.request.Request(url, headers={"User-Agent": ""}),
+- context=_get_ssl_context()) as req:
+- data = req.read()
+-
+- file_sha = _get_hash(data)
+- if file_sha != sha:
+- raise Exception(
+- f"The downloaded file does not match the expected sha. {url} was "
+- f"expected to have {sha} but it had {file_sha}")
+-
+- if cache_dir is not None: # Try to cache the downloaded file.
+- try:
+- cache_dir.mkdir(parents=True, exist_ok=True)
+- with open(cache_dir / sha, "xb") as fout:
+- fout.write(data)
+- except IOError:
+- pass
+-
+- return BytesIO(data)
++ raise IOError(f"Automatic downloading is disabled.")
+
+
+ def get_and_extract_tarball(urls, sha, dirname):
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
new file mode 100644
index 0000000000..a2c72fcc99
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-mccabe_0.7.0.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "McCabe checker, plugin for flake8"
+HOMEPAGE = "https://github.com/PyCQA/mccabe"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a489dc62bacbdad3335c0f160a974f0f"
+
+SRC_URI[sha256sum] = "348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-pytest-runner-native"
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
new file mode 100644
index 0000000000..1be3fa5ada
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-meld3_2.0.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "meld3 templating system used by Supervisor"
+DESCRIPTION = "\
+meld3 is an HTML/XML templating system for Python which keeps \
+template markup and dynamic rendering logic separate from one \
+another. See http://www.entrian.com/PyMeld for a treatise on the \
+benefits of this pattern."
+HOMEPAGE = "https://github.com/supervisor/meld3"
+LICENSE = "BSD-4-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9e7581cef5645475fcefebdc15ed7abf"
+
+SRC_URI[md5sum] = "1add16caefc9e6b82ef4f40532cb4918"
+SRC_URI[sha256sum] = "3ea266994f1aa83507679a67b493b852c232a7905e29440a6b868558cad5e775"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-cgitb \
+ python3-smtpd \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-meson-python_0.13.1.bb b/meta-python/recipes-devtools/python/python3-meson-python_0.13.1.bb
new file mode 100644
index 0000000000..6b9ff24f2a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-meson-python_0.13.1.bb
@@ -0,0 +1,23 @@
+SUMMARY = "Meson Python build backend (PEP 517)"
+HOMEPAGE = "https://github.com/mesonbuild/meson-python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d580b27e67cc0892a5b005b0be114b60"
+
+DEPENDS = " \
+ meson-native ninja-native patchelf-native \
+ python3-pyproject-metadata-native \
+"
+
+PYPI_PACKAGE = "meson_python"
+
+inherit pypi python_mesonpy
+SRC_URI[sha256sum] = "63b3170001425c42fa4cfedadb9051cbd28925ff8eed7c40d36ba0099e3c7618"
+
+DEPENDS:remove:class-native = "python3-meson-python-native"
+
+RDEPENDS:${PN} = " \
+ meson ninja patchelf \
+ python3-pyproject-metadata \
+"
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..2af7b57921
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-monotonic_1.6.bb
@@ -0,0 +1,15 @@
+SUMMARY = "This module provides a monotonic() function which returns the value (in fractional seconds) of a clock which never goes backwards."
+HOMEPAGE = "https://github.com/atdt/monotonic"
+SECTION = "devel/python"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+SRCREV = "80681f6604e136e513550342f977edb98f5fc5ad"
+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-mpmath_1.3.0.bb b/meta-python/recipes-devtools/python/python3-mpmath_1.3.0.bb
new file mode 100644
index 0000000000..01dd8bfb44
--- /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 += "${PYTHON_PN}-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
new file mode 100644
index 0000000000..5cec711696
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-msgpack/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
diff --git a/meta-python/recipes-devtools/python/python3-msgpack_0.5.6.bb b/meta-python/recipes-devtools/python/python3-msgpack_0.5.6.bb
deleted file mode 100644
index 096d7ddcb8..0000000000
--- a/meta-python/recipes-devtools/python/python3-msgpack_0.5.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-msgpack.inc
-inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-msgpack_1.0.5.bb b/meta-python/recipes-devtools/python/python3-msgpack_1.0.5.bb
new file mode 100644
index 0000000000..3965dad8e5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-msgpack_1.0.5.bb
@@ -0,0 +1,27 @@
+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] = "c075544284eadc5cddc70f4757331d99dcbc16b2bbd4849d15f8aae4cf36d31c"
+
+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-msk_0.4.0.bb b/meta-python/recipes-devtools/python/python3-msk_0.4.0.bb
new file mode 100644
index 0000000000..8fa2c62cc4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-msk_0.4.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "A tool to help with creating, uploading, and upgrading Mycroft skills on the skills repo."
+HOMEPAGE = "https://github.com/MycroftAI/mycroft-skills-kit"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.md;md5=f518abfcfc3935b1f0ec8f2332cb30d3"
+
+SRC_URI[sha256sum] = "f698f193112a8628e776e67b89a95c3f78095857c045dd9cde4cf915a5fbdd80"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-git"
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
new file mode 100644
index 0000000000..966ff86dee
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-msm_0.8.8.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Mycroft Skill Manager, in python!"
+HOMEPAGE = "https://github.com/MycroftAI/mycroft-skills-manager"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa"
+
+SRC_URI[md5sum] = "cf1fc0d1d86af68003cae53c71ec6288"
+SRC_URI[sha256sum] = "a502aee54917cd394217b31c977a1ba3d9541a0120e0a045c49fd77b328e4a29"
+
+inherit pypi setuptools3
+
+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() {
+ # Stop this from being installed
+ rm -rf ${D}/usr/share
+}
diff --git a/meta-python/recipes-devtools/python/python3-multidict/run-ptest b/meta-python/recipes-devtools/python/python3-multidict/run-ptest
new file mode 100644
index 0000000000..5cec711696
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-multidict/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
diff --git a/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb b/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb
deleted file mode 100644
index 7f9cd55648..0000000000
--- a/meta-python/recipes-devtools/python/python3-multidict_3.3.2.bb
+++ /dev/null
@@ -1,9 +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=e74c98abe0de8f798ca609137f9cef4a"
-
-inherit pypi setuptools3
-
-SRC_URI[md5sum] = "06ca91d993de2d04c7ee6df0cbb44ea2"
-SRC_URI[sha256sum] = "f82e61c7408ed0dce1862100db55595481911f159d6ddec0b375d35b6449509b"
diff --git a/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb b/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
new file mode 100644
index 0000000000..4869e846b0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-multidict_6.0.4.bb
@@ -0,0 +1,24 @@
+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] = "3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"
+
+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-mypy-extensions_0.4.3.bb b/meta-python/recipes-devtools/python/python3-mypy-extensions_0.4.3.bb
new file mode 100644
index 0000000000..83ac5362d6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-mypy-extensions_0.4.3.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] = "2d82818f5bb3e369420cb3c4060a7970edba416647068eb4c5343488a6c604a8"
+
+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
new file mode 100644
index 0000000000..31fcb06c9e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-mypy_0.971.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=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-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-ndg-httpsclient_0.4.4.bb b/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.4.bb
deleted file mode 100644
index 3f07b2ed27..0000000000
--- a/meta-python/recipes-devtools/python/python3-ndg-httpsclient_0.4.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-ndg-httpsclient.inc
diff --git a/meta-python/recipes-devtools/python/python3-netaddr_0.7.19.bb b/meta-python/recipes-devtools/python/python3-netaddr_0.7.19.bb
deleted file mode 100644
index 30416a4ffe..0000000000
--- a/meta-python/recipes-devtools/python/python3-netaddr_0.7.19.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-netaddr.inc
-inherit setuptools3
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
new file mode 100644
index 0000000000..5ba006691a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-netaddr_0.8.0.bb
@@ -0,0 +1,14 @@
+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} += " \
+ python3-io \
+ python3-pprint \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-netifaces/0001-netifaces-initialize-msghdr-in-a-portable-way.patch b/meta-python/recipes-devtools/python/python3-netifaces/0001-netifaces-initialize-msghdr-in-a-portable-way.patch
new file mode 100644
index 0000000000..7ff86cc8be
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-netifaces/0001-netifaces-initialize-msghdr-in-a-portable-way.patch
@@ -0,0 +1,49 @@
+From cbcd19f38ae4b31c57c57ce3619b8d2674defb68 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 28 Aug 2022 08:11:27 -0700
+Subject: [PATCH] netifaces: initialize msghdr in a portable way
+
+musl has padding bytes inside the msghdr struct which means initializing
+full structure will cause wrong assignments, doing partial assignment is
+more portable and assign the elements after that
+
+Fixes
+netifaces.c:1808:9: error: incompatible pointer to integer conversion initializing 'int' with an expression of type 'void *' [-Wint-conversion]
+ NULL,
+ ^~~~
+
+Upstream-Status: Inappropriate [Upstream Repo is read-only]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ netifaces.c | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
+
+diff --git a/netifaces.c b/netifaces.c
+index 839c42c..7da78e7 100644
+--- a/netifaces.c
++++ b/netifaces.c
+@@ -1800,15 +1800,12 @@ gateways (PyObject *self)
+ do {
+ struct sockaddr_nl sanl_from;
+ struct iovec iov = { msgbuf, bufsize };
+- struct msghdr msghdr = {
+- &sanl_from,
+- sizeof(sanl_from),
+- &iov,
+- 1,
+- NULL,
+- 0,
+- 0
+- };
++ struct msghdr msghdr = { 0 };
++
++ msghdr.msg_name = &sanl_from;
++ msghdr.msg_namelen = sizeof(sanl_from);
++ msghdr.msg_iov = &iov;
++ msghdr.msg_iovlen = 1;
+ int nllen;
+
+ ret = recvmsg (s, &msghdr, 0);
+--
+2.37.2
+
diff --git a/meta-python/recipes-devtools/python/python3-netifaces_0.11.0.bb b/meta-python/recipes-devtools/python/python3-netifaces_0.11.0.bb
new file mode 100644
index 0000000000..f211c69543
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-netifaces_0.11.0.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "Portable network interface information for Python"
+SECTION = "devel/python"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=a53cbc7cb75660694e138ba973c148df"
+
+inherit pypi setuptools3
+
+SRC_URI += "file://0001-netifaces-initialize-msghdr-in-a-portable-way.patch"
+
+SRC_URI[sha256sum] = "043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32"
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..7158f7b057
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-networkx_3.1.bb
@@ -0,0 +1,21 @@
+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} += "\
+ ${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-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..9a6326f37d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ninja-syntax_1.7.2.bb
@@ -0,0 +1,10 @@
+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"
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..276fb50172
--- /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
+@@ -1,7 +1,6 @@
+ [build-system]
+ requires = [
+ "setuptools>=42",
+- "scikit-build>=0.12",
+ ]
+ 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.bb b/meta-python/recipes-devtools/python/python3-ninja_1.11.1.bb
new file mode 100644
index 0000000000..3b9077f326
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ninja_1.11.1.bb
@@ -0,0 +1,25 @@
+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] = "c833a47d39b2d1eee3f9ca886fa1581efd5be6068b82734ac229961ee8748f90"
+
+SRC_URI += "file://no-scikit-build.patch \
+ file://run-ninja-from-path.patch"
+
+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.6.0.bb b/meta-python/recipes-devtools/python/python3-nmap_1.6.0.bb
new file mode 100644
index 0000000000..0a6de2d6b6
--- /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 += "${PYTHON_PN}-wheel-native"
+
+PYPI_PACKAGE = "python3-nmap"
+
+SRC_URI[sha256sum] = "892b5091cde429fabfb8ba63382b2db8fd795193ba147558d0a7d5534c956255"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "nmap \
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-simplejson \
+"
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..6185b7b1e9
--- /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} += " \
+ ${PYTHON_PN}-six \
+"
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..29a3c86067
--- /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} += " \
+ ${PYTHON_PN}-six \
+"
diff --git a/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb b/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb
deleted file mode 100644
index 93df83ad3c..0000000000
--- a/meta-python/recipes-devtools/python/python3-ntplib_0.3.3.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "This module offers a simple interface to query NTP servers from Python."
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://ntplib.py;beginline=1;endline=23;md5=afa07338a9595257e94c205c3e72224d"
-
-SRCNAME = "ntplib"
-SRC_URI[md5sum] = "c7cc8e9b09f40c84819859d70b7784ca"
-SRC_URI[sha256sum] = "c4621b64d50be9461d9bd9a71ba0b4af06fbbf818bbd483752d95c1a4e273ede"
-
-S = "${WORKDIR}/${SRCNAME}-${PV}"
-
-inherit setuptools3 python3native pypi
-
-RDEPENDS_${PN} += "${PYTHON_PN}-datetime"
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
new file mode 100644
index 0000000000..d78bec046f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ntplib_0.4.0.bb
@@ -0,0 +1,11 @@
+DESCRIPTION = "This module offers a simple interface to query NTP servers from Python."
+HOMEPAGE = "https://github.com/cf-natali/ntplib"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=40707636fe237d725e2bd32cd949b7fe"
+
+SRC_URI[sha256sum] = "899d8fb5f8c2555213aea95efca02934c7343df6ace9d7628a5176b176906267"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-datetime ${PYTHON_PN}-io"
diff --git a/meta-python/recipes-devtools/python/python3-oauthlib_2.0.6.bb b/meta-python/recipes-devtools/python/python3-oauthlib_2.0.6.bb
deleted file mode 100644
index da13b55d8a..0000000000
--- a/meta-python/recipes-devtools/python/python3-oauthlib_2.0.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-oauthlib.inc
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..566279d71c
--- /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] = ",,,${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-obd_0.7.2.bb b/meta-python/recipes-devtools/python/python3-obd_0.7.2.bb
new file mode 100644
index 0000000000..d78642a9bd
--- /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} += "${PYTHON_PN}-pyserial ${PYTHON_PN}-pint ${PYTHON_PN}-setuptools ${PYTHON_PN}-packaging"
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..a889210616
--- /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} += "\
+ ${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-ordered-set/run-ptest b/meta-python/recipes-devtools/python/python3-ordered-set/run-ptest
new file mode 100644
index 0000000000..c27a6c3c57
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ordered-set/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest test_ordered_set.py
diff --git a/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb b/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb
deleted file mode 100644
index be6d4e169f..0000000000
--- a/meta-python/recipes-devtools/python/python3-ordered-set_2.0.2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "A MutableSet that remembers its order, so that every entry has an index."
-HOMEPAGE = "http://github.com/LuminosoInsight/ordered-set"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=0feb0c85b722f488b87844fb5f81d2dc"
-
-SRC_URI[md5sum] = "7b8d73dc64fd3c783ecb48e050bfcc0d"
-SRC_URI[sha256sum] = "942cad5d7d5b0760d5cbe93dfb385ac2ed402ca1d48c9f4e102d7d5cce3a90eb"
-
-inherit pypi setuptools3
-
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
new file mode 100644
index 0000000000..f2f1cf8e45
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ordered-set_4.1.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A MutableSet that remembers its order, so that every entry has an index."
+HOMEPAGE = "http://github.com/LuminosoInsight/ordered-set"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://MIT-LICENSE;md5=3bf5e1ad64c0d99032c3143361fa234e"
+
+SRC_URI[sha256sum] = "694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8"
+
+inherit pypi python_flit_core ptest
+
+DEPENDS += "python3-pytest-runner-native"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test/test_ordered_set.py ${D}${PTEST_PATH}/
+}
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
new file mode 100644
index 0000000000..b926484db0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-oslash_0.6.3.bb
@@ -0,0 +1,22 @@
+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-json \
+ python3-typing-extensions \
+"
+
+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
new file mode 100644
index 0000000000..3af9349d44
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-padaos_0.1.10.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A rigid, lightweight, dead-simple intent parser"
+HOMEPAGE = "https://github.com/MycroftAI/padaos"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.md;md5=b51c3e8e53a7cd95c13c5aab6cbc8e67"
+
+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
new file mode 100644
index 0000000000..fef6376ef7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-padatious_0.4.8.bb
@@ -0,0 +1,17 @@
+SUMMARY = "An efficient and agile neural network intent parser. Padatious is a core component of Mycroft AI."
+HOMEPAGE = "https://github.com/MycroftAI/padatious"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.md;md5=cc85c733dffe81e8a7fde2e8f8a6a404"
+
+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.3.1.bb b/meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb
deleted file mode 100644
index 4981e61ed8..0000000000
--- a/meta-python/recipes-devtools/python/python3-paho-mqtt_1.3.1.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit setuptools3
-require python-paho-mqtt.inc
-
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
new file mode 100644
index 0000000000..81a6d0a9c9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-paho-mqtt_1.6.1.bb
@@ -0,0 +1,33 @@
+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-pako_0.3.1.bb b/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
new file mode 100644
index 0000000000..046e6571ea
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pako_0.3.1.bb
@@ -0,0 +1,20 @@
+SUMMARY = "The universal package manager library"
+HOMEPAGE = "https://github.com/MycroftAI/pako"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e23fadd6ceef8c618fc1c65191d846fa"
+
+SRC_URI[sha256sum] = "c033a073bb818ca336ae1fccba2655bd60dfe77744f85d4517abd3160d72231f"
+
+inherit pypi setuptools3
+
+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_0.22.0.bb b/meta-python/recipes-devtools/python/python3-pandas_0.22.0.bb
deleted file mode 100644
index b5dd5e0924..0000000000
--- a/meta-python/recipes-devtools/python/python3-pandas_0.22.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pandas.inc
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..87a173c8a2
--- /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 += " \
+ ${PYTHON_PN}-cython-native \
+ ${PYTHON_PN}-numpy-native \
+ ${PYTHON_PN}-versioneer-native \
+"
+
+PACKAGESPLITFUNCS =+ "fix_cythonized_sources"
+
+fix_cythonized_sources() {
+ for f in `grep -l -r -e '\/* Generated by Cython.*/$' ${PKGD}/usr/src/debug/${PN}/${EXTENDPE}${PV}-${PR}`; 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} += " \
+ ${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-parallax_1.0.6.bb b/meta-python/recipes-devtools/python/python3-parallax_1.0.6.bb
new file mode 100644
index 0000000000..14c90ffb58
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parallax_1.0.6.bb
@@ -0,0 +1,13 @@
+SUMMARY = "Execute commands and copy files over SSH to multiple machines at once."
+HOMEPAGE = "https://github.com/krig/parallax/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=52c67ffa6102f288a0347f8c5802fd18"
+
+SRC_URI[md5sum] = "e312397b083426af84db7076dc2a28d7"
+SRC_URI[sha256sum] = "c16703202ff67aed4740c0727df304abe9f3e7851e653533b24de21b338d9081"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-fcntl ${PYTHON_PN}-threading ${PYTHON_PN}-unixadmin"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-paramiko_3.2.0.bb b/meta-python/recipes-devtools/python/python3-paramiko_3.2.0.bb
new file mode 100644
index 0000000000..5420a9edc8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-paramiko_3.2.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] = "93cdce625a8a1dc12204439d45033f3261bdb2c201648cfcdc06f9fd0f94ec29"
+
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parse-type/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..7eebbfb503
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parse-type_0.5.2.bb
@@ -0,0 +1,30 @@
+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/run-ptest b/meta-python/recipes-devtools/python/python3-parse/run-ptest
new file mode 100644
index 0000000000..40c284799d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parse/run-ptest
@@ -0,0 +1,2 @@
+#!/bin/sh
+pytest
diff --git a/meta-python/recipes-devtools/python/python3-parse_1.19.1.bb b/meta-python/recipes-devtools/python/python3-parse_1.19.1.bb
new file mode 100644
index 0000000000..9dc7f79318
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parse_1.19.1.bb
@@ -0,0 +1,31 @@
+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] = "cc3a47236ff05da377617ddefa867b7ba983819c664e1afe46249e5b469be464"
+
+SRC_URI += " \
+ git://github.com/r1chardj0n3s/parse.git;branch=master;protocol=https \
+ file://run-ptest \
+"
+
+SRCREV ?= "72776522285d516032faa0f80c4ee6a8964075e8"
+
+S = "${WORKDIR}/git"
+
+inherit python_setuptools_build_meta ptest
+
+RDEPENDS:${PN} += "\
+ python3-datetime \
+ python3-logging \
+ python3-numbers \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-pytest \
+"
+
+do_install_ptest() {
+ cp -f ${S}/test_parse.py ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-parsimonious_0.10.0.bb b/meta-python/recipes-devtools/python/python3-parsimonious_0.10.0.bb
new file mode 100644
index 0000000000..c2352224ff
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parsimonious_0.10.0.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Parsimonious aims to be the fastest arbitrary-lookahead parser written in pure Python."
+HOMEPAGE = "https://github.com/erikrose/parsimonious"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3396ea30f9d21389d7857719816f83b5"
+
+SRC_URI[sha256sum] = "8281600da180ec8ae35427a4ab4f7b82bfec1e3d1e52f80cb60ea82b9512501c"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-regex"
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
new file mode 100644
index 0000000000..e14f28ad03
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-parso_0.8.3.bb
@@ -0,0 +1,17 @@
+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"
+
+PYPI_PACKAGE = "parso"
+
+SRC_URI[sha256sum] = "8c07be290bb59f03588915921e29e8a50002acaf2cdc5fa0e0114f91709fafa0"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} = " \
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-difflib \
+ ${PYTHON_PN}-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb b/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb
deleted file mode 100644
index 18180a07ab..0000000000
--- a/meta-python/recipes-devtools/python/python3-passlib_1.7.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-passlib.inc \ No newline at end of file
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
new file mode 100644
index 0000000000..dc692303fe
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-passlib_1.7.4.bb
@@ -0,0 +1,21 @@
+SUMMARY = "comprehensive password hashing framework supporting over 30 schemes"
+DESCRIPTION = "\
+Passlib is a password hashing library for Python 2 & 3, which provides cross-platform \
+implementations of over 30 password hashing algorithms, as well as a framework for \
+managing existing password hashes. It’s designed to be useful for a wide range of \
+tasks, from verifying a hash found in /etc/shadow, to providing full-strength password \
+hashing for multi-user applications."
+HOMEPAGE = "https://foss.heptapod.net/python-libs/passlib/wikis/home"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c8449c5e10474d113ab787ed2753bafe"
+
+SRC_URI[md5sum] = "3a229cbd00dfb33e99885b43325e0591"
+SRC_URI[sha256sum] = "defd50f72b65c5402ab2c573830a6978e5f202ad0d984793c8dde2c4152ebe04"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-crypt \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-netclient \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pastedeploy_3.0.1.bb b/meta-python/recipes-devtools/python/python3-pastedeploy_3.0.1.bb
new file mode 100644
index 0000000000..cb10dd98df
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pastedeploy_3.0.1.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] = "5f4b4d5fddd39b8947ea727161e366bf55b90efc60a4d1dd7976b9031d0b4e5f"
+
+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.7.1.bb b/meta-python/recipes-devtools/python/python3-path_16.7.1.bb
new file mode 100644
index 0000000000..d9576ed0b8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-path_16.7.1.bb
@@ -0,0 +1,34 @@
+SUMMARY = "A module wrapper for os.path"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=141643e11c48898150daa83802dbc65f"
+
+SRC_URI[sha256sum] = "2b477f5887033f3cbea1cfd8553ee6a6a498eb2540a19f4aa082822aadcea30a"
+
+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-pathtools3_0.2.1.bb b/meta-python/recipes-devtools/python/python3-pathtools3_0.2.1.bb
new file mode 100644
index 0000000000..644f7b119d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pathtools3_0.2.1.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Filesystem events monitoring"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=56bd93578433bb99b4fdf7ff481722df"
+
+SRC_URI[sha256sum] = "630c1edc09ef93abea40fc06b10067e5734d8f38cc85867bc61d1a5c9eb7796f"
+
+inherit pypi setuptools3
+
+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..f3e0711087
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pefile_2023.2.7.bb
@@ -0,0 +1,19 @@
+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"
+
+PIP_INSTALL_PACKAGE = "pefile"
+PIP_INSTALL_DIST_PATH = "${S}/dist"
+
+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
new file mode 100644
index 0000000000..f3e03ed309
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pep8_1.7.1.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "Python style guide checker"
+HOMEPAGE = "https://github.com/PyCQA/pycodestyle"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.rst;md5=d8ebbbe831259ce010179d2f310b0f3e"
+
+SRC_URI[md5sum] = "a03bb494859e87b42601b61b1b043a0c"
+SRC_URI[sha256sum] = "603a46e5c358ce20ac4807a0eeafac7505d1125a4c1bd8378757ada06f61bed8"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-prettytable \
+ ${PYTHON_PN}-cmd2 \
+ ${PYTHON_PN}-pyparsing"
+
+SRC_URI[md5sum] = "603821d06db945c71d811b5a8d78423c"
+SRC_URI[sha256sum] = "fe249b52e20498e59e0b5c5256aa52ee99fc295b26ec9eaa85776ffdb9fe6374"
diff --git a/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb b/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb
deleted file mode 100644
index ba9a95dbff..0000000000
--- a/meta-python/recipes-devtools/python/python3-periphery_1.1.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools3
-require python-periphery.inc
-
-SRC_URI[sha256sum] = "fe8f351934edce72cd919b4eb070878ebff551db5e21aea61e0f446101f0a79f" \ No newline at end of file
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..e284ccc33a
--- /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} += "${PYTHON_PN}-mmap \
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..b7fa69ffa8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-petact_0.1.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Petact is a library used for installing and updating compressed tar files"
+HOMEPAGE = "https://github.com/matthewscholefield/petact"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.md;md5=c8533d4ba77519398cdae0173db799a1"
+
+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/0001-FSM.py-change-shebang-from-python-to-python3.patch b/meta-python/recipes-devtools/python/python3-pexpect/0001-FSM.py-change-shebang-from-python-to-python3.patch
new file mode 100644
index 0000000000..bee772da63
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pexpect/0001-FSM.py-change-shebang-from-python-to-python3.patch
@@ -0,0 +1,25 @@
+From 35462d7b778eea32fd0cc0bbc79d6e6f53d942b4 Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Thu, 23 Apr 2020 08:01:42 +0000
+Subject: [PATCH] FSM.py: change shebang from python to python3
+
+Upstream-Status: Pending
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ pexpect/FSM.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pexpect/FSM.py b/pexpect/FSM.py
+index 46b392e..4e77654 100644
+--- a/pexpect/FSM.py
++++ b/pexpect/FSM.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env python
++#!/usr/bin/env python3
+
+ '''This module implements a Finite State Machine (FSM). In addition to state
+ this FSM also maintains a user defined "memory". So this FSM can be used as a
+--
+2.24.1
+
diff --git a/meta-python/recipes-devtools/python/python3-pexpect_4.5.0.bb b/meta-python/recipes-devtools/python/python3-pexpect_4.5.0.bb
deleted file mode 100644
index cf39233a3a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pexpect_4.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pexpect.inc
-inherit pypi setuptools3
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
new file mode 100644
index 0000000000..ed25406085
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pexpect_4.8.0.bb
@@ -0,0 +1,25 @@
+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-pickleshare_0.7.5.bb b/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
new file mode 100644
index 0000000000..8260913087
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pickleshare_0.7.5.bb
@@ -0,0 +1,14 @@
+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"
+
+PYPI_PACKAGE = "pickleshare"
+
+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/0001-remove-requirement-of-nose.patch b/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch
deleted file mode 100644
index 3beef0700a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pid/0001-remove-requirement-of-nose.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 04d04a8fa1ef3d8dbdaebbaac9ae936e1c8234c1 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 28 Jun 2017 21:17:43 -0400
-Subject: [PATCH] remove requirement of nose
-
-The nose extends unittest to make testing easier.
-Do not need the test suite, so remove requirement of nose.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- setup.py | 2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 3f7c7cb..c42a546 100644
---- a/setup.py
-+++ b/setup.py
-@@ -53,6 +53,4 @@ setup(
- keywords='pid pidfile context manager decorator',
- packages=["pid"],
- install_requires=[],
-- test_suite='nose.collector',
-- setup_requires=['nose>=1.0'],
- )
---
-2.8.1
-
diff --git a/meta-python/recipes-devtools/python/python3-pid_2.2.0.bb b/meta-python/recipes-devtools/python/python3-pid_2.2.0.bb
deleted file mode 100644
index e438319896..0000000000
--- a/meta-python/recipes-devtools/python/python3-pid_2.2.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "Pidfile featuring stale detection and file-locking, can also \
-be used as context-manager or decorator"
-HOMEPAGE = "https://github.com/trbs/pid/"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=83d53cbd3105063f20305bc313464e29"
-
-SRC_URI[md5sum] = "04d30308013d16aa882b3806feda8ab2"
-SRC_URI[sha256sum] = "d8bb2ceec21a4ae84be6e9d320db1f56934b30e676e31c6f098ca7218b3d67d4"
-
-inherit pypi setuptools3
-
-SRC_URI += " \
- file://0001-remove-requirement-of-nose.patch \
-"
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
new file mode 100644
index 0000000000..412dcfce40
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pid_3.0.4.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Pidfile featuring stale detection and file-locking, can also \
+be used as context-manager or decorator"
+HOMEPAGE = "https://github.com/trbs/pid/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=83d53cbd3105063f20305bc313464e29"
+
+SRC_URI[md5sum] = "af607e6e2a51129e3fef516b7994c85b"
+SRC_URI[sha256sum] = "0e33670e83f6a33ebb0822e43a609c3247178d4a375ff50a4689e266d853eb66"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "${PYTHON_PN}-fcntl ${PYTHON_PN}-logging ${PYTHON_PN}-io"
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..d5100dd78e
--- /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 += " \
+ ${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-pillow/0001-explicitly-set-compile-options.patch b/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
new file mode 100644
index 0000000000..005fea5c66
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow/0001-explicitly-set-compile-options.patch
@@ -0,0 +1,40 @@
+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/0001-support-cross-compiling.patch b/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch
new file mode 100644
index 0000000000..e4ba35b886
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow/0001-support-cross-compiling.patch
@@ -0,0 +1,44 @@
+From cd09b6f68aa49c72e9a9bb0765e8c666238a7b7e Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Mon, 11 Jan 2021 13:25:12 +0000
+Subject: [PATCH] support cross compiling
+
+Upstream-Status: Inappropriate [oe specific]
+
+Suggested-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ setup.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index cbc2641c..302bc6e7 100755
+--- a/setup.py
++++ b/setup.py
+@@ -123,7 +123,7 @@ _LIB_IMAGING = (
+ "codec_fd",
+ )
+
+-DEBUG = False
++DEBUG = True
+
+
+ class DependencyException(Exception):
+@@ -408,12 +408,12 @@ class pil_build_ext(build_ext):
+ _add_directory(library_dirs, match.group(1))
+
+ # include, rpath, if set as environment variables:
+- for k in ("C_INCLUDE_PATH", "CPATH", "INCLUDE"):
++ for k in ("C_INCLUDE_PATH", "CPATH", "INCLUDE", "STAGING_INCDIR"):
+ if k in os.environ:
+ for d in os.environ[k].split(os.path.pathsep):
+ _add_directory(include_dirs, d)
+
+- for k in ("LD_RUN_PATH", "LIBRARY_PATH", "LIB"):
++ for k in ("LD_RUN_PATH", "LIBRARY_PATH", "LIB", "STAGING_LIBDIR"):
+ if k in os.environ:
+ for d in os.environ[k].split(os.path.pathsep):
+ _add_directory(library_dirs, d)
+--
+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..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb b/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb
new file mode 100644
index 0000000000..8683ef2287
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pillow_10.0.0.bb
@@ -0,0 +1,65 @@
+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=b22dc6b663b9175820e5e03337c7596b"
+
+SRC_URI = "git://github.com/python-pillow/Pillow.git;branch=main;protocol=https \
+ file://0001-support-cross-compiling.patch \
+ file://0001-explicitly-set-compile-options.patch \
+ file://run-ptest \
+ "
+SRCREV ?= "82541b6dec8452cb612067fcebba1c5a1a2bfdc8"
+
+inherit setuptools3 ptest
+
+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 \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb', '', d)} \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ bash \
+ ghostscript \
+ jpeg-tools \
+ libwebp \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-distutils \
+ ${PYTHON_PN}-image \
+ ${PYTHON_PN}-mmap \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-pytest-timeout \
+ ${PYTHON_PN}-resource \
+ ${PYTHON_PN}-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"
+
+SRCREV = "6e28ed1f36d0eb74053af54e1eddc9c29db698cd"
diff --git a/meta-python/recipes-devtools/python/python3-pint/run-ptest b/meta-python/recipes-devtools/python/python3-pint/run-ptest
new file mode 100644
index 0000000000..5cec711696
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pint/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest
diff --git a/meta-python/recipes-devtools/python/python3-pint_0.22.bb b/meta-python/recipes-devtools/python/python3-pint_0.22.bb
new file mode 100644
index 0000000000..0eed33f799
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pint_0.22.bb
@@ -0,0 +1,35 @@
+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] = "2d139f6abbcf3016cad7d3cec05707fe908ac4f99cf59aedfd6ee667b7a64433"
+
+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-pkcs11_0.7.0.bb b/meta-python/recipes-devtools/python/python3-pkcs11_0.7.0.bb
new file mode 100644
index 0000000000..816b728dc0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pkcs11_0.7.0.bb
@@ -0,0 +1,25 @@
+SUMMARY = "PKCS#11 (Cryptoki) support for Python"
+DESCRIPTION = "A high level, “more Pythonic” interface to the PKCS#11 (Cryptoki) standard to support HSM and Smartcard devices in Python."
+HOMEPAGE = "https://pypi.org/project/python-pkcs11/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.rst;beginline=337;endline=358;md5=f68bda54505b4002e6ec86e08125ef79"
+
+SRC_URI[sha256sum] = "9737e0c24cabb8bc9d48bf8c57c3df2a70f8cdd96b70c50290803286f9e46bf7"
+
+PYPI_PACKAGE = "python-pkcs11"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native"
+
+DEPENDS += " \
+ python3-cython-native \
+ python3-setuptools-scm-native \
+ python3 \
+"
+
+RDEPENDS:${PN} += " \
+ python3-asn1crypto \
+ python3-cached-property \
+"
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
new file mode 100644
index 0000000000..1aa91deac5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pkgconfig_1.5.5.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python module to interface with the pkg-config command line too"
+HOMEPAGE = "http://github.com/matze/pkgconfig"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=faa7f82be8f220bff6156be4790344fc"
+
+SRC_URI[sha256sum] = "deb4163ef11f75b520d822d9505c1f462761b4309b1bb713d08689759ea8b899"
+
+RDEPENDS:${PN} = "pkgconfig \
+ ${PYTHON_PN}-shell \
+ "
+
+inherit pypi python_poetry_core
+
+BBCLASSEXTEND = "native"
+
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..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-platformdirs/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-platformdirs_3.9.1.bb b/meta-python/recipes-devtools/python/python3-platformdirs_3.9.1.bb
new file mode 100644
index 0000000000..c52d9d2169
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-platformdirs_3.9.1.bb
@@ -0,0 +1,31 @@
+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] = "1b42b450ad933e981d56e59f1b97495428c9bd60698baab9f3eb3d00d5822421"
+
+inherit pypi python_hatchling ptest
+
+DEPENDS += " \
+ ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-appdirs \
+ ${PYTHON_PN}-covdefaults \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-pytest-mock \
+ ${PYTHON_PN}-pytest-cov \
+"
+
+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-pluggy_0.6.0.bb b/meta-python/recipes-devtools/python/python3-pluggy_0.6.0.bb
deleted file mode 100644
index 941e8e3d8c..0000000000
--- a/meta-python/recipes-devtools/python/python3-pluggy_0.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pluggy.inc
diff --git a/meta-python/recipes-devtools/python/python3-ply_3.11.bb b/meta-python/recipes-devtools/python/python3-ply_3.11.bb
deleted file mode 100644
index 72410baebf..0000000000
--- a/meta-python/recipes-devtools/python/python3-ply_3.11.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-ply.inc
-inherit setuptools3
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
new file mode 100644
index 0000000000..f7ffd9d268
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pocketsphinx_0.1.15.bb
@@ -0,0 +1,14 @@
+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-polyline/run-ptest b/meta-python/recipes-devtools/python/python3-polyline/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-polyline/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..486e70c8fd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-polyline_1.4.0.bb
@@ -0,0 +1,26 @@
+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-portion_2.4.0.bb b/meta-python/recipes-devtools/python/python3-portion_2.4.0.bb
new file mode 100644
index 0000000000..942f1204c0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-portion_2.4.0.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] = "deb16389e844dbf9aeb654261fce5febd720e4786c6690efbb9dc11608226840"
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..d66ef0e3c4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-posix-ipc_1.0.5.bb
@@ -0,0 +1,15 @@
+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-prctl/0001-support-cross-complication.patch b/meta-python/recipes-devtools/python/python3-prctl/0001-support-cross-complication.patch
index 775ae1b2e2..98d250c74c 100644
--- a/meta-python/recipes-devtools/python/python3-prctl/0001-support-cross-complication.patch
+++ b/meta-python/recipes-devtools/python/python3-prctl/0001-support-cross-complication.patch
@@ -1,4 +1,4 @@
-From 9a16800738547d117284354bbcad7dd77d9d0344 Mon Sep 17 00:00:00 2001
+From 5f3911737c63a098caf73f1365320fe1b3a7638b Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 21 Apr 2016 03:05:57 -0400
Subject: [PATCH] support cross-complication
@@ -6,12 +6,13 @@ Subject: [PATCH] support cross-complication
Upstream-Status: Inappropriate [oe specific]
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
---
setup.py | 35 -----------------------------------
1 file changed, 35 deletions(-)
diff --git a/setup.py b/setup.py
-index 658d1a5..e8be7eb 100755
+index eb83cfe..3f9567b 100755
--- a/setup.py
+++ b/setup.py
@@ -13,41 +13,6 @@ import sys
@@ -38,13 +39,13 @@ index 658d1a5..e8be7eb 100755
- sys.stderr.write("You need to install gcc to build this module\n")
- sys.exit(1)
-
--sp = subprocess.Popen(['cpp'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+-sp = subprocess.Popen(['cpp'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=os.environ)
-sp.communicate('#include <sys/prctl.h>\n'.encode())
-if sp.returncode:
- sys.stderr.write("You need to install libc development headers to build this module\n")
- exit = True
-
--sp = subprocess.Popen(['cpp'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+-sp = subprocess.Popen(['cpp'], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=os.environ)
-sp.communicate('#include <sys/capability.h>\n'.encode())
-if sp.returncode:
- sys.stderr.write("You need to install libcap development headers to build this module\n")
@@ -57,5 +58,5 @@ index 658d1a5..e8be7eb 100755
sources = ['_prctlmodule.c'],
depends = ['securebits.h'],
--
-2.8.1
+2.17.1
diff --git a/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb b/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb
deleted file mode 100644
index 5de83ce487..0000000000
--- a/meta-python/recipes-devtools/python/python3-prctl_1.6.1.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Control process attributes through prctl"
-DESCRIPTION = "The linux prctl function allows you to control specific characteristics of a \
-process' behaviour. Usage of the function is fairly messy though, due to \
-limitations in C and linux. This module provides a nice non-messy python(ic) \
-interface."
-SECTION = "devel/python"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=5eb2f4bcd60326f83e5deb542372d52f"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "1107d0be7bec4b28c85c62c454882d16844c930a"
-PV = "1.6.1+git${SRCPV}"
-
-SRC_URI = "git://github.com/seveas/python-prctl;branch=master \
- file://0001-support-cross-complication.patch \
-"
-inherit setuptools3 python3native
-
-DEPENDS += "libcap"
-
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
new file mode 100644
index 0000000000..a45ef45f32
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-prctl_1.8.1.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Control process attributes through prctl"
+DESCRIPTION = "The linux prctl function allows you to control specific characteristics of a \
+process' behaviour. Usage of the function is fairly messy though, due to \
+limitations in C and linux. This module provides a nice non-messy python(ic) \
+interface."
+SECTION = "devel/python"
+LICENSE = "GPL-3.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=1475481f9ec754d758859bd2c75f6f6f"
+
+S = "${WORKDIR}/git"
+B = "${S}"
+
+SRCREV = "5e12e398eb5c4e30d7b29b02458c76d2cc780700"
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-precise-runner/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..9e5435bada
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-precise-runner_0.3.1.bb
@@ -0,0 +1,22 @@
+SUMMARY = "A lightweight, simple-to-use, RNN wake word listener."
+HOMEPAGE = "https://github.com/MycroftAI/mycroft-precise"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://README.md;md5=2ad29e930f3107d52d2a55728bf62116"
+
+SRC_URI[md5sum] = "a2434be110444192e804f4dada0ccecf"
+SRC_URI[sha256sum] = "1a464209fb4bf0a3f5d5a428310cb2a70487a01a6bc3a960d1dda90af896b80d"
+
+inherit pypi setuptools3 ptest
+
+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-pretend_1.0.9.bb b/meta-python/recipes-devtools/python/python3-pretend_1.0.9.bb
deleted file mode 100644
index 9c5d8a8437..0000000000
--- a/meta-python/recipes-devtools/python/python3-pretend_1.0.9.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-pretend.inc
diff --git a/meta-python/recipes-devtools/python/python3-prettytable/run-ptest b/meta-python/recipes-devtools/python/python3-prettytable/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-prettytable/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-prettytable_3.6.0.bb b/meta-python/recipes-devtools/python/python3-prettytable_3.6.0.bb
new file mode 100644
index 0000000000..0c0692b144
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-prettytable_3.6.0.bb
@@ -0,0 +1,46 @@
+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] = "2e0026af955b4ea67b22122f310b90eae890738c08cb0458693a49b6221530ac"
+
+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 python_hatchling
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+DEPENDS += "\
+ ${PYTHON_PN}-hatch-vcs-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
new file mode 100644
index 0000000000..eb01504f61
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-process-tests_2.1.2.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=37031056aff37e4b3310872a9a3d0b1e"
+
+SRC_URI[sha256sum] = "a3747ad947bdfc93e5c986bdb17a6d718f3f26e8577a0807a00962f29e26deba"
+
+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.3.bb b/meta-python/recipes-devtools/python/python3-progress_1.3.bb
deleted file mode 100644
index 45e2642133..0000000000
--- a/meta-python/recipes-devtools/python/python3-progress_1.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-progress.inc
diff --git a/meta-python/recipes-devtools/python/python3-progress_1.6.bb b/meta-python/recipes-devtools/python/python3-progress_1.6.bb
new file mode 100644
index 0000000000..1333da98da
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-progress_1.6.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Easy progress reporting for Python"
+HOMEPAGE = "http://github.com/verigak/progress/"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=00ab78a4113b09aacf63d762a7bb9644"
+
+SRC_URI[sha256sum] = "c9c86e98b5c03fa1fe11e3b67c1feda4788b8d0fe7336c2ff7d5644ccfba34cd"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN}:class-target += " \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-math \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb b/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb
deleted file mode 100644
index 0e99917c21..0000000000
--- a/meta-python/recipes-devtools/python/python3-prompt-toolkit_1.0.15.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-inherit pypi setuptools3
-require python-prompt-toolkit.inc
-
-RDEPENDS_${PN} += " \
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-shell \
-"
diff --git a/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.36.bb b/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.36.bb
new file mode 100644
index 0000000000..a5299318b3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-prompt-toolkit_3.0.36.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] = "3e163f254bef5a03b146397d7c1963bd3e2812f0964bb9a24e6ec761fd28db63"
+
+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-protobuf_3.5.2.bb b/meta-python/recipes-devtools/python/python3-protobuf_3.5.2.bb
deleted file mode 100644
index 781d1dc4da..0000000000
--- a/meta-python/recipes-devtools/python/python3-protobuf_3.5.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-protobuf.inc
diff --git a/meta-python/recipes-devtools/python/python3-protobuf_4.23.4.bb b/meta-python/recipes-devtools/python/python3-protobuf_4.23.4.bb
new file mode 100644
index 0000000000..8474a43d69
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-protobuf_4.23.4.bb
@@ -0,0 +1,39 @@
+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] = "ccd9430c0719dce806b93f89c91de7977304729e55377f872a92465d548329a9"
+
+# 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-psutil_5.4.3.bb b/meta-python/recipes-devtools/python/python3-psutil_5.4.3.bb
deleted file mode 100644
index c1969ea657..0000000000
--- a/meta-python/recipes-devtools/python/python3-psutil_5.4.3.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools3
-require python-psutil.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-netclient"
diff --git a/meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest b/meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest
new file mode 100644
index 0000000000..15c3f6282d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ptyprocess/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb b/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb
deleted file mode 100644
index bdcd0e2539..0000000000
--- a/meta-python/recipes-devtools/python/python3-ptyprocess_0.5.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-ptyprocess.inc
-inherit pypi setuptools3
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
new file mode 100644
index 0000000000..2a8b8730c4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ptyprocess_0.7.0.bb
@@ -0,0 +1,43 @@
+SUMMARY = "Run a subprocess in a pseudo terminal"
+HOMEPAGE = "http://ptyprocess.readthedocs.io/en/latest/"
+SECTION = "devel/python"
+LICENSE = "ISC"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cfdcd51fa7d5808da4e74346ee394490"
+
+SRCNAME = "ptyprocess"
+
+SRC_URI[sha256sum] = "5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"
+
+inherit pypi python_flit_core
+
+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 \
+"
+
+BBCLASSEXTEND = "native nativesdk"
+
+inherit ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-fcntl \
+ ${PYTHON_PN}-terminal \
+ ${PYTHON_PN}-resource \
+ 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-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/run-ptest b/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-py-cpuinfo/run-ptest
@@ -0,0 +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}}'
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..5fbac03ac0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-py-cpuinfo_9.0.0.bb
@@ -0,0 +1,27 @@
+# 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 \
+ "
+
+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-ubjson_0.16.1.bb b/meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb
new file mode 100644
index 0000000000..222eb1e0e8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-py-ubjson_0.16.1.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Universal Binary JSON encoder/decoder"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=383b9e6c3f9d1386a4eea17792291d91"
+
+SRC_URI[sha256sum] = "b9bfb8695a1c7e3632e800fb83c943bf67ed45ddd87cd0344851610c69a5a482"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-numbers \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-py_1.5.2.bb b/meta-python/recipes-devtools/python/python3-py_1.5.2.bb
deleted file mode 100644
index 0ee373d24c..0000000000
--- a/meta-python/recipes-devtools/python/python3-py_1.5.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-py.inc
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.8.4.bb b/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.8.4.bb
deleted file mode 100644
index b7da1a43d8..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyalsaaudio_0.8.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyalsaaudio.inc
-inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest b/meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyasn1-modules/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.1.bb b/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.1.bb
deleted file mode 100644
index 3b1186f06c..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyasn1-modules.inc
-inherit setuptools3
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
new file mode 100644
index 0000000000..d6a2749c24
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyasn1-modules_0.2.8.bb
@@ -0,0 +1,29 @@
+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_0.4.2.bb b/meta-python/recipes-devtools/python/python3-pyasn1_0.4.2.bb
deleted file mode 100644
index a5e2a71362..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyasn1_0.4.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-pyasn1.inc
diff --git a/meta-python/recipes-devtools/python/python3-pyatspi_2.46.0.bb b/meta-python/recipes-devtools/python/python3-pyatspi_2.46.0.bb
new file mode 100644
index 0000000000..cd0e12ec8e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyatspi_2.46.0.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 = "c9cb2a2289a6eb1fb95b66c25d5351bfea54c47e"
+
+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.13.bb b/meta-python/recipes-devtools/python/python3-pyaudio_0.2.13.bb
new file mode 100644
index 0000000000..1f0b5cf6e8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyaudio_0.2.13.bb
@@ -0,0 +1,17 @@
+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[md5sum] = "41199ffd2abbdaf1ce6b88cf8af48cc5"
+SRC_URI[sha256sum] = "26bccc81e4243d1c0ff5487e6b481de6329fcd65c79365c267cef38f363a2b56"
+
+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-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_2.11.1.bb b/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
new file mode 100644
index 0000000000..d51dd905a5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybind11_2.11.1.bb
@@ -0,0 +1,35 @@
+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"
+
+SRCREV = "8a099e44b3d5f85b20f05828d919d2332a8de841"
+
+S = "${WORKDIR}/git"
+
+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.2.2.bb b/meta-python/recipes-devtools/python/python3-pybind11_2.2.2.bb
deleted file mode 100644
index 355e28460e..0000000000
--- a/meta-python/recipes-devtools/python/python3-pybind11_2.2.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-pybind11.inc
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
new file mode 100644
index 0000000000..9126aba8d3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybluez/0001-Use-Py_ssize_t-when-parsing-buffer-length-fix-426-42.patch
@@ -0,0 +1,153 @@
+From aa8ee5e5e934908f0357364f6ec90a3ecda62880 Mon Sep 17 00:00:00 2001
+From: Nicolas Schodet <nico@ni.fr.eu.org>
+Date: Mon, 3 Jan 2022 02:37:01 +0100
+Subject: [PATCH] Use Py_ssize_t when parsing buffer length, fix #426 (#427)
+
+From python 3.9 documentation:
+
+> For all # variants of formats (s#, y#, etc.), the macro
+> PY_SSIZE_T_CLEAN must be defined before including Python.h. On Python
+> 3.9 and older, the type of the length argument is Py_ssize_t if the
+> PY_SSIZE_T_CLEAN macro is defined, or int otherwise.
+
+From python 3.8 changes:
+
+> Use of # variants of formats in parsing or building value (e.g.
+> PyArg_ParseTuple(), Py_BuildValue(), PyObject_CallFunction(), etc.)
+> without PY_SSIZE_T_CLEAN defined raises DeprecationWarning now. It
+> will be removed in 3.10 or 4.0. Read Parsing arguments and building
+> values for detail. (Contributed by Inada Naoki in bpo-36381.)
+
+Fixes https://github.com/pybluez/pybluez/issues/426
+---
+Upstream-Status: Accepted
+
+ bluez/btmodule.c | 23 ++++++++++++++---------
+ msbt/_msbt.c | 6 ++++--
+ 2 files changed, 18 insertions(+), 11 deletions(-)
+
+diff --git a/bluez/btmodule.c b/bluez/btmodule.c
+index 518b723..912a489 100644
+--- a/bluez/btmodule.c
++++ b/bluez/btmodule.c
+@@ -16,7 +16,8 @@ Local naming conventions:
+ - names starting with bt_ are module-level functions
+
+ */
+-
++#define PY_SSIZE_T_CLEAN 1
++#include "Python.h"
+ #include "btmodule.h"
+ #include "structmember.h"
+
+@@ -732,7 +733,7 @@ sock_setsockopt(PySocketSockObject *s, PyObject *args)
+ int optname;
+ int res;
+ void *buf;
+- int buflen;
++ Py_ssize_t buflen;
+ int flag;
+
+ if (PyArg_ParseTuple(args, "iii:setsockopt", &level, &optname, &flag)) {
+@@ -2001,7 +2002,8 @@ static PyObject *
+ bt_hci_send_cmd(PyObject *self, PyObject *args)
+ {
+ PySocketSockObject *socko = NULL;
+- int err, plen = 0;
++ int err;
++ Py_ssize_t plen = 0;
+ uint16_t ogf, ocf;
+ char *param = NULL;
+ int dd = 0;
+@@ -2036,6 +2038,7 @@ bt_hci_send_req(PyObject *self, PyObject *args, PyObject *kwds)
+ int err;
+ int to=0;
+ char rparam[256];
++ Py_ssize_t req_clen;
+ struct hci_request req = { 0 };
+ int dd = 0;
+
+@@ -2043,9 +2046,10 @@ bt_hci_send_req(PyObject *self, PyObject *args, PyObject *kwds)
+ "timeout", 0 };
+
+ if( !PyArg_ParseTupleAndKeywords(args, kwds, "OHHii|s#i", keywords,
+- &socko, &req.ogf, &req.ocf, &req.event, &req.rlen,
+- &req.cparam, &req.clen, &to) )
++ &socko, &req.ogf, &req.ocf, &req.event, &req.rlen,
++ &req.cparam, &req_clen, &to) )
+ return 0;
++ req.clen = req_clen;
+
+ req.rparam = rparam;
+ dd = socko->sock_fd;
+@@ -2274,7 +2278,8 @@ Returns the name of the device, or raises an error on failure");
+ static PyObject * bt_hci_filter_ ## name (PyObject *self, PyObject *args )\
+ { \
+ char *param; \
+- int len, arg; \
++ Py_ssize_t len; \
++ int arg; \
+ if( !PyArg_ParseTuple(args,"s#i", &param, &len, &arg) ) \
+ return 0; \
+ if( len != sizeof(struct hci_filter) ) { \
+@@ -2303,7 +2308,7 @@ DECL_HCI_FILTER_OP_1(test_opcode, "test opcode!")
+ static PyObject * bt_hci_filter_ ## name (PyObject *self, PyObject *args )\
+ { \
+ char *param; \
+- int len; \
++ Py_ssize_t len; \
+ if( !PyArg_ParseTuple(args,"s#", &param, &len) ) \
+ return 0; \
+ if( len != sizeof(struct hci_filter) ) { \
+@@ -2364,7 +2369,7 @@ static PyObject *
+ bt_ba2str(PyObject *self, PyObject *args)
+ {
+ char *data=NULL;
+- int len=0;
++ Py_ssize_t len=0;
+ char ba_str[19] = {0};
+ if (!PyArg_ParseTuple(args, "s#", &data, &len)) return 0;
+ ba2str((bdaddr_t*)data, ba_str);
+@@ -2579,7 +2584,7 @@ bt_sdp_advertise_service( PyObject *self, PyObject *args )
+ *provider = NULL,
+ *description = NULL;
+ PyObject *service_classes, *profiles, *protocols;
+- int namelen = 0, provlen = 0, desclen = 0;
++ Py_ssize_t namelen = 0, provlen = 0, desclen = 0;
+ uuid_t svc_uuid = { 0 };
+ int i;
+ char addrbuf[256] = { 0 };
+diff --git a/msbt/_msbt.c b/msbt/_msbt.c
+index b3d27ff..81f5ee9 100644
+--- a/msbt/_msbt.c
++++ b/msbt/_msbt.c
+@@ -2,6 +2,8 @@
+ #define UNICODE
+ #endif
+
++#define PY_SSIZE_T_CLEAN 1
++
+ #include <winsock2.h>
+ #include <ws2bth.h>
+ #include <BluetoothAPIs.h>
+@@ -155,7 +157,7 @@ static PyObject *
+ msbt_bind(PyObject *self, PyObject *args)
+ {
+ wchar_t *addrstr = NULL;
+- int addrstrlen = -1;
++ Py_ssize_t addrstrlen = -1;
+ int sockfd = -1;
+ int port = -1;
+ char buf[100] = { 0 };
+@@ -765,7 +767,7 @@ msbt_set_service_raw(PyObject *self, PyObject *args)
+ WSAESETSERVICEOP op;
+
+ char *record = NULL;
+- int reclen = -1;
++ Py_ssize_t reclen = -1;
+ BTH_SET_SERVICE *si = NULL;
+ int silen = -1;
+ ULONG sdpVersion = BTH_SDP_VERSION;
+--
+2.34.1
+
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.22.bb b/meta-python/recipes-devtools/python/python3-pybluez_0.22.bb
deleted file mode 100644
index 9712a76085..0000000000
--- a/meta-python/recipes-devtools/python/python3-pybluez_0.22.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pybluez.inc
-inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb b/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
new file mode 100644
index 0000000000..219642849d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pybluez_0.23.bb
@@ -0,0 +1,26 @@
+DESCRIPTION = "Bluetooth Python extension module"
+HOMEPAGE = "https://pybluez.github.io/"
+SECTION = "devel/python"
+
+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 \
+ file://py-3.11.patch "
+SRC_URI[md5sum] = "afbe8429bb82d2c46a3d0f5f4f898f9d"
+SRC_URI[sha256sum] = "c8f04d2e78951eaa9de486b4d49381704e8943d0a6e6e58f55fcd7b8582e90de"
+
+PYPI_PACKAGE = "PyBluez"
+
+inherit pypi setuptools3
+
+do_configure:prepend() {
+ sed -i -e "/use_2to3=True,/d" ${S}/setup.py
+}
+
+RDEPENDS:${PN} += "\
+ bluez5 \
+ ${PYTHON_PN}-fcntl \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pycares_4.3.0.bb b/meta-python/recipes-devtools/python/python3-pycares_4.3.0.bb
new file mode 100644
index 0000000000..f5223913cf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycares_4.3.0.bb
@@ -0,0 +1,20 @@
+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] = "c542696f6dac978e9d99192384745a65f80a7d9450501151e4a7563e06010d45"
+
+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-pychromecast_13.0.7.bb b/meta-python/recipes-devtools/python/python3-pychromecast_13.0.7.bb
new file mode 100644
index 0000000000..c27d490f4c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pychromecast_13.0.7.bb
@@ -0,0 +1,19 @@
+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] = "0de98e9e5be43269dd41efb16126ab0d5ba941ca4acae024329712851c0c0324"
+
+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-pycocotools_2.0.6.bb b/meta-python/recipes-devtools/python/python3-pycocotools_2.0.6.bb
new file mode 100644
index 0000000000..16d7721ee3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycocotools_2.0.6.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] = "7fe089b05cc18e806dcf3bd764708d86dab922a100f3734eb77fb77a70a1d18c"
+
+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.10.0.bb b/meta-python/recipes-devtools/python/python3-pycodestyle_2.10.0.bb
new file mode 100644
index 0000000000..b29fd48610
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycodestyle_2.10.0.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] = "347187bdb476329d98f695c213d7295a846d1152ff4fe9bacb8a9590b8ee7053"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb b/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb
deleted file mode 100644
index 7cc024ea09..0000000000
--- a/meta-python/recipes-devtools/python/python3-pycparser_2.18.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools3
-require python-pycparser.inc
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-netclient \
- "
diff --git a/meta-python/recipes-devtools/python/python3-pycrypto_2.6.1.bb b/meta-python/recipes-devtools/python/python3-pycrypto_2.6.1.bb
deleted file mode 100644
index 02d634cb00..0000000000
--- a/meta-python/recipes-devtools/python/python3-pycrypto_2.6.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-inherit distutils3
-require python-pycrypto.inc
-
-# We explicitly call distutils_do_install, since we want it to run, but
-# *don't* want the autotools install to run, since this package doesn't
-# provide a "make install" target.
-do_install() {
- distutils3_do_install
-}
diff --git a/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb b/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb
deleted file mode 100644
index 0c062dddf8..0000000000
--- a/meta-python/recipes-devtools/python/python3-pycryptodome_3.4.11.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pycryptodome.inc
-inherit 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..fb2a41d261
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pycurl_7.45.2.bb
@@ -0,0 +1,19 @@
+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
diff --git a/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb b/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb
new file mode 100644
index 0000000000..9d59cf8598
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pydantic_1.10.7.bb
@@ -0,0 +1,21 @@
+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] = "cfc83c0678b6ba51b0532bea66860617c4cd4251ecf76e9846fa5a9f3454e97e"
+
+RDEPENDS:${PN} += "\
+ python3-core \
+ python3-datetime \
+ python3-image \
+ python3-io \
+ python3-json \
+ python3-logging \
+ python3-netclient \
+ python3-numbers \
+ python3-profile \
+ python3-typing-extensions \
+"
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
deleted file mode 100644
index 7ed1c63b63..0000000000
--- a/meta-python/recipes-devtools/python/python3-pydbus_0.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pydbus.inc
-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.17.bb b/meta-python/recipes-devtools/python/python3-pyexpect_1.0.17.bb
deleted file mode 100644
index bfd5840410..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyexpect_1.0.17.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pyexpect.inc
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
new file mode 100644
index 0000000000..933e086265
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyfanotify/0001-ext-define-FNM_EXTMATCH-if-not-already-defined.patch
@@ -0,0 +1,31 @@
+From 9e7894b97ae7afe43a9901b774de5aef401549ac 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
+
+ src/ext.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/ext.c b/src/ext.c
+index 2ba9a14..98ffc20 100644
+--- a/src/ext.c
++++ b/src/ext.c
+@@ -18,6 +18,9 @@
+ #include <sys/un.h>
+ #include <unistd.h>
+
++#ifndef FNM_EXTMATCH
++#define FNM_EXTMATCH 0
++#endif
+
+ PyDoc_STRVAR(ext__doc__,
+ "Wrapper for fanotify.\n"
+--
+2.32.0
+
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
new file mode 100644
index 0000000000..d887901443
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyfanotify_0.2.0.bb
@@ -0,0 +1,18 @@
+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-pyfirmata_1.0.3.bb b/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb
deleted file mode 100644
index 25af1b5c0a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyfirmata_1.0.3.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit setuptools3
-require python-pyfirmata.inc
-
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
new file mode 100644
index 0000000000..5bbc33ade0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyfirmata_1.1.0.bb
@@ -0,0 +1,13 @@
+SUMMARY = "A Python interface for the Firmata protocol"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=84ddcef430b7c44caa22b2ff4b37a3df"
+PYPI_PACKAGE = "pyFirmata"
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-pyserial \
+"
+
+SRC_URI[md5sum] = "159673cfb56c72ceafc30fe91eedd847"
+SRC_URI[sha256sum] = "cc180d1b30c85a2bbca62c15fef1b871db048cdcfa80959968356d97bd3ff08e"
+
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pyflakes_3.0.1.bb b/meta-python/recipes-devtools/python/python3-pyflakes_3.0.1.bb
new file mode 100644
index 0000000000..2e3a3474a0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyflakes_3.0.1.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] = "ec8b276a6b60bd80defed25add7e439881c19e64850afd9b346283d4165fd0fd"
+
+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
new file mode 100644
index 0000000000..888278af80
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyhamcrest_2.0.4.bb
@@ -0,0 +1,15 @@
+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-pyiface_0.0.5.bb b/meta-python/recipes-devtools/python/python3-pyiface_0.0.5.bb
deleted file mode 100644
index 721e7b1c99..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyiface_0.0.5.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pyiface.inc
diff --git a/meta-python/recipes-devtools/python/python3-pyiface_git.bb b/meta-python/recipes-devtools/python/python3-pyiface_git.bb
new file mode 100644
index 0000000000..29a0bc86c5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyiface_git.bb
@@ -0,0 +1,24 @@
+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"
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-fcntl \
+ python3-io \
+"
+
+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
index b3bab989ab..8dd5e1580a 100644
--- a/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
+++ b/meta-python/recipes-devtools/python/python3-pyinotify_0.9.6.bb
@@ -1,2 +1,19 @@
-inherit setuptools3
-require python-pyinotify.inc
+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_17.1.1.bb b/meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb
deleted file mode 100644
index 8982fcebc3..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyjks_17.1.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyjks.inc
-inherit 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
new file mode 100644
index 0000000000..c0cca98ff6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyjks_20.0.0.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Pure-Python Java Keystore (JKS) library"
+DESCRIPTION = "PyJKS enables Python projects to load and manipulate\
+ Java KeyStore (JKS) data without a JVM dependency. PyJKS supports JKS,\
+ JCEKS, BKS and UBER (BouncyCastle) keystores."
+HOMEPAGE = "http://github.com/kurtbrose/pyjks"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9694d6cc724caf7f7386be88a4a81958"
+
+SRC_URI[md5sum] = "1a6bce95484f1f62f8ff59755972c632"
+SRC_URI[sha256sum] = "0378cec15fb11b2ed27ba54dad9fd987d48e6f62f49fcff138f5f7a8b312b044"
+
+inherit pypi setuptools3
+
+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_1.6.1.bb b/meta-python/recipes-devtools/python/python3-pyjwt_1.6.1.bb
deleted file mode 100644
index dc16d22825..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyjwt_1.6.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyjwt.inc
-inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pyjwt_2.7.0.bb b/meta-python/recipes-devtools/python/python3-pyjwt_2.7.0.bb
new file mode 100644
index 0000000000..3aa9b479a5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyjwt_2.7.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] = "bd6ca4a3c4285c1a2d4349e5a035fdf8fb94e04ccd0fcbe6ba289dae9cc3e074"
+
+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
new file mode 100644
index 0000000000..d94051df89
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pykwalify_1.8.0.bb
@@ -0,0 +1,20 @@
+SUMMARY = "YAML/JSON validation library"
+DESCRIPTION = "pykwalify is a schema validator for YAML and JSON"
+HOMEPAGE = "https://pypi.org/project/pykwalify/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4eaf57328ad29ea2e0ed31a57f0914dc"
+
+SRC_URI[sha256sum] = "796b2ad3ed4cb99b88308b533fb2f559c30fa6efb4fa9fda11347f483d245884"
+
+PYPI_PACKAGE = "pykwalify"
+
+inherit setuptools3 pypi
+
+RDEPENDS:${PN} = "\
+ python3-dateutil \
+ python3-docopt \
+ python3-logging \
+ python3-ruamel-yaml \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pylint/0001-pylint-remove-plugin-pickle-test.patch b/meta-python/recipes-devtools/python/python3-pylint/0001-pylint-remove-plugin-pickle-test.patch
new file mode 100644
index 0000000000..a7637a5ca6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylint/0001-pylint-remove-plugin-pickle-test.patch
@@ -0,0 +1,53 @@
+From 341e19dd69d847f84859e85cabff5846e7da24c4 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Mon, 15 May 2023 09:26:04 -0400
+Subject: [PATCH] pylint: remove plugin pickle test
+
+Upstream-Status: Inappropriate (oe-specific)
+
+Upstream uses an assertion in the removed test to state that the test
+needs changing if the plugin loading succeeds. The same failure wasn't
+seen when running the tests on the host with pytest, so disable it by
+removing the test from the suite.
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ tests/test_check_parallel.py | 22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+diff --git a/tests/test_check_parallel.py b/tests/test_check_parallel.py
+index d56502eaf..34fec140f 100644
+--- a/tests/test_check_parallel.py
++++ b/tests/test_check_parallel.py
+@@ -257,28 +257,6 @@ class TestCheckParallelFramework:
+ assert stats.statement == 18
+ assert stats.warning == 0
+
+- def test_linter_with_unpickleable_plugins_is_pickleable(self) -> None:
+- """The linter needs to be pickle-able in order to be passed between workers"""
+- linter = PyLinter(reporter=Reporter())
+- # We load an extension that we know is not pickle-safe
+- linter.load_plugin_modules(["pylint.extensions.overlapping_exceptions"])
+- try:
+- dill.dumps(linter)
+- raise AssertionError(
+- "Plugins loaded were pickle-safe! This test needs altering"
+- )
+- except (KeyError, TypeError, PickleError, NotImplementedError):
+- pass
+-
+- # And expect this call to make it pickle-able
+- linter.load_plugin_configuration()
+- try:
+- dill.dumps(linter)
+- except KeyError as exc:
+- raise AssertionError(
+- "Cannot pickle linter when using non-pickleable plugin"
+- ) from exc
+-
+ def test_worker_check_sequential_checker(self) -> None:
+ """Same as test_worker_check_single_file_no_checkers with SequentialTestChecker."""
+ linter = PyLinter(reporter=Reporter())
+--
+2.40.1
+
diff --git a/meta-python/recipes-devtools/python/python3-pylint/0001-pyproject.toml-Remove-hard-coded-dependencies.patch b/meta-python/recipes-devtools/python/python3-pylint/0001-pyproject.toml-Remove-hard-coded-dependencies.patch
new file mode 100644
index 0000000000..7950e72077
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylint/0001-pyproject.toml-Remove-hard-coded-dependencies.patch
@@ -0,0 +1,26 @@
+From c5c415a240189ac6730ba95de0bb5883dfb53609 Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Mon, 1 May 2023 11:32:24 -0400
+Subject: [PATCH] pyproject.toml: Remove hard-coded dependencies
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+Upstream-Status: Pending
+
+ pyproject.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index bd542646b..2c0ed9485 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,5 +1,5 @@
+ [build-system]
+-requires = ["setuptools~=62.6", "wheel~=0.37.1"]
++requires = ["setuptools", "wheel"]
+ build-backend = "setuptools.build_meta"
+
+ [project]
+--
+2.40.0
+
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..7a5ceedf95
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylint/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --benchmark-disable -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-pylint_1.8.3.bb b/meta-python/recipes-devtools/python/python3-pylint_1.8.3.bb
deleted file mode 100644
index 563e8316cf..0000000000
--- a/meta-python/recipes-devtools/python/python3-pylint_1.8.3.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3 python3-dir
-require python-pylint.inc
diff --git a/meta-python/recipes-devtools/python/python3-pylint_2.17.4.bb b/meta-python/recipes-devtools/python/python3-pylint_2.17.4.bb
new file mode 100644
index 0000000000..96fce2e048
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylint_2.17.4.bb
@@ -0,0 +1,51 @@
+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=main;protocol=https \
+ file://run-ptest \
+ file://0001-pyproject.toml-Remove-hard-coded-dependencies.patch \
+ file://0001-pylint-remove-plugin-pickle-test.patch \
+ "
+SRCREV ?= "fc34a4b6abe56f3ac07ca15d846b1c1955545f85"
+
+inherit python_setuptools_build_meta ptest
+
+RDEPENDS:${PN} += "${PYTHON_PN}-astroid \
+ ${PYTHON_PN}-dill \
+ ${PYTHON_PN}-isort \
+ ${PYTHON_PN}-mccabe \
+ ${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-platformdirs \
+ ${PYTHON_PN}-shell \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-pkgutil \
+ ${PYTHON_PN}-difflib \
+ ${PYTHON_PN}-netserver \
+ ${PYTHON_PN}-tomlkit \
+ "
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-git \
+ ${PYTHON_PN}-py \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-pytest-benchmark \
+ ${PYTHON_PN}-pytest-runner \
+ ${PYTHON_PN}-pytest-timeout \
+ ${PYTHON_PN}-pytest-xdist \
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-statistics \
+ ${PYTHON_PN}-tomllib \
+ ${PYTHON_PN}-typing-extensions \
+ "
+
+S = "${WORKDIR}/git"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+ sed -i 's#/usr/bin/python$#/usr/bin/python3#g' ${D}${PTEST_PATH}/tests/data/ascript
+}
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
new file mode 100644
index 0000000000..1ac95e8be3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pylyrics_1.1.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Pythonic Implementation of lyrics.wikia.com"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=14;endline=14;md5=95d480cd6f8471abaeae21bd0ed277ba"
+
+SRC_URI[md5sum] = "1f3c997edeba149a8fb2b861cbad89c3"
+SRC_URI[sha256sum] = "c5f36e8ef0ed3b487a9242ce34c19f9684e418a5bbffd5d367dc1d1604b4cd0b"
+
+PYPI_PACKAGE = "PyLyrics"
+PYPI_PACKAGE_EXT = "zip"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-beautifulsoup4 \
+ python3-classes \
+ python3-requests \
+"
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
new file mode 100644
index 0000000000..c5ab635927
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymetno_0.10.0.bb
@@ -0,0 +1,18 @@
+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-pymisp_2.4.173.bb b/meta-python/recipes-devtools/python/python3-pymisp_2.4.173.bb
new file mode 100644
index 0000000000..10cc52a7e9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymisp_2.4.173.bb
@@ -0,0 +1,26 @@
+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 = "ccae32ae716c143bea09954e860238e193bc78c6"
+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.89.bb b/meta-python/recipes-devtools/python/python3-pymisp_2.4.89.bb
deleted file mode 100644
index 4523d9e30a..0000000000
--- a/meta-python/recipes-devtools/python/python3-pymisp_2.4.89.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-pymisp.inc
diff --git a/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb b/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb
new file mode 100644
index 0000000000..2b7dfd7741
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymodbus_3.3.2.bb
@@ -0,0 +1,35 @@
+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=430604f78bee72425da231d42eac9cee"
+DEPENDS += "python3-six-native"
+
+SRC_URI[sha256sum] = "33f427f39189567600ea1f8f6ebd7e5f26caf50ef330798792679fcae80ef339"
+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-pymongo_3.6.1.bb b/meta-python/recipes-devtools/python/python3-pymongo_3.6.1.bb
deleted file mode 100644
index 5164b186bf..0000000000
--- a/meta-python/recipes-devtools/python/python3-pymongo_3.6.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-pymongo.inc
diff --git a/meta-python/recipes-devtools/python/python3-pymongo_4.4.1.bb b/meta-python/recipes-devtools/python/python3-pymongo_4.4.1.bb
new file mode 100644
index 0000000000..b89706a566
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymongo_4.4.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] = "a4df87dbbd03ac6372d24f2a8054b4dc33de497d5227b50ec649f436ad574284"
+
+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-pymysql_1.0.2.bb b/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb
new file mode 100644
index 0000000000..1f6fbd3bb1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pymysql_1.0.2.bb
@@ -0,0 +1,16 @@
+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-pynacl_1.5.0.bb b/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
new file mode 100644
index 0000000000..6e53461979
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pynacl_1.5.0.bb
@@ -0,0 +1,30 @@
+SUMMARY = "Python binding to the Networking and Cryptography (NaCl) library"
+DESCRIPTION = "Python binding to the Networking and Cryptography (NaCl) library"
+HOMEPAGE = "https://github.com/pyca/pynacl"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8cc789b082b3d97e1ccc5261f8594d3f"
+
+SRC_URI[sha256sum] = "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba"
+
+PYPI_PACKAGE = "PyNaCl"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "\
+ ${PYTHON_PN}-cffi-native \
+ libsodium \
+"
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-cffi \
+ libsodium \
+"
+
+do_compile:prepend() {
+ export SODIUM_INSTALL=system
+}
+
+do_install:prepend() {
+ export SODIUM_INSTALL=system
+}
diff --git a/meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch b/meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch
new file mode 100644
index 0000000000..35bc4a6bd1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pynetlinux/0001-setup.py-switch-to-setuptools.patch
@@ -0,0 +1,32 @@
+From a36abadfb2d135260bef7703a1d0b56e6aa7eeff Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Mon, 28 Feb 2022 08:21:33 -0800
+Subject: [PATCH] setup.py: switch to setuptools
+
+In Python 3.10, 'distutils' has been deprecated and is slated for
+removal in Python 3.12.
+
+Switch from 'distutils.core' to 'setuptools'. This also allows for the
+'wheel' binary archive format to be built with 'setup.py bdist_wheel'.
+
+Upstream-Status: Submitted
+[https://github.com/rlisagor/pynetlinux/pull/12]
+
+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 670e064..45f1053 100755
+--- a/setup.py
++++ b/setup.py
+@@ -1,4 +1,4 @@
+-from distutils.core import setup
++from setuptools import setup
+
+ setup(
+ name = "pynetlinux",
+--
+2.30.2
+
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..9b5d9d6364
--- /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: Accepted
+
+ 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 f6d9e3c06e..b1abac17aa 100644
--- a/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
+++ b/meta-python/recipes-devtools/python/python3-pynetlinux_1.1.bb
@@ -1,2 +1,21 @@
-inherit setuptools3
-require python-pynetlinux.inc
+SUMMARY = "Linux network configuration library for Python"
+DESCRIPTION = "This library contains Python bindings to ioctl calls"
+SECTION = "devel/python"
+HOMEPAGE = "http://github.com/rlisagor/pynetlinux"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=74e1861736ee959824fe7542323c12e9"
+
+SRC_URI[sha256sum] = "4ad08298c9f5ba15a11cddc639ba8778cabdfc402b51066d9e0a325e5a5b391c"
+
+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-pyopenssl_17.5.0.bb b/meta-python/recipes-devtools/python/python3-pyopenssl_17.5.0.bb
deleted file mode 100644
index 0f0f83e3a2..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyopenssl_17.5.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-pyopenssl.inc
diff --git a/meta-python/recipes-devtools/python/python3-pyparsing_2.2.0.bb b/meta-python/recipes-devtools/python/python3-pyparsing_2.2.0.bb
deleted file mode 100644
index 0805fee3e2..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyparsing_2.2.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pyparsing.inc
diff --git a/meta-python/recipes-devtools/python/python3-pyperclip_1.6.0.bb b/meta-python/recipes-devtools/python/python3-pyperclip_1.6.0.bb
deleted file mode 100644
index ee6f88bbbc..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyperclip_1.6.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pyperclip.inc
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
new file mode 100644
index 0000000000..2870ec9c01
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyperclip_1.8.2.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "A cross-platform clipboard module for Python. (only handles plain text for now)"
+HOMEPAGE = "https://github.com/asweigart/pyperclip"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=d7dd4b0d1f7153322a546e89b5a0a632"
+
+SRC_URI[sha256sum] = "105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-ctypes \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyperf_2.6.1.bb b/meta-python/recipes-devtools/python/python3-pyperf_2.6.1.bb
new file mode 100644
index 0000000000..c63e75cf2e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyperf_2.6.1.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] = "171aea69b8efde61210e512166d8764e7765a9c7678b768052174b01f349f247"
+
+DEPENDS += "${PYTHON_PN}-six-native"
+
+PYPI_PACKAGE = "pyperf"
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += "${PYTHON_PN}-misc ${PYTHON_PN}-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-pyproj_3.6.0.bb b/meta-python/recipes-devtools/python/python3-pyproj_3.6.0.bb
new file mode 100644
index 0000000000..d8708f5e72
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyproj_3.6.0.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] = "a5b111865b3f0f8b77b3983f2fbe4dd6248fc09d3730295949977c8dcd988062"
+
+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.5.1.bb b/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.1.bb
new file mode 100644
index 0000000000..1b458fa2df
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyproject-api_1.5.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] = "435f46547a9ff22cf4208ee274fca3e2869aeb062a4834adfc99a4dd64af3cf9"
+
+PYPI_PACKAGE = "pyproject_api"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-packaging \
+ ${PYTHON_PN}-tomli \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb b/meta-python/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb
new file mode 100644
index 0000000000..9887af78d0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyproject-metadata_0.7.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "PEP 621 metadata parsing"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=310439af287b0fb4780b2ad6907c256c"
+
+PYPI_PACKAGE = "pyproject-metadata"
+
+inherit pypi python_setuptools_build_meta
+SRC_URI[sha256sum] = "0a94f18b108b9b21f3a26a3d541f056c34edcb17dc872a144a15618fed7aef67"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+ python3-packaging \
+ python3-profile \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pyrad/use-poetry-core.patch b/meta-python/recipes-devtools/python/python3-pyrad/use-poetry-core.patch
new file mode 100644
index 0000000000..43a177da0a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyrad/use-poetry-core.patch
@@ -0,0 +1,26 @@
+Upstream-Status: Backport [https://github.com/pyradius/pyrad/commit/ffe182a44909e8f8278fb3e2ea052ddc097b48b9]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From a4b70067dd6269e14a2f9530d820390a8a454231 Mon Sep 17 00:00:00 2001
+From: Martin Weinelt <hexa@darmstadt.ccc.de>
+Date: Thu, 14 Apr 2022 22:07:37 +0200
+Subject: [PATCH] Use poetry-core for pyproject based builds
+
+https://github.com/python-poetry/poetry-core#why-is-this-required
+---
+ pyproject.toml | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 87b1df3..711c52f 100755
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,6 @@
+ [build-system]
+-requires = ["poetry>=1.0"]
+-build-backend = "poetry.masonry.api"
++requires = ["poetry-core>=1.0.0"]
++build-backend = "poetry.core.masonry.api"
+
+ [tool.poetry]
+ name = "pyrad"
diff --git a/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb b/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
new file mode 100644
index 0000000000..801233a026
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyrad_2.4.bb
@@ -0,0 +1,19 @@
+SUMMARY = "RADIUS tools"
+SECTION = "devel/python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
+
+PYPI_PACKAGE = "pyrad"
+SRC_URI[sha256sum] = "057de4b7e89d8da57ba782c1bde45c63ebee720ae2c0b0a69beaff15c47e30d9"
+
+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
new file mode 100644
index 0000000000..ea429ba21e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyroute2/run-ptest
@@ -0,0 +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}}'
+
diff --git a/meta-python/recipes-devtools/python/python3-pyroute2_0.4.21.bb b/meta-python/recipes-devtools/python/python3-pyroute2_0.4.21.bb
deleted file mode 100644
index a23e72c4ad..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyroute2_0.4.21.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyroute2.inc
-inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-pyroute2_0.7.9.bb b/meta-python/recipes-devtools/python/python3-pyroute2_0.7.9.bb
new file mode 100644
index 0000000000..263acd06c7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyroute2_0.7.9.bb
@@ -0,0 +1,38 @@
+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] = "b69d82f140b0774317d7ba40f6c5fa1d755098ba3f3eb619982d16e750dc631a"
+
+inherit setuptools3 pypi ptest
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-distutils \
+ 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-pytest \
+ python3-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-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
new file mode 100644
index 0000000000..3f8256b027
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-check-for-mips-targets-for-stat.st_dev-definitions.patch
@@ -0,0 +1,47 @@
+From 56984b19469ff5b69b8b8e180dc75cf825bb1123 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 25 Jan 2022 22:28:11 -0800
+Subject: [PATCH] check for mips targets for stat.st_dev definitions
+
+st_dev has wrong type in glibc when using mips/O32 ABI
+its type should be dev_t but it is set to unsigned long int
+this is specific issue on mips/o32 ABI in glibc for details
+
+See
+https://sourceware.org/bugzilla/show_bug.cgi?id=17786
+
+currently the build fails on mips archirecture with type mismatches
+
+ Fixes
+ error[E0308]: mismatched types
+* --> /usr/src/debug/python3-pyruvate/1.1.2-r0/cargo_home/bitbake/libsystemd-0.4.1/src/logging.rs:296:25
+ |
+ 296 | device: stat.st_dev,
+ | ^^^^^^^^^^^ expected `u64`, found `u32`
+
+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 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/logging.rs b/src/logging.rs
+index a68c36a..6e374ae 100644
+--- a/src/logging.rs
++++ b/src/logging.rs
+@@ -292,7 +292,10 @@ impl JournalStream {
+ pub fn from_fd<F: AsRawFd>(fd: F) -> std::io::Result<Self> {
+ nix::sys::stat::fstat(fd.as_raw_fd())
+ .map(|stat| JournalStream {
++ #[cfg(not(target_arch = "mips"))]
+ device: stat.st_dev,
++ #[cfg(target_arch = "mips")]
++ device: stat.st_dev as u64,
+ inode: stat.st_ino,
+ })
+ .map_err(std::io::Error::from)
+--
+2.35.0
+
diff --git a/meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch b/meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch
new file mode 100644
index 0000000000..a2d4091a95
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate/0001-linux.rs-Define-consts-for-rv32-architecture.patch
@@ -0,0 +1,26 @@
+From 3a3bd8475f93d54cb5bb62d239247fef2e03a733 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 5 Mar 2022 00:37:01 -0800
+Subject: [PATCH] linux.rs: Define consts for rv32 architecture
+
+Upstream-Status: Submitted [https://github.com/nix-rust/nix/pull/1669]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/sys/ioctl/linux.rs | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/sys/ioctl/linux.rs b/src/sys/ioctl/linux.rs
+index 68ebaba..08cd0c3 100644
+--- a/src/sys/ioctl/linux.rs
++++ b/src/sys/ioctl/linux.rs
+@@ -34,6 +34,7 @@ mod consts {
+ target_arch = "s390x",
+ target_arch = "x86_64",
+ target_arch = "aarch64",
++ target_arch = "riscv32",
+ target_arch = "riscv64"))]
+ mod consts {
+ #[doc(hidden)]
+--
+2.35.1
+
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.2.1.bb b/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
new file mode 100644
index 0000000000..7a96635144
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyruvate_1.2.1.bb
@@ -0,0 +1,49 @@
+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
+
+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"
+
+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.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-asyncio_0.6.bb b/meta-python/recipes-devtools/python/python3-pyserial-asyncio_0.6.bb
new file mode 100644
index 0000000000..30ff62a7ed
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyserial-asyncio_0.6.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Python Serial Port Extension - Asynchronous I/O support"
+HOMEPAGE = "https://github.com/pyserial/pyserial-asyncio"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=9a79418f241689e78034391d51162d24"
+
+SRC_URI[sha256sum] = "b6032923e05e9d75ec17a5af9a98429c46d2839adfaf80604d52e0faacd7a32f"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-asyncio python3-core python3-pyserial"
diff --git a/meta-python/recipes-devtools/python/python3-pyserial/run-ptest b/meta-python/recipes-devtools/python/python3-pyserial/run-ptest
new file mode 100644
index 0000000000..e301963f96
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyserial/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-pyserial_3.4.bb b/meta-python/recipes-devtools/python/python3-pyserial_3.4.bb
deleted file mode 100644
index 17ed3f8bc4..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyserial_3.4.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-inherit setuptools3
-require python-pyserial.inc
-
-do_install_append() {
- rm -f ${D}${bindir}/miniterm.py
- rmdir ${D}${bindir}
-}
diff --git a/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb b/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
new file mode 100644
index 0000000000..15646235df
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyserial_3.5.bb
@@ -0,0 +1,63 @@
+SUMMARY = "Serial Port Support for Python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=520e45e59fc2cf94aa53850f46b86436"
+
+SRC_URI[sha256sum] = "3c77e014170dfffbd816e6ffc205e9842efb10be9f58ec16d3e8675b4925cddb"
+
+inherit pypi setuptools3 ptest
+
+do_install:append() {
+ rm -f ${D}${bindir}/pyserial-miniterm
+ rm -f ${D}${bindir}/pyserial-ports
+ rm -rf ${D}${bindir}/__pycache__
+ rmdir ${D}${bindir}
+}
+
+PACKAGES =+ "${PN}-java ${PN}-osx ${PN}-win32 ${PN}-tools"
+
+FILES:${PN}-java = " \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/*java* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/__pycache__/*java* \
+"
+
+FILES:${PN}-osx = " \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/tools/*osx* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/tools/__pycache__/*osx* \
+"
+
+FILES:${PN}-win32 = " \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/*serialcli* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/__pycache__/*serialcli* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/*win32* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/__pycache__/*win32* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/tools/miniterm* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/tools/__pycache__/miniterm* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/tools/*windows* \
+ ${PYTHON_SITEPACKAGES_DIR}/serial/tools/__pycache__/*windows* \
+"
+
+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 \
+"
+
+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-pysocks_1.6.8.bb b/meta-python/recipes-devtools/python/python3-pysocks_1.6.8.bb
deleted file mode 100644
index bbda05a518..0000000000
--- a/meta-python/recipes-devtools/python/python3-pysocks_1.6.8.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-inherit pypi setuptools3
-require python-pysocks.inc
-
-RDEPENDS_${PN}_class-target += "\
- ${PYTHON_PN}-netclient \
-"
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
new file mode 100644
index 0000000000..e8d75e9d75
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pysonos_0.0.54.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "A SoCo fork with fixes for Home Assistant "
+HOMEPAGE = "https://pypi.org/project/pysonos/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=07b0e2ca9ac77cd65cd4edf2e13367ea"
+
+SRC_URI[sha256sum] = "2a72897cfd342382573632d80d38776884a38c8d02353d9d5da4e9e8e83cb42b"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-ifaddr \
+ ${PYTHON_PN}-requests \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..da22a43deb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pystemd_0.10.0.bb
@@ -0,0 +1,17 @@
+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 python3-cython-native"
+RDEPENDS:${PN} += "python3-xml python3-pprint"
+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.21.1.bb b/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.21.1.bb
new file mode 100644
index 0000000000..c96c0e0801
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-asyncio_0.21.1.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] = "40a7eae6dded22c7b604986855ea48400ab15b069ae38116e8c01238e9eeb64d"
+
+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_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-cache_1.0.bb b/meta-python/recipes-devtools/python/python3-pytest-cache_1.0.bb
new file mode 100644
index 0000000000..5338ffdd29
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-cache_1.0.bb
@@ -0,0 +1,15 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+SUMMARY = "pytest plugin with mechanisms for caching across test runs"
+HOMEPAGE = "http://bitbucket.org/hpk42/pytest-cache/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
+
+SRC_URI[sha256sum] = "be7468edd4d3d83f1e844959fd6e3fd28e77a481440a7118d430130ea31b07a9"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-core python3-execnet python3-pprint python3-py python3-pytest"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb b/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
new file mode 100644
index 0000000000..1ff3e75cbe
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-cov_4.1.0.bb
@@ -0,0 +1,14 @@
+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] = "3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6"
+
+inherit pypi setuptools3
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..cf62e1f03b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-helpers-namespace_2021.12.29.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "This plugin does not provide any helpers to pytest, it does, however, provide a helpers namespace in pytest which enables you to register helper functions in your conftest.py to be used within your tests without having to import them."
+HOMEPAGE = "https://github.com/saltstack/pytest-helpers-namespace"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=440a4cdb311cd7ad181efb4cba06d562"
+
+SRC_URI[sha256sum] = "792038247e0021beb966a7ea6e3a70ff5fcfba77eb72c6ec8fd6287af871c35b"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native python3-setuptools-declarative-requirements-native"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-pytest \
+"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-html_3.2.0.bb b/meta-python/recipes-devtools/python/python3-pytest-html_3.2.0.bb
new file mode 100644
index 0000000000..713a84b416
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-html_3.2.0.bb
@@ -0,0 +1,19 @@
+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] = "c4e2f4bb0bffc437f51ad2174a8a3e71df81bbc2f6894604e604af18fbe687c3"
+
+PYPI_PACKAGE = "pytest-html"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-git-archive-native"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-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..493c241df2
--- /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 += "${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..32b5677f1a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-lazy-fixture_0.6.3.bb
@@ -0,0 +1,23 @@
+# 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-metadata_2.0.2.bb b/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
new file mode 100644
index 0000000000..e82213cbe5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-metadata_2.0.2.bb
@@ -0,0 +1,17 @@
+DESCRIPTION = "pytest-metadata is a plugin that allowed for accessing pytest metadata"
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5d425c8f3157dbf212db2ec53d9e5132"
+
+SRC_URI[sha256sum] = "fcd2f416f15be295943527b3c8ba16a44ae5a7141939c90c3dc5ce9d167cf2a5"
+
+PYPI_PACKAGE = "pytest-metadata"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = " \
+ ${PYTHON_PN}-pytest \
+"
+
+BBCLASSEXTEND = "native nativesdk"
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..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-mock/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-pytest-mock_3.11.1.bb b/meta-python/recipes-devtools/python/python3-pytest-mock_3.11.1.bb
new file mode 100644
index 0000000000..69d74567c3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-mock_3.11.1.bb
@@ -0,0 +1,32 @@
+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 \
+"
+
+SRCREV ?= "d3e73f2e93f7b93eba0a36e17e43bafd969da4fe"
+
+SRC_URI[sha256sum] = "fbbdb085ef7c252a326fd8cdcac0aa3b1333d8811f131bdcc701002e1be7ed4f"
+
+inherit setuptools3 ptest
+
+DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-asyncio \
+ python3-pytest \
+ python3-unittest \
+"
+
+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-runner_3.0.bb b/meta-python/recipes-devtools/python/python3-pytest-runner_3.0.bb
deleted file mode 100644
index df56ba6d47..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest-runner_3.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pytest-runner.inc
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
new file mode 100644
index 0000000000..972c99e38f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-tempdir_2019.10.12.bb
@@ -0,0 +1,14 @@
+DESCRIPTION = "Adds support for a predictable and repeatable temporary directory."
+HOMEPAGE = "https://github.com/saltstack/pytest-tempdir"
+SECTION = "devel/python"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;md5=9872c3a37cc9baf79a464cd168282be5"
+
+SRC_URI[md5sum] = "79b997d418fb85c2529ab50cd4333689"
+SRC_URI[sha256sum] = "e7d91813a9aa991db87dacdef8cfd3f1657632d731d56d06238c5ffb63ab36d8"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..c4faec6c61
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-timeout_2.1.0.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] = "c07ca07404c612f8abbe22294b23c368e2e5104b521c1790195561f37e1ac3d9"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "${PYTHON_PN}-pytest"
diff --git a/meta-python/recipes-devtools/python/python3-pytest-xdist_3.3.1.bb b/meta-python/recipes-devtools/python/python3-pytest-xdist_3.3.1.bb
new file mode 100644
index 0000000000..6001977a48
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytest-xdist_3.3.1.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] = "d5ee0520eb1b7bcca50a60a518ab7a7707992812c578198f8b44fdfac78e8c93"
+
+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_3.4.2.bb b/meta-python/recipes-devtools/python/python3-pytest_3.4.2.bb
deleted file mode 100644
index eba6632a27..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytest_3.4.2.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools3
-require python-pytest.inc
-
-ALTERNATIVE_PRIORITY = "100"
diff --git a/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18122.bb b/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18122.bb
new file mode 100644
index 0000000000..e67e792f7e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-python-vlc_3.0.18122.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] = "1039bde287853b4b7b61ba22d83761832434f78506da762dfb060291bf32897d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-ctypes \
+ python3-logging \
+"
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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytoml/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..0f04a12039
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytoml_0.1.21.bb
@@ -0,0 +1,30 @@
+SUMMARY = "A TOML-0.4.0 parser/writer for Python"
+HOMEPAGE = "https://pypi.python.org/pypi/pytoml/"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=cfff423699bdaef24331933ac4f56078"
+
+SRC_URI[md5sum] = "e59dd36a559dd2a876e4c149c69e947b"
+SRC_URI[sha256sum] = "8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7"
+
+inherit pypi setuptools3 ptest
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-stringold \
+ "
+
+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-pytz-deprecation-shim_0.1.0.post0.bb b/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
new file mode 100644
index 0000000000..022cf39ac0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pytz-deprecation-shim_0.1.0.post0.bb
@@ -0,0 +1,15 @@
+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-pytz_2018.4.bb b/meta-python/recipes-devtools/python/python3-pytz_2018.4.bb
deleted file mode 100755
index 19a89dc55d..0000000000
--- a/meta-python/recipes-devtools/python/python3-pytz_2018.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pytz.inc
diff --git a/meta-python/recipes-devtools/python/python3-pyudev_0.21.0.bb b/meta-python/recipes-devtools/python/python3-pyudev_0.21.0.bb
deleted file mode 100644
index a62d944bac..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyudev_0.21.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-pyudev.inc
-inherit pypi setuptools3
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..98817f9312
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyudev_0.24.1.bb
@@ -0,0 +1,24 @@
+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} = "\
+ ${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-pyusb_1.0.2.bb b/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb
deleted file mode 100644
index 1ecede7cf8..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyusb_1.0.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pyusb.inc
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
new file mode 100644
index 0000000000..abe3529119
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyusb_1.2.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "PyUSB provides USB access on the Python language"
+HOMEPAGE = "http://pyusb.sourceforge.net/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=e64a29fcd3c3dd356a24e235dfcb3905"
+
+DEPENDS += "libusb1 ${PYTHON_PN}-setuptools-scm-native"
+
+RDEPENDS:${PN} += " \
+ python3-logging \
+"
+
+SRC_URI[sha256sum] = "a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-ctypes"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb b/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb
deleted file mode 100644
index 470aca608b..0000000000
--- a/meta-python/recipes-devtools/python/python3-pyyaml_3.12.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-pyyaml.inc
diff --git a/meta-python/recipes-devtools/python/python3-pyzmq/club-rpath-out.patch b/meta-python/recipes-devtools/python/python3-pyzmq/club-rpath-out.patch
new file mode 100644
index 0000000000..61aeaca5fa
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyzmq/club-rpath-out.patch
@@ -0,0 +1,29 @@
+From efae4e08d13e0958d929ea524e21c0a210b31982 Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Fri, 22 Jan 2021 11:41:12 +0200
+Subject: [PATCH] setup.py: Adjust _add_rpath
+
+Fix error: unrecognized command-line option '-R'
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+
+---
+ setup.py | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index b634d94..7f6a2f1 100755
+--- a/setup.py
++++ b/setup.py
+@@ -235,9 +235,6 @@ def _add_rpath(settings, path):
+ """
+ if sys.platform == 'darwin':
+ settings['extra_link_args'].extend(['-Wl,-rpath', '-Wl,%s' % path])
+- else:
+- settings['runtime_library_dirs'].append(path)
+-
+
+ def settings_from_prefix(prefix=None):
+ """load appropriate library/include settings from ZMQ prefix"""
diff --git a/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest b/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyzmq/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-pyzmq_25.0.0.bb b/meta-python/recipes-devtools/python/python3-pyzmq_25.0.0.bb
new file mode 100644
index 0000000000..39a7614fc5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyzmq_25.0.0.bb
@@ -0,0 +1,55 @@
+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] = "f330a1a2c7f89fd4b0aa4dcb7bf50243bf1c8da9a2f1efc31daf57a2046b31f2"
+
+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-pyzstd_0.15.9.bb b/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.bb
new file mode 100644
index 0000000000..81bffac3ab
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-pyzstd_0.15.9.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=8458383225d7107f3383ee5c521628d2"
+
+PYPI_PACKAGE = "pyzstd"
+
+SRC_URI[sha256sum] = "cbfdde6c5768ffa5d2f14127bbc1d7c3c2d03c0ceaeb0736946197e06275ccc7"
+
+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-qface_2.0.8.bb b/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
new file mode 100644
index 0000000000..8ad61ab12b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-qface_2.0.8.bb
@@ -0,0 +1,24 @@
+SUMMARY = "A generator framework based on a common modern IDL"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=eee61e10a40b0e3045ee5965bcd9a8b5"
+
+SRC_URI[sha256sum] = "eccee7dbc4290c5a4e394df8d527f39148e0de0ff22c6b260f48c48f12b3beb4"
+
+inherit pypi setuptools3
+
+DEPS = "\
+ python3-jinja2 \
+ python3-click \
+ python3-pyyaml \
+ python3-pytest \
+ python3-six \
+ python3-path \
+ python3-antlr4-runtime \
+ python3-watchdog \
+ python3-markupsafe \
+ python3-setuptools \
+"
+DEPENDS += "${DEPS}"
+RDEPENDS:${PN} += "${DEPS}"
+
+BBCLASSEXTEND = "nativesdk native"
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_1.10.bb b/meta-python/recipes-devtools/python/python3-rapidjson_1.10.bb
new file mode 100644
index 0000000000..7dac464bea
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rapidjson_1.10.bb
@@ -0,0 +1,22 @@
+SUMMARY = "Python wrapper around rapidjson"
+HOMEPAGE = "https://github.com/python-rapidjson/python-rapidjson"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4daf3929156304df67003c33274a98bd"
+
+SRC_URI = "git://github.com/python-rapidjson/python-rapidjson.git;protocol=https;branch=master"
+SRCREV = "e9e209553a65db3568471f32392f54549c8a9816"
+
+S = "${WORKDIR}/git"
+
+inherit setuptools3
+
+SETUPTOOLS_BUILD_ARGS += " --rj-include-dir=${RECIPE_SYSROOT}${includedir}"
+
+DEPENDS += " \
+ rapidjson \
+"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-core \
+"
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
new file mode 100644
index 0000000000..79a38983de
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-raven_6.10.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Raven is the legacy Python client for Sentry (getsentry.com)"
+DESCRIPTION = "\
+Raven is the official legacy Python client for Sentry, officially \
+supports Python 2.6–2.7 & 3.3–3.7, and runs on PyPy and Google App Engine."
+HOMEPAGE = "https://github.com/getsentry/raven-python"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b9a4414e08f0571d55184531cefc131b"
+
+SRC_URI[md5sum] = "3676f31dadfa61526444dd0245c78a38"
+SRC_URI[sha256sum] = "3fa6de6efa2493a7c827472e984ce9b020797d0da16f1db67197bcc23c8fae54"
+
+PYPI_PACKAGE = "raven"
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-rdflib_6.3.2.bb b/meta-python/recipes-devtools/python/python3-rdflib_6.3.2.bb
new file mode 100644
index 0000000000..1b4bb5a40e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rdflib_6.3.2.bb
@@ -0,0 +1,19 @@
+SUMMARY = "RDFLib is a pure Python package for working with RDF"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=37d489c0cefe52a17e1d5007e196464a"
+
+SRC_URI[sha256sum] = "72af591ff704f4caacea7ecc0c5a9056b8553e0489dd4f35a9bc52dbd41522e0"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-isodate \
+ ${PYTHON_PN}-pyparsing \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-xml \
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-core \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-redis_2.10.6.bb b/meta-python/recipes-devtools/python/python3-redis_2.10.6.bb
deleted file mode 100644
index b192ed8725..0000000000
--- a/meta-python/recipes-devtools/python/python3-redis_2.10.6.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-redis.inc
diff --git a/meta-python/recipes-devtools/python/python3-redis_4.6.0.bb b/meta-python/recipes-devtools/python/python3-redis_4.6.0.bb
new file mode 100644
index 0000000000..47eb7c2096
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-redis_4.6.0.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=1db1f331d351900707368237cc4880cf"
+
+SRC_URI[sha256sum] = "585dc516b9eb042a619ef0a39c3d7d55fe81bdb4df09a52c9cdde0d07bf1aa7d"
+
+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_2023.6.3.bb b/meta-python/recipes-devtools/python/python3-regex_2023.6.3.bb
new file mode 100644
index 0000000000..f653f32fe2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-regex_2023.6.3.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] = "72d1a25bf36d2050ceb35b517afe13864865268dfb45910e2e17a84be6cbfeb0"
+
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-file/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb b/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb
deleted file mode 100644
index 8652876a4b..0000000000
--- a/meta-python/recipes-devtools/python/python3-requests-file_1.4.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "File transport adapter for Requests"
-HOMEPAGE = "http://github.com/dashea/requests-file"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=9cc728d6087e43796227b0a31422de6b"
-
-SRC_URI[md5sum] = "a907efb75faf0ccbb1857432bf9d8c0f"
-SRC_URI[sha256sum] = "f518e7cfe048e053fd1019dfb891b4c55b871c56c5a31693d733240c80b8f191"
-
-inherit pypi setuptools3
-
-RDEPENDS_${PN} += " \
- python3-requests \
-"
-
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
new file mode 100644
index 0000000000..21cdb8c127
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-file_1.5.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "File transport adapter for Requests"
+HOMEPAGE = "http://github.com/dashea/requests-file"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9cc728d6087e43796227b0a31422de6b"
+
+SRC_URI[md5sum] = "c96daf6b0c56687556e8a52748fd896c"
+SRC_URI[sha256sum] = "07d74208d3389d01c38ab89ef403af0cfec63957d53a0081d8eca738d0247d8e"
+
+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-requests \
+"
+
diff --git a/meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb b/meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb
index 3f99ed6756..6df8e7e0bb 100644
--- a/meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb
+++ b/meta-python/recipes-devtools/python/python3-requests-ftp_0.3.1.bb
@@ -8,7 +8,7 @@ SRC_URI[sha256sum] = "7504ceb5cba8a5c0135ed738596820a78c5f2be92d79b29f96ba99b183
inherit pypi setuptools3
-RDEPENDS_${PN} += " \
+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
new file mode 100644
index 0000000000..e02ff7911e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-oauthlib_1.3.1.bb
@@ -0,0 +1,8 @@
+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-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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-toolbelt/run-ptest
@@ -0,0 +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}}'
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..466e01d91a
--- /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"
+AUTHOR = "Ian Cordasco, Cory Benfield"
+
+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} += " \
+ ${PYTHON_PN}-requests (>=2.0.1) \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-betamax \
+ ${PYTHON_PN}-mock \
+ ${PYTHON_PN}-multiprocessing \
+ ${PYTHON_PN}-trustme \
+"
+
+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-unixsocket_0.3.0.bb b/meta-python/recipes-devtools/python/python3-requests-unixsocket_0.3.0.bb
new file mode 100644
index 0000000000..94497b609b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-requests-unixsocket_0.3.0.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Use requests to talk HTTP via a UNIX domain socket"
+HOMEPAGE = "https://pypi.org/project/requests-unixsocket/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d2794c0df5b907fdace235a619d80314"
+
+SRC_URI[sha256sum] = "28304283ea9357d45fff58ad5b11e47708cfbf5806817aa59b2a363228ee971e"
+
+PYPI_PACKAGE = "requests-unixsocket"
+
+inherit pypi
+inherit setuptools3
+
+DEPENDS += "python3-pbr-native"
+RDEPENDS:${PN} = "python3-requests python3-urllib3"
diff --git a/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb b/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb
deleted file mode 100644
index 0a2410f85c..0000000000
--- a/meta-python/recipes-devtools/python/python3-requests_2.18.4.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-requests.inc
diff --git a/meta-python/recipes-devtools/python/python3-rfc3987_1.3.7.bb b/meta-python/recipes-devtools/python/python3-rfc3987_1.3.7.bb
deleted file mode 100644
index cd1536b36f..0000000000
--- a/meta-python/recipes-devtools/python/python3-rfc3987_1.3.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-rfc3987.inc
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
new file mode 100644
index 0000000000..0ab012a982
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rlp/0001-setup-don-t-use-setuptools-markdown.patch
@@ -0,0 +1,37 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..e747ae33ba
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rlp_3.0.0.bb
@@ -0,0 +1,14 @@
+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-robotframework-seriallibrary_0.3.1.bb b/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.3.1.bb
deleted file mode 100644
index 440f69cbf7..0000000000
--- a/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.3.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools
-require python-robotframework-seriallibrary.inc
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
new file mode 100644
index 0000000000..4ad5c3601d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-robotframework-seriallibrary_0.4.3.bb
@@ -0,0 +1,17 @@
+SUMMARY = "Robot Framework test library for serial connection"
+HOMEPAGE = "https://github.com/whosaysni/robotframework-seriallibrary"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=1af2e051b493d9552af443cf2f99d480"
+
+SRC_URI[sha256sum] = "f20befe5c1106dd8ddca9f60a2f18bf5ec7d5f06f6f09a03fa66bae54777e6bb"
+
+PYPI_PACKAGE = "robotframework-seriallibrary"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-pyserial \
+ ${PYTHON_PN}-robotframework \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-robotframework_3.0.2.bb b/meta-python/recipes-devtools/python/python3-robotframework_3.0.2.bb
deleted file mode 100644
index 8f613c3868..0000000000
--- a/meta-python/recipes-devtools/python/python3-robotframework_3.0.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-robotframework.inc
diff --git a/meta-python/recipes-devtools/python/python3-robotframework_6.1.bb b/meta-python/recipes-devtools/python/python3-robotframework_6.1.bb
new file mode 100644
index 0000000000..154b011aab
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-robotframework_6.1.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] = "a94e0b3c4f8ae08c0a4dc7bff6fa8a51730565103f8c682a2d8391da9a4697f5"
+
+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-rsa_4.9.bb b/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
new file mode 100644
index 0000000000..ed5018f49e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-rsa_4.9.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Pure-Python RSA implementation"
+SECTION = "devel/python"
+AUTHOR = "Sybren A. Stuvel"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c403f6882d4f97a9cd927df987d55634"
+
+SRC_URI[sha256sum] = "e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21"
+
+inherit pypi python_poetry_core update-alternatives
+
+ALTERNATIVE:${PN} = "\
+ pyrsa-decrypt \
+ pyrsa-encrypt \
+ pyrsa-keygen \
+ pyrsa-priv2pub \
+ pyrsa-sign \
+ pyrsa-verify \
+"
+
+ALTERNATIVE_LINK_NAME[pyrsa-decrypt] = "${bindir}/pyrsa-decrypt"
+ALTERNATIVE_LINK_NAME[pyrsa-encrypt] = "${bindir}/pyrsa-encrypt"
+ALTERNATIVE_LINK_NAME[pyrsa-keygen] = "${bindir}/pyrsa-keygen"
+ALTERNATIVE_LINK_NAME[pyrsa-priv2pub] = "${bindir}/pyrsa-priv2pub"
+ALTERNATIVE_LINK_NAME[pyrsa-sign] = "${bindir}/pyrsa-sign"
+ALTERNATIVE_LINK_NAME[pyrsa-verify] = "${bindir}/pyrsa-verify"
+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 \
+"
+
+RDEPENDS:${PN} += "${PYTHON_PN}-pyasn1"
diff --git a/meta-python/recipes-devtools/python/python3-scapy_0.23.bb b/meta-python/recipes-devtools/python/python3-scapy_0.23.bb
deleted file mode 100644
index 3e7baf45c7..0000000000
--- a/meta-python/recipes-devtools/python/python3-scapy_0.23.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-DESCRIPTION = "Packet crafting/sending/sniffing, PCAP processing tool,\
-based on scapy with python3 compatibility"
-SECTION = "devel/python"
-HOMEPAGE = "https://github.com/phaethon/scapy"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=95ea6ecfc360eb47fe6f470ad736d7cd"
-
-inherit pypi setuptools3
-
-PYPI_PACKAGE = "scapy-python3"
-
-SRC_URI[md5sum] = "8642d09ca727e7e2b455223ae94059b7"
-SRC_URI[sha256sum] = "8760991a67162f43af4d9e64828bcefc100ba88859b75177ae9f7ace56e58186"
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.16.7.bb b/meta-python/recipes-devtools/python/python3-scikit-build_0.16.7.bb
new file mode 100644
index 0000000000..c033c56bad
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-scikit-build_0.16.7.bb
@@ -0,0 +1,21 @@
+SUMMARY = "Improved build system generator for Python C/C++/Fortran/Cython extensions"
+LICENSE = "MIT & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7c96d2b08b3cec6d3c67fb864d1fd8cc"
+
+DEPENDS = "python3-setuptools-scm-native"
+
+PYPI_PACKAGE = "scikit-build"
+
+inherit pypi python_setuptools_build_meta
+SRC_URI[sha256sum] = "a9b9cc7479b71e6c8d434596dfade025253aae23adb22a9a2d85850fd51cecfd"
+
+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/python-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..d535e43261 100644
--- a/meta-python/recipes-devtools/python/python-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
diff --git a/meta-python/recipes-devtools/python/python3-scrypt/run-ptest b/meta-python/recipes-devtools/python/python3-scrypt/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-scrypt/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..c386932683
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-scrypt_0.8.20.bb
@@ -0,0 +1,27 @@
+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.6.bb b/meta-python/recipes-devtools/python/python3-scrypt_0.8.6.bb
deleted file mode 100644
index f49665322e..0000000000
--- a/meta-python/recipes-devtools/python/python3-scrypt_0.8.6.bb
+++ /dev/null
@@ -1,3 +0,0 @@
-inherit setuptools3 python3-dir
-require python-scrypt.inc
-
diff --git a/meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch b/meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch
new file mode 100644
index 0000000000..cf7696aa63
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sdnotify/0001-setup.py-switch-to-setuptools.patch
@@ -0,0 +1,31 @@
+From f662280b26eb1549890e88e8e9085f1937d7962d Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Mon, 28 Feb 2022 07:54:03 -0800
+Subject: [PATCH] setup.py: switch to setuptools
+
+In Python 3.10, 'distutils' is deprecated and is slated for removal in
+Python 3.12.
+
+Switch from distutils.core to setuptools. This also allows the 'wheel'
+binary archive format to be built with 'setup.py bdist_wheel'.
+
+Upstream-Status: Submitted [https://github.com/bb4242/sdnotify/pull/7]
+
+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 433222c..32b5bd6 100644
+--- a/setup.py
++++ b/setup.py
+@@ -1,4 +1,4 @@
+-from distutils.core import setup
++from setuptools import setup
+
+ VERSION='0.3.2'
+
+--
+2.30.2
+
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 377af12e16..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
@@ -1,2 +1,21 @@
+HOMEPAGE = "https://github.com/bb4242/sdnotify"
+SUMMARY = "A pure Python implementation of systemd's service notification protocol (sd_notify)"
+
+DESCRIPTION = "\
+ sdnotify is a pure Python implementation of the systemd sd_notify protocol. \
+ This protocol can be used to inform systemd about service start-up completion, \
+ watchdog events, and other service status changes. \
+ Thus, this package can be used to write system services in Python that play nicely with systemd. \
+ "
+
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=cc572ccc4b18a4b7d13be5d01bc8213e"
+
+SRC_URI[sha256sum] = "73977fc746b36cc41184dd43c3fe81323e7b8b06c2bb0826c4f59a20c56bb9f1"
+
+SRC_URI += "file://0001-setup.py-switch-to-setuptools.patch"
+
inherit setuptools3 pypi
-require python-sdnotify.inc
+
+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
new file mode 100644
index 0000000000..cd2bc8537c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-semver/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest -o log_cli=true -o log_cli_level=INFO tests/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}}'
diff --git a/meta-python/recipes-devtools/python/python3-semver_3.0.1.bb b/meta-python/recipes-devtools/python/python3-semver_3.0.1.bb
new file mode 100644
index 0000000000..2d85d789c7
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-semver_3.0.1.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[md5sum] = "b7502c12ce325ffffeab694fed52f6f5"
+SRC_URI[sha256sum] = "9ec78c5447883c67b97f98c3b6212796708191d22e4ad30f4570f840171cbce1"
+
+inherit pypi python_setuptools_build_meta ptest
+
+BBCLASSEXTEND = "native nativesdk"
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+DEPENDS += " python3-setuptools-scm-native"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+"
+
+do_install_ptest() {
+ cp -rf ${S}/tests ${D}${PTEST_PATH}/
+}
diff --git a/meta-python/recipes-devtools/python/python3-sentry-sdk_1.26.0.bb b/meta-python/recipes-devtools/python/python3-sentry-sdk_1.26.0.bb
new file mode 100644
index 0000000000..697f102a2e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sentry-sdk_1.26.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=7fcb29c83dd48cb7b112d0dd81111a89"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-urllib3 \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-json \
+ ${PYTHON_PN}-logging \
+ ${PYTHON_PN}-threading \
+ ${PYTHON_PN}-compression \
+ ${PYTHON_PN}-datetime \
+"
+
+SRC_URI[sha256sum] = "760e4fb6d01c994110507133e08ecd4bdf4d75ee4be77f296a3579796cf73134"
+
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-serpent/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-serpent_1.24.bb b/meta-python/recipes-devtools/python/python3-serpent_1.24.bb
deleted file mode 100644
index 1e04def7b7..0000000000
--- a/meta-python/recipes-devtools/python/python3-serpent_1.24.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-serpent.inc
diff --git a/meta-python/recipes-devtools/python/python3-serpent_1.41.bb b/meta-python/recipes-devtools/python/python3-serpent_1.41.bb
new file mode 100644
index 0000000000..480e3ab388
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-serpent_1.41.bb
@@ -0,0 +1,26 @@
+SUMMARY = "Serialization based on ast.literal_eval"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d7c28f460fafe7be454fcdcac0b60263"
+
+SRC_URI[sha256sum] = "0407035fe3c6644387d48cff1467d5aa9feff814d07372b78677ed0ee3ed7095"
+
+inherit pypi ptest setuptools3
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-pytz \
+"
+
+do_install_ptest() {
+ install -d ${D}${PTEST_PATH}/tests
+ cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+}
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-netclient \
+ ${PYTHON_PN}-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..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-service-identity/run-ptest
@@ -0,0 +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}}'
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..2d4145ef12
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-service-identity_21.1.0.bb
@@ -0,0 +1,31 @@
+DESCRIPTION = "The tools for verifying whether a certificate is valid for the intended purposes."
+HOMEPAGE = "https://pypi.org/project/service-identity"
+AUTHOR = "Hynek Schlawack"
+
+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 += " \
+ ${PYTHON_PN}-pytest \
+"
+
+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-declarative-requirements_1.3.0.bb b/meta-python/recipes-devtools/python/python3-setuptools-declarative-requirements_1.3.0.bb
new file mode 100644
index 0000000000..82bb3415be
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-setuptools-declarative-requirements_1.3.0.bb
@@ -0,0 +1,12 @@
+SUMMARY = "File support for setuptools declarative setup.cfg"
+HOMEPAGE = "https://pypi.org/project/setuptools-declarative-requirements/"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
+
+SRC_URI[sha256sum] = "57a5b9bb9ad350c278e8aa6be4cdebbcd925b9ba71d6a712a178a618cfb898f7"
+
+inherit pypi python_setuptools_build_meta
+
+DEPENDS += "python3-setuptools-scm-native"
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..2068871d93
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-setuptools-scm-git-archive_1.1.bb
@@ -0,0 +1,16 @@
+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"
+RDEPENDS:${PN} += "python3-setuptools-scm"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.7.bb b/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.7.bb
deleted file mode 100644
index 5bf5983874..0000000000
--- a/meta-python/recipes-devtools/python/python3-setuptools-scm_1.15.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-setuptools-scm.inc
diff --git a/meta-python/recipes-devtools/python/python3-sh_2.0.4.bb b/meta-python/recipes-devtools/python/python3-sh_2.0.4.bb
new file mode 100644
index 0000000000..fa9f97a8f9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sh_2.0.4.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] = "a18920f0839991bc9dfddb6dcc006c360b1064ba96257359f0ea356e9fa75a60"
+
+PYPI_PACKAGE = "sh"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-codecs \
+ ${PYTHON_PN}-compression \
+ ${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-sijax_0.3.2.bb b/meta-python/recipes-devtools/python/python3-sijax_0.3.2.bb
index 24e683372e..9a28fc5586 100644
--- a/meta-python/recipes-devtools/python/python3-sijax_0.3.2.bb
+++ b/meta-python/recipes-devtools/python/python3-sijax_0.3.2.bb
@@ -1,4 +1,10 @@
-inherit setuptools3
-require python-sijax.inc
+DESCRIPTION = "An easy to use AJAX library for Python based on jQuery.ajax"
+HOMEPAGE = "https://github.com/spantaleev/sijax-python"
+LICENSE = "BSD-3-Clause"
-SRC_URI[sha256sum] = "11b062f4a8b2aad95c87e7c09e5daf5a6b0d0f08abf9efe5f91a0075c6be7c0d" \ No newline at end of file
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=16e213d75641a392478df50cf0841903"
+
+SRC_URI[sha256sum] = "11b062f4a8b2aad95c87e7c09e5daf5a6b0d0f08abf9efe5f91a0075c6be7c0d"
+
+PYPI_PACKAGE = "Sijax"
+inherit pypi setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-simpleeval/run-ptest b/meta-python/recipes-devtools/python/python3-simpleeval/run-ptest
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-simpleeval/run-ptest
@@ -0,0 +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}}'
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..35cd19ffef
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-simpleeval_0.9.13.bb
@@ -0,0 +1,24 @@
+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} += " \
+ ${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-simplejson_3.13.2.bb b/meta-python/recipes-devtools/python/python3-simplejson_3.13.2.bb
deleted file mode 100644
index 38f406c5de..0000000000
--- a/meta-python/recipes-devtools/python/python3-simplejson_3.13.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-simplejson.inc
diff --git a/meta-python/recipes-devtools/python/python3-simplejson_3.19.1.bb b/meta-python/recipes-devtools/python/python3-simplejson_3.19.1.bb
new file mode 100644
index 0000000000..1fb31a3a3a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-simplejson_3.19.1.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] = "6277f60848a7d8319d27d2be767a7546bc965535b28070e310b3a9af90604a4c"
+
+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-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch b/meta-python/recipes-devtools/python/python3-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch
new file mode 100644
index 0000000000..1208769b2f
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-slip-dbus/0001-setup.py-Use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,38 @@
+From 4309ce76351b1685d08b3ba55d4f62b3e53ef76b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 1 Mar 2022 19:06:35 -0800
+Subject: [PATCH] setup.py: Use setuptools instead of distutils
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ setup.py.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/setup.py.in
++++ b/setup.py.in
+@@ -2,20 +2,17 @@
+ # -*- coding: utf-8 -*-
+
+ import sys
+-from distutils.core import setup
++from setuptools import setup, find_packages
+
+ setup(name="slip", version="@VERSION@",
+ py_modules=["slip.__init__", "slip.util.__init__",
+ "slip.util.hookable", "slip.util.files",
+- "slip._wrappers.__init__", "slip._wrappers._glib"],
+- requires=["selinux"])
+-
+-setup(name="slip.dbus", version="@VERSION@",
+- py_modules=["slip.dbus.__init__", "slip.dbus.bus",
++ "slip._wrappers.__init__", "slip._wrappers._glib",
++ "slip.dbus.__init__", "slip.dbus.bus",
+ "slip.dbus.constants", "slip.dbus.introspection",
+ "slip.dbus.mainloop", "slip.dbus.polkit", "slip.dbus.proxies",
+ "slip.dbus.service"],
+- requires=["dbus", "decorator", "StringIO", "xml.etree.ElementTree"])
++ requires=["dbus", "decorator", "selinux", "StringIO", "xml.etree.ElementTree"])
+
+ if sys.version_info.major == 2:
+ setup(name="slip.gtk", version="@VERSION@",
diff --git a/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch b/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch
new file mode 100644
index 0000000000..7080047b79
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-slip-dbus/9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch
@@ -0,0 +1,78 @@
+From 9b939c0b534c1b7958fa0a3c7aedf30bca910431 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Mon, 7 Jun 2021 23:23:47 +0200
+Subject: [PATCH] Python 3.10+ fix: Use collections.abc.Callable instead of
+ collections.Callable
+
+The deprecated aliases to Collections Abstract Base Classes were removed from
+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/slip/dbus/polkit.py b/slip/dbus/polkit.py
+index 128e8ce..320676d 100644
+--- a/slip/dbus/polkit.py
++++ b/slip/dbus/polkit.py
+@@ -26,7 +26,7 @@
+
+ from __future__ import absolute_import
+
+-import collections
++import collections.abc
+ import dbus
+ from decorator import decorator
+ from functools import reduce
+@@ -103,14 +103,14 @@ class MyProxy(object):
+ def some_method(self, ...):
+ ..."""
+
+- assert(func is None or isinstance(func, collections.Callable))
++ assert(func is None or isinstance(func, collections.abc.Callable))
+
+ assert(
+ authfail_result in (None, AUTHFAIL_DONTCATCH) or
+ authfail_exception is None)
+ assert(
+ authfail_callback is None or
+- isinstance(authfail_callback, collections.Callable))
++ isinstance(authfail_callback, collections.abc.Callable))
+ assert(
+ authfail_exception is None or
+ issubclass(authfail_exception, Exception))
+diff --git a/slip/util/hookable.py b/slip/util/hookable.py
+index 89c7392..0cd9967 100644
+--- a/slip/util/hookable.py
++++ b/slip/util/hookable.py
+@@ -23,7 +23,7 @@
+ """This module contains variants of certain base types which call registered
+ hooks on changes."""
+
+-import collections
++import collections.abc
+ from six import with_metaclass
+
+ __all__ = ["Hookable", "HookableSet"]
+@@ -67,7 +67,7 @@ class _HookEntry(object):
+
+ def __init__(self, hook, args, kwargs, hookable=None):
+
+- assert(isinstance(hook, collections.Callable))
++ assert(isinstance(hook, collections.abc.Callable))
+ assert(isinstance(hookable, Hookable))
+
+ for n, x in enumerate(args):
+@@ -174,7 +174,7 @@ def add_hook_hookable(self, hook, *args, **kwargs):
+ self.__add_hook(hook, self, *args, **kwargs)
+
+ def __add_hook(self, hook, _hookable, *args, **kwargs):
+- assert isinstance(hook, collections.Callable)
++ assert isinstance(hook, collections.abc.Callable)
+ assert isinstance(_hookable, Hookable)
+ hookentry = _HookEntry(hook, args, kwargs, hookable=_hookable)
+ self.__hooks__.add(hookentry)
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
new file mode 100644
index 0000000000..ae4e6f72da
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-slip-dbus_0.6.5.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Convenience functions for dbus services in Python 2.x"
+HOMEPAGE = "https://github.com/nphilipp/python-slip"
+DESCRIPTION = "\
+The Simple Library for Python 2.x packages contain miscellaneous code for \
+convenience, extension and workaround purposes. \
+\
+This package provides slip.dbus.service.Object, which is a dbus.service.Object \
+derivative that ends itself after a certain time without being used and/or if \
+there are no clients anymore on the message bus, as well as convenience \
+functions and decorators for integrating a dbus service with PolicyKit."
+
+SECTION = "devel/python"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=5574c6965ae5f583e55880e397fbb018"
+SRCNAME = "python-slip"
+
+SRC_URI = "https://github.com/nphilipp/${SRCNAME}/releases/download/${SRCNAME}-${PV}/${SRCNAME}-${PV}.tar.bz2 \
+ file://9b939c0b534c1b7958fa0a3c7aedf30bca910431.patch \
+ file://0001-setup.py-Use-setuptools-instead-of-distutils.patch \
+ "
+SRC_URI[sha256sum] = "c726c086f0dd93a0ac7a0176f383a12af91b6657b78a301e3f5b25d9f8d4d10b"
+
+S = "${WORKDIR}/${SRCNAME}-${PV}"
+
+do_compile:prepend() {
+ sed -e 's/@VERSION@/${PV}/g' ${S}/setup.py.in > ${S}/setup.py
+}
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-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-smbus/0001-Use-setuptools-as-distutils-is-deprecated.patch b/meta-python/recipes-devtools/python/python3-smbus/0001-Use-setuptools-as-distutils-is-deprecated.patch
new file mode 100644
index 0000000000..6aafd6a952
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-smbus/0001-Use-setuptools-as-distutils-is-deprecated.patch
@@ -0,0 +1,25 @@
+Upstream-Status: Submitted [https://lore.kernel.org/linux-i2c/20220114134910.3994688-1-ross.burton@arm.com/T/#u]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+From fa522a9a390b1857a58ec1f55da1465c542fd106 Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 14 Jan 2022 13:38:34 +0000
+Subject: [PATCH] Use setuptools as distutils is deprecated
+
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ py-smbus/setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/py-smbus/setup.py b/py-smbus/setup.py
+index 28a4500..26db33a 100644
+--- a/py-smbus/setup.py
++++ b/py-smbus/setup.py
+@@ -1,6 +1,6 @@
+ #!/usr/bin/env python
+
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+
+ setup( name="smbus",
+ version="1.1",
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
new file mode 100644
index 0000000000..f22a402df1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-smbus2_0.4.2.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] = "634541ed794068a822fe7499f1577468b9d4641b68dd9bfb6d0eb7270f4d2a32"
+
+CLEANBROKEN = "1"
+
+PYPI_PACKAGE = "smbus2"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-ctypes \
+ ${PYTHON_PN}-fcntl \
+"
diff --git a/meta-python/recipes-devtools/python/python3-smbus_4.0.bb b/meta-python/recipes-devtools/python/python3-smbus_4.0.bb
deleted file mode 100644
index b357bcd822..0000000000
--- a/meta-python/recipes-devtools/python/python3-smbus_4.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit distutils3
-require python-smbus.inc
diff --git a/meta-python/recipes-devtools/python/python3-smbus_4.3.bb b/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
new file mode 100644
index 0000000000..b305a128a2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-smbus_4.3.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Set of i2c tools for linux - Python module"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://py-smbus/smbusmodule.c;beginline=1;endline=18;md5=46e424fb045901ab25e0f92c28c80055"
+
+SRC_URI = "${KERNELORG_MIRROR}/software/utils/i2c-tools/i2c-tools-${PV}.tar.gz \
+ file://0001-Use-setuptools-as-distutils-is-deprecated.patch \
+ "
+SRC_URI[sha256sum] = "eec464e42301d93586cbeca3845ed61bff40f560670e5b35baec57301d438148"
+
+DEPENDS += "i2c-tools"
+
+S = "${WORKDIR}/i2c-tools-${PV}"
+
+inherit setuptools3
+
+SETUPTOOLS_SETUP_PATH = "${S}/py-smbus"
diff --git a/meta-python/recipes-devtools/python/python3-smpplib/run-ptest b/meta-python/recipes-devtools/python/python3-smpplib/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-smpplib/run-ptest
@@ -0,0 +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}}'
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..25f8f6afdd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-smpplib_2.2.3.bb
@@ -0,0 +1,30 @@
+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} += " \
+ ${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-snagboot_1.1.bb b/meta-python/recipes-devtools/python/python3-snagboot_1.1.bb
new file mode 100644
index 0000000000..e6f3148ce0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-snagboot_1.1.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] = "40b045e6225f3544080558e4bd604d116d4cffceea80cb84307579d914e4e498"
+
+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
new file mode 100644
index 0000000000..8a30f7cb78
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-snappy_0.6.1.bb
@@ -0,0 +1,15 @@
+DESCRIPTION = "Python library for the snappy compression library from Google"
+DEPENDS += "snappy"
+
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b3090152f53ee19f6a7b64b1a36384fb"
+
+SRC_URI[sha256sum] = "b6a107ab06206acc5359d4c5632bd9b22d448702a79b3169b0c62e0fb808bb2a"
+
+inherit pypi setuptools3
+
+PYPI_PACKAGE = "python-snappy"
+
+RDEPENDS:${PN} += "snappy"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-socketio_5.8.0.bb b/meta-python/recipes-devtools/python/python3-socketio_5.8.0.bb
new file mode 100644
index 0000000000..5de7490815
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-socketio_5.8.0.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] = "e714f4dddfaaa0cb0e37a1e2deef2bb60590a5b9fea9c343dd8ca5e688416fd9"
+
+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-soupsieve/run-ptest b/meta-python/recipes-devtools/python/python3-soupsieve/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-soupsieve/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-soupsieve_2.4.1.bb b/meta-python/recipes-devtools/python/python3-soupsieve_2.4.1.bb
new file mode 100644
index 0000000000..70c35844a1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-soupsieve_2.4.1.bb
@@ -0,0 +1,29 @@
+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] = "89d12b2d5dfcd2c9e8c22326da9d9aa9cb3dfab0a83a024f05704076ee8d35ea"
+
+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-speaklater_1.3.bb b/meta-python/recipes-devtools/python/python3-speaklater_1.3.bb
index aa4f699be0..5948dc8596 100644
--- a/meta-python/recipes-devtools/python/python3-speaklater_1.3.bb
+++ b/meta-python/recipes-devtools/python/python3-speaklater_1.3.bb
@@ -1,2 +1,9 @@
+DESCRIPTION = "Media asset management for Python, with glue code for various frameworks"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=b810770075a29bf44b96607440e7c801"
+
+SRC_URI[md5sum] = "e8d5dbe36e53d5a35cff227e795e8bbf"
+SRC_URI[sha256sum] = "59fea336d0eed38c1f0bf3181ee1222d0ef45f3a9dd34ebe65e6bfffdd6a65a9"
+
+PYPI_PACKAGE = "speaklater"
inherit pypi setuptools3
-require python-speaklater.inc
diff --git a/meta-python/recipes-devtools/python/python3-speedtest-cli_2.1.3.bb b/meta-python/recipes-devtools/python/python3-speedtest-cli_2.1.3.bb
new file mode 100644
index 0000000000..472113b059
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-speedtest-cli_2.1.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "Command line interface for testing internet bandwidth using speedtest.net"
+HOMEPAGE = "https://github.com/sivel/speedtest-cli"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "5e2773233cedb5fa3d8120eb7f97bcc4974b5221b254d33ff16e2f1d413d90f0"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-misc \
+ python3-threading \
+ python3-xml \
+"
diff --git a/meta-python/recipes-devtools/python/python3-spidev_3.2.bb b/meta-python/recipes-devtools/python/python3-spidev_3.2.bb
deleted file mode 100644
index 610611e438..0000000000
--- a/meta-python/recipes-devtools/python/python3-spidev_3.2.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-spidev.inc
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.1.17.bb b/meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.17.bb
deleted file mode 100644
index 86cf9eddeb..0000000000
--- a/meta-python/recipes-devtools/python/python3-sqlalchemy_1.1.17.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-sqlalchemy.inc
diff --git a/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.19.bb b/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.19.bb
new file mode 100644
index 0000000000..a2cf00dfd3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sqlalchemy_2.0.19.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=b707d50badb798e1d897f2c8f649382d"
+
+SRC_URI[sha256sum] = "77a14fa20264af73ddcdb1e2b9c5a829b8cc6b8304d0f093271980e36c200a3f"
+
+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
new file mode 100644
index 0000000000..0c9f29a6b8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sqlparse/0001-sqlparse-change-shebang-to-python3.patch
@@ -0,0 +1,41 @@
+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
+
+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>
+Signed-off-by: Leon Anavi <leon.anavi@konsulko.com>
+---
+ sqlparse/__main__.py | 2 +-
+ sqlparse/cli.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/sqlparse/__main__.py b/sqlparse/__main__.py
+index 2bf2513..6a3a115 100644
+--- a/sqlparse/__main__.py
++++ b/sqlparse/__main__.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/cli.py b/sqlparse/cli.py
+index 7a8aacb..9c727e8 100755
+--- a/sqlparse/cli.py
++++ b/sqlparse/cli.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>
+--
+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
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sqlparse/run-ptest
@@ -0,0 +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}}'
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..e4ac403eb5
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sqlparse_0.4.4.bb
@@ -0,0 +1,28 @@
+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 += " \
+ ${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-sqlsoup_0.9.1.bb b/meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb
new file mode 100644
index 0000000000..e7f329e9bb
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-sqlsoup_0.9.1.bb
@@ -0,0 +1,11 @@
+SUMMARY = "A one step database access tool, built on the SQLAlchemy ORM."
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=4382f3a1adb96f258dbd80f5b400f0d5"
+
+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.2.bb b/meta-python/recipes-devtools/python/python3-stack-data_0.6.2.bb
new file mode 100644
index 0000000000..21e4b77378
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-stack-data_0.6.2.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] = "32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815"
+
+RDEPENDS:${PN} = " \
+ python3-asttokens \
+ python3-executing \
+ python3-html \
+ python3-logging \
+ python3-pure-eval \
+"
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..d60d017d5b
--- /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 += "${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-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..64e3671e1b
--- /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} += "\
+ ${PYTHON_PN}-setuptools \
+ "
+
+BBCLASSEXTEND = "native nativesdk" \ No newline at end of file
diff --git a/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb b/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb
deleted file mode 100644
index 9e37052aed..0000000000
--- a/meta-python/recipes-devtools/python/python3-strict-rfc3339_0.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-strict-rfc3339.inc
diff --git a/meta-python/recipes-devtools/python/python3-supervisor/supervisor.service b/meta-python/recipes-devtools/python/python3-supervisor/supervisor.service
new file mode 100644
index 0000000000..e9d3f706b8
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-supervisor/supervisor.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Supervisor process control system for UNIX
+Documentation=http://supervisord.org
+After=network.target
+
+[Service]
+ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
+ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
+ExecReload=/usr/bin/supervisorctl -c /etc/supervisor/supervisord.conf $OPTIONS reload
+KillMode=process
+Restart=on-failure
+RestartSec=50s
+
+[Install]
+WantedBy=multi-user.target
diff --git a/meta-python/recipes-devtools/python/python3-supervisor/supervisord.conf b/meta-python/recipes-devtools/python/python3-supervisor/supervisord.conf
new file mode 100644
index 0000000000..3fb9b492dd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-supervisor/supervisord.conf
@@ -0,0 +1,31 @@
+; supervisor config file
+
+[unix_http_server]
+file=/var/run/supervisor.sock ; (the path to the socket file)
+chmod=0700 ; sockef file mode (default 0700)
+
+[supervisord]
+logfile=/var/log/supervisord.log ; (main log file;default $CWD/supervisord.log)
+pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
+childlogdir=/var/log/ ; ('AUTO' child log dir, default $TEMP)
+
+; the below section must remain in the config file for RPC
+; (supervisorctl/web interface) to work, additional interfaces may be
+; added by defining them in separate rpcinterface: sections
+[rpcinterface:supervisor]
+supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
+
+[supervisorctl]
+serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
+
+; The [include] section can just contain the "files" setting. This
+; setting can list multiple files (separated by whitespace or
+; newlines). It can also contain wildcards. The filenames are
+; interpreted as relative to this file. Included files *cannot*
+; include files themselves.
+
+[include]
+files = /etc/supervisor/conf.d/*.conf
+
+;[inet_http_server]
+;port=127.0.0.1:9001
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..53f8011b02
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-supervisor_4.2.5.bb
@@ -0,0 +1,34 @@
+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 \
+ 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-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 580d99352e..0000000000
--- a/meta-python/recipes-devtools/python/python3-systemd_234.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-systemd.inc
-inherit setuptools3
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..01d42cd5a4
--- /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 ${PYTHON_PN}-syslog ${PYTHON_PN}-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.9.0.bb b/meta-python/recipes-devtools/python/python3-tabulate_0.9.0.bb
new file mode 100644
index 0000000000..a25a1c66d5
--- /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 += " \
+ ${PYTHON_PN}-setuptools-scm-native \
+ ${PYTHON_PN}-toml-native \
+"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-html \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-io \
+ ${PYTHON_PN}-math \
+ ${PYTHON_PN}-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..c7e650d943
--- /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} = "\
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..bc6a4c3df6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-term_2.4.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] = "2cca4cf5f83035ca12627c4bbeff2891ad4711666247a790fd8200d73f38c3f0"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-io \
+"
diff --git a/meta-python/recipes-devtools/python/python3-termcolor_2.3.0.bb b/meta-python/recipes-devtools/python/python3-termcolor_2.3.0.bb
new file mode 100644
index 0000000000..bbaefc7ec2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-termcolor_2.3.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] = "b5b08f68937f138fe92f6c089b99f1e2da0ae56c52b78bf7075fd95420fd9a5a"
+
+DEPENDS += " \
+ ${PYTHON_PN}-toml-native \
+ ${PYTHON_PN}-hatch-vcs-native \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb b/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb
new file mode 100644
index 0000000000..8db949d0dc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-textparser_0.24.0.bb
@@ -0,0 +1,13 @@
+DESCRIPTION = "A text parser written in the Python language."
+HOMEPAGE = "https://github.com/eerimoq/textparser"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fe9942a8bba5458a9dbd11277bc347ad"
+
+SRC_URI[sha256sum] = "56f708e75aa9d002adb76d823ba6ef166d7ecec1e3e4ca4c1ca103f817568335"
+
+PYPI_PACKAGE = "textparser"
+
+inherit pypi setuptools3
+
+CLEANBROKEN = "1"
+
diff --git a/meta-python/recipes-devtools/python/python3-texttable_1.6.7.bb b/meta-python/recipes-devtools/python/python3-texttable_1.6.7.bb
new file mode 100644
index 0000000000..e8024987c9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-texttable_1.6.7.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] = "290348fb67f7746931bcdfd55ac7584ecd4e5b0846ab164333f0794b121760f2"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-tinyrecord_0.2.0.bb b/meta-python/recipes-devtools/python/python3-tinyrecord_0.2.0.bb
new file mode 100644
index 0000000000..1d99ae2f39
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tinyrecord_0.2.0.bb
@@ -0,0 +1,15 @@
+SUMMARY = "transaction support for TinyDB"
+DESCRIPTION = "\
+Tinyrecord is a library which implements atomic transaction \
+support for the TinyDB NoSQL database. It uses a record-first \
+then execute architecture which allows us to minimize the time \
+that we are within a thread lock."
+HOMEPAGE = "https://github.com/eugene-eeo/tinyrecord"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=ee157eec4b228c8d5b7a6e0feab2864a"
+
+SRC_URI[md5sum] = "cbaae3f4599b12e3bea67ca4a75eca99"
+SRC_URI[sha256sum] = "eb6dc23601be359ee00f5a3d31a46adf3bad0a16f8d60af216cd67982ca75cf4"
+
+PYPI_PACKAGE = "tinyrecord"
+inherit pypi setuptools3
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..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tomlkit/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-tomlkit_0.11.8.bb b/meta-python/recipes-devtools/python/python3-tomlkit_0.11.8.bb
new file mode 100644
index 0000000000..5ec7e6e9af
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tomlkit_0.11.8.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Style preserving TOML library"
+HOMEPAGE = "https://pypi.org/project/tomlkit/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=31aac0dbc1babd278d5386dadb7f8e82"
+
+SRC_URI[sha256sum] = "9330fc7faa1db67b541b28e62018c17d20be733177d290a13b24c62d1614e0c3"
+
+inherit pypi python_poetry_core ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-profile \
+ python3-stringold \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-poetry-core \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-pyyaml \
+"
+
+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-toolz_0.12.0.bb b/meta-python/recipes-devtools/python/python3-toolz_0.12.0.bb
new file mode 100644
index 0000000000..4025fa3e0e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-toolz_0.12.0.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] = "88c570861c440ee3f2f6037c4654613228ff40c93a6c25e0eba70d17282c6194"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-json \
+ python3-math \
+"
diff --git a/meta-python/recipes-devtools/python/python3-tornado_4.5.3.bb b/meta-python/recipes-devtools/python/python3-tornado_4.5.3.bb
deleted file mode 100644
index 77c9fb516f..0000000000
--- a/meta-python/recipes-devtools/python/python3-tornado_4.5.3.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-inherit pypi setuptools3
-require python-tornado.inc
-
-# Requires _compression which is currently located in misc
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-misc \
- "
diff --git a/meta-python/recipes-devtools/python/python3-tornado_6.3.bb b/meta-python/recipes-devtools/python/python3-tornado_6.3.bb
new file mode 100644
index 0000000000..af5009b6ae
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tornado_6.3.bb
@@ -0,0 +1,39 @@
+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] = "d68f3192936ff2c4add04dc21a436a43b4408d466746b78bb2b9d0a53a18683f"
+
+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 = " \
+ ${libdir}/${PYTHON_DIR}/site-packages/*/test \
+"
diff --git a/meta-python/recipes-devtools/python/python3-tox_4.6.4.bb b/meta-python/recipes-devtools/python/python3-tox_4.6.4.bb
new file mode 100644
index 0000000000..a8215a91bf
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tox_4.6.4.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] = "5e2ad8845764706170d3dcaac171704513cc8a725655219acb62fe4380bdadda"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-cachetools \
+ ${PYTHON_PN}-chardet \
+ ${PYTHON_PN}-colorama \
+ ${PYTHON_PN}-filelock \
+ ${PYTHON_PN}-packaging \
+ ${PYTHON_PN}-platformdirs \
+ ${PYTHON_PN}-pluggy \
+ ${PYTHON_PN}-pyproject-api \
+ ${PYTHON_PN}-tomli \
+ ${PYTHON_PN}-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} += "${PYTHON_PN}-modules"
diff --git a/meta-python/recipes-devtools/python/python3-tqdm_4.65.0.bb b/meta-python/recipes-devtools/python/python3-tqdm_4.65.0.bb
new file mode 100644
index 0000000000..f54b5c41e2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tqdm_4.65.0.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=cfdbc9dcca7dc9fb600347958b7d5c4f"
+
+SRC_URI[sha256sum] = "1871fb68a86b8fb3b59ca4cdd3dcccbc7e6d613eeed31f4c332531977b89beb5"
+
+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-trafaret-config_2.0.2.bb b/meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb
new file mode 100644
index 0000000000..5c5754740b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-trafaret-config_2.0.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "This is a wrapper that loads yaml and checks config using trafaret while keeping track of actual lines of file where error has happened."
+
+LICENSE = "Apache-2.0 & MIT"
+LIC_FILES_CHKSUM = "file://README.rst;beginline=98;endline=106;md5=a15308789c3b7d0f3ef36b69048423e4"
+
+SRC_URI[sha256sum] = "440b6b49e5e975f9a640a2519abb2feddd96eb2aeb1715f87f947a7a079f20be"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-trafaret \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..97c56abde4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-trafaret_2.1.1.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Ultimate transformation library that supports validation, contexts and aiohttp."
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=21ecc7aa8f699874e706fc1354903437"
+
+SRC_URI[sha256sum] = "d9d00800318fbd343fdfb3353e947b2ebb5557159c844696c5ac24846f76d41c"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-numbers \
+ ${PYTHON_PN}-urllib3 \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb b/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb
new file mode 100644
index 0000000000..ee4ac64c3b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-traitlets_5.9.0.bb
@@ -0,0 +1,14 @@
+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=f17a3ba4cd59794dd6e005c8e150aef0"
+
+SRC_URI[sha256sum] = "f6cde21a9c68cf756af02035f72d5a723bf607e862e7be33ece505abf4a3bad9"
+
+inherit pypi python_hatchling
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-ipython-genutils \
+ ${PYTHON_PN}-decorator \
+"
diff --git a/meta-python/recipes-devtools/python/python3-transitions_0.9.0.bb b/meta-python/recipes-devtools/python/python3-transitions_0.9.0.bb
new file mode 100644
index 0000000000..980351bf14
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-transitions_0.9.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "A lightweight, object-oriented Python state machine implementation with many extensions."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=de0a0876a688a4483bfafa764773ab39"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "2f54d11bdb225779d7e729011e93a9fb717668ce3dc65f8d4f5a5d7ba2f48e10"
+
+RDEPENDS:${PN} += "python3-six python3-logging"
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..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-trustme/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb b/meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb
new file mode 100644
index 0000000000..6f31aea0e0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-trustme_0.9.0.bb
@@ -0,0 +1,34 @@
+DESCRIPTION = "A utility provides a fake certificate authority (CA)"
+HOMEPAGE = "https://pypi.org/project/trustme"
+AUTHOR = "Nathaniel J. Smith"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=d5a7af1a4b73e57431e25d15a2da745a"
+
+SRC_URI[md5sum] = "0e4d698e5aecaf8306cf440bf3dcbbe0"
+SRC_URI[sha256sum] = "5e07b23d70ceed64f3bb36ae4b9abc52354c16c98d45ab037bee2b5fbffe586c"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-cryptography \
+ python3-datetime \
+ python3-idna \
+ python3-io \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ ${PYTHON_PN}-pytest \
+ ${PYTHON_PN}-service-identity \
+ ${PYTHON_PN}-pyasn1-modules \
+"
+
+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.2.bb b/meta-python/recipes-devtools/python/python3-twine_4.0.2.bb
new file mode 100644
index 0000000000..161b4b2212
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-twine_4.0.2.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] = "9e102ef5fdd5a20661eb88fad46338806c3bd32cf1db729603fe3697b1bc83c8"
+
+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-twisted_17.9.0.bb b/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb
deleted file mode 100644
index 6bd8c52eb0..0000000000
--- a/meta-python/recipes-devtools/python/python3-twisted_17.9.0.bb
+++ /dev/null
@@ -1,67 +0,0 @@
-inherit pypi setuptools3
-require python-twisted.inc
-
-PACKAGES_remove = "${PN}-src"
-
-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-twisted_22.10.0.bb b/meta-python/recipes-devtools/python/python3-twisted_22.10.0.bb
new file mode 100644
index 0000000000..767ace114a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-twisted_22.10.0.bb
@@ -0,0 +1,312 @@
+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] = "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 \
+"
+
+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}-asyncio \
+ ${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}-typing-extensions \
+ ${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.14.0.bb b/meta-python/recipes-devtools/python/python3-twitter_4.14.0.bb
new file mode 100644
index 0000000000..68908bb64e
--- /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} += "\
+ ${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-twofish/0001-Fix-missing-return-statements-in-module-stubs.patch b/meta-python/recipes-devtools/python/python3-twofish/0001-Fix-missing-return-statements-in-module-stubs.patch
new file mode 100644
index 0000000000..c25b2457e2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-twofish/0001-Fix-missing-return-statements-in-module-stubs.patch
@@ -0,0 +1,38 @@
+From 5704610f4b3aed5210e9c5b7c05ff8b5b2364c9c Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Mon, 12 Aug 2019 08:18:21 +0000
+Subject: [PATCH] Fix missing return statements in module stubs
+
+* fixes build with -Werror=return-type
+ twofish.c: In function 'init_twofish':
+ twofish.c:45:1: error: control reaches end of non-void function [-Werror=return-type]
+ 45 | PyMODINIT_FUNC init_twofish(void) { }
+ | ^~~~~~~~~~~~~~
+ twofish.c: In function 'PyInit__twofish':
+ twofish.c:46:1: error: control reaches end of non-void function [-Werror=return-type]
+ 46 | PyMODINIT_FUNC PyInit__twofish(void) { }
+ | ^~~~~~~~~~~~~~
+ cc1: some warnings being treated as errors
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+Upstream-Status: Submitted [https://github.com/keybase/python-twofish/pull/6]
+---
+ twofish.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/twofish.c b/twofish.c
+index e324c34..d4487d8 100644
+--- a/twofish.c
++++ b/twofish.c
+@@ -42,5 +42,5 @@ DL_EXPORT(void) exp_Twofish_decrypt(Twofish_key * xkey, uint8_t c[16], uint8_t p
+ We need a stub init_twofish function so the module will link as a proper module.
+ Do not import _twofish from python; it will not work since _twofish is not a *real* module
+ */
+-PyMODINIT_FUNC init_twofish(void) { }
+-PyMODINIT_FUNC PyInit__twofish(void) { }
++PyMODINIT_FUNC init_twofish(void) { return NULL; }
++PyMODINIT_FUNC PyInit__twofish(void) { return NULL; }
+--
+2.17.1
+
diff --git a/meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch b/meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch
new file mode 100644
index 0000000000..99e5c6c517
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-twofish/0002-setup.py-switch-to-setuptools.patch
@@ -0,0 +1,26 @@
+From fe10781bd15ed7a5c384dbf121f78f129995aa8f Mon Sep 17 00:00:00 2001
+From: Tim Orling <tim.orling@konsulko.com>
+Date: Sun, 27 Feb 2022 11:02:36 -0800
+Subject: [PATCH] setup.py: switch to setuptools
+
+Upstream-Status: Submitted
+[https://github.com/keybase/python-twofish/pull/9]
+
+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 fcc9546..bfc3273 100644
+--- a/setup.py
++++ b/setup.py
+@@ -8,7 +8,7 @@ Copyright (c) 2013 Keybase
+ setup.py - build and package info
+ """
+
+-from distutils.core import setup, Extension
++from setuptools import setup, Extension
+
+ twofish_module = Extension('_twofish',
+ sources=['twofish-0.3/twofish.c', 'twofish.c'],
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 e593f6f212..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
@@ -1,2 +1,19 @@
-require python-twofish.inc
-inherit setuptools3
+SUMMARY = "Bindings for the Twofish implementation by Niels Ferguson"
+DESCRIPTION = "Bindings for the Twofish implementation by Niels Ferguson\
+ libtwofish-dev."
+HOMEPAGE = "http://github.com/keybase/python-twofish"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=33a63abf6d7567b1689d8ce69f00e43b"
+
+SRC_URI += " \
+ file://0001-Fix-missing-return-statements-in-module-stubs.patch \
+ file://0002-setup.py-switch-to-setuptools.patch \
+"
+
+SRC_URI[sha256sum] = "b09d8bb50d33b23ff34cafb1f9209f858f752935c6a5c901efb92a41acb830fa"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += "python3-ctypes"
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..7559accf41
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-txaio_23.1.1.bb
@@ -0,0 +1,14 @@
+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} += " \
+ ${PYTHON_PN}-twisted \
+"
+
+BBCLASSEXTEND = "native nativesdk"
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
new file mode 100644
index 0000000000..a117f17202
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-txdbus_1.1.2.bb
@@ -0,0 +1,13 @@
+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"
+LIC_FILES_CHKSUM = "file://README.rst;beginline=32;endline=32;md5=2141358b0bce85fc45216ba91735ad50"
+
+SRC_URI[md5sum] = "d397357dee78750385f92ca9c6c1f063"
+SRC_URI[sha256sum] = "8375a5fb68a12054f0def91af800c821fb2232949337756ed975f88d8ea2bc97"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-six python3-twisted"
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
new file mode 100644
index 0000000000..e6c1746a8a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-typed-ast_1.5.4.bb
@@ -0,0 +1,12 @@
+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
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-typeguard/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-typeguard_4.0.0.bb b/meta-python/recipes-devtools/python/python3-typeguard_4.0.0.bb
new file mode 100644
index 0000000000..ca17e2b135
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-typeguard_4.0.0.bb
@@ -0,0 +1,35 @@
+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] = "194fb3dbcb06ea9caf7088f3befee014de57961689f9c859ac5239b1ef61d987"
+
+inherit pypi python_setuptools_build_meta ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-unittest \
+"
+
+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-tzlocal_5.0.1.bb b/meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.bb
new file mode 100644
index 0000000000..a59fd93643
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-tzlocal_5.0.1.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] = "46eb99ad4bdb71f3f72b7d24f4267753e240944ecfc16f25d2719ba89827a803"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN} += " \
+ python3-datetime \
+ python3-logging \
+ python3-pytz-deprecation-shim \
+"
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
new file mode 100644
index 0000000000..7110f6bc40
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-u-msgpack-python/run-ptest
@@ -0,0 +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}}'
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..8baedcb951
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-u-msgpack-python_2.8.0.bb
@@ -0,0 +1,26 @@
+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 += " \
+ ${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-uefi-firmware_1.10.bb b/meta-python/recipes-devtools/python/python3-uefi-firmware_1.10.bb
new file mode 100644
index 0000000000..7db7c8059a
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uefi-firmware_1.10.bb
@@ -0,0 +1,22 @@
+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"
+AUTHOR = "Teddy Reed <teddy@prosauce.org>"
+LICENSE = "BSD-2-Clause & BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://setup.py;md5=90fa5bae1547550f1c1993f651eda955"
+
+SRC_URI = "git://github.com/theopolis/uefi-firmware-parser;protocol=https;branch=master"
+
+SRCREV = "dfb15b068960b771e2e1536d34790dac9b5bfe32"
+
+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
new file mode 100644
index 0000000000..4095fc9095
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uinput/0001-Deal-with-64bit-time_t-default-on-32bit-architecture.patch
@@ -0,0 +1,43 @@
+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
new file mode 100644
index 0000000000..b2e1b9cd82
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uinput/0001-setup-use-setuptools-instead-of-distutils.patch
@@ -0,0 +1,30 @@
+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>
+---
+Upstream-Status: Pending
+
+ 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
new file mode 100644
index 0000000000..ef466539bd
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uinput_0.11.2.bb
@@ -0,0 +1,20 @@
+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
new file mode 100644
index 0000000000..8ba8ada556
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ujson/0001-setup.py-Do-not-strip-debugging-symbols.patch
@@ -0,0 +1,37 @@
+From aec3b64b0aaea0178b44ea65a204d76696e6a45e Mon Sep 17 00:00:00 2001
+From: Leon Anavi <leon.anavi@konsulko.com>
+Date: Mon, 10 Jan 2022 14:04:28 +0200
+Subject: [PATCH] setup.py: Do not strip debugging symbols
+
+Do not strip debugging symbols from Linux binaries to avoid
+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/setup.py b/setup.py
+index b98963b..d42f07a 100644
+--- a/setup.py
++++ b/setup.py
+@@ -19,13 +19,7 @@ if not dconv_libs:
+ dconv_source_files.extend(glob("./deps/double-conversion/double-conversion/*.cc"))
+ dconv_source_files.append("./lib/dconv_wrapper.cc")
+
+-if platform.system() == "Linux" and environ.get("UJSON_BUILD_NO_STRIP", "0") not in (
+- "1",
+- "True",
+-):
+- strip_flags = ["-Wl,--strip-all"]
+-else:
+- strip_flags = []
++strip_flags = []
+
+ module1 = Extension(
+ "ujson",
+--
+2.25.1
+
diff --git a/meta-python/recipes-devtools/python/python3-ujson/run-ptest b/meta-python/recipes-devtools/python/python3-ujson/run-ptest
new file mode 100644
index 0000000000..b1539453a6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ujson/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+python3 tests/test_ujson.py
diff --git a/meta-python/recipes-devtools/python/python3-ujson_1.35.bb b/meta-python/recipes-devtools/python/python3-ujson_1.35.bb
deleted file mode 100644
index ae4cc0a812..0000000000
--- a/meta-python/recipes-devtools/python/python3-ujson_1.35.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-ujson.inc
diff --git a/meta-python/recipes-devtools/python/python3-ujson_5.8.0.bb b/meta-python/recipes-devtools/python/python3-ujson_5.8.0.bb
new file mode 100644
index 0000000000..9486435d73
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-ujson_5.8.0.bb
@@ -0,0 +1,34 @@
+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] = "78e318def4ade898a461b3d92a79f9441e7e0e4d2ad5419abed4336d702c7425"
+
+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-unidiff/run-ptest b/meta-python/recipes-devtools/python/python3-unidiff/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-unidiff/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-unidiff_0.5.5.bb b/meta-python/recipes-devtools/python/python3-unidiff_0.5.5.bb
deleted file mode 100644
index 0ddc7e2f20..0000000000
--- a/meta-python/recipes-devtools/python/python3-unidiff_0.5.5.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-unidiff.inc
-inherit setuptools3
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..690acf8634
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-unidiff_0.7.5.bb
@@ -0,0 +1,26 @@
+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 += " \
+ ${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-uritemplate/run-ptest b/meta-python/recipes-devtools/python/python3-uritemplate/run-ptest
new file mode 100644
index 0000000000..b63c4de0d9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uritemplate/run-ptest
@@ -0,0 +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}}'
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
new file mode 100644
index 0000000000..eaf8bda846
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uritemplate_4.1.1.bb
@@ -0,0 +1,26 @@
+# This recipe is originally from meta-openstack:
+# 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"
+
+SRC_URI[sha256sum] = "4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0"
+
+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-urllib3_1.22.bb b/meta-python/recipes-devtools/python/python3-urllib3_1.22.bb
deleted file mode 100644
index 19eb7025b2..0000000000
--- a/meta-python/recipes-devtools/python/python3-urllib3_1.22.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-urllib3.inc
diff --git a/meta-python/recipes-devtools/python/python3-uswid_git.bb b/meta-python/recipes-devtools/python/python3-uswid_git.bb
new file mode 100644
index 0000000000..40adc34c10
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-uswid_git.bb
@@ -0,0 +1,21 @@
+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"
+
+DEPENDS += " python3-cbor2 python3-lxml python3-pefile"
+RDEPENDS:${PN} += " \
+ python3-cbor2 \
+ python3-json \
+ python3-lxml \
+ python3-netclient \
+"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=40d2542b8c43a3ec2b7f5da31a697b88"
+
+SRC_URI = "git://github.com/hughsie/python-uswid.git;branch=main;protocol=https"
+SRCREV = "3223034abef88ae29cf79fdc7fe11ec7e21e11ff"
+S = "${WORKDIR}/git"
+
+inherit setuptools3 python3native
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb b/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
deleted file mode 100644
index f6372c8d56..0000000000
--- a/meta-python/recipes-devtools/python/python3-vcversioner_2.16.0.0.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Python vcversioner, automagically update the project's version"
-HOMEPAGE = "https://github.com/habnabit/vcversioner"
-
-LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://PKG-INFO;md5=827a7a91a8d20d3c666b665cd96db8e3"
-
-SRC_URI[md5sum] = "aab6ef5e0cf8614a1b1140ed5b7f107d"
-SRC_URI[sha256sum] = "dae60c17a479781f44a4010701833f1829140b1eeccd258762a74974aa06e19b"
-
-inherit pypi setuptools3
-
-do_compile_append() {
- ${PYTHON} setup.py -q bdist_egg --dist-dir ./
-}
-
-do_install_append() {
- install -m 0644 ${S}/vcversioner*.egg ${D}/${PYTHON_SITEPACKAGES_DIR}/
-}
-
-BBCLASSEXTEND = "native"
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
new file mode 100644
index 0000000000..02639b5900
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-versiontools_1.9.1.bb
@@ -0,0 +1,12 @@
+SUMMARY = "Smart replacement for plain tuple used in __version__"
+SECTION = "devel/python"
+HOMEPAGE = "https://launchpad.net/versiontools"
+LICENSE = "LGPL-3.0-only"
+LIC_FILES_CHKSUM = "file://setup.py;beginline=3;endline=20;md5=02193721a38fd8a05a4ddeb7df8e294d"
+
+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.24.0.bb b/meta-python/recipes-devtools/python/python3-virtualenv_20.24.0.bb
new file mode 100644
index 0000000000..8b849df31d
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-virtualenv_20.24.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] = "e2a7cef9da880d693b933db7654367754f14e20650dc60e8ee7385571f8593a3"
+
+BBCLASSEXTEND = "native nativesdk"
+inherit pypi python_hatchling
+
+DEPENDS += "\
+ ${PYTHON_PN}-hatch-vcs-native \
+"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-distlib \
+ ${PYTHON_PN}-filelock \
+ ${PYTHON_PN}-platformdirs \
+"
diff --git a/meta-python/recipes-devtools/python/python3-visitor_0.1.3.bb b/meta-python/recipes-devtools/python/python3-visitor_0.1.3.bb
index b9bc51d4b9..ac3a90efb0 100644
--- a/meta-python/recipes-devtools/python/python3-visitor_0.1.3.bb
+++ b/meta-python/recipes-devtools/python/python3-visitor_0.1.3.bb
@@ -1,2 +1,8 @@
+SUMMARY = "A tiny pythonic visitor implementation."
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
+
+SRC_URI[md5sum] = "94a024ed0ec1b02b4497c15267d319ca"
+SRC_URI[sha256sum] = "2c737903b2b6864ebc6167eef7cf3b997126f1aa94bdf590f90f1436d23e480a"
+
inherit pypi setuptools3
-require python-visitor.inc
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
new file mode 100644
index 0000000000..061586b5df
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-waitress_2.1.2.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] = "780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba"
+
+inherit python_setuptools_build_meta pypi
diff --git a/meta-python/recipes-devtools/python/python3-watchdog_3.0.0.bb b/meta-python/recipes-devtools/python/python3-watchdog_3.0.0.bb
new file mode 100644
index 0000000000..bcd64892a2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-watchdog_3.0.0.bb
@@ -0,0 +1,18 @@
+SUMMARY = "Filesystem events monitoring"
+DEPENDS = "${PYTHON_PN}-argh"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+SRC_URI[sha256sum] = "4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"
+
+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-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-wcwidth_0.1.7.bb b/meta-python/recipes-devtools/python/python3-wcwidth_0.1.7.bb
deleted file mode 100644
index 5f6259b081..0000000000
--- a/meta-python/recipes-devtools/python/python3-wcwidth_0.1.7.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-wcwidth.inc
diff --git a/meta-python/recipes-devtools/python/python3-web3_6.3.0.bb b/meta-python/recipes-devtools/python/python3-web3_6.3.0.bb
new file mode 100644
index 0000000000..088bfd504e
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-web3_6.3.0.bb
@@ -0,0 +1,22 @@
+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] = "d13f17d18eaacd87f7d233b4b2c70d1579b39573628b71ec996adfcd4dac9cab"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ python3-aiohttp \
+ python3-distutils \
+ python3-eth-account \
+ python3-idna \
+ python3-jsonschema \
+ python3-google-api-core \
+ python3-lru-dict \
+ python3-requests \
+ python3-setuptools \
+ python3-websockets \
+"
diff --git a/meta-python/recipes-devtools/python/python3-webcolors_1.8.1.bb b/meta-python/recipes-devtools/python/python3-webcolors_1.8.1.bb
deleted file mode 100644
index fcd9f70726..0000000000
--- a/meta-python/recipes-devtools/python/python3-webcolors_1.8.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-webcolors.inc
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 71fe741e4c..ab33ce66e8 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
@@ -1,2 +1,15 @@
-inherit setuptools3
-require python-webencodings.inc
+SUMMARY = "Character encoding aliases for legacy web content"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=e910b35b0ef4e1f665b9a75d6afb7709"
+
+SRC_URI[md5sum] = "32f6e261d52e57bf7e1c4d41546d15b8"
+SRC_URI[sha256sum] = "b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-codecs \
+ ${PYTHON_PN}-json \
+"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-python/recipes-devtools/python/python3-websocket-client_1.5.3.bb b/meta-python/recipes-devtools/python/python3-websocket-client_1.5.3.bb
new file mode 100644
index 0000000000..f7650f9bb4
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-websocket-client_1.5.3.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=b969e9612325987c823fc0737063ebc8"
+
+SRC_URI[sha256sum] = "b96f3bce3e54e3486ebe6504bc22bd4c140392bd2eb71764db29be8f2639aa65"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "\
+ ${PYTHON_PN}-six \
+ ${PYTHON_PN}-logging \
+"
diff --git a/meta-python/recipes-devtools/python/python3-websockets_11.0.3.bb b/meta-python/recipes-devtools/python/python3-websockets_11.0.3.bb
new file mode 100644
index 0000000000..e6971c8297
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-websockets_11.0.3.bb
@@ -0,0 +1,16 @@
+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=51924a6af4495b8cfaee1b1da869b6f4"
+
+inherit pypi setuptools3
+
+SRC_URI[sha256sum] = "88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} = " \
+ python3-asyncio \
+ python3-profile \
+"
diff --git a/meta-python/recipes-devtools/python/python3-websockets_4.0.1.bb b/meta-python/recipes-devtools/python/python3-websockets_4.0.1.bb
deleted file mode 100644
index 414129c59d..0000000000
--- a/meta-python/recipes-devtools/python/python3-websockets_4.0.1.bb
+++ /dev/null
@@ -1,16 +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=5070256738c06d2e59adbec1f4057dac"
-
-inherit pypi setuptools3
-
-SRC_URI[md5sum] = "9e8c6b3c70def4146d75fbb0f52bdfc7"
-SRC_URI[sha256sum] = "da4d4fbe059b0453e726d6d993760065d69b823a27efc3040402a6fcfe6a1ed9"
-
-BBCLASSEXTEND = "native nativesdk"
-
-RDEPENDS_${PN} = "\
- ${PYTHON_PN}-asyncio \
-"
diff --git a/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb b/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb
deleted file mode 100644
index 145a1de0a1..0000000000
--- a/meta-python/recipes-devtools/python/python3-werkzeug_0.14.1.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools3
-require python-werkzeug.inc
-
-RDEPENDS_${PN} += "${PYTHON_PN}-misc"
diff --git a/meta-python/recipes-devtools/python/python3-werkzeug_2.3.6.bb b/meta-python/recipes-devtools/python/python3-werkzeug_2.3.6.bb
new file mode 100644
index 0000000000..11441fca2b
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-werkzeug_2.3.6.bb
@@ -0,0 +1,40 @@
+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] = "98c774df2f91b05550078891dee5f0eb0cb797a522c757a2452b9cee5b202330"
+
+inherit pypi python_setuptools_build_meta
+
+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-whoosh/run-ptest b/meta-python/recipes-devtools/python/python3-whoosh/run-ptest
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-whoosh/run-ptest
@@ -0,0 +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}}'
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 5d8af303c7..ed2a6d423f 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
@@ -1,2 +1,40 @@
-inherit pypi setuptools3
-require python-whoosh.inc
+SUMMARY = "Fast, pure-Python full text indexing, search, and spell checking library."
+DESCRIPTION = "\
+Whoosh is a fast, featureful full-text indexing and searching library \
+implemented in pure Python. Programmers can use it to easily add search \
+functionality to their applications and websites. Every part of how \
+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[md5sum] = "893433e9c0525ac043df33e6e04caab2"
+SRC_URI[sha256sum] = "e0857375f63e9041e03fedd5b7541f97cf78917ac1b6b06c1fcc9b45375dda69"
+
+PYPI_PACKAGE = "Whoosh"
+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 \
+"
+
+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-wpa-supplicant/0001-cli-drop-the-second-argument-from-click.argument-dec.patch b/meta-python/recipes-devtools/python/python3-wpa-supplicant/0001-cli-drop-the-second-argument-from-click.argument-dec.patch
new file mode 100644
index 0000000000..59aaa7ed82
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wpa-supplicant/0001-cli-drop-the-second-argument-from-click.argument-dec.patch
@@ -0,0 +1,127 @@
+From 49b133d84e7a1471bf51d8d005b1ba8b78c37724 Mon Sep 17 00:00:00 2001
+From: Bartosz Golaszewski <brgl@bgdev.pl>
+Date: Sat, 20 Mar 2021 20:59:54 +0100
+Subject: [PATCH] cli: drop the second argument from @click.argument()
+ decorator
+
+@click.argument no longer takes two positional arguments.
+
+Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
+---
+Upstream-Status: Pending
+
+ wpa_supplicant/cli.py | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/wpa_supplicant/cli.py b/wpa_supplicant/cli.py
+index bad5b5b..1fb322d 100644
+--- a/wpa_supplicant/cli.py
++++ b/wpa_supplicant/cli.py
+@@ -81,7 +81,7 @@ def root(ctx, debug):
+
+
+ @root.group()
+-@click.argument('ifname', 'e.g. wlan0')
++@click.argument('ifname')
+ @click.pass_context
+ def interface(ctx, ifname):
+ """Access fi.w1.wpa_supplicant1.Interface object"""
+@@ -101,7 +101,7 @@ def interface_p2p_device():
+
+
+ @root.group()
+-@click.argument('ifname', 'e.g. wlan0')
++@click.argument('ifname')
+ @click.option('--ssid', default=None, help='Look at scan results for BSS examples')
+ @click.option('--bssid', default=None, help='Look at scan results for BSS examples')
+ @click.pass_context
+@@ -149,7 +149,7 @@ def persistent_group():
+ # fi.w1.wpa_supplicant1 API
+ #
+ @root.command()
+-@click.argument('ifname', 'e.g. wlan0')
++@click.argument('ifname')
+ @click.option('--bridge_if_name', default=None, help='Bridge to control, e.g., br0')
+ @click.option('--driver', default=None, help='e.g. nl80211')
+ @click.option('--config_file', default=None, help='Config file path')
+@@ -161,7 +161,7 @@ def create_interface(ifname, bridge_if_name, driver, config_file):
+
+
+ @root.command()
+-@click.argument('ifname', 'e.g. wlan0')
++@click.argument('ifname')
+ def remove_interface(ifname):
+ """Method: Deregisters a wireless interface from wpa_supplicant"""
+ with supplicant() as supp:
+@@ -170,7 +170,7 @@ def remove_interface(ifname):
+
+
+ @root.command()
+-@click.argument('ifname', 'e.g. wlan0')
++@click.argument('ifname')
+ def get_interface(ifname):
+ """Method: Returns a D-Bus path to an object related to an interface which wpa_supplicant already controls"""
+ with supplicant() as supp:
+@@ -178,7 +178,7 @@ def get_interface(ifname):
+
+
+ @root.command(name='get')
+-@click.argument('name', 'Name of property (case sensitive)')
++@click.argument('name')
+ def root_get(name):
+ """Method: Get Property (case sensitive)"""
+ with supplicant() as supp:
+@@ -186,8 +186,8 @@ def root_get(name):
+
+
+ @root.command(name='set')
+-@click.argument('name', 'Name of property (case sensitive)')
+-@click.argument('value', 'Value to be set')
++@click.argument('name')
++@click.argument('value')
+ def root_set(name, value):
+ """Method: Set Property (case sensitive)"""
+ with supplicant() as supp:
+@@ -217,7 +217,7 @@ def disconnect(ctx):
+
+
+ @interface.command(name='get')
+-@click.argument('name', 'Name of property (case sensitive)')
++@click.argument('name')
+ @click.pass_context
+ def interface_get(ctx, name):
+ """Method: Get Property (case sensitive)"""
+@@ -227,8 +227,8 @@ def interface_get(ctx, name):
+
+
+ @interface.command(name='set')
+-@click.argument('name', 'Name of property (case sensitive)')
+-@click.argument('value', 'Value to be set')
++@click.argument('name')
++@click.argument('value')
+ @click.pass_context
+ def interface_set(ctx, name, value):
+ """Method: Set Property (case sensitive)"""
+@@ -241,7 +241,7 @@ def interface_set(ctx, name, value):
+ # fi.w1.wpa_supplicant1.BSS API
+ #
+ @bss.command(name='get')
+-@click.argument('name', 'Name of property (case sensitive)')
++@click.argument('name')
+ @click.pass_context
+ def bss_get(ctx, name):
+ """Method: Get Property (case sensitive)"""
+@@ -261,8 +261,8 @@ def bss_get(ctx, name):
+
+
+ @bss.command(name='set')
+-@click.argument('name', 'Name of property (case sensitive)')
+-@click.argument('value', 'Value to be set')
++@click.argument('name')
++@click.argument('value')
+ @click.pass_context
+ def bss_set(ctx, name, value):
+ """Method: Set Property (case sensitive)"""
+--
+2.25.1
+
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
new file mode 100644
index 0000000000..5ac7786ad3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wpa-supplicant_0.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Python interface to the wpa_supplicant D-Bus interface"
+HOMEPAGE = "https://pypi.org/project/wpa_supplicant/"
+SECTION = "devel/python"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://README.md;beginline=171;endline=199;md5=462586bcbebd12f5d0ac443be0ed3d91"
+
+SRC_URI[md5sum] = "c21c7841f5e03ff709a0564b2e094010"
+SRC_URI[sha256sum] = "3ad0f40a696763bb0f4d4dec5b51f6b53ccfeb7c16ebb5897349303045f94776"
+
+SRC_URI += "file://0001-cli-drop-the-second-argument-from-click.argument-dec.patch"
+
+PYPI_PACKAGE = "wpa_supplicant"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-twisted python3-click python3-txdbus"
diff --git a/meta-python/recipes-devtools/python/python3-wrapt_1.10.11.bb b/meta-python/recipes-devtools/python/python3-wrapt_1.10.11.bb
deleted file mode 100644
index 85f446ef98..0000000000
--- a/meta-python/recipes-devtools/python/python3-wrapt_1.10.11.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit setuptools3
-require python-wrapt.inc
diff --git a/meta-python/recipes-devtools/python/python3-wrapt_1.15.0.bb b/meta-python/recipes-devtools/python/python3-wrapt_1.15.0.bb
new file mode 100644
index 0000000000..e35e1f7a79
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wrapt_1.15.0.bb
@@ -0,0 +1,16 @@
+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] = "d06730c6aed78cee4126234cf2d071e01b44b915e725a6cb439a879ec9754a3a"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN}:class-target += "\
+ ${PYTHON_PN}-stringold \
+ ${PYTHON_PN}-threading \
+"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-devtools/python/python3-wtforms_2.1.bb b/meta-python/recipes-devtools/python/python3-wtforms_2.1.bb
deleted file mode 100644
index add59cf7d6..0000000000
--- a/meta-python/recipes-devtools/python/python3-wtforms_2.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-wtforms.inc
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
new file mode 100644
index 0000000000..36a0191dc9
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-wtforms_3.0.1.bb
@@ -0,0 +1,23 @@
+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-xlrd/run-ptest b/meta-python/recipes-devtools/python/python3-xlrd/run-ptest
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xlrd/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb b/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb
deleted file mode 100644
index b7bd969c71..0000000000
--- a/meta-python/recipes-devtools/python/python3-xlrd_1.1.0.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-xlrd.inc
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
new file mode 100644
index 0000000000..5e63d3c307
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xlrd_2.0.1.bb
@@ -0,0 +1,40 @@
+SUMMARY = "Library for developers to extract data from Microsoft Excel (tm) spreadsheet files"
+DESCRIPTION = "Extract data from Excel spreadsheets (.xls and .xlsx,\
+ versions 2.0 onwards) on any platform. Pure Python (2.6, 2.7, 3.2+). \
+Strong support for Excel dates. Unicode-aware."
+HOMEPAGE = "http://www.python-excel.org/"
+LICENSE = "BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=00ea1e843a43c20d9b63a8112239b0d1"
+
+SRC_URI[sha256sum] = "f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88"
+
+
+SRC_URI = "git://github.com/python-excel/xlrd.git;branch=master;protocol=https \
+ file://run-ptest \
+"
+SRCREV = "b8d573e11ec149da695d695c81a156232b89a949"
+
+S = "${WORKDIR}/git"
+
+inherit ptest setuptools3
+PIP_INSTALL_PACKAGE = "xlrd"
+PIP_INSTALL_DIST_PATH = "${S}/dist"
+
+RDEPENDS:${PN} += " \
+ python3-compression \
+ python3-io \
+ python3-mmap \
+ python3-pprint \
+ python3-shell \
+"
+
+RDEPENDS:${PN}-ptest += " \
+ python3-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-xlsxwriter_3.1.2.bb b/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.2.bb
new file mode 100644
index 0000000000..805a3b7dd1
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xlsxwriter_3.1.2.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] = "78751099a770273f1c98b8d6643351f68f98ae8e6acf9d09d37dc6798f8cd3de"
+
+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
new file mode 100644
index 0000000000..7259c3fad3
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xmlrunner_1.7.7.bb
@@ -0,0 +1,11 @@
+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
+
+RDEPENDS:${PN} += "python3-unittest"
diff --git a/meta-python/recipes-devtools/python/python3-xmlschema_2.3.1.bb b/meta-python/recipes-devtools/python/python3-xmlschema_2.3.1.bb
new file mode 100644
index 0000000000..9be7cb5551
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xmlschema_2.3.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=0ab20f8e337bea2e6874f372edfd12c0"
+
+SRC_URI[sha256sum] = "2eb426c5710833a05610c22c8766713a1b87e9405e3eca0b7c658375bf7ec810"
+
+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-xmltodict/run-ptest b/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xmltodict/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb b/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb
new file mode 100644
index 0000000000..aadf8b7f44
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xmltodict_0.13.0.bb
@@ -0,0 +1,30 @@
+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[sha256sum] = "341595a488e3e01a85a9d8911d8912fd922ede5fecc4dce437eb4b6c8d037e56"
+
+PYPI_PACKAGE = "xmltodict"
+
+inherit pypi setuptools3 ptest
+
+SRC_URI += " \
+ file://run-ptest \
+"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-core \
+ ${PYTHON_PN}-xml \
+ ${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-xmodem_0.4.7.bb b/meta-python/recipes-devtools/python/python3-xmodem_0.4.7.bb
new file mode 100644
index 0000000000..80fe945552
--- /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} += " \
+ ${PYTHON_PN}-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
index 639f80de91..ccd1cd787d 100644
--- 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
@@ -1,2 +1,17 @@
+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
-require python-xstatic-font-awesome.inc
diff --git a/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb b/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb
deleted file mode 100644
index 76cb702737..0000000000
--- a/meta-python/recipes-devtools/python/python3-xstatic_1.0.1.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-inherit pypi setuptools3
-require python-xstatic.inc
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..df4b7c8885
--- /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 += " \
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..e398fa8ca0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xxhash/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-xxhash_3.2.0.bb b/meta-python/recipes-devtools/python/python3-xxhash_3.2.0.bb
new file mode 100644
index 0000000000..c4d74306ce
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-xxhash_3.2.0.bb
@@ -0,0 +1,21 @@
+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] = "1afd47af8955c5db730f630ad53ae798cf7fae0acb64cebb3cf94d35c47dd088"
+
+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-yamlloader_1.2.2.bb b/meta-python/recipes-devtools/python/python3-yamlloader_1.2.2.bb
new file mode 100644
index 0000000000..9fdba49110
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yamlloader_1.2.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] = "35669fd7b9f8c6b38db861a51701542c42672b46e8ab63253486a8cb8377b687"
+
+inherit pypi python_setuptools_build_meta
+
+RDEPENDS:${PN}:class-target += "\
+ ${PYTHON_PN}-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
new file mode 100644
index 0000000000..476db4b7d0
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yappi/0001-Fix-imports-for-ptests.patch
@@ -0,0 +1,3895 @@
+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>
+---
+Upstream-Status: Pending
+
+ tests/test_asyncio.py | 2 +-
+ tests/test_asyncio_context_vars.py | 2 +-
+ tests/test_functionality.py | 2 +-
+ tests/test_hooks.py | 2 +-
+ tests/test_tags.py | 2 +-
+ 5 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
+
+
+ async def async_sleep(sec):
+--- 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_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/0002-add-3.11-to-the-setup.patch b/meta-python/recipes-devtools/python/python3-yappi/0002-add-3.11-to-the-setup.patch
new file mode 100644
index 0000000000..d40bd2b7cc
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yappi/0002-add-3.11-to-the-setup.patch
@@ -0,0 +1,26 @@
+From 38afdacf526410f970afc58e147c7377c6c7112c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=BCmer=20Cip?= <sumer.cip@platform.sh>
+Date: Fri, 25 Nov 2022 15:58:03 +0300
+Subject: [PATCH 2/2] add 3.11 to the setup
+
+---
+Upstream-Status: Pending
+
+ setup.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/setup.py b/setup.py
+index d006787..96e2a66 100644
+--- a/setup.py
++++ b/setup.py
+@@ -56,6 +56,7 @@ CLASSIFIERS = [
+ 'Programming Language :: Python :: 3.8',
+ 'Programming Language :: Python :: 3.9',
+ 'Programming Language :: Python :: 3.10',
++ 'Programming Language :: Python :: 3.11',
+ 'Programming Language :: Python :: Implementation :: CPython',
+ 'Operating System :: OS Independent',
+ 'Topic :: Software Development :: Libraries',
+--
+2.30.2
+
diff --git a/meta-python/recipes-devtools/python/python3-yappi/run-ptest b/meta-python/recipes-devtools/python/python3-yappi/run-ptest
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yappi/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-yappi_0.98.bb b/meta-python/recipes-devtools/python/python3-yappi_0.98.bb
deleted file mode 100644
index 07da5b6ebd..0000000000
--- a/meta-python/recipes-devtools/python/python3-yappi_0.98.bb
+++ /dev/null
@@ -1,2 +0,0 @@
-require python-yappi.inc
-inherit setuptools3
diff --git a/meta-python/recipes-devtools/python/python3-yappi_1.4.0.bb b/meta-python/recipes-devtools/python/python3-yappi_1.4.0.bb
new file mode 100644
index 0000000000..71e74e86f2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yappi_1.4.0.bb
@@ -0,0 +1,36 @@
+SUMMARY = "Yet Another Python Profiler"
+HOMEPAGE = "https://github.com/sumerc/yappi"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=71c208c9a4fd864385eb69ad4caa3bee"
+
+SRC_URI[sha256sum] = "504b5d8fc7433736cb5e257991d2e7f2946019174f1faec7b2fe947881a17fc0"
+
+SRC_URI += " \
+ file://run-ptest \
+ file://0001-Fix-imports-for-ptests.patch \
+ file://0002-add-3.11-to-the-setup.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-yarl/run-ptest b/meta-python/recipes-devtools/python/python3-yarl/run-ptest
new file mode 100644
index 0000000000..3385d68939
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yarl/run-ptest
@@ -0,0 +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}}'
diff --git a/meta-python/recipes-devtools/python/python3-yarl_1.9.2.bb b/meta-python/recipes-devtools/python/python3-yarl_1.9.2.bb
new file mode 100644
index 0000000000..63700024c2
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-yarl_1.9.2.bb
@@ -0,0 +1,27 @@
+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] = "04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571"
+
+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-zeroconf_0.71.0.bb b/meta-python/recipes-devtools/python/python3-zeroconf_0.71.0.bb
new file mode 100644
index 0000000000..78bdfc6f0c
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-zeroconf_0.71.0.bb
@@ -0,0 +1,14 @@
+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] = "c3040b3ad60f77fd29ca90b013c99aa7a0266eab9e4953106fc6f5fc8ba5641a"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-ifaddr \
+ ${PYTHON_PN}-asyncio \
+ ${PYTHON_PN}-async-timeout \
+"
diff --git a/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb b/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb
deleted file mode 100644
index be11858d34..0000000000
--- a/meta-python/recipes-devtools/python/python3-zopeinterface_4.4.3.bb
+++ /dev/null
@@ -1,4 +0,0 @@
-inherit pypi setuptools3
-require python-zopeinterface.inc
-
-RDEPENDS_${PN}-test += "python3-unittest python3-doctest"
diff --git a/meta-python/recipes-devtools/python/python3-zopeinterface_6.0.bb b/meta-python/recipes-devtools/python/python3-zopeinterface_6.0.bb
new file mode 100644
index 0000000000..264898adb6
--- /dev/null
+++ b/meta-python/recipes-devtools/python/python3-zopeinterface_6.0.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] = "aab584725afd10c710b8f1e6e208dbee2d0ad009f57d674cb9d1b3964037275d"
+
+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/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-reedsolo/python3-reedsolo_1.7.0.bb b/meta-python/recipes-devtools/python3-reedsolo/python3-reedsolo_1.7.0.bb
new file mode 100644
index 0000000000..b6c40921c3
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-reedsolo/python3-reedsolo_1.7.0.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] = "c1359f02742751afe0f1c0de9f0772cc113835aa2855d2db420ea24393c87732"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "python3-core"
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-pypubsub-Replace-deprecated-inspect.getargspec.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-pypubsub-Replace-deprecated-inspect.getargspec.patch
new file mode 100644
index 0000000000..9bec4c5ba6
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/0001-pypubsub-Replace-deprecated-inspect.getargspec.patch
@@ -0,0 +1,65 @@
+Upstream-Status: Backport [https://github.com/wxWidgets/Phoenix/commit/9986a0d5]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From 9986a0d5c24b5d45ddf571d60351f68765a8a9be Mon Sep 17 00:00:00 2001
+From: Scott Talbert <swt@techie.net>
+Date: Mon, 8 Aug 2022 22:35:58 -0400
+Subject: [PATCH] pypubsub: Replace deprecated inspect.getargspec
+
+inspect.getargspec was removed in Python 3.11. This is a backport of:
+https://github.com/schollii/pypubsub/commit/089c7a73f85c76a3aa22e4b10c71db1bf65a8637
+---
+ wx/lib/pubsub/core/callables.py | 23 +++++++++++++++--------
+ 1 file changed, 15 insertions(+), 8 deletions(-)
+
+diff --git a/wx/lib/pubsub/core/callables.py b/wx/lib/pubsub/core/callables.py
+index 65eb1ebe..7e798c54 100644
+--- a/wx/lib/pubsub/core/callables.py
++++ b/wx/lib/pubsub/core/callables.py
+@@ -12,7 +12,7 @@ CallArgsInfo regarding its autoTopicArgName data member.
+
+ """
+
+-from inspect import getargspec, ismethod, isfunction
++from inspect import ismethod, isfunction, signature, Parameter
+
+ from .. import py2and3
+
+@@ -133,19 +133,26 @@ class CallArgsInfo:
+ self.autoTopicArgName = None."""
+
+ #args, firstArgIdx, defaultVals, acceptsAllKwargs
+- (allParams, varParamName, varOptParamName, defaultVals) = getargspec(func)
+- if defaultVals is None:
+- defaultVals = []
+- else:
+- defaultVals = list(defaultVals)
++ allParams = []
++ defaultVals = []
++ varParamName = None
++ varOptParamName = None
++ for argName, param in signature(func).parameters.items():
++ if param.default != Parameter.empty:
++ defaultVals.append(param.default)
++ if param.kind == Parameter.VAR_POSITIONAL:
++ varParamName = argName
++ elif param.kind == Parameter.VAR_KEYWORD:
++ varOptParamName = argName
++ else:
++ allParams.append(argName)
+
+ self.acceptsAllKwargs = (varOptParamName is not None)
+ self.acceptsAllUnnamedArgs = (varParamName is not None)
+-
+ self.allParams = allParams
+- del self.allParams[0:firstArgIdx] # does nothing if firstArgIdx == 0
+
+ self.numRequired = len(self.allParams) - len(defaultVals)
++ assert len(self.allParams) >= len(defaultVals)
+ assert self.numRequired >= 0
+
+ # if listener wants topic, remove that arg from args/defaultVals
+--
+2.34.1
+
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/add-back-option-build-base.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/add-back-option-build-base.patch
new file mode 100644
index 0000000000..a46f3f870a
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/add-back-option-build-base.patch
@@ -0,0 +1,22 @@
+Add back default user options for cross build.
+
+Upstream-Status: Pending [oe specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index a215da7..dccfeb3 100644
+--- a/setup.py
++++ b/setup.py
+@@ -105,7 +105,7 @@ class wx_build(orig_build):
+ Delegate to build.py for doing the actual build, (including wxWidgets)
+ instead of letting distutils do it all.
+ """
+- user_options = [
++ user_options = orig_build.user_options + [
+ ('skip-build', None, 'skip building the C/C++ code (assumes it has already been done)'),
+ ]
+ boolean_options = ['skip-build']
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/wxgtk-fixup-build-scripts.patch b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/wxgtk-fixup-build-scripts.patch
new file mode 100644
index 0000000000..0d65ebb598
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4/wxgtk-fixup-build-scripts.patch
@@ -0,0 +1,53 @@
+Fix issues in build scripts:
+
+* remove hardcode lib path from buildtools/config.py which is not suitable for
+ cross build
+* only build target 'build_py' in setup.py
+* do not override self.install_lib with self.install_platlib which causes
+ package issue when multilib is enabled.
+
+Upstream-Status: Pending [cross build specific]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ buildtools/config.py | 4 ++--
+ setup.py | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/buildtools/config.py b/buildtools/config.py
+index c837e5d..d426005 100644
+--- a/buildtools/config.py
++++ b/buildtools/config.py
+@@ -312,8 +312,8 @@ class Configuration(object):
+ # wx-config doesn't output that for some reason. For now, just
+ # add it unconditionally but we should really check if the lib is
+ # really found there or wx-config should be fixed.
+- if self.WXPORT != 'msw':
+- self.libdirs.append("/usr/X11R6/lib")
++ #if self.WXPORT != 'msw':
++ # self.libdirs.append("/usr/X11R6/lib")
+
+ # Move the various -I, -D, etc. flags we got from the config scripts
+ # into the distutils lists.
+diff --git a/setup.py b/setup.py
+index 64bec4b..fb29253 100644
+--- a/setup.py
++++ b/setup.py
+@@ -130,7 +130,7 @@ class wx_build(orig_build):
+ 'message and the wxWidgets and Phoenix build steps in the future.\n')
+
+ # Use the same Python that is running this script.
+- cmd = ['"{}"'.format(sys.executable), '-u', 'build.py', 'build']
++ cmd = ['"{}"'.format(sys.executable), '-u', 'build.py', 'build_py']
+ cmd = ' '.join(cmd)
+ runcmd(cmd)
+
+@@ -233,7 +233,7 @@ if haveWheel:
+ class wx_install(orig_install):
+ def finalize_options(self):
+ orig_install.finalize_options(self)
+- self.install_lib = self.install_platlib
++ #self.install_lib = self.install_platlib
+
+ def run(self):
+ self.run_command("build")
diff --git a/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.0.bb b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.0.bb
new file mode 100644
index 0000000000..bf87b0a73d
--- /dev/null
+++ b/meta-python/recipes-devtools/python3-wxgtk4/python3-wxgtk4_4.2.0.bb
@@ -0,0 +1,39 @@
+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-pypubsub-Replace-deprecated-inspect.getargspec.patch \
+ file://0001-sip-Conditionally-use-GetAssertStackTrace-under-USE_.patch \
+ "
+SRC_URI[sha256sum] = "663cebc4509d7e5d113518865fe274f77f95434c5d57bc386ed58d65ceed86c7"
+
+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-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
deleted file mode 100644
index 0ee32057cb..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0001-comment-out-selinux.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 7d483c27ac0a23ca3bba7f320918afc40013bd8e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 14:25:52 +0800
-Subject: [PATCH 01/13] comment out selinux
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/flags.py | 5 +++--
- blivet/util.py | 6 +++++-
- 2 files changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/blivet/flags.py b/blivet/flags.py
-index 06822db..b55a93f 100644
---- a/blivet/flags.py
-+++ b/blivet/flags.py
-@@ -20,7 +20,7 @@
- #
-
- import shlex
--import selinux
-+#import selinux
-
-
- class Flags(object):
-@@ -49,7 +49,8 @@ class Flags(object):
- #
- # enable/disable functionality
- #
-- self.selinux = selinux.is_selinux_enabled()
-+ #self.selinux = selinux.is_selinux_enabled()
-+ self.selinux = False
- self.multipath = True
- self.dmraid = True
- self.ibft = True
-diff --git a/blivet/util.py b/blivet/util.py
-index e3e71ce..0cf5188 100644
---- a/blivet/util.py
-+++ b/blivet/util.py
-@@ -4,7 +4,7 @@ import glob
- import itertools
- import os
- import shutil
--import selinux
-+#import selinux
- import subprocess
- import re
- import sys
-@@ -431,6 +431,8 @@ def get_cow_sysfs_path(dev_path, dev_sysfsPath):
- def match_path_context(path):
- """ Return the default SELinux context for the given path. """
- context = None
-+ return context
-+
- try:
- context = selinux.matchpathcon(os.path.normpath(path), 0)[1]
- except OSError as e:
-@@ -455,6 +457,8 @@ def set_file_context(path, context, root=None):
-
- True if successful, False if not.
- """
-+ return False
-+
- if root is None:
- root = '/'
-
---
-2.7.4
-
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 01e71be304..5b388599bf 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,17 +1,17 @@
-From 86744d408b91acdcb086a03d7779fcda152f2ac3 Mon Sep 17 00:00:00 2001
+From 713cf821ebe17f9e1771502a85e0905ea04dafae Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 14:39:56 +0800
-Subject: [PATCH 02/13] run_program support timeout
+Date: Fri, 23 Nov 2018 17:03:58 +0800
+Subject: [PATCH 02/11] run_program support timeout
Upstream-Status: Pending
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
---
- blivet/util.py | 68 +++++++++++++++++++++++++++++++++-------------------------
- 1 file changed, 39 insertions(+), 29 deletions(-)
+ blivet/util.py | 70 ++++++++++++++++++++++++++++++++++------------------------
+ 1 file changed, 41 insertions(+), 29 deletions(-)
diff --git a/blivet/util.py b/blivet/util.py
-index 0cf5188..d4bd9bb 100644
+index 4eac8b9..4f05076 100644
--- a/blivet/util.py
+++ b/blivet/util.py
@@ -158,6 +158,30 @@ class Path(str):
@@ -45,12 +45,12 @@ index 0cf5188..d4bd9bb 100644
def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=False, binary_output=False):
if env_prune is None:
-@@ -180,36 +204,22 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
+@@ -180,35 +204,23 @@ def _run_program(argv, root='/', stdin=None, env_prune=None, stderr_to_stdout=Fa
stderr_dir = subprocess.STDOUT
else:
stderr_dir = subprocess.PIPE
- try:
-- proc = subprocess.Popen(argv,
+- proc = subprocess.Popen(argv, # pylint: disable=subprocess-popen-preexec-fn
- stdin=stdin,
- stdout=subprocess.PIPE,
- stderr=stderr_dir,
@@ -78,7 +78,7 @@ index 0cf5188..d4bd9bb 100644
- program_log.debug("Return code: %d", proc.returncode)
-
- return (proc.returncode, out)
-
++
+ res, out = timeout_command(argv, 10,
+ stdin=stdin,
+ stdout=subprocess.PIPE,
@@ -94,9 +94,10 @@ index 0cf5188..d4bd9bb 100644
+ program_log.info("%s", line)
+
+ return (res, out)
++
+
def run_program(*args, **kwargs):
- return _run_program(*args, **kwargs)[0]
--
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 489fb56bb3..861b2cdd46 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,7 +1,7 @@
-From 923265e04df5920fc99393aa05f584032aa1b383 Mon Sep 17 00:00:00 2001
+From 5d5436dfa3bdde7b4e87ce5a40cbc724199847d6 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/13] support infinit timeout
+Subject: [PATCH 03/11] support infinit timeout
Upstream-Status: Pending
@@ -11,7 +11,7 @@ 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 d4bd9bb..44a2da5 100644
+index 4f05076..7e89949 100644
--- a/blivet/util.py
+++ b/blivet/util.py
@@ -158,6 +158,7 @@ class Path(str):
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch
deleted file mode 100644
index cb837e2863..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0004-Mount-var-volatile-during-install.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From c3959bd00665e24a955bbdbea1ef555e76372f12 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 16:25:16 +0800
-Subject: [PATCH 04/13] Mount /var/volatile during install
-
-The installed system needs /var/volatile clean, otherwise it
-caused systemd's journalctl failed to record boot log.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/osinstall.py | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/blivet/osinstall.py b/blivet/osinstall.py
-index a4f9535..61819c2 100644
---- a/blivet/osinstall.py
-+++ b/blivet/osinstall.py
-@@ -294,6 +294,7 @@ class FSSet(object):
- self._sysfs = None
- self._proc = None
- self._devshm = None
-+ self._volatile = None
- self._usb = None
- self._selinux = None
- self._run = None
-@@ -335,6 +336,12 @@ class FSSet(object):
- return self._devshm
-
- @property
-+ def volatile(self):
-+ if not self._volatile:
-+ self._volatile = NoDevice(fmt=get_format("tmpfs", device="tmpfs", mountpoint="/var/volatile"))
-+ return self._volatile
-+
-+ @property
- def usb(self):
- if not self._usb:
- self._usb = NoDevice(fmt=get_format("usbfs", device="usbfs", mountpoint="/proc/bus/usb"))
-@@ -591,6 +598,7 @@ class FSSet(object):
-
- devices = list(self.mountpoints.values()) + self.swap_devices
- devices.extend([self.dev, self.devshm, self.devpts, self.sysfs,
-+ self.volatile,
- self.proc, self.selinux, self.usb, self.run])
- if isinstance(_platform, EFI):
- devices.append(self.efivars)
-@@ -650,6 +658,7 @@ class FSSet(object):
- """ unmount filesystems, except swap if swapoff == False """
- devices = list(self.mountpoints.values()) + self.swap_devices
- devices.extend([self.dev, self.devshm, self.devpts, self.sysfs,
-+ self.volatile,
- self.proc, self.usb, self.selinux, self.run])
- if isinstance(_platform, EFI):
- devices.append(self.efivars)
---
-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
new file mode 100644
index 0000000000..526a3b1fb2
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0004-fix-new.roots-object-is-not-iterable.patch
@@ -0,0 +1,28 @@
+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
new file mode 100644
index 0000000000..9c5d53b430
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0005-fix-incorrect-timeout-while-system-time-changed.patch
@@ -0,0 +1,48 @@
+From f783b9b00da5df176fcd7927b752f574ca6db319 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
+
+While system time changed by NTP, invoking timeout_command
+breaks with incorrect timeout.
+--------
+|05:40:55,872 INFO program: Running... mount -t ext2 -o
+ defaults,ro /dev/sda2 /mnt/sysimage
+|01:40:55,086 DEBUG program: 10 seconds timeout
+--------
+
+Use numbert count to replace current time count could workaround
+the issue.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/util.py | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/blivet/util.py b/blivet/util.py
+index 7e89949..5571e73 100644
+--- a/blivet/util.py
++++ b/blivet/util.py
+@@ -163,14 +163,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
+- start = datetime.datetime.now()
++ count = 0
+
+ try:
+ proc = subprocess.Popen(argv, *args, **kwargs)
+ while proc.poll() is None:
+ time.sleep(0.1)
+- now = datetime.datetime.now()
+- if timeout != -1 and (now - start).seconds> timeout:
++ count += 1
++ if timeout != -1 and count > timeout*10:
+ 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/0005-update-fstab-by-appending.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch
deleted file mode 100644
index 4f343b7d83..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0005-update-fstab-by-appending.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 386ff899763f8473eb93a7a1578fb7cc4f86f66d Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 8 May 2017 16:28:12 +0800
-Subject: [PATCH 05/13] update fstab by appending
-
-The 'storage.write()' has updated fstab by overwriting
-the original one, we should update fstab by appending
-to keep original tmpfs partitions.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/osinstall.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/osinstall.py b/blivet/osinstall.py
-index 61819c2..afa82db 100644
---- a/blivet/osinstall.py
-+++ b/blivet/osinstall.py
-@@ -728,7 +728,7 @@ class FSSet(object):
- # /etc/fstab
- fstab_path = os.path.normpath("%s/etc/fstab" % get_sysroot())
- fstab = self.fstab()
-- open(fstab_path, "w").write(fstab)
-+ open(fstab_path, "a").write(fstab)
-
- # /etc/crypttab
- crypttab_path = os.path.normpath("%s/etc/crypttab" % get_sysroot())
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch
deleted file mode 100644
index f5ff754d8d..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0006-fix-new.roots-object-is-not-iterable.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From cd92eea8fab37ba6b0c7f03daa5255343dc75716 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 06/13] 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 6a33e9c..79ae91a 100644
---- a/blivet/blivet.py
-+++ b/blivet/blivet.py
-@@ -1761,7 +1761,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/0006-tweak-btrfs-packages.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
new file mode 100644
index 0000000000..2e53a64777
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0006-tweak-btrfs-packages.patch
@@ -0,0 +1,45 @@
+From 8932ae933f2b6acf5e98c9956beff69ae430eed2 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
+
+In oe-cre/yocto, we name btrfs package with btrfs-tools,
+rather than btrfs-progs.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/devices/btrfs.py | 2 +-
+ blivet/formats/fs.py | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py
+index cada940..7e4d4b8 100644
+--- a/blivet/devices/btrfs.py
++++ b/blivet/devices/btrfs.py
+@@ -55,7 +55,7 @@ class BTRFSDevice(StorageDevice):
+
+ """ Base class for BTRFS volume and sub-volume devices. """
+ _type = "btrfs"
+- _packages = ["btrfs-progs"]
++ _packages = ["btrfs-tools"]
+ _external_dependencies = [availability.BLOCKDEV_BTRFS_PLUGIN]
+
+ def __init__(self, *args, **kwargs):
+diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py
+index 81e367f..55e5d57 100644
+--- a/blivet/formats/fs.py
++++ b/blivet/formats/fs.py
+@@ -926,7 +926,7 @@ class BTRFS(FS):
+ _formattable = True
+ _linux_native = True
+ _supported = True
+- _packages = ["btrfs-progs"]
++ _packages = ["btrfs-tools"]
+ _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-fix-incorrect-timeout-while-system-time-changed.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch
deleted file mode 100644
index 6512d8642a..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0007-fix-incorrect-timeout-while-system-time-changed.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 78ee2b9090f9400ccc4f730e674f5ae972740ccb 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 07/13] fix incorrect timeout while system time changed
-
-While system time changed by NTP, invoking timeout_command
-breaks with incorrect timeout.
---------
-|05:40:55,872 INFO program: Running... mount -t ext2 -o
- defaults,ro /dev/sda2 /mnt/sysimage
-|01:40:55,086 DEBUG program: 10 seconds timeout
---------
-
-Use numbert count to replace current time count could workaround
-the issue.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/util.py | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/blivet/util.py b/blivet/util.py
-index 44a2da5..b3c45ac 100644
---- a/blivet/util.py
-+++ b/blivet/util.py
-@@ -163,14 +163,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
-- start = datetime.datetime.now()
-+ count = 0
-
- try:
- proc = subprocess.Popen(argv, *args, **kwargs)
- while proc.poll() is None:
- time.sleep(0.1)
-- now = datetime.datetime.now()
-- if timeout != -1 and (now - start).seconds> timeout:
-+ count += 1
-+ if timeout != -1 and count > timeout*10:
- 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/0007-invoking-mount-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
new file mode 100644
index 0000000000..b2606d7699
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0007-invoking-mount-with-infinite-timeout.patch
@@ -0,0 +1,31 @@
+From f53481dc4a56b8a996628733553e080bb0aafdd7 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
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/util.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/util.py b/blivet/util.py
+index 5571e73..02c8033 100644
+--- a/blivet/util.py
++++ b/blivet/util.py
+@@ -258,7 +258,7 @@ def mount(device, mountpoint, fstype, options=None):
+ makedirs(mountpoint)
+
+ argv = ["mount", "-t", fstype, "-o", options, device, mountpoint]
+- return run_program(argv)
++ return run_program(argv, timeout=-1)
+
+
+ def umount(mountpoint):
+--
+2.7.4
+
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch
deleted file mode 100644
index 121336e4c3..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0008-tweak-btrfs-packages.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 6f661a511eea096c073888c7adb836a9a880b476 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 08/13] tweak btrfs packages
-
-In oe-cre/yocto, we name btrfs package with btrfs-tools,
-rather than btrfs-progs.
-
-Upstream-Status: Inappropriate [oe specific]
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/devices/btrfs.py | 2 +-
- blivet/formats/fs.py | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/blivet/devices/btrfs.py b/blivet/devices/btrfs.py
-index c5cb21f..9d417b2 100644
---- a/blivet/devices/btrfs.py
-+++ b/blivet/devices/btrfs.py
-@@ -55,7 +55,7 @@ class BTRFSDevice(StorageDevice):
-
- """ Base class for BTRFS volume and sub-volume devices. """
- _type = "btrfs"
-- _packages = ["btrfs-progs"]
-+ _packages = ["btrfs-tools"]
- _external_dependencies = [availability.BLOCKDEV_BTRFS_PLUGIN]
-
- def __init__(self, *args, **kwargs):
-diff --git a/blivet/formats/fs.py b/blivet/formats/fs.py
-index a49826f..e8f216d 100644
---- a/blivet/formats/fs.py
-+++ b/blivet/formats/fs.py
-@@ -918,7 +918,7 @@ class BTRFS(FS):
- _formattable = True
- _linux_native = True
- _supported = True
-- _packages = ["btrfs-progs"]
-+ _packages = ["btrfs-tools"]
- _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/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
new file mode 100644
index 0000000000..1e8bcac47e
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0008-use-oe-variable-to-replace-hardcoded-dir.patch
@@ -0,0 +1,38 @@
+From 12e2579333258d1a690f8718e91b0f217078e886 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
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase for python3-blivet 3.4.0.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ setup.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index b745a79..b5b4258 100644
+--- a/setup.py
++++ b/setup.py
+@@ -61,10 +61,10 @@ class blivet_sdist(sdist):
+
+
+ data_files = [
+- ('/etc/dbus-1/system.d', ['dbus/blivet.conf']),
+- ('/usr/share/dbus-1/system-services', ['dbus/com.redhat.Blivet0.service']),
+- ('/usr/libexec', ['dbus/blivetd']),
+- ('/usr/lib/systemd/system', ['dbus/blivet.service'])
++ (os.environ.get('sysconfdir')+'/dbus-1/system.d', ['dbus/blivet.conf']),
++ (os.environ.get('datadir')+'/dbus-1/system-services', ['dbus/com.redhat.Blivet0.service']),
++ (os.environ.get('libexecdir'), ['dbus/blivetd']),
++ (os.environ.get('systemd_system_unitdir'), ['dbus/blivet.service'])
+ ]
+
+
+--
+2.7.4
+
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch
new file mode 100644
index 0000000000..f4778779b6
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-fsck-with-infinite-timeout.patch
@@ -0,0 +1,31 @@
+From 9624b6d0dda40aaecbaf9530be819943575a2ec6 Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Thu, 1 Jun 2017 16:05:27 +0800
+Subject: [PATCH 09/11] invoking fsck with infinite timeout
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/tasks/fsck.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/tasks/fsck.py b/blivet/tasks/fsck.py
+index 5274f13..6e074c4 100644
+--- a/blivet/tasks/fsck.py
++++ b/blivet/tasks/fsck.py
+@@ -77,7 +77,7 @@ class FSCK(task.BasicApplication, fstask.FSTask):
+ raise FSError("\n".join(error_msgs))
+
+ try:
+- rc = util.run_program(self._fsck_command)
++ rc = util.run_program(self._fsck_command, timeout=-1)
+ except OSError as e:
+ raise FSError("filesystem check failed: %s" % e)
+
+--
+2.7.4
+
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch
deleted file mode 100644
index fc084b1295..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0009-invoking-mount-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From a6ac2157ee6793302e23ddbc5e3b249fa7da5b7e Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Wed, 31 Aug 2016 21:30:32 -0400
-Subject: [PATCH 09/13] invoking mount with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/util.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/util.py b/blivet/util.py
-index b3c45ac..9f02b18 100644
---- a/blivet/util.py
-+++ b/blivet/util.py
-@@ -257,7 +257,7 @@ def mount(device, mountpoint, fstype, options=None):
-
- argv = ["mount", "-t", fstype, "-o", options, device, mountpoint]
- try:
-- rc = run_program(argv)
-+ rc = run_program(argv, timeout=-1)
- except OSError:
- raise
-
---
-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
new file mode 100644
index 0000000000..c441acd173
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0010-invoking-mkfs-with-infinite-timeout.patch
@@ -0,0 +1,35 @@
+From 33844f6773a676bd57240954e402ae9a843663a4 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
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+
+Rebase for python3-blivet 3.4.0.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+ blivet/tasks/fsmkfs.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/tasks/fsmkfs.py b/blivet/tasks/fsmkfs.py
+index e4a6aaa8..9730f7e5 100644
+--- a/blivet/tasks/fsmkfs.py
++++ b/blivet/tasks/fsmkfs.py
+@@ -203,7 +203,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
+ options = options or []
+ cmd = self._mkfs_command(options, label, set_uuid, nodiscard)
+ try:
+- ret = util.run_program(cmd)
++ ret = util.run_program(cmd, timeout=-1)
+ except OSError as e:
+ raise FSError(e)
+
+--
+2.7.4
+
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch
deleted file mode 100644
index 45d8fabba6..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0010-use-oe-variable-to-replace-hardcoded-dir.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e07133dbcf3c52e1ddd2f12797dcd16145269273 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 10/13] use oe variable to replace hardcoded dir
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- setup.py | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 4d06a33..a994d06 100644
---- a/setup.py
-+++ b/setup.py
-@@ -61,10 +61,10 @@ class blivet_sdist(sdist):
-
-
- data_files = [
-- ('/etc/dbus-1/system.d', ['dbus/blivet.conf']),
-- ('/usr/share/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']),
-- ('/usr/libexec', ['dbus/blivetd']),
-- ('/usr/lib/systemd/system', ['dbus/blivet.service'])
-+ (os.environ.get('sysconfdir')+'/dbus-1/system.d', ['dbus/blivet.conf']),
-+ (os.environ.get('datadir')+'/dbus-1/system-services', ['dbus/com.redhat.Blivet1.service']),
-+ (os.environ.get('libexecdir'), ['dbus/blivetd']),
-+ (os.environ.get('systemd_system_unitdir'), ['dbus/blivet.service'])
- ]
-
-
---
-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
new file mode 100644
index 0000000000..13c2933f0a
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-dd-with-infinite-timeout.patch
@@ -0,0 +1,31 @@
+From 21ca2b859a49e96a230d55a7866dfc7ed5d1366c 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
+
+This large timeout is needed when running on machines with
+lots of disks, or with slow disks.
+
+Upstream-Status: Pending
+
+Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
+---
+ blivet/devices/partition.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
+index 623e1c9..141d8ad 100644
+--- a/blivet/devices/partition.py
++++ b/blivet/devices/partition.py
+@@ -618,7 +618,7 @@ class PartitionDevice(StorageDevice):
+ cmd = ["dd", "if=/dev/zero", "of=%s" % device, "bs=%d" % bs,
+ "seek=%d" % start, "count=%d" % count]
+ try:
+- util.run_program(cmd)
++ util.run_program(cmd, timeout=-1)
+ except OSError as e:
+ log.error(str(e))
+ finally:
+--
+2.7.4
+
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch
deleted file mode 100644
index c61fe01b94..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0011-invoking-fsck-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From e9ab4376a18cc1bd413c000b036320833eec80d7 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 1 Jun 2017 16:05:27 +0800
-Subject: [PATCH 11/13] invoking fsck with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/tasks/fsck.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/tasks/fsck.py b/blivet/tasks/fsck.py
-index c4214dc..e13ac6b 100644
---- a/blivet/tasks/fsck.py
-+++ b/blivet/tasks/fsck.py
-@@ -77,7 +77,7 @@ class FSCK(task.BasicApplication, fstask.FSTask):
- raise FSError("\n".join(error_msgs))
-
- try:
-- rc = util.run_program(self._fsck_command)
-+ rc = util.run_program(self._fsck_command, timeout=-1)
- except OSError as e:
- raise FSError("filesystem check failed: %s" % e)
-
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch
deleted file mode 100644
index 33bdbe8125..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0012-invoking-mkfs-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 9f5a048181cf29d241d96814e736b8235b3d42b1 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 12/13] invoking mkfs with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/tasks/fsmkfs.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/tasks/fsmkfs.py b/blivet/tasks/fsmkfs.py
-index ad166aa..7bf5075 100644
---- a/blivet/tasks/fsmkfs.py
-+++ b/blivet/tasks/fsmkfs.py
-@@ -170,7 +170,7 @@ class FSMkfs(task.BasicApplication, FSMkfsTask):
- options = options or []
- cmd = self._mkfs_command(options, label, set_uuid)
- try:
-- ret = util.run_program(cmd)
-+ ret = util.run_program(cmd, timeout=-1)
- except OSError as e:
- raise FSError(e)
-
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch
deleted file mode 100644
index 6bdf4ce949..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0013-Revert-Adapt-to-logging-module-name-change.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From bfdaf79a2109ac6aed408f0c94f69766991e60e2 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 27 Jul 2017 14:34:30 +0800
-Subject: [PATCH 13/13] Revert "Adapt to logging module name change"
-
-Upstream-Status: Inappropriate [oe specific, sync with anaconda f26-release]
-
-This reverts commit c367d62a516e541ad28636c8259321f1c53417ce.
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/__init__.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/__init__.py b/blivet/__init__.py
-index 49277cb..a01e487 100644
---- a/blivet/__init__.py
-+++ b/blivet/__init__.py
-@@ -124,7 +124,7 @@ def enable_installer_mode():
- from pyanaconda.constants import ROOT_PATH # pylint: disable=redefined-outer-name,no-name-in-module
- _storage_root = _sysroot = ROOT_PATH
-
-- from pyanaconda.anaconda_logging import program_log_lock
-+ from pyanaconda.anaconda_log import program_log_lock
- util.program_log_lock = program_log_lock
-
- flags.installer_mode = True
---
-2.7.4
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet/0014-invoking-dd-with-infinite-timeout.patch b/meta-python/recipes-extended/python-blivet/python3-blivet/0014-invoking-dd-with-infinite-timeout.patch
deleted file mode 100644
index 12a9e4f544..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet/0014-invoking-dd-with-infinite-timeout.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 92fe7dfd01131c93a9b2013cabf77d5f46900fab 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] invoking dd with infinite timeout
-
-This large timeout is needed when running on machines with
-lots of disks, or with slow disks.
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- blivet/devices/partition.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/blivet/devices/partition.py b/blivet/devices/partition.py
-index a7372fb..8947472 100644
---- a/blivet/devices/partition.py
-+++ b/blivet/devices/partition.py
-@@ -594,7 +594,7 @@ class PartitionDevice(StorageDevice):
- cmd = ["dd", "if=/dev/zero", "of=%s" % device, "bs=%d" % bs,
- "seek=%d" % start, "count=%d" % count]
- try:
-- util.run_program(cmd)
-+ util.run_program(cmd, timeout=-1)
- except OSError as e:
- log.error(str(e))
- finally:
---
-1.8.3.1
-
diff --git a/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb b/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb
deleted file mode 100644
index 045e0f48dc..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivet_2.2.0.bb
+++ /dev/null
@@ -1,49 +0,0 @@
-DESCRIPTION = "A python module for system storage configuration"
-HOMEPAGE = "http://fedoraproject.org/wiki/blivet"
-LICENSE = "LGPLv2+"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "39db82f20d8d4904c0c4dc8912e595177c59e091"
-SRC_URI = "git://github.com/rhinstaller/blivet;branch=2.2-devel \
- file://0001-comment-out-selinux.patch \
- file://0002-run_program-support-timeout.patch\
- file://0003-support-infinit-timeout.patch \
- file://0004-Mount-var-volatile-during-install.patch \
- file://0005-update-fstab-by-appending.patch \
- file://0006-fix-new.roots-object-is-not-iterable.patch \
- file://0007-fix-incorrect-timeout-while-system-time-changed.patch \
- file://0008-tweak-btrfs-packages.patch \
- file://0009-invoking-mount-with-infinite-timeout.patch \
- file://0010-use-oe-variable-to-replace-hardcoded-dir.patch \
- file://0011-invoking-fsck-with-infinite-timeout.patch \
- file://0012-invoking-mkfs-with-infinite-timeout.patch \
- file://0013-Revert-Adapt-to-logging-module-name-change.patch \
- file://0014-invoking-dd-with-infinite-timeout.patch \
-"
-
-UPSTREAM_CHECK_GITTAGREGEX = "blivet-(?P<pver>\d+(\.\d+)+)$"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "systemd"
-
-inherit setuptools3 python3native
-
-RDEPENDS_${PN} = "python3-pykickstart python3-pyudev \
- parted python3-pyparted multipath-tools \
- lsof cryptsetup libblockdev \
- libbytesize \
-"
-
-FILES_${PN} += " \
- ${datadir}/dbus-1/system-services \
-"
-
-inherit systemd
-
-SYSTEMD_AUTO_ENABLE = "disable"
-SYSTEMD_SERVICE_${PN} = "blivet.service"
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
new file mode 100644
index 0000000000..bd57604f26
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivet_3.4.3.bb
@@ -0,0 +1,37 @@
+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-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
new file mode 100644
index 0000000000..c88912bfa0
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivetgui/0001-Use-setuptools-instead-of-distutils-in-setup.py.patch
@@ -0,0 +1,30 @@
+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
new file mode 100644
index 0000000000..3a95859ad7
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivetgui/0002-Use-symbolic-list-add-and-edit-icons.patch
@@ -0,0 +1,56 @@
+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.1.5.bb b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb
deleted file mode 100644
index 28c2565a14..0000000000
--- a/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.1.5.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-DESCRIPTION = "GUI tool for storage configuration using blivet library"
-HOMEPAGE = "https://github.com/rhinstaller/blivet-gui"
-LICENSE = "GPLv2+"
-SECTION = "devel/python"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-S = "${WORKDIR}/git"
-B = "${S}"
-
-SRCREV = "52ae8c000843c05abd1d8749f44bbe2e5d891d3d"
-SRC_URI = "git://github.com/rhinstaller/blivet-gui;branch=master \
-"
-
-inherit distro_features_check
-REQUIRED_DISTRO_FEATURES = "x11 systemd"
-
-inherit setuptools3 python3native
-
-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.3.0.bb b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb
new file mode 100644
index 0000000000..aba127897d
--- /dev/null
+++ b/meta-python/recipes-extended/python-blivet/python3-blivetgui_2.3.0.bb
@@ -0,0 +1,31 @@
+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 gobject-introspection-data"
+
+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-cson/python-cson_git.bb b/meta-python/recipes-extended/python-cson/python-cson_git.bb
deleted file mode 100644
index efb338cf28..0000000000
--- a/meta-python/recipes-extended/python-cson/python-cson_git.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
-# Released under the MIT license (see COPYING.MIT for the terms)
-
-DESCRIPTION = "Python library for CSON (schema-compressed JSON)"
-HOMEPAGE = "https://github.com/gt3389b/python-cson/"
-LICENSE = "MIT"
-SECTION = "devel/python"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=7709d2635e63ab96973055a23c2a4cac"
-
-SRCREV = "f3f2898c44bb16b951d3e9f2fbf6d1c4158edda2"
-SRC_URI = "git://github.com/gt3389b/python-cson.git"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN}_class-native = ""
-DEPENDS_append_class-native = " python-native "
-
-inherit setuptools
-
-BBCLASSEXTEND = "native"
-
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
new file mode 100644
index 0000000000..aba1d8fff3
--- /dev/null
+++ b/meta-python/recipes-extended/python-cson/python3-cson_git.bb
@@ -0,0 +1,28 @@
+# Copyright (C) 2015 Khem Raj <raj.khem@gmail.com>
+# Released under the MIT license (see COPYING.MIT for the terms)
+
+DESCRIPTION = "Python library for CSON (schema-compressed JSON)"
+HOMEPAGE = "https://github.com/gt3389b/python-cson/"
+LICENSE = "MIT"
+SECTION = "devel/python"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=7709d2635e63ab96973055a23c2a4cac"
+
+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} = "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_0.46.bb b/meta-python/recipes-extended/python-meh/python3-meh_0.46.bb
deleted file mode 100644
index 40e2cbd4a7..0000000000
--- a/meta-python/recipes-extended/python-meh/python3-meh_0.46.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 = "http://git.fedorahosted.org/git/?p=python-meh.git"
-LICENSE = "GPLv2+"
-
-inherit setuptools3
-
-S = "${WORKDIR}/git"
-
-SRC_URI = "git://github.com/rhinstaller/python-meh.git;protocol=https;branch=master \
-"
-SRCREV = "bb1156728a4f76e5e3638ab20b9454a1568a99db"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-FILES_${PN} += "${datadir}/*"
-
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/python-pyephem_3.7.6.0.bb b/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb
deleted file mode 100644
index e28ce6ccc8..0000000000
--- a/meta-python/recipes-extended/python-pyephem/python-pyephem_3.7.6.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "PyEphem astronomical calculations"
-HOMEPAGE = "http://rhodesmill.org/pyephem/"
-
-LICENSE = "LGPL-3.0"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f288303760f6e5ceaafe3aaa32186ab1"
-
-SRC_URI[md5sum] = "405a109f3017251ecd8c2890d850f649"
-SRC_URI[sha256sum] = "7a4c82b1def2893e02aec0394f108d24adb17bd7b0ca6f4bc78eb7120c0212ac"
-
-PYPI_PACKAGE = "ephem"
-
-inherit pypi setuptools
-
-RDEPENDS_${PN} += "\
- ${PYTHON_PN}-datetime \
- ${PYTHON_PN}-math \
- "
diff --git a/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.4.bb b/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.4.bb
new file mode 100644
index 0000000000..8850b79e8c
--- /dev/null
+++ b/meta-python/recipes-extended/python-pyephem/python3-pyephem_4.1.4.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] = "73a59f0d2162d1624535c3c3b75f956556bdbb2055eaf554a7bef147d3f9c760"
+
+PYPI_PACKAGE = "ephem"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} += "\
+ ${PYTHON_PN}-datetime \
+ ${PYTHON_PN}-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 617699db07..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
@@ -1,7 +1,7 @@
-From d0d8890b5ef74c315381c9e1cff4b1d32892116b Mon Sep 17 00:00:00 2001
+From 3540ddcc7448dc784b65c74424c8a25132cb8534 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 1 Jun 2017 15:07:36 +0800
-Subject: [PATCH 1/4] support authentication for kickstart
+Date: Tue, 31 Jul 2018 17:24:47 +0800
+Subject: [PATCH] support authentication for kickstart
While download kickstart file from web server,
we support basic/digest authentication.
@@ -9,34 +9,33 @@ 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 | 19 +++++++++++++++++++
+ pykickstart/errors.py | 17 +++++++++++++++++
pykickstart/load.py | 32 +++++++++++++++++++++++++++-----
pykickstart/parser.py | 4 ++--
- 3 files changed, 48 insertions(+), 7 deletions(-)
+ 3 files changed, 46 insertions(+), 7 deletions(-)
diff --git a/pykickstart/errors.py b/pykickstart/errors.py
-index b76e84c..fd81bc8 100644
+index 8294f59..3d20bf8 100644
--- a/pykickstart/errors.py
+++ b/pykickstart/errors.py
-@@ -35,6 +35,10 @@ It also exports several exception classes:
-
+@@ -32,6 +32,9 @@ This module exports several exception classes:
KickstartVersionError - An exception for errors relating to unsupported
syntax versions.
-+
+
+ KickstartAuthError - An exception for errors relating to authentication
+ failed while downloading kickstart from web server
+
- """
- import warnings
-
-@@ -103,3 +107,18 @@ class KickstartVersionError(KickstartError):
+ And some warning classes:
- def __str__ (self):
- return self.value
+ KickstartWarning - A generic warning class.
+@@ -125,3 +128,17 @@ class KickstartDeprecationWarning(KickstartParseWarning, DeprecationWarning):
+ """A class for warnings occurring during parsing related to using deprecated
+ commands and options.
+ """
+
+class KickstartAuthError(KickstartError):
+ """An exception for errors relating to authentication failed while
@@ -44,34 +43,31 @@ index b76e84c..fd81bc8 100644
+ """
+ def __init__(self, msg):
+ """Create a new KickstartAuthError exception instance with the
-+ descriptive message val. val should be the return value of
++ descriptive message val. val should be the return value of
+ formatErrorMsg.
+ """
+ KickstartError.__init__(self, msg)
+
+ def __str__(self):
+ return self.value
-+
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index 1f69b9c..0f5741b 100644
+index eb76b65..f51cf08 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
-@@ -18,10 +18,13 @@
+@@ -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
- import six
-from pykickstart.errors import KickstartError
+from pykickstart.errors import KickstartError, KickstartAuthError
from pykickstart.i18n import _
from requests.exceptions import SSLError, RequestException
-@@ -29,7 +32,7 @@ _is_url = lambda location: '://' in location # RFC 3986
+@@ -28,7 +30,7 @@ is_url = lambda location: '://' in location # RFC 3986
SSL_VERIFY = True
@@ -80,19 +76,20 @@ index 1f69b9c..0f5741b 100644
'''Load a destination URL or file into a string.
Type of input is inferred automatically.
-@@ -40,7 +43,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)
-@@ -71,13 +74,32 @@ 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):
+def _get_auth(location, user=None, passwd=None):
+
+ auth = None
@@ -101,7 +98,7 @@ index 1f69b9c..0f5741b 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]
@@ -109,15 +106,13 @@ index 1f69b9c..0f5741b 100644
+ auth = HTTPBasicAuth(user, passwd)
+ elif auth_type == "Digest":
+ auth=HTTPDigestAuth(user, passwd)
-
--def _load_url(location):
++
+ return auth
+
+def _load_url(location, user=None, passwd=None):
'''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)
@@ -125,27 +120,27 @@ index 1f69b9c..0f5741b 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 d2b0fbe..26b5de9 100644
+index 7edf8aa..46c5299 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -773,7 +773,7 @@ class KickstartParser(object):
+@@ -790,7 +790,7 @@ class KickstartParser(object):
i = PutBackIterator(s.splitlines(True) + [""])
- self._stateMachine (i)
+ self._stateMachine(i)
- def readKickstart(self, f, reset=True):
+ def readKickstart(self, f, reset=True, username=None, password=None):
"""Process a kickstart file, given by the filename f."""
if reset:
self._reset()
-@@ -794,7 +794,7 @@ class KickstartParser(object):
+@@ -811,7 +811,7 @@ class KickstartParser(object):
self.currentdir[self._includeDepth] = cd
try:
- s = load_to_str(f)
+ s = load_to_str(f, user=username, passwd=password)
except KickstartError as e:
- raise KickstartError(formatErrorMsg(0, msg=_("Unable to open input kickstart file: %s") % str(e)))
+ raise KickstartError(_("Unable to open input kickstart file: %s") % str(e), lineno=0)
--
-2.7.4
+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 cb21235460..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,6 +1,6 @@
-From e6e747b883114bfad51ad93f823e65f5a4d6438a Mon Sep 17 00:00:00 2001
+From 62fdead139edb0f29b2f222efcb8f39be15b057e Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 1 Jun 2017 15:12:29 +0800
+Date: Mon, 30 Jul 2018 15:47:13 +0800
Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
support https without certification
@@ -8,21 +8,22 @@ Subject: [PATCH 2/4] pykickstart/parser.py: add lock for readKickstart and
- Support to download kickstart file through https without certification
-Upstream-Status: Inappropriate[oe specific]
-
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 | 24 ++++++++++++++++++++++++
- 2 files changed, 25 insertions(+), 1 deletion(-)
+ pykickstart/parser.py | 18 ++++++++++++++++++
+ 2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index 0f5741b..48c8276 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
@@ -30,38 +31,32 @@ index 0f5741b..48c8276 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 26b5de9..264ba05 100644
+index b95ba90..a55a9a3 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -57,6 +57,26 @@ STATE_COMMANDS = "commands"
+@@ -51,6 +51,20 @@ from pykickstart.i18n import _
+ STATE_END = "end"
+ STATE_COMMANDS = "commands"
- ver = version.DEVEL
-
-+import logging
-+log = logging.getLogger("anaconda")
-+
-+import inspect
+import threading
+_private_ks_lock = threading.RLock()
+
+class KsLock(object):
+ def __enter__(self):
-+ log.info("%s %s" % (self.__class__.__name__, inspect.stack()[0][3]))
+ _private_ks_lock.acquire()
+ return _private_ks_lock
+
+ def __exit__(self, exc_type, exc_val, exc_tb):
-+ log.info("%s %s" % (self.__class__.__name__, inspect.stack()[0][3]))
+ _private_ks_lock.release()
+
+
+_ks_lock = KsLock()
+
- def _preprocessStateMachine (lineIter):
+ def _preprocessStateMachine(lineIter):
l = None
lineno = 0
-@@ -774,6 +794,10 @@ class KickstartParser(object):
- self._stateMachine (i)
+@@ -791,6 +805,10 @@ class KickstartParser(object):
+ self._stateMachine(i)
def readKickstart(self, f, reset=True, username=None, password=None):
+ with _ks_lock:
@@ -72,5 +67,5 @@ index 26b5de9..264ba05 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 9fb25fb18f..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
@@ -1,4 +1,4 @@
-From be6012a5dd49ae5e8ac035654ab1c6f37f0dc8f4 Mon Sep 17 00:00:00 2001
+From 44226393812399c61de9ca9281efa002ad4f4c01 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
Date: Thu, 1 Jun 2017 15:15:15 +0800
Subject: [PATCH 3/4] comment out sections shutdown and environment in
@@ -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>
@@ -17,10 +17,10 @@ fixup! add comments of shutdown for user
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/pykickstart/commands/reboot.py b/pykickstart/commands/reboot.py
-index 88799ba..2d0cea9 100644
+index 75a6d916..edfe83ff 100644
--- a/pykickstart/commands/reboot.py
+++ b/pykickstart/commands/reboot.py
-@@ -41,6 +41,9 @@ class FC3_Reboot(KickstartCommand):
+@@ -43,6 +43,9 @@ class FC3_Reboot(KickstartCommand):
elif self.action == KS_SHUTDOWN:
retval += "# Shutdown after installation\nshutdown"
retval += self._getArgsAsStr() + "\n"
@@ -31,18 +31,18 @@ index 88799ba..2d0cea9 100644
return retval
diff --git a/pykickstart/parser.py b/pykickstart/parser.py
-index 264ba05..b3f33d7 100644
+index bc59131b..b2d09d45 100644
--- a/pykickstart/parser.py
+++ b/pykickstart/parser.py
-@@ -383,7 +383,7 @@ class Packages(KickstartObject):
+@@ -428,7 +428,7 @@ class Packages(KickstartObject):
if not self.default:
if self.environment:
- pkgs += "@^%s\n" % self.environment
+ pkgs += "#@^%s\n" % self.environment
- grps = self.groupList
- grps.sort()
+ grps = self.groupList
+ grps.sort()
--
2.7.4
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 70254f6fda..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
@@ -1,43 +1,42 @@
-From c0e63f0d3c09bdabb0ad2c88b7cc73e7618dd86a Mon Sep 17 00:00:00 2001
+From 737e9a7c11233183f48ce6c83d38b504c8ffed12 Mon Sep 17 00:00:00 2001
From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Thu, 15 Jun 2017 17:35:33 +0800
-Subject: [PATCH 4/4] load.py: retry to invoke request with timeout
+Date: Mon, 30 Jul 2018 15:52:21 +0800
+Subject: [PATCH] load.py: retry to invoke request with timeout
While networkless, use request to fetch kickstart file from
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 | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
+ pykickstart/load.py | 31 +++++++++++++++++++++++++++++++
+ 1 file changed, 31 insertions(+)
diff --git a/pykickstart/load.py b/pykickstart/load.py
-index 48c8276..74b266b 100644
+index 58faba6..e856c8d 100644
--- a/pykickstart/load.py
+++ b/pykickstart/load.py
-@@ -21,6 +21,7 @@ import requests
+@@ -20,12 +20,16 @@
+ import requests
from requests.auth import HTTPDigestAuth
from requests.auth import HTTPBasicAuth
-
+import time
import shutil
- import six
-@@ -28,6 +29,9 @@ from pykickstart.errors import KickstartError, KickstartAuthError
+ from pykickstart.errors import KickstartError, KickstartAuthError
from pykickstart.i18n import _
from requests.exceptions import SSLError, RequestException
+import logging
-+log = logging.getLogger("anaconda")
++log = logging.getLogger("anaconda.main")
+
- _is_url = lambda location: '://' in location # RFC 3986
+ is_url = lambda location: '://' in location # RFC 3986
SSL_VERIFY = False
-@@ -74,6 +78,29 @@ def load_to_file(location, destination):
+@@ -71,6 +75,29 @@ def load_to_file(location, destination):
_copy_file(location, destination)
return destination
@@ -67,10 +66,11 @@ index 48c8276..74b266b 100644
def _get_auth(location, user=None, passwd=None):
auth = None
-@@ -96,6 +123,9 @@ 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'''
-
++
+ if not _access_url(location):
+ raise KickstartError(_("Connection %s failed" % location))
+
@@ -78,5 +78,5 @@ index 48c8276..74b266b 100644
try:
--
-2.7.4
+2.34.1
diff --git a/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch b/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch
deleted file mode 100644
index 3d614955b2..0000000000
--- a/meta-python/recipes-extended/python-pykickstart/files/0005-tweak-shebang-to-python3.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 8a1f598223bd4cbcc877eb2aba3f5586c75c9d14 Mon Sep 17 00:00:00 2001
-From: Hongxu Jia <hongxu.jia@windriver.com>
-Date: Mon, 21 Aug 2017 10:05:06 +0800
-Subject: [PATCH] tweak shebang to python3
-
-Upstream-Status: Pending
-
-Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
----
- tools/ksvalidator.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/ksvalidator.py b/tools/ksvalidator.py
-index d6051d5..c3682e8 100755
---- a/tools/ksvalidator.py
-+++ b/tools/ksvalidator.py
-@@ -1,4 +1,4 @@
--#!/usr/bin/python
-+#!/usr/bin/python3
- #
- # Chris Lumens <clumens@redhat.com>
- #
---
-1.8.3.1
-
diff --git a/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb b/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb
deleted file mode 100644
index 8c13f3ed14..0000000000
--- a/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_2.35.bb
+++ /dev/null
@@ -1,26 +0,0 @@
-DESCRIPTION = "A python library for manipulating kickstart files"
-HOMEPAGE = "http://fedoraproject.org/wiki/pykickstart"
-LICENSE = "GPLv2+"
-
-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=pykickstart-2 \
- 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 \
- file://0005-tweak-shebang-to-python3.patch \
- "
-SRCREV = "b2787a818540e678c2f9c5dca0c6bbd65b8b55e5"
-
-UPSTREAM_CHECK_GITTAGREGEX = "r(?P<pver>\d+(\.\d+)+(-\d+)*)"
-
-inherit setuptools3
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..3c6c478328
--- /dev/null
+++ b/meta-python/recipes-extended/python-pykickstart/python3-pykickstart_3.48.bb
@@ -0,0 +1,27 @@
+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
+PIP_INSTALL_PACKAGE = "pykickstart"
+PIP_INSTALL_DIST_PATH = "${S}/dist"
diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted.inc b/meta-python/recipes-extended/python-pyparted/python-pyparted.inc
deleted file mode 100644
index a0ec02817a..0000000000
--- a/meta-python/recipes-extended/python-pyparted/python-pyparted.inc
+++ /dev/null
@@ -1,22 +0,0 @@
-DESCRIPTION = "pyparted is a set of Python modules that provide Python programmers \
-an interface to libparted, the GNU parted library for disk partitioning and \
-filesystem manipulation."
-SUMMARY = "Python bindings for libparted"
-HOMEPAGE = "https://github.com/rhinstaller/pyparted"
-LICENSE = "GPL-2.0+"
-LIC_FILES_CHKSUM = "\
- file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
- file://src/_pedmodule.c;beginline=10;endline=22;md5=9e53304db812b80d0939e11bb69dcab2 \
-"
-DEPENDS += "parted"
-
-# upstream only publishes releases in github archives which are discouraged
-SRCREV = "1fdb15120f35f5da1dc7ec116522f0c796a8376a"
-SRC_URI = "git://github.com/rhinstaller/pyparted.git;protocol=https"
-
-S = "${WORKDIR}/git"
-
-RDEPENDS_${PN}_class-target += " \
- parted (>= 2.3) \
-"
-RDEPENDS_${PN}_class-native = ""
diff --git a/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.1.bb b/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.1.bb
deleted file mode 100644
index 7d00fd7d93..0000000000
--- a/meta-python/recipes-extended/python-pyparted/python-pyparted_3.11.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require python-pyparted.inc
-
-PV = "3.10.7+git${SRCPV}"
-
-inherit distutils
-
-RDEPENDS_${PN} += "python-stringold python-codecs python-math python-subprocess"
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.1.bb b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.1.bb
deleted file mode 100644
index 4d6f97b59e..0000000000
--- a/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.11.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require python-pyparted.inc
-
-PV = "3.10.7+git${SRCPV}"
-
-inherit distutils3
-
-RDEPENDS_${PN} += "python3-stringold python3-codecs python3-math"
-RDEPENDS_${PN}_class-native = ""
-
-BBCLASSEXTEND = "native"
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
new file mode 100644
index 0000000000..7a0d3987d2
--- /dev/null
+++ b/meta-python/recipes-extended/python-pyparted/python3-pyparted_3.12.0.bb
@@ -0,0 +1,27 @@
+DESCRIPTION = "pyparted is a set of Python modules that provide Python programmers \
+an interface to libparted, the GNU parted library for disk partitioning and \
+filesystem manipulation."
+SUMMARY = "Python bindings for libparted"
+HOMEPAGE = "https://github.com/rhinstaller/pyparted"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "\
+ file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \
+ file://src/_pedmodule.c;beginline=10;endline=22;md5=9e53304db812b80d0939e11bb69dcab2 \
+"
+
+SRC_URI[sha256sum] = "da985e116beb733371feb605b174db9eec8bd0eedffc8f739f8e603f51b521e7"
+
+inherit pkgconfig pypi setuptools3
+
+DEPENDS += "parted"
+
+RDEPENDS:${PN}:class-target += " \
+ parted (>= 2.3) \
+ python3-codecs \
+ python3-math \
+ python3-numbers \
+ python3-stringold \
+"
+RDEPENDS:${PN}:class-native = ""
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/python-rich/python3-rich_13.4.2.bb b/meta-python/recipes-extended/python-rich/python3-rich_13.4.2.bb
new file mode 100644
index 0000000000..e7ddf70983
--- /dev/null
+++ b/meta-python/recipes-extended/python-rich/python3-rich_13.4.2.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] = "d653d6bccede5844304c605d5aac802c7cf9621efd700b46c7ec2b51ea914898"
+
+inherit pypi python_poetry_core
+
+RDEPENDS:${PN} = "${PYTHON_PN}-pygments"
diff --git a/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.7.0.bb b/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.7.0.bb
new file mode 100644
index 0000000000..03c4f2f40e
--- /dev/null
+++ b/meta-python/recipes-extended/python3-portalocker/python3-portalocker_2.7.0.bb
@@ -0,0 +1,16 @@
+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] = "032e81d534a88ec1736d03f780ba073f047a06c478b06e2937486f334e955c51"
+
+inherit pypi setuptools3
+
+BBCLASSEXTEND = "native nativesdk"
+
+RDEPENDS:${PN} += " \
+ ${PYTHON_PN}-fcntl \
+ ${PYTHON_PN}-logging \
+"
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
new file mode 100644
index 0000000000..fde1029c74
--- /dev/null
+++ b/meta-python/recipes-extended/python3-pydot/python3-pydot_1.4.2.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] = "248081a39bcb56784deb018977e428605c1c758f10897a339fce1dd728ff007d"
+
+inherit pypi setuptools3
+
+RDEPENDS:${PN} = "graphviz python3-pyparsing"
diff --git a/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.1.bb b/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.1.bb
new file mode 100644
index 0000000000..1ab1bde449
--- /dev/null
+++ b/meta-python/recipes-extended/pywbem/python3-pywbem_1.6.1.bb
@@ -0,0 +1,53 @@
+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] = "abdbd6ce08b6c597cdd6c7730e6b49a842d913f2f6b3cc62b585c58ec3ee7945"
+
+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"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb b/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb
deleted file mode 100644
index 7f1986e516..0000000000
--- a/meta-python/recipes-extended/pywbem/pywbem_0.8.0.bb
+++ /dev/null
@@ -1,36 +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.sf.net/"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://pywbem/LICENSE.txt;md5=fbc093901857fcd118f065f900982c24"
-SECTION = "Development/Libraries"
-DEPENDS = "python-m2crypto-native python-typing-native"
-SRC_URI = "http://jaist.dl.sourceforge.net/project/${BPN}/${BPN}/${BP}/${BP}-dev.r704.zip"
-SRC_URI[md5sum] = "84072451dcdd1aa9ee82363848faf7ad"
-SRC_URI[sha256sum] = "898035866d3cc741bbcd62c4ac26e633ad07b7c11d89db2472b9f923f3fd3ed8"
-
-S = "${WORKDIR}/${BP}-dev"
-
-inherit setuptools python-dir
-
-do_install_append() {
- mv ${D}${bindir}/wbemcli.py ${D}${bindir}/pywbemcli
- mv ${D}${bindir}/mof_compiler.py ${D}${bindir}/mofcomp
-
- rm ${D}${libdir}/python2.7/site-packages/${BPN}/wbemcli.py*
- rm ${D}${libdir}/python2.7/site-packages/${BPN}/mof_compiler.py*
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb b/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.bb
new file mode 100644
index 0000000000..ab631b256f
--- /dev/null
+++ b/meta-python/recipes-extended/pywbemtools/python3-pywbemtools_1.2.0.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] = "921fb57ea2ae3ae2806e18895bb0457697f27221b345c8b05afa4cb304a7f939"
+
+inherit pypi setuptools3
+
+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/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_git.bb b/meta-python/recipes-extended/tuna/tuna_git.bb
new file mode 100644
index 0000000000..a493412403
--- /dev/null
+++ b/meta-python/recipes-extended/tuna/tuna_git.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 = "0681906e75e1c8166126bbfc2f3055e7507bfcb5"
+
+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
new file mode 100644
index 0000000000..0bf1ff14a8
--- /dev/null
+++ b/meta-python/recipes-networking/python/python3-ldap_3.4.3.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] = "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} = " \
+ 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 7b60630700..0000000000
--- a/meta-webserver/README
+++ /dev/null
@@ -1,68 +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://github.com/openembedded/oe-core.git
-subdirectory: meta
-branch: master
-revision: HEAD
-
-For some recipes, the meta-oe layer is required:
-
-URI: git://github.com/openembedded/meta-oe.git
-subdirectory: meta-oe
-branch: master
-revision: HEAD
-
-
-
-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..d23f6cc65c
--- /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 f205ef23b1..938090b0e1 100644
--- a/meta-webserver/conf/layer.conf
+++ b/meta-webserver/conf/layer.conf
@@ -9,7 +9,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "webserver"
BBFILE_PATTERN_webserver := "^${LAYERDIR}/"
-BBFILE_PRIORITY_webserver = "6"
+BBFILE_PRIORITY_webserver = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
@@ -17,10 +17,11 @@ LAYERVERSION_webserver = "1"
LAYERDEPENDS_webserver = "core openembedded-layer"
-LAYERSERIES_COMPAT_webserver = "sumo"
+LAYERSERIES_COMPAT_webserver = "mickledore"
LICENSE_PATH += "${LAYERDIR}/licenses"
SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
phpmyadmin->bash \
+ phpmyadmin->php \
"
diff --git a/meta-webserver/recipes-core/images/meta-webserver-image-base.bb b/meta-webserver/recipes-core/images/meta-webserver-image-base.bb
new file mode 100644
index 0000000000..a4ce10f674
--- /dev/null
+++ b/meta-webserver/recipes-core/images/meta-webserver-image-base.bb
@@ -0,0 +1,7 @@
+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
new file mode 100644
index 0000000000..ce4f8a0387
--- /dev/null
+++ b/meta-webserver/recipes-core/images/meta-webserver-image.bb
@@ -0,0 +1,3 @@
+require meta-webserver-image-base.bb
+
+IMAGE_INSTALL += "packagegroup-meta-webserver"
diff --git a/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb b/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
new file mode 100644
index 0000000000..e775cdb50e
--- /dev/null
+++ b/meta-webserver/recipes-core/packagesgroups/packagegroup-meta-webserver.bb
@@ -0,0 +1,49 @@
+SUMMARY = "Meta-webserver packagegroups"
+
+inherit packagegroup
+
+PROVIDES = "${PACKAGES}"
+PACKAGES = ' \
+ packagegroup-meta-webserver \
+ packagegroup-meta-webserver-http \
+ packagegroup-meta-webserver-php \
+ packagegroup-meta-webserver-support \
+ packagegroup-meta-webserver-webadmin \
+'
+
+RDEPENDS:packagegroup-meta-webserver = "\
+ packagegroup-meta-webserver-http \
+ packagegroup-meta-webserver-php \
+ packagegroup-meta-webserver-support \
+ packagegroup-meta-webserver-webadmin \
+"
+
+RDEPENDS:packagegroup-meta-webserver-http = "\
+ apache-websocket \
+ apache2 \
+ ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "cherokee", "", d)} \
+ hiawatha \
+ monkey \
+ nginx \
+ nginx \
+ sthttpd \
+"
+
+RDEPENDS:packagegroup-meta-webserver-php = "\
+ phpmyadmin \
+ xdebug \
+"
+
+RDEPENDS:packagegroup-meta-webserver-support = "\
+ spawn-fcgi \
+ fcgi \
+ fcgiwrap \
+"
+
+RDEPENDS:packagegroup-meta-webserver-webadmin = "\
+ cockpit \
+ webmin \
+ netdata \
+"
+
+EXCLUDE_FROM_WORLD = "1"
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 0beb3ed04a..040788609e 100644
--- a/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
+++ b/meta-webserver/recipes-httpd/apache-mod/apache-websocket_git.bb
@@ -1,33 +1,32 @@
SUMMARY = "Websocket module for Apache web server"
DESCRIPTION = "Process requests using the WebSocket protocol (RFC 6455)"
-HOMEPAGE = "https://github.com/jchampio/${PN}/"
+HOMEPAGE = "https://github.com/jchampio/apache-websocket/"
SECTION = "net"
LICENSE = "Apache-2.0"
inherit autotools-brokensep pkgconfig
DEPENDS = "apache2 apache2-native pbzip2-native"
-RDEPENDS_${PN} += "apache2"
+RDEPENDS:${PN} += "apache2"
# Original (github.com/disconnect/apache-websocket) is dead since 2012, the
# fork contains patches from the modules ML and fixes CVE compliance issues
-SRC_URI = "git://github.com/jchampio/apache-websocket.git"
+SRC_URI = "git://github.com/jchampio/apache-websocket.git;branch=master;protocol=https"
-SRCREV = "f5230d8c520dccf8631da94bf90c23f3c1100dcc"
+SRCREV = "0ee34c77fc78ff08fd548706300b80a7bc7874e4"
-PV = "0.1.1"
+PV = "0.1.2+git${SRCPV}"
S = "${WORKDIR}/git"
LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl \
- LIBTOOL=${STAGING_DIR_TARGET}${bindir_crossscripts}/${HOST_SYS}-libtool"
+EXTRA_OECONF = "APACHECTL=${STAGING_DIR_TARGET}${sbindir}/apachectl"
do_install() {
- install -d ${D}${libdir}/apache2/modules/
- install ${B}/.libs/mod_websocket.so ${D}${libdir}/apache2/modules/
+ install -d ${D}${libexecdir}/apache2/modules
+ install -m 755 ${B}/.libs/mod_websocket.so ${D}${libexecdir}/apache2/modules
}
-FILES_${PN} += " ${libdir}/apache2/modules/* "
-FILES_${PN}-dbg += " ${libdir}/apache2/modules/.debug/* "
+FILES:${PN} += " ${libexecdir}/apache2/modules/* "
+FILES:${PN}-dbg += " ${libexecdir}/apache2/modules/.debug/* "
diff --git a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb b/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb
deleted file mode 100644
index 36f073c85b..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2-native_2.4.29.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
-extensible web server."
-SUMMARY = "Apache HTTP Server"
-HOMEPAGE = "http://httpd.apache.org/"
-DEPENDS = "expat-native pcre-native apr-native apr-util-native"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-
-inherit autotools pkgconfig native
-
-SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
- file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
- "
-
-S = "${WORKDIR}/httpd-${PV}"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8"
-SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407"
-SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00"
-
-EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
- --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \
- --prefix=${prefix} --datadir=${datadir}/apache2 \
- "
-
-do_install () {
- install -d ${D}${bindir} ${D}${libdir}
- cp server/gen_test_char ${D}${bindir}
- install -m 755 support/apxs ${D}${bindir}/
- install -m 755 httpd ${D}${bindir}/
- install -d ${D}${datadir}/apache2/build
- cp ${S}/build/*.mk ${D}${datadir}/apache2/build
- cp build/*.mk ${D}${datadir}/apache2/build
- cp ${S}/build/instdso.sh ${D}${datadir}/apache2/build
-
- install -d ${D}${includedir}/apache2
- cp ${S}/include/* ${D}${includedir}/apache2
- cp include/* ${D}${includedir}/apache2
- cp ${S}/os/unix/os.h ${D}${includedir}/apache2
- cp ${S}/os/unix/unixd.h ${D}${includedir}/apache2
-
- cp support/envvars-std ${D}${bindir}/envvars
- chmod 755 ${D}${bindir}/envvars
-}
-
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch b/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch
new file mode 100644
index 0000000000..50775be533
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0001-configure-use-pkg-config-for-PCRE-detection.patch
@@ -0,0 +1,52 @@
+From ba9015386cbc044e111d7c266f13e2be045e4bf1 Mon Sep 17 00:00:00 2001
+From: Koen Kooi <koen.kooi@linaro.org>
+Date: Tue, 17 Jun 2014 09:10:57 +0200
+Subject: [PATCH] configure: use pkg-config for PCRE detection
+
+Upstream-Status: Inappropriate [embedded specific]
+
+Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
+---
+ configure.in | 26 +++++---------------------
+ 1 file changed, 5 insertions(+), 21 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 38c1d0a..c799aec 100644
+--- a/configure.in
++++ b/configure.in
+@@ -221,27 +221,11 @@ else if which $with_pcre 2>/dev/null; then :; else
+ fi
+ fi
+
+-AC_CHECK_TARGET_TOOLS(PCRE_CONFIG, [pcre2-config pcre-config],
+- [`which $with_pcre 2>/dev/null`], $with_pcre)
+-
+-if test "x$PCRE_CONFIG" != "x"; then
+- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
+- AC_MSG_ERROR([Did not find working script at $PCRE_CONFIG])
+- fi
+- case `$PCRE_CONFIG --version` in
+- [1[0-9].*])
+- AC_DEFINE(HAVE_PCRE2, 1, [Detected PCRE2])
+- ;;
+- [[1-5].*])
+- AC_MSG_ERROR([Need at least pcre version 6.0])
+- ;;
+- esac
+- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG])
+- APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`])
+- APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs8 2>/dev/null || $PCRE_CONFIG --libs`])
+-else
+- AC_MSG_ERROR([pcre(2)-config for libpcre not found. PCRE is required and available from http://pcre.org/])
+-fi
++PKG_CHECK_MODULES([PCRE], [libpcre], [
++ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library])
++], [
++ AC_MSG_ERROR([$PCRE_PKG_ERRORS])
++])
+ APACHE_SUBST(PCRE_LIBS)
+
+ AC_MSG_NOTICE([])
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0001-make_exports.awk-not-expose-the-path.patch b/meta-webserver/recipes-httpd/apache2/apache2/0001-make_exports.awk-not-expose-the-path.patch
new file mode 100644
index 0000000000..78f23f0f2d
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0001-make_exports.awk-not-expose-the-path.patch
@@ -0,0 +1,32 @@
+From 5b5eae9cdf3bae91756c717349f2f33a31888f24 Mon Sep 17 00:00:00 2001
+From: Mingli Yu <mingli.yu@windriver.com>
+Date: Wed, 3 Aug 2022 12:35:16 +0800
+Subject: [PATCH] make_exports.awk: not expose the path
+
+Don't print the full path in the comment line.
+
+Upstream-Status: Inappropriate [oe specific]
+
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
+---
+ build/make_exports.awk | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/build/make_exports.awk b/build/make_exports.awk
+index 1cf0568..44d93c5 100644
+--- a/build/make_exports.awk
++++ b/build/make_exports.awk
+@@ -47,7 +47,9 @@ function push(line) {
+
+ function do_output() {
+ printf("/*\n")
+- printf(" * %s\n", FILENAME)
++ file = FILENAME
++ sub("([^/]*[/])*", "", file)
++ printf(" * %s\n", file)
+ printf(" */\n")
+
+ for (i = 0; i < stackptr; i++) {
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch b/meta-webserver/recipes-httpd/apache2/apache2/0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch
new file mode 100644
index 0000000000..bbe8b325b5
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0002-apache2-bump-up-the-core-size-limit-if-CoreDumpDirec.patch
@@ -0,0 +1,50 @@
+From 5074ab3425e5f1e01fd9cfa2d9b7300ea1b3f38f Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] apache2: bump up the core size limit if CoreDumpDirectory is
+ configured
+
+Bump up the core size limit if CoreDumpDirectory is
+configured.
+
+Upstream-Status: Pending
+
+Note: upstreaming was discussed but there are competing desires;
+ there are portability oddities here too.
+---
+ server/core.c | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/server/core.c b/server/core.c
+index 090e397..3020090 100644
+--- a/server/core.c
++++ b/server/core.c
+@@ -5107,6 +5107,25 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte
+ }
+ apr_pool_cleanup_register(pconf, NULL, ap_mpm_end_gen_helper,
+ apr_pool_cleanup_null);
++
++#ifdef RLIMIT_CORE
++ if (ap_coredumpdir_configured) {
++ struct rlimit lim;
++
++ if (getrlimit(RLIMIT_CORE, &lim) == 0 && lim.rlim_cur == 0) {
++ lim.rlim_cur = lim.rlim_max;
++ if (setrlimit(RLIMIT_CORE, &lim) == 0) {
++ ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, NULL,
++ "core dump file size limit raised to %lu bytes",
++ lim.rlim_cur);
++ } else {
++ ap_log_error(APLOG_MARK, APLOG_NOTICE, errno, NULL,
++ "core dump file size is zero, setrlimit failed");
++ }
++ }
++ }
++#endif
++
+ return OK;
+ }
+
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch b/meta-webserver/recipes-httpd/apache2/apache2/0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch
new file mode 100644
index 0000000000..adb728ba31
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0003-apache2-do-not-export-apr-apr-util-symbols-when-usin.patch
@@ -0,0 +1,33 @@
+From 9c03ed909b8da0e1a288f53fda535a3f15bcf791 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] apache2: do not export apr/apr-util symbols when using shared
+ libapr
+
+There is no need to "suck in" the apr/apr-util symbols when using
+a shared libapr{,util}, it just bloats the symbol table; so don't.
+
+Upstream-Status: Pending
+
+Note: EXPORT_DIRS change is conditional on using shared apr
+---
+ server/Makefile.in | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/server/Makefile.in b/server/Makefile.in
+index 8111877..8c0c396 100644
+--- a/server/Makefile.in
++++ b/server/Makefile.in
+@@ -60,9 +60,6 @@ export_files:
+ ls $$dir/*.h ; \
+ done; \
+ echo "$(top_srcdir)/server/mpm_fdqueue.h"; \
+- for dir in $(EXPORT_DIRS_APR); do \
+- ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \
+- done; \
+ ) | sed -e s,//,/,g | sort -u > $@
+
+ exports.c: export_files
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0004-apache2-log-the-SELinux-context-at-startup.patch b/meta-webserver/recipes-httpd/apache2/apache2/0004-apache2-log-the-SELinux-context-at-startup.patch
new file mode 100644
index 0000000000..3b080f54f6
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0004-apache2-log-the-SELinux-context-at-startup.patch
@@ -0,0 +1,76 @@
+From e47cc405eadcbe37a579c375e824e20a5c53bfad Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] Log the SELinux context at startup.
+
+Log the SELinux context at startup.
+
+Upstream-Status: Inappropriate [other]
+
+Note: unlikely to be any interest in this upstream
+
+---
+ configure.in | 5 +++++
+ server/core.c | 26 ++++++++++++++++++++++++++
+ 2 files changed, 31 insertions(+)
+
+diff --git a/configure.in b/configure.in
+index ea6cec3..92b74b7 100644
+--- a/configure.in
++++ b/configure.in
+@@ -491,6 +491,11 @@ getloadavg
+ dnl confirm that a void pointer is large enough to store a long integer
+ APACHE_CHECK_VOID_PTR_LEN
+
++AC_CHECK_LIB(selinux, is_selinux_enabled, [
++ AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
++ APR_ADDTO(AP_LIBS, [-lselinux])
++])
++
+ AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
+ [AC_TRY_RUN(#define _GNU_SOURCE
+ #include <unistd.h>
+diff --git a/server/core.c b/server/core.c
+index 4da7209..d3ca25b 100644
+--- a/server/core.c
++++ b/server/core.c
+@@ -65,6 +65,10 @@
+ #include <unistd.h>
+ #endif
+
++#ifdef HAVE_SELINUX
++#include <selinux/selinux.h>
++#endif
++
+ /* LimitRequestBody handling */
+ #define AP_LIMIT_REQ_BODY_UNSET ((apr_off_t) -1)
+ #define AP_DEFAULT_LIMIT_REQ_BODY ((apr_off_t) 1<<30) /* 1GB */
+@@ -5126,6 +5130,28 @@ static int core_post_config(apr_pool_t *pconf, apr_pool_t *plog, apr_pool_t *pte
+ }
+ #endif
+
++#ifdef HAVE_SELINUX
++ {
++ static int already_warned = 0;
++ int is_enabled = is_selinux_enabled() > 0;
++
++ if (is_enabled && !already_warned) {
++ security_context_t con;
++
++ if (getcon(&con) == 0) {
++
++ ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, NULL,
++ "SELinux policy enabled; "
++ "httpd running as context %s", con);
++
++ already_warned = 1;
++
++ freecon(con);
++ }
++ }
++ }
++#endif
++
+ return OK;
+ }
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0005-replace-lynx-to-curl-in-apachectl-script.patch b/meta-webserver/recipes-httpd/apache2/apache2/0005-replace-lynx-to-curl-in-apachectl-script.patch
new file mode 100644
index 0000000000..7b4a1b932b
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0005-replace-lynx-to-curl-in-apachectl-script.patch
@@ -0,0 +1,52 @@
+From e59aab44a28c654e518080693d573ca472ca5a08 Mon Sep 17 00:00:00 2001
+From: Yulong Pei <Yulong.pei@windriver.com>
+Date: Thu, 1 Sep 2011 01:03:14 +0800
+Subject: [PATCH] replace lynx to curl in apachectl script
+
+Upstream-Status: Inappropriate [configuration]
+
+Signed-off-by: Yulong Pei <Yulong.pei@windriver.com>
+---
+ support/apachectl.in | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/support/apachectl.in b/support/apachectl.in
+index 3281c2e..6ab4ba5 100644
+--- a/support/apachectl.in
++++ b/support/apachectl.in
+@@ -52,11 +52,11 @@ fi
+ # a command that outputs a formatted text version of the HTML at the
+ # url given on the command line. Designed for lynx, however other
+ # programs may work.
+-LYNX="@LYNX_PATH@ -dump"
++CURL="/usr/bin/curl"
+ #
+ # the URL to your server's mod_status status page. If you do not
+ # have one, then status and fullstatus will not work.
+-STATUSURL="http://localhost:@PORT@/server-status"
++STATUSURL="http://localhost:@PORT@/"
+ #
+ # Set this variable to a command that increases the maximum
+ # number of file descriptors allowed per child process. This is
+@@ -92,10 +92,16 @@ configtest)
+ ERROR=$?
+ ;;
+ status)
+- $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
++ $CURL -s $STATUSURL | grep -o "It works!"
++ if [ $? != 0 ] ; then
++ echo The httpd server does not work!
++ fi
+ ;;
+ fullstatus)
+- $LYNX $STATUSURL
++ $CURL -s $STATUSURL | grep -o "It works!"
++ if [ $? != 0 ] ; then
++ echo The httpd server does not work!
++ fi
+ ;;
+ *)
+ $HTTPD "$@"
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0006-apache2-fix-the-race-issue-of-parallel-installation.patch b/meta-webserver/recipes-httpd/apache2/apache2/0006-apache2-fix-the-race-issue-of-parallel-installation.patch
new file mode 100644
index 0000000000..dbaf01d2c5
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0006-apache2-fix-the-race-issue-of-parallel-installation.patch
@@ -0,0 +1,35 @@
+From fb09f1fe4525058b16b3d4edb2e3ae693154026e Mon Sep 17 00:00:00 2001
+From: Zhenhua Luo <zhenhua.luo@freescale.com>
+Date: Fri, 25 Jan 2013 18:10:50 +0800
+Subject: [PATCH] apache2: fix the race issue of parallel installation
+
+Upstream-Status: Pending
+
+fix following race issue when do parallel install
+| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
+...
+| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
+| make[1]: *** [install-man] Error 1
+| make[1]: *** Waiting for unfinished jobs....
+
+Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
+---
+ build/mkdir.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/mkdir.sh b/build/mkdir.sh
+index e2d5bb6..dde5ae0 100755
+--- a/build/mkdir.sh
++++ b/build/mkdir.sh
+@@ -39,7 +39,7 @@ for file in ${1+"$@"} ; do
+ esac
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp" 1>&2
+- mkdir "$pathcomp" || errstatus=$?
++ mkdir -p "$pathcomp" || errstatus=$?
+ fi
+ pathcomp="$pathcomp/"
+ done
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0007-apache2-allow-to-disable-selinux-support.patch b/meta-webserver/recipes-httpd/apache2/apache2/0007-apache2-allow-to-disable-selinux-support.patch
new file mode 100644
index 0000000000..3ff6894409
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0007-apache2-allow-to-disable-selinux-support.patch
@@ -0,0 +1,40 @@
+From 0686564f64130f230870db8b4846973e3edbd646 Mon Sep 17 00:00:00 2001
+From: Wenzong Fan <wenzong.fan@windriver.com>
+Date: Mon, 1 Dec 2014 02:08:27 -0500
+Subject: [PATCH] apache2: allow to disable selinux support
+
+Upstream-Status: Pending
+
+Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
+---
+ configure.in | 14 ++++++++++----
+ 1 file changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 76811e7..4df3ff3 100644
+--- a/configure.in
++++ b/configure.in
+@@ -491,10 +491,16 @@ getloadavg
+ dnl confirm that a void pointer is large enough to store a long integer
+ APACHE_CHECK_VOID_PTR_LEN
+
+-AC_CHECK_LIB(selinux, is_selinux_enabled, [
+- AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
+- APR_ADDTO(AP_LIBS, [-lselinux])
+-])
++# SELinux support
++AC_ARG_ENABLE(selinux,APACHE_HELP_STRING(--enable-selinux,Enable SELinux support [default=auto]),
++ [],[enable_selinux=auto])
++
++if test x$enable_selinux != xno; then
++ AC_CHECK_LIB(selinux, is_selinux_enabled, [
++ AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
++ APR_ADDTO(AP_LIBS, [-lselinux])
++ ])
++fi
+
+ AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
+ [AC_TRY_RUN(#define _GNU_SOURCE
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0008-Fix-perl-install-directory-to-usr-bin.patch b/meta-webserver/recipes-httpd/apache2/apache2/0008-Fix-perl-install-directory-to-usr-bin.patch
new file mode 100644
index 0000000000..dc5b5c88f2
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0008-Fix-perl-install-directory-to-usr-bin.patch
@@ -0,0 +1,36 @@
+From 443d15b91d4e4979d92405610303797663f31102 Mon Sep 17 00:00:00 2001
+From: echo <fei.geng@windriver.com>
+Date: Tue, 28 Apr 2009 03:11:06 +0000
+Subject: [PATCH] Fix perl install directory to /usr/bin
+
+Upstream-Status: Inappropriate [configuration]
+
+Add back this patch. Without this patch, apxs's shebang will use
+perl under hosttools, which can be too long for shebang, and cause
+error:
+bad interpreter: No such file or directory
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ configure.in | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 4df3ff3..4eeb609 100644
+--- a/configure.in
++++ b/configure.in
+@@ -903,10 +903,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "${rel_sysconfdir}/${progname}.conf",
+ AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
+ [Location of the MIME types config file, relative to the Apache root directory])
+
+-perlbin=`$ac_aux_dir/PrintPath perl`
+-if test "x$perlbin" = "x"; then
+- perlbin="/replace/with/path/to/perl/interpreter"
+-fi
++perlbin='/usr/bin/perl'
+ AC_SUBST(perlbin)
+
+ dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0009-support-apxs.in-force-destdir-to-be-empty-string.patch b/meta-webserver/recipes-httpd/apache2/apache2/0009-support-apxs.in-force-destdir-to-be-empty-string.patch
new file mode 100644
index 0000000000..d1f9bb0f43
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0009-support-apxs.in-force-destdir-to-be-empty-string.patch
@@ -0,0 +1,49 @@
+From 43a4ad04e0d8771267a73f98b5918bcd10b167ec Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <trevor.gamblin@windriver.com>
+Date: Fri, 17 Apr 2020 06:31:35 -0700
+Subject: [PATCH] support/apxs.in: force destdir to be empty string
+
+If destdir is assigned to anything other than the empty string, the
+search path for apache2 config files is appended to itself, and
+related packages like apache-websocket will be unable to locate them:
+
+| cannot open
+/ala-lpggp31/tgamblin/yocto/poky.git/build/tmp/work/core2-64-poky-linux/apache-websocket/0.1.1+gitAUTOINC+6968083264-r0/recipe-sysroot/ala-lpggp31/tgamblin/yocto/poky.git/build/tmp/work/core2-64-poky-linux/apache-websocket/0.1.1+gitAUTOINC+6968083264-r0/recipe-sysroot//usr/share/apache2/build/config_vars.mk:
+No such file or directory at
+/ala-lpggp31/tgamblin/yocto/poky.git/build/tmp/work/core2-64-poky-linux/apache-websocket/0.1.1+gitAUTOINC+6968083264-r0/recipe-sysroot/usr/bin/crossscripts/apxs
+line 213.
+
+Ensure that it is always the empty string so that apache-websocket
+is able to find the required config files.
+
+Upstream-Status: Inappropriate (embedded-specific)
+
+Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
+---
+ support/apxs.in | 10 ++++++----
+ 1 file changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/support/apxs.in b/support/apxs.in
+index b2705fa..781f2ab 100644
+--- a/support/apxs.in
++++ b/support/apxs.in
+@@ -28,10 +28,12 @@ package apxs;
+ # is the empty string.
+
+ my $destdir = "";
+-my $ddi = rindex($0, "@exp_bindir@");
+-if ($ddi >= 0) {
+- $destdir = substr($0, 0, $ddi);
+-}
++# Comment out assignment of destdir so that it doesn't affect bitbake
++# cross-compilation setup
++#my $ddi = rindex($0, "@exp_bindir@");
++#if ($ddi >= 0) {
++# $destdir = substr($0, 0, $ddi);
++#}
+
+ my %config_vars = ();
+
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0010-apache2-do-not-use-relative-path-for-gen_test_char.patch b/meta-webserver/recipes-httpd/apache2/apache2/0010-apache2-do-not-use-relative-path-for-gen_test_char.patch
new file mode 100644
index 0000000000..ced8469f3a
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0010-apache2-do-not-use-relative-path-for-gen_test_char.patch
@@ -0,0 +1,26 @@
+From d9993cbc33565c0acd29b0127d651dafa2a16975 Mon Sep 17 00:00:00 2001
+From: Paul Eggleton <paul.eggleton@linux.intel.com>
+Date: Tue, 17 Jul 2012 11:27:39 +0100
+Subject: [PATCH] apache2: do not use relative path for gen_test_char
+
+Upstream-Status: Inappropriate [embedded specific]
+---
+ server/Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/server/Makefile.in b/server/Makefile.in
+index 8c0c396..3544f55 100644
+--- a/server/Makefile.in
++++ b/server/Makefile.in
+@@ -29,7 +29,7 @@ gen_test_char: $(gen_test_char_OBJECTS)
+ $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
+
+ test_char.h: gen_test_char
+- ./gen_test_char > test_char.h
++ gen_test_char > test_char.h
+
+ util.lo: test_char.h
+
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch b/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch
new file mode 100644
index 0000000000..996eabf586
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2/0011-modules-mappers-config9.m4-Add-server-directory-to-i.patch
@@ -0,0 +1,31 @@
+From 5c9257fa34335ff83f7c01581cf953111072a457 Mon Sep 17 00:00:00 2001
+From: Valeria Petrov <valeria.petrov@spinetix.com>
+Date: Tue, 18 Apr 2023 15:38:53 +0200
+Subject: [PATCH] * modules/mappers/config9.m4: Add 'server' directory to
+ include path if mod_rewrite is enabled.
+
+Upstream-Status: Accepted [https://svn.apache.org/viewvc?view=revision&revision=1909241]
+
+---
+ modules/mappers/config9.m4 | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/modules/mappers/config9.m4 b/modules/mappers/config9.m4
+index 55a97ab993..7120b729b7 100644
+--- a/modules/mappers/config9.m4
++++ b/modules/mappers/config9.m4
+@@ -14,6 +14,11 @@ APACHE_MODULE(userdir, mapping of requests to user-specific directories, , , mos
+ APACHE_MODULE(alias, mapping of requests to different filesystem parts, , , yes)
+ APACHE_MODULE(rewrite, rule based URL manipulation, , , most)
+
++if test "x$enable_rewrite" != "xno"; then
++ # mod_rewrite needs test_char.h
++ APR_ADDTO(INCLUDES, [-I\$(top_builddir)/server])
++fi
++
+ APR_ADDTO(INCLUDES, [-I\$(top_srcdir)/$modpath_current])
+
+ APACHE_MODPATH_FINISH
+--
+2.25.1
+
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch b/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
deleted file mode 100644
index 92c53f31d7..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2/apache-configure_perlbin.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# Author: echo <fei.geng@windriver.com>
-# Date: April 28 2009
-# Summary:Fix perl install directory to /usr/bin
-#
-# Upstream-Status: Inappropriate [configuration]
-
-Index: httpd-2.4.29/configure.in
-===================================================================
---- httpd-2.4.29.orig/configure.in
-+++ httpd-2.4.29/configure.in
-@@ -855,10 +855,7 @@ AC_DEFINE_UNQUOTED(SERVER_CONFIG_FILE, "
- AC_DEFINE_UNQUOTED(AP_TYPES_CONFIG_FILE, "${rel_sysconfdir}/mime.types",
- [Location of the MIME types config file, relative to the Apache root directory])
-
--perlbin=`$ac_aux_dir/PrintPath perl`
--if test "x$perlbin" = "x"; then
-- perlbin="/replace/with/path/to/perl/interpreter"
--fi
-+perlbin='/usr/bin/perl'
- AC_SUBST(perlbin)
-
- dnl If we are running on BSD/OS, we need to use the BSD .include syntax.
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch b/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch
deleted file mode 100644
index f13da91f39..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2/apache-ssl-ltmain-rpath.patch
+++ /dev/null
@@ -1,81 +0,0 @@
- build/ltmain.sh | 32 +++++++++++++++++++++++++++-----
- 1 file changed, 27 insertions(+), 5 deletions(-)
-
-Index: httpd-2.4.29/build/ltmain.sh
-===================================================================
---- httpd-2.4.29.orig/build/ltmain.sh
-+++ httpd-2.4.29/build/ltmain.sh
-@@ -6969,7 +6969,7 @@ func_mode_link ()
- dir=$func_resolve_sysroot_result
- # We need an absolute path.
- case $dir in
-- [\\/]* | [A-Za-z]:[\\/]*) ;;
-+ =* | [\\/]* | [A-Za-z]:[\\/]*) ;;
- *)
- absdir=`cd "$dir" && pwd`
- test -z "$absdir" && \
-@@ -8167,7 +8167,7 @@ func_mode_link ()
- $ECHO "*** $linklib is not portable!"
- fi
- if test lib = "$linkmode" &&
-- test yes = "$hardcode_into_libs"; then
-+ test "x$wrs_use_rpaths" = "xyes" && test "$hardcode_into_libs" = yes; then
- # Hardcode the library path.
- # Skip directories that are in the system default run-time
- # search path.
-@@ -8434,7 +8434,7 @@ func_mode_link ()
-
- if test lib = "$linkmode"; then
- if test -n "$dependency_libs" &&
-- { test yes != "$hardcode_into_libs" ||
-+ { test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" ||
- test yes = "$build_old_libs" ||
- test yes = "$link_static"; }; then
- # Extract -R from dependency_libs
-@@ -9086,7 +9086,8 @@ func_mode_link ()
- *) func_append finalize_rpath " $libdir" ;;
- esac
- done
-- if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
-+ if test yes != "$hardcode_into_libs" || test "x$wrs_use_rpaths" != "xyes" ||
-+ test yes = "$build_old_libs"; then
- dependency_libs="$temp_xrpath $dependency_libs"
- fi
- fi
-@@ -9534,7 +9535,7 @@ EOF
- case $archive_cmds in
- *\$LD\ *) wl= ;;
- esac
-- if test yes = "$hardcode_into_libs"; then
-+ if test yes = "$hardcode_into_libs" && test "x$wrs_use_rpaths" = "xyes"; then
- # Hardcode the library paths
- hardcode_libdirs=
- dep_rpath=
-@@ -10272,6 +10273,27 @@ EOF
- # Now hardcode the library paths
- rpath=
- hardcode_libdirs=
-+
-+ # short circuit putting rpaths in executables
-+ #
-+ if test "x$wrs_use_rpaths" != "xyes" ; then
-+ flag=
-+ for libdir in $compile_rpath; do
-+ case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
-+ /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
-+ esac
-+ done
-+ compile_rpath="$flag"
-+
-+ flag=
-+ for libdir in $finalize_rpath; do
-+ case $(echo $libdir | ${SED} 's,/[/]*,/,g') in
-+ /usr/lib/* | /usr/lib32/* | /usr/lib64/* ) flag="$flag $libdir" ;;
-+ esac
-+ done
-+ finalize_rpath="$flag"
-+ fi
-+
- for libdir in $compile_rpath $finalize_rpath; do
- if test -n "$hardcode_libdir_flag_spec"; then
- if test -n "$hardcode_libdir_separator"; then
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch b/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
deleted file mode 100644
index 18e4107ec7..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-corelimit.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-
-Bump up the core size limit if CoreDumpDirectory is
-configured.
-
-Upstream-Status: Pending
-
-Note: upstreaming was discussed but there are competing desires;
- there are portability oddities here too.
-
---- httpd-2.4.1/server/core.c.corelimit
-+++ httpd-2.4.1/server/core.c
-@@ -4433,6 +4433,25 @@ static int core_post_config(apr_pool_t *
- }
- apr_pool_cleanup_register(pconf, NULL, ap_mpm_end_gen_helper,
- apr_pool_cleanup_null);
-+
-+#ifdef RLIMIT_CORE
-+ if (ap_coredumpdir_configured) {
-+ struct rlimit lim;
-+
-+ if (getrlimit(RLIMIT_CORE, &lim) == 0 && lim.rlim_cur == 0) {
-+ lim.rlim_cur = lim.rlim_max;
-+ if (setrlimit(RLIMIT_CORE, &lim) == 0) {
-+ ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, NULL,
-+ "core dump file size limit raised to %lu bytes",
-+ lim.rlim_cur);
-+ } else {
-+ ap_log_error(APLOG_MARK, APLOG_NOTICE, errno, NULL,
-+ "core dump file size is zero, setrlimit failed");
-+ }
-+ }
-+ }
-+#endif
-+
- return OK;
- }
-
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch b/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
deleted file mode 100644
index 873328d9b5..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.1-selinux.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-
-Log the SELinux context at startup.
-
-Upstream-Status: Inappropriate [other]
-
-Note: unlikely to be any interest in this upstream
-
---- httpd-2.4.1/configure.in.selinux
-+++ httpd-2.4.1/configure.in
-@@ -458,6 +458,11 @@ fopen64
- dnl confirm that a void pointer is large enough to store a long integer
- APACHE_CHECK_VOID_PTR_LEN
-
-+AC_CHECK_LIB(selinux, is_selinux_enabled, [
-+ AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
-+ APR_ADDTO(AP_LIBS, [-lselinux])
-+])
-+
- AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
- [AC_TRY_RUN(#define _GNU_SOURCE
- #include <unistd.h>
---- httpd-2.4.1/server/core.c.selinux
-+++ httpd-2.4.1/server/core.c
-@@ -58,6 +58,10 @@
- #include <unistd.h>
- #endif
-
-+#ifdef HAVE_SELINUX
-+#include <selinux/selinux.h>
-+#endif
-+
- /* LimitRequestBody handling */
- #define AP_LIMIT_REQ_BODY_UNSET ((apr_off_t) -1)
- #define AP_DEFAULT_LIMIT_REQ_BODY ((apr_off_t) 0)
-@@ -4452,6 +4456,28 @@ static int core_post_config(apr_pool_t *
- }
- #endif
-
-+#ifdef HAVE_SELINUX
-+ {
-+ static int already_warned = 0;
-+ int is_enabled = is_selinux_enabled() > 0;
-+
-+ if (is_enabled && !already_warned) {
-+ security_context_t con;
-+
-+ if (getcon(&con) == 0) {
-+
-+ ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, NULL,
-+ "SELinux policy enabled; "
-+ "httpd running as context %s", con);
-+
-+ already_warned = 1;
-+
-+ freecon(con);
-+ }
-+ }
-+ }
-+#endif
-+
- return OK;
- }
-
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch b/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
deleted file mode 100644
index afbed8e550..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2/httpd-2.4.4-export.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-
-There is no need to "suck in" the apr/apr-util symbols when using
-a shared libapr{,util}, it just bloats the symbol table; so don't.
-
-Upstream-HEAD: needed
-Upstream-2.0: omit
-Upstream-Status: Pending
-
-Note: EXPORT_DIRS change is conditional on using shared apr
-
---- httpd-2.4.4/server/Makefile.in.export
-+++ httpd-2.4.4/server/Makefile.in
-@@ -57,9 +57,6 @@ export_files:
- ( for dir in $(EXPORT_DIRS); do \
- ls $$dir/*.h ; \
- done; \
-- for dir in $(EXPORT_DIRS_APR); do \
-- ls $$dir/ap[ru].h $$dir/ap[ru]_*.h 2>/dev/null; \
-- done; \
- ) | sed -e s,//,/,g | sort -u > $@
-
- exports.c: export_files
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch b/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
deleted file mode 100644
index e4e01b2af6..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2/replace-lynx-to-curl-in-apachectl-script.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 760ccbb2fb046621a2aeaecabb2b1ef9aa280cf1 Mon Sep 17 00:00:00 2001
-From: Yulong Pei <Yulong.pei@windriver.com>
-Date: Thu, 1 Sep 2011 01:03:14 +0800
-Subject: [PATCH] replace lynx to curl in apachectl script
-
-Upstream-Status: Inappropriate [configuration]
-
-Signed-off-by: Yulong Pei <Yulong.pei@windriver.com>
----
- support/apachectl.in | 14 ++++++++++----
- 1 files changed, 10 insertions(+), 4 deletions(-)
-
-Index: httpd-2.4.29/support/apachectl.in
-===================================================================
---- httpd-2.4.29.orig/support/apachectl.in
-+++ httpd-2.4.29/support/apachectl.in
-@@ -52,11 +52,11 @@ fi
- # a command that outputs a formatted text version of the HTML at the
- # url given on the command line. Designed for lynx, however other
- # programs may work.
--LYNX="@LYNX_PATH@ -dump"
-+CURL="/usr/bin/curl"
- #
- # the URL to your server's mod_status status page. If you do not
- # have one, then status and fullstatus will not work.
--STATUSURL="http://localhost:@PORT@/server-status"
-+STATUSURL="http://localhost:@PORT@/"
- #
- # Set this variable to a command that increases the maximum
- # number of file descriptors allowed per child process. This is
-@@ -92,10 +92,16 @@ configtest)
- ERROR=$?
- ;;
- status)
-- $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } '
-+ $CURL -s $STATUSURL | grep -o "It works!"
-+ if [ $? != 0 ] ; then
-+ echo The httpd server does not work!
-+ fi
- ;;
- fullstatus)
-- $LYNX $STATUSURL
-+ $CURL -s $STATUSURL | grep -o "It works!"
-+ if [ $? != 0 ] ; then
-+ echo The httpd server does not work!
-+ fi
- ;;
- *)
- $HTTPD "$@"
diff --git a/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch b/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
deleted file mode 100644
index f1349cb6a4..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2/server-makefile.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- http-2.0.54/server/Makefile.in-old 2005-12-20 13:26:56.000000000 -0500
-+++ http-2.0.54/server/Makefile.in 2005-12-20 13:27:22.000000000 -0500
-@@ -27,7 +27,7 @@
- $(LINK) $(EXTRA_LDFLAGS) $(gen_test_char_OBJECTS) $(EXTRA_LIBS)
-
- test_char.h: gen_test_char
-- ./gen_test_char > test_char.h
-+ gen_test_char > test_char.h
-
- util.lo: test_char.h
-
diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb
deleted file mode 100644
index c422092f83..0000000000
--- a/meta-webserver/recipes-httpd/apache2/apache2_2.4.29.bb
+++ /dev/null
@@ -1,197 +0,0 @@
-DESCRIPTION = "The Apache HTTP Server is a powerful, efficient, and \
-extensible web server."
-SUMMARY = "Apache HTTP Server"
-HOMEPAGE = "http://httpd.apache.org/"
-DEPENDS = "libtool-native apache2-native openssl expat pcre apr apr-util"
-SECTION = "net"
-LICENSE = "Apache-2.0"
-
-SRC_URI = "${APACHE_MIRROR}/httpd/httpd-${PV}.tar.bz2 \
- file://server-makefile.patch \
- file://httpd-2.4.1-corelimit.patch \
- file://httpd-2.4.4-export.patch \
- file://httpd-2.4.1-selinux.patch \
- file://apache-configure_perlbin.patch \
- file://replace-lynx-to-curl-in-apachectl-script.patch \
- file://apache-ssl-ltmain-rpath.patch \
- file://httpd-2.4.3-fix-race-issue-of-dir-install.patch \
- file://0001-configure-use-pkg-config-for-PCRE-detection.patch \
- file://configure-allow-to-disable-selinux-support.patch \
- file://init \
- file://apache2-volatile.conf \
- file://apache2.service \
- file://volatiles.04_apache2 \
- "
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=a62b0c7623826ff99766ff13fb9007f8"
-SRC_URI[md5sum] = "0c599404ef6b69eee95bcd9fcd094407"
-SRC_URI[sha256sum] = "777753a5a25568a2a27428b2214980564bc1c38c1abf9ccc7630b639991f7f00"
-
-S = "${WORKDIR}/httpd-${PV}"
-
-inherit autotools update-rc.d pkgconfig systemd update-alternatives
-
-ALTERNATIVE_${PN}-doc = "htpasswd.1"
-ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
-
-SYSTEMD_SERVICE_${PN} = "apache2.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
-
-SSTATE_SCAN_FILES += "apxs config_vars.mk config.nice"
-
-CFLAGS_append = " -DPATH_MAX=4096"
-CFLAGS_prepend = "-I${STAGING_INCDIR}/openssl "
-EXTRA_OECONF = "--enable-ssl \
- --with-ssl=${STAGING_LIBDIR}/.. \
- --with-expat=${STAGING_LIBDIR}/.. \
- --with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \
- --with-apr-util=${STAGING_BINDIR_CROSS}/apu-1-config \
- --enable-info \
- --enable-rewrite \
- --with-dbm=sdbm \
- --with-berkeley-db=no \
- --localstatedir=/var/${BPN} \
- --with-gdbm=no \
- --with-ndbm=no \
- --includedir=${includedir}/${BPN} \
- --datadir=${datadir}/${BPN} \
- --sysconfdir=${sysconfdir}/${BPN} \
- --libexecdir=${libdir}/${BPN}/modules \
- ap_cv_void_ptr_lt_long=no \
- --enable-mpms-shared \
- ac_cv_have_threadsafe_pollset=no"
-
-PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'selinux', d)}"
-PACKAGECONFIG[selinux] = "--enable-selinux --enable-layout=Debian --prefix=${base_prefix}/,--disable-selinux,libselinux,libselinux"
-PACKAGECONFIG[openldap] = "--enable-ldap --enable-authnz-ldap,--disable-ldap --disable-authnz-ldap,openldap"
-
-do_configure_prepend() {
- sed -i -e 's:$''{prefix}/usr/lib/cgi-bin:$''{libdir}/cgi-bin:g' ${S}/config.layout
-}
-
-do_install_append() {
- 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
- # Expat should be found in the staging area via DEPENDS...
- rm -f ${D}/${libdir}/libexpat.*
-
- 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
-
- 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/
- 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
-
- 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
-
- chown -R root:root ${D}
-}
-
-do_install_append_class-target() {
- sed -i -e 's,${STAGING_DIR_HOST},,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,${STAGING_DIR_HOST},,g' \
- -e 's,".*/configure","configure",g' ${D}${datadir}/apache2/build/config.nice
- rm -rf ${D}${localstatedir}/run
-}
-
-SYSROOT_PREPROCESS_FUNCS += "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!my $libtool = .*!my $libtool = "${STAGING_BINDIR_CROSS}/${HOST_SYS}-libtool";!' ${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"
-LEAD_SONAME = "libapr-1.so.0"
-
-PACKAGES = "${PN}-scripts ${PN}-doc ${PN}-dev ${PN}-dbg ${PN}"
-
-CONFFILES_${PN} = "${sysconfdir}/${BPN}/httpd.conf \
- ${sysconfdir}/${BPN}/magic \
- ${sysconfdir}/${BPN}/mime.types \
- ${sysconfdir}/init.d/${BPN} "
-
-# 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 \
- ${bindir}/apr-config ${bindir}/apu-config \
- ${libdir}/apr*.exp \
- ${includedir}/${BPN} \
- ${libdir}/*.la \
- ${libdir}/*.a \
- ${bindir}/apxs \
- "
-
-
-# manual to manual
-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}/lib*.so.* ${sysconfdir} \
- ${sharedstatedir} ${localstatedir} /bin /sbin /lib/*.so* \
- ${libdir}/${BPN}"
-
-# we want htdocs and cgi-bin to go with the binary
-FILES_${PN} += "${datadir}/${BPN}/htdocs ${datadir}/${BPN}/cgi-bin"
-
-#make sure the lone .so links also get wrapped in the base package
-FILES_${PN} += "${libdir}/lib*.so ${libdir}/pkgconfig/*"
-
-FILES_${PN}-dbg += "${libdir}/${BPN}/modules/.debug"
-
-RDEPENDS_${PN} += "openssl libgcc"
-RDEPENDS_${PN}-scripts += "perl ${PN}"
-RDEPENDS_${PN}-dev = "perl"
-
-FILES_${PN} += "${libdir}/cgi-bin"
-FILES_${PN} += "${datadir}/${BPN}/"
diff --git a/meta-webserver/recipes-httpd/apache2/apache2_2.4.57.bb b/meta-webserver/recipes-httpd/apache2/apache2_2.4.57.bb
new file mode 100644
index 0000000000..00f8aaa415
--- /dev/null
+++ b/meta-webserver/recipes-httpd/apache2/apache2_2.4.57.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 \
+ file://0011-modules-mappers-config9.m4-Add-server-directory-to-i.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] = "dbccb84aee95e095edfbb81e5eb926ccd24e6ada55dcd83caecb262e5cf94d2a"
+
+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/files/0001-configure-use-pkg-config-for-PCRE-detection.patch b/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch
deleted file mode 100644
index 63096db0a3..0000000000
--- a/meta-webserver/recipes-httpd/apache2/files/0001-configure-use-pkg-config-for-PCRE-detection.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From d8837756f2a48adcfe5d645c39cf163d96eac76c Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen.kooi@linaro.org>
-Date: Tue, 17 Jun 2014 09:10:57 +0200
-Subject: [PATCH] configure: use pkg-config for PCRE detection
-
-Signed-off-by: Koen Kooi <koen.kooi@linaro.org>
-Upstream-Status: pending
----
- configure.in | 27 +++++----------------------
- 1 file changed, 5 insertions(+), 22 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index 864d7c7..da4138e 100644
---- a/configure.in
-+++ b/configure.in
-@@ -215,28 +215,11 @@ fi
- AC_ARG_WITH(pcre,
- APACHE_HELP_STRING(--with-pcre=PATH,Use external PCRE library))
-
--AC_PATH_PROG(PCRE_CONFIG, pcre-config, false)
--if test -d "$with_pcre" && test -x "$with_pcre/bin/pcre-config"; then
-- PCRE_CONFIG=$with_pcre/bin/pcre-config
--elif test -x "$with_pcre"; then
-- PCRE_CONFIG=$with_pcre
--fi
--
--if test "$PCRE_CONFIG" != "false"; then
-- if $PCRE_CONFIG --version >/dev/null 2>&1; then :; else
-- AC_MSG_ERROR([Did not find pcre-config script at $PCRE_CONFIG])
-- fi
-- case `$PCRE_CONFIG --version` in
-- [[1-5].*])
-- AC_MSG_ERROR([Need at least pcre version 6.0])
-- ;;
-- esac
-- AC_MSG_NOTICE([Using external PCRE library from $PCRE_CONFIG])
-- APR_ADDTO(PCRE_INCLUDES, [`$PCRE_CONFIG --cflags`])
-- APR_ADDTO(PCRE_LIBS, [`$PCRE_CONFIG --libs`])
--else
-- AC_MSG_ERROR([pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/])
--fi
-+PKG_CHECK_MODULES([PCRE], [libpcre], [
-+ AC_DEFINE([HAVE_PCRE], [1], [Define if you have PCRE library])
-+], [
-+ AC_MSG_ERROR([$PCRE_PKG_ERRORS])
-+])
- APACHE_SUBST(PCRE_LIBS)
-
- AC_MSG_NOTICE([])
---
-1.9.3
-
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/apache2/files/configure-allow-to-disable-selinux-support.patch b/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch
deleted file mode 100644
index 5b5c297077..0000000000
--- a/meta-webserver/recipes-httpd/apache2/files/configure-allow-to-disable-selinux-support.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From d23dd33e373340f6fddf11904839d1a118824401 Mon Sep 17 00:00:00 2001
-From: Wenzong Fan <wenzong.fan@windriver.com>
-Date: Mon, 1 Dec 2014 02:08:27 -0500
-Subject: [PATCH] apache2: allow to disable selinux support
-
-Upstream-Status: Pending
-
-Signed-off-by: Wenzong Fan <wenzong.fan@windriver.com>
----
- configure.in | 14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/configure.in b/configure.in
-index df94ee5..8c3ab21 100644
---- a/configure.in
-+++ b/configure.in
-@@ -466,10 +466,16 @@ getloadavg
- dnl confirm that a void pointer is large enough to store a long integer
- APACHE_CHECK_VOID_PTR_LEN
-
--AC_CHECK_LIB(selinux, is_selinux_enabled, [
-- AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
-- APR_ADDTO(AP_LIBS, [-lselinux])
--])
-+# SELinux support
-+AC_ARG_ENABLE(selinux,APACHE_HELP_STRING(--enable-selinux,Enable SELinux support [default=auto]),
-+ [],[enable_selinux=auto])
-+
-+if test x$enable_selinux != xno; then
-+ AC_CHECK_LIB(selinux, is_selinux_enabled, [
-+ AC_DEFINE(HAVE_SELINUX, 1, [Defined if SELinux is supported])
-+ APR_ADDTO(AP_LIBS, [-lselinux])
-+ ])
-+fi
-
- AC_CACHE_CHECK([for gettid()], ac_cv_gettid,
- [AC_TRY_RUN(#define _GNU_SOURCE
---
-1.7.9.5
-
diff --git a/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch b/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch
deleted file mode 100644
index b948753b48..0000000000
--- a/meta-webserver/recipes-httpd/apache2/files/httpd-2.4.3-fix-race-issue-of-dir-install.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Upstream-Status: Pending
-
-fix following race issue when do parallel install
-| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
-...
-| mkdir: cannot create directory `/home/mypc/workspace/poky/build_p4080ds_release/tmp/work/ppce500mc-fsl_networking-linux/apache2/2.4.3-r1/image/usr/share/apache2': File exists
-| make[1]: *** [install-man] Error 1
-| make[1]: *** Waiting for unfinished jobs....
-
--Signed-off-by: Zhenhua Luo <zhenhua.luo@freescale.com>
---- httpd-2.4.3/build/mkdir.sh.orig 2013-01-25 03:47:21.565255420 -0600
-+++ httpd-2.4.3/build/mkdir.sh 2013-01-25 03:46:17.833051230 -0600
-@@ -39,7 +39,7 @@
- esac
- if test ! -d "$pathcomp"; then
- echo "mkdir $pathcomp" 1>&2
-- mkdir "$pathcomp" || errstatus=$?
-+ mkdir -p "$pathcomp" || errstatus=$?
- fi
- pathcomp="$pathcomp/"
- done
diff --git a/meta-webserver/recipes-httpd/apache2/files/init b/meta-webserver/recipes-httpd/apache2/files/init
index 758d133b9e..758d133b9e 100755..100644
--- a/meta-webserver/recipes-httpd/apache2/files/init
+++ b/meta-webserver/recipes-httpd/apache2/files/init
diff --git a/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch
new file mode 100644
index 0000000000..0f43842752
--- /dev/null
+++ b/meta-webserver/recipes-httpd/cherokee/cherokee/0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch
@@ -0,0 +1,47 @@
+From c73415021f3f3b2b30062ab74b25fe49c51c2242 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 10 Nov 2019 15:59:44 -0800
+Subject: [PATCH] common-internal.h: Define LLONG_MAX if undefined
+
+time_t can also be long long type, therefore check for that as fallback
+Fixes build on 32bit hosts where time_t is fixed for Y2K38
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cherokee/common-internal.h | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/cherokee/common-internal.h b/cherokee/common-internal.h
+index 5c28da97..5646ec0f 100644
+--- a/cherokee/common-internal.h
++++ b/cherokee/common-internal.h
+@@ -222,6 +222,16 @@ char *strcasestr(char *s, char *find);
+ # endif
+ #endif
+
++/* Long Long limit
++ */
++#ifndef LLONG_MAX
++# if (__SIZEOF_LONG_LONG__ == 8)
++# define LLONG_MAX 0x7fffffffffffffffLL
++# else
++# error "Can't define LLONG_MAX"
++# endif
++#endif
++
+ /* time_t limit
+ */
+ #ifndef TIME_MAX
+@@ -229,6 +239,8 @@ char *strcasestr(char *s, char *find);
+ # define TIME_MAX ((time_t)INT_MAX)
+ # elif (SIZEOF_TIME_T == SIZEOF_LONG)
+ # define TIME_MAX ((time_t)LONG_MAX)
++# elif (SIZEOF_TIME_T == __SIZEOF_LONG_LONG__)
++# define TIME_MAX ((time_t)LLONG_MAX)
+ # else
+ # error "Can't define TIME_MAX"
+ # endif
+--
+2.24.0
+
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 3f7eae4c16..3dc4ca8bbb 100644
--- a/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
+++ b/meta-webserver/recipes-httpd/cherokee/cherokee_git.bb
@@ -1,25 +1,26 @@
SUMMARY = "Cherokee Web Server fast and secure"
-SUMMARY_cget = "Small downloader based in the Cherokee client library"
+SUMMARY:cget = "Small downloader based in the Cherokee client library"
HOMEPAGE = "http://www.cherokee-project.com/"
SECTION = "network"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
DEPENDS = "unzip-native libpcre openssl mysql5 ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
-SRCREV = "75f041e2255e6dd0692db2f14611c2647dbe8425"
+SRCREV = "9a75e65b876bcc376cb6b379dca1f7ce4a055c59"
PV = "1.2.104+git${SRCPV}"
-SRC_URI = "git://github.com/cherokee/webserver \
+SRC_URI = "git://github.com/cherokee/webserver;branch=master;protocol=https \
file://cherokee.init \
file://cherokee.service \
file://cherokee-install-configured.py-once.patch \
file://0001-configure.ac-Add-foreign-to-AM_INIT_AUTOMAKE.patch \
file://0001-make-Do-not-build-po-files.patch \
+ file://0001-common-internal.h-Define-LLONG_MAX-if-undefined.patch \
"
S = "${WORKDIR}/git"
-inherit autotools-brokensep pkgconfig binconfig update-rc.d systemd pythonnative
+inherit autotools-brokensep pkgconfig binconfig update-rc.d systemd ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)}
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}"
PACKAGECONFIG[ffmpeg] = "--with-ffmpeg,--without-ffmpeg,libav"
@@ -33,7 +34,7 @@ EXTRA_OECONF = "--disable-static \
--with-wwwroot=${localstatedir}/www/cherokee \
"
-do_install_append () {
+do_install:append () {
install -m 0755 -d ${D}${sysconfdir}/init.d
install -m 755 ${WORKDIR}/cherokee.init ${D}${sysconfdir}/init.d/cherokee
@@ -49,15 +50,15 @@ do_install_append () {
# Put -dev near the front so we can move the .la files into it with a wildcard
PACKAGES =+ "libcherokee-server libcherokee-client libcherokee-base cget"
-FILES_cget = "${bindir}/cget"
-FILES_libcherokee-server = "${libdir}/libcherokee-server${SOLIBS}"
-FILES_libcherokee-client = "${libdir}/libcherokee-client${SOLIBS}"
-FILES_libcherokee-base = "${libdir}/libcherokee-base${SOLIBS}"
+FILES:cget = "${bindir}/cget"
+FILES:libcherokee-server = "${libdir}/libcherokee-server${SOLIBS}"
+FILES:libcherokee-client = "${libdir}/libcherokee-client${SOLIBS}"
+FILES:libcherokee-base = "${libdir}/libcherokee-base${SOLIBS}"
# Pack the htdocs
-FILES_${PN} += "${localstatedir}/www/cherokee"
+FILES:${PN} += "${localstatedir}/www/cherokee"
-CONFFILES_${PN} = " \
+CONFFILES:${PN} = " \
${sysconfdir}/cherokee/cherokee.conf \
${sysconfdir}/init.d/cherokee \
"
@@ -65,7 +66,14 @@ CONFFILES_${PN} = " \
INITSCRIPT_NAME = "cherokee"
INITSCRIPT_PARAMS = "defaults 91 91"
-RPROVIDES_${PN} += "${PN}-systemd"
-RREPLACES_${PN} += "${PN}-systemd"
-RCONFLICTS_${PN} += "${PN}-systemd"
-SYSTEMD_SERVICE_${PN} = "cherokee.service"
+RPROVIDES:${PN} += "${PN}-systemd"
+RREPLACES:${PN} += "${PN}-systemd"
+RCONFLICTS:${PN} += "${PN}-systemd"
+SYSTEMD_SERVICE:${PN} = "cherokee.service"
+
+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/hiawatha/hiawatha_10.12.bb b/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb
new file mode 100644
index 0000000000..2e848eaf56
--- /dev/null
+++ b/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.12.bb
@@ -0,0 +1,81 @@
+SUMMARY = "Lightweight secure web server"
+HOMEPAGE = "http://www.hiawatha-webserver.org"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
+DEPENDS = "libxml2 libxslt virtual/crypt"
+
+SECTION = "net"
+
+SRC_URI = "http://hiawatha-webserver.org/files/hiawatha-10/${BP}.tar.gz \
+ file://hiawatha-init \
+ file://hiawatha.service "
+
+SRC_URI[md5sum] = "d9e282be06ed456207726b7ac0df9d48"
+SRC_URI[sha256sum] = "61bf41146c51244769984135529fcffd0f6cb92be18dc12d460effc42f19f50d"
+
+INITSCRIPT_NAME = "hiawatha"
+INITSCRIPT_PARAMS = "defaults 70"
+
+SYSTEMD_SERVICE:${PN} = "hiawatha.service"
+
+inherit cmake update-rc.d systemd
+
+EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \
+ -DENABLE_CACHE=OFF \
+ -DENABLE_DEBUG=OFF \
+ -DENABLE_TLS=OFF \
+ -DENABLE_TOOLKIT=OFF \
+ -DENABLE_CHROOT=OFF \
+ -DENABLE_XSLT=ON \
+ -DENABLE_TOMAHAWK=OFF \
+ -DCMAKE_INSTALL_MANDIR=${mandir} \
+ -DCMAKE_INSTALL_BINDIR=${bindir} \
+ -DCMAKE_INSTALL_SBINDIR=${sbindir} \
+ -DCMAKE_INSTALL_SYSCONFDIR=${sysconfdir} \
+ -DCMAKE_INSTALL_LIBDIR=${libdir} \
+ -DCMAKE_INSTALL_FULL_LOCALSTATEDIR=${localstatedir}"
+
+do_install:append() {
+ # Copy over init script and sed in the correct sbin path
+ sed -i 's,sed_sbin_path,${sbindir},' ${WORKDIR}/hiawatha-init
+ mkdir -p ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/hiawatha-init ${D}${sysconfdir}/init.d/hiawatha
+
+ # configure php-fcgi to have a working configuration
+ # by default if php is installed
+ echo "Server = ${bindir}/php-cgi ; 2 ; 127.0.0.1:2005 ; nobody:nobody ; ${sysconfdir}/php/hiawatha-php5/php.ini" >> ${D}${sysconfdir}/hiawatha/php-fcgi.conf
+
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -d ${D}/${systemd_unitdir}/system
+ install -m 644 ${WORKDIR}/hiawatha.service ${D}/${systemd_unitdir}/system
+ fi
+
+ # /var/log/hiawatha and /var/lib/hiawatha needs to be created in runtime.
+ # Use rmdir to catch if upstream stops creating these dirs, or adds
+ # something else in /var/log.
+ rmdir ${D}${localstatedir}/log/${BPN} ${D}${localstatedir}/log
+ rmdir ${D}${localstatedir}/run
+ rmdir --ignore-fail-on-non-empty ${D}${localstatedir}
+
+ # Create /var/log/hiawatha at 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
+
+}
+
+CONFFILES:${PN} = " \
+ ${sysconfdir}/hiawatha/cgi-wrapper.conf \
+ ${sysconfdir}/hiawatha/hiawatha.conf \
+ ${sysconfdir}/hiawatha/index.xslt \
+ ${sysconfdir}/hiawatha/mimetype.conf \
+ ${sysconfdir}/hiawatha/php-fcgi.conf \
+"
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
+FILES:${PN}-dev = "${libdir}/hiawatha/*${SOLIBSDEV}"
diff --git a/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb b/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
deleted file mode 100644
index 4c3ca556bd..0000000000
--- a/meta-webserver/recipes-httpd/hiawatha/hiawatha_10.7.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-SUMMARY = "Lightweight secure web server"
-HOMEPAGE = "http://www.hiawatha-webserver.org"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
-DEPENDS = "libxml2 libxslt"
-
-SECTION = "net"
-
-SRC_URI = "http://hiawatha-webserver.org/files/${BP}.tar.gz \
- file://hiawatha-init \
- file://hiawatha.service "
-
-SRC_URI[md5sum] = "581aa71c831172ba06910deda717302f"
-SRC_URI[sha256sum] = "363e99d84a85dafbb74bcc30b3e30286053ec2abbc7afe08cd87193611735f74"
-
-INITSCRIPT_NAME = "hiawatha"
-INITSCRIPT_PARAMS = "defaults 70"
-
-SYSTEMD_SERVICE_${PN} = "hiawatha.service"
-
-inherit cmake update-rc.d systemd
-
-EXTRA_OECMAKE = " -DENABLE_IPV6=OFF \
- -DENABLE_CACHE=OFF \
- -DENABLE_DEBUG=OFF \
- -DENABLE_SSL=OFF \
- -DENABLE_TOOLKIT=OFF \
- -DENABLE_CHROOT=OFF \
- -DENABLE_XSLT=ON \
- -DENABLE_TOMAHAWK=OFF \
- -DCMAKE_INSTALL_MANDIR=${mandir} \
- -DCMAKE_INSTALL_BINDIR=${bindir} \
- -DCMAKE_INSTALL_SBINDIR=${sbindir} \
- -DCMAKE_INSTALL_SYSCONFDIR=${sysconfdir} \
- -DCMAKE_INSTALL_LIBDIR=${libdir} \
- -DCMAKE_INSTALL_FULL_LOCALSTATEDIR=${localstatedir}"
-
-do_install_append() {
- # Copy over init script and sed in the correct sbin path
- sed -i 's,sed_sbin_path,${sbindir},' ${WORKDIR}/hiawatha-init
- mkdir -p ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/hiawatha-init ${D}${sysconfdir}/init.d/hiawatha
-
- # configure php-fcgi to have a working configuration
- # by default if php is installed
- echo "Server = ${bindir}/php-cgi ; 2 ; 127.0.0.1:2005 ; nobody:nobody ; ${sysconfdir}/php/hiawatha-php5/php.ini" >> ${D}${sysconfdir}/hiawatha/php-fcgi.conf
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}/${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/hiawatha.service ${D}/${systemd_unitdir}/system
- fi
-
- rmdir --ignore-fail-on-non-empty "${D}${localstatedir}" "${D}${localstatedir}/run"
-}
-
-CONFFILES_${PN} = " \
- ${sysconfdir}/hiawatha/cgi-wrapper.conf \
- ${sysconfdir}/hiawatha/hiawatha.conf \
- ${sysconfdir}/hiawatha/index.xslt \
- ${sysconfdir}/hiawatha/mimetype.conf \
- ${sysconfdir}/hiawatha/php-fcgi.conf \
-"
-
-FILES_${PN}-dev = "${libdir}/hiawatha/*${SOLIBSDEV}"
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/files/0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch b/meta-webserver/recipes-httpd/monkey/files/0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch
new file mode 100644
index 0000000000..f4bab49aa7
--- /dev/null
+++ b/meta-webserver/recipes-httpd/monkey/files/0001-fastcgi-Use-value-instead-of-address-of-sin6_port.patch
@@ -0,0 +1,30 @@
+From 7f724bbafbb1e170401dd5de201273ab8c8bc75f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 28 Aug 2022 14:24:02 -0700
+Subject: [PATCH] fastcgi: Use value instead of address of sin6_port
+
+This seems to be wrongly assigned where ipv4 sin_port is
+equated to address of sin6_port and not value of sin6_port
+
+Upstream-Status: Submitted [https://github.com/monkey/monkey/pull/375]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ plugins/fastcgi/fcgi_handler.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/plugins/fastcgi/fcgi_handler.c b/plugins/fastcgi/fcgi_handler.c
+index 9e095e3c..e8e1eec1 100644
+--- a/plugins/fastcgi/fcgi_handler.c
++++ b/plugins/fastcgi/fcgi_handler.c
+@@ -245,7 +245,7 @@ static inline int fcgi_add_param_net(struct fcgi_handler *handler)
+ struct sockaddr_in *s4 = (struct sockaddr_in *)&addr4;
+ memset(&addr4, 0, sizeof(addr4));
+ addr4.sin_family = AF_INET;
+- addr4.sin_port = &s->sin6_port;
++ addr4.sin_port = s->sin6_port;
+ memcpy(&addr4.sin_addr.s_addr,
+ s->sin6_addr.s6_addr + 12,
+ sizeof(addr4.sin_addr.s_addr));
+--
+2.37.2
+
diff --git a/meta-webserver/recipes-httpd/monkey/files/monkey.init b/meta-webserver/recipes-httpd/monkey/files/monkey.init
index 40b21182e1..55446f0e82 100644
--- a/meta-webserver/recipes-httpd/monkey/files/monkey.init
+++ b/meta-webserver/recipes-httpd/monkey/files/monkey.init
@@ -1,7 +1,7 @@
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=/usr/bin/monkey
+DAEMON=/usr/sbin/monkey
NAME=monkey
DESC="Monkey HTTP Server"
OPTS="--daemon"
diff --git a/meta-webserver/recipes-httpd/monkey/files/monkey.service b/meta-webserver/recipes-httpd/monkey/files/monkey.service
index f9aa57f91e..4f3b7be4e9 100644
--- a/meta-webserver/recipes-httpd/monkey/files/monkey.service
+++ b/meta-webserver/recipes-httpd/monkey/files/monkey.service
@@ -4,7 +4,7 @@ After=network.target remote-fs.target
[Service]
Type=forking
-ExecStart=/usr/bin/monkey --daemon
+ExecStart=/usr/sbin/monkey --daemon
PIDFile=/var/run/monkey.pid.2001
TimeoutSec=10
diff --git a/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb b/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb
deleted file mode 100644
index 559d251bdf..0000000000
--- a/meta-webserver/recipes-httpd/monkey/monkey_1.5.6.bb
+++ /dev/null
@@ -1,77 +0,0 @@
-SUMMARY = "Fast and Lightweight HTTP Server for Linux"
-HOMEPAGE = "http://monkey-project.com"
-BUGTRACKER = "https://github.com/monkey/monkey/issues"
-
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
-
-SECTION = "net"
-
-DEPENDS_append_libc-musl = " libexecinfo"
-
-SRC_URI = "http://monkey-project.com/releases/1.5/monkey-${PV}.tar.gz \
- file://0001-configure-Respect-LIBS-variable-from-env.patch \
- file://monkey.service \
- file://monkey.init"
-
-SRC_URI[md5sum] = "9699e4c9ea6ce6b989907c252ae80254"
-SRC_URI[sha256sum] = "7c3d845306aa74ee6effd7ab6169d16ac4e6450e564954d0d0baa2d1e9be1a22"
-
-UPSTREAM_CHECK_URI = "https://github.com/monkey/monkey/releases"
-UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz"
-
-EXTRA_OECONF = "--plugdir=${libdir}/monkey/ \
- --logdir=${localstatedir}/log/monkey/ \
- --pidfile=${localstatedir}/run/monkey.pid \
- --default-user=www-data \
- --datadir=${localstatedir}/www/monkey/ \
- --sysconfdir=${sysconfdir}/monkey/ \
- --enable-plugins=* \
- --disable-plugins=mbedtls \
- --debug \
- --malloc-libc"
-
-do_configure_prepend_libc-musl() {
- export LIBS="-lexecinfo"
-}
-
-DISABLE_STATIC = ""
-CLEANBROKEN = "1"
-
-inherit autotools-brokensep pkgconfig update-rc.d systemd
-
-INITSCRIPT_NAME = "monkey"
-INITSCRIPT_PARAMS = "defaults 70"
-
-SYSTEMD_SERVICE_${PN} = "monkey.service"
-
-FILES_${PN} += "${localstatedir}/www/monkey/"
-
-CONFFILES_${PN} = "${sysconfdir}/monkey/monkey.conf \
- ${sysconfdir}/monkey/sites/default \
- ${sysconfdir}/monkey/monkey.mime \
- ${sysconfdir}/monkey/plugins.load \
- ${sysconfdir}/monkey/plugins/proxy_reverse/proxy_reverse.conf \
- ${sysconfdir}/monkey/plugins/mandril/mandril.conf \
- ${sysconfdir}/monkey/plugins/fastcgi/fastcgi.conf \
- ${sysconfdir}/monkey/plugins/logger/logger.conf \
- ${sysconfdir}/monkey/plugins/cgi/cgi.conf \
- ${sysconfdir}/monkey/plugins/cheetah/cheetah.conf \
- ${sysconfdir}/monkey/plugins/dirlisting/dirhtml.conf \
- ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/header.theme \
- ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/footer.theme \
- ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/entry.theme \
- ${sysconfdir}/monkey/plugins/auth/README \
- ${sysconfdir}/monkey/plugins/auth/monkey.users \
- "
-
-do_install_append() {
-
- mkdir -p ${D}${sysconfdir}/init.d
- install -m 0755 ${WORKDIR}/monkey.init ${D}${sysconfdir}/init.d/monkey
-
- if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
- install -d ${D}${systemd_unitdir}/system
- install -m 644 ${WORKDIR}/monkey.service ${D}/${systemd_unitdir}/system
- fi
-}
diff --git a/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb b/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
new file mode 100644
index 0000000000..ee5dc16198
--- /dev/null
+++ b/meta-webserver/recipes-httpd/monkey/monkey_1.6.9.bb
@@ -0,0 +1,92 @@
+SUMMARY = "Fast and Lightweight HTTP Server for Linux"
+HOMEPAGE = "http://monkey-project.com"
+BUGTRACKER = "https://github.com/monkey/monkey/issues"
+
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2ee41112a44fe7014dce33e26468ba93"
+
+SECTION = "net"
+
+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"
+
+SRCREV = "7999b487fded645381d387ec0e057e92407b0d2c"
+S = "${WORKDIR}/git"
+
+UPSTREAM_CHECK_URI = "https://github.com/monkey/monkey/releases"
+UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz"
+
+EXTRA_OECMAKE = "-DINSTALL_LOGDIR=${localstatedir}/log/monkey/ \
+ -DPID_FILE=/run/monkey.pid \
+ -DINSTALL_SYSCONFDIR=${sysconfdir}/monkey/ \
+ -DWITH_PLUGINS=* \
+ -DWITHOUT_PLUGINS=mbedtls \
+ -DWITH_DEBUG=1 \
+ -DDEFAULT_USER='www-data' \
+ -DWITH_SYSTEM_MALLOC=1 \
+ "
+
+EXTRA_OECMAKE:append:libc-musl = " -DWITH_MUSL=1 "
+
+# GCC-10+ defaults to -fno-common
+CFLAGS += "-fcommon"
+
+DISABLE_STATIC = ""
+
+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}
+ install -Dm 0755 ${WORKDIR}/monkey.init ${D}${sysconfdir}/init.d/monkey
+ # Create /var/log/monkey in runtime.
+ if [ "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" ]; then
+ install -d ${D}${nonarch_libdir}/tmpfiles.d
+ echo "d ${localstatedir}/log/${BPN} 0755 ${BPN} ${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 ${BPN} ${BPN} 0755 ${localstatedir}/log/${BPN} none" > ${D}${sysconfdir}/default/volatiles/99_${BPN}
+ fi
+ if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
+ install -Dm 644 ${WORKDIR}/monkey.service ${D}/${systemd_unitdir}/system/monkey.service
+ fi
+}
+
+INITSCRIPT_NAME = "monkey"
+INITSCRIPT_PARAMS = "defaults 70"
+
+SYSTEMD_SERVICE:${PN} = "monkey.service"
+
+PACKAGES += "${PN}-plugins"
+
+FILES:${PN}-plugins = "${libdir}/monkey-*.so"
+
+FILES:${PN} += "${nonarch_libdir}/tmpfiles.d"
+
+CONFFILES:${PN} = "${sysconfdir}/monkey/monkey.conf \
+ ${sysconfdir}/monkey/sites/default \
+ ${sysconfdir}/monkey/monkey.mime \
+ ${sysconfdir}/monkey/plugins.load \
+ ${sysconfdir}/monkey/plugins/proxy_reverse/proxy_reverse.conf \
+ ${sysconfdir}/monkey/plugins/mandril/mandril.conf \
+ ${sysconfdir}/monkey/plugins/fastcgi/fastcgi.conf \
+ ${sysconfdir}/monkey/plugins/logger/logger.conf \
+ ${sysconfdir}/monkey/plugins/cgi/cgi.conf \
+ ${sysconfdir}/monkey/plugins/cheetah/cheetah.conf \
+ ${sysconfdir}/monkey/plugins/dirlisting/dirhtml.conf \
+ ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/header.theme \
+ ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/footer.theme \
+ ${sysconfdir}/monkey/plugins/dirlisting/themes/guineo/entry.theme \
+ ${sysconfdir}/monkey/plugins/auth/README \
+ ${sysconfdir}/monkey/plugins/auth/monkey.users \
+ "
+
diff --git a/meta-webserver/recipes-httpd/nginx/files/default_server.site b/meta-webserver/recipes-httpd/nginx/files/default_server.site
new file mode 100644
index 0000000000..7a8a215cfa
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/files/default_server.site
@@ -0,0 +1,14 @@
+# Default server configuration
+server {
+ listen 80 default_server;
+ listen [::]:80 default_server;
+
+ root /var/www/localhost/html;
+
+ index index.html index.htm;
+
+ server_name _;
+
+ # redirect server error pages to the static page /50x.html
+ error_page 500 502 503 504 /50x.html;
+}
diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch b/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch
new file mode 100644
index 0000000000..90159a6677
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/files/nginx-fix-pidfile.patch
@@ -0,0 +1,99 @@
+Description: Fix NGINX pidfile handling
+Author: Tj <ubuntu@iam.tj>
+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/nginx/+bug/1581864
+Last-Update: 2019-06-04
+---
+This patch header follows DEP-3: http://dep.debian.net/deps/dep3/
+
+Upstream-Status: Pending
+
+This patch is from ubuntu, https://github.com/aroth-arsoft/pkg-nginx/blob
+/master/debian/patches/nginx-fix-pidfile.patch, for fix below
+error info:
+nginx.service: failed to parse pid from file /run/nginx/nginx.pid:
+invalid argument
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+
+diff --git a/src/core/nginx.c b/src/core/nginx.c
+index 9fcb0eb2..083eba1d 100644
+--- a/src/core/nginx.c
++++ b/src/core/nginx.c
+@@ -338,14 +338,21 @@ main(int argc, char *const *argv)
+ ngx_process = NGX_PROCESS_MASTER;
+ }
+
++ /* tell-tale to detect if this is parent or child process */
++ ngx_int_t child_pid = NGX_BUSY;
++
+ #if !(NGX_WIN32)
+
+ if (ngx_init_signals(cycle->log) != NGX_OK) {
+ return 1;
+ }
+
++ /* tell-tale that this code has been executed */
++ child_pid--;
++
+ if (!ngx_inherited && ccf->daemon) {
+- if (ngx_daemon(cycle->log) != NGX_OK) {
++ child_pid = ngx_daemon(cycle->log);
++ if (child_pid == NGX_ERROR) {
+ return 1;
+ }
+
+@@ -358,8 +365,19 @@ main(int argc, char *const *argv)
+
+ #endif
+
+- if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) {
+- return 1;
++ /* If ngx_daemon() returned the child's PID in the parent process
++ * after the fork() set ngx_pid to the child_pid, which gets
++ * written to the PID file, then exit.
++ * For NGX_WIN32 always write the PID file
++ * For others, only write it from the parent process */
++ if (child_pid < NGX_OK || child_pid > NGX_OK) {
++ ngx_pid = child_pid > NGX_OK ? child_pid : ngx_pid;
++ if (ngx_create_pidfile(&ccf->pid, cycle->log) != NGX_OK) {
++ return 1;
++ }
++ }
++ if (child_pid > NGX_OK) {
++ exit(0);
+ }
+
+ if (ngx_log_redirect_stderr(cycle) != NGX_OK) {
+diff --git a/src/os/unix/ngx_daemon.c b/src/os/unix/ngx_daemon.c
+index 385c49b6..3719854c 100644
+--- a/src/os/unix/ngx_daemon.c
++++ b/src/os/unix/ngx_daemon.c
+@@ -7,14 +7,17 @@
+
+ #include <ngx_config.h>
+ #include <ngx_core.h>
++#include <unistd.h>
+
+
+ ngx_int_t
+ ngx_daemon(ngx_log_t *log)
+ {
+ int fd;
++ /* retain the return value for passing back to caller */
++ pid_t pid_child = fork();
+
+- switch (fork()) {
++ switch (pid_child) {
+ case -1:
+ ngx_log_error(NGX_LOG_EMERG, log, ngx_errno, "fork() failed");
+ return NGX_ERROR;
+@@ -23,7 +26,8 @@ ngx_daemon(ngx_log_t *log)
+ break;
+
+ default:
+- exit(0);
++ /* let caller do the exit() */
++ return pid_child;
+ }
+
+ ngx_parent = ngx_pid;
diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.conf b/meta-webserver/recipes-httpd/nginx/files/nginx.conf
index 69d3a2adc9..6d219422b3 100644
--- a/meta-webserver/recipes-httpd/nginx/files/nginx.conf
+++ b/meta-webserver/recipes-httpd/nginx/files/nginx.conf
@@ -1,118 +1,47 @@
-
user www;
-worker_processes 1;
-
-error_log /var/log/nginx/error.log;
-#error_log logs/error.log notice;
-#error_log logs/error.log info;
-
-pid /run/nginx/nginx.pid;
-
+worker_processes 1;
+pid /run/nginx/nginx.pid;
+include /etc/nginx/modules-enabled/*.conf;
events {
- worker_connections 1024;
+ worker_connections 768;
+ # multi_accept on;
}
-
http {
- include mime.types;
+ # Basic Settings
+ sendfile on;
+ tcp_nopush on;
+ tcp_nodelay on;
+ keepalive_timeout 65;
+ types_hash_max_size 2048;
+ # server_tokens off;
+
+ # server_names_hash_bucket_size 64;
+ # server_name_in_redirect off;
+
+ include /etc/nginx/mime.types;
default_type application/octet-stream;
- log_format main '$remote_addr - $remote_user [$time_local] "$request" '
- '$status $body_bytes_sent "$http_referer" '
- '"$http_user_agent" "$http_x_forwarded_for"';
-
- access_log /var/log/nginx/access.log main;
-
- sendfile on;
- #tcp_nopush on;
-
- #keepalive_timeout 0;
- keepalive_timeout 65;
-
- #gzip on;
-
- server {
- listen 80;
- server_name localhost;
-
- #charset koi8-r;
-
- #access_log logs/host.access.log main;
-
- location / {
- root /var/www/localhost/html;
- index index.html index.htm;
- }
-
- #error_page 404 /404.html;
-
- # redirect server error pages to the static page /50x.html
- #
- error_page 500 502 503 504 /50x.html;
- location = /50x.html {
- root /var/www/localhost/html;
- }
-
- # proxy the PHP scripts to Apache listening on 127.0.0.1:80
- #
- #location ~ \.php$ {
- # proxy_pass http://127.0.0.1;
- #}
-
- # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
- #
- #location ~ \.php$ {
- # root html;
- # fastcgi_pass 127.0.0.1:9000;
- # fastcgi_index index.php;
- # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
- # include fastcgi_params;
- #}
-
- # deny access to .htaccess files, if Apache's document root
- # concurs with nginx's one
- #
- #location ~ /\.ht {
- # deny all;
- #}
- }
-
-
- # another virtual host using mix of IP-, name-, and port-based configuration
- #
- #server {
- # listen 8000;
- # listen somename:8080;
- # server_name somename alias another.alias;
-
- # location / {
- # root html;
- # index index.html index.htm;
- # }
- #}
-
-
- # HTTPS server
- #
- #server {
- # listen 443;
- # server_name localhost;
-
- # ssl on;
- # ssl_certificate cert.pem;
- # ssl_certificate_key cert.key;
+ # SSL Settings
+ ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3; # Dropping SSLv3, ref: POODLE
+ ssl_prefer_server_ciphers on;
- # ssl_session_timeout 5m;
+ ## Logging
+ access_log /var/log/nginx/access.log;
+ error_log /var/log/nginx/error.log;
- # ssl_protocols SSLv2 SSLv3 TLSv1;
- # ssl_ciphers HIGH:!aNULL:!MD5;
- # ssl_prefer_server_ciphers on;
+ ## Gzip settings
+ gzip on;
- # location / {
- # root html;
- # index index.html index.htm;
- # }
- #}
+ gzip_vary on;
+ gzip_proxied any;
+ gzip_comp_level 6;
+ gzip_buffers 16 8k;
+ gzip_http_version 1.1;
+ gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
+ ## Virtual Host Configs
+ include /etc/nginx/conf.d/*.conf;
+ include /etc/nginx/sites-enabled/*;
}
diff --git a/meta-webserver/recipes-httpd/nginx/files/nginx.service b/meta-webserver/recipes-httpd/nginx/files/nginx.service
index ce99061717..9a6ca96517 100644
--- a/meta-webserver/recipes-httpd/nginx/files/nginx.service
+++ b/meta-webserver/recipes-httpd/nginx/files/nginx.service
@@ -1,11 +1,15 @@
[Unit]
-Description=Nginx Server
-After=network.target
+Description=The NGINX HTTP and reverse proxy server
+After=syslog.target network.target remote-fs.target nss-lookup.target
+
[Service]
Type=forking
PIDFile=/run/nginx/nginx.pid
+ExecStartPre=@SBINDIR@/nginx -t
ExecStart=@SBINDIR@/nginx
-ExecStop=@SBINDIR@/nginx -s stop
ExecReload=@SBINDIR@/nginx -s reload
+ExecStop=@BASE_BINDIR@/kill -s QUIT $MAINPID
+PrivateTmp=true
+
[Install]
WantedBy=multi-user.target
diff --git a/meta-webserver/recipes-httpd/nginx/files/proxy_params b/meta-webserver/recipes-httpd/nginx/files/proxy_params
new file mode 100644
index 0000000000..df75bc5d74
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/files/proxy_params
@@ -0,0 +1,4 @@
+proxy_set_header Host $http_host;
+proxy_set_header X-Real-IP $remote_addr;
+proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+proxy_set_header X-Forwarded-Proto $scheme;
diff --git a/meta-webserver/recipes-httpd/nginx/nginx.inc b/meta-webserver/recipes-httpd/nginx/nginx.inc
index e6ae52a09f..1ea32f7c94 100644
--- a/meta-webserver/recipes-httpd/nginx/nginx.inc
+++ b/meta-webserver/recipes-httpd/nginx/nginx.inc
@@ -9,24 +9,27 @@ LICENSE = "BSD-2-Clause"
SECTION = "net"
-DEPENDS = "libpcre zlib openssl"
+DEPENDS = "libpcre zlib"
SRC_URI = " \
http://nginx.org/download/nginx-${PV}.tar.gz \
file://nginx-cross.patch \
file://0001-Allow-the-overriding-of-the-endianness-via-the-confi.patch \
file://nginx.conf \
+ file://default_server.site \
+ file://proxy_params \
file://nginx.init \
file://nginx-volatile.conf \
file://nginx.service \
+ file://nginx-fix-pidfile.patch \
"
inherit siteinfo update-rc.d useradd systemd
-SYSTEMD_SERVICE_${PN} = "nginx.service"
+SYSTEMD_SERVICE:${PN} = "nginx.service"
-CFLAGS_append = " -fPIE -pie"
-CXXFLAGS_append = " -fPIE -pie"
+CFLAGS:append = " -fPIE -pie"
+CXXFLAGS:append = " -fPIE -pie"
NGINX_WWWDIR ?= "${localstatedir}/www/localhost"
NGINX_USER ?= "www"
@@ -34,7 +37,15 @@ NGINX_USER ?= "www"
EXTRA_OECONF = ""
DISABLE_STATIC = ""
+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,,"
do_configure () {
if [ "${SITEINFO_BITS}" = "64" ]; then
@@ -58,7 +69,7 @@ do_configure () {
--with-ptr-size=${PTRSIZE} \
--with-sig-atomic-t=${PTRSIZE} \
--with-size-t=${PTRSIZE} \
- --with-off-t=${PTRSIZE} \
+ --with-off-t=8 \
--with-time-t=${PTRSIZE} \
--with-sys-nerr=132 \
--conf-path=${sysconfdir}/nginx/nginx.conf \
@@ -71,7 +82,7 @@ do_configure () {
--http-scgi-temp-path=/run/nginx/scgi_temp \
--pid-path=/run/nginx/nginx.pid \
--prefix=${prefix} \
- --with-http_ssl_module \
+ --with-threads \
--with-http_gzip_static_module \
${EXTRA_OECONF} ${PACKAGECONFIG_CONFARGS}
}
@@ -83,13 +94,13 @@ do_install () {
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
install -d ${D}${sysconfdir}/${BPN}
- ln -snf ${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
+ ln -rs ${D}${localstatedir}/run/${BPN} ${D}${sysconfdir}/${BPN}/run
install -d ${D}${NGINX_WWWDIR}
- mv ${D}/usr/html ${D}${NGINX_WWWDIR}/
+ mv ${D}${exec_prefix}/html ${D}${NGINX_WWWDIR}/
chown ${NGINX_USER}:www-data -R ${D}${NGINX_WWWDIR}
install -d ${D}${sysconfdir}/init.d
@@ -99,28 +110,46 @@ do_install () {
install -d ${D}${sysconfdir}/nginx
install -m 0644 ${WORKDIR}/nginx.conf ${D}${sysconfdir}/nginx/nginx.conf
+ sed -i 's,/etc/,${sysconfdir}/,g' ${D}${sysconfdir}/nginx/nginx.conf
sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/nginx.conf
sed -i 's/^user.*/user ${NGINX_USER};/g' ${D}${sysconfdir}/nginx/nginx.conf
+ install -Dm 0644 ${WORKDIR}/default_server.site ${D}${sysconfdir}/nginx/sites-available/default_server
+ sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/nginx/sites-available/default_server
install -d ${D}${sysconfdir}/nginx/sites-enabled
+ ln -s ../sites-available/default_server ${D}${sysconfdir}/nginx/sites-enabled/
+
+ install -m 0644 ${WORKDIR}/proxy_params ${D}${sysconfdir}/nginx/proxy_params
install -d ${D}${sysconfdir}/default/volatiles
install -m 0644 ${WORKDIR}/nginx-volatile.conf ${D}${sysconfdir}/default/volatiles/99_nginx
sed -i 's,/var/,${localstatedir}/,g' ${D}${sysconfdir}/default/volatiles/99_nginx
sed -i 's,@NGINX_USER@,${NGINX_USER},g' ${D}${sysconfdir}/default/volatiles/99_nginx
+ # cleanup configuration folder
+ rm ${D}${sysconfdir}/nginx/*.default
+
+ # add additional configuration folders
+ install -d ${D}${sysconfdir}/nginx/modules-available
+ install -d ${D}${sysconfdir}/nginx/modules-enabled
+ install -d ${D}${sysconfdir}/nginx/server-conf.d
+ install -d ${D}${sysconfdir}/nginx/conf.d
+
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)};then
install -d ${D}${systemd_unitdir}/system
install -m 0644 ${WORKDIR}/nginx.service ${D}${systemd_unitdir}/system/
sed -i -e 's,@SYSCONFDIR@,${sysconfdir},g' \
-e 's,@LOCALSTATEDIR@,${localstatedir},g' \
-e 's,@SBINDIR@,${sbindir},g' \
+ -e 's,@BASE_BINDIR@,${base_bindir},g' \
${D}${systemd_unitdir}/system/nginx.service
fi
+
+ rm -rf ${D}${localstatedir}/log/
}
-pkg_postinst_${PN} () {
+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
@@ -128,12 +157,12 @@ pkg_postinst_${PN} () {
fi
}
-FILES_${PN} += " \
+FILES:${PN} += " \
${localstatedir}/ \
${systemd_unitdir}/system/nginx.service \
"
-CONFFILES_${PN} = " \
+CONFFILES:${PN} = " \
${sysconfdir}/nginx/nginx.conf \
${sysconfdir}/nginx/fastcgi.conf \
${sysconfdir}/nginx/fastcgi_params \
@@ -149,7 +178,7 @@ INITSCRIPT_NAME = "nginx"
INITSCRIPT_PARAMS = "defaults 92 20"
USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = " \
+USERADD_PARAM:${PN} = " \
--system --no-create-home \
--home ${NGINX_WWWDIR} \
--groups www-data \
diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.13.12.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.13.12.bb
deleted file mode 100644
index e6293808bc..0000000000
--- a/meta-webserver/recipes-httpd/nginx/nginx_1.13.12.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-require nginx.inc
-
-# 1.14.x branch is the current stable branch, the recommended default
-# 1.13.x is the current mainline branches containing all new features
-DEFAULT_PREFERENCE = "-1"
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
-
-SRC_URI[md5sum] = "20871b2cf21a16dbfb83078b4dc2dde0"
-SRC_URI[sha256sum] = "fb92f5602cdb8d3ab1ad47dbeca151b185d62eedb67d347bbe9d79c1438c85de"
diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.14.0.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.14.0.bb
deleted file mode 100644
index de229605ee..0000000000
--- a/meta-webserver/recipes-httpd/nginx/nginx_1.14.0.bb
+++ /dev/null
@@ -1,6 +0,0 @@
-require nginx.inc
-
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3691402cc54ce09f800ca348634a2dfe"
-
-SRC_URI[md5sum] = "2d856aca3dfe1d32e3c9f8c4cac0cc95"
-SRC_URI[sha256sum] = "5d15becbf69aba1fe33f8d416d97edd95ea8919ea9ac519eff9bafebb6022cb5"
diff --git a/meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb
new file mode 100644
index 0000000000..b69fd7dab0
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/nginx_1.21.1.bb
@@ -0,0 +1,10 @@
+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.25.1.bb b/meta-webserver/recipes-httpd/nginx/nginx_1.25.1.bb
new file mode 100644
index 0000000000..702eac39e2
--- /dev/null
+++ b/meta-webserver/recipes-httpd/nginx/nginx_1.25.1.bb
@@ -0,0 +1,6 @@
+require nginx.inc
+
+LIC_FILES_CHKSUM = "file://LICENSE;md5=79ad2eb837299421c4435dedc8897b3d"
+
+SRC_URI[sha256sum] = "f09071ac46e0ea3adc0008ef0baca229fc6b4be4533baef9bbbfba7de29a8602"
+
diff --git a/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch b/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch
deleted file mode 100644
index 8cd4682355..0000000000
--- a/meta-webserver/recipes-httpd/nostromo/files/0001-GNUmakefile-add-possibility-to-override-variables.patch
+++ /dev/null
@@ -1,145 +0,0 @@
-From 7fa0d31ec5c0be9dca84a03851b2d44f61527ec8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric@eukrea.com>
-Date: Sun, 4 Dec 2011 16:01:04 +0100
-Subject: [PATCH] GNUmakefile: add possibility to override variables
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-this is useful for cross compilation
-
-Signed-off-by: Eric Bénard <eric@eukrea.com>
----
-Upstream-Status: Inappropriate [embedded specific]
- src/libbsd/GNUmakefile | 10 +++++-----
- src/libmy/GNUmakefile | 26 +++++++++++++-------------
- src/nhttpd/GNUmakefile | 12 ++++++------
- src/tools/GNUmakefile | 8 ++++----
- 4 files changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/src/libbsd/GNUmakefile b/src/libbsd/GNUmakefile
-index e2d01a3..b034bc6 100644
---- a/src/libbsd/GNUmakefile
-+++ b/src/libbsd/GNUmakefile
-@@ -1,12 +1,12 @@
--CCFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes -c
-+CFLAGS := -O2 -pipe -Wall -Werror -Wstrict-prototypes -c
-
- libbsd.a: strlcpy.o strlcat.o
-- ar -r libbsd.a strlcpy.o strlcat.o
-- ranlib libbsd.a
-+ $(AR) -r libbsd.a strlcpy.o strlcat.o
-+ $(RANLIB) libbsd.a
-
- strlcpy.o: strlcpy.c
-- cc ${CCFLAGS} strlcpy.c
-+ $(CC) $(CFLAGS) strlcpy.c
- strlcat.o: strlcat.c
-- cc ${CCFLAGS} strlcat.c
-+ $(CC) $(CFLAGS) strlcat.c
- clean:
- rm -f libbsd.a *.o
-diff --git a/src/libmy/GNUmakefile b/src/libmy/GNUmakefile
-index ce90dd9..891ffea 100644
---- a/src/libmy/GNUmakefile
-+++ b/src/libmy/GNUmakefile
-@@ -1,30 +1,30 @@
--CCFLAGS = -O2 -Wall -Werror -Wstrict-prototypes -c
-+CFLAGS := -O2 -Wall -Werror -Wstrict-prototypes -c
-
- libmy.a: strcutl.o strcutw.o strcuts.o strcuti.o strcutf.o flog.o flogd.o fparse.o strlower.o strb64d.o
-- ar -r libmy.a strcutl.o strcutw.o strcuts.o strcuti.o strcutf.o flog.o flogd.o fparse.o strlower.o strb64d.o
-- ranlib libmy.a
-+ $(AR) -r libmy.a strcutl.o strcutw.o strcuts.o strcuti.o strcutf.o flog.o flogd.o fparse.o strlower.o strb64d.o
-+ $(RANLIB) libmy.a
-
- strcutl.o: strcutl.c
-- cc ${CCFLAGS} strcutl.c
-+ $(CC) $(CFLAGS) strcutl.c
- strcutw.o: strcutw.c
-- cc ${CCFLAGS} strcutw.c
-+ $(CC) $(CFLAGS) strcutw.c
- strcuts.o: strcuts.c
-- cc ${CCFLAGS} strcuts.c
-+ $(CC) $(CFLAGS) strcuts.c
- strcuti.o: strcuti.c
-- cc ${CCFLAGS} strcuti.c
-+ $(CC) $(CFLAGS) strcuti.c
- strcutf.o: strcutf.c
-- cc ${CCFLAGS} strcutf.c
-+ $(CC) $(CFLAGS) strcutf.c
- strlower.o: strlower.c
-- cc ${CCFLAGS} strlower.c
-+ $(CC) $(CFLAGS) strlower.c
- strb64d.o: strb64d.c
-- cc ${CCFLAGS} strb64d.c
-+ $(CC) $(CFLAGS) strb64d.c
-
- flog.o: flog.c
-- cc ${CCFLAGS} flog.c
-+ $(CC) $(CFLAGS) flog.c
- flogd.o: flogd.c
-- cc ${CCFLAGS} flogd.c
-+ $(CC) $(CFLAGS) flogd.c
- fparse.o: fparse.c
-- cc ${CCFLAGS} fparse.c
-+ $(CC) $(CFLAGS) fparse.c
-
- clean:
- rm -f libmy.a *.o
-diff --git a/src/nhttpd/GNUmakefile b/src/nhttpd/GNUmakefile
-index f6d12de..9524911 100644
---- a/src/nhttpd/GNUmakefile
-+++ b/src/nhttpd/GNUmakefile
-@@ -1,20 +1,20 @@
- # $nostromo: GNUmakefile,v 1.6 2016/04/12 19:02:06 hacki Exp $
-
--CCFLAGS = -O2 -pipe -Wall -Wstrict-prototypes -c
-+CFLAGS := -O2 -pipe -Wall -Wstrict-prototypes -c
-
- nhttpd: main.o http.o sys.o
-- cc -L../libmy -L../libbsd -o nhttpd main.o http.o sys.o -lmy -lbsd -lssl -lcrypt
-- strip nhttpd
-+ $(CC) -L../libmy -L../libbsd -o nhttpd main.o http.o sys.o -lmy -lbsd -lssl -lcrypt
-+# $(STRIP) nhttpd
- nroff -Tascii -c -mandoc nhttpd.8 > nhttpd.cat8
-
- main.o: main.c
-- cc ${CCFLAGS} main.c
-+ $(CC) $(CFLAGS) main.c
-
- http.o: http.c
-- cc ${CCFLAGS} http.c
-+ $(CC) $(CFLAGS) http.c
-
- sys.o: sys.c
-- cc ${CCFLAGS} sys.c
-+ $(CC) $(CFLAGS) sys.c
-
- clean:
- rm -f nhttpd nhttpd.cat8 *.o
-diff --git a/src/tools/GNUmakefile b/src/tools/GNUmakefile
-index 15bea61..663ddb5 100644
---- a/src/tools/GNUmakefile
-+++ b/src/tools/GNUmakefile
-@@ -1,13 +1,13 @@
- # $nostromo: GNUmakefile,v 1.3 2016/04/12 19:02:58 hacki Exp $
-
--CCFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes -c
-+CFLAGS = -O2 -pipe -Wall -Werror -Wstrict-prototypes
-
- crypt: crypt.o
-- cc -L../libbsd -o crypt crypt.o -lcrypt -lbsd
-- strip crypt
-+ $(CC) $(CFLAGS) -L../libbsd -o crypt crypt.o -lcrypt -lbsd
-+# $(STRIP) crypt
-
- crypt.o: crypt.c
-- cc ${CCFLAGS} crypt.c
-+ $(CC) $(CFLAGS) -c crypt.c
-
- clean:
- rm -f crypt *.o
---
-1.7.6.4
-
diff --git a/meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf b/meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf
deleted file mode 100644
index 6674bb696c..0000000000
--- a/meta-webserver/recipes-httpd/nostromo/files/nhttpd.conf
+++ /dev/null
@@ -1,55 +0,0 @@
-# MAIN [MANDATORY]
-
-servername localhost
-#servername www.nazgul.ch:8080
-serverlisten *
-#serverlisten 81.221.21.250 127.0.0.1 ::1
-serveradmin webmaster@localhost
-serverroot /var/nostromo
-servermimes /var/nostromo/conf/mimes
-docroot /var/nostromo/htdocs
-docindex index.html
-
-# LOGS [OPTIONAL]
-
-logpid /var/run/nostromo/nhttpd.pid
-#logaccess /var/log/nostromo/access_log
-
-# SETUID [RECOMMENDED]
-
-user www-data
-
-# BASIC AUTHENTICATION [OPTIONAL]
-
-#htaccess .htaccess
-#htpasswd /var/nostromo/conf/.htpasswd
-#htpasswd +bsdauth
-#htpasswd +bsdauthnossl
-
-# SSL [OPTIONAL]
-
-#sslport 443
-#sslcert /etc/ssl/server.crt
-#sslcertkey /etc/ssl/server.key
-
-# CUSTOM RESPONSES [OPTIONAL]
-#
-# The custom responses are searched in the corresponding document root.
-
-#custom_401 custom_401.html
-#custom_403 custom_403.html
-#custom_404 custom_404.html
-
-# ALIASES [OPTIONAL]
-
-/icons /var/nostromo/icons
-
-# VIRTUAL HOSTS [OPTIONAL]
-
-#www.rahel.ch /var/nostromo/htdocs/www.rahel.ch
-#www.rahel.ch:8080 /var/nostromo/htdocs/www.rahel.ch
-
-# HOMEDIRS [OPTIONAL]
-
-#homedirs /home
-#homedirs_public public_www
diff --git a/meta-webserver/recipes-httpd/nostromo/files/nostromo b/meta-webserver/recipes-httpd/nostromo/files/nostromo
deleted file mode 100644
index 8a28868829..0000000000
--- a/meta-webserver/recipes-httpd/nostromo/files/nostromo
+++ /dev/null
@@ -1,34 +0,0 @@
-#!/bin/sh
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-DAEMON=nhttpd
-NAME=nhttpd
-DESC="Nostromo Web Server"
-OPTS="-c /etc/nhttpd.conf"
-
-case "$1" in
- start)
- echo -n "Starting $DESC: "
- start-stop-daemon --start -x "$DAEMON" -- $OPTS
- echo "$NAME."
- ;;
- stop)
- echo -n "Stopping $DESC: "
- start-stop-daemon --stop -x "$DAEMON"
- echo "$NAME."
- ;;
- restart|force-reload)
- echo -n "Restarting $DESC: "
- start-stop-daemon --stop -x "$DAEMON"
- sleep 1
- start-stop-daemon --start -x "$DAEMON" -- $OPTS
- echo "$NAME."
- ;;
- *)
- N=/etc/init.d/$NAME
- echo "Usage: $N {start|stop|restart|force-reload}" >&2
- exit 1
- ;;
-esac
-
-exit 0
diff --git a/meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf b/meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf
deleted file mode 100644
index b7a9f4886e..0000000000
--- a/meta-webserver/recipes-httpd/nostromo/files/tmpfiles.conf
+++ /dev/null
@@ -1 +0,0 @@
-d /run/nostromo - www-data www-data -
diff --git a/meta-webserver/recipes-httpd/nostromo/files/volatiles b/meta-webserver/recipes-httpd/nostromo/files/volatiles
deleted file mode 100644
index 40924960c6..0000000000
--- a/meta-webserver/recipes-httpd/nostromo/files/volatiles
+++ /dev/null
@@ -1,2 +0,0 @@
-d www-data www-data 0775 /var/run/nostromo none
-d www-data www-data 0775 /var/log/nostromo none
diff --git a/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb b/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
deleted file mode 100644
index 16f45ce666..0000000000
--- a/meta-webserver/recipes-httpd/nostromo/nostromo_1.9.6.bb
+++ /dev/null
@@ -1,64 +0,0 @@
-SUMMARY = "A simple, fast and secure HTTP server"
-HOMEPAGE = "http://www.nazgul.ch/dev_nostromo.html"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://src/nhttpd/main.c;beginline=2;endline=14;md5=0bb3711a867b9704d3bfabcf5529b64e"
-
-SRC_URI = "http://www.nazgul.ch/dev/${BPN}-${PV}.tar.gz \
- file://0001-GNUmakefile-add-possibility-to-override-variables.patch \
- file://nhttpd.conf \
- file://volatiles \
- file://tmpfiles.conf \
- file://nostromo \
-"
-
-SRC_URI[md5sum] = "27aa241d78ff78920354c3e03a5026ea"
-SRC_URI[sha256sum] = "541494ecfeafec58c0876ccc90cc23b06e0144f6f42029af44c7cdb1f411e8eb"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-
-DEPENDS = "openssl groff-native base-passwd"
-
-inherit update-rc.d
-
-INITSCRIPT_NAME = "nostromo"
-INITSCRIPT_PARAMS = "defaults 70"
-
-do_compile() {
- oe_runmake
-}
-
-do_install() {
- install -d ${D}/${sbindir}
- install -m 0755 src/nhttpd/nhttpd ${D}/${sbindir}/nhttpd
- install -m 0755 src/tools/crypt ${D}/${sbindir}/crypt
- install -d ${D}/${mandir}/man8
- install -m 0444 src/nhttpd/nhttpd.8 ${D}/${mandir}/man8/nhttpd.8
- install -d ${D}${localstatedir}/nostromo/conf
- install -d ${D}${localstatedir}/nostromo/htdocs/cgi-bin
- install -d ${D}${localstatedir}/nostromo/icons
- install -d ${D}${sysconfdir}/init.d
- install -m 0644 conf/mimes ${D}${localstatedir}/nostromo/conf/mimes
- install -m 0644 ${WORKDIR}/nhttpd.conf ${D}${sysconfdir}
- install -m 0755 ${WORKDIR}/nostromo ${D}${sysconfdir}/init.d
- install -D -m 0644 ${WORKDIR}/volatiles ${D}${sysconfdir}/default/volatiles/nostromo
- if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
- install -D -m 0644 ${WORKDIR}/tmpfiles.conf ${D}${sysconfdir}/tmpfiles.d/nostromo.conf
- fi
- install -m 0644 htdocs/index.html ${D}${localstatedir}/nostromo/htdocs/index.html
- install -m 0644 htdocs/nostromo.gif ${D}${localstatedir}/nostromo/htdocs/nostromo.gif
- install -m 0644 icons/dir.gif ${D}${localstatedir}/nostromo/icons/dir.gif
- install -m 0644 icons/file.gif ${D}${localstatedir}/nostromo/icons/file.gif
- chown -R www-data:www-data ${D}/${localstatedir}/nostromo
-}
-
-CONFFILES_${PN} += "/var/nostromo/conf/mimes ${sysconfdir}/nhttpd.conf"
-
-pkg_postinst_${PN} () {
- if [ -z "$D" ]; then
- if [ -e /sys/fs/cgroup/systemd ]; then
- systemd-tmpfiles --create ${sysconfdir}/tmpfiles.d/nostromo.conf
- 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/sthttpd/sthttpd/0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch b/meta-webserver/recipes-httpd/sthttpd/sthttpd/0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch
new file mode 100644
index 0000000000..a1783a7adb
--- /dev/null
+++ b/meta-webserver/recipes-httpd/sthttpd/sthttpd/0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch
@@ -0,0 +1,51 @@
+From f3889e5870e9761ee6113fac7f38aa44cc43e46c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Sep 2022 00:30:52 -0700
+Subject: [PATCH] Define _GNU_SOURCE if HAVE_SIGSET is set
+
+This enforces using sigset() API which needs _GNU_SOURCE macro to be
+defined
+
+Upstream-Status: Submitted [https://github.com/blueness/sthttpd/pull/16]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/libhttpd.c | 5 ++++-
+ src/thttpd.c | 4 ++++
+ 2 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/libhttpd.c b/src/libhttpd.c
+index fa42c10..669be11 100644
+--- a/src/libhttpd.c
++++ b/src/libhttpd.c
+@@ -25,9 +25,12 @@
+ ** SUCH DAMAGE.
+ */
+
+-
+ #include <config.h>
+
++#ifdef HAVE_SIGSET
++#define _GNU_SOURCE
++#endif
++
+ //system headers
+ #include <sys/types.h>
+ #include <sys/param.h>
+diff --git a/src/thttpd.c b/src/thttpd.c
+index ad97188..3c7a449 100644
+--- a/src/thttpd.c
++++ b/src/thttpd.c
+@@ -28,6 +28,10 @@
+
+ #include <config.h>
+
++#ifdef HAVE_SIGSET
++#define _GNU_SOURCE
++#endif
++
+ //system headers
+ #include <sys/param.h>
+ #include <sys/types.h>
+--
+2.37.3
+
diff --git a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
index 81815d6526..b40b148512 100644
--- a/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
+++ b/meta-webserver/recipes-httpd/sthttpd/sthttpd_2.27.1.bb
@@ -4,25 +4,24 @@ HOMEPAGE = "http://opensource.dyc.edu/sthttpd"
LICENSE = "BSD-2-Clause"
LIC_FILES_CHKSUM = "file://src/thttpd.c;beginline=1;endline=26;md5=0c5762c2c34dcbe9eb18815516502872"
-DEPENDS += "base-passwd"
+DEPENDS += "base-passwd virtual/crypt"
-SRC_URI = "https://github.com/blueness/${BPN}/archive/v${PV}.tar.gz;downloadfilename=${BP}.tar.gz \
+SRCREV = "2845bf5bff2b820d2336c8c8061cbfc5f271e720"
+SRC_URI = "git://github.com/blueness/${BPN};branch=master;protocol=https \
+ file://0001-Define-_GNU_SOURCE-if-HAVE_SIGSET-is-set.patch \
file://thttpd.service \
file://thttpd.conf \
file://init"
-SRC_URI[md5sum] = "3cda1b6c8c8542b1510eadb8e540d8b6"
-SRC_URI[sha256sum] = "a1ee2806432eaf5b5dd267a0523701f9f1fa00fefd499d5bec42165a41e05846"
-
UPSTREAM_CHECK_URI = "https://github.com/blueness/sthttpd/releases/"
UPSTREAM_CHECK_REGEX = "v(?P<pver>\d+(\.\d+)+).tar.gz"
-S = "${WORKDIR}/sthttpd-${PV}"
+S = "${WORKDIR}/git"
inherit autotools update-rc.d systemd update-alternatives
ALTERNATIVE_PRIORITY = "100"
-ALTERNATIVE_${PN}-doc = "htpasswd.1"
+ALTERNATIVE:${PN}-doc = "htpasswd.1"
ALTERNATIVE_LINK_NAME[htpasswd.1] = "${mandir}/man1/htpasswd.1"
SRV_DIR ?= "${servicedir}/www"
@@ -31,12 +30,12 @@ SRV_DIR ?= "${servicedir}/www"
# but ${SRV_DIR} is not installed chgrp'd to the group by default.
WEBGROUP ?= "www-data"
-do_configure_prepend () {
+do_configure:prepend () {
export WEBDIR=${SRV_DIR}
export WEBGROUP=${WEBGROUP}
}
-do_install_append () {
+do_install:append () {
install -d ${D}${sysconfdir}/init.d
install -c -m 755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/thttpd
install -c -m 755 ${WORKDIR}/thttpd.conf ${D}${sysconfdir}
@@ -54,7 +53,7 @@ do_install_append () {
INITSCRIPT_NAME = "thttpd"
INITSCRIPT_PARAMS = "defaults"
-SYSTEMD_SERVICE_${PN} = "thttpd.service"
+SYSTEMD_SERVICE:${PN} = "thttpd.service"
-FILES_${PN} += "${SRV_DIR}"
-FILES_${PN}-dbg += "${SRV_DIR}/cgi-bin/.debug"
+FILES:${PN} += "${SRV_DIR}"
+FILES:${PN}-dbg += "${SRV_DIR}/cgi-bin/.debug"
diff --git a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb b/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb
deleted file mode 100644
index 071572d69c..0000000000
--- a/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_4.7.9.bb
+++ /dev/null
@@ -1,41 +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 = "GPLv2 & LGPLv3 & MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
- file://vendor/tecnickcom/tcpdf/LICENSE.TXT;md5=5c87b66a5358ebcc495b03e0afcd342c \
- file://js/jquery/MIT-LICENSE.txt;md5=e43aa437a6a1ba421653bd5034333bf9 \
-"
-
-SRC_URI = "https://files.phpmyadmin.net/phpMyAdmin/${PV}/phpMyAdmin-${PV}-all-languages.tar.xz \
- file://apache.conf \
-"
-
-SRC_URI[md5sum] = "0a862e3fa52c8b9078e0441ee82be831"
-SRC_URI[sha256sum] = "f19b503f0afb0dd3389d4bb11dab3f438d36e85eef11a5c400c592fd5f539398"
-
-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"
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_2.6.0.bb b/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb
deleted file mode 100644
index 2b8d1efb71..0000000000
--- a/meta-webserver/recipes-php/xdebug/xdebug_2.6.0.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Debugging and profiling extension for PHP"
-LICENSE = "Xdebug"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=34df3a274aa12b795417c65634c07f16"
-
-DEPENDS = "php re2c-native"
-
-SRC_URI = "http://xdebug.org/files/xdebug-${PV}.tgz"
-
-SRC_URI[md5sum] = "ed3545852e6f4a00fb8730362d0431ee"
-SRC_URI[sha256sum] = "b5264cc03bf68fcbb04b97229f96dca505d7b87ec2fb3bd4249896783d29cbdc"
-
-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.0.bb b/meta-webserver/recipes-php/xdebug/xdebug_3.2.0.bb
new file mode 100644
index 0000000000..fe6fc5bf9a
--- /dev/null
+++ b/meta-webserver/recipes-php/xdebug/xdebug_3.2.0.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] = "7769b20eecdadf5fbe9f582512c10b394fb575b6f7a8c3a3a82db6883e0032b7"
+
+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/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch b/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
deleted file mode 100644
index eec9dd7ce0..0000000000
--- a/meta-webserver/recipes-support/fcgi/fcgi/add_foreign_to_AM_INIT_AUTOMAKE.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Upstream-Status: Pending
-
-use automake options "foreign" to set the strictness as appropriate
-
-Signed-off-by: Yang Haibo <b40869@freescale.com>
---- fcgi-ori/configure.in 2014-08-05 14:58:35.000000000 +0800
-+++ fcgi-2.4.0/configure.in 2014-08-05 14:59:08.000000000 +0800
-@@ -4,8 +4,8 @@
- dnl generate the file "configure", which is run during the build
- dnl to configure the system for the local environment.
-
--AC_INIT
--AM_INIT_AUTOMAKE(fcgi, 2.4.1-SNAP-0910052249)
-+AC_INIT([fcgi], [2.4.1-SNAP-0910052249])
-+AM_INIT_AUTOMAKE([foreign])
-
- AM_CONFIG_HEADER(fcgi_config.h)
-
diff --git a/meta-webserver/recipes-support/fcgi/fcgi_git.bb b/meta-webserver/recipes-support/fcgi/fcgi_git.bb
index a17e70f09e..61ef6073e0 100644
--- a/meta-webserver/recipes-support/fcgi/fcgi_git.bb
+++ b/meta-webserver/recipes-support/fcgi/fcgi_git.bb
@@ -3,12 +3,11 @@ HOMEPAGE = "http://www.fastcgi.com"
LICENSE = "OML"
LIC_FILES_CHKSUM = "file://LICENSE.TERMS;md5=e3aacac3a647af6e7e31f181cda0a06a"
-SRCREV = "68100b5b8cb26f04b784778ed19ccef4fe389f57"
-PV = "2.4.1+git${SRCPV}"
+SRCREV = "382aa2b0d53a87c27f2f647dfaf670375ba0b85f"
+PV = "2.4.2"
-SRC_URI = "git://github.com/FastCGI-Archives/fcgi2.git;protocol=https \
- file://add_foreign_to_AM_INIT_AUTOMAKE.patch \
-"
+SRC_URI = "git://github.com/FastCGI-Archives/fcgi2.git;protocol=https;branch=master \
+ "
S = "${WORKDIR}/git"
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
new file mode 100644
index 0000000000..e160b8644a
--- /dev/null
+++ b/meta-webserver/recipes-support/fcgiwrap/fcgiwrap/0001-Fix-implicit-fallthrough-warning.patch
@@ -0,0 +1,313 @@
+From 962e532099d10ee6ce5b4ce68537bc46595230c0 Mon Sep 17 00:00:00 2001
+From: Joshua Watt <Joshua.Watt@garmin.com>
+Date: Tue, 24 Nov 2020 08:30:13 -0600
+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]
+Signed-off-by: Joshua Watt <Joshua.Watt@garmin.com>
+---
+ configure.ac | 3 +
+ fcgiwrap.c | 7 ++
+ m4/ax_gcc_func_attribute.m4 | 242 ++++++++++++++++++++++++++++++++++++
+ 3 files changed, 252 insertions(+)
+ create mode 100644 m4/ax_gcc_func_attribute.m4
+
+diff --git a/configure.ac b/configure.ac
+index bb3674e..9ef517a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -3,6 +3,7 @@
+
+ AC_PREREQ(2.61)
+ AC_INIT([fcgiwrap], [1.1.0], [root@localdomain.pl])
++AC_CONFIG_MACRO_DIRS([m4])
+ AM_CFLAGS="-std=gnu99 -Wall -Wextra -Werror -pedantic"
+ if test x"$CFLAGS" = x""; then
+ AM_CFLAGS="$AM_CFLAGS -O2 -g3"
+@@ -62,5 +63,7 @@ AC_FUNC_MALLOC
+ AC_CHECK_FUNCS([strchr strdup strrchr])
+ AC_CHECK_FUNCS([dup2 putenv select setenv strerror],, [AC_MSG_ERROR([seems as if your libraries don't provide an expected function])])
+
++AX_GCC_FUNC_ATTRIBUTE([fallthrough])
++
+ AC_CONFIG_FILES([Makefile])
+ AC_OUTPUT
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index b44d8aa..a83726b 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -56,6 +56,12 @@
+ #define UNIX_PATH_MAX 108
+ #endif
+
++#ifdef HAVE_FUNC_ATTRIBUTE_FALLTHROUGH
++#define FALLTHROUGH __attribute__ ((fallthrough))
++#else
++#define FALLTHROUGH (void)
++#endif
++
+ extern char **environ;
+ static char * const * inherited_environ;
+ static const char **allowed_programs;
+@@ -580,6 +586,7 @@ static void handle_fcgi_request(void)
+ execl(filename, filename, (void *)NULL);
+ cgi_error("502 Bad Gateway", "Cannot execute script", filename);
+
++ FALLTHROUGH;
+ default: /* parent */
+ close(pipe_in[0]);
+ close(pipe_out[1]);
+diff --git a/m4/ax_gcc_func_attribute.m4 b/m4/ax_gcc_func_attribute.m4
+new file mode 100644
+index 0000000..da2b1ac
+--- /dev/null
++++ b/m4/ax_gcc_func_attribute.m4
+@@ -0,0 +1,242 @@
++# ===========================================================================
++# https://www.gnu.org/software/autoconf-archive/ax_gcc_func_attribute.html
++# ===========================================================================
++#
++# SYNOPSIS
++#
++# AX_GCC_FUNC_ATTRIBUTE(ATTRIBUTE)
++#
++# DESCRIPTION
++#
++# This macro checks if the compiler supports one of GCC's function
++# attributes; many other compilers also provide function attributes with
++# the same syntax. Compiler warnings are used to detect supported
++# attributes as unsupported ones are ignored by default so quieting
++# warnings when using this macro will yield false positives.
++#
++# The ATTRIBUTE parameter holds the name of the attribute to be checked.
++#
++# If ATTRIBUTE is supported define HAVE_FUNC_ATTRIBUTE_<ATTRIBUTE>.
++#
++# The macro caches its result in the ax_cv_have_func_attribute_<attribute>
++# variable.
++#
++# The macro currently supports the following function attributes:
++#
++# alias
++# aligned
++# alloc_size
++# always_inline
++# artificial
++# cold
++# const
++# constructor
++# constructor_priority for constructor attribute with priority
++# deprecated
++# destructor
++# dllexport
++# dllimport
++# error
++# externally_visible
++# fallthrough
++# flatten
++# format
++# format_arg
++# gnu_format
++# gnu_inline
++# hot
++# ifunc
++# leaf
++# malloc
++# noclone
++# noinline
++# nonnull
++# noreturn
++# nothrow
++# optimize
++# pure
++# sentinel
++# sentinel_position
++# unused
++# used
++# visibility
++# warning
++# warn_unused_result
++# weak
++# weakref
++#
++# Unsupported function attributes will be tested with a prototype
++# returning an int and not accepting any arguments and the result of the
++# check might be wrong or meaningless so use with care.
++#
++# LICENSE
++#
++# Copyright (c) 2013 Gabriele Svelto <gabriele.svelto@gmail.com>
++#
++# Copying and distribution of this file, with or without modification, are
++# permitted in any medium without royalty provided the copyright notice
++# and this notice are preserved. This file is offered as-is, without any
++# warranty.
++
++#serial 12
++
++AC_DEFUN([AX_GCC_FUNC_ATTRIBUTE], [
++ AS_VAR_PUSHDEF([ac_var], [ax_cv_have_func_attribute_$1])
++
++ AC_CACHE_CHECK([for __attribute__(($1))], [ac_var], [
++ AC_LINK_IFELSE([AC_LANG_PROGRAM([
++ m4_case([$1],
++ [alias], [
++ int foo( void ) { return 0; }
++ int bar( void ) __attribute__(($1("foo")));
++ ],
++ [aligned], [
++ int foo( void ) __attribute__(($1(32)));
++ ],
++ [alloc_size], [
++ void *foo(int a) __attribute__(($1(1)));
++ ],
++ [always_inline], [
++ inline __attribute__(($1)) int foo( void ) { return 0; }
++ ],
++ [artificial], [
++ inline __attribute__(($1)) int foo( void ) { return 0; }
++ ],
++ [cold], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [const], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [constructor_priority], [
++ int foo( void ) __attribute__((__constructor__(65535/2)));
++ ],
++ [constructor], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [deprecated], [
++ int foo( void ) __attribute__(($1("")));
++ ],
++ [destructor], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [dllexport], [
++ __attribute__(($1)) int foo( void ) { return 0; }
++ ],
++ [dllimport], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [error], [
++ int foo( void ) __attribute__(($1("")));
++ ],
++ [externally_visible], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [fallthrough], [
++ int foo( void ) {switch (0) { case 1: __attribute__(($1)); case 2: break ; }};
++ ],
++ [flatten], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [format], [
++ int foo(const char *p, ...) __attribute__(($1(printf, 1, 2)));
++ ],
++ [gnu_format], [
++ int foo(const char *p, ...) __attribute__((format(gnu_printf, 1, 2)));
++ ],
++ [format_arg], [
++ char *foo(const char *p) __attribute__(($1(1)));
++ ],
++ [gnu_inline], [
++ inline __attribute__(($1)) int foo( void ) { return 0; }
++ ],
++ [hot], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [ifunc], [
++ int my_foo( void ) { return 0; }
++ static int (*resolve_foo(void))(void) { return my_foo; }
++ int foo( void ) __attribute__(($1("resolve_foo")));
++ ],
++ [leaf], [
++ __attribute__(($1)) int foo( void ) { return 0; }
++ ],
++ [malloc], [
++ void *foo( void ) __attribute__(($1));
++ ],
++ [noclone], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [noinline], [
++ __attribute__(($1)) int foo( void ) { return 0; }
++ ],
++ [nonnull], [
++ int foo(char *p) __attribute__(($1(1)));
++ ],
++ [noreturn], [
++ void foo( void ) __attribute__(($1));
++ ],
++ [nothrow], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [optimize], [
++ __attribute__(($1(3))) int foo( void ) { return 0; }
++ ],
++ [pure], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [sentinel], [
++ int foo(void *p, ...) __attribute__(($1));
++ ],
++ [sentinel_position], [
++ int foo(void *p, ...) __attribute__(($1(1)));
++ ],
++ [returns_nonnull], [
++ void *foo( void ) __attribute__(($1));
++ ],
++ [unused], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [used], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [visibility], [
++ int foo_def( void ) __attribute__(($1("default")));
++ int foo_hid( void ) __attribute__(($1("hidden")));
++ int foo_int( void ) __attribute__(($1("internal")));
++ int foo_pro( void ) __attribute__(($1("protected")));
++ ],
++ [warning], [
++ int foo( void ) __attribute__(($1("")));
++ ],
++ [warn_unused_result], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [weak], [
++ int foo( void ) __attribute__(($1));
++ ],
++ [weakref], [
++ static int foo( void ) { return 0; }
++ static int bar( void ) __attribute__(($1("foo")));
++ ],
++ [
++ m4_warn([syntax], [Unsupported attribute $1, the test may fail])
++ int foo( void ) __attribute__(($1));
++ ]
++ )], [])
++ ],
++ dnl GCC doesn't exit with an error if an unknown attribute is
++ dnl provided but only outputs a warning, so accept the attribute
++ dnl only if no warning were issued.
++ [AS_IF([grep -- -Wattributes conftest.err],
++ [AS_VAR_SET([ac_var], [no])],
++ [AS_VAR_SET([ac_var], [yes])])],
++ [AS_VAR_SET([ac_var], [no])])
++ ])
++
++ AS_IF([test yes = AS_VAR_GET([ac_var])],
++ [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_FUNC_ATTRIBUTE_$1), 1,
++ [Define to 1 if the system has the `$1' function attribute])], [])
++
++ AS_VAR_POPDEF([ac_var])
++])
+--
+2.29.2
+
diff --git a/meta-webserver/recipes-support/fcgiwrap/fcgiwrap_git.bb b/meta-webserver/recipes-support/fcgiwrap/fcgiwrap_git.bb
new file mode 100644
index 0000000000..a9a8ce0541
--- /dev/null
+++ b/meta-webserver/recipes-support/fcgiwrap/fcgiwrap_git.bb
@@ -0,0 +1,24 @@
+SUMMARY = "FastCGI wrapper for CGI scripts"
+DESCRIPTION = "FcgiWrap is a simple server for running CGI applications over FastCGI. Fcgiwrap can be used together with Nginx to serve CGI or Perl scripts"
+HOMEPAGE = "https://github.com/gnosek/fcgiwrap"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a95d02d614a3a0232d4e6e51b7963c5b"
+
+DEPENDS = "fcgi"
+
+SRC_URI = "git://github.com/gnosek/fcgiwrap.git;protocol=https;branch=${BRANCH} \
+ file://0001-Fix-implicit-fallthrough-warning.patch \
+ "
+BRANCH = "master"
+SRCREV = "99c942c90063c73734e56bacaa65f947772d9186"
+
+S = "${WORKDIR}/git"
+CFLAGS =+ "-I${B}"
+EXTRA_OEMAKE = "VPATH=${S}"
+
+inherit autotools pkgconfig
+
+do_install() {
+ install -Dm 755 ${B}/fcgiwrap ${D}${sbindir}/fcgiwrap
+}
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 8b2ff44c0c..0000000000
--- a/meta-webserver/recipes-support/spawn-fcgi/spawn-fcgi_1.6.4.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARRY = "spawn-fcgi is used to spawn FastCGI applications"
-HOMEPAGE = "http://redmine.lighttpd.net/projects/spawn-fcgi"
-
-LICENSE = "BSD"
-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_289.bb b/meta-webserver/recipes-webadmin/cockpit/cockpit_289.bb
new file mode 100644
index 0000000000..2f920b417f
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/cockpit/cockpit_289.bb
@@ -0,0 +1,197 @@
+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] = "3f8e369b21dbe9f5e05ac6ffd8c7a58ad5759065bea29b3b14c937a17f030eb5"
+
+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 \
+ ${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}-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-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
new file mode 100644
index 0000000000..db583cfd29
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/cockpit/files/0001-Warn-not-error-if-xsltproc-is-not-found.patch
@@ -0,0 +1,25 @@
+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 6896c19..2a1fb52 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -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], [xgettext], [no])
+ if test "$XGETTEXT" = "no"; then
+- AC_MSG_ERROR([Please install gettext tools])
++ AC_MSG_WARN([Please install gettext tools])
+ fi
+
+ # ssh-add
diff --git a/meta-webserver/recipes-webadmin/cockpit/files/cockpit.pam b/meta-webserver/recipes-webadmin/cockpit/files/cockpit.pam
new file mode 100644
index 0000000000..dd09e29ee0
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/cockpit/files/cockpit.pam
@@ -0,0 +1,8 @@
+#%PAM-1.0
+auth required pam_unix.so nullok
+
+account required pam_unix.so
+
+-session optional pam_systemd.so
+session required pam_unix.so
+session optional pam_keyinit.so force revoke
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch b/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch
deleted file mode 100644
index abea0d66bd..0000000000
--- a/meta-webserver/recipes-webadmin/netdata/netdata/0001-Correct-Timeout-issue.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Index: git/plugins.d/charts.d.plugin
-===================================================================
---- git.orig/plugins.d/charts.d.plugin
-+++ git/plugins.d/charts.d.plugin
-@@ -246,16 +246,6 @@ else
- info "configuration file '$myconfig' not found. Using defaults."
- fi
-
--# we check for the timeout command, after we load our
--# configuration, so that the user may overwrite the
--# timeout command we use, providing a function that
--# can emulate the timeout command we need:
--# > timeout SECONDS command ...
--if [ $check_for_timeout -eq 1 ]
-- then
-- require_cmd timeout || exit 1
--fi
--
- # -----------------------------------------------------------------------------
- # internal checks
-
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch b/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch
deleted file mode 100644
index 6a0d75e37b..0000000000
--- a/meta-webserver/recipes-webadmin/netdata/netdata/0001-makefile-Do-not-build-contrib-dir.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 87f868918a9ae1dcf93e01f3e177d185c19a149a Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 13 Jul 2017 14:32:09 -0700
-Subject: [PATCH] makefile: Do not build contrib dir
-
-It contains debian build iteams anyway
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Makefile.am | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 2ea9e40..acb1bd8 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -56,7 +56,6 @@ SUBDIRS = \
- src \
- system \
- web \
-- contrib \
- tests \
- $(NULL)
-
---
-2.13.2
-
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service
index b244d18665..ca13f72871 100644
--- a/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service
+++ b/meta-webserver/recipes-webadmin/netdata/netdata/netdata.service
@@ -1,13 +1,15 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
[Unit]
-Description=Netdata, Real-time performance monitoring
+Description=Real time performance monitoring
RequiresMountsFor=/var
+After=network.target
[Service]
-User=root
+Type=simple
ExecStartPre=/bin/mkdir -p /var/log/netdata
-ExecStartPre=/bin/chown -R nobody.netdata @@datadir/netdata/web
-ExecStartPre=/bin/chown -R nobody.netdata /var/cache/netdata
-ExecStart=/usr/sbin/netdata -nd
+ExecStartPre=/bin/chown -R netdata.netdata /var/log/netdata
+ExecStart=/usr/sbin/netdata -D -u netdata
+
[Install]
WantedBy=multi-user.target
diff --git a/meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb b/meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb
new file mode 100644
index 0000000000..52d99e7704
--- /dev/null
+++ b/meta-webserver/recipes-webadmin/netdata/netdata_1.36.1.bb
@@ -0,0 +1,82 @@
+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_git.bb b/meta-webserver/recipes-webadmin/netdata/netdata_git.bb
deleted file mode 100644
index b0f1602528..0000000000
--- a/meta-webserver/recipes-webadmin/netdata/netdata_git.bb
+++ /dev/null
@@ -1,59 +0,0 @@
-HOMEPAGE = "https://github.com/firehol/netdata/"
-SUMMARY = "Real-time performance monitoring"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=95b49e9ea979a337578f13c2a3ab9535 \
- file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
- "
-
-SRC_URI = "git://github.com/firehol/netdata.git;protocol=https \
- file://0001-makefile-Do-not-build-contrib-dir.patch \
-"
-SRCREV = "89ed309252981ddd50f697fde4fe93019cb3e652"
-PV = "1.8.0+git${SRCPV}"
-
-# patch to disable timeout because timeout are not available with actual version
-# of core-utils
-SRC_URI += "file://0001-Correct-Timeout-issue.patch"
-
-# default netdata.conf for netdata configuration
-SRC_URI += "file://netdata.conf"
-
-# file for providing systemd service support
-SRC_URI += "file://netdata.service"
-
-S = "${WORKDIR}/git"
-
-DEPENDS += "zlib util-linux"
-
-inherit pkgconfig autotools useradd systemd
-
-#systemd
-SYSTEMD_PACKAGES = "${PN}"
-SYSTEMD_SERVICE_${PN} = "netdata.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "enable"
-
-#User specific
-USERADD_PACKAGES = "${PN}"
-GROUPADD_PARAM_${PN} = "--system netdata"
-
-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
-}
-
-FILES_${PN}-dbg += "${libexecdir}/netdata/plugins.d/.debug"
-RDEPENDS_${PN} = "bash 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-webserver/recipes-webadmin/webmin/webmin_1.850.bb b/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb
index ce9bc92805..35ec09daea 100644
--- a/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb
+++ b/meta-webserver/recipes-webadmin/webmin/webmin_1.850.bb
@@ -1,6 +1,6 @@
SUMMARY = "Web-based administration interface"
HOMEPAGE = "http://www.webmin.com"
-LICENSE = "BSD"
+LICENSE = "BSD-3-Clause"
LIC_FILES_CHKSUM = "file://LICENCE;md5=0373ac9f611e542ddebe1ec6394afc3c"
SRC_URI = "${SOURCEFORGE_MIRROR}/webadmin/webmin-${PV}.tar.gz \
@@ -126,26 +126,26 @@ do_install() {
INITSCRIPT_NAME = "webmin"
INITSCRIPT_PARAMS = "start 99 5 3 2 . stop 10 0 1 6 ."
-SYSTEMD_SERVICE_${PN} = "webmin.service"
-SYSTEMD_AUTO_ENABLE_${PN} = "disable"
+SYSTEMD_SERVICE:${PN} = "webmin.service"
+SYSTEMD_AUTO_ENABLE:${PN} = "disable"
# FIXME: some of this should be figured out automatically
-RDEPENDS_${PN} += "perl perl-module-socket perl-module-exporter perl-module-exporter-heavy perl-module-carp perl-module-strict"
-RDEPENDS_${PN} += "perl-module-warnings perl-module-xsloader perl-module-posix perl-module-autoloader"
-RDEPENDS_${PN} += "perl-module-fcntl perl-module-tie-hash perl-module-vars perl-module-time-local perl-module-config perl-module-constant"
-RDEPENDS_${PN} += "perl-module-file-glob perl-module-file-copy perl-module-sdbm-file perl-module-feature"
+RDEPENDS:${PN} += "perl perl-module-socket perl-module-exporter perl-module-exporter-heavy perl-module-carp perl-module-strict"
+RDEPENDS:${PN} += "perl-module-warnings perl-module-xsloader perl-module-posix perl-module-autoloader"
+RDEPENDS:${PN} += "perl-module-fcntl perl-module-tie-hash perl-module-vars perl-module-time-local perl-module-config perl-module-constant"
+RDEPENDS:${PN} += "perl-module-file-glob perl-module-file-copy perl-module-sdbm-file perl-module-feature"
PACKAGES_DYNAMIC += "webmin-module-* webmin-theme-*"
-RRECOMMENDS_${PN} += "webmin-module-system-status"
+RRECOMMENDS:${PN} += "webmin-module-system-status"
PACKAGES += "${PN}-module-proc ${PN}-module-raid ${PN}-module-exports ${PN}-module-fdisk ${PN}-module-lvm"
-RDEPENDS_${PN}-module-proc = "procps"
-RDEPENDS_${PN}-module-raid = "mdadm"
-RDEPENDS_${PN}-module-exports = "perl-module-file-basename perl-module-file-path perl-module-cwd perl-module-file-spec perl-module-file-spec-unix"
-RRECOMMENDS_${PN}-module-fdisk = "parted"
-RRECOMMENDS_${PN}-module-lvm = "lvm2"
+RDEPENDS:${PN}-module-proc = "procps"
+RDEPENDS:${PN}-module-raid = "mdadm"
+RDEPENDS:${PN}-module-exports = "perl-module-file-basename perl-module-file-path perl-module-cwd perl-module-file-spec perl-module-file-spec-unix"
+RRECOMMENDS:${PN}-module-fdisk = "parted"
+RRECOMMENDS:${PN}-module-lvm = "lvm2"
-python populate_packages_prepend() {
+python populate_packages:prepend() {
import os, os.path
wadir = bb.data.expand('${libexecdir}/webmin', d)
@@ -160,8 +160,8 @@ python populate_packages_prepend() {
elif os.path.exists(themeinfo):
themes.append(mod)
- do_split_packages(d, wadir, '^(%s)$' % "|".join(modules), 'webmin-module-%s', 'Webmin module for %s', allow_dirs=True, prepend=True)
- do_split_packages(d, wadir, '^(%s)$' % "|".join(themes), 'webmin-theme-%s', 'Webmin theme for %s', allow_dirs=True, prepend=True)
+ do_split_packages(d, wadir, '^(%s)$' % "|".join(modules), 'webmin-module-%s', 'Webmin module for %s', extra_depends='perl', allow_dirs=True, prepend=True)
+ do_split_packages(d, wadir, '^(%s)$' % "|".join(themes), 'webmin-theme-%s', 'Webmin theme for %s', extra_depends='perl', allow_dirs=True, prepend=True)
}
# Time-savers
diff --git a/meta-xfce/README b/meta-xfce/README
deleted file mode 100644
index 7431e8b7c4..0000000000
--- a/meta-xfce/README
+++ /dev/null
@@ -1,22 +0,0 @@
-This layer depends on:
-
-URI: git://github.com/openembedded/oe-core.git
-branch: master
-revision: HEAD
-
-URI: git://github.com/openembedded/meta-oe.git
-branch: master
-revision: HEAD
-meta-xfce depends on meta-oe, meta-gnome and meta-multimedia in this repository.
-
-To avoid dependencies on meta-multimedia you need to mask recipes by adding
-this to local.conf:
-
-BBMASK = "meta-xfce/recipes-multimedia"
-
-Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce]' in the subject'
-
-When sending single patches, please using something like:
-'git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix=meta-xfce][PATCH'
-
-Layer maintainer: Andreas Müller <schnitzeltony@googlemail.com>
diff --git a/meta-xfce/README.md b/meta-xfce/README.md
new file mode 100644
index 0000000000..3d6158628f
--- /dev/null
+++ b/meta-xfce/README.md
@@ -0,0 +1,22 @@
+This layer depends on:
+
+URI: git://git.openembedded.org/openembedded-core
+branch: master
+
+URI: git://git.openembedded.org/meta-openembedded
+branch: master
+
+meta-xfce depends on meta-oe, meta-gnome and meta-multimedia in this repository.
+
+To avoid dependencies on meta-multimedia you need to mask recipes by adding
+this to local.conf:
+
+BBMASK = "meta-xfce/recipes-multimedia"
+
+Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-xfce]' in the subject'
+
+When sending single patches, please using something like:
+git send-email -M -1 --to openembedded-devel@lists.openembedded.org --subject-prefix='meta-xfce][PATCH'
+
+Layer maintainer: Kai Kang <kai.kang@windriver.com>
+Layer maintainer: Andreas Müller <schnitzeltony@gmail.com>
diff --git a/meta-xfce/classes/thunar-plugin.bbclass b/meta-xfce/classes/thunar-plugin.bbclass
index 76b0e72332..3719cba219 100644
--- a/meta-xfce/classes/thunar-plugin.bbclass
+++ b/meta-xfce/classes/thunar-plugin.bbclass
@@ -1,11 +1,13 @@
-inherit xfce distro_features_check
+inherit xfce features_check
-REQUIRED_DISTRO_FEATURES = "x11"
+# 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}"
DEPENDS += "thunar"
SRC_URI = "http://archive.xfce.org/src/thunar-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2"
-FILES_${PN} += "${libdir}/thunarx-3/*.so"
+FILES:${PN} += "${libdir}/thunarx-3/*.so"
-FILES_${PN}-dev += "${libdir}/thunarx-3/*.la"
+FILES:${PN}-dev += "${libdir}/thunarx-3/*.la"
diff --git a/meta-xfce/classes/xfce-app.bbclass b/meta-xfce/classes/xfce-app.bbclass
index 1c31c2faa6..d1b07d7457 100644
--- a/meta-xfce/classes/xfce-app.bbclass
+++ b/meta-xfce/classes/xfce-app.bbclass
@@ -1,4 +1,4 @@
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-xfce/classes/xfce-git.bbclass b/meta-xfce/classes/xfce-git.bbclass
index 3fc18d275d..d301dcb119 100644
--- a/meta-xfce/classes/xfce-git.bbclass
+++ b/meta-xfce/classes/xfce-git.bbclass
@@ -1,4 +1,4 @@
-do_configure_prepend() {
+do_configure:prepend() {
cd ${S}
NOCONFIGURE=yes ./autogen.sh
cd ${B}
diff --git a/meta-xfce/classes/xfce-panel-plugin.bbclass b/meta-xfce/classes/xfce-panel-plugin.bbclass
index 29c1245caa..b43f9e3125 100644
--- a/meta-xfce/classes/xfce-panel-plugin.bbclass
+++ b/meta-xfce/classes/xfce-panel-plugin.bbclass
@@ -1,14 +1,14 @@
-inherit xfce distro_features_check
+inherit xfce features_check
REQUIRED_DISTRO_FEATURES = "x11"
DEPENDS += "libxfce4ui libxfce4util xfce4-panel"
-SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2"
+SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2"
-FILES_${PN} += "${datadir}/xfce4/panel-plugins/"
-FILES_${PN} += "${datadir}/xfce4/panel/plugins/"
-FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so"
-FILES_${PN} += "${libdir}/xfce4/panel/plugins/*.so"
+FILES:${PN} += "${datadir}/xfce4/panel-plugins/"
+FILES:${PN} += "${datadir}/xfce4/panel/plugins/"
+FILES:${PN} += "${libdir}/xfce4/panel-plugins/*.so"
+FILES:${PN} += "${libdir}/xfce4/panel/plugins/*.so"
-FILES_${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la" \ No newline at end of file
+FILES:${PN}-dev += "${libdir}/xfce4/panel/plugins/*.la"
diff --git a/meta-xfce/classes/xfce.bbclass b/meta-xfce/classes/xfce.bbclass
index 7abe46f712..913202be59 100644
--- a/meta-xfce/classes/xfce.bbclass
+++ b/meta-xfce/classes/xfce.bbclass
@@ -1,6 +1,6 @@
def xfce_verdir(v):
import re
- m = re.match("^([0-9]+)\.([0-9]+)", v)
+ m = re.match(r"^([0-9]+)\.([0-9]+)", v)
return "%s.%s" % (m.group(1), m.group(2))
HOMEPAGE = "http://www.xfce.org"
@@ -10,5 +10,5 @@ inherit autotools gettext gtk-icon-cache pkgconfig
DEPENDS += "intltool-native"
-FILES_${PN} += "${datadir}/icons/* ${datadir}/applications/* ${libdir}/xfce4/modules/*.so*"
-FILES_${PN}-doc += "${datadir}/xfce4/doc"
+FILES:${PN} += "${datadir}/icons/* ${datadir}/applications/* ${libdir}/xfce4/modules/*.so*"
+FILES:${PN}-doc += "${datadir}/xfce4/doc"
diff --git a/meta-xfce/conf/layer.conf b/meta-xfce/conf/layer.conf
index bee8e70441..9b797d86f6 100644
--- a/meta-xfce/conf/layer.conf
+++ b/meta-xfce/conf/layer.conf
@@ -6,7 +6,7 @@ BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*.bbappend"
BBFILE_COLLECTIONS += "xfce-layer"
BBFILE_PATTERN_xfce-layer := "^${LAYERDIR}/"
-BBFILE_PRIORITY_xfce-layer = "7"
+BBFILE_PRIORITY_xfce-layer = "5"
# This should only be incremented on significant changes that will
# cause compatibility issues with other layers
@@ -17,9 +17,13 @@ LAYERDEPENDS_xfce-layer += "openembedded-layer"
LAYERDEPENDS_xfce-layer += "gnome-layer"
LAYERDEPENDS_xfce-layer += "multimedia-layer"
LAYERDEPENDS_xfce-layer += "meta-python"
+LAYERDEPENDS_xfce-layer += "networking-layer"
-LAYERSERIES_COMPAT_xfce-layer = "sumo"
+LAYERSERIES_COMPAT_xfce-layer = "mickledore"
-SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += " \
- xfce4-session->machine-host \
+SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS += "\
+ openzone->gdk-pixbuf \
+ openzone->gtk+3 \
+ rodent-icon-theme->gdk-pixbuf \
+ rodent-icon-theme->gtk+3 \
"
diff --git a/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb b/meta-xfce/recipes-apps/catfish/catfish_4.16.3.bb
new file mode 100644
index 0000000000..249c8e1bd8
--- /dev/null
+++ b/meta-xfce/recipes-apps/catfish/catfish_4.16.3.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] = "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/gigolo/gigolo_0.4.2.bb b/meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb
deleted file mode 100644
index c846e7802f..0000000000
--- a/meta-xfce/recipes-apps/gigolo/gigolo_0.4.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Gigolo is a frontend to easily manage connections to remote filesystems using GIO/GVfs"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-DEPENDS = "gtk+ intltool-native xfce4-dev-tools-native"
-
-inherit xfce-app
-
-SRC_URI[md5sum] = "4abc6fde56572adf3ec3a0181092584c"
-SRC_URI[sha256sum] = "553fc78fe4e7bd2f01f3851baea7e63f6414fe652dfb4b08c60b5c4b2b909164"
diff --git a/meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.bb b/meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.bb
new file mode 100644
index 0000000000..6b845ea613
--- /dev/null
+++ b/meta-xfce/recipes-apps/gigolo/gigolo_0.5.2.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] = "e34a1aa0755f9f6c234c7d24b23a6cecd6ef50741d79da3bb6f698a2281dbbc3"
diff --git a/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb b/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb
deleted file mode 100644
index b0e4784fe2..0000000000
--- a/meta-xfce/recipes-apps/menulibre/menulibre_2.2.0.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-DESCRIPTION = "An advanced menu editor"
-HOMEPAGE = "https://launchpad.net/menulibre"
-SECTION = "x11/graphics"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-DEPENDS = " \
- python3-distutils-extra-native \
- intltool-native \
-"
-
-inherit distutils3 gtk-icon-cache distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://launchpad.net/menulibre/2.2/${PV}/+download/${PN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "9690848dbf9196c3f7baa574e90378d8"
-SRC_URI[sha256sum] = "546fec87f451c8f5c220d02b1f36dd850f4ce9ab607f8e9711ed8f2009e349fe"
-
-do_compile() {
-}
-
-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}/menulibre \
- ${datadir}/icons \
-"
-
-RDEPENDS_${PN} += " \
- gtk+3 \
- gtksourceview3 \
- python3-pygobject \
- gnome-menus3 \
- python3-unixadmin \
- python3-psutil \
-"
diff --git a/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb b/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.bb
new file mode 100644
index 0000000000..609caf3461
--- /dev/null
+++ b/meta-xfce/recipes-apps/menulibre/menulibre_2.2.3.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 = "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/mousepad/mousepad_0.4.1.bb b/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb
deleted file mode 100644
index d122bfe379..0000000000
--- a/meta-xfce/recipes-apps/mousepad/mousepad_0.4.1.bb
+++ /dev/null
@@ -1,19 +0,0 @@
-SUMMARY = "A simple text editor for Xfce"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-# intltool to provide intltool.m4 with AC_PROG_INTLTOOL
-# xfce4-dev-tools-native for XDT_I18N macro and more importantly XDT_CHECK_OPTIONAL_PACKAGE
-# which fixes mousepad/Makefile.am:72: error: HAVE_DBUS does not appear in AM_CONDITIONAL
-DEPENDS = "gtk+ dbus dbus-glib gtksourceview2 intltool-native xfce4-dev-tools-native"
-
-inherit xfce-app gsettings
-
-SRC_URI[md5sum] = "fb85c23bcb096a46aee9ec22b4e4fdf5"
-SRC_URI[sha256sum] = "39a7379b929d964665299c385b2cf705e32e8760698ccc34f91c990bb733518b"
-
-# we have no gtksourceview 3.x around
-EXTRA_OECONF = "--disable-gtk3"
-
-FILES_${PN} += "${datadir}/glib-2.0/schemas"
diff --git a/meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.bb b/meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.bb
new file mode 100644
index 0000000000..1be015bfbb
--- /dev/null
+++ b/meta-xfce/recipes-apps/mousepad/mousepad_0.5.9.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] = "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/orage/orage_4.12.1.bb b/meta-xfce/recipes-apps/orage/orage_4.12.1.bb
deleted file mode 100644
index eb9da2dffa..0000000000
--- a/meta-xfce/recipes-apps/orage/orage_4.12.1.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Xfce Calender"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-DEPENDS = "gtk+ xfce4-panel libical popt"
-
-inherit xfce-app
-
-SRC_URI[md5sum] = "2b7f5d38cb5c6edbcc65d0f52a742e46"
-SRC_URI[sha256sum] = "3cf9aa441ae83c8688865f82217025cdf3ebaa152cce4571777b8c2aa8dd9062"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[notify] = "--enable-libnotify,--disable-libnotify,libnotify"
-
-PACKAGES =+ "xfce4-orageclock-plugin"
-FILES_${PN} += "${datadir}/dbus-1"
-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.16.0.bb b/meta-xfce/recipes-apps/orage/orage_4.16.0.bb
new file mode 100644
index 0000000000..d10cdaac49
--- /dev/null
+++ b/meta-xfce/recipes-apps/orage/orage_4.16.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] = "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/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch b/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch
deleted file mode 100644
index 5cdc8c7282..0000000000
--- a/meta-xfce/recipes-apps/ristretto/files/0001-Fix-build-after-update-of-xfconf.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2b6bdb860ef53975c7e866f393b61d253c00754d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 22 Jan 2018 15:52:09 +0100
-Subject: [PATCH] Fix build after update of xfconf
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-xfconf stopped using dbus-glib so required flags must be included here
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- src/Makefile.am | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/src/Makefile.am b/src/Makefile.am
-index 36a31dc..3dd56bc 100644
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -30,6 +30,7 @@ ristretto_CFLAGS = \
- $(GIO_UNIX_CFLAGS) \
- $(LIBEXIF_CFLAGS) \
- $(XFCONF_CFLAGS) \
-+ $(DBUS_GLIB_CFLAGS) \
- $(EXO_CFLAGS) \
- $(CAIRO_CFLAGS) \
- $(LIBXFCE4UTIL_CFLAGS) \
-@@ -48,6 +49,7 @@ ristretto_LDADD = \
- $(GIO_UNIX_LIBS) \
- $(LIBEXIF_LIBS) \
- $(XFCONF_LIBS) \
-+ $(DBUS_GLIB_LIBS) \
- $(EXO_LIBS) \
- $(CAIRO_LIBS) \
- $(LIBXFCE4UTIL_LIBS) \
---
-2.14.3
-
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..4aac89fe79
--- /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"
+
+inherit xfce-app mime-xdg
+
+RRECOMMENDS:${PN} += "tumbler"
+
+SRC_URI[sha256sum] = "d71affbf15245067124725b153c908a53208c4ca1ba2d4df1ec5a1308d53791e"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb b/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb
deleted file mode 100644
index 06dd1021d0..0000000000
--- a/meta-xfce/recipes-apps/ristretto/ristretto_0.8.2.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Tiny image-viewer"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/ristretto"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=35d145429ad3cbf5308d1dc93f66376b"
-DEPENDS = "exo libexif gtk+ dbus-glib libxfce4ui libxfce4util xfconf cairo file"
-
-inherit xfce-app
-
-RRECOMMENDS_${PN} += "tumbler"
-
-SRC_URI[md5sum] = "a8d8bb6b8fa7f868cfa3ae778630946e"
-SRC_URI[sha256sum] = "f8f3b77ca6fc77ddf8cff1bb52e5c5802c462663f72f324393b3a0360f6901b8"
-SRC_URI += "file://0001-Fix-build-after-update-of-xfconf.patch"
-
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb b/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
index a27c8f5531..ea7e8005ef 100644
--- a/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
+++ b/meta-xfce/recipes-apps/xarchiver/xarchiver_git.bb
@@ -2,25 +2,32 @@ SUMMARY = "Lightweight, desktop independent GTK+ archive manager"
HOMEPAGE = "http://xarchiver.sourceforge.net"
SECTION = "x11"
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+LICENSE = "GPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gtk+ glib-2.0 xfce4-dev-tools-native intltool-native"
+DEPENDS = "gtk+3 glib-2.0 xfce4-dev-tools-native intltool-native"
-SRC_URI = "git://github.com/schnitzeltony/xarchiver.git;branch=master"
-SRCREV = "5a26dd8ceab0af71b30c83286d7c7398a858c814"
-PV = "0.5.3"
+SRC_URI = "git://github.com/ib/xarchiver.git;branch=master;protocol=https"
+SRCREV = "2f6c91e756678f0723305d8636e8e393c1eef32c"
+PV = "0.5.4.17"
S = "${WORKDIR}/git"
-inherit xfce-git gettext pkgconfig autotools gtk-icon-cache distro_features_check
+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"
+EXTRA_OECONF += " \
+ --enable-maintainer-mode \
+ --disable-doc \
+"
-FILES_${PN} += "${libdir}/thunar-archive-plugin"
+do_configure:prepend() {
+ touch ${S}/NEWS ${S}/AUTHORS
+}
-RRECOMMENDS_${PN} = "lzop zip tar bzip2 unzip xz"
+FILES:${PN} += "${libdir}/thunar-archive-plugin"
+
+RRECOMMENDS:${PN} = "lzop zip tar bzip2 unzip xz p7zip"
diff --git a/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch b/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch
deleted file mode 100644
index e872249d52..0000000000
--- a/meta-xfce/recipes-apps/xfce-polkit/files/0001-fix-Name-Comment-fields.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From fb1f83c04dd5262897b09e60fa8b39090d0d4619 Mon Sep 17 00:00:00 2001
-From: Rex Dieter <rdieter@math.unl.edu>
-Date: Thu, 12 Nov 2015 13:53:03 -0600
-Subject: [PATCH] fix Name/Comment fields
-
-Validate as a valid .desktop file per
-http://standards.freedesktop.org/desktop-entry-spec/latest/
-
-See also issue #2
-
-Upstream-Status: Applied [1]
-
-[1] https://github.com/ncopa/xfce-polkit/commit/fb1f83c04dd5262897b09e60fa8b39090d0d4619
----
- xfce-polkit.desktop.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xfce-polkit.desktop.in b/xfce-polkit.desktop.in
-index 8575896..dd9f09c 100644
---- a/xfce-polkit.desktop.in
-+++ b/xfce-polkit.desktop.in
-@@ -1,7 +1,7 @@
- [Desktop Entry]
- Type=Application
--_Name=XFCE PolKit
--_Comment=Policykit Authentication Agent
-+Name=XFCE PolKit
-+Comment=Policykit Authentication Agent
- Exec=@xfce_polkit_libexecdir@/xfce-polkit
- Icon=gtk-dialog-authentication
- NotShowIn=GNOME;KDE;
---
-2.14.3
-
diff --git a/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb b/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb
deleted file mode 100644
index 54bf7c7529..0000000000
--- a/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.2.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-SUMMARY = "A simple PolicyKit authentication agent for XFCE"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=758b03f872a88c99fc36d50c5932091c"
-
-DEPENDS = "libxfce4ui polkit"
-
-inherit xfce-app
-
-SRC_URI = " \
- git://github.com/ncopa/${BPN}.git \
- file://0001-fix-Name-Comment-fields.patch \
-"
-SRCREV = "6ad1ee833c9e22e4dd72a8f7d54562d046965283"
-S = "${WORKDIR}/git"
diff --git a/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb b/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb
new file mode 100644
index 0000000000..3e3301f748
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce-polkit/xfce-polkit_0.3.bb
@@ -0,0 +1,14 @@
+SUMMARY = "A simple PolicyKit authentication agent for XFCE"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=758b03f872a88c99fc36d50c5932091c"
+
+DEPENDS = "libxfce4ui polkit"
+
+inherit xfce-app features_check
+REQUIRED_DISTRO_FEATURES = "polkit"
+
+SRC_URI = " \
+ git://github.com/ncopa/${BPN}.git;branch=master;protocol=https \
+"
+SRCREV = "6d3282cc1734c305850d48f5bf4b4d94e88885e9"
+S = "${WORKDIR}/git"
diff --git a/meta-xfce/recipes-apps/xfce4-datetime-setter/files/0001-Fix-build-with-meson-0.61.patch b/meta-xfce/recipes-apps/xfce4-datetime-setter/files/0001-Fix-build-with-meson-0.61.patch
new file mode 100644
index 0000000000..617d175579
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-datetime-setter/files/0001-Fix-build-with-meson-0.61.patch
@@ -0,0 +1,26 @@
+From d463b7e9abbbc87ec0e25216a24d9a40d347f1a6 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 24 Jan 2022 09:59:02 -0800
+Subject: [PATCH] Fix build with meson >= 0.61
+
+Upstream-Status: Submitted [https://github.com/schnitzeltony/xfce4-datetime-setter/pull/3]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ panels/datetime/meson.build | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build
+index 241e177..4356907 100644
+--- a/panels/datetime/meson.build
++++ b/panels/datetime/meson.build
+@@ -10,7 +10,6 @@ desktop_in = configure_file(
+ )
+
+ i18n.merge_file(
+- desktop,
+ type: 'desktop',
+ input: desktop_in,
+ output: 'xfce-datetime.desktop',
+--
+2.34.1
+
diff --git a/meta-xfce/recipes-apps/xfce4-datetime-setter/files/fix-inner-dependency.patch b/meta-xfce/recipes-apps/xfce4-datetime-setter/files/fix-inner-dependency.patch
new file mode 100644
index 0000000000..9cccb892fa
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-datetime-setter/files/fix-inner-dependency.patch
@@ -0,0 +1,28 @@
+It fails to compile xfce4-datetime-setter occasionally when system load is high:
+
+| ../git/xfce/main.c:42:10: fatal error: cc-datetime-resources.h: No such file or directory
+| 42 | #include "cc-datetime-resources.h"
+| | ^~~~~~~~~~~~~~~~~~~~~~~~~
+| compilation terminated.
+
+Update datetime_panel_dep to make sure cc-datetime-resources.h be generated
+before including.
+
+Upstream-Status: Submitted [https://github.com/schnitzeltony/xfce4-datetime-setter/pull/2]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+---
+diff --git a/panels/datetime/meson.build b/panels/datetime/meson.build
+index c5bf39c..241e177 100644
+--- a/panels/datetime/meson.build
++++ b/panels/datetime/meson.build
+@@ -175,7 +175,8 @@ datetime_panel_lib = static_library(
+
+ datetime_panel_dep = declare_dependency(
+ include_directories: [ common_inc, include_directories('.') ],
+- link_with: datetime_panel_lib
++ link_with: datetime_panel_lib,
++ sources: resources
+ )
+
+ subdir('po-timezones')
diff --git a/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb b/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
new file mode 100644
index 0000000000..6bcfc4ba43
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-datetime-setter/xfce4-datetime-setter_3.32.2.bb
@@ -0,0 +1,23 @@
+DESCRIPTION = "A fork of (early) gnome-control-center datetime panel for XFCE. \
+It is based upon GTK3 and embedds into recent xfce4-settings."
+HOMEPAGE = "https://github.com/schnitzeltony/xfce4-datetime-setter"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=75859989545e37968a99b631ef42722e"
+
+DEPENDS = "glib-2.0-native libxfce4ui"
+
+SRC_URI = "git://github.com/schnitzeltony/xfce4-datetime-setter.git;protocol=https;branch=master \
+ file://fix-inner-dependency.patch \
+ file://0001-Fix-build-with-meson-0.61.patch \
+"
+SRCREV = "5c7a73a3824b03b91719e05e2604b97c7a72d50f"
+
+S = "${WORKDIR}/git"
+
+inherit gettext meson features_check pkgconfig
+
+REQUIRED_DISTRO_FEATURES = "systemd x11"
+
+FILES:${PN} += "${datadir}/icons/hicolor"
+
+RDEPENDS:${PN} = "tzdata"
diff --git a/meta-xfce/recipes-apps/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch b/meta-xfce/recipes-apps/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch
deleted file mode 100644
index 31216c0381..0000000000
--- a/meta-xfce/recipes-apps/xfce4-mixer/files/0001-Fix-build-after-update-of-xfconf.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 6ecaeced291f935a9d41e9bc33411358c95a5e91 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
-Date: Mon, 22 Jan 2018 15:35:08 +0100
-Subject: [PATCH] Fix build after update of xfconf
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-xfconf stopped using dbus-glib so required flags must be included here
-
-Upstream-Status: Pending
-
-Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
----
- panel-plugin/Makefile.am | 2 ++
- xfce4-mixer/Makefile.am | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/panel-plugin/Makefile.am b/panel-plugin/Makefile.am
-index a494682..b094472 100644
---- a/panel-plugin/Makefile.am
-+++ b/panel-plugin/Makefile.am
-@@ -27,6 +27,7 @@ libmixer_la_CFLAGS = \
- $(LIBXFCE4UI_CFLAGS) \
- $(LIBXFCE4PANEL_CFLAGS) \
- $(XFCONF_CFLAGS) \
-+ $(DBUS_GLIB_CFLAGS) \
- $(GST_PLUGINS_BASE_CFLAGS) \
- $(KEYBINDER_CFLAGS)
-
-@@ -48,6 +49,7 @@ libmixer_la_LIBADD = \
- $(LIBXFCE4UI_LIBS) \
- $(LIBXFCE4PANEL_LIBS) \
- $(XFCONF_LIBS) \
-+ $(DBUS_GLIB_LIBS) \
- $(GST_PLUGINS_BASE_LIBS) \
- -lgstaudio-0.10 \
- -lgstinterfaces-0.10 \
-diff --git a/xfce4-mixer/Makefile.am b/xfce4-mixer/Makefile.am
-index 4af69e9..e076fc8 100644
---- a/xfce4-mixer/Makefile.am
-+++ b/xfce4-mixer/Makefile.am
-@@ -32,6 +32,7 @@ xfce4_mixer_CFLAGS = \
- $(UNIQUE_CFLAGS) \
- $(LIBXFCE4UTIL_CFLAGS) \
- $(LIBXFCE4UI_CFLAGS) \
-+ $(DBUS_GLIB_CFLAGS) \
- $(XFCONF_CFLAGS) \
- $(GST_PLUGINS_BASE_CFLAGS)
-
-@@ -46,6 +47,7 @@ xfce4_mixer_LDFLAGS = \
- $(UNIQUE_LIBS) \
- $(LIBXFCE4UTIL_LIBS) \
- $(LIBXFCE4UI_LIBS) \
-+ $(DBUS_GLIB_LIBS) \
- $(XFCONF_LIBS) \
- $(GST_PLUGINS_BASE_LIBS) \
- -lgstaudio-0.10 \
---
-2.14.3
-
diff --git a/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb b/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb
deleted file mode 100644
index 6c057d8845..0000000000
--- a/meta-xfce/recipes-apps/xfce4-mixer/xfce4-mixer_4.11.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "A volume control application based on GStreamer"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "glib-2.0 gst-plugins-base gtk+ xfconf libunique"
-
-SRC_URI = " \
- http://archive.xfce.org/src/apps/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2 \
- file://0001-Fix-build-after-update-of-xfconf.patch \
-"
-
-SRC_URI[md5sum] = "1b3753b91224867a3a2dfddda239c28d"
-SRC_URI[sha256sum] = "fb0c1df201ed1130f54f15b914cbe5a59286e994a137acda5609570c57112de2"
-
-RDEPENDS_${PN} = "gst-meta-audio"
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.4.2.bb b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.2.bb
deleted file mode 100644
index 15ec51b2b8..0000000000
--- a/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.4.2.bb
+++ /dev/null
@@ -1,35 +0,0 @@
-SUMMARY = "Easily themable notification daemon with transparency effects"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-notifyd"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = " \
- dbus \
- dbus-glib \
- dbus-glib-native \
- libnotify \
- libxfce4util \
- libxfce4ui \
- xfconf \
- xfce4-panel \
-"
-
-inherit xfce-app
-
-SRC_URI[md5sum] = "ecb930ef6ae6e1f310a5afe5f638eff8"
-SRC_URI[sha256sum] = "f6f28af47fdfb41db84bd003f0d76f5f4abf2137d1e27e9d378f063bb8f82356"
-
-# 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..7dbd90c188
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-notifyd/xfce4-notifyd_0.8.2.bb
@@ -0,0 +1,35 @@
+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 \
+"
+
+inherit xfce-app
+
+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
new file mode 100644
index 0000000000..b5421f6f74
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles/not-create-link-to-locale.patch
@@ -0,0 +1,22 @@
+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
new file mode 100644
index 0000000000..feb9121609
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-panel-profiles/xfce4-panel-profiles_1.0.13.bb
@@ -0,0 +1,29 @@
+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 \
+ 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-screensaver/xfce4-screensaver/fix-cross-compile.patch b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
new file mode 100644
index 0000000000..eabcaaae69
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-screensaver/xfce4-screensaver/fix-cross-compile.patch
@@ -0,0 +1,64 @@
+It adds '-I$includedir' to CPPFLAGS and adds '-L$libdir' to LDFLAGS in
+configure.ac which causes 'configure-unsafe' QA error. Don't add them for cross
+compile to avoid the QA issues.
+
+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 6f149bb..3890677 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -237,9 +237,9 @@ dnl ---------------------------------------------------------------------------
+ #
+ AC_DEFUN([AC_CHECK_X_HEADER], [
+ ac_save_CPPFLAGS="$CPPFLAGS"
+- if test \! -z "$includedir" ; then
+- CPPFLAGS="$CPPFLAGS -I$includedir"
+- fi
++# if test \! -z "$includedir" ; then
++# CPPFLAGS="$CPPFLAGS -I$includedir"
++# fi
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ AC_CHECK_HEADER([$1],[$2],[$3],[$4])
+ CPPFLAGS="$ac_save_CPPFLAGS"])
+@@ -248,9 +248,9 @@ AC_DEFUN([AC_CHECK_X_HEADER], [
+ #
+ AC_DEFUN([AC_TRY_X_COMPILE], [
+ ac_save_CPPFLAGS="$CPPFLAGS"
+- if test \! -z "$includedir" ; then
+- CPPFLAGS="$CPPFLAGS -I$includedir"
+- fi
++# if test \! -z "$includedir" ; then
++# CPPFLAGS="$CPPFLAGS -I$includedir"
++# fi
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$1]], [[$2]])], [$3], [$4])
+ CPPFLAGS="$ac_save_CPPFLAGS"])
+@@ -264,15 +264,15 @@ AC_DEFUN([AC_CHECK_X_LIB], [
+ ac_save_LDFLAGS="$LDFLAGS"
+ # ac_save_LIBS="$LIBS"
+
+- if test \! -z "$includedir" ; then
+- CPPFLAGS="$CPPFLAGS -I$includedir"
+- fi
++# if test \! -z "$includedir" ; then
++# CPPFLAGS="$CPPFLAGS -I$includedir"
++# fi
+ # note: $X_CFLAGS includes $x_includes
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+
+- if test \! -z "$libdir" ; then
+- LDFLAGS="$LDFLAGS -L$libdir"
+- fi
++# if test \! -z "$libdir" ; then
++# LDFLAGS="$LDFLAGS -L$libdir"
++# fi
+ # note: $X_LIBS includes $x_libraries
+ LDFLAGS="$LDFLAGS $ALL_X_LIBS"
+
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.3.bb b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.3.bb
new file mode 100644
index 0000000000..10427dab32
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.10.3.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] = "a454159847becfeca274a5b58c0e5817d4a260a29345a37bbc3b4ff46f8f3818"
+
+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.2.bb b/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.2.bb
deleted file mode 100644
index ba77127e1e..0000000000
--- a/meta-xfce/recipes-apps/xfce4-screenshooter/xfce4-screenshooter_1.9.2.bb
+++ /dev/null
@@ -1,22 +0,0 @@
-SUMMARY = "Application to take screenshots"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-screenshooter"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
-DEPENDS = "xfce4-panel libxfce4util libxfce4ui gdk-pixbuf gtk+ glib-2.0 libsoup-2.4 exo libxfixes xext virtual/libx11"
-
-inherit xfce-app
-
-SRC_URI[md5sum] = "901b2c1fb1dd30940c94aaea3e35c540"
-SRC_URI[sha256sum] = "904f3a61417ace55a3b144187565335f8ad5e530ca23b397ce90ed61708c6091"
-
-do_compile_prepend() {
- mkdir -p lib
- mkdir -p src panel-plugin
-}
-
-FILES_${PN} += " \
- ${datadir}/appdata \
- ${datadir}/xfce4/panel/plugins \
- ${libdir}/xfce4/panel/plugins \
-"
diff --git a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.1.bb b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.1.bb
deleted file mode 100644
index 8afea1d22a..0000000000
--- a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.2.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Easy to use task manager"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-app
-
-DEPENDS += "gtk+ cairo libwnck libxmu xfce4-dev-tools-native exo-native"
-
-SRC_URI[md5sum] = "4a2d0b1e8001fb343139a97d57b56eaa"
-SRC_URI[sha256sum] = "22e523e2ee231713f40a48890d8cbae99320ac1173f7c68502f490318e1e0409"
diff --git a/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.5.bb b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.5.bb
new file mode 100644
index 0000000000..802d6af4a4
--- /dev/null
+++ b/meta-xfce/recipes-apps/xfce4-taskmanager/xfce4-taskmanager_1.5.5.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] = "f64f01ba241a0b8bbf2ed3274e5decc2313c9f8b0e4d160db3ba69b331558ae5"
diff --git a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb b/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb
deleted file mode 100644
index 7fc638e475..0000000000
--- a/meta-xfce/recipes-apps/xfce4-terminal/xfce4-terminal_0.8.7.4.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Terminal emulator for the Xfce desktop environment"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "glib-2.0 gtk+3 vte libxfce4ui"
-
-inherit xfce-app
-
-FILES_${PN} += "${datadir}/xfce4 \
- ${datadir}/gnome-control-center"
-
-SRC_URI[md5sum] = "c861540dd1dd05f56e62382b3851cf66"
-SRC_URI[sha256sum] = "a88f98af4da72394f2cfbd7f14b0f053ec0a3b58a4f6a577836357c60a6c42ab"
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-art/cursor-themes/openzone_1.2.3.bb b/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb
index df0ed50c7b..dc62a1c722 100644
--- a/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb
+++ b/meta-xfce/recipes-art/cursor-themes/openzone_1.2.3.bb
@@ -22,10 +22,12 @@ do_install() {
done
}
-python populate_packages_prepend () {
+python populate_packages:prepend () {
icondir = bb.data.expand('${datadir}/icons', d)
do_split_packages(d, icondir, '^(.*)', '%s', 'Open Zone cursors %s', allow_dirs=True)
}
+FILES:${PN} += "${datadir}/icons"
+
PACKAGES_DYNAMIC += "^openzone-.*"
-ALLOW_EMPTY_${PN} = "1"
+ALLOW_EMPTY:${PN} = "1"
diff --git a/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb b/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb
index 40ba340f22..532980d967 100644
--- a/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb
+++ b/meta-xfce/recipes-art/rodent-icon-theme/rodent-icon-theme_5.0.bb
@@ -1,5 +1,5 @@
SUMMARY = "Rodent-icon-theme (was xfce4-icon-theme) is a svg icon theme"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b"
inherit allarch autotools gtk-icon-cache
@@ -8,9 +8,9 @@ SRC_URI = "http://sourceforge.net/projects/xffm/files/${BPN}/${BPN}-${PV}.tar.gz
SRC_URI[md5sum] = "4b097d344a160d6497c6498985c8df15"
SRC_URI[sha256sum] = "6ed00d16faa1f55b3bb7b13862de1d7f5cfd978b93e42487ded21595d0dbe208"
-FILES_${PN} += "${datadir}/icons"
+FILES:${PN} += "${datadir}/icons"
-RREPLACES_${PN} += "xfce4-icon-theme"
-RPROVIDES_${PN} += "xfce4-icon-theme"
-RCONFLICTS_${PN} += "xfce4-icon-theme"
+RREPLACES:${PN} += "xfce4-icon-theme"
+RPROVIDES:${PN} += "xfce4-icon-theme"
+RCONFLICTS:${PN} += "xfce4-icon-theme"
diff --git a/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb b/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb
index b05c748529..4cbdb4e083 100644
--- a/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb
+++ b/meta-xfce/recipes-art/xfce-dusk-gtk3/xfce-dusk-gtk3_1.3.bb
@@ -1,10 +1,10 @@
SUMMARY = "Modified version of the xfce-dusk theme to support also gtk 3.x too"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://LICENSE;md5=8f0e2cd40e05189ec81232da84bd6e1a"
inherit allarch
-SRC_URI = "http://xfce-look.org/CONTENT/content-files/141404-xfce_dusk_gtk3-1_3.tar.gz;subdir=${BPN}-${PV}"
+SRC_URI = "http://sources.openembedded.org/141404-xfce_dusk_gtk3-1_3.tar.gz;subdir=${BPN}-${PV}"
SRC_URI[md5sum] = "b3ad37ad8173b14ec090e60a80e65d8f"
SRC_URI[sha256sum] = "bfa8a88607d1a1da5bd0b9e4e075767c54400a3c5a0fae88b619ed71532f30b4"
@@ -16,4 +16,4 @@ do_install() {
cp -r Xfce-dusk-gtk3 ${D}${datadir}/themes/Xfce-dusk-gtk3
}
-FILES_${PN} = "${datadir}/themes"
+FILES:${PN} = "${datadir}/themes"
diff --git a/meta-xfce/recipes-art/xfwm4-themes/xfwm4-themes_4.10.0.bb b/meta-xfce/recipes-art/xfwm4-themes/xfwm4-themes_4.10.0.bb
index 7030f7a267..272f83c01b 100644
--- a/meta-xfce/recipes-art/xfwm4-themes/xfwm4-themes_4.10.0.bb
+++ b/meta-xfce/recipes-art/xfwm4-themes/xfwm4-themes_4.10.0.bb
@@ -1,6 +1,6 @@
SUMMARY = "Additional (old) themes for Xfwm4"
SECTION = "x11/wm"
-LICENSE = "GPLv3"
+LICENSE = "GPL-3.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit xfce
@@ -11,7 +11,7 @@ SRC_URI[sha256sum] = "3214d5f00e9703b5e8c9e7c3287d606dedec7285ceb4d5db332e93ada6
# using xfwm4-theme as in xfwm4 might cause warnings of packages supplied by
# multiple providers. So we use xfwm4-old-theme here.
-python populate_packages_prepend () {
+python populate_packages:prepend () {
themedir = d.expand('${datadir}/themes')
do_split_packages(d, themedir, '^(.*)', 'xfwm4-old-theme-%s', 'XFWM4 theme %s', allow_dirs=True)
}
diff --git a/meta-xfce/recipes-bindings/vala/xfce4-vala/0001-configure.ac-Detect-vapidir-if-not-set-explicitly.patch b/meta-xfce/recipes-bindings/vala/xfce4-vala/0001-configure.ac-Detect-vapidir-if-not-set-explicitly.patch
new file mode 100644
index 0000000000..a3a9330ef3
--- /dev/null
+++ b/meta-xfce/recipes-bindings/vala/xfce4-vala/0001-configure.ac-Detect-vapidir-if-not-set-explicitly.patch
@@ -0,0 +1,31 @@
+From 35267d995a81263b98f0ad56399ac3e30f9cf152 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Tue, 30 Apr 2019 09:48:08 +0200
+Subject: [PATCH] configure.ac: Detect vala-api version if not set explicitly
+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>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9bf4230..c489385 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -38,7 +38,7 @@ AC_ARG_WITH([vala-api],
+ AC_HELP_STRING([--with-vala-api=VERSION],
+ [Use Vala API version VERSION]),
+ [vala_api=$withval],
+- [vala_api='0.16'])
++ [vala_api=`$PKG_CONFIG --variable=vapidir_versioned vapigen | sed -e 's:.*vala-::' -e s:/vapi::`])
+ M8T_CHECK_VALA([$vala_api])
+ AC_ARG_WITH([default-vapidir],
+ AC_HELP_STRING([--with-default-vapidir],
+--
+2.20.1
+
diff --git a/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb b/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
index 388659f20b..0a65bd94a2 100644
--- a/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
+++ b/meta-xfce/recipes-bindings/vala/xfce4-vala_4.10.3.bb
@@ -1,18 +1,19 @@
SUMMARY = "Xfce4 Vala provides bindings for the Xfce framework"
-LICENSE = "LGPLv2.1"
+LICENSE = "LGPL-2.1-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad"
DEPENDS = "libxfce4util garcon xfconf libxfce4ui xfce4-panel exo vala xfce4-dev-tools-native"
-inherit xfce pkgconfig distro_features_check
+inherit xfce pkgconfig features_check
REQUIRED_DISTRO_FEATURES = "x11"
-SRC_URI = "http://archive.xfce.org/src/bindings/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2"
+SRC_URI = " \
+ http://archive.xfce.org/src/bindings/${BPN}/${@xfce_verdir("${PV}")}/${BPN}-${PV}.tar.bz2 \
+ file://0001-configure.ac-Detect-vapidir-if-not-set-explicitly.patch \
+"
SRC_URI[md5sum] = "0bbb1d6e473e0fe9b335b7b1b49d8a71"
SRC_URI[sha256sum] = "07a8f2b7c09fcdd3d86e0c52adea3c58ca011d0142a93997a01b4af77260ae7b"
-EXTRA_OECONF = "-with-vala-api=0.40"
+FILES:${PN} += "${datadir}/vala-*/vapi"
-FILES_${PN} += "${datadir}/vala-*/vapi"
-
-RDEPENDS_${PN} = "vala"
+RDEPENDS:${PN} = "vala"
diff --git a/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb b/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
index 21930ba147..9d997cf57c 100644
--- a/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
+++ b/meta-xfce/recipes-core/images/core-image-minimal-xfce.bb
@@ -6,7 +6,7 @@ IMAGE_INSTALL = "packagegroup-core-boot \
kernel-modules \
"
-inherit distro_features_check
+inherit features_check
REQUIRED_DISTRO_FEATURES = "x11"
IMAGE_LINGUAS ?= " "
@@ -16,3 +16,5 @@ LICENSE = "MIT"
export IMAGE_BASENAME = "core-image-minimal-xfce"
inherit core-image
+
+SYSTEMD_DEFAULT_TARGET = "graphical.target"
diff --git a/meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch b/meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch
new file mode 100644
index 0000000000..35f1cfec43
--- /dev/null
+++ b/meta-xfce/recipes-extended/imsettings/imsettings/imsettings-gcc10.patch
@@ -0,0 +1,19 @@
+Fix build with -fno-common
+
+Imported from https://src.fedoraproject.org/rpms/imsettings/raw/master/f/imsettings-gcc10.patch
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
+diff -pruN imsettings-1.8.2.orig/imsettings-daemon/imsettings-server.c imsettings-1.8.2/imsettings-daemon/imsettings-server.c
+--- imsettings-1.8.2.orig/imsettings-daemon/imsettings-server.c 2019-11-14 14:08:03.000000000 +0900
++++ imsettings-1.8.2/imsettings-daemon/imsettings-server.c 2020-01-29 13:32:50.827832726 +0900
+@@ -91,7 +91,7 @@ GDBusInterfaceVTable __iface_vtable = {
+ NULL,
+ NULL,
+ };
+-guint signals[LAST_SIGNAL];
++static guint signals[LAST_SIGNAL];
+
+ G_DEFINE_TYPE_WITH_PRIVATE (IMSettingsServer, imsettings_server, G_TYPE_OBJECT);
+ G_LOCK_DEFINE_STATIC (logger);
diff --git a/meta-xfce/recipes-extended/imsettings/imsettings_1.7.3.bb b/meta-xfce/recipes-extended/imsettings/imsettings_1.7.3.bb
deleted file mode 100644
index 8f622bf6f8..0000000000
--- a/meta-xfce/recipes-extended/imsettings/imsettings_1.7.3.bb
+++ /dev/null
@@ -1,31 +0,0 @@
-SUMMARY = "Delivery framework for general Input Method configuration"
-DESCRIPTION = "IMSettings is a framework that delivers Input Method \
-settings and applies the changes so they take effect \
-immediately without any need to restart applications \
-or the desktop. \
-This package contains the core DBus services and some utilities."
-HOMEPAGE = "http://code.google.com/p/imsettings/"
-SECTION = "Applications/System"
-
-inherit autotools gtk-doc gobject-introspection distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "https://bitbucket.org/tagoh/imsettings/downloads/${BPN}-${PV}.tar.bz2 \
- "
-
-SRC_URI[md5sum] = "c6c65a2b2654fe9dfe9ab2e8b80c079a"
-SRC_URI[sha256sum] = "196d3a74cef254ff812c32682d1818d740e36a68b976fef9e99748d23a71a71a"
-
-LICENSE = "LGPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-EXTRA_OECONF = "--with-xinputsh=50-xinput.sh \
- --disable-static \
- "
-
-DEPENDS = "gtk+ gconf libnotify dbus-glib libgxim xfconf intltool-native"
-
-RDEPENDS_${PN} += "bash"
-
-FILES_${PN} += "${datadir}/dbus-1/* ${datadir}/gir-1.0/* ${libdir}/girepository-1.0/*"
diff --git a/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb b/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb
new file mode 100644
index 0000000000..21e9b3908f
--- /dev/null
+++ b/meta-xfce/recipes-extended/imsettings/imsettings_1.8.3.bb
@@ -0,0 +1,34 @@
+SUMMARY = "Delivery framework for general Input Method configuration"
+DESCRIPTION = "IMSettings is a framework that delivers Input Method \
+settings and applies the changes so they take effect \
+immediately without any need to restart applications \
+or the desktop. \
+This package contains the core DBus services and some utilities."
+HOMEPAGE = "http://code.google.com/p/imsettings/"
+SECTION = "Applications/System"
+
+LICENSE = "LGPL-2.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
+
+inherit autotools gtk-doc gobject-introspection gettext features_check
+
+DEPENDS = "autoconf-archive-native gtk+3 libnotify"
+
+REQUIRED_DISTRO_FEATURES = "x11"
+
+SRC_URI = "https://bitbucket.org/tagoh/imsettings/downloads/${BPN}-${PV}.tar.bz2 \
+ file://imsettings-gcc10.patch \
+ "
+SRC_URI[sha256sum] = "45986b9ca1b87b760a5dbaecd9a2b77d080adc47868a0512826077175d5b3ee3"
+
+EXTRA_OECONF = "--with-xinputsh=50-xinput.sh \
+ --disable-static \
+ "
+
+PACKAGECONFIG ??= "xfce"
+PACKAGECONFIG[xfce] = ",,xfconf"
+PACKAGECONFIG[xim] = ",,libgxim"
+
+RDEPENDS:${PN} += "bash"
+
+FILES:${PN} += "${datadir}/dbus-1/*"
diff --git a/meta-xfce/recipes-extended/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch b/meta-xfce/recipes-extended/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch
deleted file mode 100644
index 2b5eda0d13..0000000000
--- a/meta-xfce/recipes-extended/libunique/libunique/0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From f39bcd5af79aa3efe2cecb2212793c5b596890a8 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Thu, 18 Feb 2016 17:40:45 +0200
-Subject: [PATCH] Makefile.am: use $(LIBTOOL) instead of hardcoded libtool name
-
-Upstream-Status: Pending
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- unique/Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/unique/Makefile.am b/unique/Makefile.am
-index 6475a87..734f431 100644
---- a/unique/Makefile.am
-+++ b/unique/Makefile.am
-@@ -114,7 +114,7 @@ Unique-1.0.gir: $(INTROSPECTION_SCANNER) libunique-1.0.la
- --include=GObject-2.0 \
- --include=Gtk-2.0 \
- --library=libunique-1.0.la \
-- --libtool="$(top_builddir)/libtool" \
-+ --libtool="$(LIBTOOL)" \
- --pkg gobject-2.0 \
- --pkg gtk+-2.0 \
- --output $@ \
---
-2.7.0
-
diff --git a/meta-xfce/recipes-extended/libunique/libunique/0001-test-unique-Add-format-qualifier-s-for-string.patch b/meta-xfce/recipes-extended/libunique/libunique/0001-test-unique-Add-format-qualifier-s-for-string.patch
deleted file mode 100644
index 7f9fdf3971..0000000000
--- a/meta-xfce/recipes-extended/libunique/libunique/0001-test-unique-Add-format-qualifier-s-for-string.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 37632aca00d48c53e91f08bc7435c721ba81b2cd Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 30 Mar 2017 14:32:55 -0700
-Subject: [PATCH] test-unique: Add format qualifier %s for string
-
-Fixes potential security issues that compiler flags
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- tests/test-unique.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/test-unique.c b/tests/test-unique.c
-index b7cde45..82ee81b 100644
---- a/tests/test-unique.c
-+++ b/tests/test-unique.c
-@@ -82,10 +82,10 @@ app_message_cb (UniqueApp *app,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_MESSAGE_INFO,
- GTK_BUTTONS_CLOSE,
-- title);
-+ "%s",title);
- if (message)
- gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (dialog),
-- message);
-+ "%s",message);
-
- gtk_window_set_urgency_hint (GTK_WINDOW (dialog), TRUE);
-
---
-2.12.1
-
diff --git a/meta-xfce/recipes-extended/libunique/libunique/build.patch b/meta-xfce/recipes-extended/libunique/libunique/build.patch
deleted file mode 100644
index 46a5c62e4f..0000000000
--- a/meta-xfce/recipes-extended/libunique/libunique/build.patch
+++ /dev/null
@@ -1,421 +0,0 @@
-Upstream-Status: Backport [http://git.gnome.org/browse/unique/commit/?h=unique-1.1&id=f75ca2d7aad7d27686acca6090c1c569a79d7e63]
-Signed-off-By: Ross Burton <ross.burton@intel.com>
-
-From f75ca2d7aad7d27686acca6090c1c569a79d7e63 Mon Sep 17 00:00:00 2001
-From: Emmanuele Bassi <ebassi@gnome.org>
-Date: Sat, 08 May 2010 11:17:21 +0000
-Subject: build: Update the build environment
-
-Require autoconf 2.63, automake 1.11 and libtool 2.2.6 to remove Shave.
-
-Also bump up the requirement for gobject-introspection to 0.6.7.
----
-diff --git a/build/autotools/Makefile.am b/build/autotools/Makefile.am
-index 5f35b85..b78428f 100644
---- a/build/autotools/Makefile.am
-+++ b/build/autotools/Makefile.am
-@@ -1,7 +1,4 @@
- EXTRA_DIST = \
-- shave-libtool.in \
-- shave.in \
-- shave.m4 \
- as-compiler-flag.m4 \
- introspection.m4 \
- Makefile.am.enums \
-diff --git a/build/autotools/Makefile.am.silent b/build/autotools/Makefile.am.silent
-index 249f6af..8576846 100644
---- a/build/autotools/Makefile.am.silent
-+++ b/build/autotools/Makefile.am.silent
-@@ -1,10 +1,5 @@
- # custom rules for quiet builds
-
--if USE_SHAVE
--QUIET_GEN = $(Q:@=@echo ' GEN '$@;)
--QUIET_LN = $(Q:@=@echo ' LN '$@;)
--QUIET_RM = $(Q:@=@echo ' RM '$@;)
--else
- QUIET_GEN = $(AM_V_GEN)
-
- QUIET_LN = $(QUIET_LN_$(V))
-@@ -14,4 +9,3 @@ QUIET_LN_0 = @echo ' LN '$@;
- QUIET_RM = $(QUIET_RM_$(V))
- QUIET_RM_ = $(QUIET_RM_$(AM_DEFAULT_VERBOSITY))
- QUIET_RM_0 = @echo ' RM '$@;
--endif # USE_SHAVE
-diff --git a/build/autotools/introspection.m4 b/build/autotools/introspection.m4
-index f9ce49c..589721c 100644
---- a/build/autotools/introspection.m4
-+++ b/build/autotools/introspection.m4
-@@ -59,12 +59,18 @@ m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
- INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
- INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
- INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
-+ INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
-+ INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
-+ INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
- fi
- AC_SUBST(INTROSPECTION_SCANNER)
- AC_SUBST(INTROSPECTION_COMPILER)
- AC_SUBST(INTROSPECTION_GENERATE)
- AC_SUBST(INTROSPECTION_GIRDIR)
- AC_SUBST(INTROSPECTION_TYPELIBDIR)
-+ AC_SUBST(INTROSPECTION_CFLAGS)
-+ AC_SUBST(INTROSPECTION_LIBS)
-+ AC_SUBST(INTROSPECTION_MAKEFILE)
-
- AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
- ])
-diff --git a/build/autotools/shave-libtool.in b/build/autotools/shave-libtool.in
-deleted file mode 100644
-index 1f3a720..0000000
---- a/build/autotools/shave-libtool.in
-+++ b/dev/null
-@@ -1,69 +0,0 @@
--#!/bin/sh
--
--# we need sed
--SED=@SED@
--if test -z "$SED" ; then
--SED=sed
--fi
--
--lt_unmangle ()
--{
-- last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
--}
--
--# the real libtool to use
--LIBTOOL="$1"
--shift
--
--# if 1, don't print anything, the underlaying wrapper will do it
--pass_though=0
--
--# scan the arguments, keep the right ones for libtool, and discover the mode
--preserved_args=
--while test "$#" -gt 0; do
-- opt="$1"
-- shift
--
-- case $opt in
-- --mode=*)
-- mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
-- preserved_args="$preserved_args $opt"
-- ;;
-- -o)
-- lt_output="$1"
-- preserved_args="$preserved_args $opt"
-- ;;
-- *)
-- preserved_args="$preserved_args $opt"
-- ;;
-- esac
--done
--
--case "$mode" in
--compile)
-- # shave will be called and print the actual CC/CXX/LINK line
-- preserved_args="$preserved_args --shave-mode=$mode"
-- pass_though=1
-- ;;
--link)
-- preserved_args="$preserved_args --shave-mode=$mode"
-- Q=" LINK "
-- ;;
--*)
-- # let's u
-- # echo "*** libtool: Unimplemented mode: $mode, fill a bug report"
-- ;;
--esac
--
--lt_unmangle "$lt_output"
--output=$last_result
--
--if test -z $V; then
-- if test $pass_though -eq 0; then
-- echo "$Q$output"
-- fi
-- $LIBTOOL --silent $preserved_args
--else
-- echo $LIBTOOL $preserved_args
-- $LIBTOOL $preserved_args
--fi
-diff --git a/build/autotools/shave.in b/build/autotools/shave.in
-deleted file mode 100644
-index 5c16f27..0000000
---- a/build/autotools/shave.in
-+++ b/dev/null
-@@ -1,79 +0,0 @@
--#!/bin/sh
--
--# we need sed
--SED=@SED@
--if test -z "$SED" ; then
--SED=sed
--fi
--
--lt_unmangle ()
--{
-- last_result=`echo $1 | $SED -e 's#.libs/##' -e 's#[0-9a-zA-Z_\-\.]*_la-##'`
--}
--
--# the tool to wrap (cc, cxx, ar, ranlib, ..)
--tool="$1"
--shift
--
--# the reel tool (to call)
--REEL_TOOL="$1"
--shift
--
--pass_through=0
--preserved_args=
--while test "$#" -gt 0; do
-- opt="$1"
-- shift
--
-- case $opt in
-- --shave-mode=*)
-- mode=`echo $opt | $SED -e 's/[-_a-zA-Z0-9]*=//'`
-- ;;
-- -o)
-- lt_output="$1"
-- preserved_args="$preserved_args $opt"
-- ;;
-- *)
-- preserved_args="$preserved_args $opt"
-- ;;
-- esac
--done
--
--# mode=link is handled in the libtool wrapper
--case "$mode,$tool" in
--link,*)
-- pass_through=1
-- ;;
--*,cxx)
-- Q=" CXX "
-- ;;
--*,cc)
-- Q=" CC "
-- ;;
--*,fc)
-- Q=" FC "
-- ;;
--*,f77)
-- Q=" F77 "
-- ;;
--*,objc)
-- Q=" OBJC "
-- ;;
--*,*)
-- # should not happen
-- Q=" CC "
-- ;;
--esac
--
--lt_unmangle "$lt_output"
--output=$last_result
--
--if test -z $V; then
-- if test $pass_through -eq 0; then
-- echo "$Q$output"
-- fi
-- $REEL_TOOL $preserved_args
--else
-- echo $REEL_TOOL $preserved_args
-- $REEL_TOOL $preserved_args
--fi
-diff --git a/build/autotools/shave.m4 b/build/autotools/shave.m4
-deleted file mode 100644
-index 0a3509e..0000000
---- a/build/autotools/shave.m4
-+++ b/dev/null
-@@ -1,77 +0,0 @@
--dnl Make automake/libtool output more friendly to humans
--dnl Damien Lespiau <damien.lespiau@gmail.com>
--dnl
--dnl SHAVE_INIT([shavedir],[default_mode])
--dnl
--dnl shavedir: the directory where the shave scripts are, it defaults to
--dnl $(top_builddir)
--dnl default_mode: (enable|disable) default shave mode. This parameter
--dnl controls shave's behaviour when no option has been
--dnl given to configure. It defaults to disable.
--dnl
--dnl * SHAVE_INIT should be called late in your configure.(ac|in) file (just
--dnl before AC_CONFIG_FILE/AC_OUTPUT is perfect. This macro rewrites CC and
--dnl LIBTOOL, you don't want the configure tests to have these variables
--dnl re-defined.
--dnl * This macro requires GNU make's -s option.
--
--AC_DEFUN([_SHAVE_ARG_ENABLE],
--[
-- AC_ARG_ENABLE([shave],
-- AS_HELP_STRING(
-- [--enable-shave],
-- [use shave to make the build pretty [[default=$1]]]),,
-- [enable_shave=$1]
-- )
--])
--
--AC_DEFUN([SHAVE_INIT],
--[
-- dnl you can tweak the default value of enable_shave
-- m4_if([$2], [enable], [_SHAVE_ARG_ENABLE(yes)], [_SHAVE_ARG_ENABLE(no)])
--
-- if test x"$enable_shave" = xyes; then
-- dnl where can we find the shave scripts?
-- m4_if([$1],,
-- [shavedir="$ac_pwd"],
-- [shavedir="$ac_pwd/$1"])
-- AC_SUBST(shavedir)
--
-- dnl make is now quiet
-- AC_SUBST([MAKEFLAGS], [-s])
-- AC_SUBST([AM_MAKEFLAGS], ['`test -z $V && echo -s`'])
--
-- dnl we need sed
-- AC_CHECK_PROG(SED,sed,sed,false)
--
-- dnl substitute libtool
-- SHAVE_SAVED_LIBTOOL=$LIBTOOL
-- LIBTOOL="${SHELL} ${shavedir}/shave-libtool '${SHAVE_SAVED_LIBTOOL}'"
-- AC_SUBST(LIBTOOL)
--
-- dnl substitute cc/cxx
-- SHAVE_SAVED_CC=$CC
-- SHAVE_SAVED_CXX=$CXX
-- SHAVE_SAVED_FC=$FC
-- SHAVE_SAVED_F77=$F77
-- SHAVE_SAVED_OBJC=$OBJC
-- CC="${SHELL} ${shavedir}/shave cc ${SHAVE_SAVED_CC}"
-- CXX="${SHELL} ${shavedir}/shave cxx ${SHAVE_SAVED_CXX}"
-- FC="${SHELL} ${shavedir}/shave fc ${SHAVE_SAVED_FC}"
-- F77="${SHELL} ${shavedir}/shave f77 ${SHAVE_SAVED_F77}"
-- OBJC="${SHELL} ${shavedir}/shave objc ${SHAVE_SAVED_OBJC}"
-- AC_SUBST(CC)
-- AC_SUBST(CXX)
-- AC_SUBST(FC)
-- AC_SUBST(F77)
-- AC_SUBST(OBJC)
--
-- V=@
-- else
-- V=1
-- fi
-- Q='$(V:1=)'
-- AC_SUBST(V)
-- AC_SUBST(Q)
--])
--
-diff --git a/configure.ac b/configure.ac
-index a3ed3ee..bc3163a 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -14,7 +14,7 @@ m4_define([unique_api_version], [1.0])
- # This is the X.Y used in the protocol negotiation
- m4_define([unique_protocol_version], [1.0])
-
--AC_PREREQ([2.59])
-+AC_PREREQ([2.63])
-
- AC_INIT([unique], [unique_version],
- [http://bugzilla.gnome.org/enter_bug.cgi?product=libunique],
-@@ -23,9 +23,21 @@ AC_INIT([unique], [unique_version],
- AC_CONFIG_SRCDIR([unique/unique.h])
- AC_CONFIG_MACRO_DIR([build/autotools])
-
--AM_INIT_AUTOMAKE([1.10])
-+AM_INIT_AUTOMAKE([1.11 no-define -Wno-portability dist-bzip2])
- AM_CONFIG_HEADER([config.h])
-
-+AM_SILENT_RULES([yes])
-+
-+AC_PROG_CC_C_O
-+
-+AM_PATH_GLIB_2_0
-+
-+LT_PREREQ([2.2.6])
-+LT_INIT([disable-static])
-+
-+# Honor aclocal flags
-+ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
-+
- # version symbols
- UNIQUE_MAJOR_VERSION=unique_major_version
- UNIQUE_MINOR_VERSION=unique_minor_version
-@@ -49,21 +61,6 @@ UNIQUE_LT_CURRENT_MINUS_AGE=m4_eval(lt_current - lt_age)
- AC_SUBST(UNIQUE_LT_VERSION_INFO)
- AC_SUBST(UNIQUE_LT_CURRENT_MINUS_AGE)
-
--AC_ISC_POSIX
--AC_PROG_CC
--AC_PROG_INSTALL
--AC_PROG_MAKE_SET
--AC_C_CONST
--AC_PROG_LIBTOOL
--AC_PATH_PROG(GLIB_MKENUMS, [glib-mkenums])
--AC_PATH_PROG(GLIB_GENMARSHAL, [glib-genmarshal])
--
--AM_SANITY_CHECK
--AM_PROG_CC_STDC
--
--# Honor aclocal flags
--ACLOCAL="$ACLOCAL $ACLOCAL_FLAGS"
--
- m4_define([glib_required], [2.12.0])
- m4_define([gtk_required], [2.11.0])
- m4_define([dbus_required], [0.70])
-@@ -122,7 +119,6 @@ AM_CONDITIONAL([HAVE_DBUS], [test "x$have_dbus" = "xyes"])
- dnl Bacon backend
- dnl This is the fallback backend, so we *need* these headers and functions
- dnl even if we end up using D-Bus
--dnl D-Bus backend dependencies
- m4_define([have_bacon_default], [yes])
- AC_ARG_ENABLE([bacon],
- [AC_HELP_STRING([--enable-bacon=@<:@yes/no@:>@],
-@@ -178,9 +174,9 @@ AC_ARG_ENABLE([maintainer-flags],
- AS_IF([test "x$enable_maintainer_flags" = "xyes" && test "x$GCC" = "xyes"],
- [
- AS_COMPILER_FLAGS([MAINTAINER_CFLAGS],
-- ["-Werror -Wall -Wshadow -Wcast-align
-- -Wno-uninitialized -Wempty-body -Wformat-security
-- -Winit-self"])
-+ ["-Wall -Wshadow -Wcast-align
-+ -Wno-uninitialized -Wempty-body
-+ -Wformat-security -Winit-self"])
- ]
- )
-
-@@ -230,27 +226,10 @@ AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],
- AM_GLIB_DEFINE_LOCALEDIR(UNIQUE_LOCALEDIR)
-
- # introspection
--GOBJECT_INTROSPECTION_CHECK([0.6.3])
-+GOBJECT_INTROSPECTION_CHECK([0.6.7])
-
- # gtk-doc
--GTK_DOC_CHECK([1.11])
--
--# nice builds
--m4_ifdef([AM_SILENT_RULES],
-- [
-- AM_SILENT_RULES([yes])
-- use_shave=no
-- ],
-- [
-- SHAVE_INIT([build/autotools], [enable])
-- AC_CONFIG_FILES([
-- build/autotools/shave-libtool
-- build/autotools/shave
-- ])
-- use_shave=yes
-- ])
--
--AM_CONDITIONAL([USE_SHAVE], [test "x$use_shave" = "xyes"])
-+GTK_DOC_CHECK([1.13])
-
- AC_CONFIG_FILES([
- Makefile
---
-cgit v0.9.0.2
diff --git a/meta-xfce/recipes-extended/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch b/meta-xfce/recipes-extended/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch
deleted file mode 100644
index d75de93fc2..0000000000
--- a/meta-xfce/recipes-extended/libunique/libunique/fix_for_compile_with_gcc-4.6.0.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Upstream-Status: Pending
-
-Fix Following compilation errors with gcc 4.6.0
-
-Nitin A Kamble <nitin.a.kamble@intel.com> 2011/05/10
-
-| uniquebackend-dbus.c: In function 'unique_backend_dbus_request_name':
-| uniquebackend-dbus.c:87:22: error: variable 'backend_dbus' set but not used [-Werror=unused-but-set-variable]
-| uniquebackend-dbus.c: In function 'unique_backend_dbus_send_message':
-| uniquebackend-dbus.c:189:12: error: variable 'res' set but not used [-Werror=unused-but-set-variable]
-| cc1: all warnings being treated as errors
-|
-| make[5]: *** [libunique_dbus_la-uniquebackend-dbus.lo] Error 1
-
-Index: libunique-1.1.6/unique/dbus/uniquebackend-dbus.c
-===================================================================
---- libunique-1.1.6.orig/unique/dbus/uniquebackend-dbus.c
-+++ libunique-1.1.6/unique/dbus/uniquebackend-dbus.c
-@@ -84,7 +84,7 @@ unique_backend_dbus_register_proxy (Uniq
- static gboolean
- unique_backend_dbus_request_name (UniqueBackend *backend)
- {
-- UniqueBackendDBus *backend_dbus;
-+ UniqueBackendDBus __attribute__((__unused__)) *backend_dbus;
- const gchar *name;
- DBusGConnection *connection;
- DBusGProxy *proxy;
-@@ -186,7 +186,7 @@ unique_backend_dbus_send_message (Unique
- GValueArray *data;
- gchar *cmd;
- gchar *resp;
-- gboolean res;
-+ gboolean __attribute__((__unused__)) res;
- GError *error;
- UniqueResponse response;
-
diff --git a/meta-xfce/recipes-extended/libunique/libunique/noconst.patch b/meta-xfce/recipes-extended/libunique/libunique/noconst.patch
deleted file mode 100644
index 2cc03473c5..0000000000
--- a/meta-xfce/recipes-extended/libunique/libunique/noconst.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-G_CONST_RETURN is deprecated in glib 2.30 so remove to to avoid
-build failures.
-
-RP 2011/10/12
-
-Upstream-Status: Pending
-
-Index: libunique-1.1.6/unique/uniqueapp.c
-===================================================================
---- libunique-1.1.6.orig/unique/uniqueapp.c 2011-10-12 01:21:25.842046488 +0100
-+++ libunique-1.1.6/unique/uniqueapp.c 2011-10-12 01:21:55.062046796 +0100
-@@ -781,7 +781,7 @@
- }
-
-
--G_CONST_RETURN gchar *
-+const gchar *
- unique_command_to_string (UniqueApp *app,
- gint command)
- {
-@@ -863,7 +863,7 @@
- return retval;
- }
-
--G_CONST_RETURN gchar *
-+const gchar *
- unique_response_to_string (UniqueResponse response)
- {
- GEnumClass *enum_class;
-Index: libunique-1.1.6/unique/uniquebackend.c
-===================================================================
---- libunique-1.1.6.orig/unique/uniquebackend.c 2011-10-12 01:21:25.742046323 +0100
-+++ libunique-1.1.6/unique/uniquebackend.c 2011-10-12 01:21:55.062046796 +0100
-@@ -111,7 +111,7 @@
- *
- * Return value: FIXME
- */
--G_CONST_RETURN gchar *
-+const gchar *
- unique_backend_get_name (UniqueBackend *backend)
- {
- g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
-@@ -154,7 +154,7 @@
- *
- * Return value: FIXME
- */
--G_CONST_RETURN gchar *
-+const gchar *
- unique_backend_get_startup_id (UniqueBackend *backend)
- {
- g_return_val_if_fail (UNIQUE_IS_BACKEND (backend), NULL);
-Index: libunique-1.1.6/unique/uniquebackend.h
-===================================================================
---- libunique-1.1.6.orig/unique/uniquebackend.h 2011-10-12 01:21:25.992046521 +0100
-+++ libunique-1.1.6/unique/uniquebackend.h 2011-10-12 01:21:56.512047875 +0100
-@@ -94,10 +94,10 @@
-
- UniqueBackend * unique_backend_create (void);
-
--G_CONST_RETURN gchar *unique_backend_get_name (UniqueBackend *backend);
-+const gchar *unique_backend_get_name (UniqueBackend *backend);
- void unique_backend_set_name (UniqueBackend *backend,
- const gchar *name);
--G_CONST_RETURN gchar *unique_backend_get_startup_id (UniqueBackend *backend);
-+const gchar *unique_backend_get_startup_id (UniqueBackend *backend);
- void unique_backend_set_startup_id (UniqueBackend *backend,
- const gchar *startup_id);
- GdkScreen * unique_backend_get_screen (UniqueBackend *backend);
-Index: libunique-1.1.6/unique/uniqueinternals.h
-===================================================================
---- libunique-1.1.6.orig/unique/uniqueinternals.h 2011-10-12 01:21:25.892046532 +0100
-+++ libunique-1.1.6/unique/uniqueinternals.h 2011-10-12 01:21:56.512047875 +0100
-@@ -44,11 +44,11 @@
- * and then back into an id
- */
- UniqueResponse unique_response_from_string (const gchar *response);
--G_CONST_RETURN gchar *unique_response_to_string (UniqueResponse response);
-+const gchar *unique_response_to_string (UniqueResponse response);
-
- gint unique_command_from_string (UniqueApp *app,
- const gchar *command);
--G_CONST_RETURN gchar *unique_command_to_string (UniqueApp *app,
-+const gchar *unique_command_to_string (UniqueApp *app,
- gint command);
-
- G_END_DECLS
-Index: libunique-1.1.6/unique/uniquemessage.c
-===================================================================
---- libunique-1.1.6.orig/unique/uniquemessage.c 2011-10-12 01:21:25.942046524 +0100
-+++ libunique-1.1.6/unique/uniquemessage.c 2011-10-12 01:21:55.072046595 +0100
-@@ -185,7 +185,7 @@
- *
- * Since: 1.0.2
- */
--G_CONST_RETURN guchar *
-+const guchar *
- unique_message_data_get (UniqueMessageData *message_data,
- gsize *length)
- {
-@@ -525,7 +525,7 @@
- * owned by the #UniqueMessageData structure and should not be
- * modified or freed
- */
--G_CONST_RETURN gchar *
-+const gchar *
- unique_message_data_get_startup_id (UniqueMessageData *message_data)
- {
- g_return_val_if_fail (message_data != NULL, NULL);
-Index: libunique-1.1.6/unique/uniquemessage.h
-===================================================================
---- libunique-1.1.6.orig/unique/uniquemessage.h 2011-10-12 01:21:25.792046596 +0100
-+++ libunique-1.1.6/unique/uniquemessage.h 2011-10-12 01:21:56.512047875 +0100
-@@ -48,7 +48,7 @@
- void unique_message_data_set (UniqueMessageData *message_data,
- const guchar *data,
- gsize length);
--G_CONST_RETURN guchar *unique_message_data_get (UniqueMessageData *message_data,
-+const guchar *unique_message_data_get (UniqueMessageData *message_data,
- gsize *length);
-
- gboolean unique_message_data_set_text (UniqueMessageData *message_data,
-@@ -63,7 +63,7 @@
- gchar * unique_message_data_get_filename (UniqueMessageData *message_data);
-
- GdkScreen * unique_message_data_get_screen (UniqueMessageData *message_data);
--G_CONST_RETURN gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
-+const gchar * unique_message_data_get_startup_id (UniqueMessageData *message_data);
- guint unique_message_data_get_workspace (UniqueMessageData *message_data);
-
- G_END_DECLS
diff --git a/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb b/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
deleted file mode 100644
index 49ed07ad97..0000000000
--- a/meta-xfce/recipes-extended/libunique/libunique_1.1.6.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "Library for supporting single instance GTK+ applications"
-DESCRIPTION = "Unique is a library for writing single instance GTK+ applications. If you launch a single instance application twice, the second instance will either just quit or will send a message to the running instance."
-HOMEPAGE = "https://wiki.gnome.org/Attic/LibUnique"
-BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=libunique"
-
-SRC_URI = "${GNOME_MIRROR}/libunique/1.1/libunique-${PV}.tar.bz2 \
- file://fix_for_compile_with_gcc-4.6.0.patch \
- file://noconst.patch \
- file://build.patch \
- file://0001-Makefile.am-use-LIBTOOL-instead-of-hardcoded-libtool.patch \
- file://0001-test-unique-Add-format-qualifier-s-for-string.patch \
- "
-
-SRC_URI[md5sum] = "7955769ef31f1bc4f83446dbb3625e6d"
-SRC_URI[sha256sum] = "e5c8041cef8e33c55732f06a292381cb345db946cf792a4ae18aa5c66cdd4fbb"
-
-PR = "r7"
-
-DEPENDS = "dbus-glib-native glib-2.0 gtk+"
-
-PACKAGECONFIG ??= "dbus"
-PACKAGECONFIG[dbus] = "--enable-dbus,--disable-dbus,dbus dbus-glib"
-
-LICENSE = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=2d5025d4aa3495befef8f17206a5b0a1"
-
-
-inherit autotools pkgconfig gobject-introspection distro_features_check gtk-doc
-
-REQUIRED_DISTRO_FEATURES = "x11"
diff --git a/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb b/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb
index 19a6e2b04c..93e5bbf71d 100644
--- a/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb
+++ b/meta-xfce/recipes-multimedia/packagegroups/packagegroup-xfce-multimedia.bb
@@ -1,14 +1,15 @@
SUMMARY = "All packages multimedia packages available for XFCE"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-inherit packagegroup
+inherit packagegroup features_check
+
+# parole needs x11
+REQUIRED_DISTRO_FEATURES = "pam x11"
# While this item does not require it, it depends on xfmpc and xfc4-mpc-plugin
# that wants mpd which does
LICENSE_FLAGS = "commercial"
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
parole \
xfmpc \
xfce4-mpc-plugin \
diff --git a/meta-xfce/recipes-multimedia/parole/parole_1.0.1.bb b/meta-xfce/recipes-multimedia/parole/parole_1.0.1.bb
deleted file mode 100644
index 2b4e97490d..0000000000
--- a/meta-xfce/recipes-multimedia/parole/parole_1.0.1.bb
+++ /dev/null
@@ -1,38 +0,0 @@
-DESCRIPTION = "Parole is a modern simple media player based on the GStreamer framework"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/parole"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-app gtk-doc mime
-
-DEPENDS += " \
- glib-2.0 \
- dbus-glib \
- gtk+3 \
- \
- xfce4-dev-tools-native \
- libxfce4util \
- libxfce4ui \
- xfconf \
- \
- gstreamer1.0-plugins-base \
- taglib \
-"
-
-SRC_URI[md5sum] = "46fe86bbe0c4aa02c53244d66e62e90c"
-SRC_URI[sha256sum] = "8ad2931fdb35415cc3d7551b5f2207bfaa1aba15545accbacbb4984cdabd7099"
-
-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}/appdata \
- ${libdir}/parole-0/*.so \
-"
-
-FILES_${PN}-dev += "${libdir}/parole-0/*.la"
diff --git a/meta-xfce/recipes-multimedia/parole/parole_4.16.0.bb b/meta-xfce/recipes-multimedia/parole/parole_4.16.0.bb
new file mode 100644
index 0000000000..04aabe0c71
--- /dev/null
+++ b/meta-xfce/recipes-multimedia/parole/parole_4.16.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] = "0d305ad8ccd3974d6b632f74325b1b8a39304c905c6b405b70f52c4cfd55a7e7"
+
+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.0.bb b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.0.bb
deleted file mode 100644
index 9f501f796d..0000000000
--- a/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.0.bb
+++ /dev/null
@@ -1,18 +0,0 @@
-SUMMARY = "Simple client plugin for Music Player Daemon"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mpc-plugin"
-SECTION = "x11/application"
-LICENSE = "BSD"
-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] = "13d5d95ef0c305bac45fde6231258e5d"
-SRC_URI[sha256sum] = "f1320916ae3112e6825699652a502cebfa78bb006c649b42d3d331dfe57b6cb0"
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
new file mode 100644
index 0000000000..4a7ed93ebc
--- /dev/null
+++ b/meta-xfce/recipes-multimedia/xfce4-mpc-plugin/xfce4-mpc-plugin_0.5.2.bb
@@ -0,0 +1,18 @@
+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/xfmpc/xfmpc_0.2.3.bb b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb
deleted file mode 100644
index 869435d68a..0000000000
--- a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.2.3.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "Music Player Daemon (MPD) client written in GTK+"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfmpc"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "gtk+ 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] = "e2d2faeb7a6f62813e287f3d12522b71"
-SRC_URI[sha256sum] = "4189c0c82b66b758a6d5bc651493b675d3d46329e5f1a76ff26c448125f4fcb0"
diff --git a/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb
new file mode 100644
index 0000000000..b8521ba95e
--- /dev/null
+++ b/meta-xfce/recipes-multimedia/xfmpc/xfmpc_0.3.0.bb
@@ -0,0 +1,16 @@
+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-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb
deleted file mode 100644
index 9d2d954f02..0000000000
--- a/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A battery monitor panel plugin for Xfce4, compatible with APM and ACP"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-battery-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "f78d8d0cc13d40753a207a836869b953"
-SRC_URI[sha256sum] = "8c9deec8d95da4cc39d6d9091433e5822b6bbe07d80117045dd4dd3480427ece"
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
new file mode 100644
index 0000000000..0f8489b18c
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/battery/xfce4-battery-plugin_1.1.4.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=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "107df2a837156c010e1eab5430bab90c77f0a3dc699b5937678c8a9c5e64c222"
diff --git a/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.6.0.bb b/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.6.0.bb
deleted file mode 100644
index de0d0a06d9..0000000000
--- a/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.6.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "A calculator plugin for the Xfce panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-calculator-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=909430f63fddd63f120ba29e8979f65c"
-
-inherit xfce-panel-plugin gtk-icon-cache
-
-SRC_URI[md5sum] = "1b956a89693d039a61b4725cefb23a4d"
-SRC_URI[sha256sum] = "eb51765580ea4650f9cf062382a820fb6483ee5dbe003aeb6f063929e299f9c2"
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
new file mode 100644
index 0000000000..8fd2bd0d29
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/calculator/xfce4-calculator-plugin_0.7.1.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] = "e4016a03c3ef4ebddd97e4135f5e304f80677033c98e19644b9989ec6f5ada81"
diff --git a/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb b/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb
deleted file mode 100644
index f683f53594..0000000000
--- a/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.4.2.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Clipman is a clipboard manager for Xfce"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "xfconf xorgproto libxtst"
-
-SRC_URI[md5sum] = "9169140af7c9d3fddd8a5c9e0efb5a61"
-SRC_URI[sha256sum] = "cf2b45e327e67cc187dcb99a6ef6d95570463045accd24540e17172f005189b3"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[qrencode] = "--enable-libqrencode,--disable-libqrencode,qrencode"
-
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.6.2.bb b/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.6.2.bb
new file mode 100644
index 0000000000..39a8f2edfe
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/clipman/xfce4-clipman-plugin_1.6.2.bb
@@ -0,0 +1,16 @@
+SUMMARY = "Clipman is a clipboard manager for Xfce"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-clipman-plugin"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
+
+inherit xfce-panel-plugin
+
+DEPENDS += "xfconf xorgproto libxtst"
+
+SRC_URI[sha256sum] = "ab8a5fe6f68fb1789190e498243a1d1385de3f64e984f470cbd3d1eb779399b8"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[qrencode] = "--enable-libqrencode,--disable-libqrencode,qrencode"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb b/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb
index 3cd4ee65ee..2384682ecb 100644
--- a/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb
+++ b/meta-xfce/recipes-panel-plugins/closebutton/xfce4-closebutton-plugin_git.bb
@@ -1,18 +1,18 @@
SUMMARY = "Plugin displaying close button for application currently active"
SECTION = "x11"
-LICENSE = "GPLv2"
+LICENSE = "GPL-2.0-only"
LIC_FILES_CHKSUM = "file://COPYING;md5=b6952d9a47fc2ad0f315510e1290455f"
inherit xfce-panel-plugin xfce-git gtk-icon-cache perlnative
-DEPENDS += "exo-native libwnck xfconf"
+DEPENDS += "xfce4-dev-tools-native libwnck3 xfconf"
-PV = "0.1.0+gitr${SRCPV}"
+PV = "4.16.0"
-SRC_URI = "git://github.com/schnitzeltony/xfce4-closebutton-plugin.git;branch=master"
-SRCREV = "02b74f13ad6f639234c8db1854963038b2780a2c"
+SRC_URI = "git://github.com/schnitzeltony/xfce4-closebutton-plugin.git;branch=master;protocol=https"
+SRCREV = "538f9acfc5d5019f5cde734d056bcc0c95da9b4c"
S = "${WORKDIR}/git"
EXTRA_OECONF += "--enable-maintainer-mode"
-FILES_${PN} += "${datadir}/xfce4/closebutton/themes"
+FILES:${PN} += "${datadir}/xfce4/closebutton/themes"
diff --git a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.0.bb b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.0.bb
deleted file mode 100644
index e8ce6b09da..0000000000
--- a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin to display frequency of all cpus"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpufreq-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=1f6f1c0be32491a0c8d2915607a28f36"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "152c4c5d9fd926081753d289c18a04c3"
-SRC_URI[sha256sum] = "fec60f14ab02b7079798809c11a79b4930abaeb0e4217068a336cb63cb47970a"
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.0.5.bb b/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.0.5.bb
deleted file mode 100644
index 83e2bb5c08..0000000000
--- a/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.0.5.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-cpugraph-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=415654f59d8fa70fe4eac2c3f86c8f5e"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "f0ebfabb273adf69361b37a3fa4b7912"
-SRC_URI[sha256sum] = "85da0ec89aacfd31e0bbafcefea37cdca618d62e681c1c9da8bdd492f028f4c7"
diff --git a/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.7.bb b/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.7.bb
new file mode 100644
index 0000000000..e23188d309
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/cpugraph/xfce4-cpugraph-plugin_1.2.7.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] = "68a651e278ed7186964e455b69b15da77f8d56257e5c3d6adf783b3ee9337405"
diff --git a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.0.bb b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.0.bb
deleted file mode 100644
index af38ba543d..0000000000
--- a/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.7.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin displaying date and time and a calendar when left-clicked"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-datetime-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "30caaa94c6c267827a31ad69fa472e51"
-SRC_URI[sha256sum] = "297f3077f7aee52a237449fbd8595e232267bc600b5b9e7ddc5baab306ed67b9"
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
new file mode 100644
index 0000000000..c029ac1c0f
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/datetime/xfce4-datetime-plugin_0.8.1.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] = "e9f6f15be29ceb5c45718006b46dbd19b89981617d0768b2ef942b5a70af2540"
diff --git a/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb b/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb
deleted file mode 100644
index 161b2bb2b2..0000000000
--- a/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.6.1.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin displaying instant disk/partition performance"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d3e627798d6a60bece47aa8b3532e1f1"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "63d5f03934c2dbddb3ad7bf7f535cc23"
-SRC_URI[sha256sum] = "212ddc742be3eecb6ad5554e1b1df03d5685cb71f48a558d5f895de37c57e4fa"
diff --git a/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.7.0.bb b/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.7.0.bb
new file mode 100644
index 0000000000..25a57f3233
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/diskperf/xfce4-diskperf-plugin_2.7.0.bb
@@ -0,0 +1,9 @@
+SUMMARY = "Panel plugin displaying instant disk/partition performance"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-diskperf-plugin"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING;md5=d3e627798d6a60bece47aa8b3532e1f1"
+
+inherit xfce-panel-plugin
+
+SRC_URI = "http://archive.xfce.org/src/panel-plugins/${BPN}/${@'${PV}'[0:3]}/${BPN}-${PV}.tar.bz2"
+SRC_URI[sha256sum] = "5909a65341a6af4d7ff3c7bb87aeac91c763f69b43ae9dc4a10668ac226fecc9"
diff --git a/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb b/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb
deleted file mode 100644
index cab3ea754c..0000000000
--- a/meta-xfce/recipes-panel-plugins/embed/xfce4-embed-plugin_1.0.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "A panel plugin that embeds arbitrary windows (or GtkPlug widgets) into the panel."
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-embed-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-# DEPENDS += "xfconf xorgproto libxtst"
-
-SRC_URI[md5sum] = "c5b86cbc1c54ee7c1d2e95a4502fed8e"
-SRC_URI[sha256sum] = "35d4c6c56dd6468c0e5afe66f657c1526f2d830a577105a51da43657651832e3"
diff --git a/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.1.bb b/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.1.bb
deleted file mode 100644
index 8b24e98b04..0000000000
--- a/meta-xfce/recipes-panel-plugins/equake/xfce4-equake-plugin_1.3.8.1.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION = "Equake XFCE is a panel plugin for the XFCE panel which monitors earthquakes and displays an update each time a new earthquake occurs."
-HOMEPAGE = "http://freecode.com/projects/equake-xfce"
-SECTION = "x11/application"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "curl"
-
-SRC_URI[md5sum] = "07d42b8a3d440d6f1861048a6cc3a15a"
-SRC_URI[sha256sum] = "eff9cfd604d1bd998c5208176fbe2c6da705c250dce572f5e30b2c77f4ec741c"
-
-FILES_${PN} += "${libdir}/xfce4/panel-plugins/xfce4-equake-plugin"
diff --git a/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb b/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb
deleted file mode 100644
index 4e4c41096c..0000000000
--- a/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.4.5.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-eyes-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "b2881924fdcc1230d9fa82c10f1a6afe"
-SRC_URI[sha256sum] = "648f7a1738d852af9482d11330b8ab33901f05256984de73d8cea4d7d7311937"
-
-FILES_${PN} += "${datadir}/xfce4/eyes"
diff --git a/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.6.0.bb b/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.6.0.bb
new file mode 100644
index 0000000000..0c796534ab
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/eyes/xfce4-eyes-plugin_4.6.0.bb
@@ -0,0 +1,10 @@
+SUMMARY = "Panel plugin with graphical representation of the cpu frequency"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-eyes-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "ad0ff05d88ba393b7c8922f8233edd33fc0a4e8b000b61de1f8f3a10c5ae5324"
+
+FILES:${PN} += "${datadir}/xfce4/eyes"
diff --git a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb
deleted file mode 100644
index 8b924ac759..0000000000
--- a/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.0.bb
+++ /dev/null
@@ -1,9 +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 = "http://goodies.xfce.org/projects/panel-plugins/xfce4-fsguard-plugin?&#recet_releases"
-LICENSE = "GPLv3"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "c9fcc1ff37f38e6ed518eca3b9887aa8"
-SRC_URI[sha256sum] = "6b038322b49d29625219e6a54497085b8f834b9c1fd15282ce286a6529d7c445"
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
new file mode 100644
index 0000000000..5585a4f0aa
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/fsguard/xfce4-fsguard-plugin_1.1.2.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] = "67d8e6a219a7117c59693adbc59c39a6eba31e3f18a5499189ef4ef28b554105"
diff --git a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb
deleted file mode 100644
index 0624fe96db..0000000000
--- a/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.0.0.bb
+++ /dev/null
@@ -1,9 +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 = "LGPLv2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=68ad62c64cc6c620126241fd429e68fe"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "f28cfbf9c82e758a236c1f5fcbcb8a35"
-SRC_URI[sha256sum] = "a7db4f786166643076323dcde99ad12e92383cc29b4b806862d5483ec468c3e3"
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
new file mode 100644
index 0000000000..d792bc047b
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/genmon/xfce4-genmon-plugin_4.1.1.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=68ad62c64cc6c620126241fd429e68fe"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "b2119fd0ff19fa293b97ec97b0de8e241799e08b86218515167c568bd9b50135"
diff --git a/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb b/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb
deleted file mode 100644
index f86c92ed21..0000000000
--- a/meta-xfce/recipes-panel-plugins/hotcorner/xfce4-hotcorner-plugin_0.0.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Plugin providing hotcorners"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://README.md;beginline=48;endline=53;md5=2c694b8e0f73274b13465b509e4f5427"
-
-inherit xfce-panel-plugin cmake
-
-DEPENDS += "libwnck3"
-
-SRC_URI = "https://github.com/brianhsu/${BPN}/releases/download/${PV}/${BPN}-${PV}.tar.gz"
-SRC_URI[md5sum] = "ac31b45cda1867cb6bd69bb285638263"
-SRC_URI[sha256sum] = "942684c92f96a158e1417e597947f822769ac56aa1993a8c9f166ee633ef2b8d"
diff --git a/meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb b/meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb
deleted file mode 100644
index caf55084f2..0000000000
--- a/meta-xfce/recipes-panel-plugins/kbdleds/xfce4-kbdleds-plugin_0.0.6.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "XFCE panel plugin displaying status of keyboard LEDs"
-DESCRIPTION = "This plugin shows the state of your keyboard LEDs: Caps, Scroll and Num Lock in Xfce panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-kbdleds-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = " \
- file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
- file://COPYING.LIB;md5=252890d9eee26aab7b432e8b8a616475 \
-"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "db6ad8e3502f3373f087ba2034141552"
-SRC_URI[sha256sum] = "6d280ad7207bcb9cc87c279dc3ab9084fd93325e87f67858e8917729b50201cd"
-
-FILES_${PN} += "${libdir}/xfce4/panel-plugins/xfce4-kbdleds-plugin"
diff --git a/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb
deleted file mode 100644
index c8224148ba..0000000000
--- a/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.2.0.bb
+++ /dev/null
@@ -1,14 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "gnutls libgcrypt"
-
-SRC_URI[md5sum] = "7263114ec0f2987a3aff15afeeb45577"
-SRC_URI[sha256sum] = "624acc8229a8593c0dfeb28f883f4958119a715cc81cecdbaf29efc8ab1edcad"
-
-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.0.bb b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.0.bb
new file mode 100644
index 0000000000..a5c98efc1c
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/mailwatch/xfce4-mailwatch-plugin_1.3.0.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=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/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 e2165c2fa5..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,43 +9,44 @@ 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
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
- configure.ac | 1 +
+ configure.ac | 2 +
panel-plugin/devices.c | 22 +++++++++++++++++++---
- 2 files changed, 20 insertions(+), 3 deletions(-)
+ 2 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/configure.ac b/configure.ac
-index b131117..c633fef 100644
+index 375e64a..590b7ad 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -69,6 +69,7 @@ AC_CHECK_HEADERS([sys/socket.h])
- AC_CHECK_HEADERS([sys/time.h])
- AC_CHECK_HEADERS([unistd.h])
- AC_CHECK_HEADERS([sys/sockio.h])
+@@ -65,6 +65,9 @@ dnl param.h is part of libc6 on Linux, but important for old-style Unix and espe
+ AC_CHECK_HEADERS([sys/param.h])
+ AC_CHECK_HEADERS([sys/mount.h])
+
++dnl make musl happy
+AC_CHECK_HEADERS([fstab.h])
- AC_HEADER_SYS_WAIT
- AC_PROG_GCC_TRADITIONAL
- AC_TYPE_SIZE_T
++
+ dnl Add -traditional to output variable CC if using the GNU C compiler and ioctl does not work properly without -traditional. That usually happens when the fixed header files have not been installed on an old system. Leave here commented out to comment in if some older *NIX systems might require it as was recently written on the ML.
+ dnl AC_PROG_GCC_TRADITIONAL
+
diff --git a/panel-plugin/devices.c b/panel-plugin/devices.c
index 797b079..d29df56 100644
--- a/panel-plugin/devices.c
+++ b/panel-plugin/devices.c
-@@ -24,8 +24,10 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- #ifdef HAVE_CONFIG_H
+@@ -25,7 +25,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#include <config.h>
#endif
--
+
+#if HAVE_FSTAB_H
#include <fstab.h>
+#endif
-+
#include <glib.h>
#include <stdio.h>
- #include <string.h>
+ #include <stdlib.h>
@@ -468,11 +470,12 @@ disks_new (gboolean include_NFSs, gboolean *showed_fstab_dialog, gint length)
{
GPtrArray * pdisks; /* to be returned */
diff --git a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb
deleted file mode 100644
index 67009377e8..0000000000
--- a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.2.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "Mount/umount utility for the xfce panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-SRC_URI += "file://0001-check-for-fstab.h-during-configure.patch"
-SRC_URI[md5sum] = "7eba9696d82433a5577741214d34b588"
-SRC_URI[sha256sum] = "54578447abaf9da630a750d64acdc37d4fd20dda6460208d6d1ffaa9e43ee1a6"
diff --git a/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.5.bb b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.5.bb
new file mode 100644
index 0000000000..3a6baf21f9
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/mount/xfce4-mount-plugin_1.1.5.bb
@@ -0,0 +1,11 @@
+SUMMARY = "Mount/umount utility for the xfce panel"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-mount-plugin"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit xfce-panel-plugin
+
+SRC_URI += "file://0001-check-for-fstab.h-during-configure.patch"
+
+SRC_URI[sha256sum] = "584cd954929e542b3da0ff8d69e0325d8838dc39e7b32a509d1074ce3bb58ec2"
diff --git a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch
deleted file mode 100644
index e354181927..0000000000
--- a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin/0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 7fcc7352ec11644ac8be4e9ec1584a5be3333684 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 12 Jul 2017 18:18:30 -0700
-Subject: [PATCH] Do not include sys/sysctl.h its unused on linux port
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- panel-plugin/os.h | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/panel-plugin/os.h b/panel-plugin/os.h
-index 473c2a4..9a5c544 100644
---- a/panel-plugin/os.h
-+++ b/panel-plugin/os.h
-@@ -170,7 +170,6 @@
- #elif __linux__ /* L I N U X */
- # include <stdio.h>
- # include <sys/param.h>
--# include <sys/sysctl.h>
- # include <stdlib.h>
- # include <stdarg.h>
- # include <unistd.h>
---
-2.13.2
-
diff --git a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb
deleted file mode 100644
index 35c8861bcf..0000000000
--- a/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.3.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Panel plugin displaying current load of the network interfaces"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-netload-plugin"
-LICENSE = "GPLv2"
-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 \
- file://0001-Do-not-include-sys-sysctl.h-its-unused-on-linux-port.patch \
- "
-SRC_URI[md5sum] = "f25aa3242e3119b49f259a3e4a1af08b"
-SRC_URI[sha256sum] = "99762781099d1e0ab9aa6a7b30c2bd94d8f658dbe61c760410d5d42d0766391c"
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
new file mode 100644
index 0000000000..834f5cfaae
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/netload/xfce4-netload-plugin_1.4.0.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=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/notes/files/0001-main-status-icon.c-remove-deprecated-g_type_init.patch b/meta-xfce/recipes-panel-plugins/notes/files/0001-main-status-icon.c-remove-deprecated-g_type_init.patch
deleted file mode 100644
index e1ede27c42..0000000000
--- a/meta-xfce/recipes-panel-plugins/notes/files/0001-main-status-icon.c-remove-deprecated-g_type_init.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 0218e5ebf38f94d58b908fca451ba3789efa8899 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Fri, 20 Sep 2013 23:09:25 +0200
-Subject: [PATCH] main-status-icon.c remove deprecated g_type_init
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-this file was auto created by valac and xfce-vala when creating tarball. So
-
-Upstream-Status: Inappropriate [other]
-
-Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
----
- src/main-status-icon.c | 1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/src/main-status-icon.c b/src/main-status-icon.c
-index c6d73f8..f7db773 100644
---- a/src/main-status-icon.c
-+++ b/src/main-status-icon.c
-@@ -290,7 +290,6 @@ gint _vala_main (char** args, int args_length1) {
-
-
- int main (int argc, char ** argv) {
-- g_type_init ();
- return _vala_main (argv, argc);
- }
-
---
-1.8.3.1
-
diff --git a/meta-xfce/recipes-panel-plugins/notes/files/01_fix_format-string.patch b/meta-xfce/recipes-panel-plugins/notes/files/01_fix_format-string.patch
deleted file mode 100644
index 8066df0041..0000000000
--- a/meta-xfce/recipes-panel-plugins/notes/files/01_fix_format-string.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Fix formatting strings when compiling with Wformat options
-
-Imported from debian
-
---- a/lib/application.c
-+++ b/lib/application.c
-@@ -352,7 +352,7 @@ static void xnp_application_update_notes
- XfconfChannel* _tmp16_;
- const gchar* _tmp17_;
- _tmp9_ = _ ("Select notes path");
-- _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _tmp9_);
-+ _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _tmp9_);
- g_object_ref_sink (_tmp10_);
- error_dialog = _tmp10_;
- _tmp11_ = error_dialog;
-@@ -419,7 +419,7 @@ static void xnp_application_update_notes
- XfconfChannel* _tmp35_;
- const gchar* _tmp36_;
- _tmp27_ = _ ("Select notes path");
-- _tmp28_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _tmp27_);
-+ _tmp28_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, 0, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _tmp27_);
- g_object_ref_sink (_tmp28_);
- error_dialog = _tmp28_;
- _tmp29_ = error_dialog;
-@@ -2082,7 +2082,7 @@ static void xnp_application_delete_windo
- gint _tmp9_;
- _tmp3_ = window;
- _tmp4_ = _ ("Are you sure you want to delete this group?");
-- _tmp5_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _tmp3_, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp4_);
-+ _tmp5_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) _tmp3_, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", _tmp4_);
- g_object_ref_sink (_tmp5_);
- dialog = _tmp5_;
- _tmp6_ = dialog;
-@@ -2721,7 +2721,7 @@ void xnp_application_open_settings_dialo
- e = _inner_error_;
- _inner_error_ = NULL;
- _tmp0_ = _ ("Unable to open the settings dialog");
-- _tmp1_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, _tmp0_);
-+ _tmp1_ = (GtkMessageDialog*) gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "%s", _tmp0_);
- g_object_ref_sink (_tmp1_);
- error_dialog = _tmp1_;
- _tmp2_ = error_dialog;
---- a/lib/window.c
-+++ b/lib/window.c
-@@ -3542,7 +3542,7 @@ void xnp_window_delete_note (XnpWindow*
- GtkMessageDialog* _tmp13_;
- gint _tmp14_;
- _tmp9_ = _ ("Are you sure you want to delete this note?");
-- _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, _tmp9_);
-+ _tmp10_ = (GtkMessageDialog*) gtk_message_dialog_new ((GtkWindow*) self, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "%s", _tmp9_);
- g_object_ref_sink (_tmp10_);
- dialog = _tmp10_;
- _tmp11_ = dialog;
diff --git a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb
deleted file mode 100644
index fcf98c181b..0000000000
--- a/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.8.1.bb
+++ /dev/null
@@ -1,20 +0,0 @@
-SUMMARY = "Notes plugin for the Xfce Panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-notes-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "gtk+ libxfce4ui xfce4-panel xfconf libunique"
-
-SRC_URI += " \
- file://0001-main-status-icon.c-remove-deprecated-g_type_init.patch \
- file://01_fix_format-string.patch \
-"
-SRC_URI[md5sum] = "31cb9520b01512a94344770b4befdb3b"
-SRC_URI[sha256sum] = "07a4c3e71431c24f97d2e270452dd0fa51ff0bdb6219a13a20d0bfa8d9de54b2"
-
-FILES_${PN} += "${libdir}/xfce4/panel-plugins/*.so.*"
-
-# *.so are required for plugin detection
-INSANE_SKIP_${PN} = "dev-so"
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
new file mode 100644
index 0000000000..dc0fc2c60e
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/notes/xfce4-notes-plugin_1.9.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=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.7.0.bb b/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.7.0.bb
deleted file mode 100644
index 16be09dcad..0000000000
--- a/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.7.0.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-DESCRIPTION = "Panel plugin displaying menu with quick access to folders, documents, and removable media"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-places-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b6952d9a47fc2ad0f315510e1290455f"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "fcae9b38a8affcd82699a94991bba29b"
-SRC_URI[sha256sum] = "4175c614749abbb5bcf6f49c88125fb0dd36db69f4c374df23563907b16e2c3f"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[notify] = "--enable-notifications,--disable-notifications,libnotify"
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
new file mode 100644
index 0000000000..e8e133035d
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/places/xfce4-places-plugin_1.8.1.bb
@@ -0,0 +1,13 @@
+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/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb
deleted file mode 100644
index b423707648..0000000000
--- a/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Pulseaudio mixer for the xfce panel"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=f5eac6bb0d6ec0dc655e417781d4015f"
-
-inherit xfce-panel-plugin distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "pulseaudio x11"
-
-DEPENDS += "pulseaudio"
-
-SRC_URI[md5sum] = "7df7280c19c2c8b8c5bc4f4f2136d1dd"
-SRC_URI[sha256sum] = "6ca88314dbac3e24c0e1bfc593fad6edb66319766be62e8256c81b0314f049f0"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[libnotify] = "--enable-libnotify,--disable-libnotify,libnotify"
-
-RRECOMMENDS_${PN} = "pavucontrol"
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
new file mode 100644
index 0000000000..5168efe1fe
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/pulseaudio/xfce4-pulseaudio-plugin_0.4.3.bb
@@ -0,0 +1,17 @@
+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/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch
new file mode 100644
index 0000000000..c4624c6915
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin/0001-Do-not-check-for-sys-class-power_supply-we-are-cross.patch
@@ -0,0 +1,44 @@
+From 9b7e1beca872ca4a5fce8938c58379103787f79a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 23 Feb 2020 22:06:32 +0100
+Subject: [PATCH] Do not check for /sys/class/power_supply - we are cross
+ compiling
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Upstream-Status: Inappropriate [OE-specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ configure.ac | 12 +-----------
+ 1 file changed, 1 insertion(+), 11 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index c281af9..60ba0c0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -203,19 +203,9 @@ dnl Check for interface for /sys/class/power_supply to be used
+ AC_ARG_ENABLE([sysfsacpi], [AS_HELP_STRING([--enable-sysfsacpi], [Use /sys/class/power_supply to read your battery value @<:@default=auto@:>@])],
+ [],
+ [
+- enable_sysfsacpi=auto
++ enable_sysfsacpi=yes
+ ])
+
+-if test x"$enable_sysfsacpi" = x"auto"; then
+- AC_CHECK_FILE([/sys/class/power_supply],
+- [
+- enable_sysfsacpi=yes
+- ],
+- [
+- enable_sysfsacpi=no
+- ])
+-fi
+-
+ if test x"$enable_sysfsacpi" = x"yes"; then
+ AC_DEFINE([HAVE_SYSFS_ACPI], [1], [Define to 1 if /sys/class/power_supply is found])
+ enable_procacpi=yes
+--
+2.21.0
+
diff --git a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb b/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb
deleted file mode 100644
index 4d78bb2bf2..0000000000
--- a/meta-xfce/recipes-panel-plugins/sensors/xfce4-sensors-plugin_1.2.97.bb
+++ /dev/null
@@ -1,27 +0,0 @@
-SUMMARY = "Sensors plugin for the Xfce Panel"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-sensors-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b94789bed9aec03b9656a9cc5398c706"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "0c74c3112c5e6e07647c116cd43ff5a7"
-SRC_URI[sha256sum] = "7524ec4534de9ef7f676de2895a41bf70b73b94da5a27fd4a022b16eda56d0f4"
-
-EXTRA_OECONF = " \
- --disable-procacpi \
- --disable-sysfsacpi \
- --disable-xnvctrl \
-"
-
-do_configure_prepend() {
- sed -i 's:LIBSENSORS_CFLAGS=.*:LIBSENSORS_CFLAGS=-I${STAGING_INCDIR}:g' ${S}/configure.ac
-}
-
-PACKAGECONFIG ??= "libsensors"
-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/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb b/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb
deleted file mode 100644
index 6289ad31aa..0000000000
--- a/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin allowing to send requests directly to browser"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "6f242fe584ee2fdd2b1d3d69ef3d5914"
-SRC_URI[sha256sum] = "139539c58d54d878de86ef8a882c793cd909981e6b888f7f9d5e230a8fe310a4"
diff --git a/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.2.bb b/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.2.bb
new file mode 100644
index 0000000000..fdec598190
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/smartbookmark/xfce4-smartbookmark-plugin_0.5.2.bb
@@ -0,0 +1,8 @@
+SUMMARY = "Panel plugin allowing to send requests directly to browser"
+HOMEPAGE = "https://goodies.xfce.org/projects/panel-plugins/xfce4-smartbookmark-plugin"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "2a279e2f5a54518684e62ad1f3cd8ef950826505b39725f1b5d8f0c43031cdd3"
diff --git a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.1.bb b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.1.bb
deleted file mode 100644
index eeb4518634..0000000000
--- a/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.2.1.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-DESCRIPTION = "Panel plugin displaying current CPU load, the memory in use, the swap space and the system uptime"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-systemload-plugin"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9acb172a93ff6c43cce2aff790a8aef8"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "upower"
-
-SRC_URI[md5sum] = "550277af9886c47005117110f6e7ec0d"
-SRC_URI[sha256sum] = "2bf7d0802534a1eb2e9f251af2bb97abc3f58608c1f01511d302c06111d34812"
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
new file mode 100644
index 0000000000..151ce3849c
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/systemload/xfce4-systemload-plugin_1.3.1.bb
@@ -0,0 +1,12 @@
+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/time-out/xfce4-time-out-plugin_1.0.2.bb b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb
deleted file mode 100644
index facbb0d86d..0000000000
--- a/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.0.2.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "This plugin makes it possible to take periodical breaks"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-time-out-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "d7d743794a766ba1b00647828a099053"
-SRC_URI[sha256sum] = "c69fb7218c685e516454810291c5245c49a80d774a6bded59c645a1af427c4e5"
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
new file mode 100644
index 0000000000..5b7f62471d
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/time-out/xfce4-time-out-plugin_1.1.2.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] = "3dd8eba694ff3ba5c25bd7f5cd70dc22175fb2c0a759213f05ab8f0e629d82d4"
diff --git a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.0.bb b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.0.bb
deleted file mode 100644
index 2ddc6f67cd..0000000000
--- a/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.0.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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=ae39271267fd63eb7619432ff24e7ff1"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "32e6a14e80bf9a93db2f2b3bfd7de920"
-SRC_URI[sha256sum] = "2e4e5343e39926230cc981d5fe56cd58a2f3817d2e9b6089b5673a2e39bf7e9b"
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
new file mode 100644
index 0000000000..1231e084cd
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/timer/xfce4-timer-plugin_1.7.1.bb
@@ -0,0 +1,10 @@
+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/verve/xfce4-verve-plugin_1.1.0.bb b/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb
deleted file mode 100644
index 57951608f3..0000000000
--- a/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_1.1.0.bb
+++ /dev/null
@@ -1,11 +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 = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "dbus-glib-native"
-
-SRC_URI[md5sum] = "ddd0190ae56f6117dbcf9ff2bf5a8cbf"
-SRC_URI[sha256sum] = "a3196f818c7ad57d19cd6581e168fd2b9f96de070246aea70c35ce2e5f9d9c84"
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
new file mode 100644
index 0000000000..eefe3322b3
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/verve/xfce4-verve-plugin_2.0.1.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=94d55d512a9ba36caa9b7df079bae19f"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "ebda5e5eb62d6e42afdc6f121d2f1cbd4d9d3c2b16a5e3ed8192b1b224b8f825"
+DEPENDS += "libpcre"
diff --git a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb b/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb
deleted file mode 100644
index 0c94f3c4ba..0000000000
--- a/meta-xfce/recipes-panel-plugins/wavelan/xfce4-wavelan-plugin_0.6.0.bb
+++ /dev/null
@@ -1,9 +0,0 @@
-SUMMARY = "Panel plugin displaying stats from a wireless lan interface"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-wavelan-plugin"
-LICENSE = "BSD"
-LIC_FILES_CHKSUM = "file://COPYING;md5=e1e5872df9c5cf1a23f16493d9104920"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "b163b22f8543e5e5767a68af35c9028e"
-SRC_URI[sha256sum] = "4d5bd6654cfd077f3432b08d296f7bd052e765e51b77c629886a9542f4e5ecdc"
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
new file mode 100644
index 0000000000..ede98e9926
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.11.0.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] = "e3242ea951d51bc0fded1d02a4f1f662bec16a1fb10c855f71bda6541a1153fc"
+
+FILES:${PN} += "${datadir}/xfce4/weather"
diff --git a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb b/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb
deleted file mode 100644
index 649eaaafb3..0000000000
--- a/meta-xfce/recipes-panel-plugins/weather/xfce4-weather-plugin_0.8.10.bb
+++ /dev/null
@@ -1,13 +0,0 @@
-SUMMARY = "Panel plugin to display current temperature and weather condition"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-weather-plugin"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin
-
-DEPENDS += "libsoup-2.4 dbus-glib upower"
-
-SRC_URI[md5sum] = "bba7f750b97c8fc3656715268edad792"
-SRC_URI[sha256sum] = "ee6d43c444904631c240470e15e96215c2ce451158bfdbf234bce892bf60eab8"
-
-FILES_${PN} += "${datadir}/xfce4/weather"
diff --git a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.2.0.bb b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.2.0.bb
deleted file mode 100644
index 34f622ba69..0000000000
--- a/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.2.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "An alternate menu for the Xfce desktop environment"
-HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-
-inherit xfce-panel-plugin cmake
-
-SRC_URI[md5sum] = "2eda14e43e37222035be619327c604cb"
-SRC_URI[sha256sum] = "8f68492a38cb2d148867162adff947dd37fed162b4ef4f31910660229ef00ef1"
-
-RRECOMMENDS_${PN} += "menulibre"
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
new file mode 100644
index 0000000000..3dfc76f246
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/whiskermenu/xfce4-whiskermenu-plugin_2.7.1.bb
@@ -0,0 +1,8 @@
+SUMMARY = "An alternate menu for the Xfce desktop environment"
+HOMEPAGE = "http://gottcode.org/xfce4-whiskermenu-plugin/"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
+
+inherit xfce-panel-plugin cmake
+
+SRC_URI[sha256sum] = "04ae0c1764a0d5ec70f18a760d998a2109bb6724f048554d7d6999d9072ca63e"
diff --git a/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.1.bb b/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.1.bb
deleted file mode 100644
index 8ee374035a..0000000000
--- a/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.1.bb
+++ /dev/null
@@ -1,16 +0,0 @@
-SUMMARY = "XKB layout switching panel plug-in for the Xfce desktop environment"
-HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin"
-SECTION = "x11/application"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=496f09f084b0f7e6f02f769a84490c6b"
-
-inherit xfce-panel-plugin
-
-SRC_URI[md5sum] = "72530bf59d7cd902326469e5a7a9892b"
-SRC_URI[sha256sum] = "c19ecf126201deb6148741c521124771ad396adc874471512ab5ffe1946567a1"
-
-DEPENDS += "libxklavier libwnck3 librsvg garcon"
-
-FILES_${PN} += "${datadir}/xfce4/xkb"
-
-RDEPENDS_${PN} = "xfce4-settings"
diff --git a/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.2.bb b/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.2.bb
new file mode 100644
index 0000000000..3d935a3d71
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/xkb/xfce4-xkb-plugin_0.8.2.bb
@@ -0,0 +1,15 @@
+SUMMARY = "XKB layout switching panel plug-in for the Xfce desktop environment"
+HOMEPAGE = "http://goodies.xfce.org/projects/panel-plugins/xfce4-xkb-plugin"
+SECTION = "x11/application"
+LICENSE = "GPL-2.0-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=496f09f084b0f7e6f02f769a84490c6b"
+
+inherit xfce-panel-plugin
+
+SRC_URI[sha256sum] = "bb4be13f6f73cd86a6d939e1a6b125841cf266415bc4fd134a511e4f0cf97967"
+
+DEPENDS += "libxklavier libwnck3 librsvg garcon"
+
+FILES:${PN} += "${datadir}/xfce4/xkb"
+
+RDEPENDS:${PN} = "xfce4-settings"
diff --git a/meta-xfce/recipes-support/vim/vim_%.bbappend b/meta-xfce/recipes-support/vim/vim_%.bbappend
deleted file mode 100644
index 7b449630e9..0000000000
--- a/meta-xfce/recipes-support/vim/vim_%.bbappend
+++ /dev/null
@@ -1 +0,0 @@
-require ${@bb.utils.contains('DISTRO_FEATURES', 'x11', '${BPN}_xfce.inc', '', d)}
diff --git a/meta-xfce/recipes-support/vim/vim_xfce.inc b/meta-xfce/recipes-support/vim/vim_xfce.inc
deleted file mode 100644
index 25403e6cb5..0000000000
--- a/meta-xfce/recipes-support/vim/vim_xfce.inc
+++ /dev/null
@@ -1,6 +0,0 @@
-do_install_append() {
- # The mouse being autoenabled is just annoying in xfce4-terminal (mouse
- # drag make vim go into visual mode and there is no right click menu),
- # delete the block.
- sed -i '/the mouse works just fine/,+4d' ${D}/${datadir}/${BPN}/vimrc
-}
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 144e26069e..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 = "GPLv2"
-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.1.bb b/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.1.bb
new file mode 100644
index 0000000000..044a39a3c0
--- /dev/null
+++ b/meta-xfce/recipes-thunar-plugins/archive/thunar-archive-plugin_0.5.1.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] = "a81b3ab1d3cd77c7b3d6db15b37a3c12d65b06e373edc3c21083f02d605d8bed"
+
+# 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 a61e7648ed..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 = "GPLv2"
-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/files/0001-build-Bump-GLib-minimum-required-to-2.26.patch b/meta-xfce/recipes-thunar-plugins/shares/files/0001-build-Bump-GLib-minimum-required-to-2.26.patch
new file mode 100644
index 0000000000..1cd24572f8
--- /dev/null
+++ b/meta-xfce/recipes-thunar-plugins/shares/files/0001-build-Bump-GLib-minimum-required-to-2.26.patch
@@ -0,0 +1,34 @@
+Upstream-Status: Backport [https://gitlab.xfce.org/thunar-plugins/thunar-shares-plugin/-/commit/e4bce21a]
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
+From e4bce21a1bd744ccfde84de4669ac30aa1d72135 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ga=C3=ABl=20Bonithon?= <gael@xfce.org>
+Date: Fri, 2 Dec 2022 20:18:46 +0100
+Subject: [PATCH] build: Bump GLib minimum required to 2.26
+
+This is the minimum required to build since xfce4-dev-tools >= 4.17.1
+set GLIB_VERSION_MAX_ALLOWED to the GLib version found in
+configure.ac.in.
+
+MR: !3
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index a458785..bc6d24c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -61,7 +61,7 @@ dnl -------------------------------------------------------
+ dnl Packages checks
+ dnl -------------------------------------------------------
+ XDT_CHECK_PACKAGE([GTK], [gtk+-3.0], [3.22.0])
+-XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.18.0])
++XDT_CHECK_PACKAGE([GLIB], [glib-2.0], [2.26.0])
+ XDT_CHECK_PACKAGE([THUNARX], [thunarx-3], [1.0.1])
+
+ dnl -------------------------------------------------------
+--
+2.34.1
+
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
new file mode 100644
index 0000000000..d981fe14aa
--- /dev/null
+++ b/meta-xfce/recipes-thunar-plugins/shares/thunar-shares-plugin_0.3.1.bb
@@ -0,0 +1,13 @@
+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 += "file://0001-build-Bump-GLib-minimum-required-to-2.26.patch"
+SRC_URI[sha256sum] = "dc1d8c7caa727e76d033d4653dc0742613f57a1711d0050900659c90a84452a0"
+
+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 0764775818..0000000000
--- a/meta-xfce/recipes-xfce/exo/exo/reduce-build-to-exo-csource-only.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From e710d8d4a3e3480416826c70d56ea3d2598a77e4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Thu, 28 Mar 2013 23:41:03 +0100
-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 | 22 ----------------------
- 2 files changed, 1 insertion(+), 31 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 62ad18d..bdc5fae 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 3f92d1b..0d4cc38 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -116,15 +116,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 ***
-@@ -171,19 +162,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([GTK], [gtk+-2.0], [2.24.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([LIBXFCE4UI], [libxfce4ui-1], [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 *** Check for X11 ***
--dnl *********************
--XDT_CHECK_LIBX11_REQUIRE()
-
- dnl *************************
- dnl *** Check for gtk-doc ***
---
-2.14.3
-
diff --git a/meta-xfce/recipes-xfce/exo/exo_0.12.0.bb b/meta-xfce/recipes-xfce/exo/exo_0.12.0.bb
deleted file mode 100644
index 85c95faf2d..0000000000
--- a/meta-xfce/recipes-xfce/exo/exo_0.12.0.bb
+++ /dev/null
@@ -1,36 +0,0 @@
-DESCRIPTION="Application library for the Xfce desktop environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gtk+ libxfce4util libxfce4ui virtual/libx11 liburi-perl-native cairo"
-DEPENDS_class-native = "glib-2.0-native xfce4-dev-tools-native intltool-native"
-
-inherit xfce pythonnative perlnative gtk-doc distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-REQUIRED_DISTRO_FEATURES_class-native = ""
-
-# SRC_URI must follow inherited one
-SRC_URI += " \
- file://exo-no-tests-0.8.patch \
- file://configure.patch \
-"
-
-SRC_URI_append_class-native = " \
- file://reduce-build-to-exo-csource-only.patch \
-"
-
-SRC_URI[md5sum] = "724afcca224f5fb22b510926d2740e52"
-SRC_URI[sha256sum] = "64b88271a37d0ec7dca062c7bc61ca323116f7855092ac39698c421a2f30a18f"
-
-PACKAGES =+ "exo-csource"
-
-# 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-1 \
-"
-
-FILES_exo-csource += "${bindir}/exo-csource"
-
-BBCLASSEXTEND = "native"
diff --git a/meta-xfce/recipes-xfce/exo/exo_4.18.0.bb b/meta-xfce/recipes-xfce/exo/exo_4.18.0.bb
new file mode 100644
index 0000000000..b339b181f1
--- /dev/null
+++ b/meta-xfce/recipes-xfce/exo/exo_4.18.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] = "4f2c61d045a888cdb64297fd0ae20cc23da9b97ffb82562ed12806ed21da7d55"
+
+# 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_0.6.1.bb b/meta-xfce/recipes-xfce/garcon/garcon_0.6.1.bb
deleted file mode 100644
index 06e2369774..0000000000
--- a/meta-xfce/recipes-xfce/garcon/garcon_0.6.1.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-DESCRIPTION="Xfce Menu Library"
-SECTION = "x11/libs"
-LICENSE = "LGPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=04a01abcbdabffae1ca26335a293276b"
-DEPENDS = "xfce4-dev-tools-native libxfce4util libxfce4ui intltool-native"
-
-inherit xfce gtk-doc distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += "file://0001-xfce-applications.menu-don-t-bloat-settings-menu-by-.patch"
-SRC_URI[md5sum] = "174690ad19243f7ef9529cb0c24b9080"
-SRC_URI[sha256sum] = "41c31ba0498c2cc39de4a8e0c2367510adbf4bc2104c17feee358e51e6acf603"
-
-EXTRA_OECONF = "--disable-gtk-doc"
-
-FILES_${PN} += "${datadir}/desktop-directories"
diff --git a/meta-xfce/recipes-xfce/garcon/garcon_4.18.1.bb b/meta-xfce/recipes-xfce/garcon/garcon_4.18.1.bb
new file mode 100644
index 0000000000..c139bfd4c2
--- /dev/null
+++ b/meta-xfce/recipes-xfce/garcon/garcon_4.18.1.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] = "fe7a932a6dac95eb1438f3fbfd53096756ff2e1cb179d10d0fb796cefbb4c20b"
+
+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/gtk-xfce-engine/gtk-xfce-engine/glib-2.54-ftbfs.patch b/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine/glib-2.54-ftbfs.patch
deleted file mode 100644
index fb8910204a..0000000000
--- a/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine/glib-2.54-ftbfs.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Description: Fix FTBFS with glib 2.54
- glib-mkenums now expects input files to be UTF-8,
- fix the encoding of libgnomeui/gnome-scores.h
-Author: Adrian Bunk <bunk@debian.org>
-
-ported from: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=870738
-
-Upstream-Status: Pending
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
-Index: gtk-xfce-engine-3.2.0/gtk-3.0/xfce_style_types.h
-===================================================================
---- gtk-xfce-engine-3.2.0.orig/gtk-3.0/xfce_style_types.h
-+++ gtk-xfce-engine-3.2.0/gtk-3.0/xfce_style_types.h
-@@ -19,7 +19,7 @@
- *
- * Portions based Thinice port by
- * Tim Gerla <timg@rrv.net>,
-- * Tomas gren <stric@ing.umu.se,
-+ * Tomas Ögren <stric@ing.umu.se>,
- * Richard Hult <rhult@codefactory.se>
- * Portions based on Smooth theme by
- * Andrew Johnson <ajgenius@ajgenius.us>
diff --git a/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb b/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
deleted file mode 100644
index 805e893f79..0000000000
--- a/meta-xfce/recipes-xfce/gtk-xfce-engine/gtk-xfce-engine_3.2.0.bb
+++ /dev/null
@@ -1,30 +0,0 @@
-SUMMARY = "XFCE theme for GTK"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "gtk+ xfce4-dev-tools-native"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += "file://glib-2.54-ftbfs.patch"
-
-SRC_URI[md5sum] = "363d6c16a48a00e26d45c45c2e1fd739"
-SRC_URI[sha256sum] = "875c9c3bda96faf050a2224649cc42129ffb662c4de33add8c0fd1fb860b47ed"
-
-PACKAGECONFIG ??= "gtk3"
-PACKAGECONFIG[gtk3] = "--enable-gtk3,--disable-gtk3, gtk+3, gtk3-xfce-engine"
-
-PACKAGES += "${PN}-themes gtk3-xfce-engine"
-FILES_${PN} += "${libdir}/gtk-2.0/*/engines/*.so"
-FILES_gtk3-xfce-engine += "${libdir}/gtk-3.0/*/theming-engines/*.so"
-FILES_${PN}-themes += "${datadir}/themes"
-
-FILES_${PN}-dev += " \
- ${libdir}/gtk-2.0/*/engines/*.la \
- ${libdir}/gtk-3.0/*/theming-engines/*.la \
-"
-
-RDEPENDS_${PN} += "${PN}-themes"
-RDEPENDS_gtk3-xfce-engine += "${PN}-themes"
diff --git a/meta-xfce/recipes-xfce/libxfce4ui/files/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 6d107b1b61..53ba873746 100644
--- a/meta-xfce/recipes-xfce/libxfce4ui/files/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="&lt;Primary&gt;F12" type="string" value="workspace_12_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.13.4.bb b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.4.bb
deleted file mode 100644
index 8a385baeb3..0000000000
--- a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.13.4.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "Xfce4 Widget library and X Window System interaction"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "perl-native glib-2.0 gtk+ gtk+3 intltool-native libxfce4util xfconf xfce4-dev-tools virtual/libx11 libsm libice"
-
-inherit xfce autotools gettext gtk-doc gobject-introspection distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI += " \
- file://0001-libxfce4kbd-private-xfce4-keyboard-shortcuts.xml-fix.patch \
-"
-SRC_URI[md5sum] = "b407cdab73ebd5c33c90db6bdb3ec5ff"
-SRC_URI[sha256sum] = "d63fcdb8e5acb6f0d26075ea17d320dbfbec2058567cd67cb99824c7402a1f79"
-
-EXTRA_OECONF += "--with-vendor-info=${DISTRO}"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[gladeui] = "--enable-gladeui,--disable-gladeui,glade3"
-PACKAGECONFIG[startup-notification] = "--enable-startup-notification,--disable-startup-notification,startup-notification"
-
-PACKAGES =+ "${PN}-gtk2 ${PN}-gtk3"
-FILES_${PN}-gtk2 += "${libdir}/libxfce4ui-1.so.* ${libdir}/libxfce4kbd-private-2.so.*"
-FILES_${PN}-gtk3 += "${libdir}/libxfce4ui-2.so.* ${libdir}/libxfce4kbd-private-3.so.*"
-
-PACKAGES += "${PN}-glade"
-FILES_${PN}-glade = "${libdir}/glade3 \
- ${datadir}/glade3"
-
-RDEPENDS_${PN}-gtk2 = "${PN}"
-RDEPENDS_${PN}-gtk3 = "${PN}"
diff --git a/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.3.bb b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.3.bb
new file mode 100644
index 0000000000..417858c98e
--- /dev/null
+++ b/meta-xfce/recipes-xfce/libxfce4ui/libxfce4ui_4.18.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] = "afa3a46eeed3ab612d2f7e1308edaf5819f6c33ccc16c13080efabd58f010abd"
+
+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.13.1.bb b/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.1.bb
deleted file mode 100644
index d18e838235..0000000000
--- a/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.13.1.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "Basic utility library for Xfce4"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=252890d9eee26aab7b432e8b8a616475"
-DEPENDS = "intltool-native xfce4-dev-tools-native glib-2.0"
-
-inherit xfce gtk-doc gobject-introspection
-
-SRC_URI[md5sum] = "d1d81519accfd09b5bbdc6ec0f531366"
-SRC_URI[sha256sum] = "278013dca14bfd50c9efd3898a28e3f3c5053b506de257267947fbb852d2ed2c"
diff --git a/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.1.bb b/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.1.bb
new file mode 100644
index 0000000000..683f6c3373
--- /dev/null
+++ b/meta-xfce/recipes-xfce/libxfce4util/libxfce4util_4.18.1.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] = "8a52063a5adc66252238cad9ee6997909b59983ed21c77eb83c5e67829d1b01f"
diff --git a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
index 140de416b7..c56af6f382 100644
--- a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
+++ b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-base.bb
@@ -1,21 +1,21 @@
SUMMARY = "All packages required for a base installation of XFCE"
SECTION = "x11/wm"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r5"
-inherit packagegroup distro_features_check
+# librsvg-gtk gets debian renamed to librsvg-2-gtk
+PACKAGE_ARCH = "${TUNE_PKGARCH}"
+
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
xfwm4 \
xfce4-session \
xfconf \
xfdesktop \
xfce4-panel \
\
- gtk-xfce-engine \
librsvg-gtk \
\
xfce4-panel-plugin-actions \
diff --git a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
index 2e0f7f5b45..711059c8c4 100644
--- a/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
+++ b/meta-xfce/recipes-xfce/packagegroups/packagegroup-xfce-extended.bb
@@ -1,21 +1,19 @@
SUMMARY = "All packages for full XFCE installation"
SECTION = "x11/wm"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
PR = "r10"
-inherit packagegroup distro_features_check
+inherit packagegroup features_check
REQUIRED_DISTRO_FEATURES = "x11"
# mandatory
-RDEPENDS_${PN} = " \
+RDEPENDS:${PN} = " \
packagegroup-xfce-base \
"
# nice to have
-RRECOMMENDS_${PN} = " \
+RRECOMMENDS:${PN} = " \
xfwm4-theme-daloa \
xfwm4-theme-kokodi \
xfwm4-theme-moheli \
@@ -36,36 +34,35 @@ RRECOMMENDS_${PN} = " \
xfce4-systemload-plugin \
xfce4-time-out-plugin \
xfce4-timer-plugin \
- xfce4-embed-plugin \
xfce4-weather-plugin \
xfce4-fsguard-plugin \
xfce4-battery-plugin \
xfce4-mount-plugin \
xfce4-powermanager-plugin \
xfce4-closebutton-plugin \
- xfce4-equake-plugin \
xfce4-notes-plugin \
xfce4-whiskermenu-plugin \
xfce4-mailwatch-plugin \
- xfce4-kbdleds-plugin \
xfce4-smartbookmark-plugin \
- xfce4-hotcorner-plugin \
${@bb.utils.contains('DISTRO_FEATURES', 'pulseaudio', 'xfce4-pulseaudio-plugin', '', d)} \
xfce4-sensors-plugin \
xfce4-calculator-plugin \
xfce4-verve-plugin \
\
- xfce-polkit \
+ ${@bb.utils.contains('DISTRO_FEATURES','polkit','xfce-polkit','',d)} \
+ ${@bb.utils.contains("DISTRO_FEATURES", "bluetooth gobject-introspection", "blueman", "", d)} \
\
thunar-media-tags-plugin \
thunar-archive-plugin \
\
xfce4-appfinder \
+ xfce4-screensaver \
xfce4-screenshooter \
xfce4-power-manager \
- xfce4-mixer \
ristretto \
xfce4-taskmanager \
gigolo \
mousepad \
+ ${@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_0.9.0.bb b/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.0.bb
deleted file mode 100644
index 5a37b69bdd..0000000000
--- a/meta-xfce/recipes-xfce/thunar-volman/thunar-volman_0.9.0.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Automatic management of removable drives and media for thunar"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo glib-2.0 libxfce4ui libxfce4util xfconf libnotify libgudev"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "3b403a4f846927391ea4bee765a055df"
-SRC_URI[sha256sum] = "e4bffcfee15530e277fa80865eb1de31e63c7effaf8835c9fa7c71e5a0076b2e"
-
-PACKAGECONFIG ??= ""
-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_1.8.0.bb b/meta-xfce/recipes-xfce/thunar/thunar_1.8.0.bb
deleted file mode 100644
index c2f6f5954b..0000000000
--- a/meta-xfce/recipes-xfce/thunar/thunar_1.8.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "File manager for the Xfce Desktop Environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo glib-2.0 gtk+3 gdk-pixbuf libxfce4util libxfce4ui xfconf libsm dbus-glib startup-notification libnotify xfce4-panel udev"
-
-inherit xfce gobject-introspection distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:3]}/Thunar-${PV}.tar.bz2"
-SRC_URI[md5sum] = "245ca8e9111c44667032023199ca7778"
-SRC_URI[sha256sum] = "acf151bceedb20aed45a6da61d7bb85a4a03964090c80454e72e61e7fc9e49c7"
-
-S = "${WORKDIR}/Thunar-${PV}/"
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[pcre] = "--enable-pcre,--disable-pcre,libpcre"
-
-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.18.4.bb b/meta-xfce/recipes-xfce/thunar/thunar_4.18.4.bb
new file mode 100644
index 0000000000..921dba0631
--- /dev/null
+++ b/meta-xfce/recipes-xfce/thunar/thunar_4.18.4.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
+
+# 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] = "c4463ce2fb1d628adce70a828e8b4de5fa0802236894d2c40f749471619bedcc"
+
+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/0001-configure-use-pkg-config-for-freetype2.patch b/meta-xfce/recipes-xfce/tumbler/tumbler/0001-configure-use-pkg-config-for-freetype2.patch
deleted file mode 100644
index 5ecc35e37a..0000000000
--- a/meta-xfce/recipes-xfce/tumbler/tumbler/0001-configure-use-pkg-config-for-freetype2.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From f5c283b1251ad005da7342e654cd2ec5ae9e5fb2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
-Date: Fri, 26 Sep 2014 13:44:36 +0200
-Subject: [PATCH] configure: use pkg-config for freetype2
-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@googlemail.com>
----
- acinclude.m4 | 16 +---------------
- 1 file changed, 1 insertion(+), 15 deletions(-)
-
-diff --git a/acinclude.m4 b/acinclude.m4
-index 66e79d1..4c70b00 100644
---- a/acinclude.m4
-+++ b/acinclude.m4
-@@ -52,21 +52,7 @@ if test x"$ac_tumbler_font_thumbnailer" = x"yes"; then
- PKG_CHECK_MODULES([GDK_PIXBUF], [gdk-pixbuf-2.0 >= 2.14],
- [
- dnl Check for FreeType 2.x
-- FREETYPE_LIBS=""
-- FREETYPE_CFLAGS=""
-- AC_PATH_PROG([FREETYPE_CONFIG], [freetype-config], [no])
-- if test x"$FREETYPE_CONFIG" != x"no"; then
-- AC_MSG_CHECKING([FREETYPE_CFLAGS])
-- FREETYPE_CFLAGS="`$FREETYPE_CONFIG --cflags`"
-- AC_MSG_RESULT([$FREETYPE_CFLAGS])
--
-- AC_MSG_CHECKING([FREETYPE_LIBS])
-- FREETYPE_LIBS="`$FREETYPE_CONFIG --libs`"
-- AC_MSG_RESULT([$FREETYPE_LIBS])
-- else
-- dnl We can only build the font thumbnailer if FreeType 2.x is available
-- ac_tumbler_font_thumbnailer=no
-- fi
-+ PKG_CHECK_MODULES(FREETYPE, freetype2, , [ac_tumbler_font_thumbnailer=no])
- AC_SUBST([FREETYPE_CFLAGS])
- AC_SUBST([FREETYPE_LIBS])
- ], [ac_tumbler_font_thumbnailer=no])
---
-1.8.3.1
-
diff --git a/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb b/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb
deleted file mode 100644
index 9d2669475f..0000000000
--- a/meta-xfce/recipes-xfce/tumbler/tumbler_0.2.0.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-DESCRIPTION="Thumbnail service implementing the thumbnail management D-Bus specification"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "dbus-glib dbus-glib-native freetype gdk-pixbuf poppler curl xfce4-dev-tools-native libxml2 libgsf"
-
-inherit xfce gtk-doc
-
-SRC_URI[md5sum] = "dd5f9bae6a2470eb5fff0dc9edd3ea09"
-SRC_URI[sha256sum] = "4e27a59694b0a5cc69ebccbdb00c724e670b5b7c30bc4dc0b461aac93f234fac"
-SRC_URI += "file://0001-configure-use-pkg-config-for-freetype2.patch"
-
-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.13.0.bb b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb
deleted file mode 100644
index 7e73911679..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.13.0.bb
+++ /dev/null
@@ -1,14 +0,0 @@
-DESCRIPTION="Xfce4 Application Finder"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS="glib-2.0 gtk+3 libxfce4util libxfce4ui garcon dbus-glib xfconf"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "6b6cf080c891f7945953f8084a901552"
-SRC_URI[sha256sum] = "c0eb3b29eba3cfa9175ed35174e83a21faa2a2423ddb79501fe8846cc430e3ae"
-
-FILES_${PN} += "${datadir}/appdata"
diff --git a/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.18.0.bb b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.18.0.bb
new file mode 100644
index 0000000000..06dc0a200c
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-appfinder/xfce4-appfinder_4.18.0.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] = "962a98d7b327d2073ed4cd0f78bce7945ed51b97d52fd60196e8b02ef819c18c"
+
+FILES:${PN} += "${datadir}/metainfo"
diff --git a/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-Run-native-xdt-csource-on-tests.patch b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-Run-native-xdt-csource-on-tests.patch
new file mode 100644
index 0000000000..74b1679ab4
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-Run-native-xdt-csource-on-tests.patch
@@ -0,0 +1,33 @@
+From b2fcd5c09ee6b4ad03f93ee5e1dd32f2f062cf07 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 3 Jan 2021 15:36:07 +0100
+Subject: [PATCH] Run native xdt-csource on tests
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Tests cannot be opted out so let them pass.
+
+Upstream-Status: Inappropriate [OE specific]
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ tests/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/Makefile.am b/tests/Makefile.am
+index fa0832c..7c46bbf 100644
+--- a/tests/Makefile.am
++++ b/tests/Makefile.am
+@@ -26,7 +26,7 @@ DISTCLEANFILES = test-xdt-csource-data.c
+ BUILT_SOURCES = test-xdt-csource-data.c
+
+ test-xdt-csource-data.c: Makefile $(srcdir)/data/data.bin $(srcdir)/data/data.txt
+- $(top_builddir)/xdt-csource/xdt-csource --extern --build-list data_bin $(srcdir)/data/data.bin data_txt $(srcdir)/data/data.txt > test-xdt-csource-data.c
++ xdt-csource --extern --build-list data_bin $(srcdir)/data/data.bin data_txt $(srcdir)/data/data.txt > test-xdt-csource-data.c
+
+ clean-local:
+ rm -f *.core core core.*
+--
+2.26.2
+
diff --git a/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-m4macros-Check-for-a-function-provided-by-libX11-in-.patch b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-m4macros-Check-for-a-function-provided-by-libX11-in-.patch
new file mode 100644
index 0000000000..43b1eb505a
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools/0001-m4macros-Check-for-a-function-provided-by-libX11-in-.patch
@@ -0,0 +1,35 @@
+From 8f58e1b5c15fc3b6f775207971d078c058d9eb7b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 1 Sep 2022 08:21:56 -0700
+Subject: [PATCH] m4macros: Check for a function provided by libX11 in
+ AC_CHECK_LIB
+
+checking for main is not ideal, since its not a function from libX11
+moreover with newer versions of autoconf this will start to fail [1], so
+change this to use XFree API which is provided by libX11 and seems more
+relevant to check here.
+
+[1] https://lists.gnu.org/archive/html/autoconf-patches/2022-08/msg00018.html
+
+Upstream-Status: Submitted [https://gitlab.xfce.org/xfce/xfce4-dev-tools/-/issues/57]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ m4macros/xdt-depends.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4macros/xdt-depends.m4 b/m4macros/xdt-depends.m4
+index 3c07c90..ce1b272 100644
+--- a/m4macros/xdt-depends.m4
++++ b/m4macros/xdt-depends.m4
+@@ -213,7 +213,7 @@ AC_DEFUN([XDT_CHECK_LIBX11],
+
+ LIBX11_CFLAGS= LIBX11_LDFLAGS= LIBX11_LIBS=
+ if test x"$no_x" != x"yes"; then
+- AC_CHECK_LIB([X11], [main],
++ AC_CHECK_LIB([X11], [XFree],
+ [
+ AC_DEFINE([HAVE_LIBX11], [1], [Define if libX11 is available])
+ LIBX11_CFLAGS="$X_CFLAGS"
+--
+2.37.3
+
diff --git a/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb b/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb
deleted file mode 100644
index 5557f6df9d..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-dev-tools/xfce4-dev-tools_4.12.0.bb
+++ /dev/null
@@ -1,23 +0,0 @@
-SUMMARY = "Xfce4 development tools"
-HOMEPAGE = "http://www.xfce.org"
-SECTION = "x11/libs"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-DEPENDS = "glib-2.0"
-
-inherit autotools pkgconfig
-
-BBCLASSEXTEND = "native"
-
-SRC_URI = "http://archive.xfce.org/src/xfce/${BPN}/${@'${PV}'[0:4]}/${BPN}-${PV}.tar.bz2"
-SRC_URI[md5sum] = "559202c4d9650e23696c44aa94cfc5a9"
-SRC_URI[sha256sum] = "e2e3a654fe9110df81f8c2483c9cbfa6d656fed15d5e5e717d6ef10bd0f5b5cb"
-
-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
new file mode 100644
index 0000000000..66a33c722a
--- /dev/null
+++ b/meta-xfce/recipes-xfce/xfce4-panel/files/0002-use-lxdm-to-replace-dm-tool.patch
@@ -0,0 +1,53 @@
+From b80108f01b1425427f98341168ea44c4b1a5a2cf Mon Sep 17 00:00:00 2001
+From: Hongxu Jia <hongxu.jia@windriver.com>
+Date: Fri, 28 Jun 2019 16:02:13 +0800
+Subject: [PATCH] use lxdm to replace dm-tool
+
+OE does not support lightdm but lxdm,
+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 e1f1fa7..440f430 100644
+--- a/plugins/actions/actions.c
++++ b/plugins/actions/actions.c
+@@ -977,12 +977,12 @@ actions_plugin_actions_allowed (void)
+ GError *error = NULL;
+
+ /* check for commands we use */
+- path = g_find_program_in_path ("dm-tool");
++ path = g_find_program_in_path ("lxdm");
+ if (path != NULL)
+ PANEL_SET_FLAG (allow_mask, ACTION_TYPE_SWITCH_USER);
+ else
+ {
+- /* check for gdmflexiserver if dm-tool is not present */
++ /* check for gdmflexiserver if lxdm is not present */
+ g_free (path);
+ path = g_find_program_in_path ("gdmflexiserver");
+ if (path != NULL)
+@@ -1099,9 +1099,9 @@ actions_plugin_action_activate (GtkWidget *widget,
+ break;
+
+ case ACTION_TYPE_SWITCH_USER:
+- path = g_find_program_in_path ("dm-tool");
++ path = g_find_program_in_path ("lxdm");
+ if (path != NULL)
+- succeed = g_spawn_command_line_async ("dm-tool switch-to-greeter", &error);
++ succeed = g_spawn_command_line_async ("lxdm -c USER_SWITCH", &error);
+ else
+ succeed = g_spawn_command_line_async ("gdmflexiserver", &error);
+ g_free (path);
+--
+2.8.1
+
diff --git a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.3.bb b/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.3.bb
deleted file mode 100644
index f1abf66755..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-panel/xfce4-panel_4.13.3.bb
+++ /dev/null
@@ -1,40 +0,0 @@
-SUMMARY = "Xfce4 Panel"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=26a8bd75d8f8498bdbbe64a27791d4ee"
-DEPENDS = "libxfce4util garcon libxfce4ui xfconf exo gtk+ gtk+3 dbus cairo virtual/libx11 libxml2 libwnck3 vala-native"
-
-inherit xfce gtk-doc gobject-introspection distro_features_check gtk-icon-cache remove-libtool
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "0ccb448e3792949eb0ae9db8dc22789b"
-SRC_URI[sha256sum] = "b467feb7ee9797ad12f56a152570e42a96b94ad63580d45536aabee282440ce8"
-SRC_URI += " \
- file://0001-windowmenu-do-not-display-desktop-icon-when-no-windo.patch \
-"
-
-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, '^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_1.6.1.bb b/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.1.bb
deleted file mode 100644
index ed117b0a6e..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-power-manager/xfce4-power-manager_1.6.1.bb
+++ /dev/null
@@ -1,44 +0,0 @@
-SUMMARY = "Power manager for the Xfce desktop environment"
-HOMEPAGE = "http://goodies.xfce.org/projects/applications/xfce4-power-manager"
-SECTION = "x11"
-
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-DEPENDS += "gtk+3 glib-2.0 dbus-glib xfconf libxfce4ui libxfce4util libnotify \
- libxrandr virtual/libx11 libxext xfce4-panel upower libxscrnsaver"
-
-SRC_URI[md5sum] = "17f0e6464ad6b3bc6a657f595bf91430"
-SRC_URI[sha256sum] = "1ea825452343b895566068018b6d5078608f8f46ce8075ba6bbb4b848f48656b"
-
-EXTRA_OECONF = " \
- --enable-network-manager \
- --enable-panel-plugins \
-"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}"
-PACKAGECONFIG[systemd] = "--enable-polkit, --disable-polkit, polkit"
-
-PACKAGES += "xfce4-powermanager-plugin"
-
-FILES_${PN} += " \
- ${datadir}/polkit-1 \
- ${datadir}/appdata \
-"
-
-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/machine-host.bb b/meta-xfce/recipes-xfce/xfce4-session/machine-host.bb
deleted file mode 100644
index c79197445e..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-session/machine-host.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Meta package adding machine name to known hosts"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
-
-ALLOW_EMPTY_${PN} = "1"
-
-LOCALHOSTMACHINE = "127.0.0.1 ${MACHINE}"
-
-# on some machines starting applications as xfce4-terminal take ages without
-# machine name in hosts
-pkg_postinst_${PN} () {
-if ! grep -q '${LOCALHOSTMACHINE}' $D/etc/hosts ; then
- echo '${LOCALHOSTMACHINE}' >> $D/etc/hosts
-fi
-}
-
-PACKAGE_ARCH = "${MACHINE_ARCH}"
diff --git a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb b/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb
deleted file mode 100644
index 712597bcad..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-session/xfce4-session_4.12.1.bb
+++ /dev/null
@@ -1,34 +0,0 @@
-SUMMARY = "xfce4-session is a session manager for Xfce 4 Desktop Environment"
-SECTION = "x11"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=9ac2e7cff1ddaf48b6eab6028f23ef88"
-DEPENDS = "virtual/libx11 libsm libxfce4util libxfce4ui gtk+ libwnck dbus dbus-glib xfconf polkit"
-RDEPENDS_${PN} = "netbase xinit dbus-x11 iceauth upower"
-
-inherit xfce update-alternatives distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "f4921fb2e606e74643daf1212263076c"
-SRC_URI[sha256sum] = "97d7f2a2d0af7f3623b68d1f04091e02913b28f9555dab8b0d26c8a1299d08fd"
-SRC_URI += " \
- file://0001-configure.in-hard-code-path-to-iceauth.patch \
-"
-
-ALTERNATIVE_${PN} = "x-session-manager"
-ALTERNATIVE_TARGET[x-session-manager] = "${bindir}/xfce4-session"
-ALTERNATIVE_PRIORITY_${PN} = "100"
-
-FILES_${PN} += " \
- ${libdir}/xfce4/*/*/*.so \
- ${libdir}/xfce4/session/*-*-* \
- ${datadir}/xsessions \
- ${datadir}/themes/Default/balou/* \
- ${datadir}/polkit-1 \
-"
-
-FILES_${PN} += " \
- ${libdir}/xfce4/session/splash-engines/*.la \
-"
-
-RDEPENDS_${PN} += "machine-host"
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 67df05a79b..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,24 +6,32 @@ 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>
+
+Theme Xfce doesn't work as expected. For example, no layout in start
+menu and applications' menu bar. And GtkColorButton is blank in config
+tab page from xfce4-terminal -> Edit -> Preference -> Colors.
+
+So use Adwaita as default theme instead.
+
+Signed-off-by: Kai Kang <kai.kang@windriver.com>
---
xfsettingsd/xsettings.xml | 4 ++--
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"/>
- <property name="IconThemeName" type="empty"/>
-+ <property name="ThemeName" type="string" value="Xfce"/>
++ <property name="ThemeName" type="string" value="Adwaita"/>
+ <property name="IconThemeName" type="string" value="Adwaita"/>
<property name="DoubleClickTime" type="int" value="400"/>
<property name="DoubleClickDistance" type="int" value="5"/>
diff --git a/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch b/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch
deleted file mode 100644
index 109b7b1459..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-settings/files/0002-Fix-linking-to-dbus-glib-bug-13633.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b6e46e6a84e45f7bd954687be703987825a54c1e Mon Sep 17 00:00:00 2001
-From: Eric Koegel <eric.koegel@gmail.com>
-Date: Sun, 11 Jun 2017 11:38:26 +0300
-Subject: [PATCH] Fix linking to dbus-glib (bug #13633)
-
-With xfconf moving to GDBus nothing provides the libs for dbus-glib
-that xfce4-settings requires. This patch adds the libs back in until
-settings can be ported to GDBus.
-
-Signed-off-by: Sean Davis <smd.seandavis@gmail.com>
-
-Upstream-Status: Backport
----
- xfce4-settings-editor/Makefile.am | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/xfce4-settings-editor/Makefile.am b/xfce4-settings-editor/Makefile.am
-index 5964366..c2c7c4b 100644
---- a/xfce4-settings-editor/Makefile.am
-+++ b/xfce4-settings-editor/Makefile.am
-@@ -28,6 +28,7 @@ xfce4_settings_editor_CFLAGS = \
- $(LIBXFCE4UTIL_CFLAGS) \
- $(LIBXFCE4UI_CFLAGS) \
- $(XFCONF_CFLAGS) \
-+ $(DBUS_GLIB_CFLAGS) \
- $(PLATFORM_CFLAGS)
-
- xfce4_settings_editor_LDFLAGS = \
-@@ -39,7 +40,8 @@ xfce4_settings_editor_LDADD = \
- $(DBUS_GLIB_LIBS) \
- $(LIBXFCE4UTIL_LIBS) \
- $(LIBXFCE4UI_LIBS) \
-- $(XFCONF_LIBS)
-+ $(XFCONF_LIBS) \
-+ $(DBUS_GLIB_LIBS)
-
- desktopdir = $(datadir)/applications
- desktop_in_files = xfce4-settings-editor.desktop.in
---
-2.14.3
-
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/xfce4-settings/xfce4-settings_git.bb b/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb
deleted file mode 100644
index d937653fa4..0000000000
--- a/meta-xfce/recipes-xfce/xfce4-settings/xfce4-settings_git.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-SUMMARY = "Xfce4 settings"
-SECTION = "x11/wm"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "exo exo-native garcon gtk+ libxfce4util libxfce4ui xfconf dbus-glib libxi virtual/libx11 xrandr libxcursor libxklavier upower"
-
-inherit xfce xfce-git distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-# schnitzeltony git repo is the mainline repo
-# + datetime-setter - sent to mainline but strange response
-# + minor bugfixes - sent mainline but no response
-# + option to hide mousepointer for a specific (touch) input device - sent mainline but no response
-SRC_URI = " \
- git://github.com/schnitzeltony/xfce4-settings.git;protocol=git;branch=for-oe-4.12.3 \
- file://0001-xsettings.xml-Set-default-themes.patch \
- file://0002-Fix-linking-to-dbus-glib-bug-13633.patch \
-"
-SRCREV = "b701ac8b66b83c17469dd5009da51eeb59eba442"
-S = "${WORKDIR}/git"
-PV = "4.12.3+git${SRCPV}"
-
-EXTRA_OECONF += "--enable-maintainer-mode --disable-debug"
-
-PACKAGECONFIG ??= " \
- ${@bb.utils.contains('DISTRO_FEATURES','systemd','datetime-setter','',d)} \
- ${@bb.utils.contains('DISTRO_FEATURES','alsa','sound-setter', bb.utils.contains('DISTRO_FEATURES','pulseaudio','sound-setter','',d),d)} \
-"
-PACKAGECONFIG[datetime-setter] = "--enable-datetime-settings, --disable-datetime-settings,, tzdata"
-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)}"
diff --git a/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.4.bb b/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.4.bb
deleted file mode 100644
index b69215064e..0000000000
--- a/meta-xfce/recipes-xfce/xfconf/xfconf_4.13.4.bb
+++ /dev/null
@@ -1,15 +0,0 @@
-SUMMARY = "Xfce configuration daemon and utilities"
-SECTION = "x11/wm"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552"
-DEPENDS = "dbus-glib libxfce4util perl intltool-native xfce4-dev-tools-native"
-
-inherit xfce gtk-doc
-
-EXTRA_OECONF += "PERL=${STAGING_DIR_TARGET}/usr/bin/perl"
-
-SRC_URI[md5sum] = "200d46c4e5a6019bb2b1cc3948b90c9c"
-SRC_URI[sha256sum] = "4808997894ad9b6bcd39b0e8c609129e60d204c038d4edc4e9b8c55ea2d094c9"
-
-FILES_${PN} += "${libdir}/xfce4/xfconf/xfconfd \
- ${datadir}/dbus-1/services/org.xfce.Xfconf.service"
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.12.4.bb b/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb
deleted file mode 100644
index d9cbe71966..0000000000
--- a/meta-xfce/recipes-xfce/xfdesktop/xfdesktop_4.12.4.bb
+++ /dev/null
@@ -1,17 +0,0 @@
-SUMMARY = "Xfce4 Desktop Manager"
-SECTION = "x11/base"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
-DEPENDS = "glib-2.0 gtk+ libxfce4util libxfce4ui libwnck xfconf dbus-glib dbus-glib-native thunar garcon exo"
-
-inherit xfce distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "7571889368be72df185ce2d470f37198"
-SRC_URI[sha256sum] = "098a35510562907e1431d5adbfa8307484a235c1dec6a43e2d58d2ac4241f1cb"
-
-PACKAGECONFIG ??= ""
-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.12.4.bb b/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb
deleted file mode 100644
index a075f13b91..0000000000
--- a/meta-xfce/recipes-xfce/xfwm4/xfwm4_4.12.4.bb
+++ /dev/null
@@ -1,28 +0,0 @@
-DESCRIPTION="Xfce4 Window Manager"
-SECTION = "x11/wm"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d791728a073bc009b4ffaf00b7599855"
-DEPENDS = "virtual/libx11 libxpm gtk+ libxfce4util libxfce4ui xfconf libwnck dbus-glib startup-notification exo-native"
-
-inherit xfce update-alternatives distro_features_check
-
-REQUIRED_DISTRO_FEATURES = "x11"
-
-SRC_URI[md5sum] = "3ec136efc5387fd3b53cd66b684f52d7"
-SRC_URI[sha256sum] = "fa74048a75649a6e92df763a3cfb706d3fed1e1a6adf567f6693325a5a6efb36"
-
-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 \
+"